+
+MIT License (Expat)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/vendor/github.com/mattn/go-isatty/README.md b/vendor/github.com/mattn/go-isatty/README.md
new file mode 100644
index 0000000000..1e69004bb0
--- /dev/null
+++ b/vendor/github.com/mattn/go-isatty/README.md
@@ -0,0 +1,50 @@
+# go-isatty
+
+[![Godoc Reference](https://godoc.org/github.com/mattn/go-isatty?status.svg)](http://godoc.org/github.com/mattn/go-isatty)
+[![Build Status](https://travis-ci.org/mattn/go-isatty.svg?branch=master)](https://travis-ci.org/mattn/go-isatty)
+[![Coverage Status](https://coveralls.io/repos/github/mattn/go-isatty/badge.svg?branch=master)](https://coveralls.io/github/mattn/go-isatty?branch=master)
+[![Go Report Card](https://goreportcard.com/badge/mattn/go-isatty)](https://goreportcard.com/report/mattn/go-isatty)
+
+isatty for golang
+
+## Usage
+
+```go
+package main
+
+import (
+ "fmt"
+ "github.com/mattn/go-isatty"
+ "os"
+)
+
+func main() {
+ if isatty.IsTerminal(os.Stdout.Fd()) {
+ fmt.Println("Is Terminal")
+ } else if isatty.IsCygwinTerminal(os.Stdout.Fd()) {
+ fmt.Println("Is Cygwin/MSYS2 Terminal")
+ } else {
+ fmt.Println("Is Not Terminal")
+ }
+}
+```
+
+## Installation
+
+```
+$ go get github.com/mattn/go-isatty
+```
+
+## License
+
+MIT
+
+## Author
+
+Yasuhiro Matsumoto (a.k.a mattn)
+
+## Thanks
+
+* k-takata: base idea for IsCygwinTerminal
+
+ https://github.com/k-takata/go-iscygpty
diff --git a/vendor/github.com/mattn/go-isatty/doc.go b/vendor/github.com/mattn/go-isatty/doc.go
new file mode 100644
index 0000000000..17d4f90ebc
--- /dev/null
+++ b/vendor/github.com/mattn/go-isatty/doc.go
@@ -0,0 +1,2 @@
+// Package isatty implements interface to isatty
+package isatty
diff --git a/vendor/github.com/mattn/go-isatty/isatty_appengine.go b/vendor/github.com/mattn/go-isatty/isatty_appengine.go
new file mode 100644
index 0000000000..9584a98842
--- /dev/null
+++ b/vendor/github.com/mattn/go-isatty/isatty_appengine.go
@@ -0,0 +1,15 @@
+// +build appengine
+
+package isatty
+
+// IsTerminal returns true if the file descriptor is terminal which
+// is always false on on appengine classic which is a sandboxed PaaS.
+func IsTerminal(fd uintptr) bool {
+ return false
+}
+
+// IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2
+// terminal. This is also always false on this environment.
+func IsCygwinTerminal(fd uintptr) bool {
+ return false
+}
diff --git a/vendor/github.com/mattn/go-isatty/isatty_bsd.go b/vendor/github.com/mattn/go-isatty/isatty_bsd.go
new file mode 100644
index 0000000000..42f2514d13
--- /dev/null
+++ b/vendor/github.com/mattn/go-isatty/isatty_bsd.go
@@ -0,0 +1,18 @@
+// +build darwin freebsd openbsd netbsd dragonfly
+// +build !appengine
+
+package isatty
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+const ioctlReadTermios = syscall.TIOCGETA
+
+// IsTerminal return true if the file descriptor is terminal.
+func IsTerminal(fd uintptr) bool {
+ var termios syscall.Termios
+ _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0)
+ return err == 0
+}
diff --git a/vendor/github.com/mattn/go-isatty/isatty_linux.go b/vendor/github.com/mattn/go-isatty/isatty_linux.go
new file mode 100644
index 0000000000..7384cf9916
--- /dev/null
+++ b/vendor/github.com/mattn/go-isatty/isatty_linux.go
@@ -0,0 +1,18 @@
+// +build linux
+// +build !appengine,!ppc64,!ppc64le
+
+package isatty
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+const ioctlReadTermios = syscall.TCGETS
+
+// IsTerminal return true if the file descriptor is terminal.
+func IsTerminal(fd uintptr) bool {
+ var termios syscall.Termios
+ _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0)
+ return err == 0
+}
diff --git a/vendor/github.com/mattn/go-isatty/isatty_linux_ppc64x.go b/vendor/github.com/mattn/go-isatty/isatty_linux_ppc64x.go
new file mode 100644
index 0000000000..44e5d21302
--- /dev/null
+++ b/vendor/github.com/mattn/go-isatty/isatty_linux_ppc64x.go
@@ -0,0 +1,19 @@
+// +build linux
+// +build ppc64 ppc64le
+
+package isatty
+
+import (
+ "unsafe"
+
+ syscall "golang.org/x/sys/unix"
+)
+
+const ioctlReadTermios = syscall.TCGETS
+
+// IsTerminal return true if the file descriptor is terminal.
+func IsTerminal(fd uintptr) bool {
+ var termios syscall.Termios
+ _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0)
+ return err == 0
+}
diff --git a/vendor/github.com/mattn/go-isatty/isatty_others.go b/vendor/github.com/mattn/go-isatty/isatty_others.go
new file mode 100644
index 0000000000..9d8b4a5996
--- /dev/null
+++ b/vendor/github.com/mattn/go-isatty/isatty_others.go
@@ -0,0 +1,10 @@
+// +build !windows
+// +build !appengine
+
+package isatty
+
+// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2
+// terminal. This is also always false on this environment.
+func IsCygwinTerminal(fd uintptr) bool {
+ return false
+}
diff --git a/vendor/github.com/mattn/go-isatty/isatty_solaris.go b/vendor/github.com/mattn/go-isatty/isatty_solaris.go
new file mode 100644
index 0000000000..1f0c6bf53d
--- /dev/null
+++ b/vendor/github.com/mattn/go-isatty/isatty_solaris.go
@@ -0,0 +1,16 @@
+// +build solaris
+// +build !appengine
+
+package isatty
+
+import (
+ "golang.org/x/sys/unix"
+)
+
+// IsTerminal returns true if the given file descriptor is a terminal.
+// see: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libbc/libc/gen/common/isatty.c
+func IsTerminal(fd uintptr) bool {
+ var termio unix.Termio
+ err := unix.IoctlSetTermio(int(fd), unix.TCGETA, &termio)
+ return err == nil
+}
diff --git a/vendor/github.com/mattn/go-isatty/isatty_windows.go b/vendor/github.com/mattn/go-isatty/isatty_windows.go
new file mode 100644
index 0000000000..af51cbcaa4
--- /dev/null
+++ b/vendor/github.com/mattn/go-isatty/isatty_windows.go
@@ -0,0 +1,94 @@
+// +build windows
+// +build !appengine
+
+package isatty
+
+import (
+ "strings"
+ "syscall"
+ "unicode/utf16"
+ "unsafe"
+)
+
+const (
+ fileNameInfo uintptr = 2
+ fileTypePipe = 3
+)
+
+var (
+ kernel32 = syscall.NewLazyDLL("kernel32.dll")
+ procGetConsoleMode = kernel32.NewProc("GetConsoleMode")
+ procGetFileInformationByHandleEx = kernel32.NewProc("GetFileInformationByHandleEx")
+ procGetFileType = kernel32.NewProc("GetFileType")
+)
+
+func init() {
+ // Check if GetFileInformationByHandleEx is available.
+ if procGetFileInformationByHandleEx.Find() != nil {
+ procGetFileInformationByHandleEx = nil
+ }
+}
+
+// IsTerminal return true if the file descriptor is terminal.
+func IsTerminal(fd uintptr) bool {
+ var st uint32
+ r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, fd, uintptr(unsafe.Pointer(&st)), 0)
+ return r != 0 && e == 0
+}
+
+// Check pipe name is used for cygwin/msys2 pty.
+// Cygwin/MSYS2 PTY has a name like:
+// \{cygwin,msys}-XXXXXXXXXXXXXXXX-ptyN-{from,to}-master
+func isCygwinPipeName(name string) bool {
+ token := strings.Split(name, "-")
+ if len(token) < 5 {
+ return false
+ }
+
+ if token[0] != `\msys` && token[0] != `\cygwin` {
+ return false
+ }
+
+ if token[1] == "" {
+ return false
+ }
+
+ if !strings.HasPrefix(token[2], "pty") {
+ return false
+ }
+
+ if token[3] != `from` && token[3] != `to` {
+ return false
+ }
+
+ if token[4] != "master" {
+ return false
+ }
+
+ return true
+}
+
+// IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2
+// terminal.
+func IsCygwinTerminal(fd uintptr) bool {
+ if procGetFileInformationByHandleEx == nil {
+ return false
+ }
+
+ // Cygwin/msys's pty is a pipe.
+ ft, _, e := syscall.Syscall(procGetFileType.Addr(), 1, fd, 0, 0)
+ if ft != fileTypePipe || e != 0 {
+ return false
+ }
+
+ var buf [2 + syscall.MAX_PATH]uint16
+ r, _, e := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(),
+ 4, fd, fileNameInfo, uintptr(unsafe.Pointer(&buf)),
+ uintptr(len(buf)*2), 0, 0)
+ if r == 0 || e != 0 {
+ return false
+ }
+
+ l := *(*uint32)(unsafe.Pointer(&buf))
+ return isCygwinPipeName(string(utf16.Decode(buf[2 : 2+l/2])))
+}
diff --git a/vendor/github.com/mgutz/ansi/.gitignore b/vendor/github.com/mgutz/ansi/.gitignore
new file mode 100644
index 0000000000..9ed3b07cef
--- /dev/null
+++ b/vendor/github.com/mgutz/ansi/.gitignore
@@ -0,0 +1 @@
+*.test
diff --git a/vendor/github.com/mgutz/ansi/LICENSE b/vendor/github.com/mgutz/ansi/LICENSE
new file mode 100644
index 0000000000..06ce0c3b51
--- /dev/null
+++ b/vendor/github.com/mgutz/ansi/LICENSE
@@ -0,0 +1,9 @@
+The MIT License (MIT)
+Copyright (c) 2013 Mario L. Gutierrez
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
diff --git a/vendor/github.com/mgutz/ansi/README.md b/vendor/github.com/mgutz/ansi/README.md
new file mode 100644
index 0000000000..8f8e20b7e4
--- /dev/null
+++ b/vendor/github.com/mgutz/ansi/README.md
@@ -0,0 +1,121 @@
+# ansi
+
+Package ansi is a small, fast library to create ANSI colored strings and codes.
+
+## Install
+
+Get it
+
+```sh
+go get -u github.com/mgutz/ansi
+```
+
+## Example
+
+```go
+import "github.com/mgutz/ansi"
+
+// colorize a string, SLOW
+msg := ansi.Color("foo", "red+b:white")
+
+// create a FAST closure function to avoid computation of ANSI code
+phosphorize := ansi.ColorFunc("green+h:black")
+msg = phosphorize("Bring back the 80s!")
+msg2 := phospohorize("Look, I'm a CRT!")
+
+// cache escape codes and build strings manually
+lime := ansi.ColorCode("green+h:black")
+reset := ansi.ColorCode("reset")
+
+fmt.Println(lime, "Bring back the 80s!", reset)
+```
+
+Other examples
+
+```go
+Color(s, "red") // red
+Color(s, "red+b") // red bold
+Color(s, "red+B") // red blinking
+Color(s, "red+u") // red underline
+Color(s, "red+bh") // red bold bright
+Color(s, "red:white") // red on white
+Color(s, "red+b:white+h") // red bold on white bright
+Color(s, "red+B:white+h") // red blink on white bright
+Color(s, "off") // turn off ansi codes
+```
+
+To view color combinations, from project directory in terminal.
+
+```sh
+go test
+```
+
+## Style format
+
+```go
+"foregroundColor+attributes:backgroundColor+attributes"
+```
+
+Colors
+
+* black
+* red
+* green
+* yellow
+* blue
+* magenta
+* cyan
+* white
+* 0...255 (256 colors)
+
+Foreground Attributes
+
+* B = Blink
+* b = bold
+* h = high intensity (bright)
+* i = inverse
+* s = strikethrough
+* u = underline
+
+Background Attributes
+
+* h = high intensity (bright)
+
+## Constants
+
+* ansi.Reset
+* ansi.DefaultBG
+* ansi.DefaultFG
+* ansi.Black
+* ansi.Red
+* ansi.Green
+* ansi.Yellow
+* ansi.Blue
+* ansi.Magenta
+* ansi.Cyan
+* ansi.White
+* ansi.LightBlack
+* ansi.LightRed
+* ansi.LightGreen
+* ansi.LightYellow
+* ansi.LightBlue
+* ansi.LightMagenta
+* ansi.LightCyan
+* ansi.LightWhite
+
+## References
+
+Wikipedia ANSI escape codes [Colors](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors)
+
+General [tips and formatting](http://misc.flogisoft.com/bash/tip_colors_and_formatting)
+
+What about support on Windows? Use [colorable by mattn](https://github.com/mattn/go-colorable).
+Ansi and colorable are used by [logxi](https://github.com/mgutz/logxi) to support logging in
+color on Windows.
+
+## MIT License
+
+Copyright (c) 2013 Mario Gutierrez mario@mgutz.com
+
+See the file LICENSE for copying permission.
+
diff --git a/vendor/github.com/mgutz/ansi/ansi.go b/vendor/github.com/mgutz/ansi/ansi.go
new file mode 100644
index 0000000000..dc0413649e
--- /dev/null
+++ b/vendor/github.com/mgutz/ansi/ansi.go
@@ -0,0 +1,285 @@
+package ansi
+
+import (
+ "bytes"
+ "fmt"
+ "strconv"
+ "strings"
+)
+
+const (
+ black = iota
+ red
+ green
+ yellow
+ blue
+ magenta
+ cyan
+ white
+ defaultt = 9
+
+ normalIntensityFG = 30
+ highIntensityFG = 90
+ normalIntensityBG = 40
+ highIntensityBG = 100
+
+ start = "\033["
+ bold = "1;"
+ blink = "5;"
+ underline = "4;"
+ inverse = "7;"
+ strikethrough = "9;"
+
+ // Reset is the ANSI reset escape sequence
+ Reset = "\033[0m"
+ // DefaultBG is the default background
+ DefaultBG = "\033[49m"
+ // DefaultFG is the default foreground
+ DefaultFG = "\033[39m"
+)
+
+// Black FG
+var Black string
+
+// Red FG
+var Red string
+
+// Green FG
+var Green string
+
+// Yellow FG
+var Yellow string
+
+// Blue FG
+var Blue string
+
+// Magenta FG
+var Magenta string
+
+// Cyan FG
+var Cyan string
+
+// White FG
+var White string
+
+// LightBlack FG
+var LightBlack string
+
+// LightRed FG
+var LightRed string
+
+// LightGreen FG
+var LightGreen string
+
+// LightYellow FG
+var LightYellow string
+
+// LightBlue FG
+var LightBlue string
+
+// LightMagenta FG
+var LightMagenta string
+
+// LightCyan FG
+var LightCyan string
+
+// LightWhite FG
+var LightWhite string
+
+var (
+ plain = false
+ // Colors maps common color names to their ANSI color code.
+ Colors = map[string]int{
+ "black": black,
+ "red": red,
+ "green": green,
+ "yellow": yellow,
+ "blue": blue,
+ "magenta": magenta,
+ "cyan": cyan,
+ "white": white,
+ "default": defaultt,
+ }
+)
+
+func init() {
+ for i := 0; i < 256; i++ {
+ Colors[strconv.Itoa(i)] = i
+ }
+
+ Black = ColorCode("black")
+ Red = ColorCode("red")
+ Green = ColorCode("green")
+ Yellow = ColorCode("yellow")
+ Blue = ColorCode("blue")
+ Magenta = ColorCode("magenta")
+ Cyan = ColorCode("cyan")
+ White = ColorCode("white")
+ LightBlack = ColorCode("black+h")
+ LightRed = ColorCode("red+h")
+ LightGreen = ColorCode("green+h")
+ LightYellow = ColorCode("yellow+h")
+ LightBlue = ColorCode("blue+h")
+ LightMagenta = ColorCode("magenta+h")
+ LightCyan = ColorCode("cyan+h")
+ LightWhite = ColorCode("white+h")
+}
+
+// ColorCode returns the ANSI color color code for style.
+func ColorCode(style string) string {
+ return colorCode(style).String()
+}
+
+// Gets the ANSI color code for a style.
+func colorCode(style string) *bytes.Buffer {
+ buf := bytes.NewBufferString("")
+ if plain || style == "" {
+ return buf
+ }
+ if style == "reset" {
+ buf.WriteString(Reset)
+ return buf
+ } else if style == "off" {
+ return buf
+ }
+
+ foregroundBackground := strings.Split(style, ":")
+ foreground := strings.Split(foregroundBackground[0], "+")
+ fgKey := foreground[0]
+ fg := Colors[fgKey]
+ fgStyle := ""
+ if len(foreground) > 1 {
+ fgStyle = foreground[1]
+ }
+
+ bg, bgStyle := "", ""
+
+ if len(foregroundBackground) > 1 {
+ background := strings.Split(foregroundBackground[1], "+")
+ bg = background[0]
+ if len(background) > 1 {
+ bgStyle = background[1]
+ }
+ }
+
+ buf.WriteString(start)
+ base := normalIntensityFG
+ if len(fgStyle) > 0 {
+ if strings.Contains(fgStyle, "b") {
+ buf.WriteString(bold)
+ }
+ if strings.Contains(fgStyle, "B") {
+ buf.WriteString(blink)
+ }
+ if strings.Contains(fgStyle, "u") {
+ buf.WriteString(underline)
+ }
+ if strings.Contains(fgStyle, "i") {
+ buf.WriteString(inverse)
+ }
+ if strings.Contains(fgStyle, "s") {
+ buf.WriteString(strikethrough)
+ }
+ if strings.Contains(fgStyle, "h") {
+ base = highIntensityFG
+ }
+ }
+
+ // if 256-color
+ n, err := strconv.Atoi(fgKey)
+ if err == nil {
+ fmt.Fprintf(buf, "38;5;%d;", n)
+ } else {
+ fmt.Fprintf(buf, "%d;", base+fg)
+ }
+
+ base = normalIntensityBG
+ if len(bg) > 0 {
+ if strings.Contains(bgStyle, "h") {
+ base = highIntensityBG
+ }
+ // if 256-color
+ n, err := strconv.Atoi(bg)
+ if err == nil {
+ fmt.Fprintf(buf, "48;5;%d;", n)
+ } else {
+ fmt.Fprintf(buf, "%d;", base+Colors[bg])
+ }
+ }
+
+ // remove last ";"
+ buf.Truncate(buf.Len() - 1)
+ buf.WriteRune('m')
+ return buf
+}
+
+// Color colors a string based on the ANSI color code for style.
+func Color(s, style string) string {
+ if plain || len(style) < 1 {
+ return s
+ }
+ buf := colorCode(style)
+ buf.WriteString(s)
+ buf.WriteString(Reset)
+ return buf.String()
+}
+
+// ColorFunc creates a closure to avoid computation ANSI color code.
+func ColorFunc(style string) func(string) string {
+ if style == "" {
+ return func(s string) string {
+ return s
+ }
+ }
+ color := ColorCode(style)
+ return func(s string) string {
+ if plain || s == "" {
+ return s
+ }
+ buf := bytes.NewBufferString(color)
+ buf.WriteString(s)
+ buf.WriteString(Reset)
+ result := buf.String()
+ return result
+ }
+}
+
+// DisableColors disables ANSI color codes. The default is false (colors are on).
+func DisableColors(disable bool) {
+ plain = disable
+ if plain {
+ Black = ""
+ Red = ""
+ Green = ""
+ Yellow = ""
+ Blue = ""
+ Magenta = ""
+ Cyan = ""
+ White = ""
+ LightBlack = ""
+ LightRed = ""
+ LightGreen = ""
+ LightYellow = ""
+ LightBlue = ""
+ LightMagenta = ""
+ LightCyan = ""
+ LightWhite = ""
+ } else {
+ Black = ColorCode("black")
+ Red = ColorCode("red")
+ Green = ColorCode("green")
+ Yellow = ColorCode("yellow")
+ Blue = ColorCode("blue")
+ Magenta = ColorCode("magenta")
+ Cyan = ColorCode("cyan")
+ White = ColorCode("white")
+ LightBlack = ColorCode("black+h")
+ LightRed = ColorCode("red+h")
+ LightGreen = ColorCode("green+h")
+ LightYellow = ColorCode("yellow+h")
+ LightBlue = ColorCode("blue+h")
+ LightMagenta = ColorCode("magenta+h")
+ LightCyan = ColorCode("cyan+h")
+ LightWhite = ColorCode("white+h")
+ }
+}
diff --git a/vendor/github.com/mgutz/ansi/doc.go b/vendor/github.com/mgutz/ansi/doc.go
new file mode 100644
index 0000000000..43c217e11d
--- /dev/null
+++ b/vendor/github.com/mgutz/ansi/doc.go
@@ -0,0 +1,65 @@
+/*
+Package ansi is a small, fast library to create ANSI colored strings and codes.
+
+Installation
+
+ # this installs the color viewer and the package
+ go get -u github.com/mgutz/ansi/cmd/ansi-mgutz
+
+Example
+
+ // colorize a string, SLOW
+ msg := ansi.Color("foo", "red+b:white")
+
+ // create a closure to avoid recalculating ANSI code compilation
+ phosphorize := ansi.ColorFunc("green+h:black")
+ msg = phosphorize("Bring back the 80s!")
+ msg2 := phospohorize("Look, I'm a CRT!")
+
+ // cache escape codes and build strings manually
+ lime := ansi.ColorCode("green+h:black")
+ reset := ansi.ColorCode("reset")
+
+ fmt.Println(lime, "Bring back the 80s!", reset)
+
+Other examples
+
+ Color(s, "red") // red
+ Color(s, "red+b") // red bold
+ Color(s, "red+B") // red blinking
+ Color(s, "red+u") // red underline
+ Color(s, "red+bh") // red bold bright
+ Color(s, "red:white") // red on white
+ Color(s, "red+b:white+h") // red bold on white bright
+ Color(s, "red+B:white+h") // red blink on white bright
+
+To view color combinations, from terminal
+
+ ansi-mgutz
+
+Style format
+
+ "foregroundColor+attributes:backgroundColor+attributes"
+
+Colors
+
+ black
+ red
+ green
+ yellow
+ blue
+ magenta
+ cyan
+ white
+
+Attributes
+
+ b = bold foreground
+ B = Blink foreground
+ u = underline foreground
+ h = high intensity (bright) foreground, background
+ i = inverse
+
+Wikipedia ANSI escape codes [Colors](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors)
+*/
+package ansi
diff --git a/vendor/github.com/mgutz/ansi/print.go b/vendor/github.com/mgutz/ansi/print.go
new file mode 100644
index 0000000000..806f436bb3
--- /dev/null
+++ b/vendor/github.com/mgutz/ansi/print.go
@@ -0,0 +1,57 @@
+package ansi
+
+import (
+ "fmt"
+ "sort"
+
+ colorable "github.com/mattn/go-colorable"
+)
+
+// PrintStyles prints all style combinations to the terminal.
+func PrintStyles() {
+ // for compatibility with Windows, not needed for *nix
+ stdout := colorable.NewColorableStdout()
+
+ bgColors := []string{
+ "",
+ ":black",
+ ":red",
+ ":green",
+ ":yellow",
+ ":blue",
+ ":magenta",
+ ":cyan",
+ ":white",
+ }
+
+ keys := make([]string, 0, len(Colors))
+ for k := range Colors {
+ keys = append(keys, k)
+ }
+
+ sort.Sort(sort.StringSlice(keys))
+
+ for _, fg := range keys {
+ for _, bg := range bgColors {
+ fmt.Fprintln(stdout, padColor(fg, []string{"" + bg, "+b" + bg, "+bh" + bg, "+u" + bg}))
+ fmt.Fprintln(stdout, padColor(fg, []string{"+s" + bg, "+i" + bg}))
+ fmt.Fprintln(stdout, padColor(fg, []string{"+uh" + bg, "+B" + bg, "+Bb" + bg /* backgrounds */, "" + bg + "+h"}))
+ fmt.Fprintln(stdout, padColor(fg, []string{"+b" + bg + "+h", "+bh" + bg + "+h", "+u" + bg + "+h", "+uh" + bg + "+h"}))
+ }
+ }
+}
+
+func pad(s string, length int) string {
+ for len(s) < length {
+ s += " "
+ }
+ return s
+}
+
+func padColor(color string, styles []string) string {
+ buffer := ""
+ for _, style := range styles {
+ buffer += Color(pad(color+style, 20), color+style)
+ }
+ return buffer
+}
diff --git a/vendor/github.com/mitchellh/go-homedir/LICENSE b/vendor/github.com/mitchellh/go-homedir/LICENSE
new file mode 100644
index 0000000000..f9c841a51e
--- /dev/null
+++ b/vendor/github.com/mitchellh/go-homedir/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2013 Mitchell Hashimoto
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/vendor/github.com/mitchellh/go-homedir/README.md b/vendor/github.com/mitchellh/go-homedir/README.md
new file mode 100644
index 0000000000..d70706d5b3
--- /dev/null
+++ b/vendor/github.com/mitchellh/go-homedir/README.md
@@ -0,0 +1,14 @@
+# go-homedir
+
+This is a Go library for detecting the user's home directory without
+the use of cgo, so the library can be used in cross-compilation environments.
+
+Usage is incredibly simple, just call `homedir.Dir()` to get the home directory
+for a user, and `homedir.Expand()` to expand the `~` in a path to the home
+directory.
+
+**Why not just use `os/user`?** The built-in `os/user` package requires
+cgo on Darwin systems. This means that any Go code that uses that package
+cannot cross compile. But 99% of the time the use for `os/user` is just to
+retrieve the home directory, which we can do for the current user without
+cgo. This library does that, enabling cross-compilation.
diff --git a/vendor/github.com/mitchellh/go-homedir/go.mod b/vendor/github.com/mitchellh/go-homedir/go.mod
new file mode 100644
index 0000000000..7efa09a043
--- /dev/null
+++ b/vendor/github.com/mitchellh/go-homedir/go.mod
@@ -0,0 +1 @@
+module github.com/mitchellh/go-homedir
diff --git a/vendor/github.com/mitchellh/go-homedir/homedir.go b/vendor/github.com/mitchellh/go-homedir/homedir.go
new file mode 100644
index 0000000000..25378537ea
--- /dev/null
+++ b/vendor/github.com/mitchellh/go-homedir/homedir.go
@@ -0,0 +1,167 @@
+package homedir
+
+import (
+ "bytes"
+ "errors"
+ "os"
+ "os/exec"
+ "path/filepath"
+ "runtime"
+ "strconv"
+ "strings"
+ "sync"
+)
+
+// DisableCache will disable caching of the home directory. Caching is enabled
+// by default.
+var DisableCache bool
+
+var homedirCache string
+var cacheLock sync.RWMutex
+
+// Dir returns the home directory for the executing user.
+//
+// This uses an OS-specific method for discovering the home directory.
+// An error is returned if a home directory cannot be detected.
+func Dir() (string, error) {
+ if !DisableCache {
+ cacheLock.RLock()
+ cached := homedirCache
+ cacheLock.RUnlock()
+ if cached != "" {
+ return cached, nil
+ }
+ }
+
+ cacheLock.Lock()
+ defer cacheLock.Unlock()
+
+ var result string
+ var err error
+ if runtime.GOOS == "windows" {
+ result, err = dirWindows()
+ } else {
+ // Unix-like system, so just assume Unix
+ result, err = dirUnix()
+ }
+
+ if err != nil {
+ return "", err
+ }
+ homedirCache = result
+ return result, nil
+}
+
+// Expand expands the path to include the home directory if the path
+// is prefixed with `~`. If it isn't prefixed with `~`, the path is
+// returned as-is.
+func Expand(path string) (string, error) {
+ if len(path) == 0 {
+ return path, nil
+ }
+
+ if path[0] != '~' {
+ return path, nil
+ }
+
+ if len(path) > 1 && path[1] != '/' && path[1] != '\\' {
+ return "", errors.New("cannot expand user-specific home dir")
+ }
+
+ dir, err := Dir()
+ if err != nil {
+ return "", err
+ }
+
+ return filepath.Join(dir, path[1:]), nil
+}
+
+// Reset clears the cache, forcing the next call to Dir to re-detect
+// the home directory. This generally never has to be called, but can be
+// useful in tests if you're modifying the home directory via the HOME
+// env var or something.
+func Reset() {
+ cacheLock.Lock()
+ defer cacheLock.Unlock()
+ homedirCache = ""
+}
+
+func dirUnix() (string, error) {
+ homeEnv := "HOME"
+ if runtime.GOOS == "plan9" {
+ // On plan9, env vars are lowercase.
+ homeEnv = "home"
+ }
+
+ // First prefer the HOME environmental variable
+ if home := os.Getenv(homeEnv); home != "" {
+ return home, nil
+ }
+
+ var stdout bytes.Buffer
+
+ // If that fails, try OS specific commands
+ if runtime.GOOS == "darwin" {
+ cmd := exec.Command("sh", "-c", `dscl -q . -read /Users/"$(whoami)" NFSHomeDirectory | sed 's/^[^ ]*: //'`)
+ cmd.Stdout = &stdout
+ if err := cmd.Run(); err == nil {
+ result := strings.TrimSpace(stdout.String())
+ if result != "" {
+ return result, nil
+ }
+ }
+ } else {
+ cmd := exec.Command("getent", "passwd", strconv.Itoa(os.Getuid()))
+ cmd.Stdout = &stdout
+ if err := cmd.Run(); err != nil {
+ // If the error is ErrNotFound, we ignore it. Otherwise, return it.
+ if err != exec.ErrNotFound {
+ return "", err
+ }
+ } else {
+ if passwd := strings.TrimSpace(stdout.String()); passwd != "" {
+ // username:password:uid:gid:gecos:home:shell
+ passwdParts := strings.SplitN(passwd, ":", 7)
+ if len(passwdParts) > 5 {
+ return passwdParts[5], nil
+ }
+ }
+ }
+ }
+
+ // If all else fails, try the shell
+ stdout.Reset()
+ cmd := exec.Command("sh", "-c", "cd && pwd")
+ cmd.Stdout = &stdout
+ if err := cmd.Run(); err != nil {
+ return "", err
+ }
+
+ result := strings.TrimSpace(stdout.String())
+ if result == "" {
+ return "", errors.New("blank output when reading home directory")
+ }
+
+ return result, nil
+}
+
+func dirWindows() (string, error) {
+ // First prefer the HOME environmental variable
+ if home := os.Getenv("HOME"); home != "" {
+ return home, nil
+ }
+
+ // Prefer standard environment variable USERPROFILE
+ if home := os.Getenv("USERPROFILE"); home != "" {
+ return home, nil
+ }
+
+ drive := os.Getenv("HOMEDRIVE")
+ path := os.Getenv("HOMEPATH")
+ home := drive + path
+ if drive == "" || path == "" {
+ return "", errors.New("HOMEDRIVE, HOMEPATH, or USERPROFILE are blank")
+ }
+
+ return home, nil
+}
diff --git a/vendor/github.com/pmezard/go-difflib/LICENSE b/vendor/github.com/pmezard/go-difflib/LICENSE
new file mode 100644
index 0000000000..c67dad612a
--- /dev/null
+++ b/vendor/github.com/pmezard/go-difflib/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) 2013, Patrick Mezard
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+ The names of its contributors may not be used to endorse or promote
+products derived from this software without specific prior written
+permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/github.com/pmezard/go-difflib/difflib/difflib.go b/vendor/github.com/pmezard/go-difflib/difflib/difflib.go
new file mode 100644
index 0000000000..003e99fadb
--- /dev/null
+++ b/vendor/github.com/pmezard/go-difflib/difflib/difflib.go
@@ -0,0 +1,772 @@
+// Package difflib is a partial port of Python difflib module.
+//
+// It provides tools to compare sequences of strings and generate textual diffs.
+//
+// The following class and functions have been ported:
+//
+// - SequenceMatcher
+//
+// - unified_diff
+//
+// - context_diff
+//
+// Getting unified diffs was the main goal of the port. Keep in mind this code
+// is mostly suitable to output text differences in a human friendly way, there
+// are no guarantees generated diffs are consumable by patch(1).
+package difflib
+
+import (
+ "bufio"
+ "bytes"
+ "fmt"
+ "io"
+ "strings"
+)
+
+func min(a, b int) int {
+ if a < b {
+ return a
+ }
+ return b
+}
+
+func max(a, b int) int {
+ if a > b {
+ return a
+ }
+ return b
+}
+
+func calculateRatio(matches, length int) float64 {
+ if length > 0 {
+ return 2.0 * float64(matches) / float64(length)
+ }
+ return 1.0
+}
+
+type Match struct {
+ A int
+ B int
+ Size int
+}
+
+type OpCode struct {
+ Tag byte
+ I1 int
+ I2 int
+ J1 int
+ J2 int
+}
+
+// SequenceMatcher compares sequence of strings. The basic
+// algorithm predates, and is a little fancier than, an algorithm
+// published in the late 1980's by Ratcliff and Obershelp under the
+// hyperbolic name "gestalt pattern matching". The basic idea is to find
+// the longest contiguous matching subsequence that contains no "junk"
+// elements (R-O doesn't address junk). The same idea is then applied
+// recursively to the pieces of the sequences to the left and to the right
+// of the matching subsequence. This does not yield minimal edit
+// sequences, but does tend to yield matches that "look right" to people.
+//
+// SequenceMatcher tries to compute a "human-friendly diff" between two
+// sequences. Unlike e.g. UNIX(tm) diff, the fundamental notion is the
+// longest *contiguous* & junk-free matching subsequence. That's what
+// catches peoples' eyes. The Windows(tm) windiff has another interesting
+// notion, pairing up elements that appear uniquely in each sequence.
+// That, and the method here, appear to yield more intuitive difference
+// reports than does diff. This method appears to be the least vulnerable
+// to synching up on blocks of "junk lines", though (like blank lines in
+// ordinary text files, or maybe "" lines in HTML files). That may be
+// because this is the only method of the 3 that has a *concept* of
+// "junk" .
+//
+// Timing: Basic R-O is cubic time worst case and quadratic time expected
+// case. SequenceMatcher is quadratic time for the worst case and has
+// expected-case behavior dependent in a complicated way on how many
+// elements the sequences have in common; best case time is linear.
+type SequenceMatcher struct {
+ a []string
+ b []string
+ b2j map[string][]int
+ IsJunk func(string) bool
+ autoJunk bool
+ bJunk map[string]struct{}
+ matchingBlocks []Match
+ fullBCount map[string]int
+ bPopular map[string]struct{}
+ opCodes []OpCode
+}
+
+func NewMatcher(a, b []string) *SequenceMatcher {
+ m := SequenceMatcher{autoJunk: true}
+ m.SetSeqs(a, b)
+ return &m
+}
+
+func NewMatcherWithJunk(a, b []string, autoJunk bool,
+ isJunk func(string) bool) *SequenceMatcher {
+
+ m := SequenceMatcher{IsJunk: isJunk, autoJunk: autoJunk}
+ m.SetSeqs(a, b)
+ return &m
+}
+
+// Set two sequences to be compared.
+func (m *SequenceMatcher) SetSeqs(a, b []string) {
+ m.SetSeq1(a)
+ m.SetSeq2(b)
+}
+
+// Set the first sequence to be compared. The second sequence to be compared is
+// not changed.
+//
+// SequenceMatcher computes and caches detailed information about the second
+// sequence, so if you want to compare one sequence S against many sequences,
+// use .SetSeq2(s) once and call .SetSeq1(x) repeatedly for each of the other
+// sequences.
+//
+// See also SetSeqs() and SetSeq2().
+func (m *SequenceMatcher) SetSeq1(a []string) {
+ if &a == &m.a {
+ return
+ }
+ m.a = a
+ m.matchingBlocks = nil
+ m.opCodes = nil
+}
+
+// Set the second sequence to be compared. The first sequence to be compared is
+// not changed.
+func (m *SequenceMatcher) SetSeq2(b []string) {
+ if &b == &m.b {
+ return
+ }
+ m.b = b
+ m.matchingBlocks = nil
+ m.opCodes = nil
+ m.fullBCount = nil
+ m.chainB()
+}
+
+func (m *SequenceMatcher) chainB() {
+ // Populate line -> index mapping
+ b2j := map[string][]int{}
+ for i, s := range m.b {
+ indices := b2j[s]
+ indices = append(indices, i)
+ b2j[s] = indices
+ }
+
+ // Purge junk elements
+ m.bJunk = map[string]struct{}{}
+ if m.IsJunk != nil {
+ junk := m.bJunk
+ for s, _ := range b2j {
+ if m.IsJunk(s) {
+ junk[s] = struct{}{}
+ }
+ }
+ for s, _ := range junk {
+ delete(b2j, s)
+ }
+ }
+
+ // Purge remaining popular elements
+ popular := map[string]struct{}{}
+ n := len(m.b)
+ if m.autoJunk && n >= 200 {
+ ntest := n/100 + 1
+ for s, indices := range b2j {
+ if len(indices) > ntest {
+ popular[s] = struct{}{}
+ }
+ }
+ for s, _ := range popular {
+ delete(b2j, s)
+ }
+ }
+ m.bPopular = popular
+ m.b2j = b2j
+}
+
+func (m *SequenceMatcher) isBJunk(s string) bool {
+ _, ok := m.bJunk[s]
+ return ok
+}
+
+// Find longest matching block in a[alo:ahi] and b[blo:bhi].
+//
+// If IsJunk is not defined:
+//
+// Return (i,j,k) such that a[i:i+k] is equal to b[j:j+k], where
+// alo <= i <= i+k <= ahi
+// blo <= j <= j+k <= bhi
+// and for all (i',j',k') meeting those conditions,
+// k >= k'
+// i <= i'
+// and if i == i', j <= j'
+//
+// In other words, of all maximal matching blocks, return one that
+// starts earliest in a, and of all those maximal matching blocks that
+// start earliest in a, return the one that starts earliest in b.
+//
+// If IsJunk is defined, first the longest matching block is
+// determined as above, but with the additional restriction that no
+// junk element appears in the block. Then that block is extended as
+// far as possible by matching (only) junk elements on both sides. So
+// the resulting block never matches on junk except as identical junk
+// happens to be adjacent to an "interesting" match.
+//
+// If no blocks match, return (alo, blo, 0).
+func (m *SequenceMatcher) findLongestMatch(alo, ahi, blo, bhi int) Match {
+ // CAUTION: stripping common prefix or suffix would be incorrect.
+ // E.g.,
+ // ab
+ // acab
+ // Longest matching block is "ab", but if common prefix is
+ // stripped, it's "a" (tied with "b"). UNIX(tm) diff does so
+ // strip, so ends up claiming that ab is changed to acab by
+ // inserting "ca" in the middle. That's minimal but unintuitive:
+ // "it's obvious" that someone inserted "ac" at the front.
+ // Windiff ends up at the same place as diff, but by pairing up
+ // the unique 'b's and then matching the first two 'a's.
+ besti, bestj, bestsize := alo, blo, 0
+
+ // find longest junk-free match
+ // during an iteration of the loop, j2len[j] = length of longest
+ // junk-free match ending with a[i-1] and b[j]
+ j2len := map[int]int{}
+ for i := alo; i != ahi; i++ {
+ // look at all instances of a[i] in b; note that because
+ // b2j has no junk keys, the loop is skipped if a[i] is junk
+ newj2len := map[int]int{}
+ for _, j := range m.b2j[m.a[i]] {
+ // a[i] matches b[j]
+ if j < blo {
+ continue
+ }
+ if j >= bhi {
+ break
+ }
+ k := j2len[j-1] + 1
+ newj2len[j] = k
+ if k > bestsize {
+ besti, bestj, bestsize = i-k+1, j-k+1, k
+ }
+ }
+ j2len = newj2len
+ }
+
+ // Extend the best by non-junk elements on each end. In particular,
+ // "popular" non-junk elements aren't in b2j, which greatly speeds
+ // the inner loop above, but also means "the best" match so far
+ // doesn't contain any junk *or* popular non-junk elements.
+ for besti > alo && bestj > blo && !m.isBJunk(m.b[bestj-1]) &&
+ m.a[besti-1] == m.b[bestj-1] {
+ besti, bestj, bestsize = besti-1, bestj-1, bestsize+1
+ }
+ for besti+bestsize < ahi && bestj+bestsize < bhi &&
+ !m.isBJunk(m.b[bestj+bestsize]) &&
+ m.a[besti+bestsize] == m.b[bestj+bestsize] {
+ bestsize += 1
+ }
+
+ // Now that we have a wholly interesting match (albeit possibly
+ // empty!), we may as well suck up the matching junk on each
+ // side of it too. Can't think of a good reason not to, and it
+ // saves post-processing the (possibly considerable) expense of
+ // figuring out what to do with it. In the case of an empty
+ // interesting match, this is clearly the right thing to do,
+ // because no other kind of match is possible in the regions.
+ for besti > alo && bestj > blo && m.isBJunk(m.b[bestj-1]) &&
+ m.a[besti-1] == m.b[bestj-1] {
+ besti, bestj, bestsize = besti-1, bestj-1, bestsize+1
+ }
+ for besti+bestsize < ahi && bestj+bestsize < bhi &&
+ m.isBJunk(m.b[bestj+bestsize]) &&
+ m.a[besti+bestsize] == m.b[bestj+bestsize] {
+ bestsize += 1
+ }
+
+ return Match{A: besti, B: bestj, Size: bestsize}
+}
+
+// Return list of triples describing matching subsequences.
+//
+// Each triple is of the form (i, j, n), and means that
+// a[i:i+n] == b[j:j+n]. The triples are monotonically increasing in
+// i and in j. It's also guaranteed that if (i, j, n) and (i', j', n') are
+// adjacent triples in the list, and the second is not the last triple in the
+// list, then i+n != i' or j+n != j'. IOW, adjacent triples never describe
+// adjacent equal blocks.
+//
+// The last triple is a dummy, (len(a), len(b), 0), and is the only
+// triple with n==0.
+func (m *SequenceMatcher) GetMatchingBlocks() []Match {
+ if m.matchingBlocks != nil {
+ return m.matchingBlocks
+ }
+
+ var matchBlocks func(alo, ahi, blo, bhi int, matched []Match) []Match
+ matchBlocks = func(alo, ahi, blo, bhi int, matched []Match) []Match {
+ match := m.findLongestMatch(alo, ahi, blo, bhi)
+ i, j, k := match.A, match.B, match.Size
+ if match.Size > 0 {
+ if alo < i && blo < j {
+ matched = matchBlocks(alo, i, blo, j, matched)
+ }
+ matched = append(matched, match)
+ if i+k < ahi && j+k < bhi {
+ matched = matchBlocks(i+k, ahi, j+k, bhi, matched)
+ }
+ }
+ return matched
+ }
+ matched := matchBlocks(0, len(m.a), 0, len(m.b), nil)
+
+ // It's possible that we have adjacent equal blocks in the
+ // matching_blocks list now.
+ nonAdjacent := []Match{}
+ i1, j1, k1 := 0, 0, 0
+ for _, b := range matched {
+ // Is this block adjacent to i1, j1, k1?
+ i2, j2, k2 := b.A, b.B, b.Size
+ if i1+k1 == i2 && j1+k1 == j2 {
+ // Yes, so collapse them -- this just increases the length of
+ // the first block by the length of the second, and the first
+ // block so lengthened remains the block to compare against.
+ k1 += k2
+ } else {
+ // Not adjacent. Remember the first block (k1==0 means it's
+ // the dummy we started with), and make the second block the
+ // new block to compare against.
+ if k1 > 0 {
+ nonAdjacent = append(nonAdjacent, Match{i1, j1, k1})
+ }
+ i1, j1, k1 = i2, j2, k2
+ }
+ }
+ if k1 > 0 {
+ nonAdjacent = append(nonAdjacent, Match{i1, j1, k1})
+ }
+
+ nonAdjacent = append(nonAdjacent, Match{len(m.a), len(m.b), 0})
+ m.matchingBlocks = nonAdjacent
+ return m.matchingBlocks
+}
+
+// Return list of 5-tuples describing how to turn a into b.
+//
+// Each tuple is of the form (tag, i1, i2, j1, j2). The first tuple
+// has i1 == j1 == 0, and remaining tuples have i1 == the i2 from the
+// tuple preceding it, and likewise for j1 == the previous j2.
+//
+// The tags are characters, with these meanings:
+//
+// 'r' (replace): a[i1:i2] should be replaced by b[j1:j2]
+//
+// 'd' (delete): a[i1:i2] should be deleted, j1==j2 in this case.
+//
+// 'i' (insert): b[j1:j2] should be inserted at a[i1:i1], i1==i2 in this case.
+//
+// 'e' (equal): a[i1:i2] == b[j1:j2]
+func (m *SequenceMatcher) GetOpCodes() []OpCode {
+ if m.opCodes != nil {
+ return m.opCodes
+ }
+ i, j := 0, 0
+ matching := m.GetMatchingBlocks()
+ opCodes := make([]OpCode, 0, len(matching))
+ for _, m := range matching {
+ // invariant: we've pumped out correct diffs to change
+ // a[:i] into b[:j], and the next matching block is
+ // a[ai:ai+size] == b[bj:bj+size]. So we need to pump
+ // out a diff to change a[i:ai] into b[j:bj], pump out
+ // the matching block, and move (i,j) beyond the match
+ ai, bj, size := m.A, m.B, m.Size
+ tag := byte(0)
+ if i < ai && j < bj {
+ tag = 'r'
+ } else if i < ai {
+ tag = 'd'
+ } else if j < bj {
+ tag = 'i'
+ }
+ if tag > 0 {
+ opCodes = append(opCodes, OpCode{tag, i, ai, j, bj})
+ }
+ i, j = ai+size, bj+size
+ // the list of matching blocks is terminated by a
+ // sentinel with size 0
+ if size > 0 {
+ opCodes = append(opCodes, OpCode{'e', ai, i, bj, j})
+ }
+ }
+ m.opCodes = opCodes
+ return m.opCodes
+}
+
+// Isolate change clusters by eliminating ranges with no changes.
+//
+// Return a generator of groups with up to n lines of context.
+// Each group is in the same format as returned by GetOpCodes().
+func (m *SequenceMatcher) GetGroupedOpCodes(n int) [][]OpCode {
+ if n < 0 {
+ n = 3
+ }
+ codes := m.GetOpCodes()
+ if len(codes) == 0 {
+ codes = []OpCode{OpCode{'e', 0, 1, 0, 1}}
+ }
+ // Fixup leading and trailing groups if they show no changes.
+ if codes[0].Tag == 'e' {
+ c := codes[0]
+ i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2
+ codes[0] = OpCode{c.Tag, max(i1, i2-n), i2, max(j1, j2-n), j2}
+ }
+ if codes[len(codes)-1].Tag == 'e' {
+ c := codes[len(codes)-1]
+ i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2
+ codes[len(codes)-1] = OpCode{c.Tag, i1, min(i2, i1+n), j1, min(j2, j1+n)}
+ }
+ nn := n + n
+ groups := [][]OpCode{}
+ group := []OpCode{}
+ for _, c := range codes {
+ i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2
+ // End the current group and start a new one whenever
+ // there is a large range with no changes.
+ if c.Tag == 'e' && i2-i1 > nn {
+ group = append(group, OpCode{c.Tag, i1, min(i2, i1+n),
+ j1, min(j2, j1+n)})
+ groups = append(groups, group)
+ group = []OpCode{}
+ i1, j1 = max(i1, i2-n), max(j1, j2-n)
+ }
+ group = append(group, OpCode{c.Tag, i1, i2, j1, j2})
+ }
+ if len(group) > 0 && !(len(group) == 1 && group[0].Tag == 'e') {
+ groups = append(groups, group)
+ }
+ return groups
+}
+
+// Return a measure of the sequences' similarity (float in [0,1]).
+//
+// Where T is the total number of elements in both sequences, and
+// M is the number of matches, this is 2.0*M / T.
+// Note that this is 1 if the sequences are identical, and 0 if
+// they have nothing in common.
+//
+// .Ratio() is expensive to compute if you haven't already computed
+// .GetMatchingBlocks() or .GetOpCodes(), in which case you may
+// want to try .QuickRatio() or .RealQuickRation() first to get an
+// upper bound.
+func (m *SequenceMatcher) Ratio() float64 {
+ matches := 0
+ for _, m := range m.GetMatchingBlocks() {
+ matches += m.Size
+ }
+ return calculateRatio(matches, len(m.a)+len(m.b))
+}
+
+// Return an upper bound on ratio() relatively quickly.
+//
+// This isn't defined beyond that it is an upper bound on .Ratio(), and
+// is faster to compute.
+func (m *SequenceMatcher) QuickRatio() float64 {
+ // viewing a and b as multisets, set matches to the cardinality
+ // of their intersection; this counts the number of matches
+ // without regard to order, so is clearly an upper bound
+ if m.fullBCount == nil {
+ m.fullBCount = map[string]int{}
+ for _, s := range m.b {
+ m.fullBCount[s] = m.fullBCount[s] + 1
+ }
+ }
+
+ // avail[x] is the number of times x appears in 'b' less the
+ // number of times we've seen it in 'a' so far ... kinda
+ avail := map[string]int{}
+ matches := 0
+ for _, s := range m.a {
+ n, ok := avail[s]
+ if !ok {
+ n = m.fullBCount[s]
+ }
+ avail[s] = n - 1
+ if n > 0 {
+ matches += 1
+ }
+ }
+ return calculateRatio(matches, len(m.a)+len(m.b))
+}
+
+// Return an upper bound on ratio() very quickly.
+//
+// This isn't defined beyond that it is an upper bound on .Ratio(), and
+// is faster to compute than either .Ratio() or .QuickRatio().
+func (m *SequenceMatcher) RealQuickRatio() float64 {
+ la, lb := len(m.a), len(m.b)
+ return calculateRatio(min(la, lb), la+lb)
+}
+
+// Convert range to the "ed" format
+func formatRangeUnified(start, stop int) string {
+ // Per the diff spec at http://www.unix.org/single_unix_specification/
+ beginning := start + 1 // lines start numbering with one
+ length := stop - start
+ if length == 1 {
+ return fmt.Sprintf("%d", beginning)
+ }
+ if length == 0 {
+ beginning -= 1 // empty ranges begin at line just before the range
+ }
+ return fmt.Sprintf("%d,%d", beginning, length)
+}
+
+// Unified diff parameters
+type UnifiedDiff struct {
+ A []string // First sequence lines
+ FromFile string // First file name
+ FromDate string // First file time
+ B []string // Second sequence lines
+ ToFile string // Second file name
+ ToDate string // Second file time
+ Eol string // Headers end of line, defaults to LF
+ Context int // Number of context lines
+}
+
+// Compare two sequences of lines; generate the delta as a unified diff.
+//
+// Unified diffs are a compact way of showing line changes and a few
+// lines of context. The number of context lines is set by 'n' which
+// defaults to three.
+//
+// By default, the diff control lines (those with ---, +++, or @@) are
+// created with a trailing newline. This is helpful so that inputs
+// created from file.readlines() result in diffs that are suitable for
+// file.writelines() since both the inputs and outputs have trailing
+// newlines.
+//
+// For inputs that do not have trailing newlines, set the lineterm
+// argument to "" so that the output will be uniformly newline free.
+//
+// The unidiff format normally has a header for filenames and modification
+// times. Any or all of these may be specified using strings for
+// 'fromfile', 'tofile', 'fromfiledate', and 'tofiledate'.
+// The modification times are normally expressed in the ISO 8601 format.
+func WriteUnifiedDiff(writer io.Writer, diff UnifiedDiff) error {
+ buf := bufio.NewWriter(writer)
+ defer buf.Flush()
+ wf := func(format string, args ...interface{}) error {
+ _, err := buf.WriteString(fmt.Sprintf(format, args...))
+ return err
+ }
+ ws := func(s string) error {
+ _, err := buf.WriteString(s)
+ return err
+ }
+
+ if len(diff.Eol) == 0 {
+ diff.Eol = "\n"
+ }
+
+ started := false
+ m := NewMatcher(diff.A, diff.B)
+ for _, g := range m.GetGroupedOpCodes(diff.Context) {
+ if !started {
+ started = true
+ fromDate := ""
+ if len(diff.FromDate) > 0 {
+ fromDate = "\t" + diff.FromDate
+ }
+ toDate := ""
+ if len(diff.ToDate) > 0 {
+ toDate = "\t" + diff.ToDate
+ }
+ if diff.FromFile != "" || diff.ToFile != "" {
+ err := wf("--- %s%s%s", diff.FromFile, fromDate, diff.Eol)
+ if err != nil {
+ return err
+ }
+ err = wf("+++ %s%s%s", diff.ToFile, toDate, diff.Eol)
+ if err != nil {
+ return err
+ }
+ }
+ }
+ first, last := g[0], g[len(g)-1]
+ range1 := formatRangeUnified(first.I1, last.I2)
+ range2 := formatRangeUnified(first.J1, last.J2)
+ if err := wf("@@ -%s +%s @@%s", range1, range2, diff.Eol); err != nil {
+ return err
+ }
+ for _, c := range g {
+ i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2
+ if c.Tag == 'e' {
+ for _, line := range diff.A[i1:i2] {
+ if err := ws(" " + line); err != nil {
+ return err
+ }
+ }
+ continue
+ }
+ if c.Tag == 'r' || c.Tag == 'd' {
+ for _, line := range diff.A[i1:i2] {
+ if err := ws("-" + line); err != nil {
+ return err
+ }
+ }
+ }
+ if c.Tag == 'r' || c.Tag == 'i' {
+ for _, line := range diff.B[j1:j2] {
+ if err := ws("+" + line); err != nil {
+ return err
+ }
+ }
+ }
+ }
+ }
+ return nil
+}
+
+// Like WriteUnifiedDiff but returns the diff a string.
+func GetUnifiedDiffString(diff UnifiedDiff) (string, error) {
+ w := &bytes.Buffer{}
+ err := WriteUnifiedDiff(w, diff)
+ return string(w.Bytes()), err
+}
+
+// Convert range to the "ed" format.
+func formatRangeContext(start, stop int) string {
+ // Per the diff spec at http://www.unix.org/single_unix_specification/
+ beginning := start + 1 // lines start numbering with one
+ length := stop - start
+ if length == 0 {
+ beginning -= 1 // empty ranges begin at line just before the range
+ }
+ if length <= 1 {
+ return fmt.Sprintf("%d", beginning)
+ }
+ return fmt.Sprintf("%d,%d", beginning, beginning+length-1)
+}
+
+type ContextDiff UnifiedDiff
+
+// Compare two sequences of lines; generate the delta as a context diff.
+//
+// Context diffs are a compact way of showing line changes and a few
+// lines of context. The number of context lines is set by diff.Context
+// which defaults to three.
+//
+// By default, the diff control lines (those with *** or ---) are
+// created with a trailing newline.
+//
+// For inputs that do not have trailing newlines, set the diff.Eol
+// argument to "" so that the output will be uniformly newline free.
+//
+// The context diff format normally has a header for filenames and
+// modification times. Any or all of these may be specified using
+// strings for diff.FromFile, diff.ToFile, diff.FromDate, diff.ToDate.
+// The modification times are normally expressed in the ISO 8601 format.
+// If not specified, the strings default to blanks.
+func WriteContextDiff(writer io.Writer, diff ContextDiff) error {
+ buf := bufio.NewWriter(writer)
+ defer buf.Flush()
+ var diffErr error
+ wf := func(format string, args ...interface{}) {
+ _, err := buf.WriteString(fmt.Sprintf(format, args...))
+ if diffErr == nil && err != nil {
+ diffErr = err
+ }
+ }
+ ws := func(s string) {
+ _, err := buf.WriteString(s)
+ if diffErr == nil && err != nil {
+ diffErr = err
+ }
+ }
+
+ if len(diff.Eol) == 0 {
+ diff.Eol = "\n"
+ }
+
+ prefix := map[byte]string{
+ 'i': "+ ",
+ 'd': "- ",
+ 'r': "! ",
+ 'e': " ",
+ }
+
+ started := false
+ m := NewMatcher(diff.A, diff.B)
+ for _, g := range m.GetGroupedOpCodes(diff.Context) {
+ if !started {
+ started = true
+ fromDate := ""
+ if len(diff.FromDate) > 0 {
+ fromDate = "\t" + diff.FromDate
+ }
+ toDate := ""
+ if len(diff.ToDate) > 0 {
+ toDate = "\t" + diff.ToDate
+ }
+ if diff.FromFile != "" || diff.ToFile != "" {
+ wf("*** %s%s%s", diff.FromFile, fromDate, diff.Eol)
+ wf("--- %s%s%s", diff.ToFile, toDate, diff.Eol)
+ }
+ }
+
+ first, last := g[0], g[len(g)-1]
+ ws("***************" + diff.Eol)
+
+ range1 := formatRangeContext(first.I1, last.I2)
+ wf("*** %s ****%s", range1, diff.Eol)
+ for _, c := range g {
+ if c.Tag == 'r' || c.Tag == 'd' {
+ for _, cc := range g {
+ if cc.Tag == 'i' {
+ continue
+ }
+ for _, line := range diff.A[cc.I1:cc.I2] {
+ ws(prefix[cc.Tag] + line)
+ }
+ }
+ break
+ }
+ }
+
+ range2 := formatRangeContext(first.J1, last.J2)
+ wf("--- %s ----%s", range2, diff.Eol)
+ for _, c := range g {
+ if c.Tag == 'r' || c.Tag == 'i' {
+ for _, cc := range g {
+ if cc.Tag == 'd' {
+ continue
+ }
+ for _, line := range diff.B[cc.J1:cc.J2] {
+ ws(prefix[cc.Tag] + line)
+ }
+ }
+ break
+ }
+ }
+ }
+ return diffErr
+}
+
+// Like WriteContextDiff but returns the diff a string.
+func GetContextDiffString(diff ContextDiff) (string, error) {
+ w := &bytes.Buffer{}
+ err := WriteContextDiff(w, diff)
+ return string(w.Bytes()), err
+}
+
+// Split a string on "\n" while preserving them. The output can be used
+// as input for UnifiedDiff and ContextDiff structures.
+func SplitLines(s string) []string {
+ lines := strings.SplitAfter(s, "\n")
+ lines[len(lines)-1] += "\n"
+ return lines
+}
diff --git a/vendor/github.com/sirupsen/logrus/.gitignore b/vendor/github.com/sirupsen/logrus/.gitignore
new file mode 100644
index 0000000000..6b7d7d1e8b
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/.gitignore
@@ -0,0 +1,2 @@
+logrus
+vendor
diff --git a/vendor/github.com/sirupsen/logrus/.travis.yml b/vendor/github.com/sirupsen/logrus/.travis.yml
new file mode 100644
index 0000000000..a8f1545158
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/.travis.yml
@@ -0,0 +1,52 @@
+language: go
+go_import_path: github.com/sirupsen/logrus
+env:
+ - GOMAXPROCS=4 GORACE=halt_on_error=1
+matrix:
+ include:
+ - go: 1.10.x
+ install:
+ - go get github.com/stretchr/testify/assert
+ - go get golang.org/x/crypto/ssh/terminal
+ - go get golang.org/x/sys/unix
+ - go get golang.org/x/sys/windows
+ script:
+ - go test -race -v ./...
+ - go: 1.11.x
+ env: GO111MODULE=on
+ install:
+ - go mod download
+ script:
+ - go test -race -v ./...
+ - go: 1.11.x
+ env: GO111MODULE=off
+ install:
+ - go get github.com/stretchr/testify/assert
+ - go get golang.org/x/crypto/ssh/terminal
+ - go get golang.org/x/sys/unix
+ - go get golang.org/x/sys/windows
+ script:
+ - go test -race -v ./...
+ - go: 1.10.x
+ install:
+ - go get github.com/stretchr/testify/assert
+ - go get golang.org/x/crypto/ssh/terminal
+ - go get golang.org/x/sys/unix
+ - go get golang.org/x/sys/windows
+ script:
+ - go test -race -v -tags appengine ./...
+ - go: 1.11.x
+ env: GO111MODULE=on
+ install:
+ - go mod download
+ script:
+ - go test -race -v -tags appengine ./...
+ - go: 1.11.x
+ env: GO111MODULE=off
+ install:
+ - go get github.com/stretchr/testify/assert
+ - go get golang.org/x/crypto/ssh/terminal
+ - go get golang.org/x/sys/unix
+ - go get golang.org/x/sys/windows
+ script:
+ - go test -race -v -tags appengine ./...
diff --git a/vendor/github.com/sirupsen/logrus/CHANGELOG.md b/vendor/github.com/sirupsen/logrus/CHANGELOG.md
new file mode 100644
index 0000000000..cb85d9f9f6
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/CHANGELOG.md
@@ -0,0 +1,165 @@
+# 1.2.0
+This new release introduces:
+ * A new method `SetReportCaller` in the `Logger` to enable the file, line and calling function from which the trace has been issued
+ * A new trace level named `Trace` whose level is below `Debug`
+ * A configurable exit function to be called upon a Fatal trace
+ * The `Level` object now implements `encoding.TextUnmarshaler` interface
+
+# 1.1.1
+This is a bug fix release.
+ * fix the build break on Solaris
+ * don't drop a whole trace in JSONFormatter when a field param is a function pointer which can not be serialized
+
+# 1.1.0
+This new release introduces:
+ * several fixes:
+ * a fix for a race condition on entry formatting
+ * proper cleanup of previously used entries before putting them back in the pool
+ * the extra new line at the end of message in text formatter has been removed
+ * a new global public API to check if a level is activated: IsLevelEnabled
+ * the following methods have been added to the Logger object
+ * IsLevelEnabled
+ * SetFormatter
+ * SetOutput
+ * ReplaceHooks
+ * introduction of go module
+ * an indent configuration for the json formatter
+ * output colour support for windows
+ * the field sort function is now configurable for text formatter
+ * the CLICOLOR and CLICOLOR\_FORCE environment variable support in text formater
+
+# 1.0.6
+
+This new release introduces:
+ * a new api WithTime which allows to easily force the time of the log entry
+ which is mostly useful for logger wrapper
+ * a fix reverting the immutability of the entry given as parameter to the hooks
+ a new configuration field of the json formatter in order to put all the fields
+ in a nested dictionnary
+ * a new SetOutput method in the Logger
+ * a new configuration of the textformatter to configure the name of the default keys
+ * a new configuration of the text formatter to disable the level truncation
+
+# 1.0.5
+
+* Fix hooks race (#707)
+* Fix panic deadlock (#695)
+
+# 1.0.4
+
+* Fix race when adding hooks (#612)
+* Fix terminal check in AppEngine (#635)
+
+# 1.0.3
+
+* Replace example files with testable examples
+
+# 1.0.2
+
+* bug: quote non-string values in text formatter (#583)
+* Make (*Logger) SetLevel a public method
+
+# 1.0.1
+
+* bug: fix escaping in text formatter (#575)
+
+# 1.0.0
+
+* Officially changed name to lower-case
+* bug: colors on Windows 10 (#541)
+* bug: fix race in accessing level (#512)
+
+# 0.11.5
+
+* feature: add writer and writerlevel to entry (#372)
+
+# 0.11.4
+
+* bug: fix undefined variable on solaris (#493)
+
+# 0.11.3
+
+* formatter: configure quoting of empty values (#484)
+* formatter: configure quoting character (default is `"`) (#484)
+* bug: fix not importing io correctly in non-linux environments (#481)
+
+# 0.11.2
+
+* bug: fix windows terminal detection (#476)
+
+# 0.11.1
+
+* bug: fix tty detection with custom out (#471)
+
+# 0.11.0
+
+* performance: Use bufferpool to allocate (#370)
+* terminal: terminal detection for app-engine (#343)
+* feature: exit handler (#375)
+
+# 0.10.0
+
+* feature: Add a test hook (#180)
+* feature: `ParseLevel` is now case-insensitive (#326)
+* feature: `FieldLogger` interface that generalizes `Logger` and `Entry` (#308)
+* performance: avoid re-allocations on `WithFields` (#335)
+
+# 0.9.0
+
+* logrus/text_formatter: don't emit empty msg
+* logrus/hooks/airbrake: move out of main repository
+* logrus/hooks/sentry: move out of main repository
+* logrus/hooks/papertrail: move out of main repository
+* logrus/hooks/bugsnag: move out of main repository
+* logrus/core: run tests with `-race`
+* logrus/core: detect TTY based on `stderr`
+* logrus/core: support `WithError` on logger
+* logrus/core: Solaris support
+
+# 0.8.7
+
+* logrus/core: fix possible race (#216)
+* logrus/doc: small typo fixes and doc improvements
+
+
+# 0.8.6
+
+* hooks/raven: allow passing an initialized client
+
+# 0.8.5
+
+* logrus/core: revert #208
+
+# 0.8.4
+
+* formatter/text: fix data race (#218)
+
+# 0.8.3
+
+* logrus/core: fix entry log level (#208)
+* logrus/core: improve performance of text formatter by 40%
+* logrus/core: expose `LevelHooks` type
+* logrus/core: add support for DragonflyBSD and NetBSD
+* formatter/text: print structs more verbosely
+
+# 0.8.2
+
+* logrus: fix more Fatal family functions
+
+# 0.8.1
+
+* logrus: fix not exiting on `Fatalf` and `Fatalln`
+
+# 0.8.0
+
+* logrus: defaults to stderr instead of stdout
+* hooks/sentry: add special field for `*http.Request`
+* formatter/text: ignore Windows for colors
+
+# 0.7.3
+
+* formatter/\*: allow configuration of timestamp layout
+
+# 0.7.2
+
+* formatter/text: Add configuration option for time format (#158)
diff --git a/vendor/github.com/sirupsen/logrus/LICENSE b/vendor/github.com/sirupsen/logrus/LICENSE
new file mode 100644
index 0000000000..f090cb42f3
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Simon Eskildsen
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/vendor/github.com/sirupsen/logrus/README.md b/vendor/github.com/sirupsen/logrus/README.md
new file mode 100644
index 0000000000..3987310551
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/README.md
@@ -0,0 +1,494 @@
+# Logrus [![Build Status](https://travis-ci.org/sirupsen/logrus.svg?branch=master)](https://travis-ci.org/sirupsen/logrus) [![GoDoc](https://godoc.org/github.com/sirupsen/logrus?status.svg)](https://godoc.org/github.com/sirupsen/logrus)
+
+Logrus is a structured logger for Go (golang), completely API compatible with
+the standard library logger.
+
+**Seeing weird case-sensitive problems?** It's in the past been possible to
+import Logrus as both upper- and lower-case. Due to the Go package environment,
+this caused issues in the community and we needed a standard. Some environments
+experienced problems with the upper-case variant, so the lower-case was decided.
+Everything using `logrus` will need to use the lower-case:
+`github.com/sirupsen/logrus`. Any package that isn't, should be changed.
+
+To fix Glide, see [these
+comments](https://github.com/sirupsen/logrus/issues/553#issuecomment-306591437).
+For an in-depth explanation of the casing issue, see [this
+comment](https://github.com/sirupsen/logrus/issues/570#issuecomment-313933276).
+
+**Are you interested in assisting in maintaining Logrus?** Currently I have a
+lot of obligations, and I am unable to provide Logrus with the maintainership it
+needs. If you'd like to help, please reach out to me at `simon at author's
+username dot com`.
+
+Nicely color-coded in development (when a TTY is attached, otherwise just
+plain text):
+
+![Colored](http://i.imgur.com/PY7qMwd.png)
+
+With `log.SetFormatter(&log.JSONFormatter{})`, for easy parsing by logstash
+or Splunk:
+
+```json
+{"animal":"walrus","level":"info","msg":"A group of walrus emerges from the
+ocean","size":10,"time":"2014-03-10 19:57:38.562264131 -0400 EDT"}
+
+{"level":"warning","msg":"The group's number increased tremendously!",
+"number":122,"omg":true,"time":"2014-03-10 19:57:38.562471297 -0400 EDT"}
+
+{"animal":"walrus","level":"info","msg":"A giant walrus appears!",
+"size":10,"time":"2014-03-10 19:57:38.562500591 -0400 EDT"}
+
+{"animal":"walrus","level":"info","msg":"Tremendously sized cow enters the ocean.",
+"size":9,"time":"2014-03-10 19:57:38.562527896 -0400 EDT"}
+
+{"level":"fatal","msg":"The ice breaks!","number":100,"omg":true,
+"time":"2014-03-10 19:57:38.562543128 -0400 EDT"}
+```
+
+With the default `log.SetFormatter(&log.TextFormatter{})` when a TTY is not
+attached, the output is compatible with the
+[logfmt](http://godoc.org/github.com/kr/logfmt) format:
+
+```text
+time="2015-03-26T01:27:38-04:00" level=debug msg="Started observing beach" animal=walrus number=8
+time="2015-03-26T01:27:38-04:00" level=info msg="A group of walrus emerges from the ocean" animal=walrus size=10
+time="2015-03-26T01:27:38-04:00" level=warning msg="The group's number increased tremendously!" number=122 omg=true
+time="2015-03-26T01:27:38-04:00" level=debug msg="Temperature changes" temperature=-4
+time="2015-03-26T01:27:38-04:00" level=panic msg="It's over 9000!" animal=orca size=9009
+time="2015-03-26T01:27:38-04:00" level=fatal msg="The ice breaks!" err=&{0x2082280c0 map[animal:orca size:9009] 2015-03-26 01:27:38.441574009 -0400 EDT panic It's over 9000!} number=100 omg=true
+```
+To ensure this behaviour even if a TTY is attached, set your formatter as follows:
+
+```go
+ log.SetFormatter(&log.TextFormatter{
+ DisableColors: true,
+ FullTimestamp: true,
+ })
+```
+
+#### Logging Method Name
+
+If you wish to add the calling method as a field, instruct the logger via:
+```go
+log.SetReportCaller(true)
+```
+This adds the caller as 'method' like so:
+
+```json
+{"animal":"penguin","level":"fatal","method":"github.com/sirupsen/arcticcreatures.migrate","msg":"a penguin swims by",
+"time":"2014-03-10 19:57:38.562543129 -0400 EDT"}
+```
+
+```text
+time="2015-03-26T01:27:38-04:00" level=fatal method=github.com/sirupsen/arcticcreatures.migrate msg="a penguin swims by" animal=penguin
+```
+Note that this does add measurable overhead - the cost will depend on the version of Go, but is
+between 20 and 40% in recent tests with 1.6 and 1.7. You can validate this in your
+environment via benchmarks:
+```
+go test -bench=.*CallerTracing
+```
+
+
+#### Case-sensitivity
+
+The organization's name was changed to lower-case--and this will not be changed
+back. If you are getting import conflicts due to case sensitivity, please use
+the lower-case import: `github.com/sirupsen/logrus`.
+
+#### Example
+
+The simplest way to use Logrus is simply the package-level exported logger:
+
+```go
+package main
+
+import (
+ log "github.com/sirupsen/logrus"
+)
+
+func main() {
+ log.WithFields(log.Fields{
+ "animal": "walrus",
+ }).Info("A walrus appears")
+}
+```
+
+Note that it's completely api-compatible with the stdlib logger, so you can
+replace your `log` imports everywhere with `log "github.com/sirupsen/logrus"`
+and you'll now have the flexibility of Logrus. You can customize it all you
+want:
+
+```go
+package main
+
+import (
+ "os"
+ log "github.com/sirupsen/logrus"
+)
+
+func init() {
+ // Log as JSON instead of the default ASCII formatter.
+ log.SetFormatter(&log.JSONFormatter{})
+
+ // Output to stdout instead of the default stderr
+ // Can be any io.Writer, see below for File example
+ log.SetOutput(os.Stdout)
+
+ // Only log the warning severity or above.
+ log.SetLevel(log.WarnLevel)
+}
+
+func main() {
+ log.WithFields(log.Fields{
+ "animal": "walrus",
+ "size": 10,
+ }).Info("A group of walrus emerges from the ocean")
+
+ log.WithFields(log.Fields{
+ "omg": true,
+ "number": 122,
+ }).Warn("The group's number increased tremendously!")
+
+ log.WithFields(log.Fields{
+ "omg": true,
+ "number": 100,
+ }).Fatal("The ice breaks!")
+
+ // A common pattern is to re-use fields between logging statements by re-using
+ // the logrus.Entry returned from WithFields()
+ contextLogger := log.WithFields(log.Fields{
+ "common": "this is a common field",
+ "other": "I also should be logged always",
+ })
+
+ contextLogger.Info("I'll be logged with common and other field")
+ contextLogger.Info("Me too")
+}
+```
+
+For more advanced usage such as logging to multiple locations from the same
+application, you can also create an instance of the `logrus` Logger:
+
+```go
+package main
+
+import (
+ "os"
+ "github.com/sirupsen/logrus"
+)
+
+// Create a new instance of the logger. You can have any number of instances.
+var log = logrus.New()
+
+func main() {
+ // The API for setting attributes is a little different than the package level
+ // exported logger. See Godoc.
+ log.Out = os.Stdout
+
+ // You could set this to any `io.Writer` such as a file
+ // file, err := os.OpenFile("logrus.log", os.O_CREATE|os.O_WRONLY, 0666)
+ // if err == nil {
+ // log.Out = file
+ // } else {
+ // log.Info("Failed to log to file, using default stderr")
+ // }
+
+ log.WithFields(logrus.Fields{
+ "animal": "walrus",
+ "size": 10,
+ }).Info("A group of walrus emerges from the ocean")
+}
+```
+
+#### Fields
+
+Logrus encourages careful, structured logging through logging fields instead of
+long, unparseable error messages. For example, instead of: `log.Fatalf("Failed
+to send event %s to topic %s with key %d")`, you should log the much more
+discoverable:
+
+```go
+log.WithFields(log.Fields{
+ "event": event,
+ "topic": topic,
+ "key": key,
+}).Fatal("Failed to send event")
+```
+
+We've found this API forces you to think about logging in a way that produces
+much more useful logging messages. We've been in countless situations where just
+a single added field to a log statement that was already there would've saved us
+hours. The `WithFields` call is optional.
+
+In general, with Logrus using any of the `printf`-family functions should be
+seen as a hint you should add a field, however, you can still use the
+`printf`-family functions with Logrus.
+
+#### Default Fields
+
+Often it's helpful to have fields _always_ attached to log statements in an
+application or parts of one. For example, you may want to always log the
+`request_id` and `user_ip` in the context of a request. Instead of writing
+`log.WithFields(log.Fields{"request_id": request_id, "user_ip": user_ip})` on
+every line, you can create a `logrus.Entry` to pass around instead:
+
+```go
+requestLogger := log.WithFields(log.Fields{"request_id": request_id, "user_ip": user_ip})
+requestLogger.Info("something happened on that request") # will log request_id and user_ip
+requestLogger.Warn("something not great happened")
+```
+
+#### Hooks
+
+You can add hooks for logging levels. For example to send errors to an exception
+tracking service on `Error`, `Fatal` and `Panic`, info to StatsD or log to
+multiple places simultaneously, e.g. syslog.
+
+Logrus comes with [built-in hooks](hooks/). Add those, or your custom hook, in
+`init`:
+
+```go
+import (
+ log "github.com/sirupsen/logrus"
+ "gopkg.in/gemnasium/logrus-airbrake-hook.v2" // the package is named "airbrake"
+ logrus_syslog "github.com/sirupsen/logrus/hooks/syslog"
+ "log/syslog"
+)
+
+func init() {
+
+ // Use the Airbrake hook to report errors that have Error severity or above to
+ // an exception tracker. You can create custom hooks, see the Hooks section.
+ log.AddHook(airbrake.NewHook(123, "xyz", "production"))
+
+ hook, err := logrus_syslog.NewSyslogHook("udp", "localhost:514", syslog.LOG_INFO, "")
+ if err != nil {
+ log.Error("Unable to connect to local syslog daemon")
+ } else {
+ log.AddHook(hook)
+ }
+}
+```
+Note: Syslog hook also support connecting to local syslog (Ex. "/dev/log" or "/var/run/syslog" or "/var/run/log"). For the detail, please check the [syslog hook README](hooks/syslog/README.md).
+
+A list of currently known of service hook can be found in this wiki [page](https://github.com/sirupsen/logrus/wiki/Hooks)
+
+
+#### Level logging
+
+Logrus has seven logging levels: Trace, Debug, Info, Warning, Error, Fatal and Panic.
+
+```go
+log.Trace("Something very low level.")
+log.Debug("Useful debugging information.")
+log.Info("Something noteworthy happened!")
+log.Warn("You should probably take a look at this.")
+log.Error("Something failed but I'm not quitting.")
+// Calls os.Exit(1) after logging
+log.Fatal("Bye.")
+// Calls panic() after logging
+log.Panic("I'm bailing.")
+```
+
+You can set the logging level on a `Logger`, then it will only log entries with
+that severity or anything above it:
+
+```go
+// Will log anything that is info or above (warn, error, fatal, panic). Default.
+log.SetLevel(log.InfoLevel)
+```
+
+It may be useful to set `log.Level = logrus.DebugLevel` in a debug or verbose
+environment if your application has that.
+
+#### Entries
+
+Besides the fields added with `WithField` or `WithFields` some fields are
+automatically added to all logging events:
+
+1. `time`. The timestamp when the entry was created.
+2. `msg`. The logging message passed to `{Info,Warn,Error,Fatal,Panic}` after
+ the `AddFields` call. E.g. `Failed to send event.`
+3. `level`. The logging level. E.g. `info`.
+
+#### Environments
+
+Logrus has no notion of environment.
+
+If you wish for hooks and formatters to only be used in specific environments,
+you should handle that yourself. For example, if your application has a global
+variable `Environment`, which is a string representation of the environment you
+could do:
+
+```go
+import (
+ log "github.com/sirupsen/logrus"
+)
+
+init() {
+ // do something here to set environment depending on an environment variable
+ // or command-line flag
+ if Environment == "production" {
+ log.SetFormatter(&log.JSONFormatter{})
+ } else {
+ // The TextFormatter is default, you don't actually have to do this.
+ log.SetFormatter(&log.TextFormatter{})
+ }
+}
+```
+
+This configuration is how `logrus` was intended to be used, but JSON in
+production is mostly only useful if you do log aggregation with tools like
+Splunk or Logstash.
+
+#### Formatters
+
+The built-in logging formatters are:
+
+* `logrus.TextFormatter`. Logs the event in colors if stdout is a tty, otherwise
+ without colors.
+ * *Note:* to force colored output when there is no TTY, set the `ForceColors`
+ field to `true`. To force no colored output even if there is a TTY set the
+ `DisableColors` field to `true`. For Windows, see
+ [github.com/mattn/go-colorable](https://github.com/mattn/go-colorable).
+ * When colors are enabled, levels are truncated to 4 characters by default. To disable
+ truncation set the `DisableLevelTruncation` field to `true`.
+ * All options are listed in the [generated docs](https://godoc.org/github.com/sirupsen/logrus#TextFormatter).
+* `logrus.JSONFormatter`. Logs fields as JSON.
+ * All options are listed in the [generated docs](https://godoc.org/github.com/sirupsen/logrus#JSONFormatter).
+
+Third party logging formatters:
+
+* [`FluentdFormatter`](https://github.com/joonix/log). Formats entries that can be parsed by Kubernetes and Google Container Engine.
+* [`GELF`](https://github.com/fabienm/go-logrus-formatters). Formats entries so they comply to Graylog's [GELF 1.1 specification](http://docs.graylog.org/en/2.4/pages/gelf.html).
+* [`logstash`](https://github.com/bshuster-repo/logrus-logstash-hook). Logs fields as [Logstash](http://logstash.net) Events.
+* [`prefixed`](https://github.com/x-cray/logrus-prefixed-formatter). Displays log entry source along with alternative layout.
+* [`zalgo`](https://github.com/aybabtme/logzalgo). Invoking the P͉̫o̳̼̊w̖͈̰͎e̬͔̭͂r͚̼̹̲ ̫͓͉̳͈ō̠͕͖̚f̝͍̠ ͕̲̞͖͑Z̖̫̤̫ͪa͉̬͈̗l͖͎g̳̥o̰̥̅!̣͔̲̻͊̄ ̙̘̦̹̦.
+
+You can define your formatter by implementing the `Formatter` interface,
+requiring a `Format` method. `Format` takes an `*Entry`. `entry.Data` is a
+`Fields` type (`map[string]interface{}`) with all your fields as well as the
+default ones (see Entries section above):
+
+```go
+type MyJSONFormatter struct {
+}
+
+log.SetFormatter(new(MyJSONFormatter))
+
+func (f *MyJSONFormatter) Format(entry *Entry) ([]byte, error) {
+ // Note this doesn't include Time, Level and Message which are available on
+ // the Entry. Consult `godoc` on information about those fields or read the
+ // source of the official loggers.
+ serialized, err := json.Marshal(entry.Data)
+ if err != nil {
+ return nil, fmt.Errorf("Failed to marshal fields to JSON, %v", err)
+ }
+ return append(serialized, '\n'), nil
+}
+```
+
+#### Logger as an `io.Writer`
+
+Logrus can be transformed into an `io.Writer`. That writer is the end of an `io.Pipe` and it is your responsibility to close it.
+
+```go
+w := logger.Writer()
+defer w.Close()
+
+srv := http.Server{
+ // create a stdlib log.Logger that writes to
+ // logrus.Logger.
+ ErrorLog: log.New(w, "", 0),
+}
+```
+
+Each line written to that writer will be printed the usual way, using formatters
+and hooks. The level for those entries is `info`.
+
+This means that we can override the standard library logger easily:
+
+```go
+logger := logrus.New()
+logger.Formatter = &logrus.JSONFormatter{}
+
+// Use logrus for standard log output
+// Note that `log` here references stdlib's log
+// Not logrus imported under the name `log`.
+log.SetOutput(logger.Writer())
+```
+
+#### Rotation
+
+Log rotation is not provided with Logrus. Log rotation should be done by an
+external program (like `logrotate(8)`) that can compress and delete old log
+entries. It should not be a feature of the application-level logger.
+
+#### Tools
+
+| Tool | Description |
+| ---- | ----------- |
+|[Logrus Mate](https://github.com/gogap/logrus_mate)|Logrus mate is a tool for Logrus to manage loggers, you can initial logger's level, hook and formatter by config file, the logger will generated with different config at different environment.|
+|[Logrus Viper Helper](https://github.com/heirko/go-contrib/tree/master/logrusHelper)|An Helper around Logrus to wrap with spf13/Viper to load configuration with fangs! And to simplify Logrus configuration use some behavior of [Logrus Mate](https://github.com/gogap/logrus_mate). [sample](https://github.com/heirko/iris-contrib/blob/master/middleware/logrus-logger/example) |
+
+#### Testing
+
+Logrus has a built in facility for asserting the presence of log messages. This is implemented through the `test` hook and provides:
+
+* decorators for existing logger (`test.NewLocal` and `test.NewGlobal`) which basically just add the `test` hook
+* a test logger (`test.NewNullLogger`) that just records log messages (and does not output any):
+
+```go
+import(
+ "github.com/sirupsen/logrus"
+ "github.com/sirupsen/logrus/hooks/test"
+ "github.com/stretchr/testify/assert"
+ "testing"
+)
+
+func TestSomething(t*testing.T){
+ logger, hook := test.NewNullLogger()
+ logger.Error("Helloerror")
+
+ assert.Equal(t, 1, len(hook.Entries))
+ assert.Equal(t, logrus.ErrorLevel, hook.LastEntry().Level)
+ assert.Equal(t, "Helloerror", hook.LastEntry().Message)
+
+ hook.Reset()
+ assert.Nil(t, hook.LastEntry())
+}
+```
+
+#### Fatal handlers
+
+Logrus can register one or more functions that will be called when any `fatal`
+level message is logged. The registered handlers will be executed before
+logrus performs a `os.Exit(1)`. This behavior may be helpful if callers need
+to gracefully shutdown. Unlike a `panic("Something went wrong...")` call which can be intercepted with a deferred `recover` a call to `os.Exit(1)` can not be intercepted.
+
+```
+...
+handler := func() {
+ // gracefully shutdown something...
+}
+logrus.RegisterExitHandler(handler)
+...
+```
+
+#### Thread safety
+
+By default, Logger is protected by a mutex for concurrent writes. The mutex is held when calling hooks and writing logs.
+If you are sure such locking is not needed, you can call logger.SetNoLock() to disable the locking.
+
+Situation when locking is not needed includes:
+
+* You have no hooks registered, or hooks calling is already thread-safe.
+
+* Writing to logger.Out is already thread-safe, for example:
+
+ 1) logger.Out is protected by locks.
+
+ 2) logger.Out is a os.File handler opened with `O_APPEND` flag, and every write is smaller than 4k. (This allow multi-thread/multi-process writing)
+
+ (Refer to http://www.notthewizard.com/2014/06/17/are-files-appends-really-atomic/)
diff --git a/vendor/github.com/sirupsen/logrus/alt_exit.go b/vendor/github.com/sirupsen/logrus/alt_exit.go
new file mode 100644
index 0000000000..8af90637a9
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/alt_exit.go
@@ -0,0 +1,64 @@
+package logrus
+
+// The following code was sourced and modified from the
+// https://github.com/tebeka/atexit package governed by the following license:
+//
+// Copyright (c) 2012 Miki Tebeka .
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy of
+// this software and associated documentation files (the "Software"), to deal in
+// the Software without restriction, including without limitation the rights to
+// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+// the Software, and to permit persons to whom the Software is furnished to do so,
+// subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in all
+// copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+import (
+ "fmt"
+ "os"
+)
+
+var handlers = []func(){}
+
+func runHandler(handler func()) {
+ defer func() {
+ if err := recover(); err != nil {
+ fmt.Fprintln(os.Stderr, "Error: Logrus exit handler error:", err)
+ }
+ }()
+
+ handler()
+}
+
+func runHandlers() {
+ for _, handler := range handlers {
+ runHandler(handler)
+ }
+}
+
+// Exit runs all the Logrus atexit handlers and then terminates the program using os.Exit(code)
+func Exit(code int) {
+ runHandlers()
+ os.Exit(code)
+}
+
+// RegisterExitHandler adds a Logrus Exit handler, call logrus.Exit to invoke
+// all handlers. The handlers will also be invoked when any Fatal log entry is
+// made.
+//
+// This method is useful when a caller wishes to use logrus to log a fatal
+// message but also needs to gracefully shutdown. An example usecase could be
+// closing database connections, or sending a alert that the application is
+// closing.
+func RegisterExitHandler(handler func()) {
+ handlers = append(handlers, handler)
+}
diff --git a/vendor/github.com/sirupsen/logrus/appveyor.yml b/vendor/github.com/sirupsen/logrus/appveyor.yml
new file mode 100644
index 0000000000..96c2ce15f8
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/appveyor.yml
@@ -0,0 +1,14 @@
+version: "{build}"
+platform: x64
+clone_folder: c:\gopath\src\github.com\sirupsen\logrus
+environment:
+ GOPATH: c:\gopath
+branches:
+ only:
+ - master
+install:
+ - set PATH=%GOPATH%\bin;c:\go\bin;%PATH%
+ - go version
+build_script:
+ - go get -t
+ - go test
diff --git a/vendor/github.com/sirupsen/logrus/doc.go b/vendor/github.com/sirupsen/logrus/doc.go
new file mode 100644
index 0000000000..da67aba06d
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/doc.go
@@ -0,0 +1,26 @@
+/*
+Package logrus is a structured logger for Go, completely API compatible with the standard library logger.
+
+
+The simplest way to use Logrus is simply the package-level exported logger:
+
+ package main
+
+ import (
+ log "github.com/sirupsen/logrus"
+ )
+
+ func main() {
+ log.WithFields(log.Fields{
+ "animal": "walrus",
+ "number": 1,
+ "size": 10,
+ }).Info("A walrus appears")
+ }
+
+Output:
+ time="2015-09-07T08:48:33Z" level=info msg="A walrus appears" animal=walrus number=1 size=10
+
+For a full guide visit https://github.com/sirupsen/logrus
+*/
+package logrus
diff --git a/vendor/github.com/sirupsen/logrus/entry.go b/vendor/github.com/sirupsen/logrus/entry.go
new file mode 100644
index 0000000000..df6d188def
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/entry.go
@@ -0,0 +1,393 @@
+package logrus
+
+import (
+ "bytes"
+ "fmt"
+ "os"
+ "reflect"
+ "runtime"
+ "strings"
+ "sync"
+ "time"
+)
+
+var (
+ bufferPool *sync.Pool
+
+ // qualified package name, cached at first use
+ logrusPackage string
+
+ // Positions in the call stack when tracing to report the calling method
+ minimumCallerDepth int
+
+ // Used for caller information initialisation
+ callerInitOnce sync.Once
+)
+
+const (
+ maximumCallerDepth int = 25
+ knownLogrusFrames int = 4
+)
+
+func init() {
+ bufferPool = &sync.Pool{
+ New: func() interface{} {
+ return new(bytes.Buffer)
+ },
+ }
+
+ // start at the bottom of the stack before the package-name cache is primed
+ minimumCallerDepth = 1
+}
+
+// Defines the key when adding errors using WithError.
+var ErrorKey = "error"
+
+// An entry is the final or intermediate Logrus logging entry. It contains all
+// the fields passed with WithField{,s}. It's finally logged when Trace, Debug,
+// Info, Warn, Error, Fatal or Panic is called on it. These objects can be
+// reused and passed around as much as you wish to avoid field duplication.
+type Entry struct {
+ Logger *Logger
+
+ // Contains all the fields set by the user.
+ Data Fields
+
+ // Time at which the log entry was created
+ Time time.Time
+
+ // Level the log entry was logged at: Trace, Debug, Info, Warn, Error, Fatal or Panic
+ // This field will be set on entry firing and the value will be equal to the one in Logger struct field.
+ Level Level
+
+ // Calling method, with package name
+ Caller *runtime.Frame
+
+ // Message passed to Trace, Debug, Info, Warn, Error, Fatal or Panic
+ Message string
+
+ // When formatter is called in entry.log(), a Buffer may be set to entry
+ Buffer *bytes.Buffer
+
+ // err may contain a field formatting error
+ err string
+}
+
+func NewEntry(logger *Logger) *Entry {
+ return &Entry{
+ Logger: logger,
+ // Default is three fields, plus one optional. Give a little extra room.
+ Data: make(Fields, 6),
+ }
+}
+
+// Returns the string representation from the reader and ultimately the
+// formatter.
+func (entry *Entry) String() (string, error) {
+ serialized, err := entry.Logger.Formatter.Format(entry)
+ if err != nil {
+ return "", err
+ }
+ str := string(serialized)
+ return str, nil
+}
+
+// Add an error as single field (using the key defined in ErrorKey) to the Entry.
+func (entry *Entry) WithError(err error) *Entry {
+ return entry.WithField(ErrorKey, err)
+}
+
+// Add a single field to the Entry.
+func (entry *Entry) WithField(key string, value interface{}) *Entry {
+ return entry.WithFields(Fields{key: value})
+}
+
+// Add a map of fields to the Entry.
+func (entry *Entry) WithFields(fields Fields) *Entry {
+ data := make(Fields, len(entry.Data)+len(fields))
+ for k, v := range entry.Data {
+ data[k] = v
+ }
+ fieldErr := entry.err
+ for k, v := range fields {
+ isErrField := false
+ if t := reflect.TypeOf(v); t != nil {
+ switch t.Kind() {
+ case reflect.Func:
+ isErrField = true
+ case reflect.Ptr:
+ isErrField = t.Elem().Kind() == reflect.Func
+ }
+ }
+ if isErrField {
+ tmp := fmt.Sprintf("can not add field %q", k)
+ if fieldErr != "" {
+ fieldErr = entry.err + ", " + tmp
+ } else {
+ fieldErr = tmp
+ }
+ } else {
+ data[k] = v
+ }
+ }
+ return &Entry{Logger: entry.Logger, Data: data, Time: entry.Time, err: fieldErr}
+}
+
+// Overrides the time of the Entry.
+func (entry *Entry) WithTime(t time.Time) *Entry {
+ return &Entry{Logger: entry.Logger, Data: entry.Data, Time: t, err: entry.err}
+}
+
+// getPackageName reduces a fully qualified function name to the package name
+// There really ought to be to be a better way...
+func getPackageName(f string) string {
+ for {
+ lastPeriod := strings.LastIndex(f, ".")
+ lastSlash := strings.LastIndex(f, "/")
+ if lastPeriod > lastSlash {
+ f = f[:lastPeriod]
+ } else {
+ break
+ }
+ }
+
+ return f
+}
+
+// getCaller retrieves the name of the first non-logrus calling function
+func getCaller() *runtime.Frame {
+ // Restrict the lookback frames to avoid runaway lookups
+ pcs := make([]uintptr, maximumCallerDepth)
+ depth := runtime.Callers(minimumCallerDepth, pcs)
+ frames := runtime.CallersFrames(pcs[:depth])
+
+ // cache this package's fully-qualified name
+ callerInitOnce.Do(func() {
+ logrusPackage = getPackageName(runtime.FuncForPC(pcs[0]).Name())
+
+ // now that we have the cache, we can skip a minimum count of known-logrus functions
+ // XXX this is dubious, the number of frames may vary store an entry in a logger interface
+ minimumCallerDepth = knownLogrusFrames
+ })
+
+ for f, again := frames.Next(); again; f, again = frames.Next() {
+ pkg := getPackageName(f.Function)
+
+ // If the caller isn't part of this package, we're done
+ if pkg != logrusPackage {
+ return &f
+ }
+ }
+
+ // if we got here, we failed to find the caller's context
+ return nil
+}
+
+func (entry Entry) HasCaller() (has bool) {
+ return entry.Logger != nil &&
+ entry.Logger.ReportCaller &&
+ entry.Caller != nil
+}
+
+// This function is not declared with a pointer value because otherwise
+// race conditions will occur when using multiple goroutines
+func (entry Entry) log(level Level, msg string) {
+ var buffer *bytes.Buffer
+
+ // Default to now, but allow users to override if they want.
+ //
+ // We don't have to worry about polluting future calls to Entry#log()
+ // with this assignment because this function is declared with a
+ // non-pointer receiver.
+ if entry.Time.IsZero() {
+ entry.Time = time.Now()
+ }
+
+ entry.Level = level
+ entry.Message = msg
+ if entry.Logger.ReportCaller {
+ entry.Caller = getCaller()
+ }
+
+ entry.fireHooks()
+
+ buffer = bufferPool.Get().(*bytes.Buffer)
+ buffer.Reset()
+ defer bufferPool.Put(buffer)
+ entry.Buffer = buffer
+
+ entry.write()
+
+ entry.Buffer = nil
+
+ // To avoid Entry#log() returning a value that only would make sense for
+ // panic() to use in Entry#Panic(), we avoid the allocation by checking
+ // directly here.
+ if level <= PanicLevel {
+ panic(&entry)
+ }
+}
+
+func (entry *Entry) fireHooks() {
+ entry.Logger.mu.Lock()
+ defer entry.Logger.mu.Unlock()
+ err := entry.Logger.Hooks.Fire(entry.Level, entry)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Failed to fire hook: %v\n", err)
+ }
+}
+
+func (entry *Entry) write() {
+ entry.Logger.mu.Lock()
+ defer entry.Logger.mu.Unlock()
+ serialized, err := entry.Logger.Formatter.Format(entry)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Failed to obtain reader, %v\n", err)
+ } else {
+ _, err = entry.Logger.Out.Write(serialized)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Failed to write to log, %v\n", err)
+ }
+ }
+}
+
+func (entry *Entry) Log(level Level, args ...interface{}) {
+ if entry.Logger.IsLevelEnabled(level) {
+ entry.log(level, fmt.Sprint(args...))
+ }
+}
+
+func (entry *Entry) Trace(args ...interface{}) {
+ entry.Log(TraceLevel, args...)
+}
+
+func (entry *Entry) Debug(args ...interface{}) {
+ entry.Log(DebugLevel, args...)
+}
+
+func (entry *Entry) Print(args ...interface{}) {
+ entry.Info(args...)
+}
+
+func (entry *Entry) Info(args ...interface{}) {
+ entry.Log(InfoLevel, args...)
+}
+
+func (entry *Entry) Warn(args ...interface{}) {
+ entry.Log(WarnLevel, args...)
+}
+
+func (entry *Entry) Warning(args ...interface{}) {
+ entry.Warn(args...)
+}
+
+func (entry *Entry) Error(args ...interface{}) {
+ entry.Log(ErrorLevel, args...)
+}
+
+func (entry *Entry) Fatal(args ...interface{}) {
+ entry.Log(FatalLevel, args...)
+ entry.Logger.Exit(1)
+}
+
+func (entry *Entry) Panic(args ...interface{}) {
+ entry.Log(PanicLevel, args...)
+ panic(fmt.Sprint(args...))
+}
+
+// Entry Printf family functions
+
+func (entry *Entry) Logf(level Level, format string, args ...interface{}) {
+ entry.Log(level, fmt.Sprintf(format, args...))
+}
+
+func (entry *Entry) Tracef(format string, args ...interface{}) {
+ entry.Logf(TraceLevel, format, args...)
+}
+
+func (entry *Entry) Debugf(format string, args ...interface{}) {
+ entry.Logf(DebugLevel, format, args...)
+}
+
+func (entry *Entry) Infof(format string, args ...interface{}) {
+ entry.Logf(InfoLevel, format, args...)
+}
+
+func (entry *Entry) Printf(format string, args ...interface{}) {
+ entry.Infof(format, args...)
+}
+
+func (entry *Entry) Warnf(format string, args ...interface{}) {
+ entry.Logf(WarnLevel, format, args...)
+}
+
+func (entry *Entry) Warningf(format string, args ...interface{}) {
+ entry.Warnf(format, args...)
+}
+
+func (entry *Entry) Errorf(format string, args ...interface{}) {
+ entry.Logf(ErrorLevel, format, args...)
+}
+
+func (entry *Entry) Fatalf(format string, args ...interface{}) {
+ entry.Logf(FatalLevel, format, args...)
+ entry.Logger.Exit(1)
+}
+
+func (entry *Entry) Panicf(format string, args ...interface{}) {
+ entry.Logf(PanicLevel, format, args...)
+}
+
+// Entry Println family functions
+
+func (entry *Entry) Logln(level Level, args ...interface{}) {
+ if entry.Logger.IsLevelEnabled(level) {
+ entry.Log(level, entry.sprintlnn(args...))
+ }
+}
+
+func (entry *Entry) Traceln(args ...interface{}) {
+ entry.Logln(TraceLevel, args...)
+}
+
+func (entry *Entry) Debugln(args ...interface{}) {
+ entry.Logln(DebugLevel, args...)
+}
+
+func (entry *Entry) Infoln(args ...interface{}) {
+ entry.Logln(InfoLevel, args...)
+}
+
+func (entry *Entry) Println(args ...interface{}) {
+ entry.Infoln(args...)
+}
+
+func (entry *Entry) Warnln(args ...interface{}) {
+ entry.Logln(WarnLevel, args...)
+}
+
+func (entry *Entry) Warningln(args ...interface{}) {
+ entry.Warnln(args...)
+}
+
+func (entry *Entry) Errorln(args ...interface{}) {
+ entry.Logln(ErrorLevel, args...)
+}
+
+func (entry *Entry) Fatalln(args ...interface{}) {
+ entry.Logln(FatalLevel, args...)
+ entry.Logger.Exit(1)
+}
+
+func (entry *Entry) Panicln(args ...interface{}) {
+ entry.Logln(PanicLevel, args...)
+}
+
+// Sprintlnn => Sprint no newline. This is to get the behavior of how
+// fmt.Sprintln where spaces are always added between operands, regardless of
+// their type. Instead of vendoring the Sprintln implementation to spare a
+// string allocation, we do the simplest thing.
+func (entry *Entry) sprintlnn(args ...interface{}) string {
+ msg := fmt.Sprintln(args...)
+ return msg[:len(msg)-1]
+}
diff --git a/vendor/github.com/sirupsen/logrus/exported.go b/vendor/github.com/sirupsen/logrus/exported.go
new file mode 100644
index 0000000000..7342613c37
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/exported.go
@@ -0,0 +1,219 @@
+package logrus
+
+import (
+ "io"
+ "time"
+)
+
+var (
+ // std is the name of the standard logger in stdlib `log`
+ std = New()
+)
+
+func StandardLogger() *Logger {
+ return std
+}
+
+// SetOutput sets the standard logger output.
+func SetOutput(out io.Writer) {
+ std.SetOutput(out)
+}
+
+// SetFormatter sets the standard logger formatter.
+func SetFormatter(formatter Formatter) {
+ std.SetFormatter(formatter)
+}
+
+// SetReportCaller sets whether the standard logger will include the calling
+// method as a field.
+func SetReportCaller(include bool) {
+ std.SetReportCaller(include)
+}
+
+// SetLevel sets the standard logger level.
+func SetLevel(level Level) {
+ std.SetLevel(level)
+}
+
+// GetLevel returns the standard logger level.
+func GetLevel() Level {
+ return std.GetLevel()
+}
+
+// IsLevelEnabled checks if the log level of the standard logger is greater than the level param
+func IsLevelEnabled(level Level) bool {
+ return std.IsLevelEnabled(level)
+}
+
+// AddHook adds a hook to the standard logger hooks.
+func AddHook(hook Hook) {
+ std.AddHook(hook)
+}
+
+// WithError creates an entry from the standard logger and adds an error to it, using the value defined in ErrorKey as key.
+func WithError(err error) *Entry {
+ return std.WithField(ErrorKey, err)
+}
+
+// WithField creates an entry from the standard logger and adds a field to
+// it. If you want multiple fields, use `WithFields`.
+//
+// Note that it doesn't log until you call Debug, Print, Info, Warn, Fatal
+// or Panic on the Entry it returns.
+func WithField(key string, value interface{}) *Entry {
+ return std.WithField(key, value)
+}
+
+// WithFields creates an entry from the standard logger and adds multiple
+// fields to it. This is simply a helper for `WithField`, invoking it
+// once for each field.
+//
+// Note that it doesn't log until you call Debug, Print, Info, Warn, Fatal
+// or Panic on the Entry it returns.
+func WithFields(fields Fields) *Entry {
+ return std.WithFields(fields)
+}
+
+// WithTime creats an entry from the standard logger and overrides the time of
+// logs generated with it.
+//
+// Note that it doesn't log until you call Debug, Print, Info, Warn, Fatal
+// or Panic on the Entry it returns.
+func WithTime(t time.Time) *Entry {
+ return std.WithTime(t)
+}
+
+// Trace logs a message at level Trace on the standard logger.
+func Trace(args ...interface{}) {
+ std.Trace(args...)
+}
+
+// Debug logs a message at level Debug on the standard logger.
+func Debug(args ...interface{}) {
+ std.Debug(args...)
+}
+
+// Print logs a message at level Info on the standard logger.
+func Print(args ...interface{}) {
+ std.Print(args...)
+}
+
+// Info logs a message at level Info on the standard logger.
+func Info(args ...interface{}) {
+ std.Info(args...)
+}
+
+// Warn logs a message at level Warn on the standard logger.
+func Warn(args ...interface{}) {
+ std.Warn(args...)
+}
+
+// Warning logs a message at level Warn on the standard logger.
+func Warning(args ...interface{}) {
+ std.Warning(args...)
+}
+
+// Error logs a message at level Error on the standard logger.
+func Error(args ...interface{}) {
+ std.Error(args...)
+}
+
+// Panic logs a message at level Panic on the standard logger.
+func Panic(args ...interface{}) {
+ std.Panic(args...)
+}
+
+// Fatal logs a message at level Fatal on the standard logger then the process will exit with status set to 1.
+func Fatal(args ...interface{}) {
+ std.Fatal(args...)
+}
+
+// Tracef logs a message at level Trace on the standard logger.
+func Tracef(format string, args ...interface{}) {
+ std.Tracef(format, args...)
+}
+
+// Debugf logs a message at level Debug on the standard logger.
+func Debugf(format string, args ...interface{}) {
+ std.Debugf(format, args...)
+}
+
+// Printf logs a message at level Info on the standard logger.
+func Printf(format string, args ...interface{}) {
+ std.Printf(format, args...)
+}
+
+// Infof logs a message at level Info on the standard logger.
+func Infof(format string, args ...interface{}) {
+ std.Infof(format, args...)
+}
+
+// Warnf logs a message at level Warn on the standard logger.
+func Warnf(format string, args ...interface{}) {
+ std.Warnf(format, args...)
+}
+
+// Warningf logs a message at level Warn on the standard logger.
+func Warningf(format string, args ...interface{}) {
+ std.Warningf(format, args...)
+}
+
+// Errorf logs a message at level Error on the standard logger.
+func Errorf(format string, args ...interface{}) {
+ std.Errorf(format, args...)
+}
+
+// Panicf logs a message at level Panic on the standard logger.
+func Panicf(format string, args ...interface{}) {
+ std.Panicf(format, args...)
+}
+
+// Fatalf logs a message at level Fatal on the standard logger then the process will exit with status set to 1.
+func Fatalf(format string, args ...interface{}) {
+ std.Fatalf(format, args...)
+}
+
+// Traceln logs a message at level Trace on the standard logger.
+func Traceln(args ...interface{}) {
+ std.Traceln(args...)
+}
+
+// Debugln logs a message at level Debug on the standard logger.
+func Debugln(args ...interface{}) {
+ std.Debugln(args...)
+}
+
+// Println logs a message at level Info on the standard logger.
+func Println(args ...interface{}) {
+ std.Println(args...)
+}
+
+// Infoln logs a message at level Info on the standard logger.
+func Infoln(args ...interface{}) {
+ std.Infoln(args...)
+}
+
+// Warnln logs a message at level Warn on the standard logger.
+func Warnln(args ...interface{}) {
+ std.Warnln(args...)
+}
+
+// Warningln logs a message at level Warn on the standard logger.
+func Warningln(args ...interface{}) {
+ std.Warningln(args...)
+}
+
+// Errorln logs a message at level Error on the standard logger.
+func Errorln(args ...interface{}) {
+ std.Errorln(args...)
+}
+
+// Panicln logs a message at level Panic on the standard logger.
+func Panicln(args ...interface{}) {
+ std.Panicln(args...)
+}
+
+// Fatalln logs a message at level Fatal on the standard logger then the process will exit with status set to 1.
+func Fatalln(args ...interface{}) {
+ std.Fatalln(args...)
+}
diff --git a/vendor/github.com/sirupsen/logrus/formatter.go b/vendor/github.com/sirupsen/logrus/formatter.go
new file mode 100644
index 0000000000..408883773e
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/formatter.go
@@ -0,0 +1,78 @@
+package logrus
+
+import "time"
+
+// Default key names for the default fields
+const (
+ defaultTimestampFormat = time.RFC3339
+ FieldKeyMsg = "msg"
+ FieldKeyLevel = "level"
+ FieldKeyTime = "time"
+ FieldKeyLogrusError = "logrus_error"
+ FieldKeyFunc = "func"
+ FieldKeyFile = "file"
+)
+
+// The Formatter interface is used to implement a custom Formatter. It takes an
+// `Entry`. It exposes all the fields, including the default ones:
+//
+// * `entry.Data["msg"]`. The message passed from Info, Warn, Error ..
+// * `entry.Data["time"]`. The timestamp.
+// * `entry.Data["level"]. The level the entry was logged at.
+//
+// Any additional fields added with `WithField` or `WithFields` are also in
+// `entry.Data`. Format is expected to return an array of bytes which are then
+// logged to `logger.Out`.
+type Formatter interface {
+ Format(*Entry) ([]byte, error)
+}
+
+// This is to not silently overwrite `time`, `msg`, `func` and `level` fields when
+// dumping it. If this code wasn't there doing:
+//
+// logrus.WithField("level", 1).Info("hello")
+//
+// Would just silently drop the user provided level. Instead with this code
+// it'll logged as:
+//
+// {"level": "info", "fields.level": 1, "msg": "hello", "time": "..."}
+//
+// It's not exported because it's still using Data in an opinionated way. It's to
+// avoid code duplication between the two default formatters.
+func prefixFieldClashes(data Fields, fieldMap FieldMap, reportCaller bool) {
+ timeKey := fieldMap.resolve(FieldKeyTime)
+ if t, ok := data[timeKey]; ok {
+ data["fields."+timeKey] = t
+ delete(data, timeKey)
+ }
+
+ msgKey := fieldMap.resolve(FieldKeyMsg)
+ if m, ok := data[msgKey]; ok {
+ data["fields."+msgKey] = m
+ delete(data, msgKey)
+ }
+
+ levelKey := fieldMap.resolve(FieldKeyLevel)
+ if l, ok := data[levelKey]; ok {
+ data["fields."+levelKey] = l
+ delete(data, levelKey)
+ }
+
+ logrusErrKey := fieldMap.resolve(FieldKeyLogrusError)
+ if l, ok := data[logrusErrKey]; ok {
+ data["fields."+logrusErrKey] = l
+ delete(data, logrusErrKey)
+ }
+
+ // If reportCaller is not set, 'func' will not conflict.
+ if reportCaller {
+ funcKey := fieldMap.resolve(FieldKeyFunc)
+ if l, ok := data[funcKey]; ok {
+ data["fields."+funcKey] = l
+ }
+ fileKey := fieldMap.resolve(FieldKeyFile)
+ if l, ok := data[fileKey]; ok {
+ data["fields."+fileKey] = l
+ }
+ }
+}
diff --git a/vendor/github.com/sirupsen/logrus/go.mod b/vendor/github.com/sirupsen/logrus/go.mod
new file mode 100644
index 0000000000..94574cc635
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/go.mod
@@ -0,0 +1,11 @@
+module github.com/sirupsen/logrus
+
+require (
+ github.com/davecgh/go-spew v1.1.1 // indirect
+ github.com/konsorten/go-windows-terminal-sequences v1.0.1
+ github.com/pmezard/go-difflib v1.0.0 // indirect
+ github.com/stretchr/objx v0.1.1 // indirect
+ github.com/stretchr/testify v1.2.2
+ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793
+ golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33
+)
diff --git a/vendor/github.com/sirupsen/logrus/go.sum b/vendor/github.com/sirupsen/logrus/go.sum
new file mode 100644
index 0000000000..133d34ae11
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/go.sum
@@ -0,0 +1,15 @@
+github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe h1:CHRGQ8V7OlCYtwaKPJi3iA7J+YdNKdo8j7nG5IgDhjs=
+github.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A=
+github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
+github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
+golang.org/x/crypto v0.0.0-20180904163835-0709b304e793 h1:u+LnwYTOOW7Ukr/fppxEb1Nwz0AtPflrblfvUudpo+I=
+golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33 h1:I6FyU15t786LL7oL/hn43zqTuEGr4PN7F4XJ1p4E3Y8=
+golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
diff --git a/vendor/github.com/sirupsen/logrus/hooks.go b/vendor/github.com/sirupsen/logrus/hooks.go
new file mode 100644
index 0000000000..3f151cdc39
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/hooks.go
@@ -0,0 +1,34 @@
+package logrus
+
+// A hook to be fired when logging on the logging levels returned from
+// `Levels()` on your implementation of the interface. Note that this is not
+// fired in a goroutine or a channel with workers, you should handle such
+// functionality yourself if your call is non-blocking and you don't wish for
+// the logging calls for levels returned from `Levels()` to block.
+type Hook interface {
+ Levels() []Level
+ Fire(*Entry) error
+}
+
+// Internal type for storing the hooks on a logger instance.
+type LevelHooks map[Level][]Hook
+
+// Add a hook to an instance of logger. This is called with
+// `log.Hooks.Add(new(MyHook))` where `MyHook` implements the `Hook` interface.
+func (hooks LevelHooks) Add(hook Hook) {
+ for _, level := range hook.Levels() {
+ hooks[level] = append(hooks[level], hook)
+ }
+}
+
+// Fire all the hooks for the passed level. Used by `entry.log` to fire
+// appropriate hooks for a log entry.
+func (hooks LevelHooks) Fire(level Level, entry *Entry) error {
+ for _, hook := range hooks[level] {
+ if err := hook.Fire(entry); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
diff --git a/vendor/github.com/sirupsen/logrus/json_formatter.go b/vendor/github.com/sirupsen/logrus/json_formatter.go
new file mode 100644
index 0000000000..2605753599
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/json_formatter.go
@@ -0,0 +1,105 @@
+package logrus
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+)
+
+type fieldKey string
+
+// FieldMap allows customization of the key names for default fields.
+type FieldMap map[fieldKey]string
+
+func (f FieldMap) resolve(key fieldKey) string {
+ if k, ok := f[key]; ok {
+ return k
+ }
+
+ return string(key)
+}
+
+// JSONFormatter formats logs into parsable json
+type JSONFormatter struct {
+ // TimestampFormat sets the format used for marshaling timestamps.
+ TimestampFormat string
+
+ // DisableTimestamp allows disabling automatic timestamps in output
+ DisableTimestamp bool
+
+ // DataKey allows users to put all the log entry parameters into a nested dictionary at a given key.
+ DataKey string
+
+ // FieldMap allows users to customize the names of keys for default fields.
+ // As an example:
+ // formatter := &JSONFormatter{
+ // FieldMap: FieldMap{
+ // FieldKeyTime: "@timestamp",
+ // FieldKeyLevel: "@level",
+ // FieldKeyMsg: "@message",
+ // FieldKeyFunc: "@caller",
+ // },
+ // }
+ FieldMap FieldMap
+
+ // PrettyPrint will indent all json logs
+ PrettyPrint bool
+}
+
+// Format renders a single log entry
+func (f *JSONFormatter) Format(entry *Entry) ([]byte, error) {
+ data := make(Fields, len(entry.Data)+4)
+ for k, v := range entry.Data {
+ switch v := v.(type) {
+ case error:
+ // Otherwise errors are ignored by `encoding/json`
+ // https://github.com/sirupsen/logrus/issues/137
+ data[k] = v.Error()
+ default:
+ data[k] = v
+ }
+ }
+
+ if f.DataKey != "" {
+ newData := make(Fields, 4)
+ newData[f.DataKey] = data
+ data = newData
+ }
+
+ prefixFieldClashes(data, f.FieldMap, entry.HasCaller())
+
+ timestampFormat := f.TimestampFormat
+ if timestampFormat == "" {
+ timestampFormat = defaultTimestampFormat
+ }
+
+ if entry.err != "" {
+ data[f.FieldMap.resolve(FieldKeyLogrusError)] = entry.err
+ }
+ if !f.DisableTimestamp {
+ data[f.FieldMap.resolve(FieldKeyTime)] = entry.Time.Format(timestampFormat)
+ }
+ data[f.FieldMap.resolve(FieldKeyMsg)] = entry.Message
+ data[f.FieldMap.resolve(FieldKeyLevel)] = entry.Level.String()
+ if entry.HasCaller() {
+ data[f.FieldMap.resolve(FieldKeyFunc)] = entry.Caller.Function
+ data[f.FieldMap.resolve(FieldKeyFile)] = fmt.Sprintf("%s:%d", entry.Caller.File, entry.Caller.Line)
+ }
+
+ var b *bytes.Buffer
+ if entry.Buffer != nil {
+ b = entry.Buffer
+ } else {
+ b = &bytes.Buffer{}
+ }
+
+ encoder := json.NewEncoder(b)
+ if f.PrettyPrint {
+ encoder.SetIndent("", " ")
+ }
+ if err := encoder.Encode(data); err != nil {
+ return nil, fmt.Errorf("Failed to marshal fields to JSON, %v", err)
+ }
+
+ return b.Bytes(), nil
+}
diff --git a/vendor/github.com/sirupsen/logrus/logger.go b/vendor/github.com/sirupsen/logrus/logger.go
new file mode 100644
index 0000000000..9bf64e22ae
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/logger.go
@@ -0,0 +1,343 @@
+package logrus
+
+import (
+ "io"
+ "os"
+ "sync"
+ "sync/atomic"
+ "time"
+)
+
+type Logger struct {
+ // The logs are `io.Copy`'d to this in a mutex. It's common to set this to a
+ // file, or leave it default which is `os.Stderr`. You can also set this to
+ // something more adventurous, such as logging to Kafka.
+ Out io.Writer
+ // Hooks for the logger instance. These allow firing events based on logging
+ // levels and log entries. For example, to send errors to an error tracking
+ // service, log to StatsD or dump the core on fatal errors.
+ Hooks LevelHooks
+ // All log entries pass through the formatter before logged to Out. The
+ // included formatters are `TextFormatter` and `JSONFormatter` for which
+ // TextFormatter is the default. In development (when a TTY is attached) it
+ // logs with colors, but to a file it wouldn't. You can easily implement your
+ // own that implements the `Formatter` interface, see the `README` or included
+ // formatters for examples.
+ Formatter Formatter
+
+ // Flag for whether to log caller info (off by default)
+ ReportCaller bool
+
+ // The logging level the logger should log at. This is typically (and defaults
+ // to) `logrus.Info`, which allows Info(), Warn(), Error() and Fatal() to be
+ // logged.
+ Level Level
+ // Used to sync writing to the log. Locking is enabled by Default
+ mu MutexWrap
+ // Reusable empty entry
+ entryPool sync.Pool
+ // Function to exit the application, defaults to `os.Exit()`
+ ExitFunc exitFunc
+}
+
+type exitFunc func(int)
+
+type MutexWrap struct {
+ lock sync.Mutex
+ disabled bool
+}
+
+func (mw *MutexWrap) Lock() {
+ if !mw.disabled {
+ mw.lock.Lock()
+ }
+}
+
+func (mw *MutexWrap) Unlock() {
+ if !mw.disabled {
+ mw.lock.Unlock()
+ }
+}
+
+func (mw *MutexWrap) Disable() {
+ mw.disabled = true
+}
+
+// Creates a new logger. Configuration should be set by changing `Formatter`,
+// `Out` and `Hooks` directly on the default logger instance. You can also just
+// instantiate your own:
+//
+// var log = &Logger{
+// Out: os.Stderr,
+// Formatter: new(JSONFormatter),
+// Hooks: make(LevelHooks),
+// Level: logrus.DebugLevel,
+// }
+//
+// It's recommended to make this a global instance called `log`.
+func New() *Logger {
+ return &Logger{
+ Out: os.Stderr,
+ Formatter: new(TextFormatter),
+ Hooks: make(LevelHooks),
+ Level: InfoLevel,
+ ExitFunc: os.Exit,
+ ReportCaller: false,
+ }
+}
+
+func (logger *Logger) newEntry() *Entry {
+ entry, ok := logger.entryPool.Get().(*Entry)
+ if ok {
+ return entry
+ }
+ return NewEntry(logger)
+}
+
+func (logger *Logger) releaseEntry(entry *Entry) {
+ entry.Data = map[string]interface{}{}
+ logger.entryPool.Put(entry)
+}
+
+// Adds a field to the log entry, note that it doesn't log until you call
+// Debug, Print, Info, Warn, Error, Fatal or Panic. It only creates a log entry.
+// If you want multiple fields, use `WithFields`.
+func (logger *Logger) WithField(key string, value interface{}) *Entry {
+ entry := logger.newEntry()
+ defer logger.releaseEntry(entry)
+ return entry.WithField(key, value)
+}
+
+// Adds a struct of fields to the log entry. All it does is call `WithField` for
+// each `Field`.
+func (logger *Logger) WithFields(fields Fields) *Entry {
+ entry := logger.newEntry()
+ defer logger.releaseEntry(entry)
+ return entry.WithFields(fields)
+}
+
+// Add an error as single field to the log entry. All it does is call
+// `WithError` for the given `error`.
+func (logger *Logger) WithError(err error) *Entry {
+ entry := logger.newEntry()
+ defer logger.releaseEntry(entry)
+ return entry.WithError(err)
+}
+
+// Overrides the time of the log entry.
+func (logger *Logger) WithTime(t time.Time) *Entry {
+ entry := logger.newEntry()
+ defer logger.releaseEntry(entry)
+ return entry.WithTime(t)
+}
+
+func (logger *Logger) Logf(level Level, format string, args ...interface{}) {
+ if logger.IsLevelEnabled(level) {
+ entry := logger.newEntry()
+ entry.Logf(level, format, args...)
+ logger.releaseEntry(entry)
+ }
+}
+
+func (logger *Logger) Tracef(format string, args ...interface{}) {
+ logger.Logf(TraceLevel, format, args...)
+}
+
+func (logger *Logger) Debugf(format string, args ...interface{}) {
+ logger.Logf(DebugLevel, format, args...)
+}
+
+func (logger *Logger) Infof(format string, args ...interface{}) {
+ logger.Logf(InfoLevel, format, args...)
+}
+
+func (logger *Logger) Printf(format string, args ...interface{}) {
+ entry := logger.newEntry()
+ entry.Printf(format, args...)
+ logger.releaseEntry(entry)
+}
+
+func (logger *Logger) Warnf(format string, args ...interface{}) {
+ logger.Logf(WarnLevel, format, args...)
+}
+
+func (logger *Logger) Warningf(format string, args ...interface{}) {
+ logger.Warnf(format, args...)
+}
+
+func (logger *Logger) Errorf(format string, args ...interface{}) {
+ logger.Logf(ErrorLevel, format, args...)
+}
+
+func (logger *Logger) Fatalf(format string, args ...interface{}) {
+ logger.Logf(FatalLevel, format, args...)
+ logger.Exit(1)
+}
+
+func (logger *Logger) Panicf(format string, args ...interface{}) {
+ logger.Logf(PanicLevel, format, args...)
+}
+
+func (logger *Logger) Log(level Level, args ...interface{}) {
+ if logger.IsLevelEnabled(level) {
+ entry := logger.newEntry()
+ entry.Log(level, args...)
+ logger.releaseEntry(entry)
+ }
+}
+
+func (logger *Logger) Trace(args ...interface{}) {
+ logger.Log(TraceLevel, args...)
+}
+
+func (logger *Logger) Debug(args ...interface{}) {
+ logger.Log(DebugLevel, args...)
+}
+
+func (logger *Logger) Info(args ...interface{}) {
+ logger.Log(InfoLevel, args...)
+}
+
+func (logger *Logger) Print(args ...interface{}) {
+ entry := logger.newEntry()
+ entry.Info(args...)
+ logger.releaseEntry(entry)
+}
+
+func (logger *Logger) Warn(args ...interface{}) {
+ logger.Log(WarnLevel, args...)
+}
+
+func (logger *Logger) Warning(args ...interface{}) {
+ logger.Warn(args...)
+}
+
+func (logger *Logger) Error(args ...interface{}) {
+ logger.Log(ErrorLevel, args...)
+}
+
+func (logger *Logger) Fatal(args ...interface{}) {
+ logger.Log(FatalLevel, args...)
+ logger.Exit(1)
+}
+
+func (logger *Logger) Panic(args ...interface{}) {
+ logger.Log(PanicLevel, args...)
+}
+
+func (logger *Logger) Logln(level Level, args ...interface{}) {
+ if logger.IsLevelEnabled(level) {
+ entry := logger.newEntry()
+ entry.Logln(level, args...)
+ logger.releaseEntry(entry)
+ }
+}
+
+func (logger *Logger) Traceln(args ...interface{}) {
+ logger.Logln(TraceLevel, args...)
+}
+
+func (logger *Logger) Debugln(args ...interface{}) {
+ logger.Logln(DebugLevel, args...)
+}
+
+func (logger *Logger) Infoln(args ...interface{}) {
+ logger.Logln(InfoLevel, args...)
+}
+
+func (logger *Logger) Println(args ...interface{}) {
+ entry := logger.newEntry()
+ entry.Println(args...)
+ logger.releaseEntry(entry)
+}
+
+func (logger *Logger) Warnln(args ...interface{}) {
+ logger.Logln(WarnLevel, args...)
+}
+
+func (logger *Logger) Warningln(args ...interface{}) {
+ logger.Warn(args...)
+}
+
+func (logger *Logger) Errorln(args ...interface{}) {
+ logger.Logln(ErrorLevel, args...)
+}
+
+func (logger *Logger) Fatalln(args ...interface{}) {
+ logger.Logln(FatalLevel, args...)
+ logger.Exit(1)
+}
+
+func (logger *Logger) Panicln(args ...interface{}) {
+ logger.Logln(PanicLevel, args...)
+}
+
+func (logger *Logger) Exit(code int) {
+ runHandlers()
+ if logger.ExitFunc == nil {
+ logger.ExitFunc = os.Exit
+ }
+ logger.ExitFunc(code)
+}
+
+//When file is opened with appending mode, it's safe to
+//write concurrently to a file (within 4k message on Linux).
+//In these cases user can choose to disable the lock.
+func (logger *Logger) SetNoLock() {
+ logger.mu.Disable()
+}
+
+func (logger *Logger) level() Level {
+ return Level(atomic.LoadUint32((*uint32)(&logger.Level)))
+}
+
+// SetLevel sets the logger level.
+func (logger *Logger) SetLevel(level Level) {
+ atomic.StoreUint32((*uint32)(&logger.Level), uint32(level))
+}
+
+// GetLevel returns the logger level.
+func (logger *Logger) GetLevel() Level {
+ return logger.level()
+}
+
+// AddHook adds a hook to the logger hooks.
+func (logger *Logger) AddHook(hook Hook) {
+ logger.mu.Lock()
+ defer logger.mu.Unlock()
+ logger.Hooks.Add(hook)
+}
+
+// IsLevelEnabled checks if the log level of the logger is greater than the level param
+func (logger *Logger) IsLevelEnabled(level Level) bool {
+ return logger.level() >= level
+}
+
+// SetFormatter sets the logger formatter.
+func (logger *Logger) SetFormatter(formatter Formatter) {
+ logger.mu.Lock()
+ defer logger.mu.Unlock()
+ logger.Formatter = formatter
+}
+
+// SetOutput sets the logger output.
+func (logger *Logger) SetOutput(output io.Writer) {
+ logger.mu.Lock()
+ defer logger.mu.Unlock()
+ logger.Out = output
+}
+
+func (logger *Logger) SetReportCaller(reportCaller bool) {
+ logger.mu.Lock()
+ defer logger.mu.Unlock()
+ logger.ReportCaller = reportCaller
+}
+
+// ReplaceHooks replaces the logger hooks and returns the old ones
+func (logger *Logger) ReplaceHooks(hooks LevelHooks) LevelHooks {
+ logger.mu.Lock()
+ oldHooks := logger.Hooks
+ logger.Hooks = hooks
+ logger.mu.Unlock()
+ return oldHooks
+}
diff --git a/vendor/github.com/sirupsen/logrus/logrus.go b/vendor/github.com/sirupsen/logrus/logrus.go
new file mode 100644
index 0000000000..c1ca889902
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/logrus.go
@@ -0,0 +1,186 @@
+package logrus
+
+import (
+ "fmt"
+ "log"
+ "strings"
+)
+
+// Fields type, used to pass to `WithFields`.
+type Fields map[string]interface{}
+
+// Level type
+type Level uint32
+
+// Convert the Level to a string. E.g. PanicLevel becomes "panic".
+func (level Level) String() string {
+ if b, err := level.MarshalText(); err == nil {
+ return string(b)
+ } else {
+ return "unknown"
+ }
+}
+
+// ParseLevel takes a string level and returns the Logrus log level constant.
+func ParseLevel(lvl string) (Level, error) {
+ switch strings.ToLower(lvl) {
+ case "panic":
+ return PanicLevel, nil
+ case "fatal":
+ return FatalLevel, nil
+ case "error":
+ return ErrorLevel, nil
+ case "warn", "warning":
+ return WarnLevel, nil
+ case "info":
+ return InfoLevel, nil
+ case "debug":
+ return DebugLevel, nil
+ case "trace":
+ return TraceLevel, nil
+ }
+
+ var l Level
+ return l, fmt.Errorf("not a valid logrus Level: %q", lvl)
+}
+
+// UnmarshalText implements encoding.TextUnmarshaler.
+func (level *Level) UnmarshalText(text []byte) error {
+ l, err := ParseLevel(string(text))
+ if err != nil {
+ return err
+ }
+
+ *level = Level(l)
+
+ return nil
+}
+
+func (level Level) MarshalText() ([]byte, error) {
+ switch level {
+ case TraceLevel:
+ return []byte("trace"), nil
+ case DebugLevel:
+ return []byte("debug"), nil
+ case InfoLevel:
+ return []byte("info"), nil
+ case WarnLevel:
+ return []byte("warning"), nil
+ case ErrorLevel:
+ return []byte("error"), nil
+ case FatalLevel:
+ return []byte("fatal"), nil
+ case PanicLevel:
+ return []byte("panic"), nil
+ }
+
+ return nil, fmt.Errorf("not a valid lorus level %q", level)
+}
+
+// A constant exposing all logging levels
+var AllLevels = []Level{
+ PanicLevel,
+ FatalLevel,
+ ErrorLevel,
+ WarnLevel,
+ InfoLevel,
+ DebugLevel,
+ TraceLevel,
+}
+
+// These are the different logging levels. You can set the logging level to log
+// on your instance of logger, obtained with `logrus.New()`.
+const (
+ // PanicLevel level, highest level of severity. Logs and then calls panic with the
+ // message passed to Debug, Info, ...
+ PanicLevel Level = iota
+ // FatalLevel level. Logs and then calls `logger.Exit(1)`. It will exit even if the
+ // logging level is set to Panic.
+ FatalLevel
+ // ErrorLevel level. Logs. Used for errors that should definitely be noted.
+ // Commonly used for hooks to send errors to an error tracking service.
+ ErrorLevel
+ // WarnLevel level. Non-critical entries that deserve eyes.
+ WarnLevel
+ // InfoLevel level. General operational entries about what's going on inside the
+ // application.
+ InfoLevel
+ // DebugLevel level. Usually only enabled when debugging. Very verbose logging.
+ DebugLevel
+ // TraceLevel level. Designates finer-grained informational events than the Debug.
+ TraceLevel
+)
+
+// Won't compile if StdLogger can't be realized by a log.Logger
+var (
+ _ StdLogger = &log.Logger{}
+ _ StdLogger = &Entry{}
+ _ StdLogger = &Logger{}
+)
+
+// StdLogger is what your logrus-enabled library should take, that way
+// it'll accept a stdlib logger and a logrus logger. There's no standard
+// interface, this is the closest we get, unfortunately.
+type StdLogger interface {
+ Print(...interface{})
+ Printf(string, ...interface{})
+ Println(...interface{})
+
+ Fatal(...interface{})
+ Fatalf(string, ...interface{})
+ Fatalln(...interface{})
+
+ Panic(...interface{})
+ Panicf(string, ...interface{})
+ Panicln(...interface{})
+}
+
+// The FieldLogger interface generalizes the Entry and Logger types
+type FieldLogger interface {
+ WithField(key string, value interface{}) *Entry
+ WithFields(fields Fields) *Entry
+ WithError(err error) *Entry
+
+ Debugf(format string, args ...interface{})
+ Infof(format string, args ...interface{})
+ Printf(format string, args ...interface{})
+ Warnf(format string, args ...interface{})
+ Warningf(format string, args ...interface{})
+ Errorf(format string, args ...interface{})
+ Fatalf(format string, args ...interface{})
+ Panicf(format string, args ...interface{})
+
+ Debug(args ...interface{})
+ Info(args ...interface{})
+ Print(args ...interface{})
+ Warn(args ...interface{})
+ Warning(args ...interface{})
+ Error(args ...interface{})
+ Fatal(args ...interface{})
+ Panic(args ...interface{})
+
+ Debugln(args ...interface{})
+ Infoln(args ...interface{})
+ Println(args ...interface{})
+ Warnln(args ...interface{})
+ Warningln(args ...interface{})
+ Errorln(args ...interface{})
+ Fatalln(args ...interface{})
+ Panicln(args ...interface{})
+
+ // IsDebugEnabled() bool
+ // IsInfoEnabled() bool
+ // IsWarnEnabled() bool
+ // IsErrorEnabled() bool
+ // IsFatalEnabled() bool
+ // IsPanicEnabled() bool
+}
+
+// Ext1FieldLogger (the first extension to FieldLogger) is superfluous, it is
+// here for consistancy. Do not use. Use Logger or Entry instead.
+type Ext1FieldLogger interface {
+ FieldLogger
+ Tracef(format string, args ...interface{})
+ Trace(args ...interface{})
+ Traceln(args ...interface{})
+}
diff --git a/vendor/github.com/sirupsen/logrus/terminal_check_aix.go b/vendor/github.com/sirupsen/logrus/terminal_check_aix.go
new file mode 100644
index 0000000000..04fdb7ba37
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/terminal_check_aix.go
@@ -0,0 +1,9 @@
+// +build !appengine,!js,!windows,aix
+
+package logrus
+
+import "io"
+
+func checkIfTerminal(w io.Writer) bool {
+ return false
+}
diff --git a/vendor/github.com/sirupsen/logrus/terminal_check_appengine.go b/vendor/github.com/sirupsen/logrus/terminal_check_appengine.go
new file mode 100644
index 0000000000..2403de9819
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/terminal_check_appengine.go
@@ -0,0 +1,11 @@
+// +build appengine
+
+package logrus
+
+import (
+ "io"
+)
+
+func checkIfTerminal(w io.Writer) bool {
+ return true
+}
diff --git a/vendor/github.com/sirupsen/logrus/terminal_check_js.go b/vendor/github.com/sirupsen/logrus/terminal_check_js.go
new file mode 100644
index 0000000000..0c209750a3
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/terminal_check_js.go
@@ -0,0 +1,11 @@
+// +build js
+
+package logrus
+
+import (
+ "io"
+)
+
+func checkIfTerminal(w io.Writer) bool {
+ return false
+}
diff --git a/vendor/github.com/sirupsen/logrus/terminal_check_notappengine.go b/vendor/github.com/sirupsen/logrus/terminal_check_notappengine.go
new file mode 100644
index 0000000000..d46556509e
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/terminal_check_notappengine.go
@@ -0,0 +1,19 @@
+// +build !appengine,!js,!windows,!aix
+
+package logrus
+
+import (
+ "io"
+ "os"
+
+ "golang.org/x/crypto/ssh/terminal"
+)
+
+func checkIfTerminal(w io.Writer) bool {
+ switch v := w.(type) {
+ case *os.File:
+ return terminal.IsTerminal(int(v.Fd()))
+ default:
+ return false
+ }
+}
diff --git a/vendor/github.com/sirupsen/logrus/terminal_check_windows.go b/vendor/github.com/sirupsen/logrus/terminal_check_windows.go
new file mode 100644
index 0000000000..3b9d2864ca
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/terminal_check_windows.go
@@ -0,0 +1,20 @@
+// +build !appengine,!js,windows
+
+package logrus
+
+import (
+ "io"
+ "os"
+ "syscall"
+)
+
+func checkIfTerminal(w io.Writer) bool {
+ switch v := w.(type) {
+ case *os.File:
+ var mode uint32
+ err := syscall.GetConsoleMode(syscall.Handle(v.Fd()), &mode)
+ return err == nil
+ default:
+ return false
+ }
+}
diff --git a/vendor/github.com/sirupsen/logrus/terminal_notwindows.go b/vendor/github.com/sirupsen/logrus/terminal_notwindows.go
new file mode 100644
index 0000000000..3dbd237203
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/terminal_notwindows.go
@@ -0,0 +1,8 @@
+// +build !windows
+
+package logrus
+
+import "io"
+
+func initTerminal(w io.Writer) {
+}
diff --git a/vendor/github.com/sirupsen/logrus/terminal_windows.go b/vendor/github.com/sirupsen/logrus/terminal_windows.go
new file mode 100644
index 0000000000..b4ef5286cd
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/terminal_windows.go
@@ -0,0 +1,18 @@
+// +build !appengine,!js,windows
+
+package logrus
+
+import (
+ "io"
+ "os"
+ "syscall"
+
+ sequences "github.com/konsorten/go-windows-terminal-sequences"
+)
+
+func initTerminal(w io.Writer) {
+ switch v := w.(type) {
+ case *os.File:
+ sequences.EnableVirtualTerminalProcessing(syscall.Handle(v.Fd()), true)
+ }
+}
diff --git a/vendor/github.com/sirupsen/logrus/text_formatter.go b/vendor/github.com/sirupsen/logrus/text_formatter.go
new file mode 100644
index 0000000000..fb21649c9a
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/text_formatter.go
@@ -0,0 +1,273 @@
+package logrus
+
+import (
+ "bytes"
+ "fmt"
+ "os"
+ "runtime"
+ "sort"
+ "strings"
+ "sync"
+ "time"
+)
+
+const (
+ nocolor = 0
+ red = 31
+ green = 32
+ yellow = 33
+ blue = 36
+ gray = 37
+)
+
+var (
+ baseTimestamp time.Time
+ emptyFieldMap FieldMap
+)
+
+func init() {
+ baseTimestamp = time.Now()
+}
+
+// TextFormatter formats logs into text
+type TextFormatter struct {
+ // Set to true to bypass checking for a TTY before outputting colors.
+ ForceColors bool
+
+ // Force disabling colors.
+ DisableColors bool
+
+ // Override coloring based on CLICOLOR and CLICOLOR_FORCE. - https://bixense.com/clicolors/
+ EnvironmentOverrideColors bool
+
+ // Disable timestamp logging. useful when output is redirected to logging
+ // system that already adds timestamps.
+ DisableTimestamp bool
+
+ // Enable logging the full timestamp when a TTY is attached instead of just
+ // the time passed since beginning of execution.
+ FullTimestamp bool
+
+ // TimestampFormat to use for display when a full timestamp is printed
+ TimestampFormat string
+
+ // The fields are sorted by default for a consistent output. For applications
+ // that log extremely frequently and don't use the JSON formatter this may not
+ // be desired.
+ DisableSorting bool
+
+ // The keys sorting function, when uninitialized it uses sort.Strings.
+ SortingFunc func([]string)
+
+ // Disables the truncation of the level text to 4 characters.
+ DisableLevelTruncation bool
+
+ // QuoteEmptyFields will wrap empty fields in quotes if true
+ QuoteEmptyFields bool
+
+ // Whether the logger's out is to a terminal
+ isTerminal bool
+
+ // FieldMap allows users to customize the names of keys for default fields.
+ // As an example:
+ // formatter := &TextFormatter{
+ // FieldMap: FieldMap{
+ // FieldKeyTime: "@timestamp",
+ // FieldKeyLevel: "@level",
+ // FieldKeyMsg: "@message"}}
+ FieldMap FieldMap
+
+ terminalInitOnce sync.Once
+}
+
+func (f *TextFormatter) init(entry *Entry) {
+ if entry.Logger != nil {
+ f.isTerminal = checkIfTerminal(entry.Logger.Out)
+
+ if f.isTerminal {
+ initTerminal(entry.Logger.Out)
+ }
+ }
+}
+
+func (f *TextFormatter) isColored() bool {
+ isColored := f.ForceColors || (f.isTerminal && (runtime.GOOS != "windows"))
+
+ if f.EnvironmentOverrideColors {
+ if force, ok := os.LookupEnv("CLICOLOR_FORCE"); ok && force != "0" {
+ isColored = true
+ } else if ok && force == "0" {
+ isColored = false
+ } else if os.Getenv("CLICOLOR") == "0" {
+ isColored = false
+ }
+ }
+
+ return isColored && !f.DisableColors
+}
+
+// Format renders a single log entry
+func (f *TextFormatter) Format(entry *Entry) ([]byte, error) {
+ data := make(Fields)
+ for k, v := range entry.Data {
+ data[k] = v
+ }
+ prefixFieldClashes(data, f.FieldMap, entry.HasCaller())
+ keys := make([]string, 0, len(data))
+ for k := range data {
+ keys = append(keys, k)
+ }
+
+ fixedKeys := make([]string, 0, 4+len(data))
+ if !f.DisableTimestamp {
+ fixedKeys = append(fixedKeys, f.FieldMap.resolve(FieldKeyTime))
+ }
+ fixedKeys = append(fixedKeys, f.FieldMap.resolve(FieldKeyLevel))
+ if entry.Message != "" {
+ fixedKeys = append(fixedKeys, f.FieldMap.resolve(FieldKeyMsg))
+ }
+ if entry.err != "" {
+ fixedKeys = append(fixedKeys, f.FieldMap.resolve(FieldKeyLogrusError))
+ }
+ if entry.HasCaller() {
+ fixedKeys = append(fixedKeys,
+ f.FieldMap.resolve(FieldKeyFunc), f.FieldMap.resolve(FieldKeyFile))
+ }
+
+ if !f.DisableSorting {
+ if f.SortingFunc == nil {
+ sort.Strings(keys)
+ fixedKeys = append(fixedKeys, keys...)
+ } else {
+ if !f.isColored() {
+ fixedKeys = append(fixedKeys, keys...)
+ f.SortingFunc(fixedKeys)
+ } else {
+ f.SortingFunc(keys)
+ }
+ }
+ } else {
+ fixedKeys = append(fixedKeys, keys...)
+ }
+
+ var b *bytes.Buffer
+ if entry.Buffer != nil {
+ b = entry.Buffer
+ } else {
+ b = &bytes.Buffer{}
+ }
+
+ f.terminalInitOnce.Do(func() { f.init(entry) })
+
+ timestampFormat := f.TimestampFormat
+ if timestampFormat == "" {
+ timestampFormat = defaultTimestampFormat
+ }
+ if f.isColored() {
+ f.printColored(b, entry, keys, data, timestampFormat)
+ } else {
+ for _, key := range fixedKeys {
+ var value interface{}
+ switch {
+ case key == f.FieldMap.resolve(FieldKeyTime):
+ value = entry.Time.Format(timestampFormat)
+ case key == f.FieldMap.resolve(FieldKeyLevel):
+ value = entry.Level.String()
+ case key == f.FieldMap.resolve(FieldKeyMsg):
+ value = entry.Message
+ case key == f.FieldMap.resolve(FieldKeyLogrusError):
+ value = entry.err
+ case key == f.FieldMap.resolve(FieldKeyFunc) && entry.HasCaller():
+ value = entry.Caller.Function
+ case key == f.FieldMap.resolve(FieldKeyFile) && entry.HasCaller():
+ value = fmt.Sprintf("%s:%d", entry.Caller.File, entry.Caller.Line)
+ default:
+ value = data[key]
+ }
+ f.appendKeyValue(b, key, value)
+ }
+ }
+
+ b.WriteByte('\n')
+ return b.Bytes(), nil
+}
+
+func (f *TextFormatter) printColored(b *bytes.Buffer, entry *Entry, keys []string, data Fields, timestampFormat string) {
+ var levelColor int
+ switch entry.Level {
+ case DebugLevel, TraceLevel:
+ levelColor = gray
+ case WarnLevel:
+ levelColor = yellow
+ case ErrorLevel, FatalLevel, PanicLevel:
+ levelColor = red
+ default:
+ levelColor = blue
+ }
+
+ levelText := strings.ToUpper(entry.Level.String())
+ if !f.DisableLevelTruncation {
+ levelText = levelText[0:4]
+ }
+
+ // Remove a single newline if it already exists in the message to keep
+ // the behavior of logrus text_formatter the same as the stdlib log package
+ entry.Message = strings.TrimSuffix(entry.Message, "\n")
+
+ caller := ""
+
+ if entry.HasCaller() {
+ caller = fmt.Sprintf("%s:%d %s()",
+ entry.Caller.File, entry.Caller.Line, entry.Caller.Function)
+ }
+
+ if f.DisableTimestamp {
+ fmt.Fprintf(b, "\x1b[%dm%s\x1b[0m%s %-44s ", levelColor, levelText, caller, entry.Message)
+ } else if !f.FullTimestamp {
+ fmt.Fprintf(b, "\x1b[%dm%s\x1b[0m[%04d]%s %-44s ", levelColor, levelText, int(entry.Time.Sub(baseTimestamp)/time.Second), caller, entry.Message)
+ } else {
+ fmt.Fprintf(b, "\x1b[%dm%s\x1b[0m[%s]%s %-44s ", levelColor, levelText, entry.Time.Format(timestampFormat), caller, entry.Message)
+ }
+ for _, k := range keys {
+ v := data[k]
+ fmt.Fprintf(b, " \x1b[%dm%s\x1b[0m=", levelColor, k)
+ f.appendValue(b, v)
+ }
+}
+
+func (f *TextFormatter) needsQuoting(text string) bool {
+ if f.QuoteEmptyFields && len(text) == 0 {
+ return true
+ }
+ for _, ch := range text {
+ if !((ch >= 'a' && ch <= 'z') ||
+ (ch >= 'A' && ch <= 'Z') ||
+ (ch >= '0' && ch <= '9') ||
+ ch == '-' || ch == '.' || ch == '_' || ch == '/' || ch == '@' || ch == '^' || ch == '+') {
+ return true
+ }
+ }
+ return false
+}
+
+func (f *TextFormatter) appendKeyValue(b *bytes.Buffer, key string, value interface{}) {
+ if b.Len() > 0 {
+ b.WriteByte(' ')
+ }
+ b.WriteString(key)
+ b.WriteByte('=')
+ f.appendValue(b, value)
+}
+
+func (f *TextFormatter) appendValue(b *bytes.Buffer, value interface{}) {
+ stringVal, ok := value.(string)
+ if !ok {
+ stringVal = fmt.Sprint(value)
+ }
+
+ if !f.needsQuoting(stringVal) {
+ b.WriteString(stringVal)
+ } else {
+ b.WriteString(fmt.Sprintf("%q", stringVal))
+ }
+}
diff --git a/vendor/github.com/sirupsen/logrus/writer.go b/vendor/github.com/sirupsen/logrus/writer.go
new file mode 100644
index 0000000000..9e1f751359
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/writer.go
@@ -0,0 +1,64 @@
+package logrus
+
+import (
+ "bufio"
+ "io"
+ "runtime"
+)
+
+func (logger *Logger) Writer() *io.PipeWriter {
+ return logger.WriterLevel(InfoLevel)
+}
+
+func (logger *Logger) WriterLevel(level Level) *io.PipeWriter {
+ return NewEntry(logger).WriterLevel(level)
+}
+
+func (entry *Entry) Writer() *io.PipeWriter {
+ return entry.WriterLevel(InfoLevel)
+}
+
+func (entry *Entry) WriterLevel(level Level) *io.PipeWriter {
+ reader, writer := io.Pipe()
+
+ var printFunc func(args ...interface{})
+
+ switch level {
+ case TraceLevel:
+ printFunc = entry.Trace
+ case DebugLevel:
+ printFunc = entry.Debug
+ case InfoLevel:
+ printFunc = entry.Info
+ case WarnLevel:
+ printFunc = entry.Warn
+ case ErrorLevel:
+ printFunc = entry.Error
+ case FatalLevel:
+ printFunc = entry.Fatal
+ case PanicLevel:
+ printFunc = entry.Panic
+ default:
+ printFunc = entry.Print
+ }
+
+ go entry.writerScanner(reader, printFunc)
+ runtime.SetFinalizer(writer, writerFinalizer)
+
+ return writer
+}
+
+func (entry *Entry) writerScanner(reader *io.PipeReader, printFunc func(args ...interface{})) {
+ scanner := bufio.NewScanner(reader)
+ for scanner.Scan() {
+ printFunc(scanner.Text())
+ }
+ if err := scanner.Err(); err != nil {
+ entry.Errorf("Error while reading from Writer: %s", err)
+ }
+ reader.Close()
+}
+
+func writerFinalizer(writer *io.PipeWriter) {
+ writer.Close()
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/address.go b/vendor/github.com/skycoin/skycoin/src/cipher/address.go
new file mode 100644
index 0000000000..b5d93275b0
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/address.go
@@ -0,0 +1,183 @@
+package cipher
+
+import (
+ "errors"
+ "log"
+
+ "github.com/skycoin/skycoin/src/cipher/base58"
+)
+
+var (
+ // ErrAddressInvalidLength Unexpected size of address bytes buffer
+ ErrAddressInvalidLength = errors.New("Invalid address length")
+ // ErrAddressInvalidChecksum Computed checksum did not match expected value
+ ErrAddressInvalidChecksum = errors.New("Invalid checksum")
+ // ErrAddressInvalidVersion Unsupported address version value
+ ErrAddressInvalidVersion = errors.New("Address version invalid")
+ // ErrAddressInvalidPubKey Public key invalid for address
+ ErrAddressInvalidPubKey = errors.New("Public key invalid for address")
+ // ErrAddressInvalidFirstByte Invalid first byte in wallet import format string
+ ErrAddressInvalidFirstByte = errors.New("first byte invalid")
+ // ErrAddressInvalidLastByte 33rd byte in wallet import format string is invalid
+ ErrAddressInvalidLastByte = errors.New("invalid 33rd byte")
+)
+
+/*
+Addresses are the Ripemd160 of the double SHA256 of the public key
+- public key must be in compressed format
+
+In the block chain the address is 20+1 bytes
+- the first byte is the version byte
+- the next twenty bytes are RIPMD160(SHA256(SHA256(pubkey)))
+
+In base 58 format the address is 20+1+4 bytes
+- the first 20 bytes are RIPMD160(SHA256(SHA256(pubkey))).
+-- this is to allow for any prefix in vanity addresses
+- the next byte is the version byte
+- the next 4 bytes are a checksum
+-- the first 4 bytes of the SHA256 of the 21 bytes that come before
+
+*/
+
+// Checksum 4 bytes
+type Checksum [4]byte
+
+// Addresser defines an interface for cryptocurrency addresses
+type Addresser interface {
+ Bytes() []byte
+ String() string
+ Checksum() Checksum
+ Verify(PubKey) error
+ Null() bool
+}
+
+// PubKeyRipemd160 returns ripemd160(sha256(sha256(pubkey)))
+func PubKeyRipemd160(pubKey PubKey) Ripemd160 {
+ r1 := SumSHA256(pubKey[:])
+ r2 := SumSHA256(r1[:])
+ return HashRipemd160(r2[:])
+}
+
+// Address version is after Key to enable better vanity address generation
+// Address struct is a 25 byte with a 20 byte public key hash, 1 byte address
+// type and 4 byte checksum.
+type Address struct {
+ Version byte //1 byte
+ Key Ripemd160 //20 byte pubkey hash
+}
+
+// AddressFromPubKey creates Address from PubKey as ripemd160(sha256(sha256(pubkey)))
+func AddressFromPubKey(pubKey PubKey) Address {
+ return Address{
+ Version: 0,
+ Key: PubKeyRipemd160(pubKey),
+ }
+}
+
+// AddressFromSecKey generates address from secret key
+func AddressFromSecKey(secKey SecKey) (Address, error) {
+ p, err := PubKeyFromSecKey(secKey)
+ if err != nil {
+ return Address{}, err
+ }
+ return AddressFromPubKey(p), nil
+}
+
+// MustAddressFromSecKey generates address from secret key, panics on error
+func MustAddressFromSecKey(secKey SecKey) Address {
+ return AddressFromPubKey(MustPubKeyFromSecKey(secKey))
+}
+
+// DecodeBase58Address creates an Address from its base58 encoding
+func DecodeBase58Address(addr string) (Address, error) {
+ b, err := base58.Decode(addr)
+ if err != nil {
+ return Address{}, err
+ }
+ return AddressFromBytes(b)
+}
+
+// MustDecodeBase58Address creates an Address from its base58 encoding, panics on error
+func MustDecodeBase58Address(addr string) Address {
+ a, err := DecodeBase58Address(addr)
+ if err != nil {
+ log.Panicf("Invalid address %s: %v", addr, err)
+ }
+ return a
+}
+
+// AddressFromBytes converts []byte to an Address
+func AddressFromBytes(b []byte) (Address, error) {
+ if len(b) != 20+1+4 {
+ return Address{}, ErrAddressInvalidLength
+ }
+ a := Address{}
+ copy(a.Key[0:20], b[0:20])
+ a.Version = b[20]
+
+ chksum := a.Checksum()
+ var checksum [4]byte
+ copy(checksum[0:4], b[21:25])
+
+ if checksum != chksum {
+ return Address{}, ErrAddressInvalidChecksum
+ }
+
+ if a.Version != 0 {
+ return Address{}, ErrAddressInvalidVersion
+ }
+
+ return a, nil
+}
+
+// MustAddressFromBytes converts []byte to an Address, panics on error
+func MustAddressFromBytes(b []byte) Address {
+ addr, err := AddressFromBytes(b)
+ if err != nil {
+ log.Panic(err)
+ }
+
+ return addr
+}
+
+// Null returns true if the address is null (0x0000....)
+func (addr Address) Null() bool {
+ return addr == Address{}
+}
+
+// Bytes return address as a byte slice
+func (addr Address) Bytes() []byte {
+ b := make([]byte, 20+1+4)
+ copy(b[0:20], addr.Key[0:20])
+ b[20] = addr.Version
+ chksum := addr.Checksum()
+ copy(b[21:25], chksum[0:4])
+ return b
+}
+
+// Verify checks that the address appears valid for the public key
+func (addr Address) Verify(pubKey PubKey) error {
+ if addr.Version != 0x00 {
+ return ErrAddressInvalidVersion
+ }
+
+ if addr.Key != PubKeyRipemd160(pubKey) {
+ return ErrAddressInvalidPubKey
+ }
+
+ return nil
+}
+
+// String address as Base58 encoded string
+func (addr Address) String() string {
+ return string(base58.Encode(addr.Bytes()))
+}
+
+// Checksum returns Address Checksum which is the first 4 bytes of sha256(key+version)
+func (addr Address) Checksum() Checksum {
+ r1 := append(addr.Key[:], []byte{addr.Version}...)
+ r2 := SumSHA256(r1[:])
+ c := Checksum{}
+ copy(c[:], r2[:len(c)])
+ return c
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/base58/LICENSE b/vendor/github.com/skycoin/skycoin/src/cipher/base58/LICENSE
new file mode 100644
index 0000000000..9d58fbb4df
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/base58/LICENSE
@@ -0,0 +1,24 @@
+MIT License
+
+Copyright (c) 2017 Denis Subbotin
+Copyright (c) 2017 Nika Jones
+Copyright (c) 2017 Philip Schlump
+Copyright (c) 2019 gz-c
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/base58/LICENSE_old b/vendor/github.com/skycoin/skycoin/src/cipher/base58/LICENSE_old
new file mode 100644
index 0000000000..58da01b3fb
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/base58/LICENSE_old
@@ -0,0 +1,27 @@
+Copyright (c) 2012 ThePiachu. All rights reserved.
+Copyright (c) 2019 gz-c, Skycoin developers. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * The name of ThePiachu may not be used to endorse or promote products
+derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/base58/README.md b/vendor/github.com/skycoin/skycoin/src/cipher/base58/README.md
new file mode 100644
index 0000000000..5042659adf
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/base58/README.md
@@ -0,0 +1,47 @@
+# Fast Implementation of Base58 encoding
+
+[![GoDoc](https://godoc.org/github.com/skycoin/skycoin/src/cipher/base58?status.svg)](https://godoc.org/github.com/skycoin/skycoin/src/cipher/base58)
+
+Fast implementation of base58 encoding in Go.
+
+This code is a fork of https://github.com/mr-tron/base58
+
+Base algorithm is copied from https://github.com/trezor/trezor-crypto/blob/master/base58.c
+Which was copied from an older version of libbase58 https://github.com/bitcoin/libbase58
+
+## Performance
+
+Other base58 golang libraries use `big.Int` which has a lot of malloc overhead and shows up as a common bottleneck when profiling.
+
+This version removes the use of `big.Int`.
+
+## Usage example
+
+```go
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/skycoin/skycoin/src/cipher/base58"
+)
+
+func main() {
+ encoded := "1QCaxc8hutpdZ62iKZsn1TCG3nh7uPZojq"
+ bin, err := base58.Decode(encoded)
+ if err != nil {
+ fmt.Println("Decode error:", err)
+ os.Exit(1)
+ }
+
+ chk := base58.Encode(bin)
+ if encoded == string(chk) {
+ fmt.Println("Successfully decoded then re-encoded")
+ }
+}
+```
+
+## base58-old
+
+The old base58 code is retained here as a reference and used in tests to compare the output is equivalent.
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/base58/base58.go b/vendor/github.com/skycoin/skycoin/src/cipher/base58/base58.go
new file mode 100644
index 0000000000..c18ae5a88e
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/base58/base58.go
@@ -0,0 +1,178 @@
+package base58
+
+import (
+ "errors"
+ "fmt"
+)
+
+var (
+ // ErrInvalidChar Invalid base58 character
+ ErrInvalidChar = errors.New("Invalid base58 character")
+ // ErrInvalidString Invalid base58 string
+ ErrInvalidString = errors.New("Invalid base58 string")
+)
+
+// Alphabet is a a b58 alphabet.
+type Alphabet struct {
+ decode [128]int8
+ encode [58]byte
+}
+
+// NewAlphabet creates a new alphabet from the passed string.
+//
+// It panics if the passed string is not 58 bytes long or isn't valid ASCII.
+func NewAlphabet(s string) *Alphabet {
+ if len(s) != 58 {
+ panic("base58 alphabets must be 58 bytes long")
+ }
+
+ ret := &Alphabet{}
+
+ copy(ret.encode[:], s)
+
+ for i := range ret.decode {
+ ret.decode[i] = -1
+ }
+ for i, b := range ret.encode {
+ ret.decode[b] = int8(i)
+ }
+
+ return ret
+}
+
+// btcAlphabet is the bitcoin base58 alphabet.
+var btcAlphabet = NewAlphabet("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")
+
+// Encode encodes the passed bytes into a base58 encoded string.
+func Encode(bin []byte) string {
+ return fastBase58EncodingAlphabet(bin, btcAlphabet)
+}
+
+// fastBase58EncodingAlphabet encodes the passed bytes into a base58 encoded
+// string with the passed alphabet.
+func fastBase58EncodingAlphabet(bin []byte, alphabet *Alphabet) string {
+ binsz := len(bin)
+ var i, j, zcount, high int
+ var carry uint32
+
+ for zcount < binsz && bin[zcount] == 0 {
+ zcount++
+ }
+
+ size := (binsz-zcount)*138/100 + 1
+ var buf = make([]uint32, size)
+
+ high = size - 1
+ for i = zcount; i < binsz; i++ {
+ j = size - 1
+ for carry = uint32(bin[i]); j > high || carry != 0; j-- {
+ carry += buf[j] << 8
+ buf[j] = carry % 58
+ carry /= 58
+ }
+ high = j
+ }
+
+ for j = 0; j < size && buf[j] == 0; j++ {
+ }
+
+ var b58 = make([]byte, size-j+zcount)
+
+ if zcount != 0 {
+ for i = 0; i < zcount; i++ {
+ b58[i] = '1'
+ }
+ }
+
+ for i = zcount; j < size; i++ {
+ b58[i] = alphabet.encode[buf[j]]
+ j++
+ }
+
+ return string(b58)
+}
+
+// Decode decodes the base58 encoded bytes.
+func Decode(str string) ([]byte, error) {
+ return fastBase58DecodingAlphabet(str, btcAlphabet)
+}
+
+// fastBase58DecodingAlphabet decodes the base58 encoded bytes using the given
+// b58 alphabet.
+func fastBase58DecodingAlphabet(str string, alphabet *Alphabet) ([]byte, error) {
+ if len(str) == 0 {
+ return nil, ErrInvalidString
+ }
+
+ var (
+ t, c uint64
+ zmask uint32
+ zcount int
+
+ b58u = []rune(str)
+ b58sz = len(b58u)
+
+ outisz = (b58sz + 3) >> 2
+ binu = make([]byte, (b58sz+3)*3)
+ bytesleft = b58sz & 3
+ )
+
+ if bytesleft > 0 {
+ zmask = 0xffffffff << uint32(bytesleft*8)
+ } else {
+ bytesleft = 4
+ }
+
+ var outi = make([]uint32, outisz)
+
+ for i := 0; i < b58sz && b58u[i] == '1'; i++ {
+ zcount++
+ }
+
+ for _, r := range b58u {
+ if r > 127 {
+ return nil, ErrInvalidChar
+ }
+ if alphabet.decode[r] == -1 {
+ return nil, ErrInvalidChar
+ }
+
+ c = uint64(alphabet.decode[r])
+
+ for j := outisz - 1; j >= 0; j-- {
+ t = uint64(outi[j])*58 + c
+ c = (t >> 32) & 0x3f
+ outi[j] = uint32(t & 0xffffffff)
+ }
+
+ // Neither of these should occur because the buffer is allocated ourselves
+ if c > 0 {
+ return nil, fmt.Errorf("output number too big (carry to the next int32)")
+ }
+
+ if outi[0]&zmask != 0 {
+ return nil, fmt.Errorf("output number too big (last int32 filled too far)")
+ }
+ }
+
+ var j, cnt int
+ for j, cnt = 0, 0; j < outisz; j++ {
+ for mask := byte(bytesleft-1) * 8; mask <= 0x18; mask, cnt = mask-8, cnt+1 {
+ binu[cnt] = byte(outi[j] >> mask)
+ }
+ if j == 0 {
+ bytesleft = 4 // because it could be less than 4 the first time through
+ }
+ }
+
+ for n, v := range binu {
+ if v > 0 {
+ start := n - zcount
+ if start < 0 {
+ start = 0
+ }
+ return binu[start:cnt], nil
+ }
+ }
+ return binu[:cnt], nil
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/base58/base58_old.go b/vendor/github.com/skycoin/skycoin/src/cipher/base58/base58_old.go
new file mode 100644
index 0000000000..ffa4bca5c9
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/base58/base58_old.go
@@ -0,0 +1,190 @@
+// Copyright 2011 ThePiachu. All rights reserved.
+// Copyright 2019 gz-c, Skycoin developers. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package base58
+
+import (
+ "errors"
+ "fmt"
+ "math/big"
+)
+
+//alphabet used by Bitcoins
+var alphabet = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
+
+var (
+ // errInvalidBase58Char Invalid base58 character
+ errInvalidBase58Char = errors.New("Invalid base58 character")
+ // errInvalidBase58String Invalid base58 string
+ errInvalidBase58String = errors.New("Invalid base58 string")
+ // errInvalidBase58Length Invalid base58 length
+ errInvalidBase58Length = errors.New("base58 invalid length")
+)
+
+// oldBase58 type to hold the oldBase58 string
+type oldBase58 string
+
+//reverse alphabet used for quckly converting base58 strings into numbers
+var revalp = map[string]int{
+ "1": 0, "2": 1, "3": 2, "4": 3, "5": 4, "6": 5, "7": 6, "8": 7, "9": 8, "A": 9,
+ "B": 10, "C": 11, "D": 12, "E": 13, "F": 14, "G": 15, "H": 16, "J": 17, "K": 18, "L": 19,
+ "M": 20, "N": 21, "P": 22, "Q": 23, "R": 24, "S": 25, "T": 26, "U": 27, "V": 28, "W": 29,
+ "X": 30, "Y": 31, "Z": 32, "a": 33, "b": 34, "c": 35, "d": 36, "e": 37, "f": 38, "g": 39,
+ "h": 40, "i": 41, "j": 42, "k": 43, "m": 44, "n": 45, "o": 46, "p": 47, "q": 48, "r": 49,
+ "s": 50, "t": 51, "u": 52, "v": 53, "w": 54, "x": 55, "y": 56, "z": 57,
+}
+
+// oldHex2Big converts hex to big
+func oldHex2Big(b []byte) *big.Int {
+ answer := big.NewInt(0)
+
+ for i := 0; i < len(b); i++ {
+ answer.Lsh(answer, 8)
+ answer.Add(answer, big.NewInt(int64(b[i])))
+ }
+
+ return answer
+}
+
+// ToBig convert base58 to big.Int
+func (b oldBase58) ToBig() (*big.Int, error) {
+ answer := new(big.Int)
+ for i := 0; i < len(b); i++ {
+ answer.Mul(answer, big.NewInt(58)) //multiply current value by 58
+ c, ok := revalp[string(b[i:i+1])]
+ if !ok {
+ return nil, errInvalidBase58Char
+ }
+ answer.Add(answer, big.NewInt(int64(c))) //add value of the current letter
+ }
+ return answer, nil
+}
+
+// ToInt converts base58 to int
+func (b oldBase58) ToInt() (int, error) {
+ answer := 0
+ for i := 0; i < len(b); i++ {
+ answer *= 58 //multiply current value by 58
+ c, ok := revalp[string(b[i:i+1])]
+ if !ok {
+ return 0, errInvalidBase58Char
+ }
+ answer += c //add value of the current letter
+ }
+ return answer, nil
+}
+
+//ToHex converts base58 to hex bytes
+func (b oldBase58) ToHex() ([]byte, error) {
+ value, err := b.ToBig() //convert to big.Int
+ if err != nil {
+ return nil, err
+ }
+ oneCount := 0
+ bs := string(b)
+ if len(bs) == 0 {
+ return nil, fmt.Errorf("%v - len(bs) == 0", errInvalidBase58String)
+ }
+ for bs[oneCount] == '1' {
+ oneCount++
+ if oneCount >= len(bs) {
+ return nil, fmt.Errorf("%v - oneCount >= len(bs)", errInvalidBase58String)
+ }
+ }
+ //convert big.Int to bytes
+ return append(make([]byte, oneCount), value.Bytes()...), nil
+}
+
+// Base582Big converts base58 to big
+func (b oldBase58) Base582Big() (*big.Int, error) {
+ answer := new(big.Int)
+ for i := 0; i < len(b); i++ {
+ answer.Mul(answer, big.NewInt(58)) //multiply current value by 58
+ c, ok := revalp[string(b[i:i+1])]
+ if !ok {
+ return nil, errInvalidBase58Char
+ }
+ answer.Add(answer, big.NewInt(int64(c))) //add value of the current letter
+ }
+ return answer, nil
+}
+
+// Base582Int converts base58 to int
+func (b oldBase58) Base582Int() (int, error) {
+ answer := 0
+ for i := 0; i < len(b); i++ {
+ answer *= 58 //multiply current value by 58
+ c, ok := revalp[string(b[i:i+1])]
+ if !ok {
+ return 0, errInvalidBase58Char
+ }
+ answer += c //add value of the current letter
+ }
+ return answer, nil
+}
+
+// oldBase582Hex converts base58 to hex bytes
+func oldBase582Hex(b string) ([]byte, error) {
+ return oldBase58(b).ToHex()
+}
+
+// BitHex converts base58 to hexes used by Bitcoins (keeping the zeroes on the front, 25 bytes long)
+func (b oldBase58) BitHex() ([]byte, error) {
+ value, err := b.ToBig() //convert to big.Int
+ if err != nil {
+ return nil, err
+ }
+
+ tmp := value.Bytes() //convert to hex bytes
+ if len(tmp) == 25 { //if it is exactly 25 bytes, return
+ return tmp, nil
+ } else if len(tmp) > 25 { //if it is longer than 25, return nothing
+ return nil, errInvalidBase58Length
+ }
+ answer := make([]byte, 25) //make 25 byte container
+ for i := 0; i < len(tmp); i++ { //copy converted bytes
+ answer[24-i] = tmp[len(tmp)-1-i]
+ }
+ return answer, nil
+}
+
+// oldBig2Base58 encodes big.Int to base58 string
+func oldBig2Base58(val *big.Int) oldBase58 {
+ answer := ""
+ valCopy := new(big.Int).Abs(val) //copies big.Int
+
+ if val.Cmp(big.NewInt(0)) <= 0 { //if it is less than 0, returns empty string
+ return oldBase58("")
+ }
+
+ tmpStr := ""
+ tmp := new(big.Int)
+ for valCopy.Cmp(big.NewInt(0)) > 0 { //converts the number into base58
+ tmp.Mod(valCopy, big.NewInt(58)) //takes modulo 58 value
+ valCopy.Div(valCopy, big.NewInt(58)) //divides the rest by 58
+ tmpStr += alphabet[tmp.Int64() : tmp.Int64()+1] //encodes
+ }
+ for i := (len(tmpStr) - 1); i > -1; i-- {
+ answer += tmpStr[i : i+1] //reverses the order
+ }
+ return oldBase58(answer) //returns
+}
+
+// oldHex2Base58 encodes hex bytes into base58
+func oldHex2Base58(val []byte) oldBase58 {
+ tmp := oldBig2Base58(oldHex2Big(val)) //encoding of the number without zeroes in front
+
+ //looking for zeros at the beginning
+ i := 0
+ for i = 0; val[i] == 0 && i < len(val); i++ {
+ }
+ answer := ""
+ for j := 0; j < i; j++ { //adds zeroes from the front
+ answer += alphabet[0:1]
+ }
+ answer += string(tmp) //concatenates
+
+ return oldBase58(answer) //returns
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/bitcoin.go b/vendor/github.com/skycoin/skycoin/src/cipher/bitcoin.go
new file mode 100644
index 0000000000..e601d5a2cf
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/bitcoin.go
@@ -0,0 +1,195 @@
+package cipher
+
+import (
+ "bytes"
+ "errors"
+ "log"
+
+ "github.com/skycoin/skycoin/src/cipher/base58"
+)
+
+var (
+ // ErrInvalidLength Unexpected size of string or bytes buffer
+ ErrInvalidLength = errors.New("Invalid length")
+ // ErrBitcoinWIFInvalidFirstByte Unexpected value (!= 0x80) of first byte in Bitcoin Wallet Import Format
+ ErrBitcoinWIFInvalidFirstByte = errors.New("Bitcoin WIF: First byte invalid")
+ // ErrBitcoinWIFInvalidSuffix Unexpected value (!= 0x01) of 33rd byte in Bitcoin Wallet Import Format
+ ErrBitcoinWIFInvalidSuffix = errors.New("Bitcoin WIF: Invalid 33rd byte")
+ // ErrBitcoinWIFInvalidChecksum Invalid Checksum in Bitcoin WIF address
+ ErrBitcoinWIFInvalidChecksum = errors.New("Bitcoin WIF: Checksum fail")
+)
+
+// BitcoinAddress is a bitcoin address
+type BitcoinAddress struct {
+ Version byte // 1 byte
+ Key Ripemd160 // 20 byte pubkey hash
+}
+
+// BitcoinPubKeyRipemd160 returns ripemd160(sha256(key))
+func BitcoinPubKeyRipemd160(pubKey PubKey) Ripemd160 {
+ r1 := SumSHA256(pubKey[:])
+ return HashRipemd160(r1[:])
+}
+
+// BitcoinAddressFromPubKey creates a mainnet (version 0) BitcoinAddress from PubKey as ripemd160(sha256(pubkey)))
+func BitcoinAddressFromPubKey(pubKey PubKey) BitcoinAddress {
+ return BitcoinAddress{
+ Version: 0,
+ Key: BitcoinPubKeyRipemd160(pubKey),
+ }
+}
+
+// BitcoinAddressFromSecKey generates a BitcoinAddress from SecKey
+func BitcoinAddressFromSecKey(secKey SecKey) (BitcoinAddress, error) {
+ p, err := PubKeyFromSecKey(secKey)
+ if err != nil {
+ return BitcoinAddress{}, err
+ }
+ return BitcoinAddressFromPubKey(p), nil
+}
+
+// MustBitcoinAddressFromSecKey generates a BitcoinAddress from SecKey, panics on error
+func MustBitcoinAddressFromSecKey(secKey SecKey) BitcoinAddress {
+ return BitcoinAddressFromPubKey(MustPubKeyFromSecKey(secKey))
+}
+
+// DecodeBase58BitcoinAddress creates a BitcoinAddress from its base58 encoding
+func DecodeBase58BitcoinAddress(addr string) (BitcoinAddress, error) {
+ b, err := base58.Decode(addr)
+ if err != nil {
+ return BitcoinAddress{}, err
+ }
+ return BitcoinAddressFromBytes(b)
+}
+
+// MustDecodeBase58BitcoinAddress creates a BitcoinAddress from its base58 encoding, panics on error
+func MustDecodeBase58BitcoinAddress(addr string) BitcoinAddress {
+ a, err := DecodeBase58BitcoinAddress(addr)
+ if err != nil {
+ log.Panicf("Invalid bitcoin address %s: %v", addr, err)
+ }
+ return a
+}
+
+// BitcoinAddressFromBytes converts []byte to a BitcoinAddress. Only supports mainnet (version 0) addresses.
+func BitcoinAddressFromBytes(b []byte) (BitcoinAddress, error) {
+ if len(b) != 20+1+4 {
+ return BitcoinAddress{}, ErrAddressInvalidLength
+ }
+ a := BitcoinAddress{}
+ copy(a.Key[0:20], b[1:21])
+ a.Version = b[0]
+
+ var checksum [4]byte
+ copy(checksum[0:4], b[21:25])
+
+ if checksum != a.Checksum() {
+ return BitcoinAddress{}, ErrAddressInvalidChecksum
+ }
+
+ // BitcoinAddress only supports mainnet addresses for now
+ if a.Version != 0 {
+ return BitcoinAddress{}, ErrAddressInvalidVersion
+ }
+
+ return a, nil
+}
+
+// MustBitcoinAddressFromBytes converts []byte to a BitcoinAddress, panics on error
+func MustBitcoinAddressFromBytes(b []byte) BitcoinAddress {
+ addr, err := BitcoinAddressFromBytes(b)
+ if err != nil {
+ log.Panic(err)
+ }
+
+ return addr
+}
+
+// Null returns true if the address is null (0x0000....)
+func (addr BitcoinAddress) Null() bool {
+ return addr == BitcoinAddress{}
+}
+
+// Bytes returns bitcoin address as byte slice
+func (addr BitcoinAddress) Bytes() []byte {
+ b := make([]byte, 20+1+4)
+ b[0] = addr.Version
+ copy(b[1:21], addr.Key[0:20])
+ chksum := addr.Checksum()
+ copy(b[21:25], chksum[0:4])
+ return b
+}
+
+// Verify checks that the bitcoin address appears valid for the public key
+func (addr BitcoinAddress) Verify(key PubKey) error {
+ // BitcoinAddress only supports mainnet addresses for now
+ if addr.Version != 0x00 {
+ return ErrAddressInvalidVersion
+ }
+ if addr.Key != BitcoinPubKeyRipemd160(key) {
+ return ErrAddressInvalidPubKey
+ }
+ return nil
+}
+
+// String convert bitcoin address to hex string
+func (addr BitcoinAddress) String() string {
+ return string(base58.Encode(addr.Bytes()))
+}
+
+// Checksum returns a bitcoin address Checksum which is the first 4 bytes of sha256(sha256(version+key))
+func (addr BitcoinAddress) Checksum() Checksum {
+ r1 := append([]byte{addr.Version}, addr.Key[:]...)
+ r2 := DoubleSHA256(r1[:])
+ c := Checksum{}
+ copy(c[:], r2[:len(c)])
+ return c
+}
+
+// BitcoinWalletImportFormatFromSeckey exports seckey in wallet import format
+// key must be compressed
+func BitcoinWalletImportFormatFromSeckey(seckey SecKey) string {
+ b1 := append([]byte{byte(0x80)}, seckey[:]...)
+ b2 := append(b1[:], []byte{0x01}...)
+ b3 := DoubleSHA256(b2) //checksum
+ b4 := append(b2, b3[0:4]...)
+ return string(base58.Encode(b4))
+}
+
+// SecKeyFromBitcoinWalletImportFormat extracts a seckey from the bitcoin wallet import format
+func SecKeyFromBitcoinWalletImportFormat(input string) (SecKey, error) {
+ b, err := base58.Decode(input)
+ if err != nil {
+ return SecKey{}, err
+ }
+
+ //1+32+1+4
+ if len(b) != 38 {
+ return SecKey{}, ErrInvalidLength
+ }
+ if b[0] != 0x80 {
+ return SecKey{}, ErrBitcoinWIFInvalidFirstByte
+ }
+
+ if b[1+32] != 0x01 {
+ return SecKey{}, ErrBitcoinWIFInvalidSuffix
+ }
+
+ b2 := DoubleSHA256(b[0:34])
+ chksum := b[34:38]
+
+ if !bytes.Equal(chksum, b2[0:4]) {
+ return SecKey{}, ErrBitcoinWIFInvalidChecksum
+ }
+
+ return NewSecKey(b[1:33])
+}
+
+// MustSecKeyFromBitcoinWalletImportFormat extracts a seckey from the bitcoin wallet import format, panics on error
+func MustSecKeyFromBitcoinWalletImportFormat(input string) SecKey {
+ seckey, err := SecKeyFromBitcoinWalletImportFormat(input)
+ if err != nil {
+ log.Panicf("MustSecKeyFromBitcoinWalletImportFormat, invalid seckey, %v", err)
+ }
+ return seckey
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/crypto.go b/vendor/github.com/skycoin/skycoin/src/cipher/crypto.go
new file mode 100644
index 0000000000..073b0566e8
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/crypto.go
@@ -0,0 +1,696 @@
+/*
+Package cipher implements cryptographic methods.
+
+These methods include:
+
+* Public and private key generation
+* Address generation
+* Signing
+
+Private keys are secp256k1 keys. Addresses are base58 encoded.
+
+All dependencies are either from the go stdlib, or are manually vendored
+below this package. This manual vendoring ensures that the exact same dependencies
+are used by any user of this package, regardless of their gopath.
+*/
+package cipher
+
+import (
+ "crypto/sha256"
+ "encoding/hex"
+ "errors"
+ "fmt"
+ "hash"
+ "log"
+ "time"
+
+ "github.com/skycoin/skycoin/src/cipher/ripemd160"
+ "github.com/skycoin/skycoin/src/cipher/secp256k1-go"
+)
+
+var (
+ // DebugLevel1 debug level one
+ DebugLevel1 = true //checks for extremely unlikely conditions (10e-40)
+ // DebugLevel2 debug level two
+ DebugLevel2 = true //enable checks for impossible conditions
+
+ // ErrInvalidLengthPubKey Invalid public key length
+ ErrInvalidLengthPubKey = errors.New("Invalid public key length")
+ // ErrPubKeyFromNullSecKey Attempt to load null seckey, unsafe
+ ErrPubKeyFromNullSecKey = errors.New("Attempt to load null seckey, unsafe")
+ // ErrPubKeyFromBadSecKey PubKeyFromSecKey, pubkey recovery failed. Function
+ ErrPubKeyFromBadSecKey = errors.New("PubKeyFromSecKey, pubkey recovery failed. Function assumes seckey is valid. Check seckey")
+ // ErrInvalidLengthSecKey Invalid secret key length
+ ErrInvalidLengthSecKey = errors.New("Invalid secret key length")
+ // ErrECHDInvalidPubKey ECDH invalid pubkey input
+ ErrECHDInvalidPubKey = errors.New("ECDH invalid pubkey input")
+ // ErrECHDInvalidSecKey ECDH invalid seckey input
+ ErrECHDInvalidSecKey = errors.New("ECDH invalid seckey input")
+ // ErrInvalidLengthSig Invalid signature length
+ ErrInvalidLengthSig = errors.New("Invalid signature length")
+ // ErrInvalidPubKey Invalid public key
+ ErrInvalidPubKey = errors.New("Invalid public key")
+ // ErrInvalidSecKey Invalid public key
+ ErrInvalidSecKey = errors.New("Invalid secret key")
+ // ErrInvalidSig Invalid signature
+ ErrInvalidSig = errors.New("Invalid signature")
+ // ErrInvalidSigPubKeyRecovery could not recover pubkey from sig
+ ErrInvalidSigPubKeyRecovery = errors.New("Failed to recover pubkey from signature")
+ // ErrInvalidAddressForSig the address derived from the pubkey recovered from the signature does not match a provided address
+ ErrInvalidAddressForSig = errors.New("Address does not match recovered signing address")
+ // ErrInvalidHashForSig Signature invalid for hash
+ ErrInvalidHashForSig = errors.New("Signature not valid for hash")
+ // ErrPubKeyRecoverMismatch Recovered pubkey does not match pubkey
+ ErrPubKeyRecoverMismatch = errors.New("Recovered pubkey does not match pubkey")
+ // ErrInvalidSigInvalidPubKey VerifySignedHash, secp256k1.VerifyPubkey failed
+ ErrInvalidSigInvalidPubKey = errors.New("VerifySignedHash, secp256k1.VerifyPubkey failed")
+ // ErrInvalidSigValidity VerifySignedHash, VerifySignatureValidity failed
+ ErrInvalidSigValidity = errors.New("VerifySignedHash, VerifySignatureValidity failed")
+ // ErrInvalidSigForMessage Invalid signature for this message
+ ErrInvalidSigForMessage = errors.New("Invalid signature for this message")
+ // ErrInvalidSecKyVerification Seckey secp256k1 verification failed
+ ErrInvalidSecKyVerification = errors.New("Seckey verification failed")
+ // ErrNullPubKeyFromSecKey Impossible error, TestSecKey, nil pubkey recovered
+ ErrNullPubKeyFromSecKey = errors.New("impossible error, TestSecKey, nil pubkey recovered")
+ // ErrInvalidDerivedPubKeyFromSecKey impossible error, TestSecKey, Derived Pubkey verification failed
+ ErrInvalidDerivedPubKeyFromSecKey = errors.New("impossible error, TestSecKey, Derived Pubkey verification failed")
+ // ErrInvalidPubKeyFromHash Recovered pubkey does not match signed hash
+ ErrInvalidPubKeyFromHash = errors.New("Recovered pubkey does not match signed hash")
+ // ErrPubKeyFromSecKeyMismatch impossible error TestSecKey, pubkey does not match recovered pubkey
+ ErrPubKeyFromSecKeyMismatch = errors.New("impossible error TestSecKey, pubkey does not match recovered pubkey")
+ // ErrEmptySeed Seed input is empty
+ ErrEmptySeed = errors.New("Seed input is empty")
+)
+
+// PubKey public key
+type PubKey [33]byte
+
+// RandByte returns rand N bytes
+func RandByte(n int) []byte {
+ return secp256k1.RandByte(n)
+}
+
+// NewPubKey converts []byte to a PubKey
+func NewPubKey(b []byte) (PubKey, error) {
+ p := PubKey{}
+ if len(b) != len(p) {
+ return PubKey{}, ErrInvalidLengthPubKey
+ }
+ copy(p[:], b[:])
+
+ if err := p.Verify(); err != nil {
+ return PubKey{}, err
+ }
+
+ return p, nil
+}
+
+// MustNewPubKey converts []byte to a PubKey, panics on error
+func MustNewPubKey(b []byte) PubKey {
+ p, err := NewPubKey(b)
+ if err != nil {
+ log.Panic(err)
+ }
+ return p
+}
+
+// PubKeyFromHex generates PubKey from hex string
+func PubKeyFromHex(s string) (PubKey, error) {
+ b, err := hex.DecodeString(s)
+ if err != nil {
+ return PubKey{}, ErrInvalidPubKey
+ }
+ return NewPubKey(b)
+}
+
+// MustPubKeyFromHex decodes a hex encoded PubKey, panics on error
+func MustPubKeyFromHex(s string) PubKey {
+ b, err := hex.DecodeString(s)
+ if err != nil {
+ log.Panic(err)
+ }
+ return MustNewPubKey(b)
+}
+
+// PubKeyFromSecKey recovers the public key for a secret key
+func PubKeyFromSecKey(seckey SecKey) (PubKey, error) {
+ if seckey == (SecKey{}) {
+ return PubKey{}, ErrPubKeyFromNullSecKey
+ }
+
+ b := secp256k1.PubkeyFromSeckey(seckey[:])
+ if b == nil {
+ return PubKey{}, ErrPubKeyFromBadSecKey
+ }
+
+ return NewPubKey(b)
+}
+
+// MustPubKeyFromSecKey recovers the public key for a secret key. Panics on error.
+func MustPubKeyFromSecKey(seckey SecKey) PubKey {
+ pk, err := PubKeyFromSecKey(seckey)
+ if err != nil {
+ log.Panic(err)
+ }
+ return pk
+}
+
+// PubKeyFromSig recovers the public key from a signed hash
+func PubKeyFromSig(sig Sig, hash SHA256) (PubKey, error) {
+ rawPubKey := secp256k1.RecoverPubkey(hash[:], sig[:])
+ if rawPubKey == nil {
+ return PubKey{}, ErrInvalidSigPubKeyRecovery
+ }
+ return NewPubKey(rawPubKey)
+}
+
+// MustPubKeyFromSig recovers the public key from a signed hash, panics on error
+func MustPubKeyFromSig(sig Sig, hash SHA256) PubKey {
+ pk, err := PubKeyFromSig(sig, hash)
+ if err != nil {
+ log.Panic(err)
+ }
+ return pk
+}
+
+// Verify attempts to determine if pubkey is valid. Returns nil on success
+func (pk PubKey) Verify() error {
+ if secp256k1.VerifyPubkey(pk[:]) != 1 {
+ return ErrInvalidPubKey
+ }
+ return nil
+}
+
+// Hex returns a hex encoded PubKey string
+func (pk PubKey) Hex() string {
+ return hex.EncodeToString(pk[:])
+}
+
+// Null returns true if PubKey is the null PubKey
+func (pk PubKey) Null() bool {
+ return pk == PubKey{}
+}
+
+// SecKey secret key
+type SecKey [32]byte
+
+// NewSecKey converts []byte to a SecKey
+func NewSecKey(b []byte) (SecKey, error) {
+ p := SecKey{}
+ if len(b) != len(p) {
+ return SecKey{}, ErrInvalidLengthSecKey
+ }
+ copy(p[:], b[:])
+
+ // Disable the DebugLevel2 check here because it is too slow.
+ // If desired, perform the full Verify() check after using this method
+ if err := p.verify(false); err != nil {
+ return SecKey{}, err
+ }
+
+ return p, nil
+}
+
+// MustNewSecKey converts []byte to a SecKey. Panics is []byte is not the exact size
+func MustNewSecKey(b []byte) SecKey {
+ p, err := NewSecKey(b)
+ if err != nil {
+ log.Panic(err)
+ }
+ return p
+}
+
+// MustSecKeyFromHex decodes a hex encoded SecKey, or panics
+func MustSecKeyFromHex(s string) SecKey {
+ b, err := hex.DecodeString(s)
+ if err != nil {
+ log.Panic(err)
+ }
+ return MustNewSecKey(b)
+}
+
+// SecKeyFromHex decodes a hex encoded SecKey, or panics
+func SecKeyFromHex(s string) (SecKey, error) {
+ b, err := hex.DecodeString(s)
+ if err != nil {
+ return SecKey{}, ErrInvalidSecKey
+ }
+ return NewSecKey(b)
+}
+
+// Verify attempts to determine if SecKey is valid. Returns nil on success.
+// If DebugLevel2, will do additional sanity checking
+func (sk SecKey) Verify() error {
+ return sk.verify(DebugLevel2)
+}
+
+func (sk SecKey) verify(debugLevel2Check bool) error {
+ if secp256k1.VerifySeckey(sk[:]) != 1 {
+ return ErrInvalidSecKey
+ }
+
+ if debugLevel2Check {
+ if err := CheckSecKey(sk); err != nil {
+ log.Panicf("DebugLevel2, WARNING CRYPTO ARMAGEDDON: %v", err)
+ }
+ }
+
+ return nil
+}
+
+// Hex returns a hex encoded SecKey string
+func (sk SecKey) Hex() string {
+ return hex.EncodeToString(sk[:])
+}
+
+// Null returns true if SecKey is the null SecKey
+func (sk SecKey) Null() bool {
+ return sk == SecKey{}
+}
+
+//ECDH generates a shared secret
+// A: pub1,sec1
+// B: pub2,sec2
+// person A sends their public key pub1
+// person B sends an emphameral pubkey pub2
+// person A computes cipher.ECDH(pub2, sec1)
+// person B computes cipher.ECDH(pub1, sec2)
+// cipher.ECDH(pub2, sec1) equals cipher.ECDH(pub1, sec2)
+// This is their shared secret
+func ECDH(pub PubKey, sec SecKey) ([]byte, error) {
+ if err := pub.Verify(); err != nil {
+ return nil, ErrECHDInvalidPubKey
+ }
+
+ // Don't perform the DebugLevel2 verification check for the secret key,
+ // it is too slow to use in an ECDH context and is not important for that use case
+ if err := sec.verify(false); err != nil {
+ return nil, ErrECHDInvalidSecKey
+ }
+
+ buff := secp256k1.ECDH(pub[:], sec[:])
+ ret := SumSHA256(buff) // hash this so they cant screw up
+ return ret[:], nil
+}
+
+// MustECDH calls ECDH and panics on error
+func MustECDH(pub PubKey, sec SecKey) []byte {
+ r, err := ECDH(pub, sec)
+ if err != nil {
+ log.Panic(err)
+ }
+ return r
+}
+
+// Sig signature
+type Sig [64 + 1]byte //64 byte signature with 1 byte for key recovery
+
+// NewSig converts []byte to a Sig
+func NewSig(b []byte) (Sig, error) {
+ s := Sig{}
+ if len(b) != len(s) {
+ return Sig{}, ErrInvalidLengthSig
+ }
+ copy(s[:], b[:])
+ return s, nil
+}
+
+// MustNewSig converts []byte to a Sig. Panics is []byte is not the exact size
+func MustNewSig(b []byte) Sig {
+ s := Sig{}
+ if len(b) != len(s) {
+ log.Panic("Invalid signature length")
+ }
+ copy(s[:], b[:])
+ return s
+}
+
+// SigFromHex converts a hex string to a signature
+func SigFromHex(s string) (Sig, error) {
+ b, err := hex.DecodeString(s)
+ if err != nil {
+ return Sig{}, ErrInvalidSig
+ }
+ return NewSig(b)
+}
+
+// MustSigFromHex converts a hex string to a signature, panics on error
+func MustSigFromHex(s string) Sig {
+ sig, err := SigFromHex(s)
+ if err != nil {
+ log.Panic(err)
+ }
+ return sig
+}
+
+// Hex converts signature to hex string
+func (s Sig) Hex() string {
+ return hex.EncodeToString(s[:])
+}
+
+// SignHash sign hash
+func SignHash(hash SHA256, sec SecKey) (Sig, error) {
+ if secp256k1.VerifySeckey(sec[:]) != 1 {
+ // can't use sec.Verify() because that calls SignHash again, with DebugLevel2 set
+ return Sig{}, ErrInvalidSecKey
+ }
+
+ s := secp256k1.Sign(hash[:], sec[:])
+
+ sig, err := NewSig(s)
+ if err != nil {
+ return Sig{}, err
+ }
+
+ if DebugLevel2 || DebugLevel1 {
+ // Guard against coin loss;
+ // if the generated signature is somehow invalid, coins would be lost,
+ // make sure that the signature is valid
+ pubkey, err := PubKeyFromSig(sig, hash)
+ if err != nil {
+ log.Panic("SignHash error: pubkey from sig recovery failure")
+ }
+ if VerifyPubKeySignedHash(pubkey, sig, hash) != nil {
+ log.Panic("SignHash error: secp256k1.Sign returned non-null invalid non-null signature")
+ }
+ if VerifyAddressSignedHash(AddressFromPubKey(pubkey), sig, hash) != nil {
+ log.Panic("SignHash error: VerifyAddressSignedHash failed for signature")
+ }
+ }
+
+ return sig, nil
+}
+
+// MustSignHash sign hash, panics on error
+func MustSignHash(hash SHA256, sec SecKey) Sig {
+ sig, err := SignHash(hash, sec)
+ if err != nil {
+ log.Panic(err)
+ }
+ return sig
+}
+
+// VerifyAddressSignedHash checks whether PubKey corresponding to address hash signed hash
+// - recovers the PubKey from sig and hash
+// - fail if PubKey cannot be be recovered
+// - computes the address from the PubKey
+// - fail if recovered address does not match PubKey hash
+// - verify that signature is valid for hash for PubKey
+func VerifyAddressSignedHash(address Address, sig Sig, hash SHA256) error {
+ rawPubKey := secp256k1.RecoverPubkey(hash[:], sig[:])
+ if rawPubKey == nil {
+ return ErrInvalidSigPubKeyRecovery
+ }
+
+ pubKey, err := NewPubKey(rawPubKey)
+ if err != nil {
+ return err
+ }
+
+ if address != AddressFromPubKey(pubKey) {
+ return ErrInvalidAddressForSig
+ }
+
+ if secp256k1.VerifySignature(hash[:], sig[:], rawPubKey[:]) != 1 {
+ return ErrInvalidHashForSig
+ }
+
+ return nil
+}
+
+// VerifyPubKeySignedHash verifies that hash was signed by PubKey
+func VerifyPubKeySignedHash(pubkey PubKey, sig Sig, hash SHA256) error {
+ pubkeyRec, err := PubKeyFromSig(sig, hash) // recovered pubkey
+ if err != nil {
+ return ErrInvalidSigPubKeyRecovery
+ }
+ if pubkeyRec != pubkey {
+ return ErrPubKeyRecoverMismatch
+ }
+ if secp256k1.VerifyPubkey(pubkey[:]) != 1 {
+ if DebugLevel2 {
+ if secp256k1.VerifySignature(hash[:], sig[:], pubkey[:]) == 1 {
+ log.Panic("VerifyPubKeySignedHash warning, invalid pubkey is valid for signature")
+ }
+ }
+ return ErrInvalidSigInvalidPubKey
+ }
+ if secp256k1.VerifySignatureValidity(sig[:]) != 1 {
+ return ErrInvalidSigValidity
+ }
+ if secp256k1.VerifySignature(hash[:], sig[:], pubkey[:]) != 1 {
+ return ErrInvalidSigForMessage
+ }
+ return nil
+}
+
+// VerifySignedHash this only checks that the signature can be converted to a public key
+// Since there is no pubkey or address argument, it cannot check that the
+// signature is valid in that context.
+func VerifySignedHash(sig Sig, hash SHA256) error {
+ rawPubKey := secp256k1.RecoverPubkey(hash[:], sig[:])
+ if rawPubKey == nil {
+ return ErrInvalidSigPubKeyRecovery
+ }
+ if secp256k1.VerifySignature(hash[:], sig[:], rawPubKey) != 1 {
+ return ErrInvalidHashForSig
+ }
+ return nil
+}
+
+// GenerateKeyPair creates key pair
+func GenerateKeyPair() (PubKey, SecKey) {
+ public, secret := secp256k1.GenerateKeyPair()
+
+ secKey, err := NewSecKey(secret)
+ if err != nil {
+ log.Panicf("GenerateKeyPair: secp256k1.GenerateKeyPair returned invalid secKey: %v", err)
+ }
+
+ pubKey, err := NewPubKey(public)
+ if err != nil {
+ log.Panicf("GenerateKeyPair: secp256k1.GenerateKeyPair returned invalid pubKey: %v", err)
+ }
+
+ if DebugLevel1 {
+ if err := CheckSecKey(secKey); err != nil {
+ log.Panicf("DebugLevel1, GenerateKeyPair, generated private key failed CheckSecKey: %v", err)
+ }
+
+ if MustPubKeyFromSecKey(secKey) != pubKey {
+ log.Panic("DebugLevel1, GenerateKeyPair, public key does not match private key")
+ }
+ }
+
+ return pubKey, secKey
+}
+
+// GenerateDeterministicKeyPair generates deterministic key pair
+func GenerateDeterministicKeyPair(seed []byte) (PubKey, SecKey, error) {
+ if len(seed) == 0 {
+ return PubKey{}, SecKey{}, ErrEmptySeed
+ }
+
+ public, secret := secp256k1.GenerateDeterministicKeyPair(seed)
+
+ secKey, err := NewSecKey(secret)
+ if err != nil {
+ log.Panicf("GenerateDeterministicKeyPair: secp256k1.GenerateDeterministicKeyPair returned invalid secKey: %v", err)
+ }
+
+ pubKey, err := NewPubKey(public)
+ if err != nil {
+ log.Panicf("GenerateDeterministicKeyPair: secp256k1.GenerateDeterministicKeyPair returned invalid pubKey: %v", err)
+ }
+
+ if DebugLevel1 {
+ if err := CheckSecKey(secKey); err != nil {
+ log.Panicf("DebugLevel1, GenerateDeterministicKeyPair, CheckSecKey failed: %v", err)
+ }
+
+ if MustPubKeyFromSecKey(secKey) != pubKey {
+ log.Panic("DebugLevel1, GenerateDeterministicKeyPair, public key does not match private key")
+ }
+ }
+
+ return pubKey, secKey, nil
+}
+
+// MustGenerateDeterministicKeyPair generates deterministic key pair, panics on error
+func MustGenerateDeterministicKeyPair(seed []byte) (PubKey, SecKey) {
+ p, s, err := GenerateDeterministicKeyPair(seed)
+ if err != nil {
+ log.Panic(err)
+ }
+ return p, s
+}
+
+// DeterministicKeyPairIterator takes SHA256 value, returns a new
+// SHA256 value and publickey and private key. Apply multiple times
+// feeding the SHA256 value back into generate sequence of keys
+func DeterministicKeyPairIterator(seed []byte) ([]byte, PubKey, SecKey, error) {
+ if len(seed) == 0 {
+ return nil, PubKey{}, SecKey{}, ErrEmptySeed
+ }
+
+ hash, public, secret := secp256k1.DeterministicKeyPairIterator(seed)
+
+ secKey := MustNewSecKey(secret)
+ pubKey := MustNewPubKey(public)
+
+ if DebugLevel1 {
+ if err := CheckSecKey(secKey); err != nil {
+ log.Panicf("DebugLevel1, DeterministicKeyPairIterator, CheckSecKey failed: %v", err)
+ }
+
+ if MustPubKeyFromSecKey(secKey) != pubKey {
+ log.Panic("DebugLevel1, DeterministicKeyPairIterator, public key does not match private key")
+ }
+ }
+
+ return hash, pubKey, secKey, nil
+}
+
+// MustDeterministicKeyPairIterator takes SHA256 value, returns a new
+// SHA256 value and publickey and private key. Apply multiple times
+// feeding the SHA256 value back into generate sequence of keys, panics on error
+func MustDeterministicKeyPairIterator(seed []byte) ([]byte, PubKey, SecKey) {
+ hash, p, s, err := DeterministicKeyPairIterator(seed)
+ if err != nil {
+ log.Panic(err)
+ }
+ return hash, p, s
+}
+
+// GenerateDeterministicKeyPairs returns sequence of n private keys from initial seed
+func GenerateDeterministicKeyPairs(seed []byte, n int) ([]SecKey, error) {
+ _, keys, err := GenerateDeterministicKeyPairsSeed(seed, n)
+ return keys, err
+}
+
+// MustGenerateDeterministicKeyPairs returns sequence of n private keys from initial seed, panics on error
+func MustGenerateDeterministicKeyPairs(seed []byte, n int) []SecKey {
+ keys, err := GenerateDeterministicKeyPairs(seed, n)
+ if err != nil {
+ log.Panic(err)
+ }
+ return keys
+}
+
+// GenerateDeterministicKeyPairsSeed returns sequence of n private keys from initial seed, and return the new seed
+func GenerateDeterministicKeyPairsSeed(seed []byte, n int) ([]byte, []SecKey, error) {
+ var keys []SecKey
+ var seckey SecKey
+ for i := 0; i < n; i++ {
+ var err error
+ seed, _, seckey, err = DeterministicKeyPairIterator(seed)
+ if err != nil {
+ return nil, nil, err
+ }
+ keys = append(keys, seckey)
+ }
+ return seed, keys, nil
+}
+
+// MustGenerateDeterministicKeyPairsSeed returns sequence of n private keys from initial seed, and return the new seed
+func MustGenerateDeterministicKeyPairsSeed(seed []byte, n int) ([]byte, []SecKey) {
+ newSeed, keys, err := GenerateDeterministicKeyPairsSeed(seed, n)
+ if err != nil {
+ log.Panic(err)
+ }
+ return newSeed, keys
+}
+
+// CheckSecKey test seckey hash
+func CheckSecKey(seckey SecKey) error {
+ hash := SumSHA256([]byte(time.Now().String()))
+ return CheckSecKeyHash(seckey, hash)
+}
+
+// CheckSecKeyHash performs a series of tests to determine if a seckey is valid.
+// All generated keys and keys loaded from disc must pass the CheckSecKey suite.
+// TestPrivKey returns error if a key fails any test in the test suite.
+func CheckSecKeyHash(seckey SecKey, hash SHA256) error {
+ // check seckey with verify
+ if secp256k1.VerifySeckey(seckey[:]) != 1 {
+ return ErrInvalidSecKyVerification
+ }
+
+ // check pubkey recovery
+ pubkey, err := PubKeyFromSecKey(seckey)
+ if err != nil {
+ return fmt.Errorf("PubKeyFromSecKey failed: %v", err)
+ }
+ if pubkey == (PubKey{}) {
+ return ErrNullPubKeyFromSecKey
+ }
+ // verify recovered pubkey
+ if secp256k1.VerifyPubkey(pubkey[:]) != 1 {
+ return ErrInvalidDerivedPubKeyFromSecKey
+ }
+
+ // check signature production
+ sig, err := SignHash(hash, seckey)
+ if err != nil {
+ return fmt.Errorf("SignHash failed: %v", err)
+ }
+
+ pubkey2, err := PubKeyFromSig(sig, hash)
+ if err != nil {
+ return fmt.Errorf("PubKeyFromSig failed: %v", err)
+ }
+ if pubkey != pubkey2 {
+ return ErrInvalidPubKeyFromHash
+ }
+
+ // check pubkey recovered from sig
+ recoveredPubkey, err := PubKeyFromSig(sig, hash)
+ if err != nil {
+ return fmt.Errorf("impossible error, CheckSecKeyHash, pubkey recovery from signature failed: %v", err)
+ }
+ if pubkey != recoveredPubkey {
+ return ErrPubKeyFromSecKeyMismatch
+ }
+
+ // verify produced signature
+ err = VerifyPubKeySignedHash(pubkey, sig, hash)
+ if err != nil {
+ return fmt.Errorf("impossible error, CheckSecKeyHash, VerifyPubKeySignedHash failed for sig: %v", err)
+ }
+
+ // verify VerifyAddressSignedHash
+ addr := AddressFromPubKey(pubkey)
+ err = VerifyAddressSignedHash(addr, sig, hash)
+ if err != nil {
+ return fmt.Errorf("impossible error CheckSecKeyHash, VerifyAddressSignedHash Failed, should not get this far: %v", err)
+ }
+
+ // verify VerifySignedHash
+ err = VerifySignedHash(sig, hash)
+ if err != nil {
+ return fmt.Errorf("VerifySignedHash failed: %v", err)
+ }
+
+ return nil
+}
+
+func init() {
+ ripemd160HashPool = make(chan hash.Hash, ripemd160HashPoolSize)
+ for i := 0; i < ripemd160HashPoolSize; i++ {
+ ripemd160HashPool <- ripemd160.New()
+ }
+
+ sha256HashPool = make(chan hash.Hash, sha256HashPoolSize)
+ for i := 0; i < sha256HashPoolSize; i++ {
+ sha256HashPool <- sha256.New()
+ }
+
+ // Do not allow program to start if crypto tests fail
+ pubkey, seckey := GenerateKeyPair()
+ if err := CheckSecKey(seckey); err != nil {
+ log.Fatalf("CRYPTOGRAPHIC INTEGRITY CHECK FAILED: TERMINATING PROGRAM TO PROTECT COINS: %v", err)
+ }
+ if MustPubKeyFromSecKey(seckey) != pubkey {
+ log.Fatal("DebugLevel1, GenerateKeyPair, public key does not match private key")
+ }
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/hash.go b/vendor/github.com/skycoin/skycoin/src/cipher/hash.go
new file mode 100644
index 0000000000..5d169ae587
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/hash.go
@@ -0,0 +1,204 @@
+package cipher
+
+import (
+ "encoding/hex"
+ "errors"
+ "hash"
+ "log"
+)
+
+var (
+ // Memory pool for hashes
+ sha256HashPoolSize = 30
+ sha256HashPool chan hash.Hash
+ ripemd160HashPoolSize = 30
+ ripemd160HashPool chan hash.Hash
+)
+
+var (
+ // ErrInvalidLengthRipemd160 Invalid ripemd160 length
+ ErrInvalidLengthRipemd160 = errors.New("Invalid ripemd160 length")
+ // ErrInvalidLengthSHA256 Invalid sha256 length
+ ErrInvalidLengthSHA256 = errors.New("Invalid sha256 length")
+ // ErrInvalidHexLength Invalid hex length
+ ErrInvalidHexLength = errors.New("Invalid hex length")
+ // ErrInvalidBytesLength Invalid bytes length
+ ErrInvalidBytesLength = errors.New("Invalid bytes length")
+)
+
+// Ripemd160 ripemd160
+type Ripemd160 [20]byte
+
+// MustSet sets value, panics on error
+func (rd *Ripemd160) MustSet(b []byte) {
+ if len(b) != 20 {
+ log.Panic(ErrInvalidLengthRipemd160)
+ }
+ copy(rd[:], b[:])
+}
+
+// Set sets value
+func (rd *Ripemd160) Set(b []byte) error {
+ if len(b) != 20 {
+ return ErrInvalidLengthRipemd160
+ }
+ copy(rd[:], b[:])
+ return nil
+}
+
+// Ripemd160FromBytes converts []byte to Ripemd160
+func Ripemd160FromBytes(b []byte) (Ripemd160, error) {
+ h := Ripemd160{}
+ err := h.Set(b)
+ return h, err
+}
+
+// MustRipemd160FromBytes converts []byte to Ripemd160, panics on error
+func MustRipemd160FromBytes(b []byte) Ripemd160 {
+ h := Ripemd160{}
+ h.MustSet(b)
+ return h
+}
+
+// HashRipemd160 hash data to Ripemd160
+func HashRipemd160(data []byte) Ripemd160 {
+ ripemd160Hash := <-ripemd160HashPool
+ ripemd160Hash.Reset()
+ // ripemd160.Write never returns an error
+ ripemd160Hash.Write(data) // nolint: errcheck
+ sum := ripemd160Hash.Sum(nil)
+ ripemd160HashPool <- ripemd160Hash
+
+ h := Ripemd160{}
+ h.MustSet(sum)
+ return h
+}
+
+// SHA256 32 bytes
+type SHA256 [32]byte
+
+// MustSet sets value, panics on error
+func (g *SHA256) MustSet(b []byte) {
+ if len(b) != 32 {
+ panic(ErrInvalidLengthSHA256)
+ }
+ copy(g[:], b[:])
+}
+
+// Set sets value
+func (g *SHA256) Set(b []byte) error {
+ if len(b) != 32 {
+ return ErrInvalidLengthSHA256
+ }
+ copy(g[:], b[:])
+ return nil
+}
+
+// Hex encode sha256 to hex string
+func (g SHA256) Hex() string {
+ return hex.EncodeToString(g[:])
+}
+
+// Null returns true if the hash is null (0x0000..)
+func (g SHA256) Null() bool {
+ return g == SHA256{}
+}
+
+// Xor xor
+func (g *SHA256) Xor(b SHA256) SHA256 {
+ c := SHA256{}
+ for i := 0; i < 32; i++ {
+ c[i] = g[i] ^ b[i]
+ }
+ return c
+}
+
+// SHA256FromHex decodes a hex encoded SHA256 hash to bytes
+func SHA256FromHex(hs string) (SHA256, error) {
+ h := SHA256{}
+ b, err := hex.DecodeString(hs)
+ if err != nil {
+ return h, err
+ }
+ if len(b) != len(h) {
+ return h, ErrInvalidHexLength
+ }
+ h.MustSet(b)
+ return h, nil
+}
+
+// MustSHA256FromHex decodes a hex encoded SHA256 hash to bytes, panics on error
+func MustSHA256FromHex(hs string) SHA256 {
+ h, err := SHA256FromHex(hs)
+ if err != nil {
+ log.Panic(err)
+ }
+ return h
+}
+
+// SHA256FromBytes converts []byte to SHA256
+func SHA256FromBytes(b []byte) (SHA256, error) {
+ h := SHA256{}
+ err := h.Set(b)
+ return h, err
+}
+
+// MustSHA256FromBytes converts []byte to SHA256, panics on error
+func MustSHA256FromBytes(b []byte) SHA256 {
+ h := SHA256{}
+ h.MustSet(b)
+ return h
+}
+
+// SumSHA256 sum sha256
+func SumSHA256(b []byte) SHA256 {
+ sha256Hash := <-sha256HashPool
+ sha256Hash.Reset()
+ // sha256.Write never returns an error
+ sha256Hash.Write(b) // nolint: errcheck
+ sum := sha256Hash.Sum(nil)
+ sha256HashPool <- sha256Hash
+
+ h := SHA256{}
+ h.MustSet(sum)
+ return h
+}
+
+// DoubleSHA256 double SHA256
+func DoubleSHA256(b []byte) SHA256 {
+ h1 := SumSHA256(b)
+ h2 := SumSHA256(h1[:])
+ return h2
+}
+
+// AddSHA256 returns the SHA256 hash of to two concatenated hashes
+func AddSHA256(a SHA256, b SHA256) SHA256 {
+ c := append(a[:], b[:]...)
+ return SumSHA256(c)
+}
+
+// Returns the next highest power of 2 above n, if n is not already a
+// power of 2
+func nextPowerOfTwo(n uint64) uint64 {
+ var k uint64 = 1
+ for k < n {
+ k *= 2
+ }
+ return k
+}
+
+// Merkle computes the merkle root of a hash array
+// Array of hashes is padded with 0 hashes until next power of 2
+func Merkle(h0 []SHA256) SHA256 {
+ lh := uint64(len(h0))
+ np := nextPowerOfTwo(lh)
+ h1 := append(h0, make([]SHA256, np-lh)...)
+ for len(h1) != 1 {
+ h2 := make([]SHA256, len(h1)/2)
+ for i := 0; i < len(h2); i++ {
+ h2[i] = AddSHA256(h1[2*i], h1[2*i+1])
+ }
+ h1 = h2
+ }
+ return h1[0]
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/ripemd160/ripemd160block.go b/vendor/github.com/skycoin/skycoin/src/cipher/ripemd160/ripemd160block.go
new file mode 100644
index 0000000000..4195209e04
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/ripemd160/ripemd160block.go
@@ -0,0 +1,161 @@
+// Copyright 2010 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.
+
+// RIPEMD-160 block step.
+// In its own file so that a faster assembly or C version
+// can be substituted easily.
+
+package ripemd160
+
+// work buffer indices and roll amounts for one line
+var _n = [80]uint{
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,
+ 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,
+ 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,
+ 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13,
+}
+
+var _r = [80]uint{
+ 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,
+ 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,
+ 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,
+ 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,
+ 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6,
+}
+
+// same for the other parallel one
+var n_ = [80]uint{ // nolint: golint
+ 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,
+ 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,
+ 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,
+ 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,
+ 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11,
+}
+
+var r_ = [80]uint{ // nolint: golint
+ 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,
+ 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,
+ 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,
+ 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,
+ 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11,
+}
+
+func _Block(md *digest, p []byte) int {
+ n := 0
+ var x [16]uint32
+ var alpha, beta uint32
+ for len(p) >= BlockSize {
+ a, b, c, d, e := md.s[0], md.s[1], md.s[2], md.s[3], md.s[4]
+ aa, bb, cc, dd, ee := a, b, c, d, e
+ j := 0
+ for i := 0; i < 16; i++ {
+ x[i] = uint32(p[j]) | uint32(p[j+1])<<8 | uint32(p[j+2])<<16 | uint32(p[j+3])<<24
+ j += 4
+ }
+
+ // round 1
+ i := 0
+ for i < 16 {
+ alpha = a + (b ^ c ^ d) + x[_n[i]]
+ s := _r[i]
+ alpha = (alpha<>(32-s)) + e
+ beta = c<<10 | c>>22
+ a, b, c, d, e = e, alpha, b, beta, d
+
+ // parallel line
+ alpha = aa + (bb ^ (cc | ^dd)) + x[n_[i]] + 0x50a28be6
+ s = r_[i]
+ alpha = (alpha<>(32-s)) + ee
+ beta = cc<<10 | cc>>22
+ aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd
+
+ i++
+ }
+
+ // round 2
+ for i < 32 {
+ alpha = a + (b&c | ^b&d) + x[_n[i]] + 0x5a827999
+ s := _r[i]
+ alpha = (alpha<>(32-s)) + e
+ beta = c<<10 | c>>22
+ a, b, c, d, e = e, alpha, b, beta, d
+
+ // parallel line
+ alpha = aa + (bb&dd | cc&^dd) + x[n_[i]] + 0x5c4dd124
+ s = r_[i]
+ alpha = (alpha<>(32-s)) + ee
+ beta = cc<<10 | cc>>22
+ aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd
+
+ i++
+ }
+
+ // round 3
+ for i < 48 {
+ alpha = a + (b | ^c ^ d) + x[_n[i]] + 0x6ed9eba1
+ s := _r[i]
+ alpha = (alpha<>(32-s)) + e
+ beta = c<<10 | c>>22
+ a, b, c, d, e = e, alpha, b, beta, d
+
+ // parallel line
+ alpha = aa + (bb | ^cc ^ dd) + x[n_[i]] + 0x6d703ef3
+ s = r_[i]
+ alpha = (alpha<>(32-s)) + ee
+ beta = cc<<10 | cc>>22
+ aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd
+
+ i++
+ }
+
+ // round 4
+ for i < 64 {
+ alpha = a + (b&d | c&^d) + x[_n[i]] + 0x8f1bbcdc
+ s := _r[i]
+ alpha = (alpha<>(32-s)) + e
+ beta = c<<10 | c>>22
+ a, b, c, d, e = e, alpha, b, beta, d
+
+ // parallel line
+ alpha = aa + (bb&cc | ^bb&dd) + x[n_[i]] + 0x7a6d76e9
+ s = r_[i]
+ alpha = (alpha<>(32-s)) + ee
+ beta = cc<<10 | cc>>22
+ aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd
+
+ i++
+ }
+
+ // round 5
+ for i < 80 {
+ alpha = a + (b ^ (c | ^d)) + x[_n[i]] + 0xa953fd4e
+ s := _r[i]
+ alpha = (alpha<>(32-s)) + e
+ beta = c<<10 | c>>22
+ a, b, c, d, e = e, alpha, b, beta, d
+
+ // parallel line
+ alpha = aa + (bb ^ cc ^ dd) + x[n_[i]]
+ s = r_[i]
+ alpha = (alpha<>(32-s)) + ee
+ beta = cc<<10 | cc>>22
+ aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd
+
+ i++
+ }
+
+ // combine results
+ dd += c + md.s[1]
+ md.s[1] = md.s[2] + d + ee
+ md.s[2] = md.s[3] + e + aa
+ md.s[3] = md.s[4] + a + bb
+ md.s[4] = md.s[0] + b + cc
+ md.s[0] = dd
+
+ p = p[BlockSize:]
+ n += BlockSize
+ }
+ return n
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/ripemd160/ripmd_160.go b/vendor/github.com/skycoin/skycoin/src/cipher/ripemd160/ripmd_160.go
new file mode 100644
index 0000000000..f9e4f05d1d
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/ripemd160/ripmd_160.go
@@ -0,0 +1,121 @@
+// Copyright 2010 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 ripemd160 implements the RIPEMD-160 hash algorithm.
+package ripemd160
+
+// RIPEMD-160 is designed by by Hans Dobbertin, Antoon Bosselaers, and Bart
+// Preneel with specifications available at:
+// http://homes.esat.kuleuven.be/~cosicart/pdf/AB-9601/AB-9601.pdf.
+
+import (
+ "crypto"
+ "hash"
+)
+
+func init() {
+ crypto.RegisterHash(crypto.RIPEMD160, New)
+}
+
+// Size is the size of the checksum in bytes.
+const Size = 20
+
+// BlockSize is the block size of the hash algorithm in bytes.
+const BlockSize = 64
+
+const (
+ _s0 = 0x67452301
+ _s1 = 0xefcdab89
+ _s2 = 0x98badcfe
+ _s3 = 0x10325476
+ _s4 = 0xc3d2e1f0
+)
+
+// digest represents the partial evaluation of a checksum.
+type digest struct {
+ s [5]uint32 // running context
+ x [BlockSize]byte // temporary buffer
+ nx int // index into x
+ tc uint64 // total count of bytes processed
+}
+
+func (d *digest) Reset() {
+ d.s[0], d.s[1], d.s[2], d.s[3], d.s[4] = _s0, _s1, _s2, _s3, _s4
+ d.nx = 0
+ d.tc = 0
+}
+
+// New returns a new hash.Hash computing the checksum.
+func New() hash.Hash {
+ result := new(digest)
+ result.Reset()
+ return result
+}
+
+func (d *digest) Size() int { return Size }
+
+func (d *digest) BlockSize() int { return BlockSize }
+
+func (d *digest) Write(p []byte) (nn int, err error) {
+ nn = len(p)
+ d.tc += uint64(nn)
+ if d.nx > 0 {
+ n := len(p)
+ if n > BlockSize-d.nx {
+ n = BlockSize - d.nx
+ }
+ for i := 0; i < n; i++ {
+ d.x[d.nx+i] = p[i]
+ }
+ d.nx += n
+ if d.nx == BlockSize {
+ _Block(d, d.x[0:])
+ d.nx = 0
+ }
+ p = p[n:]
+ }
+ n := _Block(d, p)
+ p = p[n:]
+ if len(p) > 0 {
+ d.nx = copy(d.x[:], p)
+ }
+ return
+}
+
+func (d0 *digest) Sum(in []byte) []byte { // nolint: golint
+ // Make a copy of d0 so that caller can keep writing and summing.
+ d := *d0
+
+ // Padding. Add a 1 bit and 0 bits until 56 bytes mod 64.
+ tc := d.tc
+ var tmp [64]byte
+ tmp[0] = 0x80
+ if tc%64 < 56 {
+
+ d.Write(tmp[0 : 56-tc%64]) // nolint: errcheck,gosec
+ } else {
+ d.Write(tmp[0 : 64+56-tc%64]) // nolint: errcheck,gosec
+ }
+
+ // Length in bits.
+ tc <<= 3
+ for i := uint(0); i < 8; i++ {
+ tmp[i] = byte(tc >> (8 * i))
+ }
+ d.Write(tmp[0:8]) // nolint: errcheck,gosec
+
+ if d.nx != 0 {
+ panic("d.nx != 0")
+ }
+
+ var digest [Size]byte
+ for i, s := range d.s {
+ digest[i*4] = byte(s)
+ digest[i*4+1] = byte(s >> 8)
+ digest[i*4+2] = byte(s >> 16)
+ digest[i*4+3] = byte(s >> 24)
+ }
+
+ return append(in, digest[:]...)
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/README.md b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/README.md
new file mode 100644
index 0000000000..6bbf7f4f6e
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/README.md
@@ -0,0 +1,5 @@
+# secp256k1-go
+
+golang secp256k1 library
+
+Implements cryptographic operations for the secp256k1 ECDSA curve used by Bitcoin.
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256_rand.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256_rand.go
new file mode 100644
index 0000000000..972fe7dfbb
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256_rand.go
@@ -0,0 +1,151 @@
+package secp256k1
+
+import (
+ crand "crypto/rand"
+ "crypto/sha256" //secure, system random number generator
+ "hash"
+ "io"
+ "log"
+ "os"
+ "strconv"
+ "strings"
+ "sync"
+ "time"
+)
+
+var (
+ // Memory pool for SHA256 hashes
+ sha256HashPoolSize = 30
+ sha256HashPool chan hash.Hash
+)
+
+// SumSHA256 sum sha256
+func SumSHA256(b []byte) []byte {
+ sha256Hash := <-sha256HashPool
+ sha256Hash.Reset()
+ // sha256.Write never returns an error
+ sha256Hash.Write(b) // nolint: errcheck
+ sum := sha256Hash.Sum(nil)
+ sha256HashPool <- sha256Hash
+ return sum[:]
+}
+
+/*
+Entropy pool needs
+- state (an array of bytes)
+- a compression function (two 256 bit blocks to single block)
+- a mixing function across the pool
+
+- Xor is safe, as it cannot make value less random
+-- apply compression function, then xor with current value
+--
+
+*/
+
+// EntropyPool entropy pool
+type EntropyPool struct {
+ Ent [32]byte // 256 bit accumulator
+ lock sync.Mutex
+}
+
+// Mix256 mixes in 256 bits, outputs 256 bits
+func (ep *EntropyPool) Mix256(in []byte) (out []byte) {
+ // hash input
+ val1 := SumSHA256(in)
+ // return value
+ ep.lock.Lock()
+ val2 := SumSHA256(append(val1, ep.Ent[:]...))
+ // next ent value
+ val3 := SumSHA256(append(val1, val2...))
+
+ for i := 0; i < 32; i++ {
+ ep.Ent[i] = val3[i]
+ val3[i] = 0x00
+ }
+ ep.lock.Unlock()
+
+ return val2
+}
+
+// Mix take in N bytes, salts, return N
+func (ep *EntropyPool) Mix(in []byte) []byte {
+ length := len(in) - len(in)%32 + 32
+ buff := make([]byte, length)
+ for i := 0; i < len(in); i++ {
+ buff[i] = in[i]
+ }
+ iterations := (len(in) / 32) + 1
+ for i := 0; i < iterations; i++ {
+ tmp := ep.Mix256(buff[32*i : 32+32*i]) //32 byte slice
+ for j := 0; j < 32; j++ {
+ buff[i*32+j] = tmp[j]
+ }
+ }
+ return buff[:len(in)]
+}
+
+/*
+Note:
+
+- On windows cryto/rand uses CrytoGenRandom which uses RC4 which is insecure
+- Android random number generator is known to be insecure.
+- Linux uses /dev/urandom , which is thought to be secure and uses entropy pool
+
+Therefore the output is salted.
+*/
+
+/*
+Note:
+
+Should allow pseudo-random mode for repeatability for certain types of tests
+*/
+
+var _ent EntropyPool
+
+// seed pseudo random number generator with
+// - hash of system time in nano seconds
+// - hash of system environmental variables
+// - hash of process id
+func init() {
+ // init the hash reuse pool
+ sha256HashPool = make(chan hash.Hash, sha256HashPoolSize)
+ for i := 0; i < sha256HashPoolSize; i++ {
+ sha256HashPool <- sha256.New()
+ }
+
+ seed1 := []byte(strconv.FormatUint(uint64(time.Now().UnixNano()), 16))
+ seed2 := []byte(strings.Join(os.Environ(), ""))
+ seed3 := []byte(strconv.FormatUint(uint64(os.Getpid()), 16))
+
+ seed4 := make([]byte, 256)
+ _, err := io.ReadFull(crand.Reader, seed4) // system secure random number generator
+ if err != nil {
+ log.Panic(err)
+ }
+
+ // seed entropy pool
+ _ent.Mix256(seed1)
+ _ent.Mix256(seed2)
+ _ent.Mix256(seed3)
+ _ent.Mix256(seed4)
+}
+
+// RandByte Secure Random number generator for forwards security
+// On Unix-like systems, Reader reads from /dev/urandom.
+// On Windows systems, Reader uses the CryptGenRandom API.
+// Pseudo-random sequence, seeded from program start time, environmental variables,
+// and process id is mixed in for forward security. Future version should use entropy pool
+func RandByte(n int) []byte {
+ buff := make([]byte, n)
+ _, err := io.ReadFull(crand.Reader, buff) // system secure random number generator
+ if err != nil {
+ log.Panic(err)
+ }
+
+ // XORing in sequence, cannot reduce security (even if sequence is bad/known/non-random)
+ buff2 := _ent.Mix(buff)
+ for i := 0; i < n; i++ {
+ buff[i] ^= buff2[i]
+ }
+ return buff
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/COPYING b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/COPYING
new file mode 100644
index 0000000000..a7fd60bbeb
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/COPYING
@@ -0,0 +1,4 @@
+This single package (secp256k1) is distributed with the same license as
+the original C implementation by sipa:
+
+ * https://github.com/bitcoin/secp256k1/blob/master/COPYING
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/README.md b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/README.md
new file mode 100644
index 0000000000..f0466f40f0
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/README.md
@@ -0,0 +1,5 @@
+Implementation of this package has been based on source code created by Pieter Wuille.
+
+ * https://github.com/bitcoin/secp256k1
+
+Modified by HaltingState
\ No newline at end of file
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/ec.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/ec.go
new file mode 100644
index 0000000000..04b3efc53c
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/ec.go
@@ -0,0 +1,328 @@
+package secp256k1go
+
+import (
+ //"encoding/hex"
+ "bytes"
+ "log"
+)
+
+// func ecdsaVerify(pubkey, sig, msg []byte) int {
+// var m Number
+// var s Signature
+// m.SetBytes(msg)
+
+// log.Println("pubkey len is", len(pubkey))
+
+// var q XY
+// if !q.ParsePubkey(pubkey) {
+// return -1
+// }
+
+// //if s.ParseBytes(sig) < 0 {
+// // return -2
+// //}
+// if len(pubkey) != 32 {
+// return -2
+// }
+// if len(sig) != 64 {
+// return -3
+// }
+
+// if !s.Verify(&q, &m) {
+// return 0
+// }
+// return 1
+// }
+
+// // Verify verifies ecdsa
+// func Verify(k, s, m []byte) bool {
+// return ecdsaVerify(k, s, m) == 1
+// }
+
+// DecompressPoint decompresses point
+func DecompressPoint(X []byte, off bool, Y []byte) {
+ var rx, ry, c, x2, x3 Field
+ rx.SetB32(X)
+ rx.Sqr(&x2)
+ rx.Mul(&x3, &x2)
+ c.SetInt(7)
+ c.SetAdd(&x3)
+ c.Sqrt(&ry)
+ ry.Normalize()
+ if ry.IsOdd() != off {
+ ry.Negate(&ry, 1)
+ }
+ ry.Normalize()
+ ry.GetB32(Y)
+}
+
+//TODO: change signature to []byte type
+/*
+func RecoverPublicKey2(sig Signature, h []byte, recid int, pubkey *XY) int {
+ //var sig Signature
+ var msg Number
+
+ if sig.R.Sign() <= 0 || sig.R.Cmp(&TheCurve.Order.Int) >= 0 {
+ if sig.R.Sign() == 0 {
+ return -10
+ }
+ if sig.R.Sign() <= 0 {
+ return -11
+ }
+ if sig.R.Cmp(&TheCurve.Order.Int) >= 0 {
+ return -12
+ }
+ return -1
+ }
+ if sig.S.Sign() <= 0 || sig.S.Cmp(&TheCurve.Order.Int) >= 0 {
+ return -2
+ }
+
+ msg.SetBytes(h)
+ if !sig.Recover(pubkey, &msg, recid) {
+ return -3
+ }
+ return 1
+}
+*/
+//TODO: deprecate
+/*
+func RecoverPublicKey(r, s, h []byte, recid int, pubkey *XY) bool {
+ var sig Signature
+ var msg Number
+ sig.R.SetBytes(r)
+ if sig.R.Sign() <= 0 || sig.R.Cmp(&TheCurve.Order.Int) >= 0 {
+ return false
+ }
+ sig.S.SetBytes(s)
+ if sig.S.Sign() <= 0 || sig.S.Cmp(&TheCurve.Order.Int) >= 0 {
+ return false
+ }
+ msg.SetBytes(h)
+ if !sig.Recover(pubkey, &msg, recid) {
+ return false
+ }
+ return true
+}
+*/
+
+// RecoverPublicKey nil on error
+// returns error code
+func RecoverPublicKey(sigByte []byte, h []byte, recid int) ([]byte, int) {
+
+ var pubkey XY
+
+ if len(sigByte) != 64 {
+ log.Panic("must pass in 64 byte pubkey")
+ }
+
+ var sig Signature
+ sig.ParseBytes(sigByte[0:64])
+
+ //var sig Signature
+ var msg Number
+
+ if sig.R.Sign() <= 0 || sig.R.Cmp(&TheCurve.Order.Int) >= 0 {
+ if sig.R.Sign() == 0 {
+ return nil, -1
+ }
+ if sig.R.Sign() <= 0 {
+ return nil, -2
+ }
+ if sig.R.Cmp(&TheCurve.Order.Int) >= 0 {
+ return nil, -3
+ }
+ return nil, -4
+ }
+ if sig.S.Sign() <= 0 || sig.S.Cmp(&TheCurve.Order.Int) >= 0 {
+ return nil, -5
+ }
+
+ msg.SetBytes(h)
+ if !sig.Recover(&pubkey, &msg, recid) {
+ return nil, -6
+ }
+
+ return pubkey.Bytes(), 1
+}
+
+// Multiply standard EC multiplacation k(xy)
+// xy - is the standarized public key format (33 or 65 bytes long)
+// out - should be the buffer for 33 bytes (1st byte will be set to either 02 or 03)
+// TODO: change out to return type
+func Multiply(xy, k []byte) []byte {
+ var pk XY
+ var xyz XYZ
+ var na, nzero Number
+ if !pk.ParsePubkey(xy) {
+ return nil
+ }
+ xyz.SetXY(&pk)
+ na.SetBytes(k)
+ xyz.ECmult(&xyz, &na, &nzero)
+ pk.SetXYZ(&xyz)
+
+ if !pk.IsValid() {
+ log.Panic()
+ }
+ return pk.GetPublicKey()
+}
+
+// Multiply k by G
+// returns public key
+// return nil on error, but never returns nil
+// 33 bytes out
+
+/*
+func BaseMultiply2(k []byte) []byte {
+ var r XYZ
+ var n Number
+ var pk XY
+ n.SetBytes(k)
+ ECmultGen(&r, &n)
+ pk.SetXYZ(&r)
+ if !pk.IsValid() {
+ log.Panic()
+ }
+
+ return pk.GetPublicKey()
+}
+*/
+
+//test assumptions
+func _pubkeyTest(pk XY) {
+
+ if !pk.IsValid() {
+ log.Panic("IMPOSSIBLE3: pubkey invalid")
+ }
+ var pk2 XY
+ retb := pk2.ParsePubkey(pk.Bytes())
+ if !retb {
+ log.Panic("IMPOSSIBLE2: parse failed")
+ }
+ if !pk2.IsValid() {
+ log.Panic("IMPOSSIBLE3: parse failed non valid key")
+ }
+ if PubkeyIsValid(pk2.Bytes()) != 1 {
+ log.Panic("IMPOSSIBLE4: pubkey failed")
+ }
+}
+
+// BaseMultiply base multiply
+func BaseMultiply(k []byte) []byte {
+ var r XYZ
+ var n Number
+ var pk XY
+ n.SetBytes(k)
+ ECmultGen(&r, &n)
+ pk.SetXYZ(&r)
+ if !pk.IsValid() {
+ log.Panic() //should not occur
+ }
+
+ _pubkeyTest(pk)
+
+ return pk.Bytes()
+}
+
+// BaseMultiplyAdd out = G*k + xy
+// TODO: switch to returning output as []byte
+// nil on error
+// 33 byte out
+func BaseMultiplyAdd(xy, k []byte) []byte {
+ var r XYZ
+ var n Number
+ var pk XY
+ if !pk.ParsePubkey(xy) {
+ return nil
+ }
+ n.SetBytes(k)
+ ECmultGen(&r, &n)
+ r.AddXY(&r, &pk)
+ pk.SetXYZ(&r)
+
+ _pubkeyTest(pk)
+ return pk.Bytes()
+}
+
+// GeneratePublicKey returns nil on failure
+//crash rather than fail
+func GeneratePublicKey(k []byte) []byte {
+
+ //log.Panic()
+ if len(k) != 32 {
+ log.Panic()
+ }
+ var r XYZ
+ var n Number
+ var pk XY
+
+ //must not be zero
+ //must not be negative
+ //must be less than order of curve
+ n.SetBytes(k)
+ if n.Sign() <= 0 || n.Cmp(&TheCurve.Order.Int) >= 0 {
+ log.Panic("only call for valid seckey, check that seckey is valid first")
+ return nil
+ }
+ ECmultGen(&r, &n)
+ pk.SetXYZ(&r)
+ if !pk.IsValid() {
+ log.Panic() //should not occur
+ }
+ _pubkeyTest(pk)
+ return pk.Bytes()
+}
+
+// SeckeyIsValid 1 on success
+// must not be zero
+// must not be negative
+// must be less than order of curve
+func SeckeyIsValid(seckey []byte) int {
+ if len(seckey) != 32 {
+ log.Panic()
+ }
+ var n Number
+ n.SetBytes(seckey)
+ //must not be zero
+ //must not be negative
+ //must be less than order of curve
+ if n.Sign() <= 0 {
+ return -1
+ }
+ if n.Cmp(&TheCurve.Order.Int) >= 0 {
+ return -2
+ }
+ return 1
+}
+
+// PubkeyIsValid returns 1 on success
+func PubkeyIsValid(pubkey []byte) int {
+ if len(pubkey) != 33 {
+ log.Panic() //do not permit invalid length inputs
+ return -2
+ }
+ var pubTest XY
+ ok := pubTest.ParsePubkey(pubkey)
+ if !ok {
+ //log.Panic("PubkeyIsValid, ERROR: pubkey parse fail, bad pubkey from private key")
+ return -1
+ }
+ if !bytes.Equal(pubTest.Bytes(), pubkey) {
+ log.Panic("pubkey parses but serialize/deserialize roundtrip fails")
+ }
+ //this fails
+ //if !pub_test.IsValid() {
+ // return -2
+ //}
+ return 1
+}
+
+/*
+Note:
+- choose random private key
+- generate public key
+- call "IsValid()" on the public key
+
+
+*/
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/field.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/field.go
new file mode 100644
index 0000000000..c87e5e69fb
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/field.go
@@ -0,0 +1,744 @@
+package secp256k1go
+
+import (
+ "encoding/hex"
+ "fmt"
+ "math/big"
+)
+
+// Field represents the signature field
+type Field struct {
+ n [10]uint32
+}
+
+// String returns the hex string of the field
+func (fd *Field) String() string {
+ var tmp [32]byte
+ b := *fd
+ b.Normalize()
+ b.GetB32(tmp[:])
+ return hex.EncodeToString(tmp[:])
+}
+
+// Print shows the hex string of the field
+func (fd *Field) Print(lab string) {
+ fmt.Println(lab+":", fd.String())
+}
+
+// GetBig returns big int
+func (fd *Field) GetBig() (r *big.Int) {
+ fd.Normalize()
+ r = new(big.Int)
+ var tmp [32]byte
+ fd.GetB32(tmp[:])
+ r.SetBytes(tmp[:])
+ return
+}
+
+// SetB32 sets
+func (fd *Field) SetB32(a []byte) {
+ fd.n[0] = 0
+ fd.n[1] = 0
+ fd.n[2] = 0
+ fd.n[3] = 0
+ fd.n[4] = 0
+ fd.n[5] = 0
+ fd.n[6] = 0
+ fd.n[7] = 0
+ fd.n[8] = 0
+ fd.n[9] = 0
+ var v uint32
+ for i := uint(0); i < 32; i++ {
+ for j := uint(0); j < 4; j++ {
+ limb := (8*i + 2*j) / 26
+ shift := (8*i + 2*j) % 26
+ v = (uint32)((a[31-i]>>(2*j))&0x3) << shift
+ fd.n[limb] |= v
+ }
+ }
+}
+
+// SetBytes sets bytes
+func (fd *Field) SetBytes(a []byte) {
+ if len(a) > 32 {
+ panic("too many bytes to set")
+ }
+ if len(a) == 32 {
+ fd.SetB32(a)
+ } else {
+ var buf [32]byte
+ copy(buf[32-len(a):], a)
+ fd.SetB32(buf[:])
+ }
+}
+
+// SetHex sets field in hex string
+func (fd *Field) SetHex(s string) {
+ d, err := hex.DecodeString(s)
+ if err != nil {
+ panic(err)
+ }
+ fd.SetBytes(d)
+}
+
+// IsOdd check if odd
+func (fd *Field) IsOdd() bool {
+ return (fd.n[0] & 1) != 0
+}
+
+// IsZero check if field is zero
+func (fd *Field) IsZero() bool {
+ return (fd.n[0] == 0 && fd.n[1] == 0 && fd.n[2] == 0 && fd.n[3] == 0 && fd.n[4] == 0 && fd.n[5] == 0 && fd.n[6] == 0 && fd.n[7] == 0 && fd.n[8] == 0 && fd.n[9] == 0)
+}
+
+// SetInt set fields with an int value
+func (fd *Field) SetInt(a uint32) {
+ fd.n[0] = a
+ fd.n[1] = 0
+ fd.n[2] = 0
+ fd.n[3] = 0
+ fd.n[4] = 0
+ fd.n[5] = 0
+ fd.n[6] = 0
+ fd.n[7] = 0
+ fd.n[8] = 0
+ fd.n[9] = 0
+}
+
+// Normalize normalize the field
+func (fd *Field) Normalize() {
+ c := fd.n[0]
+ t0 := c & 0x3FFFFFF
+ c = (c >> 26) + fd.n[1]
+ t1 := c & 0x3FFFFFF
+ c = (c >> 26) + fd.n[2]
+ t2 := c & 0x3FFFFFF
+ c = (c >> 26) + fd.n[3]
+ t3 := c & 0x3FFFFFF
+ c = (c >> 26) + fd.n[4]
+ t4 := c & 0x3FFFFFF
+ c = (c >> 26) + fd.n[5]
+ t5 := c & 0x3FFFFFF
+ c = (c >> 26) + fd.n[6]
+ t6 := c & 0x3FFFFFF
+ c = (c >> 26) + fd.n[7]
+ t7 := c & 0x3FFFFFF
+ c = (c >> 26) + fd.n[8]
+ t8 := c & 0x3FFFFFF
+ c = (c >> 26) + fd.n[9]
+ t9 := c & 0x03FFFFF
+ c >>= 22
+
+ // The following code will not modify the t's if c is initially 0.
+ d := c*0x3D1 + t0
+ t0 = d & 0x3FFFFFF
+ d = (d >> 26) + t1 + c*0x40
+ t1 = d & 0x3FFFFFF
+ d = (d >> 26) + t2
+ t2 = d & 0x3FFFFFF
+ d = (d >> 26) + t3
+ t3 = d & 0x3FFFFFF
+ d = (d >> 26) + t4
+ t4 = d & 0x3FFFFFF
+ d = (d >> 26) + t5
+ t5 = d & 0x3FFFFFF
+ d = (d >> 26) + t6
+ t6 = d & 0x3FFFFFF
+ d = (d >> 26) + t7
+ t7 = d & 0x3FFFFFF
+ d = (d >> 26) + t8
+ t8 = d & 0x3FFFFFF
+ d = (d >> 26) + t9
+ t9 = d & 0x03FFFFF
+
+ // Subtract p if result >= p
+ low := (uint64(t1) << 26) | uint64(t0)
+ //mask := uint64(-(int64)((t9 < 0x03FFFFF) | (t8 < 0x3FFFFFF) | (t7 < 0x3FFFFFF) | (t6 < 0x3FFFFFF) | (t5 < 0x3FFFFFF) | (t4 < 0x3FFFFFF) | (t3 < 0x3FFFFFF) | (t2 < 0x3FFFFFF) | (low < 0xFFFFEFFFFFC2F)))
+ var mask uint64
+ if (t9 < 0x03FFFFF) ||
+ (t8 < 0x3FFFFFF) ||
+ (t7 < 0x3FFFFFF) ||
+ (t6 < 0x3FFFFFF) ||
+ (t5 < 0x3FFFFFF) ||
+ (t4 < 0x3FFFFFF) ||
+ (t3 < 0x3FFFFFF) ||
+ (t2 < 0x3FFFFFF) ||
+ (low < 0xFFFFEFFFFFC2F) {
+ mask = 0xFFFFFFFFFFFFFFFF
+ }
+ t9 &= uint32(mask)
+ t8 &= uint32(mask)
+ t7 &= uint32(mask)
+ t6 &= uint32(mask)
+ t5 &= uint32(mask)
+ t4 &= uint32(mask)
+ t3 &= uint32(mask)
+ t2 &= uint32(mask)
+ low -= ((mask ^ 0xFFFFFFFFFFFFFFFF) & 0xFFFFEFFFFFC2F)
+
+ // push internal variables back
+ fd.n[0] = uint32(low) & 0x3FFFFFF
+ fd.n[1] = uint32(low>>26) & 0x3FFFFFF
+ fd.n[2] = t2
+ fd.n[3] = t3
+ fd.n[4] = t4
+ fd.n[5] = t5
+ fd.n[6] = t6
+ fd.n[7] = t7
+ fd.n[8] = t8
+ fd.n[9] = t9
+}
+
+// GetB32 get B32, TODO: need further explanation
+func (fd *Field) GetB32(r []byte) {
+ var i, j, c, limb, shift uint32
+ for i = 0; i < 32; i++ {
+ c = 0
+ for j = 0; j < 4; j++ {
+ limb = (8*i + 2*j) / 26
+ shift = (8*i + 2*j) % 26
+ c |= ((fd.n[limb] >> shift) & 0x3) << (2 * j)
+ }
+ r[31-i] = byte(c)
+ }
+}
+
+// Equals check if field is the same as the given one
+func (fd *Field) Equals(b *Field) bool {
+ return (fd.n[0] == b.n[0] && fd.n[1] == b.n[1] && fd.n[2] == b.n[2] && fd.n[3] == b.n[3] && fd.n[4] == b.n[4] &&
+ fd.n[5] == b.n[5] && fd.n[6] == b.n[6] && fd.n[7] == b.n[7] && fd.n[8] == b.n[8] && fd.n[9] == b.n[9])
+}
+
+// SetAdd adds value to corresponding fields
+func (fd *Field) SetAdd(a *Field) {
+ fd.n[0] += a.n[0]
+ fd.n[1] += a.n[1]
+ fd.n[2] += a.n[2]
+ fd.n[3] += a.n[3]
+ fd.n[4] += a.n[4]
+ fd.n[5] += a.n[5]
+ fd.n[6] += a.n[6]
+ fd.n[7] += a.n[7]
+ fd.n[8] += a.n[8]
+ fd.n[9] += a.n[9]
+}
+
+// MulInt multiples the fields
+func (fd *Field) MulInt(a uint32) {
+ fd.n[0] *= a
+ fd.n[1] *= a
+ fd.n[2] *= a
+ fd.n[3] *= a
+ fd.n[4] *= a
+ fd.n[5] *= a
+ fd.n[6] *= a
+ fd.n[7] *= a
+ fd.n[8] *= a
+ fd.n[9] *= a
+}
+
+// Negate caculate the negate
+func (fd *Field) Negate(r *Field, m uint32) {
+ r.n[0] = 0x3FFFC2F*(m+1) - fd.n[0]
+ r.n[1] = 0x3FFFFBF*(m+1) - fd.n[1]
+ r.n[2] = 0x3FFFFFF*(m+1) - fd.n[2]
+ r.n[3] = 0x3FFFFFF*(m+1) - fd.n[3]
+ r.n[4] = 0x3FFFFFF*(m+1) - fd.n[4]
+ r.n[5] = 0x3FFFFFF*(m+1) - fd.n[5]
+ r.n[6] = 0x3FFFFFF*(m+1) - fd.n[6]
+ r.n[7] = 0x3FFFFFF*(m+1) - fd.n[7]
+ r.n[8] = 0x3FFFFFF*(m+1) - fd.n[8]
+ r.n[9] = 0x03FFFFF*(m+1) - fd.n[9]
+}
+
+// Inv new algo by peterdettman - https://github.com/sipa/TheCurve/pull/19
+func (fd *Field) Inv(r *Field) {
+ var x2, x3, x6, x9, x11, x22, x44, x88, x176, x220, x223, t1 Field
+ var j int
+
+ fd.Sqr(&x2)
+ x2.Mul(&x2, fd)
+
+ x2.Sqr(&x3)
+ x3.Mul(&x3, fd)
+
+ x3.Sqr(&x6)
+ x6.Sqr(&x6)
+ x6.Sqr(&x6)
+ x6.Mul(&x6, &x3)
+
+ x6.Sqr(&x9)
+ x9.Sqr(&x9)
+ x9.Sqr(&x9)
+ x9.Mul(&x9, &x3)
+
+ x9.Sqr(&x11)
+ x11.Sqr(&x11)
+ x11.Mul(&x11, &x2)
+
+ x11.Sqr(&x22)
+ for j = 1; j < 11; j++ {
+ x22.Sqr(&x22)
+ }
+ x22.Mul(&x22, &x11)
+
+ x22.Sqr(&x44)
+ for j = 1; j < 22; j++ {
+ x44.Sqr(&x44)
+ }
+ x44.Mul(&x44, &x22)
+
+ x44.Sqr(&x88)
+ for j = 1; j < 44; j++ {
+ x88.Sqr(&x88)
+ }
+ x88.Mul(&x88, &x44)
+
+ x88.Sqr(&x176)
+ for j = 1; j < 88; j++ {
+ x176.Sqr(&x176)
+ }
+ x176.Mul(&x176, &x88)
+
+ x176.Sqr(&x220)
+ for j = 1; j < 44; j++ {
+ x220.Sqr(&x220)
+ }
+ x220.Mul(&x220, &x44)
+
+ x220.Sqr(&x223)
+ x223.Sqr(&x223)
+ x223.Sqr(&x223)
+ x223.Mul(&x223, &x3)
+
+ x223.Sqr(&t1)
+ for j = 1; j < 23; j++ {
+ t1.Sqr(&t1)
+ }
+ t1.Mul(&t1, &x22)
+ t1.Sqr(&t1)
+ t1.Sqr(&t1)
+ t1.Sqr(&t1)
+ t1.Sqr(&t1)
+ t1.Sqr(&t1)
+ t1.Mul(&t1, fd)
+ t1.Sqr(&t1)
+ t1.Sqr(&t1)
+ t1.Sqr(&t1)
+ t1.Mul(&t1, &x2)
+ t1.Sqr(&t1)
+ t1.Sqr(&t1)
+ t1.Mul(r, fd)
+}
+
+// Sqrt new algo by peterdettman - https://github.com/sipa/TheCurve/pull/19
+func (fd *Field) Sqrt(r *Field) {
+ var x2, x3, x6, x9, x11, x22, x44, x88, x176, x220, x223, t1 Field
+ var j int
+
+ fd.Sqr(&x2)
+ x2.Mul(&x2, fd)
+
+ x2.Sqr(&x3)
+ x3.Mul(&x3, fd)
+
+ x3.Sqr(&x6)
+ x6.Sqr(&x6)
+ x6.Sqr(&x6)
+ x6.Mul(&x6, &x3)
+
+ x6.Sqr(&x9)
+ x9.Sqr(&x9)
+ x9.Sqr(&x9)
+ x9.Mul(&x9, &x3)
+
+ x9.Sqr(&x11)
+ x11.Sqr(&x11)
+ x11.Mul(&x11, &x2)
+
+ x11.Sqr(&x22)
+ for j = 1; j < 11; j++ {
+ x22.Sqr(&x22)
+ }
+ x22.Mul(&x22, &x11)
+
+ x22.Sqr(&x44)
+ for j = 1; j < 22; j++ {
+ x44.Sqr(&x44)
+ }
+ x44.Mul(&x44, &x22)
+
+ x44.Sqr(&x88)
+ for j = 1; j < 44; j++ {
+ x88.Sqr(&x88)
+ }
+ x88.Mul(&x88, &x44)
+
+ x88.Sqr(&x176)
+ for j = 1; j < 88; j++ {
+ x176.Sqr(&x176)
+ }
+ x176.Mul(&x176, &x88)
+
+ x176.Sqr(&x220)
+ for j = 1; j < 44; j++ {
+ x220.Sqr(&x220)
+ }
+ x220.Mul(&x220, &x44)
+
+ x220.Sqr(&x223)
+ x223.Sqr(&x223)
+ x223.Sqr(&x223)
+ x223.Mul(&x223, &x3)
+
+ x223.Sqr(&t1)
+ for j = 1; j < 23; j++ {
+ t1.Sqr(&t1)
+ }
+ t1.Mul(&t1, &x22)
+ for j = 0; j < 6; j++ {
+ t1.Sqr(&t1)
+ }
+ t1.Mul(&t1, &x2)
+ t1.Sqr(&t1)
+ t1.Sqr(r)
+}
+
+// InvVar ...
+func (fd *Field) InvVar(r *Field) {
+ var b [32]byte
+ c := *fd
+ c.Normalize()
+ c.GetB32(b[:])
+ var n Number
+ n.SetBytes(b[:])
+ n.modInv(&n, &TheCurve.p)
+ r.SetBytes(n.Bytes())
+}
+
+// Mul ...
+func (fd *Field) Mul(r, b *Field) {
+ var c, d uint64
+ var t0, t1, t2, t3, t4, t5, t6 uint64
+ var t7, t8, t9, t10, t11, t12, t13 uint64
+ var t14, t15, t16, t17, t18, t19 uint64
+
+ c = uint64(fd.n[0]) * uint64(b.n[0])
+ t0 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + uint64(fd.n[0])*uint64(b.n[1]) +
+ uint64(fd.n[1])*uint64(b.n[0])
+ t1 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + uint64(fd.n[0])*uint64(b.n[2]) +
+ uint64(fd.n[1])*uint64(b.n[1]) +
+ uint64(fd.n[2])*uint64(b.n[0])
+ t2 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + uint64(fd.n[0])*uint64(b.n[3]) +
+ uint64(fd.n[1])*uint64(b.n[2]) +
+ uint64(fd.n[2])*uint64(b.n[1]) +
+ uint64(fd.n[3])*uint64(b.n[0])
+ t3 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + uint64(fd.n[0])*uint64(b.n[4]) +
+ uint64(fd.n[1])*uint64(b.n[3]) +
+ uint64(fd.n[2])*uint64(b.n[2]) +
+ uint64(fd.n[3])*uint64(b.n[1]) +
+ uint64(fd.n[4])*uint64(b.n[0])
+ t4 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + uint64(fd.n[0])*uint64(b.n[5]) +
+ uint64(fd.n[1])*uint64(b.n[4]) +
+ uint64(fd.n[2])*uint64(b.n[3]) +
+ uint64(fd.n[3])*uint64(b.n[2]) +
+ uint64(fd.n[4])*uint64(b.n[1]) +
+ uint64(fd.n[5])*uint64(b.n[0])
+ t5 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + uint64(fd.n[0])*uint64(b.n[6]) +
+ uint64(fd.n[1])*uint64(b.n[5]) +
+ uint64(fd.n[2])*uint64(b.n[4]) +
+ uint64(fd.n[3])*uint64(b.n[3]) +
+ uint64(fd.n[4])*uint64(b.n[2]) +
+ uint64(fd.n[5])*uint64(b.n[1]) +
+ uint64(fd.n[6])*uint64(b.n[0])
+ t6 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + uint64(fd.n[0])*uint64(b.n[7]) +
+ uint64(fd.n[1])*uint64(b.n[6]) +
+ uint64(fd.n[2])*uint64(b.n[5]) +
+ uint64(fd.n[3])*uint64(b.n[4]) +
+ uint64(fd.n[4])*uint64(b.n[3]) +
+ uint64(fd.n[5])*uint64(b.n[2]) +
+ uint64(fd.n[6])*uint64(b.n[1]) +
+ uint64(fd.n[7])*uint64(b.n[0])
+ t7 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + uint64(fd.n[0])*uint64(b.n[8]) +
+ uint64(fd.n[1])*uint64(b.n[7]) +
+ uint64(fd.n[2])*uint64(b.n[6]) +
+ uint64(fd.n[3])*uint64(b.n[5]) +
+ uint64(fd.n[4])*uint64(b.n[4]) +
+ uint64(fd.n[5])*uint64(b.n[3]) +
+ uint64(fd.n[6])*uint64(b.n[2]) +
+ uint64(fd.n[7])*uint64(b.n[1]) +
+ uint64(fd.n[8])*uint64(b.n[0])
+ t8 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + uint64(fd.n[0])*uint64(b.n[9]) +
+ uint64(fd.n[1])*uint64(b.n[8]) +
+ uint64(fd.n[2])*uint64(b.n[7]) +
+ uint64(fd.n[3])*uint64(b.n[6]) +
+ uint64(fd.n[4])*uint64(b.n[5]) +
+ uint64(fd.n[5])*uint64(b.n[4]) +
+ uint64(fd.n[6])*uint64(b.n[3]) +
+ uint64(fd.n[7])*uint64(b.n[2]) +
+ uint64(fd.n[8])*uint64(b.n[1]) +
+ uint64(fd.n[9])*uint64(b.n[0])
+ t9 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + uint64(fd.n[1])*uint64(b.n[9]) +
+ uint64(fd.n[2])*uint64(b.n[8]) +
+ uint64(fd.n[3])*uint64(b.n[7]) +
+ uint64(fd.n[4])*uint64(b.n[6]) +
+ uint64(fd.n[5])*uint64(b.n[5]) +
+ uint64(fd.n[6])*uint64(b.n[4]) +
+ uint64(fd.n[7])*uint64(b.n[3]) +
+ uint64(fd.n[8])*uint64(b.n[2]) +
+ uint64(fd.n[9])*uint64(b.n[1])
+ t10 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + uint64(fd.n[2])*uint64(b.n[9]) +
+ uint64(fd.n[3])*uint64(b.n[8]) +
+ uint64(fd.n[4])*uint64(b.n[7]) +
+ uint64(fd.n[5])*uint64(b.n[6]) +
+ uint64(fd.n[6])*uint64(b.n[5]) +
+ uint64(fd.n[7])*uint64(b.n[4]) +
+ uint64(fd.n[8])*uint64(b.n[3]) +
+ uint64(fd.n[9])*uint64(b.n[2])
+ t11 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + uint64(fd.n[3])*uint64(b.n[9]) +
+ uint64(fd.n[4])*uint64(b.n[8]) +
+ uint64(fd.n[5])*uint64(b.n[7]) +
+ uint64(fd.n[6])*uint64(b.n[6]) +
+ uint64(fd.n[7])*uint64(b.n[5]) +
+ uint64(fd.n[8])*uint64(b.n[4]) +
+ uint64(fd.n[9])*uint64(b.n[3])
+ t12 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + uint64(fd.n[4])*uint64(b.n[9]) +
+ uint64(fd.n[5])*uint64(b.n[8]) +
+ uint64(fd.n[6])*uint64(b.n[7]) +
+ uint64(fd.n[7])*uint64(b.n[6]) +
+ uint64(fd.n[8])*uint64(b.n[5]) +
+ uint64(fd.n[9])*uint64(b.n[4])
+ t13 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + uint64(fd.n[5])*uint64(b.n[9]) +
+ uint64(fd.n[6])*uint64(b.n[8]) +
+ uint64(fd.n[7])*uint64(b.n[7]) +
+ uint64(fd.n[8])*uint64(b.n[6]) +
+ uint64(fd.n[9])*uint64(b.n[5])
+ t14 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + uint64(fd.n[6])*uint64(b.n[9]) +
+ uint64(fd.n[7])*uint64(b.n[8]) +
+ uint64(fd.n[8])*uint64(b.n[7]) +
+ uint64(fd.n[9])*uint64(b.n[6])
+ t15 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + uint64(fd.n[7])*uint64(b.n[9]) +
+ uint64(fd.n[8])*uint64(b.n[8]) +
+ uint64(fd.n[9])*uint64(b.n[7])
+ t16 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + uint64(fd.n[8])*uint64(b.n[9]) +
+ uint64(fd.n[9])*uint64(b.n[8])
+ t17 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + uint64(fd.n[9])*uint64(b.n[9])
+ t18 = c & 0x3FFFFFF
+ c = c >> 26
+ t19 = c
+
+ c = t0 + t10*0x3D10
+ t0 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + t1 + t10*0x400 + t11*0x3D10
+ t1 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + t2 + t11*0x400 + t12*0x3D10
+ t2 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + t3 + t12*0x400 + t13*0x3D10
+ r.n[3] = uint32(c) & 0x3FFFFFF
+ c = c >> 26
+ c = c + t4 + t13*0x400 + t14*0x3D10
+ r.n[4] = uint32(c) & 0x3FFFFFF
+ c = c >> 26
+ c = c + t5 + t14*0x400 + t15*0x3D10
+ r.n[5] = uint32(c) & 0x3FFFFFF
+ c = c >> 26
+ c = c + t6 + t15*0x400 + t16*0x3D10
+ r.n[6] = uint32(c) & 0x3FFFFFF
+ c = c >> 26
+ c = c + t7 + t16*0x400 + t17*0x3D10
+ r.n[7] = uint32(c) & 0x3FFFFFF
+ c = c >> 26
+ c = c + t8 + t17*0x400 + t18*0x3D10
+ r.n[8] = uint32(c) & 0x3FFFFFF
+ c = c >> 26
+ c = c + t9 + t18*0x400 + t19*0x1000003D10
+ r.n[9] = uint32(c) & 0x03FFFFF
+ c = c >> 22
+ d = t0 + c*0x3D1
+ r.n[0] = uint32(d) & 0x3FFFFFF
+ d = d >> 26
+ d = d + t1 + c*0x40
+ r.n[1] = uint32(d) & 0x3FFFFFF
+ d = d >> 26
+ r.n[2] = uint32(t2 + d)
+}
+
+// Sqr ...
+func (fd *Field) Sqr(r *Field) {
+ var c, d uint64
+ var t0, t1, t2, t3, t4, t5, t6 uint64
+ var t7, t8, t9, t10, t11, t12, t13 uint64
+ var t14, t15, t16, t17, t18, t19 uint64
+
+ c = uint64(fd.n[0]) * uint64(fd.n[0])
+ t0 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + (uint64(fd.n[0])*2)*uint64(fd.n[1])
+ t1 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + (uint64(fd.n[0])*2)*uint64(fd.n[2]) +
+ uint64(fd.n[1])*uint64(fd.n[1])
+ t2 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + (uint64(fd.n[0])*2)*uint64(fd.n[3]) +
+ (uint64(fd.n[1])*2)*uint64(fd.n[2])
+ t3 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + (uint64(fd.n[0])*2)*uint64(fd.n[4]) +
+ (uint64(fd.n[1])*2)*uint64(fd.n[3]) +
+ uint64(fd.n[2])*uint64(fd.n[2])
+ t4 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + (uint64(fd.n[0])*2)*uint64(fd.n[5]) +
+ (uint64(fd.n[1])*2)*uint64(fd.n[4]) +
+ (uint64(fd.n[2])*2)*uint64(fd.n[3])
+ t5 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + (uint64(fd.n[0])*2)*uint64(fd.n[6]) +
+ (uint64(fd.n[1])*2)*uint64(fd.n[5]) +
+ (uint64(fd.n[2])*2)*uint64(fd.n[4]) +
+ uint64(fd.n[3])*uint64(fd.n[3])
+ t6 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + (uint64(fd.n[0])*2)*uint64(fd.n[7]) +
+ (uint64(fd.n[1])*2)*uint64(fd.n[6]) +
+ (uint64(fd.n[2])*2)*uint64(fd.n[5]) +
+ (uint64(fd.n[3])*2)*uint64(fd.n[4])
+ t7 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + (uint64(fd.n[0])*2)*uint64(fd.n[8]) +
+ (uint64(fd.n[1])*2)*uint64(fd.n[7]) +
+ (uint64(fd.n[2])*2)*uint64(fd.n[6]) +
+ (uint64(fd.n[3])*2)*uint64(fd.n[5]) +
+ uint64(fd.n[4])*uint64(fd.n[4])
+ t8 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + (uint64(fd.n[0])*2)*uint64(fd.n[9]) +
+ (uint64(fd.n[1])*2)*uint64(fd.n[8]) +
+ (uint64(fd.n[2])*2)*uint64(fd.n[7]) +
+ (uint64(fd.n[3])*2)*uint64(fd.n[6]) +
+ (uint64(fd.n[4])*2)*uint64(fd.n[5])
+ t9 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + (uint64(fd.n[1])*2)*uint64(fd.n[9]) +
+ (uint64(fd.n[2])*2)*uint64(fd.n[8]) +
+ (uint64(fd.n[3])*2)*uint64(fd.n[7]) +
+ (uint64(fd.n[4])*2)*uint64(fd.n[6]) +
+ uint64(fd.n[5])*uint64(fd.n[5])
+ t10 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + (uint64(fd.n[2])*2)*uint64(fd.n[9]) +
+ (uint64(fd.n[3])*2)*uint64(fd.n[8]) +
+ (uint64(fd.n[4])*2)*uint64(fd.n[7]) +
+ (uint64(fd.n[5])*2)*uint64(fd.n[6])
+ t11 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + (uint64(fd.n[3])*2)*uint64(fd.n[9]) +
+ (uint64(fd.n[4])*2)*uint64(fd.n[8]) +
+ (uint64(fd.n[5])*2)*uint64(fd.n[7]) +
+ uint64(fd.n[6])*uint64(fd.n[6])
+ t12 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + (uint64(fd.n[4])*2)*uint64(fd.n[9]) +
+ (uint64(fd.n[5])*2)*uint64(fd.n[8]) +
+ (uint64(fd.n[6])*2)*uint64(fd.n[7])
+ t13 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + (uint64(fd.n[5])*2)*uint64(fd.n[9]) +
+ (uint64(fd.n[6])*2)*uint64(fd.n[8]) +
+ uint64(fd.n[7])*uint64(fd.n[7])
+ t14 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + (uint64(fd.n[6])*2)*uint64(fd.n[9]) +
+ (uint64(fd.n[7])*2)*uint64(fd.n[8])
+ t15 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + (uint64(fd.n[7])*2)*uint64(fd.n[9]) +
+ uint64(fd.n[8])*uint64(fd.n[8])
+ t16 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + (uint64(fd.n[8])*2)*uint64(fd.n[9])
+ t17 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + uint64(fd.n[9])*uint64(fd.n[9])
+ t18 = c & 0x3FFFFFF
+ c = c >> 26
+ t19 = c
+
+ c = t0 + t10*0x3D10
+ t0 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + t1 + t10*0x400 + t11*0x3D10
+ t1 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + t2 + t11*0x400 + t12*0x3D10
+ t2 = c & 0x3FFFFFF
+ c = c >> 26
+ c = c + t3 + t12*0x400 + t13*0x3D10
+ r.n[3] = uint32(c) & 0x3FFFFFF
+ c = c >> 26
+ c = c + t4 + t13*0x400 + t14*0x3D10
+ r.n[4] = uint32(c) & 0x3FFFFFF
+ c = c >> 26
+ c = c + t5 + t14*0x400 + t15*0x3D10
+ r.n[5] = uint32(c) & 0x3FFFFFF
+ c = c >> 26
+ c = c + t6 + t15*0x400 + t16*0x3D10
+ r.n[6] = uint32(c) & 0x3FFFFFF
+ c = c >> 26
+ c = c + t7 + t16*0x400 + t17*0x3D10
+ r.n[7] = uint32(c) & 0x3FFFFFF
+ c = c >> 26
+ c = c + t8 + t17*0x400 + t18*0x3D10
+ r.n[8] = uint32(c) & 0x3FFFFFF
+ c = c >> 26
+ c = c + t9 + t18*0x400 + t19*0x1000003D10
+ r.n[9] = uint32(c) & 0x03FFFFF
+ c = c >> 22
+ d = t0 + c*0x3D1
+ r.n[0] = uint32(d) & 0x3FFFFFF
+ d = d >> 26
+ d = d + t1 + c*0x40
+ r.n[1] = uint32(d) & 0x3FFFFFF
+ d = d >> 26
+ r.n[2] = uint32(t2 + d)
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/num.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/num.go
new file mode 100644
index 0000000000..ddefceb69d
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/num.go
@@ -0,0 +1,111 @@
+package secp256k1go
+
+import (
+ "encoding/hex"
+ "fmt"
+ "math/big"
+)
+
+var (
+ // BigInt1 represents big int with value 1
+ BigInt1 = new(big.Int).SetInt64(1)
+)
+
+// Number wraps the big.Int
+type Number struct {
+ big.Int
+}
+
+// Print prints the label with hex number string
+func (num *Number) Print(label string) {
+ fmt.Println(label, hex.EncodeToString(num.Bytes()))
+}
+
+func (num *Number) modMul(a, b, m *Number) {
+ num.Mul(&a.Int, &b.Int)
+ num.Mod(&num.Int, &m.Int)
+}
+
+func (num *Number) modInv(a, b *Number) {
+ num.ModInverse(&a.Int, &b.Int)
+}
+
+func (num *Number) mod(a *Number) {
+ num.Mod(&num.Int, &a.Int)
+}
+
+// SetHex sets number from string
+func (num *Number) SetHex(s string) {
+ num.SetString(s, 16)
+}
+
+//SetBytes and GetBytes are inherited by default
+//added
+//func (a *Number) SetBytes(b []byte) {
+// a.SetBytes(b)
+//}
+
+func (num *Number) maskBits(bits uint) {
+ mask := new(big.Int).Lsh(BigInt1, bits)
+ mask.Sub(mask, BigInt1)
+ num.Int.And(&num.Int, mask)
+}
+
+func (num *Number) splitExp(r1, r2 *Number) {
+ var bnc1, bnc2, bnn2, bnt1, bnt2 Number
+
+ bnn2.Int.Rsh(&TheCurve.Order.Int, 1)
+
+ bnc1.Mul(&num.Int, &TheCurve.a1b2.Int)
+ bnc1.Add(&bnc1.Int, &bnn2.Int)
+ bnc1.Div(&bnc1.Int, &TheCurve.Order.Int)
+
+ bnc2.Mul(&num.Int, &TheCurve.b1.Int)
+ bnc2.Add(&bnc2.Int, &bnn2.Int)
+ bnc2.Div(&bnc2.Int, &TheCurve.Order.Int)
+
+ bnt1.Mul(&bnc1.Int, &TheCurve.a1b2.Int)
+ bnt2.Mul(&bnc2.Int, &TheCurve.a2.Int)
+ bnt1.Add(&bnt1.Int, &bnt2.Int)
+ r1.Sub(&num.Int, &bnt1.Int)
+
+ bnt1.Mul(&bnc1.Int, &TheCurve.b1.Int)
+ bnt2.Mul(&bnc2.Int, &TheCurve.a1b2.Int)
+ r2.Sub(&bnt1.Int, &bnt2.Int)
+}
+
+func (num *Number) split(rl, rh *Number, bits uint) { // nolint: unparam
+ rl.Int.Set(&num.Int)
+ rh.Int.Rsh(&rl.Int, bits)
+ rl.maskBits(bits)
+}
+
+func (num *Number) rsh(bits uint) { // nolint: unparam
+ num.Rsh(&num.Int, bits)
+}
+
+func (num *Number) inc() {
+ num.Add(&num.Int, BigInt1)
+}
+
+func (num *Number) rshX(bits uint) (res int) {
+ res = int(new(big.Int).And(&num.Int, new(big.Int).SetUint64((1< le {
+ panic("buffer too small")
+ }
+ if len(bts) == le {
+ return bts
+ }
+ return append(make([]byte, le-len(bts)), bts...)
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/secp256k1.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/secp256k1.go
new file mode 100644
index 0000000000..55ce1da306
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/secp256k1.go
@@ -0,0 +1,60 @@
+/*
+Package secp256k1go implements the underlying secp256k1 primitives
+*/
+package secp256k1go
+
+const winA = 5
+const winG = 14
+const forceLowS = true // At the output of the Sign() function
+
+// TheCurve represents curve
+var TheCurve struct {
+ Order, halfOrder Number
+ G XY
+ beta Field
+ lambda, a1b2, b1, a2 Number
+ p Number
+}
+
+func initContants() {
+ TheCurve.Order.SetBytes([]byte{
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,
+ 0xBA, 0xAE, 0xDC, 0xE6, 0xAF, 0x48, 0xA0, 0x3B, 0xBF, 0xD2, 0x5E, 0x8C, 0xD0, 0x36, 0x41, 0x41})
+
+ TheCurve.halfOrder.SetBytes([]byte{
+ 0X7F, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
+ 0X5D, 0X57, 0X6E, 0X73, 0X57, 0XA4, 0X50, 0X1D, 0XDF, 0XE9, 0X2F, 0X46, 0X68, 0X1B, 0X20, 0XA0})
+
+ TheCurve.p.SetBytes([]byte{
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFC, 0x2F})
+
+ TheCurve.G.X.SetB32([]byte{
+ 0x79, 0xBE, 0x66, 0x7E, 0xF9, 0xDC, 0xBB, 0xAC, 0x55, 0xA0, 0x62, 0x95, 0xCE, 0x87, 0x0B, 0x07,
+ 0x02, 0x9B, 0xFC, 0xDB, 0x2D, 0xCE, 0x28, 0xD9, 0x59, 0xF2, 0x81, 0x5B, 0x16, 0xF8, 0x17, 0x98})
+
+ TheCurve.G.Y.SetB32([]byte{
+ 0x48, 0x3A, 0xDA, 0x77, 0x26, 0xA3, 0xC4, 0x65, 0x5D, 0xA4, 0xFB, 0xFC, 0x0E, 0x11, 0x08, 0xA8,
+ 0xFD, 0x17, 0xB4, 0x48, 0xA6, 0x85, 0x54, 0x19, 0x9C, 0x47, 0xD0, 0x8F, 0xFB, 0x10, 0xD4, 0xB8})
+
+ TheCurve.lambda.SetBytes([]byte{
+ 0x53, 0x63, 0xad, 0x4c, 0xc0, 0x5c, 0x30, 0xe0, 0xa5, 0x26, 0x1c, 0x02, 0x88, 0x12, 0x64, 0x5a,
+ 0x12, 0x2e, 0x22, 0xea, 0x20, 0x81, 0x66, 0x78, 0xdf, 0x02, 0x96, 0x7c, 0x1b, 0x23, 0xbd, 0x72})
+
+ TheCurve.beta.SetB32([]byte{
+ 0x7a, 0xe9, 0x6a, 0x2b, 0x65, 0x7c, 0x07, 0x10, 0x6e, 0x64, 0x47, 0x9e, 0xac, 0x34, 0x34, 0xe9,
+ 0x9c, 0xf0, 0x49, 0x75, 0x12, 0xf5, 0x89, 0x95, 0xc1, 0x39, 0x6c, 0x28, 0x71, 0x95, 0x01, 0xee})
+
+ TheCurve.a1b2.SetBytes([]byte{
+ 0x30, 0x86, 0xd2, 0x21, 0xa7, 0xd4, 0x6b, 0xcd, 0xe8, 0x6c, 0x90, 0xe4, 0x92, 0x84, 0xeb, 0x15})
+
+ TheCurve.b1.SetBytes([]byte{
+ 0xe4, 0x43, 0x7e, 0xd6, 0x01, 0x0e, 0x88, 0x28, 0x6f, 0x54, 0x7f, 0xa9, 0x0a, 0xbf, 0xe4, 0xc3})
+
+ TheCurve.a2.SetBytes([]byte{
+ 0x01, 0x14, 0xca, 0x50, 0xf7, 0xa8, 0xe2, 0xf3, 0xf6, 0x57, 0xc1, 0x10, 0x8d, 0x9d, 0x44, 0xcf, 0xd8})
+}
+
+func init() {
+ initContants()
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/sig.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/sig.go
new file mode 100644
index 0000000000..dac0fc5208
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/sig.go
@@ -0,0 +1,234 @@
+package secp256k1go
+
+import (
+ "bytes"
+ "encoding/hex"
+ "fmt"
+ "log"
+)
+
+// Signature represents the signature
+type Signature struct {
+ R, S Number
+}
+
+// Print prints the signature
+func (sig *Signature) Print(lab string) {
+ fmt.Println(lab+".R:", hex.EncodeToString(sig.R.Bytes()))
+ fmt.Println(lab+".S:", hex.EncodeToString(sig.S.Bytes()))
+}
+
+// Verify verify the signature
+func (sig *Signature) Verify(pubkey *XY, message *Number) (ret bool) {
+ var r2 Number
+ ret = sig.recompute(&r2, pubkey, message) && sig.R.Cmp(&r2.Int) == 0
+ return
+}
+
+func (sig *Signature) recompute(r2 *Number, pubkey *XY, message *Number) (ret bool) {
+ var sn, u1, u2 Number
+
+ sn.modInv(&sig.S, &TheCurve.Order)
+ u1.modMul(&sn, message, &TheCurve.Order)
+ u2.modMul(&sn, &sig.R, &TheCurve.Order)
+
+ var pr, pubkeyj XYZ
+ pubkeyj.SetXY(pubkey)
+
+ pubkeyj.ECmult(&pr, &u2, &u1)
+ if !pr.IsInfinity() {
+ var xr Field
+ pr.getX(&xr)
+ xr.Normalize()
+ var xrb [32]byte
+ xr.GetB32(xrb[:])
+ r2.SetBytes(xrb[:])
+ r2.Mod(&r2.Int, &TheCurve.Order.Int)
+ ret = true
+ }
+
+ return
+}
+
+// Recover TODO: return type, or nil on failure
+func (sig *Signature) Recover(pubkey *XY, m *Number, recid int) (ret bool) {
+ var rx, rn, u1, u2 Number
+ var fx Field
+ var X XY
+ var xj, qj XYZ
+
+ rx.Set(&sig.R.Int)
+ if (recid & 2) != 0 {
+ rx.Add(&rx.Int, &TheCurve.Order.Int)
+ if rx.Cmp(&TheCurve.p.Int) >= 0 {
+ return false
+ }
+ }
+
+ fx.SetB32(rx.getBin(32))
+
+ X.SetXO(&fx, (recid&1) != 0)
+ if !X.IsValid() {
+ return false
+ }
+
+ xj.SetXY(&X)
+ rn.modInv(&sig.R, &TheCurve.Order)
+ u1.modMul(&rn, m, &TheCurve.Order)
+ u1.Sub(&TheCurve.Order.Int, &u1.Int)
+ u2.modMul(&rn, &sig.S, &TheCurve.Order)
+ xj.ECmult(&qj, &u2, &u1)
+ pubkey.SetXYZ(&qj)
+
+ return true
+}
+
+// Sign signs the signature
+func (sig *Signature) Sign(seckey, message, nonce *Number, recid *int) int {
+ var r XY
+ var rp XYZ
+ var n Number
+ var b [32]byte
+
+ ECmultGen(&rp, nonce)
+ r.SetXYZ(&rp)
+ r.X.Normalize()
+ r.Y.Normalize()
+ r.X.GetB32(b[:])
+ sig.R.SetBytes(b[:])
+ if recid != nil {
+ *recid = 0
+ if sig.R.Cmp(&TheCurve.Order.Int) >= 0 {
+ *recid |= 2
+ }
+ if r.Y.IsOdd() {
+ *recid |= 1
+ }
+ }
+ sig.R.mod(&TheCurve.Order)
+ n.modMul(&sig.R, seckey, &TheCurve.Order)
+ n.Add(&n.Int, &message.Int)
+ n.mod(&TheCurve.Order)
+ sig.S.modInv(nonce, &TheCurve.Order)
+ sig.S.modMul(&sig.S, &n, &TheCurve.Order)
+ if sig.S.Sign() == 0 {
+ return 0
+ }
+ if sig.S.IsOdd() {
+ sig.S.Sub(&TheCurve.Order.Int, &sig.S.Int)
+ if recid != nil {
+ *recid ^= 1
+ }
+ }
+
+ if forceLowS && sig.S.Cmp(&TheCurve.halfOrder.Int) == 1 {
+ sig.S.Sub(&TheCurve.Order.Int, &sig.S.Int)
+ if recid != nil {
+ *recid ^= 1
+ }
+ }
+
+ return 1
+}
+
+/*
+//uncompressed Signature Parsing in DER
+func (r *Signature) ParseBytes(sig []byte) int {
+ if sig[0] != 0x30 || len(sig) < 5 {
+ return -1
+ }
+
+ lenr := int(sig[3])
+ if lenr == 0 || 5+lenr >= len(sig) || sig[lenr+4] != 0x02 {
+ return -1
+ }
+
+ lens := int(sig[lenr+5])
+ if lens == 0 || int(sig[1]) != lenr+lens+4 || lenr+lens+6 > len(sig) || sig[2] != 0x02 {
+ return -1
+ }
+
+ r.R.SetBytes(sig[4 : 4+lenr])
+ r.S.SetBytes(sig[6+lenr : 6+lenr+lens])
+ return 6 + lenr + lens
+}
+*/
+
+/*
+//uncompressed Signature parsing in DER
+func (sig *Signature) Bytes() []byte {
+ r := sig.R.Bytes()
+ if r[0] >= 0x80 {
+ r = append([]byte{0}, r...)
+ }
+ s := sig.S.Bytes()
+ if s[0] >= 0x80 {
+ s = append([]byte{0}, s...)
+ }
+ res := new(bytes.Buffer)
+ res.WriteByte(0x30)
+ res.WriteByte(byte(4 + len(r) + len(s)))
+ res.WriteByte(0x02)
+ res.WriteByte(byte(len(r)))
+ res.Write(r)
+ res.WriteByte(0x02)
+ res.WriteByte(byte(len(s)))
+ res.Write(s)
+ return res.Bytes()
+}
+*/
+
+// ParseBytes compressed signature parsing
+func (sig *Signature) ParseBytes(v []byte) {
+ if len(v) != 64 {
+ log.Panic()
+ }
+ sig.R.SetBytes(v[0:32])
+ sig.S.SetBytes(v[32:64])
+}
+
+//secp256k1_num_get_bin(sig64, 32, &sig.r);
+//secp256k1_num_get_bin(sig64 + 32, 32, &sig.s);
+
+// Bytes compressed signature parsing
+func (sig *Signature) Bytes() []byte {
+ r := sig.R.Bytes() //endianess
+ s := sig.S.Bytes() //endianess
+
+ for len(r) < 32 {
+ r = append([]byte{0}, r...)
+ }
+ for len(s) < 32 {
+ s = append([]byte{0}, s...)
+ }
+
+ if len(r) != 32 || len(s) != 32 {
+ log.Panicf("signature size invalid: %d, %d", len(r), len(s))
+ }
+
+ res := new(bytes.Buffer)
+ if _, err := res.Write(r); err != nil {
+ panic(err)
+ }
+ if _, err := res.Write(s); err != nil {
+ panic(err)
+ }
+
+ //test
+ if true {
+ ret := res.Bytes()
+ var sig2 Signature
+ sig2.ParseBytes(ret)
+ if !bytes.Equal(sig.R.Bytes(), sig2.R.Bytes()) {
+ log.Panic("serialization failed 1")
+ }
+ if !bytes.Equal(sig.S.Bytes(), sig2.S.Bytes()) {
+ log.Panic("serialization failed 2")
+ }
+ }
+
+ if len(res.Bytes()) != 64 {
+ log.Panic()
+ }
+ return res.Bytes()
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/xy.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/xy.go
new file mode 100644
index 0000000000..15aea02a12
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/xy.go
@@ -0,0 +1,265 @@
+package secp256k1go
+
+import (
+ "fmt"
+ "log"
+)
+
+// XY TODO...
+type XY struct {
+ X, Y Field
+ Infinity bool
+}
+
+// Print prints the xy
+func (xy *XY) Print(lab string) {
+ if xy.Infinity {
+ fmt.Println(lab + " - Infinity")
+ return
+ }
+ fmt.Println(lab+".X:", xy.X.String())
+ fmt.Println(lab+".Y:", xy.Y.String())
+}
+
+//edited
+
+/*
+ if (size == 33 && (pub[0] == 0x02 || pub[0] == 0x03)) {
+ secp256k1_fe_t x;
+ secp256k1_fe_set_b32(&x, pub+1);
+ return secp256k1_ge_set_xo(elem, &x, pub[0] == 0x03);
+ } else if (size == 65 && (pub[0] == 0x04 || pub[0] == 0x06 || pub[0] == 0x07)) {
+ secp256k1_fe_t x, y;
+ secp256k1_fe_set_b32(&x, pub+1);
+ secp256k1_fe_set_b32(&y, pub+33);
+ secp256k1_ge_set_xy(elem, &x, &y);
+ if ((pub[0] == 0x06 || pub[0] == 0x07) && secp256k1_fe_is_odd(&y) != (pub[0] == 0x07))
+ return 0;
+ return secp256k1_ge_is_valid(elem);
+ }
+*/
+//All compact keys appear to be valid by construction, but may fail
+//is valid check
+
+// ParsePubkey WARNING: for compact signatures, will succeed unconditionally
+//however, elem.IsValid will fail
+func (xy *XY) ParsePubkey(pub []byte) bool {
+ if len(pub) != 33 {
+ log.Panic("pubkey len must be 33, len is ", len(pub)) // do not permit invalid length inputs
+ return false
+ }
+ if len(pub) == 33 && (pub[0] == 0x02 || pub[0] == 0x03) {
+ xy.X.SetB32(pub[1:33])
+ xy.SetXO(&xy.X, pub[0] == 0x03)
+ } else {
+ return false
+ }
+ //THIS FAILS
+ //reenable later
+ //if !elem.IsValid() {
+ // return false
+ //}
+
+ /*
+ else if len(pub) == 65 && (pub[0] == 0x04 || pub[0] == 0x06 || pub[0] == 0x07) {
+ elem.X.SetB32(pub[1:33])
+ elem.Y.SetB32(pub[33:65])
+ if (pub[0] == 0x06 || pub[0] == 0x07) && elem.Y.IsOdd() != (pub[0] == 0x07) {
+ return false
+ }
+ }
+ */
+ return true
+}
+
+// Bytes Returns serialized key in in compressed format: "<02> ",
+// eventually "<03> "
+//33 bytes
+func (xy XY) Bytes() []byte {
+ xy.X.Normalize() // See GitHub issue #15
+
+ raw := make([]byte, 33)
+ if xy.Y.IsOdd() {
+ raw[0] = 0x03
+ } else {
+ raw[0] = 0x02
+ }
+ xy.X.GetB32(raw[1:])
+ return raw
+}
+
+// BytesUncompressed returns serialized key in uncompressed format "<04> "
+//65 bytes
+func (xy *XY) BytesUncompressed() (raw []byte) {
+ xy.X.Normalize() // See GitHub issue #15
+ xy.Y.Normalize() // See GitHub issue #15
+
+ raw = make([]byte, 65)
+ raw[0] = 0x04
+ xy.X.GetB32(raw[1:33])
+ xy.Y.GetB32(raw[33:65])
+ return
+}
+
+// SetXY sets x y fields
+func (xy *XY) SetXY(X, Y *Field) {
+ xy.Infinity = false
+ xy.X = *X
+ xy.Y = *Y
+}
+
+/*
+int static secp256k1_ecdsa_pubkey_parse(secp256k1_ge_t *elem, const unsigned char *pub, int size) {
+ if (size == 33 && (pub[0] == 0x02 || pub[0] == 0x03)) {
+ secp256k1_fe_t x;
+ secp256k1_fe_set_b32(&x, pub+1);
+ return secp256k1_ge_set_xo(elem, &x, pub[0] == 0x03);
+ } else if (size == 65 && (pub[0] == 0x04 || pub[0] == 0x06 || pub[0] == 0x07)) {
+ secp256k1_fe_t x, y;
+ secp256k1_fe_set_b32(&x, pub+1);
+ secp256k1_fe_set_b32(&y, pub+33);
+ secp256k1_ge_set_xy(elem, &x, &y);
+ if ((pub[0] == 0x06 || pub[0] == 0x07) && secp256k1_fe_is_odd(&y) != (pub[0] == 0x07))
+ return 0;
+ return secp256k1_ge_is_valid(elem);
+ } else {
+ return 0;
+ }
+}
+*/
+
+// if (size == 33 && (pub[0] == 0x02 || pub[0] == 0x03)) {
+// secp256k1_fe_t x;
+// secp256k1_fe_set_b32(&x, pub+1);
+// return secp256k1_ge_set_xo(elem, &x, pub[0] == 0x03);
+
+// IsValid checks if valid
+func (xy *XY) IsValid() bool {
+ if xy.Infinity {
+ return false
+ }
+ var y2, x3, c Field
+ xy.Y.Sqr(&y2)
+ xy.X.Sqr(&x3)
+ x3.Mul(&x3, &xy.X)
+ c.SetInt(7)
+ x3.SetAdd(&c)
+ y2.Normalize()
+ x3.Normalize()
+ return y2.Equals(&x3)
+}
+
+// SetXYZ sets X Y Z fields
+func (xy *XY) SetXYZ(a *XYZ) {
+ var z2, z3 Field
+ a.Z.InvVar(&a.Z)
+ a.Z.Sqr(&z2)
+ a.Z.Mul(&z3, &z2)
+ a.X.Mul(&a.X, &z2)
+ a.Y.Mul(&a.Y, &z3)
+ a.Z.SetInt(1)
+ xy.Infinity = a.Infinity
+ xy.X = a.X
+ xy.Y = a.Y
+}
+
+func (xy *XY) precomp(w int) (pre []XY) { // nolint: unused,megacheck
+ pre = make([]XY, (1 << (uint(w) - 2)))
+ pre[0] = *xy
+ var X, d, tmp XYZ
+ X.SetXY(xy)
+ X.Double(&d)
+ for i := 1; i < len(pre); i++ {
+ d.AddXY(&tmp, &pre[i-1])
+ pre[i].SetXYZ(&tmp)
+ }
+ return
+}
+
+// Neg caculates negate
+func (xy *XY) Neg(r *XY) {
+ r.Infinity = xy.Infinity
+ r.X = xy.X
+ r.Y = xy.Y
+ r.Y.Normalize()
+ r.Y.Negate(&r.Y, 1)
+}
+
+/*
+int static secp256k1_ge_set_xo(secp256k1_ge_t *r, const secp256k1_fe_t *x, int odd) {
+ r->x = *x;
+ secp256k1_fe_t x2; secp256k1_fe_sqr(&x2, x);
+ secp256k1_fe_t x3; secp256k1_fe_mul(&x3, x, &x2);
+ r->infinity = 0;
+ secp256k1_fe_t c; secp256k1_fe_set_int(&c, 7);
+ secp256k1_fe_add(&c, &x3);
+ if (!secp256k1_fe_sqrt(&r->y, &c))
+ return 0;
+ secp256k1_fe_normalize(&r->y);
+ if (secp256k1_fe_is_odd(&r->y) != odd)
+ secp256k1_fe_negate(&r->y, &r->y, 1);
+ return 1;
+}
+*/
+
+// SetXO sets
+func (xy *XY) SetXO(X *Field, odd bool) {
+ var c, x2, x3 Field
+ xy.X = *X
+ X.Sqr(&x2)
+ X.Mul(&x3, &x2)
+ xy.Infinity = false
+ c.SetInt(7)
+ c.SetAdd(&x3)
+ c.Sqrt(&xy.Y) //does not return, can fail
+ if xy.Y.IsOdd() != odd {
+ xy.Y.Negate(&xy.Y, 1)
+ }
+
+ //r.X.Normalize() // See GitHub issue #15
+ xy.Y.Normalize()
+}
+
+// AddXY adds xy
+func (xy *XY) AddXY(a *XY) {
+ var xyz XYZ
+ xyz.SetXY(xy)
+ xyz.AddXY(&xyz, a)
+ xy.SetXYZ(&xyz)
+}
+
+/*
+func (pk *XY) GetPublicKey() []byte {
+ var out []byte = make([]byte, 65, 65)
+ pk.X.GetB32(out[1:33])
+ if len(out) == 65 {
+ out[0] = 0x04
+ pk.Y.GetB32(out[33:65])
+ } else {
+ if pk.Y.IsOdd() {
+ out[0] = 0x03
+ } else {
+ out[0] = 0x02
+ }
+ }
+ return out
+}
+*/
+
+// GetPublicKey use compact format
+//returns only 33 bytes
+//same as bytes()
+//TODO: deprecate, replace with .Bytes()
+func (xy *XY) GetPublicKey() []byte {
+ return xy.Bytes()
+ /*
+ var out []byte = make([]byte, 33, 33)
+ pk.X.GetB32(out[1:33])
+ if pk.Y.IsOdd() {
+ out[0] = 0x03
+ } else {
+ out[0] = 0x02
+ }
+ return out
+ */
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/xyz.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/xyz.go
new file mode 100644
index 0000000000..7fffdd59dc
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/xyz.go
@@ -0,0 +1,387 @@
+package secp256k1go
+
+import (
+ "fmt"
+ // "encoding/hex"
+)
+
+// XYZ contains xyz fields
+type XYZ struct {
+ X, Y, Z Field
+ Infinity bool
+}
+
+// Print prints xyz
+func (xyz XYZ) Print(lab string) {
+ if xyz.Infinity {
+ fmt.Println(lab + " - INFINITY")
+ return
+ }
+ fmt.Println(lab+".X", xyz.X.String())
+ fmt.Println(lab+".Y", xyz.Y.String())
+ fmt.Println(lab+".Z", xyz.Z.String())
+}
+
+// SetXY sets xy
+func (xyz *XYZ) SetXY(a *XY) {
+ xyz.Infinity = a.Infinity
+ xyz.X = a.X
+ xyz.Y = a.Y
+ xyz.Z.SetInt(1)
+}
+
+// IsInfinity check if xyz is infinity
+func (xyz *XYZ) IsInfinity() bool {
+ return xyz.Infinity
+}
+
+// IsValid check if xyz is valid
+func (xyz *XYZ) IsValid() bool {
+ if xyz.Infinity {
+ return false
+ }
+ var y2, x3, z2, z6 Field
+ xyz.Y.Sqr(&y2)
+ xyz.X.Sqr(&x3)
+ x3.Mul(&x3, &xyz.X)
+ xyz.Z.Sqr(&z2)
+ z2.Sqr(&z6)
+ z6.Mul(&z6, &z2)
+ z6.MulInt(7)
+ x3.SetAdd(&z6)
+ y2.Normalize()
+ x3.Normalize()
+ return y2.Equals(&x3)
+}
+
+func (xyz *XYZ) getX(r *Field) {
+ var zi2 Field
+ xyz.Z.InvVar(&zi2)
+ zi2.Sqr(&zi2)
+ xyz.X.Mul(r, &zi2)
+}
+
+// Normalize normalize all fields
+func (xyz *XYZ) Normalize() {
+ xyz.X.Normalize()
+ xyz.Y.Normalize()
+ xyz.Z.Normalize()
+}
+
+// Equals checks if equal
+func (xyz *XYZ) Equals(b *XYZ) bool {
+ if xyz.Infinity != b.Infinity {
+ return false
+ }
+ // TODO: is the normalize really needed here?
+ xyz.Normalize()
+ b.Normalize()
+ return xyz.X.Equals(&b.X) && xyz.Y.Equals(&b.Y) && xyz.Z.Equals(&b.Z)
+}
+
+func (xyz *XYZ) precomp(w int) (pre []XYZ) { // nolint: unparam
+ var d XYZ
+ pre = make([]XYZ, (1 << (uint(w) - 2)))
+ pre[0] = *xyz
+ pre[0].Double(&d)
+ for i := 1; i < len(pre); i++ {
+ d.Add(&pre[i], &pre[i-1])
+ }
+ return
+}
+
+func ecmultWnaf(wnaf []int, a *Number, w uint) (ret int) {
+ var zeroes uint
+ var X Number
+ X.Set(&a.Int)
+
+ for X.Sign() != 0 {
+ for X.Bit(0) == 0 {
+ zeroes++
+ X.rsh(1)
+ }
+ word := X.rshX(w)
+ for zeroes > 0 {
+ wnaf[ret] = 0
+ ret++
+ zeroes--
+ }
+ if (word & (1 << (w - 1))) != 0 {
+ X.inc()
+ wnaf[ret] = (word - (1 << w))
+ } else {
+ wnaf[ret] = word
+ }
+ zeroes = w - 1
+ ret++
+ }
+ return
+}
+
+// ECmult r = na*a + ng*G
+func (xyz *XYZ) ECmult(r *XYZ, na, ng *Number) {
+ var na1, naLam, ng1, ng128 Number
+
+ // split na into na_1 and na_lam (where na = na_1 + na_lam*lambda, and na_1 and na_lam are ~128 bit)
+ na.splitExp(&na1, &naLam)
+
+ // split ng into ng_1 and ng_128 (where gn = gn_1 + gn_128*2^128, and gn_1 and gn_128 are ~128 bit)
+ ng.split(&ng1, &ng128, 128)
+
+ // build wnaf representation for na_1, na_lam, ng_1, ng_128
+ var wnafNa1, wnafNaLam, wnafNg1, wnafNg128 [129]int
+ bitsNa1 := ecmultWnaf(wnafNa1[:], &na1, winA)
+ bitsNaLam := ecmultWnaf(wnafNaLam[:], &naLam, winA)
+ bitsNg1 := ecmultWnaf(wnafNg1[:], &ng1, winG)
+ bitsNg128 := ecmultWnaf(wnafNg128[:], &ng128, winG)
+
+ // calculate a_lam = a*lambda
+ var aLam XYZ
+ xyz.mulLambda(&aLam)
+
+ // calculate odd multiples of a and a_lam
+ preA1 := xyz.precomp(winA)
+ preALam := aLam.precomp(winA)
+
+ bits := bitsNa1
+ if bitsNaLam > bits {
+ bits = bitsNaLam
+ }
+ if bitsNg1 > bits {
+ bits = bitsNg1
+ }
+ if bitsNg128 > bits {
+ bits = bitsNg128
+ }
+
+ r.Infinity = true
+
+ var tmpj XYZ
+ var tmpa XY
+ var n int
+
+ for i := bits - 1; i >= 0; i-- {
+ r.Double(r)
+
+ if i < bitsNa1 {
+ n = wnafNa1[i]
+ if n > 0 {
+ r.Add(r, &preA1[((n)-1)/2])
+ } else if n != 0 {
+ preA1[(-(n)-1)/2].Neg(&tmpj)
+ r.Add(r, &tmpj)
+ }
+ }
+
+ if i < bitsNaLam {
+ n = wnafNaLam[i]
+ if n > 0 {
+ r.Add(r, &preALam[((n)-1)/2])
+ } else if n != 0 {
+ preALam[(-(n)-1)/2].Neg(&tmpj)
+ r.Add(r, &tmpj)
+ }
+ }
+
+ if i < bitsNg1 {
+ n = wnafNg1[i]
+ if n > 0 {
+ r.AddXY(r, &preG[((n)-1)/2])
+ } else if n != 0 {
+ preG[(-(n)-1)/2].Neg(&tmpa)
+ r.AddXY(r, &tmpa)
+ }
+ }
+
+ if i < bitsNg128 {
+ n = wnafNg128[i]
+ if n > 0 {
+ r.AddXY(r, &preG128[((n)-1)/2])
+ } else if n != 0 {
+ preG128[(-(n)-1)/2].Neg(&tmpa)
+ r.AddXY(r, &tmpa)
+ }
+ }
+ }
+}
+
+// Neg caculate neg
+func (xyz *XYZ) Neg(r *XYZ) {
+ r.Infinity = xyz.Infinity
+ r.X = xyz.X
+ r.Y = xyz.Y
+ r.Z = xyz.Z
+ r.Y.Normalize()
+ r.Y.Negate(&r.Y, 1)
+}
+
+func (xyz *XYZ) mulLambda(r *XYZ) {
+ *r = *xyz
+ r.X.Mul(&r.X, &TheCurve.beta)
+}
+
+// Double cacule double
+func (xyz *XYZ) Double(r *XYZ) {
+ var t1, t2, t3, t4, t5 Field
+
+ t5 = xyz.Y
+ t5.Normalize()
+ if xyz.Infinity || t5.IsZero() {
+ r.Infinity = true
+ return
+ }
+
+ t5.Mul(&r.Z, &xyz.Z)
+ r.Z.MulInt(2)
+ xyz.X.Sqr(&t1)
+ t1.MulInt(3)
+ t1.Sqr(&t2)
+ t5.Sqr(&t3)
+ t3.MulInt(2)
+ t3.Sqr(&t4)
+ t4.MulInt(2)
+ xyz.X.Mul(&t3, &t3)
+ r.X = t3
+ r.X.MulInt(4)
+ r.X.Negate(&r.X, 4)
+ r.X.SetAdd(&t2)
+ t2.Negate(&t2, 1)
+ t3.MulInt(6)
+ t3.SetAdd(&t2)
+ t1.Mul(&r.Y, &t3)
+ t4.Negate(&t2, 2)
+ r.Y.SetAdd(&t2)
+ r.Infinity = false
+}
+
+// AddXY adds XY
+func (xyz *XYZ) AddXY(r *XYZ, b *XY) {
+ if xyz.Infinity {
+ r.Infinity = b.Infinity
+ r.X = b.X
+ r.Y = b.Y
+ r.Z.SetInt(1)
+ return
+ }
+ if b.Infinity {
+ *r = *xyz
+ return
+ }
+ r.Infinity = false
+ var z12, u1, u2, s1, s2 Field
+ xyz.Z.Sqr(&z12)
+ u1 = xyz.X
+ u1.Normalize()
+ b.X.Mul(&u2, &z12)
+ s1 = xyz.Y
+ s1.Normalize()
+ b.Y.Mul(&s2, &z12)
+ s2.Mul(&s2, &xyz.Z)
+ u1.Normalize()
+ u2.Normalize()
+
+ if u1.Equals(&u2) {
+ s1.Normalize()
+ s2.Normalize()
+ if s1.Equals(&s2) {
+ xyz.Double(r)
+ } else {
+ r.Infinity = true
+ }
+ return
+ }
+
+ var h, i, i2, h2, h3, t Field
+ u1.Negate(&h, 1)
+ h.SetAdd(&u2)
+ s1.Negate(&i, 1)
+ i.SetAdd(&s2)
+ i.Sqr(&i2)
+ h.Sqr(&h2)
+ h.Mul(&h3, &h2)
+ r.Z = xyz.Z
+ r.Z.Mul(&r.Z, &h)
+ u1.Mul(&t, &h2)
+ r.X = t
+ r.X.MulInt(2)
+ r.X.SetAdd(&h3)
+ r.X.Negate(&r.X, 3)
+ r.X.SetAdd(&i2)
+ r.X.Negate(&r.Y, 5)
+ r.Y.SetAdd(&t)
+ r.Y.Mul(&r.Y, &i)
+ h3.Mul(&h3, &s1)
+ h3.Negate(&h3, 1)
+ r.Y.SetAdd(&h3)
+}
+
+// Add adds value
+func (xyz *XYZ) Add(r, b *XYZ) {
+ if xyz.Infinity {
+ *r = *b
+ return
+ }
+ if b.Infinity {
+ *r = *xyz
+ return
+ }
+ r.Infinity = false
+ var z22, z12, u1, u2, s1, s2 Field
+
+ b.Z.Sqr(&z22)
+ xyz.Z.Sqr(&z12)
+ xyz.X.Mul(&u1, &z22)
+ b.X.Mul(&u2, &z12)
+ xyz.Y.Mul(&s1, &z22)
+ s1.Mul(&s1, &b.Z)
+ b.Y.Mul(&s2, &z12)
+ s2.Mul(&s2, &xyz.Z)
+ u1.Normalize()
+ u2.Normalize()
+ if u1.Equals(&u2) {
+ s1.Normalize()
+ s2.Normalize()
+ if s1.Equals(&s2) {
+ xyz.Double(r)
+ } else {
+ r.Infinity = true
+ }
+ return
+ }
+ var h, i, i2, h2, h3, t Field
+
+ u1.Negate(&h, 1)
+ h.SetAdd(&u2)
+ s1.Negate(&i, 1)
+ i.SetAdd(&s2)
+ i.Sqr(&i2)
+ h.Sqr(&h2)
+ h.Mul(&h3, &h2)
+ xyz.Z.Mul(&r.Z, &b.Z)
+ r.Z.Mul(&r.Z, &h)
+ u1.Mul(&t, &h2)
+ r.X = t
+ r.X.MulInt(2)
+ r.X.SetAdd(&h3)
+ r.X.Negate(&r.X, 3)
+ r.X.SetAdd(&i2)
+ r.X.Negate(&r.Y, 5)
+ r.Y.SetAdd(&t)
+ r.Y.Mul(&r.Y, &i)
+ h3.Mul(&h3, &s1)
+ h3.Negate(&h3, 1)
+ r.Y.SetAdd(&h3)
+}
+
+// ECmultGen r = a*G
+//TODO: Change to returning result
+//TODO: input should not be pointer
+func ECmultGen(r *XYZ, a *Number) {
+ var n Number
+ n.Set(&a.Int)
+ r.SetXY(&prec[0][n.rshX(4)])
+ for j := 1; j < 64; j++ {
+ r.AddXY(r, &prec[j][n.rshX(4)])
+ }
+ r.AddXY(r, &fin)
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/z_consts.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/z_consts.go
new file mode 100644
index 0000000000..4b6c0f76a0
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/z_consts.go
@@ -0,0 +1,9356 @@
+package secp256k1go
+
+var fin = XY{X: Field{[10]uint32{0x035871aa, 0x002dc101, 0x0059ab0f, 0x02cb297e, 0x00684bb5, 0x02585764, 0x02f3cceb, 0x002bdca3, 0x03dcb7cc, 0x0013cd56}}, Y: Field{[10]uint32{0x044d069d, 0x0603c088, 0x07541d4e, 0x04a4074d, 0x045fcba8, 0x05f00c34, 0x04bab268, 0x05fd8d65, 0x04e47151, 0x0071e924}}}
+
+var preG = []XY{
+ {X: Field{[10]uint32{0x02f81798, 0x00a056c5, 0x028d959f, 0x036cb738, 0x03029bfc, 0x03a1c2c1, 0x0206295c, 0x02eeb156, 0x027ef9dc, 0x001e6f99}}, Y: Field{[10]uint32{0x0310d4b8, 0x01f423fe, 0x014199c4, 0x01229a15, 0x00fd17b4, 0x0384422a, 0x024fbfc0, 0x03119576, 0x027726a3, 0x00120eb6}}},
+ {X: Field{[10]uint32{0x00e036f9, 0x007c44ef, 0x019b0860, 0x01160dbe, 0x01b531c8, 0x0227548a, 0x0344f85f, 0x030c4124, 0x02019258, 0x003e4c22}}, Y: Field{[10]uint32{0x00b8e672, 0x027f5d61, 0x0231b6cb, 0x0264d308, 0x026500a9, 0x028dfcd5, 0x02337e62, 0x03a0503f, 0x030f632d, 0x000e23de}}},
+ {X: Field{[10]uint32{0x0240efe4, 0x02355a6c, 0x01ab7cba, 0x02f77186, 0x00e88b84, 0x0297144a, 0x034a7250, 0x00824d56, 0x024d1a07, 0x000be2f7}}, Y: Field{[10]uint32{0x02ac62d6, 0x021f4ea9, 0x02840dca, 0x006eac35, 0x02f78827, 0x01b27109, 0x01ba9dda, 0x038f5b53, 0x022636e5, 0x00362b08}}},
+ {X: Field{[10]uint32{0x02c4f9bc, 0x02f77b72, 0x0239ce92, 0x01f80cc3, 0x023d419b, 0x00ba9e83, 0x018f365f, 0x02d3aa8e, 0x00646e5d, 0x00172f7c}}, Y: Field{[10]uint32{0x007264da, 0x02098a02, 0x027b5a50, 0x02e04ff7, 0x03a813d0, 0x01869536, 0x0178d6d8, 0x0165828c, 0x0240ba25, 0x001abaf2}}},
+ {X: Field{[10]uint32{0x0027ccbe, 0x03c4437f, 0x02714c35, 0x025d315f, 0x01e09796, 0x03d566af, 0x02d178a9, 0x03d94c26, 0x00e2f0c7, 0x002b3521}}, Y: Field{[10]uint32{0x024f9c37, 0x03098ab1, 0x00e0f05c, 0x0290dd7e, 0x01add888, 0x018ed87a, 0x03809717, 0x0367f590, 0x0121b0a7, 0x00330ce2}}},
+ {X: Field{[10]uint32{0x01a008cb, 0x0305e257, 0x03891bbe, 0x002f9705, 0x00564998, 0x003196ab, 0x034246b7, 0x0104797b, 0x03f858a9, 0x001dd2b9}}, Y: Field{[10]uint32{0x0153c61b, 0x035d3272, 0x016a8301, 0x038b7fe7, 0x01372db1, 0x01edecd9, 0x003dd56d, 0x01786409, 0x0032eb6b, 0x00366128}}},
+ {X: Field{[10]uint32{0x01405aa8, 0x0377e3c6, 0x018cddee, 0x03198439, 0x01b075fb, 0x00dd2194, 0x011d205c, 0x00a22f1f, 0x03c2d975, 0x003ca1dc}}, Y: Field{[10]uint32{0x0303ed81, 0x0172d4b6, 0x0291f29b, 0x0369487e, 0x033a1a06, 0x01736bd1, 0x00212eb6, 0x002a25d6, 0x002e8d88, 0x0002ac24}}},
+ {X: Field{[10]uint32{0x027e080e, 0x036f3e38, 0x0379e44a, 0x01bcf217, 0x0131e594, 0x0257fd04, 0x0065ae30, 0x03aa5969, 0x014f7d43, 0x0035e493}}, Y: Field{[10]uint32{0x02a26b58, 0x013727fd, 0x013a5c50, 0x00af625b, 0x03ea40af, 0x02331b7b, 0x0042ec22, 0x01ca9a0e, 0x0072a86c, 0x0016078a}}},
+ {X: Field{[10]uint32{0x022d4a34, 0x013ea812, 0x0368766e, 0x02b9e6e5, 0x01eb9898, 0x01fab3c8, 0x020fee80, 0x01dd4290, 0x024cdb67, 0x0037bf7a}}, Y: Field{[10]uint32{0x0256eb77, 0x00667da7, 0x000f6cfb, 0x02812a57, 0x02ced1f4, 0x00aa4f6b, 0x017b0ead, 0x0145a3a6, 0x03069463, 0x0010846a}}},
+ {X: Field{[10]uint32{0x00385b6c, 0x0159584e, 0x02d27747, 0x03af5fa1, 0x01f06acf, 0x0113d25e, 0x02f5cff4, 0x010f4a4f, 0x00a797a4, 0x000ad3a8}}, Y: Field{[10]uint32{0x01c09b7a, 0x00321539, 0x01763b57, 0x0031409a, 0x031a01f6, 0x02872184, 0x003083b5, 0x01764ecd, 0x03c03794, 0x00217a26}}},
+ {X: Field{[10]uint32{0x01be59d5, 0x0102bbc9, 0x01071813, 0x0009c7e0, 0x001d9ad4, 0x0338cccc, 0x013fa332, 0x0049593e, 0x034a4cdd, 0x000d4aef}}, Y: Field{[10]uint32{0x0381998c, 0x034f62f3, 0x0039c67b, 0x00b9c6c4, 0x034a1b3b, 0x03768f87, 0x01c18259, 0x03d4d356, 0x00075348, 0x000c87ad}}},
+ {X: Field{[10]uint32{0x02cacc3f, 0x0336b753, 0x03f29dc9, 0x037fbfd7, 0x00e42ab8, 0x0261e449, 0x03001055, 0x03446c08, 0x004d6b38, 0x000be884}}, Y: Field{[10]uint32{0x032b7d67, 0x02e9dad4, 0x02648423, 0x03b3f220, 0x00181d70, 0x02f57760, 0x00569335, 0x036196d9, 0x0068295d, 0x0000b784}}},
+ {X: Field{[10]uint32{0x01453714, 0x028335fd, 0x032e269c, 0x02138255, 0x03263c3d, 0x01bb76a0, 0x021a9b06, 0x035a36ac, 0x039b09b4, 0x00249209}}, Y: Field{[10]uint32{0x03cb3402, 0x028cb3a5, 0x012ffe54, 0x00aa21e4, 0x033fc0de, 0x03a8ac7f, 0x01aa71bd, 0x02ab7974, 0x037bf234, 0x001cc05b}}},
+ {X: Field{[10]uint32{0x01ee8729, 0x025b510f, 0x015c07e9, 0x00512fd8, 0x022f570e, 0x002fadd4, 0x030132fb, 0x02fc9e39, 0x032be3a8, 0x0036bb53}}, Y: Field{[10]uint32{0x00be1c55, 0x003948a4, 0x02726ab4, 0x00c3cebe, 0x003f83c2, 0x03be35c0, 0x021aca87, 0x0263a352, 0x024a7d6c, 0x0029a773}}},
+ {X: Field{[10]uint32{0x0122e7db, 0x00ed7a1f, 0x001b0e6a, 0x03a7f7ca, 0x0011ecd9, 0x02ec67e4, 0x00f28d7c, 0x0204ba2b, 0x02c7065d, 0x00311344}}, Y: Field{[10]uint32{0x020e6482, 0x02418fc3, 0x021c5a03, 0x02187b7d, 0x000e106e, 0x0260bf6b, 0x0045926c, 0x01b371db, 0x0060ce32, 0x00084669}}},
+ {X: Field{[10]uint32{0x0269e6b4, 0x031972f4, 0x00063b61, 0x014cdb0a, 0x03152b69, 0x03b58214, 0x01a20cfd, 0x02141322, 0x03f6dc69, 0x001a8916}}, Y: Field{[10]uint32{0x000d8a82, 0x0398d204, 0x03b6efd5, 0x01234108, 0x018b33ba, 0x005a892b, 0x03f5126f, 0x0129c22c, 0x0342c2bd, 0x003808b3}}},
+ {X: Field{[10]uint32{0x010bd6a5, 0x02b95fc3, 0x01146f95, 0x002c2fb0, 0x00ce1330, 0x03950421, 0x037e3d2f, 0x03989f01, 0x03a6fd9d, 0x0005a5ff}}, Y: Field{[10]uint32{0x001b2396, 0x03a758f4, 0x00ae7ade, 0x00027926, 0x03a2cf15, 0x01155d0c, 0x0161506e, 0x01bd749d, 0x00f18680, 0x002e70e6}}},
+ {X: Field{[10]uint32{0x027a7479, 0x008d17bc, 0x0361df98, 0x0183fedf, 0x019deb83, 0x020d32c3, 0x02d0f07e, 0x01c62e61, 0x03019981, 0x001816f6}}, Y: Field{[10]uint32{0x016b8c49, 0x00787a41, 0x00db43b0, 0x03a13ec5, 0x03c26bfa, 0x0325bf88, 0x0278d93e, 0x03481a06, 0x012de4f8, 0x0000a5cb}}},
+ {X: Field{[10]uint32{0x007ff33d, 0x0071fa76, 0x0310cfe3, 0x00d52566, 0x00dcb01c, 0x02885784, 0x002fdc45, 0x02fd25d0, 0x01ab4150, 0x0018b453}}, Y: Field{[10]uint32{0x03b25eaf, 0x01590920, 0x0072235f, 0x00a59ead, 0x0301aa13, 0x003bb436, 0x0088a195, 0x02c04260, 0x02bd8cc5, 0x00203f01}}},
+ {X: Field{[10]uint32{0x02308b6f, 0x01570be1, 0x00b425e5, 0x03d5ae6e, 0x032c50e9, 0x0102395a, 0x01b4b06c, 0x009f6b79, 0x02d0040f, 0x00203182}}, Y: Field{[10]uint32{0x030bd57a, 0x0007d590, 0x024eb1aa, 0x0132f9c0, 0x00a65eed, 0x03f9cbdc, 0x0266bad7, 0x030c3c9b, 0x003f1cc5, 0x00070e0c}}},
+ {X: Field{[10]uint32{0x0203c8fb, 0x03aaec3e, 0x007049d5, 0x02521f61, 0x004cc5dc, 0x0331534d, 0x034c6348, 0x02b552a9, 0x01ad6167, 0x001ea4dd}}, Y: Field{[10]uint32{0x024dc7f7, 0x01267b08, 0x00e2b02d, 0x028431c3, 0x02bdc59e, 0x0249a411, 0x0159e0d7, 0x01c9a425, 0x03a9eca8, 0x0003438f}}},
+ {X: Field{[10]uint32{0x03c3ffc9, 0x0147d166, 0x01f504bb, 0x030e6da3, 0x01bb408e, 0x01511e9e, 0x03a9ed04, 0x02d53241, 0x00d9b696, 0x00354a3b}}, Y: Field{[10]uint32{0x01409933, 0x01196d48, 0x00dbc063, 0x01017148, 0x02bc4345, 0x007f595b, 0x026f2188, 0x0397e665, 0x01253136, 0x003bb3d0}}},
+ {X: Field{[10]uint32{0x00b45963, 0x00c6023e, 0x00b13872, 0x017929fb, 0x00526611, 0x023b36b4, 0x025f514e, 0x00d04ba8, 0x00a4b5f4, 0x000124dc}}, Y: Field{[10]uint32{0x02949c9a, 0x00c14a84, 0x02764b65, 0x02beed6d, 0x0254c3f3, 0x004bf58a, 0x03081b05, 0x03b50a2c, 0x0341afd6, 0x001d63cf}}},
+ {X: Field{[10]uint32{0x00345d74, 0x004fac7f, 0x018e2f1c, 0x00783852, 0x03881d81, 0x0191c0bb, 0x03df930d, 0x0232ef5c, 0x00936ee8, 0x001dfc8c}}, Y: Field{[10]uint32{0x031c60d6, 0x03acf1d9, 0x037cbbe8, 0x00c365c1, 0x0096c953, 0x02e86cde, 0x008266e9, 0x02d90028, 0x002a7886, 0x002563bd}}},
+ {X: Field{[10]uint32{0x0339f530, 0x0214c6dd, 0x00dbaeb2, 0x01d2ae75, 0x0258c800, 0x031f02f3, 0x004887e5, 0x0392e7a9, 0x0191cc4c, 0x003cb6b2}}, Y: Field{[10]uint32{0x003a3c37, 0x005f6e9c, 0x024fd1a1, 0x03ac1663, 0x039eb5fb, 0x03094c77, 0x021f32de, 0x0236b536, 0x009b3b2f, 0x003837b7}}},
+ {X: Field{[10]uint32{0x0290d45b, 0x02921431, 0x023debcb, 0x037f276b, 0x025a216c, 0x03894804, 0x00be8fbb, 0x0087ec6d, 0x019f6626, 0x00118ecf}}, Y: Field{[10]uint32{0x02f7307e, 0x00ddec06, 0x01de31cb, 0x01f25c28, 0x03c622e2, 0x036188b5, 0x0114306d, 0x01b0d50c, 0x00d78c29, 0x0017b50c}}},
+ {X: Field{[10]uint32{0x0198f247, 0x0125ad26, 0x022d1a32, 0x03050ca2, 0x036b98fa, 0x03ced665, 0x0232d4af, 0x01b8a824, 0x004244e4, 0x003c5be0}}, Y: Field{[10]uint32{0x00e31df6, 0x01e658b1, 0x00e26d65, 0x0309b973, 0x012a6c53, 0x03d38cf6, 0x01206fcd, 0x00fdf84f, 0x019b8220, 0x0033b6af}}},
+ {X: Field{[10]uint32{0x011d41d1, 0x03857dc5, 0x03c65369, 0x0056b389, 0x015d2453, 0x010c46bd, 0x0352b7a1, 0x01158ec0, 0x00272dc8, 0x0032bdd5}}, Y: Field{[10]uint32{0x00a04476, 0x03e420c6, 0x032a5c32, 0x02de5888, 0x035f4fa9, 0x01791815, 0x01b643fa, 0x03d7ca90, 0x0260ef35, 0x0032d1d1}}},
+ {X: Field{[10]uint32{0x03082120, 0x025ef21b, 0x017c1244, 0x001f2e1b, 0x0344a09c, 0x0265e762, 0x01d0f170, 0x02e61be1, 0x024b282c, 0x00098032}}, Y: Field{[10]uint32{0x027e4b40, 0x02fa51d6, 0x00ef44b0, 0x01d2ad7c, 0x015ac6be, 0x0376ed17, 0x013b03fc, 0x016f5a9a, 0x008753c1, 0x0010466e}}},
+ {X: Field{[10]uint32{0x0198e435, 0x00a9dd1a, 0x03dc8c60, 0x0217893d, 0x0001c486, 0x0048882f, 0x00ec53cd, 0x010cb0ce, 0x0272d7e8, 0x001d8d72}}, Y: Field{[10]uint32{0x005b9c61, 0x01dbcc0b, 0x008bad9e, 0x018755c1, 0x034ecfc0, 0x03de39b5, 0x01d5e590, 0x027584f4, 0x00960948, 0x000246d9}}},
+ {X: Field{[10]uint32{0x0356cc18, 0x0141d0ef, 0x028fbc1a, 0x00d1e751, 0x02b7f2b3, 0x03bba299, 0x03f4a87d, 0x015c336e, 0x0239f325, 0x001d538c}}, Y: Field{[10]uint32{0x00536683, 0x0366024f, 0x0295d0c5, 0x034065e9, 0x0023ee33, 0x013a9268, 0x00d0ed30, 0x028c3ecf, 0x0386e5bd, 0x00019cfe}}},
+ {X: Field{[10]uint32{0x01d9b9e8, 0x009a51a4, 0x0152f9fe, 0x01987472, 0x00330800, 0x00b55c3c, 0x017859c8, 0x03a5abfd, 0x011071a1, 0x0038f9af}}, Y: Field{[10]uint32{0x020e37f5, 0x000abd24, 0x00c41670, 0x00e64fa4, 0x02a5a228, 0x01e68f2d, 0x000aa583, 0x039dbd03, 0x00bba394, 0x00167278}}},
+ {X: Field{[10]uint32{0x004aa6eb, 0x011ff73c, 0x01f4b4cc, 0x03ccae8d, 0x01c4ccb1, 0x03dcca61, 0x02e73d88, 0x000ce09a, 0x003d056a, 0x00061ad2}}, Y: Field{[10]uint32{0x0280888b, 0x01e5fe1b, 0x038b4a4a, 0x02422544, 0x0321fb80, 0x0010602a, 0x017446e2, 0x03ddf8b8, 0x0132c67c, 0x000ee54b}}},
+ {X: Field{[10]uint32{0x00e0963f, 0x00c85c93, 0x019c91a8, 0x034adcdf, 0x025442e6, 0x012f93dc, 0x0098561f, 0x01b39513, 0x00a6b987, 0x0037e75c}}, Y: Field{[10]uint32{0x02ba2417, 0x0231173c, 0x01da217b, 0x009c83be, 0x02b15722, 0x0370e752, 0x0062b785, 0x01b3357e, 0x01afd84d, 0x00157acb}}},
+ {X: Field{[10]uint32{0x00ce7143, 0x019317cd, 0x018995de, 0x013e127b, 0x00ab5255, 0x0177383e, 0x03ca815d, 0x03a1e925, 0x00c23c51, 0x0017b757}}, Y: Field{[10]uint32{0x0399a868, 0x01c1aadc, 0x02905cdc, 0x030345e8, 0x00c13c66, 0x003226b4, 0x028cec03, 0x004c1987, 0x008dbc14, 0x003beba7}}},
+ {X: Field{[10]uint32{0x00614fba, 0x034d8be1, 0x0317a722, 0x02870d56, 0x037aa3fb, 0x021fa79d, 0x012fe022, 0x01a0c368, 0x00c2b647, 0x000a41e6}}, Y: Field{[10]uint32{0x01943e7a, 0x000ebf50, 0x023146d0, 0x02536ca8, 0x015b29c0, 0x01e6bc97, 0x00d00bcf, 0x00188662, 0x036dcd44, 0x0038e369}}},
+ {X: Field{[10]uint32{0x00053b45, 0x03f7b3bd, 0x0257362d, 0x00bf8d80, 0x01cd2955, 0x00542b0e, 0x00754efa, 0x03d6cc15, 0x023a95d9, 0x002bcf10}}, Y: Field{[10]uint32{0x018fd9c6, 0x03fb7b52, 0x01581bc2, 0x02999e85, 0x00c8cd5a, 0x00d73ed0, 0x013b0e6f, 0x00add26a, 0x03d831eb, 0x003e628f}}},
+ {X: Field{[10]uint32{0x0084249a, 0x03fb5436, 0x018df8d2, 0x02c9b73e, 0x0106bb66, 0x026fc9d2, 0x00aa28c9, 0x039d1733, 0x0324d134, 0x001d9b6e}}, Y: Field{[10]uint32{0x03ac5996, 0x0093e5f2, 0x00edd2c9, 0x0197e81b, 0x0097584a, 0x00368e2e, 0x00c88798, 0x03978e37, 0x0152eacb, 0x001d12c4}}},
+ {X: Field{[10]uint32{0x011abe3e, 0x00b99986, 0x02a58ce9, 0x013db165, 0x0245f7b4, 0x01e13d05, 0x01277c33, 0x01d66e88, 0x006f8c94, 0x001676fd}}, Y: Field{[10]uint32{0x02307f6e, 0x03885b12, 0x0398cd85, 0x0269e465, 0x0042ce73, 0x0120c268, 0x00ea6ce6, 0x02f0c03d, 0x0144175f, 0x00314d2b}}},
+ {X: Field{[10]uint32{0x00fd87b8, 0x03718063, 0x0273cb62, 0x01c46a57, 0x00dd647e, 0x013a692a, 0x01e691e7, 0x0114dcc1, 0x0295103c, 0x003c4eb6}}, Y: Field{[10]uint32{0x02f5733d, 0x021066f6, 0x00257077, 0x0069a9d7, 0x026949e2, 0x020d07cc, 0x03f4bc80, 0x0137998e, 0x03b44ee1, 0x00384e05}}},
+ {X: Field{[10]uint32{0x0288522c, 0x01540056, 0x01fb6488, 0x0301baeb, 0x00da1869, 0x01673293, 0x00167a2c, 0x033b41b5, 0x00fa0e8a, 0x001dd52d}}, Y: Field{[10]uint32{0x001163a2, 0x0122d5e1, 0x03cc537a, 0x00d42db2, 0x028d1e4e, 0x00082e3e, 0x00b967c3, 0x02760889, 0x02864e66, 0x000c3a4f}}},
+ {X: Field{[10]uint32{0x02262519, 0x00a32678, 0x001d2a68, 0x02577a01, 0x0301858f, 0x02afbe75, 0x03874d46, 0x038122a8, 0x02df5990, 0x00252372}}, Y: Field{[10]uint32{0x0347d57e, 0x028b2b94, 0x031d2cbb, 0x03bef4bb, 0x01df9154, 0x012c6f09, 0x0128a322, 0x03965f57, 0x002537f6, 0x00392469}}},
+ {X: Field{[10]uint32{0x017c77ab, 0x00a2a28f, 0x03a15703, 0x03d6b02f, 0x03fb224c, 0x0080bb0d, 0x007b48f8, 0x01b05a27, 0x014450c7, 0x001e5890}}, Y: Field{[10]uint32{0x01b83437, 0x03e96ca7, 0x02c5760a, 0x00147c12, 0x0312507a, 0x00fbdbda, 0x01c1fc13, 0x02d1d835, 0x010ec4ff, 0x000402d8}}},
+ {X: Field{[10]uint32{0x03ec47ca, 0x0342144d, 0x0047bb0d, 0x01c896e2, 0x005a1697, 0x01364552, 0x01b16064, 0x012d52c5, 0x00783496, 0x000d4502}}, Y: Field{[10]uint32{0x02293311, 0x03456837, 0x0378b7e7, 0x01f05708, 0x006039e7, 0x03a049ff, 0x01652c48, 0x00151238, 0x03b20562, 0x003bc2be}}},
+ {X: Field{[10]uint32{0x03527eaf, 0x010f4fde, 0x007b4429, 0x03ae37de, 0x0193e947, 0x0362f152, 0x01ce2c9d, 0x00f92f1e, 0x00ad6b48, 0x0034f30c}}, Y: Field{[10]uint32{0x02ede0a4, 0x00d36c13, 0x00630afb, 0x018a40d6, 0x023c2ad4, 0x03e5422b, 0x005e9be8, 0x009e3627, 0x0222d827, 0x0022cde2}}},
+ {X: Field{[10]uint32{0x00847610, 0x016e83fd, 0x03649397, 0x00f6e44f, 0x032b2982, 0x03fbf822, 0x01c78fcb, 0x00a18338, 0x00478073, 0x00058936}}, Y: Field{[10]uint32{0x00078575, 0x01b8a901, 0x024c8cc0, 0x03d4a0af, 0x02896878, 0x03367532, 0x014448c6, 0x0240f824, 0x00f9b6da, 0x001a1947}}},
+ {X: Field{[10]uint32{0x03c61cd4, 0x01ed3f57, 0x007da6df, 0x012d6bc8, 0x00519247, 0x00f98aa6, 0x002c9563, 0x02a289a4, 0x000da955, 0x001ccf3a}}, Y: Field{[10]uint32{0x01c5ea1d, 0x019cef07, 0x00578c54, 0x03808079, 0x023e1ef8, 0x036e7f33, 0x01a4d8b8, 0x037df521, 0x022bd2ba, 0x003d50d6}}},
+ {X: Field{[10]uint32{0x001c045c, 0x01637eae, 0x02699ef2, 0x002485c7, 0x038966c5, 0x02f4ed27, 0x01a1c33b, 0x0141933c, 0x00125494, 0x00057651}}, Y: Field{[10]uint32{0x03e4070d, 0x01eefa7b, 0x00685fc3, 0x02eb3aff, 0x03434800, 0x00ee105d, 0x035137b7, 0x00f9c8d3, 0x030b6946, 0x00355bac}}},
+ {X: Field{[10]uint32{0x00717940, 0x00e16674, 0x00aaaac1, 0x01f274ae, 0x031c2141, 0x0339c349, 0x012136e5, 0x0399d6d8, 0x00f2ec9d, 0x0028743f}}, Y: Field{[10]uint32{0x0197a629, 0x004b4e70, 0x033d5192, 0x029501c3, 0x02641462, 0x002599fc, 0x02907373, 0x028f2acb, 0x0350bcb5, 0x003b75df}}},
+ {X: Field{[10]uint32{0x00b36980, 0x028dccc7, 0x01c06c7c, 0x037ba091, 0x01a790ba, 0x03e136fa, 0x000c0735, 0x0233315e, 0x0215c0af, 0x00388bef}}, Y: Field{[10]uint32{0x0131da06, 0x0341b5df, 0x0399be43, 0x00552591, 0x03a38289, 0x03d4e869, 0x03430a69, 0x03583222, 0x03abad5c, 0x0002a156}}},
+ {X: Field{[10]uint32{0x02cfa9b3, 0x02514891, 0x02aa7400, 0x00e51c13, 0x0369635e, 0x004557d7, 0x0213473c, 0x03a3883b, 0x01dd9860, 0x000c4424}}, Y: Field{[10]uint32{0x006d8374, 0x003c2c4a, 0x02685bd8, 0x02993fbb, 0x00871ec5, 0x02301a0c, 0x011f0478, 0x03c13fff, 0x016f87d1, 0x0019b6d9}}},
+ {X: Field{[10]uint32{0x02c2dbdf, 0x01f508cb, 0x00078186, 0x02d16a4d, 0x00883928, 0x00f9ab09, 0x01c0442d, 0x02fa26cc, 0x0104d301, 0x000d307f}}, Y: Field{[10]uint32{0x0273abee, 0x008615ee, 0x0043dc53, 0x03bad21d, 0x02d57f1c, 0x0005d04d, 0x03d46f73, 0x006d6552, 0x0285e97b, 0x00025051}}},
+ {X: Field{[10]uint32{0x009b8d63, 0x02979ac1, 0x00affcc2, 0x02aef342, 0x028d13f3, 0x015fad0a, 0x014de5b5, 0x01c07070, 0x025d6b54, 0x003c867a}}, Y: Field{[10]uint32{0x000766d1, 0x00a58a90, 0x03fb8d8c, 0x00f01ec9, 0x01f4b08d, 0x03333dac, 0x03af4544, 0x0102c3dc, 0x0157e83d, 0x00132e56}}},
+ {X: Field{[10]uint32{0x01a0b448, 0x01a4491a, 0x02708723, 0x0242f298, 0x02543a54, 0x03d17789, 0x03683db8, 0x03eeaac7, 0x000f74a8, 0x0035ee1d}}, Y: Field{[10]uint32{0x02a4593b, 0x0380c57a, 0x009b3411, 0x017b4f01, 0x02ff15db, 0x02b51c5f, 0x0010f337, 0x0324bb84, 0x028128d9, 0x003e9de5}}},
+ {X: Field{[10]uint32{0x02a824bf, 0x0134c246, 0x014289fe, 0x00caaf76, 0x02ad5bcd, 0x00e8ccd7, 0x02f7c98d, 0x01bc3be1, 0x00222f8f, 0x000cb4c7}}, Y: Field{[10]uint32{0x022e1661, 0x03452e11, 0x02961118, 0x0279bc9b, 0x022e6dac, 0x016e7876, 0x00d3d791, 0x015b8e73, 0x02f58921, 0x0017cc0c}}},
+ {X: Field{[10]uint32{0x018347b5, 0x03e1b2f0, 0x012c4340, 0x01f35656, 0x028793d7, 0x03660c7a, 0x0045a155, 0x02cc99c4, 0x0371914a, 0x001d187c}}, Y: Field{[10]uint32{0x00092ff6, 0x0211ecf3, 0x02ea6b39, 0x03d43261, 0x002eee1f, 0x02a91095, 0x01ddcae0, 0x02fb032f, 0x02238b96, 0x0023b02e}}},
+ {X: Field{[10]uint32{0x03b2b2d6, 0x01a62eb5, 0x0053d287, 0x00b0f99d, 0x026d716b, 0x028e081a, 0x0356a25a, 0x021801d0, 0x02db1df1, 0x003b81e6}}, Y: Field{[10]uint32{0x001c8c1e, 0x02b11e7b, 0x00e25eba, 0x026bc131, 0x02a44698, 0x03317e7d, 0x01f37e0e, 0x02f97131, 0x012aafe3, 0x00237090}}},
+ {X: Field{[10]uint32{0x029da6b5, 0x036185ae, 0x01dc72bf, 0x00c61d32, 0x03e65de3, 0x03b9883d, 0x03b18302, 0x020fc119, 0x03e447ec, 0x0005bb24}}, Y: Field{[10]uint32{0x01b0674d, 0x019de389, 0x01713962, 0x01a94392, 0x039d5818, 0x02960128, 0x028c2a7c, 0x03ed0343, 0x01150e62, 0x0017918c}}},
+ {X: Field{[10]uint32{0x0137bd99, 0x02581975, 0x02aa485b, 0x025fe62d, 0x03d88558, 0x03e9c2da, 0x0178290a, 0x03dbc0e2, 0x0180c245, 0x003aa97e}}, Y: Field{[10]uint32{0x02dc07dc, 0x00104093, 0x0267fb18, 0x0275f9ba, 0x00d78486, 0x03265189, 0x02528391, 0x00b82066, 0x013e292c, 0x003d97d7}}},
+ {X: Field{[10]uint32{0x01a49f51, 0x0312dacd, 0x0342ea96, 0x021dc544, 0x0158ae04, 0x028090e6, 0x02ee1910, 0x0304c9a4, 0x0007544a, 0x0001e325}}, Y: Field{[10]uint32{0x00a3ddb4, 0x019d7c65, 0x00d2462b, 0x0160f019, 0x00fa1fbd, 0x00e6979a, 0x00047955, 0x026e1755, 0x019169eb, 0x003cf80c}}},
+ {X: Field{[10]uint32{0x002857a5, 0x015e365c, 0x00688726, 0x02b9e9bf, 0x0001cdc8, 0x00c6ba80, 0x01cd8384, 0x029dc05b, 0x03e219a1, 0x001253d2}}, Y: Field{[10]uint32{0x000d562c, 0x012c0c62, 0x02d6e55f, 0x00c35d9f, 0x02f925ce, 0x038dae8a, 0x03a7f075, 0x0297cce6, 0x02969283, 0x0010890a}}},
+ {X: Field{[10]uint32{0x001fe9b5, 0x03079997, 0x0270ebf4, 0x03a963ea, 0x01d28211, 0x0113a952, 0x007f2f51, 0x0361b1af, 0x00030da6, 0x0029662a}}, Y: Field{[10]uint32{0x01864e6b, 0x009b6f4b, 0x0386a100, 0x02d96cd7, 0x0023fc63, 0x001cdebb, 0x00b4a714, 0x00b0c1f9, 0x016f8482, 0x000812d7}}},
+ {X: Field{[10]uint32{0x00595997, 0x02b70f96, 0x00a184db, 0x003c495c, 0x00208f02, 0x036fabfb, 0x0192f5f2, 0x00ad7424, 0x02365abb, 0x00310645}}, Y: Field{[10]uint32{0x00fa9913, 0x01ba5ad6, 0x03fc0ed1, 0x01143cd2, 0x01d5caf9, 0x02261262, 0x01245b32, 0x01fbe927, 0x0351d008, 0x00013c50}}},
+ {X: Field{[10]uint32{0x00742881, 0x01ce9545, 0x02acfe4c, 0x034b828d, 0x0392a2e0, 0x0280ef16, 0x0324604d, 0x03e91d69, 0x0063a586, 0x00210758}}, Y: Field{[10]uint32{0x028d6154, 0x00db7806, 0x0169ce7a, 0x0359d130, 0x00e62562, 0x01d50da6, 0x004f9a1c, 0x0167a064, 0x03f59c06, 0x0001ce19}}},
+ {X: Field{[10]uint32{0x030e20d5, 0x004ab135, 0x03e4ded1, 0x020424a2, 0x03282b33, 0x0226f78b, 0x0026947f, 0x01c74dd8, 0x03399a69, 0x0017a56e}}, Y: Field{[10]uint32{0x02012865, 0x00e131d1, 0x0238b161, 0x03b5f62e, 0x01a99c9a, 0x004c4ddd, 0x03fc7118, 0x00216fba, 0x03366809, 0x000e7c8f}}},
+ {X: Field{[10]uint32{0x00ef2f66, 0x011c6f28, 0x01d8bf99, 0x0192d4c5, 0x025ec075, 0x027f65d3, 0x0039f8a9, 0x023f51db, 0x001a5394, 0x000db919}}, Y: Field{[10]uint32{0x014c78fc, 0x01473d5a, 0x023e06fd, 0x0124ff55, 0x0056ea13, 0x01726aa5, 0x00227b08, 0x013ae059, 0x031b1abe, 0x00349092}}},
+ {X: Field{[10]uint32{0x0179f726, 0x02c9f0b1, 0x0114faea, 0x01085c3a, 0x00f56438, 0x0141e907, 0x00191a2f, 0x02eeca43, 0x001ea7bf, 0x0000cd96}}, Y: Field{[10]uint32{0x02fda224, 0x03372af4, 0x01e0ef3d, 0x00504334, 0x0391f7ab, 0x01b95acc, 0x0252129b, 0x0386fa64, 0x0168595f, 0x003ab448}}},
+ {X: Field{[10]uint32{0x03d43ede, 0x01d09c1a, 0x010c4849, 0x0097b5a2, 0x00037810, 0x03c03b21, 0x032634fc, 0x035ada87, 0x0016dadf, 0x0022ae26}}, Y: Field{[10]uint32{0x01cdd24e, 0x011ea44a, 0x0045858a, 0x0270fa26, 0x03503d45, 0x018904db, 0x02654aef, 0x03428113, 0x0309f2f6, 0x001bf73b}}},
+ {X: Field{[10]uint32{0x00c5fb94, 0x0100a12e, 0x032544bb, 0x023a2b3f, 0x0220b093, 0x00a67f2a, 0x033344d9, 0x0315de04, 0x01a746c9, 0x00078cfc}}, Y: Field{[10]uint32{0x03f3b3b6, 0x029f4815, 0x03010e33, 0x0083c740, 0x032306d3, 0x03493b7f, 0x008ed618, 0x006ceaa7, 0x00257dd1, 0x00018198}}},
+ {X: Field{[10]uint32{0x00f08f31, 0x000d87f6, 0x00fcfa41, 0x0330632f, 0x020ed1f4, 0x01e77482, 0x03f30ded, 0x0306dfb9, 0x01dcb3ce, 0x00216df0}}, Y: Field{[10]uint32{0x02999511, 0x03b4f0d7, 0x02633c6f, 0x0062575e, 0x00fcafad, 0x02a211fd, 0x01048f25, 0x03750fce, 0x01cdd026, 0x000f662a}}},
+ {X: Field{[10]uint32{0x01ac5f51, 0x00a00198, 0x03af872a, 0x00ee1e29, 0x017fbe9a, 0x0175b517, 0x035f4b12, 0x01194249, 0x03bd8d9e, 0x000a77e7}}, Y: Field{[10]uint32{0x0227d84b, 0x021dbaca, 0x01e55cd2, 0x02187006, 0x03da61dc, 0x01e44e7f, 0x02d88621, 0x016981b8, 0x03e99c77, 0x0002d313}}},
+ {X: Field{[10]uint32{0x01fce252, 0x00acb912, 0x0105c808, 0x028bdda0, 0x03dfe58c, 0x02abe2b7, 0x02a6e671, 0x0211e8ff, 0x02e06b0a, 0x00282c72}}, Y: Field{[10]uint32{0x02296cf2, 0x0012540e, 0x030e650f, 0x0060d2bf, 0x026b72da, 0x01e9a8a3, 0x00b19d91, 0x002563b1, 0x0102edde, 0x002b90d0}}},
+ {X: Field{[10]uint32{0x00e121e5, 0x00fcb930, 0x03e4ba11, 0x02cec84c, 0x01b499df, 0x03a100a5, 0x01c7ff67, 0x03a684db, 0x02afb9b3, 0x00013a33}}, Y: Field{[10]uint32{0x0326683c, 0x01f398a8, 0x00502b82, 0x01a98d18, 0x01422c08, 0x0133971e, 0x008f6d53, 0x01b5e92d, 0x00118c8b, 0x0033c85d}}},
+ {X: Field{[10]uint32{0x0389a33b, 0x01c970ad, 0x00919f42, 0x01a26804, 0x000a5076, 0x028bda42, 0x03b81c7c, 0x026dbd6b, 0x00e047e1, 0x00349291}}, Y: Field{[10]uint32{0x03ea8fa3, 0x03b105eb, 0x0244d2cd, 0x01a21ee0, 0x01013f99, 0x0303c71a, 0x03db50f1, 0x01be3f18, 0x01591b46, 0x001bee35}}},
+ {X: Field{[10]uint32{0x023b35d4, 0x013a63a3, 0x0377b510, 0x00a2aeea, 0x00001edd, 0x032e6561, 0x01fdfcfa, 0x02737492, 0x006a7a6c, 0x003a8058}}, Y: Field{[10]uint32{0x023ea98d, 0x01948622, 0x03700cfd, 0x012f0a08, 0x01b7d449, 0x01e9ecf3, 0x03fe369f, 0x004ac33e, 0x00908c73, 0x000c8abd}}},
+ {X: Field{[10]uint32{0x00e2131f, 0x0065b7a3, 0x031be4ad, 0x036317a8, 0x01252007, 0x03ae5994, 0x02328655, 0x007229b1, 0x01bf2b66, 0x002be2b7}}, Y: Field{[10]uint32{0x01749700, 0x03ef36dc, 0x02ac8f3d, 0x021a0389, 0x03252081, 0x0025a0da, 0x0034eafd, 0x0217d4a8, 0x027c029b, 0x0019d279}}},
+ {X: Field{[10]uint32{0x00f45889, 0x03c38d14, 0x0215e722, 0x036af3f2, 0x01a674a3, 0x0383ec59, 0x00516d47, 0x01b281b3, 0x02197456, 0x000038eb}}, Y: Field{[10]uint32{0x030bd6a4, 0x0029cbba, 0x01f53342, 0x0121d3e0, 0x000de97e, 0x03d341cc, 0x0217f07b, 0x01440458, 0x027e4531, 0x000abaaf}}},
+ {X: Field{[10]uint32{0x0397e246, 0x03aa33b4, 0x00802075, 0x03cfb496, 0x0301993f, 0x03b478f8, 0x036993ff, 0x0265c873, 0x0355313d, 0x001647b8}}, Y: Field{[10]uint32{0x03e5d196, 0x0263c692, 0x022bdeee, 0x014f4972, 0x001ff0b0, 0x011831e4, 0x00fc4775, 0x00c2fa98, 0x018a113c, 0x002c3a95}}},
+ {X: Field{[10]uint32{0x01b52984, 0x033c0c95, 0x00945077, 0x0391ec21, 0x01fa8584, 0x02363698, 0x01aa9731, 0x013127c6, 0x0155fda5, 0x00044e5b}}, Y: Field{[10]uint32{0x03ea57a4, 0x019efaa4, 0x03be4c57, 0x02c06c95, 0x004ff536, 0x01efad1d, 0x01d5833a, 0x02b004a2, 0x00a8cd45, 0x0026631d}}},
+ {X: Field{[10]uint32{0x0017aa7a, 0x010055f8, 0x00b64055, 0x0151a1d5, 0x038dcdfd, 0x02783102, 0x0000738c, 0x01685e40, 0x021ba39c, 0x000f174a}}, Y: Field{[10]uint32{0x001bd257, 0x01e72932, 0x00f6661f, 0x027f749c, 0x000f9b8b, 0x01bf062e, 0x014de739, 0x00d38be7, 0x0279995a, 0x002c8a10}}},
+ {X: Field{[10]uint32{0x013cc030, 0x03be285e, 0x00078425, 0x02bec12b, 0x03fbc395, 0x027cba70, 0x0299a729, 0x0037be8e, 0x00b8a60a, 0x003321c1}}, Y: Field{[10]uint32{0x001f1b13, 0x02dd38eb, 0x01c4e940, 0x013f12f3, 0x00f395b7, 0x02cd1fe3, 0x01e0862d, 0x005e2074, 0x0039feed, 0x002f7518}}},
+ {X: Field{[10]uint32{0x0089b197, 0x010466ca, 0x02e7ea20, 0x03f3314f, 0x017dd4de, 0x032b4a6e, 0x01777ac5, 0x0156ab36, 0x00f7ea85, 0x00314cf9}}, Y: Field{[10]uint32{0x03596096, 0x0383d17a, 0x03a26bb8, 0x02ed292c, 0x02d9b925, 0x03c690e8, 0x02fb6242, 0x037d0a68, 0x016bc5ef, 0x001bc289}}},
+ {X: Field{[10]uint32{0x03da6593, 0x01b5238c, 0x03bbcf56, 0x00d3bb01, 0x0269ba8c, 0x000f325a, 0x01f6d08d, 0x01f5bc42, 0x00f2ccb2, 0x0003053e}}, Y: Field{[10]uint32{0x03dc3a38, 0x02192444, 0x035e6c0e, 0x03742601, 0x0075b740, 0x03f870a1, 0x00473e16, 0x0263dff5, 0x02923bb3, 0x0030d675}}},
+ {X: Field{[10]uint32{0x0390e6ef, 0x007dcb82, 0x0321ce44, 0x03b5d7e3, 0x024c9739, 0x0285c456, 0x0024789f, 0x029142eb, 0x03046bc6, 0x0029b2f0}}, Y: Field{[10]uint32{0x03fa9b9f, 0x00abf585, 0x00313986, 0x01cf1c18, 0x0360ceb5, 0x0303e568, 0x030619e2, 0x02226ec4, 0x03f4680e, 0x000086b9}}},
+ {X: Field{[10]uint32{0x0143cc38, 0x02ce7e67, 0x01ce6344, 0x00099f44, 0x03130a3c, 0x0166c72b, 0x03b86c13, 0x02249faf, 0x019a02c4, 0x000d1f5b}}, Y: Field{[10]uint32{0x01c74448, 0x027fc78c, 0x00cb1268, 0x02da1e1c, 0x006d565a, 0x03b24bc2, 0x0187f6ec, 0x01493472, 0x0361a353, 0x00183a9f}}},
+ {X: Field{[10]uint32{0x0372656a, 0x03bdd0de, 0x008cf855, 0x02c6fcc7, 0x02d47c67, 0x017bd619, 0x037dcb37, 0x02e3660f, 0x01d2181d, 0x00369951}}, Y: Field{[10]uint32{0x03dc208a, 0x02a092dd, 0x03d897fe, 0x006d24d6, 0x01667305, 0x015a0317, 0x038f07ce, 0x01e29e79, 0x0315ab68, 0x00126e59}}},
+ {X: Field{[10]uint32{0x03eb1111, 0x016652e3, 0x03146b9d, 0x02517595, 0x03ec25d6, 0x00271b79, 0x03b81483, 0x00b2c684, 0x03cc9d01, 0x003101d1}}, Y: Field{[10]uint32{0x020fa2d4, 0x03a0c0df, 0x014e1bb5, 0x0055ae54, 0x025db936, 0x032d2255, 0x01e6caf2, 0x0284bf1b, 0x00753be2, 0x00172958}}},
+ {X: Field{[10]uint32{0x037f3502, 0x000fbd00, 0x03d34c82, 0x01c4cd22, 0x00338c7f, 0x03a1c39e, 0x033a610b, 0x025e6333, 0x00ec82c9, 0x001390b2}}, Y: Field{[10]uint32{0x03606437, 0x0111cda4, 0x03cc40a9, 0x01133152, 0x01a54921, 0x01de0cd0, 0x028b33a0, 0x03ee4a9e, 0x034ee5e0, 0x001d5c75}}},
+ {X: Field{[10]uint32{0x030dedea, 0x008a86ce, 0x03432875, 0x036c3219, 0x02d251ca, 0x03dc2c8d, 0x02ba2e1a, 0x01abe08e, 0x037089bc, 0x000ddd6a}}, Y: Field{[10]uint32{0x01018cf7, 0x03658502, 0x02a2c42a, 0x01efde9d, 0x03ac8db1, 0x00a33e9f, 0x039736a8, 0x002762f2, 0x0107bcfa, 0x002f94b4}}},
+ {X: Field{[10]uint32{0x02f74e26, 0x01678fa0, 0x03a88469, 0x01744c52, 0x02d95459, 0x034f5dd6, 0x014fb814, 0x03b0de76, 0x00bf7e34, 0x0033b8c7}}, Y: Field{[10]uint32{0x003b1c6d, 0x01228071, 0x014d80f4, 0x002f853b, 0x020149ef, 0x02f3dafe, 0x03947ae2, 0x0162709a, 0x0214c06b, 0x0023f592}}},
+ {X: Field{[10]uint32{0x00b47986, 0x00680742, 0x02befcdc, 0x03f516c7, 0x02fddb58, 0x03ad5193, 0x036ea6a4, 0x0245d867, 0x02ea09b6, 0x002d3e7a}}, Y: Field{[10]uint32{0x0200682a, 0x02a2b01c, 0x0142eb24, 0x03004b29, 0x038bb131, 0x03185c9b, 0x033a4f18, 0x0152c1d0, 0x01925b5a, 0x000e7972}}},
+ {X: Field{[10]uint32{0x02bcc60e, 0x0241de4b, 0x00cc1b77, 0x016bf0f7, 0x0284e251, 0x019b4c33, 0x0179a489, 0x03e48e80, 0x01fc3d2d, 0x0035098f}}, Y: Field{[10]uint32{0x02208d54, 0x0193848a, 0x00f7fae1, 0x01d82b5b, 0x0189e127, 0x01614f38, 0x0230d629, 0x023facc3, 0x0307a0f7, 0x0018b7eb}}},
+ {X: Field{[10]uint32{0x017612c4, 0x00fbb6a2, 0x01e42223, 0x0302928b, 0x000032ac, 0x024c215f, 0x00d35eb6, 0x0299693e, 0x0124820f, 0x0012115d}}, Y: Field{[10]uint32{0x01bd0f77, 0x01daaa92, 0x00a9ae7a, 0x01f6cb58, 0x03dc6cc0, 0x03e870b9, 0x033c38a1, 0x01e7661c, 0x00ab3679, 0x000969d2}}},
+ {X: Field{[10]uint32{0x011cceda, 0x0285d9f0, 0x0123f367, 0x0246454a, 0x02045e19, 0x00abf7f0, 0x01644f3a, 0x007cb2c4, 0x03188110, 0x0037fbbb}}, Y: Field{[10]uint32{0x029a7517, 0x020eb826, 0x03dff16a, 0x039d2d2e, 0x00c390bd, 0x0259e4f0, 0x0020bab3, 0x03810be5, 0x0056cf1d, 0x003b3edc}}},
+ {X: Field{[10]uint32{0x00fae859, 0x00b7e0ee, 0x00ed36c8, 0x02f1818b, 0x035d89bc, 0x007ce260, 0x0173f44e, 0x03e0dcf1, 0x02b17543, 0x001b5fbd}}, Y: Field{[10]uint32{0x02712d10, 0x02c64372, 0x000bbf74, 0x02566cb6, 0x00c521a0, 0x01ffaa6f, 0x02fa10c5, 0x02261b7f, 0x02c33543, 0x00335143}}},
+ {X: Field{[10]uint32{0x0204541f, 0x0096bd9b, 0x007035af, 0x024c8955, 0x03f3c88b, 0x02647cb8, 0x00500d3b, 0x029689a1, 0x01d59102, 0x0039d581}}, Y: Field{[10]uint32{0x03fad125, 0x0026438a, 0x00693836, 0x0314c22c, 0x014f729a, 0x0211cf8c, 0x039b4872, 0x007b9502, 0x0354a8f7, 0x003d7151}}},
+ {X: Field{[10]uint32{0x01ed620c, 0x010ffbec, 0x008457dd, 0x0182af8e, 0x019a0c2e, 0x014082f2, 0x02be453d, 0x03ea81a8, 0x020f4c4d, 0x003ae619}}, Y: Field{[10]uint32{0x0099223e, 0x03d10400, 0x0131ce85, 0x022a5044, 0x00a0a7cd, 0x0349b348, 0x009af3ad, 0x02e14818, 0x00876d9c, 0x001b2e6a}}},
+ {X: Field{[10]uint32{0x00dba942, 0x0158f8ee, 0x00336dc3, 0x01a50622, 0x02215459, 0x024ac664, 0x039f2e68, 0x00534d64, 0x03027d85, 0x0004fa1e}}, Y: Field{[10]uint32{0x02b8adf1, 0x00355591, 0x02beb257, 0x0295a35a, 0x02ac2b9d, 0x02fc7a46, 0x01624114, 0x029b7b17, 0x03c68059, 0x003fbd68}}},
+ {X: Field{[10]uint32{0x01e5764a, 0x011245a4, 0x0308e7bf, 0x00dc7389, 0x0125424b, 0x016f9bf0, 0x0038f06a, 0x01bf805f, 0x0026e9fd, 0x003b858c}}, Y: Field{[10]uint32{0x016c62b2, 0x00c3682b, 0x02623e54, 0x03e856e5, 0x00f49ae3, 0x01c343d6, 0x0194ccc6, 0x0358710f, 0x010f255d, 0x0006b2c9}}},
+ {X: Field{[10]uint32{0x03af3d80, 0x00b976cc, 0x02799993, 0x010d4161, 0x031e626d, 0x030b7226, 0x01e3a750, 0x007935e3, 0x01ef9ad5, 0x002c9a3d}}, Y: Field{[10]uint32{0x0216e423, 0x03a51684, 0x01614003, 0x013f5064, 0x018cf0d3, 0x03077b80, 0x01f77d41, 0x02e7aec6, 0x014b3c99, 0x0017cc43}}},
+ {X: Field{[10]uint32{0x03c4750d, 0x03ff6ea4, 0x02ea3bf7, 0x0072a673, 0x002b02f0, 0x01b1eff9, 0x03ad85eb, 0x03c0d7a7, 0x03118a9d, 0x003fc1fc}}, Y: Field{[10]uint32{0x02d1f0d8, 0x00342633, 0x02ddd474, 0x0084538b, 0x01c1d294, 0x03b32eb7, 0x00440c38, 0x01628e97, 0x02d603e8, 0x0010e04d}}},
+ {X: Field{[10]uint32{0x02b526a1, 0x03a30f38, 0x01ebec16, 0x02783609, 0x02a4b9f6, 0x03ed962f, 0x006fd20f, 0x014a8d05, 0x0055c7c0, 0x002362e6}}, Y: Field{[10]uint32{0x03036758, 0x00b9fd18, 0x03ceb30e, 0x03fb9475, 0x004bcf50, 0x0213a935, 0x03af44fb, 0x01e7e49a, 0x01eedc2d, 0x00336d56}}},
+ {X: Field{[10]uint32{0x01a32b63, 0x0098c603, 0x031eba54, 0x033b2a46, 0x03e4b851, 0x01eb89b7, 0x029d472d, 0x02fc16fe, 0x035384df, 0x0014b6c2}}, Y: Field{[10]uint32{0x00a7b375, 0x012da761, 0x0279de92, 0x0240a1d5, 0x03b3180c, 0x01b6e7d5, 0x02baf66a, 0x0397508f, 0x017d050e, 0x00030ee6}}},
+ {X: Field{[10]uint32{0x03d43352, 0x0150efb2, 0x008c6fff, 0x030fcfe9, 0x007d0f29, 0x02024673, 0x01efd24e, 0x007698e5, 0x0090d3d5, 0x00398be5}}, Y: Field{[10]uint32{0x00cafa7d, 0x001eff67, 0x02f5170e, 0x01647c76, 0x02f342c8, 0x031a0a18, 0x002ca280, 0x01ac2c8b, 0x017ba487, 0x001b626b}}},
+ {X: Field{[10]uint32{0x02ab1193, 0x039f596a, 0x014fd6d8, 0x03d72dec, 0x011afa2f, 0x03ddf406, 0x03509c88, 0x0266d255, 0x022476b3, 0x001fcc3a}}, Y: Field{[10]uint32{0x037acaec, 0x03d2ffd8, 0x03e9880e, 0x02d9ec40, 0x01daff7b, 0x03d8c47a, 0x015389a5, 0x032530ec, 0x03d4b231, 0x003297bd}}},
+ {X: Field{[10]uint32{0x000b7a00, 0x0280d860, 0x01d9ac60, 0x02d28774, 0x03ef0fb7, 0x029b240f, 0x02210fad, 0x0053ed1a, 0x031e1d9f, 0x0014263f}}, Y: Field{[10]uint32{0x0117ddc0, 0x016c4cbf, 0x03e5362a, 0x01035837, 0x02b3ee1b, 0x01d50801, 0x00d37c6e, 0x0323e021, 0x0141d81f, 0x00025cc4}}},
+ {X: Field{[10]uint32{0x0378ad58, 0x00b20789, 0x01c96b9f, 0x03333911, 0x02e2f3c4, 0x0272fbe9, 0x0095be6b, 0x0144a9ca, 0x007de9ee, 0x000cade3}}, Y: Field{[10]uint32{0x00c8753c, 0x01c8dde5, 0x0275ba49, 0x0151eb88, 0x0073bb80, 0x038a0983, 0x03c3896e, 0x01c78cbb, 0x01f513df, 0x003b8612}}},
+ {X: Field{[10]uint32{0x0147a4f7, 0x01605541, 0x01fc074b, 0x03c209a7, 0x00e37d50, 0x01f1cac3, 0x036eef2a, 0x027ef341, 0x00fddc8e, 0x0038b2dd}}, Y: Field{[10]uint32{0x005cc4a4, 0x006af2c0, 0x012be864, 0x038d848b, 0x03addea9, 0x01cdbac2, 0x022df062, 0x034891e9, 0x02d71c9d, 0x0034ea8b}}},
+ {X: Field{[10]uint32{0x010ae3a8, 0x00366734, 0x00b141be, 0x00d7c8d7, 0x0026009a, 0x01aacd5d, 0x01c29949, 0x035efb6b, 0x007566d4, 0x00210e11}}, Y: Field{[10]uint32{0x02dd791f, 0x00109acb, 0x01c4f239, 0x01e4198c, 0x0334ef0d, 0x01ab4cc1, 0x0101ac5e, 0x00293697, 0x02091698, 0x00313840}}},
+ {X: Field{[10]uint32{0x0311d67e, 0x019720b1, 0x00b878ab, 0x0311bd98, 0x030587d9, 0x01b0c221, 0x0184c6fc, 0x00080e6d, 0x0088b894, 0x001058b5}}, Y: Field{[10]uint32{0x00852649, 0x011eb968, 0x0295dbda, 0x00ae12d3, 0x03c1732f, 0x03ee28eb, 0x02f22c25, 0x00a27ddd, 0x02903236, 0x0019c58f}}},
+ {X: Field{[10]uint32{0x035f683d, 0x02e9292f, 0x010684f3, 0x01ebb0f9, 0x00175d76, 0x0373d53f, 0x0389bfd2, 0x003cd3c3, 0x03a84caf, 0x000feb4f}}, Y: Field{[10]uint32{0x03e61826, 0x0083bf37, 0x012a53fa, 0x01cb9f43, 0x030cf718, 0x031c629c, 0x030ca647, 0x0101eecb, 0x007cb6cc, 0x0003346f}}},
+ {X: Field{[10]uint32{0x02b1a86b, 0x0254cbeb, 0x0398f1c6, 0x02fc4dc1, 0x02c1fb84, 0x00174205, 0x00c1a7ce, 0x01e8015a, 0x0200a300, 0x0019d3c9}}, Y: Field{[10]uint32{0x020d38a5, 0x03bb31a7, 0x02259e09, 0x03682c60, 0x0370db57, 0x00011602, 0x0343b257, 0x00cecfb7, 0x01f9413f, 0x000a6748}}},
+ {X: Field{[10]uint32{0x02e9f08f, 0x034a6f57, 0x00bcff87, 0x031a49c5, 0x023d82d6, 0x007ecec9, 0x01b815ad, 0x01d2aee0, 0x01a54ade, 0x0034cbd3}}, Y: Field{[10]uint32{0x033eea87, 0x0105a442, 0x01d582fc, 0x0114d4d6, 0x0382e14f, 0x00165c1d, 0x0299016c, 0x014ee5a3, 0x02738b8e, 0x003e50a7}}},
+ {X: Field{[10]uint32{0x03ce3ff6, 0x02553c78, 0x008cb1ed, 0x00c7dcac, 0x036fbb69, 0x00d61174, 0x01936571, 0x021555b9, 0x02704353, 0x000c3939}}, Y: Field{[10]uint32{0x0388db7b, 0x0169567a, 0x0340dc69, 0x00d769c1, 0x010a878d, 0x00eef26c, 0x01935011, 0x02618e12, 0x03ce6198, 0x00118be6}}},
+ {X: Field{[10]uint32{0x00cad297, 0x01c6c135, 0x0180bf19, 0x0042c079, 0x027f3dcd, 0x00c3937b, 0x02829043, 0x0330c011, 0x02003c51, 0x002f8818}}, Y: Field{[10]uint32{0x01ccb9bc, 0x0163b5cb, 0x002a0d55, 0x0242415a, 0x01b1c610, 0x01387195, 0x033d48a7, 0x03950a15, 0x03c49d61, 0x00188622}}},
+ {X: Field{[10]uint32{0x035df04a, 0x026167ff, 0x01993c41, 0x0298077d, 0x01cb6e84, 0x030abc84, 0x01e0fb9a, 0x01147b4a, 0x0023ace3, 0x0024c511}}, Y: Field{[10]uint32{0x0037b47c, 0x00a9b44c, 0x039d1d90, 0x0093dcae, 0x00f10652, 0x01e6480e, 0x031a3f9d, 0x01097d71, 0x03b164c3, 0x001f0437}}},
+ {X: Field{[10]uint32{0x017b112c, 0x01906305, 0x012a7cb6, 0x00171edf, 0x01978292, 0x030d3ee0, 0x01ca26d6, 0x032f73c8, 0x00044f5f, 0x002c057e}}, Y: Field{[10]uint32{0x023a1d5f, 0x03a85153, 0x008c1d3a, 0x01bea8c2, 0x003b3cdc, 0x037e357e, 0x00a655b2, 0x03a04dd1, 0x02086d04, 0x002ae307}}},
+ {X: Field{[10]uint32{0x01a21b52, 0x03cabcd0, 0x000d36b3, 0x03795e85, 0x024f8a18, 0x0291968e, 0x00868117, 0x025f6279, 0x01da649d, 0x00357a78}}, Y: Field{[10]uint32{0x0327447a, 0x017a164b, 0x0080d895, 0x01708901, 0x03169346, 0x03537436, 0x01a13cc1, 0x03b5cc44, 0x0037f391, 0x00132c11}}},
+ {X: Field{[10]uint32{0x036966bb, 0x0294c5b4, 0x02d6f996, 0x0335cb85, 0x01983005, 0x02e6490e, 0x03f8ed77, 0x03281976, 0x01047dd7, 0x0034eb90}}, Y: Field{[10]uint32{0x0125ac46, 0x00370534, 0x00a614b1, 0x035f7c2b, 0x0164f8cd, 0x0105f1b6, 0x010f0303, 0x03aec8a8, 0x0321ad22, 0x002f46ba}}},
+ {X: Field{[10]uint32{0x0097b065, 0x002be1f2, 0x037b49f8, 0x002a0b8d, 0x0087197d, 0x02003c29, 0x026cdd22, 0x03e563f1, 0x0363d885, 0x00118f89}}, Y: Field{[10]uint32{0x02f7ca7f, 0x026499c7, 0x03508b79, 0x0187ef25, 0x0326b80c, 0x0137818a, 0x03a311a9, 0x003f5f7c, 0x00db0e5d, 0x002ffbeb}}},
+ {X: Field{[10]uint32{0x00641917, 0x0377f244, 0x0347c83c, 0x03102ff9, 0x0158e597, 0x02d8fb0c, 0x0353ec1b, 0x00159f1b, 0x01fd127c, 0x001e617f}}, Y: Field{[10]uint32{0x0332ed03, 0x016f559f, 0x0308703a, 0x00783b19, 0x0124ed29, 0x038a26bb, 0x0325fe1d, 0x0218bbca, 0x02daf3d9, 0x00180f04}}},
+ {X: Field{[10]uint32{0x027703e9, 0x03c550f6, 0x02d0ed5f, 0x0272e0f4, 0x019e74c5, 0x003ab1fe, 0x01d24941, 0x038e76cb, 0x016b5f76, 0x001d286b}}, Y: Field{[10]uint32{0x00e0db08, 0x00dff5e4, 0x00c33d57, 0x01a250ba, 0x00093e09, 0x00c6efa8, 0x0193d836, 0x0318f358, 0x03ef18c9, 0x00331855}}},
+ {X: Field{[10]uint32{0x022f6da3, 0x034225ac, 0x03463a71, 0x00b1c9d1, 0x03c9bab4, 0x02e866df, 0x01416664, 0x01d7d80b, 0x02507033, 0x000c1a0a}}, Y: Field{[10]uint32{0x03a22ff8, 0x0053665d, 0x0273f177, 0x0383c672, 0x036290d0, 0x00c474c5, 0x00f39e7f, 0x02d3e9b2, 0x00f6b018, 0x00154f81}}},
+ {X: Field{[10]uint32{0x0369ef57, 0x01b04d1d, 0x0352b1ee, 0x00ac9193, 0x03654e7a, 0x03e9e565, 0x03791efe, 0x0357c9b0, 0x00f0d7c0, 0x00278856}}, Y: Field{[10]uint32{0x01008373, 0x03efc98a, 0x038509e2, 0x023bcd68, 0x029ffd7c, 0x03e9dd8b, 0x003a3481, 0x014fc240, 0x00dd1b90, 0x0001c4bf}}},
+ {X: Field{[10]uint32{0x02327d66, 0x0215fcef, 0x03ce7322, 0x019b8f13, 0x028172e5, 0x00094e30, 0x024029c2, 0x03273fae, 0x02989a43, 0x0005db89}}, Y: Field{[10]uint32{0x03a4b1c3, 0x01e0d307, 0x009ee7b4, 0x007d3bb8, 0x019aefd3, 0x023710f0, 0x0270b487, 0x03ae1df4, 0x01d04b29, 0x003b6332}}},
+ {X: Field{[10]uint32{0x00374da8, 0x011e2314, 0x00f1b700, 0x00e4f7f1, 0x02cf1892, 0x00eb5d1f, 0x02bb89a1, 0x0079b9a2, 0x02fea377, 0x001d751b}}, Y: Field{[10]uint32{0x02a6bed8, 0x011c9961, 0x02e1a3ca, 0x008544d1, 0x00d7efc2, 0x02ce6a1a, 0x00b86fd2, 0x01d9e7f4, 0x010a9950, 0x0026148e}}},
+ {X: Field{[10]uint32{0x01605721, 0x00c67d91, 0x029345b7, 0x00114721, 0x032310fb, 0x0097db57, 0x0298c4c8, 0x02403fed, 0x00c67d64, 0x00202688}}, Y: Field{[10]uint32{0x00e286c1, 0x03e97cfe, 0x03e6a5eb, 0x03315258, 0x003d096c, 0x01fe8105, 0x02b06192, 0x01f88add, 0x0180d991, 0x0027a652}}},
+ {X: Field{[10]uint32{0x0172c180, 0x018d11be, 0x023528d5, 0x0073ca71, 0x03defece, 0x02b1c20f, 0x00500b4e, 0x03c453b5, 0x003a43f7, 0x0006ce24}}, Y: Field{[10]uint32{0x02f408f9, 0x02504676, 0x0272ad33, 0x01adbd76, 0x022708b2, 0x0354f792, 0x0353f77f, 0x002ba224, 0x01c931a6, 0x00100dbb}}},
+ {X: Field{[10]uint32{0x00feef23, 0x01b1621a, 0x0166df4e, 0x0338b41d, 0x03263458, 0x03e8fbf9, 0x00b4e8dd, 0x012e7aac, 0x01b6eb29, 0x00242a03}}, Y: Field{[10]uint32{0x03cf91e6, 0x031dba4b, 0x01681442, 0x02c9eef6, 0x035ee050, 0x0278a4da, 0x0321145d, 0x03c6361f, 0x039f9754, 0x001d4f22}}},
+ {X: Field{[10]uint32{0x036bea9b, 0x009751cd, 0x0146e6dc, 0x00152851, 0x023e6f36, 0x03d80d03, 0x01625460, 0x0166604b, 0x03844b70, 0x0030b203}}, Y: Field{[10]uint32{0x02a79c64, 0x02f5120e, 0x00f6123a, 0x029c0ad3, 0x0173b871, 0x0074ec6d, 0x03495b89, 0x03539c62, 0x020d68f4, 0x0021b285}}},
+ {X: Field{[10]uint32{0x028e7553, 0x00f38468, 0x01692a32, 0x038757f3, 0x012d00cf, 0x0067ec99, 0x03989d3f, 0x02d7cff7, 0x02744cf4, 0x00273d81}}, Y: Field{[10]uint32{0x0247759d, 0x003144f0, 0x0385dc30, 0x0038f116, 0x03edd0f3, 0x03eb5a18, 0x017b6a3c, 0x03f3056d, 0x03f7b973, 0x002051f2}}},
+ {X: Field{[10]uint32{0x02d82208, 0x023d6156, 0x005abce9, 0x0031d080, 0x02a6280b, 0x018364db, 0x0093fd60, 0x031ac969, 0x03a28742, 0x0015d223}}, Y: Field{[10]uint32{0x01a29574, 0x021e113c, 0x03921dc2, 0x03994084, 0x03af949a, 0x009ed1c2, 0x02dbe56c, 0x02fa9562, 0x02455073, 0x000c6cf2}}},
+ {X: Field{[10]uint32{0x0099447d, 0x02f17ad2, 0x00dc84ed, 0x005b1d63, 0x02d40ed6, 0x01d658f0, 0x00df2b8d, 0x02ef2372, 0x00be6be8, 0x003c44cf}}, Y: Field{[10]uint32{0x0252f50f, 0x02ee24fd, 0x016870cb, 0x018375e8, 0x0110bd3a, 0x0359f558, 0x014626d8, 0x02c8fd5c, 0x00472225, 0x0015ff09}}},
+ {X: Field{[10]uint32{0x03be89c0, 0x038105d6, 0x025050f4, 0x02ffcf90, 0x013f3d69, 0x00196ee0, 0x00989c79, 0x02f5e1fe, 0x02753301, 0x0025420f}}, Y: Field{[10]uint32{0x00b33482, 0x024fe925, 0x03c70cc5, 0x038055ac, 0x00ee4e92, 0x01dc1039, 0x017c73ca, 0x0037a518, 0x035ce7d1, 0x002112b6}}},
+ {X: Field{[10]uint32{0x005c75c6, 0x000110ef, 0x01973621, 0x02cd8f23, 0x038668c7, 0x03266bd8, 0x0176ed29, 0x0159d579, 0x0355cbb7, 0x0006a420}}, Y: Field{[10]uint32{0x032454a2, 0x02b48b8b, 0x03f27057, 0x001d2d13, 0x00a73538, 0x01589f60, 0x03787222, 0x01b8d4bd, 0x026c6e55, 0x0035d951}}},
+ {X: Field{[10]uint32{0x0349b648, 0x037cefbc, 0x01db4f04, 0x018f17cc, 0x038a2d1f, 0x02b65fe7, 0x0067308f, 0x010f56aa, 0x03740bd3, 0x0031648b}}, Y: Field{[10]uint32{0x027bd648, 0x014f251b, 0x00c4377f, 0x01108da9, 0x00da8118, 0x0362dd4b, 0x02605e50, 0x036fa204, 0x00687cfc, 0x001dec7c}}},
+ {X: Field{[10]uint32{0x02c95dc9, 0x00d10839, 0x017d9964, 0x00c458e2, 0x02055dcf, 0x006c2d9c, 0x011a4043, 0x000a5dda, 0x01969f91, 0x0019386c}}, Y: Field{[10]uint32{0x0222550c, 0x02538ca4, 0x0371ddce, 0x034873bc, 0x029bfb77, 0x0240d6d9, 0x027fa26a, 0x030f27ac, 0x00c7c11f, 0x00305bd8}}},
+ {X: Field{[10]uint32{0x03ce08de, 0x03edfa81, 0x01ce7808, 0x029d527a, 0x03c602f8, 0x00ccf74d, 0x0121bad3, 0x0113b5b1, 0x02766877, 0x0000cecb}}, Y: Field{[10]uint32{0x02988efd, 0x01444aa1, 0x038114c2, 0x032a9b79, 0x03d742e8, 0x03f7652f, 0x036c2437, 0x022ba573, 0x027fc8ed, 0x00386f3f}}},
+ {X: Field{[10]uint32{0x01e4f294, 0x011cef91, 0x0275c951, 0x003fca52, 0x0189fbf3, 0x01ed2b0c, 0x02310331, 0x0228730a, 0x034c866d, 0x00083c63}}, Y: Field{[10]uint32{0x02d0ea0e, 0x032ba074, 0x0358943f, 0x027dc5cf, 0x030fe852, 0x034defb9, 0x00883363, 0x03ded3f6, 0x03c9d08e, 0x00235a15}}},
+ {X: Field{[10]uint32{0x03b69a8b, 0x01105db5, 0x03befd14, 0x014d5190, 0x012df346, 0x038aa2e7, 0x02b4c685, 0x031c5a83, 0x03c944c9, 0x00134588}}, Y: Field{[10]uint32{0x0117be80, 0x0160e222, 0x02f7854f, 0x0357b654, 0x022b601b, 0x01bb0d25, 0x016bf6b9, 0x02b40fe6, 0x01fe8744, 0x00377c6e}}},
+ {X: Field{[10]uint32{0x01b079e0, 0x0343fd4f, 0x027e2d4a, 0x02937436, 0x014faad0, 0x016251e1, 0x00d6b368, 0x00a4b4a0, 0x00dbe8ab, 0x002a406c}}, Y: Field{[10]uint32{0x03298a9d, 0x00398391, 0x023b301d, 0x03829ac1, 0x00716bc5, 0x0079eb99, 0x02f04dc6, 0x006986bd, 0x03e1834f, 0x000fc9f9}}},
+ {X: Field{[10]uint32{0x03fc9a70, 0x007269ba, 0x0089b303, 0x013df202, 0x012f42a2, 0x0211916c, 0x03d66f44, 0x023ff542, 0x00713021, 0x001f82bc}}, Y: Field{[10]uint32{0x02aedb3f, 0x01b6de16, 0x003ab241, 0x005fd6f7, 0x010d5795, 0x017ac7a2, 0x013fbb23, 0x0343127d, 0x03f3926c, 0x00142f08}}},
+ {X: Field{[10]uint32{0x02ebf20d, 0x00aaac16, 0x01da4ef8, 0x00a151ba, 0x00b47f05, 0x0102a40e, 0x005d3354, 0x00968b06, 0x007e1a7b, 0x001eea06}}, Y: Field{[10]uint32{0x02185187, 0x00924c26, 0x033a39ab, 0x02f39f62, 0x000527ef, 0x0329775e, 0x026c25c7, 0x00dc2be1, 0x026c9625, 0x001b9abb}}},
+ {X: Field{[10]uint32{0x013a6807, 0x02128e76, 0x0277255b, 0x02583a49, 0x009767b7, 0x0063f28e, 0x0000816e, 0x02c9e6d8, 0x03c34d83, 0x00230143}}, Y: Field{[10]uint32{0x01174870, 0x026f104d, 0x023ce701, 0x0336073c, 0x015d699f, 0x0106604e, 0x03c29650, 0x023eca09, 0x00ef75b6, 0x002618c5}}},
+ {X: Field{[10]uint32{0x019c2ec9, 0x02e2c6f2, 0x006202a7, 0x028b2fd4, 0x009d7201, 0x01492652, 0x0060583a, 0x037e1896, 0x009a78e4, 0x0014ede1}}, Y: Field{[10]uint32{0x03e469c0, 0x00b77e78, 0x012c544d, 0x00951ca3, 0x02e0a44d, 0x006f8b14, 0x024b22de, 0x01f41d77, 0x0212ac60, 0x00138c7a}}},
+ {X: Field{[10]uint32{0x03313b33, 0x03149f94, 0x0278efeb, 0x0010c77b, 0x02b63350, 0x03f9d8af, 0x0075a010, 0x032655a8, 0x0267a5d0, 0x0026f7e7}}, Y: Field{[10]uint32{0x029d2bb0, 0x0252bf63, 0x00d5a17e, 0x00d9d8ba, 0x02907f26, 0x03c5b2b4, 0x00c27926, 0x00383b89, 0x0221a596, 0x00250991}}},
+ {X: Field{[10]uint32{0x02381f34, 0x03f66412, 0x012fb429, 0x00b1bb0b, 0x0117d9f4, 0x01d81be2, 0x02c031a4, 0x02cef42e, 0x02b37a8a, 0x001f2a9c}}, Y: Field{[10]uint32{0x017303c9, 0x01f77597, 0x037f1ef8, 0x00781a0b, 0x03ff8fbd, 0x00804253, 0x023d6beb, 0x037a34d3, 0x03ab7ee5, 0x0016d614}}},
+ {X: Field{[10]uint32{0x0193d81a, 0x01ae5f8e, 0x0093dde1, 0x031d54c9, 0x03925d62, 0x00fd236d, 0x000295fc, 0x01e5d5e7, 0x039f0982, 0x000bbca6}}, Y: Field{[10]uint32{0x03110753, 0x008cde8c, 0x015e89b4, 0x0090e1f6, 0x00a0afff, 0x02fd31c5, 0x0137ef96, 0x016e9829, 0x004dd987, 0x00125b25}}},
+ {X: Field{[10]uint32{0x03317ff8, 0x030d2fa5, 0x00e6a9e5, 0x014bb0d5, 0x024029e9, 0x039740b1, 0x03c1860a, 0x01e1d55c, 0x00ad95b0, 0x0037c55f}}, Y: Field{[10]uint32{0x0284c162, 0x01bb8e04, 0x03ba470f, 0x00ba15a4, 0x00b629e6, 0x00acf30c, 0x01c979a0, 0x00ad4226, 0x02c77592, 0x003cbb32}}},
+ {X: Field{[10]uint32{0x02454b1d, 0x02a61c05, 0x020e7b15, 0x00dadc64, 0x00e651d2, 0x02e7ad51, 0x0182e643, 0x02949ad8, 0x0150a29c, 0x00375570}}, Y: Field{[10]uint32{0x002e9368, 0x01788fd3, 0x00f5c4d9, 0x02af5dea, 0x00ac685a, 0x01a30944, 0x01605d42, 0x03a8bace, 0x03a542f4, 0x001131d5}}},
+ {X: Field{[10]uint32{0x00227f27, 0x02792e26, 0x0172325b, 0x024e1fc0, 0x02c4d5d3, 0x018f4c95, 0x01477630, 0x00b1e464, 0x00f46ed4, 0x0005a21b}}, Y: Field{[10]uint32{0x0217fffb, 0x00e0c5c2, 0x00367ec5, 0x02378bd2, 0x02c824ed, 0x00f280f7, 0x02192fc9, 0x00ca6751, 0x02207ee7, 0x001d0868}}},
+ {X: Field{[10]uint32{0x0360732f, 0x03aa9eca, 0x0345e56a, 0x0089213f, 0x0327968c, 0x01bc2b3f, 0x028b306d, 0x00186023, 0x00fcdaa3, 0x001bfc60}}, Y: Field{[10]uint32{0x029961a9, 0x00fa87bd, 0x038cc22f, 0x008baa16, 0x026c8d40, 0x018dd868, 0x0254dad0, 0x02bfc3f0, 0x0254f0c2, 0x001f45b5}}},
+ {X: Field{[10]uint32{0x00395e36, 0x03323ab7, 0x005c4f8b, 0x0154e7da, 0x00aa912b, 0x003b99df, 0x034f51f4, 0x030a80fa, 0x0111a00d, 0x0000fa91}}, Y: Field{[10]uint32{0x03c9259d, 0x000d719c, 0x0049824b, 0x00d94a43, 0x030a2f2e, 0x010376d4, 0x02398393, 0x0008564e, 0x01f1528b, 0x001b27b4}}},
+ {X: Field{[10]uint32{0x0253081d, 0x0332883c, 0x014b63c7, 0x002a0d79, 0x0153e415, 0x00cb7ee3, 0x00742d8f, 0x03a7aace, 0x0170dc3d, 0x0002e0b3}}, Y: Field{[10]uint32{0x01d0e24d, 0x012f02ab, 0x0326860d, 0x015aa48b, 0x0302effc, 0x00ca5d97, 0x02e20499, 0x01b9d74c, 0x03fe1f7f, 0x0003a2f2}}},
+ {X: Field{[10]uint32{0x0196c77f, 0x00e2d5e8, 0x03d49b7b, 0x03c05cc9, 0x0206d056, 0x00169a69, 0x02e23bf1, 0x021d1613, 0x03e00074, 0x003f8bf0}}, Y: Field{[10]uint32{0x01bf3916, 0x02ef6dba, 0x0271d4f9, 0x007793f7, 0x007da856, 0x01601ec7, 0x01a32f69, 0x034a5f32, 0x001cc3c6, 0x000f8625}}},
+ {X: Field{[10]uint32{0x03b7858b, 0x036fd5d2, 0x035ec845, 0x00511ba8, 0x02e8b001, 0x00b6e75b, 0x028778b1, 0x00da4d1f, 0x0176cdaa, 0x00012e40}}, Y: Field{[10]uint32{0x0173c154, 0x032abb2e, 0x03155295, 0x03f0bdea, 0x021fdad0, 0x02162031, 0x026e349b, 0x017f4fb2, 0x03ab6e9c, 0x003d8151}}},
+ {X: Field{[10]uint32{0x0144c6d2, 0x03b04296, 0x028a0cd3, 0x01cbd654, 0x01defc42, 0x0036f27b, 0x00c86a9f, 0x01802d2e, 0x02511d34, 0x000d7ce0}}, Y: Field{[10]uint32{0x00b5ccd5, 0x00c8d2f4, 0x00daeae8, 0x02c6c4a8, 0x0043762b, 0x03e5b2a6, 0x0337a80c, 0x028797db, 0x01f6ef7f, 0x000a6a0d}}},
+ {X: Field{[10]uint32{0x022cb94a, 0x0308dc5c, 0x011cdf3c, 0x02b0fc04, 0x03e1d0e9, 0x021f4fd6, 0x0027e265, 0x02dffe84, 0x02970311, 0x00075d2c}}, Y: Field{[10]uint32{0x00c2071e, 0x03307dca, 0x030e2606, 0x02ba771f, 0x0135dc99, 0x003d7183, 0x03bcfb81, 0x005382dc, 0x038b57f1, 0x00171ef3}}},
+ {X: Field{[10]uint32{0x00450428, 0x0129a2a6, 0x013e6f93, 0x02df1056, 0x024f75d1, 0x027b1c8b, 0x0020737b, 0x03e5582c, 0x00f309c6, 0x00142825}}, Y: Field{[10]uint32{0x03778eee, 0x0243c7a0, 0x021b554a, 0x02da1a6a, 0x0089c86d, 0x02a07c11, 0x009eaba6, 0x0033f65a, 0x0222dfe1, 0x0028a1b8}}},
+ {X: Field{[10]uint32{0x03c63db7, 0x0029b589, 0x0010599b, 0x036452d2, 0x00282dbc, 0x01d7b0e3, 0x02cf12e2, 0x0055f37f, 0x03812129, 0x0026d96e}}, Y: Field{[10]uint32{0x00223188, 0x0164ef06, 0x03d65528, 0x0102b423, 0x00660b4c, 0x007a629e, 0x013b2e95, 0x00890864, 0x031a3f0f, 0x003160b6}}},
+ {X: Field{[10]uint32{0x02a4bc6b, 0x00200b4d, 0x02ca51c2, 0x03179883, 0x0085e7f1, 0x007720c7, 0x02c1115a, 0x0281b915, 0x00fc1fdf, 0x0022d151}}, Y: Field{[10]uint32{0x0220350d, 0x022c67de, 0x003b06ea, 0x02e6556c, 0x01e4116f, 0x02dc3993, 0x022af7f4, 0x00980b9c, 0x0041288f, 0x0038f9df}}},
+ {X: Field{[10]uint32{0x020ab4aa, 0x02076577, 0x01e29d5f, 0x004f773b, 0x006cb2ae, 0x0155e3f7, 0x039b29cc, 0x03adf145, 0x0080b959, 0x001b1c26}}, Y: Field{[10]uint32{0x027c4bdc, 0x033144e7, 0x03b43c2d, 0x0314254f, 0x02ee2b59, 0x03cf7aae, 0x036c0c76, 0x02e9099c, 0x03aebd8e, 0x003278cf}}},
+ {X: Field{[10]uint32{0x01537806, 0x02d59dcf, 0x001e7085, 0x019e00ae, 0x0076fc9d, 0x012821e8, 0x01891f79, 0x01a9c657, 0x035137ba, 0x001ddd82}}, Y: Field{[10]uint32{0x018e3a25, 0x0206af85, 0x037f0d7e, 0x037b9a39, 0x021b87ff, 0x03d105ef, 0x0358c7ed, 0x02962fd3, 0x00f5aaee, 0x003d480b}}},
+ {X: Field{[10]uint32{0x02163102, 0x03109b9f, 0x025d0df4, 0x03e3bf58, 0x03e23cd4, 0x02324699, 0x02904a8a, 0x00320ba6, 0x03836a0b, 0x0006a2f5}}, Y: Field{[10]uint32{0x02285844, 0x0317f304, 0x01f2e4e9, 0x005adc02, 0x01c2a963, 0x03dd2a1f, 0x0174f282, 0x00b2b8f1, 0x00cab095, 0x00187f99}}},
+ {X: Field{[10]uint32{0x024abc30, 0x02d4e421, 0x031d753d, 0x02679a51, 0x02a3fb30, 0x00936475, 0x01e453ed, 0x02644fec, 0x01b65907, 0x003f885f}}, Y: Field{[10]uint32{0x01730b58, 0x03dac0d3, 0x012538cd, 0x00714e5a, 0x0193a0c6, 0x007c11f5, 0x030f20fb, 0x017b5a02, 0x02bba962, 0x001773e6}}},
+ {X: Field{[10]uint32{0x01b33b91, 0x02bb527d, 0x02c5f212, 0x035d232d, 0x0107e3ab, 0x03ab5a5b, 0x00f58b65, 0x0357af0e, 0x023754af, 0x00094135}}, Y: Field{[10]uint32{0x035d75d4, 0x0004eb5e, 0x03437b5e, 0x004159d7, 0x00ba7cec, 0x01cbeefd, 0x01321c6c, 0x011a713d, 0x034375f1, 0x001e69af}}},
+ {X: Field{[10]uint32{0x03197b5c, 0x03772bf6, 0x0176b7fb, 0x02fd7322, 0x036160ab, 0x021c4170, 0x029bd3f6, 0x008b5e26, 0x0302f47b, 0x0002c1bd}}, Y: Field{[10]uint32{0x0332f63d, 0x017e4635, 0x007781cd, 0x01ff45e7, 0x005bd2fe, 0x02a8f7f9, 0x012a35b6, 0x035247d6, 0x03d419a4, 0x001d9a6e}}},
+ {X: Field{[10]uint32{0x01044e23, 0x004a2983, 0x010acbc2, 0x027af48f, 0x00a6f3f9, 0x006d5120, 0x034eeb93, 0x0273e500, 0x003bb31f, 0x00200ec8}}, Y: Field{[10]uint32{0x0328d1c7, 0x014e0705, 0x006a954e, 0x02fd26e5, 0x03bfc9cc, 0x03e98aeb, 0x0320c5c7, 0x03dd6566, 0x008df271, 0x000c22af}}},
+ {X: Field{[10]uint32{0x0302749a, 0x00a27f80, 0x028dcd57, 0x037a3a56, 0x02e52de1, 0x000e9cc4, 0x010e5bda, 0x033ab6ed, 0x00b4c5f5, 0x00099aa7}}, Y: Field{[10]uint32{0x02e0ae7e, 0x021bff11, 0x03baa8b3, 0x02e879f0, 0x033dc0ef, 0x03213b53, 0x0282877c, 0x02cbea8f, 0x030ba856, 0x0027baa5}}},
+ {X: Field{[10]uint32{0x004eba94, 0x00d82f3e, 0x02a355d7, 0x0107a6af, 0x0364c4c1, 0x02058f7c, 0x019a7ab9, 0x01eb5496, 0x0195d80c, 0x003f62a7}}, Y: Field{[10]uint32{0x03b1030c, 0x035f5cf7, 0x01a713e2, 0x03691eff, 0x03a30377, 0x02b9ff4c, 0x032e2688, 0x014ecd66, 0x03021009, 0x002a7ec5}}},
+ {X: Field{[10]uint32{0x01db0a7d, 0x02dbc9be, 0x038f8f2c, 0x0316dec2, 0x026e84ac, 0x02cb202f, 0x03c339a8, 0x023c8d67, 0x01f309f2, 0x0029cc8b}}, Y: Field{[10]uint32{0x02db6be6, 0x028ba85b, 0x00885c12, 0x0384c5c5, 0x03095f40, 0x03c4be95, 0x01b7f5b2, 0x025405ff, 0x029d2174, 0x0008bdbf}}},
+ {X: Field{[10]uint32{0x03052d36, 0x00f1f932, 0x01ffc82c, 0x006ba95a, 0x00bd4c46, 0x03dfc3c6, 0x02104ddb, 0x0199258e, 0x010f336a, 0x0020aa30}}, Y: Field{[10]uint32{0x01f1dd0c, 0x0384a1e5, 0x038c118f, 0x03533411, 0x015e5c31, 0x02dc6d9c, 0x010501cc, 0x01c89e2e, 0x00a2c0ef, 0x001cdf3b}}},
+ {X: Field{[10]uint32{0x0315d6df, 0x01e12a53, 0x00516c54, 0x02dd6e97, 0x026c4ef2, 0x01698309, 0x03cd12f0, 0x03de5401, 0x01b68e3b, 0x0026d434}}, Y: Field{[10]uint32{0x03ddd8fd, 0x01bfadf2, 0x02778737, 0x009cb51f, 0x02403fff, 0x03c63549, 0x003fd2a4, 0x01db6340, 0x0109b791, 0x000abf23}}},
+ {X: Field{[10]uint32{0x02e08d32, 0x021657ee, 0x00b80671, 0x035fba0b, 0x02b8dcb9, 0x0074c15a, 0x023a8228, 0x008ff9f7, 0x03ddc8b4, 0x000fe420}}, Y: Field{[10]uint32{0x028fa758, 0x0257ff3c, 0x01376e21, 0x01b48330, 0x0081f77f, 0x03e80868, 0x020ed90a, 0x007646a7, 0x0152fd51, 0x0032c4f0}}},
+ {X: Field{[10]uint32{0x02167faf, 0x0041d3bc, 0x00bfadbd, 0x00196754, 0x03c92317, 0x024999b2, 0x02ff6bd5, 0x0306895b, 0x01c1ee17, 0x0031d721}}, Y: Field{[10]uint32{0x00023a52, 0x02bc5a50, 0x00c8596d, 0x005b53df, 0x01bd698a, 0x0191fd23, 0x00ca8922, 0x010275d7, 0x02be5e09, 0x0006ad3a}}},
+ {X: Field{[10]uint32{0x00656045, 0x02355da6, 0x03fb95c6, 0x00acf52d, 0x0060ea8e, 0x03deab5f, 0x010cf0d2, 0x03d74ed3, 0x03eaf8a0, 0x00314d07}}, Y: Field{[10]uint32{0x00e88915, 0x034eae5d, 0x023986e6, 0x035535c4, 0x02dc48a4, 0x009aae60, 0x00fa422a, 0x016e7e92, 0x00e9007e, 0x00257e7d}}},
+ {X: Field{[10]uint32{0x00c2d89b, 0x01e80c98, 0x027fd896, 0x02ddd4b5, 0x02220852, 0x01c17748, 0x02bd4c68, 0x025f8354, 0x023e2a89, 0x0020eb36}}, Y: Field{[10]uint32{0x03c31df0, 0x03a5de46, 0x00e8e330, 0x00ef752e, 0x030a77cd, 0x025c45d5, 0x01b55809, 0x02e945fd, 0x02e1d655, 0x0037386e}}},
+ {X: Field{[10]uint32{0x0025237b, 0x009e6cc0, 0x039625bd, 0x01c5b174, 0x00f1c0d5, 0x00a75653, 0x01c4164e, 0x0241d16e, 0x01468b29, 0x0016e064}}, Y: Field{[10]uint32{0x03625d8e, 0x0227d2bd, 0x034fcf69, 0x0329c6e8, 0x011c48d2, 0x00207cd6, 0x0188daab, 0x0377eafb, 0x02a03fdd, 0x00330d8d}}},
+ {X: Field{[10]uint32{0x003b0e6c, 0x0241178b, 0x037219b8, 0x01934e35, 0x0332f5f6, 0x01984139, 0x00417961, 0x00e3bfe0, 0x0122214e, 0x00191de0}}, Y: Field{[10]uint32{0x0211a32d, 0x033e6111, 0x02f81974, 0x000e352b, 0x00d8b632, 0x02e29f47, 0x02afc4a0, 0x03bb1ee3, 0x00497e15, 0x000ca73c}}},
+ {X: Field{[10]uint32{0x02f12323, 0x0032e7c6, 0x0017c43d, 0x0275b684, 0x002b475a, 0x02bba199, 0x01099099, 0x018bd1e5, 0x026afe57, 0x003b5360}}, Y: Field{[10]uint32{0x03e48e78, 0x00c6defd, 0x02274d05, 0x02696510, 0x01c4d88c, 0x02b1e467, 0x0296f928, 0x0297bb20, 0x01be3faf, 0x00231be0}}},
+ {X: Field{[10]uint32{0x01109c4a, 0x01bad033, 0x02fe97a0, 0x00ad57de, 0x024d82ac, 0x011bf586, 0x016f5513, 0x03b30eb3, 0x0124419a, 0x000e2d0a}}, Y: Field{[10]uint32{0x03e05583, 0x032e4adc, 0x02b07b5a, 0x01a28b39, 0x02de49d7, 0x03cd669a, 0x030965a1, 0x00bdceca, 0x00962feb, 0x001fd0b0}}},
+ {X: Field{[10]uint32{0x02138911, 0x02b0ba60, 0x016e3446, 0x018893c8, 0x01bb2a8f, 0x020fa185, 0x034cf701, 0x02529ed0, 0x00a8d8bb, 0x0030f2b5}}, Y: Field{[10]uint32{0x0282765e, 0x023b4e1c, 0x01b2759a, 0x00bbc6c9, 0x01420e37, 0x00b738e8, 0x0342ce38, 0x025d9081, 0x02278cad, 0x003d926f}}},
+ {X: Field{[10]uint32{0x00bd6538, 0x02239295, 0x01a9e555, 0x015cd964, 0x00d9212e, 0x038faa7b, 0x03ae40dc, 0x00dbf553, 0x03f4d3d2, 0x000b5023}}, Y: Field{[10]uint32{0x00e815b7, 0x02816d43, 0x021324b9, 0x01c5616a, 0x0285e2a1, 0x00a66fbd, 0x02284bf0, 0x00a81af1, 0x01f0e869, 0x003565ab}}},
+ {X: Field{[10]uint32{0x0233c854, 0x02dfaa9e, 0x03daebaf, 0x028e8f1b, 0x03d67423, 0x00fe223a, 0x0290cf81, 0x0097eddb, 0x036d247f, 0x003b9eb7}}, Y: Field{[10]uint32{0x027a8fb4, 0x03bf0754, 0x01801dea, 0x01c5e278, 0x01143f68, 0x01505a27, 0x010dd9ef, 0x03dc15b0, 0x004b4ae8, 0x00381dc6}}},
+ {X: Field{[10]uint32{0x01144b34, 0x0047cf80, 0x0064b7c8, 0x028df26a, 0x01dd5d37, 0x01317a27, 0x011151dc, 0x02b284f6, 0x03c8a9ff, 0x000be515}}, Y: Field{[10]uint32{0x035e221d, 0x018d3839, 0x01cfbb40, 0x033acf4f, 0x02787120, 0x035bf122, 0x015407e1, 0x0355ce8a, 0x00489093, 0x003ad326}}},
+ {X: Field{[10]uint32{0x03fec294, 0x00311bad, 0x01c277b3, 0x020fbd4c, 0x03601204, 0x03f86378, 0x023478ce, 0x00560873, 0x02b8a0f1, 0x0034fccc}}, Y: Field{[10]uint32{0x030b2155, 0x0085786e, 0x00f9f323, 0x0243bc4d, 0x01c8968b, 0x030dca50, 0x02f1c019, 0x01e18746, 0x01b25d71, 0x003a9d6e}}},
+ {X: Field{[10]uint32{0x02152b91, 0x0337c7e3, 0x02f7e9a4, 0x02199ad4, 0x035f3ddb, 0x03bcdb75, 0x021fcd86, 0x016ab4d4, 0x00d338b0, 0x00060d02}}, Y: Field{[10]uint32{0x0241218c, 0x00d54dc5, 0x018095de, 0x01339126, 0x00210e20, 0x00326209, 0x01be21f2, 0x012b1bce, 0x01206edf, 0x0019a661}}},
+ {X: Field{[10]uint32{0x0340374e, 0x02558257, 0x006863d3, 0x035b094d, 0x0321faff, 0x0273e269, 0x00f1f0ff, 0x01794eea, 0x005db114, 0x000a0ffb}}, Y: Field{[10]uint32{0x0032fefe, 0x006fa0af, 0x02f77851, 0x000f3ce6, 0x0008846e, 0x01729ba6, 0x0268e5f6, 0x015439a3, 0x023774af, 0x001c2c04}}},
+ {X: Field{[10]uint32{0x0152fa62, 0x02837ef7, 0x016daf54, 0x01e5dc3f, 0x00ebc735, 0x0239f6ff, 0x03bd249d, 0x00f3e904, 0x030a4f94, 0x000339d5}}, Y: Field{[10]uint32{0x0375d41d, 0x01be73a2, 0x013907c3, 0x02260f81, 0x00bd5e5b, 0x02e8e617, 0x005bdf98, 0x02573fee, 0x014bef46, 0x0038456c}}},
+ {X: Field{[10]uint32{0x038fd470, 0x02529320, 0x02b15377, 0x0055d32f, 0x01df7903, 0x03646549, 0x029f648c, 0x03b0fc49, 0x0319c8f4, 0x001fa713}}, Y: Field{[10]uint32{0x00fa5270, 0x037d73ac, 0x013e9c86, 0x0236b5af, 0x0060fafa, 0x03447d20, 0x015d6ccb, 0x03d732a1, 0x03fe8cf5, 0x003a7676}}},
+ {X: Field{[10]uint32{0x00cb001b, 0x01146d19, 0x03ec23bf, 0x0131c8a8, 0x010ba04f, 0x03c8c27e, 0x007f919d, 0x016ffa9f, 0x03e60d5d, 0x0038aa6e}}, Y: Field{[10]uint32{0x02393fb0, 0x004691e1, 0x03f16984, 0x024741a9, 0x03d1925b, 0x039cb2dd, 0x0125bd67, 0x01ab1de2, 0x00e1c3cd, 0x003905df}}},
+ {X: Field{[10]uint32{0x01271012, 0x0264009d, 0x00265e70, 0x006c5563, 0x00f55e64, 0x00aa5264, 0x03bf37d4, 0x03bd4390, 0x02a43e17, 0x00141144}}, Y: Field{[10]uint32{0x021ed18b, 0x029274b9, 0x0381b742, 0x02e5a265, 0x011f21c4, 0x02387cb3, 0x00b1f41e, 0x00eb3cb5, 0x03d857ba, 0x00255297}}},
+ {X: Field{[10]uint32{0x005f850d, 0x032fa1ca, 0x03411cd5, 0x036285ec, 0x01859945, 0x029cb1c8, 0x02d1d51b, 0x00c97d2c, 0x0013a6bb, 0x0020747c}}, Y: Field{[10]uint32{0x00937193, 0x012f3177, 0x0071adce, 0x0127535c, 0x01259d3d, 0x0262c816, 0x01fe2492, 0x002154ec, 0x03b1f0c3, 0x000b574b}}},
+ {X: Field{[10]uint32{0x01895022, 0x00ce0f47, 0x0387ca73, 0x0050528e, 0x01d90dd5, 0x0399b0cf, 0x02872767, 0x02099862, 0x02dfc1d2, 0x0016d9b0}}, Y: Field{[10]uint32{0x0154e0ff, 0x02d51cb5, 0x00f5449e, 0x03684b63, 0x0327fcae, 0x0101fa61, 0x017267b7, 0x0255a488, 0x038e3818, 0x0026f405}}},
+ {X: Field{[10]uint32{0x00381186, 0x03e1a208, 0x00597afa, 0x0366bd63, 0x0399b583, 0x036ffe2a, 0x012d544b, 0x0178e36f, 0x030e98ec, 0x002bad7d}}, Y: Field{[10]uint32{0x0184427b, 0x02b705cd, 0x01a052e7, 0x01cc3cbd, 0x01691b09, 0x00cdb908, 0x00b76929, 0x029c37c2, 0x02b0d25c, 0x001862f5}}},
+ {X: Field{[10]uint32{0x0105052e, 0x02a60849, 0x0353a707, 0x0329dab5, 0x02557679, 0x01ea700a, 0x0361e3c6, 0x0250ee11, 0x02ffe841, 0x0002ca27}}, Y: Field{[10]uint32{0x0079992c, 0x02e743fa, 0x01e330cf, 0x00e17974, 0x00530ed7, 0x0318920b, 0x034f895d, 0x018aa14e, 0x01f0c218, 0x0001ea60}}},
+ {X: Field{[10]uint32{0x0219291c, 0x02f4d5bd, 0x01200f81, 0x005f9138, 0x003f5859, 0x03f4a0a2, 0x00c8360c, 0x006679ac, 0x01458b12, 0x002aeb8e}}, Y: Field{[10]uint32{0x01753f28, 0x02dd7bed, 0x02934233, 0x02ded99f, 0x000b2a81, 0x011a6c1a, 0x03be30b2, 0x01a717a0, 0x03cdb3d0, 0x002b6c8e}}},
+ {X: Field{[10]uint32{0x01fbacaa, 0x02720255, 0x03013941, 0x02323646, 0x011e0f65, 0x0063aca7, 0x02c224a5, 0x01696a06, 0x03a6485b, 0x0012a560}}, Y: Field{[10]uint32{0x00e8dbca, 0x00558c6d, 0x037decea, 0x00466dec, 0x00803ecf, 0x01dda36d, 0x02375a8a, 0x010bd7b7, 0x009ee3c8, 0x0036000f}}},
+ {X: Field{[10]uint32{0x00ebc169, 0x00404084, 0x017ae3a2, 0x0305183c, 0x02ea236a, 0x012ac367, 0x03cf4654, 0x03df2d97, 0x030edba6, 0x00354bd8}}, Y: Field{[10]uint32{0x030d26d0, 0x0304f84d, 0x003d9145, 0x003106f2, 0x0368e21a, 0x02801714, 0x01bea50d, 0x00ee20f9, 0x03489fa9, 0x00084555}}},
+ {X: Field{[10]uint32{0x02dd6a4d, 0x00384826, 0x029bf8d1, 0x018cd6f2, 0x01c74a2a, 0x00b9307a, 0x0050fc05, 0x016163d7, 0x023782c7, 0x0002f714}}, Y: Field{[10]uint32{0x0034f189, 0x01010d9a, 0x0323e585, 0x00ef0755, 0x0312ff02, 0x02fd4a74, 0x014efbaf, 0x01d9a388, 0x01f87463, 0x002aec76}}},
+ {X: Field{[10]uint32{0x019ad087, 0x038244b9, 0x00e8626e, 0x005a3c4f, 0x0288156d, 0x03ad859e, 0x0364e476, 0x02aae0ee, 0x02338bf0, 0x00111dc2}}, Y: Field{[10]uint32{0x0360a55c, 0x0170cf7b, 0x01b99c96, 0x008edca4, 0x036a3abd, 0x030b5915, 0x0393a895, 0x0102f2cc, 0x00f12e9c, 0x0016d64c}}},
+ {X: Field{[10]uint32{0x015e1679, 0x00b64914, 0x021c83e3, 0x02363ba3, 0x02650310, 0x00f8d99c, 0x01ac2032, 0x012bb8c6, 0x03322e40, 0x002c579e}}, Y: Field{[10]uint32{0x01997e7a, 0x00f3abcf, 0x03d57a87, 0x00961cd1, 0x005ced5c, 0x001e5bd4, 0x002ed565, 0x02ca457e, 0x00190bbf, 0x001491aa}}},
+ {X: Field{[10]uint32{0x01b00f22, 0x02f66bb7, 0x0019027b, 0x00235781, 0x01665ae1, 0x0287077e, 0x0050f758, 0x017343cb, 0x01570522, 0x00287b5d}}, Y: Field{[10]uint32{0x02791ee2, 0x0049dd9a, 0x001a13d2, 0x001024ca, 0x02d71dbd, 0x02143b40, 0x017e7464, 0x021d21ee, 0x005dad9f, 0x000f20c5}}},
+ {X: Field{[10]uint32{0x01918af5, 0x022becc7, 0x037a23cf, 0x032708e8, 0x03479e9e, 0x03181603, 0x03fc43c2, 0x03183f66, 0x03616a1b, 0x003a2abc}}, Y: Field{[10]uint32{0x0279827c, 0x02dbc9e7, 0x03d3ec89, 0x000e96b0, 0x009ab9c3, 0x02e68356, 0x0141041a, 0x0319c9f8, 0x03b64a37, 0x001b39a4}}},
+ {X: Field{[10]uint32{0x014c20a3, 0x00ea8dc1, 0x01b76c5a, 0x010ce28f, 0x020759c0, 0x0061e9b5, 0x024a4ef6, 0x01798d4a, 0x00cd2c85, 0x001771be}}, Y: Field{[10]uint32{0x026f4838, 0x01c05193, 0x03f0fbb8, 0x03d4b9a9, 0x000fe9f5, 0x0307620d, 0x031d1bc7, 0x02a6a359, 0x03428593, 0x003d80b0}}},
+ {X: Field{[10]uint32{0x0342f3a6, 0x0281f2da, 0x0326a5f1, 0x0081186b, 0x00f65636, 0x00aa9227, 0x02063ef2, 0x0362bda2, 0x031167be, 0x0018cc9c}}, Y: Field{[10]uint32{0x034424a6, 0x0032e06d, 0x01f1a3ea, 0x00026a46, 0x02bf94a7, 0x01874f95, 0x00ca0367, 0x004c83c8, 0x03b22070, 0x002e3df0}}},
+ {X: Field{[10]uint32{0x00080263, 0x008c3e52, 0x020d3535, 0x002b5e62, 0x03ad66e5, 0x03a19536, 0x005c2017, 0x00ece08c, 0x01259a39, 0x00229036}}, Y: Field{[10]uint32{0x019fcaff, 0x02d747e7, 0x01d6f6a7, 0x03326a69, 0x0143f9cb, 0x031985b4, 0x03f703a5, 0x01153b75, 0x034d9849, 0x002beda9}}},
+ {X: Field{[10]uint32{0x0078645a, 0x037abe08, 0x0317dcdf, 0x022f3082, 0x02a6a02c, 0x02816df7, 0x017fd3f9, 0x01082bd4, 0x010727c7, 0x0039c51c}}, Y: Field{[10]uint32{0x0217daca, 0x00513ad0, 0x03055eaa, 0x02809606, 0x01a3561b, 0x025ac13e, 0x01d5dcdc, 0x03a753fb, 0x03cbc1ed, 0x00369f59}}},
+ {X: Field{[10]uint32{0x0261c82d, 0x007da725, 0x026c0cae, 0x03a24700, 0x029922bc, 0x014e54b0, 0x0242a685, 0x02e1e007, 0x011cd95f, 0x00184c4a}}, Y: Field{[10]uint32{0x0130bf01, 0x03f0410b, 0x03b89384, 0x01e44dcc, 0x0042b894, 0x02b98cae, 0x014f9898, 0x00bf5167, 0x001c1334, 0x00058387}}},
+ {X: Field{[10]uint32{0x01ca4951, 0x00af3c74, 0x003bfb78, 0x02a76940, 0x02fc5e2a, 0x01e22027, 0x029bfa81, 0x011a4b42, 0x0045b676, 0x0012f13e}}, Y: Field{[10]uint32{0x00b751f0, 0x03103f04, 0x0383cefd, 0x0315fec5, 0x0164c4a7, 0x029dbb01, 0x03055ff3, 0x0349538e, 0x01cbb9c3, 0x0021c24b}}},
+ {X: Field{[10]uint32{0x02be67df, 0x039bb2a8, 0x0201f698, 0x017560a8, 0x0052865b, 0x02617cd9, 0x039bff5c, 0x03a77ca7, 0x00a27bbe, 0x00116a20}}, Y: Field{[10]uint32{0x0055fabb, 0x00cae8de, 0x00eb6131, 0x01ae3ba5, 0x02a831d4, 0x02af5643, 0x0279714d, 0x01afc7bd, 0x02a8b5e4, 0x003f9269}}},
+ {X: Field{[10]uint32{0x02f4f2a4, 0x03c68352, 0x000d3f21, 0x0256c854, 0x01877e54, 0x00805174, 0x016847a2, 0x00321993, 0x0238317c, 0x001aa09a}}, Y: Field{[10]uint32{0x005f4513, 0x0117e1f8, 0x0322c154, 0x002ef081, 0x02f6b83f, 0x01b9ad1e, 0x02f14e0e, 0x02098f7c, 0x014efcc9, 0x00114865}}},
+ {X: Field{[10]uint32{0x026a23a9, 0x03a28d0d, 0x0075f613, 0x0379f1b3, 0x028bd860, 0x0277395c, 0x008aa1b0, 0x03dfa5b3, 0x0106f255, 0x00054d59}}, Y: Field{[10]uint32{0x00110bf3, 0x014ec700, 0x034cee3e, 0x02d38d8a, 0x03122f37, 0x03e26977, 0x01e401f1, 0x03521435, 0x03bcd744, 0x0033456a}}},
+ {X: Field{[10]uint32{0x02b89b91, 0x0387283c, 0x0043a2b5, 0x02973299, 0x00cacff3, 0x00b6b0bb, 0x00651780, 0x027d7dae, 0x02aef53d, 0x003cef04}}, Y: Field{[10]uint32{0x00e00957, 0x03294246, 0x03131368, 0x017fc91f, 0x01303e91, 0x0281cdeb, 0x03d0f367, 0x0047c907, 0x036beb2e, 0x0033f534}}},
+ {X: Field{[10]uint32{0x035c0fd4, 0x00a0a5cc, 0x033736f7, 0x03bd6114, 0x0122320b, 0x02ce1d92, 0x0226ef18, 0x0294dbde, 0x006dfa04, 0x001f8f23}}, Y: Field{[10]uint32{0x01f7c189, 0x01c4a134, 0x03fe9155, 0x01362339, 0x02b6a129, 0x000f008d, 0x032400b3, 0x00cdb4cc, 0x02b532a7, 0x001cba85}}},
+ {X: Field{[10]uint32{0x010369d8, 0x0111822b, 0x03223d88, 0x026f5b85, 0x026943ab, 0x0214557f, 0x021c696d, 0x017f0b05, 0x03cfa057, 0x0006632f}}, Y: Field{[10]uint32{0x013cf7ae, 0x01cac985, 0x006c2f29, 0x025209e9, 0x03032159, 0x039ee8b9, 0x019fe0ef, 0x00908af9, 0x028b3095, 0x00357989}}},
+ {X: Field{[10]uint32{0x03b0e5e8, 0x02c4d42b, 0x01fd63ae, 0x02a9e02c, 0x015a147c, 0x00226e43, 0x0183c089, 0x03cd6888, 0x0289b68c, 0x0007815b}}, Y: Field{[10]uint32{0x003f32b9, 0x0011cae5, 0x008379f8, 0x00e431be, 0x003e258a, 0x01b505bd, 0x02d6ff38, 0x01315f76, 0x0053abc4, 0x002e0905}}},
+ {X: Field{[10]uint32{0x02faaa21, 0x031ca79c, 0x018fb3fa, 0x011339fe, 0x03d81081, 0x02991b51, 0x0173b2f1, 0x01f9fa98, 0x01748d82, 0x00371ffe}}, Y: Field{[10]uint32{0x030c4914, 0x00b9ffb9, 0x02a1aaaf, 0x001c51b6, 0x013e3d5f, 0x01105f1c, 0x038e1c5c, 0x01bc3ff2, 0x005aef4c, 0x00307f6b}}},
+ {X: Field{[10]uint32{0x03d28e79, 0x027686cb, 0x00ec29a9, 0x03c2fe3e, 0x0036b2ef, 0x0337ef12, 0x0354bc11, 0x00781c14, 0x02fcc498, 0x001c6e57}}, Y: Field{[10]uint32{0x03d684cc, 0x010b31bb, 0x03fa30af, 0x02c269cd, 0x011f3695, 0x00faef14, 0x004752cc, 0x01abbb0c, 0x01976fad, 0x003f568c}}},
+ {X: Field{[10]uint32{0x02542b3a, 0x01a20eb7, 0x004ae687, 0x008625c1, 0x03f6b961, 0x0096eea0, 0x033e8ffa, 0x00af5b27, 0x00af29dc, 0x0010e153}}, Y: Field{[10]uint32{0x009c6c81, 0x02d1200f, 0x03f36fd8, 0x02957072, 0x0034c5c9, 0x02893d56, 0x01e31677, 0x018cbe37, 0x01760897, 0x00158d94}}},
+ {X: Field{[10]uint32{0x0027b222, 0x00bb3cb5, 0x0396145c, 0x0243ee1d, 0x00b6eff9, 0x0357f421, 0x00c9b730, 0x027e71c2, 0x0217090e, 0x0000ab7f}}, Y: Field{[10]uint32{0x03abd7ed, 0x01b66d14, 0x010cd4c8, 0x008301a5, 0x02c44398, 0x0334a244, 0x00ae425c, 0x0367188b, 0x01605d6d, 0x002d738c}}},
+ {X: Field{[10]uint32{0x03a9d6f9, 0x038fa089, 0x00620471, 0x0152b8cf, 0x0209f70c, 0x02cffcc6, 0x033a5343, 0x02bcc456, 0x012c2b7e, 0x002848d1}}, Y: Field{[10]uint32{0x01e3b4eb, 0x0053337b, 0x0396e8fa, 0x029bdde7, 0x03f53e37, 0x03f15179, 0x008194aa, 0x007d10de, 0x008378a7, 0x0024cf4d}}},
+ {X: Field{[10]uint32{0x02c0a6ab, 0x01b8cb33, 0x00a603d0, 0x02b9f7b3, 0x03aab166, 0x004d21cd, 0x00152176, 0x016a061b, 0x03c2ca99, 0x0026e268}}, Y: Field{[10]uint32{0x03731232, 0x02a322b9, 0x0141480b, 0x034150ed, 0x03cbea83, 0x0092b020, 0x03c48302, 0x012c4af5, 0x0301a872, 0x000a9f4d}}},
+ {X: Field{[10]uint32{0x01e9e9b2, 0x01e59184, 0x032edc90, 0x00ce7b62, 0x03384b04, 0x031149ca, 0x022b9a0d, 0x035ce423, 0x0057e7d9, 0x0019375d}}, Y: Field{[10]uint32{0x023c470e, 0x00a430e0, 0x03885b29, 0x031de03b, 0x014e311d, 0x019a6626, 0x0208a723, 0x03b85bb5, 0x00aae214, 0x003aa43e}}},
+ {X: Field{[10]uint32{0x03a2176c, 0x015d9f5b, 0x0150a6b3, 0x010871fd, 0x0320abba, 0x03adc721, 0x027fd714, 0x01f1af4c, 0x0031be60, 0x0016489d}}, Y: Field{[10]uint32{0x0061d598, 0x01449712, 0x03d0b870, 0x02c4b254, 0x00796da2, 0x00f3cfce, 0x03d289ea, 0x01549d96, 0x01c4071c, 0x0032dd5c}}},
+ {X: Field{[10]uint32{0x015fe2c2, 0x0041bbde, 0x03bdc8c5, 0x00229c8d, 0x03843b7d, 0x024dd0d8, 0x000ddf19, 0x01ba7872, 0x01cdadb2, 0x0014f5d9}}, Y: Field{[10]uint32{0x017c287b, 0x0269016b, 0x000bec98, 0x00ec4a29, 0x00a66d4f, 0x01351454, 0x0187f819, 0x025ceddb, 0x0198eb39, 0x001eeeec}}},
+ {X: Field{[10]uint32{0x03bb66af, 0x02d46695, 0x03fc16d7, 0x02426d9b, 0x010452ee, 0x03d7fdb0, 0x03a989c0, 0x00efcd48, 0x029ec16b, 0x003941f7}}, Y: Field{[10]uint32{0x03f7892a, 0x014078a3, 0x0195259a, 0x03401320, 0x0251b6d3, 0x022566b4, 0x008b3950, 0x0379b8f7, 0x002a8272, 0x0028bcbc}}},
+ {X: Field{[10]uint32{0x01b4a6f2, 0x027260ce, 0x03983556, 0x01db8a95, 0x0265601d, 0x027d82de, 0x0103b8cb, 0x013eca06, 0x00c60eb8, 0x00005bd2}}, Y: Field{[10]uint32{0x0132b289, 0x023d40f7, 0x016a441d, 0x00a43d25, 0x03d827b6, 0x02dbbd13, 0x031e75d5, 0x01a0759b, 0x03848398, 0x002184ee}}},
+ {X: Field{[10]uint32{0x01446056, 0x02d8ce78, 0x03af90ca, 0x00e0a8ec, 0x010bb98e, 0x00f44b61, 0x00b51323, 0x01978c9c, 0x01ae7742, 0x0019411c}}, Y: Field{[10]uint32{0x01a50306, 0x009c92a9, 0x03cda4e6, 0x00c85765, 0x01187b40, 0x00d670ce, 0x0290a62d, 0x01bf9b2b, 0x039334aa, 0x0020e39d}}},
+ {X: Field{[10]uint32{0x0021dda8, 0x02ab0aaf, 0x00821559, 0x0287f5eb, 0x02348d1b, 0x026097eb, 0x010e19d6, 0x01613f32, 0x0016fa34, 0x000577a9}}, Y: Field{[10]uint32{0x00433047, 0x01c090ea, 0x01c15d40, 0x03d7517e, 0x00010fa5, 0x012f44c1, 0x012a3d28, 0x0339a3b8, 0x03f21e19, 0x00007f2a}}},
+ {X: Field{[10]uint32{0x005b46e2, 0x032e81ec, 0x00751dc5, 0x001ed3df, 0x02ee9d6a, 0x00d5ee91, 0x03900878, 0x01c3b4f6, 0x00954f1f, 0x002d0ac9}}, Y: Field{[10]uint32{0x0169ed71, 0x0065a802, 0x03ec69f9, 0x02d31546, 0x034851f5, 0x00110f18, 0x0328d6da, 0x036f9b5b, 0x03eb0e0b, 0x003855c8}}},
+ {X: Field{[10]uint32{0x00230f83, 0x03f15ff0, 0x00960a17, 0x01fa3894, 0x006ab10b, 0x03b26d18, 0x02b1125d, 0x02b0c476, 0x00f5c6ae, 0x00023a79}}, Y: Field{[10]uint32{0x03959ab2, 0x01db4c6a, 0x03dee645, 0x00d358a1, 0x03f1e32c, 0x0016899f, 0x03d4e53a, 0x02ede5e2, 0x0211c79f, 0x003fec38}}},
+ {X: Field{[10]uint32{0x03e1ac2e, 0x0127fa4f, 0x03528295, 0x0207e012, 0x03d6f2bb, 0x0353542f, 0x027fb63b, 0x012dce18, 0x032373bd, 0x0021ef9c}}, Y: Field{[10]uint32{0x0294e1a4, 0x01087e1f, 0x00288ce8, 0x01f5d589, 0x021ae553, 0x03038956, 0x00844b2e, 0x02e6d7ff, 0x006ff147, 0x003daa46}}},
+ {X: Field{[10]uint32{0x019d60f7, 0x01c9f859, 0x02c95002, 0x019abcd2, 0x01d2cfd4, 0x01722493, 0x029514ab, 0x00e1d217, 0x0161c836, 0x0010d807}}, Y: Field{[10]uint32{0x03bc2c2a, 0x039d6d60, 0x02b099a5, 0x00d999e7, 0x00113335, 0x02316eef, 0x028034b8, 0x032536cc, 0x00007c09, 0x0021e470}}},
+ {X: Field{[10]uint32{0x02b49d0d, 0x02abe8ca, 0x020aca0d, 0x0250a895, 0x026902e3, 0x0299abe5, 0x01f0bcbb, 0x01c714d9, 0x0180f830, 0x000d06c5}}, Y: Field{[10]uint32{0x00877b20, 0x00d38519, 0x01d941c0, 0x0386e840, 0x037e8fdb, 0x0119271b, 0x03564d2d, 0x024099ff, 0x0313c549, 0x0012e616}}},
+ {X: Field{[10]uint32{0x014dad95, 0x009c5c7c, 0x012eb576, 0x02a39592, 0x0033ac1a, 0x01e7ec55, 0x03181e2c, 0x00e90df1, 0x00b3ce4a, 0x0005d79f}}, Y: Field{[10]uint32{0x01135b0d, 0x0363f0a0, 0x01d9ce92, 0x01558f29, 0x02581301, 0x00da5bd0, 0x038703f9, 0x03d4bbf3, 0x01a87834, 0x000c7398}}},
+ {X: Field{[10]uint32{0x007165ad, 0x0391704c, 0x03a98249, 0x02553202, 0x0089c1e4, 0x0328fb2b, 0x033c8482, 0x0071878e, 0x00cc64e6, 0x0016b50c}}, Y: Field{[10]uint32{0x0251c791, 0x033b3aa4, 0x03fbeac7, 0x01b86b08, 0x009ead5f, 0x016a2e17, 0x03ca083c, 0x004ef0c5, 0x0060505c, 0x002fa8a8}}},
+ {X: Field{[10]uint32{0x01b8b837, 0x03fbe983, 0x009f28ae, 0x038f75f4, 0x01080f0c, 0x01fea130, 0x00602df0, 0x038c6262, 0x00d96dac, 0x00107738}}, Y: Field{[10]uint32{0x02827928, 0x03fe3434, 0x02e333cd, 0x0247e137, 0x02088500, 0x0154c8ed, 0x02635ea8, 0x01ba7225, 0x003fed9a, 0x001d258b}}},
+ {X: Field{[10]uint32{0x01961bcc, 0x0330508e, 0x03e5ba23, 0x017810cb, 0x039aed2d, 0x00819d90, 0x03c1dc25, 0x01376840, 0x00988710, 0x00297bd1}}, Y: Field{[10]uint32{0x0122db3a, 0x02c3587c, 0x009f0696, 0x0099d96c, 0x02a165c5, 0x0194ee9e, 0x02ecc328, 0x038364f9, 0x003ea363, 0x00072f3e}}},
+ {X: Field{[10]uint32{0x033a9d45, 0x015c8d7e, 0x01e626db, 0x00b8b5b5, 0x0218225f, 0x014a8b2f, 0x03df68b8, 0x01800ce2, 0x02ce9ad4, 0x0013689b}}, Y: Field{[10]uint32{0x01fae659, 0x037a427a, 0x029c73d3, 0x001b9ee8, 0x0061b0a8, 0x030f587d, 0x0210e2d1, 0x011aff31, 0x02637ab5, 0x003442d6}}},
+ {X: Field{[10]uint32{0x018f4763, 0x03b71a7e, 0x0111129d, 0x0214479a, 0x03e9d955, 0x0286693d, 0x00d8eb16, 0x01023922, 0x026f53d2, 0x001b9887}}, Y: Field{[10]uint32{0x00ea1a19, 0x017f540f, 0x0048e4bb, 0x00b2d4b1, 0x007b945a, 0x00d0b1ef, 0x01ad4779, 0x02c4c4d0, 0x02f273e1, 0x001ec523}}},
+ {X: Field{[10]uint32{0x038be83b, 0x01553549, 0x02ab6da4, 0x002a3c20, 0x0066bae2, 0x028e56a4, 0x017ea758, 0x01d1a66d, 0x03645bed, 0x003aebd5}}, Y: Field{[10]uint32{0x03cfbba7, 0x02ae782f, 0x02028650, 0x01298049, 0x02d91631, 0x0227b8f9, 0x029ea943, 0x00c0cd78, 0x00e06c65, 0x001611fd}}},
+ {X: Field{[10]uint32{0x0310182f, 0x03fd8d4c, 0x0017a6a6, 0x028450e3, 0x02faa38c, 0x014ac574, 0x0355dbf0, 0x018cb492, 0x0271711b, 0x00303e22}}, Y: Field{[10]uint32{0x010676ff, 0x027913b3, 0x012481c5, 0x02605069, 0x03fb2e98, 0x002020be, 0x0211eec4, 0x01c08619, 0x014d16c0, 0x000b2feb}}},
+ {X: Field{[10]uint32{0x035c6350, 0x00a1ec16, 0x00ae01b5, 0x02dcf3dc, 0x02dc1cdd, 0x018a48b1, 0x0244fbf2, 0x02526318, 0x001884b7, 0x001766db}}, Y: Field{[10]uint32{0x017fdf1d, 0x0144431f, 0x0297e5e8, 0x02316dab, 0x0118db17, 0x02d53321, 0x03e1644b, 0x0058b12a, 0x031d2f2b, 0x000ca3a0}}},
+ {X: Field{[10]uint32{0x0202e21c, 0x03127c13, 0x00016654, 0x02555641, 0x03e57d75, 0x008e94ed, 0x03214c63, 0x01b9a753, 0x020f37ed, 0x0034744d}}, Y: Field{[10]uint32{0x01d15e4e, 0x007ce51b, 0x02b6a152, 0x0351b248, 0x006eba68, 0x002a2c40, 0x01594144, 0x02d4fe51, 0x0293c6c9, 0x00189fba}}},
+ {X: Field{[10]uint32{0x02411731, 0x01a732fb, 0x00703e49, 0x020d959d, 0x02ace29a, 0x01ec6cac, 0x02cfa189, 0x00ebd562, 0x03cbf102, 0x003bf261}}, Y: Field{[10]uint32{0x01740c69, 0x026f10bd, 0x01dbbe15, 0x03f27d59, 0x02e38242, 0x02f3bd0c, 0x02429863, 0x002fb1c5, 0x0265d379, 0x0006569a}}},
+ {X: Field{[10]uint32{0x00284ff0, 0x0243ea86, 0x02b01310, 0x01ee0fbd, 0x00968d1d, 0x00e19120, 0x0388b787, 0x03cef586, 0x0397163d, 0x003cc09a}}, Y: Field{[10]uint32{0x0211509b, 0x015ab06d, 0x030e9a6c, 0x01321359, 0x035f8764, 0x0167c1bf, 0x0281615d, 0x018eaefc, 0x02616823, 0x0005df0e}}},
+ {X: Field{[10]uint32{0x002c5873, 0x0082435a, 0x0030b562, 0x03e5a3fe, 0x020deeec, 0x03273fd1, 0x02c92c68, 0x016da64a, 0x035f123b, 0x00174d3f}}, Y: Field{[10]uint32{0x01955ac8, 0x02d989b1, 0x02ff3d49, 0x03ea03e2, 0x0025443e, 0x023ac586, 0x0204df14, 0x0281950c, 0x039c8eab, 0x000b4682}}},
+ {X: Field{[10]uint32{0x028447f4, 0x019ca011, 0x030bbdac, 0x0074c6a6, 0x00e0ee59, 0x010c2332, 0x01da0658, 0x01491f0e, 0x021794a9, 0x0032fe6e}}, Y: Field{[10]uint32{0x00461736, 0x009e5ab4, 0x005381b8, 0x0075d3c0, 0x03405810, 0x00d044b4, 0x025fade9, 0x02ba8408, 0x00c310fe, 0x001526c6}}},
+ {X: Field{[10]uint32{0x03dcd31f, 0x032b3531, 0x03a5379a, 0x02e0da35, 0x008e7747, 0x015e9cd1, 0x01982a6b, 0x00986efd, 0x01ba09e2, 0x0024825d}}, Y: Field{[10]uint32{0x00b46dbd, 0x039d8e2b, 0x03dcb434, 0x012f5516, 0x016367d2, 0x0255040c, 0x0221f5ae, 0x01543424, 0x010881af, 0x003a5781}}},
+ {X: Field{[10]uint32{0x03eeca64, 0x033c4c81, 0x000ff33f, 0x0048ef06, 0x00391323, 0x02d3c974, 0x02cdce82, 0x02d57649, 0x02e46fdc, 0x002056ca}}, Y: Field{[10]uint32{0x01b8c971, 0x022d3f92, 0x01512c96, 0x021d57c9, 0x0199285b, 0x0194462e, 0x01e2e268, 0x018dd23c, 0x03c67d88, 0x0018bd8d}}},
+ {X: Field{[10]uint32{0x03e0b16e, 0x00f1153d, 0x019260de, 0x0097688c, 0x0227ca80, 0x02934e1f, 0x02a86397, 0x0352e8c3, 0x02c28e28, 0x0006ee69}}, Y: Field{[10]uint32{0x00d7ab93, 0x03bf1277, 0x01a94f56, 0x0355040d, 0x03206349, 0x031f8051, 0x004265ea, 0x005c7206, 0x00165e32, 0x002832f0}}},
+ {X: Field{[10]uint32{0x0268bc22, 0x00cdf1b6, 0x00c3d34d, 0x02e9e3ad, 0x019c05a4, 0x03789e3c, 0x019d29dd, 0x020faac2, 0x03fedffd, 0x001bc054}}, Y: Field{[10]uint32{0x03f0c626, 0x00147e79, 0x02f824d5, 0x019c3838, 0x039fc499, 0x0288c7ca, 0x00041d3a, 0x00fe167d, 0x000d3501, 0x00294cb4}}},
+ {X: Field{[10]uint32{0x0320258a, 0x032dea46, 0x028552e9, 0x039b1b6b, 0x02ed23e5, 0x006fd556, 0x000d3847, 0x01de9034, 0x033b3bee, 0x000d153d}}, Y: Field{[10]uint32{0x00d18dde, 0x023e54b6, 0x0128f23a, 0x00e8fd03, 0x03992683, 0x01af7b70, 0x025bcaa0, 0x007a3cff, 0x0046cfdf, 0x0024b082}}},
+ {X: Field{[10]uint32{0x030e9a86, 0x024c5f08, 0x01f02fc5, 0x021903b7, 0x001dfcf6, 0x0354a00c, 0x00c2616a, 0x01ad386e, 0x03c9a360, 0x000d9e01}}, Y: Field{[10]uint32{0x016ecae6, 0x012904b0, 0x01a14830, 0x00bc00a0, 0x03fdc4f9, 0x00902572, 0x01ba14c1, 0x03b39c0f, 0x032fa2bb, 0x0007c08f}}},
+ {X: Field{[10]uint32{0x001af62b, 0x02965048, 0x00909acb, 0x0105d7f1, 0x0101b825, 0x03112e05, 0x034e06f0, 0x03dabc4d, 0x01c39891, 0x0023b13f}}, Y: Field{[10]uint32{0x034e5f1b, 0x015b3dfb, 0x01751137, 0x033d7f0a, 0x00fe067b, 0x00f1e63e, 0x01ca0e50, 0x03621e0f, 0x02e5cac2, 0x000b71b2}}},
+ {X: Field{[10]uint32{0x0178a263, 0x026c1aa4, 0x03842872, 0x014546e2, 0x03ffa085, 0x017ea4df, 0x0142f91e, 0x0093e451, 0x026d4c5b, 0x00173092}}, Y: Field{[10]uint32{0x037da472, 0x027573fe, 0x00b98da1, 0x02a0f76f, 0x02ca8d55, 0x0067e87f, 0x0338a4e4, 0x00687efe, 0x02358153, 0x002c76a1}}},
+ {X: Field{[10]uint32{0x03599e9f, 0x013f1378, 0x02a21913, 0x01414314, 0x0292602a, 0x02a04374, 0x0244a6cd, 0x00170ea5, 0x0126c039, 0x0020e416}}, Y: Field{[10]uint32{0x0246089a, 0x0038315e, 0x01e16cf2, 0x022c8767, 0x00909429, 0x02a0dd8e, 0x00b115ea, 0x019e4a88, 0x020fe8af, 0x0010a4c9}}},
+ {X: Field{[10]uint32{0x0189b6c7, 0x02ca6159, 0x00822481, 0x0050d2b9, 0x02e8fa6c, 0x034e1e3e, 0x0204ac30, 0x03a777e0, 0x017e4721, 0x002512c2}}, Y: Field{[10]uint32{0x03d6ddf6, 0x03d2e5a6, 0x00e8ee8a, 0x013011d9, 0x011525bd, 0x039d16e6, 0x03796431, 0x02c257e2, 0x016530e9, 0x0017f11d}}},
+ {X: Field{[10]uint32{0x0023b73d, 0x017aefcd, 0x0030107b, 0x00797ea4, 0x0117327a, 0x018e9ccc, 0x00aaf04a, 0x0304d387, 0x023fcfb7, 0x002ac2d2}}, Y: Field{[10]uint32{0x0296c9da, 0x00efc6b3, 0x00781376, 0x034de170, 0x02b84944, 0x02bb334e, 0x038c92cf, 0x02ea2b35, 0x0263a5bb, 0x003879e4}}},
+ {X: Field{[10]uint32{0x03e8b85f, 0x00f7fb83, 0x010bcf80, 0x0361efc2, 0x031aa2c3, 0x0168b939, 0x03f7fbf0, 0x00ac3bde, 0x00b5220f, 0x0015e8d1}}, Y: Field{[10]uint32{0x01a7d04e, 0x0398e6ec, 0x00f10576, 0x00f059e3, 0x01a9e11a, 0x00e9caa5, 0x00c9f135, 0x02588392, 0x010e08ef, 0x003e0adf}}},
+ {X: Field{[10]uint32{0x00d81ac5, 0x02498ff2, 0x0188da1a, 0x025bb118, 0x033608e3, 0x033c3d3f, 0x038c4c95, 0x01f13147, 0x021a800b, 0x001b814f}}, Y: Field{[10]uint32{0x015e7473, 0x0363124e, 0x03dbadc3, 0x01e5c80b, 0x0362e365, 0x03390a30, 0x035384ff, 0x008f2786, 0x0298e3c8, 0x00218e27}}},
+ {X: Field{[10]uint32{0x02485cb7, 0x03ab8973, 0x03f1c59d, 0x03b1fc20, 0x0148a289, 0x0159ed51, 0x00d4a7c7, 0x01c5fecc, 0x00061804, 0x0018b5d9}}, Y: Field{[10]uint32{0x0268be84, 0x03f2506d, 0x020fc4ca, 0x00b6989a, 0x03d1509b, 0x011c3ed4, 0x031d57b9, 0x007e3614, 0x014b661d, 0x003c758c}}},
+ {X: Field{[10]uint32{0x0129250f, 0x011fcc77, 0x006589e3, 0x00020b4d, 0x025c4d08, 0x02f49126, 0x00cf1080, 0x02caaa0c, 0x00f2219f, 0x003976ca}}, Y: Field{[10]uint32{0x008bd453, 0x023f9a22, 0x00b248e5, 0x034bcd7e, 0x03324fcf, 0x02b512db, 0x03b7012e, 0x01f756e8, 0x024632f9, 0x0030a5b9}}},
+ {X: Field{[10]uint32{0x01b32729, 0x02057c42, 0x00ab23fe, 0x026f0a65, 0x03733ec8, 0x03ffe0c7, 0x013177c9, 0x00379229, 0x03e9a3d0, 0x0011c96c}}, Y: Field{[10]uint32{0x01f8e778, 0x0279a26e, 0x02e12d4a, 0x0334a5e7, 0x02324127, 0x0120aed4, 0x01fdb741, 0x03003c51, 0x0347de38, 0x002b0edd}}},
+ {X: Field{[10]uint32{0x01d72b3e, 0x0278d190, 0x00569bbe, 0x017a9db8, 0x03b036b6, 0x0004f8d1, 0x00ed9187, 0x01cb9ce5, 0x03b6492c, 0x003434eb}}, Y: Field{[10]uint32{0x0202fef3, 0x010bede3, 0x03f1396f, 0x002c0bd8, 0x00bd952b, 0x0028a158, 0x0061caa0, 0x03f81d4c, 0x005b94aa, 0x000b74e9}}},
+ {X: Field{[10]uint32{0x0304632c, 0x0241a3f0, 0x00b4c786, 0x03b73d2d, 0x03104143, 0x0092b3fc, 0x0385654a, 0x03215e5e, 0x0335d717, 0x001e14f9}}, Y: Field{[10]uint32{0x021efadd, 0x00d4d577, 0x00e69cb5, 0x0068524e, 0x02bae3a3, 0x01680a48, 0x0377a8fb, 0x03452b09, 0x03d9e70f, 0x00002a1c}}},
+ {X: Field{[10]uint32{0x02e904a4, 0x02778ce3, 0x032ca778, 0x0325fe75, 0x02ee44e2, 0x013248d5, 0x021a01a1, 0x0371644e, 0x02b37d4f, 0x0001b6c9}}, Y: Field{[10]uint32{0x031941fb, 0x00a2ba58, 0x01b6854a, 0x02498e1a, 0x02d8adf7, 0x02612712, 0x001c409e, 0x028330a3, 0x0225bf2b, 0x00053f88}}},
+ {X: Field{[10]uint32{0x032848df, 0x028bbe3a, 0x00ce699a, 0x003d8ea7, 0x02538e40, 0x01a7e90f, 0x02f7f5c6, 0x02bcf02c, 0x0069bb98, 0x002d4bc2}}, Y: Field{[10]uint32{0x0107be5a, 0x005b85e2, 0x03858bb6, 0x02329dbe, 0x028b821c, 0x00395eda, 0x03378cca, 0x01152b9e, 0x032455bc, 0x0009159a}}},
+ {X: Field{[10]uint32{0x0197b448, 0x007e4e80, 0x037e4c1e, 0x03004e13, 0x03234152, 0x01c3e9f0, 0x034a9e99, 0x02bc0fac, 0x01e11ee6, 0x00218537}}, Y: Field{[10]uint32{0x0372f3cc, 0x0134f31e, 0x02ba15e5, 0x015762e9, 0x024e5c7e, 0x008c3103, 0x0222b5ad, 0x01a1c0ae, 0x01a2ac99, 0x000a8449}}},
+ {X: Field{[10]uint32{0x038c1cfa, 0x00824de4, 0x00ab2dbc, 0x03ad6743, 0x008b3308, 0x03c82f74, 0x0271c180, 0x01b96de3, 0x03ae625f, 0x00260a8d}}, Y: Field{[10]uint32{0x02a40d0c, 0x014c26ad, 0x017dc18e, 0x00af75b1, 0x032a689e, 0x02d41c2f, 0x01249e20, 0x0144a164, 0x016f00a6, 0x0019c7f8}}},
+ {X: Field{[10]uint32{0x003e703a, 0x0068bf53, 0x01d9b408, 0x02bc8b2a, 0x00627a09, 0x0248c700, 0x019742fc, 0x020a73b2, 0x030526b4, 0x001afaa4}}, Y: Field{[10]uint32{0x019a6cc1, 0x00ac1652, 0x014832b0, 0x0043116f, 0x01d7541f, 0x00650f9a, 0x0344d14b, 0x01ed307c, 0x002a5451, 0x002bb150}}},
+ {X: Field{[10]uint32{0x02583edb, 0x01ef4a65, 0x019200ba, 0x026481cc, 0x0054016a, 0x01b445ac, 0x00188b33, 0x0121f9f3, 0x03818694, 0x002d5c91}}, Y: Field{[10]uint32{0x03845cdc, 0x03d8a19d, 0x03ec6208, 0x02ced35f, 0x011d278f, 0x02f163ff, 0x018262de, 0x0292f4f5, 0x01861f80, 0x00172ef4}}},
+ {X: Field{[10]uint32{0x017c5412, 0x03a78b66, 0x01bb62e0, 0x00d1c13b, 0x024df5a5, 0x022b14e4, 0x02f4f531, 0x003a45e1, 0x02627ba0, 0x003786b7}}, Y: Field{[10]uint32{0x022021e0, 0x03fba76b, 0x01a8e4bf, 0x039b8742, 0x03a9d003, 0x007019cf, 0x02dc15a4, 0x00efeff1, 0x02c50bf2, 0x001fbd21}}},
+ {X: Field{[10]uint32{0x0398c0a0, 0x01b4dbcc, 0x0166dd47, 0x0262f004, 0x03337203, 0x02e03875, 0x01e465df, 0x0071067e, 0x017cb172, 0x000dce29}}, Y: Field{[10]uint32{0x030c22f5, 0x01529e2d, 0x00bfd118, 0x01b14a49, 0x0243df56, 0x03610e16, 0x028a629a, 0x02c5b5b4, 0x03b21662, 0x00387c96}}},
+ {X: Field{[10]uint32{0x0281885d, 0x00001b9e, 0x02e37694, 0x02e2dd40, 0x021955fe, 0x0377db6a, 0x01575f12, 0x0048e6a1, 0x01c16b2a, 0x00132b88}}, Y: Field{[10]uint32{0x00dc99c3, 0x03d5972d, 0x019e237a, 0x026ca755, 0x0225fa2c, 0x020a0cac, 0x0271e89c, 0x0183609d, 0x00553886, 0x000abffa}}},
+ {X: Field{[10]uint32{0x00c2bd7b, 0x00bebe37, 0x02039573, 0x03b86ea9, 0x0397bfa7, 0x016f30e9, 0x037cf558, 0x002f8db8, 0x021fba8a, 0x00131446}}, Y: Field{[10]uint32{0x025651af, 0x029172ac, 0x0372d8a6, 0x01a621f0, 0x03abb272, 0x02575a0c, 0x0000fd4a, 0x02affc8d, 0x03945c6b, 0x003a9a7d}}},
+ {X: Field{[10]uint32{0x005a7e29, 0x0145e79d, 0x01f8320c, 0x012cae94, 0x02c2e4a4, 0x03a4db02, 0x007c25ad, 0x010dc098, 0x00c4323b, 0x00360476}}, Y: Field{[10]uint32{0x03c05345, 0x037652b9, 0x0293c3c4, 0x00fda7e7, 0x0346c6df, 0x02d2438e, 0x020aeabc, 0x011fe036, 0x00a217bf, 0x001bfe5c}}},
+ {X: Field{[10]uint32{0x02c43eee, 0x03897985, 0x01b0b1ca, 0x02b87ec2, 0x0233db68, 0x004ed7fe, 0x01bbafdf, 0x02abff8e, 0x01d3b5e5, 0x000407ad}}, Y: Field{[10]uint32{0x02c5ddb3, 0x00698eae, 0x00f4a163, 0x00e4d383, 0x00a49709, 0x02c0c483, 0x03a1c96e, 0x01c96981, 0x01149867, 0x00275a95}}},
+ {X: Field{[10]uint32{0x02480519, 0x0073e2dc, 0x03968de2, 0x01c3bfe3, 0x01ecdc7f, 0x018bfab4, 0x001f21f0, 0x03917f85, 0x0152b8dd, 0x00227ac4}}, Y: Field{[10]uint32{0x0297b447, 0x036c1f2d, 0x0195b41f, 0x02a18fef, 0x00cb6703, 0x00af11dc, 0x02c99d7f, 0x038f55a7, 0x03c43181, 0x003e28cd}}},
+ {X: Field{[10]uint32{0x02d0dc16, 0x03a59366, 0x030cdbd1, 0x03ada379, 0x0149d95e, 0x0154066a, 0x03d8f1e4, 0x0291349c, 0x03f3f48e, 0x0014f58c}}, Y: Field{[10]uint32{0x011645fe, 0x03f4cef3, 0x023af48f, 0x03b923f9, 0x028e8ff4, 0x039b6df9, 0x03fe6f32, 0x033c6cfd, 0x0176964d, 0x0006c9bb}}},
+ {X: Field{[10]uint32{0x00d9be6a, 0x023e57f6, 0x02d1a92f, 0x012e0e62, 0x006ce3db, 0x0273b6d9, 0x0294d26b, 0x00441966, 0x01104989, 0x0037841a}}, Y: Field{[10]uint32{0x02b43d32, 0x03644cd7, 0x03e7b5b9, 0x039b73e0, 0x008768a4, 0x008f5022, 0x00a3d06d, 0x0274595e, 0x0341dbd9, 0x0021d902}}},
+ {X: Field{[10]uint32{0x02f5bea2, 0x005dcf1a, 0x023caf76, 0x01ed0685, 0x00cc6daa, 0x02027684, 0x0189a9a7, 0x038916b0, 0x026f0b9e, 0x00103b47}}, Y: Field{[10]uint32{0x00217b2e, 0x0330787f, 0x03adb50b, 0x00ba9c65, 0x0082bae8, 0x010c2b01, 0x02b7bdf1, 0x03ee69e3, 0x01017298, 0x003ffb45}}},
+ {X: Field{[10]uint32{0x03ba15c1, 0x0046f599, 0x02dfaa3b, 0x028ca7c9, 0x001b7ab3, 0x03a94a73, 0x004d1719, 0x002e68de, 0x02ee59a2, 0x00157eaa}}, Y: Field{[10]uint32{0x002f4a65, 0x014f77c6, 0x0075c373, 0x00169f95, 0x000d7f28, 0x0391c197, 0x014771d8, 0x014f8d7b, 0x039b52ac, 0x002a7e24}}},
+ {X: Field{[10]uint32{0x028af3fb, 0x02f40afe, 0x03ccba53, 0x001fc0d3, 0x00a95ac6, 0x01255b44, 0x000ca172, 0x0222bc86, 0x024e21cf, 0x002d4779}}, Y: Field{[10]uint32{0x03b7f81e, 0x02ce1b00, 0x01ac4878, 0x0066922c, 0x029b8400, 0x0399b129, 0x0399f1f6, 0x00bafd1a, 0x03701c65, 0x0005d766}}},
+ {X: Field{[10]uint32{0x0307b143, 0x03e65ede, 0x00171556, 0x03a3361d, 0x007b8927, 0x00d9f3d0, 0x03235be9, 0x007a092e, 0x00dcbcd9, 0x001455ac}}, Y: Field{[10]uint32{0x00cc91dc, 0x03d2fe08, 0x018dec2a, 0x02432ec3, 0x01d40ada, 0x0049c05b, 0x01ded191, 0x0130ff99, 0x000fa29d, 0x0007515f}}},
+ {X: Field{[10]uint32{0x016dd63d, 0x00476382, 0x02bcd00e, 0x0019e46d, 0x03f1993c, 0x02391069, 0x01fac558, 0x0125cc58, 0x0172060b, 0x000efd47}}, Y: Field{[10]uint32{0x00722d49, 0x02ba293d, 0x0312663e, 0x038abdd3, 0x0173e1e4, 0x03da6126, 0x023905dd, 0x02bf6ff1, 0x007090a7, 0x001ef1ad}}},
+ {X: Field{[10]uint32{0x02d61fe5, 0x036dec26, 0x0205ad76, 0x03193eab, 0x0122fa74, 0x029bcb68, 0x014f4d3b, 0x02040845, 0x00912008, 0x0034a5c4}}, Y: Field{[10]uint32{0x028e3fc8, 0x0123dad8, 0x00156926, 0x01cd954a, 0x02bc33cb, 0x014708f0, 0x000cc141, 0x03cf23e5, 0x03aaf2cc, 0x001cd43a}}},
+ {X: Field{[10]uint32{0x0368013d, 0x02d82a71, 0x0126c559, 0x01f88d05, 0x036d7a3b, 0x007ff4c2, 0x015a5202, 0x0044be89, 0x03ca8e17, 0x0030bb91}}, Y: Field{[10]uint32{0x03ece448, 0x0014058a, 0x0031a453, 0x002080a6, 0x0280d9ff, 0x036cec8e, 0x008e83be, 0x01fd6c77, 0x036bd83b, 0x000b9ba2}}},
+ {X: Field{[10]uint32{0x0270b6cf, 0x016b6f4f, 0x03aaae47, 0x012d5876, 0x00c5ef44, 0x01b31300, 0x00da39e9, 0x03383678, 0x00d69ddc, 0x00156666}}, Y: Field{[10]uint32{0x00ffb328, 0x014d308d, 0x03ac525c, 0x01cc6bcb, 0x00cf0f31, 0x02d34879, 0x02b5e8cd, 0x03b96e37, 0x020095ae, 0x0031270a}}},
+ {X: Field{[10]uint32{0x03baf363, 0x0152405a, 0x032f9e9d, 0x03764372, 0x017c1955, 0x01c86a63, 0x01305c39, 0x02eb7791, 0x02c3e4c8, 0x0012d2c0}}, Y: Field{[10]uint32{0x00d43468, 0x01a178c6, 0x00fb925b, 0x0191856f, 0x01d22a6a, 0x00f70c13, 0x01d546e0, 0x0166cf09, 0x037ebe8f, 0x00282d9e}}},
+ {X: Field{[10]uint32{0x02c549c5, 0x01f74b2a, 0x0101fe0d, 0x03a3b87b, 0x007650ad, 0x0350a25f, 0x00f897c5, 0x02d09d47, 0x03fd7836, 0x003eebf9}}, Y: Field{[10]uint32{0x02668436, 0x00044384, 0x03aeb5e7, 0x00a26914, 0x01229a7e, 0x03b69489, 0x03841f58, 0x01f945ed, 0x014352d0, 0x000bd446}}},
+ {X: Field{[10]uint32{0x0076c06c, 0x03786d9c, 0x0219f954, 0x0340a92c, 0x0281b21b, 0x01ceb139, 0x004e620b, 0x02e281e2, 0x02f90c65, 0x003334c1}}, Y: Field{[10]uint32{0x0257510b, 0x017d6c55, 0x005668ab, 0x029d6932, 0x00003f68, 0x00f8115d, 0x03056dc7, 0x02d43241, 0x007fa7b0, 0x00208fe9}}},
+ {X: Field{[10]uint32{0x00195a3b, 0x02e35586, 0x01980820, 0x0177626a, 0x01912415, 0x0211d14b, 0x01a870a7, 0x01a474ed, 0x0038995a, 0x002ebef6}}, Y: Field{[10]uint32{0x00ad92a3, 0x024f9f42, 0x006874e8, 0x03560e72, 0x004f05f4, 0x00082d6c, 0x00e7f521, 0x00a7bbec, 0x01fac948, 0x00237d32}}},
+ {X: Field{[10]uint32{0x024f458f, 0x0330e008, 0x019fb157, 0x00dee1a4, 0x00713d8f, 0x03e50299, 0x0166af8f, 0x0055b828, 0x003a8073, 0x00344973}}, Y: Field{[10]uint32{0x0035abde, 0x013b2f2f, 0x012a3a03, 0x00bbc981, 0x021bb7a2, 0x0288e9e3, 0x001054ae, 0x00de9f7c, 0x00b6ac4e, 0x00280c3a}}},
+ {X: Field{[10]uint32{0x038187c2, 0x03c9e3b2, 0x008668cb, 0x03f629fa, 0x01f2d1bb, 0x0388b90b, 0x02c6433b, 0x036aebbc, 0x03281b5d, 0x001f5247}}, Y: Field{[10]uint32{0x00dfe8ed, 0x009ee9bd, 0x02af9bea, 0x031faf20, 0x0228b040, 0x01d82cbf, 0x0381ea3f, 0x00259b28, 0x021d7036, 0x00328605}}},
+ {X: Field{[10]uint32{0x01f8c39e, 0x017c1ef3, 0x03961601, 0x025541e6, 0x016d70a5, 0x02a7d25e, 0x002995c6, 0x0048ea1b, 0x02339f29, 0x000c7336}}, Y: Field{[10]uint32{0x00b49f65, 0x030b93fa, 0x03a19561, 0x02c2f201, 0x02376626, 0x0018347c, 0x0128a9ff, 0x007eb265, 0x010bedf6, 0x002bac9f}}},
+ {X: Field{[10]uint32{0x017807ba, 0x00e7d28a, 0x01ba7d74, 0x00bc3784, 0x01e5ec91, 0x006ddbec, 0x012073e7, 0x024625b2, 0x00c7f45f, 0x0001e799}}, Y: Field{[10]uint32{0x0023c921, 0x0177b5d6, 0x02e7efe8, 0x02f3258c, 0x00d17685, 0x0097626d, 0x011abe38, 0x0258f162, 0x0036b354, 0x0015f64d}}},
+ {X: Field{[10]uint32{0x0042274e, 0x00c7daa3, 0x0206c78a, 0x034b7af3, 0x0369f422, 0x002f690f, 0x02f057b6, 0x00e1a1c7, 0x02dffccb, 0x003588cb}}, Y: Field{[10]uint32{0x000ef826, 0x0331f5fb, 0x004d6d62, 0x018eb0f7, 0x0158a18f, 0x026d7df4, 0x03472f22, 0x038274db, 0x03a0b2e2, 0x0004f6bb}}},
+ {X: Field{[10]uint32{0x006e368e, 0x02ed99d1, 0x03ea6a7e, 0x0349228c, 0x00722d78, 0x020a2516, 0x038fc00c, 0x038e94dc, 0x0298b2d6, 0x0008703c}}, Y: Field{[10]uint32{0x03062383, 0x019837f7, 0x034a2b20, 0x016b97cc, 0x02cbb3f2, 0x017695a7, 0x015eede1, 0x03f656e2, 0x03ec17d2, 0x00219d54}}},
+ {X: Field{[10]uint32{0x003196c8, 0x00b2bb93, 0x031d0f4f, 0x0070ff66, 0x00eaa231, 0x013dd1c8, 0x011621c5, 0x03de6755, 0x01010dcb, 0x0007468f}}, Y: Field{[10]uint32{0x039734eb, 0x03ebab90, 0x0233d6f8, 0x00701f97, 0x005453bf, 0x00e51763, 0x01b1a301, 0x03e4321e, 0x01159900, 0x003569e8}}},
+ {X: Field{[10]uint32{0x00e76735, 0x02ec770a, 0x025614f4, 0x0171dd4e, 0x0162e26d, 0x0160a854, 0x00a97d18, 0x027b7803, 0x02808fa9, 0x0015d221}}, Y: Field{[10]uint32{0x03c17c6f, 0x02876e4b, 0x02b1eeba, 0x00d2576c, 0x00b3bbee, 0x03b06925, 0x000ecc54, 0x03b78373, 0x00597117, 0x0037af6a}}},
+ {X: Field{[10]uint32{0x0391715a, 0x03eb7225, 0x0207c9f6, 0x034c7073, 0x03607194, 0x0322f7a7, 0x01e820c4, 0x037fe938, 0x00d34ce1, 0x002db74d}}, Y: Field{[10]uint32{0x0239cc9d, 0x02194862, 0x03200717, 0x0150e810, 0x031487e5, 0x0126f1f3, 0x01c0ec90, 0x0354ccab, 0x0068e405, 0x0022fd22}}},
+ {X: Field{[10]uint32{0x0291d0de, 0x01412f52, 0x031600f3, 0x01b27882, 0x035821df, 0x0148b7e6, 0x02bc8871, 0x021dcb28, 0x02d56908, 0x00243e77}}, Y: Field{[10]uint32{0x02f902ac, 0x03ae9dba, 0x017f9a2b, 0x006c498e, 0x01f76b3c, 0x011250ce, 0x010af26b, 0x0129bbf7, 0x024add53, 0x000345f9}}},
+ {X: Field{[10]uint32{0x032cfa59, 0x02b3195a, 0x0299d260, 0x00e66c40, 0x03db07b2, 0x00c00a1c, 0x006e4a0c, 0x024d4e44, 0x00e858d1, 0x003157cd}}, Y: Field{[10]uint32{0x00e50f5b, 0x0058b78c, 0x00dda11f, 0x03ef05ae, 0x009a8fe1, 0x00b3becd, 0x0149f7fe, 0x0288b9ca, 0x00d474b5, 0x001f67ce}}},
+ {X: Field{[10]uint32{0x02b8ecad, 0x03c5c895, 0x025750c5, 0x034adbd4, 0x03f39c16, 0x0128ad89, 0x03f8452c, 0x0207166c, 0x0192d389, 0x001ab910}}, Y: Field{[10]uint32{0x030b099d, 0x0365c55f, 0x02d61603, 0x0073b69a, 0x03fa61de, 0x00e3925c, 0x01c4b91e, 0x00812a7b, 0x00dd7c49, 0x0026eeea}}},
+ {X: Field{[10]uint32{0x03dcffbc, 0x0113bbdb, 0x0379ae03, 0x007db362, 0x00bd0c25, 0x02ad9113, 0x013ad99e, 0x006cd9aa, 0x0239423e, 0x000ce9f5}}, Y: Field{[10]uint32{0x0011c61e, 0x021b8ee5, 0x002c02bb, 0x024756eb, 0x032f0678, 0x027b48b4, 0x012684fc, 0x0328abe9, 0x02cc006d, 0x00309844}}},
+ {X: Field{[10]uint32{0x0159af0a, 0x010351fc, 0x024b2ea6, 0x03643d4a, 0x013380c1, 0x01db29b1, 0x03a6642a, 0x0219c0a3, 0x0331eac4, 0x001211c4}}, Y: Field{[10]uint32{0x00142704, 0x021b51e8, 0x0314d5b5, 0x0251c169, 0x01c5047b, 0x022ed87d, 0x0103a311, 0x038073ee, 0x014693fd, 0x002d3aa1}}},
+ {X: Field{[10]uint32{0x02587917, 0x0004a970, 0x00e86d46, 0x01e6fae3, 0x0172defd, 0x00f492dc, 0x03faab74, 0x00c70133, 0x00399ae7, 0x0001596b}}, Y: Field{[10]uint32{0x00bbab48, 0x000a6066, 0x000d779c, 0x0227f53d, 0x02146649, 0x0026a591, 0x0011fece, 0x00c7abf1, 0x02a5d450, 0x0037ad5a}}},
+ {X: Field{[10]uint32{0x00314c0b, 0x01c21726, 0x03773eaa, 0x0251b72f, 0x00995490, 0x03168cbf, 0x00d017d0, 0x00adf5aa, 0x00b53b6c, 0x0025920e}}, Y: Field{[10]uint32{0x01130b97, 0x03e717bf, 0x02a2f6ca, 0x027be810, 0x03ac6fdc, 0x039daf5d, 0x0271ee0e, 0x000d3f22, 0x033cec44, 0x000b6be7}}},
+ {X: Field{[10]uint32{0x00eb88d5, 0x038bc7b1, 0x0087c4aa, 0x00340bbe, 0x006f9bff, 0x039522c5, 0x003522da, 0x001e2e76, 0x02907b8d, 0x002f0036}}, Y: Field{[10]uint32{0x00ddb152, 0x03856908, 0x02befeaf, 0x01fed066, 0x020fef4d, 0x0132ca7d, 0x0321dd13, 0x036dcd97, 0x0111f9e2, 0x001af43f}}},
+ {X: Field{[10]uint32{0x03a7bea4, 0x01156af6, 0x0111d075, 0x02cc9fec, 0x00a2082b, 0x03d79543, 0x03dd8ae9, 0x027c33c4, 0x005500f8, 0x0006967e}}, Y: Field{[10]uint32{0x0200c823, 0x0321c29d, 0x035c2150, 0x01db8b90, 0x00e77e6e, 0x02997142, 0x0225c530, 0x02b7ff27, 0x0340d460, 0x001fa8be}}},
+ {X: Field{[10]uint32{0x02ccc764, 0x01662953, 0x02fdad88, 0x028c9e69, 0x00452706, 0x015a5409, 0x01081624, 0x03f1ab51, 0x011bd3bf, 0x001e8ed8}}, Y: Field{[10]uint32{0x02233145, 0x0286b48c, 0x030d368a, 0x035a875c, 0x0283d30b, 0x015274ea, 0x033d6efe, 0x01b94b21, 0x01896806, 0x0005b825}}},
+ {X: Field{[10]uint32{0x015d6d91, 0x01786dc0, 0x02bef4cd, 0x00a14444, 0x02a0a1cc, 0x0315b89e, 0x02fa95b5, 0x002969e1, 0x01779cbe, 0x000bfb55}}, Y: Field{[10]uint32{0x014bddfa, 0x02751b8b, 0x02637995, 0x0399bf97, 0x02f66fd3, 0x01b71942, 0x01691fa3, 0x01fed58f, 0x0027b229, 0x001fbab3}}},
+ {X: Field{[10]uint32{0x034a9558, 0x0152835d, 0x02d02f01, 0x0377c6cd, 0x03018326, 0x02faed12, 0x03efaea6, 0x037d959c, 0x0217952e, 0x00099eb4}}, Y: Field{[10]uint32{0x01a13fef, 0x01456ec4, 0x01e6d907, 0x02de8121, 0x01703cc9, 0x02fd5280, 0x00a7b330, 0x017979a2, 0x00c07e9d, 0x001dd64f}}},
+ {X: Field{[10]uint32{0x036687e8, 0x0017b85f, 0x02b106fa, 0x006f29fa, 0x010e0d34, 0x017cc851, 0x038cceca, 0x026721a5, 0x022c239b, 0x003adbb5}}, Y: Field{[10]uint32{0x02c0a241, 0x027eff14, 0x0133b662, 0x02e24187, 0x012a6e6a, 0x00eb61d5, 0x029b2258, 0x02a3a338, 0x022250f6, 0x002b6267}}},
+ {X: Field{[10]uint32{0x030a9e5b, 0x00425350, 0x027b1089, 0x026fe232, 0x035087a5, 0x005a1b13, 0x00ef33c4, 0x00853c2d, 0x017ce03d, 0x0032973c}}, Y: Field{[10]uint32{0x00989ce9, 0x018eb4f4, 0x0003ef99, 0x0201c95e, 0x01e19351, 0x023a80a6, 0x03ae683c, 0x01d6eb3f, 0x02eb473f, 0x0005f913}}},
+ {X: Field{[10]uint32{0x01e82f7c, 0x01c85794, 0x03a2fe4c, 0x033d1988, 0x00c82f21, 0x024f9adb, 0x03035eca, 0x0190b98f, 0x029cacf0, 0x00131ef0}}, Y: Field{[10]uint32{0x02776875, 0x034af8a0, 0x01322e59, 0x03903c7d, 0x03eb537b, 0x0102900a, 0x03f64e7e, 0x01e5b050, 0x036e8756, 0x001f1579}}},
+ {X: Field{[10]uint32{0x031058e3, 0x0186f0d9, 0x03d2080b, 0x02108e27, 0x03797831, 0x02b3d375, 0x03e50130, 0x0227c140, 0x00e9b422, 0x0015f2ae}}, Y: Field{[10]uint32{0x03d9e2bc, 0x0262aaa7, 0x012ca7c3, 0x011650c3, 0x022b048c, 0x01cba6fb, 0x030b884e, 0x009cf69e, 0x03186671, 0x001e0894}}},
+ {X: Field{[10]uint32{0x03c4823e, 0x03d8c426, 0x02c2753f, 0x01cbb4b9, 0x01abf3d2, 0x015a10fd, 0x0013a82a, 0x0030d37a, 0x023df112, 0x000f0afc}}, Y: Field{[10]uint32{0x013f1990, 0x03add64b, 0x029d0d08, 0x00a384bf, 0x00767409, 0x032772e2, 0x00c5b47e, 0x0348cf38, 0x036388ae, 0x0005d676}}},
+ {X: Field{[10]uint32{0x02ab38d2, 0x0206c683, 0x02856d85, 0x0288a34d, 0x0234170a, 0x0373f774, 0x03348dc3, 0x01d0a834, 0x01ac83e0, 0x0030042a}}, Y: Field{[10]uint32{0x0076aafd, 0x009da10f, 0x038ea9cd, 0x004111ad, 0x002b2dc8, 0x02433e48, 0x031da1f1, 0x029a3f87, 0x03ed0644, 0x0018d325}}},
+ {X: Field{[10]uint32{0x02071994, 0x01164ea4, 0x01660550, 0x00fee8ea, 0x014f1b77, 0x00f6722a, 0x00cb632b, 0x0291a039, 0x01ee548b, 0x00292af6}}, Y: Field{[10]uint32{0x00f87182, 0x017a3bf2, 0x00b6111b, 0x0123afff, 0x01c9390b, 0x0100d597, 0x02ab00a8, 0x00ca5ff1, 0x026aba26, 0x000e8509}}},
+ {X: Field{[10]uint32{0x00dda172, 0x028ccf7a, 0x007115a7, 0x039666de, 0x01d68b82, 0x03b3bff9, 0x0008540d, 0x0057c717, 0x0052efc1, 0x003700b2}}, Y: Field{[10]uint32{0x036c29c6, 0x01febd57, 0x009ba236, 0x03732e15, 0x028a35f8, 0x023332a8, 0x03f4eaed, 0x03a10b29, 0x013a8e1a, 0x00393996}}},
+ {X: Field{[10]uint32{0x01ec57c8, 0x036d68a4, 0x01cac1b6, 0x0205c85d, 0x000a54fc, 0x03ca7f5f, 0x00a5a4b5, 0x008bff0a, 0x01e82238, 0x003b91da}}, Y: Field{[10]uint32{0x0020385f, 0x004ff9b0, 0x00619384, 0x0050a025, 0x00338905, 0x02c05631, 0x0178b9a2, 0x0323ae82, 0x02bc4076, 0x003f28b1}}},
+ {X: Field{[10]uint32{0x013ef066, 0x0349c9f6, 0x032abb11, 0x033cc493, 0x002cf990, 0x03c2230e, 0x035a6dec, 0x00303f50, 0x001d3491, 0x003cc01b}}, Y: Field{[10]uint32{0x0149eae2, 0x00da4132, 0x00d9b82d, 0x01b2237f, 0x03f8016a, 0x00d73c99, 0x01ebaf12, 0x01fd468a, 0x01f5aa36, 0x00001d8a}}},
+ {X: Field{[10]uint32{0x027313b7, 0x02e4d5c7, 0x030f3794, 0x001124cb, 0x02b1b9c8, 0x00970ff5, 0x01f0a3e3, 0x0159a44a, 0x003d07bf, 0x001f3ec8}}, Y: Field{[10]uint32{0x002bc60f, 0x0116ed3a, 0x02d3982a, 0x03f99c60, 0x01e4ae08, 0x021ec05b, 0x00c42173, 0x0270e322, 0x01fd2433, 0x0013ddae}}},
+ {X: Field{[10]uint32{0x02312c0a, 0x01343acc, 0x03206a32, 0x01c60eba, 0x01efeabe, 0x01c1156b, 0x0130be8e, 0x00264c27, 0x00e036e0, 0x0003328f}}, Y: Field{[10]uint32{0x0215b9e5, 0x035fa345, 0x018b20ef, 0x03766369, 0x0091b437, 0x00163223, 0x00637252, 0x01f1b4d3, 0x0258fe94, 0x00259d2b}}},
+ {X: Field{[10]uint32{0x02b0d9c8, 0x02b39982, 0x01212c66, 0x03488e27, 0x01d9815f, 0x007e635c, 0x01a071c0, 0x01709e0b, 0x014881cd, 0x0027ed90}}, Y: Field{[10]uint32{0x01813251, 0x00f04fb4, 0x0309bce2, 0x011e71da, 0x03d11d50, 0x0013c71c, 0x035e515c, 0x00dd097d, 0x00541a51, 0x00013095}}},
+ {X: Field{[10]uint32{0x01558b25, 0x001c2d94, 0x01542c2c, 0x03601aa8, 0x01eb5d2a, 0x009582d3, 0x0139de23, 0x03516443, 0x02bf03e3, 0x000076ef}}, Y: Field{[10]uint32{0x010b9db1, 0x02e739cb, 0x01876877, 0x0145a60c, 0x01940eae, 0x01d21328, 0x014753fd, 0x03924106, 0x031c2e94, 0x003b1a39}}},
+ {X: Field{[10]uint32{0x006bb5f7, 0x00428fe9, 0x01e215a2, 0x03a49061, 0x015a890e, 0x01321350, 0x002856b0, 0x01d085dd, 0x021992f4, 0x001dd474}}, Y: Field{[10]uint32{0x03237fef, 0x00f19206, 0x01a2273a, 0x028532b1, 0x036371f6, 0x03da6305, 0x01327493, 0x0321b3b7, 0x01c5b770, 0x000a456a}}},
+ {X: Field{[10]uint32{0x00f36a2d, 0x025ff2bb, 0x01737707, 0x02593847, 0x01e7b89c, 0x033d992c, 0x0382983e, 0x0270f881, 0x01a05b18, 0x000e6a12}}, Y: Field{[10]uint32{0x013690c5, 0x02d7b440, 0x01114f43, 0x014d53d0, 0x0148e692, 0x019a1625, 0x02274d15, 0x036c1af8, 0x00f16191, 0x0034f9be}}},
+ {X: Field{[10]uint32{0x039b25bb, 0x0045f2f9, 0x01dea768, 0x00a2e2ff, 0x0080e3d6, 0x0104b59f, 0x0395522d, 0x03b483e7, 0x0125b29c, 0x0019f958}}, Y: Field{[10]uint32{0x0103da21, 0x01edc4a3, 0x0257f916, 0x033c19ba, 0x033c83ed, 0x0340b4a4, 0x020fd883, 0x008fd12a, 0x00157e3c, 0x0018237f}}},
+ {X: Field{[10]uint32{0x038f1525, 0x008a6ded, 0x027bb5cb, 0x03bd4a4c, 0x02ecdd01, 0x02560e7d, 0x01eec20e, 0x0356774c, 0x02da02f7, 0x0002946b}}, Y: Field{[10]uint32{0x03847903, 0x0024b035, 0x02cdd1f0, 0x03420364, 0x036621c7, 0x031a062a, 0x038b18f4, 0x0218acf4, 0x03df93fb, 0x001c1259}}},
+ {X: Field{[10]uint32{0x02c1745d, 0x019308da, 0x01e7aaae, 0x01bfed22, 0x01f8bcb3, 0x00ec00e2, 0x02b71b77, 0x032d1bd7, 0x013e73a1, 0x0032601a}}, Y: Field{[10]uint32{0x02fae474, 0x0330162d, 0x02bd4274, 0x03bc01c1, 0x00b3b21f, 0x03eee9ba, 0x01853e56, 0x01fbeddc, 0x008efe6b, 0x002fcee0}}},
+ {X: Field{[10]uint32{0x021391a9, 0x01e8dd02, 0x007136b1, 0x034a5235, 0x0394167b, 0x025d7a7c, 0x0227aab2, 0x013070a3, 0x0130bcf5, 0x0031e37e}}, Y: Field{[10]uint32{0x004d9ae7, 0x023c378c, 0x01e5e031, 0x00886f19, 0x00163bfe, 0x020ef878, 0x03b5e9a2, 0x01e6f956, 0x03366d3a, 0x00269093}}},
+ {X: Field{[10]uint32{0x01284089, 0x010bf11b, 0x016e5fb2, 0x039399cc, 0x00a998b1, 0x03dfc794, 0x0168ebc8, 0x03cea798, 0x03bcc6d2, 0x00269d7d}}, Y: Field{[10]uint32{0x03169e01, 0x03cc566f, 0x037bfd40, 0x030de1e5, 0x0239bf6e, 0x03f1f8d6, 0x0106c6e8, 0x02e6a8eb, 0x00e6dff8, 0x00032d1e}}},
+ {X: Field{[10]uint32{0x036e6224, 0x02dc68e2, 0x001c0d20, 0x01f2dbe0, 0x007eba1e, 0x01739cf9, 0x008277d9, 0x02cf9f6d, 0x031adb0b, 0x001dac84}}, Y: Field{[10]uint32{0x0179263a, 0x034924a6, 0x007b2f79, 0x03e04831, 0x03196c5a, 0x034a1dcd, 0x01e36e6c, 0x03956c2a, 0x00daef60, 0x0000cb8f}}},
+ {X: Field{[10]uint32{0x001384e1, 0x0290acd7, 0x01e68f32, 0x011b7ae3, 0x03cdcc4c, 0x036a2520, 0x01f96c93, 0x025c77d5, 0x03614ec5, 0x00086260}}, Y: Field{[10]uint32{0x026dac3e, 0x021ad7c4, 0x02c97d64, 0x012b6726, 0x01c5eda5, 0x01dda5d0, 0x02a2d224, 0x0254eac8, 0x005044a4, 0x000b0e5b}}},
+ {X: Field{[10]uint32{0x03db8adc, 0x013e1d78, 0x002a9aa1, 0x029b3d76, 0x03a08449, 0x014a3fb2, 0x01dbe1ca, 0x00603440, 0x02494e9d, 0x002b02c2}}, Y: Field{[10]uint32{0x00412554, 0x03bf8f9c, 0x02dd9b2a, 0x027cc518, 0x00371dd1, 0x01a9aa3a, 0x0153b9c5, 0x02d60cb7, 0x001225a1, 0x0009b475}}},
+ {X: Field{[10]uint32{0x00e04625, 0x029b09cc, 0x00a1b6dc, 0x0336efc1, 0x029d1a78, 0x017d65a8, 0x02d33297, 0x02997ef5, 0x018c0851, 0x003e1a6d}}, Y: Field{[10]uint32{0x02a5bff0, 0x02eaec31, 0x01b09c3c, 0x006ee2e4, 0x00a0cfb3, 0x00526527, 0x00b1603e, 0x0171cb06, 0x0344fc6f, 0x001037b8}}},
+ {X: Field{[10]uint32{0x01544c3a, 0x01e35bae, 0x032aaecf, 0x00ea39f5, 0x01a640a4, 0x01cf18fb, 0x004a5f22, 0x00943e26, 0x02db2406, 0x003dd3c0}}, Y: Field{[10]uint32{0x0386185b, 0x02bd64f3, 0x02aea1c0, 0x01e87bba, 0x015e364f, 0x017caf3c, 0x03c1a618, 0x007a4a28, 0x026dcacc, 0x00220b8e}}},
+ {X: Field{[10]uint32{0x027ea65d, 0x0250ea81, 0x0069ff3d, 0x01412dfa, 0x0288c390, 0x002a9a74, 0x03c9284a, 0x0157acba, 0x02b61d67, 0x0030184f}}, Y: Field{[10]uint32{0x03848cba, 0x0084f149, 0x02c09fe4, 0x006fc34d, 0x0129931c, 0x01764a27, 0x03a89665, 0x0320b92b, 0x02e527b5, 0x001cbd86}}},
+ {X: Field{[10]uint32{0x031285db, 0x00e7c23c, 0x007a7eb7, 0x018d490c, 0x00ae0dbf, 0x0045ebac, 0x00fd8c47, 0x002298f0, 0x039860ba, 0x003ad9bf}}, Y: Field{[10]uint32{0x03ddc5d5, 0x01d456a1, 0x0261655c, 0x03cc1dd3, 0x027d3662, 0x03903d2e, 0x005dfb94, 0x03caba2c, 0x02ca54bc, 0x00030c50}}},
+ {X: Field{[10]uint32{0x004a861d, 0x0145bc3b, 0x015b871a, 0x005455b0, 0x02e41c6b, 0x0294d180, 0x025d58bc, 0x018187f0, 0x00e6a125, 0x000e9c42}}, Y: Field{[10]uint32{0x004393a6, 0x00c1938f, 0x01226a18, 0x035d9b7c, 0x00957bfc, 0x005f9fa2, 0x011b5bec, 0x02aec806, 0x0102041c, 0x0036ab8b}}},
+ {X: Field{[10]uint32{0x00f89d5f, 0x03a500ee, 0x00958949, 0x03cd39d1, 0x00ea1a2f, 0x02c817cb, 0x02e73717, 0x01a744cf, 0x0258c831, 0x00345f8e}}, Y: Field{[10]uint32{0x018b1a20, 0x01ffcc98, 0x010225ac, 0x02e60729, 0x012d75fc, 0x034574d2, 0x00ffafa6, 0x03662e48, 0x037d69e5, 0x002630d7}}},
+ {X: Field{[10]uint32{0x03f6541c, 0x00daeac2, 0x01385fff, 0x0353dd9e, 0x0298caf6, 0x018638bf, 0x0350cbf2, 0x02e3b450, 0x0092cefb, 0x0035b8ca}}, Y: Field{[10]uint32{0x02636298, 0x0207af6c, 0x0021e080, 0x02f3b6f8, 0x00976196, 0x015bc926, 0x0072b553, 0x017b001e, 0x022ebe0f, 0x001c5d51}}},
+ {X: Field{[10]uint32{0x02ffef75, 0x01777e02, 0x0229186d, 0x02ba4ea9, 0x0282ddc8, 0x00e3b001, 0x00e2182f, 0x0002b9ba, 0x01ff60e9, 0x000c6352}}, Y: Field{[10]uint32{0x026333b2, 0x02205981, 0x00831a98, 0x03aef8a2, 0x0008dcc3, 0x037daa9c, 0x02d4fd8f, 0x01853707, 0x0027dd7d, 0x001ba5fb}}},
+ {X: Field{[10]uint32{0x00cf6346, 0x03e05126, 0x0367c5a2, 0x00ada35b, 0x01c075e7, 0x01616aef, 0x00ea5aeb, 0x036e2e9a, 0x02301772, 0x003f5be7}}, Y: Field{[10]uint32{0x0128d2c0, 0x03aace07, 0x001254d4, 0x00c2abfd, 0x02d76082, 0x01610d55, 0x01c5f513, 0x016f5729, 0x02e76477, 0x0036b745}}},
+ {X: Field{[10]uint32{0x002ddd36, 0x02b90e86, 0x00d31566, 0x00aba558, 0x00f07428, 0x02f39da3, 0x00ed08d4, 0x011d86a4, 0x0338a2c7, 0x0023f896}}, Y: Field{[10]uint32{0x024c23a2, 0x0386a087, 0x015c73f8, 0x010c9c74, 0x0251d668, 0x03ef7f8b, 0x00da1b32, 0x02ade28b, 0x004a77c6, 0x001bb87a}}},
+ {X: Field{[10]uint32{0x0393bef8, 0x03fae665, 0x03e5d2e6, 0x02ca91b5, 0x013e12ba, 0x01afee05, 0x0217bcff, 0x023fbd2b, 0x02d288ed, 0x000df3c3}}, Y: Field{[10]uint32{0x03e3e0d3, 0x02851b6e, 0x03339119, 0x01ec85e4, 0x00e17a41, 0x036d709e, 0x01254f4d, 0x001d4726, 0x025718eb, 0x00024b9e}}},
+ {X: Field{[10]uint32{0x03bf403c, 0x01611081, 0x011e0091, 0x013d4c7b, 0x00eca0e0, 0x0180003a, 0x01eb812b, 0x034321db, 0x006106b9, 0x001a2308}}, Y: Field{[10]uint32{0x00cc01fe, 0x01fac517, 0x035bda8b, 0x020fcb3a, 0x00011d85, 0x008802f7, 0x0112e763, 0x01354f7d, 0x02ba41ba, 0x002ead2c}}},
+ {X: Field{[10]uint32{0x00b3d804, 0x020e569c, 0x004e9d86, 0x0213626a, 0x02d1b535, 0x00e59485, 0x022371d6, 0x0254d760, 0x02aaf539, 0x0012d32a}}, Y: Field{[10]uint32{0x01ee73d2, 0x01ef5014, 0x0070ae4c, 0x02444571, 0x02652fbd, 0x01d8793a, 0x001d0437, 0x001268ec, 0x03afcd18, 0x000f7749}}},
+ {X: Field{[10]uint32{0x02fa1d2e, 0x013754b8, 0x00e56144, 0x02609388, 0x0347cca3, 0x022ce6d7, 0x00ed9a51, 0x036981d6, 0x03c44135, 0x001bd6b2}}, Y: Field{[10]uint32{0x02cd58c4, 0x0134df12, 0x02569052, 0x035ccd7e, 0x02f729f1, 0x00bc65e8, 0x02f2efc0, 0x03653522, 0x0146e5f6, 0x00017727}}},
+ {X: Field{[10]uint32{0x0267fc42, 0x010c4f70, 0x008c6ce9, 0x008dce0a, 0x02661d6f, 0x022dad88, 0x01a527bf, 0x032e45bf, 0x00493dff, 0x001e74b5}}, Y: Field{[10]uint32{0x020c08db, 0x0017cdc2, 0x01de1d28, 0x0247575b, 0x038d9027, 0x03ef2454, 0x0302823d, 0x03dff2f8, 0x03f13fa8, 0x002c9a0e}}},
+ {X: Field{[10]uint32{0x01f95524, 0x0002ccfe, 0x00118c08, 0x02f00860, 0x01f3915d, 0x03319f50, 0x037a6b07, 0x01ee7271, 0x007e246b, 0x000cea3a}}, Y: Field{[10]uint32{0x0116ff8f, 0x00d0cce7, 0x0229470b, 0x03bf736c, 0x01207d30, 0x00b97116, 0x015e36be, 0x03417c99, 0x004c584f, 0x002eaa09}}},
+ {X: Field{[10]uint32{0x01868e95, 0x036aae9e, 0x03a193f4, 0x02c83ee9, 0x013235dd, 0x012f5518, 0x0161a7ae, 0x01f7e081, 0x0132f388, 0x002685a4}}, Y: Field{[10]uint32{0x00630bcd, 0x02408a51, 0x03bc0719, 0x000397e2, 0x02a233b1, 0x02a59656, 0x01452161, 0x011b110a, 0x03179954, 0x001a1bf0}}},
+ {X: Field{[10]uint32{0x0383ac42, 0x01184121, 0x026fc290, 0x0278b297, 0x01c85998, 0x010e7cbd, 0x03dc7e90, 0x0338fe6a, 0x00f48405, 0x001e42dd}}, Y: Field{[10]uint32{0x0224a701, 0x02cc12e2, 0x028a66eb, 0x00aec6a4, 0x011dc676, 0x01c44697, 0x00593a37, 0x02172a64, 0x01135623, 0x00225872}}},
+ {X: Field{[10]uint32{0x02f9e49c, 0x021ea8dc, 0x02438b54, 0x0217d493, 0x02954717, 0x03ccbf35, 0x00aaeb69, 0x030b661f, 0x00cfae1f, 0x0038a8f4}}, Y: Field{[10]uint32{0x00c93046, 0x00b4cdc5, 0x008db498, 0x000e63ed, 0x0211f7dc, 0x00233914, 0x03edb543, 0x01c230d5, 0x0205ecf2, 0x00273090}}},
+ {X: Field{[10]uint32{0x020bcbea, 0x03087b25, 0x03a7a2b3, 0x00f98f8e, 0x00cfd265, 0x01bcab9a, 0x01372b19, 0x030655db, 0x00435992, 0x00032cc3}}, Y: Field{[10]uint32{0x01ccd0b4, 0x01f374e2, 0x0083d498, 0x016099a9, 0x02fb6830, 0x02d246e2, 0x009cba14, 0x00e326b3, 0x01b97083, 0x003d95cd}}},
+ {X: Field{[10]uint32{0x00e8b46a, 0x0090e044, 0x01d2dfe9, 0x01adf265, 0x03296ca6, 0x03ecf9a8, 0x018ffb16, 0x002fb98a, 0x0095d631, 0x0007ebb7}}, Y: Field{[10]uint32{0x00725089, 0x02f493ee, 0x012cee7b, 0x03391097, 0x0226d9f0, 0x02f62dd9, 0x0378d032, 0x03a41394, 0x023f8201, 0x000d40e7}}},
+ {X: Field{[10]uint32{0x02b3e8f9, 0x031d42d4, 0x03f318f6, 0x014c78a2, 0x018e93ea, 0x03546cfd, 0x005410ce, 0x030744fc, 0x035a2be8, 0x002991b3}}, Y: Field{[10]uint32{0x00c102bb, 0x03d19429, 0x029bda01, 0x03911950, 0x01e427d7, 0x00794744, 0x03a7e78e, 0x02a482d1, 0x02cb7727, 0x00163163}}},
+ {X: Field{[10]uint32{0x02be2205, 0x02f00837, 0x02d39dce, 0x031857b7, 0x011c77c0, 0x01730c8b, 0x038c397a, 0x01f4e3a6, 0x03271853, 0x000c9cd1}}, Y: Field{[10]uint32{0x01a42d65, 0x00092402, 0x032bb72c, 0x012f0f94, 0x01c1ea78, 0x011d69f5, 0x007b072d, 0x03d82f53, 0x008958c3, 0x0030b7af}}},
+ {X: Field{[10]uint32{0x0172827e, 0x00bce4f5, 0x03f4d4ce, 0x008b9f6c, 0x009906dd, 0x024c289c, 0x028c095d, 0x02884b01, 0x03180855, 0x0005a869}}, Y: Field{[10]uint32{0x0115605c, 0x01adc934, 0x00660219, 0x005aa2dd, 0x01b1ef30, 0x02fa3df7, 0x0280335c, 0x02a7adb3, 0x024bb30b, 0x0034e275}}},
+ {X: Field{[10]uint32{0x03687596, 0x02bd33c8, 0x002e9a61, 0x03e129d0, 0x00eeb1eb, 0x01859ba4, 0x0294b867, 0x0155c4cd, 0x01145de2, 0x002d2fd3}}, Y: Field{[10]uint32{0x03d11242, 0x00bf046e, 0x023dbfac, 0x0186962b, 0x0237d389, 0x02d817a5, 0x018640a6, 0x025f958c, 0x00a4d823, 0x001276c8}}},
+ {X: Field{[10]uint32{0x03892630, 0x019ee6c2, 0x0164bbf3, 0x004fa42a, 0x03fc3114, 0x0364e032, 0x00a0de08, 0x01997906, 0x03a9ccf4, 0x00353b59}}, Y: Field{[10]uint32{0x011df131, 0x0017462d, 0x015fa371, 0x01dd86c1, 0x0007472b, 0x00924dd9, 0x028a9729, 0x00220c7f, 0x017ce79a, 0x0023fdf9}}},
+ {X: Field{[10]uint32{0x014fe70d, 0x03c7d1fd, 0x01366b32, 0x0373e45b, 0x0044d5df, 0x03070b29, 0x02e906f0, 0x00fbc83a, 0x02f19f41, 0x0022b495}}, Y: Field{[10]uint32{0x02d34da7, 0x0090fb69, 0x02ff494e, 0x01783497, 0x0134778f, 0x00725c86, 0x0147f659, 0x01371609, 0x03418d2c, 0x002f7bba}}},
+ {X: Field{[10]uint32{0x01f17f8e, 0x018a854c, 0x0362f07f, 0x03b887c7, 0x01c67d22, 0x029561ee, 0x03723e01, 0x02d7c7c4, 0x02fafe55, 0x002374f8}}, Y: Field{[10]uint32{0x03c88cb0, 0x02fe4fd7, 0x0160b4b4, 0x0072e99a, 0x028f2db4, 0x036711b1, 0x017c6b65, 0x01c5f957, 0x02a47d6b, 0x002a88f4}}},
+ {X: Field{[10]uint32{0x00b3d0f6, 0x01de9741, 0x01a678e5, 0x005d5536, 0x0103c139, 0x01ec3a4e, 0x034db01a, 0x00c2beb0, 0x02282a8e, 0x00113f67}}, Y: Field{[10]uint32{0x011a61d0, 0x003305a4, 0x0290e484, 0x001b32c4, 0x0218927d, 0x0256f6f8, 0x0269d592, 0x0066ce85, 0x00613533, 0x0032c1e4}}},
+ {X: Field{[10]uint32{0x00b7aa42, 0x02c69c62, 0x02477746, 0x03d39691, 0x022db7c9, 0x025917d1, 0x01d2aa9c, 0x03b5960c, 0x02024464, 0x00174926}}, Y: Field{[10]uint32{0x037281d0, 0x03e2c501, 0x01a12b54, 0x03efca53, 0x0023bb8d, 0x0022d348, 0x0195f80e, 0x01ad70b1, 0x0386527d, 0x000affdc}}},
+ {X: Field{[10]uint32{0x0210fb23, 0x0311f203, 0x008ca85a, 0x01502e50, 0x01ddd18b, 0x02247120, 0x01e123cd, 0x03547519, 0x00581edc, 0x003663ad}}, Y: Field{[10]uint32{0x00b4dcf2, 0x033086de, 0x010816a2, 0x005c6c99, 0x032b1537, 0x03c95326, 0x031f9e60, 0x01ab1bcb, 0x03bed375, 0x00056ff4}}},
+ {X: Field{[10]uint32{0x00db6082, 0x02013591, 0x02eb5876, 0x01ba759c, 0x036edb48, 0x03a14543, 0x032134d2, 0x02bad884, 0x036919a2, 0x000bc4b0}}, Y: Field{[10]uint32{0x038cf73b, 0x004cf15f, 0x02dd0827, 0x031ef6a0, 0x0320834d, 0x030af438, 0x01264b8d, 0x00a313b7, 0x02dd3b4d, 0x00300447}}},
+ {X: Field{[10]uint32{0x004b4624, 0x0005f0c5, 0x023e6f03, 0x00d23c1f, 0x02713260, 0x02f395ea, 0x01d35dfe, 0x0327e108, 0x02847099, 0x00136525}}, Y: Field{[10]uint32{0x01b673da, 0x02c7fff7, 0x02adb126, 0x0136c60b, 0x00b91f95, 0x022c1f68, 0x01b308fb, 0x01a71ca3, 0x0257d713, 0x0026bed6}}},
+ {X: Field{[10]uint32{0x02af2466, 0x01a1c038, 0x008b2a97, 0x00936777, 0x020fca8f, 0x014aac5f, 0x020b39a7, 0x03c7238d, 0x01105e95, 0x0033c76e}}, Y: Field{[10]uint32{0x0247ca5f, 0x02371cfd, 0x020040ad, 0x029ecf4b, 0x015e645c, 0x02e59006, 0x001b94b4, 0x0219d29b, 0x0366c49c, 0x0039f267}}},
+ {X: Field{[10]uint32{0x02a62b85, 0x0390a11a, 0x03f22a9e, 0x01fc16c9, 0x01d4b174, 0x00b19d61, 0x01d63a24, 0x03ea2ade, 0x00257d2f, 0x0039c7ad}}, Y: Field{[10]uint32{0x022c8865, 0x03d9099a, 0x033c3d10, 0x01e61c38, 0x023bc0a7, 0x0294f8d0, 0x0321f45d, 0x028dd9f5, 0x02ecf901, 0x002a41ab}}},
+ {X: Field{[10]uint32{0x00559887, 0x0220aacc, 0x03b218f9, 0x01b289fa, 0x0321c58b, 0x0128a66f, 0x005c3e1b, 0x01d7d0ef, 0x03d30b25, 0x002f3661}}, Y: Field{[10]uint32{0x01483f65, 0x03a6ce87, 0x01b00761, 0x01324a27, 0x00690c1b, 0x018e93ad, 0x02fd894e, 0x02b89cae, 0x00c94339, 0x00100e01}}},
+ {X: Field{[10]uint32{0x01f8cab0, 0x031f8d2c, 0x00042ea9, 0x02e9a559, 0x007a2beb, 0x029a7dd0, 0x01d2d5e8, 0x01c588e5, 0x00f748af, 0x002dd357}}, Y: Field{[10]uint32{0x0049b336, 0x015f7afa, 0x00a3ea3c, 0x02a9f73f, 0x035728df, 0x02be9150, 0x01e9a234, 0x03ed660d, 0x01db332b, 0x002d717f}}},
+ {X: Field{[10]uint32{0x0160837d, 0x0146dc8d, 0x03edc572, 0x03b98cec, 0x01e9bc12, 0x02482faa, 0x03b3b13a, 0x0326b869, 0x02f59835, 0x0011bcf7}}, Y: Field{[10]uint32{0x010ce67b, 0x014f9a05, 0x02eca91d, 0x007040d7, 0x00818fb7, 0x01c0853b, 0x02a69778, 0x02e72cde, 0x021f2e8e, 0x00161ecb}}},
+ {X: Field{[10]uint32{0x0267d572, 0x0133eddd, 0x018b6577, 0x02906457, 0x01a50ceb, 0x02ed80a6, 0x011f4d7c, 0x0025a379, 0x00fdeb3f, 0x00234d06}}, Y: Field{[10]uint32{0x00661db8, 0x014456ab, 0x022039d0, 0x00e03d2c, 0x03e8b3dd, 0x03d9ed31, 0x01da7c00, 0x02118aaa, 0x011016a2, 0x0033b9e6}}},
+ {X: Field{[10]uint32{0x016f7c10, 0x033c84ab, 0x03bcf529, 0x01ede193, 0x0230f432, 0x02d9c94e, 0x020a672e, 0x01a575e2, 0x03094510, 0x002632c3}}, Y: Field{[10]uint32{0x020ab333, 0x0355abca, 0x0132f09f, 0x01d69af5, 0x03300fde, 0x00a14b47, 0x007e9b55, 0x0140d66d, 0x01ac4e1b, 0x0009654b}}},
+ {X: Field{[10]uint32{0x0339a3cf, 0x02e6384a, 0x00effb58, 0x0132c0c3, 0x01a34c7c, 0x000f7841, 0x01383f3f, 0x01d7f129, 0x024c0ca0, 0x00258117}}, Y: Field{[10]uint32{0x0201bafe, 0x03548c5c, 0x00c6e8f2, 0x038e9412, 0x016ebd03, 0x02f577fb, 0x011f24f7, 0x010546e8, 0x00fd9223, 0x003d49ee}}},
+ {X: Field{[10]uint32{0x01cc6030, 0x02fd5aa6, 0x0293e703, 0x03956642, 0x01c3f4b3, 0x035de5d8, 0x0226a9ca, 0x037be32e, 0x009142ad, 0x003c98ba}}, Y: Field{[10]uint32{0x030b594b, 0x00c8635b, 0x01ca1d1f, 0x02dcce4e, 0x035382c7, 0x0024bb3f, 0x0197dd67, 0x01aa403d, 0x036486c8, 0x0009d731}}},
+ {X: Field{[10]uint32{0x016d17fe, 0x01c5f6c5, 0x016347cc, 0x0204f1b1, 0x03ad75ef, 0x03946eca, 0x01f7900b, 0x014cd97e, 0x0002ee17, 0x000335e7}}, Y: Field{[10]uint32{0x007a985d, 0x00000c65, 0x0394ac45, 0x023ad245, 0x014ff919, 0x01aaeeb8, 0x03260441, 0x0396f694, 0x00ffb30d, 0x002d7afa}}},
+ {X: Field{[10]uint32{0x00f858f4, 0x00897e52, 0x009d280a, 0x00a73147, 0x02d9ba46, 0x018c20c2, 0x0122e03e, 0x01037780, 0x03225b1d, 0x000a2d2f}}, Y: Field{[10]uint32{0x00f3cac0, 0x00db894b, 0x027954ea, 0x03f2c439, 0x03aadf4f, 0x00c00a5e, 0x0134c6be, 0x01053529, 0x018998bb, 0x00091d58}}},
+ {X: Field{[10]uint32{0x02ed2ff7, 0x02119731, 0x03ea016c, 0x00db1ec2, 0x03cc765c, 0x0184a297, 0x013344bc, 0x0177ce71, 0x02067dd5, 0x003c063c}}, Y: Field{[10]uint32{0x00aa7e66, 0x02803e39, 0x0261a960, 0x01da1b15, 0x00cda34a, 0x01454133, 0x02c1cd22, 0x02752b19, 0x02b2cd61, 0x00367f16}}},
+ {X: Field{[10]uint32{0x024a7a13, 0x03621b10, 0x0394218e, 0x03c5222c, 0x027f661e, 0x03d1f2f6, 0x01dd5c74, 0x01b40a69, 0x00cf0808, 0x00125a5a}}, Y: Field{[10]uint32{0x021874e7, 0x012de1c7, 0x022dfc8d, 0x00909dd3, 0x00360b51, 0x01e71980, 0x017a3635, 0x0183803c, 0x03984420, 0x0035f637}}},
+ {X: Field{[10]uint32{0x02efedab, 0x00405ac8, 0x03949892, 0x01728741, 0x03b98435, 0x00d80369, 0x02485749, 0x00eddda3, 0x0059e911, 0x00090b53}}, Y: Field{[10]uint32{0x020f42b1, 0x022de59e, 0x0257727a, 0x0081ac2b, 0x0342f509, 0x014155ce, 0x0228074a, 0x030bb58e, 0x03d7b0c8, 0x0011c373}}},
+ {X: Field{[10]uint32{0x0385e8c7, 0x003d3744, 0x015861d2, 0x02f356ac, 0x03466280, 0x01794143, 0x004afacc, 0x01674e13, 0x00cc1a1a, 0x002dae01}}, Y: Field{[10]uint32{0x0121d439, 0x01e62ed9, 0x02d0c898, 0x019c2ec9, 0x0139b579, 0x00a0a7d0, 0x022a1d23, 0x00daa66e, 0x034602a6, 0x000bde24}}},
+ {X: Field{[10]uint32{0x01918a4e, 0x02d26dc7, 0x011ca0d1, 0x00b4a931, 0x0346904b, 0x00a04092, 0x038048af, 0x017f74e2, 0x03d07ecc, 0x00370c28}}, Y: Field{[10]uint32{0x018cc917, 0x014469b0, 0x0110febb, 0x02d9e29f, 0x02b701f7, 0x024da952, 0x03536987, 0x003a5d63, 0x01b07055, 0x000c9902}}},
+ {X: Field{[10]uint32{0x03d3fab8, 0x0057cad0, 0x013c20c0, 0x00d25de0, 0x005fb229, 0x03d3d12b, 0x02bb6280, 0x03ccc20e, 0x034d345b, 0x00387f90}}, Y: Field{[10]uint32{0x034c4d83, 0x0256c1dd, 0x03f7a59a, 0x00b0b735, 0x03d3b31b, 0x038f4581, 0x008df48c, 0x025eb130, 0x00a52af8, 0x0006c947}}},
+ {X: Field{[10]uint32{0x02fb8d08, 0x03f5745d, 0x02060bd1, 0x004f3f5c, 0x0182c2f5, 0x039dd591, 0x03e4a40e, 0x03178abe, 0x00dae08a, 0x002a3b62}}, Y: Field{[10]uint32{0x00175729, 0x007e7ce1, 0x0081b77b, 0x023c74a5, 0x035cc2d9, 0x005eca9b, 0x02f5b537, 0x0258c3ee, 0x00b07441, 0x003d3ed8}}},
+ {X: Field{[10]uint32{0x007c6481, 0x0295e40b, 0x0143f76f, 0x004e8389, 0x008e7707, 0x0314348a, 0x01c083ee, 0x02735f25, 0x0028de1e, 0x002d4b3e}}, Y: Field{[10]uint32{0x0375790f, 0x017abdc6, 0x02d833c9, 0x0314dd23, 0x0343eebd, 0x00f8ed4a, 0x03dc729d, 0x03eefe40, 0x01530046, 0x0018d68e}}},
+ {X: Field{[10]uint32{0x021d5e83, 0x01e0a485, 0x0178e4dc, 0x015358d2, 0x00b1297c, 0x02ab64ff, 0x03957a94, 0x026ff732, 0x01aef76d, 0x001c081e}}, Y: Field{[10]uint32{0x02783b52, 0x00419096, 0x01f82c8c, 0x011712e5, 0x0132a43a, 0x0031b76e, 0x033a202e, 0x00714b4e, 0x008bf2d8, 0x001260f0}}},
+ {X: Field{[10]uint32{0x0257bbf5, 0x00fb8baf, 0x009a0dd7, 0x02e544f3, 0x023ed3dc, 0x02d0de38, 0x00fe8cbd, 0x03873bbd, 0x00d18e9d, 0x00118e35}}, Y: Field{[10]uint32{0x0327e110, 0x01fbc832, 0x01e87cf7, 0x01029654, 0x020cb507, 0x007e8daf, 0x00853f75, 0x00c19a5a, 0x003245cc, 0x001587b8}}},
+ {X: Field{[10]uint32{0x03386bfc, 0x02c8b64e, 0x039cbecf, 0x02024410, 0x01d98e48, 0x00f4280e, 0x021dc5ee, 0x02b77b55, 0x02b75fac, 0x003bacd3}}, Y: Field{[10]uint32{0x02e57c4c, 0x0308d269, 0x00af4c21, 0x00eb473d, 0x00e9d8f6, 0x030c46a5, 0x018db8c1, 0x03723015, 0x00ff05eb, 0x003cac8f}}},
+ {X: Field{[10]uint32{0x012c45ca, 0x01a167b1, 0x0175e5c5, 0x0190f7dd, 0x01f70a8c, 0x03efa38e, 0x0107df0c, 0x00c84f07, 0x02e5becf, 0x0001fcb1}}, Y: Field{[10]uint32{0x02b6c89d, 0x03903788, 0x0189a77b, 0x03bac847, 0x02cf9d66, 0x03614794, 0x01a04248, 0x0276b83f, 0x01c01971, 0x00254126}}},
+ {X: Field{[10]uint32{0x03e53647, 0x008cc0c8, 0x00f81856, 0x003daa54, 0x023cea09, 0x013e2c05, 0x0211064d, 0x0349f3df, 0x03221ec5, 0x001bb1d9}}, Y: Field{[10]uint32{0x0269a3d6, 0x02c5c0eb, 0x01254984, 0x02816b5d, 0x01d0aa7b, 0x0018f13f, 0x02ec7d0f, 0x03a0e723, 0x03579704, 0x0026c0f1}}},
+ {X: Field{[10]uint32{0x024dea7e, 0x027e2914, 0x02f5499e, 0x01eb16ca, 0x01b44a70, 0x01e3d9f3, 0x03184b03, 0x017b2807, 0x029d320d, 0x00263dbd}}, Y: Field{[10]uint32{0x02b69a02, 0x03d509bc, 0x0244d79e, 0x0375e324, 0x02ca54a3, 0x015af0ce, 0x01333fe0, 0x01d98e5e, 0x033d7b03, 0x0009bbda}}},
+ {X: Field{[10]uint32{0x0347e390, 0x0073c156, 0x017af296, 0x01a0b67b, 0x012d3086, 0x03005c32, 0x037ac998, 0x00b1d975, 0x004558b8, 0x0033c7bd}}, Y: Field{[10]uint32{0x018511c3, 0x037d1192, 0x03d23bef, 0x0360d8e5, 0x00f4345b, 0x016bfbfa, 0x022d8f3f, 0x003b1e1d, 0x0105fb88, 0x0022f307}}},
+ {X: Field{[10]uint32{0x006f07e8, 0x00a02863, 0x035aa37c, 0x02096821, 0x009ab62b, 0x01653cde, 0x00cc5c10, 0x01bcbbe2, 0x0251efa2, 0x00043805}}, Y: Field{[10]uint32{0x01779df2, 0x03540fae, 0x00c0a8fa, 0x028c1f8a, 0x0083105d, 0x0222aaa6, 0x03b2cdb7, 0x018cd4c3, 0x01e11f77, 0x000b9a85}}},
+ {X: Field{[10]uint32{0x013eee4a, 0x009e59ba, 0x01a58054, 0x0114482e, 0x000af909, 0x01260c4c, 0x03d77d74, 0x00826dbb, 0x03e041ce, 0x002e538b}}, Y: Field{[10]uint32{0x01bca443, 0x01c50b72, 0x020f01d0, 0x02349dda, 0x01a86bfb, 0x011b7c43, 0x00b1dde7, 0x024bd577, 0x03f1103e, 0x00023dea}}},
+ {X: Field{[10]uint32{0x02d41154, 0x0174acc5, 0x02ccc122, 0x00d385fc, 0x026d71cc, 0x011362bd, 0x01d233e2, 0x02a7a851, 0x0102c671, 0x0033e79f}}, Y: Field{[10]uint32{0x012d2ca7, 0x03bfe143, 0x00c4ee13, 0x02ef86d8, 0x01a853e2, 0x021e3e5a, 0x003858a3, 0x0259beef, 0x00a10f0b, 0x0020bbae}}},
+ {X: Field{[10]uint32{0x03d48bb2, 0x00e6bfd2, 0x034366d5, 0x00af814b, 0x00df8e4f, 0x033d2e4d, 0x01d18ebd, 0x00ee44c6, 0x002994ad, 0x00368e8f}}, Y: Field{[10]uint32{0x01dc0193, 0x01a6a474, 0x00f54256, 0x03b7db6d, 0x035e0d32, 0x03b21998, 0x01ccfe7b, 0x0091e20c, 0x0253c404, 0x000a3e75}}},
+ {X: Field{[10]uint32{0x01eec101, 0x0289ec3c, 0x02450d4b, 0x03274394, 0x00a0a095, 0x00a0c7cc, 0x014c9fcd, 0x00de2f64, 0x00182b80, 0x002ae04a}}, Y: Field{[10]uint32{0x026666b3, 0x01351780, 0x0078f142, 0x00ab7030, 0x022286dc, 0x02ec7602, 0x00e366af, 0x01db58f7, 0x01822748, 0x00016af1}}},
+ {X: Field{[10]uint32{0x01c4977a, 0x01023df9, 0x014ab831, 0x019fe37e, 0x03f0edd9, 0x00259714, 0x0164391c, 0x032a9757, 0x02a2bf02, 0x003a96e0}}, Y: Field{[10]uint32{0x033d9339, 0x022f3a3f, 0x02cac5d2, 0x00fa25f6, 0x022518d5, 0x01ee2239, 0x01dd5040, 0x0020deb3, 0x02990f32, 0x00207fa0}}},
+ {X: Field{[10]uint32{0x03e70fa2, 0x02e3ef3e, 0x00d2ca95, 0x0305f7d6, 0x01318aea, 0x00f68b4a, 0x01d618be, 0x0075f40f, 0x000bab20, 0x00141817}}, Y: Field{[10]uint32{0x02a60383, 0x03ce5f5c, 0x028afc03, 0x03f1b0a9, 0x02d4c978, 0x024a335b, 0x02cc160d, 0x015a4f13, 0x031e007b, 0x00003942}}},
+ {X: Field{[10]uint32{0x021191dd, 0x0162c97a, 0x0316831b, 0x0184422d, 0x02513566, 0x0153de6d, 0x01409d88, 0x032b3bd1, 0x00b66d7d, 0x003ddb14}}, Y: Field{[10]uint32{0x01f3cc72, 0x0346041b, 0x01f86d3b, 0x0121dc83, 0x03a30401, 0x025fc1ec, 0x00e2e93a, 0x014502f0, 0x0374b019, 0x001f4156}}},
+ {X: Field{[10]uint32{0x03260e7d, 0x00f65664, 0x01b32f6d, 0x0240af5e, 0x01413126, 0x01cb9384, 0x02367db2, 0x0011f330, 0x03bad716, 0x00379414}}, Y: Field{[10]uint32{0x017cc7e2, 0x00e37872, 0x03bf3d3f, 0x02041444, 0x03b1e4c5, 0x017d180c, 0x02b61b5b, 0x02c36c37, 0x02d39c34, 0x00071528}}},
+ {X: Field{[10]uint32{0x0206499d, 0x03df237e, 0x017121af, 0x00902527, 0x00437f1a, 0x03786395, 0x018a332b, 0x0251ac6e, 0x019f180e, 0x002b4f9c}}, Y: Field{[10]uint32{0x02f1b554, 0x032b4f80, 0x032c882b, 0x037df28b, 0x03ef310a, 0x02fb7018, 0x0073863a, 0x02935f49, 0x03f1390f, 0x002d1635}}},
+ {X: Field{[10]uint32{0x036bae4b, 0x03210330, 0x026ecb46, 0x039db899, 0x01839a3a, 0x00cbe2de, 0x010c8673, 0x02bdad8c, 0x02345560, 0x0009c280}}, Y: Field{[10]uint32{0x02bedeaf, 0x005a8653, 0x01bc689d, 0x01c86f6d, 0x01ef7ef0, 0x02661de8, 0x020f1600, 0x01f45832, 0x004b9215, 0x00236aae}}},
+ {X: Field{[10]uint32{0x00624621, 0x00cd3b9a, 0x02d30f98, 0x016cafdc, 0x0325ba2b, 0x012a13fd, 0x03ffdb29, 0x03271321, 0x017e3027, 0x003ad7b4}}, Y: Field{[10]uint32{0x0060a942, 0x012d3b02, 0x003ae3b5, 0x02ff5667, 0x03df4a91, 0x013186b4, 0x028d1a21, 0x0351c66f, 0x00b38f74, 0x000e7fff}}},
+ {X: Field{[10]uint32{0x00e0a5dd, 0x0304d70b, 0x02d6a7ba, 0x00869d5c, 0x01fb1f66, 0x016b351a, 0x03f4e807, 0x02633188, 0x01f28a0b, 0x002e7047}}, Y: Field{[10]uint32{0x00a76278, 0x03b15150, 0x00a1e391, 0x028938bf, 0x015eb506, 0x024aceea, 0x03eb0c36, 0x0257bcc9, 0x0278d42b, 0x0016fea2}}},
+ {X: Field{[10]uint32{0x03e74b5c, 0x018c433a, 0x0221ca8a, 0x0264f126, 0x00f60f13, 0x03b68102, 0x02611066, 0x038967f9, 0x004380ab, 0x003bb45c}}, Y: Field{[10]uint32{0x02a0d750, 0x03576dc8, 0x0324a567, 0x018594b0, 0x028cc2c6, 0x01ebf366, 0x02a243f5, 0x01ee4458, 0x0276cbe3, 0x001b72d8}}},
+ {X: Field{[10]uint32{0x03aa97a7, 0x01400314, 0x034c2526, 0x00417b8d, 0x028c68e3, 0x02b7d8ad, 0x025524a4, 0x0273d1a3, 0x036f5f5b, 0x002392c3}}, Y: Field{[10]uint32{0x01b7f74a, 0x004dfb30, 0x00d56e25, 0x00b455f0, 0x02c7e59f, 0x0341063d, 0x00578c16, 0x000646dd, 0x00aec18d, 0x00347e20}}},
+ {X: Field{[10]uint32{0x02a5ebbe, 0x03d67232, 0x0176e90c, 0x036848e3, 0x01a7f393, 0x00c44ac7, 0x005ce9c9, 0x025ae6ba, 0x01bdfc65, 0x001deb88}}, Y: Field{[10]uint32{0x034a21d1, 0x01b151ff, 0x02f9b910, 0x005cc81b, 0x03516947, 0x01ca4553, 0x0225390e, 0x019b37d1, 0x01811e32, 0x003d1211}}},
+ {X: Field{[10]uint32{0x03d2346f, 0x035ac1f6, 0x03999e16, 0x00cfc140, 0x01929225, 0x01419899, 0x028bd35f, 0x00bbd166, 0x00a871c0, 0x00074de7}}, Y: Field{[10]uint32{0x0140cad0, 0x002ddc90, 0x011c10d5, 0x01785e36, 0x00a6333d, 0x006571c1, 0x0197cfed, 0x0269ed08, 0x039a7289, 0x00301542}}},
+ {X: Field{[10]uint32{0x03ef1ccc, 0x0359c30f, 0x00296cba, 0x0085f51f, 0x025c7ea7, 0x03c09dca, 0x03671995, 0x005aba64, 0x03f328fc, 0x00189405}}, Y: Field{[10]uint32{0x00450603, 0x0269d359, 0x02bf3618, 0x001985f0, 0x02d7056d, 0x0004437d, 0x03eb4ac5, 0x00853fb6, 0x0253af3b, 0x0006d138}}},
+ {X: Field{[10]uint32{0x0238412d, 0x029cae01, 0x01eb78ea, 0x0059d029, 0x00d1019d, 0x010e1dfa, 0x023f508d, 0x00d424eb, 0x02496bdc, 0x0031e93f}}, Y: Field{[10]uint32{0x020febef, 0x02a5d125, 0x016fba30, 0x022d9d66, 0x01673093, 0x012e3dcd, 0x03924067, 0x01c4c3a1, 0x02a895fb, 0x0006d6c4}}},
+ {X: Field{[10]uint32{0x02441d3f, 0x00a0d22c, 0x0052fa56, 0x019add3c, 0x01b65c61, 0x03123102, 0x000102cb, 0x0313bcfa, 0x003ce8f9, 0x0033fe7e}}, Y: Field{[10]uint32{0x0352ee6f, 0x038cb378, 0x0252e338, 0x001ea2f4, 0x02814ceb, 0x035a5cfc, 0x0046a41e, 0x0081fbf2, 0x00f82180, 0x00133106}}},
+ {X: Field{[10]uint32{0x02700541, 0x0011c859, 0x02ef82c6, 0x0395eb79, 0x002fd23a, 0x027a8477, 0x038ae98a, 0x030a5724, 0x031045b8, 0x0021009d}}, Y: Field{[10]uint32{0x001e4f99, 0x0381c8e1, 0x01da5f56, 0x033502c5, 0x03f3f80d, 0x02ea0753, 0x01b972ce, 0x00501220, 0x0192d3c1, 0x001ca519}}},
+ {X: Field{[10]uint32{0x012e0d2c, 0x01c18503, 0x004afb5c, 0x013aa53e, 0x015e304a, 0x023d548b, 0x01a346bd, 0x02e7b018, 0x0330e00c, 0x003deac4}}, Y: Field{[10]uint32{0x035e6144, 0x004406f7, 0x02f866bb, 0x028e7753, 0x012ef0f6, 0x03cfcf5a, 0x018def46, 0x002952bd, 0x00518935, 0x001752b2}}},
+ {X: Field{[10]uint32{0x03d4e618, 0x0062131b, 0x0292c785, 0x037304fd, 0x01d0da4d, 0x021b260a, 0x01a4d5b7, 0x02dde230, 0x02192303, 0x0029f213}}, Y: Field{[10]uint32{0x031774fe, 0x02e915ae, 0x01744939, 0x00cea0a7, 0x01659285, 0x0178fc45, 0x0164bad3, 0x036cbc87, 0x025b8fc2, 0x0015b8cb}}},
+ {X: Field{[10]uint32{0x0098c43a, 0x0276036b, 0x00dccf19, 0x00e41fd7, 0x02c65f41, 0x0299de9c, 0x03bc55af, 0x036b00d8, 0x0084a680, 0x002e2c32}}, Y: Field{[10]uint32{0x016b8127, 0x0239c794, 0x03932d0f, 0x01e98976, 0x016569f8, 0x013b6c11, 0x02bec5ba, 0x001b0735, 0x008ac926, 0x0010f906}}},
+ {X: Field{[10]uint32{0x025e0df6, 0x014120a9, 0x038ddac2, 0x023a50eb, 0x01c5bef9, 0x036d285e, 0x03bc33c1, 0x0184d568, 0x0043d057, 0x00205bb1}}, Y: Field{[10]uint32{0x01f0b360, 0x021f1215, 0x022a9c9b, 0x00c04862, 0x02054f9a, 0x01b8d9ad, 0x00f6fa19, 0x01623664, 0x02c9e9f3, 0x002269ec}}},
+ {X: Field{[10]uint32{0x011e28a0, 0x027526aa, 0x03fd2af3, 0x003cedc5, 0x00b10196, 0x03f3311f, 0x03ba24f7, 0x001f54cf, 0x0103823d, 0x00237b48}}, Y: Field{[10]uint32{0x00011728, 0x02549b30, 0x02ad4fb1, 0x0244a9a0, 0x01e3e1a3, 0x01d4faab, 0x03ef9f7d, 0x01987bd0, 0x011fbe1a, 0x000fc0fb}}},
+ {X: Field{[10]uint32{0x00d6260b, 0x026baab4, 0x00c87484, 0x0312fb88, 0x010ff4f7, 0x03a30c59, 0x03df9e3c, 0x0351e2fe, 0x039ce874, 0x002c712c}}, Y: Field{[10]uint32{0x004b4fde, 0x02f48db0, 0x00dbda54, 0x02137ef1, 0x0132c25b, 0x00e5ab72, 0x03fe7245, 0x006207ee, 0x03613070, 0x000e2be2}}},
+ {X: Field{[10]uint32{0x02b2c971, 0x0176b67e, 0x0390d0e7, 0x03c9f842, 0x01f011bc, 0x02af2082, 0x03f657cf, 0x00face85, 0x023be595, 0x001f56f3}}, Y: Field{[10]uint32{0x00f84787, 0x03b78aac, 0x0167cbbc, 0x029d0198, 0x01864b2b, 0x00b0e792, 0x0308b3b6, 0x035e0ac1, 0x02865f5f, 0x001ce035}}},
+ {X: Field{[10]uint32{0x0000f285, 0x034ae1d3, 0x01497a54, 0x01e22c8a, 0x00096af1, 0x031c5c71, 0x027717fb, 0x03cb3453, 0x011a422a, 0x000abd44}}, Y: Field{[10]uint32{0x03771f41, 0x012fabae, 0x0259f753, 0x031722b2, 0x032f3445, 0x01ecec90, 0x0000b68b, 0x03c401fa, 0x031bee43, 0x00111a2f}}},
+ {X: Field{[10]uint32{0x037af766, 0x029ed258, 0x0155dc81, 0x02ba8b42, 0x01fe010d, 0x01010ed8, 0x03dfb65f, 0x0377bfe2, 0x01c06dc8, 0x002d1b8a}}, Y: Field{[10]uint32{0x017b59f5, 0x03b27767, 0x016459c1, 0x026c2714, 0x03748c5c, 0x01289ea7, 0x010cef82, 0x00c53f5f, 0x0095ae16, 0x00189ddd}}},
+ {X: Field{[10]uint32{0x03a6b1ea, 0x02c8673e, 0x034a5089, 0x03e9648e, 0x00aef6d8, 0x00e73545, 0x02b3bd53, 0x02903dc7, 0x02d3f44e, 0x000415e1}}, Y: Field{[10]uint32{0x0343d0bc, 0x0001736d, 0x00f151ba, 0x00927f0b, 0x0139fad0, 0x03a1b42e, 0x012c4508, 0x008b2df6, 0x03dac875, 0x000a93a9}}},
+ {X: Field{[10]uint32{0x02adb23f, 0x0093d205, 0x038575c6, 0x03bfc22d, 0x02d2d2d8, 0x024b3ac8, 0x01345738, 0x01b8c062, 0x0081be85, 0x0007cf03}}, Y: Field{[10]uint32{0x03f6072b, 0x03a959e2, 0x031c9faa, 0x014b4c9c, 0x0011158d, 0x027135ed, 0x02f48408, 0x012673d4, 0x0290de24, 0x0001cc85}}},
+ {X: Field{[10]uint32{0x028bd2b3, 0x03d1aa91, 0x01c9f5ab, 0x01afc5be, 0x02e43787, 0x020cee83, 0x012484ff, 0x0257e824, 0x02e3a95a, 0x0005b72e}}, Y: Field{[10]uint32{0x01ffa44d, 0x027c9056, 0x00034344, 0x00ab3785, 0x0030e558, 0x031a45c0, 0x02de4733, 0x004b5b06, 0x0007247b, 0x00159c9f}}},
+ {X: Field{[10]uint32{0x02e70726, 0x02510e36, 0x03fff1c7, 0x029927b6, 0x02e42314, 0x017b6af1, 0x00ff3c0f, 0x00f23e49, 0x016cd672, 0x000452f9}}, Y: Field{[10]uint32{0x028ac521, 0x03641949, 0x035e1d5f, 0x01d6511c, 0x0245b61b, 0x00cb3e9e, 0x0180046b, 0x037ab9f1, 0x0172855c, 0x00026137}}},
+ {X: Field{[10]uint32{0x0103fdaf, 0x02dfab36, 0x0217d747, 0x00ea35d3, 0x0351766b, 0x03d6eaff, 0x029dbac7, 0x0211cb85, 0x02e601f9, 0x0023432c}}, Y: Field{[10]uint32{0x00bc9b92, 0x03dcdaa0, 0x0160a0f1, 0x02ae2678, 0x01f06b36, 0x033aaec4, 0x00ea3682, 0x024fdc97, 0x03f5b9e7, 0x0034564e}}},
+ {X: Field{[10]uint32{0x01714db3, 0x01c9fd4c, 0x005caab4, 0x00f9212d, 0x0134e3b4, 0x020125a4, 0x032f3a2c, 0x020b936d, 0x0354188c, 0x0016d081}}, Y: Field{[10]uint32{0x00723d9f, 0x01b304e9, 0x008838bf, 0x0171dd66, 0x001c7eed, 0x0066f852, 0x00d16437, 0x03cd81eb, 0x007d27d7, 0x0012a24c}}},
+ {X: Field{[10]uint32{0x00cbf74b, 0x006d63e2, 0x006ed18c, 0x00b87311, 0x019f01c6, 0x0003f82d, 0x0056a728, 0x00765a36, 0x021d9576, 0x002478dd}}, Y: Field{[10]uint32{0x0396c772, 0x00494c0a, 0x02bc7258, 0x03034cf7, 0x01b73a58, 0x02667bd5, 0x033389e9, 0x020dd8a3, 0x01e396f8, 0x002d6ad8}}},
+ {X: Field{[10]uint32{0x001a4655, 0x0174a717, 0x02ad35b0, 0x007c0b62, 0x02016e0f, 0x02af814a, 0x02f55480, 0x0397ca70, 0x0383dc77, 0x000c4e02}}, Y: Field{[10]uint32{0x0193403d, 0x00ff8999, 0x01b20107, 0x02f06a87, 0x02b42173, 0x020e7342, 0x0034342b, 0x03a9c8f1, 0x03aecc84, 0x0008f32b}}},
+ {X: Field{[10]uint32{0x021edd27, 0x0336a02c, 0x0239a764, 0x009e8325, 0x038f3f37, 0x02406554, 0x00b44c7c, 0x01099241, 0x018cbcd5, 0x002b9006}}, Y: Field{[10]uint32{0x00eeba8f, 0x02b988cd, 0x012005cf, 0x0269b0e7, 0x02ffceea, 0x009f6628, 0x01a0e7c8, 0x0333f336, 0x0308ffec, 0x0000e95f}}},
+ {X: Field{[10]uint32{0x00a981c8, 0x0093222a, 0x0015f73e, 0x0151c9ed, 0x015764a8, 0x0066ec09, 0x01b1d3ac, 0x0303c492, 0x0387abea, 0x003d1ca5}}, Y: Field{[10]uint32{0x0265d172, 0x02d3a7ab, 0x0319d00a, 0x00542ff9, 0x03b51aae, 0x03851b41, 0x039783fd, 0x004ca31f, 0x01a568d8, 0x0038c458}}},
+ {X: Field{[10]uint32{0x02d5884a, 0x03205d5f, 0x03b69ce4, 0x023029f5, 0x02f52d3b, 0x03a13429, 0x0059b617, 0x0224d3dc, 0x02b83414, 0x003e4bc0}}, Y: Field{[10]uint32{0x00864080, 0x00f3d06a, 0x026b706f, 0x023c3eed, 0x03cacd20, 0x031b7a92, 0x00eb5305, 0x00c08222, 0x02f88273, 0x003ebb5f}}},
+ {X: Field{[10]uint32{0x00c93363, 0x00f385df, 0x01ec49ed, 0x008acac3, 0x029efe40, 0x007e13f0, 0x028cc4dd, 0x035a082f, 0x00aae93b, 0x0028afb6}}, Y: Field{[10]uint32{0x018ada1d, 0x003277c6, 0x00213d63, 0x02cecfc2, 0x027bf235, 0x03b7ae27, 0x0340f299, 0x01bedf80, 0x01c96212, 0x000a1eae}}},
+ {X: Field{[10]uint32{0x03af4724, 0x01063e6d, 0x0198e899, 0x038b80a5, 0x00cf6219, 0x024c204d, 0x0309dc80, 0x00474666, 0x03cd3d18, 0x001690b3}}, Y: Field{[10]uint32{0x013f8423, 0x03ba3c16, 0x007172e0, 0x00f583ee, 0x02e30141, 0x002fc970, 0x02a83b18, 0x0275dac3, 0x021c3992, 0x0025739c}}},
+ {X: Field{[10]uint32{0x030e530f, 0x028ae516, 0x0278940b, 0x01ae850d, 0x012e768a, 0x0105d421, 0x03f1eca4, 0x02fc64c8, 0x030567e8, 0x000749ea}}, Y: Field{[10]uint32{0x01e1afa8, 0x00cf9a84, 0x01b07c6c, 0x03775468, 0x02a23e3d, 0x01ac124c, 0x02532be7, 0x00a68562, 0x0139496d, 0x000610e6}}},
+ {X: Field{[10]uint32{0x02ab4326, 0x01d2451b, 0x03d319bc, 0x0222dc98, 0x01bbbf80, 0x01337cff, 0x002fcf6e, 0x016fd12d, 0x005922c0, 0x00164afe}}, Y: Field{[10]uint32{0x004c7f65, 0x016f1d00, 0x0201e7d9, 0x01da3dfd, 0x013aaab9, 0x028bab09, 0x03946f3b, 0x03c3bf78, 0x00c38dcc, 0x002132f6}}},
+ {X: Field{[10]uint32{0x009359d5, 0x02785bc0, 0x00fcf1dd, 0x015b40f1, 0x010d4df1, 0x03bab710, 0x0001f4ad, 0x036ae2ff, 0x02705ae3, 0x00199cc2}}, Y: Field{[10]uint32{0x038273ee, 0x03d5e81d, 0x03718582, 0x00b1218f, 0x036e8f42, 0x026e7bec, 0x03b91701, 0x0362c89c, 0x00c44ea1, 0x0030131f}}},
+ {X: Field{[10]uint32{0x03b7fe83, 0x016453b6, 0x011ae07c, 0x01ee5e52, 0x001ce689, 0x01392158, 0x03b246d8, 0x0082b027, 0x02005324, 0x000f4009}}, Y: Field{[10]uint32{0x00c7d98e, 0x010775e5, 0x0152a532, 0x0074c871, 0x03c221fa, 0x00925148, 0x00c48557, 0x03539def, 0x02642f16, 0x0016f5cc}}},
+ {X: Field{[10]uint32{0x03a24487, 0x03509d50, 0x021c061e, 0x02b5c42a, 0x02750395, 0x008b8b0a, 0x0089d37d, 0x0348bf48, 0x02362b5d, 0x000350ab}}, Y: Field{[10]uint32{0x0339ada7, 0x01863fb2, 0x02fc9c2a, 0x0126ca84, 0x00ded0a6, 0x0046dbdf, 0x03cc24ba, 0x0387a94e, 0x02001571, 0x002110e7}}},
+ {X: Field{[10]uint32{0x02253743, 0x03c494ea, 0x01670ede, 0x00796f74, 0x00409e10, 0x0063a41d, 0x00b306dc, 0x02aff400, 0x01ca486f, 0x000df1d8}}, Y: Field{[10]uint32{0x010cad12, 0x01fd99ee, 0x033d0627, 0x02a5701f, 0x0129669d, 0x01ecb2e2, 0x02c241ae, 0x0036c627, 0x00e30111, 0x00394e10}}},
+ {X: Field{[10]uint32{0x03b0e788, 0x027b42bc, 0x0345b288, 0x0206865c, 0x002afa97, 0x016b035b, 0x0019f371, 0x02f23bae, 0x02f8bbaf, 0x001399cb}}, Y: Field{[10]uint32{0x00814061, 0x03f3d30e, 0x0385204a, 0x02e5464d, 0x03130cb0, 0x018b83aa, 0x000133fe, 0x03601d1a, 0x00dbbb16, 0x0027043c}}},
+ {X: Field{[10]uint32{0x03d51fec, 0x01e475a3, 0x03a68ed8, 0x004bcd6a, 0x0108e1df, 0x01bd8a52, 0x00635ae6, 0x01e4a7a7, 0x003b23c0, 0x00307ca5}}, Y: Field{[10]uint32{0x0264ae75, 0x0352ffba, 0x005fdfc4, 0x0319a001, 0x012f2262, 0x029ac441, 0x01f7ef96, 0x017b1664, 0x02c893ad, 0x000cddad}}},
+ {X: Field{[10]uint32{0x00370be6, 0x0180abb0, 0x00ffce17, 0x01b5ebf7, 0x01351e82, 0x0198f994, 0x00f10cdf, 0x036611cb, 0x021e739c, 0x000f7c91}}, Y: Field{[10]uint32{0x0292cb06, 0x000340b1, 0x0301fc9f, 0x0295fbab, 0x02bd5ec5, 0x0206b6aa, 0x014eeb00, 0x0303b0d6, 0x00b33ed9, 0x0017923f}}},
+ {X: Field{[10]uint32{0x022a82b7, 0x02307cf5, 0x033fd551, 0x009d6d8e, 0x0150f123, 0x02d83f61, 0x004ecfba, 0x024b57d3, 0x0128f98b, 0x003534f5}}, Y: Field{[10]uint32{0x027d5b76, 0x0034b3b6, 0x01a2e049, 0x00ed52c1, 0x01255405, 0x02612f02, 0x01a838ed, 0x01779a64, 0x01508543, 0x0019125b}}},
+ {X: Field{[10]uint32{0x0209236b, 0x039f4084, 0x01108b3e, 0x011c3889, 0x03ad6448, 0x00ffc0e9, 0x03a41136, 0x00da3c69, 0x019b4aa3, 0x003b360e}}, Y: Field{[10]uint32{0x01355213, 0x00dc48dd, 0x011af30f, 0x023c1329, 0x01c629d8, 0x00f00b2d, 0x0351e617, 0x0070a438, 0x01fba792, 0x000b8482}}},
+ {X: Field{[10]uint32{0x01f78722, 0x00cb8273, 0x01ae38c3, 0x01c1e173, 0x01416d1a, 0x02cd1356, 0x033354af, 0x0036a40c, 0x03e57e6a, 0x00356642}}, Y: Field{[10]uint32{0x03a17814, 0x0316445e, 0x01eceeef, 0x03224e5e, 0x00278f73, 0x01110402, 0x039198d3, 0x01bcf441, 0x018b73f7, 0x002ca8b3}}},
+ {X: Field{[10]uint32{0x00374b1b, 0x03c10aa4, 0x0174f85e, 0x0224a1ef, 0x02b57e90, 0x01876007, 0x03d59786, 0x03b402bc, 0x03651d8c, 0x001d662a}}, Y: Field{[10]uint32{0x0028f04f, 0x036d835b, 0x00240b60, 0x021e3d33, 0x027edaae, 0x0008ba7b, 0x000cbd4b, 0x02c7fee7, 0x00269466, 0x001627f1}}},
+ {X: Field{[10]uint32{0x01f694e7, 0x0248b3d0, 0x00e7d7e0, 0x03f663af, 0x03be088c, 0x00714c06, 0x02048b76, 0x00b4c614, 0x0017b12d, 0x003f41c5}}, Y: Field{[10]uint32{0x0232c363, 0x013688ef, 0x00b45966, 0x01d163be, 0x00d47d8f, 0x01ad5236, 0x01f679d9, 0x00ee4cab, 0x03f10ee6, 0x000b6714}}},
+ {X: Field{[10]uint32{0x0372ca0e, 0x01b3804a, 0x038d15e5, 0x02ff2f0a, 0x02b1e513, 0x03a4d1fc, 0x01571ac8, 0x021a2b47, 0x0190e290, 0x001696d2}}, Y: Field{[10]uint32{0x03ebf968, 0x0186663b, 0x005d5e51, 0x039fa0c5, 0x01424285, 0x0313271f, 0x01569f63, 0x02549150, 0x02f50715, 0x0031da14}}},
+ {X: Field{[10]uint32{0x01e7f2bd, 0x023015bf, 0x020f5972, 0x02057cf4, 0x0225c900, 0x01ba9bcd, 0x035a415f, 0x03c5190b, 0x00243cd4, 0x0024f7bb}}, Y: Field{[10]uint32{0x032dc7cb, 0x0217c96f, 0x0336dd5e, 0x0164641d, 0x006abfa8, 0x0150527d, 0x0378145f, 0x00e85987, 0x01beb999, 0x00223e46}}},
+ {X: Field{[10]uint32{0x02df82b6, 0x02645f91, 0x02602f5c, 0x01f9d84e, 0x019c9bec, 0x001a350e, 0x01104c93, 0x03659e5a, 0x017ba65a, 0x00248934}}, Y: Field{[10]uint32{0x00a32f65, 0x03bef3c6, 0x0071055c, 0x03ef3d69, 0x001b5691, 0x03ac4193, 0x0289e54e, 0x0293a31d, 0x00e32bc2, 0x000d1b26}}},
+ {X: Field{[10]uint32{0x0379c38e, 0x015450ce, 0x011890f0, 0x00ddb956, 0x01cfc916, 0x01cd1e9c, 0x00f054b8, 0x03fe7053, 0x009124dd, 0x002146b3}}, Y: Field{[10]uint32{0x02116f35, 0x031a7307, 0x0213a55c, 0x03c4c3c3, 0x022dd20b, 0x03127715, 0x00527e8c, 0x00730d0c, 0x01f058d2, 0x0036566f}}},
+ {X: Field{[10]uint32{0x00ea4d96, 0x0041d7cb, 0x012122b7, 0x004a4c7e, 0x00eff0a6, 0x0120a544, 0x03e01ef4, 0x00471421, 0x0303b7c1, 0x003fdb04}}, Y: Field{[10]uint32{0x034841f6, 0x003ba85e, 0x01574537, 0x03fd6a56, 0x027e99d0, 0x02495417, 0x02239beb, 0x0142a832, 0x03bf7bcf, 0x00093c26}}},
+ {X: Field{[10]uint32{0x035fdac0, 0x02f18d90, 0x029d06a4, 0x013d3d32, 0x020fd501, 0x022dbb2d, 0x03fb51ec, 0x02f4750c, 0x01f055e7, 0x003c8ef6}}, Y: Field{[10]uint32{0x016d7b60, 0x00653ba9, 0x03da69d2, 0x01f7c482, 0x0325ba91, 0x03b91d11, 0x02e7012a, 0x026b65a3, 0x00589d26, 0x002594ad}}},
+ {X: Field{[10]uint32{0x01f46ff7, 0x01549e92, 0x035642a0, 0x03e4e46e, 0x001fe070, 0x02ef52bc, 0x0023e601, 0x017465ee, 0x0056ea6d, 0x0027588b}}, Y: Field{[10]uint32{0x015c609e, 0x00ea473f, 0x01494e6c, 0x0310b809, 0x02c648c7, 0x01b6cf72, 0x03bd5576, 0x0217fb67, 0x03940d64, 0x0020186e}}},
+ {X: Field{[10]uint32{0x03020c13, 0x0342b7cb, 0x03b80370, 0x03795a4c, 0x012915af, 0x001ee658, 0x014b67c4, 0x03579d8e, 0x03e4cff5, 0x0025253b}}, Y: Field{[10]uint32{0x00a7e4ea, 0x016bce16, 0x00a8184f, 0x02e3f4fc, 0x03fd86ec, 0x03908dcb, 0x03964b2d, 0x03873009, 0x0238c85e, 0x002ac31f}}},
+ {X: Field{[10]uint32{0x012e1a86, 0x005802a5, 0x03268dbe, 0x01665d00, 0x00e028c2, 0x024e2807, 0x028cb6c2, 0x014bf002, 0x03baffbc, 0x002a3935}}, Y: Field{[10]uint32{0x011a0bed, 0x019f0a4d, 0x0096fc9f, 0x02e72591, 0x02cc7eee, 0x01bc59c8, 0x0379723c, 0x0008b013, 0x003d0dc3, 0x0002356e}}},
+ {X: Field{[10]uint32{0x00927ac5, 0x030eed79, 0x00df1f17, 0x02bc5467, 0x01203c01, 0x035cb5e9, 0x03191ad4, 0x01183fbf, 0x0364938e, 0x0020e107}}, Y: Field{[10]uint32{0x03536800, 0x00075e7a, 0x03e4180e, 0x0036c813, 0x02ecb1f3, 0x00105712, 0x03733974, 0x01c92484, 0x00f2c2e8, 0x0003d61a}}},
+ {X: Field{[10]uint32{0x020612f6, 0x00f220c0, 0x02acbd62, 0x03da542b, 0x02af2a2d, 0x02d65fec, 0x00dcba67, 0x00fe2a18, 0x00d95ef0, 0x003ba25d}}, Y: Field{[10]uint32{0x00f141ac, 0x0381fe29, 0x0321634e, 0x03ebadf3, 0x016596ab, 0x03e7dd8f, 0x02951453, 0x01775f31, 0x01740308, 0x00173c43}}},
+ {X: Field{[10]uint32{0x02579606, 0x0006982d, 0x01857b2d, 0x01ac9a47, 0x01a92dde, 0x0109d8a3, 0x036e5fa3, 0x01b28ec4, 0x018c2361, 0x001a3a23}}, Y: Field{[10]uint32{0x00fd5450, 0x01345e68, 0x03c41257, 0x01ce1a85, 0x01e5ec7b, 0x02da959d, 0x00c5d609, 0x035baf16, 0x00903766, 0x000016a4}}},
+ {X: Field{[10]uint32{0x0122345b, 0x031626a5, 0x02e7c50a, 0x016b38ec, 0x00cfe6ab, 0x01333290, 0x01bea794, 0x0322d883, 0x018ac62e, 0x003f8d37}}, Y: Field{[10]uint32{0x03d6c8c0, 0x02ee6fda, 0x025bff0a, 0x03562634, 0x0330c9ed, 0x034f8029, 0x01611d7b, 0x0384894d, 0x0055adf1, 0x002233c0}}},
+ {X: Field{[10]uint32{0x0251bc1f, 0x017c8d60, 0x03ff7f6a, 0x019bf462, 0x00099893, 0x004c5cda, 0x0262479c, 0x005226aa, 0x029cc0f8, 0x00108e9e}}, Y: Field{[10]uint32{0x01c678ee, 0x00986f4a, 0x0271fde4, 0x02591cb3, 0x01259ce8, 0x01844b90, 0x02776ea1, 0x0090740b, 0x03dd0519, 0x003249ac}}},
+ {X: Field{[10]uint32{0x010b98f4, 0x013c55eb, 0x00e730ed, 0x02d1c9f0, 0x010ffb0e, 0x00b82364, 0x01bb840b, 0x0153ff98, 0x03f97cbf, 0x001fe982}}, Y: Field{[10]uint32{0x0294d733, 0x02cec243, 0x0281f6e7, 0x03b5e5e3, 0x027e296f, 0x01fdcda9, 0x01c7b26a, 0x021ee3f7, 0x02df84d3, 0x00356c6a}}},
+ {X: Field{[10]uint32{0x00153a66, 0x01dd0cd8, 0x0098cf1e, 0x01743bbe, 0x01829481, 0x0245fe45, 0x02df8a66, 0x037af1df, 0x030ef1ed, 0x002794f2}}, Y: Field{[10]uint32{0x02b41ccf, 0x03e05fd1, 0x037a2ed8, 0x0273f955, 0x01498349, 0x022faf82, 0x024c6f1b, 0x028a86e6, 0x02f260fe, 0x0014d636}}},
+ {X: Field{[10]uint32{0x02d6f119, 0x01a5548e, 0x01e9631e, 0x023a3b24, 0x00140471, 0x0150ccb0, 0x0344ad53, 0x0319de66, 0x0241c616, 0x002b7e4d}}, Y: Field{[10]uint32{0x0242ff9e, 0x00a84edf, 0x00619dfe, 0x01056b4e, 0x028dc172, 0x031ab10a, 0x01f67615, 0x02cf7fd5, 0x02afe4cf, 0x00368f19}}},
+ {X: Field{[10]uint32{0x034e4ca8, 0x01bb2d91, 0x02f0c972, 0x0310e5bd, 0x035b6242, 0x02f857d2, 0x0287ddb2, 0x02cd9ec1, 0x03ec485d, 0x0001c078}}, Y: Field{[10]uint32{0x013b9e83, 0x0360644b, 0x00f946f2, 0x033cf44f, 0x03691aa3, 0x001d00dd, 0x01f7fea3, 0x0387140a, 0x027613dc, 0x0004263e}}},
+ {X: Field{[10]uint32{0x00ccfefc, 0x0036443e, 0x01e84aac, 0x01781852, 0x02d51364, 0x03149402, 0x01a7e042, 0x02a8167a, 0x03a5d3ec, 0x00363f16}}, Y: Field{[10]uint32{0x034b3d8a, 0x025c225e, 0x01920c25, 0x020f95e3, 0x02df96ee, 0x00e8b7c1, 0x014b4d98, 0x025369d2, 0x034d0eec, 0x001c9c92}}},
+ {X: Field{[10]uint32{0x0371398e, 0x03aa0fbf, 0x038dcc9e, 0x027528ce, 0x00c900cb, 0x02aa97c3, 0x018a186f, 0x03fedc19, 0x039a8279, 0x001ef223}}, Y: Field{[10]uint32{0x03a14a7c, 0x01581983, 0x001b0aa9, 0x027c7d56, 0x034939d3, 0x0022ddbd, 0x02d8c77e, 0x02054468, 0x01dfe5ed, 0x00337348}}},
+ {X: Field{[10]uint32{0x035ef0e5, 0x01ba845b, 0x019190f4, 0x0297befe, 0x03e5fb92, 0x03c85ca8, 0x0219bc77, 0x02787db8, 0x01310bc7, 0x00215e35}}, Y: Field{[10]uint32{0x03b7d550, 0x01d67344, 0x00290768, 0x0137b45f, 0x00cac2d0, 0x008ce3e7, 0x02ef5e05, 0x018b1a53, 0x02ac39c2, 0x003f346c}}},
+ {X: Field{[10]uint32{0x00020a62, 0x0379d62a, 0x010935cd, 0x008112ee, 0x02d41240, 0x01f87302, 0x01eb5f43, 0x01986d51, 0x02d73ea2, 0x00262f08}}, Y: Field{[10]uint32{0x02232226, 0x038530a0, 0x032d9f32, 0x03ca86a8, 0x002607bf, 0x03118be5, 0x02c8d83c, 0x02e96f0a, 0x01de0d33, 0x00050f1f}}},
+ {X: Field{[10]uint32{0x01e8ee10, 0x0112c2b5, 0x0001aaca, 0x0197a8f1, 0x019980f2, 0x016fc215, 0x008106ca, 0x005db742, 0x021e95d2, 0x001ff3e0}}, Y: Field{[10]uint32{0x02400284, 0x03b274bf, 0x01cfb266, 0x01506ce2, 0x03c127b0, 0x02389f2a, 0x02f4598e, 0x02bfbbe2, 0x01ae87e7, 0x0009f0d0}}},
+ {X: Field{[10]uint32{0x0216a5f1, 0x00a4ba80, 0x02ca8316, 0x01e87f1d, 0x0367acd6, 0x028cd3e4, 0x03e195b6, 0x03bc17e1, 0x01b9d440, 0x0022628e}}, Y: Field{[10]uint32{0x00ce52ef, 0x03290ec6, 0x037c3fc2, 0x0398af53, 0x02c0db80, 0x0113eafe, 0x011cae97, 0x01d394bf, 0x03bbfe32, 0x003ad90b}}},
+ {X: Field{[10]uint32{0x032192a4, 0x00e2fd0f, 0x03e3cbf1, 0x009e0cc8, 0x0287d6a6, 0x03c62fe6, 0x01624801, 0x0308582a, 0x00a28918, 0x000fba5d}}, Y: Field{[10]uint32{0x01660d9c, 0x002d56f3, 0x01c63dc5, 0x03f04375, 0x020fde39, 0x0183f483, 0x01d5b2a9, 0x03acd526, 0x02dfac71, 0x003d6ce1}}},
+ {X: Field{[10]uint32{0x0047c14a, 0x030fcd90, 0x010a57dd, 0x03d0bed8, 0x019766bb, 0x001b0494, 0x03753eed, 0x037cd26a, 0x012fde76, 0x002f7443}}, Y: Field{[10]uint32{0x02923dec, 0x01d0cc05, 0x03bbd6bc, 0x03da7100, 0x022b8b47, 0x02d1000c, 0x0327664a, 0x01fae6e2, 0x02ed34f9, 0x0014114c}}},
+ {X: Field{[10]uint32{0x03edd63d, 0x0028738e, 0x02b23c00, 0x0123105d, 0x02477a51, 0x02e7fca4, 0x039a4a0e, 0x0104913f, 0x00373978, 0x000b05e5}}, Y: Field{[10]uint32{0x032fcfb6, 0x039803c3, 0x00173e37, 0x03dcf98c, 0x002c1ca5, 0x02684aa3, 0x02fcccab, 0x01ecaea0, 0x01844f9b, 0x0028d9ed}}},
+ {X: Field{[10]uint32{0x03e71580, 0x0225e62c, 0x01841362, 0x028cb4f3, 0x01a83036, 0x03ba5faf, 0x031e6df6, 0x00744dbd, 0x030ef2d6, 0x000a0bbc}}, Y: Field{[10]uint32{0x03d0f43a, 0x02097738, 0x0286fc47, 0x030c7d63, 0x035b4f9d, 0x028ff247, 0x00252647, 0x03a8b953, 0x0133c350, 0x00242c33}}},
+ {X: Field{[10]uint32{0x019eff23, 0x00e31ce2, 0x00ef71ea, 0x03ab6c4e, 0x01085bf6, 0x03b82faf, 0x00ab3d50, 0x03e9f2d5, 0x015542ac, 0x00290ad3}}, Y: Field{[10]uint32{0x03566bb7, 0x03cf3287, 0x030bdb1f, 0x00e83f4b, 0x0363d0e0, 0x009ac2e7, 0x00c49973, 0x02649dd9, 0x0080f10b, 0x0005f8e2}}},
+ {X: Field{[10]uint32{0x037ef00e, 0x008947bf, 0x0138b1a0, 0x0295d7cf, 0x01a06fce, 0x02562556, 0x0180d474, 0x00323d2d, 0x0064c5b0, 0x002c8eb3}}, Y: Field{[10]uint32{0x00b6464f, 0x01502a87, 0x007293bc, 0x02b3fe42, 0x03073964, 0x0115fd79, 0x03e6a17d, 0x0193612f, 0x000a7eaa, 0x0019aec6}}},
+ {X: Field{[10]uint32{0x01885ea7, 0x0298a3dd, 0x03023411, 0x0273b31d, 0x0189df02, 0x001d45ba, 0x001ce7a4, 0x02c18d1a, 0x00e696ae, 0x000250b7}}, Y: Field{[10]uint32{0x007caf14, 0x00fe02dc, 0x02784ba1, 0x02eb545e, 0x01c439f0, 0x00eabed1, 0x02b06cea, 0x01ecfdad, 0x028a88be, 0x0038822f}}},
+ {X: Field{[10]uint32{0x00392d16, 0x01196ae2, 0x020e1610, 0x0253843a, 0x0023e64a, 0x01c7ae52, 0x038e4dbe, 0x013b0208, 0x02b95219, 0x002e29a8}}, Y: Field{[10]uint32{0x03a5fec1, 0x018f5472, 0x015c74cb, 0x03d306d5, 0x0034c7be, 0x010ef896, 0x02758ae3, 0x03b8fdde, 0x0331b8e5, 0x003e00a7}}},
+ {X: Field{[10]uint32{0x0068fc20, 0x020ff082, 0x016d90cc, 0x03105e90, 0x02f15fea, 0x0298532d, 0x03db083e, 0x0017dec7, 0x0369a1ee, 0x0028db4c}}, Y: Field{[10]uint32{0x02f0af52, 0x00c9f8dd, 0x01f10e94, 0x03817c28, 0x00aacd2a, 0x02a7f5c5, 0x03b76516, 0x03c9f56d, 0x03f9fe40, 0x00392af5}}},
+ {X: Field{[10]uint32{0x008dda1d, 0x03d790c2, 0x00cc0ebe, 0x01a3d142, 0x016f03bd, 0x035bf535, 0x00cc89b9, 0x006b9bff, 0x01083d71, 0x0013a8c0}}, Y: Field{[10]uint32{0x00a3e513, 0x01e4f557, 0x02c83eed, 0x017f3957, 0x0340f9ea, 0x015059b4, 0x0154bcf1, 0x01652419, 0x017a8b1c, 0x00207a66}}},
+ {X: Field{[10]uint32{0x02ffdc55, 0x03d0938a, 0x0175ece2, 0x023d01a8, 0x020fee11, 0x0109edc4, 0x0342e62e, 0x02271d91, 0x03161c1c, 0x000808a1}}, Y: Field{[10]uint32{0x03fa35b1, 0x005dd999, 0x02c28bc8, 0x00317b34, 0x0291eaff, 0x00787426, 0x00d28644, 0x029fcd0a, 0x025ecf26, 0x001e0de5}}},
+ {X: Field{[10]uint32{0x0070d20c, 0x036dfa18, 0x0384cf5a, 0x024bc599, 0x0395be90, 0x00481848, 0x010d4296, 0x03c5815e, 0x02fc8e4b, 0x0034f01c}}, Y: Field{[10]uint32{0x00daf31a, 0x032ae0b6, 0x01c0cf5b, 0x03ac2bf4, 0x00f412e0, 0x03de6472, 0x015c0faa, 0x01d6eeed, 0x0262594c, 0x001c9a20}}},
+ {X: Field{[10]uint32{0x0130ec82, 0x037d8381, 0x03dad3e6, 0x02f729d8, 0x0294003d, 0x0228d534, 0x00e8f342, 0x03e9f33c, 0x007ce307, 0x000a536b}}, Y: Field{[10]uint32{0x0384673d, 0x026d17f3, 0x01ecc0fb, 0x020ebf52, 0x02cfbcc7, 0x0298c279, 0x02807c4b, 0x02a98abb, 0x0222a7bc, 0x0011e7f0}}},
+ {X: Field{[10]uint32{0x02732fae, 0x01766b13, 0x0175c707, 0x0027a891, 0x02225de6, 0x01ec9dbf, 0x0042a8d6, 0x03a36790, 0x025cc09f, 0x000e55b2}}, Y: Field{[10]uint32{0x02eaa23e, 0x01e89a8b, 0x00302e28, 0x0075ef5e, 0x03719643, 0x007f58bc, 0x025ee0ce, 0x02414a74, 0x03e7a821, 0x00072597}}},
+ {X: Field{[10]uint32{0x01fb3def, 0x03a0afe4, 0x029e697e, 0x0359b61e, 0x014f4109, 0x0125005d, 0x036eb068, 0x012d239c, 0x0396da14, 0x000934b8}}, Y: Field{[10]uint32{0x0372236e, 0x01f43668, 0x0081e76d, 0x01d47f9f, 0x02ea875c, 0x036eb484, 0x01e3c9ce, 0x00bf3f74, 0x037224b0, 0x002ede79}}},
+ {X: Field{[10]uint32{0x01a2aa5e, 0x038ae6e6, 0x00d3ab49, 0x0224f84b, 0x01188528, 0x03670be4, 0x03f9619d, 0x01701ff2, 0x0042f16e, 0x0018e350}}, Y: Field{[10]uint32{0x032b3d92, 0x0392acac, 0x024db222, 0x010dd2e2, 0x03f618da, 0x03976051, 0x039eb8b8, 0x00429037, 0x00424f00, 0x0034365e}}},
+ {X: Field{[10]uint32{0x030d866c, 0x019e0a23, 0x00c5cd7d, 0x02218da0, 0x0194202d, 0x00c0cb87, 0x0323a1fd, 0x01caeaec, 0x015ba999, 0x0003e46b}}, Y: Field{[10]uint32{0x0052bdc0, 0x02853565, 0x03571e24, 0x0386c344, 0x001cb558, 0x03eccb6b, 0x038bb4fe, 0x005d68e8, 0x0145a693, 0x00182d9b}}},
+ {X: Field{[10]uint32{0x02a69b7c, 0x005c9cba, 0x03c39c64, 0x0236239f, 0x039e6af4, 0x01b40dc2, 0x031fb88a, 0x0097c53f, 0x037d779c, 0x000c5504}}, Y: Field{[10]uint32{0x02295f7a, 0x034e7ee4, 0x03b13560, 0x0066c664, 0x02c1980c, 0x00991213, 0x00e112a9, 0x005e28e6, 0x011e9c09, 0x003acef6}}},
+ {X: Field{[10]uint32{0x01549597, 0x0072e4d8, 0x01355072, 0x00b65286, 0x01f710be, 0x03475e99, 0x03acb3c1, 0x027f2078, 0x021fdfdf, 0x003e2087}}, Y: Field{[10]uint32{0x018993ec, 0x013116df, 0x002a3f4b, 0x00171ebf, 0x02c5770c, 0x033ca396, 0x03635b9d, 0x014a0946, 0x0068c1e0, 0x002ed41e}}},
+ {X: Field{[10]uint32{0x0354a655, 0x013d8fa0, 0x033b06dd, 0x02be1c0c, 0x00ec5d6f, 0x01438eb6, 0x018aa900, 0x0012968b, 0x023a5214, 0x00210251}}, Y: Field{[10]uint32{0x01db3bd4, 0x0215efb8, 0x01ecf91b, 0x00949a68, 0x031b8a65, 0x00edeacd, 0x00c1b668, 0x00b294e7, 0x012b8509, 0x00332651}}},
+ {X: Field{[10]uint32{0x003bc471, 0x01041980, 0x01e09f72, 0x0395a08a, 0x02314380, 0x015d1767, 0x0222eb53, 0x01c2d5b6, 0x001112d3, 0x0025a009}}, Y: Field{[10]uint32{0x005d8f38, 0x017e518a, 0x0092ff49, 0x000c4eed, 0x0327d6c7, 0x0165b440, 0x020419d6, 0x030807fe, 0x01377f03, 0x00376b0b}}},
+ {X: Field{[10]uint32{0x023a69c8, 0x027f0fe8, 0x01393d3f, 0x01fda329, 0x020f85e8, 0x005c2547, 0x03628244, 0x00568571, 0x02ec9f57, 0x002746ae}}, Y: Field{[10]uint32{0x0328cadf, 0x02b4a2cf, 0x03bdd149, 0x039e6219, 0x0071b010, 0x02508d4e, 0x00c89e62, 0x02d8708e, 0x030050db, 0x003c87b9}}},
+ {X: Field{[10]uint32{0x001f7ae6, 0x01d0b585, 0x03a32f72, 0x02816166, 0x019886d6, 0x012c10dc, 0x03234b6a, 0x02bd1b0d, 0x02918db3, 0x0007ee59}}, Y: Field{[10]uint32{0x001f7379, 0x035560b5, 0x00ecab09, 0x01e08101, 0x02a17b55, 0x03a69096, 0x034c4426, 0x03f647df, 0x02cc207e, 0x0022f04f}}},
+ {X: Field{[10]uint32{0x021ec7b8, 0x00876da7, 0x01281ee2, 0x03c169e0, 0x02416d54, 0x0010a3a2, 0x00bcb23e, 0x0136ac26, 0x0364b927, 0x0008b678}}, Y: Field{[10]uint32{0x02d8407d, 0x01219780, 0x024c1c1e, 0x0244a3e4, 0x014c300a, 0x01d3a546, 0x0399195b, 0x01f6d795, 0x0258f93d, 0x0017708c}}},
+ {X: Field{[10]uint32{0x0073e45d, 0x01ca5efe, 0x03ff8398, 0x030091f2, 0x01adb168, 0x0161d04c, 0x0166766d, 0x020fecc0, 0x0050aed0, 0x001897e9}}, Y: Field{[10]uint32{0x0376bb7b, 0x007d9121, 0x011175a2, 0x02196e39, 0x00fbb5a2, 0x0280913c, 0x0185ed21, 0x03241195, 0x0104473d, 0x001c82a0}}},
+ {X: Field{[10]uint32{0x02a2147f, 0x020bcde9, 0x028ff01f, 0x003fc86b, 0x002deacc, 0x009a06ba, 0x03b01c2e, 0x03f0977b, 0x01c19b6d, 0x00092b2c}}, Y: Field{[10]uint32{0x03ca5d4b, 0x02647774, 0x03d52783, 0x036b7ebd, 0x0193f50a, 0x01c6aaf8, 0x00abdcdb, 0x0201862a, 0x0335210e, 0x003dca74}}},
+ {X: Field{[10]uint32{0x035ab555, 0x004c0b3d, 0x0339f33c, 0x025ae96c, 0x036c6d18, 0x02fdf6ce, 0x02328e3b, 0x00c353ce, 0x0003a99d, 0x0034a15a}}, Y: Field{[10]uint32{0x0292d6ff, 0x02727681, 0x00fdf568, 0x0224f9e0, 0x012b814a, 0x02d06dc9, 0x0098bbf1, 0x016e1d8b, 0x014d6470, 0x00259266}}},
+ {X: Field{[10]uint32{0x00b5fe0a, 0x002f2613, 0x0031b50a, 0x023cef1e, 0x008fb529, 0x01c797f6, 0x01e95ef8, 0x01a212c5, 0x02659d19, 0x002014a7}}, Y: Field{[10]uint32{0x00b3b778, 0x0391dbc4, 0x02de6e9a, 0x02a1d3a1, 0x000b74b4, 0x01696c9a, 0x01e50bfc, 0x02faa3bf, 0x024f9ae4, 0x0021a2cf}}},
+ {X: Field{[10]uint32{0x0328e183, 0x01d35fa1, 0x01dded06, 0x005a54fc, 0x030e0bb3, 0x02710c9d, 0x0288e494, 0x0007b574, 0x01aa3b82, 0x001fe466}}, Y: Field{[10]uint32{0x025288b9, 0x0387e7c6, 0x01e2ffcb, 0x0107765f, 0x00ee9d7e, 0x029c89a3, 0x02c174a3, 0x0080a551, 0x0273d037, 0x00006ae9}}},
+ {X: Field{[10]uint32{0x0029ecbc, 0x0322598b, 0x02fb76d0, 0x01b59134, 0x0129b456, 0x03332c64, 0x004674cd, 0x0167d923, 0x008508e9, 0x001f4cb2}}, Y: Field{[10]uint32{0x02d39698, 0x0000d081, 0x013e866e, 0x0278c7d5, 0x02875ea9, 0x01971ce1, 0x011afb8e, 0x03fba325, 0x00ecb50b, 0x003643a5}}},
+ {X: Field{[10]uint32{0x011abfbf, 0x020678cb, 0x0374cbf8, 0x03feb67a, 0x011f1727, 0x02f46fc0, 0x02ce67eb, 0x03b3215d, 0x01c09291, 0x003cae58}}, Y: Field{[10]uint32{0x0126f795, 0x001c408c, 0x00524017, 0x002b5030, 0x00ed0aec, 0x0195bd8e, 0x00382208, 0x01a8d91b, 0x00495a1e, 0x003aff96}}},
+ {X: Field{[10]uint32{0x01be876e, 0x02efefe0, 0x02676f75, 0x005d3a62, 0x026b4ae3, 0x025c606c, 0x02d6a728, 0x00ca465c, 0x02899528, 0x00366831}}, Y: Field{[10]uint32{0x02bfa042, 0x03e31eb1, 0x00d922b7, 0x024eecd4, 0x01e9039b, 0x034fc0c2, 0x0164d974, 0x02f26b45, 0x0086a0ac, 0x0034daba}}},
+ {X: Field{[10]uint32{0x007c3e0a, 0x0375205f, 0x0269fbe2, 0x0048c2ce, 0x00fff299, 0x002af7d7, 0x01b2aa71, 0x01f23264, 0x03246aeb, 0x0031e8d8}}, Y: Field{[10]uint32{0x01c9e21f, 0x016c3001, 0x025f815f, 0x01235b47, 0x0102b321, 0x02d2cb52, 0x01863026, 0x0234b5e6, 0x01d70e44, 0x0004a63f}}},
+ {X: Field{[10]uint32{0x00985a86, 0x010853f9, 0x00ac4830, 0x01931ff8, 0x02640d24, 0x036fd58e, 0x02535a04, 0x034ef019, 0x03a05064, 0x0018d735}}, Y: Field{[10]uint32{0x01e3ae1f, 0x014f89fa, 0x01a4ce04, 0x011fcca0, 0x00e8d5f0, 0x03e78bcc, 0x0335cfca, 0x01dfd919, 0x0265913e, 0x00003900}}},
+ {X: Field{[10]uint32{0x009ee5f5, 0x02478426, 0x00adcc5b, 0x02dc85a7, 0x02eca54b, 0x0256d206, 0x035b6326, 0x03a894df, 0x024f38ed, 0x00017698}}, Y: Field{[10]uint32{0x02721779, 0x0035dc72, 0x02505a22, 0x0088dec5, 0x0248c288, 0x00e9495b, 0x03aeeb24, 0x000c03ff, 0x01baa108, 0x0034fa9b}}},
+ {X: Field{[10]uint32{0x007d4d5e, 0x024a13fa, 0x0080efe1, 0x0230a5db, 0x01ce0527, 0x03f92db5, 0x001f6871, 0x01d7b24b, 0x00a2b197, 0x002a93d9}}, Y: Field{[10]uint32{0x02d4f240, 0x01e4f70f, 0x0118e293, 0x00a20e59, 0x00224ea0, 0x0160e99b, 0x036e9499, 0x0383eda5, 0x017e95fc, 0x003ce7c4}}},
+ {X: Field{[10]uint32{0x027e0641, 0x02d70d90, 0x038c1477, 0x03b3af8d, 0x01d60969, 0x00b81554, 0x0293f266, 0x006d088a, 0x00ea99ff, 0x0026d946}}, Y: Field{[10]uint32{0x0393165a, 0x01d21f63, 0x0165627b, 0x03147508, 0x01bebdf7, 0x0014cbfe, 0x02ea9dd3, 0x03eced0e, 0x02558650, 0x000ba7c5}}},
+ {X: Field{[10]uint32{0x0297b562, 0x024f402b, 0x011594b1, 0x01ffec40, 0x006547f4, 0x03772fae, 0x02011381, 0x00b83e87, 0x02a2b597, 0x001b26e6}}, Y: Field{[10]uint32{0x0275e27d, 0x01280e18, 0x02d3b162, 0x02c99d1d, 0x02a6e78e, 0x034816f6, 0x0123d0f9, 0x01c74af9, 0x011c8d4c, 0x002bc276}}},
+ {X: Field{[10]uint32{0x03467cbe, 0x019984b6, 0x01f71f53, 0x031a8df9, 0x00cf80ae, 0x031c44a8, 0x02365410, 0x02571579, 0x00803cdc, 0x0028a872}}, Y: Field{[10]uint32{0x0223fc09, 0x02e6cb53, 0x02fc273e, 0x00683108, 0x01802e2e, 0x00352c5d, 0x025410d5, 0x03c103ff, 0x030f3638, 0x003133d5}}},
+ {X: Field{[10]uint32{0x03650427, 0x010df96a, 0x008a9ca8, 0x02b883cb, 0x0213102b, 0x02225cd9, 0x025af104, 0x033358d2, 0x0350c961, 0x00018f4d}}, Y: Field{[10]uint32{0x02339248, 0x01c01163, 0x03fa06d6, 0x03c1c4e4, 0x01f21125, 0x0261d0a8, 0x01e90dc6, 0x0269d9cb, 0x033274b3, 0x0021d054}}},
+ {X: Field{[10]uint32{0x02bdd04a, 0x00582c94, 0x0130e1f5, 0x02fc66da, 0x00bcc97d, 0x02117453, 0x013e8fb5, 0x02095429, 0x0266e442, 0x002341c3}}, Y: Field{[10]uint32{0x01487ecd, 0x036a3766, 0x00bb2497, 0x02433bbd, 0x0248cdef, 0x005cf348, 0x0084099f, 0x013c1326, 0x00824f2b, 0x0012f263}}},
+ {X: Field{[10]uint32{0x0291c8bd, 0x02ff4ad2, 0x01456175, 0x037decd8, 0x03e3f3d4, 0x03305963, 0x00143950, 0x00022ed4, 0x02a72e5f, 0x003c7f95}}, Y: Field{[10]uint32{0x01f275f2, 0x03219bbd, 0x017b2be2, 0x017ffa29, 0x03a19caa, 0x00da2159, 0x01e302ad, 0x01f69740, 0x02bee57a, 0x002f97ff}}},
+ {X: Field{[10]uint32{0x03554b21, 0x01a87f9c, 0x01635747, 0x02756bb3, 0x03b41239, 0x019d6f31, 0x0271a950, 0x025a7a6e, 0x02dbd2eb, 0x00200b26}}, Y: Field{[10]uint32{0x0372bc5e, 0x008b84d9, 0x007efb74, 0x0326f841, 0x02cc3344, 0x01c3e703, 0x026527d3, 0x0339a59b, 0x0026f547, 0x001084c8}}},
+ {X: Field{[10]uint32{0x0093db56, 0x020812c5, 0x02745c71, 0x0293c5e2, 0x009d24cd, 0x02f1e965, 0x030a5cda, 0x03b48803, 0x02c09d6c, 0x00256c6d}}, Y: Field{[10]uint32{0x02adb01d, 0x0002752d, 0x023ddf69, 0x0074db2c, 0x0127b233, 0x01b3c903, 0x00ce5e9a, 0x00f45ab2, 0x02815303, 0x002f050d}}},
+ {X: Field{[10]uint32{0x02ede35d, 0x0120e9a9, 0x0169d2d6, 0x01bb5dac, 0x017b79a0, 0x005c08bc, 0x03b2aa4e, 0x013ab860, 0x012901f9, 0x0003abb5}}, Y: Field{[10]uint32{0x01d559b3, 0x009fee57, 0x03f8f9cb, 0x01f266b1, 0x00bc6e37, 0x02b5aebc, 0x02c1efa3, 0x02267376, 0x027691c5, 0x0014f56c}}},
+ {X: Field{[10]uint32{0x0027d770, 0x02dcd667, 0x02abeac7, 0x0038d9ef, 0x03906d69, 0x03bcfdfc, 0x02b485b6, 0x011231cb, 0x03e59f6f, 0x001df113}}, Y: Field{[10]uint32{0x031102fd, 0x008bbafe, 0x009d3833, 0x027feb31, 0x00e6629c, 0x038f5ace, 0x00f03604, 0x003e00b3, 0x00226c44, 0x002f35d4}}},
+ {X: Field{[10]uint32{0x000a0306, 0x02b97ef9, 0x0144efad, 0x01e55046, 0x00011b62, 0x0364daa2, 0x0352002c, 0x00291ad9, 0x02e2f00f, 0x003a18ec}}, Y: Field{[10]uint32{0x03243a5f, 0x03f81119, 0x00358b36, 0x01f59802, 0x01c2ed93, 0x00c7a3ab, 0x039caff6, 0x027c5c16, 0x03a36da2, 0x002d71e6}}},
+ {X: Field{[10]uint32{0x02f8f191, 0x0079cbbb, 0x02dec272, 0x02d3cf73, 0x003883ad, 0x02b68c26, 0x03eedda4, 0x01c742cb, 0x03ef93df, 0x00089bd6}}, Y: Field{[10]uint32{0x001707c3, 0x008cf39d, 0x00fbcc13, 0x022f5d73, 0x00f96607, 0x02116186, 0x00a08fbe, 0x02f05228, 0x00b52bce, 0x00282481}}},
+ {X: Field{[10]uint32{0x03467184, 0x03a40da0, 0x0046e3a4, 0x0292bfdf, 0x02c33bed, 0x031bc237, 0x03a82b39, 0x01f14e7c, 0x03b08c1e, 0x002a888b}}, Y: Field{[10]uint32{0x001c3765, 0x03590c5f, 0x01d4ac5d, 0x00a641ad, 0x01c1653d, 0x01b7fe4c, 0x01a7c3aa, 0x03f4e608, 0x01cf21ca, 0x00010441}}},
+ {X: Field{[10]uint32{0x01fec96a, 0x01d53c78, 0x01a82239, 0x033048db, 0x01f94482, 0x025ec540, 0x01220bb3, 0x013b4f71, 0x02cd26ef, 0x00061e70}}, Y: Field{[10]uint32{0x01f0d67d, 0x01c96ddc, 0x01351464, 0x01472dcf, 0x024fc689, 0x00758c10, 0x03b16092, 0x03785247, 0x033575ea, 0x00244b57}}},
+ {X: Field{[10]uint32{0x009902e0, 0x01fb2c6b, 0x03b76765, 0x007af70a, 0x026df621, 0x01c352df, 0x024cfc59, 0x03622fd2, 0x00a4e7ee, 0x002f8e79}}, Y: Field{[10]uint32{0x0227cb4e, 0x03311d9f, 0x00899f94, 0x02915857, 0x0132ae54, 0x0133d692, 0x006d9a2b, 0x029edd8c, 0x00f113fc, 0x00362c79}}},
+ {X: Field{[10]uint32{0x012d5786, 0x02f70bdd, 0x00631d3f, 0x0391f3d1, 0x001c2912, 0x01b0fe2a, 0x03028368, 0x0230f740, 0x03ce3337, 0x0007a9cb}}, Y: Field{[10]uint32{0x0348906e, 0x002e220d, 0x007c9aed, 0x02c201ff, 0x000cb6e2, 0x03941ade, 0x03f261af, 0x03745333, 0x0158fe1c, 0x003883d1}}},
+ {X: Field{[10]uint32{0x02036806, 0x0198beb6, 0x032423ac, 0x0046dd36, 0x022d0ca0, 0x00caf0e5, 0x00638e6f, 0x03d5f7a3, 0x03dd67bf, 0x00015b8c}}, Y: Field{[10]uint32{0x0393f461, 0x00ee4ff0, 0x02e2efbb, 0x033cf853, 0x0350d78e, 0x007795ef, 0x0317d4e4, 0x01c4c024, 0x00cc165e, 0x00100e70}}},
+ {X: Field{[10]uint32{0x000f37ad, 0x01c330ba, 0x034470c4, 0x0153c429, 0x02d036ce, 0x00e2e78f, 0x02fb95a7, 0x03637c72, 0x0291a5f1, 0x00146605}}, Y: Field{[10]uint32{0x01972261, 0x02a998b1, 0x03664d31, 0x03711c7b, 0x01d03fab, 0x03a5fc11, 0x026e3c26, 0x00aa641d, 0x004767cf, 0x00027ee4}}},
+ {X: Field{[10]uint32{0x00869dbd, 0x03165e66, 0x03f3016e, 0x02e6f355, 0x02b90db9, 0x03e49e65, 0x00be7f95, 0x025e0dac, 0x028577a5, 0x003bce95}}, Y: Field{[10]uint32{0x037c5e07, 0x030f6306, 0x024d372a, 0x00d92ed4, 0x03fabe11, 0x0387d1e0, 0x01782c6a, 0x01d27a52, 0x0057ff22, 0x001473f9}}},
+ {X: Field{[10]uint32{0x03196415, 0x0301836b, 0x00a22523, 0x020814c1, 0x0379a668, 0x038f190c, 0x029e0b16, 0x0216e9fb, 0x02a18c3a, 0x003bf194}}, Y: Field{[10]uint32{0x00f7b2a5, 0x0111ecd5, 0x01d49737, 0x00726302, 0x038fcee7, 0x01661c20, 0x01b2498f, 0x006bcc07, 0x0014cef9, 0x0022995b}}},
+ {X: Field{[10]uint32{0x004bbf82, 0x00dc2862, 0x015def07, 0x018b012a, 0x018adc79, 0x0226203c, 0x00021983, 0x0338b366, 0x03eff4d5, 0x00337687}}, Y: Field{[10]uint32{0x01e31d6c, 0x01726c12, 0x0235a0e5, 0x02ae14d8, 0x024417f9, 0x0291e058, 0x019174b4, 0x0370175e, 0x03fcb0c9, 0x0022f09b}}},
+ {X: Field{[10]uint32{0x016cf0d4, 0x021a11ee, 0x03a3f938, 0x02b370e8, 0x00d46bb6, 0x01f7b750, 0x00b76d77, 0x02a84c4d, 0x01853454, 0x001bcfce}}, Y: Field{[10]uint32{0x00adba81, 0x03b1724b, 0x01637e4e, 0x02479592, 0x00b6e324, 0x029020d1, 0x03e5192e, 0x0286d6b9, 0x019c4f7c, 0x002a2e92}}},
+ {X: Field{[10]uint32{0x014b13e4, 0x033577f9, 0x01ee8061, 0x01f61452, 0x03a2a362, 0x03636013, 0x0042065e, 0x03ee0faa, 0x01af91ab, 0x00394b44}}, Y: Field{[10]uint32{0x01cfff97, 0x00e384aa, 0x01069468, 0x00f438fb, 0x012e132a, 0x039cca17, 0x021f6ed4, 0x0159cb2c, 0x006d619e, 0x00167cc4}}},
+ {X: Field{[10]uint32{0x027256ff, 0x0033e8e7, 0x02ac066c, 0x01a70c38, 0x038fb918, 0x00cacf2a, 0x0254d13b, 0x0072d915, 0x0336f0de, 0x00227fb1}}, Y: Field{[10]uint32{0x03e44274, 0x01156b81, 0x01ded46b, 0x036ed63d, 0x0173e708, 0x037f798b, 0x02b938d9, 0x0069b6da, 0x02e84d3e, 0x003e505e}}},
+ {X: Field{[10]uint32{0x02b70b29, 0x036b0248, 0x03f7531b, 0x0082a240, 0x03522615, 0x000a1d27, 0x006ce733, 0x00154f3a, 0x035691b1, 0x00014503}}, Y: Field{[10]uint32{0x022dc024, 0x019f5caa, 0x00afd0dd, 0x002fe894, 0x00ad0acf, 0x007033a4, 0x021f4ce2, 0x0308f401, 0x022b9e02, 0x00246865}}},
+ {X: Field{[10]uint32{0x01267b5c, 0x0243f21f, 0x00d09c0f, 0x03ae1548, 0x030579d0, 0x034cbe52, 0x035e199e, 0x02645c41, 0x01309310, 0x0000f058}}, Y: Field{[10]uint32{0x00ac64c3, 0x01f4dade, 0x00e51a5f, 0x03297a00, 0x01e9f156, 0x01a4eb00, 0x02a00107, 0x0036e40e, 0x00dfe404, 0x00354341}}},
+ {X: Field{[10]uint32{0x03e8bac9, 0x00fbae26, 0x01fa8be1, 0x014a4474, 0x02a2d0b9, 0x00090154, 0x00b8a58f, 0x0008dc96, 0x010e63a5, 0x003f61da}}, Y: Field{[10]uint32{0x021b9225, 0x013fa922, 0x0247458e, 0x038eb144, 0x03b40f04, 0x011ff19a, 0x023ee352, 0x01a3d5be, 0x01acccb9, 0x00101b70}}},
+ {X: Field{[10]uint32{0x01a12a81, 0x01d0d2f5, 0x01347ebc, 0x0381aa36, 0x0299005c, 0x01cecca3, 0x028ad599, 0x01e3ccb3, 0x01de017e, 0x00023934}}, Y: Field{[10]uint32{0x01a2a8ae, 0x0065006c, 0x036da429, 0x02a230c6, 0x02992baf, 0x02efc362, 0x00c843b4, 0x029975d1, 0x033e744c, 0x00318d23}}},
+ {X: Field{[10]uint32{0x007743c2, 0x00e6831b, 0x03ff6ea7, 0x001059de, 0x02f49881, 0x029632aa, 0x03b6eebb, 0x0319e05c, 0x03cfea62, 0x000e0b1e}}, Y: Field{[10]uint32{0x01c5eb7d, 0x0154e69a, 0x035237cf, 0x0372bf34, 0x0267e9ad, 0x000703da, 0x01f7f27e, 0x01090d4f, 0x01da77e6, 0x00006429}}},
+ {X: Field{[10]uint32{0x0114ed0f, 0x0364357e, 0x01d29e87, 0x03254efd, 0x0125b0da, 0x03a941e5, 0x01fa471b, 0x01201d4e, 0x034e74b8, 0x003d5aa2}}, Y: Field{[10]uint32{0x0096db8b, 0x00547ef0, 0x01a48c50, 0x00704e45, 0x008f9f20, 0x01a9ba89, 0x03881c65, 0x039848ea, 0x0108da57, 0x001515b6}}},
+ {X: Field{[10]uint32{0x03965b80, 0x03f6c185, 0x02a044ec, 0x00b157c4, 0x003af365, 0x005ae031, 0x02f8ea2b, 0x0155e87f, 0x03fb6a5e, 0x002423a7}}, Y: Field{[10]uint32{0x038bc2ce, 0x0379d6a1, 0x02043562, 0x0253b5ad, 0x03b9c010, 0x03af0c4d, 0x0182ca07, 0x0133c3e0, 0x00c9d1b1, 0x002fab8a}}},
+ {X: Field{[10]uint32{0x02c86ef4, 0x00b9ba6f, 0x01e787ef, 0x012e6750, 0x033fad25, 0x014a4d3a, 0x03225330, 0x0207f45a, 0x03184333, 0x0029b0c1}}, Y: Field{[10]uint32{0x023fb818, 0x024015d8, 0x026f44bf, 0x020817b8, 0x029e266f, 0x000c271c, 0x01129e4e, 0x01440813, 0x0286a60d, 0x0011ea68}}},
+ {X: Field{[10]uint32{0x00b3e903, 0x019bade6, 0x01361047, 0x038d28a6, 0x0230a652, 0x00af882b, 0x01461635, 0x00b0980b, 0x01866c3e, 0x002522eb}}, Y: Field{[10]uint32{0x01c35164, 0x01312136, 0x00d3395b, 0x0129da86, 0x004321da, 0x02457783, 0x0043b0f0, 0x0228ae67, 0x0222ad47, 0x000c34c1}}},
+ {X: Field{[10]uint32{0x00f6a3f2, 0x03a13487, 0x02c9f0c9, 0x0373e5b4, 0x029d536e, 0x021e0b4d, 0x03881251, 0x005eb9dd, 0x039dcb8a, 0x0035b24a}}, Y: Field{[10]uint32{0x02de09b9, 0x00412bca, 0x0207b9e0, 0x00923b08, 0x030ed686, 0x02bb1752, 0x030ae881, 0x020dde5e, 0x03a09351, 0x003764d9}}},
+ {X: Field{[10]uint32{0x01566abd, 0x03bc3f59, 0x0232854c, 0x00269d6b, 0x037b0822, 0x0137e00b, 0x00641ca6, 0x004f591b, 0x017b7d8b, 0x003e7fcf}}, Y: Field{[10]uint32{0x02deec98, 0x0396580c, 0x011c8c84, 0x00a2861c, 0x01b9269d, 0x00f60474, 0x02230224, 0x008257dc, 0x019e1f19, 0x002b1618}}},
+ {X: Field{[10]uint32{0x02c8d5e0, 0x00a3dba4, 0x014e1c35, 0x01fe0d34, 0x017f4e76, 0x00a0dfb5, 0x009a9204, 0x0383dc08, 0x01ba3a70, 0x000f6b87}}, Y: Field{[10]uint32{0x000f797f, 0x0134154a, 0x0332e08b, 0x0367aa64, 0x015c7816, 0x03ffa1f2, 0x03cdfad3, 0x03cb3f87, 0x028d6ea1, 0x001eb891}}},
+ {X: Field{[10]uint32{0x01b49937, 0x012c0746, 0x007cad0b, 0x01f836ef, 0x008ffd22, 0x03caabac, 0x03ffe130, 0x024df272, 0x01056fcc, 0x0009c114}}, Y: Field{[10]uint32{0x03fa4397, 0x029a63c7, 0x02ad4d08, 0x03d710a1, 0x01bbd801, 0x01875b1d, 0x00d37246, 0x03f7f888, 0x02546c24, 0x00045d9a}}},
+ {X: Field{[10]uint32{0x00defd22, 0x00359788, 0x00865bb9, 0x01599271, 0x012024c5, 0x018beea0, 0x00340752, 0x0183bb35, 0x03f96c32, 0x003e7657}}, Y: Field{[10]uint32{0x03a13c2d, 0x0009af05, 0x01dda24b, 0x0128696c, 0x030a89d5, 0x00c11cc2, 0x02632ba8, 0x00504602, 0x03fd8f74, 0x000df2fd}}},
+ {X: Field{[10]uint32{0x01a7021f, 0x02d5f171, 0x0021448a, 0x02ef6e64, 0x02ff0a86, 0x019b3ef9, 0x018c6d5b, 0x019fa7fb, 0x0318f90f, 0x00013a37}}, Y: Field{[10]uint32{0x02a621f5, 0x024ff6bc, 0x0329ea22, 0x03f4ea0d, 0x000e9bad, 0x02cd210f, 0x03a2b1b3, 0x01904d14, 0x00c5ccf5, 0x001f9a7e}}},
+ {X: Field{[10]uint32{0x02ffef9f, 0x016dde74, 0x01821c8a, 0x02f4ef8d, 0x00ab3d32, 0x00f19916, 0x02783836, 0x01fec86e, 0x012a710a, 0x00230a93}}, Y: Field{[10]uint32{0x025511d6, 0x016ab18d, 0x01205caa, 0x0247fce7, 0x03f82d8f, 0x006f595d, 0x01715157, 0x00960d18, 0x007d27e4, 0x00354c91}}},
+ {X: Field{[10]uint32{0x03654b75, 0x010f3be1, 0x00e19631, 0x007b52c1, 0x02c10e81, 0x023eb9cb, 0x00677afa, 0x027339bf, 0x03a01974, 0x000a2dfc}}, Y: Field{[10]uint32{0x005ec782, 0x035698e1, 0x03e392ce, 0x00c699e3, 0x01e241ba, 0x01c7d287, 0x017c881e, 0x02ace456, 0x01eb3245, 0x0000c11c}}},
+ {X: Field{[10]uint32{0x01be416b, 0x01b5f6d6, 0x0300808f, 0x025033d2, 0x02d89f64, 0x02667b23, 0x03b5acb0, 0x039cb095, 0x010ffcb8, 0x0032d1d3}}, Y: Field{[10]uint32{0x016622fd, 0x00c146a8, 0x000c7e3a, 0x02cfbff0, 0x029a0e59, 0x01d67e15, 0x039a9508, 0x00f2ee2a, 0x00cefc29, 0x003fdf34}}},
+ {X: Field{[10]uint32{0x0055b36c, 0x01ecd7d0, 0x023f5bd5, 0x00d0ba65, 0x011a1800, 0x0378a929, 0x01567fbe, 0x02f10099, 0x01825dbe, 0x0030cf9a}}, Y: Field{[10]uint32{0x0146be18, 0x023b0b31, 0x01e0db79, 0x02d64694, 0x02082c0c, 0x0266ac19, 0x03b50615, 0x01973894, 0x03f57ce2, 0x0008bfcf}}},
+ {X: Field{[10]uint32{0x01bd2237, 0x01060e06, 0x00a0eee3, 0x0116cf43, 0x03257e07, 0x01112a6a, 0x02441a84, 0x01c48dc6, 0x010644d3, 0x00212ff0}}, Y: Field{[10]uint32{0x009ef6f1, 0x00861eca, 0x0235ae1c, 0x00847b38, 0x03afd7f4, 0x00f9065e, 0x03d13ffb, 0x03dc1b0c, 0x02d57b7a, 0x001f2f95}}},
+ {X: Field{[10]uint32{0x017b713a, 0x026594fe, 0x008dc735, 0x02296c12, 0x03606302, 0x01f820d7, 0x000f003f, 0x00913bf5, 0x02ecd53b, 0x000270c4}}, Y: Field{[10]uint32{0x02b76d14, 0x01126c53, 0x01fe6165, 0x0297fb90, 0x0059698b, 0x00622d3a, 0x00d0b160, 0x01dfbe15, 0x010f58fc, 0x00046f2f}}},
+ {X: Field{[10]uint32{0x0315cefc, 0x02a0b72b, 0x004332d0, 0x006b8074, 0x01d474f6, 0x00eef3c8, 0x0183bf4e, 0x01bcb433, 0x0359a22d, 0x001701ab}}, Y: Field{[10]uint32{0x0322aae8, 0x02059690, 0x02be2904, 0x02c50978, 0x0341fbef, 0x0319a6ab, 0x006d70d6, 0x0197f6a3, 0x03e9f1c2, 0x0011dad2}}},
+ {X: Field{[10]uint32{0x01b6bdcf, 0x03516cfc, 0x002bf2d6, 0x01c72118, 0x03f44f0d, 0x02bce7ae, 0x000eb547, 0x03b50ed3, 0x01c681a3, 0x001ddc96}}, Y: Field{[10]uint32{0x033bf754, 0x037861fe, 0x02bba22f, 0x0273d58f, 0x03d6742b, 0x0320d199, 0x00448514, 0x02162bbb, 0x03535481, 0x0022a74d}}},
+ {X: Field{[10]uint32{0x01266842, 0x00831410, 0x0283ce38, 0x03101d98, 0x020174b8, 0x03409137, 0x024328b4, 0x03074c53, 0x001eae1f, 0x002cdc18}}, Y: Field{[10]uint32{0x00125ac0, 0x00da0d2f, 0x029323e1, 0x02a9010a, 0x03eda7b5, 0x036603b8, 0x02a9abc8, 0x030ec1d4, 0x00792174, 0x0023bc14}}},
+ {X: Field{[10]uint32{0x02fe6584, 0x022b23b6, 0x028bf824, 0x015ac054, 0x02780868, 0x01c25c81, 0x032ad406, 0x01924a91, 0x02c07f8d, 0x0016be52}}, Y: Field{[10]uint32{0x022daf1a, 0x030e59b9, 0x016552a9, 0x035e33f9, 0x00b40dff, 0x03bd7d5b, 0x01f32efc, 0x03794475, 0x03ce57ea, 0x00229531}}},
+ {X: Field{[10]uint32{0x030586c6, 0x032e39d6, 0x0194581a, 0x007cfe51, 0x034f84b4, 0x0160cbcd, 0x01d4f23c, 0x01c154e1, 0x019ce2e8, 0x0023f8f0}}, Y: Field{[10]uint32{0x01728c28, 0x013d6b24, 0x03860067, 0x005c055b, 0x012f5e20, 0x02bc64f2, 0x0314d491, 0x01130e90, 0x019fd16f, 0x003e48c2}}},
+ {X: Field{[10]uint32{0x03ac9a71, 0x00a23f04, 0x02fc3b5f, 0x01fe8dee, 0x01e531d1, 0x026d97ad, 0x01211b30, 0x02f4797e, 0x021d2642, 0x00356025}}, Y: Field{[10]uint32{0x034185cb, 0x0225fa46, 0x03650e4f, 0x03716ce3, 0x02d9678c, 0x02c4bea1, 0x0250a6e0, 0x022d0cdb, 0x0154337e, 0x00140301}}},
+ {X: Field{[10]uint32{0x0295e82b, 0x033efc50, 0x01405256, 0x019d6a71, 0x02234e79, 0x019e430c, 0x02460338, 0x02988d27, 0x00ed529f, 0x00009577}}, Y: Field{[10]uint32{0x01799815, 0x03d2d29f, 0x00b100c8, 0x033653db, 0x035dfba7, 0x02a918c5, 0x03253d3f, 0x0071eff0, 0x01c47f3e, 0x001fbb6a}}},
+ {X: Field{[10]uint32{0x00891557, 0x02f908bb, 0x004580bd, 0x00e2a376, 0x031a27c3, 0x03923957, 0x00476a4a, 0x01147eae, 0x03a79240, 0x0012dfaf}}, Y: Field{[10]uint32{0x01b59085, 0x00f60fa1, 0x012848c6, 0x035f90a1, 0x02c12622, 0x035fb604, 0x00a23cfa, 0x00d7d83f, 0x00e9f891, 0x0037ec98}}},
+ {X: Field{[10]uint32{0x032fbf28, 0x01fd5547, 0x00c7d8f4, 0x0274ef45, 0x01311956, 0x0319dc67, 0x035819e0, 0x024aa68e, 0x03809e60, 0x00246741}}, Y: Field{[10]uint32{0x003d8094, 0x02bca0e1, 0x024fdcbc, 0x03528c38, 0x00c204d3, 0x02635846, 0x03b2fa50, 0x003cb3b2, 0x02f876d7, 0x003282da}}},
+ {X: Field{[10]uint32{0x0070ee78, 0x03754da3, 0x03f42393, 0x01ad67ba, 0x009b8c89, 0x02b8d0a9, 0x02d73bd5, 0x02a5116f, 0x03a9de89, 0x00119a19}}, Y: Field{[10]uint32{0x02e042e1, 0x03559e2a, 0x02029385, 0x024d3ba5, 0x019cbb9f, 0x022dfb42, 0x01bd6cae, 0x01608c1e, 0x0307b3e1, 0x000a9765}}},
+ {X: Field{[10]uint32{0x01db3f7b, 0x0172e8b0, 0x01f3cd98, 0x016ef995, 0x01fc740d, 0x03dc4963, 0x021526fc, 0x01145e24, 0x0108c878, 0x001c49d3}}, Y: Field{[10]uint32{0x034b25e0, 0x01237bfe, 0x03f560d8, 0x0299aaf9, 0x033cdd2c, 0x010185de, 0x01652bc4, 0x0050d3e3, 0x0130a5be, 0x00382bc0}}},
+ {X: Field{[10]uint32{0x02be2bcd, 0x03838ddf, 0x0111fa0a, 0x01b47ecc, 0x03b6e825, 0x013981a3, 0x00693c1f, 0x0090744f, 0x00482d25, 0x00291ba4}}, Y: Field{[10]uint32{0x00474eda, 0x02486fa5, 0x0111140f, 0x02ff56b9, 0x01fdd708, 0x0185c9ab, 0x026e7ac9, 0x02ada604, 0x000cf22a, 0x001d59dc}}},
+ {X: Field{[10]uint32{0x01e84abd, 0x000afea9, 0x03b5baec, 0x022e89b4, 0x0110ea91, 0x01ef9a14, 0x0073b0f7, 0x00449a16, 0x0391f243, 0x003dd642}}, Y: Field{[10]uint32{0x02708999, 0x024d6918, 0x00e2eded, 0x02357a8a, 0x002d2512, 0x016372f2, 0x035d6cc8, 0x02534326, 0x00f8594c, 0x00120612}}},
+ {X: Field{[10]uint32{0x028c2edf, 0x00bb7790, 0x023bc9a2, 0x037ebfd7, 0x004f966e, 0x0263c1e4, 0x0139d643, 0x03876b6b, 0x00e51282, 0x000b5eaa}}, Y: Field{[10]uint32{0x035d9d79, 0x016d868c, 0x01fb5763, 0x0285c233, 0x01a30b4d, 0x005d57e7, 0x033ea24f, 0x008267ac, 0x033c4203, 0x0004ac84}}},
+ {X: Field{[10]uint32{0x0236d0e3, 0x0143ea5c, 0x00607995, 0x009d7d96, 0x00822809, 0x0207c4d7, 0x03113a55, 0x0311ff67, 0x03403302, 0x00244c4f}}, Y: Field{[10]uint32{0x00838a77, 0x00fd89e4, 0x03f27c32, 0x0308b833, 0x03aa9e96, 0x03c84a16, 0x01daee91, 0x0012fd18, 0x00075e78, 0x003e2dbb}}},
+ {X: Field{[10]uint32{0x006743cb, 0x0128755b, 0x010de2f4, 0x0070e867, 0x01e0be03, 0x02c51bef, 0x028e86e1, 0x02169e11, 0x011909d3, 0x00368920}}, Y: Field{[10]uint32{0x00348cbf, 0x027bd9d0, 0x01a666d3, 0x02d874b3, 0x0305d418, 0x026cdf11, 0x00625111, 0x03dbbbcb, 0x017b5f76, 0x00301f22}}},
+ {X: Field{[10]uint32{0x01e82220, 0x00809a37, 0x01bd62e8, 0x03e5bc07, 0x02760ec3, 0x03a7b50c, 0x01e6082d, 0x030b8fed, 0x02240b1b, 0x002578da}}, Y: Field{[10]uint32{0x00e1cb63, 0x017a7447, 0x03d01766, 0x021c7878, 0x0352a74a, 0x032d080a, 0x003b209d, 0x0128ea3c, 0x00d73abc, 0x002f9a64}}},
+ {X: Field{[10]uint32{0x02bc6e8b, 0x020ccfcf, 0x01cdf488, 0x021c5411, 0x01afe54a, 0x007e0478, 0x03489e45, 0x01d6c315, 0x00603abd, 0x0022c16c}}, Y: Field{[10]uint32{0x0340fb39, 0x003d3f9f, 0x0179dbb3, 0x0056b358, 0x0027f5b6, 0x0206f69f, 0x01e2ddce, 0x0103ee22, 0x008145db, 0x0007443e}}},
+ {X: Field{[10]uint32{0x03020f54, 0x0274c33c, 0x0372855a, 0x02df7363, 0x01d43ec0, 0x0072e0ca, 0x00bbb2ba, 0x00c9e9d4, 0x023b764a, 0x003feaf2}}, Y: Field{[10]uint32{0x01d0f05a, 0x021510db, 0x01302cf5, 0x0172d828, 0x00c79196, 0x013a652d, 0x02fb393a, 0x0289816c, 0x0265c90b, 0x0024e5c2}}},
+ {X: Field{[10]uint32{0x03866c72, 0x03ec14c2, 0x027c0a18, 0x01a2c4cf, 0x02d35148, 0x01d4a662, 0x00f05fa9, 0x0392a63c, 0x02efef35, 0x002cea16}}, Y: Field{[10]uint32{0x036005e2, 0x011b47d6, 0x0275238f, 0x031fa228, 0x0009ee78, 0x0139c03a, 0x016b36c5, 0x016e780f, 0x02e1c21e, 0x000c0457}}},
+ {X: Field{[10]uint32{0x015b7ab5, 0x01494332, 0x012d5d15, 0x00cbaf2d, 0x015b78fc, 0x03d99b54, 0x01c56590, 0x00f3c82e, 0x015f4c23, 0x00293c7f}}, Y: Field{[10]uint32{0x01faa0da, 0x00f58720, 0x02d52c36, 0x00962764, 0x03337543, 0x03148671, 0x00419fe0, 0x00496111, 0x0385726a, 0x00247467}}},
+ {X: Field{[10]uint32{0x015bbb0a, 0x00f98900, 0x03c98bec, 0x00df4a6c, 0x019eb146, 0x02d62d7b, 0x03f39232, 0x033c4e52, 0x034b7bae, 0x0025ee12}}, Y: Field{[10]uint32{0x01162435, 0x01bd254b, 0x03bf48b8, 0x00c361b6, 0x025eac7f, 0x02a4ad2d, 0x0093d73c, 0x01ece84d, 0x00afbe8e, 0x00125f6d}}},
+ {X: Field{[10]uint32{0x006312b3, 0x01d34665, 0x0169a1c2, 0x0208f321, 0x03a9de5f, 0x006d6d5e, 0x0278e965, 0x00d999d7, 0x00d9203e, 0x000b3ae8}}, Y: Field{[10]uint32{0x02d2b437, 0x029d70e3, 0x0040a488, 0x02db1aad, 0x00b7805d, 0x035df062, 0x030a88a6, 0x033f7907, 0x0286f042, 0x003530bf}}},
+ {X: Field{[10]uint32{0x032b7009, 0x02e1a88f, 0x01e10e91, 0x032f1a90, 0x00912391, 0x0120da66, 0x0257b78b, 0x02b28a2f, 0x01306cdd, 0x002ae2c6}}, Y: Field{[10]uint32{0x034172cf, 0x00a1940d, 0x02a03351, 0x0144da24, 0x027abed6, 0x02992081, 0x00472a17, 0x0286ba76, 0x03dc79fb, 0x003f6eea}}},
+ {X: Field{[10]uint32{0x0215b394, 0x0034c146, 0x01acd6bb, 0x01742a8b, 0x03c14970, 0x024e3c9a, 0x02ac2b59, 0x0102c55f, 0x00291ff1, 0x00009d8c}}, Y: Field{[10]uint32{0x01374ee6, 0x01412b12, 0x01875a91, 0x01e61bb3, 0x00553594, 0x014bd728, 0x0240838c, 0x02e78bd1, 0x032a38dc, 0x0030adac}}},
+ {X: Field{[10]uint32{0x02fc78c5, 0x01e7ad72, 0x02d8e6cc, 0x03423197, 0x009e703f, 0x03a77449, 0x011d7933, 0x014531fe, 0x01bd1cc1, 0x0008b47b}}, Y: Field{[10]uint32{0x00a85efe, 0x01959e30, 0x03f7a05e, 0x03048de3, 0x02a93942, 0x00228e05, 0x0024fca2, 0x039d044c, 0x03eea53a, 0x001d14f9}}},
+ {X: Field{[10]uint32{0x00ffe222, 0x01f26f6b, 0x01b7cc8e, 0x009d7b3b, 0x00b61465, 0x02f6cfee, 0x00fa5590, 0x027a509c, 0x01c0c572, 0x001c361a}}, Y: Field{[10]uint32{0x02ec30c5, 0x0372ee3d, 0x01657115, 0x01d2704c, 0x00f8d414, 0x0230b0ea, 0x03baec84, 0x023ed185, 0x01328ce7, 0x0012ff2b}}},
+ {X: Field{[10]uint32{0x011b1647, 0x0093ae1e, 0x0097dd4a, 0x0301aedf, 0x00ed9039, 0x02a5ef4a, 0x0360dccd, 0x015e0993, 0x01deda8d, 0x002896d1}}, Y: Field{[10]uint32{0x0243db8f, 0x031a362a, 0x00c7dfe1, 0x0078bc0c, 0x00f306f1, 0x0310e999, 0x03765554, 0x036558c8, 0x0183fd2a, 0x0023f612}}},
+ {X: Field{[10]uint32{0x031024b8, 0x02a29d0e, 0x025cf39c, 0x0052e5d6, 0x033e77fa, 0x01cdc19b, 0x02383366, 0x01f0356a, 0x016c9b23, 0x00208ff3}}, Y: Field{[10]uint32{0x0024dde0, 0x03c5ad51, 0x01d72198, 0x012f4719, 0x01d1433e, 0x02db50d1, 0x01c2ba3b, 0x03cb77a6, 0x004d29a4, 0x0039a469}}},
+ {X: Field{[10]uint32{0x02158d0c, 0x01b13396, 0x0033a3a9, 0x0349bb49, 0x01ee594b, 0x00e534c1, 0x02b1247d, 0x02bbd90c, 0x02638244, 0x0000e696}}, Y: Field{[10]uint32{0x026a8023, 0x03e2c9d8, 0x016cd32d, 0x010d4315, 0x00ee4b9f, 0x00932c42, 0x03ff37ea, 0x02125355, 0x0139dd8b, 0x00051f3b}}},
+ {X: Field{[10]uint32{0x03206487, 0x012a95ac, 0x035f8de9, 0x02ed21e7, 0x022a18f6, 0x006c9de5, 0x00aaf7b8, 0x02cb701d, 0x03b5b85b, 0x0023e7fa}}, Y: Field{[10]uint32{0x0210c2a2, 0x021ab2fd, 0x0093c32a, 0x03caada8, 0x01dc7474, 0x00ad5ecf, 0x037dbdec, 0x01680038, 0x03d6d417, 0x001236ba}}},
+ {X: Field{[10]uint32{0x0143f60c, 0x01e80f64, 0x013f804f, 0x014cdba7, 0x016a08db, 0x03dad38d, 0x009158a5, 0x00215914, 0x03142f50, 0x003f05be}}, Y: Field{[10]uint32{0x001f7a36, 0x033e0137, 0x02eaf58b, 0x0139acca, 0x03402758, 0x036e17f9, 0x034ada59, 0x02dce843, 0x02f27e02, 0x0023a4c9}}},
+ {X: Field{[10]uint32{0x01c5a281, 0x024921a1, 0x01d788e2, 0x0007d080, 0x03eaecae, 0x021faea0, 0x015d8f09, 0x01bdba44, 0x02a71744, 0x001f6c27}}, Y: Field{[10]uint32{0x0215742b, 0x00f8c9f0, 0x03864273, 0x019f169b, 0x0279fd21, 0x004bf45f, 0x036b2adc, 0x011577dc, 0x00ee426d, 0x002d11a7}}},
+ {X: Field{[10]uint32{0x00d9a57e, 0x03ef2529, 0x030b8564, 0x03d71fb2, 0x023df7ca, 0x007e34f1, 0x0256fdab, 0x03bc70fa, 0x03f528ba, 0x00351746}}, Y: Field{[10]uint32{0x02aeccc1, 0x005cb845, 0x02191c1a, 0x0344f016, 0x00ad0c84, 0x006b5c00, 0x0121d3d8, 0x003a2473, 0x01846483, 0x0024789a}}},
+ {X: Field{[10]uint32{0x01f03901, 0x0286a45d, 0x0278ad43, 0x0266ba5d, 0x016a4d9c, 0x01e89aec, 0x00a9ffaa, 0x02176154, 0x03751b6f, 0x000febc2}}, Y: Field{[10]uint32{0x0044328f, 0x01710d86, 0x01368b55, 0x0050ee36, 0x00be775d, 0x00e18c47, 0x02aa39f6, 0x00f3d972, 0x022aa4e4, 0x00229741}}},
+ {X: Field{[10]uint32{0x02efd121, 0x01ac1b1d, 0x03107492, 0x028cec49, 0x001eefdb, 0x019787b0, 0x00c5e39c, 0x0291c9e7, 0x00be8e08, 0x00151823}}, Y: Field{[10]uint32{0x0140f038, 0x02278831, 0x01afdcb7, 0x01d9c741, 0x039bdc27, 0x03263f0a, 0x02c5f91c, 0x03e07923, 0x01bc40de, 0x00029da5}}},
+ {X: Field{[10]uint32{0x009823ec, 0x03560364, 0x02d4664d, 0x03693865, 0x02e8a201, 0x00ed5a5c, 0x00e69552, 0x03f350d9, 0x0189050d, 0x00156683}}, Y: Field{[10]uint32{0x00dc71c3, 0x03a014ba, 0x027b4c46, 0x00ac1a9a, 0x035641e3, 0x021fd654, 0x01b8d5c0, 0x022e433b, 0x01add652, 0x001efe38}}},
+ {X: Field{[10]uint32{0x00f467a8, 0x025ae52b, 0x039c31a9, 0x02a42c19, 0x00bb305e, 0x00797f0a, 0x0248c344, 0x02e7cac5, 0x0058b5e2, 0x00059ba2}}, Y: Field{[10]uint32{0x02e5bdb2, 0x008168e4, 0x01d2af64, 0x00df7432, 0x00dc1b7c, 0x0023e665, 0x018a6b91, 0x03ed0ab3, 0x006dff82, 0x002726cc}}},
+ {X: Field{[10]uint32{0x00fe1941, 0x0369ce0e, 0x025a8d41, 0x025317bf, 0x02e5284f, 0x02b90e3b, 0x00ec5fc3, 0x020eeaa5, 0x028ce66e, 0x001038a7}}, Y: Field{[10]uint32{0x01acb2dc, 0x0062134e, 0x009c3955, 0x013ec39c, 0x0384ae68, 0x00e88f42, 0x03154e27, 0x01e1a073, 0x031cc01e, 0x001f1c7d}}},
+ {X: Field{[10]uint32{0x02d4ee7e, 0x0110e01c, 0x004081a8, 0x00f6fd9d, 0x006aeb8b, 0x01986d00, 0x007fc764, 0x027399fe, 0x00f9eb65, 0x001a0a72}}, Y: Field{[10]uint32{0x0222913b, 0x001a5172, 0x01908ea5, 0x02ccc13f, 0x036647fc, 0x03a7fcc2, 0x02825225, 0x03701553, 0x030a8332, 0x00074d54}}},
+ {X: Field{[10]uint32{0x03658196, 0x00d75044, 0x00e7adbb, 0x01010b44, 0x03e25a25, 0x038abc8d, 0x0393b136, 0x027f4e4c, 0x005a322e, 0x00128ff8}}, Y: Field{[10]uint32{0x0101574c, 0x01c0631e, 0x02ea1f14, 0x0115fb7a, 0x0178dbdc, 0x03c2ac5d, 0x03c40d9e, 0x01d906a4, 0x01f8d452, 0x00216690}}},
+ {X: Field{[10]uint32{0x02a44f94, 0x01784066, 0x0338225a, 0x030805df, 0x029e9dde, 0x01919f30, 0x0167ad5a, 0x03acbb05, 0x03c9a675, 0x00379605}}, Y: Field{[10]uint32{0x00f723a4, 0x01959eb3, 0x00af5ec3, 0x005d323f, 0x0271b45e, 0x0352fc40, 0x017e6256, 0x00c4737c, 0x03d05413, 0x0010143a}}},
+ {X: Field{[10]uint32{0x0262a108, 0x03697ad5, 0x03e7a155, 0x02cc6d47, 0x00daa7b9, 0x03cf63ce, 0x03df1a26, 0x03d0442a, 0x02454f07, 0x003f78a4}}, Y: Field{[10]uint32{0x0327808a, 0x037f722d, 0x0371ed98, 0x015b901c, 0x03f09d17, 0x031b1c67, 0x03347a3a, 0x03a4a733, 0x02d37b39, 0x003ca939}}},
+ {X: Field{[10]uint32{0x03f42436, 0x02a43b7b, 0x022e8a43, 0x00574230, 0x01b09174, 0x029dca18, 0x03c536d6, 0x022e85db, 0x00fb6eb9, 0x003ca34f}}, Y: Field{[10]uint32{0x0279d1bf, 0x0009cd44, 0x00b61e9d, 0x02310b9b, 0x001971fe, 0x022252a9, 0x003dc82d, 0x00943781, 0x022bb328, 0x0011422f}}},
+ {X: Field{[10]uint32{0x0316e3ee, 0x01ee545f, 0x038c7011, 0x0259083d, 0x037bb654, 0x00669b7d, 0x0192afb1, 0x02d6df42, 0x00304d1c, 0x0031d957}}, Y: Field{[10]uint32{0x031dfdfd, 0x009f8b79, 0x0070d2e4, 0x02f946e4, 0x01a348b0, 0x00379e70, 0x0186b1cb, 0x00c3712e, 0x02c2cdb7, 0x00226058}}},
+ {X: Field{[10]uint32{0x03b4b147, 0x00fb2801, 0x00d0d7ae, 0x01d3c856, 0x0053ffba, 0x02d8bd36, 0x0167936e, 0x03b999c7, 0x03c72fa3, 0x00395f65}}, Y: Field{[10]uint32{0x01fecd64, 0x031c83f8, 0x00958c07, 0x01811f0d, 0x031ed426, 0x019a3284, 0x02b80b9a, 0x00a5d646, 0x012ca3d9, 0x002c78c0}}},
+ {X: Field{[10]uint32{0x022b0c01, 0x037e3078, 0x02a44bcc, 0x01edd9a1, 0x036cd3d3, 0x03805332, 0x0244f92f, 0x0096ff01, 0x02421550, 0x003ab6a1}}, Y: Field{[10]uint32{0x01dfeeed, 0x03b5f482, 0x03e9106a, 0x02b2bde7, 0x0107152a, 0x0103e0a9, 0x03c37c55, 0x006ec045, 0x017d71d7, 0x002240d7}}},
+ {X: Field{[10]uint32{0x020d0e25, 0x01fb2139, 0x03e27556, 0x03e5dd40, 0x0362dbf8, 0x0047e8ff, 0x01d7e8e0, 0x0086627e, 0x027e3f17, 0x000f9d89}}, Y: Field{[10]uint32{0x021160b6, 0x02288d9b, 0x0087182d, 0x031f8bf8, 0x02416f8b, 0x01f8e5ce, 0x013001ec, 0x031b6e91, 0x03909631, 0x002860d5}}},
+ {X: Field{[10]uint32{0x01a3df70, 0x00b49424, 0x0350c697, 0x00d46399, 0x0205de72, 0x0359af9f, 0x0279e692, 0x00bcd408, 0x03d89c26, 0x00284765}}, Y: Field{[10]uint32{0x012a69dd, 0x0071b6f5, 0x00b71fd3, 0x01dfa522, 0x0144768d, 0x02e22459, 0x02e48fea, 0x02c05b7c, 0x00a3dd6f, 0x0034637e}}},
+ {X: Field{[10]uint32{0x01f20651, 0x03d0887d, 0x01787922, 0x0023f563, 0x01a5ab52, 0x02b9f30a, 0x0154bf8d, 0x0301bbb7, 0x0375cefe, 0x002c5b8f}}, Y: Field{[10]uint32{0x02d0eb2d, 0x021d86a9, 0x0381da75, 0x024314e6, 0x010233ae, 0x01a42624, 0x03c19891, 0x00cbb5d3, 0x02b45a6e, 0x0015feff}}},
+ {X: Field{[10]uint32{0x034628b2, 0x0095e131, 0x03d9fbeb, 0x02cd128c, 0x00837339, 0x02bc51e9, 0x03564c2f, 0x03a9ba7a, 0x000a3f73, 0x000df7a0}}, Y: Field{[10]uint32{0x02254050, 0x007b04f9, 0x020a02f4, 0x01b3e8ab, 0x03e33fc9, 0x0165aab5, 0x016b7e53, 0x01600c06, 0x02599da5, 0x00164ce4}}},
+ {X: Field{[10]uint32{0x03d68055, 0x03b10e32, 0x021f19be, 0x02c24c96, 0x024ae57f, 0x02db9aea, 0x00b781d8, 0x02aebdbf, 0x012d65b3, 0x001bda10}}, Y: Field{[10]uint32{0x038d3bcc, 0x00c550cb, 0x02f08ec0, 0x00cfbd26, 0x0127dc14, 0x0086aed7, 0x03310420, 0x01c6f002, 0x019d4061, 0x002213f5}}},
+ {X: Field{[10]uint32{0x036e4366, 0x0240b5b2, 0x00a79572, 0x026bd82f, 0x03980f1f, 0x014bc1c3, 0x00f0ce2b, 0x03898493, 0x029e6bc5, 0x002451e6}}, Y: Field{[10]uint32{0x002f5288, 0x00d746a7, 0x0364aef9, 0x0090044b, 0x03479325, 0x02c4ef89, 0x036025d4, 0x0110d667, 0x030a22de, 0x0008c13d}}},
+ {X: Field{[10]uint32{0x0119bd8a, 0x02306513, 0x03701835, 0x031d29b1, 0x014cceab, 0x005df732, 0x01e7c1e4, 0x021c2230, 0x00df36ac, 0x0022e9ac}}, Y: Field{[10]uint32{0x02ab9ed4, 0x01fe1658, 0x005baad1, 0x006de26a, 0x01989dff, 0x01deb1d5, 0x02abe8a1, 0x00578a48, 0x020ee9d5, 0x003a5adc}}},
+ {X: Field{[10]uint32{0x01d567cc, 0x02b2deca, 0x02c9ef4a, 0x01a55393, 0x00f11b8a, 0x00d5453c, 0x0359a8ca, 0x00ff3163, 0x0195871f, 0x002ac548}}, Y: Field{[10]uint32{0x03267fb4, 0x03a80dc3, 0x0019c3c8, 0x0329946d, 0x01965ec1, 0x017e23fc, 0x0099ad17, 0x02f6850a, 0x0148623e, 0x0030776b}}},
+ {X: Field{[10]uint32{0x011600c5, 0x00b39f55, 0x00756e55, 0x011b5357, 0x026ca45c, 0x0066b708, 0x00e6448e, 0x00af4070, 0x03485eb9, 0x001fac8f}}, Y: Field{[10]uint32{0x03c57ac5, 0x0309ec69, 0x03328b3d, 0x025ea161, 0x01a300ef, 0x00f8c315, 0x033de076, 0x02e4e41e, 0x03124278, 0x00254fa6}}},
+ {X: Field{[10]uint32{0x0221ee17, 0x00924153, 0x01f0a2f6, 0x02dc3bac, 0x01e0212f, 0x01624124, 0x0120a922, 0x01c0371d, 0x002ba4b2, 0x002c8fd3}}, Y: Field{[10]uint32{0x03598530, 0x02b83762, 0x03811457, 0x01f98d27, 0x028a2c28, 0x0040e1b0, 0x007d5a5c, 0x02cebcb3, 0x03729e95, 0x0028e2d9}}},
+ {X: Field{[10]uint32{0x0369c2a4, 0x002addc9, 0x024a90a1, 0x00badd50, 0x0067a6c1, 0x01b3eb59, 0x001a02b9, 0x0156da8b, 0x0323387e, 0x002174b9}}, Y: Field{[10]uint32{0x00e4d303, 0x01145432, 0x031d0db8, 0x033c8684, 0x00ded380, 0x0352050d, 0x03077fb7, 0x0262bc06, 0x01ac2238, 0x001c9eaf}}},
+ {X: Field{[10]uint32{0x0309273d, 0x02369b26, 0x014be9fd, 0x0006229e, 0x0254ae69, 0x019a7d9a, 0x0383d59e, 0x02933104, 0x015e08db, 0x0009f05c}}, Y: Field{[10]uint32{0x01b1a266, 0x0357352d, 0x03f9d998, 0x03173cae, 0x03e16e22, 0x039fcc3c, 0x017d8841, 0x01b288d4, 0x0254306e, 0x0009d9f2}}},
+ {X: Field{[10]uint32{0x015eed89, 0x0173e2c2, 0x0350f446, 0x01090200, 0x0342cf40, 0x03e169aa, 0x00c4fb56, 0x017a3a78, 0x00d37f9a, 0x0039c2e3}}, Y: Field{[10]uint32{0x030cb31a, 0x012c3f9a, 0x014fe5ec, 0x0018c661, 0x01faacdf, 0x01d4232b, 0x034e93c0, 0x02346e5c, 0x00589478, 0x000b8f63}}},
+ {X: Field{[10]uint32{0x01e956b9, 0x00804f37, 0x0365ee2c, 0x0187439f, 0x0293932c, 0x00fc1dab, 0x0081a39f, 0x020e5a63, 0x00552405, 0x00388f75}}, Y: Field{[10]uint32{0x00cf77c9, 0x036da2de, 0x0315b1dc, 0x01e72d4c, 0x0052b57e, 0x022a82d9, 0x01cef85a, 0x022ae2fd, 0x03d000cd, 0x001b14f2}}},
+ {X: Field{[10]uint32{0x01919c9f, 0x001ce653, 0x003b7d7a, 0x00c8431a, 0x039aaf08, 0x01d9df2e, 0x0209f2c4, 0x02604c46, 0x0381ccc4, 0x0017a48f}}, Y: Field{[10]uint32{0x00306873, 0x02e5fd0e, 0x019f7738, 0x01f3ed45, 0x02705966, 0x03dc153f, 0x00e64a8a, 0x02b41bf8, 0x0112e64c, 0x0018135c}}},
+ {X: Field{[10]uint32{0x00142507, 0x00deaddc, 0x006a5600, 0x010d8cca, 0x031380e5, 0x004ff79a, 0x02b71d71, 0x0289e380, 0x02531a9f, 0x0008f67c}}, Y: Field{[10]uint32{0x0244a9ac, 0x00cdcaff, 0x0256442d, 0x00053da5, 0x030a9fd2, 0x02d3a178, 0x02f49f6b, 0x0184669b, 0x0247b6eb, 0x00157720}}},
+ {X: Field{[10]uint32{0x033b8f24, 0x03d76275, 0x0318a050, 0x03bc4b1c, 0x02886c79, 0x03bdb494, 0x01bb2815, 0x0147bc57, 0x0095ad25, 0x003bac8c}}, Y: Field{[10]uint32{0x01ba1ddb, 0x026166c4, 0x00eac67d, 0x020a74e1, 0x0056a80f, 0x039f3ee4, 0x00c38963, 0x0033a3ac, 0x0394b981, 0x003469c6}}},
+ {X: Field{[10]uint32{0x00b7c21b, 0x009a0ad5, 0x023c0e7a, 0x00db9087, 0x03899a84, 0x03bfbaa6, 0x03eee536, 0x03df8952, 0x027b57bd, 0x001929b7}}, Y: Field{[10]uint32{0x03b4755b, 0x00325bc9, 0x01537cf4, 0x02438fc3, 0x03181ad1, 0x0240bf1b, 0x0002e2d2, 0x013f2831, 0x036e2e34, 0x001909e4}}},
+ {X: Field{[10]uint32{0x00270073, 0x03c0b0b3, 0x0046d779, 0x0114f3b2, 0x008207fd, 0x0079c02e, 0x01aad5e5, 0x02bcfc70, 0x02ced76d, 0x0027919d}}, Y: Field{[10]uint32{0x03dc9e42, 0x01d3d2f2, 0x00c38d9d, 0x0333ad16, 0x036ffc4a, 0x0362a112, 0x02550195, 0x0042b411, 0x03811d76, 0x0015a171}}},
+ {X: Field{[10]uint32{0x01645473, 0x012cd663, 0x003e5d13, 0x00d5bb21, 0x031d83c6, 0x0110a31e, 0x020ee231, 0x01ae85db, 0x02288061, 0x00257b84}}, Y: Field{[10]uint32{0x03bf4054, 0x00b8a7a8, 0x023a37d1, 0x004c31bb, 0x0149a60d, 0x02c9531c, 0x00812789, 0x01301d60, 0x00644191, 0x001ef8d3}}},
+ {X: Field{[10]uint32{0x006516ad, 0x039300ff, 0x00da994f, 0x02683166, 0x03d0b108, 0x0114f2f7, 0x01df5066, 0x02068be4, 0x02efd920, 0x00394fff}}, Y: Field{[10]uint32{0x00c59c2f, 0x00762479, 0x01929ecc, 0x019eb01c, 0x035dcd1b, 0x00591863, 0x0270b285, 0x00340a8b, 0x02c14a60, 0x001583c0}}},
+ {X: Field{[10]uint32{0x022a7b68, 0x0330fa81, 0x03a83faf, 0x00418ebe, 0x0090d4eb, 0x028f665d, 0x014f1adf, 0x01223168, 0x03447c75, 0x00270cc9}}, Y: Field{[10]uint32{0x01791c63, 0x026dbb86, 0x02b8ad68, 0x023d5643, 0x00cacfb7, 0x01343315, 0x00ff7d22, 0x03f0ed34, 0x01fb09a7, 0x002731d6}}},
+ {X: Field{[10]uint32{0x033d3c45, 0x00e50c25, 0x0058e4ea, 0x01fa078f, 0x02f1d103, 0x022dd050, 0x02b22b0c, 0x0057fddf, 0x01002f43, 0x003a09b5}}, Y: Field{[10]uint32{0x008b65de, 0x0346666f, 0x010455d8, 0x0380ab9d, 0x00e8ab16, 0x031f54e9, 0x039316df, 0x01c7d0ea, 0x025882f9, 0x000e919b}}},
+ {X: Field{[10]uint32{0x015e13c7, 0x01ece204, 0x03512d38, 0x01ecff59, 0x00dd38a8, 0x03a6c5af, 0x00f196c6, 0x02d71237, 0x030eaf93, 0x0033b537}}, Y: Field{[10]uint32{0x028b74cc, 0x0118b1b5, 0x0197e910, 0x01c73b75, 0x018c7542, 0x02734478, 0x032c9309, 0x02772ad3, 0x023bdd14, 0x003f8229}}},
+ {X: Field{[10]uint32{0x037eb33d, 0x031505b6, 0x00b27ee8, 0x01b78086, 0x038065e3, 0x03ce3d53, 0x0220182d, 0x01437cac, 0x012788ea, 0x002c15bb}}, Y: Field{[10]uint32{0x02cf6409, 0x02a0f6f6, 0x00a6b0a1, 0x027ff0c0, 0x018d514d, 0x023a687a, 0x0243aa82, 0x015fe7af, 0x0375cef4, 0x0025cce0}}},
+ {X: Field{[10]uint32{0x037830df, 0x03b8a216, 0x011561c9, 0x03010187, 0x03eba030, 0x00d07da8, 0x0260b667, 0x03e529ff, 0x007402fe, 0x0000d77b}}, Y: Field{[10]uint32{0x009b933e, 0x007c161e, 0x0045caba, 0x01b9363c, 0x013eb8be, 0x02dba488, 0x0302fe6e, 0x0043f79f, 0x012139c8, 0x00009664}}},
+ {X: Field{[10]uint32{0x024e020b, 0x02b77ecc, 0x02f1f081, 0x025cdf16, 0x03d7981e, 0x010abd13, 0x0215cb99, 0x0084ff4b, 0x00c87733, 0x0000fc8f}}, Y: Field{[10]uint32{0x016e8f83, 0x03f0145d, 0x0065ac8a, 0x0184ed7e, 0x007ffc0c, 0x0337b040, 0x0392455d, 0x03378d38, 0x00c0d43c, 0x00093a33}}},
+ {X: Field{[10]uint32{0x03babbdb, 0x014dfbca, 0x01bc1e06, 0x03322f3a, 0x03c8471d, 0x02e8361b, 0x02cfa43d, 0x0173ab5f, 0x0076c080, 0x0026ea5b}}, Y: Field{[10]uint32{0x0143def3, 0x00ef0dfe, 0x023ae0e9, 0x008181fb, 0x01622d98, 0x03d3c1ec, 0x02f8e3a8, 0x038136f8, 0x00331c2a, 0x003068f1}}},
+ {X: Field{[10]uint32{0x016a3815, 0x0221f5f4, 0x02ac5c2e, 0x01058438, 0x021d414f, 0x037b3273, 0x01103965, 0x014e5635, 0x039a3147, 0x0020f051}}, Y: Field{[10]uint32{0x009b5b7a, 0x0215d00a, 0x0292c7f0, 0x01c341f0, 0x02c123d4, 0x027ffeee, 0x0339bbff, 0x03351b97, 0x00181354, 0x00213534}}},
+ {X: Field{[10]uint32{0x03e0a32d, 0x017af1fb, 0x01ab1fcb, 0x0035ecd2, 0x00a8d701, 0x00a15f6e, 0x026714a0, 0x007621db, 0x027a2db1, 0x002eb3d8}}, Y: Field{[10]uint32{0x00c83129, 0x02b8c0fa, 0x02f5ed57, 0x021aeadf, 0x0214b3e5, 0x01ab3882, 0x03777b73, 0x011239a2, 0x000da44c, 0x0028a1f7}}},
+ {X: Field{[10]uint32{0x0376ebd7, 0x03173fc9, 0x024d4619, 0x03475934, 0x034ca888, 0x00051c59, 0x03fd2d3a, 0x027de442, 0x00553012, 0x001cc18f}}, Y: Field{[10]uint32{0x00159489, 0x0312ec8b, 0x004ea368, 0x01b34a16, 0x019d7190, 0x005261b1, 0x02b0362b, 0x03e320be, 0x01d944cc, 0x00355e50}}},
+ {X: Field{[10]uint32{0x035d6637, 0x022802ce, 0x020114d0, 0x004b5116, 0x02a3f51a, 0x0376d00f, 0x03a4ce34, 0x02b4544a, 0x0232df55, 0x00013ba1}}, Y: Field{[10]uint32{0x02b14820, 0x039b1164, 0x03d8188a, 0x0006585b, 0x01916879, 0x025c8f46, 0x03f01a31, 0x009d68e7, 0x0199dc30, 0x0030a7dc}}},
+ {X: Field{[10]uint32{0x03e7ef28, 0x00abf9f5, 0x0386ccd4, 0x03bed59d, 0x028f5345, 0x008fbeb2, 0x0318a16a, 0x03507e62, 0x026d68bb, 0x003f11b9}}, Y: Field{[10]uint32{0x0243c18a, 0x0009c569, 0x029d50d7, 0x00c7b23d, 0x01a02382, 0x02930a2e, 0x01af38a4, 0x0212754f, 0x02dfabf8, 0x0022d0a8}}},
+ {X: Field{[10]uint32{0x03a7dc13, 0x0379862c, 0x039638a9, 0x0262bbf1, 0x013f9b6b, 0x028e41ec, 0x02ece5e2, 0x01e5e01f, 0x01b0158d, 0x0029c6b4}}, Y: Field{[10]uint32{0x0308bf90, 0x0179a87b, 0x026ea437, 0x0113a029, 0x02ccfc5c, 0x006e6df4, 0x038a8644, 0x03119394, 0x006da956, 0x001bf5fa}}},
+ {X: Field{[10]uint32{0x01860a3a, 0x00ddda3c, 0x0028d0ed, 0x014f5476, 0x0161a7c5, 0x0031abd6, 0x03b99576, 0x0299ff5e, 0x01f36075, 0x00180861}}, Y: Field{[10]uint32{0x0110b2e7, 0x030caf53, 0x02802165, 0x0353754b, 0x0102265c, 0x01ea274e, 0x03a027ce, 0x020d7991, 0x02db706b, 0x002434c4}}},
+ {X: Field{[10]uint32{0x007a77ca, 0x01edf7d8, 0x006b598e, 0x01fe50dc, 0x0336b443, 0x01f718b0, 0x019976d3, 0x024646e7, 0x02837672, 0x0036c3f2}}, Y: Field{[10]uint32{0x02efc29d, 0x01210760, 0x03dd9c4f, 0x01a26541, 0x0278699a, 0x028600be, 0x009f0b32, 0x01faff83, 0x016e8eba, 0x0008f7b7}}},
+ {X: Field{[10]uint32{0x00a54939, 0x023c95e9, 0x01884761, 0x03b00ce7, 0x02237d0a, 0x03fe37a0, 0x0159909f, 0x013c24a8, 0x0061598d, 0x001a466e}}, Y: Field{[10]uint32{0x0334b90c, 0x0072f6db, 0x03ff2f3e, 0x0050e4b0, 0x0127a1a2, 0x02693864, 0x01c07845, 0x00ea8ee1, 0x02fe1fa5, 0x002ae7e0}}},
+ {X: Field{[10]uint32{0x0074bd59, 0x03becba0, 0x01e39299, 0x0063df8e, 0x02877ec1, 0x0354e803, 0x00f0a5d5, 0x006e9f0f, 0x02e9f1f5, 0x003d29f4}}, Y: Field{[10]uint32{0x005bd257, 0x01f8640b, 0x01be0ef1, 0x027665d0, 0x030c9bea, 0x02f39e60, 0x00e6380c, 0x02b38b69, 0x01006aa6, 0x0027c142}}},
+ {X: Field{[10]uint32{0x01453da3, 0x02cb8d73, 0x03656366, 0x01f95065, 0x02392731, 0x03ffef65, 0x011ae232, 0x03784c42, 0x0210d4f1, 0x0022975c}}, Y: Field{[10]uint32{0x00580a54, 0x0345912c, 0x02a98abc, 0x001394ca, 0x034cae10, 0x024c1ab6, 0x0158a05a, 0x03683a99, 0x021b5b71, 0x0026bfe2}}},
+ {X: Field{[10]uint32{0x00e86f16, 0x020063ae, 0x039f3f93, 0x0308abf5, 0x022c9195, 0x02812e1e, 0x020406be, 0x01c566c2, 0x03dce40d, 0x00267ac8}}, Y: Field{[10]uint32{0x00ecff66, 0x011f5059, 0x01b3782b, 0x037a7a03, 0x03b1f17f, 0x01e7f2af, 0x036cddaa, 0x03f7b1ff, 0x0138a66e, 0x000bbc86}}},
+ {X: Field{[10]uint32{0x00d37472, 0x02e996ad, 0x02904a99, 0x0391eb2f, 0x01611ad0, 0x02aef9e0, 0x03f0d0b9, 0x011062b1, 0x02841a87, 0x000efc5b}}, Y: Field{[10]uint32{0x03e714ad, 0x00d44868, 0x003551fb, 0x02ca2bbd, 0x007d1138, 0x009dd0df, 0x008c0f19, 0x0232cbf2, 0x01f4e194, 0x00074f2e}}},
+ {X: Field{[10]uint32{0x03f01f3e, 0x027f93f9, 0x0095af45, 0x03395126, 0x02561811, 0x018e22a1, 0x007c1333, 0x00e5382e, 0x03ff19eb, 0x0028fbe0}}, Y: Field{[10]uint32{0x0178cbab, 0x0344e920, 0x024a1045, 0x03374cd6, 0x019d687c, 0x00474238, 0x007ddb47, 0x02b32f37, 0x01398bdc, 0x00065577}}},
+ {X: Field{[10]uint32{0x00b1af90, 0x03bc5f9c, 0x02552063, 0x0047d6b7, 0x005a344d, 0x008f75ad, 0x01c024c2, 0x013a04fb, 0x0351da9b, 0x0009a05b}}, Y: Field{[10]uint32{0x014aabd6, 0x001e980a, 0x03d30220, 0x01feef33, 0x0365611b, 0x01813a25, 0x02809676, 0x019e8d5c, 0x021d1d6b, 0x001189e3}}},
+ {X: Field{[10]uint32{0x03dea823, 0x03a1112b, 0x0125a909, 0x0325239d, 0x031d47dc, 0x01e502c3, 0x03b14f69, 0x03c523b2, 0x03c0d640, 0x00178594}}, Y: Field{[10]uint32{0x00b092c7, 0x017333d3, 0x01c86cd4, 0x0325bfbb, 0x008e499c, 0x00af714a, 0x03aef229, 0x020d43b3, 0x01ede7cb, 0x0026e2e0}}},
+ {X: Field{[10]uint32{0x0028de9e, 0x03a76f7a, 0x008f247f, 0x01beb770, 0x02b7725d, 0x0096c4ad, 0x0348c231, 0x00da5158, 0x02450b0d, 0x0006f623}}, Y: Field{[10]uint32{0x00a95db0, 0x036e8bee, 0x00fe2098, 0x01a1a602, 0x009f6faf, 0x00750059, 0x03dae7ca, 0x0377695d, 0x01e32d8b, 0x00060a4e}}},
+ {X: Field{[10]uint32{0x01b73c02, 0x004b17f6, 0x01fbd31b, 0x005b5080, 0x02b80ab7, 0x03aede00, 0x01e754fb, 0x013900c5, 0x02063adc, 0x0012c0ff}}, Y: Field{[10]uint32{0x0080fb06, 0x0233d507, 0x0030e73e, 0x00c7a929, 0x03a5623c, 0x000fe638, 0x00ed537e, 0x03946403, 0x00a8e2c5, 0x002a1934}}},
+ {X: Field{[10]uint32{0x01d35f61, 0x013c7a11, 0x0268c588, 0x003f4217, 0x01214686, 0x0311bced, 0x01927f13, 0x023ccc7b, 0x01150781, 0x00038829}}, Y: Field{[10]uint32{0x02bcf328, 0x021d79a5, 0x00db0484, 0x02828f48, 0x02a924e9, 0x03f523d9, 0x02466c43, 0x035b1627, 0x00021a79, 0x00287048}}},
+ {X: Field{[10]uint32{0x001e37be, 0x024971fe, 0x03a732db, 0x0287200a, 0x034aaece, 0x0221787a, 0x0224d874, 0x0387362f, 0x024e74a1, 0x0038f446}}, Y: Field{[10]uint32{0x021645f5, 0x00a8eda1, 0x03c7f73d, 0x0271ed12, 0x03022b0a, 0x0220c752, 0x0006787b, 0x03c07d8e, 0x001e0a1e, 0x0023c7b0}}},
+ {X: Field{[10]uint32{0x0237f6e5, 0x00a8204f, 0x00617d1e, 0x00c83d00, 0x03da71fa, 0x01ca6c58, 0x0292b584, 0x0036fba3, 0x021557fe, 0x002288cc}}, Y: Field{[10]uint32{0x02cce950, 0x022415ab, 0x01f5e938, 0x00a5870d, 0x03267dbd, 0x035de632, 0x021ed74b, 0x01d416ba, 0x031abb8c, 0x002bd791}}},
+ {X: Field{[10]uint32{0x0051d20d, 0x0269db5a, 0x01cbe99f, 0x03ea65a1, 0x02997e8d, 0x01c05735, 0x01070e00, 0x011a0c54, 0x022cb43f, 0x000eef02}}, Y: Field{[10]uint32{0x00b4f97d, 0x038d46df, 0x00278bb0, 0x010e5bea, 0x01fd1408, 0x01820c44, 0x0168e88b, 0x013102e6, 0x038ea5f1, 0x0026877e}}},
+ {X: Field{[10]uint32{0x011d1deb, 0x0384cf24, 0x01184811, 0x00e0e50c, 0x0165380f, 0x0101ed2e, 0x0059dac9, 0x020eafa3, 0x0381082d, 0x00230135}}, Y: Field{[10]uint32{0x000a3db4, 0x014982d3, 0x00eab4a6, 0x0261c663, 0x00c0a3e0, 0x0200e54d, 0x03213408, 0x008c5bf3, 0x0093fdb2, 0x00135d39}}},
+ {X: Field{[10]uint32{0x02a0291f, 0x002935b5, 0x028c8577, 0x0057279f, 0x001ed9f9, 0x00b80d91, 0x00aa7c46, 0x00b37b7c, 0x010e7231, 0x00119f53}}, Y: Field{[10]uint32{0x00a1ce32, 0x0376875c, 0x001fc0d4, 0x010060ea, 0x02f117e2, 0x00475596, 0x00624ddf, 0x025528c3, 0x00a9d7c2, 0x0020f6d0}}},
+ {X: Field{[10]uint32{0x01a3dc8c, 0x03d26311, 0x00195d55, 0x00b7866b, 0x02ce73ae, 0x01072f54, 0x00601869, 0x028406ac, 0x00cd8e55, 0x002d8bd8}}, Y: Field{[10]uint32{0x0314ef41, 0x0330c06c, 0x03cef428, 0x02e3efdb, 0x034a5108, 0x01633482, 0x030ed091, 0x00958bba, 0x00b07c6d, 0x00167692}}},
+ {X: Field{[10]uint32{0x039e681f, 0x03746d72, 0x02183379, 0x03301924, 0x01166e88, 0x0151bbfa, 0x036d7f19, 0x03b9877c, 0x0210f98a, 0x001ad758}}, Y: Field{[10]uint32{0x018a0d76, 0x011b9bda, 0x028e77f2, 0x01eb11c8, 0x027c6de8, 0x00c01170, 0x008afca8, 0x0229adcb, 0x034859c8, 0x0036fec5}}},
+ {X: Field{[10]uint32{0x02300c97, 0x03b34288, 0x00286049, 0x036d234f, 0x00548768, 0x01625df3, 0x012cc9ef, 0x0210ada3, 0x0104e8c7, 0x00221d13}}, Y: Field{[10]uint32{0x03b9c38c, 0x03d628a3, 0x01bc0393, 0x024e4421, 0x02149d29, 0x031f242d, 0x00b0e425, 0x03147968, 0x02a51ea3, 0x002115ce}}},
+ {X: Field{[10]uint32{0x032e37c8, 0x02038cb0, 0x03d4bada, 0x0296f934, 0x00d0218b, 0x005ab64e, 0x03065712, 0x02b16066, 0x002440f2, 0x003f7cb2}}, Y: Field{[10]uint32{0x01538f74, 0x01b56a97, 0x028b5587, 0x0069d019, 0x01917203, 0x02180b7f, 0x00c6f205, 0x007fef92, 0x00b59e96, 0x0030aaf1}}},
+ {X: Field{[10]uint32{0x03777559, 0x012255fb, 0x028a9366, 0x03826d33, 0x0115178c, 0x011d5501, 0x02273bd2, 0x0220ecc8, 0x03641f5a, 0x00134bf7}}, Y: Field{[10]uint32{0x02a41b11, 0x002ce152, 0x029fabed, 0x00070d12, 0x02b2837f, 0x02cc85eb, 0x021b89b9, 0x03cc7190, 0x0101210b, 0x0008ae87}}},
+ {X: Field{[10]uint32{0x00ddc633, 0x0185648d, 0x022699c4, 0x0330abf2, 0x035a54dc, 0x017192a3, 0x02f3faea, 0x02ff7e06, 0x00a1e743, 0x003b1f2f}}, Y: Field{[10]uint32{0x02ab0917, 0x01e05b93, 0x02e295f5, 0x039263f3, 0x03dc5263, 0x01684041, 0x0128c05e, 0x028141ed, 0x01a9ea76, 0x0027c64f}}},
+ {X: Field{[10]uint32{0x00b44fdf, 0x02aef011, 0x01943c7f, 0x037e74dc, 0x00da9cd6, 0x00f2e013, 0x001e7790, 0x0262e2e0, 0x01137719, 0x003fcbe8}}, Y: Field{[10]uint32{0x01f6093c, 0x011af2cb, 0x02c54237, 0x009008b2, 0x022aec68, 0x02335bc2, 0x01d966db, 0x01d9c31e, 0x03f21ac5, 0x00258849}}},
+ {X: Field{[10]uint32{0x00a57580, 0x0179de82, 0x035ee647, 0x0324a7c5, 0x034fd418, 0x010db5ab, 0x02c21bec, 0x000b48d3, 0x006b2dfb, 0x001b46d0}}, Y: Field{[10]uint32{0x00e895eb, 0x03a88f6f, 0x02f07b2d, 0x0394e2e7, 0x02f157ef, 0x00f9ed80, 0x00693d6d, 0x0238be3c, 0x02689dba, 0x002e2515}}},
+ {X: Field{[10]uint32{0x004d7963, 0x03bd4e59, 0x01df587b, 0x03ddd308, 0x020317bf, 0x00371ae5, 0x00767270, 0x00033919, 0x01fb449e, 0x0012aee7}}, Y: Field{[10]uint32{0x006e6407, 0x03162f7e, 0x018e49c2, 0x02a1d517, 0x004d6dbb, 0x026bc726, 0x01807868, 0x031a6cab, 0x02b7c016, 0x001821bc}}},
+ {X: Field{[10]uint32{0x010fcee6, 0x036d8e99, 0x022361f8, 0x0293f43b, 0x022fb3be, 0x016128f2, 0x00b0b895, 0x010258dd, 0x01cc634a, 0x0036c314}}, Y: Field{[10]uint32{0x01b6e6a0, 0x03f8cf31, 0x02486367, 0x01fe160d, 0x015d2825, 0x01ec3993, 0x0116fd39, 0x02b8612f, 0x012baea1, 0x001fb02f}}},
+ {X: Field{[10]uint32{0x03fdb287, 0x01348b0d, 0x00e74495, 0x020886aa, 0x006996a3, 0x011b79c1, 0x01e02ed6, 0x01246699, 0x01bcd066, 0x002b9bdb}}, Y: Field{[10]uint32{0x03f2f201, 0x03eda870, 0x03d1bb76, 0x03d7d7fb, 0x02c5bbb2, 0x027e440b, 0x01313791, 0x01d01046, 0x02aef8ae, 0x002af9c3}}},
+ {X: Field{[10]uint32{0x035f6227, 0x034eb234, 0x01fda63d, 0x018beb14, 0x00f4079a, 0x01ff25dc, 0x00771a91, 0x007cc2f4, 0x0397cb32, 0x002ba8fa}}, Y: Field{[10]uint32{0x02bf39b6, 0x006b919a, 0x0352506f, 0x0285105a, 0x03878145, 0x00a1f7f7, 0x0133704a, 0x005717a4, 0x00163985, 0x002da94d}}},
+ {X: Field{[10]uint32{0x012233be, 0x02f28721, 0x01ded051, 0x0018fa24, 0x0039355c, 0x01b04ebe, 0x037234ef, 0x01437a07, 0x00cf711d, 0x0024327e}}, Y: Field{[10]uint32{0x0021bff5, 0x0388720d, 0x0151ed7f, 0x00baa805, 0x0317d2c3, 0x004d61e0, 0x013d4528, 0x025927cb, 0x037818f1, 0x00023655}}},
+ {X: Field{[10]uint32{0x02d976e0, 0x017b6321, 0x020e2149, 0x02ae4809, 0x02fd954a, 0x012d23bf, 0x028dcde3, 0x000d1154, 0x00e5ab1d, 0x0016b5fb}}, Y: Field{[10]uint32{0x038569b0, 0x0052c0fd, 0x003d8700, 0x0112c5e1, 0x0062ac94, 0x0311adb8, 0x03274e93, 0x018eaefb, 0x023b2c3c, 0x000b7c85}}},
+ {X: Field{[10]uint32{0x03d28d9a, 0x0113a38e, 0x0031cb78, 0x01f5622a, 0x001d80ae, 0x00eac32b, 0x026d3ee1, 0x00bbc05b, 0x022c8e94, 0x002dae8b}}, Y: Field{[10]uint32{0x03ef7fb4, 0x01776dc6, 0x0101d085, 0x014f402d, 0x00a2ebf4, 0x03490458, 0x01b6b067, 0x037f7d40, 0x0235f923, 0x00104602}}},
+ {X: Field{[10]uint32{0x03f5f37d, 0x01319d1f, 0x01cc413a, 0x02a71a02, 0x00799555, 0x03211627, 0x03dd450b, 0x01b1f7ea, 0x03c9bba2, 0x001f9026}}, Y: Field{[10]uint32{0x01c9e6b1, 0x00f7b9de, 0x0030ce42, 0x00d067f8, 0x036066b0, 0x020763f7, 0x01c42604, 0x02bf8b90, 0x01619cc5, 0x00031462}}},
+ {X: Field{[10]uint32{0x024f602c, 0x02145bb7, 0x024e0300, 0x01aa942d, 0x022c7263, 0x031f1308, 0x01010606, 0x03cbb8a3, 0x011470b2, 0x002521b3}}, Y: Field{[10]uint32{0x02b467af, 0x03edd2f7, 0x012ceaac, 0x028d27d1, 0x02c062e9, 0x01cc8d9f, 0x0131785f, 0x0001bf7e, 0x038cfc5b, 0x00221b32}}},
+ {X: Field{[10]uint32{0x01338d2a, 0x027b62c8, 0x0183b1af, 0x0271520b, 0x0294b1ee, 0x0116e817, 0x01af6d87, 0x01c81478, 0x017bc8b0, 0x0039f047}}, Y: Field{[10]uint32{0x035c8e50, 0x0214b7b5, 0x00f79c74, 0x00f5e5ff, 0x016ad468, 0x024bcd6a, 0x01062aa1, 0x02ac7bf2, 0x0293828c, 0x003f7134}}},
+ {X: Field{[10]uint32{0x03d50bcd, 0x00003c24, 0x02217c98, 0x01763a00, 0x0119b1a8, 0x01db7b4d, 0x01b67b27, 0x0172c06c, 0x027bff31, 0x00037f98}}, Y: Field{[10]uint32{0x01f9e773, 0x00aa3b95, 0x03c285f3, 0x0346e57b, 0x03ea0f69, 0x0275a39a, 0x01d2480c, 0x0021edbf, 0x01ebbb65, 0x00264f15}}},
+ {X: Field{[10]uint32{0x0046f516, 0x03ab1969, 0x01dde189, 0x01b55210, 0x03eb31c2, 0x0183c0bc, 0x007c9818, 0x028b2d7f, 0x0017fd00, 0x00283c33}}, Y: Field{[10]uint32{0x033b8969, 0x030a5792, 0x03a74ff5, 0x03aaf4c3, 0x0214bbe4, 0x00fb74df, 0x01077a7d, 0x0228efc4, 0x004c31d5, 0x002feba2}}},
+ {X: Field{[10]uint32{0x03e37338, 0x02dcaea8, 0x01dd9dd7, 0x014e47f8, 0x03d37e7f, 0x0251ad4a, 0x02ef926c, 0x00a1bb5b, 0x02bcbc14, 0x003076ed}}, Y: Field{[10]uint32{0x02df7bf0, 0x00f9a984, 0x01bd0e79, 0x00d44e78, 0x03aa5e27, 0x028ea235, 0x036fdc81, 0x01a20bd2, 0x0187bd33, 0x0019ec0b}}},
+ {X: Field{[10]uint32{0x034bebb2, 0x01416f2e, 0x03eebe82, 0x004440d0, 0x03070255, 0x03bb7d7b, 0x02cb1f06, 0x02571324, 0x025bc7d4, 0x00082e41}}, Y: Field{[10]uint32{0x00756835, 0x01449184, 0x00fbd55d, 0x029c12c9, 0x014fec71, 0x018090b6, 0x021a4f90, 0x00764af4, 0x03165c23, 0x0029a61c}}},
+ {X: Field{[10]uint32{0x01a69190, 0x0152043b, 0x03f2e03c, 0x01993e36, 0x0255ab9a, 0x023f21e1, 0x029544d3, 0x0230e376, 0x01d00c4d, 0x001efb7f}}, Y: Field{[10]uint32{0x00af77a1, 0x01c569be, 0x00591690, 0x0394f275, 0x01365556, 0x01cbfb81, 0x02d00491, 0x014b79ba, 0x00b00d4f, 0x0026653c}}},
+ {X: Field{[10]uint32{0x035918e0, 0x034e179a, 0x01368df4, 0x03481067, 0x035adcad, 0x0083a5f2, 0x023815b7, 0x020fdab1, 0x02af9979, 0x00099d8b}}, Y: Field{[10]uint32{0x0227e6be, 0x00862356, 0x02549279, 0x0359daab, 0x0125f0c0, 0x0395883f, 0x00be2e9b, 0x0136f009, 0x008ce11b, 0x00207d51}}},
+ {X: Field{[10]uint32{0x0387bb79, 0x013d337c, 0x013d9a94, 0x01d64b43, 0x03ea14f1, 0x036a1b84, 0x0354ff5d, 0x03854b0c, 0x02e7ee18, 0x001c5232}}, Y: Field{[10]uint32{0x0310b18d, 0x032d3788, 0x0336593d, 0x002fbba0, 0x02ffd42a, 0x02b1af03, 0x0065efed, 0x01ba4105, 0x01faf6f8, 0x0002f6cd}}},
+ {X: Field{[10]uint32{0x03bdbc90, 0x023385e1, 0x02723503, 0x001964f0, 0x01bb4d8f, 0x015a116d, 0x01ae00b1, 0x00b0ce9a, 0x01d933ae, 0x0009f917}}, Y: Field{[10]uint32{0x01801ac9, 0x02aff594, 0x02db1f7c, 0x0281643c, 0x017dfe36, 0x009c68ac, 0x019c75c9, 0x01e68fe3, 0x033fa935, 0x0028af38}}},
+ {X: Field{[10]uint32{0x03d6b7d7, 0x02fcacb5, 0x02a98fa2, 0x0047fb4a, 0x00d0539c, 0x0207980f, 0x02d79c7d, 0x02ba30a8, 0x02155b28, 0x002bc31c}}, Y: Field{[10]uint32{0x03ac41f9, 0x00b1a6a9, 0x0085640d, 0x038793cb, 0x023b5b26, 0x0073eb0f, 0x0380bfc7, 0x00270002, 0x03cfa251, 0x002b9af7}}},
+ {X: Field{[10]uint32{0x03cbabf4, 0x03f80a98, 0x02bec7ec, 0x00646b32, 0x02de0f5a, 0x007a38dc, 0x00e609b2, 0x034d3cc5, 0x0008d4f8, 0x001ed8f1}}, Y: Field{[10]uint32{0x00f16327, 0x02ca6fa5, 0x03a7ce0d, 0x03402f32, 0x02236925, 0x0222166d, 0x02b6f65e, 0x025af633, 0x009a78fa, 0x002a8200}}},
+ {X: Field{[10]uint32{0x01c6890c, 0x0163e6e1, 0x03f9394d, 0x000506bb, 0x024f4b48, 0x03d3cc8c, 0x03cffb68, 0x03a22f58, 0x005314f3, 0x002adda2}}, Y: Field{[10]uint32{0x037f192c, 0x0280dbf3, 0x019e05d3, 0x010455f1, 0x01c9ff98, 0x01ffc520, 0x033610ed, 0x01af0430, 0x0033d6d9, 0x00069c72}}},
+ {X: Field{[10]uint32{0x023bd32e, 0x038d4727, 0x025a9953, 0x03692c97, 0x01ccd308, 0x0303b616, 0x0375487c, 0x01444be0, 0x03f07ad7, 0x0019050d}}, Y: Field{[10]uint32{0x01a9b131, 0x00e8e220, 0x026b0ccc, 0x0142130c, 0x027d2ec9, 0x03c02198, 0x00f1ba83, 0x00d1abd4, 0x03e6b255, 0x000f163d}}},
+ {X: Field{[10]uint32{0x03a082cb, 0x029d9259, 0x0180b9b4, 0x0321dce5, 0x0360f7ec, 0x03406ba1, 0x01cceaff, 0x0351e307, 0x012d600e, 0x003d4cbf}}, Y: Field{[10]uint32{0x0285fa96, 0x02f3e844, 0x0145e440, 0x02b5a5f2, 0x03221847, 0x0200f27c, 0x01bb4d6c, 0x01f5fdf3, 0x014c7111, 0x001ce4d4}}},
+ {X: Field{[10]uint32{0x031c7631, 0x02f41d42, 0x01c3ee1f, 0x0351d7c3, 0x00db73db, 0x03e20a4e, 0x01e6f608, 0x02ad1362, 0x01592c4b, 0x000cd9e6}}, Y: Field{[10]uint32{0x01694fbc, 0x01c058d2, 0x035aa1fd, 0x018973d9, 0x0217125d, 0x03fd5f37, 0x00782515, 0x0273cdb4, 0x00046fe8, 0x001307e0}}},
+ {X: Field{[10]uint32{0x0256c9cb, 0x008681ef, 0x00a5be22, 0x0380ca5c, 0x016f18b7, 0x0232b0a1, 0x02b53962, 0x03295ec1, 0x016d2a34, 0x00386130}}, Y: Field{[10]uint32{0x02c5bf73, 0x01780f78, 0x009c77f8, 0x00d11ad4, 0x03d646cd, 0x0319b7d5, 0x02ab0688, 0x027137c5, 0x017b51ef, 0x001f7ff0}}},
+ {X: Field{[10]uint32{0x0015d419, 0x01b22119, 0x0068f0e2, 0x035bbee3, 0x034f6ce6, 0x02883078, 0x00de9909, 0x027556ee, 0x01162fb4, 0x003e2a5f}}, Y: Field{[10]uint32{0x02061146, 0x0130b910, 0x034a7ded, 0x00ea19a1, 0x005f20a8, 0x007cba1b, 0x012e1616, 0x03280652, 0x00534dbf, 0x000f34f3}}},
+ {X: Field{[10]uint32{0x02475781, 0x03783a84, 0x0164eb32, 0x001ab5c6, 0x0328cfc4, 0x0234f714, 0x02dd6123, 0x03608751, 0x022f6c6a, 0x0027adaa}}, Y: Field{[10]uint32{0x0045c299, 0x00f8d1db, 0x004afcb3, 0x03a3ef08, 0x0053dfe3, 0x029066ca, 0x024ce341, 0x00b824d9, 0x028379d3, 0x00051406}}},
+ {X: Field{[10]uint32{0x0202668a, 0x021e8f0d, 0x036425f8, 0x017f3ae9, 0x017c4031, 0x008ff500, 0x02427403, 0x02255787, 0x026a68e6, 0x003af095}}, Y: Field{[10]uint32{0x00c7ea39, 0x024c7935, 0x0063aa06, 0x03050bbc, 0x01fab3bd, 0x03a7b269, 0x01f9f85a, 0x015b8995, 0x010996ff, 0x0001d7a0}}},
+ {X: Field{[10]uint32{0x012bc392, 0x02dfacbd, 0x029fd674, 0x012d01d2, 0x03ab9c5e, 0x02921032, 0x025b29db, 0x033970be, 0x0038a966, 0x00155919}}, Y: Field{[10]uint32{0x001c8d66, 0x01c083e6, 0x0228f0a3, 0x0033a6a3, 0x022987d8, 0x017354b9, 0x003f68a4, 0x012a273f, 0x02867603, 0x000d18c6}}},
+ {X: Field{[10]uint32{0x0316575e, 0x02c0cdde, 0x032e7ece, 0x01759ca7, 0x00082eff, 0x01f76453, 0x03257b8c, 0x0207ccc4, 0x0309befb, 0x002e1fe0}}, Y: Field{[10]uint32{0x016ea298, 0x036dff6a, 0x00630dee, 0x030b3157, 0x03eda5e1, 0x0202fb06, 0x03df03fb, 0x0000b5be, 0x003259e4, 0x002fa99a}}},
+ {X: Field{[10]uint32{0x00a0a93e, 0x011c77dc, 0x008d7953, 0x0054a24b, 0x0224b6cf, 0x005b90d7, 0x03598b20, 0x0358fab3, 0x0185b440, 0x0011655d}}, Y: Field{[10]uint32{0x00b71427, 0x03aabab1, 0x013a00b3, 0x03f08cd2, 0x03b29739, 0x019419fe, 0x02c366a5, 0x013d3c8e, 0x0260776a, 0x003d32d8}}},
+ {X: Field{[10]uint32{0x0248ca87, 0x01eef925, 0x02e11148, 0x0122e583, 0x033fe8d6, 0x03e73015, 0x024c8218, 0x010aec60, 0x024c8d9c, 0x000b243d}}, Y: Field{[10]uint32{0x03c25a8a, 0x006f9074, 0x00ab4da2, 0x01f5ac76, 0x0369bebf, 0x008bf3d5, 0x03000a9f, 0x00f2d827, 0x0157ac64, 0x0020a6f3}}},
+ {X: Field{[10]uint32{0x004b5efe, 0x02c15205, 0x037be36d, 0x0048aea7, 0x012e7539, 0x01dcc5ca, 0x006a3fcc, 0x026af655, 0x02c7779c, 0x003acc9e}}, Y: Field{[10]uint32{0x018c9435, 0x00e46414, 0x025a08c4, 0x01948e15, 0x032cbbf3, 0x01b9d200, 0x032c594d, 0x0334e230, 0x00858d2f, 0x00086b0b}}},
+ {X: Field{[10]uint32{0x006d007d, 0x0032c74b, 0x00e6adba, 0x00606b8c, 0x00daa354, 0x00df43c2, 0x02b07fdd, 0x03329ea8, 0x03e2272c, 0x000257b1}}, Y: Field{[10]uint32{0x03a12b5f, 0x01e3f14a, 0x00f3375f, 0x01f93dd0, 0x002d589e, 0x0042e224, 0x02ac913c, 0x01814154, 0x02ef59df, 0x001ccde1}}},
+ {X: Field{[10]uint32{0x000cbbd1, 0x019f1a7f, 0x015f5fc3, 0x00a4b186, 0x0191104a, 0x03fc5cdc, 0x03c845d7, 0x028203c9, 0x02988b4f, 0x0012de99}}, Y: Field{[10]uint32{0x03a85b8f, 0x011606d8, 0x0207c928, 0x01360904, 0x008e5249, 0x0266ca79, 0x0338fd4d, 0x01584a1e, 0x03d0a360, 0x0022c10e}}},
+ {X: Field{[10]uint32{0x0342e6b2, 0x02af4c68, 0x025e747d, 0x024bf194, 0x00a92337, 0x006409f0, 0x02ab28a6, 0x02077cd4, 0x018b6df5, 0x00226cb1}}, Y: Field{[10]uint32{0x03f53a2b, 0x01168435, 0x001f4100, 0x03ae223a, 0x009b053f, 0x000edd2f, 0x025edea2, 0x03996f89, 0x0334d459, 0x000c02c6}}},
+ {X: Field{[10]uint32{0x03c43cf1, 0x02a04526, 0x008007ad, 0x009e27c3, 0x031c9263, 0x01d7b121, 0x027ff0db, 0x00a34392, 0x035d9f6a, 0x00104266}}, Y: Field{[10]uint32{0x0262cae5, 0x03056dde, 0x00b26995, 0x02680d65, 0x013e0791, 0x00196234, 0x009253be, 0x024adba5, 0x02962e2b, 0x000a82ae}}},
+ {X: Field{[10]uint32{0x03229be4, 0x03f58581, 0x00817af7, 0x02704e27, 0x018825ea, 0x02998d55, 0x03396b29, 0x00230d41, 0x00649ec5, 0x002f2c3f}}, Y: Field{[10]uint32{0x0207d606, 0x011a4cce, 0x03e5c2c7, 0x02e4b5ef, 0x0313664d, 0x0248b991, 0x03a12ae0, 0x03d6adb0, 0x0192cf3b, 0x0005a31e}}},
+ {X: Field{[10]uint32{0x018b762e, 0x01c6737b, 0x009a50ec, 0x035bdc0d, 0x029cd3b3, 0x0156a025, 0x0314ca70, 0x015abe78, 0x01585a62, 0x001e8ff2}}, Y: Field{[10]uint32{0x03df1346, 0x011172f4, 0x00f2217d, 0x01e0e44a, 0x00dadecd, 0x01c5e764, 0x0288526b, 0x001c58d4, 0x000c29cd, 0x003fa2ca}}},
+ {X: Field{[10]uint32{0x01a8176a, 0x038fc198, 0x02fe1c89, 0x03980341, 0x027583c1, 0x0195b6a6, 0x03229e1e, 0x028d7b83, 0x03e1b968, 0x000ddc24}}, Y: Field{[10]uint32{0x02c601d9, 0x003e2830, 0x02b82e6e, 0x0220082b, 0x006aba8e, 0x02303600, 0x02a4dd0b, 0x03d185f9, 0x020df6c9, 0x0039f021}}},
+ {X: Field{[10]uint32{0x02afecd8, 0x018fc512, 0x02a375ba, 0x03496a63, 0x01919b1d, 0x0184c068, 0x0327a933, 0x033333c7, 0x03daf4a5, 0x00317bfc}}, Y: Field{[10]uint32{0x00b97a1c, 0x01259337, 0x01d67f42, 0x027d38fc, 0x010a9412, 0x0088b0bf, 0x008a02c2, 0x020f7063, 0x023426f9, 0x000d3845}}},
+ {X: Field{[10]uint32{0x023ffb27, 0x02a732f9, 0x014e984e, 0x03c54bb1, 0x033c0fa6, 0x00da2bf2, 0x0230f728, 0x0034cd10, 0x0119eb56, 0x00003f1e}}, Y: Field{[10]uint32{0x0059a6b3, 0x00a10aa6, 0x03fa9413, 0x033ab6b4, 0x00a04bc4, 0x03929f74, 0x01cb8388, 0x01bfe6f0, 0x0382af76, 0x00071f4d}}},
+ {X: Field{[10]uint32{0x021ca5bd, 0x0362c921, 0x001c6287, 0x00890f4e, 0x03b31183, 0x0371bd1b, 0x0034cd6e, 0x01b5c951, 0x03fb4938, 0x0009e0f5}}, Y: Field{[10]uint32{0x03fa5c70, 0x005b8e31, 0x00111a93, 0x01d205c4, 0x01e4c685, 0x023e271e, 0x00450262, 0x01ab038f, 0x02710b80, 0x0028eabc}}},
+ {X: Field{[10]uint32{0x018a02f3, 0x012cc3cb, 0x012298ad, 0x01bff4d7, 0x0188f54a, 0x0396efe5, 0x03f89495, 0x038343dd, 0x007868d4, 0x001d01e9}}, Y: Field{[10]uint32{0x03fdec9c, 0x03046d61, 0x001ce24c, 0x0250166b, 0x02debf3d, 0x024cca5f, 0x01b393ea, 0x0232c2a9, 0x016296e1, 0x00049435}}},
+ {X: Field{[10]uint32{0x0061a321, 0x0137486a, 0x01df6cc5, 0x0293e118, 0x01c5899f, 0x0055101e, 0x02c108e7, 0x03b369de, 0x00e32940, 0x0030b4b3}}, Y: Field{[10]uint32{0x005a1909, 0x037a16fc, 0x01b729e6, 0x02aba0c3, 0x030a919e, 0x03321516, 0x00b05e3e, 0x0201c64a, 0x01fa40bb, 0x003c2fac}}},
+ {X: Field{[10]uint32{0x01e8a56f, 0x03eb0fab, 0x013eb349, 0x00d4132c, 0x00d459a9, 0x02d7a54c, 0x014e1f5a, 0x006559aa, 0x0189c505, 0x00233dac}}, Y: Field{[10]uint32{0x03cf9c96, 0x018152f3, 0x0338c160, 0x02205884, 0x00327aa7, 0x008b51ea, 0x02d06d3b, 0x00a21b39, 0x017032e5, 0x002fdaa7}}},
+ {X: Field{[10]uint32{0x01a94968, 0x019d9b4a, 0x01d51ece, 0x00adff42, 0x022deeaa, 0x00c9df47, 0x016ac5f5, 0x0211c43e, 0x0186ed9f, 0x0035ac1d}}, Y: Field{[10]uint32{0x009c5326, 0x03a0fd7c, 0x03c9c75b, 0x007b4b88, 0x022f7904, 0x038fe8a4, 0x02f0d0d5, 0x01573d2b, 0x00b4ce56, 0x0036ad35}}},
+ {X: Field{[10]uint32{0x02f4d647, 0x01c89ec3, 0x0000fb85, 0x00cd136a, 0x009e661d, 0x001e560d, 0x03a09219, 0x00fb7fcc, 0x033360a0, 0x0029c82d}}, Y: Field{[10]uint32{0x0084ea63, 0x01702d52, 0x035b11bb, 0x03fef513, 0x0313d79d, 0x003d219f, 0x037e3a5a, 0x00b60980, 0x006a721c, 0x0007c84f}}},
+ {X: Field{[10]uint32{0x033a5ff7, 0x01a73b07, 0x030ac95a, 0x028b2806, 0x01b39f9b, 0x0167741d, 0x03db862e, 0x031b19c5, 0x02983b03, 0x00156295}}, Y: Field{[10]uint32{0x00ffb1a4, 0x0331b1f5, 0x0155792e, 0x01a621ff, 0x00fe3ae8, 0x00117f18, 0x0338458a, 0x02da2c85, 0x0352db21, 0x001f81f1}}},
+ {X: Field{[10]uint32{0x00e14ca4, 0x02d55404, 0x002639ca, 0x035fe35b, 0x02a7c2d9, 0x00474382, 0x0329941f, 0x01a2a314, 0x03c32786, 0x002e49f7}}, Y: Field{[10]uint32{0x0323388c, 0x01e570ad, 0x035524b8, 0x0152666b, 0x0172f4d8, 0x01dc1489, 0x020e35f7, 0x0089eed0, 0x03259954, 0x000f3a0d}}},
+ {X: Field{[10]uint32{0x030e6da8, 0x0263b313, 0x0016513f, 0x00719470, 0x003c35f7, 0x02d568dd, 0x0223ed5a, 0x02bfd623, 0x00991085, 0x000adc35}}, Y: Field{[10]uint32{0x006a8b06, 0x013c0a94, 0x025cd1a9, 0x004c72b8, 0x030a7014, 0x03609d8b, 0x03984697, 0x01727288, 0x034daa1e, 0x0037d04e}}},
+ {X: Field{[10]uint32{0x01aefe56, 0x007cbbcb, 0x01144142, 0x015298b8, 0x01e1368e, 0x012e9dfa, 0x029181d9, 0x01b80266, 0x00dcf72f, 0x002e20db}}, Y: Field{[10]uint32{0x010427ce, 0x01488279, 0x00359afa, 0x02a94e53, 0x0201beec, 0x0233abad, 0x017014b6, 0x03c9b72b, 0x012f0e31, 0x00026b51}}},
+ {X: Field{[10]uint32{0x00af93a7, 0x02daa031, 0x01b004dc, 0x01173643, 0x02ec66b4, 0x03cce026, 0x0388b480, 0x0388e825, 0x017b65f0, 0x00094aca}}, Y: Field{[10]uint32{0x00916838, 0x02c37898, 0x010e806c, 0x034314cd, 0x039f77c7, 0x0092962f, 0x02a3bcfc, 0x018845cd, 0x00c43c34, 0x00233138}}},
+ {X: Field{[10]uint32{0x02be6330, 0x0245c737, 0x01892aad, 0x001335ca, 0x03d34f27, 0x035adef6, 0x03d5fa03, 0x03319a3b, 0x00ca1c15, 0x0027cf4c}}, Y: Field{[10]uint32{0x023211b0, 0x0188c9ec, 0x0057b386, 0x02613888, 0x01353d9b, 0x0051d85c, 0x0056974f, 0x03b9eaf0, 0x00340f95, 0x001122d9}}},
+ {X: Field{[10]uint32{0x03d35e49, 0x034a614b, 0x039e66e2, 0x01793952, 0x01653b54, 0x02f1ef38, 0x00a771b5, 0x02b767fe, 0x016e5bc9, 0x00208978}}, Y: Field{[10]uint32{0x010570fa, 0x012a9d5f, 0x0212c717, 0x02774401, 0x00df836b, 0x01fc2765, 0x024e1de8, 0x028b05b2, 0x01e3aaef, 0x00189531}}},
+ {X: Field{[10]uint32{0x02d02ebe, 0x01a729aa, 0x01799046, 0x019d34f1, 0x01074f47, 0x0378956c, 0x02a80b74, 0x0266c6dc, 0x02484d6e, 0x0029f73b}}, Y: Field{[10]uint32{0x01c170a7, 0x0160ee80, 0x002a42db, 0x01e231f1, 0x00785861, 0x03bdea52, 0x021f541b, 0x02407d21, 0x00fa76a2, 0x00075bc3}}},
+ {X: Field{[10]uint32{0x009976b4, 0x038c57a0, 0x03d1e210, 0x00ae8e5b, 0x009a6baa, 0x00b1992e, 0x013372fd, 0x03a43a63, 0x01a85d4c, 0x002a4511}}, Y: Field{[10]uint32{0x00b1d100, 0x020e1d9e, 0x01449f1d, 0x03e539f1, 0x0072deac, 0x0365001f, 0x01d1512c, 0x01cac6d4, 0x028b99b0, 0x002b7131}}},
+ {X: Field{[10]uint32{0x027ce1f1, 0x0217b88a, 0x01c79ed6, 0x02b621b3, 0x036f6ea6, 0x01443803, 0x00410963, 0x025955d7, 0x01ce907c, 0x001d18b2}}, Y: Field{[10]uint32{0x0371c7df, 0x03fe882e, 0x00f2ae67, 0x03a0ccbe, 0x0047a854, 0x02731050, 0x02df5ac7, 0x008a6710, 0x01c5f02c, 0x0013fe90}}},
+ {X: Field{[10]uint32{0x00cd4f40, 0x0232a18a, 0x005065d3, 0x0112596a, 0x00dfd855, 0x029e7c8d, 0x00e36bb6, 0x0256f6be, 0x01f3dea4, 0x00350a25}}, Y: Field{[10]uint32{0x010d9cf5, 0x024ab82d, 0x01bbd59c, 0x003ea036, 0x00982171, 0x02ee121b, 0x0069b207, 0x00710b9e, 0x031813a1, 0x000bfb7a}}},
+ {X: Field{[10]uint32{0x01388adc, 0x03666853, 0x01669c29, 0x01b5da99, 0x02e8291e, 0x03bd4f44, 0x03434b27, 0x01622bc4, 0x0362ce85, 0x003be6da}}, Y: Field{[10]uint32{0x03bf912f, 0x022bb826, 0x0138adb1, 0x015516da, 0x02802612, 0x024501f2, 0x0107955e, 0x03258bb6, 0x03cf9af0, 0x000567d7}}},
+ {X: Field{[10]uint32{0x01bc9f32, 0x02c1b23f, 0x03f392af, 0x01f8a9a4, 0x0392877c, 0x0325abff, 0x01fb7bdb, 0x0276bf7d, 0x01a0bc65, 0x001000fc}}, Y: Field{[10]uint32{0x0161fef9, 0x0217ad5e, 0x03cc9ea6, 0x029b09c1, 0x017faeaf, 0x012fa197, 0x03f1dcb7, 0x03c2c0a3, 0x02a17458, 0x003afff2}}},
+ {X: Field{[10]uint32{0x02c09a8b, 0x01c0da9a, 0x027debed, 0x03640121, 0x01aa9ae1, 0x0121bd73, 0x00786f07, 0x03614592, 0x008b6b03, 0x0010e412}}, Y: Field{[10]uint32{0x0282f07a, 0x01da98e1, 0x03d6e5dd, 0x0304a682, 0x03452001, 0x00777ce4, 0x035b88a2, 0x02d5ac70, 0x01e5a10d, 0x001e0ca7}}},
+ {X: Field{[10]uint32{0x03fadea1, 0x01d019ea, 0x006b9605, 0x005be7fe, 0x016074ee, 0x037fe2d0, 0x0006c565, 0x03ed9ad8, 0x00d29ea3, 0x002b9b68}}, Y: Field{[10]uint32{0x011cdac7, 0x00cc8d30, 0x009c05ca, 0x007ae22d, 0x0229e3f0, 0x00dc1853, 0x02f0916f, 0x00a98f9d, 0x0263dd01, 0x001d32aa}}},
+ {X: Field{[10]uint32{0x03cfc72a, 0x0362a1ae, 0x014fb2fa, 0x03825414, 0x02035942, 0x013a01bd, 0x00656520, 0x011c86df, 0x01df9861, 0x001e3e1e}}, Y: Field{[10]uint32{0x00281ac6, 0x014a5b4e, 0x01c68a75, 0x034e2358, 0x032318aa, 0x03ee1731, 0x03661b7f, 0x03a02fea, 0x018c478a, 0x00106539}}},
+ {X: Field{[10]uint32{0x03c97e01, 0x00be5b97, 0x01d1dedd, 0x00a1ec70, 0x000352e0, 0x00e0d577, 0x00d51cc8, 0x02c31b5b, 0x03654f41, 0x00201a10}}, Y: Field{[10]uint32{0x02b62461, 0x000cfae4, 0x01c45262, 0x01f8ec79, 0x037546bc, 0x00d7ca69, 0x0141a0d0, 0x006d3878, 0x023f13c6, 0x0022c308}}},
+ {X: Field{[10]uint32{0x0387466c, 0x02ce4212, 0x0301005c, 0x00d271e5, 0x02f83b59, 0x0365f42a, 0x03d11691, 0x01d7d1bb, 0x019f4fd9, 0x000a5427}}, Y: Field{[10]uint32{0x02d0da81, 0x03ae9a81, 0x038da8a0, 0x0214bab4, 0x02a33de5, 0x00d78f21, 0x00fccbe1, 0x02be5b27, 0x037569a0, 0x00051dfa}}},
+ {X: Field{[10]uint32{0x031dfa4a, 0x03ffabb7, 0x0399c2d8, 0x0105bafd, 0x004e3d57, 0x00f18ea7, 0x01532fe3, 0x01c8bc30, 0x00433d9c, 0x00064745}}, Y: Field{[10]uint32{0x003a2cd8, 0x012d375c, 0x01706eae, 0x02d997b2, 0x01a5e3c7, 0x006213bb, 0x01ecf839, 0x01c6b5d1, 0x0009b6b5, 0x0016f401}}},
+ {X: Field{[10]uint32{0x030155a8, 0x022c5646, 0x001e1ebf, 0x0078f6c8, 0x02a50f0e, 0x03aa0afc, 0x02d65afe, 0x0205a17b, 0x002ed273, 0x000a10f5}}, Y: Field{[10]uint32{0x03c63ee8, 0x01f4246e, 0x02f98ff8, 0x02e02669, 0x0177edaf, 0x00cb2c89, 0x03e6e2c2, 0x027d4ed1, 0x0266c0fa, 0x00201f3a}}},
+ {X: Field{[10]uint32{0x03c8f644, 0x014ef44a, 0x000184d6, 0x00b5145b, 0x00e96ed0, 0x03a084be, 0x007514b8, 0x034dbd4d, 0x03b09656, 0x00155a2d}}, Y: Field{[10]uint32{0x00e60d87, 0x03618e14, 0x009118b2, 0x026e904a, 0x02496045, 0x03a8d901, 0x03da30d7, 0x01b710fe, 0x03a65483, 0x0016d13a}}},
+ {X: Field{[10]uint32{0x0145e803, 0x023b17ac, 0x03d6e5f3, 0x008701cf, 0x004a7dd4, 0x0256ccbe, 0x00d81ab5, 0x01129a7a, 0x00e0809e, 0x0016e138}}, Y: Field{[10]uint32{0x0113d398, 0x00f4fbeb, 0x00243cb4, 0x0303fa4d, 0x017e6109, 0x0390c455, 0x03a1522a, 0x0073b5cb, 0x02d0fa79, 0x00069968}}},
+ {X: Field{[10]uint32{0x02dfa672, 0x02993aaf, 0x00ede900, 0x010a4b32, 0x00675ba8, 0x0234ca44, 0x021519a1, 0x0041c51f, 0x016bdd24, 0x003bd0b1}}, Y: Field{[10]uint32{0x03ff75ac, 0x01ef34e2, 0x00e3cc9e, 0x0288c51d, 0x0326a618, 0x02b76fda, 0x01e0c254, 0x0265dd84, 0x03473335, 0x001c0545}}},
+ {X: Field{[10]uint32{0x0256eb63, 0x01f04a55, 0x0294c92b, 0x03b21fab, 0x00adc653, 0x02c5056d, 0x026ed003, 0x0129592f, 0x02dcb50d, 0x001237fc}}, Y: Field{[10]uint32{0x01643928, 0x01982063, 0x036b5f0f, 0x00f7dc07, 0x02fa29e6, 0x02feb550, 0x03c59e98, 0x03b3dbc2, 0x03fb53af, 0x002a6fa5}}},
+ {X: Field{[10]uint32{0x02e938d4, 0x00793ed2, 0x00337f88, 0x035067f7, 0x00d1923b, 0x008ac263, 0x009a2dfc, 0x0345d043, 0x00f5246a, 0x0019cba4}}, Y: Field{[10]uint32{0x01781f19, 0x028a2e68, 0x02c9e97a, 0x0091585f, 0x02f331b6, 0x00797c27, 0x03e678b3, 0x01b6da20, 0x03801fda, 0x001cff4c}}},
+ {X: Field{[10]uint32{0x03315cde, 0x032dd852, 0x03723ee7, 0x008529f2, 0x02dbfe55, 0x01770577, 0x01e094a9, 0x02067242, 0x01b171fb, 0x0016736e}}, Y: Field{[10]uint32{0x008351a2, 0x036c06fa, 0x00a187a6, 0x03679243, 0x017f2d38, 0x00208027, 0x033f8e73, 0x01298fb3, 0x0212670b, 0x000156b0}}},
+ {X: Field{[10]uint32{0x012ddb18, 0x004237ab, 0x028f0043, 0x020a3873, 0x006b827f, 0x02666531, 0x00db879b, 0x0162ac4d, 0x010a357a, 0x001738e3}}, Y: Field{[10]uint32{0x0397f716, 0x0285364e, 0x009c1745, 0x019c4227, 0x0394748c, 0x036f3146, 0x0384b33d, 0x0361bb0b, 0x0202d9c1, 0x0017a058}}},
+ {X: Field{[10]uint32{0x0398afda, 0x012846d4, 0x028c8282, 0x016b41c4, 0x02c1a74d, 0x02dabe49, 0x0227a940, 0x03eeeec3, 0x016a7466, 0x00326086}}, Y: Field{[10]uint32{0x00901f55, 0x0058df54, 0x006b6f00, 0x00953915, 0x032d8fb9, 0x00704cf6, 0x00e6448a, 0x00e2bee7, 0x01eae644, 0x001ea47e}}},
+ {X: Field{[10]uint32{0x039ec818, 0x03d4ca60, 0x03d31725, 0x030a0f20, 0x0360bfbc, 0x01e5b403, 0x0281d297, 0x006fb372, 0x008479e6, 0x000e0f2c}}, Y: Field{[10]uint32{0x01dec91e, 0x028643de, 0x004ffdb1, 0x009ab619, 0x010bbc34, 0x0057cd36, 0x01e04980, 0x0224ce2f, 0x03a24900, 0x0009b89b}}},
+ {X: Field{[10]uint32{0x002f612b, 0x03293f44, 0x00550248, 0x026dab21, 0x0328b88c, 0x01200477, 0x0117b524, 0x03c529c6, 0x03312ad4, 0x0039a515}}, Y: Field{[10]uint32{0x0176f53d, 0x030ce193, 0x0089c1b1, 0x01be5c1a, 0x00c81cc8, 0x027ac2d1, 0x03edddac, 0x01c0797a, 0x008251fc, 0x000c3b48}}},
+ {X: Field{[10]uint32{0x039976f7, 0x00f131ae, 0x018a7f28, 0x03c893e9, 0x01250809, 0x0098a9ca, 0x02168d21, 0x024d4884, 0x01ba8f79, 0x000b401c}}, Y: Field{[10]uint32{0x031dfd8b, 0x00ac05d7, 0x01b03c87, 0x03c695c2, 0x01ccc118, 0x020001e7, 0x01455440, 0x01cfc45a, 0x01014e48, 0x0033729a}}},
+ {X: Field{[10]uint32{0x001e927e, 0x0123c880, 0x017898d7, 0x02c210df, 0x01da35c2, 0x01e61dee, 0x00f35f06, 0x013efe47, 0x005765b7, 0x00320ae5}}, Y: Field{[10]uint32{0x005fd6a2, 0x00f67c81, 0x0133d931, 0x00a8e6c5, 0x03b57a0f, 0x02ab23c1, 0x0057dae9, 0x01aff1f8, 0x01d10bb0, 0x000b9413}}},
+ {X: Field{[10]uint32{0x01bbf0a6, 0x02d8ca1d, 0x0022763c, 0x028bece9, 0x012654ed, 0x01cdf746, 0x01135ede, 0x0086a7fb, 0x002e7eac, 0x00270693}}, Y: Field{[10]uint32{0x00e9197f, 0x0023bf84, 0x02e60200, 0x011ba768, 0x0280eb66, 0x02ded681, 0x02c91289, 0x00716089, 0x036c12f7, 0x003cc4d2}}},
+ {X: Field{[10]uint32{0x016c9b28, 0x02b09fa3, 0x0353b6a2, 0x00d8b55d, 0x019b170a, 0x0202df3e, 0x00bd645e, 0x00c88bb6, 0x019bbc69, 0x0025c74f}}, Y: Field{[10]uint32{0x01d22e2e, 0x00dbdfe4, 0x0098080a, 0x00cfce16, 0x01e20394, 0x03f17a1b, 0x00a73af7, 0x0370b1b1, 0x009ae296, 0x000358f5}}},
+ {X: Field{[10]uint32{0x03917d2b, 0x0200bea2, 0x0023fa67, 0x01eafd6b, 0x01660a31, 0x00186781, 0x0329f2ae, 0x0045448f, 0x027386bc, 0x003d524e}}, Y: Field{[10]uint32{0x01e0f1d7, 0x008c1b99, 0x03e23964, 0x000a004c, 0x0138455e, 0x0109ee2d, 0x0305157b, 0x0014c0ac, 0x00cb8b78, 0x0039ab6f}}},
+ {X: Field{[10]uint32{0x01b6e014, 0x00154de6, 0x006dadde, 0x03f502ce, 0x01763244, 0x03af78ab, 0x017a3215, 0x00282b92, 0x023e500e, 0x0020c7c4}}, Y: Field{[10]uint32{0x03221d6c, 0x01c67232, 0x03950f44, 0x002a76da, 0x01ac04af, 0x03bbd7be, 0x02fa508c, 0x0222b154, 0x00622ff5, 0x000d585a}}},
+ {X: Field{[10]uint32{0x017cfb35, 0x00a321e2, 0x02975f17, 0x008a63a4, 0x027a338c, 0x03bce175, 0x014c3342, 0x011d30ce, 0x006d0018, 0x0026e338}}, Y: Field{[10]uint32{0x02a40d72, 0x033a8150, 0x0331d712, 0x015e928d, 0x0307ce87, 0x007d4dd1, 0x01a50c4c, 0x00f811f3, 0x0220b8dc, 0x001da500}}},
+ {X: Field{[10]uint32{0x03c5b855, 0x004de9cf, 0x027cb1e8, 0x02b437fe, 0x0014f06c, 0x00afcf85, 0x01724104, 0x00af2580, 0x016ba98d, 0x003dc2a4}}, Y: Field{[10]uint32{0x000275a2, 0x023ffeca, 0x0023fff9, 0x02110f10, 0x03b5426d, 0x025ea23c, 0x01a3fbe9, 0x0225bfce, 0x01f470d7, 0x003c6e30}}},
+ {X: Field{[10]uint32{0x00763d56, 0x014abeb0, 0x0259992d, 0x0027f653, 0x01a64d69, 0x03d88741, 0x02836612, 0x01ff92ac, 0x03bbc44e, 0x000b4aad}}, Y: Field{[10]uint32{0x015328e8, 0x034cb331, 0x0328ae57, 0x02bcd815, 0x03c5fec8, 0x02d870b4, 0x03e044e8, 0x024721a3, 0x02002a69, 0x0014d143}}},
+ {X: Field{[10]uint32{0x00d10005, 0x02e751bd, 0x018f3dc9, 0x03157601, 0x03321ff7, 0x02a44c55, 0x025423f3, 0x025e33a8, 0x02b8c516, 0x00205e37}}, Y: Field{[10]uint32{0x016ff4bc, 0x00efeda3, 0x02bfb598, 0x011a89ad, 0x01f9c001, 0x00d4926f, 0x02e6a282, 0x034c0fd2, 0x032b46c9, 0x0005a9c6}}},
+ {X: Field{[10]uint32{0x02b56a64, 0x01a9a48d, 0x0301126e, 0x03285800, 0x0001f700, 0x03756650, 0x02f9c32a, 0x02e9f99f, 0x0376d012, 0x002d1c2e}}, Y: Field{[10]uint32{0x014fd95c, 0x03089c98, 0x03a6927c, 0x020a8bef, 0x031775f0, 0x02349a61, 0x01f36f15, 0x0261861c, 0x03e07d17, 0x003df424}}},
+ {X: Field{[10]uint32{0x02de29ce, 0x01c4cff8, 0x03f78fe1, 0x0084736c, 0x01d3a899, 0x003c0850, 0x0348eb33, 0x02b04866, 0x02ba837c, 0x000593ca}}, Y: Field{[10]uint32{0x031d28dc, 0x01d8dd21, 0x011972c0, 0x01419a49, 0x02c2837c, 0x02e08701, 0x01ec79e0, 0x0340d12a, 0x020895f7, 0x000ef015}}},
+ {X: Field{[10]uint32{0x02e725f4, 0x027fb144, 0x02283ec5, 0x03aa20f8, 0x01e6a210, 0x0172ee27, 0x012268b3, 0x01b4bbd4, 0x020402a8, 0x0031de8e}}, Y: Field{[10]uint32{0x031cfba2, 0x027bb704, 0x029148dc, 0x03896d27, 0x036d1db4, 0x03b580ac, 0x007e5928, 0x0281ff96, 0x016bedf1, 0x000baf35}}},
+ {X: Field{[10]uint32{0x03b11349, 0x02b4cd40, 0x00e9f060, 0x0010368e, 0x0011df55, 0x0071aafa, 0x03a3f1d7, 0x033dc555, 0x03a1f714, 0x00038b7b}}, Y: Field{[10]uint32{0x0045f229, 0x02d516b8, 0x0354bd88, 0x0368ee6a, 0x000c5107, 0x0195f651, 0x001912ea, 0x02ef1cbd, 0x03037a53, 0x0017b590}}},
+ {X: Field{[10]uint32{0x02313e3c, 0x004910ed, 0x017b2d21, 0x03a73075, 0x0335280c, 0x0290cc2b, 0x03fca1e5, 0x02793058, 0x02cbb4cd, 0x003b8b44}}, Y: Field{[10]uint32{0x02153262, 0x02488ebb, 0x02f0849f, 0x01bf752e, 0x024057fb, 0x03ffeda5, 0x00ecafab, 0x01f1960e, 0x01c1a437, 0x0038a2c7}}},
+ {X: Field{[10]uint32{0x019e28bd, 0x0095b59f, 0x0067c78f, 0x011489c5, 0x01a2109b, 0x016f9f0f, 0x0039c34f, 0x037b2bcf, 0x009673e6, 0x00010e4b}}, Y: Field{[10]uint32{0x00110c50, 0x00aa2180, 0x006fd590, 0x035f43d0, 0x00747d63, 0x010e9aed, 0x009edd53, 0x0094cec1, 0x0183ae35, 0x001ff930}}},
+ {X: Field{[10]uint32{0x020d6960, 0x03fcc702, 0x017a6712, 0x02cbe046, 0x020f5586, 0x00023d26, 0x02655f16, 0x01d2b64e, 0x02ee1673, 0x00165cb8}}, Y: Field{[10]uint32{0x037c71d6, 0x037b069b, 0x00847bc3, 0x03f1f024, 0x02779343, 0x0240ef5c, 0x02e485ad, 0x01f1d228, 0x0055d0a5, 0x001b5c3f}}},
+ {X: Field{[10]uint32{0x002c78aa, 0x0226bc0c, 0x03c19855, 0x00690038, 0x02a180f3, 0x02795d9a, 0x01f1faa2, 0x000c5622, 0x000afc2c, 0x002a1760}}, Y: Field{[10]uint32{0x017ec85e, 0x022c036e, 0x032a508f, 0x01e94b74, 0x02ff5aca, 0x00a196de, 0x0037b419, 0x01da8291, 0x03f4903c, 0x001d0a75}}},
+ {X: Field{[10]uint32{0x01f1c245, 0x0215a7e9, 0x01cdc954, 0x00e1c9d6, 0x02ccee3f, 0x035418e1, 0x009e85d7, 0x013f326a, 0x030f0d59, 0x003260da}}, Y: Field{[10]uint32{0x0094fac0, 0x02dc20b4, 0x031ed943, 0x03166ed0, 0x03bed1c2, 0x035c59c9, 0x01a7d06f, 0x03fb58bc, 0x012693b7, 0x0027c2c6}}},
+ {X: Field{[10]uint32{0x0202bd3b, 0x032b9ff4, 0x0222b588, 0x0106b991, 0x0375f2c4, 0x03658c64, 0x0348e5f6, 0x01195340, 0x00fdb2b8, 0x00328861}}, Y: Field{[10]uint32{0x026a4de9, 0x013c3f5c, 0x0162683c, 0x03207d9c, 0x01e2563c, 0x03a5ca6e, 0x013dbb2f, 0x01eab012, 0x00203d65, 0x0034488a}}},
+ {X: Field{[10]uint32{0x02941fd8, 0x00b9814d, 0x0066b44a, 0x03331e93, 0x02b5dea0, 0x00181755, 0x03627048, 0x02599021, 0x01c63c9b, 0x00278145}}, Y: Field{[10]uint32{0x00be831a, 0x02c87255, 0x01e506d4, 0x018845fb, 0x0295f0b7, 0x036e8187, 0x02f789e2, 0x00b61abf, 0x0224a2eb, 0x000a778c}}},
+ {X: Field{[10]uint32{0x035dc1cc, 0x023c002b, 0x02f6053a, 0x03694759, 0x018a3447, 0x0297cf5e, 0x022cf7af, 0x00e9fc30, 0x00253320, 0x0010810b}}, Y: Field{[10]uint32{0x01e6c05a, 0x022369fd, 0x03d9dff6, 0x007587dc, 0x03c54f3c, 0x02f04f44, 0x01420d50, 0x00e1c8c5, 0x027a6d6c, 0x003c1d69}}},
+ {X: Field{[10]uint32{0x02295b96, 0x0259f1c4, 0x031bccd3, 0x032a6b90, 0x023f5a68, 0x0222557f, 0x0084ffd2, 0x000af916, 0x01bd4eab, 0x00199168}}, Y: Field{[10]uint32{0x0384cfad, 0x033344ae, 0x00b6730c, 0x01949014, 0x00bf9028, 0x003a4b13, 0x02d4b30f, 0x013b50a3, 0x01f91d26, 0x0008c7de}}},
+ {X: Field{[10]uint32{0x00b32f9f, 0x0347ba35, 0x0075f30b, 0x02a21c3d, 0x036898f3, 0x0161f78d, 0x01482ab1, 0x01ba208c, 0x026d2c31, 0x00138a07}}, Y: Field{[10]uint32{0x0065602c, 0x03dd6070, 0x0091011e, 0x0357cdf9, 0x02c3f708, 0x03770d05, 0x0378062c, 0x027b7797, 0x01c81c11, 0x003d232b}}},
+ {X: Field{[10]uint32{0x02af5136, 0x0153bc12, 0x00e02fcd, 0x034f90cb, 0x034fbaf7, 0x01e99880, 0x03c7ffbc, 0x007a7fc4, 0x001496e4, 0x001dc8d9}}, Y: Field{[10]uint32{0x002dd218, 0x020c1d09, 0x0328c800, 0x028195fc, 0x0398bec7, 0x00003da5, 0x00b4bf29, 0x03007bed, 0x01740d6c, 0x00088b80}}},
+ {X: Field{[10]uint32{0x01d45860, 0x00765dc3, 0x02bddaf3, 0x027fded7, 0x0018ab00, 0x00488610, 0x026070cb, 0x01e166b6, 0x004c8d46, 0x000fcadc}}, Y: Field{[10]uint32{0x034dd88a, 0x03ebaa0e, 0x02a9fb59, 0x022ff417, 0x03e2b6ab, 0x035868b7, 0x038dd215, 0x03ad7a30, 0x03a5146a, 0x00291c59}}},
+ {X: Field{[10]uint32{0x00ad4146, 0x02e7a4bb, 0x01b51640, 0x0342b931, 0x0384b3ac, 0x017e60f6, 0x03b70f03, 0x036044ba, 0x0130d243, 0x001e53b0}}, Y: Field{[10]uint32{0x007be84d, 0x01ddeab4, 0x01e71c80, 0x03576303, 0x00658f2d, 0x00debbd7, 0x00a537f9, 0x0171f3bb, 0x00be95c2, 0x00127b7b}}},
+ {X: Field{[10]uint32{0x01a96aa3, 0x03258525, 0x023ba808, 0x0335ba7f, 0x0149c554, 0x01ec702c, 0x0304cf4a, 0x0384ade6, 0x01ece363, 0x001d43fe}}, Y: Field{[10]uint32{0x021d59a9, 0x00540bde, 0x02dfb2de, 0x02fc7931, 0x022d4474, 0x028182d0, 0x0270f149, 0x028fb7d3, 0x029dd1c5, 0x00168a09}}},
+ {X: Field{[10]uint32{0x026272cf, 0x017ecaad, 0x00169633, 0x00b26dfd, 0x02263b08, 0x0344a518, 0x02c9ec1f, 0x01a3b2e5, 0x01d7df66, 0x00359701}}, Y: Field{[10]uint32{0x02188839, 0x02e93c37, 0x03c37891, 0x0019acbd, 0x017e48be, 0x031dff6b, 0x02cc5b7f, 0x0350b490, 0x00c51c10, 0x00035dca}}},
+ {X: Field{[10]uint32{0x015190c3, 0x016fbd56, 0x012f6122, 0x00e5ca8f, 0x02aecffe, 0x036e685c, 0x039d2700, 0x03a7a6d6, 0x00b68cb2, 0x0034e013}}, Y: Field{[10]uint32{0x01e30d5e, 0x03091c6d, 0x01613482, 0x00f9bfc3, 0x00287902, 0x01814d0a, 0x02f41314, 0x01922cc2, 0x010c9568, 0x00047ecd}}},
+ {X: Field{[10]uint32{0x00351bf6, 0x03a7a11c, 0x01b3db34, 0x0104441b, 0x036a9382, 0x03b3e34d, 0x0095c619, 0x00d27db3, 0x022635c6, 0x003dd8b7}}, Y: Field{[10]uint32{0x009fd814, 0x03702eaf, 0x0010b1ca, 0x00b4fa21, 0x000ccfe2, 0x026444b9, 0x013352da, 0x003e7b9d, 0x01e0c8a5, 0x003719fe}}},
+ {X: Field{[10]uint32{0x03b87a71, 0x0395d9d4, 0x00e7dac5, 0x03baea1f, 0x03d7dcec, 0x005f8e49, 0x02e163ed, 0x03fd2c5f, 0x00bfa827, 0x002ac62d}}, Y: Field{[10]uint32{0x030da919, 0x03aa6e4a, 0x01ed5b57, 0x00734ac7, 0x0229706d, 0x01341fdc, 0x002bc09c, 0x00249b22, 0x03d573e4, 0x001b6e0e}}},
+ {X: Field{[10]uint32{0x0198c95e, 0x0199a540, 0x02d8bf5c, 0x02b63d8e, 0x02b12478, 0x0116588a, 0x0343a870, 0x006ba368, 0x0248fec2, 0x003dd530}}, Y: Field{[10]uint32{0x0052b1bd, 0x009e6498, 0x02e5293b, 0x01e8caee, 0x00e056ca, 0x03d511dd, 0x008d8e67, 0x021ddae1, 0x02a25f9c, 0x000b3edd}}},
+ {X: Field{[10]uint32{0x0246c51c, 0x018b53e6, 0x008e2c24, 0x030c4d07, 0x02103516, 0x005af285, 0x013ecdb7, 0x001e63e2, 0x033e3c3f, 0x003e3651}}, Y: Field{[10]uint32{0x03924e02, 0x016fa4b5, 0x006869e0, 0x00ef846d, 0x015c53bd, 0x01d51e0d, 0x03314dac, 0x03f8e89a, 0x025fa422, 0x00157c01}}},
+ {X: Field{[10]uint32{0x014eb741, 0x0341435d, 0x00395352, 0x02d2fef1, 0x012f7c5a, 0x02ca7f6a, 0x035fa225, 0x032f2269, 0x0142d294, 0x000218e6}}, Y: Field{[10]uint32{0x03d11e4d, 0x02762a79, 0x01c29677, 0x020d32e0, 0x03741da8, 0x02cfb5f3, 0x0179abdd, 0x038d68db, 0x022a445d, 0x000e44fa}}},
+ {X: Field{[10]uint32{0x0395d5c2, 0x03469e2e, 0x02c61794, 0x020820eb, 0x02068572, 0x0169c6d2, 0x0319230b, 0x00e22fc5, 0x006c706a, 0x000a9623}}, Y: Field{[10]uint32{0x00c47592, 0x010b12db, 0x01b00968, 0x02bafeec, 0x0361f458, 0x01f847e5, 0x007f07ea, 0x03db6590, 0x01771a56, 0x002bc97b}}},
+ {X: Field{[10]uint32{0x020a0cb6, 0x03a35500, 0x01fe337e, 0x005c08b8, 0x00a54597, 0x02697b6c, 0x02dba4ad, 0x02e6a2c9, 0x01ee8931, 0x0004def4}}, Y: Field{[10]uint32{0x03ceea62, 0x01228c05, 0x00b7ff58, 0x01788455, 0x01eaea10, 0x021f5da8, 0x03e9f0ee, 0x031df49c, 0x037b8197, 0x00337a7e}}},
+ {X: Field{[10]uint32{0x02de2bbf, 0x02ef8cb4, 0x03b48d21, 0x03aa8782, 0x020f9b5f, 0x00ebcb0a, 0x01523711, 0x00c4f25c, 0x0345c686, 0x00119600}}, Y: Field{[10]uint32{0x0092ef64, 0x02a3ba7b, 0x030510a3, 0x023a85ae, 0x027edade, 0x019bd30a, 0x03bc79db, 0x027fecaf, 0x017bb632, 0x001d6f17}}},
+ {X: Field{[10]uint32{0x011bd233, 0x017bd90e, 0x02a8556d, 0x03586ca0, 0x0102ef93, 0x009abd51, 0x02fc491c, 0x016b3660, 0x0252afaf, 0x00128524}}, Y: Field{[10]uint32{0x00cfe285, 0x00f5e3d8, 0x0259a3b5, 0x03f16897, 0x03bb9e83, 0x018fd752, 0x0256ea38, 0x016d8259, 0x00bc10b5, 0x003ef040}}},
+ {X: Field{[10]uint32{0x01a01f18, 0x03e4bc85, 0x013faad0, 0x0225f65d, 0x0395bdf0, 0x011d7592, 0x00251313, 0x033e3c38, 0x01a6fc0b, 0x002253af}}, Y: Field{[10]uint32{0x035ec056, 0x0389b3d7, 0x003779fa, 0x000b8a65, 0x001e4ede, 0x01f4deb8, 0x01d02519, 0x01cb3f1a, 0x01501557, 0x002c97cc}}},
+ {X: Field{[10]uint32{0x01eb032e, 0x029bab91, 0x0285a3c2, 0x029be796, 0x002deedc, 0x03f5c82b, 0x01ef1b2b, 0x02e244c3, 0x02930a91, 0x0039c362}}, Y: Field{[10]uint32{0x00d9f9cc, 0x03f7c453, 0x01b0a693, 0x02061e28, 0x02fe1026, 0x024472c0, 0x03b96ea4, 0x03fdad17, 0x0253a3b0, 0x002f4ebb}}},
+ {X: Field{[10]uint32{0x02b36852, 0x0117eed3, 0x0047eeb2, 0x00fc4d75, 0x02118988, 0x02551ada, 0x016765bf, 0x02c77528, 0x01c3e5cc, 0x001f2c7f}}, Y: Field{[10]uint32{0x03ca582d, 0x0238b2a3, 0x014e0196, 0x0022a3fb, 0x00d18890, 0x0176fc96, 0x00edbe17, 0x017fdee0, 0x00d6becf, 0x000243b8}}},
+ {X: Field{[10]uint32{0x03b9bfc1, 0x02fef0a1, 0x00685bf9, 0x0340c484, 0x00b39f57, 0x00cae416, 0x0090a214, 0x03685e3f, 0x02d80331, 0x001449e2}}, Y: Field{[10]uint32{0x03a66b6f, 0x03773a74, 0x00040536, 0x0387dd6f, 0x017bc1f9, 0x00976cf9, 0x03ad759b, 0x0399e230, 0x0147f39c, 0x00016abd}}},
+ {X: Field{[10]uint32{0x00f59cdd, 0x03a64115, 0x036cee9f, 0x00215389, 0x030fee50, 0x00bf3c3c, 0x03563082, 0x00c1a122, 0x021fc52b, 0x003c3baa}}, Y: Field{[10]uint32{0x02124f02, 0x02ecb27c, 0x02e63ab3, 0x03ea0460, 0x00d51cf7, 0x02befacc, 0x01e5e016, 0x01c2f7ad, 0x009b944d, 0x000243fe}}},
+ {X: Field{[10]uint32{0x03aeea71, 0x0376dac0, 0x01df6648, 0x02bc94ad, 0x00df5b4c, 0x01ed4700, 0x03670c22, 0x003f4984, 0x03f28bf9, 0x000dbf26}}, Y: Field{[10]uint32{0x03836683, 0x0038e8f9, 0x0075e13d, 0x031a7f64, 0x03d975ec, 0x0376eef9, 0x02c81614, 0x01b0a181, 0x0076f1ac, 0x00221f0e}}},
+ {X: Field{[10]uint32{0x0391b68b, 0x037caa26, 0x03acdba4, 0x02757996, 0x02135c54, 0x030a7d8b, 0x00d2d041, 0x010db385, 0x026b0cf9, 0x001b8c78}}, Y: Field{[10]uint32{0x00d0e7ae, 0x0258622b, 0x01a85858, 0x021f426a, 0x0194c1af, 0x029de2cc, 0x037d9f77, 0x02f6aad7, 0x02849e63, 0x00008e25}}},
+ {X: Field{[10]uint32{0x0198e864, 0x02499c87, 0x02eac357, 0x03613dd0, 0x003da9fa, 0x02b4cea8, 0x02a8a1ce, 0x030afeb1, 0x0249a4b1, 0x00314111}}, Y: Field{[10]uint32{0x03a1027b, 0x02c80769, 0x000af537, 0x0136e350, 0x0345fdc8, 0x0330450e, 0x03d13270, 0x025aedc5, 0x02d283e6, 0x001b4980}}},
+ {X: Field{[10]uint32{0x0299ca28, 0x02013b1a, 0x011e6eca, 0x01331148, 0x03b9b2e8, 0x016801ee, 0x028e963b, 0x011356f6, 0x0271f13c, 0x0002a4cf}}, Y: Field{[10]uint32{0x02200faa, 0x003d967d, 0x014f5c1c, 0x01e55084, 0x00c3ce02, 0x00750bf7, 0x01712073, 0x038bdb99, 0x03bcec45, 0x0024c6fc}}},
+ {X: Field{[10]uint32{0x00e4a58b, 0x037d977e, 0x021aa83a, 0x0342c4ca, 0x030b8559, 0x0045c0e2, 0x0298884e, 0x00b5886e, 0x021d840c, 0x002400fd}}, Y: Field{[10]uint32{0x00d30895, 0x03d5b73a, 0x01532b67, 0x02b1cd8c, 0x001388a1, 0x02e89a15, 0x02b7ecec, 0x00e54a7f, 0x0124f72b, 0x001431d4}}},
+ {X: Field{[10]uint32{0x02a0a886, 0x02df0df2, 0x022c533f, 0x02a7a7cf, 0x02914e21, 0x005ca069, 0x038abdfc, 0x01c33218, 0x00183cb3, 0x003f201f}}, Y: Field{[10]uint32{0x00af00ba, 0x009286fa, 0x02cdee9d, 0x0341ae34, 0x021ccf6f, 0x03559095, 0x02f72639, 0x00756ea6, 0x013e75ac, 0x000eb1e7}}},
+ {X: Field{[10]uint32{0x03ee9cbd, 0x024f33b7, 0x033c1862, 0x02b9f901, 0x03cd780d, 0x0142f352, 0x03b608f1, 0x02b08ed0, 0x02e4aca4, 0x000f41ca}}, Y: Field{[10]uint32{0x0265d9b6, 0x0355749f, 0x0385792f, 0x00519f68, 0x03f9c604, 0x00235d89, 0x00fc5630, 0x0327e2a6, 0x0043f721, 0x0001b679}}},
+ {X: Field{[10]uint32{0x03f80dc0, 0x02aaf669, 0x01d3d106, 0x02f1eb2c, 0x03ba6e26, 0x008bebe2, 0x03c5eed5, 0x02d29f4a, 0x01947061, 0x003432e1}}, Y: Field{[10]uint32{0x03012e0a, 0x00e791de, 0x0092c9b7, 0x03c507c2, 0x038d7562, 0x006a61da, 0x0107b82d, 0x03730680, 0x0326e9d0, 0x003eff43}}},
+ {X: Field{[10]uint32{0x035bc9fd, 0x01b496d8, 0x02e3241a, 0x02b090b3, 0x00267aad, 0x01c88730, 0x019f46cc, 0x03191079, 0x00ab6416, 0x00393b70}}, Y: Field{[10]uint32{0x03cdc71e, 0x0307f0d3, 0x02964b84, 0x01382ec1, 0x01c496fd, 0x020201f4, 0x00344829, 0x02d31012, 0x02e9cea7, 0x003d070e}}},
+ {X: Field{[10]uint32{0x017eb4b2, 0x034caaf7, 0x01271557, 0x01046c2d, 0x02ffb806, 0x012f83d7, 0x01a83c88, 0x0244063d, 0x010b2d3d, 0x00188ced}}, Y: Field{[10]uint32{0x015dbcc5, 0x007bc661, 0x00399791, 0x00af7690, 0x01034a3a, 0x00a1622c, 0x030f21e3, 0x00ab095d, 0x0124ffdd, 0x00237eab}}},
+ {X: Field{[10]uint32{0x02a19ab5, 0x012df714, 0x015df943, 0x017af78a, 0x03c427e6, 0x03a607da, 0x034e5447, 0x0197889e, 0x0162e272, 0x001b2800}}, Y: Field{[10]uint32{0x0154cce1, 0x015f9944, 0x03a5ce0f, 0x00583854, 0x03223e89, 0x02aece81, 0x03fe297b, 0x009f8290, 0x0363a8f2, 0x0034cfd7}}},
+ {X: Field{[10]uint32{0x02fefcfc, 0x02199b8d, 0x005b3cd6, 0x024a2d84, 0x02d6c9d9, 0x0339f2c5, 0x01328ae7, 0x02357703, 0x01aa5d2a, 0x00300481}}, Y: Field{[10]uint32{0x02831d3e, 0x00061643, 0x03b453ad, 0x02affea6, 0x02cf2988, 0x02be2e9f, 0x03d6f6f6, 0x02025786, 0x0399c4f4, 0x002d9797}}},
+ {X: Field{[10]uint32{0x02e0e155, 0x02de34b6, 0x00abb4e0, 0x025d29b1, 0x0107b8a5, 0x020143ce, 0x016fb195, 0x01a32d87, 0x03930e62, 0x0038e594}}, Y: Field{[10]uint32{0x00731737, 0x00a26fe0, 0x00828a2f, 0x02973683, 0x003f971f, 0x014e0ecb, 0x00048928, 0x03876460, 0x01462ed6, 0x0007de2b}}},
+ {X: Field{[10]uint32{0x00b099ce, 0x0120889b, 0x004f8012, 0x03e142f6, 0x013dc03a, 0x03f6643f, 0x010c1a69, 0x02750c01, 0x00f3702a, 0x0009eff4}}, Y: Field{[10]uint32{0x00643de8, 0x0306c72f, 0x00f390fe, 0x03c36425, 0x00c49fd3, 0x0102f9f0, 0x030c0bce, 0x02baf466, 0x0360e8ca, 0x0008b85a}}},
+ {X: Field{[10]uint32{0x0396a2f0, 0x0020281b, 0x023c6cbf, 0x00b1bdd7, 0x012a3717, 0x00a65ea2, 0x02c17771, 0x0255967b, 0x03c02331, 0x0020843e}}, Y: Field{[10]uint32{0x02afee8d, 0x03aa4791, 0x0109716d, 0x0095b469, 0x03bfacbb, 0x01787bac, 0x011d5528, 0x019b2eec, 0x03921011, 0x0007775d}}},
+ {X: Field{[10]uint32{0x02347b5e, 0x034869d3, 0x03ab089c, 0x0197e2fb, 0x00ae4d50, 0x0178bfe0, 0x015298a2, 0x02f6037c, 0x02b65fcb, 0x00057319}}, Y: Field{[10]uint32{0x03937c97, 0x02b34c81, 0x0334b6dd, 0x00d1223e, 0x007b225b, 0x01585b4a, 0x03324c9f, 0x020a5b7a, 0x03e93574, 0x002512d1}}},
+ {X: Field{[10]uint32{0x00c97976, 0x0006b825, 0x02c4bff8, 0x03f1c9b0, 0x02c7bb08, 0x0279b0d7, 0x021a482a, 0x0005a47a, 0x02a24596, 0x003adede}}, Y: Field{[10]uint32{0x02d1b1f6, 0x008fe08b, 0x003f227c, 0x01380413, 0x02f5596f, 0x00fc195a, 0x03d20e90, 0x01de47f2, 0x0170cc18, 0x00134ba5}}},
+ {X: Field{[10]uint32{0x029ba12c, 0x0039f7d7, 0x01ea15fb, 0x001ad029, 0x0118e7c1, 0x025aa11a, 0x02436e09, 0x03a11308, 0x02fced29, 0x0011663e}}, Y: Field{[10]uint32{0x035e6093, 0x0388a3fc, 0x016297dc, 0x015796c2, 0x01978a85, 0x03dc5982, 0x0379dfe7, 0x03a8b0e5, 0x02b6d292, 0x0039cf65}}},
+ {X: Field{[10]uint32{0x028600f7, 0x01fbacc6, 0x007058e3, 0x03f06443, 0x00e57d4d, 0x01be4386, 0x02a25917, 0x0396515c, 0x02863612, 0x001260d6}}, Y: Field{[10]uint32{0x03cfa531, 0x003b4df7, 0x017b9825, 0x028b9223, 0x02464c08, 0x003a034d, 0x023b147e, 0x00b30730, 0x013a0fbd, 0x0000edd8}}},
+ {X: Field{[10]uint32{0x02335351, 0x0245bdf3, 0x005b9965, 0x02df464c, 0x033cbfe0, 0x0136f70c, 0x023177b0, 0x02019cca, 0x03ed1fcc, 0x000e9b5b}}, Y: Field{[10]uint32{0x026624ea, 0x021a4956, 0x01d0df29, 0x01586f47, 0x0111eb2b, 0x01fc4190, 0x00a6706d, 0x0185fc52, 0x018a314d, 0x00330fcf}}},
+ {X: Field{[10]uint32{0x02d7a9f5, 0x035b1ece, 0x02a78fb0, 0x0093b9ee, 0x00f672a0, 0x0080d6dd, 0x012d2efb, 0x03f8c33a, 0x01866860, 0x00084821}}, Y: Field{[10]uint32{0x00bebbb7, 0x01d2825e, 0x01d7ce10, 0x038d07c9, 0x0396ff0c, 0x03dba75c, 0x02e8be11, 0x02c7b0ff, 0x01be0051, 0x002abc51}}},
+ {X: Field{[10]uint32{0x026e4e06, 0x03681349, 0x03cc867c, 0x0209b3bf, 0x01833ac0, 0x0072c46e, 0x03d609c5, 0x00bc2598, 0x032ac9bb, 0x003e0644}}, Y: Field{[10]uint32{0x00891de5, 0x009c8e53, 0x02bb37e2, 0x03bdd91a, 0x00c52f48, 0x01012bbb, 0x03fd1a06, 0x00c172ab, 0x0238ec6a, 0x002c7f79}}},
+ {X: Field{[10]uint32{0x02ec009d, 0x02a50df0, 0x00428423, 0x028484f1, 0x01168385, 0x02bb58b6, 0x0334d720, 0x0190310d, 0x01d88786, 0x0014db01}}, Y: Field{[10]uint32{0x036df0d5, 0x0224c976, 0x02f134b4, 0x03b87ea7, 0x01fd84dd, 0x020e8231, 0x03c2b43c, 0x037861a2, 0x0100d827, 0x001fd2f8}}},
+ {X: Field{[10]uint32{0x01df722b, 0x02dceea8, 0x024bd650, 0x02c68e68, 0x0109de2f, 0x00b22a16, 0x02e3ed34, 0x036dd8df, 0x023ec4c6, 0x0010ca04}}, Y: Field{[10]uint32{0x03a40857, 0x0275fa58, 0x01b1594c, 0x00403d75, 0x014ee11f, 0x02d3e1bd, 0x0222fa71, 0x01dd4f9a, 0x02ea0127, 0x00207000}}},
+ {X: Field{[10]uint32{0x012a5f17, 0x00369a04, 0x01a08155, 0x00cb543a, 0x016a85fc, 0x003e6170, 0x029e5360, 0x0265461a, 0x02fef852, 0x003cf855}}, Y: Field{[10]uint32{0x008892d2, 0x037426ad, 0x010915d5, 0x0339d063, 0x03a2f441, 0x00d8ae14, 0x0167e83c, 0x0039bd97, 0x026b56ff, 0x00247ff5}}},
+ {X: Field{[10]uint32{0x03456cc9, 0x00aa3622, 0x030e6824, 0x02bfabc0, 0x006645a1, 0x0153102b, 0x028a716a, 0x00fd0b4b, 0x035984e1, 0x000cae9c}}, Y: Field{[10]uint32{0x00b4c6f5, 0x022c60ef, 0x02200f86, 0x017279f9, 0x03f05576, 0x03bc9324, 0x02ab3178, 0x02c542a0, 0x031e1c32, 0x0019fff3}}},
+ {X: Field{[10]uint32{0x01829311, 0x02f02b16, 0x03dddcca, 0x024c62ae, 0x029c868b, 0x01362d2a, 0x00674cf6, 0x00417946, 0x033a043d, 0x0032e70a}}, Y: Field{[10]uint32{0x002b691f, 0x0181fba1, 0x015db242, 0x017ef4af, 0x01834bea, 0x02721674, 0x013ac479, 0x001daf7b, 0x02f2233f, 0x0007f19f}}},
+ {X: Field{[10]uint32{0x029234f0, 0x028c6f4b, 0x01e856ef, 0x015eaf06, 0x035effa9, 0x0026f34e, 0x0349695e, 0x01c1c0c8, 0x0058b7bf, 0x003853ca}}, Y: Field{[10]uint32{0x00e08bdb, 0x03457937, 0x01761f3c, 0x00352a25, 0x02cf8cbf, 0x00357fc1, 0x03cbc258, 0x03f4e620, 0x009dd3f3, 0x000f8139}}},
+ {X: Field{[10]uint32{0x03550d82, 0x02dce221, 0x01e010d7, 0x03b16102, 0x0274810d, 0x025ffc09, 0x0078113c, 0x02e38c33, 0x037b1c27, 0x00055afa}}, Y: Field{[10]uint32{0x00bc5371, 0x009ea464, 0x0017b16e, 0x0318305b, 0x013a8e92, 0x0164e664, 0x02adf2fd, 0x01bb20d4, 0x030a8021, 0x0031c45c}}},
+ {X: Field{[10]uint32{0x0055d600, 0x0262d6cb, 0x013557b7, 0x0267e00e, 0x01a24a33, 0x028b76a8, 0x000e4959, 0x01a1912e, 0x03e6b9b4, 0x003797a9}}, Y: Field{[10]uint32{0x00d48ee8, 0x00f18563, 0x037d53a0, 0x019c8adf, 0x02b9b1de, 0x0060b354, 0x00a9d24e, 0x008f4b70, 0x0027e6a8, 0x00224068}}},
+ {X: Field{[10]uint32{0x0017c3c7, 0x02e78ffb, 0x01adeb79, 0x005284a0, 0x00aea074, 0x02cafc3b, 0x037312e7, 0x03b51896, 0x03688bfa, 0x0023b774}}, Y: Field{[10]uint32{0x0155da7b, 0x03b6db1e, 0x032316d8, 0x02c5713d, 0x0359b885, 0x0088f95e, 0x00a48a89, 0x0074d357, 0x02f92617, 0x000b6d0e}}},
+ {X: Field{[10]uint32{0x00b1d4e3, 0x02b4f5fc, 0x02b85fb2, 0x003fbe57, 0x0187872e, 0x0088dfb6, 0x02489ae2, 0x03477a3e, 0x036a665a, 0x001725c6}}, Y: Field{[10]uint32{0x038b1f66, 0x031a4e97, 0x039a6c4f, 0x01ecc0b4, 0x01aa8d4d, 0x00ae8076, 0x0332ff74, 0x02bdbc2b, 0x019837c2, 0x00135c7d}}},
+ {X: Field{[10]uint32{0x02b9e228, 0x03edc291, 0x0076885c, 0x03bcd095, 0x01bd3586, 0x00aa3c73, 0x0366589a, 0x00adab56, 0x013c2821, 0x003b7ec9}}, Y: Field{[10]uint32{0x02616c00, 0x02ca892c, 0x00c1d7f7, 0x0380944d, 0x02594e42, 0x03cc18a4, 0x00b26b84, 0x007da6e3, 0x0208b7e8, 0x000f96d9}}},
+ {X: Field{[10]uint32{0x01525c13, 0x0315adf7, 0x03384737, 0x031acb19, 0x03d2373c, 0x00895d2e, 0x0163dd4e, 0x01dcb36c, 0x024ae127, 0x0010e57c}}, Y: Field{[10]uint32{0x00103526, 0x02f99304, 0x0047a819, 0x037006d1, 0x00676581, 0x03dce55d, 0x0096913d, 0x0030b192, 0x03254c80, 0x002eb1b9}}},
+ {X: Field{[10]uint32{0x006866f5, 0x03c3fc65, 0x023eb182, 0x014d7d8a, 0x038c7823, 0x017d6a1f, 0x0113b64b, 0x019adfe2, 0x02d573a7, 0x00204402}}, Y: Field{[10]uint32{0x01a00c73, 0x02d05c3a, 0x029c9d28, 0x02ea61c2, 0x01c6afb8, 0x01477675, 0x0068f7d0, 0x00226674, 0x016e325b, 0x0014b2b0}}},
+ {X: Field{[10]uint32{0x0395120f, 0x008d1efa, 0x02e407f7, 0x017b9777, 0x01dee3a0, 0x0285085b, 0x02358c3a, 0x020519ab, 0x01514116, 0x003f4e81}}, Y: Field{[10]uint32{0x028ee5b7, 0x01ef34f6, 0x03250e4c, 0x001d6339, 0x0011a3c6, 0x01f812c8, 0x01b7b88b, 0x02c4aae2, 0x030d45ce, 0x000abcbc}}},
+ {X: Field{[10]uint32{0x02435ff9, 0x03f0fbf9, 0x018fa4e3, 0x00caaf46, 0x0276d1a0, 0x0285f5b0, 0x0305b6df, 0x03bbe8ff, 0x0358a7ec, 0x0005e956}}, Y: Field{[10]uint32{0x01574d4f, 0x026fdc6e, 0x02240bc9, 0x02915f81, 0x02418f35, 0x01c7c14d, 0x01cee72e, 0x019f043f, 0x0158a3ad, 0x0035c9ce}}},
+ {X: Field{[10]uint32{0x03789b6d, 0x02d0224e, 0x0003bc49, 0x00157b5c, 0x02793fd0, 0x0057a2c8, 0x01c73aee, 0x017a8231, 0x03b8e2ca, 0x0021c32d}}, Y: Field{[10]uint32{0x03e67aa3, 0x003b8106, 0x01cc6a7b, 0x03b2b542, 0x0104badb, 0x0089912a, 0x017a9bce, 0x0072bc9b, 0x03407b70, 0x0030cf22}}},
+ {X: Field{[10]uint32{0x0271f8a7, 0x00b306d3, 0x00897545, 0x00db6039, 0x03ffbf7c, 0x01432829, 0x0053c89a, 0x03bc02b7, 0x01fcdc46, 0x003e5471}}, Y: Field{[10]uint32{0x0392c95f, 0x0081ce31, 0x02648751, 0x02495e4b, 0x01c1705b, 0x0137e796, 0x0064d7d2, 0x033090c2, 0x00217849, 0x001ab8be}}},
+ {X: Field{[10]uint32{0x02a0caf1, 0x01240b25, 0x02d6131e, 0x00a858df, 0x036cbd83, 0x0062b68f, 0x011bb06a, 0x0319dab8, 0x037f3b92, 0x002bae01}}, Y: Field{[10]uint32{0x03cc1e35, 0x00cb87ab, 0x00cfde02, 0x01f42cdf, 0x036c8a6d, 0x02fcc5ff, 0x0275fb98, 0x0290c253, 0x011df5d4, 0x000a7d07}}},
+ {X: Field{[10]uint32{0x013b78f9, 0x0080d7cc, 0x0260cb9d, 0x022d6577, 0x038482b7, 0x036161f0, 0x0118a7e5, 0x00b9601b, 0x01975d2f, 0x00351bd3}}, Y: Field{[10]uint32{0x006392f0, 0x00d246ba, 0x0233c105, 0x02650c5b, 0x02f704e1, 0x00c7fb90, 0x02154ef0, 0x0045d8e5, 0x01aa3bdc, 0x002575e0}}},
+ {X: Field{[10]uint32{0x0229b201, 0x0297c71e, 0x02eaf4f3, 0x025dcf1d, 0x03af810b, 0x0126e7b0, 0x021b54ac, 0x03627cb8, 0x03444b4b, 0x00001abe}}, Y: Field{[10]uint32{0x02bf932f, 0x0186089b, 0x0334eaf0, 0x00342fb4, 0x0364db46, 0x00e22acd, 0x00ed90d1, 0x02d3384d, 0x001fd7d3, 0x000d40a4}}},
+ {X: Field{[10]uint32{0x03d86976, 0x00bdfb7a, 0x00394093, 0x01533ebe, 0x01e66349, 0x0161ebd7, 0x03f60869, 0x005c0e9e, 0x0182a38b, 0x0017c0b9}}, Y: Field{[10]uint32{0x017afec2, 0x01a8014b, 0x00a7def4, 0x00328ada, 0x02ccfa5d, 0x0102e3f8, 0x00b06bf7, 0x029e5ac9, 0x00de92f3, 0x0028121f}}},
+ {X: Field{[10]uint32{0x020599fe, 0x014b4e82, 0x02e33c66, 0x01d67155, 0x03ad70eb, 0x00d5199f, 0x007b885f, 0x00b3b568, 0x00826043, 0x0009909d}}, Y: Field{[10]uint32{0x0028ce85, 0x03e163ae, 0x00c62949, 0x033db811, 0x03a63867, 0x00d0114e, 0x02ea7379, 0x00e0bf5d, 0x00fe2560, 0x0004648e}}},
+ {X: Field{[10]uint32{0x029f91dc, 0x01999811, 0x037ff2cd, 0x029f8796, 0x014f03a5, 0x017a0dfb, 0x0319a7dd, 0x02b7694a, 0x025ad327, 0x001aca8f}}, Y: Field{[10]uint32{0x0254c6d9, 0x0012f3a2, 0x0257a22f, 0x0197a35f, 0x01354ed2, 0x036a7a51, 0x03365601, 0x020be83c, 0x012606b4, 0x000be7d1}}},
+ {X: Field{[10]uint32{0x035daa79, 0x000d1710, 0x03dc4fcc, 0x01df5d25, 0x02e5fbaf, 0x03bc4fa2, 0x010934dd, 0x013eeaac, 0x008b7e21, 0x0009622e}}, Y: Field{[10]uint32{0x01435bbf, 0x02f04531, 0x035e151e, 0x013eb2e8, 0x0261ca64, 0x03c69476, 0x03f142ce, 0x01b53235, 0x010bd3ba, 0x000f973e}}},
+ {X: Field{[10]uint32{0x02551a93, 0x0173fe77, 0x03fcbcff, 0x011b0830, 0x02e4e3d8, 0x02805012, 0x00178b40, 0x00bbbfea, 0x01469285, 0x00365210}}, Y: Field{[10]uint32{0x02a6d5a4, 0x020962e5, 0x024ccdbb, 0x02f65a61, 0x0213ea0a, 0x02b66618, 0x00a12196, 0x03109d0d, 0x017fe628, 0x00356c3f}}},
+ {X: Field{[10]uint32{0x030de2ff, 0x02713a8e, 0x025eb9fe, 0x01e19f3b, 0x005ccc1e, 0x02dbd1d5, 0x0364b1c9, 0x00821c32, 0x03dc3a2f, 0x00173e07}}, Y: Field{[10]uint32{0x01bc0d7d, 0x023ee305, 0x031131b7, 0x0094036b, 0x01e7ff31, 0x03b1cd1c, 0x01dc7005, 0x023977df, 0x031cf6bb, 0x00382c2a}}},
+ {X: Field{[10]uint32{0x03e879a7, 0x01999836, 0x023203b8, 0x01c459de, 0x00f8ed24, 0x004cb1a5, 0x00b3f174, 0x03f6d5c1, 0x037eb719, 0x00106d3b}}, Y: Field{[10]uint32{0x0221c85f, 0x0024ee0d, 0x0081ae12, 0x02a8722a, 0x009f44c2, 0x03ab0669, 0x028b459e, 0x0088d736, 0x01b1cbae, 0x0029bf99}}},
+ {X: Field{[10]uint32{0x03117af7, 0x01c26a6e, 0x03bdc5c2, 0x00fd01bc, 0x007a4c0a, 0x019013b2, 0x01d16918, 0x02478aa3, 0x032c41f6, 0x0010fb55}}, Y: Field{[10]uint32{0x02481da3, 0x03481cfe, 0x03ac3fd4, 0x024c36be, 0x0390a2b0, 0x02f9351d, 0x02cbbab7, 0x000cd1ae, 0x01b890b4, 0x002dee78}}},
+ {X: Field{[10]uint32{0x03397de3, 0x00e39186, 0x02e421c3, 0x0107a17e, 0x0281722b, 0x00bc6557, 0x00bb5260, 0x021a98c5, 0x02192230, 0x00138042}}, Y: Field{[10]uint32{0x03a65fa2, 0x016689fa, 0x02ec4a61, 0x038dc311, 0x00283b44, 0x02f42ee3, 0x0076e7b3, 0x017b6112, 0x011c0347, 0x003c34fc}}},
+ {X: Field{[10]uint32{0x0211f36b, 0x03510bfb, 0x01e2241d, 0x00a9f4d5, 0x0045e15d, 0x007b7361, 0x03c385e8, 0x01af3136, 0x00bb7fc8, 0x002cd827}}, Y: Field{[10]uint32{0x009c5f68, 0x00643237, 0x018e20e6, 0x006aa85a, 0x00c30891, 0x01deeea2, 0x00017dc9, 0x00d3fe01, 0x01aca3df, 0x002181f9}}},
+ {X: Field{[10]uint32{0x03965b4e, 0x01b90fb7, 0x009d1df9, 0x02dac9c9, 0x02d1bdd6, 0x036c4497, 0x0168cdf6, 0x03ef4def, 0x00b20543, 0x00111798}}, Y: Field{[10]uint32{0x03715fd1, 0x0373c2f1, 0x025b00b5, 0x0148a1e9, 0x03c65f8b, 0x0248b9c4, 0x03fdc7cf, 0x02d1eafa, 0x018a8c4a, 0x00297e91}}},
+ {X: Field{[10]uint32{0x00f50fc9, 0x02ed90c4, 0x0364cf9d, 0x01278032, 0x01be875b, 0x03c53062, 0x0359a7be, 0x03267e1a, 0x02279264, 0x001c27e0}}, Y: Field{[10]uint32{0x00960d10, 0x00540c56, 0x0362883f, 0x03ffeaab, 0x013d4903, 0x01a39379, 0x029064b4, 0x034afa29, 0x03f0cd28, 0x0005a009}}},
+ {X: Field{[10]uint32{0x01fb4ba3, 0x019ffe4a, 0x00cdbe15, 0x017befc6, 0x008a2e9d, 0x00ccfc87, 0x012e725a, 0x00902e89, 0x000dcbd1, 0x0018aa88}}, Y: Field{[10]uint32{0x020a1347, 0x038fca27, 0x021b7b18, 0x00ac4b7b, 0x001ec328, 0x010f906b, 0x0106b468, 0x02f6f12e, 0x016c7017, 0x00066abf}}},
+ {X: Field{[10]uint32{0x0082c09e, 0x03c42b2e, 0x02e11f38, 0x01ff2206, 0x01e12398, 0x000b8aae, 0x01f23898, 0x01191bea, 0x01588ed5, 0x000ae9ce}}, Y: Field{[10]uint32{0x035a25a6, 0x03cf848d, 0x00423721, 0x024ddd46, 0x03d8f8a1, 0x012004d4, 0x02cc45d3, 0x0262bbe1, 0x021c9c0a, 0x003cdf6a}}},
+ {X: Field{[10]uint32{0x01005de8, 0x00539bde, 0x02397073, 0x0380d64a, 0x01e266e9, 0x02d677f8, 0x01c0f549, 0x02da6ab9, 0x01cce8fb, 0x00219cae}}, Y: Field{[10]uint32{0x0305af65, 0x025ea1a6, 0x01aa399a, 0x01d699ad, 0x02c411e8, 0x03efe7ab, 0x00aac680, 0x0071e6b7, 0x036aefb6, 0x00083611}}},
+ {X: Field{[10]uint32{0x01ab6ab5, 0x015c7a2f, 0x000eda26, 0x03984ccc, 0x031f32be, 0x017b9705, 0x03dbac10, 0x00a665e7, 0x00028420, 0x000cd32c}}, Y: Field{[10]uint32{0x02a574d4, 0x01686216, 0x0038d96e, 0x02d92759, 0x00e4e972, 0x01e7172e, 0x0345bfd5, 0x021e3d1a, 0x019f3da7, 0x002209f6}}},
+ {X: Field{[10]uint32{0x01ac6d4d, 0x03c8a68d, 0x01afe602, 0x01391efc, 0x00e9f25f, 0x03d93e07, 0x00cad6a2, 0x03b01cd5, 0x0207d260, 0x000cacc3}}, Y: Field{[10]uint32{0x003c0427, 0x01821d0f, 0x03941856, 0x0223cc18, 0x025c5e36, 0x0049b113, 0x02904181, 0x0241e1bc, 0x030d64ee, 0x001c7ff3}}},
+ {X: Field{[10]uint32{0x039a8451, 0x00798028, 0x03a05076, 0x000970e3, 0x033b5ce4, 0x0267a6fe, 0x02401ff2, 0x01398d0f, 0x02587a4b, 0x00394265}}, Y: Field{[10]uint32{0x03bb2ece, 0x00b1196c, 0x03241f13, 0x0059c3f1, 0x00683a39, 0x031acce0, 0x02acccf5, 0x026a1a53, 0x02a86542, 0x001ec0e0}}},
+ {X: Field{[10]uint32{0x01d6477d, 0x01ba4c39, 0x026abd31, 0x0084a76d, 0x01ca6841, 0x02cf5e1b, 0x02ea0353, 0x00e6f382, 0x004c2bf5, 0x002ce1cb}}, Y: Field{[10]uint32{0x0101e285, 0x01342402, 0x034f9242, 0x01c48b43, 0x0159391c, 0x02775058, 0x037ed1fa, 0x0321bcec, 0x00afe4c8, 0x0001f381}}},
+ {X: Field{[10]uint32{0x0135d07b, 0x0101b7a6, 0x00908f3b, 0x01d28b7e, 0x0006095e, 0x027d3106, 0x0014d964, 0x038eacb9, 0x03df9156, 0x0034ad5b}}, Y: Field{[10]uint32{0x03e3b23f, 0x00ed403b, 0x012aaadc, 0x02bcdc55, 0x03b06a33, 0x011aa397, 0x00b49259, 0x02315aa1, 0x001b6766, 0x00110f0b}}},
+ {X: Field{[10]uint32{0x037fbacb, 0x02c56a7c, 0x0208115d, 0x03f58ac2, 0x034e8288, 0x0327d06c, 0x03f32e1e, 0x031d9648, 0x027e1074, 0x0003da61}}, Y: Field{[10]uint32{0x013fca16, 0x01417190, 0x00e58cd0, 0x039dbf74, 0x0368709b, 0x01c6708a, 0x0204c6ed, 0x02945a73, 0x02252a11, 0x003f5b1b}}},
+ {X: Field{[10]uint32{0x01e64988, 0x01c362ae, 0x02579626, 0x0261556d, 0x00cae238, 0x0223f33b, 0x00778c86, 0x004706b6, 0x00b4a9ab, 0x002f060c}}, Y: Field{[10]uint32{0x022e3c81, 0x0256b130, 0x01ea5b6d, 0x032c4b6e, 0x028e95cd, 0x00f4323c, 0x039a0faf, 0x0184cc65, 0x0089f3c4, 0x002d8910}}},
+ {X: Field{[10]uint32{0x038dbafc, 0x0392d1fc, 0x003b7445, 0x007a887d, 0x02126cfa, 0x03357ee4, 0x004bbe83, 0x027f6a63, 0x0221dc72, 0x003eaeab}}, Y: Field{[10]uint32{0x002d8cdc, 0x00cd8016, 0x01fbcc4c, 0x02eacb02, 0x03177ce1, 0x035abb67, 0x03513b3e, 0x0160cb1c, 0x03756446, 0x0006d5a5}}},
+ {X: Field{[10]uint32{0x011f8bd4, 0x00f65b5e, 0x0157b547, 0x000c85b7, 0x03bcd3fc, 0x00923638, 0x012497ea, 0x0130f7e4, 0x01014d5d, 0x0024ce18}}, Y: Field{[10]uint32{0x00936725, 0x00c3e8db, 0x02d951d6, 0x00ae3a01, 0x019e57f2, 0x0129ab5c, 0x033add54, 0x0058f13f, 0x016ac141, 0x000f63f2}}},
+ {X: Field{[10]uint32{0x02fd07f8, 0x02a0ffa9, 0x007f2094, 0x00934c05, 0x02da0a43, 0x031ac61b, 0x0146b8ee, 0x00a08165, 0x015f85c4, 0x00314c4b}}, Y: Field{[10]uint32{0x01d2992f, 0x03e01b11, 0x0251beda, 0x03a2cd6d, 0x00332898, 0x035511cd, 0x03be12c8, 0x001d5948, 0x022a79ba, 0x003e2b9b}}},
+ {X: Field{[10]uint32{0x0203b057, 0x01202d7c, 0x03388558, 0x00a046a9, 0x01b73b11, 0x02808bd0, 0x0375c4dd, 0x00bd01b6, 0x009652c5, 0x002823c9}}, Y: Field{[10]uint32{0x033eb2e5, 0x0371d14b, 0x00ccc845, 0x0094df13, 0x02191d7a, 0x03b3f8f2, 0x01aa9251, 0x0387657a, 0x03de9ab5, 0x0028e5b1}}},
+ {X: Field{[10]uint32{0x00f634df, 0x01792f50, 0x0205bc52, 0x02d626e2, 0x02a036e0, 0x00289469, 0x034b34f0, 0x01be9829, 0x030fe8df, 0x0024f54c}}, Y: Field{[10]uint32{0x01838756, 0x031582dc, 0x03a08f5a, 0x019df454, 0x000c4df5, 0x0321f68a, 0x02774f77, 0x00939575, 0x02ea10f4, 0x0032857e}}},
+ {X: Field{[10]uint32{0x02b51fa2, 0x0157e4aa, 0x024f6170, 0x004c3c16, 0x005c35b8, 0x03d94844, 0x010a9941, 0x02dcafa1, 0x03ccdfca, 0x0001188a}}, Y: Field{[10]uint32{0x03ca2d4f, 0x02d07a75, 0x01a8cd29, 0x02918259, 0x00e883d2, 0x0256d4f2, 0x01cd2456, 0x02c95b49, 0x002d31ee, 0x0036581c}}},
+ {X: Field{[10]uint32{0x00ef9fe5, 0x03b821b8, 0x00d8807a, 0x00fb45f2, 0x010fb6c8, 0x004e30c3, 0x03a58728, 0x02176652, 0x036c7dd8, 0x0028c980}}, Y: Field{[10]uint32{0x02cb9bf7, 0x00f359cc, 0x01a53489, 0x03871d79, 0x03456a6c, 0x01da2685, 0x00aafcde, 0x028554c7, 0x02693719, 0x002d1973}}},
+ {X: Field{[10]uint32{0x02ef77a5, 0x0082d69f, 0x00946b1d, 0x02a6129b, 0x03f3d5e7, 0x03e97154, 0x030c887b, 0x01f9e5c6, 0x017e1963, 0x0008d510}}, Y: Field{[10]uint32{0x01f4bd4b, 0x027d22ca, 0x02d4d216, 0x014cf3d3, 0x01ea7400, 0x03cd3d02, 0x014fbf99, 0x034f2ec9, 0x0321b6ea, 0x002056a5}}},
+ {X: Field{[10]uint32{0x03ce6fca, 0x01f322ed, 0x01f9f2b0, 0x00677757, 0x033a4078, 0x008e0435, 0x01a746b0, 0x005d3d73, 0x016dfc53, 0x00274d1b}}, Y: Field{[10]uint32{0x0376c806, 0x00acd5e5, 0x029b9851, 0x000f7c23, 0x014a199b, 0x007a4154, 0x01a8ff9f, 0x00f97295, 0x006b6429, 0x0026db30}}},
+ {X: Field{[10]uint32{0x0148dd01, 0x028ccc3f, 0x00564bb5, 0x02d01542, 0x03bba638, 0x03af8843, 0x01f000ad, 0x029edfe5, 0x038ec643, 0x001cf20a}}, Y: Field{[10]uint32{0x0005b614, 0x03c4da42, 0x02f075ff, 0x01737c35, 0x027d2acf, 0x0132caf6, 0x035f61b8, 0x017187f8, 0x0299a088, 0x003ffc55}}},
+ {X: Field{[10]uint32{0x00798ac8, 0x00e72fff, 0x011afc9b, 0x02fdb28a, 0x010f2d29, 0x02141ae5, 0x01316728, 0x0357473e, 0x01d5a0b2, 0x0024091a}}, Y: Field{[10]uint32{0x03c3ade4, 0x00f7a247, 0x030d4fa6, 0x036eafa2, 0x03cd78ad, 0x032bf93f, 0x02378bff, 0x01da74d0, 0x0011d71c, 0x0000d5b4}}},
+ {X: Field{[10]uint32{0x03110637, 0x03f88f87, 0x00371b1e, 0x03a7f540, 0x00dc4013, 0x0066e251, 0x0123afb8, 0x021bc14d, 0x00fb3a0c, 0x00399c28}}, Y: Field{[10]uint32{0x020b31b8, 0x019677c9, 0x0250a9bf, 0x0382772c, 0x03272557, 0x001f967b, 0x03db5a3d, 0x0372c855, 0x036bcd13, 0x00021a44}}},
+ {X: Field{[10]uint32{0x0205c395, 0x034f56e2, 0x005fcb9a, 0x03961255, 0x01b57f11, 0x033ee732, 0x0368e270, 0x02079ac3, 0x006d5265, 0x003cffbc}}, Y: Field{[10]uint32{0x01b8f553, 0x01d55106, 0x012f4ff3, 0x034412c2, 0x01570752, 0x03e97eef, 0x0045176e, 0x0083b313, 0x01971444, 0x000cacba}}},
+ {X: Field{[10]uint32{0x016a05bd, 0x02974e4e, 0x02cac70c, 0x02711c74, 0x00f942c0, 0x03306762, 0x00fc28a8, 0x03611158, 0x02633958, 0x001ca8dd}}, Y: Field{[10]uint32{0x035ee1ad, 0x03d1521c, 0x03ba8503, 0x011834bd, 0x01729ce8, 0x000ba363, 0x004b3b84, 0x0041c3da, 0x030e6e12, 0x0037a6c6}}},
+ {X: Field{[10]uint32{0x005300b0, 0x00def620, 0x01ae22b6, 0x013ea133, 0x00417289, 0x0243379a, 0x019c3a81, 0x01f7bd04, 0x02d9c43b, 0x000e2de2}}, Y: Field{[10]uint32{0x03d01e6f, 0x039d2a2c, 0x01c8423d, 0x01a77214, 0x010de7cc, 0x02ffccba, 0x0204f175, 0x017d461c, 0x01676c4f, 0x00028605}}},
+ {X: Field{[10]uint32{0x0334752e, 0x00563fca, 0x013af68e, 0x0224232f, 0x03540e2e, 0x00653ec8, 0x026fac9e, 0x01f14db1, 0x02c81d2e, 0x0036e5a2}}, Y: Field{[10]uint32{0x02b48a0a, 0x03969cea, 0x00769a24, 0x023bf453, 0x0104179e, 0x018d1c9c, 0x02b4af0a, 0x025caeb1, 0x03ab79d9, 0x00135715}}},
+ {X: Field{[10]uint32{0x00aad318, 0x0174d9ea, 0x02435a14, 0x03e65f1c, 0x02505dd4, 0x007b4d6c, 0x0114f28c, 0x01360dc4, 0x02792d3a, 0x000ab385}}, Y: Field{[10]uint32{0x0226f625, 0x0239cfcd, 0x03539cc8, 0x03be86b8, 0x010405b0, 0x01a17db4, 0x0063b87f, 0x01d3933b, 0x012a2468, 0x0014c50c}}},
+ {X: Field{[10]uint32{0x01bae108, 0x03e4ebcf, 0x0277e852, 0x0060958c, 0x00bb1fda, 0x0189c9f1, 0x00a46008, 0x0037b76e, 0x02690c39, 0x000cb603}}, Y: Field{[10]uint32{0x00dc7c07, 0x0155ea58, 0x01d08cbd, 0x0048f67c, 0x03bc1c3e, 0x0207df36, 0x03cb3f81, 0x0341a9b4, 0x016fea89, 0x0000f1f6}}},
+ {X: Field{[10]uint32{0x02ee3908, 0x0229021d, 0x01521d8e, 0x00379497, 0x03f1bf05, 0x01176cf2, 0x00e61a29, 0x01ad018a, 0x028ae7fe, 0x000fbd27}}, Y: Field{[10]uint32{0x01a123f2, 0x00778200, 0x0092bd3d, 0x009d630f, 0x033ff72d, 0x018c456b, 0x0031b54d, 0x017ec935, 0x035c62f4, 0x0010e071}}},
+ {X: Field{[10]uint32{0x009722da, 0x009d508f, 0x006405aa, 0x03996797, 0x000e280e, 0x032235ec, 0x03517d41, 0x00b340e6, 0x00d5cdb8, 0x00214e02}}, Y: Field{[10]uint32{0x037e8f5e, 0x0308a7d7, 0x0200fb4d, 0x000e4b50, 0x023ed18d, 0x005c8890, 0x00a652f8, 0x025899a6, 0x00449b2a, 0x003059df}}},
+ {X: Field{[10]uint32{0x03c8584f, 0x0076de07, 0x02f4958c, 0x03cca6b7, 0x03306ee4, 0x02187f32, 0x03520bd8, 0x0017fa15, 0x0083490c, 0x0015cbf5}}, Y: Field{[10]uint32{0x0013f4a5, 0x00000d8d, 0x03ca0be3, 0x0156cc7a, 0x00d38e91, 0x02ced865, 0x00107c06, 0x008c0b3c, 0x01061039, 0x0020ab32}}},
+ {X: Field{[10]uint32{0x036e1386, 0x024d60cd, 0x0248138c, 0x01135164, 0x00fa7713, 0x013655b9, 0x02a9a2dd, 0x0328c5d6, 0x03b29aa8, 0x002c72ea}}, Y: Field{[10]uint32{0x02292ec9, 0x0234b759, 0x015fcbc5, 0x03d80300, 0x01265cb2, 0x01050270, 0x021de030, 0x03f7c1ae, 0x00f17f9a, 0x00222330}}},
+ {X: Field{[10]uint32{0x036bab20, 0x02eee60b, 0x001a16dd, 0x00359c1c, 0x012c5c96, 0x01269ba0, 0x000a65a1, 0x00c4d1d6, 0x03924239, 0x003e15b2}}, Y: Field{[10]uint32{0x00536674, 0x02540452, 0x03869c55, 0x030b5758, 0x0377d9d6, 0x01704477, 0x01f580f6, 0x0003a664, 0x01ba192c, 0x0030cd44}}},
+ {X: Field{[10]uint32{0x0273920e, 0x03f0e9fb, 0x00e230ff, 0x03edb04a, 0x039eed92, 0x015aeece, 0x0042887b, 0x004a78b0, 0x00d4773e, 0x00385807}}, Y: Field{[10]uint32{0x001054ca, 0x02805bcc, 0x00ec96f4, 0x02328142, 0x000a7864, 0x026e87f3, 0x0247c714, 0x01de5bb8, 0x00c8a38c, 0x000601d2}}},
+ {X: Field{[10]uint32{0x027c7e72, 0x024a38cd, 0x01534a98, 0x02ae5d22, 0x00e8b37c, 0x0032fc76, 0x02206a5b, 0x0185dd72, 0x00d45ffb, 0x00263b88}}, Y: Field{[10]uint32{0x0273c610, 0x02391958, 0x03c30697, 0x03811486, 0x01854b70, 0x023f1017, 0x02b5e6e8, 0x036d45a2, 0x00e1ea42, 0x000b7d2b}}},
+ {X: Field{[10]uint32{0x01fe179f, 0x02b53bb7, 0x00246ec0, 0x0107d6b3, 0x035417bc, 0x03b74784, 0x01cfe95b, 0x024168c7, 0x0257acde, 0x0011e5b2}}, Y: Field{[10]uint32{0x00a367a8, 0x0258a87c, 0x0015f8ff, 0x028d18fe, 0x015bc565, 0x0159308e, 0x03637e59, 0x00e00acd, 0x0122395a, 0x001d04fd}}},
+ {X: Field{[10]uint32{0x02341200, 0x01a2f746, 0x01d4006c, 0x00da6aef, 0x03cfd555, 0x01b1f7e7, 0x03627fd5, 0x02c2e356, 0x006438ad, 0x002cd9f2}}, Y: Field{[10]uint32{0x028fba51, 0x0092678b, 0x0349dfd2, 0x03d72715, 0x02b4986c, 0x0089a1c0, 0x002f3657, 0x03a059e6, 0x03440b99, 0x00300d91}}},
+ {X: Field{[10]uint32{0x00914d29, 0x01fd29e2, 0x01386a74, 0x00293c9f, 0x00e74076, 0x00837a11, 0x02244c00, 0x037b3df8, 0x004b723d, 0x0036cda2}}, Y: Field{[10]uint32{0x0179e023, 0x03ccccdf, 0x023b40e5, 0x0093f683, 0x03fef90e, 0x037bc3ca, 0x01e07507, 0x00e8f0a8, 0x03cc2a74, 0x0022b921}}},
+ {X: Field{[10]uint32{0x01a316c4, 0x0171a826, 0x03123ccf, 0x00b9b1b0, 0x0176b473, 0x007bbd3e, 0x02458213, 0x0084aea3, 0x0018f71c, 0x001965c6}}, Y: Field{[10]uint32{0x013604db, 0x001dd538, 0x035db4cd, 0x00c71c0d, 0x01526a28, 0x00dd8446, 0x0087f391, 0x01434cec, 0x03913533, 0x001057d9}}},
+ {X: Field{[10]uint32{0x00ebd65a, 0x0332b1d8, 0x01338fcb, 0x00fe5868, 0x01905390, 0x01fadb36, 0x0182a639, 0x03d2c908, 0x033a13a8, 0x003cbd3a}}, Y: Field{[10]uint32{0x00ef9ca8, 0x0032bf82, 0x00b6e795, 0x00fce8ef, 0x0018811b, 0x03aae3af, 0x02dc8b74, 0x02535c82, 0x027b667e, 0x00295d75}}},
+ {X: Field{[10]uint32{0x01113a49, 0x01ad34c7, 0x00a47e8c, 0x01df301a, 0x03884b3f, 0x034f249f, 0x028fa51f, 0x03c318cc, 0x020da058, 0x0028939e}}, Y: Field{[10]uint32{0x010ef78b, 0x01c84bd1, 0x00c81a9a, 0x00559179, 0x010bcee6, 0x00a5c675, 0x032fe3f8, 0x0295a67a, 0x003079ac, 0x002fa36e}}},
+ {X: Field{[10]uint32{0x01efad5a, 0x0076dc90, 0x024b8098, 0x029d23c2, 0x0142212d, 0x03af5660, 0x036cc325, 0x005e5df6, 0x00cb77e1, 0x0039668f}}, Y: Field{[10]uint32{0x00a800d9, 0x030b5381, 0x012999d4, 0x005a9281, 0x00d69034, 0x00e268b6, 0x00a10a22, 0x0099a330, 0x0145fdda, 0x002a381d}}},
+ {X: Field{[10]uint32{0x024b8f32, 0x03d8183f, 0x00e9f0da, 0x01d6aaa5, 0x01fc6c1a, 0x036afa72, 0x00721f93, 0x002f96fb, 0x0263a3c7, 0x000c646c}}, Y: Field{[10]uint32{0x01f38a96, 0x02c7e657, 0x00491717, 0x009d4f9d, 0x00c7af7b, 0x028f2eac, 0x01a87c4e, 0x026f1caa, 0x02cc1c7a, 0x000ce464}}},
+ {X: Field{[10]uint32{0x0187023a, 0x01e1d3e4, 0x014638b9, 0x0394f04e, 0x0012f408, 0x03a0e6c8, 0x0147e275, 0x0376c23f, 0x03c604f9, 0x0018f757}}, Y: Field{[10]uint32{0x0104bd9a, 0x00d72f21, 0x0239b84f, 0x00410588, 0x03067e09, 0x004bbdfb, 0x016cccfd, 0x02df9b51, 0x00b402e8, 0x0006bc12}}},
+ {X: Field{[10]uint32{0x031bcf13, 0x036fd2d9, 0x025c12d3, 0x01030ae3, 0x032e1d86, 0x03dd4712, 0x007229b7, 0x004bb32e, 0x0057cd83, 0x0002a4b9}}, Y: Field{[10]uint32{0x03fba768, 0x03ca4b97, 0x00b3f551, 0x013cf56d, 0x02be46ab, 0x0281f59c, 0x00492413, 0x03ad7461, 0x03565447, 0x0035ebb6}}},
+ {X: Field{[10]uint32{0x01b10495, 0x0375be0e, 0x035ba6c0, 0x0179617c, 0x004789f5, 0x013c02ed, 0x0320f021, 0x0274880a, 0x0170b9e0, 0x0007b9ae}}, Y: Field{[10]uint32{0x009e9462, 0x03443837, 0x032be3f8, 0x02ef5282, 0x019dcf73, 0x01894a21, 0x023c8a04, 0x03bbd746, 0x03eceff9, 0x001f2443}}},
+ {X: Field{[10]uint32{0x0306a76a, 0x03459663, 0x01cebe4f, 0x025cc0a1, 0x001abe9e, 0x00f4121c, 0x0328d7c4, 0x00655c14, 0x03b9c2ac, 0x002c6708}}, Y: Field{[10]uint32{0x03a38398, 0x016ca0cd, 0x00a49274, 0x01f34232, 0x01c60560, 0x038da791, 0x0380f8cf, 0x022dc1bc, 0x01bec07c, 0x001e6a04}}},
+ {X: Field{[10]uint32{0x014f49a5, 0x026bbcc0, 0x02016b1e, 0x0262e2ca, 0x014f3fbf, 0x0099a915, 0x00888f5e, 0x017f09f0, 0x039f9ed3, 0x000f0836}}, Y: Field{[10]uint32{0x03fbc4d5, 0x025438d6, 0x009ea7d8, 0x02d733d2, 0x029327c1, 0x02879684, 0x010815a4, 0x0398ebd8, 0x02943f29, 0x002eceb0}}},
+ {X: Field{[10]uint32{0x02ea4389, 0x0248b14b, 0x00014f6b, 0x03f0233a, 0x00efa29f, 0x034ce091, 0x02b59040, 0x01ba7913, 0x01bab474, 0x003f4733}}, Y: Field{[10]uint32{0x028df06e, 0x02080ca6, 0x0004097a, 0x014843db, 0x0373961a, 0x010f393a, 0x012439fc, 0x01be43e9, 0x01465214, 0x00384195}}},
+ {X: Field{[10]uint32{0x0364020c, 0x03682666, 0x03ab51e2, 0x00a636cd, 0x0183641a, 0x030ac35d, 0x0252dc73, 0x02e29bbc, 0x018eabde, 0x0038c3f4}}, Y: Field{[10]uint32{0x00dce88b, 0x0309304a, 0x01704cfb, 0x00a5abfa, 0x018e195d, 0x01c5bad0, 0x02bcab86, 0x03d20658, 0x02721824, 0x0012598d}}},
+ {X: Field{[10]uint32{0x015bda37, 0x0085f9d4, 0x00548e6e, 0x00001550, 0x015cd723, 0x00ea7702, 0x02ea7848, 0x03e4c386, 0x038926dd, 0x0012f07d}}, Y: Field{[10]uint32{0x0200ca69, 0x0133f374, 0x0047163a, 0x01b0a94b, 0x0336d8a2, 0x00d2f66a, 0x00bfa2e7, 0x006c0237, 0x02b695dc, 0x00259acc}}},
+ {X: Field{[10]uint32{0x00f036d4, 0x03ffa855, 0x0139aaff, 0x023b51ad, 0x009004f9, 0x03b3a6f1, 0x030f7d26, 0x012e2d03, 0x027b9c86, 0x0008f4f8}}, Y: Field{[10]uint32{0x02c0b05d, 0x01b1e522, 0x026c71b3, 0x02eca24a, 0x01b3dfef, 0x03054354, 0x00143d6a, 0x0289f331, 0x03ebf680, 0x002f9185}}},
+ {X: Field{[10]uint32{0x026009c0, 0x0392250f, 0x01aab56d, 0x02472db0, 0x004a5130, 0x01ded730, 0x02e0a894, 0x00edc3d1, 0x03d014cd, 0x000a2b72}}, Y: Field{[10]uint32{0x00e31601, 0x024b33bf, 0x00fdaf4a, 0x031cf7b5, 0x0025040d, 0x00233f93, 0x03250b46, 0x013328e3, 0x00387520, 0x001f126a}}},
+ {X: Field{[10]uint32{0x00a29d08, 0x03c867c7, 0x02a0cc86, 0x01ee9517, 0x00ea52ec, 0x003613d8, 0x0044ab87, 0x00208e94, 0x00b8a86f, 0x001dd821}}, Y: Field{[10]uint32{0x001c60db, 0x00d14c96, 0x00b2cd08, 0x01c9615c, 0x03def172, 0x027959f6, 0x010bc384, 0x034942d0, 0x02cb1048, 0x00182eef}}},
+ {X: Field{[10]uint32{0x028f2350, 0x03879f48, 0x035fbd4f, 0x02e7b5ab, 0x01e3db94, 0x01811254, 0x019667bc, 0x03bd2257, 0x020ffd32, 0x001177cb}}, Y: Field{[10]uint32{0x03eaf095, 0x035e4618, 0x0399473f, 0x032da2ec, 0x004de155, 0x010592e6, 0x024076ed, 0x03f819a7, 0x024b1a8c, 0x0029cc91}}},
+ {X: Field{[10]uint32{0x027dd7ea, 0x027c386f, 0x03ebe7f6, 0x03a1e0f3, 0x008ae9bb, 0x0124e8bf, 0x00bff80c, 0x03f47e9d, 0x036b46a5, 0x001a4125}}, Y: Field{[10]uint32{0x022c3e64, 0x01886bb2, 0x03cfd5ad, 0x0115799b, 0x0030f1df, 0x02802cd0, 0x0241a221, 0x0050d818, 0x01b8df9d, 0x0006741c}}},
+ {X: Field{[10]uint32{0x01aef659, 0x00a3a14a, 0x00f0bef5, 0x00d47ba0, 0x03e01def, 0x03a02603, 0x01e805c8, 0x0341d6a3, 0x0328f977, 0x00212761}}, Y: Field{[10]uint32{0x025bf428, 0x00c5652b, 0x006ffedf, 0x026bb1c9, 0x018042dd, 0x0301a743, 0x017adadb, 0x018a0ee7, 0x01c46c88, 0x00361255}}},
+ {X: Field{[10]uint32{0x032d58eb, 0x0319d191, 0x01281e27, 0x031fa9a1, 0x0054588d, 0x035d4d2b, 0x03facec8, 0x001b9839, 0x034c2345, 0x0038f592}}, Y: Field{[10]uint32{0x025a36eb, 0x007cd8eb, 0x030efbc6, 0x00e53265, 0x0011a9c8, 0x022ba966, 0x0047baf6, 0x00aa11d1, 0x013ccf82, 0x00128cab}}},
+ {X: Field{[10]uint32{0x0063bbaa, 0x021f54d5, 0x03ece0c7, 0x02aba484, 0x02889877, 0x02d9d8e6, 0x036f1323, 0x0168c466, 0x012857d1, 0x003d071e}}, Y: Field{[10]uint32{0x014d9328, 0x018140de, 0x016d07cc, 0x0239fa91, 0x00630c45, 0x014b6777, 0x00075941, 0x01315534, 0x010e00c8, 0x001cf3f3}}},
+ {X: Field{[10]uint32{0x01186079, 0x014bf5de, 0x0321d67f, 0x0071079e, 0x030e0cba, 0x02bb64e7, 0x03a4a02c, 0x02e13391, 0x0347047a, 0x00387485}}, Y: Field{[10]uint32{0x01b2b668, 0x006abf9f, 0x02f63af8, 0x019a6b24, 0x01fb26da, 0x0092a040, 0x01728a3e, 0x03028fb6, 0x0228aa4b, 0x0005ec2d}}},
+ {X: Field{[10]uint32{0x006ef1d8, 0x0239f736, 0x00c8095a, 0x012e34a4, 0x005d7ddb, 0x014ad36c, 0x009da2dd, 0x019e54c6, 0x018af8f8, 0x002a2800}}, Y: Field{[10]uint32{0x0026518b, 0x02ae9f5a, 0x00c17fc8, 0x035e72ad, 0x0225b927, 0x00d8208f, 0x0180c7e9, 0x02287b7e, 0x006c84b8, 0x0022ee58}}},
+ {X: Field{[10]uint32{0x036fffed, 0x03589fdc, 0x038f4cd8, 0x0384f7cc, 0x00e4e0c0, 0x003af698, 0x03a57c05, 0x0179136a, 0x02716ee0, 0x001ce0f1}}, Y: Field{[10]uint32{0x0289f0e0, 0x03625b23, 0x00ba004a, 0x01225487, 0x0338eafd, 0x031df6ab, 0x00cb973f, 0x0129d18e, 0x01465f16, 0x000ef72e}}},
+ {X: Field{[10]uint32{0x01372dfd, 0x023e42eb, 0x00c1e085, 0x03d01483, 0x031ca36a, 0x00216018, 0x03e64312, 0x02b25e5a, 0x021c8bc8, 0x00187e9f}}, Y: Field{[10]uint32{0x03eba33d, 0x00d121b0, 0x002078d6, 0x02c252c3, 0x00a5f646, 0x02210778, 0x0287909c, 0x039a50c8, 0x036836c3, 0x000fc359}}},
+ {X: Field{[10]uint32{0x02c4a740, 0x00c428ec, 0x0116d3cb, 0x01250efc, 0x00b4f143, 0x03d220aa, 0x0092defc, 0x03180664, 0x022bca0a, 0x002180a7}}, Y: Field{[10]uint32{0x001c2f7c, 0x018edf49, 0x00480154, 0x014f75c2, 0x00ef5f15, 0x004885b2, 0x0261cffd, 0x015bc3cc, 0x006ecd90, 0x002e2fa4}}},
+ {X: Field{[10]uint32{0x03ad95cc, 0x011d3013, 0x0390e2f6, 0x02c17f17, 0x0348c4a6, 0x0035ae6a, 0x01d6c4cd, 0x02921d62, 0x03e5912a, 0x00385cbd}}, Y: Field{[10]uint32{0x00acc401, 0x019cf702, 0x00290ea0, 0x01e54027, 0x010d7bfd, 0x022d935f, 0x019920ce, 0x003b4ee2, 0x03c12b0a, 0x003b6f48}}},
+ {X: Field{[10]uint32{0x02873494, 0x00df6f8c, 0x00616d1f, 0x01e335aa, 0x032d931c, 0x020e37a4, 0x03b22abf, 0x03f0922d, 0x028d322e, 0x001e61ae}}, Y: Field{[10]uint32{0x02a13634, 0x02f25a04, 0x0201ee6e, 0x034f4edf, 0x002420a5, 0x034a7f83, 0x01b75440, 0x001648c6, 0x03224c75, 0x001a4faa}}},
+ {X: Field{[10]uint32{0x01e00383, 0x02319738, 0x01d4603e, 0x034daa2a, 0x03400bb5, 0x034dac4c, 0x000a6d88, 0x01d9cdd8, 0x01384a72, 0x002e9650}}, Y: Field{[10]uint32{0x002ce557, 0x02676fcf, 0x019bd867, 0x0114bd88, 0x03d9c685, 0x00c4162f, 0x03fc9535, 0x0204ac89, 0x0228bc1b, 0x001d1bd3}}},
+ {X: Field{[10]uint32{0x00476c8f, 0x02be1a48, 0x006b9802, 0x035cb3c3, 0x036bf96c, 0x02c5de27, 0x02eeb77b, 0x02c45f21, 0x01c992d6, 0x00117fd0}}, Y: Field{[10]uint32{0x0002b59f, 0x035a5c88, 0x015cbec3, 0x021a1ff2, 0x004f522e, 0x009c59f6, 0x010c9e10, 0x038eb880, 0x01bf6422, 0x0024c93d}}},
+ {X: Field{[10]uint32{0x016ed68f, 0x00fb30f0, 0x02a7d9a9, 0x0293655d, 0x00d00bad, 0x02199bb5, 0x031c282e, 0x013681c5, 0x0235487a, 0x002eb5e7}}, Y: Field{[10]uint32{0x007b57d2, 0x0354371e, 0x029207a6, 0x005e40e2, 0x005b1535, 0x0076c335, 0x0202e129, 0x021290c6, 0x022eefb1, 0x00064e5e}}},
+ {X: Field{[10]uint32{0x023c8a41, 0x0100ef27, 0x01b79cfa, 0x00374d99, 0x0022cf89, 0x025d56ff, 0x004d5835, 0x01d7b183, 0x01072d88, 0x00377f88}}, Y: Field{[10]uint32{0x033f62e7, 0x00ad8211, 0x00d90ce2, 0x00fe1f04, 0x028dbe0d, 0x0230a21c, 0x015674c2, 0x002a2a48, 0x0117491d, 0x00318af6}}},
+ {X: Field{[10]uint32{0x027eb299, 0x0203b6d9, 0x03a64b11, 0x01a68f67, 0x00d75942, 0x03be7657, 0x00ccadfb, 0x0248fe5a, 0x0253c07f, 0x002497da}}, Y: Field{[10]uint32{0x01e7809c, 0x00e6582c, 0x010b7b29, 0x00e2e329, 0x0058f000, 0x03e73b92, 0x008b26b7, 0x006399bc, 0x00ff01f9, 0x0004203a}}},
+ {X: Field{[10]uint32{0x0320dd80, 0x01e2ea09, 0x00d0d878, 0x0341ac38, 0x0012768b, 0x007c0ebc, 0x025d2c7d, 0x000a0ce3, 0x01dda75f, 0x0030a392}}, Y: Field{[10]uint32{0x010db12b, 0x02116ad7, 0x00a98331, 0x02d35fda, 0x03ec5ae6, 0x0261f859, 0x0112c5b4, 0x02926f31, 0x0189c941, 0x0019c3e2}}},
+ {X: Field{[10]uint32{0x00837cbb, 0x03e1b28b, 0x006f37b9, 0x01235650, 0x02b21dae, 0x017a3816, 0x008c196d, 0x016fa206, 0x013e9503, 0x0001ea41}}, Y: Field{[10]uint32{0x003a7e1c, 0x00af43d1, 0x02352e7f, 0x03dbdfef, 0x026de026, 0x03425f5d, 0x00774e79, 0x0252de65, 0x008e8e76, 0x00103b82}}},
+ {X: Field{[10]uint32{0x02036aa2, 0x029e7f43, 0x01b956c6, 0x021686d8, 0x02e0b32c, 0x025986c5, 0x008ef81e, 0x00031536, 0x00eabfbb, 0x000cebde}}, Y: Field{[10]uint32{0x03cfd3c0, 0x01231a74, 0x00629d80, 0x022017bd, 0x03153319, 0x03215742, 0x01796440, 0x029e5b13, 0x02af0537, 0x001c4f9e}}},
+ {X: Field{[10]uint32{0x01583bd0, 0x0031c812, 0x0163df9a, 0x02901e5f, 0x031326df, 0x01b59d30, 0x02955739, 0x00f4cca5, 0x00145a3f, 0x00316234}}, Y: Field{[10]uint32{0x0053cdfa, 0x00c719ab, 0x020d7375, 0x009232bd, 0x027f7470, 0x03f4b35d, 0x02baa8fc, 0x0336b6ae, 0x03d16c67, 0x002d7033}}},
+ {X: Field{[10]uint32{0x0038d29e, 0x02ad48e0, 0x01d5a2f2, 0x00887c3b, 0x0397223f, 0x01924d06, 0x008ef12c, 0x010b19f1, 0x01edb937, 0x0025acf5}}, Y: Field{[10]uint32{0x00e44c4e, 0x007b032c, 0x016aa996, 0x015d2ca3, 0x01bf25fe, 0x0339ed3b, 0x019a2e64, 0x028174dc, 0x00aa38a3, 0x0036d1d7}}},
+ {X: Field{[10]uint32{0x0244f0c7, 0x0369dfd5, 0x02782a62, 0x010968a1, 0x001eea3a, 0x01198aa7, 0x00cb00b1, 0x013b9bec, 0x036e3d89, 0x00104bd2}}, Y: Field{[10]uint32{0x02a676fe, 0x026be1bd, 0x031d6f13, 0x0226300f, 0x01a8503e, 0x00e1d10a, 0x03de8139, 0x032016ff, 0x0236ab9b, 0x002a13bd}}},
+ {X: Field{[10]uint32{0x00563252, 0x01387eb9, 0x01049379, 0x0312270e, 0x0132fdfd, 0x00cb1063, 0x031421da, 0x00c0a14b, 0x0385c7b4, 0x00097c29}}, Y: Field{[10]uint32{0x0004e4bc, 0x009a20d8, 0x02334a02, 0x03d4771b, 0x02da716a, 0x03afbd01, 0x00953a3a, 0x0242d627, 0x010d4571, 0x003bfac2}}},
+ {X: Field{[10]uint32{0x01741c6f, 0x0356293b, 0x02cfde0b, 0x01610c9e, 0x03f02fed, 0x027a8f9f, 0x034403a4, 0x03ebd2b2, 0x02b7f367, 0x00143f52}}, Y: Field{[10]uint32{0x0146dd5f, 0x00c1f18f, 0x0207ea56, 0x033e81e5, 0x022d08ab, 0x02b6c70e, 0x020cb520, 0x03352194, 0x01a73c9d, 0x001e2af0}}},
+ {X: Field{[10]uint32{0x006a477a, 0x03efb441, 0x03313bbc, 0x007d2e53, 0x02c35762, 0x00c3c41f, 0x038fa664, 0x01fde4ce, 0x03d4cfaf, 0x00055d60}}, Y: Field{[10]uint32{0x017e8db5, 0x02737a8a, 0x02aaffc0, 0x02359674, 0x01fe35ed, 0x011b5216, 0x00d4355c, 0x0347f983, 0x0235ce8c, 0x0026a9ac}}},
+ {X: Field{[10]uint32{0x033300be, 0x00ef1296, 0x03494f4b, 0x037e2f9a, 0x02f2edce, 0x016cd65d, 0x00affc16, 0x00980f91, 0x03625d26, 0x000f112e}}, Y: Field{[10]uint32{0x00bc2535, 0x03b0afcf, 0x007b9079, 0x031c7fdc, 0x021ef0e8, 0x00166054, 0x00d45949, 0x00eae17b, 0x01616797, 0x00222c71}}},
+ {X: Field{[10]uint32{0x02298958, 0x0096e3ee, 0x01d935ee, 0x031b821f, 0x008fc5d9, 0x00fc8f31, 0x0371d193, 0x01ae5fcb, 0x024de160, 0x000c7509}}, Y: Field{[10]uint32{0x018251cb, 0x0004641c, 0x032c44ae, 0x02d8b98a, 0x00c8e41d, 0x021556e6, 0x025180c9, 0x007498a1, 0x01c0a3aa, 0x00118182}}},
+ {X: Field{[10]uint32{0x0103ad2f, 0x0091eb97, 0x03b78a87, 0x007602a3, 0x03352d1d, 0x037060d2, 0x02b206d3, 0x011c9182, 0x030a8ff1, 0x0007d547}}, Y: Field{[10]uint32{0x0116a6e3, 0x03a8cfb0, 0x03b32ecc, 0x02d94255, 0x00fcb97a, 0x000afb8d, 0x0144f818, 0x02c5236e, 0x0006a4c8, 0x0009094f}}},
+ {X: Field{[10]uint32{0x01cf333e, 0x02daed70, 0x003a87aa, 0x01ccaabb, 0x00206a1f, 0x03fd6a31, 0x03343119, 0x02101cc4, 0x021d27f0, 0x00378b13}}, Y: Field{[10]uint32{0x0195170d, 0x0173f8a0, 0x01a71c5a, 0x00ab2cb5, 0x019226ca, 0x007e9263, 0x03f4a8e4, 0x0334e8c7, 0x03a140fe, 0x0037204e}}},
+ {X: Field{[10]uint32{0x00a95612, 0x02f13046, 0x01620a54, 0x03462bb5, 0x00c1f54b, 0x00e0b0bc, 0x02c4a22c, 0x012b204c, 0x01b2adf5, 0x001bf717}}, Y: Field{[10]uint32{0x030e221e, 0x03a24565, 0x00d26944, 0x032a9b71, 0x03cf60b0, 0x00748590, 0x00110536, 0x03a53703, 0x00e5f318, 0x0036cfe9}}},
+ {X: Field{[10]uint32{0x03680603, 0x01dedcd4, 0x030fc7fd, 0x00342177, 0x00bb7665, 0x035fae84, 0x02ea6f4d, 0x0071468e, 0x02c6ea0e, 0x0031fadd}}, Y: Field{[10]uint32{0x035bf655, 0x011dc4b7, 0x013e0e6f, 0x00e6a0ad, 0x020a4f4a, 0x02f0cbbc, 0x0041c3d7, 0x0024a80f, 0x01d7b788, 0x0016b870}}},
+ {X: Field{[10]uint32{0x00aa89ed, 0x004ea632, 0x01857b48, 0x02de0867, 0x021a52c7, 0x00c4afee, 0x00e048e6, 0x022d6d93, 0x01a2b7e7, 0x00320541}}, Y: Field{[10]uint32{0x03096806, 0x0177f037, 0x007fa87d, 0x01fe5ac9, 0x01c222be, 0x0167c0cf, 0x01e49be4, 0x03884578, 0x00426d6c, 0x0011b6ca}}},
+ {X: Field{[10]uint32{0x00503bf8, 0x01fae79e, 0x031c90a1, 0x00482f71, 0x00f7dec3, 0x00eb0d42, 0x005ff0d8, 0x030f561c, 0x025515f9, 0x0032b5d4}}, Y: Field{[10]uint32{0x026bd719, 0x02704b1b, 0x034c52d1, 0x039496da, 0x0106231b, 0x00e39358, 0x012ddc76, 0x036e5fb3, 0x020276cf, 0x000cacda}}},
+ {X: Field{[10]uint32{0x024cdd25, 0x03a4036f, 0x03fabc70, 0x0196094c, 0x00f17f3c, 0x035ac576, 0x02ca8a47, 0x01f8c15b, 0x0144e22b, 0x00253488}}, Y: Field{[10]uint32{0x03d93bf9, 0x006a1351, 0x02e5f612, 0x00b5e6d2, 0x03828bf7, 0x03404932, 0x01dfbbdb, 0x00be1762, 0x020d5fef, 0x0004b01d}}},
+ {X: Field{[10]uint32{0x016731a3, 0x004ae2e4, 0x022253b1, 0x027f03cb, 0x0213cba1, 0x01c86f78, 0x03520407, 0x01807f77, 0x0023ef00, 0x000c9717}}, Y: Field{[10]uint32{0x022498e0, 0x02397bb5, 0x0370e962, 0x02c91763, 0x015cb38c, 0x01931f4a, 0x03f3dd30, 0x00590e64, 0x0398c09c, 0x001674f2}}},
+ {X: Field{[10]uint32{0x01ee2318, 0x01b61864, 0x00a7cda9, 0x00e0f9fd, 0x027d1874, 0x006f7f69, 0x02515168, 0x020c5928, 0x0089544b, 0x0027241c}}, Y: Field{[10]uint32{0x0372d20d, 0x00639be0, 0x00911d97, 0x037a7ef9, 0x01547117, 0x03089416, 0x00539eb5, 0x0018c0d9, 0x02e7e701, 0x003d8e77}}},
+ {X: Field{[10]uint32{0x002b7a82, 0x03e60d4c, 0x03fc0f32, 0x0373ab06, 0x01ec5544, 0x01e93ee0, 0x032a1d89, 0x0301b132, 0x0007ede9, 0x000d3c52}}, Y: Field{[10]uint32{0x016d9c57, 0x007ca902, 0x024828d0, 0x019d75af, 0x003c54c3, 0x01a2f79a, 0x0318813a, 0x0288a3d7, 0x028cec6a, 0x001e10de}}},
+ {X: Field{[10]uint32{0x0239788b, 0x01ed8005, 0x00d75388, 0x03fc30d1, 0x01490b47, 0x032e07f7, 0x03d459af, 0x0020a380, 0x030b3f08, 0x00252634}}, Y: Field{[10]uint32{0x002522f7, 0x00da14b9, 0x03d2ece1, 0x02cd59f3, 0x00677865, 0x01461ea7, 0x001627dc, 0x02f8fac9, 0x0305b97a, 0x001e9720}}},
+ {X: Field{[10]uint32{0x0354f226, 0x0114bd5d, 0x038c876d, 0x03ffaee5, 0x025d4f36, 0x00f3be23, 0x013ec32d, 0x01b8dea9, 0x036fefd3, 0x003ae823}}, Y: Field{[10]uint32{0x012015c1, 0x031f8e2f, 0x01470608, 0x01e1340a, 0x0339e171, 0x00e32f82, 0x03eade9b, 0x015329eb, 0x02b543aa, 0x003f8399}}},
+ {X: Field{[10]uint32{0x0240091b, 0x0251211c, 0x01e504c7, 0x02f664b3, 0x02c8ef49, 0x03a326f3, 0x0119b77a, 0x005ca7d8, 0x03c20bd2, 0x00155752}}, Y: Field{[10]uint32{0x03437b54, 0x0046731f, 0x00315d30, 0x03fe953e, 0x036c9052, 0x024fad29, 0x02869415, 0x0078ccb2, 0x01b86952, 0x003333af}}},
+ {X: Field{[10]uint32{0x03fe8872, 0x03c21ec3, 0x01823679, 0x03b31a4b, 0x013f3060, 0x005c8f51, 0x0333833d, 0x00d1d10b, 0x039c19da, 0x000cdca6}}, Y: Field{[10]uint32{0x0034fc30, 0x02f59317, 0x00800b4a, 0x001f5faf, 0x00fac2f0, 0x02fee011, 0x00854056, 0x03d813ae, 0x024f283a, 0x002a52da}}},
+ {X: Field{[10]uint32{0x01f1dc11, 0x03857803, 0x03c32d8a, 0x03835131, 0x0378124e, 0x00eae4b3, 0x03b060a7, 0x0119e191, 0x009fafe6, 0x000a86a2}}, Y: Field{[10]uint32{0x008b75d8, 0x0017fcff, 0x01218986, 0x0341fbe4, 0x0275aba0, 0x01b6efc3, 0x02ba46be, 0x007e39a1, 0x023d3bf1, 0x00189be5}}},
+ {X: Field{[10]uint32{0x00197d6f, 0x02f2c2df, 0x027fff2d, 0x02cd38e4, 0x01639148, 0x0162ecbd, 0x0062f702, 0x039bf3ff, 0x014ca303, 0x0011c0a1}}, Y: Field{[10]uint32{0x031e1156, 0x011111f5, 0x02c5195c, 0x02cc3cec, 0x022da76e, 0x00164dcb, 0x0075c2de, 0x0095f345, 0x01b28513, 0x001f6898}}},
+ {X: Field{[10]uint32{0x01319c5b, 0x01f165b3, 0x00e03485, 0x03f5f681, 0x0351d90c, 0x01b9279e, 0x0015cae0, 0x008e8194, 0x01c5a0cc, 0x001c00bb}}, Y: Field{[10]uint32{0x03db73bb, 0x00f88c30, 0x02975db6, 0x015a13f1, 0x0178c47b, 0x027f5845, 0x012d2ae1, 0x02a961eb, 0x01bd06b7, 0x001bca11}}},
+ {X: Field{[10]uint32{0x0348d485, 0x02b7c2db, 0x00ae67c1, 0x0321c976, 0x03f4cc5b, 0x00755143, 0x0169f057, 0x018436c8, 0x00d4483d, 0x0009cca5}}, Y: Field{[10]uint32{0x03d942b1, 0x0221d2d9, 0x036d3726, 0x030473ee, 0x02a71e3c, 0x0208e6a8, 0x039a0031, 0x03278280, 0x01a20ffe, 0x00266c90}}},
+ {X: Field{[10]uint32{0x018c9a69, 0x00d7a3fa, 0x00e83b03, 0x00ab134a, 0x010710c7, 0x02a14a97, 0x0126a535, 0x02d103eb, 0x03823055, 0x0006fb33}}, Y: Field{[10]uint32{0x038aecfc, 0x03780fde, 0x03489e2f, 0x00597892, 0x002c5db7, 0x0351c7ab, 0x00ce0a40, 0x03b881f2, 0x0166ac0e, 0x0003cead}}},
+ {X: Field{[10]uint32{0x03128160, 0x02386494, 0x02197fae, 0x008dde24, 0x00a19023, 0x023f99cb, 0x0149caec, 0x00f54d76, 0x02cf4f03, 0x0036f93b}}, Y: Field{[10]uint32{0x01aa566f, 0x00f51f35, 0x00a1f5fd, 0x0018702a, 0x01896fc8, 0x012583f1, 0x0241c722, 0x00396d58, 0x03c7927f, 0x002cfd42}}},
+ {X: Field{[10]uint32{0x01bd1e20, 0x03b3d28e, 0x02631133, 0x0212c2b8, 0x03caf7f4, 0x03715cff, 0x011887a5, 0x0031a516, 0x0075bed8, 0x001990ff}}, Y: Field{[10]uint32{0x038d58e5, 0x02d717e1, 0x03b7a1f8, 0x0270a4f0, 0x038ec1e6, 0x031289b8, 0x001875fd, 0x01f24eeb, 0x0285f7ac, 0x00011c04}}},
+ {X: Field{[10]uint32{0x01422a21, 0x00d0bf81, 0x03f14516, 0x00daf298, 0x03ef19d9, 0x00fe0839, 0x01582805, 0x0335781c, 0x03decf1d, 0x00267e42}}, Y: Field{[10]uint32{0x019cd4fd, 0x034b5e6e, 0x01e2a180, 0x0064cfe4, 0x025cfd77, 0x02fafab5, 0x0390a868, 0x01856c14, 0x01306dfc, 0x0028137f}}},
+ {X: Field{[10]uint32{0x02e33433, 0x00774ca1, 0x0033eaad, 0x01f81270, 0x00bcf71f, 0x024ad59e, 0x03b4e351, 0x02dff917, 0x02483184, 0x001539f3}}, Y: Field{[10]uint32{0x00c0e8ef, 0x033b2205, 0x02c3c4de, 0x0118f1a8, 0x024d4f85, 0x01fd3938, 0x028b85cb, 0x0272de0e, 0x033b65ba, 0x0032b0a0}}},
+ {X: Field{[10]uint32{0x03f02e08, 0x01a1ae12, 0x027d31f7, 0x0058a558, 0x034705aa, 0x03d2a65c, 0x00f4e7b8, 0x0264f911, 0x024ffb60, 0x0033e192}}, Y: Field{[10]uint32{0x036f1bde, 0x01db1f36, 0x02a51af2, 0x0145dd12, 0x016b8a19, 0x03a62f7c, 0x01db874c, 0x03ad3519, 0x020fb736, 0x001ea634}}},
+ {X: Field{[10]uint32{0x0159d1ae, 0x001c849b, 0x03f26c9e, 0x01141829, 0x02a25693, 0x02a62bf8, 0x022cd457, 0x03fe456b, 0x00d6516f, 0x001bfc58}}, Y: Field{[10]uint32{0x00eedc4a, 0x017065ed, 0x034deaff, 0x03b4007c, 0x017db5d5, 0x0143e71d, 0x038b4153, 0x0042b393, 0x0355bf14, 0x001747c4}}},
+ {X: Field{[10]uint32{0x035dfcc9, 0x007f9327, 0x01a46f23, 0x016cdc0b, 0x01a56fe3, 0x018a1f6a, 0x037f2a2c, 0x009a4075, 0x0262aefd, 0x00026b6e}}, Y: Field{[10]uint32{0x03b04161, 0x017c54ea, 0x02e7e482, 0x010d0765, 0x012e708d, 0x034b12f7, 0x03126aff, 0x00d66c01, 0x0045cb4a, 0x002e963b}}},
+ {X: Field{[10]uint32{0x00a2402d, 0x0038aa85, 0x035d652c, 0x0183a773, 0x02b5d900, 0x00b0437f, 0x00ea9457, 0x03712335, 0x001ebbdc, 0x000813a9}}, Y: Field{[10]uint32{0x0036ae38, 0x03de02eb, 0x01809789, 0x00c8fb02, 0x02fb0b9e, 0x024929be, 0x005db8a9, 0x00bcf2cb, 0x01aca195, 0x001eca22}}},
+ {X: Field{[10]uint32{0x03c8ba22, 0x02b3a5d7, 0x0296a82a, 0x0243a109, 0x02a4b4f1, 0x008349ae, 0x01a6826c, 0x00c45089, 0x0269364d, 0x003df5b1}}, Y: Field{[10]uint32{0x039d3470, 0x019e9721, 0x03d1636f, 0x03d12c32, 0x031ff47c, 0x02cf1d86, 0x027d160c, 0x00e31401, 0x0177b425, 0x00056aec}}},
+ {X: Field{[10]uint32{0x01352587, 0x019bc9df, 0x03f0dcb4, 0x019116d5, 0x01e50a7e, 0x000af488, 0x0066e00c, 0x00a31e2c, 0x030a87dd, 0x001ef134}}, Y: Field{[10]uint32{0x00c294d4, 0x032ae5b4, 0x0152ec68, 0x030481ad, 0x026efbc9, 0x032c1287, 0x026e0c9f, 0x00059369, 0x00542e7e, 0x003d3b52}}},
+ {X: Field{[10]uint32{0x02316ef1, 0x01250ec7, 0x009d7856, 0x0086d094, 0x01c200eb, 0x027c818a, 0x005dfb95, 0x02fb9b09, 0x0184b046, 0x00155109}}, Y: Field{[10]uint32{0x00580d82, 0x000c6a52, 0x02280905, 0x018b4676, 0x02a29c41, 0x000fcb93, 0x026353a1, 0x007b6599, 0x0171c811, 0x000b8aaa}}},
+ {X: Field{[10]uint32{0x01dce1eb, 0x01a7992c, 0x02dccbcd, 0x01ca107c, 0x020923f8, 0x02a32996, 0x0224c973, 0x0240f9c4, 0x00c0de88, 0x00239f7e}}, Y: Field{[10]uint32{0x01d2a0cc, 0x0390f049, 0x0066252a, 0x0388d325, 0x03c31205, 0x007eea36, 0x0147873f, 0x01b5479c, 0x00839ae8, 0x0039054c}}},
+ {X: Field{[10]uint32{0x0251de8f, 0x011bd471, 0x024915d5, 0x0324d6f6, 0x01b84a9b, 0x017eb81e, 0x0169d066, 0x02a86095, 0x01dc69d8, 0x0019c8c8}}, Y: Field{[10]uint32{0x03ef005f, 0x00f5bdb9, 0x00188d33, 0x03c5acd3, 0x02f977b1, 0x000e9bbb, 0x0009ab18, 0x0225f6fa, 0x030b8708, 0x0022b590}}},
+ {X: Field{[10]uint32{0x01ac3abc, 0x003d1ca2, 0x01bfc2d2, 0x026bda4f, 0x001b8beb, 0x02175da6, 0x00327182, 0x026c0148, 0x03c143e9, 0x003d38ae}}, Y: Field{[10]uint32{0x01651a2a, 0x02fc2c57, 0x03a897ea, 0x00f8817a, 0x036d80e9, 0x0033509b, 0x0322b7f7, 0x003aacb9, 0x00f5dc33, 0x00395264}}},
+ {X: Field{[10]uint32{0x0139ffff, 0x004d3c43, 0x01ad8009, 0x0119ad7f, 0x0272694f, 0x00170582, 0x03c72758, 0x00963241, 0x025fc6d2, 0x0016a8ea}}, Y: Field{[10]uint32{0x00ea9531, 0x03018012, 0x0244a7f4, 0x02632c1d, 0x023146aa, 0x03d9c330, 0x003e82b5, 0x02be96e1, 0x0170617e, 0x0008b5c8}}},
+ {X: Field{[10]uint32{0x03e2e7ef, 0x03ac021e, 0x00383be3, 0x03a9170d, 0x009e9a31, 0x02de18cf, 0x033acbd1, 0x01266b1a, 0x03f9d2bf, 0x000d1d4b}}, Y: Field{[10]uint32{0x001104f8, 0x01b6d1cb, 0x03edd91a, 0x02a60c1a, 0x0339d73c, 0x03d9f22e, 0x037d0763, 0x03621947, 0x03742cf3, 0x002d4fa8}}},
+ {X: Field{[10]uint32{0x03047327, 0x00d4d989, 0x02d6b517, 0x018b6cae, 0x01889770, 0x001a7871, 0x01b4c9b5, 0x0113dc36, 0x022402ea, 0x00359409}}, Y: Field{[10]uint32{0x02b16f2d, 0x00547f12, 0x02c288c7, 0x00861b6c, 0x02d80143, 0x015cdd5f, 0x034db3fb, 0x02a2fb00, 0x019af2f2, 0x0014bd72}}},
+ {X: Field{[10]uint32{0x011f4cc9, 0x024f0c00, 0x032acb45, 0x02a7b576, 0x010915d4, 0x007ce6af, 0x024a0e0b, 0x00097f45, 0x02c6553d, 0x0014aceb}}, Y: Field{[10]uint32{0x00e2f8c9, 0x029dc5fd, 0x03ba2432, 0x02f3839e, 0x0377af18, 0x00c6c975, 0x00016839, 0x02caee75, 0x00021c17, 0x0014551d}}},
+ {X: Field{[10]uint32{0x027ef9ca, 0x02551fa0, 0x01b174d9, 0x01bae93e, 0x02eaa0ec, 0x022de704, 0x03284186, 0x02489049, 0x037ef797, 0x00232ed9}}, Y: Field{[10]uint32{0x000183f2, 0x0243e601, 0x00e19ae5, 0x0262ffb7, 0x0292974f, 0x0046d82f, 0x0240ec64, 0x004c4ada, 0x01b8b07e, 0x0028ca02}}},
+ {X: Field{[10]uint32{0x0131d47b, 0x01c938f5, 0x022487f1, 0x035b0c5e, 0x013f89f2, 0x01d1cd2e, 0x00b1564d, 0x03c5f7a5, 0x01e0e2ee, 0x00363d57}}, Y: Field{[10]uint32{0x02b7d770, 0x00fa4b26, 0x02930052, 0x01317821, 0x00fa7dc6, 0x009c7993, 0x0016f71f, 0x018dc381, 0x02f5da57, 0x003a7f51}}},
+ {X: Field{[10]uint32{0x016b6fdb, 0x0133d88d, 0x02b79d0f, 0x03b7b52e, 0x03a4ddb8, 0x01ddc5a7, 0x01573014, 0x02cc7fe7, 0x01bbfaa2, 0x003e9bf2}}, Y: Field{[10]uint32{0x0357d494, 0x01083803, 0x01b331b4, 0x033e7de0, 0x0043a2ad, 0x012c4476, 0x02fd1e4d, 0x01e431eb, 0x03cddfdd, 0x002dbfd5}}},
+ {X: Field{[10]uint32{0x01b58e9a, 0x00fc2758, 0x02ae6bb9, 0x005d94f9, 0x00f93590, 0x02eb4126, 0x03752d9a, 0x03b765a7, 0x028ce748, 0x0008e7c0}}, Y: Field{[10]uint32{0x00f8b516, 0x013a3b05, 0x02f7c064, 0x028a46f6, 0x01d55c8a, 0x02dec50b, 0x02463b7b, 0x03dae9ee, 0x02b78831, 0x0005f7ff}}},
+ {X: Field{[10]uint32{0x025e4f3b, 0x03e3dd25, 0x017bd99a, 0x00523c96, 0x00ecad3c, 0x00e26ee9, 0x0071db05, 0x025dbe67, 0x03fb728d, 0x000bbdb2}}, Y: Field{[10]uint32{0x01b0fd00, 0x006d83de, 0x00273b41, 0x010b3c5d, 0x03deeef5, 0x0364e8de, 0x01ebe8c1, 0x001e30fc, 0x03a7a382, 0x0006689e}}},
+ {X: Field{[10]uint32{0x03064a0e, 0x025d764c, 0x0343698b, 0x011f614d, 0x021a4292, 0x00dde1c7, 0x03042f13, 0x00c57a23, 0x032b9af8, 0x0025cb5c}}, Y: Field{[10]uint32{0x024fd28b, 0x02bd36ea, 0x021d4f40, 0x00fc97f7, 0x02a5c2ae, 0x012f2ee8, 0x02380fee, 0x00ee1d02, 0x03baba4c, 0x000c2054}}},
+ {X: Field{[10]uint32{0x02062a4c, 0x03c9d1db, 0x02ed33c4, 0x03b6bd08, 0x02e788bc, 0x0215052f, 0x03aa2951, 0x0263c60c, 0x0334ba49, 0x000f4de2}}, Y: Field{[10]uint32{0x02c4c8a3, 0x03686a3c, 0x0017093e, 0x00e34dd6, 0x013c3d52, 0x027dd700, 0x0087b502, 0x03e46602, 0x019c9217, 0x0011a915}}},
+ {X: Field{[10]uint32{0x015c3087, 0x03e20b4e, 0x011e376b, 0x03c9f591, 0x02b13d70, 0x02f8ecd8, 0x032b289a, 0x02ceabf4, 0x003b1fc1, 0x003eec80}}, Y: Field{[10]uint32{0x00dfdabd, 0x028c5701, 0x00a81653, 0x00753906, 0x03f28e5b, 0x0305f6c0, 0x02b96bb9, 0x00d8a933, 0x02a5c462, 0x0025f219}}},
+ {X: Field{[10]uint32{0x037a0471, 0x0137a3e1, 0x0247e6e1, 0x02debed6, 0x00295efd, 0x016389b1, 0x03d27a92, 0x02c7e802, 0x014e8eea, 0x0000a3ea}}, Y: Field{[10]uint32{0x01d23276, 0x016a4242, 0x022a5514, 0x0065345d, 0x03622219, 0x0233a743, 0x007b5e20, 0x03a3cf03, 0x010af2ee, 0x003dd867}}},
+ {X: Field{[10]uint32{0x01308ae9, 0x033283be, 0x00f25c12, 0x00cc21e6, 0x014be272, 0x03ea3f8a, 0x0227ede6, 0x030455c5, 0x02857eb9, 0x0011c228}}, Y: Field{[10]uint32{0x024fa449, 0x00dae472, 0x00c3550e, 0x019821ea, 0x02854034, 0x02a4b3d5, 0x020ab601, 0x00e642cb, 0x01642e77, 0x003cd7e6}}},
+ {X: Field{[10]uint32{0x0048a62f, 0x013cbe26, 0x02c6a636, 0x032cdad8, 0x02a82427, 0x00f3bb5b, 0x00903dcb, 0x02e1d362, 0x00976ff4, 0x0024d020}}, Y: Field{[10]uint32{0x015f3c6f, 0x033ed8fa, 0x020aeff3, 0x012262f1, 0x03daf64d, 0x0282eafd, 0x032d4fe0, 0x019d926a, 0x0162d4e2, 0x0038969a}}},
+ {X: Field{[10]uint32{0x020ddf9a, 0x01676f1c, 0x03cac039, 0x037495b2, 0x039e0d24, 0x02959988, 0x0195da93, 0x00072b8c, 0x03a08182, 0x003d290a}}, Y: Field{[10]uint32{0x02000f86, 0x0349f802, 0x0396a60f, 0x0239c8c3, 0x0110bd4c, 0x01ce44a1, 0x01194afe, 0x03bfc1d7, 0x03cc0be3, 0x0023f49b}}},
+ {X: Field{[10]uint32{0x03a6240c, 0x006c59b8, 0x009919c5, 0x03bed06c, 0x03791cac, 0x025f82a5, 0x0339ef61, 0x03350033, 0x0216e65b, 0x00316b69}}, Y: Field{[10]uint32{0x016eb8c3, 0x000229fe, 0x011a04a7, 0x01e9834d, 0x01cc2678, 0x02441aba, 0x01b0b323, 0x0318b721, 0x0168fe41, 0x00393197}}},
+ {X: Field{[10]uint32{0x00c640e7, 0x02b84020, 0x002baca2, 0x01215844, 0x01e8b1fa, 0x00186969, 0x017c62e5, 0x03646f2f, 0x02c3d3f1, 0x001f064f}}, Y: Field{[10]uint32{0x03873ccd, 0x01672b65, 0x0333a26b, 0x01a0752c, 0x0103b8e0, 0x02294da1, 0x000ff310, 0x0023cf90, 0x00955114, 0x00331f3e}}},
+ {X: Field{[10]uint32{0x011bd3c3, 0x0000ac2b, 0x016f1d96, 0x01547b1c, 0x0122b763, 0x039a8706, 0x01656293, 0x03c4a0c8, 0x01438e7c, 0x001dd509}}, Y: Field{[10]uint32{0x03d2137f, 0x02fe0022, 0x007c4deb, 0x00c80306, 0x01edf7d9, 0x022182be, 0x006eec20, 0x00def864, 0x029d212c, 0x000dd1c5}}},
+ {X: Field{[10]uint32{0x03d90992, 0x02643d89, 0x02c5a3b9, 0x010f9536, 0x00bb48ff, 0x002af46a, 0x01c0f7f9, 0x039e1be9, 0x0399fa75, 0x0024b754}}, Y: Field{[10]uint32{0x0311b7ba, 0x0152484f, 0x029a406e, 0x00c664cb, 0x00ee4932, 0x031b14d2, 0x025c824a, 0x020f830b, 0x028ef937, 0x00172c6f}}},
+ {X: Field{[10]uint32{0x0293157d, 0x01b77bf5, 0x00b376eb, 0x029ede87, 0x004f66e7, 0x0294cbf8, 0x03550532, 0x03ae4042, 0x0028468e, 0x00305dc2}}, Y: Field{[10]uint32{0x019a2e11, 0x01f492a0, 0x02bc2d2e, 0x0269de9d, 0x02070e5e, 0x0186b928, 0x029e262f, 0x01f51ff4, 0x003da014, 0x00036959}}},
+ {X: Field{[10]uint32{0x036378c8, 0x03f7732b, 0x00ad533c, 0x0396fa2a, 0x01a8baab, 0x0044e4bf, 0x009a5341, 0x03948919, 0x0116e90a, 0x0004dcb8}}, Y: Field{[10]uint32{0x00346af9, 0x00adb972, 0x004d6e9b, 0x03ccaf16, 0x011d0a1c, 0x02369bd1, 0x038c2aaf, 0x01d6ef70, 0x00a26957, 0x0017bef5}}},
+ {X: Field{[10]uint32{0x01dda936, 0x00b61a99, 0x00c008f3, 0x03eb840e, 0x0105e2b7, 0x03cc24a7, 0x01520097, 0x028acaf3, 0x021e9fa1, 0x000aef7c}}, Y: Field{[10]uint32{0x039d45ec, 0x0280b24c, 0x0364cb0b, 0x0331610e, 0x011806eb, 0x02a20cd8, 0x02c0dcd2, 0x02f77185, 0x01986008, 0x00146de2}}},
+ {X: Field{[10]uint32{0x013005e1, 0x010e2f5d, 0x03f7f6a7, 0x01f09bb8, 0x039b63cc, 0x01bc8485, 0x0230d49e, 0x017b5de0, 0x00a4d049, 0x000d9a53}}, Y: Field{[10]uint32{0x00bc0af8, 0x02a8345c, 0x039075f5, 0x02da56d7, 0x03a87f48, 0x00635499, 0x031e17db, 0x02c4ccff, 0x03f3bbdc, 0x000b9278}}},
+ {X: Field{[10]uint32{0x032013b8, 0x01225600, 0x027e85e6, 0x01cdaee2, 0x036fbc13, 0x004f12ab, 0x0113bf8d, 0x03850e9a, 0x00b1dc9c, 0x00090f61}}, Y: Field{[10]uint32{0x027f28bf, 0x02af56db, 0x02b91108, 0x020cb7ff, 0x0021a3dd, 0x037b1784, 0x023c2dc6, 0x031c77ff, 0x03adb6be, 0x0000e4c5}}},
+ {X: Field{[10]uint32{0x0191ec92, 0x02550acb, 0x0185de03, 0x037bc641, 0x020ba6df, 0x0284aa3f, 0x00eab821, 0x03cfda0e, 0x03875255, 0x00076220}}, Y: Field{[10]uint32{0x0324b489, 0x0080dfcc, 0x012bc46c, 0x02b76f64, 0x039ccabd, 0x00bc2bbc, 0x0233538d, 0x03e05575, 0x03e2e919, 0x002a74e2}}},
+ {X: Field{[10]uint32{0x01be3765, 0x01be6b2c, 0x00955645, 0x00a1e920, 0x015512d6, 0x01d0dd47, 0x0160e2aa, 0x00cddbdd, 0x03754c0d, 0x000e6887}}, Y: Field{[10]uint32{0x0035e005, 0x00baa750, 0x031bde0b, 0x02c4e914, 0x01ef4950, 0x0156ed12, 0x00188c4d, 0x035e78ef, 0x00a52a7f, 0x000f3cc9}}},
+ {X: Field{[10]uint32{0x002e21c8, 0x0249e3ad, 0x029e948d, 0x007e9595, 0x0118ab0a, 0x00b19fdb, 0x01394a95, 0x0177ca87, 0x020cd8e2, 0x002843fd}}, Y: Field{[10]uint32{0x01f9e991, 0x013d4083, 0x03237bfd, 0x00d7c0b2, 0x0389fd2b, 0x03e2451c, 0x000c0bd4, 0x00bbe077, 0x01633ce8, 0x002d17cb}}},
+ {X: Field{[10]uint32{0x03bcbcb1, 0x031167ad, 0x022b25bb, 0x03377092, 0x01bb801a, 0x01ae5c7e, 0x011f7a64, 0x010bdc41, 0x03920d50, 0x002f09a5}}, Y: Field{[10]uint32{0x01235665, 0x00d6f5dc, 0x031f478b, 0x0378760f, 0x02c7fab6, 0x0248175f, 0x0301530c, 0x00818586, 0x01fc1c03, 0x002dc111}}},
+ {X: Field{[10]uint32{0x0037cb95, 0x00709024, 0x00da99a6, 0x0123daf3, 0x025f0ef4, 0x0076d110, 0x02a7f95d, 0x00da0aa0, 0x01fefd5a, 0x000f5c9e}}, Y: Field{[10]uint32{0x00159740, 0x01980bdc, 0x021622de, 0x024c3364, 0x019a2ea1, 0x02e89253, 0x0342cca2, 0x016df88a, 0x02cae636, 0x0037d489}}},
+ {X: Field{[10]uint32{0x00dbe588, 0x00b0b57a, 0x02e2fd55, 0x03439085, 0x01bc439a, 0x0146cf54, 0x036c2bd9, 0x02bc02e4, 0x0130ef92, 0x0038315b}}, Y: Field{[10]uint32{0x00555fee, 0x0212ceda, 0x03e0f064, 0x031e921c, 0x03f35189, 0x01d9a683, 0x01bd1862, 0x01711103, 0x037d02a7, 0x0030af45}}},
+ {X: Field{[10]uint32{0x0073315b, 0x0266b89e, 0x03c15d99, 0x00c909ca, 0x00f0d6e3, 0x00d2ebc7, 0x00398306, 0x02fd4bf6, 0x00e52b7b, 0x0026fe58}}, Y: Field{[10]uint32{0x018d0405, 0x0188e1c7, 0x001c9066, 0x03df6732, 0x01551862, 0x02914dce, 0x0016cb16, 0x007732c0, 0x019d20e0, 0x0002ca1c}}},
+ {X: Field{[10]uint32{0x00351198, 0x0120280d, 0x019dc0d5, 0x0117511f, 0x0287fffb, 0x011d5f83, 0x017a6b14, 0x029c6b98, 0x016be60b, 0x000837c6}}, Y: Field{[10]uint32{0x02eb07d8, 0x003387c9, 0x020ae996, 0x01610bfb, 0x02f12ba3, 0x02b42aea, 0x03d49539, 0x001c6e81, 0x01430c0d, 0x00271c8b}}},
+ {X: Field{[10]uint32{0x029bac17, 0x01998772, 0x036330a2, 0x01c48ed7, 0x00455a5f, 0x02055260, 0x019693d0, 0x02d02e51, 0x01360208, 0x000210f0}}, Y: Field{[10]uint32{0x02f12078, 0x0137d1bc, 0x00edec9b, 0x008e19dc, 0x02d0c74f, 0x0076e950, 0x011820d3, 0x03f1034b, 0x018d9095, 0x00356d6f}}},
+ {X: Field{[10]uint32{0x008d11a0, 0x02f1c890, 0x01c03e05, 0x032dcbe7, 0x03708a3f, 0x02d1b5bb, 0x024ee0ca, 0x007a837a, 0x00df702c, 0x0024426d}}, Y: Field{[10]uint32{0x02dc507a, 0x03b322e5, 0x03242cf4, 0x031e44ee, 0x007348e9, 0x030b0c09, 0x03151954, 0x020072d4, 0x02c18be5, 0x001d6ea8}}},
+ {X: Field{[10]uint32{0x0191113c, 0x03bbcf16, 0x02db2329, 0x00b8dc9f, 0x018e5155, 0x0080f167, 0x02dff03c, 0x02a6ec4a, 0x01f5c960, 0x003c4334}}, Y: Field{[10]uint32{0x028c465a, 0x03c2fc57, 0x0151b8f3, 0x03191e58, 0x009d2e03, 0x03fb998b, 0x01746898, 0x036a9859, 0x00e16f65, 0x002a12b2}}},
+ {X: Field{[10]uint32{0x00e747a8, 0x03f9ab44, 0x03a071ea, 0x03437d62, 0x010ae0d6, 0x02297d4e, 0x0077b69a, 0x0180beb4, 0x013cffd3, 0x0027c1dc}}, Y: Field{[10]uint32{0x03ee867b, 0x03579723, 0x00afe58c, 0x00e95e5c, 0x01cbb4ea, 0x020be3b0, 0x003d7357, 0x02420f37, 0x007342b5, 0x002b7f32}}},
+ {X: Field{[10]uint32{0x0195801a, 0x018cd0b3, 0x019f3640, 0x01b2c483, 0x005ce9ec, 0x03fe25e3, 0x032b870f, 0x015cd04e, 0x010e3290, 0x001b4767}}, Y: Field{[10]uint32{0x0031018f, 0x0153e31a, 0x010efba1, 0x025e48b9, 0x0325a3f5, 0x00eef738, 0x0345f7c2, 0x02d80935, 0x00a895d3, 0x001942f9}}},
+ {X: Field{[10]uint32{0x00dcbd82, 0x0083319b, 0x03fa7128, 0x026771d9, 0x015c649f, 0x0387ec52, 0x027791c7, 0x033251e8, 0x01a56b3a, 0x00125c61}}, Y: Field{[10]uint32{0x03e6568c, 0x01aa5443, 0x01c3df5b, 0x02fdd060, 0x00f33ce5, 0x039d5968, 0x00078b2f, 0x0386c5f9, 0x037c11da, 0x001f5446}}},
+ {X: Field{[10]uint32{0x000a743f, 0x0153fcc4, 0x030a2c31, 0x02f85291, 0x019a35f7, 0x00b361f0, 0x01b8bc75, 0x03ae7137, 0x00f9848e, 0x003ffdce}}, Y: Field{[10]uint32{0x032c38ec, 0x03fcdccb, 0x01df57bd, 0x02685c21, 0x00211b97, 0x01171628, 0x0037cdcf, 0x00f25dda, 0x0255cd91, 0x00041ae2}}},
+ {X: Field{[10]uint32{0x001b4830, 0x024086e6, 0x00e38ccb, 0x03d177f2, 0x0141899e, 0x01f58005, 0x026876a3, 0x011b2d11, 0x01a48d35, 0x000c80e4}}, Y: Field{[10]uint32{0x0251b102, 0x01c48159, 0x0000f09c, 0x01f798ce, 0x0323fa2d, 0x015c1ed2, 0x002f3032, 0x0250479d, 0x0030b455, 0x0011bd8c}}},
+ {X: Field{[10]uint32{0x0185fe9e, 0x005b8017, 0x013f9adf, 0x001848a0, 0x00558791, 0x01d8c7c6, 0x0137f7fb, 0x03a2349a, 0x0240a925, 0x002f9133}}, Y: Field{[10]uint32{0x036e1dc4, 0x02c0998a, 0x0089324d, 0x032a6906, 0x02ca6948, 0x03d12db8, 0x02806d4b, 0x01b719f9, 0x01e7d22e, 0x0005d56b}}},
+ {X: Field{[10]uint32{0x0333ddae, 0x00810d73, 0x012ddeeb, 0x002d0cea, 0x03da6aa8, 0x019bf0a8, 0x03b05314, 0x035827e0, 0x02b158dd, 0x00234fc1}}, Y: Field{[10]uint32{0x0337af63, 0x011c1752, 0x01f2c4c7, 0x0106630f, 0x02f1d0a6, 0x02f4ba50, 0x036e5f4d, 0x0144eee2, 0x0299efde, 0x000b5552}}},
+ {X: Field{[10]uint32{0x01596729, 0x03aa11a4, 0x02627210, 0x01d1d0ad, 0x00d0c71d, 0x00153f30, 0x01c1cb3a, 0x03d54c95, 0x039cf258, 0x003e0529}}, Y: Field{[10]uint32{0x032d867d, 0x004fdd68, 0x002dc318, 0x022bb7ae, 0x010271ce, 0x0347cf51, 0x0080c42f, 0x02d2c88f, 0x0095be48, 0x0000467f}}},
+ {X: Field{[10]uint32{0x0142fb60, 0x0399097a, 0x03ec8109, 0x03efbe45, 0x01d77e57, 0x038ab4c1, 0x0262bfbe, 0x03c76d76, 0x01461c37, 0x00257a3f}}, Y: Field{[10]uint32{0x00e2db93, 0x000c0a82, 0x00d09a03, 0x03f8c1ad, 0x01d3d5b1, 0x002d162e, 0x01ace316, 0x033686a9, 0x031edfdb, 0x003770a2}}},
+ {X: Field{[10]uint32{0x03981e77, 0x02ac3a29, 0x02149e2d, 0x0303d0db, 0x026f4e5c, 0x03f08209, 0x0320604c, 0x02205af1, 0x03fc47e1, 0x00301950}}, Y: Field{[10]uint32{0x03021441, 0x00d20c65, 0x0234ee66, 0x00c45fb1, 0x01281854, 0x00653327, 0x034819ac, 0x029f0844, 0x0065f3a4, 0x000881c1}}},
+ {X: Field{[10]uint32{0x00d5c68e, 0x025c21ad, 0x001caa2b, 0x0142f580, 0x010fd5b0, 0x037b6138, 0x014d116b, 0x02bbe928, 0x015b3716, 0x001260f6}}, Y: Field{[10]uint32{0x03f0a279, 0x036b8b01, 0x01b0280c, 0x0299beb0, 0x00f5e609, 0x02f4efbf, 0x03d47bce, 0x033450cc, 0x026da2ef, 0x0004dcd0}}},
+ {X: Field{[10]uint32{0x02afe6ab, 0x0332560f, 0x03ef61fd, 0x03b79adc, 0x03ad8054, 0x01782143, 0x022cd092, 0x012e5cee, 0x00c692e8, 0x0028af57}}, Y: Field{[10]uint32{0x02a5ce2b, 0x02c9d9f9, 0x02a4e4f0, 0x025e5e56, 0x0133d8d7, 0x027e0093, 0x019011b9, 0x006c7985, 0x038af914, 0x003329b9}}},
+ {X: Field{[10]uint32{0x036d741a, 0x026353da, 0x02b60bf6, 0x0098c45e, 0x00b8f852, 0x00d9f421, 0x0076281b, 0x0139ce54, 0x0231a18f, 0x00187264}}, Y: Field{[10]uint32{0x026cbfe5, 0x0102051b, 0x019299d3, 0x02c19f52, 0x01af886d, 0x02823006, 0x00616090, 0x0074c192, 0x03979e7f, 0x00208c52}}},
+ {X: Field{[10]uint32{0x02b34304, 0x0182ff5a, 0x00db73ed, 0x00bdb1af, 0x02d4072a, 0x0244cc86, 0x03114fc7, 0x014a64e9, 0x03ef32c5, 0x001296b3}}, Y: Field{[10]uint32{0x020c03c9, 0x006c15a6, 0x024da9f6, 0x02252bfe, 0x0301323e, 0x012c9b6f, 0x03f9f296, 0x0166c9a6, 0x0229c068, 0x0001ca56}}},
+ {X: Field{[10]uint32{0x037f4023, 0x03d6da2e, 0x02d487d4, 0x004d085a, 0x02604e50, 0x0197b2b1, 0x036dcb6c, 0x012530ac, 0x0355866f, 0x0038119d}}, Y: Field{[10]uint32{0x00b336b3, 0x01690b0c, 0x02029d9e, 0x01d4a3b3, 0x01ae9459, 0x0098626b, 0x032f9558, 0x03e86fd4, 0x03c5974d, 0x0037ab40}}},
+ {X: Field{[10]uint32{0x03215ea7, 0x03034aee, 0x0059640d, 0x01808211, 0x01c4e8be, 0x016c788c, 0x014ca74b, 0x017f7d6d, 0x0305c926, 0x001a1bf7}}, Y: Field{[10]uint32{0x017ea7da, 0x018794f5, 0x01710b65, 0x03cb1640, 0x03c93723, 0x03fcd9de, 0x02f950eb, 0x02e5d02b, 0x021cedf9, 0x003d350f}}},
+ {X: Field{[10]uint32{0x03d21253, 0x017b2ee2, 0x01cb9fce, 0x009347c5, 0x03e2bcd9, 0x00365b4b, 0x022b7d7b, 0x02c833a9, 0x018500f9, 0x000491da}}, Y: Field{[10]uint32{0x03522004, 0x03785b4a, 0x03842e32, 0x03c90f75, 0x033f1950, 0x010e2702, 0x027b356b, 0x013f190e, 0x00b39e90, 0x0034d0df}}},
+ {X: Field{[10]uint32{0x02d17b1b, 0x0220098a, 0x0324e453, 0x007b4be9, 0x03b5eb1e, 0x0027d95e, 0x03322910, 0x0326cb96, 0x00ec9a87, 0x00195af7}}, Y: Field{[10]uint32{0x012fa64d, 0x00f738be, 0x01d116aa, 0x00c345f0, 0x030cdfc8, 0x03f7023f, 0x03f704b3, 0x0393dfd8, 0x010c47b6, 0x0031dd23}}},
+ {X: Field{[10]uint32{0x0083e4b5, 0x02fae5ad, 0x0004c3ae, 0x00f983af, 0x027a3d40, 0x020f3b44, 0x0279b244, 0x00584832, 0x010e0f72, 0x0016dfdc}}, Y: Field{[10]uint32{0x03b08080, 0x03dca12f, 0x0386b698, 0x01caf65a, 0x0011db4b, 0x0396a7bb, 0x00196e8d, 0x022bb98d, 0x03a7f068, 0x0006d455}}},
+ {X: Field{[10]uint32{0x01e6b4da, 0x034f4128, 0x00deabc8, 0x00f6074b, 0x01254521, 0x003e4361, 0x015bf184, 0x029bd55e, 0x02d0552b, 0x002ff299}}, Y: Field{[10]uint32{0x01754e75, 0x01b746bc, 0x0069084b, 0x0282f776, 0x00223043, 0x0032ce84, 0x00c46383, 0x01095f01, 0x00cc290d, 0x0012442c}}},
+ {X: Field{[10]uint32{0x00496f16, 0x01980ca2, 0x009247f5, 0x006f3b1c, 0x001447c1, 0x0015ef45, 0x018f8ef2, 0x032ef91e, 0x028fb79d, 0x00198fe9}}, Y: Field{[10]uint32{0x03c41786, 0x009ea9a0, 0x03951f2b, 0x028aacc3, 0x00a42597, 0x00747d08, 0x005598a9, 0x02f48f62, 0x02fa1f3b, 0x000eb38b}}},
+ {X: Field{[10]uint32{0x015c4321, 0x017c7792, 0x03004608, 0x02b82033, 0x017c1675, 0x0379a289, 0x02f2f86e, 0x02e3c87f, 0x03338a3d, 0x0009f338}}, Y: Field{[10]uint32{0x00d373ae, 0x01aa0ac9, 0x01c294b1, 0x027f68aa, 0x037aefa6, 0x018f53f7, 0x0144a002, 0x0391cbac, 0x018c8bab, 0x001c55af}}},
+ {X: Field{[10]uint32{0x00bd9560, 0x016f1359, 0x00ce35aa, 0x012c703a, 0x03b727be, 0x00f15d7b, 0x027940e1, 0x017026f8, 0x02c452ec, 0x00352701}}, Y: Field{[10]uint32{0x038d18b0, 0x01d48e39, 0x033c2f51, 0x022551b7, 0x015d7ad7, 0x02680d8d, 0x0266469f, 0x004029ca, 0x0118b298, 0x000b194d}}},
+ {X: Field{[10]uint32{0x004ad08a, 0x0005fdd5, 0x01129cfa, 0x03f442bf, 0x023d7bf4, 0x01034ef5, 0x00ecd251, 0x02009b4f, 0x007ebd02, 0x001a5820}}, Y: Field{[10]uint32{0x020e7c7c, 0x02bab024, 0x03f4cf7b, 0x020eaa6a, 0x036f9a63, 0x02f69af7, 0x03cb5465, 0x03eb9cad, 0x004f28be, 0x0029e141}}},
+ {X: Field{[10]uint32{0x01f8faa1, 0x02d4c94f, 0x03aa1ede, 0x03156953, 0x02fc9263, 0x0295f6eb, 0x0375abeb, 0x00e9c68e, 0x033654b6, 0x0020e0af}}, Y: Field{[10]uint32{0x0049b011, 0x003f3c42, 0x026dcb6d, 0x00f6515d, 0x02dc9bef, 0x0189d987, 0x021da269, 0x032d4d11, 0x01dcc319, 0x003817ae}}},
+ {X: Field{[10]uint32{0x02b0bffb, 0x0168f452, 0x0379acc4, 0x026bd814, 0x02b7e705, 0x02a4cbc8, 0x008cca9f, 0x021db9e3, 0x037930ec, 0x00200ee4}}, Y: Field{[10]uint32{0x01e5790f, 0x02bc1195, 0x01152b52, 0x03745f34, 0x01cb90d1, 0x01e1a51c, 0x03ec7d0b, 0x03470b1b, 0x001c5202, 0x001f6c8d}}},
+ {X: Field{[10]uint32{0x02c5292c, 0x022e8474, 0x03e08f99, 0x003a2591, 0x02cb78fb, 0x01cfeac0, 0x0165ff4f, 0x02ba7c44, 0x01290ab6, 0x0032d36c}}, Y: Field{[10]uint32{0x03d1c9c2, 0x01506235, 0x02e9ef61, 0x00235d53, 0x02745c24, 0x02ecd9bf, 0x0280ad65, 0x00e12ed6, 0x039a1776, 0x000332bb}}},
+ {X: Field{[10]uint32{0x00d115a2, 0x014ab37b, 0x0179aa81, 0x01ee1325, 0x038fd6af, 0x0301c3f1, 0x038be8af, 0x03d9c8e0, 0x035750e9, 0x003eaca1}}, Y: Field{[10]uint32{0x00b3f065, 0x00452430, 0x024956c3, 0x00c7671b, 0x03764ee9, 0x02ba14c0, 0x017d3b83, 0x0158b54e, 0x002889cd, 0x003567f8}}},
+ {X: Field{[10]uint32{0x0249bbc1, 0x00092159, 0x0376c198, 0x01335a96, 0x02fbdf84, 0x0020cf84, 0x02e3f036, 0x03b8f43d, 0x02baf870, 0x003761e7}}, Y: Field{[10]uint32{0x0143c55a, 0x011c5b26, 0x038f7309, 0x00ab1a94, 0x00b041a1, 0x0355a5b2, 0x03a324c1, 0x01704775, 0x00c3a99a, 0x0039eec1}}},
+ {X: Field{[10]uint32{0x00f8016e, 0x03330120, 0x00d8ed00, 0x01d06d7e, 0x031df68f, 0x0095cac4, 0x01319d57, 0x01a87b6a, 0x03be29b0, 0x001ea92b}}, Y: Field{[10]uint32{0x03fe7130, 0x0252c5d4, 0x00d2dc9d, 0x00364df0, 0x02423fd0, 0x0080ae5c, 0x002e3c13, 0x02161dfc, 0x029fb77b, 0x00057de6}}},
+ {X: Field{[10]uint32{0x0039f890, 0x03933163, 0x0168ba19, 0x03a455c7, 0x00c34354, 0x00b5b998, 0x03fee64f, 0x00c99575, 0x03f5876a, 0x0024517c}}, Y: Field{[10]uint32{0x0285d8ff, 0x03368a2c, 0x036c998e, 0x00755d9a, 0x0337650c, 0x0284235b, 0x009ba7fd, 0x027f416f, 0x015dcf36, 0x0011782a}}},
+ {X: Field{[10]uint32{0x0111ac9e, 0x03dd03d1, 0x0131713d, 0x03224688, 0x00a5a7f6, 0x001dfcf7, 0x0337afa2, 0x0004347b, 0x035236fb, 0x0015142d}}, Y: Field{[10]uint32{0x026ba175, 0x03c0603f, 0x01ef08b6, 0x00e99c42, 0x0313ff56, 0x037b4b5e, 0x021084d3, 0x03e1b537, 0x015762be, 0x0029f1fb}}},
+ {X: Field{[10]uint32{0x00666a0f, 0x00b3e230, 0x001b84c3, 0x01bf44d4, 0x01bbf276, 0x0105f41d, 0x00256d67, 0x0378b32e, 0x01725e48, 0x002e9b03}}, Y: Field{[10]uint32{0x0125e442, 0x0061bcf9, 0x006405ed, 0x012e46f3, 0x02bdecd6, 0x0296640c, 0x02da6693, 0x00a67d43, 0x01327137, 0x00334aa4}}},
+ {X: Field{[10]uint32{0x0205c921, 0x036dece5, 0x00b0553a, 0x0276ab56, 0x01d25a64, 0x0263ef7d, 0x011006b7, 0x03aed1bf, 0x01ff1fee, 0x002e5208}}, Y: Field{[10]uint32{0x01077c05, 0x03162afe, 0x0365a72d, 0x02bbbb10, 0x01f45ccf, 0x015d2bf3, 0x003d950c, 0x024a8b1f, 0x03a079bb, 0x00085626}}},
+ {X: Field{[10]uint32{0x01a0681d, 0x0221e7c3, 0x01f8198f, 0x037a4f58, 0x00432f14, 0x02a58f32, 0x00e0d7a5, 0x01f1dadc, 0x0046497f, 0x001190d9}}, Y: Field{[10]uint32{0x01c83a5f, 0x03982352, 0x012398a3, 0x0396cfb2, 0x0348c367, 0x03a89797, 0x01a8aab5, 0x03604043, 0x024e90c4, 0x000a4d12}}},
+ {X: Field{[10]uint32{0x00c1ae1d, 0x02c2ce39, 0x00d0802b, 0x005d6ea8, 0x01bd3be9, 0x02f2c33c, 0x019185b7, 0x0042f925, 0x02c6a2e2, 0x002f6396}}, Y: Field{[10]uint32{0x01b1fa19, 0x03c22a8b, 0x000a94ed, 0x0069f0fb, 0x0269c6f7, 0x03b22229, 0x03773a5e, 0x025d5769, 0x03e46dcc, 0x001ace06}}},
+ {X: Field{[10]uint32{0x01f22493, 0x03463fe6, 0x0231974c, 0x024ece50, 0x017fb645, 0x022b39db, 0x00c34055, 0x029e943d, 0x021ac428, 0x00309f07}}, Y: Field{[10]uint32{0x019cf57c, 0x013e4671, 0x004a4954, 0x03cf0178, 0x0025108a, 0x02a7d665, 0x031884cf, 0x01ece872, 0x0261c12f, 0x003f2575}}},
+ {X: Field{[10]uint32{0x03eb30d5, 0x00ebc89d, 0x03c029e5, 0x00050103, 0x0044c17c, 0x0364119b, 0x028168ee, 0x01329549, 0x0161837e, 0x00285d95}}, Y: Field{[10]uint32{0x02c28eb5, 0x022d9b2d, 0x015aecfc, 0x01d743e8, 0x033032c7, 0x0039b8bd, 0x0255d0b3, 0x0222ff35, 0x01e2b8d4, 0x00228b7b}}},
+ {X: Field{[10]uint32{0x01ddbea9, 0x03a63060, 0x02f93b03, 0x00de0c03, 0x00e9eea7, 0x01e2e8da, 0x029279f6, 0x0332461f, 0x030d35ca, 0x000afda4}}, Y: Field{[10]uint32{0x0225209d, 0x03e81a79, 0x00db46e2, 0x00c30d74, 0x02d0f3f9, 0x0232a385, 0x03ee5383, 0x022ec0ff, 0x01433aaa, 0x00228b53}}},
+ {X: Field{[10]uint32{0x0077c8d7, 0x019a9c1a, 0x0056a6a0, 0x01680e96, 0x00a36d08, 0x019d5649, 0x03005f4d, 0x02bbf643, 0x03259cc5, 0x001d9a9d}}, Y: Field{[10]uint32{0x00049190, 0x03078cd2, 0x03dc4171, 0x0012fd02, 0x0090b46d, 0x03a4e3bc, 0x01bfad15, 0x038b9fc1, 0x00974fd9, 0x0036cfeb}}},
+ {X: Field{[10]uint32{0x00461268, 0x024bfe46, 0x03242887, 0x038e6a44, 0x02134196, 0x025cca76, 0x00c333c0, 0x0087517f, 0x00cd953f, 0x00349698}}, Y: Field{[10]uint32{0x010c7863, 0x03c9339e, 0x0270f397, 0x026240d4, 0x00a07ad5, 0x008d4a60, 0x03874e71, 0x020d7f6e, 0x03e8bd04, 0x00226fca}}},
+ {X: Field{[10]uint32{0x02d95d68, 0x03f90a72, 0x000b360d, 0x021a3286, 0x019bf569, 0x01997abf, 0x021f467b, 0x0096c99c, 0x029e8b71, 0x0031eca3}}, Y: Field{[10]uint32{0x0295c398, 0x030ea9e7, 0x02167b37, 0x00d1d91a, 0x009ec7bf, 0x02f291da, 0x03947ed8, 0x02d869c7, 0x0158b3a7, 0x0002b0a3}}},
+ {X: Field{[10]uint32{0x0059bc24, 0x02cd375f, 0x03a97ce8, 0x01803c7d, 0x0120c291, 0x033f3a61, 0x022d7a74, 0x0230a6b6, 0x008ac61f, 0x0038a948}}, Y: Field{[10]uint32{0x01c70830, 0x0367d6cf, 0x00e4a880, 0x009dddff, 0x03a152ce, 0x03a438e0, 0x034483b4, 0x02281332, 0x02144970, 0x00037a2e}}},
+ {X: Field{[10]uint32{0x02e205b1, 0x0112b7c4, 0x03ca53e8, 0x000620a1, 0x016976e0, 0x0150259f, 0x032b152a, 0x037e574e, 0x00cd02e8, 0x00387a39}}, Y: Field{[10]uint32{0x03bfc9e2, 0x03633bd0, 0x02491a77, 0x025fd51a, 0x020d34aa, 0x008cdc8f, 0x03f00918, 0x0151ef2c, 0x02f9cdc7, 0x002976f1}}},
+ {X: Field{[10]uint32{0x012b6512, 0x0152fc27, 0x0375bea4, 0x02cee257, 0x023c3143, 0x03cec70a, 0x02284803, 0x013954ac, 0x02514a68, 0x002c83c2}}, Y: Field{[10]uint32{0x000d02c9, 0x0376a5ba, 0x02c31e0e, 0x02173513, 0x00f7c955, 0x0250681f, 0x000b0c31, 0x00345027, 0x0380676d, 0x002f0f6c}}},
+ {X: Field{[10]uint32{0x0029d3ec, 0x029a5a83, 0x009499cf, 0x0326e5d2, 0x039582cb, 0x001eb25b, 0x00d9d8d4, 0x02fdde53, 0x0123b1ad, 0x002dc69a}}, Y: Field{[10]uint32{0x00b4f151, 0x03f38699, 0x03b1c89b, 0x03b9d9e7, 0x027b6d75, 0x00e31cb4, 0x03113c8d, 0x01563ee4, 0x03899d59, 0x001d4608}}},
+ {X: Field{[10]uint32{0x03d3bb3f, 0x013571a9, 0x01a65200, 0x017c3677, 0x00a82f41, 0x01d595e2, 0x00ef76c0, 0x00e34633, 0x01ac68ba, 0x003291eb}}, Y: Field{[10]uint32{0x028701df, 0x02b41412, 0x0137842f, 0x0130e5a7, 0x02ccd845, 0x00597f56, 0x0035385e, 0x00ce0910, 0x00ab1b78, 0x0002f566}}},
+ {X: Field{[10]uint32{0x0140e441, 0x03e6740b, 0x025eea45, 0x0313667d, 0x014fb989, 0x03757932, 0x034eeece, 0x03a7ba7e, 0x0148acee, 0x0017eb78}}, Y: Field{[10]uint32{0x033831f0, 0x00775335, 0x031cb5e6, 0x032ce50f, 0x0015afd1, 0x02374b00, 0x01104cac, 0x015606b1, 0x023ae82e, 0x002e9bf2}}},
+ {X: Field{[10]uint32{0x025f84e9, 0x02b698ff, 0x0049e8ad, 0x014798ce, 0x02e834c8, 0x0073cc3e, 0x000ba01a, 0x033c0024, 0x01d214fc, 0x001d9f72}}, Y: Field{[10]uint32{0x00404639, 0x00c85799, 0x017d69ee, 0x03466b86, 0x0101a5bc, 0x03f5f2ff, 0x02b97a52, 0x003958b5, 0x0111aca3, 0x00231942}}},
+ {X: Field{[10]uint32{0x024f06d9, 0x01c5e2df, 0x0286b91d, 0x035d1df9, 0x01523544, 0x030f01b6, 0x02a7648f, 0x00a88176, 0x0161445e, 0x0009fe3e}}, Y: Field{[10]uint32{0x02a73a60, 0x01f37f60, 0x00172042, 0x010886fa, 0x02379332, 0x02de7977, 0x0196bce6, 0x01efa5d5, 0x032782cd, 0x000e4442}}},
+ {X: Field{[10]uint32{0x033de668, 0x000c594f, 0x035bc6a4, 0x02260e5c, 0x008a1b28, 0x01e77792, 0x024070bf, 0x01792eb6, 0x005b343b, 0x00237812}}, Y: Field{[10]uint32{0x02d5729d, 0x033eb883, 0x021431c2, 0x01ca0c0b, 0x0212fbba, 0x03164492, 0x011c1a44, 0x0383df5f, 0x03676f43, 0x00240c15}}},
+ {X: Field{[10]uint32{0x012df0ff, 0x03973165, 0x01fe1b68, 0x0287bb25, 0x005b6af8, 0x039c030a, 0x038d3188, 0x03a2ba2a, 0x036c8770, 0x001790f6}}, Y: Field{[10]uint32{0x006c7aa6, 0x00a90e54, 0x01f90ae0, 0x00f4dc1d, 0x009aeebb, 0x0179671e, 0x02a10911, 0x02f3f8e8, 0x028dd85f, 0x001a2098}}},
+ {X: Field{[10]uint32{0x01a4ed54, 0x0047d096, 0x037a0893, 0x00f3b7fa, 0x03610286, 0x00b7c508, 0x00af4e35, 0x00c0379f, 0x02ab4bf4, 0x001f6cae}}, Y: Field{[10]uint32{0x038e8a84, 0x0009bf85, 0x000cbd33, 0x01328f53, 0x01e553a8, 0x02164273, 0x03fbbcd6, 0x0112f8c0, 0x01a2fbbb, 0x000e1d58}}},
+ {X: Field{[10]uint32{0x0196c6f1, 0x0134436e, 0x00bbefc0, 0x0332aee4, 0x00cdbefd, 0x00cb6cf9, 0x03df9e82, 0x01a21f47, 0x01253910, 0x0025b6a1}}, Y: Field{[10]uint32{0x03f9edcc, 0x00f4c026, 0x00509402, 0x024adff3, 0x0345948c, 0x0370cca1, 0x035d6513, 0x01cd067e, 0x02314912, 0x001949c6}}},
+ {X: Field{[10]uint32{0x01d50613, 0x029e122b, 0x03b0081b, 0x003eb2e5, 0x0264cd4c, 0x00e2d217, 0x03a51fa8, 0x004a13d6, 0x01cb14eb, 0x00213bfc}}, Y: Field{[10]uint32{0x02febd9e, 0x01e314a9, 0x004fc7f5, 0x0044cbca, 0x03609f45, 0x033a0631, 0x01e602b6, 0x002a35ec, 0x01c8a654, 0x000249b2}}},
+ {X: Field{[10]uint32{0x02adfbbe, 0x00665078, 0x017057fe, 0x02489756, 0x00416e6a, 0x02fe5280, 0x02e60007, 0x00a83fd7, 0x03718e2a, 0x0007ae58}}, Y: Field{[10]uint32{0x0005b855, 0x027da84c, 0x01bb009c, 0x008f3fc3, 0x02d3cf05, 0x00018e6a, 0x03d40115, 0x0377eb70, 0x02d89635, 0x00121c2a}}},
+ {X: Field{[10]uint32{0x03bdc098, 0x01372e1d, 0x03fd8d45, 0x0287dda0, 0x03c75fd4, 0x02bc64f7, 0x01a8696b, 0x03cc1c6f, 0x036a6ea3, 0x000a6528}}, Y: Field{[10]uint32{0x03856766, 0x00b1312f, 0x02eb3fc8, 0x000c6dda, 0x009969bf, 0x025bf4fa, 0x006bd0be, 0x00f5335e, 0x00eea727, 0x0039197a}}},
+ {X: Field{[10]uint32{0x0126c414, 0x01d63567, 0x03c00237, 0x032edfcb, 0x01d2b68f, 0x038b65f6, 0x01b115b5, 0x015e8b0a, 0x0370f3d3, 0x000979fe}}, Y: Field{[10]uint32{0x0356c4f2, 0x0099dcfc, 0x02631fed, 0x00c3beb2, 0x00206b73, 0x00ea1aae, 0x0130fa01, 0x02257afd, 0x0370a3bb, 0x00125668}}},
+ {X: Field{[10]uint32{0x007c0623, 0x035624cd, 0x020ea0df, 0x01496221, 0x03c3945c, 0x0359af16, 0x030481a2, 0x01aef867, 0x039880bf, 0x003f0e1f}}, Y: Field{[10]uint32{0x009d67c4, 0x0198faed, 0x001ff16e, 0x01d03042, 0x027ba332, 0x00d1812a, 0x01d07af7, 0x03c0ca72, 0x000e83ca, 0x002275ee}}},
+ {X: Field{[10]uint32{0x0201e1d4, 0x000ca53f, 0x03a99e2f, 0x02d00217, 0x00ef5c00, 0x03c5ddc8, 0x0220fa82, 0x0327f840, 0x0368c25f, 0x003142bc}}, Y: Field{[10]uint32{0x017579fb, 0x02532dae, 0x0131ba42, 0x003e5e32, 0x0327d9f1, 0x03a52bde, 0x012b80d9, 0x00c25024, 0x03264198, 0x0030ddde}}},
+ {X: Field{[10]uint32{0x00041f94, 0x01d85f84, 0x01bea7c9, 0x0121553d, 0x00d7015c, 0x010697c8, 0x02003629, 0x0366ea8b, 0x0109d524, 0x00283e74}}, Y: Field{[10]uint32{0x010e9ad0, 0x00f18a9c, 0x019f1daf, 0x00e80e9a, 0x012eae92, 0x01915838, 0x0277ff2c, 0x0384200f, 0x0002daa5, 0x000a3147}}},
+ {X: Field{[10]uint32{0x00316de1, 0x0218a8d2, 0x03a285da, 0x008f2f37, 0x032138bc, 0x0020012c, 0x03271389, 0x02dc2161, 0x02270058, 0x00107449}}, Y: Field{[10]uint32{0x001b9673, 0x037d3c1f, 0x02999d29, 0x029243ac, 0x00341d90, 0x03545764, 0x015f4513, 0x033b2572, 0x0029153b, 0x000189dc}}},
+ {X: Field{[10]uint32{0x0299ca87, 0x003e159b, 0x0221cfb8, 0x02335875, 0x02577444, 0x00ceb6ce, 0x03afb77e, 0x03d50f64, 0x00cefe6c, 0x00251316}}, Y: Field{[10]uint32{0x004d66b5, 0x01cc5c0a, 0x03056e74, 0x022adf5e, 0x02329495, 0x01af2c88, 0x011c5576, 0x031c5f2a, 0x001c9b7f, 0x00301c7b}}},
+ {X: Field{[10]uint32{0x02437145, 0x02afafef, 0x00635f2b, 0x01645ca4, 0x009a27be, 0x023baed6, 0x0029bf18, 0x01c73a70, 0x0312e06d, 0x000cc1ea}}, Y: Field{[10]uint32{0x0061d213, 0x01aa5272, 0x014c3c6b, 0x03425f61, 0x014a6966, 0x0227a602, 0x008dd9bf, 0x0242451d, 0x00b928cf, 0x0022270f}}},
+ {X: Field{[10]uint32{0x01cb9ae6, 0x006dfcd1, 0x028acdee, 0x01c8b6da, 0x0272b745, 0x0090c1ed, 0x0203abd0, 0x00893932, 0x00111eb2, 0x0010aebc}}, Y: Field{[10]uint32{0x0212ee06, 0x0257ea8b, 0x00b11256, 0x0349cde7, 0x02879515, 0x02348b17, 0x0164bec3, 0x037a892d, 0x0128d608, 0x002fccb8}}},
+ {X: Field{[10]uint32{0x0002c621, 0x01321531, 0x006bfe73, 0x03028af2, 0x01166c69, 0x0043445d, 0x03be8981, 0x012f4127, 0x02bbbe7b, 0x00215aea}}, Y: Field{[10]uint32{0x0112ac0c, 0x035d0612, 0x0321b943, 0x025e7b51, 0x011f8251, 0x0388a7a2, 0x0024161b, 0x007f4f35, 0x03c9b6d3, 0x000928c8}}},
+ {X: Field{[10]uint32{0x024a9cd4, 0x01b60c34, 0x02c1c321, 0x03720172, 0x0195aeea, 0x03a0e0d3, 0x00c224ed, 0x0050f61d, 0x018ed998, 0x000e36f0}}, Y: Field{[10]uint32{0x027eae4a, 0x02247945, 0x00a03570, 0x03b9fe4d, 0x01271c6e, 0x0242ad71, 0x038e2eaa, 0x015de3a8, 0x0126f7e8, 0x0009cfb0}}},
+ {X: Field{[10]uint32{0x0188dc59, 0x007ae052, 0x00d92c98, 0x019697d2, 0x015e24c0, 0x020dd2bc, 0x026bb20c, 0x008ca4c5, 0x005bffcd, 0x000d6772}}, Y: Field{[10]uint32{0x03bf39c6, 0x0058beaf, 0x0184ae58, 0x000fdded, 0x02c4a057, 0x010def7f, 0x0237d06e, 0x01622e40, 0x01f7deef, 0x0037977b}}},
+ {X: Field{[10]uint32{0x023666ea, 0x028d6df1, 0x0283bb1c, 0x01d275fc, 0x031d872a, 0x0297cf69, 0x022f73a6, 0x007220f7, 0x0065e2e9, 0x003841a0}}, Y: Field{[10]uint32{0x03752cd9, 0x0347c05c, 0x00523c5e, 0x03eb2375, 0x01a7e155, 0x01da140d, 0x0128afaa, 0x0021461e, 0x0252b5df, 0x0020430e}}},
+ {X: Field{[10]uint32{0x03b19d83, 0x02141b76, 0x033c70fd, 0x01b72f57, 0x00b56495, 0x03377f7f, 0x03171830, 0x032699b8, 0x037137e7, 0x00141d9f}}, Y: Field{[10]uint32{0x00d4fff8, 0x00e19928, 0x039fa5e3, 0x019d58f6, 0x02393b61, 0x03cb82b8, 0x03d24dd3, 0x017fb601, 0x015f5e9d, 0x003870b7}}},
+ {X: Field{[10]uint32{0x02e65864, 0x02d66039, 0x00a725a0, 0x017fd4f6, 0x035e0127, 0x03f3a84d, 0x0216d0de, 0x020d57c4, 0x03f0cdf8, 0x001133b2}}, Y: Field{[10]uint32{0x011cd40e, 0x030eb5bd, 0x00d2e025, 0x008bc572, 0x02e8e3f0, 0x019ef18d, 0x0290550e, 0x03a6e7b8, 0x028e5094, 0x00011a55}}},
+ {X: Field{[10]uint32{0x02aa18b3, 0x038d11e5, 0x005e886c, 0x024980b8, 0x0387ed8a, 0x02bf28ae, 0x02fe5976, 0x02c1fbe8, 0x00ea43cb, 0x00060c32}}, Y: Field{[10]uint32{0x031da49d, 0x0077610b, 0x01d658bf, 0x03ead511, 0x013c8ce2, 0x03e8c704, 0x03562037, 0x02bb9d9f, 0x0328e064, 0x0037d544}}},
+ {X: Field{[10]uint32{0x019326c6, 0x0242a92f, 0x02b799bf, 0x03ab13e3, 0x00708245, 0x0107d3b9, 0x0033417a, 0x01eac947, 0x037a473a, 0x00163552}}, Y: Field{[10]uint32{0x009b2a85, 0x01168bb1, 0x027891ce, 0x024febd7, 0x02a16920, 0x02c72cb2, 0x00c331bf, 0x0381f329, 0x033815e2, 0x0028647c}}},
+ {X: Field{[10]uint32{0x02c6792c, 0x024ad544, 0x01af7ba1, 0x01b913a0, 0x0170a18b, 0x00bf2618, 0x03af1044, 0x0204b980, 0x02049507, 0x003c3739}}, Y: Field{[10]uint32{0x03b966e4, 0x029ec26e, 0x015ce3ad, 0x02d31536, 0x004cc60e, 0x033c3d58, 0x0248df55, 0x01bb588f, 0x0221b5e8, 0x00308868}}},
+ {X: Field{[10]uint32{0x01dd2ab5, 0x02e94156, 0x013d40d7, 0x033eb94a, 0x02e4b958, 0x0112c9ab, 0x02aaa046, 0x00c0aca1, 0x01e572c0, 0x0010bec2}}, Y: Field{[10]uint32{0x01f2299f, 0x0206f546, 0x00099437, 0x02a09d25, 0x03f46e1b, 0x020f9f45, 0x007ec769, 0x01a223ef, 0x0173a00e, 0x001e7041}}},
+ {X: Field{[10]uint32{0x03502ecb, 0x034104bc, 0x005deea2, 0x02f222c0, 0x00935465, 0x0036b443, 0x028db25e, 0x00326a18, 0x0151ddae, 0x001eb7c5}}, Y: Field{[10]uint32{0x01acfd20, 0x01621bca, 0x01a9bb3c, 0x019e7651, 0x012e031e, 0x02744428, 0x01ef5c36, 0x03aa4832, 0x03a2143c, 0x00195f02}}},
+ {X: Field{[10]uint32{0x002c7a5a, 0x03f6470a, 0x013454df, 0x0324a049, 0x013a7bfd, 0x03f0bd6f, 0x0271310a, 0x03da9b58, 0x00b956fd, 0x00375692}}, Y: Field{[10]uint32{0x00a52657, 0x03df305f, 0x021e385d, 0x03364685, 0x002ac6b0, 0x02564119, 0x03521072, 0x01fcdbea, 0x00372e06, 0x001ce434}}},
+ {X: Field{[10]uint32{0x021466fe, 0x01b0b622, 0x0301d293, 0x00ec74d8, 0x0013ac76, 0x00134b38, 0x01c783b1, 0x011652f8, 0x00b51537, 0x0018c614}}, Y: Field{[10]uint32{0x0190882e, 0x03cc8a31, 0x03a8578b, 0x000addfb, 0x022016d2, 0x015ca6b3, 0x0241416c, 0x01f912a4, 0x021ea9b6, 0x00092433}}},
+ {X: Field{[10]uint32{0x03a0bca5, 0x02c381bc, 0x028e0741, 0x01a6f71a, 0x00244668, 0x00e8f331, 0x0185cd58, 0x0088a6bb, 0x01e4d673, 0x000ccb8e}}, Y: Field{[10]uint32{0x017578e7, 0x01135217, 0x025aa602, 0x0037d351, 0x00b66ac3, 0x01d2b597, 0x018b1b40, 0x014ab829, 0x030360db, 0x00242103}}},
+ {X: Field{[10]uint32{0x022f0c97, 0x0144e90d, 0x00980de7, 0x02ca479c, 0x01d72c0e, 0x00994cbc, 0x027224e8, 0x03870595, 0x0156f0c7, 0x00378065}}, Y: Field{[10]uint32{0x00411ea3, 0x002bb61a, 0x03e479af, 0x02f5925d, 0x01d75fa5, 0x018e094a, 0x022227a6, 0x02210105, 0x039d1cc9, 0x000e68f5}}},
+ {X: Field{[10]uint32{0x00ed859f, 0x0128b2c9, 0x002a6809, 0x01b28fe4, 0x024f81b7, 0x006e0b91, 0x02ffbf26, 0x036a0031, 0x00c8e675, 0x00131130}}, Y: Field{[10]uint32{0x0245ac34, 0x00ad64c3, 0x0224663b, 0x025c68e8, 0x00c54978, 0x010eae2b, 0x03f28002, 0x01177b63, 0x02881ecc, 0x0016787b}}},
+ {X: Field{[10]uint32{0x009286a2, 0x00d953cc, 0x03d28279, 0x02f844f9, 0x02a4e0dc, 0x017773b1, 0x01f4d1a8, 0x03867970, 0x01b80481, 0x003980ce}}, Y: Field{[10]uint32{0x009d9d59, 0x0229c1a9, 0x0372d1b0, 0x03e51cdf, 0x00bc58e3, 0x034a96a6, 0x01c7998e, 0x02507ed4, 0x02cca607, 0x002687ba}}},
+ {X: Field{[10]uint32{0x00a25e66, 0x0340b0f6, 0x01be0d44, 0x015714a1, 0x010c6ad9, 0x0023ffb1, 0x00bc4727, 0x024bce7d, 0x02e30e72, 0x00043d0b}}, Y: Field{[10]uint32{0x00916a25, 0x02a5d73b, 0x01106034, 0x0037c069, 0x00183e13, 0x0259f3c5, 0x01d5f2bc, 0x038a3f6e, 0x01f053eb, 0x0001bcd9}}},
+ {X: Field{[10]uint32{0x0329c445, 0x014f6199, 0x01548b6d, 0x02b964ea, 0x03703af3, 0x031635d2, 0x02fb0f31, 0x019a1df4, 0x01cad128, 0x001f824c}}, Y: Field{[10]uint32{0x036b0b0b, 0x00485d07, 0x03ffbf5a, 0x03e489dc, 0x00a9c34a, 0x0015bd32, 0x03caf7e8, 0x02d07598, 0x01fc75ea, 0x0001792e}}},
+ {X: Field{[10]uint32{0x03963f22, 0x00450d55, 0x00f1c6a0, 0x03036c9e, 0x01b7f1ac, 0x020d8bdf, 0x014cd1a7, 0x00f1b3fc, 0x037ef961, 0x000d8c4f}}, Y: Field{[10]uint32{0x03d7edc2, 0x006ead10, 0x03a69864, 0x0246e998, 0x0033960a, 0x01250817, 0x006627f5, 0x0108c52b, 0x02ab02a9, 0x00079a51}}},
+ {X: Field{[10]uint32{0x0069fe01, 0x03b15d0a, 0x033bb55c, 0x0164bf23, 0x0283f9ba, 0x03aa8ba7, 0x0218a63c, 0x030996cb, 0x02d88eed, 0x00088fbb}}, Y: Field{[10]uint32{0x01bbd71c, 0x00842570, 0x025ffeff, 0x02e35a1f, 0x005593f7, 0x00b5cb44, 0x0232cc89, 0x026ff3cd, 0x01734ae2, 0x001c8488}}},
+ {X: Field{[10]uint32{0x00b3ec20, 0x01e9698a, 0x035fc31b, 0x02f3e6a6, 0x0160dbb2, 0x021e5684, 0x03b9b321, 0x00b1780f, 0x02c93330, 0x002daf57}}, Y: Field{[10]uint32{0x019dd495, 0x0074b672, 0x0242cd0f, 0x03ce6d0a, 0x0034f373, 0x00ed22eb, 0x01f051d6, 0x0397fac5, 0x03f298a8, 0x003ee7e1}}},
+ {X: Field{[10]uint32{0x00e24668, 0x02a2c053, 0x012c98f0, 0x02fcee3e, 0x025a802d, 0x023f55eb, 0x03f69ce0, 0x0093ec55, 0x03603b1c, 0x0028d969}}, Y: Field{[10]uint32{0x000a89f9, 0x02fb0fd7, 0x037606f2, 0x02d06c34, 0x02578005, 0x02606039, 0x0238cc72, 0x02af680a, 0x022b7746, 0x001cf990}}},
+ {X: Field{[10]uint32{0x03cebe6e, 0x017287b5, 0x0213aa23, 0x007b4de7, 0x03e24bac, 0x03511a81, 0x02dba309, 0x00dbdbd2, 0x03ac43e4, 0x003a1be3}}, Y: Field{[10]uint32{0x00a166af, 0x00f5b6fd, 0x01cd4a91, 0x0009df30, 0x00930b74, 0x00a8044d, 0x03a592c4, 0x02a6f5c4, 0x00efaa75, 0x00079eed}}},
+ {X: Field{[10]uint32{0x039bd5ac, 0x00fa1a3a, 0x015cc993, 0x038ba162, 0x0205cab3, 0x03f78768, 0x0109304c, 0x0155c76b, 0x01fad2b2, 0x003d695f}}, Y: Field{[10]uint32{0x037c1ff6, 0x02317a61, 0x029b0c76, 0x001afb2e, 0x008eb909, 0x02265e89, 0x018dad26, 0x00390754, 0x025e8fc9, 0x00349977}}},
+ {X: Field{[10]uint32{0x01f76c7b, 0x011651dd, 0x010f145c, 0x01f28afc, 0x01665660, 0x009192a7, 0x02fd8cab, 0x024dd1f9, 0x017a0725, 0x00387734}}, Y: Field{[10]uint32{0x02f9a20e, 0x03799012, 0x0278a130, 0x0339ae55, 0x00dff819, 0x008caf51, 0x009feb61, 0x021b4992, 0x0310023f, 0x003be8b0}}},
+ {X: Field{[10]uint32{0x03a801ff, 0x00e1b373, 0x00c3bafd, 0x03f73290, 0x03cb3774, 0x00176a6a, 0x0274b80a, 0x025ab46f, 0x03dd0849, 0x0020fe2a}}, Y: Field{[10]uint32{0x03c3f63d, 0x01f18e92, 0x002873d3, 0x00ddaa89, 0x001c85ff, 0x019a1a36, 0x02e792d9, 0x02c4395b, 0x0164329f, 0x00099faf}}},
+ {X: Field{[10]uint32{0x03259fae, 0x02e952d3, 0x02454ea9, 0x006bcd3f, 0x03ca324b, 0x01445216, 0x0087c716, 0x016a409d, 0x01796ca8, 0x00153327}}, Y: Field{[10]uint32{0x02b2da2a, 0x007682fe, 0x020f2e20, 0x030545f3, 0x023c6ce8, 0x03adba0e, 0x0016e9ed, 0x021875f4, 0x0071ef0b, 0x000630e4}}},
+ {X: Field{[10]uint32{0x01402ba4, 0x0070864c, 0x02a51635, 0x02b25039, 0x001c3f65, 0x0047e1d1, 0x0075ac1b, 0x0059538a, 0x012ae009, 0x002744a9}}, Y: Field{[10]uint32{0x00e81d2e, 0x038bc04e, 0x02e52bbe, 0x00b754fd, 0x03c6d7e4, 0x03d7eb58, 0x00d17f39, 0x0066bd06, 0x03342762, 0x0017feec}}},
+ {X: Field{[10]uint32{0x02496998, 0x00ed9979, 0x038244f2, 0x03c2dfbc, 0x00488007, 0x03c86ba9, 0x0030917f, 0x006a4734, 0x01b76682, 0x001966ff}}, Y: Field{[10]uint32{0x014784e0, 0x0139f289, 0x039db844, 0x023af087, 0x03d7321a, 0x022f091f, 0x01ef96b7, 0x03a168d0, 0x00bc4506, 0x000ab5c2}}},
+ {X: Field{[10]uint32{0x02b4670b, 0x004a5b97, 0x02413d60, 0x013d5cc4, 0x0276ba1b, 0x0055269a, 0x026a2538, 0x020dd121, 0x0233d4a0, 0x0038b313}}, Y: Field{[10]uint32{0x00672476, 0x00502269, 0x00e18797, 0x002e8eca, 0x0080497f, 0x01930dc6, 0x039780ea, 0x01fcd1ed, 0x0325347e, 0x0014a2ca}}},
+ {X: Field{[10]uint32{0x02edec68, 0x023840f9, 0x00131e24, 0x03133f2b, 0x01e8dbba, 0x02941580, 0x02164c0f, 0x030db26c, 0x039c9e21, 0x0014a702}}, Y: Field{[10]uint32{0x027125f4, 0x01c04a55, 0x037e4967, 0x017c272e, 0x026cb74f, 0x034b80e1, 0x0269e6ab, 0x032804cd, 0x002172a0, 0x001fe912}}},
+ {X: Field{[10]uint32{0x003b63a1, 0x034d54da, 0x01dda654, 0x01efacbc, 0x033d89e5, 0x0203ed96, 0x00d6532a, 0x01f47055, 0x03afbe6a, 0x000a275a}}, Y: Field{[10]uint32{0x01005400, 0x024c5a1f, 0x03b53388, 0x03c30f36, 0x03db149f, 0x01499e1d, 0x022c62c5, 0x02358583, 0x0063d3ce, 0x002007d2}}},
+ {X: Field{[10]uint32{0x010f14a1, 0x00bb3c1e, 0x0099e51f, 0x01616346, 0x022eab9b, 0x0096ad0c, 0x0005bb34, 0x019981f0, 0x00c9e3b3, 0x00345aa1}}, Y: Field{[10]uint32{0x0156dd07, 0x02d46614, 0x0231379b, 0x033c672c, 0x0146ec79, 0x02b5b83c, 0x03fc5ea4, 0x014ca3e7, 0x01ab1071, 0x000b1bd7}}},
+ {X: Field{[10]uint32{0x036348f1, 0x01c0ec5a, 0x01affd30, 0x03cfb2f8, 0x02a7062d, 0x010436ac, 0x00a6893e, 0x02fefd10, 0x00394fda, 0x00340f2b}}, Y: Field{[10]uint32{0x009d19f9, 0x006e8d11, 0x0040ae5d, 0x01b4e390, 0x035dc4a8, 0x037a56c6, 0x0185c087, 0x02cc5dc3, 0x03cef530, 0x000548c4}}},
+ {X: Field{[10]uint32{0x0063379b, 0x0081ed6a, 0x03101c89, 0x0012f125, 0x00d4c4b6, 0x03e5a616, 0x00a7d851, 0x0312a5df, 0x006ca673, 0x002d9acf}}, Y: Field{[10]uint32{0x01624da4, 0x01c2c18c, 0x005609a4, 0x03fc61fc, 0x004b00fa, 0x0055a587, 0x02c63cb7, 0x01aab120, 0x0163771c, 0x00152e89}}},
+ {X: Field{[10]uint32{0x018c8c45, 0x039145aa, 0x01e86236, 0x01a01e71, 0x002a43fb, 0x039f5cc2, 0x013127f4, 0x01f35f7f, 0x024411c4, 0x002f9a11}}, Y: Field{[10]uint32{0x026733da, 0x03eba160, 0x01f19a15, 0x030bf7ba, 0x017d78dd, 0x0273143a, 0x0395aaeb, 0x00da30b8, 0x0383c61d, 0x001e4a43}}},
+ {X: Field{[10]uint32{0x03cbde9b, 0x00afedeb, 0x00e0c5c6, 0x007e4748, 0x0004ca42, 0x03b8061e, 0x021de709, 0x03d18d35, 0x03a09f34, 0x0011e2b0}}, Y: Field{[10]uint32{0x030988bf, 0x00dd955e, 0x01c34f6e, 0x012fddfb, 0x02e4bc7d, 0x015d2d7d, 0x027526f5, 0x0042586b, 0x03b2ccbc, 0x003dd4bc}}},
+ {X: Field{[10]uint32{0x033dcfc8, 0x01905e63, 0x00796e70, 0x028301df, 0x037271a2, 0x026f5284, 0x00d7de9c, 0x01c6a675, 0x015af2ed, 0x001d17cd}}, Y: Field{[10]uint32{0x02e288b9, 0x010818e1, 0x01f6e672, 0x00998c31, 0x02d4fe88, 0x00c78664, 0x0105816c, 0x021fc27b, 0x01f46b0c, 0x00063a98}}},
+ {X: Field{[10]uint32{0x02760ce0, 0x02d483a1, 0x014b218d, 0x0238e2ae, 0x00a3157a, 0x00a1909f, 0x01aede59, 0x02a2c242, 0x016f9878, 0x001539ef}}, Y: Field{[10]uint32{0x01fb8e49, 0x03493cc3, 0x03f2ddc1, 0x0294d034, 0x00e04bdb, 0x01d7702d, 0x033c6386, 0x02d12347, 0x000dc1ea, 0x0035edf6}}},
+ {X: Field{[10]uint32{0x007d510e, 0x012807e8, 0x0120827e, 0x02b8f725, 0x0399b018, 0x0331bfaf, 0x006f5c7f, 0x010c7bcf, 0x03b655eb, 0x003fd5ab}}, Y: Field{[10]uint32{0x0191e371, 0x03a6d109, 0x03509655, 0x00403a89, 0x02ec7232, 0x01268a35, 0x00388b40, 0x02c71e7d, 0x01b842d7, 0x0026feaf}}},
+ {X: Field{[10]uint32{0x029cda72, 0x00e7487f, 0x02be382d, 0x01057fcf, 0x00ea511b, 0x0363a9e4, 0x01d02506, 0x023f219e, 0x0099ed29, 0x0030af30}}, Y: Field{[10]uint32{0x030f971f, 0x03b2d614, 0x03070aa1, 0x03c163be, 0x00825de4, 0x00bf4e31, 0x02c31a58, 0x03ddcd6d, 0x02c435ec, 0x001b1efc}}},
+ {X: Field{[10]uint32{0x00e2ec4e, 0x020061c2, 0x000f599a, 0x00da242e, 0x02c8549e, 0x0271a07f, 0x014b9a11, 0x00cc79b1, 0x01449811, 0x0008e0fc}}, Y: Field{[10]uint32{0x0133a1f9, 0x0182838d, 0x01cb1448, 0x00fa774d, 0x00d8fff0, 0x00111c3c, 0x00a999a7, 0x02dad64e, 0x011fd846, 0x0004ead0}}},
+ {X: Field{[10]uint32{0x02096048, 0x01afc31b, 0x016b817d, 0x01ca2778, 0x0209953f, 0x0293d499, 0x0244584b, 0x00762fe2, 0x01c0d4fa, 0x000bc89c}}, Y: Field{[10]uint32{0x03b42fc4, 0x0182d80b, 0x00ab57cd, 0x00f69bc5, 0x03a95717, 0x00fbd54f, 0x0332c226, 0x0143a2db, 0x005db40e, 0x00191bbc}}},
+ {X: Field{[10]uint32{0x01e951c7, 0x007c9a89, 0x01d089bf, 0x03682b69, 0x03809e7a, 0x02c047ba, 0x01be55cb, 0x01e89fbb, 0x031b0f06, 0x002ded26}}, Y: Field{[10]uint32{0x037c33ed, 0x037b8b1f, 0x033315b2, 0x00811641, 0x014a9b7f, 0x01f2c0ca, 0x02ec95c0, 0x001496b5, 0x00aca816, 0x003fb1d8}}},
+ {X: Field{[10]uint32{0x01409223, 0x0206a979, 0x03557941, 0x032e7c2b, 0x027765d4, 0x00b6be07, 0x01866eb1, 0x00f9725c, 0x01cad993, 0x000db238}}, Y: Field{[10]uint32{0x008b8fdf, 0x0064cab7, 0x00853e29, 0x017d4926, 0x0122f2e3, 0x0045baa5, 0x01cc7309, 0x008a0b5c, 0x02d0a025, 0x002257ad}}},
+ {X: Field{[10]uint32{0x001ed523, 0x01ef78ef, 0x00d6a6ee, 0x00455a13, 0x00fa5b8a, 0x0330ac38, 0x0173e018, 0x00d6484c, 0x01276328, 0x000f2fa4}}, Y: Field{[10]uint32{0x0244dc81, 0x03cc33f3, 0x03055e4d, 0x02cf4264, 0x01c5149a, 0x01d7c785, 0x030aa9dc, 0x01b26e65, 0x01c922f9, 0x001ecb4f}}},
+ {X: Field{[10]uint32{0x0247213c, 0x01fa5ed8, 0x02d164e6, 0x02640c53, 0x02fe0aec, 0x022c8e79, 0x0048d380, 0x0250648d, 0x0141c463, 0x001dba53}}, Y: Field{[10]uint32{0x01fa1278, 0x03061ac8, 0x03cb5a3b, 0x0392fca0, 0x03f9efe4, 0x01d7e8e3, 0x03460bfd, 0x001d2440, 0x02c32f01, 0x0023b929}}},
+ {X: Field{[10]uint32{0x031851ec, 0x03cd0cd2, 0x00c08506, 0x009e3bb0, 0x025b265d, 0x01ffa76e, 0x01749e00, 0x039f9e85, 0x01cb12c0, 0x00124e49}}, Y: Field{[10]uint32{0x0062b193, 0x02c5af13, 0x01a9a1f5, 0x003b6067, 0x02e4a240, 0x03dcc299, 0x02b318f9, 0x029195b2, 0x006b3960, 0x001c2403}}},
+ {X: Field{[10]uint32{0x003cdcbf, 0x01cebb71, 0x026b7511, 0x01aaa7d7, 0x00387330, 0x01208f4e, 0x0020eb4a, 0x00e4f5e6, 0x02bad1a1, 0x002cdff6}}, Y: Field{[10]uint32{0x0327030a, 0x03b18203, 0x0252f28f, 0x03ca78d5, 0x03dfd325, 0x00c29d69, 0x00df67be, 0x0344e788, 0x00de57fa, 0x002141bc}}},
+ {X: Field{[10]uint32{0x00a5e8c1, 0x027d296c, 0x007033c2, 0x008c271b, 0x008f2b70, 0x027e41c9, 0x030c90e0, 0x017124ca, 0x020c48e9, 0x00111465}}, Y: Field{[10]uint32{0x00d7490c, 0x006da1f5, 0x024de53b, 0x013efbd4, 0x0228bc40, 0x01dd9a93, 0x01c9e1a4, 0x027d9a58, 0x0218d9ce, 0x0020d54e}}},
+ {X: Field{[10]uint32{0x03ea3449, 0x018ee037, 0x00704caf, 0x006f21a7, 0x00785772, 0x00fe61c6, 0x00ab20eb, 0x01a6e603, 0x01a8697c, 0x0026c2b0}}, Y: Field{[10]uint32{0x027e60e9, 0x0159877e, 0x0045d65b, 0x008c1cba, 0x0361b617, 0x00a02614, 0x0232a582, 0x02fcfdc7, 0x0053bf1b, 0x00084393}}},
+ {X: Field{[10]uint32{0x001e0851, 0x01a12d1e, 0x01cebe92, 0x03e9f6f4, 0x0132eca4, 0x03003731, 0x02d62de1, 0x013df848, 0x0355ccae, 0x00399a5c}}, Y: Field{[10]uint32{0x01bdc3cb, 0x02e88dba, 0x01da1736, 0x024509ef, 0x029d3ded, 0x02201aa0, 0x00353f71, 0x03bcf251, 0x00ffdbe5, 0x0007c48b}}},
+ {X: Field{[10]uint32{0x0167201e, 0x027c983c, 0x03f2afe3, 0x01387311, 0x03ad480a, 0x00a22eb1, 0x0326f861, 0x02932807, 0x00f11a1a, 0x003fea24}}, Y: Field{[10]uint32{0x01439cb4, 0x011272a1, 0x02b5d69d, 0x03682c06, 0x00ac569c, 0x01f43ba3, 0x03c41497, 0x03f0f51c, 0x03c41716, 0x0005a237}}},
+ {X: Field{[10]uint32{0x00b6bf47, 0x02c6d3d5, 0x02c14cd3, 0x015e51b1, 0x00c41fcc, 0x03012813, 0x02b09b15, 0x00e33d8f, 0x00f26ce2, 0x00242235}}, Y: Field{[10]uint32{0x00d2c2b9, 0x00997579, 0x02909bfe, 0x0204adc3, 0x032ae4ec, 0x00f4d676, 0x01c9943b, 0x000138f5, 0x0017bc61, 0x00278e01}}},
+ {X: Field{[10]uint32{0x01576a91, 0x0023ff36, 0x0070767c, 0x0288b00d, 0x0299949c, 0x00ca5af0, 0x03f7e5fe, 0x018383f9, 0x01dac1e7, 0x0028ce57}}, Y: Field{[10]uint32{0x012393d3, 0x025039d1, 0x038706ee, 0x00337800, 0x02314185, 0x00f7f3ee, 0x03070162, 0x01b45c5b, 0x039a5403, 0x0013e2a1}}},
+ {X: Field{[10]uint32{0x038ad651, 0x0219e2ca, 0x00ecbd20, 0x0035d4cc, 0x011a7730, 0x007da1aa, 0x00ef2345, 0x03078163, 0x016454aa, 0x00047953}}, Y: Field{[10]uint32{0x01c020f2, 0x022ce5b2, 0x026796e0, 0x01164234, 0x01aaa53f, 0x0154a893, 0x0121dfef, 0x0067e715, 0x01605a84, 0x001d26ca}}},
+ {X: Field{[10]uint32{0x00327f30, 0x02023f19, 0x0174675e, 0x036a3932, 0x0198f5f0, 0x031c074a, 0x02d5a707, 0x03a08aad, 0x00df7b41, 0x00323c4f}}, Y: Field{[10]uint32{0x03199404, 0x01a251f0, 0x0194d441, 0x02b75827, 0x00445d7a, 0x007cd3d8, 0x00329d6a, 0x0270737b, 0x01df17c0, 0x0012269a}}},
+ {X: Field{[10]uint32{0x02d84442, 0x00f3dba4, 0x0250cd46, 0x02522897, 0x029487f3, 0x0386a770, 0x00c628c3, 0x0120e2a5, 0x02dccf67, 0x00245d79}}, Y: Field{[10]uint32{0x03de1c22, 0x002061a3, 0x007298cb, 0x00ec6e0f, 0x03c13e19, 0x01e329e9, 0x0237e510, 0x01c49547, 0x013fed37, 0x0021c15c}}},
+ {X: Field{[10]uint32{0x0220099b, 0x018efd0d, 0x0209d228, 0x03b36c5e, 0x005df8b9, 0x014eb028, 0x038f6b89, 0x03c3a7b9, 0x012fb6d5, 0x0023bb52}}, Y: Field{[10]uint32{0x020ff1bf, 0x03a22747, 0x039d99ec, 0x03f41036, 0x0082e1ac, 0x0090e7b2, 0x00f8b946, 0x00ba6367, 0x03421767, 0x0008e915}}},
+ {X: Field{[10]uint32{0x015c2dd9, 0x03e8d9c3, 0x03756beb, 0x02f1946d, 0x035cde90, 0x00417d75, 0x0393f543, 0x001bbde5, 0x0223dbac, 0x0032e573}}, Y: Field{[10]uint32{0x024a9a48, 0x022f9785, 0x02a4fc61, 0x01d3dfb3, 0x0057d22d, 0x01c777ad, 0x035ed992, 0x02c301ce, 0x02bac023, 0x002584a9}}},
+ {X: Field{[10]uint32{0x03a3c980, 0x02b24199, 0x007c915d, 0x024e7391, 0x01d8fdd4, 0x02d69de4, 0x02a8ebf8, 0x03fcdf50, 0x00c8bbd3, 0x00199c86}}, Y: Field{[10]uint32{0x00ec26c0, 0x02020f23, 0x00f2ace9, 0x039c19d4, 0x00452a21, 0x00156d55, 0x0344aab1, 0x02bf751a, 0x01799e19, 0x00375004}}},
+ {X: Field{[10]uint32{0x02f76e5f, 0x0166be0c, 0x0385219b, 0x02d683b4, 0x000c7627, 0x0310a5a6, 0x013e855d, 0x01214739, 0x01c60ded, 0x002211e6}}, Y: Field{[10]uint32{0x021c4a6b, 0x036998b0, 0x005ac3af, 0x01dff33c, 0x0022e343, 0x014b379e, 0x00d2d371, 0x010231e7, 0x01ed84e6, 0x0008e35d}}},
+ {X: Field{[10]uint32{0x0111d143, 0x03bbab5a, 0x0396a256, 0x0240e9af, 0x022cc8bb, 0x0093a9b4, 0x03a05bae, 0x0020b165, 0x036b5fc0, 0x0023663c}}, Y: Field{[10]uint32{0x00ab3cd3, 0x035ece38, 0x01516f2a, 0x00c6c770, 0x03de7df9, 0x0005a05d, 0x01b2fcf8, 0x00a9b541, 0x011afc90, 0x0009ba2b}}},
+ {X: Field{[10]uint32{0x03d70ad2, 0x00fd2e0f, 0x001ae740, 0x0223219d, 0x03d1db23, 0x034bbec7, 0x032cbc28, 0x031b4c9f, 0x02cac0dd, 0x002ea418}}, Y: Field{[10]uint32{0x028b38c2, 0x012ec299, 0x019f78f2, 0x03f5edcf, 0x01674539, 0x00e05115, 0x0171ccd5, 0x039d5367, 0x035b3036, 0x0011cecc}}},
+ {X: Field{[10]uint32{0x02cdca29, 0x007700c2, 0x008f01ff, 0x014c478a, 0x017453ca, 0x01588414, 0x029be675, 0x039825e9, 0x02d73bf0, 0x00128b4d}}, Y: Field{[10]uint32{0x02ca8f83, 0x0290e1ac, 0x001d8595, 0x0205236c, 0x029d694a, 0x00a63d7e, 0x0283ac6c, 0x00c73513, 0x01e7a903, 0x0003fda4}}},
+ {X: Field{[10]uint32{0x0337d0c4, 0x018b8773, 0x01c4fcd3, 0x00db8015, 0x006b3651, 0x00b0c972, 0x00fb0d93, 0x012c5ad9, 0x028fd99c, 0x003a1a3c}}, Y: Field{[10]uint32{0x00d4a9eb, 0x00ab7b13, 0x00bca274, 0x0044df65, 0x0240e5fa, 0x02224426, 0x00e0440e, 0x0040d23a, 0x02c18340, 0x002b4cd1}}},
+ {X: Field{[10]uint32{0x03abbf3b, 0x028d464a, 0x03eea99d, 0x025b6903, 0x03ea77e6, 0x0088e60c, 0x0177e566, 0x01b2944b, 0x0289830a, 0x001b17a1}}, Y: Field{[10]uint32{0x01779540, 0x03a5196b, 0x017c12be, 0x00351a96, 0x0356b983, 0x01d4d91f, 0x01c333dd, 0x002d81ef, 0x01f15fd0, 0x0030a781}}},
+ {X: Field{[10]uint32{0x00046344, 0x0096fb07, 0x02210e1a, 0x0318942b, 0x01c317ad, 0x02e756a4, 0x0391cc86, 0x00b7feba, 0x02a56ebf, 0x002ce85c}}, Y: Field{[10]uint32{0x034ac3d5, 0x017ebe0e, 0x01d119fc, 0x030379e9, 0x02f06401, 0x026930be, 0x031fff90, 0x0035b6f4, 0x01799ae4, 0x000a3db7}}},
+ {X: Field{[10]uint32{0x000d8f47, 0x02a53884, 0x02b80091, 0x03b1c68e, 0x00ac4a22, 0x0251a2a3, 0x00aed673, 0x035de694, 0x01d2e2f9, 0x000663c1}}, Y: Field{[10]uint32{0x03cd0414, 0x0226782d, 0x002b3cbf, 0x01a0d830, 0x03397089, 0x00ff2c88, 0x02e3baaf, 0x00c5cf2b, 0x003fc981, 0x00331a86}}},
+ {X: Field{[10]uint32{0x0077f48e, 0x03d42aac, 0x039d89f0, 0x036de7f0, 0x0341ae77, 0x02142c1e, 0x007703ae, 0x029e452f, 0x038fa943, 0x001e2c85}}, Y: Field{[10]uint32{0x025274e7, 0x0272c558, 0x02beb11b, 0x03b30a7a, 0x01d78fce, 0x006006f8, 0x0389004e, 0x02c24a2e, 0x0234f2cb, 0x00217f4f}}},
+ {X: Field{[10]uint32{0x01943f3e, 0x010fee36, 0x02dcccec, 0x03e757dc, 0x0023828e, 0x01c38a29, 0x017a7951, 0x0145d7e6, 0x03001d4c, 0x001bdc37}}, Y: Field{[10]uint32{0x028315ce, 0x007bb733, 0x03ee5f0f, 0x030aa37e, 0x02956a66, 0x01cc38a9, 0x039c34be, 0x020f9165, 0x0213b771, 0x00098c54}}},
+ {X: Field{[10]uint32{0x01a9dccc, 0x030d676d, 0x03bd09cf, 0x00b47343, 0x02e3964b, 0x0116d649, 0x01509e3b, 0x01b4a741, 0x01443c94, 0x002ae04c}}, Y: Field{[10]uint32{0x00f5c5ac, 0x00db2a41, 0x01062063, 0x002cfd41, 0x0216b771, 0x031b184c, 0x005e5876, 0x01cebe83, 0x03150c12, 0x002baf7c}}},
+ {X: Field{[10]uint32{0x01473ad3, 0x03a20f81, 0x021a20a3, 0x027ae8cc, 0x016b9456, 0x01f979bb, 0x0323e627, 0x00449c8d, 0x0391dd75, 0x0039cacd}}, Y: Field{[10]uint32{0x0328a3d8, 0x03d320a6, 0x0319fd4d, 0x02b220c2, 0x039c2091, 0x038e8a11, 0x03109ab5, 0x02aa83f4, 0x00742dbc, 0x0004c6cc}}},
+ {X: Field{[10]uint32{0x023ded63, 0x00a10cb3, 0x00c74619, 0x01f15ad4, 0x02bb525d, 0x033141f6, 0x03df77af, 0x017940e3, 0x0296ecdd, 0x0032968c}}, Y: Field{[10]uint32{0x03c4ab9e, 0x0197f1bf, 0x0254b3f8, 0x0274af73, 0x005a1420, 0x00acd96f, 0x027258e4, 0x01deea40, 0x0394b7e1, 0x0022f6d9}}},
+ {X: Field{[10]uint32{0x031a9222, 0x0069c038, 0x01819c88, 0x00569c9a, 0x02e7d2e8, 0x0300ec80, 0x01be59dc, 0x0233ff3b, 0x029f26ae, 0x003aa8ef}}, Y: Field{[10]uint32{0x0124ec1c, 0x03917065, 0x02acc735, 0x0059f35f, 0x0336ac28, 0x0077cb4e, 0x02f80265, 0x034d3183, 0x00d7a367, 0x0006d68b}}},
+ {X: Field{[10]uint32{0x00e97728, 0x02c0f7ba, 0x02206582, 0x0399d21c, 0x0035a011, 0x019e4555, 0x022076d5, 0x03fdab85, 0x002d3ab4, 0x003aeea2}}, Y: Field{[10]uint32{0x01be16ac, 0x02f91d19, 0x010ed355, 0x0161ef7f, 0x018a004c, 0x027b6319, 0x02f2ac76, 0x034b3736, 0x02053d8d, 0x0025088a}}},
+ {X: Field{[10]uint32{0x013aba86, 0x0248f20d, 0x01f446d8, 0x0345a3a3, 0x01ba88e0, 0x03688180, 0x03cb784e, 0x01774451, 0x03ea537a, 0x00328365}}, Y: Field{[10]uint32{0x028fba1f, 0x01f2a67d, 0x01b68016, 0x024a1d2d, 0x0196c978, 0x01124399, 0x02bb979a, 0x021bc623, 0x005889eb, 0x0021d2b2}}},
+ {X: Field{[10]uint32{0x03b797e1, 0x0233ecfa, 0x01a24771, 0x002c3877, 0x0184a90a, 0x017f0671, 0x0398f98c, 0x01d151f9, 0x01653480, 0x0014778a}}, Y: Field{[10]uint32{0x03f7c54d, 0x03bfd600, 0x007bf87c, 0x012e6792, 0x03ace0ee, 0x03f37e69, 0x001952b0, 0x039ae557, 0x023aad04, 0x00204dd3}}},
+ {X: Field{[10]uint32{0x01387509, 0x031bb230, 0x00df5151, 0x00d4d96e, 0x0287b521, 0x007523ed, 0x00e39bda, 0x01af8833, 0x011f0313, 0x0001a758}}, Y: Field{[10]uint32{0x0195bde0, 0x028b088c, 0x01fa7e9d, 0x02a9ac9c, 0x00fb84c0, 0x0170a5c8, 0x01127e1a, 0x01932b13, 0x0020563b, 0x001d78b6}}},
+ {X: Field{[10]uint32{0x028aa135, 0x015f784e, 0x00a9cb2f, 0x03037914, 0x006fa4a4, 0x03737886, 0x02204561, 0x01983c8c, 0x00830558, 0x000c458c}}, Y: Field{[10]uint32{0x0346eae2, 0x0376fdbf, 0x03817539, 0x001f97ee, 0x0229e142, 0x038762dd, 0x008c636a, 0x005a20c0, 0x0096b134, 0x000975b5}}},
+ {X: Field{[10]uint32{0x007ac334, 0x0335584b, 0x00274cc3, 0x00f61a13, 0x0111f462, 0x0342b66a, 0x002e5b44, 0x03353536, 0x02aaefa9, 0x002138d0}}, Y: Field{[10]uint32{0x0292a70e, 0x023d980a, 0x016540fb, 0x03ed42bb, 0x02f552af, 0x03f974bd, 0x00f0a324, 0x02665f21, 0x03ff260f, 0x003ee436}}},
+ {X: Field{[10]uint32{0x03bf6562, 0x0199a499, 0x025bc64d, 0x02b2219e, 0x00fa812a, 0x03538ea8, 0x00468143, 0x02c45489, 0x0002969d, 0x00257bf1}}, Y: Field{[10]uint32{0x03371883, 0x0304d667, 0x034b3e82, 0x027f5dea, 0x02e4567d, 0x0114957e, 0x033f00d4, 0x0094b15b, 0x00316149, 0x000c56f3}}},
+ {X: Field{[10]uint32{0x038d07fe, 0x01727a35, 0x01507e3d, 0x0126ed40, 0x0255b401, 0x0156ee6f, 0x0289993a, 0x027682f4, 0x023cf87e, 0x001488d8}}, Y: Field{[10]uint32{0x00613b56, 0x02023f2b, 0x03deffa5, 0x00876cf2, 0x000832e9, 0x0001dbe2, 0x01b1c16b, 0x03d0dc02, 0x0221dd2d, 0x001aff42}}},
+ {X: Field{[10]uint32{0x00cb0a4f, 0x0132e5f0, 0x0255df5f, 0x00659ac2, 0x00ea180f, 0x0027845e, 0x0187ab31, 0x01c1f987, 0x01990a6b, 0x003c84b4}}, Y: Field{[10]uint32{0x00f7c84b, 0x01ac1a68, 0x0382412f, 0x008867b0, 0x037f5114, 0x0303a844, 0x03c31427, 0x02d93b91, 0x006c7edb, 0x000ca011}}},
+ {X: Field{[10]uint32{0x01cfe8c9, 0x033d630c, 0x01b50835, 0x03888438, 0x02e1e19c, 0x000163e5, 0x014431b2, 0x01dbe085, 0x023ff25d, 0x001ad541}}, Y: Field{[10]uint32{0x0069f8bf, 0x002236a4, 0x031c6492, 0x028f75f8, 0x01558a82, 0x03d83ffb, 0x02997076, 0x001d891b, 0x01623645, 0x001509f7}}},
+ {X: Field{[10]uint32{0x01b23045, 0x006755c2, 0x01e96472, 0x0106a0b8, 0x03c9388d, 0x039be2c9, 0x02e0c129, 0x0243004a, 0x01cfa096, 0x00094e79}}, Y: Field{[10]uint32{0x01021ac3, 0x0115eb76, 0x0224a77c, 0x02d28967, 0x0331d804, 0x01444cd1, 0x0393000e, 0x02937346, 0x03f61e26, 0x002532e0}}},
+ {X: Field{[10]uint32{0x0247d51d, 0x03eb9502, 0x03fb6297, 0x007bc394, 0x03910642, 0x03ca30fd, 0x02ed31e8, 0x0070c1c6, 0x02d34aaf, 0x002aa6da}}, Y: Field{[10]uint32{0x03544c47, 0x02779de0, 0x03d3ed1c, 0x01fb2910, 0x0158cbd8, 0x002ad366, 0x034e7db1, 0x02b80262, 0x00e49fe4, 0x00370256}}},
+ {X: Field{[10]uint32{0x013487ad, 0x014cbd80, 0x0262f780, 0x0397a728, 0x03e08964, 0x028fdac3, 0x02d6e635, 0x0093efd7, 0x0313aad2, 0x002a1428}}, Y: Field{[10]uint32{0x014ccbe7, 0x020cd8fb, 0x01a4c43b, 0x01c09bc5, 0x01d9a5e5, 0x03bbcd1e, 0x01708ca0, 0x015708ee, 0x02d54cbc, 0x001f91da}}},
+ {X: Field{[10]uint32{0x03a09c1a, 0x02352b97, 0x0328c741, 0x00c991de, 0x025da441, 0x00638a74, 0x00889fab, 0x00325b41, 0x0033f4fd, 0x000c53fb}}, Y: Field{[10]uint32{0x03d25f42, 0x01ee53fa, 0x024a976b, 0x034c6a9a, 0x00d9b4b8, 0x0254d3f7, 0x01dd4f54, 0x03fede6d, 0x01130a98, 0x00028b25}}},
+ {X: Field{[10]uint32{0x033d0963, 0x02be8d53, 0x01c85329, 0x02e33d4b, 0x03183998, 0x02bef73b, 0x01581ae1, 0x01f9e6b8, 0x03c89ec5, 0x001b9f70}}, Y: Field{[10]uint32{0x019f87d8, 0x01457e27, 0x00964a83, 0x00c3f32b, 0x038f0578, 0x01662ac6, 0x011e3a82, 0x023a7e59, 0x00056d5a, 0x001ad8da}}},
+ {X: Field{[10]uint32{0x033337c5, 0x01f50015, 0x034ad955, 0x03016309, 0x0038b6cf, 0x03461071, 0x0097a507, 0x028b5481, 0x0293fc4b, 0x00165b7d}}, Y: Field{[10]uint32{0x037f4ff5, 0x00ff412c, 0x033c6bd0, 0x00cf5732, 0x0274b75c, 0x027b173f, 0x0171723e, 0x02c26ce8, 0x01e91c97, 0x0019827b}}},
+ {X: Field{[10]uint32{0x00e8afb7, 0x03c28485, 0x034ee13c, 0x01665ef2, 0x00ee3ba2, 0x01ef50b5, 0x0150e8e7, 0x01e00161, 0x01d410de, 0x0008d7e3}}, Y: Field{[10]uint32{0x00fa6712, 0x038562db, 0x031bd189, 0x00ce092d, 0x0153b72c, 0x00429115, 0x00f8d595, 0x0384da00, 0x00cdb8e8, 0x002fdb83}}},
+ {X: Field{[10]uint32{0x03db8b47, 0x027308c4, 0x0227904c, 0x01abbda4, 0x003f0390, 0x0203a07c, 0x01fbb28c, 0x03a47c49, 0x0297b259, 0x002a762e}}, Y: Field{[10]uint32{0x00048656, 0x01d52b3b, 0x0337bf14, 0x03d916e9, 0x015e6ce6, 0x0087d625, 0x0072afe2, 0x0203c99d, 0x015419b5, 0x00399a2e}}},
+ {X: Field{[10]uint32{0x02288e5c, 0x02c1fa12, 0x027f4827, 0x00d6df66, 0x00c4e2cc, 0x004d26e2, 0x02bc6295, 0x0305c050, 0x01c64f74, 0x0014ed13}}, Y: Field{[10]uint32{0x017075d4, 0x01b855c2, 0x02c7e589, 0x021f6325, 0x02322161, 0x03fb9ed6, 0x03006ead, 0x018b1363, 0x03e14045, 0x0012bfc4}}},
+ {X: Field{[10]uint32{0x000af1a0, 0x02d68096, 0x0362f947, 0x01e4121b, 0x02a91872, 0x0125121a, 0x00b56ca1, 0x03e7dc6b, 0x0038a6ba, 0x001db9b8}}, Y: Field{[10]uint32{0x01f0f0fa, 0x039ad378, 0x03fd4465, 0x035c899b, 0x003b57e0, 0x03811644, 0x0018348b, 0x0101d913, 0x01106688, 0x00146974}}},
+ {X: Field{[10]uint32{0x03c1e6b5, 0x03d4efe6, 0x038702bc, 0x031c6fb1, 0x001c45b4, 0x037a192f, 0x02da284d, 0x0004a443, 0x03192fc7, 0x001dd87f}}, Y: Field{[10]uint32{0x016e11b2, 0x01f6b10a, 0x007c1d94, 0x032ec6ad, 0x03e0bb75, 0x030f9f4d, 0x037e1fdf, 0x01c65987, 0x0370a82f, 0x00202603}}},
+ {X: Field{[10]uint32{0x009aadf9, 0x034a012a, 0x02d7f8fe, 0x02388434, 0x0095c0bd, 0x021a7618, 0x01cdc333, 0x03d47f9b, 0x01d61224, 0x00206672}}, Y: Field{[10]uint32{0x031ec89b, 0x038c15d2, 0x0292ddaa, 0x01f4aa74, 0x00a158ee, 0x000c371d, 0x01bbd73f, 0x008e12ba, 0x024f5cbd, 0x002fa25c}}},
+ {X: Field{[10]uint32{0x01c55c0e, 0x009d0164, 0x033b799d, 0x032f9422, 0x0008bd4d, 0x02f5de76, 0x01626803, 0x00955aef, 0x01fc760a, 0x0005709e}}, Y: Field{[10]uint32{0x03390c39, 0x00f934d4, 0x01dee337, 0x02c19c85, 0x010ea0b9, 0x0328103f, 0x015d352b, 0x03258d24, 0x00bfed80, 0x003f540e}}},
+ {X: Field{[10]uint32{0x00a39b46, 0x0045857e, 0x031a83c1, 0x03900520, 0x019724ac, 0x0330b9fb, 0x03b46a3e, 0x01011dbd, 0x0106b280, 0x003ecfe3}}, Y: Field{[10]uint32{0x03d2154e, 0x03ecf3da, 0x011854fb, 0x0142b264, 0x023177ed, 0x00f06f5c, 0x03fd70c6, 0x006d84ec, 0x00b6ff85, 0x003e4943}}},
+ {X: Field{[10]uint32{0x02012edb, 0x03269bae, 0x0389b5ea, 0x00576c2c, 0x02f9faf4, 0x025f0ff7, 0x02723e30, 0x01049768, 0x01473c96, 0x000e6cad}}, Y: Field{[10]uint32{0x03fb7547, 0x0220bc86, 0x01564002, 0x02b8377e, 0x016bce7b, 0x03d97c8c, 0x028aedf1, 0x03d04ef5, 0x02a5a586, 0x0022b070}}},
+ {X: Field{[10]uint32{0x03f1552b, 0x03fd1291, 0x0284820c, 0x00fab21f, 0x01bf72d7, 0x02c93a33, 0x03f6d0bb, 0x00546874, 0x03fae476, 0x0010b577}}, Y: Field{[10]uint32{0x00847ee4, 0x03eb6d2e, 0x02ee2922, 0x01185f61, 0x02663f6e, 0x0100ef3d, 0x03ebe3af, 0x03000589, 0x0245d941, 0x0018c765}}},
+ {X: Field{[10]uint32{0x02e0bd8f, 0x007edeb9, 0x02158e31, 0x0349b671, 0x02630a0b, 0x03a48b66, 0x02dd0711, 0x02afc297, 0x02c624ec, 0x00213725}}, Y: Field{[10]uint32{0x038703c6, 0x023ab8fb, 0x025a82cc, 0x01c4302a, 0x01c795cc, 0x02f4bf09, 0x00ff10a8, 0x00c934ab, 0x018a16b7, 0x00102bcc}}},
+ {X: Field{[10]uint32{0x03bf505e, 0x01ce60d2, 0x013bf018, 0x000b0db6, 0x034663ba, 0x01efdf2e, 0x03812af3, 0x033bb846, 0x020a797b, 0x0018db9d}}, Y: Field{[10]uint32{0x01f724d2, 0x03dc0e99, 0x012ffd74, 0x010015f6, 0x0069924f, 0x0012e516, 0x02dab981, 0x033dd90d, 0x024b6cc8, 0x003b5717}}},
+ {X: Field{[10]uint32{0x00d06ae4, 0x03dd6026, 0x01090d4f, 0x003fd85d, 0x007d32bc, 0x0389e019, 0x01ca6f4a, 0x03b9e19a, 0x00254bb5, 0x0004dff4}}, Y: Field{[10]uint32{0x028d0fd4, 0x02dfc24c, 0x00bc808f, 0x00f7a739, 0x03e07ec2, 0x00dba4b9, 0x03186a30, 0x02aa83a6, 0x02a225ea, 0x000a0b5a}}},
+ {X: Field{[10]uint32{0x02459e92, 0x01cd3484, 0x00b611b6, 0x01805eaf, 0x00df781f, 0x02c943f0, 0x01bc7a5c, 0x02495ad5, 0x004839e4, 0x000862ae}}, Y: Field{[10]uint32{0x010e1599, 0x012cf393, 0x02444c99, 0x03f1c072, 0x001a7212, 0x00cbce7c, 0x00c49c8d, 0x02c3710c, 0x0356b53f, 0x001fac53}}},
+ {X: Field{[10]uint32{0x038eda65, 0x00552557, 0x034fb619, 0x0267aed3, 0x011b2f0a, 0x03c4dd81, 0x029e3a78, 0x008be37d, 0x03a0106f, 0x001acfde}}, Y: Field{[10]uint32{0x0330d299, 0x03ededc8, 0x013b7aaa, 0x000174db, 0x036c8310, 0x0207a21c, 0x019a4ab4, 0x01afbe1b, 0x00c44c94, 0x000315e2}}},
+ {X: Field{[10]uint32{0x01e8ceca, 0x038c7f76, 0x03d08c5d, 0x032bdffb, 0x02131ad1, 0x00bad6e1, 0x02fdf196, 0x00465465, 0x02cba2de, 0x0026d053}}, Y: Field{[10]uint32{0x0325a637, 0x024897a9, 0x00797063, 0x0216579d, 0x0251e94e, 0x036a7d39, 0x01b06269, 0x037d0203, 0x031f9550, 0x000e39bc}}},
+ {X: Field{[10]uint32{0x02940653, 0x03d986c9, 0x01f8ecba, 0x023bcfcb, 0x02156a4a, 0x00751135, 0x0133af0d, 0x0097861a, 0x03a18574, 0x0010dac1}}, Y: Field{[10]uint32{0x003f2d44, 0x0156cc51, 0x0053ace1, 0x0346f393, 0x03c6822d, 0x0093f318, 0x02427137, 0x03af7b29, 0x0335f124, 0x0025294b}}},
+ {X: Field{[10]uint32{0x028fbc6b, 0x00cb3544, 0x034d1fff, 0x00a08266, 0x00b8d76f, 0x01ed78a4, 0x0019bd18, 0x017e08cd, 0x033809b2, 0x003302a4}}, Y: Field{[10]uint32{0x023f458e, 0x02ffa1db, 0x029ec220, 0x01e90c3b, 0x00e713ad, 0x01d54038, 0x00cb6278, 0x031ea512, 0x006dec7a, 0x000331fa}}},
+ {X: Field{[10]uint32{0x03a19858, 0x007fa0f0, 0x038888f2, 0x03a9cbef, 0x037ea684, 0x02be372a, 0x03b1907e, 0x01debf31, 0x016eaaf8, 0x001686cc}}, Y: Field{[10]uint32{0x0181e7e1, 0x010933b3, 0x00450cf7, 0x02508b6f, 0x02744110, 0x029a504b, 0x02b3466d, 0x0211a9ad, 0x039ada08, 0x0012bc0c}}},
+ {X: Field{[10]uint32{0x016c53ee, 0x01f5025b, 0x0327400e, 0x0094be7f, 0x01ac4a57, 0x000e62c9, 0x021e4114, 0x012ec87f, 0x01657444, 0x003ebe24}}, Y: Field{[10]uint32{0x01a43100, 0x0053db26, 0x03cb3997, 0x02b20420, 0x01d87984, 0x02c5b271, 0x00b64263, 0x0151fd77, 0x015faf75, 0x0033e9de}}},
+ {X: Field{[10]uint32{0x0174f248, 0x03937ab4, 0x01e33aa9, 0x00b52586, 0x00c94cd2, 0x031b2c0a, 0x000c68c6, 0x00588c61, 0x018aca14, 0x000e797f}}, Y: Field{[10]uint32{0x003c1ff1, 0x00429be3, 0x0210561d, 0x02194a2a, 0x020a8d36, 0x023d989d, 0x0013e788, 0x036995d0, 0x03657083, 0x003e0487}}},
+ {X: Field{[10]uint32{0x0325cbc1, 0x010c2600, 0x000e9257, 0x0350866f, 0x02a64b8e, 0x03ef84d5, 0x013cddf6, 0x0033cb33, 0x01ec147d, 0x0008284d}}, Y: Field{[10]uint32{0x0282c013, 0x008ab9bb, 0x006a7156, 0x002a047c, 0x01fa1d17, 0x01d74c2a, 0x0101fd26, 0x00dc9530, 0x00abea1a, 0x002c5d45}}},
+ {X: Field{[10]uint32{0x0072320a, 0x0070ad0b, 0x011fab46, 0x00462a21, 0x039903ca, 0x031d6c4e, 0x03d69e2a, 0x03dcfe84, 0x01b8af48, 0x00286068}}, Y: Field{[10]uint32{0x03a6df20, 0x03212ca5, 0x02a5a219, 0x00e8310e, 0x00a66fbd, 0x035621e8, 0x032c432a, 0x01f988f5, 0x00673f48, 0x00325b21}}},
+ {X: Field{[10]uint32{0x01b3ee4f, 0x0118b1df, 0x03fc2752, 0x02557ae1, 0x01eb4626, 0x0145b7a3, 0x035d76a9, 0x01768beb, 0x0031720a, 0x000e57f0}}, Y: Field{[10]uint32{0x0359ad6a, 0x022fd071, 0x00523128, 0x01a66cd0, 0x00962ac8, 0x00fb1127, 0x00e14e7c, 0x00e256ad, 0x006b5378, 0x0012baf2}}},
+ {X: Field{[10]uint32{0x0364fa6f, 0x01accf46, 0x03d17424, 0x0395c6e7, 0x0103fffc, 0x02ed8cdf, 0x01632a61, 0x00ae5a1f, 0x01ecf6df, 0x0028db7a}}, Y: Field{[10]uint32{0x011999f4, 0x03721899, 0x01ea9cdb, 0x027f43c1, 0x01620fe2, 0x01f7ad03, 0x0212e147, 0x0345006c, 0x004fa133, 0x001e1393}}},
+ {X: Field{[10]uint32{0x0040ba8c, 0x01d1b8a6, 0x00359d04, 0x02e0f6f7, 0x03e55a3a, 0x0114d7d5, 0x03818200, 0x0110c3dc, 0x0099ecee, 0x00232d6a}}, Y: Field{[10]uint32{0x017ff59a, 0x03697780, 0x00b2cb92, 0x02c7bc0b, 0x01731ded, 0x00f4a2d3, 0x01df0ecc, 0x028f04b0, 0x002ae9c3, 0x0004a9ca}}},
+ {X: Field{[10]uint32{0x00b60985, 0x0142d998, 0x01f299c4, 0x0362c9ac, 0x004cee72, 0x00bf47ef, 0x02372012, 0x026e8643, 0x01e14d9c, 0x00037910}}, Y: Field{[10]uint32{0x0271b63e, 0x03884500, 0x02110508, 0x0319d40c, 0x022927b3, 0x009fefad, 0x03740d44, 0x0374cf53, 0x030ed12d, 0x002b7468}}},
+ {X: Field{[10]uint32{0x039fbab7, 0x02081ea6, 0x01067407, 0x030e5ca5, 0x00520646, 0x004a3446, 0x02f3c1b7, 0x0151283c, 0x0356b5e5, 0x002238e2}}, Y: Field{[10]uint32{0x0000e5e3, 0x00763984, 0x034b7810, 0x00828b63, 0x00dc8ea0, 0x02f6bc61, 0x03ac529c, 0x02595b96, 0x008ed44e, 0x00220cc8}}},
+ {X: Field{[10]uint32{0x034640a7, 0x03ccdd03, 0x0266c6c5, 0x032583d4, 0x013ee217, 0x0234b5ca, 0x03fa3d15, 0x019082e7, 0x0192f561, 0x00293c3e}}, Y: Field{[10]uint32{0x002e6ddb, 0x0038807e, 0x01e713d8, 0x023a04a2, 0x010b131a, 0x006bd0bf, 0x02c9188a, 0x021af103, 0x01a8437a, 0x003699d0}}},
+ {X: Field{[10]uint32{0x005c945b, 0x014901c7, 0x02ad7efe, 0x02fcdfe5, 0x0286899f, 0x01147634, 0x00a40bee, 0x02aab981, 0x00cff2d1, 0x0017c02a}}, Y: Field{[10]uint32{0x019deb12, 0x02d8f4ad, 0x0262a424, 0x034eb9b1, 0x030b48ea, 0x011a4b56, 0x011549fb, 0x01b5b8e7, 0x00b69ea7, 0x0004d7f2}}},
+ {X: Field{[10]uint32{0x00f99218, 0x01b38c62, 0x00da0b41, 0x019ea79b, 0x039d1689, 0x00e376e3, 0x004c7998, 0x03f28bb8, 0x020ebfd6, 0x00164d46}}, Y: Field{[10]uint32{0x010fdb34, 0x00f53a75, 0x025b64fe, 0x0275ce91, 0x000fc415, 0x00a479f2, 0x0227b6d4, 0x03d2a0a3, 0x02673184, 0x001b8068}}},
+ {X: Field{[10]uint32{0x00b1aecf, 0x025be44b, 0x039f72c7, 0x01cf9dfc, 0x006705ef, 0x03c98f43, 0x007387a5, 0x00cecf7a, 0x0235f5c5, 0x00005d7b}}, Y: Field{[10]uint32{0x01d9513f, 0x0340a02e, 0x03506a80, 0x018cf35e, 0x005fca3b, 0x0317ef58, 0x00d40fc4, 0x03909878, 0x03154540, 0x0028de49}}},
+ {X: Field{[10]uint32{0x0347b8fe, 0x01f7eefc, 0x033b0204, 0x0077eb40, 0x00565595, 0x01e416b5, 0x036362fa, 0x0062b26a, 0x0341597b, 0x001d4626}}, Y: Field{[10]uint32{0x01b2527e, 0x01deddc8, 0x03ed5b01, 0x010a116b, 0x01aa2468, 0x015a967b, 0x00023de2, 0x0043a95f, 0x01210ffa, 0x003d4dbf}}},
+ {X: Field{[10]uint32{0x019bd4ae, 0x02690528, 0x01c72004, 0x01cdad68, 0x02438855, 0x01fbf48e, 0x03d2a315, 0x035971c2, 0x02c32522, 0x00246be7}}, Y: Field{[10]uint32{0x001a32de, 0x01aec21d, 0x02d6e643, 0x00668b29, 0x0331c9cc, 0x002d1066, 0x004898ed, 0x02e161ad, 0x03c38462, 0x000c4801}}},
+ {X: Field{[10]uint32{0x00565c27, 0x02876129, 0x01b04712, 0x02906853, 0x00732273, 0x03ca0f17, 0x01094432, 0x03574174, 0x008d41fa, 0x00376cbf}}, Y: Field{[10]uint32{0x029c1d0a, 0x02e8beb5, 0x01a38d63, 0x02db5fcb, 0x028f6ac9, 0x0224f424, 0x01673a09, 0x031bd080, 0x00c502ce, 0x0013df8c}}},
+ {X: Field{[10]uint32{0x023641a6, 0x037077fd, 0x00f96f7d, 0x001fcac1, 0x01ad40a9, 0x0290494e, 0x0144936e, 0x00370d40, 0x0122d724, 0x00273997}}, Y: Field{[10]uint32{0x01d97c8c, 0x009d825e, 0x02340cf9, 0x010e0150, 0x00c3037e, 0x01818bd5, 0x020b4257, 0x02f19091, 0x01877f25, 0x002be4f9}}},
+ {X: Field{[10]uint32{0x036e9a2b, 0x01b5dbdd, 0x015f5493, 0x02c079fe, 0x015489f1, 0x002fd24b, 0x003932eb, 0x03b16247, 0x00d41fed, 0x001f7034}}, Y: Field{[10]uint32{0x0107c47a, 0x01a6656c, 0x0134fa52, 0x03d694d6, 0x001e9bbc, 0x00e0c685, 0x021c7a49, 0x00f04efe, 0x039e760c, 0x00355689}}},
+ {X: Field{[10]uint32{0x000e5ead, 0x000ea553, 0x008c163d, 0x003cca07, 0x02f190d4, 0x00f92a9f, 0x018d351f, 0x035ca277, 0x015cb6b4, 0x00034048}}, Y: Field{[10]uint32{0x00fdc662, 0x00b2206c, 0x02a2548b, 0x0318267b, 0x01c68be6, 0x01906153, 0x03ce7fe0, 0x01fbb9c8, 0x004bccbd, 0x003be60d}}},
+ {X: Field{[10]uint32{0x017cb92f, 0x0019d9e3, 0x02af3e1d, 0x0318a4cf, 0x00bb6498, 0x02f7fcf5, 0x011b0d29, 0x03be3d66, 0x0031a9fa, 0x00035347}}, Y: Field{[10]uint32{0x026a4831, 0x017e18ab, 0x0190a4df, 0x036e93d9, 0x02715fae, 0x00861791, 0x03ccd42f, 0x0247ea16, 0x0048ac6b, 0x00263cea}}},
+ {X: Field{[10]uint32{0x02080839, 0x034bc931, 0x035a49fa, 0x00310686, 0x023d718f, 0x0212c78c, 0x022d83c0, 0x03c930f6, 0x02cf42ab, 0x00331967}}, Y: Field{[10]uint32{0x001f963c, 0x009d86b2, 0x00cbbf0f, 0x0250fe13, 0x00c7aef0, 0x039e55d6, 0x02df249a, 0x00ce66db, 0x01554d84, 0x001eef7f}}},
+ {X: Field{[10]uint32{0x01ea4b04, 0x0345905c, 0x0104e594, 0x01d59c23, 0x00f0eb47, 0x01e2fbcd, 0x0074e944, 0x03ce1674, 0x0167d5cf, 0x00066e85}}, Y: Field{[10]uint32{0x02820f9a, 0x014d2152, 0x00ed5d4f, 0x024722e4, 0x0030555c, 0x03967044, 0x00583114, 0x02c0bb6a, 0x001bd536, 0x000d3a8a}}},
+ {X: Field{[10]uint32{0x03bbc30f, 0x01e63d75, 0x006a5437, 0x039d4a56, 0x02e825d8, 0x0354b4b6, 0x01960e5f, 0x01641d8c, 0x02e31a6e, 0x000fc3c0}}, Y: Field{[10]uint32{0x03e63c3b, 0x00241878, 0x0119a035, 0x00a5ed01, 0x0162a3bf, 0x038b35a9, 0x0079ddcb, 0x03536964, 0x03c33aec, 0x002e4f89}}},
+ {X: Field{[10]uint32{0x0149ab12, 0x001e4900, 0x0323e0df, 0x025b97ea, 0x008d0fb0, 0x003ce0ad, 0x01dd895b, 0x00ff656a, 0x008f35f6, 0x00262131}}, Y: Field{[10]uint32{0x0180eb44, 0x00907ed0, 0x02aa013f, 0x017a627f, 0x03e01154, 0x022dbd06, 0x01e321f5, 0x010df0f5, 0x02667070, 0x0015a230}}},
+ {X: Field{[10]uint32{0x006c7b4d, 0x026edf31, 0x00b47448, 0x0380ac8f, 0x02bb4a6f, 0x00be0f96, 0x002e85ac, 0x027154c2, 0x029379bc, 0x002503ca}}, Y: Field{[10]uint32{0x0321fd9d, 0x03038b1f, 0x02284700, 0x0274b2b8, 0x002aa742, 0x02f1a9e1, 0x027c735c, 0x02763d47, 0x038077ba, 0x002d2e08}}},
+ {X: Field{[10]uint32{0x00b782f0, 0x01d0bad6, 0x0001c0e0, 0x000d0be4, 0x005f4beb, 0x014d0fa9, 0x02feccbb, 0x00f67d06, 0x019ce535, 0x002a69da}}, Y: Field{[10]uint32{0x0187c994, 0x02a565e5, 0x018b4c7c, 0x02f17ed2, 0x01b0536f, 0x029806b2, 0x0341f778, 0x0233c690, 0x02aab3e1, 0x000f1d67}}},
+ {X: Field{[10]uint32{0x03218913, 0x008898c2, 0x034afb15, 0x00748fc9, 0x0293f4da, 0x00b4044a, 0x0236cc28, 0x036c015b, 0x008a009c, 0x0028878d}}, Y: Field{[10]uint32{0x02be89ed, 0x0307d31f, 0x038da588, 0x01cec79d, 0x03c70b18, 0x01c07998, 0x00b8e28a, 0x025419bb, 0x03fa652f, 0x00050550}}},
+ {X: Field{[10]uint32{0x025fd383, 0x0123ecd6, 0x01ca41f0, 0x0018c1a9, 0x00e81429, 0x006339ce, 0x03298d60, 0x0384614a, 0x01951121, 0x0035b553}}, Y: Field{[10]uint32{0x028a7a83, 0x014d1160, 0x02912412, 0x03cd4d68, 0x028f76c8, 0x02363bb4, 0x00fe9d03, 0x007f88c1, 0x00b8de89, 0x00225f73}}},
+ {X: Field{[10]uint32{0x031e6cda, 0x0303c770, 0x03ebe21c, 0x01928e91, 0x026232b4, 0x03bec4be, 0x00c7f7b5, 0x03abed22, 0x035dc937, 0x001f8298}}, Y: Field{[10]uint32{0x01e921e2, 0x00eb18e3, 0x01e822d6, 0x021b3b58, 0x0274489c, 0x02b72fcd, 0x025b34e3, 0x017874b3, 0x014a7552, 0x00034b47}}},
+ {X: Field{[10]uint32{0x0051a659, 0x02802e35, 0x000d3afe, 0x0053eb08, 0x0155bafa, 0x01acfeba, 0x00870e83, 0x0071a10a, 0x000f66a2, 0x00133882}}, Y: Field{[10]uint32{0x007da4c4, 0x03c157db, 0x01b1d891, 0x0249cf8c, 0x02f0ca1b, 0x0037e4eb, 0x00d0f3ef, 0x000bf4c6, 0x0226565b, 0x000a787e}}},
+ {X: Field{[10]uint32{0x012bad2e, 0x007d509c, 0x00f7fc09, 0x02d363d6, 0x01e6d4b7, 0x02e27a05, 0x00d5caf1, 0x02fd9567, 0x0387b633, 0x0036ae1a}}, Y: Field{[10]uint32{0x03c85b5e, 0x0057acd4, 0x03bdf8fd, 0x00d1f95e, 0x004506a6, 0x0156f64c, 0x00159d7f, 0x0157ce36, 0x0109d79a, 0x0023926c}}},
+ {X: Field{[10]uint32{0x0365aca9, 0x00a4006c, 0x017a56ae, 0x012854a2, 0x01ba1622, 0x01d9cb4e, 0x035386ea, 0x00cb93a2, 0x02c290fa, 0x0031a852}}, Y: Field{[10]uint32{0x035dbc67, 0x003ab1dc, 0x00164b2c, 0x00b7e896, 0x0245cd5f, 0x00bfd857, 0x021967a4, 0x0223f890, 0x00d6dcc5, 0x0010aab7}}},
+ {X: Field{[10]uint32{0x02450a27, 0x0138853a, 0x0041de69, 0x02b32284, 0x0263510b, 0x03cd163d, 0x03244004, 0x00423ca3, 0x0240880b, 0x0009667e}}, Y: Field{[10]uint32{0x03a57a01, 0x0365321e, 0x013e6951, 0x01b95230, 0x02a424c4, 0x0280aff4, 0x03a973a1, 0x0337d1a9, 0x02ad4ae1, 0x000151e4}}},
+ {X: Field{[10]uint32{0x02d9f9ff, 0x035d1da3, 0x0153bbf3, 0x00cdbe91, 0x01312655, 0x01e7b10f, 0x02d8fe9e, 0x02a3deab, 0x00b4a6af, 0x003daac3}}, Y: Field{[10]uint32{0x005026ef, 0x0365d1a1, 0x013f973f, 0x02f15ebc, 0x0282e913, 0x0241ff35, 0x001a4761, 0x00024123, 0x0189c4ba, 0x0013a849}}},
+ {X: Field{[10]uint32{0x007f1dfc, 0x03522c9c, 0x01bebdfd, 0x03caf1c7, 0x0372738f, 0x00ffd369, 0x017ecdbd, 0x000838b6, 0x008bab8f, 0x003d46f5}}, Y: Field{[10]uint32{0x02697c40, 0x024fcfd2, 0x01e4308c, 0x0148922f, 0x01b361c7, 0x01fbe43e, 0x03fe7bce, 0x011fea29, 0x03a0947f, 0x001ac5a2}}},
+ {X: Field{[10]uint32{0x022a3443, 0x0263c292, 0x013625c8, 0x02194d48, 0x020a50b2, 0x0342fdf4, 0x0398f2b1, 0x02a432bd, 0x01146c9c, 0x002d807c}}, Y: Field{[10]uint32{0x021f87dd, 0x03c8e471, 0x027edf0c, 0x0343f305, 0x006877fe, 0x027c3c44, 0x0317a115, 0x02d9d57c, 0x004136b6, 0x0029b28c}}},
+ {X: Field{[10]uint32{0x005f974b, 0x0241947e, 0x01ccb37e, 0x0163ca1c, 0x015be6a1, 0x0316dc64, 0x030511f0, 0x01f011db, 0x027ae595, 0x001e4b75}}, Y: Field{[10]uint32{0x031dd44b, 0x01d60252, 0x03bcb941, 0x017212b0, 0x011a4c1c, 0x00bd18f8, 0x004774dd, 0x027da4e9, 0x00b9bec5, 0x0026dfd7}}},
+ {X: Field{[10]uint32{0x03b093f9, 0x0004c0a2, 0x00377931, 0x0080cf0d, 0x004c29c4, 0x0009452b, 0x0300eb4f, 0x03d2b6cd, 0x026933b6, 0x001f6211}}, Y: Field{[10]uint32{0x01e2cb3b, 0x025187ed, 0x00885a2f, 0x03e2944d, 0x022ebeb5, 0x0391b0c1, 0x007ead35, 0x00036d4a, 0x035e6745, 0x000bf230}}},
+ {X: Field{[10]uint32{0x012a5351, 0x03b6e01a, 0x00249010, 0x01077e0b, 0x01ead4bc, 0x01c2250d, 0x03820387, 0x02182c86, 0x03916d0f, 0x00271dba}}, Y: Field{[10]uint32{0x01c88b62, 0x0260a43d, 0x006b0d99, 0x03835b78, 0x030e51d1, 0x0231dda7, 0x0235a6da, 0x00055878, 0x03f33880, 0x001caeb6}}},
+ {X: Field{[10]uint32{0x03d807f9, 0x02ec3cc7, 0x0024ecf5, 0x0360b6bf, 0x038fef18, 0x00791f0c, 0x0252a2aa, 0x024f8557, 0x02383d8a, 0x002926d5}}, Y: Field{[10]uint32{0x001d3ae0, 0x0163a364, 0x0176dbee, 0x03987f3a, 0x029dc392, 0x0324d191, 0x00b0760b, 0x013133b9, 0x01b39bf3, 0x0006f09c}}},
+ {X: Field{[10]uint32{0x00634460, 0x01891f37, 0x029e0a4d, 0x03f9deba, 0x02a704c9, 0x023c71cb, 0x01d5cc96, 0x02c2c32a, 0x035a675b, 0x000134c4}}, Y: Field{[10]uint32{0x000cfc4e, 0x029dbb8a, 0x02d38395, 0x03bda333, 0x02cb74bc, 0x03c0ac4e, 0x031ffeac, 0x03d2f3cb, 0x00be72f5, 0x002b975f}}},
+ {X: Field{[10]uint32{0x0253f588, 0x00cc2267, 0x00e3711f, 0x020ea481, 0x00eff955, 0x010bc64b, 0x00421b9b, 0x01b8e3f0, 0x03be17dd, 0x001655cb}}, Y: Field{[10]uint32{0x021c7c24, 0x01150877, 0x0382a39c, 0x00be6dc9, 0x03a01c8f, 0x03582811, 0x01ab8051, 0x00fe79a8, 0x0240a8cb, 0x0015c4d1}}},
+ {X: Field{[10]uint32{0x012d9511, 0x03a8799c, 0x005a5cb5, 0x00203d58, 0x020a5fff, 0x00a34ba6, 0x02a1c612, 0x01e03b2a, 0x006d49b4, 0x001cf333}}, Y: Field{[10]uint32{0x03752cf4, 0x00b353f8, 0x0308edbb, 0x01b5aa16, 0x036a52c0, 0x026c5634, 0x012ea8b5, 0x0323c470, 0x0174f986, 0x00118ea3}}},
+ {X: Field{[10]uint32{0x004c1e46, 0x00f0a8e3, 0x03d1ee50, 0x03c61da0, 0x02ae3885, 0x023f73db, 0x02f7280e, 0x002aa51d, 0x03fddb62, 0x002db23a}}, Y: Field{[10]uint32{0x03d39802, 0x02441839, 0x01ddeb40, 0x0157cc85, 0x0276a25d, 0x02065297, 0x0175c2ac, 0x000122f9, 0x02d9f021, 0x00269beb}}},
+ {X: Field{[10]uint32{0x005e392e, 0x01ff2713, 0x01f7eb50, 0x02353087, 0x03b9cc4a, 0x00c19f78, 0x0196c539, 0x01524f6a, 0x020f92de, 0x002d058b}}, Y: Field{[10]uint32{0x023b385b, 0x0149585a, 0x01120a40, 0x005dee3b, 0x02eecf22, 0x00183660, 0x03978733, 0x0074d918, 0x00d0c921, 0x00333384}}},
+ {X: Field{[10]uint32{0x012b33a2, 0x011a75e3, 0x019b7a2a, 0x02359513, 0x00a58100, 0x0282e350, 0x02919552, 0x00d75eaf, 0x0166ca42, 0x0011afc9}}, Y: Field{[10]uint32{0x02785040, 0x01f21ff1, 0x01ef10b7, 0x03c0085c, 0x01285b5c, 0x0342f275, 0x0182e39c, 0x0221064b, 0x016bb827, 0x001bd9bf}}},
+ {X: Field{[10]uint32{0x0159ab2f, 0x02a4538f, 0x036b7419, 0x01a0aa7b, 0x01b5422a, 0x022704d7, 0x02dfcd1b, 0x02a73e2e, 0x01a4e869, 0x001e111b}}, Y: Field{[10]uint32{0x028c9ce3, 0x00ad6196, 0x0098327d, 0x02fcb50a, 0x023f5f31, 0x00cefaf7, 0x003c051f, 0x011b0678, 0x0131db7e, 0x0010856c}}},
+ {X: Field{[10]uint32{0x0205f3b7, 0x02fc0055, 0x01d1f4be, 0x032972f4, 0x03fa2b01, 0x017ae3b6, 0x03dc7629, 0x0203350a, 0x02055110, 0x0021a21a}}, Y: Field{[10]uint32{0x03914466, 0x001f9dfd, 0x037d7675, 0x03b565e9, 0x00f9b753, 0x00eb7501, 0x038854a8, 0x030371c1, 0x01f35579, 0x0031c6da}}},
+ {X: Field{[10]uint32{0x03713388, 0x03652f20, 0x03371e16, 0x03f2ca29, 0x0036d5fa, 0x011101b8, 0x038675a7, 0x03f10ff4, 0x035e37f8, 0x00280b99}}, Y: Field{[10]uint32{0x0041239e, 0x005cf7bf, 0x01c36de3, 0x03568626, 0x004ee66b, 0x01dfa7ab, 0x02162512, 0x020353ab, 0x0141835c, 0x0035be69}}},
+ {X: Field{[10]uint32{0x0092bf26, 0x03322261, 0x03f14ea4, 0x01dfb8a1, 0x009b2997, 0x025ef013, 0x01100966, 0x01b3b734, 0x02a8432c, 0x00285ada}}, Y: Field{[10]uint32{0x020db298, 0x035c9053, 0x01aced2f, 0x028627bc, 0x021e734d, 0x03a9f853, 0x00ed6446, 0x010ab034, 0x0270ef9e, 0x00017046}}},
+ {X: Field{[10]uint32{0x00f45b5a, 0x0052e638, 0x01c5c971, 0x00afe1a1, 0x0212d7fc, 0x01ee07f2, 0x03a1205f, 0x03979742, 0x02fe775f, 0x0019a8fc}}, Y: Field{[10]uint32{0x025e3eaf, 0x008c1417, 0x001c8c18, 0x038a57b4, 0x0100e626, 0x002d3ac8, 0x00daad03, 0x03527554, 0x0114a49a, 0x0014166f}}},
+ {X: Field{[10]uint32{0x0314b3a1, 0x004de114, 0x01785962, 0x0183aa15, 0x02a1f094, 0x0184542e, 0x01c63210, 0x001319d5, 0x03cebf9a, 0x002691e8}}, Y: Field{[10]uint32{0x0040a80a, 0x03bf03bb, 0x02acbc6c, 0x03c8ae57, 0x03efd3a3, 0x024a5a49, 0x03c7045b, 0x01f9abcd, 0x02ce8f38, 0x0008b697}}},
+ {X: Field{[10]uint32{0x036628c5, 0x03d89cd6, 0x02c6f97a, 0x014d27e6, 0x0312b25a, 0x03c63ea1, 0x00e3c288, 0x02e6878f, 0x00149027, 0x00070050}}, Y: Field{[10]uint32{0x02448a4f, 0x015b2583, 0x03d353a4, 0x00d15d4e, 0x0087b499, 0x00583e5e, 0x00bc34ff, 0x034f5ade, 0x00fcd048, 0x0019c864}}},
+ {X: Field{[10]uint32{0x028d84cc, 0x03bff94b, 0x0231d057, 0x0002793a, 0x018d1374, 0x025f81d9, 0x00965cd4, 0x03a1d96b, 0x030a1de5, 0x0030b659}}, Y: Field{[10]uint32{0x013ccdf1, 0x029c9c7c, 0x02379cc7, 0x02303e14, 0x00b97a2e, 0x00a55b42, 0x0356b585, 0x03eec4ea, 0x0247a6dd, 0x003fe061}}},
+ {X: Field{[10]uint32{0x0196ec1d, 0x006c7972, 0x026910e0, 0x03954e5a, 0x03d21339, 0x005075a3, 0x00e094c4, 0x01a9a5c3, 0x004716fd, 0x0006a7fb}}, Y: Field{[10]uint32{0x03f8557e, 0x001b62e4, 0x0140c240, 0x00e047d7, 0x01d29b87, 0x025778a4, 0x037639b5, 0x01cffa53, 0x02eb6c83, 0x0038e3ac}}},
+ {X: Field{[10]uint32{0x01d8c464, 0x015abec0, 0x03bae778, 0x019a6358, 0x0053a514, 0x02c6ac9b, 0x029e5006, 0x0069b503, 0x02ed15e9, 0x002df7d4}}, Y: Field{[10]uint32{0x02e21254, 0x03b14c2d, 0x01ac1162, 0x0034297f, 0x01705c36, 0x03c60354, 0x010706ff, 0x03f63e67, 0x01bfd915, 0x003a983c}}},
+ {X: Field{[10]uint32{0x03db6b5f, 0x03e65675, 0x039d1295, 0x03e21222, 0x00918ba7, 0x000d4cd4, 0x0086a534, 0x00b8bef7, 0x00cabd09, 0x0000be57}}, Y: Field{[10]uint32{0x01693ad2, 0x01192368, 0x02a7b523, 0x024e36c7, 0x01d5b0f8, 0x0026fce3, 0x02a9c3df, 0x03b61967, 0x0014fe6c, 0x000c515a}}},
+ {X: Field{[10]uint32{0x018a7c1c, 0x029984af, 0x03fea883, 0x028df7bc, 0x023b6ae1, 0x00df9008, 0x01a432ca, 0x03936da8, 0x02c864df, 0x001d8e49}}, Y: Field{[10]uint32{0x0361bd1f, 0x00fc2970, 0x03a410bd, 0x0396e793, 0x00a3e741, 0x0203c7e6, 0x00b3e63d, 0x03443aed, 0x03724378, 0x003cd356}}},
+ {X: Field{[10]uint32{0x00a31b0d, 0x0201f272, 0x00ebf72a, 0x03746371, 0x03708ce2, 0x032db262, 0x012a513f, 0x01b3dbcc, 0x027a1291, 0x000b90ef}}, Y: Field{[10]uint32{0x0024acfa, 0x03a67437, 0x019c5971, 0x0024232d, 0x00a3a9dc, 0x03545334, 0x0257b6ce, 0x01f95c5b, 0x0224ce1b, 0x0036e464}}},
+ {X: Field{[10]uint32{0x014a5561, 0x02583073, 0x02df9a56, 0x03ec4e96, 0x002d1acd, 0x03f1a1cf, 0x0331984a, 0x01f4a1d9, 0x008f1a86, 0x001f5979}}, Y: Field{[10]uint32{0x0183ebfc, 0x01f32fb6, 0x029da7b9, 0x00daf9f9, 0x00bc9924, 0x02bde576, 0x00e2d4bc, 0x01eb4bfc, 0x0155f095, 0x00271cee}}},
+ {X: Field{[10]uint32{0x0019d725, 0x02529c5e, 0x02b7c10b, 0x021f171d, 0x006b132c, 0x035c54e4, 0x02166f04, 0x02ddcb2b, 0x00c03131, 0x00071afb}}, Y: Field{[10]uint32{0x023280ad, 0x0313492c, 0x0106e318, 0x008b3ed2, 0x0041b84a, 0x02bf7d82, 0x03dd26cd, 0x0214cc25, 0x00ff9499, 0x000b0f19}}},
+ {X: Field{[10]uint32{0x03347675, 0x02ca9904, 0x020f8198, 0x02c1fa74, 0x01aff339, 0x01fb7c1e, 0x02c83c7d, 0x020408ca, 0x025d5d11, 0x003d410a}}, Y: Field{[10]uint32{0x01a3e4c8, 0x01f7ff5e, 0x01d20b59, 0x015d6a2f, 0x02b2723f, 0x02811414, 0x02388020, 0x03f1b4bc, 0x03bce644, 0x00067043}}},
+ {X: Field{[10]uint32{0x014be300, 0x00cd622f, 0x02539b48, 0x03c0b784, 0x030e0ee9, 0x01038213, 0x000c8872, 0x00d4f9b8, 0x0066c2c0, 0x001f0e1e}}, Y: Field{[10]uint32{0x032b8f79, 0x00ded0fb, 0x00ab400c, 0x0155b2bd, 0x0356f088, 0x001d2003, 0x03c49c6d, 0x0316350b, 0x0394587f, 0x0033319b}}},
+ {X: Field{[10]uint32{0x02b3c140, 0x0081b93a, 0x034e0b7b, 0x03445a47, 0x02104b35, 0x022e8bb7, 0x02381945, 0x0370adb3, 0x0123d33a, 0x003b3a2b}}, Y: Field{[10]uint32{0x000c0a88, 0x029023df, 0x01e7c5c6, 0x00bd4d99, 0x031c7e67, 0x0326dca3, 0x00245a12, 0x034fd7cf, 0x02c07fa1, 0x003bb25d}}},
+ {X: Field{[10]uint32{0x01d12b9d, 0x02bd63c6, 0x03c56a1b, 0x0064f8b2, 0x00b951cf, 0x034085dd, 0x02efecc7, 0x0370e327, 0x0126a274, 0x00208ac2}}, Y: Field{[10]uint32{0x00118313, 0x0030b791, 0x0263f1be, 0x0021443f, 0x023638f0, 0x03f3c144, 0x014d2c49, 0x030dd60c, 0x010af9ca, 0x00122f2c}}},
+ {X: Field{[10]uint32{0x0385b8c3, 0x00b9dec3, 0x028a85cd, 0x011e0311, 0x03401dfe, 0x03398bf8, 0x0058d257, 0x03d0a3e8, 0x02036ef5, 0x00349a8e}}, Y: Field{[10]uint32{0x026a6fa7, 0x02c45d44, 0x00ba010f, 0x033e6eb9, 0x0362f1bb, 0x00c230b6, 0x01c6759a, 0x010ca5f5, 0x03623a64, 0x002630e5}}},
+ {X: Field{[10]uint32{0x03019090, 0x00f0d1a4, 0x024beb5b, 0x037eec59, 0x0124c8fc, 0x02891f47, 0x0002ab6c, 0x032ef40c, 0x001d8aa0, 0x001ffaee}}, Y: Field{[10]uint32{0x02c3ec26, 0x02918129, 0x03b446cf, 0x008f62c8, 0x03966dc9, 0x02a12e6f, 0x00ca6c02, 0x01b69d51, 0x03cb12ca, 0x003b9896}}},
+ {X: Field{[10]uint32{0x01d3473c, 0x03cac394, 0x0008733d, 0x00a9b78b, 0x02b7aa00, 0x030d912e, 0x0363a75c, 0x02daef9b, 0x00e72d43, 0x0020e791}}, Y: Field{[10]uint32{0x000fb9a9, 0x02478c4d, 0x03da43e5, 0x026150ac, 0x002d876d, 0x01dd6fda, 0x0163806d, 0x00508829, 0x023526f4, 0x0020da3d}}},
+ {X: Field{[10]uint32{0x030d7afe, 0x0163ab36, 0x01135ea9, 0x025e1b48, 0x017e049b, 0x00fcbbb6, 0x02c84f32, 0x0381f278, 0x03da1c96, 0x0014ba51}}, Y: Field{[10]uint32{0x0073a831, 0x019c39b5, 0x0097d9fa, 0x003b7112, 0x02bdbbe5, 0x027e9cae, 0x01e19a90, 0x0034f4e7, 0x02c9e0c7, 0x001af3f7}}},
+ {X: Field{[10]uint32{0x027f3603, 0x0231ad31, 0x000cedb1, 0x01d33f2c, 0x00c8b220, 0x0323a793, 0x03f6dd71, 0x029d0c75, 0x002605e4, 0x001cbb15}}, Y: Field{[10]uint32{0x006b5ee5, 0x01b53e9e, 0x01023615, 0x03e056f2, 0x0249455c, 0x007bb52e, 0x02a6d715, 0x03be53d7, 0x020b7f9d, 0x00376e4d}}},
+ {X: Field{[10]uint32{0x0006c849, 0x026b74c5, 0x00f36af3, 0x03a75aa4, 0x012ac051, 0x00a18f44, 0x02bf9baf, 0x015a2405, 0x031559a5, 0x000dc28f}}, Y: Field{[10]uint32{0x03005840, 0x0283b187, 0x01ddaba3, 0x024c8d74, 0x03ee80d9, 0x002c419e, 0x01ab5d32, 0x033b9825, 0x01a68517, 0x0021532f}}},
+ {X: Field{[10]uint32{0x03ef5dc2, 0x03e68e66, 0x02c6a714, 0x0033dc66, 0x0141d1cf, 0x01dfbda8, 0x03af5275, 0x03ef6f2c, 0x008860d2, 0x0004b95e}}, Y: Field{[10]uint32{0x02bd9ea2, 0x01b17061, 0x00821ab4, 0x027192b7, 0x01a09496, 0x01692d1d, 0x03b79ead, 0x0049bdf6, 0x02ca5dd8, 0x003d6bde}}},
+ {X: Field{[10]uint32{0x00a2b722, 0x02b630cc, 0x025bdfe2, 0x0322b282, 0x028b7905, 0x015efe74, 0x031abad7, 0x0297785e, 0x03cd0b2f, 0x002d252a}}, Y: Field{[10]uint32{0x0294cb87, 0x02475ca4, 0x01adfbf9, 0x00431902, 0x00cbacf7, 0x0100693e, 0x038d8aee, 0x0186767f, 0x03d6dad8, 0x0030e5ff}}},
+ {X: Field{[10]uint32{0x02b9d89c, 0x011817a2, 0x02a83106, 0x03912677, 0x03118ea6, 0x03dc6f72, 0x008245c0, 0x002e52c8, 0x012d900d, 0x000a55da}}, Y: Field{[10]uint32{0x00444a7b, 0x03595690, 0x02a91857, 0x00adfaee, 0x00f12934, 0x03f09354, 0x0037e940, 0x02bfa800, 0x00479284, 0x0028f155}}},
+ {X: Field{[10]uint32{0x01bd20eb, 0x02fdc8e8, 0x00cda39c, 0x034cb927, 0x031969ae, 0x03052979, 0x0213642d, 0x0381caf2, 0x0079f325, 0x00184406}}, Y: Field{[10]uint32{0x00e443b3, 0x016611c0, 0x017a9c1d, 0x00fb599d, 0x03e5c248, 0x02763ac2, 0x0367269e, 0x0392ef56, 0x00824816, 0x00138667}}},
+ {X: Field{[10]uint32{0x0255ab18, 0x027106ae, 0x034e429a, 0x0352642a, 0x02c65f6a, 0x009c87ef, 0x028c648c, 0x011d3e2a, 0x00b299f3, 0x0027ba92}}, Y: Field{[10]uint32{0x03234443, 0x01f62707, 0x00654c1d, 0x024befb8, 0x03b68028, 0x03cad687, 0x00570497, 0x0346f1fa, 0x029735ce, 0x0004e551}}},
+ {X: Field{[10]uint32{0x018bd97a, 0x03d00ed4, 0x03c5cc9d, 0x02d8c7c6, 0x013fff42, 0x028da023, 0x00759826, 0x02dc1f29, 0x00d78ba7, 0x0036ec15}}, Y: Field{[10]uint32{0x011b923a, 0x021e5d58, 0x01d4a89d, 0x03e06ae5, 0x030a55a1, 0x009f9e07, 0x00048854, 0x00e95775, 0x02c09634, 0x000e5bbd}}},
+ {X: Field{[10]uint32{0x021bbcf1, 0x03cf2aad, 0x0275cd70, 0x01056c23, 0x01b2f625, 0x01705372, 0x03cc0ea3, 0x00bbd276, 0x03d57fdd, 0x0036ea56}}, Y: Field{[10]uint32{0x00d20a3d, 0x02438c80, 0x004cc64a, 0x02b2ba4e, 0x020b8f76, 0x0054566e, 0x036dba84, 0x01f91862, 0x025eb7a1, 0x000abc25}}},
+ {X: Field{[10]uint32{0x02d0e5be, 0x02fabee2, 0x02ef5297, 0x00c9c8bd, 0x030bf1a1, 0x00f1d576, 0x02d8febc, 0x02ec3f9c, 0x02c97979, 0x0001b0c4}}, Y: Field{[10]uint32{0x0202c6ea, 0x0001c620, 0x006438be, 0x0185c7de, 0x006c4359, 0x0363ead5, 0x038d5ea3, 0x01ce777d, 0x0388db74, 0x000d8d98}}},
+ {X: Field{[10]uint32{0x008825cd, 0x038c6db7, 0x021e5b9f, 0x00c2a8c5, 0x03ad9870, 0x006335c5, 0x01b8638e, 0x02f23d52, 0x0057a494, 0x00197adc}}, Y: Field{[10]uint32{0x03a80312, 0x019a530b, 0x03c92765, 0x01088256, 0x02160b7b, 0x021c1a38, 0x016b4acf, 0x02178246, 0x02a167f2, 0x00116080}}},
+ {X: Field{[10]uint32{0x02ffa7f6, 0x01f8ae53, 0x000d6b56, 0x009b610b, 0x02c11174, 0x00abaf47, 0x01db7cbd, 0x01a36bb5, 0x0117b0e8, 0x00281a5a}}, Y: Field{[10]uint32{0x01ecba78, 0x0159d710, 0x030f5ba5, 0x00f8dffa, 0x03c797ec, 0x03a2f6a2, 0x01cb828b, 0x013723c0, 0x020da1bb, 0x00321d34}}},
+ {X: Field{[10]uint32{0x002cced2, 0x009f195e, 0x0387903b, 0x01e474ed, 0x01108744, 0x0021ad93, 0x01378301, 0x00a84cb7, 0x03821937, 0x0010646e}}, Y: Field{[10]uint32{0x03dc3f2c, 0x024bf299, 0x03b4a348, 0x01e40925, 0x00493352, 0x00b84c2f, 0x02e52bf8, 0x03486347, 0x03c98ce4, 0x0031d241}}},
+ {X: Field{[10]uint32{0x01b218c3, 0x039fd71e, 0x0038f3c3, 0x03c82427, 0x030945e3, 0x02572563, 0x023b9b2b, 0x024fb964, 0x01337212, 0x001d7cdf}}, Y: Field{[10]uint32{0x01928be7, 0x037ab3a9, 0x02a339af, 0x02847d00, 0x02a7d2fd, 0x033c46a8, 0x0328e181, 0x008a9e8b, 0x038ec6b2, 0x002b0107}}},
+ {X: Field{[10]uint32{0x02fb154e, 0x01c6bee5, 0x02c65785, 0x03dc0775, 0x026004d1, 0x03c62a12, 0x00b3bef6, 0x00bca408, 0x033ab58b, 0x0032f0c5}}, Y: Field{[10]uint32{0x01fd5c37, 0x0393783e, 0x0089226d, 0x0325863a, 0x01b8f36e, 0x0255dfb8, 0x03c166de, 0x011050b4, 0x00b76f26, 0x003104e8}}},
+ {X: Field{[10]uint32{0x02e226cc, 0x0390dc36, 0x00dd92a5, 0x03d16fd3, 0x0164f212, 0x0067346f, 0x02888324, 0x03e965a5, 0x0309a139, 0x0019395a}}, Y: Field{[10]uint32{0x010fbbbe, 0x02f06781, 0x02fa7671, 0x02a18a80, 0x01d10915, 0x02d0a505, 0x001eb3d0, 0x0240592d, 0x02eef242, 0x002a4653}}},
+ {X: Field{[10]uint32{0x015285a6, 0x033ed24d, 0x0014f73b, 0x0140273f, 0x0334e133, 0x0380be44, 0x022c2fb8, 0x01b3ca68, 0x01c5e288, 0x0038cde5}}, Y: Field{[10]uint32{0x01afb304, 0x035908c0, 0x035e15c2, 0x03431b37, 0x01f7c575, 0x02d2ec19, 0x02580cb7, 0x01231c93, 0x0121f33d, 0x001e243f}}},
+ {X: Field{[10]uint32{0x02b0b6dc, 0x01739d69, 0x036998f2, 0x0250d7ad, 0x036e6a09, 0x01b1e48c, 0x0143d2c7, 0x03428345, 0x026b7a73, 0x0001e5d7}}, Y: Field{[10]uint32{0x023eb06f, 0x00738bfd, 0x03115012, 0x004289fd, 0x008f16eb, 0x0158af09, 0x0248d5f7, 0x024fb757, 0x00aec689, 0x00042c58}}},
+ {X: Field{[10]uint32{0x01580f6f, 0x01c73774, 0x03ce02ad, 0x02124b38, 0x03c1ca44, 0x0007d106, 0x02093d08, 0x00e59e4b, 0x03cbf9c1, 0x001b4344}}, Y: Field{[10]uint32{0x03b45746, 0x012fcb3a, 0x016f1bae, 0x0351c769, 0x014bdb25, 0x01e910c2, 0x01dcfe33, 0x03c08aef, 0x023884ca, 0x0005eb90}}},
+ {X: Field{[10]uint32{0x03df0154, 0x01d28806, 0x008560a9, 0x019cfef4, 0x0360d398, 0x0098200d, 0x03d3f904, 0x00ad6727, 0x014a23af, 0x0008657c}}, Y: Field{[10]uint32{0x00136a8d, 0x00fb853e, 0x02111da5, 0x01621bfd, 0x025ff1aa, 0x014028dc, 0x01b3a10b, 0x03bc07d3, 0x038c9a44, 0x003f016c}}},
+ {X: Field{[10]uint32{0x03713628, 0x029ff7e2, 0x03c4dac2, 0x0220e113, 0x021f5582, 0x03477468, 0x0354e167, 0x03e2e746, 0x007360ac, 0x0011d9e7}}, Y: Field{[10]uint32{0x03803ea7, 0x00fdb285, 0x007510a9, 0x002bfce9, 0x037ca018, 0x013df365, 0x014bbde9, 0x03a07793, 0x0225f3b8, 0x0020a808}}},
+ {X: Field{[10]uint32{0x0230831a, 0x02a9f277, 0x00655ac9, 0x00b8bdf2, 0x038cb4ff, 0x030859af, 0x03fe514c, 0x029a6c8f, 0x02f51636, 0x002c2f40}}, Y: Field{[10]uint32{0x03d5f518, 0x03743423, 0x0081448a, 0x00fee9b2, 0x00f4843b, 0x02fae8f6, 0x03ffc51f, 0x032f14a9, 0x016248ba, 0x0001cfeb}}},
+ {X: Field{[10]uint32{0x03660158, 0x0226c068, 0x034520c6, 0x00548f2d, 0x000aab5f, 0x036fb16e, 0x03f81afa, 0x03e07fb4, 0x03d6bfe9, 0x0037ebbf}}, Y: Field{[10]uint32{0x01240583, 0x017cf6b2, 0x0324df3b, 0x0200435e, 0x0330c4bf, 0x032d6d53, 0x00a4bf9c, 0x0120539b, 0x0105c3ef, 0x000fd534}}},
+ {X: Field{[10]uint32{0x000d42ed, 0x02b81afd, 0x00ba7046, 0x038fadf9, 0x0080dffa, 0x01bf5af9, 0x013d2e79, 0x0079263d, 0x02bbda66, 0x003ac05a}}, Y: Field{[10]uint32{0x02f895be, 0x03e0e89e, 0x011f518b, 0x03b5b4a7, 0x0110f005, 0x030b97a1, 0x014d50ad, 0x0166a5b3, 0x01bbaa76, 0x000c435b}}},
+ {X: Field{[10]uint32{0x019fb2ed, 0x01ebec32, 0x01173e51, 0x01334bcd, 0x01726378, 0x00dfe398, 0x035b5eb1, 0x0202cdb4, 0x03c43c08, 0x00262786}}, Y: Field{[10]uint32{0x01faa1d8, 0x02dd1da7, 0x012feb53, 0x02d30b36, 0x00999b3b, 0x0077ddf6, 0x035963d1, 0x033314e8, 0x035f110c, 0x0013133a}}},
+ {X: Field{[10]uint32{0x02033811, 0x03846630, 0x010bbfbe, 0x01be4249, 0x00dd801d, 0x01db57bf, 0x025bd407, 0x01eefc7d, 0x0170be4a, 0x0002fac0}}, Y: Field{[10]uint32{0x0086461f, 0x037304e1, 0x01644ff4, 0x0277f316, 0x000f5234, 0x01b4f39b, 0x02998202, 0x0268e15e, 0x018a1d32, 0x0004d5ae}}},
+ {X: Field{[10]uint32{0x03c0b145, 0x032d0abf, 0x0112e337, 0x01756d83, 0x02ea9bc5, 0x01b10a5a, 0x035e5969, 0x026935bd, 0x03c1986f, 0x0000b642}}, Y: Field{[10]uint32{0x031a0c4c, 0x0327c1bd, 0x03b5b48d, 0x02fb4bbc, 0x02b377cc, 0x019fabed, 0x004b721e, 0x00665efe, 0x0364734d, 0x001f55f3}}},
+ {X: Field{[10]uint32{0x009f51bf, 0x02729dde, 0x02481e82, 0x03cffb9c, 0x0159fd53, 0x030d9cef, 0x0196848d, 0x02018b78, 0x0254c960, 0x001ade9a}}, Y: Field{[10]uint32{0x0009af23, 0x0148939b, 0x0321a579, 0x00ad0f2f, 0x03dd4dc4, 0x0162bef8, 0x0079f30c, 0x0229a7c2, 0x0208157b, 0x001aa7b8}}},
+ {X: Field{[10]uint32{0x028e8393, 0x02f2da0d, 0x03a8bf4a, 0x03a221c3, 0x0316faf0, 0x02df9fba, 0x01f8fa87, 0x037f9da3, 0x00c732cb, 0x00326491}}, Y: Field{[10]uint32{0x035620ae, 0x0303f0a1, 0x01951bc0, 0x02331a92, 0x0058cc9b, 0x00b6b8ba, 0x0163453b, 0x00ab4901, 0x035553ba, 0x00082b46}}},
+ {X: Field{[10]uint32{0x00f01b6b, 0x01c7e51c, 0x013f6d28, 0x009a707e, 0x01350fef, 0x0026807f, 0x01cf4fc6, 0x0237157c, 0x007b402a, 0x00154ff0}}, Y: Field{[10]uint32{0x00e5a824, 0x02644dcd, 0x002909c1, 0x005df91c, 0x039b3102, 0x035f54ea, 0x03cd0dc7, 0x01b7bfe9, 0x00753961, 0x000ed463}}},
+ {X: Field{[10]uint32{0x00fe2f69, 0x012fb030, 0x02369a4e, 0x009e524b, 0x03721fa9, 0x00d3216e, 0x00dfc80a, 0x0229f2cf, 0x037806ed, 0x003164c0}}, Y: Field{[10]uint32{0x0317c149, 0x031e94cd, 0x023001e1, 0x019e7d11, 0x02d7580e, 0x004ff5c0, 0x016dea62, 0x0244a4de, 0x00698a3e, 0x000da679}}},
+ {X: Field{[10]uint32{0x011e7eb5, 0x02fb3224, 0x01c6a79d, 0x01ffc744, 0x008cda0e, 0x030d275d, 0x034613d8, 0x026592e3, 0x0118f4d5, 0x0032dbc4}}, Y: Field{[10]uint32{0x01de20ee, 0x020d723f, 0x036f4cf4, 0x00f5f799, 0x030ca0fe, 0x02095f11, 0x03cc88f4, 0x03573dc8, 0x028898b0, 0x0018ac2b}}},
+ {X: Field{[10]uint32{0x01a26db9, 0x03148a8c, 0x009a946f, 0x023259a2, 0x0078b5d4, 0x037b2e67, 0x0322ae61, 0x019a3765, 0x038f8c26, 0x00368b2a}}, Y: Field{[10]uint32{0x010c7e98, 0x007869db, 0x01ad8fc2, 0x01ac4921, 0x01180849, 0x0324ec4c, 0x0214cb70, 0x03e52529, 0x037e0234, 0x001a80cd}}},
+ {X: Field{[10]uint32{0x003b7d86, 0x023579ad, 0x00a82b22, 0x020e69bb, 0x03fa595b, 0x003c0fbb, 0x03374110, 0x038f1ff8, 0x01423f9b, 0x003f1a93}}, Y: Field{[10]uint32{0x0298beff, 0x01da1968, 0x016f5bb4, 0x01b89a46, 0x0027dfbd, 0x03094fea, 0x0078fdda, 0x02f868f7, 0x0144eb8f, 0x001b0225}}},
+ {X: Field{[10]uint32{0x03dee882, 0x00dd5b78, 0x03e09db7, 0x0126509b, 0x003d09fb, 0x032a5183, 0x03258e83, 0x038341dc, 0x011ab9c6, 0x001cf26a}}, Y: Field{[10]uint32{0x0171d2b3, 0x0358d7f9, 0x0222478c, 0x00411741, 0x0352040a, 0x027b61da, 0x0290259c, 0x01422b56, 0x0327efc0, 0x0022cc50}}},
+ {X: Field{[10]uint32{0x034516d3, 0x01d1328e, 0x02762933, 0x0122ba5d, 0x022bc028, 0x012e0265, 0x03e61271, 0x033470d0, 0x006145b8, 0x00029a7c}}, Y: Field{[10]uint32{0x030ebe3d, 0x03688275, 0x009aea86, 0x006d1fd9, 0x0396b6d9, 0x02185789, 0x016caf01, 0x00dd07b0, 0x0190b450, 0x0021d463}}},
+ {X: Field{[10]uint32{0x00ed9691, 0x0148d7ca, 0x02572fc9, 0x003d11a8, 0x01376a43, 0x0056e910, 0x01dfb2ac, 0x0102dc73, 0x022570df, 0x00072f92}}, Y: Field{[10]uint32{0x0213de85, 0x01748095, 0x0380b6ef, 0x03ce6714, 0x02c8ac69, 0x02ce54fb, 0x02a2d10a, 0x0386ab3c, 0x02ccf262, 0x00049553}}},
+ {X: Field{[10]uint32{0x0388e27d, 0x0320df6d, 0x0052fd13, 0x006a209e, 0x014ee2f1, 0x02822c64, 0x005ac85b, 0x0333ed0c, 0x01c7406d, 0x00237a92}}, Y: Field{[10]uint32{0x03e9d9b0, 0x00a55ef3, 0x00056d90, 0x0395a5ed, 0x002b6071, 0x01e8141b, 0x038b15ab, 0x01f0faea, 0x01a83b51, 0x0031cf58}}},
+ {X: Field{[10]uint32{0x02d0ade5, 0x0310e921, 0x0094f6e4, 0x01f4156f, 0x025e4b71, 0x0074e35a, 0x00ab5af8, 0x0330ec7b, 0x0377b175, 0x0037a498}}, Y: Field{[10]uint32{0x03d0e11f, 0x00e1f545, 0x01cb973c, 0x02b39834, 0x016be387, 0x02352e2c, 0x0289115d, 0x0365d350, 0x03e79169, 0x000a757c}}},
+ {X: Field{[10]uint32{0x03b41497, 0x02896c34, 0x00fa38a9, 0x03317ac6, 0x00f6e8a9, 0x03549450, 0x0055a2f3, 0x01ead2ad, 0x02a7aeb3, 0x001b9dba}}, Y: Field{[10]uint32{0x01e066fa, 0x0064f925, 0x0108a89f, 0x00f35a42, 0x0144c40a, 0x011eaaf6, 0x03fb936a, 0x027456ef, 0x005a7890, 0x0001f8f3}}},
+ {X: Field{[10]uint32{0x00607574, 0x03b43e2f, 0x03f8f09e, 0x0274dfd7, 0x01467853, 0x026247e6, 0x022b03fc, 0x01fc3699, 0x02cf22d5, 0x000dc4c7}}, Y: Field{[10]uint32{0x0249f3b3, 0x01e87244, 0x026acc17, 0x02a9aaeb, 0x01281323, 0x005cf52e, 0x011d596e, 0x00a5a3d8, 0x012169d4, 0x00300ecb}}},
+ {X: Field{[10]uint32{0x025d8152, 0x004fcdd2, 0x024e7667, 0x023d25e6, 0x0365155c, 0x0337c3ae, 0x0276633b, 0x02655ca3, 0x001482c8, 0x001c8222}}, Y: Field{[10]uint32{0x0174eedc, 0x01d8b972, 0x02e92d2a, 0x01d2d22b, 0x00588a79, 0x02642803, 0x00e26f81, 0x03722f6a, 0x019f8c0a, 0x0019e0f1}}},
+ {X: Field{[10]uint32{0x03241864, 0x0048d974, 0x01e8adb7, 0x03345136, 0x02d4567f, 0x02fe74f3, 0x03a7a7ad, 0x0112ca9f, 0x03dfbaca, 0x0006e098}}, Y: Field{[10]uint32{0x0388606d, 0x02906fb5, 0x02785783, 0x02020065, 0x02edf366, 0x00b6b00d, 0x004b98db, 0x00450c65, 0x023e24f0, 0x00007f1f}}},
+ {X: Field{[10]uint32{0x02f5fd43, 0x02309833, 0x013dff1a, 0x0381684c, 0x03ea41ba, 0x03560fb7, 0x019714db, 0x01fcae06, 0x02de27ca, 0x0001e8dc}}, Y: Field{[10]uint32{0x02281142, 0x01bc6e6d, 0x032e2091, 0x0192e83a, 0x01a5d3ab, 0x03d793b5, 0x0060f220, 0x015e16d7, 0x016bb32c, 0x002838c8}}},
+ {X: Field{[10]uint32{0x00d02300, 0x03b03aa3, 0x0232a72b, 0x03f5e750, 0x00c30f22, 0x0156b07c, 0x03b94327, 0x01124722, 0x01aa5525, 0x001c6057}}, Y: Field{[10]uint32{0x036471b4, 0x03c58031, 0x03804876, 0x00613118, 0x003ade09, 0x013af8f0, 0x02fcc688, 0x0170597e, 0x03928de1, 0x0022cd04}}},
+ {X: Field{[10]uint32{0x03654d2b, 0x031714ff, 0x01c785d1, 0x01304b22, 0x0205535d, 0x027c815b, 0x02d866a0, 0x033192d8, 0x037ad3cf, 0x00006952}}, Y: Field{[10]uint32{0x03a12f19, 0x020e42d1, 0x012e841d, 0x03e774a2, 0x03e9f5ae, 0x0247b0c1, 0x0077395a, 0x021ef48b, 0x02e39f4b, 0x002df1de}}},
+ {X: Field{[10]uint32{0x019c44a6, 0x00adfb66, 0x01987726, 0x0081d00e, 0x0022cd28, 0x035d68bb, 0x030b6953, 0x01cf9772, 0x00571fc9, 0x002172d1}}, Y: Field{[10]uint32{0x010f6aa5, 0x034cc627, 0x02d53280, 0x01eaf41b, 0x0358037a, 0x03850824, 0x014ef028, 0x03f99b03, 0x01f3bd13, 0x003bf747}}},
+ {X: Field{[10]uint32{0x00fd4e4e, 0x02f7dd7f, 0x03962c35, 0x02384e37, 0x02cd72df, 0x0101e8da, 0x00b305a2, 0x00432509, 0x009c64a0, 0x00263a19}}, Y: Field{[10]uint32{0x01a6c60b, 0x02a921b5, 0x008efcd3, 0x03dbf338, 0x01624a8c, 0x030febb4, 0x01f77704, 0x0175f152, 0x01693439, 0x002a0131}}},
+ {X: Field{[10]uint32{0x00a5a72b, 0x0002e51d, 0x028817e5, 0x0191a71a, 0x035019a1, 0x01d3eb22, 0x00338958, 0x0396a23d, 0x03e6a297, 0x0007ab11}}, Y: Field{[10]uint32{0x01a11105, 0x02792b83, 0x00325f51, 0x028a570c, 0x01043a10, 0x03992e7b, 0x000bb1ff, 0x037abbce, 0x026b784d, 0x0022df6a}}},
+ {X: Field{[10]uint32{0x004f42f5, 0x012b9a01, 0x026bc96c, 0x031e80a9, 0x01e29950, 0x029c8f89, 0x029e0ab6, 0x01cd8c5f, 0x006591f2, 0x003c1e6b}}, Y: Field{[10]uint32{0x0032dfc5, 0x02051a71, 0x00562249, 0x0340f649, 0x03490186, 0x005287bd, 0x00c3ca02, 0x010dd12b, 0x01bfc99f, 0x003aa1f4}}},
+ {X: Field{[10]uint32{0x02539643, 0x01c72a8c, 0x0186eba4, 0x03a21a0c, 0x00fa0d94, 0x001dec76, 0x011c3ada, 0x00c383c0, 0x0179bf1f, 0x0035b427}}, Y: Field{[10]uint32{0x00aa8adf, 0x03d7325f, 0x00049876, 0x00dd19af, 0x00ef5100, 0x036b4b52, 0x030494dc, 0x03d507dc, 0x0064fac8, 0x0021dc2f}}},
+ {X: Field{[10]uint32{0x00351f65, 0x03cee82e, 0x0291e3af, 0x029ac793, 0x01d6416c, 0x020c4fe2, 0x00595656, 0x00cda01c, 0x03d9f896, 0x000ddb92}}, Y: Field{[10]uint32{0x025f13f1, 0x014de379, 0x0295b78a, 0x03a91feb, 0x000497de, 0x0111f2ca, 0x019e8b96, 0x023c757a, 0x01e56724, 0x002e90db}}},
+ {X: Field{[10]uint32{0x039f20d7, 0x0231d042, 0x0210c657, 0x014eee85, 0x000b17cb, 0x025be0d3, 0x0193daec, 0x031e6688, 0x02184b42, 0x0009c3ce}}, Y: Field{[10]uint32{0x03e7e5bc, 0x019cca15, 0x0300021b, 0x02a7d28e, 0x023a7054, 0x019ccddf, 0x00fb0d01, 0x022eec28, 0x012b9ab9, 0x003333ac}}},
+ {X: Field{[10]uint32{0x02c1a599, 0x00169743, 0x02de20f5, 0x02dfea62, 0x00b055d2, 0x00ed25b4, 0x0247a8a9, 0x014d20a7, 0x03641a1e, 0x002b89c6}}, Y: Field{[10]uint32{0x03c2bdd3, 0x03ec911f, 0x0181e45d, 0x02294f05, 0x01584790, 0x021ebea7, 0x02a9a23f, 0x0207c948, 0x012f39b4, 0x00053a55}}},
+ {X: Field{[10]uint32{0x03f28c8c, 0x021a6d69, 0x016a25ec, 0x00ea50ff, 0x02db36a9, 0x03b94e43, 0x0288ad64, 0x0229d2a4, 0x00fb177d, 0x0015a7ab}}, Y: Field{[10]uint32{0x03732f7c, 0x0271c6d7, 0x028440cb, 0x03d517d4, 0x02bfda9a, 0x01bd3c4d, 0x027508aa, 0x0190ae66, 0x00329127, 0x00073d8b}}},
+ {X: Field{[10]uint32{0x0315b558, 0x01f3e057, 0x01e46f27, 0x03b5b4d9, 0x0041bfb5, 0x025e43e3, 0x026a2468, 0x039eea8c, 0x027ffdc4, 0x001df1fc}}, Y: Field{[10]uint32{0x021c3007, 0x03e4cee0, 0x01a4325a, 0x03ac1140, 0x00e0f970, 0x014b0bb0, 0x02a68288, 0x03976559, 0x00dc138b, 0x00134d10}}},
+ {X: Field{[10]uint32{0x00adbb25, 0x03b5f625, 0x001ed132, 0x0079ee0c, 0x017d4676, 0x00113fbe, 0x03f67e9b, 0x000c1aa1, 0x02dbf173, 0x003598a4}}, Y: Field{[10]uint32{0x008b83c5, 0x03963d8b, 0x00209cb0, 0x0051bf14, 0x033d36db, 0x02ff2cca, 0x0145f238, 0x0293b648, 0x03558cec, 0x0033bbdd}}},
+ {X: Field{[10]uint32{0x037ed0d6, 0x021597a9, 0x03a4925e, 0x02efd541, 0x038769e3, 0x01faec7c, 0x03927ef0, 0x01bd12dd, 0x032e12ea, 0x000710a0}}, Y: Field{[10]uint32{0x0029d5ee, 0x0394e2a7, 0x0211e280, 0x028cc9ef, 0x02786a62, 0x03879076, 0x017917d9, 0x013d769c, 0x03a4b31b, 0x0022e4e0}}},
+ {X: Field{[10]uint32{0x021f7968, 0x02afddec, 0x014cc5d6, 0x00d4f34e, 0x00608324, 0x02e633cc, 0x0362911f, 0x018aa330, 0x02ff9422, 0x0018f95f}}, Y: Field{[10]uint32{0x01b009be, 0x00ba8d56, 0x036b0450, 0x038a897e, 0x00146062, 0x008ba94c, 0x0344e7d3, 0x020fc930, 0x022dfb90, 0x00278f07}}},
+ {X: Field{[10]uint32{0x03b83c90, 0x01452265, 0x03f9b02a, 0x02a6d3a8, 0x00cf3ed3, 0x024253aa, 0x0088e591, 0x022971cb, 0x03a186f3, 0x002f88cf}}, Y: Field{[10]uint32{0x01dba564, 0x0067437b, 0x0156fefd, 0x03a98a5a, 0x0140bd48, 0x03714def, 0x0389ef9e, 0x02b6c9b8, 0x02b3362f, 0x00100bac}}},
+ {X: Field{[10]uint32{0x01844b78, 0x0030fc58, 0x03579aaa, 0x01592892, 0x02f2cc69, 0x029cc3f3, 0x01f4d065, 0x01d3ea71, 0x03804e7c, 0x0018db76}}, Y: Field{[10]uint32{0x02a2496c, 0x03d1faf9, 0x022e7dee, 0x03ee4589, 0x026aa31f, 0x025fab22, 0x02feb598, 0x004b1808, 0x01695832, 0x001a928d}}},
+ {X: Field{[10]uint32{0x02e1c5e7, 0x035b0b37, 0x01e605bd, 0x030adb9a, 0x02215ae7, 0x038bc959, 0x035af1ee, 0x0361ffde, 0x01d17250, 0x00349470}}, Y: Field{[10]uint32{0x03b4ae78, 0x012d461f, 0x004cbf55, 0x001b2116, 0x005de60d, 0x02e59963, 0x035c9862, 0x00bea32a, 0x00f57df5, 0x000916b3}}},
+ {X: Field{[10]uint32{0x018ed407, 0x0371d106, 0x0248cc3b, 0x005ceea0, 0x029055f9, 0x012c1bd0, 0x011cbe05, 0x004cedc1, 0x00b8c62f, 0x00101753}}, Y: Field{[10]uint32{0x005deb54, 0x02aee9cc, 0x027201a9, 0x03f181d1, 0x01523553, 0x034af0fb, 0x00e8031b, 0x00f2d0a6, 0x0310a896, 0x002118f7}}},
+ {X: Field{[10]uint32{0x03e983b8, 0x03b638e6, 0x03003546, 0x025073a3, 0x00ab3293, 0x03f696f9, 0x00a03144, 0x00e81f85, 0x02ee9ab3, 0x0025fc16}}, Y: Field{[10]uint32{0x03849261, 0x012b56fa, 0x01a7c3be, 0x008078f4, 0x03d321f1, 0x00cde0b2, 0x0070b155, 0x004e2f13, 0x02267fd9, 0x0016798a}}},
+ {X: Field{[10]uint32{0x02b91ac8, 0x0181d243, 0x0153dea1, 0x02350c25, 0x01c99fdf, 0x02e6b5a4, 0x01060f26, 0x009701aa, 0x016118e1, 0x0000ce20}}, Y: Field{[10]uint32{0x0004384b, 0x005d9f65, 0x00c88728, 0x023f6f70, 0x02a57178, 0x0116a640, 0x013af0d2, 0x0069a301, 0x018b5b8e, 0x00160fa4}}},
+ {X: Field{[10]uint32{0x0117a9f9, 0x03dff4cf, 0x03c31dc8, 0x0198cda7, 0x038cf653, 0x0370ed81, 0x0306b1ad, 0x01a8967d, 0x00466bbe, 0x00377483}}, Y: Field{[10]uint32{0x01de5a99, 0x01e3a270, 0x03daa7cf, 0x0166b2d0, 0x017833e1, 0x0188733c, 0x02adcf46, 0x0261a2ee, 0x0329b4ea, 0x002cb7de}}},
+ {X: Field{[10]uint32{0x03dfc9f7, 0x00005c8e, 0x011cfdfe, 0x004ba37e, 0x00eecd07, 0x004e272f, 0x02c26bc3, 0x003b9565, 0x012f71ae, 0x00248f1b}}, Y: Field{[10]uint32{0x034be948, 0x0290dc00, 0x03082414, 0x021cc81f, 0x005ff2ed, 0x02680f50, 0x001ae969, 0x00490da9, 0x00ad27c4, 0x001bf6ca}}},
+ {X: Field{[10]uint32{0x00a09e65, 0x0277c637, 0x031a7fde, 0x01b05241, 0x01a44887, 0x0229f444, 0x0212461b, 0x01fa1d9a, 0x02bd28d5, 0x001b50a9}}, Y: Field{[10]uint32{0x01fd28bf, 0x02fb5ae5, 0x02775640, 0x0099d1fc, 0x00dcdd28, 0x0008988d, 0x005554df, 0x03a5f0d6, 0x02b801db, 0x00137c1e}}},
+ {X: Field{[10]uint32{0x01d761ae, 0x018c3b08, 0x023f04b9, 0x0010c726, 0x0170efe1, 0x014e7b38, 0x003610d8, 0x03c9674f, 0x016159f9, 0x001ff50a}}, Y: Field{[10]uint32{0x01d7e280, 0x03c77c49, 0x026dc787, 0x0005b574, 0x00e85b60, 0x03543990, 0x037d00c4, 0x00afd440, 0x0041b8ce, 0x003f5a55}}},
+ {X: Field{[10]uint32{0x026770b5, 0x026ec97a, 0x018a75b5, 0x0377d023, 0x00944045, 0x00156664, 0x0100a017, 0x025f7f9e, 0x010b128d, 0x00123041}}, Y: Field{[10]uint32{0x00f66559, 0x0005f05b, 0x0061ef9b, 0x027e218c, 0x01d450e4, 0x00d4e282, 0x0061b315, 0x00c67073, 0x01a04b6e, 0x0023df3b}}},
+ {X: Field{[10]uint32{0x02e2a686, 0x01963df7, 0x00a09689, 0x01037969, 0x00b3214c, 0x0220f19f, 0x02baa1b4, 0x018b725a, 0x019da12d, 0x0015118b}}, Y: Field{[10]uint32{0x01ccd957, 0x03fb0b96, 0x02e370bc, 0x00583546, 0x026a3f00, 0x03bba067, 0x0133bb50, 0x00475c3f, 0x016f9160, 0x001d9ceb}}},
+ {X: Field{[10]uint32{0x026435e8, 0x01ce6087, 0x02261443, 0x011d535e, 0x0095c5fe, 0x012ddc7c, 0x025a46e4, 0x0076260a, 0x00c4e4e1, 0x001a614d}}, Y: Field{[10]uint32{0x01cbba18, 0x03d07538, 0x011376a8, 0x0267dc70, 0x039faba0, 0x039f5a1c, 0x0219a8a5, 0x0031c635, 0x02acb272, 0x000db580}}},
+ {X: Field{[10]uint32{0x03e77ecc, 0x0120ca82, 0x0341ad8c, 0x00849bf4, 0x01d0bc2a, 0x03223b36, 0x0376b0d7, 0x02070eec, 0x035951c6, 0x001124fd}}, Y: Field{[10]uint32{0x0120351e, 0x002624b0, 0x0012a391, 0x03d3a0a7, 0x02df7143, 0x02ff552f, 0x03158574, 0x026ab65f, 0x021dd4d9, 0x003954f8}}},
+ {X: Field{[10]uint32{0x00f8313b, 0x02f89233, 0x02ec8cf8, 0x0179a1f9, 0x006c0632, 0x0245f009, 0x0384cf5f, 0x02038625, 0x02a93300, 0x002c1536}}, Y: Field{[10]uint32{0x0367d866, 0x0222c76d, 0x01a83b06, 0x016877ba, 0x014ed52a, 0x01809083, 0x015f2a40, 0x03956b1d, 0x03155c9c, 0x00147c11}}},
+ {X: Field{[10]uint32{0x0029583e, 0x000dc4f0, 0x03c571fe, 0x032581be, 0x02c1f8cf, 0x0194676c, 0x03e6796e, 0x01ac7e7f, 0x02a4fa99, 0x0012d09c}}, Y: Field{[10]uint32{0x030edb83, 0x032029bf, 0x0110cf5f, 0x00cd0e13, 0x03cecde8, 0x032f145e, 0x0336f8cf, 0x0314f572, 0x02d0dce7, 0x002549bc}}},
+ {X: Field{[10]uint32{0x03e29604, 0x0012a8d8, 0x00bff46a, 0x020fc7c1, 0x006cf63f, 0x03468e52, 0x02d8e647, 0x03a0bb2b, 0x0281c69d, 0x003587ad}}, Y: Field{[10]uint32{0x021f08b8, 0x0218965c, 0x001dfaa3, 0x01756fd1, 0x03f62fdf, 0x002b8a3a, 0x006d9a43, 0x01ee3cdf, 0x02fb156d, 0x0026d6a4}}},
+ {X: Field{[10]uint32{0x02bf507f, 0x00f93830, 0x0157d576, 0x0103bf63, 0x008349e3, 0x037057ae, 0x0173c8f3, 0x01e7027e, 0x000257f9, 0x0002fe3c}}, Y: Field{[10]uint32{0x020614fe, 0x01052820, 0x037d9f66, 0x00e7d3c5, 0x03433467, 0x01b4d8e8, 0x00265a83, 0x0399c3f7, 0x022f1041, 0x00158761}}},
+ {X: Field{[10]uint32{0x034cb498, 0x00f8a25d, 0x032d5eb0, 0x011547b1, 0x03b471fd, 0x00a4ea1b, 0x01ca03f7, 0x03eb5936, 0x00e2a7a6, 0x0018ec95}}, Y: Field{[10]uint32{0x01948c8b, 0x01eef9d4, 0x01880083, 0x014dafbf, 0x01f5be7d, 0x00b79273, 0x03b3819a, 0x03a48b71, 0x01113a4c, 0x003d0514}}},
+ {X: Field{[10]uint32{0x03968725, 0x00628a74, 0x0009ae04, 0x0021ae4f, 0x0350fdd9, 0x01327bf9, 0x0091f33c, 0x01bb618d, 0x02cde1da, 0x002eb9be}}, Y: Field{[10]uint32{0x02a30533, 0x0198241b, 0x0349bb4d, 0x03149498, 0x02e4ca46, 0x019539a8, 0x03df74c6, 0x00c5dbda, 0x01550e48, 0x001f1f72}}},
+ {X: Field{[10]uint32{0x00eb34af, 0x021188eb, 0x0029b595, 0x005d4e01, 0x00d30a63, 0x0271982c, 0x02d81395, 0x02a823cf, 0x01f8ea15, 0x003d58a1}}, Y: Field{[10]uint32{0x015a9eb9, 0x02c73a41, 0x038ee31e, 0x0369ee66, 0x02d9a0f6, 0x028b72e6, 0x0303c9de, 0x00652901, 0x03c1a202, 0x0004400c}}},
+ {X: Field{[10]uint32{0x0151d87a, 0x01c98ce0, 0x006a540d, 0x0348663b, 0x020eafba, 0x003a38da, 0x039191c6, 0x035147b6, 0x00953de3, 0x0021db1f}}, Y: Field{[10]uint32{0x032279b8, 0x013897a5, 0x03d27df5, 0x00744016, 0x01cf5501, 0x0394aa16, 0x0010d177, 0x0031b010, 0x037472ce, 0x00257bff}}},
+ {X: Field{[10]uint32{0x000a6d30, 0x0360eb25, 0x030e3fbf, 0x01b6e8fc, 0x00a024d8, 0x02ac71d6, 0x00969024, 0x01ef55a0, 0x03ed077c, 0x003a55b1}}, Y: Field{[10]uint32{0x03aad9da, 0x01c5dc41, 0x0026b45c, 0x0164339a, 0x0205aa57, 0x01669592, 0x017a9da2, 0x026adde9, 0x00a6f0d1, 0x0006d77f}}},
+ {X: Field{[10]uint32{0x01dd3f16, 0x00bfeaa6, 0x028bd8fe, 0x016a0691, 0x03ab743b, 0x01412335, 0x016e9c06, 0x01150c51, 0x0261abdb, 0x003d4ff7}}, Y: Field{[10]uint32{0x0390222f, 0x01ad93b5, 0x026bc1a2, 0x023b838a, 0x01a65ac7, 0x02cd586f, 0x038e86ba, 0x008ad405, 0x013947ea, 0x00074a2d}}},
+ {X: Field{[10]uint32{0x00043ad9, 0x00d91272, 0x003b5f5d, 0x02d3def3, 0x025e49b0, 0x00da9f18, 0x01b91039, 0x010d751d, 0x028152eb, 0x002e46a1}}, Y: Field{[10]uint32{0x013aaa75, 0x00c018a8, 0x0288bb34, 0x00347a2f, 0x01722dc9, 0x007746f5, 0x0296f3d1, 0x026f0185, 0x01175693, 0x00031d63}}},
+ {X: Field{[10]uint32{0x018f8cc7, 0x03c233e3, 0x02897b16, 0x032ec930, 0x0261f5ad, 0x02f25d4d, 0x00c55d0a, 0x00a49f6d, 0x007023e3, 0x0016a1ef}}, Y: Field{[10]uint32{0x03731e54, 0x02a9b81b, 0x01b2c3d2, 0x00b622a2, 0x009d1ac3, 0x02ffdd2d, 0x02d2120f, 0x00357011, 0x024baa6a, 0x00273aab}}},
+ {X: Field{[10]uint32{0x01ceb034, 0x01e7de5c, 0x02e80de9, 0x02a19ad9, 0x01215622, 0x03f1736c, 0x00a80b9e, 0x02cd50ef, 0x0343e54e, 0x002b02c6}}, Y: Field{[10]uint32{0x00638d8d, 0x0344fcfd, 0x007f609b, 0x03ef4afc, 0x01439477, 0x025f6a6d, 0x03c2b871, 0x0385485e, 0x035e5731, 0x002a2455}}},
+ {X: Field{[10]uint32{0x005ca915, 0x01cd19fa, 0x03dc1450, 0x01277cea, 0x00e84f19, 0x01ae88dc, 0x034d6f3f, 0x033609db, 0x02bc2017, 0x0034f107}}, Y: Field{[10]uint32{0x00dcf7b7, 0x02979363, 0x02ce609d, 0x01d8ee8f, 0x01bc1e95, 0x0043f3cd, 0x02b1e916, 0x0165147d, 0x01528be5, 0x0014aac7}}},
+ {X: Field{[10]uint32{0x03923b02, 0x03afa551, 0x010634d1, 0x013d27ba, 0x02ab842e, 0x0386c3cd, 0x0100d00f, 0x00b31bde, 0x0057f4c8, 0x001a33ff}}, Y: Field{[10]uint32{0x02b1d8e2, 0x01a92166, 0x026b26fe, 0x0012ebb4, 0x03367ba9, 0x00628c1a, 0x03da281c, 0x001d070f, 0x01bfaac1, 0x001ca655}}},
+ {X: Field{[10]uint32{0x00177d9c, 0x03c954e3, 0x0074cd30, 0x0194d0fe, 0x02579dc7, 0x014c9299, 0x00566b33, 0x0267bb82, 0x00e12462, 0x001f83d6}}, Y: Field{[10]uint32{0x0021447c, 0x010065a2, 0x0128dcd3, 0x0055a816, 0x00086b90, 0x034d99d0, 0x009af7b5, 0x024fc020, 0x01835872, 0x000e5949}}},
+ {X: Field{[10]uint32{0x00c9b542, 0x0057ae39, 0x03bbb97a, 0x0219cc95, 0x025dc450, 0x02cc97f5, 0x013d4bf1, 0x019263ad, 0x03dbd181, 0x0031caae}}, Y: Field{[10]uint32{0x0325a7b9, 0x01debeca, 0x0378288e, 0x0232da06, 0x00841a06, 0x011b34c6, 0x0041ed3e, 0x03cf4a21, 0x03a55df5, 0x000f23eb}}},
+ {X: Field{[10]uint32{0x02363d0d, 0x002aed74, 0x015a1b72, 0x0329cff8, 0x00943654, 0x03da40de, 0x024d76ce, 0x0245107d, 0x035d3eb0, 0x001d1d1f}}, Y: Field{[10]uint32{0x00443649, 0x03eb5f07, 0x019b9746, 0x029907e5, 0x03bf54c1, 0x032bc151, 0x01f993a5, 0x03a3dcc8, 0x03240bc7, 0x00004b19}}},
+ {X: Field{[10]uint32{0x01b67067, 0x03ff23e4, 0x006e1212, 0x00b347ec, 0x0129db86, 0x02b5a26a, 0x00b5d71d, 0x039f10d3, 0x02d1ab1d, 0x003ca9c0}}, Y: Field{[10]uint32{0x03afd854, 0x01ef458d, 0x0242962c, 0x006af451, 0x031d5ec1, 0x03ed373e, 0x03452bc7, 0x02b26b2d, 0x022cc730, 0x00016e47}}},
+ {X: Field{[10]uint32{0x000d9340, 0x02d58d34, 0x01e1b530, 0x00f52fa4, 0x00c2535b, 0x000711ba, 0x01a87b62, 0x01ad197f, 0x030814e7, 0x002a4b53}}, Y: Field{[10]uint32{0x01cd0277, 0x02e81941, 0x030be6f4, 0x02f08d43, 0x0038d96d, 0x01d536b6, 0x01fd9bfe, 0x03ed015a, 0x028f3c02, 0x001360a6}}},
+ {X: Field{[10]uint32{0x02f205a1, 0x03e45e89, 0x017462aa, 0x010a1285, 0x02df5ea1, 0x002a03ee, 0x00ea3206, 0x030ecfe4, 0x00b1ac06, 0x001e78c3}}, Y: Field{[10]uint32{0x00d5c82f, 0x007c9db2, 0x028d5352, 0x012a7d85, 0x007f1736, 0x0032ea5d, 0x008a79ed, 0x0252556b, 0x020a8145, 0x002b4882}}},
+ {X: Field{[10]uint32{0x009401d1, 0x008c6da3, 0x02ff3020, 0x028eeaf5, 0x0288c8d6, 0x00903e8c, 0x023252be, 0x015dfc11, 0x0053d412, 0x001b5577}}, Y: Field{[10]uint32{0x03006eb3, 0x00cbf4de, 0x021540d7, 0x03228297, 0x02c98e17, 0x019e7c15, 0x01553452, 0x00cb0164, 0x0096aa3b, 0x0020e907}}},
+ {X: Field{[10]uint32{0x01b3f20a, 0x00ed5a92, 0x02f487c8, 0x038834f8, 0x0211ef14, 0x032e2830, 0x03ea5eb4, 0x02e426cd, 0x031f604e, 0x0033e727}}, Y: Field{[10]uint32{0x0247dff8, 0x034722e8, 0x03f93dd3, 0x03e77d5b, 0x02da24ea, 0x032d1077, 0x0260b5be, 0x026621dc, 0x01f64e64, 0x000ae42e}}},
+ {X: Field{[10]uint32{0x006b35dd, 0x03649786, 0x00346a2f, 0x016eea6a, 0x00e30f43, 0x03bdbf2b, 0x03677809, 0x02652acc, 0x019f29ed, 0x0018350a}}, Y: Field{[10]uint32{0x0360331e, 0x008da551, 0x0143737b, 0x02927462, 0x03040d51, 0x03639092, 0x0386ddd2, 0x02d3163f, 0x0388b8aa, 0x00037da6}}},
+ {X: Field{[10]uint32{0x01493540, 0x0314ddb6, 0x02122887, 0x01660b34, 0x037de3be, 0x004528ef, 0x02bbb854, 0x012981ad, 0x02dd1b67, 0x00364e9b}}, Y: Field{[10]uint32{0x01e5f7ff, 0x03146ffe, 0x01230423, 0x023111fb, 0x03acfdb0, 0x03e486b9, 0x01590064, 0x0065ef00, 0x03d7dc79, 0x0021f68d}}},
+ {X: Field{[10]uint32{0x01652962, 0x024646af, 0x03c6025d, 0x0368681b, 0x01fd5869, 0x032ded7d, 0x02bb6b31, 0x023662dc, 0x01377e10, 0x0033e30f}}, Y: Field{[10]uint32{0x00128fbb, 0x02722c4d, 0x01c93afc, 0x006a1e7b, 0x02fc5427, 0x0086cf2b, 0x002b0343, 0x02b40b6d, 0x0102bb96, 0x0001bd73}}},
+ {X: Field{[10]uint32{0x00df29eb, 0x011f9a23, 0x002a6908, 0x0123c931, 0x00715b90, 0x01ee7283, 0x03ab65ac, 0x03b3e609, 0x02474637, 0x001b2a64}}, Y: Field{[10]uint32{0x02b55439, 0x0260f93f, 0x001f6d93, 0x00374057, 0x028bb616, 0x02ad5f0f, 0x02a446ed, 0x01153b65, 0x01a5fefa, 0x00144de3}}},
+ {X: Field{[10]uint32{0x00d17afd, 0x035a1b4a, 0x008c558e, 0x0135ee7c, 0x033cc306, 0x02b3cb8f, 0x0267758c, 0x004f577a, 0x00043cb8, 0x001bdf4b}}, Y: Field{[10]uint32{0x0233bc6f, 0x029b3194, 0x013c8c65, 0x03c82b0a, 0x01b590a5, 0x01f17858, 0x039106c1, 0x03b120cf, 0x027813ec, 0x0011e538}}},
+ {X: Field{[10]uint32{0x0124f3e1, 0x02a2893a, 0x03475d2c, 0x0069f667, 0x01e818d0, 0x0213a466, 0x02a82b01, 0x0220fead, 0x00d00bc9, 0x003e2bb8}}, Y: Field{[10]uint32{0x039442b5, 0x01bcd2a0, 0x01b8ab52, 0x01797348, 0x0244f105, 0x01ac6cf7, 0x0026bfac, 0x0177c025, 0x032b6913, 0x002b3e72}}},
+ {X: Field{[10]uint32{0x00ce781c, 0x010ad180, 0x03f9d222, 0x03aba461, 0x010a85c8, 0x03d32470, 0x03123fc7, 0x000fd12f, 0x00bfc1a2, 0x0022c03f}}, Y: Field{[10]uint32{0x01d35bc9, 0x02617322, 0x03cac478, 0x02676b7e, 0x020a8de6, 0x03b9510a, 0x00264280, 0x039a43b0, 0x018a3e81, 0x00187a79}}},
+ {X: Field{[10]uint32{0x01d6dd4d, 0x02dfe84e, 0x03c1ab0e, 0x008fa612, 0x00a72785, 0x0330c84b, 0x001ebbc1, 0x028acb08, 0x03078e84, 0x003eeb2e}}, Y: Field{[10]uint32{0x003a0f52, 0x02129f93, 0x020833aa, 0x017f45b1, 0x014e557d, 0x032eea89, 0x03df675c, 0x002265e5, 0x01d6f5eb, 0x000b1b27}}},
+ {X: Field{[10]uint32{0x005c0611, 0x00cf6b2b, 0x02175bfa, 0x02ecf7e2, 0x005ba601, 0x00ee8a01, 0x028f9935, 0x03c14e34, 0x035c2f32, 0x000555a1}}, Y: Field{[10]uint32{0x00e240b7, 0x02bfa129, 0x01cf8eba, 0x00e84391, 0x03d2eb78, 0x022238e1, 0x01fb5405, 0x0251923a, 0x0050c3da, 0x0014d88c}}},
+ {X: Field{[10]uint32{0x02d93d77, 0x01caec00, 0x0379e2e9, 0x03416617, 0x0349a8ce, 0x01a0fe00, 0x03e690ec, 0x017a6338, 0x00957f5b, 0x002d80ac}}, Y: Field{[10]uint32{0x01435227, 0x00e6d3a1, 0x009d960d, 0x00e2bd6e, 0x01ff3588, 0x006edecc, 0x00046acb, 0x02e0878c, 0x0390ddd6, 0x001e21a0}}},
+ {X: Field{[10]uint32{0x022dd17a, 0x01454076, 0x0037724f, 0x0059d7f9, 0x037a8462, 0x001bc154, 0x01d66f8a, 0x00913822, 0x016523a5, 0x000a8440}}, Y: Field{[10]uint32{0x00825159, 0x0314e86e, 0x02bff938, 0x01e1f4b0, 0x02b881d0, 0x001cdfce, 0x02de4983, 0x018ba6c0, 0x0125e1ca, 0x000934ed}}},
+ {X: Field{[10]uint32{0x017efce0, 0x00d76991, 0x01d3835a, 0x02495bf2, 0x01a13edb, 0x03d0f4b6, 0x0326a8e4, 0x03e6a738, 0x03591148, 0x0001cc51}}, Y: Field{[10]uint32{0x03b2d8b3, 0x02c3fddd, 0x03790c7f, 0x03c0c182, 0x021ad5ad, 0x015d991c, 0x02c7cfa4, 0x02a8134e, 0x009480d0, 0x002c6573}}},
+ {X: Field{[10]uint32{0x036206fc, 0x0117b76c, 0x02e3db2f, 0x0190df65, 0x000525d8, 0x016a7638, 0x0362979c, 0x008f5c58, 0x03e40c7e, 0x0028db93}}, Y: Field{[10]uint32{0x02844751, 0x0158d799, 0x02707c74, 0x027da5e9, 0x00034669, 0x0020ce69, 0x0270de87, 0x0236d2a2, 0x03850a42, 0x0015ab39}}},
+ {X: Field{[10]uint32{0x003cac9a, 0x0135de3d, 0x00402344, 0x035fa219, 0x0085b877, 0x0289253d, 0x021b61d5, 0x01046175, 0x03e7a2c5, 0x0025e192}}, Y: Field{[10]uint32{0x01f2ff69, 0x023b68ae, 0x000ab013, 0x00a1c6e6, 0x003a6c54, 0x03a4f9c7, 0x01dcd900, 0x020e4554, 0x0278a85b, 0x0010ccca}}},
+ {X: Field{[10]uint32{0x0119893e, 0x03ae65a1, 0x02458b74, 0x01057fc0, 0x03daa7ca, 0x0177351f, 0x02c92c84, 0x03ba9b68, 0x01bf2449, 0x000d294b}}, Y: Field{[10]uint32{0x0303ece4, 0x00151ff8, 0x001b9427, 0x00d5a675, 0x03b3545a, 0x007ceec8, 0x03a8d552, 0x009b27de, 0x0029900f, 0x002b7506}}},
+ {X: Field{[10]uint32{0x03f3d629, 0x037a298b, 0x02fcf5af, 0x02ede67d, 0x030d8bdb, 0x018c7d6e, 0x037b2b48, 0x02985d7e, 0x03a994ee, 0x0038942a}}, Y: Field{[10]uint32{0x0143b0ea, 0x02f60da0, 0x01757409, 0x03b02ffc, 0x022e92c4, 0x02254c3e, 0x00b6fae6, 0x03ea182f, 0x00f59db0, 0x00200fcd}}},
+ {X: Field{[10]uint32{0x0071ae00, 0x026b8a6e, 0x02372086, 0x00bb8eca, 0x02795304, 0x01563845, 0x009347a4, 0x011b8845, 0x026d0b59, 0x00060d5a}}, Y: Field{[10]uint32{0x015385cb, 0x03a6aee6, 0x01f08f19, 0x008eea30, 0x000ba6de, 0x032849f1, 0x0398ec8d, 0x01be0787, 0x01716b17, 0x0015bbc2}}},
+ {X: Field{[10]uint32{0x00205533, 0x033caa44, 0x0288eed3, 0x035bdcf5, 0x02ca5932, 0x0030a795, 0x025ef3f3, 0x0182100d, 0x03f5e530, 0x000d6a3a}}, Y: Field{[10]uint32{0x03259958, 0x0061481f, 0x018c453a, 0x03570b41, 0x0220d30f, 0x02b69d67, 0x01410325, 0x0153788f, 0x01950429, 0x0027ab97}}},
+ {X: Field{[10]uint32{0x02a4e1b9, 0x014107f9, 0x007bda70, 0x02427292, 0x037b3dbe, 0x014ea597, 0x0062b920, 0x023fa7aa, 0x02f525ea, 0x0000df81}}, Y: Field{[10]uint32{0x03ceb97c, 0x015fed87, 0x020d703f, 0x01a3f73d, 0x003f2f65, 0x00686650, 0x0313b604, 0x026fa88f, 0x03d35e48, 0x0020e467}}},
+ {X: Field{[10]uint32{0x02131c27, 0x037b0657, 0x007131a4, 0x0119c636, 0x01483166, 0x03929bff, 0x00629476, 0x0000bc44, 0x0297ac6c, 0x002aeef9}}, Y: Field{[10]uint32{0x012f9dcb, 0x01c55cac, 0x00300929, 0x01126a92, 0x02fd7049, 0x0083abd3, 0x00d8a24a, 0x008bfdfe, 0x02cb9d51, 0x002cb249}}},
+ {X: Field{[10]uint32{0x01b05878, 0x0161691a, 0x0204368a, 0x00dabab2, 0x015a1a36, 0x022454c5, 0x0029c8b7, 0x03730fdf, 0x02cb1484, 0x00137cda}}, Y: Field{[10]uint32{0x0241c41d, 0x0308379a, 0x02d09d4f, 0x012edff3, 0x00aa059f, 0x0255914d, 0x00417fb1, 0x03c098ff, 0x026fc08a, 0x003f85bf}}},
+ {X: Field{[10]uint32{0x0399d0d7, 0x01f4a6f9, 0x0073123a, 0x018371f1, 0x03c8f49c, 0x02f6bdab, 0x01570e5e, 0x01a82a22, 0x02e31025, 0x0017fc53}}, Y: Field{[10]uint32{0x03e65d7b, 0x0074af3d, 0x010d8989, 0x01b15b3f, 0x0295382d, 0x02b66146, 0x02a923ee, 0x00beb23c, 0x013855eb, 0x0025bfc5}}},
+ {X: Field{[10]uint32{0x015d119a, 0x00b7a8a1, 0x028104f6, 0x0320dabd, 0x02a24dba, 0x01eadc61, 0x01281a1b, 0x008bd1e4, 0x0052c1d4, 0x0005a84b}}, Y: Field{[10]uint32{0x00c17478, 0x0205c8c9, 0x03b2ab3a, 0x03d01838, 0x01d36a4b, 0x02eeaaea, 0x0196cb38, 0x015b791a, 0x0272f673, 0x001e9bbc}}},
+ {X: Field{[10]uint32{0x01489ef5, 0x0003fea8, 0x00eda606, 0x02b2fa91, 0x0005fcdb, 0x03f559f9, 0x00b3d154, 0x02248292, 0x00338368, 0x0023d327}}, Y: Field{[10]uint32{0x03885717, 0x015932b6, 0x01b4e37d, 0x035232ee, 0x01a4b0ab, 0x018a78b9, 0x03c0082d, 0x01131eca, 0x004de064, 0x000aed6f}}},
+ {X: Field{[10]uint32{0x02b83310, 0x035b4aaa, 0x017776ab, 0x00bf417d, 0x0219236d, 0x0140e672, 0x00ca399e, 0x01c04215, 0x039b0754, 0x001262fc}}, Y: Field{[10]uint32{0x02fd691c, 0x0394699a, 0x01d0c4dd, 0x0118b0d5, 0x02b5edcd, 0x0291752e, 0x007beb58, 0x0238daf3, 0x03ff0cb5, 0x00238b7a}}},
+ {X: Field{[10]uint32{0x02fb5996, 0x01b84dbb, 0x01c1171e, 0x024047a2, 0x022ba51d, 0x012560cd, 0x02247d17, 0x034e5ac8, 0x020a2978, 0x001e051f}}, Y: Field{[10]uint32{0x03f85989, 0x00c349c3, 0x01fd41d8, 0x03d6e2c1, 0x004c75bf, 0x03ad1043, 0x01bf0fb2, 0x01986f9c, 0x030ca73b, 0x00299ade}}},
+ {X: Field{[10]uint32{0x028d4927, 0x035df760, 0x01f663f4, 0x028b85ab, 0x0047e112, 0x00b7c012, 0x037aea1d, 0x01b1f951, 0x00d9fb23, 0x000d44a6}}, Y: Field{[10]uint32{0x00fe00f9, 0x00ab2077, 0x03f2067f, 0x035161e3, 0x01241094, 0x01862b94, 0x01c3884e, 0x008ea745, 0x01af8b6f, 0x001b2724}}},
+ {X: Field{[10]uint32{0x02399d10, 0x00af2f85, 0x00a67a34, 0x01a2797e, 0x01c18146, 0x0121526b, 0x00ffc148, 0x01827093, 0x000c88fb, 0x003ed7ff}}, Y: Field{[10]uint32{0x00229ab3, 0x011b97ee, 0x00a0946f, 0x02472217, 0x0088cf57, 0x03a4ba5e, 0x03eff328, 0x02532e43, 0x013f9ced, 0x002a6578}}},
+ {X: Field{[10]uint32{0x0032097b, 0x0293e812, 0x036b36c7, 0x0251df35, 0x0089565e, 0x00372aa8, 0x03bd1974, 0x027175c5, 0x03c44cc0, 0x0020d4ad}}, Y: Field{[10]uint32{0x010fe6bc, 0x02bdb1df, 0x01e236f8, 0x02ada531, 0x00f91c8f, 0x01dd2b9a, 0x018ca786, 0x0097641d, 0x019800fa, 0x002541f2}}},
+ {X: Field{[10]uint32{0x01919f4a, 0x00104561, 0x0140bd82, 0x036d8ab6, 0x015d5ed1, 0x02ec7165, 0x01014d76, 0x009d1b5b, 0x000f273a, 0x0006f997}}, Y: Field{[10]uint32{0x0009a3f2, 0x0368d657, 0x03552da3, 0x00f202c8, 0x00f044e9, 0x03be0eba, 0x01470a83, 0x03e0e68f, 0x03302a38, 0x0036b263}}},
+ {X: Field{[10]uint32{0x0358418e, 0x017e6302, 0x003a7ed6, 0x0227afdd, 0x008de14d, 0x03a003d9, 0x0365037a, 0x03889fba, 0x03a52f4b, 0x001c41fc}}, Y: Field{[10]uint32{0x01fca7a4, 0x01a9d29a, 0x00e6069f, 0x03caa857, 0x01927b2d, 0x023bab91, 0x00e429d1, 0x03cc9f45, 0x0009bd1a, 0x002ff3c7}}},
+ {X: Field{[10]uint32{0x03312e3e, 0x00125ce5, 0x00cff9dd, 0x03300293, 0x00983389, 0x02c7e766, 0x0254a133, 0x02b96c73, 0x004be8ed, 0x000045ca}}, Y: Field{[10]uint32{0x0212b03d, 0x02d170e0, 0x01539638, 0x01de1b98, 0x0084e3af, 0x0321342e, 0x03519994, 0x03b5262f, 0x001e724f, 0x00247923}}},
+ {X: Field{[10]uint32{0x000de54e, 0x02d129ec, 0x015ded31, 0x02db1f99, 0x0041c243, 0x0226d9c5, 0x01f1cd0d, 0x026ad194, 0x02deb1ff, 0x00282361}}, Y: Field{[10]uint32{0x030f0d2f, 0x0098a720, 0x0012c0ec, 0x03530b6f, 0x01a72ed8, 0x01d33252, 0x0364feef, 0x00e7455d, 0x03f6344d, 0x001343f9}}},
+ {X: Field{[10]uint32{0x00e8c25f, 0x023b2d69, 0x015503f7, 0x00cf79c4, 0x0098cfc6, 0x02352282, 0x032cbf36, 0x01062bbb, 0x01cedf67, 0x00271130}}, Y: Field{[10]uint32{0x01e743fa, 0x01936f8c, 0x0335f81f, 0x01b79306, 0x03de3d3c, 0x03e61c30, 0x01a959b9, 0x03c258c7, 0x002086d3, 0x000f3688}}},
+ {X: Field{[10]uint32{0x0339f149, 0x00ce2c88, 0x02319250, 0x012694ab, 0x00f85979, 0x03c935c5, 0x03118da6, 0x030196ea, 0x00755215, 0x00364cf9}}, Y: Field{[10]uint32{0x00baec45, 0x01f5bf22, 0x01dcb054, 0x00e74bc6, 0x030e277e, 0x012604a1, 0x03abfa60, 0x03c13778, 0x028e313a, 0x0017ec3c}}},
+ {X: Field{[10]uint32{0x008a42cb, 0x003c74c6, 0x015ff63c, 0x014d96ab, 0x024c2f9e, 0x03c90ef1, 0x00105289, 0x014cb288, 0x0197ddd0, 0x001ff87c}}, Y: Field{[10]uint32{0x02472af7, 0x0159e3ff, 0x02c7cd3f, 0x02b1ae8a, 0x01a9ec6b, 0x015879d7, 0x03618286, 0x024863b8, 0x033fa186, 0x00204ec4}}},
+ {X: Field{[10]uint32{0x0107f79c, 0x02ae54b1, 0x0151a96a, 0x02bacf5d, 0x037ba412, 0x00b71b55, 0x010789c7, 0x008409eb, 0x01218961, 0x0038d5a1}}, Y: Field{[10]uint32{0x023e3a30, 0x01919690, 0x029a8496, 0x00533579, 0x017d8201, 0x0377d351, 0x01fe225e, 0x02a2b2b9, 0x01058e2c, 0x001d9171}}},
+ {X: Field{[10]uint32{0x02ebece4, 0x03b3e0ad, 0x0380d146, 0x020ee089, 0x00c667a1, 0x02daa768, 0x02bcefc3, 0x01128aaf, 0x01468a56, 0x00315abf}}, Y: Field{[10]uint32{0x00f1a8d4, 0x018d7e55, 0x01e750cc, 0x005071a4, 0x022915ba, 0x01a19526, 0x03c587cb, 0x00a11227, 0x0255a80e, 0x00279071}}},
+ {X: Field{[10]uint32{0x01589345, 0x0347c9a8, 0x02d5600a, 0x023f46af, 0x01440f9f, 0x00257c38, 0x036042e1, 0x02a3c1ce, 0x033960e6, 0x002c90ba}}, Y: Field{[10]uint32{0x036dfde0, 0x00107961, 0x01ca4bb5, 0x02b7a11a, 0x00378579, 0x025bca8d, 0x002decb6, 0x03c280d8, 0x036df063, 0x00251369}}},
+ {X: Field{[10]uint32{0x023bb827, 0x01ec41cc, 0x03d42af5, 0x029ad70e, 0x0378f835, 0x0339a1c0, 0x00a43f2f, 0x00b8ba22, 0x01666d2e, 0x000e94bf}}, Y: Field{[10]uint32{0x03af91c7, 0x0136a669, 0x034cc487, 0x035b4390, 0x020096c7, 0x023d3ca7, 0x015cea01, 0x01e9189d, 0x0177a7b3, 0x0004b944}}},
+ {X: Field{[10]uint32{0x00d28f53, 0x01deba89, 0x026cf708, 0x03f8259e, 0x034a71c0, 0x0262a31a, 0x03072d25, 0x006b4451, 0x0215c883, 0x002ddf55}}, Y: Field{[10]uint32{0x02bf3132, 0x02318d27, 0x011760d1, 0x030cdaa3, 0x01f5cff2, 0x03de4d81, 0x02df83d5, 0x0299977a, 0x03cfa068, 0x0009756d}}},
+ {X: Field{[10]uint32{0x008530dc, 0x0260da70, 0x0214d798, 0x013d3fde, 0x03f23d22, 0x0109aa89, 0x03847288, 0x00d6a14d, 0x003b61e4, 0x00391083}}, Y: Field{[10]uint32{0x00ca8572, 0x034b213b, 0x019a7f7c, 0x02a626c4, 0x029b3c67, 0x01622b65, 0x02bd74e1, 0x0212e66f, 0x00b48579, 0x00108ac1}}},
+ {X: Field{[10]uint32{0x030aaaea, 0x00204158, 0x007cecae, 0x011262b4, 0x01236e3c, 0x01853ec0, 0x020fadda, 0x00a678ee, 0x01bfc6ab, 0x002222ff}}, Y: Field{[10]uint32{0x0370eb3c, 0x03d1dccd, 0x03453f06, 0x032761c4, 0x037ada97, 0x006a3d02, 0x00fb94aa, 0x0396018a, 0x013d58cf, 0x0021b9c9}}},
+ {X: Field{[10]uint32{0x00ef419c, 0x01310d84, 0x02cce8ef, 0x00b52185, 0x000d850f, 0x004e6059, 0x03de398a, 0x022cc376, 0x018bf7d7, 0x003dd349}}, Y: Field{[10]uint32{0x03029204, 0x029ffc94, 0x02c9dfca, 0x02db5233, 0x0205d60e, 0x02ec4b4c, 0x0332213c, 0x02b7f250, 0x01af1e6d, 0x00344f52}}},
+ {X: Field{[10]uint32{0x00da6df0, 0x00504417, 0x00ae0679, 0x0352deb0, 0x0365cea0, 0x006e4895, 0x00097861, 0x00120e9c, 0x029098d6, 0x002a2ccf}}, Y: Field{[10]uint32{0x0121c553, 0x03ced44d, 0x01ddc650, 0x030194b2, 0x021182b6, 0x01bfd1d8, 0x032598e9, 0x0255ec45, 0x038cc08d, 0x00163308}}},
+ {X: Field{[10]uint32{0x023ef1ff, 0x0251c286, 0x03cb8969, 0x02d96b84, 0x027a4a6c, 0x01286857, 0x01dbbe3d, 0x03eb6639, 0x01547477, 0x0016be2c}}, Y: Field{[10]uint32{0x016f25bf, 0x012c68df, 0x03672cc8, 0x0056dbbd, 0x033c0a8c, 0x019ba05c, 0x008fac13, 0x0060c8db, 0x0201d0c6, 0x001497b4}}},
+ {X: Field{[10]uint32{0x03bec21c, 0x027ca780, 0x030bc811, 0x0196adff, 0x02fa71e6, 0x037e198a, 0x01143833, 0x01712887, 0x00546d4c, 0x00005571}}, Y: Field{[10]uint32{0x00411aae, 0x0259afd4, 0x036d0378, 0x020bb7bf, 0x03638422, 0x03f5c91f, 0x00eaefe8, 0x00461737, 0x03672f64, 0x00083a67}}},
+ {X: Field{[10]uint32{0x0025a56e, 0x0019831d, 0x01473101, 0x00319ce3, 0x00c8fd7f, 0x02998ddc, 0x0022aea5, 0x00b59b9f, 0x0186ee18, 0x0014e461}}, Y: Field{[10]uint32{0x0056152e, 0x01636746, 0x0052fabc, 0x01e9c848, 0x00cdbf72, 0x01c2e249, 0x02564a1e, 0x03b075f8, 0x00923052, 0x0031ffa8}}},
+ {X: Field{[10]uint32{0x03ad6414, 0x0262ee8e, 0x00d4f679, 0x03ca356b, 0x01cc52d7, 0x01dd03d3, 0x0004abba, 0x02dc59d2, 0x01d9a0fa, 0x003de593}}, Y: Field{[10]uint32{0x01f62c59, 0x02b20d22, 0x03ccb31c, 0x008bc6ef, 0x02d469a1, 0x03b04779, 0x03dc5c2a, 0x03d8339e, 0x0364aba0, 0x001aa627}}},
+ {X: Field{[10]uint32{0x01663183, 0x0167b6f3, 0x0258e720, 0x038ad6c5, 0x02ffd72e, 0x00c9f1bb, 0x000a909b, 0x03cb79e2, 0x008af514, 0x001d0723}}, Y: Field{[10]uint32{0x0087b2ae, 0x00915129, 0x01b49012, 0x00c7edbf, 0x02e40b6b, 0x022bf9cd, 0x013532d4, 0x00518371, 0x036de5de, 0x003cd749}}},
+ {X: Field{[10]uint32{0x0347945a, 0x03e20d62, 0x037e9b2e, 0x03c4c485, 0x02606e55, 0x01bbd3c8, 0x02ea9f12, 0x028a2bf1, 0x01bf6cc2, 0x0037a31a}}, Y: Field{[10]uint32{0x00a48a02, 0x017292d0, 0x0052c8b8, 0x0108ec72, 0x0270d847, 0x013fdc19, 0x00e2fecb, 0x035851e0, 0x00536900, 0x0023798a}}},
+ {X: Field{[10]uint32{0x0357c537, 0x0163a8db, 0x006afcd0, 0x03f66a11, 0x01d6a8d5, 0x00f7404d, 0x02523b2d, 0x02d07362, 0x0339619b, 0x0020785b}}, Y: Field{[10]uint32{0x03f4b31e, 0x0170996e, 0x0032f239, 0x0135f6eb, 0x00375c43, 0x01477bb1, 0x006de9b9, 0x03b32b45, 0x00737cd2, 0x0019e1bf}}},
+ {X: Field{[10]uint32{0x026f988d, 0x008eab9e, 0x01a20f01, 0x00122ac8, 0x02e70f7f, 0x01c96cc2, 0x01625b8a, 0x02c8ba31, 0x0189d079, 0x001167a5}}, Y: Field{[10]uint32{0x03f38e08, 0x01fa310c, 0x0112ee76, 0x0069155d, 0x00915de2, 0x030d41b3, 0x02d26acc, 0x028a4b12, 0x02935b71, 0x00295bb7}}},
+ {X: Field{[10]uint32{0x028ebddd, 0x013ce161, 0x03758228, 0x014746ae, 0x01f2e5bb, 0x01c2d3ab, 0x0018806a, 0x029ffc82, 0x03554fab, 0x002c1e75}}, Y: Field{[10]uint32{0x0274dffe, 0x016dc07f, 0x001dcfcf, 0x03115d18, 0x0120b6c0, 0x0390d3ea, 0x00f65773, 0x005d2c84, 0x002d552f, 0x00125777}}},
+ {X: Field{[10]uint32{0x034f288b, 0x02af4b19, 0x00100569, 0x005cfc17, 0x00bb30af, 0x0356c42d, 0x0180de1d, 0x03ec8505, 0x03bb5983, 0x001d4e46}}, Y: Field{[10]uint32{0x02958d67, 0x0292bdf7, 0x0080db58, 0x00d347c7, 0x02b319f5, 0x004d694a, 0x026032f2, 0x012ae7ad, 0x02bac915, 0x0015f1e9}}},
+ {X: Field{[10]uint32{0x01524db4, 0x02784d90, 0x03e7d5a8, 0x03dccbf2, 0x035bda94, 0x013f1a47, 0x0061069e, 0x023dd7f1, 0x0157f284, 0x001c50da}}, Y: Field{[10]uint32{0x033f0007, 0x014476f7, 0x0224fe92, 0x016973bc, 0x0195658a, 0x006e4f20, 0x022813c5, 0x02b75596, 0x0052ef4f, 0x0004a1fe}}},
+ {X: Field{[10]uint32{0x01543f9c, 0x03263c50, 0x037853b7, 0x01adc9e7, 0x0094ad07, 0x00965c3b, 0x00c74c9e, 0x03425c37, 0x0333fa75, 0x002e40e2}}, Y: Field{[10]uint32{0x03cf838e, 0x01c2ac36, 0x02660734, 0x03cf5bd9, 0x02af59ce, 0x038e7235, 0x03c1bf48, 0x017b40fe, 0x01696929, 0x0028a30c}}},
+ {X: Field{[10]uint32{0x01f86196, 0x022bc5e9, 0x034b083b, 0x02e759f0, 0x03f259bd, 0x01b6f832, 0x00664e63, 0x036403ef, 0x0028a9fb, 0x002cb18f}}, Y: Field{[10]uint32{0x0149ebdd, 0x0040fbb3, 0x012b0ee7, 0x008dbd70, 0x01b79207, 0x02544329, 0x03084218, 0x018f119c, 0x00fc069c, 0x002a3c14}}},
+ {X: Field{[10]uint32{0x0017f39c, 0x00b31e89, 0x0128a5c9, 0x011bce3a, 0x01d06bf3, 0x03edf1e1, 0x027edfad, 0x008657d2, 0x01bea32b, 0x003374a9}}, Y: Field{[10]uint32{0x03fa621b, 0x02b775ad, 0x01f04d2d, 0x01320e0a, 0x02213386, 0x00ace02b, 0x0203ee72, 0x0070d80c, 0x0278ac42, 0x0002ad9b}}},
+ {X: Field{[10]uint32{0x033db80f, 0x033e9867, 0x01c39780, 0x0031c93e, 0x01a27d74, 0x0220e3b1, 0x02f03a82, 0x029cdeb3, 0x0064b079, 0x00209742}}, Y: Field{[10]uint32{0x021071d3, 0x01c866d1, 0x02b43a87, 0x02b6f0b8, 0x01c2154f, 0x03817ae9, 0x027e427f, 0x011299fc, 0x00b7749e, 0x002fcfba}}},
+ {X: Field{[10]uint32{0x035e24c7, 0x02e243ef, 0x02218608, 0x01dfc2c3, 0x01d0c364, 0x027d338f, 0x02930a87, 0x03d00b25, 0x023cbf6b, 0x000dede7}}, Y: Field{[10]uint32{0x00f66f1d, 0x016b40c4, 0x02e29204, 0x02cbdec3, 0x00c32a5b, 0x0084f0bc, 0x010ff4c9, 0x018c2e82, 0x02c7cec5, 0x00365c50}}},
+ {X: Field{[10]uint32{0x012b6135, 0x008b0cd5, 0x039d8aed, 0x003beec1, 0x0389560b, 0x02d14baf, 0x01105bf5, 0x029d7502, 0x02d0678e, 0x003ee992}}, Y: Field{[10]uint32{0x011f938c, 0x00f02c83, 0x03e3bdf6, 0x0065f5b6, 0x035c628f, 0x02a01ab5, 0x01dd8441, 0x00dea2a1, 0x022de4e6, 0x0039994d}}},
+ {X: Field{[10]uint32{0x00d9cf72, 0x028fe5fb, 0x027a859e, 0x0034610c, 0x03d3bd49, 0x021311db, 0x004897de, 0x034dbe76, 0x038e077e, 0x001d9e1e}}, Y: Field{[10]uint32{0x0180a9b3, 0x0336508e, 0x00158210, 0x022ccf59, 0x00e3ba22, 0x0075e37f, 0x0126011d, 0x00e30f30, 0x03141a3f, 0x00033de7}}},
+ {X: Field{[10]uint32{0x00157b31, 0x00694340, 0x03e8a369, 0x02790be7, 0x01f16a12, 0x01986954, 0x026ba1c5, 0x028cd217, 0x01d0ffb3, 0x0009aeaf}}, Y: Field{[10]uint32{0x002c530d, 0x0101cb63, 0x008eee4c, 0x01c49fb7, 0x02e66a6c, 0x0080dc2c, 0x0266e33a, 0x00691bed, 0x02e2b1cf, 0x0006ce92}}},
+ {X: Field{[10]uint32{0x0376307a, 0x000c75a7, 0x02008c1b, 0x03c8d811, 0x007ca4d3, 0x01dca7ca, 0x02aa8640, 0x0287a5e9, 0x03b77a2f, 0x00056bb6}}, Y: Field{[10]uint32{0x03073649, 0x033f65bf, 0x00788a6d, 0x01e14d53, 0x03f94088, 0x03017cda, 0x01746439, 0x008d81a9, 0x0142bf8b, 0x000cd0a8}}},
+ {X: Field{[10]uint32{0x026fe467, 0x0003d5d1, 0x01fb3de1, 0x02837f79, 0x01c2b072, 0x01bbd330, 0x00d5767c, 0x03353f7d, 0x00a39bb7, 0x00263b38}}, Y: Field{[10]uint32{0x03227e28, 0x03d18faa, 0x02bba6f4, 0x00a5a829, 0x021e679d, 0x00e555b1, 0x0029d0f8, 0x024f9fae, 0x00a8218c, 0x00313a49}}},
+ {X: Field{[10]uint32{0x03f373a9, 0x026daa0f, 0x03304198, 0x028becc8, 0x018a48cd, 0x0019eedc, 0x01ffafab, 0x00fbb533, 0x0105fc21, 0x001f619d}}, Y: Field{[10]uint32{0x0097d47c, 0x027bdd5f, 0x00c1b919, 0x03e233a8, 0x0096e167, 0x01290053, 0x03c417ef, 0x0081e065, 0x03f03c21, 0x00177d47}}},
+ {X: Field{[10]uint32{0x01b3001f, 0x02dce8a5, 0x0117f410, 0x012275db, 0x02bf269a, 0x02c03578, 0x03ece8b7, 0x02387ef8, 0x01d74357, 0x003c93c6}}, Y: Field{[10]uint32{0x0223631f, 0x014d89c1, 0x0020d53e, 0x011d4520, 0x0116d2b5, 0x00d3d31e, 0x0048bbbb, 0x022d99ec, 0x03ff5544, 0x00191290}}},
+ {X: Field{[10]uint32{0x000efd59, 0x0374ef20, 0x0227b923, 0x007480e6, 0x021fd106, 0x0352fa88, 0x0111281e, 0x00a5b87a, 0x03045c22, 0x0024e14c}}, Y: Field{[10]uint32{0x03eb7040, 0x03f9a662, 0x011628c2, 0x0087a7eb, 0x022607da, 0x01332417, 0x0399bbfe, 0x00b4543d, 0x00f600cd, 0x0008a623}}},
+ {X: Field{[10]uint32{0x02319743, 0x014c7251, 0x01f0daf1, 0x03b2625f, 0x01b91ff4, 0x039349a1, 0x03b14ee8, 0x013c5894, 0x03053983, 0x003c2431}}, Y: Field{[10]uint32{0x000bd522, 0x0160d04a, 0x02d2abf1, 0x02326bce, 0x0228c59c, 0x014e80ad, 0x0208391f, 0x009c76a2, 0x00851d30, 0x003045c6}}},
+ {X: Field{[10]uint32{0x02a78c6e, 0x01b34fbf, 0x038e67fb, 0x0022a401, 0x000df9bb, 0x00aa3abf, 0x00234aeb, 0x03cedd28, 0x00ecab5b, 0x0003a3f2}}, Y: Field{[10]uint32{0x02ddabe5, 0x001eca09, 0x035c29b0, 0x002d2439, 0x01a8397c, 0x018b829d, 0x02fcd713, 0x026edd1b, 0x016534ce, 0x00002c20}}},
+ {X: Field{[10]uint32{0x03126785, 0x02835c67, 0x03aa09b0, 0x02eb200c, 0x03c7426d, 0x012bcdf8, 0x003cef69, 0x010f9cc0, 0x00d187cb, 0x00118963}}, Y: Field{[10]uint32{0x01ad4fc4, 0x02b48dd5, 0x006d4601, 0x02fdc20b, 0x0175576e, 0x030da608, 0x00dd82e2, 0x002089d9, 0x01a75f06, 0x00211850}}},
+ {X: Field{[10]uint32{0x00a3e430, 0x02fb9ab3, 0x037a1e65, 0x03cd17e6, 0x0394109b, 0x010cd042, 0x01d27c3f, 0x021fbd4a, 0x033bdb38, 0x0039fce2}}, Y: Field{[10]uint32{0x02cd589f, 0x02b0d24a, 0x00f8109f, 0x02deb6f2, 0x00ab1faf, 0x02c1fa2b, 0x02dec0c0, 0x031c0a42, 0x00f15eae, 0x003d4910}}},
+ {X: Field{[10]uint32{0x03537aec, 0x02c0e94b, 0x0062eda5, 0x019fdcff, 0x02fa9a01, 0x007d5a76, 0x03d5b750, 0x01e635d7, 0x00331472, 0x000b4a7a}}, Y: Field{[10]uint32{0x012d2be6, 0x025dba5e, 0x00001d18, 0x017d688c, 0x03d9e2f5, 0x00164d80, 0x03c58cfc, 0x02e7ea85, 0x011ab117, 0x0014b4f7}}},
+ {X: Field{[10]uint32{0x0091ffb6, 0x025f470e, 0x03c7c8ac, 0x0291be50, 0x00f47609, 0x01d54b76, 0x03b44c9c, 0x029edddf, 0x009cabf7, 0x0028ecbb}}, Y: Field{[10]uint32{0x00fc19de, 0x0272efcf, 0x03417d55, 0x01856c06, 0x024d5280, 0x00a96b59, 0x00933852, 0x00e07d4c, 0x0070f091, 0x001b38e3}}},
+ {X: Field{[10]uint32{0x0100f473, 0x03d974cc, 0x03015a21, 0x01896150, 0x026cefe7, 0x02cf46a3, 0x02504dda, 0x0295b039, 0x001e7582, 0x002bf2cf}}, Y: Field{[10]uint32{0x03171af8, 0x029db1a2, 0x004a38e5, 0x021d5ecb, 0x0367edbd, 0x03864c40, 0x02afc618, 0x02126629, 0x039dfbeb, 0x001aebc7}}},
+ {X: Field{[10]uint32{0x010e2ac8, 0x00d58976, 0x006eccdd, 0x0129242e, 0x026650f7, 0x0119aa30, 0x022bbea9, 0x02559efd, 0x0212dc89, 0x00222cbc}}, Y: Field{[10]uint32{0x018c30a5, 0x01629934, 0x0208e7e4, 0x010b6652, 0x026ecd6c, 0x0285c8f8, 0x036d4f5d, 0x0054ff5f, 0x017bdef6, 0x001cff5d}}},
+ {X: Field{[10]uint32{0x01adef3c, 0x02646f87, 0x000d493d, 0x01157125, 0x03395c59, 0x0369a8a9, 0x01c971d7, 0x00a45994, 0x029f4ca3, 0x0002ff7a}}, Y: Field{[10]uint32{0x01bc20d8, 0x02d93608, 0x00a17578, 0x01947db5, 0x004166bc, 0x02e01df3, 0x000adea5, 0x03da1108, 0x00447ef3, 0x00209d1c}}},
+ {X: Field{[10]uint32{0x00973ae5, 0x00d91fb9, 0x0265b521, 0x0298f593, 0x00e8fdf6, 0x01247b3c, 0x012e3869, 0x0175a729, 0x0381aa76, 0x00175172}}, Y: Field{[10]uint32{0x03d019db, 0x03e0ac4b, 0x022bdb17, 0x03f8f2be, 0x00fdab36, 0x0040e9f7, 0x03517e7c, 0x01b5dddc, 0x032b51a7, 0x00292928}}},
+ {X: Field{[10]uint32{0x02e7109d, 0x0019d4de, 0x033ae87d, 0x0249174b, 0x036d6fe0, 0x0310f976, 0x034fa531, 0x026652a8, 0x03cee14e, 0x003ce940}}, Y: Field{[10]uint32{0x03ec49e8, 0x0157957c, 0x01785ac5, 0x02e81cc9, 0x03568aa5, 0x006546d8, 0x0322daad, 0x0142d081, 0x00c0a24d, 0x000ac5c5}}},
+ {X: Field{[10]uint32{0x00cbeeb5, 0x01ab78e2, 0x012d9b66, 0x014cdf47, 0x02042619, 0x02e39ae2, 0x00c225ea, 0x00bb4915, 0x036d6f81, 0x002530e9}}, Y: Field{[10]uint32{0x03a953e3, 0x0358e87b, 0x0104cbc8, 0x03eb59b8, 0x023d1351, 0x02fc6062, 0x00893b95, 0x019d1b75, 0x02e6aa40, 0x002ee273}}},
+ {X: Field{[10]uint32{0x00f4c050, 0x0242323c, 0x02a3cc0c, 0x03446077, 0x01b9a2d3, 0x007f696f, 0x015a6625, 0x00900ce7, 0x02810523, 0x0008f6ff}}, Y: Field{[10]uint32{0x01eae6b2, 0x016e12d3, 0x036794e4, 0x0267502a, 0x00b5c168, 0x01e7b439, 0x00f8385c, 0x0043bd22, 0x0271229f, 0x0032bbce}}},
+ {X: Field{[10]uint32{0x00bbf1d2, 0x00a7b1ab, 0x03b88e46, 0x03286d2e, 0x01d2dcbe, 0x015e4d7d, 0x01dc69dc, 0x02186704, 0x03d120ef, 0x000e41f8}}, Y: Field{[10]uint32{0x0015e853, 0x02611185, 0x00055ba2, 0x02f16288, 0x00e6aad1, 0x0324da11, 0x017b0a60, 0x00ae7730, 0x02b7d74e, 0x0010e3e5}}},
+ {X: Field{[10]uint32{0x032b7d9c, 0x03c17859, 0x00b710e6, 0x012ccde2, 0x01651c94, 0x0101fd64, 0x02a6a373, 0x0013f602, 0x03193eeb, 0x00030502}}, Y: Field{[10]uint32{0x01e44072, 0x001dee4a, 0x02e641f7, 0x03bd0c34, 0x03899450, 0x001d8ed8, 0x01fef6b7, 0x01150e75, 0x011559e2, 0x002526ff}}},
+ {X: Field{[10]uint32{0x032ea56c, 0x02951f83, 0x028d1740, 0x02dac1b8, 0x002563c3, 0x00c3dd79, 0x012fe269, 0x00e72077, 0x005bc96a, 0x0025df3c}}, Y: Field{[10]uint32{0x02a10d52, 0x03039ae6, 0x02dc0e70, 0x01e0daa7, 0x0307e158, 0x01b291a2, 0x0295e234, 0x005930db, 0x023a8508, 0x0000e00b}}},
+ {X: Field{[10]uint32{0x00a034e3, 0x009ec836, 0x003761e8, 0x02ce7b8f, 0x02795a7b, 0x039395fd, 0x0151e5a9, 0x0383532b, 0x00d63995, 0x00041a70}}, Y: Field{[10]uint32{0x027fe33b, 0x03065316, 0x028041d2, 0x02b1e23f, 0x0047963a, 0x02aed792, 0x01d89c47, 0x01319560, 0x00879c0e, 0x00386a85}}},
+ {X: Field{[10]uint32{0x013e3682, 0x02096cf2, 0x0245bba3, 0x03d4d49e, 0x0142419a, 0x0138a9d5, 0x03ab10c7, 0x010607fc, 0x0280c341, 0x003fde31}}, Y: Field{[10]uint32{0x00d3615e, 0x0128dd89, 0x0256e1fc, 0x01d37cbc, 0x0186c8c5, 0x002cb6fb, 0x032382e2, 0x0243cdda, 0x02dbf053, 0x003badc2}}},
+ {X: Field{[10]uint32{0x02bcddc7, 0x01abf661, 0x03d05905, 0x01af570d, 0x002b0cb2, 0x020e29a8, 0x004c3ff5, 0x00f5aa70, 0x03033acd, 0x0017b27a}}, Y: Field{[10]uint32{0x032aff03, 0x0099d25c, 0x01c8b9ae, 0x02d230ea, 0x03e39d92, 0x03651170, 0x000bed1e, 0x0037c05f, 0x03f60eed, 0x0024a8a1}}},
+ {X: Field{[10]uint32{0x031b37d1, 0x0363b211, 0x03ee9339, 0x01369f71, 0x00bef0a5, 0x0236f1fa, 0x0267e14d, 0x034d2dfb, 0x02ba792d, 0x003aa881}}, Y: Field{[10]uint32{0x011ee92e, 0x0041f1a3, 0x025e2695, 0x008475e3, 0x0355e00d, 0x01030585, 0x02f2530c, 0x027281ff, 0x025ebe71, 0x00155df9}}},
+ {X: Field{[10]uint32{0x00eb3ed7, 0x014abf43, 0x03f54af9, 0x023b4f61, 0x02689ef0, 0x01573be8, 0x036789d4, 0x0004a8f5, 0x02f56034, 0x0009b418}}, Y: Field{[10]uint32{0x01323424, 0x02d60db4, 0x011094e7, 0x02896b3a, 0x01dbe6fa, 0x00347db7, 0x00340c5f, 0x0161de67, 0x01acef6f, 0x0017bfc7}}},
+ {X: Field{[10]uint32{0x02602d48, 0x03c89c47, 0x03bd1492, 0x03e70d06, 0x021a2413, 0x0047b6a3, 0x009e449d, 0x02d8a93d, 0x015ae50d, 0x00200350}}, Y: Field{[10]uint32{0x0002eb50, 0x0255fd5f, 0x036fbdc5, 0x0039d580, 0x03d5c8cb, 0x0344b67c, 0x019ec5cf, 0x026d748a, 0x016d05d1, 0x0015a72b}}},
+ {X: Field{[10]uint32{0x009a1c90, 0x00f189e7, 0x006bb985, 0x02f83e16, 0x02e1531f, 0x0068859d, 0x03aaca5f, 0x0370665c, 0x0352bc16, 0x001b0068}}, Y: Field{[10]uint32{0x00cc04e7, 0x01cec63e, 0x027654c0, 0x034b5935, 0x01a39a17, 0x0095204e, 0x027226ab, 0x01a83c9d, 0x0342c959, 0x0020cf75}}},
+ {X: Field{[10]uint32{0x03742c26, 0x01390c4d, 0x038e80a5, 0x02e3423b, 0x01f0b914, 0x01ce346b, 0x00e7c4d4, 0x03fc3141, 0x0122f1b3, 0x000eb332}}, Y: Field{[10]uint32{0x03cb0ad7, 0x0026b2c0, 0x00b1786a, 0x00620b84, 0x0152a2d1, 0x014aca5e, 0x00dee26c, 0x002cd0c1, 0x008327d6, 0x002aa735}}},
+ {X: Field{[10]uint32{0x00f8ec72, 0x01c3fc74, 0x03edf2ec, 0x0307b9ba, 0x02f8d978, 0x03e398d4, 0x0380f753, 0x01cfc828, 0x0072828b, 0x002837d7}}, Y: Field{[10]uint32{0x00ac6670, 0x01ea27e9, 0x0230680d, 0x02dbac3b, 0x02b1327d, 0x01e79c8c, 0x02226893, 0x02f44c79, 0x01bef1e0, 0x002c8c2b}}},
+ {X: Field{[10]uint32{0x03b52c73, 0x015ee5cc, 0x005a449d, 0x01c34ffe, 0x02d4bbc9, 0x01521971, 0x03a8dbbd, 0x03b26181, 0x01949776, 0x002757c3}}, Y: Field{[10]uint32{0x00afc1a8, 0x03a83c80, 0x02cf202c, 0x0055f446, 0x01ad7faf, 0x03d834d1, 0x038a056f, 0x00eb7552, 0x03baf489, 0x003fc23b}}},
+ {X: Field{[10]uint32{0x01d3d84e, 0x03c8421b, 0x00917fb7, 0x02d699ce, 0x00228f54, 0x022947b2, 0x025b2935, 0x0208bb7a, 0x012d9ea1, 0x0037bd76}}, Y: Field{[10]uint32{0x008b3129, 0x01667b80, 0x0307a479, 0x002b5f00, 0x039d5bc2, 0x000affcd, 0x00d3ad02, 0x03af0c4e, 0x000db94a, 0x0002db1d}}},
+ {X: Field{[10]uint32{0x00df33de, 0x010b9961, 0x03832736, 0x03c6e9ba, 0x03643fb0, 0x03d341d7, 0x007136c0, 0x035d38fe, 0x0105cdc8, 0x003ea42c}}, Y: Field{[10]uint32{0x00bba36d, 0x01e77a94, 0x00c273c0, 0x02494989, 0x003a180d, 0x003c3891, 0x029e852f, 0x023ae927, 0x00c373f5, 0x000f9aca}}},
+ {X: Field{[10]uint32{0x03d0eb52, 0x02e33468, 0x02349575, 0x02ca5c1a, 0x01ce077c, 0x0353677e, 0x01c84613, 0x01ee4300, 0x0021ff2f, 0x002084ba}}, Y: Field{[10]uint32{0x003185f0, 0x0390ffdc, 0x02b5b8f8, 0x03b4b22b, 0x01d24bb5, 0x00d5018e, 0x0256e8f3, 0x039d5bf6, 0x01db2fa3, 0x00356701}}},
+ {X: Field{[10]uint32{0x0061220d, 0x0362c83b, 0x00e49f9c, 0x02dcabed, 0x0124f155, 0x00074579, 0x01a641e1, 0x01c75d2c, 0x00c81d1f, 0x003b8d03}}, Y: Field{[10]uint32{0x02286f37, 0x020ce0ab, 0x01438f00, 0x007bd604, 0x0086f814, 0x02a3a2c1, 0x02fa7964, 0x017f5fc7, 0x033f2535, 0x00245760}}},
+ {X: Field{[10]uint32{0x002afee1, 0x009bd951, 0x026b50aa, 0x0025fe0d, 0x02302b50, 0x02dc88f8, 0x00b257fb, 0x00f60dd0, 0x0125dd2e, 0x000b14d5}}, Y: Field{[10]uint32{0x021cf765, 0x01c9c4ed, 0x03947672, 0x01e5fdcf, 0x0292d43a, 0x03ced500, 0x038f9662, 0x02d9a13c, 0x014ef945, 0x00073514}}},
+ {X: Field{[10]uint32{0x0267d94d, 0x026b517e, 0x00f2baae, 0x0075ba05, 0x03404b9e, 0x00a97e5d, 0x00a9083a, 0x028a233d, 0x03cf8b57, 0x0037ddd8}}, Y: Field{[10]uint32{0x01580ce2, 0x030ceb2c, 0x0309cb4f, 0x01706a49, 0x01bf0529, 0x00e23ba7, 0x02276bdd, 0x02d23184, 0x033631fd, 0x0013df70}}},
+ {X: Field{[10]uint32{0x00dcee60, 0x0049a83b, 0x00da18fd, 0x023d3579, 0x038ff99b, 0x0335b418, 0x0374b928, 0x03c86044, 0x0240d6d0, 0x000d4530}}, Y: Field{[10]uint32{0x0197fca2, 0x00297190, 0x035cee53, 0x02c9c825, 0x02ac17ab, 0x01ddfb46, 0x018421c7, 0x02be00f2, 0x034a1a1b, 0x000a8347}}},
+ {X: Field{[10]uint32{0x02e40a27, 0x012f4f1a, 0x0360a0b5, 0x016364d7, 0x00237a1b, 0x02d50755, 0x01de551a, 0x032e0653, 0x01d9e58b, 0x0000f79d}}, Y: Field{[10]uint32{0x01d97c75, 0x02cae349, 0x03ddc455, 0x036bf756, 0x033ec422, 0x01bc940d, 0x03ad8c48, 0x02c1631a, 0x00dbbe2d, 0x0026b685}}},
+ {X: Field{[10]uint32{0x01e0420f, 0x0228229b, 0x005ddae2, 0x014bd40b, 0x0290ad3d, 0x0357ac70, 0x00144f81, 0x00d56f17, 0x020b1804, 0x0029ca33}}, Y: Field{[10]uint32{0x03ddad3d, 0x00f40051, 0x004f7ac9, 0x02e7b0cd, 0x0142cce3, 0x0215247f, 0x034893fa, 0x0146833e, 0x00a8f72b, 0x0010e1f3}}},
+ {X: Field{[10]uint32{0x0151c39b, 0x00761d15, 0x0032e16c, 0x02aeaa50, 0x011d8234, 0x0140ea05, 0x03b22e02, 0x01130251, 0x028a05b8, 0x003b0f26}}, Y: Field{[10]uint32{0x02bd7fa6, 0x01790423, 0x03043382, 0x033ba0da, 0x00c8ac51, 0x013b7eba, 0x00845ca4, 0x03ea4d98, 0x00ef45f0, 0x001ec22f}}},
+ {X: Field{[10]uint32{0x024761db, 0x023b1568, 0x02e9326a, 0x0333a61c, 0x03e619e7, 0x005d4cb3, 0x02b7e6c6, 0x016b2cee, 0x01562494, 0x002c05cf}}, Y: Field{[10]uint32{0x01f1b381, 0x0246b8c1, 0x0310d445, 0x03cc4c83, 0x0172a81d, 0x026372c4, 0x03eff121, 0x001d8743, 0x035f3e9a, 0x001e349e}}},
+ {X: Field{[10]uint32{0x00cd73f6, 0x03658010, 0x023a7970, 0x0047e565, 0x034e04bd, 0x034e92e3, 0x03c3890e, 0x03722e5d, 0x03f3cd43, 0x00367ace}}, Y: Field{[10]uint32{0x03b23044, 0x016cbf58, 0x01c41e7f, 0x039326da, 0x000510b9, 0x02314012, 0x01db7189, 0x020228fc, 0x035cc42e, 0x0026065a}}},
+ {X: Field{[10]uint32{0x01a84e74, 0x01530219, 0x03f107ca, 0x02c07009, 0x0029bbf1, 0x007e4ace, 0x02026062, 0x008c2b1d, 0x01af8a40, 0x003ef694}}, Y: Field{[10]uint32{0x00d6ccf5, 0x00944eff, 0x03c71e81, 0x02e8eef9, 0x038fd427, 0x024043f2, 0x00729e4e, 0x00ef5532, 0x0194aa45, 0x001920ce}}},
+ {X: Field{[10]uint32{0x02583f9d, 0x03e1cbee, 0x02cf808a, 0x0317c14c, 0x03472b14, 0x00498beb, 0x01646616, 0x0065983d, 0x01a751be, 0x0002b92e}}, Y: Field{[10]uint32{0x0295ee5e, 0x019cb925, 0x02281f4b, 0x01e3693e, 0x03e2bd40, 0x02b4ead7, 0x00c6eed9, 0x01f969bc, 0x008baa9d, 0x0022cb09}}},
+ {X: Field{[10]uint32{0x00cf6ff5, 0x02db8313, 0x036dda40, 0x0380c7b7, 0x00f29764, 0x0118a117, 0x028c6a2e, 0x02009859, 0x01520608, 0x00160100}}, Y: Field{[10]uint32{0x03329485, 0x0069c076, 0x030cd5fb, 0x023ffb41, 0x00a2e5f8, 0x00e65db6, 0x032f9a4e, 0x03013681, 0x02e64a83, 0x0034be5a}}},
+ {X: Field{[10]uint32{0x007e029e, 0x029cc993, 0x0203b57c, 0x0098711a, 0x03cf477e, 0x02bf3d1f, 0x01abbd9f, 0x003e058e, 0x02865738, 0x00130a35}}, Y: Field{[10]uint32{0x00ed8a70, 0x02c09383, 0x0202259f, 0x01045436, 0x023122a9, 0x02b3eb05, 0x02a67e80, 0x01785015, 0x029c4fa7, 0x001a52e2}}},
+ {X: Field{[10]uint32{0x0325c9a4, 0x016a4b3f, 0x026b9046, 0x01ddc5e6, 0x016984fc, 0x03601be0, 0x03b51a73, 0x01561fc8, 0x02b39e00, 0x00378816}}, Y: Field{[10]uint32{0x01273d83, 0x0170c9f1, 0x011355af, 0x010a6bb2, 0x0048f68e, 0x03ab304b, 0x002cf1f0, 0x03070b6d, 0x025e12ef, 0x003b610c}}},
+ {X: Field{[10]uint32{0x014273f4, 0x031ada56, 0x025f1b3e, 0x0225b48a, 0x01b968f5, 0x0087995c, 0x0258dd57, 0x02c29d2d, 0x00680c2c, 0x0017aa0a}}, Y: Field{[10]uint32{0x004a9499, 0x008df48e, 0x038ad6e2, 0x00e40794, 0x00e18285, 0x00dbdb16, 0x02decce6, 0x0193e04e, 0x02b08db2, 0x00223443}}},
+ {X: Field{[10]uint32{0x024998ba, 0x00b40d8c, 0x03c9c37f, 0x011b5ee6, 0x03c3b0dd, 0x038f6d39, 0x00bd98a3, 0x01d05908, 0x03c86449, 0x0006273d}}, Y: Field{[10]uint32{0x02daa083, 0x00960087, 0x03da204d, 0x0235c8fd, 0x01742211, 0x01f7581b, 0x0201b1cf, 0x03fca0d9, 0x01ced46d, 0x002ecd02}}},
+ {X: Field{[10]uint32{0x0082789f, 0x014dbe6f, 0x0214d3cf, 0x035e3b97, 0x013c3c41, 0x02040091, 0x00680265, 0x00350c22, 0x018738f5, 0x001c285c}}, Y: Field{[10]uint32{0x0027c1d6, 0x0118b5ef, 0x022962b9, 0x0116a7cd, 0x02101dc4, 0x023c2747, 0x03338701, 0x014df907, 0x0120e112, 0x00057254}}},
+ {X: Field{[10]uint32{0x03b3a368, 0x011ae6c3, 0x03865cff, 0x02a91a0c, 0x018e4271, 0x00c04421, 0x0020eedf, 0x036db823, 0x00ff622a, 0x0015e2b0}}, Y: Field{[10]uint32{0x03d7f851, 0x007296ee, 0x0215f1f0, 0x03d4759f, 0x026b0cea, 0x03542062, 0x01b2f7d9, 0x005cb4ae, 0x01ddf5f3, 0x003dc468}}},
+ {X: Field{[10]uint32{0x01840071, 0x02c178a3, 0x01aea3e3, 0x01dfe9b3, 0x035887f1, 0x0373a296, 0x00738bad, 0x029d1f59, 0x0003476a, 0x003727ef}}, Y: Field{[10]uint32{0x01eee1b4, 0x03c293a2, 0x03ab9515, 0x01d33d39, 0x008bd267, 0x00a53954, 0x0194a19d, 0x037497e3, 0x012c8087, 0x00303d9d}}},
+ {X: Field{[10]uint32{0x03b0294d, 0x02548551, 0x0178fe02, 0x0371165b, 0x014bb817, 0x00f5cc54, 0x004dec0b, 0x03357cba, 0x00ffa348, 0x0025d26b}}, Y: Field{[10]uint32{0x0381a1c6, 0x03a13815, 0x0116723d, 0x03265140, 0x03d89856, 0x0039f480, 0x02ec20be, 0x0120436b, 0x01ea35e5, 0x0037d99f}}},
+ {X: Field{[10]uint32{0x02657d85, 0x034d0f8c, 0x032e8e92, 0x02635ac4, 0x00ae8e7a, 0x02a0551e, 0x0359f21f, 0x01cc370c, 0x01cf2fd2, 0x0038e7ef}}, Y: Field{[10]uint32{0x01b5e01c, 0x001ac2f9, 0x0028320a, 0x01e230c7, 0x02624415, 0x01922168, 0x026ae3e3, 0x021659da, 0x008170a7, 0x002ebfa6}}},
+ {X: Field{[10]uint32{0x01402c09, 0x02ae2fe4, 0x02b89e0f, 0x00a83a8c, 0x02e04b69, 0x03244d45, 0x000bda4d, 0x00dc4830, 0x014e27f1, 0x00180240}}, Y: Field{[10]uint32{0x02359f6b, 0x01826750, 0x032e5708, 0x02a1b3b0, 0x01eb4006, 0x0376e998, 0x0396f588, 0x00734b2d, 0x0094f6bd, 0x000d2442}}},
+ {X: Field{[10]uint32{0x03f2f773, 0x025223a1, 0x02162d41, 0x00b50d88, 0x03b644c9, 0x01dacfbb, 0x039bec4f, 0x011b60be, 0x0247d02e, 0x002fc13c}}, Y: Field{[10]uint32{0x002172f6, 0x0073af1f, 0x0284d32b, 0x016f07b5, 0x00302e12, 0x019d38d5, 0x019ab004, 0x00b9303c, 0x00e8bb3c, 0x003591bd}}},
+ {X: Field{[10]uint32{0x01e5e3c3, 0x0137ea8c, 0x01acff5b, 0x02af0c3a, 0x013e5468, 0x00571b66, 0x0071efd9, 0x02cd4e16, 0x03ecb122, 0x0025827d}}, Y: Field{[10]uint32{0x008f9a27, 0x02d43766, 0x015925d6, 0x03e7bae5, 0x01ebb4d9, 0x0138ab62, 0x0178ac77, 0x03c2e1c5, 0x012eb933, 0x00041af1}}},
+ {X: Field{[10]uint32{0x03ab9abe, 0x00ab5882, 0x033668da, 0x007537b1, 0x03f5ae58, 0x032f7d5b, 0x03440fb5, 0x02f89681, 0x003a0e1e, 0x002da433}}, Y: Field{[10]uint32{0x0049dbd1, 0x019aa5f8, 0x0135fb96, 0x03d89269, 0x0335e5f9, 0x02db0595, 0x01a96032, 0x00f76cb3, 0x0023fd3a, 0x0020f340}}},
+ {X: Field{[10]uint32{0x01d326d4, 0x00025de4, 0x0338d6cd, 0x0120e56f, 0x002c9479, 0x02a42636, 0x022bc114, 0x01dd106a, 0x008ced50, 0x001cb694}}, Y: Field{[10]uint32{0x03668457, 0x03ed19cf, 0x03e095ea, 0x036ee045, 0x02e5d743, 0x03fb248b, 0x01780364, 0x03a8ac3a, 0x02933433, 0x000596ea}}},
+ {X: Field{[10]uint32{0x01851c37, 0x00726dea, 0x0101729b, 0x006e6174, 0x01113320, 0x004969cb, 0x014322f5, 0x00c024a5, 0x016e540a, 0x00383f44}}, Y: Field{[10]uint32{0x01b88a92, 0x024117b9, 0x017ac850, 0x01addde6, 0x01a516a0, 0x00c34c55, 0x01e899d6, 0x01c1f952, 0x027648aa, 0x0031af1c}}},
+ {X: Field{[10]uint32{0x00c10af1, 0x00ada0a5, 0x01c13abe, 0x007341a5, 0x030297f0, 0x0220fe76, 0x00d6389e, 0x03904bb8, 0x03ea85d4, 0x002752e2}}, Y: Field{[10]uint32{0x03556181, 0x014962a5, 0x038d38a9, 0x02ef9a28, 0x035bb66e, 0x02a2125c, 0x02e62fd6, 0x0020cb66, 0x00d73f7c, 0x001788a0}}},
+ {X: Field{[10]uint32{0x008e08ff, 0x01e8b50e, 0x02d25505, 0x01547085, 0x01069f12, 0x0357acc7, 0x0056123c, 0x01b81377, 0x0395aa4b, 0x003bbe10}}, Y: Field{[10]uint32{0x022d2376, 0x035ad875, 0x039280b1, 0x01b56658, 0x0087797e, 0x00c5e712, 0x018b26c7, 0x010d9103, 0x02a434e1, 0x00114262}}},
+ {X: Field{[10]uint32{0x010d7654, 0x02845972, 0x00de739a, 0x02bdb983, 0x03b4652d, 0x01dbbd09, 0x034371e0, 0x02392184, 0x007d56e3, 0x0019bf97}}, Y: Field{[10]uint32{0x011a2fba, 0x022a1370, 0x02582a10, 0x021259b2, 0x0196d4c3, 0x032edb13, 0x000ad433, 0x0324edf9, 0x026bb6ed, 0x000b5ca4}}},
+ {X: Field{[10]uint32{0x008ea2ed, 0x031b7cb0, 0x027afdc2, 0x030a4e7c, 0x0082f9e1, 0x02a60f26, 0x015a304a, 0x032bb331, 0x01cc1818, 0x00144d7e}}, Y: Field{[10]uint32{0x003f22d6, 0x028d8878, 0x0295427c, 0x03851e61, 0x002619b5, 0x0056b86d, 0x00baf4e1, 0x005d413e, 0x01d27dfe, 0x0016949b}}},
+ {X: Field{[10]uint32{0x026487ca, 0x03e6d88f, 0x0229c3fd, 0x022b386b, 0x0182e331, 0x008a8f8a, 0x03fa2bcc, 0x012a700b, 0x0089af7f, 0x00068df0}}, Y: Field{[10]uint32{0x012464a5, 0x0157fc0f, 0x02c183c9, 0x0048d74b, 0x03509b03, 0x01cd9cb3, 0x02b33d23, 0x008c2ea5, 0x00338522, 0x0034e270}}},
+ {X: Field{[10]uint32{0x03a248a0, 0x00461211, 0x01576e4a, 0x00888bec, 0x01ed1edb, 0x02405be5, 0x03c68dfc, 0x02bd0244, 0x01ff15da, 0x00127de9}}, Y: Field{[10]uint32{0x01abd8fd, 0x0231e9ee, 0x03f611a1, 0x02086975, 0x00d5ebec, 0x029aefbd, 0x0394246f, 0x01ef27a5, 0x03013d63, 0x003e6d56}}},
+ {X: Field{[10]uint32{0x02641ed7, 0x02abe207, 0x03130253, 0x00d6b0eb, 0x003b87f8, 0x01bac11c, 0x03f0f1e2, 0x03e0e481, 0x005e5d9e, 0x002091e1}}, Y: Field{[10]uint32{0x013c5f1e, 0x01102a79, 0x011de3e2, 0x023c8fce, 0x03b4409c, 0x032d0ab5, 0x01b19474, 0x026139fc, 0x010c1a23, 0x0015df5e}}},
+ {X: Field{[10]uint32{0x010e0749, 0x006164f6, 0x024fb8f1, 0x00f897ba, 0x0257b782, 0x00214fa3, 0x0292ef61, 0x000906b3, 0x004ecd16, 0x0020a566}}, Y: Field{[10]uint32{0x00ac8353, 0x0236f230, 0x003c14c3, 0x0259e032, 0x022c5dac, 0x01ec70e2, 0x02450e76, 0x0357dce6, 0x01a66798, 0x0018d4c8}}},
+ {X: Field{[10]uint32{0x01d75461, 0x03a7200f, 0x015377b2, 0x004ac4d0, 0x01fb5db4, 0x01c31a2d, 0x00ba34e7, 0x03d7fef8, 0x03f6d8fc, 0x003530ca}}, Y: Field{[10]uint32{0x0085f93d, 0x014fd991, 0x03353741, 0x01459b44, 0x01a1a71e, 0x03b69c2e, 0x004272b4, 0x0116ccb1, 0x0202e238, 0x002cf1cd}}},
+ {X: Field{[10]uint32{0x00c897ff, 0x00fdda5b, 0x00d849fd, 0x0329a20b, 0x023babe7, 0x02d49a8c, 0x00703af6, 0x01a39a91, 0x032d04a9, 0x00068238}}, Y: Field{[10]uint32{0x03ad4141, 0x02caa3ab, 0x00b399a6, 0x0025c0d1, 0x013fdc82, 0x00ac52a3, 0x002e19be, 0x03b52897, 0x00bdb77b, 0x0011bb66}}},
+ {X: Field{[10]uint32{0x014f4af7, 0x03f70d0d, 0x01e82e7c, 0x03bb3927, 0x036b40e1, 0x02a325dd, 0x0305965d, 0x00fc1012, 0x020e9672, 0x0021566f}}, Y: Field{[10]uint32{0x01333ef6, 0x000f7524, 0x02dc05af, 0x037aae90, 0x02ba4db6, 0x0374241a, 0x03f049b2, 0x008344b0, 0x0388854e, 0x0018f892}}},
+ {X: Field{[10]uint32{0x01e211e8, 0x022f7181, 0x008c55e2, 0x0237a333, 0x02edd0f0, 0x03cbbca9, 0x01c0ee30, 0x011e2a12, 0x0223fc7a, 0x0038382c}}, Y: Field{[10]uint32{0x03ca60fc, 0x03580de7, 0x00d1a511, 0x017b44a2, 0x0206609a, 0x016e211e, 0x02d38e12, 0x03eb0481, 0x032c3aaf, 0x00328e20}}},
+ {X: Field{[10]uint32{0x00e40a19, 0x014e739a, 0x034e2034, 0x009159e6, 0x00265c34, 0x0245d60b, 0x0001eaa5, 0x034941d6, 0x02982d8e, 0x00288def}}, Y: Field{[10]uint32{0x02231318, 0x0260a956, 0x0087cf48, 0x00ca400f, 0x00dc1bfc, 0x0009b59a, 0x00d5de47, 0x00de0115, 0x0227976a, 0x0003d334}}},
+ {X: Field{[10]uint32{0x0205ccf2, 0x03e6d804, 0x03ef2474, 0x035ad0d9, 0x005edbd0, 0x0285bcaf, 0x03fe7705, 0x02341fc0, 0x00821eb0, 0x000a2a12}}, Y: Field{[10]uint32{0x0056a17c, 0x02d7f0fe, 0x02301eec, 0x02f7c03e, 0x01162551, 0x00748f6a, 0x00526b17, 0x01d8a2e8, 0x03e9e7d7, 0x002419f4}}},
+ {X: Field{[10]uint32{0x00c1d5e8, 0x01a6b726, 0x01d16f4c, 0x03b84f56, 0x03cc83e2, 0x02083796, 0x01b8fdc3, 0x01ad74c9, 0x00d542bd, 0x00050bfa}}, Y: Field{[10]uint32{0x0075b150, 0x00c42877, 0x004539c8, 0x00186fe7, 0x001b66d1, 0x0235fe98, 0x01d14213, 0x00cee556, 0x02780325, 0x000a5cfc}}},
+ {X: Field{[10]uint32{0x00ad87d2, 0x01ec04a6, 0x036b99c9, 0x03edc03e, 0x008f3d5f, 0x006d2e4a, 0x01bb00a1, 0x01927406, 0x011c5d20, 0x0016ced8}}, Y: Field{[10]uint32{0x02519182, 0x032d62bc, 0x0058f8eb, 0x021d688b, 0x00192ead, 0x03b5c2ed, 0x03a76219, 0x00384b37, 0x01c80cde, 0x00212416}}},
+ {X: Field{[10]uint32{0x00beb8af, 0x00b1f394, 0x00f6b019, 0x018e5153, 0x012edbdc, 0x03cd7dbd, 0x01f74c35, 0x00168fd8, 0x02495d49, 0x00092288}}, Y: Field{[10]uint32{0x03fd4c83, 0x00dab1ee, 0x035c3b11, 0x00fa6e26, 0x0161eaf7, 0x02219e87, 0x0197b243, 0x03042073, 0x03ffb707, 0x002d69bc}}},
+ {X: Field{[10]uint32{0x03ff075c, 0x00e134f6, 0x025d2875, 0x024c0b4e, 0x0231ea20, 0x008a408f, 0x011fa99a, 0x0143a753, 0x022a292b, 0x002291d2}}, Y: Field{[10]uint32{0x03804dd9, 0x035ad97b, 0x01dc8721, 0x01174c35, 0x0245b5f0, 0x01b3e3f4, 0x00392891, 0x0106c797, 0x005c7d53, 0x001dd14a}}},
+ {X: Field{[10]uint32{0x0015ffec, 0x023444d4, 0x03b228ca, 0x03492356, 0x03826d10, 0x0198dcc4, 0x00be4ea8, 0x010ba99f, 0x02557fc0, 0x000fe804}}, Y: Field{[10]uint32{0x02a937b3, 0x01d7c9c9, 0x00b25e3f, 0x01b28c8a, 0x00162d43, 0x02312386, 0x03dca5a5, 0x012e3bb2, 0x0325f59b, 0x00042e74}}},
+ {X: Field{[10]uint32{0x03d65648, 0x03086567, 0x028c046a, 0x017f22a0, 0x036b778d, 0x02bc126c, 0x008f0071, 0x03c69376, 0x000e7b94, 0x002dded7}}, Y: Field{[10]uint32{0x02aeccc5, 0x032c55fe, 0x0021ad54, 0x00ba77db, 0x01e2b65d, 0x01bb7582, 0x01d57222, 0x02efaa32, 0x03c06722, 0x000c491a}}},
+ {X: Field{[10]uint32{0x0135b44a, 0x03107fe1, 0x018e08f2, 0x01bb5747, 0x00567184, 0x026f52ed, 0x02ccad78, 0x00ae5db0, 0x008267e8, 0x00098d7d}}, Y: Field{[10]uint32{0x032b8def, 0x01b569e9, 0x0234dafb, 0x02702d4c, 0x010d2ce3, 0x01edcd4f, 0x03f9e4d4, 0x0247ed99, 0x004e9560, 0x001fb720}}},
+ {X: Field{[10]uint32{0x021b474d, 0x0382198d, 0x032384a4, 0x0368635d, 0x03ed0012, 0x0347a8da, 0x036f39b6, 0x014b271a, 0x012dae09, 0x0008c1ad}}, Y: Field{[10]uint32{0x025486c0, 0x02d5b3cc, 0x01221582, 0x01caf348, 0x00bd7674, 0x00b3bf3d, 0x023688bb, 0x023dae69, 0x00b88d7b, 0x0010e094}}},
+ {X: Field{[10]uint32{0x01f74b4c, 0x03625eea, 0x0016e248, 0x03baa300, 0x03aa5604, 0x03568747, 0x0186f9ee, 0x020a123d, 0x02b80dde, 0x0032aa19}}, Y: Field{[10]uint32{0x0009c341, 0x012957f7, 0x038f2995, 0x029f563e, 0x00e33746, 0x02016909, 0x02834ceb, 0x01e3115c, 0x0140349f, 0x000a063c}}},
+ {X: Field{[10]uint32{0x00bb1641, 0x031c3fa2, 0x037cbb74, 0x01eec949, 0x03fb5e57, 0x027007b4, 0x01e9cc42, 0x00f5417d, 0x035aa079, 0x0020637b}}, Y: Field{[10]uint32{0x024f276d, 0x02cfb8bb, 0x0045fbdd, 0x02d24e85, 0x01f48ea2, 0x0258d9f4, 0x022d54d7, 0x0040c603, 0x0280f762, 0x0036a7bb}}},
+ {X: Field{[10]uint32{0x007bf736, 0x00b7e491, 0x01bf08b1, 0x030d68a5, 0x03c36e11, 0x02f2b16e, 0x0364ed01, 0x0104bf35, 0x01fa568d, 0x000b18b3}}, Y: Field{[10]uint32{0x02c31979, 0x0301468f, 0x025a8f82, 0x02fc654c, 0x00ee73ea, 0x02ae9906, 0x01ef9859, 0x01c189c1, 0x00255811, 0x003a2e38}}},
+ {X: Field{[10]uint32{0x01f04adb, 0x033a01f8, 0x0341659b, 0x006adbac, 0x014e477f, 0x0145f412, 0x022f7cd0, 0x01ba3352, 0x00d99db0, 0x000a2ad5}}, Y: Field{[10]uint32{0x0094541c, 0x028a799d, 0x03b0872a, 0x00107b2f, 0x004fb003, 0x03cf9f61, 0x0256276b, 0x02580af9, 0x0319a5cb, 0x00264ed4}}},
+ {X: Field{[10]uint32{0x012b6061, 0x01205314, 0x03bb63ea, 0x03d7c57a, 0x01d6c2ab, 0x008ea090, 0x034eca42, 0x02903152, 0x00162254, 0x00124f9f}}, Y: Field{[10]uint32{0x00eed628, 0x03e02e8f, 0x02c897de, 0x01efc25f, 0x025fcf81, 0x02ba3c87, 0x0236b597, 0x027533fb, 0x037b588d, 0x00158e1f}}},
+ {X: Field{[10]uint32{0x01c51d4f, 0x034818ae, 0x01bce902, 0x023888b2, 0x018922a6, 0x00b174e2, 0x02118dda, 0x0245953f, 0x01bee743, 0x0019cb84}}, Y: Field{[10]uint32{0x03dc36e1, 0x000b70c8, 0x03c5fc51, 0x03eaff39, 0x030db6bb, 0x017a758a, 0x03cfbca4, 0x00aa76d2, 0x034a0238, 0x000d5544}}},
+ {X: Field{[10]uint32{0x02da550a, 0x022cb0e3, 0x02701003, 0x00b0a567, 0x0027524b, 0x0167e397, 0x0286c06b, 0x01a22637, 0x036ee3b8, 0x0023e343}}, Y: Field{[10]uint32{0x01212f34, 0x005c40d2, 0x01fd45d4, 0x01b09afc, 0x03f36429, 0x021ef2ce, 0x000fed66, 0x02af1665, 0x02819e27, 0x0039f7bc}}},
+ {X: Field{[10]uint32{0x00b293e3, 0x004fed5e, 0x01495e82, 0x00084817, 0x03118f28, 0x005e7cc2, 0x03cf4c79, 0x03c295e5, 0x03834a11, 0x0036a315}}, Y: Field{[10]uint32{0x01c35f91, 0x00077ce2, 0x00d28a2c, 0x0386d8ce, 0x007c7a0c, 0x02d77146, 0x02bb1c3a, 0x00e5d421, 0x035c6f66, 0x001bb3f8}}},
+ {X: Field{[10]uint32{0x01681955, 0x01fea852, 0x00ef4265, 0x02ce0f88, 0x00fbce09, 0x02a66e83, 0x03ec2d6f, 0x0197fcfb, 0x00f53b19, 0x001254f8}}, Y: Field{[10]uint32{0x035541c6, 0x026d5065, 0x00a39fc0, 0x025c6343, 0x023c28fa, 0x01e601d9, 0x00683240, 0x00d6c8f9, 0x038d9d16, 0x00308431}}},
+ {X: Field{[10]uint32{0x0375f293, 0x0108108d, 0x038db6c7, 0x03205b68, 0x025cd3e0, 0x03a442f5, 0x021f7fdb, 0x038786f8, 0x01af48a0, 0x0015247f}}, Y: Field{[10]uint32{0x007ffae7, 0x013b34bf, 0x0243e3d3, 0x02580c61, 0x039c82de, 0x02d47d3c, 0x03e9b299, 0x014ce28e, 0x02885d1c, 0x001949cd}}},
+ {X: Field{[10]uint32{0x03c168d1, 0x03b26d6a, 0x007f0af3, 0x00a50f24, 0x020b0a85, 0x03c5f46d, 0x01838858, 0x018ee7ed, 0x03a80423, 0x002e712b}}, Y: Field{[10]uint32{0x03550d9a, 0x03f85592, 0x0178e514, 0x006c1b50, 0x01e24d51, 0x0329f635, 0x0013aa1e, 0x03afb574, 0x006b1b75, 0x003af4c4}}},
+ {X: Field{[10]uint32{0x02d2bd62, 0x00dda0e4, 0x02386242, 0x01cceaf2, 0x01d6802e, 0x02ae0275, 0x039826de, 0x011e86d7, 0x036c4448, 0x00246368}}, Y: Field{[10]uint32{0x0253e218, 0x03c77722, 0x02eca0ab, 0x01b9859b, 0x02889d5e, 0x02ce2627, 0x0214113a, 0x021f9857, 0x03afd7cc, 0x001b988d}}},
+ {X: Field{[10]uint32{0x01d3392a, 0x010b8dc0, 0x02c93a2e, 0x00bd15ca, 0x00748eb4, 0x026dd0f3, 0x000240e5, 0x01452820, 0x0194da1f, 0x001ddf4a}}, Y: Field{[10]uint32{0x029680c6, 0x0374e8e2, 0x038645e6, 0x016a7487, 0x039d9250, 0x01387493, 0x02b96f41, 0x00c654b2, 0x03d7e9eb, 0x00001864}}},
+ {X: Field{[10]uint32{0x0323bf3d, 0x01fc8c95, 0x0154c4d1, 0x0140d3be, 0x013988c6, 0x03c93bd5, 0x03b8b3ea, 0x03171789, 0x02a09a08, 0x0004239b}}, Y: Field{[10]uint32{0x0013b2eb, 0x03786fff, 0x01be288f, 0x01dba093, 0x02b8a0dd, 0x020464de, 0x0314ebff, 0x01aed1f0, 0x034b86db, 0x0006a2e5}}},
+ {X: Field{[10]uint32{0x016bf185, 0x02b15291, 0x02839b5d, 0x03d129a0, 0x013c2dce, 0x037ab87f, 0x018a4868, 0x01352446, 0x02db65a5, 0x000db676}}, Y: Field{[10]uint32{0x0147bbf7, 0x014092c8, 0x00d8d078, 0x03e0d1f7, 0x011edd9b, 0x0196fbc6, 0x02ec3065, 0x01761897, 0x0356d93b, 0x00097a10}}},
+ {X: Field{[10]uint32{0x02531fa7, 0x039c74d9, 0x02fe3ab2, 0x01508ca4, 0x02aab896, 0x0009c9b3, 0x01d8a9e3, 0x039dd9ca, 0x02b143ec, 0x000f83ae}}, Y: Field{[10]uint32{0x018d41cd, 0x00e0f665, 0x03d5c691, 0x0384f66a, 0x008e38ea, 0x03ec12cd, 0x008f32b2, 0x0188da25, 0x0208556d, 0x001b9ec9}}},
+ {X: Field{[10]uint32{0x00fa3728, 0x02f6d706, 0x034832ba, 0x0108055f, 0x03ab08ab, 0x004fba6a, 0x01e9521a, 0x03cc6a87, 0x036af315, 0x00248f71}}, Y: Field{[10]uint32{0x02d3ae47, 0x03b81f03, 0x0003ef6b, 0x02158cc4, 0x017facf6, 0x03627992, 0x001bfca6, 0x0215ecc5, 0x03b67439, 0x001ea3c5}}},
+ {X: Field{[10]uint32{0x016a6618, 0x0313a80f, 0x02c6de85, 0x02a4deea, 0x036bee02, 0x00738b85, 0x029cb815, 0x03ab8d33, 0x033202df, 0x003e1fff}}, Y: Field{[10]uint32{0x005a03e0, 0x01d84856, 0x00e13c71, 0x0330b879, 0x027c14a4, 0x000f36ff, 0x03ace256, 0x01b828d5, 0x0037aa72, 0x001d3924}}},
+ {X: Field{[10]uint32{0x018881ed, 0x00fe7040, 0x008200e3, 0x03fc1d5a, 0x01e00b5a, 0x014e7dfa, 0x01ec106b, 0x01a68047, 0x025ddd7f, 0x0004e201}}, Y: Field{[10]uint32{0x0113408e, 0x00c8c5d3, 0x0332c92b, 0x00c88ff9, 0x0065d1a9, 0x02ad090b, 0x02f72a55, 0x01877508, 0x018f1406, 0x002b2ac7}}},
+ {X: Field{[10]uint32{0x004b6941, 0x026d88eb, 0x0201e59e, 0x00d2b314, 0x003d685b, 0x028dd46e, 0x03315427, 0x01a8220d, 0x031ea99b, 0x003951da}}, Y: Field{[10]uint32{0x033b4e21, 0x022cba57, 0x0177bb41, 0x019cf321, 0x00bc86dd, 0x02a3e9d5, 0x03c794ca, 0x01e568c8, 0x02f1c4dd, 0x0015f56c}}},
+ {X: Field{[10]uint32{0x01cd1f15, 0x011f2c05, 0x0109c3dd, 0x02053b5e, 0x0290c149, 0x03261063, 0x0229d894, 0x03afa930, 0x0360f1e8, 0x003e4e3f}}, Y: Field{[10]uint32{0x02bb13e1, 0x0140c63b, 0x028214da, 0x0316dbb5, 0x02037fe2, 0x01cafef5, 0x0176e293, 0x03191a81, 0x02121a0c, 0x0035c5c8}}},
+ {X: Field{[10]uint32{0x00a30aa3, 0x0168ef66, 0x038ad8ad, 0x013e8221, 0x01180b49, 0x02153e6f, 0x015544d5, 0x0144205e, 0x00107c4a, 0x002cc6f5}}, Y: Field{[10]uint32{0x00519e82, 0x01bd7014, 0x031c18fb, 0x03c384ac, 0x03d33828, 0x0001faac, 0x0141affa, 0x0225897a, 0x00976bd5, 0x00250984}}},
+ {X: Field{[10]uint32{0x00c1cb2f, 0x011f40fd, 0x03af7b44, 0x02495768, 0x0333abd6, 0x0269b1b4, 0x02df141b, 0x00340468, 0x03ba8321, 0x002cfb61}}, Y: Field{[10]uint32{0x01d632b3, 0x02452a93, 0x0347abe0, 0x006cd1f9, 0x02b90be7, 0x018d0799, 0x030273cb, 0x015f86a5, 0x037929c7, 0x00252774}}},
+ {X: Field{[10]uint32{0x01221e17, 0x03b85b4c, 0x03f46668, 0x0038e2e1, 0x0089a57c, 0x00c6f282, 0x0395e787, 0x0243612e, 0x02401ea7, 0x001839b0}}, Y: Field{[10]uint32{0x029465c2, 0x02f451b2, 0x0198cc03, 0x00110143, 0x00367387, 0x015c7abc, 0x01c800a0, 0x00263ca9, 0x0335c722, 0x003c91ef}}},
+ {X: Field{[10]uint32{0x03750a80, 0x02bebc70, 0x03b87994, 0x01abdd30, 0x01eaf3e1, 0x01c4f35c, 0x01d8d370, 0x03411f9f, 0x02b04cc8, 0x000aba01}}, Y: Field{[10]uint32{0x02e2e954, 0x03793aec, 0x0135ae38, 0x028906a8, 0x026facf6, 0x0017283b, 0x007fafe6, 0x01c6d46a, 0x00acb297, 0x002a365e}}},
+ {X: Field{[10]uint32{0x01bb5c47, 0x0109308a, 0x0343958a, 0x0218dde7, 0x01d23843, 0x007dbcea, 0x020bb155, 0x00b4a79e, 0x00a4bbba, 0x0026bc5e}}, Y: Field{[10]uint32{0x0279abd3, 0x0006886b, 0x03259781, 0x02eab737, 0x014052a4, 0x00beecf4, 0x007ac857, 0x02215e92, 0x03baa023, 0x003040c7}}},
+ {X: Field{[10]uint32{0x0008f523, 0x005b6658, 0x00b2c3a1, 0x00c4cc3b, 0x00fd78a5, 0x027a2894, 0x03da097c, 0x009ebcb9, 0x0321e9cb, 0x002775a9}}, Y: Field{[10]uint32{0x03f36080, 0x03274ff9, 0x0217357d, 0x0177d3a0, 0x03fc4e97, 0x02f195e1, 0x012adb14, 0x0027251c, 0x037d6473, 0x0039a0de}}},
+ {X: Field{[10]uint32{0x01e91c52, 0x006876a9, 0x03f0f0e3, 0x02da68a2, 0x03fcb717, 0x0113beed, 0x03e3f1de, 0x028794ec, 0x02bed7a1, 0x0033d7c5}}, Y: Field{[10]uint32{0x00487497, 0x00a0d2b1, 0x014b1485, 0x003629a7, 0x00b0c80a, 0x0264833d, 0x03912c99, 0x0081ef18, 0x03d54d87, 0x0025527a}}},
+ {X: Field{[10]uint32{0x03a64722, 0x03a417b7, 0x001afd45, 0x03ece880, 0x01de577c, 0x014a8052, 0x02466a3c, 0x015341e0, 0x00908109, 0x00319e52}}, Y: Field{[10]uint32{0x035ca468, 0x0091837d, 0x01187fcc, 0x00946f9a, 0x018621b6, 0x03209e0a, 0x00a5fbd5, 0x0100c6ff, 0x0351deb6, 0x001293f7}}},
+ {X: Field{[10]uint32{0x00599713, 0x0354904c, 0x023e4442, 0x0083f869, 0x02b03b49, 0x010501aa, 0x019c1ea0, 0x0383fc59, 0x03cbbee9, 0x002897ff}}, Y: Field{[10]uint32{0x0341486a, 0x01bc912f, 0x007e2123, 0x024537a6, 0x0240fab7, 0x02dca86e, 0x03fc28af, 0x004626b0, 0x02065a82, 0x0005dae7}}},
+ {X: Field{[10]uint32{0x00c5bf71, 0x0125dd38, 0x025ecdca, 0x01ab2ba7, 0x01128cab, 0x009238ca, 0x02cfafc7, 0x0248ec5a, 0x0322fd5d, 0x00181e69}}, Y: Field{[10]uint32{0x018c4bcc, 0x03debaf4, 0x00c45df0, 0x024af57b, 0x02023f52, 0x000cdfbf, 0x036f1d91, 0x01691713, 0x02de99ca, 0x0030265c}}},
+ {X: Field{[10]uint32{0x0366b403, 0x02772e4a, 0x0182c813, 0x003f2add, 0x02f64b95, 0x02c59c8f, 0x03ffc428, 0x01e39c63, 0x003d9d40, 0x0006232d}}, Y: Field{[10]uint32{0x03af5404, 0x03dfc688, 0x0314c140, 0x03ccd62a, 0x01fcc8c2, 0x0155a45b, 0x01a28799, 0x02890002, 0x0237ec9e, 0x00280e3e}}},
+ {X: Field{[10]uint32{0x0019bb30, 0x006c9fbe, 0x0102cd78, 0x00d1a33f, 0x00c445ca, 0x01559fb2, 0x03925066, 0x0171a3d5, 0x0040cb57, 0x0038c43f}}, Y: Field{[10]uint32{0x02be625e, 0x01ae278a, 0x0384ddf6, 0x00da83c5, 0x02e0c183, 0x01b9ee51, 0x0101def6, 0x004bb97a, 0x02655ba3, 0x000c4ca2}}},
+ {X: Field{[10]uint32{0x03dea4ac, 0x015d2fdd, 0x03c8e52b, 0x037c91b0, 0x00f15693, 0x03d18b32, 0x000bdeb1, 0x01177765, 0x005d1c82, 0x00376192}}, Y: Field{[10]uint32{0x01966ce2, 0x03027182, 0x03b4833f, 0x02d1f9d0, 0x018963a8, 0x028a6282, 0x0290175b, 0x0289c131, 0x03c256c9, 0x00335aed}}},
+ {X: Field{[10]uint32{0x03019aef, 0x01740a81, 0x0097bde8, 0x02666cd8, 0x03dba773, 0x02da7865, 0x03dc67ca, 0x019ee1bd, 0x020cf815, 0x0006dfb4}}, Y: Field{[10]uint32{0x00e3d1bb, 0x03f0d7bc, 0x01531be6, 0x01534c53, 0x00df428d, 0x0292f0de, 0x00d89b59, 0x010e1954, 0x012ad1cb, 0x003e053a}}},
+ {X: Field{[10]uint32{0x01ded284, 0x01c669ed, 0x01897a0f, 0x00328191, 0x019b41cd, 0x01c2cfc7, 0x0146a036, 0x020ce3b4, 0x007b2d52, 0x00028556}}, Y: Field{[10]uint32{0x022e925d, 0x03a9c9c4, 0x0052bfe6, 0x008ab5ad, 0x0312fc15, 0x01008fb9, 0x00d225cc, 0x00693b8c, 0x034b5aba, 0x000abbf8}}},
+ {X: Field{[10]uint32{0x036a5484, 0x01254fa4, 0x01054048, 0x018e7934, 0x0208d194, 0x02825033, 0x00fcf209, 0x029a4663, 0x01f9c99d, 0x00015eee}}, Y: Field{[10]uint32{0x031660e4, 0x0291f20c, 0x0079e9a6, 0x01ef634c, 0x03700dc5, 0x035defc3, 0x03be5e41, 0x009ba0b1, 0x03a8d902, 0x0018f43e}}},
+ {X: Field{[10]uint32{0x03bd262c, 0x02497564, 0x03746bab, 0x03ee3e92, 0x01291f84, 0x00844ec8, 0x017f7a10, 0x02d2835f, 0x01b37fa1, 0x000890a5}}, Y: Field{[10]uint32{0x00195796, 0x0258ae4e, 0x03ddcea2, 0x023b1145, 0x0246ed38, 0x00889982, 0x023eb74c, 0x02c369d5, 0x0040b1e4, 0x0003582b}}},
+ {X: Field{[10]uint32{0x0053b0e3, 0x00e69ad5, 0x0055e53b, 0x0283c8a0, 0x02d6101c, 0x039d0d53, 0x00031b29, 0x0314f81f, 0x02e6a34e, 0x00090d3a}}, Y: Field{[10]uint32{0x003ce23d, 0x01e8e09d, 0x010ed6ce, 0x01d591db, 0x008b04f7, 0x00e88398, 0x00f39563, 0x0012ec4e, 0x0161d57a, 0x000bfd7b}}},
+ {X: Field{[10]uint32{0x01885ce9, 0x02961c62, 0x0203b700, 0x02d8db42, 0x01ef2e6a, 0x03ec8ac1, 0x0304c649, 0x00444ef6, 0x0192907c, 0x00112379}}, Y: Field{[10]uint32{0x0079eabc, 0x0108732a, 0x028803d0, 0x00435164, 0x0063af8b, 0x016c0a4c, 0x03e6dea2, 0x0141a37a, 0x03fd6ab3, 0x0035eab3}}},
+ {X: Field{[10]uint32{0x0393dd76, 0x028dc618, 0x0298f7c2, 0x00730769, 0x00defc0a, 0x006a8ee8, 0x02b92e70, 0x01d9d1ff, 0x03735aef, 0x00210173}}, Y: Field{[10]uint32{0x02c407f2, 0x01549639, 0x0053fc79, 0x00beea1a, 0x0189c9ef, 0x03d2a1c4, 0x0261c783, 0x00428129, 0x000649cd, 0x0015e574}}},
+ {X: Field{[10]uint32{0x0208efc9, 0x0084735b, 0x026d5581, 0x03341cb1, 0x029318ac, 0x00dc7ae1, 0x01349aa0, 0x0121f7fa, 0x00c1e5c1, 0x001a625d}}, Y: Field{[10]uint32{0x0384509c, 0x030703fb, 0x00e1590b, 0x00aaee13, 0x01bcec87, 0x02ae6bd8, 0x036536c2, 0x012fd47d, 0x038cdc8f, 0x000df088}}},
+ {X: Field{[10]uint32{0x003fee05, 0x0395cc99, 0x02d8dce2, 0x01846e11, 0x03e6548c, 0x00c57de2, 0x017781df, 0x02af19c6, 0x017abe3c, 0x00228de1}}, Y: Field{[10]uint32{0x00f674ed, 0x01da62d3, 0x020b78b8, 0x026c8777, 0x005e28e9, 0x038e19b5, 0x0055e4d9, 0x013341f9, 0x03680915, 0x000a620b}}},
+ {X: Field{[10]uint32{0x0397eaef, 0x02f380c8, 0x00846793, 0x037c3e98, 0x0325ec8c, 0x01ea29c5, 0x0104c968, 0x00e7f84c, 0x034f5cdd, 0x002a1c6c}}, Y: Field{[10]uint32{0x0387cb28, 0x03f5e8b0, 0x00c5df3f, 0x037a379b, 0x00642312, 0x01b2484f, 0x03e2dc68, 0x000f027d, 0x00179de1, 0x00213e59}}},
+ {X: Field{[10]uint32{0x0286f44a, 0x019339a0, 0x00fb4fd9, 0x031ebaae, 0x009ec66e, 0x02679d2b, 0x0057905e, 0x029fd6a2, 0x03b89f78, 0x00126f2b}}, Y: Field{[10]uint32{0x019eff6f, 0x03901f3b, 0x0194f4ea, 0x01849c5b, 0x0271124a, 0x02f464fa, 0x011d2ca7, 0x02add29e, 0x00cb5641, 0x0039f6e3}}},
+ {X: Field{[10]uint32{0x028b6df6, 0x01c4c03d, 0x03686c3f, 0x012de7fa, 0x0140d9b8, 0x03ffa126, 0x0186289d, 0x0327963d, 0x012f2f05, 0x003571f6}}, Y: Field{[10]uint32{0x0151c08e, 0x0200abc7, 0x020434f1, 0x00aff38d, 0x036fcb2b, 0x0073d0ae, 0x00b272ce, 0x028e3a81, 0x025c219e, 0x0029a2ca}}},
+ {X: Field{[10]uint32{0x03286696, 0x02a36d4e, 0x0056cfe4, 0x02f8a09b, 0x006a825c, 0x02c323b4, 0x034a249c, 0x0335ee71, 0x023cfea4, 0x000ab0bf}}, Y: Field{[10]uint32{0x0360f43f, 0x039e0102, 0x03834a67, 0x01b3c028, 0x00505bb4, 0x01b2981e, 0x02f6031c, 0x02947b28, 0x0259b008, 0x001f6429}}},
+ {X: Field{[10]uint32{0x00a39234, 0x00716a84, 0x011d92f6, 0x03bec0ed, 0x025b0069, 0x0283b69e, 0x023a85f5, 0x01fb3d3d, 0x00bc6282, 0x001f026b}}, Y: Field{[10]uint32{0x01624836, 0x01b1a21a, 0x030015a9, 0x03c8258a, 0x00854b56, 0x017f70c6, 0x01f86414, 0x00a315a1, 0x0139c291, 0x00381f49}}},
+ {X: Field{[10]uint32{0x03fbf9f0, 0x025aefdb, 0x03a7f2c4, 0x0008d289, 0x033bb4ff, 0x00ecbeb4, 0x0141ae71, 0x010b9da6, 0x01567e1b, 0x003a21b7}}, Y: Field{[10]uint32{0x0267a877, 0x0045cb71, 0x0301081d, 0x03cf18c2, 0x025a4666, 0x037d3977, 0x01c097f0, 0x03e03cdc, 0x037babee, 0x00352c89}}},
+ {X: Field{[10]uint32{0x0059c2dc, 0x02866740, 0x00464073, 0x039614d1, 0x038ca8a6, 0x03d82ec6, 0x02178f0f, 0x00e60f16, 0x00c800e8, 0x003b7d97}}, Y: Field{[10]uint32{0x01ab2d5e, 0x01d89122, 0x0123a92c, 0x036c41c3, 0x030118a4, 0x0378737e, 0x024710a2, 0x00c27e12, 0x0313f0c5, 0x00289099}}},
+ {X: Field{[10]uint32{0x026d17f8, 0x01abdbb4, 0x01036a74, 0x02ee8f4b, 0x03435ad7, 0x02c548c8, 0x016dbbe5, 0x01baee4d, 0x0304b78a, 0x000a704b}}, Y: Field{[10]uint32{0x016eae4a, 0x03f3b388, 0x019358b7, 0x009fe816, 0x02b3336d, 0x027b1146, 0x02a211f3, 0x0046a9e3, 0x0275bf62, 0x00020e64}}},
+ {X: Field{[10]uint32{0x0263c3e2, 0x03e29e59, 0x00789994, 0x01192986, 0x03169f20, 0x0383e7f3, 0x02034ac3, 0x026453c2, 0x038c280e, 0x003576e2}}, Y: Field{[10]uint32{0x0263412b, 0x00355df0, 0x02cbbeb6, 0x01e2a997, 0x0398f270, 0x0066507d, 0x025635a8, 0x0000e7d7, 0x003a085a, 0x0010458f}}},
+ {X: Field{[10]uint32{0x01135f8d, 0x00285f36, 0x01165700, 0x016b151f, 0x0210e105, 0x02ed3dff, 0x00e57ac8, 0x02c03656, 0x03a5630e, 0x00264293}}, Y: Field{[10]uint32{0x03c9653b, 0x02c8f5d2, 0x032912ec, 0x0053e3f3, 0x03eb2524, 0x0231c485, 0x02a03646, 0x028a2511, 0x0025491f, 0x003c97b8}}},
+ {X: Field{[10]uint32{0x029c0935, 0x00ded5e7, 0x031b7416, 0x03b31a35, 0x034e3049, 0x00c573d4, 0x0101c3b3, 0x012773b2, 0x00f01c78, 0x0035e13b}}, Y: Field{[10]uint32{0x034205ce, 0x03593eda, 0x03dde6b2, 0x00202159, 0x02306720, 0x03b1bf51, 0x0082a841, 0x00abb763, 0x0122cc38, 0x00177a63}}},
+ {X: Field{[10]uint32{0x00e38193, 0x01334d5b, 0x01338320, 0x03946726, 0x019b4d38, 0x037cf067, 0x0353b67b, 0x0032eeab, 0x00d05885, 0x000195db}}, Y: Field{[10]uint32{0x0310eaca, 0x03dd3195, 0x03420658, 0x0038c2fc, 0x03d98496, 0x01d923f8, 0x001fbeb2, 0x0395b8c7, 0x013e92d1, 0x0028ca66}}},
+ {X: Field{[10]uint32{0x0035efce, 0x012113af, 0x024d8bb9, 0x01dcf49b, 0x0320ccb1, 0x0311527f, 0x009a8081, 0x03031919, 0x00e5f675, 0x00255de2}}, Y: Field{[10]uint32{0x021d9b5b, 0x016a8394, 0x00a8c051, 0x001a6f04, 0x0301d329, 0x005785f3, 0x01c39486, 0x03b8df65, 0x031cdc4b, 0x001fa910}}},
+ {X: Field{[10]uint32{0x039e4a2e, 0x014b0178, 0x0096b014, 0x03cec114, 0x00da5549, 0x02304ffc, 0x0101abd7, 0x02d4dfb1, 0x02805053, 0x0022bdf2}}, Y: Field{[10]uint32{0x017e8402, 0x0160da8b, 0x03fb8e1b, 0x001ba759, 0x036a4362, 0x03690150, 0x03235e60, 0x010b933e, 0x0225aac0, 0x00097a18}}},
+ {X: Field{[10]uint32{0x0215236c, 0x024df438, 0x02ba2623, 0x01598dec, 0x01e6eb74, 0x035e705e, 0x02ff642a, 0x018d3880, 0x0393e16e, 0x00126fc0}}, Y: Field{[10]uint32{0x0031a85d, 0x00f9a5e9, 0x00722d60, 0x00305e6b, 0x0141e5f8, 0x02684d10, 0x000ce1ee, 0x03835073, 0x013f401d, 0x00216418}}},
+ {X: Field{[10]uint32{0x00192063, 0x03af4675, 0x035afdc5, 0x03b68992, 0x01df3653, 0x02326db7, 0x03b68581, 0x00a18d49, 0x02250257, 0x00320b8a}}, Y: Field{[10]uint32{0x01a6de8c, 0x01d78f8e, 0x011c7b26, 0x03dcddbe, 0x01c2717f, 0x01fe7a4e, 0x030af044, 0x0306f4f5, 0x0000cd87, 0x000ee1be}}},
+ {X: Field{[10]uint32{0x00eedbf3, 0x004b7f76, 0x02041a37, 0x0154562c, 0x0142ec13, 0x0393489f, 0x02fc9c3f, 0x023df0eb, 0x01202b9a, 0x0027390e}}, Y: Field{[10]uint32{0x035b52f6, 0x0288327f, 0x026e26d5, 0x02cf70bb, 0x0153a54b, 0x02a4e7fe, 0x02f15d59, 0x03b74feb, 0x0305859a, 0x0036eed6}}},
+ {X: Field{[10]uint32{0x02fe6227, 0x02f6dac5, 0x0324a168, 0x02b425bb, 0x00baa707, 0x03b2ad2e, 0x01202213, 0x0017294b, 0x009e49de, 0x000381c0}}, Y: Field{[10]uint32{0x00bc33c9, 0x023e739b, 0x03b2e417, 0x00f28548, 0x03258383, 0x037a353a, 0x03865b0a, 0x02e89a06, 0x00bfe752, 0x001a8d6c}}},
+ {X: Field{[10]uint32{0x021da888, 0x00056f60, 0x03fab065, 0x017fd308, 0x01d58861, 0x025849c5, 0x02948147, 0x02bd8791, 0x01b47e09, 0x003ad373}}, Y: Field{[10]uint32{0x01661b8f, 0x017454fa, 0x000834a5, 0x01710410, 0x00008630, 0x01320457, 0x006536ad, 0x000be878, 0x01685846, 0x0018f8e0}}},
+ {X: Field{[10]uint32{0x00e49db6, 0x013cce44, 0x00f7bf86, 0x001c981e, 0x03a2c659, 0x034a76b3, 0x0257015d, 0x00044c74, 0x02812bf2, 0x002f97e1}}, Y: Field{[10]uint32{0x016d9da7, 0x01004765, 0x01f308f0, 0x02e3103a, 0x0143c4f1, 0x01cfe944, 0x015a92da, 0x012bfd66, 0x00e45617, 0x00343d08}}},
+ {X: Field{[10]uint32{0x015b99a8, 0x007e204d, 0x01ed74a6, 0x0172cc75, 0x03db214a, 0x0375fa3b, 0x03a1318e, 0x017e7663, 0x003910e7, 0x000eccb7}}, Y: Field{[10]uint32{0x03a18bc5, 0x02bc68a8, 0x03c4218b, 0x02b15cbe, 0x036e4e0a, 0x01d4b952, 0x01df756e, 0x03a7967f, 0x028619c2, 0x000684b7}}},
+ {X: Field{[10]uint32{0x02e04db1, 0x00f9e921, 0x029d0a3c, 0x00d45a5c, 0x03dde107, 0x00fce1ad, 0x012922ea, 0x03a21597, 0x01ce5c06, 0x00256b17}}, Y: Field{[10]uint32{0x02f39838, 0x02d6c9cf, 0x029fde77, 0x01dc9465, 0x01680edb, 0x005aded2, 0x0049e856, 0x0060878f, 0x0187ab1b, 0x000688b3}}},
+ {X: Field{[10]uint32{0x00e708eb, 0x0060db5f, 0x005ccd30, 0x00782a37, 0x027dad59, 0x017b4a57, 0x01d1b74a, 0x03c4f8cd, 0x00fba4b0, 0x001b93b4}}, Y: Field{[10]uint32{0x0234b931, 0x01fc5482, 0x01a54ac3, 0x0267a670, 0x0016a2ef, 0x027366ac, 0x0188e6e5, 0x013827b6, 0x026ac61c, 0x00241585}}},
+ {X: Field{[10]uint32{0x03a42e10, 0x03ae8b08, 0x01859898, 0x01e6474b, 0x01ea8d9a, 0x0209f612, 0x00925e17, 0x003b84dd, 0x0394208e, 0x0022df0c}}, Y: Field{[10]uint32{0x0043d193, 0x02afac9c, 0x02d0d003, 0x03d8bc86, 0x032c8beb, 0x01d7bcff, 0x00e64400, 0x002f3244, 0x02379672, 0x002daae4}}},
+ {X: Field{[10]uint32{0x00f871c6, 0x001612ec, 0x02dcc8e2, 0x01363e5b, 0x02dd48ab, 0x02dbd772, 0x00965b98, 0x0035ce21, 0x0347f669, 0x0003f69e}}, Y: Field{[10]uint32{0x02926c5d, 0x02e39af2, 0x03560e18, 0x00895791, 0x00309292, 0x0152d1cf, 0x03487e8b, 0x0331b4a2, 0x0035a272, 0x0026d009}}},
+ {X: Field{[10]uint32{0x01bcb217, 0x0041a8cf, 0x0255dad6, 0x022f3246, 0x036e6301, 0x0303a6a8, 0x00beb534, 0x01686bbe, 0x00f5395a, 0x003c5768}}, Y: Field{[10]uint32{0x038a8f1c, 0x03afdd95, 0x00f6ddb6, 0x00bef3e6, 0x0380be25, 0x021825c8, 0x03571ac4, 0x00054645, 0x01eabb3b, 0x000a33da}}},
+ {X: Field{[10]uint32{0x00af9253, 0x036206ef, 0x032f4abf, 0x02e1fea0, 0x03d9a208, 0x021c26a5, 0x02378e63, 0x005f8324, 0x02dd2c78, 0x0031b899}}, Y: Field{[10]uint32{0x03769626, 0x0247b9f2, 0x02082842, 0x03724c8c, 0x005ffa7a, 0x0342fbd6, 0x00e95e35, 0x02ce8c32, 0x00c1fa9b, 0x000abc40}}},
+ {X: Field{[10]uint32{0x02e28753, 0x00cf422d, 0x0313f0d1, 0x01e93f6a, 0x037f5a72, 0x00e495a1, 0x00c21a83, 0x00807922, 0x02020fdd, 0x0012fe2a}}, Y: Field{[10]uint32{0x015fc8b8, 0x02fa74f3, 0x01d88f39, 0x0016572f, 0x02d8fe5f, 0x0279b188, 0x01c6bd70, 0x01356685, 0x0258ad9c, 0x00162049}}},
+ {X: Field{[10]uint32{0x00d0a6d3, 0x03f04a5f, 0x0248b972, 0x01cf6d87, 0x0105cda6, 0x029dfee5, 0x009fc39d, 0x01216956, 0x032806dd, 0x002aa617}}, Y: Field{[10]uint32{0x024b75b2, 0x017d8347, 0x00a04e1e, 0x00404389, 0x007c2777, 0x007fc0b8, 0x025a92da, 0x018ecca6, 0x00972f11, 0x002aec3e}}},
+ {X: Field{[10]uint32{0x01c41c9d, 0x01ccbb18, 0x0197c8e1, 0x012c33b4, 0x016c2fa0, 0x02305048, 0x039f88d8, 0x02873d3a, 0x0101ec13, 0x00205d34}}, Y: Field{[10]uint32{0x03d79aa7, 0x01a9d623, 0x01bbb46f, 0x012c69e4, 0x00c6e5d9, 0x0298e6c0, 0x037a6625, 0x00b9ffab, 0x01c231b0, 0x00319d97}}},
+ {X: Field{[10]uint32{0x01f3d876, 0x00bc13db, 0x02cbb870, 0x02b3f6f9, 0x0292573a, 0x016a68e8, 0x028fe098, 0x024a5edc, 0x02a9d603, 0x003e7d93}}, Y: Field{[10]uint32{0x024ca01a, 0x01f4b266, 0x02f9b1a6, 0x03ef61fb, 0x01188069, 0x005cba1e, 0x00950f21, 0x019f4058, 0x03c14060, 0x001051b1}}},
+ {X: Field{[10]uint32{0x00f1b3b4, 0x0197b32a, 0x02951d88, 0x02f072a4, 0x01f8067c, 0x02977a49, 0x034454a2, 0x0217acf4, 0x02705a68, 0x000f990e}}, Y: Field{[10]uint32{0x02fb0355, 0x03822df8, 0x02f11b0f, 0x0209c58b, 0x028b5e58, 0x01ddea65, 0x01d54d1d, 0x014d3b7a, 0x03045525, 0x000b7b29}}},
+ {X: Field{[10]uint32{0x036c63c5, 0x0259bccd, 0x0082e4c0, 0x034ae1ea, 0x03caae45, 0x01bddb40, 0x015d200d, 0x02b01dfa, 0x0011fcc3, 0x0011137d}}, Y: Field{[10]uint32{0x0016cc23, 0x0142a955, 0x032bc643, 0x024eb1b8, 0x01ec520c, 0x00b7b3cf, 0x00d1a4df, 0x02592a9f, 0x0198643d, 0x002d1599}}},
+ {X: Field{[10]uint32{0x006946a0, 0x01ea1e99, 0x01465bbb, 0x01aa1093, 0x0019cdaa, 0x029a0429, 0x00a7beb1, 0x00d7f8c5, 0x021f58be, 0x0004a8bd}}, Y: Field{[10]uint32{0x010ba47d, 0x0354d74a, 0x010698df, 0x00c6575e, 0x0248410b, 0x029a7ef2, 0x01539461, 0x03323fc6, 0x034494c2, 0x00269ef7}}},
+ {X: Field{[10]uint32{0x0264cb9f, 0x00acadf8, 0x007933d5, 0x01ea4fd2, 0x02511b2b, 0x01a1ef48, 0x008af94b, 0x01cf1cf5, 0x02924625, 0x002f75c9}}, Y: Field{[10]uint32{0x02123874, 0x03037de8, 0x034ed955, 0x03df7103, 0x02858e6d, 0x03dd1a6a, 0x01ac9923, 0x03eac2f5, 0x004eb794, 0x00015b9b}}},
+ {X: Field{[10]uint32{0x00066bdd, 0x01ff95a9, 0x003d60ec, 0x00a75f41, 0x03c974bd, 0x02936a7b, 0x034f156e, 0x03d5744a, 0x015877c3, 0x00386f55}}, Y: Field{[10]uint32{0x03233170, 0x02541d70, 0x0033ff5a, 0x006c7111, 0x03789cbf, 0x03168cbd, 0x002bea56, 0x010da88e, 0x0399fbe7, 0x00237366}}},
+ {X: Field{[10]uint32{0x00132ad9, 0x00d47498, 0x0185d804, 0x02e2c1c6, 0x00fc064e, 0x01287d54, 0x0246609f, 0x020a52fa, 0x01e4781c, 0x0029f1a3}}, Y: Field{[10]uint32{0x01b42c32, 0x02218aeb, 0x00766842, 0x026fafe8, 0x026f6bbf, 0x0116626e, 0x022b240d, 0x03fad441, 0x00b63d9e, 0x0028209e}}},
+ {X: Field{[10]uint32{0x029aa855, 0x00f1c34a, 0x0279a56b, 0x0198f632, 0x0205fa0d, 0x004df41e, 0x01eb90f5, 0x038da72f, 0x0369b4c6, 0x0013cea1}}, Y: Field{[10]uint32{0x026ea169, 0x01921bba, 0x0393e35b, 0x00b2d8af, 0x00b9d6db, 0x011c1d61, 0x00ed9f2c, 0x007854d2, 0x011c5f70, 0x0003db01}}},
+ {X: Field{[10]uint32{0x0044f232, 0x018f77bd, 0x01a8d744, 0x01ff2d0d, 0x0036fd04, 0x0229aed6, 0x01cac66d, 0x03aff610, 0x001c8089, 0x0037aaaf}}, Y: Field{[10]uint32{0x0228e8a1, 0x0030a4f0, 0x014f90f5, 0x01258a9b, 0x00ccd14a, 0x03229b59, 0x026e6547, 0x01b9eaa0, 0x00ba49c2, 0x003edf31}}},
+ {X: Field{[10]uint32{0x019c0695, 0x02e3e4cc, 0x023788b5, 0x02adf3f3, 0x02fd7f33, 0x03bcaccb, 0x0151e1f4, 0x006ce049, 0x0361547b, 0x0031046b}}, Y: Field{[10]uint32{0x018cb66b, 0x02efe215, 0x02ab4797, 0x013bd888, 0x02294ace, 0x03f3eedd, 0x0266d212, 0x03e0aba4, 0x03d73d50, 0x0034afb9}}},
+ {X: Field{[10]uint32{0x009ec5e7, 0x002f7aa4, 0x01637821, 0x000742a2, 0x004a35f1, 0x02e77771, 0x00284945, 0x0376a343, 0x0294485b, 0x00343fda}}, Y: Field{[10]uint32{0x024f620f, 0x0087c88d, 0x02a65e21, 0x03fe0ea4, 0x00cb1910, 0x023e54f1, 0x02b7e83d, 0x02a3cb40, 0x00fd2923, 0x002acfd8}}},
+ {X: Field{[10]uint32{0x0308c0f1, 0x00d6a9c7, 0x02424982, 0x01102cff, 0x01006f27, 0x016b5b2c, 0x011baea3, 0x03b648a1, 0x01cc9555, 0x00028341}}, Y: Field{[10]uint32{0x02339948, 0x0131f275, 0x037dc471, 0x02b4c601, 0x0150afe2, 0x0082c9c1, 0x017e67ca, 0x01629c2f, 0x01052371, 0x00210ec4}}},
+ {X: Field{[10]uint32{0x023f5d32, 0x03964807, 0x039d0568, 0x010a24fe, 0x007d5996, 0x0364265e, 0x0083ef67, 0x017ee817, 0x0045eb29, 0x002fa821}}, Y: Field{[10]uint32{0x00ce10e3, 0x03cc8a9b, 0x01cc7908, 0x035af53d, 0x01e26594, 0x00744bb4, 0x00bb2bb4, 0x03d14f5e, 0x03ffb3f7, 0x000aa069}}},
+ {X: Field{[10]uint32{0x02f0d5f0, 0x00b1f7b9, 0x02ce3e82, 0x026316b3, 0x00551c30, 0x01aae5c0, 0x035aea6f, 0x039a267a, 0x004c431b, 0x003a3af3}}, Y: Field{[10]uint32{0x01fa902e, 0x03428ecc, 0x0161e097, 0x0193aa83, 0x016d65db, 0x0268ab9e, 0x03d511f5, 0x0393d63e, 0x0061760a, 0x003be669}}},
+ {X: Field{[10]uint32{0x026e8fd2, 0x00c2f3a5, 0x03cd1d96, 0x02d6161d, 0x020806ba, 0x01e5b62d, 0x031db77c, 0x037113b3, 0x006cdd73, 0x00125218}}, Y: Field{[10]uint32{0x02b95f80, 0x012e496f, 0x01123bc6, 0x03b7cf6e, 0x00cb8c13, 0x00e511aa, 0x01630aa6, 0x02319e10, 0x033f786c, 0x000f19cc}}},
+ {X: Field{[10]uint32{0x02a778c2, 0x021e4ba7, 0x00a165c1, 0x02996d72, 0x00fb5a19, 0x019b3525, 0x03e40cca, 0x03bee938, 0x033240d9, 0x0013c966}}, Y: Field{[10]uint32{0x0117446d, 0x023aab93, 0x00efb1b6, 0x01fd1d23, 0x00b1590f, 0x027d3a8b, 0x02006054, 0x01a66712, 0x008778c2, 0x003f7620}}},
+ {X: Field{[10]uint32{0x02dfcc29, 0x0143e91e, 0x03f337e3, 0x02379ea9, 0x031e7e91, 0x038463ba, 0x036e2b43, 0x01fd4bc9, 0x0093e14d, 0x003cc0e9}}, Y: Field{[10]uint32{0x01141b57, 0x006f52da, 0x00163cfa, 0x01df17f9, 0x01453f79, 0x029ab499, 0x01bc49da, 0x0394fd7d, 0x006d0bef, 0x003127e9}}},
+ {X: Field{[10]uint32{0x01df595d, 0x02cbd4f0, 0x01a41ea4, 0x03f0a77d, 0x0158b9fd, 0x01029583, 0x0311859c, 0x02003b06, 0x0317f4c0, 0x00380312}}, Y: Field{[10]uint32{0x0363b99d, 0x007edd65, 0x032fb8c8, 0x000f4d20, 0x00a72a10, 0x02d33346, 0x00d0d957, 0x0134a746, 0x0266c3ec, 0x00189106}}},
+ {X: Field{[10]uint32{0x0372ce70, 0x02c8c076, 0x011714cf, 0x03c88560, 0x03ca16be, 0x02dd52f9, 0x03603bd2, 0x02bd4a91, 0x00861af6, 0x001212e1}}, Y: Field{[10]uint32{0x0132fbc7, 0x01f9cb13, 0x02359d47, 0x0314231d, 0x01cf72e5, 0x028299d6, 0x02968652, 0x01e68ff9, 0x03f5a0ac, 0x000dbe13}}},
+ {X: Field{[10]uint32{0x00d93f14, 0x0119ee13, 0x02dab210, 0x0338469e, 0x03ca07fe, 0x032f0526, 0x03e6a8a7, 0x007d1286, 0x00ead8b5, 0x00222f96}}, Y: Field{[10]uint32{0x02687fdc, 0x01baf2a4, 0x0067d4d4, 0x03d27c03, 0x018ebbeb, 0x001a5ec6, 0x00d6cd6a, 0x03ef05c7, 0x00af7037, 0x00253043}}},
+ {X: Field{[10]uint32{0x03da781b, 0x037a5111, 0x03b77384, 0x0351f058, 0x037372a3, 0x0040466d, 0x0275e11b, 0x035fbd12, 0x02af9fdd, 0x002afdb3}}, Y: Field{[10]uint32{0x0395d290, 0x003b3319, 0x0259a796, 0x024a0712, 0x01417183, 0x026ed3bd, 0x01fe2f3b, 0x0319eba7, 0x030c6320, 0x00172b6c}}},
+ {X: Field{[10]uint32{0x009d173a, 0x020e13ae, 0x03deb74f, 0x00365598, 0x014e221e, 0x01f1b0f3, 0x03cf10a1, 0x0196c99f, 0x01229ef6, 0x003a3099}}, Y: Field{[10]uint32{0x022aeeb3, 0x02b847f2, 0x00934035, 0x009a7f34, 0x02bec7ba, 0x00364591, 0x031965b3, 0x0143bf48, 0x03adf9b0, 0x00269a7e}}},
+ {X: Field{[10]uint32{0x01c6c23e, 0x03e93ff6, 0x0358df60, 0x03aa47ff, 0x01e031f3, 0x021a0c55, 0x0270a24e, 0x03b2e579, 0x03d8bf72, 0x0019994a}}, Y: Field{[10]uint32{0x00be994e, 0x0168ea4c, 0x03b3b4b6, 0x00054b73, 0x0205fa69, 0x03d98c29, 0x002fbb66, 0x00adcc8b, 0x00083f18, 0x0012113b}}},
+ {X: Field{[10]uint32{0x002c0964, 0x0094b753, 0x02f0badf, 0x01054caa, 0x0075cac8, 0x016fdb56, 0x00202c44, 0x00410372, 0x00c2d842, 0x00081e20}}, Y: Field{[10]uint32{0x01860cfd, 0x01b47c30, 0x01c54e91, 0x024c203f, 0x010a562d, 0x0324a9ec, 0x00ef3167, 0x013786b9, 0x01d73eb2, 0x000ac606}}},
+ {X: Field{[10]uint32{0x0013f581, 0x03f65648, 0x030cc763, 0x00b1f649, 0x007e8f26, 0x03437fda, 0x0133485e, 0x01a4bbb2, 0x01e453d0, 0x0011ae6f}}, Y: Field{[10]uint32{0x014f9bf7, 0x02af4b28, 0x022256ec, 0x021a7cbf, 0x01394cc7, 0x00216df5, 0x019b0d63, 0x026703d2, 0x03e63ae5, 0x00162be6}}},
+ {X: Field{[10]uint32{0x01ea3e11, 0x00759e5d, 0x0278b82b, 0x015758a6, 0x02a2fa25, 0x00a6bcea, 0x0356e2f0, 0x03974025, 0x0174dbeb, 0x001766c9}}, Y: Field{[10]uint32{0x02e59263, 0x01ed9143, 0x030f02b8, 0x02405963, 0x03f3a641, 0x018a5d63, 0x023dd507, 0x031a3f3b, 0x00acaa6a, 0x003b67d0}}},
+ {X: Field{[10]uint32{0x02590e4f, 0x01b05c9b, 0x02c52d08, 0x035ddf3f, 0x03dc598f, 0x01dd0ce2, 0x036a6491, 0x01909669, 0x01828b98, 0x003b2d6b}}, Y: Field{[10]uint32{0x01887886, 0x02637cb2, 0x034e301d, 0x029f3312, 0x0365d33e, 0x00be084b, 0x014b5bf5, 0x0361faa5, 0x013673c6, 0x0000ade2}}},
+ {X: Field{[10]uint32{0x0124ea67, 0x03294c8e, 0x0296e8f3, 0x0267f243, 0x00ddd62e, 0x00037957, 0x01747250, 0x006e2874, 0x00c15e71, 0x002ccad9}}, Y: Field{[10]uint32{0x02ac2083, 0x02c30929, 0x016a5403, 0x013783f8, 0x024d81b8, 0x01f92f86, 0x027a94de, 0x02b7c8d2, 0x01d36dce, 0x002bd758}}},
+ {X: Field{[10]uint32{0x020cd364, 0x0023f160, 0x034ab1c3, 0x010aa002, 0x008b7f68, 0x033daacf, 0x0157aa15, 0x008cd29b, 0x031b7158, 0x00144dfd}}, Y: Field{[10]uint32{0x01f1eab4, 0x0194a913, 0x00381efa, 0x00e25596, 0x010e4a3b, 0x025d5dc4, 0x02a248d4, 0x01f6ac31, 0x03ecc9b1, 0x003dfa97}}},
+ {X: Field{[10]uint32{0x029ea866, 0x0158a5f3, 0x01539e7c, 0x01958c58, 0x0025f94e, 0x00070fd7, 0x0113a898, 0x016224f8, 0x021a390b, 0x002e6ec3}}, Y: Field{[10]uint32{0x00324a11, 0x01a547c2, 0x0080e6b6, 0x02a094e6, 0x01247f60, 0x0207938c, 0x00e14ece, 0x00d7eeb9, 0x00903c3d, 0x003636cf}}},
+ {X: Field{[10]uint32{0x024fe9af, 0x03ad1a24, 0x027d317b, 0x024bb060, 0x0388cc11, 0x0310bd1e, 0x0291c211, 0x003b0811, 0x01676da4, 0x000fc246}}, Y: Field{[10]uint32{0x02bb8de9, 0x0177d705, 0x01395877, 0x02f74ff3, 0x00ba4c04, 0x00e341c9, 0x02e6a812, 0x00b07c62, 0x00263e88, 0x003c6d12}}},
+ {X: Field{[10]uint32{0x0093b4fe, 0x016b2236, 0x00ed80d5, 0x011f5897, 0x003767da, 0x01c286cb, 0x015e7afc, 0x01803a35, 0x01f1dad4, 0x002d7e89}}, Y: Field{[10]uint32{0x02d22347, 0x024e6ca2, 0x0270e1d6, 0x000ee85e, 0x0183e495, 0x02927426, 0x013a1908, 0x00a5b1fb, 0x0261f2ba, 0x001d5d7d}}},
+ {X: Field{[10]uint32{0x000d17b0, 0x031bdf5a, 0x000183d4, 0x03a9ac73, 0x01e4ca06, 0x000dcc1a, 0x01b797e9, 0x00096de3, 0x00e2dc6a, 0x00280dc7}}, Y: Field{[10]uint32{0x0059919d, 0x01f10cba, 0x036bc693, 0x01d1712b, 0x0024f0ff, 0x01666ddd, 0x011c5214, 0x00173ba1, 0x00a89a50, 0x0024ad6a}}},
+ {X: Field{[10]uint32{0x02e2f210, 0x02650a87, 0x02c8c7b1, 0x00a36896, 0x00cd0a98, 0x01f50808, 0x0063967d, 0x02441de2, 0x029000a4, 0x0016ab9b}}, Y: Field{[10]uint32{0x03ee8fd7, 0x00393ded, 0x03957576, 0x031335e0, 0x017e82fd, 0x01e7b0e6, 0x03218f7b, 0x013cfff5, 0x002082a5, 0x0003b673}}},
+ {X: Field{[10]uint32{0x020841a0, 0x034a8a06, 0x03b053fe, 0x02cb9b39, 0x0164efdd, 0x01437ad9, 0x000f9648, 0x02dbd2c4, 0x02ecf4a9, 0x001539f6}}, Y: Field{[10]uint32{0x03c9c63d, 0x00f7b2a5, 0x03daecc8, 0x0215c250, 0x0270d467, 0x022cd365, 0x02857ad0, 0x00ea0756, 0x032a5477, 0x00366b68}}},
+ {X: Field{[10]uint32{0x03bf44e8, 0x01153223, 0x00d7abdb, 0x0148e47b, 0x00383ed7, 0x01d926e1, 0x00d8be0c, 0x03bd1ad2, 0x0110d8bc, 0x003a6ca6}}, Y: Field{[10]uint32{0x021d6b69, 0x031c0f09, 0x033deb84, 0x024a6a37, 0x03d7a267, 0x00393102, 0x01739655, 0x03a47e94, 0x0094f669, 0x003ac9a0}}},
+ {X: Field{[10]uint32{0x02546a97, 0x0385de76, 0x00ef6384, 0x00727f85, 0x013f537a, 0x01df4767, 0x037c5895, 0x02944c65, 0x0222f254, 0x0010fe54}}, Y: Field{[10]uint32{0x01cb18cc, 0x03b3ad5c, 0x035e14b0, 0x02ce5ecf, 0x030eef80, 0x0198a8b7, 0x005b305b, 0x01711fc9, 0x02534334, 0x0035f4f1}}},
+ {X: Field{[10]uint32{0x02c3b103, 0x004a52e9, 0x00b1dcc9, 0x01701c89, 0x01672338, 0x005ab921, 0x00bc0902, 0x03ee4a0c, 0x03d53999, 0x0027ed17}}, Y: Field{[10]uint32{0x02bdf451, 0x03deb27f, 0x0213a277, 0x001ae09c, 0x036731b5, 0x0269252e, 0x017bf7f3, 0x020b4e43, 0x001bdbfd, 0x0016d1c2}}},
+ {X: Field{[10]uint32{0x031dcce9, 0x032092ed, 0x007f23cb, 0x003882b6, 0x0109ca84, 0x03ad19bd, 0x015919b2, 0x00a734ca, 0x002b8355, 0x0037648a}}, Y: Field{[10]uint32{0x03726371, 0x02a78717, 0x03b7ad58, 0x01a0ed63, 0x01f37962, 0x00788ef3, 0x02f4a29d, 0x0359a2c7, 0x02e7bc59, 0x003b117d}}},
+ {X: Field{[10]uint32{0x0016348d, 0x030176b7, 0x01c38686, 0x01bf06b5, 0x01fe2903, 0x00f788f1, 0x019def4f, 0x02f75efe, 0x0012009f, 0x001d20bc}}, Y: Field{[10]uint32{0x0040abd1, 0x0198e9ae, 0x025f8db1, 0x02eb0939, 0x0173fc0d, 0x0196eb44, 0x02b2a20b, 0x03dbc2fc, 0x020d5497, 0x00290f12}}},
+ {X: Field{[10]uint32{0x00ebd9a5, 0x029a1a5c, 0x02377a69, 0x00c3dea6, 0x01537fca, 0x016c0c65, 0x012f587a, 0x0189e077, 0x019597fd, 0x003e933f}}, Y: Field{[10]uint32{0x03ae823a, 0x03af8771, 0x0105c1b8, 0x00c428c1, 0x01e2a350, 0x03862a3f, 0x031d269b, 0x03dde2f4, 0x02c99ddb, 0x00115a2d}}},
+ {X: Field{[10]uint32{0x03a60b9e, 0x01f4440f, 0x00c53d9b, 0x034c9e51, 0x022f1078, 0x03c7ffaf, 0x0105e1b4, 0x00fa3a06, 0x03dae776, 0x00147834}}, Y: Field{[10]uint32{0x02da6740, 0x00bfca8d, 0x033f7bfa, 0x02948e57, 0x001da673, 0x008423b4, 0x01f20b90, 0x00beb33e, 0x00c4ab57, 0x00046368}}},
+ {X: Field{[10]uint32{0x01bc9530, 0x00a99a03, 0x03f86c48, 0x01d3d03a, 0x00502fc6, 0x0227a5bd, 0x003b8572, 0x008cd4e3, 0x027cc055, 0x001f6395}}, Y: Field{[10]uint32{0x02b37571, 0x030ba9a3, 0x00ad7600, 0x00716172, 0x00748458, 0x02a2c985, 0x01fe552b, 0x0111a92e, 0x004600c6, 0x001db0ff}}},
+ {X: Field{[10]uint32{0x011dfb1f, 0x00ae52b3, 0x000ed8d1, 0x019e7bd3, 0x011c316d, 0x03e8631e, 0x01f216fd, 0x0065bf74, 0x02d3b400, 0x00364931}}, Y: Field{[10]uint32{0x03ebcea8, 0x00aaa013, 0x012e59d8, 0x00649b1a, 0x0290b9d1, 0x023766e4, 0x01eb3f28, 0x0012e2c4, 0x00ee881c, 0x0003b0cf}}},
+ {X: Field{[10]uint32{0x0293c0db, 0x01d115d7, 0x03b8f330, 0x006afe54, 0x033965cb, 0x02a6760a, 0x00d28b97, 0x00a72346, 0x030b06f6, 0x002372cc}}, Y: Field{[10]uint32{0x006857a3, 0x01d3cde9, 0x0097ab6d, 0x0103dbdf, 0x00b58b73, 0x004fe06a, 0x0129b573, 0x0240b46c, 0x01198323, 0x000f628b}}},
+ {X: Field{[10]uint32{0x02a5d2b5, 0x01d27daf, 0x02e80d3f, 0x0074d68c, 0x0157910f, 0x036bad9c, 0x0386797d, 0x018de233, 0x023b94b0, 0x00374712}}, Y: Field{[10]uint32{0x03230777, 0x026fb7ac, 0x0064c086, 0x02f1cf5f, 0x003d2afe, 0x02de32de, 0x03e5be9a, 0x0160f590, 0x00c75a69, 0x003befb0}}},
+ {X: Field{[10]uint32{0x03f5e772, 0x022a214d, 0x02dab765, 0x03caf1d8, 0x01ec0275, 0x0134a4b0, 0x01f6ec48, 0x035fdce5, 0x02341dfa, 0x000ac0f7}}, Y: Field{[10]uint32{0x03c0d0e3, 0x019a9db0, 0x03bdf971, 0x0346b926, 0x020803d7, 0x027de397, 0x03d48bb4, 0x0160b156, 0x00fb3818, 0x000c8d7a}}},
+ {X: Field{[10]uint32{0x0028dde2, 0x01e320c5, 0x03f39479, 0x02f530f9, 0x02677f06, 0x01addc4c, 0x03a80efa, 0x016f25f9, 0x030fba14, 0x000e9e56}}, Y: Field{[10]uint32{0x00914691, 0x037d5e51, 0x0352b526, 0x013a8fc4, 0x0081af64, 0x03b502bb, 0x00bc9e1e, 0x022898df, 0x039ddf03, 0x003d0496}}},
+ {X: Field{[10]uint32{0x004fcbbf, 0x0301621a, 0x01e59ef8, 0x0085e234, 0x03121f5c, 0x002a1476, 0x006c081b, 0x035b2e71, 0x013ba133, 0x0003b3e0}}, Y: Field{[10]uint32{0x03e53560, 0x035dce04, 0x020930ec, 0x0057af84, 0x02597e39, 0x02254a70, 0x02becd07, 0x02d1cdfc, 0x02f2a7b7, 0x001a7836}}},
+ {X: Field{[10]uint32{0x02217d5a, 0x01a461b5, 0x00c33576, 0x01154da3, 0x03743832, 0x0138274f, 0x037191dd, 0x018f9040, 0x0182c141, 0x0018df12}}, Y: Field{[10]uint32{0x02ecb410, 0x03695cf7, 0x00b77a74, 0x011d6b19, 0x00f6fb37, 0x028de0c6, 0x03aaa5c0, 0x034b8c96, 0x02b8fd83, 0x0036968a}}},
+ {X: Field{[10]uint32{0x01b90e87, 0x022cf8dc, 0x037c6b19, 0x01604947, 0x00542556, 0x0014c368, 0x03f5fac2, 0x016d5f73, 0x03a2d887, 0x00067f9c}}, Y: Field{[10]uint32{0x00151ca0, 0x027de836, 0x01ad35a3, 0x0204a3f0, 0x01a32646, 0x03f97a2e, 0x027a77a1, 0x0094630d, 0x00182ccc, 0x000ec0eb}}},
+ {X: Field{[10]uint32{0x03b7ebb2, 0x0156dfce, 0x0023471d, 0x02f7c513, 0x00c68b4c, 0x02d9a02c, 0x01151b30, 0x03700027, 0x022a0d4c, 0x00005ba9}}, Y: Field{[10]uint32{0x013fa629, 0x03f3a779, 0x01f6a8ff, 0x0180b8ee, 0x0135f020, 0x02566030, 0x00612a89, 0x00b964ce, 0x021c5367, 0x00232b12}}},
+ {X: Field{[10]uint32{0x02a40970, 0x00d4e508, 0x012e849f, 0x0217efd4, 0x00e1eed4, 0x01e7e68a, 0x00e54132, 0x01b4859e, 0x00b5454c, 0x001ae75a}}, Y: Field{[10]uint32{0x02365482, 0x02c6c9eb, 0x01472fa4, 0x01952c17, 0x03907f85, 0x02a223ad, 0x01e6969d, 0x038df6be, 0x004498eb, 0x002d8fd4}}},
+ {X: Field{[10]uint32{0x035ed3e6, 0x037449c2, 0x01d05868, 0x01f48c59, 0x0232c3c2, 0x03edfb24, 0x03dc948a, 0x0204b0b9, 0x008c08f0, 0x0007e883}}, Y: Field{[10]uint32{0x01838076, 0x0137ad8a, 0x020cfed8, 0x015ca029, 0x026cd168, 0x0308a7fa, 0x03686062, 0x00d909f7, 0x034d8213, 0x0031495f}}},
+ {X: Field{[10]uint32{0x036acc86, 0x0229a86f, 0x02263e8e, 0x00e2f941, 0x02af15bb, 0x00763d4d, 0x031df6b3, 0x02d37873, 0x00927dae, 0x001cea0f}}, Y: Field{[10]uint32{0x02eb8adc, 0x01eb5aa0, 0x000ab2fb, 0x02af937d, 0x0126a21d, 0x02326e24, 0x034e24de, 0x030c2e0a, 0x03e40cd6, 0x002822b2}}},
+ {X: Field{[10]uint32{0x0188bdbe, 0x01d87b9d, 0x015a48e1, 0x033bf4a9, 0x0285ba90, 0x03389978, 0x0278cf93, 0x00b7bb28, 0x0264924e, 0x000ea655}}, Y: Field{[10]uint32{0x00cbbb0e, 0x02351711, 0x00f39dd4, 0x02f40edf, 0x02d011a1, 0x0072bc63, 0x0065d939, 0x00cf4d49, 0x02dc99eb, 0x003cc886}}},
+ {X: Field{[10]uint32{0x01429c26, 0x01fc9a4f, 0x005965e0, 0x03ead3e2, 0x025ca516, 0x030583a1, 0x005cd9b9, 0x03d73075, 0x0219b032, 0x001f197b}}, Y: Field{[10]uint32{0x023704c5, 0x015ca900, 0x02287ff9, 0x0178dd0f, 0x018cc54a, 0x02f88893, 0x01076ae4, 0x03c9df4c, 0x02f90e3d, 0x0011f1fe}}},
+ {X: Field{[10]uint32{0x00d397dc, 0x0002c8b9, 0x00fb03dc, 0x0365976e, 0x032f05e6, 0x0332e340, 0x0153118d, 0x036ef6f6, 0x014c6750, 0x0030041a}}, Y: Field{[10]uint32{0x008e730c, 0x020ee01b, 0x01be2395, 0x00054b50, 0x025a5e61, 0x0065bc4c, 0x01fde10a, 0x01510567, 0x00c6dd6c, 0x000ed245}}},
+ {X: Field{[10]uint32{0x02519d57, 0x005f3d98, 0x03ae75e3, 0x00b29c8f, 0x01a33dcb, 0x0084d84c, 0x015a12b9, 0x022db5be, 0x008ed28d, 0x00389561}}, Y: Field{[10]uint32{0x03cfb7b6, 0x0364990f, 0x02fe4d36, 0x03007841, 0x00377c9a, 0x02060ec9, 0x0207dcd1, 0x036b5e60, 0x01aa1757, 0x0018bdf5}}},
+ {X: Field{[10]uint32{0x00236ed9, 0x0295b40b, 0x03c45bd1, 0x029ddbbf, 0x01a9669d, 0x00778c34, 0x0078dfbf, 0x00a648ea, 0x00e57323, 0x003cc506}}, Y: Field{[10]uint32{0x0256b84c, 0x008d2e2b, 0x01552af7, 0x03d87e22, 0x0316a1ef, 0x00c2d6bb, 0x0234c8a6, 0x03651957, 0x0084dce0, 0x00398aae}}},
+ {X: Field{[10]uint32{0x01703181, 0x004b0aef, 0x03770615, 0x026ba319, 0x021f3f3c, 0x01f079aa, 0x01c290d4, 0x00c4eeb2, 0x0145b876, 0x00026b6e}}, Y: Field{[10]uint32{0x030908fd, 0x01d347a7, 0x00f8650f, 0x003b7c3c, 0x0251531d, 0x03777cac, 0x020b82be, 0x00985920, 0x0142b463, 0x002c87f0}}},
+ {X: Field{[10]uint32{0x008da322, 0x01b0f160, 0x03f36172, 0x01182e0e, 0x03ca04b8, 0x00d6ce42, 0x01132e9b, 0x018e8615, 0x032b9d4a, 0x00311a0a}}, Y: Field{[10]uint32{0x035f6972, 0x02d740f4, 0x025a26ee, 0x016a0d73, 0x0014e907, 0x00f8dbc1, 0x02597622, 0x02e8c86d, 0x006a7100, 0x003c96a4}}},
+ {X: Field{[10]uint32{0x0280d63a, 0x028419ba, 0x0003da99, 0x03ceb810, 0x02559159, 0x025f1d97, 0x027c4055, 0x02711e05, 0x016d60f4, 0x003aec3f}}, Y: Field{[10]uint32{0x02a0b0f7, 0x0321a39a, 0x00350afd, 0x019dc1bd, 0x00c4202f, 0x022d0c72, 0x022ffcf2, 0x03218876, 0x0160667a, 0x003acdf4}}},
+ {X: Field{[10]uint32{0x01a5597a, 0x006f2f02, 0x0334e355, 0x026257d5, 0x0165ffb0, 0x03fd8dfc, 0x0267cbbb, 0x02f2d000, 0x012070d8, 0x001e3c4b}}, Y: Field{[10]uint32{0x03bb78f8, 0x005c240a, 0x037407de, 0x038ce65c, 0x037419a3, 0x021f6672, 0x03574d2c, 0x005d586e, 0x02b33662, 0x0010a5da}}},
+ {X: Field{[10]uint32{0x01919f69, 0x022befa1, 0x01eee579, 0x02ef9d9e, 0x0235ae41, 0x02525886, 0x039fbc2b, 0x012d8e60, 0x004af621, 0x0000f7ff}}, Y: Field{[10]uint32{0x03f2c456, 0x03fab615, 0x020e9036, 0x03fa40a1, 0x02a13480, 0x02765d40, 0x01d15a42, 0x0086b88b, 0x036b1b40, 0x001605d2}}},
+ {X: Field{[10]uint32{0x015a15cc, 0x0175d16d, 0x028bf55d, 0x0034c914, 0x00bd16bf, 0x036ddbae, 0x015198f4, 0x010b2884, 0x0393a4ed, 0x00104324}}, Y: Field{[10]uint32{0x02d58306, 0x03ea8297, 0x003d7059, 0x0069cc7f, 0x0283c298, 0x0328945d, 0x00c2cf9b, 0x02e26f05, 0x00b1df71, 0x001013fd}}},
+ {X: Field{[10]uint32{0x024e3649, 0x01b1256f, 0x031966c1, 0x01a599e5, 0x00b93e65, 0x03f9a5df, 0x03366326, 0x02c1e4f7, 0x015687d6, 0x001ad354}}, Y: Field{[10]uint32{0x0169f4e3, 0x0304697a, 0x01c815d6, 0x002a5544, 0x001a2556, 0x036c5d83, 0x02a03152, 0x0081fd74, 0x0094bbac, 0x00191e92}}},
+ {X: Field{[10]uint32{0x01f34247, 0x01c716e9, 0x01fd94a7, 0x0091af93, 0x016f0d87, 0x00017670, 0x03ccfd85, 0x01661bc2, 0x017ae87d, 0x00163feb}}, Y: Field{[10]uint32{0x00069817, 0x0173c03c, 0x02ce5e50, 0x01afb8da, 0x03b33fba, 0x03218a70, 0x00d6f93e, 0x0057ebd4, 0x02d8f9ab, 0x002b62de}}},
+ {X: Field{[10]uint32{0x02a757fd, 0x003ab3e9, 0x02c72b31, 0x01a5ca24, 0x00adb956, 0x00fa20ed, 0x03277382, 0x03eb782b, 0x001d1835, 0x0039b4f9}}, Y: Field{[10]uint32{0x01359c15, 0x0283bc08, 0x02e61045, 0x02aed09e, 0x03d6395c, 0x036f6e3b, 0x0303e425, 0x03b39f3b, 0x008cb580, 0x00284db2}}},
+ {X: Field{[10]uint32{0x01953b35, 0x02ba51c3, 0x032a5573, 0x010828b4, 0x023b561b, 0x006f0409, 0x01044792, 0x0280c2b0, 0x022b43aa, 0x003f11f1}}, Y: Field{[10]uint32{0x006224f0, 0x00c18009, 0x03b29502, 0x00982ce4, 0x01627236, 0x00287d44, 0x02b58104, 0x01e019cc, 0x011d65fc, 0x00174c63}}},
+ {X: Field{[10]uint32{0x03db251b, 0x02b2df1b, 0x031ca36b, 0x028a4cf2, 0x02d0a1b8, 0x00d54e19, 0x0278da90, 0x00deec23, 0x0067cbcb, 0x0033ab8a}}, Y: Field{[10]uint32{0x02bb3dfd, 0x00b47742, 0x00c16d4c, 0x00a4e862, 0x03956cc6, 0x010dc9ed, 0x0017b373, 0x02aa55e5, 0x007ec163, 0x00122fcb}}},
+ {X: Field{[10]uint32{0x03efeab0, 0x02090f86, 0x02d78daa, 0x01d3225c, 0x039195fb, 0x0145b621, 0x03408d82, 0x00d6d708, 0x0378c847, 0x002aec48}}, Y: Field{[10]uint32{0x0366698e, 0x01646ccf, 0x01a02abb, 0x00d99c10, 0x01ce901c, 0x032295b6, 0x010be913, 0x02919767, 0x024b0da5, 0x001682fd}}},
+ {X: Field{[10]uint32{0x0159eeaf, 0x03a9c00c, 0x0024f274, 0x03a50e92, 0x021a576c, 0x038458c5, 0x005302b0, 0x031f2486, 0x02398330, 0x0035de07}}, Y: Field{[10]uint32{0x0106651a, 0x01192bc3, 0x03310fbb, 0x02665bdb, 0x01261aed, 0x006f8f5f, 0x027398dd, 0x03171cfb, 0x00324e07, 0x0018d069}}},
+ {X: Field{[10]uint32{0x024c760c, 0x02dda11f, 0x01a6dbe5, 0x00cf7f50, 0x016f3ad1, 0x00a8877c, 0x0171646d, 0x008115cb, 0x01cd46ec, 0x0029a463}}, Y: Field{[10]uint32{0x0132fa9c, 0x015b9f42, 0x034e51f0, 0x03ecbd98, 0x001d6c7c, 0x01484e5f, 0x030e4b53, 0x01263669, 0x02ba378d, 0x00303946}}},
+ {X: Field{[10]uint32{0x03d1a204, 0x001132a0, 0x027706ef, 0x03809234, 0x027785e2, 0x017f65c1, 0x02b340a6, 0x037980e4, 0x02e4fbb5, 0x00104e93}}, Y: Field{[10]uint32{0x023dd197, 0x03c5cbe2, 0x027c343a, 0x01d1476c, 0x016595a6, 0x006c23f4, 0x02bc668d, 0x023cd0ef, 0x0106c18a, 0x00280d89}}},
+ {X: Field{[10]uint32{0x0204001c, 0x00560717, 0x011a8968, 0x01988dcc, 0x0287fd87, 0x03ef4449, 0x004aa082, 0x002483db, 0x0024de8b, 0x003869ef}}, Y: Field{[10]uint32{0x026bed16, 0x02ac4006, 0x0249b29b, 0x02c7bea3, 0x013a3d90, 0x00695719, 0x01aeea26, 0x021cf452, 0x01fdd0a2, 0x000f8eea}}},
+ {X: Field{[10]uint32{0x01333a75, 0x0283f0f7, 0x0142d8a9, 0x026c5e56, 0x01ab1dde, 0x028cdf81, 0x02e077f8, 0x033312d6, 0x02a0a147, 0x003fe4a4}}, Y: Field{[10]uint32{0x0223a166, 0x03d6de1e, 0x007a43b6, 0x00ae0c17, 0x02b555ea, 0x016b577f, 0x014b4122, 0x00d18dd9, 0x027c5f7a, 0x003943c0}}},
+ {X: Field{[10]uint32{0x00cb9c0c, 0x000e7513, 0x0140d900, 0x03186600, 0x03afe849, 0x001170b4, 0x007a36b0, 0x02774e77, 0x0223437c, 0x003ab959}}, Y: Field{[10]uint32{0x0132e043, 0x01a25d37, 0x037be39f, 0x0100dcb5, 0x0055e62e, 0x00bf9f9e, 0x02b5a9b2, 0x01d0db72, 0x01e99284, 0x003c6e32}}},
+ {X: Field{[10]uint32{0x00bd5282, 0x000b2d55, 0x012273d0, 0x0012f322, 0x017f9c60, 0x01230e79, 0x02da0f30, 0x028f7f87, 0x00be3467, 0x001f7483}}, Y: Field{[10]uint32{0x001485d0, 0x01a9a25f, 0x014c64eb, 0x020a377f, 0x02ee9225, 0x005dca91, 0x034c3f83, 0x034b5533, 0x0323f035, 0x003b134b}}},
+ {X: Field{[10]uint32{0x02a877eb, 0x00b68fc4, 0x03fc73a0, 0x03af6c36, 0x03e4e245, 0x00ef68f0, 0x03b88703, 0x004a4551, 0x01cc5acf, 0x000d6604}}, Y: Field{[10]uint32{0x0108a792, 0x02b3663a, 0x03a59bb6, 0x02f8ada0, 0x037702d1, 0x00470e89, 0x03f916f5, 0x028f781b, 0x00878b97, 0x003b4bd4}}},
+ {X: Field{[10]uint32{0x01a71c24, 0x00440b92, 0x005a2c03, 0x03282f18, 0x035a6c76, 0x00689346, 0x02d57ea0, 0x0329393a, 0x009cf2bc, 0x003eccfa}}, Y: Field{[10]uint32{0x031c9f45, 0x00a1874b, 0x0180e019, 0x010309ba, 0x03d7fca9, 0x00aa49cb, 0x035b9584, 0x009c15ea, 0x02f5ca60, 0x0031d780}}},
+ {X: Field{[10]uint32{0x01f687aa, 0x03aed5b9, 0x036069d1, 0x003bca4e, 0x01b7b297, 0x0016944a, 0x034f836b, 0x01d28054, 0x033e5eed, 0x00028734}}, Y: Field{[10]uint32{0x02c4a6b0, 0x01e34207, 0x01abcc99, 0x01ea25a8, 0x01bdefc3, 0x0390e03a, 0x02b60cc1, 0x030d14ec, 0x02b90ccf, 0x003e4346}}},
+ {X: Field{[10]uint32{0x00213614, 0x014d4131, 0x00999b85, 0x027876cc, 0x025d9f16, 0x03b62b24, 0x03383cfc, 0x00edeafe, 0x02b90364, 0x001185a5}}, Y: Field{[10]uint32{0x0033bc72, 0x0035668c, 0x018d60de, 0x0339a566, 0x03ee91c4, 0x02bafff4, 0x0340a859, 0x003e8323, 0x00775f30, 0x0019d3d7}}},
+ {X: Field{[10]uint32{0x014ab025, 0x00356f78, 0x01727f39, 0x03c89d1c, 0x021fd5cd, 0x00fdfa2a, 0x00885ae9, 0x027daf33, 0x02221b58, 0x001b1aaa}}, Y: Field{[10]uint32{0x02077538, 0x034b2eea, 0x0015c9f8, 0x005e2329, 0x02aeb844, 0x02d43e9d, 0x0164483f, 0x02e4346b, 0x020340e1, 0x0029df17}}},
+ {X: Field{[10]uint32{0x0261c38b, 0x013f35d3, 0x00268387, 0x0069cab3, 0x01792eff, 0x039ca79b, 0x032c7ee6, 0x00cc4340, 0x0391927f, 0x00324634}}, Y: Field{[10]uint32{0x000dfb5b, 0x010f201e, 0x03965742, 0x01c9b89f, 0x00fce24a, 0x016db2d6, 0x021bed0e, 0x0123e3b6, 0x006c3460, 0x00163f5d}}},
+ {X: Field{[10]uint32{0x01ea5918, 0x03b1625b, 0x022c2142, 0x03c0cfef, 0x019240c3, 0x004f1253, 0x02c26542, 0x028fd792, 0x02161ca0, 0x001219e7}}, Y: Field{[10]uint32{0x021d1a41, 0x0347c78f, 0x004a9a30, 0x039e73c8, 0x03b2a19f, 0x019e1038, 0x03a29667, 0x02bf8fa4, 0x03fe300c, 0x00155be4}}},
+ {X: Field{[10]uint32{0x02e7b858, 0x01a28c31, 0x02584699, 0x0166b11a, 0x025e9456, 0x02ab0216, 0x02d6eede, 0x0191029c, 0x01a9e46b, 0x0031a301}}, Y: Field{[10]uint32{0x01de450d, 0x00991805, 0x032b61b1, 0x01a934af, 0x03c76874, 0x000da845, 0x03d64a1d, 0x03fe02f8, 0x01dc35d4, 0x002e2d2d}}},
+ {X: Field{[10]uint32{0x01444e6a, 0x00e1d5e7, 0x02dc9f05, 0x038dbcc9, 0x0121e3df, 0x01b151a6, 0x0176dc4b, 0x01227e3e, 0x03106358, 0x00344cfb}}, Y: Field{[10]uint32{0x02f968cb, 0x00f140ae, 0x005becbf, 0x03af8cad, 0x02327ec3, 0x03f59a9b, 0x02b0f57a, 0x0034b09c, 0x03c4db69, 0x000b19aa}}},
+ {X: Field{[10]uint32{0x01f976ae, 0x02b416cf, 0x0119392d, 0x01828807, 0x0261ca0a, 0x0229f8b6, 0x00766dc4, 0x0277aac4, 0x03598d75, 0x0014d513}}, Y: Field{[10]uint32{0x0069cd47, 0x010aff8a, 0x017e879a, 0x00454df8, 0x030993d7, 0x028666b5, 0x004e3f03, 0x01ebbc08, 0x005e61cb, 0x00112688}}},
+ {X: Field{[10]uint32{0x03b8b331, 0x00d2b2e0, 0x00a622fe, 0x0177b8dd, 0x009254c6, 0x012dadf0, 0x02263851, 0x0144cce7, 0x00740fda, 0x000c4228}}, Y: Field{[10]uint32{0x028b6243, 0x00c04c89, 0x0115b5d9, 0x0347d678, 0x00d6fc05, 0x030bc891, 0x01a473da, 0x00ffaa2c, 0x010d5426, 0x0010bb72}}},
+ {X: Field{[10]uint32{0x00b4b23c, 0x0336329f, 0x03962154, 0x0301ac8b, 0x012ee58a, 0x03ad5618, 0x0295099a, 0x00701367, 0x000d052c, 0x000599b1}}, Y: Field{[10]uint32{0x03a82fb9, 0x01112c64, 0x0284fb6c, 0x011f4807, 0x00abafc2, 0x001d4a55, 0x0355923e, 0x0198e2aa, 0x0341ae04, 0x0014196e}}},
+ {X: Field{[10]uint32{0x0247722e, 0x01c915fb, 0x02ad53a5, 0x0242ef57, 0x02ed80fa, 0x01dacb60, 0x001290df, 0x039aa3c0, 0x03ebd3ee, 0x00325b41}}, Y: Field{[10]uint32{0x0220baf3, 0x0370b31f, 0x032c8d00, 0x0391e290, 0x0113ba06, 0x0262dd27, 0x0016af17, 0x02dfa68d, 0x0004447f, 0x0034f5a7}}},
+ {X: Field{[10]uint32{0x0181b49d, 0x02136447, 0x03479fce, 0x02f5ecb0, 0x00647fa7, 0x0339d50b, 0x0369a9e8, 0x016c15e1, 0x0039b11b, 0x0002a7ff}}, Y: Field{[10]uint32{0x00bcbee7, 0x0348489a, 0x03747375, 0x0124e394, 0x0280a644, 0x016101c4, 0x00894dc2, 0x00a3dfa6, 0x024882e9, 0x002fb084}}},
+ {X: Field{[10]uint32{0x03af0632, 0x0317eefd, 0x00f2737f, 0x01fc6980, 0x03e82578, 0x024c83f4, 0x015d3f52, 0x024e0239, 0x028ccd4c, 0x0014b284}}, Y: Field{[10]uint32{0x0135f7c4, 0x010b378c, 0x02ec370f, 0x024e0d9d, 0x0137ffa4, 0x03676fee, 0x02bab014, 0x0232ded3, 0x028095a9, 0x00211ba2}}},
+ {X: Field{[10]uint32{0x01407c20, 0x03e8d3aa, 0x039ae8e0, 0x00948ca6, 0x00006985, 0x0127df25, 0x00abc41e, 0x02649dee, 0x02c177fd, 0x003fe4aa}}, Y: Field{[10]uint32{0x03fdcfb5, 0x01e7d163, 0x03331a33, 0x024d0a91, 0x03dafd9a, 0x01c8c0dc, 0x03bf2a9b, 0x0149cfae, 0x00dd5aaf, 0x002bc363}}},
+ {X: Field{[10]uint32{0x03991e0c, 0x007406c9, 0x03f09a54, 0x02c75ca7, 0x025fb653, 0x005340be, 0x0163c973, 0x0028f0e0, 0x033ed3c1, 0x0029a4a9}}, Y: Field{[10]uint32{0x0068b905, 0x026f9a79, 0x03809cff, 0x0126694d, 0x02aa05c9, 0x02e09056, 0x0063d006, 0x034fa036, 0x015a3e5b, 0x0001c8bd}}},
+ {X: Field{[10]uint32{0x0120aefd, 0x031ffb50, 0x024e2e2f, 0x0298c573, 0x006b813b, 0x03263520, 0x02fc4cd2, 0x026a4f8c, 0x003f7a62, 0x00367967}}, Y: Field{[10]uint32{0x030214bb, 0x023853eb, 0x00d30eb0, 0x00e44eaa, 0x013234be, 0x002691ff, 0x01bf6589, 0x00c4653d, 0x01942307, 0x00093389}}},
+ {X: Field{[10]uint32{0x00a0f6ff, 0x02394d01, 0x0358714b, 0x0169816a, 0x034dde8d, 0x02af3c16, 0x0191ef79, 0x02c42592, 0x030f7771, 0x001d3949}}, Y: Field{[10]uint32{0x03b1670f, 0x02c1186c, 0x0088714b, 0x0199a455, 0x0371ced0, 0x00d5ac78, 0x03a285f1, 0x00fc25a1, 0x01a3a4a8, 0x000ab618}}},
+ {X: Field{[10]uint32{0x01d4420c, 0x0007d64c, 0x03f587a2, 0x0292161f, 0x02744668, 0x0255f0e8, 0x02856157, 0x03df9d86, 0x02301c43, 0x002e45a4}}, Y: Field{[10]uint32{0x0019536f, 0x007dd396, 0x03e5bebe, 0x008fd6c8, 0x03659ea4, 0x01945696, 0x01818e0c, 0x020a0133, 0x025bc126, 0x002f4d81}}},
+ {X: Field{[10]uint32{0x024d51ee, 0x00e7640d, 0x03cd8792, 0x0325654e, 0x02cd01fd, 0x0016dfec, 0x02d72115, 0x01a36a5c, 0x02538645, 0x000dfebc}}, Y: Field{[10]uint32{0x03c15f85, 0x0127ab4e, 0x02823657, 0x008dbdef, 0x01d8c125, 0x028ef258, 0x02ea7360, 0x02cf9f9a, 0x02ce749d, 0x002da6b8}}},
+ {X: Field{[10]uint32{0x020cf8d2, 0x0021eee8, 0x0214b43b, 0x02630661, 0x011c379f, 0x00373419, 0x0082477f, 0x004e2cd2, 0x014c4a1c, 0x00386504}}, Y: Field{[10]uint32{0x0098a93b, 0x00dd62ba, 0x00d6789e, 0x034f5c75, 0x00889f2a, 0x01452a66, 0x0182cf06, 0x0388b8ec, 0x034bb90a, 0x001e8ebe}}},
+ {X: Field{[10]uint32{0x0217ddaa, 0x0150de7e, 0x0333cca0, 0x03bc245c, 0x011c8b13, 0x02056234, 0x008e4b3c, 0x02d145ce, 0x03010d3f, 0x000b38b6}}, Y: Field{[10]uint32{0x027bbbc0, 0x00c35dcd, 0x00922e2c, 0x02ce0043, 0x0074285c, 0x0346955a, 0x021529ae, 0x01daa617, 0x029daf0e, 0x00248cb6}}},
+ {X: Field{[10]uint32{0x016f051f, 0x0063e7cf, 0x01f49986, 0x01b9658d, 0x000bd66c, 0x03fa9da2, 0x00e2e821, 0x01c114f7, 0x00484bdb, 0x0030a4bb}}, Y: Field{[10]uint32{0x03b57d6d, 0x0067b225, 0x008872b1, 0x00d849bd, 0x0312b777, 0x03454c91, 0x00af49bf, 0x039a7134, 0x00f06b81, 0x0008429d}}},
+ {X: Field{[10]uint32{0x01acfeee, 0x00c80da9, 0x002ad3e1, 0x020f5ded, 0x020933db, 0x0360eb4f, 0x03b423cc, 0x022bbda5, 0x01c09761, 0x00056f32}}, Y: Field{[10]uint32{0x008a7a33, 0x00ea01ae, 0x0211c1a8, 0x02a403a5, 0x01a1bb98, 0x01244b28, 0x033c4901, 0x025bf6fe, 0x02f11bb9, 0x003a7f1f}}},
+ {X: Field{[10]uint32{0x021e7785, 0x0132c91b, 0x03113fd2, 0x031a6756, 0x00848639, 0x017cb4a6, 0x03e45fe5, 0x00ef5e5e, 0x00af50f1, 0x00118467}}, Y: Field{[10]uint32{0x0042ea3b, 0x009ea4c2, 0x01215b13, 0x00056bac, 0x00ba3015, 0x03be4cad, 0x022cf8f9, 0x01bae5dd, 0x0391f4c5, 0x001a880f}}},
+ {X: Field{[10]uint32{0x02f9ecf4, 0x037e216d, 0x03a649d9, 0x025179ac, 0x01cf1410, 0x03687e7f, 0x0149a3d2, 0x03c60aa5, 0x03943e4d, 0x003ce85d}}, Y: Field{[10]uint32{0x02cf7e8f, 0x033b041b, 0x02115c80, 0x03ff20bb, 0x00444a1d, 0x0167e0ca, 0x02b66198, 0x02b4e7f0, 0x03cc5e82, 0x002cd3ad}}},
+ {X: Field{[10]uint32{0x03913fe4, 0x001d71ad, 0x03d67536, 0x03e940a5, 0x01fa98bd, 0x016e6831, 0x01cbd45f, 0x03d1a36e, 0x027484a7, 0x0033be42}}, Y: Field{[10]uint32{0x02301815, 0x0290289a, 0x0173730f, 0x01579715, 0x01fb79a5, 0x00941e1d, 0x03029465, 0x03ef0a19, 0x02ad2a43, 0x0034243b}}},
+ {X: Field{[10]uint32{0x035702ce, 0x031bb4a8, 0x00b06833, 0x02dae418, 0x0126c528, 0x02fe9598, 0x00b88b24, 0x02a4e3b1, 0x0214987a, 0x00087628}}, Y: Field{[10]uint32{0x004579e4, 0x019bc9b6, 0x03c8e94b, 0x03a69407, 0x00f736df, 0x00228a0c, 0x028167c0, 0x0288ef18, 0x000d5b65, 0x0030d50d}}},
+ {X: Field{[10]uint32{0x021ca53e, 0x00e5460e, 0x0361d5d1, 0x03e91b81, 0x00e19196, 0x020b6f49, 0x0204f6cf, 0x02f9298a, 0x03279049, 0x001ac63f}}, Y: Field{[10]uint32{0x01ffa3b7, 0x033f6cb1, 0x038d86ca, 0x035c948b, 0x026343f0, 0x01a63e8c, 0x001e9b26, 0x004d9e3e, 0x030c52c0, 0x003be01b}}},
+ {X: Field{[10]uint32{0x03466e6f, 0x02b8c772, 0x020ee850, 0x00db0206, 0x00bab07c, 0x028f99cf, 0x0332afbe, 0x03301354, 0x00f20452, 0x001f63bd}}, Y: Field{[10]uint32{0x00fa0c0d, 0x0298910b, 0x017bc137, 0x011fc644, 0x01d224da, 0x03c43db2, 0x03367d0d, 0x033bbc9c, 0x026755a2, 0x000c9185}}},
+ {X: Field{[10]uint32{0x00d12cab, 0x012d2208, 0x01afd699, 0x0182c74c, 0x02034135, 0x016b1d28, 0x03b63276, 0x015927d6, 0x002155d1, 0x0031f786}}, Y: Field{[10]uint32{0x02eaa23a, 0x014b39e5, 0x02844482, 0x00d8475f, 0x007fbe01, 0x030c9036, 0x03b86595, 0x00b03f24, 0x0056c5fb, 0x00366596}}},
+ {X: Field{[10]uint32{0x0381b294, 0x0224ef50, 0x005c600f, 0x0025ca65, 0x03eddeff, 0x017e93ac, 0x01eb6ee4, 0x00b0ec62, 0x033a915e, 0x00133b2c}}, Y: Field{[10]uint32{0x02a3aeb1, 0x02ef6387, 0x036ffd1b, 0x0384cc42, 0x033534d6, 0x02dc0335, 0x02250357, 0x0072e111, 0x0112b5e6, 0x0033c5fc}}},
+ {X: Field{[10]uint32{0x02255749, 0x02a99619, 0x00c10204, 0x00aca172, 0x001c9bc7, 0x033c03f9, 0x003ab5d4, 0x0181aed3, 0x0064bfce, 0x00209b3d}}, Y: Field{[10]uint32{0x036849c4, 0x02388d5e, 0x011cbb87, 0x0192c600, 0x036d7ca5, 0x00542a8b, 0x016fabfb, 0x00a16d45, 0x0031527d, 0x001ae8ed}}},
+ {X: Field{[10]uint32{0x008f8f62, 0x0061f9d9, 0x0028e0b2, 0x002360ba, 0x01de51d6, 0x035bf043, 0x012ba922, 0x03491546, 0x02c6f497, 0x003204b6}}, Y: Field{[10]uint32{0x008b317e, 0x01ad2aec, 0x028f61ba, 0x0361ddcf, 0x002be94d, 0x03ebd4ff, 0x026ee1ae, 0x001a0204, 0x00c77363, 0x000340ba}}},
+ {X: Field{[10]uint32{0x00ff8851, 0x03574ff8, 0x00d1e3c6, 0x01adb8e3, 0x03aa4592, 0x027c53ae, 0x01eaa8bc, 0x01fd1f91, 0x010ebd96, 0x00149a55}}, Y: Field{[10]uint32{0x01a7455b, 0x021987e6, 0x0295a38b, 0x0340c21a, 0x01b45963, 0x0346cff4, 0x03422ffc, 0x03b3b510, 0x012026e3, 0x0028565f}}},
+ {X: Field{[10]uint32{0x004d7676, 0x02bfb9fa, 0x01e9baf1, 0x01b55294, 0x00c7c2ae, 0x037102ea, 0x002721fc, 0x014b3ef1, 0x032980e6, 0x001ff3f2}}, Y: Field{[10]uint32{0x002cfcdd, 0x037afe22, 0x00ce9f95, 0x03d59aa7, 0x02a4d044, 0x0323c675, 0x02bcbaaa, 0x0238d3b1, 0x01904a40, 0x002afdcb}}},
+ {X: Field{[10]uint32{0x00a9f451, 0x03712d99, 0x0057c079, 0x03ae2eaa, 0x033d5f25, 0x00ca9a81, 0x00e18a21, 0x03841212, 0x02a04597, 0x00217c06}}, Y: Field{[10]uint32{0x01f081af, 0x013b11f9, 0x0013204b, 0x03072d38, 0x025398ce, 0x016f3d15, 0x03b71ab3, 0x02061dee, 0x00eb8a05, 0x003dd18f}}},
+ {X: Field{[10]uint32{0x02885628, 0x03e37fe4, 0x035fda01, 0x02f08900, 0x00dc1a5f, 0x003fafbb, 0x03fee1d1, 0x02183eb0, 0x021a7dcd, 0x000256d2}}, Y: Field{[10]uint32{0x02f7f772, 0x0101bb2f, 0x00d97f70, 0x03b48dce, 0x021f80bc, 0x0131bb8f, 0x029dfa69, 0x01119fbe, 0x039c5bd9, 0x000a8337}}},
+ {X: Field{[10]uint32{0x036c51c5, 0x0243b35f, 0x009f049b, 0x02b3b11c, 0x008cd95c, 0x00ddd4f6, 0x014b38ce, 0x03742ec9, 0x00a624dd, 0x00013d89}}, Y: Field{[10]uint32{0x037a4fa5, 0x039612f1, 0x02bd070c, 0x03ac6e5d, 0x00668de4, 0x0333f515, 0x0220dcd8, 0x03b3640a, 0x028302ef, 0x0021d2a6}}},
+ {X: Field{[10]uint32{0x0106b48d, 0x03759b5d, 0x00043437, 0x0215a635, 0x02a2914d, 0x0117a71b, 0x0040f585, 0x014def39, 0x0112e18b, 0x000e781a}}, Y: Field{[10]uint32{0x02f352e0, 0x01e859c1, 0x03ef18db, 0x01b51a56, 0x0200f06c, 0x004a2a84, 0x0080153c, 0x00c25aaf, 0x020a16e9, 0x003bfc83}}},
+ {X: Field{[10]uint32{0x00f1ace9, 0x005ed19e, 0x013107a7, 0x02d97bee, 0x014c1d41, 0x032b6e5e, 0x03f4f590, 0x01e0c5d3, 0x013266d6, 0x0014bb70}}, Y: Field{[10]uint32{0x00d402d1, 0x01aef071, 0x0127c3af, 0x01563d1a, 0x03cb07cf, 0x01a135f4, 0x02c0bf49, 0x0078ff8c, 0x0202c678, 0x00395a78}}},
+ {X: Field{[10]uint32{0x0328465f, 0x0290fcd0, 0x00d3a1df, 0x0235bcaa, 0x01e4e945, 0x02457f23, 0x0287f07c, 0x02041cf8, 0x0348964b, 0x0038dd92}}, Y: Field{[10]uint32{0x00fdb023, 0x01723cd3, 0x01b6c3ad, 0x02a94e9e, 0x005b7261, 0x03435d5d, 0x01b460f6, 0x0382e8d4, 0x024bfb13, 0x002f78a9}}},
+ {X: Field{[10]uint32{0x00f513e6, 0x009fbfef, 0x00ebe756, 0x02b6710b, 0x03e1c81a, 0x03e05cca, 0x0038768e, 0x01a638fb, 0x01077c77, 0x00203bf9}}, Y: Field{[10]uint32{0x0388b709, 0x03c41280, 0x00bc3483, 0x005d6bb5, 0x02a9df2e, 0x014f4f67, 0x01e60599, 0x0247a5a5, 0x031bc543, 0x001a4319}}},
+ {X: Field{[10]uint32{0x0108b641, 0x00fdc3f2, 0x02728517, 0x01fa4fe3, 0x0319b0bf, 0x01f348fb, 0x032bcac8, 0x03125e8b, 0x03d50ebc, 0x001212b1}}, Y: Field{[10]uint32{0x00ef371e, 0x013a97a4, 0x02eb61b4, 0x0254530a, 0x015bc8c9, 0x014fcc9c, 0x02b85516, 0x01c8da7c, 0x00e6f3b1, 0x0007655c}}},
+ {X: Field{[10]uint32{0x03e3d124, 0x023ed7dd, 0x03f6536b, 0x0098e007, 0x02adf26c, 0x0105737e, 0x03ca53e4, 0x02f76137, 0x023fbf1f, 0x00272627}}, Y: Field{[10]uint32{0x00212a38, 0x02aac322, 0x02dd4c79, 0x010b5fc5, 0x002993c4, 0x023fb8eb, 0x00b3b802, 0x0058ee59, 0x021f5755, 0x0028d2b9}}},
+ {X: Field{[10]uint32{0x01a5066b, 0x02315f5d, 0x018e0930, 0x034a5ec3, 0x0032846d, 0x0278dfe0, 0x016570f1, 0x03f9fd91, 0x030f601a, 0x00022e3e}}, Y: Field{[10]uint32{0x0048c9e7, 0x02ca783a, 0x03b3c240, 0x01c89bc0, 0x01d6166c, 0x003f59e8, 0x0232f100, 0x039b26cb, 0x02feffc4, 0x0001e162}}},
+ {X: Field{[10]uint32{0x02e78177, 0x0367581f, 0x000ef451, 0x00e88470, 0x03bce095, 0x00297601, 0x01baa79e, 0x035e6a60, 0x02740ee1, 0x0038df43}}, Y: Field{[10]uint32{0x009f8f9c, 0x008fafec, 0x02e6f4bd, 0x024eaad3, 0x01a07d05, 0x03f9661d, 0x01b5625b, 0x0097d37c, 0x028502ad, 0x0034a284}}},
+ {X: Field{[10]uint32{0x0325c147, 0x02a79c04, 0x00e194b2, 0x03555334, 0x03281052, 0x01d95ec7, 0x0258e754, 0x00da0eb5, 0x037e9a00, 0x00203215}}, Y: Field{[10]uint32{0x024d945c, 0x018d1bd5, 0x03fe432a, 0x0266f3ee, 0x03fe2baf, 0x01ca5cd1, 0x03ba8a0d, 0x028babb1, 0x00cd7ca3, 0x0002cff4}}},
+ {X: Field{[10]uint32{0x02a8c6a1, 0x02ce0ccf, 0x0349adde, 0x0234b414, 0x0150f6ba, 0x01eb806a, 0x02f79026, 0x0087954d, 0x016d0341, 0x0039c117}}, Y: Field{[10]uint32{0x02181fba, 0x0222ae22, 0x019e4e7d, 0x00bfa5d5, 0x0060b37c, 0x00a97749, 0x01571d9c, 0x02537f85, 0x00db3269, 0x001cc1aa}}},
+ {X: Field{[10]uint32{0x012e0d71, 0x025e3219, 0x029804f2, 0x03df2cd1, 0x02d87554, 0x0300e226, 0x03af0b13, 0x011fedac, 0x024b850a, 0x001574b6}}, Y: Field{[10]uint32{0x03e16e7c, 0x01879e77, 0x02780723, 0x01b57311, 0x010189a5, 0x008bbb97, 0x020b7b4f, 0x0343db34, 0x0182c861, 0x001ab03e}}},
+ {X: Field{[10]uint32{0x01a38d2f, 0x00736c2c, 0x019f55bd, 0x00710100, 0x03a1e86d, 0x00540300, 0x03a5ff21, 0x00bdff20, 0x020955a2, 0x0033958b}}, Y: Field{[10]uint32{0x021bb865, 0x01b65ad4, 0x02d314bd, 0x00c9bc73, 0x02474070, 0x03717e0b, 0x030a165e, 0x0311ef1a, 0x004db4aa, 0x00247780}}},
+ {X: Field{[10]uint32{0x0054773b, 0x0164b8de, 0x036fecc7, 0x02e1ae4e, 0x0100cd0e, 0x00c41fc7, 0x011bd645, 0x02bc15fe, 0x021f0596, 0x001d3803}}, Y: Field{[10]uint32{0x00e1d217, 0x03edd276, 0x01374e13, 0x005445e4, 0x016fa9f0, 0x0042851b, 0x0311867b, 0x00a94fac, 0x00a338e5, 0x000472a2}}},
+ {X: Field{[10]uint32{0x0104eb48, 0x0267e788, 0x00530a2e, 0x00e6561a, 0x0368214d, 0x0324bb65, 0x003e400a, 0x03db2476, 0x036bc194, 0x002ba3c2}}, Y: Field{[10]uint32{0x03ce4cf2, 0x0173bb35, 0x02362c85, 0x01cc5191, 0x00d4aa8f, 0x02d5f2fe, 0x0127de9e, 0x02a4c0d8, 0x00420dc0, 0x003a5cff}}},
+ {X: Field{[10]uint32{0x03891ae7, 0x00bf737b, 0x03674158, 0x0089bdda, 0x037854e7, 0x0197ccf4, 0x008e0c05, 0x00d9d784, 0x006c8df8, 0x00102a30}}, Y: Field{[10]uint32{0x007bf7ed, 0x00155762, 0x0224ea10, 0x00260ebd, 0x01b8ff9c, 0x003eaafb, 0x029e0b04, 0x01abf4f4, 0x0050b511, 0x0005ae9e}}},
+ {X: Field{[10]uint32{0x01f83b33, 0x037c6f1b, 0x00e487f6, 0x02c13490, 0x03926795, 0x0187c7ff, 0x02b410f8, 0x03dbea8a, 0x02545c57, 0x00187aa7}}, Y: Field{[10]uint32{0x0279ed15, 0x01c56076, 0x0003c490, 0x019ce2a3, 0x02b9063e, 0x03514a7c, 0x021791f7, 0x005f0dcb, 0x012ae0b2, 0x0031a7b0}}},
+ {X: Field{[10]uint32{0x01d37632, 0x0032d7b0, 0x031cc30a, 0x03b09920, 0x03d73e25, 0x00517f05, 0x01f55f72, 0x02aa93f3, 0x00d4440c, 0x00072227}}, Y: Field{[10]uint32{0x02d72fdf, 0x016f2508, 0x00166ee5, 0x02184558, 0x00574f5b, 0x036d792c, 0x014a2237, 0x0299f1cc, 0x0246131f, 0x000106d4}}},
+ {X: Field{[10]uint32{0x0249525d, 0x0059a863, 0x02abb4ab, 0x001894e4, 0x01c58e0d, 0x02d42fe9, 0x02a99d3a, 0x021f9e60, 0x0090791d, 0x003fca56}}, Y: Field{[10]uint32{0x01454570, 0x02680686, 0x00a58e61, 0x027fbef9, 0x02c37087, 0x02201bef, 0x0249baf8, 0x004d9065, 0x00de1995, 0x00282599}}},
+ {X: Field{[10]uint32{0x00e95f99, 0x02a1d9e1, 0x037857bc, 0x02bb66f7, 0x0174e399, 0x023e2433, 0x00939e5b, 0x007f401f, 0x02bfcfca, 0x0017acba}}, Y: Field{[10]uint32{0x032c9871, 0x03ee3efd, 0x00f63031, 0x0097f844, 0x0001f46f, 0x00589976, 0x01aff120, 0x01e0f080, 0x01701c9a, 0x001310ba}}},
+ {X: Field{[10]uint32{0x02cbaf91, 0x01edad3d, 0x0361fcfc, 0x0136054f, 0x033b17bf, 0x0281c706, 0x03f8ce17, 0x0324ed6c, 0x008cdbcc, 0x0010f954}}, Y: Field{[10]uint32{0x03dfdcfc, 0x001cd0e6, 0x0063815a, 0x01cf6c90, 0x03c853bb, 0x002694c1, 0x01ec388d, 0x029c7942, 0x0378438b, 0x002d7b63}}},
+ {X: Field{[10]uint32{0x01b56f53, 0x0303dd7f, 0x02c995b0, 0x021dfdb8, 0x00eb513f, 0x02bf94cf, 0x0207261c, 0x00837f21, 0x013023cb, 0x003d745a}}, Y: Field{[10]uint32{0x026ece68, 0x03837084, 0x008f492c, 0x0101bacb, 0x002557dd, 0x00f8a597, 0x03c4bf87, 0x020ccbdf, 0x01680152, 0x00394e6c}}},
+ {X: Field{[10]uint32{0x00aba2a1, 0x038303de, 0x01eb6c7f, 0x01bee944, 0x0372313c, 0x0198a8ba, 0x0180a62d, 0x02a46118, 0x02d15dc5, 0x0036e759}}, Y: Field{[10]uint32{0x01517227, 0x02883ca8, 0x030b1f89, 0x02d6070f, 0x003cfb46, 0x0095e15f, 0x02762d92, 0x03716a78, 0x00a361f0, 0x00325b7a}}},
+ {X: Field{[10]uint32{0x028ecdf2, 0x02992e21, 0x01ab6833, 0x00209ee6, 0x0356ffce, 0x02fd44ce, 0x0165bfe7, 0x018ef13d, 0x03d846fd, 0x0039d834}}, Y: Field{[10]uint32{0x02f102ce, 0x00397504, 0x003810e6, 0x0048a172, 0x012c1c1e, 0x01018b80, 0x021cc825, 0x00bad060, 0x028508be, 0x00183b99}}},
+ {X: Field{[10]uint32{0x0033e026, 0x0075e417, 0x00d99135, 0x02c0c769, 0x00e3a956, 0x00b8dc01, 0x02533e71, 0x029eaf48, 0x02990cac, 0x000af6c8}}, Y: Field{[10]uint32{0x02e44731, 0x011c4fed, 0x03f82a78, 0x0218932e, 0x03801932, 0x009f4039, 0x003e877e, 0x0204176b, 0x00dfc273, 0x001919d7}}},
+ {X: Field{[10]uint32{0x0166bee4, 0x021ee6a0, 0x03bbfc3c, 0x00838006, 0x007be48d, 0x03f5b211, 0x00137739, 0x0084d2de, 0x03fd0599, 0x00073382}}, Y: Field{[10]uint32{0x02d37057, 0x0222ef72, 0x034cc427, 0x00fb059b, 0x02b5eeb7, 0x03367a0f, 0x021253c4, 0x03f8c30e, 0x02e51ed7, 0x000b52a3}}},
+ {X: Field{[10]uint32{0x03641075, 0x03e2695d, 0x035bd6eb, 0x0316ed95, 0x01ec8405, 0x031ae319, 0x01b5bd8e, 0x02b9effd, 0x03c37f5d, 0x001b5af8}}, Y: Field{[10]uint32{0x009c2c7f, 0x011b33eb, 0x01b80392, 0x0234d456, 0x0324d193, 0x0313abd2, 0x011507f7, 0x034ef180, 0x001f5c6f, 0x0013f4f3}}},
+ {X: Field{[10]uint32{0x01b22351, 0x001f62ef, 0x0036cc60, 0x00bc50fa, 0x01b3c67f, 0x01d63e87, 0x03fb1ca8, 0x01e075e0, 0x0180d96e, 0x000360b0}}, Y: Field{[10]uint32{0x02d0c7d9, 0x01ee389e, 0x031e151a, 0x03d9e592, 0x0037415a, 0x01290c86, 0x033e9a97, 0x02b6a24e, 0x0269952a, 0x000e00bd}}},
+ {X: Field{[10]uint32{0x01b3cd71, 0x0233860f, 0x02343b22, 0x03ba31cf, 0x00fbf9fc, 0x0151bc6e, 0x01dfed1b, 0x03f4d3e4, 0x02dd7e03, 0x0013b187}}, Y: Field{[10]uint32{0x003ba9a9, 0x021215ac, 0x01cffb19, 0x023eaa50, 0x02db7d94, 0x03a7b0f1, 0x0390340d, 0x038bb22b, 0x0309b5b2, 0x00384665}}},
+ {X: Field{[10]uint32{0x017a034b, 0x01e07a78, 0x01643add, 0x023e39cd, 0x02a8df7a, 0x03ab44fb, 0x00744d7b, 0x02846e95, 0x006973ae, 0x000c6ab5}}, Y: Field{[10]uint32{0x00b37adb, 0x02d9d3e1, 0x02913f13, 0x03e39838, 0x02a94680, 0x033b5d21, 0x028bdf57, 0x03d818fd, 0x03413e49, 0x001919db}}},
+ {X: Field{[10]uint32{0x01173e02, 0x00739353, 0x0131a5eb, 0x02f65f8a, 0x0201f946, 0x01627a98, 0x0115903b, 0x036e3bd9, 0x01892fcc, 0x002a6108}}, Y: Field{[10]uint32{0x01a3908b, 0x01222922, 0x02049abe, 0x01b42959, 0x0307ea26, 0x0335becd, 0x0370e133, 0x035e8e8c, 0x02ac3b2d, 0x00142f9d}}},
+ {X: Field{[10]uint32{0x03bef099, 0x0383b3ad, 0x015e3f8f, 0x0022941a, 0x02fee79b, 0x01dd5033, 0x02cfa092, 0x0010cde9, 0x00f33ec0, 0x00208ad5}}, Y: Field{[10]uint32{0x036bf7f6, 0x01121448, 0x007128d0, 0x00dbf6a3, 0x007405d3, 0x022016fc, 0x003ddced, 0x03d811cd, 0x03c620d3, 0x000e4d88}}},
+ {X: Field{[10]uint32{0x01065e0b, 0x037c9705, 0x02a3d33a, 0x0043a677, 0x0215793d, 0x02ff175f, 0x038de14e, 0x01c00317, 0x0355fe3d, 0x000403da}}, Y: Field{[10]uint32{0x02ecb4c2, 0x0335d293, 0x00e519b2, 0x034373b2, 0x00a352ff, 0x035b0445, 0x01282676, 0x037789f2, 0x00f758c4, 0x00346ed1}}},
+ {X: Field{[10]uint32{0x02142f7f, 0x03a20db5, 0x031bb2d4, 0x01f16b6d, 0x006a5425, 0x00657425, 0x01aa6ecd, 0x03089d20, 0x03186a09, 0x00329760}}, Y: Field{[10]uint32{0x0277b42d, 0x013d3649, 0x0133de01, 0x00c7f1ce, 0x03878d8d, 0x012b815f, 0x03a0c388, 0x01e82bce, 0x007fb974, 0x00362421}}},
+ {X: Field{[10]uint32{0x00bfbf14, 0x03684b89, 0x016cafa5, 0x00fc406d, 0x00e8ffe5, 0x0263fd84, 0x031a352f, 0x034838a4, 0x01f42234, 0x003a4709}}, Y: Field{[10]uint32{0x024dbb86, 0x02d288a5, 0x02b41872, 0x03d450f3, 0x037a26bc, 0x0183a669, 0x01740f6d, 0x0314af1c, 0x01e5441e, 0x002c7b05}}},
+ {X: Field{[10]uint32{0x02e34445, 0x02750b06, 0x0306509e, 0x011cb33d, 0x03acb545, 0x00ba66b9, 0x029b2902, 0x000b6215, 0x00dc3109, 0x0015ea32}}, Y: Field{[10]uint32{0x00ab1fb7, 0x0185878c, 0x00accb9c, 0x00fee308, 0x0250e7cc, 0x01219abb, 0x0292db56, 0x038277d3, 0x01410442, 0x00214891}}},
+ {X: Field{[10]uint32{0x0104500f, 0x00116c1c, 0x007d9581, 0x00769bfa, 0x0355a853, 0x02300adb, 0x01d0d412, 0x0345b6eb, 0x00672502, 0x0008cae3}}, Y: Field{[10]uint32{0x01f93fb9, 0x02903d61, 0x00f399a7, 0x03679863, 0x034f5255, 0x0152524b, 0x03c476f6, 0x02161c89, 0x020e9e7d, 0x000e0442}}},
+ {X: Field{[10]uint32{0x03004fec, 0x0189ff9d, 0x00876187, 0x031c38f7, 0x020750d5, 0x0067df9e, 0x01d48763, 0x01a6cd3d, 0x028ad71f, 0x001f42f9}}, Y: Field{[10]uint32{0x01124633, 0x027bf351, 0x01e67ca0, 0x0060b291, 0x02a12b1d, 0x0296e5c7, 0x02f54028, 0x03cf9875, 0x00507d0a, 0x000f9ca8}}},
+ {X: Field{[10]uint32{0x02f93292, 0x01e8b49e, 0x00d836ba, 0x0312691b, 0x01b70b02, 0x00310d21, 0x01fa4369, 0x0289c725, 0x030b77c2, 0x00137617}}, Y: Field{[10]uint32{0x0011d597, 0x038efd47, 0x0178e8c9, 0x01348206, 0x00f139e6, 0x036b69e8, 0x02b6ff85, 0x01366122, 0x02e5c955, 0x00210d90}}},
+ {X: Field{[10]uint32{0x012e52f8, 0x01938bdc, 0x032149e2, 0x0307add9, 0x023eb2e5, 0x012ea69e, 0x03531a17, 0x008011c2, 0x03f588f0, 0x0014dea4}}, Y: Field{[10]uint32{0x000e161f, 0x00e6d84d, 0x03ebb3f8, 0x03e5e095, 0x0394efa1, 0x006256bc, 0x0225f067, 0x02499823, 0x03a0dc00, 0x002c366c}}},
+ {X: Field{[10]uint32{0x02e48684, 0x00accc67, 0x00ae8b97, 0x02420962, 0x01ab3465, 0x03e0aff4, 0x00e60a46, 0x00795e63, 0x0071325b, 0x0004febd}}, Y: Field{[10]uint32{0x0234f743, 0x0086b79d, 0x00bfa49a, 0x0062116e, 0x02dce7ba, 0x026c8806, 0x02f25857, 0x02d4a788, 0x0384e84e, 0x00299c80}}},
+ {X: Field{[10]uint32{0x03e8acb8, 0x03910173, 0x0206be1b, 0x02088b67, 0x03ca17c4, 0x00277b79, 0x015dbea8, 0x02cd1380, 0x00ed5861, 0x001a4789}}, Y: Field{[10]uint32{0x01c529ab, 0x026ddae4, 0x03f966f4, 0x0250f43c, 0x035ad002, 0x036718d1, 0x0120d909, 0x01ec3f31, 0x02dc0c19, 0x0038d592}}},
+ {X: Field{[10]uint32{0x013d7ea2, 0x0305771f, 0x0373f423, 0x03e2411f, 0x03b754b3, 0x02ccd248, 0x02a394ff, 0x02a14056, 0x0391aaae, 0x000d950e}}, Y: Field{[10]uint32{0x03be5799, 0x0228bc6e, 0x02fd52d6, 0x03f9687e, 0x039dff44, 0x00860252, 0x008c8389, 0x02003a39, 0x0293b79b, 0x0001ced1}}},
+ {X: Field{[10]uint32{0x0033f05b, 0x0082c1e1, 0x008a224f, 0x02c3f8ef, 0x000e007b, 0x00c83aa0, 0x00450455, 0x02032c78, 0x03e03941, 0x003fc96a}}, Y: Field{[10]uint32{0x030b7e51, 0x00d8c794, 0x026c2f90, 0x038022bb, 0x02938f69, 0x03676d04, 0x01bd678a, 0x0399439b, 0x010926df, 0x002944ac}}},
+ {X: Field{[10]uint32{0x0187e443, 0x00e2685f, 0x0322272d, 0x0305c314, 0x00cc607b, 0x034091eb, 0x0051f57c, 0x03f6bd44, 0x007b5faa, 0x000077b0}}, Y: Field{[10]uint32{0x03a9a325, 0x014252e7, 0x038d3bb3, 0x019f4384, 0x00d870ce, 0x016636b5, 0x02207a92, 0x00af0168, 0x0137382b, 0x001f9dfa}}},
+ {X: Field{[10]uint32{0x03413c32, 0x030a6527, 0x02236029, 0x0237f18d, 0x01485ab7, 0x00538246, 0x020147ed, 0x0218cba8, 0x0376f62f, 0x000bc43d}}, Y: Field{[10]uint32{0x00d2184a, 0x009a7b1a, 0x02f5ad25, 0x01a0cf9f, 0x0235c236, 0x02a9ac7d, 0x01d8c8b5, 0x0118b82e, 0x03c6e760, 0x000ecb17}}},
+ {X: Field{[10]uint32{0x02bd73ca, 0x018008b6, 0x00188311, 0x010f3060, 0x02ade319, 0x02f2bed2, 0x03096814, 0x00b36eb3, 0x0394e61c, 0x001e5d3c}}, Y: Field{[10]uint32{0x01e98309, 0x020d8022, 0x0005673c, 0x03a0c439, 0x012be4cd, 0x004ee914, 0x01f854e8, 0x02a99a1f, 0x01a03bc1, 0x00386cd3}}},
+ {X: Field{[10]uint32{0x0301c332, 0x01d233c5, 0x01b14436, 0x03780e94, 0x0132af1e, 0x012a8da5, 0x01774698, 0x03105959, 0x03393c5c, 0x00015317}}, Y: Field{[10]uint32{0x01043e4e, 0x0306da81, 0x020cd800, 0x02b3bde2, 0x02ddbde8, 0x03baadae, 0x030626a0, 0x0273148a, 0x03494976, 0x000f719e}}},
+ {X: Field{[10]uint32{0x025f3783, 0x03068ed0, 0x0115d081, 0x00179556, 0x028092e9, 0x0061616b, 0x00a972a3, 0x031fac76, 0x0296f047, 0x000666a8}}, Y: Field{[10]uint32{0x0346c262, 0x03a3f1fa, 0x002e2b87, 0x038433b8, 0x02585154, 0x03f4e899, 0x00a7946d, 0x01ea5ad3, 0x027964d1, 0x003d608d}}},
+ {X: Field{[10]uint32{0x03b7f299, 0x03c222a6, 0x03e879a7, 0x02f9e5da, 0x03cbcdf0, 0x007f1639, 0x0292a3ba, 0x01b7e9b0, 0x01d6fb61, 0x0034574e}}, Y: Field{[10]uint32{0x03d7a900, 0x016e980a, 0x01061f70, 0x00602d5f, 0x01679dd4, 0x010eff1e, 0x03d4912f, 0x03e0def6, 0x017c4e37, 0x001322ba}}},
+ {X: Field{[10]uint32{0x024ef58b, 0x019a0fcd, 0x02df5a6f, 0x032a696b, 0x01bff26e, 0x0012e0af, 0x02332c6a, 0x01f7f206, 0x0134880e, 0x001db594}}, Y: Field{[10]uint32{0x001507e7, 0x01101ad0, 0x0246a646, 0x02f16fc4, 0x027b4aa5, 0x025d6e68, 0x02c90486, 0x00b60e87, 0x0308bbd2, 0x002dc6b9}}},
+ {X: Field{[10]uint32{0x00ae51b7, 0x002050f7, 0x02a02a03, 0x03865301, 0x03452ef0, 0x024bfea6, 0x02e9ead7, 0x03f8d8c2, 0x02a5d4df, 0x0007ad34}}, Y: Field{[10]uint32{0x03f47b0b, 0x01736f5b, 0x0144c9a5, 0x019d626c, 0x027cc94b, 0x0232cfb6, 0x0286af45, 0x0239e668, 0x00c1e6ab, 0x0022365e}}},
+ {X: Field{[10]uint32{0x01df571d, 0x004bc337, 0x0162f955, 0x0349144d, 0x01e474bd, 0x01c4188f, 0x01c34516, 0x021e40d8, 0x02513570, 0x0037b80c}}, Y: Field{[10]uint32{0x0290f565, 0x03121e85, 0x027c307f, 0x008ec819, 0x00496d96, 0x00463ffb, 0x028a28dc, 0x036024b1, 0x00fdcbf6, 0x00348b6f}}},
+ {X: Field{[10]uint32{0x02d4760a, 0x008d5b95, 0x005aeef0, 0x0277cd8e, 0x01bf1dbd, 0x03c4fd42, 0x028f0d55, 0x031af7fd, 0x032dc98a, 0x000bac09}}, Y: Field{[10]uint32{0x02a04277, 0x03280ac9, 0x03746111, 0x0111c847, 0x035c69ad, 0x0015cda1, 0x02a18329, 0x013ae89e, 0x03554aaf, 0x003e0350}}},
+ {X: Field{[10]uint32{0x030eabf3, 0x02c0c86a, 0x036b5c39, 0x03a809d8, 0x02b75853, 0x01de2208, 0x036ff7fc, 0x019cb63f, 0x02697509, 0x003abd8b}}, Y: Field{[10]uint32{0x020a3b7c, 0x03f7b6cb, 0x000956ef, 0x0180d41c, 0x008614e1, 0x001ccfc7, 0x0388b969, 0x0388b5c6, 0x02aa1c8f, 0x00110b95}}},
+ {X: Field{[10]uint32{0x00592858, 0x03dcab81, 0x01d3b15e, 0x0216e1e6, 0x03cbc701, 0x00dbbd18, 0x01c442c2, 0x01bf65af, 0x030a13d9, 0x00081641}}, Y: Field{[10]uint32{0x00961ec8, 0x028d2f45, 0x014a280d, 0x03fa406e, 0x00f426fb, 0x01ab95b6, 0x0221d7f4, 0x026ba3d8, 0x02e83f25, 0x002f2410}}},
+ {X: Field{[10]uint32{0x012f52fe, 0x009749eb, 0x0062a0f9, 0x01108231, 0x014b8b4a, 0x0113b0a0, 0x03b4ceea, 0x00f9f9bd, 0x03fd9e7f, 0x003fcbbd}}, Y: Field{[10]uint32{0x030a5e24, 0x03393cf7, 0x03e3b233, 0x011dada7, 0x030956a4, 0x019fd44d, 0x016cb52a, 0x01cad205, 0x00fbfa6f, 0x001ab39d}}},
+ {X: Field{[10]uint32{0x01d14d83, 0x01fe7602, 0x03bf620f, 0x039937c5, 0x01d8fd0d, 0x00d5ffc7, 0x037a7b04, 0x014fef4c, 0x02f6fc45, 0x0038f973}}, Y: Field{[10]uint32{0x038f0460, 0x013d1348, 0x033651b8, 0x03fa2811, 0x03e667b6, 0x01a691d7, 0x011863f7, 0x02d83f43, 0x01a1baa7, 0x002b377f}}},
+ {X: Field{[10]uint32{0x0357a6c3, 0x0046736f, 0x0054ec11, 0x01def78f, 0x01a0c645, 0x019ae708, 0x0142341a, 0x00a203a6, 0x026a41c0, 0x0025ea1c}}, Y: Field{[10]uint32{0x0367b4e8, 0x0330e362, 0x01164681, 0x03fcd167, 0x01fe160a, 0x01b61178, 0x00cc5c72, 0x00f41c1e, 0x00ae2702, 0x002d7cdf}}},
+ {X: Field{[10]uint32{0x01cc81e6, 0x00811427, 0x001c41b0, 0x000875de, 0x0012fd90, 0x0067ab6d, 0x039484a1, 0x03e50e18, 0x02e94862, 0x002ac079}}, Y: Field{[10]uint32{0x0083b14b, 0x007b815d, 0x000436b1, 0x03d0568c, 0x0148853c, 0x00bb5e79, 0x01fab050, 0x0170e814, 0x0032101b, 0x001ab943}}},
+ {X: Field{[10]uint32{0x0273668f, 0x03a857dd, 0x02b0d5a2, 0x01302a30, 0x0258ed9a, 0x023611e7, 0x026ba5ac, 0x033dac0b, 0x0010da2d, 0x00031191}}, Y: Field{[10]uint32{0x03499945, 0x02f0e182, 0x01361adb, 0x01114827, 0x03eadee9, 0x034f3916, 0x017f333c, 0x00b1f796, 0x01906239, 0x000da631}}},
+ {X: Field{[10]uint32{0x03867534, 0x00263d05, 0x03d8648f, 0x00909bb6, 0x01ee49d5, 0x01b041e5, 0x013b0e67, 0x007cf880, 0x00685f72, 0x0005fab3}}, Y: Field{[10]uint32{0x009ef300, 0x018fb386, 0x0201bd6b, 0x015ba652, 0x03fec0f8, 0x00eaddbe, 0x037214bb, 0x027d26ef, 0x02e90cb1, 0x00330c45}}},
+ {X: Field{[10]uint32{0x00c00d73, 0x00537ab5, 0x0208f2b1, 0x02f35f4d, 0x013ed2e8, 0x02fbf54f, 0x01b77bd5, 0x03bc5d4e, 0x01402908, 0x00301037}}, Y: Field{[10]uint32{0x01279c00, 0x020d6d05, 0x013d7427, 0x032db383, 0x02b2053e, 0x01444f73, 0x01403d84, 0x00960134, 0x00ae55ec, 0x001e98e1}}},
+ {X: Field{[10]uint32{0x02bddb42, 0x000f8e4b, 0x01b9341b, 0x028aea4b, 0x0041bf2b, 0x019668a4, 0x0025fed6, 0x03dc30bb, 0x00983658, 0x0029658d}}, Y: Field{[10]uint32{0x039f4872, 0x002b7935, 0x01600a95, 0x034a08d6, 0x011ce7c2, 0x01a55e17, 0x00e8bf41, 0x03129c2a, 0x00af260e, 0x00370453}}},
+ {X: Field{[10]uint32{0x0329aa0d, 0x01f3a846, 0x02279989, 0x01c8ce77, 0x03663823, 0x00ce0db1, 0x0233d095, 0x03d8ff1f, 0x02d451dc, 0x00113f88}}, Y: Field{[10]uint32{0x004279b3, 0x015df313, 0x01a9e53b, 0x003eba01, 0x014f3bf8, 0x00925bde, 0x01e9ffae, 0x0350d24a, 0x00e73d4b, 0x0005c631}}},
+ {X: Field{[10]uint32{0x0071647b, 0x019a844b, 0x0091cff4, 0x03cfb57b, 0x004fc6b5, 0x00912ff6, 0x03b246de, 0x03057be8, 0x00aa1358, 0x0022f5c6}}, Y: Field{[10]uint32{0x03d737fa, 0x01b7fa12, 0x02fa5f40, 0x032110ec, 0x0365a0a3, 0x010009e4, 0x03deb8de, 0x0047c06d, 0x0288ba6c, 0x0005cbc6}}},
+ {X: Field{[10]uint32{0x038680d1, 0x03e3385c, 0x03cfcd9f, 0x0355773c, 0x01d7ad4c, 0x03fce9e9, 0x01aa53c3, 0x02a88e02, 0x0025bbe6, 0x0023af73}}, Y: Field{[10]uint32{0x01e5641a, 0x02621d51, 0x01872cd7, 0x0199e2b1, 0x005be647, 0x0221b60f, 0x003728cf, 0x02b7e803, 0x0326af86, 0x0017158e}}},
+ {X: Field{[10]uint32{0x011713d2, 0x0319f83a, 0x02f4e9db, 0x034bfadc, 0x02b469e5, 0x03a25b3e, 0x0342fb8b, 0x02aaf265, 0x021f688f, 0x00173d53}}, Y: Field{[10]uint32{0x00fd09c5, 0x011e1af9, 0x00b18569, 0x02a218c9, 0x034920e8, 0x0240556c, 0x006393e1, 0x00c360be, 0x0190d063, 0x00360b59}}},
+ {X: Field{[10]uint32{0x01845f1a, 0x03061ea1, 0x02f8cdb4, 0x03053228, 0x01387185, 0x00115c7b, 0x0016ff4e, 0x02869cbb, 0x02e43f01, 0x001b0365}}, Y: Field{[10]uint32{0x00798c08, 0x02a5a9ac, 0x01dd6e55, 0x00e8c45f, 0x00abcf01, 0x026edbdc, 0x0015c1bb, 0x030bb3cd, 0x014b763e, 0x003ce668}}},
+ {X: Field{[10]uint32{0x02b74046, 0x00cb70e4, 0x02ad690d, 0x002fa9c5, 0x039a15ef, 0x01c9a84c, 0x01f15155, 0x00bf7341, 0x00fefb6a, 0x003aba4a}}, Y: Field{[10]uint32{0x014c76bc, 0x03315dc0, 0x01b0984e, 0x0099835b, 0x02f6fd46, 0x035bb503, 0x03da7978, 0x00ce772f, 0x02d9f086, 0x002f7e1e}}},
+ {X: Field{[10]uint32{0x007b3a21, 0x00802391, 0x008f0d57, 0x02cc6a9a, 0x02b61d5c, 0x00382376, 0x030dbbd0, 0x00bf7b67, 0x030cbbe7, 0x00397978}}, Y: Field{[10]uint32{0x01b248ae, 0x000196a1, 0x0035c561, 0x020a8415, 0x005de656, 0x0145c73a, 0x006ec03d, 0x01b99d1f, 0x01b8f80b, 0x0027ed2b}}},
+ {X: Field{[10]uint32{0x038223ee, 0x036f3284, 0x00b79007, 0x00329e68, 0x0078df6b, 0x01acc02f, 0x02ce1762, 0x01aedf16, 0x02acc9e2, 0x001c4484}}, Y: Field{[10]uint32{0x03027757, 0x02a9cabb, 0x01cbbdc3, 0x00e46384, 0x036b8732, 0x0131cff8, 0x02b343bc, 0x01377679, 0x00584ef4, 0x000371a2}}},
+ {X: Field{[10]uint32{0x01c5e22c, 0x00d03c08, 0x03d506b6, 0x02ca9319, 0x00c4cf11, 0x02d795e1, 0x03b9ea3f, 0x0293db76, 0x03b3531a, 0x000ed4ba}}, Y: Field{[10]uint32{0x0190938a, 0x02665aec, 0x039de55a, 0x0298f17e, 0x00b698c8, 0x01a06190, 0x02cf02e4, 0x011a84fe, 0x02bddc00, 0x000f68fb}}},
+ {X: Field{[10]uint32{0x0356b78b, 0x01daf733, 0x02df91eb, 0x005fa5b2, 0x0245294a, 0x03871e95, 0x02e7292f, 0x011789f7, 0x00811103, 0x000c3ca1}}, Y: Field{[10]uint32{0x03abb049, 0x035c0add, 0x02b088e6, 0x01902877, 0x003c1491, 0x01445beb, 0x007864d2, 0x038d2fc1, 0x00fc26ec, 0x001c3184}}},
+ {X: Field{[10]uint32{0x0130ff58, 0x0055937a, 0x01ab5edf, 0x009da675, 0x015cfef5, 0x0329287c, 0x00d37b61, 0x0156d939, 0x00a8012c, 0x00012a11}}, Y: Field{[10]uint32{0x003dfa3c, 0x0227565a, 0x00cd3f31, 0x03018c9d, 0x025826f9, 0x0342a7fd, 0x03e6bd38, 0x039b936e, 0x0148508d, 0x001261d1}}},
+ {X: Field{[10]uint32{0x0068b06f, 0x0279b19e, 0x01026451, 0x0177b714, 0x0005ce2b, 0x02667853, 0x02e0fd9a, 0x01212990, 0x021ea7c8, 0x00297295}}, Y: Field{[10]uint32{0x01afa7ed, 0x0310e8e1, 0x025a47a7, 0x01a89077, 0x037abe38, 0x03fe9fda, 0x009b00ea, 0x03bbaab0, 0x0142a5e2, 0x0033245e}}},
+ {X: Field{[10]uint32{0x03d6e72c, 0x03e3b937, 0x017ef3c1, 0x031915b9, 0x021fa547, 0x0043d852, 0x0051a68e, 0x03115b0e, 0x02d31e16, 0x003d86df}}, Y: Field{[10]uint32{0x03622f2b, 0x028ca017, 0x01a54734, 0x00453426, 0x02a0c5a8, 0x0345efe9, 0x035fbdb4, 0x00619647, 0x00b7fc40, 0x0032c9b4}}},
+ {X: Field{[10]uint32{0x01f678b2, 0x01586145, 0x007fcaee, 0x019a8888, 0x02559768, 0x01d9bef9, 0x02859f9e, 0x000312d4, 0x00628897, 0x003e3935}}, Y: Field{[10]uint32{0x02c77554, 0x006a93ae, 0x011ae6f0, 0x02542775, 0x0106791e, 0x03eeddac, 0x009c271b, 0x01bec2a8, 0x039fc1b1, 0x000c2ec0}}},
+ {X: Field{[10]uint32{0x032ab653, 0x00a4274c, 0x0291ca39, 0x001a9c5e, 0x03d5d97a, 0x0060528b, 0x02f6f717, 0x0164542c, 0x001a05d2, 0x002272bf}}, Y: Field{[10]uint32{0x017ab76e, 0x00bc5109, 0x03ce16fe, 0x036983a1, 0x015eac02, 0x0053cd38, 0x01c00557, 0x0121634a, 0x00ab0b4e, 0x00068928}}},
+ {X: Field{[10]uint32{0x037c4f20, 0x02365f51, 0x020bb4a4, 0x0155aba9, 0x0033c5b5, 0x028ab544, 0x0201dca7, 0x01773f2a, 0x030bd04f, 0x0034a14d}}, Y: Field{[10]uint32{0x0293b9d4, 0x01348091, 0x01b416c4, 0x02cb1a60, 0x01c61386, 0x031c1451, 0x022adf8e, 0x0217404e, 0x03b732e8, 0x00352d09}}},
+ {X: Field{[10]uint32{0x01f217c0, 0x01bd9a93, 0x00974902, 0x019b87f5, 0x01fd3350, 0x01eae89a, 0x01dc90d1, 0x02fecc86, 0x02f2d9bd, 0x0000f14c}}, Y: Field{[10]uint32{0x02ac5d59, 0x00f8c199, 0x0057675b, 0x03e7e320, 0x032791a6, 0x02104e5d, 0x033c7b42, 0x01ff40b0, 0x027ca6c9, 0x0021bf57}}},
+ {X: Field{[10]uint32{0x008ac1ee, 0x000c5333, 0x02924b73, 0x00f8df89, 0x02298445, 0x00c0dc89, 0x0317a165, 0x01c1a886, 0x010bfc35, 0x00093465}}, Y: Field{[10]uint32{0x01f918ac, 0x0307aa72, 0x01ed84b9, 0x03822d5f, 0x01b05bb9, 0x026ba69d, 0x0247c685, 0x006a42ec, 0x005d06a3, 0x001348a9}}},
+ {X: Field{[10]uint32{0x027615a9, 0x020acd93, 0x03d44595, 0x01042ad9, 0x02d85053, 0x0280dbf0, 0x01f8acee, 0x02c6ac52, 0x00f36227, 0x00331aac}}, Y: Field{[10]uint32{0x03761cb8, 0x01a028e0, 0x037d7107, 0x02bd5283, 0x01bac918, 0x003e9bc8, 0x00806b12, 0x0049619f, 0x03cc040b, 0x003e6b64}}},
+ {X: Field{[10]uint32{0x025318cf, 0x03fdc6c0, 0x01cdef08, 0x00366c50, 0x016320f2, 0x01cc2e67, 0x0016bcff, 0x0252db2a, 0x0154f36e, 0x0037892a}}, Y: Field{[10]uint32{0x03899933, 0x00129076, 0x014d9679, 0x017a920e, 0x038475c3, 0x012bf58b, 0x002d2354, 0x012926e6, 0x01d91ac2, 0x000f8d2c}}},
+ {X: Field{[10]uint32{0x021ffec7, 0x03fc9496, 0x03618f83, 0x036d23ea, 0x015f8243, 0x0254f3ef, 0x003a12c7, 0x02aea436, 0x00c34900, 0x001deac1}}, Y: Field{[10]uint32{0x00ac2f00, 0x01cfbfaf, 0x032bdae8, 0x00680c28, 0x01231c87, 0x016a36cc, 0x02265af7, 0x01dffd25, 0x00273bcd, 0x0018996b}}},
+ {X: Field{[10]uint32{0x02e78209, 0x012b5445, 0x0341ece8, 0x03b876ad, 0x0251ff8d, 0x00656028, 0x0079885d, 0x02679780, 0x03065f46, 0x00291ebd}}, Y: Field{[10]uint32{0x02257440, 0x03cd2e5e, 0x03abfbb8, 0x0220f6bf, 0x035b7860, 0x01196ae5, 0x023f7cb3, 0x03de2e95, 0x03fdf1b1, 0x000e4f2e}}},
+ {X: Field{[10]uint32{0x00d7016d, 0x0117a7a7, 0x037ea8a5, 0x038754a8, 0x0293d709, 0x000c8809, 0x01170fbd, 0x031edd37, 0x01fd0c55, 0x002a7d7e}}, Y: Field{[10]uint32{0x01d5e0e1, 0x012c417c, 0x0162b873, 0x009fdad8, 0x0254f0d3, 0x027a02ac, 0x01847b2e, 0x03c8ba3f, 0x01254bad, 0x00261c5e}}},
+ {X: Field{[10]uint32{0x0218ec38, 0x01f358d3, 0x03b716cc, 0x01902a51, 0x01ba8668, 0x0161b9f8, 0x02200c4e, 0x00e28a3e, 0x02bc96b9, 0x00355fa7}}, Y: Field{[10]uint32{0x01b6bd36, 0x029aab34, 0x016a3062, 0x03abca16, 0x0325de16, 0x0104b7e1, 0x00c8b7cb, 0x0244416d, 0x02ef6823, 0x0026a834}}},
+ {X: Field{[10]uint32{0x03aa58e9, 0x001a0a43, 0x006119f5, 0x0072ae08, 0x02e27ccc, 0x02a175ce, 0x018e66ca, 0x03053558, 0x00d8fb4d, 0x001d18ea}}, Y: Field{[10]uint32{0x00d4829f, 0x026ab41a, 0x0389f056, 0x03102d30, 0x02ae7990, 0x010e36e1, 0x00645a28, 0x03d412a8, 0x02b2275a, 0x0020bf5a}}},
+ {X: Field{[10]uint32{0x013bf412, 0x01b9f3f5, 0x032fca3c, 0x01914d36, 0x013927ae, 0x03accc6c, 0x002d03e4, 0x0120c668, 0x008a29c4, 0x000b9e9c}}, Y: Field{[10]uint32{0x031e11d1, 0x038ecf52, 0x00160fd2, 0x0093b006, 0x03ebdf68, 0x00e6ceca, 0x02e0073f, 0x003372ba, 0x01997350, 0x00213cfc}}},
+ {X: Field{[10]uint32{0x01dd5e03, 0x034c3136, 0x00dda414, 0x012edfea, 0x02180d09, 0x022e8c13, 0x032f3c2e, 0x030163eb, 0x00bf540b, 0x0021c1ec}}, Y: Field{[10]uint32{0x0100b915, 0x0127083c, 0x0025dfbb, 0x03a6599f, 0x0318db5e, 0x02816535, 0x006bd25a, 0x0040cd43, 0x0175fb79, 0x001c2d84}}},
+ {X: Field{[10]uint32{0x03ca842d, 0x02a8b594, 0x008b9613, 0x03386db0, 0x0122f67d, 0x023999d2, 0x02070a72, 0x03340a21, 0x030c3ce6, 0x000ff6cd}}, Y: Field{[10]uint32{0x00e0dafc, 0x0121ac32, 0x0006317a, 0x03e65004, 0x035d3a5e, 0x002c7bfb, 0x004c5ec1, 0x000d1297, 0x00f2474a, 0x00058d46}}},
+ {X: Field{[10]uint32{0x00472f62, 0x020f6252, 0x031af2a2, 0x0180252c, 0x03330779, 0x01bd6352, 0x01411e70, 0x03552680, 0x0302412c, 0x0030df68}}, Y: Field{[10]uint32{0x0221f92a, 0x031bf84e, 0x01d26801, 0x0002e2b4, 0x01ca8490, 0x0282a0af, 0x002d1daa, 0x010bd21c, 0x028716c6, 0x002a823c}}},
+ {X: Field{[10]uint32{0x01e08a1c, 0x009bf1e9, 0x007cf257, 0x03b0ac2d, 0x0160ade9, 0x0171e8ce, 0x01f923b0, 0x02c3e494, 0x0150381a, 0x000fae81}}, Y: Field{[10]uint32{0x030fa7d9, 0x010697f3, 0x02396557, 0x03668316, 0x00492a1a, 0x02bf1380, 0x02396525, 0x0374ea21, 0x00ebb681, 0x000509ec}}},
+ {X: Field{[10]uint32{0x0350cee8, 0x02be39ae, 0x02e0194e, 0x029e14d5, 0x02e43f20, 0x01d53e83, 0x024628f7, 0x035752fd, 0x02a18ce5, 0x00259c8f}}, Y: Field{[10]uint32{0x01f49bdd, 0x0019a960, 0x00e8a713, 0x016eca32, 0x016cf51b, 0x035122bb, 0x02eef512, 0x02fc43a1, 0x03bbb9bb, 0x0016b427}}},
+ {X: Field{[10]uint32{0x03663748, 0x02358128, 0x00f1329f, 0x02499e44, 0x00ab8228, 0x01575716, 0x009d3460, 0x02db34e8, 0x02117ecf, 0x0035d914}}, Y: Field{[10]uint32{0x028540f7, 0x02e00c70, 0x01a46eeb, 0x00430897, 0x03bf2c9b, 0x02eaaa73, 0x0089dbe2, 0x037820b2, 0x0104d20f, 0x002adf30}}},
+ {X: Field{[10]uint32{0x00ada5e6, 0x02a241b4, 0x03e434dc, 0x0196d2b1, 0x008c8660, 0x0352f251, 0x01907afa, 0x02c4d883, 0x03dc7e0a, 0x0007dac8}}, Y: Field{[10]uint32{0x023e247c, 0x03b0959d, 0x02602398, 0x0103923d, 0x01560414, 0x036aa7ac, 0x00920405, 0x00e76ab4, 0x025d6bc6, 0x00230dec}}},
+ {X: Field{[10]uint32{0x01459945, 0x0203541d, 0x01f9d9bd, 0x004a2bf4, 0x036abb5a, 0x0303a3b5, 0x0079e64b, 0x0285a1e5, 0x00bbaa06, 0x0011bfc1}}, Y: Field{[10]uint32{0x011bcd4a, 0x03e7693d, 0x0176491e, 0x00a5075c, 0x03e7e9d2, 0x011e986a, 0x0133bb9e, 0x02e838e4, 0x02c26af2, 0x002c4413}}},
+ {X: Field{[10]uint32{0x02597ce2, 0x012a20ca, 0x02f86f3f, 0x02cf6092, 0x013bcdff, 0x022ec114, 0x0076e545, 0x0201a4ec, 0x00253888, 0x003286cf}}, Y: Field{[10]uint32{0x01e0285a, 0x006ff8a8, 0x03622005, 0x03d5e611, 0x01dfc9d6, 0x0367a07b, 0x0109d11b, 0x01b711d8, 0x02fbdd1b, 0x003c0a45}}},
+ {X: Field{[10]uint32{0x01ece6b4, 0x011e8426, 0x01763ee7, 0x01dcae00, 0x005fad12, 0x0336f7ec, 0x03ec7fed, 0x027b123b, 0x029aadb6, 0x00032587}}, Y: Field{[10]uint32{0x018fb6e4, 0x00bc9a67, 0x022a984e, 0x00f0d7c2, 0x0056bb9b, 0x005b12dc, 0x00bb70ad, 0x014f949c, 0x0033e0b2, 0x0011a69b}}},
+ {X: Field{[10]uint32{0x039d99dc, 0x03ca2fe4, 0x03393ea4, 0x03d6e6d9, 0x037b3132, 0x035139dd, 0x03817089, 0x0332534f, 0x02791418, 0x000e8ba8}}, Y: Field{[10]uint32{0x03f164be, 0x025b195a, 0x01f8831a, 0x02381949, 0x02b981bf, 0x02344f8b, 0x0217dc71, 0x036486f8, 0x0143c035, 0x00056014}}},
+ {X: Field{[10]uint32{0x025a7a4a, 0x03b7a9ad, 0x01189e7d, 0x02333cd3, 0x034e24d4, 0x00bec700, 0x03fd6ad5, 0x03c2f868, 0x00dfb3a1, 0x000105b7}}, Y: Field{[10]uint32{0x00c204c3, 0x037444d8, 0x0235beba, 0x0028f1b2, 0x0147e90a, 0x004cb6cc, 0x01777812, 0x00cd66b0, 0x02c2bbc9, 0x001da427}}},
+ {X: Field{[10]uint32{0x03c63eb3, 0x021516e4, 0x022b1731, 0x0312174a, 0x032ed9d1, 0x0352cfb4, 0x03a51772, 0x0305d422, 0x02459aef, 0x002ce5f0}}, Y: Field{[10]uint32{0x01e71748, 0x00732dbd, 0x03a7e447, 0x01d38c45, 0x02228135, 0x024810fb, 0x0018ffc6, 0x00d9daad, 0x03603076, 0x002841a8}}},
+ {X: Field{[10]uint32{0x000637df, 0x03ce4275, 0x0306532e, 0x03034a68, 0x02c1bdb8, 0x03a026ca, 0x01dbb755, 0x005918ca, 0x009befd6, 0x001d7156}}, Y: Field{[10]uint32{0x03e6f631, 0x009eb7e8, 0x0347dcba, 0x025687f8, 0x0395e602, 0x007f39ae, 0x02a19dd8, 0x00417243, 0x01e51492, 0x0009bcf8}}},
+ {X: Field{[10]uint32{0x029135a5, 0x039bc225, 0x018b6620, 0x02004679, 0x02e4b0dc, 0x00e6a411, 0x015158c4, 0x01d0c85f, 0x0112a351, 0x000bbbb3}}, Y: Field{[10]uint32{0x01aaba4c, 0x03d2474b, 0x03707806, 0x019c5051, 0x01136064, 0x031315e4, 0x013d7539, 0x023b4c6d, 0x03d048c5, 0x003877ba}}},
+ {X: Field{[10]uint32{0x00be65d1, 0x000164e7, 0x00124aa1, 0x002b1d6b, 0x038cab86, 0x02b77699, 0x031d52e5, 0x0359419a, 0x00915d39, 0x002a607c}}, Y: Field{[10]uint32{0x013ed069, 0x0180101f, 0x00e7b66c, 0x01253ccd, 0x0188d4f1, 0x025b9442, 0x018b23c0, 0x000a4cb6, 0x03cb7ab6, 0x00132c27}}},
+ {X: Field{[10]uint32{0x03d4ef62, 0x01302826, 0x0331a9aa, 0x01a4999a, 0x02545cd8, 0x01d679e7, 0x01260c9a, 0x00740828, 0x02e3a7e8, 0x0006867e}}, Y: Field{[10]uint32{0x00937902, 0x016dcaac, 0x0070789c, 0x03c1a2b8, 0x0379714d, 0x021df71e, 0x01bf7bfd, 0x0171a78a, 0x02578af2, 0x000a01f5}}},
+ {X: Field{[10]uint32{0x0020c61a, 0x00a04f49, 0x00567195, 0x0052674c, 0x029b0f43, 0x0198b9dd, 0x036f1392, 0x03465835, 0x016c1ee7, 0x0033fe1a}}, Y: Field{[10]uint32{0x02d16df8, 0x0314b179, 0x030c147f, 0x008ad8ad, 0x023581f1, 0x00daee05, 0x0004b1a1, 0x025a4097, 0x00138a39, 0x002125f8}}},
+ {X: Field{[10]uint32{0x0227ce8c, 0x02417887, 0x01cd66cc, 0x016a7969, 0x00966911, 0x03523ac1, 0x02a95824, 0x00d1e72a, 0x00204a8b, 0x001a05e9}}, Y: Field{[10]uint32{0x033052ad, 0x01ca4dde, 0x026fd95e, 0x0309d8c8, 0x028182a0, 0x01720e17, 0x03254653, 0x01e97261, 0x028bc337, 0x00256151}}},
+ {X: Field{[10]uint32{0x01d9d58e, 0x00cf5b23, 0x03233bcd, 0x00656494, 0x037d114b, 0x01e51e3c, 0x013eb995, 0x03309abc, 0x00846e0e, 0x00273bff}}, Y: Field{[10]uint32{0x025d2582, 0x0342aa3e, 0x00426856, 0x00d0fa99, 0x00510602, 0x03bc71fb, 0x03c4d4af, 0x03e86c19, 0x021a5cf8, 0x003806b2}}},
+ {X: Field{[10]uint32{0x03456c49, 0x03c3b734, 0x00543835, 0x00c63104, 0x03995a37, 0x00c0797e, 0x03965892, 0x03dff765, 0x01c6f203, 0x001a9b87}}, Y: Field{[10]uint32{0x0384496b, 0x02eb284d, 0x03482f93, 0x02fdbbf4, 0x0183b579, 0x02a5d51b, 0x01f9ad86, 0x00fa7ac1, 0x039898b9, 0x000a81ca}}},
+ {X: Field{[10]uint32{0x02a9129b, 0x00c75f34, 0x036d24dd, 0x008626b0, 0x008ba3a5, 0x02e461ba, 0x018b4f0f, 0x01d86d45, 0x021a588d, 0x001f9eeb}}, Y: Field{[10]uint32{0x033dbdd6, 0x0215beaa, 0x0129dcc4, 0x02f03503, 0x0017e6bb, 0x0343e1ce, 0x01e60e57, 0x01731ca2, 0x023b3799, 0x0014663d}}},
+ {X: Field{[10]uint32{0x006bd253, 0x0316cd40, 0x039f805d, 0x018fb84b, 0x03ffa158, 0x02a17954, 0x014966ff, 0x02acafb5, 0x03a863de, 0x00004ff0}}, Y: Field{[10]uint32{0x03821459, 0x016d5ddc, 0x01d58b3b, 0x0209c0b9, 0x03a8b77c, 0x039daa55, 0x00a59e76, 0x01415bff, 0x02459127, 0x0038c70c}}},
+ {X: Field{[10]uint32{0x02e9c167, 0x02f1b445, 0x00ccbbec, 0x00983452, 0x03e56503, 0x03a27a92, 0x036dbeda, 0x03645fda, 0x01eb3f39, 0x003ff8a3}}, Y: Field{[10]uint32{0x01bb988a, 0x02abb5a7, 0x01b2c262, 0x03844a31, 0x01383c4b, 0x0380acff, 0x03857604, 0x01113794, 0x02b3b878, 0x00236294}}},
+ {X: Field{[10]uint32{0x01cc57be, 0x020ec3c1, 0x003cd444, 0x0150772f, 0x00481c43, 0x003e83b3, 0x0379a883, 0x01b79f40, 0x00239bf2, 0x0000a3b5}}, Y: Field{[10]uint32{0x00ce126e, 0x001016c4, 0x00ac37bc, 0x01c866f4, 0x012d5608, 0x012e3616, 0x020d860b, 0x02399d14, 0x02e2ea01, 0x00064848}}},
+ {X: Field{[10]uint32{0x03f8a708, 0x01cb22c2, 0x02d7276c, 0x00e0be01, 0x025aa4ca, 0x03b9da76, 0x02acc00e, 0x03121014, 0x027c7be8, 0x001efce0}}, Y: Field{[10]uint32{0x0159eebe, 0x0090fa29, 0x011726bb, 0x001c6b4a, 0x0224a75d, 0x035c75c1, 0x00601fa1, 0x014a6d17, 0x02eee505, 0x002497cf}}},
+ {X: Field{[10]uint32{0x03ce7000, 0x0384e01b, 0x017a4a7b, 0x02accc28, 0x012acb5a, 0x007dedaf, 0x02de8627, 0x00070fe3, 0x0299021a, 0x0033c69f}}, Y: Field{[10]uint32{0x01d3d673, 0x02855756, 0x0078a7c3, 0x028fce2a, 0x035f1e70, 0x00ce8d18, 0x023e7400, 0x0298445a, 0x02837b3b, 0x00084d96}}},
+ {X: Field{[10]uint32{0x01bb29c7, 0x02f2ba44, 0x02944afc, 0x019d4989, 0x02af3bdd, 0x02f42a61, 0x036c8121, 0x01f31038, 0x0237d151, 0x0039de7a}}, Y: Field{[10]uint32{0x038a8a2f, 0x03200575, 0x03f81e8a, 0x01b51706, 0x026472bb, 0x00a71bd0, 0x00e2c6c0, 0x01dd6a81, 0x01ac4b19, 0x000cb18d}}},
+ {X: Field{[10]uint32{0x026c2a92, 0x02dfda3c, 0x002a1638, 0x00a23806, 0x02f96977, 0x030e0754, 0x019785d6, 0x01084056, 0x012b76b5, 0x00040c27}}, Y: Field{[10]uint32{0x018265a9, 0x02340819, 0x02a1a043, 0x02b3066d, 0x02f3abce, 0x03e4c4c5, 0x03b9b377, 0x0261c03b, 0x03834c85, 0x000087b7}}},
+ {X: Field{[10]uint32{0x033a27f9, 0x039c8694, 0x00701813, 0x00469c50, 0x02f2b6b3, 0x0244c80d, 0x032240de, 0x011b50ba, 0x0309701e, 0x001e649e}}, Y: Field{[10]uint32{0x0358920f, 0x03613b4e, 0x039053b3, 0x03bae34a, 0x008a0f47, 0x0184d841, 0x00756403, 0x021b0693, 0x0113a818, 0x003edf19}}},
+ {X: Field{[10]uint32{0x0128849e, 0x03631cc5, 0x0137e0fd, 0x038128f7, 0x03085b1d, 0x0338938f, 0x0193e683, 0x00d0a67d, 0x023377da, 0x001d0ed3}}, Y: Field{[10]uint32{0x002f3216, 0x0135ad9d, 0x014f1816, 0x039a1278, 0x01fbba7d, 0x02b9cca0, 0x03f178ca, 0x018fb1ec, 0x0069b5ee, 0x000de400}}},
+ {X: Field{[10]uint32{0x004f04da, 0x01a18143, 0x02cbf498, 0x03ec29ce, 0x02e46064, 0x02547f9a, 0x02cd9b49, 0x02edfc6a, 0x02e10ce1, 0x0035cf34}}, Y: Field{[10]uint32{0x0253dde8, 0x01fd2b6c, 0x0209614b, 0x0138bc8a, 0x00cae7f8, 0x028cffc7, 0x0087fcd6, 0x039c7fd6, 0x02e44cc6, 0x0039a9d8}}},
+ {X: Field{[10]uint32{0x01f6fa68, 0x00b5a5e5, 0x033e8ed3, 0x02051f01, 0x01ba6324, 0x01ecfafc, 0x03318a17, 0x0091acff, 0x00d3f563, 0x000f8700}}, Y: Field{[10]uint32{0x010776d3, 0x01cbc34b, 0x00ef6b4a, 0x000308ff, 0x0118ce2e, 0x02038e07, 0x036aecb0, 0x0304a440, 0x00cf87d5, 0x0037cad8}}},
+ {X: Field{[10]uint32{0x0168053c, 0x03f71b36, 0x03221a32, 0x039318a6, 0x00ed90c2, 0x01d49b6d, 0x00f10e68, 0x00594f97, 0x039092da, 0x0025b81f}}, Y: Field{[10]uint32{0x01c2bd66, 0x0081e1d3, 0x036164ab, 0x03f8b978, 0x021f8517, 0x03eb4ee6, 0x0220ea5b, 0x03a9ae7b, 0x003bb8a2, 0x00359707}}},
+ {X: Field{[10]uint32{0x03e1debb, 0x005deaab, 0x02854d8e, 0x0148ce18, 0x02d27a76, 0x00b81e5a, 0x01cc124b, 0x03b8094c, 0x004026b1, 0x001b48c1}}, Y: Field{[10]uint32{0x0179bbd3, 0x00ef027b, 0x012c2598, 0x00a2a33f, 0x00e3dc62, 0x0393b002, 0x03bde471, 0x011a2543, 0x0195faa1, 0x003cea3e}}},
+ {X: Field{[10]uint32{0x01707781, 0x03f3bc79, 0x02d9dc76, 0x004692c1, 0x00ad7d45, 0x039c584e, 0x00e43c49, 0x027700c5, 0x035c1f94, 0x002376a7}}, Y: Field{[10]uint32{0x0001310d, 0x0229609a, 0x03a775c7, 0x03bc2b96, 0x01ad9d9b, 0x02dcdd0d, 0x03674f5d, 0x02c2944a, 0x03aa7585, 0x0034158f}}},
+ {X: Field{[10]uint32{0x03de97cd, 0x028d5eee, 0x036c4e5a, 0x03ead309, 0x03b4bf17, 0x03ff6905, 0x02da369f, 0x01cd8fd7, 0x013f9866, 0x00141c18}}, Y: Field{[10]uint32{0x0034ebc2, 0x033c26f7, 0x008178a0, 0x01f921a9, 0x02eb40e4, 0x02c5b6e1, 0x005751f9, 0x01fa8d06, 0x02ff4fe7, 0x00002c83}}},
+ {X: Field{[10]uint32{0x0316bce7, 0x024bac2b, 0x03a8efc7, 0x01d1aa6c, 0x0004986d, 0x0306a862, 0x038838ea, 0x00515ae6, 0x00f0bfab, 0x000e929c}}, Y: Field{[10]uint32{0x01c4f3e5, 0x03d68f2b, 0x01e248bd, 0x022608e0, 0x03843b3e, 0x0013a108, 0x0032980c, 0x023b6a86, 0x02931916, 0x00391492}}},
+ {X: Field{[10]uint32{0x02b33532, 0x02448c2a, 0x01a38b52, 0x0264ef37, 0x02db5fba, 0x018c1dcf, 0x01a82f54, 0x0166a76a, 0x00921831, 0x000b373e}}, Y: Field{[10]uint32{0x017677b9, 0x00d61c1d, 0x02044e0a, 0x0248c8a4, 0x010fd956, 0x00aaf3a3, 0x02299e74, 0x00fcca17, 0x02eac911, 0x003223a9}}},
+ {X: Field{[10]uint32{0x00955c99, 0x028b778a, 0x0203d781, 0x00082630, 0x022b7fed, 0x00cc667a, 0x02e0cd6f, 0x017d8404, 0x028df8f1, 0x0006a164}}, Y: Field{[10]uint32{0x00db4299, 0x00b38e5d, 0x02945568, 0x009147af, 0x010534a1, 0x001c970a, 0x013a6b03, 0x01da8ff8, 0x02b2821c, 0x0006ce61}}},
+ {X: Field{[10]uint32{0x01a1d388, 0x01ae13c7, 0x02c1a6b6, 0x0198f988, 0x00dde019, 0x006e7c04, 0x01206634, 0x00c19685, 0x01a1d6b0, 0x0021b453}}, Y: Field{[10]uint32{0x0399b2de, 0x00e030a0, 0x01055fd1, 0x00f87db9, 0x01cfe568, 0x00e010b3, 0x004a6f9f, 0x017327a2, 0x00ec764f, 0x0019e545}}},
+ {X: Field{[10]uint32{0x02201cc2, 0x0340d5c5, 0x01441565, 0x0265f091, 0x03300459, 0x02941e38, 0x03343415, 0x0321e50c, 0x014f0bdf, 0x003907dd}}, Y: Field{[10]uint32{0x010e8e8e, 0x02c3f75e, 0x02e47dcb, 0x0382ecf3, 0x000743f5, 0x024bba6d, 0x02f119f4, 0x00647b7f, 0x0241c21d, 0x00374165}}},
+ {X: Field{[10]uint32{0x0075cae4, 0x0265b4d1, 0x022fc756, 0x01ea0ce3, 0x032946e1, 0x03911190, 0x0268d8f4, 0x02fb11e5, 0x026845b5, 0x002dfb24}}, Y: Field{[10]uint32{0x03dda53b, 0x018b9c53, 0x002cb7cc, 0x01425e3b, 0x00d945e3, 0x01e51dad, 0x02210f57, 0x027a4043, 0x018bb753, 0x0002ad28}}},
+ {X: Field{[10]uint32{0x03518912, 0x01da752d, 0x009d456b, 0x02f020c9, 0x03bf3ecf, 0x02896142, 0x022554a0, 0x03786459, 0x01dcf1ea, 0x000903f6}}, Y: Field{[10]uint32{0x0104515b, 0x001ac234, 0x0220776a, 0x025cc4d4, 0x005318a8, 0x02a9aa01, 0x03a3a62e, 0x00e42214, 0x025ee0ba, 0x002bc0fe}}},
+ {X: Field{[10]uint32{0x035bb769, 0x015c8de1, 0x00129a5c, 0x037e3c73, 0x022b88aa, 0x02330fea, 0x01e39d28, 0x00c4525e, 0x00ecee7d, 0x0000d4f1}}, Y: Field{[10]uint32{0x012d147e, 0x03693f34, 0x03cf02a0, 0x02e16b8c, 0x0228e607, 0x035c2ae3, 0x000118ba, 0x01384ba5, 0x004090af, 0x0027e9fb}}},
+ {X: Field{[10]uint32{0x03d933de, 0x0200dd8a, 0x0082d39e, 0x02232f81, 0x03893409, 0x018a3f46, 0x0206ae11, 0x019a2045, 0x018aa855, 0x003d3bb5}}, Y: Field{[10]uint32{0x033b3d44, 0x01bc3e37, 0x03eb9160, 0x03e94b5f, 0x0118b40b, 0x0233ad03, 0x031969ca, 0x0381c341, 0x0364fe74, 0x00109e33}}},
+ {X: Field{[10]uint32{0x026ef1ce, 0x004a4389, 0x000fa01a, 0x0029cdaf, 0x000b284f, 0x02d554b5, 0x00c17d50, 0x0099810d, 0x02e2e2d0, 0x001a63fe}}, Y: Field{[10]uint32{0x01ffc970, 0x00206638, 0x0143fab6, 0x03fec2f4, 0x038bd50c, 0x025bf04b, 0x027e53a4, 0x016dd076, 0x008d0784, 0x000659b3}}},
+ {X: Field{[10]uint32{0x01314098, 0x01c48699, 0x0196b595, 0x028013ed, 0x0122d884, 0x005f2251, 0x020587d4, 0x0305035b, 0x016d5c88, 0x002d4ed6}}, Y: Field{[10]uint32{0x032c745a, 0x025eba23, 0x01a56771, 0x01c13306, 0x0025deeb, 0x01b0cbbb, 0x03de4857, 0x03f9db21, 0x00b909be, 0x00377fd8}}},
+ {X: Field{[10]uint32{0x0213066a, 0x004bedc6, 0x02d65527, 0x01967d89, 0x00791518, 0x03a7c9da, 0x024cba67, 0x00efe75b, 0x0321d439, 0x0025d812}}, Y: Field{[10]uint32{0x028d17f8, 0x018988d2, 0x03616360, 0x0153e809, 0x027d871c, 0x00d5fc99, 0x005b0d17, 0x01fdf197, 0x0384e1cf, 0x0039ebbc}}},
+ {X: Field{[10]uint32{0x01bb8623, 0x01213a54, 0x007edb63, 0x003b6875, 0x013b3876, 0x0018bdef, 0x02b234c1, 0x03b980c4, 0x01ba6eda, 0x001e8d72}}, Y: Field{[10]uint32{0x0184a5b1, 0x035a9093, 0x002457eb, 0x015e1bbe, 0x00769f3a, 0x03bdc128, 0x0292b586, 0x019d85ab, 0x027ba454, 0x000ce25e}}},
+ {X: Field{[10]uint32{0x011e2804, 0x00836543, 0x03e01b6a, 0x005e19c1, 0x02c9638b, 0x0098c043, 0x026e0cc9, 0x00457728, 0x0075f989, 0x0021b503}}, Y: Field{[10]uint32{0x00315ca3, 0x00e1d0bb, 0x00410c0f, 0x010b105c, 0x01dddf28, 0x0211ad72, 0x031dcc8a, 0x02307839, 0x03624ffd, 0x001d66f5}}},
+ {X: Field{[10]uint32{0x009badb7, 0x037acc58, 0x001ce3e8, 0x03a6ca90, 0x01fc77f6, 0x00ee4397, 0x03ddea49, 0x02de7d98, 0x03479a4b, 0x00180eff}}, Y: Field{[10]uint32{0x01a4f4b4, 0x008e6627, 0x0320ee1e, 0x0377700d, 0x03358c86, 0x034ce80b, 0x02eefffc, 0x006aa9ab, 0x01fc6528, 0x00018a1e}}},
+ {X: Field{[10]uint32{0x032203ed, 0x039a2c40, 0x03d7b5de, 0x03705261, 0x00fa13eb, 0x029d68db, 0x01e0bbf8, 0x01e9f5c8, 0x00f3c7dc, 0x0001722e}}, Y: Field{[10]uint32{0x0208e7d3, 0x0124d033, 0x0190ce77, 0x0328506f, 0x013faa43, 0x023f35b9, 0x01d304d8, 0x031af5f6, 0x03382bc4, 0x001ad807}}},
+ {X: Field{[10]uint32{0x0144fb05, 0x018f3a1d, 0x00505a79, 0x01fa4024, 0x0025a6f2, 0x020edcde, 0x027a55ff, 0x02530907, 0x02c5a916, 0x000c4f07}}, Y: Field{[10]uint32{0x003c6384, 0x01980dc4, 0x02e59825, 0x023891d4, 0x0101ed85, 0x031118b1, 0x0244699b, 0x0197ebed, 0x03ff9a43, 0x00270c54}}},
+ {X: Field{[10]uint32{0x01d923bd, 0x000550ea, 0x006bf98b, 0x03569e5d, 0x00150b4b, 0x01a383e8, 0x0268cb29, 0x02bbecc0, 0x02514616, 0x000146b2}}, Y: Field{[10]uint32{0x02e028b4, 0x0115e9d3, 0x001cc203, 0x0310c77d, 0x01a0a66e, 0x0138acd8, 0x0163ca4f, 0x01dd1eff, 0x01b4073a, 0x001f147e}}},
+ {X: Field{[10]uint32{0x0219677d, 0x01edb0c9, 0x00a122ab, 0x0359dd0f, 0x01353071, 0x02efa5ea, 0x036d3f92, 0x00192124, 0x039927ea, 0x0012ba34}}, Y: Field{[10]uint32{0x008a47a3, 0x019df50f, 0x027c919e, 0x01790d4b, 0x000f350f, 0x0244414e, 0x02a332b0, 0x02f3a0e3, 0x019bc251, 0x003e7714}}},
+ {X: Field{[10]uint32{0x0256dcca, 0x01e137a8, 0x0257baa0, 0x022712bc, 0x03b100c2, 0x021352ef, 0x01a054a8, 0x02d68230, 0x015d3f9c, 0x001af472}}, Y: Field{[10]uint32{0x03803b5b, 0x0153be1a, 0x03e71396, 0x015ea221, 0x00801923, 0x02c1f79e, 0x031fc401, 0x02c4bdbd, 0x003bde39, 0x001e4d8a}}},
+ {X: Field{[10]uint32{0x0249480e, 0x0374a0ea, 0x028ce19b, 0x00027be7, 0x035737f7, 0x001feef2, 0x0370a62e, 0x032ab6b8, 0x02294642, 0x003889e2}}, Y: Field{[10]uint32{0x0037dd01, 0x03c50ed2, 0x00f77b36, 0x02d60f59, 0x01087bc8, 0x0360bd87, 0x03570b7e, 0x00f39cd6, 0x03cdf394, 0x0010c48b}}},
+ {X: Field{[10]uint32{0x0296c644, 0x03d2b13f, 0x0071ffee, 0x00b02c89, 0x008d24fb, 0x00ccd60c, 0x004bb019, 0x01a7f744, 0x00d59f94, 0x001a14df}}, Y: Field{[10]uint32{0x0000050e, 0x018f2061, 0x024a7320, 0x01165e77, 0x004003ab, 0x01b8ec67, 0x0399ff32, 0x01e9476f, 0x00ef4110, 0x001d94d8}}},
+ {X: Field{[10]uint32{0x025af330, 0x024281dd, 0x03b54b12, 0x03bcfe06, 0x0070be08, 0x03022209, 0x00a0735f, 0x027e7e3e, 0x03c669c9, 0x0017b27f}}, Y: Field{[10]uint32{0x0163b222, 0x0084e5c4, 0x03b381a4, 0x03737472, 0x001f4f1c, 0x015ad1f0, 0x00c32290, 0x021c581e, 0x0008e76f, 0x002aed50}}},
+ {X: Field{[10]uint32{0x004dfae9, 0x02661d1c, 0x0231db23, 0x03d8572b, 0x0101a330, 0x01945528, 0x0071aba4, 0x00c3eea5, 0x008e5d49, 0x00138006}}, Y: Field{[10]uint32{0x01317868, 0x02ee0753, 0x02bba57f, 0x00a74821, 0x015ed3fe, 0x016d0082, 0x03656dd3, 0x00daa9cf, 0x03302824, 0x0001f9db}}},
+ {X: Field{[10]uint32{0x015ed984, 0x0377f57c, 0x02e3c8aa, 0x0392f4ed, 0x03a2659c, 0x0130bcfe, 0x0139edeb, 0x0054bbff, 0x03a4d480, 0x0012b8d1}}, Y: Field{[10]uint32{0x02d4e523, 0x00b170d8, 0x033070ca, 0x0307cd71, 0x0165bb6a, 0x029cb18d, 0x02b8ba7b, 0x033f7d3e, 0x03460d44, 0x000e0f8b}}},
+ {X: Field{[10]uint32{0x006665ef, 0x03386e27, 0x0319c603, 0x031363dd, 0x0235fd09, 0x01942697, 0x02d90fc8, 0x02b03be5, 0x0224a8d3, 0x000cb2b7}}, Y: Field{[10]uint32{0x038bea36, 0x004342be, 0x036af55c, 0x03cb8324, 0x02266939, 0x032a27e6, 0x023c5aa6, 0x02c4dd6d, 0x00735c63, 0x0021c9ce}}},
+ {X: Field{[10]uint32{0x01cfcbee, 0x00891114, 0x0204f5f4, 0x030f53dc, 0x0320c703, 0x03e1f08b, 0x00e68910, 0x01d5d9ab, 0x01956014, 0x002393bc}}, Y: Field{[10]uint32{0x02ed47af, 0x025c1b81, 0x00666045, 0x00332527, 0x02cd5b9d, 0x0003ef3f, 0x02da0afc, 0x01f06de7, 0x02e389d9, 0x0000be9c}}},
+ {X: Field{[10]uint32{0x00a2c30a, 0x01f9ffe9, 0x02509aae, 0x005a7bf0, 0x01559d73, 0x02181e80, 0x01549911, 0x000fdb13, 0x035c4adc, 0x000d7f55}}, Y: Field{[10]uint32{0x0248e000, 0x012b7472, 0x00aa1347, 0x03367252, 0x03dbf3ee, 0x033442b1, 0x0300926d, 0x02079f2d, 0x039d2748, 0x003e695d}}},
+ {X: Field{[10]uint32{0x010a9cf6, 0x00d7fb72, 0x032873c6, 0x017d7d76, 0x03efc12f, 0x031049b1, 0x00929a52, 0x00965452, 0x00507fd0, 0x0024cb93}}, Y: Field{[10]uint32{0x028ba783, 0x0187be6e, 0x01f2875f, 0x03ef36fc, 0x009e84ef, 0x034660b0, 0x036b1b24, 0x028670a7, 0x0221bbac, 0x00339af2}}},
+ {X: Field{[10]uint32{0x01fbea11, 0x01175cd2, 0x03fb211a, 0x02b4d77a, 0x0355d3e2, 0x03d165c1, 0x036a37f2, 0x014706f8, 0x024422a0, 0x0032b637}}, Y: Field{[10]uint32{0x001c347a, 0x008e99bc, 0x013e0533, 0x035e2a7f, 0x01308eeb, 0x013e1bc4, 0x0241c903, 0x01a7ca02, 0x031d4f66, 0x00122c37}}},
+ {X: Field{[10]uint32{0x009594d6, 0x03efa41b, 0x0357b462, 0x0323f3ad, 0x031919ff, 0x032cd8e0, 0x016aa646, 0x03eb9f40, 0x0304c847, 0x0027f1f4}}, Y: Field{[10]uint32{0x019860ff, 0x038e9143, 0x03c9e516, 0x01b39352, 0x00196367, 0x01ebf729, 0x029dd38a, 0x02861f36, 0x00e13bc6, 0x003745f0}}},
+ {X: Field{[10]uint32{0x008b5849, 0x00d5d866, 0x000b4c89, 0x03dd305f, 0x008300e4, 0x02537aee, 0x00654538, 0x0281771a, 0x00df10d4, 0x00106e9b}}, Y: Field{[10]uint32{0x007ad4c5, 0x026107f9, 0x03ac5930, 0x02133c54, 0x01ece57e, 0x00a0ccc8, 0x031e278b, 0x00259795, 0x03158c3f, 0x001fad8a}}},
+ {X: Field{[10]uint32{0x01c7377b, 0x01ee9104, 0x02884b22, 0x0037c15f, 0x03d5bbf3, 0x03bee1a4, 0x0174248c, 0x01ab9a8b, 0x025aaef3, 0x0007fe7f}}, Y: Field{[10]uint32{0x01e74278, 0x00815d7c, 0x00692165, 0x01416f99, 0x01506908, 0x032d57c2, 0x009cf41f, 0x0000e127, 0x036c585c, 0x001ae892}}},
+ {X: Field{[10]uint32{0x03f5d660, 0x03ce31b2, 0x03ebd893, 0x00507e3d, 0x026d1348, 0x0215b09c, 0x019d0704, 0x01b4a79b, 0x00440d70, 0x000a675f}}, Y: Field{[10]uint32{0x0103ff32, 0x0217ba8b, 0x000400fc, 0x03fe6d25, 0x0062f7d1, 0x01b7a6b3, 0x01b48877, 0x01d3832a, 0x00f34d03, 0x0003929d}}},
+ {X: Field{[10]uint32{0x02e3a67d, 0x02caff5c, 0x012d69f7, 0x00b73a94, 0x020b607c, 0x00f5ba4e, 0x0318ceb8, 0x03261db8, 0x02d90ec1, 0x00280ccf}}, Y: Field{[10]uint32{0x03a0539e, 0x0216467e, 0x0141e0d6, 0x00eedae2, 0x0019f83e, 0x007f9ed4, 0x03373932, 0x01da74d6, 0x03655f51, 0x00369f74}}},
+ {X: Field{[10]uint32{0x004251e0, 0x02e13e90, 0x020d2e75, 0x0005593a, 0x032821cf, 0x02a5a197, 0x00093d0b, 0x028cc14d, 0x02a22e52, 0x00169104}}, Y: Field{[10]uint32{0x030e4313, 0x0101e363, 0x0300c7cd, 0x009d53ad, 0x033675ab, 0x001b4a4e, 0x010bc0ab, 0x015c3a0e, 0x00e07e6c, 0x001a91e2}}},
+ {X: Field{[10]uint32{0x02b7b0b5, 0x008f3d8c, 0x03cdc3e8, 0x00770bf9, 0x01078335, 0x01a7e6d9, 0x0134ea6a, 0x00771839, 0x004c3b14, 0x0035dcbb}}, Y: Field{[10]uint32{0x009ac0df, 0x00a6f99a, 0x03cfdda9, 0x00bf6e26, 0x01c9ccd9, 0x036ace08, 0x010979dd, 0x0121f9c2, 0x000d1036, 0x002f64d0}}},
+ {X: Field{[10]uint32{0x01f89336, 0x0288d9db, 0x0321cd04, 0x0293b284, 0x03d4452f, 0x03903e01, 0x033e1cd6, 0x0130effe, 0x02d2c769, 0x002525e0}}, Y: Field{[10]uint32{0x02d436dc, 0x0351672e, 0x00930b68, 0x005325ef, 0x019f4e2c, 0x03358f15, 0x032e5dbb, 0x008ad50d, 0x027fb8ba, 0x0039f179}}},
+ {X: Field{[10]uint32{0x0057e6de, 0x013d85a9, 0x0070e233, 0x032185dd, 0x036d9ca0, 0x031271c7, 0x00a9e4d4, 0x03d67cf8, 0x01f575e6, 0x001fb9f5}}, Y: Field{[10]uint32{0x03d9f3ee, 0x01ccbbb5, 0x03d0197e, 0x000b5a81, 0x029cbbbe, 0x01be8c42, 0x0074add7, 0x00f99b24, 0x029c7612, 0x001118b6}}},
+ {X: Field{[10]uint32{0x013f843e, 0x02baedec, 0x0320b50f, 0x011c2ee0, 0x018a5548, 0x01505e54, 0x005ba7c1, 0x011ed6de, 0x030ae08d, 0x001e92d8}}, Y: Field{[10]uint32{0x01937c00, 0x035c1da7, 0x025dc6b5, 0x00641fe7, 0x0269a3b2, 0x02d26037, 0x023a524d, 0x0007a5c5, 0x004fb868, 0x00328939}}},
+ {X: Field{[10]uint32{0x02a82b96, 0x0071b2c6, 0x037939c3, 0x03cca653, 0x013a18ee, 0x02ed88f0, 0x02a55032, 0x03102902, 0x0242428a, 0x0034b642}}, Y: Field{[10]uint32{0x0234972a, 0x013568fc, 0x03b66746, 0x01b960b7, 0x01394a3b, 0x002c7838, 0x0039e064, 0x03567cc0, 0x02332367, 0x001d614b}}},
+ {X: Field{[10]uint32{0x015d13e0, 0x0382c5ba, 0x01b91340, 0x017120d2, 0x03a4809b, 0x00bb53cb, 0x01b56066, 0x037ecf68, 0x01ab6206, 0x00364926}}, Y: Field{[10]uint32{0x0271be38, 0x00a6caac, 0x0294111f, 0x0192f800, 0x00fa4dfc, 0x024eae98, 0x01400749, 0x03f86a3e, 0x00ed26a4, 0x00108d51}}},
+ {X: Field{[10]uint32{0x01d09a23, 0x020c3d71, 0x034dc8d5, 0x02f9b1af, 0x02bba6f2, 0x02dffe1e, 0x00e2d315, 0x01799b49, 0x02c25887, 0x003b0307}}, Y: Field{[10]uint32{0x00591421, 0x02e9058a, 0x00d7aee8, 0x0261d601, 0x018b798c, 0x01822fde, 0x009a237e, 0x02f46071, 0x03f1648a, 0x003949a9}}},
+ {X: Field{[10]uint32{0x03ba8863, 0x0384025a, 0x00c2ef30, 0x00205de6, 0x003a6ae5, 0x0243a814, 0x01b48052, 0x01662621, 0x0168835b, 0x001a4e02}}, Y: Field{[10]uint32{0x0311e5f4, 0x01c3d78b, 0x03345a61, 0x01d6064b, 0x037522df, 0x005341f1, 0x0297137a, 0x02e98d14, 0x039d80f0, 0x001c6fa8}}},
+ {X: Field{[10]uint32{0x00a9ab23, 0x02b7237f, 0x0062bebb, 0x0177d65b, 0x0115a40a, 0x007fcbfb, 0x00fe8d2e, 0x018df913, 0x01a19fd1, 0x00359ac7}}, Y: Field{[10]uint32{0x006b9946, 0x01a51d96, 0x03b6878a, 0x00749960, 0x015cc5d9, 0x001eccc5, 0x0217c4e6, 0x012edc72, 0x00ebbd2b, 0x001a33d9}}},
+ {X: Field{[10]uint32{0x0298c95f, 0x0037220c, 0x01695a51, 0x01729ad6, 0x01503647, 0x0264c590, 0x0350d70c, 0x018b2e49, 0x00a2c6fa, 0x00277663}}, Y: Field{[10]uint32{0x00fbe821, 0x00381f6b, 0x03c8187a, 0x0017663f, 0x03407509, 0x018ecc76, 0x01278b7e, 0x02735be3, 0x03b853b9, 0x00156a22}}},
+ {X: Field{[10]uint32{0x0141bfa2, 0x02a6b7b4, 0x01b925b9, 0x02336dea, 0x014efd84, 0x03078b5c, 0x00ecccd0, 0x03c6efa9, 0x002c842c, 0x0006d9af}}, Y: Field{[10]uint32{0x03673bea, 0x02e69c20, 0x00a890dd, 0x000620c7, 0x02402b35, 0x02108f2d, 0x003d88b6, 0x020ae2bd, 0x030155fe, 0x003f82d1}}},
+ {X: Field{[10]uint32{0x00eb688a, 0x001d72b2, 0x00312c1c, 0x03243c3a, 0x03c7d2d5, 0x0248b800, 0x016a61c2, 0x00c77b4e, 0x01c48a92, 0x0002ca03}}, Y: Field{[10]uint32{0x02738a74, 0x0338c1b4, 0x03ff7da9, 0x01854c73, 0x00498c82, 0x00aeaebc, 0x02cb3ad6, 0x02f99acc, 0x01a6a2f8, 0x00206dd1}}},
+ {X: Field{[10]uint32{0x018a6b5d, 0x0073717c, 0x0280f8cf, 0x01b3c055, 0x02413e90, 0x00438ba4, 0x00125ad5, 0x02e8720a, 0x011c9eb3, 0x001ef165}}, Y: Field{[10]uint32{0x00352a07, 0x02bd69a6, 0x01a1cd43, 0x03c3b88a, 0x000fbda2, 0x026b71b5, 0x026fc7f4, 0x02a2f6e2, 0x01d8480b, 0x00106e41}}},
+ {X: Field{[10]uint32{0x02eabfc1, 0x00b14efd, 0x02ea34ed, 0x0023713c, 0x01116479, 0x0172a1a5, 0x02530952, 0x015235da, 0x00d12318, 0x001a7fdd}}, Y: Field{[10]uint32{0x03de2419, 0x02f9dd6b, 0x01bde0d4, 0x025f7325, 0x011d6173, 0x00eb7d7f, 0x02aca1eb, 0x027de04b, 0x02288eb9, 0x003ce8f9}}},
+ {X: Field{[10]uint32{0x004af209, 0x014b86b2, 0x003b92c5, 0x0262a83c, 0x02ffa460, 0x039fda26, 0x028f8cdd, 0x034e967e, 0x013f01f6, 0x0017f9b7}}, Y: Field{[10]uint32{0x00dbfb55, 0x02f1d3d8, 0x01aacd6d, 0x00589d28, 0x03f356cc, 0x015443ab, 0x01197a91, 0x0340893b, 0x0101acb8, 0x0027baba}}},
+ {X: Field{[10]uint32{0x0105f5f0, 0x008b9671, 0x023b121d, 0x031e3338, 0x01d3b52b, 0x0314fe44, 0x029fafe9, 0x01d76dd1, 0x0122cb04, 0x0011a7a4}}, Y: Field{[10]uint32{0x0058d812, 0x0138bf04, 0x0237ecb8, 0x0200276d, 0x0280d8a5, 0x01348b09, 0x025825fa, 0x02e9afd6, 0x03a838b2, 0x003f9d21}}},
+ {X: Field{[10]uint32{0x0160e6ab, 0x018ed364, 0x00c1c06d, 0x0061c307, 0x0072a5e7, 0x02cc3e39, 0x01f816e8, 0x00a48ecb, 0x02bf06b6, 0x0007d28f}}, Y: Field{[10]uint32{0x01c89e2f, 0x031a9853, 0x02d39b77, 0x037a21c1, 0x011ebeeb, 0x00a6299f, 0x0138bd40, 0x02b86626, 0x02957602, 0x00263684}}},
+ {X: Field{[10]uint32{0x03b86b0f, 0x01e3af54, 0x00773c2f, 0x00b743e9, 0x00411722, 0x01bd4428, 0x00226ac2, 0x03fc333b, 0x01fe1c12, 0x00363aa5}}, Y: Field{[10]uint32{0x006288d9, 0x03bd1ca3, 0x03f5b25f, 0x026e8075, 0x01f154b5, 0x03a4b092, 0x00bebb3c, 0x03ca4ee2, 0x039edde6, 0x000556fb}}},
+ {X: Field{[10]uint32{0x0227cac6, 0x01ef53c4, 0x02527179, 0x017771fc, 0x002bb36f, 0x01c114c0, 0x014b2cf8, 0x0201c488, 0x03c797b3, 0x0006b628}}, Y: Field{[10]uint32{0x0057814c, 0x00f017d2, 0x02a1ccfa, 0x01741355, 0x0158398c, 0x03f3d47b, 0x00189576, 0x008dfc55, 0x03aa3755, 0x001a029d}}},
+ {X: Field{[10]uint32{0x00fa7d66, 0x03b0c609, 0x0292a3fd, 0x02cb0caa, 0x00355540, 0x03c2c3e2, 0x01426469, 0x0349b836, 0x010405d1, 0x003ffa9c}}, Y: Field{[10]uint32{0x0034eac8, 0x03413089, 0x00ed4cb5, 0x02bcb299, 0x00081f67, 0x01c0bb75, 0x02c8db75, 0x0281b113, 0x00e22d8d, 0x003b2891}}},
+ {X: Field{[10]uint32{0x0159d8ab, 0x0192b22e, 0x00f3fc17, 0x02e95764, 0x01d3abe9, 0x03f5bd9d, 0x02141c8c, 0x02226152, 0x03a3f7fc, 0x0012b156}}, Y: Field{[10]uint32{0x00be2bd2, 0x02f24efe, 0x039ce15b, 0x02d06f61, 0x03714821, 0x0062c412, 0x0252d141, 0x03edeff4, 0x0391f135, 0x00271eca}}},
+ {X: Field{[10]uint32{0x03718ac4, 0x01ebd42e, 0x01536fe2, 0x02a72949, 0x02bc7061, 0x0196e280, 0x01de0eb8, 0x02933bca, 0x00677aa9, 0x0017e051}}, Y: Field{[10]uint32{0x00d9c042, 0x033c4064, 0x01b3669a, 0x0251cf8e, 0x022b8cb8, 0x00c07ec0, 0x00340716, 0x02c9bf99, 0x01dc4062, 0x002f6a59}}},
+ {X: Field{[10]uint32{0x01dd88bb, 0x03ac551d, 0x0390388b, 0x029346b2, 0x02da5f96, 0x016607cc, 0x029f2130, 0x01d2612c, 0x03043791, 0x003cdcb2}}, Y: Field{[10]uint32{0x02367d89, 0x002ad186, 0x00efcb2a, 0x03b38cb1, 0x007ceda2, 0x01a50653, 0x00a0ea07, 0x03540068, 0x035c1e62, 0x0020b5a3}}},
+ {X: Field{[10]uint32{0x0359b128, 0x0314c82e, 0x026927a3, 0x03c890f8, 0x02878ec6, 0x03efe92c, 0x03133753, 0x0011e0d8, 0x03c54576, 0x0003ec4a}}, Y: Field{[10]uint32{0x0153aef5, 0x01af9712, 0x03e17a92, 0x01dff5ef, 0x01961930, 0x009329a0, 0x01ac0cba, 0x0386d6ed, 0x011867da, 0x000fe080}}},
+ {X: Field{[10]uint32{0x00c0ea07, 0x03fe0658, 0x02447316, 0x0286c2a4, 0x034adafe, 0x01ea5d1f, 0x03075601, 0x0128d3d0, 0x01ac918a, 0x000f65d6}}, Y: Field{[10]uint32{0x02018aaa, 0x02956695, 0x03ecc6fc, 0x0299defa, 0x00caa317, 0x02a5925f, 0x031d5dda, 0x00cc2ad9, 0x03cf6d6a, 0x00033676}}},
+ {X: Field{[10]uint32{0x023e00ce, 0x015720bf, 0x02909844, 0x037d6390, 0x019f476f, 0x01a6f1f7, 0x0349be46, 0x014870fe, 0x02b3699c, 0x003ab82a}}, Y: Field{[10]uint32{0x0317259e, 0x01feb853, 0x00bdd977, 0x0078478c, 0x0362c7ef, 0x017a0228, 0x0377b562, 0x039f0a66, 0x00dd450e, 0x002eb73a}}},
+ {X: Field{[10]uint32{0x011eb851, 0x002afb51, 0x0338455e, 0x01f49328, 0x0343718a, 0x0097b974, 0x0225d0e9, 0x033aa95d, 0x02eec2c0, 0x003fb494}}, Y: Field{[10]uint32{0x002c648f, 0x0296a2ba, 0x03b4c457, 0x007173c2, 0x00dd0721, 0x001d5bd9, 0x0166b277, 0x03bf3087, 0x02ae56ce, 0x0019aeed}}},
+ {X: Field{[10]uint32{0x017f9dbd, 0x021e4e8b, 0x013c9bc0, 0x00be74c0, 0x022362af, 0x02eac2c8, 0x03fb04d3, 0x030f0505, 0x02bd022a, 0x003698e7}}, Y: Field{[10]uint32{0x022466d5, 0x029ed3a0, 0x0031c10a, 0x03a8f9e8, 0x003627aa, 0x00daef95, 0x034ed0d5, 0x03a7cbe9, 0x022055f1, 0x0020fc9d}}},
+ {X: Field{[10]uint32{0x02ab90dd, 0x01f3f09f, 0x0282ce09, 0x029ab2b9, 0x0132ced2, 0x031c77e4, 0x00d3ac67, 0x0116bd35, 0x00ded773, 0x00149349}}, Y: Field{[10]uint32{0x02b7f5c2, 0x01e81d3e, 0x03b01b2f, 0x000221ec, 0x032d010a, 0x003f9f3f, 0x036f55c9, 0x01f170c6, 0x00f7c692, 0x003933d7}}},
+ {X: Field{[10]uint32{0x00ae4f94, 0x03149a15, 0x021c4b24, 0x02917ef0, 0x0028672d, 0x00a185ed, 0x007cde0c, 0x02d830d7, 0x02d5fb52, 0x001f6b0b}}, Y: Field{[10]uint32{0x03794038, 0x023b83f9, 0x0309ea57, 0x02db4a0a, 0x02f6cc11, 0x034919b0, 0x035c4a2b, 0x022199c2, 0x007ae916, 0x00331ab3}}},
+ {X: Field{[10]uint32{0x016083ae, 0x01472fb9, 0x03ea6f7c, 0x02728e24, 0x02887e5d, 0x003a4a46, 0x019d10d0, 0x03d67dae, 0x024dda61, 0x0017d1ad}}, Y: Field{[10]uint32{0x0283a8ae, 0x007cf678, 0x0182e5ee, 0x02e9f86d, 0x0109bfa6, 0x0155ca4a, 0x02dcfb9c, 0x00995541, 0x0055da25, 0x001810f4}}},
+ {X: Field{[10]uint32{0x01e14aa3, 0x0258685f, 0x03635175, 0x0308e29f, 0x0348ef0f, 0x023177c3, 0x0241ec2b, 0x017c85b9, 0x0033b6a2, 0x002218fb}}, Y: Field{[10]uint32{0x02b42541, 0x032c4ac3, 0x037a117d, 0x020f683f, 0x0345b2a5, 0x01241956, 0x00292777, 0x016070be, 0x00f31e52, 0x00275986}}},
+ {X: Field{[10]uint32{0x03a2f9f4, 0x035a9a0c, 0x02a03a1b, 0x03dcfa4b, 0x03b377f3, 0x03c9be47, 0x00184c7e, 0x016739b6, 0x00463ac4, 0x0021500d}}, Y: Field{[10]uint32{0x01b399cb, 0x03dc9e31, 0x01430438, 0x03c8ec32, 0x018f7719, 0x00c4ff8d, 0x012a5b18, 0x019266c9, 0x02968ac5, 0x000b47c4}}},
+ {X: Field{[10]uint32{0x02223c7f, 0x032b7597, 0x03201379, 0x009d7adf, 0x006a325d, 0x018899ad, 0x0251dbc3, 0x0104aff9, 0x03f6217e, 0x0002fdac}}, Y: Field{[10]uint32{0x03ba748b, 0x02c6bbe5, 0x03eaf0a9, 0x0035abc6, 0x01ebfad9, 0x03bb8f7b, 0x0041e7dc, 0x029157ec, 0x0154c14a, 0x00284582}}},
+ {X: Field{[10]uint32{0x02d9e59d, 0x009396af, 0x03ffc771, 0x00662e86, 0x03860ca2, 0x0026a933, 0x02079ea4, 0x0184d52a, 0x002d3c18, 0x0012c808}}, Y: Field{[10]uint32{0x035b8873, 0x017a2a43, 0x002bab55, 0x01154418, 0x007703eb, 0x03c47641, 0x01d858f2, 0x0302c2e9, 0x0103c107, 0x0027da11}}},
+ {X: Field{[10]uint32{0x02421dd2, 0x01a96a81, 0x03e28268, 0x03c989f2, 0x0199c050, 0x009ed64c, 0x024f5331, 0x02692ce8, 0x00806d67, 0x001021fe}}, Y: Field{[10]uint32{0x0188e8b9, 0x01c1f4af, 0x0121b5a5, 0x0105627e, 0x01698800, 0x0263d696, 0x008c8836, 0x035220cf, 0x0184b3d9, 0x00120e2b}}},
+ {X: Field{[10]uint32{0x0297b79c, 0x0244c6bf, 0x02ac766d, 0x00131e43, 0x00538775, 0x01693f0d, 0x01b91e00, 0x01d01a8b, 0x0287cb2e, 0x000569e4}}, Y: Field{[10]uint32{0x014a238a, 0x029069ae, 0x003fadf2, 0x033ee5aa, 0x031bd597, 0x00b18583, 0x03ce497c, 0x01cb8f4f, 0x03220765, 0x0027d3bc}}},
+ {X: Field{[10]uint32{0x03bcecbe, 0x026cd0f8, 0x02812273, 0x0029f888, 0x02404fb1, 0x032cf502, 0x0233d61b, 0x012f13fc, 0x0063c052, 0x000713e8}}, Y: Field{[10]uint32{0x02d48bd6, 0x0231cf58, 0x003533aa, 0x02cafd34, 0x03d39c90, 0x035cc2ca, 0x0209e9eb, 0x00bbae5c, 0x01eca2d8, 0x000aa158}}},
+ {X: Field{[10]uint32{0x01f2a636, 0x0058ed6b, 0x02c2656d, 0x029b5221, 0x02bb50b8, 0x014c4bca, 0x03936c18, 0x02cb1499, 0x03a743c1, 0x00281c22}}, Y: Field{[10]uint32{0x031a20ea, 0x017a534d, 0x00324584, 0x0188d669, 0x007dc66a, 0x004b874b, 0x01b81550, 0x022331b2, 0x01f19169, 0x002563d1}}},
+ {X: Field{[10]uint32{0x00acad7d, 0x00de4f3a, 0x02858c21, 0x0152c4a6, 0x0109b797, 0x00b8cfff, 0x009d71f0, 0x010b9b84, 0x034df01a, 0x0035e582}}, Y: Field{[10]uint32{0x03deb920, 0x03078676, 0x00707d81, 0x024d8c46, 0x02335661, 0x03195cc2, 0x003d0e1d, 0x0074ad87, 0x01aa5a84, 0x00232bc6}}},
+ {X: Field{[10]uint32{0x038ba611, 0x030c902f, 0x03789daa, 0x01b9ba28, 0x02a7c450, 0x03f286cc, 0x0225ba38, 0x01c3565b, 0x006bf8ba, 0x001e80f7}}, Y: Field{[10]uint32{0x037d9028, 0x021293df, 0x03881fcb, 0x0207425a, 0x00048a36, 0x01dcf85c, 0x023e378b, 0x01a15969, 0x0222292d, 0x001c3c67}}},
+ {X: Field{[10]uint32{0x03443b97, 0x00e3c971, 0x01dbac2f, 0x0281c9bf, 0x01da516c, 0x01b20ea9, 0x0189850c, 0x00d0470e, 0x0262a8fa, 0x0014ea69}}, Y: Field{[10]uint32{0x03945e25, 0x03fd6780, 0x0036e140, 0x0316e00c, 0x022adcfd, 0x01134797, 0x013279e8, 0x030c6fcc, 0x02506179, 0x00177ab0}}},
+ {X: Field{[10]uint32{0x02b2cdf7, 0x0143673f, 0x036f20a4, 0x02ca1da0, 0x01b7ee99, 0x0306eeaa, 0x0269af63, 0x00361bff, 0x02b63dbb, 0x0021ae51}}, Y: Field{[10]uint32{0x0374b1fa, 0x012d6603, 0x03a62ed7, 0x03006665, 0x037cbc39, 0x00793c4c, 0x018ea1ba, 0x038a9b2c, 0x0383d3d0, 0x0011101d}}},
+ {X: Field{[10]uint32{0x03752d8e, 0x0054b9bb, 0x019babef, 0x03fee9c7, 0x036b28c8, 0x0034908f, 0x01567262, 0x012d1bda, 0x00f5cb88, 0x00033a07}}, Y: Field{[10]uint32{0x02a9248c, 0x02d50117, 0x009262d0, 0x03fca243, 0x02979177, 0x001306aa, 0x01bf924c, 0x019130d2, 0x01738120, 0x001d6bf6}}},
+ {X: Field{[10]uint32{0x01172ed9, 0x033a4b78, 0x02b8fbc6, 0x010c4ce8, 0x037b791d, 0x01f55f51, 0x006cb9e4, 0x0134b67e, 0x02413a46, 0x0010441b}}, Y: Field{[10]uint32{0x036741c6, 0x031be87d, 0x03374d2e, 0x00a9cde6, 0x002ce4e4, 0x01ce83e2, 0x01601a27, 0x0082e001, 0x00c230e9, 0x0038b291}}},
+ {X: Field{[10]uint32{0x00b49777, 0x0106d288, 0x001524e1, 0x0328814b, 0x03bca3f1, 0x01eb1bda, 0x006541ec, 0x00284b95, 0x02a04e83, 0x003a707c}}, Y: Field{[10]uint32{0x02a58124, 0x0247e6cc, 0x0030886b, 0x0087d754, 0x005ca737, 0x0059c4b2, 0x0173fcd5, 0x004b08a6, 0x004308dd, 0x001477ce}}},
+ {X: Field{[10]uint32{0x033bbf2c, 0x0173c579, 0x01511fce, 0x009d0943, 0x039be21f, 0x00554b8e, 0x0225775f, 0x03fcf92e, 0x012dc5e8, 0x0022ee78}}, Y: Field{[10]uint32{0x000d1152, 0x03c46a34, 0x0162f91e, 0x022af08e, 0x02b4d096, 0x03067137, 0x024fcf50, 0x00dcc070, 0x037a273c, 0x0022a08a}}},
+ {X: Field{[10]uint32{0x00b6bd0f, 0x0165e9eb, 0x011399ad, 0x00f80a5f, 0x01697f3f, 0x03d9b80c, 0x0294c3ee, 0x01de4791, 0x02f1da22, 0x002c0163}}, Y: Field{[10]uint32{0x02205a2a, 0x016cbc2f, 0x02978c80, 0x0111f4ae, 0x01e5deb6, 0x03ffa009, 0x000bee68, 0x00e05363, 0x034a0579, 0x001fd6ea}}},
+ {X: Field{[10]uint32{0x002522a5, 0x014da32b, 0x025c8db9, 0x015d2e1c, 0x006dfc35, 0x0137f2ac, 0x0202b780, 0x03f7594b, 0x002d8df5, 0x00077b75}}, Y: Field{[10]uint32{0x02bca540, 0x019567ad, 0x0254f5b4, 0x037bcd5d, 0x0024b918, 0x020ed86e, 0x03f4a8f9, 0x00349463, 0x00492373, 0x000c1569}}},
+ {X: Field{[10]uint32{0x000ea544, 0x03cbbd0e, 0x01f7da46, 0x00f67571, 0x03e47181, 0x00af0e76, 0x005b0b51, 0x012ea4fd, 0x0248c679, 0x001d8694}}, Y: Field{[10]uint32{0x032c1292, 0x03442c20, 0x01fc5c60, 0x00217eb4, 0x029f7034, 0x016ea3b5, 0x018d0a39, 0x033ab178, 0x0130c4f5, 0x0006177b}}},
+ {X: Field{[10]uint32{0x03aa5caf, 0x02ae2638, 0x00f2ffef, 0x021d4069, 0x03a17496, 0x004f06d6, 0x0020982a, 0x03433237, 0x0360e515, 0x0003c756}}, Y: Field{[10]uint32{0x00a0d91d, 0x03b673de, 0x00708e42, 0x02dd5265, 0x03ee6f9a, 0x03ad8fc1, 0x033a9e48, 0x03630805, 0x026c395f, 0x00157f5d}}},
+ {X: Field{[10]uint32{0x0337425f, 0x0264ff6e, 0x002d7fba, 0x012f0c09, 0x02fb09ff, 0x00711156, 0x02ba0bf6, 0x0002a95d, 0x004c9b79, 0x0015a72d}}, Y: Field{[10]uint32{0x00c350b1, 0x01009c83, 0x026d0d33, 0x03a03895, 0x01c1131d, 0x031f768f, 0x038f646a, 0x038f5079, 0x00d2ff1a, 0x0037f7ae}}},
+ {X: Field{[10]uint32{0x021851eb, 0x031e1f2e, 0x00776d22, 0x0045f734, 0x039c2dda, 0x0363e142, 0x0147a787, 0x00e7a146, 0x029ad998, 0x000f966d}}, Y: Field{[10]uint32{0x012e20b3, 0x03620d16, 0x036d434c, 0x017acb27, 0x03705074, 0x01fb13c9, 0x01d93583, 0x02c0c1af, 0x02a48bfe, 0x001ccb34}}},
+ {X: Field{[10]uint32{0x01296967, 0x03a93125, 0x0087b0e6, 0x015ccb0c, 0x0181acec, 0x03f0221b, 0x02502403, 0x015a0a60, 0x022107b4, 0x00291b59}}, Y: Field{[10]uint32{0x01763d33, 0x006b3bee, 0x03464005, 0x02139849, 0x01461478, 0x026a0823, 0x0097a73f, 0x02c18890, 0x00f429a5, 0x00050333}}},
+ {X: Field{[10]uint32{0x0079ab1c, 0x005b1194, 0x0392774d, 0x03fb6bad, 0x004ad70e, 0x0055d727, 0x000c427d, 0x014ee9f0, 0x019cf25c, 0x002e4839}}, Y: Field{[10]uint32{0x0045b67f, 0x0065f07c, 0x005c9d43, 0x017cdfd6, 0x039201ec, 0x0195ae4d, 0x01435a61, 0x02223475, 0x00f1d4ba, 0x00181858}}},
+ {X: Field{[10]uint32{0x00bfa8c5, 0x0381adfe, 0x00713896, 0x03663417, 0x023b88b6, 0x02c9c36d, 0x03da1efd, 0x00dee7ab, 0x02e1e7d8, 0x0004b3c6}}, Y: Field{[10]uint32{0x01c99c0f, 0x03329a4e, 0x035d91e8, 0x01b52141, 0x03c4c1d6, 0x0273f62c, 0x0323d7be, 0x024d2c27, 0x0213181b, 0x00383599}}},
+ {X: Field{[10]uint32{0x01c0ec1f, 0x03ce74e3, 0x0230287f, 0x0002f84e, 0x02eb93a9, 0x00ca0553, 0x00620e5a, 0x02b28b98, 0x03ae0a4e, 0x001aab49}}, Y: Field{[10]uint32{0x00a1f46a, 0x0189aee5, 0x008112fe, 0x01d0d0b0, 0x02d46814, 0x0315ff5e, 0x03e8cd2d, 0x0054e789, 0x01c5caa2, 0x0024c855}}},
+ {X: Field{[10]uint32{0x00f870a0, 0x00d0fb2b, 0x01c36ce9, 0x03e487dd, 0x008d168b, 0x0301b06e, 0x03489166, 0x019afa0a, 0x014e7cb1, 0x0004d336}}, Y: Field{[10]uint32{0x01453236, 0x02230ec2, 0x014c0fab, 0x039f9cf4, 0x012f7c8f, 0x03c268e6, 0x02a51cff, 0x03f517a0, 0x03c5e956, 0x0010a99c}}},
+ {X: Field{[10]uint32{0x023989ee, 0x027d6d56, 0x00e2c56d, 0x0063729a, 0x02429b1d, 0x0072173b, 0x002971fa, 0x031e1a31, 0x018c7b7c, 0x00357735}}, Y: Field{[10]uint32{0x01208100, 0x01989388, 0x035c5e31, 0x002bc2ed, 0x0345bedd, 0x028ce2f1, 0x01a05297, 0x032b93b3, 0x0130ef1b, 0x00383290}}},
+ {X: Field{[10]uint32{0x020d8c8e, 0x02b27403, 0x02861f66, 0x02f454e2, 0x033e3567, 0x01a47cce, 0x01fa4cdb, 0x02422e41, 0x0134c344, 0x00254759}}, Y: Field{[10]uint32{0x017046f1, 0x017cc1bb, 0x039f9d57, 0x024669f5, 0x0295a5f6, 0x0114957d, 0x001a9903, 0x01e4a19a, 0x0122eb84, 0x003bbcd6}}},
+ {X: Field{[10]uint32{0x01cdd0fc, 0x019973f0, 0x01e27b33, 0x02ea59bb, 0x02690af0, 0x02d48455, 0x0184c9c9, 0x025935db, 0x004b25f7, 0x0033b6e9}}, Y: Field{[10]uint32{0x03c79e7e, 0x006de6a1, 0x037d94c2, 0x009246a3, 0x02187e71, 0x024cc5ad, 0x007b6b64, 0x026bc746, 0x0049cb8e, 0x00201aa4}}},
+ {X: Field{[10]uint32{0x00a10b54, 0x01bd2ab6, 0x02a2049c, 0x03445124, 0x01d1c7d2, 0x00afb285, 0x02bd39d3, 0x01afb8a6, 0x0260d130, 0x0013fc0d}}, Y: Field{[10]uint32{0x02d1e574, 0x0389dcc1, 0x01893d99, 0x01774bfc, 0x014990f2, 0x039c7da2, 0x02e8bc8b, 0x0265478d, 0x02698fd8, 0x0030b1d7}}},
+ {X: Field{[10]uint32{0x022e0ca7, 0x0010b3b3, 0x01824389, 0x0289a0ee, 0x00c78061, 0x037edc80, 0x03b77020, 0x019197a1, 0x01088dbd, 0x003022f5}}, Y: Field{[10]uint32{0x008d7307, 0x024c957e, 0x03e78417, 0x02d82318, 0x011db329, 0x00ea7c5c, 0x02408842, 0x0125eac5, 0x01d61343, 0x00158806}}},
+ {X: Field{[10]uint32{0x03f9857d, 0x03f576d2, 0x01e3a07a, 0x02a09d28, 0x00955bdd, 0x022eb0c6, 0x005cdd22, 0x033ac8ee, 0x00aa6fd2, 0x001237f7}}, Y: Field{[10]uint32{0x020287ce, 0x017fe8ba, 0x011710d5, 0x02d450c7, 0x00af60f4, 0x0390a555, 0x014e76fc, 0x019ee945, 0x022e8961, 0x000a9198}}},
+ {X: Field{[10]uint32{0x02a1f236, 0x02b3fcc5, 0x03ceebbf, 0x01e68ce8, 0x02802c14, 0x01c094e0, 0x0376b471, 0x03e20f2f, 0x0100d81a, 0x00101082}}, Y: Field{[10]uint32{0x0385e3f7, 0x01a346de, 0x01b4be41, 0x01bbc678, 0x007831e9, 0x02d50957, 0x00f50fa2, 0x02d4ecc2, 0x00e0dbbc, 0x00219811}}},
+ {X: Field{[10]uint32{0x022bdc42, 0x00bcdf8c, 0x0156f8b1, 0x01080ec4, 0x02ec1e31, 0x03a64823, 0x02c20184, 0x019f1dc3, 0x007b23b6, 0x0025a8dd}}, Y: Field{[10]uint32{0x00f22ab2, 0x01f3618f, 0x03af798c, 0x03d29281, 0x03dc7545, 0x034c975b, 0x010b04ba, 0x01191ccc, 0x03c8df8c, 0x0019ec2c}}},
+ {X: Field{[10]uint32{0x00460182, 0x0244caf2, 0x02784503, 0x0246a345, 0x03f1db3e, 0x00545212, 0x0361f0cb, 0x01e5a490, 0x017de403, 0x0033c1c0}}, Y: Field{[10]uint32{0x0397939d, 0x006ece4d, 0x0106799b, 0x0327996b, 0x00e2eb60, 0x01a5018e, 0x036e762f, 0x0278c343, 0x010762f2, 0x002de86c}}},
+ {X: Field{[10]uint32{0x018beb15, 0x0173d688, 0x036dc080, 0x028f75c9, 0x0393507a, 0x01d7f756, 0x01b90ded, 0x02dbdeb4, 0x00b25b0b, 0x0004ad6e}}, Y: Field{[10]uint32{0x038933da, 0x02d5bb6d, 0x009aee89, 0x01942cd8, 0x015a5bc1, 0x01032866, 0x02d6368d, 0x02866e03, 0x03678cef, 0x00174f51}}},
+ {X: Field{[10]uint32{0x03a46765, 0x0270de84, 0x0327dcd9, 0x0266f66d, 0x0177ecd2, 0x0062dbc6, 0x018b9ace, 0x039b64e6, 0x009ce866, 0x0021e6d1}}, Y: Field{[10]uint32{0x03781c63, 0x004ea0d8, 0x02baec6c, 0x0057c0f9, 0x01f0c452, 0x006a3679, 0x0350c4e9, 0x03ec4ab3, 0x00eb758c, 0x002c3120}}},
+ {X: Field{[10]uint32{0x00c7dead, 0x01ee4283, 0x0121dd2b, 0x00332cdb, 0x01e50228, 0x00ffbc92, 0x03a401dd, 0x02807747, 0x0383e9d3, 0x000bb121}}, Y: Field{[10]uint32{0x01a67fce, 0x03c31fa1, 0x00703ca2, 0x020419e6, 0x0283fd8f, 0x03ad1a68, 0x01e61505, 0x038b2869, 0x012478f9, 0x003ec0a4}}},
+ {X: Field{[10]uint32{0x037c3ce7, 0x008824d0, 0x03a83aee, 0x03eef61c, 0x025b7878, 0x0051655a, 0x03e8fcd2, 0x036c1ce7, 0x025827be, 0x001e7328}}, Y: Field{[10]uint32{0x00ac467e, 0x02073aa7, 0x015a8d33, 0x02c8b064, 0x00bee990, 0x03add2cc, 0x00b7c483, 0x021d4053, 0x0293d82e, 0x003fd222}}},
+ {X: Field{[10]uint32{0x02dbd207, 0x00f37556, 0x01cd93e9, 0x0203526a, 0x028e146a, 0x00185aa9, 0x02b9eed4, 0x022dea09, 0x00ca3d2b, 0x00311129}}, Y: Field{[10]uint32{0x012d0f18, 0x03f09cc2, 0x032319d1, 0x003ee3f0, 0x00ac00ad, 0x037b41a1, 0x01ae3381, 0x00130950, 0x00a963d5, 0x001344da}}},
+ {X: Field{[10]uint32{0x03f3e7a8, 0x0154a6f3, 0x03c267ee, 0x02298124, 0x02dbed32, 0x020d7a35, 0x024e2050, 0x0112c961, 0x0050cc0e, 0x000fb91f}}, Y: Field{[10]uint32{0x00a5f095, 0x0072a7a4, 0x0391f84e, 0x00c00f46, 0x00b6229a, 0x0117890f, 0x02496401, 0x02a1ef0c, 0x0339056e, 0x003e9554}}},
+ {X: Field{[10]uint32{0x0009980c, 0x004b5f72, 0x020a81c0, 0x0364b464, 0x038e69e2, 0x03e6c3d1, 0x02251a29, 0x02edfd08, 0x01873036, 0x003a58f2}}, Y: Field{[10]uint32{0x01c52fd6, 0x009e8f15, 0x025e6180, 0x035b1fe3, 0x02140f92, 0x0202c5cf, 0x002bfa48, 0x02fcbc49, 0x03b0779b, 0x0003fe56}}},
+ {X: Field{[10]uint32{0x008fc07d, 0x00473195, 0x008bd3f7, 0x01439a1b, 0x0023738e, 0x011be8e5, 0x024b747a, 0x02e2e6bf, 0x035bb6a1, 0x002abd81}}, Y: Field{[10]uint32{0x02f2b0cb, 0x0354866a, 0x0098b1bb, 0x01baef7e, 0x0253ab32, 0x03ad047a, 0x005bd162, 0x0328707a, 0x02ec6d11, 0x001336c2}}},
+ {X: Field{[10]uint32{0x0157ac0f, 0x031d6150, 0x012986e4, 0x0357aa48, 0x02842b44, 0x0175c22a, 0x0174a18d, 0x01d5b638, 0x0017d8e9, 0x001a4792}}, Y: Field{[10]uint32{0x00c0c222, 0x03d01da8, 0x008c2d1f, 0x037ca7d4, 0x034bb9a8, 0x00be4a1c, 0x010eb157, 0x01eb5e03, 0x020b3bfa, 0x0027abae}}},
+ {X: Field{[10]uint32{0x0344996a, 0x03821ff9, 0x03fd81d9, 0x02cc72bc, 0x00c77dbf, 0x020f6b63, 0x01c9d4c5, 0x01292250, 0x01bb45af, 0x0030f9bf}}, Y: Field{[10]uint32{0x008366f2, 0x010af258, 0x00a730e6, 0x01d2d526, 0x010b8694, 0x02b13a5e, 0x0207bfd1, 0x00a6e3fb, 0x011e65ab, 0x0032a663}}},
+ {X: Field{[10]uint32{0x0140701f, 0x03002cc2, 0x013868ce, 0x03e00ccf, 0x02923ead, 0x01f17265, 0x032630be, 0x00973c87, 0x0320a55d, 0x003b6f58}}, Y: Field{[10]uint32{0x01e4889e, 0x005090d3, 0x003e3f7a, 0x0143dacb, 0x025e3d3d, 0x038a3e52, 0x00cd12bf, 0x03d79322, 0x02e7afce, 0x00359464}}},
+ {X: Field{[10]uint32{0x0295d336, 0x02d30d3a, 0x005dad7c, 0x03b67536, 0x02b29684, 0x00f0dd04, 0x02fd2494, 0x0382e2b0, 0x0183a80a, 0x0032567b}}, Y: Field{[10]uint32{0x032b168b, 0x0268b869, 0x03e5f8b5, 0x023804bd, 0x014de5f5, 0x00965c30, 0x00b0e970, 0x03c94ab6, 0x02bb8dcc, 0x00203076}}},
+ {X: Field{[10]uint32{0x02ed9237, 0x00f7e0cf, 0x0231274e, 0x03b76992, 0x022c5bc6, 0x034b573e, 0x00c90224, 0x0013a762, 0x01744710, 0x001de331}}, Y: Field{[10]uint32{0x02916c17, 0x00b724e4, 0x0360946b, 0x03f94730, 0x01675720, 0x02e48767, 0x012e502d, 0x007009ee, 0x01316b2a, 0x003ba88f}}},
+ {X: Field{[10]uint32{0x03b42055, 0x02bf2598, 0x02d9a5c2, 0x011b4fef, 0x00173e7e, 0x036634b0, 0x03299f81, 0x015abd0f, 0x00388c36, 0x00287e1d}}, Y: Field{[10]uint32{0x016f4afc, 0x0261e9f5, 0x0284eabb, 0x03fb71ca, 0x015d874a, 0x0264d9e1, 0x0150e79b, 0x035b16cc, 0x00430820, 0x00042f21}}},
+ {X: Field{[10]uint32{0x00224a5d, 0x008247da, 0x036a3d00, 0x020dd503, 0x028f7fa5, 0x00f410fb, 0x01a1839c, 0x022e2b36, 0x030b2d5f, 0x00322b5f}}, Y: Field{[10]uint32{0x03aebf8b, 0x017c6471, 0x01ec38e6, 0x02d4455f, 0x022a1cd4, 0x0229ff92, 0x01507cf1, 0x016e68b4, 0x0180eebe, 0x000c062d}}},
+ {X: Field{[10]uint32{0x0020055f, 0x020436d2, 0x02d20bea, 0x01028a9e, 0x031ecf38, 0x02b9d9fd, 0x024e4261, 0x03f5eedf, 0x02640b93, 0x00309754}}, Y: Field{[10]uint32{0x025ad684, 0x027a3891, 0x03524c34, 0x03b0e851, 0x02bf331a, 0x02d23b4c, 0x01fffbce, 0x00ac3e8a, 0x00c76e3f, 0x003e8572}}},
+ {X: Field{[10]uint32{0x0178f92b, 0x018afd7a, 0x032f2ccc, 0x01de22d7, 0x03283168, 0x02cb61ce, 0x03224dcc, 0x02feb6eb, 0x02eb7e4c, 0x00342e5c}}, Y: Field{[10]uint32{0x03ab8e3b, 0x0390837d, 0x03f56e94, 0x00c61082, 0x0275610b, 0x008f9e1e, 0x03bcb4cf, 0x01614aab, 0x00a1606a, 0x003bd74f}}},
+ {X: Field{[10]uint32{0x030a2d07, 0x02010ac6, 0x014ab56c, 0x0146ef0a, 0x02d393e8, 0x02604cad, 0x008791ab, 0x0111e591, 0x00835856, 0x003e2d13}}, Y: Field{[10]uint32{0x0070a27c, 0x007b7fba, 0x00ed0b8e, 0x000756ec, 0x022dbe0c, 0x03239d93, 0x0051362f, 0x0102fba6, 0x02bf0420, 0x0030a090}}},
+ {X: Field{[10]uint32{0x025666b7, 0x02df20f6, 0x02d368ac, 0x00641469, 0x005d9424, 0x00bf448d, 0x0010adc1, 0x02ab78e5, 0x01016f72, 0x0039f2e2}}, Y: Field{[10]uint32{0x02b21697, 0x01070d75, 0x00f63953, 0x02032c3e, 0x03f0c87e, 0x00e8595b, 0x014ee6c5, 0x03675fbf, 0x012246b6, 0x00378d9d}}},
+ {X: Field{[10]uint32{0x0279d87f, 0x031d0930, 0x02167fb2, 0x03925733, 0x01f40f93, 0x01317abd, 0x02894786, 0x03d2aa4b, 0x028f14e3, 0x00022c84}}, Y: Field{[10]uint32{0x00f5d246, 0x02c39243, 0x00c11cbe, 0x0356e0c1, 0x02699926, 0x020c0c0f, 0x0012068a, 0x02d2c406, 0x004af469, 0x0039fb4e}}},
+ {X: Field{[10]uint32{0x013b4afb, 0x01023d42, 0x00317658, 0x0075e17a, 0x001f3f63, 0x02d6cc7d, 0x036a5f3a, 0x035618e2, 0x01db3cbc, 0x003cd36d}}, Y: Field{[10]uint32{0x003dd3d9, 0x00c3f543, 0x02f2d56e, 0x018d3263, 0x005bf112, 0x03ff06b1, 0x031a1c74, 0x02119be8, 0x0372bb2c, 0x0037f39c}}},
+ {X: Field{[10]uint32{0x00aabdb8, 0x017570bb, 0x01c86a96, 0x03937494, 0x0110b4fe, 0x03294cee, 0x00a48eab, 0x035a176b, 0x0209a445, 0x0030da27}}, Y: Field{[10]uint32{0x0279e3f4, 0x007c8bc5, 0x017a155c, 0x01f8e964, 0x03d62e18, 0x0101d747, 0x03efbe4f, 0x00feef0c, 0x005a6a26, 0x001e0134}}},
+ {X: Field{[10]uint32{0x03005cbc, 0x022832cf, 0x00a78d70, 0x0128ad1f, 0x03f1e47d, 0x0025624b, 0x0266d626, 0x0284341e, 0x01ecf776, 0x001ffe65}}, Y: Field{[10]uint32{0x026ea90d, 0x0317ab32, 0x019f5cd5, 0x0343a4a6, 0x000e3911, 0x01b420a2, 0x00a4d115, 0x0390c337, 0x03745f17, 0x003b7371}}},
+ {X: Field{[10]uint32{0x027d4d27, 0x0094fb10, 0x028e41c0, 0x035873f2, 0x010db78b, 0x0108faed, 0x03183512, 0x012fe5a6, 0x02626223, 0x000d98a8}}, Y: Field{[10]uint32{0x002e1b09, 0x032aeb07, 0x0199fc41, 0x026de6d2, 0x03d550ef, 0x032b28da, 0x000f671c, 0x039a703d, 0x00420f07, 0x00222988}}},
+ {X: Field{[10]uint32{0x0354e8d1, 0x00ed050f, 0x03951176, 0x03a45852, 0x00b6b4eb, 0x01281ce2, 0x00e66ee2, 0x0310ba5c, 0x002e06d9, 0x000b049f}}, Y: Field{[10]uint32{0x03dd6629, 0x01672743, 0x0193aaae, 0x008d808b, 0x00856be0, 0x012b6b8c, 0x0226c8ff, 0x02b7eabe, 0x02b8dacb, 0x00291dcf}}},
+ {X: Field{[10]uint32{0x02c17802, 0x03594552, 0x02cb37f6, 0x002e33e6, 0x02b7dfcb, 0x03f8c2df, 0x014863a9, 0x00587ff6, 0x03a6116f, 0x0031083f}}, Y: Field{[10]uint32{0x010a028c, 0x02c50ef9, 0x03bc0079, 0x025cbba3, 0x017fd76d, 0x017b6a30, 0x019e9cf9, 0x023db212, 0x029c25c6, 0x0039b311}}},
+ {X: Field{[10]uint32{0x02e3de0d, 0x01de11fa, 0x0169b50c, 0x029f9ff2, 0x0034d386, 0x00c85d1a, 0x002f06fd, 0x010f7563, 0x03432203, 0x001de259}}, Y: Field{[10]uint32{0x01fd9369, 0x01529348, 0x021f8570, 0x016589e4, 0x00cd9067, 0x00a7a4aa, 0x00bcd7d6, 0x037365c4, 0x019e4408, 0x0010d435}}},
+ {X: Field{[10]uint32{0x009f5827, 0x009c4e4d, 0x03c83dc1, 0x023c644c, 0x03714768, 0x00dbfc3d, 0x0334f9b6, 0x0372d00c, 0x002c1a14, 0x0033dfa9}}, Y: Field{[10]uint32{0x019e6d9d, 0x02547776, 0x00a29f8e, 0x02259918, 0x020ad1a6, 0x025792a9, 0x01c28468, 0x03e7744e, 0x0080166b, 0x002e700b}}},
+ {X: Field{[10]uint32{0x0273a91f, 0x0057e969, 0x036309d8, 0x0211fdd4, 0x02417b1c, 0x00f27e5b, 0x028ab1b3, 0x02af76b6, 0x0039ab1f, 0x00345e4d}}, Y: Field{[10]uint32{0x02d3b3e0, 0x003473f3, 0x0105f9bc, 0x03496903, 0x03b429ad, 0x02699f43, 0x019f6f7f, 0x0106c8ec, 0x02593b59, 0x002b04f5}}},
+ {X: Field{[10]uint32{0x0292b420, 0x0193c0a7, 0x0026be98, 0x01dd29d0, 0x02547225, 0x004cf727, 0x02f58630, 0x0379c314, 0x00d6727d, 0x002ec55a}}, Y: Field{[10]uint32{0x02af3992, 0x01c32548, 0x02fe70b1, 0x00af856a, 0x009e137d, 0x03bb8a70, 0x02adf80c, 0x01d31b31, 0x0356268d, 0x002d5951}}},
+ {X: Field{[10]uint32{0x03877dcc, 0x037a9eb6, 0x0020535c, 0x00b5de37, 0x03ce07c4, 0x00c6ea4f, 0x00681772, 0x02968e9d, 0x02d783e8, 0x001cca44}}, Y: Field{[10]uint32{0x03df80a2, 0x01e3239d, 0x01bab06f, 0x034ffb4f, 0x011664f5, 0x0271ea51, 0x00ffd7c2, 0x02348f9a, 0x03881b12, 0x0034d2e0}}},
+ {X: Field{[10]uint32{0x0297074c, 0x011a231c, 0x00afa908, 0x03748941, 0x034927b6, 0x01a134ed, 0x03e18651, 0x00cba0b0, 0x0371fb85, 0x0031d3c3}}, Y: Field{[10]uint32{0x01006ac1, 0x027c69ef, 0x0006a53a, 0x0350440a, 0x0235984b, 0x0341031b, 0x03e5a92d, 0x005e3a2f, 0x0261c0bd, 0x0027697a}}},
+ {X: Field{[10]uint32{0x023283b0, 0x032f1a27, 0x00aac91f, 0x004cf25c, 0x031785a6, 0x00c18366, 0x00e9e494, 0x01683169, 0x01398bda, 0x002f53ea}}, Y: Field{[10]uint32{0x030e433a, 0x02973680, 0x0295c5d2, 0x02efc537, 0x02e79cfd, 0x032eb035, 0x01be1cac, 0x012d2516, 0x03edb661, 0x0018c753}}},
+ {X: Field{[10]uint32{0x0341cc8f, 0x01971928, 0x03a72f24, 0x01e5ee26, 0x03e9bc2d, 0x0172daf4, 0x003e0c81, 0x004f4c92, 0x0062733f, 0x0027e995}}, Y: Field{[10]uint32{0x0212db04, 0x0280b89a, 0x0313010f, 0x03f0bc53, 0x01443505, 0x01289c54, 0x00ada32c, 0x02c635d2, 0x005bafc5, 0x001c147f}}},
+ {X: Field{[10]uint32{0x035e31aa, 0x0101d130, 0x03d4a6cd, 0x03f8b07a, 0x03715168, 0x036f94ef, 0x02434a9d, 0x02fc7a05, 0x037dab3d, 0x003aba9b}}, Y: Field{[10]uint32{0x0384d61d, 0x0069eae5, 0x01e6a76a, 0x02c07dc2, 0x01a594b9, 0x03d2ea41, 0x0080619f, 0x00ae5b08, 0x02c24f20, 0x002e5a58}}},
+ {X: Field{[10]uint32{0x0317a2fc, 0x01eff14e, 0x007516b9, 0x022925fe, 0x039a117c, 0x02e38954, 0x03e6d5b7, 0x01d413cc, 0x02b63b94, 0x002cf7de}}, Y: Field{[10]uint32{0x01758b9b, 0x006ef127, 0x025b5ec5, 0x03aa454a, 0x01f11f00, 0x0069d677, 0x03a62650, 0x039b3b5b, 0x0100a35a, 0x001cb7dd}}},
+ {X: Field{[10]uint32{0x03281bbf, 0x0346b1b0, 0x017fa3a8, 0x0025c990, 0x034341df, 0x01438a53, 0x0219be99, 0x0122b915, 0x02cc46da, 0x003be1d7}}, Y: Field{[10]uint32{0x031c72f5, 0x010aecdf, 0x01bc28a6, 0x030ae7a3, 0x0351ced2, 0x00c1b261, 0x010eb6e8, 0x0016db5b, 0x0204af4c, 0x001eae78}}},
+ {X: Field{[10]uint32{0x00024fdc, 0x01bcdb1c, 0x014e7fc2, 0x015d32fc, 0x033d7487, 0x03f29422, 0x002f234a, 0x0228e942, 0x0046576a, 0x001d30f1}}, Y: Field{[10]uint32{0x00136506, 0x03fa3877, 0x02ae88c4, 0x02725293, 0x03b6ccac, 0x027628c1, 0x01d2afbf, 0x01bea1cb, 0x01164ddb, 0x001cf55e}}},
+ {X: Field{[10]uint32{0x00f39274, 0x00e11b43, 0x00e1acf3, 0x02096999, 0x00c06b71, 0x00ee8bc6, 0x00204933, 0x00b8f9b0, 0x032c409f, 0x00256712}}, Y: Field{[10]uint32{0x009aad47, 0x010bda0b, 0x015d945f, 0x027c68e6, 0x01d31991, 0x03716fb7, 0x03cd3980, 0x018a7edc, 0x035c7401, 0x0005f2ac}}},
+ {X: Field{[10]uint32{0x009175fb, 0x01e6a6db, 0x00d69a94, 0x02f24bed, 0x03f67c24, 0x01ff7ead, 0x013b53c6, 0x014c4c65, 0x01d69419, 0x001013c3}}, Y: Field{[10]uint32{0x024d87b3, 0x0245ef7c, 0x01570147, 0x01e61bbf, 0x037e7d3e, 0x0350ac0d, 0x01560851, 0x01234eac, 0x01e7f40a, 0x00215f1d}}},
+ {X: Field{[10]uint32{0x00e82075, 0x031248db, 0x03566807, 0x03bc05c2, 0x032db4ec, 0x0021504d, 0x01f4d5ab, 0x003d694f, 0x0111233b, 0x000f8101}}, Y: Field{[10]uint32{0x000df3d3, 0x000e09d8, 0x00e02b96, 0x03806de4, 0x021fda08, 0x019d4ec8, 0x0235ebf5, 0x00e10dde, 0x0271dd44, 0x003e4cdc}}},
+ {X: Field{[10]uint32{0x00d77e6e, 0x01337c8b, 0x03bd3e04, 0x00ae5211, 0x00ecc869, 0x01ef6b01, 0x03993e74, 0x0370f87d, 0x005310df, 0x00250baa}}, Y: Field{[10]uint32{0x02a155e5, 0x039892e7, 0x00e51e02, 0x03e950a3, 0x01f33e9a, 0x023106c7, 0x0110bbe5, 0x02dba6d1, 0x03c8e688, 0x002efcbd}}},
+ {X: Field{[10]uint32{0x0103b532, 0x01b3a873, 0x02c0a3fe, 0x0247842c, 0x01dce217, 0x03406028, 0x01938097, 0x0297ee15, 0x02749883, 0x000795de}}, Y: Field{[10]uint32{0x0041c003, 0x005fb0eb, 0x01790194, 0x004b5773, 0x007b5756, 0x009e3a1e, 0x02530007, 0x0178576e, 0x022f856f, 0x002851d9}}},
+ {X: Field{[10]uint32{0x03feaa5a, 0x01cb13db, 0x014c8ae4, 0x03f9f156, 0x037a05fb, 0x001ff928, 0x02e9dfa6, 0x01ed9084, 0x015a8a23, 0x003af276}}, Y: Field{[10]uint32{0x03f1162a, 0x011e55f9, 0x03c05b17, 0x0361ad2b, 0x038fec2f, 0x03e2d234, 0x015fb458, 0x0291f33c, 0x01c0e311, 0x000e501b}}},
+ {X: Field{[10]uint32{0x03cac063, 0x00febc18, 0x00475277, 0x00dc7ecb, 0x01b90816, 0x02125862, 0x023d2280, 0x03f08084, 0x03601afd, 0x0031e3ab}}, Y: Field{[10]uint32{0x02b42de7, 0x020ecfcf, 0x029c76df, 0x033db07f, 0x01bacb42, 0x01b4e5be, 0x02e84c51, 0x00b7177d, 0x01b1e0c2, 0x000254c9}}},
+ {X: Field{[10]uint32{0x036d34a0, 0x01a173f7, 0x01db8752, 0x01a80d5c, 0x004f2e53, 0x005f09e6, 0x00a3d0e1, 0x00134ad1, 0x0319a1d5, 0x002d6461}}, Y: Field{[10]uint32{0x00184abe, 0x013a6986, 0x02a356d5, 0x02c9798b, 0x0016beac, 0x03226414, 0x029828aa, 0x02df23e8, 0x00cb585c, 0x0026c07a}}},
+ {X: Field{[10]uint32{0x020042cd, 0x0325e3a3, 0x01584bda, 0x0115297a, 0x02454f10, 0x031bdd6d, 0x0107dfdc, 0x0327464a, 0x033eb59f, 0x0021c1a9}}, Y: Field{[10]uint32{0x03dc3a49, 0x024a1b56, 0x001ce710, 0x037478d3, 0x004265e2, 0x02daa1fa, 0x028405a2, 0x01e35bd4, 0x03566f1f, 0x0022c6d7}}},
+ {X: Field{[10]uint32{0x0312d6ca, 0x0154a741, 0x0230ae64, 0x0108e888, 0x00793e56, 0x01b8ab41, 0x00a92890, 0x012fedbd, 0x016e4ddb, 0x0024fa49}}, Y: Field{[10]uint32{0x02afdcea, 0x01aa3b5b, 0x01cd6975, 0x011e429d, 0x03d874f2, 0x0038e626, 0x000ea62f, 0x037fb0d9, 0x02dbd9b3, 0x0020ec90}}},
+ {X: Field{[10]uint32{0x022ac295, 0x031bfe7a, 0x0127fe9a, 0x02fd62ad, 0x03a24fff, 0x00755806, 0x0353956a, 0x03ce6f2c, 0x01af8702, 0x000b6b52}}, Y: Field{[10]uint32{0x03e4675b, 0x00e98949, 0x002fe277, 0x00450370, 0x00ed4036, 0x032b3a30, 0x000704e2, 0x001d8957, 0x00b8e604, 0x002d6bda}}},
+ {X: Field{[10]uint32{0x036950a0, 0x00431513, 0x014f7597, 0x0193d0ec, 0x0086a2c3, 0x03af8ccb, 0x01627195, 0x00be9152, 0x00994da4, 0x0017ff06}}, Y: Field{[10]uint32{0x02c9bb88, 0x00c6b570, 0x0363f043, 0x00be6ea7, 0x014542ad, 0x036c14f3, 0x00e61419, 0x017ea888, 0x00a87981, 0x0008bab0}}},
+ {X: Field{[10]uint32{0x001c51ba, 0x02982ff5, 0x02b6e69f, 0x02739b98, 0x00324c63, 0x00aed6b4, 0x0221bb8a, 0x029e6713, 0x01bb1832, 0x001c6f82}}, Y: Field{[10]uint32{0x00dda472, 0x03c8e355, 0x01656e4f, 0x03730578, 0x01950588, 0x0153ac92, 0x0040767b, 0x016e3ca3, 0x03c5719a, 0x0031489f}}},
+ {X: Field{[10]uint32{0x02587212, 0x0303b59a, 0x002770ba, 0x0359115a, 0x0056d661, 0x037caeb1, 0x00a3cb37, 0x0267c299, 0x0305f927, 0x00013e50}}, Y: Field{[10]uint32{0x03c054ab, 0x007f04c4, 0x03344051, 0x01b5b403, 0x026baf79, 0x0363475f, 0x00ddc7ca, 0x020f5ae5, 0x011fbd86, 0x0013121a}}},
+ {X: Field{[10]uint32{0x00f0ab81, 0x021ace98, 0x033bc54b, 0x02338b1a, 0x02b3aeb3, 0x017d8614, 0x024fc096, 0x0248fb98, 0x028b6fc2, 0x00157be1}}, Y: Field{[10]uint32{0x0222efab, 0x039b9e45, 0x01a0e72c, 0x037c8b70, 0x0376cff6, 0x0198147e, 0x014d0adc, 0x02d3314d, 0x02eaab16, 0x003b0662}}},
+ {X: Field{[10]uint32{0x00fdab68, 0x0330d55d, 0x022790cb, 0x02f08d90, 0x00a357f6, 0x01028e56, 0x020953ed, 0x0276fc39, 0x019046e1, 0x0009ab55}}, Y: Field{[10]uint32{0x02795508, 0x03ecfc3e, 0x025e2184, 0x039d36f0, 0x00e5bb77, 0x002f1a25, 0x03c6a746, 0x00870154, 0x01ef9067, 0x002bdbf1}}},
+ {X: Field{[10]uint32{0x0037312a, 0x03307c3b, 0x0150384f, 0x01a63ba3, 0x02bc051a, 0x00e406fc, 0x000b0ae4, 0x01c554e7, 0x003ab1b0, 0x001ce7ed}}, Y: Field{[10]uint32{0x006b7e28, 0x00f9d8db, 0x019e7a19, 0x02e1302d, 0x01ff90d6, 0x0379aad3, 0x00abe331, 0x008898b5, 0x03043c88, 0x0030488d}}},
+ {X: Field{[10]uint32{0x0216771d, 0x026eb519, 0x02c6cc29, 0x0196a74c, 0x03d5a109, 0x00ba4497, 0x03422f82, 0x03d76a9e, 0x009d508c, 0x00085119}}, Y: Field{[10]uint32{0x001ca76e, 0x03348a74, 0x03a1a74a, 0x032b6776, 0x0376ddea, 0x01419f3a, 0x03ef96b3, 0x031117c0, 0x038c0e33, 0x000454c5}}},
+ {X: Field{[10]uint32{0x03b97072, 0x036438ee, 0x03580ec8, 0x038d55b4, 0x014d5577, 0x014209e3, 0x02a85175, 0x023a3c5b, 0x023c16ee, 0x0018b311}}, Y: Field{[10]uint32{0x026a891e, 0x0218ffa2, 0x033fcb81, 0x03e8be6a, 0x0356b48e, 0x0244ce56, 0x02a6c91c, 0x03140211, 0x0043e299, 0x00334a52}}},
+ {X: Field{[10]uint32{0x03ef9c21, 0x03ab0cd4, 0x031c9707, 0x0376e77f, 0x004317e1, 0x0103dd33, 0x00fdb006, 0x03c64345, 0x030133ed, 0x00004658}}, Y: Field{[10]uint32{0x0020494c, 0x00db4855, 0x020c8031, 0x0065841a, 0x00caa4f5, 0x03681c0d, 0x03851876, 0x03b9b5d0, 0x00e5e3a3, 0x003c5aad}}},
+ {X: Field{[10]uint32{0x0289adcd, 0x0298c648, 0x03c162b4, 0x00d0099c, 0x03777d4e, 0x025554a1, 0x0315baed, 0x03e4fca3, 0x03863fda, 0x002c942f}}, Y: Field{[10]uint32{0x01b3d2c1, 0x0356b04e, 0x016f828a, 0x03bce7eb, 0x01da1e06, 0x02d0357e, 0x013543f6, 0x00f4a21f, 0x01bede34, 0x000a5701}}},
+ {X: Field{[10]uint32{0x003e7c6c, 0x03d1bd92, 0x03e696f4, 0x002053a1, 0x01027ef0, 0x00b0666c, 0x010945a7, 0x011ce67c, 0x03bcae58, 0x0024e902}}, Y: Field{[10]uint32{0x02858a09, 0x03a32f2a, 0x0217389f, 0x03802bd9, 0x03f088e2, 0x0249a192, 0x03289a45, 0x0259d3d7, 0x00c02980, 0x00207b5c}}},
+ {X: Field{[10]uint32{0x020978cc, 0x0230303d, 0x01f90eff, 0x03753eaa, 0x0019ff7d, 0x03a60978, 0x03e76b34, 0x0275d6c5, 0x021b4e90, 0x002e799d}}, Y: Field{[10]uint32{0x035aa117, 0x01e4241e, 0x0211b762, 0x00ef2634, 0x0165c75e, 0x03cb215d, 0x001b70fb, 0x0049c222, 0x01035fb9, 0x00190305}}},
+ {X: Field{[10]uint32{0x00cfec24, 0x010d8344, 0x039beebf, 0x0146c08a, 0x00ae4547, 0x016cb702, 0x03e260cf, 0x026e91a1, 0x0012fe3d, 0x0013708a}}, Y: Field{[10]uint32{0x039a90d1, 0x00b7d7df, 0x01c4305b, 0x00b90c0c, 0x0227f082, 0x0135a015, 0x02e986da, 0x0204d554, 0x034a5685, 0x00270d7b}}},
+ {X: Field{[10]uint32{0x009deadf, 0x020a1b13, 0x03540934, 0x00948d98, 0x03e198e2, 0x020f4b4e, 0x02b94ba6, 0x03e70901, 0x02b31127, 0x0010c49d}}, Y: Field{[10]uint32{0x001efb3e, 0x00e312b8, 0x03743139, 0x03237756, 0x02c26d39, 0x037232fb, 0x006280dd, 0x037e192d, 0x0184c7f1, 0x0008997b}}},
+ {X: Field{[10]uint32{0x0283632a, 0x0042b2cd, 0x00360aa8, 0x00dae1e2, 0x03328f17, 0x033eaa45, 0x00b81d76, 0x0163d0ad, 0x02c3c990, 0x001d716d}}, Y: Field{[10]uint32{0x028f719d, 0x036d7142, 0x00464aff, 0x006ea03c, 0x014a5aaa, 0x026a243c, 0x02309ef4, 0x01edfdc2, 0x009fdef1, 0x001527c0}}},
+ {X: Field{[10]uint32{0x02a827d7, 0x03be6773, 0x0357c815, 0x03a44ba9, 0x0326d4d4, 0x02920077, 0x02b1a377, 0x03dd0a5d, 0x0027205a, 0x000f2400}}, Y: Field{[10]uint32{0x00649cc0, 0x015e2c42, 0x0184c83c, 0x01183f9c, 0x02007a24, 0x00ce76ac, 0x007fa7c0, 0x029f788e, 0x03f337ec, 0x00038a33}}},
+ {X: Field{[10]uint32{0x0310d9ff, 0x01ebaacc, 0x0297f3a8, 0x02f4ea3a, 0x00c89637, 0x01708fcc, 0x03a8ab0d, 0x02e57c27, 0x031a3676, 0x0015983c}}, Y: Field{[10]uint32{0x011c568b, 0x035e1b2c, 0x03839efb, 0x01b0ae8f, 0x03955bb7, 0x01366bfc, 0x0092ff3e, 0x032829f6, 0x00d66bc4, 0x003581a7}}},
+ {X: Field{[10]uint32{0x033babe9, 0x01e1bfd7, 0x02f618cd, 0x0351e6bd, 0x00e6733c, 0x02dc75de, 0x03979ce5, 0x037219fd, 0x00a41b45, 0x000ae2da}}, Y: Field{[10]uint32{0x01e4097a, 0x0314b163, 0x021ab40a, 0x0311b050, 0x03840f89, 0x02b66824, 0x00923f63, 0x006ccf08, 0x0244d544, 0x001f20c4}}},
+ {X: Field{[10]uint32{0x01c18610, 0x00a73aa2, 0x01290442, 0x012cc0fa, 0x001d369d, 0x01acff28, 0x03578869, 0x02f3712c, 0x004db817, 0x00218d40}}, Y: Field{[10]uint32{0x02b909e2, 0x03b0ca5b, 0x0300c4c3, 0x00487f12, 0x007e9f35, 0x00563687, 0x0384cc05, 0x01b9af8b, 0x02402bd4, 0x00091cb6}}},
+ {X: Field{[10]uint32{0x00cb28d0, 0x01a88d22, 0x03b693a5, 0x000f7193, 0x01b0d39d, 0x01b87b33, 0x03afbde4, 0x013e5e6d, 0x026b6eeb, 0x001b2646}}, Y: Field{[10]uint32{0x01c95620, 0x00467bd9, 0x013722bc, 0x00f93350, 0x030e0b75, 0x00fad11c, 0x0277188d, 0x018d4140, 0x034fc2cd, 0x0007977d}}},
+ {X: Field{[10]uint32{0x0341570c, 0x02865fa7, 0x03a0ca52, 0x029258bf, 0x00554569, 0x0248a22e, 0x0298ed7e, 0x033246e5, 0x019d4283, 0x002b36b0}}, Y: Field{[10]uint32{0x02d7b66e, 0x00e94831, 0x01afeea0, 0x029be5f6, 0x02451d41, 0x01c5d0ae, 0x030c6bfe, 0x021507d4, 0x0187523c, 0x003e94db}}},
+ {X: Field{[10]uint32{0x025fc6c0, 0x00a96591, 0x00abba3e, 0x03c2bad4, 0x0385bba7, 0x034a29f2, 0x00b107c3, 0x032ee552, 0x03a3f696, 0x002c525a}}, Y: Field{[10]uint32{0x006318ad, 0x00bbcf72, 0x0057a857, 0x02effd73, 0x03487740, 0x03a01e09, 0x03c8f8ea, 0x0129bb83, 0x00d5727a, 0x001dfedb}}},
+ {X: Field{[10]uint32{0x01b09126, 0x01500d36, 0x03ec94d8, 0x01e2b6c1, 0x02c2c9f8, 0x01b44a39, 0x00cab31d, 0x03a7283f, 0x01b56098, 0x000ff65f}}, Y: Field{[10]uint32{0x022b4578, 0x01007cc8, 0x014a22c0, 0x012c09f8, 0x0324e37d, 0x022c91bd, 0x00451273, 0x038dd03f, 0x00361494, 0x0006f5df}}},
+ {X: Field{[10]uint32{0x02aefce9, 0x00ab8bb0, 0x03338898, 0x03feb5e4, 0x02eb174c, 0x00271f3e, 0x036d5c44, 0x01a3b551, 0x0055f2a4, 0x0017a37e}}, Y: Field{[10]uint32{0x02a6845f, 0x02e32c4d, 0x0357a17e, 0x03b311bc, 0x01d50da8, 0x021c0610, 0x01771843, 0x032a2282, 0x02823bb8, 0x0014b9ce}}},
+ {X: Field{[10]uint32{0x024672bd, 0x005021b1, 0x006613f8, 0x0076e503, 0x0062021a, 0x003ee4cb, 0x01e6fb0a, 0x032da7a5, 0x02eb1417, 0x00267c41}}, Y: Field{[10]uint32{0x03a6501d, 0x02097ffd, 0x015337e9, 0x010f4613, 0x01e484d8, 0x00709ff9, 0x02926e6a, 0x0000441a, 0x0038e1e7, 0x00279fec}}},
+ {X: Field{[10]uint32{0x0251ef8c, 0x00c18e9f, 0x031f7ac4, 0x03f52971, 0x0068bb14, 0x03fc3882, 0x011d6864, 0x0361fff4, 0x00985526, 0x001a1bf1}}, Y: Field{[10]uint32{0x00588e5b, 0x01824651, 0x0224422f, 0x017d6cf5, 0x024137dc, 0x0383c8ff, 0x016dd6b2, 0x02be16f2, 0x0132d793, 0x00074a3d}}},
+ {X: Field{[10]uint32{0x03f6b83d, 0x03e5af2f, 0x03b2093d, 0x0001582f, 0x00e4c836, 0x00dc3e19, 0x00f3a85b, 0x002f2a45, 0x0356cc45, 0x0033e977}}, Y: Field{[10]uint32{0x0137604b, 0x0017cee3, 0x0203f78b, 0x03c09938, 0x0261cf56, 0x023e05c1, 0x01d96c74, 0x03ff246c, 0x0246bab7, 0x0033bee6}}},
+ {X: Field{[10]uint32{0x013e404e, 0x0022791c, 0x003e8b39, 0x01aa58aa, 0x02893760, 0x00d39f2f, 0x0241eed5, 0x025a4fdd, 0x034c3fbb, 0x002646da}}, Y: Field{[10]uint32{0x023f8d3e, 0x02d83baf, 0x03c7113b, 0x01e75611, 0x02098dab, 0x012e4ae2, 0x038a0a2f, 0x019a234e, 0x026bbe55, 0x000fffae}}},
+ {X: Field{[10]uint32{0x03c8c0d7, 0x006ee484, 0x00bcd689, 0x038d5a4e, 0x032955c4, 0x0089b144, 0x021fa14f, 0x00487162, 0x01d3b9b0, 0x00344131}}, Y: Field{[10]uint32{0x00caa6e9, 0x003415ac, 0x0196a3d9, 0x00028244, 0x00091ddb, 0x0171ddce, 0x02cea218, 0x01f3f40c, 0x019a814d, 0x0002320e}}},
+ {X: Field{[10]uint32{0x0355dfce, 0x00c652f8, 0x031bcad9, 0x03df1d2c, 0x03415a06, 0x0065093a, 0x01c9a407, 0x00d921d2, 0x0053a45c, 0x001d864a}}, Y: Field{[10]uint32{0x024ad2fc, 0x03cdd14c, 0x01ecf84e, 0x00de451d, 0x02b5517b, 0x00984f18, 0x02bc9345, 0x01404b5f, 0x02873cbb, 0x000c44e4}}},
+ {X: Field{[10]uint32{0x01070725, 0x027ec6b9, 0x016c8805, 0x02e6069f, 0x0210c7f9, 0x014424ec, 0x01b1de5c, 0x0307d301, 0x00a80509, 0x0005ccc1}}, Y: Field{[10]uint32{0x001d353e, 0x0087e24d, 0x013d5f9e, 0x022ce630, 0x02800cdc, 0x01a48a5e, 0x03db2e9c, 0x020e5150, 0x0198c8e0, 0x0010efef}}},
+ {X: Field{[10]uint32{0x03da104a, 0x02b94542, 0x014c46b7, 0x02a02c53, 0x019eacca, 0x0391bf25, 0x03f5b6a9, 0x01545041, 0x03e1d28c, 0x002b2815}}, Y: Field{[10]uint32{0x02bf6ce8, 0x02e90cf9, 0x017024dc, 0x03348fdb, 0x00cb00e6, 0x012dcae3, 0x0095be9a, 0x01dbfc60, 0x031770bd, 0x00385fc5}}},
+ {X: Field{[10]uint32{0x0076dbaa, 0x0212274d, 0x02b04b7e, 0x017d839b, 0x0385b294, 0x00029f70, 0x00a73859, 0x023ec70c, 0x0150e009, 0x003ec809}}, Y: Field{[10]uint32{0x039a0f28, 0x013d597b, 0x0099645e, 0x008b7f0f, 0x03cedda9, 0x01fd1cf3, 0x03bc98c7, 0x031a36f4, 0x00203f72, 0x0006abe1}}},
+ {X: Field{[10]uint32{0x011ae7ac, 0x021e6f38, 0x0101c08f, 0x026108b1, 0x03af1aa2, 0x00a562f8, 0x0366c66c, 0x01eae396, 0x010ca022, 0x003a56dc}}, Y: Field{[10]uint32{0x0397cf19, 0x00975427, 0x030a2c55, 0x01a36728, 0x00c745a9, 0x03b7407e, 0x0109022c, 0x03d2df6a, 0x00e1ab5c, 0x0039917d}}},
+ {X: Field{[10]uint32{0x0044770a, 0x019bcf7a, 0x02a15147, 0x01b339df, 0x03ab136c, 0x033b517f, 0x01cf203c, 0x02ffe581, 0x025c3589, 0x001b6d14}}, Y: Field{[10]uint32{0x02658c81, 0x035a121c, 0x00903eb5, 0x02ecf167, 0x03799cd7, 0x00b01a62, 0x031d2958, 0x01612c8c, 0x0003f5f7, 0x0039adfd}}},
+ {X: Field{[10]uint32{0x01085eb3, 0x01cc4ccd, 0x022c8fbe, 0x0229a592, 0x01169043, 0x0136e711, 0x03c2959e, 0x03ab9c57, 0x029e49da, 0x002224ea}}, Y: Field{[10]uint32{0x01987cdd, 0x031c2539, 0x00c10d01, 0x0316ebb2, 0x01bd15ce, 0x0197d8b2, 0x037a4b02, 0x00fced8d, 0x003eae80, 0x001c3ef6}}},
+ {X: Field{[10]uint32{0x020207a0, 0x02505363, 0x01fd56e3, 0x03123ceb, 0x012cd9e2, 0x02a9e2f2, 0x01e3ece8, 0x02336a1c, 0x02cfac6e, 0x002f95fd}}, Y: Field{[10]uint32{0x0293d5f2, 0x0083cafb, 0x03aa1581, 0x0374daec, 0x028893ee, 0x0266a9ee, 0x00d141d8, 0x03e273f7, 0x007299ab, 0x001e05c2}}},
+ {X: Field{[10]uint32{0x00b34925, 0x0232d508, 0x03562671, 0x03d16a79, 0x00a2f69b, 0x0340ad75, 0x0205ddd8, 0x0044a717, 0x02d285a0, 0x0001dfe9}}, Y: Field{[10]uint32{0x026455cc, 0x0136d14c, 0x03b97ce0, 0x02643805, 0x0337a2da, 0x0303b7fa, 0x0086288e, 0x0348633a, 0x023c13a3, 0x000c56ec}}},
+ {X: Field{[10]uint32{0x01f4dc03, 0x02826e34, 0x01d00b2e, 0x02b65e37, 0x02061094, 0x019ffec3, 0x00834ca7, 0x0370cd8b, 0x03fe8414, 0x000bfb5e}}, Y: Field{[10]uint32{0x00117e01, 0x0378b166, 0x00ff20a6, 0x0182db13, 0x0363332a, 0x00047186, 0x01e434f0, 0x00f4c559, 0x00f7aa0b, 0x0005397a}}},
+ {X: Field{[10]uint32{0x034d66c6, 0x03ab2242, 0x026a101a, 0x010b3a3b, 0x037f8af2, 0x03c0fb8f, 0x0343df2b, 0x006e87f2, 0x00d05a87, 0x0027d30b}}, Y: Field{[10]uint32{0x02922920, 0x0316502f, 0x01acf83b, 0x03d7f0d0, 0x03d0fd7d, 0x030e1388, 0x038a2abd, 0x01e21e3f, 0x0352f242, 0x003ad087}}},
+ {X: Field{[10]uint32{0x01bea647, 0x03e9f297, 0x013ce7c8, 0x022eef07, 0x0015f0a4, 0x00dce0fc, 0x0203ef6e, 0x001332dc, 0x00b6824a, 0x0014f038}}, Y: Field{[10]uint32{0x01618cf9, 0x03f4e853, 0x00e91836, 0x0178416a, 0x0313c59d, 0x03a024e5, 0x01729f9b, 0x0328694e, 0x018d9246, 0x001aa6d6}}},
+ {X: Field{[10]uint32{0x0117d714, 0x00eb62ab, 0x02fd5c0a, 0x02fded3b, 0x03bb20fd, 0x00cf5a3a, 0x037bba54, 0x01ae12da, 0x0082d790, 0x0036f033}}, Y: Field{[10]uint32{0x01cd7211, 0x031d9d8b, 0x02e37a4f, 0x038a14c1, 0x008aee42, 0x039798ce, 0x001b0904, 0x00b0e9be, 0x038623ff, 0x0017af07}}},
+ {X: Field{[10]uint32{0x008f5f0b, 0x002a9b49, 0x02165af2, 0x01e10314, 0x02ca93a4, 0x004c7557, 0x01a8cbb8, 0x023811ec, 0x0332a3c0, 0x001e18ab}}, Y: Field{[10]uint32{0x03fc15d8, 0x03f70ce2, 0x02684f1e, 0x00ba36a4, 0x017e8c27, 0x021ecefe, 0x0367a645, 0x00d4f228, 0x02076b10, 0x002ed7d9}}},
+ {X: Field{[10]uint32{0x031049ee, 0x013032a4, 0x037524e4, 0x0326e1d4, 0x01f8238f, 0x005724ec, 0x012bad80, 0x0162ddbb, 0x01fc8001, 0x00034d5c}}, Y: Field{[10]uint32{0x02a44bc3, 0x01af1d20, 0x0315f4d2, 0x03e549af, 0x0170a9e6, 0x0056bd12, 0x00872fa9, 0x00c2aa74, 0x01e83e66, 0x00058b72}}},
+ {X: Field{[10]uint32{0x00589d9b, 0x022c2de2, 0x02a26e90, 0x036a23eb, 0x03b9f531, 0x037cd613, 0x02b98e55, 0x031d6190, 0x0094cebb, 0x002a1472}}, Y: Field{[10]uint32{0x0375b422, 0x009638ec, 0x020e1151, 0x03e6d7eb, 0x011e1af1, 0x02b90ceb, 0x01f38983, 0x0307bdc7, 0x015cadfa, 0x001d1c0b}}},
+ {X: Field{[10]uint32{0x0258012d, 0x0005b3b6, 0x0131e972, 0x03e407c2, 0x012d9af1, 0x036cba21, 0x0178a08c, 0x03feab82, 0x03f4012e, 0x002a4b90}}, Y: Field{[10]uint32{0x002fb668, 0x000ee574, 0x013c6bb9, 0x01ec8ef0, 0x02535c68, 0x02094825, 0x01d7bd12, 0x005c3acd, 0x009d5560, 0x00363d68}}},
+ {X: Field{[10]uint32{0x03cff6bb, 0x001fed7c, 0x0024c090, 0x00a74a0f, 0x02bb29e1, 0x01d83b36, 0x02658c64, 0x01a7210b, 0x02448b43, 0x001d72bf}}, Y: Field{[10]uint32{0x0355dc39, 0x011dec42, 0x015f53c9, 0x028bee88, 0x02db1ea5, 0x00751ce2, 0x02affab5, 0x00d54c78, 0x02e243c7, 0x00328384}}},
+ {X: Field{[10]uint32{0x0041d006, 0x012114e3, 0x02b56a21, 0x01ddedb9, 0x02c48c41, 0x02008ed6, 0x017a2337, 0x0167b0bc, 0x00664db9, 0x00002ac0}}, Y: Field{[10]uint32{0x035d8b31, 0x00dc5d67, 0x029b7b5d, 0x01f7adcb, 0x01e3d338, 0x0101d62b, 0x02762fb9, 0x0145a7d1, 0x02fc3554, 0x00233e78}}},
+ {X: Field{[10]uint32{0x01b7ecb7, 0x02fa9427, 0x027814a1, 0x03f55cfc, 0x00f89b9a, 0x011a747c, 0x00855bf0, 0x0084d060, 0x02f82e4b, 0x0009d443}}, Y: Field{[10]uint32{0x00fb87e1, 0x01570d2b, 0x00aeb900, 0x00337b1a, 0x03b0a1b2, 0x02fa67f4, 0x02073555, 0x0130187f, 0x00e886b5, 0x00083f80}}},
+ {X: Field{[10]uint32{0x01b16d3a, 0x00b23293, 0x02c1d745, 0x03b8ed66, 0x03f4a6c2, 0x02727081, 0x021405c9, 0x009dede4, 0x01a8d388, 0x001dcffd}}, Y: Field{[10]uint32{0x00a52f8e, 0x010d6fbe, 0x002848d7, 0x02bcf9cd, 0x0200f75c, 0x01cc638e, 0x00806bd8, 0x03196ebf, 0x0231f51c, 0x0033d179}}},
+ {X: Field{[10]uint32{0x02f45746, 0x03311547, 0x0386fe14, 0x00dcb890, 0x034293fc, 0x03686a3b, 0x0277e359, 0x02ff0edc, 0x0098e69e, 0x000be3cb}}, Y: Field{[10]uint32{0x0168ec06, 0x032b5026, 0x02c3642c, 0x0323fba8, 0x008150a6, 0x0012aaba, 0x003e4066, 0x02ae808f, 0x03ecc4dc, 0x003e1748}}},
+ {X: Field{[10]uint32{0x0277f67f, 0x020f7a58, 0x001c061a, 0x01e19369, 0x01745756, 0x018d5b39, 0x00849522, 0x03438a82, 0x00daab8d, 0x00061e2b}}, Y: Field{[10]uint32{0x01477020, 0x011596b5, 0x009bb968, 0x00a039b4, 0x03ecbcc1, 0x03e922bc, 0x0296f05b, 0x0024b2b7, 0x028d064e, 0x00104b21}}},
+ {X: Field{[10]uint32{0x035618c1, 0x02312f13, 0x029c4cad, 0x003d273d, 0x02c5a17b, 0x004dcfd8, 0x004f3cdd, 0x039389fb, 0x001aeac4, 0x000233ca}}, Y: Field{[10]uint32{0x01ed5973, 0x03f61bca, 0x02625cd9, 0x036d93fe, 0x027dbf09, 0x038cc0a6, 0x023911ed, 0x03a89f36, 0x019529c9, 0x000bc5fe}}},
+ {X: Field{[10]uint32{0x008939f9, 0x0081a634, 0x01ec39ea, 0x00d9c5fc, 0x02a09579, 0x0370abbf, 0x010d1913, 0x00da7976, 0x009ff165, 0x000e965f}}, Y: Field{[10]uint32{0x000a14d4, 0x018ad3ac, 0x01926da4, 0x021bd624, 0x03a7b48c, 0x00262381, 0x03464b00, 0x028b7816, 0x03b290c9, 0x00230880}}},
+ {X: Field{[10]uint32{0x010ca15e, 0x013eb2e5, 0x028ac505, 0x0242eeb1, 0x03b9ceec, 0x014a40e4, 0x029c8615, 0x0043fd77, 0x0205096f, 0x00032f8c}}, Y: Field{[10]uint32{0x03ee27f4, 0x00ae51d3, 0x02bd0547, 0x00b2b785, 0x039bf7c7, 0x00580072, 0x02b48557, 0x02e84b0c, 0x006ab76a, 0x00111b2c}}},
+ {X: Field{[10]uint32{0x02fed594, 0x036c1055, 0x00bd53a8, 0x00017b98, 0x011cde71, 0x019511cc, 0x0013b09e, 0x0139c061, 0x01cf0822, 0x0010c4f2}}, Y: Field{[10]uint32{0x03329a96, 0x0275cd46, 0x023317ab, 0x0352af12, 0x000e80bb, 0x02809482, 0x001021f9, 0x016a32c6, 0x019dd304, 0x0037ebcd}}},
+ {X: Field{[10]uint32{0x0373c60e, 0x03c3eaaf, 0x036882bd, 0x02ac67ed, 0x011f5cbf, 0x03697fe9, 0x009651b2, 0x02b7b0b6, 0x0351f8d8, 0x0033ab4a}}, Y: Field{[10]uint32{0x02a25897, 0x01472915, 0x0221bf84, 0x029fb4b4, 0x026dd3bd, 0x02fc512b, 0x03e79322, 0x03c3a31c, 0x00806992, 0x002aca89}}},
+ {X: Field{[10]uint32{0x027b79a0, 0x03c9eb92, 0x020e52d8, 0x02b67e2f, 0x0298e34d, 0x017b9bbb, 0x01164b84, 0x01d8bd91, 0x008d0848, 0x002739d7}}, Y: Field{[10]uint32{0x02a30a05, 0x00a76f26, 0x03571d0a, 0x0166e458, 0x029f6275, 0x02dd0a89, 0x017c04c8, 0x02a419ae, 0x014fe11b, 0x0038155b}}},
+ {X: Field{[10]uint32{0x026741d7, 0x0002224c, 0x013a96ba, 0x020c0759, 0x0310214b, 0x0308e11e, 0x02106bf8, 0x038957e4, 0x009c621d, 0x00180912}}, Y: Field{[10]uint32{0x004ea858, 0x03638b84, 0x03aa9b1f, 0x0021989b, 0x02abf63e, 0x01ae0b97, 0x01326210, 0x000803b2, 0x032480a9, 0x0002543a}}},
+ {X: Field{[10]uint32{0x0308e51d, 0x0348bb57, 0x01e11546, 0x028f1a11, 0x011f55e1, 0x001c957f, 0x02c2638c, 0x01af3501, 0x02f0108f, 0x0034f1d1}}, Y: Field{[10]uint32{0x038dfab6, 0x002f3390, 0x0165e25d, 0x0069bff0, 0x0335ed4e, 0x015fbcf6, 0x001a776c, 0x031ce799, 0x03e5d349, 0x00344936}}},
+ {X: Field{[10]uint32{0x036514b8, 0x03c9c5c4, 0x00c6352c, 0x03e6f3e9, 0x01a69c69, 0x00216537, 0x03b9e11e, 0x03088be5, 0x035cd85d, 0x00287ad7}}, Y: Field{[10]uint32{0x00a15fff, 0x01429f3e, 0x03b68007, 0x01d8c094, 0x00ff5e3f, 0x03768ee8, 0x0247ddd7, 0x03805dd8, 0x0135a393, 0x0011bb4f}}},
+ {X: Field{[10]uint32{0x005a8736, 0x03dd5852, 0x03639721, 0x015ae0b1, 0x00e44065, 0x0305051f, 0x025f1c61, 0x030b2fea, 0x0357fa3a, 0x000ac928}}, Y: Field{[10]uint32{0x03d73ade, 0x00cc3346, 0x0243c018, 0x017d742d, 0x01ad192a, 0x015c8751, 0x00fd7aed, 0x02b5546a, 0x01bd707a, 0x00359c86}}},
+ {X: Field{[10]uint32{0x0187b2ec, 0x0293db3f, 0x03306126, 0x00f98ba7, 0x02ab6a62, 0x00bb2d06, 0x00c9cfb4, 0x0005658f, 0x01ab9dc6, 0x00264068}}, Y: Field{[10]uint32{0x00339317, 0x033363fc, 0x01730633, 0x0307b899, 0x03eb5950, 0x032d0539, 0x037a3df6, 0x035fcbff, 0x0194017c, 0x0023dd99}}},
+ {X: Field{[10]uint32{0x0077e8da, 0x02e65961, 0x037634ae, 0x0386c870, 0x0328a2a4, 0x01f56320, 0x018e6003, 0x038bc787, 0x00455890, 0x000c47a1}}, Y: Field{[10]uint32{0x00ce030c, 0x016415bb, 0x00829a04, 0x009c7987, 0x01e017e9, 0x019c0ef0, 0x030dd00f, 0x015d8a86, 0x03676cc7, 0x0033d64f}}},
+ {X: Field{[10]uint32{0x0283bb77, 0x023b31e7, 0x008b367a, 0x0391bfba, 0x03122d27, 0x023ebd9b, 0x00ad8b8c, 0x003db8a6, 0x02e39714, 0x002417dc}}, Y: Field{[10]uint32{0x01b65257, 0x01c529bc, 0x019b4698, 0x022a84b8, 0x022d9852, 0x02d6c94e, 0x00b94fc1, 0x03099764, 0x015dbde9, 0x00300fc5}}},
+ {X: Field{[10]uint32{0x0339350c, 0x00fd56e8, 0x0085e04a, 0x00cc09f7, 0x0039eafd, 0x02672ed3, 0x00c2f021, 0x000004bf, 0x03a5d594, 0x001877dd}}, Y: Field{[10]uint32{0x01049161, 0x0189a8b6, 0x0005f684, 0x008235b7, 0x01f36640, 0x035b903d, 0x030603f2, 0x026cfdce, 0x037d00de, 0x0009f222}}},
+ {X: Field{[10]uint32{0x01f18c28, 0x010aeb17, 0x021295bc, 0x0353bc09, 0x030de36d, 0x03bb01b1, 0x016af906, 0x012c7577, 0x0199886d, 0x00387e38}}, Y: Field{[10]uint32{0x01ca45a8, 0x03e2add4, 0x025e29ec, 0x02d53196, 0x0056a98d, 0x039f98d2, 0x025bc4ba, 0x03abc4a1, 0x02e9b956, 0x00140b04}}},
+ {X: Field{[10]uint32{0x03b8565a, 0x02181dbe, 0x02ac19b6, 0x0151e692, 0x029180e1, 0x001133e5, 0x01fe6a77, 0x0288701f, 0x01b83804, 0x002b78bd}}, Y: Field{[10]uint32{0x03066aca, 0x006f09bb, 0x01eee375, 0x03d915c5, 0x0198a9e6, 0x017499f9, 0x00985d6f, 0x005a30c2, 0x021d07c8, 0x00343597}}},
+ {X: Field{[10]uint32{0x03268187, 0x0208779b, 0x01b88ea5, 0x021685d5, 0x009f7f6b, 0x018a202e, 0x0345dd5c, 0x03e5cab0, 0x00bb0154, 0x00315608}}, Y: Field{[10]uint32{0x00613086, 0x00795af3, 0x027a2124, 0x016b605f, 0x014dc35f, 0x0285d223, 0x03b698c8, 0x02996498, 0x03ea1e6c, 0x002446c3}}},
+ {X: Field{[10]uint32{0x007778b5, 0x000e719b, 0x01d089f7, 0x023054b7, 0x02128588, 0x023330b4, 0x0164352b, 0x0083d14e, 0x026e3210, 0x003a8825}}, Y: Field{[10]uint32{0x034fc18c, 0x00a7c9a7, 0x00d3959e, 0x01b37786, 0x0166f547, 0x010d0a70, 0x03dc9bd6, 0x007949aa, 0x0191cdc8, 0x003250bd}}},
+ {X: Field{[10]uint32{0x007e2bf5, 0x03d37d18, 0x007079f9, 0x022a3a03, 0x02220c90, 0x0387be12, 0x0301bbd3, 0x03f9699c, 0x012d9c2d, 0x000f15d5}}, Y: Field{[10]uint32{0x031f39e3, 0x000802f9, 0x00522b9f, 0x0153b542, 0x016fd347, 0x00997fd9, 0x031a0a17, 0x018e5cf9, 0x00ffbc4a, 0x003527e8}}},
+ {X: Field{[10]uint32{0x03d4e1c3, 0x02825466, 0x0071feb5, 0x002f3dfc, 0x01a3fd5c, 0x012b6859, 0x028e1339, 0x00fb0167, 0x00c6e104, 0x003c6233}}, Y: Field{[10]uint32{0x03bfdbe4, 0x021814c1, 0x021cf944, 0x010428bf, 0x03db045c, 0x0081d926, 0x02fb1908, 0x01e740b5, 0x031fe53e, 0x0017c7cd}}},
+ {X: Field{[10]uint32{0x011c8c6a, 0x00d790b0, 0x013cad48, 0x028b4729, 0x01447112, 0x029efed2, 0x015a146a, 0x008cba01, 0x03d27e72, 0x00280517}}, Y: Field{[10]uint32{0x01e679cc, 0x00f9270f, 0x02cc5024, 0x02fc8b1f, 0x00ceb874, 0x001c272c, 0x00bb675f, 0x00333031, 0x00a0e5e7, 0x001ef006}}},
+ {X: Field{[10]uint32{0x016ff48e, 0x00f7e03c, 0x016bd9c9, 0x0362c5d0, 0x01c17b7b, 0x02d56061, 0x03857060, 0x00454c7e, 0x01e80c22, 0x0014d003}}, Y: Field{[10]uint32{0x01a6cc6f, 0x034cf690, 0x0244c89c, 0x0082299a, 0x002df873, 0x00dbaa5c, 0x00840b6a, 0x0197c794, 0x02473ba5, 0x003848a3}}},
+ {X: Field{[10]uint32{0x0264b1ac, 0x03199d33, 0x019048c6, 0x02d14ae6, 0x01cc8960, 0x03566be1, 0x00e34821, 0x00df8d43, 0x012d009d, 0x00208457}}, Y: Field{[10]uint32{0x021eb048, 0x03ee7bed, 0x02f05e75, 0x00f7a489, 0x01bffc1b, 0x02e74620, 0x02adab03, 0x00309012, 0x0209659a, 0x002637aa}}},
+ {X: Field{[10]uint32{0x01fe7c3c, 0x005e2516, 0x039681fc, 0x01f00c20, 0x028669cb, 0x01437389, 0x01e6e9d4, 0x01bc7312, 0x001853d8, 0x0009cf63}}, Y: Field{[10]uint32{0x00c2ea00, 0x01b44040, 0x008af2e1, 0x007dfdfe, 0x0314974e, 0x007beeb6, 0x00c25a25, 0x009b205d, 0x01aa8ad0, 0x001b154c}}},
+ {X: Field{[10]uint32{0x025ee319, 0x019d46ee, 0x01bfe403, 0x032d6c16, 0x0041e68c, 0x03d0a3f3, 0x0233f4fb, 0x020645c3, 0x0216a7e3, 0x0000185b}}, Y: Field{[10]uint32{0x0106748a, 0x012c393d, 0x032eaba8, 0x031cfa2b, 0x007c7dc3, 0x032a64dd, 0x01173f5c, 0x00fbf6e6, 0x0121182a, 0x001f6f2b}}},
+ {X: Field{[10]uint32{0x00b82812, 0x00df0058, 0x0277452c, 0x00409d7d, 0x00dc5666, 0x000cfc84, 0x0373402d, 0x0260487d, 0x016a76a3, 0x0019d862}}, Y: Field{[10]uint32{0x03302c9b, 0x001e0b99, 0x007ebe76, 0x03c688d8, 0x0111848d, 0x038b2339, 0x011184c8, 0x024e7e02, 0x01cf1b40, 0x001ff740}}},
+ {X: Field{[10]uint32{0x01e508b9, 0x029b53e2, 0x01fe6dd4, 0x008248d1, 0x00bd6eb0, 0x005dedac, 0x0135bd9e, 0x00176849, 0x03aae976, 0x001dfdea}}, Y: Field{[10]uint32{0x007f0b9e, 0x0392d973, 0x01231889, 0x03e84358, 0x020dbf20, 0x02df24cc, 0x035fd19b, 0x020c37f3, 0x016ccc7b, 0x003ec126}}},
+ {X: Field{[10]uint32{0x00bce311, 0x0232a8e6, 0x005a4a0d, 0x02299ec3, 0x01bc4b4a, 0x0007e73c, 0x02973785, 0x00aee8f6, 0x03173a2e, 0x00304bd9}}, Y: Field{[10]uint32{0x039a47a8, 0x000c67dd, 0x03853a33, 0x00cdb960, 0x01097cd1, 0x02db2d50, 0x00012aa3, 0x00500544, 0x018644d3, 0x0037a4c2}}},
+ {X: Field{[10]uint32{0x018e66aa, 0x01fbe570, 0x03304ee7, 0x03ea9dae, 0x004afe8f, 0x037ce80d, 0x039d268d, 0x0154b236, 0x02de19c7, 0x001954e8}}, Y: Field{[10]uint32{0x00edb93c, 0x01dc181c, 0x037f5373, 0x033b26ee, 0x0169f95b, 0x014b4dd3, 0x034dbb77, 0x002edcab, 0x00107c18, 0x002469c8}}},
+ {X: Field{[10]uint32{0x03b834e3, 0x031411ad, 0x013eec1f, 0x008f9a8f, 0x01bba980, 0x010032aa, 0x022e9363, 0x0106148b, 0x00be353f, 0x0003d52d}}, Y: Field{[10]uint32{0x0296f17e, 0x0190df23, 0x013a5124, 0x02d015df, 0x03ab6f78, 0x0065d16a, 0x035afde2, 0x03c7c2a0, 0x006cbdd5, 0x0025af9e}}},
+ {X: Field{[10]uint32{0x02adbb2a, 0x016d2d03, 0x03c64c0d, 0x01f12d9d, 0x03f86be3, 0x016d3722, 0x03c806e4, 0x0194882e, 0x03c2a0fa, 0x0030b4c5}}, Y: Field{[10]uint32{0x0313ab6a, 0x03acd7b4, 0x02af58e8, 0x023528eb, 0x03100f07, 0x03266529, 0x00cb16df, 0x032aedc6, 0x0169bd68, 0x00315c42}}},
+ {X: Field{[10]uint32{0x0389f384, 0x03fcc4c6, 0x03ccefe1, 0x010d04db, 0x02cc43e1, 0x01fd751c, 0x034b9c95, 0x02993f71, 0x03c6a5b8, 0x0014a959}}, Y: Field{[10]uint32{0x009e8f53, 0x01bde8a7, 0x01d485c1, 0x03a5f60d, 0x02d7de27, 0x02064a55, 0x005f7d6b, 0x00a62b75, 0x01bfa314, 0x000cc98c}}},
+ {X: Field{[10]uint32{0x01ba4e20, 0x012881c7, 0x005e98d2, 0x03c666d3, 0x013530f0, 0x00c491ef, 0x01435278, 0x01104a21, 0x006c891a, 0x003df702}}, Y: Field{[10]uint32{0x034444aa, 0x0378d16d, 0x027e7b82, 0x000ffc41, 0x00da0550, 0x00121618, 0x02f5f751, 0x0166bac3, 0x0312452e, 0x001cd3b5}}},
+ {X: Field{[10]uint32{0x02ec06c6, 0x008362c8, 0x00d3e905, 0x0147944b, 0x01b3f2ae, 0x039be3dd, 0x02d8d8cd, 0x036f032f, 0x03a97bb6, 0x002553e7}}, Y: Field{[10]uint32{0x005dd9bb, 0x030e76c6, 0x0378bf65, 0x00523c10, 0x005426f6, 0x02d3e085, 0x01b3017b, 0x01983d2f, 0x03bb8bd9, 0x002d96d0}}},
+ {X: Field{[10]uint32{0x0204e87e, 0x0236c509, 0x0145e818, 0x02f905ad, 0x026def2d, 0x01dd7365, 0x0366947f, 0x01962082, 0x03984141, 0x000839a6}}, Y: Field{[10]uint32{0x00632539, 0x019fe24a, 0x01f51caa, 0x01361f7c, 0x030dcce0, 0x010fd808, 0x02e45a3d, 0x00ae6cd6, 0x02590bd1, 0x00399451}}},
+ {X: Field{[10]uint32{0x0072ed1c, 0x039f15c3, 0x01dc3709, 0x0210aace, 0x0371bed4, 0x00c0a55d, 0x0187fb53, 0x00bc1110, 0x03822dc4, 0x00173796}}, Y: Field{[10]uint32{0x01a0ea9f, 0x00a4a66a, 0x03e41b49, 0x02f9d897, 0x03cea3dc, 0x00ff584d, 0x00416e75, 0x0016d425, 0x02d864e4, 0x00283dee}}},
+ {X: Field{[10]uint32{0x0326421f, 0x00ec4c7e, 0x01c346e7, 0x0181779c, 0x0045b204, 0x027535ba, 0x02fd03f4, 0x02c370aa, 0x034c6ba6, 0x002d61b2}}, Y: Field{[10]uint32{0x00948744, 0x02b26ad6, 0x0116d2b4, 0x01a662ec, 0x026767b4, 0x001abee1, 0x01de6235, 0x028eca8c, 0x03e7c26e, 0x0033b584}}},
+ {X: Field{[10]uint32{0x00ba6ede, 0x029779a4, 0x00a8b2a2, 0x0150ddf9, 0x014e192a, 0x02358071, 0x0213dbfa, 0x00ea0b23, 0x01703580, 0x001f4fd8}}, Y: Field{[10]uint32{0x02c6cb15, 0x027d354b, 0x0100f196, 0x012f9e3a, 0x0177eaf8, 0x00302f2f, 0x03564778, 0x004f083e, 0x010e62f4, 0x0004e3a0}}},
+ {X: Field{[10]uint32{0x037eb925, 0x01dfb0a3, 0x01b41d85, 0x037603ea, 0x01c9fa32, 0x00c12ae0, 0x03e67135, 0x03e18f9f, 0x00befc4a, 0x0039e8c5}}, Y: Field{[10]uint32{0x00f3eb1f, 0x02913d20, 0x008fb091, 0x033b1420, 0x0113ec94, 0x036a5c30, 0x019b6d07, 0x012b3fea, 0x0200f0e0, 0x003365e1}}},
+ {X: Field{[10]uint32{0x03c6a577, 0x024098f4, 0x00231ec0, 0x02b67915, 0x00ba5fc0, 0x003c37f2, 0x01cd8e81, 0x0240bb88, 0x03e49f41, 0x0005e70e}}, Y: Field{[10]uint32{0x009cf184, 0x03fc32d3, 0x009dc5b9, 0x022693a2, 0x02640216, 0x0142df93, 0x02b03f5a, 0x026a80a7, 0x020efb9b, 0x001d7e7d}}},
+ {X: Field{[10]uint32{0x01e6401f, 0x01842c24, 0x00c6fe50, 0x01a4173e, 0x0108d762, 0x015d53e9, 0x017808e2, 0x03060ae5, 0x0071464b, 0x00042956}}, Y: Field{[10]uint32{0x01b56ff4, 0x0145a8d0, 0x038b3029, 0x03caaa32, 0x0299a787, 0x0241aea7, 0x005c679f, 0x0368b38c, 0x03b96d2b, 0x0034d924}}},
+ {X: Field{[10]uint32{0x008e555e, 0x03cfa6ba, 0x0099f96a, 0x028bcea7, 0x02585827, 0x00c7b1fd, 0x0108d45b, 0x02321055, 0x03225e85, 0x0012a40d}}, Y: Field{[10]uint32{0x0247d145, 0x01f44c8c, 0x0064c70c, 0x01df40b1, 0x0031c9a4, 0x003f3785, 0x012463f2, 0x01134331, 0x01a7fb9e, 0x00369351}}},
+ {X: Field{[10]uint32{0x016acb3e, 0x00a5dcea, 0x02b621cd, 0x02ef80bc, 0x00c68373, 0x005c3b20, 0x00052d6b, 0x02023ded, 0x018c2505, 0x001b4427}}, Y: Field{[10]uint32{0x02dc9a57, 0x00e2ca3a, 0x012adc50, 0x002e72e5, 0x03200c87, 0x02c08eff, 0x001088ec, 0x01b90145, 0x00de511f, 0x003237a8}}},
+ {X: Field{[10]uint32{0x02e1af88, 0x03c30e59, 0x01bf28f7, 0x00f8a1d3, 0x0106105b, 0x00d55d41, 0x015c7347, 0x00919f01, 0x00986d20, 0x00270866}}, Y: Field{[10]uint32{0x01d0914a, 0x027ecb63, 0x004550ec, 0x03354b52, 0x03efddf5, 0x01959783, 0x01d41463, 0x03fc4be7, 0x016c8edd, 0x00218dd2}}},
+ {X: Field{[10]uint32{0x0292b03a, 0x023b71b0, 0x032e74de, 0x02d772e3, 0x03dcd104, 0x00aee5ce, 0x036dd750, 0x003d8040, 0x00390e66, 0x0008b294}}, Y: Field{[10]uint32{0x006b11e8, 0x03a457d9, 0x0258eda5, 0x02eb100f, 0x01cb6731, 0x0023e832, 0x016449a7, 0x02e07910, 0x00711ef6, 0x0021bf51}}},
+ {X: Field{[10]uint32{0x02b6f938, 0x037a10b9, 0x0227c80b, 0x00977dd7, 0x022e39be, 0x03db2880, 0x0116fdd1, 0x011903c8, 0x0302cc00, 0x0033f063}}, Y: Field{[10]uint32{0x0290df7d, 0x0075a118, 0x01398645, 0x02936740, 0x01c09236, 0x01c232f9, 0x03a2923f, 0x0343965e, 0x00df4f79, 0x00358ad6}}},
+ {X: Field{[10]uint32{0x0280a087, 0x03053e66, 0x02f259d3, 0x015afb2e, 0x02574905, 0x008d7142, 0x01f46ca6, 0x01163a64, 0x00c23425, 0x000ce22f}}, Y: Field{[10]uint32{0x0245c016, 0x00b84fa9, 0x0013b310, 0x029752b1, 0x0306c3dc, 0x02563efc, 0x00223166, 0x015e0c07, 0x02f806f6, 0x001f52a8}}},
+ {X: Field{[10]uint32{0x00b46a19, 0x02a507bc, 0x03aa802b, 0x00f532f2, 0x0144ac96, 0x00db67e5, 0x018fefc1, 0x004b78f7, 0x00131b8c, 0x00349af4}}, Y: Field{[10]uint32{0x028d3a99, 0x002b096d, 0x00653cb1, 0x01f699e0, 0x020d045a, 0x032ad24a, 0x02948724, 0x01e571ad, 0x02a331b6, 0x0019be27}}},
+ {X: Field{[10]uint32{0x03d1fdb9, 0x0274a795, 0x035ca1d9, 0x0353511f, 0x03465a03, 0x03bd7d9a, 0x03960edf, 0x03a3c858, 0x030cdb67, 0x003734cd}}, Y: Field{[10]uint32{0x007084ef, 0x0185a9cd, 0x01ed9922, 0x02f66d93, 0x028a9eb4, 0x024efdcc, 0x038d4483, 0x02fe1cb3, 0x007a320a, 0x0022e4dd}}},
+ {X: Field{[10]uint32{0x038d8e7a, 0x0227cfd3, 0x0006f805, 0x02ecff82, 0x0121d449, 0x02718e06, 0x03105af5, 0x02b558cd, 0x0105e602, 0x001d01d3}}, Y: Field{[10]uint32{0x003d574d, 0x02e1052c, 0x002cfe19, 0x03db111e, 0x02bf0dd8, 0x0077548d, 0x00fd515a, 0x0202b411, 0x03d4adee, 0x00069352}}},
+ {X: Field{[10]uint32{0x0305c174, 0x00dcea0b, 0x034dd732, 0x025035ae, 0x01971203, 0x01e024aa, 0x00df438a, 0x00faedaa, 0x0081f3a2, 0x0002a273}}, Y: Field{[10]uint32{0x03c4fda4, 0x02a59128, 0x03d77873, 0x039d5c1f, 0x00326a9c, 0x02e5e77b, 0x01ddc9fd, 0x03c18d39, 0x03dd676d, 0x0012dbe0}}},
+ {X: Field{[10]uint32{0x0216424c, 0x028e03d9, 0x00e037dd, 0x0102d82b, 0x026443c5, 0x001fe592, 0x002ae36b, 0x00fc3864, 0x00bafa91, 0x0023c684}}, Y: Field{[10]uint32{0x01e5525f, 0x02615557, 0x0326e869, 0x018b5680, 0x0114e3a4, 0x01d03cc7, 0x0016ad4e, 0x01df0c91, 0x024445c1, 0x00040a35}}},
+ {X: Field{[10]uint32{0x01e27b51, 0x01d01222, 0x026d6f4c, 0x03e11e3e, 0x019154a2, 0x0369266b, 0x0157268a, 0x0288da9e, 0x027914f9, 0x002b63f6}}, Y: Field{[10]uint32{0x020e82ae, 0x01392f8c, 0x03834617, 0x03c09818, 0x03703b74, 0x0170f24c, 0x02deffc0, 0x029b1bdd, 0x02ab1f7d, 0x00272874}}},
+ {X: Field{[10]uint32{0x0167fbe7, 0x0178cb3f, 0x03c874d1, 0x003f93ec, 0x03219270, 0x03c8e38b, 0x008cc246, 0x00a5c110, 0x010a797b, 0x001b1ba6}}, Y: Field{[10]uint32{0x0391dac1, 0x00c1868f, 0x019e1be8, 0x021e4f53, 0x0139811b, 0x0010368c, 0x025b32cc, 0x0159667e, 0x03980f35, 0x0007ff05}}},
+ {X: Field{[10]uint32{0x01118969, 0x007e68c9, 0x0247cedc, 0x01728d02, 0x039f86f7, 0x0027c8de, 0x035351de, 0x00aaf658, 0x03ea31ad, 0x00080ac4}}, Y: Field{[10]uint32{0x001bcba0, 0x03314d46, 0x004c0fe3, 0x0085c000, 0x03868a45, 0x02f2061c, 0x0111184e, 0x00dfd354, 0x0105a14e, 0x00314bed}}},
+ {X: Field{[10]uint32{0x03b748a5, 0x0210a475, 0x02f5fd22, 0x031848c9, 0x03034053, 0x02615654, 0x01c7c7cf, 0x010beac3, 0x00a10251, 0x0014d57c}}, Y: Field{[10]uint32{0x02281949, 0x0333c5df, 0x0118f4b1, 0x01a9e071, 0x039cddd3, 0x0183b8fb, 0x008ff9de, 0x0007db07, 0x036a5535, 0x001d6ef8}}},
+ {X: Field{[10]uint32{0x029829d7, 0x00ebab30, 0x02235f91, 0x02c4d1c1, 0x0279a39a, 0x02a0ebb0, 0x00f16644, 0x037b2747, 0x0178eacb, 0x002e214b}}, Y: Field{[10]uint32{0x03183156, 0x00c584f7, 0x020faeb4, 0x0343dca7, 0x038d51ee, 0x03a27b0e, 0x002735d2, 0x03187eb9, 0x035052b3, 0x001d8eea}}},
+ {X: Field{[10]uint32{0x03057ae2, 0x033b56c1, 0x0188beec, 0x03a02c3c, 0x01696d18, 0x0027b343, 0x017d4d6a, 0x03de3870, 0x004b294d, 0x0032acb9}}, Y: Field{[10]uint32{0x01ff2f43, 0x02681a06, 0x00ed5405, 0x02b416c8, 0x02de28bf, 0x0156d41b, 0x0149607c, 0x01266b3b, 0x009a501a, 0x003cd46c}}},
+ {X: Field{[10]uint32{0x03056b31, 0x01a14f15, 0x026589d4, 0x00dae6e1, 0x03b16f9f, 0x0152dd5a, 0x012355eb, 0x015568af, 0x01c99c6d, 0x0005002e}}, Y: Field{[10]uint32{0x03a077a8, 0x0270cab7, 0x00436e56, 0x007e5bc9, 0x035709b9, 0x03508477, 0x026993b3, 0x00459e82, 0x001662f4, 0x0022ca42}}},
+ {X: Field{[10]uint32{0x03d9141e, 0x03b1b9af, 0x018a50fb, 0x00655623, 0x03b3d31b, 0x0044511a, 0x03ae7a9a, 0x027071a1, 0x032e973e, 0x0014ab8d}}, Y: Field{[10]uint32{0x02351ccb, 0x02ff8360, 0x0256b71e, 0x033363b3, 0x001f87cf, 0x0116436d, 0x0238721a, 0x0390b6e5, 0x000de6d0, 0x003e60ad}}},
+ {X: Field{[10]uint32{0x01899c24, 0x03d976d8, 0x032e0fe5, 0x0022e4df, 0x001139b7, 0x0143700c, 0x0241e148, 0x011896f8, 0x03bd4082, 0x000f453f}}, Y: Field{[10]uint32{0x00a1dfb7, 0x03f1d862, 0x02872981, 0x03bf4dd9, 0x02799882, 0x034884e8, 0x01cf16b8, 0x03811d36, 0x00fa477e, 0x002c4299}}},
+ {X: Field{[10]uint32{0x02a48930, 0x0057b36e, 0x0246e824, 0x0346a57f, 0x03e7ab3f, 0x0353261e, 0x03bc2700, 0x03065ea2, 0x02df54e0, 0x0031bd4a}}, Y: Field{[10]uint32{0x0056811d, 0x016bf64e, 0x03a8f77e, 0x024cab7a, 0x03b9ef91, 0x0267e912, 0x010281c0, 0x01ced241, 0x006fb538, 0x001d4930}}},
+ {X: Field{[10]uint32{0x0144c1aa, 0x01828fb2, 0x00f559fe, 0x03601b46, 0x005f2d1d, 0x031e7070, 0x03c838a4, 0x01f2d9e8, 0x0264bdc4, 0x00240224}}, Y: Field{[10]uint32{0x02ee04de, 0x003ece74, 0x03064eea, 0x032e4779, 0x02ca140b, 0x010c392d, 0x01d582cc, 0x00c899aa, 0x0046d70b, 0x0006258e}}},
+ {X: Field{[10]uint32{0x03da0662, 0x03dc247b, 0x006ebc1b, 0x019a5bcf, 0x012db741, 0x03a084a9, 0x035b2d4c, 0x00df0589, 0x00ea478b, 0x00389f09}}, Y: Field{[10]uint32{0x02783de3, 0x01f3c244, 0x03b7d853, 0x036bf0ed, 0x03bb99f4, 0x000c5e46, 0x01532bb5, 0x019f2feb, 0x0279c3a2, 0x0009fb14}}},
+ {X: Field{[10]uint32{0x000a3eb2, 0x03bfe131, 0x0092b917, 0x03b98190, 0x032549b8, 0x025574ef, 0x0025d857, 0x035badc0, 0x02129cf1, 0x0032976a}}, Y: Field{[10]uint32{0x027a9811, 0x02109677, 0x01e9ef6a, 0x03c9dee2, 0x037c4aa5, 0x035082d2, 0x027c7c27, 0x01bdf4cf, 0x0105500f, 0x001a0b52}}},
+ {X: Field{[10]uint32{0x00877f55, 0x005a67bf, 0x00170487, 0x016d0943, 0x006c98ac, 0x02274509, 0x0223fb5c, 0x031a2119, 0x000f2b2a, 0x00241a7b}}, Y: Field{[10]uint32{0x031fb05e, 0x034e95b9, 0x00266975, 0x02a322e0, 0x02a6c3c3, 0x00901f7f, 0x000617ee, 0x00dc485b, 0x02c4eff8, 0x00331403}}},
+ {X: Field{[10]uint32{0x03bda16c, 0x02c4e470, 0x0250fb8c, 0x00f01649, 0x00053639, 0x017a2ae8, 0x02742d3c, 0x03b86dae, 0x02eb0bd5, 0x0017f87f}}, Y: Field{[10]uint32{0x0065a34b, 0x0250ade6, 0x01af53bf, 0x01a90dd7, 0x03ea02ae, 0x001cbddb, 0x025ba068, 0x0193b4d0, 0x032701ac, 0x0036c46c}}},
+ {X: Field{[10]uint32{0x001b2c34, 0x019b12ab, 0x00cb8318, 0x00aa1783, 0x026bf260, 0x02439382, 0x0035b6cf, 0x03e20d24, 0x01a5f168, 0x000292a4}}, Y: Field{[10]uint32{0x03837596, 0x02080c1f, 0x00857ce0, 0x02a7023d, 0x02ff7265, 0x00ae262a, 0x02f2ff8e, 0x03b47462, 0x02a8fe36, 0x00016ffb}}},
+ {X: Field{[10]uint32{0x02884849, 0x01bdd1be, 0x019e35f0, 0x01bb4f1f, 0x0143f536, 0x03aaaf93, 0x00705054, 0x016d492a, 0x0336f0c3, 0x003d04d7}}, Y: Field{[10]uint32{0x010c526b, 0x03f12c99, 0x0052dd55, 0x00c30ea7, 0x01ba1a5d, 0x00c1d75d, 0x019d0ea4, 0x0301e2d3, 0x03f1b8b6, 0x000719c1}}},
+ {X: Field{[10]uint32{0x00380203, 0x00ea7ce5, 0x01e0fdcc, 0x01364ad0, 0x00014a50, 0x020fa12e, 0x03449928, 0x03eebb4a, 0x018a9363, 0x00356a26}}, Y: Field{[10]uint32{0x0260e9fb, 0x026cf6ba, 0x03d4b0bf, 0x02be98aa, 0x032f20c5, 0x0351b35f, 0x038ae7c6, 0x0320162e, 0x03036fdd, 0x0025805a}}},
+ {X: Field{[10]uint32{0x03f3d176, 0x022e6f92, 0x01fa8cc3, 0x039e6443, 0x00d50297, 0x0043064e, 0x007fb622, 0x0036f428, 0x023404b3, 0x00220132}}, Y: Field{[10]uint32{0x03d37b0d, 0x02bb79d5, 0x02c9124c, 0x0142c472, 0x01eb65db, 0x00e1c58c, 0x008c55ff, 0x01f18dde, 0x02e57992, 0x0016d92f}}},
+ {X: Field{[10]uint32{0x03811021, 0x0176fd8a, 0x00e740ac, 0x01d1f426, 0x010c947c, 0x022f6969, 0x008e78e7, 0x0086daf1, 0x01fc440c, 0x0021a470}}, Y: Field{[10]uint32{0x03b1787e, 0x0122f2b5, 0x01c0903d, 0x00e7d9b0, 0x00682f45, 0x000a9c44, 0x02c330af, 0x00460555, 0x01c535f5, 0x003f63b0}}},
+ {X: Field{[10]uint32{0x03093229, 0x01018dfb, 0x001eb58a, 0x02aec3b4, 0x03c3ee5f, 0x0253a4a4, 0x02bfe3f8, 0x038b87f7, 0x01f6343b, 0x001117f0}}, Y: Field{[10]uint32{0x0185b605, 0x001ef6df, 0x010af329, 0x03cd236a, 0x03c3c087, 0x03b7b44e, 0x00aa1b73, 0x03e14f41, 0x03fe6737, 0x00215fc5}}},
+ {X: Field{[10]uint32{0x036493b4, 0x03140069, 0x039667d1, 0x01568773, 0x02af1a55, 0x02e23135, 0x023aaf95, 0x0346c2cb, 0x03dea657, 0x00170e5f}}, Y: Field{[10]uint32{0x030aff0a, 0x02681bf7, 0x03d32de7, 0x00b3d21f, 0x03ce5cb5, 0x02a7f153, 0x0336aee6, 0x00f1d4b5, 0x00207b6f, 0x002739d2}}},
+ {X: Field{[10]uint32{0x03fc1b7e, 0x00dbe931, 0x030c1d7e, 0x0210dcb4, 0x02d9f535, 0x037f8644, 0x01d2bc5b, 0x0380a0d8, 0x01cb28d7, 0x0026d559}}, Y: Field{[10]uint32{0x03879eea, 0x0266c458, 0x0062d827, 0x01d7662c, 0x01a23af0, 0x038fdb1b, 0x0257f054, 0x02a0c962, 0x028d2de2, 0x001f573e}}},
+ {X: Field{[10]uint32{0x01194f1d, 0x015368f2, 0x03b4b896, 0x027c404a, 0x02a5229a, 0x006ec656, 0x031b1657, 0x021c34e5, 0x00631bbf, 0x002bef7b}}, Y: Field{[10]uint32{0x0327e296, 0x030914e3, 0x0316a773, 0x00507d50, 0x0383fe57, 0x02ec2899, 0x0074ad1b, 0x009497e6, 0x0349b949, 0x0033f2e9}}},
+ {X: Field{[10]uint32{0x00ad916b, 0x0075a22b, 0x03f4d0e0, 0x0318b12c, 0x03a7cc11, 0x03a7a7b1, 0x03c61605, 0x014d1d72, 0x03cbca3a, 0x001dc4aa}}, Y: Field{[10]uint32{0x024b82fb, 0x023c289a, 0x03ead0c6, 0x03f47ffb, 0x02b57cbb, 0x030ef4cc, 0x02b43af8, 0x009556b4, 0x01bc0eb1, 0x001ee472}}},
+ {X: Field{[10]uint32{0x00a2b7e2, 0x00b4e2c7, 0x01c9f07a, 0x00459b9d, 0x0311b43a, 0x037d419a, 0x01fe506f, 0x017904b9, 0x0346f293, 0x000f1148}}, Y: Field{[10]uint32{0x019cd800, 0x00231ffd, 0x026962c6, 0x0228d4ad, 0x010e0203, 0x012047f6, 0x03532f8d, 0x01a0a4eb, 0x01e127f9, 0x003f4fdb}}},
+ {X: Field{[10]uint32{0x0248b7be, 0x020b6c2a, 0x030547d1, 0x011377c2, 0x00e04eda, 0x0032652e, 0x01a53d67, 0x0368ff1f, 0x002fb4db, 0x0002f616}}, Y: Field{[10]uint32{0x01285c68, 0x03a318d1, 0x0033ad6d, 0x02de5d9c, 0x00ef0dc4, 0x039f420a, 0x016b282e, 0x01a2ee30, 0x0369c182, 0x001e6789}}},
+ {X: Field{[10]uint32{0x02c84112, 0x0339b3ec, 0x0371974d, 0x03ab667a, 0x03befe03, 0x01a44ce3, 0x03fb71c1, 0x0375018a, 0x00a78dd9, 0x00310404}}, Y: Field{[10]uint32{0x02a2ff83, 0x0058b690, 0x0208d29b, 0x001cc50f, 0x00f270f8, 0x0209298f, 0x01c5dbcf, 0x02f088ec, 0x039de71e, 0x00140230}}},
+ {X: Field{[10]uint32{0x0121d311, 0x0094f309, 0x01f4a1b6, 0x01777b6d, 0x03f786bc, 0x01426f23, 0x02586a6a, 0x02e89c01, 0x007e6cf4, 0x003a27a0}}, Y: Field{[10]uint32{0x02fea2cc, 0x0366527c, 0x0117aad6, 0x03070264, 0x012228f9, 0x0301000a, 0x039fcfc4, 0x01237a4d, 0x03797c49, 0x002ab7b2}}},
+ {X: Field{[10]uint32{0x00b08577, 0x006e43f7, 0x03fdbdca, 0x01ce19bc, 0x0084091f, 0x0048630d, 0x01379195, 0x02fe4190, 0x01b3be2d, 0x000d8f7c}}, Y: Field{[10]uint32{0x01848bae, 0x02f7c3dd, 0x026057e3, 0x01918c26, 0x00f9ea5b, 0x01f9dbc8, 0x0221493f, 0x038db125, 0x004e5634, 0x0002bbf4}}},
+ {X: Field{[10]uint32{0x038ea16e, 0x028f22f1, 0x003becd4, 0x00e8d357, 0x03ca8fe3, 0x0173112e, 0x01213228, 0x02093920, 0x023883d2, 0x00172345}}, Y: Field{[10]uint32{0x02c0456f, 0x02baeb86, 0x02685872, 0x037e3cc6, 0x02355347, 0x027dd496, 0x01005914, 0x019b0225, 0x01d9c7ce, 0x003d9be4}}},
+ {X: Field{[10]uint32{0x02cbe126, 0x0217a1fa, 0x01ff4080, 0x0162f9d7, 0x024181dd, 0x03649536, 0x037789ee, 0x020fb760, 0x02760835, 0x00042b19}}, Y: Field{[10]uint32{0x0317d22d, 0x015fafae, 0x02a1a01f, 0x02806057, 0x0372e0db, 0x031ac96b, 0x0065acb0, 0x039eec1d, 0x02de23f3, 0x001b4faa}}},
+ {X: Field{[10]uint32{0x00153048, 0x029a5ea3, 0x037da8db, 0x003e6d87, 0x02974c4c, 0x00823a8f, 0x01677962, 0x01550111, 0x01ea7bb6, 0x00079e68}}, Y: Field{[10]uint32{0x00787fc4, 0x03bca97c, 0x015dd394, 0x02f8ce81, 0x03e07d35, 0x02a0023a, 0x01874064, 0x012221a2, 0x017920a3, 0x002d8f8f}}},
+ {X: Field{[10]uint32{0x03fa9a5b, 0x02f34254, 0x0076a7be, 0x00604759, 0x02116991, 0x0003fc4f, 0x00df2abb, 0x0288fd42, 0x007397b0, 0x0036c347}}, Y: Field{[10]uint32{0x0100dfe8, 0x0278ca12, 0x00dc9d0b, 0x010598a7, 0x032f85fd, 0x02d723bb, 0x01724312, 0x013c7b46, 0x00773ca7, 0x00072742}}},
+ {X: Field{[10]uint32{0x03385f27, 0x0280fb72, 0x03622003, 0x008f9883, 0x03969042, 0x00b9dd6f, 0x02bdc229, 0x033a3499, 0x03b3481e, 0x00387f75}}, Y: Field{[10]uint32{0x030a4c77, 0x01019aa5, 0x03e6d09e, 0x024f8840, 0x03d9b31f, 0x00ff71a9, 0x02dee658, 0x00ffdc35, 0x039f2895, 0x000f3eac}}},
+ {X: Field{[10]uint32{0x0223ffd3, 0x037c46a8, 0x018803b2, 0x0396fc62, 0x039ed85f, 0x0084c323, 0x02701c92, 0x02ee3cf5, 0x01342b69, 0x00259e5c}}, Y: Field{[10]uint32{0x02631d31, 0x025f91c3, 0x0394e059, 0x031b0255, 0x02632c0d, 0x034a68f9, 0x00b6d93c, 0x01be7df1, 0x003f630b, 0x000b50cd}}},
+ {X: Field{[10]uint32{0x01c33efc, 0x020505f6, 0x03ba8cba, 0x01b66a67, 0x00ec0a77, 0x02677520, 0x01d2a0f3, 0x0352531a, 0x02186e27, 0x0037ed00}}, Y: Field{[10]uint32{0x0137796e, 0x01ec4ad7, 0x00f4861f, 0x00705e08, 0x009bd850, 0x02580c14, 0x0245bcb7, 0x00c9cc57, 0x01dce9f9, 0x000ccb64}}},
+ {X: Field{[10]uint32{0x027681ec, 0x02e11a30, 0x035e5189, 0x0011fef8, 0x01171de0, 0x017068cc, 0x0208da7b, 0x03729145, 0x01ebed13, 0x001ad971}}, Y: Field{[10]uint32{0x01a34f62, 0x01e723a2, 0x01f43e26, 0x0137d6ee, 0x013e71fc, 0x01bf53e1, 0x0246b51f, 0x02f02cbc, 0x02e8e0ae, 0x0002bf43}}},
+ {X: Field{[10]uint32{0x00c4b619, 0x00e43d4a, 0x0100480a, 0x008bf7f3, 0x03021e5c, 0x03509b7c, 0x02396aa5, 0x00e59789, 0x01a160b0, 0x002f070f}}, Y: Field{[10]uint32{0x00a31640, 0x03b5192b, 0x03bc8076, 0x0334d6b2, 0x0386ad94, 0x0108b046, 0x017862c0, 0x03faa42b, 0x017465e4, 0x003f595c}}},
+ {X: Field{[10]uint32{0x0005913a, 0x004f7ea3, 0x038e2de6, 0x001b0b1b, 0x01090264, 0x02f161f8, 0x038a6a8c, 0x0328d54f, 0x011796d6, 0x001626c7}}, Y: Field{[10]uint32{0x003fb3e0, 0x00b2eb94, 0x02c87974, 0x01a76917, 0x003c7b64, 0x00eee8a9, 0x039365de, 0x013d1b89, 0x01ecac25, 0x00399575}}},
+ {X: Field{[10]uint32{0x00ae4ed5, 0x016fe61e, 0x01677612, 0x033f3a9d, 0x016ada63, 0x024b652f, 0x01c2ef5c, 0x01b0aa53, 0x03856d1e, 0x00279c98}}, Y: Field{[10]uint32{0x00e304dd, 0x03d4d058, 0x01896069, 0x01010f24, 0x030a83bc, 0x0371ea8a, 0x028a48e0, 0x00e3e2d8, 0x01f51e5b, 0x002308e3}}},
+ {X: Field{[10]uint32{0x02764263, 0x02d76f71, 0x018d57ea, 0x02bc9548, 0x004f9bd3, 0x00820380, 0x000c551b, 0x03dd3ee9, 0x017814e0, 0x000489a7}}, Y: Field{[10]uint32{0x0385b3d6, 0x017e1938, 0x01a704a9, 0x031f08b7, 0x00daee58, 0x02f45a48, 0x02febcdb, 0x025d7041, 0x00bd6584, 0x0003c3dc}}},
+ {X: Field{[10]uint32{0x033088a6, 0x0245ced5, 0x03aa315e, 0x02fc59db, 0x005c73fd, 0x009cfbff, 0x0048cdd6, 0x02405383, 0x032fcc50, 0x0034c84b}}, Y: Field{[10]uint32{0x0032df82, 0x01902112, 0x02fc09db, 0x03aa14fe, 0x00ff59b6, 0x0271a4d3, 0x02618c84, 0x03d47cd8, 0x01f10673, 0x000e6bce}}},
+ {X: Field{[10]uint32{0x00250052, 0x01168821, 0x02dccdae, 0x03f67d0a, 0x034ef288, 0x03d92588, 0x0014e724, 0x002eb510, 0x032b9bcc, 0x00314d7d}}, Y: Field{[10]uint32{0x02271022, 0x0171fb92, 0x000a7465, 0x0008a4c0, 0x02884473, 0x01f3a0a6, 0x0014a17f, 0x018c6d8a, 0x005b6fb7, 0x000fde66}}},
+ {X: Field{[10]uint32{0x03399605, 0x003eb4e4, 0x03c121c8, 0x004bb035, 0x03271e39, 0x003b437d, 0x002bb186, 0x027e9618, 0x01269b16, 0x0013d6dc}}, Y: Field{[10]uint32{0x01cfd0a7, 0x0104d8f3, 0x00fb5dbe, 0x03c81881, 0x02576f63, 0x025f24ca, 0x002c6cdb, 0x0163aa44, 0x01047f2a, 0x002d83f0}}},
+ {X: Field{[10]uint32{0x03d5d065, 0x0323c6ed, 0x03851de9, 0x01f5cde9, 0x000ec70e, 0x0000a705, 0x02c2863e, 0x00e2c6bc, 0x033b244c, 0x0032d166}}, Y: Field{[10]uint32{0x0157fbd0, 0x01d293c6, 0x010ea53a, 0x0055a4b2, 0x02a888bd, 0x03a242ce, 0x02462411, 0x01db20bd, 0x015d3c03, 0x001ed9ec}}},
+ {X: Field{[10]uint32{0x0219054e, 0x00a87e93, 0x02597ea7, 0x018f4691, 0x02d389f5, 0x03d0d065, 0x03121bb7, 0x03831463, 0x01c70ebd, 0x001e1f58}}, Y: Field{[10]uint32{0x0272a658, 0x00ef2fab, 0x014ba4b9, 0x02ef5cad, 0x03f42e9e, 0x02cf4542, 0x031cf396, 0x0232e309, 0x02f25fcf, 0x0016ebd5}}},
+ {X: Field{[10]uint32{0x01f6115c, 0x00edbaf1, 0x012bacc9, 0x0229808d, 0x02337353, 0x0358e420, 0x037d97cb, 0x02c3252d, 0x002a31d0, 0x0030e2bf}}, Y: Field{[10]uint32{0x03ee529f, 0x0109a210, 0x004690d8, 0x022f4b96, 0x01875e09, 0x01917e35, 0x01a26a4c, 0x03f3092e, 0x03cab138, 0x002e4977}}},
+ {X: Field{[10]uint32{0x03406d0a, 0x0321e6bf, 0x0282ad6e, 0x002e2ade, 0x0339a5dd, 0x016e6c97, 0x01c6ad5e, 0x01ba56e7, 0x023b8e60, 0x000dd987}}, Y: Field{[10]uint32{0x03e9b977, 0x02c58e29, 0x002a4df1, 0x00e44c8e, 0x0160d8bc, 0x01b3e510, 0x017e07bd, 0x023f384c, 0x025d430d, 0x002adcd7}}},
+ {X: Field{[10]uint32{0x01e256ba, 0x01a28594, 0x02062abd, 0x0367d939, 0x0388ea5a, 0x0370319d, 0x018e9348, 0x00ad1f0f, 0x0051b8c2, 0x0039449e}}, Y: Field{[10]uint32{0x030405c6, 0x01fce1c9, 0x004b3f94, 0x0136e1c1, 0x025b1e7d, 0x0154dffe, 0x034b7dc0, 0x027ade42, 0x037e0034, 0x001611fd}}},
+ {X: Field{[10]uint32{0x017382e9, 0x0191ee6b, 0x03b41955, 0x02601482, 0x02127a36, 0x00e03f81, 0x013e7cb7, 0x02a284dc, 0x005da6b8, 0x003cf1fd}}, Y: Field{[10]uint32{0x023e7c87, 0x0397ef7d, 0x00a51ddf, 0x0005c675, 0x034b4693, 0x00024d9d, 0x01decd09, 0x0274c7dc, 0x0211eb1b, 0x000ab3e6}}},
+ {X: Field{[10]uint32{0x00d745ba, 0x012cbc21, 0x024de0ff, 0x0254eec3, 0x0279125f, 0x0122a642, 0x03733a18, 0x02c94948, 0x0047e8d5, 0x0021b790}}, Y: Field{[10]uint32{0x01bc969a, 0x0269d19c, 0x02007427, 0x00146a7b, 0x03569211, 0x0177a4b4, 0x0284cf7d, 0x000174ac, 0x00720dac, 0x001c79a9}}},
+ {X: Field{[10]uint32{0x03f57504, 0x021d70bc, 0x02c635e2, 0x032b0317, 0x023029d9, 0x03cea85a, 0x020cd963, 0x02759b65, 0x00307225, 0x00318457}}, Y: Field{[10]uint32{0x037a712f, 0x004a1427, 0x0077050d, 0x0004d10f, 0x01ced024, 0x00f20868, 0x017f56c2, 0x0375e35e, 0x00d0b33f, 0x000635a4}}},
+ {X: Field{[10]uint32{0x02f53c5b, 0x034d9d10, 0x03c6ac61, 0x03c78afe, 0x018bfae0, 0x01a4a6c1, 0x0038cbd7, 0x011cee46, 0x00998b43, 0x0032d514}}, Y: Field{[10]uint32{0x01572bbf, 0x0236de24, 0x00ddfde3, 0x02e9efed, 0x01c00ba8, 0x026e77d5, 0x03684b4f, 0x013c2335, 0x034d79e3, 0x00104675}}},
+ {X: Field{[10]uint32{0x02922d2a, 0x014bca14, 0x013725a7, 0x01cf1b42, 0x020a333b, 0x0182a628, 0x01771e26, 0x00aed3ec, 0x0304b936, 0x00343739}}, Y: Field{[10]uint32{0x02e37e47, 0x028e4565, 0x018ffde5, 0x01529314, 0x02124d3f, 0x016730bb, 0x033891a2, 0x033837c7, 0x03707947, 0x003e4b0e}}},
+ {X: Field{[10]uint32{0x016b20a4, 0x02866fc8, 0x03a96249, 0x01679f5c, 0x03d42702, 0x01957314, 0x02ab8570, 0x016618e3, 0x0238e5aa, 0x0036e4f8}}, Y: Field{[10]uint32{0x03bcc7c5, 0x035fad7e, 0x0094c815, 0x025718bf, 0x033ab178, 0x009bbd95, 0x034f60cd, 0x023ad942, 0x008b670e, 0x00234677}}},
+ {X: Field{[10]uint32{0x00c3f486, 0x01753bda, 0x01835ba8, 0x03f2efc4, 0x014d6c6c, 0x001e584a, 0x0207e54b, 0x02fbe0a7, 0x037fd8ce, 0x0030e1f0}}, Y: Field{[10]uint32{0x01ddeda9, 0x03f9e384, 0x00897994, 0x0036d896, 0x03c8e3ae, 0x004b5ff9, 0x020f7d7f, 0x02cc01b2, 0x00d9ae7e, 0x00214960}}},
+ {X: Field{[10]uint32{0x0206c232, 0x00dd271d, 0x01092f94, 0x03748eb6, 0x024d3b22, 0x024aed2d, 0x0001b5b1, 0x039544df, 0x0134f04d, 0x003aed63}}, Y: Field{[10]uint32{0x01d1ae16, 0x01223f37, 0x0112bc59, 0x00b14272, 0x03d92ae7, 0x0016af26, 0x01d3e829, 0x03e7536c, 0x01059c99, 0x0006e5e7}}},
+ {X: Field{[10]uint32{0x02e38e6b, 0x017390a5, 0x038d8252, 0x022befc8, 0x032f1317, 0x00c32b44, 0x01810b17, 0x028a6dd9, 0x0066acfd, 0x001e2473}}, Y: Field{[10]uint32{0x027caaf1, 0x02b3d94d, 0x02db972f, 0x039f6c02, 0x03a21ff6, 0x01fb2bb0, 0x02987ad0, 0x0231b118, 0x03292018, 0x0008864d}}},
+ {X: Field{[10]uint32{0x0014d081, 0x014378d6, 0x011f472c, 0x0003028c, 0x000acec8, 0x01e4ff63, 0x02578a53, 0x007a34b0, 0x0142e4bc, 0x00302c09}}, Y: Field{[10]uint32{0x017f8371, 0x0262f06d, 0x01673136, 0x0213afff, 0x0376b1a8, 0x00702465, 0x02e6bb57, 0x005f0006, 0x00710f59, 0x000092f7}}},
+ {X: Field{[10]uint32{0x0026d2dd, 0x028dad71, 0x014b2f07, 0x03d13acf, 0x03c2000c, 0x0103a980, 0x02fd9a3e, 0x01141fc4, 0x0174b870, 0x003a8575}}, Y: Field{[10]uint32{0x0230944e, 0x00969462, 0x0124b6ca, 0x01b16269, 0x00c5cdc1, 0x02df8e25, 0x00faf58a, 0x028e7d38, 0x014f4d8c, 0x002d965b}}},
+ {X: Field{[10]uint32{0x039604de, 0x006dde73, 0x006726e5, 0x02604d63, 0x02708776, 0x009274d3, 0x00d5726a, 0x01abdee2, 0x03dfc35a, 0x001df4e1}}, Y: Field{[10]uint32{0x008b4a87, 0x0336693c, 0x0324993f, 0x001b7805, 0x01459165, 0x013e8ac7, 0x013c2351, 0x02a58b4b, 0x02cd2d70, 0x003976bb}}},
+ {X: Field{[10]uint32{0x01ccd7ec, 0x01aa7727, 0x02db8329, 0x03530c54, 0x031064f9, 0x035bfbee, 0x024dc2f9, 0x0093ef06, 0x02cb7d1a, 0x002a49d0}}, Y: Field{[10]uint32{0x01679f76, 0x0063908c, 0x0225ad9d, 0x018ecf9c, 0x0266d4f1, 0x0208fcf1, 0x0346df60, 0x03c293b0, 0x00f98cda, 0x001996a7}}},
+ {X: Field{[10]uint32{0x02316a46, 0x02c417e9, 0x02b6f36c, 0x0368a783, 0x00f62de9, 0x01ed54c1, 0x034053d3, 0x00e4f574, 0x00f79f0c, 0x00094f95}}, Y: Field{[10]uint32{0x027155e0, 0x038cfaf3, 0x03fd7b2a, 0x01fe3f82, 0x0067c857, 0x016c9fbc, 0x029417ac, 0x03b030ca, 0x00cded78, 0x0015385a}}},
+ {X: Field{[10]uint32{0x0003fbf2, 0x01173000, 0x004434ee, 0x031eccf6, 0x0255fc01, 0x038e00a6, 0x039586f9, 0x021c8185, 0x00e0e9c3, 0x00344c12}}, Y: Field{[10]uint32{0x00743f37, 0x01d42021, 0x021e3640, 0x0102e6f1, 0x01af2578, 0x02c9470e, 0x00906897, 0x0091de15, 0x02db9450, 0x001f1119}}},
+ {X: Field{[10]uint32{0x00a284a2, 0x001194dc, 0x032c88e6, 0x00dca958, 0x02a632b2, 0x02f6f26a, 0x007d0797, 0x008488a2, 0x0110387c, 0x003a48d0}}, Y: Field{[10]uint32{0x036523c4, 0x02c33edb, 0x0363ae80, 0x0147dd03, 0x01839a26, 0x01be63b6, 0x03b3afe6, 0x01486d3f, 0x008c4ca3, 0x000ae62c}}},
+ {X: Field{[10]uint32{0x03a29be5, 0x02a76b60, 0x0271332b, 0x007253e2, 0x00742834, 0x02ec95d9, 0x0091a5a7, 0x01e3bdce, 0x03a7ab69, 0x000c0b80}}, Y: Field{[10]uint32{0x0310120b, 0x028be0d5, 0x002eea98, 0x036d9102, 0x030e8430, 0x0395aecf, 0x02e850d2, 0x00d6facb, 0x02db210c, 0x0012af82}}},
+ {X: Field{[10]uint32{0x01665368, 0x03345584, 0x008598d7, 0x0370c75a, 0x024fea8b, 0x02c3e31e, 0x020571ee, 0x003cc372, 0x03894440, 0x0014dc04}}, Y: Field{[10]uint32{0x02a97cbe, 0x0069d3fa, 0x02d1971b, 0x036fc5a9, 0x01a712e2, 0x02a68db8, 0x0331bbe5, 0x03c88695, 0x026439c1, 0x00328d15}}},
+ {X: Field{[10]uint32{0x028383cd, 0x0254a6bc, 0x00ff4957, 0x0375508f, 0x01656aaa, 0x0168b4e6, 0x012b6f7a, 0x01f2e3eb, 0x0186645d, 0x002303a0}}, Y: Field{[10]uint32{0x0048d27f, 0x035dd5d3, 0x018ffcdc, 0x013b2538, 0x0263c6d2, 0x023eed20, 0x007319d1, 0x0126064c, 0x01ea14c4, 0x000bbc9d}}},
+ {X: Field{[10]uint32{0x03ad8af5, 0x010f5e97, 0x0101dafc, 0x004b1a5e, 0x01adddc5, 0x03fe32a6, 0x01615c45, 0x028f2684, 0x003126ba, 0x001929c2}}, Y: Field{[10]uint32{0x02fe29d5, 0x014f9c2a, 0x0342c432, 0x0128a23d, 0x00148efe, 0x02ec5e5a, 0x0245c354, 0x017dab0e, 0x008b59a6, 0x002e90f1}}},
+ {X: Field{[10]uint32{0x01438e06, 0x02d1ea97, 0x0268051d, 0x033ed3d5, 0x0363559a, 0x00598917, 0x03785e2e, 0x023892cb, 0x026e82ff, 0x003f6f41}}, Y: Field{[10]uint32{0x02973d63, 0x038aa104, 0x03def144, 0x0356c905, 0x02875731, 0x022e5267, 0x02a5d382, 0x036308dd, 0x01cfa19e, 0x0001836b}}},
+ {X: Field{[10]uint32{0x02ad174f, 0x009bd07b, 0x03e0af1b, 0x033cb72c, 0x0282cf15, 0x02518544, 0x01dba01d, 0x001cc467, 0x00b81ff9, 0x002ca1f3}}, Y: Field{[10]uint32{0x0374e090, 0x02f7027e, 0x01bd1acf, 0x02af000e, 0x0236d1be, 0x036d9bb4, 0x038a4635, 0x002fb92c, 0x03397a9a, 0x001bfc54}}},
+ {X: Field{[10]uint32{0x01068116, 0x035735ff, 0x02c3c962, 0x015c06f7, 0x033b3f84, 0x02cc0cbe, 0x01f21888, 0x00d293e9, 0x0248b652, 0x0006011e}}, Y: Field{[10]uint32{0x0224574b, 0x01385681, 0x0117b1f3, 0x00244068, 0x01801342, 0x033a95a0, 0x02c54446, 0x0220c8c1, 0x02691819, 0x0004d89d}}},
+ {X: Field{[10]uint32{0x0235f914, 0x01f9ea00, 0x02aae0ce, 0x03a56f52, 0x026b74ff, 0x0290784d, 0x022dd328, 0x00b39622, 0x014fbe4e, 0x003c74ed}}, Y: Field{[10]uint32{0x00a3981a, 0x03589dea, 0x0233be86, 0x01965fbf, 0x02c0c211, 0x0212188c, 0x02e1471e, 0x0205fad2, 0x0141300e, 0x000df097}}},
+ {X: Field{[10]uint32{0x013bec4a, 0x00e8db61, 0x02a839ce, 0x00db1788, 0x019770da, 0x0042b55b, 0x03509a60, 0x037eadff, 0x01e95046, 0x0026c36a}}, Y: Field{[10]uint32{0x00135faa, 0x01dd40ce, 0x024d96da, 0x006468a4, 0x03df757c, 0x010e0a73, 0x00bbc3ff, 0x0168dba0, 0x034530c2, 0x0009f580}}},
+ {X: Field{[10]uint32{0x0099c5cc, 0x03635976, 0x025f9f13, 0x0093cbad, 0x022d3e4d, 0x01c5d5a3, 0x0255d403, 0x03462c2f, 0x03d95155, 0x003420ce}}, Y: Field{[10]uint32{0x024741e8, 0x01cef265, 0x01de13c4, 0x020bb13a, 0x02ffeefb, 0x01b6dc51, 0x03b1e4c5, 0x012ad447, 0x02c3b504, 0x0039426b}}},
+ {X: Field{[10]uint32{0x03c37117, 0x00ca788b, 0x038a626c, 0x01885f27, 0x03ed62ad, 0x01e6039a, 0x0201b402, 0x005f90a2, 0x027c185f, 0x00231058}}, Y: Field{[10]uint32{0x023662f7, 0x016dee4e, 0x01ca77d9, 0x01071ccb, 0x02a36da4, 0x020fdcfb, 0x028a1e74, 0x029548df, 0x026c3316, 0x001d7288}}},
+ {X: Field{[10]uint32{0x03728d27, 0x018a0ec9, 0x0311e7cc, 0x01b96d42, 0x002d75c2, 0x0284ee5f, 0x007099e9, 0x02a8c173, 0x0105e43a, 0x000dc7c0}}, Y: Field{[10]uint32{0x02b3ce99, 0x00ee031a, 0x0149b029, 0x009b3b7c, 0x01b11944, 0x0114e3ab, 0x00643120, 0x01b5a233, 0x03e7d097, 0x00325a76}}},
+ {X: Field{[10]uint32{0x00cb1710, 0x03fef70b, 0x03e03541, 0x020dea3c, 0x02d94aeb, 0x01761930, 0x034d3a18, 0x028d63e2, 0x019a4238, 0x001440bd}}, Y: Field{[10]uint32{0x01ef1445, 0x008824e1, 0x016ce915, 0x030e27a6, 0x010bbffd, 0x035072af, 0x0130606c, 0x00f0fd33, 0x00f9adb6, 0x00278531}}},
+ {X: Field{[10]uint32{0x03f08beb, 0x00aea9c7, 0x00cc26df, 0x02bef52a, 0x00a7f57e, 0x00d858bc, 0x00353c78, 0x0100f01e, 0x036cfd40, 0x00032886}}, Y: Field{[10]uint32{0x037f12f9, 0x038f9607, 0x03ffee6a, 0x02085092, 0x03d6b684, 0x0147b6c3, 0x019f2ef7, 0x02956cff, 0x004647eb, 0x0004228f}}},
+ {X: Field{[10]uint32{0x01d775d9, 0x0139a28c, 0x007697c9, 0x00b2b310, 0x017ec364, 0x00038f72, 0x0368bc82, 0x034673a0, 0x00b3ff40, 0x00367351}}, Y: Field{[10]uint32{0x005f0901, 0x03257ad2, 0x033cb085, 0x006d6eaf, 0x03fd7c4a, 0x01e7792b, 0x00f71010, 0x03dc0753, 0x036c683e, 0x002dadbe}}},
+ {X: Field{[10]uint32{0x01a10360, 0x02f7d105, 0x021e104f, 0x0020ff31, 0x00510da5, 0x006f5241, 0x01644267, 0x01a222ed, 0x00b2cbcb, 0x002684d5}}, Y: Field{[10]uint32{0x034f953a, 0x03a2e0a1, 0x01b9b710, 0x03ce0776, 0x03bc4927, 0x00f8900d, 0x023a2a89, 0x0122d136, 0x0291707c, 0x000fd7d4}}},
+ {X: Field{[10]uint32{0x010fdf79, 0x002ae76b, 0x02941bd5, 0x0314e1a4, 0x0220fc60, 0x03ac3f6f, 0x03deb0bc, 0x020712b9, 0x020f271a, 0x00317957}}, Y: Field{[10]uint32{0x01c83a63, 0x001ddbff, 0x000aecb1, 0x01f5c228, 0x0285ed9e, 0x018aba4e, 0x0253e7cc, 0x024c041e, 0x0335eab4, 0x0004e283}}},
+ {X: Field{[10]uint32{0x0060f919, 0x0012bb64, 0x012c69a0, 0x01c81667, 0x027c67ea, 0x03317d98, 0x010e4dc6, 0x02f4f48a, 0x03647f66, 0x0017af0b}}, Y: Field{[10]uint32{0x0054659c, 0x0265b582, 0x00f1e56e, 0x0182c432, 0x033ec1e8, 0x014da58d, 0x00f79206, 0x0217889f, 0x03cedf20, 0x001a3df6}}},
+ {X: Field{[10]uint32{0x03966e03, 0x0041d733, 0x00b2da42, 0x02074e96, 0x00161d70, 0x029e7258, 0x011a5a79, 0x00374141, 0x039c7d06, 0x0013ca3a}}, Y: Field{[10]uint32{0x0267fafc, 0x03cf8174, 0x02a6c2ef, 0x00f4b3c4, 0x0044849f, 0x028abf9e, 0x02aeb8e4, 0x011d06ec, 0x00610543, 0x003b0de2}}},
+ {X: Field{[10]uint32{0x0283fe8f, 0x0056d286, 0x005c0efe, 0x03b95fb2, 0x019fa039, 0x002cd1f2, 0x00c7a9a1, 0x00f82614, 0x00d1ce11, 0x003d4388}}, Y: Field{[10]uint32{0x02e975be, 0x026ff0fe, 0x00aa94db, 0x01e09f55, 0x00cee464, 0x00501fc8, 0x018595f6, 0x01068a08, 0x023190df, 0x00136df0}}},
+ {X: Field{[10]uint32{0x03eff5ef, 0x021068ea, 0x01e76ab2, 0x01735092, 0x0079de94, 0x015620af, 0x038cdf2b, 0x02ae5775, 0x02d01ade, 0x003339ac}}, Y: Field{[10]uint32{0x00626e52, 0x0109f94d, 0x02bd5604, 0x02be7e89, 0x01bab1db, 0x0182c6f5, 0x03764bb5, 0x00502bf7, 0x02741312, 0x00075a41}}},
+ {X: Field{[10]uint32{0x032d8475, 0x003b5ba7, 0x03bbfbc8, 0x0394b4d2, 0x01e4830b, 0x016bf3b0, 0x00c73121, 0x0155f4bb, 0x0174fb10, 0x00156994}}, Y: Field{[10]uint32{0x038012c0, 0x032245c9, 0x03eec611, 0x03539cd4, 0x023f0623, 0x01524e01, 0x00dd4126, 0x014dea5c, 0x01f1de1e, 0x0031a5e5}}},
+ {X: Field{[10]uint32{0x0127f290, 0x03b4a298, 0x00ab0267, 0x0065d965, 0x02d0c1d8, 0x01eb2351, 0x022779e9, 0x02cf71f8, 0x00fa7b4d, 0x001e0887}}, Y: Field{[10]uint32{0x03c46a54, 0x014fa432, 0x00b663ad, 0x0030b8d6, 0x02ace066, 0x03aad594, 0x003a1582, 0x02318922, 0x01edfd8e, 0x00237735}}},
+ {X: Field{[10]uint32{0x006ed178, 0x00b5bea6, 0x03f9602b, 0x038a3e4b, 0x009006cc, 0x00041e0b, 0x00da39d6, 0x0390d3b5, 0x0039441e, 0x0026e614}}, Y: Field{[10]uint32{0x02c6cfa4, 0x0397e704, 0x003bb85f, 0x0385cfc0, 0x028a50da, 0x0364e230, 0x03f67d22, 0x01ecade2, 0x01c87b53, 0x003873e1}}},
+ {X: Field{[10]uint32{0x037edf20, 0x027c8103, 0x004f38ae, 0x02c0a477, 0x026c27e7, 0x026d9d5e, 0x01b9d78d, 0x0123795f, 0x03b14a9e, 0x0026a8bf}}, Y: Field{[10]uint32{0x037d1040, 0x022dfd8d, 0x00a115ff, 0x03549dcb, 0x018f80d7, 0x0164a54b, 0x00066ef8, 0x03de53f8, 0x03e378e0, 0x001dc71e}}},
+ {X: Field{[10]uint32{0x02937e1f, 0x0166a271, 0x02c021e3, 0x0145b603, 0x00949de2, 0x00248a83, 0x00510cb4, 0x02d18c5f, 0x008366a0, 0x00344164}}, Y: Field{[10]uint32{0x02c8630e, 0x0105517e, 0x000ac99c, 0x00bebb1e, 0x020e5e6f, 0x03117836, 0x017155c0, 0x011052a2, 0x0225c9ea, 0x0021014e}}},
+ {X: Field{[10]uint32{0x01c5d066, 0x028bfc7e, 0x027c23e7, 0x03671c2e, 0x031ac58a, 0x00aa07df, 0x01c2d810, 0x02612bfb, 0x02cf7456, 0x0007cfb2}}, Y: Field{[10]uint32{0x01a23e54, 0x00d7601c, 0x00d94cd4, 0x018b83e6, 0x0015f1f3, 0x0085a07e, 0x034539ef, 0x0093c5cf, 0x00fa2bfd, 0x0031ab76}}},
+ {X: Field{[10]uint32{0x022c4371, 0x03372836, 0x024fe569, 0x001bacd4, 0x035e504d, 0x01b23e51, 0x0151ece8, 0x0032b495, 0x0309a16d, 0x0028c4b1}}, Y: Field{[10]uint32{0x03ae7b03, 0x01e00e6c, 0x039690c7, 0x00a6b1ef, 0x0008c1fc, 0x01ad6ee1, 0x009ea2c6, 0x03176882, 0x002aea04, 0x002197b3}}},
+ {X: Field{[10]uint32{0x004197af, 0x03ccbd9d, 0x0169d953, 0x036c405f, 0x008c3493, 0x030bbb4e, 0x00f64109, 0x02e9e3ef, 0x0275e829, 0x003c8711}}, Y: Field{[10]uint32{0x018b2f57, 0x03dd2b42, 0x03ef2b37, 0x01cd20b4, 0x01043d93, 0x028dec0f, 0x030ee061, 0x01f2bd76, 0x033e4337, 0x003f4b19}}},
+ {X: Field{[10]uint32{0x00865692, 0x03b5f006, 0x014268fe, 0x00ce9cef, 0x01f48369, 0x02146acc, 0x00b2eb61, 0x02680bef, 0x00ea2a02, 0x0004585d}}, Y: Field{[10]uint32{0x030aaefd, 0x01cb5375, 0x00352ee7, 0x015512d9, 0x0125cf38, 0x01bd7475, 0x03ca2a2d, 0x02b676d7, 0x0027e1ce, 0x000848f4}}},
+ {X: Field{[10]uint32{0x03f9d663, 0x00cd7e9c, 0x0260a962, 0x0343d79f, 0x022334fc, 0x015f9cb5, 0x00a21173, 0x0131b3d9, 0x03d0919e, 0x000d639d}}, Y: Field{[10]uint32{0x0037bc08, 0x02dbad9e, 0x020cb8b5, 0x02be821a, 0x03dcf5cd, 0x0222b1f3, 0x03819859, 0x03d00c41, 0x02206f99, 0x001fbe35}}},
+ {X: Field{[10]uint32{0x02a33fa9, 0x031b6aae, 0x0060db86, 0x02cea04d, 0x008056de, 0x00597eab, 0x0157e203, 0x03c518e4, 0x020d9e81, 0x001427df}}, Y: Field{[10]uint32{0x00db6ea9, 0x016e34a8, 0x03090a09, 0x017f0eff, 0x03fd1216, 0x00fc6b4e, 0x028645f9, 0x02db139a, 0x021a340e, 0x00154523}}},
+ {X: Field{[10]uint32{0x02a4ed09, 0x031f9ab4, 0x020b9ad9, 0x02f50e00, 0x00a15c95, 0x00d1bc87, 0x01e30c49, 0x0038987a, 0x025c185f, 0x000d638c}}, Y: Field{[10]uint32{0x0118c4b8, 0x026d97cb, 0x01b3d97f, 0x02f4d1e2, 0x0154aa11, 0x02cf5861, 0x02ef6903, 0x0056ca04, 0x0074c977, 0x00017f30}}},
+ {X: Field{[10]uint32{0x01a2fc4c, 0x00daf8f7, 0x00d2608d, 0x00411e24, 0x02e314c3, 0x00962780, 0x0337e4ea, 0x02bcb4df, 0x012dbc00, 0x0007871c}}, Y: Field{[10]uint32{0x010655dc, 0x02c7da92, 0x00c145bf, 0x01d410b5, 0x03974e7e, 0x034c2ce2, 0x0398cf5a, 0x01aef8d9, 0x039ae313, 0x00012263}}},
+ {X: Field{[10]uint32{0x03ffcd1d, 0x025ed5c8, 0x03918bd7, 0x0081cd86, 0x0064e317, 0x0202a564, 0x03b794dc, 0x01e6c3fc, 0x039aaa3f, 0x0029945b}}, Y: Field{[10]uint32{0x0254f5d4, 0x0140c00e, 0x00f9bed5, 0x0373af6f, 0x02812373, 0x01f1f0c4, 0x0377b074, 0x02e0c14f, 0x006b59f3, 0x003164d3}}},
+ {X: Field{[10]uint32{0x01098155, 0x00046e2c, 0x01b79295, 0x00cf6966, 0x0150cb56, 0x00c1111a, 0x03ab8240, 0x006e12e7, 0x00d88b1e, 0x00391ad2}}, Y: Field{[10]uint32{0x00c94f51, 0x01e4d96c, 0x00a80a5d, 0x02033654, 0x003e7c8a, 0x0165d0d4, 0x002e5512, 0x0265db8d, 0x02244a33, 0x0010fa6e}}},
+ {X: Field{[10]uint32{0x0365aa0b, 0x00cdc34f, 0x03400e58, 0x01000489, 0x00e1cc2d, 0x037e79c5, 0x025105b1, 0x030b8018, 0x009997a9, 0x00329e94}}, Y: Field{[10]uint32{0x02e1f071, 0x007abf99, 0x02039b7a, 0x011334b3, 0x0319c618, 0x03df2c3b, 0x01994fce, 0x03346883, 0x00e4d2ee, 0x00376329}}},
+ {X: Field{[10]uint32{0x02313f08, 0x003561a5, 0x02d0da39, 0x027bb007, 0x00848659, 0x01de1b10, 0x01352d4b, 0x015dbc44, 0x02c0d29b, 0x000c9ad7}}, Y: Field{[10]uint32{0x0011d384, 0x020a2a04, 0x0126495e, 0x0280f693, 0x01c2d5d3, 0x0356ca83, 0x02a60633, 0x01952f9e, 0x0171a4ac, 0x003d28fc}}},
+ {X: Field{[10]uint32{0x030d306d, 0x024c8a39, 0x03e2b392, 0x03bb944b, 0x017c5bf8, 0x03fa6eb6, 0x017038db, 0x031d6a95, 0x018254f5, 0x0002dd8a}}, Y: Field{[10]uint32{0x003606c5, 0x036cf6c5, 0x016fbf92, 0x01d4e612, 0x020cc85c, 0x035f7a2f, 0x035bb2d0, 0x00fa18b1, 0x039fb36e, 0x0022e023}}},
+ {X: Field{[10]uint32{0x032286ca, 0x026886e1, 0x014f5ef7, 0x0295e419, 0x03ae66f1, 0x03c6a046, 0x0250a096, 0x00dbff77, 0x00e12b1d, 0x0022f589}}, Y: Field{[10]uint32{0x011f02df, 0x02e015eb, 0x004d0fe9, 0x02885c15, 0x038bf6a2, 0x01108d2b, 0x0331c747, 0x022586d9, 0x022ef453, 0x0019a1fa}}},
+ {X: Field{[10]uint32{0x01de48a9, 0x02349741, 0x03da42d7, 0x00cf555c, 0x01509d1c, 0x03e11b19, 0x01414ccc, 0x024a402f, 0x02c72a9f, 0x003b497a}}, Y: Field{[10]uint32{0x00d89eaa, 0x0287ad40, 0x028b98f3, 0x03407dce, 0x018705a9, 0x020b35ef, 0x011583c6, 0x03f40edb, 0x01ed2710, 0x00155bea}}},
+ {X: Field{[10]uint32{0x00bc02bf, 0x012e79c2, 0x000600df, 0x030778a0, 0x000e8fac, 0x01d57ecc, 0x027bc94c, 0x01aa1271, 0x036c9ed7, 0x003c650e}}, Y: Field{[10]uint32{0x002a40a7, 0x023295a2, 0x004b0481, 0x00cb7c7e, 0x03a31562, 0x00b2e1db, 0x00bb6464, 0x01383dab, 0x020885dc, 0x002631ee}}},
+ {X: Field{[10]uint32{0x01e9e5d3, 0x01460ca9, 0x02f391d3, 0x0085ab23, 0x03834228, 0x033b6b9e, 0x0024276d, 0x02ae3ec3, 0x03142de3, 0x00316d82}}, Y: Field{[10]uint32{0x02b5cd69, 0x00ab37e7, 0x01260e91, 0x01e381f0, 0x02332595, 0x00535297, 0x01e10d90, 0x039827d5, 0x00da1174, 0x0033a1b9}}},
+ {X: Field{[10]uint32{0x013755ab, 0x00b10252, 0x014f592e, 0x000305a3, 0x01c77782, 0x014fe678, 0x019647b2, 0x03f98ccd, 0x038e706c, 0x0002c198}}, Y: Field{[10]uint32{0x0344bbd5, 0x0228e0f2, 0x0369d3e8, 0x01ee1f9f, 0x03e16dd3, 0x027e54d5, 0x02e24933, 0x0148a44d, 0x03ab1b4d, 0x00399007}}},
+ {X: Field{[10]uint32{0x024b14cf, 0x00e6df49, 0x03cd89f5, 0x0391a052, 0x03f0ec5f, 0x00cbe958, 0x0250ea54, 0x02b3f4a5, 0x01b5486d, 0x0033be30}}, Y: Field{[10]uint32{0x025a2fcf, 0x01aab046, 0x0166c931, 0x00aac94b, 0x015ed4fd, 0x01875ca0, 0x00939ea7, 0x002f8c00, 0x02c18d0b, 0x00020330}}},
+ {X: Field{[10]uint32{0x0385d7ce, 0x011b6892, 0x014f38e5, 0x01009a5d, 0x0162defb, 0x00662c70, 0x00dccac4, 0x03ca857f, 0x004df868, 0x003d85a4}}, Y: Field{[10]uint32{0x038255b3, 0x0098ce9e, 0x023e47f6, 0x00deabab, 0x03de8b4d, 0x01cecc73, 0x03b93e0b, 0x009327c2, 0x00123440, 0x003ee5c4}}},
+ {X: Field{[10]uint32{0x018632e3, 0x03d8b0fe, 0x02599a59, 0x0397b602, 0x011613d8, 0x000bfbd3, 0x02516979, 0x0129ecce, 0x0144bc7e, 0x0025ce18}}, Y: Field{[10]uint32{0x00fc16b4, 0x001b4d83, 0x03b6a5a8, 0x0196e9e6, 0x0308e560, 0x010c6bc9, 0x01834a95, 0x0264e4b7, 0x01845842, 0x002f44b5}}},
+ {X: Field{[10]uint32{0x030200c8, 0x03390dee, 0x0311b551, 0x03701584, 0x011eb08d, 0x0195ac9e, 0x003a56f6, 0x03e803d0, 0x030c7a70, 0x00251bc4}}, Y: Field{[10]uint32{0x01945b8d, 0x019a5278, 0x0310507a, 0x02529efd, 0x00186d97, 0x02bc15e1, 0x01a923f3, 0x01f981fd, 0x00f6a503, 0x002b35a6}}},
+ {X: Field{[10]uint32{0x03929230, 0x0102f730, 0x0287d917, 0x030cd08d, 0x01d5f1af, 0x03034962, 0x038c064f, 0x014ec030, 0x018472c4, 0x003b833c}}, Y: Field{[10]uint32{0x03ff8dc8, 0x01e09927, 0x0191f79c, 0x00a2cdba, 0x008c773c, 0x03289264, 0x014db12f, 0x034e5fa5, 0x035a7fec, 0x003605dd}}},
+ {X: Field{[10]uint32{0x01535d7b, 0x018e9ddf, 0x03c21234, 0x0225364e, 0x03ef0072, 0x02ac4a1f, 0x0148b4f4, 0x02961c27, 0x03fe9542, 0x003ccd7d}}, Y: Field{[10]uint32{0x03350283, 0x006140b8, 0x01bf7455, 0x03a69ac6, 0x017639da, 0x023abed3, 0x0389c06d, 0x0174a4d4, 0x01a30246, 0x000cdb92}}},
+ {X: Field{[10]uint32{0x017e7739, 0x02c383f2, 0x03f06f0e, 0x01b15675, 0x00b1326d, 0x01daa410, 0x00200d7b, 0x01fe3773, 0x01794fb3, 0x00156fe0}}, Y: Field{[10]uint32{0x03e69bfc, 0x024c28ab, 0x0086632e, 0x0293d274, 0x013053f6, 0x01f5c0fb, 0x002ade6f, 0x017307a4, 0x03007915, 0x00328cf3}}},
+ {X: Field{[10]uint32{0x01de29b0, 0x01f5bd8a, 0x0062349b, 0x0004bf83, 0x031033b9, 0x02edb650, 0x022195fa, 0x0369197b, 0x03816143, 0x0037ff33}}, Y: Field{[10]uint32{0x00f0aff7, 0x01d6e71d, 0x0190bbfe, 0x02757f7b, 0x00c04bc3, 0x02178562, 0x029fc06f, 0x012b9f70, 0x03f6e1dc, 0x0026ff7c}}},
+ {X: Field{[10]uint32{0x0139dec3, 0x039f608d, 0x0177f3c5, 0x0044ba3d, 0x02c435bc, 0x0155aec4, 0x01c1395b, 0x01be8bf9, 0x009425fc, 0x002e5d23}}, Y: Field{[10]uint32{0x014007a2, 0x032a2a32, 0x016e3dfa, 0x02f18eaa, 0x00f76d31, 0x0354507b, 0x016b2336, 0x0348ed7a, 0x03b2b995, 0x003d48e2}}},
+ {X: Field{[10]uint32{0x0297f7ca, 0x00561e2b, 0x039a3fb6, 0x0397e9a8, 0x022c5349, 0x03d4ab66, 0x0329e335, 0x02c55ce3, 0x0054e951, 0x0024b10f}}, Y: Field{[10]uint32{0x012b4a17, 0x02c06558, 0x022bf71b, 0x01e75a29, 0x02bdc4ae, 0x00d92d8a, 0x00924fc6, 0x006f28c2, 0x0373dedd, 0x001f1e9a}}},
+ {X: Field{[10]uint32{0x021eb272, 0x02d9ac34, 0x02d96040, 0x03a7d1c9, 0x035677af, 0x01e96248, 0x01ef139d, 0x017957b8, 0x03ea2599, 0x0002c64d}}, Y: Field{[10]uint32{0x03043dd6, 0x024c6033, 0x019195a9, 0x000ea3aa, 0x005585c5, 0x03911253, 0x003e0ca5, 0x031f3f9b, 0x0257544a, 0x00343e56}}},
+ {X: Field{[10]uint32{0x0133f457, 0x01b601f0, 0x01fc94a4, 0x01ea3443, 0x00e2a504, 0x00026de2, 0x005a6b72, 0x03892caf, 0x024dbd7e, 0x000b0735}}, Y: Field{[10]uint32{0x020aabe3, 0x01a12dd9, 0x0230cfd8, 0x03ea7a73, 0x027a9449, 0x0179a209, 0x0031a1f0, 0x01e92f9f, 0x03dfce7d, 0x003fa298}}},
+ {X: Field{[10]uint32{0x01004834, 0x03d4ff11, 0x014ed447, 0x01a1b321, 0x026d5443, 0x002900f5, 0x0030649b, 0x02a28ada, 0x0278be6e, 0x0013fc42}}, Y: Field{[10]uint32{0x018765d8, 0x00b4a1f9, 0x018bdb36, 0x035ca3d7, 0x01e43384, 0x0138b6c3, 0x001cf5bf, 0x001658ba, 0x00c356d5, 0x002cf2cc}}},
+ {X: Field{[10]uint32{0x003d28de, 0x000d563d, 0x0344d9da, 0x0320145c, 0x01f877e8, 0x031c5164, 0x00a7c2a0, 0x01996ad8, 0x03666c90, 0x000cfd56}}, Y: Field{[10]uint32{0x015163f6, 0x0293d90b, 0x01ce08c2, 0x0150e17b, 0x02af1467, 0x024e4c68, 0x020ea80c, 0x017b562b, 0x00ab6aa9, 0x000e6612}}},
+ {X: Field{[10]uint32{0x000d3e04, 0x0221eacd, 0x02636020, 0x01b56216, 0x02408da6, 0x03fcb5af, 0x037cc150, 0x00dfac62, 0x03595a72, 0x002e5c48}}, Y: Field{[10]uint32{0x0272363a, 0x01e22cef, 0x00ead817, 0x0223ea1f, 0x02dd125f, 0x031a4c51, 0x03f0ab8f, 0x0316906c, 0x03bd643a, 0x0028a0e8}}},
+ {X: Field{[10]uint32{0x00a1035b, 0x0297f058, 0x00dccf0b, 0x02953661, 0x035a4204, 0x03fdcce3, 0x002c1e9f, 0x0250d7d8, 0x00676efa, 0x003483e4}}, Y: Field{[10]uint32{0x03404139, 0x02b9dee3, 0x0086f3fa, 0x01bd9915, 0x01ca1af2, 0x028c545d, 0x004406ce, 0x000fe1c9, 0x007a4520, 0x002b0e8f}}},
+ {X: Field{[10]uint32{0x02f41f2d, 0x0252d4ff, 0x02ef54e2, 0x03800fb8, 0x0281d8b3, 0x001cb864, 0x00b2d0bd, 0x027c3511, 0x02a3157c, 0x000c8b5b}}, Y: Field{[10]uint32{0x012936b3, 0x0166d37e, 0x03a97ec3, 0x03dba98a, 0x026e096d, 0x0298e310, 0x02a9e676, 0x00b7799d, 0x03f19dc1, 0x0020e051}}},
+ {X: Field{[10]uint32{0x020c26d5, 0x027b67be, 0x024cf8f2, 0x032e52ab, 0x011d2bfa, 0x02b802c3, 0x0164ea7b, 0x0106dadd, 0x00080683, 0x00256497}}, Y: Field{[10]uint32{0x02b92130, 0x01bdfe1d, 0x006d02b4, 0x03f2f749, 0x00edf14c, 0x0081f0bb, 0x015557b2, 0x0088cb09, 0x01b91315, 0x000318fb}}},
+ {X: Field{[10]uint32{0x011f70af, 0x03b86f4f, 0x01664c06, 0x00b4f692, 0x03517a71, 0x00e64f35, 0x03fba71e, 0x00637684, 0x02b5d436, 0x001d64aa}}, Y: Field{[10]uint32{0x02eaa410, 0x0274e185, 0x01b457d7, 0x02ba5de8, 0x027a9222, 0x033ea2ac, 0x000aef1c, 0x00a1356b, 0x0077af74, 0x001553ba}}},
+ {X: Field{[10]uint32{0x0209e0eb, 0x03669644, 0x03503671, 0x0129814f, 0x00806257, 0x02ce45a0, 0x031ad311, 0x02dc7e18, 0x018be13e, 0x003b674a}}, Y: Field{[10]uint32{0x0185c3cb, 0x02e86e27, 0x02b6fe54, 0x03f35403, 0x017b479e, 0x03d0361f, 0x007caa30, 0x0221b668, 0x03c0dab8, 0x0025ea6a}}},
+ {X: Field{[10]uint32{0x02355fad, 0x039250be, 0x01fcb9f8, 0x028bff0e, 0x0378ae69, 0x002351a6, 0x028daf33, 0x002f0ef4, 0x0236a590, 0x00337fbd}}, Y: Field{[10]uint32{0x020db6d7, 0x02039194, 0x02d5179f, 0x0314de3c, 0x02f4f6c7, 0x024581ea, 0x02a1c255, 0x03bd3a91, 0x03cc54c0, 0x003e0ce3}}},
+ {X: Field{[10]uint32{0x0149db49, 0x014b9a9e, 0x035848ca, 0x00f5a961, 0x03dbc094, 0x01b67d76, 0x03a8fc42, 0x02f5ab29, 0x03220ca3, 0x003d8e33}}, Y: Field{[10]uint32{0x01675295, 0x02478290, 0x03732f36, 0x009a7f47, 0x01653a79, 0x03565450, 0x03490039, 0x03aade42, 0x03dd8309, 0x0015a899}}},
+ {X: Field{[10]uint32{0x0314bd1c, 0x01e8ac63, 0x02e1e638, 0x00eaf250, 0x037a6616, 0x018e482c, 0x0076cab1, 0x010fd40f, 0x02f29b1e, 0x0010d03f}}, Y: Field{[10]uint32{0x032210a0, 0x00af0ae0, 0x01eb6ad6, 0x00562eee, 0x0159ff2f, 0x01bdea77, 0x00908f0b, 0x034d4f1b, 0x002d6889, 0x000b569e}}},
+ {X: Field{[10]uint32{0x01b80991, 0x0208bc6a, 0x01a30bf2, 0x025b1bb4, 0x001aa832, 0x03bae09b, 0x012c01fb, 0x036c4c33, 0x028005e3, 0x001e2be1}}, Y: Field{[10]uint32{0x008c3725, 0x0106bd89, 0x02a2a49d, 0x03761881, 0x01ec458c, 0x02e53e0d, 0x000d95b6, 0x033a449a, 0x023637a6, 0x000671f2}}},
+ {X: Field{[10]uint32{0x01c41ef4, 0x00ab8472, 0x02d4958a, 0x01e4e2e5, 0x01720642, 0x00ecf558, 0x02831c01, 0x02fbdd52, 0x010fe6a4, 0x00361f96}}, Y: Field{[10]uint32{0x021d1dc6, 0x02d02e6f, 0x016b3e30, 0x0286d422, 0x0353b97a, 0x023b53af, 0x03ff97ff, 0x00d227c7, 0x013ac9b4, 0x000e4a2a}}},
+ {X: Field{[10]uint32{0x01c54c32, 0x02a111b7, 0x00a7f630, 0x01a4656e, 0x0285ea85, 0x002e41db, 0x015cfd0a, 0x011fa505, 0x01f369c5, 0x002d6746}}, Y: Field{[10]uint32{0x02661865, 0x03fc2176, 0x00357f81, 0x01fb1129, 0x032d5082, 0x02058b17, 0x0383d552, 0x02af838a, 0x008affe7, 0x002e3d56}}},
+ {X: Field{[10]uint32{0x00f3ee78, 0x00f4c318, 0x0143a6d8, 0x02f57abd, 0x03662726, 0x007050ea, 0x02a64cd8, 0x026c000e, 0x03da7cd5, 0x000d3d90}}, Y: Field{[10]uint32{0x00501ee8, 0x001111bd, 0x03b22d52, 0x0078fe91, 0x0291906c, 0x00fb968d, 0x00bd29b0, 0x03d5cd68, 0x00f291a7, 0x001055d3}}},
+ {X: Field{[10]uint32{0x033dbbf3, 0x00e57588, 0x01b4ecac, 0x03d5ac17, 0x00fd007b, 0x030c725a, 0x0378757d, 0x027790cf, 0x03d0583e, 0x0015bbcd}}, Y: Field{[10]uint32{0x035c9286, 0x0052e6b7, 0x0229a92c, 0x037ee7a5, 0x02ba8cb5, 0x00ee853a, 0x02e28075, 0x0263e442, 0x001ab5c8, 0x00285038}}},
+ {X: Field{[10]uint32{0x01c957d7, 0x037402bb, 0x00fc87e3, 0x01d9e115, 0x02fc54dd, 0x00e97750, 0x039ca5cb, 0x015a2c44, 0x0334815b, 0x0000790f}}, Y: Field{[10]uint32{0x02334cc8, 0x01c93ddf, 0x0302c85d, 0x03eb410c, 0x008e947a, 0x01370af7, 0x0282d9e6, 0x03b881e2, 0x0274ac96, 0x001730e0}}},
+ {X: Field{[10]uint32{0x0339a952, 0x00c18bf0, 0x00eabad9, 0x020a63de, 0x01f8b06c, 0x03606df7, 0x029046d3, 0x036df366, 0x024935d2, 0x000339e7}}, Y: Field{[10]uint32{0x004f9686, 0x0282286e, 0x01dc7fff, 0x03d7f701, 0x038765c8, 0x02f0f3d6, 0x018c4943, 0x0189a96b, 0x02ee1b90, 0x003f0bdb}}},
+ {X: Field{[10]uint32{0x02fe4fd9, 0x01030c61, 0x00e2c76c, 0x030d2cf7, 0x00f6766c, 0x0068033e, 0x00c3365e, 0x00b099c3, 0x0004ca86, 0x002d0512}}, Y: Field{[10]uint32{0x01b2219c, 0x016e6b54, 0x004b8717, 0x02ad78a8, 0x0029cbda, 0x00e803f5, 0x03752f00, 0x01b8028f, 0x021fca9b, 0x00390da2}}},
+ {X: Field{[10]uint32{0x034fd39f, 0x00750887, 0x006a70b7, 0x007b06f1, 0x01541634, 0x03b5274e, 0x039cf65c, 0x03e09239, 0x03247406, 0x003aa8a5}}, Y: Field{[10]uint32{0x017c14a6, 0x0374a2ea, 0x01d46248, 0x033c0e28, 0x02d0d4b6, 0x01788610, 0x00d99328, 0x01730f79, 0x001be3b7, 0x001a39fe}}},
+ {X: Field{[10]uint32{0x00f5b6a5, 0x00bb140c, 0x02999e7a, 0x0327d0b1, 0x02eb7371, 0x0372ff1c, 0x00c6caa3, 0x0222f0ee, 0x00ff1f72, 0x00138b44}}, Y: Field{[10]uint32{0x025a8774, 0x020803c2, 0x00f82be8, 0x03d7ad9e, 0x006ba793, 0x03905f40, 0x03515ca3, 0x013ec2a4, 0x005cdf2a, 0x001a368f}}},
+ {X: Field{[10]uint32{0x030659f1, 0x02776888, 0x01adce00, 0x025115f0, 0x007d073b, 0x019f0a25, 0x00a4b45c, 0x03b258aa, 0x01e1114d, 0x0020d3c8}}, Y: Field{[10]uint32{0x01adc89c, 0x02b1fec9, 0x00a6ef78, 0x036d8c83, 0x0339263a, 0x001299f0, 0x03acb27d, 0x028280bd, 0x01b6edb5, 0x003a7e98}}},
+ {X: Field{[10]uint32{0x00c7d0c7, 0x01c4e78c, 0x00381ece, 0x0367e6f7, 0x01c43cae, 0x034f5a3f, 0x03268d7c, 0x011156a5, 0x00aca0a6, 0x002a12d1}}, Y: Field{[10]uint32{0x03bf6b74, 0x02bc9642, 0x00d6da05, 0x01e4e20b, 0x03d12678, 0x02466bde, 0x03bde43f, 0x000aef4b, 0x033b74e7, 0x000be40f}}},
+ {X: Field{[10]uint32{0x001d6789, 0x00d207c9, 0x02cbdd41, 0x01f2ed0c, 0x02600cbe, 0x02783e9b, 0x031df66f, 0x02e5dd1e, 0x020698bc, 0x00084867}}, Y: Field{[10]uint32{0x00954055, 0x0346249c, 0x03736aef, 0x02f8c92e, 0x022e6970, 0x02d74c99, 0x017d9688, 0x0061d2a2, 0x00d3c896, 0x001e90e2}}},
+ {X: Field{[10]uint32{0x03aeafd4, 0x01ec8be6, 0x03562686, 0x01260a89, 0x017b9465, 0x013d261e, 0x034bbdbe, 0x0333da22, 0x021f93bf, 0x003e9453}}, Y: Field{[10]uint32{0x00f91b74, 0x03c95f69, 0x0330a478, 0x015b09a9, 0x012c2f61, 0x0324c382, 0x0087b518, 0x00ad2a78, 0x02155257, 0x00333520}}},
+ {X: Field{[10]uint32{0x01451ffb, 0x03e80b1e, 0x01ffa4ca, 0x03d4fcbf, 0x012204d4, 0x026f630b, 0x0133a4a9, 0x0267c301, 0x03f16430, 0x002d82be}}, Y: Field{[10]uint32{0x0321294b, 0x03bbe2d2, 0x03f43886, 0x0018fbbc, 0x01d321e0, 0x01af69ba, 0x00b3bd27, 0x02649b35, 0x03901a02, 0x0003fb63}}},
+ {X: Field{[10]uint32{0x03ed76cd, 0x02143a29, 0x00defc74, 0x0194e71b, 0x0017c2b7, 0x0151a53a, 0x02fcca65, 0x038d2a1b, 0x01a3196c, 0x003ca73e}}, Y: Field{[10]uint32{0x00c9c5f7, 0x0044a7e2, 0x028f6247, 0x01de6547, 0x00994b29, 0x036d6eb3, 0x03f1bf62, 0x00cf3ecd, 0x023af7c3, 0x00144c21}}},
+ {X: Field{[10]uint32{0x01084e4d, 0x02e49d71, 0x014ed563, 0x0128c889, 0x01d8fe31, 0x00f88fc7, 0x03af34b0, 0x02ff1468, 0x023acb00, 0x00273678}}, Y: Field{[10]uint32{0x0298e1d5, 0x01bf1384, 0x0277d4d3, 0x0133e34a, 0x014f31bd, 0x01ecc5c1, 0x01d6c1a1, 0x029c4054, 0x035cc66e, 0x003b3c08}}},
+ {X: Field{[10]uint32{0x02e5d65c, 0x00edbd7d, 0x025bff3d, 0x0246acac, 0x0218ed66, 0x0395a8a0, 0x02d99a6b, 0x00122be5, 0x01b02cfa, 0x0015be22}}, Y: Field{[10]uint32{0x001fe4bc, 0x03a81ec9, 0x00d921b7, 0x00a7a832, 0x01bb8ecc, 0x03723f28, 0x034f8248, 0x01cabfd9, 0x00ea4a23, 0x000d4ac8}}},
+ {X: Field{[10]uint32{0x01ff2a08, 0x024daad7, 0x03dea16c, 0x039491af, 0x028e2366, 0x00f7bd55, 0x0169a7dd, 0x0363f05b, 0x02b7f8fa, 0x00378caf}}, Y: Field{[10]uint32{0x009e145f, 0x00013509, 0x01acba7c, 0x0332c378, 0x03eaa216, 0x038997ea, 0x002bd06f, 0x0070891b, 0x011c93a7, 0x0035cc7c}}},
+ {X: Field{[10]uint32{0x026ba256, 0x0222578a, 0x02693096, 0x00ebe612, 0x037d12dc, 0x03beab36, 0x03dfa58f, 0x00a76300, 0x01c1dc17, 0x00217b1f}}, Y: Field{[10]uint32{0x024a747c, 0x02c2d166, 0x0041b194, 0x03cae86a, 0x0189e4b9, 0x03ee8c77, 0x00c73b5a, 0x02af2fe6, 0x00af8e9a, 0x00148c0e}}},
+ {X: Field{[10]uint32{0x01e2e141, 0x02972bd0, 0x014abe23, 0x0038ac9b, 0x02e22328, 0x00b6e2fd, 0x03f5efe4, 0x023b07b5, 0x01956052, 0x003de522}}, Y: Field{[10]uint32{0x00c6ff98, 0x03f2dee0, 0x012fcdd6, 0x01585b37, 0x0258871e, 0x02a35b67, 0x0037e9fd, 0x007e621a, 0x00e296ed, 0x0027dd65}}},
+ {X: Field{[10]uint32{0x03454f10, 0x0267383c, 0x00137621, 0x00eb88a3, 0x02866bd5, 0x0006a4ef, 0x036e8eef, 0x022094f5, 0x03d3b420, 0x0016235b}}, Y: Field{[10]uint32{0x002af573, 0x008a92ed, 0x02d2c6d9, 0x0206b437, 0x0206320b, 0x00c6df8c, 0x03f29ade, 0x00822ee8, 0x02533e41, 0x00297f25}}},
+ {X: Field{[10]uint32{0x00cc7443, 0x0108f787, 0x0259c0bf, 0x0253a0d1, 0x03b01db2, 0x025d9dde, 0x0387d4e8, 0x03229d5b, 0x008dbbe5, 0x00061bf8}}, Y: Field{[10]uint32{0x03dfbdc0, 0x01be67a6, 0x01bdca25, 0x009a9912, 0x0229f12e, 0x00d7f432, 0x037a93a4, 0x01e080d0, 0x0139a46f, 0x0036677b}}},
+ {X: Field{[10]uint32{0x01bd3d25, 0x01b57796, 0x036bb5a0, 0x02600bd5, 0x022af22e, 0x03b84ccd, 0x03eac38c, 0x02afcced, 0x03083055, 0x00395272}}, Y: Field{[10]uint32{0x01332381, 0x000c971f, 0x005fd4fe, 0x0390d2a5, 0x015ababd, 0x03f0d6b9, 0x001c7f7a, 0x00520d99, 0x0320e7b5, 0x00337cdf}}},
+ {X: Field{[10]uint32{0x0224422b, 0x024ce240, 0x006e18ac, 0x01e7d4ea, 0x00b930df, 0x03fa12d6, 0x006108fc, 0x01456172, 0x02fbfd7f, 0x0029390a}}, Y: Field{[10]uint32{0x00ce1e30, 0x011e5800, 0x03e2f1ea, 0x0072efa8, 0x00541e55, 0x024575eb, 0x00d6177f, 0x00c40ad6, 0x021b0396, 0x0003a7e3}}},
+ {X: Field{[10]uint32{0x0003dadb, 0x03bf72b6, 0x03d4ed09, 0x02a5c667, 0x004755fb, 0x01dd43e9, 0x009e9cfb, 0x00bd09ac, 0x00444202, 0x0017dfb6}}, Y: Field{[10]uint32{0x0376ffad, 0x0386f74a, 0x01addccb, 0x030e6ff3, 0x00e852d9, 0x02425bc7, 0x01592fcc, 0x023ac272, 0x01edd06a, 0x00024757}}},
+ {X: Field{[10]uint32{0x02938d66, 0x038603b0, 0x038f1868, 0x03e42be8, 0x0191dcf7, 0x03d9ef45, 0x033fa223, 0x0193842c, 0x034332f0, 0x000feb11}}, Y: Field{[10]uint32{0x02aabe5c, 0x00f69878, 0x019206f9, 0x003e7a99, 0x03eebf27, 0x0045cc2e, 0x006d10ab, 0x00de64ce, 0x02676b20, 0x00115d13}}},
+ {X: Field{[10]uint32{0x037a7aa9, 0x0192f7fe, 0x006b190e, 0x003da863, 0x00d4b10e, 0x01f639e1, 0x00d13df9, 0x034850b9, 0x03fff058, 0x0017ee60}}, Y: Field{[10]uint32{0x01dabd6f, 0x003c69a3, 0x018e8346, 0x020629b5, 0x00ec5811, 0x025ccf5d, 0x0373f73a, 0x0103343a, 0x02018dc5, 0x000cce51}}},
+ {X: Field{[10]uint32{0x0341f88a, 0x003d79b7, 0x020e043e, 0x0078674f, 0x009c6e94, 0x02c20d99, 0x015eec1a, 0x00e68b6c, 0x01c30fa9, 0x0002ebcd}}, Y: Field{[10]uint32{0x028e9201, 0x004234bd, 0x01966214, 0x011553fb, 0x019de414, 0x00ee2c1a, 0x02bdc3fe, 0x0286f13b, 0x00d3e53f, 0x0010960f}}},
+ {X: Field{[10]uint32{0x009a8602, 0x00128160, 0x01f9a0c7, 0x0366b36e, 0x004266c4, 0x00fecf58, 0x0186183a, 0x01ffc3c7, 0x035aa51e, 0x0025d907}}, Y: Field{[10]uint32{0x019517dd, 0x034ca1eb, 0x0239b5b0, 0x03f51676, 0x031ab169, 0x0073e9e3, 0x0182fc90, 0x02f6fb63, 0x0232aa9f, 0x0004d3fe}}},
+ {X: Field{[10]uint32{0x0327292e, 0x031ad549, 0x02a5ee23, 0x03286a1d, 0x03f59feb, 0x02f8170d, 0x01aa8fb4, 0x03db716b, 0x011eacda, 0x0025a8dc}}, Y: Field{[10]uint32{0x01da4392, 0x03b34fe9, 0x00e96b82, 0x008d5840, 0x0134be91, 0x01eb5760, 0x01fce0e6, 0x02eded78, 0x03b9681e, 0x0023ec33}}},
+ {X: Field{[10]uint32{0x03154b0a, 0x02ab7bd3, 0x01e2a14f, 0x02c0fa75, 0x029f9f16, 0x004d8c82, 0x01388926, 0x0031b4a3, 0x028b8e54, 0x002b9910}}, Y: Field{[10]uint32{0x00118aeb, 0x01e524ff, 0x002e4d5b, 0x03b5bf9b, 0x03cc68ad, 0x003fd679, 0x02d5193b, 0x01cf36e7, 0x025eb9bf, 0x0036c80b}}},
+ {X: Field{[10]uint32{0x00c984fb, 0x00a41d5b, 0x0038d422, 0x03feea1d, 0x03e16424, 0x016d210c, 0x03532cf1, 0x030b0452, 0x02df65c0, 0x000b164c}}, Y: Field{[10]uint32{0x03d29130, 0x028b0931, 0x01e47f59, 0x00a0b3ac, 0x011c6436, 0x022e7fd3, 0x015deec3, 0x02815b4e, 0x00c4b908, 0x000587be}}},
+ {X: Field{[10]uint32{0x02ecca3e, 0x0123d55e, 0x02071f9c, 0x0276f1a4, 0x02241538, 0x03aff2ff, 0x0252d563, 0x02e9a460, 0x00786937, 0x001db887}}, Y: Field{[10]uint32{0x0133c8e6, 0x0293bf51, 0x02a77a3f, 0x00a235c6, 0x01ca634d, 0x024c27fa, 0x0361d0d4, 0x01f5878e, 0x02fe9db4, 0x00379de1}}},
+ {X: Field{[10]uint32{0x0267900f, 0x01c2016c, 0x00a36eaa, 0x018ff259, 0x02099df3, 0x02bf1a91, 0x020b3466, 0x004e3474, 0x00efca8a, 0x001c5c37}}, Y: Field{[10]uint32{0x00c0bb8d, 0x00db5776, 0x0320303b, 0x039188fe, 0x00440562, 0x021c3e3e, 0x0389f7bf, 0x00515663, 0x0139476f, 0x00065aff}}},
+ {X: Field{[10]uint32{0x011b6ccd, 0x001f16da, 0x036f2e69, 0x018b8d60, 0x0361a956, 0x0347a27d, 0x01fb466e, 0x034916a8, 0x02b075bd, 0x00263b77}}, Y: Field{[10]uint32{0x030c91be, 0x02a107d5, 0x02814731, 0x0266aca5, 0x00bdbcdc, 0x00228e8b, 0x002ddc21, 0x0092e327, 0x01f6b591, 0x002bcfed}}},
+ {X: Field{[10]uint32{0x028e8849, 0x03db6a2e, 0x00e6768b, 0x01383ea6, 0x018dd1c3, 0x0160de70, 0x0236fc5c, 0x0181be97, 0x000659ae, 0x002fd0be}}, Y: Field{[10]uint32{0x0155b8af, 0x039a3e1d, 0x0298f26b, 0x0344873b, 0x00ca74a0, 0x01aeba31, 0x03495782, 0x036e511b, 0x03706e4a, 0x0034d0fe}}},
+ {X: Field{[10]uint32{0x0262e1cd, 0x037e5551, 0x038a0d82, 0x0170230c, 0x02c42fd6, 0x018927f0, 0x0075c365, 0x023718a4, 0x00a5891e, 0x00103071}}, Y: Field{[10]uint32{0x00689ec3, 0x02843a73, 0x0303ae5a, 0x009ce815, 0x03f20253, 0x02f304ac, 0x015d8192, 0x03db0dc6, 0x03d0e68e, 0x00199c88}}},
+ {X: Field{[10]uint32{0x03883dc1, 0x0044cfa3, 0x03c92b92, 0x00f1524b, 0x03bfd3ef, 0x02828b5b, 0x004cf1b1, 0x00ff920e, 0x03100c8e, 0x00058b74}}, Y: Field{[10]uint32{0x01b5cff0, 0x00f23803, 0x00e21a65, 0x013a1ba8, 0x003d0ebf, 0x03d24387, 0x0197685c, 0x000ae7dc, 0x01d5c82f, 0x0007c8c4}}},
+ {X: Field{[10]uint32{0x006331cb, 0x031f9033, 0x03b3dbdf, 0x03f5455e, 0x005d63c4, 0x00227b16, 0x03302e51, 0x02b8f3cf, 0x014689ea, 0x003fc3e0}}, Y: Field{[10]uint32{0x0151bf2e, 0x02d591c1, 0x00c2dac2, 0x037d68ec, 0x02f8814c, 0x01e3476a, 0x02549737, 0x00a78eeb, 0x01b94eb5, 0x0013707f}}},
+ {X: Field{[10]uint32{0x0207b78e, 0x028e45d1, 0x02033c3e, 0x010553d2, 0x0314b3e6, 0x0131b66a, 0x0072b224, 0x02d55cbd, 0x0274b011, 0x00050eb9}}, Y: Field{[10]uint32{0x0201c35c, 0x032d084d, 0x0099fdb9, 0x022b8667, 0x03ca2029, 0x0280f7f5, 0x018820c0, 0x03ee8980, 0x01820fae, 0x00054a35}}},
+ {X: Field{[10]uint32{0x019009a3, 0x01ec05e3, 0x006f35e1, 0x003b35ae, 0x004115a8, 0x00a5d366, 0x03a0efd3, 0x03517e5b, 0x02288fff, 0x003ceb73}}, Y: Field{[10]uint32{0x0116a20e, 0x001996d2, 0x00ba72d2, 0x0293aaf5, 0x03805580, 0x0252961a, 0x020915e4, 0x026ec1a6, 0x03009632, 0x0008080b}}},
+ {X: Field{[10]uint32{0x00d8cccf, 0x001d5631, 0x032f85ad, 0x008bd13e, 0x034904ad, 0x02930891, 0x00e6bc6f, 0x003438b2, 0x0029e273, 0x003489c2}}, Y: Field{[10]uint32{0x0079a3bc, 0x000bd7a2, 0x03a93c63, 0x01eab819, 0x0227c66c, 0x0098b904, 0x009741df, 0x03d9a566, 0x00ac9d5b, 0x003569ad}}},
+ {X: Field{[10]uint32{0x012964a6, 0x032b7d0d, 0x0356756e, 0x02299727, 0x01834753, 0x00aecbcf, 0x0057a948, 0x03caa117, 0x02b67d9b, 0x0009b45f}}, Y: Field{[10]uint32{0x02068fb2, 0x01c67078, 0x01c6b7f7, 0x006bf348, 0x00b8703d, 0x02926a9c, 0x03c4a520, 0x030d16f3, 0x03d47d67, 0x002552bc}}},
+ {X: Field{[10]uint32{0x03fac74b, 0x01a3c879, 0x024760bf, 0x0264c4d1, 0x0036a52d, 0x017b9f44, 0x011618ce, 0x03226573, 0x038be104, 0x003910df}}, Y: Field{[10]uint32{0x0195cb81, 0x01c36e36, 0x0356e27b, 0x02f6e071, 0x00f9b015, 0x02d5bf23, 0x0020dbe3, 0x01b9b06a, 0x02d5b825, 0x0035b055}}},
+ {X: Field{[10]uint32{0x02d3c1d4, 0x011d3be8, 0x02c70851, 0x00700347, 0x01ac5bb5, 0x026d68e7, 0x02b63ed2, 0x0181e598, 0x004e96db, 0x00224cb8}}, Y: Field{[10]uint32{0x03e58541, 0x021d511d, 0x0336ec05, 0x00368ef4, 0x01fc912a, 0x030d5472, 0x03f51668, 0x00897414, 0x037fe030, 0x00150df9}}},
+ {X: Field{[10]uint32{0x02617b26, 0x020945c5, 0x01fd0c7c, 0x0390171b, 0x00933ed0, 0x01b20507, 0x02003c73, 0x021b016c, 0x0176465b, 0x003f9dda}}, Y: Field{[10]uint32{0x012aac39, 0x039b6731, 0x002aa472, 0x00f89544, 0x0094364d, 0x01677754, 0x002b0af3, 0x03541b4c, 0x005fd576, 0x002c9e77}}},
+ {X: Field{[10]uint32{0x035b45f1, 0x03f24714, 0x0372cb86, 0x00f29ae7, 0x01f69eb7, 0x018ce05f, 0x004ecbe1, 0x02489172, 0x00ffb2a2, 0x001b1829}}, Y: Field{[10]uint32{0x022a0a2c, 0x01734a4a, 0x022231b5, 0x00af48f5, 0x036489af, 0x03e71e14, 0x0301a510, 0x033071c0, 0x026f814b, 0x0009e37b}}},
+ {X: Field{[10]uint32{0x009af04d, 0x00791ce7, 0x02a81e12, 0x02d1ba70, 0x03a955be, 0x0327a185, 0x01556c5e, 0x0240aa63, 0x018f625f, 0x000c4cb9}}, Y: Field{[10]uint32{0x01a9e461, 0x02361a51, 0x01006943, 0x01f25171, 0x01cf0a95, 0x011a4131, 0x01b92204, 0x00f17853, 0x0164a244, 0x00296202}}},
+ {X: Field{[10]uint32{0x00903f6f, 0x01404b8d, 0x022dc57e, 0x002a77a0, 0x03640e18, 0x0234e161, 0x01003fdc, 0x026fdbae, 0x0236361a, 0x002c173b}}, Y: Field{[10]uint32{0x005c9a5a, 0x0363a095, 0x018c5305, 0x0288c35e, 0x0126fe21, 0x01897617, 0x005ce16d, 0x0268a2dd, 0x00862951, 0x003ed1ce}}},
+ {X: Field{[10]uint32{0x02005e83, 0x0017c584, 0x0273903a, 0x01b2af61, 0x0023cd2f, 0x00eab5f3, 0x014e68de, 0x039601e8, 0x020f5659, 0x00388084}}, Y: Field{[10]uint32{0x03ada136, 0x02755783, 0x01544084, 0x02b1f020, 0x02a70e8f, 0x0017eebc, 0x037cb4dc, 0x03e64b64, 0x0305b66a, 0x001264a2}}},
+ {X: Field{[10]uint32{0x007a796b, 0x02618cc3, 0x034592f1, 0x0336316c, 0x039a9bf0, 0x01418532, 0x03e68f04, 0x002782c1, 0x01892e54, 0x0015ea47}}, Y: Field{[10]uint32{0x0098e7fc, 0x0307a7e1, 0x0116bbd5, 0x001b1763, 0x021dbf77, 0x0092c464, 0x02612c31, 0x023ea2ea, 0x00ce5901, 0x0011e417}}},
+ {X: Field{[10]uint32{0x01a7e8da, 0x014ed929, 0x00ee1dd1, 0x02359d0a, 0x0291c046, 0x00997777, 0x019e7c58, 0x01970835, 0x000a3ba4, 0x003824b1}}, Y: Field{[10]uint32{0x03ffd39b, 0x009bdc56, 0x03042feb, 0x00444d3a, 0x03baa514, 0x00ec25fd, 0x00ab1d31, 0x010920b5, 0x02b4bdfc, 0x0020fd38}}},
+ {X: Field{[10]uint32{0x01e0ab38, 0x02980247, 0x02554f78, 0x013fd691, 0x037c1ee8, 0x00cd74f7, 0x001a9c2c, 0x013f1282, 0x006e7baa, 0x001ce8cc}}, Y: Field{[10]uint32{0x01a1f938, 0x03a24f7b, 0x022350bc, 0x0210ebc2, 0x023d93f6, 0x01548646, 0x03a70439, 0x030c9b8d, 0x00f92022, 0x0007da32}}},
+ {X: Field{[10]uint32{0x033a4434, 0x03aaef97, 0x0093a6a6, 0x03168e79, 0x03e99883, 0x02850076, 0x0152caf4, 0x012585cd, 0x01f86e90, 0x001f1e9e}}, Y: Field{[10]uint32{0x02e869bb, 0x005fe389, 0x0355415e, 0x0204b0a4, 0x00a26709, 0x002d65b3, 0x008ce8ac, 0x00e4c65b, 0x0252e488, 0x002173ac}}},
+ {X: Field{[10]uint32{0x00a37788, 0x028711e1, 0x03918623, 0x021bb6a4, 0x0319f030, 0x0144d95f, 0x03054fae, 0x03ddcacd, 0x0161ce4f, 0x001aa77d}}, Y: Field{[10]uint32{0x01b65280, 0x016d88ff, 0x02db42b2, 0x019c41ba, 0x01fe7198, 0x019847fb, 0x01ba398a, 0x02fd60cc, 0x034ad9b3, 0x002f3c09}}},
+ {X: Field{[10]uint32{0x0391c950, 0x02314eff, 0x019eef3f, 0x02d6fc8a, 0x0381934c, 0x034b1abf, 0x0145d2da, 0x02b7fc71, 0x024d47b3, 0x003f9eec}}, Y: Field{[10]uint32{0x02574e7f, 0x03971022, 0x00c5befd, 0x022c12bc, 0x03a88173, 0x0028a4b3, 0x00c27d6f, 0x0188f24c, 0x038609d2, 0x001ff997}}},
+ {X: Field{[10]uint32{0x00407d3d, 0x010a41cc, 0x014531da, 0x0192ba05, 0x0382ce2b, 0x01f414d1, 0x00ba60e1, 0x02ddf0a4, 0x02f27944, 0x0009b474}}, Y: Field{[10]uint32{0x00f0f495, 0x00156d2d, 0x0206f4d1, 0x034756a8, 0x0051b768, 0x00d604e1, 0x00b23725, 0x00002c34, 0x00243106, 0x003b0f14}}},
+ {X: Field{[10]uint32{0x0273e2b8, 0x03025b63, 0x008060e6, 0x01363c0d, 0x03fb85cf, 0x03a91378, 0x00563ff8, 0x0055cd2b, 0x01f938f9, 0x003c0394}}, Y: Field{[10]uint32{0x022c727b, 0x0259dc68, 0x00c703c5, 0x007484e0, 0x02585408, 0x03f62382, 0x02b6a136, 0x0292474e, 0x03ed3a39, 0x001edeff}}},
+ {X: Field{[10]uint32{0x03cfc4d8, 0x004789cd, 0x03b309e0, 0x034538f8, 0x008bd179, 0x01352f2a, 0x02be811a, 0x021d424e, 0x0072f42f, 0x001cf855}}, Y: Field{[10]uint32{0x005b9231, 0x0341827e, 0x01a340b5, 0x01ae12f3, 0x01c53c82, 0x02c02d2a, 0x006426c9, 0x005da044, 0x00ae5832, 0x000e4bbd}}},
+ {X: Field{[10]uint32{0x01568092, 0x02bd582a, 0x00333a7f, 0x0123b6be, 0x00d29d23, 0x01e77e39, 0x011d86e4, 0x00119321, 0x03a9aff3, 0x003b5199}}, Y: Field{[10]uint32{0x0149bb0c, 0x0371f98f, 0x002e43da, 0x03699e62, 0x006d9f4f, 0x03fd5df8, 0x01a9ab50, 0x0350b51a, 0x00756892, 0x001dcd9e}}},
+ {X: Field{[10]uint32{0x001dde26, 0x02c3bc95, 0x00d74af5, 0x00b1e40d, 0x0351066f, 0x0136ff83, 0x00346a26, 0x0072f773, 0x02ab1081, 0x0035bb05}}, Y: Field{[10]uint32{0x02d0527e, 0x015fa792, 0x0315ef48, 0x0079286d, 0x034763b0, 0x0302e26f, 0x011b7336, 0x02f88a6a, 0x00ab7ac7, 0x002607c7}}},
+ {X: Field{[10]uint32{0x034c593f, 0x0292d4ea, 0x008e68dc, 0x03caf47d, 0x033f762e, 0x03b96dc5, 0x001d92d2, 0x00c6b209, 0x007e6919, 0x000a13bd}}, Y: Field{[10]uint32{0x03cf5e82, 0x03150546, 0x013e1c7a, 0x00b8efeb, 0x03b53a4d, 0x03ff86da, 0x03e12887, 0x02f91c20, 0x02e1e6a7, 0x002adce7}}},
+ {X: Field{[10]uint32{0x00d505c3, 0x030fe1c2, 0x034f6c6c, 0x02f20d5d, 0x0344b490, 0x0124063b, 0x03ba53ac, 0x01f42bf0, 0x01e75a26, 0x00014c3e}}, Y: Field{[10]uint32{0x0285e3f1, 0x02cef0d3, 0x028d36e2, 0x01c12e22, 0x00bee9fa, 0x03dff7b5, 0x02d7fba8, 0x03a72f3d, 0x001e44e5, 0x0018c312}}},
+ {X: Field{[10]uint32{0x02a905f8, 0x0135673a, 0x022bc1ba, 0x0080f126, 0x02ef9c4d, 0x000974b6, 0x037a4b38, 0x00596d9c, 0x00fd81d0, 0x0019aa6d}}, Y: Field{[10]uint32{0x02525e8c, 0x01ec7353, 0x015f121b, 0x032895e5, 0x0112c86b, 0x02574c14, 0x017311c1, 0x03ab65f7, 0x004e6a4d, 0x0009dc31}}},
+ {X: Field{[10]uint32{0x03a289be, 0x02484d48, 0x0394f601, 0x02625b76, 0x0139bb78, 0x011d3789, 0x018d7397, 0x01ed926c, 0x027edca4, 0x0009604b}}, Y: Field{[10]uint32{0x0317e2da, 0x031884db, 0x00e5c795, 0x02e2d634, 0x00788d3a, 0x0232e191, 0x0276f7f1, 0x029db9ae, 0x0183072a, 0x0012ee8f}}},
+ {X: Field{[10]uint32{0x03b29608, 0x032e9df7, 0x00fd724a, 0x0228d5db, 0x02df1a0e, 0x03efd61f, 0x00f88b58, 0x0091205c, 0x0270af16, 0x000f206f}}, Y: Field{[10]uint32{0x02ee13d4, 0x0357fd0a, 0x0070027b, 0x03eb837a, 0x02ed9dc9, 0x0040ba6e, 0x00b52507, 0x03d201e8, 0x008eda59, 0x002ac5b9}}},
+ {X: Field{[10]uint32{0x00d6e39d, 0x0093ddb8, 0x035252fb, 0x02421715, 0x0039626e, 0x0096ab6a, 0x0282c8d1, 0x00a4cfb3, 0x01cda514, 0x002ad89b}}, Y: Field{[10]uint32{0x024abff6, 0x03b7005d, 0x033cfe7e, 0x00f436ad, 0x02bb7be7, 0x0363aff0, 0x031f2a34, 0x012c6f55, 0x034b34fa, 0x0022b75d}}},
+ {X: Field{[10]uint32{0x036bd85d, 0x033f82fc, 0x0133de1c, 0x015e638e, 0x03aaaaed, 0x028f8a1c, 0x02d65321, 0x0083fe32, 0x01061207, 0x0011fc94}}, Y: Field{[10]uint32{0x00585b60, 0x02c5be48, 0x03c60c38, 0x004fb342, 0x00cb44e0, 0x025960eb, 0x0374ea3f, 0x004b93b2, 0x032e7295, 0x0003db51}}},
+ {X: Field{[10]uint32{0x03c26b1b, 0x0122e7c8, 0x00842361, 0x0099d4b4, 0x00e16409, 0x01c6e2ec, 0x0138d590, 0x023c6cf1, 0x0299f739, 0x001bf4c0}}, Y: Field{[10]uint32{0x026799da, 0x03816eee, 0x03d33372, 0x03c09dfc, 0x017810be, 0x017227fd, 0x02e9c4dc, 0x0388d468, 0x0166a79c, 0x000ee358}}},
+ {X: Field{[10]uint32{0x0202e040, 0x026f5992, 0x031e3f44, 0x021f75e1, 0x0149db12, 0x01712827, 0x0051ab74, 0x00735963, 0x007c784e, 0x0003756c}}, Y: Field{[10]uint32{0x028d8659, 0x00c41e35, 0x03857a47, 0x01f36283, 0x036a0459, 0x003fbb66, 0x00ed2a7c, 0x0246e373, 0x018a62a4, 0x002c9b6b}}},
+ {X: Field{[10]uint32{0x027fcdad, 0x00ab7c85, 0x016b7dff, 0x0229c02d, 0x0215b61a, 0x01ae12f2, 0x0275e5f1, 0x01089ea8, 0x0036104b, 0x0000f3d6}}, Y: Field{[10]uint32{0x0200c9fb, 0x012792b3, 0x03b5ce9e, 0x0098b6d0, 0x01445af7, 0x02006372, 0x00123408, 0x01e7f7da, 0x025a2cb5, 0x000731bd}}},
+ {X: Field{[10]uint32{0x0119bb58, 0x0074a352, 0x03f413e0, 0x01348e15, 0x01d4cd80, 0x01d3010f, 0x02ea163d, 0x0108730e, 0x005508b9, 0x001a0ed5}}, Y: Field{[10]uint32{0x01a11f0a, 0x03f76f9e, 0x022da17c, 0x01a41540, 0x01691e23, 0x004473fb, 0x01d69438, 0x03015a2b, 0x01762cd5, 0x0006ef91}}},
+ {X: Field{[10]uint32{0x003b724c, 0x000c9e79, 0x027d2195, 0x03835cf3, 0x03e83ff0, 0x0080ab94, 0x002f7ec4, 0x0103717d, 0x01b7897a, 0x0035e198}}, Y: Field{[10]uint32{0x02d20b21, 0x00aca772, 0x00a02665, 0x03fb43b1, 0x00aeead2, 0x00757ca4, 0x03db82a6, 0x01e3b3f0, 0x01b0e3f4, 0x001194a6}}},
+ {X: Field{[10]uint32{0x01e15a21, 0x02954186, 0x0114a1af, 0x01f543b0, 0x0332e89e, 0x013bafc6, 0x00dbb87b, 0x039e5399, 0x0264fc15, 0x00049631}}, Y: Field{[10]uint32{0x001be0b1, 0x00148685, 0x0157194b, 0x025eef08, 0x03028c59, 0x00a83971, 0x011a7dec, 0x00e201c3, 0x029281a7, 0x000c9f12}}},
+ {X: Field{[10]uint32{0x02e8be00, 0x033589e1, 0x03bb1a6c, 0x03492fdf, 0x01387f4d, 0x039cc531, 0x0243cdfa, 0x038af71b, 0x03b51cff, 0x003cb413}}, Y: Field{[10]uint32{0x03061c9e, 0x0142a309, 0x02b37932, 0x036b09f3, 0x0178d3a7, 0x021a8ab8, 0x032ee47a, 0x00854a34, 0x038d435f, 0x00226bcf}}},
+ {X: Field{[10]uint32{0x030dfb08, 0x0152078f, 0x01f6bb33, 0x02864aa7, 0x03d21551, 0x03bc020e, 0x02cc402d, 0x00eb6394, 0x02c14ab2, 0x002d9eef}}, Y: Field{[10]uint32{0x00a64a23, 0x02cc3e04, 0x01fe6698, 0x004ffb80, 0x003757cc, 0x01961d55, 0x02845285, 0x02264c14, 0x03d19383, 0x0035b29a}}},
+ {X: Field{[10]uint32{0x0379235e, 0x0120c48a, 0x0089d90d, 0x02120ea1, 0x008a4665, 0x00b5986e, 0x013ce90f, 0x007f5a81, 0x01b9fa40, 0x0006ebbc}}, Y: Field{[10]uint32{0x031699d7, 0x01492528, 0x01ee8033, 0x031b02d9, 0x01bc1a69, 0x02e9562b, 0x02b3872c, 0x0205f648, 0x0214a2f7, 0x000a2866}}},
+ {X: Field{[10]uint32{0x0051aa8e, 0x0043fc6e, 0x03c79c3c, 0x01b394a1, 0x01f58de5, 0x0006eaa1, 0x036a7468, 0x00e922ca, 0x026b2362, 0x001b03c1}}, Y: Field{[10]uint32{0x01ff0868, 0x036ee4c5, 0x033574cc, 0x01e48167, 0x032347a4, 0x007218c9, 0x028bd94e, 0x02c3e394, 0x0256084c, 0x003b20dc}}},
+ {X: Field{[10]uint32{0x023619d7, 0x004f767d, 0x01c0d949, 0x035862de, 0x00a0c815, 0x02baf3ca, 0x026d6cb7, 0x02748afa, 0x030965bb, 0x003ef56e}}, Y: Field{[10]uint32{0x0300b924, 0x00b7f28f, 0x01c7e661, 0x018cde8a, 0x0060ccc0, 0x0083cfdb, 0x0298f77e, 0x01796ff8, 0x034d5e60, 0x000cc0d5}}},
+ {X: Field{[10]uint32{0x035b1739, 0x01a3e82c, 0x008fe7e5, 0x03ca36b6, 0x020f8bd5, 0x0041af46, 0x02c81ac8, 0x008cd2bd, 0x002ac4b2, 0x00089181}}, Y: Field{[10]uint32{0x02ff6e7c, 0x02af1c16, 0x00f797cd, 0x0208d169, 0x029e5382, 0x007e4b8d, 0x0229bd96, 0x0045bc33, 0x00eb9c10, 0x00076836}}},
+ {X: Field{[10]uint32{0x0182bc4a, 0x00b67cd0, 0x00c51563, 0x01b7f4a5, 0x039606cf, 0x010b3d42, 0x01b3caf5, 0x00b4de0d, 0x014f2fff, 0x0011c2a4}}, Y: Field{[10]uint32{0x001d426e, 0x01619800, 0x012dbb3a, 0x001a0738, 0x034398c6, 0x0271aa3a, 0x03e3cc9e, 0x01215a96, 0x01a8d2c7, 0x001ace01}}},
+ {X: Field{[10]uint32{0x021b4be0, 0x0009ec0c, 0x00c1ecc8, 0x004540c0, 0x0044bb7a, 0x00fe4274, 0x002153ba, 0x0364cd0a, 0x010bffb6, 0x001380fd}}, Y: Field{[10]uint32{0x008c504c, 0x03db96ac, 0x003e0095, 0x00940c7a, 0x009149b1, 0x0137a32f, 0x03e8f9cb, 0x01c7b3c7, 0x00ae963e, 0x00165b16}}},
+ {X: Field{[10]uint32{0x0057455e, 0x02649e3f, 0x003b70d9, 0x02d02860, 0x00188a26, 0x00e7778a, 0x01567e91, 0x02edd864, 0x03eab806, 0x00169b13}}, Y: Field{[10]uint32{0x02e6ce49, 0x0269f5e0, 0x014590d5, 0x0310bd54, 0x03353d73, 0x01c6397d, 0x00ea476a, 0x00d9af0a, 0x007c6505, 0x001ba074}}},
+ {X: Field{[10]uint32{0x0329bd5f, 0x01b70de6, 0x016c3a24, 0x027406f9, 0x0174f4e0, 0x03d8f753, 0x000bb1be, 0x014b884a, 0x01b29adf, 0x003b5cf2}}, Y: Field{[10]uint32{0x0113828b, 0x0321ecfe, 0x0216159d, 0x027cb7d8, 0x02e272ad, 0x0312df14, 0x011fa5b7, 0x0382b31f, 0x03b619eb, 0x0003a645}}},
+ {X: Field{[10]uint32{0x001c04bd, 0x024eda70, 0x03a99bdf, 0x01308e1b, 0x03710dd3, 0x000f284f, 0x03106085, 0x03e7b52b, 0x005b38cb, 0x001a3185}}, Y: Field{[10]uint32{0x03edc73a, 0x0235f28f, 0x01e9de92, 0x0348b830, 0x02e7cb74, 0x03d4d6a7, 0x016f884d, 0x027ab140, 0x005e607d, 0x003258d6}}},
+ {X: Field{[10]uint32{0x00454126, 0x00e69dec, 0x039b6a84, 0x00481661, 0x0092269a, 0x03d72473, 0x006094c3, 0x005ef077, 0x00639273, 0x0006d946}}, Y: Field{[10]uint32{0x00f5009f, 0x0077007a, 0x03cf9137, 0x00579c51, 0x03c42b19, 0x030c6fc4, 0x001fe920, 0x03426f63, 0x025f8ac3, 0x000c7184}}},
+ {X: Field{[10]uint32{0x0209c52c, 0x019b539a, 0x01f0d381, 0x00824283, 0x027229ff, 0x00edc177, 0x02b74f7a, 0x0378f515, 0x00ccdadb, 0x0011564f}}, Y: Field{[10]uint32{0x000bd737, 0x0293aa6f, 0x01866a43, 0x03748361, 0x01e14634, 0x03ba5933, 0x02b9a311, 0x000814f0, 0x017d89fd, 0x0004f599}}},
+ {X: Field{[10]uint32{0x03927da5, 0x034fad0d, 0x03960566, 0x0069339d, 0x01e4dd7c, 0x00a30842, 0x0132983d, 0x03e8bf35, 0x006ed6f2, 0x00050270}}, Y: Field{[10]uint32{0x020984e4, 0x0372b451, 0x0062390e, 0x00114def, 0x02fbeda3, 0x01a52dc7, 0x0369836e, 0x03f6eb8e, 0x018d4206, 0x0037017e}}},
+ {X: Field{[10]uint32{0x005f4580, 0x03c0373a, 0x037074e2, 0x03213adc, 0x025d6e5c, 0x0109bfaf, 0x03239215, 0x02c15b50, 0x006bc307, 0x00367823}}, Y: Field{[10]uint32{0x012c632d, 0x01692d8a, 0x034f915d, 0x03908060, 0x01172f4d, 0x028c9817, 0x02b52add, 0x01e90e8e, 0x0247c6b4, 0x00288f05}}},
+ {X: Field{[10]uint32{0x0162fb32, 0x00576eaf, 0x028ee1aa, 0x022eef57, 0x025ac0f1, 0x01357e89, 0x033a9166, 0x02dadcd4, 0x01f3d3c2, 0x001f7cc6}}, Y: Field{[10]uint32{0x03c9f8c0, 0x036d634a, 0x030b79c3, 0x026ea46b, 0x00a9bd16, 0x00778205, 0x02d8d963, 0x02ee6075, 0x02afe023, 0x0024483d}}},
+ {X: Field{[10]uint32{0x0186d7a5, 0x01cd115a, 0x037110a3, 0x01126eb4, 0x0011d742, 0x008595e6, 0x0146232e, 0x03f47e4c, 0x018738b9, 0x0006a539}}, Y: Field{[10]uint32{0x03e4352e, 0x00810a2a, 0x0365a748, 0x0126b619, 0x020fc325, 0x025fcb6c, 0x034604b1, 0x039eb83e, 0x03b317ee, 0x000cca89}}},
+ {X: Field{[10]uint32{0x03619a47, 0x01e07e46, 0x03691fa0, 0x0106257f, 0x014aefff, 0x03033e1c, 0x002ef8df, 0x019b6caa, 0x034d6db2, 0x0037e8b2}}, Y: Field{[10]uint32{0x01ad8b19, 0x033f9312, 0x0056e45a, 0x03ddba9c, 0x01d2a1a0, 0x032e98be, 0x0320fef4, 0x029b0633, 0x03ab3a28, 0x00317976}}},
+ {X: Field{[10]uint32{0x02876730, 0x03931e4e, 0x0017bf35, 0x03af0429, 0x03acf4e2, 0x029b814e, 0x002c1352, 0x03ddad7a, 0x0007be6b, 0x00308804}}, Y: Field{[10]uint32{0x03efa581, 0x0345377e, 0x02be70c8, 0x03a24346, 0x039a735d, 0x030e1cd0, 0x0397c159, 0x0135d0eb, 0x02ecb9ae, 0x00249022}}},
+ {X: Field{[10]uint32{0x03d7edc3, 0x020a1686, 0x0015e33e, 0x0253be8e, 0x022f25c7, 0x019cc1d0, 0x00d4d852, 0x01fc3e74, 0x02d2ab08, 0x0035158c}}, Y: Field{[10]uint32{0x015ff44f, 0x00f5bbe3, 0x02569554, 0x016369ee, 0x01814e72, 0x032792c7, 0x039e99f9, 0x013ea091, 0x0297c499, 0x002df38d}}},
+ {X: Field{[10]uint32{0x035df93f, 0x000edc73, 0x00dedc90, 0x02e3dadf, 0x02df6c25, 0x008e85c6, 0x01f34ca9, 0x024ad221, 0x022bcdc2, 0x00233bcd}}, Y: Field{[10]uint32{0x009aaf5e, 0x02061b74, 0x02bdf260, 0x00ed76ad, 0x02d702e1, 0x03507666, 0x024f1c19, 0x01fe8afe, 0x0334ed8b, 0x002ce443}}},
+ {X: Field{[10]uint32{0x00bf9838, 0x01d60ecf, 0x01bfc7f1, 0x03956565, 0x013a415a, 0x006121e3, 0x01604318, 0x00a0c45f, 0x03e1874c, 0x00091fde}}, Y: Field{[10]uint32{0x01f30eb8, 0x029f323c, 0x004642f8, 0x03a37cce, 0x01efd513, 0x017d9424, 0x01521da6, 0x02d3f03e, 0x01e6a779, 0x0024388d}}},
+ {X: Field{[10]uint32{0x001cf568, 0x0122b626, 0x02c56b01, 0x01238daa, 0x02f26093, 0x032a8ae0, 0x01dd0b0a, 0x00eb7d04, 0x02f1c870, 0x002e3033}}, Y: Field{[10]uint32{0x01275f14, 0x011cab80, 0x03916a33, 0x02915303, 0x0345e7aa, 0x03526a5e, 0x00e74a81, 0x026a852e, 0x00114701, 0x00281065}}},
+ {X: Field{[10]uint32{0x0208cf09, 0x006f61a0, 0x012c0ab5, 0x0036ab5e, 0x030a35ab, 0x03746f45, 0x026b43a4, 0x031e44aa, 0x036e06e1, 0x0023955d}}, Y: Field{[10]uint32{0x00822d56, 0x029eb61c, 0x01c012c8, 0x01fdb6aa, 0x02cec730, 0x03518b9a, 0x02d12bc6, 0x02aefc30, 0x00c3a025, 0x0037f933}}},
+ {X: Field{[10]uint32{0x003ad1ad, 0x01611a83, 0x0267c5f0, 0x01c3122d, 0x01db813b, 0x038e4090, 0x0122790d, 0x02609138, 0x02d3fc9d, 0x0003c73d}}, Y: Field{[10]uint32{0x03984799, 0x025a6bf0, 0x026f6c8b, 0x024ec5ce, 0x01750069, 0x02b9ea13, 0x02f1ec77, 0x0346c8d7, 0x02ab3952, 0x00124971}}},
+ {X: Field{[10]uint32{0x01b9ea31, 0x0199c2bb, 0x0000a9e5, 0x011f2b2f, 0x03811641, 0x036dd8b0, 0x00495ab9, 0x03b924ad, 0x0388dce5, 0x002d276f}}, Y: Field{[10]uint32{0x03a9ef2a, 0x01eb3ebf, 0x023feb8b, 0x030b7a24, 0x028971f7, 0x034a2291, 0x00d703ef, 0x025f1dd6, 0x0317ab57, 0x00303e4b}}},
+ {X: Field{[10]uint32{0x018ca362, 0x0327dd43, 0x02cab9a8, 0x010e7992, 0x00399e26, 0x0097df73, 0x0173c50a, 0x015fb455, 0x02ad257b, 0x0035abf8}}, Y: Field{[10]uint32{0x0135749d, 0x02b1bce3, 0x01b42b47, 0x028d5871, 0x0138d355, 0x018a0ac4, 0x01402491, 0x02d5ac5c, 0x02b86919, 0x00177c8d}}},
+ {X: Field{[10]uint32{0x02e8e89f, 0x00480106, 0x0244b53e, 0x0279a112, 0x0345b48a, 0x033b92d2, 0x032a439f, 0x0197e965, 0x00c5f233, 0x002ec0a1}}, Y: Field{[10]uint32{0x02265300, 0x01d8266e, 0x034936ae, 0x0329bc53, 0x0153221d, 0x03b554ca, 0x0018fb2a, 0x0164c9e4, 0x000de09e, 0x001a12f3}}},
+ {X: Field{[10]uint32{0x024467ec, 0x00b611f9, 0x037e46e8, 0x009ead69, 0x03c47796, 0x0228105d, 0x00be6219, 0x025a5c6e, 0x03148a40, 0x0015fa55}}, Y: Field{[10]uint32{0x01443f13, 0x01467cb3, 0x00c126bb, 0x03497a15, 0x01fd8e7c, 0x004a94dd, 0x006d3a8f, 0x0096001f, 0x01b114ce, 0x001c52f4}}},
+ {X: Field{[10]uint32{0x02713094, 0x0149b647, 0x03757d17, 0x01e3ad8d, 0x01a1e144, 0x03a01148, 0x03ef2a3d, 0x00ed1d48, 0x0360b33c, 0x002c320b}}, Y: Field{[10]uint32{0x02cea63c, 0x02be6528, 0x032eeac1, 0x03596a0a, 0x0123d163, 0x024fdff6, 0x022f70ac, 0x03d4b994, 0x01b9d763, 0x0033f234}}},
+ {X: Field{[10]uint32{0x013e1ee3, 0x01292f55, 0x005a35c2, 0x0093fdfe, 0x00667d83, 0x01b663b4, 0x032c185c, 0x0216f564, 0x01704047, 0x000ae9d8}}, Y: Field{[10]uint32{0x02ea35b9, 0x035580fb, 0x03307205, 0x0067cf8b, 0x01e56aef, 0x01545934, 0x03167d6b, 0x00abd581, 0x03907426, 0x00006041}}},
+ {X: Field{[10]uint32{0x02d3e88c, 0x0248d71b, 0x00895b5c, 0x02169c8a, 0x0103eb1c, 0x01f83296, 0x01d15c82, 0x02e483ec, 0x0213d508, 0x0016f553}}, Y: Field{[10]uint32{0x020cf0c9, 0x024cebd9, 0x016fc2b1, 0x02b3bcef, 0x02878017, 0x02b1f608, 0x030ab1e4, 0x03864fa9, 0x01fd5607, 0x0035974d}}},
+ {X: Field{[10]uint32{0x02a8d09a, 0x037e5dcf, 0x026947cc, 0x017d5993, 0x00a590d6, 0x01b3c84b, 0x03f1664e, 0x03626aca, 0x02d2753b, 0x002c2ef0}}, Y: Field{[10]uint32{0x03993c23, 0x0026f723, 0x0147e47f, 0x01047cd3, 0x02072257, 0x03319c14, 0x00190654, 0x022eae85, 0x02c1a107, 0x002415ed}}},
+ {X: Field{[10]uint32{0x013133a8, 0x03a771b3, 0x00459224, 0x00c083a3, 0x01b38b46, 0x0151484a, 0x000fe419, 0x00e2b377, 0x02033cca, 0x00305c04}}, Y: Field{[10]uint32{0x01557e9a, 0x02d8dabd, 0x03b14fb6, 0x02d7afd3, 0x02624f78, 0x01b02185, 0x00071888, 0x01bd9d1b, 0x007b1cfb, 0x00312576}}},
+ {X: Field{[10]uint32{0x03a21bda, 0x00c28917, 0x032ea749, 0x037764d4, 0x007c9fa4, 0x03ef0a31, 0x02879617, 0x0127fcc8, 0x020e5f1e, 0x000782f4}}, Y: Field{[10]uint32{0x03dd6177, 0x02385810, 0x01cd5703, 0x02719af8, 0x01b2a586, 0x011cbe84, 0x01a681b2, 0x03c57797, 0x00000e98, 0x000b501d}}},
+ {X: Field{[10]uint32{0x017ec15f, 0x006c560c, 0x0388b03a, 0x028ef017, 0x00f39def, 0x0214ce9c, 0x012a9740, 0x019863fc, 0x023fec4c, 0x00173f08}}, Y: Field{[10]uint32{0x03f21411, 0x00cd512b, 0x00cf93da, 0x03ded9c6, 0x01eb4468, 0x031ce2c2, 0x006ec226, 0x01c6798e, 0x03d489e3, 0x001f64a2}}},
+ {X: Field{[10]uint32{0x01efa67d, 0x03330b20, 0x00e8801c, 0x033942b0, 0x005da345, 0x02b51ea1, 0x03e514eb, 0x019a3815, 0x020abebd, 0x003d4195}}, Y: Field{[10]uint32{0x020fc7e9, 0x029f4eb2, 0x00d639d9, 0x036056f7, 0x0263111f, 0x01fd9289, 0x03580ad1, 0x02a66af0, 0x03f7c9c2, 0x0038bfc2}}},
+ {X: Field{[10]uint32{0x02c54f45, 0x039ef609, 0x02ef8306, 0x02b96fe5, 0x001d00dc, 0x0127405a, 0x0246e4c4, 0x01d21516, 0x0298ec88, 0x0021123f}}, Y: Field{[10]uint32{0x026f0407, 0x03bb6afa, 0x0256a66a, 0x0117da75, 0x0285b200, 0x00d204dd, 0x01a82713, 0x000c88b7, 0x02291750, 0x00343c1c}}},
+ {X: Field{[10]uint32{0x03cffc55, 0x01156ea5, 0x004f56bc, 0x00a2a619, 0x002480cf, 0x00a50bcd, 0x015ca713, 0x01f0b8db, 0x017fdb03, 0x003269a1}}, Y: Field{[10]uint32{0x03aa149f, 0x0238d9e3, 0x011c6b79, 0x01d2da33, 0x01f742d9, 0x03b5be5f, 0x00b8326c, 0x023985b0, 0x00b98f67, 0x0029a782}}},
+ {X: Field{[10]uint32{0x02c4011d, 0x0319936e, 0x019d503d, 0x01b6391a, 0x03b8fc28, 0x0226ac67, 0x02f7db2d, 0x03acef20, 0x03f5c611, 0x0002d744}}, Y: Field{[10]uint32{0x024b7adc, 0x02022c4c, 0x02bb6259, 0x036271c0, 0x02ef2692, 0x00921f42, 0x012493ff, 0x003f7d6e, 0x02507cdc, 0x0009fac5}}},
+ {X: Field{[10]uint32{0x0235ce44, 0x02ecd3b6, 0x02fad75a, 0x01c75fc6, 0x02902184, 0x0230a71b, 0x001b8871, 0x0352b300, 0x01f32e0e, 0x002fe7b1}}, Y: Field{[10]uint32{0x027ef2d1, 0x00dea011, 0x0146bdd8, 0x01a1ce19, 0x00a1734f, 0x01a311e9, 0x01224ed3, 0x010196de, 0x0088892b, 0x0004e119}}},
+ {X: Field{[10]uint32{0x02526e19, 0x024ab04e, 0x00f2ed6d, 0x021eb5aa, 0x00893c5a, 0x0329bd6e, 0x011f6bd1, 0x00704ebb, 0x02be4d3b, 0x000b0e04}}, Y: Field{[10]uint32{0x0033aece, 0x02533bcd, 0x03af324a, 0x02b4519a, 0x031b11ed, 0x02cd02f2, 0x03cf877d, 0x014782de, 0x02f145d5, 0x000d9ae0}}},
+ {X: Field{[10]uint32{0x0233f572, 0x031721b2, 0x013a6f21, 0x014e362f, 0x019fd172, 0x002289b9, 0x00d0a13c, 0x03db21ff, 0x0328dc8e, 0x001def7b}}, Y: Field{[10]uint32{0x023c3a1b, 0x019fda7a, 0x017ef081, 0x022a0fe5, 0x016977ba, 0x02960294, 0x02c1feca, 0x03526c03, 0x00c7bf3b, 0x003699ac}}},
+ {X: Field{[10]uint32{0x0371afe5, 0x03f445a2, 0x02b154ef, 0x0301953b, 0x028693ba, 0x03cd3181, 0x006503e3, 0x021def36, 0x019d3185, 0x002f129e}}, Y: Field{[10]uint32{0x0255569e, 0x03ddd5dc, 0x03e664f7, 0x01af4cc6, 0x03f59abf, 0x00985496, 0x0159c99e, 0x00643a9c, 0x03f899a8, 0x0014ff35}}},
+ {X: Field{[10]uint32{0x02fcd040, 0x0170620b, 0x039dce27, 0x01bcb84f, 0x006fccdb, 0x000dd41e, 0x010e4c7d, 0x03381586, 0x0084733d, 0x000c07f6}}, Y: Field{[10]uint32{0x01e25cb6, 0x00b22294, 0x00b735de, 0x00303897, 0x00312c91, 0x012f981f, 0x0035cef6, 0x027d47f6, 0x01d5185b, 0x001e793e}}},
+ {X: Field{[10]uint32{0x014adb70, 0x018062a0, 0x032f387b, 0x01df9436, 0x02133f83, 0x00dc6710, 0x00d0bda1, 0x01f95085, 0x029bbe5e, 0x000906d2}}, Y: Field{[10]uint32{0x0010bdb0, 0x019211ed, 0x039593c1, 0x0000922c, 0x03a8ce21, 0x03f30032, 0x036bca27, 0x0348b87d, 0x0008fa4f, 0x00319bb7}}},
+ {X: Field{[10]uint32{0x00c79585, 0x028580b6, 0x0098156e, 0x005bcca5, 0x01dcd28c, 0x018cf547, 0x01c1351d, 0x004a24f1, 0x02396819, 0x002f9bc5}}, Y: Field{[10]uint32{0x03afff21, 0x029c797e, 0x0335a5f7, 0x0282950c, 0x021ade5d, 0x03d7f979, 0x038a9668, 0x014e7a9f, 0x027e1a65, 0x001bd9d2}}},
+ {X: Field{[10]uint32{0x01d3a283, 0x01f2cc4f, 0x03285e23, 0x02eadff2, 0x01b3f7bf, 0x028b452e, 0x0209ef60, 0x0278a9f8, 0x008f79c6, 0x00322d40}}, Y: Field{[10]uint32{0x03b54bb9, 0x00fb029a, 0x008f52d8, 0x032a98c0, 0x023cea15, 0x01bbf2cd, 0x0036dd74, 0x03df802f, 0x03486c3c, 0x000771e4}}},
+ {X: Field{[10]uint32{0x006c0998, 0x029ffd30, 0x027d4eed, 0x02b1df3c, 0x02b038ed, 0x01e5ab47, 0x0197ec3a, 0x03b5893a, 0x039eaad5, 0x0014052b}}, Y: Field{[10]uint32{0x0189dd7d, 0x0221808c, 0x031511a4, 0x014cd25d, 0x01911439, 0x021ed2db, 0x004a77a9, 0x028714b5, 0x006fb8fa, 0x0038075e}}},
+ {X: Field{[10]uint32{0x03bb989a, 0x02b76329, 0x02d2b45d, 0x03023620, 0x01b0845e, 0x03ca3f37, 0x02d4f284, 0x0190fb68, 0x01e62c40, 0x001bffbf}}, Y: Field{[10]uint32{0x0011cc0e, 0x01bf9721, 0x004717fb, 0x0201a9bd, 0x01ff0a54, 0x028afb2f, 0x029e4bd9, 0x00ea7888, 0x003c782d, 0x00238ac6}}},
+ {X: Field{[10]uint32{0x007d463f, 0x03fc7c52, 0x022904aa, 0x003f07a4, 0x020ad014, 0x02d3030d, 0x02a7e5d0, 0x004dd34c, 0x03bf190e, 0x002b1d8a}}, Y: Field{[10]uint32{0x033adefe, 0x02944f97, 0x02a7e435, 0x0143b606, 0x03bc34d8, 0x036dac4b, 0x001bfec5, 0x01ad028e, 0x03183101, 0x003335e7}}},
+ {X: Field{[10]uint32{0x0011cb24, 0x023ab83a, 0x03342796, 0x0337a0a3, 0x03d791a5, 0x01cdec76, 0x03244e7b, 0x0171d424, 0x02d63ec0, 0x0025cd25}}, Y: Field{[10]uint32{0x01647533, 0x01cf99c9, 0x03b7abf5, 0x0194bd5e, 0x03d7420b, 0x030fcd3c, 0x037ff525, 0x00cd47d8, 0x03c0044e, 0x0012cb26}}},
+ {X: Field{[10]uint32{0x00a15d32, 0x0266cd21, 0x034291a7, 0x0001be80, 0x02c39ce3, 0x03a8e78d, 0x03577539, 0x02f0c1d0, 0x01665f77, 0x002a7624}}, Y: Field{[10]uint32{0x0380e213, 0x0204ee12, 0x0296b8d0, 0x013f33ea, 0x0056dd88, 0x0018d694, 0x039ce982, 0x02e3f3d3, 0x0217fded, 0x0034270e}}},
+ {X: Field{[10]uint32{0x00c5710b, 0x02a68828, 0x02f769ec, 0x01bd835b, 0x02cbab63, 0x009086eb, 0x00a7419f, 0x0151362e, 0x03fdaa2b, 0x000422a3}}, Y: Field{[10]uint32{0x00e0249d, 0x01599735, 0x028d7b12, 0x01ce77cc, 0x01cebbb2, 0x017c38e2, 0x025776a7, 0x02b56289, 0x01fcab04, 0x0002b4fa}}},
+ {X: Field{[10]uint32{0x027c5fb5, 0x0316fb5c, 0x00a36de8, 0x02365448, 0x03954387, 0x01791257, 0x000ac6df, 0x00f15eff, 0x017bc884, 0x003be5a7}}, Y: Field{[10]uint32{0x021f16fb, 0x033e170d, 0x0302afc1, 0x014dee02, 0x01d1d4d6, 0x037aab69, 0x005d81a1, 0x0200dac5, 0x03b22673, 0x0016ae06}}},
+ {X: Field{[10]uint32{0x03c39b62, 0x028c2590, 0x01162b0b, 0x03c9043d, 0x01d74200, 0x03dc2c91, 0x02dafb28, 0x01514fc4, 0x03c24d50, 0x002ae096}}, Y: Field{[10]uint32{0x01281a1d, 0x032c196c, 0x0194c6f9, 0x02e35155, 0x01708098, 0x01dea072, 0x03e31da2, 0x01105769, 0x01f22377, 0x001e279f}}},
+ {X: Field{[10]uint32{0x00bf2622, 0x015aec12, 0x03ac0598, 0x00e664ce, 0x02eeed4e, 0x02125a5c, 0x039198cf, 0x00f00bb1, 0x00e52c17, 0x00126129}}, Y: Field{[10]uint32{0x00c5df3f, 0x033e25eb, 0x034348e7, 0x0090e647, 0x02f199e9, 0x0330f33d, 0x0087a9c2, 0x00b98682, 0x027b79be, 0x001165ad}}},
+ {X: Field{[10]uint32{0x025f7272, 0x01284c98, 0x02fbccfa, 0x01a88fcf, 0x004bf0f7, 0x02a9f2c9, 0x0360d0d8, 0x02f84fd3, 0x03f493c1, 0x000a171b}}, Y: Field{[10]uint32{0x03ed49d3, 0x01ecf674, 0x03c1212d, 0x0397a289, 0x03c4caac, 0x0276e6c8, 0x00fd9984, 0x03bca357, 0x01a5cf9c, 0x000e77fa}}},
+ {X: Field{[10]uint32{0x003db340, 0x02dc23e1, 0x02c7b348, 0x001b09e2, 0x019bc6e5, 0x00c402aa, 0x02667171, 0x0065c7a4, 0x01d17e72, 0x0007852c}}, Y: Field{[10]uint32{0x00e41cee, 0x0017c113, 0x02a1164d, 0x03f17de7, 0x00394d7d, 0x0135050f, 0x03fe464c, 0x03d89cd1, 0x039dd705, 0x00018e88}}},
+ {X: Field{[10]uint32{0x0217c8aa, 0x0102ed6f, 0x018fc101, 0x030133cc, 0x033b1394, 0x03352161, 0x01dcf309, 0x03347bd8, 0x03b9ed71, 0x0002e3dc}}, Y: Field{[10]uint32{0x036f665c, 0x0041f99d, 0x02ec5827, 0x01a96b10, 0x01074567, 0x006f997b, 0x034823aa, 0x03b214bf, 0x02e0bd66, 0x0022bd76}}},
+ {X: Field{[10]uint32{0x0314540a, 0x012fdba1, 0x01d15e62, 0x034c7352, 0x0049c995, 0x03456bf4, 0x02367760, 0x03f3db2d, 0x0297e878, 0x001f831c}}, Y: Field{[10]uint32{0x02ddd658, 0x02bc3f6b, 0x000e58aa, 0x00c0280a, 0x00ffd595, 0x02c9c680, 0x00b7568b, 0x00810fd2, 0x01f74c51, 0x0037d5e5}}},
+ {X: Field{[10]uint32{0x03798545, 0x03f409da, 0x02cbade5, 0x0046dd52, 0x00109990, 0x03377f92, 0x0351133f, 0x03b67e8a, 0x011d465b, 0x00027c3b}}, Y: Field{[10]uint32{0x00a8459f, 0x02666405, 0x016e9217, 0x00e398c9, 0x01d85b6c, 0x00aaa676, 0x03adde01, 0x00380192, 0x009c73bb, 0x001c017b}}},
+ {X: Field{[10]uint32{0x008e12bf, 0x02946aa7, 0x01b125a0, 0x0002c78d, 0x03cc8e40, 0x00388f3b, 0x020608d8, 0x016bc005, 0x035e0b5c, 0x000b555b}}, Y: Field{[10]uint32{0x01f12000, 0x0108b285, 0x038a94e4, 0x0223e02a, 0x01d24d44, 0x03f61bd0, 0x007f6fc1, 0x00eebc77, 0x014425bc, 0x0001d800}}},
+ {X: Field{[10]uint32{0x035ed3f2, 0x0206f320, 0x0128ee8d, 0x03950526, 0x012cc14c, 0x0271f730, 0x0079524d, 0x0380b02d, 0x027d7637, 0x000985d9}}, Y: Field{[10]uint32{0x0380884b, 0x02b90651, 0x019babc6, 0x005806ca, 0x017a2c4e, 0x01e3298e, 0x01496be4, 0x0027ae3d, 0x03ba2cd8, 0x0014855c}}},
+ {X: Field{[10]uint32{0x019aac10, 0x02c187c3, 0x02492ba1, 0x033fb416, 0x034cae40, 0x020428fc, 0x036e10f8, 0x026991ed, 0x016c5b51, 0x001891e4}}, Y: Field{[10]uint32{0x02e7f098, 0x00cc09bb, 0x034caf2d, 0x01a70fa7, 0x00602b09, 0x00036875, 0x02a193c5, 0x02a5e241, 0x0170535b, 0x003ff409}}},
+ {X: Field{[10]uint32{0x023c52af, 0x017533e6, 0x03db4fa5, 0x012a544d, 0x01ea14c6, 0x03b3b3ee, 0x0017e780, 0x002a2180, 0x03e08ed5, 0x003102c9}}, Y: Field{[10]uint32{0x007b6493, 0x03c6b378, 0x0001ba86, 0x02e0c3aa, 0x00c4149f, 0x00416a95, 0x01d1e977, 0x016e13f6, 0x038c7d02, 0x00090572}}},
+ {X: Field{[10]uint32{0x03e0de12, 0x0195e340, 0x029748b6, 0x02afc199, 0x03ad7103, 0x03aea713, 0x01bf17bc, 0x0295bf34, 0x008a54a3, 0x002e96bb}}, Y: Field{[10]uint32{0x0157ffbd, 0x03562c1b, 0x0370dc49, 0x0180e7e6, 0x00a705de, 0x03a96e98, 0x03474d28, 0x0312fcf1, 0x0311abec, 0x000d236a}}},
+ {X: Field{[10]uint32{0x00076268, 0x00089225, 0x03f675c0, 0x00139571, 0x02c1e9e5, 0x03ecfcc6, 0x031262cf, 0x00a5384c, 0x0258f8dd, 0x002e8539}}, Y: Field{[10]uint32{0x001aa1dd, 0x01b792b2, 0x023659b9, 0x038e8c9b, 0x00c221b0, 0x01b76684, 0x00cb36c6, 0x03957b1c, 0x0105fc43, 0x0033b5d2}}},
+ {X: Field{[10]uint32{0x03f4aff4, 0x037e85a9, 0x022d4cfb, 0x00382870, 0x00f9c1d0, 0x004e6acc, 0x02718cb4, 0x031fe8a7, 0x03698880, 0x000cdd6b}}, Y: Field{[10]uint32{0x02295a27, 0x0399fbb3, 0x01726ddd, 0x01e73957, 0x028d27db, 0x0389b1a3, 0x02fa0b85, 0x0396c6d9, 0x0091a83b, 0x0033ea2d}}},
+ {X: Field{[10]uint32{0x019f01fe, 0x0252a92f, 0x002d5efc, 0x038bdf54, 0x035b9a8e, 0x0312c9db, 0x03a109a2, 0x03f7eba7, 0x014b306c, 0x001a3498}}, Y: Field{[10]uint32{0x0348550e, 0x00e1b217, 0x008f3661, 0x01221023, 0x01ef9e1d, 0x03503ed6, 0x01f54e84, 0x0197b5f7, 0x02bcf043, 0x0005230d}}},
+ {X: Field{[10]uint32{0x00533edd, 0x011edfc7, 0x0277b7fc, 0x01ac1b0d, 0x03900ece, 0x0358ce1e, 0x02990d71, 0x000ec2b4, 0x02a55977, 0x0024feb3}}, Y: Field{[10]uint32{0x002ad5f4, 0x011e5f25, 0x03179745, 0x011363b9, 0x01c20bbe, 0x02687db0, 0x00199853, 0x0053a2d7, 0x03fa8fa1, 0x000f2006}}},
+ {X: Field{[10]uint32{0x01054277, 0x01b09d5d, 0x005d6eef, 0x03c5b288, 0x025a0a61, 0x01b242ca, 0x0375ae17, 0x00c46255, 0x00a672f7, 0x003c4775}}, Y: Field{[10]uint32{0x01556ef6, 0x026d5a2e, 0x020e83f5, 0x01154782, 0x006c307d, 0x03063434, 0x022083ca, 0x02b03dfa, 0x016d2ef2, 0x002f01a8}}},
+ {X: Field{[10]uint32{0x024204f7, 0x0328e721, 0x00010f10, 0x02165c97, 0x000b71fe, 0x020f2001, 0x029a94ef, 0x029153f4, 0x005d710b, 0x0010baf3}}, Y: Field{[10]uint32{0x025f223b, 0x001934b5, 0x00e40279, 0x01f371a6, 0x00e633c1, 0x01c7419f, 0x03d5cdb2, 0x0007b531, 0x00eb6431, 0x003e2aa1}}},
+ {X: Field{[10]uint32{0x01c80e52, 0x0278f861, 0x03b2e67e, 0x03684fc7, 0x00549e96, 0x02274668, 0x03b6fbce, 0x016a5021, 0x03dcd96d, 0x0035021d}}, Y: Field{[10]uint32{0x02789444, 0x0388d317, 0x0087c837, 0x001bd764, 0x02c0be83, 0x03f00510, 0x017b59af, 0x003f2e39, 0x01b385f2, 0x002fa6ee}}},
+ {X: Field{[10]uint32{0x0162931f, 0x01d0d609, 0x03e398fa, 0x02eeae35, 0x03aa40c1, 0x00e49029, 0x00ec9342, 0x0042ae22, 0x0098cd21, 0x003062cb}}, Y: Field{[10]uint32{0x015773f8, 0x00b3a5c5, 0x001cb24c, 0x02724df0, 0x03b83f18, 0x0019b102, 0x01f18cd1, 0x035d31d7, 0x00349147, 0x00365884}}},
+ {X: Field{[10]uint32{0x005c0bd1, 0x03e238f8, 0x039e4d14, 0x01631923, 0x036fe946, 0x02ed37af, 0x034fa0c4, 0x03e10473, 0x03221a44, 0x0005535a}}, Y: Field{[10]uint32{0x0075559a, 0x014a9656, 0x01976de5, 0x03cfaf15, 0x037c1074, 0x0365398f, 0x00bbb6ad, 0x00ccbcca, 0x0307c705, 0x0037c2f0}}},
+ {X: Field{[10]uint32{0x01a26f15, 0x009a8d78, 0x006e0a93, 0x01670eae, 0x0024485d, 0x02610b6f, 0x017d2285, 0x024ec68e, 0x01e5629f, 0x0028e096}}, Y: Field{[10]uint32{0x01f783fb, 0x02ee7aa4, 0x01892367, 0x013fd0d7, 0x00171327, 0x0229e6e3, 0x0074932e, 0x00a98ece, 0x00cc2fe5, 0x001a6d6b}}},
+ {X: Field{[10]uint32{0x023fcd19, 0x02ca8f1d, 0x02013d4d, 0x00a5be08, 0x00148270, 0x03bb7b46, 0x025a7d52, 0x00d24e64, 0x02eee91e, 0x00275ca7}}, Y: Field{[10]uint32{0x03e89a1f, 0x02a8bc38, 0x00339657, 0x027938cc, 0x009cadc0, 0x0361d3ec, 0x02f731f2, 0x02188459, 0x015403cc, 0x001b60c8}}},
+ {X: Field{[10]uint32{0x03751e3a, 0x01c06cd9, 0x00b39b25, 0x024e283e, 0x0346398c, 0x0112a7e6, 0x02cede79, 0x01f1f95d, 0x00088630, 0x00099d3c}}, Y: Field{[10]uint32{0x013f83cf, 0x0199ae06, 0x02fa212a, 0x031ea748, 0x02e31bde, 0x02c3c7d3, 0x03638d07, 0x0347be0d, 0x03426ac9, 0x0000fa7a}}},
+ {X: Field{[10]uint32{0x02237f41, 0x03cd1453, 0x002c2743, 0x00b1bdc3, 0x03b7c164, 0x02d89b03, 0x028e9fdb, 0x02e15b74, 0x015eadb1, 0x002ca81b}}, Y: Field{[10]uint32{0x03f664d3, 0x033ab58e, 0x01f5ff3b, 0x02613401, 0x03de579a, 0x0206b582, 0x03baed44, 0x02c9a089, 0x038b8673, 0x0017532b}}},
+ {X: Field{[10]uint32{0x022d713d, 0x03c8f848, 0x03a60f0b, 0x003c5056, 0x012b278c, 0x00103c17, 0x03e4ec92, 0x03af73b0, 0x0164d61d, 0x00082c9f}}, Y: Field{[10]uint32{0x00e516a3, 0x0111ede9, 0x03ffb41e, 0x0026eceb, 0x02c8c5c8, 0x00159d43, 0x01264886, 0x00b7cd73, 0x01e7ff5c, 0x00120761}}},
+ {X: Field{[10]uint32{0x00e3f2e5, 0x0335714f, 0x0051bfc7, 0x003d169f, 0x03527093, 0x0031547d, 0x00d7c152, 0x02a897d8, 0x010c450e, 0x0013d298}}, Y: Field{[10]uint32{0x0247f328, 0x00bf640e, 0x0239c2b3, 0x013bf5f7, 0x01e82423, 0x03e75a3b, 0x02d8d8e0, 0x0188a19c, 0x0211db41, 0x0037c7a3}}},
+ {X: Field{[10]uint32{0x00aceaa9, 0x03ee8daa, 0x01e9e776, 0x02245196, 0x03bc06c9, 0x00d66f01, 0x0170b4be, 0x010d6095, 0x02d80050, 0x0026cdd7}}, Y: Field{[10]uint32{0x01e90927, 0x01ab888d, 0x01f26d1e, 0x01021b73, 0x03226834, 0x01670d20, 0x01de5b1f, 0x0001a645, 0x0193385c, 0x000f4159}}},
+ {X: Field{[10]uint32{0x02c9d1be, 0x0300648b, 0x03ba4060, 0x021cdff3, 0x03c13aff, 0x00e42dff, 0x03865e72, 0x00b21cc7, 0x00045d43, 0x0010d902}}, Y: Field{[10]uint32{0x0070cbeb, 0x01ac8818, 0x016eb234, 0x02496e2c, 0x025aff2a, 0x012ed3ef, 0x01f2aac5, 0x00ff878f, 0x02af6fc7, 0x00388ce3}}},
+ {X: Field{[10]uint32{0x001e0b66, 0x01d849fd, 0x02a394c4, 0x00bbcae7, 0x0259287f, 0x02fa2353, 0x021f35cf, 0x0045c905, 0x004f2446, 0x0029b967}}, Y: Field{[10]uint32{0x019f334d, 0x03b17f9f, 0x032775f5, 0x00acb9ea, 0x0257a8ae, 0x0133dc62, 0x00fa470c, 0x01d7e507, 0x0347f5dd, 0x001d71c1}}},
+ {X: Field{[10]uint32{0x01322d51, 0x02801ec9, 0x016ed7c9, 0x0165d2ca, 0x025293a9, 0x01a9b4ce, 0x03bf1e84, 0x0147f65d, 0x0217ae73, 0x003fd8e5}}, Y: Field{[10]uint32{0x03dac457, 0x01cc4594, 0x0239f79d, 0x01c7bd01, 0x03e21dca, 0x039e60d4, 0x03f81ffe, 0x0157dd94, 0x01abfa23, 0x0039848f}}},
+ {X: Field{[10]uint32{0x02f4faf3, 0x0376fa53, 0x030435f8, 0x03b80722, 0x00c254df, 0x02b578a1, 0x0237cbc5, 0x03639822, 0x00401710, 0x001de452}}, Y: Field{[10]uint32{0x00611414, 0x02e3b638, 0x00ecaa54, 0x0118cb26, 0x02623be4, 0x02534a9a, 0x0075dc38, 0x03531c10, 0x00e99ef3, 0x00365fd1}}},
+ {X: Field{[10]uint32{0x01484aad, 0x015e7ede, 0x00ee5d42, 0x03f01b76, 0x00947cf1, 0x03704d71, 0x0151c00a, 0x0152a841, 0x00aa0292, 0x003da244}}, Y: Field{[10]uint32{0x0052c1fc, 0x02d67930, 0x03c941b9, 0x0310fd71, 0x0269f9f5, 0x0325e137, 0x01587eaf, 0x01b58c2b, 0x03db33a5, 0x00102f7e}}},
+ {X: Field{[10]uint32{0x036e0fd3, 0x01891906, 0x0169629f, 0x034b7bc7, 0x00f2d4d8, 0x03558361, 0x01c75011, 0x0133bdc6, 0x0381473d, 0x00056fa3}}, Y: Field{[10]uint32{0x00fd9a2a, 0x023bbb9c, 0x007bb1d2, 0x02a21241, 0x0364b85e, 0x01b64c99, 0x011ead00, 0x006d0711, 0x0126fc99, 0x001f99be}}},
+ {X: Field{[10]uint32{0x0284e9ca, 0x006af762, 0x019db909, 0x01be682f, 0x03d0c5c2, 0x01f10722, 0x03272970, 0x00c0bbd0, 0x015a2e22, 0x0003844f}}, Y: Field{[10]uint32{0x01574dc0, 0x0095f2bd, 0x0353026a, 0x03472e00, 0x03b54941, 0x03c6cb16, 0x026b70b2, 0x0371145e, 0x02d834c6, 0x000b9218}}},
+ {X: Field{[10]uint32{0x03bea688, 0x0237f9d1, 0x01595aa7, 0x02c15f5b, 0x022c94da, 0x030346f8, 0x0220d9de, 0x02e99dfd, 0x0370485b, 0x0025ac41}}, Y: Field{[10]uint32{0x03dbf30b, 0x027a7c6e, 0x016a5225, 0x03092926, 0x02ff854a, 0x031de766, 0x021bd58f, 0x01c9ab06, 0x02ae0222, 0x0038182a}}},
+ {X: Field{[10]uint32{0x0005545d, 0x01e24d09, 0x02183de8, 0x031d68e3, 0x0057f6f7, 0x034b3f63, 0x025e8990, 0x0255385f, 0x03005555, 0x00205d0b}}, Y: Field{[10]uint32{0x02d2fc0e, 0x03b80f4b, 0x0236edf1, 0x031a3e48, 0x00a8d742, 0x00d5e3ec, 0x032fbb07, 0x0017cb9b, 0x03c2e5f7, 0x00285d8f}}},
+ {X: Field{[10]uint32{0x0378a480, 0x01207fee, 0x01c17fcc, 0x002f85b0, 0x0386bc7a, 0x02434dee, 0x00b72eaf, 0x023d89df, 0x03139698, 0x0005f067}}, Y: Field{[10]uint32{0x03c78833, 0x030eed94, 0x01fd9c5e, 0x0181c63e, 0x013f430e, 0x038f946e, 0x01c2642a, 0x0193ad88, 0x00d52101, 0x0032c4a4}}},
+ {X: Field{[10]uint32{0x02497a3c, 0x0066fae8, 0x01c3f403, 0x001d8f00, 0x00bfeee5, 0x02e18552, 0x0248b2bb, 0x01bb2719, 0x0306e874, 0x00001ec3}}, Y: Field{[10]uint32{0x02a70020, 0x02dde3b5, 0x00c6a2fd, 0x016275ba, 0x031634b7, 0x032a831e, 0x00b318f1, 0x01f638c2, 0x03788429, 0x0031a524}}},
+ {X: Field{[10]uint32{0x02c5e8b3, 0x015ba444, 0x0013405f, 0x005f2c6e, 0x0055a805, 0x02a26dd5, 0x027d8c28, 0x0060fe69, 0x03062414, 0x001c570a}}, Y: Field{[10]uint32{0x0120370b, 0x015dcfc9, 0x03b33920, 0x000e5de1, 0x0123167f, 0x03e12d35, 0x02d4cca7, 0x01771c78, 0x01c89a79, 0x003e26e2}}},
+ {X: Field{[10]uint32{0x0374d3b6, 0x03d03723, 0x024c78f1, 0x00277626, 0x01057aed, 0x03f976fd, 0x0377662e, 0x03f1e1d9, 0x0200f974, 0x00383433}}, Y: Field{[10]uint32{0x03e3eb56, 0x01c138b8, 0x000d3e85, 0x03f9f2cf, 0x03c253be, 0x01315447, 0x03c7f05c, 0x01211e52, 0x0265ed70, 0x002b316f}}},
+ {X: Field{[10]uint32{0x026432a2, 0x002ac7f4, 0x02222e77, 0x021d6eb5, 0x01bdba9a, 0x033674a8, 0x01aaf75e, 0x02e2de69, 0x028976fb, 0x000dd54c}}, Y: Field{[10]uint32{0x02ced92d, 0x00584230, 0x01d77eb0, 0x01f0b170, 0x0001087e, 0x00aca822, 0x00bc7d01, 0x00192f60, 0x02331b7e, 0x001b6ef8}}},
+ {X: Field{[10]uint32{0x03e3d3ff, 0x02ace81b, 0x00699446, 0x0144aaf7, 0x00f46ca6, 0x02cabec1, 0x003f6b08, 0x0240da1a, 0x03ef51ea, 0x000ba570}}, Y: Field{[10]uint32{0x019b554a, 0x02d030ca, 0x0349839c, 0x019802ca, 0x0201556c, 0x01876f18, 0x0063b94c, 0x037f8121, 0x0287b1d8, 0x0002417a}}},
+ {X: Field{[10]uint32{0x00ff8eb5, 0x01f5d6b1, 0x02cf40fe, 0x0036d645, 0x02646758, 0x01cd54fd, 0x035c67fb, 0x00c915fc, 0x021e721f, 0x00094c43}}, Y: Field{[10]uint32{0x006b4ace, 0x02d50c1e, 0x03041016, 0x018b05fa, 0x0146ecd6, 0x01f72ac7, 0x01a359b8, 0x03bad509, 0x02f9be42, 0x00271794}}},
+ {X: Field{[10]uint32{0x03830b7b, 0x001fd46d, 0x013b0cf7, 0x01f5febd, 0x0227a23b, 0x035f2d41, 0x00779117, 0x03f0b75e, 0x031b2b24, 0x000964ca}}, Y: Field{[10]uint32{0x03536765, 0x00cb6477, 0x00f3e04e, 0x00180427, 0x022215e2, 0x037ce8ab, 0x03969a6d, 0x009ac075, 0x03b4acdb, 0x001fa388}}},
+ {X: Field{[10]uint32{0x03c5ed3e, 0x005a911c, 0x0284e22b, 0x017ac26d, 0x02892e13, 0x025fd6e2, 0x029ba443, 0x01d99ee9, 0x02f6251f, 0x001f48ca}}, Y: Field{[10]uint32{0x02d8356e, 0x00995c69, 0x0392c1cd, 0x01165426, 0x00131b90, 0x026093c7, 0x03dea61d, 0x0226d633, 0x0238c8a5, 0x0028fa3d}}},
+ {X: Field{[10]uint32{0x00c720f9, 0x03a5d572, 0x03633cb9, 0x01141211, 0x026afc86, 0x01125581, 0x03e05b0a, 0x03aa1ee8, 0x02a01b65, 0x001355b2}}, Y: Field{[10]uint32{0x03537330, 0x0105dc5d, 0x0208f50f, 0x03865deb, 0x007c1eae, 0x00dbc0d2, 0x03f1ada9, 0x01465f28, 0x027836e6, 0x000530d1}}},
+ {X: Field{[10]uint32{0x0100a88b, 0x03bef671, 0x01c2c122, 0x000cdc9f, 0x032615b5, 0x031c8bb5, 0x01c81f42, 0x03e2eddd, 0x0165ca6f, 0x001c6af4}}, Y: Field{[10]uint32{0x012620f1, 0x02ae2112, 0x00eb9c39, 0x01499089, 0x01a59693, 0x0046b12e, 0x031c46ae, 0x013e18be, 0x00670728, 0x001e6e89}}},
+ {X: Field{[10]uint32{0x02a48965, 0x00ba4195, 0x039f4200, 0x01d31045, 0x0230215e, 0x03176795, 0x00496345, 0x00146731, 0x00ccc381, 0x002118bf}}, Y: Field{[10]uint32{0x03787d4b, 0x00241229, 0x005cb64d, 0x029d70f0, 0x00f0eb75, 0x027f1190, 0x0148a7e2, 0x02e662f1, 0x0166cd7f, 0x00014d6a}}},
+ {X: Field{[10]uint32{0x02c09826, 0x03a4d44d, 0x01ae3286, 0x0011bf91, 0x00b9c2b1, 0x0195a12a, 0x0178b5c6, 0x0147402d, 0x0093fed7, 0x003da3ab}}, Y: Field{[10]uint32{0x0148bff5, 0x013f117f, 0x01831733, 0x0355cca8, 0x0366f7d8, 0x02943952, 0x0119ff2f, 0x02a28a3c, 0x032b98b0, 0x00263830}}},
+ {X: Field{[10]uint32{0x01f72041, 0x0110acb6, 0x00b1615f, 0x031f9250, 0x0243467d, 0x01bfd5a6, 0x00e4014f, 0x0364d670, 0x025009a8, 0x0018511c}}, Y: Field{[10]uint32{0x02c8f807, 0x00cc505e, 0x02d2eb2f, 0x0024abac, 0x00fa58f2, 0x03efaa22, 0x02a7108d, 0x01fb9f7b, 0x037fc7f5, 0x0003edc5}}},
+ {X: Field{[10]uint32{0x0315614f, 0x023b3152, 0x01497fc2, 0x0324de68, 0x01c9846a, 0x00b6233c, 0x0259a26e, 0x006f4b88, 0x02114ffa, 0x003a9a7b}}, Y: Field{[10]uint32{0x00e4e2de, 0x02dda317, 0x022c9b17, 0x006e026d, 0x0163183d, 0x0375b3cf, 0x00141083, 0x035d4244, 0x01b51dd6, 0x001626e0}}},
+ {X: Field{[10]uint32{0x025d5263, 0x01319813, 0x02b78146, 0x0057147e, 0x0338e6aa, 0x01ffc542, 0x01a1ce0d, 0x037a5990, 0x03243404, 0x000d1c9e}}, Y: Field{[10]uint32{0x0027d4f2, 0x00a27536, 0x03804435, 0x03cb56ef, 0x031920bf, 0x03001a74, 0x039baadd, 0x0329dcd6, 0x026bcf56, 0x0024660c}}},
+ {X: Field{[10]uint32{0x02217461, 0x02343667, 0x02ad952f, 0x036549b3, 0x00eeebf4, 0x03a62d3c, 0x022d2756, 0x01e370a7, 0x02ae6137, 0x00254914}}, Y: Field{[10]uint32{0x02d486a8, 0x01c5d6ca, 0x035ff079, 0x020b7052, 0x03c17f65, 0x006c5046, 0x0250eb10, 0x03ed6be6, 0x0228c195, 0x003022ce}}},
+ {X: Field{[10]uint32{0x038e49ff, 0x02855ab9, 0x01bfd2d4, 0x010af78b, 0x02401b83, 0x019840c1, 0x01afeba6, 0x022f1dfa, 0x0318dc4a, 0x003ef28f}}, Y: Field{[10]uint32{0x014129c9, 0x01f910fe, 0x029b6c7b, 0x01ceee4c, 0x034cf755, 0x01dae493, 0x020db7bc, 0x02cb7bb6, 0x016d6027, 0x000ae0a7}}},
+ {X: Field{[10]uint32{0x03d8c141, 0x03130556, 0x0082b57b, 0x03fee502, 0x005302bf, 0x0022929c, 0x03dff64a, 0x0190ea55, 0x011d7ddc, 0x0031f77c}}, Y: Field{[10]uint32{0x02708e20, 0x01559a5b, 0x02a8889d, 0x038628f6, 0x03b3711e, 0x00e6f9e6, 0x03e81468, 0x02c0600f, 0x01f1ac93, 0x003a7284}}},
+ {X: Field{[10]uint32{0x00ce31b8, 0x03b9299c, 0x02fa2cd0, 0x014e72db, 0x011b3f23, 0x039a0860, 0x031f7e44, 0x0018fae0, 0x023086e3, 0x001c410e}}, Y: Field{[10]uint32{0x01322c9d, 0x02df2d22, 0x03411ebc, 0x01914c82, 0x019334c1, 0x0178a613, 0x029cc925, 0x0349cd2a, 0x0338ef9f, 0x00136cfc}}},
+ {X: Field{[10]uint32{0x00602585, 0x01a9dd92, 0x034c3dbb, 0x0111e644, 0x005d70f0, 0x003e8dd7, 0x0349d368, 0x01f2ef64, 0x02401534, 0x001b793a}}, Y: Field{[10]uint32{0x03960418, 0x01df7c9f, 0x03d70f1d, 0x010ce31c, 0x02458a32, 0x01c0973c, 0x028d8394, 0x014b6fba, 0x018865ab, 0x0000edd9}}},
+ {X: Field{[10]uint32{0x024fecbe, 0x0095a5ae, 0x02215bc4, 0x030387e9, 0x01db9a0c, 0x03dee80f, 0x017e23b6, 0x03b2dfa8, 0x039f467c, 0x000a7ea9}}, Y: Field{[10]uint32{0x00f34838, 0x03fe86d2, 0x01154e50, 0x017b4bfc, 0x0264a224, 0x01af7c41, 0x03027d04, 0x02f0a707, 0x011fc42f, 0x00396a9a}}},
+ {X: Field{[10]uint32{0x02aafc99, 0x010be4c5, 0x00f79c8c, 0x02e1d244, 0x03d750f8, 0x00afe3d6, 0x025f15a0, 0x016c89e3, 0x03fc25ae, 0x003fe202}}, Y: Field{[10]uint32{0x025747df, 0x03bba08e, 0x00b105ee, 0x019af228, 0x0360e7a1, 0x02ed40b6, 0x0025bd81, 0x023de4de, 0x030a0072, 0x00254d7d}}},
+ {X: Field{[10]uint32{0x00a2a378, 0x01af4be9, 0x00eeef6a, 0x02c90949, 0x0160eff0, 0x014ba302, 0x020c5663, 0x03dbd614, 0x02a03837, 0x002de06d}}, Y: Field{[10]uint32{0x00dbbb62, 0x03ffefd3, 0x01e4fc44, 0x027989d5, 0x01cbf838, 0x0304ada7, 0x0322ee73, 0x00f7650d, 0x03d46c68, 0x002b35ed}}},
+ {X: Field{[10]uint32{0x027406db, 0x01028ed1, 0x01990ee5, 0x01896411, 0x03b3f190, 0x00b92b0a, 0x0332c648, 0x03174369, 0x0193e8ba, 0x001b65d9}}, Y: Field{[10]uint32{0x032a8b6b, 0x01fa704b, 0x016583bd, 0x00966a2e, 0x016cbc18, 0x00a92abb, 0x00bb9c0f, 0x020585b0, 0x03e4af6d, 0x000c30d4}}},
+ {X: Field{[10]uint32{0x00dc3032, 0x0219af5b, 0x014015d0, 0x0208a9b6, 0x03683ec7, 0x03eb4784, 0x02121129, 0x03836d18, 0x036a4dd3, 0x00063b59}}, Y: Field{[10]uint32{0x00a51bd5, 0x009ac580, 0x019bb8ef, 0x039dfb8c, 0x0006f9a6, 0x01780d9c, 0x03b97626, 0x02a0a97d, 0x02e15dbf, 0x00321ac1}}},
+ {X: Field{[10]uint32{0x035ce2a1, 0x015032b6, 0x0118ceb3, 0x034ee547, 0x01d1e859, 0x03bf52e3, 0x00bce4da, 0x003ff30b, 0x0238e944, 0x0000c4e3}}, Y: Field{[10]uint32{0x0095c241, 0x038a325a, 0x029a3430, 0x010253be, 0x03fef4bc, 0x02431b9b, 0x0260a134, 0x02199f75, 0x01b2a11a, 0x0037e2ac}}},
+ {X: Field{[10]uint32{0x00b00c95, 0x015c73fa, 0x03c3a091, 0x0023d240, 0x02163ce6, 0x0126a5d8, 0x02b1e761, 0x0326aae2, 0x00ac2025, 0x001d5f7d}}, Y: Field{[10]uint32{0x03a03430, 0x0353b337, 0x018c4a37, 0x032d343f, 0x01c56bd7, 0x014001d9, 0x0115ab76, 0x0317611f, 0x01feab36, 0x003fc2bd}}},
+ {X: Field{[10]uint32{0x004c27e1, 0x01c10262, 0x015cc9aa, 0x03a1142e, 0x020ce09d, 0x0078ecbc, 0x03319a08, 0x01626f44, 0x02527156, 0x00229a5e}}, Y: Field{[10]uint32{0x0151f39d, 0x0027e1ab, 0x03ca13df, 0x039aefc0, 0x015a5edd, 0x00ccb576, 0x032815ad, 0x027a78df, 0x013cb602, 0x00027bae}}},
+ {X: Field{[10]uint32{0x018c721b, 0x035838f9, 0x000b1650, 0x026f53d3, 0x01d35eb8, 0x00dea135, 0x03c2198e, 0x0382c5b3, 0x018736f9, 0x002c2eda}}, Y: Field{[10]uint32{0x016e00dc, 0x018d8efb, 0x001ebb3b, 0x0054bd23, 0x010b8556, 0x02ce3a0b, 0x009808f0, 0x02d405bc, 0x0200ce25, 0x000cf56c}}},
+ {X: Field{[10]uint32{0x0037efed, 0x006d5172, 0x022d8d9f, 0x017a41ab, 0x03ef6d6f, 0x034be3fd, 0x037882a0, 0x0118d098, 0x01de5dde, 0x0007283b}}, Y: Field{[10]uint32{0x002863bc, 0x027af6aa, 0x02e41acb, 0x013eb163, 0x024c4d3a, 0x017ae7cf, 0x015d4c0f, 0x01a0f69f, 0x01ae4cff, 0x00067bed}}},
+ {X: Field{[10]uint32{0x01474aa7, 0x03f10893, 0x0121ed90, 0x006b793a, 0x01d59ad1, 0x00786dd9, 0x02849310, 0x0395f59a, 0x030eb9a4, 0x001e0396}}, Y: Field{[10]uint32{0x033ab811, 0x024c8304, 0x016a3d33, 0x03fd0614, 0x001d8f34, 0x01e6a8e9, 0x02579f4c, 0x017c84b6, 0x00cc58cc, 0x0017af67}}},
+ {X: Field{[10]uint32{0x00eb4c9d, 0x01a1b68d, 0x01468edf, 0x026952fc, 0x0330ec07, 0x037c8429, 0x02af620c, 0x021414b4, 0x00e93980, 0x003dfa4b}}, Y: Field{[10]uint32{0x00f93666, 0x03deae5e, 0x035857b1, 0x0259ea22, 0x0257c234, 0x00bc52b6, 0x03d54c03, 0x02a58563, 0x01cfe113, 0x000b1567}}},
+ {X: Field{[10]uint32{0x0289f938, 0x01f69712, 0x036f54bc, 0x02909a4c, 0x013a5688, 0x00360358, 0x01ff8092, 0x00829e3e, 0x022075bb, 0x000f0ebe}}, Y: Field{[10]uint32{0x03888c8d, 0x03cfe71e, 0x0132b978, 0x0364fc74, 0x023bd836, 0x0190d7c8, 0x023a9f54, 0x00d75b95, 0x03081dd2, 0x001fbce0}}},
+ {X: Field{[10]uint32{0x022097ee, 0x03ec557c, 0x01115af4, 0x03700c06, 0x0389fb9e, 0x01f95848, 0x01ec59e0, 0x03e6d5d7, 0x001dee60, 0x001c75bc}}, Y: Field{[10]uint32{0x0080bfee, 0x0011c387, 0x016802ef, 0x03483abc, 0x0138da4f, 0x02d050c8, 0x0054091f, 0x028d714a, 0x02454a31, 0x00387330}}},
+ {X: Field{[10]uint32{0x00c4fa2d, 0x03dd6e4e, 0x036ea1f5, 0x00c7162a, 0x02b107fc, 0x039895f7, 0x00a77b28, 0x03b20242, 0x020f5705, 0x0025c999}}, Y: Field{[10]uint32{0x008cd4c1, 0x021a526d, 0x000c690c, 0x039c23a9, 0x01d3636f, 0x01b6c319, 0x018c213b, 0x0347a584, 0x03ae3102, 0x00253301}}},
+ {X: Field{[10]uint32{0x02802719, 0x000ab0ac, 0x004b87fd, 0x004bb07f, 0x02297fad, 0x01fa2d8c, 0x011a1a29, 0x0286bc1a, 0x00c754b2, 0x002b3974}}, Y: Field{[10]uint32{0x039f85eb, 0x03252162, 0x008581f4, 0x032b4934, 0x027fc843, 0x03c6235a, 0x02491f05, 0x01c973ae, 0x03248d3e, 0x002493e7}}},
+ {X: Field{[10]uint32{0x01943f64, 0x0159ace1, 0x018b88fa, 0x03f588ba, 0x028200ea, 0x00e2928a, 0x01778f28, 0x003fc333, 0x006b3480, 0x003e944c}}, Y: Field{[10]uint32{0x0296e293, 0x01721c50, 0x015c85f0, 0x015eb4d3, 0x0104b677, 0x0324ad43, 0x00ee030f, 0x0121ce87, 0x02166b14, 0x002d83b9}}},
+ {X: Field{[10]uint32{0x01bea60a, 0x0275610b, 0x030f17c1, 0x0165845c, 0x000b716a, 0x0163abf3, 0x00097ee4, 0x009699e7, 0x0018329d, 0x002177e4}}, Y: Field{[10]uint32{0x017ab0fa, 0x03a24462, 0x0180ae62, 0x031bcbda, 0x00b7bc64, 0x039e1ddd, 0x01ad7c09, 0x008473a6, 0x01b6046d, 0x00315575}}},
+ {X: Field{[10]uint32{0x00af5e3a, 0x02627389, 0x037f3efb, 0x03d1e018, 0x01337ff5, 0x0398d2a6, 0x0061b52a, 0x01119ead, 0x000dc202, 0x000bddf0}}, Y: Field{[10]uint32{0x005e3e39, 0x0039fea4, 0x0325303f, 0x039ebbca, 0x020c5d28, 0x039fbee9, 0x00c52b0b, 0x03eaf61c, 0x0278ebcb, 0x0031fd29}}},
+ {X: Field{[10]uint32{0x028bb34e, 0x03123088, 0x0200158f, 0x03d6c3bd, 0x011f238d, 0x02e00afd, 0x036a4997, 0x0143583f, 0x023a7200, 0x0014b628}}, Y: Field{[10]uint32{0x003d9136, 0x00c0b6e0, 0x000f2ccd, 0x004b245e, 0x02cebb18, 0x030c31e1, 0x02d29b51, 0x02386858, 0x01a7861b, 0x00262ba0}}},
+ {X: Field{[10]uint32{0x0212b211, 0x003b6c5c, 0x022fd37b, 0x008901d1, 0x00701daf, 0x01d556d7, 0x03b83204, 0x0001248b, 0x0079eaca, 0x0029fcf9}}, Y: Field{[10]uint32{0x03bdaada, 0x019402e7, 0x03ae8e92, 0x01f311db, 0x013e3376, 0x006eb00e, 0x0268498d, 0x029f05ee, 0x010c8c4c, 0x00203d86}}},
+ {X: Field{[10]uint32{0x02356103, 0x01181f28, 0x00880ea0, 0x0264023d, 0x0373db57, 0x0108e0ab, 0x03bf4d79, 0x034c9986, 0x0150e67b, 0x000c7bcc}}, Y: Field{[10]uint32{0x00a9a8ee, 0x020d2c6a, 0x00954631, 0x01ab8f4b, 0x01bc03c4, 0x012c5bb5, 0x0350bb51, 0x00a3464e, 0x01d6655d, 0x001f6e3d}}},
+ {X: Field{[10]uint32{0x038b058d, 0x03b8914e, 0x031fceab, 0x034e1a04, 0x00599b0c, 0x00bb7a8c, 0x02d1ee35, 0x000a64e6, 0x0155469c, 0x003ba0bc}}, Y: Field{[10]uint32{0x0092b10c, 0x00bfcc14, 0x00400eed, 0x0263c0e5, 0x0032de93, 0x02b6e263, 0x01d9ed6c, 0x030b10ab, 0x014e2d77, 0x003f4303}}},
+ {X: Field{[10]uint32{0x016b4586, 0x0347df95, 0x0073e206, 0x0242d15a, 0x01273549, 0x0281c55d, 0x01f7d458, 0x0375bc2a, 0x007abfce, 0x00037b1f}}, Y: Field{[10]uint32{0x007200c4, 0x0060041d, 0x0327673c, 0x031ee172, 0x002c7626, 0x01e7f8c8, 0x02f0912b, 0x025fd061, 0x02b4cad5, 0x002be106}}},
+ {X: Field{[10]uint32{0x00d2369d, 0x02cd347d, 0x0362e526, 0x004bb921, 0x002bf34f, 0x01466f60, 0x011ba405, 0x01bfa5d6, 0x037048cd, 0x0030a38c}}, Y: Field{[10]uint32{0x00636e8b, 0x003ac5fc, 0x01a647d5, 0x0148e4c9, 0x03b8640f, 0x025dae84, 0x0086dba6, 0x019cc5fd, 0x03ddda45, 0x0003802a}}},
+ {X: Field{[10]uint32{0x03222195, 0x011448f7, 0x01a93071, 0x00c473c1, 0x01370277, 0x003c8d4c, 0x0029e9db, 0x017d9403, 0x00a92c27, 0x0011c55f}}, Y: Field{[10]uint32{0x01cbef6e, 0x003833a2, 0x00dc4f43, 0x01cacd3e, 0x009fefeb, 0x0107321d, 0x007e9ed4, 0x03f496be, 0x03fac911, 0x001922c5}}},
+ {X: Field{[10]uint32{0x00a73241, 0x01c6991b, 0x03868f54, 0x014e9eac, 0x039a0a92, 0x027fc651, 0x01b55037, 0x014f3b60, 0x0302745c, 0x00213445}}, Y: Field{[10]uint32{0x01f858c5, 0x0382f089, 0x016b62c0, 0x03076359, 0x01fc593e, 0x01139933, 0x03b13536, 0x0021e93b, 0x02a20c3c, 0x0013c5ad}}},
+ {X: Field{[10]uint32{0x03d63fc9, 0x02f8b5e5, 0x02dccb7f, 0x00a23a46, 0x03c74e81, 0x02a20471, 0x02b2f28e, 0x0182e1ac, 0x00221960, 0x000eee8c}}, Y: Field{[10]uint32{0x0334e286, 0x00f4a8a9, 0x02f3a9d7, 0x0262db9f, 0x00879d3f, 0x03a93d53, 0x03c5aa12, 0x014dce9d, 0x014af094, 0x001fcd01}}},
+ {X: Field{[10]uint32{0x00651c6b, 0x03a281a6, 0x038f4425, 0x001aaa14, 0x00b9f746, 0x00f5039c, 0x037485ab, 0x01850c90, 0x03f47a2c, 0x0002158d}}, Y: Field{[10]uint32{0x03396054, 0x0002b664, 0x00096c35, 0x00c68c34, 0x02f76e85, 0x020e940d, 0x03075760, 0x00ac799e, 0x01d56fb4, 0x002f1aa5}}},
+ {X: Field{[10]uint32{0x01bbd123, 0x01bb4c53, 0x0167d8ea, 0x010a902a, 0x02e8021a, 0x034f150f, 0x02d1605d, 0x00066887, 0x02985e75, 0x00094c0b}}, Y: Field{[10]uint32{0x02797a83, 0x02936399, 0x010f3267, 0x00e447f7, 0x01c02206, 0x004dc4fe, 0x02f9b4ba, 0x01d64751, 0x03e02309, 0x00212732}}},
+ {X: Field{[10]uint32{0x003bea40, 0x01fd793d, 0x01f8e411, 0x003edae1, 0x03485fde, 0x029c82b8, 0x00d73dab, 0x024f8f02, 0x00bf88e3, 0x0039668c}}, Y: Field{[10]uint32{0x0197dfd5, 0x02112618, 0x02fb4422, 0x01921e1c, 0x0383ebbb, 0x00f92fe0, 0x00fa6bd3, 0x032cdc68, 0x024fe222, 0x001bf5e0}}},
+ {X: Field{[10]uint32{0x02247e4e, 0x03e060fd, 0x025bda83, 0x0074b04d, 0x02de0533, 0x024d778b, 0x01e9bc3b, 0x00698162, 0x01f69798, 0x0031640b}}, Y: Field{[10]uint32{0x0175fe3c, 0x016b1f4b, 0x02c91f86, 0x01bae4f6, 0x0121d073, 0x03fadf38, 0x035ecb58, 0x0147bc6a, 0x014f5af5, 0x00319fac}}},
+ {X: Field{[10]uint32{0x015e66ad, 0x02ad3983, 0x00c1b277, 0x0270b9b1, 0x01b8b640, 0x0138f202, 0x039a9b47, 0x0049fb19, 0x02c7fe27, 0x0037e2f6}}, Y: Field{[10]uint32{0x017d43e1, 0x02c409dc, 0x02dc7645, 0x01bf0099, 0x00273825, 0x00bad1c2, 0x01802ed7, 0x00e25953, 0x03e49f0b, 0x000ffc9b}}},
+ {X: Field{[10]uint32{0x0065a82c, 0x0233dd8b, 0x02cf3f1e, 0x00942459, 0x009eff91, 0x0204357c, 0x01c7c02b, 0x02e32b0e, 0x004e9c7c, 0x00075550}}, Y: Field{[10]uint32{0x02a7632f, 0x02ee6f6c, 0x00707c24, 0x03a82681, 0x03e5a760, 0x00bf1348, 0x0099f64a, 0x03228d71, 0x0023f6a1, 0x00305e1c}}},
+ {X: Field{[10]uint32{0x01f43b44, 0x03b82203, 0x034ef804, 0x02599e86, 0x002d040e, 0x01617914, 0x0106073d, 0x03f7eda1, 0x00c9b035, 0x000d7ce4}}, Y: Field{[10]uint32{0x03f512a2, 0x01768e2f, 0x010383c5, 0x00ab690f, 0x004c3cad, 0x003ae5d5, 0x0036fec5, 0x0362ddf7, 0x018886aa, 0x001aa173}}},
+ {X: Field{[10]uint32{0x01e059b0, 0x01d13131, 0x006d588f, 0x01bb50f4, 0x011d2278, 0x0091273f, 0x02d7005b, 0x023e9bc9, 0x000dee88, 0x003eec21}}, Y: Field{[10]uint32{0x01b8d3bf, 0x034ac973, 0x005a6508, 0x03d2f4f5, 0x02203b05, 0x03d946eb, 0x00ffa219, 0x01c3c8e9, 0x014fd89a, 0x00191814}}},
+ {X: Field{[10]uint32{0x034d78d7, 0x02049c68, 0x00ac9ce4, 0x0384cd4f, 0x0161fa0a, 0x01a4c7a4, 0x0208ac46, 0x01d77111, 0x00f01c22, 0x0009015b}}, Y: Field{[10]uint32{0x03c7751f, 0x0286d8f2, 0x011bf7dd, 0x028361a9, 0x01965a3f, 0x00d2949d, 0x003088f4, 0x020746fc, 0x03c67e73, 0x0010faf4}}},
+ {X: Field{[10]uint32{0x00f9cd78, 0x02465c9c, 0x01297e77, 0x01175f9c, 0x0354f9f7, 0x035cbdac, 0x007c938c, 0x01f1e238, 0x03dfe844, 0x000ec410}}, Y: Field{[10]uint32{0x0240d6fc, 0x03c4a697, 0x0050c34a, 0x0184385b, 0x03b67ba3, 0x00ac6171, 0x02c29d4b, 0x03544449, 0x00c4abf0, 0x000a380a}}},
+ {X: Field{[10]uint32{0x01a040e6, 0x03b7481a, 0x03a81a5b, 0x023d715d, 0x008088b0, 0x018d6017, 0x0175b236, 0x00d8e203, 0x01d14179, 0x002bbe42}}, Y: Field{[10]uint32{0x0200dc51, 0x006edf21, 0x03382d8a, 0x03007125, 0x0293350c, 0x03d028fe, 0x00c2b43d, 0x01adb174, 0x006f0de2, 0x00032ed3}}},
+ {X: Field{[10]uint32{0x02833f28, 0x027e74f2, 0x007ac02c, 0x02e043d0, 0x03913367, 0x03c8a6f1, 0x0359aef5, 0x00c72dbf, 0x00f73863, 0x00323525}}, Y: Field{[10]uint32{0x010de4d2, 0x02a9d2ec, 0x01a67e70, 0x009e358b, 0x00c7b850, 0x034fbc45, 0x01afdacb, 0x0217534e, 0x02f94b62, 0x0032cb1d}}},
+ {X: Field{[10]uint32{0x00f75b28, 0x00e44e4d, 0x033f5f4f, 0x005dbf97, 0x03c1b52e, 0x00779ed7, 0x00744437, 0x0328c8f7, 0x03f7af14, 0x00096bf3}}, Y: Field{[10]uint32{0x0142b789, 0x01c5c89a, 0x03781752, 0x03ed2bd2, 0x025010cd, 0x03541699, 0x031f57f8, 0x01fa5db2, 0x00a47f9d, 0x003619e9}}},
+ {X: Field{[10]uint32{0x0132e2c7, 0x03658c8f, 0x022f819a, 0x00b5dc23, 0x01d40768, 0x022f5cb9, 0x02c220dc, 0x024c361c, 0x0086f773, 0x000090db}}, Y: Field{[10]uint32{0x00ab67a5, 0x02737aa2, 0x01662bc8, 0x021cdfc0, 0x0320a958, 0x0138501f, 0x00de6902, 0x0198f311, 0x01ea92af, 0x001b8e5b}}},
+ {X: Field{[10]uint32{0x007f349d, 0x03d34945, 0x0056b0d0, 0x02e1fcf3, 0x0257638b, 0x0064567b, 0x00bcb86e, 0x00cf1e44, 0x03d59e57, 0x001873ba}}, Y: Field{[10]uint32{0x02fadb9e, 0x012c573c, 0x02aef3e7, 0x023e18a0, 0x027d8521, 0x01068c3a, 0x023082e7, 0x03b423ed, 0x0145e9b0, 0x000aa141}}},
+ {X: Field{[10]uint32{0x00b6c187, 0x03a05fad, 0x0116dd77, 0x039b840b, 0x030dcbfe, 0x0278a91b, 0x0391a737, 0x0001c50a, 0x03b5d45d, 0x0016844c}}, Y: Field{[10]uint32{0x00d492e1, 0x03c0c14a, 0x0381f0f6, 0x03a3ce63, 0x0134c1c2, 0x00ce92df, 0x01c05171, 0x036710f2, 0x02aeafd6, 0x000bff65}}},
+ {X: Field{[10]uint32{0x0163c8ac, 0x00e343d1, 0x0129309c, 0x0244c537, 0x01fff0f1, 0x0372c4ee, 0x02b5abe8, 0x006d04a7, 0x00498b70, 0x002dd28e}}, Y: Field{[10]uint32{0x00b9014f, 0x02599e67, 0x01186ffa, 0x00a3e10c, 0x01689be5, 0x0299de15, 0x00d6f7c5, 0x0083f619, 0x0257e50a, 0x00276113}}},
+ {X: Field{[10]uint32{0x0389d26c, 0x032c8117, 0x024b752f, 0x01b2992a, 0x008e9a80, 0x02a54ab5, 0x011c3375, 0x0082d0ff, 0x00d04afb, 0x0030d727}}, Y: Field{[10]uint32{0x01a9c65a, 0x021de49e, 0x015a4b7e, 0x030fc1a7, 0x0248c765, 0x0278656c, 0x0279d841, 0x03bf2f7b, 0x02aa4a83, 0x002c1071}}},
+ {X: Field{[10]uint32{0x00b82b96, 0x022b4df4, 0x025e8fea, 0x037b96db, 0x0311703d, 0x01e45075, 0x00b2af44, 0x01a2cfc1, 0x02587538, 0x0026a16a}}, Y: Field{[10]uint32{0x03d75d27, 0x0366549e, 0x005f2551, 0x0104efd2, 0x024e0620, 0x00cfb189, 0x00b80752, 0x03c0ef49, 0x00abaa16, 0x0011971c}}},
+ {X: Field{[10]uint32{0x0086fe14, 0x03ac15d7, 0x0061bd12, 0x028f3e93, 0x01b3e825, 0x02f48fd2, 0x0183c14c, 0x03cf944b, 0x03cce051, 0x000fb1c6}}, Y: Field{[10]uint32{0x01915bdc, 0x017c17ba, 0x00007db3, 0x00ea6a54, 0x0245caba, 0x000cfc6a, 0x0294c5ab, 0x0295a954, 0x021de2da, 0x003c6630}}},
+ {X: Field{[10]uint32{0x0359ae63, 0x0123c02c, 0x01b45aea, 0x01e4dcdf, 0x036b09e5, 0x00d6fccf, 0x0010e235, 0x007b7824, 0x0222939e, 0x003b872f}}, Y: Field{[10]uint32{0x021b90a5, 0x01e005e4, 0x0228d471, 0x0367794c, 0x01acecb6, 0x036adaa4, 0x037d2971, 0x0137d89f, 0x0026d444, 0x002fd810}}},
+ {X: Field{[10]uint32{0x0346073e, 0x03c32659, 0x01ee78dc, 0x00aef222, 0x035a8cd9, 0x03fd3409, 0x007677d1, 0x00e98bbd, 0x03e171de, 0x003af2fc}}, Y: Field{[10]uint32{0x02f6ebe8, 0x00fd5d27, 0x03f9805c, 0x02428e08, 0x0195c6d8, 0x00b6b7ae, 0x014a3f30, 0x01c89024, 0x03c7bc9c, 0x0021e358}}},
+ {X: Field{[10]uint32{0x039db797, 0x006cbf6a, 0x01ae56e8, 0x00c30243, 0x01b60664, 0x01654836, 0x03c57d52, 0x03bc56e1, 0x02e4ce72, 0x00393a4b}}, Y: Field{[10]uint32{0x015f944c, 0x03da5959, 0x00217ebe, 0x0232707e, 0x026d2183, 0x0161dd14, 0x01f47dbf, 0x029d4d56, 0x00654a03, 0x000feab1}}},
+ {X: Field{[10]uint32{0x02ac1cc1, 0x010b7437, 0x03d635bc, 0x0319f078, 0x03cf275f, 0x00bac7d9, 0x00ef7431, 0x00ac0ded, 0x03588e29, 0x003f0739}}, Y: Field{[10]uint32{0x025186d7, 0x01e58f79, 0x019b42fe, 0x024b08e2, 0x02495bc3, 0x032bf2de, 0x03c791e8, 0x0366bdfd, 0x01bf44f7, 0x0005dade}}},
+ {X: Field{[10]uint32{0x0294fc56, 0x031c15ae, 0x0091f9e9, 0x00eae5e9, 0x0149482b, 0x03257be1, 0x02a86b21, 0x01a9b1a4, 0x03ff179e, 0x003c7d6f}}, Y: Field{[10]uint32{0x0239e143, 0x009613e2, 0x0209313a, 0x00484318, 0x00670415, 0x030aab9c, 0x00f06205, 0x00ef0fed, 0x03a8a2cd, 0x000e2495}}},
+ {X: Field{[10]uint32{0x03793eb9, 0x0113f5aa, 0x03323ac7, 0x00b9d230, 0x012c7aaa, 0x005d6850, 0x02bfef8d, 0x038006e9, 0x001461c3, 0x0026039d}}, Y: Field{[10]uint32{0x0331826c, 0x029d8946, 0x00259c7f, 0x00e98db1, 0x0134cbb3, 0x010a1801, 0x00dde28d, 0x017a0ecf, 0x01ae29e0, 0x001b8df7}}},
+ {X: Field{[10]uint32{0x01b1c179, 0x0095fb68, 0x0207f66a, 0x029a9bde, 0x01adb7fa, 0x039b0655, 0x01986dc7, 0x01495c1c, 0x03f7686a, 0x003d4673}}, Y: Field{[10]uint32{0x0255a807, 0x03ae3c82, 0x0297f09e, 0x03b470c7, 0x03174ed4, 0x024ee140, 0x001d008a, 0x017261e5, 0x02b08c76, 0x000fa00f}}},
+ {X: Field{[10]uint32{0x028f8061, 0x0389d56e, 0x00eee144, 0x00e443b7, 0x009011d9, 0x02f31730, 0x029bafd0, 0x03faa46e, 0x01ea3851, 0x000b7636}}, Y: Field{[10]uint32{0x01a52ae3, 0x03f81347, 0x00dc1365, 0x02a73a5c, 0x007adfde, 0x03bd4986, 0x00d058b4, 0x011a24df, 0x01afd422, 0x001851fc}}},
+ {X: Field{[10]uint32{0x0054a4ae, 0x03f5e005, 0x01b35ede, 0x02335f42, 0x032854f8, 0x02a803d8, 0x02c0c415, 0x00d4dd1e, 0x02620948, 0x00218310}}, Y: Field{[10]uint32{0x033392f4, 0x039b8bb5, 0x01cef95c, 0x028a014d, 0x01d15378, 0x03bbc361, 0x03dfc561, 0x01b49639, 0x022a7d82, 0x0028a9e8}}},
+ {X: Field{[10]uint32{0x02d732a6, 0x01eb42eb, 0x00b28ae9, 0x0240b259, 0x01e0697f, 0x0014d482, 0x007d4ea2, 0x00b0f426, 0x00ec17d8, 0x0039dac8}}, Y: Field{[10]uint32{0x03f54bf0, 0x02092499, 0x038f4ad1, 0x00df665f, 0x0132bc11, 0x0311fdc0, 0x037cec9c, 0x0184eff6, 0x00b685f6, 0x00325e11}}},
+ {X: Field{[10]uint32{0x0110ab88, 0x0157bf42, 0x007a6504, 0x03378f41, 0x03718ec9, 0x00a905ed, 0x02862b16, 0x0296098d, 0x010d12fb, 0x00099cc7}}, Y: Field{[10]uint32{0x03542192, 0x029c7f26, 0x017143b1, 0x00251ee9, 0x028d2986, 0x001cdb5b, 0x022023bb, 0x0129841b, 0x03b30b46, 0x000f043b}}},
+ {X: Field{[10]uint32{0x0224dcde, 0x0177e768, 0x00ea8986, 0x003a2cb6, 0x003fc457, 0x0340536c, 0x03e46f5e, 0x02046a1f, 0x007852db, 0x001432d2}}, Y: Field{[10]uint32{0x0339621d, 0x012f60e2, 0x006f95d5, 0x0234c0f4, 0x00c69db4, 0x00403914, 0x03572a0c, 0x02ba2623, 0x00a87937, 0x002ee122}}},
+ {X: Field{[10]uint32{0x03b02a60, 0x03bac87f, 0x03a0e7eb, 0x01372ca2, 0x03064b0c, 0x02cfeb97, 0x00f9fb92, 0x03ff6d9c, 0x013b1d67, 0x003eda51}}, Y: Field{[10]uint32{0x00fd2c39, 0x00c0fba9, 0x024ca41e, 0x02bd1dcd, 0x00d1ba17, 0x0210483e, 0x03b13879, 0x0206d8fa, 0x033692d8, 0x002c3f7b}}},
+ {X: Field{[10]uint32{0x03b249b4, 0x01dc1b62, 0x03b9938c, 0x00695b6e, 0x0103f406, 0x028fde13, 0x03aec4fe, 0x00089867, 0x000b4b72, 0x002a3c4a}}, Y: Field{[10]uint32{0x0239b8cc, 0x01c0fd1b, 0x019d4484, 0x02e6f07f, 0x03a97e12, 0x02f9ef8c, 0x032e5014, 0x01644d15, 0x0171ac50, 0x003aeced}}},
+ {X: Field{[10]uint32{0x02acaa98, 0x012409db, 0x02bb878b, 0x0306f066, 0x02420f83, 0x00265805, 0x03cb3be3, 0x015e43c5, 0x0209df30, 0x0010a4b3}}, Y: Field{[10]uint32{0x00745d36, 0x02a89207, 0x022f9aa2, 0x016d9d1b, 0x00f32c8d, 0x01186ddb, 0x00f18733, 0x0074760b, 0x014cbf2b, 0x0006c536}}},
+ {X: Field{[10]uint32{0x00c9464f, 0x029561e9, 0x0305b8c5, 0x00b25e5a, 0x038e1a06, 0x02720fe3, 0x03967504, 0x01d1fc2d, 0x0177f16f, 0x002b0904}}, Y: Field{[10]uint32{0x0176cf58, 0x028ed764, 0x0341d1cb, 0x0173bd72, 0x03266b69, 0x00c195a1, 0x004eb037, 0x034113b2, 0x01038261, 0x0037415d}}},
+ {X: Field{[10]uint32{0x011823d3, 0x0349515d, 0x00e7dd7f, 0x026e1ac6, 0x0278e75c, 0x033dfe11, 0x019d640a, 0x00b695ff, 0x027326bf, 0x001a4bb2}}, Y: Field{[10]uint32{0x01c8e97f, 0x01ff74dc, 0x033478f1, 0x01413fc0, 0x02014c38, 0x02275876, 0x01573202, 0x029e2861, 0x0062548e, 0x0005f5b5}}},
+ {X: Field{[10]uint32{0x0310e216, 0x00f316db, 0x01889e82, 0x03534bd6, 0x01d0e129, 0x0300b9bd, 0x02cf946e, 0x01404793, 0x024455ef, 0x003406c6}}, Y: Field{[10]uint32{0x03f91a0f, 0x015ab995, 0x03988345, 0x038ce237, 0x01807879, 0x01927d7f, 0x00f38f21, 0x00fb7755, 0x009e55e3, 0x00212936}}},
+ {X: Field{[10]uint32{0x03fc1e9b, 0x0242f1e6, 0x030f12f8, 0x0308e4cc, 0x03fb0798, 0x023ca833, 0x0273a671, 0x02236024, 0x01f296a7, 0x0007ae98}}, Y: Field{[10]uint32{0x01dc9661, 0x01f3574b, 0x03266bc4, 0x03027b84, 0x03505da2, 0x01b12dab, 0x030a6a6b, 0x004118b7, 0x00cbe847, 0x00227ca6}}},
+ {X: Field{[10]uint32{0x015980ea, 0x02da35d0, 0x015489c9, 0x032ac69b, 0x010a2300, 0x0087b730, 0x009fe1f7, 0x00c48519, 0x00da9460, 0x0009b7fe}}, Y: Field{[10]uint32{0x00004e60, 0x03685724, 0x037139d3, 0x017e5fd6, 0x033c4a0a, 0x03ee5523, 0x0365862e, 0x02ef7f0e, 0x022155e1, 0x00360992}}},
+ {X: Field{[10]uint32{0x023fe676, 0x00ef03cc, 0x01047cee, 0x03729b89, 0x01a3116a, 0x020fa7ac, 0x035f64f2, 0x00608849, 0x0351425e, 0x0013990a}}, Y: Field{[10]uint32{0x01eafbb2, 0x01a288e2, 0x0174247a, 0x0283b49f, 0x0165b9c5, 0x030d7537, 0x011db0ab, 0x011a3125, 0x01659125, 0x003ca2df}}},
+ {X: Field{[10]uint32{0x00f448a2, 0x034b869e, 0x02b21e94, 0x0033a709, 0x03b4f370, 0x033a91da, 0x027c97b4, 0x009f6cdf, 0x035cee9a, 0x000d52bf}}, Y: Field{[10]uint32{0x0130fcdb, 0x0027218a, 0x00dd5977, 0x0345b29e, 0x0299b4c4, 0x03da9e53, 0x012d0082, 0x01e7958e, 0x03d1624b, 0x00235a41}}},
+ {X: Field{[10]uint32{0x03fbdc3d, 0x002e55a3, 0x039dcd57, 0x03b97d26, 0x01e76995, 0x002d97dd, 0x029f020c, 0x01a7fa3d, 0x00749493, 0x0014a1b4}}, Y: Field{[10]uint32{0x039703ab, 0x020779a1, 0x005e2027, 0x00fac5ac, 0x00e0a23d, 0x01f9bb80, 0x0062a452, 0x03103079, 0x02e53dd2, 0x000957bc}}},
+ {X: Field{[10]uint32{0x0268add7, 0x0357d80c, 0x0121c266, 0x02e1bf78, 0x026bddee, 0x02a24d64, 0x00c8ff91, 0x008a666b, 0x0346c86e, 0x002e12a0}}, Y: Field{[10]uint32{0x0320789f, 0x02d00efb, 0x020a3f65, 0x034f62fa, 0x0329f5c8, 0x00791965, 0x0380c878, 0x0008e386, 0x028c79f4, 0x000c45e6}}},
+ {X: Field{[10]uint32{0x0112bb94, 0x039e1cb7, 0x0067e0fd, 0x009e408b, 0x031b9dfc, 0x013f1470, 0x018b9f11, 0x02694089, 0x01e663fc, 0x00079ef5}}, Y: Field{[10]uint32{0x002c1b84, 0x01847c83, 0x00b6b927, 0x03f9b647, 0x0107acce, 0x01dfba2d, 0x0250f11e, 0x02c519f4, 0x01b40555, 0x0018a1ea}}},
+ {X: Field{[10]uint32{0x03d2bc81, 0x01acab4d, 0x038da9c9, 0x0311535a, 0x029d28ac, 0x0399cb29, 0x01cfde6b, 0x027af9e9, 0x02213728, 0x001fb9a2}}, Y: Field{[10]uint32{0x0170c83e, 0x00f6e131, 0x01dcc8a5, 0x02fadeb3, 0x0303d7dc, 0x02c93808, 0x028aeee9, 0x030f2bca, 0x006400a6, 0x000fb0d0}}},
+ {X: Field{[10]uint32{0x00ce570e, 0x0364533e, 0x0033f8d4, 0x01d59f0f, 0x02f3adef, 0x029ae9eb, 0x0107fddd, 0x00efeaa7, 0x010cf4be, 0x000a752c}}, Y: Field{[10]uint32{0x0058bf4c, 0x00e4b384, 0x031f2422, 0x00236fbd, 0x022ec79e, 0x031c1c36, 0x0103c252, 0x03d02903, 0x038596a4, 0x002da9d0}}},
+ {X: Field{[10]uint32{0x028c359e, 0x0145b5cc, 0x039c9895, 0x00436989, 0x0350218f, 0x00b0fc14, 0x012a43b4, 0x03591f8c, 0x01d95c5c, 0x001e41f1}}, Y: Field{[10]uint32{0x00d6a625, 0x007261d9, 0x005d4c8f, 0x01e163e6, 0x00268883, 0x037bab06, 0x02bca52f, 0x00a86fca, 0x01e1ec06, 0x001b196a}}},
+ {X: Field{[10]uint32{0x019d31b1, 0x0252e365, 0x030adfc9, 0x015714d0, 0x02e5bc2c, 0x031a3f3e, 0x0014fe7b, 0x02ef0cd8, 0x02aece11, 0x003310db}}, Y: Field{[10]uint32{0x029706a2, 0x032492fe, 0x02db3a50, 0x00e59b5f, 0x016b2bd5, 0x01814a61, 0x004e6089, 0x02fd9359, 0x01e7d6ff, 0x00058583}}},
+ {X: Field{[10]uint32{0x010ec1f0, 0x006d8805, 0x01bea735, 0x002c052b, 0x021b5fb3, 0x008e77e8, 0x0259d556, 0x010806b9, 0x015d278d, 0x0033c08f}}, Y: Field{[10]uint32{0x00990741, 0x00553935, 0x005749e5, 0x02dc15f5, 0x0034c473, 0x015d736d, 0x031c26e7, 0x0301e9b9, 0x0395ffce, 0x0035801c}}},
+ {X: Field{[10]uint32{0x03746a21, 0x00104979, 0x0238d71b, 0x015fa01e, 0x0112b6a2, 0x03151ed8, 0x0135b732, 0x03166f53, 0x0093f718, 0x000068a8}}, Y: Field{[10]uint32{0x00fd4c95, 0x024d51e6, 0x03919f8b, 0x02c1760f, 0x0216c0f8, 0x02491e5b, 0x02cadcc3, 0x028e6868, 0x0142652f, 0x00099d2d}}},
+ {X: Field{[10]uint32{0x02b799d7, 0x02496dfb, 0x00215fac, 0x031c1aa1, 0x02f712e4, 0x00893feb, 0x018fdff0, 0x02b145d4, 0x002004b8, 0x0014d3b5}}, Y: Field{[10]uint32{0x03d82155, 0x00204636, 0x01439c07, 0x00bf4933, 0x00fa3078, 0x01db7eba, 0x03e497f5, 0x00667ee7, 0x00523ea6, 0x0000d796}}},
+ {X: Field{[10]uint32{0x0200d08e, 0x03613052, 0x0138cf11, 0x01ace898, 0x03e9ba64, 0x03d2c115, 0x038ff188, 0x00c2b9b1, 0x00ad9e6f, 0x00234c79}}, Y: Field{[10]uint32{0x01d5feb2, 0x00e6f353, 0x02996478, 0x03352cc3, 0x03e4b0b1, 0x0112caa1, 0x01e36a48, 0x025b04e8, 0x03c19093, 0x003c36fb}}},
+ {X: Field{[10]uint32{0x012b3412, 0x0057f48b, 0x0315954c, 0x027e1adc, 0x03c41843, 0x01bfdfdc, 0x02643791, 0x01016afd, 0x00520267, 0x00205d21}}, Y: Field{[10]uint32{0x00f19bbc, 0x03cfd768, 0x02ba7cb3, 0x03f4a02f, 0x029f6f95, 0x02587d6b, 0x00093899, 0x02d42c05, 0x009b0435, 0x0004f448}}},
+ {X: Field{[10]uint32{0x0258aaa3, 0x008e11c1, 0x0212a6cc, 0x01c15fbf, 0x02458422, 0x037ce032, 0x024552be, 0x03a21401, 0x0372e604, 0x002f2a1f}}, Y: Field{[10]uint32{0x039e3d0e, 0x03a0aeb7, 0x0184b54e, 0x02355d4b, 0x03af2653, 0x01dae88f, 0x00123c62, 0x01c495cb, 0x02f528b7, 0x003b9422}}},
+ {X: Field{[10]uint32{0x03cd3fb2, 0x016460df, 0x03c52e8c, 0x01184903, 0x01d527e5, 0x01b9e32e, 0x000365cd, 0x014bdb03, 0x02a9a196, 0x000378ae}}, Y: Field{[10]uint32{0x02d38905, 0x01deb287, 0x039bd733, 0x01042a73, 0x01865739, 0x01c59cb7, 0x035f2be5, 0x00cbf532, 0x00ef466c, 0x002bad06}}},
+ {X: Field{[10]uint32{0x02acca9e, 0x0010e408, 0x01e5ac00, 0x02af1d99, 0x02556f6c, 0x001dc4d7, 0x00a0591c, 0x01e466d5, 0x01e914df, 0x001ee338}}, Y: Field{[10]uint32{0x00b40628, 0x02b96630, 0x007c2fb8, 0x02a7cff7, 0x00d06a96, 0x010ce295, 0x0100b720, 0x02b52430, 0x03f39cd8, 0x0029828f}}},
+ {X: Field{[10]uint32{0x00a50e75, 0x0089e6fb, 0x03d1b040, 0x03f69ab0, 0x034d6d44, 0x00175d85, 0x03c80f82, 0x01d10c66, 0x017913fe, 0x00335c70}}, Y: Field{[10]uint32{0x01419064, 0x02fce31c, 0x01211967, 0x00494a2b, 0x01ae3858, 0x03d8ce4a, 0x001d1a93, 0x00e3407c, 0x03bfcf34, 0x0027c79c}}},
+ {X: Field{[10]uint32{0x03ca8fe4, 0x0079151c, 0x02444f4f, 0x003845f6, 0x010619b7, 0x00205abc, 0x0236161d, 0x02370d2e, 0x002e32dc, 0x0010b2b4}}, Y: Field{[10]uint32{0x02e75568, 0x00a2a30d, 0x013c6651, 0x01fb7496, 0x0279e59d, 0x038440c6, 0x030823df, 0x0273fe21, 0x01345a25, 0x0025f2c8}}},
+ {X: Field{[10]uint32{0x018ff8c7, 0x00f00f2e, 0x021f6d47, 0x015b22e7, 0x03483317, 0x00a877ea, 0x006644a6, 0x014b18a6, 0x01304f06, 0x00262a24}}, Y: Field{[10]uint32{0x01a824e8, 0x0190003a, 0x00733988, 0x02b5ecaa, 0x00b277e0, 0x00d2b521, 0x0249b3e5, 0x01a40e72, 0x02cecc50, 0x00304c3c}}},
+ {X: Field{[10]uint32{0x038a4328, 0x00274bb7, 0x0345522c, 0x00a1af5e, 0x00d7a4a1, 0x021100ec, 0x03d39ff2, 0x018aa9ef, 0x00760847, 0x0008f117}}, Y: Field{[10]uint32{0x03303cde, 0x01e5522e, 0x0350af0d, 0x01d3fc30, 0x02d57cb2, 0x02c350f7, 0x0146dc7c, 0x01bd1f0f, 0x031795c4, 0x003d2adc}}},
+ {X: Field{[10]uint32{0x0221d856, 0x0313431a, 0x02d343a6, 0x020c4236, 0x019e6a7b, 0x02f4df0d, 0x01416f2d, 0x0313cbd9, 0x0037d584, 0x0022dc00}}, Y: Field{[10]uint32{0x0365ca35, 0x03f1dab0, 0x00c2becd, 0x03d830c9, 0x025a172c, 0x0245a7e6, 0x00e7d866, 0x0019b53a, 0x00039ed0, 0x0020dc7b}}},
+ {X: Field{[10]uint32{0x030f8a7b, 0x025f66a8, 0x00596cdb, 0x03a142ba, 0x00004f4a, 0x020fa060, 0x01d78f20, 0x01044728, 0x00a8d0fb, 0x00369859}}, Y: Field{[10]uint32{0x029a342d, 0x02e9208a, 0x0307fc7a, 0x02871e20, 0x011cc0b5, 0x00304440, 0x03caf4e1, 0x013c5e9d, 0x0063717e, 0x0003e6a1}}},
+ {X: Field{[10]uint32{0x035fd6b7, 0x00b51f7a, 0x010fa220, 0x038a7980, 0x02c45924, 0x01b6df5f, 0x029b9c20, 0x02953464, 0x0165a9d1, 0x00127cdf}}, Y: Field{[10]uint32{0x006aa51e, 0x01df79da, 0x03a94ca6, 0x0256c6fb, 0x0201e648, 0x00d03050, 0x010dbba9, 0x0098a5ef, 0x038528f6, 0x003e6e6d}}},
+ {X: Field{[10]uint32{0x036efa10, 0x03a714f8, 0x037ccb38, 0x00dcc219, 0x0312d808, 0x0286262a, 0x0256b78b, 0x01668006, 0x0088e268, 0x0021d57c}}, Y: Field{[10]uint32{0x02f7e478, 0x037dd7db, 0x029a9de5, 0x02a7cbda, 0x02434906, 0x0157e0fd, 0x01b4768f, 0x01ea2085, 0x013d1eec, 0x001759c0}}},
+ {X: Field{[10]uint32{0x0209045c, 0x03fdddf1, 0x00534069, 0x00d2849f, 0x01a4e6d1, 0x028d7820, 0x03550fc5, 0x029b761c, 0x0396b7ab, 0x000d4c85}}, Y: Field{[10]uint32{0x00a1e832, 0x004059fc, 0x028ba6fe, 0x0072d277, 0x03c5c830, 0x03c7844c, 0x017a6804, 0x00fd3bc6, 0x0343efa9, 0x0011ffc3}}},
+ {X: Field{[10]uint32{0x012559b3, 0x03a6b398, 0x0342156f, 0x03b37cac, 0x0283479f, 0x00a08ed0, 0x03ab5ea0, 0x034aef9d, 0x012b644b, 0x000eafb7}}, Y: Field{[10]uint32{0x01e32b06, 0x0216c879, 0x0008f179, 0x03e8cc39, 0x0287bbcc, 0x0078cda6, 0x01824ba1, 0x02e0604c, 0x008e6c13, 0x00109a6c}}},
+ {X: Field{[10]uint32{0x00956de8, 0x0263ff1f, 0x03f775be, 0x033249e1, 0x03c14b62, 0x038c9df5, 0x003dc530, 0x0118aaa0, 0x02a22c23, 0x0038c044}}, Y: Field{[10]uint32{0x0098da40, 0x02b4da52, 0x0368a8d2, 0x01b761a4, 0x0199d90f, 0x024f9d60, 0x01f4e0ff, 0x003a2dea, 0x03d0dbb1, 0x003431f8}}},
+ {X: Field{[10]uint32{0x033cd06b, 0x01cfd6e5, 0x03762f10, 0x01efc274, 0x03bcdf49, 0x02496440, 0x0147f6cb, 0x012d3cc3, 0x0058439c, 0x00018942}}, Y: Field{[10]uint32{0x0075328e, 0x01adc854, 0x0102ecd2, 0x00c0bf32, 0x0387e4c9, 0x02c390e0, 0x004407af, 0x01096156, 0x01e484ce, 0x000d0dfd}}},
+ {X: Field{[10]uint32{0x00f826ea, 0x00e6b5a2, 0x0209bdcb, 0x0143ec5b, 0x0366838d, 0x003a4f8f, 0x0104bc39, 0x0133e93a, 0x0085b8c9, 0x001deb51}}, Y: Field{[10]uint32{0x006001d4, 0x02e6efe0, 0x02b736b0, 0x02d5216e, 0x0334c2ec, 0x0143b0f0, 0x03c84447, 0x021e784d, 0x005a9798, 0x00136f14}}},
+ {X: Field{[10]uint32{0x02c0b7db, 0x01e4664e, 0x0066cad5, 0x033eb104, 0x003852b8, 0x02a399f9, 0x01ce3377, 0x018076e7, 0x0292e413, 0x0017734f}}, Y: Field{[10]uint32{0x00e997c9, 0x01d532e9, 0x03f85417, 0x034358d9, 0x0336996e, 0x0309e3df, 0x02760ede, 0x02d0e8c1, 0x008135ef, 0x002b3334}}},
+ {X: Field{[10]uint32{0x02ff788d, 0x0309fd72, 0x01737fc8, 0x021457d6, 0x01e65ca3, 0x02e4c614, 0x01d2e6b9, 0x00147f10, 0x023badce, 0x000e8999}}, Y: Field{[10]uint32{0x00abc2bb, 0x017e26e4, 0x00113bab, 0x02e0222a, 0x009b9db0, 0x01c9cb2d, 0x030110e0, 0x03611801, 0x02abaf01, 0x000b591f}}},
+ {X: Field{[10]uint32{0x00b1aec0, 0x02c025b9, 0x03ac4b8b, 0x00081419, 0x034e3b0f, 0x000900c7, 0x02fe9c2c, 0x0263f1c4, 0x02b951dc, 0x003d5f33}}, Y: Field{[10]uint32{0x03a1ea25, 0x037cc06d, 0x03bca9c4, 0x01b50e29, 0x03ddb2c6, 0x020be67e, 0x03514557, 0x03afb429, 0x03eb7a8a, 0x001a5824}}},
+ {X: Field{[10]uint32{0x029b4a0c, 0x022501af, 0x029b0935, 0x00e8b6ee, 0x02df47c8, 0x0123334d, 0x01bd46c9, 0x01b8502f, 0x0378bca0, 0x002a2691}}, Y: Field{[10]uint32{0x02f366cf, 0x03e7a85b, 0x030d1d23, 0x03b7567c, 0x02939d69, 0x039e079b, 0x0398e2e4, 0x0098b48a, 0x01d69d08, 0x003d0893}}},
+ {X: Field{[10]uint32{0x00b962a9, 0x00196e04, 0x01d72adf, 0x00bee8a5, 0x036a3be9, 0x03fc129b, 0x0063f4c7, 0x02091cad, 0x038184fe, 0x00191ce0}}, Y: Field{[10]uint32{0x02ce32de, 0x00dc2680, 0x010bbc97, 0x03e8c900, 0x009ba164, 0x01600134, 0x029d58dd, 0x01ba4d3f, 0x00c0d09f, 0x002f3440}}},
+ {X: Field{[10]uint32{0x02dc7774, 0x033fea8e, 0x026866c7, 0x0132bf57, 0x02f7bcaa, 0x027e1c9e, 0x00196bad, 0x0078a0b8, 0x02382126, 0x00129a0e}}, Y: Field{[10]uint32{0x014ff3b0, 0x024cde25, 0x00f202cc, 0x01c6c6e5, 0x01913af3, 0x017d03fb, 0x0337f0b1, 0x026a90e6, 0x00d0ec3d, 0x002d6ae9}}},
+ {X: Field{[10]uint32{0x035cb3c7, 0x030b96ae, 0x0296f53c, 0x011b9080, 0x0053fee0, 0x023b8585, 0x02cfd9eb, 0x0333510d, 0x016efdae, 0x00040978}}, Y: Field{[10]uint32{0x00c48f3b, 0x0051003c, 0x011c2253, 0x0360ef58, 0x030704e4, 0x023ce3dc, 0x019b8075, 0x024a8f85, 0x016b67ce, 0x003e01ae}}},
+ {X: Field{[10]uint32{0x036650d2, 0x038ab1b6, 0x000e4552, 0x02cd6821, 0x0360039c, 0x03d9ddf1, 0x022217b7, 0x014d4dbf, 0x0009675a, 0x00185276}}, Y: Field{[10]uint32{0x01a96ca9, 0x0151416c, 0x03a11681, 0x03ca78e5, 0x02c72f07, 0x0344bde1, 0x009b03fb, 0x0022a93d, 0x036c9a98, 0x00392b98}}},
+ {X: Field{[10]uint32{0x03fec47f, 0x00507530, 0x03047d8c, 0x036d3581, 0x032fff3e, 0x02ec0f74, 0x02e83274, 0x020d0953, 0x01124388, 0x0002e890}}, Y: Field{[10]uint32{0x02d5c35e, 0x0190376e, 0x0366d0aa, 0x025e7430, 0x013717e9, 0x034a3228, 0x026a18de, 0x03f374e3, 0x012329c3, 0x00229afc}}},
+ {X: Field{[10]uint32{0x0056a961, 0x001a239e, 0x00993219, 0x014252b5, 0x0035c005, 0x00e2bd54, 0x03aa2595, 0x02b1fa76, 0x00963c7c, 0x0030837c}}, Y: Field{[10]uint32{0x0245d40a, 0x0120d7ec, 0x0033bad8, 0x010aba9f, 0x00fb4f2c, 0x0296242e, 0x038dd8d6, 0x01eba616, 0x015d16cf, 0x001247a6}}},
+ {X: Field{[10]uint32{0x03af0c50, 0x01912753, 0x032a50c7, 0x022c6d32, 0x01aac9f3, 0x00f74bb0, 0x02f3dcb9, 0x0135cb67, 0x00ca4dbb, 0x001bd4f6}}, Y: Field{[10]uint32{0x027ae24a, 0x0221a1d3, 0x02e12f78, 0x030c9f2b, 0x0077bbec, 0x0219d4f0, 0x0156de24, 0x02fadc90, 0x002df449, 0x0019e128}}},
+ {X: Field{[10]uint32{0x037bdda3, 0x005dc49c, 0x006b3513, 0x003e3b2a, 0x036364ae, 0x0211d5fa, 0x008a0461, 0x023d8147, 0x00bd71a0, 0x00395f9e}}, Y: Field{[10]uint32{0x00385342, 0x025db43d, 0x00e8f116, 0x018ca3b0, 0x0231a1d2, 0x029dd553, 0x0116c82d, 0x017d995c, 0x007e8a53, 0x0028188f}}},
+ {X: Field{[10]uint32{0x03ab099a, 0x03a5f13d, 0x03fff285, 0x03869b97, 0x037853e8, 0x01f2d4e9, 0x00abd0ea, 0x025aae78, 0x0329aad4, 0x003d4bdb}}, Y: Field{[10]uint32{0x019d55a3, 0x02588115, 0x028e0b71, 0x00706629, 0x01c36151, 0x01bca657, 0x01de4b76, 0x017a062d, 0x01fc6d5c, 0x000f7df0}}},
+ {X: Field{[10]uint32{0x02fb0dc3, 0x020da9cf, 0x01fe259f, 0x02362f59, 0x02ec5cf0, 0x00cf6721, 0x0326268b, 0x01b425be, 0x01fb5c0a, 0x00369d3d}}, Y: Field{[10]uint32{0x00a62c47, 0x0281ea52, 0x03f3effe, 0x00c4d508, 0x018d0ea0, 0x00a947b7, 0x031c8164, 0x00a11df8, 0x0189de5e, 0x001f943a}}},
+ {X: Field{[10]uint32{0x0051f4ff, 0x00de9938, 0x02ed8a23, 0x00533f4f, 0x0035d144, 0x02a74b7a, 0x0341d359, 0x01485c3c, 0x02a87bd4, 0x000a8b26}}, Y: Field{[10]uint32{0x0248a1ce, 0x01b1bbe5, 0x00bf8a46, 0x00856746, 0x01496882, 0x022bb27e, 0x01fd7e5d, 0x017da280, 0x01eb9933, 0x002fe7bf}}},
+ {X: Field{[10]uint32{0x02022266, 0x02b58ca4, 0x0123b492, 0x03bc7aff, 0x037d13bc, 0x001f8b3c, 0x010da7db, 0x014c531b, 0x00b191dc, 0x000a8d10}}, Y: Field{[10]uint32{0x02ae2b40, 0x0398b4f8, 0x02fc6dd1, 0x03c8b0d3, 0x03e4c1e9, 0x021c1e51, 0x02fda24e, 0x028080bc, 0x00f5c993, 0x002f7b09}}},
+ {X: Field{[10]uint32{0x010942a2, 0x01004278, 0x0081c287, 0x03ab54f4, 0x000e0acc, 0x01551140, 0x0136e8bd, 0x00dab7eb, 0x01743d1d, 0x0028ea6f}}, Y: Field{[10]uint32{0x00794ca0, 0x02ccd3fb, 0x0016b66d, 0x0013fdd7, 0x022cb711, 0x0286d305, 0x01ab1fce, 0x039f637b, 0x02cff8ca, 0x00330cf7}}},
+ {X: Field{[10]uint32{0x00804950, 0x0254f462, 0x0170d308, 0x02b0ac23, 0x0380db7e, 0x01fd361f, 0x03dc7247, 0x03c84824, 0x008f70a2, 0x0016e0f5}}, Y: Field{[10]uint32{0x0248b545, 0x0352c510, 0x039c3030, 0x02d1fb54, 0x01982ecd, 0x0243f313, 0x01368d76, 0x019b0b84, 0x0088a10c, 0x003de301}}},
+ {X: Field{[10]uint32{0x03e9736a, 0x0035dec2, 0x02c29414, 0x0258f1bf, 0x02d901ab, 0x021c76e3, 0x039e210a, 0x01288800, 0x02a56e3e, 0x003756d1}}, Y: Field{[10]uint32{0x0021d46b, 0x011f04f5, 0x008ceae6, 0x03be1e61, 0x009e7136, 0x0334d77e, 0x0052268c, 0x0116b0d7, 0x02baebdd, 0x00366ddb}}},
+ {X: Field{[10]uint32{0x0361a6d3, 0x031b72cf, 0x00f6462c, 0x007c0de6, 0x03d1ff78, 0x00885025, 0x036bc5b2, 0x01849d88, 0x035a2548, 0x000bdd36}}, Y: Field{[10]uint32{0x03149c1c, 0x020f0254, 0x0248eca9, 0x011eb224, 0x03646471, 0x00c0536c, 0x01b868ea, 0x01b4bea4, 0x01ed256f, 0x002db58d}}},
+ {X: Field{[10]uint32{0x03ab2e09, 0x016377c8, 0x030bec50, 0x009b7f92, 0x02119bff, 0x0378722e, 0x0240b8bf, 0x024e6961, 0x00c41f7c, 0x000cab70}}, Y: Field{[10]uint32{0x0146ae3f, 0x02ec374e, 0x0229366b, 0x020ce8d6, 0x0340beed, 0x02807645, 0x017772d2, 0x02ca5f5f, 0x02487f0b, 0x0033cc5c}}},
+ {X: Field{[10]uint32{0x03c6cdce, 0x027cc061, 0x02ae936f, 0x02d6172c, 0x014e336c, 0x01d301fb, 0x02a152ed, 0x00b6a09c, 0x00a70017, 0x0013f94f}}, Y: Field{[10]uint32{0x01e3a8ce, 0x011ba620, 0x0084327e, 0x01c162e1, 0x02baf428, 0x00595e31, 0x00c29869, 0x00705887, 0x01c4bd71, 0x00207db4}}},
+ {X: Field{[10]uint32{0x03b2569f, 0x02152367, 0x018ae63f, 0x001974f9, 0x023b08dc, 0x0137fb66, 0x02f316eb, 0x028a99c0, 0x00f5577f, 0x0018064d}}, Y: Field{[10]uint32{0x00f714cc, 0x001d340c, 0x03954362, 0x0243dab3, 0x0255e196, 0x00ec7c77, 0x0396f689, 0x03f5fed7, 0x00824360, 0x001b7df6}}},
+ {X: Field{[10]uint32{0x0279d321, 0x00f03dea, 0x03129817, 0x0319e7e8, 0x03e1bec3, 0x03a7768b, 0x0092ee52, 0x0201b191, 0x03088ff4, 0x0001e769}}, Y: Field{[10]uint32{0x017f9a47, 0x02afa2c0, 0x0047ff90, 0x012ec382, 0x0344be73, 0x0348156b, 0x0167e8ab, 0x022128d4, 0x022976f2, 0x000ac7b2}}},
+ {X: Field{[10]uint32{0x01262974, 0x0227739e, 0x011867e5, 0x032360e6, 0x015b8d4f, 0x02a2fda4, 0x0208b51c, 0x00a672f0, 0x0209c39f, 0x00180ae0}}, Y: Field{[10]uint32{0x027f5555, 0x03367695, 0x035f2267, 0x0016be43, 0x00a5ed1f, 0x01e46976, 0x02c43f94, 0x032a0daa, 0x00da05d7, 0x0003e2db}}},
+ {X: Field{[10]uint32{0x020e53d1, 0x0144547f, 0x00232752, 0x001703e8, 0x010ff14c, 0x01399920, 0x02991e48, 0x0229b55c, 0x0368868a, 0x0015e93c}}, Y: Field{[10]uint32{0x023a0c6d, 0x03e95e04, 0x01a9efa1, 0x028ea8f9, 0x0353d52e, 0x03a593cb, 0x00e17869, 0x026e0cda, 0x007c5bc2, 0x00035b32}}},
+ {X: Field{[10]uint32{0x0206db2a, 0x0122de1a, 0x02b54435, 0x00f96f4c, 0x02459906, 0x02c04b35, 0x004c5ae2, 0x03c441c3, 0x00f0ae9d, 0x0013e6d2}}, Y: Field{[10]uint32{0x015ea016, 0x03b7b5f7, 0x02a157bd, 0x0086fc62, 0x02980cd6, 0x01bf90ab, 0x03563ebf, 0x031e3d9b, 0x00fe3caf, 0x003569e8}}},
+ {X: Field{[10]uint32{0x005e7375, 0x014ed7db, 0x007085a0, 0x02b4d778, 0x01e1910a, 0x022ed98f, 0x02615893, 0x00d27d11, 0x03084b11, 0x00391a94}}, Y: Field{[10]uint32{0x01183ce9, 0x029f4cb8, 0x03c479e1, 0x00afe9af, 0x02cb8c3d, 0x03c1eb38, 0x03923be9, 0x018cb7ef, 0x02889583, 0x003691b6}}},
+ {X: Field{[10]uint32{0x01c071ea, 0x022e5880, 0x0267415c, 0x0358ad82, 0x00d62f2a, 0x03249410, 0x03e64de3, 0x005878c8, 0x0366b94b, 0x000d90f5}}, Y: Field{[10]uint32{0x0316fa98, 0x03c6d6e7, 0x01a967af, 0x013e0f4d, 0x0080835d, 0x00083db5, 0x029dcffa, 0x0278176c, 0x02f11f2b, 0x003ebda6}}},
+ {X: Field{[10]uint32{0x03497dca, 0x03c6c6ef, 0x01478f6f, 0x01edfe8c, 0x00e6bea5, 0x01138177, 0x03e1b485, 0x0185486e, 0x02940c02, 0x00259da5}}, Y: Field{[10]uint32{0x03e30b03, 0x0209c0ac, 0x0293c407, 0x004b1d64, 0x038210fd, 0x0365f023, 0x033b033b, 0x02b85259, 0x02fd7d0d, 0x0013ad69}}},
+ {X: Field{[10]uint32{0x01a24d07, 0x019f9996, 0x00ef65c8, 0x029bd04d, 0x007f80fd, 0x0104438a, 0x03e0ff4b, 0x0264c626, 0x01ef2c47, 0x0000b907}}, Y: Field{[10]uint32{0x0074c313, 0x0214c772, 0x01f52015, 0x03045d10, 0x0269bde3, 0x015bfece, 0x03a1f50e, 0x022c4a8e, 0x017bb838, 0x0009a853}}},
+ {X: Field{[10]uint32{0x0003c29b, 0x00a1316b, 0x0037db7f, 0x03c2152a, 0x00db94cb, 0x007ad8f9, 0x004fbf77, 0x03f83a69, 0x001af6ea, 0x003ce765}}, Y: Field{[10]uint32{0x00bd7b73, 0x018b9ce3, 0x00183d8b, 0x00d300ec, 0x0072cd59, 0x001f812c, 0x001f8b55, 0x01344889, 0x03700dac, 0x0007ffb5}}},
+ {X: Field{[10]uint32{0x00136419, 0x01d91254, 0x03d1c595, 0x0114a005, 0x011cdac0, 0x00b64189, 0x011f8dcc, 0x02fba824, 0x01344576, 0x00242403}}, Y: Field{[10]uint32{0x00161ad6, 0x00255a92, 0x01666b0c, 0x039bacd3, 0x001457ce, 0x028acb17, 0x00444980, 0x02040b68, 0x03bb2a33, 0x001834e2}}},
+ {X: Field{[10]uint32{0x00ac2e06, 0x006944f6, 0x0109ee3e, 0x038e5ed9, 0x0244a523, 0x0074ade0, 0x0344226f, 0x03d298b9, 0x02271007, 0x000e9791}}, Y: Field{[10]uint32{0x00202449, 0x0089aeba, 0x01d90f75, 0x03f95ede, 0x010bcdfc, 0x029057cd, 0x016dee2f, 0x03f0fc09, 0x03c1074c, 0x00143c07}}},
+ {X: Field{[10]uint32{0x03e24355, 0x02db0fc4, 0x02b87a06, 0x0162a3c3, 0x02b13ac2, 0x01bdb91a, 0x025492ef, 0x0047907a, 0x0256f6d7, 0x003d9ba8}}, Y: Field{[10]uint32{0x02243841, 0x0000c1c9, 0x010b57fa, 0x0281bcff, 0x028f32a2, 0x0303db4a, 0x02c24014, 0x03a9b21f, 0x00470980, 0x003ee287}}},
+ {X: Field{[10]uint32{0x03038fa0, 0x009602f4, 0x022a85c6, 0x0216accd, 0x00c946a4, 0x031d0db4, 0x036d4ed6, 0x01b333ee, 0x012019a1, 0x0032b681}}, Y: Field{[10]uint32{0x03d32ae6, 0x03cb4841, 0x032032b5, 0x01c42bc3, 0x03421de9, 0x006b9ce4, 0x03069639, 0x010c92b1, 0x000a3480, 0x00389265}}},
+ {X: Field{[10]uint32{0x03759cf1, 0x039d7eb2, 0x037122c4, 0x004d70b6, 0x02ce2084, 0x03760c2c, 0x03d51929, 0x01ca565a, 0x035e820b, 0x00345bd6}}, Y: Field{[10]uint32{0x02448ed8, 0x038de11a, 0x0349ce61, 0x021788a1, 0x036ecdd5, 0x01781451, 0x01363807, 0x02f35f77, 0x0084cfbe, 0x001c3b6c}}},
+ {X: Field{[10]uint32{0x01f71535, 0x01444d35, 0x009a4847, 0x03275365, 0x013dc31a, 0x03199bcc, 0x02e51498, 0x02b8372d, 0x028ddc6b, 0x002ef333}}, Y: Field{[10]uint32{0x03f91eed, 0x03396b48, 0x03a6ea23, 0x01a02627, 0x01c8941f, 0x0239eefd, 0x031b4796, 0x024af949, 0x02fc63ff, 0x001369dc}}},
+ {X: Field{[10]uint32{0x014243fe, 0x001854bb, 0x032915f6, 0x03e3a0da, 0x02e7d5d2, 0x01a087ae, 0x01e940d0, 0x01d710c9, 0x00f5cd8b, 0x001457ca}}, Y: Field{[10]uint32{0x03668b47, 0x00bc7118, 0x032a24ba, 0x0209bdf6, 0x00e1855a, 0x0208a496, 0x0209f466, 0x02e3f852, 0x03ccf5d2, 0x00284c50}}},
+ {X: Field{[10]uint32{0x01233837, 0x03b61148, 0x03f79df6, 0x02d6e3f5, 0x0068d356, 0x034e049e, 0x011ed6f9, 0x0118b61a, 0x02aea78c, 0x002f4bd1}}, Y: Field{[10]uint32{0x01c4af11, 0x02f5f21e, 0x00324b92, 0x02b98aae, 0x0284ddd9, 0x035f5bf8, 0x0332f70e, 0x0200fdfa, 0x02d3f3cc, 0x0023d917}}},
+ {X: Field{[10]uint32{0x01e37dfa, 0x01f5977e, 0x0313347d, 0x034e4b83, 0x0004f8d7, 0x00046914, 0x0210b512, 0x008489a7, 0x013cc3d3, 0x00215dbc}}, Y: Field{[10]uint32{0x028b1a4f, 0x027640fd, 0x021958d1, 0x00a116d9, 0x0386ff90, 0x027bb7a2, 0x009eb8c1, 0x0384c48c, 0x00483fa0, 0x003eefc8}}},
+ {X: Field{[10]uint32{0x0309db4a, 0x02327ce0, 0x0341a23b, 0x03cb4c73, 0x01763a83, 0x03c8d87f, 0x03f262ab, 0x01391f5c, 0x02918fdf, 0x001c2f87}}, Y: Field{[10]uint32{0x028bc573, 0x00fdc210, 0x0318829f, 0x032770fb, 0x03a1897a, 0x0224a50e, 0x013fa488, 0x01bbd030, 0x0175e424, 0x0020be01}}},
+ {X: Field{[10]uint32{0x0341180f, 0x0193a452, 0x02361c80, 0x026848c4, 0x01017352, 0x028d4ebe, 0x0354a461, 0x01ad4e6f, 0x013d1d58, 0x002ee282}}, Y: Field{[10]uint32{0x03478269, 0x00d3616b, 0x0165e723, 0x01034887, 0x02287075, 0x033d779f, 0x028d66bc, 0x02894735, 0x02d78456, 0x00118383}}},
+ {X: Field{[10]uint32{0x005c2e69, 0x0128492f, 0x018606dc, 0x0211d530, 0x027b976a, 0x001c7e87, 0x03306287, 0x006533d2, 0x024f34d9, 0x001e05eb}}, Y: Field{[10]uint32{0x00d55cbc, 0x02f9774b, 0x02d7b481, 0x00303e12, 0x006afe1c, 0x013e2cd0, 0x02ed346e, 0x02c6d6f1, 0x0056c4e3, 0x00097d3b}}},
+ {X: Field{[10]uint32{0x0366abcc, 0x03fb446f, 0x009a5bcc, 0x03c49cd3, 0x03e72af5, 0x00396ed7, 0x02ed8e2a, 0x0167e9bf, 0x00dc411f, 0x002171d8}}, Y: Field{[10]uint32{0x03cb8cc4, 0x019ac9b2, 0x028ad106, 0x00399403, 0x0389a891, 0x00e99f96, 0x00f12482, 0x0271c6fc, 0x01b0b57c, 0x0024960f}}},
+ {X: Field{[10]uint32{0x015086c3, 0x0206af17, 0x0179ad4c, 0x008d1faa, 0x03d9ee71, 0x0079cdde, 0x00739e3b, 0x01d8bfcb, 0x01354d9d, 0x00083603}}, Y: Field{[10]uint32{0x02f0efe5, 0x01077dd8, 0x01cf7489, 0x01ac6c89, 0x010ef6ed, 0x03c4d46d, 0x0123b7f1, 0x0299d7a0, 0x017b8017, 0x001b8647}}},
+ {X: Field{[10]uint32{0x01ba5657, 0x0370f83f, 0x00fde086, 0x03f25c24, 0x00ec26ce, 0x004a2601, 0x036d9c8d, 0x0312c197, 0x022d43f2, 0x000cc1a4}}, Y: Field{[10]uint32{0x03c7efc4, 0x01970c04, 0x00d881b8, 0x01067e1f, 0x0186f0e9, 0x02871019, 0x039f76ef, 0x035eb1c1, 0x009fc93d, 0x00262a33}}},
+ {X: Field{[10]uint32{0x032fb001, 0x0379b1ce, 0x01fc18ac, 0x02b02c21, 0x018a1b9a, 0x02488da0, 0x00f77033, 0x01fc4910, 0x019754d3, 0x002cd71d}}, Y: Field{[10]uint32{0x03cd649d, 0x03dadd44, 0x01660a7a, 0x02d1be4f, 0x022ea789, 0x037d65a3, 0x0058ffb0, 0x02121657, 0x039069b0, 0x00001212}}},
+ {X: Field{[10]uint32{0x034e1f33, 0x03c25d51, 0x0158786e, 0x03e3a43f, 0x0205c647, 0x01648ac6, 0x009d0104, 0x030c0db3, 0x03537f8b, 0x0026f506}}, Y: Field{[10]uint32{0x030274ac, 0x0340ef2f, 0x013aec25, 0x01da3480, 0x018b8667, 0x03fce269, 0x0086bfe1, 0x03849769, 0x03f655ec, 0x001642be}}},
+ {X: Field{[10]uint32{0x001ded42, 0x023c5815, 0x0020e527, 0x00e9cd65, 0x036950d9, 0x00e38372, 0x0289703a, 0x02bbc2f3, 0x032ca9b3, 0x000a8e99}}, Y: Field{[10]uint32{0x02693d8e, 0x03cee270, 0x02a5fc6a, 0x0033e22b, 0x02c95f85, 0x02d8aeac, 0x008ebef6, 0x00e0f6e4, 0x00b613f3, 0x00130ea5}}},
+ {X: Field{[10]uint32{0x00f74d3d, 0x0250e096, 0x01bf6937, 0x017c5b71, 0x00c8db94, 0x014e01b7, 0x01f38003, 0x0253e353, 0x02f20a2d, 0x000c6e9a}}, Y: Field{[10]uint32{0x0329df5a, 0x008e3308, 0x03f4a236, 0x020b1509, 0x01fc1e6a, 0x0180d131, 0x01d915ef, 0x03ac72e9, 0x0102b290, 0x002b4677}}},
+ {X: Field{[10]uint32{0x00869720, 0x004a54af, 0x01bb05bb, 0x0147a712, 0x00587c02, 0x02fd12a6, 0x030f9b8e, 0x0053c177, 0x01bd74b0, 0x003e8866}}, Y: Field{[10]uint32{0x0163f45e, 0x00b484ec, 0x0231a66d, 0x03bac7d5, 0x03041ab6, 0x018387a6, 0x035c4838, 0x03d7d2c3, 0x017d6efd, 0x0010ca24}}},
+ {X: Field{[10]uint32{0x03e22d52, 0x011a6a62, 0x0199f30a, 0x000b8eff, 0x0108aaac, 0x024aad8f, 0x00f28476, 0x00f03d73, 0x0046c7f5, 0x00105ee4}}, Y: Field{[10]uint32{0x023b82c0, 0x0175a921, 0x008e0d49, 0x02a0ef6c, 0x007aede9, 0x005c1b80, 0x036eae69, 0x025e237f, 0x02655f30, 0x001e3057}}},
+ {X: Field{[10]uint32{0x0318bc2a, 0x0390f55b, 0x00964f33, 0x026005c5, 0x026158f4, 0x01e9a7fe, 0x00e6eca6, 0x007f6228, 0x01f247d5, 0x0015ab24}}, Y: Field{[10]uint32{0x010680c7, 0x02c699b7, 0x02740c54, 0x02b89b9e, 0x00429bee, 0x01ee0719, 0x03c518b3, 0x00692dc5, 0x015c9e1b, 0x000d46df}}},
+ {X: Field{[10]uint32{0x03215f8a, 0x001f594d, 0x00250685, 0x01c04324, 0x01e164ae, 0x002eafb2, 0x02d835aa, 0x01fbcc54, 0x02f88330, 0x002bae8c}}, Y: Field{[10]uint32{0x002c4e21, 0x038aba16, 0x0040fdcd, 0x031a9073, 0x037ce7e3, 0x0333be10, 0x03165577, 0x017cb9bf, 0x013935cf, 0x00235d1f}}},
+ {X: Field{[10]uint32{0x01db5813, 0x035a0748, 0x03e63d47, 0x03ac3936, 0x0379ee10, 0x015bb411, 0x03d6bcc2, 0x00325da4, 0x02199af0, 0x0010b1ec}}, Y: Field{[10]uint32{0x0219378f, 0x012196ec, 0x03c75c3c, 0x01747f3d, 0x02a5fd87, 0x0225610c, 0x0244a4df, 0x031f2cb3, 0x03081fb1, 0x002857ed}}},
+ {X: Field{[10]uint32{0x024e5d98, 0x02845b68, 0x01e2c36c, 0x0288270e, 0x0225e0db, 0x006f357f, 0x03fe19d0, 0x0196a222, 0x0297ecf3, 0x0010cdec}}, Y: Field{[10]uint32{0x0242b7ad, 0x01056ec8, 0x01722915, 0x022f2736, 0x0328d1ef, 0x0381b6dc, 0x00833485, 0x007b6f2f, 0x03abc654, 0x001271c8}}},
+ {X: Field{[10]uint32{0x03f857bf, 0x0066876d, 0x02f84a25, 0x00949f93, 0x00aeefbf, 0x02e12c94, 0x028af0ce, 0x024cb3a5, 0x00761481, 0x00062663}}, Y: Field{[10]uint32{0x02c97fa2, 0x03204a09, 0x01ba39b7, 0x015342fe, 0x00911330, 0x03cca274, 0x02c9ae77, 0x02110d72, 0x00856451, 0x001157af}}},
+ {X: Field{[10]uint32{0x02a49b2b, 0x02e256c1, 0x0188e69c, 0x01907995, 0x0387767b, 0x02ff62d3, 0x010516f1, 0x015ca816, 0x0320fa24, 0x001931d8}}, Y: Field{[10]uint32{0x00b9603f, 0x03fa33dd, 0x01395d39, 0x022a1e67, 0x0178366c, 0x01a097b0, 0x03ae76f8, 0x01425680, 0x02a5c479, 0x00028e68}}},
+ {X: Field{[10]uint32{0x012b0ad7, 0x034efd20, 0x004e1ebb, 0x028ceced, 0x02dea917, 0x031bc4a9, 0x03a5f2d3, 0x02e1f296, 0x0005e35e, 0x0010595d}}, Y: Field{[10]uint32{0x01ff815d, 0x02375be5, 0x034916b6, 0x0170825a, 0x034d0ed7, 0x02b732d4, 0x037fe787, 0x0114ad15, 0x01ae36f1, 0x0023885a}}},
+ {X: Field{[10]uint32{0x00391f6e, 0x01b8c370, 0x00cb68b7, 0x00440b04, 0x017bfd4a, 0x03d298c5, 0x02110c80, 0x012e245b, 0x03a3768a, 0x002a8803}}, Y: Field{[10]uint32{0x0184695b, 0x00d4d3a9, 0x02fde7fb, 0x0351a416, 0x00c49b79, 0x01f4662a, 0x02c898bd, 0x0055577f, 0x015928b2, 0x00159ef6}}},
+ {X: Field{[10]uint32{0x03131599, 0x03e6ee9d, 0x00966555, 0x035a7961, 0x03eb529b, 0x02327188, 0x003ba48c, 0x00bd52e1, 0x0328841d, 0x001ea9e0}}, Y: Field{[10]uint32{0x01f698ed, 0x0112bcda, 0x003ba1bb, 0x0118a696, 0x01327112, 0x0138bdbc, 0x01a7e7a6, 0x011e2c93, 0x0315e4b8, 0x001ad289}}},
+ {X: Field{[10]uint32{0x016969a1, 0x00d11d4e, 0x01fdfdae, 0x013d92ef, 0x0248446b, 0x01e3eeef, 0x019234fc, 0x019ffc11, 0x03bd6a27, 0x00252c69}}, Y: Field{[10]uint32{0x011cc33d, 0x03a233e6, 0x0054fdf1, 0x01e3a2e2, 0x02e77e21, 0x02e6a907, 0x029320a8, 0x02a1c774, 0x01ef2273, 0x0023cc19}}},
+ {X: Field{[10]uint32{0x0126573a, 0x036633b5, 0x0071035f, 0x01c4de8d, 0x005407df, 0x01a07830, 0x00c8cb27, 0x03afd4a5, 0x03a71bfe, 0x001ae55e}}, Y: Field{[10]uint32{0x022724a0, 0x03f6e21e, 0x037f4583, 0x003b0297, 0x0235c6df, 0x03bed424, 0x01cd4ff6, 0x0214f179, 0x008d3fc1, 0x0019f920}}},
+ {X: Field{[10]uint32{0x03717f7f, 0x029a4590, 0x01cb2b8a, 0x02da02f6, 0x03f9a6df, 0x02c7f2ca, 0x0293892a, 0x010400ef, 0x03300ea3, 0x0022c9d0}}, Y: Field{[10]uint32{0x0198db90, 0x02bebc5e, 0x00da3c99, 0x02a82727, 0x014ed141, 0x0271c4e2, 0x027f8284, 0x01620f98, 0x02bb7785, 0x00153e8a}}},
+ {X: Field{[10]uint32{0x0358db05, 0x0117899e, 0x012e75d1, 0x01c92668, 0x033b6863, 0x01eb1997, 0x01274de7, 0x008ce524, 0x039b6736, 0x0034fd93}}, Y: Field{[10]uint32{0x01a52449, 0x00a81432, 0x0310e5c8, 0x01410060, 0x009bea58, 0x02267eaa, 0x01284f43, 0x0057d051, 0x02c852bd, 0x00301845}}},
+ {X: Field{[10]uint32{0x0237ba79, 0x03ad557c, 0x00d4bc4a, 0x007a006d, 0x02870d07, 0x0243de57, 0x03b92803, 0x010ca406, 0x02f8ce0e, 0x00066249}}, Y: Field{[10]uint32{0x02b3d34e, 0x00fc81b4, 0x01d76a83, 0x03411523, 0x035d6c10, 0x00373c43, 0x027658fa, 0x001f9d78, 0x03d95b8d, 0x001d8496}}},
+ {X: Field{[10]uint32{0x0301a13f, 0x032962f3, 0x003099ad, 0x03f1be1e, 0x00ee4358, 0x03770961, 0x0346cfb6, 0x014be0e5, 0x014d5951, 0x000006ef}}, Y: Field{[10]uint32{0x038d7733, 0x01fa7f37, 0x016e0b58, 0x03f13c21, 0x03ebdc70, 0x03797af7, 0x003cdfe3, 0x0317a9c2, 0x00deccea, 0x00063d4d}}},
+ {X: Field{[10]uint32{0x01a3132a, 0x00b89d7d, 0x0398c131, 0x01fc876c, 0x03005245, 0x008089a4, 0x00b551f5, 0x0249c8df, 0x0345b263, 0x00221cdf}}, Y: Field{[10]uint32{0x00c496ed, 0x0285e778, 0x020290b2, 0x03fb256a, 0x02e3e61c, 0x006e8317, 0x01a7b222, 0x0387a12c, 0x032c2895, 0x001e6959}}},
+ {X: Field{[10]uint32{0x00cb1e83, 0x03852ff3, 0x02252004, 0x01f91b9e, 0x012d6849, 0x03f873ea, 0x00ca35e8, 0x01ddccd3, 0x018b1f27, 0x0032fcf8}}, Y: Field{[10]uint32{0x02bc3f99, 0x03d72521, 0x029a401f, 0x01c249ae, 0x007b91f7, 0x03c91d23, 0x01d242a5, 0x0115b0f2, 0x039565bd, 0x0036c030}}},
+ {X: Field{[10]uint32{0x03022f70, 0x00699071, 0x0093c40b, 0x00809c82, 0x008ab65b, 0x00aa4ea6, 0x01c88467, 0x03beb97e, 0x030cf186, 0x00201c3b}}, Y: Field{[10]uint32{0x027bd9e5, 0x02762044, 0x018caa24, 0x014e9d17, 0x00cc85c8, 0x021ff60e, 0x0024cf5a, 0x01a8151a, 0x01b04694, 0x0036a601}}},
+ {X: Field{[10]uint32{0x03f71eab, 0x021a6030, 0x03e21902, 0x02d88490, 0x035c57dc, 0x022dbf88, 0x00c50640, 0x0176efa1, 0x004b8fa4, 0x002b2be6}}, Y: Field{[10]uint32{0x00eb278e, 0x02cef44b, 0x010b5d1d, 0x0077c5f7, 0x03801b8c, 0x02eb8a41, 0x004dfb0b, 0x03e8bbc5, 0x00168259, 0x0011bd3b}}},
+ {X: Field{[10]uint32{0x03fdc965, 0x036a5c7e, 0x000994ee, 0x01494a91, 0x01e89162, 0x015f8f49, 0x01e8a32a, 0x03b3a9cd, 0x020591f9, 0x0000a24e}}, Y: Field{[10]uint32{0x03cfbb6a, 0x02c5681e, 0x012a18c3, 0x03082abc, 0x01372aa6, 0x03edf495, 0x02b5186e, 0x02c48c04, 0x014191e4, 0x001ba8a6}}},
+ {X: Field{[10]uint32{0x02be951d, 0x016d9130, 0x01b39dc0, 0x002963c4, 0x00cfccab, 0x03b44b7c, 0x0126e285, 0x032d8272, 0x023168f0, 0x001925d1}}, Y: Field{[10]uint32{0x01eafb7c, 0x0012268c, 0x03406016, 0x02a705e2, 0x03d432b5, 0x03c94271, 0x004bb219, 0x0217890d, 0x001b2fa8, 0x003a9d06}}},
+ {X: Field{[10]uint32{0x021faeef, 0x03c3a22e, 0x006e2d1b, 0x007174ea, 0x01091862, 0x0260440e, 0x014f7c20, 0x025322cb, 0x003e5133, 0x002e4e11}}, Y: Field{[10]uint32{0x0353fc85, 0x021f6bf0, 0x01be0963, 0x03226d9a, 0x00c52473, 0x017fe505, 0x0384f384, 0x02190941, 0x02a8c7d9, 0x002bd1fc}}},
+ {X: Field{[10]uint32{0x012a5320, 0x01b6b167, 0x03b8d42f, 0x02333da6, 0x0124f475, 0x01d8d1ae, 0x00fd4a78, 0x03d43a7e, 0x0245ad10, 0x002f47b8}}, Y: Field{[10]uint32{0x00039605, 0x021cd238, 0x01518af7, 0x010d92ce, 0x00134ce4, 0x013ffa4b, 0x02477ac7, 0x02235709, 0x023e069d, 0x001ddb8b}}},
+ {X: Field{[10]uint32{0x0260650f, 0x0277d0f1, 0x006a97d4, 0x00819e92, 0x036d8e13, 0x009e763e, 0x027dc054, 0x02157c5f, 0x0068805e, 0x00032dfb}}, Y: Field{[10]uint32{0x029e903c, 0x0393f608, 0x01b5a91c, 0x00e5b496, 0x01b12d73, 0x01c5497f, 0x03302eb0, 0x01040c47, 0x00b284c0, 0x003d41e4}}},
+ {X: Field{[10]uint32{0x0330cf83, 0x004846ea, 0x02a15e1c, 0x0057ef78, 0x031968c6, 0x03213369, 0x0222a1c7, 0x02ed68a7, 0x037e0aff, 0x003bc1f3}}, Y: Field{[10]uint32{0x00ef574f, 0x0310971c, 0x01979815, 0x01789616, 0x002ca556, 0x013203cb, 0x03fc2fee, 0x00c35040, 0x02c94226, 0x00263d29}}},
+ {X: Field{[10]uint32{0x027b8fc6, 0x0309ab4f, 0x027814ee, 0x01902189, 0x0113dc50, 0x0045003c, 0x00e4ca0d, 0x03316733, 0x01484d7f, 0x0013ff06}}, Y: Field{[10]uint32{0x03b75aa9, 0x013961df, 0x0266961b, 0x038e4dfb, 0x02d94b65, 0x03721fc4, 0x01ac1075, 0x00f60f2d, 0x020798ff, 0x002fa7af}}},
+ {X: Field{[10]uint32{0x01d18396, 0x035a2f18, 0x01b63b4e, 0x01acb693, 0x00fad1ad, 0x0318dc6c, 0x00df0efa, 0x03524ee3, 0x0373339e, 0x0032f754}}, Y: Field{[10]uint32{0x02bdb13f, 0x02fe86b5, 0x025fac77, 0x035f200f, 0x003784a7, 0x01c2704c, 0x0138b6ff, 0x00b51c7d, 0x0087c321, 0x00149f79}}},
+ {X: Field{[10]uint32{0x027cb5d2, 0x01efd6f1, 0x01fed65e, 0x02838c0d, 0x014e650a, 0x03800fe6, 0x03f6b065, 0x035fa76d, 0x032bd8a1, 0x003a80d6}}, Y: Field{[10]uint32{0x003761c4, 0x01918223, 0x00edddbc, 0x0258a8ec, 0x032cd57e, 0x03fa071a, 0x0372e91a, 0x03d22219, 0x03702219, 0x002bb2d0}}},
+ {X: Field{[10]uint32{0x01f8db89, 0x02a3bd66, 0x010cd99b, 0x03da407b, 0x02911648, 0x00b50ff6, 0x029dda6b, 0x00902b5b, 0x03d6c1d6, 0x00378693}}, Y: Field{[10]uint32{0x004da03e, 0x0088faa2, 0x012cd3a4, 0x02c4150b, 0x02f85f90, 0x01c78b98, 0x00a60853, 0x03fd0747, 0x00d161c0, 0x003bff25}}},
+ {X: Field{[10]uint32{0x02a076ed, 0x033d6df9, 0x037f0e58, 0x022bc03e, 0x00d75e11, 0x02f3ffaf, 0x02157878, 0x01fb5b84, 0x0141e8d8, 0x000b9910}}, Y: Field{[10]uint32{0x0334b8d2, 0x03a03ff2, 0x005b7320, 0x0037d97e, 0x02b45c24, 0x009b48b0, 0x00a70110, 0x018b61ae, 0x00ddf2ba, 0x0012aa16}}},
+ {X: Field{[10]uint32{0x01b73a33, 0x0220ecdc, 0x01c3e956, 0x01e4b49d, 0x0247ff88, 0x023cb4a3, 0x03b78ad0, 0x02e1e243, 0x006a90d6, 0x000e110e}}, Y: Field{[10]uint32{0x0365cd18, 0x03f51d2c, 0x0157c714, 0x015fc5f3, 0x01ff2845, 0x032a3ba2, 0x036bde12, 0x012701d7, 0x03121a81, 0x003dfd77}}},
+ {X: Field{[10]uint32{0x00358e42, 0x03a5bc1d, 0x03ae8ff7, 0x0382eacb, 0x01bde185, 0x02ba080f, 0x0218cd89, 0x034d88ad, 0x03321b91, 0x00387fa6}}, Y: Field{[10]uint32{0x01f3e1c4, 0x00ded2b7, 0x021d5f85, 0x0192b2ae, 0x02cef4f0, 0x00afca9d, 0x01eff10f, 0x004cba89, 0x02901797, 0x0031643f}}},
+ {X: Field{[10]uint32{0x027a3c0b, 0x01c9f12c, 0x00a499cc, 0x03b68782, 0x00aefbbd, 0x016262bc, 0x020144d4, 0x036086da, 0x00da2f57, 0x00158280}}, Y: Field{[10]uint32{0x0395e208, 0x00044ab9, 0x02eaaa8b, 0x018d36ef, 0x025db86d, 0x020ec54b, 0x00b79ff9, 0x004ddcef, 0x024e39db, 0x001921d3}}},
+ {X: Field{[10]uint32{0x0379094d, 0x02ecbcbc, 0x011dce5c, 0x0076f433, 0x001afe9b, 0x015b8a05, 0x03164248, 0x0378ab06, 0x03a77ec8, 0x0027ccfe}}, Y: Field{[10]uint32{0x02fe94b0, 0x02c2a709, 0x0384892f, 0x0366fff8, 0x01d972ab, 0x0177b358, 0x0034f19b, 0x038a9c98, 0x00d81838, 0x0025f2e3}}},
+ {X: Field{[10]uint32{0x02d7a1b9, 0x01411f9c, 0x01226da7, 0x014f81a8, 0x01e46ee2, 0x02833ec5, 0x039da042, 0x01d44923, 0x03a82405, 0x0026208b}}, Y: Field{[10]uint32{0x02b19285, 0x00f7c53f, 0x00cc2a55, 0x013339f1, 0x03db975d, 0x03e5643c, 0x01475611, 0x0152b369, 0x023507bc, 0x000fa7ba}}},
+ {X: Field{[10]uint32{0x001dbd88, 0x021a81ab, 0x0307cc40, 0x0179f885, 0x03bc7287, 0x00bc3e12, 0x01883273, 0x01c9a1ab, 0x01ac4b75, 0x002e0534}}, Y: Field{[10]uint32{0x00f18a98, 0x0114a640, 0x01c36cf1, 0x03fc635a, 0x00c03462, 0x0129ee2a, 0x01b8ab3c, 0x02848900, 0x00883749, 0x002d8d91}}},
+ {X: Field{[10]uint32{0x01043e97, 0x00f068af, 0x00cd8623, 0x010a170a, 0x03b39cf8, 0x03b677f3, 0x039f7b7e, 0x0044f334, 0x00c41e42, 0x00091921}}, Y: Field{[10]uint32{0x039552d3, 0x01fd743a, 0x00502387, 0x03ad1294, 0x0280f431, 0x0342dd79, 0x01d36f79, 0x02f76010, 0x01b02e31, 0x003cd409}}},
+ {X: Field{[10]uint32{0x0351db91, 0x02bee63f, 0x0358e847, 0x00902474, 0x03bbe8c5, 0x00a13930, 0x03fff0e4, 0x02cbb361, 0x03657b41, 0x0027ccc0}}, Y: Field{[10]uint32{0x02d5e70d, 0x03d0cddc, 0x03dad317, 0x0305d584, 0x01adf519, 0x013df339, 0x0176a43d, 0x0221c378, 0x03cb221c, 0x0012e69e}}},
+ {X: Field{[10]uint32{0x01529d25, 0x02e6f2a7, 0x0161c225, 0x01452c58, 0x02b0e719, 0x03d69370, 0x035623a8, 0x010cf017, 0x029b3c75, 0x0030b9e3}}, Y: Field{[10]uint32{0x039079bb, 0x02228f2a, 0x001b9505, 0x00ab5891, 0x03e79436, 0x02c928b8, 0x0387b209, 0x01db2b18, 0x00f19383, 0x00079d72}}},
+ {X: Field{[10]uint32{0x03695391, 0x0179aea9, 0x03f867ce, 0x00340a41, 0x022125c4, 0x01522bab, 0x01c9636b, 0x006df215, 0x02c4b6e8, 0x00224d03}}, Y: Field{[10]uint32{0x012c72c6, 0x030fa8de, 0x00671575, 0x02755492, 0x002b2a9c, 0x00f8af04, 0x01cc2c10, 0x01e5b77c, 0x014e263e, 0x003dce6a}}},
+ {X: Field{[10]uint32{0x02629d22, 0x00aef8b5, 0x022daa7e, 0x00f63f63, 0x035d66a9, 0x034e29b0, 0x00facd48, 0x00f3081e, 0x0315f144, 0x0024813f}}, Y: Field{[10]uint32{0x0159c019, 0x00098e9d, 0x03253be1, 0x015609c9, 0x00131205, 0x00a4ffcf, 0x005020ec, 0x0143a588, 0x0075456b, 0x000ae77a}}},
+ {X: Field{[10]uint32{0x03ff04d6, 0x031257ba, 0x0284d7ab, 0x03929ef5, 0x0261fad9, 0x00c97d77, 0x02b518dc, 0x00bf5f39, 0x02104112, 0x003c55b6}}, Y: Field{[10]uint32{0x01b631d4, 0x011a8380, 0x0170376e, 0x0135ce7d, 0x017f2c40, 0x000c6976, 0x03aa78d2, 0x02b7fb72, 0x00abf4f2, 0x0031cca5}}},
+ {X: Field{[10]uint32{0x0280fa75, 0x01f6808c, 0x022659fa, 0x01549941, 0x022c379a, 0x001430d8, 0x00998616, 0x0104e84c, 0x017837d6, 0x001dc68b}}, Y: Field{[10]uint32{0x014c9aca, 0x0002c997, 0x030f66b6, 0x001356f1, 0x03e42703, 0x01b23746, 0x03ef0b0f, 0x007d6e0a, 0x039f5cfe, 0x0022daf0}}},
+ {X: Field{[10]uint32{0x01a18f69, 0x0048d9a1, 0x004018e5, 0x003ac730, 0x01aec29f, 0x01039473, 0x03b52b1f, 0x00b167d8, 0x00e036bb, 0x00053356}}, Y: Field{[10]uint32{0x005e2006, 0x00323667, 0x0372ef27, 0x0279d1ac, 0x03ea15b1, 0x027a93a3, 0x00c72623, 0x011905d1, 0x00fded35, 0x001e7095}}},
+ {X: Field{[10]uint32{0x028633f1, 0x03fc9ec6, 0x0343c22b, 0x03254ada, 0x02cd539c, 0x024299f7, 0x000bff13, 0x0001c960, 0x00770106, 0x00397d50}}, Y: Field{[10]uint32{0x01666367, 0x02c80a23, 0x00b5f4c3, 0x02a6c3d5, 0x0280274d, 0x026be281, 0x038e691f, 0x021b1d60, 0x02c39baa, 0x0035b871}}},
+ {X: Field{[10]uint32{0x03429197, 0x03abe2b9, 0x003d75b8, 0x012cf4df, 0x03679134, 0x025a4f64, 0x03d14ba7, 0x0080dfef, 0x03429c07, 0x002c3aab}}, Y: Field{[10]uint32{0x037af26d, 0x0145c5a6, 0x00341510, 0x0209a8bc, 0x00bc2373, 0x000805c4, 0x0124d9bd, 0x006d953c, 0x021e4a17, 0x00035c99}}},
+ {X: Field{[10]uint32{0x004d67c2, 0x03847998, 0x00e883c2, 0x00bb3d8b, 0x005380f9, 0x021393a8, 0x01573832, 0x036bb4d6, 0x030b044e, 0x003808b5}}, Y: Field{[10]uint32{0x01ab4143, 0x00ac4724, 0x01c7152d, 0x026cb0f7, 0x0207aed8, 0x0054fa70, 0x015228a3, 0x03b43451, 0x01d43ba0, 0x00108f15}}},
+ {X: Field{[10]uint32{0x03c5ab5f, 0x02999692, 0x00651349, 0x036a7976, 0x03af1a3e, 0x02525446, 0x0270f07b, 0x02abc996, 0x033eb2ea, 0x0024a8b5}}, Y: Field{[10]uint32{0x000fa973, 0x01a04878, 0x0004992d, 0x00f16b0d, 0x0105f170, 0x00e8c98c, 0x0089fff5, 0x03495268, 0x00194794, 0x001124b5}}},
+ {X: Field{[10]uint32{0x01b9cb30, 0x008d6a63, 0x0003ec96, 0x00b8fb98, 0x03b12f10, 0x01ea73ba, 0x035ac444, 0x002a733c, 0x02860de5, 0x0010d025}}, Y: Field{[10]uint32{0x0210bba9, 0x00b37713, 0x02cb037d, 0x0261fcc5, 0x03c8e1e8, 0x03671b22, 0x00e38adb, 0x00405e39, 0x0040952e, 0x000bde04}}},
+ {X: Field{[10]uint32{0x0394cd12, 0x0282b788, 0x024e1aaa, 0x010ce222, 0x02945426, 0x01cd7713, 0x003aa5ad, 0x03e3506e, 0x011b0643, 0x0034d277}}, Y: Field{[10]uint32{0x033249a5, 0x02b7b390, 0x01bc6072, 0x015fb38d, 0x01cf0822, 0x02803bfa, 0x01c71c9e, 0x02dab0a5, 0x00571da2, 0x0019fcbc}}},
+ {X: Field{[10]uint32{0x02dd10e6, 0x004de059, 0x023d9c68, 0x02763e0c, 0x03babad3, 0x01cb6339, 0x036834d2, 0x01faecd7, 0x02957fb8, 0x0026a426}}, Y: Field{[10]uint32{0x02ddbca1, 0x02195ca8, 0x03cec863, 0x0367dc24, 0x01c12f16, 0x028bd800, 0x02248352, 0x0068a1fd, 0x011a3277, 0x00338fab}}},
+ {X: Field{[10]uint32{0x0007fa0b, 0x02f33c2b, 0x01452a67, 0x01c44853, 0x031d77f9, 0x01a1ad7e, 0x03be25d3, 0x00a99268, 0x0218df2a, 0x003ce2c7}}, Y: Field{[10]uint32{0x01e65ea6, 0x019c7bdc, 0x039d4591, 0x03631223, 0x03419a20, 0x03029188, 0x011ced59, 0x02c806e8, 0x029a7f71, 0x00001727}}},
+ {X: Field{[10]uint32{0x01535a67, 0x0381b20c, 0x039a6a86, 0x021304ad, 0x027b9097, 0x009d8bb4, 0x012738bc, 0x0342577d, 0x03ca26b8, 0x00108d83}}, Y: Field{[10]uint32{0x028345e4, 0x03064491, 0x02f665de, 0x030595fd, 0x03db93ae, 0x02f77114, 0x008bc432, 0x03000efa, 0x00e5e43e, 0x001adbd3}}},
+ {X: Field{[10]uint32{0x003f4a1e, 0x00130d8c, 0x02a94534, 0x03016800, 0x01b87325, 0x00c8ddec, 0x03993eaa, 0x038ee665, 0x018da7c5, 0x0038f5c6}}, Y: Field{[10]uint32{0x0053ef4d, 0x004de048, 0x0265f5c8, 0x033cc817, 0x00a05f19, 0x017eaff9, 0x0342be83, 0x0052337d, 0x0218ece6, 0x001c90dc}}},
+ {X: Field{[10]uint32{0x007cb59b, 0x02f1b65a, 0x01b480d6, 0x02d6f5a3, 0x0202f93d, 0x006454a7, 0x014f6258, 0x004441ad, 0x0145a830, 0x000e504a}}, Y: Field{[10]uint32{0x0250f08d, 0x009941bc, 0x01d9fd28, 0x02028405, 0x00e08b0a, 0x002a562d, 0x03057844, 0x030c6462, 0x022c60f5, 0x002e36e0}}},
+ {X: Field{[10]uint32{0x01241fc2, 0x00b025f3, 0x014f421d, 0x0053552b, 0x02d93dc9, 0x0364da33, 0x03857c7e, 0x03a639da, 0x01f77e0e, 0x0001349d}}, Y: Field{[10]uint32{0x039d7473, 0x03922ae8, 0x02f05277, 0x03a24330, 0x03935448, 0x0254aac4, 0x019d361f, 0x00a447d8, 0x03d49b50, 0x003b2e00}}},
+ {X: Field{[10]uint32{0x029556ce, 0x00fe01e1, 0x01e03c01, 0x0114f22a, 0x010160b1, 0x01667b56, 0x02fcd5b6, 0x0272f68f, 0x0076c1db, 0x000a4d92}}, Y: Field{[10]uint32{0x023f6ede, 0x00c6443c, 0x0186c2dc, 0x01a9df7c, 0x0243ffb5, 0x016507df, 0x03562379, 0x02543213, 0x02f4cc44, 0x000af6d2}}},
+ {X: Field{[10]uint32{0x00878034, 0x003b9b79, 0x01e55d38, 0x0107d2c8, 0x036febcf, 0x00ee84cc, 0x003ef10d, 0x0337deae, 0x00a963dc, 0x001d4c7d}}, Y: Field{[10]uint32{0x03a36ae8, 0x0100d286, 0x0055e9c4, 0x02ec021f, 0x01e1dcb1, 0x03589a6c, 0x01628ca2, 0x01af087a, 0x029f91d5, 0x0011d4f6}}},
+ {X: Field{[10]uint32{0x00286e08, 0x02514317, 0x02777a3d, 0x00a16f05, 0x016050ca, 0x02f7e2b0, 0x00dce7a4, 0x03fb2910, 0x02263d12, 0x002099b5}}, Y: Field{[10]uint32{0x03e2328b, 0x0177cb2b, 0x00877545, 0x03897369, 0x0096d908, 0x0267d8cf, 0x01e7e363, 0x013ad9a9, 0x02bffb8a, 0x0009403c}}},
+ {X: Field{[10]uint32{0x03c589e9, 0x02a1b452, 0x023d69ea, 0x02a9672d, 0x036d5e62, 0x010e27e1, 0x039b26e8, 0x027c5630, 0x00014f33, 0x00199200}}, Y: Field{[10]uint32{0x02d92e2a, 0x01c05b12, 0x002f596c, 0x03076a29, 0x01f145ff, 0x01d6b0c6, 0x00785263, 0x0168de7c, 0x033fe3eb, 0x00281a66}}},
+ {X: Field{[10]uint32{0x00c70d49, 0x01dead93, 0x0113486b, 0x02e387d1, 0x03f641e2, 0x01b224d0, 0x01921b5e, 0x003ee981, 0x00858b9c, 0x003e3bf3}}, Y: Field{[10]uint32{0x00a9d607, 0x00761d54, 0x00834f8b, 0x0389e49e, 0x005f4de2, 0x00d7668f, 0x01a0ae30, 0x03c366bd, 0x002f7086, 0x002ea5c8}}},
+ {X: Field{[10]uint32{0x00992540, 0x010b8267, 0x02e736c5, 0x02c07638, 0x016f2485, 0x00eafecf, 0x02c627c9, 0x00928ec7, 0x027d2543, 0x00297048}}, Y: Field{[10]uint32{0x02ecc7cc, 0x005b6f21, 0x03da5a1d, 0x01173e5d, 0x0264cfef, 0x00e29fde, 0x019bed7f, 0x00eed5b6, 0x01b48a16, 0x00324627}}},
+ {X: Field{[10]uint32{0x038bbaf3, 0x01418182, 0x018938e0, 0x00024983, 0x016c85bb, 0x01c0b7b1, 0x03b655d7, 0x014f7c3e, 0x0219a5b2, 0x0009c6c9}}, Y: Field{[10]uint32{0x02cd2ce5, 0x0326924f, 0x03bd8d86, 0x039756bc, 0x0172bca7, 0x02af9564, 0x01bd1746, 0x023c9f73, 0x03fc22cb, 0x0016333c}}},
+ {X: Field{[10]uint32{0x0170ae16, 0x03077f41, 0x0036ad90, 0x00c24b2b, 0x021202ba, 0x01c8753c, 0x001800ce, 0x025d0436, 0x002b20c7, 0x0032784e}}, Y: Field{[10]uint32{0x0231e5b2, 0x0084ee04, 0x003f690d, 0x03ec3e69, 0x016f7a0d, 0x035e65d2, 0x012f7070, 0x033a80ea, 0x00ab2a47, 0x001fac7f}}},
+ {X: Field{[10]uint32{0x000309f2, 0x00250780, 0x03decb1e, 0x01aa2f51, 0x0145897e, 0x00ad2251, 0x018cb751, 0x00a81075, 0x03256523, 0x000015d2}}, Y: Field{[10]uint32{0x024615a9, 0x02cebe3f, 0x03b72038, 0x03eb0ad7, 0x03474db8, 0x02a72774, 0x03bf2cc6, 0x01d2fe4f, 0x02a9567d, 0x002efee1}}},
+ {X: Field{[10]uint32{0x03046c38, 0x02354218, 0x012b4a98, 0x03b1a54f, 0x021135e7, 0x037fdb15, 0x0120e004, 0x017b692d, 0x02aca630, 0x0027bfa1}}, Y: Field{[10]uint32{0x02e9af70, 0x02b60c6a, 0x02e42551, 0x01e646a6, 0x027afa4f, 0x030ed362, 0x03cbe67e, 0x002062bd, 0x029132cb, 0x0013e4a8}}},
+ {X: Field{[10]uint32{0x0013f254, 0x028b72f6, 0x0328413a, 0x03e8cf61, 0x02df26ca, 0x0024639a, 0x00bf4c3d, 0x03e85cdd, 0x00a0ff76, 0x0020ba92}}, Y: Field{[10]uint32{0x032ac9f2, 0x021ac76f, 0x038e4a70, 0x03589b77, 0x0049b4c2, 0x005ea254, 0x01e1ca14, 0x0156a8e7, 0x01399bb5, 0x001a80a5}}},
+ {X: Field{[10]uint32{0x01d2baaa, 0x0379d56f, 0x01f4f5fb, 0x03af78ca, 0x03e3af2f, 0x02982b7e, 0x0352a24b, 0x02c1b0c4, 0x003e817b, 0x0030a252}}, Y: Field{[10]uint32{0x00780a53, 0x00e87387, 0x005c04b1, 0x017b065a, 0x039c4994, 0x03fad657, 0x036854a1, 0x03b3bd8a, 0x010d8b4a, 0x000edfba}}},
+ {X: Field{[10]uint32{0x02e12cc4, 0x01d02d25, 0x0030001c, 0x01835e2a, 0x02016986, 0x02c161ed, 0x028deb31, 0x003563a9, 0x02cbb558, 0x001af791}}, Y: Field{[10]uint32{0x01293292, 0x01baccba, 0x02d91e09, 0x0173450b, 0x020a41cc, 0x031e741d, 0x014ce750, 0x0059a922, 0x02a7c1cd, 0x000c6229}}},
+ {X: Field{[10]uint32{0x01827cf4, 0x026b07d9, 0x00bdf451, 0x023e819b, 0x01017673, 0x01bf5d5c, 0x030a11d6, 0x0185795f, 0x03ae2844, 0x003474a8}}, Y: Field{[10]uint32{0x03f603db, 0x018c4899, 0x02ee70f9, 0x00d971f6, 0x038271f9, 0x014558ba, 0x03697d7c, 0x03065a2d, 0x03f70c01, 0x001f033f}}},
+ {X: Field{[10]uint32{0x0227370a, 0x0057b5ee, 0x00be8f65, 0x02233ea8, 0x00e276b0, 0x02afe697, 0x0151c852, 0x01555ced, 0x00874d19, 0x002dd303}}, Y: Field{[10]uint32{0x01a662ab, 0x003c7dd1, 0x031b551e, 0x01784535, 0x026f0c32, 0x0313b630, 0x01e307be, 0x015c7bf9, 0x030e380c, 0x00003c32}}},
+ {X: Field{[10]uint32{0x01015874, 0x0109827e, 0x0298f47d, 0x01deebb8, 0x00849500, 0x00c5f846, 0x03c30412, 0x01b0fe85, 0x039a9f12, 0x002a69c6}}, Y: Field{[10]uint32{0x002e0586, 0x0130a9a9, 0x020f08f3, 0x01fd5448, 0x03f1b113, 0x018d33b3, 0x024be1df, 0x03c32dfe, 0x03fdb31b, 0x003017cf}}},
+ {X: Field{[10]uint32{0x00dbc68c, 0x0089d2a0, 0x01c259b0, 0x03e8fe88, 0x032b1b99, 0x02cfe08e, 0x03514162, 0x007c9f76, 0x01530a16, 0x0035b784}}, Y: Field{[10]uint32{0x0059764a, 0x03202f6f, 0x02215348, 0x018539d9, 0x00714fab, 0x02b2f7bf, 0x0015d259, 0x021697bb, 0x00636597, 0x001b1882}}},
+ {X: Field{[10]uint32{0x036b73f1, 0x024a9d1d, 0x016df112, 0x00d80a9e, 0x0273a7dc, 0x016521fe, 0x038c22f3, 0x03297147, 0x01bc3acd, 0x00372a87}}, Y: Field{[10]uint32{0x00c85159, 0x0312a3c3, 0x035147c8, 0x026a5631, 0x01b4b4d4, 0x005c545e, 0x033719b0, 0x0181ed20, 0x01fcc22c, 0x0037104c}}},
+ {X: Field{[10]uint32{0x0005ab6c, 0x01a89100, 0x01d21220, 0x00025526, 0x015f3a13, 0x01dc2535, 0x03aa93c6, 0x02f84c70, 0x03a000c4, 0x0004d54d}}, Y: Field{[10]uint32{0x00fb0f69, 0x00bc1159, 0x0333048c, 0x033f8d20, 0x0308f3eb, 0x03548dc2, 0x01f0d1dd, 0x037d9ccd, 0x031fd2d3, 0x001fbda7}}},
+ {X: Field{[10]uint32{0x01de93ac, 0x03fa760e, 0x0004afb3, 0x03957a7a, 0x02751dd6, 0x00ff666b, 0x01572bbe, 0x018b9933, 0x0017c232, 0x000a3c76}}, Y: Field{[10]uint32{0x01e2cb7e, 0x00a6d20e, 0x01cb0970, 0x022f5079, 0x008f5dfe, 0x01f20d6b, 0x02e0e896, 0x00f690b6, 0x0061987e, 0x000093d6}}},
+ {X: Field{[10]uint32{0x00294289, 0x03384d51, 0x001e25f8, 0x021e6b59, 0x03e0779b, 0x002040b7, 0x0331155c, 0x02dfee3a, 0x03836e8f, 0x003df13b}}, Y: Field{[10]uint32{0x036bce2c, 0x026593c7, 0x020d1362, 0x008da55e, 0x0216470d, 0x01bae5a0, 0x0150f091, 0x02588758, 0x0381db33, 0x0001fe69}}},
+ {X: Field{[10]uint32{0x0228b3e6, 0x02a3d986, 0x03aeda8d, 0x0061444b, 0x00ddc8d0, 0x0169cd75, 0x0366f7e2, 0x026cd462, 0x025e1ddc, 0x003c7d6b}}, Y: Field{[10]uint32{0x01ad4288, 0x036777ee, 0x03cb41c6, 0x0218fb6d, 0x035c5c34, 0x013f9ea3, 0x024a8df2, 0x01360142, 0x012c9792, 0x00276ffc}}},
+ {X: Field{[10]uint32{0x008b654f, 0x03ef5cc0, 0x0027dc2a, 0x0287ad96, 0x01257c10, 0x015e2d8e, 0x020dbc74, 0x033a7072, 0x0173d170, 0x00257e0c}}, Y: Field{[10]uint32{0x03412487, 0x03472f00, 0x035b8b75, 0x00edefb8, 0x017d5ab8, 0x01a4628c, 0x03c3c91c, 0x012a2104, 0x02bc0829, 0x0018ea0f}}},
+ {X: Field{[10]uint32{0x023ff750, 0x020f025a, 0x03a7df8c, 0x00d646f8, 0x03964749, 0x01f58154, 0x008c8e37, 0x017847ae, 0x025c9f09, 0x003d2b69}}, Y: Field{[10]uint32{0x01861ed3, 0x0146972b, 0x0178d3ac, 0x01d86c37, 0x012ede16, 0x036f3129, 0x00bc87c3, 0x0116cb9b, 0x0328a385, 0x0039da0f}}},
+ {X: Field{[10]uint32{0x019e5fd2, 0x039eb90a, 0x00fd03af, 0x015b64e5, 0x0040b827, 0x0371ef09, 0x03bcd591, 0x036cec6d, 0x0096f714, 0x00106beb}}, Y: Field{[10]uint32{0x0099fedc, 0x03a691c1, 0x02f20474, 0x0001769e, 0x0061c52d, 0x03195291, 0x02e98aea, 0x03fc4909, 0x006a3292, 0x00270ba7}}},
+ {X: Field{[10]uint32{0x00487405, 0x02a85bba, 0x03ffd0cc, 0x03f710bc, 0x01e1b8df, 0x0328d7c3, 0x0141fe9c, 0x00726d86, 0x031b2cb8, 0x000dfcc2}}, Y: Field{[10]uint32{0x00b88a0f, 0x00755363, 0x022bb61b, 0x00f29326, 0x018086bb, 0x0021ad92, 0x03dd08e1, 0x00754767, 0x0285e340, 0x0024afde}}},
+ {X: Field{[10]uint32{0x004fb3ce, 0x0181c596, 0x0205b9d7, 0x02651530, 0x03605a21, 0x0338323a, 0x01312022, 0x01faa885, 0x0166646e, 0x000bd5dc}}, Y: Field{[10]uint32{0x03d5f446, 0x019f7fc0, 0x00ee0985, 0x036bb589, 0x01af32e8, 0x03412e5a, 0x020dc684, 0x033ab56b, 0x026fe43d, 0x003c35cc}}},
+ {X: Field{[10]uint32{0x00b5150a, 0x01f96e99, 0x03e7dfd5, 0x03fc2fe7, 0x003c2e24, 0x02bff6fe, 0x03a0af94, 0x0144ad7a, 0x038092c5, 0x0022aef1}}, Y: Field{[10]uint32{0x02896b75, 0x0059f5fd, 0x0232791a, 0x03b12454, 0x010bb87d, 0x03fb33db, 0x015b974f, 0x03066a92, 0x018f0c2e, 0x00163d66}}},
+ {X: Field{[10]uint32{0x0147571c, 0x03741970, 0x00aed219, 0x03d70a04, 0x00f6da7c, 0x01f95f3f, 0x0073fe40, 0x01dacc9f, 0x028fa013, 0x003906b3}}, Y: Field{[10]uint32{0x036844a2, 0x02a52fdd, 0x027a37d8, 0x01146584, 0x01715d45, 0x01cbe639, 0x02d04592, 0x01c530c8, 0x02da3c2a, 0x002d642a}}},
+ {X: Field{[10]uint32{0x010f1d88, 0x00533662, 0x03b5abe7, 0x03f2767a, 0x017c0c84, 0x00491e27, 0x0180f7f4, 0x0157bb77, 0x00778b63, 0x000c0326}}, Y: Field{[10]uint32{0x039c9002, 0x017a4ef8, 0x0138520f, 0x01b20d37, 0x0068c507, 0x03869ee0, 0x00f5c7a4, 0x021cc432, 0x0262c571, 0x0036b0ae}}},
+ {X: Field{[10]uint32{0x02e24c61, 0x0205c1c4, 0x01b5c876, 0x008c9b28, 0x03dcdb66, 0x01e1db0f, 0x02072c1f, 0x003e1096, 0x01d219d4, 0x001a78ce}}, Y: Field{[10]uint32{0x00babc50, 0x002e1b4e, 0x005a1bad, 0x02024dd0, 0x014cd472, 0x02d4d648, 0x017e8499, 0x011c0085, 0x015059a4, 0x002350e4}}},
+ {X: Field{[10]uint32{0x03bdb909, 0x03752132, 0x0346da2f, 0x027d47f1, 0x00cddd77, 0x007eaded, 0x033ccf64, 0x02a67e2a, 0x03df8e47, 0x00395924}}, Y: Field{[10]uint32{0x03f5ee59, 0x012728f8, 0x01145b6e, 0x0275d630, 0x01974531, 0x0107062d, 0x0006036d, 0x0053fb42, 0x020a559e, 0x001a36e8}}},
+ {X: Field{[10]uint32{0x03f50587, 0x0134e379, 0x01c611a3, 0x03795d36, 0x00f76532, 0x01b803ac, 0x01c11e58, 0x0144734e, 0x00578998, 0x000dea47}}, Y: Field{[10]uint32{0x03145f18, 0x007710ec, 0x0381ee5d, 0x0042ae74, 0x01feac27, 0x00276a25, 0x01975dc0, 0x022891cd, 0x00af0d2d, 0x0038e862}}},
+ {X: Field{[10]uint32{0x02e88c1f, 0x0149d0b7, 0x0124a86c, 0x01bd9793, 0x02622401, 0x02535e0e, 0x00629c71, 0x018b844b, 0x01fb5cc2, 0x00317c16}}, Y: Field{[10]uint32{0x038c890a, 0x0155e3ec, 0x00623ab1, 0x00147be8, 0x018c0907, 0x0242d1b5, 0x037792d5, 0x02a56945, 0x03521a96, 0x0007216f}}},
+ {X: Field{[10]uint32{0x038716a1, 0x01e24926, 0x01827626, 0x018fca11, 0x03c6323c, 0x021006b3, 0x018c59d7, 0x033ac68a, 0x02ccd605, 0x00159bb7}}, Y: Field{[10]uint32{0x0244cc90, 0x0018b516, 0x010a15ad, 0x02bf0080, 0x038c40b3, 0x00b4ccbf, 0x01f85b93, 0x01bc81e2, 0x03735adf, 0x003b8344}}},
+ {X: Field{[10]uint32{0x032c7c7b, 0x027337b6, 0x034c8db6, 0x038b0fae, 0x023e6cf4, 0x0332d190, 0x012e33db, 0x013e1c01, 0x0033c6ef, 0x000c9f9c}}, Y: Field{[10]uint32{0x03e8db36, 0x0385ba54, 0x012634aa, 0x00e7def6, 0x00122662, 0x0026bac7, 0x023e2667, 0x03ca6d2a, 0x012b2be0, 0x003f1242}}},
+ {X: Field{[10]uint32{0x03778024, 0x039c0265, 0x01e1a1ea, 0x038a317d, 0x0284ef5a, 0x029b2bfd, 0x0329704e, 0x02b21957, 0x03693ac0, 0x0026269f}}, Y: Field{[10]uint32{0x00dadfd0, 0x01ed90a0, 0x0292bd1b, 0x035cec2c, 0x00e8eb1f, 0x02b3fa99, 0x03b5bd44, 0x011639d2, 0x027b3396, 0x0015cf44}}},
+ {X: Field{[10]uint32{0x0330fc94, 0x00b31842, 0x019769c2, 0x03e92999, 0x037ce313, 0x013d2695, 0x01cec4b7, 0x01fd53b4, 0x032f14f2, 0x002729d9}}, Y: Field{[10]uint32{0x0104e4a1, 0x01b283ce, 0x011dcd2d, 0x0013bbb0, 0x006ab141, 0x00b7e34c, 0x0003f818, 0x00a928c2, 0x00d731d5, 0x003e4831}}},
+ {X: Field{[10]uint32{0x0047f5f5, 0x0155579e, 0x030cde1d, 0x0143b4bb, 0x02060978, 0x01f89c86, 0x00316871, 0x03a38656, 0x0245654f, 0x0036c401}}, Y: Field{[10]uint32{0x01056567, 0x02064a0c, 0x0014c962, 0x033b9d14, 0x02619287, 0x03ddb22d, 0x03cdf895, 0x003b3cd3, 0x02cea9c9, 0x000acb0f}}},
+ {X: Field{[10]uint32{0x013295a9, 0x01340335, 0x01c07bb9, 0x03e9949a, 0x02418a34, 0x00effc53, 0x02110a8f, 0x00ed0979, 0x009e8274, 0x00138a83}}, Y: Field{[10]uint32{0x00ccca7a, 0x02cb138f, 0x014b3d98, 0x03b237e8, 0x008a34e5, 0x028eb1a7, 0x00b90590, 0x02c12dad, 0x02e3e00b, 0x00144ab0}}},
+ {X: Field{[10]uint32{0x02ac77f6, 0x010d4bd9, 0x0368d733, 0x01dca50e, 0x0060c71a, 0x0217ec73, 0x0136f981, 0x022b2c14, 0x037024ea, 0x00304acf}}, Y: Field{[10]uint32{0x02544803, 0x01ef77c0, 0x033239c0, 0x02560cc9, 0x020d67a1, 0x03ef8949, 0x009f5a7b, 0x01dbc07c, 0x019b6f4b, 0x002de67e}}},
+ {X: Field{[10]uint32{0x03fd7e58, 0x01551923, 0x003feaa7, 0x020afe9e, 0x03d6c09b, 0x005904ff, 0x017c0cf6, 0x013877af, 0x022edaf3, 0x00019396}}, Y: Field{[10]uint32{0x002f4a50, 0x0147cd0f, 0x004ff726, 0x0292d461, 0x027509a2, 0x037c249b, 0x005d611a, 0x00cb8ba4, 0x020966f0, 0x00038083}}},
+ {X: Field{[10]uint32{0x030a838a, 0x0102254f, 0x03b9fef0, 0x015cb3ec, 0x013d66ec, 0x000fc0b7, 0x02d1857e, 0x010e03da, 0x0355fa73, 0x000ac2e2}}, Y: Field{[10]uint32{0x0273a61a, 0x02404f67, 0x024765bd, 0x0070d023, 0x00147ce0, 0x00722029, 0x00b45bae, 0x01965e38, 0x0251a914, 0x002b225c}}},
+ {X: Field{[10]uint32{0x0288525e, 0x01e24c0a, 0x00c5bd67, 0x02d07bf5, 0x016523e8, 0x0196a59e, 0x02545299, 0x0184cf4e, 0x0130a202, 0x002b838f}}, Y: Field{[10]uint32{0x00f80552, 0x0177ed4e, 0x03ee97ec, 0x01f7687b, 0x00c80c08, 0x00e6ac98, 0x00be67b3, 0x00b49094, 0x00ff8563, 0x003eda46}}},
+ {X: Field{[10]uint32{0x03e00dd9, 0x037a18a3, 0x03454a83, 0x00c3b7c8, 0x033bfa15, 0x0007d130, 0x02e46cb0, 0x02859bfe, 0x03114dfe, 0x000bfe71}}, Y: Field{[10]uint32{0x03318783, 0x03a0b11b, 0x027599b5, 0x001ef483, 0x01acb0d7, 0x02065717, 0x02383517, 0x00605e8f, 0x027a0444, 0x00014fd9}}},
+ {X: Field{[10]uint32{0x027bf695, 0x02c45a93, 0x017263ed, 0x0393067d, 0x019e2614, 0x010ac512, 0x003f60cc, 0x01671b01, 0x001488b9, 0x0033009c}}, Y: Field{[10]uint32{0x03b6007a, 0x00b99296, 0x01fe2e57, 0x017080db, 0x0307b532, 0x012697c1, 0x02ce6551, 0x03d9dd99, 0x01909b22, 0x003aacfd}}},
+ {X: Field{[10]uint32{0x00a945d5, 0x01a2fa0a, 0x0145584d, 0x016bc067, 0x03f9dbf4, 0x02125749, 0x03e3b476, 0x00d6997b, 0x03d13c80, 0x0006007b}}, Y: Field{[10]uint32{0x0259c4fe, 0x02f686fe, 0x005681ac, 0x02f382da, 0x03f44a5a, 0x026a0be2, 0x02f49d50, 0x025a3bd3, 0x019efcb5, 0x0037fcb4}}},
+ {X: Field{[10]uint32{0x00dd7cbf, 0x02de3f0f, 0x03f8be6a, 0x038db9d1, 0x015b698f, 0x031eaeaf, 0x03c09de4, 0x002588d5, 0x01d507b6, 0x001b68aa}}, Y: Field{[10]uint32{0x0275060c, 0x016f7338, 0x00378d50, 0x020a66b3, 0x0171310b, 0x00df02bc, 0x01ac9f9b, 0x022b88a5, 0x02704aeb, 0x000789d3}}},
+ {X: Field{[10]uint32{0x02fc82e4, 0x02846b6e, 0x0344c832, 0x00e86a67, 0x00c7dfe2, 0x02a513fc, 0x039e8a6e, 0x005774ef, 0x016f6a92, 0x001fa3f2}}, Y: Field{[10]uint32{0x01342bff, 0x021cb8ec, 0x02d51ddc, 0x000ea023, 0x0257d095, 0x018fce21, 0x039ed00c, 0x01b29fdc, 0x03e1e0c2, 0x003a693e}}},
+ {X: Field{[10]uint32{0x020caf64, 0x02ed121f, 0x00f27559, 0x00cdc633, 0x019f53e1, 0x021c1d90, 0x0266ab37, 0x035bdff8, 0x033a77d6, 0x00298d8b}}, Y: Field{[10]uint32{0x02cc787e, 0x02135874, 0x00d70087, 0x00e7d1cf, 0x03e29d85, 0x019bdd46, 0x025cd860, 0x00e17182, 0x02da3fc2, 0x00300588}}},
+ {X: Field{[10]uint32{0x0337d2b3, 0x01c01d66, 0x01557449, 0x0154df09, 0x018582bd, 0x001db06a, 0x01a19b47, 0x01d24e8f, 0x022228b4, 0x00146194}}, Y: Field{[10]uint32{0x00287be1, 0x02bef411, 0x01ad17d0, 0x02e14914, 0x02826558, 0x01032e33, 0x03ca65bf, 0x0236764f, 0x01796863, 0x003c3c2e}}},
+ {X: Field{[10]uint32{0x01d472ce, 0x02f0f460, 0x028e67e8, 0x004a7a3b, 0x0304d802, 0x01c6656a, 0x0314ff4f, 0x02e70e31, 0x009ba9f1, 0x0028a824}}, Y: Field{[10]uint32{0x0040068d, 0x03d717bb, 0x01a6a1e8, 0x007b3649, 0x028b364d, 0x03114ce4, 0x03fdf98e, 0x031efdc6, 0x000bd45e, 0x001048e4}}},
+ {X: Field{[10]uint32{0x003aef2d, 0x00c7e1ee, 0x009212b0, 0x03abe7c3, 0x02f1357b, 0x006fe5e7, 0x03f5ac2a, 0x01fcda98, 0x0122454e, 0x00369460}}, Y: Field{[10]uint32{0x006da722, 0x0363cdda, 0x00b32b6b, 0x03e2e683, 0x016cb7f3, 0x02e7762e, 0x0028c5e1, 0x017a0032, 0x02fd0d41, 0x002fe1df}}},
+ {X: Field{[10]uint32{0x0147a87d, 0x035d418e, 0x0382e6cb, 0x001b520f, 0x008a6983, 0x004316a9, 0x01aa5729, 0x00c49796, 0x00541a98, 0x00107103}}, Y: Field{[10]uint32{0x03bfc57f, 0x01bc4068, 0x00c814e8, 0x00cf0c3d, 0x03ef8400, 0x03ef7d79, 0x029f129f, 0x02442aee, 0x03656b89, 0x001db6ae}}},
+ {X: Field{[10]uint32{0x02addbfd, 0x00267326, 0x01318709, 0x01322290, 0x0028745e, 0x03314362, 0x007c980a, 0x039191a1, 0x028387f2, 0x003127f7}}, Y: Field{[10]uint32{0x027227e1, 0x01231fab, 0x03a94bbb, 0x03b99847, 0x00c7ddb4, 0x00a2f9fe, 0x00baf9e6, 0x01ef4de7, 0x0112dfd0, 0x002996f1}}},
+ {X: Field{[10]uint32{0x020fceae, 0x03c060c3, 0x010717a1, 0x0223a314, 0x023a6c6b, 0x035edd09, 0x03219406, 0x01d0f537, 0x0161b6ee, 0x00216c5f}}, Y: Field{[10]uint32{0x01868fef, 0x00c24b95, 0x02be892d, 0x00f9c13d, 0x03ebddc5, 0x03d2ffee, 0x006ce022, 0x007fad41, 0x00a274c7, 0x0008ae7a}}},
+ {X: Field{[10]uint32{0x0117964f, 0x03d7153c, 0x0243e883, 0x030b2353, 0x023914af, 0x00158e7b, 0x03521895, 0x01dfc4f9, 0x037fe6d6, 0x00323874}}, Y: Field{[10]uint32{0x01bfc21e, 0x02b56ace, 0x008e4f88, 0x02d0daad, 0x03ee4a7a, 0x007e6525, 0x006ba559, 0x016a46bd, 0x0118d08f, 0x002c32b3}}},
+ {X: Field{[10]uint32{0x0083836b, 0x001e29f9, 0x02dd9866, 0x02802e5e, 0x011a30ba, 0x00c44a65, 0x03d6f833, 0x02223169, 0x00307d25, 0x0037fb00}}, Y: Field{[10]uint32{0x02faa00d, 0x004ea42e, 0x0380956e, 0x002dbee5, 0x00f407ca, 0x00abe391, 0x00664168, 0x02511fbd, 0x0206bf2e, 0x001396a2}}},
+ {X: Field{[10]uint32{0x030be9d6, 0x02535fdf, 0x00b20925, 0x01b97d35, 0x02c842ff, 0x0274c1db, 0x017618dc, 0x03631bbb, 0x00387c18, 0x003ab1b1}}, Y: Field{[10]uint32{0x0265b8d1, 0x008e9ac8, 0x021634e8, 0x019f5cd2, 0x0177a86a, 0x003fbaef, 0x031802ac, 0x006e0ae9, 0x03bffc0c, 0x000675a6}}},
+ {X: Field{[10]uint32{0x03424cde, 0x0108046c, 0x019b74d6, 0x005672f2, 0x0069432c, 0x01fdab20, 0x0024db79, 0x0377b292, 0x004e04dc, 0x0027fce3}}, Y: Field{[10]uint32{0x01619ebc, 0x018886d4, 0x014f91d2, 0x0106e53d, 0x01266bd0, 0x033212e0, 0x005b0c93, 0x02effb7d, 0x0260b7c1, 0x003dcbe9}}},
+ {X: Field{[10]uint32{0x01313f36, 0x03f19129, 0x02c1c146, 0x0277512c, 0x019153f6, 0x03f8a155, 0x01e4f8c4, 0x00ca4d7e, 0x013f3a5a, 0x00179e16}}, Y: Field{[10]uint32{0x02fd9c47, 0x02a6e6a2, 0x0114b89d, 0x02986cb4, 0x0358cbc5, 0x01758f25, 0x0195b700, 0x02f746cb, 0x0044dc63, 0x00276756}}},
+ {X: Field{[10]uint32{0x01009ae4, 0x0321511c, 0x01b32d22, 0x0121debe, 0x020ad31a, 0x00f88870, 0x01ba38b0, 0x012dbec0, 0x03a48928, 0x002841f1}}, Y: Field{[10]uint32{0x03d9f6b5, 0x030da689, 0x014c4a0f, 0x002f1457, 0x03653b58, 0x0303e7ca, 0x0386cd5b, 0x019647b8, 0x02d46be4, 0x0001981c}}},
+ {X: Field{[10]uint32{0x01b02af1, 0x03397e90, 0x028f4190, 0x023b308e, 0x02ff98e8, 0x01e4a65d, 0x02445ba6, 0x026117f8, 0x01d0308d, 0x0000907c}}, Y: Field{[10]uint32{0x03e194a9, 0x02dfaa29, 0x01c74366, 0x03bb16b2, 0x0209c881, 0x02be474c, 0x015723ad, 0x02a237e8, 0x03ecd413, 0x002219a5}}},
+ {X: Field{[10]uint32{0x008a72fa, 0x02431af9, 0x01283c87, 0x005a2e6a, 0x02341860, 0x03ab0ed0, 0x015c6d26, 0x0241ba0f, 0x00d2627f, 0x000c67ba}}, Y: Field{[10]uint32{0x029eaa57, 0x033109cf, 0x032819d0, 0x014c197e, 0x01760344, 0x032d1631, 0x009f8491, 0x005b80d0, 0x02eda678, 0x00167925}}},
+ {X: Field{[10]uint32{0x03ca4822, 0x0051896f, 0x038e1a26, 0x019864a1, 0x01e01008, 0x01a615d6, 0x03f4f7e9, 0x03e6f64d, 0x011a00fd, 0x000619a0}}, Y: Field{[10]uint32{0x01b7ae19, 0x01449a75, 0x0250172e, 0x00646990, 0x00585f03, 0x02d97e9f, 0x003a1316, 0x0272209e, 0x0065e85f, 0x00085781}}},
+ {X: Field{[10]uint32{0x03992f26, 0x00bdda54, 0x00ce69ff, 0x016bdce5, 0x01398967, 0x033d9026, 0x03429fb8, 0x02400176, 0x02d70b94, 0x001fbfef}}, Y: Field{[10]uint32{0x00c7c749, 0x0026b210, 0x02aa7a1d, 0x01ab1b34, 0x03616d8b, 0x02fcb702, 0x016affac, 0x01b52d49, 0x01ba28f2, 0x001bbeed}}},
+ {X: Field{[10]uint32{0x03168867, 0x0293494a, 0x00bf0957, 0x0199c3c5, 0x02665c8d, 0x00de54ac, 0x02e45c19, 0x0057c87f, 0x03d0e593, 0x003631ca}}, Y: Field{[10]uint32{0x0256fbcd, 0x011b186f, 0x02e6e5a9, 0x006cb266, 0x028a2da3, 0x01cff182, 0x01e2cc3a, 0x0029bf44, 0x0162fdd4, 0x0019300b}}},
+ {X: Field{[10]uint32{0x00d0db4b, 0x0060c206, 0x0147abcf, 0x0147ead3, 0x0187bbfd, 0x002c35a4, 0x0396bbcb, 0x03ce050e, 0x0222ce64, 0x001c43b1}}, Y: Field{[10]uint32{0x0134d994, 0x00cc5391, 0x030c5496, 0x00dafaae, 0x013d275c, 0x0243d4c7, 0x029b9618, 0x00ebc30b, 0x0086526c, 0x003b7f44}}},
+ {X: Field{[10]uint32{0x00d51ca6, 0x0131654c, 0x0334868e, 0x009e7930, 0x0370574f, 0x02021b76, 0x0168e763, 0x03b75270, 0x024b9aea, 0x002509e5}}, Y: Field{[10]uint32{0x004e2dd8, 0x00298457, 0x017af730, 0x03a9a131, 0x01e0026b, 0x00a160f6, 0x03b312e9, 0x00019fac, 0x01cf2a6b, 0x000442d0}}},
+ {X: Field{[10]uint32{0x0355565f, 0x0166ce63, 0x00a5c46a, 0x00597aa9, 0x01c5a2e8, 0x036d8859, 0x03515c06, 0x03b6727a, 0x0035a8b3, 0x002bbde5}}, Y: Field{[10]uint32{0x0184b91d, 0x02c5e915, 0x012a0118, 0x0044f0d5, 0x03036535, 0x0250aaac, 0x00cb93d8, 0x03109714, 0x00f21274, 0x001985ba}}},
+ {X: Field{[10]uint32{0x0074b5a3, 0x0319fccc, 0x03994a4a, 0x0339296b, 0x020f49f0, 0x0275cbc9, 0x03401935, 0x0018e9a3, 0x00323546, 0x000faf76}}, Y: Field{[10]uint32{0x00460238, 0x0254019e, 0x019beed8, 0x03cb238b, 0x02db7962, 0x00e575c4, 0x02ba318f, 0x0127bb43, 0x03d4b295, 0x000048d9}}},
+ {X: Field{[10]uint32{0x026aeff2, 0x02d01790, 0x020dd729, 0x03894d35, 0x0019af86, 0x019cf212, 0x03c6bc3b, 0x0021c742, 0x025ec52b, 0x0028e367}}, Y: Field{[10]uint32{0x032cad02, 0x031d7a7c, 0x02a1cb01, 0x00a22b0d, 0x01f6d134, 0x03237935, 0x00955383, 0x01b1744e, 0x0371d9ae, 0x003af919}}},
+ {X: Field{[10]uint32{0x00a7d624, 0x03b0d092, 0x01b0f9f4, 0x02845a40, 0x02334369, 0x0114b2e3, 0x00407f7b, 0x02ec6643, 0x0382619c, 0x0039f4a7}}, Y: Field{[10]uint32{0x03c4e614, 0x03b16d67, 0x02e0742b, 0x0052aa3b, 0x0315b6ce, 0x0175d85b, 0x00ce2304, 0x014581ae, 0x02d4618b, 0x001d6573}}},
+ {X: Field{[10]uint32{0x0043ceae, 0x033bf3d0, 0x004edf81, 0x01738fa3, 0x007523de, 0x00063c03, 0x02333e26, 0x009ee52b, 0x02b02792, 0x003b21a7}}, Y: Field{[10]uint32{0x011ac92b, 0x02e9f71c, 0x01556ec6, 0x01dd9040, 0x03ca3fe5, 0x0399f60a, 0x00bdd264, 0x03210692, 0x02552c89, 0x0029086a}}},
+ {X: Field{[10]uint32{0x02ec5e71, 0x003fcd71, 0x03ae7c07, 0x00f3809b, 0x026f0752, 0x01128d4a, 0x005c0571, 0x02322dbf, 0x0108e44a, 0x00115276}}, Y: Field{[10]uint32{0x02b5dd7a, 0x0044e2de, 0x0240f44c, 0x000069b5, 0x0164b486, 0x00b2371e, 0x0208c19e, 0x01f81040, 0x03200770, 0x001c7638}}},
+ {X: Field{[10]uint32{0x01b070b2, 0x00512c29, 0x0385ff98, 0x00f4596c, 0x032cc7a5, 0x038501ac, 0x024f3813, 0x02e326c2, 0x029efef7, 0x00146edb}}, Y: Field{[10]uint32{0x0067044e, 0x0255ad69, 0x03befde5, 0x0372ab7c, 0x015268ee, 0x011b7df3, 0x031de11d, 0x013f4228, 0x03e9dd79, 0x00194a0a}}},
+ {X: Field{[10]uint32{0x016d001f, 0x00fae81a, 0x013e45a8, 0x03536458, 0x02aa2027, 0x01239897, 0x0203afcd, 0x02aa0910, 0x02974c7c, 0x001f370c}}, Y: Field{[10]uint32{0x03519565, 0x014d2420, 0x00a36192, 0x0045b0b3, 0x026060a4, 0x00a27968, 0x00027a7a, 0x0156cede, 0x01433b1a, 0x002e4ae6}}},
+ {X: Field{[10]uint32{0x009c9314, 0x02655d58, 0x02fc9030, 0x02e84051, 0x02aa478f, 0x0205e9af, 0x03722f6d, 0x0226da99, 0x02beb8e9, 0x000f2a71}}, Y: Field{[10]uint32{0x02ca2c0f, 0x01fc25b3, 0x00e4d6bb, 0x036af452, 0x0074c6e0, 0x0049328c, 0x006bba34, 0x006f0e0e, 0x017ff4b8, 0x001540bb}}},
+ {X: Field{[10]uint32{0x01354d0c, 0x00447a2b, 0x00436864, 0x00a73248, 0x0390e1a2, 0x023b5798, 0x01bc1c83, 0x032b6bc0, 0x026c45ed, 0x002a8aaf}}, Y: Field{[10]uint32{0x0024f6cd, 0x03727cbe, 0x00d47c44, 0x02a21c55, 0x0295bb3d, 0x006e8ac9, 0x0061251f, 0x00c12893, 0x01c66f91, 0x0006e08a}}},
+ {X: Field{[10]uint32{0x023bc7ee, 0x01a4db63, 0x0375a2ab, 0x02b7ef9b, 0x0375466a, 0x03dced83, 0x01f226de, 0x027564c6, 0x023df28c, 0x002d4b2b}}, Y: Field{[10]uint32{0x03cfe220, 0x00b6e222, 0x03a3a446, 0x0164b85f, 0x02421e07, 0x029f2562, 0x00738488, 0x00247732, 0x035e022c, 0x003afb9c}}},
+ {X: Field{[10]uint32{0x0021ef54, 0x036414ce, 0x01661838, 0x030d1ed9, 0x01635469, 0x00d2585a, 0x01a62832, 0x0372d84f, 0x030362a6, 0x00304215}}, Y: Field{[10]uint32{0x00eaf517, 0x033e6cd3, 0x01cdec38, 0x03760ade, 0x0044511c, 0x002b531f, 0x002cac14, 0x02a3acb7, 0x02c8c1e6, 0x003f9910}}},
+ {X: Field{[10]uint32{0x0308c11d, 0x00e5976b, 0x00768d5a, 0x0334be9b, 0x0383477f, 0x01908a41, 0x01454765, 0x0049fd67, 0x011cfcaf, 0x003c27a7}}, Y: Field{[10]uint32{0x03c15d10, 0x03e593a2, 0x009a27e8, 0x018f3fb3, 0x01a5b2e6, 0x0175fbf6, 0x0028fc9c, 0x03ec56fd, 0x03221f44, 0x0003c069}}},
+ {X: Field{[10]uint32{0x015c4527, 0x0309dfd2, 0x0341a036, 0x017f80f4, 0x03fd3e80, 0x035c6d65, 0x00b3b179, 0x00fafb62, 0x02ef1e47, 0x00180918}}, Y: Field{[10]uint32{0x03a079c3, 0x0387db58, 0x02ce2844, 0x02c7ae74, 0x02fed2a9, 0x00fc8567, 0x02d9f235, 0x00773aaa, 0x00617141, 0x003e476d}}},
+ {X: Field{[10]uint32{0x01bb582d, 0x0065ff82, 0x03c70720, 0x004c25ae, 0x016b828d, 0x0049a883, 0x00ae3558, 0x0267e841, 0x001e8e0d, 0x0009cea2}}, Y: Field{[10]uint32{0x004b0d5d, 0x00d2869a, 0x003da295, 0x01d5e68b, 0x00d1b407, 0x03ddadb0, 0x03b2f727, 0x02e45334, 0x005814a7, 0x0016ec9b}}},
+ {X: Field{[10]uint32{0x000cd54d, 0x03237cba, 0x03d9f566, 0x00107691, 0x01e8cd05, 0x01bf263e, 0x02f41723, 0x032dcad0, 0x03460616, 0x001f077c}}, Y: Field{[10]uint32{0x03c41dd7, 0x02b58c13, 0x033b9390, 0x00bb059d, 0x0073153c, 0x02f04956, 0x03a8d456, 0x02e6f916, 0x020dd602, 0x002b4f9f}}},
+ {X: Field{[10]uint32{0x01942f94, 0x0319544f, 0x006d3c62, 0x02c14e5e, 0x039ad644, 0x033a002d, 0x014551f3, 0x03c451ce, 0x0234657f, 0x001e5b89}}, Y: Field{[10]uint32{0x014f1c60, 0x0331f0a8, 0x01b11bb1, 0x01aa1003, 0x001e8ec6, 0x00c02069, 0x0080eb9c, 0x01c44431, 0x0238ed58, 0x002d96ef}}},
+ {X: Field{[10]uint32{0x02302bd1, 0x02f7b586, 0x00206193, 0x016d80bf, 0x0062b056, 0x029990b2, 0x029953a2, 0x03da2a91, 0x01fa9985, 0x001789d8}}, Y: Field{[10]uint32{0x0253e274, 0x036eb15c, 0x030b4713, 0x036adf50, 0x003715c9, 0x0144d9f4, 0x0347c070, 0x013d740b, 0x03709db2, 0x0016e826}}},
+ {X: Field{[10]uint32{0x03abe794, 0x0049b153, 0x010e6164, 0x008a636e, 0x005c004c, 0x02891ad0, 0x01ab0385, 0x00683fac, 0x0092fd34, 0x00119163}}, Y: Field{[10]uint32{0x03446725, 0x028f7635, 0x033eaf02, 0x02bbbb3c, 0x029d018f, 0x018fc729, 0x02fc3242, 0x0106e162, 0x028b3453, 0x00021675}}},
+ {X: Field{[10]uint32{0x01153265, 0x00de6960, 0x0152c5c7, 0x00d32fee, 0x00a410e1, 0x01bd3989, 0x009ddc3d, 0x01f073ff, 0x0030bf81, 0x003f1206}}, Y: Field{[10]uint32{0x01322551, 0x0289e1d6, 0x02169a43, 0x017eb3a3, 0x038dfe38, 0x03676d2a, 0x0248e89f, 0x01f68512, 0x0228bd3d, 0x0028622c}}},
+ {X: Field{[10]uint32{0x02ed03e6, 0x00984357, 0x01901779, 0x019a012b, 0x033a7804, 0x038abb6f, 0x0302742c, 0x029540f1, 0x027d9771, 0x0010b65d}}, Y: Field{[10]uint32{0x02d50417, 0x03a87096, 0x003ece89, 0x01a34376, 0x03d2e0f5, 0x000b490c, 0x02c782be, 0x03ccdce8, 0x032e9764, 0x0037da50}}},
+ {X: Field{[10]uint32{0x01477148, 0x00bd386e, 0x004dcdc7, 0x03f74a38, 0x02462dee, 0x0057b644, 0x02602226, 0x02ca5dcb, 0x0049993a, 0x000dc48b}}, Y: Field{[10]uint32{0x0196e39d, 0x00e08316, 0x0008ef1d, 0x037a9549, 0x02410b3e, 0x01900ae3, 0x00422cc3, 0x03ef0ea8, 0x00f0924c, 0x00189ffd}}},
+ {X: Field{[10]uint32{0x006896c3, 0x003a8697, 0x00bb7314, 0x015e972e, 0x013619a5, 0x01db87ab, 0x03e52cca, 0x03f2f9d0, 0x018294ba, 0x00271520}}, Y: Field{[10]uint32{0x038f7fcc, 0x00efc16c, 0x014c50b5, 0x02cc8252, 0x02ec0478, 0x01c14130, 0x031dafbf, 0x0214a3b1, 0x032eb88e, 0x0017f311}}},
+ {X: Field{[10]uint32{0x025a2db9, 0x01a6e03d, 0x02a077ae, 0x01ff58fc, 0x000a5927, 0x01c48d82, 0x004e0251, 0x007da5d7, 0x02d7aa5b, 0x001ee75e}}, Y: Field{[10]uint32{0x017d1bf8, 0x03587f43, 0x0012fabf, 0x01729d5a, 0x02c4a7f1, 0x01453b2b, 0x01c14d6f, 0x0288a740, 0x02e8714a, 0x001b3787}}},
+ {X: Field{[10]uint32{0x00a9a102, 0x00737a96, 0x0153e017, 0x0141b1df, 0x026990e9, 0x0107820b, 0x016d948e, 0x01582b59, 0x02f2c985, 0x002bd776}}, Y: Field{[10]uint32{0x00a5b505, 0x01607e7b, 0x003f5fd4, 0x0123bfe5, 0x011f6853, 0x03385ad6, 0x0039ff76, 0x01bfcf12, 0x011b7289, 0x0038d211}}},
+ {X: Field{[10]uint32{0x0111293d, 0x03b2da48, 0x029a395b, 0x02d0538a, 0x01d26394, 0x03834559, 0x03ab3662, 0x02f46417, 0x0318e957, 0x0010999f}}, Y: Field{[10]uint32{0x02bbc7a5, 0x00083559, 0x022a2e57, 0x02c6bb2a, 0x033c0076, 0x03f895e5, 0x03fb16c1, 0x02ed8d39, 0x02b269e9, 0x000a2374}}},
+ {X: Field{[10]uint32{0x00b276d7, 0x01506dd0, 0x03618587, 0x01857966, 0x029be971, 0x00c99973, 0x002a5a6f, 0x020c99d3, 0x021d50ab, 0x0017a71e}}, Y: Field{[10]uint32{0x03a11f17, 0x02115b57, 0x035b1a29, 0x0063b822, 0x02ec4664, 0x031c1d12, 0x0292c612, 0x02bd08d0, 0x00611f39, 0x00248a0d}}},
+ {X: Field{[10]uint32{0x03ed8b2a, 0x0293ca37, 0x03c489a2, 0x001a2d1a, 0x038b52b5, 0x02cc82e5, 0x00d9ac97, 0x02d608ad, 0x03faf486, 0x00263183}}, Y: Field{[10]uint32{0x005280f9, 0x01eca6dd, 0x0132b580, 0x0212bb70, 0x0170416d, 0x001bb6f9, 0x02f42fa3, 0x01255604, 0x0113c253, 0x00287098}}},
+ {X: Field{[10]uint32{0x0385babc, 0x01d66770, 0x0116cf0a, 0x007f6199, 0x03f30948, 0x00d43969, 0x0286e71f, 0x00b364f0, 0x01821ed5, 0x0024afea}}, Y: Field{[10]uint32{0x02c1ddb4, 0x02ba7b6c, 0x03cb802f, 0x024a545a, 0x036f5276, 0x037f893d, 0x0254e738, 0x02d2c6de, 0x0396c71a, 0x0028ff25}}},
+ {X: Field{[10]uint32{0x025b865f, 0x025ce0be, 0x018c4ec1, 0x02e40eec, 0x037b7798, 0x000ac30d, 0x02413e84, 0x02d67eb3, 0x0008bd8e, 0x0026f89d}}, Y: Field{[10]uint32{0x027a2f61, 0x03a2ff69, 0x00027f54, 0x00a54093, 0x02def3ec, 0x02ee4b77, 0x02ed2c81, 0x01a8e5a3, 0x01801964, 0x00044215}}},
+ {X: Field{[10]uint32{0x036350bc, 0x02e711a5, 0x018275b1, 0x01676e79, 0x037751bc, 0x0302462f, 0x0391ce38, 0x02c165ad, 0x026cb7ba, 0x0009f35a}}, Y: Field{[10]uint32{0x03faeda8, 0x03e03ba0, 0x00011a16, 0x01353fad, 0x032f41d0, 0x01a19479, 0x03761df0, 0x00ab17c4, 0x01678fce, 0x00224354}}},
+ {X: Field{[10]uint32{0x0068f2eb, 0x022073bd, 0x00e1f5d8, 0x00f25bcc, 0x035f22be, 0x00319918, 0x00f6597a, 0x0184e532, 0x014daaf9, 0x003a25b8}}, Y: Field{[10]uint32{0x0196030b, 0x027cacec, 0x027260bb, 0x02136b74, 0x02efea7e, 0x03622eb2, 0x00d971af, 0x006ac771, 0x00b0512c, 0x002fac01}}},
+ {X: Field{[10]uint32{0x013f8ec0, 0x030359f9, 0x033da54e, 0x0226142e, 0x03a9dd23, 0x03eacb03, 0x00b3779e, 0x0150058d, 0x0269ac48, 0x000938b4}}, Y: Field{[10]uint32{0x0219e525, 0x026a9600, 0x02460892, 0x016f907e, 0x03f5beda, 0x018e8168, 0x03ca2ca6, 0x0353080e, 0x02c2642b, 0x00379c0b}}},
+ {X: Field{[10]uint32{0x001d1676, 0x0367025a, 0x03db95a9, 0x00077829, 0x009b5c4d, 0x02c48694, 0x010159b4, 0x03279175, 0x03c948c1, 0x0025e989}}, Y: Field{[10]uint32{0x033203d9, 0x01fba49b, 0x00b9ffef, 0x03e69f24, 0x018d5f3c, 0x03d75708, 0x02d43037, 0x0270a7f2, 0x015b5539, 0x00066f42}}},
+ {X: Field{[10]uint32{0x0195b08f, 0x0354dc1c, 0x0014b40b, 0x01807e82, 0x0033ed67, 0x0274f214, 0x03234c7f, 0x03b17ddd, 0x0251e604, 0x0029c360}}, Y: Field{[10]uint32{0x00bccc4f, 0x009b542b, 0x01f4e0e1, 0x0225aa16, 0x0385325a, 0x031c4350, 0x012c016a, 0x00f78fc5, 0x010774e2, 0x0037ca36}}},
+ {X: Field{[10]uint32{0x0242f42b, 0x023056be, 0x0012ea7c, 0x025cdbcd, 0x0327743a, 0x00f5e2c5, 0x001a0071, 0x0191cb38, 0x00434b27, 0x000b59db}}, Y: Field{[10]uint32{0x01fa7312, 0x03023ff2, 0x018ea024, 0x00f0ce52, 0x0052fa70, 0x0020ada1, 0x03b8f941, 0x0174c900, 0x01e406ef, 0x002f8a33}}},
+ {X: Field{[10]uint32{0x00b29cf5, 0x0350ad00, 0x0172928f, 0x00a6d283, 0x0246c89d, 0x03c9f00d, 0x03857cfc, 0x01c9d576, 0x01e17516, 0x003d9b09}}, Y: Field{[10]uint32{0x03193201, 0x009b7a71, 0x01b6e059, 0x00c6eb5a, 0x028d2a02, 0x03670632, 0x0049150c, 0x02a21130, 0x02d422c4, 0x000fb88e}}},
+ {X: Field{[10]uint32{0x02427060, 0x024f5f40, 0x01c6c293, 0x02b6393f, 0x01ce6e77, 0x013a3801, 0x004f81d2, 0x0361fbbd, 0x004b9d39, 0x0036e91f}}, Y: Field{[10]uint32{0x018d7622, 0x03b6eecf, 0x03597338, 0x022e7f3e, 0x015240f2, 0x0370ed71, 0x037eedd4, 0x00003c25, 0x0092e53d, 0x000b5719}}},
+ {X: Field{[10]uint32{0x03e10f0f, 0x03e20549, 0x0301bbfd, 0x0197c20e, 0x0294788f, 0x024768ed, 0x015aedae, 0x01f71562, 0x01d94f62, 0x00285d80}}, Y: Field{[10]uint32{0x020a1183, 0x036100cd, 0x00890fa3, 0x016d178c, 0x020baded, 0x026416ce, 0x03025bd9, 0x006c56be, 0x03c8cfea, 0x001d0227}}},
+ {X: Field{[10]uint32{0x0180e141, 0x03ce84d3, 0x003d5188, 0x030d53ae, 0x011c24c6, 0x03edeb23, 0x0261a125, 0x03fa41f8, 0x009fb84a, 0x00375c0c}}, Y: Field{[10]uint32{0x00bed563, 0x00d94d51, 0x018682a8, 0x019bd955, 0x024bdfd5, 0x03223777, 0x035b7862, 0x029dfe74, 0x02c0ac93, 0x000c8052}}},
+ {X: Field{[10]uint32{0x03037afd, 0x015dda21, 0x003f783b, 0x024e4832, 0x03cadefb, 0x0131a8bc, 0x01253f00, 0x02ebe5c0, 0x003de746, 0x001e7f54}}, Y: Field{[10]uint32{0x00a61b93, 0x035a437b, 0x0317f1e0, 0x000023a2, 0x0286a4e6, 0x011e948f, 0x0220c266, 0x0024c4fe, 0x02586318, 0x000f172d}}},
+ {X: Field{[10]uint32{0x020ff6a0, 0x00b048ae, 0x009566b9, 0x022a4d58, 0x021e7265, 0x01a8a692, 0x00eb8961, 0x0358ec7d, 0x037d77c7, 0x00346abc}}, Y: Field{[10]uint32{0x00a93bec, 0x004e514f, 0x0232ecfd, 0x0276766b, 0x00c7cac3, 0x03d0d6f7, 0x01f0e0bb, 0x02e81caf, 0x03ae5cfb, 0x00394d6d}}},
+ {X: Field{[10]uint32{0x02d93c4f, 0x0149d5ea, 0x016445c7, 0x01635966, 0x01fe525d, 0x033690d1, 0x02b74fc2, 0x03652e6d, 0x0382b351, 0x001a3fc6}}, Y: Field{[10]uint32{0x0065a13c, 0x0063cead, 0x0192b798, 0x01d21460, 0x019186e3, 0x01764ef7, 0x02194aac, 0x02b02341, 0x02f1c422, 0x002aeec3}}},
+ {X: Field{[10]uint32{0x0210552d, 0x00701665, 0x0224a5c4, 0x02898bb3, 0x0314393e, 0x01329921, 0x01b73bcf, 0x00f97417, 0x00971806, 0x00089e17}}, Y: Field{[10]uint32{0x021d8774, 0x00606aab, 0x018c4157, 0x0128972e, 0x021933e6, 0x029d735b, 0x005e75c8, 0x02a03093, 0x026ad7a7, 0x00270200}}},
+ {X: Field{[10]uint32{0x035ffebf, 0x007c9113, 0x00580889, 0x018e9df6, 0x02e26780, 0x03f085d8, 0x00662583, 0x02dd5d7c, 0x01e7563f, 0x00189b2d}}, Y: Field{[10]uint32{0x028498b4, 0x01c32f19, 0x0211cce1, 0x0289598b, 0x01953a6d, 0x02a61470, 0x01161845, 0x030fc90d, 0x03f672c3, 0x00020da7}}},
+ {X: Field{[10]uint32{0x00d12d2a, 0x01a3d6a0, 0x01ac55e6, 0x0392dbeb, 0x0061c8c4, 0x022293ca, 0x03fa430b, 0x01841603, 0x02f4d6f4, 0x002a67c3}}, Y: Field{[10]uint32{0x01053d06, 0x03fccfac, 0x00d3e28f, 0x012be0c1, 0x024e2f06, 0x02b8abbd, 0x0002c406, 0x00020dde, 0x032939db, 0x0025cab7}}},
+ {X: Field{[10]uint32{0x03f02645, 0x00c77a71, 0x03e61019, 0x00f32acf, 0x03784afe, 0x03efa52a, 0x000a3fbd, 0x02cb6f2e, 0x02272ff0, 0x002c90f3}}, Y: Field{[10]uint32{0x020b7559, 0x0011238d, 0x03e9f41a, 0x0161188a, 0x023e85b8, 0x03a9460d, 0x0233df8f, 0x0320831c, 0x0119fbb8, 0x0036cbab}}},
+ {X: Field{[10]uint32{0x0363deb3, 0x037d5c10, 0x022f3f8b, 0x019150c8, 0x0143efb2, 0x002877fd, 0x031b21a0, 0x02d8b1a9, 0x009d685c, 0x0031d38f}}, Y: Field{[10]uint32{0x01c4b2ec, 0x00d121bb, 0x03ed4387, 0x02d87a0c, 0x025cd550, 0x013bed86, 0x00358efc, 0x00f4168e, 0x0261fbf2, 0x00261f60}}},
+ {X: Field{[10]uint32{0x01f71c47, 0x01bbc377, 0x03047888, 0x03090f70, 0x01d34710, 0x03025ba7, 0x00885f34, 0x01352f47, 0x00a7fc98, 0x003fcbd9}}, Y: Field{[10]uint32{0x006e906d, 0x006a16a8, 0x0249765e, 0x0035e17c, 0x0309eac6, 0x01a43035, 0x02c91257, 0x00bf7c7b, 0x0258fd5e, 0x00053018}}},
+ {X: Field{[10]uint32{0x03712085, 0x0188506e, 0x01badec1, 0x0053da86, 0x026819b5, 0x0103dd0e, 0x02e8a8b1, 0x02ac934d, 0x00e13f4c, 0x001f64b1}}, Y: Field{[10]uint32{0x01b698c8, 0x01bd05a0, 0x033d1b72, 0x00839af8, 0x003e0dc9, 0x0369a1ae, 0x03193309, 0x035f4aa6, 0x03622ec7, 0x00181ad5}}},
+ {X: Field{[10]uint32{0x03e13b6c, 0x03495183, 0x01518a0b, 0x0083fef3, 0x024ce0cc, 0x01e54580, 0x009487c7, 0x014a2627, 0x014d9ef4, 0x0000e90f}}, Y: Field{[10]uint32{0x01deb36e, 0x028ff036, 0x01912dfb, 0x02854d26, 0x00eedad2, 0x01ac49aa, 0x0228d61e, 0x024179ae, 0x03255768, 0x0017c934}}},
+ {X: Field{[10]uint32{0x02a25f8f, 0x010a9b3b, 0x02308673, 0x0016cf19, 0x026e59fd, 0x01c74317, 0x00c67e73, 0x01793457, 0x03028010, 0x000239cb}}, Y: Field{[10]uint32{0x016b368e, 0x00767782, 0x015099ea, 0x02b66ef7, 0x031eada5, 0x01ede6c0, 0x01870da4, 0x02e1b7c2, 0x005158fd, 0x00025377}}},
+ {X: Field{[10]uint32{0x00ef54dd, 0x03404f33, 0x02d6bfd9, 0x02c3961c, 0x02ab8789, 0x00d0fc4b, 0x037f9d18, 0x009d8b29, 0x00236dc0, 0x002e273f}}, Y: Field{[10]uint32{0x011141cd, 0x01ee4110, 0x0037d2ba, 0x0173c7dd, 0x01c3ad13, 0x03e18344, 0x02ce6f9d, 0x0265ad29, 0x028545a5, 0x0027269c}}},
+ {X: Field{[10]uint32{0x01ccb59b, 0x03924410, 0x03ebbc64, 0x00f8b11c, 0x016744a4, 0x01892ced, 0x0190b535, 0x01a2d2ec, 0x00089798, 0x003a17b8}}, Y: Field{[10]uint32{0x02cbd6a2, 0x01d69484, 0x01723a80, 0x022fe10b, 0x010e1c9a, 0x01fb7747, 0x03e3b3d0, 0x03143089, 0x030f9ede, 0x0034ebf9}}},
+ {X: Field{[10]uint32{0x02cb97b5, 0x035764ed, 0x01b3bfb0, 0x0144e645, 0x02f7f906, 0x0144d019, 0x00c8e16d, 0x01b4564f, 0x03f2774d, 0x0036375a}}, Y: Field{[10]uint32{0x035e26f4, 0x015bd294, 0x02b2c6d2, 0x03464544, 0x0325f7e6, 0x0217a7e2, 0x0031862b, 0x013cfc45, 0x00945f73, 0x0016880c}}},
+ {X: Field{[10]uint32{0x02aa94e8, 0x00e1689d, 0x02aec3e6, 0x03be634d, 0x00033968, 0x0344cf61, 0x03bd5545, 0x02f7ad17, 0x01c5328f, 0x001df820}}, Y: Field{[10]uint32{0x00c2959a, 0x02daf845, 0x01669c0c, 0x02de4688, 0x00ba597f, 0x03820141, 0x026291a3, 0x03cbe116, 0x03f7ca25, 0x000b3a14}}},
+ {X: Field{[10]uint32{0x03c904ab, 0x0311e7d9, 0x018c4fb9, 0x00f6c6b4, 0x02b5b920, 0x0127c1e8, 0x020b82f5, 0x025a09a0, 0x02eae8a4, 0x001441e1}}, Y: Field{[10]uint32{0x039cd96b, 0x025a19eb, 0x018a8fbd, 0x0307aac7, 0x00b39382, 0x0077219d, 0x03e21ae7, 0x031a7fd8, 0x03854e4d, 0x003704c0}}},
+ {X: Field{[10]uint32{0x0242639d, 0x0109e268, 0x00ddabb6, 0x00cceaf0, 0x021169e4, 0x00203430, 0x0121056e, 0x0356d930, 0x02b3fbda, 0x000beebf}}, Y: Field{[10]uint32{0x00405cd3, 0x03e29f05, 0x031c92f3, 0x03257a97, 0x015ff199, 0x0074face, 0x019ef0a1, 0x02853796, 0x002fd9e6, 0x0002a176}}},
+ {X: Field{[10]uint32{0x0312ae0a, 0x00ad791e, 0x02ae673b, 0x002478a3, 0x02aec808, 0x02d7c031, 0x03fbbc26, 0x0118f07c, 0x03eb6e6e, 0x0008036f}}, Y: Field{[10]uint32{0x03a95ecf, 0x0370072e, 0x0344ac59, 0x01dbf346, 0x03832127, 0x01524609, 0x021f0711, 0x00f65e0f, 0x0219bdaa, 0x001214a8}}},
+ {X: Field{[10]uint32{0x00b8a3d9, 0x03fcaf89, 0x00ab41ac, 0x01c95086, 0x013ec225, 0x014b36e1, 0x03d46b6e, 0x03df7024, 0x00f60259, 0x0009ec50}}, Y: Field{[10]uint32{0x00583387, 0x02a9fff0, 0x00f7bc85, 0x018dc69d, 0x0228bb5d, 0x004c38c4, 0x00054c4f, 0x02b6eb50, 0x009f70cb, 0x000f3bb4}}},
+ {X: Field{[10]uint32{0x015b7e71, 0x03592afa, 0x00a0fcd1, 0x032b5ca3, 0x000e175c, 0x0130ac0b, 0x022ec351, 0x014c4608, 0x01ee535c, 0x003f9250}}, Y: Field{[10]uint32{0x011f56f6, 0x01c013b9, 0x0370ed35, 0x03796172, 0x03748e0a, 0x02992b68, 0x01cb4422, 0x01946f62, 0x01ae286d, 0x003a7372}}},
+ {X: Field{[10]uint32{0x01ff1cdf, 0x00e4979d, 0x01d885a0, 0x03b5664d, 0x030ce47c, 0x016f8bc5, 0x03443d76, 0x0252f4db, 0x009b4cae, 0x000c5f48}}, Y: Field{[10]uint32{0x02262d72, 0x01297ae2, 0x02864543, 0x037de298, 0x02c942a5, 0x02daa007, 0x03945af4, 0x015c703f, 0x009568fe, 0x00030645}}},
+ {X: Field{[10]uint32{0x0093f9ea, 0x026850f3, 0x02cead9f, 0x002d64f3, 0x03df32e8, 0x00543a6a, 0x005f8ab0, 0x00c391dc, 0x0377764e, 0x003e5469}}, Y: Field{[10]uint32{0x03afd925, 0x01c3c548, 0x03052655, 0x00ec46b8, 0x026ac261, 0x004b3777, 0x00cc6b8b, 0x0088fb9b, 0x01d625f2, 0x003bee54}}},
+ {X: Field{[10]uint32{0x0389c8ef, 0x007cd10c, 0x0284d309, 0x03d9b968, 0x024f251a, 0x03f925aa, 0x03229a9f, 0x023a2fc3, 0x00ebf5fd, 0x001c6b7c}}, Y: Field{[10]uint32{0x036969f4, 0x039957da, 0x0242539c, 0x01cb9d9d, 0x0198ed56, 0x0371ceb7, 0x00dfdf72, 0x0154d99d, 0x0063293a, 0x0004fd1d}}},
+ {X: Field{[10]uint32{0x0236be75, 0x00471140, 0x02ea5009, 0x007a07db, 0x02c3fbab, 0x03518d04, 0x01cff39a, 0x03a03526, 0x000658c0, 0x0000ba81}}, Y: Field{[10]uint32{0x014f923f, 0x018ef225, 0x02234291, 0x03b7fbb8, 0x03d82c08, 0x02682938, 0x01743d20, 0x00dc87c2, 0x00740607, 0x0002f94b}}},
+ {X: Field{[10]uint32{0x02182aea, 0x02df946d, 0x009350d9, 0x00b6589e, 0x03a37344, 0x00fc2c7c, 0x00c42223, 0x020309d4, 0x03904b3e, 0x00108d48}}, Y: Field{[10]uint32{0x01221d91, 0x03fb59f6, 0x02966395, 0x023e053e, 0x000fe09e, 0x02580c89, 0x008e48ba, 0x014598c3, 0x0349b27b, 0x001fd608}}},
+ {X: Field{[10]uint32{0x027dda91, 0x03eae7be, 0x00e53771, 0x027b7023, 0x017702a2, 0x026af82d, 0x0064bf8e, 0x00a16e58, 0x0082a92b, 0x0014934f}}, Y: Field{[10]uint32{0x00f29c3a, 0x011c903c, 0x01894ec7, 0x01dc34fb, 0x00366a84, 0x00c6ff57, 0x0368e053, 0x02cb7352, 0x0217fdc6, 0x00291e80}}},
+ {X: Field{[10]uint32{0x0056f7e8, 0x02eb85b0, 0x00c48776, 0x02bf45af, 0x000fc83c, 0x008c8ca7, 0x02eb5f5f, 0x013799aa, 0x02085ce0, 0x003dbb87}}, Y: Field{[10]uint32{0x00cea4d9, 0x01ab1b6f, 0x03c75c2f, 0x017462c9, 0x00ccbc95, 0x0251f5ed, 0x01939774, 0x03526aa8, 0x026a7e2b, 0x000cca2c}}},
+ {X: Field{[10]uint32{0x03273978, 0x01345ac5, 0x03dae313, 0x01be6f64, 0x002ea84e, 0x0141df48, 0x02b5d119, 0x00505dc8, 0x012bb88f, 0x00270bdf}}, Y: Field{[10]uint32{0x01ab2a3a, 0x006f8f0b, 0x007daa57, 0x032bb94c, 0x01d338a4, 0x031795af, 0x033c5927, 0x02d0d739, 0x000366c8, 0x0004227c}}},
+ {X: Field{[10]uint32{0x0299cc3c, 0x0204f1b2, 0x0228f9b9, 0x01ed23bf, 0x0305897b, 0x014eb879, 0x0124f152, 0x02db947f, 0x02b6730f, 0x00164e87}}, Y: Field{[10]uint32{0x0344f079, 0x00cc005d, 0x00ace404, 0x006a8ec7, 0x0109e35c, 0x03dd3946, 0x003a6300, 0x00b646f0, 0x0020fbd2, 0x003f3ede}}},
+ {X: Field{[10]uint32{0x01f957e3, 0x00d4ac54, 0x039f40ef, 0x03ff7968, 0x028ec0ea, 0x01fe1e97, 0x004bc603, 0x02eb32f3, 0x00c383a7, 0x0018ae84}}, Y: Field{[10]uint32{0x007bdd45, 0x01fa7f33, 0x020bec2a, 0x003b5e99, 0x019fd01e, 0x02828940, 0x025fa19a, 0x02858695, 0x01b0dc84, 0x003099e8}}},
+ {X: Field{[10]uint32{0x03731f64, 0x00f18657, 0x03c6a6d7, 0x0240529d, 0x0239e123, 0x00e92a76, 0x03641fe0, 0x018a858f, 0x0010deae, 0x000778ab}}, Y: Field{[10]uint32{0x03c8d2b2, 0x0106a276, 0x00006d71, 0x017e9bd4, 0x00a512b7, 0x0208853f, 0x027b5ad7, 0x025a7410, 0x0095b6d7, 0x00183d0f}}},
+ {X: Field{[10]uint32{0x03d4e1d3, 0x0105b083, 0x02a6da43, 0x01c5ab2e, 0x00c48e92, 0x005dcbc6, 0x01086123, 0x020f220f, 0x01527090, 0x003c4695}}, Y: Field{[10]uint32{0x02d742f4, 0x024d4528, 0x03f4cdf5, 0x015368bc, 0x002be515, 0x02356cec, 0x00e397b3, 0x023106db, 0x01647cf4, 0x0029b42b}}},
+ {X: Field{[10]uint32{0x00dc33fc, 0x02ba5b5f, 0x0243d2ae, 0x00fc45b0, 0x013dbad4, 0x032971fd, 0x015cc01f, 0x025f9487, 0x0240d756, 0x003d1151}}, Y: Field{[10]uint32{0x02549102, 0x0213de59, 0x026cfb37, 0x01af133d, 0x036b2599, 0x029d3b21, 0x02d70531, 0x01dc1175, 0x00ef46fe, 0x0010a5cb}}},
+ {X: Field{[10]uint32{0x01b8780a, 0x00bb2368, 0x01ad4cad, 0x023423b3, 0x0110905b, 0x02cc67eb, 0x03c20fa3, 0x0019f06d, 0x007397be, 0x000afebc}}, Y: Field{[10]uint32{0x02590285, 0x03314993, 0x03cd5775, 0x02c57e08, 0x039077de, 0x025c3d3e, 0x028bdee9, 0x03259cf4, 0x0099ea97, 0x003b5499}}},
+ {X: Field{[10]uint32{0x00f5f73b, 0x03153dd3, 0x01222cfe, 0x01623b5a, 0x026df6e0, 0x0108bdce, 0x023ca163, 0x03b642f7, 0x00812b5f, 0x003f06af}}, Y: Field{[10]uint32{0x032b975f, 0x03444da5, 0x01d8faf0, 0x01bd3fa7, 0x007ac68f, 0x02c73471, 0x00481dc4, 0x03f2f91a, 0x02db471c, 0x0036c71b}}},
+ {X: Field{[10]uint32{0x00506a8d, 0x01db9bd3, 0x00c76124, 0x017ef8c7, 0x01b717d6, 0x024f00ab, 0x036f92d2, 0x00be6e8d, 0x02ac82e0, 0x00360e30}}, Y: Field{[10]uint32{0x01189377, 0x01ecc68d, 0x02ae251d, 0x032cf83d, 0x03532dd1, 0x01faac48, 0x0176f6ca, 0x03e380f0, 0x00670388, 0x00361e8c}}},
+ {X: Field{[10]uint32{0x013ee38c, 0x025f81ac, 0x004b92f6, 0x03c4ce87, 0x0132c53f, 0x0269794e, 0x019d54ca, 0x015d2689, 0x02ff0729, 0x0012cea0}}, Y: Field{[10]uint32{0x028d6265, 0x02cc1d6e, 0x0229032d, 0x012f95c2, 0x00bf6073, 0x03205484, 0x026a0c46, 0x0115b4fd, 0x0341a788, 0x00110dca}}},
+ {X: Field{[10]uint32{0x00e411aa, 0x035ab4ff, 0x002f20b8, 0x02438de7, 0x008e79d2, 0x02f54bdc, 0x01eaf6a9, 0x02b538c9, 0x03f36731, 0x0035df2e}}, Y: Field{[10]uint32{0x038372f0, 0x026fe13f, 0x01b50525, 0x019928e1, 0x02051f42, 0x0122f6a6, 0x02812377, 0x004f1e46, 0x0125f078, 0x003b919b}}},
+ {X: Field{[10]uint32{0x02ea1483, 0x03f1b4bb, 0x006ec84e, 0x00b303c7, 0x03bed187, 0x014eb0c1, 0x00a75dc9, 0x002e09bb, 0x02b25892, 0x000e19fd}}, Y: Field{[10]uint32{0x0388aee3, 0x019c4d6b, 0x01cf4b82, 0x03d1a2b0, 0x01254d70, 0x032a7172, 0x013ff18d, 0x02025e80, 0x02dce607, 0x00331a9a}}},
+ {X: Field{[10]uint32{0x001b0a9a, 0x02d4bbf3, 0x01279930, 0x026301ed, 0x032123fe, 0x0083dfc5, 0x00ea7dff, 0x03213d86, 0x0075e85f, 0x001ec022}}, Y: Field{[10]uint32{0x03075f90, 0x0159802f, 0x03904a8c, 0x00d2d42e, 0x02331f78, 0x00541dcb, 0x0055a1c4, 0x0245a697, 0x00bb8dbc, 0x000fcecc}}},
+ {X: Field{[10]uint32{0x0234ef3a, 0x02875de3, 0x009a5ba7, 0x01e81369, 0x02907e9b, 0x01352de5, 0x01795600, 0x0129261d, 0x00d91630, 0x002e96d1}}, Y: Field{[10]uint32{0x03333661, 0x0131d6f3, 0x01e13f87, 0x01d8fb4e, 0x024d47ea, 0x00373537, 0x02e124f0, 0x0278ee6e, 0x03aa4821, 0x0005ad26}}},
+ {X: Field{[10]uint32{0x02b8d9df, 0x0358a738, 0x03594342, 0x0084d568, 0x02910fe5, 0x016fe991, 0x02b3a23b, 0x00483614, 0x03e27fe4, 0x001a47ab}}, Y: Field{[10]uint32{0x02c71d85, 0x01fe7e2d, 0x02878188, 0x007712f2, 0x01bd71ea, 0x01489f6f, 0x0294fd6a, 0x013729f0, 0x00974218, 0x0010e818}}},
+ {X: Field{[10]uint32{0x00a54123, 0x001b9215, 0x002d8440, 0x035f0dd5, 0x01551377, 0x01177299, 0x0173e38a, 0x02a1bcd4, 0x00bbc9f5, 0x00004e9b}}, Y: Field{[10]uint32{0x00488620, 0x00625202, 0x004b884d, 0x023cc08f, 0x028a43d3, 0x03a3ebe7, 0x01cc2e62, 0x01367bff, 0x009c9a96, 0x003b3ce0}}},
+ {X: Field{[10]uint32{0x02f10e45, 0x00ba3579, 0x036ceb71, 0x0080b730, 0x02da6654, 0x02d3c396, 0x01731e91, 0x01734a4f, 0x02f3fb59, 0x000cff4a}}, Y: Field{[10]uint32{0x018ed2cf, 0x00c79802, 0x00c31f63, 0x00c6cea5, 0x0280ca53, 0x00233e8e, 0x0181bf98, 0x0376912e, 0x007a0a8b, 0x00389a8c}}},
+ {X: Field{[10]uint32{0x00b774f6, 0x02f962cd, 0x0244c15c, 0x02608bd3, 0x03b00332, 0x029d6124, 0x033ba575, 0x01fde1da, 0x003359e4, 0x001d6550}}, Y: Field{[10]uint32{0x020458a9, 0x01c0f797, 0x01253f8e, 0x00729eb4, 0x00b6e665, 0x0110b000, 0x02998553, 0x015a36c2, 0x004070b8, 0x001fba68}}},
+ {X: Field{[10]uint32{0x035b9480, 0x0176965b, 0x032f3650, 0x01944340, 0x00b3dd36, 0x01052fbd, 0x0015e7e8, 0x01f9a13a, 0x03b0c3b1, 0x001e4667}}, Y: Field{[10]uint32{0x03d9a0ab, 0x02b0fb94, 0x021b5054, 0x020d0646, 0x00abaab3, 0x0128156e, 0x03aacba5, 0x03273fbc, 0x0173f358, 0x00256f2a}}},
+ {X: Field{[10]uint32{0x011aa352, 0x01c00029, 0x017b5d6d, 0x0306b226, 0x006edd0b, 0x028cff50, 0x03ed64e0, 0x03382cb9, 0x00e7962e, 0x0025c17d}}, Y: Field{[10]uint32{0x019ff347, 0x0375ca12, 0x0399db2b, 0x0157dc6a, 0x0058f408, 0x024875b6, 0x026193d8, 0x011ea284, 0x0357ad45, 0x00135339}}},
+ {X: Field{[10]uint32{0x012fd777, 0x0368f38c, 0x02e12df7, 0x01d6e2c5, 0x01cadeeb, 0x00dd99d3, 0x0160b983, 0x02ad7cc1, 0x0067b841, 0x002206bc}}, Y: Field{[10]uint32{0x0083b84f, 0x0337b24d, 0x037019ac, 0x00f468e8, 0x017588be, 0x02c512c7, 0x010f62d8, 0x03c175f0, 0x03d4512e, 0x0033304f}}},
+ {X: Field{[10]uint32{0x00e99621, 0x0357d704, 0x012fb1f6, 0x02dcbf50, 0x0041bfc3, 0x01eb41e5, 0x02e14cd9, 0x032763d0, 0x024433c2, 0x003fa3de}}, Y: Field{[10]uint32{0x02b3b2a9, 0x00ff752d, 0x026572a9, 0x03cf311a, 0x034c8bab, 0x0211b1e6, 0x01c4ee3a, 0x010dd25b, 0x02ee0cf3, 0x00396d5d}}},
+ {X: Field{[10]uint32{0x004d798f, 0x024eaf17, 0x006cb918, 0x01927814, 0x0384f400, 0x00f0d3a0, 0x012f8320, 0x022ce0fe, 0x00da18e0, 0x003fd0f2}}, Y: Field{[10]uint32{0x01df2e7f, 0x01f6c05f, 0x02fd5242, 0x00ce92ec, 0x02f5a754, 0x02076f61, 0x009dde19, 0x03680b03, 0x005923a9, 0x00295d68}}},
+ {X: Field{[10]uint32{0x00db276b, 0x031bf54a, 0x00a42ed3, 0x0105cd9e, 0x03d8f9d8, 0x012ec6cc, 0x00852427, 0x0138844d, 0x0056b97f, 0x00011c54}}, Y: Field{[10]uint32{0x014302b2, 0x03e88061, 0x0212fcab, 0x03b99beb, 0x0073a18b, 0x02e62a8a, 0x00cd71ef, 0x03c767fa, 0x01463521, 0x002d3034}}},
+ {X: Field{[10]uint32{0x031fff51, 0x0121c709, 0x00814974, 0x03acc6a2, 0x02acd85e, 0x02e0f9fb, 0x0251394c, 0x00756b0a, 0x0008c5f5, 0x00217276}}, Y: Field{[10]uint32{0x03666a7d, 0x024aef96, 0x01eb8b49, 0x0034660b, 0x02018505, 0x01bb1fd7, 0x0191454d, 0x026e219a, 0x03bf2382, 0x0000a9f0}}},
+ {X: Field{[10]uint32{0x0170dac9, 0x0265fe5f, 0x02f24529, 0x031db5b4, 0x03f46b60, 0x000d1173, 0x00b4b259, 0x00da380f, 0x00ef8b1e, 0x00300ae5}}, Y: Field{[10]uint32{0x0325f3a0, 0x00d0f079, 0x021d680a, 0x028ab3e5, 0x0310fadb, 0x037874a2, 0x0017825a, 0x02079235, 0x0129bcff, 0x002eee5f}}},
+ {X: Field{[10]uint32{0x00241df6, 0x011caa0e, 0x02db3e29, 0x018ffb9e, 0x020fcb8b, 0x034d4e87, 0x01ac4393, 0x01bdf90c, 0x03bd28e2, 0x0012c564}}, Y: Field{[10]uint32{0x02fdcc56, 0x0138d3bc, 0x00ef0d6e, 0x022cf332, 0x003f184f, 0x02b27616, 0x0225b113, 0x01a15498, 0x0328f496, 0x002299e9}}},
+ {X: Field{[10]uint32{0x02a64dd4, 0x007353c9, 0x00dd231d, 0x01b92e77, 0x037a8e7f, 0x0354a1a6, 0x02505559, 0x037b8eb5, 0x015bba51, 0x003d901d}}, Y: Field{[10]uint32{0x0287e1c8, 0x03414e5b, 0x00882a48, 0x03215745, 0x0391e0e3, 0x03092b01, 0x0029f6ee, 0x00a42f53, 0x0000a53e, 0x001ce1fe}}},
+ {X: Field{[10]uint32{0x0389515b, 0x01da5e5d, 0x0206e022, 0x008a4529, 0x0016d0a5, 0x01c233be, 0x036f42cd, 0x00db18f7, 0x02a94368, 0x002524d1}}, Y: Field{[10]uint32{0x00e2b356, 0x00e0ee6a, 0x00073031, 0x034fb797, 0x0031dd41, 0x021d505d, 0x025c847b, 0x000807bd, 0x032d952a, 0x002a40e4}}},
+ {X: Field{[10]uint32{0x03f91a60, 0x01802299, 0x0245cde4, 0x020f172f, 0x02cdcc97, 0x026308bc, 0x010b1f66, 0x03b7f08e, 0x019ec769, 0x00060902}}, Y: Field{[10]uint32{0x011bd1e2, 0x0109d9cc, 0x02ae0adf, 0x0200de24, 0x02804a87, 0x03e82238, 0x02051f3b, 0x013755b3, 0x01fa81e0, 0x0003e101}}},
+ {X: Field{[10]uint32{0x0201d341, 0x022b3475, 0x022f92ec, 0x02484e71, 0x00683aa7, 0x03a57cf7, 0x005f34cc, 0x00f64a20, 0x03d8e463, 0x0039ad1b}}, Y: Field{[10]uint32{0x001d824a, 0x0074c033, 0x011d1639, 0x02930a0e, 0x00d6c0be, 0x032fd636, 0x00faf4a7, 0x0298e94a, 0x0013f3fe, 0x0014cf6e}}},
+ {X: Field{[10]uint32{0x03992b93, 0x010db3ff, 0x0015d60a, 0x014bc5d8, 0x03a04c62, 0x03504e74, 0x00d150d3, 0x02c63752, 0x0330dc19, 0x0018de66}}, Y: Field{[10]uint32{0x02dcc41b, 0x0336c345, 0x015073c3, 0x032cae8d, 0x0007f485, 0x03c1905e, 0x00e72f5f, 0x0137bb40, 0x01125ebf, 0x00098814}}},
+ {X: Field{[10]uint32{0x02ad7338, 0x028a7c4b, 0x01676670, 0x00927c7f, 0x037fac53, 0x038dc2c3, 0x01b88d3a, 0x0280b7a1, 0x035ab1d5, 0x0023340b}}, Y: Field{[10]uint32{0x00c0d8e4, 0x03c2586f, 0x006278e2, 0x03bb10e4, 0x03511d56, 0x02f26ee9, 0x02cb70f0, 0x02275984, 0x02acceb6, 0x000d62d0}}},
+ {X: Field{[10]uint32{0x01f82fab, 0x0286a7b7, 0x00991d3e, 0x0199282a, 0x01f76127, 0x03ccec19, 0x01aba41b, 0x034777a5, 0x03e6d48b, 0x00357859}}, Y: Field{[10]uint32{0x0271d1f7, 0x0309a1ab, 0x03d70849, 0x0188e095, 0x02aaf45f, 0x03361ab8, 0x00ec9cb3, 0x0337d3f1, 0x0182d653, 0x001b308e}}},
+ {X: Field{[10]uint32{0x009bfdba, 0x006773df, 0x030cf4ff, 0x01096192, 0x01d72b19, 0x01fc0306, 0x034f09d9, 0x03cb7c4c, 0x01006987, 0x003101cd}}, Y: Field{[10]uint32{0x037ff262, 0x003274ff, 0x00ca82bf, 0x002b295a, 0x02b760ff, 0x000de3e0, 0x03366bf3, 0x004c9aa6, 0x00466b46, 0x003d959a}}},
+ {X: Field{[10]uint32{0x00c4fde2, 0x0031eabc, 0x02b91184, 0x0303ecb7, 0x0229a7c2, 0x020e0c63, 0x0221db2a, 0x006fec22, 0x02719c50, 0x000277c7}}, Y: Field{[10]uint32{0x02d00fc0, 0x014c973e, 0x03ea580a, 0x016d0f7b, 0x03e977c7, 0x024079c0, 0x0315ae54, 0x00300ac0, 0x00ae6d0e, 0x003358a3}}},
+ {X: Field{[10]uint32{0x024c696c, 0x022e134a, 0x0165b7d0, 0x01242b5c, 0x031c91c2, 0x0248b165, 0x03108ee6, 0x030c2408, 0x0029df73, 0x002545d9}}, Y: Field{[10]uint32{0x01c0fbe4, 0x0021b2fa, 0x000cbdd8, 0x02dc901d, 0x011994fb, 0x00dd724a, 0x02084700, 0x036f3208, 0x00493b62, 0x000fb3ff}}},
+ {X: Field{[10]uint32{0x01628c6e, 0x023d8031, 0x0156da31, 0x021cd3d5, 0x02f57fe1, 0x012fa3ed, 0x03a7e0e9, 0x0034d784, 0x00e8692b, 0x001c2312}}, Y: Field{[10]uint32{0x0105a664, 0x0378c828, 0x029bfe1c, 0x0004fdf6, 0x005af7e6, 0x03da8bc0, 0x020432e9, 0x00747c9f, 0x0302deee, 0x00254d38}}},
+ {X: Field{[10]uint32{0x025b4c09, 0x00732853, 0x0222b299, 0x030274c9, 0x0146275e, 0x02c9af85, 0x01620794, 0x031ce6d7, 0x017ab82d, 0x0009dd78}}, Y: Field{[10]uint32{0x031ccddc, 0x02de4206, 0x0152e8a9, 0x00a21d13, 0x03338ab2, 0x03684ca3, 0x02b52c28, 0x00d67f7b, 0x027c80e8, 0x000ea9bb}}},
+ {X: Field{[10]uint32{0x030192da, 0x0248a700, 0x03270be1, 0x00d0f0e0, 0x0044da6b, 0x023ed228, 0x0334959b, 0x013cc73c, 0x02c2039c, 0x0011f06a}}, Y: Field{[10]uint32{0x000d7cc0, 0x038562d8, 0x003551fd, 0x0168848a, 0x00e5813f, 0x02681471, 0x01cd4025, 0x03087611, 0x011c5ba6, 0x00176b59}}},
+ {X: Field{[10]uint32{0x00bad15e, 0x036a86ee, 0x02c70d77, 0x0353e8a2, 0x01eef459, 0x033e897c, 0x03b2bf59, 0x01325806, 0x005a4b86, 0x003e03d1}}, Y: Field{[10]uint32{0x0374ff16, 0x01ffdc2c, 0x02c8863f, 0x03d297c4, 0x0183cd57, 0x03a7e239, 0x00b9da6c, 0x01a659b4, 0x02046b8c, 0x0028e0f7}}},
+ {X: Field{[10]uint32{0x014d2f66, 0x02e40faf, 0x01bf6f9c, 0x00967cb5, 0x02b22081, 0x01e2dc5c, 0x01f436d5, 0x00d866a3, 0x03b91ad3, 0x000a4939}}, Y: Field{[10]uint32{0x00841875, 0x022f6e12, 0x00effa76, 0x0156b58b, 0x02afa412, 0x005747c1, 0x00e4f3fe, 0x027d50d2, 0x0169e231, 0x002e1908}}},
+ {X: Field{[10]uint32{0x02dc4d83, 0x01017cdd, 0x02e2af13, 0x0179df8c, 0x00431078, 0x028ae6b1, 0x001854e3, 0x013b4a0d, 0x007b91a6, 0x000df582}}, Y: Field{[10]uint32{0x01f25003, 0x02e65c4f, 0x01b1f9bd, 0x0024b094, 0x01a3ac9f, 0x00b9bf37, 0x023092f3, 0x02f32ea0, 0x0117e068, 0x000d688e}}},
+ {X: Field{[10]uint32{0x00f4fab2, 0x0372e484, 0x00fd8391, 0x033a0a53, 0x03e000d2, 0x033e12d3, 0x003691cb, 0x006f81ad, 0x016dc79f, 0x0035d22a}}, Y: Field{[10]uint32{0x005bf51c, 0x031369bc, 0x036c8223, 0x009eabed, 0x00975c09, 0x02e05c8a, 0x017e5c04, 0x0240bb39, 0x01e065da, 0x001d6d2b}}},
+ {X: Field{[10]uint32{0x002cc30c, 0x00cf41b9, 0x03a8fa02, 0x013b0957, 0x03949241, 0x00edbee5, 0x02361ea3, 0x0213fc98, 0x0225eb50, 0x0034174a}}, Y: Field{[10]uint32{0x01a6f2d2, 0x03ead81a, 0x00f4e75e, 0x02616ea6, 0x01ba57a1, 0x022a80f6, 0x03514290, 0x0323ce16, 0x02eececd, 0x00052eef}}},
+ {X: Field{[10]uint32{0x003ff793, 0x022765d2, 0x0030278c, 0x03d7a2a3, 0x00b4684b, 0x0193b2a7, 0x03f39067, 0x03b6f96b, 0x015bd137, 0x001a6ea6}}, Y: Field{[10]uint32{0x03b63e32, 0x03864d96, 0x000b246d, 0x01b1c056, 0x01a79ad9, 0x007176e5, 0x033e8649, 0x01965a60, 0x0051b622, 0x000ac73d}}},
+ {X: Field{[10]uint32{0x00419461, 0x00bfdc55, 0x0197d9a8, 0x03cbc7b2, 0x033a50af, 0x01418412, 0x020342ff, 0x033ca3f7, 0x01a15d0e, 0x001fc07a}}, Y: Field{[10]uint32{0x0112dc68, 0x037310eb, 0x030e5e03, 0x0196a0d1, 0x03d27040, 0x03b72ad8, 0x01e25d1f, 0x034dd4d8, 0x0194a6b8, 0x00070f25}}},
+ {X: Field{[10]uint32{0x02e48cc6, 0x02902795, 0x0219d813, 0x000fc3e1, 0x00f2413d, 0x00613933, 0x0201bc47, 0x024107f4, 0x02fd193b, 0x001c648c}}, Y: Field{[10]uint32{0x0229a953, 0x00674f2b, 0x02d1e68b, 0x028197e0, 0x0312fb55, 0x03ab816a, 0x037ff609, 0x02c14d4c, 0x03187dcc, 0x000587f1}}},
+ {X: Field{[10]uint32{0x02e78c27, 0x00f7219d, 0x03d082f5, 0x03e91b22, 0x039a63bc, 0x01ef4a2f, 0x006009a5, 0x01cc40ce, 0x0120155f, 0x00056e10}}, Y: Field{[10]uint32{0x01737816, 0x00b140cc, 0x03605140, 0x0283aa7e, 0x03188171, 0x0102b293, 0x0004e0c8, 0x01f8bfa6, 0x037ec901, 0x0011f758}}},
+ {X: Field{[10]uint32{0x03fec567, 0x01301d2e, 0x01a2c007, 0x0389d053, 0x0004a95c, 0x02e9a645, 0x0352ed4e, 0x00011df6, 0x0197bd38, 0x003fd0a7}}, Y: Field{[10]uint32{0x017b3048, 0x016a8075, 0x00f2569a, 0x002b2f2e, 0x036708c0, 0x037ddf00, 0x0173f624, 0x016eacd2, 0x03bd6e63, 0x001ece9b}}},
+ {X: Field{[10]uint32{0x010a6ee3, 0x02c79575, 0x01ed8858, 0x0012c984, 0x01379174, 0x00b1dfa0, 0x01f476d1, 0x039d333c, 0x005b016b, 0x0003335c}}, Y: Field{[10]uint32{0x00e87c01, 0x02bff0d0, 0x01f1f737, 0x0130c6b6, 0x020946cb, 0x025fde35, 0x0155e178, 0x02c94937, 0x01e75cc7, 0x0021d06b}}},
+ {X: Field{[10]uint32{0x03b65b27, 0x030df542, 0x01534d54, 0x001a3526, 0x0294e4b4, 0x00c03b2a, 0x0278e818, 0x0315fe45, 0x025e24b3, 0x00196d86}}, Y: Field{[10]uint32{0x01ed0c40, 0x005a9d9d, 0x024fd79c, 0x031e9719, 0x02f65ac4, 0x02b82147, 0x0386fda2, 0x01ee0bc6, 0x0228aab9, 0x002435d7}}},
+ {X: Field{[10]uint32{0x03a06ef0, 0x005067de, 0x00cf173c, 0x021f068e, 0x014ffe04, 0x0163ee39, 0x0382bdd7, 0x01cf650f, 0x01df8f40, 0x0019c54a}}, Y: Field{[10]uint32{0x00fede59, 0x01533f45, 0x029504d8, 0x01071c1d, 0x00454fd1, 0x03547af9, 0x01121e10, 0x00d26b74, 0x032d1f23, 0x00311b67}}},
+ {X: Field{[10]uint32{0x001b0440, 0x008f3fe4, 0x035b68e8, 0x0375319c, 0x0073da3f, 0x002ef4b0, 0x02f8e703, 0x005a5c1e, 0x02760e7a, 0x0000abe2}}, Y: Field{[10]uint32{0x02c3c1cb, 0x03f40989, 0x0143f72f, 0x02b7597d, 0x017c34f5, 0x007b8cf3, 0x01659769, 0x01c54f1c, 0x03e79ada, 0x00155596}}},
+ {X: Field{[10]uint32{0x03575707, 0x0251ca9b, 0x01fc42fb, 0x03543bd6, 0x024def3f, 0x01f31cc2, 0x00b3b1fb, 0x02ee1d3f, 0x016fc5ff, 0x002b3607}}, Y: Field{[10]uint32{0x01d181a3, 0x00a59180, 0x011cce09, 0x03258fa1, 0x02b87c0e, 0x001c6da5, 0x02f47eb5, 0x03aa7847, 0x028ec8b8, 0x00238c66}}},
+ {X: Field{[10]uint32{0x00ffb912, 0x033a36e0, 0x0041bd60, 0x02a66e45, 0x02ae062c, 0x0182a9fc, 0x012d0bb3, 0x03a2f081, 0x03d53ab9, 0x002addf9}}, Y: Field{[10]uint32{0x01f96b5a, 0x0131d48b, 0x02d8fdfa, 0x0262d75b, 0x02aca909, 0x0075c104, 0x03992e5e, 0x02e56e7a, 0x02d9cb0a, 0x0017e4ad}}},
+ {X: Field{[10]uint32{0x00124046, 0x0222acde, 0x03265e01, 0x03cded98, 0x031d7efa, 0x001a88c0, 0x03eda09b, 0x0231fbe2, 0x01951a6a, 0x001e62e0}}, Y: Field{[10]uint32{0x002b1bf6, 0x03e75138, 0x01de7a1b, 0x02d7c460, 0x03d91382, 0x0399d1db, 0x004a7e54, 0x0290c0d9, 0x021b0bae, 0x002564b6}}},
+ {X: Field{[10]uint32{0x0377b096, 0x0354a2e5, 0x02f29ed6, 0x00e893fd, 0x009dbff9, 0x0222bad3, 0x01dea224, 0x039df637, 0x02ae0c3b, 0x003c921a}}, Y: Field{[10]uint32{0x0029126b, 0x0096aa12, 0x028cc413, 0x018a360e, 0x03d8409b, 0x00dabec2, 0x010327fe, 0x03211df1, 0x0150fe75, 0x00238acb}}},
+ {X: Field{[10]uint32{0x006d2d54, 0x025d2205, 0x00333f93, 0x0220993d, 0x02d16ca0, 0x02bbbb9c, 0x0364ee33, 0x03aa2f83, 0x01093b8a, 0x00088b8f}}, Y: Field{[10]uint32{0x02cdcaa9, 0x02d4e772, 0x018a4351, 0x01e332c2, 0x0137ba1f, 0x0283af5e, 0x02dd16e8, 0x02ef1070, 0x000fbfe6, 0x0003bfd4}}},
+ {X: Field{[10]uint32{0x0121c1c9, 0x02df4130, 0x01bd0165, 0x007670c8, 0x024f9924, 0x02d4f800, 0x01a18eea, 0x00d1d891, 0x03fe7ca9, 0x0019da34}}, Y: Field{[10]uint32{0x00272877, 0x02bba2e4, 0x00a43823, 0x0094340c, 0x000c4dc8, 0x027871de, 0x019ff1d0, 0x025c888c, 0x0173c9b9, 0x00100b27}}},
+ {X: Field{[10]uint32{0x022dda79, 0x01fc263c, 0x00ef2513, 0x02133e32, 0x01b0b628, 0x03f5e057, 0x0325697b, 0x022033bf, 0x000fb2f0, 0x001bad9d}}, Y: Field{[10]uint32{0x0085c86f, 0x027c0fc5, 0x01b68520, 0x02579163, 0x0079c4b6, 0x03d0b9ab, 0x002061c1, 0x015c4f0c, 0x0131c12f, 0x0033dfa1}}},
+ {X: Field{[10]uint32{0x025fe51b, 0x0001aaa5, 0x01ac2950, 0x0165c5ca, 0x025ede89, 0x019eda9f, 0x00f385f3, 0x0169faa8, 0x03484eb0, 0x001c407c}}, Y: Field{[10]uint32{0x00d5c3f3, 0x013e24c4, 0x0144be26, 0x01687912, 0x00260559, 0x01c6bf0b, 0x00fff9fc, 0x03edd5de, 0x0113a040, 0x002347ee}}},
+ {X: Field{[10]uint32{0x02886579, 0x0239b4c3, 0x0287a11c, 0x03ab3bee, 0x02a0de03, 0x0080c0d8, 0x024b25f1, 0x028978ff, 0x005cacc6, 0x001d6a79}}, Y: Field{[10]uint32{0x03f69c6e, 0x01f00af3, 0x03f7adbe, 0x03e555a0, 0x02854c49, 0x00007f60, 0x0202cf31, 0x021b649a, 0x0195e919, 0x0014aa16}}},
+ {X: Field{[10]uint32{0x0337dcbc, 0x0359cc0d, 0x001b2954, 0x03de0c2b, 0x02ceac14, 0x01fe66b7, 0x03ffc542, 0x0195ca62, 0x0192bad7, 0x000c4653}}, Y: Field{[10]uint32{0x03dd2832, 0x007fcfd7, 0x02f19a2d, 0x02f36b0b, 0x028c556e, 0x00f316f1, 0x02449fa3, 0x023bba74, 0x0045f531, 0x00267a07}}},
+ {X: Field{[10]uint32{0x03d505af, 0x02562b02, 0x0123c522, 0x030e115f, 0x03c1d743, 0x002d3338, 0x02c61387, 0x01bd0e1a, 0x03fe76fd, 0x002413e8}}, Y: Field{[10]uint32{0x03c1763b, 0x02ab9069, 0x023045c8, 0x03ece55e, 0x018dae9b, 0x0131c165, 0x02929e45, 0x0118cde7, 0x02621adf, 0x002509cc}}},
+ {X: Field{[10]uint32{0x00a8e0fd, 0x02a4ffe9, 0x01f26b5f, 0x0109e29f, 0x03040de1, 0x00fe8996, 0x019aedef, 0x022cc8da, 0x01f31a82, 0x00074618}}, Y: Field{[10]uint32{0x0099f7dc, 0x017d1376, 0x01f61199, 0x03098e99, 0x013ffc30, 0x0212ee59, 0x01306e3b, 0x03faca38, 0x0381f13f, 0x002e595d}}},
+ {X: Field{[10]uint32{0x0019ad64, 0x0395179a, 0x0009b73c, 0x008a110f, 0x02aac959, 0x02159773, 0x02f0289e, 0x02975797, 0x01ef6de1, 0x000ef4cf}}, Y: Field{[10]uint32{0x00f9c810, 0x00d7b575, 0x001c2975, 0x0077d491, 0x038bc985, 0x029c3a6f, 0x00366279, 0x002f525d, 0x0109eb56, 0x00264fc0}}},
+ {X: Field{[10]uint32{0x00958634, 0x031fdb16, 0x0261c7be, 0x03adc543, 0x03e4c257, 0x039681f1, 0x0327b248, 0x02bb4a9f, 0x01452a39, 0x003286df}}, Y: Field{[10]uint32{0x004afcff, 0x03eb368f, 0x032c7298, 0x03dd10ab, 0x010179c0, 0x027ed520, 0x01a98043, 0x01f0dedf, 0x021bc035, 0x002ac47f}}},
+ {X: Field{[10]uint32{0x0271aa58, 0x0355f461, 0x00f61da6, 0x01f57e4a, 0x00df145f, 0x0339f66b, 0x03f29a36, 0x00e1ad4f, 0x01cadee8, 0x0009cea5}}, Y: Field{[10]uint32{0x025bbe2b, 0x0053e546, 0x03ac2adb, 0x0071cf14, 0x00315a03, 0x010194a1, 0x02c6d832, 0x014df469, 0x019dbb06, 0x0022298d}}},
+ {X: Field{[10]uint32{0x005561e6, 0x02443e6b, 0x02279d0f, 0x03d4a511, 0x01c06923, 0x00e48700, 0x03ad79cd, 0x02eeb154, 0x00fca139, 0x001fa930}}, Y: Field{[10]uint32{0x016dec96, 0x03e82eca, 0x0193a54d, 0x00ddc6bb, 0x002eb71c, 0x018e7c66, 0x01e79822, 0x00c38bcc, 0x01470458, 0x002f4127}}},
+ {X: Field{[10]uint32{0x0207d336, 0x012581e5, 0x02ce80bc, 0x01a3f344, 0x00d3823f, 0x017331a1, 0x03932401, 0x02af9751, 0x001c0a2b, 0x001c7c60}}, Y: Field{[10]uint32{0x03f1b4b1, 0x039b76c7, 0x00a6cf5a, 0x00390e77, 0x0214430c, 0x03a3f9e9, 0x01b7de37, 0x01395082, 0x03d00838, 0x00107b41}}},
+ {X: Field{[10]uint32{0x01cd8828, 0x00160b48, 0x00f2a1c9, 0x036589e7, 0x017000ff, 0x0155068f, 0x00aec515, 0x0287baba, 0x0073652b, 0x002ca0e2}}, Y: Field{[10]uint32{0x027dce5e, 0x02d20474, 0x0079d2a0, 0x03ca87bf, 0x01ee4d19, 0x01abf30c, 0x01faf658, 0x038e9491, 0x015573f5, 0x00011ffc}}},
+ {X: Field{[10]uint32{0x015a3e21, 0x036263ad, 0x02cb5b68, 0x0129afc2, 0x03d9f816, 0x00224892, 0x033fbdcc, 0x012f05a1, 0x01a72263, 0x000d32a3}}, Y: Field{[10]uint32{0x01c5d986, 0x02440339, 0x01f4b73f, 0x0241464b, 0x031f041a, 0x02168ffd, 0x0369055d, 0x0324701d, 0x036036a9, 0x00362bed}}},
+ {X: Field{[10]uint32{0x0319cc8f, 0x01c8cdd2, 0x0115aa0e, 0x021e270e, 0x034b76eb, 0x03db5e5a, 0x00cf5b2e, 0x0106bf28, 0x0397d973, 0x00084b2c}}, Y: Field{[10]uint32{0x02f170a1, 0x030d7590, 0x01e64875, 0x01ccbde3, 0x01ff17e2, 0x0049b143, 0x0285f501, 0x03c1be5d, 0x00ec5f29, 0x003c1b8b}}},
+ {X: Field{[10]uint32{0x00a6228a, 0x0202471b, 0x002e9ffa, 0x00bf392d, 0x01d5f29d, 0x01e24fda, 0x0182dfde, 0x004f70c9, 0x03f643bd, 0x002f00d9}}, Y: Field{[10]uint32{0x00556e78, 0x03fd0a5d, 0x0373f527, 0x01e5ee5b, 0x02c17641, 0x02d66b0c, 0x03f3e44a, 0x007c192b, 0x0089d125, 0x0026fb1b}}},
+ {X: Field{[10]uint32{0x01bd5672, 0x00403c6a, 0x029d8dec, 0x00cf37ad, 0x025e489e, 0x03466392, 0x03169bb4, 0x0222516a, 0x00235d8e, 0x0023f2c5}}, Y: Field{[10]uint32{0x03fc057c, 0x036de439, 0x01f5fe52, 0x00816c74, 0x03c45ae3, 0x01102109, 0x0302a46b, 0x0242c980, 0x0396bab3, 0x003e872c}}},
+ {X: Field{[10]uint32{0x011e64ae, 0x0170beb9, 0x010440e1, 0x02133289, 0x00d4917e, 0x0077d83d, 0x0043e801, 0x03b0832f, 0x01056675, 0x001c2b61}}, Y: Field{[10]uint32{0x015a800d, 0x013e9847, 0x004e8c00, 0x03832fbd, 0x02b63d68, 0x03d6dc4e, 0x0262475d, 0x029f2697, 0x0356af9f, 0x003d2944}}},
+ {X: Field{[10]uint32{0x01695842, 0x0387db2e, 0x028803ed, 0x036611be, 0x02bcf6e6, 0x025c6301, 0x026df81f, 0x0105a21b, 0x03474807, 0x002b69eb}}, Y: Field{[10]uint32{0x008a582f, 0x02ddb6e6, 0x001dd575, 0x02440031, 0x0298369c, 0x01dc7654, 0x0348bbe0, 0x009f5371, 0x011f50f4, 0x0003d9b5}}},
+ {X: Field{[10]uint32{0x0102eeee, 0x011762c4, 0x0052c7f0, 0x01ee949f, 0x01bf1e97, 0x034d3e3a, 0x038108f9, 0x03aec46e, 0x018d7323, 0x003c6e1f}}, Y: Field{[10]uint32{0x00346556, 0x037dda2d, 0x000b79bd, 0x039c1f8e, 0x037e2aa0, 0x01edd56c, 0x01e58424, 0x039e827b, 0x030351eb, 0x0002f655}}},
+ {X: Field{[10]uint32{0x012a0553, 0x0244d592, 0x00833cc5, 0x0145d9b3, 0x031fbf7c, 0x03fb5ee0, 0x000c301c, 0x0193ab24, 0x015ad552, 0x0024d967}}, Y: Field{[10]uint32{0x00154beb, 0x01b78170, 0x0089ccf4, 0x0176215b, 0x03519ff6, 0x030740a8, 0x02137df1, 0x000596be, 0x01e9646d, 0x002da4e2}}},
+ {X: Field{[10]uint32{0x02d4ffe2, 0x00e3df63, 0x01f48b17, 0x039745e0, 0x00409a62, 0x0056fbbb, 0x002f54a4, 0x013ff712, 0x00492a9b, 0x003a74af}}, Y: Field{[10]uint32{0x00305df5, 0x00c10211, 0x00631608, 0x0020d854, 0x038d6392, 0x013c94e0, 0x01de313f, 0x02fe0037, 0x02522dcc, 0x00224f91}}},
+ {X: Field{[10]uint32{0x006cb210, 0x038abde4, 0x00744229, 0x0306a1d8, 0x01825e0b, 0x01cb69a9, 0x0103eea3, 0x02b64460, 0x020a7bf1, 0x00050905}}, Y: Field{[10]uint32{0x0196af23, 0x03be284e, 0x0343f209, 0x03a47d8d, 0x024f1519, 0x002c8fa5, 0x02f1d0e1, 0x0175c479, 0x022696a7, 0x00325368}}},
+ {X: Field{[10]uint32{0x009efd87, 0x0233ba27, 0x02300c45, 0x01639bc9, 0x018686d0, 0x02d7e9fa, 0x03e434ae, 0x012f52aa, 0x0312402e, 0x001fe409}}, Y: Field{[10]uint32{0x02f95fb5, 0x00622b18, 0x01602669, 0x02305498, 0x031b8b01, 0x022111a9, 0x02cdcddc, 0x02d062c5, 0x020b2aef, 0x002f0011}}},
+ {X: Field{[10]uint32{0x0372745c, 0x03187d5b, 0x03c01255, 0x01a8e051, 0x022a133f, 0x02370a4d, 0x02e5f16c, 0x003d4fa1, 0x027c66cb, 0x0034c9f3}}, Y: Field{[10]uint32{0x02bea436, 0x01d628e1, 0x015f8353, 0x035071be, 0x02618cc6, 0x02314b72, 0x0108b85b, 0x00e7041a, 0x018ac3cb, 0x00137052}}},
+ {X: Field{[10]uint32{0x032db3b3, 0x00e5ab78, 0x03d1a0d5, 0x033951ef, 0x01137dff, 0x022eff0c, 0x013803be, 0x00441800, 0x0319c9d8, 0x003c113a}}, Y: Field{[10]uint32{0x02526f2a, 0x00ae77df, 0x03af7c10, 0x037bff33, 0x028128a8, 0x02ca0b3f, 0x00551cea, 0x00f999fe, 0x028d9c4c, 0x0016b510}}},
+ {X: Field{[10]uint32{0x0218daf4, 0x03172f03, 0x03d55f67, 0x02dfcf00, 0x03d135bb, 0x03755100, 0x006a81eb, 0x0066fabd, 0x0237b95d, 0x001e9b14}}, Y: Field{[10]uint32{0x0204385b, 0x038a48a8, 0x001d70cc, 0x019a29c3, 0x01bd492c, 0x03fda3fb, 0x00fc6e74, 0x03ad7121, 0x00b847fc, 0x0018a8ba}}},
+ {X: Field{[10]uint32{0x019f82f0, 0x0256f06d, 0x01bb5804, 0x026d1d62, 0x02ffae94, 0x01708211, 0x0372afaf, 0x0302deed, 0x00dcb069, 0x001671ff}}, Y: Field{[10]uint32{0x026c38ad, 0x023bae84, 0x006ec335, 0x014bc935, 0x02c09b36, 0x03238b1e, 0x03a4d79a, 0x0159adc6, 0x008c6657, 0x0020bb16}}},
+ {X: Field{[10]uint32{0x036543d7, 0x0006f51a, 0x03ae00ea, 0x036f37c9, 0x0081d99f, 0x02ee1795, 0x00d3dc6d, 0x01563310, 0x00211ed4, 0x003e33cf}}, Y: Field{[10]uint32{0x03a9778b, 0x037a7721, 0x03b20054, 0x030f82a2, 0x035506a5, 0x03338c10, 0x011f5dbd, 0x03d8c225, 0x01d01c3d, 0x002f6012}}},
+ {X: Field{[10]uint32{0x024504bc, 0x00b39c54, 0x03764278, 0x00ff3f44, 0x024d2dd2, 0x00eb2a0a, 0x03471893, 0x02753c7f, 0x0364b238, 0x000e1575}}, Y: Field{[10]uint32{0x019ef72d, 0x01b02f1d, 0x01f95944, 0x03bb7c4f, 0x03b14a71, 0x02ab8ea8, 0x024ec346, 0x02af409c, 0x02254af2, 0x0020b13a}}},
+ {X: Field{[10]uint32{0x02de5431, 0x03774694, 0x02ffa48c, 0x01b6bdf9, 0x036d3e0e, 0x01554f6a, 0x00b1d733, 0x03c3634c, 0x03311de4, 0x001dd912}}, Y: Field{[10]uint32{0x005916b4, 0x03d4853d, 0x029b4cdb, 0x00c1a560, 0x017581c9, 0x00aedd0c, 0x03730f99, 0x001cd5cd, 0x03ce0c0a, 0x00191785}}},
+ {X: Field{[10]uint32{0x01ca138d, 0x00c198f6, 0x01d34565, 0x033dd996, 0x0156bfc0, 0x0194deaf, 0x02511daa, 0x02bef2ca, 0x0343afd6, 0x0029352b}}, Y: Field{[10]uint32{0x03bb09dd, 0x028afadc, 0x03747a25, 0x017cf57f, 0x0088b5db, 0x0358f7cd, 0x007f0737, 0x03cc6ee4, 0x03d0dd2d, 0x002f9b27}}},
+ {X: Field{[10]uint32{0x00a75be5, 0x03f0181d, 0x011aaaa8, 0x032bed9b, 0x012da352, 0x03992f18, 0x02c3d645, 0x028207dc, 0x023fe673, 0x00105ffe}}, Y: Field{[10]uint32{0x00c50151, 0x0024f81a, 0x00be10de, 0x0129fdce, 0x02cfd9ca, 0x0169d243, 0x01472afd, 0x0251d202, 0x022f9084, 0x0026ae2f}}},
+ {X: Field{[10]uint32{0x02ef73cd, 0x03ba0e32, 0x00622f75, 0x001257a2, 0x004f19eb, 0x01d084b1, 0x03d772cc, 0x014105b2, 0x01549311, 0x001e05d4}}, Y: Field{[10]uint32{0x00d0d3e6, 0x02fdff4d, 0x00ac2dd7, 0x02c29765, 0x02fdaf2c, 0x01f2c637, 0x0381b91d, 0x00d94098, 0x01c8ffec, 0x000df535}}},
+ {X: Field{[10]uint32{0x031b5121, 0x0094fe82, 0x02f0f736, 0x02923d8b, 0x023c2ee7, 0x039d9896, 0x020c66c7, 0x00a3abd5, 0x020c3acc, 0x000d9715}}, Y: Field{[10]uint32{0x0374868f, 0x01f4df16, 0x018d6451, 0x005773b1, 0x016990aa, 0x00e3e374, 0x0303f883, 0x03c578e2, 0x02fa96c0, 0x000972f1}}},
+ {X: Field{[10]uint32{0x035bac7c, 0x03e860a3, 0x03808a94, 0x03f76233, 0x016c6757, 0x02866a49, 0x026b6cb3, 0x0008fa44, 0x01251010, 0x0032516b}}, Y: Field{[10]uint32{0x0254e2bb, 0x037e4ab5, 0x01e5b174, 0x02ec99e7, 0x0399df4a, 0x0319bdb6, 0x008ae3df, 0x010ef3bc, 0x010cb4ac, 0x00326a3a}}},
+ {X: Field{[10]uint32{0x002e0213, 0x0303878b, 0x03eec629, 0x02dedf4e, 0x02ac8c3f, 0x00ca18f7, 0x00223876, 0x0355f5ce, 0x01ac45e6, 0x0012ab61}}, Y: Field{[10]uint32{0x016a2708, 0x002d8f3f, 0x02595213, 0x0224ddbd, 0x0129c036, 0x0394e81c, 0x001c192d, 0x02fd9259, 0x00e19e81, 0x000e3bba}}},
+ {X: Field{[10]uint32{0x02a291df, 0x027da689, 0x0367f24b, 0x03a9f4d4, 0x01907e37, 0x03d89118, 0x00f9f663, 0x01965ab7, 0x02480b0f, 0x000af040}}, Y: Field{[10]uint32{0x00311c79, 0x01509bc1, 0x02b2f4f3, 0x00c14204, 0x0324ad0c, 0x0242ddd0, 0x02780f6b, 0x02cdea46, 0x02d33016, 0x00382b0f}}},
+ {X: Field{[10]uint32{0x03ddfde2, 0x007234e4, 0x03cffeb9, 0x000207f3, 0x02eca894, 0x0281387e, 0x001a2c09, 0x023e4c3a, 0x0191abd2, 0x00337016}}, Y: Field{[10]uint32{0x000193a5, 0x02686dd6, 0x02b32afc, 0x013af1e6, 0x038bf90a, 0x006a208b, 0x02b9852d, 0x038ac0ff, 0x02c44458, 0x0037f692}}},
+ {X: Field{[10]uint32{0x0346a047, 0x00efe776, 0x02b7d079, 0x02ba722f, 0x0031d285, 0x03e2aac4, 0x00ea8570, 0x0310a7fd, 0x03f0af2d, 0x0016893b}}, Y: Field{[10]uint32{0x004c8f9a, 0x02d80167, 0x03327b53, 0x0185abbd, 0x00a98b6f, 0x02debc2e, 0x03f40dd0, 0x02458225, 0x01145973, 0x0005e76e}}},
+ {X: Field{[10]uint32{0x0038183a, 0x03f8ab1e, 0x01467636, 0x02c2c151, 0x03e7c1d2, 0x01f457f6, 0x00aae6b5, 0x00f2a4dd, 0x013f5160, 0x0005b079}}, Y: Field{[10]uint32{0x03a183e3, 0x01a25d98, 0x0194ba53, 0x006815c1, 0x008d1f6c, 0x0383f724, 0x00af50c7, 0x026efd76, 0x02f056e0, 0x002fe163}}},
+ {X: Field{[10]uint32{0x0301ccf4, 0x0299567a, 0x006eb0c3, 0x016c71a1, 0x01a2f240, 0x0305de00, 0x013a116a, 0x00be6b62, 0x02ea71b9, 0x001e4bc7}}, Y: Field{[10]uint32{0x0032a79d, 0x0342de8a, 0x001293cc, 0x002ef878, 0x0052c0df, 0x01e19ae7, 0x01ecf87a, 0x03bce4c4, 0x030cc610, 0x002f018b}}},
+ {X: Field{[10]uint32{0x017378e1, 0x02e99769, 0x00dd7335, 0x02b3c201, 0x03917dab, 0x0044dff8, 0x004dc515, 0x01c673d5, 0x0040f057, 0x0006ce67}}, Y: Field{[10]uint32{0x000b425f, 0x029dd718, 0x02f6d380, 0x004aaa11, 0x02bfdd07, 0x0374cce8, 0x01e872c1, 0x02821507, 0x00d3b6e8, 0x001359e5}}},
+ {X: Field{[10]uint32{0x02238e4f, 0x002ffeae, 0x02edec21, 0x01e2af85, 0x039f8cd2, 0x02223147, 0x00d8219b, 0x0173b783, 0x013eb9c4, 0x0004e2cc}}, Y: Field{[10]uint32{0x02ac56d6, 0x021c8f39, 0x03f7fd9e, 0x01b735b6, 0x0213f0f7, 0x03c2b349, 0x02d49512, 0x0010bd2d, 0x0357cbc8, 0x00286668}}},
+ {X: Field{[10]uint32{0x03542338, 0x03f0937a, 0x0312284f, 0x00445f24, 0x008f4018, 0x03d2b869, 0x0068b24c, 0x01599340, 0x03119c76, 0x000f81b0}}, Y: Field{[10]uint32{0x0273624f, 0x039d55c1, 0x03696498, 0x02cca01e, 0x0293b08a, 0x026a4341, 0x01c45963, 0x01fc6daa, 0x0196e560, 0x0018e995}}},
+ {X: Field{[10]uint32{0x03f8bd2e, 0x037a2d2e, 0x0125f8a3, 0x037bb47b, 0x0280f0f6, 0x005e7a77, 0x00e5455c, 0x0224c95d, 0x039b49c8, 0x0000fccb}}, Y: Field{[10]uint32{0x02589f17, 0x007e9ada, 0x02472855, 0x033b8ae1, 0x00091f49, 0x03d0aa77, 0x0090257b, 0x01be27bd, 0x031a5fc9, 0x0028b4ae}}},
+ {X: Field{[10]uint32{0x02414ec5, 0x01dca651, 0x02b041fe, 0x03ef8ce0, 0x022c4f5e, 0x016c6e0a, 0x029602bf, 0x03143e84, 0x0017ffcc, 0x00226b71}}, Y: Field{[10]uint32{0x00253215, 0x01fbd523, 0x00bc8e2c, 0x00a0976a, 0x036c3daa, 0x02a9867b, 0x015c2915, 0x01d47405, 0x035c291b, 0x001339f9}}},
+ {X: Field{[10]uint32{0x00e4e9b5, 0x03faab97, 0x01619a13, 0x03e81f07, 0x01e9f208, 0x00bd53d9, 0x017d4860, 0x02327d96, 0x01626bec, 0x003ccfef}}, Y: Field{[10]uint32{0x01593774, 0x00ad0914, 0x0025edf0, 0x022ddc9a, 0x02a6f43c, 0x00142c0c, 0x03e2eda3, 0x03c54a1f, 0x002bebb9, 0x00323c18}}},
+ {X: Field{[10]uint32{0x00a7d6b8, 0x038f9929, 0x0071d568, 0x013d1448, 0x02117fa0, 0x003a5d01, 0x01f7703a, 0x038bdf91, 0x00ab7b90, 0x0003b332}}, Y: Field{[10]uint32{0x00a1b6f4, 0x005a6696, 0x0056048e, 0x01143c7f, 0x03fcc8a6, 0x0322ecd9, 0x033c2333, 0x028363cb, 0x0305a9c4, 0x002115bd}}},
+ {X: Field{[10]uint32{0x017de915, 0x00fa5685, 0x03dfca4e, 0x035537c7, 0x000e6e31, 0x009d0fb4, 0x0181c754, 0x0218b960, 0x0333a7ad, 0x003da58a}}, Y: Field{[10]uint32{0x029e6605, 0x038c80ba, 0x01cf209e, 0x016a0cd6, 0x02055c15, 0x0280566a, 0x037e8ad2, 0x0173afe7, 0x03fb4851, 0x002bcf51}}},
+ {X: Field{[10]uint32{0x02ace24d, 0x02748d36, 0x019e842b, 0x03c8e3fd, 0x025c45d2, 0x0025649a, 0x02d5df02, 0x03ec4197, 0x03c67996, 0x0000fc7c}}, Y: Field{[10]uint32{0x010ea28e, 0x012f529b, 0x0011f110, 0x00195a42, 0x03737507, 0x0088a36a, 0x023c30b2, 0x027c28a3, 0x01e4f0a2, 0x00356172}}},
+ {X: Field{[10]uint32{0x026e589c, 0x0375145b, 0x030e34ae, 0x00b50206, 0x02dc3359, 0x02b4b357, 0x03f93c16, 0x00390f62, 0x00193629, 0x0003f2b8}}, Y: Field{[10]uint32{0x031165cc, 0x001ee851, 0x02c243a2, 0x0162e5c0, 0x02c8acb9, 0x03342665, 0x00710d88, 0x029110b7, 0x039ecc42, 0x0023a615}}},
+ {X: Field{[10]uint32{0x011f522c, 0x015c2ac5, 0x012c6d89, 0x01f6ea8c, 0x01abc424, 0x03f23beb, 0x037922b5, 0x008a748e, 0x03ba0355, 0x001523c9}}, Y: Field{[10]uint32{0x02ab6fa9, 0x01fc6e21, 0x0200acb7, 0x018ce6e5, 0x02b7b63c, 0x03cdf207, 0x00ba774f, 0x01f35f23, 0x03d8bbb4, 0x00039565}}},
+ {X: Field{[10]uint32{0x00146fa0, 0x00e6ef57, 0x003ab6e4, 0x02e18460, 0x0249797d, 0x0021adef, 0x025cf1ef, 0x00d1fb51, 0x0114e8bf, 0x0038bd92}}, Y: Field{[10]uint32{0x006ae76e, 0x035d18ff, 0x025d1d2e, 0x0251cb55, 0x0388b27a, 0x01debbe6, 0x02482570, 0x00793c54, 0x036f7c64, 0x00239a79}}},
+ {X: Field{[10]uint32{0x0013db1d, 0x02faae8b, 0x011222cd, 0x0323ce33, 0x01c7d362, 0x00a62d03, 0x00f97622, 0x00303c76, 0x02a02d97, 0x0002314c}}, Y: Field{[10]uint32{0x0062bd0e, 0x01bfea1c, 0x0276801b, 0x02d8b7b0, 0x03568251, 0x032dd81b, 0x00ffc9fb, 0x0359b67a, 0x02e90428, 0x00243e28}}},
+ {X: Field{[10]uint32{0x02291a23, 0x008c8618, 0x02f6d3c3, 0x025ebd59, 0x006fc0ed, 0x0014abb1, 0x02f7e0c8, 0x0065cbda, 0x02fee3c5, 0x0019191b}}, Y: Field{[10]uint32{0x007a69fe, 0x023d3dca, 0x03c50d6c, 0x022a61bf, 0x03a10eb8, 0x01c7cb76, 0x0276ee71, 0x00dc2cda, 0x0150f6ca, 0x00278a78}}},
+ {X: Field{[10]uint32{0x033be659, 0x00787cd1, 0x011b51eb, 0x02fe699f, 0x01329199, 0x01bbd972, 0x03ff69a0, 0x037fdc32, 0x00da1df8, 0x001ba2e9}}, Y: Field{[10]uint32{0x015d852a, 0x01d19e60, 0x00a060f6, 0x0289f851, 0x03eb5a34, 0x0394def5, 0x03f21883, 0x01069cd7, 0x02c89594, 0x002b9d58}}},
+ {X: Field{[10]uint32{0x036bcaef, 0x0307ccca, 0x029cae76, 0x007356e3, 0x02c94c87, 0x02b6fc7d, 0x020d7e1c, 0x00b03db7, 0x03c8f781, 0x0023086a}}, Y: Field{[10]uint32{0x007ed53e, 0x02832a5d, 0x006b2663, 0x03f9a3fd, 0x015a36d6, 0x03833bfa, 0x010ed037, 0x000f8950, 0x00c313be, 0x00169f27}}},
+ {X: Field{[10]uint32{0x039f6353, 0x01ac9a4b, 0x01fea342, 0x00087ae2, 0x0010ce51, 0x015e8a3c, 0x0236ff76, 0x01f85099, 0x003a7c48, 0x0033838e}}, Y: Field{[10]uint32{0x0232e03a, 0x03030358, 0x02280532, 0x03dbf6b3, 0x0097fcb9, 0x031cf23b, 0x004e9da4, 0x01e010a0, 0x0065d43f, 0x000fe569}}},
+ {X: Field{[10]uint32{0x01698eb8, 0x028dfb87, 0x03700080, 0x031f0072, 0x028078b6, 0x0119cff0, 0x00598483, 0x01f13fd1, 0x017f5147, 0x001f8cc2}}, Y: Field{[10]uint32{0x022d75a7, 0x03072972, 0x025ad141, 0x039a5c01, 0x02e282b7, 0x01241968, 0x001d274e, 0x0319e762, 0x03c07317, 0x003049d6}}},
+ {X: Field{[10]uint32{0x016837a6, 0x01ec3904, 0x03867931, 0x019b3ecf, 0x01d686eb, 0x03bfc9cc, 0x031cf429, 0x01f987ec, 0x00d6b148, 0x003bd367}}, Y: Field{[10]uint32{0x0163be1f, 0x022dda8f, 0x012ecd11, 0x0161ffd8, 0x023bd2ff, 0x03a87ae8, 0x036461a6, 0x03756893, 0x02b4280d, 0x00313daf}}},
+ {X: Field{[10]uint32{0x03716290, 0x015cecbc, 0x014b992c, 0x028b7c32, 0x03ce53f4, 0x0297e2e8, 0x0090bcb9, 0x024c93de, 0x01452ee4, 0x003cfb70}}, Y: Field{[10]uint32{0x03fb2f2d, 0x02a60834, 0x00dbf552, 0x01952470, 0x035c3905, 0x01f0aba4, 0x03301f08, 0x02c9ea36, 0x02abfbc9, 0x00265511}}},
+ {X: Field{[10]uint32{0x03caa975, 0x01c32a0a, 0x02c92bd1, 0x009caf18, 0x0287d174, 0x00634831, 0x01341603, 0x03a45358, 0x02517398, 0x00307d88}}, Y: Field{[10]uint32{0x03769e99, 0x0019c821, 0x01cabfcb, 0x0148071d, 0x00f6d6da, 0x00a4bdc6, 0x0328d593, 0x016ddb54, 0x02273673, 0x0007216b}}},
+ {X: Field{[10]uint32{0x023dea8e, 0x004c8791, 0x03889714, 0x00066956, 0x01b206c6, 0x038c41c5, 0x00561533, 0x00220752, 0x01f9605f, 0x0029fa07}}, Y: Field{[10]uint32{0x00ae8a4f, 0x01bfbe5f, 0x000adaa1, 0x03ad7151, 0x020eb23d, 0x01f7de5a, 0x0370dbba, 0x006f83c2, 0x00fd1f36, 0x000eb888}}},
+ {X: Field{[10]uint32{0x006a536b, 0x01ca0af9, 0x033262fe, 0x02b16a33, 0x02f46af5, 0x01f52b97, 0x03ac0288, 0x03ca59e8, 0x03298f5d, 0x0006da6f}}, Y: Field{[10]uint32{0x0046a91f, 0x0093cbaa, 0x01c6028c, 0x03f62203, 0x02d7e9d7, 0x0066ce28, 0x0375c684, 0x0269c7a8, 0x00aa02d9, 0x00327189}}},
+ {X: Field{[10]uint32{0x03bb44bb, 0x0048bb76, 0x0251db56, 0x021ff45c, 0x03b31c99, 0x02cecc49, 0x0315cb96, 0x018ee637, 0x03740317, 0x003377fb}}, Y: Field{[10]uint32{0x024869f5, 0x011679fc, 0x00b65854, 0x019e3de0, 0x00225f08, 0x028ca8e3, 0x0279ce26, 0x016a8d31, 0x02f42e93, 0x00025cbf}}},
+ {X: Field{[10]uint32{0x00e957ff, 0x01c3ffd8, 0x0129cfcb, 0x00d79f00, 0x00ee07f2, 0x03bc0788, 0x0347d309, 0x01458d9a, 0x00ef2c8a, 0x000cbf87}}, Y: Field{[10]uint32{0x03b4588e, 0x013b7c93, 0x0036fe75, 0x031f116d, 0x023d13b2, 0x0030d53a, 0x033babe0, 0x0184922c, 0x0331bd37, 0x0027a185}}},
+ {X: Field{[10]uint32{0x01c24b0d, 0x00896e1e, 0x02908505, 0x015c9955, 0x024a7596, 0x02bed87f, 0x01d0ccf6, 0x0104674c, 0x03e9f491, 0x0028e0be}}, Y: Field{[10]uint32{0x02111857, 0x01b36a34, 0x00a55513, 0x0063260e, 0x02cdde63, 0x01f088bf, 0x03e0287c, 0x02ff709c, 0x036039a1, 0x002a8c00}}},
+ {X: Field{[10]uint32{0x0280ef88, 0x02453b06, 0x028bc6d6, 0x029e5a88, 0x0159e305, 0x01f00d13, 0x03e24670, 0x00c3ab84, 0x00399ae3, 0x002d4ed5}}, Y: Field{[10]uint32{0x01fadc7a, 0x003b8c35, 0x01a368f3, 0x00711d54, 0x02969d8d, 0x02ea2a38, 0x00f43cc8, 0x01b175d2, 0x00538dfc, 0x00266024}}},
+ {X: Field{[10]uint32{0x0364169a, 0x007436be, 0x01b8df52, 0x02bc1abb, 0x00710fe2, 0x022c2b67, 0x00bbfed9, 0x03fb0fed, 0x0253f11c, 0x001886d4}}, Y: Field{[10]uint32{0x020378aa, 0x0036fa49, 0x00bb3abe, 0x01704d85, 0x033b9300, 0x00f81717, 0x01d025b6, 0x01abd88b, 0x01c48b71, 0x000a88d3}}},
+ {X: Field{[10]uint32{0x01435b04, 0x00c5783e, 0x000bed5b, 0x03eae694, 0x001e5979, 0x003d5d63, 0x023f4428, 0x00f1fcc5, 0x036ccc9c, 0x0020ccca}}, Y: Field{[10]uint32{0x00d30ea0, 0x0285abf7, 0x012d416a, 0x03da1d8b, 0x0060c77d, 0x0100b761, 0x0241025c, 0x007c72f6, 0x0212258c, 0x00214d81}}},
+ {X: Field{[10]uint32{0x03f6538a, 0x02a1a3f6, 0x006b668a, 0x0069e91d, 0x02fd54e2, 0x02806c43, 0x032d926d, 0x009888bd, 0x00e39120, 0x0009f236}}, Y: Field{[10]uint32{0x02d6eb91, 0x034ad088, 0x00090e90, 0x020484eb, 0x034d0c0a, 0x03783ffd, 0x009fe83f, 0x0121355b, 0x023fb8f2, 0x00221da3}}},
+ {X: Field{[10]uint32{0x020067e5, 0x007aff81, 0x03a9155d, 0x0353c22d, 0x036ee768, 0x010955bb, 0x012e05ac, 0x008014bf, 0x030bbcd8, 0x003cd271}}, Y: Field{[10]uint32{0x010c6604, 0x0086939d, 0x009fb9f6, 0x02c1c75b, 0x0293fdc5, 0x01ebaa42, 0x003c4e9e, 0x0341431f, 0x00194011, 0x001b5657}}},
+ {X: Field{[10]uint32{0x03b24f90, 0x0209e9c4, 0x03156edb, 0x00805ce9, 0x01a0183b, 0x030fe278, 0x031368ba, 0x0265998a, 0x027ab202, 0x00125995}}, Y: Field{[10]uint32{0x037e21ab, 0x01670cc0, 0x0094701f, 0x01645996, 0x01a097b8, 0x03020f8d, 0x0110ee76, 0x00eec252, 0x0036c2bb, 0x001bbe25}}},
+ {X: Field{[10]uint32{0x013e0886, 0x01052fe4, 0x02eb69a7, 0x01d817fd, 0x0275611b, 0x02f18ffa, 0x0245b849, 0x0284fde1, 0x001b491d, 0x00124254}}, Y: Field{[10]uint32{0x01014df8, 0x02d96aa0, 0x03f17c54, 0x03dd7824, 0x0038b1ac, 0x0208ab17, 0x01d4c956, 0x001c3707, 0x02b6f2ee, 0x000b0831}}},
+ {X: Field{[10]uint32{0x00cddb76, 0x0138d584, 0x01a72bf8, 0x023bb8f7, 0x03bd5f89, 0x03d058fd, 0x00d3ee40, 0x03450063, 0x0267f5a2, 0x0007b4b9}}, Y: Field{[10]uint32{0x02db8e7d, 0x024678c9, 0x027940f9, 0x03bda288, 0x02934810, 0x021a78db, 0x004babdd, 0x0133ab88, 0x00c564fa, 0x002ed25c}}},
+ {X: Field{[10]uint32{0x0212f17b, 0x00758351, 0x03d5702a, 0x00361495, 0x00c15d1a, 0x037a1b5a, 0x01f9c8c7, 0x030dfeb7, 0x03410a0b, 0x00311eea}}, Y: Field{[10]uint32{0x02db09e3, 0x03baa068, 0x015cbb09, 0x019f3e0e, 0x00e84ce7, 0x028f30f8, 0x028091a1, 0x01f78444, 0x00b136f4, 0x000394ab}}},
+ {X: Field{[10]uint32{0x027a7394, 0x03b1a831, 0x038c18f5, 0x03cf7484, 0x03f70825, 0x03b39d95, 0x0090b525, 0x033f10d5, 0x00c14993, 0x0038841a}}, Y: Field{[10]uint32{0x00c732da, 0x009c20c0, 0x00a12430, 0x03f276c1, 0x03065360, 0x017eadbe, 0x03997553, 0x02366caf, 0x0137d48f, 0x00335840}}},
+ {X: Field{[10]uint32{0x03faf917, 0x01f93d0f, 0x03b87da0, 0x01bc47bb, 0x0200bd6a, 0x01942291, 0x029e1440, 0x00bd7ac1, 0x007d47a7, 0x0018d7d5}}, Y: Field{[10]uint32{0x03e64128, 0x00da48ca, 0x02642217, 0x015d53aa, 0x0021fecb, 0x0072c2fc, 0x024c8ed8, 0x01ced3cc, 0x01f23da2, 0x0023a82a}}},
+ {X: Field{[10]uint32{0x01bdb47b, 0x0197c091, 0x02aa8485, 0x02ba4ca7, 0x013837b6, 0x00fe3993, 0x032f79ab, 0x02d2c7ff, 0x000a8648, 0x000918cb}}, Y: Field{[10]uint32{0x026e0426, 0x01b910bd, 0x03179814, 0x01d68e08, 0x02177ff8, 0x018aac8d, 0x02603608, 0x01574cf0, 0x0388c9e1, 0x00271b41}}},
+ {X: Field{[10]uint32{0x037bf503, 0x03efde9a, 0x03b5ed59, 0x038574b0, 0x03146541, 0x032f2c06, 0x009cc56e, 0x00a75215, 0x01c3cfb2, 0x0010dd23}}, Y: Field{[10]uint32{0x01fb9c5c, 0x03cd3051, 0x019a9265, 0x01f86b7b, 0x000b2060, 0x0333623f, 0x007ea7f2, 0x026418ee, 0x01ed23a0, 0x00265d68}}},
+ {X: Field{[10]uint32{0x03ae3ac0, 0x03ff72b0, 0x03a5804b, 0x03404549, 0x02bb8750, 0x026f8776, 0x0203b406, 0x0075a0c5, 0x0323b8c4, 0x0023e120}}, Y: Field{[10]uint32{0x02d1b37f, 0x020a22b0, 0x01c6e2c8, 0x00e8a95d, 0x01be81f8, 0x005f9691, 0x035805ab, 0x01830a1b, 0x00871282, 0x001dea2b}}},
+ {X: Field{[10]uint32{0x0148422c, 0x0254ae8a, 0x012cc6e2, 0x036f1510, 0x002d8907, 0x00706720, 0x01e8be48, 0x0211b6ed, 0x0368b54d, 0x000a7af0}}, Y: Field{[10]uint32{0x03c7e845, 0x00bf898d, 0x0310aec7, 0x0285a180, 0x02426f79, 0x01e72f46, 0x02eb2d6f, 0x0276414e, 0x03a281d5, 0x0039ade4}}},
+ {X: Field{[10]uint32{0x023ed345, 0x01e659c0, 0x008105ba, 0x000a7e39, 0x03d84bc6, 0x02dc5254, 0x00cbe21e, 0x0004b230, 0x03c4ccf4, 0x00250532}}, Y: Field{[10]uint32{0x017fdeee, 0x027ae035, 0x0272b39b, 0x0192edab, 0x01da45bb, 0x0338d72f, 0x0132790e, 0x028424b4, 0x039289e4, 0x002b47ba}}},
+ {X: Field{[10]uint32{0x008f756e, 0x030f71ca, 0x035d411e, 0x02976c79, 0x000bea90, 0x003c8532, 0x03ab8149, 0x00009184, 0x025b769d, 0x0006f615}}, Y: Field{[10]uint32{0x01d375d8, 0x0085d770, 0x02b131df, 0x035f7315, 0x00b69c2c, 0x02af6b94, 0x01cfcb02, 0x007a46de, 0x006cfc78, 0x00301429}}},
+ {X: Field{[10]uint32{0x0229cb01, 0x03b242c1, 0x013f276c, 0x038ca216, 0x0314ed0a, 0x02e37b59, 0x0009154e, 0x019af8f5, 0x004c35ad, 0x00013dd6}}, Y: Field{[10]uint32{0x03712bb0, 0x007acf05, 0x02048fb0, 0x03863c76, 0x021520fe, 0x0271685f, 0x00cf1b3e, 0x00483847, 0x0248232a, 0x003d2fa4}}},
+ {X: Field{[10]uint32{0x01d9f13b, 0x031e0f87, 0x02b352b9, 0x021311dc, 0x01cffd16, 0x034bcf3b, 0x0127401f, 0x02cc5eac, 0x01de7e85, 0x0016c002}}, Y: Field{[10]uint32{0x0173ba64, 0x0048ca2e, 0x0048dbb4, 0x02fbb3f8, 0x01cb8839, 0x019cb1e3, 0x037cb7ce, 0x030d38cd, 0x0304f531, 0x003d1615}}},
+ {X: Field{[10]uint32{0x03b32815, 0x00ef2b18, 0x019c3ad1, 0x014cfcfb, 0x0037f853, 0x0088b7ce, 0x025fdbc4, 0x01bc04ba, 0x01c37939, 0x00319bcc}}, Y: Field{[10]uint32{0x02b22668, 0x0334f69b, 0x01ca3ea1, 0x0212eeb1, 0x024113ee, 0x02d41490, 0x023ca861, 0x03a72f04, 0x00084ae5, 0x0001f5ee}}},
+ {X: Field{[10]uint32{0x0263abd6, 0x03217997, 0x03af1a57, 0x0157a469, 0x023d7ba4, 0x03a679a5, 0x03a51b3e, 0x0264d09a, 0x035dc8b0, 0x000cc25f}}, Y: Field{[10]uint32{0x0270d7c4, 0x00d648b0, 0x02d80638, 0x03b59b93, 0x02987401, 0x0061a5d9, 0x039e1206, 0x00627722, 0x033b200c, 0x003ef49a}}},
+ {X: Field{[10]uint32{0x005ffff4, 0x0374aa72, 0x015f8c37, 0x002e138e, 0x01aa71cf, 0x03eef90f, 0x02922d5f, 0x03b182e6, 0x0245a3b7, 0x0006b394}}, Y: Field{[10]uint32{0x0325084f, 0x0113686e, 0x029871c4, 0x01344358, 0x0006ad3f, 0x01b2eda7, 0x01c51cbb, 0x023e6fca, 0x01679470, 0x001cb03b}}},
+ {X: Field{[10]uint32{0x030c4471, 0x0296bcda, 0x03512692, 0x00cb354b, 0x006ed54e, 0x00fe480b, 0x03225249, 0x0130b2fe, 0x039e4cce, 0x002f065e}}, Y: Field{[10]uint32{0x01673f70, 0x00213ef7, 0x017dfadb, 0x02553574, 0x013cad9b, 0x03b14222, 0x016be56c, 0x00197693, 0x02635182, 0x003544dd}}},
+ {X: Field{[10]uint32{0x00c7df70, 0x0342f237, 0x03fab76a, 0x0002de69, 0x0213c6f5, 0x03b2b625, 0x00cfa733, 0x036fb45d, 0x0131334b, 0x0019a65e}}, Y: Field{[10]uint32{0x0199435a, 0x026f4b19, 0x003310d4, 0x037c9a50, 0x00ab00af, 0x0012b158, 0x03e7d3a5, 0x00663bb8, 0x0301948e, 0x003f6f4c}}},
+ {X: Field{[10]uint32{0x026eb4bf, 0x020f30c6, 0x008b3890, 0x00bcdc2c, 0x02563742, 0x0040fde6, 0x020b9620, 0x020be5f0, 0x00dfb38d, 0x000eea1b}}, Y: Field{[10]uint32{0x0258dfc8, 0x035ab48c, 0x02fee33d, 0x00aaf7b2, 0x035377e3, 0x02d1db86, 0x017f9819, 0x02ec4e6f, 0x001176de, 0x002b3b26}}},
+ {X: Field{[10]uint32{0x031603cd, 0x024c36fb, 0x01243fed, 0x027ddba0, 0x02639519, 0x00b64575, 0x03acdbdc, 0x01c76130, 0x032f9db9, 0x0003d890}}, Y: Field{[10]uint32{0x027b5f28, 0x0031e5d2, 0x02444c2e, 0x013bac46, 0x0282269f, 0x037a1d5f, 0x0056acd5, 0x01331b96, 0x033d177b, 0x003ba273}}},
+ {X: Field{[10]uint32{0x0067bbaf, 0x02bbaa70, 0x00b1d688, 0x0141e538, 0x01b6d812, 0x016ca028, 0x016e6500, 0x03a9182b, 0x03dc6a6d, 0x00212d06}}, Y: Field{[10]uint32{0x03c00e7c, 0x03090e67, 0x032b2ab8, 0x01b97343, 0x03e452fe, 0x017c3c32, 0x008cdf7b, 0x02d2ecae, 0x003cb535, 0x0027de1c}}},
+ {X: Field{[10]uint32{0x009d4c67, 0x010b06b2, 0x01f8828a, 0x02b294e6, 0x01048c52, 0x022e3515, 0x00f48839, 0x0128538a, 0x02a93ea6, 0x00238b7f}}, Y: Field{[10]uint32{0x02781271, 0x0169267c, 0x02ff7593, 0x01d3da77, 0x03e09d74, 0x023b413a, 0x01df10dd, 0x00d814cd, 0x0149cda5, 0x003fb005}}},
+ {X: Field{[10]uint32{0x03105e0b, 0x009dd666, 0x012f118b, 0x028903a4, 0x01dbd2f6, 0x032f0be8, 0x0175e364, 0x02b074ff, 0x01ae5401, 0x0030ef1b}}, Y: Field{[10]uint32{0x0363d6b4, 0x01430fce, 0x00c340a6, 0x0122dbc3, 0x019c5dba, 0x000dc02c, 0x02345063, 0x024c9bf4, 0x00f55b73, 0x0005c3f7}}},
+ {X: Field{[10]uint32{0x03c14691, 0x03b32268, 0x0395da10, 0x03b7a4d5, 0x00c2defc, 0x009ffe04, 0x01a289e0, 0x014b9eb1, 0x02931b1e, 0x000cc24f}}, Y: Field{[10]uint32{0x00deec38, 0x021e9fdc, 0x0047a7ee, 0x002f5a2f, 0x0102114f, 0x02b843ee, 0x03dc8421, 0x017af699, 0x01845bd5, 0x001feee9}}},
+ {X: Field{[10]uint32{0x00141ef9, 0x03f9cd36, 0x00208a36, 0x00cbb2f3, 0x013f1211, 0x031e3762, 0x02c765ed, 0x028f3801, 0x0038b6d1, 0x00086cd5}}, Y: Field{[10]uint32{0x02e300d0, 0x01afc1ba, 0x02a7f256, 0x02f8ec59, 0x01e2d516, 0x01bed423, 0x01a82b36, 0x01f723d8, 0x01a5ed23, 0x0003d845}}},
+ {X: Field{[10]uint32{0x03892df3, 0x020bf1b4, 0x008de037, 0x008470b9, 0x03ade708, 0x023a793e, 0x0248edf2, 0x03b45cc0, 0x0183aa1b, 0x0033b599}}, Y: Field{[10]uint32{0x00fdec96, 0x0239ce06, 0x031b6cb3, 0x00d4901f, 0x02c3a818, 0x03110710, 0x03e634e3, 0x0280efc3, 0x0136f29d, 0x0013d0eb}}},
+ {X: Field{[10]uint32{0x026f71f8, 0x0215cefb, 0x03ec023a, 0x01f333ca, 0x0337f6eb, 0x027ef32b, 0x02731222, 0x02a2bac1, 0x0020f541, 0x003169d1}}, Y: Field{[10]uint32{0x00adb259, 0x01921958, 0x017096c8, 0x00d524d3, 0x021612a5, 0x0097e964, 0x00a6e25d, 0x00f4db00, 0x00024426, 0x002b98d3}}},
+ {X: Field{[10]uint32{0x00b9de9e, 0x012eb052, 0x0212ef0a, 0x007f1334, 0x008311c5, 0x016c57a9, 0x03255211, 0x01ad2ca9, 0x008bf30f, 0x000c1281}}, Y: Field{[10]uint32{0x023bb3cd, 0x02c19781, 0x03fec154, 0x0216c848, 0x0311ceeb, 0x02a54fea, 0x01cb5dc8, 0x02fc344a, 0x01003d6e, 0x0023e4d6}}},
+ {X: Field{[10]uint32{0x039c2048, 0x02fef356, 0x0251972e, 0x03c4eec1, 0x016ecb66, 0x01e047a4, 0x009875e9, 0x002bd42b, 0x01ae7eba, 0x003fe5ad}}, Y: Field{[10]uint32{0x0352a887, 0x00678bd8, 0x00e3c319, 0x0321c3f5, 0x033de89c, 0x015abb46, 0x00a0b1db, 0x0073ab96, 0x0186bca7, 0x00092bc8}}},
+ {X: Field{[10]uint32{0x01b701a3, 0x037389ec, 0x035d050b, 0x02e5282c, 0x028b6d38, 0x01bf6cf3, 0x01472437, 0x00bbb410, 0x021cdf73, 0x00164273}}, Y: Field{[10]uint32{0x0224dfdf, 0x0301782c, 0x012b037f, 0x02eefdde, 0x037d3731, 0x000e0e8f, 0x01cf2239, 0x039d8609, 0x01440665, 0x0000b912}}},
+ {X: Field{[10]uint32{0x03d1d527, 0x01acc3aa, 0x01ad7cfb, 0x01d32bc1, 0x0008ef99, 0x00a11152, 0x02032b79, 0x019841be, 0x031f86d6, 0x003fdadd}}, Y: Field{[10]uint32{0x008ba4b3, 0x03c109e4, 0x03f50b25, 0x02b8d512, 0x029fcd0b, 0x03a7daa1, 0x037e0557, 0x03a473fd, 0x029c9393, 0x001aaf4a}}},
+ {X: Field{[10]uint32{0x021aa8d9, 0x035f48ce, 0x005f4bef, 0x0215f9ff, 0x03be9196, 0x00b66b39, 0x03da48a1, 0x007eb47b, 0x030494dd, 0x00250f33}}, Y: Field{[10]uint32{0x020a7bd6, 0x0044d306, 0x01c523d0, 0x007161e4, 0x006014e0, 0x029f93c4, 0x011a23fc, 0x00fe2cdd, 0x00cc2dd9, 0x0013c22d}}},
+ {X: Field{[10]uint32{0x005f172c, 0x03127dd0, 0x035b3ee6, 0x022c7672, 0x0147a463, 0x03c9b0d0, 0x00e0968b, 0x00737242, 0x03a7a89e, 0x00029e69}}, Y: Field{[10]uint32{0x03bb8ceb, 0x03ba43fc, 0x00cd1b3c, 0x01dae60e, 0x03ebadcb, 0x0300c96c, 0x0097f34e, 0x02f8eb95, 0x016714b5, 0x0032d4f6}}},
+ {X: Field{[10]uint32{0x007b89dd, 0x03014547, 0x01b2fa50, 0x00daa8cf, 0x024f548b, 0x005cfde2, 0x021667cd, 0x01bbeaa1, 0x02fc7117, 0x000a3fcb}}, Y: Field{[10]uint32{0x02fe4941, 0x03889275, 0x01988dc6, 0x02ccdf5e, 0x038e67cd, 0x0235f6f7, 0x005e1656, 0x02857c52, 0x0307db4b, 0x0011d6cd}}},
+ {X: Field{[10]uint32{0x01012968, 0x021facec, 0x03557f86, 0x01ebc2b9, 0x00223e89, 0x016d3280, 0x0304fa25, 0x01a21701, 0x033216a8, 0x00216cb0}}, Y: Field{[10]uint32{0x0257ea11, 0x0175cd75, 0x015c5704, 0x039e6341, 0x021f2bcb, 0x003bd1e7, 0x03cbe7af, 0x01015bbe, 0x0145ba66, 0x00287d63}}},
+ {X: Field{[10]uint32{0x00bb8778, 0x01c32697, 0x01d47c2a, 0x03834d53, 0x027a02b3, 0x01ef4da4, 0x028e2add, 0x00cb7901, 0x0109eefb, 0x003a7f0b}}, Y: Field{[10]uint32{0x0365c312, 0x003b1696, 0x01cdf80d, 0x03b2f632, 0x00f249d7, 0x03d4f33d, 0x02e219bb, 0x0341a00f, 0x02a51216, 0x003b8026}}},
+ {X: Field{[10]uint32{0x00005d9e, 0x0010be68, 0x02d65763, 0x0341883f, 0x02a1cc88, 0x0288a142, 0x0238af95, 0x00434c9b, 0x0350afd5, 0x00368b72}}, Y: Field{[10]uint32{0x033eaeab, 0x0007af84, 0x014436d5, 0x026ac5b2, 0x01ae0eab, 0x004c237a, 0x016af23f, 0x00258d78, 0x03b1c370, 0x0007bbd1}}},
+ {X: Field{[10]uint32{0x02b352e0, 0x01f68f07, 0x02f08b9b, 0x034ffded, 0x02327891, 0x0021cd59, 0x03174027, 0x019baf39, 0x029cc6b1, 0x000836a8}}, Y: Field{[10]uint32{0x02e8a3fb, 0x0374fdde, 0x027a4299, 0x00981370, 0x02a30cb5, 0x00b0e8c9, 0x01d66929, 0x03e937b0, 0x002cecd6, 0x000bfda6}}},
+ {X: Field{[10]uint32{0x03674d9b, 0x00bafdd4, 0x00bdd71b, 0x0101b30d, 0x023aab84, 0x025be7d3, 0x0147a534, 0x02f84d9d, 0x00dd2ae5, 0x00385ac2}}, Y: Field{[10]uint32{0x03a06846, 0x01e87646, 0x02c1d931, 0x0322dc4d, 0x0248a1af, 0x00d5ed6e, 0x003d60d6, 0x00ac7239, 0x024bd952, 0x002dc3dc}}},
+ {X: Field{[10]uint32{0x016b93d3, 0x014d59f9, 0x00475807, 0x03b00f1a, 0x00c59670, 0x002c1b51, 0x039485e0, 0x036cd03f, 0x01af2d69, 0x0022228b}}, Y: Field{[10]uint32{0x01d4e3f5, 0x01e7ed8c, 0x01a9e9ba, 0x0212de52, 0x028e8043, 0x02c9c6ae, 0x00753f05, 0x002e0ab1, 0x03a7792e, 0x00376f93}}},
+ {X: Field{[10]uint32{0x016abd12, 0x035831d8, 0x01704d50, 0x0032fd0f, 0x02ee6d8e, 0x00c7e5ec, 0x022e3081, 0x03f754b0, 0x00e29090, 0x001d1dda}}, Y: Field{[10]uint32{0x00b61058, 0x02eb1827, 0x0384099d, 0x01172338, 0x0227b266, 0x03b9ffcd, 0x012879e5, 0x0382d2ed, 0x03408d1c, 0x003aa9d7}}},
+ {X: Field{[10]uint32{0x018d6eda, 0x01f5e73f, 0x011435a1, 0x0163e44c, 0x0380897a, 0x01f00307, 0x0337cc88, 0x004c6a34, 0x02ac1c7d, 0x00215a7c}}, Y: Field{[10]uint32{0x03eacf71, 0x01fb5b60, 0x01a8edda, 0x02aa9397, 0x0385e43b, 0x011a8ce4, 0x00e700a7, 0x001ba0be, 0x0344252d, 0x001413c2}}},
+ {X: Field{[10]uint32{0x011860c9, 0x035a1078, 0x00591e57, 0x03e2f920, 0x00c4418d, 0x010a6e1d, 0x00a1d680, 0x0087713f, 0x03f9a672, 0x0013c57c}}, Y: Field{[10]uint32{0x0096b7ed, 0x02571529, 0x02a820b7, 0x02f13318, 0x013f1154, 0x01f4a418, 0x02bda108, 0x02a70685, 0x01561783, 0x00260b03}}},
+ {X: Field{[10]uint32{0x004a92ce, 0x02fdf005, 0x019439e1, 0x036ea909, 0x0204e4f9, 0x03dc9635, 0x03d56ce6, 0x01b878fa, 0x02201f22, 0x00087946}}, Y: Field{[10]uint32{0x01aac869, 0x011c1e5d, 0x0235918d, 0x019d144d, 0x02428f31, 0x0326f42a, 0x001486fe, 0x0292b497, 0x0001b6a5, 0x001311ea}}},
+ {X: Field{[10]uint32{0x000211a0, 0x00a84627, 0x01f2ed5e, 0x00d8e56f, 0x03e0f283, 0x03fdafe2, 0x034c4f9d, 0x03b03342, 0x002e8865, 0x003eb1f9}}, Y: Field{[10]uint32{0x00dd695e, 0x01aee8b1, 0x025c641e, 0x02dceeb5, 0x02ce656f, 0x0265cc1e, 0x01fece11, 0x00667bec, 0x019c8337, 0x000da04b}}},
+ {X: Field{[10]uint32{0x0226d225, 0x01915246, 0x03469910, 0x00b5ee72, 0x0257f0f4, 0x010b4a7b, 0x01686714, 0x031dfb31, 0x039ec91b, 0x002851e0}}, Y: Field{[10]uint32{0x005bc5a4, 0x001dc2b2, 0x02edab73, 0x0138bc53, 0x02fc0d06, 0x028a7f06, 0x0120257f, 0x019fc618, 0x010ebf72, 0x003d010d}}},
+ {X: Field{[10]uint32{0x00636b8c, 0x02790706, 0x01e2bdf1, 0x003dc5ab, 0x0344a790, 0x00563cf8, 0x0083c1f4, 0x01a01112, 0x00f9e508, 0x0034484b}}, Y: Field{[10]uint32{0x03fc0964, 0x00eb2c09, 0x02ec0555, 0x03203a31, 0x022f9c21, 0x00c8d71a, 0x00183a0f, 0x0059944a, 0x005107b9, 0x0001c82e}}},
+ {X: Field{[10]uint32{0x03948975, 0x027fa422, 0x03ce72dd, 0x03282249, 0x022e4852, 0x00681f5e, 0x037c1250, 0x0095e025, 0x0334a7ab, 0x0004f57c}}, Y: Field{[10]uint32{0x018773ca, 0x01edbade, 0x0282a7d8, 0x014d1e7f, 0x02ff9987, 0x03a30e05, 0x0231db1a, 0x02aed473, 0x01e2d1d0, 0x0025ce1a}}},
+ {X: Field{[10]uint32{0x0063507d, 0x02f7ec39, 0x007e6b9a, 0x0294d31e, 0x025ec754, 0x01af084d, 0x029bec32, 0x027a39da, 0x01616dae, 0x0007c19a}}, Y: Field{[10]uint32{0x035b262d, 0x03473471, 0x013ceb5b, 0x01d02ccd, 0x03c6f999, 0x0264ea6f, 0x01f9fc12, 0x00447e20, 0x030eb4ea, 0x00369201}}},
+ {X: Field{[10]uint32{0x01150269, 0x02ab57da, 0x020298d4, 0x03400453, 0x01907b15, 0x027e5d7d, 0x02d9a495, 0x00770f12, 0x01873868, 0x0001ca78}}, Y: Field{[10]uint32{0x01455442, 0x001967e3, 0x003f2456, 0x020a7a36, 0x02c1901c, 0x02c0d69f, 0x020022c8, 0x02806db7, 0x018ec60e, 0x0036fcbb}}},
+ {X: Field{[10]uint32{0x01fda12a, 0x0085a1c7, 0x02fa02ee, 0x03bb0810, 0x028e3692, 0x03864309, 0x002435fd, 0x00d1dd35, 0x03e96135, 0x003a4bf2}}, Y: Field{[10]uint32{0x0164f2ff, 0x014b320b, 0x01a84fb8, 0x01447c07, 0x03585b14, 0x039bb173, 0x02369575, 0x02035907, 0x000e3f52, 0x0029d6d7}}},
+ {X: Field{[10]uint32{0x00da36df, 0x0204b532, 0x01c1c789, 0x0335fcad, 0x001ad35b, 0x00fdae41, 0x004dfbf9, 0x0234e7a7, 0x021ac69f, 0x002170b9}}, Y: Field{[10]uint32{0x00b53f45, 0x03eaecf0, 0x03752f38, 0x036efca5, 0x02575264, 0x00caac46, 0x00a50b33, 0x00a78697, 0x01876944, 0x00329b64}}},
+ {X: Field{[10]uint32{0x011bc05c, 0x0051f86f, 0x0024f10f, 0x016021e7, 0x003adf99, 0x016b93c0, 0x01c2791b, 0x031ad03d, 0x0232c33c, 0x0004345d}}, Y: Field{[10]uint32{0x039a687d, 0x00b24a64, 0x01718a8b, 0x013cc481, 0x000be846, 0x02393170, 0x01bae008, 0x03b1bd17, 0x0334f1dd, 0x003857b9}}},
+ {X: Field{[10]uint32{0x025d609a, 0x03b21af8, 0x036f028f, 0x035a09d1, 0x0092511d, 0x01fa82ef, 0x01820bd2, 0x0225cbce, 0x03452593, 0x0029a508}}, Y: Field{[10]uint32{0x0311d6e9, 0x01cc20d3, 0x016bd0ea, 0x01b02d4a, 0x00af49ee, 0x0095b2d2, 0x036d1b66, 0x01cfd24f, 0x0216870f, 0x00381acd}}},
+ {X: Field{[10]uint32{0x0394d8ac, 0x019b6237, 0x0190604f, 0x01d5aec3, 0x03c401a6, 0x016db131, 0x02ba0524, 0x02b8fd0f, 0x00ed2b3d, 0x002d29f6}}, Y: Field{[10]uint32{0x00963456, 0x00291b64, 0x01ecfd2b, 0x00138429, 0x01074dcb, 0x0341ebcd, 0x03def119, 0x036d6bf5, 0x00631a2c, 0x003ff207}}},
+ {X: Field{[10]uint32{0x01a6fd17, 0x0078aaf7, 0x01266303, 0x03fd613c, 0x03f84fb2, 0x026a9574, 0x01cb660d, 0x00f15ca1, 0x021daebd, 0x0016baf8}}, Y: Field{[10]uint32{0x02f1abe8, 0x03366676, 0x00ff6d9d, 0x03bdecd7, 0x038f5994, 0x03572114, 0x0178c40c, 0x02d4c834, 0x01136a51, 0x00008ba9}}},
+ {X: Field{[10]uint32{0x008c7f87, 0x00c5b9cb, 0x01c51278, 0x00360e18, 0x0269388d, 0x01158ea9, 0x016d64cb, 0x022356de, 0x02641943, 0x002b1a11}}, Y: Field{[10]uint32{0x02f41ac1, 0x004eace7, 0x02e5ff89, 0x02209961, 0x034d7109, 0x03da4fa4, 0x03bf1143, 0x002c0425, 0x02d82dc9, 0x0032e509}}},
+ {X: Field{[10]uint32{0x00955250, 0x00855f09, 0x028356b8, 0x0190589f, 0x0176ad27, 0x009f3a2a, 0x00c58c2f, 0x0398861d, 0x01490f89, 0x001be52f}}, Y: Field{[10]uint32{0x007c5614, 0x037cfe6f, 0x012ec0d8, 0x02163b03, 0x01e3633a, 0x03e188bd, 0x03d9cf68, 0x0371f171, 0x00ce4a54, 0x003490cc}}},
+ {X: Field{[10]uint32{0x0008f137, 0x01024168, 0x02fa9d09, 0x0229e168, 0x00775e06, 0x02b17fd1, 0x019ec5c9, 0x0251e81b, 0x008ce149, 0x0000fe5b}}, Y: Field{[10]uint32{0x005f3f40, 0x003ab320, 0x00ce2b12, 0x0100c380, 0x009b7d9e, 0x00d8327f, 0x03613d4e, 0x029418f3, 0x03af7111, 0x002a4773}}},
+ {X: Field{[10]uint32{0x039c707d, 0x01c2565d, 0x033c8f34, 0x01866ca9, 0x00405a5b, 0x0124265d, 0x022a4c17, 0x01d74ee1, 0x005cdfd6, 0x0036016c}}, Y: Field{[10]uint32{0x003b6865, 0x0233b20f, 0x03a66b6d, 0x03c40f30, 0x0184366e, 0x02edff2c, 0x022abdbf, 0x027cb78e, 0x004cc727, 0x0029a2d5}}},
+ {X: Field{[10]uint32{0x039df0e4, 0x02f8d381, 0x031d4808, 0x00cdbcbd, 0x03591422, 0x01d2afa6, 0x020efa78, 0x0272d9af, 0x000bd418, 0x00348a4f}}, Y: Field{[10]uint32{0x012682b1, 0x0301a3c8, 0x0131318c, 0x0268ff83, 0x017f24f7, 0x033a8e1c, 0x03fe70a5, 0x012582e6, 0x024887c5, 0x0017ef0c}}},
+ {X: Field{[10]uint32{0x03209d5f, 0x032b6716, 0x016570fa, 0x03ed55be, 0x01e3f107, 0x01dacf17, 0x0149d26e, 0x008ff9eb, 0x010be226, 0x0024c7c2}}, Y: Field{[10]uint32{0x031cc087, 0x034685d2, 0x00144d5a, 0x03006143, 0x01848f57, 0x006ba8e5, 0x01daf748, 0x02626619, 0x0279d2a8, 0x00330957}}},
+ {X: Field{[10]uint32{0x01e5ddc9, 0x0165cc8e, 0x00987a03, 0x002b6cd0, 0x006e4e69, 0x021500e9, 0x02a72f62, 0x03fdaf23, 0x02836707, 0x00046298}}, Y: Field{[10]uint32{0x03ff818b, 0x0086603d, 0x027ad722, 0x02361704, 0x00b6f5a1, 0x0365abe1, 0x039d4470, 0x024160db, 0x03e5e65a, 0x00247c03}}},
+ {X: Field{[10]uint32{0x036a985a, 0x0071a907, 0x014be189, 0x00b4b998, 0x01b811ca, 0x03475278, 0x014ba420, 0x02d26b40, 0x00eb5b6c, 0x0020425b}}, Y: Field{[10]uint32{0x03607e5d, 0x03fa5c2d, 0x038f5b4d, 0x0181ac12, 0x003f4948, 0x00d52d9d, 0x0050a3c1, 0x03cf95e0, 0x01c5f8f9, 0x00036814}}},
+ {X: Field{[10]uint32{0x000cae06, 0x0042624c, 0x0068b9f4, 0x010db771, 0x00351b7e, 0x020fad1f, 0x013559e7, 0x017b58b7, 0x00385ff4, 0x0026a029}}, Y: Field{[10]uint32{0x0004b6d0, 0x015efe2e, 0x01cad30e, 0x01678f90, 0x00bee656, 0x003154e6, 0x028aee8b, 0x02716d18, 0x039921b6, 0x00211747}}},
+ {X: Field{[10]uint32{0x02747906, 0x009023d1, 0x0209081c, 0x0137eeed, 0x02214395, 0x007a57fa, 0x02c1d596, 0x0156e5fe, 0x00f3b899, 0x001a8c5a}}, Y: Field{[10]uint32{0x00ccc005, 0x00f15ca3, 0x01403c48, 0x007a0475, 0x02012c74, 0x00b2406d, 0x0244a3f8, 0x03c420eb, 0x03886778, 0x0016d7c7}}},
+ {X: Field{[10]uint32{0x01214af8, 0x002a43f8, 0x018a73db, 0x03fbd3e3, 0x03797710, 0x022f23b5, 0x03d42985, 0x0196e88e, 0x031178d1, 0x002680ea}}, Y: Field{[10]uint32{0x01e85665, 0x00ad6f22, 0x0265ca65, 0x00287542, 0x0159a555, 0x02955bd4, 0x0112f2bf, 0x012fd245, 0x00e7e61e, 0x001c2223}}},
+ {X: Field{[10]uint32{0x00ea2f5d, 0x01e3bdbd, 0x00e25e78, 0x01066477, 0x01296c8c, 0x0230525c, 0x02615754, 0x03678566, 0x018d78b8, 0x00232430}}, Y: Field{[10]uint32{0x031ca074, 0x005220b2, 0x01a68028, 0x03e6da42, 0x032b97c0, 0x036edc89, 0x0244a5e5, 0x02394685, 0x00cfde62, 0x000a950a}}},
+ {X: Field{[10]uint32{0x008a8957, 0x035b74d4, 0x01d43b68, 0x008cce7f, 0x00933279, 0x000b27b4, 0x037a5daa, 0x00093613, 0x037f3062, 0x000ba6ea}}, Y: Field{[10]uint32{0x02a43345, 0x011d4c34, 0x02aca4a1, 0x023268dd, 0x03ea7e4f, 0x0148ecb7, 0x01e21f19, 0x000f27c8, 0x00b73f38, 0x00326be0}}},
+ {X: Field{[10]uint32{0x02466322, 0x005d9c66, 0x0384db5c, 0x0260d0eb, 0x03e21298, 0x03ef9a8d, 0x0295e7c1, 0x033fbd92, 0x032e718e, 0x0009cd2f}}, Y: Field{[10]uint32{0x0284216e, 0x018d8c79, 0x03ca8f0a, 0x012f7e28, 0x007d0a1e, 0x01a5cc4b, 0x02a0ce34, 0x017c338d, 0x018a9f11, 0x003d4c02}}},
+ {X: Field{[10]uint32{0x016aab58, 0x030a9475, 0x000d5e21, 0x01ee323d, 0x004af325, 0x01e6d485, 0x001b9975, 0x012939ba, 0x02f9500e, 0x002ae7b2}}, Y: Field{[10]uint32{0x01e0f047, 0x0035470f, 0x01bc3ff3, 0x039d5d0f, 0x01d0aaed, 0x00e2a216, 0x015e9d19, 0x0061126f, 0x03468e08, 0x003df4e1}}},
+ {X: Field{[10]uint32{0x031af368, 0x0190d6b2, 0x000c0169, 0x01353a11, 0x00292b4d, 0x016eaa20, 0x029cd3e8, 0x027bcb96, 0x0146a4c0, 0x002b897d}}, Y: Field{[10]uint32{0x03f3da84, 0x004157bd, 0x03d59e05, 0x03c84404, 0x0080bd59, 0x0254f1b1, 0x039a9f22, 0x02103edc, 0x03b37373, 0x0011a8ac}}},
+ {X: Field{[10]uint32{0x012e6142, 0x020f7070, 0x00ace54a, 0x02cafb01, 0x034e35ab, 0x0213f003, 0x017efaa8, 0x00736bd6, 0x01a64ef2, 0x00150a17}}, Y: Field{[10]uint32{0x00cdbc3d, 0x002db0c8, 0x03f6e522, 0x0124351b, 0x00b962a8, 0x00897757, 0x03c2dc29, 0x01ed6e91, 0x02b2144d, 0x000120ef}}},
+ {X: Field{[10]uint32{0x03dca65e, 0x03ad984d, 0x00874c8d, 0x03ba8a45, 0x0035a627, 0x01a9e15f, 0x02d542ed, 0x008c7d82, 0x003404bc, 0x002fb3a1}}, Y: Field{[10]uint32{0x022f6a95, 0x00bd3acf, 0x034f8e9c, 0x02b6934e, 0x00fe1c93, 0x03820495, 0x0077fb8d, 0x039cbe39, 0x038002f9, 0x00288a7e}}},
+ {X: Field{[10]uint32{0x035e81d1, 0x03672d3e, 0x0326b26f, 0x00b6b9b0, 0x0389994a, 0x03a082ef, 0x02fe5af1, 0x02e15d1c, 0x0347b148, 0x0000f555}}, Y: Field{[10]uint32{0x01e465df, 0x000073ef, 0x0052db90, 0x03efbf56, 0x03c9ea7d, 0x02cac58b, 0x035bc4f1, 0x00a293d8, 0x025ae867, 0x0037b7b2}}},
+ {X: Field{[10]uint32{0x01cde5d4, 0x025f73dd, 0x01715fbc, 0x0080cd1d, 0x021846b5, 0x022fda9c, 0x036361a8, 0x00f1cd67, 0x0219d163, 0x0004f1a0}}, Y: Field{[10]uint32{0x03f83af4, 0x0104fe4d, 0x02e55935, 0x038aacad, 0x03bddf0c, 0x00b5e7a7, 0x02bfe7c5, 0x01fc825a, 0x00c239fc, 0x0033a28f}}},
+ {X: Field{[10]uint32{0x01b0a6ac, 0x014049b5, 0x03433436, 0x00a6fa0d, 0x0036690a, 0x02ad4bc6, 0x00c481ad, 0x00691c9d, 0x02e1a804, 0x003a7902}}, Y: Field{[10]uint32{0x00c6bb7f, 0x0191bc8e, 0x029a9577, 0x008a9576, 0x019a22fa, 0x012451f3, 0x031f3147, 0x00e6e04d, 0x00b79c98, 0x00306656}}},
+ {X: Field{[10]uint32{0x01493068, 0x006d3228, 0x00eea632, 0x01c6689a, 0x0113af43, 0x0236d872, 0x0353a537, 0x028697dc, 0x01537460, 0x000b8ed1}}, Y: Field{[10]uint32{0x03a54dcf, 0x014b1772, 0x01bb6e04, 0x03cadbed, 0x015ccf5c, 0x02439540, 0x019d3e22, 0x019b2125, 0x02561049, 0x003dee97}}},
+ {X: Field{[10]uint32{0x034c62b8, 0x03c3d202, 0x0091edb1, 0x03713329, 0x026a59f3, 0x03d9c373, 0x02aa40eb, 0x012c019f, 0x0082b921, 0x0026156f}}, Y: Field{[10]uint32{0x00fcf435, 0x03072033, 0x000098d4, 0x0084e11e, 0x0387184e, 0x02c1c580, 0x0237d6b5, 0x031cf3a7, 0x036e3be6, 0x0029f64f}}},
+ {X: Field{[10]uint32{0x01253979, 0x03e11d85, 0x00866982, 0x03148cee, 0x0367486b, 0x0273c9f7, 0x004bee26, 0x00a44db5, 0x00a9b934, 0x000dfe08}}, Y: Field{[10]uint32{0x0070ca15, 0x01a28a1e, 0x0288b2a5, 0x00ee75ee, 0x0150dd89, 0x01f159a9, 0x0345a5a3, 0x0274ddfc, 0x029daa62, 0x003f72ba}}},
+ {X: Field{[10]uint32{0x02d41a98, 0x02a747f7, 0x013b03cb, 0x028a8e13, 0x023e0cd0, 0x001c3167, 0x00f6ba28, 0x00ec31a4, 0x0098a92a, 0x003a0b4b}}, Y: Field{[10]uint32{0x00501460, 0x021af832, 0x0306095c, 0x03341852, 0x01d09d7e, 0x031f540b, 0x0033d344, 0x016cd852, 0x023232d8, 0x000c79ce}}},
+ {X: Field{[10]uint32{0x02923419, 0x024de666, 0x03f3a24b, 0x007ad002, 0x03ad4690, 0x03abb38e, 0x00711827, 0x032419a8, 0x03c36dd4, 0x002f524b}}, Y: Field{[10]uint32{0x01dd7798, 0x01a83240, 0x01af5fdc, 0x024ef349, 0x018b93da, 0x01ff5012, 0x036dbd0a, 0x03569199, 0x03c51e1f, 0x0032ab68}}},
+ {X: Field{[10]uint32{0x0229577a, 0x03b4cae1, 0x039641cd, 0x0265ef7c, 0x00cd8f0d, 0x0169a720, 0x022c4dc1, 0x03b13cf2, 0x02da42d1, 0x001b22d1}}, Y: Field{[10]uint32{0x0318c956, 0x00900131, 0x030a97f1, 0x023b98ac, 0x01cbeb98, 0x02f2f08e, 0x02ef5965, 0x010b83dc, 0x0362729e, 0x0034eb53}}},
+ {X: Field{[10]uint32{0x00f5dd62, 0x03af303e, 0x00f05ea9, 0x006ab432, 0x03effee7, 0x034d5ad3, 0x00a25d34, 0x034f7615, 0x01e6799b, 0x001e2c7a}}, Y: Field{[10]uint32{0x0131145d, 0x017e248e, 0x025c1dd2, 0x00adc0b9, 0x01d726ce, 0x028c0199, 0x03d70057, 0x02237301, 0x02d6a267, 0x000c540f}}},
+ {X: Field{[10]uint32{0x02ebdccf, 0x01d3ba96, 0x00375c89, 0x0170057c, 0x03cb53fa, 0x03e92ada, 0x028cda6b, 0x0148f8f1, 0x02a663c5, 0x003cbb40}}, Y: Field{[10]uint32{0x00f36382, 0x039c968f, 0x03b67773, 0x02a3451d, 0x02937720, 0x00882b4c, 0x03922413, 0x000c838e, 0x01c3afdc, 0x0000ef79}}},
+ {X: Field{[10]uint32{0x02caffd3, 0x00259f50, 0x02a60cde, 0x0005746a, 0x00f67ab1, 0x03fdae88, 0x0254d835, 0x0002fc1f, 0x0243a458, 0x001f90fd}}, Y: Field{[10]uint32{0x0398d68a, 0x00851655, 0x0079a76e, 0x004ad55a, 0x0158600d, 0x001ed49a, 0x03fbb378, 0x00ce66d5, 0x02da0f47, 0x0007d15b}}},
+ {X: Field{[10]uint32{0x01319be8, 0x002d9598, 0x01d07643, 0x03299955, 0x017ccde2, 0x02d34b3a, 0x00c0a624, 0x00da5ea9, 0x01775eb7, 0x0037c578}}, Y: Field{[10]uint32{0x027311ad, 0x001e73ec, 0x00e53b35, 0x032ac5b9, 0x0108397c, 0x02983b8b, 0x0173dfb8, 0x00e06308, 0x00dcf154, 0x0000125b}}},
+ {X: Field{[10]uint32{0x0382e2ae, 0x01fd9a71, 0x00fceef3, 0x03ee4685, 0x036707a3, 0x02503a12, 0x01c16487, 0x02ec804b, 0x03060295, 0x003b7c75}}, Y: Field{[10]uint32{0x02019a2e, 0x02a2593f, 0x00d7d239, 0x0263c239, 0x039ed8f5, 0x03a223ab, 0x00b2dd68, 0x01b25ec8, 0x02f6fcd7, 0x0038e83c}}},
+ {X: Field{[10]uint32{0x02f8f6c0, 0x023ed705, 0x03c2d9b1, 0x0335aea1, 0x01fd92ce, 0x00f41193, 0x023c3137, 0x02087cef, 0x02b26b15, 0x00305408}}, Y: Field{[10]uint32{0x02136c2e, 0x01606f73, 0x02da9327, 0x0096a03f, 0x0065d57f, 0x00ba7e81, 0x03961e69, 0x00a10b81, 0x0370d94e, 0x001e3348}}},
+ {X: Field{[10]uint32{0x036001d9, 0x01f69fb1, 0x01105e27, 0x032ed4b7, 0x00c6cc2b, 0x02a3e324, 0x01886a28, 0x00578042, 0x036bb6ae, 0x0002f537}}, Y: Field{[10]uint32{0x02f1446f, 0x021c9f63, 0x0387572f, 0x03736806, 0x03a6f6fa, 0x01b3b4b8, 0x00e50299, 0x032e596e, 0x01b2b0b4, 0x00126596}}},
+ {X: Field{[10]uint32{0x03bc0b76, 0x0025c023, 0x03ed4b21, 0x02d3211a, 0x021e2d6e, 0x018bc603, 0x01f9b4f1, 0x02533949, 0x02328738, 0x0037f3b0}}, Y: Field{[10]uint32{0x01b4f92e, 0x03bc019a, 0x03b953f8, 0x0314cc90, 0x005a477e, 0x02842acf, 0x0318f059, 0x0239c670, 0x021bf4c8, 0x002bef1d}}},
+ {X: Field{[10]uint32{0x01c94e54, 0x02c7fbfd, 0x008e1a9e, 0x00d5d939, 0x00b84739, 0x02e2d07f, 0x0259b005, 0x013eb88d, 0x004de3c9, 0x002c01db}}, Y: Field{[10]uint32{0x039c7d4f, 0x0288c203, 0x00551f3e, 0x0286e13a, 0x01fe17fd, 0x0120c282, 0x002ee5e4, 0x029a1dbd, 0x02553c55, 0x00387acc}}},
+ {X: Field{[10]uint32{0x022d0c11, 0x0130fc36, 0x008be94b, 0x02c266fa, 0x020fe9eb, 0x03599e1e, 0x01e9fe33, 0x00957304, 0x029c17c4, 0x0002687f}}, Y: Field{[10]uint32{0x008e8379, 0x03d5a37a, 0x002b096a, 0x01b98b7c, 0x0325f6fd, 0x01eb472a, 0x023e1aac, 0x039ce5b8, 0x030999a8, 0x0039abbd}}},
+ {X: Field{[10]uint32{0x01212899, 0x01ba7905, 0x030f2257, 0x01b9e658, 0x02e1d8b1, 0x01b19441, 0x0399b88b, 0x02f05766, 0x0134126b, 0x0007626a}}, Y: Field{[10]uint32{0x02f8f4eb, 0x02035669, 0x00fd7567, 0x0113b4db, 0x0137d646, 0x03657142, 0x01a79ef7, 0x001c883a, 0x025692db, 0x002df8c8}}},
+ {X: Field{[10]uint32{0x000c7fa4, 0x02f90cdc, 0x000a6ac2, 0x015886f2, 0x02345469, 0x014c3b7e, 0x0062d4f7, 0x00de58f1, 0x0068b67b, 0x003183d7}}, Y: Field{[10]uint32{0x038a7e08, 0x01d6982f, 0x002c653f, 0x014d73b0, 0x03b5507b, 0x003724b4, 0x01b5a676, 0x03c38e86, 0x007197ff, 0x00223e2c}}},
+ {X: Field{[10]uint32{0x02d9d949, 0x01f5b094, 0x02ec9e6b, 0x0073dda3, 0x03620576, 0x00c06f90, 0x036499ad, 0x009a646d, 0x036f0d9b, 0x0014b34a}}, Y: Field{[10]uint32{0x030ec835, 0x00084e00, 0x024aa138, 0x020bd51f, 0x02263563, 0x031e0ac9, 0x0111a3ea, 0x00d42283, 0x00661fa3, 0x003449f3}}},
+ {X: Field{[10]uint32{0x0105dda9, 0x00d0091b, 0x03be920a, 0x02973d38, 0x01c21fbe, 0x0345aec6, 0x004f107f, 0x020d7fce, 0x019ea639, 0x00079112}}, Y: Field{[10]uint32{0x032d1f53, 0x0104b083, 0x0088d027, 0x008fa585, 0x018f8adf, 0x013f43c8, 0x00d12db7, 0x010be654, 0x00e90a90, 0x001071aa}}},
+ {X: Field{[10]uint32{0x006861de, 0x009d50ff, 0x01cb1c67, 0x01595a81, 0x03984ecc, 0x01804dba, 0x0253bae3, 0x0252eb47, 0x00f0a563, 0x0004e451}}, Y: Field{[10]uint32{0x02d0742a, 0x03b4ed0b, 0x02dc1025, 0x0005ba87, 0x00964f3d, 0x03010aee, 0x03174ab6, 0x03a6c86f, 0x0337ff37, 0x001c0e51}}},
+ {X: Field{[10]uint32{0x014a2280, 0x029d3e19, 0x02eb75a2, 0x0322db6d, 0x0134fe75, 0x018d39a1, 0x03cb9546, 0x037c6187, 0x002a2454, 0x0024d328}}, Y: Field{[10]uint32{0x03195761, 0x03e85736, 0x00be4375, 0x00e9af9e, 0x016865ce, 0x013f493c, 0x003caee7, 0x03f2802e, 0x0384266c, 0x001de7a5}}},
+ {X: Field{[10]uint32{0x006a3be6, 0x034c9b62, 0x0279a7ac, 0x02a8b52d, 0x00af913b, 0x034d7b35, 0x01a8c329, 0x009165df, 0x007d9e1c, 0x002993c1}}, Y: Field{[10]uint32{0x01112b2b, 0x0052061e, 0x03581e60, 0x00263b15, 0x023210f3, 0x0091d677, 0x02145e3b, 0x03b5b440, 0x030ff3b4, 0x003847a0}}},
+ {X: Field{[10]uint32{0x018757e1, 0x0150a3a0, 0x0034e2a1, 0x0312e2f5, 0x03cfcf45, 0x03c57fa3, 0x00820ccd, 0x02422236, 0x00bdcd62, 0x003871a2}}, Y: Field{[10]uint32{0x00c77f7d, 0x003dbc86, 0x03600d13, 0x00685499, 0x01a34e7d, 0x01deedd1, 0x03b8e00e, 0x03238004, 0x02e171e7, 0x002f0431}}},
+ {X: Field{[10]uint32{0x00137358, 0x03baab1a, 0x01354c6d, 0x03b43655, 0x010ba2bd, 0x009ebf32, 0x0056de68, 0x01c3cb65, 0x00951231, 0x002c68c3}}, Y: Field{[10]uint32{0x004071f5, 0x01f5042c, 0x032985a1, 0x01fb7e86, 0x02a67879, 0x00100dcf, 0x00443469, 0x0072bf4e, 0x00abc16c, 0x00271da8}}},
+ {X: Field{[10]uint32{0x02166e85, 0x024afab9, 0x034d0d68, 0x027da66b, 0x034c7cf9, 0x023d7894, 0x028ba235, 0x00a470d1, 0x03b5fbb0, 0x00093309}}, Y: Field{[10]uint32{0x039f71d5, 0x0287b633, 0x038ddd7a, 0x03388c4a, 0x02d51aab, 0x03c1da3f, 0x03c52e3f, 0x02e9099c, 0x01af2516, 0x003abcda}}},
+ {X: Field{[10]uint32{0x008f6a57, 0x02aacb65, 0x00a92217, 0x01de136a, 0x02bacab5, 0x02f4c73b, 0x03e8921c, 0x03478bdf, 0x017a6166, 0x0022ed00}}, Y: Field{[10]uint32{0x008dc331, 0x00355ac2, 0x00c8a5c3, 0x01ca4f5e, 0x01a09cad, 0x0060a65b, 0x02e34fc7, 0x01a618d5, 0x000e6c47, 0x0032265d}}},
+ {X: Field{[10]uint32{0x00497f6f, 0x02668cd8, 0x0368b0ec, 0x03d6949c, 0x01e6dafe, 0x002cc0ff, 0x02c17dc2, 0x03765b83, 0x03ddd82f, 0x0015762d}}, Y: Field{[10]uint32{0x03b8beca, 0x0211d8ad, 0x03657bbf, 0x00c347ff, 0x03f4f292, 0x0139cba7, 0x021709e4, 0x0359bd0d, 0x0111078b, 0x003f5891}}},
+ {X: Field{[10]uint32{0x00c94df3, 0x038a148d, 0x028455db, 0x009bb11e, 0x03109d46, 0x00176f78, 0x01cbfe61, 0x00c6bd46, 0x01ef5a55, 0x0020aa8b}}, Y: Field{[10]uint32{0x01811511, 0x003b8e33, 0x007c4ebc, 0x03e81a85, 0x018d1e60, 0x0097eec9, 0x002df919, 0x028b9423, 0x03ea9f83, 0x00184582}}},
+ {X: Field{[10]uint32{0x00f6f7f4, 0x010e33cb, 0x01636ad3, 0x02c30a38, 0x00804b03, 0x033ea466, 0x002cfbf3, 0x01ffe11f, 0x037cc6df, 0x000db049}}, Y: Field{[10]uint32{0x02fe4833, 0x0168a945, 0x03020aee, 0x018038cb, 0x03a7bb3b, 0x02963811, 0x015d821e, 0x0071d151, 0x03a274f8, 0x0008c13e}}},
+ {X: Field{[10]uint32{0x00cd9119, 0x02215ab8, 0x0318c0eb, 0x0097e926, 0x02d57b89, 0x03002cd9, 0x02c9e860, 0x032b5f85, 0x01cc5b44, 0x003cddbf}}, Y: Field{[10]uint32{0x00a028cb, 0x039ea814, 0x006ac74f, 0x02b2f7d7, 0x01c3d0e7, 0x006b3f23, 0x009e3ef1, 0x03a07c12, 0x0132e4de, 0x000b5ab3}}},
+ {X: Field{[10]uint32{0x01c5030b, 0x02ab3297, 0x03d1cc7a, 0x01b0e7b3, 0x0197150b, 0x001f4ea2, 0x02e8ecb9, 0x03a7d765, 0x00dc5372, 0x003a9384}}, Y: Field{[10]uint32{0x02d96ff5, 0x01999b0d, 0x003f9520, 0x0180513f, 0x0336d6be, 0x03f7ae25, 0x03486d29, 0x009aff0b, 0x02a393b6, 0x002c225b}}},
+ {X: Field{[10]uint32{0x02fdeb08, 0x020728e9, 0x0191a0d1, 0x0067c6a7, 0x00a376ea, 0x006c512e, 0x03f0a2c7, 0x01285e74, 0x02b4b266, 0x001d3ce4}}, Y: Field{[10]uint32{0x009e1fc0, 0x03b820f8, 0x02636c6e, 0x00d901b4, 0x01c95230, 0x026d19cd, 0x02cef679, 0x01623d93, 0x0321428d, 0x0026f536}}},
+ {X: Field{[10]uint32{0x014855eb, 0x0258bbf3, 0x02774ca6, 0x01ad62e0, 0x0111c13a, 0x00393208, 0x01a17daf, 0x01ddd290, 0x004259ba, 0x000e8db2}}, Y: Field{[10]uint32{0x00fa5e3c, 0x02574af8, 0x03f482f0, 0x02e91763, 0x01f35e46, 0x017bce79, 0x01720c71, 0x024a3359, 0x01ad9ede, 0x001b76b4}}},
+ {X: Field{[10]uint32{0x0098c019, 0x01434a97, 0x0364deae, 0x00623cc9, 0x017635ef, 0x01ac5faa, 0x02739814, 0x02913c5b, 0x02ad5636, 0x00275dec}}, Y: Field{[10]uint32{0x02ee3eef, 0x030dc688, 0x03234f30, 0x033674bd, 0x03eb5936, 0x02cb6c25, 0x0392b8ac, 0x02186ae4, 0x0027a775, 0x0014cb74}}},
+ {X: Field{[10]uint32{0x02a3c4ab, 0x02b9f9ef, 0x02c1b39a, 0x005fb91a, 0x000deb61, 0x00317c6f, 0x01168a0f, 0x00be0381, 0x02e9450e, 0x000b9d00}}, Y: Field{[10]uint32{0x0182fc3b, 0x020abeb3, 0x02b6034b, 0x0073c90b, 0x03cf8572, 0x02208404, 0x016b3fef, 0x03f8ae3b, 0x036b5606, 0x00107a3c}}},
+ {X: Field{[10]uint32{0x033ebe6f, 0x030ddb94, 0x03320de0, 0x03c54c52, 0x006a6806, 0x023c0297, 0x0333d35e, 0x02d6f606, 0x03254ed0, 0x002bacb2}}, Y: Field{[10]uint32{0x01b9d59c, 0x03135a8a, 0x03d0b142, 0x003dda0c, 0x035d761c, 0x0320fcc5, 0x0028249f, 0x03e8b2cc, 0x02f52d7b, 0x001ae045}}},
+ {X: Field{[10]uint32{0x00ca7895, 0x0330fd17, 0x03655fbb, 0x00eae8e8, 0x014cca66, 0x029e5e4a, 0x00adabe3, 0x00b25e80, 0x00bd55d6, 0x00321889}}, Y: Field{[10]uint32{0x011cc214, 0x00c8eef3, 0x00c21844, 0x014fea54, 0x001d8573, 0x0180276d, 0x0293adfa, 0x01e4d4d9, 0x03b7104f, 0x0028c668}}},
+ {X: Field{[10]uint32{0x02efe561, 0x033eee8f, 0x03a66aac, 0x03814d2c, 0x00d53ddd, 0x03f739bd, 0x035a28bc, 0x01a8375e, 0x00cc2c57, 0x00074459}}, Y: Field{[10]uint32{0x004995a7, 0x0119c2ad, 0x0291c000, 0x022490fa, 0x01ec6009, 0x0311c391, 0x00ba6947, 0x03625ff3, 0x00deaa25, 0x002e1624}}},
+ {X: Field{[10]uint32{0x0040e3c8, 0x00984629, 0x0393b92f, 0x01062f35, 0x035e7f0f, 0x03124f33, 0x036620a5, 0x0056d739, 0x02b413b9, 0x000ad53e}}, Y: Field{[10]uint32{0x039bf5d1, 0x03400593, 0x03cdb30a, 0x012c0bbf, 0x037a61ce, 0x037777cd, 0x01bdfefb, 0x02b635fa, 0x012556fe, 0x0022bfe3}}},
+ {X: Field{[10]uint32{0x0329b340, 0x00ea9815, 0x0188709a, 0x0097cb7e, 0x03a9718c, 0x014f91b5, 0x01428ac8, 0x00a87d82, 0x0224a4e7, 0x0007c7ca}}, Y: Field{[10]uint32{0x00421cbd, 0x037c858b, 0x03170991, 0x00812c85, 0x020b6311, 0x01a1c40c, 0x0394f392, 0x002eeaf3, 0x00a4f492, 0x00011437}}},
+ {X: Field{[10]uint32{0x00ebd4e5, 0x017b94b2, 0x03200f18, 0x0167c8bc, 0x0383fbc5, 0x0001f815, 0x025682c5, 0x01f93493, 0x018ee677, 0x00104bd9}}, Y: Field{[10]uint32{0x0171c8f4, 0x02de26d9, 0x00e32887, 0x038c9da4, 0x010c8399, 0x03e9932c, 0x030b3d7a, 0x0253fae4, 0x024a9d93, 0x0030b82d}}},
+ {X: Field{[10]uint32{0x00f4912b, 0x007e1513, 0x011fbf56, 0x03e7e4b0, 0x0195102e, 0x019f8943, 0x02fec9a3, 0x02477a5d, 0x00b55677, 0x00212577}}, Y: Field{[10]uint32{0x02152443, 0x0270ca8a, 0x011c5e2a, 0x007d1938, 0x03542e51, 0x014ef693, 0x0263f191, 0x02093bd7, 0x01c57d3d, 0x00197e02}}},
+ {X: Field{[10]uint32{0x0156cfde, 0x013fc216, 0x006ee1bb, 0x02a5e959, 0x030b4a18, 0x02172931, 0x0145b8bc, 0x032578ea, 0x01c0d841, 0x003e39ef}}, Y: Field{[10]uint32{0x00ed6d42, 0x03b7577c, 0x010111b4, 0x0358577d, 0x006d6660, 0x012e7f02, 0x009d28c2, 0x00d9e4df, 0x0083f93a, 0x0003342b}}},
+ {X: Field{[10]uint32{0x02854c94, 0x00bdcc18, 0x0213164f, 0x0121db92, 0x008c8c56, 0x037ca2b5, 0x00767517, 0x0041c492, 0x025a4e4c, 0x0020c918}}, Y: Field{[10]uint32{0x039bfaeb, 0x03308c07, 0x003561f5, 0x032c902e, 0x01de65e2, 0x00189809, 0x01c7ec37, 0x00a09582, 0x01604992, 0x001d86c6}}},
+ {X: Field{[10]uint32{0x03ca04d4, 0x03b61644, 0x032cf213, 0x0180c08f, 0x0216a8e1, 0x00d4f7c7, 0x00b6befd, 0x01f88abd, 0x01ff99f8, 0x0022c712}}, Y: Field{[10]uint32{0x03ad6c23, 0x006f78c8, 0x034c02ca, 0x01d5f89d, 0x006abbf9, 0x008b7894, 0x01cff728, 0x022194b4, 0x03d10e17, 0x00335144}}},
+ {X: Field{[10]uint32{0x02f4f138, 0x02b2e0a5, 0x03790bca, 0x03ca1eba, 0x0259deac, 0x018c2d19, 0x0030e89d, 0x01360232, 0x01a120d2, 0x0038ab58}}, Y: Field{[10]uint32{0x02186291, 0x036f1bec, 0x0321abf5, 0x01a5800c, 0x02918497, 0x02b371f2, 0x02d29405, 0x01219f6a, 0x01dcfc1c, 0x00147346}}},
+ {X: Field{[10]uint32{0x00c197a4, 0x038eb40d, 0x013ba9ea, 0x0339fd1e, 0x01e10356, 0x00c41580, 0x026aa915, 0x029bcc5a, 0x017ea9a9, 0x0003a373}}, Y: Field{[10]uint32{0x00ea6b5e, 0x0072a14e, 0x0295c2e6, 0x0249a9a1, 0x0195f698, 0x01c712b7, 0x02e2a99e, 0x02abd74c, 0x02d791f3, 0x00320d6e}}},
+ {X: Field{[10]uint32{0x00f81233, 0x02423a6f, 0x03556e46, 0x02566c81, 0x00d8643f, 0x033ec171, 0x01bba690, 0x02e3bcd8, 0x00e35875, 0x003c2dd2}}, Y: Field{[10]uint32{0x01d6e908, 0x025006cb, 0x0023e91e, 0x02aea7fd, 0x01c1c0ae, 0x030a7298, 0x00765f60, 0x00e9ed9e, 0x02515d16, 0x001a8993}}},
+ {X: Field{[10]uint32{0x01af3a87, 0x025f54ce, 0x017962ce, 0x02ba4faf, 0x03e6eef8, 0x03ff8908, 0x02dd305b, 0x016859d9, 0x016f0997, 0x0024037a}}, Y: Field{[10]uint32{0x01164478, 0x02a9c013, 0x01439650, 0x026c4848, 0x01f33f8e, 0x02f9a692, 0x031bf65d, 0x01628e8c, 0x02ecd9c0, 0x002252ac}}},
+ {X: Field{[10]uint32{0x0188aa53, 0x0085283b, 0x00645a6e, 0x02879b4d, 0x01ce7fbd, 0x03a7b3e5, 0x030e3067, 0x008d081c, 0x0130d2ea, 0x00232f9e}}, Y: Field{[10]uint32{0x00186b83, 0x0377615c, 0x01ac9919, 0x01c3b01c, 0x0085092c, 0x008cb24d, 0x027f2c8e, 0x0299f6b8, 0x016bf875, 0x00219ec5}}},
+ {X: Field{[10]uint32{0x0225e68d, 0x024bfb26, 0x003e69a2, 0x037f04d6, 0x00e79237, 0x0315c1b5, 0x01a65c0f, 0x03490e51, 0x01c95b35, 0x002832ec}}, Y: Field{[10]uint32{0x02047e4f, 0x0293ac60, 0x00a4055b, 0x00917a14, 0x013c6d70, 0x003701b8, 0x01c8a554, 0x006917e0, 0x01d13cd6, 0x002db5fa}}},
+ {X: Field{[10]uint32{0x022463cf, 0x02912209, 0x03f4c832, 0x00f58ed1, 0x00d8050c, 0x017a61ff, 0x02d3bbe0, 0x0232d6a9, 0x0072a3fa, 0x000522ab}}, Y: Field{[10]uint32{0x037e4a61, 0x00ccc899, 0x000b292a, 0x02460963, 0x0372749f, 0x01bcb8ae, 0x0245f6d3, 0x0112156a, 0x0249a6e2, 0x001fca77}}},
+ {X: Field{[10]uint32{0x02f3977f, 0x01f3ccd9, 0x018cefb0, 0x03e89688, 0x02c28616, 0x028838b9, 0x02caf7ef, 0x03f5b79b, 0x01073a1a, 0x000ee7fb}}, Y: Field{[10]uint32{0x02c65fc9, 0x01c00f04, 0x010fe0ac, 0x0284d23b, 0x034fa9e7, 0x025ab4f8, 0x030c936e, 0x03259287, 0x033c5084, 0x003c2a16}}},
+ {X: Field{[10]uint32{0x023537aa, 0x0196b1f3, 0x020fecc5, 0x03ab7eff, 0x027c9cbc, 0x003e90c6, 0x03b443c3, 0x02ff6555, 0x00ed5228, 0x001f7917}}, Y: Field{[10]uint32{0x022686f0, 0x027377be, 0x00fc1199, 0x02298326, 0x0178e011, 0x0315418b, 0x03794f3a, 0x01c0cef2, 0x01376910, 0x00145777}}},
+ {X: Field{[10]uint32{0x01913dd2, 0x03986c95, 0x015aa251, 0x0273ae87, 0x03c17cf9, 0x013cea15, 0x00102747, 0x03d58a60, 0x035a0534, 0x00273068}}, Y: Field{[10]uint32{0x02433ae5, 0x005a130f, 0x007ccc69, 0x010ebcaf, 0x03c653e2, 0x02fe384b, 0x0115da37, 0x0293e658, 0x01a8f30f, 0x003024b3}}},
+ {X: Field{[10]uint32{0x02b52ec6, 0x002da41e, 0x00562092, 0x03ec8896, 0x0310fc71, 0x00a29ca0, 0x02ad7298, 0x00ee731d, 0x0168759b, 0x00360bc6}}, Y: Field{[10]uint32{0x0018c607, 0x002bd422, 0x03306c47, 0x020b72b0, 0x011b3720, 0x03872760, 0x0008f8ca, 0x00ec31ce, 0x02052698, 0x00153342}}},
+ {X: Field{[10]uint32{0x007b7586, 0x0257ab6e, 0x02498241, 0x01221796, 0x0101f9c5, 0x00a46d83, 0x031bffcc, 0x016a5430, 0x014703d9, 0x0005b9aa}}, Y: Field{[10]uint32{0x03d8aafd, 0x00b15636, 0x03276f88, 0x02393b5c, 0x0080ff4c, 0x02a55f01, 0x010d3655, 0x01ae30b9, 0x0138581b, 0x000678a6}}},
+ {X: Field{[10]uint32{0x035cd237, 0x0263948e, 0x03197ff0, 0x01395e85, 0x03ad57a7, 0x01df0d18, 0x02b46704, 0x013c9391, 0x02f300ee, 0x00341f9e}}, Y: Field{[10]uint32{0x035d0e20, 0x01bc9304, 0x00b1bc69, 0x037adbc8, 0x00d4d175, 0x03d86222, 0x031019be, 0x005959a6, 0x020f43c9, 0x003ffcd3}}},
+ {X: Field{[10]uint32{0x01665380, 0x007d3679, 0x0301450a, 0x02e43260, 0x018ffe42, 0x00fea93a, 0x02118a34, 0x009ff18e, 0x00e56dc0, 0x000afd91}}, Y: Field{[10]uint32{0x02262ec5, 0x013e4956, 0x00477c92, 0x017d9ba9, 0x03eb84ca, 0x001ad57d, 0x0366fb7a, 0x007f17e3, 0x017577be, 0x002fbd70}}},
+ {X: Field{[10]uint32{0x005cb045, 0x03b5493f, 0x03a3ab97, 0x01f97897, 0x027a8810, 0x010965f1, 0x00801014, 0x036e4d23, 0x01370db1, 0x001463c3}}, Y: Field{[10]uint32{0x014d7294, 0x0280e5da, 0x037418db, 0x03d37e2a, 0x006eb9f3, 0x0125d094, 0x03113a14, 0x03b4059b, 0x010ea4e9, 0x00372a1d}}},
+ {X: Field{[10]uint32{0x030554c7, 0x031c975b, 0x0128e9a9, 0x02ea1e66, 0x0057bf54, 0x03087d89, 0x029893f8, 0x01d284af, 0x02b6c507, 0x0002f523}}, Y: Field{[10]uint32{0x0170f6e1, 0x03e9e1fd, 0x002d2e2c, 0x01418c9d, 0x00dd58f3, 0x01da7dce, 0x034bad90, 0x000c019d, 0x01a8cd8f, 0x0008029b}}},
+ {X: Field{[10]uint32{0x031517e2, 0x02678d36, 0x031302aa, 0x01178f02, 0x00800c5b, 0x0193e870, 0x0336622b, 0x01a78da4, 0x013a8711, 0x00333236}}, Y: Field{[10]uint32{0x0101d845, 0x03f5b0db, 0x0305611e, 0x00252027, 0x00888373, 0x0115219a, 0x0211f1bc, 0x0191e3be, 0x03e4d45e, 0x000103b9}}},
+ {X: Field{[10]uint32{0x03f6bd1a, 0x0149fc76, 0x03dab8f4, 0x00703f09, 0x0327e8d0, 0x01efa7a9, 0x01d2e9a2, 0x01e648c4, 0x012c7587, 0x0021bd8e}}, Y: Field{[10]uint32{0x010f7922, 0x02bcd340, 0x02dd3e7c, 0x0063f51a, 0x00571505, 0x0127b9a4, 0x02b1304c, 0x02a8a8f4, 0x0211b647, 0x001fb8a5}}},
+ {X: Field{[10]uint32{0x03d7fdfd, 0x010760ed, 0x01c1bbfc, 0x0205b687, 0x019bb5a3, 0x00e1d47e, 0x03941053, 0x003e9b0d, 0x00e5927b, 0x00380d3d}}, Y: Field{[10]uint32{0x01a5f89d, 0x01239d50, 0x03b6ff22, 0x01eec9e7, 0x01e90256, 0x02fb72ae, 0x0282b05c, 0x010b904c, 0x02cb8382, 0x003727c0}}},
+ {X: Field{[10]uint32{0x02b51045, 0x02d2731a, 0x01062837, 0x03bee1b8, 0x0075eadf, 0x02e09544, 0x023a66a0, 0x02fc017b, 0x02160a9d, 0x0023f0da}}, Y: Field{[10]uint32{0x03d200a6, 0x02526648, 0x0374a705, 0x009e7b27, 0x0266a885, 0x0001292f, 0x03d9957a, 0x02607485, 0x00409605, 0x0031fb8b}}},
+ {X: Field{[10]uint32{0x033278e0, 0x002b7239, 0x0112d9c1, 0x037ad45f, 0x03997130, 0x019773f8, 0x0089b71e, 0x01f65b59, 0x00bc5407, 0x0035eed0}}, Y: Field{[10]uint32{0x028b0a4b, 0x0241d2a9, 0x01b468ce, 0x02f8ea2a, 0x025897c0, 0x025ad72d, 0x020706bd, 0x02eb916a, 0x03662f64, 0x00388258}}},
+ {X: Field{[10]uint32{0x03bd2ac5, 0x0382a218, 0x007e0b8b, 0x020455ec, 0x003c8826, 0x00997390, 0x007d2d6c, 0x031c5045, 0x02858054, 0x0035cd5d}}, Y: Field{[10]uint32{0x01a9932b, 0x00baf961, 0x019c24f4, 0x0294e031, 0x01d2ce03, 0x03356013, 0x014099e9, 0x0108e709, 0x014b2fc9, 0x00253e1d}}},
+ {X: Field{[10]uint32{0x018f8392, 0x02b836a1, 0x002b6669, 0x03f595f7, 0x013e720f, 0x034ff859, 0x01a7e99b, 0x00ffe9c7, 0x02aed935, 0x0016dbe2}}, Y: Field{[10]uint32{0x018f9089, 0x013d1cd0, 0x03c106e7, 0x0100c094, 0x03e49668, 0x0138917c, 0x02f85ec3, 0x01bbb7e9, 0x0105369c, 0x0013babf}}},
+ {X: Field{[10]uint32{0x02222000, 0x01cb1390, 0x03b39f7b, 0x02806683, 0x02ab4076, 0x0313d221, 0x004b4f49, 0x00a7900e, 0x011267cc, 0x000e5113}}, Y: Field{[10]uint32{0x0283d771, 0x02806872, 0x010ba50e, 0x015c6ddf, 0x01329f30, 0x014e23ae, 0x0248adf3, 0x03b8b637, 0x002aaf90, 0x00197094}}},
+ {X: Field{[10]uint32{0x030752c7, 0x021222c6, 0x010030a1, 0x02573b0b, 0x0216ebad, 0x02f26223, 0x019c4a7d, 0x02c28f05, 0x00dbf1ef, 0x0014f780}}, Y: Field{[10]uint32{0x01e2fbda, 0x0158c881, 0x026d33a5, 0x01993452, 0x0287dc61, 0x039ef146, 0x02d62285, 0x0177e9d4, 0x03d99947, 0x000ca3b2}}},
+ {X: Field{[10]uint32{0x015ead39, 0x0052932f, 0x019e3d48, 0x033bad23, 0x03194d1b, 0x017ed80c, 0x000eef0d, 0x01c84f8a, 0x03af9b4f, 0x0001228e}}, Y: Field{[10]uint32{0x00334186, 0x026a2eca, 0x029ce709, 0x03b512a6, 0x037e749e, 0x03252c83, 0x006f7fbc, 0x00e14aef, 0x01c9e04a, 0x000ed2b2}}},
+ {X: Field{[10]uint32{0x033ac541, 0x011c1f96, 0x02b6eb52, 0x001be85b, 0x03acccf4, 0x009f88b5, 0x00182370, 0x0073b4f1, 0x0230503c, 0x003c035d}}, Y: Field{[10]uint32{0x01ca95b5, 0x015c6dcc, 0x00404f47, 0x03ff6df4, 0x03c9e2bc, 0x03e3b564, 0x0254605d, 0x01d89ac4, 0x013fec17, 0x00268777}}},
+ {X: Field{[10]uint32{0x0141eaac, 0x02099622, 0x01ee89a4, 0x03210205, 0x00c4f8ee, 0x03a30868, 0x01708582, 0x03ad6439, 0x01943ce7, 0x00387fc6}}, Y: Field{[10]uint32{0x03353b7e, 0x02d25cb5, 0x003dd003, 0x00faf0db, 0x01dbf27e, 0x022a95fa, 0x021b53d7, 0x01cb9b39, 0x0172746e, 0x0014a395}}},
+ {X: Field{[10]uint32{0x0059bd49, 0x00afbc1d, 0x02c55256, 0x00116456, 0x0223b3aa, 0x01d709ef, 0x015a6652, 0x01d43838, 0x0020c48e, 0x00393c4f}}, Y: Field{[10]uint32{0x0287ca30, 0x008731db, 0x01ebca2d, 0x014cd8aa, 0x03639010, 0x01ec6eec, 0x026b9d6a, 0x007e668b, 0x02cec6e5, 0x002faf1f}}},
+ {X: Field{[10]uint32{0x006f5f20, 0x035720e2, 0x03ea4d2d, 0x0012b1a4, 0x01598c6c, 0x0033c9c6, 0x003d3716, 0x019ba1c2, 0x00f3824b, 0x0038dba3}}, Y: Field{[10]uint32{0x0086c60b, 0x03432f68, 0x009f6c88, 0x03a193c9, 0x00f5be9f, 0x02069537, 0x03749104, 0x015f7cf6, 0x01938afe, 0x0013a838}}},
+ {X: Field{[10]uint32{0x0246365f, 0x03478349, 0x0172a63d, 0x0373f7a5, 0x03797ff5, 0x0135f151, 0x00b4a068, 0x034beca7, 0x03193286, 0x0014787c}}, Y: Field{[10]uint32{0x02370e3a, 0x00b321d4, 0x01cb2ace, 0x03b6e519, 0x03b8640c, 0x03130f50, 0x0290d7e6, 0x03b318c6, 0x023c6f30, 0x002b11c3}}},
+ {X: Field{[10]uint32{0x01a5fae0, 0x033de735, 0x0224829b, 0x01055b4a, 0x0022277f, 0x016f09b7, 0x01dadd64, 0x0139c981, 0x02a9c40d, 0x0023a0b6}}, Y: Field{[10]uint32{0x027c53ee, 0x03666e05, 0x024d733a, 0x0078ca84, 0x03b01b96, 0x00cf8a46, 0x0191dd72, 0x015ec8ac, 0x01fdbe90, 0x001fe055}}},
+ {X: Field{[10]uint32{0x022c41e3, 0x006cd64f, 0x02595988, 0x01d1938a, 0x0038bea6, 0x0097e9e2, 0x03fd5e95, 0x01ea90d3, 0x0344273c, 0x001e7959}}, Y: Field{[10]uint32{0x0385ecab, 0x01b9f2fc, 0x03c33e80, 0x0083c9e2, 0x03eb786a, 0x011c48b5, 0x00ec764b, 0x03bee7c0, 0x01a3c50d, 0x00189422}}},
+ {X: Field{[10]uint32{0x02743f79, 0x03b4fd98, 0x0206879d, 0x015bcbc7, 0x02af7fe1, 0x01389288, 0x01eb8918, 0x00655d47, 0x00e2d19c, 0x002a5f80}}, Y: Field{[10]uint32{0x018284a0, 0x029425f3, 0x03282944, 0x0177a9ce, 0x02f3f583, 0x0113fe47, 0x00726bbc, 0x00b124d5, 0x02bd8bcb, 0x0022075f}}},
+ {X: Field{[10]uint32{0x03338542, 0x01c1c9c2, 0x00aa8f4a, 0x02fa3ece, 0x009bc52f, 0x001508de, 0x021c3fb4, 0x03d70c53, 0x014607bb, 0x000efc41}}, Y: Field{[10]uint32{0x024f6367, 0x010b1900, 0x022b6390, 0x01479611, 0x019a87ba, 0x03e10381, 0x0068e5fe, 0x02dffdb7, 0x006cfad5, 0x0039e256}}},
+ {X: Field{[10]uint32{0x01d9cc5d, 0x012202d5, 0x03b2e01f, 0x033e10df, 0x0249cce0, 0x033cd01a, 0x034ee87e, 0x0077fce6, 0x00775879, 0x00200a5b}}, Y: Field{[10]uint32{0x00152dcb, 0x031376e4, 0x01284846, 0x00d2f6c2, 0x00902e48, 0x0022f145, 0x028753b7, 0x01e07f38, 0x02113c7f, 0x000ec1af}}},
+ {X: Field{[10]uint32{0x00ba52fe, 0x02594188, 0x03023598, 0x013a1f95, 0x01b7b0fe, 0x016713fc, 0x029cc123, 0x036ff7da, 0x037aa3ee, 0x001238b2}}, Y: Field{[10]uint32{0x02e8ed1b, 0x01592c27, 0x00aac7ad, 0x00c4f3fd, 0x00a0a456, 0x01fdcbb8, 0x00411ba8, 0x026ef165, 0x017afa90, 0x00371e10}}},
+ {X: Field{[10]uint32{0x03403d46, 0x02016a5c, 0x00b6b7b4, 0x00ba65cc, 0x0031a3db, 0x0061f5e7, 0x02b482aa, 0x015220a1, 0x011fcb77, 0x0037244d}}, Y: Field{[10]uint32{0x03adb1a3, 0x00ffe5bd, 0x01b2ffa9, 0x01713942, 0x03fc52e3, 0x03827e97, 0x0180ecd5, 0x0064ba30, 0x020d2d13, 0x003b5c83}}},
+ {X: Field{[10]uint32{0x0190a670, 0x025cc67a, 0x02b9f017, 0x014d6c14, 0x013a2b26, 0x03ecd13a, 0x0105b151, 0x02d3ea73, 0x013948ce, 0x00174df0}}, Y: Field{[10]uint32{0x0174cb01, 0x01b54e86, 0x0348a185, 0x0349f279, 0x00b62e16, 0x02e5018d, 0x02832ad6, 0x02e9201e, 0x033c2590, 0x003de424}}},
+ {X: Field{[10]uint32{0x03070aa2, 0x03b285dd, 0x00157708, 0x0096b67a, 0x0015c8e3, 0x02a123fd, 0x017eece0, 0x026c89bf, 0x02b0f8d6, 0x00262f2e}}, Y: Field{[10]uint32{0x02150212, 0x0379637a, 0x002060e2, 0x01266ec4, 0x03a08aa9, 0x008629fb, 0x02ffd615, 0x01521f9a, 0x03b3db71, 0x001d9c78}}},
+ {X: Field{[10]uint32{0x0335b1c5, 0x0170448f, 0x03a188fa, 0x02340891, 0x0012ce30, 0x01640cd0, 0x0194384d, 0x0121bbe9, 0x01cb3de9, 0x001838b0}}, Y: Field{[10]uint32{0x0369d1bb, 0x010bcbe4, 0x008fa639, 0x021ada38, 0x024d58d0, 0x014efdc8, 0x03c11a38, 0x0319bd70, 0x031b9767, 0x001b79c0}}},
+ {X: Field{[10]uint32{0x004885c7, 0x00fa9c8c, 0x03467d87, 0x02ecca7a, 0x01aaf513, 0x038be6f3, 0x03f2f702, 0x015add42, 0x02c5aa82, 0x002051c5}}, Y: Field{[10]uint32{0x03d297ee, 0x00290b71, 0x00b58630, 0x0324283f, 0x01eb7efa, 0x00d4cf7a, 0x03ba31e2, 0x0186244f, 0x00ee8fa9, 0x003b2991}}},
+ {X: Field{[10]uint32{0x02f8de77, 0x024d3edc, 0x00e3be6d, 0x0218803a, 0x019fb715, 0x00d9a1b5, 0x0360f7b6, 0x004bbc2b, 0x033f1db4, 0x00095e27}}, Y: Field{[10]uint32{0x007de0ac, 0x0320c08b, 0x00ce9633, 0x00ee3163, 0x02863bc0, 0x022069a1, 0x034a6f77, 0x03886d5c, 0x039899d1, 0x00394889}}},
+ {X: Field{[10]uint32{0x00f1bdcd, 0x02337ca8, 0x01527ef1, 0x0079e028, 0x0227f2a9, 0x00ff2da9, 0x02a87fdf, 0x03e39591, 0x000c98bf, 0x0014e0bd}}, Y: Field{[10]uint32{0x0232b502, 0x03a17192, 0x0079d9a1, 0x0360e31e, 0x0239c027, 0x02765e85, 0x0068ce13, 0x028e8768, 0x01dee41c, 0x0008c740}}},
+ {X: Field{[10]uint32{0x011d1f2b, 0x00c8e2e8, 0x01dc6e57, 0x02cfc63a, 0x0167d9ec, 0x03d5f740, 0x02ab14d8, 0x03eb7ff2, 0x01209db2, 0x0011233f}}, Y: Field{[10]uint32{0x0166fea6, 0x0070c564, 0x005875a1, 0x019c2548, 0x032ba1bb, 0x0134a092, 0x01e8d181, 0x015b090d, 0x02e55a4f, 0x002eb638}}},
+ {X: Field{[10]uint32{0x02e5653d, 0x02befa00, 0x02ab5667, 0x00f7ad84, 0x01f6c489, 0x01112efe, 0x012b69d5, 0x00cd7d40, 0x024b0fe6, 0x003645f2}}, Y: Field{[10]uint32{0x032bad17, 0x0216ebbc, 0x0033a4bb, 0x0154c40b, 0x00aeabc0, 0x005f397c, 0x0150f1ff, 0x025d589e, 0x024be6a4, 0x000ff7a6}}},
+ {X: Field{[10]uint32{0x01ba8f72, 0x017c93a4, 0x00570db3, 0x0398293a, 0x031dd974, 0x038fbd60, 0x03de053b, 0x020eb5cc, 0x01f517a8, 0x00031fba}}, Y: Field{[10]uint32{0x039bba44, 0x03f41881, 0x01f3a2bf, 0x0134b7ce, 0x02e06a7e, 0x01a82338, 0x03d2a31c, 0x019efd95, 0x038d26d3, 0x00236ddc}}},
+ {X: Field{[10]uint32{0x00d9a30b, 0x00217825, 0x00aed0b7, 0x02e28cab, 0x00819a77, 0x01f210ef, 0x022b1737, 0x035b781e, 0x019d983e, 0x0020fc28}}, Y: Field{[10]uint32{0x00afe6a7, 0x03d21d4b, 0x00e00c37, 0x011db55d, 0x00880acd, 0x0044ef98, 0x0348b636, 0x0111cf61, 0x029667be, 0x0034aacf}}},
+ {X: Field{[10]uint32{0x0313989d, 0x02649dc8, 0x02f2e2b2, 0x01e41f14, 0x01596740, 0x01d360f7, 0x03b56bde, 0x01f10263, 0x026a6168, 0x003cfe2a}}, Y: Field{[10]uint32{0x01a109fb, 0x00e653d0, 0x03a21ad6, 0x0130da15, 0x00caa1b5, 0x02258d97, 0x0201ff9a, 0x000e8cb4, 0x009d0985, 0x000e9a43}}},
+ {X: Field{[10]uint32{0x0032249e, 0x03b87fd4, 0x0316a283, 0x01010e11, 0x03914fdd, 0x03af2d39, 0x01d6e8b3, 0x035b1f65, 0x01caa30b, 0x00130684}}, Y: Field{[10]uint32{0x01424da0, 0x0394856e, 0x028809b7, 0x01f0dfe0, 0x006598f1, 0x0194ce74, 0x014c604e, 0x03bd0348, 0x00c94653, 0x0039f9c6}}},
+ {X: Field{[10]uint32{0x02e5477d, 0x008b064f, 0x00f6c1d9, 0x03216872, 0x02529ebb, 0x0083cc60, 0x033bdb04, 0x0280614f, 0x01523419, 0x000a506e}}, Y: Field{[10]uint32{0x02628413, 0x00e4b74f, 0x02763864, 0x01442260, 0x0280482b, 0x03db07b7, 0x0205baa7, 0x019a82aa, 0x026c29ca, 0x000ddfc8}}},
+ {X: Field{[10]uint32{0x0191a6a1, 0x00858761, 0x032c3384, 0x03bf8615, 0x004b5f25, 0x031c1e2b, 0x03b3eb18, 0x026be196, 0x0107aad4, 0x00027413}}, Y: Field{[10]uint32{0x0083cd34, 0x004ae88b, 0x03724f85, 0x03287523, 0x02779eb0, 0x0065912d, 0x01ae02d1, 0x02a27ed1, 0x028dec2c, 0x003d5ca5}}},
+ {X: Field{[10]uint32{0x03d26e20, 0x011ac190, 0x03ef4a26, 0x01405def, 0x000d660c, 0x02988a09, 0x01a983c9, 0x028406e6, 0x0367c3c3, 0x0011007d}}, Y: Field{[10]uint32{0x02d4e342, 0x019a77a1, 0x00c0bb7d, 0x037bba60, 0x02999f8b, 0x03419a79, 0x00293091, 0x00453859, 0x02f78e1b, 0x001e54be}}},
+ {X: Field{[10]uint32{0x03bba31f, 0x02dfc306, 0x03fa68d7, 0x0311eca0, 0x000ab8a1, 0x033218ea, 0x028665ba, 0x005f4ecc, 0x0027fc40, 0x00252dbd}}, Y: Field{[10]uint32{0x0340d85a, 0x028085f7, 0x01868e09, 0x0096a660, 0x019cbe77, 0x027741ea, 0x008199e9, 0x034b51bb, 0x027d35f0, 0x0004cd81}}},
+ {X: Field{[10]uint32{0x01e7288f, 0x026d2893, 0x01445738, 0x027e4809, 0x03f2fba5, 0x039d55d2, 0x03b87cdd, 0x026ef518, 0x03a292c7, 0x00105886}}, Y: Field{[10]uint32{0x02cd3188, 0x0328b868, 0x0111b717, 0x001eca53, 0x033bc70a, 0x0399ee50, 0x0389951f, 0x002de204, 0x03d5b6f3, 0x000d54cd}}},
+ {X: Field{[10]uint32{0x01a3594e, 0x030e67bf, 0x0173fc33, 0x02eaac53, 0x038a9b27, 0x0049a062, 0x0100dde6, 0x03074d56, 0x00156256, 0x002c20e1}}, Y: Field{[10]uint32{0x01a954a5, 0x01a11d71, 0x02c7dc5d, 0x034541a7, 0x03843ef8, 0x01a90a17, 0x00c5371b, 0x018b8a47, 0x019055b1, 0x000aabe4}}},
+ {X: Field{[10]uint32{0x000dc9bd, 0x0249d19b, 0x008fb8ba, 0x004c3a11, 0x027d910f, 0x03330509, 0x029f4377, 0x023fa977, 0x014fef41, 0x00332668}}, Y: Field{[10]uint32{0x00536f28, 0x02baedc6, 0x017f5c77, 0x0364b3ff, 0x0222f7b3, 0x030326fc, 0x02f164ba, 0x0304b750, 0x03647c01, 0x0000b8c2}}},
+ {X: Field{[10]uint32{0x01764e37, 0x01083741, 0x01d50a2f, 0x02d6e59f, 0x027b21d6, 0x03601763, 0x025d59c1, 0x00616355, 0x024adbec, 0x00234aec}}, Y: Field{[10]uint32{0x019f712f, 0x0052fe26, 0x005efe70, 0x0035a959, 0x02fc371d, 0x022824c8, 0x02537c70, 0x02bae9c4, 0x0330e78d, 0x003371b5}}},
+ {X: Field{[10]uint32{0x010f7c9b, 0x008ce8f9, 0x0219203b, 0x01bc9d08, 0x00dbb94c, 0x01d438ca, 0x00a18717, 0x033d2b9b, 0x02de0f18, 0x0018f3b9}}, Y: Field{[10]uint32{0x02fdfeb8, 0x00d05cc7, 0x014367ca, 0x00c784d9, 0x00ce0050, 0x02a2160a, 0x0231b8f7, 0x008ce86d, 0x01adad2d, 0x002048c3}}},
+ {X: Field{[10]uint32{0x02755a0c, 0x029679a4, 0x02114926, 0x01fee3d1, 0x02b2e4d0, 0x02e86776, 0x028d5cbf, 0x03740e69, 0x029c1dc6, 0x00188213}}, Y: Field{[10]uint32{0x01061a26, 0x03662dc1, 0x0302cc4b, 0x006bef37, 0x02cc9c7f, 0x02a09f82, 0x01c273aa, 0x006bc003, 0x00f462fb, 0x001b6fad}}},
+ {X: Field{[10]uint32{0x018dd827, 0x01cd8957, 0x01238c27, 0x00ddf7de, 0x003f34a9, 0x01c1cab3, 0x02368ec1, 0x018a0053, 0x02baf65b, 0x00044303}}, Y: Field{[10]uint32{0x02e75c6d, 0x03fe16ca, 0x02ba9649, 0x01d0b6be, 0x030c3c3e, 0x00082e0e, 0x01d5865b, 0x01896258, 0x03166f23, 0x000692e9}}},
+ {X: Field{[10]uint32{0x01c87e00, 0x01f279bc, 0x012b6892, 0x01748f34, 0x01baa50a, 0x02ae5d01, 0x007306cf, 0x008d2ea0, 0x011e50fb, 0x00361229}}, Y: Field{[10]uint32{0x016a4fd8, 0x01cadbea, 0x02adc16a, 0x027cf2de, 0x0151fdb4, 0x0265127b, 0x02e4b1cc, 0x00032132, 0x026288fb, 0x00276e6f}}},
+ {X: Field{[10]uint32{0x014c2b5a, 0x03269f38, 0x0002396b, 0x0181606c, 0x02a8cf26, 0x02406e7b, 0x0147f3b3, 0x01aad149, 0x0093a270, 0x00108c46}}, Y: Field{[10]uint32{0x024165bc, 0x034f4b2b, 0x00d70daa, 0x0073a7bd, 0x03d6129a, 0x01d82691, 0x01c2a9f7, 0x0088b066, 0x02db9ba6, 0x001d43e1}}},
+ {X: Field{[10]uint32{0x0034d37f, 0x02bb038e, 0x037419fd, 0x00797c5f, 0x026b252f, 0x01f2878c, 0x03454967, 0x037104cb, 0x00ee471a, 0x00110e71}}, Y: Field{[10]uint32{0x01897e87, 0x0003b95d, 0x0119581a, 0x0196ce16, 0x03617c95, 0x03e1be4e, 0x0316ab66, 0x030f798b, 0x032c22c5, 0x002f5d70}}},
+ {X: Field{[10]uint32{0x0113b053, 0x02b2bfb0, 0x03bbf36b, 0x01e6601b, 0x02e02e9e, 0x0314bf6d, 0x00b0bbd8, 0x00c76992, 0x03dab192, 0x00137f38}}, Y: Field{[10]uint32{0x03042c3a, 0x01168a84, 0x0342f69d, 0x01650bfa, 0x029d647c, 0x011f3068, 0x00a1c3e1, 0x01fee910, 0x031f4b72, 0x0037a317}}},
+ {X: Field{[10]uint32{0x0117dc9d, 0x03bfe6e0, 0x009efcdd, 0x03cfb1b6, 0x009d0ba6, 0x0207db05, 0x00f91582, 0x009cdbd5, 0x032ee8e7, 0x000eee8a}}, Y: Field{[10]uint32{0x0216ab24, 0x02428c36, 0x00d2baf6, 0x021a9a98, 0x036f9a21, 0x02bdb283, 0x0293f947, 0x01f95b97, 0x02747789, 0x003fc21c}}},
+ {X: Field{[10]uint32{0x0317deae, 0x01f59f60, 0x0059527f, 0x003d3eec, 0x00e239a0, 0x03d56ac3, 0x02d92ff0, 0x031ac920, 0x0243037b, 0x0028bfb7}}, Y: Field{[10]uint32{0x01869ed4, 0x00d8e351, 0x012da98c, 0x0058bc61, 0x000f7801, 0x0033808b, 0x008e195d, 0x03ff5fbc, 0x010843be, 0x000a9e45}}},
+ {X: Field{[10]uint32{0x004bc0a3, 0x00730f8c, 0x021852cb, 0x002610c2, 0x01b3d64d, 0x01cdc021, 0x01aa8e67, 0x03ad3128, 0x022ff503, 0x00088713}}, Y: Field{[10]uint32{0x01b7ae41, 0x00477465, 0x02de199e, 0x00a52898, 0x01a70a79, 0x034fe1d9, 0x024fd70a, 0x0139e704, 0x031b0f95, 0x0030f0de}}},
+ {X: Field{[10]uint32{0x00740ed0, 0x03bcf145, 0x00bfca58, 0x02f55679, 0x02f909c8, 0x026e44c1, 0x02f945b4, 0x02e81432, 0x0380f7e4, 0x002830cb}}, Y: Field{[10]uint32{0x02f9562a, 0x0286244d, 0x02c9041b, 0x0318e290, 0x01966aa1, 0x033b5172, 0x01e4cfbd, 0x011c0107, 0x030146ab, 0x0034fae3}}},
+ {X: Field{[10]uint32{0x00da85c6, 0x01e6f906, 0x02aa1dff, 0x02573258, 0x010bf333, 0x01dd0204, 0x01e1ca75, 0x0189fc00, 0x0218b4fe, 0x001d8b9e}}, Y: Field{[10]uint32{0x00f51ec5, 0x024c8d31, 0x02b93dce, 0x02552bd5, 0x025875f7, 0x01156e10, 0x00a743c3, 0x00703d3e, 0x03465046, 0x002837c3}}},
+ {X: Field{[10]uint32{0x013a29f0, 0x018cb12e, 0x03561b8d, 0x00d0451b, 0x0378389f, 0x010cdec7, 0x02cfbe40, 0x032bcf55, 0x0135cd95, 0x000bc0b6}}, Y: Field{[10]uint32{0x00f44569, 0x013a49c6, 0x0287b0e7, 0x010704bf, 0x0209c454, 0x008fc68c, 0x0008872b, 0x0242d3e0, 0x00d823f1, 0x0005cd1c}}},
+ {X: Field{[10]uint32{0x03eab212, 0x0398e4b9, 0x01612314, 0x01b893bc, 0x01c5877d, 0x03f2628e, 0x01adbd59, 0x005b7c71, 0x03d72eb8, 0x00327e1d}}, Y: Field{[10]uint32{0x02067c4c, 0x0216391a, 0x03ad10b0, 0x0149d52c, 0x0188bb00, 0x03f2aa7d, 0x01a52b58, 0x01fbb169, 0x011788cf, 0x000533a6}}},
+ {X: Field{[10]uint32{0x00baa172, 0x03485e68, 0x005df239, 0x008eb9db, 0x02d6dd1c, 0x032fd743, 0x03296df6, 0x0172de9b, 0x036918a0, 0x0033137f}}, Y: Field{[10]uint32{0x014a4dc6, 0x01a51219, 0x00cd5b78, 0x02ead4e4, 0x02e4dda0, 0x018ed295, 0x01b06506, 0x005d4098, 0x00b1b847, 0x0007350e}}},
+ {X: Field{[10]uint32{0x03cbfaa1, 0x03b20a3b, 0x02a5bccc, 0x02299591, 0x01ca015a, 0x01e2b354, 0x0010219a, 0x01c4e8a7, 0x034b3ed2, 0x003eaab1}}, Y: Field{[10]uint32{0x0130d934, 0x03d9869f, 0x00ecbf8b, 0x03244fef, 0x01b2e74c, 0x03f9e552, 0x025c46b7, 0x03b036f5, 0x003bdcc2, 0x002b72b5}}},
+ {X: Field{[10]uint32{0x00fdbf46, 0x02bbf111, 0x02480dd0, 0x03c8f468, 0x028a0025, 0x016f9b03, 0x01444b73, 0x026f4368, 0x02c930fa, 0x0005c4d5}}, Y: Field{[10]uint32{0x009bce3f, 0x00526ee7, 0x0214eb2e, 0x0134bb8a, 0x0062e246, 0x008e6395, 0x004361ed, 0x03ee76ad, 0x02dc991e, 0x001dc3a7}}},
+ {X: Field{[10]uint32{0x01680214, 0x00401ef9, 0x01b43b64, 0x01e81ea0, 0x01c05501, 0x017e7ec6, 0x01491af5, 0x00dd8f4b, 0x016ae047, 0x00024cfd}}, Y: Field{[10]uint32{0x00ea76ad, 0x02a72ae8, 0x02ba9f85, 0x03fe4ec7, 0x01ad1d70, 0x01253950, 0x01ea647f, 0x036d8d20, 0x0047481c, 0x00198167}}},
+ {X: Field{[10]uint32{0x03bb6b34, 0x0307f816, 0x02cf664a, 0x01d87b06, 0x018a397f, 0x02f27272, 0x02446910, 0x02b4df5f, 0x0322b182, 0x00028c03}}, Y: Field{[10]uint32{0x0033593d, 0x00aead15, 0x035007b4, 0x011188a2, 0x01684abe, 0x01c8bc85, 0x00de2694, 0x01d2e518, 0x03fca909, 0x002f5bcb}}},
+ {X: Field{[10]uint32{0x038fe1ea, 0x01b8fb2b, 0x03fd685d, 0x02d54a38, 0x00878b79, 0x03b9358c, 0x03c1d62d, 0x004d57e5, 0x03ed6e90, 0x003f1795}}, Y: Field{[10]uint32{0x035bab01, 0x02a6cacb, 0x01d498c4, 0x0124d172, 0x02bc7c85, 0x02141efb, 0x018b1b56, 0x032ee796, 0x027a6c21, 0x00044884}}},
+ {X: Field{[10]uint32{0x0231ef3d, 0x0114bed4, 0x00bfff3f, 0x015ba8d0, 0x030899e9, 0x02406548, 0x00721c19, 0x02047ef5, 0x00e27a64, 0x00168bd0}}, Y: Field{[10]uint32{0x0093d547, 0x0048b4c8, 0x0086c20a, 0x00e989e6, 0x01d8c4a5, 0x0275c70c, 0x0206d263, 0x0231e5d2, 0x015d1257, 0x001acafe}}},
+ {X: Field{[10]uint32{0x00f2084f, 0x005e6d59, 0x033106f9, 0x01f63747, 0x02fb1575, 0x01f5fbd8, 0x036610d6, 0x026716f9, 0x0333df0b, 0x00165e0c}}, Y: Field{[10]uint32{0x025b7f5a, 0x01d9a51f, 0x00c4fa76, 0x025f0d3d, 0x037d309d, 0x029d60fa, 0x03f4623b, 0x005c3204, 0x0280dd3d, 0x003caa7a}}},
+ {X: Field{[10]uint32{0x03672d95, 0x01b6c7cd, 0x00a08154, 0x035d329f, 0x01a1c8be, 0x01e8a70b, 0x0372bb38, 0x00ff21cf, 0x01246b51, 0x00033d84}}, Y: Field{[10]uint32{0x038c70ee, 0x03deaf0b, 0x007873ef, 0x03d0b81f, 0x021e182c, 0x0187ec3f, 0x011d1a56, 0x00110e7b, 0x0076697f, 0x00348f0f}}},
+ {X: Field{[10]uint32{0x03fe7d52, 0x012c5ccb, 0x017baac1, 0x032581a5, 0x031cb871, 0x0018fe3a, 0x02eb7eb8, 0x00520389, 0x0305133a, 0x003b7453}}, Y: Field{[10]uint32{0x00b1b70a, 0x017e358d, 0x0392a61b, 0x00203291, 0x02ee6033, 0x011709d3, 0x01b3aa84, 0x0354a130, 0x0280d295, 0x0035a0bc}}},
+ {X: Field{[10]uint32{0x001a1713, 0x036571ff, 0x000d175f, 0x00c2977a, 0x0033cb8d, 0x0325649b, 0x026e7902, 0x022bce2c, 0x00e90cdc, 0x003e6c3f}}, Y: Field{[10]uint32{0x02a3e6ac, 0x0148903c, 0x022b5d47, 0x022f5bf3, 0x01df958b, 0x0233d2a2, 0x01083cdc, 0x018f5c60, 0x01f6f3d1, 0x003b1fa3}}},
+ {X: Field{[10]uint32{0x0346a3b7, 0x02ff4905, 0x014e4e46, 0x0057c1c2, 0x02d9ea43, 0x0105f159, 0x03069817, 0x01fd5e24, 0x01995418, 0x002ba419}}, Y: Field{[10]uint32{0x031a129b, 0x01515fc8, 0x01b10677, 0x01cc16f9, 0x01173355, 0x02811c27, 0x01006ff2, 0x00cc4fa7, 0x01adc09d, 0x0008906f}}},
+ {X: Field{[10]uint32{0x03d956e9, 0x02cd4391, 0x03540c54, 0x03cd1041, 0x03f68fe9, 0x01606b8e, 0x02134cde, 0x00bdefd7, 0x00007649, 0x00157c3e}}, Y: Field{[10]uint32{0x033956ff, 0x029232f0, 0x00b982c8, 0x02d71c33, 0x01e258dc, 0x017fa60d, 0x03b4b8a3, 0x0222877e, 0x011de684, 0x0008a822}}},
+ {X: Field{[10]uint32{0x01663bbb, 0x00665306, 0x010c1b87, 0x03131147, 0x006cb7e3, 0x03e1991f, 0x0123bb1d, 0x010388c6, 0x030686fb, 0x0024322a}}, Y: Field{[10]uint32{0x00c80ab4, 0x01ef8fff, 0x02463e3b, 0x00625323, 0x01cb30d7, 0x03105e5e, 0x03bb2c50, 0x03acb71b, 0x00d9570e, 0x00371d23}}},
+ {X: Field{[10]uint32{0x00a4c694, 0x00b89f21, 0x02b604bb, 0x01aeb027, 0x013e476d, 0x01baa127, 0x0268e735, 0x03aee7ec, 0x002d6b21, 0x0032fd1f}}, Y: Field{[10]uint32{0x02bb2873, 0x021bee9e, 0x001cf16e, 0x037f6ac2, 0x01416ed9, 0x01658908, 0x02bf8bbe, 0x022528e6, 0x03e68042, 0x003c0a23}}},
+ {X: Field{[10]uint32{0x0111fe80, 0x027f3a5f, 0x03b1637e, 0x02c91950, 0x00d8f1bf, 0x005235ce, 0x03ff7582, 0x01a2c823, 0x005fc18b, 0x001f0c22}}, Y: Field{[10]uint32{0x00013f2f, 0x01471d8f, 0x0221c7ea, 0x006298f9, 0x0052c067, 0x03221b84, 0x02c6d378, 0x007056c9, 0x00b931a1, 0x000f8b47}}},
+ {X: Field{[10]uint32{0x026d7753, 0x0050cefd, 0x033e64f1, 0x01c8dfcc, 0x03e137c7, 0x03a481f6, 0x02a9da9d, 0x032e8374, 0x01190d1b, 0x002b5852}}, Y: Field{[10]uint32{0x0239753d, 0x027807b4, 0x03d0baad, 0x035c3b14, 0x00190b72, 0x02e9d66d, 0x02046192, 0x02862275, 0x018b3512, 0x003f2ba8}}},
+ {X: Field{[10]uint32{0x025e29a2, 0x01729f13, 0x01715a29, 0x01c68e4e, 0x00a7bc41, 0x03b4cd6d, 0x02b50a81, 0x027055c2, 0x001baf8c, 0x00237dc1}}, Y: Field{[10]uint32{0x01ce02e7, 0x0192e92f, 0x01a1399b, 0x030e1286, 0x00e12eab, 0x01f771b7, 0x0166b24c, 0x01ef77cd, 0x02438267, 0x0003a24b}}},
+ {X: Field{[10]uint32{0x00fdadd6, 0x009e010b, 0x00fbf2a1, 0x01ddf762, 0x02217f4e, 0x0306ed7d, 0x0351891a, 0x01483a69, 0x025761c8, 0x0027d307}}, Y: Field{[10]uint32{0x027d0f50, 0x02e583d3, 0x008609d9, 0x018e7cf5, 0x02ed4b69, 0x00f84b1e, 0x035831eb, 0x03a22430, 0x00adc6ce, 0x003f6884}}},
+ {X: Field{[10]uint32{0x0115acbf, 0x02332ae9, 0x0147c2ee, 0x0061d496, 0x03174de6, 0x00778c24, 0x013bacf9, 0x01c28b02, 0x00dd23ac, 0x00290dbd}}, Y: Field{[10]uint32{0x0219afb9, 0x015fbfdf, 0x020ec9fe, 0x02cc1f51, 0x005879e8, 0x009ef04a, 0x039a4509, 0x016e6a50, 0x01d92a61, 0x00303a76}}},
+ {X: Field{[10]uint32{0x006f1930, 0x037e882e, 0x007d567b, 0x019f1655, 0x0037497c, 0x000e5a57, 0x018627c5, 0x010f645b, 0x01166997, 0x0028e3bb}}, Y: Field{[10]uint32{0x01d9d7fd, 0x03951512, 0x00c18bb0, 0x02c52105, 0x013be89b, 0x03c9b247, 0x035b5fe3, 0x00ed6b26, 0x02d6effc, 0x001b8f8f}}},
+ {X: Field{[10]uint32{0x02fbf3d6, 0x0187aeb8, 0x02586833, 0x039623a4, 0x000b6f1d, 0x01ac3c93, 0x03659e33, 0x010e87eb, 0x00d20d40, 0x0017d164}}, Y: Field{[10]uint32{0x015197db, 0x0242f801, 0x00466158, 0x02dc0090, 0x02ccc833, 0x01939ffd, 0x001af117, 0x03bb00fb, 0x0273042c, 0x00094302}}},
+ {X: Field{[10]uint32{0x00cf56c0, 0x0147d10d, 0x03c551be, 0x031dcf3a, 0x03d52bea, 0x03dca0a8, 0x02d16ff8, 0x02e401a3, 0x020dc6eb, 0x001d5961}}, Y: Field{[10]uint32{0x02e24c26, 0x01187c2e, 0x01346c32, 0x01ff8078, 0x039b8468, 0x0275fcfa, 0x028ad7de, 0x03516150, 0x00be526e, 0x0012d5bb}}},
+ {X: Field{[10]uint32{0x01a9320c, 0x01ed43e5, 0x035dec53, 0x010afa02, 0x02772927, 0x00800e96, 0x03ad50f0, 0x03bc072a, 0x03ce3a56, 0x000f9f1f}}, Y: Field{[10]uint32{0x03dbfaf1, 0x0349c8a4, 0x03914a32, 0x00b31256, 0x01d5dc34, 0x0267ea76, 0x03789045, 0x01c447cd, 0x00b7926e, 0x00263365}}},
+ {X: Field{[10]uint32{0x03cda208, 0x001c9d2d, 0x035522eb, 0x003dabd5, 0x032ac91a, 0x031318aa, 0x031aaf5e, 0x033e12af, 0x005714ce, 0x0004c7ad}}, Y: Field{[10]uint32{0x0320839e, 0x03f625f8, 0x0303127b, 0x004d8344, 0x029b017a, 0x02bb156a, 0x0061393f, 0x0098111b, 0x014ff051, 0x002a4ebb}}},
+ {X: Field{[10]uint32{0x02a11ec8, 0x037493a8, 0x026f1637, 0x0380b6cf, 0x02a98e68, 0x0312d7d0, 0x008bff69, 0x018f5c0e, 0x0201e469, 0x000dc6f1}}, Y: Field{[10]uint32{0x01f84622, 0x02765292, 0x03dd37b3, 0x03c4ea9a, 0x0121bbc7, 0x006e249a, 0x0385238c, 0x028906a5, 0x02f1932f, 0x0038befb}}},
+ {X: Field{[10]uint32{0x02e47d6d, 0x03d41172, 0x002371bc, 0x00d3910c, 0x01b4d459, 0x00b11461, 0x0136bc20, 0x01cfa280, 0x030492ca, 0x0011dc36}}, Y: Field{[10]uint32{0x0141ec22, 0x03bbcd8b, 0x0390af1a, 0x01ed2c75, 0x0399a92f, 0x00877d2f, 0x037e080d, 0x03641aad, 0x008c25b1, 0x00386bdd}}},
+ {X: Field{[10]uint32{0x0194bfff, 0x00a04b25, 0x02fe0da8, 0x00d081e1, 0x01e8e2ae, 0x01f38ebd, 0x01dbae16, 0x036d5dd6, 0x02435af5, 0x002cc6a1}}, Y: Field{[10]uint32{0x009aa4a2, 0x010ef8f0, 0x020cf3c7, 0x0341547f, 0x00f5aaab, 0x0216c1a9, 0x02a85a25, 0x03266aa5, 0x025e860d, 0x000de4d0}}},
+ {X: Field{[10]uint32{0x013631f4, 0x00b9996f, 0x019bf09b, 0x02f5f472, 0x00a94121, 0x018670dd, 0x01fe6dd1, 0x009407f7, 0x0052084a, 0x003817bb}}, Y: Field{[10]uint32{0x03b8e622, 0x031589bf, 0x01ed4f6c, 0x01ddb49a, 0x014d883d, 0x035d0909, 0x0224ea4b, 0x03e01a66, 0x03172122, 0x00300457}}},
+ {X: Field{[10]uint32{0x0173d5c8, 0x0228c94a, 0x0335ce4d, 0x03beffce, 0x03e57810, 0x025f4fd5, 0x0384305d, 0x001f4d16, 0x00840ee4, 0x00395777}}, Y: Field{[10]uint32{0x027ee677, 0x03a24d90, 0x011a1026, 0x01abe833, 0x00abb87a, 0x023aec4f, 0x003e4257, 0x018505f9, 0x03b5b0fa, 0x001c7dde}}},
+ {X: Field{[10]uint32{0x02cd788f, 0x03748fb7, 0x01f0ed46, 0x01dbc9aa, 0x021aabbe, 0x014074cf, 0x00bf3ea5, 0x02a6a8a1, 0x02b1a5c8, 0x003b5eda}}, Y: Field{[10]uint32{0x010db63e, 0x00cf8047, 0x030d3772, 0x0363145d, 0x03824027, 0x037f60be, 0x0054a4bc, 0x02988061, 0x035419d1, 0x0008a02e}}},
+ {X: Field{[10]uint32{0x0090e79a, 0x0019c520, 0x02001f96, 0x0078893c, 0x01ce5cb7, 0x03353b9a, 0x03a3329a, 0x0362bb84, 0x01fc3da4, 0x003538cc}}, Y: Field{[10]uint32{0x015e10d6, 0x02385619, 0x00c521ae, 0x01441b42, 0x0277821e, 0x01aa2044, 0x00a6b42d, 0x0334c27d, 0x01aa2f63, 0x00225450}}},
+ {X: Field{[10]uint32{0x016d4417, 0x022d21e2, 0x03d54d64, 0x02384834, 0x03265471, 0x036054b1, 0x002545ab, 0x007ff99a, 0x020ea8ec, 0x0013c2b6}}, Y: Field{[10]uint32{0x035aa591, 0x03b1fd64, 0x00cd4dc5, 0x01515b22, 0x0320aaff, 0x02a7eebd, 0x035acf55, 0x02ad191f, 0x01ac6026, 0x002980ee}}},
+ {X: Field{[10]uint32{0x00fdca84, 0x03ab8f80, 0x031b7543, 0x0015041a, 0x00a884cc, 0x0037dd4a, 0x0086a9d2, 0x03bb893c, 0x0141b08e, 0x0028b44d}}, Y: Field{[10]uint32{0x00803a45, 0x000edfd7, 0x002d1745, 0x00d61780, 0x024bb67c, 0x03f58172, 0x03a52497, 0x01ae4549, 0x0166294d, 0x0016b02c}}},
+ {X: Field{[10]uint32{0x01b6c8a4, 0x03a048ed, 0x0008f64f, 0x00880b38, 0x03cbfc47, 0x03ea517f, 0x00887fda, 0x001164ae, 0x0120014a, 0x00013075}}, Y: Field{[10]uint32{0x00ed738d, 0x00f8cd14, 0x026083bb, 0x03d0e542, 0x00ebcebf, 0x00d23bf5, 0x0106597f, 0x0246395f, 0x028017b7, 0x00090f10}}},
+ {X: Field{[10]uint32{0x03c54390, 0x025c2a4a, 0x02c551a5, 0x01f7fcca, 0x00fc2f5b, 0x008c172c, 0x035b8e6b, 0x03a6d330, 0x01a67d13, 0x00017e79}}, Y: Field{[10]uint32{0x0395ff6f, 0x02550edc, 0x0276b30d, 0x02dc9bcc, 0x0085eb0c, 0x022fb7c0, 0x005833ce, 0x017df6f1, 0x02379696, 0x001d2021}}},
+ {X: Field{[10]uint32{0x00954575, 0x00d2f282, 0x01286985, 0x025cd293, 0x004447c2, 0x0038a6ad, 0x02d28a88, 0x006c5e02, 0x03809538, 0x0035db1b}}, Y: Field{[10]uint32{0x0161b27b, 0x021cc029, 0x0049859c, 0x03c49def, 0x02aa8273, 0x00390a77, 0x02051789, 0x03806984, 0x03f86b30, 0x00112db0}}},
+ {X: Field{[10]uint32{0x01df3344, 0x022816f6, 0x00658e7a, 0x0074036b, 0x006ad19f, 0x01619286, 0x03a9eaeb, 0x01d6bdc0, 0x029ff787, 0x001d5ddc}}, Y: Field{[10]uint32{0x030afec9, 0x030fe64b, 0x0134532e, 0x02c4b9c1, 0x033fa7c5, 0x0239fb3c, 0x012f8229, 0x02a94e4b, 0x0116ccea, 0x001ad466}}},
+ {X: Field{[10]uint32{0x02dc17db, 0x0245b163, 0x03a67fca, 0x022c0dae, 0x0278700c, 0x01ab6a64, 0x03194258, 0x0012eb42, 0x032b457f, 0x00140de3}}, Y: Field{[10]uint32{0x02273fc1, 0x028f0bdd, 0x00ad05fe, 0x0193e0bf, 0x03269573, 0x0314ce33, 0x01bf40ba, 0x0335246b, 0x011c26bd, 0x0032f451}}},
+ {X: Field{[10]uint32{0x009ba86c, 0x00e2fa33, 0x02b50b91, 0x01138f58, 0x027606eb, 0x0301e3fc, 0x0384ba0e, 0x01458098, 0x00686436, 0x000dd237}}, Y: Field{[10]uint32{0x0211d709, 0x020f2659, 0x01271965, 0x02074d43, 0x016e7bfb, 0x038060a3, 0x01005a04, 0x02ba7377, 0x0014f624, 0x001b0139}}},
+ {X: Field{[10]uint32{0x03eea53b, 0x03174715, 0x014047f9, 0x010b417f, 0x013402f3, 0x027ab1ca, 0x01eaea44, 0x035587ef, 0x01be8ea8, 0x002c8e96}}, Y: Field{[10]uint32{0x006dfb9b, 0x03c3a110, 0x019c42fe, 0x03fdc0bb, 0x0295d40e, 0x00fd7e86, 0x03c359c8, 0x016e0b38, 0x0068f2d3, 0x002fa91f}}},
+ {X: Field{[10]uint32{0x02a64770, 0x035c7045, 0x00b49ebf, 0x001a4973, 0x039538fc, 0x01c074ae, 0x005f4435, 0x0296f817, 0x01e87b42, 0x00392d14}}, Y: Field{[10]uint32{0x03156da4, 0x019eddcb, 0x001e9e14, 0x029a2a42, 0x014cb261, 0x02de6e61, 0x02fa86b2, 0x001d2523, 0x02699a79, 0x000abe11}}},
+ {X: Field{[10]uint32{0x02dff165, 0x03dd5225, 0x01a1242f, 0x005593cf, 0x01de74a2, 0x0194777e, 0x02e671e8, 0x02c218d1, 0x02ec65b8, 0x002192b1}}, Y: Field{[10]uint32{0x031a8730, 0x03ad8009, 0x03188d68, 0x000b7ea4, 0x01b2cbf9, 0x0234afaf, 0x00a5103c, 0x02155647, 0x00a77ab4, 0x003cd5ce}}},
+ {X: Field{[10]uint32{0x002ecab0, 0x009c95fc, 0x02ac4ecb, 0x035e6815, 0x00fd36c5, 0x01990e19, 0x00090225, 0x018f66de, 0x023da6a8, 0x002df412}}, Y: Field{[10]uint32{0x0383b0c1, 0x01fbdc1b, 0x031a15ec, 0x02f9d4c3, 0x001519ab, 0x039a81f0, 0x01e4e3bf, 0x03708f96, 0x034c6ba5, 0x00331018}}},
+ {X: Field{[10]uint32{0x014c1a0e, 0x023f289c, 0x0044c7ca, 0x00c43af2, 0x03bd6e25, 0x02a0ddf3, 0x020de0c4, 0x03776080, 0x02f9b51e, 0x00377f06}}, Y: Field{[10]uint32{0x03fe3951, 0x0259838f, 0x01ad957b, 0x03d368f8, 0x01c30f23, 0x00976aae, 0x02d9f54a, 0x0313a2c8, 0x008c1742, 0x00033ddf}}},
+ {X: Field{[10]uint32{0x011fcbe3, 0x016d1f35, 0x03c30ea7, 0x023e21a3, 0x01e00c82, 0x0053611e, 0x03de26a6, 0x02478e84, 0x0269d5bb, 0x001e3f3f}}, Y: Field{[10]uint32{0x03f2d47d, 0x029b9c91, 0x0306066d, 0x01210d03, 0x0298021b, 0x030a050e, 0x00b231aa, 0x014eeac3, 0x01636b70, 0x0027b19e}}},
+ {X: Field{[10]uint32{0x0115863f, 0x00137684, 0x028fcd42, 0x0211e0ce, 0x03138c98, 0x0279dbb2, 0x022b4f81, 0x0075c608, 0x00de1696, 0x00373646}}, Y: Field{[10]uint32{0x0323bb04, 0x014aaeb2, 0x01ed2f5e, 0x003604e9, 0x023ff7fb, 0x004f0a4c, 0x012318dd, 0x00233f28, 0x00bac8d8, 0x002af0f6}}},
+ {X: Field{[10]uint32{0x02c3177e, 0x00201b31, 0x012b294a, 0x028a5b33, 0x02e6f64f, 0x00def084, 0x0294eef5, 0x02041a4c, 0x02f05de0, 0x000e738b}}, Y: Field{[10]uint32{0x00730556, 0x034a76de, 0x0349239f, 0x0369e250, 0x020bbb5d, 0x03ce899a, 0x020ca926, 0x025e8e5e, 0x00cb0b76, 0x00097abd}}},
+ {X: Field{[10]uint32{0x03157a04, 0x01a94f40, 0x02b5abae, 0x013f4e91, 0x02146451, 0x025eb12e, 0x010e937e, 0x03a27b7d, 0x01b643d4, 0x00125793}}, Y: Field{[10]uint32{0x02ec1701, 0x02c715f9, 0x026d46e6, 0x006e8833, 0x00f84bb8, 0x023105ad, 0x024251cf, 0x0035a7af, 0x0218b296, 0x001f4c9f}}},
+ {X: Field{[10]uint32{0x037c33c1, 0x03d6e598, 0x03dbefca, 0x025fd6d9, 0x03a6cb6e, 0x027e79bd, 0x036dde52, 0x01f03070, 0x028cb635, 0x0024705f}}, Y: Field{[10]uint32{0x014c39ba, 0x017b06e9, 0x00e85c96, 0x0383da17, 0x03f07b76, 0x003d61ab, 0x01e26922, 0x022b0bbf, 0x0097fedb, 0x000bf948}}},
+ {X: Field{[10]uint32{0x01ecfdbc, 0x01c48875, 0x018d4c03, 0x026f5ab8, 0x001c2874, 0x03172564, 0x011f11ec, 0x03b5118a, 0x00803dff, 0x0038f13d}}, Y: Field{[10]uint32{0x03dc62d8, 0x00afa4b2, 0x0240c65b, 0x009d514f, 0x004e7fb8, 0x033be2ca, 0x00ad71da, 0x009f3a5d, 0x0102571e, 0x00168b9c}}},
+ {X: Field{[10]uint32{0x01c25073, 0x01763b5d, 0x0333acc1, 0x03a95a03, 0x0059ae7b, 0x03e772ee, 0x0014377a, 0x0079ed22, 0x03f5a0e8, 0x002cfb85}}, Y: Field{[10]uint32{0x00bfe86d, 0x024b9f5b, 0x01ecb6d0, 0x035415ce, 0x03b46332, 0x00e7b788, 0x0035afe1, 0x00a09698, 0x000c9a6d, 0x0004d68f}}},
+ {X: Field{[10]uint32{0x02e76b75, 0x019819ba, 0x01732298, 0x0365796d, 0x017ca6e8, 0x019248cd, 0x02628e1f, 0x006fb4d0, 0x00442bc9, 0x0039332a}}, Y: Field{[10]uint32{0x016f76b9, 0x02364394, 0x01cececc, 0x03880c76, 0x02409f74, 0x00c66b1c, 0x00b42b0f, 0x019c3fdc, 0x015539b5, 0x00375569}}},
+ {X: Field{[10]uint32{0x02223b2c, 0x02fefdf6, 0x02359b5e, 0x03aa58ad, 0x02e517e4, 0x013ab9eb, 0x00c02a46, 0x01822666, 0x03c181c9, 0x002ace73}}, Y: Field{[10]uint32{0x037d2fc4, 0x0393aa41, 0x02096a22, 0x01403e65, 0x0172ba3b, 0x00a06862, 0x01cfec18, 0x02ef8b9b, 0x0057b4dc, 0x0037bdb7}}},
+ {X: Field{[10]uint32{0x03ab402a, 0x01172137, 0x02e01f8e, 0x034652ce, 0x02677572, 0x0193c206, 0x00cad409, 0x0011a7f9, 0x02639e6e, 0x0008a8c9}}, Y: Field{[10]uint32{0x00d2b437, 0x0157e610, 0x02f261b8, 0x0141750a, 0x00db44cf, 0x013263f3, 0x00f61484, 0x003bc16b, 0x0195bd4e, 0x00072727}}},
+ {X: Field{[10]uint32{0x01f9cae9, 0x03f30908, 0x029037c2, 0x0285de42, 0x02db269d, 0x03ef137a, 0x03c5ead4, 0x012fc0c1, 0x00cceff9, 0x000af1e2}}, Y: Field{[10]uint32{0x00bc4b41, 0x000f9389, 0x01384aa7, 0x01227583, 0x00ccecb2, 0x0231e30f, 0x0081c43a, 0x01548110, 0x0061648c, 0x0005cbcd}}},
+ {X: Field{[10]uint32{0x02052729, 0x00a8c000, 0x00fe4c62, 0x00d827ef, 0x003872c6, 0x02ef9a7a, 0x0275bb88, 0x001804d6, 0x03d2a672, 0x002e4c36}}, Y: Field{[10]uint32{0x0206f366, 0x0103fd6b, 0x01ebd839, 0x00d8ccd3, 0x01ff3f68, 0x01d0e2ce, 0x030e7f9a, 0x03a2e0a0, 0x0303a872, 0x0002660f}}},
+ {X: Field{[10]uint32{0x0114e3d3, 0x02cb8e5d, 0x03466f33, 0x00fa1ca8, 0x0329bcd0, 0x029bc61b, 0x02db448d, 0x03a901c0, 0x038a2aa9, 0x002d0d5c}}, Y: Field{[10]uint32{0x0098636b, 0x01511ce4, 0x0074e92c, 0x02383d87, 0x011678cb, 0x0330d241, 0x0217e55b, 0x019c7e15, 0x02462d3c, 0x00160a34}}},
+ {X: Field{[10]uint32{0x0072bd25, 0x037fee4c, 0x0223b532, 0x01fe76d8, 0x02ee1fe6, 0x01060375, 0x012df27d, 0x026ebcb1, 0x02813acc, 0x003247cb}}, Y: Field{[10]uint32{0x01b73c0c, 0x0057c1e1, 0x0345569c, 0x003ef493, 0x02b02735, 0x00ddf878, 0x02fa0c2b, 0x00bc4c4e, 0x03d696c1, 0x00072715}}},
+ {X: Field{[10]uint32{0x008d36c8, 0x0257c017, 0x0131d2b9, 0x001be31f, 0x030bad0d, 0x005b6400, 0x028068f4, 0x02ea4e3c, 0x02c28099, 0x002ec251}}, Y: Field{[10]uint32{0x0176da4a, 0x00e41afb, 0x00164867, 0x007dde0b, 0x00156042, 0x03a5e3ca, 0x03e1a621, 0x017fa5e3, 0x00d93b57, 0x00238e1e}}},
+ {X: Field{[10]uint32{0x03085c8d, 0x0281a923, 0x03398c31, 0x03df2d13, 0x035298db, 0x01c1fcd9, 0x0106521a, 0x00cdd335, 0x02a12e82, 0x0012178e}}, Y: Field{[10]uint32{0x02ca9a61, 0x018005e1, 0x03878a4b, 0x03837ed3, 0x02af0153, 0x000bf098, 0x0339d4c3, 0x02cac568, 0x02f57079, 0x00284b22}}},
+ {X: Field{[10]uint32{0x013e844d, 0x027ee69c, 0x03db3e8a, 0x00a9e219, 0x020f21d0, 0x022a5baa, 0x00da03fe, 0x00895a50, 0x0048d328, 0x002143e5}}, Y: Field{[10]uint32{0x03fccb7b, 0x02c9108e, 0x00d8259a, 0x00d8296a, 0x0103a678, 0x0162a083, 0x034df3af, 0x02e8b029, 0x00fe3201, 0x00115479}}},
+ {X: Field{[10]uint32{0x03e39884, 0x03214ec2, 0x01c43682, 0x030152db, 0x01449cd4, 0x03abd476, 0x00e51b18, 0x007f927e, 0x02b3f66c, 0x0029d205}}, Y: Field{[10]uint32{0x0372f7fc, 0x033bdfac, 0x0004f15e, 0x039203b2, 0x01396626, 0x01330416, 0x02f0cfdc, 0x01fa8516, 0x03b247ed, 0x00139f57}}},
+ {X: Field{[10]uint32{0x0320136d, 0x02b5adde, 0x02f7785e, 0x00b5ae62, 0x02e1eb70, 0x00d04805, 0x01abcc17, 0x02885c1e, 0x016fc71d, 0x000abd71}}, Y: Field{[10]uint32{0x02b706bd, 0x01455061, 0x029321b6, 0x03642d4c, 0x02783911, 0x00c69ae3, 0x0049e95a, 0x00988ecb, 0x00a2c6a8, 0x001fcc44}}},
+ {X: Field{[10]uint32{0x039b5834, 0x013fb90c, 0x00903968, 0x00525c98, 0x031a3137, 0x02b983b6, 0x0163135f, 0x037c7a43, 0x0091a61a, 0x0024a47b}}, Y: Field{[10]uint32{0x01d03884, 0x007745ef, 0x01e09bac, 0x02f2b78b, 0x03feef42, 0x020cb7a4, 0x009649f1, 0x036ecff0, 0x006be8b0, 0x00354c14}}},
+ {X: Field{[10]uint32{0x00605b54, 0x0110a4b3, 0x028e1144, 0x034608f3, 0x03a8581f, 0x03863fda, 0x029cb474, 0x01e05813, 0x03c3659a, 0x000582b4}}, Y: Field{[10]uint32{0x00d141fe, 0x007d09a9, 0x03b58b6e, 0x03060636, 0x010a59f2, 0x007ae476, 0x01f939eb, 0x035c6698, 0x024d5f28, 0x00058611}}},
+ {X: Field{[10]uint32{0x00ba9d58, 0x01c64d18, 0x02572b40, 0x03e18d62, 0x01ea4280, 0x01cf6b63, 0x005a5d76, 0x024830b6, 0x01bb8640, 0x000d4966}}, Y: Field{[10]uint32{0x03538d0c, 0x01f470a2, 0x0164a50f, 0x03618e35, 0x00aa2ac3, 0x00f2572b, 0x017707ad, 0x013cac8b, 0x011be806, 0x0029e296}}},
+ {X: Field{[10]uint32{0x036ba527, 0x00b13ede, 0x03f334d1, 0x038488da, 0x01adb37c, 0x03a78575, 0x037a7281, 0x018d364b, 0x03bd9a8c, 0x003b083b}}, Y: Field{[10]uint32{0x0151b70d, 0x015ecec3, 0x021e2a9a, 0x024bf550, 0x02e8c547, 0x01ebe762, 0x019315e2, 0x00c454e4, 0x01bc2a5a, 0x002b36ca}}},
+ {X: Field{[10]uint32{0x02dbebc3, 0x02b51838, 0x0064c5cf, 0x0214618f, 0x01bbd387, 0x0165e07a, 0x02e847dc, 0x031bb157, 0x00da8bda, 0x00103479}}, Y: Field{[10]uint32{0x016e9ab0, 0x0099568c, 0x013acd3a, 0x03fc9fed, 0x004e3755, 0x02e8fb06, 0x03c7d5bd, 0x00b9a299, 0x001cb7c9, 0x00318c16}}},
+ {X: Field{[10]uint32{0x027d08c7, 0x02e91103, 0x035127db, 0x00b7c3fe, 0x0081674c, 0x022d9b7d, 0x01ac1c39, 0x037cb8ac, 0x03402faa, 0x003ef849}}, Y: Field{[10]uint32{0x03f412d6, 0x00bdee2d, 0x0187c52f, 0x00d39ba1, 0x00f3dfee, 0x011245a6, 0x00871821, 0x005340eb, 0x00d7f979, 0x003403b7}}},
+ {X: Field{[10]uint32{0x0191eb03, 0x0364c370, 0x0008bb0c, 0x0358990c, 0x034070d9, 0x03ec7848, 0x010fbd80, 0x0247ee21, 0x01a747d1, 0x0035e06d}}, Y: Field{[10]uint32{0x006afa11, 0x01ac63cd, 0x03792d90, 0x00c09236, 0x019762ef, 0x0066ca44, 0x01f29245, 0x02ad57e5, 0x01a25c74, 0x00292aa5}}},
+ {X: Field{[10]uint32{0x00cf02cd, 0x0111bc27, 0x0052944a, 0x00e7b948, 0x0122790c, 0x00e56d7a, 0x01045d00, 0x02f1f045, 0x0042d926, 0x00191cbf}}, Y: Field{[10]uint32{0x0205a99d, 0x02de2511, 0x0106863d, 0x02d438ab, 0x03045d1a, 0x00cf210a, 0x0264e376, 0x024f7b88, 0x0014a925, 0x00001448}}},
+ {X: Field{[10]uint32{0x015e0c21, 0x0057b58e, 0x03fd2c57, 0x00993203, 0x005fa6cf, 0x01181e8b, 0x0117a935, 0x0007a1a9, 0x00c2e096, 0x003bb860}}, Y: Field{[10]uint32{0x0083e7ea, 0x01259a5d, 0x01711e06, 0x03c6b995, 0x0349490a, 0x03de1728, 0x03daff70, 0x01bf16d3, 0x0398221d, 0x003232e9}}},
+ {X: Field{[10]uint32{0x01ada2d6, 0x012dd411, 0x00ab4fad, 0x03536d40, 0x039103be, 0x015d8c1d, 0x03ec071c, 0x02b50456, 0x022da172, 0x002402c9}}, Y: Field{[10]uint32{0x01e2cbaf, 0x0108f814, 0x015aa371, 0x0361459d, 0x0082c4c1, 0x00fe8d35, 0x0018e7fb, 0x03fa44fd, 0x03f2bbad, 0x000c5915}}},
+ {X: Field{[10]uint32{0x03a34c9e, 0x02006884, 0x00e20420, 0x02c799af, 0x015d5e03, 0x027bca74, 0x02d3371b, 0x0141c1dc, 0x03874e1e, 0x001fa4f6}}, Y: Field{[10]uint32{0x038465a8, 0x0308ce78, 0x0356abc2, 0x011ed6fe, 0x0063f3ec, 0x00033704, 0x03aa0fee, 0x00ca9bd7, 0x02247500, 0x00337aa9}}},
+ {X: Field{[10]uint32{0x01a379ca, 0x02320be2, 0x031f5da9, 0x01e80fb6, 0x02d17287, 0x012aff8e, 0x02761b84, 0x02957799, 0x002465f3, 0x001187ed}}, Y: Field{[10]uint32{0x00e815d9, 0x014a16c6, 0x0332b7f1, 0x0299ae39, 0x011f584a, 0x00179070, 0x0101dadc, 0x009c63d5, 0x01fdba03, 0x001da098}}},
+ {X: Field{[10]uint32{0x0019e09f, 0x0379de25, 0x0059e997, 0x02997cd4, 0x036de28a, 0x006e93e4, 0x010f0cc9, 0x00683f97, 0x001af0f6, 0x000767d6}}, Y: Field{[10]uint32{0x011bf6cd, 0x00da6d22, 0x011f8adf, 0x00758889, 0x003f02db, 0x0259dbd5, 0x00302e18, 0x03715858, 0x018c7d59, 0x001ffa72}}},
+ {X: Field{[10]uint32{0x027542c6, 0x010e085d, 0x0362be23, 0x03fcf337, 0x0166386d, 0x013bf8de, 0x00f7a70e, 0x00aa9c90, 0x0352904b, 0x002335c2}}, Y: Field{[10]uint32{0x01ddc2f2, 0x01afb26d, 0x001f1ff8, 0x00f62195, 0x020e9e29, 0x01caf1ae, 0x0308bb2f, 0x002c7c03, 0x003f4c7e, 0x002cf0f4}}},
+ {X: Field{[10]uint32{0x034a5261, 0x02a98a3a, 0x02a2e819, 0x008d3910, 0x0199097b, 0x00036bbf, 0x025b8b38, 0x02196e66, 0x03ea9c08, 0x00282d51}}, Y: Field{[10]uint32{0x02ca2952, 0x0377627c, 0x03a2280c, 0x0063cb48, 0x00fd9d1e, 0x0289fad8, 0x003cb4e1, 0x00403700, 0x0115e585, 0x00181fbc}}},
+ {X: Field{[10]uint32{0x0344d289, 0x0358d810, 0x0177578d, 0x03d57f6f, 0x00192406, 0x01fa06ad, 0x03a649c2, 0x00e38da0, 0x00f65470, 0x003aa298}}, Y: Field{[10]uint32{0x01822fb0, 0x003dd19e, 0x00691ac1, 0x033d4183, 0x02881b5f, 0x02f08bc5, 0x00b9f3e3, 0x0357aa3f, 0x02c0b05a, 0x00262bf2}}},
+ {X: Field{[10]uint32{0x00b0a711, 0x02335285, 0x0075501a, 0x001a44d4, 0x0148bce5, 0x016ede0a, 0x01488fe5, 0x03e7bddf, 0x029d0882, 0x00398146}}, Y: Field{[10]uint32{0x02920fce, 0x02853d8b, 0x03498ffa, 0x0209364c, 0x00c1ec0c, 0x0182bdd7, 0x01257b8a, 0x02d5572e, 0x02be9d9e, 0x00072736}}},
+ {X: Field{[10]uint32{0x00765674, 0x01497a62, 0x02a4b39a, 0x03153e3a, 0x03165338, 0x001f8396, 0x00e5efbc, 0x034cdc1b, 0x02c9c50f, 0x0018021d}}, Y: Field{[10]uint32{0x03ea4189, 0x01e5b936, 0x0346a213, 0x00b981a9, 0x03b04420, 0x0282c856, 0x01f5da0a, 0x0087ce0f, 0x031ef52b, 0x00100699}}},
+ {X: Field{[10]uint32{0x02b2ff40, 0x03c7a5fd, 0x00185274, 0x01596df8, 0x003c0eca, 0x01a78105, 0x03efe121, 0x03f7426c, 0x039c5ef6, 0x000ec116}}, Y: Field{[10]uint32{0x02780a28, 0x039a04d8, 0x02dfad20, 0x01ef2c4d, 0x03a135a4, 0x035a4530, 0x00085d05, 0x001f10aa, 0x03acb211, 0x002a95dc}}},
+ {X: Field{[10]uint32{0x01f0f1b6, 0x03b9fd2c, 0x022dc643, 0x0077954a, 0x01f9504b, 0x03b673bd, 0x027807fd, 0x01578135, 0x0132ee0b, 0x00373a63}}, Y: Field{[10]uint32{0x033fb086, 0x01687787, 0x031b8d43, 0x038a0077, 0x03aba058, 0x02b3d509, 0x03746d67, 0x00925f2e, 0x027c9e99, 0x00340eb0}}},
+ {X: Field{[10]uint32{0x0378fd76, 0x03a61338, 0x0144958b, 0x01fc8be8, 0x03dd5aea, 0x00da19e1, 0x011c07a9, 0x0183fa2a, 0x01486e8a, 0x000d96c4}}, Y: Field{[10]uint32{0x0301c9c0, 0x00add87b, 0x005c3f85, 0x019d53d0, 0x01b36e27, 0x036ee3b0, 0x01ecbbcb, 0x01754131, 0x0217319e, 0x000b1fd4}}},
+ {X: Field{[10]uint32{0x036b5806, 0x01cecbaa, 0x006cbb9c, 0x03a15f26, 0x023c3720, 0x013b78d5, 0x00dc3cad, 0x0197b7ba, 0x035a4dc4, 0x000b8de4}}, Y: Field{[10]uint32{0x03ce346b, 0x00e51752, 0x01522c0e, 0x0240431b, 0x02839cb6, 0x01fe0692, 0x02dc7f9d, 0x03d1b600, 0x03f15278, 0x002f421c}}},
+ {X: Field{[10]uint32{0x01647568, 0x02eba53c, 0x030bb00f, 0x0215b91e, 0x0081cd85, 0x0035c656, 0x00ddf927, 0x016b5ed8, 0x00e19374, 0x000126da}}, Y: Field{[10]uint32{0x02819dc1, 0x01a4f01c, 0x03795755, 0x00c43d29, 0x021dc82d, 0x03d2e16f, 0x03cb2d05, 0x010fbd4e, 0x03f0013e, 0x00328752}}},
+ {X: Field{[10]uint32{0x02744564, 0x00c3f33e, 0x0220cb81, 0x02e8f981, 0x016c8cc6, 0x027b781d, 0x02b6f66e, 0x016a20b0, 0x016cc79c, 0x001b7d4f}}, Y: Field{[10]uint32{0x02431344, 0x02013449, 0x036e1729, 0x01f2bed5, 0x014597f7, 0x00698525, 0x032f2914, 0x01f16491, 0x02ed3b2b, 0x001230f5}}},
+ {X: Field{[10]uint32{0x034865a1, 0x0385c36f, 0x02b8bd28, 0x0307238c, 0x022f9467, 0x019c5168, 0x01636727, 0x038ee498, 0x03069104, 0x003667e3}}, Y: Field{[10]uint32{0x02543d7f, 0x02ff9414, 0x01479fd1, 0x00cf9044, 0x00c2b433, 0x0301b2c6, 0x0267c4e2, 0x01764d93, 0x02b055aa, 0x00333f11}}},
+ {X: Field{[10]uint32{0x019930d1, 0x03ab64f9, 0x0342a538, 0x03f71a30, 0x01e23af7, 0x01562816, 0x00075728, 0x020ce2ea, 0x0017ebbf, 0x001ddc9f}}, Y: Field{[10]uint32{0x00c629ea, 0x0380ce10, 0x0308366d, 0x02504cf9, 0x00ede751, 0x017d4329, 0x023bc657, 0x0060083f, 0x007e2cde, 0x00280df7}}},
+ {X: Field{[10]uint32{0x03e22604, 0x00328bda, 0x0266377e, 0x022667b0, 0x0036ae37, 0x0344ce6b, 0x00c84cfa, 0x013fdf05, 0x02d8563a, 0x0007503a}}, Y: Field{[10]uint32{0x00d1face, 0x007b0488, 0x01713a71, 0x00b6a5a3, 0x033a6b0c, 0x03137ee1, 0x025a5ac1, 0x0245ffb9, 0x0043b093, 0x002125ed}}},
+ {X: Field{[10]uint32{0x006bfae0, 0x0241c410, 0x010ef405, 0x02645e8f, 0x03e32269, 0x0061034d, 0x0227c205, 0x02accdc6, 0x0341adf5, 0x0000a8e7}}, Y: Field{[10]uint32{0x005c27c5, 0x03cab1a4, 0x008ed155, 0x027b1c12, 0x008dd1a4, 0x03a11306, 0x0236b048, 0x027ee08e, 0x03a858e9, 0x000336bd}}},
+ {X: Field{[10]uint32{0x01c684e0, 0x00dc2206, 0x0215e281, 0x024adb38, 0x0166f5ea, 0x0365d288, 0x031cc92f, 0x02331225, 0x00b1d8b0, 0x0002aab9}}, Y: Field{[10]uint32{0x03cd8f0c, 0x035e3a78, 0x01bdea34, 0x0344e909, 0x03c63739, 0x0145478c, 0x03d5cd50, 0x00d22a13, 0x0195c10a, 0x000248de}}},
+ {X: Field{[10]uint32{0x02477d40, 0x03f6bf39, 0x03440965, 0x01520c7b, 0x0211315a, 0x02b0b278, 0x00939d29, 0x014ed8cd, 0x0042591a, 0x00296c30}}, Y: Field{[10]uint32{0x00a62ca6, 0x01e97301, 0x016d7e11, 0x03234a90, 0x00bc9904, 0x00f1f758, 0x022b206b, 0x000922cd, 0x00fd5d1f, 0x002b0f9f}}},
+ {X: Field{[10]uint32{0x03c63f0b, 0x00b907c9, 0x035a1278, 0x02d40faf, 0x003c16e3, 0x03c252f9, 0x03643b47, 0x01aa5aa3, 0x0164e616, 0x000306dc}}, Y: Field{[10]uint32{0x01663a98, 0x003c079d, 0x01207fcc, 0x02fdcfb4, 0x01e34810, 0x0378eb1e, 0x010ba811, 0x03c7fd6d, 0x021a4ffa, 0x00211a45}}},
+ {X: Field{[10]uint32{0x01ca63bc, 0x0263852b, 0x028b457b, 0x01763f7c, 0x00342e60, 0x03ac9b74, 0x00e0f2c8, 0x018fc136, 0x00254b79, 0x000263f6}}, Y: Field{[10]uint32{0x01a192d6, 0x0184456c, 0x0098f220, 0x0096f848, 0x012dc143, 0x032f2e67, 0x039dba65, 0x019991df, 0x000d213f, 0x0038a5ea}}},
+ {X: Field{[10]uint32{0x014c3281, 0x02ceab56, 0x00dc163e, 0x033605ab, 0x0148c464, 0x030b9bc6, 0x034127d8, 0x03b524b4, 0x024971b6, 0x003c7c21}}, Y: Field{[10]uint32{0x00f31f5c, 0x00ce2ac0, 0x0031a346, 0x0394bf7b, 0x03506a0d, 0x01580b9b, 0x038954d8, 0x013ea44e, 0x02a0f9e0, 0x00009ab8}}},
+ {X: Field{[10]uint32{0x030dd197, 0x010388e4, 0x03a91172, 0x00e98688, 0x01b63af8, 0x00141bed, 0x03441eac, 0x034ab298, 0x00cdc324, 0x0003fd1c}}, Y: Field{[10]uint32{0x0227788f, 0x00983495, 0x01eba5a5, 0x012e3f4c, 0x0330734b, 0x007be9ce, 0x007a772a, 0x01dfa118, 0x026bb18e, 0x0039807d}}},
+ {X: Field{[10]uint32{0x006c63a6, 0x0110b7ef, 0x016dcd04, 0x02e4ccbb, 0x00ad0f82, 0x02aaeeaa, 0x0008127b, 0x02865ad6, 0x006d968a, 0x00243aaf}}, Y: Field{[10]uint32{0x035038f1, 0x03e93bae, 0x030f94c1, 0x038f7370, 0x032faed3, 0x0111daca, 0x03fc4be4, 0x00f35cb7, 0x0367ffb2, 0x0035b7c3}}},
+ {X: Field{[10]uint32{0x007e11af, 0x012e2ef3, 0x03866ecd, 0x02dbfabc, 0x02bc0a43, 0x00c00d8f, 0x01e0826b, 0x001e86d0, 0x0126acc5, 0x003885ec}}, Y: Field{[10]uint32{0x01e98f30, 0x007f1b92, 0x01ecda8d, 0x017ec0c8, 0x02921e3a, 0x02c9e8e1, 0x00eb7332, 0x00cf562e, 0x01ef83db, 0x001faca3}}},
+ {X: Field{[10]uint32{0x00e1d184, 0x039a2a7f, 0x0228d20d, 0x03bb1e55, 0x02b5d008, 0x01362ab4, 0x032bc218, 0x0175785d, 0x03d582b8, 0x000a865b}}, Y: Field{[10]uint32{0x02201303, 0x00e67d98, 0x022300c3, 0x019e2760, 0x0368526c, 0x02b4bfc7, 0x038dc8cc, 0x038f53f7, 0x0257ee9e, 0x002652d1}}},
+ {X: Field{[10]uint32{0x02de4342, 0x0074099e, 0x002e6132, 0x02f5f99b, 0x02ca770c, 0x00463def, 0x01897c81, 0x0329fa2a, 0x03c83a6e, 0x002f278e}}, Y: Field{[10]uint32{0x014f3f4b, 0x01950b5c, 0x030a3f34, 0x0184be12, 0x00e2b076, 0x017cd749, 0x00992917, 0x029586ae, 0x03e2d544, 0x00275fbd}}},
+ {X: Field{[10]uint32{0x02f198b3, 0x0144aaac, 0x00cdf6f6, 0x03b79a47, 0x017e76b8, 0x03c4bc82, 0x029e3676, 0x027e13fa, 0x03f3842a, 0x003fca04}}, Y: Field{[10]uint32{0x03fe1949, 0x012128b0, 0x03f7618a, 0x00abd00a, 0x01b8b668, 0x02027d21, 0x02de4380, 0x030586b1, 0x03d666d0, 0x00081b8e}}},
+ {X: Field{[10]uint32{0x01af05f7, 0x011e6e34, 0x01baf6c7, 0x02f9382b, 0x0234a50b, 0x01da75f2, 0x01423210, 0x0358faf8, 0x01df2d38, 0x001b9d66}}, Y: Field{[10]uint32{0x03654c8d, 0x01bea978, 0x002cd555, 0x0117b346, 0x03256143, 0x01ad251a, 0x01ed56eb, 0x0136212a, 0x031d4b0e, 0x0008cf73}}},
+ {X: Field{[10]uint32{0x03666146, 0x0141c64c, 0x039f9ba2, 0x00bad5db, 0x03839766, 0x02797059, 0x01844d1a, 0x03aca053, 0x00d56c82, 0x0007b767}}, Y: Field{[10]uint32{0x01f43f4c, 0x00946f8f, 0x0165fe24, 0x03725776, 0x0239d48d, 0x0345a083, 0x01b5cb04, 0x03a0fa52, 0x02850b2e, 0x002803d2}}},
+ {X: Field{[10]uint32{0x007324af, 0x01e7ed90, 0x02b0718d, 0x01ce4b5e, 0x02818a2f, 0x00e2a07a, 0x024a0907, 0x01335dda, 0x02061f79, 0x0009c8f7}}, Y: Field{[10]uint32{0x02bbf41f, 0x00707fb1, 0x00e783db, 0x01c9df34, 0x0038daad, 0x0112ae22, 0x013429e3, 0x003140f1, 0x01bef981, 0x000d71ea}}},
+ {X: Field{[10]uint32{0x039a213d, 0x027289aa, 0x0353af46, 0x00ae9f1a, 0x023874ec, 0x010f04f0, 0x01659eeb, 0x0137bdb6, 0x02444cb5, 0x001313ec}}, Y: Field{[10]uint32{0x038efa3d, 0x01d47956, 0x02472082, 0x036168d5, 0x03d4a1ae, 0x0126cce3, 0x039ad153, 0x01ea7ffa, 0x02fe5644, 0x002ef4ba}}},
+ {X: Field{[10]uint32{0x027593e3, 0x0255c819, 0x0212f250, 0x034a3939, 0x0112847e, 0x03ecfef3, 0x03069771, 0x0256a238, 0x01f73479, 0x001cd8d6}}, Y: Field{[10]uint32{0x02bd3741, 0x0256fe44, 0x015f972c, 0x02920359, 0x00e303fd, 0x02e3e61a, 0x02215ca6, 0x001448d6, 0x03ed4bce, 0x0008eecd}}},
+ {X: Field{[10]uint32{0x01f595be, 0x01e53661, 0x03293825, 0x03df0332, 0x026f33b0, 0x0021e6fb, 0x01813946, 0x01af452e, 0x0194ee93, 0x000572e5}}, Y: Field{[10]uint32{0x031bb152, 0x00950a7e, 0x0149ac7f, 0x03997962, 0x03e2e133, 0x036c9d3b, 0x03775e9e, 0x006ad804, 0x032a2ec8, 0x002aab5d}}},
+ {X: Field{[10]uint32{0x03e78fa4, 0x01b159da, 0x00a9b41e, 0x01de987c, 0x02df5747, 0x002e1dca, 0x0290eb82, 0x033c7a12, 0x01ab97e5, 0x000ed522}}, Y: Field{[10]uint32{0x022219be, 0x00d33d95, 0x00cf9e71, 0x03aeeec4, 0x020d59a1, 0x0044f592, 0x02cad63f, 0x01285f33, 0x03c8e967, 0x00051744}}},
+ {X: Field{[10]uint32{0x029dd2f5, 0x005d65e8, 0x01c56684, 0x0130e896, 0x0323323e, 0x0167389a, 0x01bec7bb, 0x034e16c2, 0x019aa6f9, 0x001e346e}}, Y: Field{[10]uint32{0x0216a122, 0x0220dedf, 0x020ef3cd, 0x033856d2, 0x00a6b890, 0x027da8a0, 0x014369ce, 0x02c8433d, 0x01f8e883, 0x00072344}}},
+ {X: Field{[10]uint32{0x01661e85, 0x03457ece, 0x0121070c, 0x0060afa0, 0x02d2fd2d, 0x024e244b, 0x0013e3f0, 0x03eef4ea, 0x028c5cef, 0x000e1793}}, Y: Field{[10]uint32{0x0368069c, 0x00b6b2ea, 0x02c7036e, 0x03896337, 0x02c9b168, 0x00730232, 0x03ceb21c, 0x03ef1484, 0x00149f5c, 0x003d2871}}},
+ {X: Field{[10]uint32{0x011aec6a, 0x0365c465, 0x02b1fc28, 0x00c0a4b5, 0x02a7c872, 0x014fa4a4, 0x0130df3c, 0x01b1b922, 0x0070d8e4, 0x000c43e3}}, Y: Field{[10]uint32{0x0017146f, 0x021bd70d, 0x01efdb03, 0x017db73b, 0x0359d92d, 0x0175c11b, 0x0315154d, 0x001ec959, 0x01d3c92c, 0x001bf8c6}}},
+ {X: Field{[10]uint32{0x03c70bbb, 0x01996175, 0x00912940, 0x02590884, 0x03c1f91a, 0x02356248, 0x030b80d4, 0x03542b85, 0x003023d1, 0x001d93cf}}, Y: Field{[10]uint32{0x03dca724, 0x01f2d038, 0x038e4b54, 0x02e323ca, 0x03c3ee9e, 0x01e32673, 0x01411468, 0x02d283b6, 0x031abecd, 0x002f64be}}},
+ {X: Field{[10]uint32{0x03e68126, 0x01fbdca8, 0x031ab36f, 0x01d4f11e, 0x02b37a80, 0x010042e2, 0x013c86f8, 0x028dfc6f, 0x03bab357, 0x000f5748}}, Y: Field{[10]uint32{0x0334255b, 0x0056575a, 0x028e0821, 0x018424c1, 0x017ccbb4, 0x017e7037, 0x00893c5f, 0x0009960e, 0x0041bdcf, 0x000aef46}}},
+ {X: Field{[10]uint32{0x027f8a1e, 0x0095ae0a, 0x00dc087e, 0x01f543d4, 0x006d4ddd, 0x019d67a5, 0x03d2affd, 0x01ee2ffa, 0x01adcdfc, 0x0029c10c}}, Y: Field{[10]uint32{0x0147f593, 0x0091fd64, 0x01f20384, 0x00861bfd, 0x00231639, 0x03bfb32e, 0x03d77e8b, 0x02cbab0c, 0x022b9362, 0x000f290d}}},
+ {X: Field{[10]uint32{0x000e8a7d, 0x0358f98c, 0x00697bf7, 0x03689177, 0x032263e9, 0x03177500, 0x00004327, 0x00bb3cf2, 0x02122c1b, 0x000a8e20}}, Y: Field{[10]uint32{0x02f6ff78, 0x00b20884, 0x01175fd7, 0x03669c91, 0x01a339c0, 0x02a6dcea, 0x005f2faf, 0x01efc0f7, 0x018853b8, 0x002b25b4}}},
+ {X: Field{[10]uint32{0x024b5451, 0x005f0290, 0x01a9ab4d, 0x03fccc1a, 0x0356b49b, 0x015f8c04, 0x00bc545f, 0x0008bad4, 0x01a40ae3, 0x003a6716}}, Y: Field{[10]uint32{0x029bada0, 0x0111758b, 0x03349baf, 0x0260820d, 0x02b4fe1a, 0x00541645, 0x03737b56, 0x03eaddb0, 0x0379fe55, 0x000a6c92}}},
+ {X: Field{[10]uint32{0x003306d4, 0x0300d382, 0x0384bf19, 0x035ac368, 0x03c0be26, 0x030ff8b4, 0x03f1a3c3, 0x0317b7d8, 0x02d1bd5a, 0x0028290b}}, Y: Field{[10]uint32{0x00a0bbc3, 0x033d8457, 0x039e4e5b, 0x01e59c99, 0x008aad08, 0x030c83ba, 0x0293e288, 0x008dd1e8, 0x03d2d444, 0x0030e7fc}}},
+ {X: Field{[10]uint32{0x009e0053, 0x021baef0, 0x00b01c0b, 0x021c2dbc, 0x035cc17e, 0x01065cc3, 0x011670e1, 0x03c18fc7, 0x01d69ba9, 0x002e54b9}}, Y: Field{[10]uint32{0x01c46ae0, 0x023c31cb, 0x010ca0fe, 0x026bd4f3, 0x02273a4f, 0x02fc942b, 0x031c9b5b, 0x02e369b9, 0x019fa230, 0x00307a02}}},
+ {X: Field{[10]uint32{0x01a4e904, 0x03e0ffa5, 0x01a2e620, 0x02319575, 0x01be83c1, 0x00498872, 0x03892b45, 0x017d3918, 0x033a130f, 0x000ebb89}}, Y: Field{[10]uint32{0x030af7e7, 0x03bac3ef, 0x01131eb7, 0x00d67a32, 0x009237b0, 0x024fe51c, 0x003c6a0b, 0x02db73cb, 0x01c6921f, 0x003b7d1d}}},
+ {X: Field{[10]uint32{0x0266ceac, 0x0389576e, 0x0044965c, 0x01974a34, 0x00aa2f9e, 0x021e09ff, 0x0310d91b, 0x02bc1ab2, 0x00dcdc65, 0x00025b77}}, Y: Field{[10]uint32{0x0100ab39, 0x03e14bb4, 0x03584215, 0x01f98080, 0x039e2bf3, 0x0042ef08, 0x030d4fe3, 0x01009320, 0x036817fd, 0x000b9b40}}},
+ {X: Field{[10]uint32{0x030334a3, 0x017eb934, 0x004d5af4, 0x039e78d6, 0x01e0d07a, 0x00a507e8, 0x00e111c3, 0x03b276c4, 0x0006c757, 0x003f543d}}, Y: Field{[10]uint32{0x013fde6f, 0x03d2f3f5, 0x03348324, 0x003b184d, 0x00ed9ccb, 0x03e36ca2, 0x01b1d364, 0x001a3f1f, 0x0094d49c, 0x001c6ddd}}},
+ {X: Field{[10]uint32{0x03a097d1, 0x0193e45a, 0x03a77d3c, 0x004af28e, 0x03bd0611, 0x015a2ae6, 0x014915c9, 0x01148c18, 0x02681195, 0x001bcb60}}, Y: Field{[10]uint32{0x00787a87, 0x003bde0d, 0x035afe88, 0x01a34097, 0x0297261d, 0x029591e8, 0x017fe722, 0x029f134c, 0x0199849c, 0x002af904}}},
+ {X: Field{[10]uint32{0x01cc1400, 0x019091c8, 0x03c9d3f0, 0x036f8988, 0x029c5099, 0x020ca8c4, 0x0283d2ce, 0x02d8a89d, 0x01b76dff, 0x00362303}}, Y: Field{[10]uint32{0x01cec51f, 0x0398d4a3, 0x034ea542, 0x02250c6e, 0x02ba5aa2, 0x0021ccad, 0x001726df, 0x01fa4976, 0x015adf6d, 0x00144d3c}}},
+ {X: Field{[10]uint32{0x007105fe, 0x03d55f9d, 0x01562d95, 0x012a9c75, 0x00b6c0fd, 0x0080bf93, 0x01013632, 0x00fca3ab, 0x02e4ddde, 0x002a37a6}}, Y: Field{[10]uint32{0x03be8803, 0x00f8f6a8, 0x0107e038, 0x010dbbea, 0x02536820, 0x01f71d4a, 0x03c39a51, 0x02d85242, 0x006b5a71, 0x0005e7a5}}},
+ {X: Field{[10]uint32{0x03cd45ac, 0x00942aa3, 0x037ae6eb, 0x03bf9201, 0x01799c94, 0x003996c3, 0x02a48118, 0x00f50276, 0x0027f7dc, 0x00189b1a}}, Y: Field{[10]uint32{0x01bf2f32, 0x031758cc, 0x01c00fce, 0x02841e06, 0x02b30b7e, 0x036e2397, 0x024a2db8, 0x01eca0cb, 0x01db87cf, 0x0000f596}}},
+ {X: Field{[10]uint32{0x00a77d02, 0x01213d0b, 0x004955b5, 0x03bed488, 0x021666eb, 0x03d5b3c0, 0x00b2ef69, 0x03e91f6d, 0x022cf00e, 0x0000a28e}}, Y: Field{[10]uint32{0x0393c82b, 0x0266c5a0, 0x01b01f77, 0x00de5e53, 0x030fc168, 0x009c21b1, 0x00e90fb9, 0x01c3b667, 0x00edfc98, 0x00023740}}},
+ {X: Field{[10]uint32{0x01545786, 0x00a4dc30, 0x02bd5dbb, 0x01d5fee4, 0x02c3b672, 0x005e2923, 0x01d0dc2f, 0x01901491, 0x029f27c4, 0x0037c2c0}}, Y: Field{[10]uint32{0x02a1099a, 0x03462900, 0x0279c6cc, 0x012ffa85, 0x01757b47, 0x004067c5, 0x00a5ad4e, 0x0166a204, 0x0105c7e1, 0x003c4cfb}}},
+ {X: Field{[10]uint32{0x001a49ef, 0x02ef17f7, 0x02c8b421, 0x020d31f0, 0x020c5497, 0x0229ad8e, 0x02162a4e, 0x002f94b4, 0x03af9c1e, 0x00371bd5}}, Y: Field{[10]uint32{0x00f1a0c4, 0x01f84104, 0x0379e9e9, 0x01287064, 0x0366fca4, 0x02ce26ea, 0x02ee20d9, 0x03f97258, 0x02afe610, 0x001bd61a}}},
+ {X: Field{[10]uint32{0x0255cd15, 0x00ece62c, 0x02ac4bf1, 0x00ba838f, 0x03816247, 0x02070764, 0x02dcc0fa, 0x031a4066, 0x02a2e0d2, 0x0036de5b}}, Y: Field{[10]uint32{0x0105ac88, 0x010c4f1f, 0x033e2947, 0x00810ef6, 0x02793754, 0x006478a3, 0x01e07662, 0x03ed1190, 0x02a732e1, 0x000b9831}}},
+ {X: Field{[10]uint32{0x01633a2d, 0x03f8da4d, 0x023ca059, 0x01a4c2c1, 0x02881fe2, 0x01d3e233, 0x03a3efce, 0x0263f696, 0x029e72ea, 0x0015a6d9}}, Y: Field{[10]uint32{0x00ca0c8c, 0x02ddd57e, 0x00ca2f76, 0x01bffd3e, 0x02220b6a, 0x03ad78dd, 0x033f7406, 0x03e1c976, 0x02af2551, 0x002eb763}}},
+ {X: Field{[10]uint32{0x00468ae4, 0x02b0ccde, 0x02451421, 0x004617f4, 0x02ec7951, 0x00b45d71, 0x036b6f0e, 0x00ceef52, 0x00201f9a, 0x000d84c9}}, Y: Field{[10]uint32{0x033c4314, 0x005863fe, 0x01dee282, 0x005c3655, 0x0262a58e, 0x011d5921, 0x02ba1351, 0x01cd99bb, 0x02cef7bc, 0x003d1ed5}}},
+ {X: Field{[10]uint32{0x014a469c, 0x013b4cd2, 0x015b1b60, 0x020f24bf, 0x03855a07, 0x020b6c3f, 0x00fa2431, 0x00805246, 0x00371e4d, 0x00337ac8}}, Y: Field{[10]uint32{0x00dfa7d8, 0x031bde76, 0x03393a83, 0x03555462, 0x02970a7e, 0x0213b941, 0x010098bc, 0x00e074bf, 0x03186829, 0x001f4f1d}}},
+ {X: Field{[10]uint32{0x031598ef, 0x005f3f05, 0x03755c87, 0x01d3e36d, 0x03ff6c4d, 0x037a23ff, 0x013b721a, 0x0317b003, 0x03a9d750, 0x00180d73}}, Y: Field{[10]uint32{0x03dd675a, 0x027f6d81, 0x01cb749f, 0x035f5632, 0x029bb129, 0x0120b480, 0x02dcde65, 0x0090d904, 0x00da160b, 0x003f85e6}}},
+ {X: Field{[10]uint32{0x0379c0f7, 0x0279068e, 0x02ac18dc, 0x01765f64, 0x00bb250b, 0x011c5e3d, 0x0275b0c0, 0x02639383, 0x0297e499, 0x002c7d4b}}, Y: Field{[10]uint32{0x03df795f, 0x01e942b4, 0x0333d808, 0x03e04093, 0x03de484c, 0x00994717, 0x024370ca, 0x03f6317c, 0x01654e4c, 0x00360fcf}}},
+ {X: Field{[10]uint32{0x01f1b641, 0x018ac85b, 0x02477d78, 0x0159094d, 0x03f1a5e0, 0x0357dc26, 0x0011395d, 0x00f6827c, 0x035304c7, 0x002a9e66}}, Y: Field{[10]uint32{0x03248646, 0x00f4b4cc, 0x03338a00, 0x001f2ef9, 0x02dd5920, 0x03ce2aa1, 0x03f68879, 0x016d9164, 0x0047b5e9, 0x000e8c9c}}},
+ {X: Field{[10]uint32{0x0045aa03, 0x017a6ee9, 0x023c18d3, 0x026f7631, 0x01262d62, 0x034ce691, 0x01e56b66, 0x03d3f11e, 0x016445bd, 0x00369286}}, Y: Field{[10]uint32{0x029cb70d, 0x00fe4b2d, 0x006d563f, 0x039c9b0b, 0x02353376, 0x00d357b2, 0x02cff296, 0x018e9019, 0x02da25cc, 0x001ece97}}},
+ {X: Field{[10]uint32{0x01b8d656, 0x039ccfe8, 0x0384c231, 0x011a81ec, 0x017e620d, 0x003bbc1c, 0x03eba80f, 0x01b4350c, 0x00adc234, 0x0030c02d}}, Y: Field{[10]uint32{0x03cdba42, 0x02a1dc78, 0x023566f4, 0x03691537, 0x02f73448, 0x00402e56, 0x02aa439a, 0x01eb1fcd, 0x03b948d2, 0x000c820e}}},
+ {X: Field{[10]uint32{0x00359f04, 0x0162cae5, 0x02be76a3, 0x001f8833, 0x02ed64a9, 0x02437cac, 0x039bf7b0, 0x01c91358, 0x01286793, 0x00315669}}, Y: Field{[10]uint32{0x01bf5977, 0x011c3352, 0x004740d2, 0x03685659, 0x02806d78, 0x00fd10d2, 0x01671b56, 0x03260c83, 0x01aa5c08, 0x0027f2b0}}},
+ {X: Field{[10]uint32{0x03e83540, 0x018ccef7, 0x015fa9b9, 0x03af4f9e, 0x01b0911c, 0x020f042c, 0x034bca9a, 0x036fd3c1, 0x01470a46, 0x000e6c40}}, Y: Field{[10]uint32{0x01308278, 0x0250658b, 0x0055e642, 0x005f458a, 0x00168da4, 0x0358cd38, 0x02aa313c, 0x009d0d36, 0x00c8c3b2, 0x002b4d77}}},
+ {X: Field{[10]uint32{0x037d6d42, 0x01d2810b, 0x01d6b347, 0x00ba89de, 0x014129ab, 0x00666532, 0x00405970, 0x031805fe, 0x02b7d2de, 0x000e7272}}, Y: Field{[10]uint32{0x03781845, 0x0373a790, 0x013623af, 0x02d32012, 0x0272ca72, 0x01f77ecf, 0x00cdd453, 0x02284cd5, 0x016b835a, 0x0031cfaf}}},
+ {X: Field{[10]uint32{0x02c679ed, 0x02d7bbbb, 0x01466fc7, 0x0135104c, 0x03f8f81c, 0x038863b0, 0x02c60972, 0x02d18ab7, 0x01988a30, 0x00069896}}, Y: Field{[10]uint32{0x034114ab, 0x03e3374c, 0x02037bf5, 0x0276e810, 0x033651a3, 0x03884ef5, 0x02776e62, 0x01f26efd, 0x02bb01a9, 0x001ce6fa}}},
+ {X: Field{[10]uint32{0x024c4308, 0x008b7eba, 0x003bf3f4, 0x0330fbd9, 0x0085f33e, 0x03ca0ea6, 0x012761eb, 0x030c2350, 0x0110cd35, 0x000e5bb6}}, Y: Field{[10]uint32{0x004dfe57, 0x03467845, 0x01b7f556, 0x01620d9c, 0x013945e1, 0x010a91ac, 0x0048cf84, 0x01852937, 0x01a6a08a, 0x001c8737}}},
+ {X: Field{[10]uint32{0x03299a47, 0x02debce6, 0x02becaf7, 0x0100978e, 0x0083e153, 0x002f60c7, 0x02ee96ab, 0x0333f652, 0x02e8a2e8, 0x00294381}}, Y: Field{[10]uint32{0x03beba52, 0x03593f8a, 0x0214f3fc, 0x0068ead7, 0x014521fc, 0x02382178, 0x01a4575e, 0x02018ff9, 0x01b259a1, 0x00164c81}}},
+ {X: Field{[10]uint32{0x01c3e1de, 0x03c9adc4, 0x034a3dc3, 0x03591ba3, 0x00dbe15c, 0x00e4fe8d, 0x02c8bcf7, 0x03470398, 0x002317b0, 0x0012a7e0}}, Y: Field{[10]uint32{0x03c6bb71, 0x012faa7d, 0x015ac289, 0x030e5899, 0x00239867, 0x00d3a24a, 0x0330c244, 0x017fff36, 0x036d0091, 0x000103bf}}},
+ {X: Field{[10]uint32{0x01608b73, 0x0368bf23, 0x01f055d2, 0x018957b6, 0x007f3232, 0x00bfeee2, 0x0318562e, 0x02df9842, 0x020d9dec, 0x00233978}}, Y: Field{[10]uint32{0x02c720de, 0x03da6386, 0x011b54f1, 0x02caa9c0, 0x0263f024, 0x01649c9e, 0x0292371b, 0x03859003, 0x036cf363, 0x0003ada6}}},
+ {X: Field{[10]uint32{0x0083f24b, 0x009be6ed, 0x03e0a367, 0x0358dc02, 0x0184143e, 0x0295503b, 0x02525e28, 0x03a7947c, 0x01d79b53, 0x003cc9a5}}, Y: Field{[10]uint32{0x008471c8, 0x038641f0, 0x0123ef1e, 0x00587185, 0x031d81bd, 0x03f88d24, 0x012ca1f6, 0x00157d96, 0x0088eea2, 0x003a34d9}}},
+ {X: Field{[10]uint32{0x02c34d07, 0x01b78775, 0x01959485, 0x02049749, 0x01d92748, 0x01b80822, 0x011ad140, 0x0164b96d, 0x01863bf6, 0x000e09bf}}, Y: Field{[10]uint32{0x03e4cc83, 0x020ec73f, 0x01e97265, 0x0006a240, 0x02020da0, 0x01ffe7e0, 0x0282058a, 0x00d71d0f, 0x01e6a290, 0x003aa1bc}}},
+ {X: Field{[10]uint32{0x00ccd551, 0x01904290, 0x03ddd0dc, 0x02a263a1, 0x02ae8611, 0x03b1c9d8, 0x02098684, 0x02c3d46e, 0x00d32e32, 0x001ec6bf}}, Y: Field{[10]uint32{0x02e37884, 0x020a34f4, 0x020efc70, 0x02c2f158, 0x00a3ce0e, 0x02edb42a, 0x0036ee39, 0x0024c420, 0x02f779e1, 0x0037ae9b}}},
+ {X: Field{[10]uint32{0x01a91bd4, 0x0118304d, 0x03b63348, 0x0331fdfd, 0x018deddd, 0x019a8db4, 0x00d39b1b, 0x01d61d50, 0x01fed2c2, 0x000fac7f}}, Y: Field{[10]uint32{0x026b36cb, 0x0263e5b4, 0x037b9eb8, 0x011633f3, 0x02642c53, 0x0204a99e, 0x01506cca, 0x039e5186, 0x02ca536a, 0x002e2baa}}},
+ {X: Field{[10]uint32{0x0356da8f, 0x012fad66, 0x03c45c21, 0x027a406d, 0x02b71b4d, 0x020fba8b, 0x02290cb6, 0x03f17d4c, 0x02c8aae9, 0x00275876}}, Y: Field{[10]uint32{0x02446036, 0x021d8ace, 0x02271793, 0x0079e28a, 0x01280a8f, 0x0099f3a6, 0x024fc3ee, 0x02c8b9c0, 0x00a42ea1, 0x000b9f2b}}},
+ {X: Field{[10]uint32{0x0211c7d8, 0x0343ab8f, 0x0239be38, 0x03bff76e, 0x02e91a43, 0x017b5551, 0x021e37a8, 0x03eaa3a3, 0x02dc3167, 0x000b6cdc}}, Y: Field{[10]uint32{0x01707ffe, 0x01b842d6, 0x023809b0, 0x00d2dc65, 0x0084f005, 0x02d67c3a, 0x0279697f, 0x02f5a85b, 0x0361bc1a, 0x0005aadb}}},
+ {X: Field{[10]uint32{0x0005dc80, 0x0008f4a2, 0x000302ff, 0x019fdff1, 0x025b03dd, 0x02b4c4ca, 0x00e83cc9, 0x02d4e14e, 0x02f9f7a2, 0x00263df3}}, Y: Field{[10]uint32{0x02b98943, 0x020417eb, 0x00dd8d65, 0x034fe546, 0x01468bed, 0x03a5a85d, 0x016df891, 0x039b1af5, 0x00232813, 0x000ed03e}}},
+ {X: Field{[10]uint32{0x01b62548, 0x0334657b, 0x00c7a363, 0x01853522, 0x02c48f08, 0x02a276d0, 0x01f58528, 0x00349357, 0x026cc8ab, 0x003baacb}}, Y: Field{[10]uint32{0x002649da, 0x002649f2, 0x022cc017, 0x01d100a0, 0x00523a7f, 0x03d7b7c5, 0x03e25030, 0x00ca35ca, 0x01ed65d3, 0x00181f10}}},
+ {X: Field{[10]uint32{0x03db942a, 0x00d5c16c, 0x035376d9, 0x0346b69a, 0x03b7cb5e, 0x017ecc6d, 0x029a9d6c, 0x0071c0d1, 0x02ffb216, 0x002557fb}}, Y: Field{[10]uint32{0x01c0864b, 0x0123b905, 0x035a3fdf, 0x0029a0b2, 0x01283fcd, 0x029c4016, 0x039c9846, 0x030d081d, 0x0248a561, 0x002a4656}}},
+ {X: Field{[10]uint32{0x00cd85a7, 0x03396b37, 0x025c9d44, 0x0376a606, 0x034db23b, 0x0336b0db, 0x008f5411, 0x03ba7b4f, 0x012d70d2, 0x00086693}}, Y: Field{[10]uint32{0x00ef53b4, 0x01593d71, 0x008e470a, 0x02a4171b, 0x013dbfdd, 0x03193df7, 0x0284aef2, 0x023b05c4, 0x01684300, 0x0019d106}}},
+ {X: Field{[10]uint32{0x011ddb23, 0x010a5cbe, 0x028a5ed5, 0x01c5c8b8, 0x020d5945, 0x020b040d, 0x02f5cbd2, 0x02c584b8, 0x010d7794, 0x00125d8a}}, Y: Field{[10]uint32{0x0217ebc4, 0x001185b3, 0x03aec790, 0x00915bd5, 0x0023571c, 0x011b7144, 0x008354b4, 0x015954bf, 0x01f160fc, 0x00133f65}}},
+ {X: Field{[10]uint32{0x0072b1c1, 0x0135c8ac, 0x00a4b5c4, 0x02cf0535, 0x021866e0, 0x0267d59d, 0x03b99ed5, 0x02b476ee, 0x03e0268e, 0x0011cb54}}, Y: Field{[10]uint32{0x02831232, 0x01a4fb30, 0x02db8e31, 0x00afb190, 0x01e4dfe8, 0x03659ee2, 0x02d42e31, 0x035352a3, 0x00096115, 0x003a6e70}}},
+ {X: Field{[10]uint32{0x00ab18ef, 0x00c9ed1c, 0x01d50da3, 0x03ef0375, 0x003f3462, 0x0169b86c, 0x0075d617, 0x02e572be, 0x037e7a4d, 0x000a9bd6}}, Y: Field{[10]uint32{0x0259d506, 0x039f80e1, 0x033479ad, 0x013a8bcd, 0x02c9f372, 0x002c04f3, 0x01f5b78f, 0x037065f6, 0x03a392aa, 0x00246c91}}},
+ {X: Field{[10]uint32{0x03146c19, 0x03e71148, 0x025ba17d, 0x00ae7441, 0x007431a6, 0x0383230f, 0x025e654f, 0x03606ed7, 0x01a3bf48, 0x00370605}}, Y: Field{[10]uint32{0x0194be8f, 0x02f7cbf5, 0x00f36d0f, 0x03dec232, 0x02d837c5, 0x01d1fbfe, 0x03e2af74, 0x0143c391, 0x029a3115, 0x003f881c}}},
+ {X: Field{[10]uint32{0x00397776, 0x002db9a6, 0x03c4f1df, 0x033cf9a2, 0x00a8b47e, 0x000ffee6, 0x0295db4f, 0x03bae25e, 0x03ecad8f, 0x00239e54}}, Y: Field{[10]uint32{0x0141ac5d, 0x02c58df0, 0x01157893, 0x03f36aed, 0x0212f7c6, 0x007cc518, 0x0040a395, 0x0073109b, 0x02ef81b2, 0x00176b7c}}},
+ {X: Field{[10]uint32{0x019b41a5, 0x03913304, 0x02a7472e, 0x0015b999, 0x01faf96a, 0x019a1b22, 0x0099fe1c, 0x01c92e7a, 0x026b49d5, 0x00293647}}, Y: Field{[10]uint32{0x020a4893, 0x03a77865, 0x0247414a, 0x00aae9cb, 0x02fef10b, 0x02f73f09, 0x02bb820c, 0x019263d6, 0x02150e29, 0x002af5a1}}},
+ {X: Field{[10]uint32{0x0300eee9, 0x025210da, 0x0141dd02, 0x008ab2b8, 0x02754c49, 0x02383910, 0x0266dd60, 0x009ae74e, 0x01a4f3e4, 0x002e5c20}}, Y: Field{[10]uint32{0x00f153da, 0x007b5b2e, 0x024f1ea6, 0x01de38a2, 0x022c8c2f, 0x005542c4, 0x029cb641, 0x012ed2ea, 0x00839921, 0x001563db}}},
+ {X: Field{[10]uint32{0x03825848, 0x00d0843e, 0x0225ea8c, 0x029ad8d2, 0x00b873a5, 0x01904b15, 0x0273c6ef, 0x026f39c2, 0x02ed8227, 0x001a20ad}}, Y: Field{[10]uint32{0x03f21b3b, 0x027852e7, 0x035aed6b, 0x002487ca, 0x031e3a3b, 0x01a27a28, 0x0279c616, 0x00f8e4ba, 0x02e9c823, 0x0031bf7b}}},
+ {X: Field{[10]uint32{0x00717fe8, 0x01fb8691, 0x011a462c, 0x0202b543, 0x011a0dba, 0x013f7acf, 0x03bf11fa, 0x015c272a, 0x03311c71, 0x00271509}}, Y: Field{[10]uint32{0x01f2b045, 0x010a5d74, 0x0058d7ea, 0x01c713c8, 0x00ef4b64, 0x029dfdd8, 0x006bd40c, 0x00d16311, 0x03107816, 0x002a8106}}},
+ {X: Field{[10]uint32{0x000cd32c, 0x01ccc31e, 0x015d9357, 0x005c0ec6, 0x024a5ed9, 0x00ef9637, 0x038779de, 0x01704ba0, 0x01a6776b, 0x001ce853}}, Y: Field{[10]uint32{0x02d2c49c, 0x03929c1e, 0x03a78b0c, 0x01d3332c, 0x01ceb585, 0x022fcb22, 0x0067bb7e, 0x0313569d, 0x03fde98e, 0x003101a3}}},
+ {X: Field{[10]uint32{0x02af91b5, 0x01b15dad, 0x038ebfdc, 0x00d7677b, 0x028748d8, 0x039b76df, 0x01e9d261, 0x01b136eb, 0x028627d2, 0x00192228}}, Y: Field{[10]uint32{0x016d8ff3, 0x01806f4f, 0x02697b5c, 0x025416b6, 0x033c7f06, 0x0116ec1f, 0x030916a9, 0x0046462b, 0x01f0b050, 0x0009fe2c}}},
+ {X: Field{[10]uint32{0x0151046c, 0x02753414, 0x0371bd8c, 0x023865e3, 0x02cca1d3, 0x01f73ef3, 0x01ee2ef4, 0x0132636e, 0x027a5b54, 0x0025951b}}, Y: Field{[10]uint32{0x01f4309d, 0x018329c1, 0x0189e841, 0x01cac984, 0x023b10f7, 0x00257260, 0x00f07d22, 0x03b3fc88, 0x032f8fe9, 0x003413f8}}},
+ {X: Field{[10]uint32{0x00fecdf8, 0x0118fb63, 0x00066761, 0x01b20b4a, 0x01e76998, 0x01c808bb, 0x02cdb909, 0x02c50e80, 0x03564598, 0x002e811b}}, Y: Field{[10]uint32{0x0227250f, 0x000c8c8f, 0x01d68536, 0x00341de3, 0x023e57bc, 0x034f676a, 0x007d37c0, 0x015f0550, 0x03abd424, 0x003f1b88}}},
+ {X: Field{[10]uint32{0x02d0e4ec, 0x02e02bd6, 0x027df310, 0x01fec4f2, 0x005e7655, 0x021aa081, 0x02d82ed0, 0x0329f77d, 0x0351e633, 0x000e5551}}, Y: Field{[10]uint32{0x006d3b1c, 0x021ac0a8, 0x03b4f894, 0x00f0bee6, 0x03cdb2ba, 0x03ea8fd9, 0x03df5e95, 0x03c83a5d, 0x0284f040, 0x002915ae}}},
+ {X: Field{[10]uint32{0x009c22aa, 0x029a2926, 0x0317cd46, 0x035c0386, 0x01ba56b8, 0x00411b0f, 0x016c9241, 0x027f5c36, 0x00e75fef, 0x00317d54}}, Y: Field{[10]uint32{0x03ac3fa9, 0x030d8d89, 0x02cc2173, 0x010b723c, 0x038d65ea, 0x03b9f43e, 0x02a987ac, 0x02d85d55, 0x02e03aea, 0x00152160}}},
+ {X: Field{[10]uint32{0x025fa050, 0x026ab35b, 0x0327eb99, 0x01d5e6c9, 0x0326d4ba, 0x03818e90, 0x000b2a0e, 0x0236ce6a, 0x0210a48d, 0x000b3305}}, Y: Field{[10]uint32{0x00348c84, 0x00fe5ffe, 0x02b70a07, 0x01a524a3, 0x03fa205d, 0x01e79610, 0x01cb17b1, 0x0000b023, 0x03db2114, 0x00379b75}}},
+ {X: Field{[10]uint32{0x03084b3f, 0x0227843d, 0x012c5add, 0x03e3f9ba, 0x003ae59c, 0x03639919, 0x00089ff2, 0x00721079, 0x00e73e94, 0x0024ec1f}}, Y: Field{[10]uint32{0x0018fa63, 0x02a03910, 0x03634cb5, 0x03fb8634, 0x02533efc, 0x018a686b, 0x02c362d3, 0x0099f953, 0x0076c5a7, 0x00029b01}}},
+ {X: Field{[10]uint32{0x0291e7e9, 0x03015996, 0x03a3e438, 0x001d872e, 0x02b0ec27, 0x01a166c5, 0x03aeec82, 0x0119e578, 0x01f055c1, 0x00114f00}}, Y: Field{[10]uint32{0x016766b2, 0x016f1269, 0x033d9874, 0x026794b9, 0x030e14ac, 0x00221096, 0x03738436, 0x032288bb, 0x02c9b9d3, 0x003ca3ab}}},
+ {X: Field{[10]uint32{0x000f12f1, 0x0359197a, 0x027946f8, 0x013012a5, 0x00c1d09a, 0x0055656e, 0x02148fad, 0x0230a282, 0x01fdac07, 0x000f1b7c}}, Y: Field{[10]uint32{0x02a5b58d, 0x033c99e0, 0x0354f6df, 0x01700542, 0x02d443db, 0x039fb4a4, 0x02a68212, 0x004d2e81, 0x004d4eaa, 0x0011866a}}},
+ {X: Field{[10]uint32{0x01b98630, 0x033160c4, 0x02fd600d, 0x03e49c17, 0x03f12054, 0x0240836f, 0x01429895, 0x025e14c1, 0x01683995, 0x0006dfda}}, Y: Field{[10]uint32{0x00645c25, 0x03670803, 0x00a37372, 0x00574305, 0x0067ee9e, 0x0223b1bc, 0x01731c9b, 0x03ea33ef, 0x023ee3e8, 0x0009e771}}},
+ {X: Field{[10]uint32{0x03fccc19, 0x03610bef, 0x0300697a, 0x03da7340, 0x006256f2, 0x013489db, 0x010a6427, 0x0342e66e, 0x01539d49, 0x00386dee}}, Y: Field{[10]uint32{0x01f9500f, 0x03763435, 0x03316fd0, 0x036c9fe4, 0x00f2acfe, 0x027a054d, 0x004628b1, 0x0195a614, 0x016f51dc, 0x000ac8ee}}},
+ {X: Field{[10]uint32{0x0354f911, 0x0205f22b, 0x012bf4bc, 0x017e9588, 0x039ce552, 0x02a5d193, 0x015f79bb, 0x0108cd2f, 0x00c56fbf, 0x0010133c}}, Y: Field{[10]uint32{0x031ef662, 0x00b29907, 0x03c0f2e2, 0x02d5e625, 0x02023c04, 0x0178d95e, 0x021a6e07, 0x00162171, 0x02098830, 0x002d6481}}},
+ {X: Field{[10]uint32{0x00aae0c1, 0x038bb243, 0x0171f43f, 0x03b05faa, 0x00e7819a, 0x00268d10, 0x02e817fa, 0x01af63bf, 0x0186da62, 0x0010fc76}}, Y: Field{[10]uint32{0x0274f9ad, 0x028802ca, 0x03583e51, 0x00e0acea, 0x033e93f4, 0x005d45e7, 0x0011f518, 0x0246ab4a, 0x02ce0ce8, 0x00317e96}}},
+ {X: Field{[10]uint32{0x005b9c1f, 0x03b2bd83, 0x028fcd23, 0x03a2d9fb, 0x027bbcaa, 0x02dd8844, 0x02183b81, 0x0265445a, 0x01c6b320, 0x00286211}}, Y: Field{[10]uint32{0x03ef1f44, 0x030a546e, 0x03b02dfc, 0x03c573ae, 0x038f54e7, 0x020619c6, 0x03c5350e, 0x01f9acb3, 0x01d9d7e0, 0x002603b5}}},
+ {X: Field{[10]uint32{0x03ac01ed, 0x00124839, 0x015aa2a3, 0x02b7009b, 0x00254c38, 0x000f24a7, 0x01cc17be, 0x02609181, 0x03eb0af9, 0x00013671}}, Y: Field{[10]uint32{0x03e781d3, 0x01070654, 0x031c970d, 0x02e67ea6, 0x0097065b, 0x00cd83dd, 0x033cf00f, 0x03394c89, 0x0335bb0d, 0x00319316}}},
+ {X: Field{[10]uint32{0x03e7c25d, 0x03ab7225, 0x00814eda, 0x03dc1319, 0x0155953e, 0x03a2a981, 0x01317833, 0x036c26f3, 0x02f2fbc3, 0x00386348}}, Y: Field{[10]uint32{0x03c7e07e, 0x03ca88bb, 0x00b5953e, 0x02ca15c0, 0x000f15b8, 0x032aa1c0, 0x037989df, 0x0081c893, 0x02817115, 0x00330962}}},
+ {X: Field{[10]uint32{0x0247879d, 0x02f6f94a, 0x03d5a3c8, 0x029e6f0d, 0x0035083a, 0x030505fa, 0x02ec9a60, 0x02413e34, 0x01f9f220, 0x0005815d}}, Y: Field{[10]uint32{0x0279a5e5, 0x0157e4d4, 0x034ce0d6, 0x012cc274, 0x012c3870, 0x0350e7fb, 0x0191c60a, 0x025e3504, 0x00a6127e, 0x000795ad}}},
+ {X: Field{[10]uint32{0x0192d514, 0x0280dc94, 0x03e53f9a, 0x01aa850d, 0x034c3c9f, 0x00f14d56, 0x02b7ebdd, 0x03589935, 0x03c757b1, 0x000ed946}}, Y: Field{[10]uint32{0x00231c3f, 0x015861a0, 0x022e419e, 0x01682287, 0x025feb28, 0x03722927, 0x031d8ec5, 0x000c483f, 0x03749599, 0x0025dea1}}},
+ {X: Field{[10]uint32{0x02ba532a, 0x01e6a3c5, 0x03b0cd95, 0x02587f5a, 0x02a9660e, 0x0262aca1, 0x00250154, 0x033009d8, 0x01ef56fa, 0x0024216f}}, Y: Field{[10]uint32{0x02e9fe89, 0x01443c5e, 0x013b8c55, 0x005a3dae, 0x0368364c, 0x003a039e, 0x03f791d9, 0x01567179, 0x0108a557, 0x003f4174}}},
+ {X: Field{[10]uint32{0x000569ec, 0x01151239, 0x00c21fef, 0x0095db87, 0x0067cf1b, 0x007c2b3a, 0x033aab8c, 0x00e18bf4, 0x006df64a, 0x0010890c}}, Y: Field{[10]uint32{0x020661bc, 0x004f563d, 0x032498bd, 0x0257fe59, 0x0063e723, 0x016790b9, 0x0087c2dc, 0x02f0773a, 0x02675279, 0x0021d02d}}},
+ {X: Field{[10]uint32{0x0022935c, 0x00f28d77, 0x009182f8, 0x0303fd68, 0x02e0e2b2, 0x02f157b9, 0x03806b35, 0x00b8c69b, 0x02974a51, 0x002dcdd9}}, Y: Field{[10]uint32{0x01420103, 0x00a820a1, 0x0046251c, 0x000e75a2, 0x01890b3e, 0x023f572f, 0x00152a24, 0x03eb7bb9, 0x00202676, 0x0034d432}}},
+ {X: Field{[10]uint32{0x010eb97a, 0x01093693, 0x01574557, 0x01a32ea0, 0x02bb82e0, 0x03069d21, 0x00505ab1, 0x0353429f, 0x038ed3b5, 0x001cee93}}, Y: Field{[10]uint32{0x02188271, 0x0292ff89, 0x01215adc, 0x026dc950, 0x013a58ba, 0x0218f4fe, 0x01b4a2d0, 0x030d8152, 0x0114552d, 0x0024ebce}}},
+ {X: Field{[10]uint32{0x03d3d8ea, 0x012f80db, 0x01bef052, 0x0101af38, 0x020ae935, 0x01a52c14, 0x00576c45, 0x0093663c, 0x014e1747, 0x000a1680}}, Y: Field{[10]uint32{0x029af7dc, 0x00f9f21a, 0x028cab39, 0x01965a33, 0x039d4067, 0x0247536d, 0x03f5213f, 0x01dd5f9b, 0x01d8d2ce, 0x001bf6b4}}},
+ {X: Field{[10]uint32{0x028e768f, 0x021a77b0, 0x01180963, 0x01e3b283, 0x0384c2fd, 0x01be302a, 0x025cea7c, 0x02d52e8a, 0x01d727bf, 0x002c24d3}}, Y: Field{[10]uint32{0x00b982c6, 0x01c2763c, 0x031bf2bc, 0x03df4535, 0x03484c94, 0x036c2644, 0x02bbb26e, 0x027cc52f, 0x01115602, 0x00372bc3}}},
+ {X: Field{[10]uint32{0x03681561, 0x032303d6, 0x0365ec45, 0x033cd5ee, 0x02ffcb49, 0x03bc5742, 0x011c8bcc, 0x02a772dd, 0x02dd8b69, 0x000ed89e}}, Y: Field{[10]uint32{0x0046d19d, 0x00a5bf37, 0x015e1536, 0x02ee9dc8, 0x03693cd2, 0x0349f3fd, 0x02133649, 0x0202dcb6, 0x018009e3, 0x0002f686}}},
+ {X: Field{[10]uint32{0x02cb5ac2, 0x00a8da54, 0x027c90a6, 0x01d9722a, 0x02e45938, 0x011d9b6a, 0x012e3f9a, 0x02277e81, 0x01ec1f22, 0x001f923f}}, Y: Field{[10]uint32{0x018cb5f2, 0x00e12e6f, 0x039ac61e, 0x023984a4, 0x0168449b, 0x02fb6d27, 0x021e10c5, 0x01a2159b, 0x007aac11, 0x003a1ebe}}},
+ {X: Field{[10]uint32{0x023ffd9d, 0x03390f89, 0x0008b181, 0x02432a84, 0x00d094d8, 0x03bb0b90, 0x022c267f, 0x00eeeada, 0x008a5de3, 0x00100c7c}}, Y: Field{[10]uint32{0x01b0be07, 0x026dfc14, 0x006b58a7, 0x038c46e5, 0x01a8f23b, 0x0077fbd1, 0x0389beb9, 0x0297c269, 0x03d99737, 0x0033f713}}},
+ {X: Field{[10]uint32{0x031ed764, 0x001fafe4, 0x00b1dd54, 0x00b1ee40, 0x00ec00a2, 0x03510730, 0x02e656f4, 0x036ed6fd, 0x037c61dd, 0x002e994a}}, Y: Field{[10]uint32{0x00029556, 0x011341c0, 0x00088a3b, 0x02566964, 0x001d2070, 0x00f19f80, 0x030b5d8d, 0x02055a8c, 0x0392d122, 0x0021ff2c}}},
+ {X: Field{[10]uint32{0x0190e72d, 0x0307b419, 0x03b1bffd, 0x02e6e834, 0x0362c967, 0x03630c3c, 0x03dd95d2, 0x01d94eb1, 0x0172d101, 0x003ee4d9}}, Y: Field{[10]uint32{0x0036d8ed, 0x01e62092, 0x00587b08, 0x0119ad29, 0x02940382, 0x02562f8b, 0x03799659, 0x01a8c429, 0x03afdb6b, 0x002b7e8d}}},
+ {X: Field{[10]uint32{0x003bae7b, 0x02621c2c, 0x01148991, 0x00a065a1, 0x01b97ff3, 0x021844a7, 0x006fdb78, 0x00214bdf, 0x03cb5e7c, 0x000a511c}}, Y: Field{[10]uint32{0x0190c86a, 0x03bb0e1f, 0x03617246, 0x0169b1d9, 0x0078463e, 0x02f56d28, 0x0209f951, 0x0219e9e2, 0x0136f991, 0x002f6415}}},
+ {X: Field{[10]uint32{0x01bc574e, 0x01b21cf1, 0x00c0944a, 0x0231b4e9, 0x007687dc, 0x01a0edd3, 0x0337ced1, 0x00cff645, 0x004f73a6, 0x000bf03d}}, Y: Field{[10]uint32{0x0122ad1f, 0x001cd507, 0x0118415e, 0x01426914, 0x03ac572f, 0x02b8dcfa, 0x01499912, 0x018fe53a, 0x00eeffa0, 0x000a645f}}},
+ {X: Field{[10]uint32{0x016d569e, 0x03009444, 0x00c40b9a, 0x03720eee, 0x018da210, 0x023b628c, 0x01d34f2c, 0x0169fbd6, 0x0251882c, 0x002047ec}}, Y: Field{[10]uint32{0x00a0c55d, 0x02464636, 0x00c00ad2, 0x001c170f, 0x02d480e4, 0x0250379a, 0x0204ad3f, 0x016be93b, 0x01472cb5, 0x001d37d9}}},
+ {X: Field{[10]uint32{0x03fc5d07, 0x01f9852d, 0x0057ba9e, 0x03160bf7, 0x03c47996, 0x03539f94, 0x0051894a, 0x033c247d, 0x017cc1d6, 0x00116a78}}, Y: Field{[10]uint32{0x03069be1, 0x0072ab5e, 0x01bbb16d, 0x01b70dff, 0x034e1919, 0x02260cad, 0x02d19200, 0x0187d7ec, 0x004f0026, 0x00145a77}}},
+ {X: Field{[10]uint32{0x01588e67, 0x03426bad, 0x00102645, 0x00e2de30, 0x00abd065, 0x02d71ef5, 0x003d96aa, 0x029eb51d, 0x03fc45cd, 0x00355dfd}}, Y: Field{[10]uint32{0x003be07a, 0x001c4a0c, 0x0125e521, 0x00b0c2ff, 0x02765e2c, 0x0231e33a, 0x011db618, 0x015f7f3b, 0x03717ea2, 0x001545ca}}},
+ {X: Field{[10]uint32{0x0306e44f, 0x03846c66, 0x019c0650, 0x022ddde9, 0x024fb22d, 0x012c33bf, 0x0371e08d, 0x02a9b8e6, 0x02958098, 0x002990a6}}, Y: Field{[10]uint32{0x007dd2ed, 0x02992c65, 0x027dcf6a, 0x0097cb0e, 0x0336ab18, 0x0218902a, 0x00440f57, 0x0015772b, 0x02625587, 0x002bd253}}},
+ {X: Field{[10]uint32{0x039a743d, 0x025a59e8, 0x00679073, 0x01e98f88, 0x0050bca3, 0x03d1e3ba, 0x00b1c80c, 0x0052d096, 0x0304b893, 0x0003ddf0}}, Y: Field{[10]uint32{0x01c1c7ee, 0x0218dfe3, 0x02c727e7, 0x00515638, 0x011c32f4, 0x003d03c6, 0x00452136, 0x0052f982, 0x017629d9, 0x003121e8}}},
+ {X: Field{[10]uint32{0x02d1c988, 0x01985965, 0x01f5def7, 0x00bfecbe, 0x02cd76ea, 0x007b7b7a, 0x03f0a82e, 0x00491dc7, 0x02f61598, 0x001071bc}}, Y: Field{[10]uint32{0x01accb68, 0x02d4aa41, 0x031d3407, 0x0039176f, 0x02364277, 0x026da1f1, 0x039ed4ff, 0x00681d7f, 0x0144146c, 0x0016283d}}},
+ {X: Field{[10]uint32{0x02b968d0, 0x019bb4cb, 0x01916cdf, 0x035c7f6d, 0x037ac2d2, 0x015d978f, 0x02aaacb3, 0x00debc27, 0x02c8c13d, 0x00321c93}}, Y: Field{[10]uint32{0x00d81221, 0x03495791, 0x029895ec, 0x03b69e18, 0x026ade66, 0x00af669b, 0x014bbf24, 0x00f9b79f, 0x03214210, 0x001c3b3d}}},
+ {X: Field{[10]uint32{0x031fbbf2, 0x02ea7cff, 0x00650653, 0x012b81c3, 0x023b139e, 0x01d7ead9, 0x02204a2b, 0x0238daf8, 0x00460dd5, 0x0038a223}}, Y: Field{[10]uint32{0x0342509e, 0x00acd4c8, 0x0108c331, 0x02625488, 0x01bc1584, 0x0082f580, 0x01888797, 0x00ee2adf, 0x00dae139, 0x001c5644}}},
+ {X: Field{[10]uint32{0x02d834dd, 0x02b0dbd9, 0x01ec1c14, 0x00d847aa, 0x01f56cf7, 0x02a99be6, 0x01999c9a, 0x0202e1ad, 0x0384d72d, 0x003c7d30}}, Y: Field{[10]uint32{0x00cc7e3f, 0x039cdd49, 0x03c44835, 0x0229a5ac, 0x02219838, 0x0326a9e1, 0x038527a3, 0x010b23ae, 0x03c24801, 0x002d550e}}},
+ {X: Field{[10]uint32{0x01940a5b, 0x0204ad0c, 0x01e73f61, 0x0298d067, 0x0217aec3, 0x03b75fd6, 0x028d4126, 0x02df6c1d, 0x03f5832f, 0x00121d1d}}, Y: Field{[10]uint32{0x032608a7, 0x01e35786, 0x03c54c5f, 0x0158db6d, 0x020284f5, 0x00a9b55a, 0x004e3dc3, 0x03ea62f1, 0x01de4203, 0x00240c8b}}},
+ {X: Field{[10]uint32{0x00ca75af, 0x02bc0dc5, 0x0229bff8, 0x000a7f84, 0x010c55df, 0x02cfba7d, 0x00f957e0, 0x019f892e, 0x023a5831, 0x0029c9a5}}, Y: Field{[10]uint32{0x008f7449, 0x01945b70, 0x0232d99f, 0x00954e96, 0x034a6369, 0x02d9507f, 0x0154d156, 0x00a70204, 0x0184d689, 0x0023f5ea}}},
+ {X: Field{[10]uint32{0x0399e97c, 0x00ab16e2, 0x03033876, 0x030b8804, 0x00baa763, 0x01a669a3, 0x013a231e, 0x03ac7276, 0x01b4cf80, 0x00353083}}, Y: Field{[10]uint32{0x00eca01f, 0x031be7db, 0x0287a426, 0x00381624, 0x01f5abc5, 0x0246428d, 0x02a20713, 0x02943212, 0x03ba2555, 0x002e871d}}},
+ {X: Field{[10]uint32{0x02748168, 0x027bf88e, 0x03afafa5, 0x0076b15b, 0x025159ba, 0x036343cd, 0x01b5a55a, 0x01c0aefb, 0x005389ae, 0x0001f3e7}}, Y: Field{[10]uint32{0x032336b8, 0x00e140ad, 0x0296f6ec, 0x0029ba90, 0x03489bee, 0x00c4d23b, 0x00ec347c, 0x01eef28b, 0x0324338c, 0x003b38ec}}},
+ {X: Field{[10]uint32{0x00b73e55, 0x009506d1, 0x02f49699, 0x00ced36e, 0x03eec928, 0x00c9a01b, 0x039f9c30, 0x0352bce5, 0x00e3c1eb, 0x00248042}}, Y: Field{[10]uint32{0x01f466fc, 0x00b88025, 0x01395ba9, 0x01e1493d, 0x016cf8f4, 0x02e92399, 0x003f348e, 0x03120d3c, 0x0133d8ad, 0x000f88ac}}},
+ {X: Field{[10]uint32{0x02479e90, 0x02da7109, 0x02a8a4fe, 0x00e12559, 0x03fc7605, 0x02b4ca94, 0x03613372, 0x021d8a6c, 0x038a98c4, 0x000559ab}}, Y: Field{[10]uint32{0x02997796, 0x02a145b6, 0x03926dab, 0x02ebacfd, 0x030da5d3, 0x00bf871e, 0x017db986, 0x00af931e, 0x01664bd7, 0x000a1231}}},
+ {X: Field{[10]uint32{0x0361723c, 0x01daaf2b, 0x03044c0f, 0x02f89c7b, 0x01d2f6d9, 0x00ac2a2c, 0x017a7041, 0x0233af1f, 0x027102eb, 0x002936d7}}, Y: Field{[10]uint32{0x002e8ca4, 0x023232b1, 0x036a5695, 0x00abcae7, 0x03272f5f, 0x01ea501e, 0x004bc0a2, 0x00f777d8, 0x02e075a7, 0x00198f85}}},
+ {X: Field{[10]uint32{0x0153e5fb, 0x00ef29e3, 0x00c13849, 0x01dd81de, 0x0333d90e, 0x031e73c6, 0x025d1106, 0x02e3e418, 0x03538bbd, 0x00343273}}, Y: Field{[10]uint32{0x021d9a60, 0x01e418e2, 0x01bd9683, 0x02201f70, 0x009975ad, 0x02e2f4c3, 0x00a21250, 0x03501f30, 0x020e8b9f, 0x002dbb33}}},
+ {X: Field{[10]uint32{0x03d8391f, 0x01f39e3f, 0x0204ce65, 0x0051538e, 0x014a58d5, 0x033ce8e2, 0x0196d67b, 0x015ef5c1, 0x0292480f, 0x001d97ee}}, Y: Field{[10]uint32{0x0218302f, 0x03b24087, 0x023dbaf6, 0x02f57ceb, 0x0050879b, 0x03d06ad3, 0x03b552e3, 0x00d43968, 0x03ba1035, 0x00172c76}}},
+ {X: Field{[10]uint32{0x03fb4a5e, 0x007b9be2, 0x025032c5, 0x02396bd2, 0x009bd3f8, 0x022d94be, 0x02a7b9b6, 0x01c0ad2a, 0x01e8e846, 0x0027e76a}}, Y: Field{[10]uint32{0x0296a0f6, 0x028b5fd5, 0x0284dedf, 0x02374b01, 0x021d8da0, 0x001a22b2, 0x017320ca, 0x005ec3ac, 0x019d7ecf, 0x00176f52}}},
+ {X: Field{[10]uint32{0x03fdd3f4, 0x02480884, 0x025bfb11, 0x0272d196, 0x00ad949c, 0x006bbd7c, 0x03b1a166, 0x02252dcb, 0x003bdb95, 0x002be1b2}}, Y: Field{[10]uint32{0x0399e117, 0x03cf04b5, 0x00e55123, 0x02e6c6e2, 0x03004a7b, 0x0310709b, 0x03d2b25c, 0x00046580, 0x027d5541, 0x003b01a0}}},
+ {X: Field{[10]uint32{0x01587e77, 0x03e8d43f, 0x0309cd94, 0x02c8b32e, 0x0364c8e3, 0x0202f8ce, 0x032b3fcc, 0x02f2341d, 0x01932fcc, 0x003eed22}}, Y: Field{[10]uint32{0x00c0b858, 0x0046db36, 0x03e04811, 0x035095ee, 0x0258598a, 0x00d01d69, 0x0051abd6, 0x00cf6acd, 0x01242793, 0x0003e737}}},
+ {X: Field{[10]uint32{0x02d60684, 0x03b7079f, 0x0269bae6, 0x03e242a4, 0x00621f36, 0x00ab7270, 0x0315ecae, 0x030abd8a, 0x01a3ad97, 0x00103b2c}}, Y: Field{[10]uint32{0x0158b32e, 0x02a8014d, 0x005f288d, 0x02cfb661, 0x019a41f4, 0x008c07ee, 0x00e3e2b3, 0x0185f648, 0x0194fa3a, 0x003fe7b0}}},
+ {X: Field{[10]uint32{0x00878f52, 0x01802706, 0x03691973, 0x00c31f4e, 0x0339873c, 0x03f808e3, 0x03d9014b, 0x00ad0bf2, 0x02f10c76, 0x000c7e24}}, Y: Field{[10]uint32{0x01718c95, 0x00d9cd25, 0x03ff7be5, 0x02e3df53, 0x015cd610, 0x03dae4b0, 0x0131066e, 0x01cd154c, 0x0005f31f, 0x00366f54}}},
+ {X: Field{[10]uint32{0x00886c5c, 0x025bf209, 0x028f31c6, 0x024e32ad, 0x03921f81, 0x0175dce7, 0x014d150c, 0x001478b6, 0x0129e9f6, 0x002e8489}}, Y: Field{[10]uint32{0x016b1ed1, 0x01c926a1, 0x03c20d9c, 0x02730e5a, 0x007c0285, 0x01eb2708, 0x00577d33, 0x0354e46c, 0x031f7e9b, 0x0030cf01}}},
+ {X: Field{[10]uint32{0x0124cf03, 0x030857ca, 0x018c5030, 0x024f5605, 0x03ef45d9, 0x02e68098, 0x013ecbc5, 0x034c4726, 0x00129a26, 0x000d4c59}}, Y: Field{[10]uint32{0x023a9742, 0x031b4d5e, 0x00e3f6a9, 0x01be460d, 0x03f92ef0, 0x016d8e16, 0x023e2d9c, 0x008eee73, 0x00d95216, 0x0021a988}}},
+ {X: Field{[10]uint32{0x02c8e462, 0x00628854, 0x033ebf97, 0x02b1e146, 0x004a4aa7, 0x013b1fe7, 0x02ce92ca, 0x012a98d7, 0x030be413, 0x000c091d}}, Y: Field{[10]uint32{0x03c8c8ee, 0x03ac143f, 0x01225bbc, 0x02abe063, 0x00ab3f8f, 0x039ce139, 0x01c1579c, 0x01ebf85b, 0x03bd7214, 0x0007f3eb}}},
+ {X: Field{[10]uint32{0x03da6564, 0x0340721a, 0x0071a672, 0x02993742, 0x02533c1b, 0x02507638, 0x02dbf169, 0x03a1b16d, 0x013da40e, 0x003d6e8c}}, Y: Field{[10]uint32{0x0000647d, 0x012eeb6e, 0x018c7294, 0x02090dfd, 0x018f9652, 0x01555d92, 0x02e95ec1, 0x01e41f25, 0x010db969, 0x000042a4}}},
+ {X: Field{[10]uint32{0x0264e2f1, 0x02d6715c, 0x018ebb33, 0x00f84cb0, 0x00e485a2, 0x00632546, 0x037f426b, 0x033414d3, 0x03e2972c, 0x001a1785}}, Y: Field{[10]uint32{0x01f291c6, 0x000513ae, 0x03a0cb93, 0x00b77a83, 0x03470fd4, 0x00455b6b, 0x03a3f475, 0x02ab069d, 0x0338be84, 0x00259516}}},
+ {X: Field{[10]uint32{0x03f119eb, 0x03d97466, 0x028e0504, 0x03718749, 0x01fdd481, 0x03a4701f, 0x01e1bca7, 0x02608a96, 0x01fdfacc, 0x003804a1}}, Y: Field{[10]uint32{0x01c39909, 0x01f5b967, 0x010630f7, 0x01790719, 0x0140bf5b, 0x01c80ae6, 0x003615ba, 0x036aebbe, 0x013a2479, 0x002ba085}}},
+ {X: Field{[10]uint32{0x01839601, 0x00872c15, 0x03220b54, 0x024dd8d7, 0x0093798a, 0x024c8079, 0x00d67200, 0x0043b1e1, 0x01863277, 0x00318791}}, Y: Field{[10]uint32{0x006c04ea, 0x02e32c9d, 0x0026dcde, 0x03c5d0cf, 0x025d42fc, 0x02e95572, 0x023e0163, 0x01939e87, 0x03f5aa5b, 0x0039187e}}},
+ {X: Field{[10]uint32{0x03d192d4, 0x01f597c7, 0x01af3be8, 0x00d2400a, 0x013106fc, 0x004ed876, 0x00d8ca25, 0x0242db89, 0x02cb4e58, 0x0007109e}}, Y: Field{[10]uint32{0x02cf29d0, 0x03b0310d, 0x023e9c9c, 0x0357ba2b, 0x0184935a, 0x030d0c28, 0x0304fa6e, 0x014a2e6e, 0x00251518, 0x000765b8}}},
+ {X: Field{[10]uint32{0x012fd8e7, 0x037dbc7c, 0x02f54431, 0x0066d660, 0x005a9326, 0x01f51c2e, 0x02ddb3ba, 0x0225ed2d, 0x03fd6d51, 0x001795de}}, Y: Field{[10]uint32{0x011c6eb4, 0x03535e48, 0x01ff9203, 0x01131eb4, 0x00123cb0, 0x02969ff4, 0x0036e908, 0x030674ea, 0x02929734, 0x0030685c}}},
+ {X: Field{[10]uint32{0x00237b30, 0x00ed028a, 0x028a6817, 0x01d9b4fa, 0x02adc6ae, 0x03ef2b7c, 0x03aefc8d, 0x022902eb, 0x03331f96, 0x00331e2c}}, Y: Field{[10]uint32{0x01857d42, 0x02c29011, 0x038aa14e, 0x01f250db, 0x00dfc2ce, 0x0048e32d, 0x01ef04b4, 0x0301a3fc, 0x01b20a5b, 0x0016dda4}}},
+ {X: Field{[10]uint32{0x00919fb6, 0x020c293b, 0x0016a0b1, 0x00aa56b7, 0x02c44537, 0x02bcfb3a, 0x01dc288f, 0x0113ca79, 0x0037487b, 0x000e1571}}, Y: Field{[10]uint32{0x009359d2, 0x00a1f20a, 0x0151911c, 0x03d7868e, 0x01ed1949, 0x0022f6f5, 0x03bcd5b3, 0x03e8a153, 0x029a48cb, 0x0037cb87}}},
+ {X: Field{[10]uint32{0x01d16b19, 0x016119ae, 0x03c928f1, 0x0086df79, 0x00dc62cb, 0x01f6cf5b, 0x03fcf6b9, 0x00d5bf17, 0x03b40a83, 0x0030148c}}, Y: Field{[10]uint32{0x0254f500, 0x038efde7, 0x0327525e, 0x03d4588c, 0x00956616, 0x007a3795, 0x020eac65, 0x02211cfe, 0x02390ce7, 0x0002c6f6}}},
+ {X: Field{[10]uint32{0x019dfffb, 0x039f7b02, 0x0010b455, 0x00799586, 0x010b736c, 0x02407cd5, 0x02000245, 0x009a9f66, 0x013cf342, 0x001b0193}}, Y: Field{[10]uint32{0x009eb9a7, 0x02093358, 0x002e9925, 0x01dca349, 0x02aa5444, 0x0071710b, 0x00f8fd2a, 0x030687e0, 0x0042d25e, 0x00058365}}},
+ {X: Field{[10]uint32{0x03714cf2, 0x01eea762, 0x01009bf3, 0x01c91e27, 0x01b3e207, 0x00379a9f, 0x021a93a0, 0x006a946d, 0x038970bb, 0x0025963a}}, Y: Field{[10]uint32{0x02c51cc2, 0x00c07aa4, 0x01ff7a58, 0x012665f5, 0x0096be89, 0x01036278, 0x021a903f, 0x023e2de0, 0x00aff7da, 0x003352e9}}},
+ {X: Field{[10]uint32{0x03b4f0c8, 0x039fa992, 0x031b87a3, 0x01a69c70, 0x035cf1f9, 0x00fe65bd, 0x032b0c4c, 0x01bdc247, 0x0110a554, 0x001b808e}}, Y: Field{[10]uint32{0x00c459c5, 0x026b76cd, 0x0358999b, 0x00d99470, 0x007faa9b, 0x0362486e, 0x02d8cfc7, 0x01cd3767, 0x01d790ec, 0x003dbb59}}},
+ {X: Field{[10]uint32{0x00c7ff6e, 0x023e2655, 0x03a141e6, 0x006f5831, 0x03926290, 0x00cc14df, 0x003528e0, 0x001267e4, 0x0098e970, 0x000e8d6b}}, Y: Field{[10]uint32{0x032069ed, 0x00e36865, 0x00eb6c4d, 0x03e29d91, 0x001f247f, 0x03b68e09, 0x014ac0c9, 0x0070c14e, 0x0116da63, 0x00244f65}}},
+ {X: Field{[10]uint32{0x036af212, 0x014395c1, 0x023db073, 0x01bc925d, 0x022317c6, 0x02c6522f, 0x036def30, 0x02a916a2, 0x025115df, 0x0034227e}}, Y: Field{[10]uint32{0x00a6da9c, 0x03f720c6, 0x00f6ab12, 0x02b12864, 0x03a18e5d, 0x00ffe844, 0x025120cf, 0x03eb11de, 0x0173f326, 0x00139aba}}},
+ {X: Field{[10]uint32{0x018cf2ef, 0x02ecb083, 0x036ab045, 0x0357de42, 0x005b9cd9, 0x00f654c7, 0x00ea0f23, 0x00aad1d2, 0x012f2aa6, 0x0039ccf1}}, Y: Field{[10]uint32{0x0182a291, 0x00377c75, 0x02d89fb8, 0x0215c314, 0x0336ac48, 0x035ffdd4, 0x0323ab28, 0x01ca4eb2, 0x01c93c67, 0x001c0455}}},
+ {X: Field{[10]uint32{0x03f14c7a, 0x02bdd8f9, 0x01b9be8c, 0x002ee065, 0x021eb477, 0x00aeafe1, 0x00aa6f24, 0x01a13f99, 0x037dc006, 0x0012dbde}}, Y: Field{[10]uint32{0x0194e00d, 0x01917ac8, 0x01d5a2b0, 0x001763c8, 0x017bfaea, 0x014e8132, 0x01805d8a, 0x01eccc30, 0x0380ac75, 0x001b162d}}},
+ {X: Field{[10]uint32{0x0267f79d, 0x009b97f8, 0x038b4811, 0x0308ed1d, 0x0344ff51, 0x03154b9c, 0x00d7aeb8, 0x02b02831, 0x0002cd1f, 0x0006d481}}, Y: Field{[10]uint32{0x03db1a39, 0x03b0dd4d, 0x013c19e8, 0x03c424f6, 0x0030b252, 0x026b7536, 0x004ee943, 0x024c1283, 0x01005664, 0x00023b83}}},
+ {X: Field{[10]uint32{0x017139b1, 0x02bcafae, 0x024f5bf9, 0x00fd0f61, 0x023400cc, 0x022a2179, 0x02da4c63, 0x03b617f0, 0x02d5d7f1, 0x00224db9}}, Y: Field{[10]uint32{0x029b402b, 0x00ac1060, 0x03c4778d, 0x005e96f5, 0x018879f2, 0x03f4c989, 0x00cdc8a6, 0x00ca8ddc, 0x0220b4b9, 0x000a604a}}},
+ {X: Field{[10]uint32{0x016b518f, 0x00441172, 0x021eec4f, 0x01bd6e86, 0x01aebd39, 0x0157645c, 0x036c043a, 0x015536a8, 0x027f4813, 0x001a022b}}, Y: Field{[10]uint32{0x00425810, 0x0264e967, 0x01c2231b, 0x020df1d2, 0x00f581b9, 0x03d055d7, 0x00e85fd5, 0x0237715e, 0x026e8872, 0x001abf2b}}},
+ {X: Field{[10]uint32{0x01a2cd1c, 0x01e4928d, 0x0310f236, 0x024d56a6, 0x0193e232, 0x00076002, 0x011bba76, 0x00fd9848, 0x029444c7, 0x00161b19}}, Y: Field{[10]uint32{0x025416c7, 0x0004ab3f, 0x031c8862, 0x0377bc19, 0x03873537, 0x00df2df1, 0x00f5507d, 0x028f2d02, 0x001ff6eb, 0x001d2c24}}},
+ {X: Field{[10]uint32{0x03f89e11, 0x025efa07, 0x0066b078, 0x02966733, 0x020b183a, 0x02461507, 0x0388453e, 0x03c78131, 0x025ddead, 0x001e2720}}, Y: Field{[10]uint32{0x006cb5ab, 0x01e24e39, 0x0103cb8f, 0x015fffa6, 0x03e40cc3, 0x027e62a6, 0x027480b8, 0x02c4f1af, 0x026f641b, 0x002041aa}}},
+ {X: Field{[10]uint32{0x01419797, 0x01f3efaa, 0x02076acd, 0x01bb8763, 0x02e52042, 0x01fd92f2, 0x00d0ddf9, 0x03ea9988, 0x00bbfd26, 0x0035eae0}}, Y: Field{[10]uint32{0x00c5a823, 0x02114de4, 0x02efbc71, 0x022e7ccb, 0x026e50a5, 0x004e7453, 0x034a85f5, 0x02c40ebb, 0x0372a6d1, 0x0009abe7}}},
+ {X: Field{[10]uint32{0x02f67f7f, 0x015b4bcd, 0x033154c2, 0x00cf280a, 0x00bddf0f, 0x007af106, 0x012b311b, 0x006ae118, 0x02d44daf, 0x00063dc4}}, Y: Field{[10]uint32{0x037d25bc, 0x026f6981, 0x03ee9f2d, 0x034c8574, 0x006b06d8, 0x013fdefe, 0x033c3f43, 0x03533bb6, 0x0150f92f, 0x003102c6}}},
+ {X: Field{[10]uint32{0x03e5a06e, 0x039ba9b1, 0x005b3eb9, 0x00c8877a, 0x02fc399d, 0x02662f31, 0x022a7cbf, 0x00623de3, 0x036d9f6d, 0x00221cc9}}, Y: Field{[10]uint32{0x03c9e1a6, 0x029c2079, 0x02b4e054, 0x010f012d, 0x00dac977, 0x0395985e, 0x0020a3a7, 0x02e7a3ba, 0x01378ee9, 0x000a5fa0}}},
+ {X: Field{[10]uint32{0x0288e0ad, 0x00b299b1, 0x01157145, 0x019937de, 0x0030fadd, 0x037d0c73, 0x00f57cdf, 0x005faf02, 0x01015bd2, 0x000406e0}}, Y: Field{[10]uint32{0x01179e6a, 0x01cdc617, 0x01ab339b, 0x02d1b253, 0x014c7542, 0x02a3e372, 0x01816d40, 0x00e0c461, 0x032fad20, 0x003e9b06}}},
+ {X: Field{[10]uint32{0x0342dd57, 0x035314df, 0x03b6cd81, 0x0328a612, 0x03abe3b3, 0x02c81c7e, 0x02520a8c, 0x00518047, 0x015776c3, 0x001decf0}}, Y: Field{[10]uint32{0x004a645a, 0x0226417f, 0x00244925, 0x017453c3, 0x00040cce, 0x010fbd6b, 0x0084c9b4, 0x0006dc70, 0x02b1dab6, 0x002342f3}}},
+ {X: Field{[10]uint32{0x01daec7a, 0x01a9a83f, 0x005d3ecf, 0x0224cf20, 0x02fbe2c1, 0x02e99bc4, 0x03aca338, 0x0182dbfd, 0x015256ac, 0x000547cb}}, Y: Field{[10]uint32{0x024f62d6, 0x033a7c1d, 0x03ea674e, 0x02227355, 0x01c4833c, 0x027a508d, 0x03038d64, 0x012fe645, 0x017710cd, 0x0034aab3}}},
+ {X: Field{[10]uint32{0x031d32c7, 0x028e0245, 0x011a2029, 0x0070446f, 0x00950881, 0x012d1b7e, 0x0338dbe2, 0x0105ed18, 0x0327f41e, 0x00375d73}}, Y: Field{[10]uint32{0x01b67be5, 0x00c88906, 0x013dd46c, 0x003363ed, 0x00ee2217, 0x0324761b, 0x0303c33c, 0x026e012a, 0x0055a338, 0x0038ca2e}}},
+ {X: Field{[10]uint32{0x011d7a83, 0x035fbb9e, 0x0028a494, 0x01d8cd6d, 0x026a3f6b, 0x03d986c7, 0x02366ab3, 0x03671277, 0x03ebbdd1, 0x0003ea87}}, Y: Field{[10]uint32{0x0025d572, 0x015c4f6e, 0x029c413b, 0x02760695, 0x01948bb2, 0x00791955, 0x0248ee56, 0x000aae30, 0x014f8fce, 0x0037cd87}}},
+ {X: Field{[10]uint32{0x018f8be5, 0x036bfb53, 0x03545671, 0x037e31a9, 0x00a4cada, 0x019e2565, 0x01ee65b6, 0x02ecc7f7, 0x01be5bc2, 0x000f3043}}, Y: Field{[10]uint32{0x0039c2df, 0x023995dc, 0x0110dbc0, 0x002ba909, 0x00710112, 0x0350b25d, 0x0292a3a9, 0x02b5bc39, 0x01ef8c66, 0x00200b51}}},
+ {X: Field{[10]uint32{0x03b93ba2, 0x01dafb29, 0x03a1eaf5, 0x02140d78, 0x01856cc4, 0x014a00b8, 0x00dee7f7, 0x03b07245, 0x0325325d, 0x00255139}}, Y: Field{[10]uint32{0x02eeeb49, 0x020c4577, 0x03686aad, 0x03779421, 0x00aaf137, 0x005cce33, 0x0339b037, 0x00f013af, 0x03a68151, 0x0033b1f6}}},
+ {X: Field{[10]uint32{0x0383a964, 0x02f8df27, 0x01eac038, 0x01b89de7, 0x0154eec6, 0x03737db0, 0x017ff8b4, 0x0188d9ec, 0x03dcd5d0, 0x0025283e}}, Y: Field{[10]uint32{0x03efe82a, 0x00a7bd33, 0x030e576f, 0x004d68a8, 0x03fea742, 0x0290b8b8, 0x0223e169, 0x01b206dc, 0x00fd5ef0, 0x003c97cd}}},
+ {X: Field{[10]uint32{0x02b579c7, 0x03a12cf1, 0x03633100, 0x00ec27dd, 0x0314f67c, 0x0085ee90, 0x01fbd4bf, 0x01f8bda5, 0x01b2c3fc, 0x0026278a}}, Y: Field{[10]uint32{0x0221c888, 0x0143bf6d, 0x02771172, 0x010c0708, 0x01ed003a, 0x005f6abe, 0x034f3e99, 0x000a5c0a, 0x01280cd0, 0x0018229b}}},
+ {X: Field{[10]uint32{0x033494a5, 0x00192fc1, 0x017f1c81, 0x0173a502, 0x0249b4bd, 0x0164d2b0, 0x00e979b0, 0x029674ec, 0x03c44295, 0x0030e317}}, Y: Field{[10]uint32{0x01d1e2fb, 0x00118b58, 0x02ecb760, 0x01c5f2fb, 0x031d1dbc, 0x003af059, 0x00e471ae, 0x02cda992, 0x03f6d354, 0x00058902}}},
+ {X: Field{[10]uint32{0x03a7a63b, 0x0304e3c3, 0x037e1546, 0x01adeb61, 0x0207dc65, 0x031963be, 0x0341d8c5, 0x0011b162, 0x026735c4, 0x0037a73d}}, Y: Field{[10]uint32{0x006639ac, 0x021b78d4, 0x00cb7575, 0x039f66e5, 0x03ecc19d, 0x01120042, 0x03729275, 0x018b8f88, 0x024fba91, 0x000bf0a0}}},
+ {X: Field{[10]uint32{0x02c06522, 0x0110303d, 0x023c4c8c, 0x002119d6, 0x03f1dd9e, 0x0230cf27, 0x01d84b38, 0x0022d41e, 0x0137e567, 0x0000933f}}, Y: Field{[10]uint32{0x002af897, 0x00eb1e71, 0x01f00738, 0x01ab36df, 0x021aee67, 0x016b219c, 0x034d2895, 0x00055ed2, 0x00ea0982, 0x00072f32}}},
+ {X: Field{[10]uint32{0x007cc121, 0x00858e7a, 0x01ed7264, 0x023d8990, 0x012b275d, 0x038247a7, 0x00414a95, 0x02e6d8bd, 0x01086ad8, 0x00275b8c}}, Y: Field{[10]uint32{0x02d3abe0, 0x025e6dba, 0x01bca757, 0x02d379d4, 0x0043c46a, 0x029d0f3c, 0x02b59ad5, 0x0299f536, 0x000a6792, 0x002e491c}}},
+ {X: Field{[10]uint32{0x0209354d, 0x02f82021, 0x01d38673, 0x00b749d9, 0x0374aea2, 0x023b4e37, 0x01c21e53, 0x020e55ce, 0x01ae28b2, 0x00014aa2}}, Y: Field{[10]uint32{0x00334e51, 0x0316c7b6, 0x01708089, 0x035661ed, 0x01469b06, 0x01dacbd8, 0x03cccd20, 0x020c2f4d, 0x01579b65, 0x003060fb}}},
+ {X: Field{[10]uint32{0x0227571d, 0x034d0836, 0x0255046b, 0x0230b05c, 0x01cda3bf, 0x01c9f2bd, 0x03f5d31d, 0x00601c90, 0x0272491d, 0x000bff4c}}, Y: Field{[10]uint32{0x035b6ad5, 0x03326994, 0x01d52131, 0x02d74d06, 0x00599934, 0x037abbd6, 0x01e48be6, 0x02ccd28c, 0x03bd6f38, 0x00204ba3}}},
+ {X: Field{[10]uint32{0x00973fca, 0x02567167, 0x022f2eba, 0x02709c19, 0x0265df68, 0x02c64ec5, 0x0251b66d, 0x0290e8d7, 0x02094269, 0x00175831}}, Y: Field{[10]uint32{0x010efadc, 0x03c7d221, 0x0048a3af, 0x02165a71, 0x006d3b92, 0x03d03350, 0x031bb7e3, 0x035864ac, 0x024fd1af, 0x003d644c}}},
+ {X: Field{[10]uint32{0x0112ff75, 0x029ad2cf, 0x00d0ae6d, 0x03e615e1, 0x004c86da, 0x00706d58, 0x0026340e, 0x00cd4fd1, 0x000abfe5, 0x0008f831}}, Y: Field{[10]uint32{0x00191d9d, 0x0085444a, 0x03827f99, 0x01e66eb3, 0x00f19d5a, 0x02032851, 0x01baf682, 0x0024a824, 0x00b5fc86, 0x003a4211}}},
+ {X: Field{[10]uint32{0x006094f6, 0x0221739f, 0x02bb1155, 0x01e4c2f4, 0x0050e67d, 0x03cdf6a0, 0x02f20d77, 0x00704b29, 0x00ab5d4a, 0x00251606}}, Y: Field{[10]uint32{0x02695e03, 0x00735592, 0x03b6f9a1, 0x018febf2, 0x0032ca81, 0x03b7b6d8, 0x0269c969, 0x02b9b6a9, 0x01d0e2f9, 0x002d7cb0}}},
+ {X: Field{[10]uint32{0x00724c8c, 0x03b363f6, 0x0124bc41, 0x0175881b, 0x015043be, 0x00335ef3, 0x03a469ca, 0x02fda861, 0x037d2586, 0x00347d36}}, Y: Field{[10]uint32{0x02206839, 0x0296b384, 0x03365a1c, 0x02ac071b, 0x02b1525e, 0x00a4a719, 0x0080ce9b, 0x01dd2ef5, 0x038277c4, 0x00190153}}},
+ {X: Field{[10]uint32{0x0014a18d, 0x01fd3b3b, 0x01e1860f, 0x00a973dd, 0x01158b4f, 0x010a8f44, 0x005f2d5b, 0x01ba706a, 0x014f2458, 0x0013d713}}, Y: Field{[10]uint32{0x00efdbe5, 0x02d28c6c, 0x03350986, 0x027a5c3e, 0x021e48bb, 0x01ffefb0, 0x013be2be, 0x01e581a5, 0x02716d54, 0x0015d5db}}},
+ {X: Field{[10]uint32{0x0198150a, 0x01032e52, 0x02118c38, 0x031407a6, 0x013f8edf, 0x0393e40f, 0x023cf5c5, 0x00510f62, 0x005bdcb3, 0x00304ed8}}, Y: Field{[10]uint32{0x02cb8435, 0x000f2c85, 0x022b52f6, 0x0127d064, 0x006c368e, 0x0122c070, 0x022a8ea9, 0x03efd4b9, 0x02af99f1, 0x0023738b}}},
+ {X: Field{[10]uint32{0x0029cbb6, 0x01d33409, 0x01753391, 0x019b899a, 0x03a3df24, 0x0073bad6, 0x024a5b5a, 0x00953925, 0x032ab66f, 0x00064dec}}, Y: Field{[10]uint32{0x02f2e385, 0x0005ce03, 0x0022bb57, 0x01e604f8, 0x030181e0, 0x00fffec6, 0x00eabb05, 0x001d72ef, 0x00a06f1b, 0x0025c4ac}}},
+ {X: Field{[10]uint32{0x019ba2e4, 0x0186c1d0, 0x004d747e, 0x036deb4b, 0x00d757bb, 0x00ef87d6, 0x00ef386c, 0x01cbcc21, 0x033f2f17, 0x0039294c}}, Y: Field{[10]uint32{0x036b6f56, 0x00529eb2, 0x00c7c5af, 0x03326f05, 0x02132571, 0x02f05590, 0x009b7178, 0x0392e40e, 0x01a72ec2, 0x003a13df}}},
+ {X: Field{[10]uint32{0x0206cca6, 0x03f6d2d5, 0x00dcffc7, 0x0106b855, 0x01d57a83, 0x03304217, 0x000a0cf5, 0x00aa3142, 0x00b0a3f4, 0x000be28e}}, Y: Field{[10]uint32{0x024681c1, 0x03ce31a3, 0x024f1134, 0x00b86c49, 0x002fa2a7, 0x03bb58a5, 0x0008d9c4, 0x0076d959, 0x02a52c30, 0x0021d931}}},
+ {X: Field{[10]uint32{0x01a55ff7, 0x015c4aa0, 0x0070b873, 0x0266e106, 0x02acd145, 0x033aad7f, 0x00585b63, 0x00b5dedb, 0x01c2c51c, 0x0000f4af}}, Y: Field{[10]uint32{0x02d3e9e0, 0x02e3736d, 0x035e9496, 0x00da8fa2, 0x00922460, 0x0011db91, 0x01a808ff, 0x018f7ea6, 0x01adbbe2, 0x000cfdd2}}},
+ {X: Field{[10]uint32{0x03ab7d3a, 0x03cf307b, 0x01b3e6e5, 0x00548b6f, 0x021ecec2, 0x00afe8f8, 0x02b9acf6, 0x01338cdd, 0x0008d676, 0x003f21fe}}, Y: Field{[10]uint32{0x0035176a, 0x032e5c4a, 0x00581717, 0x0093386f, 0x01c03430, 0x014292b0, 0x0015dd87, 0x03e4ddc2, 0x0303c1f4, 0x00339d7a}}},
+ {X: Field{[10]uint32{0x031e68d5, 0x009c2fd6, 0x02cb4374, 0x014871f9, 0x01323549, 0x03326121, 0x00885dc0, 0x03847afa, 0x005c62de, 0x001fe06e}}, Y: Field{[10]uint32{0x029c4558, 0x0034a9da, 0x017f3ad7, 0x012bb572, 0x011750aa, 0x025b3dce, 0x01ba062d, 0x036d8705, 0x037d6a84, 0x002deb7b}}},
+ {X: Field{[10]uint32{0x01fd5557, 0x022e40f8, 0x0288c826, 0x0224f085, 0x0233cc8f, 0x018bbe47, 0x01d8f47f, 0x00eb97a3, 0x003f7afd, 0x00358635}}, Y: Field{[10]uint32{0x00cd34b8, 0x02f2a9b8, 0x03fb4fc5, 0x0237f230, 0x0042ce9e, 0x024031f9, 0x03212679, 0x02e6c20a, 0x017b0c8a, 0x00186020}}},
+ {X: Field{[10]uint32{0x016e4940, 0x03e532e2, 0x009310cc, 0x02f37ddb, 0x03694430, 0x020e0ee6, 0x03f540fc, 0x026c1b6b, 0x004ff237, 0x002e9693}}, Y: Field{[10]uint32{0x0107b1f2, 0x001d6a3f, 0x0128db91, 0x03954d29, 0x0325299d, 0x03cba4cc, 0x01309b24, 0x0239bd3b, 0x011a0b13, 0x000e8887}}},
+ {X: Field{[10]uint32{0x00cfdf56, 0x00a7e8c6, 0x018abcec, 0x025720c2, 0x03801363, 0x02cd6eb0, 0x03591415, 0x00dd1a20, 0x01b60bee, 0x0031a462}}, Y: Field{[10]uint32{0x0339268c, 0x022f5275, 0x0279c582, 0x0078a6de, 0x019795e6, 0x038d01ec, 0x00232fa7, 0x0368eb37, 0x03c2b862, 0x00286176}}},
+ {X: Field{[10]uint32{0x00efae12, 0x00dccb07, 0x02d71bcd, 0x021a1f96, 0x0270dffd, 0x0267500e, 0x0063423b, 0x02d006ae, 0x0144032f, 0x00147d9f}}, Y: Field{[10]uint32{0x01e10e59, 0x02cb6518, 0x01f5ca8e, 0x00fe2993, 0x020403e2, 0x032fc859, 0x00ae68a3, 0x00128caf, 0x0085a2c4, 0x00222c5d}}},
+ {X: Field{[10]uint32{0x037c4bd5, 0x02fb9b7a, 0x00a36fa8, 0x005fb4f3, 0x016001e1, 0x0252e2d9, 0x006fb69a, 0x017e350d, 0x0209e558, 0x00336b3f}}, Y: Field{[10]uint32{0x02028542, 0x0211249b, 0x01ecefdb, 0x000d6515, 0x03af5fc4, 0x0019a675, 0x00121762, 0x00c74056, 0x005a9931, 0x00377c6f}}},
+ {X: Field{[10]uint32{0x03f0e769, 0x00cf24e2, 0x01be319f, 0x02874598, 0x00481eaa, 0x033a4222, 0x0301d70c, 0x0391da71, 0x0371e1fc, 0x00204a79}}, Y: Field{[10]uint32{0x0045c6e2, 0x002a05bc, 0x02d700d4, 0x0226d511, 0x038a4db1, 0x01d259ab, 0x02d8b6f9, 0x02f158e7, 0x013da864, 0x000fad5c}}},
+ {X: Field{[10]uint32{0x02bce3ab, 0x004cafd6, 0x009ada68, 0x02abe0a2, 0x00f39c14, 0x02a9cc35, 0x002fc0f8, 0x016f03cc, 0x02ef6d41, 0x002e5c18}}, Y: Field{[10]uint32{0x013db3a6, 0x003cc4f5, 0x02829049, 0x03954445, 0x006644c9, 0x0148891f, 0x00dfdd38, 0x0324f3f6, 0x0288cd76, 0x0022b5c1}}},
+ {X: Field{[10]uint32{0x030bd913, 0x01a853d3, 0x03ca422a, 0x03b14552, 0x0250de67, 0x013a1af9, 0x01d6af8c, 0x006d7fa9, 0x018b4e81, 0x000670f2}}, Y: Field{[10]uint32{0x0190a109, 0x01d1bea8, 0x027bdd5d, 0x017a491d, 0x03c18b9d, 0x021425f2, 0x021b5c73, 0x03264cc3, 0x039648bd, 0x002f148f}}},
+ {X: Field{[10]uint32{0x01b42b9c, 0x026cf0ad, 0x0355967a, 0x01efbf98, 0x020ad769, 0x02244638, 0x02be43f8, 0x03b9d2c7, 0x00c73616, 0x002e7bcd}}, Y: Field{[10]uint32{0x03661bea, 0x003a9a16, 0x022543b7, 0x02a8d5c3, 0x02e8dc05, 0x03988e54, 0x01be2715, 0x006b06e2, 0x01ddd55b, 0x0004bc73}}},
+ {X: Field{[10]uint32{0x0103c34a, 0x03b6e5fd, 0x02ca86e8, 0x00faf7ae, 0x0359dd2a, 0x01b61371, 0x039c39a9, 0x0336d603, 0x034f58e2, 0x001dc638}}, Y: Field{[10]uint32{0x03e96df7, 0x019ec400, 0x03093135, 0x00a23838, 0x01cf5e37, 0x0312f45f, 0x01cd8f96, 0x0106e04b, 0x01fbdc08, 0x0029b441}}},
+ {X: Field{[10]uint32{0x037e8dba, 0x03321c71, 0x02ed621f, 0x02c62bed, 0x01e259c1, 0x034d68da, 0x03ba89b8, 0x039cdd8e, 0x004b8e6d, 0x0036ace2}}, Y: Field{[10]uint32{0x00a11577, 0x00e89e05, 0x0153ee50, 0x0024abbe, 0x01c9316e, 0x036d2802, 0x02bd4b5e, 0x00b508ae, 0x0329c59a, 0x003d12db}}},
+ {X: Field{[10]uint32{0x027f4366, 0x03b6ac79, 0x00a1876a, 0x0147a11f, 0x03a67367, 0x02d6f9b7, 0x026a8978, 0x01e0b797, 0x02101139, 0x0032cf43}}, Y: Field{[10]uint32{0x0157d3ea, 0x03e5c26f, 0x010cf189, 0x019da705, 0x01572aff, 0x03923c76, 0x0169b33b, 0x0250f99e, 0x008dd227, 0x0009ffa2}}},
+ {X: Field{[10]uint32{0x00c3c6a0, 0x01fecefa, 0x0279fcca, 0x0191ba8b, 0x03656ea5, 0x03d8ad2d, 0x01193dbb, 0x02750423, 0x03f85561, 0x003ac6c7}}, Y: Field{[10]uint32{0x02282ea4, 0x0340f258, 0x027a5ced, 0x00e926cc, 0x01d36ae9, 0x000e1159, 0x01137414, 0x0357075c, 0x00c75b73, 0x00309fe8}}},
+ {X: Field{[10]uint32{0x0039c5dd, 0x0025e187, 0x03aeb587, 0x03cf4b95, 0x00bee8f9, 0x00eadaf7, 0x01a11170, 0x003c47dd, 0x01e60bc4, 0x0017541e}}, Y: Field{[10]uint32{0x006e46d0, 0x02048851, 0x02bab805, 0x0378061c, 0x014d8435, 0x02f9ef7e, 0x025829b4, 0x02e75775, 0x012ba40d, 0x00052b84}}},
+ {X: Field{[10]uint32{0x01a7b38e, 0x03f302a8, 0x00502384, 0x023780c0, 0x01b70809, 0x02c852ec, 0x028acd26, 0x01abc1b4, 0x02f76beb, 0x00004183}}, Y: Field{[10]uint32{0x03bdf9a3, 0x003b1230, 0x022e275d, 0x0015481f, 0x0334252c, 0x028860f5, 0x005464da, 0x03190a56, 0x039ff6c6, 0x0033903c}}},
+ {X: Field{[10]uint32{0x02170695, 0x008e1cea, 0x03e1afd7, 0x0251c358, 0x01e7bcc8, 0x0309d14a, 0x007c271a, 0x03dcc625, 0x0063c001, 0x00259471}}, Y: Field{[10]uint32{0x0254eaf7, 0x00dfec39, 0x0154d218, 0x01e96a6c, 0x013b16ba, 0x022d8f26, 0x016d17fe, 0x001b69cf, 0x027fe8ff, 0x00138d8b}}},
+ {X: Field{[10]uint32{0x03363dcc, 0x00a3c9c7, 0x0000ee09, 0x01334891, 0x01895cda, 0x02d0a2c6, 0x02822cdc, 0x0086d0bd, 0x03765928, 0x0017108a}}, Y: Field{[10]uint32{0x012b9400, 0x017f3d92, 0x0148444e, 0x036054a0, 0x014cb6b4, 0x03db01fd, 0x008258f0, 0x01df28d1, 0x034f9e4c, 0x000bf6d3}}},
+ {X: Field{[10]uint32{0x01faba2c, 0x009364ea, 0x003d2b72, 0x029b353d, 0x02ab3868, 0x0114b312, 0x023ce519, 0x009435ce, 0x012b5d98, 0x0036c51f}}, Y: Field{[10]uint32{0x010ed0de, 0x02469e81, 0x009258a3, 0x03f81931, 0x009fdebf, 0x01ca65a1, 0x0343227a, 0x01ab37e8, 0x0380ad3c, 0x001cc950}}},
+ {X: Field{[10]uint32{0x01454b4c, 0x0345b2f9, 0x01384a41, 0x009bb613, 0x01e1beca, 0x02207a26, 0x02237678, 0x02ff4594, 0x03a0f97a, 0x002699d8}}, Y: Field{[10]uint32{0x0090306a, 0x028074ce, 0x03cb2737, 0x01d64b22, 0x00e7952f, 0x00420a42, 0x031a3d55, 0x01605ccb, 0x007db6aa, 0x002ed450}}},
+ {X: Field{[10]uint32{0x025daea8, 0x02da8003, 0x0400007d, 0x027a3147, 0x0007b45a, 0x03e53d61, 0x025c889e, 0x022bd3d3, 0x0133e910, 0x000dbf9e}}, Y: Field{[10]uint32{0x01227ee5, 0x0216ed09, 0x019e27fc, 0x02ed9ad1, 0x031943c7, 0x01c78570, 0x003a0f4a, 0x01688723, 0x01baecdd, 0x00340929}}},
+ {X: Field{[10]uint32{0x03c784e7, 0x0155a28e, 0x006afc44, 0x03a96dce, 0x0144c749, 0x01d4a5a0, 0x02782fb8, 0x01f9a033, 0x0263f04f, 0x001036b9}}, Y: Field{[10]uint32{0x0355050b, 0x00445d95, 0x02bb9478, 0x011d12c5, 0x02cea2ab, 0x008f3c94, 0x0058c854, 0x03374009, 0x03fdac6b, 0x00126918}}},
+ {X: Field{[10]uint32{0x01c5b8d1, 0x017272eb, 0x00a7542c, 0x02e9e7ea, 0x01da55fa, 0x0056bf67, 0x00c6d10b, 0x03cec23a, 0x016dc8ff, 0x0002e858}}, Y: Field{[10]uint32{0x00a786ff, 0x006ac96c, 0x01019764, 0x01797c38, 0x02771045, 0x0328256c, 0x025a3ace, 0x00f19865, 0x0042a623, 0x003bc25b}}},
+ {X: Field{[10]uint32{0x019c4a66, 0x00b409d8, 0x01e7da70, 0x001417ee, 0x03d69b4a, 0x02f1c49c, 0x028c948d, 0x01254935, 0x036723a5, 0x000c121b}}, Y: Field{[10]uint32{0x02444c76, 0x00fb2eb0, 0x01ab6574, 0x01b66812, 0x01fd6acc, 0x011c292e, 0x02a63695, 0x03270217, 0x014d279e, 0x000e3293}}},
+ {X: Field{[10]uint32{0x01e6932a, 0x0096f236, 0x0197090f, 0x024e6a27, 0x02d6accd, 0x03b0a809, 0x0367174d, 0x03475603, 0x029495ea, 0x0006e0fb}}, Y: Field{[10]uint32{0x02e20196, 0x0212f075, 0x03e0e345, 0x00d270ac, 0x033d2630, 0x00b9f43a, 0x0373d6da, 0x01214786, 0x0048fb5e, 0x000065b5}}},
+ {X: Field{[10]uint32{0x03517396, 0x003c432d, 0x0264f2e3, 0x00c8053b, 0x01328b61, 0x03055e76, 0x02766715, 0x016844be, 0x002eedfa, 0x0013aa77}}, Y: Field{[10]uint32{0x006e50c2, 0x023c3d6c, 0x02c9c21e, 0x036741b2, 0x00d4a192, 0x00066d07, 0x003f0b14, 0x00f8a562, 0x03c96ef8, 0x001d053b}}},
+ {X: Field{[10]uint32{0x02b033da, 0x025ff34b, 0x01b311a0, 0x024b572e, 0x02876777, 0x02d95d0d, 0x03217aa3, 0x02b4220e, 0x019dbee9, 0x001059b0}}, Y: Field{[10]uint32{0x02ed541c, 0x008dbadf, 0x001f8abc, 0x00ff4e36, 0x02b80e11, 0x02cdd6b1, 0x02b4d29a, 0x01aa9a4c, 0x025c5fae, 0x0018b141}}},
+ {X: Field{[10]uint32{0x01a74899, 0x02ef82a1, 0x03f310a2, 0x021abe38, 0x02bbbc66, 0x034f4be5, 0x00511a87, 0x03d529a7, 0x03ebb112, 0x002c5d59}}, Y: Field{[10]uint32{0x009f52c2, 0x03f5cb53, 0x00bb1bdb, 0x008719c7, 0x03a69367, 0x02e24db7, 0x03fc6934, 0x02f952b8, 0x03413788, 0x003d99d8}}},
+ {X: Field{[10]uint32{0x028095a5, 0x00ae2a6f, 0x0210212c, 0x02141408, 0x01a6df06, 0x00d44c4c, 0x01d81fdf, 0x01fcd022, 0x01152ab9, 0x00334ad9}}, Y: Field{[10]uint32{0x038f6a53, 0x024b8c79, 0x00bb45f4, 0x0212e1c0, 0x0322afff, 0x03513408, 0x02e40c72, 0x0064d457, 0x012f9ca4, 0x0033f9e5}}},
+ {X: Field{[10]uint32{0x0218229f, 0x00c825cd, 0x0374a447, 0x01e4ebab, 0x032086c9, 0x001eb031, 0x0241a729, 0x0050280c, 0x03c49f33, 0x000dd580}}, Y: Field{[10]uint32{0x0385e837, 0x0058defa, 0x00699668, 0x004e1120, 0x03de08ba, 0x00025d76, 0x01ddb463, 0x029dcf84, 0x00f66322, 0x001eedd0}}},
+ {X: Field{[10]uint32{0x03bb7432, 0x03c80bbb, 0x01632978, 0x0174b800, 0x017e1095, 0x00d0777a, 0x003c176f, 0x00f765b6, 0x03d4390a, 0x00040819}}, Y: Field{[10]uint32{0x039ba83e, 0x02068be0, 0x0322dafa, 0x03bdf9c1, 0x021d8b7e, 0x01aea77d, 0x0019f11b, 0x03330e9c, 0x03d54d28, 0x001f3db3}}},
+ {X: Field{[10]uint32{0x0263081d, 0x01d89737, 0x01d544fb, 0x00bfa30b, 0x01374ef4, 0x022d23eb, 0x003042cf, 0x0314ee9c, 0x0273e3fb, 0x0011d85f}}, Y: Field{[10]uint32{0x01d439e8, 0x020bce70, 0x022a0e47, 0x019e1f0f, 0x0350cbae, 0x010f2abf, 0x0040f07f, 0x02a56ecb, 0x00230c92, 0x0007e93d}}},
+ {X: Field{[10]uint32{0x03880f84, 0x0045d383, 0x034ca82e, 0x02f4c635, 0x0046b814, 0x038a2818, 0x017aac08, 0x01418a7d, 0x03af57f7, 0x000b10c6}}, Y: Field{[10]uint32{0x0209de50, 0x039631bc, 0x03adbb8e, 0x014ab162, 0x0262755a, 0x0214fd07, 0x00041089, 0x012ccb04, 0x03bc6857, 0x00376e79}}},
+ {X: Field{[10]uint32{0x0343d599, 0x015c3760, 0x00b41338, 0x012c35dd, 0x033f4df4, 0x026dc22a, 0x0386b1f7, 0x02db9066, 0x02438143, 0x0024658d}}, Y: Field{[10]uint32{0x02312f0d, 0x008aa2dd, 0x00049696, 0x00d243d1, 0x00021be3, 0x01ae1eef, 0x0391d682, 0x02834a7e, 0x02177171, 0x00240d3b}}},
+ {X: Field{[10]uint32{0x00b7754e, 0x013dfdf1, 0x02ddda4a, 0x0164ac05, 0x02028718, 0x015a0ec1, 0x00d42db9, 0x01b1ee0e, 0x0201af65, 0x002fca30}}, Y: Field{[10]uint32{0x0345d109, 0x02db7ce8, 0x00e20c50, 0x016ab0c8, 0x01ce6ffb, 0x01aac1a0, 0x0266c2f4, 0x00434aa2, 0x0304dda5, 0x0002ef53}}},
+ {X: Field{[10]uint32{0x0118b137, 0x02d3cd65, 0x035a1bab, 0x00b296ba, 0x031aa426, 0x01663902, 0x01d531bf, 0x0097d138, 0x03860218, 0x003f2b1c}}, Y: Field{[10]uint32{0x02e67b64, 0x03fda154, 0x005936ff, 0x03fa1f9f, 0x037dcca7, 0x02e8dfbb, 0x032d1e41, 0x02fa87cf, 0x037a957b, 0x000ec65a}}},
+ {X: Field{[10]uint32{0x026e9331, 0x0270775c, 0x01982302, 0x0326d1fb, 0x018ad89c, 0x0119fe02, 0x01f0278e, 0x03864850, 0x01dfcaae, 0x00273fa8}}, Y: Field{[10]uint32{0x00db211d, 0x00051ac6, 0x01f470b1, 0x03056dd7, 0x0096a071, 0x01421b8c, 0x010b6469, 0x03b8163f, 0x024e7f30, 0x001cb607}}},
+ {X: Field{[10]uint32{0x021334da, 0x019bcd1a, 0x00e201e9, 0x014666e6, 0x00455c51, 0x00a00b0c, 0x01c7f21f, 0x014f1e59, 0x03421235, 0x0015234f}}, Y: Field{[10]uint32{0x016418ae, 0x025283a5, 0x0278a426, 0x02c40c44, 0x0208c0af, 0x016e51a1, 0x0138eeb1, 0x000f4a25, 0x0225cebb, 0x000184ba}}},
+ {X: Field{[10]uint32{0x00295bc0, 0x022f759d, 0x01e22a6c, 0x015b18a3, 0x02ebd467, 0x02312643, 0x035c545e, 0x01309826, 0x019accf8, 0x00396f98}}, Y: Field{[10]uint32{0x01b08bf3, 0x00b8a81c, 0x01837a74, 0x033e6cd8, 0x0189e246, 0x02a162e4, 0x003aa74f, 0x006bdeb6, 0x00a57d84, 0x00190219}}},
+ {X: Field{[10]uint32{0x01ac668f, 0x013a6ba8, 0x02209e19, 0x0037dcd3, 0x03a26046, 0x008da323, 0x028f733d, 0x03b52bba, 0x033e3400, 0x002d5824}}, Y: Field{[10]uint32{0x005f9da3, 0x0303008b, 0x028861b1, 0x03d378a6, 0x00ac0975, 0x033c5eef, 0x02ab1826, 0x01e14e7f, 0x013d3133, 0x00150e3e}}},
+ {X: Field{[10]uint32{0x00cf60b1, 0x014aa887, 0x013c02c6, 0x025a30c5, 0x01dedf2d, 0x01d10cff, 0x03ecf7dd, 0x00f9e41d, 0x0297baca, 0x00087766}}, Y: Field{[10]uint32{0x0284797e, 0x001f3409, 0x038d917c, 0x0334d3d2, 0x01b851c4, 0x03683032, 0x019bbd7c, 0x02c2deda, 0x00e0e048, 0x00379b98}}},
+ {X: Field{[10]uint32{0x01934bbd, 0x03ca403f, 0x03f37bca, 0x01d12327, 0x012f1478, 0x026f68c0, 0x01b0a52f, 0x010e6d32, 0x020c6d39, 0x00173e95}}, Y: Field{[10]uint32{0x01b11b06, 0x03feae69, 0x01a3235a, 0x034cfc37, 0x0129d5a5, 0x03a4dbca, 0x0156998c, 0x02566fcd, 0x02630cc1, 0x0031e49e}}},
+ {X: Field{[10]uint32{0x026d4fc6, 0x00712da1, 0x02f49046, 0x039ed240, 0x016377af, 0x0253f325, 0x036204b3, 0x03350540, 0x01bb05ad, 0x00128ee5}}, Y: Field{[10]uint32{0x00e84f2f, 0x03402bea, 0x000232a0, 0x01ef7dc2, 0x018d6be4, 0x036e4e1f, 0x009179a4, 0x00793302, 0x02e2f1bd, 0x0035678f}}},
+ {X: Field{[10]uint32{0x01f4671f, 0x012dd94d, 0x03d4a81c, 0x002b736c, 0x03404edb, 0x03741bc5, 0x0006b7ba, 0x01a7244f, 0x03130b4c, 0x00331268}}, Y: Field{[10]uint32{0x007bc278, 0x015ea25a, 0x011b24dd, 0x0054b1ea, 0x02ba4837, 0x034dd564, 0x036c1943, 0x01497abc, 0x02ecc35e, 0x0012f5c8}}},
+ {X: Field{[10]uint32{0x00146d98, 0x00993335, 0x03d3740b, 0x0300637c, 0x00e07fda, 0x0362d3b8, 0x00f4f900, 0x029a7673, 0x005a7426, 0x00275d42}}, Y: Field{[10]uint32{0x00c4b0a9, 0x01b8f08b, 0x01ae6a4f, 0x03a4fe50, 0x01ce174a, 0x0392519f, 0x0372f44d, 0x02ccb411, 0x0253de04, 0x00016644}}},
+ {X: Field{[10]uint32{0x03210fb8, 0x02c341a0, 0x00d18b95, 0x003beb48, 0x02caa87c, 0x027c7864, 0x0312cf5d, 0x036b74ba, 0x00df737b, 0x0037f419}}, Y: Field{[10]uint32{0x0103805a, 0x0206e4a4, 0x0122613d, 0x0264fab8, 0x019f3172, 0x02404bf5, 0x00b1d2b8, 0x0234cc14, 0x003da5bf, 0x001467e2}}},
+ {X: Field{[10]uint32{0x007eaf9a, 0x006040a0, 0x012e3bf6, 0x0209a170, 0x001cf205, 0x0198c62f, 0x009013ea, 0x01b0d758, 0x035cd235, 0x000ad428}}, Y: Field{[10]uint32{0x01c76335, 0x012aeac7, 0x000f6ce7, 0x00790d4e, 0x02fdf424, 0x026d60a7, 0x01f5a77d, 0x03bbfae0, 0x011d303a, 0x0001f42d}}},
+ {X: Field{[10]uint32{0x005abbc7, 0x0207ea1a, 0x030c3704, 0x03ccc09f, 0x020f3202, 0x01673517, 0x02e2a594, 0x01d79f1d, 0x034b2cf1, 0x00389ba3}}, Y: Field{[10]uint32{0x02c2013a, 0x03dcbf0e, 0x02c0f194, 0x0389183a, 0x01716e5f, 0x025f0d37, 0x00767029, 0x0145854c, 0x03baaa0d, 0x001320b9}}},
+ {X: Field{[10]uint32{0x010f87fb, 0x034d20d7, 0x00959b46, 0x0147e097, 0x031fd90e, 0x039e3701, 0x0184057c, 0x03615da9, 0x037d54f4, 0x001640f6}}, Y: Field{[10]uint32{0x029e99c8, 0x00200447, 0x020f3816, 0x01028637, 0x03febf94, 0x034635bd, 0x00003329, 0x0046791f, 0x03d3e9ce, 0x0031578b}}},
+ {X: Field{[10]uint32{0x0125e9c1, 0x0254f513, 0x00204fde, 0x03b8a2e6, 0x021040e6, 0x00d4906d, 0x03881e96, 0x02a0b722, 0x02cd0342, 0x0012eec3}}, Y: Field{[10]uint32{0x00b0ef04, 0x006a320b, 0x02335821, 0x03a6d134, 0x00082e97, 0x0013a1e1, 0x02bee8d6, 0x0116dd4a, 0x00900f34, 0x00004bac}}},
+ {X: Field{[10]uint32{0x03c4e8d2, 0x01543e52, 0x0175b647, 0x01f506e5, 0x02702996, 0x034c9e78, 0x026eb38f, 0x02fe5f1b, 0x015aae87, 0x00012891}}, Y: Field{[10]uint32{0x03936074, 0x0255541c, 0x01c474a5, 0x008be718, 0x0309af34, 0x009d85e3, 0x012bea1e, 0x02fb98b5, 0x02c4ffe3, 0x00168d02}}},
+ {X: Field{[10]uint32{0x03477623, 0x032be1d4, 0x004ad1de, 0x02f77389, 0x0394470a, 0x001ed4c3, 0x00329c4c, 0x0066a953, 0x028dc8ca, 0x003c21b5}}, Y: Field{[10]uint32{0x00bdbd08, 0x00c25c6d, 0x03d8020d, 0x028a022b, 0x034d9e8b, 0x03121a6a, 0x03e4161c, 0x01abc596, 0x01d384a1, 0x00244712}}},
+ {X: Field{[10]uint32{0x03ba856c, 0x027e486d, 0x00cb4c98, 0x03dca5e2, 0x01d4b7cd, 0x00257c6d, 0x0253f912, 0x01b13892, 0x037e83b7, 0x0013c6c5}}, Y: Field{[10]uint32{0x0180eaf2, 0x0111c15f, 0x03811e10, 0x01a43702, 0x0399debb, 0x02ee54d2, 0x03dc2ff5, 0x02426bf0, 0x004eb060, 0x002955a3}}},
+ {X: Field{[10]uint32{0x03db5823, 0x00d0c0e5, 0x0154c765, 0x039fe99e, 0x01c4fb5a, 0x02211de3, 0x012fcbc0, 0x0391688f, 0x009929a7, 0x003aea1e}}, Y: Field{[10]uint32{0x01cbf68f, 0x00085e8b, 0x02afee73, 0x02985c92, 0x02801b26, 0x03c0ebe7, 0x03c46b47, 0x00245c27, 0x0329b357, 0x0039be31}}},
+ {X: Field{[10]uint32{0x002282c2, 0x008ed8ea, 0x02e7d877, 0x00e62731, 0x03130ee5, 0x01111567, 0x01580844, 0x02969e4b, 0x031334c9, 0x0037c45e}}, Y: Field{[10]uint32{0x016f7120, 0x03959054, 0x035a8c9b, 0x0175388c, 0x001a2fc5, 0x02954447, 0x02c5492e, 0x00f144ab, 0x02578eea, 0x003761f2}}},
+ {X: Field{[10]uint32{0x02ee82c5, 0x00c871b9, 0x01a68621, 0x0392ea80, 0x021f5768, 0x03d7da81, 0x02eaa1bd, 0x02ae200d, 0x003b3e68, 0x0035dd55}}, Y: Field{[10]uint32{0x0081436e, 0x00ea7b86, 0x02e18049, 0x01184141, 0x0027a2bf, 0x01065fe7, 0x02e7a26c, 0x01ce60f3, 0x030547c9, 0x001c0886}}},
+ {X: Field{[10]uint32{0x0178515d, 0x00bfafd1, 0x024c7148, 0x01fff7c1, 0x025e006f, 0x02335632, 0x005c6116, 0x006b96af, 0x01d55a23, 0x0029fc43}}, Y: Field{[10]uint32{0x003c13b0, 0x025ea79c, 0x0031eb47, 0x03c835a7, 0x01b2c24a, 0x007664e6, 0x025eb38d, 0x025a5388, 0x03a7b66b, 0x00124a8c}}},
+ {X: Field{[10]uint32{0x020120ec, 0x00dba718, 0x0205b05d, 0x02ce04b6, 0x020801c6, 0x01add211, 0x0336c86c, 0x02af6444, 0x01ef3119, 0x0031e551}}, Y: Field{[10]uint32{0x03c28718, 0x00813774, 0x00382bd7, 0x0313c485, 0x00738a33, 0x01f7a81b, 0x0073f8ef, 0x03ab9145, 0x00db95b6, 0x0009323f}}},
+ {X: Field{[10]uint32{0x02c2cb11, 0x020f8314, 0x006ec8e7, 0x0359a888, 0x03afa14d, 0x03884128, 0x0043ba29, 0x02223d7e, 0x035e744f, 0x000262ea}}, Y: Field{[10]uint32{0x00b94df6, 0x030c34af, 0x03cbe0b2, 0x03518dab, 0x02a7abae, 0x0051af35, 0x01d929b8, 0x01fb6314, 0x019fe5e8, 0x0020ed5a}}},
+ {X: Field{[10]uint32{0x00ac586e, 0x01d4bbf7, 0x00110547, 0x0212b099, 0x0160d84a, 0x00e77ffd, 0x0213053d, 0x02912b20, 0x00287b6f, 0x001b738a}}, Y: Field{[10]uint32{0x0237ed66, 0x03f18a78, 0x00a5cadc, 0x02654d5e, 0x00c79be3, 0x00197469, 0x032fa8dd, 0x0033116a, 0x022ab9d6, 0x000787ad}}},
+ {X: Field{[10]uint32{0x023dfa83, 0x02c2b398, 0x030c1b7f, 0x037423db, 0x03db06a9, 0x02c92b63, 0x02b091b5, 0x01cf24c1, 0x0259287a, 0x00038e1a}}, Y: Field{[10]uint32{0x005b34e6, 0x02582a74, 0x00ed6852, 0x008508a1, 0x01c0d3b2, 0x0385bf35, 0x024ce899, 0x01929798, 0x03da663b, 0x00129f9c}}},
+ {X: Field{[10]uint32{0x024fe4d5, 0x03aa89fa, 0x0118004b, 0x0060989b, 0x00cea0a3, 0x02e550eb, 0x00283fc9, 0x02f8c663, 0x0382e62f, 0x0023f7fd}}, Y: Field{[10]uint32{0x00086675, 0x008b4aab, 0x00708c52, 0x007d0c5f, 0x03a4f530, 0x0041fa21, 0x03ed6508, 0x03656d9c, 0x00719fe0, 0x003fbe3d}}},
+ {X: Field{[10]uint32{0x012eaa37, 0x0381108a, 0x01089a10, 0x0310d722, 0x0136ed1c, 0x03a9593a, 0x03bb8b84, 0x02c52006, 0x03ae7842, 0x00132424}}, Y: Field{[10]uint32{0x025298dd, 0x02542829, 0x03426ea2, 0x00afe169, 0x03864236, 0x03a4d5bd, 0x02c0903f, 0x0117eb96, 0x033493d2, 0x000b5a0c}}},
+ {X: Field{[10]uint32{0x03103a1b, 0x01b56e8c, 0x00f2fe86, 0x031bf5db, 0x01056318, 0x0381ca8d, 0x02b80f9b, 0x014aa764, 0x00c55c5c, 0x0033018d}}, Y: Field{[10]uint32{0x007f0b32, 0x03c2c234, 0x01e887e8, 0x01dc6da6, 0x004004aa, 0x01ff2180, 0x0236eb08, 0x02da79b4, 0x0141b13c, 0x001d42df}}},
+ {X: Field{[10]uint32{0x03918255, 0x01bdc78e, 0x026569a5, 0x03b33fdd, 0x011d53c7, 0x033292b6, 0x0133f5f9, 0x01eb162f, 0x027341fa, 0x0025d269}}, Y: Field{[10]uint32{0x00916068, 0x01b3b61a, 0x00d870ec, 0x01a73e96, 0x025e68fd, 0x038df676, 0x012a2aaf, 0x031f59da, 0x01c1009d, 0x002da17c}}},
+ {X: Field{[10]uint32{0x017d8e75, 0x00dded1a, 0x011bc9e0, 0x014dcaf6, 0x03a25bd2, 0x01f682c6, 0x0257fdcb, 0x018bc816, 0x00efb578, 0x002c12af}}, Y: Field{[10]uint32{0x01e168f6, 0x01405286, 0x03d4278b, 0x02bf6a39, 0x0262dcb8, 0x0362e6ef, 0x01b58690, 0x012f8d22, 0x026466ad, 0x001411e6}}},
+ {X: Field{[10]uint32{0x01c78902, 0x0093a151, 0x01768226, 0x02df2012, 0x02295059, 0x0217c035, 0x023b3957, 0x03efb7c6, 0x01e85481, 0x003447df}}, Y: Field{[10]uint32{0x035c3416, 0x00cd961b, 0x039c3173, 0x032d1200, 0x02b48928, 0x00499a60, 0x03369d81, 0x004a4069, 0x0368be0c, 0x0007458c}}},
+ {X: Field{[10]uint32{0x0356fd4b, 0x02e202d5, 0x02b90970, 0x0182ca6c, 0x02fd6151, 0x00ed8f2c, 0x03225af7, 0x031e9024, 0x01f465c4, 0x00288719}}, Y: Field{[10]uint32{0x0345ecfe, 0x01aa8c24, 0x0186c766, 0x03897de9, 0x0157f1e3, 0x001228a5, 0x01e34767, 0x039839f7, 0x0389394d, 0x001a689a}}},
+ {X: Field{[10]uint32{0x02497a1f, 0x03bfb85a, 0x036a4fde, 0x022c61b1, 0x0036ccda, 0x029633b4, 0x003d3999, 0x00d83a49, 0x02fbb080, 0x0014f189}}, Y: Field{[10]uint32{0x002ac9b7, 0x01f86ddd, 0x036bbeda, 0x01eb1011, 0x0008264d, 0x00cd85aa, 0x01106fb9, 0x03fc7946, 0x000862a7, 0x002b6498}}},
+ {X: Field{[10]uint32{0x00e6ff0e, 0x005b139d, 0x02870601, 0x00cc46dc, 0x0211d969, 0x01d07c42, 0x0364fcc8, 0x00eb6340, 0x01871b2a, 0x0033d9ed}}, Y: Field{[10]uint32{0x02b68422, 0x01b4a748, 0x03cae6d3, 0x01fc966a, 0x027be653, 0x033878c2, 0x00ac068c, 0x035d3bda, 0x037c10cc, 0x000b258e}}},
+ {X: Field{[10]uint32{0x010b4bc7, 0x0335a9b2, 0x018d731e, 0x00a77a7d, 0x01364288, 0x00d33783, 0x01a89a4b, 0x021c00a7, 0x02d808cc, 0x00014085}}, Y: Field{[10]uint32{0x01e38b21, 0x0367e9d2, 0x01e0c123, 0x01f99549, 0x0236f65d, 0x02944b56, 0x02fce322, 0x01224637, 0x01f096bc, 0x00248307}}},
+ {X: Field{[10]uint32{0x03d1aef3, 0x019b0f64, 0x001a2677, 0x02f789bb, 0x033d6000, 0x03de42bf, 0x00cc62da, 0x01beedec, 0x0194f468, 0x00076115}}, Y: Field{[10]uint32{0x0134d260, 0x0027e7cc, 0x0173425c, 0x00db35aa, 0x0092450b, 0x0211f71b, 0x01340351, 0x03680bbc, 0x03a6bd9d, 0x003ab846}}},
+ {X: Field{[10]uint32{0x024785e1, 0x014aede7, 0x030c3d5c, 0x0295bdf9, 0x012e7750, 0x01678aad, 0x027d5908, 0x02e5f41d, 0x0350b6c5, 0x00046b53}}, Y: Field{[10]uint32{0x00023b94, 0x018f6d6a, 0x027ac4e2, 0x011befdf, 0x011826e8, 0x00533e9c, 0x0152496f, 0x03671408, 0x02368725, 0x000b0aee}}},
+ {X: Field{[10]uint32{0x0149388c, 0x0090ac2f, 0x02e3d12b, 0x00965a75, 0x03f76ee4, 0x01820a87, 0x024a5198, 0x01cf84a6, 0x027cd723, 0x000d5a34}}, Y: Field{[10]uint32{0x0354fdb3, 0x031db561, 0x033daf04, 0x02360e73, 0x038eff10, 0x0042a395, 0x02356680, 0x01011c5b, 0x03a96d09, 0x00038db7}}},
+ {X: Field{[10]uint32{0x017801d7, 0x028b05fc, 0x038abafa, 0x01caf702, 0x0246310f, 0x01c01dd0, 0x02abb919, 0x02743174, 0x033545e0, 0x000ddcaa}}, Y: Field{[10]uint32{0x0278884e, 0x01001082, 0x03260053, 0x02be3b6d, 0x00775693, 0x022c04b8, 0x03a50cda, 0x031d18b5, 0x028ceae0, 0x000948a6}}},
+ {X: Field{[10]uint32{0x029274f2, 0x00153970, 0x0131fa13, 0x026747b8, 0x0244f3b2, 0x022e4eb4, 0x0224779c, 0x01c06b91, 0x024f72c4, 0x0020546c}}, Y: Field{[10]uint32{0x00bb6429, 0x035544ae, 0x00c9986e, 0x009134b9, 0x03734207, 0x0030a35d, 0x033fca05, 0x03586779, 0x030725ff, 0x001624e0}}},
+ {X: Field{[10]uint32{0x01539c9a, 0x00d25197, 0x034c8692, 0x0076489f, 0x001b57a8, 0x0394dc20, 0x00597050, 0x007e3183, 0x015ad410, 0x0011a921}}, Y: Field{[10]uint32{0x01e36b59, 0x034f9a22, 0x00864bee, 0x00917faa, 0x039517ad, 0x038bc82e, 0x00117ae0, 0x01c6578b, 0x01cf2111, 0x0023e99b}}},
+ {X: Field{[10]uint32{0x01803d16, 0x0224f185, 0x02d4f0fd, 0x017d3b38, 0x00efa7c4, 0x00e2f4a9, 0x0015001c, 0x013cf7bb, 0x01543e65, 0x0002e06f}}, Y: Field{[10]uint32{0x029d3e75, 0x00ae8053, 0x00c4a75d, 0x03f96a25, 0x032b3947, 0x03e4eda8, 0x00316228, 0x0269d8d1, 0x03aa3129, 0x000570fd}}},
+ {X: Field{[10]uint32{0x012e7706, 0x03572b40, 0x01faba5c, 0x03c933f2, 0x01423f10, 0x01356200, 0x038c0549, 0x00c93491, 0x021cf2a0, 0x000f85a6}}, Y: Field{[10]uint32{0x01389135, 0x008d5886, 0x020f9869, 0x012ff2a4, 0x03004d45, 0x01c02d2f, 0x0069075a, 0x02b1f14d, 0x03ddd814, 0x00081016}}},
+ {X: Field{[10]uint32{0x01a65956, 0x02f74b53, 0x02fdf534, 0x02e1510f, 0x03557f39, 0x0379866f, 0x027a1b8c, 0x02ccfc3d, 0x024ab161, 0x001d0a0f}}, Y: Field{[10]uint32{0x00b3df3a, 0x038da274, 0x03159bfe, 0x005c71de, 0x01380c17, 0x02205d13, 0x033ad2bc, 0x0170119d, 0x03e28978, 0x00088a5a}}},
+ {X: Field{[10]uint32{0x026b756e, 0x00f68e7a, 0x00092bde, 0x02d37a0a, 0x021a617f, 0x02de5539, 0x01da0a23, 0x02f27ed9, 0x0386cb76, 0x00189c55}}, Y: Field{[10]uint32{0x02c2db32, 0x017f6414, 0x0317d34a, 0x01608787, 0x00eec54d, 0x03e65444, 0x0163337b, 0x028540ed, 0x03e38829, 0x000f09ee}}},
+ {X: Field{[10]uint32{0x037c8aae, 0x0168001b, 0x01f739c5, 0x038b28d7, 0x002c93ae, 0x015659d0, 0x0336bc9d, 0x02e24e10, 0x0105db23, 0x00258800}}, Y: Field{[10]uint32{0x00a6ba26, 0x037e85e1, 0x03b19a2b, 0x03638ff4, 0x01ea41cd, 0x026197d2, 0x00307c5d, 0x00981320, 0x028d400a, 0x000c64a5}}},
+ {X: Field{[10]uint32{0x031d13fb, 0x0365a5ad, 0x01c313aa, 0x00d5506d, 0x01317875, 0x02fe2cb1, 0x0052fb5c, 0x0246c233, 0x0398bd26, 0x002f51dd}}, Y: Field{[10]uint32{0x03ddfc3b, 0x01f8502a, 0x0150b6be, 0x00e5299b, 0x0351978b, 0x03139eca, 0x01dae500, 0x0000cf08, 0x01c9a4ab, 0x002f8ad4}}},
+ {X: Field{[10]uint32{0x035289e7, 0x0270c151, 0x02b05903, 0x006bd4b6, 0x0070da10, 0x02ab19e2, 0x01490e83, 0x03e126ed, 0x0388e46f, 0x003e8524}}, Y: Field{[10]uint32{0x0067b2a7, 0x0080c2e2, 0x015e37f2, 0x03470613, 0x02c75af3, 0x03349a87, 0x032080ad, 0x0159d0ec, 0x037fa8d8, 0x00211555}}},
+ {X: Field{[10]uint32{0x0391ba90, 0x00dab80c, 0x00e86ff4, 0x00f11c80, 0x028ab50d, 0x01e069c2, 0x03bfae73, 0x03fec752, 0x03830af1, 0x00108a36}}, Y: Field{[10]uint32{0x03a270a7, 0x01c7632d, 0x01637d40, 0x03252d2b, 0x032413dd, 0x0066f4b8, 0x01560b64, 0x03c28600, 0x010ab0e6, 0x001176c7}}},
+ {X: Field{[10]uint32{0x0017c85c, 0x0187fcc2, 0x03d49f41, 0x026bf28a, 0x021dc3a3, 0x02da71a1, 0x0094c02e, 0x03d680f5, 0x0279fe0d, 0x002a5eac}}, Y: Field{[10]uint32{0x019bec7d, 0x00d72371, 0x022900e5, 0x0105ac72, 0x005d4b74, 0x0335b7bb, 0x032f99f7, 0x03785cf5, 0x00bff128, 0x001401b2}}},
+ {X: Field{[10]uint32{0x004c668f, 0x011199a4, 0x02b63f8d, 0x011544d7, 0x039f27dc, 0x0067ee8d, 0x01a3a1cc, 0x03198538, 0x00576bdc, 0x0030351b}}, Y: Field{[10]uint32{0x03215f58, 0x0024db72, 0x03a71f19, 0x00bd1fff, 0x013d1917, 0x024f1d82, 0x017d7ccf, 0x02c940b2, 0x00a30b28, 0x000e5ad8}}},
+ {X: Field{[10]uint32{0x01a8dbbd, 0x00cd8fec, 0x00e636de, 0x031b86e2, 0x020b7ae4, 0x01716f28, 0x01b8c2c2, 0x03e9f782, 0x03e04599, 0x001cf175}}, Y: Field{[10]uint32{0x007bc617, 0x005f689d, 0x01ea3faf, 0x037dbea3, 0x0309229a, 0x0310c759, 0x02986b00, 0x03590827, 0x008d558b, 0x000767b4}}},
+ {X: Field{[10]uint32{0x024827a7, 0x00f227b8, 0x03ab7bbf, 0x01958ab4, 0x00b4788c, 0x006805d4, 0x0097c6ef, 0x01210e36, 0x001da2ef, 0x0000dc12}}, Y: Field{[10]uint32{0x020fa7b1, 0x0390d71d, 0x02aaa190, 0x02d14e16, 0x01ccf794, 0x00003c3c, 0x004acc33, 0x00640476, 0x0076c205, 0x002a22ce}}},
+ {X: Field{[10]uint32{0x037807ec, 0x02206758, 0x01d54eda, 0x02fd926e, 0x02f2b68c, 0x00d1e42f, 0x01bb7d8d, 0x03c29267, 0x03033006, 0x000b72f8}}, Y: Field{[10]uint32{0x0290c1e1, 0x03d63dc6, 0x01bda5d6, 0x00f5613e, 0x02092cf4, 0x00fe8a35, 0x015de2df, 0x00ca7ae4, 0x02e3c7ab, 0x002e0ad1}}},
+ {X: Field{[10]uint32{0x017bb4b7, 0x0110bd80, 0x023c908a, 0x0193e3d0, 0x0144052b, 0x0093de96, 0x035d957c, 0x01171778, 0x00a916db, 0x003d17cf}}, Y: Field{[10]uint32{0x029b5a96, 0x01a39808, 0x03fc1dad, 0x03de042e, 0x015b4a0f, 0x03193798, 0x01d6a795, 0x0135b368, 0x002fb315, 0x001e777c}}},
+ {X: Field{[10]uint32{0x0387605e, 0x01fa5779, 0x02e934fe, 0x01af8ea6, 0x03ee1734, 0x01200954, 0x01c99bcc, 0x0159e919, 0x028bcad0, 0x0014032a}}, Y: Field{[10]uint32{0x0238370a, 0x01c318bc, 0x02a58f05, 0x0291fe08, 0x024e1bee, 0x00f77495, 0x019dccf7, 0x03235ab8, 0x02d075df, 0x0010211f}}},
+ {X: Field{[10]uint32{0x024c3aff, 0x017bb135, 0x01557c52, 0x021dbea1, 0x037bcd8b, 0x008ee24e, 0x0346191e, 0x018b156d, 0x0186a239, 0x000c158a}}, Y: Field{[10]uint32{0x00577a53, 0x00dd41e0, 0x01fe9373, 0x02622975, 0x00e19d8d, 0x02ed5519, 0x020c0347, 0x014e0c6d, 0x02be41c4, 0x00000b56}}},
+ {X: Field{[10]uint32{0x008e422e, 0x006383ad, 0x0078f63a, 0x00ada8c1, 0x01ec7238, 0x03879881, 0x013f690b, 0x01adca7b, 0x011a3252, 0x003da1f5}}, Y: Field{[10]uint32{0x01515704, 0x0384aadf, 0x01680211, 0x033a830b, 0x00f197e2, 0x00dac56f, 0x014da2ed, 0x013debf1, 0x033519c9, 0x003bf386}}},
+ {X: Field{[10]uint32{0x01ca505d, 0x022133e8, 0x01018472, 0x029f7a99, 0x0322199e, 0x0002b9fa, 0x00e207e5, 0x00d47327, 0x03f0d385, 0x00041298}}, Y: Field{[10]uint32{0x00239cc5, 0x02b12a0c, 0x0267ce05, 0x03a4cf4b, 0x00a6de0b, 0x028a8bb7, 0x031600a0, 0x002cf16b, 0x008750b2, 0x001a7086}}},
+ {X: Field{[10]uint32{0x0280fc6e, 0x02b268fa, 0x01c035e6, 0x02f50c0a, 0x02eb3d59, 0x03d34a56, 0x03963e2f, 0x023286af, 0x00994b7b, 0x00142598}}, Y: Field{[10]uint32{0x027287b1, 0x018eb7cc, 0x02519729, 0x029ef22b, 0x0256be56, 0x0152ba8f, 0x02116748, 0x0066c604, 0x01cd40d0, 0x00352162}}},
+ {X: Field{[10]uint32{0x00513c95, 0x033e23d5, 0x02a0dd22, 0x027f4721, 0x007ac22e, 0x02c3cb1f, 0x0388e85e, 0x0384d475, 0x02e794e5, 0x000c41b5}}, Y: Field{[10]uint32{0x03a2bca0, 0x02612f4b, 0x00dfadbf, 0x02320b3a, 0x004ad288, 0x0001ab86, 0x02849d84, 0x02330a64, 0x013c0456, 0x00301796}}},
+ {X: Field{[10]uint32{0x0059fdce, 0x0053db88, 0x01235e79, 0x010f79a0, 0x03d1081b, 0x00ee7973, 0x0376ac71, 0x02f73a13, 0x011c9977, 0x0013259f}}, Y: Field{[10]uint32{0x008968cd, 0x02f9457a, 0x010ee206, 0x000a8a3a, 0x00fcc10d, 0x00e971f7, 0x002cb098, 0x026dd057, 0x00b2a3e9, 0x0021991c}}},
+ {X: Field{[10]uint32{0x02781a52, 0x03fe440e, 0x032b2e4a, 0x000bfd78, 0x01b4027b, 0x03d63d8b, 0x00bbb7fb, 0x01dd0476, 0x0099ae8d, 0x00258c64}}, Y: Field{[10]uint32{0x03947389, 0x03717d59, 0x00ed422e, 0x0136de1f, 0x03d776eb, 0x02ee8bc2, 0x03148f8d, 0x00a1268e, 0x00740daf, 0x001b0440}}},
+ {X: Field{[10]uint32{0x00247ee7, 0x00c3e8d6, 0x028b3bdf, 0x00add65c, 0x02b97224, 0x016bd5bc, 0x017406d9, 0x01b3aa77, 0x032387a3, 0x001f24ee}}, Y: Field{[10]uint32{0x02989942, 0x03136667, 0x00e018f7, 0x03db8f59, 0x0017cb34, 0x02568389, 0x0201e168, 0x01f219b6, 0x02983348, 0x00087937}}},
+ {X: Field{[10]uint32{0x03f1e074, 0x02a46541, 0x01cddc3b, 0x02edf1b7, 0x01c764da, 0x021e8c8a, 0x01db1433, 0x005861b6, 0x020388de, 0x00319792}}, Y: Field{[10]uint32{0x03ca658b, 0x01266ef3, 0x0017bdaa, 0x030bf5e1, 0x0202137b, 0x0311707e, 0x0225a457, 0x016ca33a, 0x01430800, 0x003561b4}}},
+ {X: Field{[10]uint32{0x00d674d5, 0x0285f619, 0x00f354d9, 0x02c6a042, 0x00381b1f, 0x0076346e, 0x01a380c7, 0x021a4af3, 0x012490c2, 0x0036256a}}, Y: Field{[10]uint32{0x03de17f5, 0x013dd61f, 0x0373d980, 0x028ac02b, 0x01c7cf2b, 0x02ef3496, 0x02f5728d, 0x0004fde7, 0x02250a63, 0x0034c2f6}}},
+ {X: Field{[10]uint32{0x03def988, 0x03fc7857, 0x0113227b, 0x00e8f1fc, 0x00c892e2, 0x018f47dc, 0x03fa1640, 0x02e6efeb, 0x003a5b36, 0x0024119f}}, Y: Field{[10]uint32{0x029b15a7, 0x0320207a, 0x01568946, 0x01dc78cf, 0x02205225, 0x0288ab5d, 0x03ccb41b, 0x01f66cf3, 0x01914024, 0x0013b1c0}}},
+ {X: Field{[10]uint32{0x02294c7e, 0x032b5d0f, 0x019810ab, 0x01756369, 0x03b4d38e, 0x03d4fbf1, 0x03268f78, 0x000969eb, 0x01630d0e, 0x0017340f}}, Y: Field{[10]uint32{0x002dfb3e, 0x002dc3ed, 0x007811a1, 0x010cd376, 0x00f168e0, 0x03938392, 0x01510cfe, 0x035072ac, 0x036e5517, 0x0030dca7}}},
+ {X: Field{[10]uint32{0x007e964b, 0x00028943, 0x02988fc7, 0x000be601, 0x008bf69c, 0x03cd88a5, 0x01d7629b, 0x03173a8f, 0x009c652b, 0x00144c31}}, Y: Field{[10]uint32{0x032cf563, 0x0070855b, 0x0336b738, 0x008c6af8, 0x03a027ef, 0x01e910c4, 0x01f98c7b, 0x036f4c26, 0x02194bc9, 0x001f91b8}}},
+ {X: Field{[10]uint32{0x02dd34da, 0x011de5a3, 0x01dbcc54, 0x0157969f, 0x02261a31, 0x02e49204, 0x01473066, 0x0353a44e, 0x002a33b8, 0x00256267}}, Y: Field{[10]uint32{0x026b7cb3, 0x03166476, 0x00a41d4d, 0x02d24e82, 0x01bac79f, 0x02f83411, 0x027277b5, 0x000a4a7a, 0x02998424, 0x002259ef}}},
+ {X: Field{[10]uint32{0x0089745f, 0x01b903bd, 0x026049dd, 0x00e0b9d7, 0x036e55d2, 0x006137f3, 0x00650c88, 0x03a4fdf1, 0x00138cb3, 0x0000e4a0}}, Y: Field{[10]uint32{0x00006a52, 0x00251c7e, 0x03799587, 0x0011bed0, 0x02056bdf, 0x00bc9556, 0x01bd6d47, 0x03ce8722, 0x0298b897, 0x001c2c97}}},
+ {X: Field{[10]uint32{0x0380b451, 0x0223f0cb, 0x03997fa3, 0x0034f3f1, 0x01ba7207, 0x03fc4223, 0x010497cb, 0x02fb7392, 0x0331b5fd, 0x00291f84}}, Y: Field{[10]uint32{0x01576b19, 0x00999baa, 0x024ecec2, 0x01194884, 0x00062447, 0x028f32e7, 0x006c75bd, 0x00119502, 0x00befff0, 0x0032952e}}},
+ {X: Field{[10]uint32{0x00cfb96a, 0x002fb478, 0x036c82d5, 0x032ed237, 0x03f1b325, 0x0020f3f4, 0x03bb1344, 0x01d4a0f2, 0x008e16c5, 0x00330698}}, Y: Field{[10]uint32{0x00cc6734, 0x0082a0ce, 0x03ab5551, 0x021ec092, 0x03591b8f, 0x02382484, 0x03b0c987, 0x02c89104, 0x024467d9, 0x0016e2b2}}},
+ {X: Field{[10]uint32{0x03fc3cea, 0x003db0b0, 0x0191a5d7, 0x0075a6d6, 0x03b7438d, 0x036cef78, 0x024d1df2, 0x02ebadeb, 0x03c7591e, 0x00360d52}}, Y: Field{[10]uint32{0x02ab5ad3, 0x019bc227, 0x03a31fe2, 0x031ca601, 0x017d95af, 0x01d646fb, 0x00227039, 0x03c0fca5, 0x02936765, 0x003bf225}}},
+ {X: Field{[10]uint32{0x01def8aa, 0x038f68a3, 0x01d6ff2a, 0x007138ff, 0x03481ee2, 0x03681d91, 0x02ef42e6, 0x01d02c84, 0x0163ceb2, 0x001ab072}}, Y: Field{[10]uint32{0x01164281, 0x02fcfa39, 0x00d9fb1b, 0x035c2844, 0x00c52140, 0x017c80c7, 0x0053c94f, 0x016b8915, 0x00171b6d, 0x00013f22}}},
+ {X: Field{[10]uint32{0x0318b42d, 0x034b91db, 0x035c4ddd, 0x00f42803, 0x0274d4da, 0x01e3ecdb, 0x00474697, 0x010523e7, 0x0359b52e, 0x002f84c3}}, Y: Field{[10]uint32{0x03c47069, 0x0263707e, 0x01516093, 0x02e51912, 0x01c5b9f8, 0x030737d8, 0x02a7d761, 0x02962808, 0x01e2f739, 0x0005b736}}},
+ {X: Field{[10]uint32{0x0063bd2f, 0x031e79b0, 0x00f3ffc3, 0x03e47e7d, 0x0124ee71, 0x018996ec, 0x0356e599, 0x012955a2, 0x00cc3986, 0x001a176e}}, Y: Field{[10]uint32{0x02b50f29, 0x02eb9721, 0x03493037, 0x02fe69d7, 0x0122b396, 0x016f8c08, 0x0333b8e0, 0x00bdf0b4, 0x01418e5b, 0x001cc29c}}},
+ {X: Field{[10]uint32{0x01d743ae, 0x019bb995, 0x024eaaad, 0x02bf3c3b, 0x030f31f9, 0x026f0626, 0x025e564b, 0x01306838, 0x03f389f7, 0x000e7d07}}, Y: Field{[10]uint32{0x026c8622, 0x03948375, 0x018d88e1, 0x02cbb7e7, 0x0126fdae, 0x00ce3dce, 0x030aad09, 0x013fb94f, 0x036de25d, 0x003efa83}}},
+ {X: Field{[10]uint32{0x0020ed1f, 0x02c82313, 0x01f28b12, 0x018b2fd6, 0x03c29b1b, 0x0120ef03, 0x00737b3d, 0x0258e665, 0x017441bc, 0x0035e9a5}}, Y: Field{[10]uint32{0x025ba8cb, 0x0358c6c1, 0x024ceef2, 0x027d07e0, 0x0291eea2, 0x02e68f41, 0x007ca251, 0x00563a70, 0x02dacdf8, 0x00339138}}},
+ {X: Field{[10]uint32{0x01eaec9a, 0x010e57b0, 0x030ba491, 0x00717f7c, 0x0022f598, 0x00acde21, 0x02867934, 0x032edcaf, 0x01609139, 0x00216eb4}}, Y: Field{[10]uint32{0x0314dfec, 0x01a92173, 0x038db419, 0x031e10e0, 0x02362055, 0x038ff8fa, 0x01c57e88, 0x01dacac9, 0x006129e5, 0x00267f35}}},
+ {X: Field{[10]uint32{0x03ea49e5, 0x007ae008, 0x0372d51a, 0x03f90842, 0x0174d986, 0x03c5f682, 0x002ffbe8, 0x0285648f, 0x02c4d428, 0x0008e02e}}, Y: Field{[10]uint32{0x02d6f54b, 0x02ac1d17, 0x0065e5a6, 0x016f4824, 0x033ca101, 0x013512ee, 0x01e38bfc, 0x031fd791, 0x0313fde4, 0x003d2bdc}}},
+ {X: Field{[10]uint32{0x024f9cf2, 0x030a7f4d, 0x00e9e46f, 0x03ee253d, 0x0397c1ac, 0x0088480a, 0x019108df, 0x0077438d, 0x0359b7d6, 0x00301584}}, Y: Field{[10]uint32{0x027d83dd, 0x0004c9f4, 0x0092e029, 0x000f3b3d, 0x0275b161, 0x01433acc, 0x03ea5ff3, 0x02a7d8b3, 0x01801c72, 0x000f0ddf}}},
+ {X: Field{[10]uint32{0x020c2a06, 0x010e3124, 0x00fc64ed, 0x00102962, 0x0276481c, 0x026ee96c, 0x01181d30, 0x013cabae, 0x01c10b8f, 0x001cb126}}, Y: Field{[10]uint32{0x02b1ce53, 0x000490ec, 0x01e7a72d, 0x03fecc11, 0x02f05ff8, 0x03e0af06, 0x034867b1, 0x014c50a8, 0x008e6082, 0x001b2653}}},
+ {X: Field{[10]uint32{0x03cf477d, 0x0081153f, 0x026f884e, 0x0272d77c, 0x0166e02c, 0x001bfad1, 0x038e2f3f, 0x018827e3, 0x00be02b6, 0x00237a13}}, Y: Field{[10]uint32{0x002a34a6, 0x002e64dd, 0x03379641, 0x010a8067, 0x02ac9e85, 0x028edeb0, 0x0348e986, 0x01f621a4, 0x0280c4d0, 0x0031fcbd}}},
+ {X: Field{[10]uint32{0x001710f2, 0x00b44b90, 0x034427d0, 0x03b98f17, 0x029a2d02, 0x021ae74b, 0x02c80488, 0x035d8b96, 0x01d86581, 0x0036ffb2}}, Y: Field{[10]uint32{0x00daafea, 0x0221a370, 0x03c90004, 0x02a26284, 0x01b46496, 0x00199236, 0x005acb59, 0x02c6b2a2, 0x03f9827b, 0x001b9847}}},
+ {X: Field{[10]uint32{0x01d0453d, 0x015bc8f4, 0x037f9f24, 0x00a8a455, 0x039588dc, 0x00aab9ac, 0x010ade78, 0x03b746cf, 0x01f86099, 0x00277594}}, Y: Field{[10]uint32{0x02715ebd, 0x0282c17b, 0x018455f5, 0x017e6184, 0x03cd3f90, 0x03edb5dc, 0x00be81ad, 0x02183806, 0x0217f0d7, 0x0013db6d}}},
+ {X: Field{[10]uint32{0x03d66a15, 0x00982fe6, 0x033d1926, 0x03cbe8bc, 0x02356445, 0x039823e5, 0x037a885e, 0x0378d79d, 0x021ac869, 0x000bf605}}, Y: Field{[10]uint32{0x01307f25, 0x02d3203f, 0x03daa7c6, 0x028825e1, 0x0398c6e7, 0x00b798d1, 0x00163eb1, 0x00b64ad9, 0x01e9674c, 0x00074b08}}},
+ {X: Field{[10]uint32{0x029dc391, 0x03a2a128, 0x038a8495, 0x0197e21d, 0x008b6d87, 0x02503b7d, 0x01538ce4, 0x0016c8fc, 0x038924f5, 0x000fc96f}}, Y: Field{[10]uint32{0x008164f2, 0x011ca5cb, 0x03c30afd, 0x01527715, 0x00344382, 0x00b184ee, 0x02b02525, 0x001e0862, 0x01830e7e, 0x001c094d}}},
+ {X: Field{[10]uint32{0x00773f0b, 0x0387b89b, 0x02b47ff2, 0x01c2d57a, 0x00467dc7, 0x021163cc, 0x033d2fe2, 0x008d13e3, 0x0359d5f7, 0x000f03c0}}, Y: Field{[10]uint32{0x02db33c7, 0x00a72a07, 0x02c7b127, 0x00c3917c, 0x00b9c250, 0x01189949, 0x0050d787, 0x0067116b, 0x0239459f, 0x0012560e}}},
+ {X: Field{[10]uint32{0x02b73a15, 0x0170c20d, 0x00dd73be, 0x01c3ec5c, 0x0087e38d, 0x0283764f, 0x0045855f, 0x0177c8d8, 0x0266ec1b, 0x00158e01}}, Y: Field{[10]uint32{0x019921a7, 0x0387c29d, 0x03b117bc, 0x024e0a47, 0x00b5cbbf, 0x022be3d8, 0x0291252c, 0x02b1aa6a, 0x00f0b210, 0x001c01a4}}},
+ {X: Field{[10]uint32{0x009298bd, 0x01b4bea7, 0x006738bc, 0x0007ef8f, 0x0225f902, 0x03cff11f, 0x02b228aa, 0x017dffb1, 0x010b0b9a, 0x001c729c}}, Y: Field{[10]uint32{0x039abc89, 0x027bf8cb, 0x003f8fcc, 0x028d4789, 0x02c759bc, 0x01c0566b, 0x00912871, 0x002266c6, 0x028dc075, 0x001f7494}}},
+ {X: Field{[10]uint32{0x01264575, 0x00b42cd7, 0x01102511, 0x02ba09f2, 0x006ed87f, 0x02386f8f, 0x02ec20f9, 0x021439f0, 0x003cc938, 0x001e377b}}, Y: Field{[10]uint32{0x01680321, 0x01b7b6cf, 0x01ddfd48, 0x018fc5e6, 0x0022b9c1, 0x01bc6798, 0x0185048d, 0x01014321, 0x0151766a, 0x000641ca}}},
+ {X: Field{[10]uint32{0x034ed70b, 0x01aacf1e, 0x0267f322, 0x0127b40f, 0x02058132, 0x00f6b0a6, 0x02709509, 0x0215fa31, 0x02fd8852, 0x0026abae}}, Y: Field{[10]uint32{0x0305fffb, 0x033b34d1, 0x0271c7b9, 0x033101ae, 0x032457bd, 0x00f134bc, 0x01e13bca, 0x02f54419, 0x02ccb541, 0x00231a8a}}},
+ {X: Field{[10]uint32{0x032f79e2, 0x00af96f6, 0x01bcc6d1, 0x01a882ae, 0x01a3096a, 0x02e6fc4e, 0x016c7b28, 0x0203f768, 0x02749411, 0x00161bb2}}, Y: Field{[10]uint32{0x03488d71, 0x039be4e8, 0x02ad5bfd, 0x03795805, 0x020ac4bf, 0x009a887a, 0x005a7f80, 0x002796bf, 0x01123616, 0x0002cec7}}},
+ {X: Field{[10]uint32{0x0150ddf8, 0x00e060e3, 0x0397ee36, 0x02c4dab3, 0x03c0e0b6, 0x0330fb98, 0x03ed7d40, 0x0378b21b, 0x003edbe4, 0x000615ef}}, Y: Field{[10]uint32{0x00275363, 0x0293d923, 0x01835119, 0x02df3168, 0x028a7fbd, 0x016119d6, 0x0359c673, 0x022337b1, 0x007be7a5, 0x003a97a0}}},
+ {X: Field{[10]uint32{0x00e5b01a, 0x0361599e, 0x037ba863, 0x02589fd7, 0x03642067, 0x032e204e, 0x022a6cdb, 0x00b18800, 0x03440757, 0x002a9331}}, Y: Field{[10]uint32{0x03a2f836, 0x03c267e3, 0x008bff39, 0x0236bdf8, 0x01a4a97b, 0x00e08698, 0x03b7f9bb, 0x00912a68, 0x02c9d259, 0x002ea5a6}}},
+ {X: Field{[10]uint32{0x004f36aa, 0x01368d48, 0x02179e79, 0x01af2c9d, 0x030d6f73, 0x010f6173, 0x005fad0a, 0x010d9da2, 0x00095917, 0x0011623b}}, Y: Field{[10]uint32{0x00c7c62e, 0x021bd2c3, 0x01c3702f, 0x024a9532, 0x03a95116, 0x0372eb8e, 0x01c89d10, 0x02071bb8, 0x027ecdc6, 0x003ee0d7}}},
+ {X: Field{[10]uint32{0x0080653c, 0x02cc447a, 0x00a4eca3, 0x00881408, 0x0025ce66, 0x00bdec7f, 0x0233f227, 0x017e1a67, 0x01037a3e, 0x00219eb3}}, Y: Field{[10]uint32{0x01764646, 0x01fceb49, 0x03946d8d, 0x013975b3, 0x02639cd9, 0x03d91903, 0x009ba3cf, 0x03e414c9, 0x02c757d3, 0x003a444a}}},
+ {X: Field{[10]uint32{0x02df370b, 0x03f576c9, 0x03c13318, 0x013d185b, 0x00b52781, 0x026b8ef5, 0x02e46630, 0x007708a2, 0x0169e4f8, 0x00178290}}, Y: Field{[10]uint32{0x0140d001, 0x03e2b74c, 0x00ca9e58, 0x009232cd, 0x00c38cd6, 0x02eb2b53, 0x022e32c3, 0x024d3afb, 0x01a8fc23, 0x0016f4cd}}},
+ {X: Field{[10]uint32{0x0101c0f6, 0x02d3ffec, 0x00263663, 0x028eb7fa, 0x01542a55, 0x00aa0bc5, 0x01b2e578, 0x0090606d, 0x006939df, 0x0024014d}}, Y: Field{[10]uint32{0x03e3d991, 0x007a944d, 0x01476e3f, 0x01e0e86c, 0x01744607, 0x0270e978, 0x00f38378, 0x0217da16, 0x01899739, 0x0013fc35}}},
+ {X: Field{[10]uint32{0x03cec63f, 0x030ec358, 0x035618f4, 0x01dc8a9c, 0x004e2db0, 0x0242c540, 0x0232f33d, 0x00cee81a, 0x01a553df, 0x002a650e}}, Y: Field{[10]uint32{0x01656cd4, 0x0108f6ce, 0x00e7e7e6, 0x0317dc0f, 0x026f9c1f, 0x0139a61f, 0x01cd8a2e, 0x031ddfaa, 0x0129f11f, 0x00066382}}},
+ {X: Field{[10]uint32{0x03085282, 0x00bf7c57, 0x00355a0e, 0x02c42de3, 0x031c7789, 0x020aa8b9, 0x03ab71df, 0x02e85323, 0x01361381, 0x00147ca8}}, Y: Field{[10]uint32{0x032d16a2, 0x0065f3fa, 0x00ea5a97, 0x009a124d, 0x026e2b7b, 0x00c65e8f, 0x0323bbe4, 0x03fa935b, 0x029fca15, 0x003f57c4}}},
+ {X: Field{[10]uint32{0x02a91d3a, 0x014c560b, 0x0368e820, 0x02e3d507, 0x03bed208, 0x019316d3, 0x01097778, 0x012cb265, 0x001c8b06, 0x000ea47e}}, Y: Field{[10]uint32{0x03a513c9, 0x01ce8048, 0x00404085, 0x0252d804, 0x00a542b5, 0x01616a3a, 0x0077329e, 0x00e78654, 0x003ad4ae, 0x00275640}}},
+ {X: Field{[10]uint32{0x0336c5c8, 0x01abc665, 0x03462105, 0x02138502, 0x005e491e, 0x01ca3045, 0x0026deee, 0x03e85cfc, 0x0150aa22, 0x001c7a67}}, Y: Field{[10]uint32{0x036a4995, 0x019fb105, 0x03b2653f, 0x038e6ec2, 0x03699806, 0x03651f9d, 0x02627291, 0x022119f1, 0x03776858, 0x003fcf93}}},
+ {X: Field{[10]uint32{0x008aaa39, 0x0248005f, 0x0180e6d3, 0x003ba166, 0x0046f745, 0x0338bcf3, 0x0353286a, 0x0113dcfe, 0x02933a03, 0x002b4527}}, Y: Field{[10]uint32{0x009e81bd, 0x03dbeba4, 0x03e3f2a4, 0x00ffc455, 0x0165a5ab, 0x026a0de2, 0x03140603, 0x03cd52d3, 0x039885a4, 0x001f6fd1}}},
+ {X: Field{[10]uint32{0x011ccb01, 0x011fe45d, 0x00c321a2, 0x035dfaef, 0x0286e79e, 0x025a4417, 0x000ca207, 0x023db129, 0x037f5ad7, 0x00113c28}}, Y: Field{[10]uint32{0x0353044a, 0x01255570, 0x01905af6, 0x02684a24, 0x0070836d, 0x019ad44a, 0x031e5590, 0x02cfefbe, 0x0067911e, 0x003d0136}}},
+ {X: Field{[10]uint32{0x0330ad5d, 0x00e29842, 0x02c1dc0d, 0x038ec9c7, 0x0050f5c0, 0x025c5e1a, 0x00a4a8b2, 0x03823130, 0x00c3de8d, 0x0013ddf7}}, Y: Field{[10]uint32{0x01f57c69, 0x00da8e53, 0x032fa558, 0x000201bb, 0x0358dc73, 0x002a996c, 0x018aa5ab, 0x003ba484, 0x024f8ae8, 0x001cf1d0}}},
+ {X: Field{[10]uint32{0x02005555, 0x01c4dc79, 0x01c0d38d, 0x0093978b, 0x016d6d5c, 0x03bd9630, 0x026efd38, 0x00248d8d, 0x008b102a, 0x001e5284}}, Y: Field{[10]uint32{0x0246ba2c, 0x03d9cdf3, 0x03f751a6, 0x012d7f72, 0x007c9e30, 0x007e11e6, 0x02cf0fdc, 0x024141a6, 0x01efefd7, 0x0021c659}}},
+ {X: Field{[10]uint32{0x00e8e594, 0x029235c5, 0x003a822d, 0x01f3a8c2, 0x02a72e29, 0x0282c494, 0x01bd49f5, 0x0218eb7d, 0x0161234b, 0x003c6621}}, Y: Field{[10]uint32{0x003fc418, 0x03acd86a, 0x0203fca6, 0x01cf4c6a, 0x03abd2f5, 0x03f68fe3, 0x0036612d, 0x01468630, 0x0107d0ab, 0x001eb6e9}}},
+ {X: Field{[10]uint32{0x003f4a80, 0x02862f73, 0x01c75491, 0x036fe0b4, 0x02f3fd27, 0x01e42abb, 0x0249b8f7, 0x026781c4, 0x0156c07c, 0x00122fb5}}, Y: Field{[10]uint32{0x02316e94, 0x00795559, 0x03543856, 0x008b5250, 0x0046cf01, 0x03976f2a, 0x00dd08cb, 0x0106346d, 0x028021be, 0x00276b94}}},
+ {X: Field{[10]uint32{0x003ab9c1, 0x032ccfe5, 0x00a1f3bf, 0x02ff0b72, 0x00ec8449, 0x01d2eb1d, 0x0376fef9, 0x01e74e3c, 0x03fbe537, 0x002effbc}}, Y: Field{[10]uint32{0x0312551b, 0x01b1b378, 0x030b0800, 0x018e1200, 0x00ed4625, 0x02f83aa3, 0x010e8495, 0x022bff18, 0x0372ee79, 0x002fa96d}}},
+ {X: Field{[10]uint32{0x015b7f06, 0x01d2f582, 0x0212e00b, 0x02bfbaf0, 0x00156839, 0x03305d71, 0x006b04be, 0x033548e0, 0x001527b3, 0x0010abcd}}, Y: Field{[10]uint32{0x01dcef4f, 0x02d1b7d6, 0x021370e7, 0x006096fe, 0x00f91a55, 0x02237a60, 0x036d0961, 0x01bfd88d, 0x03e5ebf1, 0x001a1b97}}},
+ {X: Field{[10]uint32{0x01ce10e6, 0x037849dc, 0x00d6938a, 0x00990309, 0x02307497, 0x0162df57, 0x03ea376d, 0x021f11bb, 0x038b74ae, 0x000f15b5}}, Y: Field{[10]uint32{0x00d54a41, 0x00c9d492, 0x03883507, 0x002d446f, 0x0039fed0, 0x0328af1b, 0x023b36b6, 0x0388574d, 0x02ccf9d1, 0x0033a5f7}}},
+ {X: Field{[10]uint32{0x0389b61a, 0x03f6c26d, 0x0291d33a, 0x0073693c, 0x0267b52a, 0x0123da73, 0x02404a9e, 0x03bc2ab9, 0x01991944, 0x0012c489}}, Y: Field{[10]uint32{0x02089571, 0x02ef99ad, 0x0211bf3e, 0x0201e391, 0x0062b1bc, 0x01b64af0, 0x037932cb, 0x03e6494d, 0x035027a3, 0x001722f8}}},
+ {X: Field{[10]uint32{0x00d49db5, 0x01cd4346, 0x03e9acd3, 0x0154ac02, 0x01716749, 0x01363167, 0x0258f181, 0x024c528d, 0x0067c02c, 0x0002790a}}, Y: Field{[10]uint32{0x03a8c761, 0x025df1c5, 0x01d0d831, 0x0079b635, 0x0039f65b, 0x03f8833c, 0x003155da, 0x0035cf5e, 0x00351ff9, 0x001749b4}}},
+ {X: Field{[10]uint32{0x035359ae, 0x036e5cc9, 0x00b94402, 0x007976f6, 0x00306ab3, 0x01efdbea, 0x0027d0d4, 0x014d14a8, 0x010c05a9, 0x002590ce}}, Y: Field{[10]uint32{0x027a3933, 0x025c86ac, 0x000cea69, 0x00b7d657, 0x03abbf49, 0x003ef52e, 0x03560d05, 0x03a70748, 0x03f71019, 0x002cd535}}},
+ {X: Field{[10]uint32{0x02126b69, 0x03d5881f, 0x01f77bac, 0x0213faba, 0x021b6f78, 0x007c55e0, 0x01374f90, 0x01f7ad41, 0x02fb86f7, 0x0022d245}}, Y: Field{[10]uint32{0x00be1fd4, 0x032cc98a, 0x00213816, 0x03cd93e7, 0x02ce6d2a, 0x02f21feb, 0x01c3d59c, 0x036c4c15, 0x03c06d86, 0x000026a0}}},
+ {X: Field{[10]uint32{0x00054b9f, 0x00f3c334, 0x02ff37ba, 0x03fa554b, 0x0011de8e, 0x021223df, 0x01ee9abb, 0x020b107d, 0x034b1097, 0x00034a77}}, Y: Field{[10]uint32{0x00ca07a8, 0x01826050, 0x03d1c98a, 0x01106627, 0x00d1a5a4, 0x01e6da02, 0x03e08f6a, 0x00b13c2e, 0x0237ea24, 0x0006fc18}}},
+ {X: Field{[10]uint32{0x01dbd41d, 0x02e3a9c8, 0x01ede203, 0x019481b7, 0x03d4a202, 0x01444eb2, 0x01167d05, 0x0141114e, 0x017ba540, 0x000aabce}}, Y: Field{[10]uint32{0x02f73081, 0x022087a7, 0x03c6663d, 0x03093dec, 0x00013a81, 0x028cbcc2, 0x024b4a8a, 0x02eeb247, 0x02c71132, 0x000dd38c}}},
+ {X: Field{[10]uint32{0x0357ef48, 0x004cfe73, 0x03b817b1, 0x0251762d, 0x001ca58a, 0x02da8e63, 0x03d287c8, 0x0339ae3a, 0x03d223ea, 0x00088e6c}}, Y: Field{[10]uint32{0x02b4cd46, 0x032f50f8, 0x03bda94c, 0x03ecf93a, 0x00f01d70, 0x02380fca, 0x02f4b267, 0x02a2c822, 0x00b74b54, 0x003f6a20}}},
+ {X: Field{[10]uint32{0x03c7e365, 0x03b18929, 0x00f62e86, 0x00ce7c95, 0x01b88ee2, 0x007b6c51, 0x01c91785, 0x01cb7dfb, 0x03bcf47e, 0x0022cca1}}, Y: Field{[10]uint32{0x01fecabb, 0x03c3c802, 0x005be321, 0x01a47ad8, 0x00db6d99, 0x0030f4df, 0x0100868c, 0x0355397e, 0x03c09f60, 0x0015281a}}},
+ {X: Field{[10]uint32{0x004f7993, 0x026072a6, 0x0136dd8d, 0x031c935b, 0x01ace742, 0x03a1d4e7, 0x017e1ff3, 0x03fba443, 0x02a33e3c, 0x00366b33}}, Y: Field{[10]uint32{0x027dc88b, 0x018e2a10, 0x02690565, 0x02055097, 0x0162947f, 0x0082f40b, 0x00f5a05a, 0x03974b63, 0x034aa901, 0x001ab725}}},
+ {X: Field{[10]uint32{0x00b3206d, 0x03cab96a, 0x036b308d, 0x036902e3, 0x004af245, 0x01d3b80e, 0x0292b504, 0x0122f799, 0x03f834c3, 0x0035ff15}}, Y: Field{[10]uint32{0x004e2d19, 0x034acc09, 0x03406e38, 0x02c47e6b, 0x000231ed, 0x01b6c0c9, 0x028e04ba, 0x027faa6c, 0x024b41fd, 0x0002c94f}}},
+ {X: Field{[10]uint32{0x00d9588a, 0x016d70c5, 0x015059ad, 0x0181e88f, 0x02b815f6, 0x02540878, 0x0334e165, 0x005024da, 0x03e0ec4a, 0x00096023}}, Y: Field{[10]uint32{0x018e7b96, 0x01e63df1, 0x00ec66f4, 0x01b3a2ef, 0x03a75bc1, 0x02e77c7f, 0x00a1eefb, 0x01bbe232, 0x02d5b1d4, 0x00341992}}},
+ {X: Field{[10]uint32{0x01927914, 0x01ba84e6, 0x01ecc322, 0x01d8a68e, 0x0359e67a, 0x00368d69, 0x0152fa57, 0x015759c8, 0x03801139, 0x003911d1}}, Y: Field{[10]uint32{0x03793bee, 0x037cfe50, 0x035eac1a, 0x034a0dfb, 0x02ad4eb3, 0x0159b1e3, 0x02834d33, 0x00121b69, 0x0170aa2f, 0x00124f30}}},
+ {X: Field{[10]uint32{0x026311ad, 0x000ae444, 0x02f11476, 0x02160b51, 0x0244e2b9, 0x0003c411, 0x01dd900d, 0x035c19db, 0x01be2af9, 0x00314103}}, Y: Field{[10]uint32{0x024ddb15, 0x0234a00c, 0x0186b91a, 0x006c41dd, 0x01a7cabc, 0x01e2a739, 0x01b64667, 0x0185c732, 0x0311a231, 0x002102aa}}},
+ {X: Field{[10]uint32{0x037d9f14, 0x008a3ad0, 0x023a812a, 0x013e4ef6, 0x008116cd, 0x0311f539, 0x03ca1236, 0x00cface9, 0x03aa316d, 0x0008ce46}}, Y: Field{[10]uint32{0x037efd4d, 0x02d53d72, 0x00b7f1eb, 0x01e71f2e, 0x010bc97c, 0x01b63446, 0x00a69aff, 0x01dbf007, 0x001d9e6d, 0x0007604d}}},
+ {X: Field{[10]uint32{0x0039ac38, 0x02acd3ef, 0x01eb945e, 0x036302e5, 0x008aeb8f, 0x03ace525, 0x006682cb, 0x02e9c8bf, 0x03563de3, 0x0004c845}}, Y: Field{[10]uint32{0x0174f006, 0x02e6b623, 0x013df89e, 0x001506dd, 0x01aa5279, 0x009b2fee, 0x0161431e, 0x00208df2, 0x03218a4b, 0x0026ddc9}}},
+ {X: Field{[10]uint32{0x02789708, 0x01dea56e, 0x0096d2ff, 0x00eebfba, 0x01708b94, 0x02d735f8, 0x00f896bb, 0x00bf1e87, 0x0098b27a, 0x000ee2ee}}, Y: Field{[10]uint32{0x0136c1cb, 0x00403227, 0x028c9248, 0x01e70d01, 0x027fdcbf, 0x02858d77, 0x01e13e96, 0x000f9568, 0x001c6680, 0x00360795}}},
+ {X: Field{[10]uint32{0x00217b4d, 0x03a267f8, 0x02e21c7c, 0x00b20568, 0x03d94f16, 0x0300103f, 0x005e4f55, 0x0312eb14, 0x022c9af5, 0x003875c2}}, Y: Field{[10]uint32{0x03a4532e, 0x00f3fb25, 0x0212c2fd, 0x02679e70, 0x01eb063b, 0x00ac794f, 0x006d66de, 0x00392cda, 0x00d6d20e, 0x002c958c}}},
+ {X: Field{[10]uint32{0x0112de1c, 0x02aa9ef6, 0x001b5ff1, 0x0320c3ed, 0x03a7e681, 0x00acdb7f, 0x00f0c56e, 0x01e3eb4e, 0x0023a517, 0x0006c78e}}, Y: Field{[10]uint32{0x0184d4c1, 0x00ffcc89, 0x0116cd59, 0x009a0ca0, 0x03bebe16, 0x02fdff49, 0x03258556, 0x00807739, 0x0290a951, 0x003cba66}}},
+ {X: Field{[10]uint32{0x01bda7a1, 0x03dca088, 0x03102e48, 0x00703640, 0x018745a9, 0x017919f8, 0x01348175, 0x018644b0, 0x003894f5, 0x00078c76}}, Y: Field{[10]uint32{0x00d610ce, 0x0232531f, 0x03aee504, 0x009d0480, 0x02477a7b, 0x03e0225b, 0x002c6d97, 0x03863cf0, 0x038835da, 0x0004773b}}},
+ {X: Field{[10]uint32{0x02b7100e, 0x02c0c062, 0x0028c422, 0x01e946d4, 0x03311f68, 0x02f0ed25, 0x027a7ff2, 0x02f266fd, 0x0034795c, 0x00032e6b}}, Y: Field{[10]uint32{0x00d0db1d, 0x01120d8f, 0x0332074e, 0x03762913, 0x03e5ff32, 0x023704fd, 0x01e95e9a, 0x02cd7380, 0x0221c804, 0x001797c1}}},
+ {X: Field{[10]uint32{0x00e11c1b, 0x01ce0d6d, 0x020ce56c, 0x0213c028, 0x0024dcb8, 0x02995b12, 0x02326fa1, 0x02b4e283, 0x02c4067d, 0x002bf0d2}}, Y: Field{[10]uint32{0x00bdcb96, 0x00204d8a, 0x01de1d75, 0x02baff1b, 0x0377a033, 0x000b0432, 0x02ef031a, 0x0191e8e0, 0x00043f6d, 0x00322c71}}},
+ {X: Field{[10]uint32{0x0270aa81, 0x03e17ef8, 0x0273e603, 0x00d9e9e0, 0x023330f6, 0x02e85384, 0x01430bc0, 0x02ae8586, 0x0160ca85, 0x000e9bf0}}, Y: Field{[10]uint32{0x0222bc0a, 0x01d36e80, 0x001bb617, 0x03246709, 0x02cb72cf, 0x01c1ef0c, 0x01a7a483, 0x02ce4251, 0x037286db, 0x0016528a}}},
+ {X: Field{[10]uint32{0x033ce7d4, 0x00658050, 0x02e4346b, 0x02a38fab, 0x01bdc1e4, 0x03c637af, 0x024f56ea, 0x0270e8fd, 0x0295657c, 0x002a103d}}, Y: Field{[10]uint32{0x02126fbc, 0x007d27fa, 0x0269d7a4, 0x0091c9cc, 0x031a77b8, 0x030004c6, 0x01eae96b, 0x038b7d18, 0x02c0ca41, 0x0022a29e}}},
+ {X: Field{[10]uint32{0x000a39d6, 0x027602ba, 0x033e55f6, 0x018b5b83, 0x0065cd77, 0x028a4c9a, 0x01d08c34, 0x01a4530e, 0x020170ec, 0x00030113}}, Y: Field{[10]uint32{0x020b4657, 0x02fe488e, 0x0052a92d, 0x01ee4816, 0x036dd5fd, 0x00be5ecd, 0x02e0b5ec, 0x00545897, 0x00827ae5, 0x001ef58c}}},
+ {X: Field{[10]uint32{0x02a00b3a, 0x0377a53a, 0x00b2aa89, 0x00690769, 0x002bf927, 0x033f74a2, 0x01eb5c67, 0x025a6c11, 0x035b352b, 0x0032e404}}, Y: Field{[10]uint32{0x0179be93, 0x012d858b, 0x00b492a8, 0x00b1498d, 0x03b4dac8, 0x009dea3d, 0x00b6d267, 0x026c47f9, 0x00a0762d, 0x000532fb}}},
+ {X: Field{[10]uint32{0x03182a0e, 0x03213402, 0x02963c58, 0x01d9d7a9, 0x03c82166, 0x02a92a3f, 0x007c0633, 0x02ac3c87, 0x0037a24d, 0x003e9ef1}}, Y: Field{[10]uint32{0x01a5aa35, 0x03bb9534, 0x0244b383, 0x0051007c, 0x00fdf721, 0x0124d678, 0x0109326c, 0x0031adb7, 0x03c6d730, 0x00389099}}},
+ {X: Field{[10]uint32{0x03b3299a, 0x00701795, 0x02fcdd0c, 0x015cef22, 0x0035e956, 0x0054ceb6, 0x032bef99, 0x00f494de, 0x00dd3f50, 0x00398d53}}, Y: Field{[10]uint32{0x019ead7f, 0x0342e1a1, 0x01a0a3c4, 0x03cfd72b, 0x03cdc2b6, 0x03a7be71, 0x01955b9a, 0x03228662, 0x03706291, 0x0035b05e}}},
+ {X: Field{[10]uint32{0x0345cce8, 0x00ebc7ee, 0x0053b048, 0x00f4afc1, 0x02132ec2, 0x0035f604, 0x00dce9d5, 0x00578f7c, 0x013007e8, 0x002768d9}}, Y: Field{[10]uint32{0x0067a8dc, 0x02639474, 0x0109ebd2, 0x008c8bd3, 0x013bbc4b, 0x02426ba4, 0x02a1b102, 0x022b3aa1, 0x016698a2, 0x002ecdd1}}},
+ {X: Field{[10]uint32{0x00c9d4db, 0x0066e28e, 0x011ba763, 0x02208b5a, 0x0213b257, 0x0105aa21, 0x02d1c3ba, 0x03371c1b, 0x021e1a19, 0x0037115e}}, Y: Field{[10]uint32{0x03dc3b58, 0x03a04fee, 0x01776dfc, 0x0363e0a1, 0x0385e25b, 0x02518e29, 0x01919fa2, 0x01943752, 0x0366de5a, 0x000e7e4f}}},
+ {X: Field{[10]uint32{0x00f0374d, 0x02760ab3, 0x009a962b, 0x01badece, 0x03ec216c, 0x0132915b, 0x0357bc66, 0x003a617f, 0x031f1b1a, 0x002c8dde}}, Y: Field{[10]uint32{0x03578c1a, 0x00666b1d, 0x02db5dac, 0x030188ca, 0x027a040f, 0x00fae5d1, 0x0114e74b, 0x014272fc, 0x0180d723, 0x000e0e95}}},
+ {X: Field{[10]uint32{0x00fc7e50, 0x0144492b, 0x01f65780, 0x03381797, 0x002a5a86, 0x02570936, 0x011fabeb, 0x00ea14e1, 0x0046755d, 0x0022c699}}, Y: Field{[10]uint32{0x0255cf75, 0x03ccd1a5, 0x036231ca, 0x01850e32, 0x01ed1cd4, 0x024a96ff, 0x0288aef1, 0x00a99d46, 0x01d4cb63, 0x0010ae21}}},
+ {X: Field{[10]uint32{0x0103f5b1, 0x029bfc94, 0x01b3e7d5, 0x0288c285, 0x03c3a7ef, 0x00ea41e9, 0x01f14162, 0x00683279, 0x019cbacf, 0x00250220}}, Y: Field{[10]uint32{0x00506f98, 0x031a32c3, 0x0056b0d6, 0x00c32ec9, 0x021df08c, 0x002ade68, 0x0107451f, 0x013dcff4, 0x02c9d6f8, 0x002a5d63}}},
+ {X: Field{[10]uint32{0x006ce25c, 0x00661c2c, 0x013ee9c3, 0x01cf090f, 0x029ce6d4, 0x02213693, 0x017c933a, 0x03e32e67, 0x004707b3, 0x0022ffbc}}, Y: Field{[10]uint32{0x03e5c498, 0x00f04b3d, 0x03e37ca7, 0x0213a281, 0x00627f1d, 0x00c05f16, 0x00d17ee8, 0x02bc5d54, 0x01870d06, 0x0022ef2f}}},
+ {X: Field{[10]uint32{0x014bdb61, 0x034a52d0, 0x03cc0dc1, 0x01ff0e00, 0x018eff64, 0x037d60be, 0x00b84b8a, 0x000b8477, 0x03f0c122, 0x0000aa15}}, Y: Field{[10]uint32{0x02db6548, 0x003bfb11, 0x029afe43, 0x0076bdfe, 0x0262c8ae, 0x023a88ea, 0x00af8c64, 0x024c6091, 0x016da7fd, 0x0026eb11}}},
+ {X: Field{[10]uint32{0x015cb5ec, 0x00eb2d97, 0x0083525e, 0x039a924f, 0x03b94b1e, 0x03fd4f9a, 0x006b2242, 0x017b4c34, 0x005a9048, 0x0024dee3}}, Y: Field{[10]uint32{0x03ccd808, 0x02c9d9a9, 0x02788da3, 0x019fa6df, 0x02c9c3d8, 0x038d9b29, 0x035a311a, 0x00dd2943, 0x036ff9fb, 0x0034dec4}}},
+ {X: Field{[10]uint32{0x0243c77a, 0x0038280e, 0x001a065a, 0x00cd2248, 0x0122b249, 0x01a87971, 0x0150ff30, 0x035afb64, 0x0153e2bf, 0x0017d513}}, Y: Field{[10]uint32{0x02990f51, 0x00df82c4, 0x01562c31, 0x01f88059, 0x028f4c84, 0x01c33b4c, 0x012c4130, 0x0336605d, 0x00e28c47, 0x002ea708}}},
+ {X: Field{[10]uint32{0x03c807b9, 0x025f9ea9, 0x01cbd9c2, 0x03ea0695, 0x01e3249c, 0x02e7e932, 0x0364fa7e, 0x022ebe96, 0x038890bf, 0x0019ed8c}}, Y: Field{[10]uint32{0x027625e6, 0x01876fab, 0x02567620, 0x0305b22e, 0x010d871e, 0x037e0229, 0x0354577e, 0x02e0450a, 0x02752d94, 0x00370615}}},
+ {X: Field{[10]uint32{0x00439442, 0x00918a26, 0x02e2fbd3, 0x0360e1a8, 0x02b76604, 0x018ca00c, 0x012ffa3d, 0x01123e7e, 0x01d599cb, 0x00161ea7}}, Y: Field{[10]uint32{0x03ae9870, 0x035b7376, 0x03dee6b6, 0x021d47fe, 0x03488aa6, 0x036efd4c, 0x01e73ca2, 0x03ea9e92, 0x00e9a893, 0x00125a66}}},
+ {X: Field{[10]uint32{0x03c29b38, 0x000a5298, 0x02a568f8, 0x00696190, 0x0218dfe5, 0x01746184, 0x00773123, 0x03fe7e04, 0x031ec576, 0x000dbede}}, Y: Field{[10]uint32{0x0166c4aa, 0x00055c85, 0x038e8a2f, 0x022586eb, 0x035c1a15, 0x01f7a298, 0x016fc1a6, 0x02c6fcb2, 0x02c9b82c, 0x000d2916}}},
+ {X: Field{[10]uint32{0x01f4ba95, 0x0158931c, 0x03caef77, 0x00f5393b, 0x00ab8a27, 0x0027fd0d, 0x00f49c51, 0x03b34b76, 0x008ca0af, 0x0021edc7}}, Y: Field{[10]uint32{0x025676f9, 0x00e0b314, 0x010b81bc, 0x0286f5ab, 0x005b3626, 0x0079b672, 0x0127c56e, 0x009621d9, 0x011f5112, 0x00214645}}},
+ {X: Field{[10]uint32{0x0063e040, 0x00e839e9, 0x0296cf43, 0x0262e069, 0x0000056c, 0x00ee8ec3, 0x03ed962c, 0x00dc2e8e, 0x00f2805c, 0x002b3d97}}, Y: Field{[10]uint32{0x01692d5b, 0x00ed0085, 0x023d663b, 0x008f35a3, 0x02dc7b0e, 0x00bd5fbc, 0x022762b5, 0x0385abe5, 0x029bf45b, 0x003c24e4}}},
+ {X: Field{[10]uint32{0x0147acf1, 0x0011d7c8, 0x03f44899, 0x02ea04a5, 0x01e3e045, 0x00737ec7, 0x01f16740, 0x003216e4, 0x03ed8b01, 0x003824af}}, Y: Field{[10]uint32{0x03902c37, 0x01c2a61d, 0x0291b657, 0x02be2f76, 0x018c4d18, 0x0181c36a, 0x00160728, 0x01a0f790, 0x0042ecc8, 0x00382ee6}}},
+ {X: Field{[10]uint32{0x010a52ae, 0x021c7298, 0x0269197c, 0x01fca3b3, 0x03ba386b, 0x01c14076, 0x0012735c, 0x02f2fc5e, 0x03b98260, 0x0026f7f5}}, Y: Field{[10]uint32{0x02371eeb, 0x033f7ad7, 0x00d9affb, 0x01e10188, 0x00887d9a, 0x017d427d, 0x01e01baa, 0x013339cc, 0x03983f8c, 0x0026f194}}},
+ {X: Field{[10]uint32{0x0243545f, 0x028be0a1, 0x0240e9a4, 0x00361a90, 0x00afc8a8, 0x00255087, 0x005587a9, 0x00562572, 0x0321d931, 0x000f6c88}}, Y: Field{[10]uint32{0x03b78eae, 0x03dcd263, 0x028bfddb, 0x01153bf1, 0x02fdd6bb, 0x02c6651f, 0x0323c9af, 0x021a3783, 0x00b82c57, 0x0010abcc}}},
+ {X: Field{[10]uint32{0x022b3e5f, 0x009e5858, 0x03da6256, 0x01908b4d, 0x03c3757a, 0x01790fe8, 0x02decbdc, 0x01fff3e1, 0x0314a6a7, 0x0003a74f}}, Y: Field{[10]uint32{0x00e67de7, 0x003e060c, 0x027f02f9, 0x0210db59, 0x03fd18ee, 0x02a4b305, 0x02d0764d, 0x01c5331b, 0x03ed1e2a, 0x0020eb02}}},
+ {X: Field{[10]uint32{0x0042f2a4, 0x007547a6, 0x0180f089, 0x02161a09, 0x01b31b90, 0x02b56566, 0x01448af0, 0x01221c38, 0x02e4f29b, 0x00104921}}, Y: Field{[10]uint32{0x01e7ee3d, 0x034e5fc3, 0x01a8f080, 0x01ed4c58, 0x000bc557, 0x030b9d87, 0x03bbb039, 0x019e430b, 0x01318c0d, 0x0030c716}}},
+ {X: Field{[10]uint32{0x02b4ddaa, 0x00a7648d, 0x01a267c5, 0x008a92cb, 0x01609f84, 0x026add7e, 0x01afbe0c, 0x0141bf8b, 0x007141ed, 0x003a77bb}}, Y: Field{[10]uint32{0x0194a21d, 0x0251e3db, 0x039eb220, 0x01fe6b6d, 0x008dfb76, 0x034a8290, 0x006029e5, 0x00ef0b61, 0x0144d846, 0x00021ca1}}},
+ {X: Field{[10]uint32{0x0264218a, 0x03f5bfec, 0x031735f0, 0x00b16f2d, 0x01bbf01c, 0x02e24978, 0x03a17612, 0x011a8208, 0x0292553c, 0x00168288}}, Y: Field{[10]uint32{0x015dbae2, 0x03455d79, 0x0009ce90, 0x025a3c14, 0x00012de6, 0x0111ffe7, 0x021f8976, 0x003c4289, 0x01f0adda, 0x000c25f3}}},
+ {X: Field{[10]uint32{0x00928d1f, 0x03784681, 0x03d005ba, 0x03e7383f, 0x02563a40, 0x0344bc61, 0x01dc23d8, 0x006b46e8, 0x02378b68, 0x001272ca}}, Y: Field{[10]uint32{0x016732d6, 0x001a564f, 0x03bd632a, 0x02db89da, 0x00fbecc5, 0x0360128f, 0x015a938a, 0x017e83fc, 0x02afc0f6, 0x003c8d78}}},
+ {X: Field{[10]uint32{0x0215feb3, 0x02af6e45, 0x037ccf99, 0x03521345, 0x003dd1af, 0x01887351, 0x01ad510a, 0x0045dec1, 0x00b63688, 0x003535c7}}, Y: Field{[10]uint32{0x0162645b, 0x03c4bc1d, 0x02c02ac7, 0x018fec1d, 0x035316c3, 0x0254354c, 0x02f385fa, 0x02e6c581, 0x0378de3e, 0x000eb594}}},
+ {X: Field{[10]uint32{0x01bfab2f, 0x00f9908d, 0x01148b7e, 0x02e0fd1f, 0x01529c99, 0x013a1b31, 0x03798c31, 0x01b80193, 0x02e14bdd, 0x0001646c}}, Y: Field{[10]uint32{0x00fa59b0, 0x01a95a2a, 0x03aeca98, 0x022575e0, 0x0112a517, 0x028da356, 0x02bbaf12, 0x01319935, 0x0266fd2a, 0x0013da18}}},
+ {X: Field{[10]uint32{0x03356876, 0x02f88d91, 0x00086970, 0x0003d262, 0x02be2534, 0x00bab277, 0x03b63c29, 0x02f124f5, 0x0085c984, 0x003b940f}}, Y: Field{[10]uint32{0x03daa47e, 0x0315cf12, 0x01ccb976, 0x02ce9faf, 0x0139449b, 0x005359c4, 0x01704e96, 0x022731d0, 0x02bb6f9e, 0x002f60a2}}},
+ {X: Field{[10]uint32{0x00b3f89e, 0x03256cc5, 0x01697758, 0x0325dff5, 0x03756e78, 0x0261f0eb, 0x036a3f98, 0x0287f328, 0x03a702e5, 0x000be6d3}}, Y: Field{[10]uint32{0x00a4a15d, 0x03a85407, 0x03cf33f0, 0x03c86997, 0x03956657, 0x02427670, 0x022e1cee, 0x00f1d13a, 0x015b3d5b, 0x00259a18}}},
+ {X: Field{[10]uint32{0x02fd46c3, 0x02c7249e, 0x03a6234e, 0x02f01b84, 0x02a1f4ae, 0x00a8042a, 0x012b204e, 0x0093e17e, 0x006aa341, 0x00062db4}}, Y: Field{[10]uint32{0x034bef4e, 0x00120747, 0x0264fb46, 0x029550dc, 0x03258b0b, 0x00f81e7c, 0x02624bfa, 0x0002c01f, 0x01b9bdf6, 0x0019b30c}}},
+ {X: Field{[10]uint32{0x01b44ba0, 0x00c0d037, 0x016881cc, 0x013594e5, 0x0367662a, 0x00c36dba, 0x0337d0f0, 0x023763ff, 0x0163bf75, 0x000ef01e}}, Y: Field{[10]uint32{0x01057e5d, 0x01dc306b, 0x008a357d, 0x03b2dd15, 0x008e6dc1, 0x01db6dbe, 0x039a3c22, 0x026870b7, 0x02f26820, 0x00183847}}},
+ {X: Field{[10]uint32{0x013a46a8, 0x026ca201, 0x01e3dd08, 0x016bc3ba, 0x0291498b, 0x0327e9a2, 0x0149af30, 0x01508ebf, 0x01d65b32, 0x0002fd61}}, Y: Field{[10]uint32{0x038e66a6, 0x033dab78, 0x00c0594b, 0x0304d147, 0x0204c000, 0x02a794e5, 0x0256e2cf, 0x012e6944, 0x00e9ea48, 0x000be251}}},
+ {X: Field{[10]uint32{0x03b69294, 0x02704cf3, 0x01a7f64e, 0x00e35fc1, 0x00f0cf14, 0x007d03be, 0x01b59a91, 0x00095d75, 0x022ebe7a, 0x00221f02}}, Y: Field{[10]uint32{0x00aec5c9, 0x01c79c58, 0x02a58402, 0x0037483d, 0x019c37c3, 0x0105d524, 0x03de5949, 0x0319bd43, 0x00c84f9b, 0x00117ccd}}},
+ {X: Field{[10]uint32{0x022f7d4f, 0x03e68d98, 0x0211601b, 0x027e0128, 0x003718e7, 0x030f71af, 0x0217700f, 0x00c97166, 0x02f90a73, 0x00276b5e}}, Y: Field{[10]uint32{0x02159525, 0x00a616b9, 0x03136644, 0x02b40624, 0x0140644b, 0x0227ae37, 0x02326ecb, 0x01aa531f, 0x025e099c, 0x000adf08}}},
+ {X: Field{[10]uint32{0x03dd551b, 0x02116529, 0x006947cb, 0x007272be, 0x0363bcb6, 0x01cf37f3, 0x03e9a2ed, 0x00a7dd3c, 0x039572bd, 0x00211f93}}, Y: Field{[10]uint32{0x0393ee16, 0x0226856c, 0x004b81ea, 0x020a8407, 0x000f6f11, 0x01c32cd1, 0x006286d3, 0x00b18bea, 0x0282e0a9, 0x002e9bb4}}},
+ {X: Field{[10]uint32{0x0047a593, 0x012bd1fc, 0x01580268, 0x00b3374f, 0x00b5d8c6, 0x02495b1c, 0x033c4b44, 0x00d80119, 0x0205df1c, 0x0009484c}}, Y: Field{[10]uint32{0x03096837, 0x018f59fb, 0x01f3c547, 0x03b10a9e, 0x0395aabf, 0x02881591, 0x022a47a8, 0x011c27eb, 0x01de05af, 0x000db720}}},
+ {X: Field{[10]uint32{0x0058e87a, 0x0032f384, 0x0229ab17, 0x01c175cc, 0x0095ebfd, 0x00beca7f, 0x013a25ef, 0x037de91c, 0x00d84866, 0x001d48a3}}, Y: Field{[10]uint32{0x0012fe6d, 0x02ecc2f0, 0x03812a7d, 0x01564a6e, 0x0168a473, 0x00215105, 0x025f056c, 0x034fd3f4, 0x039bcc02, 0x003ee921}}},
+ {X: Field{[10]uint32{0x01b68568, 0x036b6ed6, 0x03fe4b6a, 0x00dd0b18, 0x00981a13, 0x00109224, 0x002fb07c, 0x01f021b4, 0x01392286, 0x001d2515}}, Y: Field{[10]uint32{0x011af3e2, 0x03aed507, 0x01180341, 0x00111919, 0x013e3b8d, 0x0091f9d4, 0x030bf0b5, 0x02c6722b, 0x01178df8, 0x001f5dd2}}},
+ {X: Field{[10]uint32{0x03c9b04f, 0x0383f2ff, 0x03f7a609, 0x038d5fd1, 0x0271d28c, 0x00a651bc, 0x00cbadfc, 0x038e73e8, 0x03532899, 0x001a76df}}, Y: Field{[10]uint32{0x019feabc, 0x0252d8c6, 0x011f0a66, 0x0375d928, 0x0326da7c, 0x007543e7, 0x0023ffee, 0x01576ab5, 0x03bb1032, 0x0032c090}}},
+ {X: Field{[10]uint32{0x0129f8c7, 0x01cf0a4a, 0x022251d1, 0x03d54f6b, 0x02ec4aed, 0x0240be48, 0x012fc378, 0x0036f83f, 0x01c1fb4a, 0x001c9fb3}}, Y: Field{[10]uint32{0x011f453b, 0x03525799, 0x0035c224, 0x030592f0, 0x02bfc4f7, 0x015d536c, 0x0046ee5e, 0x02358199, 0x02ed1377, 0x002b96ec}}},
+ {X: Field{[10]uint32{0x02f25b72, 0x0278cd1f, 0x00382b12, 0x01cd7baf, 0x01912138, 0x00b1fcaf, 0x007f5c9e, 0x01512f88, 0x018f0ec2, 0x00240f3b}}, Y: Field{[10]uint32{0x003190a6, 0x01073565, 0x00c8bb2e, 0x0255af90, 0x03ff75c7, 0x03ea2df6, 0x009bf33a, 0x00f4c57a, 0x02290ee1, 0x000845f2}}},
+ {X: Field{[10]uint32{0x0203f33b, 0x02eee646, 0x02ca33a6, 0x03c200cd, 0x031c8906, 0x03f4d8dc, 0x038a5ad6, 0x03845cd8, 0x03ef5149, 0x00313519}}, Y: Field{[10]uint32{0x0229b5c7, 0x026058c1, 0x01b63bf3, 0x0033fe5d, 0x00431ad8, 0x02fcbf3b, 0x03d437ea, 0x01af3f38, 0x03244c53, 0x003a96d6}}},
+ {X: Field{[10]uint32{0x0237326f, 0x0178df3a, 0x03cf9d32, 0x029b0daf, 0x01cff7a8, 0x036028bc, 0x03b2b7ad, 0x0027dec8, 0x03a65f6d, 0x0005ad5d}}, Y: Field{[10]uint32{0x009f15c1, 0x01ce4d34, 0x02dcbe90, 0x03876c68, 0x0184d98b, 0x0294a9e4, 0x00a65760, 0x0139788a, 0x00e21467, 0x00019aea}}},
+ {X: Field{[10]uint32{0x0363412f, 0x0214c766, 0x01f5a676, 0x036f4afc, 0x0367fcee, 0x02f5f77d, 0x02453846, 0x02b7f387, 0x02f2e480, 0x002b52f2}}, Y: Field{[10]uint32{0x01e741ac, 0x0068e03a, 0x03f4a0a6, 0x02dd59cd, 0x00c4c891, 0x0097b9cb, 0x031b3a45, 0x003d6446, 0x03604781, 0x00147e80}}},
+ {X: Field{[10]uint32{0x033b571a, 0x01ccd8b0, 0x01dd587d, 0x037b767a, 0x0151ca65, 0x006f2ce6, 0x012d776d, 0x039e1d29, 0x033852d2, 0x002c927a}}, Y: Field{[10]uint32{0x03a66258, 0x000c8c94, 0x031d9b11, 0x001a9e70, 0x0062dd77, 0x005dc25b, 0x03cd84eb, 0x03b3a020, 0x002414e4, 0x000f8982}}},
+ {X: Field{[10]uint32{0x01e14a65, 0x0347b12f, 0x029dbccf, 0x0181f8ef, 0x0374dd05, 0x0274b14e, 0x0310d3a5, 0x0006ba04, 0x02c7696a, 0x0018d064}}, Y: Field{[10]uint32{0x03b0e00f, 0x03948895, 0x0154adcb, 0x03912e4a, 0x004fd4cc, 0x031e1ec6, 0x02dcd709, 0x0381df61, 0x0050e366, 0x001156d2}}},
+ {X: Field{[10]uint32{0x022f5099, 0x02577312, 0x02ce6fd2, 0x03b7eec6, 0x02acc3c5, 0x0052c662, 0x02159ccc, 0x00fe0127, 0x03f50d43, 0x003fefb2}}, Y: Field{[10]uint32{0x000be3c0, 0x00779491, 0x0285caaa, 0x01a22921, 0x03dd68d3, 0x0300ee8c, 0x0089acf9, 0x01b3d0d9, 0x02ba1ec6, 0x00108b9e}}},
+ {X: Field{[10]uint32{0x001868af, 0x00cf7457, 0x035ad8c1, 0x00ed4269, 0x02b6a8c8, 0x03418cb6, 0x034f1a90, 0x03a08e73, 0x00dc1067, 0x00196d31}}, Y: Field{[10]uint32{0x014d260e, 0x02b0797e, 0x026d840d, 0x005e7548, 0x0320c678, 0x01fd0a80, 0x003f8ae0, 0x01186146, 0x019dd765, 0x003df3d7}}},
+ {X: Field{[10]uint32{0x03f9c67e, 0x00695826, 0x0355924c, 0x02ecd756, 0x008de48d, 0x0016e343, 0x018dbed4, 0x00d40b54, 0x00ce9d60, 0x0034e03b}}, Y: Field{[10]uint32{0x0364c128, 0x00d7e3f6, 0x013ae50c, 0x0136a02c, 0x038b241b, 0x01971827, 0x030ac152, 0x02ac427a, 0x0080fd18, 0x0006ba11}}},
+ {X: Field{[10]uint32{0x0244511c, 0x0213fd33, 0x002df634, 0x03dc6741, 0x003fce43, 0x01774694, 0x00a1d961, 0x006efb5e, 0x0128b5ce, 0x0005c627}}, Y: Field{[10]uint32{0x0382350d, 0x01a91ce9, 0x03bb5759, 0x026236cb, 0x0185c532, 0x029584a2, 0x021b948b, 0x00f8e504, 0x00f47c7b, 0x003ef28a}}},
+ {X: Field{[10]uint32{0x00c2e84d, 0x0160e0a0, 0x01ee73f5, 0x0393ebf3, 0x010be685, 0x02496fcf, 0x01ae4e61, 0x02c1f6a1, 0x02c2e2a8, 0x003ef8cc}}, Y: Field{[10]uint32{0x024e29ca, 0x0295e5fa, 0x00eb30e1, 0x0381ad65, 0x02b11c43, 0x026d0b2f, 0x038c6d77, 0x01f6838f, 0x03425e18, 0x002aa45c}}},
+ {X: Field{[10]uint32{0x00bc834f, 0x01e58ee8, 0x0321002d, 0x03d736ab, 0x012100d1, 0x00ba7348, 0x00bd5182, 0x01c97e2d, 0x02878b5e, 0x0022e7a2}}, Y: Field{[10]uint32{0x003ed659, 0x01de8233, 0x00563bed, 0x0371154b, 0x02b2e873, 0x002d95c0, 0x031d6ad8, 0x015af57f, 0x031cc28f, 0x000cc7ec}}},
+ {X: Field{[10]uint32{0x01e111ca, 0x003323a3, 0x02a3bd73, 0x022ad9a2, 0x0234e1a6, 0x032986b0, 0x02798ace, 0x02f2b45e, 0x0011a3c0, 0x0025fa49}}, Y: Field{[10]uint32{0x0147f48f, 0x0312fc5a, 0x007eb7cd, 0x01d82ebf, 0x01047949, 0x00f08690, 0x035fb759, 0x01785cb9, 0x00a4bac1, 0x002c3c5c}}},
+ {X: Field{[10]uint32{0x0044eea8, 0x008ec974, 0x016919cd, 0x007f5354, 0x0349aa3c, 0x0309e55d, 0x00c76f82, 0x00f1bb32, 0x001333a1, 0x00080d62}}, Y: Field{[10]uint32{0x000c7f29, 0x00f2245e, 0x025c0ee7, 0x03c41366, 0x00259fc4, 0x037c3cd1, 0x022f9517, 0x02bc2bb3, 0x02a48c86, 0x001202be}}},
+ {X: Field{[10]uint32{0x027dbcff, 0x016fade9, 0x00343a66, 0x03988adf, 0x02617579, 0x02126fbf, 0x01551039, 0x01d02a40, 0x00cb1575, 0x0032a87b}}, Y: Field{[10]uint32{0x00e0a20b, 0x0354b829, 0x02577e0b, 0x004e707a, 0x011aee51, 0x02fc10b6, 0x03d34511, 0x01cbfedb, 0x03f9f1c9, 0x002a9a56}}},
+ {X: Field{[10]uint32{0x02620719, 0x028eb6f0, 0x02bbd138, 0x0279ba3c, 0x03f33104, 0x03f5ae20, 0x02a212a7, 0x01ea3bf6, 0x03a2036f, 0x00239f0a}}, Y: Field{[10]uint32{0x02ec105c, 0x01863e0b, 0x02d0220a, 0x00c47fb3, 0x00d9b6e0, 0x01de7e30, 0x006c4e2e, 0x03ecfd61, 0x002f1434, 0x002f40dc}}},
+ {X: Field{[10]uint32{0x02ace975, 0x018df1ee, 0x033b24dd, 0x0046393a, 0x0388fbad, 0x00301de0, 0x03ebf094, 0x001307f3, 0x00336dcd, 0x00381f70}}, Y: Field{[10]uint32{0x032a2c2c, 0x01985aac, 0x0019510d, 0x01a14011, 0x02ef6f92, 0x02f54c55, 0x02ccf311, 0x03b2c1d8, 0x00a00e5e, 0x002c4ef4}}},
+ {X: Field{[10]uint32{0x038ce0cb, 0x03e8b7ee, 0x0307297a, 0x0247470c, 0x0095aba7, 0x036c2ca3, 0x018a9044, 0x02bc0427, 0x00252679, 0x001981b2}}, Y: Field{[10]uint32{0x00e1d3cc, 0x01f2b202, 0x02054647, 0x015cdae8, 0x0310fe6c, 0x011e1a3e, 0x010de777, 0x01e64d5c, 0x019ca980, 0x001d4179}}},
+ {X: Field{[10]uint32{0x01e6f061, 0x02e64d47, 0x020b522a, 0x00d4ae67, 0x022b31f9, 0x0037976b, 0x005450fb, 0x0089b02d, 0x00dcec48, 0x0027efd3}}, Y: Field{[10]uint32{0x02f850dd, 0x03e98047, 0x02c91a7d, 0x0119c0d3, 0x00e9c5b6, 0x00d8adf7, 0x020d58a2, 0x0083a182, 0x00a23da0, 0x003cb934}}},
+ {X: Field{[10]uint32{0x006916bc, 0x03d8618a, 0x01b1b976, 0x019fa003, 0x00b7cc81, 0x025df4cb, 0x00b0403e, 0x03ff0a62, 0x02975195, 0x000381b5}}, Y: Field{[10]uint32{0x030bb8bb, 0x011302f0, 0x01c83632, 0x02ec3069, 0x02068302, 0x012400fa, 0x0380e04a, 0x034885eb, 0x030a27d3, 0x0020054d}}},
+ {X: Field{[10]uint32{0x0293a6e2, 0x028fc2a4, 0x01a6bcf4, 0x01dfa5e1, 0x03ff7925, 0x01b85b35, 0x0112fd4e, 0x00aab194, 0x03ab021d, 0x002b7359}}, Y: Field{[10]uint32{0x03fd7fb8, 0x02970ad5, 0x0293d0fa, 0x03526d6f, 0x018e4f40, 0x01730eeb, 0x0058608f, 0x00aaa814, 0x02202906, 0x001949ed}}},
+ {X: Field{[10]uint32{0x01f2bd38, 0x02fde8b8, 0x00e133e0, 0x005da244, 0x035a4473, 0x025a026c, 0x007e963d, 0x01932c46, 0x01eab43a, 0x0007641a}}, Y: Field{[10]uint32{0x01e29108, 0x037cc6a4, 0x033bbf15, 0x023e93b0, 0x00fc78c2, 0x03bd5057, 0x012f9a68, 0x023fa52b, 0x02de854b, 0x002ac0f7}}},
+ {X: Field{[10]uint32{0x0220a768, 0x008b99c2, 0x0140e3a4, 0x03dca8e0, 0x03603206, 0x033a0fd2, 0x00168ae8, 0x0224bc52, 0x0376b8ec, 0x003c7dad}}, Y: Field{[10]uint32{0x01bff25a, 0x02ff2cae, 0x0345d14a, 0x01f60a9f, 0x01e7136a, 0x02ec9736, 0x019b11a7, 0x0368845f, 0x00363413, 0x00224ae8}}},
+ {X: Field{[10]uint32{0x02fab379, 0x007177c7, 0x03fb0040, 0x008d0ce9, 0x03c21d1c, 0x0228b70e, 0x03a8d1bf, 0x03d3343c, 0x014ace79, 0x002a213e}}, Y: Field{[10]uint32{0x02a05c96, 0x00c3e037, 0x03082dd6, 0x03e97434, 0x03c611af, 0x03c0f77d, 0x0282fbee, 0x009233b0, 0x016c6e45, 0x0017d4cd}}},
+ {X: Field{[10]uint32{0x021da9ff, 0x0203c439, 0x02fe981a, 0x0020d7a7, 0x031fb2be, 0x02d2353d, 0x00165640, 0x02200384, 0x0030197a, 0x002c6621}}, Y: Field{[10]uint32{0x01d849b9, 0x01a36393, 0x00bdf44a, 0x01057b1c, 0x000e515a, 0x01b85068, 0x027ace58, 0x004b496f, 0x024dea7d, 0x003571e1}}},
+ {X: Field{[10]uint32{0x0127fedb, 0x0110d383, 0x02d4d109, 0x02ba50bd, 0x0246985a, 0x02db24ea, 0x01c1db82, 0x016e12f5, 0x02a7529d, 0x00056dce}}, Y: Field{[10]uint32{0x02721f89, 0x036af23b, 0x02262075, 0x037bcbf2, 0x00632ac6, 0x00728f50, 0x0011259b, 0x0344f108, 0x02a2bc8a, 0x000a5f8c}}},
+ {X: Field{[10]uint32{0x0197d40f, 0x01de0b1f, 0x00f3f57f, 0x01e85b34, 0x038e35cc, 0x005b948f, 0x01926301, 0x007ec596, 0x02e0443c, 0x000ce69d}}, Y: Field{[10]uint32{0x01fe9659, 0x02f5dcf3, 0x02a229e5, 0x01af104e, 0x03914f0f, 0x00ed4b9b, 0x02756201, 0x01e130cf, 0x012efecd, 0x00226419}}},
+ {X: Field{[10]uint32{0x027adfef, 0x02d460ed, 0x0251bf64, 0x038613d3, 0x03b1c535, 0x02c24112, 0x018312e9, 0x0376ae51, 0x00fffb80, 0x002fbc9b}}, Y: Field{[10]uint32{0x0137490b, 0x02f79167, 0x03bb5ba1, 0x03c859d6, 0x012c6943, 0x016cc43d, 0x0320518c, 0x01aa0d63, 0x029aef07, 0x000e0624}}},
+ {X: Field{[10]uint32{0x00b2427e, 0x036490c2, 0x01894c71, 0x02188c49, 0x003dd40d, 0x013e46c2, 0x00dae108, 0x0309cd3d, 0x00818daf, 0x0033715b}}, Y: Field{[10]uint32{0x03503cca, 0x0041fc07, 0x02c71f07, 0x00d4fd61, 0x01b43769, 0x0155e7e4, 0x01425694, 0x00a2d511, 0x009de9c8, 0x0003d2cc}}},
+ {X: Field{[10]uint32{0x0175bc6d, 0x0148039f, 0x01911cd6, 0x0298a9dd, 0x03a09312, 0x0258717e, 0x01be80a1, 0x0211e7b2, 0x0281b1f3, 0x000f77bf}}, Y: Field{[10]uint32{0x02df055d, 0x0160d615, 0x015d3a1e, 0x01442a7a, 0x027c7e2d, 0x02a001f4, 0x03fae4eb, 0x02d1e53b, 0x02dd1eb9, 0x001d760f}}},
+ {X: Field{[10]uint32{0x00576826, 0x00e41044, 0x0399e763, 0x03498eab, 0x02a18879, 0x02484b3c, 0x02bae125, 0x00b2f130, 0x03769903, 0x00369f19}}, Y: Field{[10]uint32{0x00553f08, 0x02ba7cce, 0x031d0c07, 0x00f0fc72, 0x024314cc, 0x03a01a63, 0x031f7799, 0x03116e61, 0x0188360a, 0x000b9e9b}}},
+ {X: Field{[10]uint32{0x0280d927, 0x02aa446a, 0x003859df, 0x0312b870, 0x02b8aba4, 0x01fd1556, 0x00faa801, 0x00831623, 0x0035e0bc, 0x0009846d}}, Y: Field{[10]uint32{0x014508d4, 0x0032b4df, 0x01b417ce, 0x03490a79, 0x00e47549, 0x0014a7eb, 0x01ff8c1c, 0x03141119, 0x001ae51d, 0x003ad63e}}},
+ {X: Field{[10]uint32{0x03962961, 0x03fb1ed9, 0x027bc3de, 0x0025a516, 0x020b8f4c, 0x001adc75, 0x015aa088, 0x01f12a9c, 0x014836f0, 0x002c3ef9}}, Y: Field{[10]uint32{0x03e5abe0, 0x020694e0, 0x010de2a8, 0x02c117b9, 0x021c1749, 0x0378c328, 0x018668fe, 0x01d13431, 0x022466e7, 0x00331828}}},
+ {X: Field{[10]uint32{0x01020581, 0x02ed27b2, 0x01a9eb50, 0x03ad7b7b, 0x0277d371, 0x01180f21, 0x00b7688b, 0x03b9d7eb, 0x036fdc51, 0x000680cc}}, Y: Field{[10]uint32{0x00daa7d7, 0x01c57926, 0x0218ce9f, 0x01166f9f, 0x03bd5071, 0x02b3f6f1, 0x0055fc36, 0x03b7e266, 0x030309c0, 0x000ff3c6}}},
+ {X: Field{[10]uint32{0x00c159ed, 0x03b9cbde, 0x013c3810, 0x02492793, 0x020cf728, 0x00bda28d, 0x0049b20f, 0x024556aa, 0x0215c834, 0x001d8e84}}, Y: Field{[10]uint32{0x00482684, 0x03797996, 0x0390bd7d, 0x031a7ff4, 0x037b68d5, 0x007cbc89, 0x0395fbad, 0x0387b685, 0x021ccf30, 0x000de09a}}},
+ {X: Field{[10]uint32{0x02da4edd, 0x00b09f72, 0x01eff63f, 0x03617e81, 0x00f7e664, 0x01bc0623, 0x020a586a, 0x00f8df73, 0x00c23018, 0x001ff1ed}}, Y: Field{[10]uint32{0x03ed6a8f, 0x0057244a, 0x03f50ac4, 0x03ebf915, 0x036338d2, 0x02af9ef3, 0x02493430, 0x02681bc1, 0x000e6ea8, 0x003f5e9e}}},
+ {X: Field{[10]uint32{0x0065ddd8, 0x00984d77, 0x008d7747, 0x03f3c05b, 0x03dc543b, 0x01049623, 0x01eb7d70, 0x01bd5436, 0x03c9b068, 0x00088a01}}, Y: Field{[10]uint32{0x016cc2ab, 0x0255ec29, 0x0098b43d, 0x02d0c072, 0x029a34b2, 0x0064e4f6, 0x036d1553, 0x008bbf2c, 0x0102456c, 0x002e59c2}}},
+ {X: Field{[10]uint32{0x005fda77, 0x00627c3f, 0x01603ed0, 0x01182aff, 0x02db6363, 0x028134f1, 0x0233f69c, 0x0341b9b2, 0x033698d8, 0x001e763a}}, Y: Field{[10]uint32{0x03d955f1, 0x009945c8, 0x02b28f13, 0x02789b5e, 0x02931fd4, 0x00676d48, 0x011d460e, 0x00d2a637, 0x03e11b02, 0x002fff25}}},
+ {X: Field{[10]uint32{0x03add34b, 0x013449fa, 0x01dc5d46, 0x01aab223, 0x031f801a, 0x037b3db8, 0x02b77130, 0x0386db56, 0x02188e72, 0x00288d99}}, Y: Field{[10]uint32{0x03d60ed1, 0x00daaf9d, 0x03aebb17, 0x0321464f, 0x0070e99a, 0x00543fec, 0x034cd1cd, 0x00644c9d, 0x0236f3e7, 0x003bc8f6}}},
+ {X: Field{[10]uint32{0x01dd9612, 0x03f06ed2, 0x013be480, 0x02cfe87c, 0x01b1fcbd, 0x00fe91a9, 0x023e8e74, 0x0205b644, 0x004ddde6, 0x002daeb4}}, Y: Field{[10]uint32{0x02a4e511, 0x02c0402d, 0x035467f1, 0x001f6566, 0x01850c65, 0x0116e02c, 0x00b7f346, 0x02c9ce9a, 0x0209a290, 0x001617eb}}},
+ {X: Field{[10]uint32{0x00c3dfbd, 0x007874bd, 0x03aceb49, 0x0163cf5b, 0x0133fcbd, 0x02ed4063, 0x03113db8, 0x039c54a0, 0x00253353, 0x000afc87}}, Y: Field{[10]uint32{0x038d896e, 0x03113273, 0x033ef569, 0x03628356, 0x03b9fec4, 0x00e91ec1, 0x00491214, 0x01356f23, 0x03a74e8a, 0x0038e80c}}},
+ {X: Field{[10]uint32{0x01842744, 0x03777497, 0x02dda358, 0x0099a817, 0x0041e9ad, 0x01c4247d, 0x03f3a90e, 0x038d7418, 0x0241e978, 0x0019309e}}, Y: Field{[10]uint32{0x01ae32d1, 0x0304ce4f, 0x03d27521, 0x0008ed49, 0x02bed768, 0x03f99f05, 0x00aac9ec, 0x029a5662, 0x025e08fd, 0x003f2ed8}}},
+ {X: Field{[10]uint32{0x0081a58d, 0x010b4ad9, 0x03399b75, 0x02b680be, 0x00af62ac, 0x018f35f2, 0x00ef4350, 0x016d7a69, 0x02f6fdfe, 0x00188287}}, Y: Field{[10]uint32{0x01b8054f, 0x030c16b7, 0x01ae57be, 0x0317b209, 0x03a45fa7, 0x0151f880, 0x007f105c, 0x024e9be8, 0x023c5503, 0x002c2de7}}},
+ {X: Field{[10]uint32{0x007b95cd, 0x01d19d4c, 0x038a1ecd, 0x014681af, 0x0215e712, 0x0093b831, 0x03ef68b4, 0x01c550d1, 0x01317cef, 0x000548fc}}, Y: Field{[10]uint32{0x00743b1d, 0x0145bffc, 0x02612bf5, 0x03154f70, 0x00a55806, 0x03c4796d, 0x01fe67a3, 0x03599370, 0x00cc1d8a, 0x0031c955}}},
+ {X: Field{[10]uint32{0x02ea0cfd, 0x035ca513, 0x03700f66, 0x00f02dd4, 0x01b43f76, 0x0335cff3, 0x00d4d8c2, 0x021e5300, 0x003c0a9c, 0x0035d94c}}, Y: Field{[10]uint32{0x03bc267b, 0x0180f495, 0x02623781, 0x008ab806, 0x0035b4cd, 0x028c1937, 0x0217b73d, 0x035dea8e, 0x00a5204d, 0x002ebf2b}}},
+ {X: Field{[10]uint32{0x00c468b6, 0x03c12b59, 0x01a8ea17, 0x01ed860e, 0x01ffbbf8, 0x00972f10, 0x0198759c, 0x03a59594, 0x021afafc, 0x0029d7ad}}, Y: Field{[10]uint32{0x01869873, 0x0125f659, 0x007b8041, 0x00859356, 0x03a8eba3, 0x029b5439, 0x0049b181, 0x0122a94f, 0x0093240f, 0x0026600a}}},
+ {X: Field{[10]uint32{0x00e59f2a, 0x01381aef, 0x03cfa408, 0x01f6fac2, 0x01e7053f, 0x009079a4, 0x01813c71, 0x0246db09, 0x034cd0bb, 0x001fe906}}, Y: Field{[10]uint32{0x0184aec7, 0x020ec738, 0x0209f7e5, 0x00b0012a, 0x039431e2, 0x03da8b15, 0x017e7e20, 0x01a57e0c, 0x0379755a, 0x00282505}}},
+ {X: Field{[10]uint32{0x02e4dbf5, 0x0333fd85, 0x03d6fcc5, 0x03ef6082, 0x033bfa1b, 0x02b889db, 0x01eb4408, 0x03c4ab63, 0x01b72240, 0x00205b03}}, Y: Field{[10]uint32{0x037e52d0, 0x0059810f, 0x02c9f67c, 0x0342a606, 0x02e57acb, 0x03dc0957, 0x009dd4bb, 0x03996251, 0x013dd91e, 0x000a94b2}}},
+ {X: Field{[10]uint32{0x023414f8, 0x03725430, 0x0380fbb7, 0x021ec305, 0x00ddbb3d, 0x011a4178, 0x0390ac73, 0x00509544, 0x01f1317f, 0x000cfd8d}}, Y: Field{[10]uint32{0x014bfbcb, 0x01a950f9, 0x013bdb62, 0x02000afe, 0x01151235, 0x02f0acb0, 0x034d570b, 0x006622e5, 0x015584eb, 0x001d0d68}}},
+ {X: Field{[10]uint32{0x0251999c, 0x02fb11a8, 0x00eb3e94, 0x0079ed78, 0x030bdfe1, 0x02f10e29, 0x0307185f, 0x02ec0cd4, 0x02d704b0, 0x0034a50e}}, Y: Field{[10]uint32{0x036d577e, 0x02925059, 0x0006f19a, 0x01aceffb, 0x00b6097d, 0x03fdba7f, 0x01e41def, 0x028c53af, 0x03cf19aa, 0x000b72a3}}},
+ {X: Field{[10]uint32{0x01fb1da6, 0x00494967, 0x01516b01, 0x01970434, 0x00fb524b, 0x01791283, 0x0054390b, 0x01d69bfb, 0x03bfc543, 0x0009aa87}}, Y: Field{[10]uint32{0x01a91b02, 0x009380e6, 0x03a2fd4b, 0x01bc02af, 0x0083973c, 0x039fa066, 0x037d0b6e, 0x01d7380c, 0x02a604c5, 0x00127b3a}}},
+ {X: Field{[10]uint32{0x03d28d20, 0x02d633e9, 0x000cd65e, 0x01f7a08c, 0x02ab1871, 0x02523cbd, 0x026d7da1, 0x0280c172, 0x001af866, 0x001e02bb}}, Y: Field{[10]uint32{0x0008b91a, 0x03ca5e2f, 0x0392992c, 0x000862ab, 0x02414b3a, 0x001edbde, 0x0075b6d1, 0x00387aa4, 0x0041e45a, 0x00369940}}},
+ {X: Field{[10]uint32{0x00b88b67, 0x035b540b, 0x03b3d5ee, 0x00fca7fd, 0x01ef9811, 0x00f31079, 0x0115853b, 0x037528f9, 0x02598e59, 0x000773fc}}, Y: Field{[10]uint32{0x02b77271, 0x02005c86, 0x012f28c6, 0x02faa6ae, 0x03aed86c, 0x00e0db81, 0x014307ae, 0x01c79159, 0x02307c68, 0x0035e5e1}}},
+ {X: Field{[10]uint32{0x033ff70d, 0x0223b90d, 0x00b01e24, 0x00ea736d, 0x038f336f, 0x03b38718, 0x02367eb5, 0x0064de4f, 0x00a27732, 0x002c66bd}}, Y: Field{[10]uint32{0x00821dec, 0x01357de7, 0x0241dc21, 0x0337553d, 0x03b9e73f, 0x01aa3b9c, 0x037f27a2, 0x0168b509, 0x0039a510, 0x0028faa2}}},
+ {X: Field{[10]uint32{0x00f6755e, 0x01e0bdad, 0x02066acf, 0x00b69223, 0x0235f24e, 0x024c925c, 0x00b6126b, 0x0277dbca, 0x0329548a, 0x00072307}}, Y: Field{[10]uint32{0x01ff432d, 0x017be584, 0x030c9179, 0x008ea198, 0x0278108b, 0x0065a81f, 0x00c7e2a3, 0x006bb173, 0x03526a1e, 0x00069e6a}}},
+ {X: Field{[10]uint32{0x015716ce, 0x00454faf, 0x021d4f0b, 0x01d44b10, 0x00e4d700, 0x010c4e5a, 0x00a10b7b, 0x030f08f2, 0x01da1ad6, 0x002dbfe3}}, Y: Field{[10]uint32{0x01ce61b8, 0x00c1be69, 0x0232d7c9, 0x030aaa1e, 0x00af8dbe, 0x036cf807, 0x00d21e4e, 0x01059f28, 0x01c6b7b7, 0x00134e1a}}},
+ {X: Field{[10]uint32{0x00f47b5c, 0x012233b4, 0x02ccb375, 0x02760c39, 0x00ec08cf, 0x03e82b58, 0x00219329, 0x02a12a06, 0x00acf61b, 0x00373bfd}}, Y: Field{[10]uint32{0x0137d6f9, 0x029bad70, 0x013b1736, 0x02c0e158, 0x00fb1b8d, 0x029292aa, 0x03d5508a, 0x0186d220, 0x00e192bc, 0x002526bb}}},
+ {X: Field{[10]uint32{0x00a5ebef, 0x03bacdf7, 0x01c8b131, 0x0262fa14, 0x01843ccf, 0x028f3a10, 0x004aa189, 0x01a2725f, 0x03a7b709, 0x00155879}}, Y: Field{[10]uint32{0x019a14da, 0x007c56ea, 0x015a709a, 0x029b9977, 0x0233b924, 0x01ad0528, 0x00e6b7f2, 0x02f8d90c, 0x0017f298, 0x0012c423}}},
+ {X: Field{[10]uint32{0x0395a257, 0x003265e8, 0x008027ca, 0x01516cf2, 0x019c56a2, 0x038193a7, 0x025d5bb2, 0x00565423, 0x017789b0, 0x00136625}}, Y: Field{[10]uint32{0x00b6e0d0, 0x007c8850, 0x02675795, 0x03396dc1, 0x00506964, 0x016c0271, 0x03200c9f, 0x001d5b16, 0x0333ac95, 0x002abaeb}}},
+ {X: Field{[10]uint32{0x033bfc8e, 0x01a84bf8, 0x03668124, 0x00befd2b, 0x00e9da51, 0x019b3201, 0x02d55a9d, 0x00f12cc2, 0x026e0637, 0x0020ad63}}, Y: Field{[10]uint32{0x025ffb38, 0x03011e06, 0x013d387c, 0x01f4bfcd, 0x01d6d757, 0x03fd310a, 0x033b5c21, 0x0078dcb0, 0x022d98dc, 0x0020de04}}},
+ {X: Field{[10]uint32{0x02c6cdf3, 0x0266fa00, 0x0063ad11, 0x01d4d9a5, 0x03714c3d, 0x03beb113, 0x017d8809, 0x01e12ff9, 0x008aa773, 0x003d27ea}}, Y: Field{[10]uint32{0x0218b3f4, 0x02a8e7e6, 0x00772b96, 0x02c12608, 0x02aa9855, 0x024d20ef, 0x03e72814, 0x02904722, 0x02c02164, 0x00106bfd}}},
+ {X: Field{[10]uint32{0x00efd78c, 0x031633b0, 0x03073969, 0x03c035e2, 0x010ce910, 0x030614a9, 0x01b97a78, 0x01168630, 0x01dbac84, 0x0019f521}}, Y: Field{[10]uint32{0x00981e97, 0x01bcc821, 0x034be44e, 0x02e73c67, 0x01596f49, 0x022fc1f6, 0x00aa5a82, 0x00acc57f, 0x012a24ff, 0x001c776a}}},
+ {X: Field{[10]uint32{0x0304d4cd, 0x02a58411, 0x0350adb2, 0x01fa2d74, 0x0030a46f, 0x0169c5d8, 0x0399883b, 0x00e30f3f, 0x02f2c190, 0x0024517d}}, Y: Field{[10]uint32{0x0222b0bc, 0x00036f9a, 0x00add567, 0x00aedb9e, 0x036c8e42, 0x035de2ce, 0x00664d54, 0x0317f875, 0x01e7852a, 0x0027645e}}},
+ {X: Field{[10]uint32{0x02b2631b, 0x00f88fd1, 0x024b3550, 0x02260237, 0x01536740, 0x001c66af, 0x033848ce, 0x03d7c473, 0x0247efc2, 0x00124b54}}, Y: Field{[10]uint32{0x008fd750, 0x02e31020, 0x00863d50, 0x002ca49c, 0x009f021d, 0x02656935, 0x0168877c, 0x032261fb, 0x03627812, 0x000dd2c1}}},
+ {X: Field{[10]uint32{0x03dd1dec, 0x02072985, 0x035490a3, 0x002d1861, 0x0125c661, 0x00af6e71, 0x018d2317, 0x0059e24a, 0x03b8bb81, 0x0016e377}}, Y: Field{[10]uint32{0x031f7568, 0x028d4c5e, 0x031cea92, 0x0030fa20, 0x03c7ae17, 0x00cf53ce, 0x010dee01, 0x0086345f, 0x0364fce3, 0x002d1f4d}}},
+ {X: Field{[10]uint32{0x02406c65, 0x0174c3c3, 0x02c5c6a3, 0x03af6847, 0x00063c6f, 0x035531b5, 0x01e603cc, 0x005906bd, 0x03ba25a6, 0x002236dc}}, Y: Field{[10]uint32{0x0000a753, 0x01efc6d2, 0x0056b402, 0x03843051, 0x009b8b5b, 0x00a57e30, 0x004c67ae, 0x035edc22, 0x037b1c1d, 0x000e6c1b}}},
+ {X: Field{[10]uint32{0x00382451, 0x020246a7, 0x03721fb3, 0x02f78cc3, 0x032a7037, 0x02c25558, 0x0185070b, 0x007ad0b3, 0x009aa23c, 0x000d2573}}, Y: Field{[10]uint32{0x029799ef, 0x00f843ed, 0x0064dd9b, 0x013d18bf, 0x030b82ff, 0x031d55ef, 0x00299573, 0x020b7dd1, 0x03216f39, 0x001ffaae}}},
+ {X: Field{[10]uint32{0x0045d7a2, 0x026994b1, 0x034f1cd6, 0x014b0676, 0x010a4f7b, 0x0348c26c, 0x03756669, 0x00431e4f, 0x02a6970e, 0x003a2973}}, Y: Field{[10]uint32{0x02402b96, 0x007c3a8c, 0x01982b96, 0x0090a536, 0x02fab476, 0x01a3a305, 0x012dbf36, 0x0166ee5b, 0x02bfbd52, 0x0036ab36}}},
+ {X: Field{[10]uint32{0x03931f9a, 0x0002d0d9, 0x02e32b57, 0x03cacacb, 0x0051af33, 0x0367bf94, 0x009c4837, 0x01eb78e6, 0x038ae81a, 0x0001ba31}}, Y: Field{[10]uint32{0x00291d35, 0x038a5d4b, 0x029ca47b, 0x024cc375, 0x027d1d51, 0x038429e0, 0x035412cb, 0x01068516, 0x0104751b, 0x00395991}}},
+ {X: Field{[10]uint32{0x010a539e, 0x0345c24c, 0x01208ab4, 0x02ddd137, 0x00b9551d, 0x038ea4bb, 0x011722b1, 0x016cbe0a, 0x00a3010c, 0x002e3d48}}, Y: Field{[10]uint32{0x030f3d75, 0x02474025, 0x007909e2, 0x007b641d, 0x03a96d3d, 0x0245444f, 0x026451e1, 0x00b7b63d, 0x003ab671, 0x00196407}}},
+ {X: Field{[10]uint32{0x02d8005a, 0x037b02ec, 0x00adfe49, 0x029f2e01, 0x00ae0dea, 0x028b05bf, 0x00bd9173, 0x02605622, 0x00586445, 0x002814e1}}, Y: Field{[10]uint32{0x020d7a67, 0x02329b77, 0x029c8ca5, 0x022cf581, 0x03e71260, 0x02624974, 0x00dab73f, 0x0327ee24, 0x030023dc, 0x0009e20b}}},
+ {X: Field{[10]uint32{0x01222144, 0x03e28145, 0x036001fa, 0x000e704b, 0x022117cf, 0x030a566f, 0x018b631f, 0x0024907b, 0x0016aa7f, 0x00104a01}}, Y: Field{[10]uint32{0x037f58e4, 0x0205ec6b, 0x038e1808, 0x0138cabb, 0x02613f35, 0x010fdf81, 0x015c363c, 0x0210cfb9, 0x000dfd8e, 0x0030bfbe}}},
+ {X: Field{[10]uint32{0x00c7a1ee, 0x023e2a86, 0x0241a7dd, 0x003ac142, 0x028b536f, 0x00f584ec, 0x01130b7e, 0x00f44147, 0x0336cbf8, 0x00312e3f}}, Y: Field{[10]uint32{0x027b4d47, 0x0359fb17, 0x037fc276, 0x0052b525, 0x01f6cf6c, 0x01d448e6, 0x02ba76b4, 0x00cded19, 0x004c8867, 0x0021f4f1}}},
+ {X: Field{[10]uint32{0x00a51ac1, 0x029fd6a8, 0x002a93b7, 0x02e61b68, 0x031de630, 0x02df3495, 0x03850106, 0x00e38e9a, 0x013a7cb9, 0x00103ada}}, Y: Field{[10]uint32{0x036d8d18, 0x038db0eb, 0x0389fa51, 0x0293bea7, 0x01c7ede7, 0x0132e201, 0x003b770c, 0x0105f72f, 0x01e014d3, 0x0009ee1d}}},
+ {X: Field{[10]uint32{0x0381dad4, 0x012a6f5f, 0x01fb86e9, 0x02137cdc, 0x00ac0c9d, 0x03cb77c9, 0x0365d675, 0x000601d4, 0x010254e3, 0x003dd246}}, Y: Field{[10]uint32{0x005a6e46, 0x03093357, 0x00c7c17a, 0x031cbb1a, 0x0268af0c, 0x0349d758, 0x01bf1b5a, 0x00203f72, 0x0336c549, 0x001a89c6}}},
+ {X: Field{[10]uint32{0x009f287e, 0x014c9521, 0x032e36a0, 0x02b30d93, 0x02f16388, 0x01e88fe3, 0x026996c9, 0x00676853, 0x021de4ce, 0x0033c4c9}}, Y: Field{[10]uint32{0x03adac10, 0x002a5a1c, 0x02b7c04a, 0x020f1dc6, 0x008218c4, 0x02e1ca9e, 0x024ab51b, 0x01d11fdf, 0x018dbe1a, 0x00155a21}}},
+ {X: Field{[10]uint32{0x013e8cb3, 0x00f1d86b, 0x02a81726, 0x005dcb1c, 0x0394cfd5, 0x00889a11, 0x01166066, 0x021f7f55, 0x02629dd0, 0x00271af6}}, Y: Field{[10]uint32{0x010c0eb3, 0x006d9e80, 0x030be05b, 0x0317896e, 0x019e5fbc, 0x018bff1e, 0x035628ed, 0x0329faec, 0x007b9c7f, 0x000b1df7}}},
+ {X: Field{[10]uint32{0x01d26bf3, 0x02adf96e, 0x01922bb7, 0x01ef456c, 0x01c1526d, 0x02cc5256, 0x02cc9a55, 0x0277b083, 0x035f6443, 0x00363440}}, Y: Field{[10]uint32{0x00dbbe30, 0x006e5233, 0x003143eb, 0x00dae72d, 0x03b922a4, 0x02506efd, 0x007f697b, 0x03fa8fd8, 0x00d6ccfd, 0x002adf8d}}},
+ {X: Field{[10]uint32{0x01c1d424, 0x02f08a34, 0x022a939c, 0x0296c028, 0x037d53ae, 0x00203c21, 0x032e1047, 0x01e98378, 0x0223b822, 0x0031bd02}}, Y: Field{[10]uint32{0x01d80345, 0x01af42f0, 0x0064d7fe, 0x01af96a3, 0x0263a313, 0x022c8dd2, 0x006f1f4b, 0x02317244, 0x018fcf4b, 0x00385af1}}},
+ {X: Field{[10]uint32{0x03a43536, 0x0002e3d8, 0x02509494, 0x03358748, 0x01d1e007, 0x03388b78, 0x007c2dec, 0x034e95c5, 0x02229477, 0x000e9a76}}, Y: Field{[10]uint32{0x01a0e284, 0x030bef92, 0x03c3925c, 0x035ce272, 0x0246b98c, 0x026de73e, 0x00c95e1c, 0x01818b1f, 0x03d5c4ba, 0x0031e713}}},
+ {X: Field{[10]uint32{0x0325fc9d, 0x01ede500, 0x0339b7bc, 0x020a42a8, 0x00814c3d, 0x01963c86, 0x037f6fca, 0x0312291a, 0x00e5492f, 0x0006d7ee}}, Y: Field{[10]uint32{0x007fff39, 0x01bef9f7, 0x02982164, 0x00d63bfa, 0x01d2ca42, 0x0124d6c0, 0x02f49f4c, 0x002064ad, 0x03124c9e, 0x00298a42}}},
+ {X: Field{[10]uint32{0x009a3845, 0x02fa3b0d, 0x014c747b, 0x0088c7c1, 0x028a7559, 0x0069fe9f, 0x01e1c37d, 0x02d3ab72, 0x0302b004, 0x003f6e83}}, Y: Field{[10]uint32{0x011646fe, 0x0208088e, 0x0262ae2b, 0x02775cb5, 0x0106c3c0, 0x00c310f2, 0x02defd7e, 0x01c709bf, 0x01c9e964, 0x0010b698}}},
+ {X: Field{[10]uint32{0x035140df, 0x03c32ce8, 0x01760f38, 0x010cbebc, 0x007c1663, 0x018ce262, 0x03279f70, 0x02598af9, 0x01bfcb7b, 0x0030e4e4}}, Y: Field{[10]uint32{0x02f556e1, 0x02d58f26, 0x02d664c5, 0x02075e94, 0x03449f9f, 0x03de7606, 0x00b8b3ff, 0x020b3121, 0x003453dc, 0x003a8538}}},
+ {X: Field{[10]uint32{0x0059cbcb, 0x0385d102, 0x01321675, 0x00280886, 0x0019aedd, 0x01b2c831, 0x000e36cc, 0x032ca86b, 0x013dc716, 0x000953fc}}, Y: Field{[10]uint32{0x02e35921, 0x002b4ae4, 0x03701c40, 0x033e0fac, 0x00896e02, 0x011fd6fa, 0x036bfe32, 0x009abe78, 0x00f3916d, 0x00009913}}},
+ {X: Field{[10]uint32{0x00930474, 0x0327d5ca, 0x00c5b071, 0x0176a9f2, 0x021769d3, 0x0215a009, 0x008974e9, 0x0192b68b, 0x0260e9b4, 0x0009392a}}, Y: Field{[10]uint32{0x00479f8e, 0x01cd4e3a, 0x02af78d9, 0x00e3672e, 0x036ed37c, 0x0332501b, 0x022244bc, 0x013f8202, 0x02d182a9, 0x00277df0}}},
+ {X: Field{[10]uint32{0x017543a6, 0x00b13db4, 0x01ef8070, 0x03062ffc, 0x02fb19a4, 0x01667f00, 0x03d81b38, 0x01a170fb, 0x03adf906, 0x001eb66e}}, Y: Field{[10]uint32{0x01246f95, 0x02ab5931, 0x02df0133, 0x010d1249, 0x00da45e2, 0x02294cf7, 0x013ac8fd, 0x006293dc, 0x01709c40, 0x00261e2e}}},
+ {X: Field{[10]uint32{0x02d8ae53, 0x00495958, 0x022b501d, 0x00e6f97e, 0x00c6e083, 0x01f7eeaa, 0x009eb2df, 0x021c5f83, 0x00d9383a, 0x0025f63f}}, Y: Field{[10]uint32{0x03c6a777, 0x0300a3c1, 0x0074c4a2, 0x0329fe3d, 0x03b1f114, 0x03616be9, 0x00363e15, 0x013e19fe, 0x024cf578, 0x00061e72}}},
+ {X: Field{[10]uint32{0x02fe7572, 0x01c77762, 0x0172cb87, 0x03bd417b, 0x002af1ac, 0x0315bfeb, 0x014d1a92, 0x030cb878, 0x03855a08, 0x000f83f1}}, Y: Field{[10]uint32{0x02149390, 0x0396c25b, 0x020b5884, 0x03cf7c56, 0x01bb1768, 0x028c2d55, 0x0044fc9d, 0x022253c2, 0x03fcfd1e, 0x001b5e6d}}},
+ {X: Field{[10]uint32{0x01602562, 0x01fb3ed9, 0x037ec55b, 0x039ff1d5, 0x02fda483, 0x02275bd7, 0x023a9b53, 0x03619076, 0x03dbb132, 0x00367685}}, Y: Field{[10]uint32{0x0223b70b, 0x03e318f1, 0x001a7b67, 0x017a2821, 0x0033a4f3, 0x03e3c8ec, 0x027f9e63, 0x0035c0bb, 0x01e45feb, 0x0020391c}}},
+ {X: Field{[10]uint32{0x03ca18f3, 0x026026db, 0x039eca3d, 0x014e75be, 0x03f38e28, 0x02dc484a, 0x0135daa7, 0x0078d20a, 0x0366afcd, 0x0006123d}}, Y: Field{[10]uint32{0x036f5884, 0x003d1342, 0x00b7dee7, 0x03d2a4f5, 0x005f9196, 0x01d23b65, 0x0135df63, 0x0153c927, 0x0082645d, 0x0032a69e}}},
+ {X: Field{[10]uint32{0x017a9f2f, 0x02728112, 0x02be0a84, 0x011fdcb1, 0x031a9d00, 0x03f0b457, 0x0165b2d4, 0x02b1d96b, 0x00ae9a7d, 0x003b4dd1}}, Y: Field{[10]uint32{0x02b5fb5b, 0x00d113da, 0x02f36b76, 0x0121c19b, 0x032fdc52, 0x00f11dfb, 0x0323d032, 0x031bdf92, 0x012ed4e5, 0x000f3ddb}}},
+ {X: Field{[10]uint32{0x033676d7, 0x033fbf97, 0x026b7b1c, 0x0332a188, 0x0391212a, 0x000c49c1, 0x00a3a65e, 0x01516ac4, 0x0373edf3, 0x0031181e}}, Y: Field{[10]uint32{0x017eb3ec, 0x010824cf, 0x02d7728c, 0x02711771, 0x012628ac, 0x008c38f7, 0x000cd036, 0x03de0f57, 0x025b8595, 0x000c6b51}}},
+ {X: Field{[10]uint32{0x000e96f0, 0x0392c2af, 0x00699641, 0x006d93ac, 0x00bfb9ad, 0x00e8fe94, 0x020af049, 0x01a75e2c, 0x02ed2aaf, 0x00070258}}, Y: Field{[10]uint32{0x01aede44, 0x015a92ab, 0x0012302d, 0x01828e5f, 0x02591b5a, 0x021e9fda, 0x029c5b0a, 0x038e8a90, 0x02f6e088, 0x00127c46}}},
+ {X: Field{[10]uint32{0x01c19454, 0x02682637, 0x0045b1f0, 0x006ab989, 0x0182250e, 0x02ded0e0, 0x00dc6caf, 0x02567826, 0x036c9a41, 0x0001a811}}, Y: Field{[10]uint32{0x0111c7e1, 0x014bb1bd, 0x0233fbe5, 0x02e7331f, 0x00ab4288, 0x03238d45, 0x0266cd37, 0x031324b0, 0x00978ae3, 0x0015a10b}}},
+ {X: Field{[10]uint32{0x00191f1c, 0x019e0c28, 0x028f6b93, 0x0203a729, 0x02cdb59a, 0x00a7c0f1, 0x03149993, 0x002a829a, 0x00f653a3, 0x00009368}}, Y: Field{[10]uint32{0x00138235, 0x00b1d5cb, 0x00b53d1a, 0x01a67880, 0x00cdbd3b, 0x00187185, 0x010683af, 0x02f3d6e0, 0x0080aa78, 0x0020f9e4}}},
+ {X: Field{[10]uint32{0x021a7764, 0x00dd0fe6, 0x0075f6f3, 0x023c089f, 0x02a07872, 0x00c99100, 0x00719010, 0x02741fd6, 0x00832247, 0x00001b0d}}, Y: Field{[10]uint32{0x00dcc4c6, 0x024b02e8, 0x01bffeb1, 0x0043c361, 0x00be7792, 0x016f6916, 0x03128d84, 0x015021af, 0x03744a12, 0x0028ddeb}}},
+ {X: Field{[10]uint32{0x01c43baf, 0x01e3e675, 0x00905154, 0x03d28525, 0x011cdc26, 0x020acdb8, 0x02cf2498, 0x032c9ac9, 0x03bb4d14, 0x00084aaa}}, Y: Field{[10]uint32{0x0047e281, 0x0358140e, 0x01148ca1, 0x028ff099, 0x0011c22e, 0x02ea3961, 0x02ed57d7, 0x0160ae63, 0x020a81d1, 0x003a4502}}},
+ {X: Field{[10]uint32{0x0343b10e, 0x005096ac, 0x011edf37, 0x031092a5, 0x02f26ee0, 0x02c2e89c, 0x006824e5, 0x02882a35, 0x00f12afc, 0x00289d1e}}, Y: Field{[10]uint32{0x004036a3, 0x020292ef, 0x017598ec, 0x028df1f3, 0x0270ad0b, 0x01e0635e, 0x03bdecb6, 0x025ea968, 0x0386a7fc, 0x001479d2}}},
+ {X: Field{[10]uint32{0x0172e293, 0x03dc4681, 0x03fe5716, 0x001fa336, 0x02b9b8a5, 0x03d57838, 0x022fa7e8, 0x03e7ae8b, 0x029a7171, 0x00387049}}, Y: Field{[10]uint32{0x02afba46, 0x024cd70c, 0x00848e63, 0x029db40d, 0x005562c4, 0x03a09da1, 0x00d8e242, 0x00c90be6, 0x01700895, 0x001073e8}}},
+ {X: Field{[10]uint32{0x01e09efb, 0x0209f03d, 0x007804d5, 0x022c9082, 0x0062f0f7, 0x03303ef6, 0x03328e1e, 0x0238642e, 0x004c1941, 0x00081355}}, Y: Field{[10]uint32{0x03d52fb7, 0x015c1664, 0x009f06d0, 0x03514d39, 0x0018cf4e, 0x013e6030, 0x023799cb, 0x00561c42, 0x00e31f5d, 0x00319826}}},
+ {X: Field{[10]uint32{0x025172ad, 0x0121b15e, 0x016ee361, 0x02c8eac6, 0x00980138, 0x01e2d33c, 0x0230de2f, 0x03cbcb7c, 0x030a11a6, 0x0005bb77}}, Y: Field{[10]uint32{0x01992684, 0x028338ad, 0x0318bb39, 0x02d3ee05, 0x001327bd, 0x0040b108, 0x004a7926, 0x02cf0648, 0x018fed8a, 0x0038f6cd}}},
+ {X: Field{[10]uint32{0x038995f1, 0x020a74ca, 0x0080eaf6, 0x0069e72c, 0x013df700, 0x008c54de, 0x026b7c10, 0x0365ad97, 0x00312298, 0x001f27de}}, Y: Field{[10]uint32{0x01f51e5c, 0x006551bb, 0x000e4a60, 0x0346eedc, 0x02b2481d, 0x014f2ccb, 0x002018fc, 0x0283c6c9, 0x003c90e3, 0x00080df3}}},
+ {X: Field{[10]uint32{0x0198fb1c, 0x01a2c598, 0x02dee211, 0x03a54c31, 0x0263aee7, 0x00b5a580, 0x03913a5b, 0x02e3db06, 0x01461dbe, 0x0004a70b}}, Y: Field{[10]uint32{0x01137964, 0x02b097d5, 0x00dc1747, 0x02fdf3a8, 0x027bbd80, 0x00a1f559, 0x0214b72a, 0x009fe68a, 0x02b961c0, 0x000a7ffb}}},
+ {X: Field{[10]uint32{0x036175aa, 0x02812707, 0x03b12570, 0x009f818c, 0x02de2049, 0x00c896d4, 0x011f9daa, 0x024cbbdb, 0x016530d4, 0x0022f8b9}}, Y: Field{[10]uint32{0x005510c8, 0x03060014, 0x0340423c, 0x02f5a9a1, 0x03fabfe4, 0x00f02547, 0x0007056e, 0x00334500, 0x02871a13, 0x000d92d3}}},
+ {X: Field{[10]uint32{0x0252fa6c, 0x024265d8, 0x00c5e27c, 0x00b97e20, 0x0142a6e1, 0x014ed310, 0x00ceb624, 0x02719eac, 0x030842ae, 0x00102d0f}}, Y: Field{[10]uint32{0x02a2068f, 0x00a812f3, 0x02cca443, 0x03fb448f, 0x00248f11, 0x03168b4b, 0x025e46f2, 0x00b96ec8, 0x02c5de1b, 0x001b46b1}}},
+ {X: Field{[10]uint32{0x02c669df, 0x011ce816, 0x00f17087, 0x026f8dc9, 0x014c2cba, 0x00f1276d, 0x01caa559, 0x0137cf3c, 0x038a02f3, 0x0011f888}}, Y: Field{[10]uint32{0x00f31f3a, 0x026fa0a7, 0x01908939, 0x009d8237, 0x00acfc61, 0x00294bdf, 0x02104a36, 0x00957fb2, 0x03a203ee, 0x00134133}}},
+ {X: Field{[10]uint32{0x01cfc35a, 0x029727b8, 0x02d607c7, 0x012d77e3, 0x03b3de47, 0x01315975, 0x00433238, 0x031b6ad2, 0x00553a45, 0x0005ca1b}}, Y: Field{[10]uint32{0x0320007f, 0x01c8f258, 0x000cf6d8, 0x0091e4cd, 0x035b194d, 0x02550c41, 0x03104b27, 0x01454582, 0x034775a4, 0x00185cb4}}},
+ {X: Field{[10]uint32{0x01d7bb31, 0x02c810a3, 0x01258b7f, 0x0325367b, 0x010a3e96, 0x0158cab1, 0x010bd344, 0x024b2b42, 0x039d3c14, 0x000d146b}}, Y: Field{[10]uint32{0x014974d6, 0x03e2d06c, 0x0079acc5, 0x004e49f3, 0x007687c5, 0x013068ec, 0x0284fd78, 0x01b81b9c, 0x03832123, 0x0037524c}}},
+ {X: Field{[10]uint32{0x014e5ce2, 0x03409480, 0x01619d23, 0x00e96caa, 0x00ed9afa, 0x01b82b11, 0x01bee2da, 0x0179ff2d, 0x0081eccc, 0x002c02a9}}, Y: Field{[10]uint32{0x008866a1, 0x032a3efa, 0x022424a2, 0x02a79f9d, 0x0210d732, 0x0107e07e, 0x002ceb74, 0x00cb383d, 0x00861f00, 0x0001a1ed}}},
+ {X: Field{[10]uint32{0x00b23311, 0x01571fa8, 0x01e2fa8a, 0x035301d8, 0x020ef706, 0x0135cd6c, 0x008a2393, 0x03247fc9, 0x029cc75b, 0x0014fb23}}, Y: Field{[10]uint32{0x01d45919, 0x00413d91, 0x027688b5, 0x012e7f60, 0x00c352f5, 0x0175716a, 0x01104e01, 0x02c7b46d, 0x03c063c4, 0x0006c477}}},
+ {X: Field{[10]uint32{0x01efab66, 0x02461b29, 0x030a4cdc, 0x01e1eaed, 0x032fc80d, 0x01c78ce0, 0x03eddd8d, 0x00b268ec, 0x01b39c07, 0x0007b378}}, Y: Field{[10]uint32{0x026dd626, 0x02b82f2b, 0x025f30da, 0x00c25228, 0x00239f0c, 0x00812734, 0x00cecb18, 0x025d8adc, 0x02c75a79, 0x00013d6b}}},
+ {X: Field{[10]uint32{0x03b1394e, 0x0321d526, 0x012e65af, 0x02759dc1, 0x011e9023, 0x02823be9, 0x039b479f, 0x015631ea, 0x03c3702b, 0x00007f8b}}, Y: Field{[10]uint32{0x02845c2c, 0x02f5c831, 0x0326d30f, 0x003229f6, 0x0211a64c, 0x01b523f9, 0x016df2b6, 0x0174eb08, 0x02ae3a39, 0x003dad61}}},
+ {X: Field{[10]uint32{0x006d5dec, 0x01c62c78, 0x039ba872, 0x0314a296, 0x0376e64c, 0x03c0c71e, 0x02ba0c20, 0x00ab5560, 0x032fb8ac, 0x002d4f42}}, Y: Field{[10]uint32{0x02e3a289, 0x03c0d3a4, 0x0087b351, 0x01de51da, 0x02041015, 0x01f48c94, 0x03b034c1, 0x021ea992, 0x018951ab, 0x00226139}}},
+ {X: Field{[10]uint32{0x0337cf95, 0x02b784a3, 0x02ea7bc0, 0x00428845, 0x01a06ca3, 0x03ccd760, 0x03fe5d81, 0x008d999c, 0x011603bc, 0x00001539}}, Y: Field{[10]uint32{0x0312bd4a, 0x00e9e05c, 0x030b4c5b, 0x01e92e64, 0x01923660, 0x03a05cd5, 0x037206d6, 0x00b0afc6, 0x00269deb, 0x003d1c72}}},
+ {X: Field{[10]uint32{0x03b29a7b, 0x036ca0d9, 0x01f598c4, 0x02b19754, 0x013b8087, 0x0322eae4, 0x01e22244, 0x008e8b4e, 0x0372a1d4, 0x0039fbed}}, Y: Field{[10]uint32{0x03a9b6e7, 0x039171e4, 0x023bd587, 0x0282854b, 0x03704a39, 0x01fda863, 0x02b47f41, 0x0022c2fc, 0x0186031d, 0x003cb7ed}}},
+ {X: Field{[10]uint32{0x00b519fe, 0x011ae634, 0x03e67034, 0x00ab7020, 0x010b163f, 0x027bc0c8, 0x03b43097, 0x018ea0ab, 0x01aae8a2, 0x0017b167}}, Y: Field{[10]uint32{0x01ef82b9, 0x0057aa1e, 0x0304e842, 0x01bd7016, 0x03a8a531, 0x01395613, 0x01c6aab9, 0x03ab94c3, 0x00c36a3d, 0x000baad3}}},
+ {X: Field{[10]uint32{0x00bb62f5, 0x032e40f5, 0x0121658c, 0x01a71034, 0x0001119f, 0x03f07c26, 0x02975c8e, 0x0277ef6b, 0x00d92058, 0x00109ed7}}, Y: Field{[10]uint32{0x02d1213d, 0x011a1995, 0x01b18d98, 0x028c1a1c, 0x006500b5, 0x017f2a1e, 0x022803c3, 0x01210905, 0x02e3b879, 0x00341579}}},
+ {X: Field{[10]uint32{0x0105bcad, 0x02113be7, 0x00736554, 0x03630344, 0x002cc30d, 0x03750b2e, 0x03422c79, 0x013cf423, 0x0315fc59, 0x00152552}}, Y: Field{[10]uint32{0x0335373a, 0x011cd33d, 0x0397564b, 0x03d7af30, 0x029c6b88, 0x00680392, 0x03f8e042, 0x027080ab, 0x00657356, 0x0021a9f3}}},
+ {X: Field{[10]uint32{0x01f32559, 0x016879ac, 0x021f01b5, 0x02019e8a, 0x03573eb4, 0x0255a194, 0x01aa7b33, 0x003efca8, 0x038d2367, 0x003fdbe3}}, Y: Field{[10]uint32{0x02c7e218, 0x02b07706, 0x017cd2d4, 0x03d0fe3d, 0x0336cd33, 0x027f6511, 0x031552f0, 0x02f15f5c, 0x01a6c7ca, 0x001e94fc}}},
+ {X: Field{[10]uint32{0x018a2381, 0x00309965, 0x0152b842, 0x03ee2805, 0x023bba8e, 0x007832e2, 0x02d852f4, 0x030843a0, 0x01e99021, 0x001d35c9}}, Y: Field{[10]uint32{0x01bb2bb0, 0x02d6153d, 0x0227c0ae, 0x039809b2, 0x0192f18d, 0x00405b76, 0x03d6ca4e, 0x01c2ee20, 0x0246aa9f, 0x0013b9a5}}},
+ {X: Field{[10]uint32{0x009c845b, 0x030c9479, 0x008d76d3, 0x01c35dd1, 0x01feca05, 0x01636176, 0x0168fbbc, 0x010b270b, 0x037efc03, 0x003a50e7}}, Y: Field{[10]uint32{0x02233916, 0x006f808f, 0x03592203, 0x039ea4a1, 0x01566667, 0x03435c19, 0x0290b459, 0x0095ebbb, 0x01981b7e, 0x0009f683}}},
+ {X: Field{[10]uint32{0x01c0b911, 0x01572c29, 0x00f1e2c0, 0x00ca7cb1, 0x0305facb, 0x00fff44c, 0x0126622b, 0x002159b7, 0x008d81a6, 0x0025a129}}, Y: Field{[10]uint32{0x024e68b2, 0x00d4cafc, 0x018161be, 0x00979ebc, 0x03294bbd, 0x0179ed39, 0x0187c31f, 0x03eea975, 0x02d250ad, 0x002480e2}}},
+ {X: Field{[10]uint32{0x020e7609, 0x01df25c6, 0x019b4162, 0x00dd7e74, 0x009e4cf8, 0x037161ca, 0x030f1214, 0x0389bb1f, 0x02f90469, 0x0007400e}}, Y: Field{[10]uint32{0x031e5123, 0x02bfa7bd, 0x02139c84, 0x0069f0df, 0x00ed795f, 0x011b4981, 0x031dad81, 0x00b1c82c, 0x03a53082, 0x002671f0}}},
+ {X: Field{[10]uint32{0x0197a149, 0x019272b8, 0x0242d01c, 0x02ff1805, 0x010d680a, 0x027dcb02, 0x0032fa58, 0x02aadddb, 0x00f873cf, 0x003e591a}}, Y: Field{[10]uint32{0x02083b1d, 0x00f9353e, 0x036e9979, 0x021b0624, 0x03b67081, 0x014e15f8, 0x00a7ff33, 0x0174c6c9, 0x03c40849, 0x0007fed2}}},
+ {X: Field{[10]uint32{0x03f89d32, 0x001104ac, 0x025f5329, 0x03d947b1, 0x03d93c14, 0x00c4542f, 0x02c86a21, 0x02534af2, 0x0106e302, 0x002dab50}}, Y: Field{[10]uint32{0x00d228ce, 0x00a9398e, 0x003ee5db, 0x024a4307, 0x034fa407, 0x01310ad0, 0x015201cc, 0x02590741, 0x02a67427, 0x000668d9}}},
+ {X: Field{[10]uint32{0x005b9b9a, 0x01f9f3f9, 0x00108a97, 0x00a1b2c7, 0x0202d478, 0x02eda7ec, 0x020fec3e, 0x03cc1644, 0x02f7190b, 0x0021d51c}}, Y: Field{[10]uint32{0x01a97c21, 0x029e2615, 0x00562050, 0x0238c151, 0x030a172d, 0x017e0127, 0x01d163a9, 0x0166b785, 0x03c5f5dc, 0x0006b7bf}}},
+ {X: Field{[10]uint32{0x0227a670, 0x03bac166, 0x034074d9, 0x0356bd29, 0x0354bb6f, 0x0072c6c7, 0x00f7ae2a, 0x01505399, 0x01faf424, 0x0015116a}}, Y: Field{[10]uint32{0x01418018, 0x01d0713a, 0x0294ce87, 0x03a987f7, 0x013bdf07, 0x00fede87, 0x008978ca, 0x038208f9, 0x02077da2, 0x00125b14}}},
+ {X: Field{[10]uint32{0x0014d138, 0x01330f5e, 0x0262bf4c, 0x03e5f07d, 0x0374d3a8, 0x0215a0c3, 0x03350267, 0x02b22147, 0x0225704b, 0x0036b861}}, Y: Field{[10]uint32{0x03be6f87, 0x02f6a440, 0x02bff373, 0x03ef1a38, 0x03c20f62, 0x017b20d7, 0x0188ee63, 0x0018660e, 0x01fd7ba9, 0x002af016}}},
+ {X: Field{[10]uint32{0x019845c9, 0x032a24e7, 0x00d02dee, 0x02047fa5, 0x013d009b, 0x001f864a, 0x00e659c1, 0x00f7971f, 0x0312e852, 0x00228223}}, Y: Field{[10]uint32{0x0229114a, 0x02c3dd9f, 0x004baef7, 0x011ff179, 0x0041f8df, 0x03062c82, 0x02d703cb, 0x02edd974, 0x012afb8e, 0x00109448}}},
+ {X: Field{[10]uint32{0x03af6d01, 0x02d4b935, 0x02f6ec25, 0x033caf3a, 0x00716755, 0x023d5e44, 0x00ed25c7, 0x002344cd, 0x02a88f3b, 0x0035e3d1}}, Y: Field{[10]uint32{0x0306f44d, 0x0149bbd6, 0x006ee5c9, 0x034c9091, 0x01929046, 0x032fc6cb, 0x00b3f019, 0x008043c8, 0x01f229cb, 0x003ac615}}},
+ {X: Field{[10]uint32{0x019b034b, 0x0035717e, 0x02fa83ec, 0x0271beab, 0x02f58980, 0x03fbf375, 0x015c4cac, 0x00389d79, 0x031278ae, 0x000782d0}}, Y: Field{[10]uint32{0x004918a7, 0x028a2064, 0x036578bb, 0x02b8275c, 0x03fb523f, 0x020d2140, 0x03d74edb, 0x00ead0ba, 0x03c5544d, 0x003ce314}}},
+ {X: Field{[10]uint32{0x017cbbd1, 0x00d1197b, 0x01638cd5, 0x03dc3105, 0x00ab02d7, 0x029623cd, 0x0011f144, 0x0046703d, 0x01b29edb, 0x003c0c55}}, Y: Field{[10]uint32{0x00e85813, 0x034fc1ae, 0x02495599, 0x0125fe71, 0x01317367, 0x00658159, 0x01d07cd3, 0x03fc52d0, 0x03e3ff4f, 0x001cb454}}},
+ {X: Field{[10]uint32{0x01de4c8e, 0x025b8e79, 0x02b4153a, 0x01e1b42e, 0x038df665, 0x01059952, 0x00c84fe3, 0x01fed345, 0x01683edc, 0x0003d87f}}, Y: Field{[10]uint32{0x002e5f92, 0x011cb8f5, 0x0212fd38, 0x00e7d636, 0x02e11fc1, 0x00983f93, 0x01d6884d, 0x004ec621, 0x0167cf09, 0x00254b6d}}},
+ {X: Field{[10]uint32{0x0017dd77, 0x0271fdf8, 0x0344d7ee, 0x03612c7c, 0x0201ede6, 0x00e9361b, 0x0300e3b1, 0x00dec972, 0x027a29e4, 0x001e0c43}}, Y: Field{[10]uint32{0x0182f2d2, 0x00406db8, 0x00a51a7d, 0x00fd0c4d, 0x007030bd, 0x01f080b5, 0x020f7009, 0x00a78130, 0x018a4d56, 0x0009bfcd}}},
+ {X: Field{[10]uint32{0x03781a3a, 0x0009f847, 0x016b97a4, 0x012f2282, 0x034e6ac9, 0x002d87af, 0x01509c2d, 0x00a72e98, 0x004d6b73, 0x0018eba3}}, Y: Field{[10]uint32{0x00d14f88, 0x020fa577, 0x016ce2e4, 0x00a7be2e, 0x01af16c9, 0x00e2a4e8, 0x01629cb3, 0x01e15f46, 0x00cfbf40, 0x002a3a55}}},
+ {X: Field{[10]uint32{0x03cca739, 0x01e5c941, 0x02fa9165, 0x009bfde6, 0x00ae662f, 0x00ce15d3, 0x01039616, 0x00d53b8b, 0x012a594b, 0x00252356}}, Y: Field{[10]uint32{0x02f1876c, 0x03219ec0, 0x015570ed, 0x02293b89, 0x01ce0275, 0x01cef5b5, 0x013992f7, 0x00e5ba27, 0x00e25ea0, 0x000dffe6}}},
+ {X: Field{[10]uint32{0x02100f45, 0x038b4d11, 0x03a55398, 0x01853719, 0x00660a41, 0x02ffba20, 0x0304de18, 0x000da142, 0x016fa314, 0x00194f3c}}, Y: Field{[10]uint32{0x025a9202, 0x0076cd44, 0x01c3649c, 0x0064f985, 0x03ea4d34, 0x0390c416, 0x026741ae, 0x0395499d, 0x02de5ff1, 0x002b2aab}}},
+ {X: Field{[10]uint32{0x028cc782, 0x01447fe3, 0x00d2af3c, 0x02219142, 0x01141e18, 0x039a9de2, 0x00fd1ee0, 0x03722fc9, 0x00828a5e, 0x0011beda}}, Y: Field{[10]uint32{0x03fd8887, 0x020f804d, 0x010cfef3, 0x02611fb2, 0x02f4d266, 0x020b0b8d, 0x009ff4ae, 0x03a6f5ab, 0x013fd52c, 0x002752b9}}},
+ {X: Field{[10]uint32{0x0138c0ed, 0x0308015c, 0x020eae24, 0x0021e8ab, 0x024ca442, 0x012c3ca2, 0x01face2b, 0x00a9c5f0, 0x00c723ea, 0x0017c468}}, Y: Field{[10]uint32{0x000c8452, 0x01ccc5ae, 0x011d5bb2, 0x033c1be6, 0x023906ea, 0x0049b939, 0x03925ddf, 0x0184bee9, 0x0084ad97, 0x0017b2bb}}},
+ {X: Field{[10]uint32{0x02a9039f, 0x02f72130, 0x022c0320, 0x00ecfae9, 0x00dbf2ba, 0x03ac4224, 0x02b6b3bd, 0x03bde9b5, 0x021c929b, 0x002e7d27}}, Y: Field{[10]uint32{0x0101e558, 0x01a0832d, 0x0115c2bf, 0x0131bd0b, 0x006e1b68, 0x00d2a80c, 0x00ecc1c5, 0x022deef4, 0x02767e4f, 0x00261ca7}}},
+ {X: Field{[10]uint32{0x01ade2c3, 0x00e39c85, 0x012dc63c, 0x02c0d8c7, 0x00965dc2, 0x03269182, 0x033eea76, 0x02417fc9, 0x0102e7d2, 0x0003b228}}, Y: Field{[10]uint32{0x034371c0, 0x028fb73d, 0x00b6dbe5, 0x0170da33, 0x02706ffe, 0x03d9c584, 0x03836868, 0x025b2d24, 0x01e7242d, 0x00363226}}},
+ {X: Field{[10]uint32{0x03e236c6, 0x0339810a, 0x02dafcda, 0x02c0e73d, 0x010582c5, 0x010a9496, 0x012a3c77, 0x020169b2, 0x02b3c351, 0x00041fc0}}, Y: Field{[10]uint32{0x019bfb9f, 0x03ce272a, 0x00a3e685, 0x017820b1, 0x03c5c2d5, 0x0371c929, 0x01746858, 0x01d8055f, 0x02bf1ab4, 0x00145c8d}}},
+ {X: Field{[10]uint32{0x02298971, 0x018194d5, 0x036cfb98, 0x01eb6bdb, 0x02b10d63, 0x020c5e1c, 0x038c1fea, 0x03005b5e, 0x00a1a5c1, 0x003c3ec5}}, Y: Field{[10]uint32{0x024540d1, 0x02f151e5, 0x0033792f, 0x03fecc59, 0x00c40b89, 0x00a00007, 0x018e87c7, 0x03997509, 0x01140d33, 0x0038767b}}},
+ {X: Field{[10]uint32{0x00489459, 0x03e6cd51, 0x0347a333, 0x002bfe0e, 0x0078a1c8, 0x03af781a, 0x00ce83c0, 0x013b7bdb, 0x02dbea78, 0x00294dc6}}, Y: Field{[10]uint32{0x00129224, 0x0338fcb2, 0x03edd48e, 0x02f33344, 0x007e3d09, 0x00a88b2f, 0x03acbe7b, 0x0175d1dc, 0x0172127f, 0x003d5e01}}},
+ {X: Field{[10]uint32{0x0217300d, 0x013eb7ef, 0x013b999e, 0x005e580f, 0x022bbbb8, 0x03e9f64b, 0x00109715, 0x0295d84f, 0x025e1b0b, 0x000f00c7}}, Y: Field{[10]uint32{0x029c83f3, 0x0309cbab, 0x03e6bbf9, 0x035c70d8, 0x0079cb40, 0x035edb31, 0x00e65a2c, 0x00db751d, 0x03fb3920, 0x00349d68}}},
+ {X: Field{[10]uint32{0x01a5318f, 0x0071a701, 0x0218b217, 0x02b948f3, 0x01f8a1b9, 0x00e48203, 0x0169a689, 0x02d4c282, 0x019e685d, 0x0021ed62}}, Y: Field{[10]uint32{0x01a775d4, 0x02bd23ff, 0x02c081f5, 0x03ebe673, 0x011b1166, 0x010ba134, 0x0140b01a, 0x02be968b, 0x0204e3f0, 0x0001ab8c}}},
+ {X: Field{[10]uint32{0x01b8bf74, 0x01014042, 0x038dd2ae, 0x0138ffa0, 0x01ea00d0, 0x01adf9ec, 0x018eedb5, 0x0305b7e7, 0x03ddc002, 0x00367c1d}}, Y: Field{[10]uint32{0x033ffeaf, 0x0084996b, 0x012f278f, 0x000bb954, 0x0211c273, 0x01c32e7b, 0x00fc486f, 0x0063894f, 0x011e5031, 0x00194635}}},
+ {X: Field{[10]uint32{0x00921af7, 0x031c873e, 0x0398ec9b, 0x02482bbe, 0x037558a4, 0x0089dfd8, 0x01ce3053, 0x02b32582, 0x03638d15, 0x0027026a}}, Y: Field{[10]uint32{0x00e0f6fc, 0x0292de40, 0x033d91ca, 0x012a7ef7, 0x010bf2f8, 0x0194897c, 0x02d6ab31, 0x02f0422f, 0x018d535a, 0x002cb2b1}}},
+ {X: Field{[10]uint32{0x028a7fc0, 0x01b71ce6, 0x008ae167, 0x0037b439, 0x0052ab25, 0x030da689, 0x038948a5, 0x0248c973, 0x038b4c2d, 0x001bb47b}}, Y: Field{[10]uint32{0x02742008, 0x02b21fbd, 0x00585f54, 0x02f07241, 0x025c6423, 0x018f69d6, 0x02741368, 0x014553f2, 0x008c2cfe, 0x00306de8}}},
+ {X: Field{[10]uint32{0x006928d1, 0x034ef894, 0x018f13fb, 0x02a4c1e7, 0x03cfc458, 0x00ae9821, 0x01f71c1e, 0x01fdb09e, 0x0170154b, 0x00220ba3}}, Y: Field{[10]uint32{0x03e64131, 0x00e9ce9b, 0x03d1d9b2, 0x0197b6ec, 0x0208b315, 0x019eb07c, 0x014ac62e, 0x0061ca42, 0x022e97c4, 0x0022526c}}},
+ {X: Field{[10]uint32{0x037aba52, 0x0284e7ec, 0x0246aa6d, 0x03a7f08c, 0x00516840, 0x00942605, 0x019d0afb, 0x01ba81c4, 0x02a024c8, 0x001c211c}}, Y: Field{[10]uint32{0x028fe5ac, 0x014feec4, 0x0130db7a, 0x01ee0335, 0x013a8b05, 0x02528d99, 0x03378d65, 0x0054ca96, 0x03a51d55, 0x0026026d}}},
+ {X: Field{[10]uint32{0x039fac3e, 0x02a330eb, 0x025ebd87, 0x00f5c688, 0x03769d57, 0x023420d4, 0x01a1250d, 0x02dc212b, 0x02d509a8, 0x000e913e}}, Y: Field{[10]uint32{0x037f20cd, 0x031a7ed2, 0x01c85cb0, 0x0114b4f1, 0x03f9186e, 0x01849204, 0x0174bf84, 0x03434286, 0x01511250, 0x003ca7d1}}},
+ {X: Field{[10]uint32{0x01fb9f30, 0x00dc2cf3, 0x0390afcc, 0x02116267, 0x0236ba4c, 0x00708cd8, 0x00564c04, 0x006f5058, 0x01d8e09e, 0x0028d467}}, Y: Field{[10]uint32{0x03881d7e, 0x034fb186, 0x0267472d, 0x0238d3f3, 0x02715008, 0x031d3423, 0x0199faa6, 0x001c4740, 0x01597c91, 0x001933fc}}},
+ {X: Field{[10]uint32{0x00fcf1dc, 0x03c1d9d7, 0x038291c4, 0x03e835a3, 0x02bea1af, 0x027667fc, 0x033513f1, 0x0172593a, 0x00e3765f, 0x0016bc5b}}, Y: Field{[10]uint32{0x03815daa, 0x0100bae8, 0x023dc1f2, 0x02e2a1ea, 0x00511ff7, 0x0005929e, 0x0042db6b, 0x0047b52a, 0x02b53bd7, 0x00002193}}},
+ {X: Field{[10]uint32{0x023d54a8, 0x0070b415, 0x0149b402, 0x0344de96, 0x0018848b, 0x00990410, 0x021ec080, 0x03970977, 0x012219ca, 0x0007fe69}}, Y: Field{[10]uint32{0x0318e031, 0x0320ec05, 0x014d4791, 0x0370526c, 0x018f85d7, 0x014dd0c2, 0x00fb919a, 0x01db86d7, 0x034c1222, 0x00151b58}}},
+ {X: Field{[10]uint32{0x03d3e938, 0x01b75bd0, 0x0082ac6b, 0x0372a999, 0x007f02fc, 0x03eacda3, 0x00926ebc, 0x007b63e1, 0x00ad72a5, 0x0035e9b7}}, Y: Field{[10]uint32{0x00e41c96, 0x018ec885, 0x03278bde, 0x01601b25, 0x018598a0, 0x01119aba, 0x028f378e, 0x02b21969, 0x00d63ea6, 0x002689cf}}},
+ {X: Field{[10]uint32{0x0332d797, 0x02a34647, 0x012823f4, 0x024c7c88, 0x023c874b, 0x02db3531, 0x016dfb52, 0x0331f69a, 0x03e55bdc, 0x000553d8}}, Y: Field{[10]uint32{0x03f76fae, 0x01644d5d, 0x0067a2df, 0x01f6cd03, 0x02f0f29d, 0x00aa9af1, 0x03269b0d, 0x028723a9, 0x032217bc, 0x003a63e5}}},
+ {X: Field{[10]uint32{0x00399bf1, 0x03b1d613, 0x01991c27, 0x036a1f3a, 0x02dbdbb7, 0x0086ef7a, 0x0129095c, 0x01857333, 0x008b8513, 0x003dab78}}, Y: Field{[10]uint32{0x03234ad1, 0x01eb4ce3, 0x0296af03, 0x03284c63, 0x013fc1c5, 0x00a298c4, 0x01af074b, 0x032ae84c, 0x03e019fc, 0x00263206}}},
+ {X: Field{[10]uint32{0x0347637e, 0x0072cb31, 0x0083a3e5, 0x03da50ea, 0x00b786b3, 0x017fb0af, 0x01290486, 0x0057db1b, 0x02c03b27, 0x00259873}}, Y: Field{[10]uint32{0x035358bf, 0x01d58813, 0x032547fe, 0x00d657c2, 0x03cb9c37, 0x027b1ce7, 0x028056a0, 0x00412dd2, 0x03d99b34, 0x003aa87d}}},
+ {X: Field{[10]uint32{0x015d19a1, 0x01262d19, 0x0377f53d, 0x0333d6b1, 0x03480520, 0x000dc170, 0x0003465f, 0x00231cd3, 0x023a27d6, 0x0038294c}}, Y: Field{[10]uint32{0x020cc606, 0x02f58a49, 0x03aee836, 0x02d639f2, 0x0363d88e, 0x0118a5d7, 0x00606798, 0x03158baf, 0x0178a8b8, 0x0007dc9f}}},
+ {X: Field{[10]uint32{0x002f6409, 0x0338c74a, 0x00118c24, 0x02577b39, 0x0308206e, 0x009431ab, 0x001980d5, 0x011bcbca, 0x02fd0046, 0x002eae0b}}, Y: Field{[10]uint32{0x011fb82a, 0x03356123, 0x0177d137, 0x02ed1ade, 0x03cafbdb, 0x0195b157, 0x038375a5, 0x00049a37, 0x01dc26a2, 0x000a982c}}},
+ {X: Field{[10]uint32{0x01eb2631, 0x02052b78, 0x022c221e, 0x0081e79a, 0x032d7edd, 0x03946ebb, 0x006e9b3e, 0x02562c60, 0x0399ebbe, 0x000e2784}}, Y: Field{[10]uint32{0x029ae2be, 0x01167db3, 0x02fd52c9, 0x02f50d79, 0x00e48ada, 0x004a9893, 0x031fb4d1, 0x03f91679, 0x02331f3c, 0x001b0561}}},
+ {X: Field{[10]uint32{0x029d4515, 0x001dc9dc, 0x000458c3, 0x01846e91, 0x01087d89, 0x03e91447, 0x03081747, 0x0154f467, 0x01cac0dc, 0x002de05e}}, Y: Field{[10]uint32{0x003e0de2, 0x0248d47a, 0x00c97a68, 0x0326ee5d, 0x01ce0a80, 0x0115df5c, 0x00caa5a9, 0x01a941b9, 0x02980c49, 0x001c082f}}},
+ {X: Field{[10]uint32{0x03104306, 0x0053557f, 0x02dc9f1e, 0x03d04bb2, 0x02baa6a6, 0x03640163, 0x03d13fcf, 0x03e69c48, 0x013dd170, 0x00219fb3}}, Y: Field{[10]uint32{0x006759bb, 0x00d792a5, 0x00dc9e25, 0x038bf792, 0x03d698c5, 0x027cad50, 0x03276897, 0x03b88e3e, 0x03e1bb91, 0x000f036c}}},
+ {X: Field{[10]uint32{0x00eecd38, 0x02f8bdb5, 0x004e5697, 0x00af055c, 0x03db25bb, 0x0212cb32, 0x03d4d083, 0x00097507, 0x014c26a1, 0x002f9c59}}, Y: Field{[10]uint32{0x01406afa, 0x02bdabd2, 0x001dfcdf, 0x039112cb, 0x012dcdae, 0x013683bf, 0x02f8d18e, 0x00b71e82, 0x020fc37a, 0x000c5bb4}}},
+ {X: Field{[10]uint32{0x02e9079c, 0x037aea5d, 0x01fda6b6, 0x0111e58f, 0x01416905, 0x03478059, 0x015b9a2a, 0x009a179d, 0x00b024d6, 0x0016a387}}, Y: Field{[10]uint32{0x011ebba7, 0x022888bc, 0x00a27d08, 0x00aa4778, 0x023889db, 0x02377a57, 0x00f43516, 0x00c379ea, 0x01737433, 0x00131e4c}}},
+ {X: Field{[10]uint32{0x002e6131, 0x005904ae, 0x031f8572, 0x003eb8f4, 0x03bb884d, 0x0018c114, 0x03a761ad, 0x02f433c4, 0x000b2347, 0x000efeb4}}, Y: Field{[10]uint32{0x02545f61, 0x02f6d0aa, 0x0051896e, 0x02adbd6c, 0x0371e3cb, 0x01b52060, 0x03fe8e63, 0x01ffb0fd, 0x01609415, 0x003bccf1}}},
+ {X: Field{[10]uint32{0x012c1961, 0x00647bd7, 0x02dc7428, 0x00d4ed3c, 0x0360e026, 0x0171a32d, 0x016c2d2b, 0x03382722, 0x02de684d, 0x0000911f}}, Y: Field{[10]uint32{0x02f7bfcb, 0x009fcc07, 0x03377624, 0x01535b9f, 0x025ad6cb, 0x0110e090, 0x0339e554, 0x02182d8a, 0x002fe80f, 0x002b4e2a}}},
+ {X: Field{[10]uint32{0x03cf985d, 0x0215f522, 0x0123909d, 0x001d05f1, 0x00e7685f, 0x02a379d9, 0x0007e49b, 0x02e7e3a2, 0x0321eeb4, 0x00297ab8}}, Y: Field{[10]uint32{0x034def1d, 0x02c408ea, 0x0296eed3, 0x0075229d, 0x01001788, 0x02799565, 0x015f5233, 0x02df4cab, 0x02a9f5c1, 0x000ab3e2}}},
+ {X: Field{[10]uint32{0x0090b13c, 0x0395d6ba, 0x01251007, 0x0045710d, 0x03dc035e, 0x02ac17a3, 0x00a5b973, 0x0364e0f3, 0x015c5337, 0x0025f7a6}}, Y: Field{[10]uint32{0x0069e6dd, 0x02448438, 0x01f79e8f, 0x016f3624, 0x00920250, 0x01373bd4, 0x003fb4dc, 0x0228a4d3, 0x01692e30, 0x0013ecb6}}},
+ {X: Field{[10]uint32{0x0038f479, 0x005c9b11, 0x01f3cc6b, 0x011151ac, 0x0125b70f, 0x002af7e5, 0x003dad8d, 0x02462be0, 0x025fa864, 0x002e32bc}}, Y: Field{[10]uint32{0x009c05c9, 0x0198f683, 0x02d79023, 0x00dac1a7, 0x02c30e2f, 0x01db01d2, 0x03a8c5a0, 0x01bacdbf, 0x01fac0f5, 0x001f146d}}},
+ {X: Field{[10]uint32{0x0107b2e6, 0x0085d92b, 0x03443445, 0x02296c7c, 0x03b2cade, 0x03c50041, 0x00f3001a, 0x038a86c9, 0x028c1b96, 0x002d6f21}}, Y: Field{[10]uint32{0x0138d639, 0x02e8d9d2, 0x026f238b, 0x001ec852, 0x03672a8c, 0x015170ce, 0x02aa456f, 0x027ccf56, 0x02294e92, 0x00235b3f}}},
+ {X: Field{[10]uint32{0x033ff602, 0x012a284d, 0x036e9078, 0x01887c4f, 0x0032ea26, 0x0090530a, 0x01b666bf, 0x00ec8843, 0x007c242a, 0x0017d456}}, Y: Field{[10]uint32{0x0346c858, 0x021a5122, 0x03427f58, 0x02299ab6, 0x031b3941, 0x02732ee7, 0x013950f9, 0x00293ae1, 0x020febf2, 0x000b0ec9}}},
+ {X: Field{[10]uint32{0x022bcfde, 0x02d19d1e, 0x01feb822, 0x02558343, 0x034f08e6, 0x00113cfd, 0x0252e17e, 0x028ad44a, 0x00f95009, 0x000742f8}}, Y: Field{[10]uint32{0x033a159b, 0x01739363, 0x02538933, 0x02c93e19, 0x03a742c3, 0x01ee0776, 0x003181cf, 0x0061dcde, 0x03c3dbd8, 0x0030ea0a}}},
+ {X: Field{[10]uint32{0x0122fb8a, 0x02bd2f23, 0x0192ccec, 0x0356d249, 0x029e0e62, 0x0338c3b4, 0x0221bcd6, 0x00ccc699, 0x0028b800, 0x000fbc3b}}, Y: Field{[10]uint32{0x0144b16d, 0x00a6e9e8, 0x001337d9, 0x018e636c, 0x03512fd3, 0x010f31fd, 0x02a03dae, 0x003a1b24, 0x00ad77d4, 0x003f8b21}}},
+ {X: Field{[10]uint32{0x03555fc5, 0x03e5926d, 0x02ad302e, 0x02c39fc3, 0x00f62f12, 0x00ca8d92, 0x02bef427, 0x00136b1d, 0x0224a4ec, 0x002130a6}}, Y: Field{[10]uint32{0x014f970e, 0x029fc29e, 0x017ecb18, 0x014ce391, 0x03929ec4, 0x008b927e, 0x02b454cf, 0x01529c43, 0x02bb283a, 0x0039d883}}},
+ {X: Field{[10]uint32{0x02cf43a8, 0x00c55cfa, 0x031e9283, 0x01cc041f, 0x03a309cd, 0x03c705de, 0x0340f4e5, 0x017fa487, 0x0234e75d, 0x001aee99}}, Y: Field{[10]uint32{0x03421582, 0x01af8dbe, 0x01a979d8, 0x03a9519c, 0x025b47fd, 0x00882715, 0x0086b441, 0x02090c7c, 0x008c4216, 0x000cfff8}}},
+ {X: Field{[10]uint32{0x01ef0150, 0x03c59d1b, 0x01bfa47c, 0x02625567, 0x02488f62, 0x02796dba, 0x01a6046d, 0x03006f12, 0x02f051b0, 0x0004ed9e}}, Y: Field{[10]uint32{0x00237608, 0x03c764e8, 0x0109ee29, 0x01648c85, 0x03a54add, 0x0212b2b2, 0x037cc35d, 0x02fc2d4c, 0x014b01c1, 0x00343a24}}},
+ {X: Field{[10]uint32{0x03af9300, 0x033c4fa4, 0x007202c5, 0x032d8d90, 0x02fdf779, 0x03331289, 0x02abc946, 0x02d8abaf, 0x01bfb5dc, 0x00058488}}, Y: Field{[10]uint32{0x00f83b2c, 0x026dfa4b, 0x007b72a4, 0x036d86bb, 0x00d1a212, 0x00ad484f, 0x0266bd30, 0x01b7e1c2, 0x02c5dd9d, 0x0034ff78}}},
+ {X: Field{[10]uint32{0x02eb508b, 0x0242fe38, 0x003d39a5, 0x02fe19b7, 0x017eda1f, 0x00ad4880, 0x03602770, 0x016118eb, 0x020cc62f, 0x000c314d}}, Y: Field{[10]uint32{0x02c44efe, 0x02d2a072, 0x039f01aa, 0x03006dd9, 0x016c30e8, 0x037ab185, 0x037dbe8e, 0x0268ae20, 0x02f5009b, 0x00323a46}}},
+ {X: Field{[10]uint32{0x00ec3576, 0x02e002c0, 0x01007a38, 0x03c21cdc, 0x02640364, 0x00925c9f, 0x027f38b7, 0x0147d7a9, 0x027fdd91, 0x00301966}}, Y: Field{[10]uint32{0x01cf47e3, 0x03c58069, 0x03ded648, 0x02b8728c, 0x018c57fa, 0x01d100d8, 0x018b5a77, 0x00c70d51, 0x00cb6fa1, 0x0029bd92}}},
+ {X: Field{[10]uint32{0x02679386, 0x009e1fc0, 0x004be43e, 0x025429a1, 0x037d50fe, 0x0386ac72, 0x006472a8, 0x02a24811, 0x024db795, 0x000c8548}}, Y: Field{[10]uint32{0x018a9bf0, 0x01407e4d, 0x0238cc5e, 0x006fbf0f, 0x03faba83, 0x00b3ff17, 0x00c7eb59, 0x023619a4, 0x026297f2, 0x00095d41}}},
+ {X: Field{[10]uint32{0x01871145, 0x029a2868, 0x035b3b19, 0x01926625, 0x03fe7762, 0x02971553, 0x0115445d, 0x01c120ef, 0x00e2a87a, 0x00095d95}}, Y: Field{[10]uint32{0x02636ec5, 0x0232234c, 0x010439c2, 0x00c259a4, 0x009efe24, 0x032816c6, 0x03fc4eef, 0x03c53e75, 0x019d0c67, 0x003f2e4c}}},
+ {X: Field{[10]uint32{0x002f1b49, 0x0262c5c2, 0x03e800ce, 0x01b5b6cc, 0x0017c8a6, 0x039a422a, 0x017926e6, 0x03c553cf, 0x0201e504, 0x00291e1a}}, Y: Field{[10]uint32{0x0323a2fc, 0x00a184b4, 0x03bfd0b0, 0x038998ab, 0x027f86e8, 0x02df3e9e, 0x01a29678, 0x013e7fa0, 0x0142fc2e, 0x0015db93}}},
+ {X: Field{[10]uint32{0x02db1e71, 0x02966998, 0x01e383c5, 0x03dfa0b8, 0x0090b484, 0x022bcda7, 0x013ae62a, 0x02615912, 0x03a9260c, 0x0014503d}}, Y: Field{[10]uint32{0x010bae86, 0x011c534d, 0x021fe2f6, 0x03026149, 0x0394ddcd, 0x03afe454, 0x026aa92c, 0x0277ed8e, 0x02c2b087, 0x0013945c}}},
+ {X: Field{[10]uint32{0x00a66dfc, 0x01b3cc93, 0x0134231e, 0x004d4843, 0x03b781fe, 0x02295e75, 0x03d6d901, 0x0142de71, 0x020c0f0f, 0x003d5675}}, Y: Field{[10]uint32{0x014eed15, 0x00aeac23, 0x0208e205, 0x037328a7, 0x025f1f05, 0x02f6a390, 0x015fb56a, 0x014a972a, 0x02ae8e58, 0x0004b673}}},
+ {X: Field{[10]uint32{0x00547e7c, 0x021a686c, 0x038570cc, 0x037e68cd, 0x00a4fb73, 0x00e814d5, 0x030e0be5, 0x03406f25, 0x03f50fa2, 0x0022241f}}, Y: Field{[10]uint32{0x03a3d2f5, 0x0055ee5f, 0x0373dab9, 0x006f0036, 0x025b2640, 0x03f29aaa, 0x03145f26, 0x0046d909, 0x0356cc12, 0x003d614e}}},
+ {X: Field{[10]uint32{0x018c45ca, 0x02cfa9b9, 0x027ecfe4, 0x03c937bc, 0x03c8ac82, 0x038763fe, 0x011fba31, 0x0141b63a, 0x03f64541, 0x00330792}}, Y: Field{[10]uint32{0x00d27592, 0x00a98fce, 0x03b77590, 0x036c9d4f, 0x011efcf1, 0x00c1a55b, 0x00585a60, 0x0060f1a1, 0x017da875, 0x001d85d2}}},
+ {X: Field{[10]uint32{0x03ca99d5, 0x00436ab2, 0x00dd4eca, 0x01f24d15, 0x016c3955, 0x007b7780, 0x02a6f9ef, 0x0108416d, 0x0037ef74, 0x001fb8b1}}, Y: Field{[10]uint32{0x033772d6, 0x0125a3db, 0x025b1827, 0x01c36f7b, 0x033e6d7b, 0x01457695, 0x00503f69, 0x03d767cc, 0x03345eef, 0x00085d51}}},
+ {X: Field{[10]uint32{0x03e2465c, 0x0278178c, 0x0290f653, 0x012ed0b6, 0x003605ba, 0x01afd083, 0x033af3ef, 0x02d2a68f, 0x02a239f9, 0x0001cbfb}}, Y: Field{[10]uint32{0x01f553cc, 0x00abb67a, 0x0120a36d, 0x0345ac33, 0x0085482c, 0x000a50a3, 0x002ad9ad, 0x037b7723, 0x02ffdf7a, 0x0000280d}}},
+ {X: Field{[10]uint32{0x0099914a, 0x0323d780, 0x0307c938, 0x02b89905, 0x03c8a0cb, 0x035e8e9b, 0x01b627c4, 0x0374019a, 0x033e94a0, 0x000d8f68}}, Y: Field{[10]uint32{0x02f58bd9, 0x03a6301e, 0x0359c3d0, 0x037351e2, 0x03a2f936, 0x00541bd1, 0x0236099c, 0x001e9038, 0x0277ef13, 0x0026f6a6}}},
+ {X: Field{[10]uint32{0x02c133fe, 0x0246183c, 0x036e1a7e, 0x02347b26, 0x0393af0f, 0x02f817f7, 0x034a48bb, 0x010a426b, 0x0064c839, 0x001d9502}}, Y: Field{[10]uint32{0x00a3ecc2, 0x03970f95, 0x0084583c, 0x03d697b5, 0x01b3cc98, 0x02bcf5bc, 0x013a236d, 0x03ac0888, 0x03d7738c, 0x003c1a48}}},
+ {X: Field{[10]uint32{0x02b239c4, 0x032d007c, 0x01606c94, 0x0224d1c2, 0x0251e381, 0x00ba6928, 0x01945c16, 0x022a7e2f, 0x00217a31, 0x0015cfc2}}, Y: Field{[10]uint32{0x0346bef5, 0x00754ead, 0x03fbe7ca, 0x00a35f1c, 0x00496cc1, 0x030faf45, 0x00b105fe, 0x02792e52, 0x00f27de6, 0x001f9e39}}},
+ {X: Field{[10]uint32{0x02b01f5f, 0x02a4d388, 0x01467213, 0x02120669, 0x02f90d21, 0x015f97b5, 0x0009656f, 0x012e4ed4, 0x01818923, 0x000214de}}, Y: Field{[10]uint32{0x02e475f8, 0x01bc07d8, 0x02820ed2, 0x003b267e, 0x029281fc, 0x02733be8, 0x0069bbe8, 0x00266387, 0x01e8cc99, 0x0032529e}}},
+ {X: Field{[10]uint32{0x01eb6041, 0x0184cb3b, 0x0051257f, 0x0031e001, 0x016f00a3, 0x033c3b61, 0x01ccd4c1, 0x000cd8ec, 0x01122989, 0x0014ce21}}, Y: Field{[10]uint32{0x0183334e, 0x022d12da, 0x03722fd7, 0x01551a6f, 0x000dd22f, 0x02f26a11, 0x038feacd, 0x0346e693, 0x0252f856, 0x00355b8a}}},
+ {X: Field{[10]uint32{0x00e4796d, 0x00eaabac, 0x00c852f3, 0x02300e71, 0x01c5cb47, 0x03ee6258, 0x009f913a, 0x03ded971, 0x008a750e, 0x00107b79}}, Y: Field{[10]uint32{0x02559de4, 0x0090270c, 0x0065b8de, 0x02734693, 0x0104bdfe, 0x0012d4f2, 0x0092ea7f, 0x011a0062, 0x03f94b6c, 0x0035d31e}}},
+ {X: Field{[10]uint32{0x01f08148, 0x034ed4f9, 0x03eefb6d, 0x00e4eb3f, 0x03fe7621, 0x03b5aa77, 0x02eece4e, 0x03dcda64, 0x01f36596, 0x0025fa4c}}, Y: Field{[10]uint32{0x00dd5f1b, 0x01838a85, 0x002c09b6, 0x0052d8b5, 0x0039a246, 0x01013ee9, 0x0276ce77, 0x0314a827, 0x013353b9, 0x000f6a26}}},
+ {X: Field{[10]uint32{0x0222579d, 0x00024dec, 0x039a54db, 0x01933125, 0x035c55b6, 0x0094acde, 0x00476335, 0x02c410e6, 0x02ea3ca8, 0x00132bd3}}, Y: Field{[10]uint32{0x011607bb, 0x01c7358a, 0x01464621, 0x00013034, 0x0345a191, 0x01c75628, 0x03885807, 0x02f701f3, 0x03320a93, 0x00030999}}},
+ {X: Field{[10]uint32{0x027b1ca4, 0x029f2127, 0x0306bb7e, 0x03e086a1, 0x01b52960, 0x01478e0e, 0x0324ee4e, 0x020f0cea, 0x02905b34, 0x00215f07}}, Y: Field{[10]uint32{0x0269dd80, 0x02456ebf, 0x00c01be5, 0x03f7a6d0, 0x011c6b09, 0x028b9af1, 0x018380c4, 0x021dc6cd, 0x010c7a57, 0x00235ba7}}},
+ {X: Field{[10]uint32{0x00b5a182, 0x03b4b06f, 0x0322c1e7, 0x02925a1a, 0x0310ec39, 0x0372e8f2, 0x00fc1248, 0x03deb69a, 0x030be0db, 0x001043bd}}, Y: Field{[10]uint32{0x007f9e94, 0x02e508c9, 0x03db3b7c, 0x01e6023f, 0x00e6925d, 0x002d2970, 0x03074aee, 0x015bd73b, 0x02a3331a, 0x00349ba7}}},
+ {X: Field{[10]uint32{0x0351029f, 0x00410655, 0x03f7a307, 0x03e69f98, 0x0289dff6, 0x01ea90c6, 0x03e5ec30, 0x03ac4205, 0x03a8c831, 0x00232be1}}, Y: Field{[10]uint32{0x03c8890a, 0x02421c99, 0x02058bfe, 0x001cf176, 0x0113aad2, 0x030e9192, 0x0265ba07, 0x029b0f23, 0x02e1c8dd, 0x000fc2f5}}},
+ {X: Field{[10]uint32{0x02f10e8e, 0x01b57ebf, 0x037798c1, 0x022ffee6, 0x01b35ca1, 0x034c53ec, 0x026a8a39, 0x00920d52, 0x02cfe92d, 0x003bb7b8}}, Y: Field{[10]uint32{0x0114c4c3, 0x02cd6ab9, 0x01624c1e, 0x03259e4f, 0x009fcd12, 0x03e73877, 0x031181f3, 0x02fbf92c, 0x02b021f0, 0x0032d456}}},
+ {X: Field{[10]uint32{0x02ebcee1, 0x03bb2bca, 0x00312f02, 0x01d5d135, 0x0248bb2a, 0x0045b6d4, 0x02d6a4e9, 0x02dfddee, 0x02c71e77, 0x00232fde}}, Y: Field{[10]uint32{0x039b7320, 0x028b015d, 0x03799169, 0x01fc36da, 0x02b6f669, 0x0034258d, 0x017f97c3, 0x009ad4f4, 0x0331f67b, 0x001d9712}}},
+ {X: Field{[10]uint32{0x00995db2, 0x03f19c95, 0x02dfcc19, 0x032e6190, 0x02715dc6, 0x00380448, 0x03f0627f, 0x026abcd3, 0x01b4cd44, 0x001c3351}}, Y: Field{[10]uint32{0x03535c8e, 0x00314e0b, 0x00c4120f, 0x036442d8, 0x02ee184a, 0x02b685b1, 0x0320eac3, 0x025ec610, 0x00567614, 0x0020b965}}},
+ {X: Field{[10]uint32{0x007c45d5, 0x00bf7edb, 0x002ea070, 0x011b83d1, 0x03050e51, 0x00defb0f, 0x039d558e, 0x033f6479, 0x03f9783f, 0x0033f885}}, Y: Field{[10]uint32{0x01c419d5, 0x03dc1e65, 0x00dfc7b6, 0x02185eed, 0x00da2251, 0x0231f0eb, 0x03d70d87, 0x00feff15, 0x010e8645, 0x0014df2f}}},
+ {X: Field{[10]uint32{0x00579d52, 0x005e43d2, 0x0317e065, 0x032c4afc, 0x01ccabd2, 0x033ebe9c, 0x033d4f74, 0x02ee38af, 0x00df6486, 0x002609b0}}, Y: Field{[10]uint32{0x01c57342, 0x005cb76e, 0x02da734f, 0x015e353b, 0x02ae3bb4, 0x03f0db45, 0x0349c052, 0x01894f4d, 0x0186f86d, 0x000f6fcd}}},
+ {X: Field{[10]uint32{0x028a02c4, 0x013d65b8, 0x00e74d0f, 0x037d5db2, 0x00a13e13, 0x01d13a71, 0x033fa3e3, 0x012f0b1a, 0x00ef381b, 0x003a863f}}, Y: Field{[10]uint32{0x0209f397, 0x03f9a7fb, 0x01874d7f, 0x02931074, 0x02041c9a, 0x016568c2, 0x0103c7fe, 0x01175e1c, 0x039d2bc4, 0x0030f9af}}},
+ {X: Field{[10]uint32{0x026d8f4a, 0x033e433f, 0x033a0e88, 0x01759cc0, 0x0221b82e, 0x02705bfe, 0x00618bec, 0x01695187, 0x0065c09d, 0x001b78b1}}, Y: Field{[10]uint32{0x004ee2ba, 0x01973caf, 0x03f5d28b, 0x02c0ca02, 0x03e1c4cc, 0x00ec87d6, 0x00a8199d, 0x0220ad0a, 0x03d28950, 0x000d9eb2}}},
+ {X: Field{[10]uint32{0x02183f4e, 0x03e9cfc6, 0x0284706f, 0x01a27bf4, 0x03cecc9c, 0x03469505, 0x0250f803, 0x031f516b, 0x0213ee10, 0x00358a1b}}, Y: Field{[10]uint32{0x02a56f56, 0x004fa4da, 0x008ad37f, 0x024d5f6e, 0x01e965ab, 0x0320a790, 0x023ca411, 0x013a271f, 0x03b75520, 0x001eae4a}}},
+ {X: Field{[10]uint32{0x03c3bf58, 0x020f7dc8, 0x0364dfce, 0x0187bcf0, 0x0173f0c8, 0x036dbc82, 0x0125962f, 0x01182895, 0x02faea67, 0x001d49b9}}, Y: Field{[10]uint32{0x00e3a674, 0x023d2306, 0x01ae8f00, 0x02b04b8d, 0x0125a21f, 0x02cc8dd4, 0x0274411c, 0x01846f4c, 0x00e0d5a8, 0x000b1daa}}},
+ {X: Field{[10]uint32{0x0079308d, 0x0141c3e2, 0x00b2ab78, 0x000e24fa, 0x02e737c8, 0x0067d47d, 0x01d5d897, 0x0128f5b4, 0x02da56d6, 0x003f32aa}}, Y: Field{[10]uint32{0x039362d1, 0x0171aa11, 0x03d7d868, 0x034ff9b9, 0x01a2ee95, 0x025a7eae, 0x01750efa, 0x03de4bbf, 0x01663fac, 0x002098b1}}},
+ {X: Field{[10]uint32{0x01b57fe3, 0x012c4556, 0x0088afef, 0x02a2ce9a, 0x03bd6d91, 0x028e5e11, 0x00483797, 0x017d0f31, 0x03b8eb8a, 0x002d8344}}, Y: Field{[10]uint32{0x00ebaa54, 0x033e0e18, 0x038ae94e, 0x014cdd56, 0x038405b0, 0x032217c7, 0x0104acbe, 0x021615d8, 0x02be5d2b, 0x002afdcf}}},
+ {X: Field{[10]uint32{0x0377f8be, 0x039b3a30, 0x02d90127, 0x019b7ea8, 0x014250fd, 0x00de7e49, 0x016d2c14, 0x0361cbff, 0x030f4a0d, 0x000ccb52}}, Y: Field{[10]uint32{0x03c6232b, 0x021f3cc6, 0x02354b78, 0x033761f3, 0x03110dfa, 0x0382c5fa, 0x0333d7d9, 0x00d42fd0, 0x014347c2, 0x0000dfcc}}},
+ {X: Field{[10]uint32{0x00c5788f, 0x03be1ed3, 0x0394e52d, 0x0082d556, 0x025d0216, 0x01ef44e3, 0x020e8803, 0x0358cc07, 0x02e62ce6, 0x003a66cb}}, Y: Field{[10]uint32{0x025546bc, 0x01210593, 0x03c6d2c0, 0x030ae469, 0x00e2858d, 0x02ecf954, 0x031df268, 0x032a7db7, 0x02fedabc, 0x00327a81}}},
+ {X: Field{[10]uint32{0x01c54353, 0x0015b712, 0x033b1dfb, 0x0247a015, 0x005af241, 0x01c666f7, 0x02692a1d, 0x01ebb9ff, 0x00382a97, 0x00227ab5}}, Y: Field{[10]uint32{0x01994ece, 0x003e6bf6, 0x0319c2de, 0x00efaf97, 0x0107fec4, 0x02dc042b, 0x0167f706, 0x01ddb0aa, 0x01cedb2d, 0x002d5cb7}}},
+ {X: Field{[10]uint32{0x0198268f, 0x021ed3b5, 0x01488595, 0x03fec243, 0x004777ba, 0x0231d016, 0x006f6fa9, 0x0104fc2d, 0x018e529b, 0x000336b6}}, Y: Field{[10]uint32{0x03ed034e, 0x03ba0c2f, 0x00cac3ef, 0x0205e22c, 0x02ceabc2, 0x0087e1e1, 0x00f10db8, 0x0398e51c, 0x015e0543, 0x0035016a}}},
+ {X: Field{[10]uint32{0x02ee2cc3, 0x00a43921, 0x00f5be41, 0x0275783d, 0x02c26984, 0x0330c502, 0x03f69ad3, 0x00ccaf99, 0x03411cc1, 0x001425bb}}, Y: Field{[10]uint32{0x03f8268a, 0x0114d0dc, 0x02bb418c, 0x029bcb51, 0x0149ef34, 0x0029ecfc, 0x021f3123, 0x02c1afb5, 0x029fccd4, 0x001fcce1}}},
+ {X: Field{[10]uint32{0x00a5be61, 0x03d838a9, 0x00dbb8b9, 0x03b58e3b, 0x038c4d59, 0x0322fa61, 0x007253a2, 0x019cd218, 0x0270a096, 0x002f02fa}}, Y: Field{[10]uint32{0x02873b78, 0x03883345, 0x03320873, 0x03c0a777, 0x01054d1f, 0x01b1309d, 0x0286129e, 0x01382c12, 0x01ac3c2b, 0x00386444}}},
+ {X: Field{[10]uint32{0x03223ec1, 0x014500e1, 0x007a7dc4, 0x02297210, 0x03b024bb, 0x02a9f5d1, 0x00674d38, 0x01682038, 0x0169ac8f, 0x000b4599}}, Y: Field{[10]uint32{0x019a597a, 0x006f5df8, 0x038f73dd, 0x021f8888, 0x01445c15, 0x03bb1396, 0x027d92d4, 0x01a97c4a, 0x03386221, 0x00122bc6}}},
+ {X: Field{[10]uint32{0x0145ba30, 0x03a2dfe0, 0x01d40f27, 0x037f8f3c, 0x012947cd, 0x01bb1ded, 0x00e37b32, 0x00454377, 0x03aebb8b, 0x002e32f3}}, Y: Field{[10]uint32{0x00823ca4, 0x01bf76cd, 0x01a0562b, 0x03ef357d, 0x00ffc2c3, 0x021a287a, 0x030ec022, 0x034b7218, 0x00ab8b2a, 0x003548d3}}},
+ {X: Field{[10]uint32{0x00960ee7, 0x02abb1b7, 0x02a227a9, 0x02f9823b, 0x01fb2e3e, 0x006b0676, 0x01db9c0f, 0x004bd377, 0x0092563f, 0x003ece58}}, Y: Field{[10]uint32{0x01823c45, 0x02798bb2, 0x0395358c, 0x02ec1a50, 0x01646e88, 0x00bac07a, 0x027f661c, 0x028e50f4, 0x01dffda1, 0x00197959}}},
+ {X: Field{[10]uint32{0x0014b297, 0x03fe9529, 0x0022580a, 0x03b88400, 0x02f8da06, 0x02c89d2c, 0x0225150d, 0x0337ea41, 0x01760b8d, 0x00071ba7}}, Y: Field{[10]uint32{0x01666255, 0x02f0bbe9, 0x00057607, 0x02e5e35d, 0x0085679f, 0x02fb62c4, 0x026edcbb, 0x02c2c151, 0x010d009a, 0x001c1ad1}}},
+ {X: Field{[10]uint32{0x01fca1c3, 0x0180d46e, 0x00277dc6, 0x00355578, 0x0377f55a, 0x026173b2, 0x0166b13d, 0x03fc39b9, 0x01c146ec, 0x000b810f}}, Y: Field{[10]uint32{0x026d8398, 0x01c7915c, 0x00e1428a, 0x0000aab1, 0x03665da5, 0x02429eaf, 0x011103b0, 0x03abc281, 0x01caf75c, 0x0000713c}}},
+ {X: Field{[10]uint32{0x005f482f, 0x002f2696, 0x0192cb4b, 0x03b8b625, 0x019549f9, 0x025f5e15, 0x023ee12d, 0x023a4399, 0x030ca1bf, 0x0016b85e}}, Y: Field{[10]uint32{0x00fc8111, 0x008daf2d, 0x031c716f, 0x02b6235c, 0x03a71806, 0x03a3969d, 0x006966c1, 0x0002f1cf, 0x03349317, 0x002ec37d}}},
+ {X: Field{[10]uint32{0x03caafc4, 0x023d1a29, 0x0271c1b0, 0x037f241a, 0x00fca910, 0x01d7b6a5, 0x0011c46e, 0x030f974f, 0x03426a24, 0x003ea2fc}}, Y: Field{[10]uint32{0x035954e2, 0x02b6930b, 0x000435dc, 0x03e795f0, 0x014e2884, 0x016cf3c1, 0x01e6c846, 0x03ef678d, 0x017cdb07, 0x00329a60}}},
+ {X: Field{[10]uint32{0x011a88a4, 0x0016bee6, 0x003cb0f9, 0x02d779c2, 0x011e1031, 0x00fd0e53, 0x01f67aea, 0x035fdee7, 0x01c1846d, 0x000b37fc}}, Y: Field{[10]uint32{0x0376f39e, 0x03fcf8bb, 0x00d3b507, 0x023e3959, 0x016ea0d8, 0x038c11c4, 0x00530fed, 0x0390adf4, 0x024f3827, 0x0012ef5c}}},
+ {X: Field{[10]uint32{0x013b6905, 0x02ccc8a7, 0x02df95f5, 0x02472a50, 0x01c5bb82, 0x019413e2, 0x01f82b29, 0x0127b2bf, 0x000055ca, 0x001beb6f}}, Y: Field{[10]uint32{0x00b7df62, 0x03d5fbd5, 0x02868c06, 0x014fd64f, 0x03911a30, 0x03104645, 0x02f94728, 0x020c9a95, 0x0184033a, 0x003dd9c4}}},
+ {X: Field{[10]uint32{0x00dd0841, 0x0280392e, 0x01fca2f5, 0x00184964, 0x026f4a1e, 0x0357aa34, 0x02b15f55, 0x02a90373, 0x015a2f26, 0x0031451a}}, Y: Field{[10]uint32{0x0113266c, 0x014a0eac, 0x03a6e800, 0x02c45b63, 0x01652905, 0x00ff13bc, 0x01375677, 0x02c1aa42, 0x02082e78, 0x001415ae}}},
+ {X: Field{[10]uint32{0x037ff933, 0x004785b2, 0x0306466c, 0x03bbf747, 0x01aad758, 0x03862304, 0x00368dd3, 0x013e1553, 0x00d49347, 0x0020f72e}}, Y: Field{[10]uint32{0x030a53c7, 0x022f6118, 0x02288e9f, 0x03ec3987, 0x030d6ed6, 0x004679e7, 0x027a029e, 0x01c649f1, 0x033d04e5, 0x00041396}}},
+ {X: Field{[10]uint32{0x00c8a93f, 0x032aec7f, 0x01127a8b, 0x0208b8ac, 0x015f9ae8, 0x01597e6a, 0x03690890, 0x002c990e, 0x038acf9a, 0x002f1973}}, Y: Field{[10]uint32{0x00fb2143, 0x030a4a85, 0x039c3ae9, 0x03045569, 0x0023ff28, 0x019a66de, 0x000ac90f, 0x03741a82, 0x016ba31d, 0x003f7e5c}}},
+ {X: Field{[10]uint32{0x009f140b, 0x0272f493, 0x0153c1e0, 0x035901c3, 0x02695e37, 0x016b4de8, 0x0174b476, 0x004a904b, 0x03a9520b, 0x00121de3}}, Y: Field{[10]uint32{0x029c373e, 0x0328875d, 0x01b39fbe, 0x0316cb8d, 0x01446dd3, 0x03146d1a, 0x03b4c02b, 0x016500e1, 0x0005bec1, 0x00337192}}},
+ {X: Field{[10]uint32{0x0301dc25, 0x019f77e8, 0x006e841f, 0x02d4cb46, 0x0328077b, 0x03b5a1cf, 0x01c88312, 0x01621a3b, 0x002c6a73, 0x00276cb1}}, Y: Field{[10]uint32{0x03b3a0dc, 0x024098af, 0x00ac8569, 0x0351e1b4, 0x00aa0ac5, 0x01a8c96c, 0x0193e064, 0x02d17b84, 0x0235ec9d, 0x0038072c}}},
+ {X: Field{[10]uint32{0x00f8da6b, 0x0201cd27, 0x012aefb2, 0x023c925b, 0x03037c6c, 0x015ac9ff, 0x021ef442, 0x0009690e, 0x018f62bf, 0x0032f3fd}}, Y: Field{[10]uint32{0x03b1896d, 0x0379b94e, 0x01da2818, 0x006f0440, 0x0128f533, 0x00784daf, 0x029251fe, 0x009d4c0e, 0x02d52da3, 0x0013f667}}},
+ {X: Field{[10]uint32{0x034f3639, 0x019c94db, 0x00270933, 0x03ce45e2, 0x02070cbc, 0x00ec77e5, 0x03a12a29, 0x02311605, 0x039787e6, 0x00275482}}, Y: Field{[10]uint32{0x02bc0f14, 0x027b3bed, 0x036bb22d, 0x001e763e, 0x01041fec, 0x028c9589, 0x01885ca0, 0x02625764, 0x015d2b53, 0x00185784}}},
+ {X: Field{[10]uint32{0x0225dbbd, 0x01a8d064, 0x02e7b3ef, 0x00f7e0ec, 0x024b0bfd, 0x02331b5b, 0x023d1820, 0x030af2f0, 0x01c40057, 0x00319237}}, Y: Field{[10]uint32{0x018ab3d8, 0x029fef14, 0x02caf209, 0x0187705f, 0x01ec16fe, 0x019e8f67, 0x0347e99e, 0x00659a6e, 0x006338dd, 0x0002b26a}}},
+ {X: Field{[10]uint32{0x002137dc, 0x0259187a, 0x0229a7e5, 0x00a5ed17, 0x02b80ead, 0x0248877b, 0x01e3f1e7, 0x03dd9ebf, 0x0035ea96, 0x002b847e}}, Y: Field{[10]uint32{0x00452596, 0x0085e393, 0x01a15c2a, 0x0395397e, 0x034c5dfe, 0x00654eb2, 0x016e1b5f, 0x018bca26, 0x03ecb65a, 0x0008114e}}},
+ {X: Field{[10]uint32{0x0364d46f, 0x00a03428, 0x00fec029, 0x03f8d970, 0x000699f6, 0x023bd44a, 0x03b9293d, 0x02993748, 0x01ad56f8, 0x0028d552}}, Y: Field{[10]uint32{0x03fbbe75, 0x0335b842, 0x00868f11, 0x02480f19, 0x008f55a2, 0x01fffb38, 0x015ffce1, 0x026604c0, 0x01cba38c, 0x00321010}}},
+ {X: Field{[10]uint32{0x035f8077, 0x011c25f8, 0x03a649c3, 0x0020351c, 0x022aad83, 0x01f6b226, 0x01bfaef3, 0x01d78423, 0x0029af55, 0x001d61dc}}, Y: Field{[10]uint32{0x03c2b8b6, 0x02a173d7, 0x0165b2e5, 0x01d085b3, 0x01603cd6, 0x005df31a, 0x02437620, 0x0146efb4, 0x0097d198, 0x00210ec1}}},
+ {X: Field{[10]uint32{0x02d4ea99, 0x0181fecc, 0x031ca917, 0x03a43cba, 0x01ae00b9, 0x00f94cb0, 0x027b1f68, 0x03f54311, 0x0168ca7f, 0x00113b8c}}, Y: Field{[10]uint32{0x012c3270, 0x00fadff2, 0x001411e7, 0x038e6e5b, 0x03022564, 0x024443bb, 0x01a9f9a0, 0x01684efb, 0x02a8120b, 0x00042883}}},
+ {X: Field{[10]uint32{0x025337d4, 0x02dbd99e, 0x007d6477, 0x02550b2c, 0x01461e45, 0x00eee632, 0x0278f92f, 0x02bc2e41, 0x00898daf, 0x0026804f}}, Y: Field{[10]uint32{0x023c2a73, 0x012e87f6, 0x0205e877, 0x03c7fd4c, 0x03fec396, 0x017367f2, 0x009b773f, 0x008e939b, 0x005ac966, 0x00047e12}}},
+ {X: Field{[10]uint32{0x02b47d5c, 0x01cf5a6d, 0x01bea83e, 0x005cae2d, 0x013fa12d, 0x03d42cd2, 0x0019a615, 0x01060882, 0x00a144d5, 0x002d178a}}, Y: Field{[10]uint32{0x02c29f4b, 0x01b0c1a4, 0x00ae45b7, 0x0248256f, 0x03fb1c20, 0x00e65c94, 0x03f1dec4, 0x0334877f, 0x0383ccda, 0x003661f6}}},
+ {X: Field{[10]uint32{0x0241a0c9, 0x000f4d69, 0x02603cdc, 0x0014074a, 0x009a6592, 0x004064be, 0x0065d073, 0x016222a2, 0x02534984, 0x00279f5a}}, Y: Field{[10]uint32{0x00f462d9, 0x00052615, 0x033233c0, 0x02f2c87e, 0x02ce5f1f, 0x0134702c, 0x03e5690b, 0x027e9fd5, 0x00edace2, 0x003285dd}}},
+ {X: Field{[10]uint32{0x00991f47, 0x03fa90d5, 0x00b01b9a, 0x01023bc5, 0x03e433a9, 0x02017058, 0x03b306d5, 0x0184f159, 0x0029be1b, 0x00044e85}}, Y: Field{[10]uint32{0x03928697, 0x005159de, 0x023c7500, 0x0006454a, 0x000321e8, 0x01478e17, 0x0191ec1a, 0x032ee124, 0x01fa6d26, 0x000897b9}}},
+ {X: Field{[10]uint32{0x018d9181, 0x01575c50, 0x03964776, 0x029b4375, 0x016d6eb0, 0x01ac017a, 0x01e2597f, 0x02177e4c, 0x01d102cf, 0x000cbb23}}, Y: Field{[10]uint32{0x03f9d8b9, 0x035eeeeb, 0x022ab00d, 0x001786a8, 0x003423bc, 0x0310c1d9, 0x02f7f4d9, 0x0392966f, 0x01d078b3, 0x003f5c63}}},
+ {X: Field{[10]uint32{0x02e9246e, 0x0063a45c, 0x03865b12, 0x01c3bd1d, 0x01b145db, 0x018547e2, 0x021a5f14, 0x036b9017, 0x0267f2ce, 0x002b690c}}, Y: Field{[10]uint32{0x007cf82c, 0x038352c9, 0x00a541f3, 0x021b0acb, 0x0116e396, 0x02c11d1a, 0x0315c578, 0x0134a7e7, 0x02e04d1f, 0x0034522f}}},
+ {X: Field{[10]uint32{0x01bf0cbe, 0x02e611e5, 0x006bbbf7, 0x001c805f, 0x0265f5ca, 0x036e8694, 0x03e662be, 0x01d29a47, 0x02bedebd, 0x00206282}}, Y: Field{[10]uint32{0x009c0a53, 0x006738c2, 0x03bc8da7, 0x00ee4240, 0x030ac0f0, 0x0389cede, 0x008da9bc, 0x00b1cda6, 0x006a0187, 0x0039ecb4}}},
+ {X: Field{[10]uint32{0x010b3c94, 0x02fa041f, 0x02f14d80, 0x01b7cb44, 0x02ae7602, 0x0165bc27, 0x00c1a1bf, 0x03684201, 0x0355ef77, 0x000bd27a}}, Y: Field{[10]uint32{0x02038b83, 0x0138e0cf, 0x02ffa569, 0x01ae00b2, 0x011a7903, 0x01b533b4, 0x0289aa1e, 0x004463ad, 0x0010002f, 0x001a8896}}},
+ {X: Field{[10]uint32{0x02faf74a, 0x0314d4de, 0x0278ba5c, 0x031e61b1, 0x02bf66d5, 0x03b6f457, 0x02f8029b, 0x00097daf, 0x017054cb, 0x001ff953}}, Y: Field{[10]uint32{0x00ad89b0, 0x025b042d, 0x03695022, 0x03f76dd5, 0x00a47a82, 0x02462155, 0x016afb66, 0x0198c9b4, 0x03ec72ac, 0x003f7185}}},
+ {X: Field{[10]uint32{0x02ed2689, 0x028fdd63, 0x0131956a, 0x02eb7bb0, 0x03411ec9, 0x02e71575, 0x01b8675d, 0x02128327, 0x03662b82, 0x00213d64}}, Y: Field{[10]uint32{0x02cd0d88, 0x0263a0c2, 0x01dfe4de, 0x024bd07b, 0x01480425, 0x01144722, 0x01119c4c, 0x01bb5e09, 0x01d96bef, 0x0020db99}}},
+ {X: Field{[10]uint32{0x0185ee1b, 0x029bed50, 0x01f52da0, 0x004978ad, 0x00a46b16, 0x033326ff, 0x02eb6b71, 0x02083781, 0x00301a84, 0x003242aa}}, Y: Field{[10]uint32{0x010dc8df, 0x00d48dfe, 0x02efb161, 0x01276489, 0x01cc2134, 0x02671628, 0x031e05cd, 0x01760a4c, 0x03c00b28, 0x003aa1b5}}},
+ {X: Field{[10]uint32{0x012ef100, 0x01f65b86, 0x00addc05, 0x02b673f7, 0x018669b2, 0x00d850aa, 0x03047ef6, 0x0126f9a7, 0x0176abae, 0x003fed35}}, Y: Field{[10]uint32{0x03ec6c7a, 0x024406ed, 0x0012080a, 0x01b6948e, 0x013d9596, 0x0203daa3, 0x02700e4c, 0x038060ce, 0x0114b2d5, 0x000dd033}}},
+ {X: Field{[10]uint32{0x01403de0, 0x01e3f2b3, 0x00a3c08b, 0x0174b0cf, 0x0312c24b, 0x026bfbff, 0x03ebb618, 0x01af33ad, 0x018967ad, 0x001022a3}}, Y: Field{[10]uint32{0x01caecf3, 0x02f391f8, 0x013a2cdc, 0x015ff58c, 0x014acd35, 0x007605c7, 0x00fb66ff, 0x0310ba8a, 0x03a6378c, 0x000edd87}}},
+ {X: Field{[10]uint32{0x0053b787, 0x0120ba1f, 0x027123e3, 0x013c60c9, 0x006c80c0, 0x006c2ac1, 0x01e27e3f, 0x00276ff7, 0x03f61531, 0x0016028c}}, Y: Field{[10]uint32{0x0028431a, 0x00d4f039, 0x02dd801d, 0x028d58e6, 0x02f70a33, 0x025c0bfd, 0x01ac5ae6, 0x020783a6, 0x03c3fddc, 0x002ee01c}}},
+ {X: Field{[10]uint32{0x0344130f, 0x039e27e0, 0x018c2505, 0x036ce31a, 0x014c7860, 0x020d26b4, 0x02b11008, 0x03332b11, 0x02947054, 0x000b4c42}}, Y: Field{[10]uint32{0x023db697, 0x0237204f, 0x02a9a5d2, 0x0168b89a, 0x022df187, 0x0244f643, 0x011be0a0, 0x03243a70, 0x029c3c6e, 0x0007a881}}},
+ {X: Field{[10]uint32{0x027aa450, 0x008c7e1a, 0x03b32985, 0x009091a5, 0x015d82b4, 0x02e0d6bb, 0x022f2e3a, 0x0072b4fc, 0x002be7b1, 0x000a1d0a}}, Y: Field{[10]uint32{0x00415c42, 0x008c5c7c, 0x02b74cfa, 0x000c87c9, 0x02cf39ce, 0x0107642e, 0x02e3860e, 0x02e48888, 0x032db2e1, 0x0000a18c}}},
+ {X: Field{[10]uint32{0x036231cf, 0x01b9007a, 0x02ea48b3, 0x016e54c3, 0x016940f8, 0x00adde60, 0x02f5e418, 0x03ce8042, 0x039ff77b, 0x002be79d}}, Y: Field{[10]uint32{0x00e84c67, 0x03dd5066, 0x03389c13, 0x020eac7f, 0x034deb70, 0x01b5ae23, 0x01d958b8, 0x0057249a, 0x0350dbaf, 0x00274f50}}},
+ {X: Field{[10]uint32{0x008c1ef3, 0x00740d5a, 0x01b35447, 0x02302998, 0x00bc93ad, 0x00ec9de3, 0x03d27577, 0x029cd49b, 0x038d515c, 0x001117b6}}, Y: Field{[10]uint32{0x0090dc49, 0x0193c95c, 0x002f555d, 0x0269154e, 0x02e94b75, 0x03cda84f, 0x03743611, 0x018be0ed, 0x023cfde7, 0x0025245e}}},
+ {X: Field{[10]uint32{0x001811b4, 0x01d4049c, 0x012aa0dc, 0x02e8ad98, 0x013e76fe, 0x01fb0d34, 0x009993cf, 0x014c183e, 0x020a370d, 0x00380430}}, Y: Field{[10]uint32{0x006fd8af, 0x03d93fc4, 0x023cee3a, 0x009bc857, 0x03798a64, 0x032cf311, 0x0157a214, 0x026f814b, 0x032d280d, 0x0032d145}}},
+ {X: Field{[10]uint32{0x025af8f9, 0x0108d4ab, 0x033f9eed, 0x00ed9eed, 0x02ef548b, 0x03ed1334, 0x0134080c, 0x031f96c4, 0x03ca4625, 0x0034d09d}}, Y: Field{[10]uint32{0x03e4a4df, 0x03963235, 0x02b441ec, 0x026b389e, 0x02c39190, 0x038fd13b, 0x037bd609, 0x023dfaec, 0x03797a62, 0x0028d7d5}}},
+ {X: Field{[10]uint32{0x031d628d, 0x017bb2b2, 0x01c5dd66, 0x030f27ec, 0x03d96182, 0x0291ccf8, 0x004977fe, 0x010906da, 0x03993bd5, 0x002f82e4}}, Y: Field{[10]uint32{0x03b7fdb8, 0x016fa103, 0x009dadbf, 0x003c17ec, 0x0013218b, 0x03b10626, 0x03762728, 0x0349a837, 0x0353744e, 0x000de410}}},
+ {X: Field{[10]uint32{0x018f3980, 0x00b0c67f, 0x0309dc3b, 0x00d3a04b, 0x01edd9bd, 0x01ad0a0a, 0x019f48fd, 0x0087a47b, 0x01f1ed4a, 0x000c20a5}}, Y: Field{[10]uint32{0x02ac0230, 0x02975fab, 0x00181a8b, 0x00d225f1, 0x030797d4, 0x03b93328, 0x0214c314, 0x00386926, 0x034d5c36, 0x001a0d70}}},
+ {X: Field{[10]uint32{0x00495b1a, 0x0236ccb7, 0x03b412b8, 0x01799a8d, 0x01c2e07a, 0x0043d7e9, 0x0391604e, 0x021e77f5, 0x035161aa, 0x0019b3fa}}, Y: Field{[10]uint32{0x0252a1e1, 0x03e726cc, 0x03fe3f9f, 0x0317edba, 0x025ffba9, 0x0120ef09, 0x0229602b, 0x03f004f8, 0x029bf8a2, 0x0028381e}}},
+ {X: Field{[10]uint32{0x03e39ba4, 0x02168b5b, 0x03648ec8, 0x03be6d57, 0x01bf7b3a, 0x00d29284, 0x03b3d9d3, 0x03a9c133, 0x00fb849c, 0x0003d0ae}}, Y: Field{[10]uint32{0x01e8b22f, 0x03458298, 0x019a7036, 0x012af27c, 0x01f5b0fb, 0x034e06b8, 0x035db65d, 0x012bfe7d, 0x01e2a36d, 0x002d8188}}},
+ {X: Field{[10]uint32{0x03ab034f, 0x00c4952f, 0x008e385a, 0x03698233, 0x00c57b7f, 0x0199be3d, 0x00fdc462, 0x018c8cbb, 0x03852290, 0x0010a705}}, Y: Field{[10]uint32{0x0162af35, 0x02605aca, 0x001f18e6, 0x027aaf25, 0x0250b396, 0x0206a813, 0x03bfcb04, 0x023d5d02, 0x02591a86, 0x0038642e}}},
+ {X: Field{[10]uint32{0x01ebf611, 0x037dee03, 0x03d7dfaf, 0x0215bf19, 0x009895b9, 0x02cde3b9, 0x01e4237f, 0x026832e5, 0x017c9478, 0x003224e7}}, Y: Field{[10]uint32{0x00ad3682, 0x003e07c7, 0x022b0437, 0x01fa6c57, 0x0047feb7, 0x0018b4b5, 0x02d05e23, 0x01185f0d, 0x036206e9, 0x00050ebf}}},
+ {X: Field{[10]uint32{0x0398ef94, 0x01bcf310, 0x00cfb1d3, 0x02de370f, 0x022b82ae, 0x010ab607, 0x0215ae41, 0x00c90c93, 0x01bf5630, 0x00179055}}, Y: Field{[10]uint32{0x035da55a, 0x03d3fd7a, 0x03b75ed6, 0x019080fc, 0x01b90833, 0x005b5d09, 0x033807f2, 0x028ee6a7, 0x01272325, 0x001a007d}}},
+ {X: Field{[10]uint32{0x00d1b573, 0x036f4fc2, 0x0165b5e9, 0x00c181e2, 0x03eb01c5, 0x01c45388, 0x03fa851a, 0x024ef9ee, 0x019853f0, 0x000465ac}}, Y: Field{[10]uint32{0x00628795, 0x015ff4af, 0x0297e5c5, 0x03b7fbc2, 0x00fe79dc, 0x0060f6d1, 0x00dea44d, 0x03b88360, 0x00f054bf, 0x00001e53}}},
+ {X: Field{[10]uint32{0x033a6094, 0x00dbb4b1, 0x03a1dea8, 0x017dadda, 0x0339803e, 0x01a00c38, 0x038fcd01, 0x01cdedf6, 0x012074bb, 0x00360636}}, Y: Field{[10]uint32{0x0176e504, 0x01bc5e40, 0x00afe9d9, 0x006fed33, 0x02ff15d5, 0x02d7c21b, 0x00d2aacf, 0x00462a03, 0x03b51f63, 0x001ab1f6}}},
+ {X: Field{[10]uint32{0x006c6204, 0x02d193ec, 0x02d8851d, 0x00b6c9cf, 0x01703904, 0x02b97262, 0x01a433ee, 0x02afa7b6, 0x034bf5cc, 0x003009da}}, Y: Field{[10]uint32{0x00f4756b, 0x00bbf289, 0x02cc5fd5, 0x03526cfe, 0x00972593, 0x02160548, 0x001a582a, 0x02b20752, 0x00ae6349, 0x0012249c}}},
+ {X: Field{[10]uint32{0x01d83307, 0x00d0f5f3, 0x00a7a0d3, 0x00187136, 0x020b8989, 0x00f42c92, 0x01b300b4, 0x0334c3ae, 0x021cca23, 0x000252ca}}, Y: Field{[10]uint32{0x02481df1, 0x014c0be7, 0x00640607, 0x020e6694, 0x02e6e746, 0x020ce2e7, 0x01608015, 0x02f7296e, 0x0156b709, 0x0011f17b}}},
+ {X: Field{[10]uint32{0x027d5108, 0x01a21dab, 0x0195a668, 0x00af4d16, 0x009f157d, 0x030a3ed9, 0x021c3850, 0x03d53b92, 0x0379df2b, 0x003cabb8}}, Y: Field{[10]uint32{0x01c8ef08, 0x00b7558d, 0x0231113f, 0x023ef55a, 0x0319a7bf, 0x019dbbbe, 0x0079d351, 0x0287e724, 0x03ae9c90, 0x002b9d9a}}},
+ {X: Field{[10]uint32{0x029833ad, 0x01aee16e, 0x02222830, 0x028115b3, 0x01e81e4d, 0x018071aa, 0x029cd043, 0x0312cabe, 0x004f3dbd, 0x003f23f9}}, Y: Field{[10]uint32{0x0156fe15, 0x001d4e1b, 0x01094ce3, 0x017b3a31, 0x012b0765, 0x029420ae, 0x0330a52e, 0x014b5d90, 0x0378a98f, 0x001a8c86}}},
+ {X: Field{[10]uint32{0x00255c14, 0x02d19393, 0x02b7c5b8, 0x012d60c3, 0x017444d0, 0x00b77043, 0x01aa3ebe, 0x03cf2fef, 0x017919a4, 0x0034e337}}, Y: Field{[10]uint32{0x008c15fa, 0x0195544b, 0x02e6f1a5, 0x0254776a, 0x03e19040, 0x0336baf9, 0x02311fe0, 0x00bf6e52, 0x02f1823a, 0x001a83c7}}},
+ {X: Field{[10]uint32{0x01a4b41f, 0x011d4e02, 0x03f4c142, 0x00675ddc, 0x03916ea1, 0x009ad7a7, 0x0071943a, 0x021a4343, 0x02f6013d, 0x002b00b9}}, Y: Field{[10]uint32{0x005ea2b1, 0x00c6e9b0, 0x008f3995, 0x00650ddc, 0x03726598, 0x023f4bd9, 0x019c5e76, 0x013aaefb, 0x019e436b, 0x003ab712}}},
+ {X: Field{[10]uint32{0x006419c8, 0x026dc074, 0x01177d7d, 0x01d47fd9, 0x02dc6d1a, 0x001dbe73, 0x03b5cd07, 0x03518ab1, 0x031ac36b, 0x0000e522}}, Y: Field{[10]uint32{0x011765ba, 0x02ee5746, 0x00bd2732, 0x0239de59, 0x0372d5d1, 0x0333ad87, 0x0141ea71, 0x000f1eac, 0x00eba01c, 0x0032a47f}}},
+ {X: Field{[10]uint32{0x02706e9a, 0x00c65c5f, 0x0355435e, 0x034176f2, 0x02ea9e73, 0x03ff6210, 0x014c0c2c, 0x000369b7, 0x008d21d6, 0x00131f6f}}, Y: Field{[10]uint32{0x038230fe, 0x0305fd49, 0x0042d35d, 0x02f6336d, 0x016db46e, 0x01fdfa16, 0x002f4129, 0x01eaf4a7, 0x0344b87b, 0x0021a9df}}},
+ {X: Field{[10]uint32{0x0244f623, 0x03847920, 0x01e0698e, 0x00c7677d, 0x01b7dec7, 0x001d0ec3, 0x038c2f7a, 0x0178b427, 0x01aab382, 0x001d48a3}}, Y: Field{[10]uint32{0x000a1676, 0x0086a21e, 0x01aa4510, 0x01949829, 0x0075e336, 0x034a0ba9, 0x0237bdfe, 0x03c41f6e, 0x0187e122, 0x00258f0a}}},
+ {X: Field{[10]uint32{0x0280a579, 0x034b0ac3, 0x00147632, 0x00fc40b0, 0x02b584a7, 0x006de91e, 0x02ea92c7, 0x00587e3d, 0x02b32ed2, 0x002a8ea1}}, Y: Field{[10]uint32{0x024e6cb7, 0x01806b6b, 0x002abbc4, 0x03fddc8b, 0x03f7e517, 0x00409135, 0x01345d32, 0x03193c37, 0x009d2b4e, 0x002e3f89}}},
+ {X: Field{[10]uint32{0x013f22f7, 0x034c5906, 0x0368abcf, 0x01f4f4f0, 0x014c0322, 0x035bcebe, 0x00b992f7, 0x000e7696, 0x012d9828, 0x001c0ae4}}, Y: Field{[10]uint32{0x02bac387, 0x039710b1, 0x0136f71d, 0x02e8e5ab, 0x02b576cc, 0x01c5331f, 0x00a4e14c, 0x0335e04c, 0x00493a32, 0x0009624b}}},
+ {X: Field{[10]uint32{0x0090ba75, 0x034ed727, 0x03567829, 0x00ee3dbc, 0x01269f70, 0x00315c04, 0x0221dfc1, 0x02fe98a8, 0x00886d44, 0x00132843}}, Y: Field{[10]uint32{0x03fde3e7, 0x00fb3ed3, 0x034b9dac, 0x0089fc0d, 0x0395b04a, 0x00b5df6c, 0x01e6f277, 0x038d6353, 0x02b29282, 0x000cc8fa}}},
+ {X: Field{[10]uint32{0x02b9c325, 0x0159ce24, 0x02d342da, 0x00d4ba51, 0x00f3601c, 0x0305d3bf, 0x00aa4362, 0x01a5c80b, 0x023630da, 0x0005867a}}, Y: Field{[10]uint32{0x030e881e, 0x029cbe43, 0x02de4b98, 0x025e471f, 0x03a1c126, 0x01237b5e, 0x0188dd61, 0x019e7a9b, 0x000e13b8, 0x0008ab45}}},
+ {X: Field{[10]uint32{0x034d3032, 0x02f4e634, 0x034c6365, 0x02ead941, 0x0064d589, 0x00c0be2b, 0x01409a8a, 0x02fed273, 0x003818de, 0x000877f7}}, Y: Field{[10]uint32{0x004099a9, 0x02c5f39e, 0x01c4579e, 0x00f885c9, 0x02106d19, 0x02d809b9, 0x006ddcdb, 0x0148129e, 0x02c20e83, 0x002eef9f}}},
+ {X: Field{[10]uint32{0x01069fe1, 0x036f5021, 0x01bd1c0d, 0x00b82eec, 0x03036a47, 0x00b3383b, 0x02e99aa1, 0x006acb2e, 0x01dd802f, 0x00183ef9}}, Y: Field{[10]uint32{0x03349dc3, 0x02f94929, 0x013167f9, 0x02cade2c, 0x0399feb1, 0x015023c2, 0x03d07a68, 0x00135a0b, 0x03592dd3, 0x0003aa0e}}},
+ {X: Field{[10]uint32{0x02147f96, 0x019db307, 0x0066ae29, 0x01e53712, 0x03dd7c24, 0x01650174, 0x008ee975, 0x0316eea1, 0x0065fdcd, 0x0032012d}}, Y: Field{[10]uint32{0x03adc5a2, 0x03bbbc96, 0x035223a7, 0x028b3e6e, 0x03fb10cc, 0x02e0a393, 0x02bf43a9, 0x00adc3af, 0x02b71fd8, 0x002a928b}}},
+ {X: Field{[10]uint32{0x010336d9, 0x03674f75, 0x03b7bd96, 0x02ecc64b, 0x005c74cf, 0x030cbdb0, 0x011b3383, 0x00ed5771, 0x03e55137, 0x001de9b8}}, Y: Field{[10]uint32{0x006f047f, 0x0162dac3, 0x032b67d3, 0x01b8e15b, 0x035de35d, 0x03ff355c, 0x02075c10, 0x02b1c523, 0x026e86ef, 0x0008748c}}},
+ {X: Field{[10]uint32{0x015f7a5a, 0x00758b43, 0x018c9473, 0x033d938f, 0x01a89d82, 0x01a93b19, 0x02706ff2, 0x03bb4999, 0x01874a72, 0x0021b770}}, Y: Field{[10]uint32{0x030cc29c, 0x03396ad3, 0x0295c443, 0x01781337, 0x0340507b, 0x028f9b72, 0x0217816b, 0x02848ea4, 0x0040ce45, 0x00147df3}}},
+ {X: Field{[10]uint32{0x03d3beca, 0x025bcff1, 0x028ce4a5, 0x03be13a8, 0x038c80d5, 0x005578c9, 0x0108675a, 0x03ab11b0, 0x00f8db8e, 0x0033d274}}, Y: Field{[10]uint32{0x020086fc, 0x02e5b7d0, 0x02d41235, 0x02970c51, 0x007cdd64, 0x0186475a, 0x002dcd6a, 0x01d70fb6, 0x0341ebae, 0x001bff71}}},
+ {X: Field{[10]uint32{0x035875f4, 0x0232d52d, 0x00381051, 0x01457f86, 0x00c9f5c8, 0x03849b3b, 0x020e8721, 0x019c88b5, 0x038957eb, 0x00075d7b}}, Y: Field{[10]uint32{0x038dbdb4, 0x027719ad, 0x033e37b9, 0x0095dd96, 0x01c20766, 0x03e8750a, 0x024ae2f5, 0x0158776f, 0x03dd9288, 0x0020b177}}},
+ {X: Field{[10]uint32{0x03ad0689, 0x00b2a279, 0x036dca29, 0x038f1b76, 0x005bb5b7, 0x02540cd2, 0x00d94666, 0x01848a76, 0x0335f62e, 0x002fa92d}}, Y: Field{[10]uint32{0x03a08901, 0x0082b4c1, 0x0011cd8e, 0x00dbd4a8, 0x027cda58, 0x02df007c, 0x019a4517, 0x0278439f, 0x038a08ea, 0x002438c9}}},
+ {X: Field{[10]uint32{0x0169f2bb, 0x00e5aa58, 0x037281af, 0x03c2ceb2, 0x02577f5c, 0x01756627, 0x010aaa27, 0x0145c063, 0x02dea90e, 0x003a16c2}}, Y: Field{[10]uint32{0x0250aaa8, 0x01fd6679, 0x03358066, 0x01a75020, 0x0230ef12, 0x015edfd6, 0x016fec57, 0x01d718e4, 0x00cd3ca1, 0x00350a5c}}},
+ {X: Field{[10]uint32{0x03928934, 0x0390b628, 0x00f5e3ff, 0x0213008a, 0x0082ca55, 0x033df30b, 0x01ed550f, 0x00149b90, 0x02dd2405, 0x00365d64}}, Y: Field{[10]uint32{0x022d102e, 0x013713bf, 0x0126a217, 0x01149bcb, 0x024de0db, 0x0008dbd3, 0x01a3852a, 0x0070edd6, 0x01696bf0, 0x003ab1b0}}},
+ {X: Field{[10]uint32{0x026e00e7, 0x00d7b859, 0x013ebedd, 0x01d56bad, 0x00fd7725, 0x023195de, 0x00e60a9a, 0x008388de, 0x02a450b6, 0x0003808f}}, Y: Field{[10]uint32{0x0094797e, 0x0198d4da, 0x01e306a9, 0x01338df8, 0x026bdd54, 0x02457d41, 0x020f0e78, 0x033e26c1, 0x00506dbd, 0x001393b6}}},
+ {X: Field{[10]uint32{0x01935e5a, 0x0013b083, 0x01c9cc83, 0x00b70c0b, 0x02a7c0ec, 0x01aa15ef, 0x001b9f7e, 0x03f5ba96, 0x00955cd4, 0x001856d7}}, Y: Field{[10]uint32{0x015f4d46, 0x0086c53f, 0x038d36e4, 0x01d3cda9, 0x0146fc80, 0x0175d536, 0x01845bff, 0x00c96ef3, 0x03662602, 0x00308871}}},
+ {X: Field{[10]uint32{0x02ec13a7, 0x031cd625, 0x0185bc2c, 0x02168012, 0x03fa2a0d, 0x004e46f6, 0x00e34d60, 0x008086e7, 0x003402e1, 0x002c77e9}}, Y: Field{[10]uint32{0x0348438e, 0x00fbd665, 0x03eadd10, 0x03316264, 0x0013c2a5, 0x01be062d, 0x03b7e9b0, 0x03e0a076, 0x015a8162, 0x003e8f44}}},
+ {X: Field{[10]uint32{0x03eada7c, 0x028f272e, 0x0097436b, 0x02acc966, 0x0068c7e1, 0x0393b372, 0x0275b835, 0x011ff6b1, 0x001fafbe, 0x002d92d8}}, Y: Field{[10]uint32{0x01dbe68d, 0x0148dd3a, 0x007d85ea, 0x00355cd2, 0x02652ae9, 0x018b6f26, 0x03606624, 0x015d1bfa, 0x0039d231, 0x002bde30}}},
+ {X: Field{[10]uint32{0x03b579cf, 0x03cc991a, 0x013364a0, 0x008d49c5, 0x01b0981f, 0x02535d59, 0x01027d4e, 0x036721b1, 0x0346fda1, 0x00150a74}}, Y: Field{[10]uint32{0x015b1880, 0x025a8ca6, 0x00f37ac6, 0x01654519, 0x02162d66, 0x035d18db, 0x00754dd2, 0x0364b8e4, 0x0197dfec, 0x0016e338}}},
+ {X: Field{[10]uint32{0x026f005b, 0x0152c58a, 0x03f94ff9, 0x01a7cde1, 0x0020e216, 0x00105d27, 0x000bb781, 0x019c62c1, 0x00f2056d, 0x002241a5}}, Y: Field{[10]uint32{0x01753341, 0x0070504b, 0x00df35df, 0x02dcc6e5, 0x007bf505, 0x01abf43e, 0x010d7b22, 0x02eff2ee, 0x034a890d, 0x003659a4}}},
+ {X: Field{[10]uint32{0x003cc117, 0x00b0ad9d, 0x0067ccb9, 0x0079128a, 0x00269b5d, 0x03f81832, 0x02987a05, 0x009adfe9, 0x0292cd05, 0x000eb9d4}}, Y: Field{[10]uint32{0x02416a94, 0x028b757c, 0x02871d22, 0x03a61ee0, 0x00f004ee, 0x00cc95af, 0x03d5416a, 0x02a0b63d, 0x00c15a74, 0x00042567}}},
+ {X: Field{[10]uint32{0x019b0707, 0x01771fca, 0x03ce93bb, 0x037a292a, 0x01347bba, 0x006e7e87, 0x0353fd5f, 0x01f55568, 0x029bff71, 0x00275d16}}, Y: Field{[10]uint32{0x02de8134, 0x030a399f, 0x0369b0ba, 0x03feb783, 0x0210461c, 0x039cd379, 0x004f615a, 0x031831cc, 0x00aed513, 0x0033bcce}}},
+ {X: Field{[10]uint32{0x0144f166, 0x02e54674, 0x009f0aaa, 0x02599214, 0x00abf1b8, 0x0248b018, 0x01ce7f4f, 0x0324e441, 0x002c8130, 0x001a67a7}}, Y: Field{[10]uint32{0x003a19cd, 0x028e7b5f, 0x004a438d, 0x00a65f49, 0x01bfb7da, 0x00e0275a, 0x01145838, 0x03e51257, 0x010e1fb9, 0x00220ad2}}},
+ {X: Field{[10]uint32{0x01591f87, 0x012869e1, 0x03550388, 0x02953d0c, 0x00ae79b4, 0x032ff8a6, 0x01ea704b, 0x001426a4, 0x00c1dc52, 0x0038e807}}, Y: Field{[10]uint32{0x02dcc64e, 0x005ff507, 0x00b96066, 0x0244dd24, 0x012480a8, 0x0376bd25, 0x0287e546, 0x02755ff2, 0x01f368d1, 0x003cf190}}},
+ {X: Field{[10]uint32{0x02c433d1, 0x03b8e35a, 0x035f1ee5, 0x039bf63f, 0x00cc7cce, 0x01126145, 0x01d23623, 0x00dd751b, 0x01c3d9df, 0x00174543}}, Y: Field{[10]uint32{0x02ab0316, 0x00c5bad4, 0x00061a32, 0x03fafeb7, 0x02399a83, 0x02100424, 0x000263f1, 0x03a839f6, 0x0250d2e2, 0x000b0244}}},
+ {X: Field{[10]uint32{0x00996a66, 0x003170b8, 0x02b16c10, 0x0201629b, 0x00ec4778, 0x038047e0, 0x00aea5b5, 0x02e8fd91, 0x0361bb12, 0x00127ee5}}, Y: Field{[10]uint32{0x0255e23c, 0x033f41b5, 0x00370089, 0x006e4a5e, 0x00d9086b, 0x00595317, 0x0099caf2, 0x02245161, 0x020fb720, 0x001c4d08}}},
+ {X: Field{[10]uint32{0x0244738e, 0x0032514a, 0x03b13d53, 0x01687d3d, 0x00bdea05, 0x02b73770, 0x03990211, 0x00b7ef79, 0x02b3a451, 0x000d3157}}, Y: Field{[10]uint32{0x0398fd16, 0x02693153, 0x021f2ba3, 0x0254c8cc, 0x010fdbb6, 0x00325e79, 0x0110e26d, 0x01007e6a, 0x0288beff, 0x00096331}}},
+ {X: Field{[10]uint32{0x00a3a98c, 0x0023508c, 0x0202ab25, 0x03c8c371, 0x039b1c39, 0x02bc3272, 0x037b82c2, 0x03f8013f, 0x00f07c3e, 0x001c1a3f}}, Y: Field{[10]uint32{0x037ef1fc, 0x02c65eb8, 0x01d77aaa, 0x01e5f8b8, 0x012fe506, 0x000ad77d, 0x03657bf2, 0x01e314b9, 0x00d88445, 0x003921cc}}},
+ {X: Field{[10]uint32{0x03355a1e, 0x02e1d3da, 0x01909f73, 0x01528ac0, 0x02f49e52, 0x03a38d1b, 0x03a1f95a, 0x02aa844a, 0x0110a987, 0x00038762}}, Y: Field{[10]uint32{0x03e3cdb8, 0x02ae41c3, 0x00235d7b, 0x008282e4, 0x01d4a56a, 0x03f57167, 0x01c2c149, 0x011f6266, 0x011bcc49, 0x0022b40c}}},
+ {X: Field{[10]uint32{0x02d2caf2, 0x02b0f2dc, 0x03d57c10, 0x0363b536, 0x006bdf06, 0x01837d17, 0x02c6b2dc, 0x018c6c05, 0x03880ba8, 0x00249426}}, Y: Field{[10]uint32{0x006a3ccf, 0x022bd61d, 0x038c3397, 0x00ccd776, 0x01ee6f0f, 0x0257c504, 0x0395651b, 0x018a66a7, 0x0231633b, 0x000fa91e}}},
+ {X: Field{[10]uint32{0x0266a519, 0x00d5ab06, 0x0351206a, 0x0078d371, 0x01644647, 0x02df4a69, 0x02ec994d, 0x0017a65a, 0x002ae8d5, 0x00243f50}}, Y: Field{[10]uint32{0x02da3b6b, 0x0162e96e, 0x02a62e19, 0x01611aaa, 0x039a6dc6, 0x0313c399, 0x0231816e, 0x00db82b6, 0x03f7bcdc, 0x0001a303}}},
+ {X: Field{[10]uint32{0x01400704, 0x024367ea, 0x005f5eb3, 0x01fc319b, 0x0004cbc7, 0x0104ac4a, 0x035b0ddd, 0x032a3878, 0x02cb7d9b, 0x0002ce03}}, Y: Field{[10]uint32{0x006a01a4, 0x03d14321, 0x038a7d78, 0x036f87d7, 0x0118fa71, 0x00a75573, 0x01f69a72, 0x02de0c27, 0x009277d9, 0x003f4a88}}},
+ {X: Field{[10]uint32{0x02b83f0c, 0x03bdec0c, 0x027520d3, 0x03bf33ca, 0x03f3d029, 0x01852495, 0x0066140b, 0x02db3dbe, 0x0041aecb, 0x001038b8}}, Y: Field{[10]uint32{0x002291f0, 0x01d131af, 0x01326704, 0x01063949, 0x01e1eda6, 0x005fc8ca, 0x02266794, 0x02223d53, 0x00a53c83, 0x000489c4}}},
+ {X: Field{[10]uint32{0x02a03583, 0x03082a2a, 0x009c8c99, 0x02e7dded, 0x037d254e, 0x02bab33a, 0x013a38e9, 0x00c324e2, 0x03c43f4e, 0x00239827}}, Y: Field{[10]uint32{0x02c1a3e8, 0x028f70de, 0x0296d066, 0x01ec3835, 0x00837fb5, 0x0075c0de, 0x0259a86b, 0x005411fc, 0x006e9a82, 0x00251f13}}},
+ {X: Field{[10]uint32{0x0035f5ce, 0x03020d7d, 0x020bb2ec, 0x00914bf3, 0x038d9c93, 0x02be26a3, 0x0098d001, 0x027f441a, 0x01b22bfe, 0x002e1c71}}, Y: Field{[10]uint32{0x031d3078, 0x015bc9a3, 0x00b64cd6, 0x03b80018, 0x03507fe8, 0x03c0e000, 0x007226b6, 0x003ba67e, 0x01a3ecbd, 0x0038c0b9}}},
+ {X: Field{[10]uint32{0x00841682, 0x001f3554, 0x03f832ac, 0x015f33a1, 0x01c6f80f, 0x01bffd35, 0x01241709, 0x02246aed, 0x027e039e, 0x00149b6a}}, Y: Field{[10]uint32{0x03d210df, 0x0169552c, 0x01f43c5f, 0x02733171, 0x00c477bc, 0x02b503da, 0x00fd3975, 0x004c39d6, 0x00994fb7, 0x001a7c11}}},
+ {X: Field{[10]uint32{0x021ad25a, 0x004be521, 0x01ba2edc, 0x01462b76, 0x015c031f, 0x03ed9be8, 0x027cc073, 0x00c15f39, 0x004a514e, 0x00305709}}, Y: Field{[10]uint32{0x02846c50, 0x00e5661c, 0x01b901ba, 0x037d72c1, 0x0016449d, 0x02f26a3f, 0x0234780b, 0x03225e37, 0x01acecc3, 0x0036c408}}},
+ {X: Field{[10]uint32{0x02c1d388, 0x00d05cfa, 0x033443e2, 0x01db36df, 0x01d34948, 0x00374f71, 0x03638735, 0x000e36ce, 0x0319466a, 0x000df882}}, Y: Field{[10]uint32{0x003b89f0, 0x023bd8ff, 0x00f252d6, 0x01e7da7b, 0x025ea5bb, 0x036d5eae, 0x02bcfa27, 0x01078bb2, 0x02245465, 0x00002e02}}},
+ {X: Field{[10]uint32{0x024ea528, 0x02393ed5, 0x01eabc59, 0x03241ffd, 0x016a0da5, 0x015e5629, 0x011cd81f, 0x00050acc, 0x0328feae, 0x001b4247}}, Y: Field{[10]uint32{0x01d07906, 0x00a418ff, 0x0274c27c, 0x01f16a2e, 0x026e9d9f, 0x03217748, 0x01897196, 0x029b04e0, 0x03f04d7e, 0x00122f25}}},
+ {X: Field{[10]uint32{0x0354fd71, 0x018d782e, 0x008d35ca, 0x0334fb75, 0x02d3e545, 0x020676ff, 0x001664fb, 0x03ed5bb4, 0x0016a76e, 0x000ef6f5}}, Y: Field{[10]uint32{0x00eb0639, 0x03cdbd4b, 0x00d26a6b, 0x024e0ae6, 0x039a63a8, 0x007eeb63, 0x03016219, 0x0094ffbc, 0x01723ed7, 0x0029a553}}},
+ {X: Field{[10]uint32{0x029d61ce, 0x022cb91f, 0x01237401, 0x0103661c, 0x00c41095, 0x02f0cfbc, 0x005d41a4, 0x02d57e30, 0x02a9f111, 0x0033538d}}, Y: Field{[10]uint32{0x014e3e57, 0x03188551, 0x02ddadf0, 0x02f09939, 0x03abded9, 0x014b7e01, 0x02f95ec4, 0x00b9a41b, 0x02165263, 0x0011e37e}}},
+ {X: Field{[10]uint32{0x01f24efd, 0x02a7c44b, 0x031c6272, 0x01c4b9df, 0x02248457, 0x01c2b19f, 0x03214131, 0x027038ef, 0x004a09c5, 0x0003c8f3}}, Y: Field{[10]uint32{0x037fa4b2, 0x0179f715, 0x013da9ed, 0x0339d28f, 0x02dc71cd, 0x00bde919, 0x0358fc07, 0x03bff573, 0x007299b6, 0x003a4cef}}},
+ {X: Field{[10]uint32{0x013c33e0, 0x01a56b7b, 0x0098931a, 0x01250d75, 0x0300d7a3, 0x02db6d88, 0x0046840c, 0x03acd6da, 0x01858c97, 0x00366319}}, Y: Field{[10]uint32{0x03114990, 0x02e18b78, 0x02eb2a85, 0x0068593c, 0x01ba1378, 0x00189ce5, 0x02c953c7, 0x020977ad, 0x0224ffe8, 0x00110ffa}}},
+ {X: Field{[10]uint32{0x00744225, 0x01b99adb, 0x0085fa94, 0x03728924, 0x0165325d, 0x031d2a6f, 0x012b9d16, 0x036b86db, 0x02a6c055, 0x00089a76}}, Y: Field{[10]uint32{0x01bfb3dd, 0x00b726fd, 0x03dee235, 0x03ceed1f, 0x0130e14f, 0x010bbf73, 0x00f0fe6a, 0x00115ac2, 0x01f9a61f, 0x00056740}}},
+ {X: Field{[10]uint32{0x027c48d5, 0x010300c5, 0x03ba4877, 0x02d08eb9, 0x01eb4d75, 0x011ac06b, 0x023880a5, 0x021e4a37, 0x00fd8eea, 0x000cd411}}, Y: Field{[10]uint32{0x02da1cc1, 0x01e8c273, 0x00226818, 0x027398f6, 0x000cfe1d, 0x015ecefa, 0x030f2bb7, 0x01aef18e, 0x03f52626, 0x001a7940}}},
+ {X: Field{[10]uint32{0x03f6c512, 0x0317e68f, 0x03a5046b, 0x026d8dea, 0x01a601da, 0x01ef2b9d, 0x00ee87b0, 0x02a0f953, 0x023d86f9, 0x003b9e89}}, Y: Field{[10]uint32{0x01373d56, 0x020a4250, 0x00f6042d, 0x020c587e, 0x01222714, 0x01039d8d, 0x008ac1c8, 0x01a3a48e, 0x01922032, 0x0027f74c}}},
+ {X: Field{[10]uint32{0x03f44245, 0x03975694, 0x02d976c5, 0x0111d9a8, 0x00bf95f3, 0x03d12a22, 0x03b6111e, 0x018c6db1, 0x03b336f1, 0x0014a6cc}}, Y: Field{[10]uint32{0x02061099, 0x002a15fa, 0x030004cf, 0x03ba7335, 0x036f29f9, 0x00a00927, 0x02bc1a03, 0x01bd28be, 0x010693da, 0x0004a158}}},
+ {X: Field{[10]uint32{0x03df1849, 0x00f3596a, 0x0243dd3e, 0x014e3af4, 0x006a2513, 0x035956a2, 0x01337182, 0x03a7d46a, 0x006da6ce, 0x003caccd}}, Y: Field{[10]uint32{0x03b77da3, 0x00ec3ddd, 0x032e1f48, 0x032cc937, 0x0355aaef, 0x03d89e34, 0x00665262, 0x000ffa7a, 0x0228be77, 0x0035077d}}},
+ {X: Field{[10]uint32{0x0182befa, 0x0166dc11, 0x0037b3f5, 0x00a88bce, 0x011db7a1, 0x0358e31f, 0x0103d045, 0x026319c3, 0x01bcf03d, 0x0014d7a7}}, Y: Field{[10]uint32{0x02358392, 0x0307d967, 0x024e740b, 0x01853d93, 0x0262ea47, 0x01fe0e12, 0x00fa98d6, 0x025f16f5, 0x0228bad8, 0x000b08cc}}},
+ {X: Field{[10]uint32{0x0299a7f1, 0x00ed282c, 0x03970825, 0x01e2140c, 0x00b019bf, 0x03fcd189, 0x023172dd, 0x01ab197b, 0x008b70da, 0x00304c5a}}, Y: Field{[10]uint32{0x00e5f3cc, 0x01e14677, 0x00d207dd, 0x03fc22e1, 0x000d6e1a, 0x027e65be, 0x0211d82e, 0x012365a6, 0x03b6e0e7, 0x003fbc61}}},
+ {X: Field{[10]uint32{0x014d3ba9, 0x01c6c85d, 0x02a645dc, 0x003261c9, 0x02a984d0, 0x029afe0c, 0x00eddf3d, 0x01e61443, 0x00d3f7ab, 0x001d7721}}, Y: Field{[10]uint32{0x03841c50, 0x02c8cab8, 0x02183af5, 0x03ac770a, 0x0384f62d, 0x00bbaa94, 0x005e4d28, 0x001244b3, 0x01f35e11, 0x003d767b}}},
+ {X: Field{[10]uint32{0x032a36c5, 0x011fb53c, 0x00648788, 0x035dbe63, 0x0282c6da, 0x01717f54, 0x03273102, 0x030e3ab9, 0x03bc9136, 0x00164771}}, Y: Field{[10]uint32{0x03a421a0, 0x025c9a35, 0x00233953, 0x02dc8751, 0x008d4875, 0x032db17a, 0x003aabb4, 0x034e0b80, 0x00c4f81c, 0x003f33e9}}},
+ {X: Field{[10]uint32{0x02712596, 0x01d4f384, 0x00f0fb14, 0x02d93162, 0x02d2c78d, 0x021eb3de, 0x0148fadb, 0x024aeb9d, 0x00892a83, 0x0020e967}}, Y: Field{[10]uint32{0x03c5873b, 0x0140c339, 0x0119be3e, 0x038c573e, 0x0046f090, 0x0208bfcf, 0x027c5988, 0x00819435, 0x001a33b1, 0x001f402b}}},
+ {X: Field{[10]uint32{0x026f6f83, 0x024f8b2e, 0x03fc76ca, 0x01a3b116, 0x036608f9, 0x018e47bf, 0x001b8c37, 0x02cbd2a7, 0x03a58c52, 0x003a6c37}}, Y: Field{[10]uint32{0x020a7c8d, 0x02d77bcb, 0x01be2e5c, 0x00e69e02, 0x035c1f08, 0x03acfcfe, 0x0089124f, 0x0378349d, 0x028d5846, 0x0019126c}}},
+ {X: Field{[10]uint32{0x032bc03b, 0x0269942d, 0x02f81b1b, 0x01435569, 0x00c76adf, 0x00e8f497, 0x011c002d, 0x02430f45, 0x02f967b0, 0x00005b34}}, Y: Field{[10]uint32{0x02d63a7b, 0x03f931a2, 0x0206f50f, 0x013e123b, 0x03a23db7, 0x035e1162, 0x00cc091b, 0x01c240e7, 0x001e2fe7, 0x00316498}}},
+ {X: Field{[10]uint32{0x02ff1cbe, 0x0128e28e, 0x026b6f58, 0x02e9ec61, 0x01d80b8d, 0x0135b97d, 0x023d9e24, 0x038d8da7, 0x03fd1bcd, 0x003cd1f4}}, Y: Field{[10]uint32{0x0287977a, 0x0313491f, 0x03a9766d, 0x02045613, 0x00c7349f, 0x0190497a, 0x01cfc6d0, 0x02284e63, 0x02b90ae3, 0x000710d6}}},
+ {X: Field{[10]uint32{0x02428b1b, 0x00dd33f6, 0x0126d534, 0x034ad3a6, 0x01f349ed, 0x01248551, 0x0049f113, 0x02153243, 0x0187d644, 0x0016c643}}, Y: Field{[10]uint32{0x025401f3, 0x0325efbe, 0x03ea856b, 0x01dac9c4, 0x039c1d31, 0x0174b055, 0x013ab256, 0x035aed72, 0x00c363ef, 0x002293ab}}},
+ {X: Field{[10]uint32{0x0030834f, 0x03d9f587, 0x003ab105, 0x03cdddcb, 0x01c49e78, 0x02f32b2b, 0x01e96650, 0x0133a3c8, 0x00b2d731, 0x0029de1b}}, Y: Field{[10]uint32{0x01441953, 0x025af52a, 0x0237146e, 0x006e817d, 0x006c4ea7, 0x02dc2ff0, 0x031f911c, 0x00b8fcbe, 0x00d41898, 0x0013f1eb}}},
+ {X: Field{[10]uint32{0x03bf33cb, 0x02807ecb, 0x01dcf545, 0x009bc1cf, 0x02abf74d, 0x003bcd85, 0x01faeddc, 0x00686231, 0x0353e907, 0x0034d953}}, Y: Field{[10]uint32{0x032f4383, 0x03c40ed0, 0x00de1880, 0x03649b0f, 0x0377c7a3, 0x0129c5bc, 0x038502fc, 0x000e5165, 0x00c7213c, 0x00295bc8}}},
+ {X: Field{[10]uint32{0x0022399c, 0x00e6a4de, 0x00994020, 0x01d83ba2, 0x0127d031, 0x02db6d33, 0x01d8ac3b, 0x032f681a, 0x0287400a, 0x003844e2}}, Y: Field{[10]uint32{0x03a162c1, 0x0259f544, 0x0012c9ce, 0x02543d78, 0x001803cd, 0x01a14f90, 0x0240de6b, 0x01b51971, 0x03bfdd3f, 0x003ca6a3}}},
+ {X: Field{[10]uint32{0x02317708, 0x02b26561, 0x007e7374, 0x0039daee, 0x02571473, 0x03272a54, 0x03c49c69, 0x03d3942c, 0x023c91c0, 0x0034a7ad}}, Y: Field{[10]uint32{0x02a5f1a1, 0x02bfd87f, 0x03dd9d73, 0x027c72cf, 0x02d9d38c, 0x0215b79a, 0x022ab4ac, 0x02029674, 0x03024e91, 0x0012b64d}}},
+ {X: Field{[10]uint32{0x02ee49f8, 0x022d2089, 0x03147ca4, 0x00c34637, 0x03d2124b, 0x022e3b2c, 0x0177da1d, 0x01ff5c19, 0x03baa671, 0x002a7500}}, Y: Field{[10]uint32{0x02d5323b, 0x005dadc9, 0x0133ff45, 0x027b6dd0, 0x0056f1e4, 0x02564451, 0x0137bcad, 0x0387b942, 0x027a8c5e, 0x0007bb7f}}},
+ {X: Field{[10]uint32{0x02f57528, 0x01daf427, 0x01e39ca0, 0x018e6390, 0x018d8f37, 0x004b6272, 0x02c6bfd1, 0x00156bba, 0x00e8dbb6, 0x003fded6}}, Y: Field{[10]uint32{0x00381121, 0x034942bf, 0x02ee6cf5, 0x03d6f506, 0x018e39f1, 0x00db01a1, 0x02cb57c8, 0x01479c35, 0x01d1ad7a, 0x0013938e}}},
+ {X: Field{[10]uint32{0x01362979, 0x02ebf46f, 0x016131e7, 0x007559bd, 0x021672ea, 0x038bc51b, 0x036db234, 0x027d8786, 0x029df783, 0x0010f142}}, Y: Field{[10]uint32{0x03f449ae, 0x029d3aa0, 0x03bd61ad, 0x0217d833, 0x001e2158, 0x02781486, 0x03e908f6, 0x006a2ea0, 0x02988154, 0x003c83f6}}},
+ {X: Field{[10]uint32{0x034ac30c, 0x00fc89c5, 0x03e53984, 0x0354a74e, 0x035803a9, 0x02f9b410, 0x0262ae16, 0x004a61d5, 0x01b701c9, 0x003d822a}}, Y: Field{[10]uint32{0x027ad5bf, 0x03121a8c, 0x008f2083, 0x019b5ed4, 0x01d788d2, 0x004eed59, 0x02d32434, 0x0375086e, 0x00fae919, 0x0017bcd9}}},
+ {X: Field{[10]uint32{0x005a117e, 0x004cc9d1, 0x02d568d0, 0x00881736, 0x033cc117, 0x03099d95, 0x03c48d00, 0x03c10fe6, 0x0029dd1e, 0x003244f8}}, Y: Field{[10]uint32{0x01a83049, 0x02169406, 0x02d8bace, 0x00610f89, 0x0032a38f, 0x00d49a81, 0x01cf07c1, 0x032ecdef, 0x030b9c31, 0x0025d5cf}}},
+ {X: Field{[10]uint32{0x02a7d728, 0x03715720, 0x0363cce7, 0x02c4d20b, 0x0361318b, 0x0332a11f, 0x000c58a0, 0x01ef059b, 0x009db17e, 0x002ab831}}, Y: Field{[10]uint32{0x006be0b8, 0x0398ddd7, 0x012516a7, 0x03fe7576, 0x02810396, 0x01633703, 0x0051aae6, 0x00f6b088, 0x03f3f68c, 0x001045c2}}},
+ {X: Field{[10]uint32{0x03c846c8, 0x02a8e23a, 0x02c96d35, 0x02d7af16, 0x01e306c8, 0x03792817, 0x039b15e3, 0x02d88966, 0x031f45a0, 0x003ca017}}, Y: Field{[10]uint32{0x038d1267, 0x027421da, 0x01dc9978, 0x00709902, 0x00b36e20, 0x0244be8e, 0x0325cdd0, 0x01c9115d, 0x03396ba3, 0x003d75c9}}},
+ {X: Field{[10]uint32{0x00fa4f39, 0x029ea400, 0x030d87b0, 0x00e9e049, 0x00f7d232, 0x01f61968, 0x0230e593, 0x0344b928, 0x00e6e150, 0x001a5a79}}, Y: Field{[10]uint32{0x0214de3a, 0x02dc61d7, 0x02f888da, 0x036eab85, 0x03e030a0, 0x01657727, 0x037ebe08, 0x03b430f9, 0x03d6d323, 0x0031c70c}}},
+ {X: Field{[10]uint32{0x01988f3e, 0x03bc0e63, 0x003e3e4c, 0x00e90465, 0x022aa064, 0x021cb7ef, 0x00fbdb8e, 0x0095eaf9, 0x03f07a0e, 0x0002bb0a}}, Y: Field{[10]uint32{0x00c931d0, 0x00755172, 0x01df6ef2, 0x0289c936, 0x00bcc3b6, 0x03fc2a0c, 0x00bc528f, 0x030e0321, 0x0157e686, 0x00363a7d}}},
+ {X: Field{[10]uint32{0x0126f710, 0x0090ef52, 0x033226bb, 0x0071e42f, 0x01198f56, 0x02764775, 0x002890b6, 0x030d7294, 0x019a13df, 0x00271bfe}}, Y: Field{[10]uint32{0x03ef849d, 0x020d00fd, 0x0311e9b6, 0x018cd08a, 0x012f7f4e, 0x03fd1a0e, 0x008f5411, 0x03d6b676, 0x020c84a4, 0x000abbe4}}},
+ {X: Field{[10]uint32{0x02d7f1c2, 0x0239b825, 0x00aefafb, 0x03b2d776, 0x02ade75a, 0x03bb7994, 0x00246d67, 0x0388e37c, 0x005b37a5, 0x003e90dd}}, Y: Field{[10]uint32{0x018689b1, 0x013a0b6a, 0x01eaddc4, 0x03e167fa, 0x0248aba7, 0x03be4e7b, 0x013c8f3f, 0x019500de, 0x02a42a3c, 0x0037e756}}},
+ {X: Field{[10]uint32{0x038d46b9, 0x010f76a9, 0x00741276, 0x01396196, 0x020ce3b7, 0x039ddfe5, 0x03b84d09, 0x009b1fac, 0x02886c4e, 0x001a528c}}, Y: Field{[10]uint32{0x03dfe67a, 0x01aa7862, 0x018b0144, 0x00cb2c4c, 0x02a700d9, 0x0248b316, 0x00909be0, 0x011795ba, 0x006d0076, 0x0029535b}}},
+ {X: Field{[10]uint32{0x008f38a0, 0x02b45eb0, 0x02be43d4, 0x0081f31c, 0x01930fe9, 0x00498843, 0x00339a2b, 0x01aca2d3, 0x01975be0, 0x00195265}}, Y: Field{[10]uint32{0x02f7900c, 0x01110fdc, 0x02be1c68, 0x02c22cd6, 0x03d29fe8, 0x02078fd6, 0x02cd92ce, 0x03738cb4, 0x03bb467f, 0x002f7b88}}},
+ {X: Field{[10]uint32{0x0399f0bd, 0x00266c01, 0x00137400, 0x02ca6c42, 0x000ea38e, 0x020ebb11, 0x014f0844, 0x005392df, 0x00f675bb, 0x000de472}}, Y: Field{[10]uint32{0x02f7bc76, 0x013a463b, 0x0316d15a, 0x01170c72, 0x018b2a3f, 0x02fb97b9, 0x0396ddbc, 0x017adbce, 0x034ada5e, 0x000b723d}}},
+ {X: Field{[10]uint32{0x02f31364, 0x0106a31b, 0x018ed429, 0x01e864e7, 0x0359795c, 0x02b3da90, 0x00469360, 0x0243a7a4, 0x0065eaf8, 0x00357904}}, Y: Field{[10]uint32{0x025bbcad, 0x0055b2fd, 0x03f6d21f, 0x032c341b, 0x00bd2f30, 0x00b930cb, 0x03bb6b8f, 0x03f539ea, 0x00c8a559, 0x000647b1}}},
+ {X: Field{[10]uint32{0x00970dec, 0x02b5940b, 0x03ae8b77, 0x03cbaaa8, 0x01e504e6, 0x008162e6, 0x0229acb6, 0x010134a2, 0x0280fa0b, 0x0005b388}}, Y: Field{[10]uint32{0x02efb09b, 0x012e0755, 0x029b8817, 0x0179fe5b, 0x00b6eaec, 0x01d39643, 0x00bc2520, 0x0376e795, 0x03f4486a, 0x000f51a0}}},
+ {X: Field{[10]uint32{0x02107d07, 0x00ed4071, 0x030160bf, 0x01fb5f51, 0x03e08f99, 0x005a106d, 0x025b4478, 0x02c7ce43, 0x03306cdf, 0x0029ac2a}}, Y: Field{[10]uint32{0x000abf7a, 0x02692daa, 0x0258d9cb, 0x0392843d, 0x03094e96, 0x01caaf26, 0x02d337fd, 0x009e524b, 0x002fb67e, 0x000a98a1}}},
+ {X: Field{[10]uint32{0x02033583, 0x00018a15, 0x02d9021e, 0x022a3fda, 0x0252b9d0, 0x01c27cdd, 0x00b779cd, 0x00c82c87, 0x0138760b, 0x0035f29b}}, Y: Field{[10]uint32{0x009e7bb5, 0x01cbffe1, 0x01b046d6, 0x03ea660b, 0x015e2d1c, 0x00500586, 0x011b6cbb, 0x0166e5ae, 0x0372866d, 0x0035b017}}},
+ {X: Field{[10]uint32{0x01609d33, 0x01b2d17d, 0x03ef375f, 0x01758682, 0x03e16240, 0x004871cf, 0x00cb1347, 0x01c1f9ce, 0x01632d3f, 0x001e2ac1}}, Y: Field{[10]uint32{0x0275a6b0, 0x013b17fb, 0x034f2109, 0x012557ed, 0x00350eba, 0x02ea9714, 0x03a4b424, 0x032d3ca5, 0x010c10c7, 0x003f868e}}},
+ {X: Field{[10]uint32{0x000d6f04, 0x001cb146, 0x01879bd1, 0x00a0a24d, 0x01218e21, 0x003923f6, 0x01fc5a96, 0x03a00c19, 0x013a5b9f, 0x003014d5}}, Y: Field{[10]uint32{0x02719192, 0x0221a68f, 0x008a4752, 0x03714730, 0x027d0d28, 0x01ef8a00, 0x01c45cf5, 0x02ac1384, 0x0374214d, 0x00380b69}}},
+ {X: Field{[10]uint32{0x03f02d03, 0x0357af48, 0x01b4eb65, 0x025604e1, 0x035faf8e, 0x003f07ec, 0x018d4033, 0x02570fbe, 0x0313e2a9, 0x002fe175}}, Y: Field{[10]uint32{0x03e59b18, 0x0101d22c, 0x00bbd6b9, 0x025a20a1, 0x03dcb68e, 0x00777481, 0x0142a6f2, 0x02c386a1, 0x014758d7, 0x00297516}}},
+ {X: Field{[10]uint32{0x01bd280a, 0x01343c40, 0x0031d69a, 0x00167954, 0x00138169, 0x02c2bbb0, 0x022ee0de, 0x01e2e03f, 0x02c92be5, 0x003edced}}, Y: Field{[10]uint32{0x0214cd16, 0x0348b165, 0x01cf3e31, 0x0260df8f, 0x00e15bbc, 0x016f7a06, 0x0030bd25, 0x02957f51, 0x00939bf5, 0x001cb39e}}},
+ {X: Field{[10]uint32{0x0228aa79, 0x03cdc305, 0x00dfc1e2, 0x00d60cd8, 0x00d99281, 0x03d2db0b, 0x01b04f78, 0x02372480, 0x025aed33, 0x0015925b}}, Y: Field{[10]uint32{0x028c2db1, 0x02291daf, 0x0072586c, 0x015344c0, 0x00092ffa, 0x015b5454, 0x0315d3fa, 0x0329c048, 0x008a824f, 0x002076fd}}},
+ {X: Field{[10]uint32{0x03a2130c, 0x01724c6d, 0x036df790, 0x01e56327, 0x02aecc0a, 0x03ca9086, 0x01edcc62, 0x03c26121, 0x03959e81, 0x0035a638}}, Y: Field{[10]uint32{0x01563d27, 0x01e3271e, 0x03ba45ce, 0x02f8743f, 0x0179408b, 0x03a5c28e, 0x0001a8e3, 0x02a8e76b, 0x02bce61e, 0x001640f7}}},
+ {X: Field{[10]uint32{0x0166ff80, 0x01d93931, 0x01931780, 0x01ee4e1f, 0x007fad8d, 0x00d012cd, 0x02ade00d, 0x025142cc, 0x02408670, 0x00212ccb}}, Y: Field{[10]uint32{0x031cfdc8, 0x00e9606e, 0x01c244aa, 0x039000c9, 0x009bb5b0, 0x025714d4, 0x03941e31, 0x010a58ad, 0x007856cc, 0x00132034}}},
+ {X: Field{[10]uint32{0x00db2ed6, 0x00e29842, 0x00cf05ac, 0x010ca3cc, 0x036528e2, 0x007b4cc9, 0x0073a45f, 0x0226d306, 0x03992a36, 0x001c4a71}}, Y: Field{[10]uint32{0x020810e4, 0x02265699, 0x00a68ce3, 0x00673cff, 0x0044f866, 0x024026aa, 0x01154567, 0x00969753, 0x03e84821, 0x000d8ad3}}},
+ {X: Field{[10]uint32{0x0180d824, 0x00e74a34, 0x01b98781, 0x01fbda31, 0x005f8cad, 0x0326470d, 0x02cac088, 0x02dba9ad, 0x0087fa48, 0x0024c593}}, Y: Field{[10]uint32{0x01d9e26b, 0x017a11ed, 0x02a87278, 0x0087234d, 0x03bd1832, 0x0058e5aa, 0x0397771d, 0x03c3e432, 0x015cc91c, 0x0028eb03}}},
+ {X: Field{[10]uint32{0x03305a68, 0x03b66c27, 0x02d94808, 0x017a2e26, 0x0194744d, 0x024a7cca, 0x004c7b1f, 0x024df28e, 0x00e237c4, 0x0013e43a}}, Y: Field{[10]uint32{0x012430b8, 0x0123c226, 0x00e70147, 0x0000d0f1, 0x02ce725e, 0x033bb41e, 0x03f417cf, 0x01212c20, 0x02e02b6b, 0x003379dd}}},
+ {X: Field{[10]uint32{0x01f716a1, 0x03e46d9d, 0x00ed6a10, 0x0284f016, 0x034442f6, 0x014fb334, 0x0113fae2, 0x01c5ab9a, 0x03bc9f40, 0x00136580}}, Y: Field{[10]uint32{0x0124add6, 0x0153b90e, 0x02493c66, 0x0048a12a, 0x009c52a4, 0x029bed14, 0x0165827a, 0x038d565c, 0x01fc278c, 0x0024ad9e}}},
+ {X: Field{[10]uint32{0x02b17203, 0x004f1312, 0x006a5aed, 0x00619fe4, 0x03f90cd7, 0x0058cb84, 0x0094f3bc, 0x01050c4b, 0x011f91c5, 0x0022dbd9}}, Y: Field{[10]uint32{0x010c7066, 0x020d9548, 0x02c130bf, 0x0256eb1a, 0x0109ded9, 0x0049b103, 0x00e2b78c, 0x00955aed, 0x01a4b80f, 0x00223056}}},
+ {X: Field{[10]uint32{0x025ec256, 0x03082f6c, 0x02ee98cd, 0x03ad8155, 0x021909e1, 0x02352645, 0x02448f07, 0x020d1fa1, 0x0052cab9, 0x001bd62e}}, Y: Field{[10]uint32{0x00239885, 0x01c08f26, 0x01cd32fa, 0x02cab601, 0x021681da, 0x02833afa, 0x02bd30dd, 0x024c179a, 0x005f233d, 0x0000e930}}},
+ {X: Field{[10]uint32{0x000c44bd, 0x02601c44, 0x010086cb, 0x024566a4, 0x028bb6ca, 0x03febe8c, 0x03710da3, 0x010472b2, 0x02a84021, 0x001af9fd}}, Y: Field{[10]uint32{0x0036bee9, 0x00405152, 0x0168bb58, 0x03fcc83a, 0x0186f339, 0x017f0464, 0x01c8d59b, 0x037ed160, 0x02f9d461, 0x002fd929}}},
+ {X: Field{[10]uint32{0x02102d39, 0x020f4b2b, 0x0044ab39, 0x003cab06, 0x0299661f, 0x03b3fe6a, 0x00fdbe13, 0x02799bcb, 0x010bb8ea, 0x0002cbf3}}, Y: Field{[10]uint32{0x0182bb86, 0x013a339c, 0x02c74144, 0x02c3a8cf, 0x0027c38c, 0x00e9fa04, 0x032cbbad, 0x023e8c3a, 0x0189bb3b, 0x0002811a}}},
+ {X: Field{[10]uint32{0x01a6fd96, 0x03dd129e, 0x02f1291b, 0x01adb667, 0x03391682, 0x00331644, 0x037770b5, 0x026ca7b7, 0x010eab55, 0x002875bb}}, Y: Field{[10]uint32{0x004ab69b, 0x008ded30, 0x03391df2, 0x00c02b1a, 0x002f17df, 0x00612025, 0x03bf93b5, 0x0156b85c, 0x017e0c92, 0x002ee459}}},
+ {X: Field{[10]uint32{0x012a9575, 0x02a047a4, 0x0301bd08, 0x039f8725, 0x01440da5, 0x026ad8e7, 0x0366201e, 0x00c35cd4, 0x030ded71, 0x000a3d95}}, Y: Field{[10]uint32{0x02d2884a, 0x039ab73c, 0x0362edec, 0x017a5576, 0x00e2216e, 0x03efd30b, 0x011a7c70, 0x0166c8fa, 0x0360119c, 0x000e4647}}},
+ {X: Field{[10]uint32{0x00271fa3, 0x032013e4, 0x038530b9, 0x0089258d, 0x0031cfce, 0x00075edb, 0x00b089d1, 0x00f79086, 0x00eddbb8, 0x00005323}}, Y: Field{[10]uint32{0x029a41fc, 0x03fb393a, 0x0384d7a8, 0x00f5128b, 0x030de129, 0x0131e252, 0x01cba3d2, 0x00b9c44d, 0x02d2a5d0, 0x00012014}}},
+ {X: Field{[10]uint32{0x012d489b, 0x00be3eb8, 0x03ca9eda, 0x00ee4886, 0x03a75f56, 0x03211429, 0x0228fa1b, 0x00df4f4a, 0x0305fec7, 0x003abfe7}}, Y: Field{[10]uint32{0x03b8c139, 0x02dc2a48, 0x01c3dd3f, 0x01206844, 0x022ad9f3, 0x0083d18e, 0x03349fa5, 0x021cf5f4, 0x019b05c9, 0x0035b510}}},
+ {X: Field{[10]uint32{0x00b35e95, 0x02fb4545, 0x02a43d92, 0x03825a4c, 0x00ce0757, 0x00b9ff0f, 0x03524575, 0x00dc4a16, 0x006eb42a, 0x003a3b93}}, Y: Field{[10]uint32{0x023b748a, 0x00c28ada, 0x01e2d5f2, 0x03f32f17, 0x00ee55ab, 0x0091b2df, 0x007ff4e6, 0x0060c7c4, 0x014c27ef, 0x000361af}}},
+ {X: Field{[10]uint32{0x0241e7e4, 0x01db9abb, 0x00386a07, 0x008819de, 0x02d5e909, 0x03222946, 0x03707591, 0x00ec181a, 0x01090821, 0x00263186}}, Y: Field{[10]uint32{0x025d4c8c, 0x0106bbfd, 0x03efbfc2, 0x02a068df, 0x030fd72d, 0x02339314, 0x0290e2d3, 0x02e4110b, 0x022cf98b, 0x003acf4b}}},
+ {X: Field{[10]uint32{0x0146dd29, 0x033dfcfe, 0x0217d946, 0x001938a3, 0x01893198, 0x00e2f2d7, 0x03a0dbbc, 0x00a61b15, 0x0381f5d6, 0x00353d9a}}, Y: Field{[10]uint32{0x037a5fc2, 0x02087ede, 0x03b32867, 0x023814c2, 0x002a1229, 0x02052d6e, 0x03c5579d, 0x0068032d, 0x038deedf, 0x003064c3}}},
+ {X: Field{[10]uint32{0x0011087f, 0x01e41805, 0x03c4eb98, 0x030ab511, 0x01a13dd4, 0x02619bc3, 0x01543696, 0x02466d57, 0x00e705f8, 0x000535cf}}, Y: Field{[10]uint32{0x03ededf8, 0x0381b1a4, 0x0067d16e, 0x03c98a75, 0x03b71c48, 0x02bd0822, 0x0106df2c, 0x0034f174, 0x0222b9cb, 0x001a6e51}}},
+ {X: Field{[10]uint32{0x03da3aec, 0x00d30808, 0x017115bc, 0x010229c4, 0x015646ab, 0x02942a35, 0x00511058, 0x01e831ab, 0x0135059c, 0x0015fbf2}}, Y: Field{[10]uint32{0x01c5dfd1, 0x01cb00ad, 0x00c4b262, 0x03c14ccb, 0x0127f959, 0x00ab954a, 0x03fba0d9, 0x015705d2, 0x029a60b8, 0x003f2a4c}}},
+ {X: Field{[10]uint32{0x01b3677f, 0x00dcbf65, 0x0073dcb6, 0x03d4da0e, 0x00171213, 0x016a7cf9, 0x00b94585, 0x02a036a4, 0x0286063d, 0x00247c4e}}, Y: Field{[10]uint32{0x019a90ea, 0x02d3bed0, 0x016d03ca, 0x03384d05, 0x01e0332e, 0x0081558e, 0x029a7ae9, 0x03c4430c, 0x00d86734, 0x001d0178}}},
+ {X: Field{[10]uint32{0x01607592, 0x035abfe8, 0x037675f9, 0x005b44cd, 0x02c33227, 0x01037170, 0x03dfd64b, 0x017896a0, 0x010b4614, 0x00373213}}, Y: Field{[10]uint32{0x012d6c66, 0x02a2ea07, 0x00adc8bb, 0x01869c0c, 0x0251b951, 0x03d4c91a, 0x01f15260, 0x03fab023, 0x00f48e4d, 0x00391a93}}},
+ {X: Field{[10]uint32{0x0348676c, 0x01405d0c, 0x02db0542, 0x007f7c5a, 0x00df0bfa, 0x02fcf1a8, 0x016011e6, 0x03d0c804, 0x02acd5a6, 0x000a2ac1}}, Y: Field{[10]uint32{0x03b0cb9a, 0x015ad8e5, 0x012d427e, 0x00af8369, 0x03cc31f4, 0x013ff3fb, 0x011d6b7a, 0x01276ba7, 0x021c967f, 0x001449ca}}},
+ {X: Field{[10]uint32{0x01d8b240, 0x03c3d148, 0x02d00bef, 0x0248c830, 0x020d9c2a, 0x0245718d, 0x032adb45, 0x037f7f4f, 0x0321f8d1, 0x0001f006}}, Y: Field{[10]uint32{0x002c8b48, 0x03e89715, 0x01aedf76, 0x018b4db4, 0x016e7ffd, 0x02aa5acf, 0x02f78fda, 0x01b607f1, 0x03cc9990, 0x002d2923}}},
+ {X: Field{[10]uint32{0x014d98f1, 0x02a66b34, 0x01f5b428, 0x026f832d, 0x03a0d327, 0x02703a3e, 0x03624230, 0x03a57ca8, 0x037830f8, 0x003e53ba}}, Y: Field{[10]uint32{0x03649527, 0x03f8f290, 0x00d2305c, 0x0076544f, 0x03715722, 0x02ed2a4f, 0x01c91be8, 0x01ae7297, 0x03646967, 0x00325b56}}},
+ {X: Field{[10]uint32{0x01ec35ca, 0x01bd7e04, 0x0045bd40, 0x01dcc3a4, 0x039a6d64, 0x03d78cb4, 0x01e0dd85, 0x0336902f, 0x00e47788, 0x003a919d}}, Y: Field{[10]uint32{0x035a235a, 0x01188c29, 0x01a0fe1a, 0x0185093a, 0x01fb622a, 0x0062f5da, 0x030032ba, 0x024488c1, 0x03790a9b, 0x0001da6f}}},
+ {X: Field{[10]uint32{0x03b40112, 0x00f09407, 0x005d1728, 0x0234dd9d, 0x0019b7b3, 0x020aff8a, 0x03172606, 0x021a1404, 0x00197f8f, 0x0036969d}}, Y: Field{[10]uint32{0x01c37a39, 0x018f8ee5, 0x0290ceb6, 0x0104841c, 0x00b5a19f, 0x0358dcef, 0x025ef5f5, 0x0078604c, 0x02ec0587, 0x002982d7}}},
+ {X: Field{[10]uint32{0x02e9d41d, 0x03dcbc89, 0x03b6c22f, 0x03b08ee3, 0x01a75ebc, 0x03b5eddb, 0x00c6820d, 0x003f6806, 0x03a55256, 0x0030405f}}, Y: Field{[10]uint32{0x009fed39, 0x01e0450d, 0x0129b1b0, 0x03699e0a, 0x039b5dc1, 0x03fc1625, 0x03da3b8d, 0x011fe459, 0x019daf26, 0x003a51ec}}},
+ {X: Field{[10]uint32{0x01216a7f, 0x03a452ca, 0x00b164b3, 0x016066fc, 0x011b9646, 0x0160269d, 0x0215238b, 0x0111d9e2, 0x00e14e81, 0x0002f9f0}}, Y: Field{[10]uint32{0x03eb392e, 0x0189e803, 0x0204e4f1, 0x002e28d8, 0x01088084, 0x035923a0, 0x03072b15, 0x00669bc2, 0x0297f642, 0x0028c3af}}},
+ {X: Field{[10]uint32{0x03007cea, 0x00ec4e65, 0x0014fcb5, 0x03cb3e01, 0x0059e0ff, 0x00bffe0b, 0x01184056, 0x0303f730, 0x02c1a4d6, 0x0019d63b}}, Y: Field{[10]uint32{0x00b316b3, 0x038fabdf, 0x00edcb4f, 0x02eb42e7, 0x00a0149b, 0x01898c7a, 0x02c88988, 0x03614908, 0x006620fc, 0x001194ef}}},
+ {X: Field{[10]uint32{0x005b6116, 0x02143710, 0x01dae70d, 0x0379a6b3, 0x03011014, 0x03a1cd6c, 0x000cf059, 0x01366676, 0x01d3f88f, 0x00272ed4}}, Y: Field{[10]uint32{0x01902360, 0x01442ec9, 0x023d60e2, 0x02064642, 0x02047c63, 0x01fbf134, 0x00e0ed51, 0x016d4a00, 0x0348cad7, 0x0037e8b9}}},
+ {X: Field{[10]uint32{0x00bf0bc3, 0x03854436, 0x00dea3d6, 0x0354d087, 0x0065328b, 0x02a96b46, 0x0350229e, 0x01e4bc5c, 0x02e7b170, 0x0018e96a}}, Y: Field{[10]uint32{0x02da1010, 0x03ee20d4, 0x00ea195a, 0x035e3396, 0x0212a261, 0x034d8d30, 0x026250ae, 0x017d27df, 0x03d0f25d, 0x0004496b}}},
+ {X: Field{[10]uint32{0x02f10657, 0x038b226c, 0x02430b0f, 0x00907698, 0x014e036d, 0x0090f688, 0x02e11fb0, 0x000ca3ae, 0x02493e5f, 0x002b7e58}}, Y: Field{[10]uint32{0x01b1ea1e, 0x00d2d5c2, 0x037f784f, 0x037a280f, 0x03219a29, 0x005f52d7, 0x0018b16d, 0x0376ccb4, 0x00bafcd8, 0x0014260d}}},
+ {X: Field{[10]uint32{0x034d472f, 0x01d97678, 0x01f32f00, 0x01270ac9, 0x01bfdfa5, 0x00135c89, 0x0183364e, 0x0128564d, 0x035b7fb4, 0x00028363}}, Y: Field{[10]uint32{0x03998ab2, 0x026c48bb, 0x0048dd53, 0x008be7df, 0x01630b6c, 0x0365ff8f, 0x01da99f3, 0x009a1e52, 0x0366f84c, 0x000187aa}}},
+ {X: Field{[10]uint32{0x02e61fc1, 0x019a42c2, 0x0033ef68, 0x03496c9f, 0x027a3ee0, 0x01b60097, 0x00dbf815, 0x028b6eb7, 0x00ea9596, 0x002e60c2}}, Y: Field{[10]uint32{0x03ddbd37, 0x00334149, 0x006f5125, 0x01b9619e, 0x01445bae, 0x00f3f496, 0x00c582a0, 0x02933ad3, 0x03177566, 0x00336d38}}},
+ {X: Field{[10]uint32{0x00b98134, 0x008cabdc, 0x03f637f0, 0x03236d2a, 0x03cf3969, 0x024ee8c0, 0x01eefe37, 0x035b3046, 0x031d37e3, 0x00386993}}, Y: Field{[10]uint32{0x003231da, 0x0173b507, 0x00fc2f95, 0x019e3d3b, 0x01ddbd35, 0x00fd606d, 0x00d2084b, 0x034bd7b1, 0x02d8885d, 0x0016235e}}},
+ {X: Field{[10]uint32{0x01fdaaed, 0x0089da99, 0x00eca49c, 0x03b9ebc5, 0x01318929, 0x035c4644, 0x02253a1b, 0x00ea9b9c, 0x03ede854, 0x003ef577}}, Y: Field{[10]uint32{0x013b78bc, 0x033efc06, 0x016f2f76, 0x006b6f43, 0x00f23489, 0x016e30c4, 0x0005d516, 0x00d458f1, 0x030a432c, 0x000c5f3b}}},
+ {X: Field{[10]uint32{0x00da6bc2, 0x01df39a1, 0x00a2ae30, 0x0137005e, 0x0030b87c, 0x03dedbc8, 0x031a8822, 0x02544213, 0x03f3b0a3, 0x003eb12d}}, Y: Field{[10]uint32{0x00867d75, 0x02ca656f, 0x01fae390, 0x034557c6, 0x00386ce0, 0x018a3f75, 0x00a5c54a, 0x008bf058, 0x01209e95, 0x001c0a6e}}},
+ {X: Field{[10]uint32{0x03ef7c2b, 0x02a06150, 0x0053ee64, 0x014571d7, 0x013c29fc, 0x006d7f1f, 0x02c02964, 0x033d4200, 0x03de834f, 0x0032a190}}, Y: Field{[10]uint32{0x03cf17f9, 0x03ea592b, 0x014c3b26, 0x00c73b9c, 0x02f8ecea, 0x02b6767e, 0x036fd4d0, 0x00a5b890, 0x0027111e, 0x00241e9b}}},
+ {X: Field{[10]uint32{0x03315f1f, 0x00b25b3c, 0x0066b120, 0x008af150, 0x03a4a73b, 0x03f92d22, 0x0226b19e, 0x003a85fa, 0x02490d70, 0x001c61cd}}, Y: Field{[10]uint32{0x03ded2fd, 0x00b04761, 0x0215abd8, 0x01208108, 0x01515127, 0x03973d0a, 0x03fc614d, 0x01d2ddd4, 0x00474bb3, 0x003db361}}},
+ {X: Field{[10]uint32{0x00c5e3d7, 0x030f14d2, 0x03e6f15a, 0x023dddb2, 0x00175b76, 0x01df18fc, 0x02574826, 0x031cc89b, 0x00ff21c3, 0x0019f9ce}}, Y: Field{[10]uint32{0x02f2bdb2, 0x024d43ba, 0x026bfac7, 0x0151744c, 0x030ebd28, 0x01f3d824, 0x03a50644, 0x0375c95d, 0x000f2343, 0x00053945}}},
+ {X: Field{[10]uint32{0x02198893, 0x03d57c66, 0x02934280, 0x010998b3, 0x036c5a5c, 0x00d3b85f, 0x01339f64, 0x0094fc81, 0x0331f875, 0x001452cf}}, Y: Field{[10]uint32{0x02e9a090, 0x02601f92, 0x0269fe46, 0x030b72a5, 0x01a61c0f, 0x039f3793, 0x011c538c, 0x03b1c133, 0x0193a2fb, 0x0013acce}}},
+ {X: Field{[10]uint32{0x03c2dab3, 0x01614062, 0x03586f98, 0x005be12c, 0x02ca53c2, 0x006280e4, 0x0330a414, 0x00f9d5aa, 0x03a6eab0, 0x00109ab3}}, Y: Field{[10]uint32{0x01083926, 0x0166ab7c, 0x01a74acb, 0x03441d27, 0x02d34944, 0x0015ceed, 0x0206682d, 0x00431702, 0x02ab21cc, 0x0030f58f}}},
+ {X: Field{[10]uint32{0x02d7a09c, 0x003a3de8, 0x005cad42, 0x01cb1608, 0x01b8ad4a, 0x01165f21, 0x03dcbee9, 0x015cdc3f, 0x034668c0, 0x002e51ae}}, Y: Field{[10]uint32{0x023401b9, 0x008eeb47, 0x02b2cdc7, 0x00e927fb, 0x03969ea1, 0x0196f180, 0x03e63a5e, 0x00e09959, 0x02d41263, 0x00331c03}}},
+ {X: Field{[10]uint32{0x018e33ac, 0x00d6e576, 0x02dcd803, 0x03e3eca2, 0x001d1e38, 0x0335d77d, 0x01d7d3cc, 0x02d17d44, 0x00b3f6c8, 0x0039aa11}}, Y: Field{[10]uint32{0x0058cce2, 0x005db0bb, 0x017e2c0b, 0x00273249, 0x036c4aa1, 0x007dc5ea, 0x023268ee, 0x022431d2, 0x03893939, 0x0001fc91}}},
+ {X: Field{[10]uint32{0x02458001, 0x034503e5, 0x03dcd117, 0x00fc08c4, 0x00493e90, 0x01492e63, 0x0236b415, 0x014ba305, 0x03bfd9e0, 0x0010f98a}}, Y: Field{[10]uint32{0x023b352d, 0x011de669, 0x03cec8e1, 0x02ed27b2, 0x01ebee23, 0x0373fcc7, 0x01993000, 0x0354a0c2, 0x013d0a90, 0x003d2061}}},
+ {X: Field{[10]uint32{0x0047f817, 0x03d12e20, 0x02ad9e94, 0x01124496, 0x01e555a8, 0x00776e6f, 0x0223e1c4, 0x011db50b, 0x000e3427, 0x003113bd}}, Y: Field{[10]uint32{0x02236fac, 0x02e7a8e3, 0x009d2498, 0x02cb6e13, 0x0238f664, 0x01dbd2b8, 0x0018e147, 0x03964fca, 0x0313e43e, 0x002fb750}}},
+ {X: Field{[10]uint32{0x03212385, 0x022f7814, 0x037e8d40, 0x03eabf66, 0x037f58f2, 0x03e39265, 0x016f93f5, 0x00625702, 0x0313dcc1, 0x00286cd4}}, Y: Field{[10]uint32{0x023079f5, 0x023a29c2, 0x02c55bdc, 0x03008098, 0x03135a9e, 0x0024f605, 0x009f9cf5, 0x01430dcc, 0x025abf0d, 0x002f5fac}}},
+ {X: Field{[10]uint32{0x035e964e, 0x0122a486, 0x01c91b67, 0x026b4562, 0x02138222, 0x00d6f663, 0x03f2f0c7, 0x0007268d, 0x03f9fd62, 0x001229bc}}, Y: Field{[10]uint32{0x034481b4, 0x00b14316, 0x01c91971, 0x00e54e97, 0x022c73e0, 0x02a75659, 0x0062c81f, 0x02a28192, 0x01553d41, 0x0006d514}}},
+ {X: Field{[10]uint32{0x00061e9f, 0x00a17669, 0x0354db06, 0x033716c8, 0x0375f050, 0x023bb3c6, 0x019181dc, 0x02c1ba28, 0x0174651d, 0x0023807d}}, Y: Field{[10]uint32{0x035e108b, 0x03efec89, 0x00cae256, 0x0192e87c, 0x027d7ba9, 0x00bbb2b6, 0x006e90a0, 0x039f56db, 0x02a09800, 0x0027455b}}},
+ {X: Field{[10]uint32{0x0205345d, 0x029372be, 0x0258f43d, 0x03cc5a52, 0x0228e375, 0x029e7e39, 0x0368b195, 0x02d5d8fa, 0x00db9e6d, 0x0012f03e}}, Y: Field{[10]uint32{0x03a5b555, 0x03c85710, 0x019d98d0, 0x00eda8cb, 0x01633805, 0x009a929a, 0x02380e81, 0x02c592ee, 0x0389a1e6, 0x0031a9c1}}},
+ {X: Field{[10]uint32{0x0297a768, 0x015288ee, 0x0255f32d, 0x0236c033, 0x00f4c7ee, 0x002df6ae, 0x0230a665, 0x037ab758, 0x00cb5f5e, 0x00259bf4}}, Y: Field{[10]uint32{0x011a994b, 0x01b3de60, 0x004e1654, 0x0272a795, 0x0001e892, 0x038285ae, 0x0019a1de, 0x026d97d6, 0x0243bb4f, 0x00275913}}},
+ {X: Field{[10]uint32{0x017b0d8a, 0x00b14421, 0x027f8296, 0x02e21891, 0x0320d50e, 0x010e38cd, 0x02dc7c74, 0x00ba9964, 0x01ad4952, 0x001aad46}}, Y: Field{[10]uint32{0x023ae44d, 0x00245442, 0x020da8a8, 0x0280de3b, 0x02e82653, 0x0153087b, 0x0367ec35, 0x0142898a, 0x02342b72, 0x00316e8e}}},
+ {X: Field{[10]uint32{0x0276c62f, 0x01b5bbea, 0x03856d52, 0x029094c9, 0x03e55f18, 0x001db858, 0x03d0a0cd, 0x0183d4e6, 0x00e43e50, 0x003e2c2e}}, Y: Field{[10]uint32{0x00d48ba4, 0x03b3dbf5, 0x03ad1fe1, 0x02e90d9c, 0x017d5c95, 0x00a0e6a8, 0x00f29c86, 0x014fe963, 0x0052a658, 0x001d0f78}}},
+ {X: Field{[10]uint32{0x02d18bad, 0x01e8494f, 0x030e1658, 0x018e7456, 0x02967e97, 0x0088f57e, 0x0185c0e5, 0x023fc2ad, 0x02f8579d, 0x00311427}}, Y: Field{[10]uint32{0x01b08362, 0x016393c7, 0x01cf97fe, 0x03021bc4, 0x0381199d, 0x01d2e2b9, 0x036d8d35, 0x02696168, 0x03e8ee97, 0x001ee47d}}},
+ {X: Field{[10]uint32{0x0342379f, 0x02c03f6a, 0x003c3aac, 0x00cb3ead, 0x0004cef7, 0x02530393, 0x0207c538, 0x0143e388, 0x035a6ff4, 0x00268004}}, Y: Field{[10]uint32{0x03a9975d, 0x02e3fe07, 0x03d594df, 0x01ba2e11, 0x00b48159, 0x0232aee4, 0x020902a2, 0x0316c51d, 0x03483684, 0x000e4fb1}}},
+ {X: Field{[10]uint32{0x03488601, 0x029016db, 0x01e3eaa4, 0x00c53949, 0x02a484d3, 0x0174f7b8, 0x010c17c2, 0x0235f37a, 0x03df173f, 0x000f5dd6}}, Y: Field{[10]uint32{0x030e51d4, 0x03a631ec, 0x02046b3d, 0x016e265c, 0x0138a402, 0x0275d389, 0x03287f55, 0x003da96f, 0x00bc0a56, 0x001f9ac2}}},
+ {X: Field{[10]uint32{0x0303b529, 0x003a60de, 0x017b8f5d, 0x000b5c0f, 0x02a95e50, 0x034428a6, 0x03380a80, 0x0062d144, 0x013ea601, 0x0033aebf}}, Y: Field{[10]uint32{0x03b74b4e, 0x0054d2a1, 0x010c0fd6, 0x006fd54a, 0x025f6d8b, 0x00cee811, 0x0203594e, 0x027d87fd, 0x02b646f5, 0x000651de}}},
+ {X: Field{[10]uint32{0x03a731b2, 0x02c661f3, 0x01de158c, 0x018fd62b, 0x037ecbc9, 0x03926c8d, 0x001ac162, 0x038f87bc, 0x00ac1ff3, 0x002ba28f}}, Y: Field{[10]uint32{0x01531efe, 0x0287a794, 0x03ac2bac, 0x00ac4529, 0x02ee26fd, 0x02371dce, 0x03f6af9e, 0x02dd25cc, 0x02752052, 0x001692c1}}},
+ {X: Field{[10]uint32{0x01e3b38e, 0x010dd4eb, 0x02b28308, 0x00d743ef, 0x01fd39b6, 0x011deb13, 0x0118edee, 0x01c48d70, 0x00bb8bd4, 0x0035d34e}}, Y: Field{[10]uint32{0x00b54451, 0x01aecddf, 0x01c325d6, 0x03f4e4db, 0x021ec0a0, 0x006e9b78, 0x01850843, 0x00a0e5ea, 0x01b6f17a, 0x003cf941}}},
+ {X: Field{[10]uint32{0x02beb2a8, 0x0256c53d, 0x01db2495, 0x00cec33a, 0x014d4f0b, 0x0381d747, 0x00dc1bef, 0x01e17345, 0x02757780, 0x003d0a1d}}, Y: Field{[10]uint32{0x00514b38, 0x00787618, 0x015364eb, 0x0354ffc9, 0x03950f34, 0x00d86b5b, 0x018bf6da, 0x018b7719, 0x0231eefc, 0x0028f7c8}}},
+ {X: Field{[10]uint32{0x02378e94, 0x03250051, 0x0145450d, 0x0220f287, 0x01e62776, 0x0272c826, 0x03caaa86, 0x02b589da, 0x036bda19, 0x003a4755}}, Y: Field{[10]uint32{0x0040779c, 0x032a5c4e, 0x01db87ac, 0x0060df9d, 0x00020e79, 0x00c99763, 0x00313db8, 0x00b2e66b, 0x0038c8da, 0x002d5f88}}},
+ {X: Field{[10]uint32{0x00c66ea2, 0x00c33f8e, 0x01aec7e8, 0x0377cf1f, 0x03e035e1, 0x03caaa90, 0x011b53da, 0x0385d8de, 0x00e87d77, 0x0009a651}}, Y: Field{[10]uint32{0x013707f6, 0x0339db06, 0x02ea739a, 0x0115edfb, 0x01567641, 0x026cc8f2, 0x028ca430, 0x031fec14, 0x036434bd, 0x0032c045}}},
+ {X: Field{[10]uint32{0x0244a3d1, 0x03807ec1, 0x02a5ee94, 0x005cbfdb, 0x01fb0993, 0x01eec5d9, 0x0261c685, 0x00da046a, 0x028a8f0b, 0x003b5079}}, Y: Field{[10]uint32{0x0108231c, 0x0037ae31, 0x005dc1dd, 0x03823302, 0x0071c918, 0x00f65600, 0x03a1e448, 0x02f8109a, 0x007b880c, 0x003cb324}}},
+ {X: Field{[10]uint32{0x01fec0de, 0x01e59083, 0x0113ab0b, 0x03c4cc88, 0x01538192, 0x00e8cf5a, 0x0236e4f5, 0x032e978b, 0x024a96cf, 0x001a51d9}}, Y: Field{[10]uint32{0x038fb6cd, 0x01770be8, 0x01dc77f9, 0x02577b3d, 0x03256101, 0x01ab78cc, 0x01b76c4d, 0x02dbeea4, 0x01bc5b65, 0x00192074}}},
+ {X: Field{[10]uint32{0x0227fb03, 0x021715c7, 0x02f668ea, 0x00b1c3a3, 0x00437901, 0x02a4996c, 0x000a42bb, 0x018f7daa, 0x007ce22b, 0x002a8f86}}, Y: Field{[10]uint32{0x00d011be, 0x02a47fc2, 0x0329c38f, 0x01239736, 0x03e8732f, 0x00c04150, 0x03fcab70, 0x027f465b, 0x016b9810, 0x00298e37}}},
+ {X: Field{[10]uint32{0x004a944b, 0x026f863e, 0x021c5eff, 0x00de4493, 0x02bfd5ea, 0x0150ff5b, 0x029fbab6, 0x03e536d2, 0x00e1a4be, 0x00001779}}, Y: Field{[10]uint32{0x0157e2d6, 0x026ea79e, 0x03442967, 0x03469fb1, 0x0158f8ae, 0x01dd11d8, 0x0299513f, 0x038a502d, 0x0282693b, 0x00087128}}},
+ {X: Field{[10]uint32{0x007a7ce5, 0x01b0ad0a, 0x030a0964, 0x03ba8ce8, 0x02fdd18f, 0x02bc2bc8, 0x0096c793, 0x02d1de07, 0x00c72c87, 0x00194cf7}}, Y: Field{[10]uint32{0x037ccc51, 0x00dc1620, 0x00cd3f8c, 0x033e8ebb, 0x00482748, 0x00d1085d, 0x01589fc2, 0x03e6ef3a, 0x01f23d82, 0x001fc0f9}}},
+ {X: Field{[10]uint32{0x00fdf354, 0x02ec0299, 0x01871a5e, 0x008e9c2e, 0x01c5109f, 0x014d0d4c, 0x02008ab8, 0x01612af6, 0x033c129e, 0x0004e797}}, Y: Field{[10]uint32{0x033f0a98, 0x0028bddd, 0x009de619, 0x039209ab, 0x026bf011, 0x020d4ad8, 0x03182ee9, 0x023abe94, 0x025741fb, 0x00125edf}}},
+ {X: Field{[10]uint32{0x0161f7c3, 0x01e6bba0, 0x01f0c7c7, 0x02060645, 0x013ce57b, 0x0363c958, 0x00ea9918, 0x03a5420f, 0x01ccf7e1, 0x00124ffa}}, Y: Field{[10]uint32{0x03020cd5, 0x02f93059, 0x02f4088c, 0x00562f30, 0x00639ab6, 0x028eed12, 0x00aff6a6, 0x03874115, 0x03fd62fc, 0x0039a5d8}}},
+ {X: Field{[10]uint32{0x02a064a9, 0x039acd94, 0x008a7446, 0x0055d9bb, 0x03900e3c, 0x0240f29d, 0x01ac2fb4, 0x01c2e190, 0x03dbd8dd, 0x003b59d7}}, Y: Field{[10]uint32{0x00416de9, 0x01bcc4da, 0x037fd1f2, 0x02c9739d, 0x0223ccff, 0x02c0622b, 0x00669b40, 0x03d6d1b8, 0x037985ce, 0x002986ec}}},
+ {X: Field{[10]uint32{0x02260a4d, 0x02c32a66, 0x00b83136, 0x0110e187, 0x02b6d484, 0x014e4f54, 0x03c14e31, 0x0278e9e5, 0x00a89a76, 0x0005cd9c}}, Y: Field{[10]uint32{0x03bd4904, 0x00f689f1, 0x02bc6d68, 0x03ddf760, 0x00d140b3, 0x01242104, 0x02a1b28e, 0x0134ba57, 0x0121c1ba, 0x0013750e}}},
+ {X: Field{[10]uint32{0x035d1610, 0x0387c258, 0x0128cdf9, 0x00f4b329, 0x00a1da93, 0x03041ba0, 0x011e05a0, 0x038551bc, 0x03a08f87, 0x00356978}}, Y: Field{[10]uint32{0x01175352, 0x00a45397, 0x01167255, 0x01d0828d, 0x01aa20df, 0x0307fec3, 0x00a9c6f2, 0x03024a34, 0x01e0daf3, 0x001f1b15}}},
+ {X: Field{[10]uint32{0x02f6fa2a, 0x0168ce36, 0x00ebe417, 0x00c9d3b9, 0x01a0a999, 0x01359a5f, 0x02f2e2b9, 0x00c871a4, 0x01a004ab, 0x00153d7a}}, Y: Field{[10]uint32{0x01f2de21, 0x0359b622, 0x0342b5cb, 0x032a157f, 0x0258a7d9, 0x03e0a376, 0x02eb7614, 0x01b91cd2, 0x03d175fa, 0x001633c4}}},
+ {X: Field{[10]uint32{0x03ebe6da, 0x01c96f1f, 0x01d4c9e8, 0x00b65111, 0x02fd9a63, 0x010988ac, 0x025544a4, 0x03a6558b, 0x0098154d, 0x00359a0a}}, Y: Field{[10]uint32{0x0190f206, 0x01c7718c, 0x001ebd13, 0x0117dd83, 0x030b2d50, 0x01e5c6a8, 0x0202c50a, 0x02e15d43, 0x023b9ba3, 0x00260247}}},
+ {X: Field{[10]uint32{0x01c2da08, 0x0126fdb3, 0x008cafef, 0x03fc6324, 0x02610bec, 0x00b7b34d, 0x01f6e1a8, 0x03131236, 0x01b92af2, 0x00094c06}}, Y: Field{[10]uint32{0x017c680a, 0x02e1ae8e, 0x02a5a495, 0x00ef694e, 0x023ffbdd, 0x00421cb8, 0x02ebdce8, 0x0275d397, 0x035ad950, 0x00185f4c}}},
+ {X: Field{[10]uint32{0x004da6cb, 0x019f3544, 0x00f16bab, 0x01d14391, 0x02ced725, 0x03023ca4, 0x00d2bcfa, 0x03af7958, 0x00ca461b, 0x00015bd9}}, Y: Field{[10]uint32{0x013aee44, 0x00efcf56, 0x023eebd8, 0x014ee40e, 0x02757cb5, 0x00bba050, 0x012bca8f, 0x020ca2a6, 0x01cfdc27, 0x0016c821}}},
+ {X: Field{[10]uint32{0x03553420, 0x03b49163, 0x012f64dd, 0x03a6fbcc, 0x005a31a1, 0x01f8fb8e, 0x025c1928, 0x00ea6bc3, 0x01711e15, 0x003ce725}}, Y: Field{[10]uint32{0x03b0b1cc, 0x020a4c38, 0x03a974b8, 0x018922f7, 0x02e742ef, 0x0126304c, 0x039df908, 0x01ae7de1, 0x02c11c20, 0x00133252}}},
+ {X: Field{[10]uint32{0x013128b5, 0x037758b0, 0x005368c8, 0x01297783, 0x01b2f303, 0x01716ab9, 0x02d3dad9, 0x021cf00c, 0x02a8cbdf, 0x00010dfa}}, Y: Field{[10]uint32{0x013c59c6, 0x038c2026, 0x01fcc721, 0x00b77c30, 0x012f8d1b, 0x03583696, 0x00245993, 0x0042ed65, 0x020eb003, 0x0009f63a}}},
+ {X: Field{[10]uint32{0x0080e9b2, 0x027ad2ea, 0x0371f0a7, 0x0298053b, 0x003f13e7, 0x00715d4d, 0x010ae621, 0x019e6112, 0x01893f5d, 0x002b7869}}, Y: Field{[10]uint32{0x0391c715, 0x00b8988d, 0x01304902, 0x00adfc90, 0x01e80188, 0x00f06d0a, 0x03404d8c, 0x01a8eeb1, 0x017c537e, 0x002f5270}}},
+ {X: Field{[10]uint32{0x02c1224e, 0x038b64ce, 0x0198fd16, 0x01e31eb4, 0x00a87ef9, 0x029386db, 0x0357d977, 0x00696ae7, 0x01d5c309, 0x0024d89d}}, Y: Field{[10]uint32{0x036b9f32, 0x000481f7, 0x0057e5aa, 0x0146c5ee, 0x00ed5988, 0x01b88934, 0x0375d96c, 0x021317aa, 0x010ad8bd, 0x001a149a}}},
+ {X: Field{[10]uint32{0x039b786e, 0x03ed69da, 0x01e8cc33, 0x00741dad, 0x03e29497, 0x03202e74, 0x006db205, 0x03573781, 0x01fd3e8f, 0x0000a795}}, Y: Field{[10]uint32{0x00010a0d, 0x03379263, 0x02f57af6, 0x00ab5869, 0x002bbf3e, 0x01c83391, 0x038312f0, 0x00d2e515, 0x017a7eb9, 0x0001da79}}},
+ {X: Field{[10]uint32{0x009051ef, 0x02c566e0, 0x00584168, 0x0011d91f, 0x003ae378, 0x01785bde, 0x00b52754, 0x0217fc66, 0x02a73501, 0x0037e0d8}}, Y: Field{[10]uint32{0x02af6bab, 0x032b82d8, 0x01a263a6, 0x0203b923, 0x03735ece, 0x012c5b0e, 0x026b6048, 0x028ef7a0, 0x0046fbd4, 0x002bf2cd}}},
+ {X: Field{[10]uint32{0x018a427e, 0x0057b381, 0x0033c254, 0x020e5b3d, 0x01b9a01e, 0x01b31867, 0x01660379, 0x017f83e5, 0x012309a3, 0x0017d10c}}, Y: Field{[10]uint32{0x00901ac0, 0x01f530ac, 0x03c906fd, 0x01c923eb, 0x0337d81c, 0x01aaa705, 0x0272b605, 0x02af14a4, 0x0012fc0a, 0x000e170a}}},
+ {X: Field{[10]uint32{0x01dd2de5, 0x038d1205, 0x0163f4b7, 0x03fd74f7, 0x008c5323, 0x01a4ff13, 0x01b77a31, 0x000df149, 0x021553c6, 0x00306710}}, Y: Field{[10]uint32{0x013900a4, 0x0323b06a, 0x01822159, 0x01564b26, 0x00a19d22, 0x03679ac8, 0x01161896, 0x01df849c, 0x028a8791, 0x0027ddba}}},
+ {X: Field{[10]uint32{0x032d45ac, 0x028508eb, 0x013f1d62, 0x024aa084, 0x0214d19d, 0x018e5091, 0x0162fdb3, 0x008ccbab, 0x021dd1e0, 0x0022afce}}, Y: Field{[10]uint32{0x03e36dde, 0x006d6629, 0x007ec7de, 0x0105b754, 0x02defc29, 0x0330b67c, 0x027a984e, 0x03b0fdd7, 0x027fdcf5, 0x000c96a5}}},
+ {X: Field{[10]uint32{0x0359ae7a, 0x028f377d, 0x03b9433f, 0x01db0181, 0x0257c1dd, 0x01c7aa12, 0x014a58fa, 0x01879b13, 0x0390b931, 0x00322ff7}}, Y: Field{[10]uint32{0x030b20f9, 0x02513cc9, 0x01ce5b51, 0x033c054d, 0x00fd7990, 0x00f96a8f, 0x007efd3c, 0x03ed8fb5, 0x00a3d172, 0x0008f70e}}},
+ {X: Field{[10]uint32{0x02d2c78d, 0x01fa1b80, 0x038b443c, 0x01016dde, 0x02a26ccc, 0x017e435e, 0x019e7ab8, 0x01665e9d, 0x026c35c5, 0x00025d99}}, Y: Field{[10]uint32{0x001ed0ff, 0x0145850e, 0x00f89605, 0x03fad0dc, 0x0392c52c, 0x008333bb, 0x02db2e4e, 0x033c96fc, 0x003e44fa, 0x001b4d0b}}},
+ {X: Field{[10]uint32{0x0163252b, 0x00aa337e, 0x0273a1c1, 0x01b3fac8, 0x021fd65b, 0x02f6270e, 0x03b8e8a5, 0x0393871e, 0x03a77737, 0x0039de42}}, Y: Field{[10]uint32{0x03bdba42, 0x0096773f, 0x02e1a810, 0x03caa7a4, 0x01f7138f, 0x02ca2663, 0x02754ead, 0x02d63dc3, 0x02201534, 0x000098d7}}},
+ {X: Field{[10]uint32{0x0176fb0d, 0x01df6051, 0x03efe375, 0x03265d7c, 0x03b471ce, 0x02e61ab0, 0x00e3ecd5, 0x03b20fd8, 0x017f6bfc, 0x0010b2e0}}, Y: Field{[10]uint32{0x005cf49a, 0x022937b1, 0x03cce270, 0x025941d7, 0x01144a85, 0x015cde42, 0x0162050a, 0x02f643c8, 0x0128b2f9, 0x003b4d78}}},
+ {X: Field{[10]uint32{0x012f3cbb, 0x014383d0, 0x018f0024, 0x00a293f5, 0x01319024, 0x03847c51, 0x0060397a, 0x024ccfff, 0x00701a23, 0x0028221a}}, Y: Field{[10]uint32{0x0083af52, 0x0207e646, 0x00ad6d8a, 0x03267300, 0x03fc6002, 0x01221fae, 0x0251995b, 0x0380d023, 0x03371ad6, 0x0032121b}}},
+ {X: Field{[10]uint32{0x032c4bb3, 0x021bc95c, 0x01aab034, 0x00b08998, 0x02e6a964, 0x00d9294b, 0x00fd8e8b, 0x006e2c10, 0x02419f10, 0x00290332}}, Y: Field{[10]uint32{0x0045a910, 0x02c542a5, 0x01285bab, 0x026e5402, 0x03b0655b, 0x001c0730, 0x01e611df, 0x025bc0b4, 0x03693ec0, 0x0003d086}}},
+ {X: Field{[10]uint32{0x01beb721, 0x0181290d, 0x0350fefe, 0x003c5068, 0x02c53294, 0x027d5d57, 0x035b70bc, 0x011cb169, 0x0178bbb0, 0x00242bbe}}, Y: Field{[10]uint32{0x014bbf0d, 0x021f8478, 0x01187a5f, 0x004251e7, 0x0193f585, 0x0391e3a9, 0x008cde92, 0x03db932a, 0x0070737c, 0x003e7c17}}},
+ {X: Field{[10]uint32{0x003407c3, 0x031a65eb, 0x03f1a07b, 0x00ceee09, 0x02d73ae4, 0x036e6b2d, 0x00292f68, 0x007ce580, 0x0281a0f6, 0x003ff08e}}, Y: Field{[10]uint32{0x034d4b66, 0x017ca115, 0x02803686, 0x00de81d1, 0x004f313b, 0x0351f338, 0x03c74630, 0x0384e49d, 0x0212bce5, 0x002dda81}}},
+ {X: Field{[10]uint32{0x00a112a5, 0x003fd408, 0x01ded2ab, 0x00b837e6, 0x02742c85, 0x02610969, 0x022bc162, 0x03e64109, 0x039440bd, 0x0034f29e}}, Y: Field{[10]uint32{0x024d637a, 0x01e03ff7, 0x022cb1f9, 0x02dcd07e, 0x005ef191, 0x0204f38b, 0x004281f9, 0x0209713d, 0x03acca7e, 0x00276bb2}}},
+ {X: Field{[10]uint32{0x01bb9f06, 0x02cf3294, 0x02b41b23, 0x02b3557b, 0x03469b21, 0x038386b1, 0x02b7589c, 0x02cc70a9, 0x02bb720a, 0x000a94e8}}, Y: Field{[10]uint32{0x0051f84e, 0x0295f8f5, 0x03256c21, 0x0036e912, 0x0027f781, 0x008341bb, 0x00d0f522, 0x025919e9, 0x0133ffde, 0x00046bfe}}},
+ {X: Field{[10]uint32{0x01a1ac96, 0x00211d2b, 0x0087d05a, 0x01c5fedd, 0x0322b2fc, 0x02e3d72f, 0x03d2f77b, 0x000a1e9b, 0x035680c4, 0x00121f94}}, Y: Field{[10]uint32{0x02a849c8, 0x02434356, 0x03a731e9, 0x00954830, 0x01029c96, 0x0144c111, 0x0365326d, 0x00358dde, 0x03d54607, 0x0014ef5f}}},
+ {X: Field{[10]uint32{0x027b3e16, 0x0396e659, 0x03a2963d, 0x02d20827, 0x01cf23c0, 0x00bd2d8a, 0x0332cfd6, 0x028307f0, 0x03cf291d, 0x000f9697}}, Y: Field{[10]uint32{0x02b86825, 0x0037b43e, 0x01c97b06, 0x03bdfd57, 0x008b33d7, 0x01ceec4c, 0x03028df7, 0x02687c12, 0x032c4338, 0x0021a61f}}},
+ {X: Field{[10]uint32{0x023e256f, 0x01f5de43, 0x02b8ed5f, 0x03ed5c21, 0x00601840, 0x00b755c1, 0x002493d2, 0x011f08b1, 0x03c515a8, 0x0013e42b}}, Y: Field{[10]uint32{0x02b831be, 0x037b43ea, 0x01e33226, 0x0250ad61, 0x024ef939, 0x02b034f0, 0x01f6b089, 0x01a248cd, 0x0158ac2e, 0x0011b8c6}}},
+ {X: Field{[10]uint32{0x023601fc, 0x01617078, 0x01a1782c, 0x00e29161, 0x02c2ff4b, 0x0086fa60, 0x02738071, 0x00fa9e9a, 0x012b40be, 0x002f81ce}}, Y: Field{[10]uint32{0x01f258db, 0x02a085bc, 0x0038da57, 0x01c799bb, 0x01431727, 0x036f8842, 0x01775b81, 0x027a39ef, 0x0057657c, 0x000e8561}}},
+ {X: Field{[10]uint32{0x021108ed, 0x018d04be, 0x02603e05, 0x010546d6, 0x02ecc2f7, 0x01f09381, 0x02f9e6d4, 0x00dd7c88, 0x00e52140, 0x0021b09d}}, Y: Field{[10]uint32{0x00a96ef8, 0x0025a490, 0x003a2aa0, 0x01dbe4b0, 0x012703f2, 0x0326261f, 0x02b90b64, 0x035640cb, 0x02b94065, 0x001280be}}},
+ {X: Field{[10]uint32{0x0173cf97, 0x023813cd, 0x03626267, 0x02a88449, 0x02287277, 0x036b04ff, 0x03b30561, 0x00e26049, 0x026be792, 0x00013f4e}}, Y: Field{[10]uint32{0x011173e4, 0x000d0b7c, 0x000d238c, 0x0288ed0e, 0x02f07ebe, 0x00ef1fa5, 0x00f4b4b4, 0x03b2db1b, 0x01a163cf, 0x00192628}}},
+ {X: Field{[10]uint32{0x01117c94, 0x031da577, 0x0118cb68, 0x021aea06, 0x03cd2a5f, 0x03f33f41, 0x02fe78d1, 0x02f75e2a, 0x01ca5423, 0x0033e90d}}, Y: Field{[10]uint32{0x00ce1fe8, 0x01a0d5c4, 0x00cefd7d, 0x00ed2a7d, 0x01c399b5, 0x01a114e2, 0x03778546, 0x03de78d6, 0x011c02df, 0x002fd322}}},
+ {X: Field{[10]uint32{0x021d446c, 0x024f8b0f, 0x010c1cdf, 0x03987cf2, 0x01414119, 0x01d1a6bf, 0x029e9277, 0x00f3166c, 0x031b7953, 0x002a96b2}}, Y: Field{[10]uint32{0x02a498ab, 0x01023d08, 0x01bc26bb, 0x004271d7, 0x028b11bf, 0x0060dd9f, 0x02d3854e, 0x030007ed, 0x01b78713, 0x002c37ca}}},
+ {X: Field{[10]uint32{0x005c3d15, 0x00f82855, 0x01175635, 0x03d5341b, 0x03435c09, 0x006f294b, 0x03fa1c44, 0x03d56376, 0x02ecc21b, 0x0006e4f0}}, Y: Field{[10]uint32{0x03195ed2, 0x00fed28c, 0x00c4aeb5, 0x02c68837, 0x03f72e67, 0x0171b498, 0x00e8a5fd, 0x0243996b, 0x01ff7181, 0x0015b115}}},
+ {X: Field{[10]uint32{0x03b91760, 0x0145260b, 0x010acd85, 0x02489190, 0x01c84800, 0x017dcac3, 0x039438b5, 0x03482fd8, 0x03f02566, 0x0005d132}}, Y: Field{[10]uint32{0x034c66f5, 0x03d48a77, 0x01f6c683, 0x03e12f68, 0x00068dc0, 0x029f495c, 0x01d5da57, 0x02d71674, 0x03a232b0, 0x001f9de9}}},
+ {X: Field{[10]uint32{0x0302582b, 0x02a101ff, 0x01bedd24, 0x029e88a4, 0x021b9cb9, 0x0181ecc5, 0x02f8ffc0, 0x02300a30, 0x00a5ed44, 0x00282fa6}}, Y: Field{[10]uint32{0x011da6ea, 0x03065c40, 0x029a2274, 0x0207774d, 0x0376b869, 0x033dab23, 0x01444620, 0x00d496d3, 0x006a0239, 0x0039f30b}}},
+ {X: Field{[10]uint32{0x03845882, 0x0244019e, 0x03e71148, 0x00673723, 0x038b2f2b, 0x0235d7a8, 0x02b2591d, 0x03dea558, 0x03f5dab5, 0x00383964}}, Y: Field{[10]uint32{0x02d67334, 0x017d70b2, 0x029c7e78, 0x031927d1, 0x00b5464d, 0x0290b38b, 0x03c26141, 0x0176d6ce, 0x036215e3, 0x00242231}}},
+ {X: Field{[10]uint32{0x029290f5, 0x03f21e70, 0x02b408b9, 0x01b17924, 0x01ffe579, 0x039ec359, 0x031b928d, 0x00baaf5b, 0x0095a498, 0x001e0936}}, Y: Field{[10]uint32{0x00c7ee88, 0x02bc06af, 0x02d448a4, 0x005d5f36, 0x00d6bcf1, 0x0308cb18, 0x022d8bbf, 0x0214a0e2, 0x00688e42, 0x002b85d7}}},
+ {X: Field{[10]uint32{0x01d96e66, 0x0073c43e, 0x00b5c421, 0x024fa5db, 0x012aa513, 0x00066b8b, 0x00e4a2cd, 0x00477085, 0x017ee0b6, 0x001274b9}}, Y: Field{[10]uint32{0x015b770a, 0x028f2caf, 0x014d25cf, 0x013e9e05, 0x0311c81e, 0x00a6ee7e, 0x01b79198, 0x007dc9de, 0x00ca8801, 0x003fe831}}},
+ {X: Field{[10]uint32{0x035ead00, 0x004e73f1, 0x03ee8be2, 0x00cba71e, 0x02eeb3de, 0x00e262ba, 0x0012e8f8, 0x006a1618, 0x036b8f70, 0x00369817}}, Y: Field{[10]uint32{0x0011d246, 0x027973a5, 0x03633d69, 0x01f19d47, 0x025a2430, 0x024fd43e, 0x030ca5ea, 0x00706a27, 0x012ce98a, 0x0016e830}}},
+ {X: Field{[10]uint32{0x02c16ff2, 0x03ff672e, 0x02785652, 0x00f070cb, 0x029307be, 0x03670e02, 0x01de2bd1, 0x0139b568, 0x03ebcde9, 0x002bbaaa}}, Y: Field{[10]uint32{0x010bf840, 0x006aebf5, 0x02460664, 0x006b0965, 0x03b62e49, 0x0041c24f, 0x000a52bf, 0x03b37814, 0x03558510, 0x000c0251}}},
+ {X: Field{[10]uint32{0x010c40b7, 0x007fac68, 0x0378cb0e, 0x002f972d, 0x0066ca0a, 0x00c17e7a, 0x02d1e1f4, 0x03f992c6, 0x012b35f3, 0x0018bc62}}, Y: Field{[10]uint32{0x03f5780d, 0x0204e9c0, 0x028838e1, 0x0148b452, 0x03f1f890, 0x0316fb6f, 0x0287f090, 0x02fd28b8, 0x005ee600, 0x00069108}}},
+ {X: Field{[10]uint32{0x02979382, 0x01356265, 0x01e944ac, 0x00cf6b89, 0x033a567b, 0x0029a020, 0x02be9f55, 0x00b5a4a3, 0x02c54677, 0x00308247}}, Y: Field{[10]uint32{0x02d4b31e, 0x02140b72, 0x002b2382, 0x01a4b56a, 0x02eb610c, 0x007f8651, 0x01fa722a, 0x0274c5cd, 0x025bd2e8, 0x0016669d}}},
+ {X: Field{[10]uint32{0x03242367, 0x0003f7c6, 0x01ba597d, 0x01557e0f, 0x02e50a24, 0x027f9f08, 0x00e1b237, 0x0248d5c0, 0x015b1951, 0x002ff5f0}}, Y: Field{[10]uint32{0x0066b17b, 0x00af51af, 0x02694037, 0x031235bf, 0x03f4cdda, 0x03ebf4a1, 0x01272130, 0x031cd7a8, 0x03de545e, 0x002b1b79}}},
+ {X: Field{[10]uint32{0x032ddc7f, 0x017d8d44, 0x00fd116b, 0x027dd3cf, 0x01958162, 0x020c76a0, 0x03d85073, 0x03f7de40, 0x03843cab, 0x00353539}}, Y: Field{[10]uint32{0x021758a6, 0x01d0b501, 0x0082d219, 0x0138ae3c, 0x01d1cd6d, 0x011d572c, 0x0265a284, 0x02eb2ff3, 0x011d582c, 0x00079258}}},
+ {X: Field{[10]uint32{0x03908fdc, 0x03047223, 0x03d02cdd, 0x03e37d85, 0x014945b4, 0x0177630c, 0x03434a49, 0x02cd37ce, 0x0009c378, 0x000795d4}}, Y: Field{[10]uint32{0x00f6cdb7, 0x02161fc3, 0x005655bd, 0x008cffea, 0x0010bf21, 0x023c8273, 0x017458cb, 0x0256849a, 0x03a2810c, 0x001738df}}},
+ {X: Field{[10]uint32{0x01408fd0, 0x03e570ee, 0x00ee1108, 0x01b4dc41, 0x01c9268c, 0x03f7d979, 0x035e690f, 0x01fae287, 0x022eac23, 0x002d699a}}, Y: Field{[10]uint32{0x03f72798, 0x00fbca32, 0x030de3c4, 0x0200c1d8, 0x03f8cc32, 0x0219a31b, 0x0042ba86, 0x03dba982, 0x02c0aaa4, 0x00264016}}},
+ {X: Field{[10]uint32{0x0326fe0d, 0x030fb99f, 0x036e60cf, 0x00c0878f, 0x0166bc3a, 0x02ebabe3, 0x0090b063, 0x0164f19b, 0x01352599, 0x000768e7}}, Y: Field{[10]uint32{0x0141311f, 0x0216e172, 0x03e489f2, 0x029e3f1f, 0x00f7e58a, 0x00070c00, 0x030d076c, 0x00546d51, 0x005eb6b0, 0x00249ca8}}},
+ {X: Field{[10]uint32{0x01a971b2, 0x01d10d2d, 0x005002b3, 0x016bce11, 0x024e900c, 0x007d0a3f, 0x02862d72, 0x00029d94, 0x00b6b100, 0x001fcec4}}, Y: Field{[10]uint32{0x02ecd385, 0x03481728, 0x03a9e1f5, 0x01d37cf0, 0x008c4a4f, 0x0095be82, 0x03bd4c90, 0x03b8cc44, 0x03e07907, 0x002e528b}}},
+ {X: Field{[10]uint32{0x024eb2e0, 0x02132f5e, 0x018cbbaf, 0x0228fd74, 0x02e5dc36, 0x008030b6, 0x03eb61ae, 0x003e6fda, 0x03c66185, 0x00109841}}, Y: Field{[10]uint32{0x03e511af, 0x0231c319, 0x014f540f, 0x033a3a39, 0x000857ce, 0x034ebfa9, 0x0313488b, 0x03b43e35, 0x0078a9e6, 0x00387e9f}}},
+ {X: Field{[10]uint32{0x01be9697, 0x01d290d1, 0x013e2fa3, 0x0265a03d, 0x01d6c940, 0x012273ea, 0x02093c21, 0x031310c4, 0x0256708f, 0x00155789}}, Y: Field{[10]uint32{0x004db6e7, 0x00b8af8a, 0x00cb002f, 0x008b1bd1, 0x01a78224, 0x019d2e84, 0x0166e06c, 0x02dda889, 0x03b71e3b, 0x00003d7b}}},
+ {X: Field{[10]uint32{0x017dd290, 0x03f6c4a4, 0x028b3af8, 0x0095190a, 0x01033606, 0x0096dc27, 0x02a927e7, 0x0381f098, 0x017b5736, 0x001c5c2c}}, Y: Field{[10]uint32{0x030973b1, 0x02b9cd40, 0x01608627, 0x029adb7d, 0x0398b2c6, 0x029df382, 0x02d86e69, 0x02204ed6, 0x02a3f899, 0x003bd0df}}},
+ {X: Field{[10]uint32{0x025c2180, 0x03b0c456, 0x00172aaa, 0x011b224c, 0x01eb4de6, 0x01ca913c, 0x02329d00, 0x03f44d27, 0x033e66fe, 0x00072a2a}}, Y: Field{[10]uint32{0x030a3c49, 0x003be98e, 0x03274fd2, 0x028554c6, 0x02c70103, 0x012613b4, 0x01da2a0f, 0x035dda07, 0x01c92a87, 0x001bf190}}},
+ {X: Field{[10]uint32{0x005366b8, 0x0393e370, 0x007977d5, 0x034d21ed, 0x0385f057, 0x007069ca, 0x0150c1e4, 0x00ba0afc, 0x006af6d4, 0x0020d495}}, Y: Field{[10]uint32{0x02c5fdb1, 0x00ea0d61, 0x0084b138, 0x039ba831, 0x01ac92b0, 0x0070ac72, 0x008d7e72, 0x016c4aa2, 0x02b27ca2, 0x001daf96}}},
+ {X: Field{[10]uint32{0x00904cd7, 0x02211667, 0x0244c3e9, 0x0285364b, 0x03353123, 0x0197123b, 0x03988ea7, 0x02e7558f, 0x037b1730, 0x000bc44b}}, Y: Field{[10]uint32{0x0234a44f, 0x029a094b, 0x031bb743, 0x02f50680, 0x0027d7a8, 0x00ab45d0, 0x0370b16d, 0x01f568cb, 0x0297f648, 0x003acd23}}},
+ {X: Field{[10]uint32{0x02a5648a, 0x009423cf, 0x00f1d519, 0x00245a9c, 0x002eb6fd, 0x01042979, 0x032494ad, 0x031b1c75, 0x023c164d, 0x0003a100}}, Y: Field{[10]uint32{0x02f4462d, 0x01bf2007, 0x01b8a48a, 0x00c6ac51, 0x01225aa0, 0x008a05af, 0x032f5106, 0x000ca226, 0x018529be, 0x0018d3cd}}},
+ {X: Field{[10]uint32{0x0228fc6b, 0x010049e3, 0x029afd6e, 0x0108c719, 0x004da403, 0x005355fd, 0x00039291, 0x03d49c2e, 0x011745da, 0x00254713}}, Y: Field{[10]uint32{0x0227f0a7, 0x02b92b56, 0x00921bb2, 0x03c71cbf, 0x03b9592e, 0x02ba0989, 0x0296f608, 0x003eecb1, 0x0311a8b3, 0x003e420e}}},
+ {X: Field{[10]uint32{0x00cb19f4, 0x02e24be3, 0x007fd689, 0x010546ba, 0x01788458, 0x007e516e, 0x025548c5, 0x027cfb82, 0x0057f60b, 0x002b6aa5}}, Y: Field{[10]uint32{0x0361caa6, 0x01a16205, 0x018302e4, 0x01450339, 0x03f899b9, 0x0159d265, 0x039b0475, 0x03fbee37, 0x03f92145, 0x0020d195}}},
+ {X: Field{[10]uint32{0x019e6ef7, 0x017f7b98, 0x03397749, 0x00d474c0, 0x00597f3e, 0x00b5fee9, 0x02ef3d85, 0x0028ed45, 0x02b30980, 0x001924a5}}, Y: Field{[10]uint32{0x021df105, 0x0214cfb5, 0x038535c7, 0x00776233, 0x005c8b44, 0x00bb7faf, 0x005f078e, 0x01459ff7, 0x00901021, 0x001133a7}}},
+ {X: Field{[10]uint32{0x0006266f, 0x02534fd8, 0x012ce4bc, 0x02dac47e, 0x029f1e9d, 0x021d7c75, 0x02fe2ba7, 0x01d6fce2, 0x02979085, 0x000b075f}}, Y: Field{[10]uint32{0x01a2cf7f, 0x008dc983, 0x02ff50ba, 0x0307f469, 0x038c6c8e, 0x030272c0, 0x03b4e4bb, 0x02f422ee, 0x00bc030a, 0x0027ac94}}},
+ {X: Field{[10]uint32{0x004647ec, 0x0355be5d, 0x0174f0f6, 0x029f46ef, 0x03b44ada, 0x014be865, 0x0293b100, 0x02f0c9e0, 0x038bed4e, 0x002c4c3f}}, Y: Field{[10]uint32{0x02a5eb33, 0x01643ffb, 0x01806212, 0x002c3730, 0x000136f6, 0x019b908a, 0x03d0a950, 0x031fd9db, 0x01e9b785, 0x00128291}}},
+ {X: Field{[10]uint32{0x030e6231, 0x00335432, 0x0011732a, 0x012b5a3c, 0x0029bf68, 0x03335c73, 0x02e9c740, 0x02cb64c6, 0x019762ec, 0x0013ca96}}, Y: Field{[10]uint32{0x00cf17de, 0x0302fd5f, 0x00237377, 0x005b3def, 0x000fc442, 0x00c27b70, 0x0300dde7, 0x01c20fe9, 0x01b45cfc, 0x0037afe3}}},
+ {X: Field{[10]uint32{0x03a23c0b, 0x0034b781, 0x030d1cab, 0x002ea678, 0x020a178c, 0x02968936, 0x01419a18, 0x01b89790, 0x01a17fbe, 0x0025fe7a}}, Y: Field{[10]uint32{0x03559128, 0x03688c95, 0x03c0a4dd, 0x02ef9c74, 0x026cb622, 0x003ed4e1, 0x034fdc87, 0x02d2003e, 0x026b0cce, 0x0006ac48}}},
+ {X: Field{[10]uint32{0x01d9d8cb, 0x00ed1f42, 0x02f4cbb9, 0x03c42b4f, 0x00bfd486, 0x02dc4250, 0x01820673, 0x0345f900, 0x03e5e9f5, 0x00385fcf}}, Y: Field{[10]uint32{0x01272f58, 0x00a40eed, 0x0196b59c, 0x018b80fb, 0x0344ad7d, 0x0014492b, 0x0360b263, 0x00ea29ac, 0x0252615d, 0x003c449a}}},
+ {X: Field{[10]uint32{0x032fa2de, 0x02a2ed9e, 0x026887a5, 0x014eab0d, 0x033ae668, 0x00e283f8, 0x00c3e945, 0x02060a40, 0x00467d63, 0x00068e7e}}, Y: Field{[10]uint32{0x02903aa5, 0x037bd6e0, 0x027bf28d, 0x00feed15, 0x0118492f, 0x035f1d40, 0x034dc019, 0x0169390a, 0x03995a62, 0x002b9f04}}},
+ {X: Field{[10]uint32{0x002f5320, 0x021a4bad, 0x03e68cd1, 0x0205450a, 0x00baa605, 0x013ebfee, 0x0293e52f, 0x03e91242, 0x006127f6, 0x00229777}}, Y: Field{[10]uint32{0x016b0d8e, 0x020346a2, 0x0338974c, 0x0297f1e1, 0x00328e69, 0x03577f30, 0x02559ebb, 0x0377c690, 0x0325853d, 0x0017ad88}}},
+ {X: Field{[10]uint32{0x0238c299, 0x0387e73f, 0x0190f7af, 0x01bfc234, 0x02b86490, 0x01bd6d76, 0x03dc17d5, 0x035bf351, 0x03b574b7, 0x00045f6f}}, Y: Field{[10]uint32{0x0190196b, 0x036e3757, 0x03b26bd5, 0x00bdae40, 0x00c50471, 0x0009902a, 0x03bc9233, 0x0051390d, 0x015130b7, 0x0012b348}}},
+ {X: Field{[10]uint32{0x0270a537, 0x02168e62, 0x019f3f29, 0x031d0606, 0x00eec84e, 0x01428a98, 0x010706d9, 0x01fad5cc, 0x0228431c, 0x002c30c4}}, Y: Field{[10]uint32{0x0064ff78, 0x0122c02c, 0x02419a10, 0x01f10e3f, 0x030085e4, 0x0183608d, 0x00c32372, 0x01dbffa6, 0x03347928, 0x0029f7a6}}},
+ {X: Field{[10]uint32{0x0243946f, 0x0347c0fc, 0x017e08d1, 0x02196962, 0x02736cbc, 0x005d81af, 0x03e6d5b5, 0x009d6b85, 0x00b9f493, 0x001f0843}}, Y: Field{[10]uint32{0x0359c63a, 0x038d4a45, 0x02db1c38, 0x02b0c3eb, 0x00920a7f, 0x02bc7c77, 0x00a92d87, 0x006173a9, 0x0123a8bd, 0x0005ec1d}}},
+ {X: Field{[10]uint32{0x02d6e650, 0x01c5841b, 0x00aa1387, 0x02cbd15c, 0x03177b14, 0x02c3b285, 0x017b5192, 0x03b5118e, 0x0167578b, 0x0005cb94}}, Y: Field{[10]uint32{0x03830ba7, 0x01f3614c, 0x00cee173, 0x005f07e2, 0x039d3ba8, 0x00f1ceb4, 0x03de8038, 0x02e01758, 0x012e4776, 0x0027055d}}},
+ {X: Field{[10]uint32{0x00030686, 0x02738a88, 0x019ca47e, 0x03ceaa70, 0x02c95a6e, 0x036b6011, 0x02373173, 0x03f6840d, 0x0040df25, 0x000586bf}}, Y: Field{[10]uint32{0x026089ce, 0x0035bc04, 0x03759ab9, 0x0182d895, 0x009926f1, 0x0291783a, 0x039c8193, 0x017ddad2, 0x0083c126, 0x00179bf4}}},
+ {X: Field{[10]uint32{0x0216a85f, 0x034fb0e2, 0x018d9459, 0x0243b854, 0x002d194e, 0x01b8e451, 0x0369cf8b, 0x03b4cd35, 0x02a8e18a, 0x002e647c}}, Y: Field{[10]uint32{0x03cab7b0, 0x03433586, 0x00e8b1a0, 0x003886ca, 0x017e6e59, 0x0248f4b0, 0x0169d3e0, 0x01c723a8, 0x01a6b89f, 0x00074aea}}},
+ {X: Field{[10]uint32{0x00ca8afc, 0x0328c351, 0x035026f1, 0x0121f56a, 0x007d6233, 0x03ecd91f, 0x016f4881, 0x03b9dfde, 0x009f5a6c, 0x0036b81a}}, Y: Field{[10]uint32{0x039c329c, 0x03221cf0, 0x01fa8c6c, 0x02c0c533, 0x0143ccc1, 0x00ef96e5, 0x01e69643, 0x02eb8a85, 0x0270f730, 0x003b99ed}}},
+ {X: Field{[10]uint32{0x027e4e41, 0x03f63b22, 0x02e61aea, 0x02905a84, 0x03d72805, 0x018a7ed6, 0x0217ba14, 0x0270551a, 0x00cd75f8, 0x0011e963}}, Y: Field{[10]uint32{0x01fdd889, 0x0153cf0a, 0x007679b9, 0x02e5cf65, 0x02a4bc43, 0x007f07c2, 0x03e60bb6, 0x02043ad2, 0x03ed1bbb, 0x0030579f}}},
+ {X: Field{[10]uint32{0x03040e3c, 0x0026d11a, 0x01698cef, 0x01a57142, 0x02d7582f, 0x013bd96d, 0x000697c9, 0x01bb8cc3, 0x03d02e3b, 0x003deb8b}}, Y: Field{[10]uint32{0x0019ca03, 0x03762b75, 0x00ea36a9, 0x0195e64d, 0x015eb495, 0x037506b2, 0x00d8e6dd, 0x004e6f15, 0x00aac527, 0x002b7a7e}}},
+ {X: Field{[10]uint32{0x0012989d, 0x0112365f, 0x00dc8b6c, 0x0091757e, 0x00ae61cf, 0x03091296, 0x03e9c214, 0x02b88235, 0x02a89be2, 0x000557e7}}, Y: Field{[10]uint32{0x01b009ff, 0x033a74d9, 0x036808c1, 0x003d3345, 0x00cf5ea6, 0x032fd124, 0x0204abe6, 0x03466bf6, 0x01f3840c, 0x0004813d}}},
+ {X: Field{[10]uint32{0x029d74f6, 0x018598c7, 0x01a5189a, 0x02e404f1, 0x01e35057, 0x0034fb8e, 0x01348a0e, 0x017c53e9, 0x01c3933b, 0x002a0f32}}, Y: Field{[10]uint32{0x0072a74a, 0x0352ebfc, 0x021dbe30, 0x00468a0f, 0x0052b91d, 0x007ef91e, 0x02a9c78e, 0x0211d878, 0x02d7fad6, 0x00102a99}}},
+ {X: Field{[10]uint32{0x03b5f5df, 0x030fa959, 0x02cce11f, 0x02f6fca9, 0x00d7acef, 0x02912d55, 0x00a20e0f, 0x01708ca6, 0x01cfc07b, 0x00329254}}, Y: Field{[10]uint32{0x01f4afc2, 0x004b13c2, 0x02050b80, 0x0115e161, 0x0235aac5, 0x00a31e66, 0x01791a6b, 0x032beb1e, 0x03d76700, 0x00061aa2}}},
+ {X: Field{[10]uint32{0x02b6787c, 0x0339c4a7, 0x011a9ae0, 0x0296e11e, 0x01d6760b, 0x02f090e3, 0x031f2a0d, 0x00407d79, 0x01e61bad, 0x0033e4b7}}, Y: Field{[10]uint32{0x003bcbd8, 0x014f88d7, 0x0159528f, 0x027444df, 0x026c9d8a, 0x00a51638, 0x00c1f053, 0x0079af2f, 0x01b7f3e3, 0x0029f4d4}}},
+ {X: Field{[10]uint32{0x029c1179, 0x01466144, 0x0287d08f, 0x02a5b8a9, 0x03b06154, 0x020fa2cd, 0x039df9be, 0x00a0e8ed, 0x033ecfd8, 0x002c6ac2}}, Y: Field{[10]uint32{0x01506bbf, 0x017435ba, 0x0305812d, 0x0254e0df, 0x0099e973, 0x0204a403, 0x034cd97b, 0x014d2907, 0x02f34bab, 0x00336dfc}}},
+ {X: Field{[10]uint32{0x021789ce, 0x02549283, 0x0035424e, 0x028a62cc, 0x01197296, 0x00ffaeb6, 0x0399295f, 0x0327a13e, 0x03299cd4, 0x00285d0c}}, Y: Field{[10]uint32{0x037e1afe, 0x00bd75fd, 0x03fc4428, 0x02913cbc, 0x035bee11, 0x0373e9b5, 0x0078088a, 0x00d5ddbc, 0x02f44cf5, 0x00102653}}},
+ {X: Field{[10]uint32{0x01c0573b, 0x02868af6, 0x01e0b0d0, 0x011981fc, 0x0338b318, 0x006954c5, 0x03b946a6, 0x02b1f0f1, 0x00864efc, 0x0000906d}}, Y: Field{[10]uint32{0x03a0d574, 0x03d72607, 0x0197c832, 0x0166eb4e, 0x002f9801, 0x02f2900f, 0x01f3ba8f, 0x00734cc9, 0x0048eec6, 0x001733a2}}},
+ {X: Field{[10]uint32{0x0291b387, 0x00f8f937, 0x0137ed75, 0x01534960, 0x03e3efd3, 0x01e66ac2, 0x01559adf, 0x01e611a6, 0x02096499, 0x00207e20}}, Y: Field{[10]uint32{0x0226d15c, 0x031c79aa, 0x01967a32, 0x0266be8a, 0x0243bda5, 0x03cf3236, 0x01e5caa5, 0x01c1846e, 0x01b85bfd, 0x0023e7fb}}},
+ {X: Field{[10]uint32{0x024e5a5b, 0x03d75251, 0x006fe8fb, 0x01ad955c, 0x00c22da9, 0x028bb095, 0x00793d64, 0x00851480, 0x0231bd2c, 0x00127590}}, Y: Field{[10]uint32{0x0351e825, 0x0350ccf1, 0x0302b548, 0x0100fc69, 0x01bf9864, 0x01c71b76, 0x01f81216, 0x00b2b607, 0x02dab0d7, 0x003ebb23}}},
+ {X: Field{[10]uint32{0x026e0ae4, 0x01f6db41, 0x029387e7, 0x013651db, 0x006daea2, 0x02dd0260, 0x03e1f159, 0x00e90471, 0x00324fad, 0x001d3053}}, Y: Field{[10]uint32{0x00641a41, 0x01ce2038, 0x009fd5aa, 0x0176af6e, 0x013ee016, 0x011b9ad9, 0x031a2cb9, 0x03972fc0, 0x02031fbe, 0x002bde54}}},
+ {X: Field{[10]uint32{0x02a1e7c3, 0x012db5c4, 0x011b2a98, 0x00674276, 0x00930f9c, 0x004e0f1b, 0x03f42158, 0x036532f8, 0x009c7342, 0x00222f08}}, Y: Field{[10]uint32{0x005b3e08, 0x03265313, 0x02a2346a, 0x03985606, 0x01b817eb, 0x00a1d843, 0x0288866e, 0x021c8e26, 0x034576dd, 0x002b2df5}}},
+ {X: Field{[10]uint32{0x026eb3f8, 0x0361738a, 0x02e77c1b, 0x01099daa, 0x0009bee2, 0x0285497d, 0x03b93c85, 0x02a2337d, 0x0068c81c, 0x00121b23}}, Y: Field{[10]uint32{0x03e52d54, 0x03749bd3, 0x0234ec1a, 0x0013eccf, 0x01d62490, 0x03d79a12, 0x02648706, 0x02a5f357, 0x014b035f, 0x00383fb2}}},
+ {X: Field{[10]uint32{0x00a681a3, 0x033ae401, 0x02f14e28, 0x00f5b97e, 0x03ba3904, 0x034377cd, 0x01e30fb5, 0x02388ded, 0x02116c58, 0x001287be}}, Y: Field{[10]uint32{0x017b64f4, 0x03efc6a6, 0x00d538fc, 0x030506f6, 0x0365f2ac, 0x02f391db, 0x0137dd31, 0x01c596a2, 0x03373c90, 0x002ec659}}},
+ {X: Field{[10]uint32{0x00eb28d2, 0x0110a51e, 0x0392f8da, 0x016dfdfd, 0x002632e8, 0x03bf9eed, 0x0317f308, 0x0027b436, 0x0006c696, 0x0035dd17}}, Y: Field{[10]uint32{0x01b96a73, 0x00fc208e, 0x0297cad1, 0x001fdc0a, 0x025371f0, 0x006b76c6, 0x0046e11b, 0x00af557f, 0x02754d1b, 0x0001d5d6}}},
+ {X: Field{[10]uint32{0x03e68def, 0x01ebe90a, 0x015f49ca, 0x0143f666, 0x00dc333d, 0x03dd2a1f, 0x0208cedd, 0x009f1a9a, 0x032ea3db, 0x002f5d4b}}, Y: Field{[10]uint32{0x01e9491a, 0x03b0e2e9, 0x024d791d, 0x01b76a70, 0x02ef5c57, 0x01b54318, 0x00725ed2, 0x023482e9, 0x02af6747, 0x000de3e2}}},
+ {X: Field{[10]uint32{0x03224d21, 0x0115ec07, 0x001f94be, 0x0131fccc, 0x0055eb30, 0x03380357, 0x0202bffa, 0x031faf19, 0x033315a3, 0x003bd620}}, Y: Field{[10]uint32{0x03517abd, 0x02830482, 0x0123ff46, 0x01532d69, 0x01eb52e0, 0x0210dd47, 0x01a95f7e, 0x037ef8f6, 0x02ab6253, 0x0015bace}}},
+ {X: Field{[10]uint32{0x0253727a, 0x031810d4, 0x01f1fc1d, 0x0339fb7c, 0x0106b495, 0x010b7c90, 0x01beea4f, 0x02097682, 0x03747355, 0x000b0778}}, Y: Field{[10]uint32{0x03a150c2, 0x00ec74e1, 0x0058873a, 0x0340a34b, 0x005ff92c, 0x01dd9caa, 0x01986bdf, 0x03d7623e, 0x02609082, 0x0026164d}}},
+ {X: Field{[10]uint32{0x000daf99, 0x03fd43ca, 0x02535324, 0x008aa23c, 0x00b78e2a, 0x03ce6cba, 0x00c90016, 0x000503d4, 0x031b23e6, 0x00127e35}}, Y: Field{[10]uint32{0x018b04ec, 0x024ea1ad, 0x0254622b, 0x03207f90, 0x00308111, 0x03dbf788, 0x00ec3393, 0x039f70cc, 0x02654807, 0x003d9aed}}},
+ {X: Field{[10]uint32{0x009f37be, 0x0185eac6, 0x03ceb6df, 0x01e36d64, 0x02d18fdf, 0x0153ce94, 0x02a30f99, 0x018728ac, 0x0385754b, 0x000d9727}}, Y: Field{[10]uint32{0x0132825e, 0x00169054, 0x01a3af14, 0x000488da, 0x007681b6, 0x0028c9e5, 0x026aced6, 0x01af2ffe, 0x03e6aca5, 0x00310ffb}}},
+ {X: Field{[10]uint32{0x01f1b5af, 0x013a2fc8, 0x023108e2, 0x00f86612, 0x027e2cb5, 0x028c473c, 0x02446c4d, 0x01a3b706, 0x03e9e896, 0x00073cb3}}, Y: Field{[10]uint32{0x00c966b7, 0x007bd688, 0x03803673, 0x004b8b2b, 0x03aebc7b, 0x029a17c8, 0x038f1041, 0x00c251ed, 0x01ac43c5, 0x001c795b}}},
+ {X: Field{[10]uint32{0x008ca3ec, 0x03398dad, 0x03d5225d, 0x03e38072, 0x02219694, 0x01fa1de5, 0x011c26fa, 0x00089bce, 0x00796266, 0x003ccc0d}}, Y: Field{[10]uint32{0x02762827, 0x023e3e98, 0x030026f4, 0x03215aa4, 0x02afa585, 0x013e0e90, 0x0359ab87, 0x03a5176e, 0x03f4c110, 0x001f7a82}}},
+ {X: Field{[10]uint32{0x00b27154, 0x030c94f9, 0x02df0587, 0x01a46b9e, 0x008756a9, 0x008a5fa8, 0x00664f90, 0x01b220e6, 0x004c4bc1, 0x002da249}}, Y: Field{[10]uint32{0x0050c856, 0x03466a39, 0x00364c27, 0x02b971c0, 0x00bd7483, 0x02d29d68, 0x03f89a90, 0x00da3325, 0x03481357, 0x0026d221}}},
+ {X: Field{[10]uint32{0x038cbe41, 0x02c45018, 0x00517f3e, 0x00089035, 0x01a78b43, 0x0392f808, 0x032f8745, 0x00dc73fb, 0x00d2d6b4, 0x002fcd3f}}, Y: Field{[10]uint32{0x0397ac02, 0x01386557, 0x03546546, 0x00e09fd9, 0x001ef6a2, 0x006d0ef0, 0x0372914e, 0x01baba39, 0x00d27e32, 0x00339a22}}},
+ {X: Field{[10]uint32{0x018d74fe, 0x03520844, 0x01cd110e, 0x018f116e, 0x00d51ffe, 0x01300094, 0x005a5944, 0x031e5b3a, 0x026d231b, 0x0030825e}}, Y: Field{[10]uint32{0x03e4ac87, 0x002da82f, 0x0372b135, 0x00f96e67, 0x01d1f92b, 0x0299d221, 0x023a85ac, 0x0305cf87, 0x0013fc4a, 0x00162c19}}},
+ {X: Field{[10]uint32{0x017afa81, 0x01a8cc10, 0x026184d4, 0x0261036c, 0x02e3e817, 0x03191eba, 0x011b1de3, 0x0013cc28, 0x02223d88, 0x0021d298}}, Y: Field{[10]uint32{0x0380b429, 0x00e83b6b, 0x00f8f6b1, 0x03803bdc, 0x02b31668, 0x03263cd5, 0x02b181d5, 0x03988a5d, 0x01f67986, 0x00104ca9}}},
+ {X: Field{[10]uint32{0x01bc605c, 0x021382bd, 0x03b85b97, 0x00f332a8, 0x021f2846, 0x0030fb51, 0x002227ab, 0x03564a05, 0x028a1a05, 0x002b1f1b}}, Y: Field{[10]uint32{0x018a2186, 0x02c52cc4, 0x00da4a08, 0x036da1e5, 0x01c107a9, 0x018fd71c, 0x0260a0a9, 0x00ce5fae, 0x0195581e, 0x00069668}}},
+ {X: Field{[10]uint32{0x0333342c, 0x02c58e8c, 0x00a65575, 0x02e0bc95, 0x0344bc12, 0x005c5697, 0x0075c01a, 0x028fd822, 0x02d8d825, 0x000fc4f8}}, Y: Field{[10]uint32{0x0025e3b7, 0x00fe8716, 0x02724339, 0x033f5ee9, 0x036a2e6e, 0x02d788a4, 0x02f76a68, 0x009847ff, 0x0082fb2c, 0x002ebfda}}},
+ {X: Field{[10]uint32{0x03a8fe2d, 0x03e57b2f, 0x03cec4d5, 0x003d327d, 0x01aa7e40, 0x007418c3, 0x03e26315, 0x01fce770, 0x0354515e, 0x0007afac}}, Y: Field{[10]uint32{0x025c85cf, 0x02847deb, 0x02daca6c, 0x02e6131c, 0x00c70724, 0x00617ce9, 0x00a2473c, 0x03373ce1, 0x00ef00c2, 0x0028b8d7}}},
+ {X: Field{[10]uint32{0x0202b2ab, 0x00668777, 0x019a0d2d, 0x027388ae, 0x00b47d8f, 0x004ad176, 0x0059218d, 0x039d979b, 0x0365b211, 0x0030b736}}, Y: Field{[10]uint32{0x00f3be50, 0x01bd4389, 0x01237b14, 0x00cb25ad, 0x028722e0, 0x00967e21, 0x009326e9, 0x0045e9ca, 0x039ca960, 0x00382a96}}},
+ {X: Field{[10]uint32{0x00bc0d45, 0x03a1e459, 0x01b85841, 0x02e09c32, 0x0207f360, 0x000e3db1, 0x02ed8a9c, 0x03451238, 0x01f7e2a9, 0x0012575a}}, Y: Field{[10]uint32{0x017088d2, 0x03d67825, 0x003e70bd, 0x02f84d0a, 0x03c48584, 0x013eb1bd, 0x034465d7, 0x0339ee0e, 0x022a1dab, 0x0017ecff}}},
+ {X: Field{[10]uint32{0x0053bab2, 0x01eb21cd, 0x0169d203, 0x01deeb56, 0x01270a94, 0x0368fd45, 0x01be43d8, 0x0393e5c0, 0x01692139, 0x0033ab11}}, Y: Field{[10]uint32{0x00908070, 0x00b05811, 0x00b3bca3, 0x01035548, 0x02f385ea, 0x01812dac, 0x002f2bd9, 0x03a1cad8, 0x01d815f4, 0x002f47f6}}},
+ {X: Field{[10]uint32{0x01407e0d, 0x015625c2, 0x0140682f, 0x006835b3, 0x034e6dba, 0x002881ab, 0x01284cbc, 0x02e30073, 0x00b93196, 0x001fb474}}, Y: Field{[10]uint32{0x012801c5, 0x03286287, 0x00e0af1b, 0x03036103, 0x0111018e, 0x035d6a71, 0x034ee732, 0x002f988b, 0x02c96ba6, 0x003a568e}}},
+ {X: Field{[10]uint32{0x01040b04, 0x02dc5e28, 0x010fba24, 0x02c84c49, 0x03ac5fe4, 0x02e9f325, 0x00fd4365, 0x033b2250, 0x03664f42, 0x0001cbec}}, Y: Field{[10]uint32{0x007dce41, 0x028994f1, 0x029bcdbb, 0x0372887b, 0x0063d551, 0x02d4b3a4, 0x01e5c9b4, 0x0047d7d7, 0x031a93a2, 0x0003060a}}},
+ {X: Field{[10]uint32{0x0008beea, 0x0183c118, 0x00309021, 0x00b56455, 0x03469019, 0x00f9b615, 0x0320043d, 0x00791759, 0x018c9ca9, 0x003741b3}}, Y: Field{[10]uint32{0x001e7ecd, 0x021771b1, 0x03ce272b, 0x016e402c, 0x01418970, 0x020faf60, 0x03a8a7ee, 0x03a8efe7, 0x03276eeb, 0x0033705c}}},
+ {X: Field{[10]uint32{0x0178cd13, 0x02a6a64e, 0x00743da8, 0x010c0b8b, 0x003c708c, 0x02ffb6c4, 0x02504398, 0x01fc3c79, 0x0129e90a, 0x000203d8}}, Y: Field{[10]uint32{0x01deb82a, 0x009b53ce, 0x0000fe72, 0x0208e0a3, 0x02d95a30, 0x016d9129, 0x02f594f8, 0x03bfd28f, 0x0012145f, 0x001d365e}}},
+ {X: Field{[10]uint32{0x005995b6, 0x0309f9c4, 0x01b24f5b, 0x00f13014, 0x020b48f8, 0x02bee774, 0x02970afb, 0x01422bbb, 0x00daf56b, 0x0015abcd}}, Y: Field{[10]uint32{0x01ae68bf, 0x02ac37b4, 0x0334d8a3, 0x016b7317, 0x03decca6, 0x00867734, 0x0105a4cc, 0x02386624, 0x02529e78, 0x0035077f}}},
+ {X: Field{[10]uint32{0x023f91ee, 0x00f11393, 0x001f6ca3, 0x024e8687, 0x00148cf6, 0x01a27647, 0x005e29c4, 0x0196d031, 0x01ba7955, 0x00208089}}, Y: Field{[10]uint32{0x024b7db4, 0x000a2fae, 0x03334b24, 0x03c52ce1, 0x0011a0f4, 0x01e09a4a, 0x02bf5a31, 0x0270b819, 0x025bc89b, 0x000d88ab}}},
+ {X: Field{[10]uint32{0x02ea57d2, 0x008cafa8, 0x037033bf, 0x02c5594a, 0x03ad388d, 0x0231fc27, 0x01a1b7ca, 0x0080aa25, 0x01bfcfcc, 0x001e497f}}, Y: Field{[10]uint32{0x0290525c, 0x00dcc253, 0x00d0a9dc, 0x0072a105, 0x021ebcc2, 0x01b4fd7c, 0x019cf5ec, 0x01f72455, 0x0301c9cb, 0x0011bdfb}}},
+ {X: Field{[10]uint32{0x01d81808, 0x01fd8341, 0x039f6102, 0x012a6ffd, 0x02663879, 0x036f4ac7, 0x03316eb8, 0x039cc416, 0x036af38a, 0x0012c892}}, Y: Field{[10]uint32{0x015c3dac, 0x03e72c56, 0x029d423f, 0x02207f19, 0x00b6dc68, 0x007ff96d, 0x032ad2e1, 0x00c00aee, 0x0208b163, 0x000c50fa}}},
+ {X: Field{[10]uint32{0x007380ee, 0x02bc831a, 0x013cd28d, 0x0192a904, 0x022c1bdd, 0x01b39223, 0x02a1a36e, 0x03d3ad80, 0x03fa4135, 0x000b01d9}}, Y: Field{[10]uint32{0x03bc16a7, 0x006f8ec3, 0x0389a5f7, 0x00ac4142, 0x0006a65d, 0x004dcf78, 0x002da710, 0x00c185f3, 0x03fce78d, 0x003770fb}}},
+ {X: Field{[10]uint32{0x00a7ae7c, 0x0366ee94, 0x01ef1982, 0x03097544, 0x0137b5a2, 0x006a7e0d, 0x02ed2d94, 0x026a13bd, 0x013ee717, 0x0020e0df}}, Y: Field{[10]uint32{0x03b66dbe, 0x00092db8, 0x008d8556, 0x03c9e51b, 0x01fe2294, 0x029809ed, 0x02f1a495, 0x01ed32a1, 0x02166095, 0x00188807}}},
+ {X: Field{[10]uint32{0x0095387a, 0x009c4256, 0x01d9bda4, 0x027875c3, 0x0225e50d, 0x00d6fc76, 0x028e0118, 0x03c15d4e, 0x0334e560, 0x0033c1d6}}, Y: Field{[10]uint32{0x02127018, 0x001c6128, 0x02a1404b, 0x03746035, 0x032b11d8, 0x00f7ce35, 0x0219f6f3, 0x03d348e3, 0x01d0330f, 0x0031cc82}}},
+ {X: Field{[10]uint32{0x008931a4, 0x006e20df, 0x0329dcb0, 0x00b04020, 0x039d06ba, 0x0038faed, 0x00680300, 0x01d747bd, 0x00ff9b18, 0x003560fe}}, Y: Field{[10]uint32{0x03ae3292, 0x02f94f1b, 0x0258cd55, 0x0270ccee, 0x00aaac7c, 0x0165ad42, 0x03cfcc69, 0x024ae9af, 0x031c03f0, 0x003e33f3}}},
+ {X: Field{[10]uint32{0x03eaefaa, 0x006de490, 0x02220343, 0x02cb687f, 0x0327568b, 0x010bb6c6, 0x01853723, 0x00e26ff0, 0x01b621d2, 0x001547fa}}, Y: Field{[10]uint32{0x023c24e0, 0x02b74095, 0x023d8c3b, 0x03fa5c48, 0x03ff48e5, 0x03cc4467, 0x02ff5057, 0x018f331a, 0x004ae485, 0x001b1da4}}},
+ {X: Field{[10]uint32{0x016a80b2, 0x018fdbb4, 0x02da9a9d, 0x0252f239, 0x0051f063, 0x0339f264, 0x0162be7b, 0x00bc92c2, 0x00fc7406, 0x0006edde}}, Y: Field{[10]uint32{0x01d88318, 0x0385d018, 0x03bdb14b, 0x00bc775e, 0x0260e935, 0x03fc0dbe, 0x02700b68, 0x03459cf4, 0x013d2f4e, 0x0009d53d}}},
+ {X: Field{[10]uint32{0x03e364aa, 0x00ff8439, 0x03be6e4a, 0x0313a5f3, 0x01aa0744, 0x03fe354e, 0x009f1a93, 0x0160be25, 0x02f71261, 0x00028542}}, Y: Field{[10]uint32{0x02ea4773, 0x037dc87a, 0x03ab99e0, 0x03b57e5b, 0x03100737, 0x01b86fd1, 0x02124715, 0x01c70be7, 0x02fea686, 0x00388a86}}},
+ {X: Field{[10]uint32{0x032e2a9e, 0x00b856b9, 0x0380b724, 0x02f095e1, 0x00835ed2, 0x023a4f5a, 0x0163a030, 0x037e475e, 0x03df727f, 0x003253b0}}, Y: Field{[10]uint32{0x0152009c, 0x00d3485c, 0x030d50a9, 0x0042cfd5, 0x02011b28, 0x003eb427, 0x0312b35f, 0x014f1518, 0x00e97bda, 0x00291da8}}},
+ {X: Field{[10]uint32{0x0146875a, 0x02d97dfc, 0x03f255f8, 0x0285e131, 0x02f186bd, 0x008d69ca, 0x01427394, 0x00c8c5f1, 0x01dbebe1, 0x000cd9ae}}, Y: Field{[10]uint32{0x0345d3cf, 0x00c9c984, 0x01862eea, 0x0064805c, 0x026b6206, 0x010e4657, 0x03213835, 0x00a22508, 0x007895f5, 0x00017a89}}},
+ {X: Field{[10]uint32{0x00e8ba25, 0x030e3978, 0x02373974, 0x02f91130, 0x0358bec6, 0x0024acae, 0x005ef365, 0x0197b32e, 0x026ce522, 0x00185b23}}, Y: Field{[10]uint32{0x01aa0970, 0x0126fc73, 0x033caba0, 0x0240bc7b, 0x02724a98, 0x03d04926, 0x03286f45, 0x00963362, 0x01433d6e, 0x00134f55}}},
+ {X: Field{[10]uint32{0x02651827, 0x008a47da, 0x00b1d043, 0x0298c825, 0x032617b3, 0x01177129, 0x001d86ef, 0x03a13a2e, 0x01772e38, 0x001d37c8}}, Y: Field{[10]uint32{0x02e01334, 0x011b6308, 0x0360c487, 0x0071a86c, 0x032a9ccf, 0x0326e695, 0x00abc6f9, 0x02549ff1, 0x03af30f0, 0x000130ca}}},
+ {X: Field{[10]uint32{0x01accbd1, 0x03f14008, 0x00ce5d68, 0x0366fb83, 0x02532f8d, 0x03bd0bea, 0x01966d15, 0x0114ca5e, 0x01bf76b7, 0x00060528}}, Y: Field{[10]uint32{0x00d46bdc, 0x02feeb6b, 0x02ef3154, 0x01b826cb, 0x037af174, 0x03ea4ee6, 0x0205ad25, 0x0350e6c8, 0x01ff0da9, 0x0017d77d}}},
+ {X: Field{[10]uint32{0x018625cc, 0x01db00ae, 0x02975c74, 0x019b108a, 0x035f444d, 0x03a17ef6, 0x01f22878, 0x01d49aeb, 0x029498ff, 0x000a2447}}, Y: Field{[10]uint32{0x02638537, 0x03240f07, 0x01ada5e4, 0x02ef8e02, 0x02eac150, 0x02c886e9, 0x0069542f, 0x01801a76, 0x00f35cf2, 0x00168d07}}},
+ {X: Field{[10]uint32{0x01270865, 0x0343bf8a, 0x0279abd6, 0x006f9913, 0x02f441ce, 0x0227a1a1, 0x01ce2926, 0x011570e8, 0x0371e82a, 0x00356b3f}}, Y: Field{[10]uint32{0x0126d5e8, 0x031f6007, 0x0070e00d, 0x025a5636, 0x03ca8cde, 0x0344fc0c, 0x004971aa, 0x03a5c281, 0x008f1b46, 0x002ab1b5}}},
+ {X: Field{[10]uint32{0x02711596, 0x002638b8, 0x00b6a91f, 0x015d4401, 0x008f03fc, 0x00842545, 0x0365e173, 0x00361675, 0x001b0221, 0x00173d47}}, Y: Field{[10]uint32{0x02d5c3b3, 0x016f73c9, 0x01838f39, 0x03ba8e65, 0x00017fe9, 0x028a8852, 0x031e58ea, 0x03d164b0, 0x01e0610d, 0x0007bac6}}},
+}
+
+var preG128 = []XY{
+ {X: Field{[10]uint32{0x02c4c0da, 0x02d11327, 0x023351b7, 0x01e1c8fa, 0x02e88c56, 0x0207c58b, 0x039c1ad9, 0x017cce48, 0x01d2f63b, 0x0023da2e}}, Y: Field{[10]uint32{0x001fff82, 0x032fde54, 0x00bfdf23, 0x03fa5544, 0x01bbea2c, 0x01af8857, 0x01d90c2b, 0x00e61b78, 0x032dba06, 0x00198aa7}}},
+ {X: Field{[10]uint32{0x023809fa, 0x00ae3b74, 0x014be18e, 0x02cd4765, 0x00fd845c, 0x009147c2, 0x0293363f, 0x027c8a2e, 0x01be2e50, 0x000e0e07}}, Y: Field{[10]uint32{0x031fed52, 0x001d460c, 0x0324dbd7, 0x032ccb63, 0x003681fc, 0x0083ac73, 0x01405a55, 0x005f72c2, 0x010a0fb9, 0x003928cb}}},
+ {X: Field{[10]uint32{0x03c2a310, 0x01099225, 0x026303ea, 0x02950048, 0x01f186ae, 0x0291a668, 0x0121b82a, 0x00ab9bda, 0x0324e437, 0x00124989}}, Y: Field{[10]uint32{0x0227ded0, 0x006da057, 0x038ce0c4, 0x004a9d7f, 0x036d1636, 0x01c50c0e, 0x02cfa569, 0x02afe568, 0x0373bca7, 0x0004cdf9}}},
+ {X: Field{[10]uint32{0x02bd2d31, 0x012c1e73, 0x01b8d138, 0x015bfc1b, 0x004dcc1a, 0x011df8be, 0x02253b3e, 0x00324357, 0x028c1a24, 0x0038c195}}, Y: Field{[10]uint32{0x02546e44, 0x02d020e4, 0x03826692, 0x010af8dc, 0x02ffbc80, 0x03df436d, 0x00f2b107, 0x01098222, 0x03e37893, 0x0003ab1b}}},
+ {X: Field{[10]uint32{0x023136b0, 0x0030e78d, 0x01dd9c53, 0x0366aad0, 0x0374ebf8, 0x00fef58c, 0x01b0e762, 0x033bf09c, 0x000e2428, 0x000ee784}}, Y: Field{[10]uint32{0x00dbbc8a, 0x03b05bdb, 0x01f81953, 0x028ceb4c, 0x02a2ae28, 0x03d1d6c9, 0x01533eb8, 0x02edc77c, 0x00152d16, 0x003ebee6}}},
+ {X: Field{[10]uint32{0x03485d3f, 0x023c11cb, 0x03eee960, 0x01a2041e, 0x0317ca07, 0x0177b7bd, 0x036ca80f, 0x0326a4ad, 0x0149712a, 0x002ec2ab}}, Y: Field{[10]uint32{0x00a2f975, 0x00e4940f, 0x00bffe79, 0x03e8c59c, 0x00895a5a, 0x00a5f68d, 0x00d201f7, 0x0151e63b, 0x0053c583, 0x003a9a67}}},
+ {X: Field{[10]uint32{0x02718dc9, 0x03b4ce8d, 0x023de4ae, 0x0136c044, 0x03e1e58b, 0x02bf8044, 0x028eb197, 0x03f30353, 0x02c8e4ee, 0x001e4242}}, Y: Field{[10]uint32{0x00fae7c5, 0x00c8ac47, 0x0008b963, 0x02dc2ea4, 0x02dd36af, 0x0366aa95, 0x01816cbc, 0x016e3c4f, 0x022b9190, 0x003aaadc}}},
+ {X: Field{[10]uint32{0x0360c7d1, 0x025a531f, 0x01ad2a26, 0x039f35dd, 0x028dd71d, 0x01526e99, 0x003dbbce, 0x01ed5470, 0x01ade9f9, 0x0039df20}}, Y: Field{[10]uint32{0x02d72449, 0x01607ca0, 0x006d34ec, 0x03dc70a6, 0x03631470, 0x03aa0550, 0x03c3b323, 0x004c8717, 0x0078eef8, 0x000eb3c5}}},
+ {X: Field{[10]uint32{0x01ccf6b0, 0x03ece915, 0x01341501, 0x02ba8b51, 0x003d633d, 0x037b61f3, 0x018878e3, 0x014473cb, 0x00e9dbce, 0x00378ad7}}, Y: Field{[10]uint32{0x01100666, 0x00a7adc4, 0x018bb348, 0x016b198c, 0x0065b8c4, 0x02c68dd1, 0x03717e98, 0x038386ef, 0x02f3d3c3, 0x003c415d}}},
+ {X: Field{[10]uint32{0x03c03c56, 0x005182c4, 0x0258b26b, 0x02977919, 0x0329659c, 0x03048485, 0x0259fbd7, 0x028bf87a, 0x01ffd491, 0x00341ef7}}, Y: Field{[10]uint32{0x03405ce7, 0x00fd830a, 0x02ea76be, 0x03fe330b, 0x0161d963, 0x00778135, 0x01c40e2a, 0x025f743e, 0x0308cd3c, 0x002cab51}}},
+ {X: Field{[10]uint32{0x036a4d51, 0x036ad06e, 0x0025710e, 0x01710d2e, 0x010f8da4, 0x025b3a38, 0x025ec4c3, 0x005abcdd, 0x027c5d30, 0x0020900f}}, Y: Field{[10]uint32{0x03463b19, 0x024bab5e, 0x03c1b11e, 0x03313b19, 0x0199ab6c, 0x00fa1014, 0x016baddb, 0x02dd9d11, 0x021be27c, 0x00034259}}},
+ {X: Field{[10]uint32{0x010680cf, 0x032d219d, 0x0023f438, 0x00f65507, 0x01930f93, 0x0132bd36, 0x03faa58c, 0x009bd498, 0x0131fbd6, 0x003ab70c}}, Y: Field{[10]uint32{0x0087a914, 0x0253fc4b, 0x01a74360, 0x02770de4, 0x01a388fb, 0x01cb5740, 0x024b36c9, 0x02a25d71, 0x03b1c9b4, 0x0034f25d}}},
+ {X: Field{[10]uint32{0x007987d9, 0x03ca427f, 0x038ac609, 0x0172ddf9, 0x0336bdd6, 0x019d23d3, 0x018a4b38, 0x03fc9314, 0x025f6758, 0x000e40fb}}, Y: Field{[10]uint32{0x002be83b, 0x03f8ab86, 0x028dab0c, 0x0061249e, 0x018d222a, 0x0348d1d2, 0x0115934b, 0x01075902, 0x014ea152, 0x0003a486}}},
+ {X: Field{[10]uint32{0x03e6a5d9, 0x007e2096, 0x00e9323e, 0x010f6efe, 0x015759c3, 0x026a7c86, 0x035bdccf, 0x01228e11, 0x037839ab, 0x0034200e}}, Y: Field{[10]uint32{0x00582f0b, 0x012a4999, 0x01d24289, 0x01b39474, 0x0004ecf0, 0x00e2ebe9, 0x02ec15fb, 0x0325fa84, 0x0180ff29, 0x000b30ec}}},
+ {X: Field{[10]uint32{0x00567ed0, 0x018a3ef0, 0x02c19215, 0x008f6a39, 0x018496dd, 0x033e2f81, 0x013a5aea, 0x01d26685, 0x0096b18a, 0x0007d5bc}}, Y: Field{[10]uint32{0x039dff58, 0x004f2d0d, 0x000d51fc, 0x03d06a4f, 0x01c94189, 0x02d9735a, 0x00044360, 0x03d2420c, 0x038a3b52, 0x003fbc8a}}},
+ {X: Field{[10]uint32{0x038e213b, 0x03f016d8, 0x032974e0, 0x033f3c80, 0x0079e947, 0x008d2a8c, 0x006f5250, 0x01d0cb8e, 0x01b1a4a4, 0x000767da}}, Y: Field{[10]uint32{0x00d4ccbb, 0x00575bb9, 0x0372041f, 0x02cf4fdb, 0x005438d5, 0x00ac7689, 0x00500c3a, 0x001d86ce, 0x0017949c, 0x0036263b}}},
+ {X: Field{[10]uint32{0x03629efd, 0x016a773e, 0x008b1aeb, 0x01537200, 0x00552133, 0x01719eb4, 0x03c43610, 0x032de04b, 0x01134d9d, 0x00004a32}}, Y: Field{[10]uint32{0x03e67c96, 0x01060602, 0x036e45ff, 0x0393b1bd, 0x02c160c8, 0x00267598, 0x03259360, 0x00984365, 0x014add15, 0x003fb8f9}}},
+ {X: Field{[10]uint32{0x011a9685, 0x0038f643, 0x011fc49c, 0x015238b1, 0x00301f28, 0x01d581d7, 0x00b8d519, 0x02e53491, 0x012f5a95, 0x00087b00}}, Y: Field{[10]uint32{0x00de08ae, 0x0237864f, 0x00162d12, 0x029bf57f, 0x027418ed, 0x02527ca3, 0x03fef716, 0x0125fd31, 0x010577af, 0x000b7bc8}}},
+ {X: Field{[10]uint32{0x02331cc5, 0x008a0d8f, 0x0311c584, 0x039df6be, 0x00761c3b, 0x031f3f1d, 0x0080e894, 0x022f0279, 0x0202fb9d, 0x001a23d4}}, Y: Field{[10]uint32{0x03302cd3, 0x02708631, 0x03d9462d, 0x02be27ba, 0x001a393e, 0x00900d0d, 0x007cabd9, 0x01069cbb, 0x015963b5, 0x0025ae9f}}},
+ {X: Field{[10]uint32{0x03f02baf, 0x034ead3d, 0x03f682e4, 0x03bc3a2e, 0x010744d0, 0x0029434d, 0x0314c300, 0x02a3d6cc, 0x02ea1cb9, 0x003ed727}}, Y: Field{[10]uint32{0x03630418, 0x015fa77e, 0x02af0911, 0x0331f949, 0x006868e0, 0x01717a57, 0x028bd269, 0x031547ec, 0x0044e18f, 0x000a7ee2}}},
+ {X: Field{[10]uint32{0x02c03421, 0x00d89732, 0x0380de0b, 0x03b1ed48, 0x01593168, 0x012a7787, 0x01f6a5d8, 0x02b8fcbd, 0x03e22eed, 0x003c51e7}}, Y: Field{[10]uint32{0x02764606, 0x015acb88, 0x02131cb8, 0x003120d4, 0x01c0b463, 0x03ef4d06, 0x0350d1a3, 0x022e084e, 0x015d2fd8, 0x0006990b}}},
+ {X: Field{[10]uint32{0x031a7950, 0x0171ecaf, 0x0165a69f, 0x01eca261, 0x0200f60f, 0x03f83bfe, 0x005b0e09, 0x025dd24f, 0x01c5e819, 0x00089cfb}}, Y: Field{[10]uint32{0x027bda12, 0x02b8e7bf, 0x03530906, 0x03f13d42, 0x00b64691, 0x021254d6, 0x031a1df9, 0x01e364a7, 0x02388fd9, 0x002ceba8}}},
+ {X: Field{[10]uint32{0x03ef5214, 0x0016b5e6, 0x0285656f, 0x03d2c518, 0x03496d59, 0x02ce768b, 0x03d10b32, 0x010de2d1, 0x000c3050, 0x00267e12}}, Y: Field{[10]uint32{0x0264b2cd, 0x029eb998, 0x0215171d, 0x00df9398, 0x02d930e4, 0x02d6aa67, 0x00bd397c, 0x010a1a36, 0x015d8e22, 0x00380075}}},
+ {X: Field{[10]uint32{0x016a6f1f, 0x0195aea6, 0x03635bc9, 0x03561fd5, 0x0209c000, 0x024f2190, 0x00fdfc69, 0x004a035d, 0x017fe475, 0x0000e089}}, Y: Field{[10]uint32{0x0351d474, 0x01caab62, 0x019731c6, 0x00e78d96, 0x0130dbfa, 0x01ad7c7e, 0x01a4f1da, 0x032c1899, 0x033dfe52, 0x0030b71c}}},
+ {X: Field{[10]uint32{0x00efb24b, 0x01179ffb, 0x034526e1, 0x03e7db57, 0x0262e5ea, 0x02b3211e, 0x01f4e1b2, 0x00e1af91, 0x02329125, 0x0008e84d}}, Y: Field{[10]uint32{0x016854c0, 0x0057d566, 0x03a6f49f, 0x01c0dcd2, 0x01413cc3, 0x03dc557c, 0x03817a1a, 0x02e888af, 0x037e0643, 0x00244a5d}}},
+ {X: Field{[10]uint32{0x01149f0b, 0x002b0d5e, 0x039d48a3, 0x00f71102, 0x008cf559, 0x031737b5, 0x01791a18, 0x01937a8d, 0x026058a6, 0x0019967a}}, Y: Field{[10]uint32{0x02f2199d, 0x0031b5ac, 0x031ffc82, 0x036394d3, 0x035300d1, 0x010bf1b0, 0x007b69e7, 0x020dbecd, 0x0305a85d, 0x000ab731}}},
+ {X: Field{[10]uint32{0x03a939fc, 0x0299f746, 0x01033037, 0x021d0508, 0x022899b4, 0x027f4a8f, 0x00e6f6c8, 0x034ed1fb, 0x03c6e1ac, 0x0014b70e}}, Y: Field{[10]uint32{0x03d05746, 0x03a270d0, 0x013e2709, 0x028fb946, 0x031e8f6b, 0x0168f13f, 0x003d9da1, 0x0041fef6, 0x034632ad, 0x00176bac}}},
+ {X: Field{[10]uint32{0x01573551, 0x01dac435, 0x034f6173, 0x03add7c1, 0x01693fbc, 0x03251ef0, 0x01189ba9, 0x015d16f6, 0x029793cd, 0x001492ca}}, Y: Field{[10]uint32{0x00c80b71, 0x011b86ef, 0x02ca02d1, 0x0318f7b3, 0x01a6865a, 0x03a28bed, 0x02b92cc3, 0x03ec6a77, 0x01d6cb23, 0x0027a026}}},
+ {X: Field{[10]uint32{0x0382756e, 0x01e45585, 0x029976fe, 0x02579641, 0x03525b7b, 0x02583a6d, 0x03e6c3dd, 0x01654e48, 0x01a8e2bc, 0x001cc860}}, Y: Field{[10]uint32{0x022e4823, 0x0318869c, 0x01d84eda, 0x0258523c, 0x03e3c42d, 0x02eba62a, 0x03a193c0, 0x03ac290a, 0x02b35592, 0x000945b1}}},
+ {X: Field{[10]uint32{0x0102664b, 0x01c04479, 0x0315d8d5, 0x00f7ddba, 0x0249a7ae, 0x00bbdbf2, 0x038496ac, 0x00e3f7cc, 0x002d926e, 0x002e3a25}}, Y: Field{[10]uint32{0x02faf8eb, 0x00bd7b6f, 0x01d77f79, 0x0105a794, 0x03972486, 0x000c79b1, 0x0270ba22, 0x01623935, 0x016e7dea, 0x001e6435}}},
+ {X: Field{[10]uint32{0x0098e4e5, 0x006de5f8, 0x001ae18d, 0x03989e25, 0x0119e744, 0x037733de, 0x00ac11e7, 0x02affdcb, 0x00f63e73, 0x000513a2}}, Y: Field{[10]uint32{0x0021837c, 0x027e0f0c, 0x02b3b4e0, 0x033df70b, 0x01158705, 0x029518cf, 0x018197fe, 0x03195431, 0x03f35df3, 0x00018f36}}},
+ {X: Field{[10]uint32{0x003a9081, 0x023bef57, 0x0303975b, 0x024da055, 0x0160e5bc, 0x0271cf8f, 0x016a739c, 0x033638b4, 0x03dc489e, 0x00250db8}}, Y: Field{[10]uint32{0x01a7e59c, 0x002fd80e, 0x02d5e03a, 0x02cace99, 0x038e8d76, 0x02a139fd, 0x02a7806e, 0x01baff46, 0x031f50cb, 0x00051814}}},
+ {X: Field{[10]uint32{0x00890db9, 0x01b09d48, 0x01e76193, 0x00177d9a, 0x03e840e0, 0x01c43464, 0x019b01a1, 0x03442d1b, 0x01617a56, 0x00274f09}}, Y: Field{[10]uint32{0x00521ea3, 0x019f38de, 0x02aca044, 0x0337a2bc, 0x001f89ff, 0x00b6a6e5, 0x01fee9b8, 0x03a6f30b, 0x00bc4c4a, 0x001aef70}}},
+ {X: Field{[10]uint32{0x03db76c8, 0x02a1418f, 0x01d2d0dd, 0x02a2c398, 0x02d0aca5, 0x0114f13c, 0x00c6ae0b, 0x01fe2f86, 0x0250f51b, 0x000a7e63}}, Y: Field{[10]uint32{0x00e5d28f, 0x0038f1fc, 0x01186df8, 0x00c2b4de, 0x0358a6ec, 0x01016018, 0x02b8b211, 0x000c71cf, 0x00dcae8e, 0x0036bcef}}},
+ {X: Field{[10]uint32{0x01c22c94, 0x02bc1d13, 0x02e1a538, 0x014a535d, 0x0217a897, 0x0375811b, 0x0005e311, 0x02a8d806, 0x00c2c71d, 0x00359f4c}}, Y: Field{[10]uint32{0x014f670c, 0x00452ee9, 0x03d969c1, 0x02faabd2, 0x00e87ebb, 0x00b81a33, 0x02e690aa, 0x001ec2e4, 0x00e712c8, 0x00122e6c}}},
+ {X: Field{[10]uint32{0x03c81649, 0x019809cb, 0x00334835, 0x02e65e9e, 0x03059aa7, 0x0340e805, 0x032c9b76, 0x030b92dd, 0x03a88ce9, 0x003c8b0a}}, Y: Field{[10]uint32{0x01b7028f, 0x001bf77e, 0x019a3cbc, 0x02a4233e, 0x022d92dc, 0x015c09c2, 0x03a4e0f1, 0x02f85890, 0x0310f190, 0x001aaa79}}},
+ {X: Field{[10]uint32{0x02c5f894, 0x00c25a66, 0x034a5eff, 0x03b73f01, 0x0336b722, 0x03bcc8d3, 0x02533c90, 0x01320f94, 0x018d06b9, 0x0003179c}}, Y: Field{[10]uint32{0x02eef436, 0x02cc5983, 0x01d7e642, 0x027b3111, 0x03f7f8ce, 0x02a71412, 0x024e810f, 0x01986775, 0x0051ccfc, 0x00092584}}},
+ {X: Field{[10]uint32{0x0144d611, 0x019bdcde, 0x014a2c1f, 0x022cccd5, 0x02c291dc, 0x03e1fb93, 0x0218999e, 0x03adf55d, 0x00aac836, 0x0009aa2f}}, Y: Field{[10]uint32{0x03bcecc9, 0x0331976e, 0x027a6c69, 0x03438667, 0x00e57192, 0x00781d8f, 0x022da29c, 0x01998eb3, 0x01ba0723, 0x00308014}}},
+ {X: Field{[10]uint32{0x01fa098c, 0x020cd18b, 0x027aa2c0, 0x03841d93, 0x016bcf65, 0x029925b5, 0x0301ba17, 0x0055166f, 0x0170fb7b, 0x000e238d}}, Y: Field{[10]uint32{0x007be798, 0x0003d7e8, 0x02bdea95, 0x0049176d, 0x0299120d, 0x038d12f9, 0x01561e5a, 0x003fc151, 0x0122a2eb, 0x000b5383}}},
+ {X: Field{[10]uint32{0x01250709, 0x03e3dc85, 0x03fca7a7, 0x0070ba95, 0x0200da2d, 0x03aacb1b, 0x0227efa4, 0x01e0f88c, 0x03abb5a0, 0x001a0626}}, Y: Field{[10]uint32{0x007ae856, 0x02e0d34f, 0x00855a0e, 0x005cc34c, 0x003e42d5, 0x0145117e, 0x00954f62, 0x034fea85, 0x01833694, 0x002f4c2f}}},
+ {X: Field{[10]uint32{0x012190ab, 0x0364344a, 0x03d42b88, 0x020ff5ec, 0x01ea6ff6, 0x00106289, 0x03b7aa90, 0x01de5659, 0x0023bb34, 0x00190b82}}, Y: Field{[10]uint32{0x03b4000f, 0x018e71fc, 0x00903210, 0x02418eda, 0x01286b46, 0x00e76bce, 0x02748926, 0x0014bf8d, 0x02a786ec, 0x0036dcf7}}},
+ {X: Field{[10]uint32{0x00924afa, 0x01a0d719, 0x02027f91, 0x00bf4e61, 0x037f4eff, 0x0225abea, 0x01addea5, 0x015415d4, 0x0281e5bf, 0x0026adba}}, Y: Field{[10]uint32{0x0229bb6c, 0x0001eb1d, 0x02f2b47d, 0x026ca659, 0x03dd951c, 0x03392cf9, 0x0329efcb, 0x02979cbf, 0x02a74870, 0x000e301a}}},
+ {X: Field{[10]uint32{0x014a8ee7, 0x020563ba, 0x01a62dd1, 0x0056f780, 0x01e059e0, 0x0227993e, 0x0298248e, 0x03da71c6, 0x01aee567, 0x002c2601}}, Y: Field{[10]uint32{0x0183d221, 0x01eca386, 0x0212c814, 0x02a038f6, 0x03dea885, 0x034882b0, 0x01382eb6, 0x004bbf31, 0x016a7ec9, 0x0018aba8}}},
+ {X: Field{[10]uint32{0x0107e6e5, 0x01306f00, 0x03b5a82b, 0x03c25d6f, 0x0291d6b5, 0x020c5a46, 0x018bfbc9, 0x03568d29, 0x025b636e, 0x000f58ca}}, Y: Field{[10]uint32{0x03395a1c, 0x033e8c73, 0x01aef682, 0x0273c581, 0x027a7ee0, 0x032d3525, 0x036ba0f9, 0x005b64ba, 0x009e75bf, 0x0015de91}}},
+ {X: Field{[10]uint32{0x00cef707, 0x0069a5d0, 0x0150ab1c, 0x00d4e8db, 0x03b51e36, 0x025ab22e, 0x02db69dd, 0x017fcb3b, 0x03f0f70d, 0x001ae086}}, Y: Field{[10]uint32{0x02d12e5d, 0x00ede271, 0x0347a6d8, 0x02d37e8b, 0x00006371, 0x03377aa5, 0x00286745, 0x03048220, 0x0211993f, 0x001484b3}}},
+ {X: Field{[10]uint32{0x01728b23, 0x036e1511, 0x0196c789, 0x00c32476, 0x02dc33b3, 0x03364e53, 0x027740b5, 0x03f82e14, 0x01514496, 0x002fca52}}, Y: Field{[10]uint32{0x0112782c, 0x009cac7a, 0x03baec13, 0x00aaed06, 0x034c53bc, 0x004378e3, 0x03f745c4, 0x0339e8d0, 0x01e5da35, 0x001e42bb}}},
+ {X: Field{[10]uint32{0x0175ec80, 0x02d80d47, 0x02f06742, 0x026c453d, 0x024906f6, 0x01126251, 0x0268267c, 0x025a2859, 0x00c382bf, 0x002954d5}}, Y: Field{[10]uint32{0x025962e8, 0x0298c332, 0x00c88179, 0x025b460a, 0x019dd6d2, 0x0337ed6c, 0x03319676, 0x00697ca2, 0x01dc4566, 0x000a026f}}},
+ {X: Field{[10]uint32{0x0249a693, 0x03e8d109, 0x019f45a6, 0x02be13d4, 0x03b893f8, 0x03ed2603, 0x03a1574f, 0x020c46ef, 0x0036abcd, 0x003f0054}}, Y: Field{[10]uint32{0x019db819, 0x03d9dafc, 0x00789657, 0x03280f9f, 0x02f5542a, 0x026b34fd, 0x01cd0042, 0x03812ce1, 0x02781946, 0x00343da8}}},
+ {X: Field{[10]uint32{0x019a7aae, 0x01e26003, 0x024eab75, 0x01b1447e, 0x0059caea, 0x012bef89, 0x02a799fb, 0x03cd489c, 0x010d9f81, 0x00185910}}, Y: Field{[10]uint32{0x025a7966, 0x031c54fb, 0x01ac0abe, 0x03d7539f, 0x034982ff, 0x016e4e5b, 0x03ee69c9, 0x027f34f2, 0x00800ba1, 0x0024af05}}},
+ {X: Field{[10]uint32{0x030b5f2d, 0x003f2145, 0x01fc6faa, 0x01f47b01, 0x016e2591, 0x0060ad3d, 0x00f9a9b3, 0x035cddca, 0x01358de9, 0x003be059}}, Y: Field{[10]uint32{0x007ec595, 0x0320fa9d, 0x03d7e155, 0x03732c71, 0x010f1721, 0x02dbf4cb, 0x0249df88, 0x02a71141, 0x0026403c, 0x00370dc9}}},
+ {X: Field{[10]uint32{0x0187a8ed, 0x03029222, 0x032e2642, 0x011a107a, 0x00178c56, 0x01c34b10, 0x0304e681, 0x00db7771, 0x00b989a4, 0x0010a30d}}, Y: Field{[10]uint32{0x02eebe06, 0x00deaf4e, 0x01f4f512, 0x01f9c651, 0x003836f9, 0x010da58d, 0x004dc3e6, 0x01191b28, 0x0158251c, 0x002c7c90}}},
+ {X: Field{[10]uint32{0x01417a9e, 0x03f88199, 0x024a55ac, 0x01cdfb69, 0x025f19da, 0x02faef5a, 0x01e62437, 0x0055ed05, 0x0382f909, 0x001bad85}}, Y: Field{[10]uint32{0x00577b72, 0x013bfffa, 0x00c3904c, 0x03b8a43b, 0x02af03ed, 0x026710bd, 0x012f168f, 0x03cac5b2, 0x0146baed, 0x0013f9f1}}},
+ {X: Field{[10]uint32{0x0376fa4b, 0x01c718a8, 0x01646e43, 0x01cf4530, 0x03cb6f95, 0x02338c77, 0x03830099, 0x013fb17b, 0x02f1466d, 0x00264b82}}, Y: Field{[10]uint32{0x01f9e825, 0x01a4354a, 0x01ae3871, 0x0398c75e, 0x0150d000, 0x002590d9, 0x001e3a90, 0x025acbac, 0x02691e43, 0x003438f6}}},
+ {X: Field{[10]uint32{0x01721d11, 0x0210e0c1, 0x039c3010, 0x000e33d6, 0x00513e99, 0x00925a4d, 0x00f31d11, 0x0001e3c8, 0x024badc7, 0x003fb6d5}}, Y: Field{[10]uint32{0x00157a39, 0x01237bce, 0x00b2fa94, 0x021f5502, 0x02ba26ae, 0x015fc580, 0x015d97d6, 0x010833cb, 0x024957e8, 0x0006a38a}}},
+ {X: Field{[10]uint32{0x033b24bd, 0x010c3401, 0x03575e54, 0x009989d2, 0x023e6832, 0x03109245, 0x007088d3, 0x02746049, 0x028a4dd8, 0x003cfc81}}, Y: Field{[10]uint32{0x03a2bfa8, 0x0069fdde, 0x00f0e75c, 0x017f87c7, 0x0312381c, 0x002a9f8c, 0x026ab1ee, 0x03d18850, 0x011900a7, 0x003caaaf}}},
+ {X: Field{[10]uint32{0x00a13680, 0x00c1dc8f, 0x02e02b3d, 0x016364f6, 0x015b6aa4, 0x01daa160, 0x024e7c14, 0x028d6637, 0x025e4217, 0x000cae48}}, Y: Field{[10]uint32{0x02133802, 0x00d74396, 0x008a396f, 0x0051cce0, 0x03532462, 0x0341c7a5, 0x0185683d, 0x018d004a, 0x00042685, 0x001d19ba}}},
+ {X: Field{[10]uint32{0x02e64a8a, 0x0266e7f6, 0x01c7fc62, 0x024fe893, 0x01ee6c6b, 0x03ad64be, 0x03899792, 0x035ac13f, 0x0287385e, 0x00214022}}, Y: Field{[10]uint32{0x0104a2df, 0x01b8a129, 0x023622ae, 0x023e8943, 0x0284b5b3, 0x0020961d, 0x01569f6c, 0x0015dbee, 0x022b8a5b, 0x0007c9e7}}},
+ {X: Field{[10]uint32{0x002effd4, 0x0114bdaa, 0x030e9e44, 0x01883c04, 0x010b8353, 0x03f126ff, 0x00edac7c, 0x02ac2fb2, 0x0033ebbe, 0x00136b1e}}, Y: Field{[10]uint32{0x023c740a, 0x03426a80, 0x001f00cc, 0x02d76e3b, 0x01133dc3, 0x02d08df7, 0x014ada57, 0x02a9a184, 0x0170f230, 0x003f2746}}},
+ {X: Field{[10]uint32{0x016dbeeb, 0x03cc40b5, 0x03d71031, 0x010406e4, 0x034b44de, 0x014d77d6, 0x0340226e, 0x01755066, 0x008145a6, 0x0026dd56}}, Y: Field{[10]uint32{0x0089a02d, 0x03674478, 0x00e1fa1e, 0x0185679f, 0x01c15160, 0x036ee8ed, 0x03382907, 0x00dedf26, 0x01710d69, 0x00340c90}}},
+ {X: Field{[10]uint32{0x03bc8bdd, 0x00fb66b2, 0x004bdb58, 0x03291877, 0x0198b525, 0x02d9176d, 0x02e6e8b1, 0x029f5e99, 0x02b92592, 0x0006f5b3}}, Y: Field{[10]uint32{0x0229944c, 0x0242b126, 0x01e4e7b7, 0x03955473, 0x015a1c4c, 0x0296dc15, 0x037abb10, 0x022fa922, 0x028784a9, 0x00269677}}},
+ {X: Field{[10]uint32{0x015b56ee, 0x03d4d56f, 0x00637268, 0x01f62d11, 0x016b3a3c, 0x03f9e1ba, 0x025b08a7, 0x00250594, 0x02b93b36, 0x00096a2c}}, Y: Field{[10]uint32{0x025f22ec, 0x0393a2e5, 0x0240ac45, 0x02bb7dc6, 0x0045f131, 0x03b1b154, 0x01027e63, 0x01a1ff6f, 0x00f75734, 0x000f1633}}},
+ {X: Field{[10]uint32{0x03ed9f5f, 0x02c87945, 0x003c0d88, 0x02aa3695, 0x02bf5a1c, 0x0148975a, 0x01a57671, 0x00fbec88, 0x003327c3, 0x000912ca}}, Y: Field{[10]uint32{0x01f53d7d, 0x027c2ff0, 0x000dbc22, 0x0398110e, 0x0237f83c, 0x00a7d404, 0x02cec92a, 0x02254d6b, 0x02ace48d, 0x0008800d}}},
+ {X: Field{[10]uint32{0x025dd1b7, 0x01928d4c, 0x01e64e97, 0x00775ab0, 0x0291f0cc, 0x0159a5e3, 0x0042d13e, 0x01e415ad, 0x000f27b8, 0x001be5eb}}, Y: Field{[10]uint32{0x03433d32, 0x0034ffe7, 0x01c814dd, 0x01697cb6, 0x007e937f, 0x0246ce28, 0x02ce1cc6, 0x031c1c89, 0x030cfac6, 0x0020f1b9}}},
+ {X: Field{[10]uint32{0x021dce1f, 0x03120055, 0x02badc94, 0x0352c88d, 0x012d6abc, 0x01153c98, 0x00265cad, 0x0138b6ea, 0x020feb01, 0x001cb175}}, Y: Field{[10]uint32{0x03978fe2, 0x02d03698, 0x00bf0690, 0x02db491b, 0x0397b281, 0x03174eb2, 0x03282163, 0x00658ece, 0x02197ef9, 0x0038c466}}},
+ {X: Field{[10]uint32{0x01f33825, 0x0367b435, 0x006ea707, 0x0252aba3, 0x002af32b, 0x0110686c, 0x018659df, 0x000619a6, 0x01a001b1, 0x002a5b4b}}, Y: Field{[10]uint32{0x02513f9f, 0x03a04202, 0x016906c0, 0x01c45aa4, 0x025659ea, 0x0230dc2a, 0x03cfd412, 0x0148d67d, 0x018305da, 0x0019835f}}},
+ {X: Field{[10]uint32{0x03e3c4fa, 0x00537156, 0x00875173, 0x009e6431, 0x03d906aa, 0x01d8599d, 0x001d2008, 0x017b3066, 0x03634d81, 0x000b339b}}, Y: Field{[10]uint32{0x02ba4b50, 0x008cc8ef, 0x036e5d3c, 0x01d327b2, 0x01b33cb2, 0x03f4151d, 0x02f997a0, 0x027a446d, 0x00ddbd59, 0x00185484}}},
+ {X: Field{[10]uint32{0x0245f0c4, 0x0226f5a9, 0x02f4660e, 0x03f1d628, 0x024558fa, 0x02e354ec, 0x00602d98, 0x034e6766, 0x0084525d, 0x00264ac0}}, Y: Field{[10]uint32{0x00e2f98d, 0x01935869, 0x02a572da, 0x0039657b, 0x02f5a5c7, 0x00508180, 0x005f40b1, 0x0168a631, 0x00d22654, 0x0020f2a6}}},
+ {X: Field{[10]uint32{0x03eb7357, 0x03dd9ba6, 0x0388e44e, 0x027ad17a, 0x01c6b0c6, 0x03f52ddf, 0x0361ee43, 0x01867f31, 0x03453089, 0x0010d3be}}, Y: Field{[10]uint32{0x029291ea, 0x027bf08a, 0x01bd001e, 0x03220c2e, 0x0126967a, 0x00db02fa, 0x025586d2, 0x02e4b965, 0x016d01c0, 0x000f6ec3}}},
+ {X: Field{[10]uint32{0x03fbc156, 0x037171f8, 0x02b884bd, 0x02271370, 0x00f0dbf5, 0x00fbf8c1, 0x02e47359, 0x00cc1828, 0x01ad2c68, 0x0002885e}}, Y: Field{[10]uint32{0x02033c1f, 0x001ebebd, 0x00b20192, 0x008c21b7, 0x0288a2d2, 0x036d8274, 0x00e6dfab, 0x0005da86, 0x01f8ab98, 0x003b914e}}},
+ {X: Field{[10]uint32{0x0305a2e1, 0x00e41ebb, 0x00f146d6, 0x00a999c6, 0x02a445f2, 0x024887bd, 0x012bb400, 0x03851ea9, 0x001ed3e1, 0x000e4d02}}, Y: Field{[10]uint32{0x03b5b3c7, 0x02aca429, 0x0206214f, 0x03f9d4b1, 0x03d3a9fe, 0x03c7a566, 0x01e79d49, 0x006de882, 0x02563139, 0x002f0dc1}}},
+ {X: Field{[10]uint32{0x0395d8ef, 0x022381f7, 0x013db396, 0x0388414a, 0x03f1f3f7, 0x03310957, 0x00383546, 0x02e4e401, 0x00e159a2, 0x000d6f09}}, Y: Field{[10]uint32{0x0223ae15, 0x03b42a24, 0x02dfa246, 0x034e2127, 0x00e87e0c, 0x0159c93e, 0x02beb5c0, 0x02636bde, 0x00700a96, 0x0037b87f}}},
+ {X: Field{[10]uint32{0x0148127d, 0x0394962e, 0x01b48bc7, 0x0386f2b9, 0x0163aa14, 0x00176399, 0x012a0eef, 0x02d1ce15, 0x035c251f, 0x003d7479}}, Y: Field{[10]uint32{0x037170fe, 0x0084aa1b, 0x036fe92d, 0x03d02fde, 0x03e7d586, 0x00a614a2, 0x0009134d, 0x03c1623d, 0x01bc7044, 0x00389830}}},
+ {X: Field{[10]uint32{0x03eb121c, 0x03687301, 0x00f54d12, 0x02cd80d4, 0x03f9617b, 0x02b2ddd0, 0x01170dd6, 0x00a0bc28, 0x02d36fed, 0x003b829d}}, Y: Field{[10]uint32{0x020ba5b1, 0x03debc50, 0x035166db, 0x01612d0a, 0x024e56c4, 0x03e78432, 0x02135eff, 0x02583c39, 0x02dbeba6, 0x003e33f0}}},
+ {X: Field{[10]uint32{0x00a689d8, 0x01e43467, 0x01676f94, 0x03d85b69, 0x004d1879, 0x005dd345, 0x00ab377f, 0x01d99057, 0x03cf7892, 0x00278ee1}}, Y: Field{[10]uint32{0x02b3b577, 0x02a39b6e, 0x03482266, 0x025ad151, 0x027a9c2d, 0x006c7c9a, 0x033b0c2b, 0x028ab2c9, 0x0122da3c, 0x003e3cd1}}},
+ {X: Field{[10]uint32{0x034868f0, 0x016cc43a, 0x0115286e, 0x031d3d89, 0x0012f409, 0x019ae2d4, 0x005b89ee, 0x010b00f2, 0x016fd089, 0x00389bc9}}, Y: Field{[10]uint32{0x02f210f9, 0x03a2fed5, 0x012f21bb, 0x00fcf13c, 0x033552c2, 0x00f26c49, 0x008c6562, 0x0127e9b4, 0x00d96fea, 0x002eacf1}}},
+ {X: Field{[10]uint32{0x011da6c2, 0x01626000, 0x0021cf08, 0x014baa31, 0x01a3f5c8, 0x03c1eaf1, 0x00b67634, 0x020e6345, 0x0046a5d3, 0x0022b1d0}}, Y: Field{[10]uint32{0x0229b3dc, 0x0174c91c, 0x0288e149, 0x02543210, 0x024a71af, 0x00d500b0, 0x00f59160, 0x00c66215, 0x0393f56e, 0x00348329}}},
+ {X: Field{[10]uint32{0x01932bd0, 0x01dea495, 0x03a83ac6, 0x02fecb20, 0x02753928, 0x03a074a7, 0x01531a86, 0x0253324f, 0x00956346, 0x0016c038}}, Y: Field{[10]uint32{0x00a99656, 0x00fbf598, 0x032d64bc, 0x00cdd200, 0x0242882b, 0x0003561f, 0x02daf180, 0x03123185, 0x027a8071, 0x00234bc9}}},
+ {X: Field{[10]uint32{0x0211f0b1, 0x00d5fe27, 0x02a872c0, 0x026ad3a7, 0x01546ffb, 0x02ca9984, 0x01ae4ba7, 0x0175eeac, 0x00c4080c, 0x00058864}}, Y: Field{[10]uint32{0x02423525, 0x024c0c24, 0x019d8796, 0x00ba6317, 0x01bb8419, 0x00ef731b, 0x006d7a31, 0x022a7396, 0x01041244, 0x0036d788}}},
+ {X: Field{[10]uint32{0x01b145b1, 0x0299db21, 0x0236cf26, 0x03726bfd, 0x03476774, 0x001805f6, 0x03f8520e, 0x020fa021, 0x0021b4b3, 0x003daa11}}, Y: Field{[10]uint32{0x0037a3b3, 0x01d2a010, 0x020a80ed, 0x0056fe23, 0x02937172, 0x03a3f87b, 0x03a2da82, 0x01c3b401, 0x01a95967, 0x0014131c}}},
+ {X: Field{[10]uint32{0x032dd6e5, 0x01d66a64, 0x0013455a, 0x02795727, 0x0183e591, 0x0127e423, 0x038937da, 0x034f62cf, 0x0142f0b5, 0x0007c0b4}}, Y: Field{[10]uint32{0x01863e65, 0x0220b68e, 0x00348fb3, 0x017d22b8, 0x03fbc903, 0x036df27f, 0x02c2eae5, 0x01b7dd43, 0x03338ed3, 0x0039a972}}},
+ {X: Field{[10]uint32{0x0178899f, 0x01889e07, 0x03a0434a, 0x03d44b5d, 0x0268e29b, 0x00d21295, 0x02e38c37, 0x0287fa8a, 0x016bc326, 0x00187d36}}, Y: Field{[10]uint32{0x03b4aab8, 0x00deb4b5, 0x02b38b3a, 0x012cdd79, 0x02217272, 0x00603097, 0x03970216, 0x016b1d93, 0x03386200, 0x001947bd}}},
+ {X: Field{[10]uint32{0x01c11616, 0x005f2b8c, 0x019c19c9, 0x00ac6be8, 0x007c7ebe, 0x034a45b8, 0x008a71f8, 0x0179e602, 0x000d623c, 0x002e9f57}}, Y: Field{[10]uint32{0x015f5a51, 0x016c1f6f, 0x00958ce4, 0x039f99b2, 0x01a1ec37, 0x03ecd565, 0x02551530, 0x00fdb1e1, 0x03400d7e, 0x00369027}}},
+ {X: Field{[10]uint32{0x025bdb09, 0x01be7464, 0x003c3bb1, 0x029a6af1, 0x01fe5a92, 0x036f0f86, 0x02a68ee6, 0x025df1b9, 0x0190eacb, 0x0022e429}}, Y: Field{[10]uint32{0x035df718, 0x00d4603e, 0x039a92a0, 0x01d760a6, 0x024d01ef, 0x01d1a9d4, 0x02734e1f, 0x0175642b, 0x0342ef65, 0x002973d7}}},
+ {X: Field{[10]uint32{0x03f4fe4c, 0x03a6ab37, 0x025b71c9, 0x03ffd56c, 0x01f0d994, 0x02d6b85c, 0x00294a3c, 0x0133f73a, 0x02272191, 0x0021fcd4}}, Y: Field{[10]uint32{0x00babb2f, 0x00930a19, 0x03552dda, 0x00fc88a8, 0x01f26b28, 0x026a44cd, 0x027c1efb, 0x031787ab, 0x01af530b, 0x00331c74}}},
+ {X: Field{[10]uint32{0x0377a15d, 0x03bb92b2, 0x0358b6c1, 0x027c61fb, 0x0383d550, 0x014c3c7c, 0x00ffe8a5, 0x014566fc, 0x0136ba40, 0x002bba93}}, Y: Field{[10]uint32{0x00d3ac1a, 0x01581e98, 0x033f78d5, 0x01f738da, 0x0196958f, 0x022aa8a3, 0x03031c24, 0x00f7e1f4, 0x01eae740, 0x0036d58f}}},
+ {X: Field{[10]uint32{0x03cc7111, 0x00e2966b, 0x02db62a3, 0x00d95dd3, 0x00d8dda4, 0x02016353, 0x006f1ef0, 0x03ae755f, 0x018d3996, 0x000c03fa}}, Y: Field{[10]uint32{0x00c40e77, 0x01962c8e, 0x025e3a49, 0x009b49c8, 0x01d2e6e2, 0x010eddbf, 0x037913c1, 0x029033e4, 0x00178fdd, 0x00345228}}},
+ {X: Field{[10]uint32{0x01c19fdb, 0x0017d0a6, 0x0073aa50, 0x006ddb53, 0x03d01e9c, 0x019d0f93, 0x01095a1f, 0x0051ba0e, 0x035e22cd, 0x0031c02b}}, Y: Field{[10]uint32{0x014b32c0, 0x0151aa86, 0x011d28b5, 0x024b0b54, 0x010d4a30, 0x02dba95a, 0x02b1fc6b, 0x00709c9e, 0x0181b1f0, 0x000ff800}}},
+ {X: Field{[10]uint32{0x0350bc60, 0x030dd233, 0x034a5941, 0x01d7e5ae, 0x0194228f, 0x0211214e, 0x02147af3, 0x0104e06a, 0x00e117b9, 0x00340f42}}, Y: Field{[10]uint32{0x0096e31d, 0x001c6cea, 0x000fa10e, 0x01dba451, 0x01f47dd0, 0x015076a3, 0x00bfbfdc, 0x02f314b8, 0x03fd2785, 0x0016c467}}},
+ {X: Field{[10]uint32{0x022bd361, 0x017697f0, 0x03832b39, 0x00fb2533, 0x03ea9c98, 0x02be0697, 0x017fadb6, 0x0082e15b, 0x00fa17a5, 0x001b19c4}}, Y: Field{[10]uint32{0x02804941, 0x028e4f3c, 0x00ad64fb, 0x002097b5, 0x01b036a4, 0x00225ec1, 0x01964f3c, 0x0207a906, 0x012636e2, 0x0036d3bf}}},
+ {X: Field{[10]uint32{0x03d91bbb, 0x03cfef68, 0x021d9b46, 0x03a653e1, 0x025ea3bf, 0x00229766, 0x02cb900d, 0x01e859ad, 0x02399df4, 0x0035ed70}}, Y: Field{[10]uint32{0x00efe8ba, 0x03565f59, 0x03710cff, 0x0194a702, 0x03a3c8a0, 0x0253ff87, 0x003494d7, 0x03097a72, 0x034e4ab1, 0x003b5e47}}},
+ {X: Field{[10]uint32{0x00f66c06, 0x02a7a394, 0x029524ab, 0x008c8d06, 0x0253ff2f, 0x03aaa8fb, 0x01eb8dcc, 0x02054b8b, 0x01ab8f72, 0x00243da6}}, Y: Field{[10]uint32{0x02fce91d, 0x0320b27f, 0x0008e641, 0x0339b98f, 0x00561558, 0x00da487e, 0x006d80ec, 0x004aee75, 0x03a77f53, 0x0022f430}}},
+ {X: Field{[10]uint32{0x01fb65cc, 0x02b9c6a3, 0x0344abb9, 0x0338ada1, 0x0137557d, 0x0285bd5a, 0x01eaead6, 0x0370d324, 0x023e3d7a, 0x001343ab}}, Y: Field{[10]uint32{0x03a3de5a, 0x01b8bc87, 0x02a5352c, 0x02641425, 0x026e874c, 0x010aa94b, 0x019a6851, 0x021cc6ea, 0x0006a950, 0x00205ac2}}},
+ {X: Field{[10]uint32{0x02f7de62, 0x023df26c, 0x031d0243, 0x0266381a, 0x01689a23, 0x00c54617, 0x034f8153, 0x0212637e, 0x02ddec31, 0x0011b367}}, Y: Field{[10]uint32{0x021f29bc, 0x0211be95, 0x0100810a, 0x01a0491f, 0x03e0d5d1, 0x0204ce22, 0x0164a8bb, 0x01e1d232, 0x01a3d5fd, 0x000ed6f0}}},
+ {X: Field{[10]uint32{0x02ff730b, 0x013ae0c0, 0x000aebce, 0x03f88696, 0x00653748, 0x01154b90, 0x0176297b, 0x02aadc71, 0x000e3f6e, 0x00012ab2}}, Y: Field{[10]uint32{0x008c7954, 0x00d4e61b, 0x020509e4, 0x02a53c77, 0x0240d331, 0x02b1a811, 0x03e2dd5b, 0x03d1aa03, 0x000d8014, 0x000f50a8}}},
+ {X: Field{[10]uint32{0x002a4114, 0x01a06956, 0x006374bb, 0x03d8bb2f, 0x02e03e96, 0x006664de, 0x01e45730, 0x0270244c, 0x0261b73d, 0x00166fa9}}, Y: Field{[10]uint32{0x01afa47d, 0x038f4b2c, 0x035c130b, 0x026af576, 0x00d9f263, 0x03a24541, 0x01062e78, 0x00b0ba07, 0x03e8ee8a, 0x000c6882}}},
+ {X: Field{[10]uint32{0x00ca6037, 0x024d59e4, 0x003385e2, 0x02929387, 0x029ee089, 0x03b1e937, 0x019acd3f, 0x03ba48ac, 0x006588b2, 0x0001ffa4}}, Y: Field{[10]uint32{0x01e5c128, 0x03a4da4d, 0x032a7c69, 0x018f9fb1, 0x002659b7, 0x001d8ffd, 0x01eb3262, 0x00fbac7d, 0x0190c5f4, 0x0037ed17}}},
+ {X: Field{[10]uint32{0x01322157, 0x03254625, 0x0262f19d, 0x011fcb20, 0x01f3a5fc, 0x03e3cbf4, 0x00b5e4ac, 0x01e225e1, 0x03913227, 0x0036ce43}}, Y: Field{[10]uint32{0x0290bbad, 0x01872b35, 0x02dc8d5d, 0x0302b7a0, 0x012aaeb5, 0x0298f6c6, 0x00fd7d4d, 0x020c7c25, 0x015b241c, 0x0010d925}}},
+ {X: Field{[10]uint32{0x0391ebc8, 0x017501dc, 0x03c29e6e, 0x02980714, 0x00985732, 0x02ba3de3, 0x02a9e615, 0x0066b1f6, 0x0266e5fc, 0x000d3740}}, Y: Field{[10]uint32{0x01dd797b, 0x007a87f1, 0x02ddb661, 0x01ad148c, 0x0077a5db, 0x030ad22f, 0x0013b1d2, 0x03f80398, 0x02d80e73, 0x0030b5ad}}},
+ {X: Field{[10]uint32{0x011772ab, 0x038f7c67, 0x004db336, 0x0314ca3e, 0x015e6c7e, 0x01b8bbe5, 0x01fcfbe1, 0x0182374f, 0x032b7e31, 0x003ba9fd}}, Y: Field{[10]uint32{0x014004bb, 0x0034c354, 0x029b88af, 0x015831af, 0x03172195, 0x00e6a9d1, 0x02a6d947, 0x02930d23, 0x00f1ccde, 0x002598b2}}},
+ {X: Field{[10]uint32{0x00c391f2, 0x00f9e8e2, 0x007fc10d, 0x0190db64, 0x019376d2, 0x03a1584a, 0x01e412dd, 0x003ace4f, 0x007af1b1, 0x0031abc2}}, Y: Field{[10]uint32{0x00825144, 0x02d2b9d4, 0x00959eee, 0x0090b185, 0x01e5ff98, 0x033faae9, 0x018847a9, 0x01915e2b, 0x022e3185, 0x002ea675}}},
+ {X: Field{[10]uint32{0x02ccefc7, 0x0132667f, 0x01518136, 0x02fd434d, 0x02aff37f, 0x032d0fd6, 0x033d034b, 0x015d02ad, 0x03356c71, 0x003ab8d1}}, Y: Field{[10]uint32{0x02fe4703, 0x03998e64, 0x01a9879f, 0x01b6d87f, 0x03968525, 0x02513dd2, 0x02f15d84, 0x03d91735, 0x0075da8b, 0x002e4e1b}}},
+ {X: Field{[10]uint32{0x0340438f, 0x0093fdfe, 0x0046165c, 0x038c0764, 0x0241b68a, 0x01392589, 0x039a27e6, 0x023d5013, 0x00250f4d, 0x00129523}}, Y: Field{[10]uint32{0x016f6d10, 0x014bca06, 0x01578382, 0x00570a83, 0x014c2742, 0x038a698f, 0x01e40c67, 0x0233dbbd, 0x0085bd60, 0x002ba7cb}}},
+ {X: Field{[10]uint32{0x00f744af, 0x02bcac3b, 0x01a53f43, 0x03678603, 0x03453318, 0x032cf02f, 0x019743d7, 0x0116a3a8, 0x0279dd65, 0x00186495}}, Y: Field{[10]uint32{0x03cb184d, 0x002913ca, 0x011a1726, 0x0075138f, 0x0347fc55, 0x00f92a87, 0x02c062ca, 0x014dcba7, 0x0184d721, 0x00281a0b}}},
+ {X: Field{[10]uint32{0x0137ea2a, 0x03c05424, 0x004fe025, 0x02e14bfc, 0x0250267a, 0x01097bd8, 0x03a260d2, 0x02addb53, 0x02869574, 0x003876d7}}, Y: Field{[10]uint32{0x011905a8, 0x010f2054, 0x0277483f, 0x012fed25, 0x00836e20, 0x00318494, 0x01a99a1d, 0x03de8db0, 0x00219fd5, 0x00323abd}}},
+ {X: Field{[10]uint32{0x0248c7f1, 0x027498f4, 0x004a7d2f, 0x02473f08, 0x0038e636, 0x007f613c, 0x00ab862a, 0x00e108a8, 0x03ca7392, 0x000c18b2}}, Y: Field{[10]uint32{0x019670cb, 0x03011ff7, 0x02b2cf55, 0x03c7327f, 0x00721a85, 0x038610c4, 0x0289eee1, 0x00a5c373, 0x02570e3f, 0x0023c44b}}},
+ {X: Field{[10]uint32{0x01a4f739, 0x00500113, 0x00f4e4e8, 0x03ca5dd9, 0x039da74f, 0x02d4fe54, 0x007a861e, 0x00dbf3bb, 0x03ccaa97, 0x0019f0e4}}, Y: Field{[10]uint32{0x01853203, 0x011f1352, 0x013942d1, 0x03551b1f, 0x0033ac24, 0x03566d49, 0x00009d5a, 0x017f88be, 0x01d09a16, 0x0024f4ca}}},
+ {X: Field{[10]uint32{0x0099bf5e, 0x00c213fa, 0x03728f94, 0x02c43a2e, 0x01ac5bc5, 0x0160731f, 0x01a5619d, 0x00861fb9, 0x01f236cf, 0x00319d1c}}, Y: Field{[10]uint32{0x01e2c513, 0x039a1223, 0x00aea62f, 0x00dfeda1, 0x003a533f, 0x0132ef32, 0x03c32477, 0x00c63650, 0x009c787b, 0x001d7243}}},
+ {X: Field{[10]uint32{0x00ed1b52, 0x01fa62b9, 0x03070182, 0x03301951, 0x0112143a, 0x0096aab1, 0x033d7a40, 0x02376484, 0x03efd593, 0x00354057}}, Y: Field{[10]uint32{0x00f03d6b, 0x01b0975f, 0x0379f400, 0x0182de63, 0x00e99668, 0x00761177, 0x037c0d65, 0x00dbc570, 0x0216a022, 0x00110c15}}},
+ {X: Field{[10]uint32{0x0164f2d2, 0x024a73a0, 0x003b73c1, 0x002473d4, 0x02243ca3, 0x0000bb66, 0x008ed564, 0x0258572d, 0x0365aaa8, 0x002baf2f}}, Y: Field{[10]uint32{0x00b3f019, 0x01f4dff9, 0x01ee535e, 0x015554e6, 0x02a6ee7f, 0x027223a1, 0x020305ba, 0x03b8ad08, 0x025d1a30, 0x0013f07c}}},
+ {X: Field{[10]uint32{0x03b30e43, 0x03c03ffa, 0x00d8105e, 0x002ed4dc, 0x01bb8f98, 0x00ca8e74, 0x02d68219, 0x037bbd26, 0x02171727, 0x000572c5}}, Y: Field{[10]uint32{0x000ebd7a, 0x039f4afe, 0x02d93b1f, 0x01ad243a, 0x012dfff8, 0x01cd2cd3, 0x035c1b99, 0x0014ffb8, 0x008287fc, 0x00192b63}}},
+ {X: Field{[10]uint32{0x0049c123, 0x000c2013, 0x026986bd, 0x008c18f8, 0x0119fb25, 0x00948468, 0x03b88a55, 0x0359d026, 0x009e8530, 0x00350108}}, Y: Field{[10]uint32{0x00a7a128, 0x03318890, 0x032c562b, 0x02fa28d0, 0x0046ef87, 0x02d68c9f, 0x01062753, 0x017467a1, 0x0168fdb8, 0x000dd8ff}}},
+ {X: Field{[10]uint32{0x03ffdd96, 0x03a4e066, 0x02a4ed42, 0x025fd08a, 0x00d40b44, 0x030c9eb1, 0x02330c2f, 0x00a12563, 0x00cf0c23, 0x003ceafe}}, Y: Field{[10]uint32{0x015b0d5d, 0x0083a69f, 0x02061cc7, 0x03b1f33c, 0x01d1dfe9, 0x035e9d88, 0x01076432, 0x00c9f0fa, 0x0305d831, 0x00142187}}},
+ {X: Field{[10]uint32{0x00874dea, 0x01ffdbdf, 0x03b4e57b, 0x011b0f92, 0x035cf92b, 0x0146e748, 0x004755a6, 0x036fecfe, 0x00932ee9, 0x001e28ca}}, Y: Field{[10]uint32{0x02c85895, 0x005fdae6, 0x02473b46, 0x02ca4b06, 0x01b3c36e, 0x0257aadf, 0x02ccd874, 0x0087d1ba, 0x003a9667, 0x002496de}}},
+ {X: Field{[10]uint32{0x0350cd4a, 0x000c8269, 0x01e8df65, 0x0390fb55, 0x011b7d15, 0x01eed9e3, 0x001ed91a, 0x01be286b, 0x010f5d14, 0x00205948}}, Y: Field{[10]uint32{0x015d260d, 0x02e161e4, 0x0363a384, 0x019a87b6, 0x03859541, 0x00e5b1c4, 0x0145875e, 0x00af732f, 0x013a19e2, 0x003f8e43}}},
+ {X: Field{[10]uint32{0x01fe3f09, 0x03295fdf, 0x032f3633, 0x007f3c01, 0x00ba7343, 0x00fbe866, 0x0317dd6f, 0x00f4d337, 0x01e86c2f, 0x001d49a7}}, Y: Field{[10]uint32{0x004805bd, 0x03454f9c, 0x020b1f5e, 0x027c77c6, 0x00f463f3, 0x017ba214, 0x006e3dbd, 0x009fb111, 0x025fd199, 0x002c58a9}}},
+ {X: Field{[10]uint32{0x027145b0, 0x01394490, 0x02b38954, 0x02dea405, 0x03c520a7, 0x013ecbfd, 0x01c4e104, 0x0252796e, 0x028fb393, 0x00178db3}}, Y: Field{[10]uint32{0x0011614c, 0x0269381e, 0x03a4e7d3, 0x0170320a, 0x0022074c, 0x0152baa4, 0x01822ced, 0x025a9076, 0x0318292f, 0x001f1039}}},
+ {X: Field{[10]uint32{0x02632746, 0x0302dac5, 0x03d25b05, 0x0181db69, 0x01c249d3, 0x02b260f9, 0x0176edc6, 0x02ff1b01, 0x0129fdeb, 0x0032331c}}, Y: Field{[10]uint32{0x00716fb1, 0x01d35e13, 0x01e68e46, 0x02bf53dd, 0x022653fb, 0x014e7fae, 0x011a332c, 0x011261db, 0x00e3a77e, 0x00122a33}}},
+ {X: Field{[10]uint32{0x0246973f, 0x0303053a, 0x021dd2d6, 0x022dce0e, 0x03fa8579, 0x038f772b, 0x024d2a9a, 0x00f9b4e4, 0x0336f1ee, 0x0027f876}}, Y: Field{[10]uint32{0x0074f6d2, 0x039db38b, 0x0223e7c2, 0x03b2facc, 0x0343dc55, 0x00084ad8, 0x02d96588, 0x01170257, 0x02a86070, 0x00074d6d}}},
+ {X: Field{[10]uint32{0x008ecda2, 0x01c4fd6f, 0x024657c9, 0x036f49b4, 0x01e23648, 0x030d449e, 0x019e02dd, 0x01d239b8, 0x038a3d45, 0x00132a2a}}, Y: Field{[10]uint32{0x023e73da, 0x02a68e53, 0x005cf164, 0x0236ec83, 0x0113b8a6, 0x0021db25, 0x03c9f23c, 0x036e489c, 0x02ad9bb7, 0x00229619}}},
+ {X: Field{[10]uint32{0x032060c0, 0x01dbd62d, 0x017b13d3, 0x00607604, 0x03f1f308, 0x006c78a7, 0x01bc7242, 0x0227b173, 0x0150e4a9, 0x00032340}}, Y: Field{[10]uint32{0x0082ebd1, 0x018cd954, 0x0271749e, 0x00cb2c9b, 0x027ac4a7, 0x002c800c, 0x0242a9df, 0x00e9286b, 0x00a4c5a7, 0x00171620}}},
+ {X: Field{[10]uint32{0x02f2aa31, 0x03868304, 0x03feafc1, 0x0113c4c2, 0x039e3684, 0x02072620, 0x03e1b7c9, 0x03f79927, 0x017bb4b9, 0x000f5855}}, Y: Field{[10]uint32{0x025b56f9, 0x021e64b7, 0x0228671c, 0x0254c63a, 0x021e2336, 0x01ac70df, 0x0160c90e, 0x02102cea, 0x03ff62cd, 0x0024cc59}}},
+ {X: Field{[10]uint32{0x00e69e2a, 0x02bc5a49, 0x00552ccf, 0x03b72d89, 0x03feaada, 0x0170fb47, 0x0078dbb8, 0x0328256d, 0x039ffd44, 0x0019d5a7}}, Y: Field{[10]uint32{0x03eb7fcc, 0x006c9b59, 0x00102feb, 0x037abc3f, 0x03d16619, 0x02b7ec92, 0x01412887, 0x02f4b2aa, 0x0148230f, 0x0018aeca}}},
+ {X: Field{[10]uint32{0x0372fbc2, 0x02dd4f9c, 0x01af70f3, 0x0340f3c3, 0x006e3075, 0x0319b6aa, 0x037d2792, 0x0050043a, 0x013edebf, 0x0018c4f4}}, Y: Field{[10]uint32{0x03573ef3, 0x0389ab74, 0x039c2f65, 0x01d2fabf, 0x032839f8, 0x00f81b8b, 0x01754556, 0x0049161a, 0x023050eb, 0x00111884}}},
+ {X: Field{[10]uint32{0x01d23968, 0x03f78913, 0x031955e2, 0x03c857c4, 0x03088529, 0x01f1b2ca, 0x023085b4, 0x01ba3343, 0x01e7fbbe, 0x001be3b2}}, Y: Field{[10]uint32{0x0136cd79, 0x0031dbfb, 0x0078dc51, 0x002a0c07, 0x0323e195, 0x0311bbba, 0x003b215d, 0x00febad5, 0x0214523b, 0x0007ed87}}},
+ {X: Field{[10]uint32{0x010b7f6c, 0x0301519c, 0x022447be, 0x01638380, 0x0336f0ae, 0x020e6d30, 0x01a0ec2f, 0x0286b2f6, 0x01ac3c5a, 0x0015984f}}, Y: Field{[10]uint32{0x02ca79e8, 0x01ceaa63, 0x0316cf7b, 0x02f775fd, 0x03530908, 0x010d2be2, 0x03233194, 0x0263e40e, 0x03ab86c3, 0x00091c98}}},
+ {X: Field{[10]uint32{0x03aee08c, 0x02cf0861, 0x01da041e, 0x02c1a167, 0x0217e91a, 0x0169f775, 0x03e6e57c, 0x01c8644d, 0x01e7b414, 0x00327785}}, Y: Field{[10]uint32{0x038b0009, 0x03eff10f, 0x0370fd8f, 0x02c7d792, 0x0040cc5d, 0x00556473, 0x0111c877, 0x015b437f, 0x02a5cfa0, 0x0031c5e3}}},
+ {X: Field{[10]uint32{0x016c0504, 0x01aeff7d, 0x01c48a8b, 0x00b74b77, 0x02f90618, 0x02f9925e, 0x02a4b0f6, 0x017a4390, 0x024a627d, 0x0001d642}}, Y: Field{[10]uint32{0x02c38587, 0x00f38aa9, 0x029f81f9, 0x01d4d4ed, 0x00cc5bd8, 0x02a9192f, 0x017e878b, 0x021d8172, 0x021ab549, 0x00358478}}},
+ {X: Field{[10]uint32{0x03e19d6a, 0x025e421f, 0x0173b760, 0x0176fcf2, 0x021fcc55, 0x0076ccd8, 0x00dff728, 0x03815b6c, 0x020fb310, 0x00252c76}}, Y: Field{[10]uint32{0x014fc217, 0x021b78ff, 0x01159852, 0x02723cbf, 0x0045c42e, 0x0392e54f, 0x03a2ab4a, 0x0069580c, 0x013dd5b4, 0x0020c622}}},
+ {X: Field{[10]uint32{0x00c9a6cb, 0x039b54a1, 0x011a5f20, 0x0084e385, 0x02d6f8f8, 0x02bb0b3e, 0x007d081d, 0x033bc438, 0x0299bcda, 0x002d6bd0}}, Y: Field{[10]uint32{0x0395448d, 0x0091e6ea, 0x00b2043b, 0x03f42bb7, 0x01c8cf65, 0x004df702, 0x032987eb, 0x02e0b7d5, 0x00078a7d, 0x00302611}}},
+ {X: Field{[10]uint32{0x0139c3e3, 0x01da11da, 0x03b0c3c4, 0x01066226, 0x03f8ef61, 0x021460a6, 0x000a153c, 0x01161ce6, 0x01437074, 0x0017d26b}}, Y: Field{[10]uint32{0x007e04eb, 0x0346001d, 0x020f7d01, 0x0251172b, 0x022ae25c, 0x0103f092, 0x0208ae1b, 0x01b0f42e, 0x038520f5, 0x00171034}}},
+ {X: Field{[10]uint32{0x007da385, 0x0386e792, 0x01c645cd, 0x02fc9bb2, 0x0216bea3, 0x01a24e50, 0x0230d1ae, 0x03047193, 0x027f88cc, 0x003daec1}}, Y: Field{[10]uint32{0x00288f55, 0x03b5c85e, 0x004fead4, 0x0367cafd, 0x0328dbfd, 0x037792a0, 0x01d4ec8a, 0x025e3362, 0x036d7268, 0x000c5691}}},
+ {X: Field{[10]uint32{0x01df6950, 0x03b4affe, 0x03f10bee, 0x0124112c, 0x0152690b, 0x03000115, 0x01aea0ee, 0x00678253, 0x02dec02b, 0x001ed1f3}}, Y: Field{[10]uint32{0x00efe9a6, 0x03b64ef8, 0x01330280, 0x03603084, 0x0353b7cc, 0x015e462b, 0x03ac5a79, 0x037b25ba, 0x01f49bee, 0x0006f369}}},
+ {X: Field{[10]uint32{0x0140876d, 0x03f59826, 0x01035a78, 0x0087000a, 0x01182236, 0x035c3d4b, 0x025e1ab2, 0x015b67ad, 0x03f3082d, 0x002e9a75}}, Y: Field{[10]uint32{0x035d393d, 0x01b447e5, 0x02c7684b, 0x00d6b86b, 0x001d1cf9, 0x003b894e, 0x036bdb95, 0x00a2703c, 0x02fd56d5, 0x0017d128}}},
+ {X: Field{[10]uint32{0x03d929ff, 0x037f6e5e, 0x0347d1d3, 0x017e5d0c, 0x01fe7ec3, 0x00cc2e8e, 0x03713bf0, 0x03065488, 0x0094d226, 0x0028edc2}}, Y: Field{[10]uint32{0x02ae6135, 0x03013355, 0x00aa593c, 0x00b082ec, 0x01495edf, 0x02ace51e, 0x01ad2e10, 0x016a80d5, 0x03df4275, 0x00017432}}},
+ {X: Field{[10]uint32{0x01c804e5, 0x0368df74, 0x0384f0e8, 0x02cd1233, 0x025ae602, 0x003aceff, 0x03e73b52, 0x0207f647, 0x023ebb2d, 0x0031d5b8}}, Y: Field{[10]uint32{0x00df49ff, 0x0044840d, 0x035f8985, 0x02a753ec, 0x025a4fab, 0x02192a60, 0x01f52b29, 0x01ae6f2a, 0x02faedf8, 0x00227d2d}}},
+ {X: Field{[10]uint32{0x0271822c, 0x00bba10d, 0x02a00d17, 0x0271b37e, 0x0065410e, 0x030e4127, 0x011c2341, 0x0252afde, 0x00356fab, 0x000d8c9f}}, Y: Field{[10]uint32{0x03ed4c6d, 0x034187f4, 0x0127abe7, 0x00c63096, 0x01eb7456, 0x0253dc0e, 0x0201f04e, 0x0234d7c3, 0x00a4698c, 0x003f8d62}}},
+ {X: Field{[10]uint32{0x03dd21bb, 0x0278418d, 0x00c32118, 0x02c61d2c, 0x00b66051, 0x017acabd, 0x02ecf6fc, 0x008c47d1, 0x03be8e37, 0x000edd6f}}, Y: Field{[10]uint32{0x02879908, 0x002a8a56, 0x03c2aea5, 0x02575f46, 0x022e42a0, 0x01e502d3, 0x015e2488, 0x00ce6916, 0x0233e3c3, 0x002e4512}}},
+ {X: Field{[10]uint32{0x00d3c5e2, 0x029fdd7c, 0x017b4d92, 0x02f4de6a, 0x035f0272, 0x03e3d11d, 0x015ed721, 0x03a22831, 0x031057b4, 0x00112987}}, Y: Field{[10]uint32{0x02d80141, 0x03785120, 0x00086111, 0x0019b705, 0x02181623, 0x016de4e4, 0x016ec1f0, 0x0011925c, 0x02658034, 0x003a1c3a}}},
+ {X: Field{[10]uint32{0x0097fefd, 0x026889c0, 0x00acb74c, 0x039b28a5, 0x011ebed2, 0x03a481bb, 0x00c6fe5c, 0x00f02809, 0x02f70066, 0x00046b80}}, Y: Field{[10]uint32{0x03d6a36f, 0x01f4a337, 0x0024bd69, 0x019a5039, 0x01a4e357, 0x01c108b3, 0x008737ae, 0x03ecc140, 0x0387a262, 0x0018d686}}},
+ {X: Field{[10]uint32{0x02142f5c, 0x0021728f, 0x01981069, 0x03c84175, 0x008e987a, 0x02cc6cdf, 0x02ab1b0a, 0x017450b9, 0x010adfb2, 0x0031d44c}}, Y: Field{[10]uint32{0x02821014, 0x0250eebb, 0x018864df, 0x00752f30, 0x02ccca85, 0x039a1716, 0x00485a4b, 0x005ea7c4, 0x01d8ed27, 0x002918c3}}},
+ {X: Field{[10]uint32{0x03efe46a, 0x02f76dfb, 0x02f7f790, 0x00ac3856, 0x00a639b7, 0x03ac94db, 0x0357b173, 0x03ce7105, 0x03c64009, 0x003ffd35}}, Y: Field{[10]uint32{0x025080e5, 0x01d91433, 0x02dc6e89, 0x01af6b5f, 0x014c110d, 0x024a92ec, 0x030697a2, 0x008b4440, 0x018e0ffe, 0x001a529e}}},
+ {X: Field{[10]uint32{0x03f90534, 0x03233a70, 0x00d18c06, 0x0068c495, 0x0300932b, 0x03350dc1, 0x031e8bc1, 0x027d1ba4, 0x0239c13c, 0x001f5dba}}, Y: Field{[10]uint32{0x03e415bb, 0x00727fa2, 0x026d4d2a, 0x022ce696, 0x024cee43, 0x01163245, 0x007cf7c3, 0x00f63cd3, 0x02ba8f0a, 0x002f052c}}},
+ {X: Field{[10]uint32{0x0207ad39, 0x00c3a557, 0x037e8a67, 0x017a097d, 0x01625fda, 0x00c2aaab, 0x00807075, 0x0393cdbc, 0x02d2ca6a, 0x002dbbf2}}, Y: Field{[10]uint32{0x01b1c765, 0x00864e6f, 0x005f00a4, 0x00687d90, 0x02469430, 0x00fa9ab5, 0x036f4a32, 0x034c9c0f, 0x00ef8a56, 0x00121a36}}},
+ {X: Field{[10]uint32{0x0233a32e, 0x032a9b8d, 0x02b4ae30, 0x02ab034a, 0x0348e38f, 0x01d501b4, 0x03f9050e, 0x03129b4d, 0x012aa889, 0x0006812c}}, Y: Field{[10]uint32{0x0075911d, 0x01baf237, 0x02966c24, 0x0005ebe1, 0x0221e1c8, 0x039fa827, 0x0017dca3, 0x023641b2, 0x008ffad3, 0x003d0e83}}},
+ {X: Field{[10]uint32{0x03209b7e, 0x02ab5460, 0x02a6c531, 0x00016935, 0x03b70e25, 0x0323b777, 0x0078b126, 0x0146413a, 0x00fe9b34, 0x002b6bac}}, Y: Field{[10]uint32{0x037522ad, 0x032c0e74, 0x03173f33, 0x03bf19e4, 0x02b1c59d, 0x02639bb7, 0x00c6b4e1, 0x00a69c23, 0x016ddd4d, 0x000ac9ac}}},
+ {X: Field{[10]uint32{0x006e0679, 0x013ae20b, 0x010d19a9, 0x00961183, 0x00d97fa1, 0x0358c9d9, 0x012121d2, 0x03cff2d4, 0x02023931, 0x00013932}}, Y: Field{[10]uint32{0x00537467, 0x0208b461, 0x00348515, 0x005fc965, 0x02cc917b, 0x00a3accc, 0x00c68609, 0x029b2515, 0x02cd3704, 0x003be43b}}},
+ {X: Field{[10]uint32{0x011e2971, 0x030821f0, 0x02a220a7, 0x02b2b700, 0x035654ec, 0x00e7d80e, 0x01b5ee41, 0x0304e9c4, 0x0279df69, 0x00287cf0}}, Y: Field{[10]uint32{0x02a16b2d, 0x0148eb6d, 0x023b2252, 0x035ea2a4, 0x02e8aafa, 0x03bf88c9, 0x03699165, 0x01e375fb, 0x039454cb, 0x0015c925}}},
+ {X: Field{[10]uint32{0x0398c7a5, 0x004f8339, 0x003c4f4b, 0x0321a9a4, 0x03c19424, 0x03259d7f, 0x030c911b, 0x01a39bd2, 0x03814886, 0x002ab1db}}, Y: Field{[10]uint32{0x00dd2978, 0x029cb461, 0x03189588, 0x00dbac9d, 0x02c37595, 0x00d826f0, 0x011df3f7, 0x01f5b04e, 0x02dfdd6c, 0x00092b85}}},
+ {X: Field{[10]uint32{0x00034769, 0x036dc074, 0x030a2a5b, 0x025a8578, 0x010ddce4, 0x012639b2, 0x03601666, 0x008bc378, 0x0171e596, 0x001c3a50}}, Y: Field{[10]uint32{0x0103b757, 0x0113c684, 0x0257d5e2, 0x02ef3d1a, 0x02446111, 0x00803e4a, 0x004d4e80, 0x032fbcae, 0x00a775a9, 0x0035b5f0}}},
+ {X: Field{[10]uint32{0x02c78890, 0x023825a3, 0x002b6f28, 0x01ad6e0a, 0x03342670, 0x01aac711, 0x02fa849c, 0x01124925, 0x01e711d4, 0x003285f9}}, Y: Field{[10]uint32{0x03ce2c2e, 0x00bcfa22, 0x034105e3, 0x03b938a0, 0x00e6c58f, 0x005f4cb3, 0x039f501e, 0x01dee376, 0x02322ce5, 0x002cf775}}},
+ {X: Field{[10]uint32{0x03aa62e8, 0x018c928b, 0x025717ec, 0x0006357f, 0x00255ec0, 0x0290eae7, 0x000700f3, 0x03f7a1ab, 0x018d8d70, 0x000685a9}}, Y: Field{[10]uint32{0x02710c27, 0x003ac746, 0x017e116c, 0x03cde8e2, 0x00dc2eb6, 0x015f074c, 0x03bc1372, 0x03c28f75, 0x02ba65af, 0x003cb2cb}}},
+ {X: Field{[10]uint32{0x00b9d4f2, 0x02438ca5, 0x0301e981, 0x01eb8f97, 0x012dd335, 0x02acab04, 0x01c6bbf5, 0x037c430a, 0x02650b4d, 0x0023cb77}}, Y: Field{[10]uint32{0x034c6afb, 0x024ff937, 0x01f5d804, 0x016f4c9e, 0x0179df33, 0x01647df3, 0x02954bd8, 0x00db5413, 0x00f7e5a7, 0x00381ae3}}},
+ {X: Field{[10]uint32{0x00950162, 0x0376a401, 0x018c5a3a, 0x0215b223, 0x00ba1d72, 0x0336cd59, 0x014562e0, 0x00f9f203, 0x0153f821, 0x000cc52d}}, Y: Field{[10]uint32{0x0043532d, 0x02a87e7f, 0x00c24fc4, 0x018804eb, 0x02b4dab4, 0x00f2b547, 0x00a7434e, 0x031543e5, 0x005ee3f7, 0x000cfa0f}}},
+ {X: Field{[10]uint32{0x01304000, 0x00f16e89, 0x026062af, 0x0153b8ad, 0x03fa5895, 0x01229f30, 0x01b11a33, 0x0030bff1, 0x02f465ac, 0x001f041f}}, Y: Field{[10]uint32{0x035702c5, 0x0398fba5, 0x0124b508, 0x01e708fc, 0x0289b5a9, 0x015b4d97, 0x027fe78e, 0x001c1741, 0x03122e8a, 0x001ad6f3}}},
+ {X: Field{[10]uint32{0x03e4f8b3, 0x01a95296, 0x00cb97b7, 0x0014dac8, 0x0019be46, 0x01565b42, 0x01e257ee, 0x037d9d44, 0x0029325a, 0x003a462a}}, Y: Field{[10]uint32{0x032fa8ae, 0x032481f3, 0x00ebfa9d, 0x03bc0ffc, 0x01b70af0, 0x00846705, 0x03a8f0d1, 0x014b0f86, 0x00a0b461, 0x0006a4bc}}},
+ {X: Field{[10]uint32{0x01b9b079, 0x032533d0, 0x015d1e3f, 0x01f4b3a8, 0x01c346c9, 0x038c2720, 0x02dd2e3b, 0x0292e7a4, 0x0203d4f3, 0x0021dc36}}, Y: Field{[10]uint32{0x03123c03, 0x03a10b6a, 0x0005a10c, 0x01847ed4, 0x0053f964, 0x013d5feb, 0x01372fe6, 0x00f55c63, 0x030fdc63, 0x00340950}}},
+ {X: Field{[10]uint32{0x00d8b22b, 0x012ab56b, 0x03ea1731, 0x01c318a0, 0x01a6589f, 0x02ef00e7, 0x026a57f6, 0x00955ec4, 0x013fae2b, 0x0031ad2b}}, Y: Field{[10]uint32{0x00d29bfe, 0x006bfeb6, 0x036fb46e, 0x023b3cf1, 0x0385f288, 0x01270e37, 0x01f278de, 0x00d048d7, 0x01cd2c1c, 0x003a148f}}},
+ {X: Field{[10]uint32{0x03a86e14, 0x0232dc0d, 0x039689c8, 0x006c786a, 0x01462274, 0x03e1c586, 0x03b1e91f, 0x03e610dc, 0x01486ffb, 0x0026b3b6}}, Y: Field{[10]uint32{0x00b352d9, 0x01fd6482, 0x012cde8e, 0x03b29aa1, 0x0316e1e7, 0x02527074, 0x003cc321, 0x00c77ffd, 0x031f1b4c, 0x0035e9fa}}},
+ {X: Field{[10]uint32{0x039007f3, 0x0153d7c6, 0x0322b87c, 0x015780e2, 0x01b08bf0, 0x03a2b29a, 0x034015b1, 0x036ad313, 0x036ffccb, 0x002bd454}}, Y: Field{[10]uint32{0x03130f7b, 0x03e12791, 0x027ef00c, 0x02ddc0e8, 0x00cbe813, 0x02ec74c2, 0x03fa85ba, 0x01fb3d27, 0x034c95c0, 0x002daec2}}},
+ {X: Field{[10]uint32{0x01823ce2, 0x00bb94c4, 0x00c3e5bb, 0x03e8608e, 0x0156e02f, 0x01707249, 0x0045a092, 0x02aed5bf, 0x02df3ea0, 0x003b14c1}}, Y: Field{[10]uint32{0x01ee8b99, 0x004a100b, 0x009f6898, 0x02ff6507, 0x009457f4, 0x00f242f6, 0x00653524, 0x0197d060, 0x01b6720f, 0x00325433}}},
+ {X: Field{[10]uint32{0x032d90a0, 0x0366ebb9, 0x00d876c5, 0x02320779, 0x03587f46, 0x024590d8, 0x0397ecd5, 0x01ef1868, 0x00a5be12, 0x000a4ec7}}, Y: Field{[10]uint32{0x0235d821, 0x01bdd36e, 0x0261bae2, 0x0090f463, 0x010443a5, 0x01d9218f, 0x03d81d91, 0x027c17a4, 0x030f238e, 0x00120840}}},
+ {X: Field{[10]uint32{0x00865488, 0x007d21ad, 0x003c1256, 0x01088bbe, 0x00168771, 0x01a2ff04, 0x0151f0ee, 0x01aadaca, 0x037d9987, 0x003af952}}, Y: Field{[10]uint32{0x01381c07, 0x01bbae1b, 0x03c47924, 0x02835206, 0x0158d84f, 0x02090bd4, 0x0299d91b, 0x0200bfe9, 0x011ccaf8, 0x000a8759}}},
+ {X: Field{[10]uint32{0x0064acdc, 0x03671a4d, 0x019dfd38, 0x00951174, 0x0133ac83, 0x00a74366, 0x0220109b, 0x035a6fb4, 0x01233ab0, 0x00223ddd}}, Y: Field{[10]uint32{0x03276702, 0x00a0b2f2, 0x00d5b79a, 0x01651670, 0x038e0590, 0x03b1afaf, 0x02a2cb1a, 0x017bd4c7, 0x0122fbd9, 0x0023e454}}},
+ {X: Field{[10]uint32{0x02b3bb01, 0x005cd668, 0x0039fb81, 0x02e5ba51, 0x03c7fa40, 0x03afa5e5, 0x036cfa08, 0x00376276, 0x013de721, 0x0007611d}}, Y: Field{[10]uint32{0x01f41ad6, 0x029e187c, 0x0260dabf, 0x00ce7cd0, 0x012e889c, 0x01503121, 0x000b6d6f, 0x029361d1, 0x035aba53, 0x003dcd82}}},
+ {X: Field{[10]uint32{0x011d4b2f, 0x033bed4c, 0x01e1c27f, 0x00f979d0, 0x0336f82a, 0x02ce2338, 0x01ae032c, 0x020b073c, 0x01f5176f, 0x000679a7}}, Y: Field{[10]uint32{0x03d5c143, 0x016ee9b2, 0x016e00b9, 0x02bd6ed2, 0x0309d9f7, 0x030745ec, 0x0175dc8c, 0x014efaf8, 0x00fec9ba, 0x0031007d}}},
+ {X: Field{[10]uint32{0x02e3f2c9, 0x00d5332b, 0x0372953d, 0x01790ab7, 0x0119b04f, 0x01fca6a9, 0x01a93995, 0x0097ff7c, 0x0202c1f1, 0x001cc627}}, Y: Field{[10]uint32{0x0137f704, 0x00270069, 0x01424010, 0x00710407, 0x00d901de, 0x0390180e, 0x01d21b01, 0x01f3e188, 0x008f1c6e, 0x0014ae3a}}},
+ {X: Field{[10]uint32{0x0087a74f, 0x0095ba4a, 0x0366901c, 0x02c296b9, 0x03278fd2, 0x01d1fc74, 0x038956cb, 0x02a2fd4b, 0x00828ff1, 0x00317af8}}, Y: Field{[10]uint32{0x01259860, 0x03c736f3, 0x033823ef, 0x0075b026, 0x02c506e5, 0x035cdad7, 0x0397dc92, 0x012e606a, 0x00b962e7, 0x00033963}}},
+ {X: Field{[10]uint32{0x0182da76, 0x02815892, 0x01166435, 0x019f20ee, 0x011a7808, 0x02f220f5, 0x016feed3, 0x0038050a, 0x0221f799, 0x001e0f05}}, Y: Field{[10]uint32{0x0236da30, 0x0158f862, 0x03bc622f, 0x01d2f57f, 0x01f52245, 0x03ae0067, 0x0165c3e8, 0x02271a71, 0x03e2c9a1, 0x0000dc2c}}},
+ {X: Field{[10]uint32{0x022b3305, 0x0267dbfe, 0x015794d7, 0x032cb1c7, 0x01fad66f, 0x0294dc87, 0x024cbd64, 0x01a9185c, 0x02800ccc, 0x0015579f}}, Y: Field{[10]uint32{0x004e9e41, 0x036980fd, 0x030eb63b, 0x00242cc9, 0x02db9b48, 0x023f9b75, 0x035ed312, 0x01c10863, 0x0165d39d, 0x0019eefc}}},
+ {X: Field{[10]uint32{0x00243471, 0x0084e950, 0x0150a4b0, 0x02932b37, 0x030faa40, 0x010b1ac6, 0x028467e2, 0x0351b3c7, 0x0226ab1c, 0x00103126}}, Y: Field{[10]uint32{0x03dadf86, 0x0204fd8b, 0x0296bdc2, 0x00c19fd3, 0x03ad55bf, 0x00d08930, 0x039fdb4c, 0x0188bf82, 0x03005002, 0x0005a542}}},
+ {X: Field{[10]uint32{0x03935298, 0x02d8bdb5, 0x021627c8, 0x009835df, 0x02473062, 0x0164f1d1, 0x0010b9f5, 0x02346272, 0x03e5db09, 0x003adace}}, Y: Field{[10]uint32{0x015c5bc8, 0x01d3c380, 0x022fb9bd, 0x01c512f8, 0x00c84e96, 0x00073b72, 0x01902317, 0x01bd707e, 0x01843f35, 0x000f4a55}}},
+ {X: Field{[10]uint32{0x02b26091, 0x019c3397, 0x03ca903f, 0x00da6813, 0x03a06835, 0x034186d4, 0x020a0734, 0x0305a472, 0x00a42b55, 0x0005dc86}}, Y: Field{[10]uint32{0x03a5fa42, 0x02da432c, 0x00f4eced, 0x01c9d67c, 0x02057e0e, 0x017a2e5e, 0x017f243e, 0x02f1cddc, 0x021aa8a3, 0x00258459}}},
+ {X: Field{[10]uint32{0x03d2a680, 0x020e99e3, 0x02be37f8, 0x018a2c1f, 0x02ea0c37, 0x009f099e, 0x0028c001, 0x017e29f4, 0x03a2f3bc, 0x002106a3}}, Y: Field{[10]uint32{0x012cf1b0, 0x00b53cd1, 0x0289d9a4, 0x02313e6e, 0x00052693, 0x0236ef73, 0x00577128, 0x007dde80, 0x037db2fd, 0x0015e6fc}}},
+ {X: Field{[10]uint32{0x02dea82d, 0x0142985b, 0x01691322, 0x02735f94, 0x00358578, 0x00e6714f, 0x001421da, 0x01fc7b20, 0x01543a37, 0x002c07bd}}, Y: Field{[10]uint32{0x01a90265, 0x000802c9, 0x009eb962, 0x0347998e, 0x0082e119, 0x01e8dfc5, 0x03626a00, 0x02cbc4eb, 0x00e97e29, 0x000a3cc3}}},
+ {X: Field{[10]uint32{0x00f38904, 0x006c2b01, 0x029a6259, 0x01f02ce2, 0x00ba344e, 0x03e32646, 0x02e70d6e, 0x03190c5f, 0x014e8e3c, 0x002e4f80}}, Y: Field{[10]uint32{0x000ac3d3, 0x027f2549, 0x001f72b2, 0x03b702b8, 0x00d0b368, 0x00bfe26d, 0x03152e10, 0x034431af, 0x01855bdf, 0x00004a70}}},
+ {X: Field{[10]uint32{0x03acd522, 0x02fd5201, 0x0137305f, 0x031a2b20, 0x01a00601, 0x01b58c62, 0x000a1dd2, 0x00366bfe, 0x02f243c5, 0x00383d09}}, Y: Field{[10]uint32{0x02b749fc, 0x0035c177, 0x02d1e143, 0x00abac92, 0x021c1938, 0x033ce70a, 0x00bd848c, 0x037178c1, 0x03e0951a, 0x0025b620}}},
+ {X: Field{[10]uint32{0x0073233c, 0x03aa6de7, 0x03df2147, 0x0052ceee, 0x00d5379f, 0x00ee7b01, 0x030adda6, 0x025eb4a1, 0x007440e8, 0x003847a7}}, Y: Field{[10]uint32{0x01c1f019, 0x03c2881b, 0x016c5cb9, 0x013767cf, 0x01e125e3, 0x0388b8d6, 0x01a9df03, 0x01d4c8fd, 0x014b2919, 0x001275b9}}},
+ {X: Field{[10]uint32{0x016b2c2b, 0x03d9e9ea, 0x0191c79c, 0x01c26b11, 0x02ae38ee, 0x00009f30, 0x0396eca2, 0x03c514ed, 0x004b0c5e, 0x00246b56}}, Y: Field{[10]uint32{0x030bac2a, 0x030729d4, 0x001e23e9, 0x025fb3a1, 0x01565dfd, 0x017670f1, 0x0379e5db, 0x0314c447, 0x0213a620, 0x00360568}}},
+ {X: Field{[10]uint32{0x0299f8d2, 0x01011850, 0x033dabfe, 0x00708c0f, 0x01103297, 0x02cc8bcd, 0x0013785c, 0x00d3c81d, 0x0392f4fa, 0x000f9c94}}, Y: Field{[10]uint32{0x0308ae85, 0x0088f95d, 0x0039e042, 0x015de256, 0x014e0c1d, 0x0241fbe9, 0x01482176, 0x03bb57cd, 0x02515add, 0x00238c8e}}},
+ {X: Field{[10]uint32{0x01a98160, 0x03d5e411, 0x039bced4, 0x026e6808, 0x0191d911, 0x02a18fcd, 0x03c00acf, 0x0226ad20, 0x02c201a5, 0x0017a1ef}}, Y: Field{[10]uint32{0x02e7d47b, 0x009408fc, 0x032633a8, 0x00734335, 0x0233625f, 0x03f0e69b, 0x02f3c159, 0x01707e7a, 0x038433c7, 0x002a228e}}},
+ {X: Field{[10]uint32{0x0268a0ed, 0x03e87234, 0x00f32489, 0x003b494b, 0x01da1826, 0x013a6642, 0x01cb6524, 0x00ecd5d2, 0x02132cb9, 0x0030b821}}, Y: Field{[10]uint32{0x008a5761, 0x00360aa3, 0x007644ed, 0x01934169, 0x0328e02e, 0x015381dc, 0x03038d68, 0x00d97751, 0x03ad1f16, 0x0034fcb8}}},
+ {X: Field{[10]uint32{0x031978af, 0x005ee9c3, 0x0025c745, 0x034392e4, 0x023b9053, 0x0077650c, 0x02193c23, 0x0261a5ec, 0x005eccf0, 0x00264c13}}, Y: Field{[10]uint32{0x009dc789, 0x00066a88, 0x02111338, 0x03cc7836, 0x00ba1324, 0x00f74128, 0x03e77e34, 0x004e59bd, 0x027b638b, 0x003b9dfe}}},
+ {X: Field{[10]uint32{0x00c5c6bc, 0x004c8aad, 0x02b1d1c2, 0x000d9435, 0x0325a79f, 0x027be256, 0x01f04f70, 0x03ecdd94, 0x00c559ad, 0x00103842}}, Y: Field{[10]uint32{0x039db653, 0x039192d9, 0x02b2cfc5, 0x02ae8253, 0x00210eb2, 0x011ffbd1, 0x02ff3f8c, 0x03992212, 0x03385733, 0x0022602a}}},
+ {X: Field{[10]uint32{0x00c6a78a, 0x03ab3722, 0x01aca5bb, 0x037725c4, 0x006d6276, 0x03d4237d, 0x00315287, 0x001c8483, 0x02572d19, 0x00263220}}, Y: Field{[10]uint32{0x01a61c92, 0x0399dad0, 0x03256f3e, 0x003b8230, 0x00b57f27, 0x0341443a, 0x02ea7f48, 0x017fef44, 0x01761f5c, 0x001746aa}}},
+ {X: Field{[10]uint32{0x00af6fed, 0x036ac818, 0x03740c05, 0x002601bf, 0x02d7b4cf, 0x005b0deb, 0x00eeab7a, 0x008c1ae1, 0x027a25e9, 0x000e26ae}}, Y: Field{[10]uint32{0x0065707e, 0x003b3db4, 0x01c13d6f, 0x00dcd7d8, 0x0049c326, 0x004aca64, 0x032ed608, 0x038ba34d, 0x00c9ec48, 0x0019ceac}}},
+ {X: Field{[10]uint32{0x0253df17, 0x014fbab2, 0x03732614, 0x02ab94e6, 0x026619ea, 0x017c46ce, 0x02fda62e, 0x0255ba4f, 0x03ba832c, 0x00277193}}, Y: Field{[10]uint32{0x005990ac, 0x02ebf6bd, 0x0089f956, 0x0326520e, 0x038f60a9, 0x0228d63b, 0x0267ad8d, 0x02ac4290, 0x00a93c56, 0x000602ce}}},
+ {X: Field{[10]uint32{0x024921f7, 0x0270557f, 0x008a9675, 0x00334f54, 0x03b3439b, 0x02d9c1ea, 0x003528b8, 0x030b0d88, 0x0218e758, 0x001c4463}}, Y: Field{[10]uint32{0x02104ee0, 0x01e78a2a, 0x0000b5ec, 0x03df8732, 0x0176bf22, 0x0046d4b4, 0x0108719f, 0x013a7192, 0x02f12c1b, 0x0030bd86}}},
+ {X: Field{[10]uint32{0x02c3d096, 0x02ecaa0f, 0x0224245c, 0x008d94c6, 0x0146218b, 0x02b717f4, 0x00e09909, 0x03cf1249, 0x01ee11b9, 0x000cef3b}}, Y: Field{[10]uint32{0x00fbad0a, 0x0015f56b, 0x03e9d655, 0x023578c5, 0x03f83b3e, 0x011a53f6, 0x01a71f6f, 0x0319ce50, 0x011a6c22, 0x00057d2f}}},
+ {X: Field{[10]uint32{0x0213ccb4, 0x02c83713, 0x031d0e66, 0x0101d661, 0x01fbd977, 0x00bf6e95, 0x021e5cb6, 0x03a7c7c5, 0x033a4ab5, 0x0012d666}}, Y: Field{[10]uint32{0x023fb523, 0x020a6752, 0x034232b1, 0x0268b1b7, 0x006c9601, 0x02cd0851, 0x03064119, 0x009cae2d, 0x01da9035, 0x0018d40e}}},
+ {X: Field{[10]uint32{0x01269d10, 0x010d96c8, 0x03627569, 0x0368d7a5, 0x02decb8d, 0x0144d809, 0x038f6429, 0x0132a506, 0x034cdae5, 0x00067daf}}, Y: Field{[10]uint32{0x033c95d7, 0x024b1933, 0x03f3da1c, 0x01ad8274, 0x036cb31a, 0x02c9d40b, 0x00bca48d, 0x001b7099, 0x03dc090b, 0x0028930f}}},
+ {X: Field{[10]uint32{0x0301314c, 0x03751bc6, 0x0267a058, 0x01d6c5de, 0x028a2708, 0x02b41ceb, 0x0229adf7, 0x034537d9, 0x01a98027, 0x002f0f7c}}, Y: Field{[10]uint32{0x008d1f76, 0x02cc2ae0, 0x005e7b6b, 0x0195dc1d, 0x01934450, 0x03645462, 0x0233e898, 0x00741cbb, 0x029154f5, 0x0026774e}}},
+ {X: Field{[10]uint32{0x01d72c3c, 0x012a795f, 0x0285e1ea, 0x00793768, 0x02c34ef3, 0x0306b97d, 0x025f5b5a, 0x01c3a134, 0x0264521a, 0x0025de90}}, Y: Field{[10]uint32{0x039f5a0c, 0x03a6ca8a, 0x0041b4fc, 0x01a0cb87, 0x01dbf44f, 0x03500ff2, 0x0025b61c, 0x00bf9341, 0x00197aab, 0x003c6ff2}}},
+ {X: Field{[10]uint32{0x01c9b339, 0x004b1a43, 0x01b47a1c, 0x0044f89c, 0x00098b26, 0x02b71ec7, 0x014a7f58, 0x01694cfb, 0x024a85fc, 0x0017f7f7}}, Y: Field{[10]uint32{0x02c6555a, 0x0113d245, 0x02b1ce97, 0x0222cbdb, 0x01731c25, 0x01bec92e, 0x011bad52, 0x02539825, 0x03afbd6a, 0x000fb7ca}}},
+ {X: Field{[10]uint32{0x01e9c50d, 0x000508fa, 0x007476ce, 0x02fe089a, 0x00afc17a, 0x03edf6e3, 0x02c1ac50, 0x022bf3ba, 0x032cdcd2, 0x002e2f35}}, Y: Field{[10]uint32{0x03c55e9d, 0x01144940, 0x026dbf2c, 0x038da9d5, 0x039cb6d0, 0x01dc694f, 0x03d9f2f3, 0x03015e6e, 0x03c52e6d, 0x0002098c}}},
+ {X: Field{[10]uint32{0x01f75c77, 0x02290700, 0x01c728be, 0x03a769cd, 0x01721bc2, 0x03a51959, 0x01d01eb6, 0x030def19, 0x0199133b, 0x001b082e}}, Y: Field{[10]uint32{0x00b71e53, 0x037c4550, 0x03f20cf6, 0x0129e717, 0x015e36f4, 0x0296b91d, 0x0342aa47, 0x000db897, 0x0274d8ad, 0x000832bd}}},
+ {X: Field{[10]uint32{0x015adb07, 0x03246b4c, 0x03a7022b, 0x03e858ed, 0x03f877b5, 0x00ba4677, 0x00e4bf2f, 0x017c54e7, 0x01416965, 0x002ef924}}, Y: Field{[10]uint32{0x03f93a1e, 0x01dba732, 0x036ac40f, 0x01fc3b21, 0x01a77b84, 0x02e3f029, 0x02b5ff6d, 0x0348f231, 0x00256618, 0x002334f8}}},
+ {X: Field{[10]uint32{0x01e73786, 0x00531a19, 0x00c752fe, 0x02bb4e60, 0x03bf6dfe, 0x015905cd, 0x0339bbbc, 0x01d2fc1f, 0x0078e383, 0x001d22cc}}, Y: Field{[10]uint32{0x02811ac8, 0x032533ca, 0x02eb28f3, 0x02c18a5e, 0x03ea86b6, 0x005ff211, 0x01f2c802, 0x037e891c, 0x020a61a7, 0x001fdf2b}}},
+ {X: Field{[10]uint32{0x0364e4b4, 0x03522fb1, 0x000bcd23, 0x024b414b, 0x005d39d5, 0x009cb3da, 0x015728b2, 0x00956518, 0x03c5b89a, 0x003e98f1}}, Y: Field{[10]uint32{0x00a47c8a, 0x01f5a4a3, 0x01d31fbe, 0x035972d3, 0x01804724, 0x0359f410, 0x0238a506, 0x02758387, 0x03a27751, 0x003130ca}}},
+ {X: Field{[10]uint32{0x0056c91c, 0x014e1c73, 0x024446c9, 0x02c1c38f, 0x0386978e, 0x02520c52, 0x025ea13d, 0x038e028d, 0x0197d014, 0x0030bb5c}}, Y: Field{[10]uint32{0x026a595e, 0x03700791, 0x0007009b, 0x02ddcdf7, 0x033404bd, 0x022e6c3e, 0x0054a09d, 0x033463de, 0x0293e7c1, 0x00171cf0}}},
+ {X: Field{[10]uint32{0x03c266be, 0x03fa1c9b, 0x03ab5f22, 0x00130367, 0x026c2b3a, 0x03cfa001, 0x0334e846, 0x002f5b0b, 0x01efcb1e, 0x00094530}}, Y: Field{[10]uint32{0x024e3eb3, 0x007b2531, 0x01ad069a, 0x0376333e, 0x02507c35, 0x017d9bb1, 0x00443466, 0x02cb67fe, 0x006c07bb, 0x0031682b}}},
+ {X: Field{[10]uint32{0x02286350, 0x01bbe513, 0x0081df6b, 0x03ff25a8, 0x00e2318b, 0x028e10f2, 0x01d2e289, 0x011fc963, 0x03050116, 0x0016f01f}}, Y: Field{[10]uint32{0x03bcbea4, 0x03e16afa, 0x02c66a41, 0x01947844, 0x017a91c4, 0x0096136d, 0x007d059f, 0x03bc1236, 0x00931217, 0x00084f38}}},
+ {X: Field{[10]uint32{0x023cad8a, 0x0285cc66, 0x03dd8862, 0x00d7da80, 0x03db9c13, 0x01eb9193, 0x0173f706, 0x016c0e29, 0x02429737, 0x003b6d5b}}, Y: Field{[10]uint32{0x01ef5fa7, 0x01111fc5, 0x01f2e531, 0x014c7660, 0x00358620, 0x009bcef9, 0x038414a4, 0x03551986, 0x027016f8, 0x0034f986}}},
+ {X: Field{[10]uint32{0x03d5d732, 0x0323675c, 0x03d55817, 0x023b435d, 0x02684908, 0x0380a191, 0x03609982, 0x019204ef, 0x036e7826, 0x000a4949}}, Y: Field{[10]uint32{0x0287296f, 0x004ff926, 0x02d22622, 0x004c8375, 0x0184b332, 0x02ec33b8, 0x032d755d, 0x0262773a, 0x03a6a97c, 0x003d4c55}}},
+ {X: Field{[10]uint32{0x03c0a034, 0x039027a6, 0x0337fa69, 0x01e70ebe, 0x01912863, 0x00dc067a, 0x02098829, 0x03d294dc, 0x01d5bda0, 0x000b115e}}, Y: Field{[10]uint32{0x02f7d99c, 0x032a4d17, 0x0315c336, 0x019ec6e6, 0x02a319d4, 0x00c41ef2, 0x01acd23f, 0x030f1195, 0x034dd889, 0x0038542f}}},
+ {X: Field{[10]uint32{0x00808904, 0x0221516a, 0x00b3d056, 0x02e109a6, 0x02025f21, 0x02bcc60c, 0x02295870, 0x03e1daef, 0x020011f9, 0x0017c982}}, Y: Field{[10]uint32{0x02e02350, 0x01cea263, 0x03a9b534, 0x013b60e8, 0x01736fe6, 0x001bab0f, 0x00d2ce00, 0x02a87de9, 0x0232164c, 0x001ab4ce}}},
+ {X: Field{[10]uint32{0x02ac4b8b, 0x016935ed, 0x011000d6, 0x01a7a221, 0x029d1f2c, 0x00fecf5a, 0x02fd430f, 0x017b2414, 0x00c61209, 0x000eeeef}}, Y: Field{[10]uint32{0x010b0c97, 0x03e7ea95, 0x019487e4, 0x032ea8ed, 0x0240d244, 0x03256076, 0x01b090f8, 0x029b9f6d, 0x00283846, 0x0000ca3a}}},
+ {X: Field{[10]uint32{0x016acff0, 0x02e76065, 0x0117daff, 0x032998b6, 0x02343e80, 0x03088bd2, 0x009af44b, 0x0363bffb, 0x027bdd0f, 0x00126140}}, Y: Field{[10]uint32{0x038affda, 0x005b088e, 0x0065468c, 0x0053fa05, 0x03460b10, 0x009c5a88, 0x01561b5f, 0x01b904c1, 0x012e37a3, 0x00162fbf}}},
+ {X: Field{[10]uint32{0x03959de7, 0x0098f559, 0x0359b92e, 0x03300386, 0x006e826e, 0x000ecf73, 0x01eb2d88, 0x0022466d, 0x00e8d2e3, 0x0008518e}}, Y: Field{[10]uint32{0x0232342a, 0x0350793d, 0x03dd8ad9, 0x03c72379, 0x02dc22c0, 0x03d7f270, 0x02e0454f, 0x0078a4d6, 0x01216f13, 0x00027762}}},
+ {X: Field{[10]uint32{0x02f3cfdd, 0x00013db9, 0x01f35444, 0x0041a455, 0x016876c1, 0x0197828c, 0x023532b9, 0x00b5abcf, 0x03055ced, 0x001b3b61}}, Y: Field{[10]uint32{0x02546ec6, 0x03ad5bdf, 0x00ac0a83, 0x000665ff, 0x0355b17c, 0x0079abb9, 0x03ba4e2a, 0x0155be2d, 0x02abc86f, 0x003d46c6}}},
+ {X: Field{[10]uint32{0x01dcfacb, 0x007221b2, 0x0172730a, 0x03901086, 0x017fc3ad, 0x0216746b, 0x02634987, 0x024db38c, 0x0267876c, 0x0025405b}}, Y: Field{[10]uint32{0x02f4f660, 0x02ece49a, 0x03160742, 0x00bcb90f, 0x034df723, 0x004016ea, 0x03d284b8, 0x019bbbfe, 0x00c4e6e2, 0x000a679e}}},
+ {X: Field{[10]uint32{0x026f23f2, 0x0054c67b, 0x00763513, 0x003e76cc, 0x00c513d2, 0x030e633c, 0x02a8019f, 0x0070e710, 0x02c83040, 0x0012fb19}}, Y: Field{[10]uint32{0x038514fc, 0x02c9cd64, 0x003d58e8, 0x028550ff, 0x034fcded, 0x0224a718, 0x01aa9162, 0x0118261c, 0x02923b7d, 0x003c77ff}}},
+ {X: Field{[10]uint32{0x008a59c7, 0x03b69e21, 0x03bb27f3, 0x03bd6ac9, 0x019088c4, 0x00394eb9, 0x000015a6, 0x00ee5dab, 0x03d14051, 0x002d4144}}, Y: Field{[10]uint32{0x01c36399, 0x016252e6, 0x0084129a, 0x0326999d, 0x01dc9282, 0x02de1b33, 0x03254c51, 0x039b08fe, 0x02e51182, 0x00271072}}},
+ {X: Field{[10]uint32{0x0290708d, 0x005564ed, 0x00c003e4, 0x01149bcc, 0x01d1df38, 0x02a482b2, 0x029bda38, 0x0280e5a9, 0x02533989, 0x00165e49}}, Y: Field{[10]uint32{0x02ba648f, 0x03b40bc6, 0x00bab3a3, 0x02ce5eb9, 0x034c750c, 0x027b99cd, 0x02561921, 0x021f6d79, 0x00b72748, 0x001fcb05}}},
+ {X: Field{[10]uint32{0x01eacf6f, 0x00dc1581, 0x02dd34db, 0x03e4fb05, 0x01251cc7, 0x0245b599, 0x00fe2b3e, 0x00aa4d1e, 0x0366cf01, 0x001ee8ad}}, Y: Field{[10]uint32{0x016404bb, 0x02cc47e1, 0x02a6903f, 0x0230b212, 0x003dcc7e, 0x03a2f745, 0x01212865, 0x01e630dc, 0x0138f950, 0x00053f62}}},
+ {X: Field{[10]uint32{0x02b5d6bb, 0x00f7e6fa, 0x013a71c4, 0x008959af, 0x017f9e9d, 0x027a0e73, 0x0147af8a, 0x024367f2, 0x02fef69c, 0x000c18bc}}, Y: Field{[10]uint32{0x02f5ee58, 0x025caf01, 0x02bbaad9, 0x0350868d, 0x02064047, 0x0364a9c5, 0x01e7b719, 0x01b505ff, 0x00334991, 0x0036e12a}}},
+ {X: Field{[10]uint32{0x00b06e74, 0x0230bf55, 0x00ce3db3, 0x021f8c9f, 0x00f6fae6, 0x02d119c0, 0x034d695c, 0x03b229df, 0x009d69db, 0x003b57e5}}, Y: Field{[10]uint32{0x018930e3, 0x00bfafcb, 0x019fdee6, 0x008fc566, 0x032a6907, 0x026542f2, 0x0104ff92, 0x00f54194, 0x0060057b, 0x0011c938}}},
+ {X: Field{[10]uint32{0x021b7cdc, 0x01c39181, 0x028d3d71, 0x01427af5, 0x0030e129, 0x01ab3004, 0x01312fea, 0x0209d83a, 0x02033002, 0x00135957}}, Y: Field{[10]uint32{0x00ea99bb, 0x03b948c4, 0x00d0b7bc, 0x02789e33, 0x00439957, 0x027a5fc1, 0x01e046b6, 0x01526cbd, 0x01226c27, 0x00243bf0}}},
+ {X: Field{[10]uint32{0x02f1b35d, 0x019beaba, 0x0260dbf1, 0x02030d46, 0x0368e05e, 0x0120fe56, 0x029edf4a, 0x03bfb342, 0x0356b888, 0x003dad81}}, Y: Field{[10]uint32{0x00a5fb8c, 0x008a8f4e, 0x01df6bfd, 0x023c2f39, 0x00cb57e9, 0x02bebe6c, 0x0096b241, 0x005611aa, 0x02bdaa78, 0x0009efb7}}},
+ {X: Field{[10]uint32{0x03c55748, 0x00c06228, 0x00b516ca, 0x00e23f1f, 0x008c81c5, 0x0235ba8b, 0x004db945, 0x0288ddcb, 0x00aa942b, 0x0033164b}}, Y: Field{[10]uint32{0x03288158, 0x0144b476, 0x0307c63d, 0x02c75900, 0x01bb6bd2, 0x00d870fc, 0x0277d100, 0x015820db, 0x03cd358e, 0x000db8bd}}},
+ {X: Field{[10]uint32{0x02c1a456, 0x0280cbfd, 0x00edf6a7, 0x01865db4, 0x00f93721, 0x03b7d0c1, 0x023acb8c, 0x011a6086, 0x01dca5bb, 0x0012b2ea}}, Y: Field{[10]uint32{0x02262437, 0x0393a154, 0x021669ca, 0x00aa5cbc, 0x01d6fb30, 0x02ef40b3, 0x032287e9, 0x011fccf9, 0x003ab2ab, 0x002cdba6}}},
+ {X: Field{[10]uint32{0x03061f91, 0x011b76fa, 0x0072d974, 0x00f612a5, 0x017be363, 0x02e73a58, 0x010e0c61, 0x01e74cad, 0x005e0422, 0x00322946}}, Y: Field{[10]uint32{0x03d4b5cb, 0x02348b66, 0x000ff3c3, 0x0347fd97, 0x01cdb7cb, 0x019a3bac, 0x00c1df74, 0x00626f59, 0x00b7445e, 0x0033ea94}}},
+ {X: Field{[10]uint32{0x035f18f9, 0x02c41074, 0x0120e052, 0x002197e3, 0x01535faf, 0x0277842b, 0x01168a88, 0x03d844d9, 0x016707f4, 0x00307255}}, Y: Field{[10]uint32{0x00033749, 0x02ae5052, 0x027eb537, 0x0384dc23, 0x02543919, 0x015bd11c, 0x02fc1eb9, 0x01ad8c26, 0x003b3d95, 0x000d3def}}},
+ {X: Field{[10]uint32{0x0236a8f3, 0x006b9474, 0x038fa8df, 0x01a3cf87, 0x028bb68d, 0x00fdf495, 0x02093703, 0x01cdbad2, 0x03b736f6, 0x00237d3e}}, Y: Field{[10]uint32{0x0102122c, 0x01ddd917, 0x00c81229, 0x03ddc1dc, 0x00cef6b0, 0x006ece14, 0x007af267, 0x00b400e6, 0x01fe8e9a, 0x000f5c61}}},
+ {X: Field{[10]uint32{0x025af3dd, 0x02a979aa, 0x00297c2b, 0x02db47af, 0x01c2c8bb, 0x011d4047, 0x02a1ec0c, 0x01f2e3ca, 0x01f0e35c, 0x0000358d}}, Y: Field{[10]uint32{0x03a51a2f, 0x01a00f1e, 0x006435e3, 0x0264614f, 0x03441e5a, 0x0241eb97, 0x0190a5b5, 0x03a2cc6a, 0x02bdc588, 0x0000249b}}},
+ {X: Field{[10]uint32{0x0346a4bc, 0x0181c802, 0x01923d64, 0x0097a2d4, 0x013678b5, 0x0038e381, 0x014ea383, 0x014dd5d4, 0x012d5f86, 0x0002d634}}, Y: Field{[10]uint32{0x03438d3e, 0x01121041, 0x037f648e, 0x0103a920, 0x00d77c9e, 0x0265702d, 0x01d587ce, 0x02eace4d, 0x01835b0e, 0x003ded64}}},
+ {X: Field{[10]uint32{0x029a7f36, 0x029db6f6, 0x0178011b, 0x014d9187, 0x0212cb42, 0x01e3a26b, 0x03ad0755, 0x00d903b3, 0x028cb401, 0x002edf1a}}, Y: Field{[10]uint32{0x0036581c, 0x00836852, 0x00ba7d1c, 0x0100c1b7, 0x023c2f5c, 0x01c20a56, 0x0195b835, 0x035861a2, 0x02583774, 0x001f7680}}},
+ {X: Field{[10]uint32{0x0114a9e6, 0x00eca60d, 0x03b91968, 0x0065c8b3, 0x02f116b8, 0x03e96dea, 0x00a990a7, 0x0233be77, 0x00f792cc, 0x00053dbc}}, Y: Field{[10]uint32{0x024d7055, 0x01bc840e, 0x000b97b9, 0x017fc8e0, 0x01226104, 0x02cffb2d, 0x00e5aac4, 0x01663243, 0x03927a07, 0x002230d7}}},
+ {X: Field{[10]uint32{0x03448541, 0x02ef39dd, 0x014fa76b, 0x034125ab, 0x02fb60f4, 0x015fd2a8, 0x01ad8964, 0x02846177, 0x01f4eb9f, 0x0012e579}}, Y: Field{[10]uint32{0x01e71d21, 0x01c1b451, 0x038f4d27, 0x0023df8a, 0x01502d1f, 0x0004807b, 0x0087f512, 0x032cc6e8, 0x0387513a, 0x00078401}}},
+ {X: Field{[10]uint32{0x024b63ae, 0x032f4a8d, 0x01c16dce, 0x01993617, 0x03a7af53, 0x008cd568, 0x004aa312, 0x016cb18e, 0x03c067f7, 0x003a685f}}, Y: Field{[10]uint32{0x027fb8c7, 0x00302177, 0x01ac1956, 0x01a806d3, 0x030a40e0, 0x00ad806a, 0x038fcf01, 0x01148d8b, 0x0388ad67, 0x00108288}}},
+ {X: Field{[10]uint32{0x03ff9169, 0x02b55110, 0x0281cf10, 0x010e0cc6, 0x0096d4ff, 0x0020d04c, 0x023d066c, 0x03b2053b, 0x0136f320, 0x0000e761}}, Y: Field{[10]uint32{0x028ca248, 0x01b8d9f0, 0x023be7a7, 0x00d44e9e, 0x00c74345, 0x00152af4, 0x0166a556, 0x03a26183, 0x01e91478, 0x001c3ba2}}},
+ {X: Field{[10]uint32{0x03b636e8, 0x036a8f0b, 0x0320e001, 0x024f127f, 0x029f95b9, 0x00dc7389, 0x031dc72f, 0x0135b2fa, 0x00c80862, 0x0025de68}}, Y: Field{[10]uint32{0x00c2712e, 0x00292ae8, 0x03907d23, 0x03629932, 0x03369684, 0x000de482, 0x01a4b0e6, 0x01b14027, 0x03cc6729, 0x00276789}}},
+ {X: Field{[10]uint32{0x02f0b401, 0x022d3ed9, 0x01586bd7, 0x007f4559, 0x034a9747, 0x032bcdbf, 0x01c09de9, 0x02d23da9, 0x004a1dab, 0x00335316}}, Y: Field{[10]uint32{0x033446f1, 0x00cd0449, 0x017f0bc4, 0x03b711d9, 0x026fd60e, 0x02b4b0a3, 0x02104b0c, 0x001b8acf, 0x02b10eff, 0x0025640a}}},
+ {X: Field{[10]uint32{0x0161aba4, 0x02afba89, 0x0319688e, 0x01957549, 0x02dbeb3f, 0x01cadddb, 0x03164f7c, 0x018b2d44, 0x01f41423, 0x0011b284}}, Y: Field{[10]uint32{0x0034c9ff, 0x00b13569, 0x022f5e83, 0x01198813, 0x01bcfd09, 0x01898f18, 0x036d3cbd, 0x03510b7e, 0x031a2a2a, 0x00201810}}},
+ {X: Field{[10]uint32{0x0294a513, 0x030e7622, 0x003b475a, 0x0395fa3e, 0x01eb712d, 0x0000c688, 0x035c7535, 0x018fd5db, 0x01791ffb, 0x0037faf4}}, Y: Field{[10]uint32{0x03be75de, 0x032c6b71, 0x00f0aa71, 0x00b7b2ca, 0x006576af, 0x03df1843, 0x02aa0e22, 0x02d53081, 0x007e39b2, 0x0033fb5b}}},
+ {X: Field{[10]uint32{0x012c2469, 0x00e021d7, 0x03fcfe12, 0x0285e59f, 0x0143daf1, 0x028ee53e, 0x0233d9d7, 0x0018ed11, 0x013282fd, 0x0031c719}}, Y: Field{[10]uint32{0x01d376d0, 0x0346d52a, 0x02ba8620, 0x00d94ab7, 0x00f18a47, 0x00eafa50, 0x01f8aed3, 0x01a840e3, 0x03cd0e00, 0x0018bf35}}},
+ {X: Field{[10]uint32{0x00c0ff37, 0x022bbdcd, 0x007b1e9f, 0x0107f059, 0x026864ec, 0x0123edd6, 0x02640fbf, 0x02826938, 0x034ddc8b, 0x0018faee}}, Y: Field{[10]uint32{0x024ae28e, 0x01848176, 0x022df772, 0x013dc671, 0x01dbf1ae, 0x01cd82a1, 0x01090e19, 0x01bd2d07, 0x034b0fe1, 0x00396740}}},
+ {X: Field{[10]uint32{0x0112814a, 0x00536e77, 0x000bceea, 0x00709c75, 0x01ce6e5c, 0x006d624b, 0x02eac616, 0x02fc5963, 0x00c8cb51, 0x00194126}}, Y: Field{[10]uint32{0x00a65279, 0x0162be59, 0x01e6ee30, 0x0215c2b5, 0x027a6145, 0x02f57452, 0x0057769b, 0x00064c91, 0x03855d8e, 0x0039f999}}},
+ {X: Field{[10]uint32{0x03c43fd5, 0x00896a11, 0x0032ac41, 0x02a10304, 0x00090815, 0x0205b7d1, 0x0199c07b, 0x00218e05, 0x003f14c0, 0x00052878}}, Y: Field{[10]uint32{0x01fe98de, 0x03581bcd, 0x02ddb6d6, 0x00e1414c, 0x024926da, 0x02ee3bd7, 0x0366bac9, 0x02a23d1b, 0x0259bc6b, 0x000d4912}}},
+ {X: Field{[10]uint32{0x02903c5c, 0x03d4c56d, 0x00f084d6, 0x0056ef54, 0x03a4f14c, 0x004553ff, 0x00f9a167, 0x0287a03b, 0x02b2f6a8, 0x000727db}}, Y: Field{[10]uint32{0x0203a033, 0x0181974a, 0x0187dd26, 0x00f900be, 0x01538638, 0x0143bba6, 0x026fc511, 0x03fd8e6d, 0x01f52ca4, 0x0039af78}}},
+ {X: Field{[10]uint32{0x0170f8bf, 0x03c0863e, 0x029d97cf, 0x006b0381, 0x00b43ea6, 0x02c0355b, 0x00809664, 0x039ec41f, 0x02ed0bad, 0x000779c7}}, Y: Field{[10]uint32{0x00ee1434, 0x01f69986, 0x029bb5c6, 0x0176615d, 0x01ea99d6, 0x02def253, 0x00d42e16, 0x03babb5e, 0x02de77ed, 0x0002352c}}},
+ {X: Field{[10]uint32{0x035cb4b1, 0x01baaad7, 0x018c35a9, 0x00e420e3, 0x02479f7a, 0x02eeadc1, 0x022f0628, 0x0134baea, 0x0280ce95, 0x003d10ca}}, Y: Field{[10]uint32{0x02d579bf, 0x0286272f, 0x0302cc67, 0x01dca718, 0x0291f3d0, 0x03f024e0, 0x00abf476, 0x0290300f, 0x02adac34, 0x0025bf9b}}},
+ {X: Field{[10]uint32{0x0119fb21, 0x022d7a49, 0x00737482, 0x032b0549, 0x01cb37e1, 0x02109046, 0x023d3f96, 0x012bd158, 0x034d1796, 0x0023dc79}}, Y: Field{[10]uint32{0x004865ab, 0x01e15358, 0x0091cec0, 0x008021a7, 0x025b6b17, 0x02fda51b, 0x03678e4e, 0x03292e9d, 0x00dfd7f0, 0x001a643c}}},
+ {X: Field{[10]uint32{0x02a6745e, 0x00671271, 0x001a1200, 0x014b3bdc, 0x005a09d0, 0x025aa0e8, 0x01546e20, 0x03097999, 0x01575e3d, 0x00088a4c}}, Y: Field{[10]uint32{0x01c423b0, 0x01bab639, 0x0285986a, 0x020b7bfa, 0x0283d050, 0x02a5072a, 0x012bfae8, 0x01581f1e, 0x00874258, 0x002ab63e}}},
+ {X: Field{[10]uint32{0x0248a096, 0x00ea8abc, 0x017c63b7, 0x01a4eb08, 0x00cc57d0, 0x03989d94, 0x02bf5f29, 0x029a6a05, 0x02632ef3, 0x0019617f}}, Y: Field{[10]uint32{0x00fd9f8b, 0x00dea0db, 0x037cc12f, 0x00ff7847, 0x03dc8a89, 0x01bb3157, 0x019ca577, 0x006bfbb7, 0x03bb2028, 0x002082a8}}},
+ {X: Field{[10]uint32{0x03f67bf8, 0x007907e4, 0x01339195, 0x00bf9843, 0x01aaec47, 0x02fc18a0, 0x0163ce5a, 0x01472aca, 0x0079e55c, 0x000888c9}}, Y: Field{[10]uint32{0x03f927d2, 0x016a6efa, 0x0104bb7c, 0x0062a359, 0x02888a8f, 0x0304ca68, 0x03f0514b, 0x00b5ff99, 0x03ab2cf2, 0x0003864b}}},
+ {X: Field{[10]uint32{0x01df16fc, 0x01f6c097, 0x00f60826, 0x022dc3a6, 0x00446014, 0x02ce5b25, 0x00aba082, 0x001a7af3, 0x02fde4ba, 0x0036a340}}, Y: Field{[10]uint32{0x023fa2bb, 0x01d80879, 0x034d059a, 0x03422d9b, 0x01579756, 0x01e8b993, 0x0167e7c1, 0x0021291f, 0x013de337, 0x00068c08}}},
+ {X: Field{[10]uint32{0x02202ebf, 0x02a7c624, 0x02501708, 0x0249e3b9, 0x01ad49e0, 0x01313a2e, 0x038a0066, 0x020b7bc6, 0x0062854e, 0x0029bdcb}}, Y: Field{[10]uint32{0x01d03ba4, 0x00d54dc0, 0x0037edaa, 0x02246a0e, 0x002e2709, 0x008c63bd, 0x03c56abc, 0x0204102d, 0x032db08c, 0x0020d565}}},
+ {X: Field{[10]uint32{0x03c7db68, 0x016b8a8e, 0x028ee8d5, 0x033a67d6, 0x02a15077, 0x00df7315, 0x02f8c359, 0x02168171, 0x013a309e, 0x00081d3f}}, Y: Field{[10]uint32{0x022cff97, 0x0387c20c, 0x0182e53a, 0x03a6baa5, 0x023061a4, 0x001aa605, 0x018fc0e8, 0x00f250b9, 0x02eacb78, 0x00384700}}},
+ {X: Field{[10]uint32{0x01a1a5e3, 0x0071431e, 0x0106c861, 0x03cc6098, 0x0229aa59, 0x00a92d8b, 0x00d316f6, 0x02a8adc3, 0x0266fae9, 0x00127b55}}, Y: Field{[10]uint32{0x007643f7, 0x02eb1b20, 0x028b6324, 0x0024aa0d, 0x021477c2, 0x0261a59e, 0x000b19ef, 0x0138af73, 0x009aae14, 0x001729f9}}},
+ {X: Field{[10]uint32{0x016c1b1f, 0x004d8897, 0x014683ed, 0x03a63864, 0x01b582c4, 0x00dc88cd, 0x03472a71, 0x0393a617, 0x007ea1f7, 0x0008a27b}}, Y: Field{[10]uint32{0x01cbbeb1, 0x0144b2b6, 0x0090261a, 0x022f5c3a, 0x03b03f89, 0x01ff903d, 0x017bff67, 0x00219c14, 0x0318689a, 0x0000478a}}},
+ {X: Field{[10]uint32{0x01859164, 0x0273afe1, 0x00635bc4, 0x014bff1c, 0x03fbed0e, 0x022e8ae8, 0x02c64a55, 0x03befb62, 0x02be23f1, 0x003aa14b}}, Y: Field{[10]uint32{0x01cbb824, 0x02a98d50, 0x00fafc97, 0x01456c97, 0x0125ef13, 0x01e93905, 0x0266583c, 0x0298e5cc, 0x0341fe97, 0x002f78bb}}},
+ {X: Field{[10]uint32{0x0302f0ea, 0x026f86f4, 0x018553fe, 0x01f6905e, 0x00290b25, 0x03fbc229, 0x001a9548, 0x01f4fc6b, 0x00e67cc0, 0x0015c63c}}, Y: Field{[10]uint32{0x01acbe90, 0x0103b3da, 0x0094fd4e, 0x02828bae, 0x03a6ffca, 0x019169ab, 0x02d8bd53, 0x0175fb9c, 0x015bfca6, 0x00263b13}}},
+ {X: Field{[10]uint32{0x03810a4c, 0x03af6492, 0x01ad550b, 0x00fde033, 0x0310269c, 0x01d51638, 0x00f0650b, 0x03f5f7ba, 0x02abd77a, 0x0037d8a8}}, Y: Field{[10]uint32{0x00e4c034, 0x0120a6c2, 0x028cd54c, 0x023a7f22, 0x008d39fe, 0x022198f8, 0x03ea2e95, 0x0349ee02, 0x02cce384, 0x001a9981}}},
+ {X: Field{[10]uint32{0x005e6668, 0x01336ba0, 0x039aa497, 0x003bbf5d, 0x039ea7dc, 0x00254239, 0x039bd198, 0x009a2f0c, 0x00454b0c, 0x0004043f}}, Y: Field{[10]uint32{0x016410e1, 0x0197eafa, 0x0001c3fa, 0x03c674f6, 0x02d51194, 0x01adaf4a, 0x030a323c, 0x02d65cac, 0x02db0681, 0x001a1a8e}}},
+ {X: Field{[10]uint32{0x035c5c18, 0x0097b5a7, 0x0087bd54, 0x01101e41, 0x02072ca3, 0x0050524f, 0x03e93c96, 0x00e061a7, 0x00527567, 0x0022b1e6}}, Y: Field{[10]uint32{0x01d1c08e, 0x031cb26f, 0x03cec684, 0x03e67496, 0x00775375, 0x027bc7e4, 0x0172e04b, 0x03219f46, 0x0248fcbf, 0x002ecc50}}},
+ {X: Field{[10]uint32{0x03848b9d, 0x0321a48f, 0x021605f9, 0x01340866, 0x036f3f17, 0x017c2b78, 0x01f3bf44, 0x031f3b18, 0x031188cb, 0x001583a5}}, Y: Field{[10]uint32{0x01b9cd2f, 0x003bdb74, 0x02277bc8, 0x022b063b, 0x014d133f, 0x01939ba7, 0x03bf21fc, 0x03319efe, 0x02ce6775, 0x0027a4b6}}},
+ {X: Field{[10]uint32{0x01fb943a, 0x0241c03d, 0x009fee6d, 0x00bc1fdc, 0x0028eea5, 0x011a6870, 0x015ca088, 0x03ad9b32, 0x02044b95, 0x00231190}}, Y: Field{[10]uint32{0x009d0223, 0x0049c79a, 0x03aa51a1, 0x009654f0, 0x03a34920, 0x03afa965, 0x01b3a615, 0x014604c0, 0x005d7bc2, 0x002fc43f}}},
+ {X: Field{[10]uint32{0x031eb5aa, 0x034730a1, 0x013cb4d8, 0x036be1d1, 0x037f2245, 0x0362c0d9, 0x0377247c, 0x022dc4d4, 0x034cf357, 0x0034a4fd}}, Y: Field{[10]uint32{0x024a6f26, 0x02befb69, 0x03423ba7, 0x0352b8d5, 0x03f080e3, 0x02c24143, 0x0245931e, 0x03a8518f, 0x013a61df, 0x0021b080}}},
+ {X: Field{[10]uint32{0x03687d35, 0x02f5d135, 0x02aff4c6, 0x029ccd99, 0x01fefbf7, 0x01dbae4d, 0x027611ec, 0x01ec7f1d, 0x0241ae75, 0x000d665c}}, Y: Field{[10]uint32{0x004b2aa0, 0x013e5bf1, 0x01f9c599, 0x03bf3283, 0x022f36e0, 0x02f4e4f6, 0x007fd357, 0x0335330f, 0x021f246b, 0x002f2fa9}}},
+ {X: Field{[10]uint32{0x036464eb, 0x00d8095f, 0x006de15f, 0x0316f678, 0x00285a17, 0x013b8d77, 0x01a0ef84, 0x0065f4f0, 0x00977467, 0x00034258}}, Y: Field{[10]uint32{0x013e8783, 0x012dc2ef, 0x0303cd14, 0x01a67a22, 0x023dd448, 0x01e737a7, 0x02954bfc, 0x036e59a4, 0x02a51e06, 0x000d0abd}}},
+ {X: Field{[10]uint32{0x0241a777, 0x03e2632b, 0x01470bfd, 0x025c8e89, 0x01621257, 0x0086c3e1, 0x033a3755, 0x03ab59c0, 0x00992aea, 0x0023a1d7}}, Y: Field{[10]uint32{0x03c0bbd8, 0x01ea625c, 0x010c653f, 0x02187b1b, 0x02a5ee66, 0x00c49eb4, 0x020ba101, 0x0066ec13, 0x033d2d2f, 0x00092a89}}},
+ {X: Field{[10]uint32{0x02541855, 0x03786e6b, 0x01aee0d2, 0x0110215a, 0x00d622f4, 0x01cb16ee, 0x02f47d81, 0x00e93347, 0x01f30270, 0x002fd474}}, Y: Field{[10]uint32{0x039aa484, 0x0029c433, 0x0030f3c6, 0x00c510cf, 0x005918d9, 0x024d4f61, 0x01e6e409, 0x002b3eef, 0x0352b6c6, 0x0023e078}}},
+ {X: Field{[10]uint32{0x0341c26f, 0x02a35320, 0x03aee696, 0x016db372, 0x022ebb11, 0x0020fbd5, 0x032d1415, 0x01a1588a, 0x00620972, 0x001bedad}}, Y: Field{[10]uint32{0x003c9c73, 0x027c182e, 0x02032a89, 0x00c2eb28, 0x01468f25, 0x015e2e91, 0x02923b3e, 0x03367b32, 0x03bff9cf, 0x0027023d}}},
+ {X: Field{[10]uint32{0x03617438, 0x0237d8a4, 0x0389d067, 0x01a1acb3, 0x031db56f, 0x03fc117e, 0x026a21fa, 0x03de35f7, 0x02c18b5c, 0x001d560e}}, Y: Field{[10]uint32{0x0369f900, 0x0240d026, 0x0082df67, 0x00526100, 0x02071fe0, 0x0319a725, 0x0237c7d9, 0x011bfc38, 0x022cb085, 0x00209668}}},
+ {X: Field{[10]uint32{0x00c0ef92, 0x023fe72d, 0x00f36cdd, 0x038d8404, 0x014aabc2, 0x006ddba5, 0x0051c893, 0x0166b1fb, 0x0133a5d7, 0x00109846}}, Y: Field{[10]uint32{0x01ed4261, 0x00054748, 0x00bf8783, 0x000c3e67, 0x0158cde4, 0x013ae131, 0x038e2bd5, 0x032f3a8d, 0x00ce6b8a, 0x00222991}}},
+ {X: Field{[10]uint32{0x02f520d2, 0x00eb78c2, 0x038458a4, 0x025492eb, 0x016dff9c, 0x01c5af71, 0x02e776ca, 0x03e592f6, 0x01bf6128, 0x00090e9b}}, Y: Field{[10]uint32{0x001b7e50, 0x007c6948, 0x0025d609, 0x01368f64, 0x003dda74, 0x024af7ea, 0x0001850e, 0x036d2341, 0x028a5ce4, 0x00098a8b}}},
+ {X: Field{[10]uint32{0x00c2ac76, 0x02c4a476, 0x03d58082, 0x00b169da, 0x0046e57e, 0x01f7c56f, 0x01e9307a, 0x031b4810, 0x01751548, 0x00084af4}}, Y: Field{[10]uint32{0x039391bc, 0x032f5dc1, 0x01aaae33, 0x03d1c66a, 0x0257f04e, 0x022c9020, 0x03cc788a, 0x01c9cc99, 0x03c76cc9, 0x00209186}}},
+ {X: Field{[10]uint32{0x0161177b, 0x01f05ad3, 0x021fbc1a, 0x011842f5, 0x008ca8a5, 0x022b83b2, 0x00b3e562, 0x01b4aaa8, 0x030b21f9, 0x00369b40}}, Y: Field{[10]uint32{0x023f9fde, 0x02f6f9cb, 0x03d0a1ce, 0x00787aae, 0x012c2aad, 0x02d27b0a, 0x02b85961, 0x000a1d28, 0x02358fab, 0x0016d6f1}}},
+ {X: Field{[10]uint32{0x02c1f01f, 0x027d38fd, 0x0010886a, 0x01fb3fa0, 0x004a4313, 0x03ba923f, 0x001e1012, 0x010ec296, 0x02f055a2, 0x003708c2}}, Y: Field{[10]uint32{0x028180ca, 0x03e80f95, 0x018bb950, 0x02ad805c, 0x012eb5a9, 0x00f5ffbb, 0x030120da, 0x011635c0, 0x021be70a, 0x00343e63}}},
+ {X: Field{[10]uint32{0x01089df1, 0x01b412ea, 0x00797dc1, 0x01cbc291, 0x00ee9c59, 0x03c8c9a1, 0x00e73b56, 0x031a1a63, 0x023ac815, 0x0020b0b7}}, Y: Field{[10]uint32{0x03b8573d, 0x018b65e4, 0x02432544, 0x0110b07e, 0x010c8598, 0x007f85e3, 0x0253b8ec, 0x033063e8, 0x0065c6c2, 0x0007211c}}},
+ {X: Field{[10]uint32{0x020494a3, 0x01d85278, 0x037f6670, 0x0081a901, 0x02cc439f, 0x0002be26, 0x0165dfa2, 0x0245bb86, 0x028874e4, 0x001b28b7}}, Y: Field{[10]uint32{0x02662043, 0x014466a6, 0x02e0699b, 0x0276ba5a, 0x02cd5111, 0x01f71f39, 0x03cc1aa5, 0x02177690, 0x034497aa, 0x001bbc2c}}},
+ {X: Field{[10]uint32{0x0051d97f, 0x00ebd4de, 0x031f88d3, 0x029242f4, 0x03cf1149, 0x021003be, 0x02448f82, 0x03ed9481, 0x03c41728, 0x002e89a1}}, Y: Field{[10]uint32{0x02b4c0c4, 0x03c82c61, 0x01de5d61, 0x000090ec, 0x02033455, 0x0318b34c, 0x03803bb3, 0x039eaba2, 0x01f11f2c, 0x0025ab49}}},
+ {X: Field{[10]uint32{0x01553e0d, 0x028bc203, 0x01aa5f1e, 0x00cf91a8, 0x03d311f5, 0x02cc0cc8, 0x0032d5a4, 0x03cc0458, 0x00401947, 0x002b0d88}}, Y: Field{[10]uint32{0x00b30a22, 0x01c70fcb, 0x0137fdf1, 0x006dec82, 0x001d5b98, 0x005f6e47, 0x035881fa, 0x00a21169, 0x0395fef3, 0x0014e0e7}}},
+ {X: Field{[10]uint32{0x01049e13, 0x01a51d9e, 0x0246bac7, 0x0308b6ee, 0x024158c7, 0x00ecd727, 0x014241ec, 0x01c815a3, 0x00ee5b1b, 0x0019e03b}}, Y: Field{[10]uint32{0x0057d9a8, 0x02fd004c, 0x02e4ee0f, 0x015fb31e, 0x0246520d, 0x0158b9cc, 0x0090b9f3, 0x022234b7, 0x01f031e0, 0x0026b045}}},
+ {X: Field{[10]uint32{0x02a63732, 0x0040e434, 0x00254cbb, 0x00eaaca5, 0x01c0f765, 0x02ef4d0e, 0x0110d622, 0x035754c1, 0x0247e7a2, 0x00254dde}}, Y: Field{[10]uint32{0x00195fc0, 0x02f948fe, 0x01d7b091, 0x01a8d992, 0x03bb01f7, 0x0319155e, 0x01abe4df, 0x02d8b3f8, 0x01109daf, 0x0015eb24}}},
+ {X: Field{[10]uint32{0x02dd8921, 0x005e85ca, 0x0015e85f, 0x001ccc9d, 0x01486a85, 0x02f50abd, 0x02e97c59, 0x020efc1f, 0x01bf98fd, 0x00013c65}}, Y: Field{[10]uint32{0x011cf3dc, 0x0171ee1a, 0x03b59a86, 0x02f3c7bc, 0x011a057b, 0x01ac72b7, 0x027cae30, 0x008c8d8c, 0x032501c8, 0x00295ab3}}},
+ {X: Field{[10]uint32{0x00bcb53f, 0x00a46c53, 0x036bad9e, 0x034b5edb, 0x02cc0510, 0x036eaaf3, 0x0208240a, 0x00a67f48, 0x03d1efe8, 0x003b3347}}, Y: Field{[10]uint32{0x002c667c, 0x020111e9, 0x02b29135, 0x022fff09, 0x012d9b6f, 0x00663806, 0x03d6f2d3, 0x003e9715, 0x03216da5, 0x003b0bfc}}},
+ {X: Field{[10]uint32{0x0058f438, 0x0321386c, 0x01f2b1ee, 0x0004307b, 0x01502e76, 0x01f2dd1d, 0x00ff41cf, 0x010971ca, 0x004af2c3, 0x0031d5d1}}, Y: Field{[10]uint32{0x0362e53a, 0x01c0a0d8, 0x014b8fd0, 0x03f1a140, 0x039cd267, 0x0322d995, 0x0301105b, 0x0050f8a5, 0x01b6169f, 0x00387520}}},
+ {X: Field{[10]uint32{0x005250b8, 0x006d5f19, 0x00ac636f, 0x0170711c, 0x03aef325, 0x028468d9, 0x01996627, 0x001dd963, 0x037ebff5, 0x000d58a0}}, Y: Field{[10]uint32{0x019234d8, 0x01cb598a, 0x02b9cf4d, 0x00d729fe, 0x00fa1d0d, 0x02f2bf00, 0x01374bb0, 0x0163f333, 0x020d97aa, 0x003373d2}}},
+ {X: Field{[10]uint32{0x02d4a3a1, 0x00cc5f21, 0x00a82b11, 0x01f7ed95, 0x03b1f2f0, 0x03eb062d, 0x01339e97, 0x025eaf4b, 0x0245f62e, 0x0033a770}}, Y: Field{[10]uint32{0x00d184d5, 0x0295857c, 0x00b7927b, 0x00c2f9bb, 0x02fcaf1b, 0x030deaf7, 0x03e8520e, 0x03ee3993, 0x0325342a, 0x003db878}}},
+ {X: Field{[10]uint32{0x00858a12, 0x0275b8cb, 0x03dd542d, 0x023394e0, 0x02aab481, 0x02807ea2, 0x0271a8c1, 0x0112ea74, 0x033b48ee, 0x002b008b}}, Y: Field{[10]uint32{0x02ca76fa, 0x02e6ea5c, 0x01aaf45d, 0x01f99815, 0x02191e49, 0x00e58477, 0x009e0917, 0x03447c66, 0x03a891f8, 0x00078158}}},
+ {X: Field{[10]uint32{0x0251d9f9, 0x026702e9, 0x024ff3a9, 0x020a2332, 0x0355a837, 0x02dbc89d, 0x02e57e6d, 0x033eab91, 0x0282cb12, 0x0034753d}}, Y: Field{[10]uint32{0x01e71a36, 0x016639e1, 0x02960488, 0x0192b2e3, 0x03016072, 0x0059c88c, 0x023b4b07, 0x0064c530, 0x03e5870e, 0x0006c66f}}},
+ {X: Field{[10]uint32{0x031c8a37, 0x014c0ebf, 0x012ee243, 0x012cb401, 0x00892e75, 0x026f746a, 0x03bacd4f, 0x02be5117, 0x0171bbdd, 0x001e6588}}, Y: Field{[10]uint32{0x03b98a7d, 0x0056f8de, 0x0320ab85, 0x02a76bc1, 0x00fe47b6, 0x00d304d5, 0x0072f77b, 0x00afad15, 0x03de2a95, 0x002e2b09}}},
+ {X: Field{[10]uint32{0x009d3b90, 0x00cb8f14, 0x038d8cf0, 0x02c60e83, 0x0120ecb3, 0x001868bc, 0x03c3573b, 0x02d812ec, 0x03c42390, 0x00111685}}, Y: Field{[10]uint32{0x013f97b1, 0x02b52c5a, 0x026aae34, 0x01079026, 0x024ea769, 0x03bfd259, 0x00057c87, 0x03f97283, 0x00887c07, 0x002dd7d0}}},
+ {X: Field{[10]uint32{0x03402051, 0x020ef0c3, 0x02ccfb0e, 0x01244745, 0x038c39cd, 0x0345d5d8, 0x02c49a78, 0x03d1fd7e, 0x01f963a9, 0x001859ad}}, Y: Field{[10]uint32{0x012430b3, 0x005f77fa, 0x01d7e053, 0x03d56811, 0x02933d6d, 0x03b15d24, 0x03e46204, 0x02bac884, 0x02618302, 0x002e8cdd}}},
+ {X: Field{[10]uint32{0x03251531, 0x00574fe2, 0x034a9293, 0x036e8d36, 0x0330b6db, 0x012379f8, 0x027d0e40, 0x006bfa39, 0x02742890, 0x0033599b}}, Y: Field{[10]uint32{0x0002304b, 0x0146040e, 0x024f9e54, 0x0147c46c, 0x01440959, 0x027f227b, 0x02398e74, 0x02950390, 0x00b943cb, 0x002bdcb6}}},
+ {X: Field{[10]uint32{0x0123ac72, 0x0272eb41, 0x0014ee83, 0x02f35ee2, 0x015a6285, 0x036640d5, 0x01837a11, 0x01bf811b, 0x028cfd2f, 0x00320cef}}, Y: Field{[10]uint32{0x01a6af03, 0x00926132, 0x00ed603a, 0x02fbfa32, 0x02b6c07d, 0x01430ed3, 0x01751531, 0x008d8ea3, 0x010b4411, 0x001faa3e}}},
+ {X: Field{[10]uint32{0x025ea477, 0x0000da7c, 0x03613982, 0x013fa109, 0x02e40e4a, 0x03a56c58, 0x010ac1f5, 0x034e1762, 0x03363036, 0x00330617}}, Y: Field{[10]uint32{0x02338236, 0x03bae7c9, 0x02b42832, 0x01d50157, 0x03f66d07, 0x027384bb, 0x02aabe5a, 0x02726262, 0x0036146d, 0x00381da2}}},
+ {X: Field{[10]uint32{0x009c4a5a, 0x010f0a63, 0x01770479, 0x0043a4b2, 0x0177ccd9, 0x0101ee02, 0x03c9be70, 0x030aead9, 0x006324bb, 0x00052382}}, Y: Field{[10]uint32{0x02408797, 0x03f8eeb0, 0x036ee55d, 0x00c7edc5, 0x01b706a3, 0x004e3a5f, 0x02733ae6, 0x03f20277, 0x00859cdd, 0x00227a0f}}},
+ {X: Field{[10]uint32{0x02c95c76, 0x038048af, 0x03a7e460, 0x012553d4, 0x010cf8b6, 0x00a8dd87, 0x008d9b19, 0x02d60d72, 0x01c1aba5, 0x0026c54e}}, Y: Field{[10]uint32{0x00efdc18, 0x03c8756b, 0x0395b967, 0x010a88c9, 0x00d8472e, 0x02a87389, 0x00895f13, 0x01676b53, 0x021945be, 0x000e4737}}},
+ {X: Field{[10]uint32{0x024495cd, 0x02e29cc3, 0x03dd3e93, 0x01d2a5d2, 0x03a60327, 0x03d09f31, 0x029e575f, 0x00074dda, 0x02c175fb, 0x001a28b9}}, Y: Field{[10]uint32{0x00e00752, 0x00f7139e, 0x014f2557, 0x02df89cf, 0x030666ca, 0x03166591, 0x0269b741, 0x0037797c, 0x0084c8c3, 0x00054f99}}},
+ {X: Field{[10]uint32{0x01dfb04e, 0x01b08a18, 0x030b66c3, 0x028b9f0b, 0x007669e9, 0x00cf332b, 0x02334405, 0x029030ed, 0x004935a5, 0x00163fa4}}, Y: Field{[10]uint32{0x0136e1bb, 0x03eed815, 0x01555b39, 0x009c569e, 0x0371ac1e, 0x0356669d, 0x0106e2a2, 0x0038b5c7, 0x01c59245, 0x002cda41}}},
+ {X: Field{[10]uint32{0x02ac7080, 0x0169e0d7, 0x00378337, 0x029838a6, 0x0103e9bc, 0x026d809f, 0x01aff2a1, 0x0366c2ff, 0x0396dcbd, 0x00208f03}}, Y: Field{[10]uint32{0x02ad0a7f, 0x0334823c, 0x03db8895, 0x02c36410, 0x028831a2, 0x00efcf0d, 0x03eb6d54, 0x026962ea, 0x02ccf34d, 0x00364551}}},
+ {X: Field{[10]uint32{0x02d14537, 0x03378800, 0x02caf533, 0x01493df7, 0x03d68121, 0x00c04fb9, 0x03e7b710, 0x03e42157, 0x02aee908, 0x001295ab}}, Y: Field{[10]uint32{0x0222b7a2, 0x02be42b1, 0x00d8d021, 0x03ecb80c, 0x023129a7, 0x01e43ae6, 0x01995b33, 0x00634846, 0x000133b7, 0x001f9832}}},
+ {X: Field{[10]uint32{0x01240334, 0x01b28efe, 0x0168a71f, 0x03d27f82, 0x0382a64b, 0x02204c66, 0x0194e2b8, 0x03d7cb11, 0x0055e6c4, 0x001b03ce}}, Y: Field{[10]uint32{0x03b5203c, 0x03f8d348, 0x02fc83ac, 0x0346d355, 0x03e1478a, 0x0016bab4, 0x01ade853, 0x02eea12d, 0x036da9ef, 0x0017239e}}},
+ {X: Field{[10]uint32{0x01ac9632, 0x02e8a8cd, 0x033313ae, 0x002d4923, 0x000496e4, 0x005cb992, 0x01de21cf, 0x01241c57, 0x032cd170, 0x003673e3}}, Y: Field{[10]uint32{0x00934344, 0x00e0570f, 0x028e6b07, 0x0242db0f, 0x0315867e, 0x00d755fd, 0x0198299c, 0x03e4c02f, 0x0251b440, 0x0024a9f0}}},
+ {X: Field{[10]uint32{0x0193d898, 0x01d9fdee, 0x039e27c6, 0x00a3f3c6, 0x01775927, 0x026bcc0e, 0x027ed43d, 0x0371eebe, 0x00928b91, 0x0012ff2d}}, Y: Field{[10]uint32{0x005d14f7, 0x032a5269, 0x03dda7bf, 0x03a791c0, 0x001854a4, 0x00ea8cee, 0x00c9a4ae, 0x035042cd, 0x02f1ecd9, 0x0009da81}}},
+ {X: Field{[10]uint32{0x03c434e8, 0x00066b08, 0x00792944, 0x01d7964a, 0x027cdcc5, 0x0055965b, 0x0193dee8, 0x00cbd13b, 0x0093ac40, 0x002af796}}, Y: Field{[10]uint32{0x0195c40a, 0x012c0360, 0x0116ed77, 0x02c93066, 0x0346162c, 0x033bc0be, 0x002af7a7, 0x018113a5, 0x00092b9e, 0x001780ea}}},
+ {X: Field{[10]uint32{0x026e1cc5, 0x00ec3f54, 0x020a803b, 0x02b8c6f8, 0x004482f1, 0x00a07688, 0x00814b49, 0x02a3845e, 0x03077a98, 0x00081758}}, Y: Field{[10]uint32{0x03e4d780, 0x027fd41b, 0x036147a7, 0x03495595, 0x00b9cab7, 0x01b992ff, 0x015cb19d, 0x00d581ae, 0x015c943e, 0x0012ef8a}}},
+ {X: Field{[10]uint32{0x001c43bd, 0x02337491, 0x00b7c3b9, 0x02f116fd, 0x01b59653, 0x01b980c7, 0x0228a423, 0x00e871b0, 0x0083e667, 0x0032d313}}, Y: Field{[10]uint32{0x031a2769, 0x013a3ab8, 0x01149cfe, 0x00307fa9, 0x0062f334, 0x016bf9c5, 0x002ff397, 0x01fa83df, 0x02763926, 0x00050b80}}},
+ {X: Field{[10]uint32{0x00ca77a7, 0x02ec894b, 0x004f2b5a, 0x02cb7b1f, 0x0392ccf0, 0x024cd5bb, 0x0354a4b4, 0x02f7eceb, 0x00b27ff5, 0x0009687d}}, Y: Field{[10]uint32{0x035c3c38, 0x03fe5ecc, 0x03fe93e9, 0x022ca229, 0x0136c32e, 0x02647cb6, 0x033b3afc, 0x020d05f7, 0x0193153f, 0x0006c977}}},
+ {X: Field{[10]uint32{0x0254237b, 0x029dea8a, 0x026dc89c, 0x015255ed, 0x015a1b71, 0x0195f2e2, 0x011c863a, 0x02835a94, 0x02a77eec, 0x00088bdd}}, Y: Field{[10]uint32{0x00b0b289, 0x01680bcb, 0x03492794, 0x0210bda8, 0x01a205c8, 0x019974a5, 0x03a598a8, 0x03e23421, 0x02e064ef, 0x002a3caf}}},
+ {X: Field{[10]uint32{0x034dfa8d, 0x032f63ce, 0x002daec3, 0x009a67c7, 0x02379f5c, 0x024dad01, 0x03f10156, 0x01946d06, 0x028d1ad2, 0x000cb50c}}, Y: Field{[10]uint32{0x0188261d, 0x033a4c1e, 0x0290d204, 0x028741a4, 0x02df5de0, 0x0391e025, 0x00d40623, 0x028ced7d, 0x02e23294, 0x0027db79}}},
+ {X: Field{[10]uint32{0x01f1d3f0, 0x0195a460, 0x01b14e82, 0x00c33e64, 0x01187d08, 0x01998adf, 0x01937900, 0x0335c0ec, 0x00be6948, 0x00337a7b}}, Y: Field{[10]uint32{0x03029720, 0x03a06c56, 0x015e24bc, 0x03ffe554, 0x01f5abe8, 0x022b55b1, 0x037794ce, 0x00634a6d, 0x03320e12, 0x0021221e}}},
+ {X: Field{[10]uint32{0x0348947d, 0x0354f4e9, 0x00b80011, 0x01f89979, 0x02509f4e, 0x0141a801, 0x03435826, 0x03bd32a0, 0x005c3baa, 0x002f227d}}, Y: Field{[10]uint32{0x03e68475, 0x00a7d79b, 0x03a49511, 0x02bdc89a, 0x0209fa15, 0x00d3de6f, 0x0272fce5, 0x02c519e8, 0x00a2714d, 0x003bfd6f}}},
+ {X: Field{[10]uint32{0x01b51d4f, 0x003dd237, 0x03df0994, 0x02e6d5fb, 0x0139b409, 0x010d2a6b, 0x014ba655, 0x02eff8af, 0x00c0eea2, 0x001899e3}}, Y: Field{[10]uint32{0x03a74acf, 0x0141470d, 0x00883673, 0x02e79ef3, 0x02a5cc8a, 0x03db7553, 0x0161245e, 0x034c7470, 0x034fd234, 0x00234e13}}},
+ {X: Field{[10]uint32{0x02bc93d0, 0x027e4ce1, 0x02f8af21, 0x030d3fa1, 0x02df7c0a, 0x037e89cd, 0x01c89cf3, 0x0388958f, 0x0139c63a, 0x00057807}}, Y: Field{[10]uint32{0x00cfb13b, 0x01d56204, 0x03ef42bc, 0x0267e8c5, 0x01e7efb9, 0x025da618, 0x03251334, 0x032e0705, 0x0132314f, 0x0007d58d}}},
+ {X: Field{[10]uint32{0x03ac10e3, 0x03cd92ca, 0x03eb97b8, 0x000c06f6, 0x0052c601, 0x010a2ba7, 0x018e813e, 0x009637fe, 0x03493493, 0x0013e34a}}, Y: Field{[10]uint32{0x0169b73f, 0x02c99380, 0x021bcd66, 0x039085b2, 0x031e8c58, 0x03e467d5, 0x00580283, 0x0176db00, 0x017b6795, 0x00231f44}}},
+ {X: Field{[10]uint32{0x016f1d61, 0x02249dad, 0x0136f1a7, 0x02d3d124, 0x003b0d77, 0x0374d623, 0x03e397cd, 0x01ad8260, 0x031a2bf1, 0x00345338}}, Y: Field{[10]uint32{0x013f0910, 0x03cdcd2b, 0x0335611e, 0x031c9613, 0x01833f24, 0x0375eefd, 0x022ca6e4, 0x0360e8dc, 0x0220b227, 0x0026857d}}},
+ {X: Field{[10]uint32{0x02f780f1, 0x03a38ed9, 0x008419c3, 0x028b104c, 0x00024c1a, 0x02ffa800, 0x00d656c9, 0x01d7d704, 0x034eb8c2, 0x000d4886}}, Y: Field{[10]uint32{0x03f8e808, 0x0317764e, 0x03fa0f8e, 0x01186d77, 0x0306888d, 0x009de195, 0x038382bb, 0x02bf2ef5, 0x02025274, 0x000f4716}}},
+ {X: Field{[10]uint32{0x00a8ddc8, 0x02b02a8d, 0x0043c49e, 0x005dc9c2, 0x0083f686, 0x03d10ec8, 0x00ff6f29, 0x0306e3d1, 0x003b1c76, 0x0020bb67}}, Y: Field{[10]uint32{0x015f1340, 0x0077177a, 0x02fc48a9, 0x0162bbf5, 0x00e81f5a, 0x000009a4, 0x002081d9, 0x00ae19cd, 0x026bc2ab, 0x00098ba7}}},
+ {X: Field{[10]uint32{0x00717b85, 0x0078d244, 0x02118d18, 0x012bfd71, 0x009c49b6, 0x010ba5f1, 0x02342f77, 0x02a8dba1, 0x020eacf2, 0x002467a5}}, Y: Field{[10]uint32{0x0145b861, 0x020bf936, 0x016505a0, 0x010b1e08, 0x03ef530d, 0x030ca7c4, 0x01ce9d5a, 0x0059e736, 0x014ea3ea, 0x0012d46a}}},
+ {X: Field{[10]uint32{0x03c3ec7d, 0x03f4d996, 0x02c3065f, 0x0386b3c1, 0x02edca3d, 0x0190f398, 0x02abcafa, 0x01546afb, 0x023e20ce, 0x00336b2b}}, Y: Field{[10]uint32{0x02b95bb6, 0x00881c5b, 0x009b13d3, 0x0292cd07, 0x02235df4, 0x02953d3b, 0x00c326df, 0x001dab8a, 0x0313872b, 0x002aab2e}}},
+ {X: Field{[10]uint32{0x02a5f2ab, 0x027389a4, 0x015a8f94, 0x03fed98f, 0x00de3a62, 0x001c9bc2, 0x0180f829, 0x017027cf, 0x00e21bd0, 0x00069142}}, Y: Field{[10]uint32{0x00ca97ba, 0x00c83d4b, 0x013e602b, 0x0315b497, 0x00c6e672, 0x02fc0a65, 0x00459bf4, 0x02c0cdd8, 0x03f0976e, 0x00149e03}}},
+ {X: Field{[10]uint32{0x003a0b45, 0x005098a0, 0x018ddd52, 0x01dfcea8, 0x02e9129f, 0x03c9b262, 0x00f73d13, 0x03c972a5, 0x02ed5686, 0x002391bb}}, Y: Field{[10]uint32{0x01edcf4d, 0x0326bd87, 0x00200782, 0x0159843a, 0x027253d5, 0x01fc2bad, 0x03f2ed1e, 0x03ba9f21, 0x038d7041, 0x003b95b4}}},
+ {X: Field{[10]uint32{0x017e4031, 0x0396ecda, 0x00532a92, 0x0079e828, 0x0168d617, 0x02d8611a, 0x01797c15, 0x02cc276b, 0x00fa3bd6, 0x001e0a44}}, Y: Field{[10]uint32{0x00e4b3f4, 0x0025d4d1, 0x022ddee4, 0x03fdb4fc, 0x00717914, 0x011ac2a0, 0x00c31b89, 0x00a8a3a1, 0x0365c44c, 0x003fc5e0}}},
+ {X: Field{[10]uint32{0x01f64e8a, 0x00f246b9, 0x01041ae9, 0x02a3e41a, 0x0265c50a, 0x013c75f4, 0x002d0a29, 0x004329b3, 0x028cc5a7, 0x0000aae7}}, Y: Field{[10]uint32{0x03f89b9b, 0x00ebf269, 0x001c9db2, 0x000a84f6, 0x03185366, 0x0164d251, 0x03cf23da, 0x012eb419, 0x010fa225, 0x0002aaf3}}},
+ {X: Field{[10]uint32{0x0382c9e5, 0x006f4758, 0x037a5fcb, 0x03091843, 0x03a094dd, 0x01494a4d, 0x020cc533, 0x016c8a0c, 0x03c44fb2, 0x00341199}}, Y: Field{[10]uint32{0x02b0f74e, 0x0351e52c, 0x00f5ce31, 0x03600c19, 0x026e5a91, 0x02b13ea1, 0x02f436ec, 0x01239e1a, 0x013f8bf0, 0x001f24d8}}},
+ {X: Field{[10]uint32{0x0286b0f7, 0x012be0db, 0x01252def, 0x00a724d8, 0x00f157bd, 0x0160e265, 0x01b0476c, 0x03769294, 0x02f9799c, 0x002e711d}}, Y: Field{[10]uint32{0x0297932e, 0x02aad2b2, 0x029eff13, 0x036aa414, 0x03d1a9b0, 0x01a11549, 0x01cefbc4, 0x0122cfc9, 0x019bc779, 0x000bb1d8}}},
+ {X: Field{[10]uint32{0x006eee85, 0x036a104a, 0x02e0d64f, 0x03ff7b8a, 0x004ef765, 0x03591ce7, 0x01d8c565, 0x0265012e, 0x01abf13f, 0x00242f7b}}, Y: Field{[10]uint32{0x00cf21f5, 0x00a04138, 0x037255c6, 0x0376e53d, 0x007f8bb8, 0x0061f49b, 0x02812a48, 0x0122ad2f, 0x0082d9a8, 0x002a7d1e}}},
+ {X: Field{[10]uint32{0x00485c84, 0x001cdebf, 0x01e7ba68, 0x03377356, 0x03ff4208, 0x013afc3f, 0x02b83107, 0x01dcd300, 0x00a80217, 0x002830e5}}, Y: Field{[10]uint32{0x0109364b, 0x003975c3, 0x02e3fd64, 0x02d8bcd3, 0x00e835ca, 0x026dec59, 0x002434fe, 0x00bcd3f2, 0x0132b4c6, 0x00313c22}}},
+ {X: Field{[10]uint32{0x00294c3e, 0x02ad434c, 0x00273b9a, 0x008fafab, 0x02bd3c29, 0x00b9da53, 0x00f949c7, 0x03a318a1, 0x01bd3896, 0x0006c0c6}}, Y: Field{[10]uint32{0x02ee339d, 0x03b54be8, 0x02080053, 0x01c8768c, 0x021401b6, 0x000edec6, 0x038233d7, 0x02ab9f97, 0x029b17c3, 0x000576ff}}},
+ {X: Field{[10]uint32{0x03dc719d, 0x00b8f66f, 0x032ab699, 0x00ecea43, 0x001210eb, 0x01463730, 0x03a93540, 0x005afa89, 0x030fe92f, 0x0026453b}}, Y: Field{[10]uint32{0x03c4086b, 0x0370ac6c, 0x02b8398d, 0x00b218cc, 0x005e671d, 0x02bd968c, 0x01f3629f, 0x002c47a3, 0x00650cea, 0x001e82f4}}},
+ {X: Field{[10]uint32{0x01f60d3e, 0x03b744f7, 0x03810daa, 0x01b5eb39, 0x015798ad, 0x02572585, 0x02fa1763, 0x03d8e1f6, 0x02195599, 0x000e9a3e}}, Y: Field{[10]uint32{0x00e71a89, 0x025afdf5, 0x0054f5cd, 0x03ba6a2b, 0x00de158e, 0x00190729, 0x00faef1e, 0x01a76ce5, 0x02e6a3f5, 0x001d15d6}}},
+ {X: Field{[10]uint32{0x0288b2e5, 0x01a71817, 0x023859da, 0x03b1fc04, 0x0241193d, 0x006fff23, 0x01872b1b, 0x01f8c43c, 0x0141e2b6, 0x002dcd87}}, Y: Field{[10]uint32{0x00668344, 0x0241f860, 0x029c29b0, 0x02f7c42f, 0x00315347, 0x01b9eb34, 0x00f5890f, 0x026f29cf, 0x039566d4, 0x003ea75a}}},
+ {X: Field{[10]uint32{0x01174e81, 0x0216e0c9, 0x01bc637b, 0x034c4ba6, 0x02aa93a4, 0x03edffe7, 0x03d13543, 0x011903db, 0x018742d8, 0x000d07a6}}, Y: Field{[10]uint32{0x03fcfc95, 0x00adae62, 0x007ac861, 0x0269bb5d, 0x01e95b4e, 0x018b97f0, 0x01cbcff7, 0x01861d84, 0x00dc91b4, 0x00312582}}},
+ {X: Field{[10]uint32{0x0083e6f6, 0x03dd76b1, 0x0026e2a0, 0x02febe1d, 0x001f6420, 0x000b25c6, 0x00849094, 0x03d55d00, 0x0045de34, 0x0020f5a9}}, Y: Field{[10]uint32{0x01dddfc1, 0x030486e8, 0x030fd787, 0x00249df6, 0x00e9fbed, 0x012a5376, 0x01cf48a1, 0x03ed4d7b, 0x034458c8, 0x001ea1b6}}},
+ {X: Field{[10]uint32{0x02ac351b, 0x02e12e49, 0x03bdda40, 0x0218bf3f, 0x0032d176, 0x01a92676, 0x0082bf1c, 0x032ba624, 0x035a014b, 0x0013c448}}, Y: Field{[10]uint32{0x014a2acf, 0x018cce7a, 0x022886e9, 0x03b6f967, 0x0308678d, 0x01dce72d, 0x00021c83, 0x009a745a, 0x00f15f31, 0x002d4189}}},
+ {X: Field{[10]uint32{0x03ee2b89, 0x03a6a734, 0x0115b998, 0x024b0208, 0x02eafb38, 0x02db8f5f, 0x0285907a, 0x0384b3a9, 0x032721cf, 0x0023eed5}}, Y: Field{[10]uint32{0x02906680, 0x0248e8d9, 0x03ab791c, 0x0296be2f, 0x00ef1bb1, 0x0296d6a9, 0x018de8e2, 0x02386973, 0x0285c814, 0x00369ff9}}},
+ {X: Field{[10]uint32{0x0096c3de, 0x00b167d5, 0x02bd63f5, 0x03cbf19c, 0x01286023, 0x00fd6627, 0x0205b1f5, 0x00fd7dd9, 0x023cb924, 0x00201329}}, Y: Field{[10]uint32{0x035233c6, 0x01c2c175, 0x01fd8431, 0x01b52722, 0x00865fab, 0x02bad13e, 0x038300ee, 0x00455a86, 0x0112eedb, 0x00000dca}}},
+ {X: Field{[10]uint32{0x012a5365, 0x005da70b, 0x03bf58cc, 0x035c77a6, 0x0060b48e, 0x01598341, 0x018de870, 0x02a091ac, 0x006ab83c, 0x002c9e57}}, Y: Field{[10]uint32{0x0249d820, 0x0024d6ca, 0x0041f90d, 0x015e6f70, 0x01db6841, 0x021aa280, 0x03510441, 0x002dad34, 0x02b58853, 0x0019ba30}}},
+ {X: Field{[10]uint32{0x02d9dad3, 0x0317814d, 0x02588208, 0x00ec640e, 0x00caf390, 0x001193ad, 0x0139d07c, 0x03645302, 0x004db61b, 0x0037ad4c}}, Y: Field{[10]uint32{0x015777ca, 0x0281aa53, 0x03b27762, 0x0360fdec, 0x0040507d, 0x039201cf, 0x00b62491, 0x0179d9a9, 0x0343e7e4, 0x00063553}}},
+ {X: Field{[10]uint32{0x037714c4, 0x00f3aee6, 0x035cf774, 0x03a15d27, 0x01eb79d5, 0x00cd9a40, 0x0061d696, 0x03b0d2db, 0x0102d177, 0x000446fd}}, Y: Field{[10]uint32{0x016a4e54, 0x030e35da, 0x000f0bf8, 0x0083f99e, 0x0107d8ba, 0x0391e83c, 0x036bad45, 0x02ef33c0, 0x012abc38, 0x002fa035}}},
+ {X: Field{[10]uint32{0x00be92a5, 0x006f4e37, 0x00f8b016, 0x01419d34, 0x01daceeb, 0x02e18e19, 0x014e71fd, 0x014e4fa3, 0x0343c15c, 0x00252c43}}, Y: Field{[10]uint32{0x01be6dc7, 0x02e6ddfd, 0x02e9bd25, 0x035fc682, 0x038d087d, 0x004161b3, 0x03f77291, 0x0230d96c, 0x032ea34e, 0x003b156b}}},
+ {X: Field{[10]uint32{0x02895593, 0x007c6203, 0x02248d3b, 0x00b44051, 0x03fb4a42, 0x00b4c0da, 0x03e529d6, 0x01de1314, 0x03f22d44, 0x001189ea}}, Y: Field{[10]uint32{0x037b3e4a, 0x018140fa, 0x01c483a5, 0x03d31fa3, 0x00cbea9e, 0x01947a52, 0x00172d56, 0x02d66dce, 0x018d6110, 0x0022cd07}}},
+ {X: Field{[10]uint32{0x017c355f, 0x02e91a0a, 0x02a80757, 0x02fb05ca, 0x03585dca, 0x037714c9, 0x035727b5, 0x03730dcd, 0x01cfdfea, 0x00067385}}, Y: Field{[10]uint32{0x01e60f81, 0x0333f613, 0x03a6625c, 0x01f816ce, 0x0283853e, 0x021b3bc9, 0x02ca9ec8, 0x024505cd, 0x015ece82, 0x00014195}}},
+ {X: Field{[10]uint32{0x039a3e55, 0x0373f42a, 0x01ef0fe6, 0x00b85b4f, 0x01295068, 0x0387e45b, 0x03e97d80, 0x03f2ba30, 0x02818293, 0x001d6901}}, Y: Field{[10]uint32{0x008c7930, 0x01f45577, 0x01f22a04, 0x002fce7d, 0x03452678, 0x0254a62d, 0x039f2af4, 0x03893604, 0x01c0e02e, 0x0014a4b5}}},
+ {X: Field{[10]uint32{0x033bf578, 0x03de6f07, 0x026f1cbb, 0x033a3cc8, 0x0388cb82, 0x03d29ccc, 0x03a341d4, 0x01da1ad1, 0x038def4b, 0x0029fae2}}, Y: Field{[10]uint32{0x018199a1, 0x03f24fef, 0x01cc880c, 0x028a1a19, 0x0124407c, 0x0129c962, 0x0352bf39, 0x015df2ce, 0x036fe238, 0x00217662}}},
+ {X: Field{[10]uint32{0x03da647a, 0x024e37ac, 0x02c00e8a, 0x01114385, 0x016c9f83, 0x03067dae, 0x0352d143, 0x00759c2c, 0x02b5dcc9, 0x00296e68}}, Y: Field{[10]uint32{0x039571c1, 0x01cbca1e, 0x00c29634, 0x004ff45b, 0x0126fc4e, 0x009833fc, 0x0335aba1, 0x0011c590, 0x03a83985, 0x003c4b53}}},
+ {X: Field{[10]uint32{0x00015cca, 0x00273211, 0x0217157c, 0x00c5e2b5, 0x01df58d8, 0x026c3f7d, 0x037c20ee, 0x02269977, 0x02ed48d5, 0x001e6671}}, Y: Field{[10]uint32{0x018f5756, 0x02dcc750, 0x010145bc, 0x003489d5, 0x00aaacaf, 0x034fc4b2, 0x00b3fecb, 0x030e8715, 0x01053706, 0x00055bd1}}},
+ {X: Field{[10]uint32{0x009829b1, 0x02b4de71, 0x028e20fe, 0x0161b70b, 0x01422020, 0x030171eb, 0x01baade6, 0x03b746e1, 0x01f3b708, 0x00223fa0}}, Y: Field{[10]uint32{0x03727c01, 0x035035f7, 0x01b10d99, 0x03376a87, 0x008972a8, 0x0182814b, 0x00341502, 0x01f4aec5, 0x024fb04b, 0x003358b8}}},
+ {X: Field{[10]uint32{0x03e86763, 0x015f57d3, 0x0264e895, 0x00dd421e, 0x01912165, 0x01a529df, 0x03192beb, 0x0187f908, 0x02b0cfcc, 0x00063ec3}}, Y: Field{[10]uint32{0x00169785, 0x00a3174e, 0x01922b1f, 0x038d548a, 0x0380f4a6, 0x03b61c75, 0x0288e230, 0x02d594e3, 0x031fdfe8, 0x000f3dca}}},
+ {X: Field{[10]uint32{0x03d38aac, 0x006721bb, 0x00b660d9, 0x03ebad7f, 0x02004719, 0x02bc639d, 0x03171d5b, 0x03cb333f, 0x02312be4, 0x0036b6cc}}, Y: Field{[10]uint32{0x018bc0d7, 0x03d2cc3e, 0x039813d9, 0x00c31a9c, 0x0150e0b3, 0x02855112, 0x0340e423, 0x03a2f2c1, 0x005d752d, 0x002359e5}}},
+ {X: Field{[10]uint32{0x039e5c8e, 0x015fc1a8, 0x039c2d80, 0x0271b070, 0x027b17e0, 0x038c416e, 0x03aa0cb0, 0x027d91ac, 0x00867cdd, 0x003c2e68}}, Y: Field{[10]uint32{0x02f4e9de, 0x032782d7, 0x01c81370, 0x000f052f, 0x003ff913, 0x020872ef, 0x01cf4319, 0x03460103, 0x025625e6, 0x000ad4d3}}},
+ {X: Field{[10]uint32{0x02fcb7e0, 0x03efa2b0, 0x0132d406, 0x0199922e, 0x031cd601, 0x01cba350, 0x010e2536, 0x030e9f97, 0x03052e49, 0x00370382}}, Y: Field{[10]uint32{0x03b791d9, 0x0151f871, 0x01bea086, 0x03ce087f, 0x02223e7a, 0x02487892, 0x0139cb56, 0x01946933, 0x03868e1c, 0x003fe465}}},
+ {X: Field{[10]uint32{0x02eb91ee, 0x02a9688c, 0x01038b74, 0x023c4604, 0x016bea74, 0x00571b29, 0x02c365b5, 0x03751cd7, 0x0298fb6d, 0x0039c72b}}, Y: Field{[10]uint32{0x01600266, 0x020af3c7, 0x0106ce66, 0x029ca007, 0x019ed731, 0x036f47d0, 0x03c5bc75, 0x0083db8b, 0x0018396c, 0x002012ba}}},
+ {X: Field{[10]uint32{0x00ddfd8c, 0x01e4ad35, 0x03b9f88d, 0x01a081e6, 0x006b5d53, 0x02f4b29b, 0x0194d486, 0x0393fced, 0x01b2f7b2, 0x0014346d}}, Y: Field{[10]uint32{0x015cc744, 0x012f2213, 0x01f5b6e3, 0x039d0083, 0x015c554f, 0x02ae863f, 0x039b03f0, 0x0019821a, 0x00c518fa, 0x00155b3d}}},
+ {X: Field{[10]uint32{0x002701aa, 0x00c8746f, 0x01747325, 0x021ad1c2, 0x00966348, 0x008fdb2d, 0x00c5e86f, 0x0365537e, 0x003e2bd5, 0x003021d0}}, Y: Field{[10]uint32{0x03507712, 0x028894a8, 0x00679003, 0x012f8ac0, 0x02258bc1, 0x03b61f81, 0x023a549e, 0x01cc001b, 0x0187d851, 0x00276d12}}},
+ {X: Field{[10]uint32{0x016d6894, 0x003d45ef, 0x002b3798, 0x03d47a49, 0x014d45f8, 0x03da28a6, 0x00988fd3, 0x00d08b7a, 0x03f7f384, 0x0037440d}}, Y: Field{[10]uint32{0x01cccce1, 0x030646c9, 0x025f254f, 0x03395ac1, 0x021a9c08, 0x01cc24e9, 0x01ab8b76, 0x02f3762c, 0x01615cfb, 0x0032a39b}}},
+ {X: Field{[10]uint32{0x00b5ceb4, 0x02731f4d, 0x01d1473a, 0x0295b026, 0x00424dfd, 0x0063dd93, 0x02840c3d, 0x01626fd2, 0x021967ca, 0x003788a6}}, Y: Field{[10]uint32{0x00122b22, 0x014456d5, 0x00be702d, 0x03046e3a, 0x00a1d352, 0x0391bfd1, 0x023f4b2a, 0x018ea50c, 0x01ca84ca, 0x002563f2}}},
+ {X: Field{[10]uint32{0x00cdfd9c, 0x031fb881, 0x01cb1143, 0x03759ea3, 0x02f8a3a3, 0x0028d690, 0x0225f487, 0x0213e858, 0x03c9cc9d, 0x0000578c}}, Y: Field{[10]uint32{0x0260e920, 0x026e6cc1, 0x022562f8, 0x00571fcd, 0x02a59a1e, 0x01792b5a, 0x02058364, 0x033574d8, 0x0206ed48, 0x00104f00}}},
+ {X: Field{[10]uint32{0x03d6bee0, 0x03902328, 0x00fc4394, 0x0266deac, 0x00dc010b, 0x02c86b8e, 0x023e3173, 0x01361cb4, 0x0161ca3c, 0x0014d089}}, Y: Field{[10]uint32{0x0103048e, 0x02ecfed8, 0x038b78de, 0x002e9c6e, 0x0020f2c5, 0x01e73872, 0x007c7ab7, 0x02427d94, 0x02e5e505, 0x001bba41}}},
+ {X: Field{[10]uint32{0x0282b2fc, 0x00765ca6, 0x02a74a03, 0x0028245d, 0x020308bf, 0x0172dc72, 0x0000bbff, 0x013cdcca, 0x034f9b2c, 0x0020a773}}, Y: Field{[10]uint32{0x038483c4, 0x017dab97, 0x005d3352, 0x03101857, 0x01abe3f8, 0x03d621cf, 0x0249d3c9, 0x014e2938, 0x0200429e, 0x0011cde0}}},
+ {X: Field{[10]uint32{0x02e911e5, 0x039970e2, 0x00ebe450, 0x02e8757d, 0x01c05594, 0x033fe5fc, 0x023b989a, 0x02c6c524, 0x02b73769, 0x003b5bdb}}, Y: Field{[10]uint32{0x02c38eb4, 0x01403868, 0x03fbe18e, 0x02768dcb, 0x01d52e2d, 0x027fd886, 0x018cd0b6, 0x02136e2e, 0x032f3fe5, 0x0037fb9b}}},
+ {X: Field{[10]uint32{0x00455503, 0x009c8170, 0x013da303, 0x02fb2d24, 0x0370616e, 0x03cac612, 0x00d1982d, 0x01c83a3f, 0x03981fbe, 0x0011f948}}, Y: Field{[10]uint32{0x02f3e900, 0x038bd2ae, 0x012515ea, 0x02e1b118, 0x00179f4c, 0x0378379c, 0x020cfbd1, 0x030c3da0, 0x00ebf360, 0x002bf4b7}}},
+ {X: Field{[10]uint32{0x01037312, 0x037812ea, 0x010df49f, 0x02a304f7, 0x00ba10e2, 0x017a2039, 0x03f1170f, 0x0387e1bc, 0x03d58f48, 0x002c0a4d}}, Y: Field{[10]uint32{0x00c18c4f, 0x034f1e8a, 0x03cf5347, 0x0093da32, 0x038a6c79, 0x00d5785f, 0x02de5805, 0x021158c5, 0x024f3e4c, 0x000372c2}}},
+ {X: Field{[10]uint32{0x001989f8, 0x015ff43b, 0x025d44ee, 0x03af7f71, 0x03878486, 0x00f019ba, 0x0010c2dc, 0x03070c97, 0x00f53578, 0x0027e64f}}, Y: Field{[10]uint32{0x01c8bb52, 0x00ece18c, 0x0275d914, 0x01bc34e0, 0x01e83eda, 0x03986ebe, 0x026ea432, 0x02047359, 0x000b16b8, 0x0031ae35}}},
+ {X: Field{[10]uint32{0x013240e6, 0x03e6e277, 0x0284e599, 0x0213cdbf, 0x01ce4317, 0x037f4743, 0x02730edb, 0x03b077c4, 0x00c25913, 0x00250edb}}, Y: Field{[10]uint32{0x03ed3fd0, 0x01dd2093, 0x0316d09f, 0x03ffead6, 0x029604d3, 0x0153bd56, 0x02d7ca32, 0x03fcff50, 0x02bacac2, 0x00396040}}},
+ {X: Field{[10]uint32{0x01acfe0a, 0x02fcbc06, 0x00a6481f, 0x033d1fd6, 0x0059511d, 0x01ed69f2, 0x0043da4f, 0x03e7b146, 0x027e69b3, 0x00026c39}}, Y: Field{[10]uint32{0x01c54dd8, 0x00274c3b, 0x01c674a0, 0x00dbdf92, 0x022e074c, 0x01cccf29, 0x02defc7d, 0x03b2d338, 0x002817a4, 0x001a9377}}},
+ {X: Field{[10]uint32{0x00571651, 0x03a19ce9, 0x03acc72a, 0x02d004da, 0x020c8246, 0x012329b9, 0x03b0fd40, 0x03463e30, 0x02339cd8, 0x0025f73b}}, Y: Field{[10]uint32{0x00e693e4, 0x00b4b49d, 0x03d510d8, 0x01192208, 0x0229b952, 0x0224cf71, 0x02e36cfc, 0x02fce62a, 0x0205cc20, 0x001858e8}}},
+ {X: Field{[10]uint32{0x02292ced, 0x027fdeb4, 0x00267299, 0x003cadf7, 0x02798c94, 0x01286e80, 0x02a9c26f, 0x007b69f3, 0x02f92696, 0x00287979}}, Y: Field{[10]uint32{0x00d5f19d, 0x0234c6c2, 0x00fbeca1, 0x03e4ee7a, 0x03cfc07a, 0x01b65d95, 0x01384013, 0x003dd3b4, 0x037a6a71, 0x001409d2}}},
+ {X: Field{[10]uint32{0x034884a9, 0x0210a596, 0x021a61a9, 0x02c61020, 0x001c21bd, 0x03f1dc60, 0x03c9bdc6, 0x0377f14b, 0x03cf7cdf, 0x0011cf57}}, Y: Field{[10]uint32{0x03d856af, 0x01f16c63, 0x02250eba, 0x03afa2f9, 0x0389ff95, 0x0320b656, 0x032d7036, 0x03d543fa, 0x02a70ad7, 0x000d220d}}},
+ {X: Field{[10]uint32{0x0396f613, 0x0147a851, 0x009d454c, 0x004caec5, 0x00db8c1e, 0x00151326, 0x00c33b27, 0x02cb413f, 0x00427384, 0x0027061d}}, Y: Field{[10]uint32{0x00ae0a19, 0x00fdfd7f, 0x0342b791, 0x00d831c4, 0x02c1825d, 0x02573bee, 0x0212e475, 0x0001e4f6, 0x0043970f, 0x000b5b7b}}},
+ {X: Field{[10]uint32{0x0162b154, 0x029aa981, 0x0351e0c7, 0x00a57d6f, 0x02ed63c7, 0x039d0392, 0x002d826b, 0x038afedd, 0x00469150, 0x00047387}}, Y: Field{[10]uint32{0x034fa33d, 0x02da9887, 0x00271aa3, 0x0232bca9, 0x0267f3b2, 0x03a2df64, 0x01f8b93b, 0x00a03eaf, 0x014fea38, 0x001ba194}}},
+ {X: Field{[10]uint32{0x01656042, 0x0297159e, 0x031cd4d9, 0x01c52eb3, 0x03dde2fd, 0x0234731b, 0x013c3541, 0x0379bca2, 0x0104e4e2, 0x000780de}}, Y: Field{[10]uint32{0x00960755, 0x03a06963, 0x0221b462, 0x0214f007, 0x023c81ac, 0x002bc0d7, 0x028aa38a, 0x01a084a8, 0x01c934c2, 0x0006edd6}}},
+ {X: Field{[10]uint32{0x00071d82, 0x007669f0, 0x02800995, 0x0178c731, 0x003f8d50, 0x03e78d88, 0x0294f240, 0x0266abc6, 0x006723f8, 0x0014bf25}}, Y: Field{[10]uint32{0x00bd6dbb, 0x0065a5f4, 0x039db924, 0x02cd2ce8, 0x0239c909, 0x01c2d1ee, 0x00dfb992, 0x00208083, 0x02e07543, 0x000118ca}}},
+ {X: Field{[10]uint32{0x0242b20d, 0x027600c1, 0x02a4ff9e, 0x02d35e37, 0x0235069e, 0x025bd4e1, 0x00f9e394, 0x00672c85, 0x01059975, 0x0032d616}}, Y: Field{[10]uint32{0x0093ac7d, 0x038e44fb, 0x02d45064, 0x03cd6643, 0x007131b2, 0x038b5794, 0x02a0f51c, 0x01d68790, 0x02e7a5b4, 0x0006e7d0}}},
+ {X: Field{[10]uint32{0x00a69c46, 0x02b803ed, 0x03a12cec, 0x00368471, 0x03e7ab18, 0x034def34, 0x03275845, 0x011561d5, 0x005729f1, 0x000e0b0a}}, Y: Field{[10]uint32{0x00039440, 0x03079f95, 0x008e4a25, 0x028f82c9, 0x03495907, 0x03c4a1a4, 0x02586843, 0x003ecdb8, 0x011220a7, 0x0032c9fa}}},
+ {X: Field{[10]uint32{0x034e5024, 0x03b2e213, 0x0164b6dc, 0x00fecbe5, 0x02a4dd61, 0x02cce9a4, 0x00456dce, 0x0039263e, 0x02c6c285, 0x0005bc21}}, Y: Field{[10]uint32{0x039339a9, 0x03bbfb49, 0x01df312d, 0x033b26b5, 0x0073cb5e, 0x0169940d, 0x008ca682, 0x004620d1, 0x020888eb, 0x000b854a}}},
+ {X: Field{[10]uint32{0x01a02492, 0x03585dd9, 0x009506ee, 0x007d99cc, 0x014439a5, 0x011ba89d, 0x030f0ae4, 0x00d5dd54, 0x011b1f0a, 0x001d626f}}, Y: Field{[10]uint32{0x00462d49, 0x0365d966, 0x0389c00a, 0x030d8c30, 0x0004076f, 0x00534d8d, 0x01771bb0, 0x02054c79, 0x0212d375, 0x000b6103}}},
+ {X: Field{[10]uint32{0x00930890, 0x00c9bd35, 0x004469a0, 0x03d689ad, 0x01a80cc5, 0x030efbba, 0x02dbd2b0, 0x00e944f7, 0x0240cce6, 0x00062e6b}}, Y: Field{[10]uint32{0x022690e4, 0x0293ae4a, 0x0118acf6, 0x035e382b, 0x039e0032, 0x02c9c342, 0x03571382, 0x00f111c6, 0x024dd5ed, 0x00092e1a}}},
+ {X: Field{[10]uint32{0x03ebb48a, 0x03a2a2b4, 0x009a4ccf, 0x01b840b2, 0x0394e9ba, 0x012fa189, 0x030db5d1, 0x007bd900, 0x00a4acc7, 0x002307dd}}, Y: Field{[10]uint32{0x0245677a, 0x02c59ce4, 0x01c9416e, 0x00664b57, 0x021af1c1, 0x022c9b21, 0x03ba735c, 0x0294a478, 0x011998ae, 0x0029e7c0}}},
+ {X: Field{[10]uint32{0x02bfb080, 0x00b080f0, 0x010465cd, 0x00223b1f, 0x002c0fca, 0x000e096d, 0x0157ba0d, 0x02aadd6d, 0x012d36bf, 0x00236016}}, Y: Field{[10]uint32{0x0151d3f6, 0x02d19bc0, 0x03a51859, 0x01504335, 0x027671a6, 0x014cff4a, 0x00a1bd4a, 0x01d14d34, 0x008791f2, 0x000f91e5}}},
+ {X: Field{[10]uint32{0x030ca248, 0x0095d959, 0x02770f71, 0x03a78114, 0x03f36782, 0x00b159dd, 0x005046cf, 0x038563b2, 0x0319f477, 0x003aac2e}}, Y: Field{[10]uint32{0x00c04640, 0x01d3329f, 0x01ebd700, 0x0190fc62, 0x0337f0bd, 0x00ae81c7, 0x0355e563, 0x00ebd36b, 0x00812309, 0x00289f5c}}},
+ {X: Field{[10]uint32{0x020a039c, 0x00cb1a8a, 0x0399bdb5, 0x00776d21, 0x0109647e, 0x0149833a, 0x03b249fd, 0x00be89b4, 0x01c9ebbb, 0x003fc343}}, Y: Field{[10]uint32{0x02b31fa9, 0x00e50bbe, 0x010233c4, 0x03d59884, 0x02fad5b0, 0x0366dd82, 0x01c35055, 0x007e2f38, 0x02ae7f16, 0x0004ac3d}}},
+ {X: Field{[10]uint32{0x0037d526, 0x00aaa58e, 0x030ad42a, 0x0080fb9a, 0x02be22b3, 0x02c22def, 0x03403468, 0x02f46e48, 0x023571db, 0x0036268c}}, Y: Field{[10]uint32{0x02e3cf27, 0x02dd084d, 0x03b62146, 0x0241551b, 0x03db4a04, 0x039bdbc7, 0x008124d9, 0x03c59cc4, 0x01b99988, 0x0009768d}}},
+ {X: Field{[10]uint32{0x025b43fd, 0x013004a4, 0x00a229ec, 0x0055574d, 0x0313ffb3, 0x019d47df, 0x03cdafa8, 0x02acb10c, 0x023bf01c, 0x003c5400}}, Y: Field{[10]uint32{0x02c7a9cc, 0x030f4cce, 0x03f341a9, 0x01a881ca, 0x038ac37a, 0x01ea7920, 0x00966b71, 0x032259b7, 0x0221026a, 0x000c7dc3}}},
+ {X: Field{[10]uint32{0x003af2a8, 0x03b80672, 0x0070d9b3, 0x032382d1, 0x0276f442, 0x030b3436, 0x02e9d5e2, 0x0025e1ca, 0x013b2d58, 0x003663af}}, Y: Field{[10]uint32{0x01dba3f5, 0x005f249d, 0x00823e00, 0x01629453, 0x00930fb3, 0x029b1c89, 0x03f9873d, 0x0065c0d2, 0x02a95a06, 0x0027b56d}}},
+ {X: Field{[10]uint32{0x03c3c746, 0x03ec06f2, 0x01827583, 0x00efe9df, 0x02817353, 0x03cf2a05, 0x002e313d, 0x0253bb7f, 0x0185833a, 0x00156d8b}}, Y: Field{[10]uint32{0x024a835c, 0x02b4444d, 0x0189715b, 0x02fd1320, 0x011f4dbb, 0x0269e84e, 0x01eb9211, 0x016bdede, 0x03730cb9, 0x0027e121}}},
+ {X: Field{[10]uint32{0x01718de6, 0x003fb3ef, 0x021ca286, 0x01268a9e, 0x00ec759c, 0x01b070ff, 0x0069de8f, 0x00fe4d13, 0x0176fef7, 0x0037ebd3}}, Y: Field{[10]uint32{0x025a0671, 0x034c509c, 0x01971357, 0x0054656f, 0x017fba1f, 0x00db64fb, 0x0009f94c, 0x030a1fd9, 0x029344e2, 0x002b12bd}}},
+ {X: Field{[10]uint32{0x01fe29da, 0x01fcf9b1, 0x00bf838b, 0x00f16043, 0x03a7839f, 0x005bb88a, 0x0020f29a, 0x0248b0dd, 0x00a34510, 0x00212911}}, Y: Field{[10]uint32{0x0114f06a, 0x02615404, 0x0175fa18, 0x01c032fe, 0x026e89af, 0x01cc1a7f, 0x03f420a6, 0x0304b850, 0x01802215, 0x003bdccf}}},
+ {X: Field{[10]uint32{0x032212af, 0x006a94e9, 0x02548629, 0x01260e24, 0x032c3377, 0x025a0468, 0x01d24d12, 0x01c020f7, 0x021146c8, 0x0035f213}}, Y: Field{[10]uint32{0x00844ac4, 0x03350184, 0x01745f84, 0x0344135e, 0x019579b2, 0x0202bb18, 0x01357e54, 0x0102f70f, 0x0158a3be, 0x002c61f7}}},
+ {X: Field{[10]uint32{0x0198051d, 0x03a9e215, 0x02a069ff, 0x02d5c68b, 0x00c7fca4, 0x01d41cb3, 0x029f6165, 0x0022fbce, 0x027fa70b, 0x003f7b70}}, Y: Field{[10]uint32{0x03b9bf9a, 0x0118a901, 0x01fbb3ec, 0x01379c91, 0x0253f6f5, 0x029fd378, 0x014d279b, 0x016a780d, 0x031a1c57, 0x003fa6de}}},
+ {X: Field{[10]uint32{0x03122e77, 0x0171e57b, 0x039a5c2d, 0x0141365a, 0x03f950c2, 0x01610dec, 0x0022b350, 0x0331aa48, 0x038ad3f2, 0x0033e9d1}}, Y: Field{[10]uint32{0x021409c4, 0x02516c89, 0x023bb158, 0x0028f6a1, 0x022ad780, 0x03f7530b, 0x00f8eedf, 0x00a0d4d5, 0x01cae959, 0x003cf923}}},
+ {X: Field{[10]uint32{0x020eefe2, 0x01f73a3b, 0x023f8033, 0x02f36377, 0x02aa1584, 0x01d9e3f3, 0x03b7493d, 0x00825dc3, 0x03f83fd6, 0x0023a455}}, Y: Field{[10]uint32{0x0205351b, 0x027ce94e, 0x0188ac8d, 0x016913ea, 0x003322fb, 0x02d2c8a7, 0x00f91df4, 0x037edae9, 0x02898c05, 0x00181e6e}}},
+ {X: Field{[10]uint32{0x03116f75, 0x022e4a00, 0x01dfdbea, 0x03f1a9fe, 0x029d422f, 0x02f77fc8, 0x00eb80a9, 0x02b0c3b1, 0x03b6103e, 0x001efd7b}}, Y: Field{[10]uint32{0x03a71a3b, 0x00e24c4e, 0x03e67ba1, 0x0130d54f, 0x012cba4b, 0x015e5850, 0x01355542, 0x007b7f96, 0x02596479, 0x003beb6d}}},
+ {X: Field{[10]uint32{0x00e8df0b, 0x009e0834, 0x0153e85f, 0x03f22747, 0x01690a13, 0x01da5c1e, 0x007b1b53, 0x030b49a3, 0x02b7b7b2, 0x003d6e80}}, Y: Field{[10]uint32{0x02465485, 0x03c54567, 0x013a3af7, 0x01930f1e, 0x00a9266b, 0x034b510c, 0x00329d19, 0x003906ff, 0x0126b264, 0x00198c5b}}},
+ {X: Field{[10]uint32{0x03004475, 0x01262fff, 0x008284a1, 0x0297c494, 0x0387c10d, 0x008a547e, 0x02bc3dbf, 0x029325b4, 0x01f3dcec, 0x0017aab3}}, Y: Field{[10]uint32{0x011f122d, 0x0094652b, 0x02106c8c, 0x00425dfa, 0x00b38f58, 0x020c7341, 0x0185d404, 0x0338245a, 0x03ed9721, 0x0032cf6c}}},
+ {X: Field{[10]uint32{0x024a5554, 0x0169da29, 0x01e4177c, 0x02fd3e8b, 0x01d1320a, 0x03544cdc, 0x0152ba6a, 0x0044d14d, 0x0017b8d6, 0x00073f97}}, Y: Field{[10]uint32{0x011dcd5d, 0x03a91aff, 0x008945ed, 0x039801e8, 0x0099bcab, 0x00c67dd0, 0x024a2f7e, 0x02e21c79, 0x00f64846, 0x0014e0df}}},
+ {X: Field{[10]uint32{0x025dbc10, 0x007c28de, 0x028805e2, 0x02ed1391, 0x02286f47, 0x004843ef, 0x0091dd2a, 0x03321873, 0x03478a2c, 0x0024aa0f}}, Y: Field{[10]uint32{0x0199de94, 0x03d53d72, 0x01043684, 0x03e43b0d, 0x000cb69f, 0x006604cb, 0x0270b8bc, 0x016c0be0, 0x0065fcd4, 0x003fb8d7}}},
+ {X: Field{[10]uint32{0x02d277d3, 0x012ada72, 0x01dd14f7, 0x034c92fd, 0x0173c07a, 0x00d6f6de, 0x0186ea10, 0x00e6c3d3, 0x01bad5d5, 0x0005c8a1}}, Y: Field{[10]uint32{0x02ada654, 0x0308be6a, 0x00897314, 0x0100a22d, 0x02cfc290, 0x03b8f883, 0x03afa15c, 0x018d9382, 0x0140cf35, 0x00116afe}}},
+ {X: Field{[10]uint32{0x03164762, 0x01badcf2, 0x0032c764, 0x0204e817, 0x013126ce, 0x03e45637, 0x014ae08b, 0x026eae15, 0x015392e1, 0x002b45ef}}, Y: Field{[10]uint32{0x01065586, 0x0115d323, 0x01b94e16, 0x014625be, 0x038139c6, 0x0275c353, 0x01d4f47d, 0x00e61ddd, 0x00191c83, 0x000284a6}}},
+ {X: Field{[10]uint32{0x02bdeb1c, 0x01f2cc4b, 0x00a12526, 0x001f1019, 0x03c23fd3, 0x00f94470, 0x02ce9e91, 0x02a2707d, 0x033e91a4, 0x00041086}}, Y: Field{[10]uint32{0x02a53319, 0x0164a18e, 0x03cc1923, 0x00036b1d, 0x03985697, 0x01cc4632, 0x02b8a510, 0x03c3f461, 0x01d09e49, 0x0014e6ed}}},
+ {X: Field{[10]uint32{0x01de5bfd, 0x00d6c188, 0x030ff397, 0x03787838, 0x012e8476, 0x0198caa9, 0x039eba60, 0x00a8f772, 0x00fa7815, 0x00310eb7}}, Y: Field{[10]uint32{0x00abdebf, 0x00469567, 0x018801a9, 0x0389815f, 0x031e81c6, 0x036b2ede, 0x03d04f05, 0x01602e11, 0x01ca2122, 0x001b7742}}},
+ {X: Field{[10]uint32{0x00bf9a73, 0x036401a6, 0x0227b5c8, 0x00764aab, 0x0014434f, 0x0279f662, 0x02b9e50d, 0x01634131, 0x00cb603a, 0x003dea67}}, Y: Field{[10]uint32{0x031a7ccb, 0x00e9df69, 0x01b0878a, 0x01332bf2, 0x005e6293, 0x032dd04c, 0x02d68091, 0x00e4eba5, 0x024476f4, 0x003337f0}}},
+ {X: Field{[10]uint32{0x0209c826, 0x01d6f9c3, 0x01aacb31, 0x005a7492, 0x02f602d5, 0x028b2a6f, 0x038f44f4, 0x013a8d40, 0x01bf7017, 0x0026af25}}, Y: Field{[10]uint32{0x03adfe0c, 0x00663835, 0x03763617, 0x036d32ad, 0x0222a9fe, 0x0233b6b2, 0x027d2c9f, 0x03e28f50, 0x02ed3e71, 0x001b3ef3}}},
+ {X: Field{[10]uint32{0x005d8d82, 0x02ee7b57, 0x035c5546, 0x03f03414, 0x03d7bd08, 0x0124f273, 0x034af06b, 0x0121cfb2, 0x009335c8, 0x00229f2a}}, Y: Field{[10]uint32{0x01e31bc1, 0x000064c8, 0x005ba07b, 0x03fb4bca, 0x01209ae3, 0x010511e6, 0x031ee4e5, 0x00f021cb, 0x0372090d, 0x0009462c}}},
+ {X: Field{[10]uint32{0x024d1c3e, 0x032489e9, 0x03b79ff1, 0x0373091b, 0x02b39fdb, 0x018be352, 0x01182fd8, 0x018a365a, 0x03798649, 0x001c3238}}, Y: Field{[10]uint32{0x02ea3cbb, 0x0038c849, 0x0386f7f5, 0x005d3bf6, 0x03936c95, 0x03558823, 0x0297d9ef, 0x00292bb0, 0x02d527ec, 0x0031e4c6}}},
+ {X: Field{[10]uint32{0x01002121, 0x00b58a0c, 0x0076b957, 0x039f0616, 0x00934a82, 0x012023f7, 0x01dcf61b, 0x007b81c7, 0x02b40612, 0x0035e0fd}}, Y: Field{[10]uint32{0x029c7fbb, 0x007662d7, 0x0262ca03, 0x0055a52e, 0x0028b3ed, 0x02699226, 0x0107c82b, 0x01a52678, 0x01841422, 0x002aa4af}}},
+ {X: Field{[10]uint32{0x03654c18, 0x01f939de, 0x007581a1, 0x025671de, 0x02b75927, 0x03aa3931, 0x01ffbb87, 0x02d0eb2b, 0x021c29ab, 0x00307c1a}}, Y: Field{[10]uint32{0x03ecdbf0, 0x006497be, 0x005476cd, 0x01c2a906, 0x03bc1024, 0x03968263, 0x01b0e7d9, 0x010b3eae, 0x01e2f1db, 0x00076b83}}},
+ {X: Field{[10]uint32{0x02cc5105, 0x01f98b94, 0x0072487b, 0x009d21a6, 0x02d1498a, 0x0085c998, 0x02633ea3, 0x02d61e19, 0x02113205, 0x000ab5d3}}, Y: Field{[10]uint32{0x00ff779e, 0x01176834, 0x02e105de, 0x01652e2f, 0x02b5c851, 0x01d5720e, 0x01aa7d30, 0x0287f589, 0x0107de1f, 0x0031c31d}}},
+ {X: Field{[10]uint32{0x037408b6, 0x00025e35, 0x01ac03d8, 0x015dd2b2, 0x03a9e32b, 0x01c713d5, 0x0374e233, 0x01a919ba, 0x01ad7224, 0x003d243a}}, Y: Field{[10]uint32{0x01dc3d6a, 0x003c06aa, 0x01fb963a, 0x006a2d12, 0x0377e49a, 0x03096141, 0x02ef15e4, 0x005a1ee9, 0x027f8fdd, 0x00151bcd}}},
+ {X: Field{[10]uint32{0x001d6149, 0x008cdce6, 0x030553f1, 0x03143781, 0x0280c431, 0x017e2ecc, 0x01788b05, 0x02da5f81, 0x00918357, 0x0008140a}}, Y: Field{[10]uint32{0x028e3b0d, 0x01aaf411, 0x02777796, 0x016d71de, 0x019489ee, 0x0214bf42, 0x01a67712, 0x00388963, 0x00e54411, 0x000e7410}}},
+ {X: Field{[10]uint32{0x006eae95, 0x0007acbe, 0x005d1bb0, 0x026780e3, 0x02e4b782, 0x0137a4a5, 0x0359915d, 0x028e8fbb, 0x038ec169, 0x001ba46e}}, Y: Field{[10]uint32{0x00877dfd, 0x0252e8a0, 0x008872ae, 0x03574823, 0x0045305d, 0x0227eb12, 0x0034063a, 0x0327c459, 0x029788f8, 0x0034b084}}},
+ {X: Field{[10]uint32{0x03a34905, 0x01e2ec5a, 0x02a01906, 0x02ea79f7, 0x0339e7d0, 0x00796b54, 0x00d0d2fe, 0x0102c184, 0x03c839fc, 0x0033ca51}}, Y: Field{[10]uint32{0x0337c63d, 0x00502c8f, 0x007baaec, 0x01a84c7b, 0x018db00f, 0x01cba1d7, 0x0358d7b1, 0x0354fc35, 0x030f7f0c, 0x00185169}}},
+ {X: Field{[10]uint32{0x022366f1, 0x01861d3e, 0x02864ad1, 0x0306b0f1, 0x001c8db1, 0x02b4ca8a, 0x01c9b010, 0x029b2158, 0x0387ea93, 0x002d23e0}}, Y: Field{[10]uint32{0x022d253c, 0x00c5749e, 0x0276b375, 0x02077e10, 0x009f46bd, 0x018273f2, 0x03d971b3, 0x01f4f89b, 0x0333cbe0, 0x0000b2ac}}},
+ {X: Field{[10]uint32{0x02a1f827, 0x007b6850, 0x0315ef39, 0x013a0515, 0x0030f605, 0x025bf50f, 0x00ae58c6, 0x00b4d393, 0x03660c57, 0x001f12d7}}, Y: Field{[10]uint32{0x01843d97, 0x034cab66, 0x033b008e, 0x02b57e53, 0x02d0adc2, 0x01848cb0, 0x007c5fcc, 0x016bc0e4, 0x024fbe12, 0x000f2f89}}},
+ {X: Field{[10]uint32{0x010d86e8, 0x02a17821, 0x02567378, 0x0147d756, 0x018fe24e, 0x01e1d636, 0x027f9890, 0x02786588, 0x0368d464, 0x00395e58}}, Y: Field{[10]uint32{0x02c9d4a7, 0x030d53bd, 0x0089646e, 0x02e35982, 0x021fa111, 0x01e9f92f, 0x02880bf6, 0x0244a26b, 0x0343c9a6, 0x0001d2ec}}},
+ {X: Field{[10]uint32{0x004d637f, 0x00ae963f, 0x016509f0, 0x00994f1f, 0x0167c1ab, 0x038f2976, 0x01b88416, 0x03a7bf06, 0x025efe83, 0x0037e841}}, Y: Field{[10]uint32{0x00a5042d, 0x020fbb43, 0x00a231ec, 0x00668aa8, 0x02e23fdf, 0x021794d4, 0x0270e046, 0x00dee8bc, 0x0167eb02, 0x00008b49}}},
+ {X: Field{[10]uint32{0x028af132, 0x01ecdea4, 0x01f2f234, 0x01133c4c, 0x008f4638, 0x039c42e0, 0x01a3ce98, 0x030cca3f, 0x00aad436, 0x000ba876}}, Y: Field{[10]uint32{0x0298dc4c, 0x0187cc43, 0x004328fc, 0x0081e80d, 0x0213ff96, 0x033ca92c, 0x00a243cc, 0x02b44160, 0x020fb8c2, 0x000cfe9f}}},
+ {X: Field{[10]uint32{0x0167253f, 0x01477975, 0x031b4c0a, 0x01b3e2a4, 0x03ab6a97, 0x039677cd, 0x008298b5, 0x02bcfe9e, 0x00518122, 0x0004ab85}}, Y: Field{[10]uint32{0x0124877d, 0x034c6807, 0x015a7926, 0x02bad555, 0x021c3ff9, 0x038fc296, 0x02fa7329, 0x0074bb78, 0x01d2b327, 0x00217fc7}}},
+ {X: Field{[10]uint32{0x01bf6619, 0x01164c25, 0x00270856, 0x03bd57be, 0x03125579, 0x03b1d68e, 0x02b84fed, 0x02bc6a9c, 0x01efb588, 0x003f51b8}}, Y: Field{[10]uint32{0x03a51b17, 0x01f2dec9, 0x01ea40f5, 0x01eba071, 0x03342e6b, 0x01ce8abf, 0x007d477c, 0x00a4bd83, 0x006eceb6, 0x00341ab7}}},
+ {X: Field{[10]uint32{0x0332b52b, 0x024342df, 0x01e614a2, 0x011ac5cb, 0x01c7a179, 0x02f88ab3, 0x009e1bf0, 0x0347bc71, 0x013eb8c0, 0x0003b5f6}}, Y: Field{[10]uint32{0x02303ada, 0x0233a7ec, 0x02246f36, 0x02129a33, 0x02b55522, 0x010aafac, 0x036668a7, 0x0070ebe3, 0x030a39a8, 0x001343b0}}},
+ {X: Field{[10]uint32{0x029619ef, 0x0022db43, 0x034dc9d8, 0x004cd893, 0x01585179, 0x01d701b7, 0x02bda814, 0x01e69a7f, 0x03a5cd0e, 0x003f33f7}}, Y: Field{[10]uint32{0x010adf49, 0x009106b7, 0x015139bd, 0x012b5838, 0x02ec6232, 0x024aa58d, 0x01959c69, 0x026fb7e2, 0x000d11d0, 0x001e6e41}}},
+ {X: Field{[10]uint32{0x034ac477, 0x02955912, 0x00010a57, 0x029c8ad1, 0x0316823e, 0x02f1c532, 0x02044b27, 0x026bfb4a, 0x02b86a9b, 0x0020c5d8}}, Y: Field{[10]uint32{0x0156c708, 0x005a7926, 0x02ff69c3, 0x0372989a, 0x032754c1, 0x02137f5d, 0x00b3f77f, 0x02ff72d2, 0x00628ef3, 0x00051eb8}}},
+ {X: Field{[10]uint32{0x02f26b01, 0x00ee6753, 0x02fb3490, 0x0187c995, 0x01f92cc4, 0x03f8333e, 0x0370adbb, 0x014c0f23, 0x0001a84d, 0x000cd123}}, Y: Field{[10]uint32{0x03b8f2ff, 0x03a9507f, 0x0095f736, 0x00f1bf5f, 0x02208ad0, 0x03b9fe41, 0x00a82840, 0x02e98723, 0x03490ae8, 0x00395c9c}}},
+ {X: Field{[10]uint32{0x03d215a6, 0x01533081, 0x024a2482, 0x036ac66c, 0x0160df85, 0x003aebdb, 0x03ccb8c5, 0x004c1055, 0x02616ddf, 0x00248284}}, Y: Field{[10]uint32{0x028d0f4e, 0x028f283c, 0x02e369f1, 0x00738313, 0x03e2cb67, 0x02a302e5, 0x02f7a11c, 0x03a240f4, 0x00f9cc91, 0x00067935}}},
+ {X: Field{[10]uint32{0x036b1ba4, 0x03f98b94, 0x026b7fca, 0x029712e4, 0x01458385, 0x02eb0971, 0x020ac00c, 0x002e70fd, 0x021d3e37, 0x00077e33}}, Y: Field{[10]uint32{0x0099a92b, 0x039f9814, 0x01083533, 0x03d6f1c0, 0x023fcbab, 0x01ca4253, 0x02f61602, 0x0141e54a, 0x006ee363, 0x000d137d}}},
+ {X: Field{[10]uint32{0x038b7b72, 0x02ca2074, 0x013b6286, 0x03236036, 0x022e2243, 0x00de8149, 0x0018175c, 0x009ae04f, 0x007dabfe, 0x001c89e1}}, Y: Field{[10]uint32{0x03973d24, 0x02622e29, 0x03364622, 0x0104311a, 0x0128b5aa, 0x0185973e, 0x0289c934, 0x00f37654, 0x01eb33da, 0x002fb79e}}},
+ {X: Field{[10]uint32{0x03f7fb8d, 0x027ca4bb, 0x01995972, 0x013c9b63, 0x003caff7, 0x03321041, 0x02571f8c, 0x022feac0, 0x0259e121, 0x001b7bee}}, Y: Field{[10]uint32{0x00340a04, 0x025aa353, 0x001a6956, 0x00156487, 0x002c188c, 0x034d39df, 0x03770d1b, 0x03ef165b, 0x028e21f2, 0x00135eea}}},
+ {X: Field{[10]uint32{0x002d6bd3, 0x00581478, 0x020f990b, 0x006ad8c6, 0x0208302e, 0x02b7d4ef, 0x031ae022, 0x01f491ac, 0x00eff512, 0x003199fd}}, Y: Field{[10]uint32{0x02d34cf5, 0x00312936, 0x032373e8, 0x00f549eb, 0x02f8de28, 0x01f5d1a8, 0x00d822c3, 0x02f7dbf5, 0x0276ce11, 0x000f5ef3}}},
+ {X: Field{[10]uint32{0x0229d866, 0x00b1cbf3, 0x03d2355c, 0x02e39aec, 0x006fbca1, 0x00e8aac0, 0x00dcc242, 0x0083d664, 0x02744416, 0x003b67a1}}, Y: Field{[10]uint32{0x0006ad30, 0x01f08a96, 0x021a5829, 0x01c47b0d, 0x027c03dd, 0x0024c37b, 0x01a12f33, 0x0268aee0, 0x019bb428, 0x0019357b}}},
+ {X: Field{[10]uint32{0x0176fb24, 0x03ae630c, 0x02ea0b0e, 0x03bab114, 0x03219e57, 0x018d13bc, 0x0000b256, 0x033b80cf, 0x0057e6b0, 0x0021a8db}}, Y: Field{[10]uint32{0x02fff739, 0x03a36cfa, 0x02f25135, 0x00f9e686, 0x01b147b4, 0x02564ad7, 0x01038748, 0x01637d38, 0x01da9e9b, 0x002d3d2f}}},
+ {X: Field{[10]uint32{0x00cca913, 0x0248a02f, 0x00e04337, 0x0208779c, 0x01fd02bf, 0x0285478f, 0x02105acb, 0x01bfce83, 0x03844539, 0x000b88dd}}, Y: Field{[10]uint32{0x03148551, 0x01c5b0d9, 0x0304fc0b, 0x03728cd8, 0x00f43726, 0x02ef3241, 0x00464c43, 0x020fc184, 0x039ce779, 0x003dcd94}}},
+ {X: Field{[10]uint32{0x00a1390f, 0x027e6008, 0x028c1689, 0x021eb0b5, 0x009db88a, 0x00682f00, 0x026dbcf1, 0x0364d948, 0x014c7790, 0x003334f0}}, Y: Field{[10]uint32{0x003af907, 0x037f75c7, 0x00a6781c, 0x02a01f7c, 0x00f8a9cb, 0x006264c8, 0x03bac2af, 0x017767cc, 0x035fbd6d, 0x002c902c}}},
+ {X: Field{[10]uint32{0x0237b018, 0x033361cd, 0x021b217b, 0x02b6e09d, 0x01eba4ef, 0x015625e3, 0x006566d0, 0x035ec71b, 0x027f0988, 0x001dc4ef}}, Y: Field{[10]uint32{0x00475781, 0x02cd309d, 0x03d9470d, 0x039993b9, 0x01c75f31, 0x017eacd0, 0x02ef7c51, 0x00aea8bb, 0x026fa9d6, 0x0023ee46}}},
+ {X: Field{[10]uint32{0x00982b02, 0x0199eea9, 0x0398b1ab, 0x03fc7165, 0x0134c739, 0x02c21573, 0x020acf56, 0x032cee54, 0x0160035d, 0x0015216b}}, Y: Field{[10]uint32{0x02a90f0f, 0x00e658a5, 0x03f9fcd4, 0x01579f72, 0x0357cbd4, 0x0224c46f, 0x03df62e5, 0x005329d0, 0x007b1e7c, 0x00077b1b}}},
+ {X: Field{[10]uint32{0x00ee0f19, 0x0268f72c, 0x01ed189c, 0x0007cac1, 0x00411bd2, 0x013a1503, 0x012d1cfc, 0x01213407, 0x003ad3be, 0x002965d4}}, Y: Field{[10]uint32{0x001113cd, 0x0157b8ec, 0x014dce28, 0x03c1d972, 0x00becbd6, 0x036f3d24, 0x02cee664, 0x00466478, 0x027d3800, 0x000d444f}}},
+ {X: Field{[10]uint32{0x0191ce4a, 0x03795f37, 0x0046cb94, 0x00de0320, 0x011ae249, 0x02f4bf64, 0x01d07a3d, 0x00c2c55f, 0x0251abb1, 0x002ea46c}}, Y: Field{[10]uint32{0x013e1f6c, 0x030d64c3, 0x01dcfe1d, 0x003f85e6, 0x03837742, 0x03d90bee, 0x01f33f54, 0x03b7ee9a, 0x0080500a, 0x0033f308}}},
+ {X: Field{[10]uint32{0x02d324a4, 0x0116ffe1, 0x032e2fb0, 0x012980fe, 0x005c6d2f, 0x01721905, 0x03d33869, 0x01ef4f1b, 0x025883cc, 0x002b7ed6}}, Y: Field{[10]uint32{0x030cdc5c, 0x01554fde, 0x0172222a, 0x014f325d, 0x013a5257, 0x030c36a4, 0x00415a18, 0x00b7f714, 0x02d745d8, 0x000595d3}}},
+ {X: Field{[10]uint32{0x03561ae8, 0x013b73e8, 0x023e29d9, 0x029383ee, 0x01ba1f13, 0x00292f8d, 0x0054b141, 0x002972b2, 0x014ddd71, 0x00042124}}, Y: Field{[10]uint32{0x01c25e99, 0x0373e152, 0x003babe6, 0x028d6423, 0x002f2b74, 0x037e3999, 0x02ac6cda, 0x03bd8104, 0x01353240, 0x00194f28}}},
+ {X: Field{[10]uint32{0x026c6f7b, 0x0337345b, 0x0033f133, 0x01abe01e, 0x0281876a, 0x02e207bf, 0x028abe50, 0x022c505e, 0x02719af3, 0x001c12a8}}, Y: Field{[10]uint32{0x03769e54, 0x013d9ba8, 0x03b9263f, 0x03d10ae9, 0x0111395a, 0x038a8690, 0x00726c9b, 0x00602f12, 0x02b348c1, 0x0029bfb8}}},
+ {X: Field{[10]uint32{0x00aec289, 0x01ee0daa, 0x0108051d, 0x03a250b2, 0x03fe68b0, 0x024f19a0, 0x01f57348, 0x00aa1970, 0x00c17f5d, 0x00118123}}, Y: Field{[10]uint32{0x03288efd, 0x00681e62, 0x03277a46, 0x00d0e106, 0x032e7668, 0x02d3e28c, 0x01bf9c6b, 0x03ddf41d, 0x003089a8, 0x0036173b}}},
+ {X: Field{[10]uint32{0x03fce9e9, 0x011d95dd, 0x03c763d5, 0x033d6e87, 0x0107d04c, 0x016634be, 0x02781ba8, 0x00ec858d, 0x02be315d, 0x00143c79}}, Y: Field{[10]uint32{0x026b0b00, 0x017ec3bb, 0x00db7d09, 0x03851f80, 0x0325dd0c, 0x03725887, 0x00249759, 0x02e7ca33, 0x03d62057, 0x003df72d}}},
+ {X: Field{[10]uint32{0x0263501c, 0x03ff3402, 0x006d03b7, 0x03cc16f5, 0x02944df1, 0x01d23527, 0x00efa037, 0x0156b404, 0x02446766, 0x001fb428}}, Y: Field{[10]uint32{0x01c18c21, 0x00343c01, 0x028d8269, 0x0196981d, 0x01e9b3ae, 0x00dab91d, 0x02eb2669, 0x0089ed11, 0x0265593f, 0x002a0dde}}},
+ {X: Field{[10]uint32{0x03ebccc7, 0x03d18c93, 0x03342c29, 0x00eec7cd, 0x0219b29d, 0x03fc6f4b, 0x01c431dc, 0x030b3d84, 0x00a1ee66, 0x000340e7}}, Y: Field{[10]uint32{0x016d736f, 0x00c4139a, 0x0076e781, 0x03845699, 0x006e652e, 0x033f7321, 0x01ff5e24, 0x0319858a, 0x018214f4, 0x0036c343}}},
+ {X: Field{[10]uint32{0x03b092b7, 0x03b60429, 0x015797be, 0x0272ab58, 0x028e3672, 0x01335283, 0x031768d9, 0x03f8bd14, 0x033acc55, 0x000309e5}}, Y: Field{[10]uint32{0x01f41c99, 0x005e8500, 0x020db439, 0x03c7fdd4, 0x000878e1, 0x02e78cc5, 0x02d54029, 0x02c91b15, 0x00eab36a, 0x003370c4}}},
+ {X: Field{[10]uint32{0x0046e945, 0x0030cf19, 0x01d846de, 0x02000e8b, 0x01ac14a1, 0x03880b45, 0x0072e48d, 0x031a0c95, 0x0142cce3, 0x000da10a}}, Y: Field{[10]uint32{0x03b8f2f7, 0x000ee581, 0x02bcb574, 0x03e8376b, 0x03208d95, 0x03b55826, 0x009db9ae, 0x020be8d6, 0x03f819ab, 0x0014002c}}},
+ {X: Field{[10]uint32{0x0162d0e9, 0x01552b9b, 0x03d7b0c4, 0x03de1783, 0x0074865e, 0x016aed15, 0x03f3a8c5, 0x0086d467, 0x015c3386, 0x00346a86}}, Y: Field{[10]uint32{0x03b737a8, 0x019c9469, 0x03c88c2e, 0x01cea6a2, 0x00832ce7, 0x0221018c, 0x0234576d, 0x00e166d1, 0x0133dc29, 0x0039f877}}},
+ {X: Field{[10]uint32{0x000f00f0, 0x03c99fd7, 0x008b0489, 0x00aa3340, 0x03a59b2c, 0x01d9bb04, 0x02bd6ff5, 0x00e7b0d9, 0x01326074, 0x0013d08f}}, Y: Field{[10]uint32{0x00e7a9f4, 0x0075e1e9, 0x034eef5e, 0x016012d3, 0x00b6c3e0, 0x01cb2223, 0x008e6aa2, 0x01305701, 0x029d7ee9, 0x00178f1f}}},
+ {X: Field{[10]uint32{0x03f06c4a, 0x006ee641, 0x018c5910, 0x03eabdce, 0x00ebcb9a, 0x02d7ea6e, 0x000859a9, 0x0247bc5f, 0x0280ff89, 0x001aec71}}, Y: Field{[10]uint32{0x0269a253, 0x03fcf261, 0x0039f189, 0x03f54d6e, 0x03217005, 0x01d85717, 0x03c242c9, 0x00ab9745, 0x03750d91, 0x000c6369}}},
+ {X: Field{[10]uint32{0x00096f68, 0x00b426b0, 0x03b8bd0f, 0x008cc0c0, 0x02bc3934, 0x03efb8b9, 0x00b251c9, 0x0291a97f, 0x01d44713, 0x00005025}}, Y: Field{[10]uint32{0x0204a2b1, 0x032caeb9, 0x0159322d, 0x03ec2dfd, 0x001c7aa4, 0x0219f1ff, 0x01e632f6, 0x02cdd256, 0x000b3660, 0x00191f80}}},
+ {X: Field{[10]uint32{0x035e5323, 0x0184ec12, 0x03b838b2, 0x0068e3a7, 0x02894319, 0x03021e1d, 0x00f831f6, 0x0271b92a, 0x03f0346e, 0x0004844a}}, Y: Field{[10]uint32{0x0257a3d0, 0x010a61a5, 0x0210e30a, 0x0196273f, 0x01faf640, 0x03b936ae, 0x03abf62a, 0x00cf6530, 0x02c2cb45, 0x00390526}}},
+ {X: Field{[10]uint32{0x03ca5738, 0x0170dc22, 0x0329b4f7, 0x029e1165, 0x014f2197, 0x02bad67f, 0x00974ebe, 0x01204360, 0x00ccc2ed, 0x003e64d8}}, Y: Field{[10]uint32{0x026f1cb3, 0x020ea4bb, 0x020dbc0c, 0x00524d40, 0x03a06e44, 0x03865c76, 0x001b9f86, 0x01ea2b0b, 0x035e86d7, 0x002e4a8b}}},
+ {X: Field{[10]uint32{0x02809ca4, 0x013a01ba, 0x00567a65, 0x02712522, 0x0264ae77, 0x0394fd47, 0x032112bb, 0x00fb3121, 0x024ec81a, 0x000b7b96}}, Y: Field{[10]uint32{0x033d4954, 0x00786931, 0x033b1bcb, 0x018e4d3f, 0x02bdea4d, 0x03f3c983, 0x02a1bcff, 0x011f0702, 0x00a1df6d, 0x00078baa}}},
+ {X: Field{[10]uint32{0x01461229, 0x020b1ec3, 0x006a5f23, 0x0346ef5d, 0x00b73688, 0x00371404, 0x01638f7b, 0x03ade3d2, 0x02a2139e, 0x00016ea9}}, Y: Field{[10]uint32{0x01dca81d, 0x00756549, 0x00693cc0, 0x02a58055, 0x03b08a0c, 0x03909427, 0x02a75cd9, 0x014bc67c, 0x038310a3, 0x001c99dc}}},
+ {X: Field{[10]uint32{0x02913d70, 0x015a2ea0, 0x0183c8f8, 0x00b365ba, 0x02f60d10, 0x004c6791, 0x034a6f3b, 0x01135add, 0x02b9321d, 0x0028fddf}}, Y: Field{[10]uint32{0x00613a05, 0x033ae397, 0x00077d3f, 0x0195dd1c, 0x00f6db17, 0x01afb074, 0x02386302, 0x039c3c6a, 0x01df8271, 0x003e4f5d}}},
+ {X: Field{[10]uint32{0x03f2cf08, 0x02421371, 0x017db72f, 0x019baefa, 0x008588d7, 0x022ba7ce, 0x00fd62d6, 0x0249d0de, 0x02b5fa1f, 0x0011ae99}}, Y: Field{[10]uint32{0x038897f9, 0x02d77648, 0x0385b72d, 0x038bb3c1, 0x01f44bf7, 0x00ab5415, 0x01f9b555, 0x02e37e4b, 0x02243078, 0x000151cf}}},
+ {X: Field{[10]uint32{0x0280dbf2, 0x034873b3, 0x02af4291, 0x01732865, 0x000bccb1, 0x01547eb4, 0x03415b6f, 0x000982ca, 0x0246ddcf, 0x0036da80}}, Y: Field{[10]uint32{0x00591d3c, 0x01645fca, 0x01c7ea98, 0x01bf9d78, 0x025f8885, 0x00f34259, 0x02c6f6f6, 0x00725e95, 0x0046f93e, 0x000e5b35}}},
+ {X: Field{[10]uint32{0x026c8fa1, 0x00720d1b, 0x02e8c5cc, 0x02e19a64, 0x0338187e, 0x036e86c2, 0x012c4e58, 0x026368e6, 0x011ca7a2, 0x002e0be3}}, Y: Field{[10]uint32{0x01483461, 0x02d80d80, 0x03ee028e, 0x02254cf8, 0x02b1b805, 0x02dd9f1a, 0x00fdbddd, 0x0104f235, 0x036af9b0, 0x0012c2b9}}},
+ {X: Field{[10]uint32{0x0085f000, 0x003c0631, 0x014a182e, 0x035edffe, 0x01d106fd, 0x02984a18, 0x00c6348a, 0x0192bfa7, 0x02a4dc92, 0x00111ba5}}, Y: Field{[10]uint32{0x01568440, 0x00cf7c26, 0x02507c8e, 0x0032984a, 0x012771c4, 0x033d9def, 0x0223b7ec, 0x00e9607f, 0x03d92159, 0x000cb7f8}}},
+ {X: Field{[10]uint32{0x003a2eb9, 0x02874e4c, 0x01fb81ad, 0x01b3616f, 0x025c8a3e, 0x01941277, 0x0300ca34, 0x01b732e7, 0x03107bfa, 0x0000321b}}, Y: Field{[10]uint32{0x0034219d, 0x02b92b9f, 0x03ed888b, 0x01f92aa9, 0x019dcb27, 0x00c8d1d3, 0x0218c6a7, 0x0020502b, 0x00667e91, 0x003993dc}}},
+ {X: Field{[10]uint32{0x036cd710, 0x017d6eb6, 0x01cdb83e, 0x02acc0a9, 0x009201c2, 0x000af9ee, 0x00d94cc2, 0x010a6793, 0x036ecda1, 0x002fb63a}}, Y: Field{[10]uint32{0x01411aac, 0x01226957, 0x01256708, 0x00f08250, 0x0116a1f0, 0x01a49d1b, 0x0367b9f6, 0x02903174, 0x00fab375, 0x00055cdb}}},
+ {X: Field{[10]uint32{0x0364d38f, 0x0249b823, 0x02881da1, 0x014b7a0a, 0x00665e0a, 0x035d6520, 0x03171b5a, 0x02b44107, 0x03f2c5f6, 0x002cfbe9}}, Y: Field{[10]uint32{0x031677e6, 0x017eb23f, 0x013ffc53, 0x01840fed, 0x00b6dbd3, 0x03a6380d, 0x02b0dfaa, 0x00689003, 0x00843276, 0x000f7d8f}}},
+ {X: Field{[10]uint32{0x0315cbd2, 0x03149749, 0x02921ebd, 0x0305947b, 0x018fa9af, 0x027850f8, 0x01213a84, 0x026d7c8d, 0x01a0cd86, 0x002c1183}}, Y: Field{[10]uint32{0x006fd7ee, 0x02ec486e, 0x00eee865, 0x017b3d8c, 0x0146b472, 0x02d5eca6, 0x033b4c02, 0x0061df39, 0x02adf354, 0x0030468f}}},
+ {X: Field{[10]uint32{0x033bc071, 0x03b0f3b5, 0x0152a49c, 0x014e9f43, 0x00b49692, 0x00b58035, 0x00191871, 0x014afacb, 0x0117a174, 0x000a2c25}}, Y: Field{[10]uint32{0x0120a326, 0x01e90f7a, 0x01ae7fce, 0x0341a437, 0x0040ffd6, 0x0102bd65, 0x01635180, 0x01d64444, 0x0308073c, 0x000d9a59}}},
+ {X: Field{[10]uint32{0x03b5f136, 0x02946c3e, 0x037536b1, 0x03f11c55, 0x020ad86a, 0x002fc5fe, 0x02e76b7c, 0x032d601e, 0x00d8192a, 0x001486fb}}, Y: Field{[10]uint32{0x01ac858d, 0x01ffa0dd, 0x026691dc, 0x003bb7cc, 0x02ee0671, 0x015145a0, 0x00f399e1, 0x03c4fb33, 0x00c6d7af, 0x00192295}}},
+ {X: Field{[10]uint32{0x01f6cf67, 0x02dd87de, 0x01082368, 0x029ddb4e, 0x02a2a200, 0x0161f613, 0x009bca1b, 0x0275949b, 0x01d0b7fd, 0x002def06}}, Y: Field{[10]uint32{0x0370acae, 0x025ba347, 0x023ad2f7, 0x03fbfeff, 0x024a1e9f, 0x01cc58ed, 0x012c29a7, 0x03233d09, 0x02bee0d0, 0x0016b7be}}},
+ {X: Field{[10]uint32{0x017aea8b, 0x00c7c34e, 0x03114dc9, 0x01b704f9, 0x0066db7b, 0x0055633b, 0x030c2412, 0x02a35507, 0x03e51b6c, 0x0039238e}}, Y: Field{[10]uint32{0x020f28ac, 0x01079f83, 0x004314bf, 0x00fbe7dd, 0x01f6cb3a, 0x03c4ad19, 0x03064bff, 0x038bc4c3, 0x03575b16, 0x0036f3d8}}},
+ {X: Field{[10]uint32{0x03455751, 0x03d0a427, 0x028909b2, 0x02d65d67, 0x014ec795, 0x038a3ca9, 0x02475968, 0x024a9a8c, 0x02de71c6, 0x0000e571}}, Y: Field{[10]uint32{0x0269a13d, 0x030b2169, 0x003c3fcf, 0x0391266f, 0x03b5b097, 0x02b28557, 0x02ed4e15, 0x03768b07, 0x011803c7, 0x003b9780}}},
+ {X: Field{[10]uint32{0x02808d99, 0x01814af2, 0x009a81a6, 0x02aa293a, 0x02663da3, 0x0303fb0d, 0x03412919, 0x010e6489, 0x02c3b118, 0x000a24e2}}, Y: Field{[10]uint32{0x03174603, 0x002e6193, 0x025f8031, 0x0256e87a, 0x00da1682, 0x0032e684, 0x03eadb18, 0x0306fa8a, 0x027ab1eb, 0x0012ba37}}},
+ {X: Field{[10]uint32{0x0248f5a4, 0x00fb9ad4, 0x036f5852, 0x013f428d, 0x03be3af6, 0x0389fa14, 0x01472f23, 0x0233d881, 0x021895e8, 0x0001703d}}, Y: Field{[10]uint32{0x004be51b, 0x02c70f79, 0x02624b41, 0x0360d107, 0x038473e3, 0x03f6d43e, 0x03634569, 0x03aecedc, 0x0055cd09, 0x002f970f}}},
+ {X: Field{[10]uint32{0x023ca1d7, 0x01536b17, 0x02ec0015, 0x004c7ae8, 0x02ae2e8f, 0x01fb416e, 0x028e125f, 0x03dccfb4, 0x03bf22d0, 0x002af87d}}, Y: Field{[10]uint32{0x02b0ab4e, 0x02a8b106, 0x02ffc918, 0x02d656ba, 0x03e553e6, 0x0265b2cc, 0x008ffe4b, 0x007daa5c, 0x00db3de3, 0x000a9692}}},
+ {X: Field{[10]uint32{0x008d8be7, 0x03f4a738, 0x02349bcc, 0x03b110a9, 0x015f1dbe, 0x0298244a, 0x0124907e, 0x01c2cde4, 0x002757d3, 0x0030c109}}, Y: Field{[10]uint32{0x01868934, 0x01d73a6c, 0x031448bb, 0x0304a7a3, 0x01528959, 0x02326047, 0x01b35e2f, 0x0369d54d, 0x02b33e0f, 0x0019e993}}},
+ {X: Field{[10]uint32{0x0140f5b8, 0x014cbf8c, 0x01c21c81, 0x0119abd0, 0x03031527, 0x038690fd, 0x02f0b6a9, 0x008675de, 0x0146356f, 0x00196966}}, Y: Field{[10]uint32{0x00f35918, 0x00e9871d, 0x0241f246, 0x0164f611, 0x001692b0, 0x001c3688, 0x00cf27fc, 0x013e8146, 0x028d5d3e, 0x001939c4}}},
+ {X: Field{[10]uint32{0x001413e2, 0x03ad4fc5, 0x0219ede2, 0x02df536b, 0x0060311c, 0x02e67684, 0x03066f2b, 0x02321d1a, 0x023b4842, 0x001b1f4b}}, Y: Field{[10]uint32{0x00b7e3a1, 0x0192f2db, 0x007ab2a6, 0x03f8a3df, 0x03286292, 0x03b5ece0, 0x022864d1, 0x0319c137, 0x03bfc2e7, 0x00012e91}}},
+ {X: Field{[10]uint32{0x03fdcdd9, 0x033d63a4, 0x019cf44a, 0x01fe914e, 0x03565579, 0x0324ffd5, 0x03798a9b, 0x02270ad1, 0x03bdb99c, 0x00037495}}, Y: Field{[10]uint32{0x01b3e4af, 0x00ab8db0, 0x020cc1af, 0x02058e43, 0x03e8194f, 0x010a2440, 0x027e0d71, 0x01fc954b, 0x00f2a920, 0x003e359c}}},
+ {X: Field{[10]uint32{0x00c23d7b, 0x02ad79bb, 0x0263eb2a, 0x01f2c23c, 0x026827b8, 0x03351f18, 0x0152b8fa, 0x0310910a, 0x034eb8dd, 0x00094580}}, Y: Field{[10]uint32{0x0216ac9e, 0x031d6858, 0x02826433, 0x00d12d21, 0x00bd2ab5, 0x01cc774c, 0x03545bca, 0x03a81eb4, 0x0079f5fe, 0x002b63a2}}},
+ {X: Field{[10]uint32{0x0134246d, 0x037382b6, 0x0180b907, 0x00559646, 0x017f0752, 0x00847b70, 0x01834b38, 0x02478ec6, 0x005427b5, 0x001f9c8c}}, Y: Field{[10]uint32{0x0263a71f, 0x020051d3, 0x034e33b0, 0x03a38c91, 0x032506be, 0x00261d82, 0x01671df1, 0x02129bc8, 0x00bbd8c1, 0x0017247f}}},
+ {X: Field{[10]uint32{0x01d1898b, 0x0174e65b, 0x0333e72b, 0x01ffbe77, 0x038d4fb5, 0x0169bdae, 0x03876914, 0x0034a812, 0x0116ac3c, 0x0006c7e7}}, Y: Field{[10]uint32{0x035b4b1b, 0x034299fc, 0x01bd1024, 0x014e5146, 0x0215e944, 0x01890696, 0x00a399e1, 0x039142c5, 0x031e05ff, 0x001910af}}},
+ {X: Field{[10]uint32{0x00872f2b, 0x001b18ff, 0x01a23e90, 0x01364f14, 0x0265b514, 0x02598c71, 0x039f6715, 0x03a90e8e, 0x024e57cd, 0x00383c7e}}, Y: Field{[10]uint32{0x0332e564, 0x02705dab, 0x018640a4, 0x037b349f, 0x0374f9a3, 0x00547751, 0x02056170, 0x003450bd, 0x01fb5489, 0x00320e14}}},
+ {X: Field{[10]uint32{0x02728c3a, 0x0284bacc, 0x03d0b3e9, 0x009e675e, 0x0040efa0, 0x00a8281e, 0x01a3667b, 0x02082894, 0x03bb697c, 0x0002ba56}}, Y: Field{[10]uint32{0x03aebb41, 0x016c521a, 0x03f10e68, 0x0371ee00, 0x011140e0, 0x016b9427, 0x02a4da94, 0x0025b61b, 0x02970280, 0x003836ee}}},
+ {X: Field{[10]uint32{0x002aed31, 0x00d01d9a, 0x01b3069e, 0x02b9b9fc, 0x030afad1, 0x014ffe30, 0x02529ea8, 0x03d0b07f, 0x0085d52e, 0x003f23fe}}, Y: Field{[10]uint32{0x01e3dd14, 0x0382992c, 0x00850433, 0x01c50cab, 0x0209cced, 0x00d5b406, 0x0104f1b3, 0x023d89ee, 0x02d4b26e, 0x001497b3}}},
+ {X: Field{[10]uint32{0x02c8e810, 0x0272accc, 0x02546c62, 0x00f04d94, 0x00ed68d6, 0x02a59683, 0x01b57533, 0x01896835, 0x036a459d, 0x001984c4}}, Y: Field{[10]uint32{0x015b65cb, 0x02614ed9, 0x0069b93a, 0x00050049, 0x0228b4cb, 0x02c5a2f4, 0x01732b43, 0x002a52cf, 0x03f824d3, 0x00043ca7}}},
+ {X: Field{[10]uint32{0x01ea56f0, 0x03d68df7, 0x01b91f24, 0x0107daf8, 0x0319dda8, 0x01bbced8, 0x02309b39, 0x00cc9f1d, 0x01157b68, 0x00114216}}, Y: Field{[10]uint32{0x01956821, 0x01d953e4, 0x02a12bbc, 0x02fed2c6, 0x032b6ebb, 0x0023569a, 0x0155e34f, 0x022391a8, 0x0046584a, 0x002e69c5}}},
+ {X: Field{[10]uint32{0x008a4325, 0x00bcfddf, 0x0064f0e3, 0x013089d1, 0x01be58af, 0x035785c4, 0x0382576c, 0x02e8377a, 0x03bd8f10, 0x0005a3b8}}, Y: Field{[10]uint32{0x0278b34c, 0x01d08099, 0x0388668b, 0x02116082, 0x00465fb1, 0x020be1c0, 0x016891c9, 0x01027ea4, 0x026343ff, 0x001bbbc7}}},
+ {X: Field{[10]uint32{0x03048c04, 0x0009c53b, 0x0131b718, 0x013181de, 0x00fdd86b, 0x02c800f9, 0x034db8de, 0x008d053a, 0x0197763c, 0x002cc647}}, Y: Field{[10]uint32{0x02152edd, 0x016a0f30, 0x00a04f88, 0x0358ddc4, 0x03ce6860, 0x03af7570, 0x03d53d83, 0x01d72af9, 0x008559f9, 0x002d2b0c}}},
+ {X: Field{[10]uint32{0x022f8738, 0x0280898e, 0x0096a51e, 0x03f3c804, 0x033ec477, 0x03a4fd2e, 0x032acca1, 0x03724cf1, 0x005b4e73, 0x0036a757}}, Y: Field{[10]uint32{0x0012f8aa, 0x02cc826a, 0x015b50b4, 0x03422c28, 0x01400c05, 0x018d9944, 0x01b93b0d, 0x019b0da2, 0x02da65f9, 0x001feda8}}},
+ {X: Field{[10]uint32{0x00b0dd66, 0x0196f339, 0x0215c01e, 0x02825538, 0x008d1cfa, 0x0314991c, 0x011730f0, 0x0159e05e, 0x01d2a7e7, 0x00050395}}, Y: Field{[10]uint32{0x0153d5b3, 0x00165042, 0x0118bce8, 0x0397225e, 0x0087e2d5, 0x03bcd8c6, 0x02470d81, 0x00965e47, 0x00d863ea, 0x0012fee8}}},
+ {X: Field{[10]uint32{0x02b173d8, 0x00e67ac5, 0x00a1cf3f, 0x03e198d1, 0x03b438f7, 0x03f8f62f, 0x029bd01b, 0x03321f3b, 0x00f64b95, 0x00056a73}}, Y: Field{[10]uint32{0x03b33f3b, 0x018f2366, 0x03f90e03, 0x0269b946, 0x035d0ba5, 0x002cc6a4, 0x01e51fbf, 0x03b49581, 0x02cdbdeb, 0x0013d51c}}},
+ {X: Field{[10]uint32{0x00af6e06, 0x032a8f62, 0x0088f814, 0x0244b42a, 0x00c7ed5e, 0x02b4606f, 0x033d3d8f, 0x01c076de, 0x024b6776, 0x003a1b8d}}, Y: Field{[10]uint32{0x01ea7b92, 0x0130d5d3, 0x00915f83, 0x03452989, 0x0124a466, 0x018a1a62, 0x0195518c, 0x001034fa, 0x00600afc, 0x00008bf5}}},
+ {X: Field{[10]uint32{0x02500eb6, 0x020beb96, 0x03ddbfc2, 0x00ea9b56, 0x03b1f81d, 0x008faf39, 0x021134c7, 0x03c36c8c, 0x0298cd25, 0x000f0986}}, Y: Field{[10]uint32{0x03abd9c1, 0x00d7f15d, 0x02cbc455, 0x001b7abb, 0x004027a5, 0x0325a99b, 0x00b6ed7e, 0x02084629, 0x01455e49, 0x000ae348}}},
+ {X: Field{[10]uint32{0x00c955c8, 0x0151bb7d, 0x0300bd66, 0x017408e0, 0x00368c3b, 0x01deab3f, 0x03b1f6c1, 0x02d45db2, 0x00114d55, 0x00126daa}}, Y: Field{[10]uint32{0x03815b94, 0x00d60e28, 0x01bca5b5, 0x0044e475, 0x020ab944, 0x03c6c2ca, 0x038e0017, 0x039f041a, 0x00a409f0, 0x00346c49}}},
+ {X: Field{[10]uint32{0x0125f6b9, 0x02a36b31, 0x03f71f34, 0x007fde90, 0x016cee80, 0x003312e0, 0x01deab62, 0x039694fe, 0x0061f0d3, 0x001bb23a}}, Y: Field{[10]uint32{0x02dcfd6a, 0x00006ae9, 0x02e27782, 0x01c718fe, 0x011e01a8, 0x02dad7ac, 0x009c4f7e, 0x02bef4cc, 0x005b68cc, 0x0010b815}}},
+ {X: Field{[10]uint32{0x0195b9ac, 0x02262a91, 0x03e1ac08, 0x015d1903, 0x004b527e, 0x023c5369, 0x005a2e2a, 0x02973f4c, 0x034159ac, 0x001cd0ac}}, Y: Field{[10]uint32{0x03160124, 0x01748d14, 0x01ac121b, 0x0102b21b, 0x0127f64f, 0x03a984a0, 0x03969a84, 0x00bb88d8, 0x0302d244, 0x002d4984}}},
+ {X: Field{[10]uint32{0x02686fa9, 0x034c2e56, 0x0054b687, 0x015e9827, 0x00b27477, 0x03c9a59f, 0x01cfc43d, 0x00d42d97, 0x00bd54ef, 0x00210acc}}, Y: Field{[10]uint32{0x0336ead6, 0x016b20fc, 0x0277b9cc, 0x01f1c79f, 0x037d594f, 0x01723795, 0x0331f63f, 0x00dae7b3, 0x02922caa, 0x0013fea7}}},
+ {X: Field{[10]uint32{0x01f94862, 0x02381306, 0x02153999, 0x0028fa46, 0x037c13bb, 0x0255d5fb, 0x03fb60d4, 0x029f1ef0, 0x035dd589, 0x000b6e90}}, Y: Field{[10]uint32{0x028cc0a1, 0x03522257, 0x013ed55c, 0x0171f7e1, 0x00931d3e, 0x01dd7940, 0x038eca16, 0x00f2e748, 0x020ea4b2, 0x0031101c}}},
+ {X: Field{[10]uint32{0x033bec02, 0x034f1171, 0x01c07998, 0x02f4f40d, 0x02bb284f, 0x0064e42f, 0x035a4578, 0x03396ca9, 0x01248f84, 0x002747a1}}, Y: Field{[10]uint32{0x00eb9ead, 0x0201d325, 0x03f40129, 0x033e126f, 0x036d62e8, 0x02a018fc, 0x038bbc84, 0x0332b08c, 0x024cc935, 0x0023903b}}},
+ {X: Field{[10]uint32{0x00b441af, 0x0158b4b6, 0x01cf4e76, 0x008d8b89, 0x019a7f86, 0x005525d5, 0x03639121, 0x029d6f53, 0x02c5d1fb, 0x00349cd6}}, Y: Field{[10]uint32{0x01afc081, 0x023ecd9f, 0x0331da1d, 0x01b4727e, 0x01b4ade8, 0x02d4bcf9, 0x037cb0e5, 0x03cce5de, 0x003619f9, 0x0002f4ab}}},
+ {X: Field{[10]uint32{0x00a3e11a, 0x00eb7fac, 0x017cdca6, 0x025b82a5, 0x01b27c2b, 0x015ca4e5, 0x01a68d31, 0x03fc4eb4, 0x0238f46c, 0x002c04c3}}, Y: Field{[10]uint32{0x006aa3c4, 0x01666803, 0x001b5535, 0x00590d9b, 0x02610f15, 0x02c45dda, 0x02ff8443, 0x0100721f, 0x017f4a61, 0x000f67da}}},
+ {X: Field{[10]uint32{0x01ec76a7, 0x00b99a0d, 0x02caaed8, 0x01e0a650, 0x03f59faa, 0x02e277a2, 0x022d8f33, 0x01abe2d9, 0x022f1530, 0x00382a81}}, Y: Field{[10]uint32{0x015e6f2e, 0x01115fb0, 0x0218179a, 0x015097f1, 0x0334305b, 0x02b260e1, 0x01ffb8ac, 0x01cc1297, 0x00b56ea7, 0x00317d7c}}},
+ {X: Field{[10]uint32{0x019432d5, 0x012f42c0, 0x004139f4, 0x021665eb, 0x002156d6, 0x03a61d7b, 0x03e15c4a, 0x03472461, 0x02c1a8e6, 0x003b4589}}, Y: Field{[10]uint32{0x01f0c35d, 0x01410a5c, 0x00d7e69d, 0x011b164e, 0x037f0fad, 0x039cdcfd, 0x035e531e, 0x0128fd08, 0x015b9dcb, 0x000f0362}}},
+ {X: Field{[10]uint32{0x01c92833, 0x034bb413, 0x00be8431, 0x036e1b81, 0x00664744, 0x01325d3e, 0x0025aa67, 0x03f6be33, 0x00314e18, 0x0028b333}}, Y: Field{[10]uint32{0x0359d71c, 0x00e9d3f1, 0x038a846c, 0x02230190, 0x002e1b9c, 0x019cbd79, 0x00e55368, 0x01c7bb48, 0x0249d6d4, 0x002d9043}}},
+ {X: Field{[10]uint32{0x0268bf27, 0x03d9d6fd, 0x0331fa35, 0x0018f552, 0x00b3b24e, 0x00b65aa2, 0x0319119b, 0x03d8b12b, 0x012fdb15, 0x0016ff06}}, Y: Field{[10]uint32{0x03d99051, 0x02786611, 0x0223b609, 0x01890087, 0x02dbe0dc, 0x03d8a8e2, 0x0031bb39, 0x03850241, 0x0374acb4, 0x00119dd0}}},
+ {X: Field{[10]uint32{0x01227028, 0x02ad7c02, 0x0090e97d, 0x015621ab, 0x0161eb21, 0x01fbec02, 0x022e5539, 0x031010ca, 0x0289da73, 0x0019a10a}}, Y: Field{[10]uint32{0x01941de9, 0x00602448, 0x02f4e90b, 0x031a2726, 0x01da171b, 0x00405b36, 0x012dc9df, 0x02812223, 0x03c3511e, 0x000ea3a0}}},
+ {X: Field{[10]uint32{0x01c516e8, 0x001d9af3, 0x002f7181, 0x0137564d, 0x03e3a4a8, 0x03ba2e4a, 0x01f89913, 0x017e6351, 0x01973ba9, 0x003b208c}}, Y: Field{[10]uint32{0x037206fe, 0x0097866a, 0x032aef1d, 0x01b6b265, 0x0177d547, 0x02a54ed7, 0x033bc882, 0x00fd3865, 0x0079f511, 0x0014cb4f}}},
+ {X: Field{[10]uint32{0x02fc140b, 0x009467dc, 0x007ad1ac, 0x01b0caac, 0x03e8e8e2, 0x03cfb4e7, 0x015e5b65, 0x0185dabb, 0x0278bc51, 0x000ed97f}}, Y: Field{[10]uint32{0x00208d98, 0x03deb7e6, 0x02c1b9c9, 0x035cc533, 0x02566a1f, 0x019be577, 0x037f9764, 0x03ae704f, 0x02de5190, 0x00215b4d}}},
+ {X: Field{[10]uint32{0x018cc346, 0x01880db4, 0x03945182, 0x02cc9c8a, 0x01f9f31e, 0x00ff7402, 0x02545ce8, 0x00d497a7, 0x02ca51c4, 0x0000eb03}}, Y: Field{[10]uint32{0x0213a7e6, 0x00c092a8, 0x01e509ab, 0x0322c4d3, 0x00325beb, 0x01038251, 0x004ef313, 0x02933cc9, 0x018bc3b2, 0x00371c80}}},
+ {X: Field{[10]uint32{0x02e23508, 0x014e810b, 0x0172ffbe, 0x02e6ed42, 0x00bcdac8, 0x005f66f8, 0x012db7c2, 0x03b39bb7, 0x018d6c50, 0x00124a59}}, Y: Field{[10]uint32{0x02cec38a, 0x012f642a, 0x00c3a728, 0x03e35e84, 0x016dfc8d, 0x008ca1d0, 0x0155980a, 0x02ef52e1, 0x002c61aa, 0x00396b29}}},
+ {X: Field{[10]uint32{0x013a6291, 0x002ad6c5, 0x022781d6, 0x02ad2469, 0x037830e2, 0x031b48a5, 0x029e7488, 0x01924bc3, 0x036f4bc9, 0x002745b9}}, Y: Field{[10]uint32{0x015ac7ab, 0x0099bb22, 0x01711da7, 0x0228113a, 0x015eaa98, 0x01dc2bbd, 0x00363189, 0x01a48815, 0x0300e4ac, 0x00399643}}},
+ {X: Field{[10]uint32{0x035df94d, 0x026cae07, 0x0276d5e0, 0x01a89f01, 0x014e13b3, 0x03fe5eb7, 0x02a9bbe7, 0x039febd4, 0x004a1327, 0x002c1927}}, Y: Field{[10]uint32{0x0091acdd, 0x01570f0e, 0x02d120b3, 0x00206981, 0x02d79fdd, 0x01fdd6a2, 0x032a0807, 0x01a12381, 0x0316a6f3, 0x00264720}}},
+ {X: Field{[10]uint32{0x0052235d, 0x0304af6c, 0x013c96b7, 0x03d817f8, 0x03eb39a8, 0x0129285a, 0x01ce51c4, 0x00f7b4b2, 0x0221f630, 0x0023c652}}, Y: Field{[10]uint32{0x0330739e, 0x015749a5, 0x030f1bd7, 0x00b3b7f9, 0x01c63517, 0x0268b721, 0x01afb23e, 0x020b8951, 0x03d0c9af, 0x002f477c}}},
+ {X: Field{[10]uint32{0x03e21ff0, 0x021fc77b, 0x0262a60e, 0x00871b08, 0x033872b7, 0x03579996, 0x037f6c3d, 0x0133651d, 0x0297cc7a, 0x000769c6}}, Y: Field{[10]uint32{0x00be6a06, 0x03411a01, 0x026e87f0, 0x03a19a8f, 0x030a4d30, 0x009cebfa, 0x032b9af1, 0x01b869eb, 0x02413903, 0x001e345e}}},
+ {X: Field{[10]uint32{0x0386aa45, 0x01ebcf37, 0x0290f7a3, 0x006ec604, 0x03e04e40, 0x0148a471, 0x02fabb1c, 0x03c98b4f, 0x0363e493, 0x00027fb4}}, Y: Field{[10]uint32{0x003de729, 0x03fe0d9c, 0x00d6cb3f, 0x00da437f, 0x0353a54f, 0x02972597, 0x01b18276, 0x02b7fefb, 0x033ee164, 0x0004c330}}},
+ {X: Field{[10]uint32{0x03a1e49f, 0x01d6a1e9, 0x0298febb, 0x00eb079e, 0x007a601a, 0x032ed850, 0x01ebc38f, 0x00d5a066, 0x00cd221c, 0x003459bb}}, Y: Field{[10]uint32{0x0072f06e, 0x0257dda8, 0x003c9937, 0x01f33952, 0x00b0628c, 0x0152150d, 0x00ec5628, 0x0002f577, 0x02b7e7c2, 0x00098888}}},
+ {X: Field{[10]uint32{0x01dbe0fd, 0x002482a3, 0x035cc293, 0x01b8e4d0, 0x02b998a5, 0x02528ba3, 0x03078392, 0x01c30730, 0x00bd3e37, 0x0039e14f}}, Y: Field{[10]uint32{0x000e5a8e, 0x00503da6, 0x0050b80a, 0x02c63e92, 0x00cff1e7, 0x0008f0ef, 0x01d29181, 0x01f31259, 0x02ca6714, 0x001e5df9}}},
+ {X: Field{[10]uint32{0x0227a17f, 0x03d27158, 0x03511480, 0x039c108f, 0x0251036c, 0x02c687c0, 0x02a3cd56, 0x000804af, 0x02b1cb14, 0x002a2c3f}}, Y: Field{[10]uint32{0x01ba8a9f, 0x02773e9d, 0x037b527c, 0x02483225, 0x0367afe7, 0x00e00723, 0x00eedd6d, 0x02db6db3, 0x03db9d3a, 0x003335f0}}},
+ {X: Field{[10]uint32{0x02d617d7, 0x0167db15, 0x02b26c90, 0x001aa11a, 0x006d02e4, 0x013d62e6, 0x02905797, 0x015d54c7, 0x01d9e181, 0x0015f397}}, Y: Field{[10]uint32{0x02142d14, 0x006b18ff, 0x01bc4e85, 0x03c97bf2, 0x01829f61, 0x02a3e6bb, 0x01598f8a, 0x03cc589a, 0x00904399, 0x00330d30}}},
+ {X: Field{[10]uint32{0x00f9c858, 0x02e61bf4, 0x02f2d6c8, 0x031b2fc0, 0x008077b6, 0x0196acf9, 0x03bbc1d3, 0x03f1b6fb, 0x00b64f60, 0x0011e5e4}}, Y: Field{[10]uint32{0x007f2f9b, 0x022cd582, 0x03f435df, 0x006a57a6, 0x025cff91, 0x00f923e9, 0x025382ae, 0x00649774, 0x0182e358, 0x00055fd2}}},
+ {X: Field{[10]uint32{0x03f17c68, 0x019421ff, 0x03b1ccb2, 0x0328f2cd, 0x008ee0a0, 0x004ef9db, 0x001b6228, 0x00290486, 0x007b1ffe, 0x000156af}}, Y: Field{[10]uint32{0x0171d99f, 0x03b7532a, 0x032d669b, 0x02fe0a0f, 0x01606272, 0x02877496, 0x039e6030, 0x01314d33, 0x024923e9, 0x002f44d0}}},
+ {X: Field{[10]uint32{0x00d2e659, 0x019ce509, 0x011da1dc, 0x03807514, 0x02bd3156, 0x0397dc27, 0x004d4310, 0x0359eae0, 0x00328bf5, 0x001b29f8}}, Y: Field{[10]uint32{0x02ca2647, 0x008815d7, 0x01a69077, 0x03d1b4ac, 0x00d80aaa, 0x03e1c360, 0x011c2ff2, 0x00e42595, 0x0133f368, 0x00310a2c}}},
+ {X: Field{[10]uint32{0x01f530d3, 0x0167a44b, 0x014dd999, 0x03ba706b, 0x02346ae4, 0x02ebea2c, 0x03d20baf, 0x0021b132, 0x01a983e9, 0x001837c6}}, Y: Field{[10]uint32{0x0379cc48, 0x022dec0e, 0x01e31d7a, 0x03e211c0, 0x01a09d60, 0x0393a393, 0x01c2f1e0, 0x005e8108, 0x005429f8, 0x0036b9ee}}},
+ {X: Field{[10]uint32{0x03686bce, 0x009b5b74, 0x012c7e1d, 0x00141ae9, 0x035c22ff, 0x01668e11, 0x0180ea1c, 0x03cab6eb, 0x010e5ef5, 0x001bc635}}, Y: Field{[10]uint32{0x00d7d7a9, 0x00cdab7c, 0x038f513a, 0x01756d15, 0x00d3f340, 0x030de1b8, 0x00f5c83b, 0x03bf43eb, 0x020fa166, 0x003475fa}}},
+ {X: Field{[10]uint32{0x03d949e0, 0x03a281cb, 0x01233b3b, 0x00399796, 0x01fcdfe0, 0x0377ba76, 0x009569a8, 0x004cd92b, 0x009d5ed5, 0x002d8d37}}, Y: Field{[10]uint32{0x0331db69, 0x01b40dba, 0x021a70e8, 0x01d9958a, 0x02fdf189, 0x0370d15b, 0x01a505cb, 0x0095d7c9, 0x02e2c61b, 0x0035cb91}}},
+ {X: Field{[10]uint32{0x03445910, 0x0159bf65, 0x00f0e4fc, 0x020da7d7, 0x0340d919, 0x00f6f16a, 0x02461714, 0x0093cf99, 0x00f02dba, 0x00168dff}}, Y: Field{[10]uint32{0x01c69d1e, 0x010918dd, 0x00b59c33, 0x00f4a5d7, 0x0333e615, 0x00531e11, 0x02a95826, 0x01d1b198, 0x01d813f8, 0x002a5834}}},
+ {X: Field{[10]uint32{0x0112661c, 0x00eb86fc, 0x029e11b8, 0x023c6aac, 0x01eeeb8f, 0x0065b63f, 0x00201b6b, 0x0200cb18, 0x02a73731, 0x0022abc5}}, Y: Field{[10]uint32{0x039a8e44, 0x02ead22a, 0x0215d611, 0x025661f1, 0x036d03a7, 0x0117cab9, 0x03cc0c28, 0x02929d58, 0x035666a3, 0x0031187b}}},
+ {X: Field{[10]uint32{0x035e3434, 0x012e2bab, 0x0004d9cd, 0x024d0b0a, 0x011d85a6, 0x001ca711, 0x03e7f49e, 0x0057bf64, 0x03a5a05f, 0x00115bc2}}, Y: Field{[10]uint32{0x0311cad5, 0x01fb2c9c, 0x0135bb0f, 0x02f612e4, 0x0213f616, 0x00c10785, 0x006da131, 0x006a2dfd, 0x00a99922, 0x0029a03d}}},
+ {X: Field{[10]uint32{0x00f5c741, 0x02cd32ce, 0x0170a9d0, 0x003e85e2, 0x014bfdc9, 0x00784b2e, 0x03146d93, 0x015025d7, 0x02a1f190, 0x003e270d}}, Y: Field{[10]uint32{0x0044099b, 0x0348dd67, 0x01646579, 0x0233ad28, 0x034b1df3, 0x0307fe8e, 0x01866159, 0x006e4a84, 0x008058e3, 0x000ed58b}}},
+ {X: Field{[10]uint32{0x01f3f76a, 0x030940d0, 0x004289d2, 0x0398cbcc, 0x00e23876, 0x035a73ed, 0x00c49031, 0x02180036, 0x03112e1d, 0x001fdafa}}, Y: Field{[10]uint32{0x00ff4a9b, 0x03743b29, 0x02fb90cd, 0x035ba33d, 0x0008d98e, 0x00589ee6, 0x0194b9b5, 0x016bf2fa, 0x0007c092, 0x002864dd}}},
+ {X: Field{[10]uint32{0x02d73511, 0x03718184, 0x000d3827, 0x010c653d, 0x011010f5, 0x03475400, 0x037130ba, 0x031f0de2, 0x00aab585, 0x002416b4}}, Y: Field{[10]uint32{0x037177a9, 0x02e00942, 0x018aab83, 0x007e8b82, 0x00a44782, 0x024745b5, 0x00130aee, 0x0334e054, 0x0301c3dd, 0x002ff381}}},
+ {X: Field{[10]uint32{0x03408b6c, 0x0145487d, 0x032aef1d, 0x03d1d542, 0x01e54187, 0x02d80cf4, 0x001e7a30, 0x00bf29c8, 0x02d16212, 0x003d5670}}, Y: Field{[10]uint32{0x00154481, 0x0059eb4d, 0x017f25dc, 0x0108e33b, 0x037695ea, 0x00c4209c, 0x02f04dc4, 0x03ac51fd, 0x0222dfd0, 0x000fc435}}},
+ {X: Field{[10]uint32{0x018ce8b4, 0x0364741c, 0x023456f4, 0x00330d85, 0x037c0d8a, 0x022fb7d4, 0x02e5830a, 0x00527332, 0x00a4fa17, 0x00066cca}}, Y: Field{[10]uint32{0x02582f64, 0x01134127, 0x00855126, 0x0024975a, 0x01fdff7f, 0x039e19de, 0x01258838, 0x01a48da6, 0x000a2a4e, 0x0026873a}}},
+ {X: Field{[10]uint32{0x01ad5d4a, 0x024d922b, 0x03e533a3, 0x03d02487, 0x032743d4, 0x0069a82f, 0x00abc24c, 0x0066f3af, 0x00a0e756, 0x002beae6}}, Y: Field{[10]uint32{0x023a32db, 0x034e6fa4, 0x017157df, 0x038c4f5d, 0x007c8e5b, 0x007ca684, 0x0341c092, 0x00e695e5, 0x02877591, 0x002fc6ce}}},
+ {X: Field{[10]uint32{0x024181c7, 0x0247f63b, 0x01085cca, 0x03ba05db, 0x01b2dfe0, 0x020ea3b2, 0x01b36d9c, 0x028d36b7, 0x037c1d86, 0x0030b2af}}, Y: Field{[10]uint32{0x0191070f, 0x0349ea93, 0x032acf51, 0x0143a725, 0x01159ab1, 0x03b3ae3d, 0x00465bd6, 0x00cd71c9, 0x032453f1, 0x0016ccad}}},
+ {X: Field{[10]uint32{0x0289f593, 0x035b3f0a, 0x02be4f5a, 0x03e8b068, 0x024f6e9c, 0x03050d57, 0x028c5347, 0x01d148a6, 0x00248e84, 0x0024a0e5}}, Y: Field{[10]uint32{0x008c3a07, 0x02285c5f, 0x02996c88, 0x0057594b, 0x0051983b, 0x011bebda, 0x00a7b4a1, 0x03b81a67, 0x005dfd41, 0x002ee716}}},
+ {X: Field{[10]uint32{0x033c7dfa, 0x030c3431, 0x03b4aa8d, 0x004b4327, 0x0155e55f, 0x005ef5eb, 0x00cba646, 0x03c61082, 0x013c389e, 0x002f28a1}}, Y: Field{[10]uint32{0x01df63a2, 0x02235e78, 0x01340175, 0x00b80799, 0x02fe9a14, 0x01a98bee, 0x005952b1, 0x03b7b4f5, 0x009ef32a, 0x0027d04a}}},
+ {X: Field{[10]uint32{0x01bf56fd, 0x013ca05c, 0x037e4a0e, 0x02f4df29, 0x015745b7, 0x03399cb1, 0x0353aea5, 0x0196a3af, 0x03da94b5, 0x00293a9e}}, Y: Field{[10]uint32{0x013e96bc, 0x03339aa2, 0x00fb0970, 0x00c4deec, 0x02629eef, 0x00b1654f, 0x01e1a284, 0x03aa426e, 0x00851405, 0x0032541d}}},
+ {X: Field{[10]uint32{0x00d5e169, 0x0139e318, 0x03b1ff75, 0x022a149e, 0x03da57c1, 0x02268900, 0x0327ced0, 0x004e7b5c, 0x0145af71, 0x001c5c1f}}, Y: Field{[10]uint32{0x00223ef9, 0x037a75c4, 0x0185f1b9, 0x00e7f4f1, 0x013eef0f, 0x01691df7, 0x034e4a85, 0x029bce8f, 0x0084fe4d, 0x00092cd9}}},
+ {X: Field{[10]uint32{0x03df9a05, 0x029c1b93, 0x028c07dd, 0x03db5cc8, 0x015b1f5f, 0x01ae3fd4, 0x01cf4d23, 0x03d64675, 0x02030296, 0x0014b077}}, Y: Field{[10]uint32{0x02344d0e, 0x0074d356, 0x03c5135d, 0x00524181, 0x01c95097, 0x0368ede1, 0x00066e4f, 0x0355d0e1, 0x01590d73, 0x0036e563}}},
+ {X: Field{[10]uint32{0x0368912f, 0x007a9888, 0x03120d8b, 0x001f7e09, 0x0374dc20, 0x02f32ee1, 0x0291989c, 0x03a114c1, 0x00b07852, 0x001ec270}}, Y: Field{[10]uint32{0x002bd263, 0x0027a13e, 0x01f3be9c, 0x01736a5e, 0x0109545a, 0x01e0ae93, 0x02ebeeb0, 0x00a05f43, 0x0317ffc5, 0x0013b7d5}}},
+ {X: Field{[10]uint32{0x03b8300a, 0x031a277f, 0x02540681, 0x01899acc, 0x03f26e70, 0x038ecf00, 0x00088343, 0x0346a0af, 0x00ceb29a, 0x003a661c}}, Y: Field{[10]uint32{0x01597f9f, 0x01e16a33, 0x00fadc6f, 0x00f6448c, 0x008ff75e, 0x005345ea, 0x0012dbc6, 0x01f596f3, 0x01927894, 0x0020202b}}},
+ {X: Field{[10]uint32{0x005c38e7, 0x00e90d08, 0x02444adc, 0x02f4ae44, 0x022dd2c2, 0x00f5317b, 0x01b4cb9c, 0x0204e617, 0x026de28b, 0x0031f88c}}, Y: Field{[10]uint32{0x02ad940e, 0x02fd7871, 0x0099d195, 0x023150f6, 0x01d31adf, 0x005df3c1, 0x0387000e, 0x0332547e, 0x03f9cdc0, 0x0017ca18}}},
+ {X: Field{[10]uint32{0x023f7965, 0x026d574f, 0x02244119, 0x01ad7a94, 0x014c6bb6, 0x023ee922, 0x0186bfd2, 0x02f5e0f1, 0x02c84ca7, 0x00220d65}}, Y: Field{[10]uint32{0x00e9282e, 0x01af3896, 0x03ac6940, 0x016da3b3, 0x0147a22f, 0x00a516b2, 0x02d6d4a7, 0x017c4325, 0x03e85925, 0x003ec452}}},
+ {X: Field{[10]uint32{0x020b42cc, 0x03adf8fc, 0x02dcf7ff, 0x0165794c, 0x035cf616, 0x01f95b9f, 0x03029dd3, 0x0103d6c3, 0x0248a196, 0x001fdce9}}, Y: Field{[10]uint32{0x00ff4feb, 0x013fea20, 0x0107f4a9, 0x006e7565, 0x0108ef19, 0x028ed09b, 0x022df3eb, 0x02bb7ed3, 0x008af931, 0x0013dd89}}},
+ {X: Field{[10]uint32{0x0341aa3d, 0x030e0aa5, 0x015bddb9, 0x026a291e, 0x0218c873, 0x00465a99, 0x03b56040, 0x0340eb38, 0x034a3660, 0x003227b8}}, Y: Field{[10]uint32{0x02923884, 0x0346e544, 0x02084684, 0x0192e677, 0x03068387, 0x003bca4b, 0x0379ac9d, 0x02b15fcb, 0x008835fb, 0x002928ee}}},
+ {X: Field{[10]uint32{0x0141d5bc, 0x0313b4f6, 0x023fd566, 0x02250c15, 0x01b5c468, 0x007607c6, 0x0050cf43, 0x00313940, 0x0056d7dc, 0x00092f93}}, Y: Field{[10]uint32{0x029e6213, 0x0268217c, 0x001cbac0, 0x031e95bf, 0x010f6a5f, 0x03c6b5da, 0x00714a2a, 0x00c5757c, 0x02e24936, 0x00381c8d}}},
+ {X: Field{[10]uint32{0x000b94f5, 0x02e614f9, 0x02852c4e, 0x00749a4d, 0x022866a9, 0x008dea7c, 0x00ee5c53, 0x007001e6, 0x031ecaa9, 0x001b0c79}}, Y: Field{[10]uint32{0x00cf8cd7, 0x00f0e167, 0x03922572, 0x0365203d, 0x0134543c, 0x00c2e53a, 0x0117e0ac, 0x00b34704, 0x03232b5f, 0x00196bfc}}},
+ {X: Field{[10]uint32{0x0258b7e7, 0x0007b5e3, 0x02286926, 0x01d34c7e, 0x03e470a5, 0x02d860e7, 0x003c0229, 0x01a4f4f8, 0x033c8479, 0x00141b0d}}, Y: Field{[10]uint32{0x01b7ab65, 0x00feb280, 0x023ca167, 0x01db83ff, 0x03e24f86, 0x001ffba0, 0x00bd4ae7, 0x0140d49a, 0x03d3a57c, 0x0013f42f}}},
+ {X: Field{[10]uint32{0x018349a4, 0x0314ccb2, 0x01b45b48, 0x00247700, 0x0057571a, 0x01c7dcc7, 0x027b0978, 0x01b3185b, 0x01f3ea1a, 0x00167669}}, Y: Field{[10]uint32{0x01fc8447, 0x005b8355, 0x0363821c, 0x004c6a9a, 0x0153aadf, 0x029fb94e, 0x03c348f0, 0x025b0c98, 0x033eee64, 0x00252b4d}}},
+ {X: Field{[10]uint32{0x02d75c69, 0x00e06cc8, 0x008d64de, 0x0274d991, 0x01c6f892, 0x01b399f5, 0x001912fa, 0x005923d9, 0x03ab6537, 0x00294933}}, Y: Field{[10]uint32{0x01782823, 0x028daa51, 0x0214471a, 0x01630fd1, 0x02ac1b61, 0x02f9f1e6, 0x026ae90b, 0x0356645e, 0x03f987fb, 0x0005309b}}},
+ {X: Field{[10]uint32{0x0348c550, 0x03cb195f, 0x0276a92a, 0x03537c9b, 0x038aa3fd, 0x029ac8e4, 0x000d3ac6, 0x018c1e1f, 0x006df83c, 0x00049b26}}, Y: Field{[10]uint32{0x014c5c5c, 0x00595acf, 0x03d39774, 0x00757a6b, 0x003f74ab, 0x006b1cb8, 0x00f04dd3, 0x01be3cef, 0x01d3a56a, 0x0020214e}}},
+ {X: Field{[10]uint32{0x00e39722, 0x0211d283, 0x01db7318, 0x035ee6a0, 0x00d8ff25, 0x03341554, 0x01a9d5b4, 0x033ec9f8, 0x03c01aeb, 0x000cb2ae}}, Y: Field{[10]uint32{0x03bccee9, 0x01bfac63, 0x035bb957, 0x0087eaa7, 0x02be1910, 0x03b9ad4a, 0x02c070f6, 0x00c71004, 0x020ae080, 0x001f4c04}}},
+ {X: Field{[10]uint32{0x02f42c64, 0x03873e08, 0x025da359, 0x01905b70, 0x028a9f08, 0x0356992a, 0x00975aba, 0x035be2a6, 0x00baf7de, 0x000ff787}}, Y: Field{[10]uint32{0x035ac075, 0x00f2580b, 0x03f919ee, 0x02858373, 0x0044ffed, 0x024484b3, 0x0293cae6, 0x03c5d2c3, 0x00ac61f0, 0x0003943f}}},
+ {X: Field{[10]uint32{0x01462e24, 0x024cb1c4, 0x0326b3ce, 0x00dc7b87, 0x0336e9db, 0x02c409c9, 0x013a08d6, 0x037ef007, 0x02cad6c3, 0x00272b48}}, Y: Field{[10]uint32{0x00461c6b, 0x0136e554, 0x015a6882, 0x00653967, 0x03422bb1, 0x02aaeed4, 0x00781cb0, 0x033411fc, 0x031d873d, 0x0016ba13}}},
+ {X: Field{[10]uint32{0x015872ef, 0x014b465f, 0x0024e1c6, 0x027e4927, 0x010c20cf, 0x00706beb, 0x00ca18e9, 0x01d898ea, 0x0020aa80, 0x00026164}}, Y: Field{[10]uint32{0x03c73e69, 0x00152e34, 0x02dd6a3d, 0x03aecccb, 0x01a084e7, 0x03617e8e, 0x00976f72, 0x01f5b91c, 0x03fd21ab, 0x001150c8}}},
+ {X: Field{[10]uint32{0x024eb2b6, 0x00c6e791, 0x033a9d8c, 0x014f112c, 0x00ac00bc, 0x02094a07, 0x03093b6c, 0x032f568a, 0x01a3e7cb, 0x002085a6}}, Y: Field{[10]uint32{0x02a9726a, 0x001cead9, 0x0384023b, 0x0146f39b, 0x03e62cf4, 0x02ef4fa7, 0x0344cbcb, 0x032e6dca, 0x00172400, 0x003df567}}},
+ {X: Field{[10]uint32{0x00d370d9, 0x029fdb63, 0x02dad74e, 0x030ff0a1, 0x00440b3c, 0x031233ae, 0x01fc7a55, 0x00e189e5, 0x00be3642, 0x002f41b5}}, Y: Field{[10]uint32{0x0183b90e, 0x03354218, 0x017140ac, 0x014fef34, 0x0361bb12, 0x032ee023, 0x00a56632, 0x03b22329, 0x013a0fdc, 0x000ec246}}},
+ {X: Field{[10]uint32{0x03bdf4d2, 0x010448d2, 0x038225bc, 0x013645df, 0x02bb4b73, 0x0010f1b2, 0x00a4ed0e, 0x031e37c1, 0x02e79c8c, 0x000b1c44}}, Y: Field{[10]uint32{0x00391243, 0x00fb108e, 0x01afd6e0, 0x03bd97fc, 0x02bae242, 0x02403d87, 0x012884ad, 0x008921d8, 0x03add42e, 0x00320733}}},
+ {X: Field{[10]uint32{0x0122131e, 0x02deabf8, 0x03905762, 0x01bbc660, 0x03b7f523, 0x0377e73a, 0x03cbb8c9, 0x01dcb20c, 0x010fa65d, 0x00146b8e}}, Y: Field{[10]uint32{0x017ba06e, 0x01b86a3b, 0x02ec8125, 0x0387a13a, 0x000f1e96, 0x01f6edc5, 0x02f2a888, 0x01ac18a0, 0x03808040, 0x000f5f27}}},
+ {X: Field{[10]uint32{0x02cc59ea, 0x0209b936, 0x027a177d, 0x01c9ae45, 0x02c74326, 0x00ecc4d5, 0x00b8348e, 0x01e90caf, 0x0112de23, 0x00316778}}, Y: Field{[10]uint32{0x01903b25, 0x0131a275, 0x012b0285, 0x000ea381, 0x00aa33e4, 0x017859db, 0x009c1d9c, 0x02d9b67c, 0x03167c5e, 0x000d8427}}},
+ {X: Field{[10]uint32{0x0156d978, 0x000608fd, 0x030f757d, 0x039a4867, 0x02077ca1, 0x015d4c09, 0x01cb89a4, 0x02766c54, 0x023ab750, 0x0022e67c}}, Y: Field{[10]uint32{0x016a4164, 0x0380203d, 0x00e9adc8, 0x00be4132, 0x00d338e1, 0x02f355cf, 0x033cf0e4, 0x03f913d4, 0x02adf53a, 0x0021a8c6}}},
+ {X: Field{[10]uint32{0x00369dd5, 0x0382ae5e, 0x0271739f, 0x01f277ba, 0x0261f5fb, 0x03bc620b, 0x024135a1, 0x02a6f67b, 0x03657d6f, 0x001319c3}}, Y: Field{[10]uint32{0x03e65417, 0x002de5fb, 0x01dd3c10, 0x00d46d4e, 0x01b54e04, 0x01fe2474, 0x0075dc10, 0x014d8c4a, 0x02265d4b, 0x0014c6a0}}},
+ {X: Field{[10]uint32{0x00f38548, 0x0233b778, 0x0333d938, 0x037277c3, 0x0036aed9, 0x015fc190, 0x03024e6e, 0x003e57f5, 0x02359daa, 0x0023a59f}}, Y: Field{[10]uint32{0x010d218f, 0x0285d946, 0x00d2f1f1, 0x02c7c058, 0x0145fa0a, 0x028440e0, 0x008b833b, 0x03ea9632, 0x015ba59a, 0x000dbe01}}},
+ {X: Field{[10]uint32{0x032ac9e1, 0x03a78cce, 0x03c3ec82, 0x01f0231e, 0x015e2e09, 0x03c33256, 0x007bfaac, 0x028df417, 0x01159c45, 0x000fd846}}, Y: Field{[10]uint32{0x0197d7d6, 0x00cb80b5, 0x014faf6c, 0x03b896dd, 0x03b9d2f3, 0x03bab694, 0x02087578, 0x01f7148f, 0x034ab743, 0x00032004}}},
+ {X: Field{[10]uint32{0x007641d9, 0x0140033d, 0x007459f8, 0x020e1c1c, 0x0366bba6, 0x01faf7b7, 0x03b203ac, 0x0104ad4f, 0x009d7c61, 0x000fd679}}, Y: Field{[10]uint32{0x003ad5b0, 0x038958e9, 0x010f2ae3, 0x01e261b5, 0x0264cd09, 0x03d77353, 0x038f1010, 0x037f8f48, 0x00884243, 0x002fb75c}}},
+ {X: Field{[10]uint32{0x03f6d490, 0x032be1d6, 0x02781bbb, 0x036865e8, 0x01ad46d4, 0x033c5c3a, 0x0044b5bf, 0x00da90ef, 0x00c9b648, 0x0016df61}}, Y: Field{[10]uint32{0x034d984f, 0x00ffb0ac, 0x0156a7c7, 0x016e64a0, 0x03f2164e, 0x001f7c12, 0x00b89755, 0x02c3ffeb, 0x029cc7d6, 0x0027d56c}}},
+ {X: Field{[10]uint32{0x01744b1c, 0x030a7a94, 0x02a88962, 0x003681c6, 0x0390decf, 0x02bf0faa, 0x03bf1f9a, 0x03a0f3dc, 0x00ae0ac3, 0x00387b9d}}, Y: Field{[10]uint32{0x01277030, 0x0331423c, 0x0221650a, 0x016e0319, 0x01eefbe1, 0x020e60e7, 0x028d6748, 0x02149415, 0x02f8b34e, 0x0027a1b4}}},
+ {X: Field{[10]uint32{0x03eea871, 0x03125ada, 0x0200e5dd, 0x02b2fbb8, 0x01eba721, 0x025b29fb, 0x0196c22e, 0x0251238c, 0x015b8d48, 0x003e8733}}, Y: Field{[10]uint32{0x039bc469, 0x0396154b, 0x01829d25, 0x012ff4aa, 0x02851350, 0x01e95b5f, 0x02479a8a, 0x01995275, 0x019a326a, 0x0038adfd}}},
+ {X: Field{[10]uint32{0x03fdc8bf, 0x03c30e9e, 0x027a04c9, 0x01afde97, 0x00b29231, 0x02d298eb, 0x02199d1a, 0x0182587d, 0x00d70f38, 0x003bc787}}, Y: Field{[10]uint32{0x0298ef05, 0x014430ae, 0x00687eeb, 0x01dd5677, 0x025783d3, 0x0104794c, 0x015dadce, 0x0044760e, 0x0001a9de, 0x00133be7}}},
+ {X: Field{[10]uint32{0x01326120, 0x0391a2b8, 0x02e8e9b3, 0x02565687, 0x020fe9c3, 0x01204f6c, 0x025cc4ed, 0x034eeb7e, 0x02b93e75, 0x0036dc53}}, Y: Field{[10]uint32{0x0271a206, 0x00a56a9a, 0x0067f618, 0x00059970, 0x00fa3cb7, 0x02205a10, 0x0130311c, 0x01e3d213, 0x0286b812, 0x000f7126}}},
+ {X: Field{[10]uint32{0x02ea5d5a, 0x03ccbfb9, 0x0045229a, 0x031e6b47, 0x03d70c79, 0x03a74ffa, 0x00cf936e, 0x00a1610f, 0x038dbd57, 0x001665fc}}, Y: Field{[10]uint32{0x03e4a224, 0x01a695a5, 0x00eec45a, 0x01e37d52, 0x031f44b6, 0x01970777, 0x0349e089, 0x00046ee5, 0x0062b716, 0x002b7df6}}},
+ {X: Field{[10]uint32{0x03baeb92, 0x03bb0f4e, 0x00039ea4, 0x02f4ef1b, 0x02956654, 0x03f07f1e, 0x008ae666, 0x0015ddec, 0x02d90a92, 0x0025f5bd}}, Y: Field{[10]uint32{0x020068b9, 0x03c6d730, 0x03c684bd, 0x037d39ff, 0x03ce03fe, 0x00f7eefd, 0x015ab971, 0x0261536b, 0x0047ff21, 0x002d1437}}},
+ {X: Field{[10]uint32{0x02d307c4, 0x00034016, 0x010abc4b, 0x032875ac, 0x0040232b, 0x013bbe67, 0x0149ae3c, 0x02dcada5, 0x03cd5ec8, 0x0013d14f}}, Y: Field{[10]uint32{0x01683f7f, 0x01303482, 0x038160b9, 0x017b59a3, 0x00bd61f1, 0x0258367a, 0x02442baf, 0x02f21f1e, 0x0168c4a8, 0x002ab7b5}}},
+ {X: Field{[10]uint32{0x009424d6, 0x01c9c165, 0x031e6499, 0x0243036d, 0x00ae4c44, 0x02a9e51b, 0x01c0a6ac, 0x00c0d71c, 0x00a35059, 0x00016981}}, Y: Field{[10]uint32{0x033be9c8, 0x01e9bd04, 0x0186a893, 0x0278bde1, 0x01ae8277, 0x03ea2742, 0x02b92b93, 0x00069e80, 0x00126d87, 0x00395e3f}}},
+ {X: Field{[10]uint32{0x03c635b3, 0x0061a581, 0x004985d1, 0x0324d382, 0x022de601, 0x02d7fa3b, 0x024cf0d5, 0x00cbe86d, 0x01a29168, 0x000fcc1c}}, Y: Field{[10]uint32{0x011ad3a3, 0x02147911, 0x0070d053, 0x01706f91, 0x038712f2, 0x0277c390, 0x02adb6f6, 0x02c8cec8, 0x01990bae, 0x003a456c}}},
+ {X: Field{[10]uint32{0x001c06e5, 0x01252464, 0x02c45318, 0x01b0bb79, 0x02f7476a, 0x03e67088, 0x0302c5fb, 0x0226b3f3, 0x01cd6431, 0x001d16f0}}, Y: Field{[10]uint32{0x029933f0, 0x024741b4, 0x01d21872, 0x0107409d, 0x00be16cb, 0x0039676d, 0x02519bd1, 0x01dd77a6, 0x034a8703, 0x001668ae}}},
+ {X: Field{[10]uint32{0x0237238e, 0x02024449, 0x01942175, 0x00da29b0, 0x01ab3967, 0x018e1e62, 0x03591a60, 0x02567614, 0x028cadb3, 0x002ef41b}}, Y: Field{[10]uint32{0x00b8b690, 0x013b7b4e, 0x00c2a02b, 0x000e9968, 0x00d562b0, 0x0242e1a9, 0x006cb880, 0x0397cf71, 0x0296b484, 0x002b8360}}},
+ {X: Field{[10]uint32{0x022cf07c, 0x014ff524, 0x017a385e, 0x01a6debe, 0x029f3eb5, 0x00e8ecd7, 0x00b7e436, 0x02f99a14, 0x01b6128d, 0x003f36a3}}, Y: Field{[10]uint32{0x01551974, 0x03d4d7fe, 0x03f283a0, 0x03a0a817, 0x02cd11f1, 0x03135721, 0x0358ee14, 0x03e6a17d, 0x01fc37a0, 0x0012fcf7}}},
+ {X: Field{[10]uint32{0x0073cce2, 0x006b7666, 0x015705ca, 0x025d3b7b, 0x034ed2da, 0x01c84332, 0x025e1132, 0x01f7b4a9, 0x03dffc9c, 0x0018c977}}, Y: Field{[10]uint32{0x00f222e1, 0x0355b4d3, 0x033584d7, 0x003ebc69, 0x027ce193, 0x0185e7fa, 0x00ada7e2, 0x01bf1c5c, 0x0099683e, 0x00227f93}}},
+ {X: Field{[10]uint32{0x02ee0d7f, 0x038fca48, 0x02d59245, 0x026d068e, 0x03513df5, 0x009e7429, 0x035797a5, 0x014258ea, 0x00a69349, 0x001dd653}}, Y: Field{[10]uint32{0x01faabb2, 0x023760f9, 0x024a9581, 0x00ef299a, 0x03631df0, 0x03cbbd63, 0x02ddf45e, 0x02ff23f7, 0x01122ccf, 0x000657ac}}},
+ {X: Field{[10]uint32{0x02a67867, 0x005514ae, 0x0027bede, 0x01f80c21, 0x02e2defd, 0x019649dc, 0x01348fdc, 0x0090bd3c, 0x0067ea9b, 0x003cd5bb}}, Y: Field{[10]uint32{0x0233ba7a, 0x00bed335, 0x00121e4a, 0x00423c41, 0x03d75a21, 0x03262c0f, 0x02b71459, 0x023a9268, 0x01b9e23f, 0x000f4899}}},
+ {X: Field{[10]uint32{0x00a205c9, 0x03f74bbe, 0x012ffcad, 0x002d6428, 0x0186149f, 0x03e2b9be, 0x00e30914, 0x02923b1e, 0x02129b0f, 0x000cd82b}}, Y: Field{[10]uint32{0x01d18a34, 0x014b7dc9, 0x00b83dcb, 0x01478cdf, 0x023d7a20, 0x00ac2989, 0x00098722, 0x016844fb, 0x03f2720d, 0x001e6cde}}},
+ {X: Field{[10]uint32{0x01e8727b, 0x0056b4fe, 0x032823fc, 0x02ae7fc3, 0x03b29040, 0x0311d84f, 0x031a4c5f, 0x031436cc, 0x0352c703, 0x00113a43}}, Y: Field{[10]uint32{0x02f55f17, 0x027b0178, 0x02feb400, 0x00789b45, 0x0295c249, 0x00624cbd, 0x02d013a7, 0x00f9bd8d, 0x03419265, 0x0018b7ec}}},
+ {X: Field{[10]uint32{0x02c84047, 0x000ad793, 0x0209ee79, 0x0225462a, 0x01c9e042, 0x02ca3f8d, 0x01958764, 0x02b888c4, 0x03a9b5c3, 0x003974d9}}, Y: Field{[10]uint32{0x02f8bcf0, 0x02a62f39, 0x02ace9c9, 0x02d308e0, 0x03fbbc06, 0x001c14b9, 0x0337c069, 0x03c3e9be, 0x017f01ab, 0x003a86c9}}},
+ {X: Field{[10]uint32{0x01a63957, 0x01504ed6, 0x038de100, 0x02af820e, 0x010559ba, 0x008a01a9, 0x0061e6d4, 0x0396b4f0, 0x00fd7910, 0x00211e3a}}, Y: Field{[10]uint32{0x022df1d6, 0x0306f0c6, 0x03d5cfd8, 0x02f6d24b, 0x032f3f1e, 0x0052f52f, 0x03e38c45, 0x00d2644f, 0x00180519, 0x0013de4d}}},
+ {X: Field{[10]uint32{0x0284b42d, 0x033dd84a, 0x01b6dc2c, 0x03ffda15, 0x0010c97d, 0x01e7249d, 0x035e2240, 0x01cc6fd6, 0x03c80587, 0x0030e0c9}}, Y: Field{[10]uint32{0x01abfcd6, 0x015f5493, 0x01b22bc6, 0x03eae157, 0x00a213fe, 0x0004b39d, 0x007d61f5, 0x0040b9fa, 0x03accb1b, 0x003ac0eb}}},
+ {X: Field{[10]uint32{0x0051f10a, 0x00ad486f, 0x0214cd62, 0x02d9813b, 0x024662b4, 0x005fca28, 0x00f48c9d, 0x0299c956, 0x00125348, 0x002e7a2a}}, Y: Field{[10]uint32{0x031ccfee, 0x02b5ccbb, 0x0344ce3d, 0x02ee5e85, 0x033813e7, 0x01dc6d48, 0x02a02241, 0x0341ed47, 0x000d65fc, 0x000d709e}}},
+ {X: Field{[10]uint32{0x01cc713e, 0x0229ca69, 0x030fdcc6, 0x00f48506, 0x03d3c3b5, 0x002ea1ab, 0x012e4837, 0x028c94e3, 0x02d595cf, 0x002952a8}}, Y: Field{[10]uint32{0x03b8a159, 0x03ea81a2, 0x02baf4e1, 0x02e68cba, 0x007e9552, 0x02a14692, 0x036b9c86, 0x00acbb99, 0x006e63c0, 0x002fdd37}}},
+ {X: Field{[10]uint32{0x029fd956, 0x006787f6, 0x015ea4cc, 0x02b61735, 0x00420ce2, 0x02e2212b, 0x00ad145f, 0x0153ae11, 0x003ce2df, 0x003517fb}}, Y: Field{[10]uint32{0x00b81bd6, 0x03122fe3, 0x0208d205, 0x039fb9d2, 0x00bf6be1, 0x02308235, 0x001dbf9b, 0x032da9a4, 0x030065ae, 0x003b633e}}},
+ {X: Field{[10]uint32{0x03192172, 0x03892b54, 0x0310187b, 0x02ae390c, 0x005c0136, 0x013360db, 0x0159829d, 0x02cc632a, 0x0298f728, 0x003d2d13}}, Y: Field{[10]uint32{0x01ea9fa1, 0x030a8262, 0x024e84d3, 0x022fc2a9, 0x012febdd, 0x033dee37, 0x0041fd88, 0x033924b2, 0x01b3960b, 0x003bd548}}},
+ {X: Field{[10]uint32{0x013d67e3, 0x00b5090d, 0x039e2841, 0x031b8982, 0x00dcec40, 0x0214cc1e, 0x020cd40e, 0x024443ea, 0x01bf0d34, 0x0037b1b4}}, Y: Field{[10]uint32{0x01095895, 0x028bee99, 0x03b7254c, 0x02cc9041, 0x039451b0, 0x00bff243, 0x02fe44f3, 0x032405c7, 0x03813609, 0x001ce85b}}},
+ {X: Field{[10]uint32{0x03ff013e, 0x02d6deac, 0x02039238, 0x0092f069, 0x01265f1c, 0x009cd4d3, 0x010b9c02, 0x01f1064c, 0x015372e1, 0x0007ef37}}, Y: Field{[10]uint32{0x006c27ca, 0x031dfc93, 0x0374f22b, 0x01d628a9, 0x03b2358f, 0x01c9d551, 0x004d14b9, 0x00704483, 0x034a06a6, 0x00273d3f}}},
+ {X: Field{[10]uint32{0x02ab593b, 0x0004bef8, 0x03890357, 0x03e6a90e, 0x0250ea1f, 0x00e8c76a, 0x02d53f49, 0x01bb5deb, 0x00cb038c, 0x003673bc}}, Y: Field{[10]uint32{0x0253303f, 0x0030b74d, 0x0148604d, 0x004fb410, 0x01e161cd, 0x03c67769, 0x00e66547, 0x01cb56da, 0x02fe2468, 0x000ca905}}},
+ {X: Field{[10]uint32{0x03f03da3, 0x01d29807, 0x03ccede1, 0x01f338cf, 0x024e2f60, 0x022348e1, 0x022135f0, 0x00a86117, 0x014988e2, 0x0005906d}}, Y: Field{[10]uint32{0x0194922f, 0x0237ef5f, 0x006fb5b6, 0x03473eb6, 0x0148e3ff, 0x0103e05b, 0x024e1b95, 0x021d9cd9, 0x00d9ed71, 0x003b74fc}}},
+ {X: Field{[10]uint32{0x02243cdd, 0x014d9b0e, 0x0376f96c, 0x020eb13b, 0x0237938f, 0x03bd8059, 0x0238b211, 0x027fec6d, 0x00163c5d, 0x00267bdb}}, Y: Field{[10]uint32{0x02f66b48, 0x005da7b5, 0x02499a31, 0x02f9ae87, 0x027f912b, 0x03c10f80, 0x01d7796d, 0x01607787, 0x0362d819, 0x001adbbb}}},
+ {X: Field{[10]uint32{0x035bc97c, 0x0119e7d6, 0x03fe4e2f, 0x02ca3a93, 0x02b9c47f, 0x0314d917, 0x03f79b09, 0x00ba2e03, 0x012dc24c, 0x00124d63}}, Y: Field{[10]uint32{0x001cf5b4, 0x00df2bb7, 0x03865378, 0x0121efb8, 0x03b8c807, 0x023872bd, 0x03c1cbff, 0x0103afbd, 0x00a7f9df, 0x00144a85}}},
+ {X: Field{[10]uint32{0x00eb206b, 0x03b2119f, 0x02ee8a4e, 0x029690c2, 0x03c8c122, 0x00533ce0, 0x009c5e1a, 0x037fa495, 0x03cfb1de, 0x0038c74f}}, Y: Field{[10]uint32{0x01b0449b, 0x00eb95a9, 0x03687e6c, 0x02b6d379, 0x01effc4d, 0x020d193e, 0x03ad1dde, 0x01d1ec28, 0x026669db, 0x001ef0f0}}},
+ {X: Field{[10]uint32{0x02c64adf, 0x00933861, 0x015d44e3, 0x01fe5e68, 0x03ad1fbb, 0x00a35d20, 0x0332e66a, 0x02f2b7ee, 0x01d6ac86, 0x002a0bb2}}, Y: Field{[10]uint32{0x00f74c89, 0x03b1b4c3, 0x01f816c4, 0x03402c78, 0x023a9efa, 0x031de64d, 0x02b46f1a, 0x006b97d2, 0x012bc28b, 0x002eb21f}}},
+ {X: Field{[10]uint32{0x00ea113d, 0x02d4f532, 0x01c081bf, 0x030c631c, 0x020dc370, 0x02334eae, 0x01ab82b1, 0x028b891e, 0x01942bff, 0x00085942}}, Y: Field{[10]uint32{0x001fcae3, 0x029df272, 0x03103fec, 0x02fa697c, 0x00f84511, 0x009067e4, 0x0113b6f6, 0x00d142f9, 0x006a2f65, 0x0025ea09}}},
+ {X: Field{[10]uint32{0x02dd4b84, 0x03acd8b1, 0x0057f63c, 0x0318f6d6, 0x01e4e666, 0x01123a41, 0x01f8070e, 0x025a21ff, 0x00d8208d, 0x001cd414}}, Y: Field{[10]uint32{0x02b9e2e9, 0x0007e78a, 0x03918900, 0x032eb4c1, 0x00216887, 0x0320866b, 0x03e23f07, 0x0187279b, 0x00385636, 0x000b8fed}}},
+ {X: Field{[10]uint32{0x03afe506, 0x02ced991, 0x008ba197, 0x0001e770, 0x0365f878, 0x02e70fa6, 0x00c3813b, 0x0370228d, 0x0061e679, 0x00074086}}, Y: Field{[10]uint32{0x02fd2f1f, 0x029ae9e9, 0x03c50cea, 0x0133b82d, 0x004a10e8, 0x00a56fc2, 0x0292cd0e, 0x0120f427, 0x00b92303, 0x00052db4}}},
+ {X: Field{[10]uint32{0x02d7810b, 0x0313d391, 0x0033c1bd, 0x01dd2615, 0x03f91c55, 0x013bfe5b, 0x018c15d5, 0x0225cea1, 0x027486ca, 0x001e9fbb}}, Y: Field{[10]uint32{0x03b498cf, 0x004b2edd, 0x02297c70, 0x006ef078, 0x03448fed, 0x01f46733, 0x035057d8, 0x01439e9f, 0x007f5d91, 0x0017a0e8}}},
+ {X: Field{[10]uint32{0x0302beec, 0x039c9b69, 0x00b51f50, 0x0008cbc9, 0x02485938, 0x00a8cab6, 0x0005cce3, 0x00c1851f, 0x03d4fe0a, 0x00020470}}, Y: Field{[10]uint32{0x033d9f0a, 0x03acaf20, 0x034efc95, 0x0274c7b5, 0x03b28e59, 0x016b615d, 0x004214e3, 0x03d3e4ba, 0x016c6c9c, 0x0029bf30}}},
+ {X: Field{[10]uint32{0x01ad606c, 0x01f69248, 0x0150b435, 0x0020c2ba, 0x03ca25ed, 0x0112c9b4, 0x00d5b1ee, 0x027a3c09, 0x003889ea, 0x000b2851}}, Y: Field{[10]uint32{0x0026c551, 0x004398c4, 0x0186f42e, 0x038dd04f, 0x03c5e90b, 0x03e39884, 0x002c6560, 0x028a7c2a, 0x02c692d8, 0x001ed229}}},
+ {X: Field{[10]uint32{0x010277bf, 0x02c7c7ce, 0x01c80d57, 0x02977bba, 0x005dd3e0, 0x015f9989, 0x01566d29, 0x006bf0ce, 0x03e16104, 0x002a603f}}, Y: Field{[10]uint32{0x03a1c64c, 0x01051581, 0x007fd10e, 0x0015c739, 0x01457d50, 0x0285d366, 0x03440797, 0x00d0ee1d, 0x03a2a139, 0x000c9dbd}}},
+ {X: Field{[10]uint32{0x01cd80bd, 0x0275bab6, 0x026bc957, 0x02639977, 0x01fde41d, 0x026364dc, 0x002954a9, 0x02dd3f16, 0x03d9cbcc, 0x00395c28}}, Y: Field{[10]uint32{0x02973a52, 0x026af905, 0x022df273, 0x01af1f7a, 0x019400bc, 0x00b05a2f, 0x01d30351, 0x00e63826, 0x01776658, 0x00169d24}}},
+ {X: Field{[10]uint32{0x03ce1110, 0x025530de, 0x018c972b, 0x03ed988d, 0x0171bd25, 0x024a02eb, 0x013d985d, 0x03d4399b, 0x02b8952c, 0x003d7eea}}, Y: Field{[10]uint32{0x03d77175, 0x03d5fcc7, 0x006cfb02, 0x023400eb, 0x03801081, 0x01229d13, 0x03097c9b, 0x03e08693, 0x01236179, 0x0006b288}}},
+ {X: Field{[10]uint32{0x018d89be, 0x0277a85c, 0x03375555, 0x017b136f, 0x016f9e52, 0x012adf1d, 0x0008d258, 0x02a2b055, 0x02fbecbd, 0x000b9650}}, Y: Field{[10]uint32{0x00bc790b, 0x0155bec5, 0x0201640c, 0x006a3032, 0x0230e12a, 0x01ad6498, 0x0123d6cf, 0x02669e3c, 0x0107d141, 0x00254419}}},
+ {X: Field{[10]uint32{0x015dd296, 0x00cc006d, 0x0013ea2f, 0x00fe9ce5, 0x010a9fc8, 0x026eadc1, 0x01e7f64a, 0x0267a5b2, 0x00a9891c, 0x0024af41}}, Y: Field{[10]uint32{0x022ba587, 0x0067eb60, 0x01fbf130, 0x00d08859, 0x035cc71c, 0x005eda83, 0x0017ba68, 0x03f67395, 0x0333659b, 0x0033d78d}}},
+ {X: Field{[10]uint32{0x03b11083, 0x034c1069, 0x008ffed7, 0x02c219c9, 0x024d0e52, 0x00f77358, 0x00c54269, 0x03ab878f, 0x019fa50f, 0x000c377f}}, Y: Field{[10]uint32{0x02eb42ed, 0x036bd989, 0x0241b14b, 0x003e1eb1, 0x0221bdfa, 0x03d09a72, 0x00389e3d, 0x020fbe86, 0x00fe2bb1, 0x003fc574}}},
+ {X: Field{[10]uint32{0x012a9f4f, 0x00e779c9, 0x03f1cbaf, 0x036dcbe9, 0x00067ddd, 0x0115c679, 0x03196882, 0x031a2abc, 0x010bdf8a, 0x00233d45}}, Y: Field{[10]uint32{0x0186cfd5, 0x003f0150, 0x0007a213, 0x02ad0516, 0x002a9963, 0x00232636, 0x0318bc25, 0x02ec660e, 0x017ba299, 0x00130a12}}},
+ {X: Field{[10]uint32{0x025e46c7, 0x00ca2149, 0x001b8690, 0x002637b3, 0x014a8e3c, 0x03db765e, 0x02ed9f74, 0x013becf2, 0x02fd5097, 0x0007d2d3}}, Y: Field{[10]uint32{0x039fd399, 0x031bfac5, 0x00a76ee1, 0x00a49940, 0x02685352, 0x011f1f02, 0x00adeb8a, 0x02c0370e, 0x00c7f7c6, 0x001b12c1}}},
+ {X: Field{[10]uint32{0x0091af81, 0x00a2c634, 0x029a22a0, 0x02e43cb8, 0x003f915c, 0x004f40e3, 0x01883bad, 0x03e8ce35, 0x0100979a, 0x00275492}}, Y: Field{[10]uint32{0x0002be38, 0x0059e79a, 0x033e1e0f, 0x031c2e69, 0x03db3257, 0x02c5874c, 0x004453d6, 0x01ccb444, 0x013c037c, 0x00102684}}},
+ {X: Field{[10]uint32{0x01a2e3a1, 0x01fcd2f7, 0x00734c62, 0x0133cfec, 0x005b0398, 0x0308d00f, 0x01c124c1, 0x036743f5, 0x00e446ee, 0x0014b879}}, Y: Field{[10]uint32{0x008320a7, 0x010c85c2, 0x03e5b262, 0x00c1d69d, 0x02e2dbc6, 0x00b05c4e, 0x004104f1, 0x03fea30f, 0x03317375, 0x0019d295}}},
+ {X: Field{[10]uint32{0x02401c8b, 0x00bdea05, 0x03148fd2, 0x024e9df5, 0x020e0a6c, 0x031b8dbe, 0x00a8b6e7, 0x0138c79b, 0x031a8eef, 0x00209ec5}}, Y: Field{[10]uint32{0x03ca7540, 0x017cd93d, 0x01f08827, 0x03e84a7e, 0x001d58c7, 0x01e2e845, 0x026d14cb, 0x00073df7, 0x01fdd9b8, 0x00197361}}},
+ {X: Field{[10]uint32{0x00df2f9b, 0x03e45edb, 0x00383c83, 0x01506fa8, 0x023db299, 0x0160b891, 0x01abc32e, 0x025909a8, 0x01e961d8, 0x000493d1}}, Y: Field{[10]uint32{0x038d6c62, 0x02d359e5, 0x00f8358b, 0x01f484e9, 0x03e48e7a, 0x018a23e1, 0x020626fc, 0x0196c4b5, 0x03e4110b, 0x001cd38b}}},
+ {X: Field{[10]uint32{0x024d67e2, 0x03d5a666, 0x011695f5, 0x035b0234, 0x00fb4ac9, 0x02648131, 0x024f0028, 0x02cc9043, 0x029818b2, 0x0000edc4}}, Y: Field{[10]uint32{0x02c27c3b, 0x01f07ed0, 0x02218560, 0x01a2862b, 0x0154ba63, 0x03119582, 0x0010c51e, 0x005ad570, 0x038b0cee, 0x000a2dbd}}},
+ {X: Field{[10]uint32{0x012d8a00, 0x000ced54, 0x020a4290, 0x02871fdf, 0x02e2b887, 0x029ab9c3, 0x0264485e, 0x014d8c39, 0x007e063b, 0x00349c76}}, Y: Field{[10]uint32{0x016da847, 0x008e3ae7, 0x01c9b510, 0x009cd25c, 0x0060ef59, 0x03619134, 0x03122ba8, 0x038a009c, 0x00047865, 0x0019750e}}},
+ {X: Field{[10]uint32{0x00dc03a7, 0x0252c943, 0x01661e84, 0x0326b9ef, 0x000c5ca0, 0x00ae954b, 0x00d2d82e, 0x0145819f, 0x01852db3, 0x0007471b}}, Y: Field{[10]uint32{0x02691f62, 0x02c40153, 0x02ebbae8, 0x0132f75e, 0x01e19f87, 0x02bba80d, 0x01b68407, 0x00095bba, 0x00c5673a, 0x002f0c7d}}},
+ {X: Field{[10]uint32{0x02efdd9d, 0x01d5bf51, 0x007fb1d3, 0x0331a559, 0x00bf8d2e, 0x02e81f79, 0x02d274c0, 0x02530376, 0x01b471e3, 0x0023fba2}}, Y: Field{[10]uint32{0x012b8c6c, 0x0298bc6f, 0x034c434c, 0x01c51aa6, 0x034ba5cf, 0x00663e73, 0x03ae1487, 0x015e3f45, 0x00c38479, 0x001757b4}}},
+ {X: Field{[10]uint32{0x0010a6ec, 0x03ef4c22, 0x02ce55d7, 0x017e4236, 0x018ef938, 0x038fb91d, 0x026302cc, 0x03cd4580, 0x030955a0, 0x001a07f3}}, Y: Field{[10]uint32{0x02a38faa, 0x00d63280, 0x00885e6d, 0x03d0643c, 0x00aa54e8, 0x013195d7, 0x0187edbc, 0x01d89200, 0x035b9992, 0x0010c1fd}}},
+ {X: Field{[10]uint32{0x03a6971b, 0x024a4dec, 0x02918907, 0x0225ff0c, 0x026f6c1a, 0x001334f8, 0x0184a289, 0x029c6da9, 0x02ddfcb5, 0x001c5ff5}}, Y: Field{[10]uint32{0x00b17992, 0x036167d6, 0x02511d7c, 0x0174d075, 0x021b05e2, 0x01fdb6a3, 0x00405532, 0x02b4137f, 0x002971d4, 0x002d00fe}}},
+ {X: Field{[10]uint32{0x014f2ff6, 0x0004f8dd, 0x03a34227, 0x01e71cc8, 0x00d29832, 0x02b630d0, 0x01f49986, 0x025e1b70, 0x032394eb, 0x003cae55}}, Y: Field{[10]uint32{0x0366763b, 0x02925f9d, 0x0120ddba, 0x00179e99, 0x03bb69e7, 0x02645edc, 0x009645dd, 0x033505c6, 0x03813efd, 0x002d54f4}}},
+ {X: Field{[10]uint32{0x02730b1b, 0x01d21765, 0x017b1423, 0x0340755b, 0x019ab6fe, 0x00504d70, 0x0309b524, 0x01b22594, 0x03e6d7d8, 0x00161c52}}, Y: Field{[10]uint32{0x03e3e533, 0x0293579b, 0x03cf81c9, 0x01717e93, 0x03403984, 0x0038c54d, 0x02b84abf, 0x03396f7a, 0x03343e38, 0x00030047}}},
+ {X: Field{[10]uint32{0x026ff3c3, 0x0056f01e, 0x0223b7f9, 0x03eecafa, 0x02b30819, 0x0271ad3e, 0x0300d49e, 0x03e306e5, 0x01abc828, 0x0034cf39}}, Y: Field{[10]uint32{0x01a23395, 0x0293045d, 0x0156fcac, 0x013cdf6e, 0x01ef5939, 0x03ef88bc, 0x0372ba63, 0x01262088, 0x02223913, 0x001ce6d8}}},
+ {X: Field{[10]uint32{0x03b55479, 0x01ec9b58, 0x020d5983, 0x00235be4, 0x02249048, 0x00bdf652, 0x03a58ff4, 0x0004a13a, 0x0232fc7d, 0x0020880b}}, Y: Field{[10]uint32{0x0163b4c8, 0x000ced89, 0x0004dedd, 0x000a6800, 0x0063aa32, 0x02b0b220, 0x004fb0a8, 0x015793f3, 0x015450aa, 0x003f798e}}},
+ {X: Field{[10]uint32{0x01ea7781, 0x027e9f0b, 0x022b7041, 0x021e8d09, 0x02941e64, 0x00322d92, 0x0300e370, 0x013223e8, 0x02185bfb, 0x0009798c}}, Y: Field{[10]uint32{0x0316e640, 0x03736fbd, 0x02a1142d, 0x00915230, 0x0209caa1, 0x019cc75f, 0x032d84cc, 0x02ae6537, 0x03074802, 0x002b9a5a}}},
+ {X: Field{[10]uint32{0x005c114e, 0x006a56d8, 0x0048753c, 0x00e87bf7, 0x039da877, 0x010e837f, 0x0068a363, 0x01386bc9, 0x0205b925, 0x00380cda}}, Y: Field{[10]uint32{0x03b12a18, 0x036762eb, 0x01050d96, 0x0056776b, 0x015ba059, 0x011899b1, 0x03974553, 0x0368e1e6, 0x0160377a, 0x001075d6}}},
+ {X: Field{[10]uint32{0x02996662, 0x01cc6aa6, 0x0375262d, 0x016b6d5e, 0x0134ee87, 0x01092270, 0x01a9253e, 0x02c6f472, 0x03af7fd2, 0x00210cd8}}, Y: Field{[10]uint32{0x03cde6ca, 0x034d58bf, 0x004734d2, 0x02c59b92, 0x0012c4b3, 0x0054e8ca, 0x00bda36f, 0x03c04fb5, 0x02d1dbfc, 0x00397028}}},
+ {X: Field{[10]uint32{0x011178de, 0x03d8cca5, 0x03c0526d, 0x000a74a0, 0x03abb9f2, 0x029f95d8, 0x03955cff, 0x01fc63e5, 0x00b81cdb, 0x002b6c84}}, Y: Field{[10]uint32{0x00ea0e35, 0x02e4695d, 0x02cf068e, 0x03b0b86f, 0x01364db5, 0x0122be84, 0x03847219, 0x00aa9835, 0x0305d818, 0x000b0847}}},
+ {X: Field{[10]uint32{0x024d7491, 0x019450bc, 0x036e088b, 0x0139615e, 0x02203460, 0x02684de4, 0x013854f5, 0x0088d7ba, 0x03a1a2fe, 0x002ac317}}, Y: Field{[10]uint32{0x000124d2, 0x00bde16e, 0x0132b8d9, 0x0337b29a, 0x03b9dc48, 0x01ce0d54, 0x00a73840, 0x01b855c7, 0x01cbe36d, 0x003951c9}}},
+ {X: Field{[10]uint32{0x0085deda, 0x02f2235e, 0x01835f9c, 0x002d9eb3, 0x03868a08, 0x03d3d51c, 0x03124b0a, 0x018f90fc, 0x037a1d21, 0x000f9779}}, Y: Field{[10]uint32{0x01746630, 0x03994745, 0x036d2254, 0x03130dfb, 0x02e1927d, 0x01dfd452, 0x03e66b83, 0x000ee2e0, 0x00a42f95, 0x0029bb4d}}},
+ {X: Field{[10]uint32{0x0191ec05, 0x03abbd92, 0x01ceb050, 0x0057e0ea, 0x01321848, 0x03ccbd9c, 0x031f0688, 0x034c996d, 0x033d31d1, 0x001831a2}}, Y: Field{[10]uint32{0x0000d498, 0x0183f29f, 0x0132a9d7, 0x00a5403b, 0x01898867, 0x021dcde9, 0x01aecbe9, 0x009322a5, 0x00619f7d, 0x0025deb3}}},
+ {X: Field{[10]uint32{0x01c135e2, 0x0316cc5a, 0x0065464f, 0x00a5afa8, 0x014a1267, 0x019ae6c9, 0x0004a76a, 0x039656db, 0x02e9b646, 0x00086c14}}, Y: Field{[10]uint32{0x000779e7, 0x00262715, 0x0128538f, 0x035166aa, 0x0318db6e, 0x02c37f5f, 0x007292c4, 0x035c5dba, 0x00cd2fb3, 0x00040a79}}},
+ {X: Field{[10]uint32{0x03523d68, 0x01f6e8de, 0x0379dc02, 0x03bd6c47, 0x02f58bb2, 0x002f9332, 0x0101e666, 0x011457b9, 0x02f37c66, 0x0001c032}}, Y: Field{[10]uint32{0x03a08be1, 0x024d31db, 0x00948e1a, 0x01f95bb7, 0x008eac9b, 0x02655e0c, 0x032487c1, 0x011bccb8, 0x0388f1c3, 0x001f7dda}}},
+ {X: Field{[10]uint32{0x01541e8d, 0x01a59912, 0x01696299, 0x02bd5969, 0x015d34ae, 0x019160c5, 0x01f1c9f5, 0x02112b39, 0x03d21293, 0x00316ae6}}, Y: Field{[10]uint32{0x01c422d8, 0x0184c100, 0x02f29c03, 0x00315f6c, 0x029b34d9, 0x03b14e9f, 0x01f44678, 0x01b22a83, 0x01c6c61d, 0x000b4820}}},
+ {X: Field{[10]uint32{0x016d75a3, 0x034dda80, 0x023dfa4a, 0x0375751a, 0x005713fb, 0x03085476, 0x00d15af8, 0x01770512, 0x032ed53f, 0x0022bf0f}}, Y: Field{[10]uint32{0x039b6c8f, 0x02c69392, 0x0389764d, 0x004fcd15, 0x036767c5, 0x00864f9a, 0x015a99d4, 0x02fb6780, 0x03932627, 0x000047d8}}},
+ {X: Field{[10]uint32{0x025007a7, 0x01cf140e, 0x034d86e1, 0x019fb7a7, 0x02c0d698, 0x01eb8da0, 0x00cf7292, 0x03ab7f3d, 0x01c6bb55, 0x001052b6}}, Y: Field{[10]uint32{0x03603585, 0x0374e823, 0x03fd6181, 0x020bb6f7, 0x01dafb6f, 0x019e951b, 0x002306b6, 0x026c7444, 0x00f8f4de, 0x00312f34}}},
+ {X: Field{[10]uint32{0x0304a1e3, 0x005c91f2, 0x008fdb23, 0x034eabc2, 0x01a163a2, 0x037109b4, 0x005ec88f, 0x01cc5ea7, 0x0240b84b, 0x00208478}}, Y: Field{[10]uint32{0x02722bbb, 0x0250ab49, 0x029be4e7, 0x02c5c2a7, 0x03a74f10, 0x016586cc, 0x006c4f6d, 0x02fd453c, 0x019bb268, 0x00329da9}}},
+ {X: Field{[10]uint32{0x02ba700e, 0x01676bc8, 0x012f429e, 0x02450fb9, 0x023f7cd2, 0x00252c9e, 0x02c44523, 0x0374f1d7, 0x0132363a, 0x0029537f}}, Y: Field{[10]uint32{0x02d4490b, 0x02364bae, 0x02bbb279, 0x01d1aa4f, 0x013639ac, 0x026d1219, 0x038d1304, 0x000260f8, 0x022c5951, 0x003c5820}}},
+ {X: Field{[10]uint32{0x018860f7, 0x029f2e52, 0x015e9a3b, 0x010f3ef6, 0x03e2921a, 0x0387a74f, 0x02ee1a81, 0x026c629e, 0x005552b2, 0x001df593}}, Y: Field{[10]uint32{0x0208ff10, 0x01bcb9e0, 0x025978d0, 0x02a43325, 0x020fed03, 0x01b6681a, 0x00ad9d73, 0x0323d110, 0x00f95ea9, 0x003a5eee}}},
+ {X: Field{[10]uint32{0x02309ca9, 0x0251f85b, 0x03d61ba7, 0x000d83c4, 0x011b57c1, 0x00396862, 0x007f0f5f, 0x01afc47d, 0x0014b33e, 0x001216ce}}, Y: Field{[10]uint32{0x00e38bdb, 0x02098c81, 0x01b5f152, 0x01bcb1e0, 0x03f99857, 0x011b2194, 0x0050dd09, 0x01f18a98, 0x0070ce60, 0x0039aede}}},
+ {X: Field{[10]uint32{0x0072739c, 0x01c1a3c0, 0x029aab0a, 0x032052bb, 0x017ced2a, 0x02dbb714, 0x03618be1, 0x01e30b7b, 0x01eca90a, 0x003b48e0}}, Y: Field{[10]uint32{0x034954c7, 0x0117fec4, 0x00fbc3de, 0x0058b284, 0x02d68599, 0x018d4e07, 0x00c291ec, 0x019148e0, 0x03e0ba32, 0x0032c21c}}},
+ {X: Field{[10]uint32{0x00ed971d, 0x01795f11, 0x03a684a6, 0x019a3cb9, 0x02955b6a, 0x0132e83f, 0x03c7369a, 0x03049f20, 0x0379d36b, 0x0039112b}}, Y: Field{[10]uint32{0x03785fff, 0x031553f4, 0x034e9dd7, 0x03780434, 0x02ec50e5, 0x02922662, 0x0355ca16, 0x0208eaab, 0x030327b6, 0x0029e1db}}},
+ {X: Field{[10]uint32{0x01fc1fca, 0x035f941a, 0x0278c07e, 0x022a5b2c, 0x03b8677b, 0x014bfa93, 0x024296c1, 0x0168b57d, 0x00d77de7, 0x002be30d}}, Y: Field{[10]uint32{0x0184d673, 0x0330ec8a, 0x00a8cf9e, 0x032e2e07, 0x02f3c451, 0x0118caf8, 0x015899f2, 0x0306a339, 0x0062ab6e, 0x00123396}}},
+ {X: Field{[10]uint32{0x027efe13, 0x0150db3d, 0x000cbe31, 0x0221d812, 0x0108940c, 0x0368128c, 0x02745a81, 0x0113b463, 0x0066243a, 0x003a6675}}, Y: Field{[10]uint32{0x0237fe36, 0x0347ec00, 0x013cb2f7, 0x03adfea0, 0x00ef55d3, 0x0337b6f4, 0x02ac0e75, 0x01198708, 0x027063a8, 0x003d07a3}}},
+ {X: Field{[10]uint32{0x004bcc72, 0x026d9118, 0x02d66e20, 0x02a962dc, 0x00072caf, 0x00bf7afb, 0x00c923a0, 0x0193fe8f, 0x00aa7d89, 0x003103be}}, Y: Field{[10]uint32{0x03238ce5, 0x03c189ed, 0x02c2f696, 0x031ecfbe, 0x00ff50eb, 0x01dbccde, 0x012c3b61, 0x02879bc4, 0x01b56549, 0x0012038d}}},
+ {X: Field{[10]uint32{0x0252982f, 0x006c3ce6, 0x026151bd, 0x02288a89, 0x01679e4b, 0x00826a97, 0x012b546e, 0x01267226, 0x001de3f9, 0x00120bb9}}, Y: Field{[10]uint32{0x00d3de3d, 0x03fba077, 0x009f832e, 0x03b28395, 0x03563f92, 0x03843b1b, 0x012eff0e, 0x006054b5, 0x0070d213, 0x00144398}}},
+ {X: Field{[10]uint32{0x0058fae5, 0x033dc997, 0x01fd465d, 0x00cb180a, 0x036df7ca, 0x034dbe2d, 0x0003c694, 0x0307599c, 0x006825a3, 0x00119829}}, Y: Field{[10]uint32{0x0223f618, 0x02fe842e, 0x017c0700, 0x0380540e, 0x03791de8, 0x00b6b7a5, 0x00acc720, 0x030a5a62, 0x03f546b5, 0x000f660a}}},
+ {X: Field{[10]uint32{0x035d8f8d, 0x022fbc3a, 0x00d8703c, 0x0385d8c5, 0x00d8a3ae, 0x01d62665, 0x031dc033, 0x01bc2cfe, 0x024c92ba, 0x002e1798}}, Y: Field{[10]uint32{0x0175679b, 0x01861a2b, 0x0148688c, 0x009a19b3, 0x03e2cdff, 0x02cdbbdd, 0x03ff93ef, 0x016e9092, 0x033320a5, 0x002224da}}},
+ {X: Field{[10]uint32{0x002683e3, 0x0261d524, 0x014c6b16, 0x00be53be, 0x03b3be28, 0x018bf56c, 0x0187ebab, 0x009afef4, 0x00b5361a, 0x00290648}}, Y: Field{[10]uint32{0x015ea98a, 0x031e92b8, 0x007d1491, 0x027c9819, 0x02c95a8f, 0x00814f80, 0x027201b3, 0x00ed34f4, 0x019629d9, 0x001de428}}},
+ {X: Field{[10]uint32{0x03b7f86e, 0x025e7d3e, 0x03937055, 0x022c5541, 0x01ed1abf, 0x03c40762, 0x012f01bb, 0x00a980c9, 0x01a97926, 0x0024e20b}}, Y: Field{[10]uint32{0x009d7e44, 0x01024406, 0x03e0215a, 0x03c4fb4d, 0x0223e570, 0x0357c08b, 0x037450ba, 0x005bbc04, 0x004df0a7, 0x00024e22}}},
+ {X: Field{[10]uint32{0x00952e00, 0x008c8972, 0x03b0679c, 0x016799bb, 0x03ebfa6a, 0x01c26c65, 0x0356b643, 0x036982b3, 0x01f83efe, 0x00284142}}, Y: Field{[10]uint32{0x024d1ddb, 0x03c19df0, 0x015fe830, 0x0291f038, 0x005a06e7, 0x0132b93e, 0x0237df52, 0x03793426, 0x03d5559b, 0x001d6420}}},
+ {X: Field{[10]uint32{0x03eb3651, 0x02c7be4a, 0x02d294b3, 0x00122a89, 0x03c55de7, 0x03f9d7ab, 0x017e587d, 0x0109e1cf, 0x02976ea7, 0x000ae516}}, Y: Field{[10]uint32{0x02893c65, 0x003bd941, 0x03752698, 0x0043976b, 0x03cb488d, 0x0002d146, 0x01cbabce, 0x02fdae74, 0x03ed27cc, 0x00108f01}}},
+ {X: Field{[10]uint32{0x03cc37f0, 0x01115ec3, 0x01073b59, 0x0244a354, 0x03f69516, 0x00fc5c05, 0x0203da01, 0x02ff9003, 0x01bbc1a0, 0x0021be76}}, Y: Field{[10]uint32{0x024c32bb, 0x031b19d1, 0x007eddf3, 0x00099249, 0x0362388f, 0x02f067a3, 0x039cd4bf, 0x00de5a4c, 0x02242e30, 0x003cdc31}}},
+ {X: Field{[10]uint32{0x0161ed91, 0x0343e0f7, 0x0206c016, 0x003e42a4, 0x033aa9cc, 0x02f6d384, 0x038d8958, 0x00113988, 0x02f9555e, 0x003e2656}}, Y: Field{[10]uint32{0x02a8a060, 0x00964853, 0x014bcd08, 0x024d2bc6, 0x031febdb, 0x013e8b98, 0x00bdab83, 0x004b20ee, 0x02e31bee, 0x002cb534}}},
+ {X: Field{[10]uint32{0x019394ce, 0x015105e0, 0x01dbe2f5, 0x00858f42, 0x00fdea26, 0x02ef071d, 0x01eee7f0, 0x00d4b515, 0x027f69eb, 0x002ad568}}, Y: Field{[10]uint32{0x031b801a, 0x01988038, 0x013534a1, 0x012a25e2, 0x024d5467, 0x012a4c38, 0x0373bc17, 0x0216d5c8, 0x009360f5, 0x0022b159}}},
+ {X: Field{[10]uint32{0x023b9fa6, 0x022645a8, 0x02522e8a, 0x00ffeb6b, 0x03ce8472, 0x017a60d4, 0x02a89069, 0x037e6245, 0x02c9c428, 0x0013f041}}, Y: Field{[10]uint32{0x02b92031, 0x00c5a227, 0x02fd1925, 0x0129f066, 0x01fdebbc, 0x00e49a1f, 0x00c88be3, 0x00d0793d, 0x02e83d54, 0x002435cc}}},
+ {X: Field{[10]uint32{0x03149a91, 0x01af2080, 0x036b2462, 0x036c2e81, 0x03874080, 0x00ea2538, 0x0187b257, 0x03332ddf, 0x01808831, 0x00327216}}, Y: Field{[10]uint32{0x02abf0b8, 0x00c0b8ec, 0x026e6a6f, 0x01a1e015, 0x02c5f992, 0x002f7e8d, 0x01a6355f, 0x0127e6fa, 0x00cd8c09, 0x0027eb53}}},
+ {X: Field{[10]uint32{0x005209e7, 0x01dc5247, 0x00cb7aee, 0x01737756, 0x01a278eb, 0x028508bf, 0x0378c46a, 0x02aee97f, 0x037e2293, 0x003032d6}}, Y: Field{[10]uint32{0x0210c47b, 0x0035ccd3, 0x027d5133, 0x027bb634, 0x03cc7278, 0x0037d328, 0x036b572d, 0x02161976, 0x002e3664, 0x0020407d}}},
+ {X: Field{[10]uint32{0x00ce0b63, 0x03c56436, 0x0215d140, 0x03383ef3, 0x01af2f70, 0x0246f75a, 0x02ab60c3, 0x00fe0d1c, 0x03c516d9, 0x0036ff00}}, Y: Field{[10]uint32{0x02d26564, 0x023054ff, 0x03b46465, 0x00937af1, 0x024811fa, 0x00ddaa93, 0x033ecfec, 0x0328ba68, 0x014d7228, 0x003e0e38}}},
+ {X: Field{[10]uint32{0x004f59c8, 0x00fcf4d2, 0x03af37cc, 0x02e58b8e, 0x00435140, 0x00d581ec, 0x031d8910, 0x00ffc455, 0x0285eea1, 0x00378981}}, Y: Field{[10]uint32{0x01cfbbcc, 0x023eb966, 0x00accd7f, 0x0132a97e, 0x02c1f5f5, 0x02d9bc79, 0x0363335b, 0x01619798, 0x02c9a602, 0x001af08f}}},
+ {X: Field{[10]uint32{0x02a2e71e, 0x00f162fe, 0x01e5f6f7, 0x027f1e06, 0x031ed812, 0x01b05fae, 0x0362f79f, 0x023f6c06, 0x0160b8cb, 0x001635e3}}, Y: Field{[10]uint32{0x004bccc1, 0x029014ed, 0x0353140a, 0x00f6ec98, 0x03b04d6d, 0x018e444c, 0x0222f5e1, 0x0319c630, 0x00f2fd6b, 0x001f2ef9}}},
+ {X: Field{[10]uint32{0x0000a490, 0x03afbf8b, 0x01738211, 0x004bd91b, 0x03fde1af, 0x0000538e, 0x00869aa9, 0x013f96ac, 0x031aeed5, 0x0039cae6}}, Y: Field{[10]uint32{0x00af4fc2, 0x03cc9ce4, 0x01d348cf, 0x01a5df49, 0x00d94659, 0x00b320a8, 0x02af020a, 0x0160ce10, 0x014d8f59, 0x003364b4}}},
+ {X: Field{[10]uint32{0x030fd658, 0x03cd2355, 0x0085b3b9, 0x00508885, 0x00b725f6, 0x0277fe2a, 0x03cef97c, 0x016f862d, 0x03aed55a, 0x0001aa1a}}, Y: Field{[10]uint32{0x032c5724, 0x001b59fb, 0x01d4081c, 0x00515c6a, 0x0360a14f, 0x01c27ea1, 0x03121407, 0x00c05440, 0x02914c3b, 0x0004e289}}},
+ {X: Field{[10]uint32{0x030a1fc5, 0x0002bbae, 0x0316e0e1, 0x0386d891, 0x03b17c39, 0x0193f0a0, 0x00b00595, 0x03c9135b, 0x00f67240, 0x00072823}}, Y: Field{[10]uint32{0x01ef0a55, 0x011ecff6, 0x0016ab34, 0x010d3a70, 0x03deec27, 0x019ab7c1, 0x0236317c, 0x0027b0d2, 0x03ce655d, 0x0008b893}}},
+ {X: Field{[10]uint32{0x024a0b0f, 0x01608060, 0x016070f5, 0x022bf525, 0x02b7cf62, 0x03377ddb, 0x021ee30b, 0x012711cf, 0x0128feba, 0x00365770}}, Y: Field{[10]uint32{0x03c7e8a1, 0x00b135b1, 0x02116161, 0x02eab8bf, 0x03633e98, 0x01a6da38, 0x0061274c, 0x0384df44, 0x02b8fea3, 0x00354d02}}},
+ {X: Field{[10]uint32{0x00d83857, 0x001cfe33, 0x03afcf3c, 0x022f6661, 0x03ae7e28, 0x01a6a22e, 0x03a14e47, 0x035405b0, 0x022a7f4f, 0x000b3334}}, Y: Field{[10]uint32{0x033b389e, 0x01593741, 0x01f3b0f2, 0x00513b6d, 0x00c2a7b6, 0x03e393ee, 0x010f849f, 0x027f6d1c, 0x023caea8, 0x002ba099}}},
+ {X: Field{[10]uint32{0x01628a43, 0x03afac25, 0x001d1c5e, 0x03207ca0, 0x01ae4a9a, 0x0375ed04, 0x03bc0037, 0x03788e4d, 0x01f6c8e4, 0x003b05ed}}, Y: Field{[10]uint32{0x0258df83, 0x01b9ba59, 0x007348e6, 0x0083c1e6, 0x03743196, 0x01a3f9c3, 0x01fa2989, 0x0056c18c, 0x011dfd58, 0x002cf835}}},
+ {X: Field{[10]uint32{0x0096b6f4, 0x0216225b, 0x023ca956, 0x00b22eb3, 0x00cee8e1, 0x033c7326, 0x0213cddc, 0x01fd3869, 0x037e6290, 0x00298eab}}, Y: Field{[10]uint32{0x02e8216e, 0x01500c6b, 0x00deeef7, 0x01f7a003, 0x01f8bc1a, 0x00c95688, 0x0144ab12, 0x0265cfa7, 0x02bcdc5f, 0x000be54f}}},
+ {X: Field{[10]uint32{0x03ad32f3, 0x03805a61, 0x00b2c550, 0x02bc6685, 0x0390e345, 0x00a5b44d, 0x005636cb, 0x023435ad, 0x0330318d, 0x0023ad3f}}, Y: Field{[10]uint32{0x00a4a3e3, 0x022bddc3, 0x031718f2, 0x0144209f, 0x020cc01d, 0x017aeddd, 0x0200151c, 0x03f1f9f5, 0x038bae7f, 0x0012e388}}},
+ {X: Field{[10]uint32{0x0276b8d2, 0x012b7660, 0x02341437, 0x0232d1c4, 0x002432fa, 0x01298ebb, 0x038a6e57, 0x010e5fd5, 0x00afbb5b, 0x002ac508}}, Y: Field{[10]uint32{0x00b94396, 0x03995fd9, 0x0357490c, 0x0335fdd6, 0x038f264a, 0x029e5562, 0x039df900, 0x03a49d96, 0x028ea197, 0x003ebd8c}}},
+ {X: Field{[10]uint32{0x006f680a, 0x002f46a2, 0x03b5e963, 0x01acd23f, 0x015102aa, 0x00756667, 0x0016f1cc, 0x0286ab73, 0x010e6b2b, 0x0036a862}}, Y: Field{[10]uint32{0x012fa209, 0x03db7e8d, 0x0051094b, 0x0170b088, 0x038744f0, 0x03caef48, 0x02f6005c, 0x03ae532d, 0x03695a63, 0x00067eb2}}},
+ {X: Field{[10]uint32{0x032a28e3, 0x033d91df, 0x03f2e0b1, 0x010af48b, 0x03cb08a6, 0x03e3aedc, 0x01a1b0ed, 0x0346d226, 0x012e5398, 0x003c667d}}, Y: Field{[10]uint32{0x02c2f454, 0x02d66167, 0x03d9e5c1, 0x02b15526, 0x012d5278, 0x01fbe6dd, 0x00f87476, 0x004c7533, 0x03aba5e2, 0x000d866a}}},
+ {X: Field{[10]uint32{0x0046ad6a, 0x014888fc, 0x00046e27, 0x03d6727f, 0x01e75c86, 0x025e928d, 0x0320bc14, 0x03b3cdaf, 0x0293a5f9, 0x00060aa7}}, Y: Field{[10]uint32{0x03b8bcfd, 0x0079223f, 0x007a5c73, 0x0328d2bc, 0x03e0924d, 0x021585f1, 0x0067693d, 0x03b8632a, 0x0288c39d, 0x00318257}}},
+ {X: Field{[10]uint32{0x0214abbb, 0x0026552c, 0x0327c3b5, 0x02b82418, 0x025ac21e, 0x0109dfec, 0x020a7016, 0x03f99ad9, 0x03530636, 0x00022932}}, Y: Field{[10]uint32{0x01d0ed1c, 0x035a49a8, 0x00bbf63f, 0x01709540, 0x008efcb8, 0x0349758e, 0x02e707fa, 0x02a5048f, 0x00514cc6, 0x001a4f96}}},
+ {X: Field{[10]uint32{0x008c1282, 0x00224597, 0x018d42b2, 0x023204ef, 0x02f49517, 0x00b1565c, 0x01e31058, 0x030cf845, 0x035a3b40, 0x0012404c}}, Y: Field{[10]uint32{0x004214e3, 0x02760072, 0x0016624d, 0x00393778, 0x00f26a9a, 0x0387c3a5, 0x02c70eb9, 0x01d03772, 0x0176429d, 0x0011c01c}}},
+ {X: Field{[10]uint32{0x004e01dd, 0x01048ca6, 0x02b8fcdf, 0x01772b60, 0x01df64f5, 0x02e7cb81, 0x01b49e14, 0x00d8ad18, 0x01a77c34, 0x00206039}}, Y: Field{[10]uint32{0x0305040b, 0x01d0ab2b, 0x03e650de, 0x02704c3c, 0x01cb3fb4, 0x0016b247, 0x034b0fd0, 0x03c402a8, 0x0221d4b9, 0x000d33d5}}},
+ {X: Field{[10]uint32{0x0251ee9f, 0x0217f84d, 0x032a4b10, 0x01f2df48, 0x01a90e1d, 0x023aa975, 0x00aeee35, 0x03d2a277, 0x027efea9, 0x0023dc48}}, Y: Field{[10]uint32{0x0255ad73, 0x036bd3a5, 0x01aaee90, 0x01aaf011, 0x03e27267, 0x02e4531f, 0x03c344f3, 0x01e68289, 0x01bcbb2b, 0x00293685}}},
+ {X: Field{[10]uint32{0x03b58264, 0x023508f3, 0x02a3ccc6, 0x02a96821, 0x02d1ea8e, 0x00f30669, 0x03592a2a, 0x02eb2c20, 0x0374cdc9, 0x0036fae6}}, Y: Field{[10]uint32{0x00576161, 0x000268d0, 0x022d45b1, 0x03e6d967, 0x0018e86d, 0x02785aef, 0x00732eb7, 0x01fed60c, 0x039283f0, 0x002f99a1}}},
+ {X: Field{[10]uint32{0x01591933, 0x02985f5c, 0x02958ab0, 0x037e0c5e, 0x017d9ea4, 0x02014a37, 0x03b09b62, 0x00b2b0f1, 0x013fa7f5, 0x003cca3a}}, Y: Field{[10]uint32{0x02405547, 0x0108c47c, 0x00a60fc0, 0x005f5faf, 0x002f780c, 0x036174e5, 0x01c3f3a7, 0x027a4187, 0x0059811f, 0x001073a3}}},
+ {X: Field{[10]uint32{0x00fea051, 0x0033c20c, 0x00b7d8fb, 0x020544c7, 0x01d4ca41, 0x00087091, 0x005f44c2, 0x006fb127, 0x0003416b, 0x0015b53d}}, Y: Field{[10]uint32{0x00bd39ce, 0x028eb614, 0x002a8d35, 0x024b8f60, 0x0051ae1a, 0x035773a3, 0x00cb6373, 0x01defa4d, 0x0133948f, 0x003317d8}}},
+ {X: Field{[10]uint32{0x039022b8, 0x03d3af00, 0x03c49e9c, 0x03e819f3, 0x01dd90c9, 0x00c9ff50, 0x02becf2a, 0x01dadf33, 0x004b8bb4, 0x002388b8}}, Y: Field{[10]uint32{0x00286b8b, 0x0064ecc2, 0x01d6d3e4, 0x024b0b20, 0x00934e79, 0x0074fbd6, 0x0103c023, 0x01a5b4d3, 0x02603204, 0x00007e3e}}},
+ {X: Field{[10]uint32{0x02f064f6, 0x019f5e83, 0x00e1a518, 0x01cafe7f, 0x02b396eb, 0x033fbeb7, 0x03624dc1, 0x01f1a3e4, 0x02e4b9a7, 0x000d06c8}}, Y: Field{[10]uint32{0x02d9441a, 0x023fe2e4, 0x01e27cfc, 0x01c9f4ca, 0x03af11ed, 0x036f2cb6, 0x0162bcf0, 0x01a55d65, 0x03877bc3, 0x002560e7}}},
+ {X: Field{[10]uint32{0x03324763, 0x02c8098e, 0x0305045e, 0x02670002, 0x00e6af97, 0x013ee2a3, 0x01e86809, 0x01044a1e, 0x02939f23, 0x000fa90b}}, Y: Field{[10]uint32{0x0201a623, 0x01af544b, 0x02f59186, 0x028ce2c5, 0x0160a5c0, 0x03b3ea3f, 0x024d51ff, 0x029bc13f, 0x01676f5a, 0x00110c90}}},
+ {X: Field{[10]uint32{0x035d625b, 0x0249efd4, 0x0317342f, 0x01829c70, 0x0023d8a6, 0x02337a47, 0x00faa1bb, 0x01453be5, 0x004cef10, 0x002bf9ed}}, Y: Field{[10]uint32{0x008b4b65, 0x02b3f21f, 0x0042751c, 0x01dde8e2, 0x026cfcdd, 0x012c18fb, 0x0151f185, 0x021dcaf3, 0x03885121, 0x001d85e9}}},
+ {X: Field{[10]uint32{0x02034d2b, 0x00fef9a8, 0x01dda37a, 0x038ffc38, 0x0112f69e, 0x00b00d74, 0x00ac725f, 0x003531b8, 0x0202abb4, 0x0028d832}}, Y: Field{[10]uint32{0x016b646d, 0x020c9a64, 0x03814fab, 0x01e49568, 0x039d8bbe, 0x0298211b, 0x01d0f723, 0x00fa80c1, 0x01783fec, 0x0005879c}}},
+ {X: Field{[10]uint32{0x00011b88, 0x012a16de, 0x0361ec91, 0x02304667, 0x035984d1, 0x02cbb37d, 0x025d9899, 0x03f9f66d, 0x025ff7d9, 0x00041213}}, Y: Field{[10]uint32{0x0176cdc9, 0x01135be5, 0x031844f7, 0x00f5e3de, 0x03e7f4e0, 0x00b05127, 0x01e1086c, 0x01cd5e7b, 0x00e21e13, 0x0004b470}}},
+ {X: Field{[10]uint32{0x0256b138, 0x030e71b4, 0x01ba67ee, 0x03996c14, 0x02b11245, 0x0369f79a, 0x0276c40e, 0x02777090, 0x00e15dad, 0x001db0b7}}, Y: Field{[10]uint32{0x0064ce82, 0x033bc57f, 0x03605ed4, 0x01f4fac3, 0x0361a896, 0x010dce68, 0x023fca2a, 0x0020e64b, 0x01ce585b, 0x00366980}}},
+ {X: Field{[10]uint32{0x01d4d2e1, 0x0266dd44, 0x0335627b, 0x0220e951, 0x03d1d839, 0x00f71831, 0x004fcb18, 0x03b662c1, 0x01d4c3e6, 0x0019c68c}}, Y: Field{[10]uint32{0x02053088, 0x034dc6c3, 0x01b3b08a, 0x017a94b0, 0x01281f18, 0x03d0ea12, 0x033762fb, 0x03bcfdfb, 0x01152005, 0x001bf763}}},
+ {X: Field{[10]uint32{0x02898a37, 0x0384ad9b, 0x032431be, 0x016e9bc5, 0x00c2343a, 0x01fdc706, 0x03729985, 0x01a40c4a, 0x0165a2da, 0x0024743d}}, Y: Field{[10]uint32{0x0332f681, 0x02c8275f, 0x0147a41e, 0x0359c924, 0x01e6393a, 0x007df377, 0x02906a10, 0x028a2355, 0x01b91956, 0x00275a95}}},
+ {X: Field{[10]uint32{0x028512ba, 0x03ba6ad8, 0x032d4de9, 0x0379c902, 0x006b90d8, 0x03d37dee, 0x014d0cd8, 0x028b0f2f, 0x00581953, 0x001f967c}}, Y: Field{[10]uint32{0x0242a173, 0x02da6ee6, 0x03dbd9d9, 0x03f8ca3e, 0x0035a012, 0x027c0dc5, 0x0019b0af, 0x01f583bd, 0x01eb74cc, 0x000cec34}}},
+ {X: Field{[10]uint32{0x03788a26, 0x024abf87, 0x0380dd34, 0x016f8100, 0x03f43a28, 0x02c7ccbf, 0x02652ada, 0x006fb484, 0x025e0b79, 0x003bde2d}}, Y: Field{[10]uint32{0x0108d306, 0x007346d9, 0x03910abb, 0x03be4e55, 0x00f156cd, 0x013feb00, 0x027ab1b2, 0x02bf08fa, 0x013896d5, 0x0027cf89}}},
+ {X: Field{[10]uint32{0x016b7cd3, 0x02337e6d, 0x02e1f50a, 0x0133b9d4, 0x01cb0c0e, 0x0304b2c0, 0x03ce2f5f, 0x00cfb905, 0x00d01998, 0x001e2e5e}}, Y: Field{[10]uint32{0x01560dd9, 0x00251e30, 0x00cd0197, 0x0245c518, 0x01dd631f, 0x005647d7, 0x01701413, 0x001aef8c, 0x01d73726, 0x0027e71f}}},
+ {X: Field{[10]uint32{0x00bfe64a, 0x00f49b5c, 0x00ceff1b, 0x03e9ee9f, 0x02906ffd, 0x002aeadc, 0x012f5e88, 0x016883a6, 0x0331f994, 0x0017de16}}, Y: Field{[10]uint32{0x03881c1c, 0x034285ca, 0x0046e0a6, 0x004f9742, 0x01575224, 0x0089e447, 0x021988d3, 0x00e1abfe, 0x000eb3cb, 0x0028f312}}},
+ {X: Field{[10]uint32{0x0006b3d1, 0x03a7f95e, 0x00887fce, 0x01f58dd7, 0x0102c388, 0x0112135c, 0x03aadfa4, 0x0124bf3c, 0x01997cbb, 0x0027fb9e}}, Y: Field{[10]uint32{0x0224c22e, 0x02752b3f, 0x00437a12, 0x03c31b19, 0x00c0f0b8, 0x0039f512, 0x03ef25a6, 0x031d807e, 0x03277e94, 0x0010c450}}},
+ {X: Field{[10]uint32{0x02e3f30b, 0x0362c313, 0x031020ac, 0x004fe694, 0x02c0f462, 0x036f5f1d, 0x03befd7c, 0x022215ed, 0x015db75d, 0x0004bcb7}}, Y: Field{[10]uint32{0x034097d8, 0x02d2a94c, 0x010216dc, 0x01c1d0b7, 0x00f85105, 0x00e1901c, 0x013ecfad, 0x00127a6b, 0x018b0e85, 0x003389d6}}},
+ {X: Field{[10]uint32{0x03997bd7, 0x020c9773, 0x004d5317, 0x027c74aa, 0x02fbb86f, 0x0306dc63, 0x00e2befb, 0x02d470fc, 0x02b43ee2, 0x0031a52b}}, Y: Field{[10]uint32{0x01050977, 0x0221ea3b, 0x03226bdc, 0x003ab9c7, 0x036fc519, 0x02169be0, 0x02c3e5cc, 0x024c44b2, 0x033eb6a6, 0x00105207}}},
+ {X: Field{[10]uint32{0x01047ae9, 0x035e32a0, 0x03ab149a, 0x00002182, 0x029bd161, 0x02bcefbe, 0x033493f5, 0x030172eb, 0x024614c5, 0x003f899a}}, Y: Field{[10]uint32{0x00471e6b, 0x006e5506, 0x0320b074, 0x021d255f, 0x00f58ca0, 0x01dca971, 0x00614ada, 0x025352df, 0x02bec446, 0x0038b863}}},
+ {X: Field{[10]uint32{0x016118dd, 0x0149a64d, 0x03250d21, 0x039fd9e9, 0x01daff04, 0x03060fc8, 0x03abfa58, 0x02c1f121, 0x01dc0926, 0x001e5d78}}, Y: Field{[10]uint32{0x011409e5, 0x03f1c24d, 0x029d821c, 0x02366e5c, 0x01f94346, 0x02a536b9, 0x014b779d, 0x02cc0329, 0x039744e2, 0x00032612}}},
+ {X: Field{[10]uint32{0x018a2b06, 0x01f3c5a8, 0x02951a13, 0x023adff5, 0x00702284, 0x0061b5c0, 0x0109e8e6, 0x00d62682, 0x00db5018, 0x0024d5cf}}, Y: Field{[10]uint32{0x00bf47d5, 0x02439886, 0x010f0265, 0x022bf27d, 0x02caae2d, 0x004db2b3, 0x0090039d, 0x03dabb65, 0x00663047, 0x001ea55f}}},
+ {X: Field{[10]uint32{0x01d77660, 0x01febe20, 0x00829fa3, 0x003b8a6d, 0x026771d8, 0x0217f13f, 0x00ac7dd4, 0x01bfae38, 0x021ea60f, 0x00302f4b}}, Y: Field{[10]uint32{0x0335bacd, 0x03fc96c0, 0x0306556a, 0x00ff896b, 0x002effc8, 0x027c91fa, 0x0076267d, 0x03871da4, 0x00fd9edd, 0x001a16dd}}},
+ {X: Field{[10]uint32{0x0024bf3e, 0x031a6127, 0x032538c4, 0x00af6a90, 0x01b67685, 0x01575646, 0x02e5f45d, 0x00881e41, 0x00e19319, 0x0015aeb0}}, Y: Field{[10]uint32{0x03c18ebf, 0x0081fb0b, 0x01096a5d, 0x03a7e342, 0x010f5c0a, 0x022c4639, 0x02480bbc, 0x02e04b4b, 0x01d39856, 0x0038efd4}}},
+ {X: Field{[10]uint32{0x0142c06c, 0x01347964, 0x03c65231, 0x002ae4f7, 0x015225fa, 0x02617f7b, 0x03ec7c4a, 0x03774baf, 0x0313fe7c, 0x0014ed06}}, Y: Field{[10]uint32{0x03b69c4b, 0x00bfa6f0, 0x03a988f6, 0x008123ca, 0x03cb4ecf, 0x0334af7f, 0x02e038dc, 0x03d59574, 0x025744e4, 0x00243f2e}}},
+ {X: Field{[10]uint32{0x02e765bb, 0x03f3cab0, 0x025f5d55, 0x00019d33, 0x00b11364, 0x0060b28b, 0x02baa269, 0x03b6e51f, 0x0231ccc0, 0x002f6817}}, Y: Field{[10]uint32{0x02cf75e8, 0x0371ae9e, 0x0307b447, 0x036aba3d, 0x032fff08, 0x00c23aa5, 0x00593567, 0x01a60a9d, 0x01793123, 0x0025c9d6}}},
+ {X: Field{[10]uint32{0x030413d8, 0x03b78552, 0x0189b21a, 0x0254715c, 0x0291196e, 0x023d97e0, 0x0209f19a, 0x0020807f, 0x006a8a90, 0x00123747}}, Y: Field{[10]uint32{0x009b98f5, 0x022d8eb0, 0x017af78c, 0x00367143, 0x01c5a615, 0x0039cbe1, 0x017e2878, 0x00f72994, 0x02fb1a94, 0x001e687d}}},
+ {X: Field{[10]uint32{0x012f1f2c, 0x0010e00a, 0x0051c13c, 0x01bcd119, 0x002be834, 0x03a68b52, 0x02ff4e2c, 0x010a323b, 0x0269e28c, 0x001d5018}}, Y: Field{[10]uint32{0x033e996a, 0x03371684, 0x0289f9e7, 0x03377796, 0x00202c44, 0x024bbf11, 0x00d13d76, 0x0201f88f, 0x0097211c, 0x0011d0ec}}},
+ {X: Field{[10]uint32{0x0192ee5f, 0x02181288, 0x03165401, 0x0009376a, 0x00744200, 0x010c53ff, 0x000ae4d2, 0x0204ce21, 0x0193bf31, 0x0006a957}}, Y: Field{[10]uint32{0x00bc3bfc, 0x038e3c4b, 0x0118f041, 0x02204d84, 0x017a6a8e, 0x02db2cb3, 0x02ac7e99, 0x027a2995, 0x035492d5, 0x002eaeb0}}},
+ {X: Field{[10]uint32{0x037dcf03, 0x01c48311, 0x02fbab93, 0x03d26c5d, 0x0234d214, 0x03627dc8, 0x00fa8503, 0x0318a799, 0x0050db7b, 0x001d6f93}}, Y: Field{[10]uint32{0x00b6f819, 0x015320a5, 0x003fb511, 0x00a9069b, 0x03ed2e5e, 0x0321831a, 0x033d9343, 0x01b6c820, 0x03ba8c60, 0x002d5482}}},
+ {X: Field{[10]uint32{0x00ef6c8c, 0x00e0950f, 0x01c7d8d6, 0x002871c9, 0x036508e1, 0x01846e56, 0x00b2486b, 0x022cb435, 0x0022e4ed, 0x003cd812}}, Y: Field{[10]uint32{0x022dc0f5, 0x00e51188, 0x00105f98, 0x00b2c8eb, 0x0075d99d, 0x00b2f5a6, 0x021a412f, 0x02f1a896, 0x00797404, 0x003d016b}}},
+ {X: Field{[10]uint32{0x037cefe8, 0x01f7fc39, 0x012bf2d8, 0x0247c107, 0x01da54ee, 0x0380c9ac, 0x015f727a, 0x009afbeb, 0x02e66f93, 0x001b2485}}, Y: Field{[10]uint32{0x01d16517, 0x00ddfece, 0x01704557, 0x01c94194, 0x031ec2f3, 0x03d48c37, 0x0146f922, 0x011f237d, 0x01b9bc19, 0x00192808}}},
+ {X: Field{[10]uint32{0x0105668a, 0x0351d35a, 0x03b09e74, 0x03896c4a, 0x00988346, 0x01a01d9e, 0x03138617, 0x01ccb77c, 0x03bdce97, 0x002b91e6}}, Y: Field{[10]uint32{0x02612929, 0x01f02b24, 0x028b3f4b, 0x025fa8fc, 0x02b33a6f, 0x01366f74, 0x01363366, 0x01821e26, 0x0355c599, 0x0028f380}}},
+ {X: Field{[10]uint32{0x014898be, 0x01c14b5d, 0x034ff480, 0x029eaabd, 0x039ccc05, 0x01b3f4bd, 0x02abcf83, 0x0136c871, 0x017966f7, 0x0033a4b0}}, Y: Field{[10]uint32{0x001bb978, 0x039e7298, 0x0127ce44, 0x0200fc42, 0x038adebf, 0x0238d15a, 0x019cec9c, 0x00e31329, 0x03f3530f, 0x003cf8f4}}},
+ {X: Field{[10]uint32{0x026ea68d, 0x033c589b, 0x03b9f477, 0x0388de28, 0x01a96f5a, 0x02623137, 0x0153d875, 0x01d705dd, 0x02b68152, 0x002282ef}}, Y: Field{[10]uint32{0x03e77f4e, 0x005e60d7, 0x036d64e9, 0x02b08a11, 0x00a7c74e, 0x0216938d, 0x02a9f770, 0x01504ab2, 0x015e46f4, 0x002562de}}},
+ {X: Field{[10]uint32{0x01d9ccfe, 0x03944da3, 0x028d00c2, 0x029c721b, 0x027f0e97, 0x017b479e, 0x02a033c0, 0x00038a44, 0x02e99754, 0x0030a913}}, Y: Field{[10]uint32{0x0275668f, 0x02a5514d, 0x03c60596, 0x02e3afda, 0x0170cd17, 0x00ed44da, 0x03b69b29, 0x02941f6f, 0x01ef7d24, 0x0025590d}}},
+ {X: Field{[10]uint32{0x019ea1e1, 0x022471c6, 0x01c293cc, 0x02472057, 0x013d3bbe, 0x01510ef3, 0x03785208, 0x037d851e, 0x0225534d, 0x002d857d}}, Y: Field{[10]uint32{0x02c3ea25, 0x037079db, 0x01e12267, 0x0071ace6, 0x00fe3afd, 0x03d97189, 0x02908764, 0x0051a18a, 0x00f199e2, 0x00132afd}}},
+ {X: Field{[10]uint32{0x00a75a0e, 0x002e4efa, 0x030b55fd, 0x0153e020, 0x03b64a0c, 0x02602fb9, 0x016dde93, 0x009cab3d, 0x038dfdcf, 0x002bf32b}}, Y: Field{[10]uint32{0x0042a63e, 0x00b05044, 0x00e9554f, 0x01801f62, 0x03e7d6a6, 0x00d6186b, 0x036d9ba7, 0x03113e27, 0x005d6f6f, 0x0002363b}}},
+ {X: Field{[10]uint32{0x03135f53, 0x00cf22a6, 0x033ac328, 0x00ab2ce1, 0x03559d07, 0x03de0c02, 0x039395d0, 0x006c987c, 0x02a8c531, 0x0014d05d}}, Y: Field{[10]uint32{0x02b2f436, 0x031f9b22, 0x03643b03, 0x0175a0fb, 0x020b1615, 0x03e9d5be, 0x02f66398, 0x029ed21f, 0x004b5eee, 0x002ae13e}}},
+ {X: Field{[10]uint32{0x0391f34c, 0x03f34506, 0x0393ea65, 0x02f194c6, 0x028705ab, 0x00883cfc, 0x03651ac6, 0x025737d1, 0x017397ef, 0x0017dea8}}, Y: Field{[10]uint32{0x0081da22, 0x01215866, 0x02ab8b75, 0x02ef8118, 0x0270cffc, 0x01e9df63, 0x011b28f1, 0x02cd3cbb, 0x00983cdd, 0x001cbdf6}}},
+ {X: Field{[10]uint32{0x008f3d3b, 0x00a1ff2b, 0x034490aa, 0x0161a40f, 0x02b6a952, 0x00d6bf5e, 0x001db193, 0x03edcacc, 0x024cc1e2, 0x00353ed2}}, Y: Field{[10]uint32{0x014154f9, 0x02062538, 0x00306088, 0x03de6ba4, 0x02f213ad, 0x037b9e1f, 0x01098cd5, 0x02ca1c67, 0x02e84a9d, 0x001dad5c}}},
+ {X: Field{[10]uint32{0x037a9ff4, 0x03515327, 0x035694c6, 0x01716aef, 0x00dad097, 0x00f6c374, 0x013116c2, 0x00bcebde, 0x0163843b, 0x000f719d}}, Y: Field{[10]uint32{0x016753ae, 0x01da980d, 0x01fbf780, 0x01dd3ece, 0x004894b2, 0x0126a022, 0x010ccf80, 0x00edfd0f, 0x039e4db8, 0x00377d96}}},
+ {X: Field{[10]uint32{0x02f897d6, 0x01720b28, 0x036b13bb, 0x0176cdb8, 0x039c3e41, 0x00334599, 0x006c4495, 0x0005344e, 0x02bd1edd, 0x00195e44}}, Y: Field{[10]uint32{0x02d505cf, 0x00249fbf, 0x02143430, 0x012327d6, 0x0178205e, 0x03341b1a, 0x007fb3aa, 0x0389023f, 0x03db11bb, 0x00138bf7}}},
+ {X: Field{[10]uint32{0x03d69f99, 0x0205c5cf, 0x027b8f90, 0x017f12b7, 0x036f412b, 0x03cffa4d, 0x00473e50, 0x016173d9, 0x03b35f82, 0x00016914}}, Y: Field{[10]uint32{0x00097ebe, 0x02d985d6, 0x00c4fa29, 0x02d5fcad, 0x03ec2fb4, 0x012ae868, 0x01dbf06f, 0x02d64138, 0x02113448, 0x003f05a7}}},
+ {X: Field{[10]uint32{0x00052679, 0x02cdece9, 0x03689093, 0x02c83d3f, 0x03d01c68, 0x025a8c10, 0x02cfaf1f, 0x012f21a6, 0x005ac24b, 0x0030eb7d}}, Y: Field{[10]uint32{0x00ae19cc, 0x00ab1a04, 0x017d7edc, 0x020f3b72, 0x014f0d4b, 0x01cae342, 0x0285bea9, 0x012d274e, 0x0207cd37, 0x000f648c}}},
+ {X: Field{[10]uint32{0x021e1d56, 0x0103fa57, 0x006b6e90, 0x003eb2c1, 0x035bd84f, 0x007c976b, 0x016420be, 0x0372109d, 0x01c8905d, 0x00068cbb}}, Y: Field{[10]uint32{0x00eb4c51, 0x0108591a, 0x0059c0ca, 0x0203e33e, 0x03f1612c, 0x01a98bd3, 0x00b73ad1, 0x01dfe307, 0x019d113a, 0x001fd19f}}},
+ {X: Field{[10]uint32{0x034d6c98, 0x00efc829, 0x006b7b4a, 0x010bac69, 0x02f925c1, 0x03944092, 0x028b7da2, 0x025deb0c, 0x019862e5, 0x001c255f}}, Y: Field{[10]uint32{0x02f09381, 0x03f49cef, 0x03ec1441, 0x00c7c8c9, 0x037d7ee2, 0x02074b14, 0x01513488, 0x0330d282, 0x02c62e42, 0x0009a6d5}}},
+ {X: Field{[10]uint32{0x037537a7, 0x03b72120, 0x02b44bd7, 0x015b65da, 0x01bf6dd2, 0x02db37c9, 0x03ae4540, 0x02c5b041, 0x00165a02, 0x0001f9a5}}, Y: Field{[10]uint32{0x005185f5, 0x01a09ad1, 0x03b243e6, 0x0075e28d, 0x03a6aac2, 0x00f91cd8, 0x010d2ce0, 0x0030478b, 0x00db3836, 0x003fee1d}}},
+ {X: Field{[10]uint32{0x01df9678, 0x0355495b, 0x018b60ee, 0x01d78ded, 0x003b9d8a, 0x03d10176, 0x03e7ac6f, 0x03a6d492, 0x01597b42, 0x0013e068}}, Y: Field{[10]uint32{0x02e0a78c, 0x02e125e1, 0x038b377c, 0x035e6494, 0x003558ee, 0x0349f7d3, 0x00ffbe16, 0x018196b6, 0x02071867, 0x002c94c4}}},
+ {X: Field{[10]uint32{0x014fd547, 0x0068d74a, 0x002d9359, 0x03586f74, 0x009be6fd, 0x024e04cd, 0x020be8de, 0x0196bc2d, 0x03685770, 0x003e8940}}, Y: Field{[10]uint32{0x00e81625, 0x01873512, 0x02f06d4d, 0x029deda5, 0x033b0a1f, 0x03d7b842, 0x0242f0dc, 0x01f2fd75, 0x01e396c7, 0x003c2e64}}},
+ {X: Field{[10]uint32{0x032ba3d4, 0x03c09689, 0x02c4d440, 0x0312961d, 0x006b61d6, 0x00ffb1b6, 0x03da5172, 0x00aff0f8, 0x02bd6716, 0x003d37d7}}, Y: Field{[10]uint32{0x0052212b, 0x038ca860, 0x00d44674, 0x016e425c, 0x026380dc, 0x0278dd73, 0x010e384c, 0x017ecb56, 0x02798bc7, 0x002c8ee8}}},
+ {X: Field{[10]uint32{0x01ac5015, 0x021c1da8, 0x0141c4a5, 0x00681955, 0x0051b897, 0x0111835b, 0x0228e5c4, 0x016d97eb, 0x031db372, 0x002ad6da}}, Y: Field{[10]uint32{0x02ee2ece, 0x03a972c9, 0x02a9e286, 0x02e3422d, 0x00424f72, 0x01e16b7c, 0x01d7876d, 0x005c60ea, 0x0057ecdc, 0x0005b4b1}}},
+ {X: Field{[10]uint32{0x00869e55, 0x01df380a, 0x03981ac8, 0x0264f0c3, 0x0002e08d, 0x01c34e29, 0x0280dcc4, 0x014dc101, 0x007e13db, 0x002a293b}}, Y: Field{[10]uint32{0x037f60a4, 0x01205472, 0x007bb2d2, 0x0356eaec, 0x00754025, 0x01961e29, 0x03d08749, 0x03b94e25, 0x019c2cdf, 0x0012a77b}}},
+ {X: Field{[10]uint32{0x00245f48, 0x02c5042e, 0x00faa5f1, 0x03678aaf, 0x016f914d, 0x01970404, 0x0183d081, 0x01836c01, 0x00f633bd, 0x000cdfd5}}, Y: Field{[10]uint32{0x0176dbfc, 0x0159dc60, 0x00a94ea4, 0x0395022c, 0x00679b58, 0x00eaeb93, 0x035452bd, 0x03f12902, 0x0328696a, 0x002514fa}}},
+ {X: Field{[10]uint32{0x01901b53, 0x0190ad7f, 0x020e433b, 0x00354a74, 0x00f6db48, 0x00694153, 0x004c7674, 0x02abc415, 0x03abdc2b, 0x003bb8cd}}, Y: Field{[10]uint32{0x029c27be, 0x019091e1, 0x01830872, 0x03357db2, 0x00825616, 0x01a55be2, 0x03a1d8ba, 0x00035292, 0x038802cc, 0x00196b56}}},
+ {X: Field{[10]uint32{0x012f1548, 0x00ff3bdd, 0x010b8451, 0x01f143c0, 0x00f56e47, 0x010fc49d, 0x01aaf0cb, 0x00002bb0, 0x021857cb, 0x00167d4b}}, Y: Field{[10]uint32{0x021698be, 0x0383d4e7, 0x00e70a1a, 0x018665e3, 0x014f2254, 0x01bb078a, 0x007006ba, 0x00ec6601, 0x036e8db0, 0x003632a3}}},
+ {X: Field{[10]uint32{0x006f3e12, 0x0297c150, 0x0115e8f5, 0x0043cad2, 0x038583ab, 0x01f618a1, 0x01618d9d, 0x036caa2a, 0x020c25fa, 0x001b0802}}, Y: Field{[10]uint32{0x038081f8, 0x03b6527b, 0x03a617d6, 0x0276c5e4, 0x00050464, 0x0170343e, 0x01af24da, 0x03cd7051, 0x004e374c, 0x00053526}}},
+ {X: Field{[10]uint32{0x02ac07fa, 0x03fef0e2, 0x002a032c, 0x03e2628f, 0x02f8144f, 0x00e6d95e, 0x02ad8782, 0x02dbe1c6, 0x02fd51df, 0x00059528}}, Y: Field{[10]uint32{0x021a839c, 0x02410f45, 0x037148d5, 0x0317e977, 0x00e36d46, 0x031c5c17, 0x00dcc1d4, 0x0215a6db, 0x01c382d9, 0x0022da59}}},
+ {X: Field{[10]uint32{0x03556d77, 0x008cbdd9, 0x02fae8de, 0x0301fa63, 0x027b3ed1, 0x014fe5b5, 0x0182f339, 0x00d55b26, 0x03c9ab47, 0x0031200c}}, Y: Field{[10]uint32{0x01968bac, 0x01ead2fb, 0x002b6f89, 0x01520a2c, 0x010abe4a, 0x0373feab, 0x03873828, 0x00c5a041, 0x00a87bc4, 0x002bcfd2}}},
+ {X: Field{[10]uint32{0x003c6032, 0x01390a0f, 0x003baf1a, 0x007c084b, 0x001a9577, 0x015fdea6, 0x005aaea5, 0x00a35462, 0x03faa9d2, 0x0017765d}}, Y: Field{[10]uint32{0x032eb656, 0x01ca8de3, 0x02b4549e, 0x03349d2f, 0x02abb06a, 0x036a81bc, 0x00e52043, 0x023db34b, 0x014aba17, 0x000effe7}}},
+ {X: Field{[10]uint32{0x0242a564, 0x03f7ca73, 0x032abefe, 0x01a69760, 0x03261e4c, 0x00f26aba, 0x03f1d8af, 0x025b12f3, 0x0025dd9a, 0x000a9db7}}, Y: Field{[10]uint32{0x01244806, 0x02ad31b5, 0x02c5b2fc, 0x02ab7d85, 0x0307ff82, 0x03d70e20, 0x00c972aa, 0x032b9f7a, 0x02f23ad5, 0x00124d14}}},
+ {X: Field{[10]uint32{0x029a4b8d, 0x02e3d2f4, 0x02d6ff2d, 0x02a69279, 0x02fd3935, 0x01198aca, 0x02bab4db, 0x01e48e08, 0x01064c0e, 0x00336f4d}}, Y: Field{[10]uint32{0x017a90ce, 0x03828f15, 0x03143a8c, 0x0054550f, 0x0358b845, 0x021bf6d7, 0x008a84c3, 0x009d3e9a, 0x032eb61e, 0x002c849b}}},
+ {X: Field{[10]uint32{0x0354d978, 0x03dc974a, 0x02a75bf6, 0x00969051, 0x012bcfd5, 0x01c4ebfe, 0x0182d6ce, 0x0353d8d3, 0x009b2cb9, 0x00260fc9}}, Y: Field{[10]uint32{0x028abca2, 0x03c12122, 0x033ef0cf, 0x01dc8e20, 0x02af302e, 0x0280b6af, 0x004d25f5, 0x0380b69b, 0x0006850b, 0x001e7349}}},
+ {X: Field{[10]uint32{0x00afd4f4, 0x0370630e, 0x0138396f, 0x0227eb78, 0x019e1284, 0x03ec8f94, 0x017e21ef, 0x02a7ce89, 0x01b4a5a0, 0x002231d9}}, Y: Field{[10]uint32{0x015f46c2, 0x0226df56, 0x006971cf, 0x038d170a, 0x02e3336a, 0x034511a0, 0x005cc031, 0x02568f94, 0x02647299, 0x003d357f}}},
+ {X: Field{[10]uint32{0x03d52c31, 0x01e960ad, 0x036926b6, 0x001d1580, 0x031d147d, 0x02234398, 0x01c7d08b, 0x032c2866, 0x01ecd603, 0x00065d41}}, Y: Field{[10]uint32{0x01057f15, 0x0158793e, 0x0208f49a, 0x037e88d3, 0x002f212a, 0x0169d6bb, 0x035a7461, 0x017f142b, 0x013bf2d7, 0x00251fb0}}},
+ {X: Field{[10]uint32{0x032eaaf8, 0x00c82d8e, 0x00fec668, 0x003fad8e, 0x019a1979, 0x035af013, 0x02700c30, 0x01817d62, 0x0232e10f, 0x00260610}}, Y: Field{[10]uint32{0x03f9c85b, 0x01e3873b, 0x03d7f395, 0x024aac62, 0x01dbbdf1, 0x01b0c7d6, 0x02a837e3, 0x03e8e4c3, 0x02edc0e2, 0x003bcc1d}}},
+ {X: Field{[10]uint32{0x000bc002, 0x03e388db, 0x02764892, 0x0205a1a6, 0x02f0c7d0, 0x00c899c3, 0x00f47a9e, 0x004d2de4, 0x0335cba0, 0x00143c36}}, Y: Field{[10]uint32{0x00396072, 0x00cff2da, 0x00edd832, 0x0112e181, 0x009e466b, 0x02389976, 0x03260f65, 0x0213ab9d, 0x0013d98a, 0x000706c7}}},
+ {X: Field{[10]uint32{0x01665502, 0x00770c75, 0x03a8680c, 0x005b35af, 0x0099ac85, 0x03d08a3d, 0x00bb19f3, 0x02ed42b9, 0x00ea1a44, 0x003678d0}}, Y: Field{[10]uint32{0x034aaad8, 0x03d2cd56, 0x00f75355, 0x02b49412, 0x01341445, 0x020eebba, 0x0005251b, 0x00864ffe, 0x0288335a, 0x0004a285}}},
+ {X: Field{[10]uint32{0x007c539c, 0x00f03e3a, 0x034c91e3, 0x02a42a51, 0x01d42cb4, 0x01557706, 0x03067020, 0x01377631, 0x013301b8, 0x00056aa0}}, Y: Field{[10]uint32{0x0142dbc1, 0x031a9b62, 0x03b1de22, 0x011d17d8, 0x032a14bf, 0x01d8b32e, 0x01d2ba17, 0x019003af, 0x03209658, 0x001e54c1}}},
+ {X: Field{[10]uint32{0x025d34d2, 0x0060be1e, 0x0024255e, 0x00608d81, 0x03d489dd, 0x01f1ef88, 0x010d169c, 0x026936e4, 0x030453d1, 0x001bdc21}}, Y: Field{[10]uint32{0x01c7dde2, 0x01e2aa66, 0x02101355, 0x03f569b7, 0x01c15246, 0x01f136ee, 0x029beabd, 0x00afd282, 0x01567c1c, 0x003814c6}}},
+ {X: Field{[10]uint32{0x03167674, 0x03e370f1, 0x03f1bf33, 0x0163f8b4, 0x03867f9a, 0x01a2153d, 0x02d97e91, 0x028e9226, 0x00dfcddc, 0x000c7a48}}, Y: Field{[10]uint32{0x03706f39, 0x020a4030, 0x038afdbe, 0x017ec4b2, 0x01244a9c, 0x03af89f7, 0x01576600, 0x01b96054, 0x003d0b0c, 0x00149c4b}}},
+ {X: Field{[10]uint32{0x008d51d8, 0x007cb693, 0x015ab8d0, 0x030a1a8c, 0x028258de, 0x00622325, 0x0381fbcf, 0x03c0765b, 0x0211708f, 0x0024cc03}}, Y: Field{[10]uint32{0x026c33ff, 0x00f52838, 0x01f464c9, 0x00d8495b, 0x009e0b76, 0x01961393, 0x0049b536, 0x00823021, 0x02473b6a, 0x00054da1}}},
+ {X: Field{[10]uint32{0x03acb3db, 0x0153d973, 0x017dcecd, 0x00c9c81e, 0x0230c946, 0x01c4b072, 0x016cfdf3, 0x019c0818, 0x010bf62d, 0x0023deb5}}, Y: Field{[10]uint32{0x0043c637, 0x03e2d121, 0x01d347e4, 0x01c4197e, 0x001eff0d, 0x00686532, 0x0290080a, 0x014af0cc, 0x023207dc, 0x0016b042}}},
+ {X: Field{[10]uint32{0x0189f4a9, 0x022921ca, 0x03dd7445, 0x007723be, 0x027f5cf5, 0x01431822, 0x028f5d73, 0x0035c711, 0x03827627, 0x001bb602}}, Y: Field{[10]uint32{0x01826dc0, 0x0248f422, 0x035a2e00, 0x03c8058e, 0x0177fd3c, 0x01a1f1f8, 0x01e47b7c, 0x039ded19, 0x03f738f6, 0x002f2e8a}}},
+ {X: Field{[10]uint32{0x00e3714c, 0x00aed2df, 0x01e38eea, 0x02ca1a52, 0x027c2b11, 0x01dfab68, 0x02cb85f7, 0x02278a58, 0x017db949, 0x003b1b07}}, Y: Field{[10]uint32{0x02d08fdd, 0x02c0c3a7, 0x02516df3, 0x01354bf3, 0x018ef266, 0x02f295d5, 0x00089d0e, 0x037f6c75, 0x01af6042, 0x002b767e}}},
+ {X: Field{[10]uint32{0x0237f093, 0x00982112, 0x0335c1fe, 0x023a5519, 0x01c59bca, 0x0042166e, 0x03a82d35, 0x03064964, 0x032c24dc, 0x0023ddf2}}, Y: Field{[10]uint32{0x03e07202, 0x0266cf13, 0x02213831, 0x02f561f9, 0x00423fde, 0x0029c32e, 0x0355bd4f, 0x0267e9c2, 0x0186fbf4, 0x001459d2}}},
+ {X: Field{[10]uint32{0x024b6aca, 0x01e30741, 0x0049f1fd, 0x035890f4, 0x011122f2, 0x03d28cb7, 0x00c4ed62, 0x00c6bea9, 0x0374dae8, 0x0038ab77}}, Y: Field{[10]uint32{0x028b2297, 0x020463f8, 0x0323ccf5, 0x02808296, 0x00a73a1a, 0x0369984a, 0x02560224, 0x03ec2c22, 0x03941ead, 0x001f6f2c}}},
+ {X: Field{[10]uint32{0x02b1e3eb, 0x011768c0, 0x0072d3e8, 0x0144d2ea, 0x033a22b1, 0x0233516c, 0x03b7c6db, 0x00c7266b, 0x01bc614d, 0x002fdebc}}, Y: Field{[10]uint32{0x00125a21, 0x00bb0b14, 0x03239754, 0x0193c49d, 0x012b8504, 0x00c99ef5, 0x029e2552, 0x02288bee, 0x01e78cf8, 0x0004234e}}},
+ {X: Field{[10]uint32{0x02fe50e4, 0x03af1663, 0x01987093, 0x01a29d60, 0x0035b4f0, 0x014b60b3, 0x012c5f69, 0x0196016e, 0x007f0cec, 0x000223ff}}, Y: Field{[10]uint32{0x01378a4c, 0x03713693, 0x00cf4a63, 0x03262e7a, 0x00d39193, 0x008e5159, 0x01558c78, 0x00b0fae8, 0x00ca94b4, 0x000e0b6b}}},
+ {X: Field{[10]uint32{0x013a152b, 0x00d4f51f, 0x003b7a28, 0x001cd33e, 0x039070e2, 0x00dbaac9, 0x00569ae6, 0x02b982e7, 0x03840ef4, 0x002c4528}}, Y: Field{[10]uint32{0x00a3fa70, 0x02311df3, 0x03001b18, 0x01d9b629, 0x03bb8260, 0x02ef972f, 0x036438c9, 0x03882981, 0x033ce58e, 0x000df1d9}}},
+ {X: Field{[10]uint32{0x03e801b0, 0x036cea31, 0x009da627, 0x00ac6453, 0x00cfb0cd, 0x00c4064b, 0x0368fa1e, 0x008edbe9, 0x002fe20d, 0x00390469}}, Y: Field{[10]uint32{0x019b1039, 0x02140225, 0x0080b91c, 0x02ba2bb1, 0x028f6828, 0x00a2bca6, 0x012bbc17, 0x01e601c9, 0x039b43ee, 0x003fac6d}}},
+ {X: Field{[10]uint32{0x00ee1999, 0x0053f35d, 0x00fd7cb8, 0x035fc7d2, 0x0031057a, 0x037979f1, 0x005182ae, 0x008c4f02, 0x007e4643, 0x000647da}}, Y: Field{[10]uint32{0x026dbc72, 0x03d2c7a4, 0x001e60e4, 0x0100f542, 0x0043e5c5, 0x00e02336, 0x0239efb8, 0x0338b566, 0x002b3f77, 0x0015192d}}},
+ {X: Field{[10]uint32{0x006bcd81, 0x0023ae54, 0x01bf0b22, 0x01321686, 0x03983774, 0x006bbd4d, 0x018c4ff0, 0x02927bd8, 0x017733b0, 0x0018ffd2}}, Y: Field{[10]uint32{0x00593d3b, 0x0126ca4c, 0x020903ae, 0x02321f89, 0x0039535d, 0x02a4fca9, 0x0287b500, 0x0164c7ce, 0x0397ca83, 0x001b32bb}}},
+ {X: Field{[10]uint32{0x03fc2c1c, 0x01f96b6d, 0x015564c5, 0x0291a361, 0x00f4ce72, 0x00ba318a, 0x027056c0, 0x0016e9a7, 0x0025c377, 0x003bf8d9}}, Y: Field{[10]uint32{0x01970ad5, 0x02443014, 0x032d08dd, 0x0049485c, 0x028faa7f, 0x00b956ec, 0x01a5f52c, 0x0127160c, 0x035f27ac, 0x000e4ae6}}},
+ {X: Field{[10]uint32{0x037e94a5, 0x0001477d, 0x00a99988, 0x00dd3968, 0x02841d47, 0x005c1287, 0x01419102, 0x0302346f, 0x026bdd7c, 0x0001b484}}, Y: Field{[10]uint32{0x00e6e806, 0x01be55a1, 0x015f55da, 0x02c236bd, 0x03efb4d4, 0x02b50849, 0x0372ce6e, 0x02fa5d4b, 0x023acda1, 0x000ba6e0}}},
+ {X: Field{[10]uint32{0x00933743, 0x037da941, 0x02f54b20, 0x03261ad3, 0x006d453a, 0x00732a4f, 0x006340dc, 0x02716e47, 0x03f4297d, 0x0033dee7}}, Y: Field{[10]uint32{0x03670c15, 0x02ea8ffa, 0x012ca083, 0x031078d8, 0x00c20613, 0x03dd46d5, 0x01efec2b, 0x0000ac44, 0x008a2c07, 0x002295e0}}},
+ {X: Field{[10]uint32{0x01f7e83e, 0x0093f981, 0x023f2c15, 0x02ffdf00, 0x0027f5a5, 0x038b5568, 0x01ba4e80, 0x017b8747, 0x002b4cbe, 0x002c5809}}, Y: Field{[10]uint32{0x000fb5a0, 0x016e318f, 0x01567607, 0x03d19f42, 0x024f1faa, 0x03ece74f, 0x02e9f540, 0x0049801f, 0x03956cf3, 0x0002b0d5}}},
+ {X: Field{[10]uint32{0x02bb050e, 0x0336a95a, 0x02733c02, 0x031b7f43, 0x021744d9, 0x0098669c, 0x013dce02, 0x0063661b, 0x012c4f89, 0x001ea191}}, Y: Field{[10]uint32{0x010de179, 0x02daf172, 0x0285a91e, 0x03e90f62, 0x00542370, 0x025b3d15, 0x02a1fb35, 0x02c383ee, 0x031cb558, 0x000c34c2}}},
+ {X: Field{[10]uint32{0x002323b9, 0x0014bfd6, 0x01372408, 0x01024e07, 0x00af41ba, 0x025f19dc, 0x0296d3ab, 0x001bbc3a, 0x001a64d2, 0x00289e6f}}, Y: Field{[10]uint32{0x00e42046, 0x0129af1b, 0x0261da1b, 0x034d2d60, 0x02e96199, 0x0380cc60, 0x01a7ab1f, 0x02f1119e, 0x013d701e, 0x002bbf21}}},
+ {X: Field{[10]uint32{0x01e5cc76, 0x039bb1aa, 0x0301a0d4, 0x0218987a, 0x00f76918, 0x03167e1a, 0x00c301aa, 0x0005ad82, 0x01705c16, 0x003a38a1}}, Y: Field{[10]uint32{0x030a983d, 0x02cfab27, 0x01eb8f2f, 0x01989da6, 0x02c988ea, 0x02509c9c, 0x0303b7a4, 0x0201442d, 0x0315f8e7, 0x00248d40}}},
+ {X: Field{[10]uint32{0x029f2bbd, 0x03833862, 0x03e73459, 0x0216e4e6, 0x0046da15, 0x01cd3e73, 0x015f300a, 0x03f20601, 0x02f814f3, 0x0007f673}}, Y: Field{[10]uint32{0x00abb55e, 0x02230367, 0x025cd264, 0x02a5e528, 0x00c26d79, 0x00117c08, 0x003c71bc, 0x033239bb, 0x033fa50f, 0x0037313d}}},
+ {X: Field{[10]uint32{0x027e5f11, 0x006b41a4, 0x0174d39f, 0x02db3d39, 0x03c609d4, 0x03cd93db, 0x0148942d, 0x017f583f, 0x02fc7027, 0x000c86c6}}, Y: Field{[10]uint32{0x00add33d, 0x015118e0, 0x01680c5b, 0x03e3b40a, 0x03725a80, 0x0293207e, 0x01ad36f8, 0x02cc46ba, 0x00ef808b, 0x0004da3b}}},
+ {X: Field{[10]uint32{0x02d7bf72, 0x02310bbd, 0x01741810, 0x02731433, 0x03f9ef1e, 0x0037b095, 0x010cad9b, 0x038e4f6b, 0x01fb6518, 0x00137fca}}, Y: Field{[10]uint32{0x00dfb70c, 0x003d308c, 0x00efde4d, 0x022d20c1, 0x02d92f8f, 0x004fb23d, 0x03bfd067, 0x013a0935, 0x006e05aa, 0x0010565e}}},
+ {X: Field{[10]uint32{0x00ed1e0b, 0x00dcfdd7, 0x001b9274, 0x01ca56a3, 0x00c839b9, 0x028fcb95, 0x03162e11, 0x00157196, 0x00a5eb63, 0x0024dea1}}, Y: Field{[10]uint32{0x0166afc6, 0x0253cdde, 0x01954532, 0x02c6a73e, 0x0162c122, 0x038f9e8b, 0x03fb3b52, 0x028d4769, 0x00bbbf11, 0x00280c1e}}},
+ {X: Field{[10]uint32{0x016cc3d2, 0x03c111fa, 0x03c7a56d, 0x024ecc5d, 0x0156f073, 0x0176dff1, 0x032a87d2, 0x01cee13e, 0x029b7cab, 0x002f8fea}}, Y: Field{[10]uint32{0x02faf77f, 0x02625a02, 0x00ee1029, 0x01a9f8d2, 0x02927644, 0x03a47dfd, 0x01dacc44, 0x0252bd5c, 0x02e01ad7, 0x0039c147}}},
+ {X: Field{[10]uint32{0x016c9b41, 0x0037c55d, 0x021f8c68, 0x004ec3ef, 0x0136928d, 0x001635f7, 0x01d24da6, 0x035419d9, 0x006bcc36, 0x00162ce7}}, Y: Field{[10]uint32{0x023d74ff, 0x00b4fc10, 0x0063dad7, 0x0278315e, 0x03b4ecd9, 0x00fdeb9b, 0x0012b777, 0x011b669d, 0x0291aaa8, 0x001127a5}}},
+ {X: Field{[10]uint32{0x03765798, 0x00af7270, 0x007b2819, 0x00ac71cb, 0x008c9128, 0x02195d0b, 0x00e21000, 0x002d19c8, 0x0171b166, 0x0026c62a}}, Y: Field{[10]uint32{0x02e0f49f, 0x024b8c4c, 0x03d506c7, 0x00dc1673, 0x022be28d, 0x02819405, 0x0007a934, 0x03e0f4b3, 0x012298ad, 0x000a04b9}}},
+ {X: Field{[10]uint32{0x02c0f59e, 0x0286cfb7, 0x002d7f73, 0x031724a5, 0x02c86740, 0x005de209, 0x035e2076, 0x0352f5e8, 0x0003dbac, 0x0029b113}}, Y: Field{[10]uint32{0x0056077f, 0x0124f31c, 0x000e0797, 0x027b1032, 0x022258d2, 0x02abce71, 0x03737278, 0x00d041da, 0x037cd1fa, 0x001ccc5a}}},
+ {X: Field{[10]uint32{0x01682ee3, 0x00168e88, 0x03aaa21a, 0x010eefe8, 0x005dde20, 0x012b5e28, 0x037495b9, 0x03e35760, 0x0355628f, 0x0007fec9}}, Y: Field{[10]uint32{0x03b5943b, 0x016bfe36, 0x02fec5f9, 0x02b71a43, 0x03a71243, 0x01c38aa0, 0x019962df, 0x022db3ff, 0x00f7006b, 0x0012811e}}},
+ {X: Field{[10]uint32{0x019b8283, 0x03c79e10, 0x0025c3d6, 0x039c23ed, 0x02b67a21, 0x023b97dc, 0x02538a80, 0x00451120, 0x008e3605, 0x002ba931}}, Y: Field{[10]uint32{0x01a80b27, 0x01aeea50, 0x0099b221, 0x00c1ad91, 0x0282c7b5, 0x039c44cc, 0x009d216c, 0x02ce5ef6, 0x02b8c28e, 0x001145f2}}},
+ {X: Field{[10]uint32{0x034ed3eb, 0x025e6402, 0x03127f52, 0x0050e0af, 0x030b972f, 0x0000f29b, 0x036fabb5, 0x0009c210, 0x03fa5f8c, 0x00377166}}, Y: Field{[10]uint32{0x03d995c1, 0x0014d17a, 0x02696996, 0x0200ea65, 0x01ad7dbc, 0x0108117a, 0x00370b67, 0x01d6d94f, 0x019fb80e, 0x003db0fc}}},
+ {X: Field{[10]uint32{0x014c80a8, 0x00f162c1, 0x0237d0d0, 0x032619a9, 0x0394d204, 0x011d0bdb, 0x03f83ed6, 0x006cb58a, 0x03e7ed30, 0x00088613}}, Y: Field{[10]uint32{0x0179b442, 0x00d85020, 0x00ab4ace, 0x01a8ee03, 0x013bc55d, 0x015a6095, 0x03a389dc, 0x028f5585, 0x01281073, 0x00276c9d}}},
+ {X: Field{[10]uint32{0x0201cef3, 0x02a8debc, 0x02eeaf98, 0x00421c4d, 0x036488c5, 0x02ebf0f2, 0x030ed2d6, 0x01bd29d2, 0x03f474e4, 0x00396185}}, Y: Field{[10]uint32{0x02aa2220, 0x013e393c, 0x019d436d, 0x038b93d4, 0x00c6b141, 0x0126906c, 0x03f2047d, 0x038179c6, 0x037552dd, 0x00331a9c}}},
+ {X: Field{[10]uint32{0x024f8e41, 0x0280de60, 0x0046c5b2, 0x003c740a, 0x02b7394a, 0x029cecfc, 0x02c2c5ab, 0x0317fb79, 0x00925add, 0x00306a90}}, Y: Field{[10]uint32{0x028c687b, 0x0161b074, 0x0357028b, 0x009815c4, 0x032475bf, 0x0020ead4, 0x016ce735, 0x03d58254, 0x0307e30a, 0x0025c4eb}}},
+ {X: Field{[10]uint32{0x01df6168, 0x034a46b0, 0x01b5ac08, 0x0082c2dc, 0x0069e4d3, 0x001931c6, 0x00cd1c23, 0x01916407, 0x008d8957, 0x0012a976}}, Y: Field{[10]uint32{0x0113e6e6, 0x0034cab2, 0x006adf24, 0x020b7396, 0x010c0484, 0x01e01920, 0x0336cc3f, 0x00a23b1a, 0x001b915c, 0x000743a9}}},
+ {X: Field{[10]uint32{0x02a8a977, 0x025be4e8, 0x031e7432, 0x01c4e477, 0x02738d41, 0x02a1a680, 0x025e192f, 0x01e0d372, 0x01917313, 0x0024e1db}}, Y: Field{[10]uint32{0x026457a4, 0x01beeb5e, 0x03c3de2d, 0x023e74a9, 0x0173fc6c, 0x015e1a9a, 0x0263d9dd, 0x03514093, 0x023d32ba, 0x001e5211}}},
+ {X: Field{[10]uint32{0x011b7b28, 0x012243ea, 0x006ee50e, 0x00295310, 0x035d1808, 0x00bcabcd, 0x033dd13f, 0x020096c8, 0x017d3026, 0x00032033}}, Y: Field{[10]uint32{0x0318bc4b, 0x03f9486d, 0x00292278, 0x03249e1c, 0x019e6260, 0x031eb49d, 0x008f904a, 0x0047e459, 0x018b1f1d, 0x0027dced}}},
+ {X: Field{[10]uint32{0x00c8c5cb, 0x010943a8, 0x01bb8fba, 0x0310f39e, 0x00e8e7e7, 0x01ea70c3, 0x004e8579, 0x028d16a3, 0x00d97dd4, 0x0034af49}}, Y: Field{[10]uint32{0x02494b9e, 0x0059ae41, 0x030f7665, 0x0257b868, 0x00055ae8, 0x0027ac0a, 0x03310558, 0x0064c640, 0x00b815cb, 0x000cc3c3}}},
+ {X: Field{[10]uint32{0x01d7e9f4, 0x000cc1d7, 0x038b8dc3, 0x02254568, 0x015d7225, 0x00eae605, 0x015457df, 0x03a863ec, 0x03a290de, 0x00353928}}, Y: Field{[10]uint32{0x027d1c21, 0x0308774f, 0x038a56ee, 0x01b2e452, 0x0271c57a, 0x014867a6, 0x02bdc9ba, 0x03b2c5d0, 0x013e77d0, 0x00121512}}},
+ {X: Field{[10]uint32{0x03236d19, 0x026f9b51, 0x02bea277, 0x00b85807, 0x03d318f8, 0x0039db8a, 0x011b246f, 0x038e67f3, 0x00f4810d, 0x003c3edb}}, Y: Field{[10]uint32{0x00595daf, 0x03b779eb, 0x00d07ad0, 0x034df3d6, 0x022cc9b4, 0x03aca907, 0x030b1973, 0x0008e622, 0x01606648, 0x0038eb54}}},
+ {X: Field{[10]uint32{0x00858939, 0x01cec40d, 0x03ab0ebf, 0x03c66191, 0x039a4f9d, 0x000ac3f1, 0x0191740d, 0x011c30da, 0x018e3f4c, 0x003753b1}}, Y: Field{[10]uint32{0x00a3bfe3, 0x00df6810, 0x0246417e, 0x024253fe, 0x00737a63, 0x0107a4b7, 0x038c8395, 0x01633bc9, 0x0086a3b0, 0x000e9bb3}}},
+ {X: Field{[10]uint32{0x03904e51, 0x02baedea, 0x01a8b8fd, 0x00eb771d, 0x012af12f, 0x013dab78, 0x02fe1b6c, 0x03655353, 0x01101d7e, 0x0003b15a}}, Y: Field{[10]uint32{0x0050c54a, 0x02df9435, 0x01d6dbe0, 0x02b6cb30, 0x01be7cba, 0x008bc988, 0x027111ae, 0x013dc50c, 0x027f5d59, 0x000d25f1}}},
+ {X: Field{[10]uint32{0x03aa35c5, 0x03668676, 0x03da5a85, 0x02c38a2a, 0x03e25ef6, 0x013b70f2, 0x025e1aa6, 0x015a95f2, 0x02f80518, 0x00329177}}, Y: Field{[10]uint32{0x003521b2, 0x034cf6dc, 0x03df04d1, 0x01a569e8, 0x026eb4ed, 0x0044dcb0, 0x013fcde1, 0x02e7af80, 0x0357268d, 0x0036e2c8}}},
+ {X: Field{[10]uint32{0x01b49a47, 0x03702485, 0x022e65f6, 0x00550d73, 0x0040f8ba, 0x03722925, 0x003c8b63, 0x00878920, 0x03889645, 0x002d1314}}, Y: Field{[10]uint32{0x02198d00, 0x018aa0f7, 0x031f5724, 0x02a7076b, 0x01509890, 0x021459ae, 0x0125e04b, 0x012e033c, 0x035df30c, 0x000b8590}}},
+ {X: Field{[10]uint32{0x005dea26, 0x033fb2b8, 0x00603666, 0x0386d66d, 0x0333a20c, 0x02d1b65d, 0x01291a54, 0x00bc503a, 0x01e23586, 0x00256dcd}}, Y: Field{[10]uint32{0x024aabb9, 0x01159d49, 0x02553211, 0x02c4a1ba, 0x00f22ab5, 0x01ba0302, 0x03c9977b, 0x02f86426, 0x03055f38, 0x00384a05}}},
+ {X: Field{[10]uint32{0x03e5bdfc, 0x024a3b5c, 0x027cee56, 0x02c99b06, 0x00a15c71, 0x03b91c5b, 0x028d2313, 0x00098db3, 0x00678fbb, 0x0020f676}}, Y: Field{[10]uint32{0x03949246, 0x021a1eda, 0x00545991, 0x0308df7e, 0x00c35027, 0x0267d280, 0x03e7d784, 0x03c4cbbf, 0x002fbe92, 0x00381253}}},
+ {X: Field{[10]uint32{0x01bbae03, 0x010ddc12, 0x016f02e8, 0x0233cc37, 0x031d3b47, 0x02453891, 0x036bad16, 0x0151b6ef, 0x0085a04c, 0x000262df}}, Y: Field{[10]uint32{0x032ace57, 0x02718f4e, 0x00972e56, 0x03e510d9, 0x01ce4106, 0x0042c299, 0x0027da4a, 0x037f6764, 0x03953733, 0x001da70e}}},
+ {X: Field{[10]uint32{0x03b12e45, 0x01018aa8, 0x01dfe086, 0x02c46691, 0x0375019c, 0x03699b54, 0x0358a8f4, 0x00d3b0d0, 0x0277852d, 0x000f39ed}}, Y: Field{[10]uint32{0x027e409a, 0x0158b751, 0x03218e42, 0x03677913, 0x0102cf03, 0x0179062a, 0x0272c4bd, 0x022e1a58, 0x010f0183, 0x001a349e}}},
+ {X: Field{[10]uint32{0x02d7836f, 0x011c9fb2, 0x03291e07, 0x0320265e, 0x036b50bd, 0x00550ae0, 0x010dca75, 0x01c40507, 0x00f4d4da, 0x00282f0a}}, Y: Field{[10]uint32{0x03e47c88, 0x02d21665, 0x012242a8, 0x02f329e1, 0x02177eec, 0x027c58f4, 0x005a5819, 0x01e0735a, 0x014940f2, 0x001bb5f8}}},
+ {X: Field{[10]uint32{0x02185c0b, 0x03846ac7, 0x00b6818f, 0x03126863, 0x0397750f, 0x00350660, 0x01d290ac, 0x0358ad39, 0x03a352b1, 0x002695c6}}, Y: Field{[10]uint32{0x011b4ad1, 0x0078a56b, 0x00128ff6, 0x01c26f76, 0x030f6c28, 0x00d19245, 0x03c0dfed, 0x03d63e73, 0x00cdb2b1, 0x0006a473}}},
+ {X: Field{[10]uint32{0x0221b9bf, 0x03d91f8a, 0x00b93d53, 0x00760d23, 0x004e135c, 0x016a312c, 0x024eca55, 0x0379cc34, 0x004fcdd2, 0x003ee815}}, Y: Field{[10]uint32{0x0374568a, 0x015f8109, 0x023f7aed, 0x0327df6f, 0x02f71a6c, 0x03e0ef9a, 0x02fe631f, 0x01ab3cba, 0x0025a4ec, 0x001e8469}}},
+ {X: Field{[10]uint32{0x00920a9b, 0x02af2875, 0x00b485f7, 0x00551585, 0x01ecad11, 0x0070eeb6, 0x002bdd70, 0x03d988e4, 0x013a1edb, 0x00365ac9}}, Y: Field{[10]uint32{0x0318c2e8, 0x0341980e, 0x031f2408, 0x0322c5cb, 0x021499f1, 0x03ccc54d, 0x027d09f2, 0x02e0c4bc, 0x0198f951, 0x000af222}}},
+ {X: Field{[10]uint32{0x02267c2b, 0x012e2990, 0x0135613a, 0x00ba51f0, 0x01982338, 0x03e5c8fe, 0x02e14da0, 0x02e09652, 0x03ce1081, 0x000acf05}}, Y: Field{[10]uint32{0x036048ff, 0x037e9a4c, 0x0074fdbb, 0x030b6ef3, 0x02e77205, 0x009e8aad, 0x007f1fa4, 0x00916e23, 0x009f2ebd, 0x00293356}}},
+ {X: Field{[10]uint32{0x016439f9, 0x0158da72, 0x021252eb, 0x03253f61, 0x013f6bc5, 0x03891367, 0x0313ea72, 0x0148b1a4, 0x0380fdac, 0x001a5a61}}, Y: Field{[10]uint32{0x01a03154, 0x0007ddc9, 0x0020ec10, 0x0053f880, 0x018d6e43, 0x02ee6653, 0x02b59439, 0x011d7f01, 0x03c6460f, 0x003a3bac}}},
+ {X: Field{[10]uint32{0x00848c68, 0x0257be68, 0x03c6d763, 0x03f2b8bf, 0x02d1577e, 0x02ff0bd2, 0x03e172c9, 0x03713258, 0x02114cb4, 0x00078d11}}, Y: Field{[10]uint32{0x004f5b19, 0x00d0db10, 0x01e1da47, 0x00858167, 0x01a2bb46, 0x02ef1b54, 0x016d4643, 0x0268382e, 0x00dfe6f5, 0x0037aeee}}},
+ {X: Field{[10]uint32{0x006aa61a, 0x022ba34a, 0x03a1fc55, 0x0213109c, 0x03d5c302, 0x034d78a1, 0x012c191b, 0x00aa6ae8, 0x02024c7f, 0x001b33eb}}, Y: Field{[10]uint32{0x02e7cb11, 0x0120e22d, 0x02de854e, 0x03c7ba0e, 0x0194c4cd, 0x00791623, 0x002ade25, 0x028bf74d, 0x01740c78, 0x00308050}}},
+ {X: Field{[10]uint32{0x024c728e, 0x02c5b8b2, 0x0077ec32, 0x00fe525f, 0x02db4315, 0x006884a2, 0x03f0a2e6, 0x0284ccd6, 0x008769b6, 0x0016d7f5}}, Y: Field{[10]uint32{0x00f00c77, 0x039df363, 0x0108850f, 0x03694f10, 0x015a54c9, 0x01a1c46d, 0x01f26321, 0x027513ab, 0x013fb23c, 0x0026550d}}},
+ {X: Field{[10]uint32{0x035d069e, 0x01aa6f00, 0x0221565a, 0x0277d504, 0x03e6a41d, 0x00c8ed8f, 0x03bbbd27, 0x01137587, 0x025727af, 0x001add28}}, Y: Field{[10]uint32{0x0032a34c, 0x02674cfd, 0x01756480, 0x01185491, 0x0039b87a, 0x03c01326, 0x03d689c5, 0x0237fed6, 0x0214f17b, 0x00029384}}},
+ {X: Field{[10]uint32{0x00e372a2, 0x02fc50ee, 0x004b263c, 0x01b02ab8, 0x03868860, 0x03823cc5, 0x03408b9f, 0x03b4060d, 0x01878ae9, 0x00145c68}}, Y: Field{[10]uint32{0x03172d06, 0x01009d82, 0x037e8681, 0x0057164e, 0x0044da8e, 0x02a3c829, 0x024a4728, 0x014f33f9, 0x026b9641, 0x002d79f7}}},
+ {X: Field{[10]uint32{0x03c8e80d, 0x03a5b350, 0x0356c279, 0x024a102d, 0x03dbce8a, 0x014a562a, 0x018568ce, 0x03bcc8d4, 0x006a4337, 0x00037e7a}}, Y: Field{[10]uint32{0x03027da7, 0x0246ed1c, 0x001df5f5, 0x037c1865, 0x0250b2cc, 0x03a4e04c, 0x00e8ff61, 0x01182844, 0x02eec72f, 0x001510ae}}},
+ {X: Field{[10]uint32{0x0087c850, 0x0200608e, 0x033072ec, 0x024dedb4, 0x00ac9e46, 0x0240fef4, 0x0076ab73, 0x007dc6be, 0x0279eb6f, 0x003381c0}}, Y: Field{[10]uint32{0x02a155eb, 0x0037b52d, 0x01e84aea, 0x025d4e37, 0x016ea230, 0x0247e2b6, 0x03f2a79e, 0x034d1787, 0x01f988f9, 0x0037a0f7}}},
+ {X: Field{[10]uint32{0x002f35fd, 0x01fcd213, 0x00c40766, 0x026c3b4a, 0x0296e578, 0x0274234d, 0x0238936c, 0x03213160, 0x006244af, 0x00280957}}, Y: Field{[10]uint32{0x033c6f7a, 0x0383459d, 0x0269f17e, 0x005f3589, 0x0206cd50, 0x02c83c88, 0x0098293f, 0x02635c32, 0x0007aef8, 0x0024f8b5}}},
+ {X: Field{[10]uint32{0x02f0d86b, 0x009b72a1, 0x03ef0d51, 0x010370bd, 0x02138e18, 0x00e0ffd8, 0x00e1197a, 0x01775c50, 0x02adb76d, 0x002ba0b7}}, Y: Field{[10]uint32{0x0320964a, 0x02057295, 0x027c65f5, 0x01606668, 0x0072d36b, 0x038c2d64, 0x036d8ec2, 0x001de6a7, 0x03accaaa, 0x0008e76e}}},
+ {X: Field{[10]uint32{0x02332393, 0x00dd7645, 0x0088444c, 0x02b27024, 0x0197c597, 0x02250918, 0x016441ea, 0x0178bb56, 0x01cebee6, 0x0033c266}}, Y: Field{[10]uint32{0x02748ca4, 0x017fecce, 0x01880865, 0x03481a4d, 0x011c664a, 0x016b736f, 0x03f8cd54, 0x03b75407, 0x03d2f074, 0x00198832}}},
+ {X: Field{[10]uint32{0x00d3965c, 0x01600ce7, 0x0222a762, 0x00065151, 0x029ec068, 0x02eb2ecd, 0x03ff1b41, 0x02c06d8e, 0x03746404, 0x0017ed2b}}, Y: Field{[10]uint32{0x032abff5, 0x0338e489, 0x03e93d99, 0x02d16553, 0x00916a51, 0x01239d12, 0x009529fa, 0x01a5f350, 0x02e12cce, 0x0011932c}}},
+ {X: Field{[10]uint32{0x033216b4, 0x00e83cc6, 0x023a0199, 0x003e0453, 0x002c7a35, 0x00af12b3, 0x01e5687a, 0x008cb815, 0x000a46b5, 0x00056bcf}}, Y: Field{[10]uint32{0x01d45a83, 0x00e95d33, 0x03b37ad8, 0x02795a96, 0x0286c818, 0x028ffdee, 0x035acd93, 0x00e2c11c, 0x039bbdce, 0x002b80dc}}},
+ {X: Field{[10]uint32{0x000b4b10, 0x00cf8d95, 0x0046576d, 0x021d9034, 0x0232c887, 0x00b65cf6, 0x00b8b5d3, 0x0333150b, 0x01d1d008, 0x0017400d}}, Y: Field{[10]uint32{0x0254c465, 0x00f9ef9b, 0x02f39617, 0x023356d2, 0x0376db8a, 0x00e9d3c5, 0x009061f7, 0x027ca19a, 0x00e5bffa, 0x001123b6}}},
+ {X: Field{[10]uint32{0x03c95527, 0x01eeb520, 0x03915e02, 0x0013f12b, 0x02a40b07, 0x03f1a78e, 0x039d322f, 0x01277fb6, 0x00f39cf7, 0x0025131c}}, Y: Field{[10]uint32{0x006c6f0c, 0x023b2f6e, 0x02fc21a1, 0x03f52388, 0x02df10ac, 0x012699a6, 0x026e95ce, 0x024cc992, 0x003bbf48, 0x002c2b03}}},
+ {X: Field{[10]uint32{0x011e4402, 0x02f17585, 0x00acc846, 0x0095b34a, 0x0052e262, 0x02b58bc1, 0x0246754d, 0x00f128fc, 0x01f082ec, 0x003e9486}}, Y: Field{[10]uint32{0x027afae9, 0x0138fcc2, 0x0065a01b, 0x00af7340, 0x01eb730d, 0x000a240c, 0x0364f26a, 0x00c4cb5e, 0x01e9d640, 0x000cb3a0}}},
+ {X: Field{[10]uint32{0x00a30ede, 0x010e4a0e, 0x03032704, 0x01ad766f, 0x0085c6a1, 0x0162e146, 0x009455a8, 0x03898c14, 0x0230ddbe, 0x00327d2a}}, Y: Field{[10]uint32{0x00ad7b7c, 0x02dd8c8d, 0x01baea15, 0x00d30be9, 0x03add203, 0x01adcee9, 0x00927994, 0x02bcc66a, 0x03c6b438, 0x0017bdc5}}},
+ {X: Field{[10]uint32{0x03770319, 0x0305e39e, 0x02120162, 0x018b7bba, 0x020529b3, 0x01cb53ff, 0x00dd2fdc, 0x0355a56c, 0x03ca7454, 0x000bd33c}}, Y: Field{[10]uint32{0x02f7d487, 0x0033ade8, 0x02042d5a, 0x0317fc51, 0x02fe7c87, 0x02dd9c24, 0x03c1ce0f, 0x03af2fd1, 0x020e3566, 0x003736a4}}},
+ {X: Field{[10]uint32{0x01969945, 0x02a5ae1e, 0x02af40a0, 0x01080891, 0x02a1cb0a, 0x007e46cf, 0x03a41a75, 0x035d2bc1, 0x01762e0c, 0x000905fd}}, Y: Field{[10]uint32{0x027807d9, 0x02e9ffc7, 0x02ceefcf, 0x01b65aea, 0x01741ef9, 0x0072d13b, 0x02d0a3f6, 0x01c6f2b6, 0x0355f8dc, 0x001aa5b5}}},
+ {X: Field{[10]uint32{0x0088852c, 0x02d86e16, 0x008c66cf, 0x002bba45, 0x00d43d06, 0x02ecf6e9, 0x01ca5bac, 0x00707d9d, 0x0384305a, 0x0026ac8b}}, Y: Field{[10]uint32{0x0028a03e, 0x02d45ea9, 0x01c18e23, 0x01acb32a, 0x03b51d99, 0x02b3768e, 0x02ac12a7, 0x0238e9eb, 0x02faa258, 0x002bc141}}},
+ {X: Field{[10]uint32{0x00a72b6c, 0x00074749, 0x02f52875, 0x00996858, 0x0077a917, 0x038551c9, 0x00ed8787, 0x01e4980a, 0x02a22462, 0x003dd087}}, Y: Field{[10]uint32{0x0343fcf6, 0x00224015, 0x004dd8f5, 0x03322160, 0x01fe1c72, 0x03351845, 0x032ca6d8, 0x0104cbcd, 0x0265e448, 0x0036c2b9}}},
+ {X: Field{[10]uint32{0x035c6f75, 0x00ef5ff7, 0x01e35496, 0x02edf65c, 0x0110a912, 0x02e61d6c, 0x00bb7918, 0x015fa370, 0x02f3548d, 0x000d5d5a}}, Y: Field{[10]uint32{0x0077a1d2, 0x01c26378, 0x0260fc51, 0x023882c5, 0x0186d94b, 0x03538658, 0x02d69aeb, 0x02d3f753, 0x01ba78a2, 0x0007291b}}},
+ {X: Field{[10]uint32{0x03f01837, 0x031136c6, 0x01bc0241, 0x030bf80c, 0x03de4041, 0x0036b9ff, 0x0049d9ab, 0x03ebc859, 0x000c494c, 0x0029fa7c}}, Y: Field{[10]uint32{0x021a0280, 0x02013005, 0x008b7d10, 0x03793bd4, 0x005a7760, 0x02d7eedd, 0x013d0093, 0x0101aa5d, 0x01ae480b, 0x003cabae}}},
+ {X: Field{[10]uint32{0x0262adb7, 0x03d79bf2, 0x03c1ac88, 0x028a4213, 0x0064838a, 0x0195739c, 0x037755b7, 0x00a1e5dc, 0x01ba9287, 0x001a5147}}, Y: Field{[10]uint32{0x002b1cd9, 0x00fc69ec, 0x0143c0c7, 0x01ed468c, 0x00107153, 0x01b1ee54, 0x01845d49, 0x03c244c7, 0x03a8d40d, 0x00098863}}},
+ {X: Field{[10]uint32{0x02abf06d, 0x01b338f6, 0x00ad35eb, 0x003c3148, 0x0089a92d, 0x0220817f, 0x0186a375, 0x0299bf3a, 0x033015cc, 0x0031270e}}, Y: Field{[10]uint32{0x000e354c, 0x01b59f16, 0x01b5e621, 0x02714f8c, 0x03624291, 0x034ab425, 0x00f9ca99, 0x000ac383, 0x004a665b, 0x001ebf7a}}},
+ {X: Field{[10]uint32{0x039dae8f, 0x01ad891a, 0x003871ab, 0x0110215c, 0x0090c0c7, 0x0047053e, 0x036ee1df, 0x01b8e316, 0x01bfb68e, 0x003a7860}}, Y: Field{[10]uint32{0x01ef5e1b, 0x0309a8b5, 0x00018fc6, 0x0297868d, 0x00d1af5c, 0x00d946a9, 0x007e260c, 0x010c5c24, 0x02db3f39, 0x002c2f3f}}},
+ {X: Field{[10]uint32{0x02392324, 0x00b8c0b7, 0x028bc406, 0x00e2ae67, 0x012e7d87, 0x0035b87e, 0x01c9e52e, 0x01073d6d, 0x006f0adf, 0x00290a16}}, Y: Field{[10]uint32{0x01b8d142, 0x019fc225, 0x031c83f9, 0x00fd37a0, 0x01a2a741, 0x012737ba, 0x03911e8b, 0x0324dd96, 0x018bfe71, 0x001df0f8}}},
+ {X: Field{[10]uint32{0x032712cf, 0x03743641, 0x0194d785, 0x039d7bfb, 0x0038077b, 0x0195a99d, 0x00a4830b, 0x0068952d, 0x02d2de1d, 0x003d724b}}, Y: Field{[10]uint32{0x033958fb, 0x019c2e7a, 0x03f1ed7c, 0x01f80699, 0x01228fdf, 0x01471446, 0x01f6dcbc, 0x0127356d, 0x013a4978, 0x001fba63}}},
+ {X: Field{[10]uint32{0x009c3f66, 0x023c062d, 0x034bdf26, 0x031ffc95, 0x01e18c19, 0x019ed55c, 0x01b69307, 0x03d418c4, 0x03ca6c85, 0x002a15c1}}, Y: Field{[10]uint32{0x028aa050, 0x006367d7, 0x0273d775, 0x00d5356e, 0x00536543, 0x00dee3ee, 0x0367d103, 0x038626ab, 0x0271cde2, 0x0005e17f}}},
+ {X: Field{[10]uint32{0x00a7468d, 0x0250bfb0, 0x0197c0f9, 0x01819e9f, 0x00d084ab, 0x027b2971, 0x01e0cf81, 0x03470bcb, 0x035fa4c8, 0x0002219b}}, Y: Field{[10]uint32{0x0188336e, 0x024c120d, 0x0009afe6, 0x022e9fb0, 0x02291528, 0x01d8af9b, 0x02c49adc, 0x0241e8bd, 0x026c3f33, 0x000c0508}}},
+ {X: Field{[10]uint32{0x020688cc, 0x02f8532b, 0x03d66f40, 0x02d59186, 0x0392af22, 0x036901b3, 0x03d07c8b, 0x00b5a385, 0x017337eb, 0x001097db}}, Y: Field{[10]uint32{0x004d4980, 0x035a63f4, 0x03dbdef8, 0x016561c6, 0x00096436, 0x0202f67f, 0x0373290e, 0x038e446a, 0x026f7c42, 0x003a1954}}},
+ {X: Field{[10]uint32{0x00323139, 0x03208f5a, 0x019a2f8a, 0x02bcef27, 0x0236bfe6, 0x00f7ad2f, 0x00184414, 0x02cff555, 0x003e1de3, 0x0003dc3f}}, Y: Field{[10]uint32{0x0224ce03, 0x01012d76, 0x0144adae, 0x002d02aa, 0x008ae575, 0x01ac635e, 0x0374a82d, 0x02cc278d, 0x014b1feb, 0x0022d1e6}}},
+ {X: Field{[10]uint32{0x0283116c, 0x002cd8ca, 0x0106758a, 0x03650e7a, 0x00d59c66, 0x02be8487, 0x003b10ce, 0x00a8581c, 0x00f3038d, 0x0006fa58}}, Y: Field{[10]uint32{0x01e29aef, 0x0070378f, 0x0201062f, 0x036c67ba, 0x030647e0, 0x02c0403e, 0x01549cc3, 0x03b810d4, 0x022f8218, 0x001fe932}}},
+ {X: Field{[10]uint32{0x020cf385, 0x01cb54cc, 0x02a7e484, 0x022520c7, 0x02e915eb, 0x01a52a03, 0x0351e9f5, 0x02028e2b, 0x02d3bc5c, 0x00007ca8}}, Y: Field{[10]uint32{0x013940e5, 0x0194ef9b, 0x00e9ff55, 0x001d9e0b, 0x0147053f, 0x0399c07e, 0x03cb9455, 0x013127e6, 0x0239174b, 0x0028633a}}},
+ {X: Field{[10]uint32{0x00d04766, 0x01dfcf91, 0x0140e884, 0x00dff9dc, 0x019aa67c, 0x01f2beaa, 0x03908611, 0x01ac2edd, 0x03607084, 0x0001875a}}, Y: Field{[10]uint32{0x00f2688f, 0x0230472a, 0x024d2533, 0x03ab2bdc, 0x02b7c4b1, 0x0325b799, 0x02eb59a6, 0x026b858c, 0x02908684, 0x0031fd2f}}},
+ {X: Field{[10]uint32{0x02e6cc9c, 0x033c3507, 0x03c4fe6c, 0x00e249db, 0x026d5405, 0x012f9fc9, 0x0108daf0, 0x019145e5, 0x00932d9a, 0x0000acdc}}, Y: Field{[10]uint32{0x015beca7, 0x0002438a, 0x01d9f5ca, 0x0111860e, 0x0391cdfc, 0x005b382d, 0x016a1d86, 0x0262c7b8, 0x03f42c89, 0x003000a8}}},
+ {X: Field{[10]uint32{0x02708858, 0x03598a7c, 0x0263a87c, 0x0255a89d, 0x0364af0e, 0x03fa6c07, 0x03fd1360, 0x02de8d35, 0x03efaba8, 0x00123d70}}, Y: Field{[10]uint32{0x0232b5ab, 0x03c0fa3f, 0x015e2b88, 0x02fed4a2, 0x0290aefd, 0x00be5cef, 0x02f09cc5, 0x019c91f0, 0x00b7fce4, 0x002330e3}}},
+ {X: Field{[10]uint32{0x0262cfa0, 0x007766cf, 0x00b86e98, 0x03a42798, 0x00adfbe9, 0x01edb54d, 0x01cfc876, 0x03089dbd, 0x01972e5e, 0x0039826d}}, Y: Field{[10]uint32{0x02b43081, 0x00cf997c, 0x0189f0a4, 0x005826b8, 0x02335ca6, 0x02fc6c9e, 0x0385e3db, 0x017f4f8e, 0x01eeff20, 0x001afa70}}},
+ {X: Field{[10]uint32{0x016d205a, 0x019a806c, 0x02b0b2ab, 0x01ecb69a, 0x02f19a76, 0x03bc3073, 0x02b8ea81, 0x0273211b, 0x031a5b2c, 0x003af902}}, Y: Field{[10]uint32{0x03c67058, 0x01be4525, 0x032f445d, 0x008035c2, 0x02967d69, 0x02593d76, 0x01899bd1, 0x032f440e, 0x00e8e4fe, 0x000bddc4}}},
+ {X: Field{[10]uint32{0x018e3abd, 0x037d964d, 0x01b3ff70, 0x01160f60, 0x03dbc72d, 0x02c18af3, 0x03d32f39, 0x02c7bd94, 0x00399391, 0x0025f353}}, Y: Field{[10]uint32{0x03f37968, 0x036629fe, 0x03fe813d, 0x00ae88ce, 0x02263acf, 0x03a7d72b, 0x03c35c56, 0x02db7be6, 0x0184a175, 0x00281698}}},
+ {X: Field{[10]uint32{0x02a7e6d9, 0x0128f06f, 0x0100ebf6, 0x02a80de0, 0x03257343, 0x019566b9, 0x00d99fce, 0x0343a14f, 0x00aa1d3f, 0x00209a4a}}, Y: Field{[10]uint32{0x021efc79, 0x02c1ec8b, 0x0399b020, 0x022a26ec, 0x02faad7f, 0x03dbe112, 0x010fddfc, 0x03a42bfd, 0x01b1a3bd, 0x002f128b}}},
+ {X: Field{[10]uint32{0x03a19121, 0x03b4e697, 0x02398967, 0x00c59dcb, 0x0283bd14, 0x0042eb9e, 0x02e91814, 0x0257745d, 0x0097f3ac, 0x000f9d50}}, Y: Field{[10]uint32{0x0118df32, 0x03f99d69, 0x01801135, 0x0251fcfc, 0x0000ca7f, 0x033e50db, 0x0107ea15, 0x033fe282, 0x0299c6a2, 0x001d1b33}}},
+ {X: Field{[10]uint32{0x029365db, 0x014c998c, 0x028fa446, 0x0118eee0, 0x0282991f, 0x02809c19, 0x00a236c8, 0x02651e02, 0x0064b49b, 0x003394e5}}, Y: Field{[10]uint32{0x022e5dd9, 0x0353009d, 0x00d41a74, 0x027046cb, 0x03a7bda7, 0x0270b0e2, 0x01f2fda2, 0x011d8c18, 0x02c2b8bc, 0x000d5e3f}}},
+ {X: Field{[10]uint32{0x03e349dd, 0x0030ebd4, 0x036692c9, 0x01a4854c, 0x0344a2b6, 0x01929df2, 0x0041d6ae, 0x0056b5eb, 0x01d9cda6, 0x00324cf6}}, Y: Field{[10]uint32{0x0172c610, 0x002c36c1, 0x00c11f9f, 0x012a8713, 0x02a25b05, 0x0262eaf3, 0x02a8ede2, 0x03aeee3c, 0x024f83ba, 0x00129b68}}},
+ {X: Field{[10]uint32{0x000b2ac4, 0x0068ef20, 0x03d51d08, 0x03bca009, 0x03a78e2d, 0x0237777b, 0x0116f2e7, 0x02057fa4, 0x003b1aa9, 0x001166a9}}, Y: Field{[10]uint32{0x03e993d5, 0x017f1f18, 0x016454bd, 0x01583f0a, 0x025c6151, 0x0377347c, 0x02900d4c, 0x0178c2c5, 0x03c3de99, 0x0006b3b6}}},
+ {X: Field{[10]uint32{0x023b0a5e, 0x01fe44c7, 0x004d43b2, 0x00d268c3, 0x00ff4453, 0x018e6aff, 0x00675640, 0x02b4a7ad, 0x01d99862, 0x0017caa9}}, Y: Field{[10]uint32{0x01ace144, 0x01507258, 0x02cfbce7, 0x02df7538, 0x025acfbb, 0x0116ce6c, 0x01ef9ba4, 0x002fcb67, 0x022be61d, 0x0015c7b2}}},
+ {X: Field{[10]uint32{0x00f4fd1d, 0x02079822, 0x000f5756, 0x01fe51ed, 0x01fc2c3d, 0x028ce152, 0x0393e681, 0x01756630, 0x021de6cc, 0x003b19ba}}, Y: Field{[10]uint32{0x01280f52, 0x01f6faaa, 0x025978ab, 0x027e8dc1, 0x02554073, 0x0029525e, 0x014dfa9d, 0x0210d562, 0x03db3b37, 0x0035c47f}}},
+ {X: Field{[10]uint32{0x016105fe, 0x0205a0ab, 0x007ab1a4, 0x00e31e15, 0x0169ad06, 0x03472ace, 0x003f018b, 0x01fcb666, 0x01f5aa09, 0x001ab14f}}, Y: Field{[10]uint32{0x0218a598, 0x03238159, 0x00578abf, 0x025aee82, 0x013cd517, 0x010c1e5a, 0x008f2242, 0x02e46652, 0x02815127, 0x00257da6}}},
+ {X: Field{[10]uint32{0x0396c0b0, 0x00bc4a67, 0x014fd384, 0x02142cd1, 0x0016fb5c, 0x03700b3d, 0x026dcb8f, 0x0343f711, 0x01e29e4a, 0x002a28fa}}, Y: Field{[10]uint32{0x0316dc2b, 0x00e29559, 0x03685ce1, 0x00242f78, 0x03169b8d, 0x00e535f0, 0x016d152f, 0x037a943b, 0x033e3006, 0x0037e1ba}}},
+ {X: Field{[10]uint32{0x02db251c, 0x01030f79, 0x0116632c, 0x01f0c618, 0x001dbe98, 0x03b69b7e, 0x02c84a2f, 0x01d06e57, 0x00d2a0d8, 0x001429d9}}, Y: Field{[10]uint32{0x03e41055, 0x03ed089f, 0x00a4085c, 0x03890c29, 0x0176a8c7, 0x03a6d44b, 0x027632ac, 0x005f052d, 0x03f02339, 0x002ca080}}},
+ {X: Field{[10]uint32{0x02b51ef9, 0x01d1b286, 0x013a9423, 0x021160a2, 0x011bd9c5, 0x01b8e73e, 0x0056c9fa, 0x037c749a, 0x00b15ef9, 0x0030b0c5}}, Y: Field{[10]uint32{0x012ab759, 0x0086693a, 0x01d4493e, 0x00c79c5d, 0x03a22f1e, 0x0167c22d, 0x009a9f5d, 0x037eaae5, 0x0286ff7f, 0x00289fe4}}},
+ {X: Field{[10]uint32{0x02a9d3df, 0x01aee49d, 0x01b75dbf, 0x01d4dc3f, 0x0364868b, 0x00882930, 0x03ce375e, 0x032344ac, 0x0185da44, 0x002e9955}}, Y: Field{[10]uint32{0x024fda50, 0x0198eef2, 0x0073be51, 0x0139bf22, 0x00bdd9d0, 0x00cb3127, 0x0318f614, 0x00e16f7b, 0x016ba03a, 0x000f5938}}},
+ {X: Field{[10]uint32{0x006e600e, 0x0173fbe9, 0x001c2aca, 0x004ee785, 0x0256bd0d, 0x00694403, 0x0276a650, 0x000292d6, 0x0249d4d1, 0x000f517e}}, Y: Field{[10]uint32{0x00059176, 0x02f70ad6, 0x001eced5, 0x0039cc60, 0x00da3039, 0x031d6e92, 0x01a93b13, 0x03b90b87, 0x013c38ee, 0x000024a5}}},
+ {X: Field{[10]uint32{0x008c3a8c, 0x011ac12f, 0x005964ca, 0x01fd144e, 0x0083e5ab, 0x03ecb043, 0x025d96e1, 0x030f8903, 0x0346e40d, 0x00391930}}, Y: Field{[10]uint32{0x0204cf4e, 0x03243594, 0x0390fc7a, 0x0293d5f3, 0x030ca364, 0x01d3359e, 0x02205aa3, 0x0142f4a0, 0x03461829, 0x0018fc52}}},
+ {X: Field{[10]uint32{0x02a42688, 0x010b756b, 0x001e3fdf, 0x03931ce1, 0x00d56f3f, 0x034f71c8, 0x030d218b, 0x02cc1c16, 0x012fe235, 0x000529f8}}, Y: Field{[10]uint32{0x01e9ff2a, 0x02fce8c5, 0x038099ee, 0x01266b84, 0x00eac312, 0x004de93c, 0x02a22d48, 0x03d20bb5, 0x03cc40ce, 0x0035e5a0}}},
+ {X: Field{[10]uint32{0x023828be, 0x03ec1e25, 0x01936a99, 0x00ae1757, 0x0061d2ee, 0x02cbfdbd, 0x0334ffab, 0x01cec896, 0x03b821af, 0x00239ebe}}, Y: Field{[10]uint32{0x026b1853, 0x02739f6b, 0x01ec16cc, 0x01c37b98, 0x02bb5284, 0x00838418, 0x015bea0e, 0x01da33c1, 0x03765aa0, 0x00010391}}},
+ {X: Field{[10]uint32{0x03297573, 0x0181a414, 0x002465b1, 0x015629fb, 0x017d8440, 0x03973a0a, 0x00f9f1f9, 0x02f43d2f, 0x01623227, 0x00275904}}, Y: Field{[10]uint32{0x0307fc8d, 0x030d70e6, 0x01b2c126, 0x03576974, 0x021f8630, 0x003fb027, 0x0067ea47, 0x006f95c0, 0x03a06800, 0x003b4360}}},
+ {X: Field{[10]uint32{0x03c83eaf, 0x0201625f, 0x00f0b7bd, 0x03c512bc, 0x0352bb40, 0x00f69d39, 0x025b52be, 0x02767d04, 0x02d6d9e4, 0x0019d631}}, Y: Field{[10]uint32{0x004fd292, 0x032d0d06, 0x026e36a1, 0x033351a0, 0x005f7d22, 0x0255df6f, 0x0229b3de, 0x00b0d8e8, 0x008ec2aa, 0x001d26b8}}},
+ {X: Field{[10]uint32{0x0061d73a, 0x0045452f, 0x03fb80da, 0x0066d28c, 0x01326327, 0x0293047d, 0x0193df63, 0x00b62c53, 0x01a04570, 0x0002cf84}}, Y: Field{[10]uint32{0x01d562eb, 0x01bef66a, 0x02d189a8, 0x02d8d2c8, 0x009660c6, 0x032e5c11, 0x02238928, 0x01fb0806, 0x02b12b26, 0x0031b854}}},
+ {X: Field{[10]uint32{0x026fa5f1, 0x03b56835, 0x00b98994, 0x00f08842, 0x02137bf4, 0x002e789d, 0x0371b0fe, 0x02644404, 0x01ea3b30, 0x001428c9}}, Y: Field{[10]uint32{0x0345b70e, 0x02b8500d, 0x00739dfe, 0x027009d4, 0x028a9939, 0x02ce7bfa, 0x03585279, 0x002a9629, 0x011fd39e, 0x00251b6b}}},
+ {X: Field{[10]uint32{0x015e9661, 0x0138c8ba, 0x03e39121, 0x029a91bb, 0x02a97341, 0x02b1423b, 0x02802ce8, 0x03568b3d, 0x02493bef, 0x003df23c}}, Y: Field{[10]uint32{0x0234cb67, 0x00f62347, 0x03f5d4e3, 0x039fe8fc, 0x02573883, 0x02639365, 0x00b7ec05, 0x03cdc051, 0x00c4eec1, 0x000f01cb}}},
+ {X: Field{[10]uint32{0x038f85b6, 0x01977200, 0x00cc3c89, 0x02ee1b0a, 0x0038c7e7, 0x03127a9a, 0x030b94e9, 0x00ce1bc2, 0x0350c154, 0x000c0b4e}}, Y: Field{[10]uint32{0x00310744, 0x00b496a2, 0x03720567, 0x00a3539f, 0x013588d1, 0x01b1e324, 0x0366e5a9, 0x02a8bd82, 0x03d0d891, 0x00262011}}},
+ {X: Field{[10]uint32{0x019f0eb7, 0x014edf48, 0x0386afbf, 0x03f2c363, 0x021d3810, 0x017b7a26, 0x00e8ecb5, 0x016e9834, 0x03282e7e, 0x0032e3b9}}, Y: Field{[10]uint32{0x038094cd, 0x038058ea, 0x0118e75f, 0x018381a8, 0x02bc10bd, 0x03c12470, 0x009a4e3c, 0x00426423, 0x022befad, 0x0012c13a}}},
+ {X: Field{[10]uint32{0x03d5fd42, 0x015cb533, 0x0131b211, 0x00d7e42f, 0x0174f920, 0x031ce927, 0x00f6f04a, 0x0362a883, 0x022b4a0c, 0x0019172a}}, Y: Field{[10]uint32{0x037ef5b9, 0x0320d1be, 0x010a6b6f, 0x008dfd47, 0x03b0aa13, 0x03f945b6, 0x022b64ea, 0x035f0779, 0x019635f9, 0x001e4fca}}},
+ {X: Field{[10]uint32{0x015f5a21, 0x031289ce, 0x034f3e69, 0x01ccf617, 0x00f00b1c, 0x0185f593, 0x034b8df6, 0x02d79d50, 0x002f6148, 0x00134dcd}}, Y: Field{[10]uint32{0x03a708bd, 0x01df6294, 0x01cded15, 0x0374e341, 0x034eebd7, 0x006dad99, 0x00a7db2b, 0x031c1519, 0x012bd4c5, 0x00190002}}},
+ {X: Field{[10]uint32{0x00c0e0d8, 0x024c5c06, 0x02d3dbd6, 0x00d0db9d, 0x01747a21, 0x034a2f4e, 0x02c6285e, 0x001ecad2, 0x0317024e, 0x00398d2f}}, Y: Field{[10]uint32{0x03e9f021, 0x036e1cc4, 0x00a53020, 0x03efa25f, 0x025e9660, 0x02c44e1d, 0x01d9d8b6, 0x02947b0c, 0x02de4b82, 0x003332f2}}},
+ {X: Field{[10]uint32{0x020cef38, 0x0044014d, 0x0192ba51, 0x0018eefe, 0x0264c490, 0x00c74966, 0x03ff5354, 0x03144f56, 0x01e62767, 0x00202803}}, Y: Field{[10]uint32{0x028ef572, 0x033737d8, 0x036b203f, 0x03de54c2, 0x03b2620d, 0x03f71f80, 0x027e23e8, 0x00cd9b11, 0x0189e8d7, 0x001f73ad}}},
+ {X: Field{[10]uint32{0x028f8a0f, 0x00b8b767, 0x0225d05b, 0x0197dc65, 0x02baf5b7, 0x0047571d, 0x01b8409f, 0x0143b669, 0x00e6d23d, 0x00181b54}}, Y: Field{[10]uint32{0x03b32788, 0x010d9acf, 0x00cc748c, 0x03a2edf2, 0x004cbb41, 0x0305c480, 0x001d2206, 0x02d30bf3, 0x009245b1, 0x00067d55}}},
+ {X: Field{[10]uint32{0x024f0420, 0x03583b83, 0x02a247fd, 0x020ce359, 0x02266c30, 0x0392864c, 0x03ea835a, 0x013edd29, 0x0214f7d4, 0x00272282}}, Y: Field{[10]uint32{0x01d9169a, 0x021d1679, 0x028b4d01, 0x01e8ecaf, 0x018737fc, 0x006bb74a, 0x02da6218, 0x023748c7, 0x02373157, 0x0010b1b0}}},
+ {X: Field{[10]uint32{0x0235da1c, 0x030cf6c7, 0x00e59ceb, 0x032810ea, 0x001a32d3, 0x02905e49, 0x01a01548, 0x01bd63fe, 0x00f781a4, 0x0035b33f}}, Y: Field{[10]uint32{0x021d084f, 0x037c88e1, 0x016d568b, 0x02f24409, 0x0287cbcf, 0x015c3e0c, 0x00824e61, 0x01ae362d, 0x021ace84, 0x002872ae}}},
+ {X: Field{[10]uint32{0x01f2e3c4, 0x01aeb67d, 0x000da459, 0x03b6903b, 0x006eed5d, 0x0251f234, 0x016f4464, 0x00ffc915, 0x036a3e4c, 0x00233ebc}}, Y: Field{[10]uint32{0x00f3c4d7, 0x0381a4b6, 0x031fcc80, 0x00ee5b28, 0x026b7237, 0x00419fc8, 0x03f81d1c, 0x0337f78c, 0x02ccede6, 0x002646db}}},
+ {X: Field{[10]uint32{0x03e664a0, 0x03023aed, 0x03da0541, 0x02c1245f, 0x03189849, 0x031a9b31, 0x02f39738, 0x00e82ef3, 0x01815b0f, 0x00351b0f}}, Y: Field{[10]uint32{0x0167c159, 0x033962b6, 0x026421fe, 0x02650107, 0x0158cffe, 0x02a13b60, 0x02dc9b63, 0x03975f22, 0x03b6d053, 0x000d5492}}},
+ {X: Field{[10]uint32{0x037adfff, 0x008ffb0a, 0x02f0490c, 0x01d7280b, 0x03e2ce9b, 0x0118df73, 0x02dce33e, 0x0237dfe0, 0x00a52f1f, 0x0023b5fc}}, Y: Field{[10]uint32{0x028d99ff, 0x003088d8, 0x019a55d9, 0x017509dd, 0x024be1aa, 0x037b8ed9, 0x00272253, 0x0344325b, 0x00c7b418, 0x003c0918}}},
+ {X: Field{[10]uint32{0x01aaa2ca, 0x02a17d9b, 0x02c2b0ce, 0x02ca2af4, 0x00825c46, 0x03ba8ffc, 0x03a4d6ca, 0x0146f54a, 0x02dca8a3, 0x0010cfb2}}, Y: Field{[10]uint32{0x022977e5, 0x02850bc5, 0x0038f983, 0x03f20f41, 0x03f6d396, 0x01bce438, 0x00d03c48, 0x0345dd17, 0x01bcc2d7, 0x00134edc}}},
+ {X: Field{[10]uint32{0x03a006e6, 0x02cfe72e, 0x014eb249, 0x00ec5701, 0x03ba0449, 0x007d990a, 0x01bbddd8, 0x01fe0dea, 0x02f31037, 0x00301dc7}}, Y: Field{[10]uint32{0x034ccb1e, 0x037c963b, 0x015b0784, 0x00ce98e5, 0x00e1ea2b, 0x01e35312, 0x018c6b47, 0x01a809e2, 0x01ab1d81, 0x000f94f7}}},
+ {X: Field{[10]uint32{0x03597ad7, 0x00ea7143, 0x03d238ff, 0x02a29d07, 0x0092072b, 0x00d71b36, 0x0197383e, 0x021ee54e, 0x02264a6a, 0x00370b80}}, Y: Field{[10]uint32{0x0012c74d, 0x00f07c5f, 0x00e01d8a, 0x03272f20, 0x018ddbac, 0x03d65fa1, 0x00ac0ff6, 0x03dc8d10, 0x0346ecd5, 0x002263b9}}},
+ {X: Field{[10]uint32{0x02dab771, 0x002dd81a, 0x01f0311f, 0x02cbb60e, 0x01d043d7, 0x0273678c, 0x005f7811, 0x0232fc7f, 0x023459ad, 0x0005aeb3}}, Y: Field{[10]uint32{0x002fb1c4, 0x01b077f0, 0x01243e89, 0x02c4af52, 0x0066e835, 0x00acae0d, 0x02239797, 0x025f8cb2, 0x01326ec6, 0x00003d91}}},
+ {X: Field{[10]uint32{0x0169c736, 0x017ce95f, 0x001a4072, 0x036a0e72, 0x029af55e, 0x023c00d1, 0x02539a86, 0x0050e451, 0x018f3a27, 0x002bee53}}, Y: Field{[10]uint32{0x035201d8, 0x03a2f468, 0x009cb386, 0x029d5653, 0x00bdf37f, 0x0158f5d9, 0x00a4eff7, 0x000c769c, 0x014ea455, 0x002bf6ca}}},
+ {X: Field{[10]uint32{0x00e89b74, 0x0056aa74, 0x01dc706b, 0x02017de0, 0x02ecc337, 0x0006397a, 0x01b0ae76, 0x03dfd07b, 0x02364a98, 0x002ecc74}}, Y: Field{[10]uint32{0x02031a9a, 0x029307f6, 0x01c27a92, 0x0229ee76, 0x0287cbc2, 0x01373657, 0x009f032f, 0x0331fb35, 0x00031f47, 0x00068193}}},
+ {X: Field{[10]uint32{0x004318b8, 0x00f0454f, 0x0270001c, 0x01bb5c9f, 0x03241e48, 0x03bdba0e, 0x0204ee30, 0x0176a059, 0x036c4bbf, 0x003dcec6}}, Y: Field{[10]uint32{0x008c9b17, 0x03e6e29b, 0x01ffb476, 0x03bcedf5, 0x0125ba08, 0x03006c98, 0x00ac2255, 0x0132ead6, 0x016e09d6, 0x00268a2b}}},
+ {X: Field{[10]uint32{0x01afa8a4, 0x01ba4864, 0x03313b23, 0x01983c34, 0x03708c87, 0x025816ca, 0x038ea7b6, 0x03168213, 0x0212d0dd, 0x00018ef4}}, Y: Field{[10]uint32{0x016c3e67, 0x001da631, 0x01b0fa33, 0x023b33b3, 0x0102fbca, 0x027f4d0b, 0x03bb0b3a, 0x0100c82b, 0x00f60482, 0x0003b9bd}}},
+ {X: Field{[10]uint32{0x02bc6465, 0x001fe186, 0x016299e0, 0x01761d7f, 0x00967b95, 0x031a241e, 0x02416b78, 0x020088c2, 0x022b3606, 0x0018d9f4}}, Y: Field{[10]uint32{0x029417eb, 0x00a225fd, 0x020bbec6, 0x011e4967, 0x03118d16, 0x01657e6c, 0x02444ad5, 0x01e4fc5f, 0x032d14e6, 0x0030fb87}}},
+ {X: Field{[10]uint32{0x0085976e, 0x00186a25, 0x02c4f2df, 0x003c2d8c, 0x020c922d, 0x0120e531, 0x0101e3a4, 0x03d4b95e, 0x0143fbb7, 0x001938b9}}, Y: Field{[10]uint32{0x00ab2a4c, 0x024df7ff, 0x0011b48f, 0x01093f38, 0x02895119, 0x0218e939, 0x0047e5a5, 0x01a2d3f1, 0x002e336a, 0x00190698}}},
+ {X: Field{[10]uint32{0x03fee1c6, 0x03cc0c78, 0x03f38d6b, 0x01298399, 0x02e16e82, 0x036704c8, 0x0179e869, 0x00d72347, 0x02fd18c8, 0x000b8a42}}, Y: Field{[10]uint32{0x01390f21, 0x0199161e, 0x03874962, 0x02b178dc, 0x02da18cc, 0x00a68d89, 0x0286b0ec, 0x01ad9c1d, 0x028ed2fa, 0x001fe158}}},
+ {X: Field{[10]uint32{0x00ee401e, 0x03c421cb, 0x0242b17e, 0x0333602e, 0x00c0ba2d, 0x02231ddd, 0x03229079, 0x0174f7d7, 0x008a0c47, 0x00216688}}, Y: Field{[10]uint32{0x0319f5d8, 0x009ffea2, 0x01e31336, 0x0297c4d2, 0x0384b982, 0x03e84bf3, 0x02ed1e3c, 0x01d0eb58, 0x0245778e, 0x002999f1}}},
+ {X: Field{[10]uint32{0x02bcaf21, 0x02b00a80, 0x00939b92, 0x036f64ac, 0x03b608d3, 0x00a7f718, 0x01c0b868, 0x002abbc6, 0x0108ccc5, 0x00324a46}}, Y: Field{[10]uint32{0x02cd2599, 0x023406c1, 0x0231a17d, 0x0115df18, 0x0320cb7d, 0x00bf227e, 0x01352c8b, 0x007d631c, 0x03b74711, 0x0039714a}}},
+ {X: Field{[10]uint32{0x01cefb26, 0x03507118, 0x00459b04, 0x031d6369, 0x0364bc42, 0x03c68752, 0x02b01411, 0x02d881e2, 0x009042b5, 0x00140d65}}, Y: Field{[10]uint32{0x034f04e0, 0x01147aaf, 0x02af1e5b, 0x00abdef4, 0x03347c13, 0x009cbe05, 0x00d9bd8f, 0x00193fe0, 0x023db68c, 0x003d87a0}}},
+ {X: Field{[10]uint32{0x00a4cbf3, 0x007cb7b1, 0x0343e7b6, 0x00067d17, 0x0039f29a, 0x00ed4d7b, 0x02787c35, 0x03c7ed84, 0x02e7d6a3, 0x003e6f3e}}, Y: Field{[10]uint32{0x032ff883, 0x0301e848, 0x0067b28f, 0x018abb77, 0x02a65658, 0x003f211a, 0x02d5a995, 0x035f9e40, 0x026f273a, 0x003d361b}}},
+ {X: Field{[10]uint32{0x014a9152, 0x011c0e7c, 0x01dbad77, 0x03a5fe35, 0x01602ac4, 0x001d91c5, 0x03c0004b, 0x03c143a4, 0x028b901c, 0x0000723f}}, Y: Field{[10]uint32{0x0136769c, 0x01ee031f, 0x00c4c99d, 0x009fdbdd, 0x03b42a0f, 0x02c67e1f, 0x0143b6ec, 0x00a50a48, 0x03347c45, 0x002c9776}}},
+ {X: Field{[10]uint32{0x0386f552, 0x010c4c79, 0x004dd2c5, 0x033d04af, 0x008ff676, 0x03ad4d38, 0x023947c6, 0x00ea1f4d, 0x03e14cbe, 0x0000f142}}, Y: Field{[10]uint32{0x0305a74d, 0x03b928e6, 0x032388a0, 0x00f6ed94, 0x00194f55, 0x0119b2b4, 0x02277754, 0x03d80362, 0x031c6e03, 0x00110d11}}},
+ {X: Field{[10]uint32{0x030522f5, 0x009c0bb9, 0x01409fe7, 0x02b5b677, 0x005b3e91, 0x03e322c9, 0x0168b4b4, 0x01cbe3ea, 0x01b25554, 0x0019335c}}, Y: Field{[10]uint32{0x01ede304, 0x03c5b622, 0x002af5bf, 0x00f05a1e, 0x0140350a, 0x0066f58a, 0x017fc2a8, 0x0121540b, 0x033ae9fa, 0x003c6c72}}},
+ {X: Field{[10]uint32{0x019af7a8, 0x038d0518, 0x00bccc41, 0x039f4bb2, 0x02fd8f69, 0x033102c3, 0x03dded87, 0x030d1b46, 0x0044c584, 0x00307001}}, Y: Field{[10]uint32{0x01879436, 0x0240174f, 0x0238eee0, 0x0332f1b7, 0x01f78dbc, 0x016042d8, 0x03b391ad, 0x03aec21e, 0x00943e3f, 0x00358c6d}}},
+ {X: Field{[10]uint32{0x03a2a7ed, 0x03d6558f, 0x01b96cbe, 0x00a2be5c, 0x002fbd0c, 0x02df92e8, 0x0050fd03, 0x02ed871d, 0x0182dad5, 0x003e9425}}, Y: Field{[10]uint32{0x033df4e5, 0x038acd8b, 0x03816165, 0x016cd242, 0x012acdff, 0x01af8865, 0x03890d75, 0x00bde26a, 0x0364617c, 0x00099f09}}},
+ {X: Field{[10]uint32{0x01a2386c, 0x008351b0, 0x024d0509, 0x0033df49, 0x0235175e, 0x018130b6, 0x0205f04b, 0x0249aa9b, 0x02e6864e, 0x00195773}}, Y: Field{[10]uint32{0x03ee19c8, 0x03853cb3, 0x02df72bb, 0x00e2d788, 0x025f1dc2, 0x01e596ea, 0x02d36c46, 0x00b2d2e8, 0x02dabf06, 0x00368bab}}},
+ {X: Field{[10]uint32{0x033c213e, 0x01bf02b7, 0x01beb760, 0x001b4568, 0x002cc1de, 0x03b17135, 0x03c8fbef, 0x03989025, 0x01ac1b7b, 0x001aad78}}, Y: Field{[10]uint32{0x00a9e466, 0x008c7934, 0x01d3cf36, 0x02353a02, 0x00f83392, 0x03fb37d6, 0x003e0247, 0x00c671d1, 0x03b204eb, 0x0009be60}}},
+ {X: Field{[10]uint32{0x00c25f3b, 0x02a75458, 0x01af35f5, 0x02951fbd, 0x036224e2, 0x03dceadc, 0x0373a0d3, 0x02a8b7a7, 0x029e039c, 0x0031f6a1}}, Y: Field{[10]uint32{0x00da579f, 0x010adad0, 0x0175dc79, 0x02267b08, 0x02cfdc0f, 0x01ab9312, 0x02f4cf67, 0x001f604a, 0x010249a6, 0x003a66c4}}},
+ {X: Field{[10]uint32{0x0144ef99, 0x03034852, 0x01084a9c, 0x0152fc05, 0x03e20b68, 0x03d34526, 0x028091fa, 0x00f3b7b5, 0x00a15f1c, 0x000a9b53}}, Y: Field{[10]uint32{0x02661ae0, 0x01ad8e03, 0x039b4ced, 0x03cc4fc5, 0x015cb44b, 0x029c0eb1, 0x00d92846, 0x0257a6ae, 0x0288ae92, 0x0037f09d}}},
+ {X: Field{[10]uint32{0x01c846c0, 0x018b3684, 0x015752de, 0x009c604a, 0x0292600a, 0x0079dc5a, 0x0259f70b, 0x008932a9, 0x00b3bba7, 0x00111c98}}, Y: Field{[10]uint32{0x008999bf, 0x03687837, 0x00996db8, 0x02990098, 0x038331e2, 0x00184e51, 0x000c9220, 0x00bb7a26, 0x020f33ef, 0x003c5f8f}}},
+ {X: Field{[10]uint32{0x03781969, 0x0253dbe9, 0x016fd5b9, 0x0299b94d, 0x015a8788, 0x02cc4abb, 0x00b0f441, 0x01c00e35, 0x00adbaba, 0x002336c7}}, Y: Field{[10]uint32{0x00536977, 0x01dfb75d, 0x00fa17c1, 0x0392e81b, 0x03b88750, 0x0355b080, 0x03be06d8, 0x019ceab9, 0x010e262e, 0x002ce96f}}},
+ {X: Field{[10]uint32{0x01caaefe, 0x009aa175, 0x00576851, 0x003c5d76, 0x00bc3e2c, 0x033d1b03, 0x0323e6cd, 0x03e41460, 0x0350fb60, 0x000a2f83}}, Y: Field{[10]uint32{0x022b7320, 0x03e6e8e1, 0x009de21b, 0x030fa590, 0x028d986f, 0x01a30c5d, 0x01404295, 0x02313384, 0x00f7fb18, 0x00173016}}},
+ {X: Field{[10]uint32{0x014673a0, 0x012128a6, 0x00eb6f23, 0x0189fe3c, 0x02837e22, 0x0273e0e7, 0x029218ad, 0x03eb522d, 0x00badd2d, 0x0002db73}}, Y: Field{[10]uint32{0x022de992, 0x033f533e, 0x02eafb52, 0x01daba07, 0x02496231, 0x03731cc2, 0x00aa2ab5, 0x005899dd, 0x02d7297f, 0x00387052}}},
+ {X: Field{[10]uint32{0x03766a87, 0x01c25578, 0x02e1dbe7, 0x03e4066e, 0x02b9cbb0, 0x0317f369, 0x03ecec9d, 0x03df95e9, 0x02c88813, 0x003917af}}, Y: Field{[10]uint32{0x01fbb07a, 0x004d7ac3, 0x028563ff, 0x01fc4e91, 0x03f915cc, 0x02b2eaa7, 0x03848857, 0x00de0df0, 0x00bb4ccf, 0x000e98a8}}},
+ {X: Field{[10]uint32{0x00dccdbb, 0x0087faba, 0x030eb07b, 0x001f7d97, 0x0059bc9d, 0x00adf21d, 0x00b9e552, 0x02752078, 0x037726f3, 0x0037a49b}}, Y: Field{[10]uint32{0x004d8e05, 0x00d9fd8c, 0x02ba0f5f, 0x02c75c86, 0x01115be2, 0x008e7db8, 0x03618ce1, 0x01090092, 0x02a9263d, 0x00274643}}},
+ {X: Field{[10]uint32{0x00f2caf0, 0x0280fcbb, 0x03091b54, 0x00b84c17, 0x0091e427, 0x01a5c8ad, 0x03948075, 0x027011b5, 0x03842066, 0x003dd884}}, Y: Field{[10]uint32{0x039e4914, 0x00a4f412, 0x00f6d12d, 0x00aed31f, 0x033088c9, 0x016432a8, 0x01945284, 0x03caa571, 0x00e5a227, 0x003431fa}}},
+ {X: Field{[10]uint32{0x025ce751, 0x02effa15, 0x0037d4a8, 0x03458669, 0x01a5cdb1, 0x02e83ae7, 0x00d472e8, 0x03b823d1, 0x028644ff, 0x00139e57}}, Y: Field{[10]uint32{0x0190a4e0, 0x03a0f885, 0x03549749, 0x0156672c, 0x0365038c, 0x01d47961, 0x01b4be3c, 0x01a3e6ee, 0x00e54782, 0x0014a4b6}}},
+ {X: Field{[10]uint32{0x01b50b3d, 0x0174b4b7, 0x03559bf4, 0x0237a15d, 0x01cdf75e, 0x02248d4c, 0x0333a97c, 0x02c0fcca, 0x0289a944, 0x001c3991}}, Y: Field{[10]uint32{0x00225586, 0x01349483, 0x0151a536, 0x02eea45a, 0x03925a93, 0x01c79bb7, 0x01ae263c, 0x0226928b, 0x02e5460b, 0x00299d71}}},
+ {X: Field{[10]uint32{0x0367056b, 0x02d73c96, 0x020fab08, 0x0240ee76, 0x03477ef3, 0x02d2ffc7, 0x00b8c1c8, 0x0091f803, 0x002e682b, 0x000858df}}, Y: Field{[10]uint32{0x0292d882, 0x0125e793, 0x00e04831, 0x01638934, 0x03c5716b, 0x009f60e1, 0x00c2b6c7, 0x006955f9, 0x025e3e76, 0x0038d5c5}}},
+ {X: Field{[10]uint32{0x001d1964, 0x015828e7, 0x02949a40, 0x02c5d19a, 0x03d8ae5b, 0x00062f6e, 0x01a41350, 0x034b85d0, 0x039908da, 0x001da468}}, Y: Field{[10]uint32{0x02422b74, 0x020711c2, 0x00be4d8c, 0x0038a31a, 0x03025728, 0x01db9fc9, 0x03f2296f, 0x016edb36, 0x0004b05b, 0x000897c5}}},
+ {X: Field{[10]uint32{0x01af9302, 0x0266be1e, 0x012cb698, 0x0244361d, 0x01b0d11e, 0x009faafe, 0x035a14b0, 0x0021266b, 0x02a4f395, 0x001d20c5}}, Y: Field{[10]uint32{0x03fd7ee2, 0x00c11ed6, 0x0061f179, 0x006e7a11, 0x00f600fc, 0x037628b1, 0x0187c126, 0x0027630f, 0x00d26bd7, 0x00337375}}},
+ {X: Field{[10]uint32{0x02ed9b8a, 0x03f83bfd, 0x03390c2f, 0x0146001a, 0x00a97089, 0x007814a5, 0x0084aa6c, 0x03a171b7, 0x01ab3839, 0x002bd623}}, Y: Field{[10]uint32{0x03d9cff0, 0x0055058d, 0x0081d870, 0x00d633c3, 0x01616ca1, 0x03800aab, 0x014131f5, 0x01523c9e, 0x02401b06, 0x0028f4dd}}},
+ {X: Field{[10]uint32{0x01b42dc6, 0x011b8436, 0x0253735c, 0x001dbc2d, 0x005f869d, 0x0255ca2c, 0x03617969, 0x01bfec66, 0x00603170, 0x002f6477}}, Y: Field{[10]uint32{0x00f153b2, 0x01c41d91, 0x01a6d161, 0x03df5949, 0x00cdce2c, 0x0381c21c, 0x028db8ed, 0x03d71868, 0x02d15a74, 0x000f258f}}},
+ {X: Field{[10]uint32{0x01e98f47, 0x01ccbb7b, 0x0382d985, 0x0209f7ae, 0x030c202c, 0x0132c787, 0x03aa583c, 0x002efd70, 0x00a59146, 0x00398971}}, Y: Field{[10]uint32{0x0170b72e, 0x03733056, 0x0299d7fd, 0x0187244c, 0x000812a4, 0x0392b180, 0x02505348, 0x014e5877, 0x01f9a903, 0x003409b1}}},
+ {X: Field{[10]uint32{0x03daac1c, 0x023f971f, 0x000e8ebc, 0x015f6566, 0x00122cd0, 0x0060d5f9, 0x014553c7, 0x024ebe2e, 0x03fed4b1, 0x001af489}}, Y: Field{[10]uint32{0x0221a9f9, 0x03549271, 0x039f022f, 0x012792de, 0x03c66a05, 0x0028ad39, 0x01835d3b, 0x02c1127b, 0x01400a98, 0x0017cff9}}},
+ {X: Field{[10]uint32{0x02db2609, 0x03d99907, 0x02f495cf, 0x03e5531b, 0x0068a0f0, 0x016cd39f, 0x03d3872c, 0x01bce148, 0x0225895e, 0x0009dc1e}}, Y: Field{[10]uint32{0x02a777ee, 0x0060088f, 0x0335e03a, 0x02452337, 0x01e5de5c, 0x01fd9dfa, 0x0334b38f, 0x035a5da7, 0x038ec893, 0x003bdbd3}}},
+ {X: Field{[10]uint32{0x03f0ebde, 0x005383f3, 0x026db1f3, 0x03039d51, 0x00c01770, 0x010a135f, 0x03770ea0, 0x01053aed, 0x008e3359, 0x00181489}}, Y: Field{[10]uint32{0x03f7b7a2, 0x00638ab8, 0x0312c8b1, 0x034c72e5, 0x031a1ac7, 0x02a955be, 0x0262e020, 0x03551a7e, 0x00585cf0, 0x000f6608}}},
+ {X: Field{[10]uint32{0x0370f6bc, 0x0168453c, 0x0150e6c7, 0x019a6d15, 0x034d4fc6, 0x02c8a615, 0x01825068, 0x0049305b, 0x03534fa6, 0x003cb2d6}}, Y: Field{[10]uint32{0x0241112e, 0x029d02dc, 0x008a0ad7, 0x02ef17eb, 0x038ec9dc, 0x00f31de7, 0x0152def4, 0x032b484e, 0x030763a5, 0x00173795}}},
+ {X: Field{[10]uint32{0x007a502e, 0x0342c8fa, 0x01b20aa9, 0x01453bdb, 0x0304989b, 0x01d71807, 0x00030c7a, 0x02e7e782, 0x02159fe6, 0x001deb60}}, Y: Field{[10]uint32{0x029b703d, 0x031a037a, 0x0132a87f, 0x01e266be, 0x0300c136, 0x02e87aec, 0x0056add2, 0x0124c9d2, 0x01eeffc2, 0x00249a28}}},
+ {X: Field{[10]uint32{0x028fd29d, 0x0132f252, 0x001c8a11, 0x003ee93b, 0x035cc9aa, 0x00b5e246, 0x0380fd7c, 0x03e03e9f, 0x008d171c, 0x0011061d}}, Y: Field{[10]uint32{0x031835c1, 0x02ed063e, 0x02aeebab, 0x01aa99f1, 0x029916c1, 0x009e7f9e, 0x0318322b, 0x006dfdcb, 0x028579f0, 0x000144c0}}},
+ {X: Field{[10]uint32{0x027355e0, 0x01f5f98d, 0x008831d3, 0x03ff7df4, 0x01126e59, 0x0046a09b, 0x01901b4d, 0x0321edf9, 0x01606f89, 0x0005abd2}}, Y: Field{[10]uint32{0x00b04c2e, 0x0130b353, 0x009f68ca, 0x03a943b8, 0x0012c8e8, 0x03a8ece3, 0x02131ca8, 0x008f27a3, 0x00405372, 0x000684e1}}},
+ {X: Field{[10]uint32{0x02120f9d, 0x00e4be77, 0x03e4aae6, 0x00c0d49d, 0x000730a7, 0x03606123, 0x037ba0ca, 0x00c6e33d, 0x003cab44, 0x0008b481}}, Y: Field{[10]uint32{0x011b8acd, 0x03d3dae6, 0x0145a432, 0x03263b4f, 0x034d71f9, 0x01ff33e7, 0x036520ac, 0x011b4270, 0x01ad5e5b, 0x0035de57}}},
+ {X: Field{[10]uint32{0x03676302, 0x02cc9c55, 0x017349fb, 0x022ec906, 0x0241d92c, 0x03d8912d, 0x02033602, 0x0194cdf8, 0x028b3482, 0x00015f9e}}, Y: Field{[10]uint32{0x0199b83a, 0x00a00ed1, 0x022a0975, 0x0374f473, 0x015146af, 0x02ecb951, 0x02bd2eb6, 0x0322cb0e, 0x00e8ba4b, 0x0013648e}}},
+ {X: Field{[10]uint32{0x02acc359, 0x01156c09, 0x009da9ab, 0x02093018, 0x007ea19a, 0x01776ac7, 0x02b39ed0, 0x0009f8a0, 0x03602755, 0x0011559f}}, Y: Field{[10]uint32{0x0134f5a7, 0x02e92350, 0x03d4c2fb, 0x03dfdc9b, 0x0182c1cc, 0x0104e4b7, 0x02291611, 0x0153b790, 0x015a77a3, 0x0036d57b}}},
+ {X: Field{[10]uint32{0x027fa80f, 0x03e9683d, 0x00c383e8, 0x039c68a1, 0x01798a0b, 0x02114c80, 0x001933ca, 0x024d1e77, 0x01549105, 0x0025a3ed}}, Y: Field{[10]uint32{0x00e8920e, 0x01332849, 0x00bd0b16, 0x0007740f, 0x0201c141, 0x019c60dd, 0x02d83945, 0x03d5430d, 0x02b16853, 0x00018d61}}},
+ {X: Field{[10]uint32{0x01873107, 0x0050946b, 0x02d1714c, 0x033446bc, 0x013d640a, 0x01e3dee1, 0x03ef522b, 0x00f35fc7, 0x02490f63, 0x003cd9b1}}, Y: Field{[10]uint32{0x0082c6b9, 0x03ed971d, 0x01546e56, 0x0355c46b, 0x0325b260, 0x0275057b, 0x004cfab5, 0x0262360b, 0x02af38f4, 0x0017f0e5}}},
+ {X: Field{[10]uint32{0x00201d06, 0x01a1d0ff, 0x026e9ad0, 0x0224540f, 0x0059b192, 0x00acf0a7, 0x0016effd, 0x01a2cbb7, 0x03d44a2e, 0x002a8313}}, Y: Field{[10]uint32{0x033fee33, 0x037e2dff, 0x01b82b5d, 0x028952a9, 0x002763ac, 0x01d89c34, 0x00b5c4db, 0x01e5dd19, 0x02242fba, 0x0018538c}}},
+ {X: Field{[10]uint32{0x032cc876, 0x01125223, 0x00ad2b44, 0x033cdd21, 0x01da4cbd, 0x02a0c391, 0x0057abbd, 0x033b1a47, 0x00ee19b2, 0x001b221b}}, Y: Field{[10]uint32{0x02fc16a1, 0x012e5382, 0x01cf5def, 0x025ef3cb, 0x02a197e8, 0x03b19396, 0x03eb384f, 0x037e1c21, 0x03bd9ab4, 0x000933f2}}},
+ {X: Field{[10]uint32{0x02095554, 0x005e16f1, 0x02e439a8, 0x032b7cef, 0x00fbe5e4, 0x0045b538, 0x01d1686f, 0x01dbbb20, 0x0199c33f, 0x00135800}}, Y: Field{[10]uint32{0x03ae614a, 0x0057cc97, 0x028e9dad, 0x03127c58, 0x032bf73d, 0x037fb5d0, 0x01d4321f, 0x03dc3845, 0x00ceb769, 0x0032d053}}},
+ {X: Field{[10]uint32{0x010a4fc2, 0x01689697, 0x0230aa67, 0x032b4bc8, 0x0212c3ca, 0x02d96ec5, 0x01e84724, 0x0167839c, 0x00a0196d, 0x000ddf74}}, Y: Field{[10]uint32{0x00feb560, 0x010f1d2b, 0x0338fe03, 0x00d8ad47, 0x021159c7, 0x02cd25d4, 0x03f7c270, 0x009f7297, 0x027d8c8e, 0x000b1c9f}}},
+ {X: Field{[10]uint32{0x00820f46, 0x024a2967, 0x025529ca, 0x006633cd, 0x02e8aa50, 0x036402e2, 0x031826f9, 0x037cd46e, 0x038a23af, 0x00273033}}, Y: Field{[10]uint32{0x03e67256, 0x0234d1fd, 0x031f8b06, 0x01197554, 0x00693e54, 0x0290e828, 0x0142c53e, 0x0302a320, 0x015be2aa, 0x002d5cbc}}},
+ {X: Field{[10]uint32{0x01fa3050, 0x01363b46, 0x000ead4a, 0x03aa9471, 0x024cfb01, 0x02f81107, 0x01d154a2, 0x00ac7a60, 0x02a64149, 0x0035577e}}, Y: Field{[10]uint32{0x03238ac1, 0x02cb9463, 0x012eb45f, 0x01dc30b7, 0x02da0c4c, 0x008e879c, 0x0098f315, 0x01d30aa6, 0x01cb408c, 0x000b9e57}}},
+ {X: Field{[10]uint32{0x01210fd5, 0x001b7b9f, 0x024e8463, 0x021c9e5c, 0x02e3d27e, 0x02b1b01f, 0x035efb3f, 0x00c548c1, 0x03d72d11, 0x0011afd8}}, Y: Field{[10]uint32{0x03b0b199, 0x02cb220c, 0x002fc94c, 0x00dccb8a, 0x02dc4a2e, 0x02417128, 0x03b433a2, 0x00c94df8, 0x01f230fa, 0x001dc6ec}}},
+ {X: Field{[10]uint32{0x00ca3aad, 0x000165d4, 0x03a3a13f, 0x02e306a6, 0x03594ef8, 0x01d79f0e, 0x02f1826f, 0x01f05e31, 0x038803e7, 0x0012f3f8}}, Y: Field{[10]uint32{0x021b0129, 0x02abd522, 0x009b62dd, 0x008ed1f4, 0x00ec5ea9, 0x03014e27, 0x0283cf56, 0x0119cbe8, 0x02939dcf, 0x002d558b}}},
+ {X: Field{[10]uint32{0x00c241db, 0x01d1ee36, 0x02c57df9, 0x00e477dd, 0x016255ba, 0x012eca92, 0x00ce8023, 0x01a7bb5f, 0x02f4715e, 0x00325a06}}, Y: Field{[10]uint32{0x01e038e6, 0x0087dfb3, 0x02e0828c, 0x0204c420, 0x00da530e, 0x006f72c1, 0x02bb8468, 0x0148197c, 0x01cbb03d, 0x00322c5d}}},
+ {X: Field{[10]uint32{0x02fbc33c, 0x02c5af30, 0x00101790, 0x02f531ad, 0x01bd5538, 0x02d3daba, 0x022671a3, 0x01ab1fd2, 0x021b56bd, 0x00027e82}}, Y: Field{[10]uint32{0x03129e63, 0x03f62d8c, 0x01fb5c08, 0x01a1b511, 0x0016056f, 0x0122d219, 0x00599593, 0x01f33b92, 0x02be785c, 0x0009fe7a}}},
+ {X: Field{[10]uint32{0x03d0381e, 0x03b1a91c, 0x01feaa56, 0x03caf038, 0x03a87203, 0x019de593, 0x023e7b98, 0x022ab01c, 0x01f0ca17, 0x0005410b}}, Y: Field{[10]uint32{0x010183f2, 0x03b8ef63, 0x033a1677, 0x03f49082, 0x03e271cb, 0x0050f9d7, 0x039eb59a, 0x01ac37e3, 0x0257dac8, 0x0011176d}}},
+ {X: Field{[10]uint32{0x0337e9b2, 0x022c0c87, 0x00b65eb0, 0x03403abe, 0x036b7f9d, 0x00876dd9, 0x027da3e9, 0x0061df83, 0x02630d4c, 0x000d53da}}, Y: Field{[10]uint32{0x004ea8fc, 0x026a8ac4, 0x03fea555, 0x0361942f, 0x012eb784, 0x010fbf59, 0x032f480a, 0x0202fbad, 0x003bd65b, 0x00040014}}},
+ {X: Field{[10]uint32{0x01de065c, 0x010c3166, 0x03d8ac11, 0x0139e6b8, 0x029e4ba7, 0x009c1f5b, 0x00d8864d, 0x023f0127, 0x01617a44, 0x000670d8}}, Y: Field{[10]uint32{0x009acff5, 0x001bcc26, 0x022fa4dd, 0x00605842, 0x0275742d, 0x02dca67b, 0x02f570c1, 0x03ba0653, 0x03d8fd38, 0x000be7e7}}},
+ {X: Field{[10]uint32{0x0083f88e, 0x0130519c, 0x01d395bd, 0x01ed5b39, 0x035a5080, 0x03767ea3, 0x027a2d4a, 0x02299ada, 0x008ad2ab, 0x000dce61}}, Y: Field{[10]uint32{0x01f0cbc9, 0x02058b19, 0x0151e6f5, 0x002440da, 0x01068a54, 0x00b86233, 0x01d20569, 0x000af7d3, 0x00206111, 0x001bf5c6}}},
+ {X: Field{[10]uint32{0x0010aa35, 0x018bab07, 0x01ba9500, 0x023e2b1b, 0x012dd7e5, 0x0212e13d, 0x00e66f1f, 0x008cd9f7, 0x0345261c, 0x002708b2}}, Y: Field{[10]uint32{0x012a1116, 0x02fb9901, 0x0146ec8d, 0x005c665b, 0x03605b00, 0x021b72e7, 0x00bead62, 0x02f9ca44, 0x03f58c25, 0x003fe138}}},
+ {X: Field{[10]uint32{0x01b4538e, 0x02f7525b, 0x03abbd0f, 0x0215d44f, 0x015a4127, 0x038df155, 0x00c71e45, 0x005cc9fb, 0x01c87f31, 0x0015c851}}, Y: Field{[10]uint32{0x0238871f, 0x031e4422, 0x03550242, 0x02b013a9, 0x015338c6, 0x00485523, 0x02d5166c, 0x002368ab, 0x03ac5e39, 0x00058f98}}},
+ {X: Field{[10]uint32{0x01e940ef, 0x0078c84b, 0x0285bd93, 0x036636e1, 0x034c641e, 0x006a59b1, 0x03213b75, 0x00fad63b, 0x0154d841, 0x00327c1e}}, Y: Field{[10]uint32{0x01e17fd0, 0x03061333, 0x0041d792, 0x03cfb7a4, 0x0092cf5a, 0x0026f3b3, 0x025fe7cb, 0x00f4f281, 0x00bc804f, 0x00279a11}}},
+ {X: Field{[10]uint32{0x007f25e3, 0x024684de, 0x000c3f92, 0x02a83a20, 0x01f7b0e4, 0x0016a294, 0x024a24df, 0x0228a759, 0x0346b07c, 0x002b0a5f}}, Y: Field{[10]uint32{0x01b66cbb, 0x02637a0a, 0x0185875e, 0x01ddd4f0, 0x02b1556c, 0x01297460, 0x01bbca05, 0x016b5ff4, 0x037f78e4, 0x001a1b8e}}},
+ {X: Field{[10]uint32{0x00b3e1b5, 0x025e4d26, 0x0198c218, 0x02f202f0, 0x035ad55d, 0x0087b688, 0x00274df1, 0x029a20e4, 0x013bb383, 0x0001b164}}, Y: Field{[10]uint32{0x00b9ccf1, 0x016ab78b, 0x00dc91c3, 0x02d743de, 0x0153e5b4, 0x00789295, 0x011ebf46, 0x027d28bc, 0x003ae364, 0x00152e6e}}},
+ {X: Field{[10]uint32{0x032495df, 0x03aa396b, 0x01b45cf7, 0x03f71e4f, 0x01846e3e, 0x0058f2fe, 0x0259ee92, 0x00d5afb2, 0x03a3f503, 0x002e649b}}, Y: Field{[10]uint32{0x02e2a512, 0x03e41510, 0x03047bb8, 0x0030402f, 0x01054fd0, 0x03f05781, 0x0015c511, 0x039e87b5, 0x03c533d4, 0x00035b75}}},
+ {X: Field{[10]uint32{0x00e69556, 0x01ceb61d, 0x03d5a314, 0x03314d5f, 0x03cb36ad, 0x0181cc15, 0x00ac758f, 0x02f9dff8, 0x01d2f2ca, 0x0010c974}}, Y: Field{[10]uint32{0x034904a9, 0x029f53d4, 0x01932ed5, 0x02d7116b, 0x03818c8f, 0x01833123, 0x030562d5, 0x00c57e21, 0x01682ff6, 0x003790de}}},
+ {X: Field{[10]uint32{0x00164917, 0x022a3045, 0x03f110d3, 0x037346ff, 0x00eed924, 0x0387103d, 0x03c9059c, 0x02ff292b, 0x015ffd84, 0x002860fa}}, Y: Field{[10]uint32{0x01d64b95, 0x0006ed10, 0x017f0a0d, 0x0176fbc1, 0x00c38d69, 0x0337e57b, 0x005046d4, 0x03290405, 0x0210c7ff, 0x0004715d}}},
+ {X: Field{[10]uint32{0x00d07114, 0x017a205b, 0x0009184d, 0x03f4eeaa, 0x02ab7af5, 0x0123f6f0, 0x0251414f, 0x00a3c365, 0x00d9ad65, 0x002cd034}}, Y: Field{[10]uint32{0x020dd4e1, 0x03410384, 0x01384919, 0x02a6db0f, 0x02ae2671, 0x00392da3, 0x024dfbd4, 0x01c3dfe5, 0x026a9ecd, 0x00217b5c}}},
+ {X: Field{[10]uint32{0x02719377, 0x03cd3085, 0x0240e8e6, 0x038db035, 0x00b146fa, 0x02781d74, 0x015f0a4c, 0x00be9056, 0x02883599, 0x002d4b6a}}, Y: Field{[10]uint32{0x024ad7ad, 0x0324391e, 0x029df85e, 0x020892c5, 0x004f42f0, 0x011e31e8, 0x00b5cbad, 0x00e2269b, 0x01399fa8, 0x0018222c}}},
+ {X: Field{[10]uint32{0x02b9d8ad, 0x015c268a, 0x0218d5dc, 0x00d9148e, 0x01f269ba, 0x030ad7f9, 0x03f82bf7, 0x03e23a7d, 0x011542b0, 0x000242ef}}, Y: Field{[10]uint32{0x028fc4e5, 0x039cd214, 0x00743e06, 0x02432a9a, 0x03c69584, 0x034dd0f7, 0x01461d2b, 0x00d1329c, 0x024a51af, 0x003277e4}}},
+ {X: Field{[10]uint32{0x03aa8365, 0x023a9aa8, 0x01fd2278, 0x03ed0e2c, 0x02b31c54, 0x00b24c4b, 0x03d4603f, 0x00653fb4, 0x01a81696, 0x003dcbb9}}, Y: Field{[10]uint32{0x010fde8a, 0x0305c879, 0x0307404f, 0x0331e159, 0x010e66f4, 0x035169cb, 0x03c1078c, 0x003d2e3f, 0x0182b6ca, 0x0038a58f}}},
+ {X: Field{[10]uint32{0x02b9fb53, 0x02a0e5f9, 0x01298c35, 0x0137667e, 0x0366a10f, 0x03f4d23c, 0x035d6ddd, 0x0014950b, 0x03715bc7, 0x000422ba}}, Y: Field{[10]uint32{0x0209f1ce, 0x0273c70c, 0x0145b49b, 0x01c2b1af, 0x0297b8d9, 0x00dca261, 0x036df472, 0x02381283, 0x033975a5, 0x0020e22c}}},
+ {X: Field{[10]uint32{0x0361d5b0, 0x019fedbf, 0x02e86e26, 0x000524f8, 0x00fe54c9, 0x01fd189a, 0x00a5ff5c, 0x017afe09, 0x02ed8734, 0x00370f6b}}, Y: Field{[10]uint32{0x013411e5, 0x003e2776, 0x01d56da2, 0x01e64ca9, 0x02cf0010, 0x02ad1fd9, 0x02c1683b, 0x00119c65, 0x0241238e, 0x002d69f9}}},
+ {X: Field{[10]uint32{0x0265c589, 0x01e70190, 0x03ef9381, 0x00cbe35a, 0x03a82c5f, 0x00e14fbc, 0x01e1d26e, 0x018483a0, 0x003c2be1, 0x000fe5aa}}, Y: Field{[10]uint32{0x035c64b3, 0x00dc4c5a, 0x03a0f2ea, 0x03eaebff, 0x01630ba1, 0x03ef409f, 0x020d7349, 0x03c83f56, 0x030e797c, 0x003ae34d}}},
+ {X: Field{[10]uint32{0x03f5c4f3, 0x004ee5bb, 0x038661de, 0x01febc6d, 0x03b35835, 0x00913ef8, 0x00a22780, 0x008f8c73, 0x006ce1f4, 0x0009f2be}}, Y: Field{[10]uint32{0x02b30f61, 0x03e86e28, 0x005a139b, 0x0128bcb5, 0x032187e2, 0x036f7283, 0x03ddbc23, 0x033ed18c, 0x0318647a, 0x003a3ddd}}},
+ {X: Field{[10]uint32{0x0374d04f, 0x00931883, 0x0236167a, 0x0071f020, 0x012d301a, 0x01206591, 0x007f9648, 0x021e1862, 0x03b9e241, 0x0019a073}}, Y: Field{[10]uint32{0x0015151d, 0x02d28dee, 0x017608dc, 0x01a66353, 0x03f1ce48, 0x0023447b, 0x01f521cc, 0x03a510bd, 0x033a7849, 0x0027227a}}},
+ {X: Field{[10]uint32{0x02ba8da5, 0x02c3996f, 0x0280e67f, 0x03705e57, 0x02fcac45, 0x03eeebe8, 0x02747092, 0x0118e59c, 0x00494866, 0x0019c46e}}, Y: Field{[10]uint32{0x014cfcc6, 0x00ac964a, 0x00118b81, 0x017d834b, 0x016b986a, 0x02f2a947, 0x02d8cecb, 0x017b6488, 0x003f1c8f, 0x003284b2}}},
+ {X: Field{[10]uint32{0x031dd94d, 0x0210f8ad, 0x010118b7, 0x019c89da, 0x01fdd734, 0x01a61d71, 0x03d22b05, 0x00b36e83, 0x03d0b110, 0x0017ba73}}, Y: Field{[10]uint32{0x007d7d86, 0x00087782, 0x0063aed9, 0x02522d7d, 0x02060d22, 0x026d80cc, 0x03c518f1, 0x027b9385, 0x00e5bd7f, 0x000775e9}}},
+ {X: Field{[10]uint32{0x01f4924c, 0x028fcabb, 0x01785e38, 0x0074b4b6, 0x02d7538f, 0x03408937, 0x0195a466, 0x002f9bcf, 0x017b1339, 0x00161b6b}}, Y: Field{[10]uint32{0x002b64d0, 0x0365e1b3, 0x039867be, 0x00072657, 0x00bc2fb1, 0x00467963, 0x035bd337, 0x00d6085c, 0x01a5a68a, 0x0031ddfb}}},
+ {X: Field{[10]uint32{0x025091ec, 0x01c94359, 0x02d9184f, 0x0382b63b, 0x00867f6e, 0x003771fa, 0x024b6e69, 0x004b1c64, 0x02d20fa0, 0x000169d4}}, Y: Field{[10]uint32{0x03b95db6, 0x02ba0651, 0x02d27d53, 0x025d7cb2, 0x03ec1ace, 0x01e2410b, 0x01029fc5, 0x0190a7c5, 0x032b32b3, 0x0015fc88}}},
+ {X: Field{[10]uint32{0x013e638e, 0x02a01929, 0x02e60002, 0x0381ef9c, 0x02426372, 0x01e3ac50, 0x00fef223, 0x015dfaa7, 0x02ff22bc, 0x003e4f2f}}, Y: Field{[10]uint32{0x03afe50f, 0x00d08de0, 0x00a5996f, 0x01755c64, 0x03eeadb7, 0x009e793c, 0x03166702, 0x036d0a52, 0x02bb401b, 0x002af1dc}}},
+ {X: Field{[10]uint32{0x012608a9, 0x00053a43, 0x038cc3dd, 0x03ee15ba, 0x0076052c, 0x029b98eb, 0x03c34c36, 0x0025c8bb, 0x009e9613, 0x002309cb}}, Y: Field{[10]uint32{0x024607b3, 0x03a49f9b, 0x02dfde85, 0x0058d257, 0x03731e37, 0x022d5000, 0x027d2261, 0x01c588ee, 0x016813c5, 0x002661f4}}},
+ {X: Field{[10]uint32{0x01769bc5, 0x021f0453, 0x015e23e1, 0x01327e55, 0x0038dfd8, 0x00e1b770, 0x00226c4d, 0x0150ae95, 0x00d61519, 0x002fde28}}, Y: Field{[10]uint32{0x01910280, 0x01bb262c, 0x00fe55d2, 0x01f4c56f, 0x03e16058, 0x010a567b, 0x0014b59d, 0x03020798, 0x01e4d84e, 0x00182538}}},
+ {X: Field{[10]uint32{0x02e65caa, 0x03f6e64c, 0x02b28ee1, 0x016b8c47, 0x01497aaa, 0x0109217f, 0x03ab651f, 0x00a86ffe, 0x0376cd09, 0x0016c992}}, Y: Field{[10]uint32{0x01d70d78, 0x0062381a, 0x00c84c8c, 0x008b5762, 0x021dd847, 0x015a56c1, 0x010fdc88, 0x035f0d98, 0x03594b68, 0x002513e4}}},
+ {X: Field{[10]uint32{0x0082b559, 0x03810ab0, 0x027974b7, 0x014409d3, 0x01322f71, 0x03451dc1, 0x03c14598, 0x028344ce, 0x00ea8075, 0x002891cf}}, Y: Field{[10]uint32{0x02575a18, 0x01a2a268, 0x004b5d2c, 0x00a9c212, 0x035168d3, 0x03db2416, 0x0309d794, 0x01ec1b66, 0x030db655, 0x001937a0}}},
+ {X: Field{[10]uint32{0x009efa45, 0x022a00d8, 0x02350652, 0x002028a4, 0x01f14b07, 0x01c21ef5, 0x001535da, 0x0314510d, 0x01e63dd0, 0x000f8635}}, Y: Field{[10]uint32{0x00288c5b, 0x027fd9d5, 0x030a6e1d, 0x00589aa7, 0x0026dc2f, 0x0394d1c3, 0x02fd041b, 0x01ce0be0, 0x01b97d00, 0x001ba71c}}},
+ {X: Field{[10]uint32{0x0294dfa5, 0x03d855a0, 0x0184b71a, 0x01050a16, 0x026a7674, 0x0308a421, 0x0296eb09, 0x018c56f3, 0x03cdb91e, 0x00346b36}}, Y: Field{[10]uint32{0x013da5a4, 0x03a7e218, 0x014522c9, 0x03a59ae6, 0x00accb67, 0x00f8a74f, 0x00072017, 0x00dd70fe, 0x00d89872, 0x00178ec3}}},
+ {X: Field{[10]uint32{0x0050c90d, 0x002badf6, 0x024e1a21, 0x00a3103d, 0x0125ddb0, 0x00d7b3dd, 0x02cc880a, 0x0383cad7, 0x01e29344, 0x000eaa66}}, Y: Field{[10]uint32{0x0143d42b, 0x00eaafe9, 0x01951567, 0x013b1f28, 0x01028c45, 0x027a6a20, 0x02e6fcbe, 0x0286fb74, 0x025cfbe3, 0x00334b38}}},
+ {X: Field{[10]uint32{0x01a5017d, 0x0359c258, 0x02398146, 0x0389692d, 0x033e1b31, 0x028e9b28, 0x010aa4c8, 0x00572fb3, 0x021d7c38, 0x0026288d}}, Y: Field{[10]uint32{0x0009f2bc, 0x01c4a28b, 0x00de6d39, 0x01753674, 0x01516df2, 0x035e380e, 0x00213958, 0x00304efa, 0x03780304, 0x0007ccf7}}},
+ {X: Field{[10]uint32{0x013d98d0, 0x01459d01, 0x03cc4613, 0x011ef86d, 0x03ff3482, 0x0132da72, 0x03a55628, 0x02e1c1b5, 0x018c907a, 0x0014a2e7}}, Y: Field{[10]uint32{0x01eafabd, 0x01fab4f7, 0x01051aba, 0x014c6531, 0x0129700d, 0x00028450, 0x02d67bb8, 0x015de1f1, 0x0036d666, 0x003e47ae}}},
+ {X: Field{[10]uint32{0x025029b6, 0x01b07398, 0x0193a355, 0x0398b236, 0x00f4be50, 0x02e33dcc, 0x01a6a866, 0x0034822f, 0x008d3d1b, 0x003c6b7b}}, Y: Field{[10]uint32{0x03cc7224, 0x01d07506, 0x0178f964, 0x0153822a, 0x0257e4a7, 0x00b51e55, 0x03fb61b3, 0x01860896, 0x00aac3bf, 0x0011e0c9}}},
+ {X: Field{[10]uint32{0x0124a099, 0x035429ce, 0x00f10f74, 0x0329d0aa, 0x000e0181, 0x01d752a8, 0x0070cf8d, 0x0056b106, 0x0133b1b1, 0x002acbbc}}, Y: Field{[10]uint32{0x026a91ea, 0x00a6ac15, 0x030a5756, 0x0339c29c, 0x012f2baa, 0x02302bda, 0x0149ef53, 0x03baad5e, 0x0374c584, 0x0028b11e}}},
+ {X: Field{[10]uint32{0x00576f85, 0x0326c9f8, 0x00c72348, 0x01f4446e, 0x00539a61, 0x024dc21a, 0x0120e2bf, 0x01be0ec7, 0x001af6da, 0x002753ad}}, Y: Field{[10]uint32{0x01f30eea, 0x035accf1, 0x000d7cc5, 0x031c7096, 0x0373acc3, 0x00d4cc17, 0x02dfe904, 0x03213ea2, 0x000db786, 0x003071ec}}},
+ {X: Field{[10]uint32{0x03b916d9, 0x01088a4f, 0x011d018a, 0x023e790c, 0x02a55363, 0x0367a418, 0x006dff05, 0x00b20722, 0x017f7b1b, 0x000c3b75}}, Y: Field{[10]uint32{0x00842ee7, 0x039f1291, 0x00502d44, 0x0192a8a2, 0x00f7449e, 0x02b3f38c, 0x0220b485, 0x015e8607, 0x034b16d2, 0x001af11d}}},
+ {X: Field{[10]uint32{0x01306583, 0x00715d0c, 0x0066a41d, 0x029c7a04, 0x00f10969, 0x01248053, 0x0058fc6a, 0x02e15597, 0x039d09a2, 0x000a38fa}}, Y: Field{[10]uint32{0x03bb6c2c, 0x00f23f37, 0x00e7ddc9, 0x00577d2a, 0x0359ad3c, 0x030542b8, 0x025245c8, 0x01019c03, 0x03878073, 0x003f194e}}},
+ {X: Field{[10]uint32{0x02ac75a3, 0x015c69a6, 0x00e08c91, 0x02d9d276, 0x035a3a8b, 0x03cfa098, 0x03be578f, 0x010b428b, 0x0335e3c8, 0x0032e611}}, Y: Field{[10]uint32{0x03ea8367, 0x0050a6de, 0x02268b48, 0x01efa64d, 0x004c3e25, 0x035c52bd, 0x013f977a, 0x030fd4c0, 0x00cc7181, 0x003a4d68}}},
+ {X: Field{[10]uint32{0x000fe170, 0x00146ae9, 0x037a3ed0, 0x016c82a8, 0x015e4d66, 0x021437f3, 0x0283b106, 0x001fabba, 0x02727e83, 0x000d8619}}, Y: Field{[10]uint32{0x00707a6d, 0x03be3440, 0x0124be32, 0x03cb6976, 0x01ab27cb, 0x038b2cd2, 0x014c710c, 0x037007d7, 0x02d32ae6, 0x003b189b}}},
+ {X: Field{[10]uint32{0x006b7d2e, 0x020ec5d3, 0x03136021, 0x02c8ed40, 0x034260ab, 0x032099ef, 0x02ccd54d, 0x03cd970a, 0x015e69e9, 0x002c6903}}, Y: Field{[10]uint32{0x01c186ec, 0x011cc28f, 0x027c3af0, 0x02a02eb8, 0x0331edde, 0x03bd8cba, 0x001ff894, 0x0107d490, 0x01ab2a7b, 0x001d9867}}},
+ {X: Field{[10]uint32{0x01660825, 0x02c509c5, 0x02be242e, 0x00d75308, 0x00b32a8f, 0x00988019, 0x03f0ccb2, 0x00288fa0, 0x00b3dff6, 0x002af522}}, Y: Field{[10]uint32{0x000b3a89, 0x03dfc8e1, 0x0105be1b, 0x00124684, 0x03fa9949, 0x006122ea, 0x007a463d, 0x038ebe5b, 0x00f217da, 0x001bbfe0}}},
+ {X: Field{[10]uint32{0x01d6aa22, 0x01443293, 0x00598c92, 0x0055cff9, 0x002a5721, 0x0086f6c4, 0x00979743, 0x03ad20bd, 0x0304d91c, 0x002b033e}}, Y: Field{[10]uint32{0x034582d5, 0x03958149, 0x02de81c5, 0x0129198a, 0x02395031, 0x0111d366, 0x018ae4a6, 0x0342a419, 0x01874a90, 0x001ad7db}}},
+ {X: Field{[10]uint32{0x03c34432, 0x02ebc46b, 0x008e6087, 0x03cd54a5, 0x02a3a0bf, 0x0374762f, 0x03c75410, 0x012d9da5, 0x020f476c, 0x0007ea2f}}, Y: Field{[10]uint32{0x00788d33, 0x036d6ae0, 0x01e5496d, 0x01ae3d71, 0x03fe79df, 0x02071c61, 0x0161d201, 0x011878ca, 0x00848038, 0x0031ac94}}},
+ {X: Field{[10]uint32{0x01f90e56, 0x03ed0970, 0x00ec9b29, 0x0355fa34, 0x03f336a4, 0x015717c3, 0x017d3137, 0x022626a0, 0x03c0d373, 0x000a06d0}}, Y: Field{[10]uint32{0x009f4a9c, 0x02a6ef2f, 0x03689921, 0x0111fe08, 0x03686830, 0x0089e9a9, 0x03e3db31, 0x016726dc, 0x030eba10, 0x0009ad41}}},
+ {X: Field{[10]uint32{0x008f4052, 0x02c9a532, 0x02f120f0, 0x0118aa4a, 0x013b83eb, 0x01796a0b, 0x006327f5, 0x007b11d1, 0x01e954e8, 0x0035939a}}, Y: Field{[10]uint32{0x01c8622a, 0x0251e5cf, 0x030d58f3, 0x0036bebf, 0x0227a8f0, 0x019ba952, 0x0275565f, 0x00f28a6f, 0x015f284c, 0x002a9fb5}}},
+ {X: Field{[10]uint32{0x00e7b028, 0x02f353f9, 0x03a5417b, 0x02315086, 0x01483fb5, 0x0185e08d, 0x035b0c9d, 0x0076c7c2, 0x02eed4b0, 0x003d336e}}, Y: Field{[10]uint32{0x02c63b47, 0x02eac641, 0x013021dd, 0x011e3aa4, 0x01b2b924, 0x02894022, 0x039f48c5, 0x0264137a, 0x00eb29d6, 0x0019b564}}},
+ {X: Field{[10]uint32{0x03c9dca5, 0x00ffc2a4, 0x02f4c724, 0x0334779d, 0x00761fc1, 0x01e74868, 0x02ca8090, 0x038cd03f, 0x004a6c46, 0x0023fe53}}, Y: Field{[10]uint32{0x0149abf7, 0x00236bbc, 0x0377c2ab, 0x00d2a2ed, 0x01772071, 0x021ff731, 0x0342d4f1, 0x01a38ca7, 0x00335f3c, 0x00048f77}}},
+ {X: Field{[10]uint32{0x03cf267a, 0x00fb3449, 0x01e705c3, 0x0313cabd, 0x00efed70, 0x00ed93ec, 0x007c0e62, 0x0061adfa, 0x01b46e34, 0x00031e1a}}, Y: Field{[10]uint32{0x0011f48a, 0x01c829d7, 0x01a59629, 0x0291a401, 0x03029aef, 0x0368aef5, 0x017d95d7, 0x002260bc, 0x00393662, 0x00198a55}}},
+ {X: Field{[10]uint32{0x02cce1a4, 0x02c90c41, 0x00142351, 0x01c9bbb0, 0x0309836f, 0x016d4106, 0x026ba9e2, 0x03721ef4, 0x02c60ad5, 0x00383a9d}}, Y: Field{[10]uint32{0x00eff928, 0x00f52e35, 0x03dbc5a0, 0x005f22bd, 0x016a3a44, 0x02248ad9, 0x02a620a7, 0x0126ae22, 0x00e66320, 0x0022f5c9}}},
+ {X: Field{[10]uint32{0x01e30159, 0x029fac4a, 0x027bfc6a, 0x03492d2a, 0x00e8e357, 0x0220fd4b, 0x0019f1f4, 0x022608d9, 0x02c73e5f, 0x000be98e}}, Y: Field{[10]uint32{0x00d8c3fd, 0x02c0e3ae, 0x01d517d0, 0x00a01bde, 0x007251db, 0x02d79711, 0x025b3146, 0x00fea3d6, 0x001cd632, 0x0015f858}}},
+ {X: Field{[10]uint32{0x033026a1, 0x01b4cb71, 0x0012f6aa, 0x01dec808, 0x0149d008, 0x02ede99c, 0x02783fc1, 0x0024c08b, 0x0038d4c5, 0x001d3b50}}, Y: Field{[10]uint32{0x0328476f, 0x01bf509a, 0x0035e80e, 0x0200e3a6, 0x0258234f, 0x03deff69, 0x00618e49, 0x0027a233, 0x030e65d0, 0x0016dd3d}}},
+ {X: Field{[10]uint32{0x00025f97, 0x03f4b63c, 0x01148eae, 0x03737101, 0x0216ce75, 0x03f7c83e, 0x02d1f934, 0x004f71b7, 0x00a6e387, 0x001c75ab}}, Y: Field{[10]uint32{0x0067e302, 0x00f9829c, 0x02bae0dd, 0x013688b6, 0x02072ffd, 0x0067da74, 0x00c6c4fb, 0x037f209e, 0x01337d48, 0x002d0c51}}},
+ {X: Field{[10]uint32{0x03ed5292, 0x01d2b316, 0x004ac8a1, 0x031a25c1, 0x02ee617e, 0x0100a5eb, 0x02d5720f, 0x02f27e68, 0x03f16e91, 0x000a3ed1}}, Y: Field{[10]uint32{0x00b498f7, 0x02e1293e, 0x0059e0bd, 0x03b4ae9e, 0x00ef8e7a, 0x0250f06d, 0x00db6059, 0x01caf93f, 0x0161d724, 0x003412da}}},
+ {X: Field{[10]uint32{0x0347a37a, 0x01c3b887, 0x036f8942, 0x0177898b, 0x03828c5a, 0x0269eccb, 0x02fca795, 0x016d7d74, 0x01f5c865, 0x001a3f35}}, Y: Field{[10]uint32{0x038d74ab, 0x009fcc9d, 0x01fb6d3d, 0x01395183, 0x017aa1ad, 0x029c409d, 0x032bc4e7, 0x01c59b0d, 0x02503362, 0x0015d201}}},
+ {X: Field{[10]uint32{0x01aa36da, 0x0041a165, 0x03e97491, 0x01346b1a, 0x0117c974, 0x01e9800b, 0x017f8a8a, 0x02af11fb, 0x02d2f423, 0x0031d85e}}, Y: Field{[10]uint32{0x03121d9d, 0x01fd95ed, 0x022e8d59, 0x03f281b2, 0x0269e330, 0x00cf1852, 0x027a9db8, 0x01b2b72f, 0x0367fba9, 0x00366412}}},
+ {X: Field{[10]uint32{0x02487cdd, 0x019864a9, 0x028c8df5, 0x00862c93, 0x01474fdc, 0x00966a74, 0x0278b955, 0x03f85b03, 0x029d2396, 0x0029fbd3}}, Y: Field{[10]uint32{0x02f67f28, 0x01427bd6, 0x015c1f40, 0x03753dd9, 0x0323c1e4, 0x01bc8bcd, 0x003f7e68, 0x02f81263, 0x020491c6, 0x00359e09}}},
+ {X: Field{[10]uint32{0x031e2578, 0x01ad0d9d, 0x00890eab, 0x00602789, 0x0271856d, 0x00246ecb, 0x00e420f4, 0x00d9d92b, 0x00467ff0, 0x003cef9e}}, Y: Field{[10]uint32{0x0236dbc5, 0x0198aec1, 0x03309434, 0x00e9a047, 0x010dc58f, 0x02c9fff0, 0x026966f6, 0x03cf959e, 0x025745cb, 0x003cc09d}}},
+ {X: Field{[10]uint32{0x02f0259c, 0x00fdd54d, 0x0347094d, 0x00a9385c, 0x016c8d9e, 0x03afd3cd, 0x0214c303, 0x0338a414, 0x03955bd9, 0x0017251f}}, Y: Field{[10]uint32{0x035e76cc, 0x02d729ed, 0x039c468f, 0x0235a3bc, 0x0190a81d, 0x015e2893, 0x01fdf498, 0x014a8f4b, 0x03753e75, 0x002daded}}},
+ {X: Field{[10]uint32{0x018b2c68, 0x033d02ef, 0x00c134e4, 0x02274410, 0x002c54c1, 0x0309681d, 0x01b87028, 0x01cd789e, 0x0160c3b1, 0x0008dbf6}}, Y: Field{[10]uint32{0x01bbc279, 0x02b0e416, 0x01181873, 0x02fad097, 0x01b44bac, 0x01e69db3, 0x019360eb, 0x03063743, 0x03f7c0ba, 0x0026ad66}}},
+ {X: Field{[10]uint32{0x01947b31, 0x0184ecec, 0x00d99cd7, 0x03ff2a2c, 0x02c1a9e9, 0x02e7624c, 0x01d02438, 0x038bdd96, 0x032617cc, 0x00324b27}}, Y: Field{[10]uint32{0x02357a51, 0x03f826d4, 0x0150b725, 0x037c54e7, 0x02e4804d, 0x006b38ac, 0x02707695, 0x0193ad97, 0x014c1a5e, 0x002af7aa}}},
+ {X: Field{[10]uint32{0x01a94fc0, 0x0068509b, 0x03bd28bd, 0x03a02f07, 0x02733c2a, 0x0348b0c5, 0x0383a124, 0x018230cd, 0x03c9142c, 0x00261821}}, Y: Field{[10]uint32{0x0342a1cd, 0x01844fea, 0x0068d3fa, 0x0373ac9b, 0x038f5bad, 0x01158b37, 0x0282c650, 0x02d475af, 0x03f5fd76, 0x00052496}}},
+ {X: Field{[10]uint32{0x008a1d43, 0x01e18869, 0x021bf914, 0x024e0ed0, 0x0222424e, 0x00d5942d, 0x0244e21f, 0x02eab5f1, 0x0374f4f6, 0x00119687}}, Y: Field{[10]uint32{0x0388cb48, 0x03fa48f1, 0x031579f2, 0x01ee0c91, 0x03d41c14, 0x036c0554, 0x02698d57, 0x00c2f7b9, 0x01e41794, 0x0009b69c}}},
+ {X: Field{[10]uint32{0x009796b4, 0x033b9bd7, 0x00a00785, 0x03645643, 0x03c7aa2e, 0x002d1ab6, 0x033c88bd, 0x005f113f, 0x00cdf281, 0x00375d96}}, Y: Field{[10]uint32{0x03cc43be, 0x01ecd033, 0x00f37c1c, 0x0303ddf7, 0x039a9b8a, 0x0391749f, 0x034935a8, 0x03a65c29, 0x000d1e10, 0x000c8c5f}}},
+ {X: Field{[10]uint32{0x03c72033, 0x033ae1d5, 0x02d09715, 0x022f766b, 0x006222af, 0x0097d4bf, 0x0148b177, 0x03127ad1, 0x02bfa803, 0x00156f4a}}, Y: Field{[10]uint32{0x013ebf43, 0x037f214f, 0x00e3553a, 0x02e10559, 0x0096b991, 0x0373ca95, 0x03c603b8, 0x0112ceaf, 0x03b39d73, 0x000d2b4c}}},
+ {X: Field{[10]uint32{0x0012fcde, 0x0322297b, 0x03c36db0, 0x01d90627, 0x00440068, 0x0056c787, 0x01616d30, 0x0089b232, 0x0006d10c, 0x001def97}}, Y: Field{[10]uint32{0x029ba01b, 0x03f67810, 0x037f6ec8, 0x017b6597, 0x0020e8b5, 0x000d86e7, 0x0327ae1b, 0x01252623, 0x03ca5c47, 0x00333cb2}}},
+ {X: Field{[10]uint32{0x012ab21c, 0x02dabcbd, 0x0161830d, 0x03bb52ed, 0x0180b890, 0x03a9f6f7, 0x0060b19b, 0x03c987c1, 0x00863eb6, 0x003eadc9}}, Y: Field{[10]uint32{0x0076d0b0, 0x00bdd322, 0x025c15d2, 0x03ebea76, 0x00b67f6a, 0x0276039a, 0x01174ed9, 0x00b8baaa, 0x003a408a, 0x0002453c}}},
+ {X: Field{[10]uint32{0x020b2f66, 0x02e0208a, 0x005a109d, 0x017573c4, 0x02510db6, 0x039e0c52, 0x02671f8d, 0x022e1942, 0x0039fafe, 0x0008ca88}}, Y: Field{[10]uint32{0x0178576a, 0x03cfb0ab, 0x02218d95, 0x0389934b, 0x033be3a6, 0x0085bb04, 0x03b9f6ee, 0x03078d4c, 0x0082510b, 0x0005329c}}},
+ {X: Field{[10]uint32{0x037f58e7, 0x00e41506, 0x00cfc64e, 0x028a252a, 0x01deee9f, 0x023c4f9a, 0x01847526, 0x013fde81, 0x0039612a, 0x002cd20a}}, Y: Field{[10]uint32{0x0126ae44, 0x03edc757, 0x0193a3f2, 0x00919ac4, 0x01653b82, 0x01f16378, 0x034e9faf, 0x00096c3a, 0x02eddf30, 0x001c8b40}}},
+ {X: Field{[10]uint32{0x02353210, 0x008e6596, 0x017b2858, 0x012889b7, 0x02cf6fd8, 0x024c89c4, 0x0310871a, 0x01d61f2a, 0x02570b0a, 0x0034e1ce}}, Y: Field{[10]uint32{0x0160f186, 0x01789fd4, 0x011d660e, 0x003327f0, 0x01f1f45d, 0x01578cd4, 0x03f95b1c, 0x039c1b37, 0x018459c7, 0x000edf92}}},
+ {X: Field{[10]uint32{0x022c20ad, 0x02cb6e85, 0x03281cc9, 0x030c9b72, 0x0226a049, 0x011f029e, 0x01289a71, 0x02caddc7, 0x008ceeeb, 0x00220a1e}}, Y: Field{[10]uint32{0x007b71a7, 0x0197d230, 0x0364cc8c, 0x00b77928, 0x025da2fa, 0x0125c709, 0x0398922b, 0x017c88f5, 0x01958742, 0x00390a28}}},
+ {X: Field{[10]uint32{0x027e537d, 0x002cfd3a, 0x0280a37f, 0x02d3a9d5, 0x0052f8db, 0x024fe85d, 0x0186c189, 0x030035d2, 0x013126d0, 0x001e7fb9}}, Y: Field{[10]uint32{0x002cb5b6, 0x0005ea20, 0x035a4560, 0x02fa4f56, 0x01525ceb, 0x00eaceaf, 0x017b4a14, 0x03e652d3, 0x00713143, 0x003f7940}}},
+ {X: Field{[10]uint32{0x02814e91, 0x03962a19, 0x01cbaac1, 0x0272fda6, 0x03367242, 0x000ead42, 0x00f3a8ce, 0x017de57c, 0x01f05a9f, 0x003d13ce}}, Y: Field{[10]uint32{0x019a1dd4, 0x02768c35, 0x030e3fc0, 0x01191ab1, 0x02ff75a2, 0x02aca2ee, 0x00a27afb, 0x004c0254, 0x01d1e4de, 0x002e5791}}},
+ {X: Field{[10]uint32{0x00aa9abb, 0x009bb0a0, 0x02148504, 0x02fcf0be, 0x02da45af, 0x00cb3def, 0x01d7d788, 0x0326dee2, 0x0209baf9, 0x00044e38}}, Y: Field{[10]uint32{0x006a0d6e, 0x01f9267c, 0x02f88372, 0x005c259c, 0x03ac7d59, 0x0399fcba, 0x02285207, 0x02cabc3a, 0x016a3965, 0x000570a3}}},
+ {X: Field{[10]uint32{0x00912c1e, 0x02e0fe4d, 0x02620472, 0x03c56bf0, 0x00dcd3d3, 0x02940c4c, 0x024685aa, 0x035e3183, 0x01421b98, 0x000a74fa}}, Y: Field{[10]uint32{0x02bf5825, 0x011729f4, 0x02ce1a6d, 0x019f222e, 0x01411c8c, 0x02df14ee, 0x01d46b6d, 0x0025a485, 0x00f84968, 0x00242945}}},
+ {X: Field{[10]uint32{0x00ff3eb8, 0x025a7021, 0x020c7e90, 0x022294fe, 0x01d6efeb, 0x034b51c2, 0x00c18d7c, 0x00cf813c, 0x02945fdd, 0x002a28da}}, Y: Field{[10]uint32{0x016ab564, 0x025abd7d, 0x002a9bb5, 0x03351e7c, 0x0223db1f, 0x033b872b, 0x02aedbe1, 0x0335c009, 0x0105edbf, 0x000775fe}}},
+ {X: Field{[10]uint32{0x02981eff, 0x0030849a, 0x03fd5367, 0x032a0498, 0x003c35f2, 0x00f9e81b, 0x02ab4f0c, 0x02513e43, 0x02ceb3fa, 0x00168123}}, Y: Field{[10]uint32{0x03c886ff, 0x035b52ed, 0x019b24b3, 0x0015a486, 0x008e330d, 0x03a201df, 0x03caf7b5, 0x03b59754, 0x03aeb70f, 0x000493c6}}},
+ {X: Field{[10]uint32{0x0132b8ba, 0x0204a23a, 0x031583dc, 0x03b35ca5, 0x00fd1eb4, 0x01917eb1, 0x01ee579c, 0x02f0bd99, 0x02820c5e, 0x000c81c0}}, Y: Field{[10]uint32{0x01bdaa17, 0x036b7ca1, 0x03d55b86, 0x026a00f2, 0x03c17eda, 0x022109c1, 0x03b11ee0, 0x0101fb6b, 0x022d0d68, 0x0023da59}}},
+ {X: Field{[10]uint32{0x03afe787, 0x01e91f95, 0x01786db7, 0x024c9e86, 0x02c78105, 0x0202927f, 0x0188a7b0, 0x034fc6ee, 0x025bfb04, 0x001f08a1}}, Y: Field{[10]uint32{0x0036bd3b, 0x03c1b874, 0x00d53097, 0x01c9839c, 0x03d0830b, 0x00e7c672, 0x01997344, 0x02675f55, 0x026e30f5, 0x00280bac}}},
+ {X: Field{[10]uint32{0x039385cc, 0x0384f2c2, 0x033a422d, 0x01682abc, 0x01fd842e, 0x00f730d9, 0x02c8269a, 0x02094b01, 0x001330ad, 0x00282e93}}, Y: Field{[10]uint32{0x02239bc8, 0x00a4397f, 0x00960c13, 0x00511d5a, 0x00940fdb, 0x01dee7a1, 0x036d2ce2, 0x02efdfce, 0x03135cfd, 0x00163b2a}}},
+ {X: Field{[10]uint32{0x00f76309, 0x007b08d1, 0x038194e3, 0x0121c399, 0x03007be4, 0x00b8b033, 0x03e47a41, 0x02e97723, 0x0042c8a2, 0x0010ab98}}, Y: Field{[10]uint32{0x02a1542e, 0x03c826f7, 0x02c3ce19, 0x008f2f25, 0x0336ea3a, 0x00f19119, 0x010a6e75, 0x022fc888, 0x01ac7ba3, 0x001cab5a}}},
+ {X: Field{[10]uint32{0x007b2a19, 0x000b56c2, 0x01e7c6e8, 0x00323f04, 0x01d8f35f, 0x01c081ce, 0x025d82f4, 0x01e8b8fa, 0x00b64550, 0x0023ceba}}, Y: Field{[10]uint32{0x025b4cfe, 0x034ae03b, 0x036a50d1, 0x009f4fe6, 0x03604259, 0x02e6c51c, 0x003420ef, 0x03b5506e, 0x02353028, 0x00186ee3}}},
+ {X: Field{[10]uint32{0x005df32f, 0x006d0dec, 0x004c00d9, 0x00498ab9, 0x00a7ba1e, 0x00254f9b, 0x024fb4f3, 0x00648283, 0x024b1e15, 0x000ea12e}}, Y: Field{[10]uint32{0x013e20c0, 0x02eb679f, 0x02ce7d3c, 0x03af3771, 0x0332c44e, 0x02438743, 0x023abe9c, 0x017c51ec, 0x01794352, 0x002c83d9}}},
+ {X: Field{[10]uint32{0x03316210, 0x017f6239, 0x005b62d2, 0x0204af05, 0x017b87d1, 0x03918b9f, 0x00c102bd, 0x02940cfb, 0x026c0b04, 0x0019207f}}, Y: Field{[10]uint32{0x0364560d, 0x039709e3, 0x01075b26, 0x003abbcc, 0x03d4e88b, 0x00232461, 0x036538b8, 0x00ab4245, 0x00abf5f3, 0x002f306d}}},
+ {X: Field{[10]uint32{0x0151a094, 0x004c1935, 0x02f4d1ff, 0x032b2b02, 0x038e4bd1, 0x03dceccf, 0x01cd3651, 0x0160febe, 0x0174722c, 0x00014d00}}, Y: Field{[10]uint32{0x01a66a8e, 0x02f88840, 0x00a41a3b, 0x016ebafe, 0x01d9e465, 0x021742a5, 0x0035180f, 0x0185b439, 0x0135448a, 0x00392408}}},
+ {X: Field{[10]uint32{0x022867cc, 0x003e1493, 0x0349bb35, 0x029e4372, 0x016c9ee2, 0x015ef0cb, 0x024e08bd, 0x017135b0, 0x02aea582, 0x00301a4f}}, Y: Field{[10]uint32{0x03b9a05e, 0x0217618c, 0x00a0462c, 0x022bbf83, 0x01f4f617, 0x032e3ed5, 0x006c601b, 0x01047817, 0x034b7627, 0x0036883e}}},
+ {X: Field{[10]uint32{0x00fa0d9d, 0x02dba4cf, 0x0335ca91, 0x006a0d59, 0x01e63e58, 0x02862608, 0x03f9200c, 0x00140b45, 0x037372fd, 0x00314743}}, Y: Field{[10]uint32{0x02352655, 0x02b5308b, 0x03413b3b, 0x01f4f1be, 0x03a2797a, 0x013ae5e6, 0x03ff1345, 0x01fb74b3, 0x02b207ed, 0x00234439}}},
+ {X: Field{[10]uint32{0x02c3290c, 0x005837ef, 0x0059dbe3, 0x023b674b, 0x03366600, 0x022d4ab4, 0x02f79f85, 0x0266b8b6, 0x00564d2d, 0x0005a046}}, Y: Field{[10]uint32{0x012e7460, 0x03ddee8a, 0x0202d1ad, 0x0128f021, 0x033e9cc8, 0x0148b342, 0x01dbac34, 0x01e123a0, 0x01a14561, 0x000afafc}}},
+ {X: Field{[10]uint32{0x000afeb5, 0x0125d21f, 0x01a0920a, 0x02695e0d, 0x030b1599, 0x01952a9b, 0x00e16225, 0x021496cb, 0x0133e143, 0x001eba52}}, Y: Field{[10]uint32{0x019b95f5, 0x00bd3d6f, 0x0390195a, 0x02dbd10f, 0x01a13b87, 0x038ccc6f, 0x00282a51, 0x0191684e, 0x0237830a, 0x0024644b}}},
+ {X: Field{[10]uint32{0x0019d4ac, 0x0166684c, 0x0036b179, 0x02c156cb, 0x02c27709, 0x00b46fc2, 0x014c5f6c, 0x01daac90, 0x0197d02b, 0x0039de4b}}, Y: Field{[10]uint32{0x013f2b52, 0x02e6383b, 0x02e8d16f, 0x00528a05, 0x01dd2746, 0x01755b30, 0x00c75a0d, 0x02c5e6e6, 0x02895fce, 0x0027d365}}},
+ {X: Field{[10]uint32{0x0247bde1, 0x0278d34c, 0x004f769d, 0x001bba9b, 0x003d97d7, 0x02b1e514, 0x00ff64f4, 0x0358fc93, 0x01d4946f, 0x0000bfee}}, Y: Field{[10]uint32{0x0381014f, 0x0095edfa, 0x03a9ff32, 0x00c955db, 0x02cff188, 0x038d823a, 0x016907a6, 0x0054c4af, 0x00743488, 0x00019ac7}}},
+ {X: Field{[10]uint32{0x00bb2fbe, 0x01722c7b, 0x00ea3c16, 0x02e84b80, 0x01aeb6f4, 0x012b9cd4, 0x012aafab, 0x03bac450, 0x0232f90c, 0x0011512e}}, Y: Field{[10]uint32{0x038f6736, 0x0221f2e7, 0x017b3948, 0x022e0d1e, 0x002bba53, 0x000b6eff, 0x039ede9b, 0x033ba2fe, 0x03b4c2a5, 0x0018bef5}}},
+ {X: Field{[10]uint32{0x0118980f, 0x0278f99e, 0x0137a1b0, 0x039e2093, 0x025d981c, 0x02319ed7, 0x02b156dd, 0x03fe89d7, 0x01b925d9, 0x000942c0}}, Y: Field{[10]uint32{0x0209c481, 0x03ae074f, 0x000ff261, 0x0185010b, 0x03eb1851, 0x01d98967, 0x032bcbe6, 0x036a1b94, 0x024a32f0, 0x002e8764}}},
+ {X: Field{[10]uint32{0x02beb4d2, 0x0387fb82, 0x030f5ecb, 0x004e4078, 0x0262e0b8, 0x00ba58bb, 0x00468073, 0x017f71cc, 0x02541f2a, 0x00273cc3}}, Y: Field{[10]uint32{0x01510723, 0x035528ed, 0x00741c6b, 0x03ad959f, 0x02848259, 0x02aa3fd8, 0x0201d14b, 0x02ddec65, 0x02cd1281, 0x001f2c91}}},
+ {X: Field{[10]uint32{0x02285a2c, 0x005ec695, 0x01c03cd2, 0x03293c47, 0x01b5a90e, 0x0254213b, 0x013be124, 0x0287823e, 0x00b13c61, 0x003b727a}}, Y: Field{[10]uint32{0x021e1f3d, 0x03e67f98, 0x01fda5e9, 0x02168bf7, 0x01b0e8df, 0x02320198, 0x0143b1b5, 0x03eb1d3f, 0x012107e8, 0x0019b0bf}}},
+ {X: Field{[10]uint32{0x01e2c66e, 0x020b1c3c, 0x036b6970, 0x000acf76, 0x02cae9d0, 0x009ee06e, 0x02a41649, 0x029260aa, 0x015f8388, 0x0037650a}}, Y: Field{[10]uint32{0x00d6706b, 0x03af0602, 0x00f4bfd3, 0x02c920b6, 0x033b08c2, 0x007eb20f, 0x00d9e8cb, 0x0307aa6f, 0x020cd409, 0x0020e301}}},
+ {X: Field{[10]uint32{0x0285ab7e, 0x01d14d41, 0x0087692f, 0x037742b1, 0x0296e96d, 0x02ff1cd3, 0x000d3b35, 0x02f92397, 0x0204dfc0, 0x001f81a3}}, Y: Field{[10]uint32{0x02c70d0a, 0x02100793, 0x036462c8, 0x0021e620, 0x0369351e, 0x024fc52f, 0x00052e60, 0x00972341, 0x014690d2, 0x0037cb34}}},
+ {X: Field{[10]uint32{0x009a5052, 0x010fce65, 0x0217a21f, 0x01cdf7b0, 0x00b7c2a0, 0x01b10e68, 0x02e659f7, 0x02b26c11, 0x03cfd10a, 0x001cea6f}}, Y: Field{[10]uint32{0x03be10dd, 0x01092a6c, 0x00ec24a1, 0x03da46a7, 0x03bf379d, 0x023e1b2f, 0x002062c0, 0x02c1481a, 0x01293ea7, 0x001cee45}}},
+ {X: Field{[10]uint32{0x0008c55b, 0x0211fb35, 0x0205adaa, 0x012fda6f, 0x0055cc22, 0x0216026f, 0x0234678d, 0x031d539b, 0x03840c8c, 0x003bf77f}}, Y: Field{[10]uint32{0x02f188d5, 0x01b75b70, 0x013fc173, 0x0228ed9c, 0x008aac21, 0x03116d2b, 0x026ed7e0, 0x02aacbbf, 0x03418264, 0x00197763}}},
+ {X: Field{[10]uint32{0x03d73f4b, 0x015a23af, 0x03585756, 0x016c5c69, 0x01dc264f, 0x010e1b76, 0x023d6dfa, 0x00e13634, 0x01857118, 0x0011aa51}}, Y: Field{[10]uint32{0x01aaf35c, 0x03004699, 0x02a6d256, 0x03a3a37c, 0x031e684e, 0x0239fd85, 0x03f16cb3, 0x03063d36, 0x037ea298, 0x000f796b}}},
+ {X: Field{[10]uint32{0x0021cd3f, 0x03a91fce, 0x0193b910, 0x02326b5b, 0x0045dd0c, 0x038582a5, 0x02fa17bb, 0x03099752, 0x01b27ce3, 0x001a243b}}, Y: Field{[10]uint32{0x03cbd1ab, 0x008103dd, 0x03852dd2, 0x03abad9e, 0x037c24be, 0x02a200aa, 0x00810a7c, 0x01525336, 0x005b10ef, 0x00183d1f}}},
+ {X: Field{[10]uint32{0x0205f5ae, 0x02d12d0a, 0x0288d952, 0x03087d55, 0x01e33e68, 0x01e89470, 0x02c4b328, 0x0221aa07, 0x02b6340b, 0x00023327}}, Y: Field{[10]uint32{0x007fb6eb, 0x022fc08c, 0x01c95507, 0x01c05432, 0x01f03238, 0x02f11d6e, 0x011981a3, 0x020a4224, 0x030d90e3, 0x0026c5da}}},
+ {X: Field{[10]uint32{0x015b0475, 0x007f8a92, 0x00e0b0fd, 0x03809b25, 0x01227875, 0x025b3785, 0x0001ccae, 0x03782d60, 0x035ada48, 0x000ac18b}}, Y: Field{[10]uint32{0x031eab0d, 0x00d4e40b, 0x0280548b, 0x02523bfd, 0x02da9de9, 0x02fc5c9d, 0x0097bad4, 0x01c31420, 0x00683d51, 0x0014dfc7}}},
+ {X: Field{[10]uint32{0x037240f9, 0x01ea2fae, 0x0008252d, 0x037c9fcc, 0x01cd358b, 0x0093a48c, 0x032ff7f2, 0x0354fd0c, 0x011a84b3, 0x0037556e}}, Y: Field{[10]uint32{0x012a5c94, 0x02064206, 0x0158bff6, 0x01ce8eb0, 0x01774d21, 0x037bbe5a, 0x03376094, 0x0194c3b5, 0x0208a40b, 0x00039bc6}}},
+ {X: Field{[10]uint32{0x02c59c70, 0x032592bc, 0x01e7516f, 0x02035c54, 0x008986fd, 0x01e0bb8b, 0x000cdb1c, 0x02a5e51b, 0x03e040b1, 0x002b1449}}, Y: Field{[10]uint32{0x03ae5db9, 0x017a806d, 0x038e2476, 0x025e202b, 0x038afbb0, 0x01d9164f, 0x020a82e1, 0x0014e776, 0x0249323d, 0x00212788}}},
+ {X: Field{[10]uint32{0x01311123, 0x0084b06d, 0x034bff72, 0x008c54c5, 0x039d1364, 0x038776b9, 0x004e9ce1, 0x033a68de, 0x02daf0b6, 0x0037cbcb}}, Y: Field{[10]uint32{0x006d46a5, 0x031d7dba, 0x027bedba, 0x01105880, 0x02fde6ab, 0x01991009, 0x02da64f4, 0x02f080c5, 0x038ebd78, 0x002e7663}}},
+ {X: Field{[10]uint32{0x0373e5f9, 0x03e4f5e8, 0x0002773f, 0x03d0fec2, 0x0097bdc5, 0x00844d84, 0x0385e216, 0x0305d88e, 0x0387d630, 0x003f60ec}}, Y: Field{[10]uint32{0x036cd2ee, 0x019c2daa, 0x00837d3c, 0x02f0e10e, 0x01115805, 0x0303f772, 0x03503d40, 0x00d69675, 0x027d375f, 0x0026a58a}}},
+ {X: Field{[10]uint32{0x02cac4df, 0x03ae384c, 0x00c9505f, 0x0079081b, 0x00d565ca, 0x028ffaaa, 0x02ad443b, 0x0322b22f, 0x03c1155e, 0x00363ef7}}, Y: Field{[10]uint32{0x011f73ac, 0x02697a9d, 0x03abc9cb, 0x03587e58, 0x027fb1fc, 0x03afdd90, 0x01258edf, 0x0272d1ce, 0x000fccb9, 0x003e514f}}},
+ {X: Field{[10]uint32{0x03bf86d6, 0x00443037, 0x010ddc89, 0x01cae08d, 0x0285f008, 0x01aabcf5, 0x03093891, 0x03a3006c, 0x009a20a3, 0x0027f25d}}, Y: Field{[10]uint32{0x023e19df, 0x0129e661, 0x02379109, 0x02eb9d69, 0x0075c85c, 0x0023c3c6, 0x033bca70, 0x02b1655d, 0x01a76c92, 0x0028bd9e}}},
+ {X: Field{[10]uint32{0x03476a3f, 0x032057cb, 0x00f62b58, 0x024b4dca, 0x0365b810, 0x038865ae, 0x02bcf252, 0x0073a6f6, 0x034671a9, 0x000a7838}}, Y: Field{[10]uint32{0x00d0c0e6, 0x02f5a635, 0x039d4174, 0x002aad0b, 0x011ce5ad, 0x0319ac98, 0x00a35fb9, 0x002b91e6, 0x0061b82e, 0x000bd103}}},
+ {X: Field{[10]uint32{0x02e102d7, 0x01ad4642, 0x0278f873, 0x002ea1bb, 0x007fbee7, 0x0330f7ee, 0x03e6f929, 0x015683c9, 0x02153989, 0x003901a2}}, Y: Field{[10]uint32{0x03165086, 0x0279a623, 0x014e77d6, 0x010c1d1f, 0x0016b911, 0x012a68d4, 0x01999438, 0x0272dabb, 0x02ad550f, 0x0028fcbc}}},
+ {X: Field{[10]uint32{0x026c9f2c, 0x01080a1c, 0x0109248a, 0x01934f55, 0x0010f163, 0x0132065e, 0x03156c8a, 0x0366262e, 0x0210bb1b, 0x00146d17}}, Y: Field{[10]uint32{0x03e141a2, 0x023256f8, 0x03f6bb47, 0x01452315, 0x008a1f1d, 0x00004330, 0x01ac4797, 0x03798ca0, 0x01d04225, 0x0038c1c6}}},
+ {X: Field{[10]uint32{0x02a0b83e, 0x032fe96a, 0x005acf6f, 0x00bf5683, 0x0164dc49, 0x01b18ecf, 0x02ec2e60, 0x02dad7a4, 0x01297b8a, 0x00053357}}, Y: Field{[10]uint32{0x03666805, 0x00af5df8, 0x033279b7, 0x01c0a91a, 0x015be192, 0x02c71f63, 0x01ad1faf, 0x032198d2, 0x03d77cdc, 0x0016fcc1}}},
+ {X: Field{[10]uint32{0x022c4da6, 0x03376d74, 0x0168f8c3, 0x037d067b, 0x0045e9f2, 0x027060a2, 0x02254cae, 0x03451b0c, 0x031149d6, 0x00296a29}}, Y: Field{[10]uint32{0x00bf6c2e, 0x002eeb4f, 0x012d549c, 0x0205e0cf, 0x00b003f4, 0x0158e6fc, 0x00ae6933, 0x034d16bd, 0x00877bc3, 0x0027d1f6}}},
+ {X: Field{[10]uint32{0x039372cb, 0x01303107, 0x038f999a, 0x0394b31d, 0x01bda494, 0x00519893, 0x01b13ddd, 0x0108cb5d, 0x00d24baa, 0x000d64ca}}, Y: Field{[10]uint32{0x001af6d8, 0x0206b3c9, 0x03050a78, 0x01f5923d, 0x03b6695d, 0x0323da02, 0x0084afe0, 0x00e67a64, 0x02b571df, 0x0034c555}}},
+ {X: Field{[10]uint32{0x0273e7fd, 0x03e56f79, 0x005e891a, 0x0304349b, 0x00c8fdac, 0x02407b6c, 0x0268a12d, 0x0168b05c, 0x01ca4f2a, 0x00327ae0}}, Y: Field{[10]uint32{0x008adb66, 0x034a5092, 0x008df76e, 0x0394d558, 0x035acb73, 0x026fef5a, 0x01ae19cd, 0x03fa69c4, 0x012fc974, 0x001b5294}}},
+ {X: Field{[10]uint32{0x02ca8e2c, 0x037979b0, 0x01f386cc, 0x00c093d0, 0x0248e557, 0x02d840b8, 0x00c9f90e, 0x02cc22b1, 0x01f816f3, 0x0038998c}}, Y: Field{[10]uint32{0x039306bd, 0x011857fa, 0x0224858a, 0x00502f56, 0x0396cfb8, 0x00146094, 0x01e2f102, 0x03b34059, 0x02a8823a, 0x0005b82c}}},
+ {X: Field{[10]uint32{0x019110ba, 0x020d57fe, 0x029658db, 0x03e68ec2, 0x02677e5a, 0x01a711cc, 0x0007b242, 0x039f941e, 0x02f365c0, 0x003ddba6}}, Y: Field{[10]uint32{0x012a9407, 0x032c04ef, 0x021028a0, 0x018a5ab6, 0x019d174c, 0x0217e759, 0x02f25423, 0x00593af6, 0x0039d26f, 0x002032fd}}},
+ {X: Field{[10]uint32{0x012c5dd9, 0x03d89c21, 0x03421e65, 0x01521079, 0x00bc333d, 0x02a23f38, 0x01d6ab69, 0x00520ca5, 0x005baf89, 0x00373205}}, Y: Field{[10]uint32{0x031e2a19, 0x031866bc, 0x01480cca, 0x03360362, 0x00296155, 0x000d8eec, 0x00d6cd16, 0x039ea6d0, 0x0370a620, 0x0033b6cd}}},
+ {X: Field{[10]uint32{0x0203e4fd, 0x00feb4f1, 0x03847ed3, 0x010107b6, 0x007660bc, 0x02ba4c06, 0x02a199ec, 0x01343e95, 0x013a6a1c, 0x001d9178}}, Y: Field{[10]uint32{0x0291e713, 0x01308b2f, 0x002ee186, 0x014ec8b1, 0x02bcfc53, 0x036a2434, 0x01eccbb5, 0x03975449, 0x011b7990, 0x001f23a9}}},
+ {X: Field{[10]uint32{0x022f3f25, 0x00acc627, 0x00fb4422, 0x01751788, 0x01465822, 0x00706daf, 0x027210d5, 0x02f3bebf, 0x006ed74c, 0x002e89a2}}, Y: Field{[10]uint32{0x02b3409d, 0x01436e28, 0x02893bdf, 0x009dcd67, 0x01e0b896, 0x02ee8c9b, 0x025fa64a, 0x02b7ba79, 0x01b223dd, 0x003f6217}}},
+ {X: Field{[10]uint32{0x01050fe1, 0x03486946, 0x02c92299, 0x023579e4, 0x000fc657, 0x029497a0, 0x01bda654, 0x016c7640, 0x00e13100, 0x001a2d40}}, Y: Field{[10]uint32{0x0312f96b, 0x001757da, 0x0202207e, 0x009e0f80, 0x008df9b1, 0x01f6951a, 0x01ac8e87, 0x012a53cf, 0x017ab354, 0x001c7bdf}}},
+ {X: Field{[10]uint32{0x027996ff, 0x03a9d6b6, 0x01064b84, 0x03265029, 0x035b19f7, 0x00b1be81, 0x03f851f1, 0x02a0f09f, 0x03e2613f, 0x000b3329}}, Y: Field{[10]uint32{0x03d7707f, 0x02b83cc9, 0x005703c6, 0x023c2fb5, 0x03cf37af, 0x03164e42, 0x01b2d2f0, 0x006b4343, 0x022222dd, 0x0016adc2}}},
+ {X: Field{[10]uint32{0x03179f14, 0x03d369bd, 0x033c1827, 0x03013573, 0x00383ad9, 0x032db729, 0x01af7183, 0x0291686d, 0x012d6a56, 0x001b5e5f}}, Y: Field{[10]uint32{0x000edf3f, 0x0189547a, 0x02ea67b1, 0x0078568e, 0x03b80e54, 0x035bd6a2, 0x0284bee7, 0x03463667, 0x00e5d203, 0x0002ab8d}}},
+ {X: Field{[10]uint32{0x018ee327, 0x001665ba, 0x027b5116, 0x0160157d, 0x009a565a, 0x025a94f9, 0x013751ad, 0x01dac655, 0x03c437be, 0x002a9a65}}, Y: Field{[10]uint32{0x00684835, 0x0030cf03, 0x034cb3cc, 0x01de87d3, 0x036532e2, 0x038bd7c6, 0x018a15b2, 0x0103825a, 0x00219cdb, 0x00180d29}}},
+ {X: Field{[10]uint32{0x022a0f48, 0x00316fae, 0x02dead01, 0x02137006, 0x0201e624, 0x02c3e25f, 0x005d53a7, 0x0075c28d, 0x03bffb8e, 0x0015b103}}, Y: Field{[10]uint32{0x02f0bd01, 0x032daa91, 0x01f4c458, 0x01e1f8a6, 0x01676a4a, 0x01cf632a, 0x03a0e091, 0x024a409e, 0x0389078b, 0x003a7419}}},
+ {X: Field{[10]uint32{0x03918d89, 0x0240f545, 0x010731d2, 0x00dca94d, 0x01b6e1e2, 0x02d4b0f7, 0x0262be08, 0x03b5ef70, 0x02a83963, 0x0036dbfd}}, Y: Field{[10]uint32{0x01951769, 0x02dc461f, 0x03bdc162, 0x019435d5, 0x030e248d, 0x00513283, 0x02f6b18c, 0x03f512d0, 0x02fa0f30, 0x00290044}}},
+ {X: Field{[10]uint32{0x03402c6d, 0x03286018, 0x01de4151, 0x01cdd539, 0x03dcdd11, 0x02950c04, 0x00e730d4, 0x018f88ce, 0x0301a46f, 0x00237d55}}, Y: Field{[10]uint32{0x03a1c3df, 0x0344b755, 0x02a93b9d, 0x0196f227, 0x02b3e696, 0x0122efd8, 0x016ddafb, 0x00ffc04e, 0x009a64b6, 0x001933e7}}},
+ {X: Field{[10]uint32{0x030588a1, 0x03d22806, 0x00af37be, 0x033b7896, 0x0166485c, 0x01775791, 0x03ae460e, 0x023d5d01, 0x002c5101, 0x0027442f}}, Y: Field{[10]uint32{0x00922c04, 0x0324e261, 0x02ac2fcb, 0x00baba83, 0x01726b30, 0x000f7fae, 0x01ebe44e, 0x0385c5fb, 0x0008b2a4, 0x000e3a8f}}},
+ {X: Field{[10]uint32{0x03640367, 0x02e601cd, 0x03e662e4, 0x01ec3f39, 0x02056025, 0x0080581b, 0x027a7068, 0x029e1cb2, 0x0075cc07, 0x0004eef2}}, Y: Field{[10]uint32{0x00c2c708, 0x011d2c70, 0x007697fe, 0x02bf5bd5, 0x02d2ea3d, 0x02abc6c7, 0x00a19acb, 0x00a99b63, 0x031a47c8, 0x002d3365}}},
+ {X: Field{[10]uint32{0x02a9c3e1, 0x03273257, 0x02b1e24e, 0x028c4f24, 0x011857d9, 0x00369b72, 0x0147630d, 0x02c5d372, 0x0037f617, 0x0023c9b7}}, Y: Field{[10]uint32{0x033f15ef, 0x03ddb839, 0x0375bd5c, 0x03f0554c, 0x00f887f2, 0x01646b11, 0x00238776, 0x02fc9d39, 0x03031d96, 0x000e1228}}},
+ {X: Field{[10]uint32{0x007b5f21, 0x0295e693, 0x01041ad3, 0x026c4419, 0x03a23e0d, 0x01836f84, 0x015236f6, 0x0245bd79, 0x003df290, 0x000b8795}}, Y: Field{[10]uint32{0x01473846, 0x002b4bed, 0x02d28ff1, 0x020ca3f8, 0x03947bc0, 0x00610d2d, 0x00cd9f32, 0x00176b04, 0x0127626e, 0x00221691}}},
+ {X: Field{[10]uint32{0x023f3109, 0x02020b3b, 0x0385a123, 0x0143a31e, 0x018bed8f, 0x00fada6d, 0x0076936e, 0x027aa2ee, 0x00a3e050, 0x00320f0b}}, Y: Field{[10]uint32{0x029cd5ed, 0x01f0cc4c, 0x00c0e3b0, 0x01d54c07, 0x0074b75e, 0x00276955, 0x030da10d, 0x02378ac2, 0x02a9bc80, 0x000ae580}}},
+ {X: Field{[10]uint32{0x03d29607, 0x0347eaf4, 0x02700578, 0x00724181, 0x01afee8b, 0x038e14c4, 0x024111ae, 0x005394c9, 0x03b4e2c1, 0x00231e40}}, Y: Field{[10]uint32{0x01025731, 0x011cddbc, 0x01b2528d, 0x000620a6, 0x00b488c4, 0x00a8d0fa, 0x02ebea9a, 0x03e53407, 0x02d1964d, 0x003740b6}}},
+ {X: Field{[10]uint32{0x02569cc0, 0x029a0769, 0x009bda38, 0x02199532, 0x01b51857, 0x00707ae1, 0x00adfc6c, 0x01d732cc, 0x0054dd75, 0x0012098f}}, Y: Field{[10]uint32{0x0213167f, 0x037ee204, 0x03955dda, 0x017d572d, 0x02e223ac, 0x00964dba, 0x0198e49a, 0x02d4a03b, 0x03bddacd, 0x0039bc41}}},
+ {X: Field{[10]uint32{0x02f0d2d3, 0x02c95185, 0x0227495f, 0x009f153b, 0x00accb71, 0x00f35766, 0x018644c6, 0x007d61e4, 0x010aea7d, 0x001a9f01}}, Y: Field{[10]uint32{0x0021e232, 0x01c95bb6, 0x0154628d, 0x020ed2ec, 0x02f80f73, 0x00226c32, 0x03f733dc, 0x0191b8d2, 0x026127a2, 0x003eb464}}},
+ {X: Field{[10]uint32{0x035c3ea8, 0x0168661f, 0x01a3bf10, 0x02683331, 0x030ece87, 0x00c72c27, 0x01147dcc, 0x03080b7e, 0x013f62fb, 0x00387c29}}, Y: Field{[10]uint32{0x01706277, 0x02483c79, 0x01d8dcfe, 0x024bf8b9, 0x003968f6, 0x0100dde0, 0x03148489, 0x03a8c030, 0x010f0b0e, 0x000e4c28}}},
+ {X: Field{[10]uint32{0x03182b7b, 0x00999d74, 0x0213b485, 0x0029b539, 0x02da9b6a, 0x02293219, 0x026efcae, 0x03296ff5, 0x0113cb0f, 0x002f03ec}}, Y: Field{[10]uint32{0x03090f31, 0x02871b2f, 0x0060131c, 0x01581d17, 0x0037892c, 0x00fb2c52, 0x0315f691, 0x03baef49, 0x025e6993, 0x0038479c}}},
+ {X: Field{[10]uint32{0x0342f908, 0x02c0ca72, 0x034fe266, 0x0285d284, 0x030ee7e6, 0x027ab9ed, 0x03f9ebf8, 0x023d2192, 0x00f49c43, 0x0007f968}}, Y: Field{[10]uint32{0x0275f66c, 0x03584271, 0x0379b35a, 0x012b3a6d, 0x02069451, 0x03e9ed65, 0x033878bc, 0x0190724a, 0x01cef912, 0x0036e025}}},
+ {X: Field{[10]uint32{0x02524cd4, 0x010c82aa, 0x00f6de43, 0x020cfcf2, 0x00ade6ea, 0x02afe94f, 0x02e61aae, 0x01c00be9, 0x01b49016, 0x001778ff}}, Y: Field{[10]uint32{0x007e08f0, 0x01615e45, 0x00535dc1, 0x028f57a6, 0x016d7e9c, 0x02346b0a, 0x004a1dd8, 0x035b3acd, 0x0288862a, 0x002d72f7}}},
+ {X: Field{[10]uint32{0x023da54f, 0x02ff2f00, 0x020738ad, 0x00b78865, 0x02b2964f, 0x02529916, 0x02b0be62, 0x037f3d7b, 0x0193a913, 0x0024ec1a}}, Y: Field{[10]uint32{0x012ae0b8, 0x01285352, 0x0107c4d1, 0x03607a2d, 0x029c151a, 0x0328f1f8, 0x007330ef, 0x02dd1106, 0x002f856c, 0x001e0d9e}}},
+ {X: Field{[10]uint32{0x02762f0c, 0x02de1823, 0x01851886, 0x026f8e05, 0x009c3336, 0x01ac1578, 0x005a044f, 0x001d079a, 0x000d27d9, 0x0001c15d}}, Y: Field{[10]uint32{0x033d956e, 0x01772645, 0x03c55d3f, 0x00c87eec, 0x00b2142b, 0x00a7c4ab, 0x013193b5, 0x011b1a7a, 0x03bb738d, 0x00312963}}},
+ {X: Field{[10]uint32{0x0193e296, 0x00687847, 0x0086434a, 0x019d8410, 0x02e5b787, 0x0254c3c2, 0x00a20e19, 0x015499cd, 0x0000fc48, 0x001d8668}}, Y: Field{[10]uint32{0x006ebed6, 0x02fa1b41, 0x032014f8, 0x01d5dc80, 0x01ab26f6, 0x028b3ad6, 0x03a0afe0, 0x011e73db, 0x01e1182f, 0x001fcc03}}},
+ {X: Field{[10]uint32{0x019ff2fe, 0x0150a296, 0x0060dbec, 0x02d8e139, 0x01cc0d54, 0x00a0504f, 0x01346fcd, 0x014805b3, 0x01a8ddbb, 0x003f883d}}, Y: Field{[10]uint32{0x002d879c, 0x02a4ae49, 0x02e0bae7, 0x01ead3b2, 0x01338cf4, 0x02655ec3, 0x02be551f, 0x0121c6bf, 0x02e6e260, 0x0016d222}}},
+ {X: Field{[10]uint32{0x02ad11e2, 0x03878fd0, 0x00b84422, 0x00862ae2, 0x01707681, 0x00f1d47e, 0x0129e077, 0x014b3cb7, 0x0327ba7e, 0x002656e5}}, Y: Field{[10]uint32{0x037fd26e, 0x03d71b4b, 0x0391f42a, 0x0217e416, 0x0049c8d5, 0x00a6f62e, 0x02c5e5f5, 0x0051a313, 0x01c97ee4, 0x0030f277}}},
+ {X: Field{[10]uint32{0x002b3136, 0x01f0909c, 0x02a16e26, 0x02836130, 0x01636d26, 0x01458648, 0x02913445, 0x0135f1e7, 0x024d2ca9, 0x0032d3cb}}, Y: Field{[10]uint32{0x003ddb9b, 0x021e77a0, 0x02e49bbb, 0x01c5e9a3, 0x031b9b2f, 0x03df8ae2, 0x000df480, 0x01039b3c, 0x02ee3949, 0x000857ad}}},
+ {X: Field{[10]uint32{0x01fce397, 0x00b095ae, 0x00e6fc72, 0x02757869, 0x034572b6, 0x019a3ad9, 0x00b10707, 0x024512eb, 0x025634b4, 0x0032828a}}, Y: Field{[10]uint32{0x03f4841b, 0x023ae0b4, 0x01ebfe95, 0x029c2f6d, 0x036e2562, 0x01ab69e9, 0x0098c855, 0x00beee94, 0x00c974ab, 0x002481e7}}},
+ {X: Field{[10]uint32{0x03af7c7b, 0x01ae48b8, 0x00246acd, 0x02259ed3, 0x02bfadde, 0x013bc58e, 0x02f27a02, 0x0302bf5c, 0x032dc6c0, 0x003ee08c}}, Y: Field{[10]uint32{0x0134c7ee, 0x0315032a, 0x030c660d, 0x02646733, 0x032b90d3, 0x038b12c6, 0x00beaa52, 0x02da40ce, 0x0119f21c, 0x00069a5c}}},
+ {X: Field{[10]uint32{0x00513dd2, 0x03b10a97, 0x006736af, 0x02818f6d, 0x02d07550, 0x008062f5, 0x02184a4e, 0x0237bc83, 0x0205d925, 0x003415bb}}, Y: Field{[10]uint32{0x0015bffb, 0x0366632f, 0x0031c276, 0x03135a37, 0x0389ab0f, 0x0006b5c9, 0x027cfb62, 0x038d599f, 0x01d0d222, 0x0002bcb0}}},
+ {X: Field{[10]uint32{0x02526f12, 0x028494d0, 0x007267ae, 0x004b360a, 0x01c63257, 0x02dde18d, 0x0046c594, 0x01098b10, 0x0222c658, 0x000feb6c}}, Y: Field{[10]uint32{0x0199ae96, 0x019adfb0, 0x02717586, 0x0387aae1, 0x03d181e0, 0x02875d2d, 0x00a7e8bf, 0x00474e13, 0x0007fa68, 0x00369723}}},
+ {X: Field{[10]uint32{0x019c4b61, 0x01098ec7, 0x029248ab, 0x023bed9f, 0x03214b81, 0x0274f914, 0x01915dd3, 0x03943977, 0x0169e222, 0x00349eb2}}, Y: Field{[10]uint32{0x033a1c7f, 0x02529db2, 0x03f6f9b4, 0x016b6079, 0x0209a7c5, 0x02100c8d, 0x02709a32, 0x034c15b9, 0x0294baea, 0x0031215d}}},
+ {X: Field{[10]uint32{0x02c565d4, 0x0103c05c, 0x02cbcd93, 0x00064686, 0x0399cd3a, 0x03ff5a7b, 0x03a4324b, 0x006b9a97, 0x01b48b98, 0x001048de}}, Y: Field{[10]uint32{0x00fa280e, 0x034fa1ff, 0x023abac9, 0x00ec9154, 0x03c75505, 0x02f9aad5, 0x02523e7e, 0x0393c0b2, 0x02c9c7db, 0x003c900d}}},
+ {X: Field{[10]uint32{0x039336f1, 0x037ea8fd, 0x003eace9, 0x027ec849, 0x01bef790, 0x018f4029, 0x028cc3b6, 0x01304ee6, 0x02aa9937, 0x003608d3}}, Y: Field{[10]uint32{0x02755c27, 0x03e412db, 0x00e5cb1f, 0x03e47720, 0x001845d8, 0x00a4aeaf, 0x03c15930, 0x0197d9a8, 0x028ec4b4, 0x0002e32f}}},
+ {X: Field{[10]uint32{0x01189009, 0x02ebca97, 0x03bbe47f, 0x00e8f61d, 0x00427d32, 0x03634f00, 0x000ea349, 0x03fe72eb, 0x033568c5, 0x00109be2}}, Y: Field{[10]uint32{0x0100586d, 0x010e672f, 0x03bfd7dc, 0x01fde214, 0x019931f5, 0x01f2e0ae, 0x03a1ba72, 0x00f1ee71, 0x013dce02, 0x0013808a}}},
+ {X: Field{[10]uint32{0x0097dfa5, 0x009d8291, 0x036ccfe7, 0x01bb1e03, 0x01871757, 0x0272971e, 0x012a7fdc, 0x017cb090, 0x02f902ee, 0x003c71c1}}, Y: Field{[10]uint32{0x03b7e740, 0x0173eb0a, 0x004d59f8, 0x02575ae7, 0x009ef758, 0x006826e1, 0x01787005, 0x01570ece, 0x01a1727f, 0x00317868}}},
+ {X: Field{[10]uint32{0x02c2c679, 0x03c61a4d, 0x00b67608, 0x00799d66, 0x03598200, 0x0094d5ad, 0x00d66825, 0x01661e5a, 0x007ecc1d, 0x002138b8}}, Y: Field{[10]uint32{0x0028555a, 0x01ce19b3, 0x03bb6281, 0x03dbd6d0, 0x012903f4, 0x01ff3ae9, 0x0275a8ab, 0x03b3732f, 0x03438ab5, 0x00106ac4}}},
+ {X: Field{[10]uint32{0x02ad2b54, 0x0226d01d, 0x020689c6, 0x002fbc3d, 0x023d599b, 0x028633da, 0x02bb6993, 0x01608d12, 0x02c2fe53, 0x001e4d7b}}, Y: Field{[10]uint32{0x03371910, 0x033ef554, 0x01b406c4, 0x02b78f5d, 0x01b77480, 0x0393d721, 0x00ed574f, 0x022186db, 0x016aab97, 0x00338bf2}}},
+ {X: Field{[10]uint32{0x00dbd9a0, 0x029a8c2c, 0x0383927a, 0x02250878, 0x013e8c26, 0x0368e802, 0x01abbef9, 0x01b55ade, 0x00a8319f, 0x003550a9}}, Y: Field{[10]uint32{0x038173e1, 0x01e6bb1e, 0x037a4f19, 0x00326161, 0x026badb7, 0x00654681, 0x019f3e9c, 0x0217aa3e, 0x016265d2, 0x00144128}}},
+ {X: Field{[10]uint32{0x00ece2be, 0x009f6691, 0x0232fd3c, 0x02e49bec, 0x00041011, 0x000e049b, 0x02f0157a, 0x02624012, 0x02194228, 0x002f1a49}}, Y: Field{[10]uint32{0x0252f3bc, 0x00da71ff, 0x034f9847, 0x00bb6c97, 0x0311e202, 0x032e3bdd, 0x032e8543, 0x0298c24d, 0x00c147e2, 0x00238bc4}}},
+ {X: Field{[10]uint32{0x018d8d03, 0x0086fd74, 0x03e51f45, 0x024257d0, 0x00ae079a, 0x0122ad94, 0x02cdd80b, 0x0230237a, 0x0336bb17, 0x003af86d}}, Y: Field{[10]uint32{0x01db7514, 0x0028bab3, 0x02bbb0cd, 0x0187f23b, 0x03782f20, 0x00aa049a, 0x0378ef4b, 0x01437917, 0x02590b14, 0x002b6071}}},
+ {X: Field{[10]uint32{0x01e2774c, 0x014b7b2e, 0x03e7bde1, 0x012a4e0a, 0x02666d09, 0x03e3c158, 0x01f887ad, 0x0214f93f, 0x010849e1, 0x003989ae}}, Y: Field{[10]uint32{0x034834ea, 0x004ffe43, 0x027c30f5, 0x010b1658, 0x002dca73, 0x033ee1d6, 0x02ab4062, 0x00a89c32, 0x01daa419, 0x002433d5}}},
+ {X: Field{[10]uint32{0x00381e67, 0x021ea739, 0x000b61a9, 0x0072f1eb, 0x000d8f57, 0x0291453c, 0x013b8b5b, 0x021e488c, 0x0057ba04, 0x003ee9e8}}, Y: Field{[10]uint32{0x029ec44a, 0x03b9ebb5, 0x000f718c, 0x0243b94c, 0x037cea5b, 0x016295fa, 0x005133f9, 0x014eeafc, 0x03fc1426, 0x001f4abd}}},
+ {X: Field{[10]uint32{0x00c35a54, 0x02f9a265, 0x039ea1e3, 0x01691595, 0x03023973, 0x01c0cf99, 0x02e5bdb5, 0x01460568, 0x03955b5d, 0x00051336}}, Y: Field{[10]uint32{0x0253f1e6, 0x021e9dd8, 0x02a83919, 0x023e28ba, 0x03ed0a10, 0x0204d6d2, 0x0150d2b0, 0x03f16600, 0x0389e896, 0x0039805b}}},
+ {X: Field{[10]uint32{0x003c0a24, 0x009787c6, 0x01eb681c, 0x023c099e, 0x03ad28cd, 0x02566767, 0x034a2d1a, 0x006d7b35, 0x026ee7ab, 0x00014e37}}, Y: Field{[10]uint32{0x00121004, 0x021012c5, 0x009601de, 0x01cc84f4, 0x012482b9, 0x016ce281, 0x01bac87d, 0x00464d6f, 0x03477961, 0x000db029}}},
+ {X: Field{[10]uint32{0x03c03794, 0x001856ba, 0x02f2e9d1, 0x029c152f, 0x007876eb, 0x018edd5f, 0x00a38062, 0x01cfb883, 0x030fd28f, 0x001da453}}, Y: Field{[10]uint32{0x03a12642, 0x00c1a00c, 0x0008ec39, 0x014be7e2, 0x00593307, 0x0189b18b, 0x03557861, 0x0156fc88, 0x01cae168, 0x001b7893}}},
+ {X: Field{[10]uint32{0x0234e4a7, 0x00caeaa7, 0x000af27e, 0x02eea960, 0x0186bee7, 0x03244bca, 0x015f7f96, 0x03df6bd6, 0x026cf675, 0x001a6457}}, Y: Field{[10]uint32{0x039513c9, 0x00b3c88a, 0x00d56df7, 0x006ddd9d, 0x03139bc3, 0x0374b68e, 0x0353c918, 0x026155de, 0x03c02f10, 0x0018253e}}},
+ {X: Field{[10]uint32{0x00ce3015, 0x02ea11c6, 0x03e5d859, 0x00d790a1, 0x022c37eb, 0x02e4460b, 0x0142dcfd, 0x0353f6fa, 0x020c900b, 0x0013b9b0}}, Y: Field{[10]uint32{0x0062cd64, 0x03543cc8, 0x00f7590e, 0x0319311f, 0x0142e2a9, 0x030a4f4f, 0x0338e668, 0x0186312d, 0x0369863d, 0x00212b25}}},
+ {X: Field{[10]uint32{0x00a0fa61, 0x01c5e5a2, 0x02c6ad22, 0x00442be7, 0x01aa5982, 0x01323160, 0x00e11dca, 0x03e28e3b, 0x001af57b, 0x0029a04f}}, Y: Field{[10]uint32{0x038edca4, 0x00ba0256, 0x000e1d18, 0x026f7168, 0x01d415c9, 0x0263ecbc, 0x03e2335e, 0x0258c56d, 0x034df4e2, 0x00190809}}},
+ {X: Field{[10]uint32{0x010fce84, 0x03f9aadc, 0x03d6c0fd, 0x01ddbb94, 0x0269d910, 0x01d76d27, 0x01fc7432, 0x00a25c93, 0x03b7107b, 0x00108400}}, Y: Field{[10]uint32{0x02f9427f, 0x023ccf1d, 0x0002ac21, 0x021ceaa0, 0x020a9320, 0x022f3fa9, 0x01cb1498, 0x010e570c, 0x01697b92, 0x0032e555}}},
+ {X: Field{[10]uint32{0x00c8c522, 0x002f7192, 0x02df8fc6, 0x02616d51, 0x015e1252, 0x02b3d7c9, 0x009d362e, 0x0313f100, 0x01e10cb8, 0x000272c6}}, Y: Field{[10]uint32{0x03d70d12, 0x03a253b1, 0x036231b7, 0x0382416f, 0x028fd286, 0x035f3fe1, 0x0220e70e, 0x039a2d8f, 0x01d32c6e, 0x00089c05}}},
+ {X: Field{[10]uint32{0x03b953c2, 0x00d8d8a2, 0x03704362, 0x012dd78c, 0x03c4a7ac, 0x038b3832, 0x03412d64, 0x01623ce3, 0x01968193, 0x0031d04d}}, Y: Field{[10]uint32{0x0108aa6b, 0x01d7bd2a, 0x008019ae, 0x03c949de, 0x015e1d70, 0x03b05ace, 0x02dd4c90, 0x03135b48, 0x03a01b7c, 0x001efb9f}}},
+ {X: Field{[10]uint32{0x01df22cc, 0x00b99d98, 0x02cec9dc, 0x02603a1b, 0x00c2f8e3, 0x02a5f319, 0x03ac1ea8, 0x01249ba3, 0x0205321f, 0x000aa3a2}}, Y: Field{[10]uint32{0x001fae42, 0x007ef6e6, 0x037809c8, 0x001febfd, 0x0364f0c0, 0x0034fe04, 0x0360c21c, 0x0372aab2, 0x01074e4f, 0x0018ee19}}},
+ {X: Field{[10]uint32{0x0097a14d, 0x008a4fb5, 0x02127355, 0x031f1bd9, 0x025af1d8, 0x02a38b72, 0x02ab014e, 0x00d65122, 0x02607d40, 0x003cfbcb}}, Y: Field{[10]uint32{0x022cccc9, 0x01f0c758, 0x03ca9c63, 0x012fd0f6, 0x019e9ce4, 0x0275e305, 0x01d1d964, 0x027d12f1, 0x0334214b, 0x0037f354}}},
+ {X: Field{[10]uint32{0x0057ead9, 0x0100a012, 0x0365a80e, 0x0092effa, 0x03a93964, 0x02c759c4, 0x0111b361, 0x00ce9744, 0x01c8169c, 0x001b5710}}, Y: Field{[10]uint32{0x005e84c8, 0x031522a9, 0x02a4a6a0, 0x00829486, 0x023d6742, 0x003d66f7, 0x0291d370, 0x02f0a89e, 0x00c49f01, 0x001307dd}}},
+ {X: Field{[10]uint32{0x02fff85c, 0x031c7d12, 0x03c73488, 0x00891f81, 0x01608223, 0x013f51e3, 0x01982ce3, 0x021ac0b1, 0x0261c6a9, 0x0017604a}}, Y: Field{[10]uint32{0x03a960b8, 0x036894ff, 0x001fdcc8, 0x005e2fb5, 0x00680b15, 0x03248d21, 0x0349e164, 0x023f1095, 0x037b1601, 0x000dc20f}}},
+ {X: Field{[10]uint32{0x0373093e, 0x02aa11df, 0x027d5dc6, 0x029827be, 0x01720177, 0x00a44615, 0x03a97108, 0x03cd1f0e, 0x02ecb82f, 0x00380565}}, Y: Field{[10]uint32{0x005b3bdd, 0x01faceed, 0x0177e554, 0x03061dd9, 0x03a17aca, 0x02963929, 0x00da5d06, 0x0212e74e, 0x00328498, 0x00299d32}}},
+ {X: Field{[10]uint32{0x01980f55, 0x01100b02, 0x00d0b834, 0x0183bdac, 0x00ad52b9, 0x0373fdfc, 0x032fcaea, 0x03fcb9ec, 0x01000313, 0x0019e96a}}, Y: Field{[10]uint32{0x000a4a02, 0x01c0f24f, 0x02a03f41, 0x022bae2d, 0x009fdf92, 0x01f10783, 0x00075753, 0x022197ae, 0x01db5e8e, 0x0039dfbf}}},
+ {X: Field{[10]uint32{0x0066b277, 0x0035f0d9, 0x01c217df, 0x02cd5ca0, 0x0353d77d, 0x03798960, 0x01c16477, 0x002b60a0, 0x039c2e2d, 0x000ae5a1}}, Y: Field{[10]uint32{0x00b62b25, 0x02f211a0, 0x030743cb, 0x0019e1a9, 0x027e0dae, 0x012a7f9f, 0x032408f6, 0x030caf31, 0x007343ba, 0x0037574d}}},
+ {X: Field{[10]uint32{0x010367e9, 0x038b670c, 0x02bad825, 0x012fedc9, 0x03639b05, 0x00f8f848, 0x03137aea, 0x01235cb7, 0x038df087, 0x002ae50d}}, Y: Field{[10]uint32{0x03a10f03, 0x03740610, 0x011c99e3, 0x027fcb7c, 0x017f9d76, 0x01e376bd, 0x0331865c, 0x01f446a0, 0x02244003, 0x0015e173}}},
+ {X: Field{[10]uint32{0x03e7439f, 0x02aaec10, 0x00985fa3, 0x036e1ef9, 0x012f3fd4, 0x028edb23, 0x013def6c, 0x03f78e32, 0x01560fd6, 0x001c1e09}}, Y: Field{[10]uint32{0x038ebec7, 0x02cfee05, 0x036af8f9, 0x03603e88, 0x0151894b, 0x03abd4d4, 0x01274b48, 0x01408331, 0x0365ecf1, 0x001e44ef}}},
+ {X: Field{[10]uint32{0x03ca3942, 0x028062dd, 0x01eb3e71, 0x0203bf3b, 0x036b4d5e, 0x000928fd, 0x038c72c1, 0x03541ecc, 0x0070138b, 0x000c0974}}, Y: Field{[10]uint32{0x02b470ae, 0x03759a43, 0x03096f83, 0x02558e96, 0x038d5032, 0x00a93b94, 0x00172b5f, 0x03fe56a5, 0x020e175e, 0x000ea29a}}},
+ {X: Field{[10]uint32{0x039ab0b6, 0x028f4602, 0x03ac9901, 0x02864e25, 0x02576081, 0x02a34079, 0x0069e7b2, 0x01eaee50, 0x02d065e9, 0x000ff8dc}}, Y: Field{[10]uint32{0x00842e5a, 0x00082895, 0x00c2d4c1, 0x014b3898, 0x00824035, 0x0359ed69, 0x03315e41, 0x037300dd, 0x02923154, 0x000bbf3b}}},
+ {X: Field{[10]uint32{0x02f55636, 0x03968c0a, 0x001640bc, 0x03836a04, 0x03c3c373, 0x0301af5f, 0x02be8f9c, 0x00cfba5f, 0x00113a91, 0x000da31c}}, Y: Field{[10]uint32{0x006162a8, 0x03e1ad34, 0x024a135b, 0x03969bea, 0x02eb7d70, 0x0305a5c4, 0x028b942b, 0x02a385bc, 0x00fa4870, 0x00086f50}}},
+ {X: Field{[10]uint32{0x00d96810, 0x03ab253b, 0x0100387e, 0x01a3953f, 0x0357682f, 0x02b5b5c4, 0x0040f230, 0x01793879, 0x03d8beb4, 0x001f7e3f}}, Y: Field{[10]uint32{0x002ed0df, 0x01d99f66, 0x013c9ec0, 0x0034281f, 0x03dc5555, 0x0131fff9, 0x0057d789, 0x016a6512, 0x00f9908e, 0x000f6793}}},
+ {X: Field{[10]uint32{0x036f23d4, 0x036fdf42, 0x038bbdd2, 0x01c9413e, 0x02882691, 0x026c449d, 0x02162624, 0x031fb9f0, 0x0139eb49, 0x0032dab6}}, Y: Field{[10]uint32{0x0298346d, 0x000063ba, 0x01cb345e, 0x019785e2, 0x005480ca, 0x027e399a, 0x01319c45, 0x01cd9f78, 0x00db18f2, 0x003b2181}}},
+ {X: Field{[10]uint32{0x00f4265a, 0x0263ca1c, 0x0053d390, 0x010b9a13, 0x01d8a1e0, 0x02766c81, 0x014e6a75, 0x00679b81, 0x02c80fc3, 0x0016b949}}, Y: Field{[10]uint32{0x010a9a63, 0x022185f5, 0x03850f24, 0x02af678c, 0x00a03f4b, 0x0155df02, 0x033ef80d, 0x016a433f, 0x028114c2, 0x00368784}}},
+ {X: Field{[10]uint32{0x01ff7661, 0x021ab9c9, 0x03323a87, 0x019d6e34, 0x02174777, 0x000115b5, 0x03f2b10e, 0x02eb306e, 0x008906dd, 0x0021a35e}}, Y: Field{[10]uint32{0x0322ca1d, 0x030c24eb, 0x00ef296f, 0x0120d0a8, 0x0246e6ce, 0x027051bd, 0x03e57baa, 0x0037e38a, 0x001d189b, 0x00364b5a}}},
+ {X: Field{[10]uint32{0x03686b74, 0x00762675, 0x025a4834, 0x02611f0c, 0x0223bd32, 0x01041a8c, 0x01d1f8a7, 0x0206db13, 0x034de7b8, 0x0027cbc2}}, Y: Field{[10]uint32{0x02440088, 0x013f0523, 0x016e3c44, 0x0172d1fc, 0x02deca28, 0x016158bc, 0x0329ca66, 0x012be2d5, 0x0111c297, 0x001beef5}}},
+ {X: Field{[10]uint32{0x03fca8a3, 0x0140ddb4, 0x00b4fe69, 0x03afa302, 0x02c522f5, 0x03b8babd, 0x032da983, 0x0037c56f, 0x022b813b, 0x003eabc8}}, Y: Field{[10]uint32{0x000b472e, 0x036d0751, 0x01469b2c, 0x01b175b4, 0x0147f00e, 0x013c4aaf, 0x032ae874, 0x036b1a3e, 0x02692e98, 0x002fb14f}}},
+ {X: Field{[10]uint32{0x03161475, 0x01f48a69, 0x00008fd6, 0x020293b1, 0x0313c81c, 0x01b1718b, 0x02a7ab70, 0x02e7e8b0, 0x01b9db4a, 0x001fd482}}, Y: Field{[10]uint32{0x0248d193, 0x033a82d2, 0x00ce4e69, 0x002e6b31, 0x00a58be4, 0x03c64736, 0x017d1c76, 0x01a67fce, 0x00daf9e8, 0x00284f5b}}},
+ {X: Field{[10]uint32{0x02c84c2a, 0x012fd3c4, 0x00c04683, 0x02490168, 0x0050c7b4, 0x009c0285, 0x025f395e, 0x00dbc201, 0x016e80b1, 0x003d0d85}}, Y: Field{[10]uint32{0x017e60c4, 0x022546ef, 0x020e5911, 0x002e220a, 0x00e7aa89, 0x026c01fa, 0x020807d3, 0x03806e9d, 0x03b05684, 0x00337655}}},
+ {X: Field{[10]uint32{0x00f1d06e, 0x03c70c4f, 0x0169f201, 0x0150ac93, 0x02882167, 0x00d153e9, 0x020c2bb0, 0x00df6081, 0x03495c5b, 0x003be6a9}}, Y: Field{[10]uint32{0x027a4aa9, 0x033d32bc, 0x0366654c, 0x03bf47dd, 0x0050003a, 0x0139b35f, 0x0125750e, 0x012a3eb0, 0x024df1d8, 0x003e1036}}},
+ {X: Field{[10]uint32{0x035de05a, 0x00a25bfe, 0x01d40b12, 0x0322965c, 0x016d9e1c, 0x0179e4db, 0x010809c2, 0x02e4eb0a, 0x0043e96e, 0x001f7bb7}}, Y: Field{[10]uint32{0x02a8e0ce, 0x009ad949, 0x03381220, 0x03edaf24, 0x01de6683, 0x033c4bf3, 0x027b349c, 0x03439003, 0x026627b9, 0x00399703}}},
+ {X: Field{[10]uint32{0x006d6459, 0x012cf3a6, 0x0215c0e7, 0x03d3ca0f, 0x01878384, 0x020bcd87, 0x03e74955, 0x01e5711e, 0x03156669, 0x001686fb}}, Y: Field{[10]uint32{0x00cf39ff, 0x01e711cb, 0x00d61b11, 0x020777e3, 0x0069b28b, 0x020cf8e0, 0x035b97e1, 0x000aca78, 0x02811fdb, 0x0033a616}}},
+ {X: Field{[10]uint32{0x0125fa8e, 0x014d5639, 0x0383bfa4, 0x033e12c8, 0x0173b8fd, 0x020f1beb, 0x00eeb789, 0x004f0ac5, 0x01392334, 0x0036048f}}, Y: Field{[10]uint32{0x0233ef73, 0x009a51e9, 0x00095ea2, 0x028c3256, 0x02835e35, 0x02ecf2d5, 0x03f78a5a, 0x01c8011b, 0x019d905b, 0x003aa74e}}},
+ {X: Field{[10]uint32{0x024d4bc8, 0x00c4cd03, 0x035d8939, 0x03469e9a, 0x0310d3df, 0x0026bed7, 0x02a36c39, 0x030c4099, 0x01d4f1f4, 0x0018bd0f}}, Y: Field{[10]uint32{0x0190f3ed, 0x028772ed, 0x028ef89f, 0x00a76a8b, 0x02755258, 0x00e8407c, 0x034fe225, 0x03591cb8, 0x01f1f83b, 0x002edd62}}},
+ {X: Field{[10]uint32{0x039d72f7, 0x033cc4bd, 0x01f4fcc1, 0x0111bd8b, 0x00865f6e, 0x033d6535, 0x015aa750, 0x03011450, 0x0371d549, 0x00001b3c}}, Y: Field{[10]uint32{0x01e93af4, 0x006b7172, 0x0216a758, 0x02741a33, 0x002b3dee, 0x020ad168, 0x024ce206, 0x026f4a0a, 0x022b5c97, 0x003e33ad}}},
+ {X: Field{[10]uint32{0x03cdd7e7, 0x03bf16d1, 0x01f3c509, 0x01c545af, 0x0249aeb3, 0x03e55021, 0x01638dd8, 0x03a70df0, 0x0380770b, 0x0016f5ed}}, Y: Field{[10]uint32{0x006ba9ff, 0x0242664a, 0x031e3021, 0x000ca8a2, 0x01efc12c, 0x02b74309, 0x006b91c5, 0x02abd3d8, 0x00488a87, 0x00351b1e}}},
+ {X: Field{[10]uint32{0x036b6a62, 0x02fcf6f0, 0x001af0e6, 0x01ffc55a, 0x0081eecd, 0x02e566e8, 0x02086653, 0x02f52b96, 0x0154a319, 0x0031dc12}}, Y: Field{[10]uint32{0x016d0fe7, 0x00ecf294, 0x0337836e, 0x0002c571, 0x03e508f6, 0x02273312, 0x013b9c61, 0x012ea0fd, 0x03e82478, 0x000dcd50}}},
+ {X: Field{[10]uint32{0x01b19cda, 0x0371b40e, 0x039588fe, 0x02342790, 0x02d6e92c, 0x0040b07b, 0x007da707, 0x00ea7760, 0x03fe4153, 0x000ad3c9}}, Y: Field{[10]uint32{0x001fb424, 0x038ab67e, 0x01d6b089, 0x02009005, 0x0049ba21, 0x024bd30c, 0x01fadd4a, 0x01f2c704, 0x03100ecd, 0x00262ea0}}},
+ {X: Field{[10]uint32{0x014c0e5a, 0x001b2297, 0x03db54d3, 0x0204f5f0, 0x032c920c, 0x01a4c7e5, 0x000c581d, 0x030d3498, 0x01710b3d, 0x00039f50}}, Y: Field{[10]uint32{0x029a409a, 0x00513c92, 0x011f75b6, 0x01c74735, 0x0303e75b, 0x0169b128, 0x03a97efb, 0x014e1e67, 0x01ba9a82, 0x002ca560}}},
+ {X: Field{[10]uint32{0x01c5d52e, 0x0198357c, 0x0284b2b5, 0x0187a01b, 0x032face7, 0x01a89c5f, 0x02700435, 0x00d5dc14, 0x022c18f4, 0x001880c0}}, Y: Field{[10]uint32{0x036a720d, 0x02021944, 0x024eb06c, 0x035aaa21, 0x020212ef, 0x0150ae5f, 0x035fe973, 0x0135d409, 0x03255d0a, 0x0006294b}}},
+ {X: Field{[10]uint32{0x02e43b2b, 0x00700124, 0x026300e8, 0x01e5e479, 0x02489876, 0x02c3f332, 0x02327fe3, 0x02036e83, 0x03a28c1c, 0x002f6071}}, Y: Field{[10]uint32{0x003871c0, 0x0388d1e0, 0x00678db1, 0x02b3a4ea, 0x02416064, 0x03c6154d, 0x00831f07, 0x02f19278, 0x004ea14b, 0x0032942a}}},
+ {X: Field{[10]uint32{0x004bc29a, 0x01aa6d3f, 0x0154a062, 0x0139bce9, 0x01b875eb, 0x000e9b83, 0x01385cd6, 0x00e43f34, 0x021ad3c1, 0x0026f10f}}, Y: Field{[10]uint32{0x00cb2cd4, 0x00b9a9b8, 0x0222e6b1, 0x02f763d2, 0x0264ea39, 0x01e5c5ec, 0x00d8b34b, 0x012ed5eb, 0x00bf9aa5, 0x00215e96}}},
+ {X: Field{[10]uint32{0x03e40f33, 0x01da7329, 0x039082c8, 0x01c7195b, 0x015e5bfb, 0x0262fea8, 0x030117cb, 0x038f1e7b, 0x028d194d, 0x000c1569}}, Y: Field{[10]uint32{0x000d1d10, 0x008cf90d, 0x0086c1c9, 0x01ca9ff8, 0x00acbd8c, 0x01aae9af, 0x00218cfb, 0x038712fc, 0x01eadfeb, 0x000060fe}}},
+ {X: Field{[10]uint32{0x034b08ac, 0x01e7eedc, 0x03e1b710, 0x00c5f62e, 0x002cec12, 0x00d60ee0, 0x02710724, 0x03462324, 0x0184ad1f, 0x0012b6fe}}, Y: Field{[10]uint32{0x03ec04e6, 0x013578f5, 0x01954709, 0x02dbde7d, 0x032192ce, 0x038fcb42, 0x01507668, 0x033bfcf6, 0x01889560, 0x0005149c}}},
+ {X: Field{[10]uint32{0x016487cc, 0x01947469, 0x00b0cd00, 0x00daa81d, 0x0283fc6a, 0x033c5b48, 0x03ae3979, 0x0107671e, 0x01cc27e0, 0x000e3dcb}}, Y: Field{[10]uint32{0x033dc0bf, 0x01830ea4, 0x0188df71, 0x0110b946, 0x02496104, 0x002dbff1, 0x030d6f2c, 0x001b904d, 0x017c33a1, 0x00148e32}}},
+ {X: Field{[10]uint32{0x015be2d3, 0x00623199, 0x03813322, 0x011d1f09, 0x02045606, 0x03167fca, 0x0013828a, 0x03f78285, 0x018a7bdf, 0x0037956f}}, Y: Field{[10]uint32{0x0042d9da, 0x034eed40, 0x0151ce65, 0x0146e65b, 0x0367bf9d, 0x01ec2bed, 0x039d0979, 0x0097cdd7, 0x01b0df5b, 0x0011de18}}},
+ {X: Field{[10]uint32{0x023bcc66, 0x026e2797, 0x03893873, 0x03a9b159, 0x02e19340, 0x019bfa44, 0x00edf986, 0x000ae246, 0x00fdc47e, 0x003185ef}}, Y: Field{[10]uint32{0x01117072, 0x0098d259, 0x00d473b8, 0x01cad6c2, 0x01a6e046, 0x01133f12, 0x020f4e86, 0x01da0cab, 0x0117357e, 0x002e42e8}}},
+ {X: Field{[10]uint32{0x01c84758, 0x02aceefc, 0x036724ad, 0x036fb2b6, 0x03c455f4, 0x024acc0c, 0x02402f1e, 0x0223252d, 0x01961b51, 0x00119570}}, Y: Field{[10]uint32{0x02fbc4a0, 0x0071b779, 0x01b5cf2c, 0x0300a0e2, 0x02714600, 0x012f017a, 0x0202df4f, 0x017d37ec, 0x0093a257, 0x000f3bb3}}},
+ {X: Field{[10]uint32{0x03726a45, 0x021ba375, 0x004c9e5f, 0x00c67077, 0x00110df4, 0x02ad0f68, 0x013c503f, 0x0396b4da, 0x0340dc05, 0x003f2a43}}, Y: Field{[10]uint32{0x035771ca, 0x0321bf17, 0x021c3e6c, 0x03b1a323, 0x027478ed, 0x0269c29b, 0x0337aeb1, 0x0198106b, 0x039bbe3e, 0x003d608b}}},
+ {X: Field{[10]uint32{0x027f61e9, 0x03c546f4, 0x00afb93f, 0x0015e31f, 0x02a31cbe, 0x02434ecf, 0x01e88d7f, 0x020961de, 0x004adcb2, 0x000c5db3}}, Y: Field{[10]uint32{0x02cc0135, 0x00308c50, 0x006aac34, 0x01115b34, 0x036a18ce, 0x03ed6ad6, 0x00fe7bba, 0x00290f25, 0x02cc148a, 0x000e18fc}}},
+ {X: Field{[10]uint32{0x03b2ddc4, 0x0079943a, 0x014e0b81, 0x02734c69, 0x0151d9c1, 0x013e0b31, 0x030db151, 0x00842b41, 0x0373d124, 0x0018c9a7}}, Y: Field{[10]uint32{0x005cd0ac, 0x003c36f6, 0x02188e30, 0x02f0fdaa, 0x03038246, 0x002230e1, 0x034114e5, 0x01e90929, 0x03dd8a78, 0x002fe3b1}}},
+ {X: Field{[10]uint32{0x032003d0, 0x00f39518, 0x02708dee, 0x0124d374, 0x000f07e7, 0x0104c9aa, 0x027f5445, 0x014ed86b, 0x01328d0f, 0x0019e687}}, Y: Field{[10]uint32{0x025c350f, 0x0240629c, 0x0085c034, 0x0157268d, 0x02c9b3eb, 0x03dbba69, 0x03e341d5, 0x03b28c46, 0x03488f21, 0x0020f284}}},
+ {X: Field{[10]uint32{0x00b38b28, 0x033ce678, 0x036fb846, 0x0277a009, 0x03f7172f, 0x0153624c, 0x0148568a, 0x00b2134e, 0x01792998, 0x001a689f}}, Y: Field{[10]uint32{0x03b26168, 0x0058f90e, 0x034f3a02, 0x03d6b0b6, 0x0369c8b7, 0x00bce6f5, 0x00b16a12, 0x002ee15d, 0x0207cb0f, 0x003d0474}}},
+ {X: Field{[10]uint32{0x0373ee4d, 0x015b23d9, 0x03c7f9dd, 0x02e72bfa, 0x02abfdab, 0x000a73bc, 0x03f21716, 0x01410b2f, 0x005701af, 0x000a6354}}, Y: Field{[10]uint32{0x0297e9e1, 0x00f0156a, 0x0222075e, 0x029e733e, 0x034271bd, 0x03db70db, 0x02e62c4b, 0x02113904, 0x0271d271, 0x003d0d0f}}},
+ {X: Field{[10]uint32{0x000c4653, 0x022e5e48, 0x023b1f8f, 0x0391513d, 0x00e26f66, 0x02f3ce4c, 0x00eb9845, 0x03c4063e, 0x03da46d1, 0x000fca60}}, Y: Field{[10]uint32{0x01d71db0, 0x03166542, 0x01b53b26, 0x02f1e760, 0x009b2c38, 0x00c9b4e0, 0x02d57e6b, 0x00cec40d, 0x0114c4ad, 0x00125cea}}},
+ {X: Field{[10]uint32{0x023538dd, 0x02aa2fdf, 0x03b1359f, 0x0287bda8, 0x0154412e, 0x0074a9be, 0x02d64b2a, 0x02e23650, 0x013e30ce, 0x003e0dbf}}, Y: Field{[10]uint32{0x037f9367, 0x0380a0b3, 0x02ba3b28, 0x038c1b9a, 0x00c8161e, 0x0162ddc8, 0x01fd29c1, 0x01ad69c2, 0x00815347, 0x001c828c}}},
+ {X: Field{[10]uint32{0x00ef583a, 0x038b7c80, 0x03930b3a, 0x008807bb, 0x01295ed5, 0x03a647fa, 0x03c8ee4f, 0x00e2898e, 0x039b911e, 0x00375cba}}, Y: Field{[10]uint32{0x00c1b2ef, 0x02d03250, 0x00b8683c, 0x02c50fc4, 0x02398e86, 0x0182d4ec, 0x0285d9b3, 0x03dfe5e4, 0x01a5688b, 0x000a8369}}},
+ {X: Field{[10]uint32{0x0168a619, 0x00fc0cd2, 0x019be028, 0x02912584, 0x037cef92, 0x00962dfc, 0x027bd818, 0x00957310, 0x025046ab, 0x00154789}}, Y: Field{[10]uint32{0x03bc4f30, 0x01e8dc39, 0x0223b200, 0x02a8f1ba, 0x02e5ca16, 0x00560a9b, 0x006a5ecd, 0x03cd6e6e, 0x03d24cd8, 0x000c5f0c}}},
+ {X: Field{[10]uint32{0x0336c650, 0x00eb5e14, 0x02a90fbd, 0x01857214, 0x01ab28cb, 0x01e09564, 0x0319a304, 0x038f43b2, 0x0292131d, 0x0019a0f7}}, Y: Field{[10]uint32{0x002225f8, 0x01b4224a, 0x019e4d63, 0x03082397, 0x00b3c3b2, 0x011be839, 0x029556ec, 0x01548fe2, 0x018e7fd9, 0x00127ba9}}},
+ {X: Field{[10]uint32{0x00f97805, 0x0127224f, 0x03ac7bea, 0x00f4c692, 0x01ca99ef, 0x023e257a, 0x029b146e, 0x03a99782, 0x01e284a6, 0x002d6cec}}, Y: Field{[10]uint32{0x01b6fe0d, 0x013ba239, 0x01667ffa, 0x030d51fa, 0x023cf16c, 0x0065402f, 0x0391437e, 0x038a5bca, 0x0294f333, 0x00285c82}}},
+ {X: Field{[10]uint32{0x03cbf466, 0x009007e6, 0x00d1011a, 0x00e954d4, 0x03ccdde4, 0x01c63518, 0x009a2329, 0x01da125c, 0x03737c33, 0x00294065}}, Y: Field{[10]uint32{0x01d429e2, 0x03eb61ea, 0x0027e12e, 0x0233efcf, 0x03c51fff, 0x01add47a, 0x03a5e09b, 0x031777a3, 0x029effef, 0x00027301}}},
+ {X: Field{[10]uint32{0x001588fb, 0x00dad8fb, 0x03849e12, 0x0092238b, 0x02e5cb72, 0x02c7162c, 0x0041b663, 0x0361850a, 0x018feb2b, 0x0027b0d2}}, Y: Field{[10]uint32{0x001f5f12, 0x00194bc3, 0x0333ba00, 0x0216a01c, 0x01e517e5, 0x005437fb, 0x02719bf2, 0x025fc0d8, 0x01a5e14b, 0x00380324}}},
+ {X: Field{[10]uint32{0x03c5b6b2, 0x00c6afbc, 0x004b1f47, 0x02f16abc, 0x03581f97, 0x02e49999, 0x00b446ba, 0x00c615d4, 0x00b4adc1, 0x003842db}}, Y: Field{[10]uint32{0x01e2b9c3, 0x017f720d, 0x00ed3c1f, 0x010bc998, 0x01d5520b, 0x02d97007, 0x0287bba5, 0x0011dfce, 0x02137db2, 0x0014e944}}},
+ {X: Field{[10]uint32{0x013ae314, 0x01873877, 0x00d0d3ff, 0x009c4ec6, 0x0360ace9, 0x000ad810, 0x0093691e, 0x029f1e63, 0x0167e36e, 0x002dd52a}}, Y: Field{[10]uint32{0x0073d849, 0x02e0a855, 0x0359be12, 0x00a64cf3, 0x00d83ee0, 0x02ac0794, 0x02f8d5fb, 0x03b96690, 0x01639aa7, 0x0022a68e}}},
+ {X: Field{[10]uint32{0x02efa869, 0x0060ffcc, 0x02c8d489, 0x01d58d02, 0x017999a2, 0x02fa95a7, 0x038a51e6, 0x02fcf81b, 0x0361c10c, 0x0017fbf2}}, Y: Field{[10]uint32{0x02881e83, 0x02f86fd3, 0x0120715b, 0x01426cd2, 0x01dfe499, 0x02308150, 0x008c0932, 0x020d7076, 0x0093cbc4, 0x003606cc}}},
+ {X: Field{[10]uint32{0x03d2d848, 0x02910bc9, 0x0118470a, 0x002aca6e, 0x01f0ed6f, 0x009f2265, 0x0009400b, 0x025f8658, 0x03bb04ac, 0x003f9468}}, Y: Field{[10]uint32{0x01116a58, 0x03f55a32, 0x00bd6ec5, 0x013c020f, 0x03d30625, 0x027c2c60, 0x02b8aaf5, 0x0279103c, 0x00e0a4c3, 0x00215a3f}}},
+ {X: Field{[10]uint32{0x02b7dee3, 0x024519be, 0x0158d7b5, 0x0263911d, 0x00391df7, 0x03aca908, 0x00d5d38a, 0x03fb6f16, 0x02299fcc, 0x001a8f91}}, Y: Field{[10]uint32{0x02a5e548, 0x00fba6c8, 0x01a91aec, 0x02e78c58, 0x0289873e, 0x02ac7679, 0x02e7b5a3, 0x01767750, 0x03ba7bb1, 0x0006fb63}}},
+ {X: Field{[10]uint32{0x03450c37, 0x01fff225, 0x012ee745, 0x0134e492, 0x0233db30, 0x0385af4c, 0x0162d970, 0x03537bdf, 0x00b83c40, 0x002b7f6f}}, Y: Field{[10]uint32{0x00138e0e, 0x0216e1fd, 0x001956be, 0x0064b873, 0x038fde78, 0x0055ab08, 0x00b588c4, 0x0127b0aa, 0x03dc1635, 0x001ec20a}}},
+ {X: Field{[10]uint32{0x0113bf61, 0x030f7540, 0x02cb9f06, 0x0371bb31, 0x01509ed7, 0x00b45c04, 0x0254c270, 0x00b1520d, 0x03cc9c20, 0x0025a143}}, Y: Field{[10]uint32{0x0281aaf7, 0x022e2c34, 0x03b6c008, 0x01568070, 0x01b9fcc4, 0x01fb062d, 0x00c05dac, 0x01b126bc, 0x00327f96, 0x00041011}}},
+ {X: Field{[10]uint32{0x00458bbe, 0x01026d57, 0x03ac4f09, 0x005059bc, 0x031703f5, 0x0010de69, 0x00151ca8, 0x03285362, 0x01978f78, 0x000ab884}}, Y: Field{[10]uint32{0x01ecf7b1, 0x03277106, 0x012c86cb, 0x009fe80c, 0x022328e3, 0x021e5873, 0x01c7dde3, 0x00d7f514, 0x00d95760, 0x001379d3}}},
+ {X: Field{[10]uint32{0x02987e57, 0x03ab1846, 0x006cfb79, 0x038f149d, 0x027e5816, 0x0358b109, 0x021a332c, 0x03265899, 0x0342e1b5, 0x003b7061}}, Y: Field{[10]uint32{0x01b4fe5e, 0x00868d01, 0x01bc02c0, 0x00c8c0c4, 0x0129ba90, 0x02eaf95e, 0x01d484fe, 0x0026fcfe, 0x033fc633, 0x0020000e}}},
+ {X: Field{[10]uint32{0x0243a244, 0x0299033f, 0x025aa1d6, 0x012610dd, 0x0038b35d, 0x022e50da, 0x0290885c, 0x03c2b8a6, 0x022a5fa0, 0x001e00aa}}, Y: Field{[10]uint32{0x0192a803, 0x03dc59e4, 0x025dd7f5, 0x004616ea, 0x037e3dda, 0x005b126e, 0x03297e04, 0x00e6a101, 0x029fe632, 0x00031fcc}}},
+ {X: Field{[10]uint32{0x012335cf, 0x01efdfe6, 0x02386bf6, 0x03a0d79c, 0x02c2173d, 0x038ff16a, 0x02ede712, 0x011d6b0d, 0x0179b124, 0x003eddd1}}, Y: Field{[10]uint32{0x03a82c94, 0x032f3011, 0x02c01cdf, 0x029add8e, 0x01b6f413, 0x006a3590, 0x03ebf0e3, 0x01edeb90, 0x035163c1, 0x0030399a}}},
+ {X: Field{[10]uint32{0x00bc2852, 0x03886cff, 0x02982051, 0x00928c6d, 0x00695a9c, 0x03a70480, 0x0394881f, 0x02ba78cb, 0x018a43ab, 0x0036068f}}, Y: Field{[10]uint32{0x0112673f, 0x03dafcb7, 0x00dbf2cc, 0x028f2419, 0x01a693e3, 0x002a636d, 0x0351de7e, 0x032db5ef, 0x0011e8a8, 0x0018c376}}},
+ {X: Field{[10]uint32{0x03324cf0, 0x01ddadf1, 0x0249f9bf, 0x02812f94, 0x027cb2ed, 0x0089a336, 0x00da0c7e, 0x001a2e01, 0x03d497cf, 0x001467f3}}, Y: Field{[10]uint32{0x0162fdb9, 0x039bff25, 0x0391dc20, 0x03b0ef28, 0x03a357c8, 0x03912ae7, 0x02916466, 0x02cfaef9, 0x00cd198a, 0x002fb1bd}}},
+ {X: Field{[10]uint32{0x028ef592, 0x024a5be1, 0x0044124f, 0x021389dc, 0x023e31b2, 0x003e6c70, 0x0193853e, 0x0181cd78, 0x03e48fd6, 0x003312b4}}, Y: Field{[10]uint32{0x0383c27b, 0x0098eb75, 0x02f68996, 0x007b6c96, 0x019b1215, 0x01ec0f1d, 0x01520ac6, 0x0311d1f5, 0x018d8583, 0x00222bc5}}},
+ {X: Field{[10]uint32{0x00d24117, 0x00240d1e, 0x01e338f7, 0x02852e17, 0x02c06a57, 0x0137b5ba, 0x0340cf96, 0x021a9662, 0x00ae6f51, 0x002b7654}}, Y: Field{[10]uint32{0x03affa7d, 0x01effd28, 0x0165bc04, 0x03f1c013, 0x00111f6d, 0x002fb1d1, 0x03d6853a, 0x00a1737a, 0x00bd2d69, 0x00316729}}},
+ {X: Field{[10]uint32{0x02b383e4, 0x030fdb6e, 0x027ddd0b, 0x0319f124, 0x03ef0437, 0x032cd62b, 0x03c81730, 0x01f79c4a, 0x03454309, 0x003701c6}}, Y: Field{[10]uint32{0x015ca8ed, 0x0042d03a, 0x0385f9e4, 0x0283ec46, 0x03f28fca, 0x0061f7ef, 0x03b2adfc, 0x00c1305c, 0x02a9899b, 0x001e4e44}}},
+ {X: Field{[10]uint32{0x02c167c7, 0x01e6c6ab, 0x03abe94d, 0x01c91fda, 0x02fd97a6, 0x025ade9c, 0x0037da4a, 0x002676a7, 0x037e6db6, 0x0017738c}}, Y: Field{[10]uint32{0x024377f6, 0x0276f593, 0x021d5754, 0x015993ac, 0x00eb35bf, 0x005ae8a8, 0x0082991f, 0x02290ed9, 0x03ba1f09, 0x0006e21f}}},
+ {X: Field{[10]uint32{0x01f5cfcb, 0x02133e78, 0x009e5ba2, 0x03d0f984, 0x02900a83, 0x03a02260, 0x022ead80, 0x029989b4, 0x02ad8493, 0x00145bad}}, Y: Field{[10]uint32{0x00e05042, 0x00c3fbfb, 0x03e3c68d, 0x0046ecdb, 0x03ef6a85, 0x0074fe51, 0x018308c6, 0x02d1bd23, 0x02b38085, 0x00328d42}}},
+ {X: Field{[10]uint32{0x000e5e75, 0x03c71f3c, 0x020a335a, 0x02e02321, 0x03732b3f, 0x03a45f21, 0x03912114, 0x00b68796, 0x01503b1f, 0x003dd9f0}}, Y: Field{[10]uint32{0x01aaab54, 0x02d1cf68, 0x0165795b, 0x003854f3, 0x0109ec61, 0x015776ad, 0x00f64a26, 0x0119ee22, 0x00c8cdbe, 0x000fb3be}}},
+ {X: Field{[10]uint32{0x03c977f0, 0x00eb099c, 0x01e7531f, 0x00b0b319, 0x02418558, 0x005df79e, 0x03bc5d8f, 0x00b2329e, 0x03cf0f79, 0x003e6efa}}, Y: Field{[10]uint32{0x01614a85, 0x026595d2, 0x02f52b8c, 0x02aab3b2, 0x03ac751e, 0x02867957, 0x02f767b8, 0x00e89895, 0x00fefecb, 0x000a42ad}}},
+ {X: Field{[10]uint32{0x0147c45f, 0x01dff3d3, 0x00e8eaf4, 0x02f326c2, 0x016ec3ad, 0x0048f7d8, 0x01bff42c, 0x0236c7d5, 0x01febe5c, 0x0031aff8}}, Y: Field{[10]uint32{0x0241792f, 0x02b55b35, 0x02995c79, 0x0004d1fa, 0x0041c271, 0x0159e624, 0x032eddc9, 0x028bff60, 0x0082d6d6, 0x0031657e}}},
+ {X: Field{[10]uint32{0x00d3ce1e, 0x020a7978, 0x02425761, 0x00862e1c, 0x03c55595, 0x005c2ed1, 0x01cfe6e5, 0x02d321c7, 0x0371808f, 0x0015b0b5}}, Y: Field{[10]uint32{0x000468ba, 0x003f27d5, 0x0229f5ee, 0x02bdc58d, 0x0112ec15, 0x039c8718, 0x00a91889, 0x03989bf7, 0x02e69e03, 0x001b79ca}}},
+ {X: Field{[10]uint32{0x0109d663, 0x028d99d4, 0x00fb5066, 0x03fbf181, 0x02da9ecf, 0x03033df4, 0x0296d8c3, 0x016f961e, 0x0305ec9f, 0x00080862}}, Y: Field{[10]uint32{0x038f6993, 0x00a0eefb, 0x02e12e79, 0x00ea22d0, 0x02b41bfa, 0x029cc86b, 0x02ea0aa7, 0x01f8907c, 0x03c2c535, 0x000bb069}}},
+ {X: Field{[10]uint32{0x036be4ee, 0x03f2bfe5, 0x00f09e2a, 0x03d2ece9, 0x03519035, 0x01252bfc, 0x03db4f33, 0x0333656f, 0x02690a04, 0x000e8224}}, Y: Field{[10]uint32{0x0042d1a2, 0x006b615a, 0x02757ed9, 0x00899036, 0x020bbeba, 0x00d012cc, 0x0293757b, 0x0287fa45, 0x0225fb0b, 0x00395a03}}},
+ {X: Field{[10]uint32{0x005b3f07, 0x01948ebd, 0x01a2e285, 0x0006ca5d, 0x02dfd3e1, 0x02618125, 0x00fd0f25, 0x022d4f6c, 0x0296a0cd, 0x0023e7c8}}, Y: Field{[10]uint32{0x01c625b5, 0x02d5c8ad, 0x01920a3f, 0x00295de1, 0x038ab3be, 0x018a435d, 0x029015cd, 0x037cc6c8, 0x01072cac, 0x00187056}}},
+ {X: Field{[10]uint32{0x0288070e, 0x03d1d33f, 0x0106c836, 0x024347a8, 0x00097e2b, 0x0352d8ca, 0x01599b26, 0x036a5f34, 0x03e8695b, 0x00219602}}, Y: Field{[10]uint32{0x017d7d21, 0x03146aec, 0x00ac6166, 0x02a276e9, 0x022bb220, 0x001f71fb, 0x022fe5fd, 0x02b160e2, 0x00a17e19, 0x002aeb9a}}},
+ {X: Field{[10]uint32{0x02b4d762, 0x00b74a5c, 0x03d048c7, 0x0163ec61, 0x01eb1f94, 0x015ea879, 0x005b4f0e, 0x035627b3, 0x038a1e69, 0x003edab0}}, Y: Field{[10]uint32{0x02ac32c1, 0x0004c061, 0x000147fb, 0x01bc2e58, 0x03e5d180, 0x02e0ad72, 0x031d3af2, 0x01c7cc5b, 0x0116bec2, 0x00358077}}},
+ {X: Field{[10]uint32{0x02a5f0b0, 0x02e36f9f, 0x027b4242, 0x00c6d9b8, 0x02c5bb7d, 0x00aec273, 0x03aec947, 0x03aa06fc, 0x006bc54f, 0x001f0418}}, Y: Field{[10]uint32{0x01f68f54, 0x035df6ef, 0x010abd14, 0x00a8f809, 0x0202ea52, 0x0102d116, 0x01839872, 0x01590dd9, 0x0180d3d6, 0x00048854}}},
+ {X: Field{[10]uint32{0x0152a1a6, 0x00ac05cb, 0x02495204, 0x0398ee11, 0x02740a5b, 0x0367ce12, 0x007822b1, 0x024ef1d3, 0x03948335, 0x002179aa}}, Y: Field{[10]uint32{0x01fae93a, 0x0397af80, 0x030f981f, 0x033371d7, 0x02d6e69f, 0x0334a38f, 0x02512138, 0x03e1aa3d, 0x00d068d6, 0x003d7058}}},
+ {X: Field{[10]uint32{0x0351cfe5, 0x0044eb7f, 0x00a27f02, 0x03b2e203, 0x005e626a, 0x0151c7d4, 0x0374ea0e, 0x006e8146, 0x013a99cd, 0x001f878b}}, Y: Field{[10]uint32{0x01ad89bc, 0x012c0267, 0x0299781f, 0x033b0018, 0x02c1eb96, 0x00dbc6b7, 0x02322291, 0x03f8de30, 0x002ee9d4, 0x00104fb2}}},
+ {X: Field{[10]uint32{0x007aaacd, 0x03af407a, 0x02bd2928, 0x02b1ca70, 0x016a9490, 0x024c7187, 0x03a08dd6, 0x00d7cbb5, 0x00ad8137, 0x00162590}}, Y: Field{[10]uint32{0x00485429, 0x0009c648, 0x02e15c1a, 0x026f8d0f, 0x017a1e90, 0x025b1335, 0x039fc330, 0x03ed2cd9, 0x010b8a89, 0x002275ac}}},
+ {X: Field{[10]uint32{0x026e6608, 0x02b41017, 0x00c5d7b7, 0x03511046, 0x0191fdd7, 0x01d07067, 0x00db0ef3, 0x0173a3f7, 0x034ff346, 0x001c2033}}, Y: Field{[10]uint32{0x022441fe, 0x02b627e3, 0x03d347df, 0x0274d050, 0x00303348, 0x02036c76, 0x006d334f, 0x002e82d7, 0x01a95cbc, 0x001e8fc3}}},
+ {X: Field{[10]uint32{0x02917c55, 0x026a1d89, 0x0261c7d5, 0x000d954f, 0x01091deb, 0x01dcdf0c, 0x0196bd4d, 0x0009a4b7, 0x034c2d40, 0x002ed982}}, Y: Field{[10]uint32{0x00983c24, 0x028fd030, 0x002faf5e, 0x00446370, 0x03f150af, 0x017a2e1b, 0x00684031, 0x00125c18, 0x0113a756, 0x002d252b}}},
+ {X: Field{[10]uint32{0x03221b27, 0x03141b67, 0x02e0c1e2, 0x02c23376, 0x013f4f4f, 0x03629719, 0x008161c5, 0x0056c910, 0x01ec7ebf, 0x001ce890}}, Y: Field{[10]uint32{0x0063640a, 0x02f05d75, 0x0332b5e1, 0x024a8bdb, 0x0364bbe1, 0x03520363, 0x00865041, 0x0295bde1, 0x03b433a0, 0x002014d2}}},
+ {X: Field{[10]uint32{0x00b1fe07, 0x0056aa9e, 0x03a6f89a, 0x000b0f5e, 0x039e45f2, 0x028ad62f, 0x005741e6, 0x03f6f1dc, 0x0351f08b, 0x003f707b}}, Y: Field{[10]uint32{0x016c0586, 0x039683a6, 0x00e36880, 0x0051d57d, 0x001684f7, 0x0160c950, 0x03ac05b5, 0x0121e191, 0x00dcdc1e, 0x001fa740}}},
+ {X: Field{[10]uint32{0x033618af, 0x01ccf4e8, 0x007bc6d6, 0x00ea449a, 0x03a15ab1, 0x02838cf7, 0x0344736e, 0x017304ea, 0x02cba0ce, 0x00081210}}, Y: Field{[10]uint32{0x016bd521, 0x03e4ab32, 0x03a35896, 0x03708516, 0x029e1804, 0x0062a53c, 0x01187418, 0x02472feb, 0x0205a6e9, 0x002bf248}}},
+ {X: Field{[10]uint32{0x017ed768, 0x02f2d805, 0x0193e0b2, 0x02660eeb, 0x01a47c4a, 0x00121a1a, 0x00095675, 0x00c54604, 0x001ef82c, 0x00280ea7}}, Y: Field{[10]uint32{0x02090a65, 0x033c67fd, 0x0263ca26, 0x028b7361, 0x0302158b, 0x02690ee2, 0x033e5eed, 0x01a603bb, 0x0164fb9c, 0x001e1be4}}},
+ {X: Field{[10]uint32{0x03c00ed2, 0x026c56f6, 0x025baee1, 0x010b1515, 0x01fa18bd, 0x036a04f3, 0x015e3ff7, 0x005e118d, 0x025f6cb4, 0x00178edb}}, Y: Field{[10]uint32{0x02ee603f, 0x0000db10, 0x02cfde34, 0x022b1722, 0x019d6f35, 0x0234f936, 0x03b8f9f8, 0x008a13f0, 0x015342bf, 0x002e70e9}}},
+ {X: Field{[10]uint32{0x005dbc70, 0x010e1728, 0x0254b015, 0x01d840a6, 0x00abf764, 0x03ec9d1b, 0x03dfbd6e, 0x004a0198, 0x020e082d, 0x00066c25}}, Y: Field{[10]uint32{0x01504773, 0x01993d39, 0x02f312d2, 0x03b64845, 0x0133df5d, 0x00d74107, 0x03356451, 0x004aa517, 0x03bc4401, 0x003e2ca2}}},
+ {X: Field{[10]uint32{0x03f3677e, 0x01d98e37, 0x00d05098, 0x0076dafa, 0x006f1c2d, 0x028688b3, 0x039b274b, 0x02ebf9d2, 0x01007597, 0x0004187a}}, Y: Field{[10]uint32{0x01444b21, 0x0171e048, 0x00fa9815, 0x03c533d3, 0x01fe2fff, 0x03894629, 0x017b59eb, 0x024bb113, 0x0122dec5, 0x001c1eb2}}},
+ {X: Field{[10]uint32{0x03030b85, 0x01c73c7c, 0x01f5709a, 0x0078ec55, 0x01cc0e22, 0x02683940, 0x039b5676, 0x01f61d50, 0x001160fc, 0x00324613}}, Y: Field{[10]uint32{0x00327805, 0x00fa608a, 0x02e308c4, 0x02527ec7, 0x018e83e5, 0x017c8e26, 0x01d30f87, 0x01a27f5b, 0x01e37c04, 0x002202da}}},
+ {X: Field{[10]uint32{0x0374cf04, 0x01567fd0, 0x02f12d37, 0x0190988a, 0x01c8fa23, 0x01b09ae9, 0x005af94e, 0x014b363f, 0x03044dec, 0x0028d7ec}}, Y: Field{[10]uint32{0x012242fd, 0x035d5704, 0x0284042d, 0x01c614c9, 0x038b3604, 0x00d08b73, 0x03adcb9a, 0x00d612b1, 0x0375692a, 0x0005513c}}},
+ {X: Field{[10]uint32{0x010929ca, 0x0012f46e, 0x00a8c1b2, 0x0069e000, 0x021b2c50, 0x02c4c3da, 0x00efbe8e, 0x03afa046, 0x03ad60ff, 0x002ea300}}, Y: Field{[10]uint32{0x03aaafbe, 0x00da71b8, 0x03722f11, 0x011eb84d, 0x0365b88d, 0x03de002a, 0x03732112, 0x010783eb, 0x0329a3f3, 0x003a57bd}}},
+ {X: Field{[10]uint32{0x0330ddb9, 0x0346d4a3, 0x03ba3361, 0x017d7992, 0x02fe0849, 0x01268042, 0x03ba189f, 0x0229de5f, 0x0355842d, 0x0034ae95}}, Y: Field{[10]uint32{0x03df7957, 0x00c2fe94, 0x03d477c0, 0x00b0e42d, 0x000549e7, 0x00e95758, 0x00bc5f0c, 0x005e7de1, 0x01b10cad, 0x00368d9a}}},
+ {X: Field{[10]uint32{0x008703f2, 0x036e6b9b, 0x0194a086, 0x01e552b2, 0x00d3de15, 0x020332c9, 0x031d2b28, 0x0222c9de, 0x03587ec9, 0x000f813a}}, Y: Field{[10]uint32{0x0328dd9c, 0x0336d3f9, 0x0207bb98, 0x02273170, 0x00ff3c60, 0x037e5bef, 0x031d6503, 0x021767ba, 0x0113e6dc, 0x003e9048}}},
+ {X: Field{[10]uint32{0x019fe7f6, 0x0368f09a, 0x01ca17a0, 0x008177e4, 0x0260c9f1, 0x007d19b5, 0x019aefa9, 0x029274f8, 0x03424339, 0x003bf96e}}, Y: Field{[10]uint32{0x005156e9, 0x00fa74c9, 0x0008ff9e, 0x0029f2d1, 0x01e3576b, 0x01f3e7f1, 0x0221db29, 0x01903f3a, 0x012ffb39, 0x00263188}}},
+ {X: Field{[10]uint32{0x02a0908b, 0x0359a92e, 0x008a302b, 0x00b6605b, 0x03bca2dc, 0x031383a9, 0x03e65915, 0x00cdb7bb, 0x02e5a330, 0x0028a510}}, Y: Field{[10]uint32{0x02a135e6, 0x0109ea77, 0x023112db, 0x02251199, 0x02dc5e77, 0x029bee79, 0x0374c130, 0x0391f0ed, 0x00297320, 0x00286fe2}}},
+ {X: Field{[10]uint32{0x008bb792, 0x022aa23c, 0x013714da, 0x03fe0063, 0x0148e877, 0x0324862c, 0x01f632d1, 0x0097daa4, 0x00ba6f72, 0x001152f3}}, Y: Field{[10]uint32{0x01ec713c, 0x02562dd1, 0x00e3e918, 0x00f681f8, 0x01815775, 0x000ba837, 0x021106b2, 0x00ac0582, 0x01312d53, 0x0036837b}}},
+ {X: Field{[10]uint32{0x00c2dca9, 0x0160d337, 0x01fced42, 0x020ba503, 0x00565737, 0x00941501, 0x00631afa, 0x02559b2c, 0x014032c3, 0x0000c58e}}, Y: Field{[10]uint32{0x03cc5fc7, 0x016a36f3, 0x004dd844, 0x017e9555, 0x0267f089, 0x03d359a2, 0x037464c6, 0x02c34691, 0x01c41b15, 0x00063158}}},
+ {X: Field{[10]uint32{0x01b07703, 0x03f22112, 0x00a92bc4, 0x00e8ef38, 0x01524089, 0x03f1c4cb, 0x015fcedf, 0x01efc83c, 0x035f53f0, 0x00152d4d}}, Y: Field{[10]uint32{0x01abdee7, 0x0058fb98, 0x026a7b3f, 0x031b59c8, 0x00f5df11, 0x028ba886, 0x02922bdf, 0x01094794, 0x033f0a94, 0x000c6f8a}}},
+ {X: Field{[10]uint32{0x0058b3bd, 0x02dfb980, 0x003280d2, 0x03118e7a, 0x00de9033, 0x025368f3, 0x03b9b6a6, 0x03419caf, 0x031b0745, 0x000a0f38}}, Y: Field{[10]uint32{0x00c0245a, 0x00801136, 0x0338ff9d, 0x02a99eaa, 0x010dc1c7, 0x03a074b2, 0x01c24e76, 0x02ed5b8f, 0x00a4d452, 0x003daa52}}},
+ {X: Field{[10]uint32{0x00e99967, 0x0059fc84, 0x033e3a60, 0x00c5892e, 0x0148d5f8, 0x0012515e, 0x012419cb, 0x029d51ec, 0x0353117b, 0x002d79d3}}, Y: Field{[10]uint32{0x018dd3e6, 0x0120a01c, 0x01b5e10d, 0x007d33f6, 0x003da833, 0x03ce0c02, 0x03c22e89, 0x03e6aaa0, 0x0354d635, 0x0017d8d5}}},
+ {X: Field{[10]uint32{0x03f83080, 0x0159c4f2, 0x031340a8, 0x012c7349, 0x03d587c3, 0x0335476b, 0x00dc776f, 0x00c60c5c, 0x0332cfa3, 0x001a0797}}, Y: Field{[10]uint32{0x0279266a, 0x0106951c, 0x010e38f2, 0x03bfef8e, 0x0276f646, 0x01ff3cc2, 0x00361d9b, 0x039375ed, 0x00b8d144, 0x003161f6}}},
+ {X: Field{[10]uint32{0x029f1d0c, 0x01697f40, 0x00621b92, 0x00857fe3, 0x012f28b2, 0x00177d5b, 0x021ec17d, 0x00a27c94, 0x02b7722f, 0x0007ee97}}, Y: Field{[10]uint32{0x0311f5ba, 0x0372fa7a, 0x037d1524, 0x018d6cae, 0x0234283b, 0x032b2d9a, 0x03f287ef, 0x03f537e9, 0x00d997ec, 0x0037c450}}},
+ {X: Field{[10]uint32{0x020d0a77, 0x004c029a, 0x00f2031e, 0x01933095, 0x0217855b, 0x00cfc6f3, 0x038fc5a7, 0x022cf3b4, 0x00b0df37, 0x000e2ffd}}, Y: Field{[10]uint32{0x0206b1be, 0x03728719, 0x03dc2520, 0x01979cef, 0x01f35a50, 0x0094dd1d, 0x00485ee3, 0x00a5b993, 0x025df634, 0x001b53c1}}},
+ {X: Field{[10]uint32{0x017de831, 0x023dd3b9, 0x015ed6e0, 0x0281df32, 0x03779df8, 0x01ed5e63, 0x00050d52, 0x00992ef9, 0x03c359a9, 0x001c1c04}}, Y: Field{[10]uint32{0x014ea422, 0x032455c0, 0x00c3fda9, 0x029d8cb9, 0x02582313, 0x00f3662b, 0x03b8dcc5, 0x021b0195, 0x01a03153, 0x002e7cde}}},
+ {X: Field{[10]uint32{0x01642ef5, 0x028fd8d1, 0x0135a73d, 0x02467799, 0x03fc5b8c, 0x0082416a, 0x010abbb3, 0x00921392, 0x012f7028, 0x002b653b}}, Y: Field{[10]uint32{0x02c88457, 0x01c0b0aa, 0x02bd6cb8, 0x01cdb409, 0x020fdf49, 0x01951485, 0x00011fec, 0x0387cfa6, 0x0013a554, 0x00276fa2}}},
+ {X: Field{[10]uint32{0x0362612e, 0x0115613f, 0x001f54f5, 0x021d62e2, 0x00fd174f, 0x0110de17, 0x01ad1552, 0x021da926, 0x01e4e991, 0x0011ed5b}}, Y: Field{[10]uint32{0x00efdced, 0x0356695f, 0x012d986b, 0x03483524, 0x03383d92, 0x03dd4ddd, 0x016117a5, 0x02faddf1, 0x01375855, 0x00028501}}},
+ {X: Field{[10]uint32{0x01f431e8, 0x03ded205, 0x036af03c, 0x013433cc, 0x03f31f62, 0x0047ca04, 0x024643af, 0x029a4c7c, 0x024e9291, 0x00146f39}}, Y: Field{[10]uint32{0x0107e552, 0x00eaaebb, 0x02e13a06, 0x01a435d6, 0x03f40c4c, 0x00480e53, 0x0235d284, 0x00891c3b, 0x03d9a301, 0x00023dd0}}},
+ {X: Field{[10]uint32{0x03f7a43f, 0x02e550b9, 0x03447a0c, 0x03b80ef1, 0x0083b80b, 0x026d3af8, 0x018e56b4, 0x01683f3a, 0x00feb52c, 0x001d8a1f}}, Y: Field{[10]uint32{0x02a7a7bc, 0x00cfadb8, 0x007ff13e, 0x026f7161, 0x03e9e339, 0x003662c1, 0x01d064a5, 0x0112ef4e, 0x0256fa57, 0x001cdadf}}},
+ {X: Field{[10]uint32{0x036b8f5e, 0x02b37037, 0x0155b181, 0x0333c713, 0x028dc29b, 0x006dddc6, 0x011aaa2c, 0x000430c6, 0x039ead01, 0x0018535c}}, Y: Field{[10]uint32{0x002f8085, 0x036d9b43, 0x031664f4, 0x036eabc1, 0x025591ef, 0x00001193, 0x0296c2c5, 0x01eddb22, 0x028fe860, 0x00173353}}},
+ {X: Field{[10]uint32{0x024e1bc9, 0x00b4ce97, 0x0380803e, 0x02262598, 0x0035cd58, 0x00354fb4, 0x039404d9, 0x00d7cacc, 0x00c8ee8c, 0x0030e111}}, Y: Field{[10]uint32{0x00cd29f2, 0x02febd9b, 0x03f441f4, 0x02685ae4, 0x031d2ffc, 0x021fea6a, 0x02221092, 0x014baf70, 0x00cdde54, 0x0022d102}}},
+ {X: Field{[10]uint32{0x01c8f349, 0x0077dea6, 0x02539239, 0x025cb6ed, 0x0256a1c1, 0x014aff79, 0x019bf028, 0x01bcd760, 0x0249c601, 0x0022a725}}, Y: Field{[10]uint32{0x0369a8ed, 0x03a5d2b5, 0x001afdc6, 0x0168ce46, 0x031797aa, 0x0132d402, 0x00a6030a, 0x0067e9b1, 0x0157be2c, 0x002cb736}}},
+ {X: Field{[10]uint32{0x02a04b03, 0x02ccc46f, 0x026bced6, 0x02d0745d, 0x0196292a, 0x0334a35d, 0x010ea0a6, 0x025c2497, 0x011be444, 0x00283d73}}, Y: Field{[10]uint32{0x027ff95b, 0x03e56524, 0x034b868a, 0x00681c73, 0x00c8d793, 0x03912738, 0x0045d923, 0x00a6c338, 0x01e9291b, 0x00349c2c}}},
+ {X: Field{[10]uint32{0x033a9614, 0x03530447, 0x03a64709, 0x0372a550, 0x0025c64d, 0x00a38964, 0x03bdbaf0, 0x01661deb, 0x03368767, 0x0029e3c8}}, Y: Field{[10]uint32{0x02a6de83, 0x007c108c, 0x01e7ee24, 0x02690e7d, 0x01de34aa, 0x007d4346, 0x0245b3ab, 0x0116fb94, 0x02c9a5d2, 0x0004d97e}}},
+ {X: Field{[10]uint32{0x03391769, 0x03f0f902, 0x03b514a9, 0x00c27b8f, 0x03af6cae, 0x0104e91a, 0x03aa6f5a, 0x00b16e4a, 0x03e3ae48, 0x000eff4d}}, Y: Field{[10]uint32{0x016d1c59, 0x01553c0e, 0x03d66bdc, 0x0019371f, 0x03d0219c, 0x01de3273, 0x02424a07, 0x02c3719b, 0x001834bb, 0x000b64c2}}},
+ {X: Field{[10]uint32{0x013881a2, 0x00735c74, 0x00e5d1b4, 0x00f580bb, 0x02d426f2, 0x039e5b4a, 0x036ea757, 0x00748f9d, 0x009a0026, 0x0024b2b1}}, Y: Field{[10]uint32{0x031521c1, 0x02124b95, 0x035dac0d, 0x032061e8, 0x00c7a43a, 0x02303176, 0x023e587a, 0x00df2266, 0x00138e0f, 0x00231dbb}}},
+ {X: Field{[10]uint32{0x0356842a, 0x01008502, 0x01d6b829, 0x0379ea5b, 0x03718944, 0x0124d59e, 0x03708941, 0x03719f30, 0x01e00ea7, 0x00033dbb}}, Y: Field{[10]uint32{0x00627cb7, 0x03a343d5, 0x0042ca76, 0x0343d646, 0x020fa070, 0x00f72314, 0x016128a5, 0x01822deb, 0x03d4e939, 0x0038adc5}}},
+ {X: Field{[10]uint32{0x0291e17a, 0x006fe0be, 0x0035e3dd, 0x00b44781, 0x00968c8c, 0x02c1b886, 0x02cb92bb, 0x00a5149b, 0x0198ba51, 0x00188132}}, Y: Field{[10]uint32{0x00cd0ea4, 0x0362b765, 0x03939d12, 0x031e6981, 0x03d1ed18, 0x002bca8f, 0x03ae21ef, 0x01972723, 0x015fe783, 0x0005a428}}},
+ {X: Field{[10]uint32{0x00c0aa5d, 0x006bff79, 0x03f12ef7, 0x001fc88d, 0x02d8ce07, 0x01ab0b85, 0x0268d13a, 0x000384d4, 0x0348cc55, 0x0028b13e}}, Y: Field{[10]uint32{0x000cd839, 0x03cb5c0f, 0x039509e5, 0x01ea3566, 0x03c403f5, 0x016048ea, 0x03e3906c, 0x03225f2d, 0x000ee608, 0x000e0251}}},
+ {X: Field{[10]uint32{0x03656f60, 0x01e1cf7a, 0x024f2b66, 0x03135cc8, 0x016acc8e, 0x00ecb8c2, 0x01a36a6d, 0x00f92f17, 0x03a1cc30, 0x00362bdf}}, Y: Field{[10]uint32{0x00c6de0d, 0x0333fffc, 0x02e5ddd4, 0x006e7b7a, 0x015e14d8, 0x00116c4d, 0x03b39f97, 0x00cf1437, 0x02bd5a55, 0x0027f1fc}}},
+ {X: Field{[10]uint32{0x02dea0e7, 0x035dd75d, 0x0390a864, 0x00fb476b, 0x01377073, 0x0014c12f, 0x00e6bbdb, 0x00a46981, 0x00adb873, 0x000fa680}}, Y: Field{[10]uint32{0x0101ded0, 0x023bad02, 0x0063051f, 0x026cc86d, 0x0320a5cb, 0x0066a35d, 0x0124e37f, 0x0313bd4d, 0x0057f6d1, 0x0037ad25}}},
+ {X: Field{[10]uint32{0x03dc3d7f, 0x03943974, 0x0136809d, 0x0357a862, 0x01760ca8, 0x0306cab2, 0x014346aa, 0x01883261, 0x02e930aa, 0x0002fbd6}}, Y: Field{[10]uint32{0x00dfc48f, 0x037eb592, 0x03034c0f, 0x028ff8dc, 0x0105da98, 0x03501079, 0x0212b9c7, 0x017d66c0, 0x0042f792, 0x00083603}}},
+ {X: Field{[10]uint32{0x0155f67f, 0x00ad2424, 0x0035d592, 0x011e2229, 0x0238215e, 0x03ce5916, 0x01743088, 0x03541db0, 0x01fbcd28, 0x0033505a}}, Y: Field{[10]uint32{0x01e74674, 0x030bc98d, 0x025b929d, 0x03192d6a, 0x00a170da, 0x015b06da, 0x025f2743, 0x01937569, 0x00a21a55, 0x003e798b}}},
+ {X: Field{[10]uint32{0x015a4c28, 0x02d810bb, 0x0121d538, 0x004533ce, 0x014bd37b, 0x025f5db3, 0x01a25047, 0x009893f7, 0x01ed34cd, 0x00292da4}}, Y: Field{[10]uint32{0x026af55d, 0x01b08174, 0x02d12c33, 0x01ddcb1c, 0x025c045a, 0x00f8ce5f, 0x030ca545, 0x02d30456, 0x00b16781, 0x003194dd}}},
+ {X: Field{[10]uint32{0x00aa4818, 0x01576f62, 0x0047dc9e, 0x0056fe7a, 0x03c2b3a6, 0x02a14303, 0x03cf68fa, 0x02de2065, 0x016a4226, 0x001793a4}}, Y: Field{[10]uint32{0x0398951e, 0x02128c6d, 0x032808d9, 0x0014fac9, 0x03f3395d, 0x0193d2cb, 0x01991f44, 0x014b9972, 0x02a25c7c, 0x000fcf0f}}},
+ {X: Field{[10]uint32{0x03a74a7c, 0x011d357a, 0x0105ca5f, 0x02e88653, 0x01f743e6, 0x00293180, 0x011b3ad5, 0x027dcb25, 0x02cff4d6, 0x003751e0}}, Y: Field{[10]uint32{0x00977b99, 0x0304b208, 0x0281d6c7, 0x0247536c, 0x0205d3a7, 0x018a3630, 0x03dd6ae8, 0x03bdf178, 0x035e9854, 0x0025e9ee}}},
+ {X: Field{[10]uint32{0x01adce36, 0x02026470, 0x02f0bcc0, 0x01044f92, 0x00281aff, 0x019a701f, 0x03945432, 0x0017b376, 0x02d54ab4, 0x002854c2}}, Y: Field{[10]uint32{0x0263e756, 0x01125612, 0x0168a774, 0x02dbf6ee, 0x01b18550, 0x038aa96c, 0x01dda781, 0x0210b977, 0x02212732, 0x003cf494}}},
+ {X: Field{[10]uint32{0x0264719e, 0x035db2a7, 0x013234a2, 0x00cab639, 0x03e5ee0d, 0x00cabd92, 0x014523f2, 0x0393c018, 0x02f7b438, 0x00146493}}, Y: Field{[10]uint32{0x028a8095, 0x01631dc4, 0x00176268, 0x01563ab6, 0x03fdfe6e, 0x02d912fe, 0x036e82b8, 0x0136d59c, 0x01a811f9, 0x0021f045}}},
+ {X: Field{[10]uint32{0x03fada6e, 0x03555a14, 0x03563a3b, 0x01701ae5, 0x016ac905, 0x03882a75, 0x03625d4b, 0x0361d041, 0x0268e137, 0x0020b3fb}}, Y: Field{[10]uint32{0x00733b7a, 0x019e61cc, 0x01cc06ff, 0x01e140a9, 0x02a363e9, 0x037b9e9c, 0x02804d76, 0x031471ca, 0x0246c4f5, 0x0037526a}}},
+ {X: Field{[10]uint32{0x032e623a, 0x03f5f957, 0x03f30a4e, 0x03f4b30e, 0x02e02b70, 0x00db1f69, 0x021346b0, 0x03bd1016, 0x0076f7f1, 0x0028dce2}}, Y: Field{[10]uint32{0x0204a21a, 0x0365847a, 0x02edf368, 0x00d9606c, 0x02b1204d, 0x01200cc6, 0x00de46e5, 0x014acaf8, 0x012be1ea, 0x001965bd}}},
+ {X: Field{[10]uint32{0x0180bcbc, 0x000d960a, 0x01d7dd82, 0x02cc62c3, 0x028d8382, 0x00b33c92, 0x0224fd6b, 0x00635cad, 0x02f7aec8, 0x002b9329}}, Y: Field{[10]uint32{0x018f1ae2, 0x02325eb7, 0x015e9237, 0x02586aa6, 0x03348155, 0x015322ee, 0x02a29f25, 0x01f15c78, 0x020335ad, 0x001a9eb6}}},
+ {X: Field{[10]uint32{0x01d12732, 0x03df7ea2, 0x006b1400, 0x0250b614, 0x004d6ac8, 0x03732e72, 0x018d1984, 0x01d8be6c, 0x022bfa9d, 0x002f8cd5}}, Y: Field{[10]uint32{0x0075d442, 0x034b9ba5, 0x008fe473, 0x015a40c1, 0x01c4f5c9, 0x013a1d29, 0x0336cc21, 0x019a9cd4, 0x03b877c6, 0x002d99bb}}},
+ {X: Field{[10]uint32{0x03c74446, 0x02e4b68d, 0x01ecf37c, 0x007c1711, 0x03f38289, 0x02983fda, 0x003b2888, 0x00f6e14c, 0x02d9815b, 0x00275f69}}, Y: Field{[10]uint32{0x015b12a8, 0x00ada35d, 0x001ac540, 0x003627f3, 0x00df3d2c, 0x02d04f51, 0x01f6d734, 0x016f8398, 0x007372ba, 0x0011b0a4}}},
+ {X: Field{[10]uint32{0x030d4d3f, 0x02a77d0e, 0x02366b62, 0x03edf266, 0x020b5981, 0x02edecef, 0x02028498, 0x030af301, 0x0131e513, 0x000e48cf}}, Y: Field{[10]uint32{0x0116dfd8, 0x038e136e, 0x03c81f97, 0x012ea6bf, 0x001ec57d, 0x0187e9dd, 0x00ac3e1c, 0x03a93d36, 0x017c92e0, 0x003f09e1}}},
+ {X: Field{[10]uint32{0x037768be, 0x039450f6, 0x004b43f7, 0x00cea0b6, 0x02547e6f, 0x02d63d06, 0x00d02dd7, 0x03a0ec16, 0x0388db90, 0x0016f8b5}}, Y: Field{[10]uint32{0x03de1026, 0x0127cbdb, 0x00875b90, 0x01ae6899, 0x03d585ef, 0x0213edb3, 0x01396f2e, 0x03e8cf9c, 0x03a86b2d, 0x0002e33c}}},
+ {X: Field{[10]uint32{0x00f162ac, 0x01e187a2, 0x035d682f, 0x02f8e09f, 0x027c53a0, 0x01c011e7, 0x03600c25, 0x02853044, 0x01e8191f, 0x000ffd67}}, Y: Field{[10]uint32{0x01c77ba2, 0x01730c8b, 0x024dfd81, 0x03ed79e6, 0x0308ae4e, 0x009e6847, 0x03f5f60c, 0x02db9efb, 0x01856ab0, 0x00009756}}},
+ {X: Field{[10]uint32{0x019a256f, 0x01d6f05c, 0x01b5875f, 0x029398c1, 0x00b61a18, 0x02803e36, 0x02d9475d, 0x00648262, 0x0030ed22, 0x00207727}}, Y: Field{[10]uint32{0x014682a5, 0x01e34a3d, 0x03fc2ca6, 0x00913503, 0x009cccf0, 0x01a6897e, 0x038f9c98, 0x032c9e9b, 0x005e5c44, 0x000a5c1d}}},
+ {X: Field{[10]uint32{0x0370e9da, 0x0168f926, 0x00d24f76, 0x010eedea, 0x02ea3869, 0x00c353d2, 0x036121b2, 0x01026455, 0x0216579c, 0x002e8f87}}, Y: Field{[10]uint32{0x02c72f4e, 0x02088d8c, 0x02abd90f, 0x039956ae, 0x0154eb0d, 0x034c39ec, 0x01d8d9c7, 0x03e99e2a, 0x0008653c, 0x00287bae}}},
+ {X: Field{[10]uint32{0x03f854f8, 0x02271220, 0x0304ca05, 0x0250ee5b, 0x01fa66d1, 0x02df479a, 0x01f52a51, 0x02bb8450, 0x028150fa, 0x0000d7ff}}, Y: Field{[10]uint32{0x01366fad, 0x03422a32, 0x00dc9b7d, 0x018c181c, 0x00b4ad31, 0x03c44170, 0x00a09b8d, 0x01b74ff3, 0x0022e83f, 0x00359a86}}},
+ {X: Field{[10]uint32{0x00763a06, 0x0142ab58, 0x00f685b9, 0x038f95c9, 0x038b50d7, 0x00e2e605, 0x0214c0ae, 0x03e5c870, 0x00221435, 0x000e63af}}, Y: Field{[10]uint32{0x00811f46, 0x016e0120, 0x03011682, 0x021c5240, 0x0115551b, 0x030b233a, 0x00d4da7f, 0x03baaff3, 0x009d0eb2, 0x0030b7d5}}},
+ {X: Field{[10]uint32{0x00a89e96, 0x0284e243, 0x01a0d6cf, 0x00aa913f, 0x029ca89d, 0x01397387, 0x018511a8, 0x029d7474, 0x0333e7d0, 0x000ae89f}}, Y: Field{[10]uint32{0x017cf4a7, 0x02d98ae6, 0x02f19c6b, 0x0153f304, 0x0045c2ac, 0x02472845, 0x039946cc, 0x01d70e3c, 0x004b8323, 0x001408da}}},
+ {X: Field{[10]uint32{0x01e829c2, 0x034547be, 0x0014465c, 0x00fbc7fc, 0x032b5497, 0x014c60ba, 0x02cd4856, 0x007e4813, 0x023e7ec5, 0x001095c1}}, Y: Field{[10]uint32{0x01232c1c, 0x01518ad5, 0x015d747c, 0x016a04ab, 0x00919f8b, 0x01a6af59, 0x009ab35b, 0x00145447, 0x034116dd, 0x0011cd47}}},
+ {X: Field{[10]uint32{0x034063a8, 0x03c5cb66, 0x006ebe3e, 0x025623b9, 0x0180da81, 0x00b95946, 0x0218582d, 0x03295a50, 0x03c1b5b3, 0x001df9cd}}, Y: Field{[10]uint32{0x01d1587a, 0x038830a2, 0x007b50e0, 0x017135ec, 0x03651ae4, 0x032e44b8, 0x008d4f11, 0x0262b4df, 0x01c5e667, 0x0003df2d}}},
+ {X: Field{[10]uint32{0x00cdaa4f, 0x03bb1e8d, 0x028c44a7, 0x010d1ed7, 0x01ef027d, 0x02932dcb, 0x02f98b82, 0x02307ef7, 0x024d7101, 0x0037f2ed}}, Y: Field{[10]uint32{0x03972a23, 0x02c31765, 0x01a92e06, 0x0160b72a, 0x01bc2f4e, 0x014713c2, 0x03379e87, 0x01d6222b, 0x01bcc720, 0x0037f033}}},
+ {X: Field{[10]uint32{0x0355ae8a, 0x0258ab74, 0x00e78ce6, 0x0388a94b, 0x01b39855, 0x011b5c62, 0x02c52567, 0x007a38ca, 0x02d0a787, 0x0023ada1}}, Y: Field{[10]uint32{0x00cc30da, 0x038cc71b, 0x02a5ed71, 0x01d5ba29, 0x0389b796, 0x0308b17e, 0x00afe424, 0x00a0dff4, 0x0211fec5, 0x003aa2cd}}},
+ {X: Field{[10]uint32{0x02cc3e54, 0x025ac74d, 0x0298785a, 0x00b6fa9e, 0x02ee5652, 0x0313083f, 0x02703ff8, 0x00b754c5, 0x0313ebaf, 0x00345f61}}, Y: Field{[10]uint32{0x01c10b54, 0x007616f7, 0x038b5682, 0x01c9391b, 0x00e9fdb8, 0x03e25074, 0x00a7a19b, 0x018b2a76, 0x03e86d78, 0x003a9c2d}}},
+ {X: Field{[10]uint32{0x00b3ba89, 0x000df88c, 0x02cfa3ec, 0x007e0b35, 0x02249c47, 0x0053bbb6, 0x02d28e9c, 0x00287215, 0x03e6ae05, 0x001f531d}}, Y: Field{[10]uint32{0x0265fe60, 0x01cffa58, 0x027bcea7, 0x0230f686, 0x01900ad6, 0x009f440b, 0x0180f393, 0x037e4d2c, 0x0253f5fb, 0x0031681d}}},
+ {X: Field{[10]uint32{0x017ebcab, 0x014306d3, 0x01e88f4f, 0x03b4378e, 0x003721dc, 0x02c942f3, 0x021d51b3, 0x0179a1b5, 0x0109451e, 0x00258e04}}, Y: Field{[10]uint32{0x00801b64, 0x01745959, 0x003947f1, 0x00529c8a, 0x0209f065, 0x035bc3f9, 0x017642bd, 0x032951fc, 0x0019b088, 0x0025263d}}},
+ {X: Field{[10]uint32{0x038c2ba7, 0x02be42a5, 0x00d208af, 0x020ff68f, 0x0385f44e, 0x023d3a54, 0x02da8f2f, 0x00f5cdec, 0x01505435, 0x001d002d}}, Y: Field{[10]uint32{0x01909771, 0x022ab9ff, 0x008be6b1, 0x00749d41, 0x02e36bed, 0x036c7572, 0x0129a04c, 0x00d9df88, 0x00a3ce50, 0x00264ceb}}},
+ {X: Field{[10]uint32{0x026ff59f, 0x00792e81, 0x01be2a01, 0x030e4ed4, 0x00d1de3b, 0x03c4baf6, 0x02f59639, 0x02ff49c7, 0x0011fff7, 0x000f5ec3}}, Y: Field{[10]uint32{0x02404b9d, 0x007133cc, 0x01789b79, 0x00bdd51a, 0x008bddb1, 0x02a21851, 0x01eb57d8, 0x02839738, 0x00317f7c, 0x002d8e5d}}},
+ {X: Field{[10]uint32{0x01c46328, 0x01bd33d9, 0x0343c5cd, 0x0377f78d, 0x0245d128, 0x03237665, 0x03125455, 0x01fc5398, 0x01ec7ebf, 0x00125136}}, Y: Field{[10]uint32{0x00589996, 0x009c6fcb, 0x01d1f5bf, 0x036449b2, 0x035c2f49, 0x02747cf4, 0x01cd408c, 0x02bb04ca, 0x019313ba, 0x003c1954}}},
+ {X: Field{[10]uint32{0x01bdecf1, 0x0391b49e, 0x00b5189c, 0x00cda6eb, 0x01f37b99, 0x03822cd5, 0x0207d6d8, 0x02c743e1, 0x032b4764, 0x00265810}}, Y: Field{[10]uint32{0x03160ebd, 0x02b15ac1, 0x0386578f, 0x03e37aea, 0x03f7e1a9, 0x030852b7, 0x0200ea9e, 0x034be8a4, 0x034c0921, 0x000c13ae}}},
+ {X: Field{[10]uint32{0x033de4d6, 0x0212a8ee, 0x0281d9ca, 0x01658cc5, 0x019196cc, 0x009ad77b, 0x03409cc7, 0x015963f0, 0x035b6358, 0x000c4fd4}}, Y: Field{[10]uint32{0x016c9716, 0x01024bf1, 0x01fb3dd6, 0x03fe3266, 0x0159b049, 0x0007fd3c, 0x0323bcfd, 0x0383af97, 0x008aa55f, 0x00394469}}},
+ {X: Field{[10]uint32{0x008ed7b2, 0x03c0d315, 0x01bcb3cc, 0x03597004, 0x00c99478, 0x03d3dd3b, 0x01b9006e, 0x01b7036e, 0x006f8cd3, 0x00217116}}, Y: Field{[10]uint32{0x03434229, 0x02d34416, 0x01f63a75, 0x01699d8e, 0x00144c8c, 0x03e6c01c, 0x02325923, 0x0175b371, 0x03c0045c, 0x00335a54}}},
+ {X: Field{[10]uint32{0x00671af8, 0x01c1be65, 0x0251d21d, 0x0036d935, 0x03d489b2, 0x01ce07ba, 0x01b668db, 0x00d6747b, 0x02d2a7fc, 0x0025a2f1}}, Y: Field{[10]uint32{0x00725186, 0x02f6df3c, 0x033ce0d0, 0x03f02d4b, 0x02de88bc, 0x0396545f, 0x032f3304, 0x01c1f306, 0x02a3723d, 0x003ec2b5}}},
+ {X: Field{[10]uint32{0x0328985d, 0x023158ef, 0x024200e5, 0x03373fda, 0x0326d343, 0x01bb03a1, 0x00c72215, 0x039dfb9b, 0x00eb3722, 0x0008c96b}}, Y: Field{[10]uint32{0x038d39e1, 0x03323fe1, 0x03a5a21a, 0x03f7a06e, 0x0019b9c8, 0x03cfa7bb, 0x02596836, 0x0165e3ca, 0x0353dd29, 0x0018069f}}},
+ {X: Field{[10]uint32{0x03acd2e4, 0x001ff759, 0x01dff054, 0x00d61f0c, 0x024b1c93, 0x02abcca9, 0x00667f99, 0x00efab70, 0x02abb231, 0x00231b9d}}, Y: Field{[10]uint32{0x0250c29f, 0x01444b47, 0x02a46b3f, 0x00b8d036, 0x023d7bb9, 0x00a6ce43, 0x03b19c42, 0x037ceb24, 0x0050d422, 0x0009f8ee}}},
+ {X: Field{[10]uint32{0x0236748f, 0x03508c17, 0x037af9d8, 0x02a22e60, 0x000352e7, 0x0354e285, 0x02b2c728, 0x0234f935, 0x02313446, 0x0038c7fb}}, Y: Field{[10]uint32{0x010309be, 0x02686c9b, 0x00139e41, 0x00f8a035, 0x0237f9df, 0x02684078, 0x03974f6b, 0x0123e24d, 0x02e12d19, 0x00226c25}}},
+ {X: Field{[10]uint32{0x00d306c6, 0x0305f52c, 0x02981215, 0x02c19eb8, 0x00da748a, 0x03968ce6, 0x0342fdd7, 0x0012d1f1, 0x006e8494, 0x00165ad6}}, Y: Field{[10]uint32{0x02a0a16b, 0x03863e18, 0x02791ff6, 0x0180acb3, 0x012ac277, 0x036b7c86, 0x00e8f05e, 0x031c4579, 0x00c5912c, 0x003a5b17}}},
+ {X: Field{[10]uint32{0x01aa1c02, 0x01492185, 0x03317714, 0x028e0c4f, 0x03d453d5, 0x006549c3, 0x019c3b71, 0x00032e86, 0x01675cf5, 0x00080330}}, Y: Field{[10]uint32{0x0320ce61, 0x01e73d54, 0x024b3e7b, 0x013b05f7, 0x011905e2, 0x024900dc, 0x005c1334, 0x010a7191, 0x00c87e34, 0x001e02ab}}},
+ {X: Field{[10]uint32{0x02d2025f, 0x017a774a, 0x01767dfb, 0x01be04cc, 0x0370f0e9, 0x01e93c91, 0x01148f87, 0x007f3c1e, 0x0032e10e, 0x001f9355}}, Y: Field{[10]uint32{0x03aa432a, 0x02d49458, 0x0136eec0, 0x03284f8c, 0x01fa58f0, 0x0105e60b, 0x03f5fd7d, 0x00a0dfcd, 0x03b26ee8, 0x000d7d76}}},
+ {X: Field{[10]uint32{0x000237b7, 0x02edef67, 0x030e5776, 0x01e4d4a1, 0x00ff21f8, 0x01bac430, 0x038f800b, 0x01f9b9e9, 0x010895c9, 0x00307b5d}}, Y: Field{[10]uint32{0x03418fb9, 0x005063fa, 0x01bb1d8b, 0x02565c82, 0x01a38e80, 0x013ffb0f, 0x031e89f6, 0x02aa2670, 0x02068dc0, 0x00241c8e}}},
+ {X: Field{[10]uint32{0x02104770, 0x0339cc2c, 0x018defc7, 0x02b9a55b, 0x029948dd, 0x00576374, 0x01239b2a, 0x02027e0f, 0x02e8a53e, 0x00397f52}}, Y: Field{[10]uint32{0x031c4fa2, 0x00bc37bd, 0x0112ade0, 0x03d77d30, 0x03050c7b, 0x017cb76e, 0x00e8ebd3, 0x00865c82, 0x029c1cbb, 0x001a9376}}},
+ {X: Field{[10]uint32{0x0251f30d, 0x01bab076, 0x03f2ca76, 0x0057d9cc, 0x03e3534d, 0x00be7b3b, 0x0372cdb4, 0x02f621ea, 0x01f24b33, 0x0000f39d}}, Y: Field{[10]uint32{0x02838ed7, 0x03c132c6, 0x0136213b, 0x02334f72, 0x01a43eb4, 0x00a2bd56, 0x00e9b5d8, 0x03db898b, 0x015b51dd, 0x0027b68c}}},
+ {X: Field{[10]uint32{0x0013391c, 0x033bcee2, 0x01d34ad8, 0x02a23867, 0x00527fb9, 0x01fb7d66, 0x018d8ce7, 0x00735392, 0x004f33a8, 0x00263013}}, Y: Field{[10]uint32{0x038bd3a7, 0x03c185ff, 0x01949483, 0x00ea3fc8, 0x03acb484, 0x00158255, 0x0371c463, 0x03e04bd0, 0x0167f853, 0x003f4af3}}},
+ {X: Field{[10]uint32{0x0287bbf3, 0x02281e42, 0x001b10fc, 0x00a1b905, 0x01f3d2dd, 0x004f390f, 0x00e62f84, 0x032c1b2f, 0x00882906, 0x000143a7}}, Y: Field{[10]uint32{0x002fa3fb, 0x01890f36, 0x00a9ce1c, 0x0168bcf2, 0x02479a61, 0x028111d2, 0x01eefb2b, 0x006731a1, 0x013bb05f, 0x00010f1c}}},
+ {X: Field{[10]uint32{0x03adf2d1, 0x022a0c50, 0x023a2eeb, 0x0190a9cf, 0x0071bf65, 0x03c86ddb, 0x00faa663, 0x0378ec19, 0x0217458b, 0x0017506e}}, Y: Field{[10]uint32{0x03b6cec5, 0x031117d5, 0x0351087c, 0x029da1d8, 0x0307f64f, 0x01eac163, 0x039e22b0, 0x008564ac, 0x0054b308, 0x0005fbff}}},
+ {X: Field{[10]uint32{0x00d5b077, 0x00e3e749, 0x023e789d, 0x018191bf, 0x026b34cc, 0x0364b81d, 0x003cb8e1, 0x0164edba, 0x00bf2a02, 0x00138ccb}}, Y: Field{[10]uint32{0x039e1f95, 0x00aa1679, 0x01955c8b, 0x00f77b34, 0x01744ad0, 0x0278e478, 0x03699859, 0x000c0256, 0x005c3ab9, 0x00143e9d}}},
+ {X: Field{[10]uint32{0x01a2dae9, 0x005baecd, 0x013f8347, 0x01f3776d, 0x03c83cd4, 0x00d04141, 0x017455e4, 0x02096f0d, 0x029d27ee, 0x0006efd8}}, Y: Field{[10]uint32{0x01e9bb75, 0x03ea250f, 0x0370971f, 0x01a58074, 0x018fb72f, 0x002f6179, 0x000070ec, 0x014fcd3d, 0x00c1e997, 0x00214242}}},
+ {X: Field{[10]uint32{0x01cde650, 0x03d6c06d, 0x01b8aa25, 0x026f71e7, 0x0023aece, 0x03af72cc, 0x00cb3f5d, 0x0358aab4, 0x02eff9db, 0x002a4526}}, Y: Field{[10]uint32{0x00c327bd, 0x03c2fdad, 0x01a79918, 0x02318766, 0x02ae3c14, 0x037da1b5, 0x00a16d09, 0x00447d1a, 0x0346e6db, 0x0029eed2}}},
+ {X: Field{[10]uint32{0x01b72a71, 0x0385c87f, 0x0037ffc5, 0x0375d7e0, 0x03b98ffc, 0x02c876b2, 0x01e5b406, 0x03590867, 0x01ee0185, 0x00200402}}, Y: Field{[10]uint32{0x03e26441, 0x00b96bcd, 0x010f2daf, 0x00162619, 0x01382839, 0x01171d7c, 0x0136f706, 0x02b5b077, 0x020957c7, 0x003a0859}}},
+ {X: Field{[10]uint32{0x00ba6770, 0x01a2a1b0, 0x0068ab73, 0x00e4e401, 0x0096c6b6, 0x01bc4cbb, 0x02345846, 0x03d9e82c, 0x019ae466, 0x00301c3a}}, Y: Field{[10]uint32{0x00769362, 0x01124154, 0x00171a15, 0x033e703c, 0x03be6f8f, 0x02ca47ff, 0x016f77e3, 0x013d5a29, 0x03df358d, 0x00220fea}}},
+ {X: Field{[10]uint32{0x00109f4a, 0x017fc7d5, 0x039da71c, 0x014c77fd, 0x018e028c, 0x0342be68, 0x03549a9e, 0x009d85e3, 0x0239cf61, 0x001afa25}}, Y: Field{[10]uint32{0x0204cf14, 0x017f6ce5, 0x02e0d821, 0x03c5b5d9, 0x00ff2dd6, 0x03e65c31, 0x0292f38f, 0x0244c49a, 0x017ddd37, 0x001ddebb}}},
+ {X: Field{[10]uint32{0x0224ce8c, 0x016bf165, 0x01009219, 0x0014ae76, 0x03100945, 0x036ec6a1, 0x0052e796, 0x00792808, 0x01d41ce7, 0x00347f4c}}, Y: Field{[10]uint32{0x013fded1, 0x00425249, 0x01a2e5b5, 0x02aba8af, 0x0136d5f2, 0x02183979, 0x02796d91, 0x000a77aa, 0x03d378a8, 0x003cd5ea}}},
+ {X: Field{[10]uint32{0x03169d9e, 0x0351a6e3, 0x010337ae, 0x022bab66, 0x02614c32, 0x02909a65, 0x01e617c0, 0x03c52cf3, 0x002d66fe, 0x0007214e}}, Y: Field{[10]uint32{0x038a71f9, 0x02257bc1, 0x01113a8f, 0x0137f6fe, 0x01e2406a, 0x01c9f669, 0x018702ab, 0x039aa13d, 0x031cb236, 0x0016316b}}},
+ {X: Field{[10]uint32{0x0336b5ea, 0x03b7f653, 0x0212e272, 0x02dd0f2e, 0x03eec32c, 0x0304a2b5, 0x025c2d52, 0x019edd0b, 0x01edd5fd, 0x000b63ea}}, Y: Field{[10]uint32{0x032cd37d, 0x026b4763, 0x0331f0aa, 0x0103de01, 0x02231453, 0x0325930c, 0x0133af4b, 0x00a827e5, 0x033937eb, 0x001c6c57}}},
+ {X: Field{[10]uint32{0x03dbafb4, 0x00e048b7, 0x00c954c5, 0x031a1c0c, 0x0240ceb1, 0x014376f7, 0x00d0a159, 0x031659c0, 0x0379d9f6, 0x0013d448}}, Y: Field{[10]uint32{0x0248c05b, 0x01f020d0, 0x01674c7f, 0x03ef80e0, 0x034b320a, 0x01f76159, 0x0061980c, 0x037d7aea, 0x0305f864, 0x001537a6}}},
+ {X: Field{[10]uint32{0x01e7cd1c, 0x02348b36, 0x02834016, 0x0173b64f, 0x032c6999, 0x0350fb28, 0x02609496, 0x00b08563, 0x01ba4856, 0x002697e4}}, Y: Field{[10]uint32{0x0322b86b, 0x0034aa6d, 0x036382d4, 0x00fb84bd, 0x0129bfa3, 0x02b3e714, 0x01b11266, 0x03b28b80, 0x03ecc668, 0x0027e228}}},
+ {X: Field{[10]uint32{0x02f9f610, 0x01df7614, 0x03cf0065, 0x03f83563, 0x01d84d54, 0x020cedd7, 0x00cc6b6e, 0x03eb9313, 0x0102d417, 0x003768c1}}, Y: Field{[10]uint32{0x015469a1, 0x036ff045, 0x02b0c5d4, 0x01e9b1fe, 0x0207f4c5, 0x000b8a90, 0x005468d1, 0x019079b5, 0x01da2e74, 0x003eee23}}},
+ {X: Field{[10]uint32{0x0326e117, 0x036978d6, 0x025e8e88, 0x02c58635, 0x000600df, 0x00c7397d, 0x00e50cc6, 0x00507612, 0x027c5586, 0x00234ba7}}, Y: Field{[10]uint32{0x0251aa86, 0x0287b400, 0x009a9e33, 0x02f3dd8f, 0x02bb72fa, 0x0170a955, 0x01ab4fd8, 0x01f15355, 0x01ecffd6, 0x0026270e}}},
+ {X: Field{[10]uint32{0x001ee995, 0x029f2a59, 0x01bbfa27, 0x03378f56, 0x0310c911, 0x00f47689, 0x031cee1c, 0x00f5b2c1, 0x0076e6b6, 0x001c9b38}}, Y: Field{[10]uint32{0x010af9c1, 0x02588b98, 0x015951c4, 0x02043522, 0x0206ea5e, 0x022ad74d, 0x02d01acd, 0x03e34d34, 0x02a0c91f, 0x0013906e}}},
+ {X: Field{[10]uint32{0x02a43a1a, 0x02eb366f, 0x017aa27d, 0x01c7b4ba, 0x02c0d429, 0x027a5418, 0x02c0dc2c, 0x000f4fee, 0x01fe1835, 0x0037af24}}, Y: Field{[10]uint32{0x022d2f11, 0x01e8ccef, 0x00100d49, 0x0323fda2, 0x026dfdf3, 0x0357c9b9, 0x03b2ab80, 0x033a6bcc, 0x0315a6fe, 0x0004d64d}}},
+ {X: Field{[10]uint32{0x00fd4b28, 0x017a443c, 0x00f41c58, 0x013b5ac9, 0x03237c79, 0x01cbfcb5, 0x0039e8c4, 0x012ae39c, 0x03357791, 0x00314e50}}, Y: Field{[10]uint32{0x0126087b, 0x01bf1533, 0x0310d1fc, 0x03da691c, 0x0123c26c, 0x002a8a83, 0x03041128, 0x027139ec, 0x019b628a, 0x000a014d}}},
+ {X: Field{[10]uint32{0x005f29b0, 0x022f1e68, 0x00e1cc99, 0x00412fb9, 0x0072b818, 0x022a3ebb, 0x02bf1fbe, 0x0002c600, 0x02fd33c3, 0x00268a24}}, Y: Field{[10]uint32{0x01186e33, 0x03dcbfd1, 0x00bebb37, 0x0177d7ea, 0x00553870, 0x01738df3, 0x02ebc53a, 0x0004d948, 0x023bc2fa, 0x00265fc4}}},
+ {X: Field{[10]uint32{0x039a351a, 0x0160412c, 0x0279f4c5, 0x02ff5cf7, 0x001503bb, 0x0382fc60, 0x017fe427, 0x013ef9fb, 0x00ac0f22, 0x0035288b}}, Y: Field{[10]uint32{0x02ce752b, 0x02bdae0e, 0x02860341, 0x00442a0b, 0x02232603, 0x01238d1a, 0x01133495, 0x00b824a9, 0x02973062, 0x00209a3f}}},
+ {X: Field{[10]uint32{0x00c11659, 0x01653ee7, 0x0003c077, 0x02ee1df7, 0x0111d4d2, 0x001c27ee, 0x0014963b, 0x02f87635, 0x03ff15ad, 0x0012933c}}, Y: Field{[10]uint32{0x01ced874, 0x03b75834, 0x0336fc2d, 0x002f0e7f, 0x035109a3, 0x03a992b4, 0x00418100, 0x0254a989, 0x018336f1, 0x0015f211}}},
+ {X: Field{[10]uint32{0x018e1539, 0x026fc305, 0x02f441f6, 0x009e1c72, 0x00e85e0b, 0x00b28992, 0x00836cf4, 0x0354c263, 0x00edb580, 0x0016303b}}, Y: Field{[10]uint32{0x0042467e, 0x005e0fba, 0x03fd7412, 0x0027e847, 0x0292e54a, 0x000b346a, 0x023d36f7, 0x02f25139, 0x00491e1d, 0x003abde7}}},
+ {X: Field{[10]uint32{0x024892bb, 0x03326fdc, 0x0016f634, 0x0009fd39, 0x03261323, 0x03961a8c, 0x02154f3f, 0x01fa24e2, 0x00e8a60c, 0x002c3ef4}}, Y: Field{[10]uint32{0x02a5d3c3, 0x00cc31e0, 0x03d079a0, 0x024c4df0, 0x026dd83f, 0x0012662e, 0x00fcb501, 0x03d036d5, 0x027d6757, 0x0009ee9d}}},
+ {X: Field{[10]uint32{0x0192f0d3, 0x01b630b6, 0x000818c1, 0x03de132d, 0x00ee90c2, 0x013bc611, 0x01fecf3e, 0x004d6849, 0x012a26b0, 0x002a52b8}}, Y: Field{[10]uint32{0x018e2050, 0x0229d808, 0x03c95bbc, 0x00d8221d, 0x02e046fe, 0x02ee8f59, 0x0016a6f6, 0x01d6571e, 0x03ba665e, 0x0028dd11}}},
+ {X: Field{[10]uint32{0x00dcbeb5, 0x02f8c223, 0x02eeb9ad, 0x0101cc16, 0x00c540e2, 0x03e40137, 0x036c4844, 0x013eb8ca, 0x009b3eb7, 0x00232f6c}}, Y: Field{[10]uint32{0x00c932fe, 0x01cb3d0d, 0x023b810e, 0x01146d27, 0x01912df7, 0x0139685a, 0x007b14c0, 0x03bf4bfc, 0x03a291f6, 0x0000ae18}}},
+ {X: Field{[10]uint32{0x00cdbac8, 0x00e721cd, 0x03afcf8f, 0x0071034d, 0x020ab313, 0x01422af5, 0x02fb89ed, 0x03af8731, 0x02c3b70e, 0x000fe33e}}, Y: Field{[10]uint32{0x0158b65e, 0x0124e84b, 0x01321f0c, 0x021ed10f, 0x01a68b52, 0x0122592d, 0x00b303db, 0x03c975e5, 0x0111846e, 0x0036ec08}}},
+ {X: Field{[10]uint32{0x0315b25b, 0x01f69837, 0x004b9054, 0x0136ceb2, 0x0331fcaf, 0x020598c2, 0x03e9a4e1, 0x039e704b, 0x00e0cea3, 0x002d8581}}, Y: Field{[10]uint32{0x01b86801, 0x03a7660a, 0x0192cea2, 0x02224063, 0x00317d53, 0x02849929, 0x0265b41b, 0x03e96d59, 0x03ad9ea0, 0x0006abca}}},
+ {X: Field{[10]uint32{0x011327d7, 0x021bbc11, 0x00a3f07c, 0x028d9347, 0x02fa51bd, 0x03ef5a2d, 0x026630a7, 0x02ce3870, 0x00103c6a, 0x003ac39d}}, Y: Field{[10]uint32{0x00e82e6d, 0x01a05eb8, 0x037d44c3, 0x0330bb8d, 0x0045cdaa, 0x027edd0e, 0x001c9c7d, 0x034f0655, 0x001757c4, 0x0037e814}}},
+ {X: Field{[10]uint32{0x0156b7ae, 0x0342fda5, 0x0144f4bc, 0x01f92c95, 0x031fcfdd, 0x01d8b012, 0x02d28126, 0x03993236, 0x0103be51, 0x0018dbf1}}, Y: Field{[10]uint32{0x013f4cd9, 0x021c0e8c, 0x011e6984, 0x0375414b, 0x02b633c8, 0x022df621, 0x03b6735a, 0x010525fc, 0x030f0510, 0x0015ee0e}}},
+ {X: Field{[10]uint32{0x012ab330, 0x031cd639, 0x02288c15, 0x01953a8f, 0x005ba9dc, 0x034b7867, 0x02fc2bd1, 0x008d6f1a, 0x00ec4d42, 0x000bf31c}}, Y: Field{[10]uint32{0x016a30ce, 0x01df9949, 0x01069395, 0x03a09467, 0x0135bde8, 0x03f36da5, 0x024cbbfc, 0x00788b6d, 0x00182bfa, 0x001a8d58}}},
+ {X: Field{[10]uint32{0x02a94b54, 0x0043889f, 0x007d01cd, 0x0396f56f, 0x0183be81, 0x01af7ea5, 0x00969ebd, 0x02e2ff6e, 0x02c38d38, 0x00045401}}, Y: Field{[10]uint32{0x0080e08a, 0x01687508, 0x02780250, 0x00e9cc94, 0x023fac02, 0x01ba1e00, 0x0339e83f, 0x00feea6b, 0x010216eb, 0x001810eb}}},
+ {X: Field{[10]uint32{0x01b3aaf1, 0x0194fca3, 0x019a515b, 0x021afb70, 0x013756a9, 0x03f95340, 0x00a2da82, 0x0070a583, 0x025a15ba, 0x00005f55}}, Y: Field{[10]uint32{0x03c7399c, 0x012b5ea6, 0x00c35f27, 0x0064cd4d, 0x027a6338, 0x0274c494, 0x00b05aab, 0x002cf92e, 0x01dd4204, 0x00245eee}}},
+ {X: Field{[10]uint32{0x03221ef2, 0x01d31b5a, 0x0330e023, 0x022ad20b, 0x01d2af8f, 0x00f96f2a, 0x00598f7a, 0x00710c2e, 0x00898850, 0x00037309}}, Y: Field{[10]uint32{0x03652e72, 0x01919193, 0x02b0a578, 0x02d667c7, 0x01cd14ca, 0x03c037b3, 0x03102a6e, 0x03b14ac7, 0x017dd5c6, 0x002a165d}}},
+ {X: Field{[10]uint32{0x011f0b0f, 0x00fea3cd, 0x03a03d83, 0x030f50f2, 0x03ae2cf9, 0x03a0229f, 0x01919db6, 0x00c2df37, 0x039f4e94, 0x0029a2ca}}, Y: Field{[10]uint32{0x00786526, 0x0096f165, 0x00f66d65, 0x0137cbe7, 0x017f45b1, 0x009de008, 0x015614d9, 0x00248e3a, 0x0232d3ad, 0x0038d2e2}}},
+ {X: Field{[10]uint32{0x010e9462, 0x0020a7e3, 0x013c2319, 0x005d1c0b, 0x01fe7e2f, 0x02b5654e, 0x02d11e9e, 0x00466174, 0x025a938e, 0x000be553}}, Y: Field{[10]uint32{0x03b16dd5, 0x02ac79c2, 0x02c61e55, 0x02fe7e26, 0x01f6aaa6, 0x01a8e4ec, 0x02fecc84, 0x01f502e8, 0x0379fa8b, 0x002cbc34}}},
+ {X: Field{[10]uint32{0x027ffe4f, 0x00e4e330, 0x03556fa9, 0x0234f33f, 0x033cc33c, 0x02ecb77a, 0x03fcae86, 0x0253f66c, 0x01136bca, 0x00088f4f}}, Y: Field{[10]uint32{0x01512915, 0x01329614, 0x00ec09c7, 0x02294eed, 0x0327f6cd, 0x00f58866, 0x016f7dd8, 0x0061f309, 0x0106e317, 0x0021f864}}},
+ {X: Field{[10]uint32{0x028f7b2e, 0x020d2b67, 0x02abf517, 0x00ae83ce, 0x00b61443, 0x02d3d257, 0x01f3a3e9, 0x0186d90f, 0x00e82911, 0x00156476}}, Y: Field{[10]uint32{0x026d07c2, 0x03bd6503, 0x01416673, 0x01fb1028, 0x0130b3fe, 0x02e91c67, 0x03d454eb, 0x01f94b66, 0x0235f626, 0x000b235a}}},
+ {X: Field{[10]uint32{0x01f29a29, 0x024dd451, 0x02252c8e, 0x0078b939, 0x03414184, 0x027a6bbe, 0x00cbaecb, 0x0068521c, 0x004ad15d, 0x003acb3f}}, Y: Field{[10]uint32{0x0052e5ac, 0x019c855c, 0x00b955bc, 0x0035b4d7, 0x00e62f21, 0x01d94054, 0x0304c79c, 0x03664ade, 0x020810bf, 0x001e2043}}},
+ {X: Field{[10]uint32{0x00a3f74b, 0x0178fa7b, 0x0392700d, 0x01f4b867, 0x02bdcdb4, 0x00e7310d, 0x00b1d4c5, 0x02a06179, 0x03f99680, 0x001844b0}}, Y: Field{[10]uint32{0x00da4403, 0x03694ae6, 0x00f353b8, 0x01f1a9a4, 0x02f2579d, 0x007db2a5, 0x008f9d40, 0x022feb6b, 0x03dd723c, 0x001ba182}}},
+ {X: Field{[10]uint32{0x03d58b16, 0x02477b69, 0x015797b3, 0x00535f8c, 0x03b9b329, 0x0283c5f0, 0x002c23b9, 0x0362c031, 0x00d8d552, 0x00224848}}, Y: Field{[10]uint32{0x01cf7941, 0x0008c5ad, 0x00edf325, 0x025b33c3, 0x03cc4a94, 0x02f7300d, 0x013d1f64, 0x01e3cbe4, 0x03acb3c7, 0x00398948}}},
+ {X: Field{[10]uint32{0x03c4dc0a, 0x0347a447, 0x021c5ecb, 0x01245a11, 0x0160ca4a, 0x018c1129, 0x03155839, 0x034ef808, 0x0056217a, 0x0011d62d}}, Y: Field{[10]uint32{0x01d83679, 0x0121e336, 0x027ca960, 0x01ec0f13, 0x03bb7498, 0x030c2b06, 0x03eec6a1, 0x025cfc15, 0x015a4f30, 0x00267909}}},
+ {X: Field{[10]uint32{0x025629da, 0x039d5d5b, 0x02143b99, 0x031f658b, 0x03a3b95d, 0x01e11e6b, 0x03a0c6f9, 0x01ea1e5f, 0x02a69a20, 0x002ac108}}, Y: Field{[10]uint32{0x01823faa, 0x01b8b8e9, 0x02dfa7a0, 0x01c12653, 0x0184af0f, 0x02e37f3b, 0x00280c32, 0x026157af, 0x010f00fc, 0x001cce63}}},
+ {X: Field{[10]uint32{0x0145d227, 0x02b50fb5, 0x01b20ee7, 0x02983c28, 0x01852cc7, 0x020a4dd3, 0x010b4c35, 0x002c50c3, 0x032accb9, 0x00066010}}, Y: Field{[10]uint32{0x028b05c5, 0x023696e7, 0x01546766, 0x03e3cb94, 0x0069c919, 0x02e626f4, 0x03d1a0e9, 0x0233acab, 0x0073bfbc, 0x0025ab8e}}},
+ {X: Field{[10]uint32{0x00e93f17, 0x01894bb8, 0x010cbb71, 0x0055d0f5, 0x0293b8a0, 0x02aefbcf, 0x0361cd72, 0x03eceb29, 0x037fe2df, 0x0010a204}}, Y: Field{[10]uint32{0x02238825, 0x0021b76a, 0x008de456, 0x0011679e, 0x0271fddb, 0x03681d9c, 0x01855f14, 0x019a9bef, 0x033e36c3, 0x00300b0c}}},
+ {X: Field{[10]uint32{0x02b6cde2, 0x024a06b5, 0x03d3d52d, 0x01db836d, 0x0077e432, 0x02a9cfe9, 0x03c4d160, 0x0227682b, 0x003505bc, 0x003597eb}}, Y: Field{[10]uint32{0x0007383f, 0x01e11e30, 0x02b13056, 0x03906221, 0x038e9f07, 0x000e18b4, 0x01005456, 0x03ccded1, 0x0175a6c5, 0x0039bd32}}},
+ {X: Field{[10]uint32{0x018f6ca7, 0x00665e2e, 0x014c843e, 0x021346ca, 0x02beb967, 0x0181e4db, 0x028b54e1, 0x0349e93f, 0x0144e62d, 0x001c0a6c}}, Y: Field{[10]uint32{0x0140a25c, 0x023ca99c, 0x0114aa47, 0x011f1cf7, 0x009a1af3, 0x0155113c, 0x02c90c38, 0x01b1b8e8, 0x01665805, 0x0022c43b}}},
+ {X: Field{[10]uint32{0x039183b2, 0x0256d0f3, 0x01711502, 0x013911c5, 0x01fa343e, 0x01768306, 0x00ea87da, 0x026f77a0, 0x00ebdf96, 0x0013c9d8}}, Y: Field{[10]uint32{0x03e28167, 0x00a59de0, 0x03425d46, 0x017536bf, 0x0115d862, 0x023da6da, 0x001fd39b, 0x03bc27e8, 0x017bf3f9, 0x0010f8b0}}},
+ {X: Field{[10]uint32{0x0374a5fc, 0x01c98570, 0x03e52143, 0x015fcbb9, 0x01b573ce, 0x02e7e94e, 0x015f0d23, 0x025aa3cd, 0x02addb41, 0x0033265a}}, Y: Field{[10]uint32{0x028ef28d, 0x027cb702, 0x019232c0, 0x02b6fffe, 0x0144284b, 0x02fa1744, 0x00a9cb66, 0x00a4d70c, 0x03871878, 0x002c7103}}},
+ {X: Field{[10]uint32{0x014ade42, 0x010c0f35, 0x006313cf, 0x0214ef6b, 0x01cd9b32, 0x017adc24, 0x0038e398, 0x036416cb, 0x02d3f3e3, 0x0031e062}}, Y: Field{[10]uint32{0x00339eee, 0x01feebe5, 0x03937800, 0x03f747d7, 0x033403a5, 0x030510f3, 0x0363fb0f, 0x02142c51, 0x004e7bbb, 0x001555d3}}},
+ {X: Field{[10]uint32{0x0189c4fd, 0x01d5cdc9, 0x0045e52a, 0x03279de5, 0x009a45db, 0x02b97496, 0x0344d1f3, 0x023affd0, 0x01846fc4, 0x001b340d}}, Y: Field{[10]uint32{0x03416e34, 0x03a33224, 0x00723a44, 0x024a34b5, 0x014d811c, 0x039347ea, 0x0367dda8, 0x038dc6b7, 0x037db165, 0x002bea16}}},
+ {X: Field{[10]uint32{0x003b2e0a, 0x03aeeb51, 0x00fd3bfa, 0x02491d37, 0x00f5231b, 0x004548c5, 0x02b72359, 0x02c6b98c, 0x0205f716, 0x003594a8}}, Y: Field{[10]uint32{0x013bedcf, 0x02281bae, 0x02dcba45, 0x008fb059, 0x03c4646a, 0x03780f62, 0x002f0d85, 0x0103df2e, 0x0021b782, 0x00348661}}},
+ {X: Field{[10]uint32{0x0052fb54, 0x0014be37, 0x02d73a6a, 0x02bf4d38, 0x0181ff0b, 0x00d00116, 0x01b3e4fe, 0x012877e6, 0x004dcd84, 0x002a01f4}}, Y: Field{[10]uint32{0x02e2cd9a, 0x0067a7e8, 0x03151af0, 0x011e5f3e, 0x00c385c0, 0x03eef1c6, 0x03e5079f, 0x0260d4ee, 0x00bb7393, 0x0006229e}}},
+ {X: Field{[10]uint32{0x009eb2d7, 0x03f705f3, 0x02de224e, 0x017a7d33, 0x01b8c3a9, 0x01b2c0ae, 0x03acd07d, 0x02b523a4, 0x03bca5d6, 0x0007bf4a}}, Y: Field{[10]uint32{0x02745b39, 0x00fbbcd9, 0x01a05006, 0x02baa2bc, 0x0202a9d2, 0x02ecd5fd, 0x03e191a1, 0x031f98d5, 0x03881b98, 0x003e547b}}},
+ {X: Field{[10]uint32{0x0395888f, 0x002e6b08, 0x01f666ed, 0x004df0ef, 0x030ea0ff, 0x025ff838, 0x02bcd044, 0x00f6d660, 0x0254d27d, 0x00016f17}}, Y: Field{[10]uint32{0x02ec3300, 0x03d97ca0, 0x003754c1, 0x01d409c4, 0x025a22d9, 0x00c86cda, 0x01f8b857, 0x03ac0598, 0x0002d4f4, 0x000d556f}}},
+ {X: Field{[10]uint32{0x006a3247, 0x02e023dd, 0x02f221f5, 0x01c456f9, 0x02158cca, 0x022b4bc7, 0x022ea80e, 0x0234379b, 0x028d26b0, 0x0003d802}}, Y: Field{[10]uint32{0x03ca3523, 0x02ceac62, 0x00aa3cd5, 0x0371945b, 0x0276c753, 0x03a3846e, 0x02f75b28, 0x03e96c1f, 0x02134bc3, 0x0008ef96}}},
+ {X: Field{[10]uint32{0x00ccaf7b, 0x00af49a4, 0x0381ae49, 0x030db1cf, 0x01f5119b, 0x0396404d, 0x01712a8b, 0x029ea331, 0x020b2ab2, 0x003f1f93}}, Y: Field{[10]uint32{0x001151a6, 0x03242ace, 0x01cddb31, 0x02d6aa0d, 0x01e4a682, 0x01b7624a, 0x02862b8a, 0x011a41ba, 0x02f41f27, 0x0012f584}}},
+ {X: Field{[10]uint32{0x01442655, 0x00eced62, 0x01700bcd, 0x0161daaa, 0x0141641d, 0x01e6d8f9, 0x0067eecd, 0x03402feb, 0x033cfe12, 0x00144c97}}, Y: Field{[10]uint32{0x033ef941, 0x00de92c4, 0x03b33a44, 0x03964730, 0x03982a35, 0x01e595ff, 0x01623605, 0x039b8b6e, 0x00ad7b7a, 0x0035aa25}}},
+ {X: Field{[10]uint32{0x0198aec8, 0x009b92b1, 0x03a09056, 0x01b6e3fb, 0x02afee9a, 0x005fc00e, 0x01bd2d57, 0x03d823c8, 0x00271a55, 0x000b6ceb}}, Y: Field{[10]uint32{0x03f9533e, 0x03832226, 0x03dd6e0d, 0x01a2d1f3, 0x013c6621, 0x0199827d, 0x00c9fc9d, 0x00718307, 0x0333a0c0, 0x003149af}}},
+ {X: Field{[10]uint32{0x01fa7dcc, 0x03481775, 0x01be51e1, 0x00d8fce4, 0x0135fbd4, 0x01f790c8, 0x0305b554, 0x02c06d7a, 0x037293de, 0x00024201}}, Y: Field{[10]uint32{0x02d7442d, 0x01304097, 0x03f23e03, 0x02134f30, 0x0164dfef, 0x01718856, 0x013d318b, 0x00ccdc19, 0x02ac1724, 0x003fa587}}},
+ {X: Field{[10]uint32{0x039ed9d6, 0x030def0c, 0x017cce2e, 0x02b4f4d6, 0x03045557, 0x01e43353, 0x02cc03f6, 0x013f20b6, 0x0181e5a6, 0x000ca86b}}, Y: Field{[10]uint32{0x027cb07a, 0x01c41898, 0x02cf3d13, 0x0362a41d, 0x0279cb55, 0x01e573b1, 0x017b63ca, 0x000089c2, 0x03681801, 0x0021eaf3}}},
+ {X: Field{[10]uint32{0x019246f9, 0x01c745d3, 0x016e9a37, 0x027556ce, 0x0108c584, 0x01c745ea, 0x031af769, 0x02714683, 0x00fa5868, 0x003df2ea}}, Y: Field{[10]uint32{0x0358ee45, 0x01ee7b2b, 0x0072cac3, 0x030bf20c, 0x025309a0, 0x01757ee8, 0x024d7333, 0x02a72bb6, 0x03a910d5, 0x003d2c2a}}},
+ {X: Field{[10]uint32{0x0329ea81, 0x022be098, 0x006d58ee, 0x0156b9c1, 0x03fab75f, 0x0015e690, 0x01b6b7bc, 0x00036759, 0x01042da9, 0x003369ac}}, Y: Field{[10]uint32{0x011771e3, 0x035bc773, 0x000fc068, 0x038a6b1f, 0x01a8ee20, 0x038d8078, 0x01171a01, 0x01d00568, 0x000eacfd, 0x001c321b}}},
+ {X: Field{[10]uint32{0x027ee58b, 0x021e3c3d, 0x03f2ac23, 0x032b446d, 0x01a46f3b, 0x0113282f, 0x00f27b05, 0x02c73a6a, 0x024009c5, 0x00289869}}, Y: Field{[10]uint32{0x03fff888, 0x01b9043c, 0x014d420c, 0x030c1496, 0x0185da67, 0x034cf5c9, 0x029cda8f, 0x036ba6d3, 0x031d4c42, 0x000789a9}}},
+ {X: Field{[10]uint32{0x01f4db57, 0x0252e9ba, 0x028846b3, 0x00f1a0bd, 0x009435aa, 0x007edb4d, 0x018e885d, 0x0210b300, 0x0167fd7f, 0x002f1c32}}, Y: Field{[10]uint32{0x00bd9468, 0x0213847e, 0x03e5718d, 0x03121f11, 0x013032ef, 0x01e195c0, 0x00a07840, 0x00b78310, 0x013a837e, 0x0028ae67}}},
+ {X: Field{[10]uint32{0x0077a9c2, 0x000e269c, 0x020269c6, 0x019c4147, 0x02c7a265, 0x03ebc8d2, 0x03fdba3f, 0x00c52532, 0x02f75dc4, 0x000d9054}}, Y: Field{[10]uint32{0x0146d265, 0x0130ca81, 0x018eae08, 0x000496f3, 0x013c8fa6, 0x03b79c75, 0x038ae4e7, 0x02150cc0, 0x03d9f4ec, 0x002b0eb1}}},
+ {X: Field{[10]uint32{0x00f3043d, 0x01b765a5, 0x01326cc3, 0x00be8f62, 0x01d82ca4, 0x01008b7e, 0x02f59d8e, 0x01756364, 0x00bed57d, 0x0014bfa9}}, Y: Field{[10]uint32{0x004feb35, 0x0150a363, 0x0399b249, 0x00216daa, 0x005708c6, 0x0299ece7, 0x038f9a37, 0x0229d7dc, 0x032852f9, 0x002dfa60}}},
+ {X: Field{[10]uint32{0x023e1a4d, 0x035a08a1, 0x03ce67b8, 0x030f4af8, 0x039c32ec, 0x026b0ffe, 0x033a096a, 0x032203e5, 0x0110c8ba, 0x000d3fba}}, Y: Field{[10]uint32{0x009c7a17, 0x0155881a, 0x008b2243, 0x02825c74, 0x002231f6, 0x008b8983, 0x00db14b1, 0x03111b1e, 0x00969c9d, 0x00383c04}}},
+ {X: Field{[10]uint32{0x0349c65b, 0x026cef76, 0x024bb401, 0x02c3d1da, 0x030f815a, 0x007c1dbd, 0x02424ec3, 0x034ba064, 0x030bf4c9, 0x001abca3}}, Y: Field{[10]uint32{0x02a45248, 0x0143fadb, 0x005d3f13, 0x03742f29, 0x0017d1e1, 0x005fd819, 0x01aa3469, 0x00ecc46a, 0x012fbb66, 0x000b157f}}},
+ {X: Field{[10]uint32{0x01320e46, 0x01d3dc93, 0x0003b8bc, 0x0204eebb, 0x03a4f0ad, 0x02b174db, 0x00f1b6b6, 0x02d07991, 0x036639e4, 0x001c2daa}}, Y: Field{[10]uint32{0x02913a14, 0x02030622, 0x02c95237, 0x01777f37, 0x0196f713, 0x025b4f37, 0x01ad5f10, 0x013f3346, 0x01e64f4e, 0x003b1902}}},
+ {X: Field{[10]uint32{0x0065724d, 0x00212068, 0x000bc155, 0x01a84e18, 0x03061419, 0x03df6ef8, 0x03eff50f, 0x01d6bab6, 0x03114ab9, 0x003b795b}}, Y: Field{[10]uint32{0x0336ecfc, 0x02b7f254, 0x0173c02d, 0x018dbbf7, 0x0371906b, 0x006c1a12, 0x01839dc6, 0x0087b49b, 0x024c11f4, 0x00279feb}}},
+ {X: Field{[10]uint32{0x016df8a4, 0x01f0f915, 0x03efe685, 0x03e7c5a0, 0x025de54a, 0x01992399, 0x0019d746, 0x01cc40f6, 0x003c840a, 0x0020f0d3}}, Y: Field{[10]uint32{0x0086cd10, 0x035c2903, 0x0040fd31, 0x00dfc426, 0x0290aa81, 0x0338bbb4, 0x00d97719, 0x035b03bb, 0x0041562d, 0x002708e0}}},
+ {X: Field{[10]uint32{0x00c7e200, 0x00164f68, 0x037c6102, 0x0114934d, 0x0052cbdb, 0x0017a1e9, 0x028cf032, 0x026e6148, 0x00900008, 0x002a8abf}}, Y: Field{[10]uint32{0x02be01f4, 0x017309e5, 0x006af2db, 0x0093fa2a, 0x006d8129, 0x00c58780, 0x013bc4fa, 0x02b0674f, 0x016ab382, 0x000d10c6}}},
+ {X: Field{[10]uint32{0x0155c520, 0x01d5cc10, 0x02800e3a, 0x0116207b, 0x03e90eb0, 0x03efdc7e, 0x02956a02, 0x03322e7c, 0x03dc4310, 0x00390bb1}}, Y: Field{[10]uint32{0x0225336c, 0x0099e735, 0x027b693c, 0x011562af, 0x012d0009, 0x02369536, 0x00324bbe, 0x02473f88, 0x02cfa52d, 0x0024e7bc}}},
+ {X: Field{[10]uint32{0x02ec2b21, 0x0315818c, 0x01dd34a3, 0x02ac99ff, 0x00181617, 0x005bbe7d, 0x038de47a, 0x014803f5, 0x0124937c, 0x002f02f7}}, Y: Field{[10]uint32{0x02b63035, 0x034a64d4, 0x03ac9df6, 0x00448175, 0x004a0285, 0x024ac21c, 0x02e0e1d1, 0x0087de61, 0x024c10b5, 0x00036c12}}},
+ {X: Field{[10]uint32{0x01adc8e7, 0x013aebab, 0x03990626, 0x03559037, 0x0155c005, 0x03dd838a, 0x0310fbb3, 0x029ccd78, 0x01d89b43, 0x00372232}}, Y: Field{[10]uint32{0x002fc512, 0x00f2353f, 0x0163625a, 0x00cb308f, 0x033fe37b, 0x027faded, 0x03fc6777, 0x011e5196, 0x01e46f98, 0x000b59de}}},
+ {X: Field{[10]uint32{0x00111c20, 0x0278d260, 0x03210f6f, 0x01422315, 0x035ee3dc, 0x00175dbb, 0x030cb02e, 0x00cb18bf, 0x018ab0c9, 0x0029eb83}}, Y: Field{[10]uint32{0x02e553a2, 0x001f6864, 0x03cdd01d, 0x0115a48c, 0x03ac8dcc, 0x00c87794, 0x039dc94b, 0x018b2262, 0x03c9d631, 0x00358caa}}},
+ {X: Field{[10]uint32{0x00be0e97, 0x0296b317, 0x03215592, 0x026e97c0, 0x00d631ac, 0x01f69b99, 0x0203af75, 0x01baaf6c, 0x036ee7bd, 0x00118808}}, Y: Field{[10]uint32{0x00627c6e, 0x025da40a, 0x018c88fa, 0x02f1c0a3, 0x02707851, 0x03eb99a8, 0x0330cdf4, 0x0078a9b3, 0x004f69ea, 0x00177d09}}},
+ {X: Field{[10]uint32{0x03d8f671, 0x036647c9, 0x00a38e2b, 0x03fcd276, 0x015cd35f, 0x03e4c8c0, 0x0350acac, 0x0364c147, 0x004a3d8b, 0x0020132e}}, Y: Field{[10]uint32{0x00ae8d3f, 0x026a391c, 0x01267bbc, 0x014aef9b, 0x00cdc395, 0x000d884a, 0x02b2f192, 0x03e0d65a, 0x00129ee0, 0x0012ddee}}},
+ {X: Field{[10]uint32{0x011c2ed2, 0x0076ef6e, 0x032378e7, 0x01343881, 0x02b4f6fb, 0x02918e44, 0x001fcbee, 0x02cbcae0, 0x030f5382, 0x001ba94d}}, Y: Field{[10]uint32{0x00b2d88d, 0x02f85064, 0x025b1a8b, 0x038b4de0, 0x008b513e, 0x006567b2, 0x012a002f, 0x03fc203a, 0x0109d8f3, 0x003d6d3e}}},
+ {X: Field{[10]uint32{0x02e22ba6, 0x031c1ca8, 0x01f4769f, 0x000ee068, 0x031ee564, 0x03d871ac, 0x03b0852a, 0x01d6984a, 0x021c4ff5, 0x00362e37}}, Y: Field{[10]uint32{0x02468c0e, 0x00e37d38, 0x018928d5, 0x032d1ec1, 0x01f23cbd, 0x017095b9, 0x02ad8275, 0x02fe2625, 0x0190d37a, 0x00078f10}}},
+ {X: Field{[10]uint32{0x01f1b147, 0x0320a47b, 0x00a9e475, 0x019c1420, 0x0080d384, 0x00e8035b, 0x033f3ea4, 0x02f5ba71, 0x006404a0, 0x0019ab06}}, Y: Field{[10]uint32{0x03a1260e, 0x02207313, 0x030bca61, 0x0319cf6a, 0x029be98e, 0x0147868d, 0x0103efd5, 0x02ddd805, 0x000f7db6, 0x000b3183}}},
+ {X: Field{[10]uint32{0x0360e942, 0x0314d9cf, 0x0185bef3, 0x00d70dd7, 0x02f27844, 0x022d6972, 0x0263cf93, 0x008f9c1d, 0x022c4ed2, 0x0011c652}}, Y: Field{[10]uint32{0x03d9f920, 0x01213034, 0x036045f4, 0x033aaf7d, 0x035808a3, 0x01409f55, 0x032738c7, 0x03704def, 0x011b5a64, 0x002c3f78}}},
+ {X: Field{[10]uint32{0x024c6186, 0x034f3d0a, 0x0229010b, 0x00ab17c1, 0x009fdc1b, 0x02375da3, 0x02747428, 0x03660e20, 0x00599af2, 0x00045072}}, Y: Field{[10]uint32{0x02f0226e, 0x014234fb, 0x02c64d6b, 0x034aea63, 0x005392a0, 0x015e343e, 0x017555a0, 0x01184ccc, 0x034761ed, 0x001e90c7}}},
+ {X: Field{[10]uint32{0x03496f79, 0x00c030f9, 0x0251d4ba, 0x03585ab1, 0x01487002, 0x03ee3952, 0x01da689b, 0x03fa7b59, 0x01d8e80a, 0x003e416f}}, Y: Field{[10]uint32{0x03bfcf72, 0x0096c65d, 0x000fca7e, 0x0317e7d3, 0x03cd999f, 0x01fc1419, 0x021b03ba, 0x01411751, 0x037f3bfb, 0x0007b1ef}}},
+ {X: Field{[10]uint32{0x0315e9e0, 0x03c7eb03, 0x023e5573, 0x00beb51e, 0x00232ea6, 0x0053c2be, 0x004faadb, 0x014bb88f, 0x00e4fba4, 0x002e952e}}, Y: Field{[10]uint32{0x00f5cda8, 0x02f52818, 0x030b8da1, 0x002c044d, 0x039c96ed, 0x00ab203c, 0x018e48a8, 0x02ef36ef, 0x02e9efca, 0x002bd55a}}},
+ {X: Field{[10]uint32{0x0226a80a, 0x028a2d02, 0x035e9c08, 0x01080e9d, 0x001494a0, 0x00d868ad, 0x0287f3cf, 0x01b890c3, 0x02d0561f, 0x001674fa}}, Y: Field{[10]uint32{0x000a9bc8, 0x007863c0, 0x015d9ac5, 0x00730b42, 0x02f5f1ba, 0x009f1cc1, 0x00a278d4, 0x0088a70a, 0x007d50a9, 0x0026c9bd}}},
+ {X: Field{[10]uint32{0x00865d47, 0x03641c2b, 0x00f5b129, 0x0023bfc0, 0x0315520a, 0x01f83cf3, 0x032924be, 0x0324a363, 0x023fab4c, 0x000a9b96}}, Y: Field{[10]uint32{0x00a625a5, 0x01dc60d7, 0x000cb38b, 0x037ba4e0, 0x00919913, 0x01824d47, 0x01191964, 0x01c08e1b, 0x03505872, 0x00015700}}},
+ {X: Field{[10]uint32{0x00907502, 0x022c00aa, 0x03d84682, 0x00716aba, 0x01fff1fb, 0x010b3d96, 0x00afe918, 0x03b90422, 0x00d1c35b, 0x002263d4}}, Y: Field{[10]uint32{0x02f3267b, 0x02e3e3d8, 0x01a79daf, 0x03c528f1, 0x02fc9bd0, 0x01ae1300, 0x0202e490, 0x00ab406b, 0x0280c97c, 0x002c915b}}},
+ {X: Field{[10]uint32{0x016af85a, 0x03119c43, 0x03bf9422, 0x028eb013, 0x03bda5d9, 0x027b8f34, 0x01d2304e, 0x03c32c7e, 0x02b8b49b, 0x00346152}}, Y: Field{[10]uint32{0x03155c20, 0x03fafa51, 0x03fabd0a, 0x00085f7d, 0x00d7bdeb, 0x00fb77cd, 0x016a0775, 0x0206016c, 0x000fd881, 0x00013894}}},
+ {X: Field{[10]uint32{0x02af4680, 0x037f19bf, 0x01303a3e, 0x03d0a15b, 0x024a417d, 0x025a3bdf, 0x03cc787d, 0x02db87c0, 0x008a394d, 0x002187ee}}, Y: Field{[10]uint32{0x02135da6, 0x0348d882, 0x018dddc6, 0x022f6f00, 0x0268f3c3, 0x018e3380, 0x03ff11b0, 0x002c4c8f, 0x015aab8b, 0x002975fa}}},
+ {X: Field{[10]uint32{0x013403d6, 0x033d8b60, 0x0111cb0c, 0x000ce7f0, 0x03ea5269, 0x019db3de, 0x0155d90b, 0x0277f0f0, 0x0368b9fa, 0x0025513d}}, Y: Field{[10]uint32{0x006e047f, 0x02659c20, 0x0290253e, 0x000d78c0, 0x0328d876, 0x02fd4552, 0x011ed21b, 0x01893c21, 0x012fcbde, 0x0033b136}}},
+ {X: Field{[10]uint32{0x01db68e9, 0x01732a34, 0x009ba2cb, 0x0034edc5, 0x00311cd4, 0x027ce825, 0x00d7b078, 0x019af88f, 0x0192f80a, 0x003ddc88}}, Y: Field{[10]uint32{0x001b516e, 0x03bf83f2, 0x03462d40, 0x00809dfd, 0x011c11e3, 0x03321479, 0x02266610, 0x035939cf, 0x029f3243, 0x00010743}}},
+ {X: Field{[10]uint32{0x018e14ed, 0x0381eb5a, 0x02fc1be9, 0x01f10e7d, 0x01b6bd8e, 0x027aa479, 0x039927a8, 0x01ca6f6f, 0x00651f88, 0x0021dad3}}, Y: Field{[10]uint32{0x016b49da, 0x00c7773e, 0x004e16ad, 0x02121aae, 0x037b5730, 0x018bc94d, 0x0387b88f, 0x03a7773d, 0x03811cfa, 0x003b38b3}}},
+ {X: Field{[10]uint32{0x03b70b10, 0x032c0f01, 0x03127b7e, 0x03d8cd4e, 0x00721be8, 0x0245e267, 0x00614278, 0x02649221, 0x00e46224, 0x001c1abd}}, Y: Field{[10]uint32{0x0258a5f3, 0x0141ba5f, 0x03545aa6, 0x0383984b, 0x00cdcf0e, 0x004f7add, 0x015bd298, 0x0348039a, 0x01720c65, 0x00325cb6}}},
+ {X: Field{[10]uint32{0x03863c9d, 0x0256df7c, 0x03ddef14, 0x016fe745, 0x024301b7, 0x009f97d2, 0x00dde0ba, 0x01898ad7, 0x0218c9c9, 0x0033a5e8}}, Y: Field{[10]uint32{0x02a1ef10, 0x01c2b280, 0x03f55c57, 0x02c9cac0, 0x01c12900, 0x01ebda3c, 0x0116410d, 0x00509a22, 0x021a20fd, 0x003a4e63}}},
+ {X: Field{[10]uint32{0x013be895, 0x03991275, 0x019bca8f, 0x03afa6cf, 0x037dae0f, 0x00b6cf54, 0x02a1f01c, 0x020c7a21, 0x039a92cf, 0x003ed896}}, Y: Field{[10]uint32{0x02599a37, 0x0165f7a0, 0x0344c30d, 0x030a9947, 0x031fe2a8, 0x00b2fc88, 0x029d68f1, 0x02781028, 0x0274ba56, 0x001fde0f}}},
+ {X: Field{[10]uint32{0x01f4747d, 0x00b16955, 0x01bc4c6b, 0x03ced0b7, 0x02f126c6, 0x020cc912, 0x039098a8, 0x00ae2d46, 0x03697a7d, 0x00207fef}}, Y: Field{[10]uint32{0x0006f33b, 0x000858bc, 0x00d0a8b0, 0x037b43f5, 0x0190b4d1, 0x0336aa9f, 0x013d5303, 0x03bedcc8, 0x0357982e, 0x0038b19c}}},
+ {X: Field{[10]uint32{0x020ed0e4, 0x00c6d55a, 0x01ba8c0f, 0x01def9a5, 0x00679d6b, 0x002728bb, 0x016d4d63, 0x02adf2bc, 0x03668c30, 0x001b7f03}}, Y: Field{[10]uint32{0x015a563c, 0x03fe1f6c, 0x03d905ae, 0x00e2ff77, 0x01367724, 0x003d107a, 0x002d7a62, 0x02a9d0c6, 0x02b2d9a0, 0x002907b4}}},
+ {X: Field{[10]uint32{0x03501b44, 0x03e530ce, 0x0023fe77, 0x037e22f3, 0x001d5715, 0x03d8f0ca, 0x01a9b5b0, 0x0395aae8, 0x01d1b953, 0x00071afc}}, Y: Field{[10]uint32{0x00e4b0ef, 0x00d82279, 0x02d3a8e3, 0x037e4688, 0x028f1e74, 0x01f0ae92, 0x01c368bf, 0x005e0806, 0x014db4ca, 0x003199c8}}},
+ {X: Field{[10]uint32{0x02def93d, 0x03f491fe, 0x00ba6b2a, 0x03c3479e, 0x035417b9, 0x005134bc, 0x00632319, 0x027d8176, 0x02df5d99, 0x002da444}}, Y: Field{[10]uint32{0x018df4ae, 0x00d318d5, 0x020209a0, 0x01722508, 0x00464f11, 0x02b2b77b, 0x00fafeb8, 0x021b9c1c, 0x037a3028, 0x000858f3}}},
+ {X: Field{[10]uint32{0x0176b6e0, 0x0192f792, 0x0287cda4, 0x03363805, 0x019737a2, 0x027be48a, 0x018b8fcf, 0x003e45f1, 0x0332ac23, 0x002f00e1}}, Y: Field{[10]uint32{0x025682d2, 0x007011a8, 0x00ab3719, 0x03677d8e, 0x017a7ae0, 0x01f88ce1, 0x03e1d6fa, 0x018dcd80, 0x02010079, 0x0000ce49}}},
+ {X: Field{[10]uint32{0x03e32d81, 0x00faf689, 0x001ae183, 0x0032b7b4, 0x007489c2, 0x0166ec03, 0x024d9aee, 0x02b531aa, 0x02951047, 0x0025b7cc}}, Y: Field{[10]uint32{0x02e2034b, 0x02313bf8, 0x00466181, 0x03c7999d, 0x02cbfaa8, 0x01743c19, 0x01189bbf, 0x018cf060, 0x002d74ce, 0x001063db}}},
+ {X: Field{[10]uint32{0x02304979, 0x034be9da, 0x001d263c, 0x03e8bcd4, 0x01cb6a65, 0x02d864f0, 0x02fcefde, 0x0102afb1, 0x0227939e, 0x0028f14c}}, Y: Field{[10]uint32{0x03c967e4, 0x0283b5b6, 0x00de8caf, 0x02637180, 0x0300f467, 0x01e8bd99, 0x0329ade3, 0x029bc64b, 0x02a5498e, 0x00111a32}}},
+ {X: Field{[10]uint32{0x0145eb2b, 0x02bc2b49, 0x01a92601, 0x011ae475, 0x017a0c7d, 0x0385ca98, 0x005f1b31, 0x01b5b5ae, 0x02073dfd, 0x0024ff60}}, Y: Field{[10]uint32{0x0163a847, 0x025f51f5, 0x02866883, 0x026c82e2, 0x03961155, 0x02b3faec, 0x03ca8636, 0x01a9046f, 0x02c19a8a, 0x001806fa}}},
+ {X: Field{[10]uint32{0x02ca0a9b, 0x01e82ea1, 0x00a2bee8, 0x027ad179, 0x01a5bc0d, 0x011a2b63, 0x039acef2, 0x018fc403, 0x03ef2e2c, 0x002e9f4e}}, Y: Field{[10]uint32{0x015114dc, 0x03bf2ba9, 0x02e097c6, 0x02c5eefc, 0x01376f29, 0x0316daf6, 0x0133ed0b, 0x0278c443, 0x02673312, 0x003fffe6}}},
+ {X: Field{[10]uint32{0x036157a8, 0x010a4380, 0x03011190, 0x03ea5fbc, 0x00218898, 0x025935e9, 0x01972582, 0x0270d65d, 0x01c02a4f, 0x00383655}}, Y: Field{[10]uint32{0x01c617f0, 0x02ee6140, 0x0397baa2, 0x01a75699, 0x01b28cbc, 0x021c1de2, 0x0382f0f0, 0x002ee681, 0x039e7d42, 0x0005dbf7}}},
+ {X: Field{[10]uint32{0x03f81ac9, 0x0111d42f, 0x02dcd0a4, 0x03f785d4, 0x036cd226, 0x01a435aa, 0x02da689c, 0x032e4c44, 0x01408320, 0x0005acb0}}, Y: Field{[10]uint32{0x018bb281, 0x031de436, 0x01edd2ab, 0x02494f19, 0x025025f7, 0x02a85edb, 0x0217488f, 0x00e4cbc9, 0x00e3dafd, 0x000a8beb}}},
+ {X: Field{[10]uint32{0x01f502da, 0x00af043a, 0x020c7fc2, 0x02e3ad36, 0x02220db4, 0x02569053, 0x01d61d97, 0x00f8bd91, 0x00329c82, 0x000beec1}}, Y: Field{[10]uint32{0x00ebc31d, 0x02d89664, 0x00246a0a, 0x0239a7d6, 0x030cbfe5, 0x021c1a2a, 0x03cda69c, 0x0377eeae, 0x02ef15ea, 0x0006b7d9}}},
+ {X: Field{[10]uint32{0x03208ebf, 0x00b79399, 0x01ccce13, 0x020e3277, 0x02c178f8, 0x00135915, 0x0122f2f4, 0x0095e6d9, 0x00daf42d, 0x0019244d}}, Y: Field{[10]uint32{0x009355cb, 0x015b0efc, 0x00e8a4a7, 0x0147f991, 0x02e7709b, 0x02a6ba96, 0x00446480, 0x012f09e2, 0x03fc3c55, 0x0010e16a}}},
+ {X: Field{[10]uint32{0x013991cd, 0x03b7e2c3, 0x03023dbc, 0x02c2e264, 0x03128d62, 0x0271ff7b, 0x0201c172, 0x007e7381, 0x00b1dcb8, 0x002e5551}}, Y: Field{[10]uint32{0x029dcd2a, 0x0314e0dd, 0x02b0f33c, 0x01824f02, 0x03206fe7, 0x013c1c9b, 0x01f2d450, 0x0378cb54, 0x02dcffba, 0x003e1c7e}}},
+ {X: Field{[10]uint32{0x01d668de, 0x00f03297, 0x0389fd06, 0x005c0a23, 0x02ace1ea, 0x012c6c25, 0x03df5b4a, 0x03430288, 0x03fc5034, 0x0033500e}}, Y: Field{[10]uint32{0x02717742, 0x0387f509, 0x0316054e, 0x01529763, 0x023fa92e, 0x00e92fc3, 0x0359760f, 0x03d1bd27, 0x0131aa56, 0x00304a58}}},
+ {X: Field{[10]uint32{0x0004c581, 0x03a91e0f, 0x019394b6, 0x01e656d3, 0x021ad784, 0x026a3d5a, 0x0202074c, 0x02f72640, 0x0337d7f8, 0x000292ab}}, Y: Field{[10]uint32{0x0316da34, 0x00d234eb, 0x03431009, 0x032ce22b, 0x031a8cb9, 0x001dcf5c, 0x02594f94, 0x02d873f4, 0x02f2dc02, 0x00132ced}}},
+ {X: Field{[10]uint32{0x03f438c4, 0x01f67e2a, 0x039376c3, 0x031f9b9e, 0x0297478f, 0x021915e3, 0x02dd3c52, 0x00123a17, 0x03f8ebdf, 0x0015c40b}}, Y: Field{[10]uint32{0x00161d4f, 0x00763bbe, 0x01128833, 0x005a42ad, 0x01915aef, 0x0146cbcc, 0x01e308c2, 0x00658b9e, 0x019beaec, 0x003213c7}}},
+ {X: Field{[10]uint32{0x03c9b6ac, 0x02c188e8, 0x01774832, 0x02171a02, 0x01124246, 0x03ebf1c0, 0x00c08c58, 0x017f8442, 0x00e93c5c, 0x001a3fa6}}, Y: Field{[10]uint32{0x004df273, 0x02033e43, 0x01cd4d64, 0x023fba1c, 0x03cb5ea5, 0x011bc878, 0x00078e2c, 0x01ae1fba, 0x0017fd95, 0x00124ab1}}},
+ {X: Field{[10]uint32{0x024a5e77, 0x022f900a, 0x03d43ec0, 0x028ac224, 0x03d97bae, 0x00bba92a, 0x0132cef0, 0x0388ebc2, 0x03b69ef5, 0x0000352e}}, Y: Field{[10]uint32{0x03c7c98c, 0x03e92c11, 0x00166607, 0x0130a8b7, 0x019e7488, 0x00334231, 0x01e223df, 0x02b8c7d9, 0x02609c1d, 0x00016063}}},
+ {X: Field{[10]uint32{0x0283192a, 0x01f9a416, 0x03b5d68c, 0x00fdd8fc, 0x0123a5c5, 0x022b314f, 0x00d872f2, 0x022dc9fc, 0x0157a8eb, 0x003a589e}}, Y: Field{[10]uint32{0x010d984f, 0x026ea1f3, 0x008d66e5, 0x015d3d68, 0x020cab10, 0x01329b32, 0x0066d17d, 0x005a5b65, 0x027ddc29, 0x00176a4b}}},
+ {X: Field{[10]uint32{0x0311caf5, 0x008e0bc5, 0x032076dd, 0x03cb7e0f, 0x001cd547, 0x003e7fa1, 0x0108ffb7, 0x03cbadf1, 0x00ada83b, 0x00127c87}}, Y: Field{[10]uint32{0x01f31931, 0x022497ce, 0x00114ca1, 0x00693fb6, 0x03244761, 0x00cb9bbf, 0x033afc21, 0x013b62b1, 0x01295f83, 0x00071f60}}},
+ {X: Field{[10]uint32{0x02fa792e, 0x034060ab, 0x0364dfd6, 0x03316c3f, 0x006c34a8, 0x0061c4f5, 0x011d110c, 0x00754c53, 0x02a940f6, 0x000160a0}}, Y: Field{[10]uint32{0x005f6ddd, 0x03c28d04, 0x0091e677, 0x0124fab0, 0x012a96ee, 0x0360f5f7, 0x03701457, 0x03cb5948, 0x0155d3e0, 0x001e1578}}},
+ {X: Field{[10]uint32{0x03ca118d, 0x01a46648, 0x012e5f55, 0x039d0f52, 0x01dc3a14, 0x01c2fb1f, 0x01db6f1d, 0x0009e9ed, 0x02324b07, 0x0032725e}}, Y: Field{[10]uint32{0x0264b56d, 0x035d31a5, 0x001e8747, 0x03678bb1, 0x0115d600, 0x03080cae, 0x031e99f7, 0x037f870a, 0x000f894d, 0x003d807d}}},
+ {X: Field{[10]uint32{0x019e054e, 0x00568845, 0x0062b8d5, 0x0332a9ca, 0x039bbbe0, 0x0047e49c, 0x027bcdda, 0x01d4061a, 0x01758ed6, 0x00279370}}, Y: Field{[10]uint32{0x03c6c0ab, 0x020e04f3, 0x03d3bc94, 0x0321c57a, 0x03fcf4f4, 0x026df8db, 0x00736aa1, 0x019a9af8, 0x031f2bb8, 0x00328470}}},
+ {X: Field{[10]uint32{0x02afe2b5, 0x03c31ae2, 0x0152f7a7, 0x03d89a3d, 0x028e5af1, 0x0337ef76, 0x00c1e5e8, 0x000c2f36, 0x03893ae0, 0x003f418d}}, Y: Field{[10]uint32{0x01c8e676, 0x008754c3, 0x00435b2e, 0x02037c68, 0x01f4a354, 0x00c9b700, 0x0068a8e4, 0x01d12881, 0x030b068d, 0x0023027a}}},
+ {X: Field{[10]uint32{0x014af04e, 0x00ac9cbf, 0x02c77b3f, 0x02d6d19b, 0x00d85360, 0x004ddd60, 0x0281c3ec, 0x01d9466e, 0x033b6e7a, 0x000df7f7}}, Y: Field{[10]uint32{0x00fb7844, 0x02d3e3b4, 0x01727ea3, 0x0217b250, 0x03043dcd, 0x0004a79d, 0x00f3b078, 0x009d635e, 0x03b27b73, 0x00330c4d}}},
+ {X: Field{[10]uint32{0x001dbae0, 0x0291751b, 0x018ffe72, 0x0127785b, 0x010a69cb, 0x034af832, 0x01a2f18b, 0x038971dc, 0x006ac8a5, 0x00117bc4}}, Y: Field{[10]uint32{0x020ab158, 0x022da608, 0x00bf42ad, 0x006cc646, 0x0060e568, 0x00058d24, 0x03bd452e, 0x01f6dcfd, 0x000d742e, 0x0032b5a9}}},
+ {X: Field{[10]uint32{0x01fdfca4, 0x0091a704, 0x02d14be0, 0x036f0414, 0x0099648c, 0x011cafd6, 0x03cde710, 0x0328941c, 0x02f988b9, 0x00096314}}, Y: Field{[10]uint32{0x01939dfd, 0x02be7b0a, 0x00ffc359, 0x02e20e53, 0x010d60d0, 0x0296d87f, 0x026c9e21, 0x0171f1a9, 0x008b26ea, 0x00112476}}},
+ {X: Field{[10]uint32{0x01e65217, 0x014464ea, 0x01c83afd, 0x019f7a20, 0x01d4f8ff, 0x034dbc76, 0x00cddb90, 0x0138d8f4, 0x00a7727c, 0x002f24a9}}, Y: Field{[10]uint32{0x03aa5120, 0x004c4898, 0x039d79dd, 0x02d2e8dd, 0x00331c22, 0x01193a70, 0x031c024d, 0x011e5587, 0x0208b18b, 0x001dbfda}}},
+ {X: Field{[10]uint32{0x01f27ebd, 0x0304b451, 0x03353249, 0x00dfed7f, 0x0223e4e8, 0x03055aef, 0x01ceccb0, 0x0120d3c4, 0x00c258c0, 0x0022867a}}, Y: Field{[10]uint32{0x00e92c1a, 0x017941f9, 0x01f065d6, 0x032e1706, 0x018f50a9, 0x02e5e3f8, 0x016caca2, 0x023a8831, 0x0070bff4, 0x00057f1b}}},
+ {X: Field{[10]uint32{0x01d70eea, 0x02447a95, 0x00572d9c, 0x02a30a91, 0x03e6f3b1, 0x00e65a2f, 0x013c1a7a, 0x00d136c4, 0x02d1ab90, 0x003966e0}}, Y: Field{[10]uint32{0x013b91be, 0x00abf20c, 0x00b80cc2, 0x02640205, 0x036634d6, 0x00baa9db, 0x01f0bc01, 0x01a86f93, 0x018cd58c, 0x002478cf}}},
+ {X: Field{[10]uint32{0x0371a7d0, 0x000c6c1c, 0x03eb3330, 0x034976b2, 0x020f3456, 0x03e506fa, 0x0017db72, 0x01335af1, 0x025f8824, 0x003e653b}}, Y: Field{[10]uint32{0x019c62e2, 0x0102816b, 0x03d40514, 0x027d09c1, 0x03d9c268, 0x036b923d, 0x02bf9c04, 0x0266ccc0, 0x006aecc2, 0x002409be}}},
+ {X: Field{[10]uint32{0x0000410f, 0x00e9a4de, 0x015ffc1e, 0x03355976, 0x018000cc, 0x0200f448, 0x0317bc79, 0x03e9409e, 0x008c32d1, 0x001ddb13}}, Y: Field{[10]uint32{0x00785149, 0x03c2eb72, 0x03803165, 0x0298e104, 0x01988b64, 0x00f4f8c6, 0x00201d50, 0x01dce1be, 0x0234438e, 0x00103b38}}},
+ {X: Field{[10]uint32{0x01c9b12e, 0x00feb96d, 0x02620fb8, 0x022b1780, 0x0032c196, 0x02fc95cc, 0x00aea3d8, 0x02c004a7, 0x01a5dd13, 0x000e4d9d}}, Y: Field{[10]uint32{0x035a8b00, 0x0129a7e9, 0x02dc0378, 0x01cd39d0, 0x032e5dc7, 0x02c3af30, 0x016ff4c4, 0x00033bb4, 0x03c47934, 0x000e79b3}}},
+ {X: Field{[10]uint32{0x03401b1e, 0x027ea330, 0x00eaa2f0, 0x03c9efce, 0x0094dcfd, 0x0242f87f, 0x01de130e, 0x031ed8b3, 0x029422ed, 0x0035f374}}, Y: Field{[10]uint32{0x014fb184, 0x031c194d, 0x00302db5, 0x03662fc5, 0x020728bd, 0x031e7ad1, 0x00ca141d, 0x03462edd, 0x0328073c, 0x00372e72}}},
+ {X: Field{[10]uint32{0x0256bc2c, 0x019f73db, 0x021b99cb, 0x01ea6216, 0x01902613, 0x00925274, 0x02206718, 0x011278fd, 0x01272726, 0x002f38fc}}, Y: Field{[10]uint32{0x02e76217, 0x0355e1b9, 0x0097d296, 0x01f714a9, 0x011c33c3, 0x02b4496b, 0x0168f040, 0x037692fa, 0x0017ee92, 0x00290900}}},
+ {X: Field{[10]uint32{0x035d6e52, 0x037ba5ff, 0x01eb9738, 0x00ddd0e6, 0x03700801, 0x0078d7eb, 0x02daf442, 0x010529e6, 0x00cdefe9, 0x00277c26}}, Y: Field{[10]uint32{0x01abf15d, 0x0223ae94, 0x01baf3b7, 0x02d36fbc, 0x03f04bf4, 0x01a45f65, 0x0317bb80, 0x0250f343, 0x035fef36, 0x001afe48}}},
+ {X: Field{[10]uint32{0x03d43f1d, 0x0332536c, 0x02522e8d, 0x02d1c888, 0x0005d88a, 0x0249c4e8, 0x00839a82, 0x03712a69, 0x002ee561, 0x00265616}}, Y: Field{[10]uint32{0x028c226a, 0x013a2341, 0x00dc78cb, 0x02cd0ed7, 0x02850008, 0x00966cde, 0x0376cba2, 0x03c8fa1b, 0x0214b63a, 0x00382562}}},
+ {X: Field{[10]uint32{0x01fb1f24, 0x024cf11b, 0x02871bad, 0x01e548ce, 0x03dda933, 0x02230122, 0x0292447c, 0x009e79f4, 0x00ce7d7b, 0x000f9fee}}, Y: Field{[10]uint32{0x008806e5, 0x01bb2b59, 0x0309d229, 0x02aa4e17, 0x02e36352, 0x001ae92f, 0x037a5dd9, 0x0208e4b5, 0x01083410, 0x000109e7}}},
+ {X: Field{[10]uint32{0x01e8ed62, 0x0029a8dd, 0x001c71ac, 0x01a7f2da, 0x0097611d, 0x0209b3d6, 0x02c93ee7, 0x01684433, 0x0050f740, 0x00073415}}, Y: Field{[10]uint32{0x0334d0f0, 0x02880eeb, 0x0136b039, 0x017264c6, 0x025759d3, 0x002e54db, 0x020a3a02, 0x02c10358, 0x0070bb52, 0x000216ef}}},
+ {X: Field{[10]uint32{0x03c9b367, 0x02b6fdf5, 0x005e3c76, 0x03283ed3, 0x0393cf99, 0x02e040cb, 0x0387bd01, 0x0168f7db, 0x03763214, 0x0001411d}}, Y: Field{[10]uint32{0x03d1d2c3, 0x01820115, 0x03f7a1ed, 0x008e2132, 0x00a0e67b, 0x031c7d06, 0x02b97ce6, 0x01ddc627, 0x0359919c, 0x0001eeb7}}},
+ {X: Field{[10]uint32{0x0070e6ea, 0x03de8391, 0x030be636, 0x00afdfcb, 0x0079fd30, 0x03452629, 0x01b8d87a, 0x012ea0c2, 0x02c949b6, 0x0007aa44}}, Y: Field{[10]uint32{0x002b7650, 0x0021b401, 0x02b4d029, 0x039b3e0e, 0x014acd50, 0x0140aba3, 0x014896d3, 0x00477a10, 0x03dd0b12, 0x0026c9e7}}},
+ {X: Field{[10]uint32{0x01a01628, 0x00c0a3c8, 0x007ac8c0, 0x026f4bd3, 0x03e1ed32, 0x017c0f12, 0x00e0b009, 0x001daf2d, 0x00d34b00, 0x0026cfe8}}, Y: Field{[10]uint32{0x03d420de, 0x02549f09, 0x01f4126e, 0x035543bf, 0x038cef81, 0x033b1987, 0x00d5dcb0, 0x023bd4b8, 0x0248b2a5, 0x0004045e}}},
+ {X: Field{[10]uint32{0x024c94eb, 0x01e3f020, 0x03e22ff6, 0x00a34095, 0x036200d1, 0x02eb4530, 0x02c7f7f5, 0x027712ce, 0x03b801d3, 0x00197fbd}}, Y: Field{[10]uint32{0x0308b475, 0x026bc249, 0x032fe325, 0x03b1e80a, 0x02f2dcd6, 0x01bbc9db, 0x0373b9b3, 0x013f09dc, 0x01ee680c, 0x000c0878}}},
+ {X: Field{[10]uint32{0x0385f9ac, 0x00a45fdf, 0x01d46c5a, 0x02ee3f7b, 0x036ef5e1, 0x030afbd6, 0x004c0f2b, 0x00e95419, 0x023daf76, 0x000f9dec}}, Y: Field{[10]uint32{0x024f3221, 0x02cf930a, 0x0021b415, 0x021443f4, 0x018d4fc7, 0x00b6cb1e, 0x03f0766a, 0x01e1e671, 0x00e95bb0, 0x00156c9e}}},
+ {X: Field{[10]uint32{0x01de2965, 0x023022c8, 0x0378396f, 0x0228c8cb, 0x02f69fbf, 0x0335f4d4, 0x0215fba1, 0x0248af11, 0x02bf2fec, 0x000ab136}}, Y: Field{[10]uint32{0x019f957f, 0x03cfab08, 0x0089fa92, 0x00947bfc, 0x006d6494, 0x03e16946, 0x03e60187, 0x022f3c0a, 0x00177623, 0x000b0cf0}}},
+ {X: Field{[10]uint32{0x0162c66e, 0x0150a153, 0x0155868d, 0x03c65f8c, 0x03748be0, 0x00acb3ae, 0x01feac74, 0x00134215, 0x022067da, 0x003faf22}}, Y: Field{[10]uint32{0x01d96083, 0x012a3499, 0x03bd1a55, 0x01b6898a, 0x01e3db34, 0x004169dc, 0x029d583e, 0x0398ffe6, 0x02873d45, 0x002bb8e4}}},
+ {X: Field{[10]uint32{0x0206a569, 0x023da261, 0x038d3e1c, 0x000b7138, 0x02026542, 0x01715006, 0x002d10bd, 0x009d4623, 0x00b4a598, 0x0029045d}}, Y: Field{[10]uint32{0x03732a00, 0x0021fa47, 0x0367e3bd, 0x00be3643, 0x016b589f, 0x020ad947, 0x0165337e, 0x03e17b1a, 0x03b99fb5, 0x002f1ad8}}},
+ {X: Field{[10]uint32{0x025de220, 0x02919396, 0x02ae93a3, 0x0134f2bc, 0x02907c19, 0x004bdd26, 0x0397fc6d, 0x028ebcee, 0x02cf5d10, 0x00048865}}, Y: Field{[10]uint32{0x0304e533, 0x031ba4a4, 0x032b946f, 0x03175016, 0x01674697, 0x02508ff7, 0x00e2c7c5, 0x03884d51, 0x0342b3c1, 0x00333d19}}},
+ {X: Field{[10]uint32{0x021eadb3, 0x02d98f0b, 0x0373e799, 0x0187a38e, 0x019f93ec, 0x03219dd8, 0x03bfaa08, 0x03731f86, 0x01cb0104, 0x001deeb5}}, Y: Field{[10]uint32{0x02faa3cc, 0x03a18271, 0x00fea411, 0x02317bc2, 0x014023fd, 0x03c948bb, 0x021214dd, 0x037afd23, 0x007bad8b, 0x0002225d}}},
+ {X: Field{[10]uint32{0x02d4a98b, 0x005faec4, 0x015d2f55, 0x0225a578, 0x024e3f6c, 0x00cc9f9b, 0x01451637, 0x02b505ab, 0x00758c49, 0x0007a350}}, Y: Field{[10]uint32{0x023b09f4, 0x01a05803, 0x01cd1259, 0x02835220, 0x0398d94a, 0x032f13e0, 0x03379a2e, 0x02986726, 0x00b00730, 0x000745b3}}},
+ {X: Field{[10]uint32{0x03b6ee42, 0x01a7e97e, 0x028cfb18, 0x02b3d280, 0x01880ff2, 0x03ed6d4d, 0x03f4974a, 0x01077521, 0x016b2402, 0x00321e99}}, Y: Field{[10]uint32{0x02757beb, 0x02bfdc2f, 0x01cb76dd, 0x02a2d326, 0x0134f694, 0x029a9e43, 0x0174412f, 0x0254e17b, 0x033a6fac, 0x0005bc97}}},
+ {X: Field{[10]uint32{0x0355a4eb, 0x02f67092, 0x03b8071f, 0x005b9ce4, 0x01669adf, 0x03385a81, 0x0369944c, 0x01ba23a5, 0x0007482c, 0x0025ac05}}, Y: Field{[10]uint32{0x00b50223, 0x02fffee5, 0x00ca4578, 0x03886c5e, 0x0082b786, 0x021a2006, 0x00d68de3, 0x0213c382, 0x02805903, 0x002ccaf8}}},
+ {X: Field{[10]uint32{0x01ae4af5, 0x02fe211b, 0x01eff7eb, 0x01888b87, 0x00b2afd1, 0x01b423d5, 0x0272fb74, 0x018b9a07, 0x00b37395, 0x000483da}}, Y: Field{[10]uint32{0x000bcc78, 0x0305a40c, 0x00743ded, 0x02758572, 0x0102f4da, 0x03643853, 0x03c6729b, 0x01dbe51d, 0x034f2b23, 0x001f07ad}}},
+ {X: Field{[10]uint32{0x02acd157, 0x03177139, 0x00989b65, 0x0074a170, 0x0049a441, 0x00923fba, 0x008be2cf, 0x02d15618, 0x01ec2789, 0x0039921c}}, Y: Field{[10]uint32{0x00e10a6b, 0x01d8a516, 0x02145843, 0x039740bc, 0x02f3dbfa, 0x017be47f, 0x039ecfd4, 0x02c2d56d, 0x02d14999, 0x000a602c}}},
+ {X: Field{[10]uint32{0x026798ad, 0x010e18ea, 0x012660eb, 0x03894ea3, 0x0243daa1, 0x01cf9721, 0x0324adfc, 0x00f8b094, 0x0009b20d, 0x001822c4}}, Y: Field{[10]uint32{0x010e13df, 0x03f8b223, 0x0038b3b4, 0x00f10fbf, 0x03a021e1, 0x033c3998, 0x0181c68c, 0x0258e144, 0x0203ad5c, 0x00209b96}}},
+ {X: Field{[10]uint32{0x01bb152a, 0x017e1068, 0x033e57c6, 0x00ada142, 0x00cdc4dc, 0x01bd306a, 0x02614353, 0x03917d82, 0x01558132, 0x002325e0}}, Y: Field{[10]uint32{0x037460fc, 0x03504df6, 0x0344ba6e, 0x00f670c6, 0x001875d6, 0x02193c65, 0x01083c53, 0x0207bc2a, 0x0098394d, 0x00328ecc}}},
+ {X: Field{[10]uint32{0x0021bf3e, 0x0323e366, 0x00627f80, 0x015da084, 0x03100727, 0x0380441b, 0x018e731c, 0x00920be3, 0x011ac73b, 0x0000d4d6}}, Y: Field{[10]uint32{0x01eb6412, 0x02131ed0, 0x03df9d4f, 0x02067d12, 0x0370ae89, 0x009823aa, 0x02306db0, 0x02d1a6b1, 0x011a501a, 0x000adf8f}}},
+ {X: Field{[10]uint32{0x00d78857, 0x03710c27, 0x02978b05, 0x01f6a7f6, 0x023c387b, 0x01e3f38c, 0x0270a671, 0x01cdcbb3, 0x0188ec35, 0x003acb7f}}, Y: Field{[10]uint32{0x024b88e4, 0x011fbc68, 0x01f6318c, 0x01ff2828, 0x023dd7aa, 0x02148dcb, 0x001a8cf9, 0x01548711, 0x02ed1f5a, 0x001bcaed}}},
+ {X: Field{[10]uint32{0x012eb279, 0x03fdcca6, 0x00487b29, 0x03a619cb, 0x00abd72a, 0x03bbd9b7, 0x018f3b07, 0x001439a6, 0x03f65db1, 0x00290703}}, Y: Field{[10]uint32{0x01a99cd4, 0x0147bba6, 0x00244ba9, 0x03acaab3, 0x03bc0786, 0x014841c9, 0x019d7f86, 0x03fe77d8, 0x03205616, 0x0015be9e}}},
+ {X: Field{[10]uint32{0x02217e92, 0x009395e8, 0x00ea9415, 0x02b6186f, 0x01615d85, 0x021677c4, 0x005917e0, 0x00540329, 0x0335f5bb, 0x00239d22}}, Y: Field{[10]uint32{0x00a46df8, 0x01d78fbf, 0x0266c9ef, 0x028e5b3f, 0x00825515, 0x025cef14, 0x03f86043, 0x031a9e12, 0x0362e226, 0x0015504c}}},
+ {X: Field{[10]uint32{0x02dd17e5, 0x0354d709, 0x03708f35, 0x009f3339, 0x02bc506c, 0x01fb1eff, 0x00de2c7b, 0x001891cf, 0x0007cce7, 0x002a0fd8}}, Y: Field{[10]uint32{0x026af268, 0x00edd318, 0x02cbb26c, 0x005221e8, 0x015a1ac6, 0x03543585, 0x0397a379, 0x01f9718c, 0x012daf21, 0x002b523b}}},
+ {X: Field{[10]uint32{0x0282d2fa, 0x022bfb44, 0x033abf11, 0x0376d1d5, 0x025cf208, 0x03f4e5f7, 0x000246eb, 0x0058924e, 0x02927e45, 0x003e7b5e}}, Y: Field{[10]uint32{0x00237b70, 0x02eed772, 0x01324087, 0x001ed2f9, 0x0303c844, 0x01c34e03, 0x015d53c6, 0x00c3de03, 0x02163a6f, 0x003055d1}}},
+ {X: Field{[10]uint32{0x002ea08e, 0x00499c9b, 0x0255af01, 0x00491b14, 0x02c7dff0, 0x03c27e04, 0x01177078, 0x031e99fe, 0x038a175e, 0x0028af79}}, Y: Field{[10]uint32{0x01ca12ec, 0x004c8f72, 0x01e20b09, 0x00aa976e, 0x013b5dd6, 0x037140fe, 0x03d27419, 0x01302db5, 0x018fe82d, 0x001c495a}}},
+ {X: Field{[10]uint32{0x039899b2, 0x03a88c6f, 0x01a56e62, 0x010b861d, 0x036b37da, 0x02385a42, 0x01cc0e9b, 0x019cda41, 0x01c79dcb, 0x0032a301}}, Y: Field{[10]uint32{0x0087534c, 0x003c67c5, 0x0199641d, 0x0275c4e2, 0x02275125, 0x03eea72a, 0x0160c1e3, 0x02b6e999, 0x01ca1e19, 0x00141314}}},
+ {X: Field{[10]uint32{0x00eca02b, 0x01ec0655, 0x0397c061, 0x008725e7, 0x0061fd4b, 0x0140609e, 0x037ecdd1, 0x004eb104, 0x02ee61db, 0x0003f041}}, Y: Field{[10]uint32{0x03bef3ee, 0x0265945e, 0x0308e6bc, 0x035d724b, 0x02971f2c, 0x037168b0, 0x03ce9c2c, 0x0198e0ab, 0x02284fc2, 0x001b6956}}},
+ {X: Field{[10]uint32{0x0092a8ab, 0x02da9c59, 0x0390b8b9, 0x012f0be3, 0x03504f67, 0x02b1e11b, 0x019a3217, 0x0041a150, 0x0039f47b, 0x000b2c86}}, Y: Field{[10]uint32{0x000a5757, 0x0204927c, 0x017aff10, 0x00cc116a, 0x00637264, 0x01978bf2, 0x0007feb9, 0x00112bda, 0x0332ae75, 0x00007fac}}},
+ {X: Field{[10]uint32{0x0161f3ae, 0x03c84c95, 0x002245d4, 0x01c9e65c, 0x0356ba35, 0x02e957b6, 0x022963ef, 0x001ffff2, 0x00ee759c, 0x0019e314}}, Y: Field{[10]uint32{0x02cba96c, 0x022ffd2b, 0x03107c49, 0x015f6a9d, 0x01780b16, 0x00e2787e, 0x03afce2d, 0x00130724, 0x0387abbf, 0x0006626d}}},
+ {X: Field{[10]uint32{0x024aa6fc, 0x00724420, 0x01da41b2, 0x032907cf, 0x0275d407, 0x002cbc99, 0x015097c3, 0x00d36608, 0x01ceaa2e, 0x002ad8f8}}, Y: Field{[10]uint32{0x00e2363c, 0x00955a9b, 0x00d82479, 0x0395f43d, 0x02812eb7, 0x011506b5, 0x01d3da2c, 0x03fdc9c5, 0x02611150, 0x003b196f}}},
+ {X: Field{[10]uint32{0x003dd336, 0x02466ba4, 0x03cc9f5c, 0x01e6c14a, 0x03ec5672, 0x00499260, 0x0239a2a3, 0x02565d69, 0x01cafad5, 0x0029a4e6}}, Y: Field{[10]uint32{0x010d97dd, 0x00f84bb1, 0x017551c4, 0x012d8d24, 0x001c8730, 0x024eb8d2, 0x02799dcc, 0x013d369e, 0x0259c30c, 0x002d4971}}},
+ {X: Field{[10]uint32{0x00fc5f3e, 0x01d4ef70, 0x001fbe13, 0x02bf4ef9, 0x00bd7a48, 0x00e720b4, 0x01cb5ed4, 0x033d7b49, 0x0282507b, 0x000cafd0}}, Y: Field{[10]uint32{0x0279bff2, 0x02eda543, 0x0033ac20, 0x02607a00, 0x026773c5, 0x038d1fa0, 0x0282f90b, 0x0367f495, 0x017a4336, 0x00336480}}},
+ {X: Field{[10]uint32{0x02dfd862, 0x00ba6e3b, 0x032ec5e4, 0x0213da06, 0x02f2fe64, 0x005141c5, 0x003e2cc1, 0x000259c8, 0x01837e72, 0x00287f32}}, Y: Field{[10]uint32{0x01ed4fd7, 0x01b0c58c, 0x03a964ba, 0x03f6f05f, 0x02a419af, 0x008b7927, 0x03fa79a7, 0x03ee277f, 0x02c317e8, 0x000785ad}}},
+ {X: Field{[10]uint32{0x030ceae0, 0x02ccae5f, 0x00838472, 0x03cceafa, 0x0360485c, 0x0073dce2, 0x01f1e822, 0x01f94063, 0x014e6961, 0x0036168c}}, Y: Field{[10]uint32{0x000a52f1, 0x02a8d9f8, 0x024e86e1, 0x033ccc22, 0x00fbbcba, 0x02229e6d, 0x034b5daa, 0x0379999a, 0x03eee92d, 0x001c683f}}},
+ {X: Field{[10]uint32{0x020c2e7f, 0x000feabc, 0x0224e4ee, 0x017a010f, 0x02f5a53b, 0x00d5bab0, 0x01b20e31, 0x031c3905, 0x02fa0688, 0x00062489}}, Y: Field{[10]uint32{0x01515aa6, 0x0161f7bc, 0x00eaa1a0, 0x01fe54b9, 0x02fc2bba, 0x0261f3d8, 0x00be5759, 0x0354f9ef, 0x00ac40c7, 0x00366ff6}}},
+ {X: Field{[10]uint32{0x019e1330, 0x001c2695, 0x01241ff7, 0x009534b6, 0x0132465d, 0x00b3c84d, 0x02674e63, 0x00458b5e, 0x020a6a93, 0x0034d50b}}, Y: Field{[10]uint32{0x0357c369, 0x01e645d2, 0x032bf9a0, 0x021012c7, 0x03dbd427, 0x008aef60, 0x00be5ed6, 0x0108d0d3, 0x0351e266, 0x000097a3}}},
+ {X: Field{[10]uint32{0x013a2bc5, 0x01af861d, 0x0245f287, 0x016ab6ff, 0x029a8c0a, 0x0161d615, 0x006e6b82, 0x02d8487b, 0x0286fb2c, 0x00145367}}, Y: Field{[10]uint32{0x03cbf261, 0x02a10615, 0x0179145c, 0x02f1218a, 0x011b8370, 0x0197de76, 0x01918d9f, 0x008f10d0, 0x01c0be54, 0x001c01e1}}},
+ {X: Field{[10]uint32{0x023fe495, 0x01a128fa, 0x03f6ad6d, 0x0188b5c8, 0x0343f9aa, 0x02b981aa, 0x031db335, 0x0333f787, 0x036512e9, 0x00327e18}}, Y: Field{[10]uint32{0x0230270b, 0x00efac87, 0x01db3a3b, 0x0163cc7d, 0x01b7b80b, 0x0372f8ee, 0x02f9445d, 0x02807271, 0x02313868, 0x000c34e9}}},
+ {X: Field{[10]uint32{0x002deb93, 0x03481bcb, 0x00768357, 0x029cae42, 0x03641200, 0x0039e436, 0x00cd96fa, 0x0227f826, 0x020c8fc0, 0x000089bc}}, Y: Field{[10]uint32{0x025f66bc, 0x00ee56aa, 0x00cff1c0, 0x01bfb860, 0x015e0262, 0x012d0f6a, 0x03c20452, 0x024d880f, 0x03b8b43e, 0x000b88fe}}},
+ {X: Field{[10]uint32{0x035350bd, 0x0125adb2, 0x03da0a38, 0x03f62366, 0x019fcc79, 0x02e29f98, 0x019bd9e6, 0x03e531c8, 0x0268d4b6, 0x00286c9d}}, Y: Field{[10]uint32{0x02d68a32, 0x013ccb75, 0x01b94264, 0x01d2dcae, 0x01c96b5f, 0x0003f57b, 0x02a62bc2, 0x0305ab9e, 0x005eb6e1, 0x000e4cff}}},
+ {X: Field{[10]uint32{0x03e28887, 0x0037dfab, 0x01ae38c4, 0x01f05643, 0x0357dd4e, 0x02023ac2, 0x03b71810, 0x02f0c47d, 0x02570087, 0x00043c4d}}, Y: Field{[10]uint32{0x03366d84, 0x031ba178, 0x03995db5, 0x02d29e68, 0x02291338, 0x00753b73, 0x02c570d9, 0x030fb139, 0x008709bd, 0x000694b9}}},
+ {X: Field{[10]uint32{0x01be3e46, 0x03861073, 0x01884273, 0x03623e62, 0x00f613b3, 0x0003717b, 0x03558615, 0x03d60fe7, 0x00eea984, 0x00022aa8}}, Y: Field{[10]uint32{0x0133260d, 0x025f48a8, 0x017b8f21, 0x016055b6, 0x0124e564, 0x00bc91bb, 0x02c46abc, 0x009df700, 0x01540f85, 0x0014a588}}},
+ {X: Field{[10]uint32{0x01c89d2e, 0x019990fc, 0x034aa3bd, 0x03be96e2, 0x00dc9472, 0x01ea4ea6, 0x0397ce5f, 0x02c6de6c, 0x02710024, 0x000ca016}}, Y: Field{[10]uint32{0x003091fd, 0x01439621, 0x002a2f4d, 0x019702e2, 0x029e23c7, 0x00a9d3b5, 0x02d0a858, 0x00e7d734, 0x007cb7c1, 0x002bd497}}},
+ {X: Field{[10]uint32{0x01412451, 0x0141d26a, 0x02b12cde, 0x030a1fda, 0x01058db0, 0x03ce9483, 0x030835a4, 0x035125fe, 0x00cc909a, 0x0031cbc4}}, Y: Field{[10]uint32{0x02c7c65a, 0x0044b5bc, 0x03030a7a, 0x00c99d19, 0x03b8e2ca, 0x0192d83c, 0x015ff15b, 0x02ea78df, 0x027d5197, 0x0029599b}}},
+ {X: Field{[10]uint32{0x03fc9a22, 0x0082195d, 0x01f97c03, 0x016b5301, 0x0172c0fa, 0x0080ef50, 0x01a74adc, 0x0046c905, 0x00c78702, 0x001bb1da}}, Y: Field{[10]uint32{0x031b09fb, 0x009833ab, 0x014d05da, 0x010b6d9f, 0x03b51cbf, 0x01527230, 0x01e67100, 0x036ec249, 0x02220aa2, 0x00060e52}}},
+ {X: Field{[10]uint32{0x00a64737, 0x00e9c70f, 0x01e61dc9, 0x0343bbe4, 0x01a846e7, 0x01c117f2, 0x01061438, 0x03455981, 0x03bbff99, 0x00378dba}}, Y: Field{[10]uint32{0x000f4270, 0x0292d3a4, 0x00c81b39, 0x02e86d34, 0x00488208, 0x011db138, 0x0247dcda, 0x02cded01, 0x02520f3c, 0x0031605d}}},
+ {X: Field{[10]uint32{0x00c00218, 0x0082adcf, 0x0297bc0c, 0x008ad1a8, 0x0019bea3, 0x037a9bd3, 0x0001ef86, 0x03f1a16b, 0x015d5538, 0x003d4d05}}, Y: Field{[10]uint32{0x03b9523c, 0x0355c1ac, 0x026030d3, 0x013c5376, 0x03f9d092, 0x028b4494, 0x02b38a49, 0x02632bbb, 0x01f2979d, 0x0013eadf}}},
+ {X: Field{[10]uint32{0x0286129d, 0x01ff304c, 0x035210bc, 0x0223436a, 0x0008db20, 0x0156da1f, 0x00ecb981, 0x02409420, 0x0050a1db, 0x0036bf6e}}, Y: Field{[10]uint32{0x011ada22, 0x03cbfbd9, 0x0291aa2e, 0x014183ff, 0x027d0ccc, 0x00dbeef4, 0x02be601f, 0x013050ff, 0x03fcae6c, 0x0010e597}}},
+ {X: Field{[10]uint32{0x01d705ce, 0x027e7d26, 0x03721299, 0x01a5a02c, 0x022efe40, 0x00cf31a7, 0x016893ee, 0x02f21460, 0x02211dca, 0x002b2682}}, Y: Field{[10]uint32{0x00c728ef, 0x00e5c6e6, 0x03a8879c, 0x02c4e7d6, 0x02acf64e, 0x034035c4, 0x021e02c2, 0x034af7fe, 0x02408281, 0x0005baff}}},
+ {X: Field{[10]uint32{0x00503030, 0x0207afa6, 0x02ceb1db, 0x00bc0ede, 0x0131ae2b, 0x02e2da7f, 0x01eb8b97, 0x03dba578, 0x03d4b48c, 0x002becde}}, Y: Field{[10]uint32{0x024b7929, 0x0336c582, 0x01d84d3f, 0x037b3913, 0x01c47c06, 0x017e8c4f, 0x0231af3e, 0x033765bc, 0x0164f8d9, 0x000733d0}}},
+ {X: Field{[10]uint32{0x0088e709, 0x000a494e, 0x007d51a6, 0x00b4ac4a, 0x00f55368, 0x007591c3, 0x0318e7f2, 0x013e0cea, 0x02ef6c29, 0x00006e40}}, Y: Field{[10]uint32{0x00d69ebe, 0x007b3bb7, 0x024aa24b, 0x00091b1c, 0x0066ca01, 0x00359a93, 0x005e9fe4, 0x027f9c8e, 0x01ff34e4, 0x001dcd71}}},
+ {X: Field{[10]uint32{0x003133e2, 0x0138a2df, 0x030b255e, 0x031630ef, 0x00c61b41, 0x00cc883f, 0x01b4ec3d, 0x00a561f1, 0x03108a20, 0x001b9396}}, Y: Field{[10]uint32{0x028fcfbe, 0x012a6766, 0x02f660f1, 0x0011b3a8, 0x00b55ae5, 0x01224569, 0x01ea4106, 0x01abd11a, 0x03065c33, 0x002d27e0}}},
+ {X: Field{[10]uint32{0x037e9714, 0x00346ac6, 0x0280b5b1, 0x0261f607, 0x0112342d, 0x034e4c6e, 0x00532760, 0x0008416e, 0x037fbb80, 0x0021f38f}}, Y: Field{[10]uint32{0x00f0f635, 0x0065ce93, 0x02e16d1e, 0x0263751b, 0x016b71f8, 0x03078ce1, 0x013c3869, 0x03ce700a, 0x004779db, 0x0015b1aa}}},
+ {X: Field{[10]uint32{0x01426b2d, 0x0199eab2, 0x01d0c9f6, 0x00189d1f, 0x02d368a7, 0x01687a51, 0x00193724, 0x01927270, 0x029bb7ba, 0x0021c90c}}, Y: Field{[10]uint32{0x010b944c, 0x0243fe59, 0x030d89d0, 0x03548745, 0x0155b109, 0x003e811e, 0x03a5a5bb, 0x03512d76, 0x00e848d7, 0x00011116}}},
+ {X: Field{[10]uint32{0x02a1a4bc, 0x025fd8ad, 0x005cd7d2, 0x03333b21, 0x03c6338d, 0x01935f5f, 0x01b18b6b, 0x030244cb, 0x03a64735, 0x002e46fb}}, Y: Field{[10]uint32{0x00138467, 0x03dc0778, 0x0340b14c, 0x00323e7c, 0x0015e7ca, 0x0391d9a8, 0x03f16cfb, 0x01e71a19, 0x01ef8c9b, 0x002ece58}}},
+ {X: Field{[10]uint32{0x00d08fb3, 0x038c8028, 0x0296cd8d, 0x02e19735, 0x009ae3d6, 0x0228d227, 0x00fbb896, 0x025fa8ef, 0x0259332e, 0x0010c87a}}, Y: Field{[10]uint32{0x00cd538e, 0x032d8021, 0x00f7ee31, 0x008d7394, 0x0203f6b0, 0x01ce8d7a, 0x0182e3fc, 0x02754f5d, 0x00d4c514, 0x0025f920}}},
+ {X: Field{[10]uint32{0x02f1bc6d, 0x014b29bd, 0x02069057, 0x0357a230, 0x017950a8, 0x02a63508, 0x01051d25, 0x025a990c, 0x03b2836d, 0x00371165}}, Y: Field{[10]uint32{0x03df36ff, 0x01cfc814, 0x02ad7f9b, 0x03f79310, 0x03362bb4, 0x00d5c96a, 0x00e3a83c, 0x00c32ba1, 0x000d16ba, 0x0031c496}}},
+ {X: Field{[10]uint32{0x0159a009, 0x00b4e700, 0x00992997, 0x0194b67e, 0x03c5f19b, 0x037801ee, 0x02617508, 0x00c0242c, 0x02f085ff, 0x00339913}}, Y: Field{[10]uint32{0x033cc8f7, 0x02641b35, 0x02c17c08, 0x01a48299, 0x00c9402a, 0x019026ac, 0x0200c92f, 0x02e596ea, 0x01d0058d, 0x00002690}}},
+ {X: Field{[10]uint32{0x0136b41a, 0x01138066, 0x002b4a74, 0x0309611a, 0x022ec439, 0x00f2e3bc, 0x01aecf42, 0x02d2eae0, 0x035cb6c7, 0x0002e878}}, Y: Field{[10]uint32{0x01bd6272, 0x0339a50d, 0x0128ad2f, 0x00cc73ab, 0x0001098b, 0x02c5ea39, 0x0178d6f7, 0x037918f8, 0x0252f91d, 0x003cecf1}}},
+ {X: Field{[10]uint32{0x02e3920f, 0x0344d821, 0x0114d72e, 0x011c640b, 0x036988c7, 0x011763d0, 0x03c839f8, 0x006efd83, 0x02a02a33, 0x002e7e63}}, Y: Field{[10]uint32{0x020d03d3, 0x03eca4b1, 0x0327d318, 0x013ea52e, 0x0235d9b0, 0x02a85f04, 0x0326f5e8, 0x00e85b31, 0x0101a7f2, 0x00027ec9}}},
+ {X: Field{[10]uint32{0x007e886f, 0x028da7a0, 0x02ed09c1, 0x03c45b5e, 0x00dc10db, 0x03f3fe4c, 0x038e702f, 0x003e0711, 0x034655f9, 0x001c1645}}, Y: Field{[10]uint32{0x0205a59f, 0x0255426c, 0x02f8c64b, 0x010747cd, 0x03d09d3f, 0x0182a8fd, 0x031ec925, 0x03c32836, 0x00a4b9d6, 0x002099e8}}},
+ {X: Field{[10]uint32{0x025434bf, 0x00886b30, 0x0031eb76, 0x01b938c7, 0x0114cc5a, 0x01004858, 0x036469f8, 0x02818e9e, 0x00bcc43c, 0x003bf69e}}, Y: Field{[10]uint32{0x02fa2864, 0x038de055, 0x032aa92b, 0x0191126b, 0x034cdf80, 0x00c64f44, 0x0121b135, 0x03e1643d, 0x03f6ef45, 0x001ed0db}}},
+ {X: Field{[10]uint32{0x010ccc34, 0x01b4251d, 0x02f0e430, 0x01d00068, 0x0335fbd8, 0x02015aba, 0x0230988c, 0x002578e9, 0x030f5d62, 0x0008a692}}, Y: Field{[10]uint32{0x0234de6e, 0x028d6578, 0x034288be, 0x00d771a8, 0x00741acf, 0x01a9466f, 0x01694cef, 0x01d38f4b, 0x03af491c, 0x0005c34c}}},
+ {X: Field{[10]uint32{0x02f07100, 0x0238bb1a, 0x03f178ce, 0x02d2069a, 0x03f91860, 0x02b343e4, 0x01d44b83, 0x0084c862, 0x008e20a0, 0x0031dc3d}}, Y: Field{[10]uint32{0x00266eec, 0x03e18870, 0x038c9610, 0x02fdf82f, 0x02a6d8db, 0x00c96fab, 0x0143aca3, 0x00647e7b, 0x00d38b2a, 0x001f8448}}},
+ {X: Field{[10]uint32{0x0286aa44, 0x0121a6bc, 0x00af8eb7, 0x0260f509, 0x01e89b89, 0x002c626a, 0x020a48a2, 0x00754a2d, 0x00630390, 0x002976cb}}, Y: Field{[10]uint32{0x00af1e50, 0x03868dc9, 0x03a1446f, 0x021a0146, 0x010384e1, 0x0270dfbb, 0x034e6abd, 0x0356c069, 0x01926a93, 0x002e6587}}},
+ {X: Field{[10]uint32{0x0241db1c, 0x01eca636, 0x005ff007, 0x01233a8b, 0x024b447e, 0x005a36e6, 0x03897b7c, 0x000a2298, 0x029e9f33, 0x000fb1c5}}, Y: Field{[10]uint32{0x03053fb2, 0x01de0d7c, 0x00b49e44, 0x01a04b96, 0x024b3be2, 0x034d2935, 0x004aa34e, 0x003b688b, 0x034de8e6, 0x0030ffa5}}},
+ {X: Field{[10]uint32{0x035bf3b3, 0x00b0453e, 0x02b777cf, 0x024f3a4b, 0x03810cff, 0x0267923a, 0x0060d4cf, 0x00461356, 0x0217c331, 0x002dccf7}}, Y: Field{[10]uint32{0x000c11b0, 0x038690d2, 0x0290ad28, 0x033a7c9a, 0x0157fc4a, 0x02ed855c, 0x000d537e, 0x002b4c80, 0x00dd72d2, 0x00031d70}}},
+ {X: Field{[10]uint32{0x002ed278, 0x0140585b, 0x01df28b4, 0x0279aa08, 0x00027db5, 0x005601d7, 0x0149616a, 0x02f09057, 0x0208d555, 0x0015f5b8}}, Y: Field{[10]uint32{0x0346eba8, 0x00d31b0d, 0x02891fca, 0x00b9b3ca, 0x0274b5d0, 0x014ecd3d, 0x028e3533, 0x036968d4, 0x0279d130, 0x0020e1c2}}},
+ {X: Field{[10]uint32{0x02d3673d, 0x0249621a, 0x03aab8d7, 0x0027f6cb, 0x026f0694, 0x00823dbc, 0x032fd3c3, 0x0291e0ef, 0x00f1aa69, 0x0027908d}}, Y: Field{[10]uint32{0x008d0653, 0x00dccf8a, 0x0029bd75, 0x005abffb, 0x019fb42b, 0x01e81610, 0x03ed0414, 0x03af0fa2, 0x03737725, 0x0017e691}}},
+ {X: Field{[10]uint32{0x02b68173, 0x00fc7ce6, 0x00a758d4, 0x03c9d81a, 0x0322e4fc, 0x0362ba44, 0x0096202f, 0x00bff6f6, 0x039d9fc1, 0x001bf8ff}}, Y: Field{[10]uint32{0x0109fa1b, 0x00f688ad, 0x02a3c2ab, 0x0058f9fe, 0x010bf94e, 0x02482316, 0x03ef7b50, 0x0118209c, 0x02821d41, 0x003bc355}}},
+ {X: Field{[10]uint32{0x005c4631, 0x02ab96ed, 0x0161fff2, 0x015f446c, 0x0154c492, 0x01532d26, 0x02af415e, 0x01b867be, 0x014fd258, 0x000b0c79}}, Y: Field{[10]uint32{0x03311346, 0x003908c4, 0x0308bd8e, 0x015069c1, 0x00039af3, 0x03ee0979, 0x0353c0e9, 0x02c6b39f, 0x00ad364a, 0x002fb7ec}}},
+ {X: Field{[10]uint32{0x00203ebc, 0x019839de, 0x037823b8, 0x0225270b, 0x004d745b, 0x02e4ce16, 0x00ea2ee2, 0x01230d1e, 0x02590231, 0x0014565c}}, Y: Field{[10]uint32{0x02aa1817, 0x027cefd9, 0x033628a5, 0x03396984, 0x03b81ff7, 0x015e4140, 0x03dc4702, 0x02dd0f13, 0x0153f688, 0x000ca7d8}}},
+ {X: Field{[10]uint32{0x01caf1f4, 0x010791b3, 0x03d6070d, 0x0213378d, 0x020d3946, 0x03d4733e, 0x03fcb3bd, 0x035ee370, 0x032458f7, 0x000622cc}}, Y: Field{[10]uint32{0x03901910, 0x0195a934, 0x03104487, 0x030a22ab, 0x003d1dde, 0x026671aa, 0x026b04c8, 0x02845cc6, 0x01dad112, 0x000137a9}}},
+ {X: Field{[10]uint32{0x03a6e471, 0x00dcb573, 0x0090e307, 0x033dfc4f, 0x0085f804, 0x0384f8aa, 0x02b0a494, 0x03856233, 0x0241a503, 0x00248163}}, Y: Field{[10]uint32{0x00ec108a, 0x01c95761, 0x0151068e, 0x01e96334, 0x01bcbe17, 0x0085dfa5, 0x025a230e, 0x01a1785f, 0x02d4449e, 0x000da01c}}},
+ {X: Field{[10]uint32{0x00099fcf, 0x011e20cd, 0x0105d5b6, 0x03a27a0c, 0x03726f79, 0x01bab14d, 0x03a7a689, 0x01941bc9, 0x022644e0, 0x001a9bd4}}, Y: Field{[10]uint32{0x01132586, 0x0268cb69, 0x013214c1, 0x0269692d, 0x007104e7, 0x01d261fd, 0x027b6645, 0x0360fac5, 0x014bd8ce, 0x0033cfb7}}},
+ {X: Field{[10]uint32{0x0376bb26, 0x03e49bc8, 0x0148d89c, 0x0008d3c0, 0x03c77c34, 0x035523cd, 0x021e0efa, 0x03730f28, 0x02a2340c, 0x001f8df3}}, Y: Field{[10]uint32{0x009a0016, 0x027fa6b3, 0x0369e83b, 0x00af4c72, 0x026b02d4, 0x0172f08a, 0x022938e0, 0x01f1aac1, 0x029b42a2, 0x0031cb60}}},
+ {X: Field{[10]uint32{0x00d0b667, 0x023ee0b6, 0x00c5ad84, 0x00314b0f, 0x00800d01, 0x0325ea37, 0x03b4b39b, 0x01b3deeb, 0x0069cf0f, 0x00079b08}}, Y: Field{[10]uint32{0x0260196f, 0x031c8e23, 0x03e81f86, 0x02198c2d, 0x00491469, 0x032c2450, 0x02cfbdc2, 0x03611a1b, 0x0276bca1, 0x00030607}}},
+ {X: Field{[10]uint32{0x02f07e16, 0x00fbd6c1, 0x00be3520, 0x00f32901, 0x02f36ba4, 0x0112d1fa, 0x02336c8d, 0x0293dec1, 0x000fe6ee, 0x00155998}}, Y: Field{[10]uint32{0x01057e55, 0x03f87380, 0x0278b5a7, 0x0059da56, 0x0269e5ac, 0x03cdcbb6, 0x00acb4c0, 0x0065e7b5, 0x008f7adc, 0x001aeef4}}},
+ {X: Field{[10]uint32{0x01c791b5, 0x0341f64c, 0x03a7619a, 0x005b54a6, 0x00690450, 0x017653e3, 0x01c5adc4, 0x00717008, 0x034ded45, 0x0010d718}}, Y: Field{[10]uint32{0x034d4cc1, 0x02d391f1, 0x02c14024, 0x01d8adbd, 0x02850098, 0x0254f032, 0x006f9591, 0x02943c88, 0x02688252, 0x000c7b78}}},
+ {X: Field{[10]uint32{0x0057b9b6, 0x0108d0a7, 0x027e9dd1, 0x00abe157, 0x01f19a0d, 0x014a9053, 0x01c06122, 0x01c71ce5, 0x00e6a660, 0x001bee33}}, Y: Field{[10]uint32{0x0368e052, 0x017627c9, 0x034c5b84, 0x03baaff8, 0x02183dad, 0x0208c989, 0x0399fad6, 0x014c5351, 0x0249e2f0, 0x0005fe50}}},
+ {X: Field{[10]uint32{0x0180dc36, 0x037a30ca, 0x01890148, 0x028a6781, 0x0011c711, 0x0153b98d, 0x016a695f, 0x01325252, 0x029920fc, 0x00219bcf}}, Y: Field{[10]uint32{0x018d62f7, 0x0221e1b4, 0x0109bae1, 0x000ba0de, 0x01f5211f, 0x030036cb, 0x00a11e13, 0x030f074e, 0x01af4f8d, 0x003a6715}}},
+ {X: Field{[10]uint32{0x00468b2d, 0x01bd8620, 0x03c79461, 0x002df009, 0x0162404f, 0x0372f941, 0x024f7234, 0x0122669c, 0x0010b716, 0x0020304d}}, Y: Field{[10]uint32{0x000b91aa, 0x037e254a, 0x016216d8, 0x03870b10, 0x01bd6e8f, 0x0371a74e, 0x03592819, 0x00793f5e, 0x002e71a0, 0x00218c65}}},
+ {X: Field{[10]uint32{0x02a7da99, 0x00577060, 0x004d2c38, 0x030292e9, 0x00bf37ab, 0x005eedbb, 0x03e68bec, 0x02762014, 0x01eeef4e, 0x0023e16f}}, Y: Field{[10]uint32{0x0217897e, 0x027edfbb, 0x02962b4a, 0x017927b9, 0x034e8c29, 0x02a96468, 0x00f8ce78, 0x00d0b2bc, 0x03df8ae9, 0x000db516}}},
+ {X: Field{[10]uint32{0x01600749, 0x01280692, 0x022aa440, 0x039209b6, 0x0317a920, 0x03ba286c, 0x00edaf40, 0x03369833, 0x032b3393, 0x00027342}}, Y: Field{[10]uint32{0x02fc5a5a, 0x03977baa, 0x00463414, 0x024a9258, 0x023a00c4, 0x03c313a8, 0x0101e348, 0x01942ec6, 0x035a51d9, 0x000e0c74}}},
+ {X: Field{[10]uint32{0x009f33b0, 0x0380ddf5, 0x032d3bdb, 0x032b7fe8, 0x02003ab7, 0x01d31de6, 0x03832f79, 0x01fff5b3, 0x01af15c6, 0x0028317c}}, Y: Field{[10]uint32{0x01cb91ec, 0x00a5a080, 0x03c57800, 0x00aee210, 0x03307939, 0x0188317f, 0x03344123, 0x01898905, 0x00d442de, 0x001abfd0}}},
+ {X: Field{[10]uint32{0x00edfacc, 0x0208c4d6, 0x02d7890a, 0x01c0df2c, 0x02c01113, 0x03b100e7, 0x021fbf02, 0x03885f5f, 0x03400013, 0x002bce5b}}, Y: Field{[10]uint32{0x02cfb936, 0x03a53d66, 0x024bc936, 0x0267a161, 0x016754c5, 0x0017c397, 0x0035d167, 0x014d28b7, 0x01e25a57, 0x002aabae}}},
+ {X: Field{[10]uint32{0x01ed0eaf, 0x039c7124, 0x01307cf1, 0x01c7cbe2, 0x0187d4c0, 0x02f8d65e, 0x02871b0d, 0x03b3179f, 0x0057e3e0, 0x003f6b0f}}, Y: Field{[10]uint32{0x00a09fc7, 0x03981a0f, 0x00b18cde, 0x03fd7684, 0x02b14d14, 0x033f8db5, 0x00877afc, 0x03c259cf, 0x00cca22e, 0x000c0a28}}},
+ {X: Field{[10]uint32{0x02fa88b7, 0x011c767b, 0x0103e14a, 0x035aab14, 0x00ae745f, 0x023bebb7, 0x012b6a96, 0x02eaa6b8, 0x01239587, 0x0038ebac}}, Y: Field{[10]uint32{0x02f769c7, 0x00ce5ef2, 0x036cd2d3, 0x00168b23, 0x017b4603, 0x02c9f469, 0x006833fb, 0x01512f8c, 0x038652c1, 0x001fb471}}},
+ {X: Field{[10]uint32{0x038352f5, 0x01694335, 0x00a0e605, 0x01e8f8f8, 0x000eb83d, 0x0246b2e5, 0x00cc663c, 0x00058bed, 0x01e3382a, 0x0025aebb}}, Y: Field{[10]uint32{0x00c50cbc, 0x02b8167c, 0x039972ad, 0x0187a963, 0x0105100d, 0x02e4c022, 0x00c3a80f, 0x00a090e2, 0x0297b3ad, 0x001e1c8b}}},
+ {X: Field{[10]uint32{0x03f5f5b5, 0x0013b88e, 0x03e408de, 0x008911a8, 0x02ba93d1, 0x036d51bf, 0x01e1eda4, 0x0158dfcd, 0x01561697, 0x001a1c12}}, Y: Field{[10]uint32{0x014ca494, 0x00d86f18, 0x005ff46e, 0x0099dc90, 0x02934bd2, 0x01310986, 0x006c7a20, 0x011c7ce8, 0x02feb5f7, 0x001891f4}}},
+ {X: Field{[10]uint32{0x00bcf749, 0x0257827d, 0x01ad7940, 0x014be0fb, 0x0362eaf6, 0x02c374ac, 0x0202d72e, 0x03e1622b, 0x02342ca1, 0x001c7331}}, Y: Field{[10]uint32{0x012a45fb, 0x027e60f7, 0x02c686cb, 0x02510aa5, 0x01aee177, 0x01c0f968, 0x00e3f222, 0x0039a52a, 0x03d923b1, 0x00121eba}}},
+ {X: Field{[10]uint32{0x0235d3f0, 0x002cfb3d, 0x00dff25d, 0x02ebc927, 0x01713844, 0x03a2d842, 0x00cd1831, 0x0268b816, 0x01d06573, 0x001bf687}}, Y: Field{[10]uint32{0x0078108e, 0x02597d48, 0x013df60a, 0x00f554dc, 0x00a232a9, 0x02a22a2c, 0x00a96c32, 0x032dc93e, 0x00f48afc, 0x0028bb91}}},
+ {X: Field{[10]uint32{0x01147f45, 0x005b31b5, 0x03b64b10, 0x03d60e39, 0x0165cbfc, 0x02651c45, 0x02395c13, 0x0365ed17, 0x0309ff5a, 0x0034fc9d}}, Y: Field{[10]uint32{0x03265077, 0x024559e4, 0x0161a043, 0x03854767, 0x0329006e, 0x026ef5b1, 0x02026ed2, 0x03870d53, 0x0016cdc8, 0x003e5b2b}}},
+ {X: Field{[10]uint32{0x00a011d6, 0x038d9ba9, 0x0278641e, 0x024e38af, 0x0268f827, 0x02e0a4b1, 0x027d064b, 0x01bbfde2, 0x0144a28a, 0x0009ee86}}, Y: Field{[10]uint32{0x027bdcab, 0x03dea613, 0x014d0a77, 0x01755d1a, 0x01fcbe30, 0x0163c15c, 0x0312fc94, 0x0190c39c, 0x00759d21, 0x00092fbe}}},
+ {X: Field{[10]uint32{0x004fe190, 0x039f4025, 0x0348ee35, 0x011061c1, 0x01772f4c, 0x021cb83a, 0x03ca9ff7, 0x01f3820b, 0x00125fd8, 0x003f4dee}}, Y: Field{[10]uint32{0x03dcb453, 0x01ee6809, 0x02951184, 0x01118041, 0x028ec68a, 0x02ccdf7c, 0x01b8c43f, 0x0066376e, 0x0125d9ae, 0x00251429}}},
+ {X: Field{[10]uint32{0x02071c69, 0x013322a3, 0x00b802c2, 0x02296576, 0x03446751, 0x00caa005, 0x0329b63f, 0x00f83634, 0x00ca9258, 0x0036659f}}, Y: Field{[10]uint32{0x03376c25, 0x0192ba5c, 0x02ab97ed, 0x034c85e7, 0x0328361c, 0x00b96bc9, 0x0086dbb9, 0x0275a4ef, 0x0273c2c3, 0x001ab28d}}},
+ {X: Field{[10]uint32{0x014a0a3c, 0x027b502e, 0x0044f3d8, 0x017c38f4, 0x02f53cd4, 0x03f65705, 0x02798efb, 0x0007af48, 0x013c4a8d, 0x0023ba0b}}, Y: Field{[10]uint32{0x011e1b2d, 0x0189b1de, 0x022f036c, 0x02836ceb, 0x0379c8b6, 0x0356e702, 0x0271c3af, 0x03ee742a, 0x037e9167, 0x00382c2a}}},
+ {X: Field{[10]uint32{0x00562caa, 0x022876c3, 0x01a4764c, 0x0336fc8b, 0x038d709c, 0x0140a5c1, 0x03ea0291, 0x02d526a7, 0x03d2817c, 0x001187b0}}, Y: Field{[10]uint32{0x036684af, 0x01abd1eb, 0x0259adb1, 0x0036c218, 0x0126cdf8, 0x00594100, 0x00f6e126, 0x025e4144, 0x017dcb5c, 0x001986cb}}},
+ {X: Field{[10]uint32{0x01f5793e, 0x00406f50, 0x01890673, 0x0203cf79, 0x0059f517, 0x014ffdae, 0x01bb7ffb, 0x032bb51a, 0x005c0935, 0x000c5562}}, Y: Field{[10]uint32{0x0043dfff, 0x010d3388, 0x0181e28d, 0x0309a71d, 0x0208ca6a, 0x023cd5db, 0x00bbdfe0, 0x00423e34, 0x00e992ac, 0x00180d65}}},
+ {X: Field{[10]uint32{0x024ea9eb, 0x0109d60a, 0x02f0dcad, 0x028ae7ed, 0x00c68a60, 0x03621d39, 0x02267a0a, 0x02670641, 0x03b0ad91, 0x00172b24}}, Y: Field{[10]uint32{0x000032ab, 0x008ee662, 0x0234a0e4, 0x0254df99, 0x03c48e72, 0x035d20fa, 0x0161fe7a, 0x036ae5a6, 0x0298a116, 0x0020dbea}}},
+ {X: Field{[10]uint32{0x0156cc42, 0x03b15b1a, 0x039047e3, 0x01d09121, 0x0154d052, 0x02a3c05e, 0x02eea1c4, 0x03bd5a2d, 0x03acafd5, 0x0007edb4}}, Y: Field{[10]uint32{0x022a5411, 0x00f6bf4b, 0x00839313, 0x0120460f, 0x027431be, 0x014318d8, 0x036a1ec0, 0x013cc9b7, 0x01f2f89e, 0x002e3be4}}},
+ {X: Field{[10]uint32{0x002b28f2, 0x03f1dcf6, 0x02bdcd31, 0x015fdeec, 0x0369fe01, 0x03f7b9ec, 0x00618f03, 0x0001768c, 0x01e152f0, 0x0022702c}}, Y: Field{[10]uint32{0x00b4a507, 0x01deac60, 0x007a9254, 0x0362b27d, 0x01ad8223, 0x009b19ed, 0x0105de5b, 0x01a05ab3, 0x0357bbf4, 0x001875b8}}},
+ {X: Field{[10]uint32{0x039a211e, 0x01eac6ed, 0x01751080, 0x02f83cc7, 0x007cb968, 0x01064c90, 0x023875a3, 0x006bf359, 0x018b1f9d, 0x0001f174}}, Y: Field{[10]uint32{0x00779ff3, 0x02e70def, 0x01b3b6dc, 0x02c4a5b2, 0x03d136b5, 0x0353a517, 0x023b4495, 0x03683ef4, 0x03ea985b, 0x00117ef9}}},
+ {X: Field{[10]uint32{0x0159f85c, 0x027744fc, 0x03792ddf, 0x034e978b, 0x00b6afda, 0x017adfc0, 0x031ad4db, 0x0042326c, 0x03c19393, 0x003209f3}}, Y: Field{[10]uint32{0x013a1cb1, 0x006aa99d, 0x01a129c3, 0x00f758cd, 0x000330ea, 0x0265478b, 0x03e12fc8, 0x03500553, 0x007a3025, 0x001717f8}}},
+ {X: Field{[10]uint32{0x03cc5d9b, 0x005e1d55, 0x001e6571, 0x0201541d, 0x002e0dfa, 0x01ac806d, 0x01e2fa40, 0x03df7081, 0x032bb1f3, 0x0018d1ec}}, Y: Field{[10]uint32{0x028c3ba4, 0x02f868eb, 0x02e52e22, 0x03cec5c3, 0x01a455d3, 0x03e2b09b, 0x00d72553, 0x034d3292, 0x02109508, 0x003e3cc3}}},
+ {X: Field{[10]uint32{0x03ae1014, 0x00748999, 0x00130e0a, 0x00ea5266, 0x02bfa21f, 0x036c0cab, 0x02e42837, 0x0040757d, 0x0195e822, 0x0035227d}}, Y: Field{[10]uint32{0x027c66a9, 0x0299b648, 0x000c22b4, 0x037fae54, 0x012bfa98, 0x00987e32, 0x024c33d1, 0x02851a3d, 0x02898dc4, 0x0022c44b}}},
+ {X: Field{[10]uint32{0x00a6205b, 0x0016372e, 0x000b276f, 0x01cf50ef, 0x0102200d, 0x039da991, 0x02b8f981, 0x03ef3ab7, 0x0063fb4a, 0x002432e7}}, Y: Field{[10]uint32{0x02e74645, 0x00c93394, 0x0087ba02, 0x01ed6fdb, 0x002611a7, 0x00811c76, 0x02f19c67, 0x01fc6aee, 0x01c0f6ba, 0x002252bf}}},
+ {X: Field{[10]uint32{0x02196af4, 0x0269e55a, 0x0018bbc4, 0x01b1a67a, 0x00869bb0, 0x002a6255, 0x026a1bef, 0x0087d395, 0x00bb19f1, 0x001037da}}, Y: Field{[10]uint32{0x020cec90, 0x02f758c8, 0x0269da31, 0x034a90c7, 0x02e1d6b3, 0x01843dad, 0x009f8303, 0x037df0c7, 0x0009d0ce, 0x001c3507}}},
+ {X: Field{[10]uint32{0x03da41bf, 0x00450ea0, 0x009d78b4, 0x007acd55, 0x00a888dd, 0x00c7c5ff, 0x00962b64, 0x01411647, 0x0174a0ac, 0x00124dbf}}, Y: Field{[10]uint32{0x03ff4f92, 0x02d7fc86, 0x03392c5a, 0x00ad7743, 0x013fc5b7, 0x02cfc73d, 0x0068af85, 0x0214fb5f, 0x01dd6517, 0x000cea38}}},
+ {X: Field{[10]uint32{0x02023557, 0x03a0ac36, 0x03594288, 0x039eca8f, 0x03c1a0c6, 0x025601d2, 0x03aad592, 0x01d6e3d6, 0x01388110, 0x0005c5dd}}, Y: Field{[10]uint32{0x01b10837, 0x02ec1cb0, 0x0077504b, 0x00a08e6a, 0x01b163fe, 0x00d36848, 0x03a0c5f7, 0x01d0b179, 0x0014efd8, 0x00160f52}}},
+ {X: Field{[10]uint32{0x038926a2, 0x01dc33d3, 0x02bab586, 0x023c0da4, 0x006abb11, 0x03c87c82, 0x014c82d8, 0x0117aad0, 0x03fbad51, 0x002849ad}}, Y: Field{[10]uint32{0x022ec669, 0x032cb46b, 0x00394452, 0x0251a679, 0x0288d465, 0x007dffb0, 0x02bfdb74, 0x02d34868, 0x0017b601, 0x001e6d2b}}},
+ {X: Field{[10]uint32{0x02871163, 0x0039c0eb, 0x004fdba3, 0x02361a61, 0x023485db, 0x03619694, 0x015de512, 0x00012035, 0x0361f884, 0x00147b33}}, Y: Field{[10]uint32{0x02a8d50f, 0x032bb4cb, 0x03dcee87, 0x02a55e94, 0x0012b2c6, 0x0003a824, 0x000c46a2, 0x0327c20b, 0x025397bd, 0x001652b4}}},
+ {X: Field{[10]uint32{0x02b3c7a9, 0x016e8ed4, 0x02882510, 0x00e22d45, 0x03d89844, 0x01e7496b, 0x01966cca, 0x01c4c7d5, 0x02336f1b, 0x0025de05}}, Y: Field{[10]uint32{0x03214c60, 0x03a2764e, 0x01516e47, 0x03bbd0d5, 0x02105011, 0x0149d7ad, 0x01a20e0a, 0x023f8337, 0x0141b4b0, 0x003c77cd}}},
+ {X: Field{[10]uint32{0x0093f7fe, 0x01e6f80b, 0x03f01cdb, 0x00ea1c2e, 0x0064231d, 0x0068d73a, 0x038cf6db, 0x0236ad71, 0x003a7224, 0x0022f0b1}}, Y: Field{[10]uint32{0x00cbb425, 0x02ef8385, 0x01b2ef49, 0x001e009a, 0x030b428f, 0x03eee75e, 0x028106af, 0x0276fc27, 0x0276173e, 0x00354b8b}}},
+ {X: Field{[10]uint32{0x01aef9f2, 0x014f9401, 0x020d9799, 0x01d7a267, 0x036c3271, 0x012e42cd, 0x00abd033, 0x02846729, 0x00816c7c, 0x00167b5e}}, Y: Field{[10]uint32{0x02449910, 0x02981a85, 0x02133152, 0x0094d2f1, 0x02207794, 0x019a7836, 0x01b46a28, 0x003faf93, 0x0027690c, 0x0008e7f0}}},
+ {X: Field{[10]uint32{0x03c70fda, 0x0033dacb, 0x025200ca, 0x0268b2ad, 0x01c8ff8e, 0x00a8e716, 0x01923907, 0x01265750, 0x01d17671, 0x002fb0e6}}, Y: Field{[10]uint32{0x010ba8e7, 0x0266ff6b, 0x03fbf709, 0x01f3bf17, 0x02a21a2f, 0x0394bcd1, 0x021ab9ad, 0x0082348e, 0x01ef7831, 0x003ff12f}}},
+ {X: Field{[10]uint32{0x020c4d34, 0x00d62167, 0x0307668a, 0x036d6318, 0x019e3b87, 0x0348a9df, 0x01f99517, 0x03c76fe9, 0x01eef4ce, 0x0024ef49}}, Y: Field{[10]uint32{0x0335b4dc, 0x039aa1d9, 0x00860794, 0x018c0d01, 0x01fa008c, 0x03e265c3, 0x003b1f94, 0x006e1269, 0x00129736, 0x00375f45}}},
+ {X: Field{[10]uint32{0x02ddcf58, 0x039b2483, 0x00f8e3e8, 0x0316f7a9, 0x0344e553, 0x01d15695, 0x00b2e708, 0x01354456, 0x0257fb4e, 0x002c80e9}}, Y: Field{[10]uint32{0x02d8c99c, 0x0200d657, 0x03a6a0ac, 0x029e866b, 0x03c74ae5, 0x010fee9e, 0x030d4c75, 0x03860987, 0x01480c63, 0x0026091a}}},
+ {X: Field{[10]uint32{0x00f6aa69, 0x01a0f760, 0x024e70be, 0x008533fd, 0x023e20ac, 0x0076a2aa, 0x018a28d1, 0x009ed604, 0x013c1dcd, 0x002bce2d}}, Y: Field{[10]uint32{0x009fd919, 0x030cbe70, 0x02c16acd, 0x01e463e2, 0x035ec101, 0x028feb19, 0x02867237, 0x00ad08d1, 0x0136ba8b, 0x002478e2}}},
+ {X: Field{[10]uint32{0x03fd8518, 0x0315d3da, 0x02d862f8, 0x01c83d79, 0x02988ed4, 0x002ad33b, 0x00587562, 0x03601788, 0x025b0b99, 0x00157936}}, Y: Field{[10]uint32{0x00eb2d35, 0x005845eb, 0x0130940b, 0x00963c5e, 0x02e7713b, 0x00d30d9b, 0x01b5976c, 0x0274cb85, 0x02347517, 0x001cda2f}}},
+ {X: Field{[10]uint32{0x002133f5, 0x00e83279, 0x035d9018, 0x01b74968, 0x01a3608c, 0x03605f64, 0x021a15e1, 0x0389020f, 0x002aa7eb, 0x0034f5fa}}, Y: Field{[10]uint32{0x005d504b, 0x029f53ff, 0x03bfcae6, 0x01a5b06f, 0x024b1c6d, 0x031789dc, 0x01080b06, 0x00df1a25, 0x01cce895, 0x00029491}}},
+ {X: Field{[10]uint32{0x02e48799, 0x01b9699b, 0x003f2231, 0x012da31b, 0x03beab75, 0x03732641, 0x021e8031, 0x0110de5d, 0x039fe6b5, 0x0022f453}}, Y: Field{[10]uint32{0x0178fe19, 0x0042bfda, 0x00603891, 0x009f66ba, 0x00ecb2eb, 0x0158ce1a, 0x0263a263, 0x01895d45, 0x0150a387, 0x003e2770}}},
+ {X: Field{[10]uint32{0x02212932, 0x0223f488, 0x0370485c, 0x016c1208, 0x023a7dbc, 0x01ca9688, 0x02b08589, 0x003d0b3f, 0x036503f5, 0x002c75c8}}, Y: Field{[10]uint32{0x002143ac, 0x03cdc5b0, 0x0025570b, 0x013801f4, 0x01627986, 0x0216c877, 0x00aa52d3, 0x0387e6dd, 0x01d8594e, 0x0010165f}}},
+ {X: Field{[10]uint32{0x039d3023, 0x03d3dc99, 0x013a8593, 0x000c1787, 0x01c22d44, 0x001173bd, 0x03e4763e, 0x0248324e, 0x03e1cb7d, 0x001134c0}}, Y: Field{[10]uint32{0x0189a70c, 0x004b1857, 0x02004769, 0x02a6806c, 0x03e77e41, 0x00f8f3b8, 0x03d6fcc8, 0x0368bcc6, 0x02fc5ed6, 0x001e7ef7}}},
+ {X: Field{[10]uint32{0x030cb3ca, 0x03ae848e, 0x00aed3df, 0x026420f5, 0x02925589, 0x0183ae65, 0x03bd4b90, 0x02aba5c9, 0x0054447a, 0x0005957b}}, Y: Field{[10]uint32{0x0226fcdf, 0x03b39419, 0x017443b9, 0x029ac76b, 0x006ea28f, 0x027c1b65, 0x00f7bf8a, 0x038c7a62, 0x0178cf96, 0x0023a439}}},
+ {X: Field{[10]uint32{0x005a3f29, 0x01eedf61, 0x02cb1971, 0x00120032, 0x027902b1, 0x0226439b, 0x01a93261, 0x019afd9b, 0x03fb5305, 0x002c0ab8}}, Y: Field{[10]uint32{0x03006876, 0x000c1f5e, 0x0105162a, 0x00ca4a98, 0x03d8c052, 0x02ce5d09, 0x03b76311, 0x00c0c466, 0x0313f448, 0x0031b4c9}}},
+ {X: Field{[10]uint32{0x00c5bcd3, 0x03927344, 0x02c6e065, 0x0266854f, 0x018e1236, 0x02c4ae6b, 0x015e1402, 0x0010ae1d, 0x016653a0, 0x0004f119}}, Y: Field{[10]uint32{0x02d41c88, 0x024b1441, 0x002b0044, 0x02a29e2c, 0x007bab13, 0x00eb0f84, 0x0121ea40, 0x0180f8f1, 0x032c498f, 0x001c3cd9}}},
+ {X: Field{[10]uint32{0x00f1483f, 0x03b68f01, 0x034c6361, 0x00fc5077, 0x010dee48, 0x017a5ece, 0x01c7bffc, 0x00dee0ba, 0x022b03fc, 0x0039f1d5}}, Y: Field{[10]uint32{0x03454066, 0x00be39b0, 0x028331b1, 0x026076ec, 0x021a9372, 0x01e85b43, 0x03dce515, 0x01256306, 0x00603d2b, 0x001cd2f9}}},
+ {X: Field{[10]uint32{0x0159aefc, 0x035fee8a, 0x038d2263, 0x00870c12, 0x03332f39, 0x02f1ec9f, 0x02b2ed1e, 0x03f1d4d0, 0x012dfb6c, 0x00378097}}, Y: Field{[10]uint32{0x02de12f1, 0x01dbc705, 0x005985e6, 0x007601a5, 0x001a88c3, 0x020dce8c, 0x02fc30c3, 0x03cf40b6, 0x01b16ab6, 0x0011b182}}},
+ {X: Field{[10]uint32{0x02ca2e01, 0x00b0c8cf, 0x03e4b6a4, 0x03d20e05, 0x0225730a, 0x02ebc14e, 0x01db714a, 0x0070f497, 0x00b4fed2, 0x000879e2}}, Y: Field{[10]uint32{0x01c1c4c6, 0x00a7f6b9, 0x03c58ddd, 0x03e73504, 0x01b249b1, 0x008cd6e7, 0x02af9b83, 0x01d64ad9, 0x02bda7d0, 0x0007f9c5}}},
+ {X: Field{[10]uint32{0x0379edce, 0x033fc41e, 0x02012e39, 0x02776a5f, 0x02d1bc1a, 0x01d6ca39, 0x0058242c, 0x03542c69, 0x03ca7481, 0x0029f6c9}}, Y: Field{[10]uint32{0x01ae73f8, 0x00d860dc, 0x02238851, 0x0348ec47, 0x00084239, 0x02569f31, 0x0055fc17, 0x039b074d, 0x006dcabd, 0x00313e1a}}},
+ {X: Field{[10]uint32{0x022d477a, 0x03d92d97, 0x01ccf41a, 0x00faf56f, 0x01e80a7d, 0x02b22533, 0x01616275, 0x03c90388, 0x01732790, 0x00314814}}, Y: Field{[10]uint32{0x022ba20b, 0x02fab27d, 0x03cda463, 0x00290150, 0x00af8770, 0x03ab70fe, 0x028e216d, 0x004283c3, 0x015b2094, 0x003a6a8a}}},
+ {X: Field{[10]uint32{0x0172846d, 0x00dc7125, 0x01d05ea9, 0x03aa2e15, 0x0138e91e, 0x00dbaf36, 0x0025f86d, 0x036bafc7, 0x00ad99d1, 0x00121efd}}, Y: Field{[10]uint32{0x00febf70, 0x02a55dbf, 0x00ffe791, 0x01c21b78, 0x0032f729, 0x013062b8, 0x004b2a50, 0x03b42fb8, 0x0037ac6d, 0x00204a4e}}},
+ {X: Field{[10]uint32{0x0208cb53, 0x005120c3, 0x03cb13cd, 0x01d083b7, 0x01355675, 0x03958097, 0x03e2d550, 0x01a22e13, 0x02a6bfcf, 0x002f5b74}}, Y: Field{[10]uint32{0x01ab0fca, 0x00dcc936, 0x01a1a1b0, 0x00b34714, 0x000c467d, 0x00a14566, 0x02a1501c, 0x00e018e3, 0x01e184c8, 0x00321a91}}},
+ {X: Field{[10]uint32{0x035ec737, 0x02931f08, 0x02ce7936, 0x00619caf, 0x0070dbca, 0x0019cc7a, 0x034fbb69, 0x0223904c, 0x03fdfbf1, 0x00252905}}, Y: Field{[10]uint32{0x01be8e34, 0x026910f6, 0x01765029, 0x024d51be, 0x03564e9f, 0x033edf65, 0x02af124b, 0x03052e07, 0x0207343e, 0x00380f19}}},
+ {X: Field{[10]uint32{0x02aba51e, 0x02236519, 0x00fa8ebd, 0x034c0e5a, 0x002ac597, 0x005e88f0, 0x02d9b733, 0x00ec9aa5, 0x02c33fa1, 0x000a95f6}}, Y: Field{[10]uint32{0x00c13b61, 0x02ca4dfa, 0x010c442d, 0x0366016d, 0x013b05bf, 0x0117cd3f, 0x027996e5, 0x02cee2c2, 0x02bf1db7, 0x0005d529}}},
+ {X: Field{[10]uint32{0x007e7df7, 0x0242dffb, 0x01742eae, 0x0284b0fe, 0x02d1c66d, 0x00c20f0c, 0x00613e99, 0x00a8e59f, 0x02710614, 0x002e8b92}}, Y: Field{[10]uint32{0x034cb07e, 0x01eb3fa0, 0x00c971da, 0x00d6091f, 0x02ccc6de, 0x02b7b197, 0x03fc60c5, 0x03a0efb5, 0x00c1a704, 0x003098be}}},
+ {X: Field{[10]uint32{0x00c01ca9, 0x018baa3b, 0x015a80a8, 0x02681cc3, 0x0008bb0b, 0x03eef609, 0x00a12b11, 0x00944b4a, 0x0343b313, 0x0012b865}}, Y: Field{[10]uint32{0x0017eece, 0x01323de8, 0x0019320b, 0x00f0fe75, 0x00cb2788, 0x029aa2e8, 0x001ec7c0, 0x00fa8747, 0x027d48fa, 0x0019edc9}}},
+ {X: Field{[10]uint32{0x0306ddcb, 0x0143a9dd, 0x023ad618, 0x02fd046d, 0x000778b9, 0x01dd24fc, 0x00e6ff9d, 0x00d99fc6, 0x026c8182, 0x000133ec}}, Y: Field{[10]uint32{0x00e4028e, 0x00789dc9, 0x020c778e, 0x01e70e5e, 0x01aa6c60, 0x001f0c84, 0x017af164, 0x024f7c13, 0x023e3a8c, 0x000437e2}}},
+ {X: Field{[10]uint32{0x01130349, 0x034f6e57, 0x02561934, 0x0009bdf5, 0x0215f061, 0x00f01418, 0x03bc3efb, 0x02d9bc03, 0x0166a014, 0x0027e791}}, Y: Field{[10]uint32{0x0396c592, 0x005f4964, 0x015fb0a4, 0x027333f2, 0x02ab6e5c, 0x01682a9e, 0x03d0c17c, 0x009aee63, 0x03a276d5, 0x00124ae2}}},
+ {X: Field{[10]uint32{0x00239301, 0x033c7dab, 0x03bd222e, 0x0252d57c, 0x03ecf2a1, 0x0045678b, 0x039f4c10, 0x02d582c3, 0x01133641, 0x0038db01}}, Y: Field{[10]uint32{0x0343736c, 0x01696f6e, 0x00c7faa0, 0x004eb0ac, 0x0220e9a1, 0x027e0ea0, 0x022aea8e, 0x03f1018c, 0x00ba48e7, 0x0031ff5d}}},
+ {X: Field{[10]uint32{0x00480bbf, 0x027e0936, 0x025e033e, 0x02938fb1, 0x02a0bbe0, 0x03c76846, 0x0337580b, 0x0115a1e1, 0x03b3b94d, 0x00246c04}}, Y: Field{[10]uint32{0x00cfc5b4, 0x00bc8afa, 0x03f00647, 0x02b0f4d9, 0x02948790, 0x038cf45c, 0x026f8247, 0x0094a48a, 0x007ec13a, 0x000578dc}}},
+ {X: Field{[10]uint32{0x02324f56, 0x00fdc8fa, 0x001077d4, 0x01eb5d74, 0x00041f66, 0x0354e7cb, 0x02782de2, 0x01b5488d, 0x03888c67, 0x00095345}}, Y: Field{[10]uint32{0x0014094a, 0x00944cf2, 0x002755fd, 0x037e5e5d, 0x0309bec3, 0x02cb6fc9, 0x034aa03b, 0x0079744f, 0x012e9351, 0x003dc10b}}},
+ {X: Field{[10]uint32{0x02f4079a, 0x00d59e15, 0x03f0b061, 0x018a65a5, 0x0234fce6, 0x0288bc5b, 0x03abe442, 0x003dc4ab, 0x037ece7d, 0x00114b5a}}, Y: Field{[10]uint32{0x03776998, 0x00c5691f, 0x02d23db3, 0x0164504c, 0x029a39ee, 0x0384c812, 0x000d69fc, 0x03f9d8d0, 0x03a128cf, 0x00087aa2}}},
+ {X: Field{[10]uint32{0x004c508b, 0x01451e73, 0x001631f1, 0x02157ca3, 0x02817831, 0x02c660b4, 0x0386b855, 0x023d0606, 0x01d00788, 0x0005602e}}, Y: Field{[10]uint32{0x01d689ff, 0x03403d70, 0x02dc3ecd, 0x02abd95d, 0x0365b69f, 0x01e306df, 0x03cbbe87, 0x036775ce, 0x029c78b3, 0x00136747}}},
+ {X: Field{[10]uint32{0x02fc2700, 0x00e582a8, 0x02f450c4, 0x01fb4212, 0x0245a5aa, 0x033c9680, 0x011470c2, 0x0253245b, 0x023fc316, 0x001e7768}}, Y: Field{[10]uint32{0x015bc978, 0x03c968ea, 0x03c03c34, 0x0086855b, 0x02d7158c, 0x01dc0c73, 0x0374e0f3, 0x02363312, 0x0169a58b, 0x001f1ef0}}},
+ {X: Field{[10]uint32{0x0149dbe6, 0x036bb850, 0x013b5fe2, 0x00141119, 0x02419b49, 0x017d2a83, 0x02500afb, 0x0337084f, 0x03a9bf80, 0x00219b69}}, Y: Field{[10]uint32{0x026bd3d7, 0x02066add, 0x0124b239, 0x00b1af19, 0x02081a28, 0x022af126, 0x027e8adc, 0x015ea9a1, 0x00b3b45d, 0x00189b4e}}},
+ {X: Field{[10]uint32{0x0011d374, 0x012e02e5, 0x0122e102, 0x032be641, 0x02cdb502, 0x01818ae5, 0x01624cfc, 0x01c7a4c8, 0x0112bed2, 0x0010caf2}}, Y: Field{[10]uint32{0x0011cf01, 0x0339a8f9, 0x03605bcd, 0x030aebae, 0x034cb341, 0x03175177, 0x020cc5ac, 0x01350507, 0x009edd7c, 0x00399151}}},
+ {X: Field{[10]uint32{0x0010518e, 0x00fb27d9, 0x01be477b, 0x02b420e9, 0x030717f5, 0x009764de, 0x02970865, 0x00e16854, 0x032883ec, 0x002b0f4e}}, Y: Field{[10]uint32{0x00b9b8db, 0x031c9a21, 0x01a125fc, 0x03e55061, 0x033dde58, 0x0039e439, 0x00d01b2c, 0x01f9d704, 0x02fcc9ed, 0x003449bb}}},
+ {X: Field{[10]uint32{0x03d6aa37, 0x00f690ea, 0x0064a5c1, 0x018a5834, 0x03fa18b2, 0x01ab8999, 0x03696d95, 0x00e175b6, 0x034b2a82, 0x00115c20}}, Y: Field{[10]uint32{0x01236f28, 0x0121ac18, 0x004e121a, 0x0192b590, 0x03d9d15c, 0x02a565f9, 0x022eb590, 0x02fe21ee, 0x0083b249, 0x0007a758}}},
+ {X: Field{[10]uint32{0x0183ef15, 0x00d5752e, 0x03fd3341, 0x0144dabb, 0x02b224b0, 0x0058f02a, 0x029bf792, 0x03816df0, 0x02a0ffaa, 0x00223a69}}, Y: Field{[10]uint32{0x018d1e5a, 0x01a4c91c, 0x00413999, 0x01d746ba, 0x00fe4574, 0x01e6aebf, 0x00ef5e25, 0x018fab71, 0x022dfa2f, 0x003b4e0a}}},
+ {X: Field{[10]uint32{0x02dff706, 0x0361d20a, 0x0348c04f, 0x00ef5b25, 0x00b39703, 0x02b5fd86, 0x005663dc, 0x009f1a94, 0x02b4de33, 0x0005a043}}, Y: Field{[10]uint32{0x0260c81b, 0x02f0b3fb, 0x0111901f, 0x01f96a7b, 0x0230693b, 0x00370a6b, 0x019e84c4, 0x01b27485, 0x03d89132, 0x0000d4ba}}},
+ {X: Field{[10]uint32{0x014adf7b, 0x00cc0726, 0x01cabe2e, 0x03650fea, 0x0088c861, 0x0223455f, 0x01c65035, 0x01260473, 0x02929506, 0x0035f40e}}, Y: Field{[10]uint32{0x002f9627, 0x00578d8e, 0x003ef2a9, 0x023f66aa, 0x02ef419c, 0x0339e079, 0x023042d5, 0x00b01472, 0x03fe933c, 0x00232082}}},
+ {X: Field{[10]uint32{0x01cf11b0, 0x03c994b7, 0x018d91c6, 0x01df9154, 0x03f33aed, 0x0220339e, 0x0225c4ae, 0x02b24093, 0x0104f645, 0x0016cb25}}, Y: Field{[10]uint32{0x01296449, 0x02271d8a, 0x00354fc2, 0x02893abb, 0x03440e1d, 0x023ca901, 0x01681e5e, 0x013cc847, 0x03bcc776, 0x001402cd}}},
+ {X: Field{[10]uint32{0x00fbd761, 0x012b7523, 0x01c2d628, 0x0137d5e7, 0x03bab1a6, 0x03567bb0, 0x01826759, 0x022ef05a, 0x02edd2c7, 0x00346389}}, Y: Field{[10]uint32{0x010770c3, 0x031fbd5f, 0x021a44a6, 0x03684e4b, 0x00685915, 0x016eda51, 0x018989aa, 0x00f9e23f, 0x0172037a, 0x00068780}}},
+ {X: Field{[10]uint32{0x0258222d, 0x00d338a3, 0x0077224f, 0x02fe1759, 0x02dc9e46, 0x03c94951, 0x0221e88d, 0x011e5632, 0x00169bbc, 0x0017dac5}}, Y: Field{[10]uint32{0x037fd6a6, 0x02ab6bd2, 0x00600e02, 0x02378e0f, 0x033a5791, 0x018f992e, 0x03ca0bf1, 0x00140651, 0x02164d5a, 0x000ea39d}}},
+ {X: Field{[10]uint32{0x03762bc7, 0x036f2283, 0x0137339b, 0x00289508, 0x01ec2e05, 0x03fa15a4, 0x00020238, 0x02d159a6, 0x01e8dcc8, 0x0035e989}}, Y: Field{[10]uint32{0x02ea3643, 0x0142d34d, 0x0080620d, 0x029c4000, 0x00208683, 0x03b07f63, 0x017bcbcf, 0x00981eaf, 0x0135a8ce, 0x0023c7e6}}},
+ {X: Field{[10]uint32{0x015913f9, 0x03198fa3, 0x027716ba, 0x0325780a, 0x027ffb42, 0x0286cd3a, 0x01c891b3, 0x0293dc57, 0x001972ae, 0x00295a95}}, Y: Field{[10]uint32{0x03c3f994, 0x0266a41a, 0x038971e9, 0x008d9038, 0x0059b440, 0x01fd7451, 0x00f7bbfa, 0x0159c460, 0x03cdad78, 0x0011ecf7}}},
+ {X: Field{[10]uint32{0x02ade31e, 0x0045beae, 0x03c3ad93, 0x02ccd86d, 0x0030325d, 0x028c1ad1, 0x031a3cd4, 0x032f44de, 0x01d7e574, 0x0007aee2}}, Y: Field{[10]uint32{0x00da4dc7, 0x01401d4e, 0x03e6cb95, 0x00cd24d5, 0x02ee020c, 0x0108a8d0, 0x003d1185, 0x03212d26, 0x012fbd30, 0x00080e71}}},
+ {X: Field{[10]uint32{0x009706fe, 0x024ea22d, 0x030c5ad4, 0x03e8fb93, 0x03e189ef, 0x01e63b09, 0x01cd1a4a, 0x0195d52d, 0x0208931a, 0x002d5ca0}}, Y: Field{[10]uint32{0x03ede9ee, 0x037df442, 0x036c214d, 0x0028c5e0, 0x03358f68, 0x01881e2f, 0x029a6125, 0x034c072c, 0x01e72da3, 0x002ae9e1}}},
+ {X: Field{[10]uint32{0x01a775c9, 0x015f2161, 0x00a8aa24, 0x025d1ebf, 0x02f5162a, 0x03ff07bd, 0x02a00dee, 0x01f1dc80, 0x0270d67b, 0x00159985}}, Y: Field{[10]uint32{0x018803f6, 0x01128953, 0x019b2ea0, 0x024ce7c6, 0x014de8a8, 0x015274f0, 0x0055122e, 0x01441c13, 0x00e183bc, 0x002b6bc2}}},
+ {X: Field{[10]uint32{0x01f2704d, 0x001a3c37, 0x023e93fd, 0x0346c5c2, 0x01c18521, 0x015cded4, 0x01042433, 0x01ada5dc, 0x02e1ecc8, 0x00062ad5}}, Y: Field{[10]uint32{0x0119e94a, 0x020967a0, 0x039ff46b, 0x01fb387f, 0x03df74f0, 0x032cc158, 0x009572ca, 0x02ea6c83, 0x003f43bf, 0x00331a53}}},
+ {X: Field{[10]uint32{0x020ac357, 0x0283c6f3, 0x027c3c1a, 0x0214b83c, 0x036e9451, 0x02fd7d43, 0x035b7540, 0x000d8055, 0x00744827, 0x002f04aa}}, Y: Field{[10]uint32{0x01ada1e9, 0x0005f1bc, 0x036f95de, 0x01598bfc, 0x00abe12d, 0x00812b39, 0x027783c7, 0x01738759, 0x036bac17, 0x00271b39}}},
+ {X: Field{[10]uint32{0x01054584, 0x01eb119e, 0x024572c2, 0x0259776f, 0x01756667, 0x014fb29d, 0x01bdd6c3, 0x036835bb, 0x002699b2, 0x00291253}}, Y: Field{[10]uint32{0x0082d621, 0x014e1b54, 0x01d03554, 0x01a4ee2b, 0x02e8f0cf, 0x00756c6e, 0x022a9146, 0x02a79f4f, 0x00d58360, 0x00162601}}},
+ {X: Field{[10]uint32{0x023aea6e, 0x012b2733, 0x009c7828, 0x038ba8f7, 0x03f1baf9, 0x000da809, 0x034de77d, 0x0139faf8, 0x02f96d0e, 0x0007fe11}}, Y: Field{[10]uint32{0x013f2e6a, 0x00f84b59, 0x009748d0, 0x03be94b7, 0x0327ba3e, 0x01302da3, 0x035d1a8d, 0x00d580c7, 0x036b9f0e, 0x0022828c}}},
+ {X: Field{[10]uint32{0x0110b374, 0x023c7ca5, 0x00099ffa, 0x0090d5d1, 0x026862d7, 0x005cfdc5, 0x00839e04, 0x00f771ca, 0x02ae9157, 0x000cc606}}, Y: Field{[10]uint32{0x01c5223e, 0x039f27ef, 0x01fedad0, 0x01acf86a, 0x01f01ee2, 0x030d3129, 0x01aaa0a4, 0x03393077, 0x029a8cc8, 0x00049484}}},
+ {X: Field{[10]uint32{0x00012594, 0x0232795e, 0x02ae5702, 0x001bf931, 0x00644264, 0x01c9d2a5, 0x0249b157, 0x0112bbdd, 0x032dfb0e, 0x0039a1e0}}, Y: Field{[10]uint32{0x0113b7c0, 0x030312a9, 0x030028ca, 0x0263bb2a, 0x03c5de4f, 0x01dffedf, 0x01caec8c, 0x00d2ded9, 0x009706b7, 0x001796ce}}},
+ {X: Field{[10]uint32{0x00b37def, 0x031cbce5, 0x02aa5755, 0x01477d31, 0x0000c229, 0x028631db, 0x0174b5e2, 0x01c6b160, 0x02c3ed93, 0x000d52ef}}, Y: Field{[10]uint32{0x0214c29a, 0x02a0ff31, 0x0244b5c2, 0x03beeeae, 0x033c2f4d, 0x01d0078f, 0x0213ac73, 0x0105b6cd, 0x00769283, 0x00103432}}},
+ {X: Field{[10]uint32{0x0039a485, 0x01bdc99d, 0x00511ae3, 0x02ffe8bd, 0x02a8bc68, 0x02d7afbc, 0x01e8aa68, 0x02e07cf2, 0x006c5205, 0x003e91ab}}, Y: Field{[10]uint32{0x0367d180, 0x01354b8f, 0x03b35c1b, 0x01e9d97e, 0x010f2565, 0x00fe4461, 0x00de37b1, 0x034aa007, 0x01fab016, 0x000e14fe}}},
+ {X: Field{[10]uint32{0x0024328c, 0x01fb50cc, 0x02688562, 0x01de517d, 0x0256a53d, 0x008fee1b, 0x005263c9, 0x017e387a, 0x02b73325, 0x00109be1}}, Y: Field{[10]uint32{0x028c4fdf, 0x03bef353, 0x011486a2, 0x0105abfe, 0x01658c63, 0x01ec8885, 0x013c4c45, 0x0322756c, 0x01685301, 0x0024bb00}}},
+ {X: Field{[10]uint32{0x00bc64e3, 0x02db9620, 0x01edeb47, 0x03b2d6b8, 0x017685df, 0x01f5233c, 0x01d3f4d1, 0x00b56f85, 0x009bf9a7, 0x00172347}}, Y: Field{[10]uint32{0x01bda7e5, 0x0343df4a, 0x02dc4e18, 0x014d9074, 0x00b6a26b, 0x0083c37b, 0x038a3c7c, 0x02054198, 0x010e286c, 0x00188155}}},
+ {X: Field{[10]uint32{0x0283422f, 0x02f95c39, 0x03c80271, 0x01cfe998, 0x01be6733, 0x01aa72c0, 0x00313562, 0x01407f77, 0x01bc7bf7, 0x000e8087}}, Y: Field{[10]uint32{0x001bfa53, 0x01ec3793, 0x00fff54c, 0x0209217f, 0x02a7a71b, 0x0015924a, 0x00e508ad, 0x037e25e1, 0x00540dda, 0x00192a27}}},
+ {X: Field{[10]uint32{0x03ba47bb, 0x012bc9c8, 0x0326fa50, 0x030c8a59, 0x027c0062, 0x007590b6, 0x01d2dd91, 0x027c001d, 0x02491d71, 0x002360aa}}, Y: Field{[10]uint32{0x03e4e77a, 0x01718b14, 0x026991ff, 0x03f51d83, 0x007c2ae8, 0x031b4f14, 0x00ed10d6, 0x01e3da62, 0x03506d14, 0x001b985b}}},
+ {X: Field{[10]uint32{0x005e536f, 0x03c2394f, 0x02d76f27, 0x0145b9ea, 0x010bbe54, 0x032b06cf, 0x015d60ef, 0x023869bb, 0x0188fe48, 0x001bfbba}}, Y: Field{[10]uint32{0x0044c502, 0x00a6632c, 0x00eeff48, 0x0184d781, 0x0073dcee, 0x0096da28, 0x026d8484, 0x02ea5ae8, 0x0395839f, 0x00003ba7}}},
+ {X: Field{[10]uint32{0x0216fa1b, 0x00f9672b, 0x00e5d2df, 0x002ba257, 0x02306388, 0x005024f1, 0x03cadc73, 0x00355dcb, 0x0179bafd, 0x000d8902}}, Y: Field{[10]uint32{0x004afa48, 0x005f1872, 0x036ca65f, 0x003055e0, 0x03eb2082, 0x01f60cb2, 0x02fe3267, 0x00f6169e, 0x037658ef, 0x00186740}}},
+ {X: Field{[10]uint32{0x036a18f4, 0x026128f3, 0x03407009, 0x0132461d, 0x000b7849, 0x01ba05c1, 0x0046fc32, 0x01814f08, 0x00474da5, 0x00130ae2}}, Y: Field{[10]uint32{0x0328142c, 0x007f884e, 0x03398dda, 0x038f432a, 0x03734286, 0x01716a08, 0x00a0b438, 0x035c4587, 0x026917a4, 0x001166a7}}},
+ {X: Field{[10]uint32{0x01478ac2, 0x004beeac, 0x005ad84e, 0x0142bdee, 0x00d6e54f, 0x0141130d, 0x034eb5b1, 0x0046ea9f, 0x01fdb332, 0x003e4872}}, Y: Field{[10]uint32{0x02016973, 0x005243eb, 0x014f9317, 0x030d7356, 0x01e31fae, 0x03dfd893, 0x006b16a5, 0x0120f923, 0x01b8c850, 0x000e336a}}},
+ {X: Field{[10]uint32{0x0319b257, 0x00b1ac86, 0x038b8ca4, 0x01f7d079, 0x02850ae0, 0x028ff6d3, 0x006c8a7d, 0x035a3e3e, 0x01e66181, 0x00295dda}}, Y: Field{[10]uint32{0x027cfc6c, 0x0276bf14, 0x00eb3882, 0x0260a03e, 0x011dcd66, 0x013542e9, 0x017e00d5, 0x0310afdd, 0x007e644b, 0x00084aa6}}},
+ {X: Field{[10]uint32{0x03c11d9f, 0x02a526b1, 0x0063901e, 0x0053fb5d, 0x03375a27, 0x00f26c5a, 0x00c91952, 0x03b2b622, 0x010437ab, 0x002569e0}}, Y: Field{[10]uint32{0x02cfdf78, 0x007b2ca8, 0x0274809e, 0x01da4688, 0x00ec6428, 0x03c46925, 0x02723df1, 0x0015ac90, 0x00aa227b, 0x003ab8c8}}},
+ {X: Field{[10]uint32{0x01cfa42a, 0x03503d0a, 0x020e5d10, 0x01761612, 0x009f034a, 0x03a61002, 0x01a9a64c, 0x00f850ab, 0x0034f7ef, 0x001da9f8}}, Y: Field{[10]uint32{0x028effa2, 0x0251a2d9, 0x0240479c, 0x025948a8, 0x009f2e49, 0x02f0bbb7, 0x00ec9319, 0x03acf0a9, 0x00e49633, 0x00266770}}},
+ {X: Field{[10]uint32{0x035881d6, 0x023347ba, 0x0247df4e, 0x03357a50, 0x01427010, 0x036df60b, 0x00ddf929, 0x01e01407, 0x03964756, 0x003aea24}}, Y: Field{[10]uint32{0x03bca552, 0x029a6d76, 0x026a50d4, 0x022a3692, 0x02aebe0f, 0x005b3175, 0x037d8be6, 0x014850fc, 0x01f1c088, 0x002e4ab8}}},
+ {X: Field{[10]uint32{0x0223704f, 0x03cf875b, 0x028addd3, 0x0225c4f3, 0x01dc0b75, 0x02bb51cd, 0x014f872a, 0x038559ac, 0x00d8059f, 0x00294e92}}, Y: Field{[10]uint32{0x01387fb6, 0x022d454e, 0x02a0d252, 0x00619db3, 0x004f4634, 0x03b9f559, 0x009403f3, 0x028ea0f6, 0x01a07e85, 0x00279ce3}}},
+ {X: Field{[10]uint32{0x0307d3bc, 0x013f57a9, 0x00fb595b, 0x03e660a2, 0x03c831cd, 0x001418e9, 0x039b1481, 0x03e28e38, 0x010bdba5, 0x0020c996}}, Y: Field{[10]uint32{0x03768982, 0x01986caf, 0x02b06cb4, 0x013ca5f9, 0x03061b7d, 0x03e904c3, 0x000d62ec, 0x037494b4, 0x0388a2a1, 0x000280b3}}},
+ {X: Field{[10]uint32{0x03916030, 0x02b1b7c5, 0x014af7f5, 0x00b02571, 0x03b0c35a, 0x01e9d2cb, 0x01714a21, 0x0042ff8c, 0x0194ba8c, 0x001a9248}}, Y: Field{[10]uint32{0x00c77b87, 0x01b148be, 0x0145db6b, 0x0001bfaf, 0x01c531cd, 0x013f0ca2, 0x02e8b4fb, 0x024dea4b, 0x01658e0c, 0x000f3c2f}}},
+ {X: Field{[10]uint32{0x03c52a57, 0x030c1a0c, 0x007474b6, 0x004df8f5, 0x013b34bf, 0x01ae8887, 0x0180c494, 0x01fbb587, 0x01c6ff79, 0x002d2b1c}}, Y: Field{[10]uint32{0x012820f7, 0x000d41b5, 0x03683905, 0x01837e04, 0x0214ae3b, 0x01893835, 0x03d23434, 0x03fbf3bc, 0x02e48fb6, 0x0011ab2c}}},
+ {X: Field{[10]uint32{0x0286e0bc, 0x0064c5b0, 0x02f9b49a, 0x024e8707, 0x0113b19b, 0x0155ec84, 0x03f05b4e, 0x00a7845a, 0x011e65bc, 0x0022c45c}}, Y: Field{[10]uint32{0x02af0dde, 0x0241e322, 0x004910aa, 0x03d71c8b, 0x00faa6bc, 0x02d3ab96, 0x02d695e5, 0x00d4e086, 0x00cfcf38, 0x001e7128}}},
+ {X: Field{[10]uint32{0x0008e098, 0x013d90d1, 0x0192d897, 0x030db5e8, 0x00727362, 0x0203f789, 0x0203f82e, 0x0095e65d, 0x0276e86b, 0x002e2c02}}, Y: Field{[10]uint32{0x013e56c6, 0x006dbe14, 0x03d0a585, 0x03ede121, 0x029e0b9f, 0x03ab5ecb, 0x006fa1cf, 0x002375f3, 0x03188b01, 0x000176d9}}},
+ {X: Field{[10]uint32{0x01d89814, 0x038b4b58, 0x03a52c50, 0x01a41917, 0x02bebe8f, 0x026dc4f1, 0x0027a8f6, 0x02e5a14d, 0x021b0fb6, 0x0022130e}}, Y: Field{[10]uint32{0x03a3749b, 0x01963381, 0x00fbf14d, 0x012f56c6, 0x00ff28aa, 0x03d537b0, 0x003f821d, 0x00bbbcdd, 0x00e5094b, 0x000f6b30}}},
+ {X: Field{[10]uint32{0x00637596, 0x0291fe5d, 0x037d8496, 0x006abad8, 0x02c004dd, 0x02fdbed3, 0x004100dc, 0x02fd8ff8, 0x01cf51aa, 0x000f4307}}, Y: Field{[10]uint32{0x025df51c, 0x010c8d82, 0x0305d228, 0x004cf8bb, 0x02883fe0, 0x0267eedd, 0x0242a6f5, 0x038b3418, 0x015bbf5d, 0x0015dbaf}}},
+ {X: Field{[10]uint32{0x02bca8c7, 0x020478b6, 0x028fa13f, 0x02d8f54c, 0x031ae972, 0x009deddf, 0x0057f79a, 0x026b7097, 0x01af6153, 0x0015acfb}}, Y: Field{[10]uint32{0x012e98eb, 0x02b19b4b, 0x01347dbd, 0x02ade6cf, 0x0096bdfb, 0x0376a574, 0x02b3d2b5, 0x021809c6, 0x0100a2b2, 0x00100e0e}}},
+ {X: Field{[10]uint32{0x03cfd3e2, 0x02417eca, 0x01457a74, 0x0360c67e, 0x025fbb11, 0x0115217f, 0x00eacfa8, 0x01327d0d, 0x01bf50f3, 0x00109b8a}}, Y: Field{[10]uint32{0x03cb117a, 0x004c660c, 0x017a35d6, 0x02237c7d, 0x00eeb60b, 0x00ee77d0, 0x0110cd5c, 0x01031883, 0x02e8eeff, 0x003ab11f}}},
+ {X: Field{[10]uint32{0x02929308, 0x014329d8, 0x03ea67ed, 0x03ed6ff0, 0x03cf0a91, 0x00bb6b71, 0x01419baa, 0x0135fb1b, 0x03c9f4e2, 0x002555cd}}, Y: Field{[10]uint32{0x001675dd, 0x02b3bb52, 0x0260867b, 0x02d6ee0b, 0x01b69831, 0x0166fd91, 0x02783143, 0x024100be, 0x009d18fd, 0x0025eeee}}},
+ {X: Field{[10]uint32{0x00b3e514, 0x021405fa, 0x004a1cbb, 0x02820e9e, 0x00704e74, 0x035f9eb4, 0x03ae639f, 0x009e83cb, 0x0013d464, 0x00175caa}}, Y: Field{[10]uint32{0x00876c2f, 0x00584f2e, 0x005ac9bc, 0x00dbd471, 0x022e8c26, 0x0267ae56, 0x01d6839a, 0x03187956, 0x010e851f, 0x00324bd0}}},
+ {X: Field{[10]uint32{0x0369b6ef, 0x0146edf9, 0x02406225, 0x02701e14, 0x02dda784, 0x01c12570, 0x00876d91, 0x02224188, 0x0359e9bc, 0x0031f6a4}}, Y: Field{[10]uint32{0x01c10653, 0x02530fc1, 0x001c6d37, 0x031720bc, 0x01cb41f6, 0x012831f6, 0x01907872, 0x02340257, 0x01687150, 0x000489e0}}},
+ {X: Field{[10]uint32{0x029ac683, 0x024193d5, 0x01ace972, 0x035ff86b, 0x02d92697, 0x0082b945, 0x03ee080f, 0x03c3f70b, 0x0226da7a, 0x0019c202}}, Y: Field{[10]uint32{0x0316d94d, 0x008b3f08, 0x03714aa5, 0x0339e7dd, 0x008e08c5, 0x01443ab0, 0x0144107e, 0x01c22cc2, 0x03acfbba, 0x002b6681}}},
+ {X: Field{[10]uint32{0x03fc0dbf, 0x00015c16, 0x01a4163a, 0x00117055, 0x023947f4, 0x00b8ebeb, 0x0078ddc8, 0x00a3ddbe, 0x0239d614, 0x00084356}}, Y: Field{[10]uint32{0x028c511c, 0x02c600cb, 0x017ac96e, 0x01324fa6, 0x002efa80, 0x01ea464f, 0x014cc296, 0x00a70bb4, 0x03e6b0a6, 0x00185fbf}}},
+ {X: Field{[10]uint32{0x0334ed98, 0x00874138, 0x015fc590, 0x0071bfd9, 0x039b8e46, 0x01e0df44, 0x03242a93, 0x0046e714, 0x0231ca15, 0x001742e4}}, Y: Field{[10]uint32{0x03e924ae, 0x00e99baf, 0x01986bd1, 0x0387dbe3, 0x011a2f58, 0x0279f5b3, 0x03ae1b4a, 0x013b69c4, 0x0121f479, 0x003201c0}}},
+ {X: Field{[10]uint32{0x02907392, 0x01e299f8, 0x00ab63ce, 0x00abf344, 0x019013fe, 0x0131c65d, 0x00c8bd54, 0x004587b4, 0x002c4210, 0x001a1eee}}, Y: Field{[10]uint32{0x000d9eeb, 0x017a5984, 0x03e356a2, 0x020440e5, 0x03fafc8e, 0x022c8273, 0x03c721cf, 0x028e9be7, 0x0187758a, 0x003abd8f}}},
+ {X: Field{[10]uint32{0x025f5d33, 0x01a9b473, 0x00da40e6, 0x0347d2f3, 0x03c63527, 0x03cb0ffc, 0x02a3931f, 0x023da068, 0x0157b804, 0x00146910}}, Y: Field{[10]uint32{0x0047dd31, 0x009ffa7a, 0x02a1ec51, 0x019cb6e5, 0x001a0c56, 0x00298e24, 0x03dc8f42, 0x00a50053, 0x0116519c, 0x001bff23}}},
+ {X: Field{[10]uint32{0x01e86775, 0x01c2f2e3, 0x004f989f, 0x02c8af5f, 0x000a5dd7, 0x01e30eff, 0x024786a4, 0x00568d58, 0x017256f5, 0x002ca189}}, Y: Field{[10]uint32{0x0264f3a3, 0x0364cb51, 0x03692abc, 0x037917c5, 0x02f53b64, 0x024a4bfe, 0x0267e5b2, 0x014e5ade, 0x02a80a5a, 0x0008aba5}}},
+ {X: Field{[10]uint32{0x0035bc30, 0x01f1ff82, 0x02e584bb, 0x02f3ee4a, 0x036ee129, 0x028e5884, 0x03d89a5c, 0x01e32bba, 0x021e2010, 0x003ddadc}}, Y: Field{[10]uint32{0x02c0d561, 0x00bd28f9, 0x024b7a06, 0x00e07a5a, 0x03223a0a, 0x0186ebff, 0x02b3d171, 0x026100f5, 0x02b10841, 0x0016671a}}},
+ {X: Field{[10]uint32{0x00178e9c, 0x001f0d31, 0x01b9793b, 0x022cdb7b, 0x01d9a3b8, 0x03da5a44, 0x02f20b7f, 0x03b81ba0, 0x028763ad, 0x0004bc92}}, Y: Field{[10]uint32{0x0055b7f1, 0x01e35638, 0x021b7351, 0x037c230b, 0x02b2427f, 0x00a09efb, 0x025d939c, 0x007edec9, 0x039f96f0, 0x00167f5e}}},
+ {X: Field{[10]uint32{0x0122260a, 0x008878c6, 0x010cefa0, 0x0117123e, 0x00bcfaf1, 0x01609033, 0x0082d477, 0x01aef8a8, 0x0290de6c, 0x002786e2}}, Y: Field{[10]uint32{0x03390f9f, 0x02966042, 0x000a66cd, 0x001ba923, 0x008a71eb, 0x0025f401, 0x02a54f42, 0x036781f0, 0x02a5b54b, 0x003e97a1}}},
+ {X: Field{[10]uint32{0x03baae9c, 0x00240c4b, 0x020a38c1, 0x03e1b134, 0x01ed4117, 0x00a38c7c, 0x01b6a66e, 0x00fadec0, 0x010320b7, 0x0018fc16}}, Y: Field{[10]uint32{0x0101d8eb, 0x02fa2c65, 0x019c501a, 0x032aebd7, 0x0340bd68, 0x0098e1df, 0x0288967a, 0x0207f81b, 0x01d2d34a, 0x00092e32}}},
+ {X: Field{[10]uint32{0x03905999, 0x0264ad18, 0x003a8e27, 0x01ba671d, 0x01e5c89b, 0x0367ca15, 0x03569a4a, 0x00a8f687, 0x0009f540, 0x00111f1d}}, Y: Field{[10]uint32{0x0149e154, 0x0240dc2b, 0x0328db77, 0x01ce2e4f, 0x00716baa, 0x03805b02, 0x0337723b, 0x01e8251e, 0x019ab34a, 0x003513a3}}},
+ {X: Field{[10]uint32{0x00793254, 0x03c437fe, 0x006df1bb, 0x03d28fe6, 0x0025eed4, 0x003c65f9, 0x037db0c2, 0x0102bead, 0x006a4c53, 0x001d2910}}, Y: Field{[10]uint32{0x03742023, 0x0261fad9, 0x0246dfc7, 0x02f014aa, 0x02dc4c07, 0x00711ac5, 0x0136907d, 0x029c4a33, 0x038a0a4b, 0x00058b59}}},
+ {X: Field{[10]uint32{0x03047c07, 0x00c91ba3, 0x005ff3a2, 0x01d814e9, 0x022bf5e0, 0x010731ed, 0x00e63cc8, 0x0098deac, 0x01713187, 0x003dc0d4}}, Y: Field{[10]uint32{0x021097ef, 0x03ba7076, 0x00936cca, 0x032599c6, 0x02b3c7ee, 0x025cad67, 0x01762a95, 0x001e15c8, 0x03914f47, 0x003212c0}}},
+ {X: Field{[10]uint32{0x02eaae11, 0x0267dbdc, 0x024f6ac9, 0x01a37285, 0x022194d1, 0x02c29054, 0x013bd706, 0x00d604b1, 0x007b57b2, 0x003b13f8}}, Y: Field{[10]uint32{0x02fff789, 0x00a3d728, 0x004d7b55, 0x01e6f74c, 0x01b2f9df, 0x026dd814, 0x02b1dc4e, 0x02ca7fb0, 0x029145de, 0x002bd254}}},
+ {X: Field{[10]uint32{0x01d2ac9d, 0x02ead2b3, 0x0238878d, 0x011c47cd, 0x00c65520, 0x005a3435, 0x00b274ee, 0x005d3de8, 0x01e8fa96, 0x0005c55b}}, Y: Field{[10]uint32{0x0061ac3d, 0x01a00fc5, 0x00ca6abb, 0x0211e78a, 0x03c2de9f, 0x037b2e23, 0x00e37ed6, 0x01183261, 0x02c436c1, 0x0000ab8f}}},
+ {X: Field{[10]uint32{0x021b2ede, 0x032990e6, 0x02a6aabf, 0x00302541, 0x01549cb9, 0x00374c33, 0x029be560, 0x011feb3e, 0x022b9c5a, 0x003906d1}}, Y: Field{[10]uint32{0x017507f4, 0x002fc440, 0x01311d38, 0x01308885, 0x03e1b360, 0x0231a563, 0x00fb3533, 0x02982b1a, 0x02b208bd, 0x000423f8}}},
+ {X: Field{[10]uint32{0x0344aa38, 0x01bd0ddd, 0x015ad38a, 0x01e314ee, 0x03f357ea, 0x006a00e3, 0x00800515, 0x01e20f5e, 0x015920a6, 0x002e9b00}}, Y: Field{[10]uint32{0x02002cf3, 0x026d6e45, 0x03680457, 0x006d9a1b, 0x00cda144, 0x003a39c4, 0x0366aa5c, 0x02dd1a0c, 0x00e7deb6, 0x00369270}}},
+ {X: Field{[10]uint32{0x00cbf1ae, 0x020d5a3e, 0x0329cee2, 0x014e1255, 0x037e8a95, 0x01f94998, 0x0102ab7f, 0x012dae1c, 0x006e883a, 0x0009bc06}}, Y: Field{[10]uint32{0x03d5f47a, 0x009176d2, 0x002d398b, 0x008c1d5c, 0x00aad788, 0x02568628, 0x01519809, 0x025f2b33, 0x01e4bb21, 0x0003bbe3}}},
+ {X: Field{[10]uint32{0x000c9d22, 0x0007296d, 0x03cddc45, 0x038f6998, 0x03e00874, 0x00050398, 0x01b5588c, 0x033af0d4, 0x03de80c0, 0x000042e4}}, Y: Field{[10]uint32{0x00903258, 0x016d3407, 0x002842d0, 0x03c850d6, 0x001dfef7, 0x03b1257b, 0x0186b027, 0x03cdaf9e, 0x01ddf79a, 0x003b4c62}}},
+ {X: Field{[10]uint32{0x03769dde, 0x0268f9dd, 0x002558bc, 0x0101db25, 0x017a1595, 0x03d6a315, 0x03b32da8, 0x020b0725, 0x0274337a, 0x0039e7b0}}, Y: Field{[10]uint32{0x028a06f6, 0x0145d898, 0x0102c3b6, 0x03660f5d, 0x02e527da, 0x02223cfb, 0x024c175d, 0x03f38d52, 0x039f22da, 0x0027c8c1}}},
+ {X: Field{[10]uint32{0x03c101e1, 0x034c685b, 0x01b0c1b7, 0x038e4810, 0x002be265, 0x023832a9, 0x039915e0, 0x02b4ff22, 0x017544f0, 0x0003f680}}, Y: Field{[10]uint32{0x018902e7, 0x00bd7061, 0x0030d0db, 0x01dae128, 0x03e4d49a, 0x029415cc, 0x03e42981, 0x0271baf1, 0x022785d5, 0x001093a6}}},
+ {X: Field{[10]uint32{0x0099c6bd, 0x033c46e8, 0x01b31577, 0x028f2f3f, 0x008327d8, 0x022f20c3, 0x03147258, 0x0337f940, 0x01cb5380, 0x001a07c0}}, Y: Field{[10]uint32{0x039002bc, 0x0252463c, 0x018cd007, 0x02b63836, 0x0359c02f, 0x03f279d5, 0x006cef06, 0x02c17e70, 0x0117cdc3, 0x002fe748}}},
+ {X: Field{[10]uint32{0x03d12f64, 0x00825736, 0x039611de, 0x0236e7bf, 0x03d6fe9f, 0x02b28942, 0x0251f4d9, 0x00b30b74, 0x026b2a2d, 0x001c3096}}, Y: Field{[10]uint32{0x02966126, 0x02669346, 0x021f46b2, 0x00136647, 0x03134dae, 0x024fa96d, 0x03f4dc47, 0x02cb3f34, 0x0368a386, 0x00327bab}}},
+ {X: Field{[10]uint32{0x03ccbb9d, 0x00486e27, 0x0330403b, 0x02143fa2, 0x023b466e, 0x03d02199, 0x03d5ea45, 0x010b53fb, 0x012c404b, 0x0011937b}}, Y: Field{[10]uint32{0x005d910b, 0x009c4884, 0x01260796, 0x01ef9069, 0x03610bb4, 0x0295a0d9, 0x02d2d3e0, 0x03d84c8e, 0x01046ad3, 0x002b044e}}},
+ {X: Field{[10]uint32{0x03a103db, 0x00bc4d04, 0x023f02ad, 0x02406d73, 0x01b7ff89, 0x023177f0, 0x0055109a, 0x02466175, 0x037248e7, 0x00028cb7}}, Y: Field{[10]uint32{0x03160e72, 0x0084d292, 0x02173821, 0x034cf997, 0x00cf9ad8, 0x01d8a5b2, 0x02a2d1d8, 0x0241ae6b, 0x00fb9d60, 0x001b6d2d}}},
+ {X: Field{[10]uint32{0x0165179a, 0x0254c540, 0x03fe9a76, 0x0370a971, 0x023ccb74, 0x013b13fa, 0x00297746, 0x034e725c, 0x029e7ee5, 0x003f9273}}, Y: Field{[10]uint32{0x03e7dc8c, 0x023c3e8f, 0x026e63f5, 0x020ad310, 0x0390bfc5, 0x018555c8, 0x03b98662, 0x01773bbb, 0x013a3592, 0x00194fd5}}},
+ {X: Field{[10]uint32{0x0354ad14, 0x01cc5b8c, 0x01a878aa, 0x0028ab75, 0x01ec0f1a, 0x0049ac43, 0x0224750c, 0x029f0936, 0x0255c895, 0x0021a2cb}}, Y: Field{[10]uint32{0x02c299ef, 0x0187c91e, 0x00324efb, 0x02080201, 0x00776bca, 0x0298a46f, 0x03035941, 0x0067f5c7, 0x0074cdea, 0x00178a22}}},
+ {X: Field{[10]uint32{0x00098461, 0x03422d63, 0x011aec63, 0x01fbf4cb, 0x03d267ff, 0x003f121a, 0x013f1c08, 0x00d31a2b, 0x00da90ae, 0x003f81e4}}, Y: Field{[10]uint32{0x00f7177e, 0x00efabdb, 0x03ef416f, 0x036d5a02, 0x02cdbfcc, 0x008b184c, 0x01a02444, 0x02ca0d1c, 0x0393de35, 0x002b4cc4}}},
+ {X: Field{[10]uint32{0x03e9a9d9, 0x03609e5b, 0x039557f6, 0x03d59a0d, 0x0242a23b, 0x019f7fbe, 0x016b1961, 0x020373fc, 0x028d0f4f, 0x003f9ff2}}, Y: Field{[10]uint32{0x00d4eb3b, 0x023c72f6, 0x01b1e71c, 0x02738605, 0x02ccc572, 0x02051dab, 0x000cb3d6, 0x03a49776, 0x018a0d7e, 0x002ef137}}},
+ {X: Field{[10]uint32{0x0034cfc2, 0x00da1625, 0x03fd23aa, 0x0263a7c0, 0x02ae7975, 0x00473d30, 0x011b11b5, 0x03882fad, 0x0270aa4c, 0x00288db0}}, Y: Field{[10]uint32{0x0088f29b, 0x00e8c7c8, 0x01f4c486, 0x0103eeda, 0x028bc370, 0x00230842, 0x00c3ade6, 0x02f7ad07, 0x01c575a7, 0x00164d66}}},
+ {X: Field{[10]uint32{0x02519248, 0x0151bf1d, 0x03644565, 0x03ab6787, 0x02800472, 0x00e0d938, 0x028a3485, 0x0309fcfa, 0x00a56bb8, 0x00035a81}}, Y: Field{[10]uint32{0x0142deb9, 0x01c1a6ad, 0x00e079b7, 0x019889ba, 0x03dbf6e4, 0x015d8490, 0x03099aba, 0x01d8a48a, 0x030d50b9, 0x0012e551}}},
+ {X: Field{[10]uint32{0x00a30e7f, 0x000baa7e, 0x02ebd74e, 0x00a0c986, 0x00677732, 0x035c0689, 0x0276f974, 0x00117f86, 0x0377d64a, 0x00342734}}, Y: Field{[10]uint32{0x0188ffea, 0x02a49359, 0x02e57b90, 0x03abb81a, 0x0141a342, 0x032be203, 0x02ed2d01, 0x000acf5d, 0x02b902b7, 0x0027c250}}},
+ {X: Field{[10]uint32{0x01d98b8b, 0x0343a979, 0x03440b2e, 0x02fffc29, 0x01b9a469, 0x0071f8ff, 0x02e52456, 0x006a75b0, 0x032c16d0, 0x00340c31}}, Y: Field{[10]uint32{0x031f2c8e, 0x02c3c454, 0x006f473d, 0x019f2850, 0x03fddeee, 0x02baa10e, 0x02b60ffe, 0x03e60405, 0x0308dba4, 0x00031ac4}}},
+ {X: Field{[10]uint32{0x0345a691, 0x031aec78, 0x03ba1100, 0x03dd5c1a, 0x0157d0c6, 0x002ce695, 0x01980ab8, 0x0129f510, 0x02c6d2c0, 0x0015b115}}, Y: Field{[10]uint32{0x02084819, 0x00d39909, 0x03189fae, 0x00968184, 0x02825ce5, 0x01d4f0ac, 0x0310ffc2, 0x01743e3b, 0x00dc2c73, 0x00316cbc}}},
+ {X: Field{[10]uint32{0x008400c9, 0x0146eb0c, 0x0037d75e, 0x03178396, 0x0129d911, 0x0353f779, 0x01d1b98d, 0x0347d0a3, 0x01f3b505, 0x002ab56b}}, Y: Field{[10]uint32{0x0377acc6, 0x02ae1f89, 0x036e46af, 0x03c877d2, 0x00f55569, 0x01e431a3, 0x03aa411b, 0x02530448, 0x03674f79, 0x003a52b7}}},
+ {X: Field{[10]uint32{0x026a0ef0, 0x0219e8d7, 0x0034e6b1, 0x030c67b4, 0x02ca1d43, 0x0062d32c, 0x006b089f, 0x02e3dd22, 0x00b4dd76, 0x002b2336}}, Y: Field{[10]uint32{0x037ba96d, 0x02753dc4, 0x001f3c75, 0x02d26f32, 0x02ffb71d, 0x032b73f1, 0x013f8271, 0x02ac55d0, 0x0094f9da, 0x001c75c2}}},
+ {X: Field{[10]uint32{0x0047ca1d, 0x0314d5f7, 0x0394841d, 0x0143d085, 0x0093eb41, 0x01665ad1, 0x01d7a4d0, 0x03e91502, 0x006df110, 0x000e5900}}, Y: Field{[10]uint32{0x03ad7cdb, 0x0291b7c0, 0x017d6395, 0x01d0daff, 0x01c2f244, 0x00fc15f9, 0x022a2bd2, 0x0364ebe4, 0x006d21db, 0x00392847}}},
+ {X: Field{[10]uint32{0x03ca56ec, 0x0387efde, 0x01d551a0, 0x03e3ed0f, 0x03723a1f, 0x02fe442d, 0x02a37b19, 0x004aedd3, 0x039227a3, 0x000af842}}, Y: Field{[10]uint32{0x02df59ab, 0x014bb731, 0x000b4590, 0x03a3076f, 0x03755b2d, 0x00a42c92, 0x03ecca94, 0x037034a4, 0x02fbc886, 0x00066aa2}}},
+ {X: Field{[10]uint32{0x01ad6ae5, 0x018c96ad, 0x01342a4c, 0x005c70e3, 0x03ccc1e4, 0x03ff22ea, 0x0219a34d, 0x03d46874, 0x01562bd7, 0x000de705}}, Y: Field{[10]uint32{0x03185907, 0x00feb10b, 0x0348db98, 0x00d1fc81, 0x01e7bc67, 0x0036554d, 0x01ce2231, 0x0077d59b, 0x028fa637, 0x0011e87c}}},
+ {X: Field{[10]uint32{0x03ce9809, 0x033dea07, 0x014f9914, 0x02426277, 0x0130a362, 0x01e0443a, 0x03584a7d, 0x011674ab, 0x01c2e675, 0x00090153}}, Y: Field{[10]uint32{0x017ae592, 0x016128b9, 0x02a7612b, 0x02069bc0, 0x013553dc, 0x008345a9, 0x00e06d48, 0x03429c71, 0x021d3e05, 0x00195cab}}},
+ {X: Field{[10]uint32{0x002420a4, 0x02d323a8, 0x0298fa3b, 0x0322e140, 0x02913199, 0x00408ecc, 0x03cd8790, 0x02a5e6ad, 0x02a6f46c, 0x002604b9}}, Y: Field{[10]uint32{0x00f937f0, 0x004ae722, 0x0315152a, 0x00ed595d, 0x033afd96, 0x021be4dd, 0x03baf369, 0x0364cc06, 0x02eddfec, 0x0011a3db}}},
+ {X: Field{[10]uint32{0x0313c700, 0x000e969f, 0x03c6b962, 0x03ee5720, 0x029f6c14, 0x00b2778a, 0x00c928d6, 0x02392b61, 0x02446a34, 0x00118161}}, Y: Field{[10]uint32{0x022d57ab, 0x00079dd8, 0x021ad904, 0x004415ec, 0x034c873f, 0x02c62103, 0x0359c203, 0x01c07f99, 0x02e3ca3d, 0x00277157}}},
+ {X: Field{[10]uint32{0x00be006a, 0x002541ef, 0x003228e9, 0x03298e6b, 0x021cb877, 0x012bb43e, 0x00d862fe, 0x0017ca91, 0x03972d5b, 0x002a36eb}}, Y: Field{[10]uint32{0x036fa4bc, 0x0312a5c5, 0x0190251a, 0x00a6e0f2, 0x03253e67, 0x0050742f, 0x018d38c6, 0x024df13e, 0x0003f082, 0x000f6d53}}},
+ {X: Field{[10]uint32{0x011149fe, 0x01e0024e, 0x01128741, 0x0064899c, 0x02008b30, 0x013e611a, 0x0324bcd4, 0x004ca44c, 0x01f4f4d9, 0x0026e2ce}}, Y: Field{[10]uint32{0x0052c1d3, 0x025aa647, 0x030976b3, 0x01fcb82a, 0x034e4cae, 0x002c346c, 0x03fc6939, 0x00b96a23, 0x03721c45, 0x00124293}}},
+ {X: Field{[10]uint32{0x014615eb, 0x00d62b4c, 0x0059773e, 0x00909e99, 0x017406ce, 0x039407e0, 0x02404ea9, 0x011b6c65, 0x01d5a7ef, 0x000cd1a0}}, Y: Field{[10]uint32{0x03ad6c0d, 0x01951094, 0x02b6d6c1, 0x0304dff9, 0x02e328fd, 0x0081a778, 0x004775a5, 0x0335aa7c, 0x003a1d80, 0x000ac8d8}}},
+ {X: Field{[10]uint32{0x01c32529, 0x00fc380a, 0x02a88202, 0x01cadeba, 0x02bd5f83, 0x02933390, 0x00639b40, 0x01baf4a5, 0x0310c63c, 0x003fae38}}, Y: Field{[10]uint32{0x0343b213, 0x02fe1b76, 0x02617fbc, 0x018ef7df, 0x0068a45c, 0x019a0898, 0x017934b8, 0x035e02a9, 0x02ad6a0c, 0x0032db90}}},
+ {X: Field{[10]uint32{0x0305cb67, 0x003cb121, 0x013b3fcf, 0x02d8acf6, 0x01a8ca5c, 0x02e44295, 0x01232523, 0x013a4b72, 0x03c2c733, 0x003d285e}}, Y: Field{[10]uint32{0x026e9dfe, 0x011c6c36, 0x02304bb0, 0x038f573e, 0x02e7f4a9, 0x03d14982, 0x03d55a32, 0x011ca52c, 0x039501b2, 0x00204add}}},
+ {X: Field{[10]uint32{0x00cf181b, 0x011e6e93, 0x0324c7e0, 0x0257c208, 0x02c330a9, 0x03f2abd3, 0x016d596b, 0x010d2552, 0x007b8551, 0x0023b0ab}}, Y: Field{[10]uint32{0x01250130, 0x03aeea4d, 0x00258ce4, 0x025c9ec7, 0x0070e927, 0x0173c2f1, 0x00b3bcf0, 0x03498def, 0x00b67811, 0x003a8562}}},
+ {X: Field{[10]uint32{0x00d4f19a, 0x010f1b01, 0x04001534, 0x02ddf68e, 0x03e4aa9e, 0x039231bd, 0x01c4b6d9, 0x0336f032, 0x021bd9ae, 0x002c79b5}}, Y: Field{[10]uint32{0x028cbf4a, 0x03e62bec, 0x031a35ae, 0x02e83b32, 0x011bc20a, 0x0235bcce, 0x01fdb344, 0x0325da2c, 0x0355b2e2, 0x0010ebde}}},
+ {X: Field{[10]uint32{0x0313b2be, 0x03c8124b, 0x022e4b69, 0x018c0b53, 0x031a9519, 0x036cd50c, 0x004a3974, 0x011f70e4, 0x02e8210d, 0x001360f4}}, Y: Field{[10]uint32{0x0137a6b3, 0x015cbd8f, 0x000367c8, 0x02b25500, 0x017a0e3b, 0x039610ae, 0x005f1d88, 0x03f25ef9, 0x00833874, 0x001fb65b}}},
+ {X: Field{[10]uint32{0x03b20b84, 0x02dba3ca, 0x01c36b9e, 0x03bac2ca, 0x0325f5c5, 0x01549fd9, 0x035d5143, 0x03f0875b, 0x012efd51, 0x0005123a}}, Y: Field{[10]uint32{0x02e344ad, 0x02efae65, 0x03f4cea8, 0x0298e790, 0x0013336a, 0x021a25cf, 0x011c9a22, 0x020f94be, 0x038fc8be, 0x0009228c}}},
+ {X: Field{[10]uint32{0x024e4ead, 0x01c24f24, 0x03e63dcf, 0x02c09617, 0x0239d928, 0x03828863, 0x01cc7d44, 0x0142b0b3, 0x03d69c22, 0x00388ec0}}, Y: Field{[10]uint32{0x01b9aea9, 0x03ee2b9c, 0x024542ef, 0x02e84f7b, 0x0380b91c, 0x02b6c135, 0x017ef44f, 0x012df066, 0x03d04a8a, 0x00231a71}}},
+ {X: Field{[10]uint32{0x02b5d7cb, 0x01c8ad0c, 0x02f94e5a, 0x0093699a, 0x00786632, 0x02baff2e, 0x02a929b9, 0x00ff9a51, 0x035e21fb, 0x00133478}}, Y: Field{[10]uint32{0x0167e3bc, 0x012ac1dc, 0x02984cba, 0x035dcc32, 0x03eca892, 0x00a5e185, 0x02887803, 0x016c42e9, 0x02dc5e86, 0x001ac444}}},
+ {X: Field{[10]uint32{0x020db647, 0x03ec8102, 0x01bf5f2e, 0x02c363c7, 0x00bf25c6, 0x0165bb38, 0x00b92123, 0x02dec09f, 0x02f8092c, 0x003cf3ae}}, Y: Field{[10]uint32{0x0168d8e0, 0x0160af2a, 0x02ab7e12, 0x01cbbef6, 0x02cf3c71, 0x02ee974f, 0x0123b887, 0x03004e46, 0x01eb8418, 0x00298577}}},
+ {X: Field{[10]uint32{0x01655e7d, 0x02168b1b, 0x01736a3a, 0x0379ec75, 0x02dfe341, 0x00c605c1, 0x0337c813, 0x03e235a0, 0x0128500b, 0x0012e2b3}}, Y: Field{[10]uint32{0x01219bb8, 0x0325b83f, 0x018ac624, 0x021e113c, 0x027b7c5d, 0x014bcec1, 0x016f76e0, 0x0159d613, 0x03c3825a, 0x002fa4f5}}},
+ {X: Field{[10]uint32{0x00eb9fe1, 0x01c6541f, 0x03c53d47, 0x020616ba, 0x003e567d, 0x0331a37a, 0x03d2de62, 0x0002218f, 0x0081d04e, 0x002371eb}}, Y: Field{[10]uint32{0x01fa9198, 0x02e53104, 0x000e8214, 0x0224bb84, 0x031eb14c, 0x0097200f, 0x03a7755e, 0x0064c711, 0x024abe7b, 0x0018b52d}}},
+ {X: Field{[10]uint32{0x01b89a23, 0x01394c30, 0x02033710, 0x015e400f, 0x01a817c2, 0x03d3cb06, 0x002bbbed, 0x03523425, 0x003f3078, 0x002a98cd}}, Y: Field{[10]uint32{0x02a7b524, 0x0256399b, 0x009bbfe7, 0x01b4338e, 0x0013befc, 0x037a51d6, 0x0020f4d9, 0x01cc3da7, 0x003423a6, 0x0009dfbe}}},
+ {X: Field{[10]uint32{0x01121d30, 0x0135e841, 0x034955d0, 0x0186f085, 0x02dadeba, 0x028df7ce, 0x01096c01, 0x0079023a, 0x00619f30, 0x000df794}}, Y: Field{[10]uint32{0x0138898a, 0x00cbef39, 0x00c31f57, 0x01c35b6d, 0x00e3f6aa, 0x0001565f, 0x0136516c, 0x002e59a8, 0x009c33e4, 0x0001f9c1}}},
+ {X: Field{[10]uint32{0x01eb83b4, 0x03cb0311, 0x0045e011, 0x0208be45, 0x003ebc66, 0x00d1d207, 0x028cd44f, 0x01673a8f, 0x0355506d, 0x001b4633}}, Y: Field{[10]uint32{0x00a30cdb, 0x03cabdee, 0x03854c8f, 0x029f3a01, 0x00220f7b, 0x03536e28, 0x039818e5, 0x01cfd1fe, 0x01c1ca8b, 0x003a4c3a}}},
+ {X: Field{[10]uint32{0x02caa7d3, 0x025ece45, 0x01c0a5b7, 0x03f7ac74, 0x00f70243, 0x00054b27, 0x00203c49, 0x036b1775, 0x02606de7, 0x001df615}}, Y: Field{[10]uint32{0x019c659c, 0x01f6123d, 0x0122e8c3, 0x03b3e481, 0x031a2722, 0x02cf038e, 0x01b0fc94, 0x03554327, 0x03e39b37, 0x000fd5f3}}},
+ {X: Field{[10]uint32{0x0381bf16, 0x0398d77c, 0x01229670, 0x002f5a76, 0x00ea5645, 0x03e753ee, 0x01dc8b56, 0x016ec715, 0x01a6c44b, 0x00170b9a}}, Y: Field{[10]uint32{0x01a3588d, 0x03c0499d, 0x03049f1a, 0x03c930d2, 0x009ec21a, 0x03f42d1b, 0x0021a8c2, 0x032a6e8a, 0x009d0a69, 0x003c2081}}},
+ {X: Field{[10]uint32{0x01a393ee, 0x0339002d, 0x02af1918, 0x023626ca, 0x02aaacb9, 0x00afac1a, 0x01944ed9, 0x02496c94, 0x01f5066d, 0x000ca700}}, Y: Field{[10]uint32{0x02a57abf, 0x02bfb7fe, 0x032a9c3c, 0x0114f531, 0x02e21c2c, 0x0292494b, 0x0150c80a, 0x003ffdab, 0x0038427a, 0x001f8a6c}}},
+ {X: Field{[10]uint32{0x029525da, 0x02d26f58, 0x0099df62, 0x03f21519, 0x02b670f4, 0x01c75ec3, 0x02bb4017, 0x037e90df, 0x031f18b2, 0x00130b98}}, Y: Field{[10]uint32{0x029a6f9c, 0x022728ff, 0x013701f7, 0x00b68fe1, 0x00050c6c, 0x02df0813, 0x01314326, 0x00fe9d30, 0x03fb8742, 0x0022a57a}}},
+ {X: Field{[10]uint32{0x03d03fdc, 0x03efc6d8, 0x03fd9392, 0x0393184c, 0x01d3808c, 0x0384295d, 0x037cf02c, 0x0111971f, 0x03930d25, 0x003f8486}}, Y: Field{[10]uint32{0x009e0ba6, 0x0032f3a9, 0x036352a8, 0x022bcd82, 0x030e5943, 0x0110e83f, 0x03b997f9, 0x010c4653, 0x03077bda, 0x000cc4a6}}},
+ {X: Field{[10]uint32{0x03784c23, 0x00ab984b, 0x0316da53, 0x03510600, 0x032cf8c5, 0x0079d2e2, 0x0220521f, 0x03cfddd3, 0x027b1cdb, 0x000c8eb0}}, Y: Field{[10]uint32{0x03c3dc18, 0x025acb4f, 0x01197bb2, 0x005bcf4c, 0x01c8489e, 0x00d2ea69, 0x00b15fe8, 0x012b1622, 0x0108f6a6, 0x00084558}}},
+ {X: Field{[10]uint32{0x03afd533, 0x006a3481, 0x00d3741b, 0x0287964d, 0x01eeccbc, 0x03830840, 0x01f0ed5c, 0x02c780e9, 0x0362fdfc, 0x000451e3}}, Y: Field{[10]uint32{0x005f9153, 0x025a667b, 0x0366c70d, 0x02c82614, 0x02aba8d0, 0x0344549e, 0x00cdb176, 0x03b32191, 0x02732fd3, 0x002a7de5}}},
+ {X: Field{[10]uint32{0x00b9d078, 0x010fbf08, 0x016e5e73, 0x02d5d9e2, 0x02bc8d82, 0x03b569a9, 0x008acf3a, 0x0306b7ae, 0x01b6c9d3, 0x0027c242}}, Y: Field{[10]uint32{0x007db181, 0x03ce1139, 0x017a33b0, 0x035ee669, 0x0061a579, 0x023d948d, 0x0263e30b, 0x01759371, 0x00a6c5c9, 0x00294587}}},
+ {X: Field{[10]uint32{0x024a6b9f, 0x0255f4e9, 0x01711c55, 0x02c6d4bc, 0x032807ac, 0x006be02e, 0x01d8cd1a, 0x02b508a6, 0x007532a9, 0x0012582a}}, Y: Field{[10]uint32{0x02976625, 0x02e42d37, 0x03dd8cd6, 0x000bbbdd, 0x004bfc62, 0x00fe0bc9, 0x008f54a9, 0x0198a3ad, 0x01f3f1b4, 0x0015e394}}},
+ {X: Field{[10]uint32{0x01310354, 0x0160bc17, 0x0066854b, 0x00d92d7b, 0x01d142d5, 0x03f27dcf, 0x010951cb, 0x00997952, 0x01c20bdb, 0x0019d70a}}, Y: Field{[10]uint32{0x008bd6d1, 0x00a411f8, 0x03a49832, 0x017e768c, 0x028cb8ad, 0x021af7e9, 0x02d4f9a1, 0x037a1080, 0x02693d82, 0x0008b47d}}},
+ {X: Field{[10]uint32{0x007ce605, 0x02df26c4, 0x01d36f65, 0x037eb612, 0x01a9053a, 0x005aaccb, 0x01221779, 0x034389aa, 0x00bd6c75, 0x0031025b}}, Y: Field{[10]uint32{0x01c2bb46, 0x016f94e5, 0x023c294f, 0x01440092, 0x01b2b97e, 0x018ceb81, 0x0361efb9, 0x0325e4bf, 0x03472ae3, 0x0017c8da}}},
+ {X: Field{[10]uint32{0x03905c0b, 0x003b66ce, 0x03789dd8, 0x018007e8, 0x01b1ddd4, 0x031d5055, 0x01205ec2, 0x015007c0, 0x0341ddd0, 0x0027a834}}, Y: Field{[10]uint32{0x01a28e69, 0x00570803, 0x03b717e6, 0x016654fd, 0x00ba7ce0, 0x00e625d9, 0x03692cd5, 0x0342ddbc, 0x010197e7, 0x000efd20}}},
+ {X: Field{[10]uint32{0x02fb92e4, 0x035d690c, 0x028c7b4d, 0x03cb78dd, 0x01637367, 0x026056c3, 0x026edd2d, 0x03e8cdca, 0x02d784bf, 0x002f7aef}}, Y: Field{[10]uint32{0x03d0b9c0, 0x01312bb3, 0x00067673, 0x007f28ac, 0x01297a43, 0x02882507, 0x016af105, 0x026d8b70, 0x037eb62a, 0x0017fcd0}}},
+ {X: Field{[10]uint32{0x02910932, 0x031f5b27, 0x020c7bcc, 0x01d1ded5, 0x000cbfe6, 0x03d55084, 0x02ea82c8, 0x00d3cb5a, 0x0244b46e, 0x002921be}}, Y: Field{[10]uint32{0x0097317a, 0x007208be, 0x03ca8323, 0x02a9fd1f, 0x01b8ad5b, 0x01532955, 0x023caa0f, 0x038a1022, 0x036d8a15, 0x0006adf8}}},
+ {X: Field{[10]uint32{0x01cbba08, 0x0069f44a, 0x03769fbd, 0x02c4631f, 0x0366e7ab, 0x0082bbea, 0x0204376a, 0x02a49aa8, 0x00a557a1, 0x001118e8}}, Y: Field{[10]uint32{0x0034af0d, 0x036ada74, 0x02ce09a9, 0x0148973a, 0x037dc081, 0x002e2b44, 0x00f01de2, 0x0180a9c1, 0x02a5ab7b, 0x0012a08e}}},
+ {X: Field{[10]uint32{0x01825ac4, 0x029cf7d3, 0x00b4c593, 0x0318bbad, 0x008cbdc5, 0x03647476, 0x03135840, 0x0237eead, 0x024fc45e, 0x0035b822}}, Y: Field{[10]uint32{0x02b4c55f, 0x020032d7, 0x02506c59, 0x036588bf, 0x0108be98, 0x003f8b6f, 0x031ae8fc, 0x0342e941, 0x03b477c0, 0x000b3616}}},
+ {X: Field{[10]uint32{0x016a10f1, 0x00fea1fe, 0x03656a43, 0x034293e2, 0x00546d31, 0x026eff4d, 0x0076dca2, 0x032b5398, 0x02992a69, 0x002d89b8}}, Y: Field{[10]uint32{0x03cb5bc6, 0x015bd0d0, 0x03d343c6, 0x00ee32ef, 0x0162ac5e, 0x01789d95, 0x01686325, 0x0249a3c5, 0x02ceba91, 0x001b7d2c}}},
+ {X: Field{[10]uint32{0x007139a5, 0x006959a5, 0x03b057e3, 0x03ad8678, 0x0225a4df, 0x03f93497, 0x01d61965, 0x0141c2cb, 0x02eb7464, 0x000d8679}}, Y: Field{[10]uint32{0x0282093f, 0x0035c944, 0x014311aa, 0x00ed1430, 0x0379940c, 0x02519f1e, 0x036c3bf2, 0x01848674, 0x0189ba15, 0x002592e2}}},
+ {X: Field{[10]uint32{0x00bda2e9, 0x03dfd232, 0x02a847cc, 0x01838c9a, 0x0141e5c0, 0x014cc258, 0x00a3a65d, 0x0210ff10, 0x035e6718, 0x002cd4a6}}, Y: Field{[10]uint32{0x01c1b935, 0x03f15496, 0x030579d4, 0x01eca99e, 0x0131111e, 0x0216fb3d, 0x00595ac2, 0x02fd17a7, 0x00d37ce1, 0x001279b8}}},
+ {X: Field{[10]uint32{0x03a9e05b, 0x02bf7c4b, 0x01598d42, 0x01e2500d, 0x014a1997, 0x03491fbc, 0x0385527d, 0x00517ff3, 0x00675bd7, 0x003947c0}}, Y: Field{[10]uint32{0x01b32666, 0x00a72ff0, 0x02c8cec7, 0x017cc3ad, 0x017d2e17, 0x026c11f9, 0x023d5fc6, 0x01cbad14, 0x033e8b4d, 0x003566ab}}},
+ {X: Field{[10]uint32{0x01e79b28, 0x017e0c73, 0x00720170, 0x03935148, 0x0391c930, 0x0029ed52, 0x025eb6aa, 0x0311a348, 0x0066f64b, 0x0022a1fc}}, Y: Field{[10]uint32{0x02800227, 0x03afa959, 0x0113bb5e, 0x02b18954, 0x03249c34, 0x0343909d, 0x019062f5, 0x01f256c8, 0x0195e005, 0x002a4a97}}},
+ {X: Field{[10]uint32{0x01310b06, 0x03661eff, 0x03632cd7, 0x03eee2bb, 0x013a926a, 0x03e236ab, 0x01c771eb, 0x023b969a, 0x0015aa87, 0x00362a04}}, Y: Field{[10]uint32{0x020acbdd, 0x017d4ff8, 0x02ad3d5e, 0x03680667, 0x03ec9f31, 0x03ce50b1, 0x03e3a262, 0x03b53a58, 0x03e8f276, 0x002bddfd}}},
+ {X: Field{[10]uint32{0x020cc5c1, 0x01d0f533, 0x034d2c3b, 0x02f5466b, 0x02051c9a, 0x01974a35, 0x025b8a38, 0x01364f6f, 0x02194f3f, 0x002230fe}}, Y: Field{[10]uint32{0x020d8f8d, 0x0192381d, 0x039d9a9d, 0x036a660a, 0x0226b5de, 0x01dd16fb, 0x03671a7e, 0x03e089ec, 0x037a0f9f, 0x0004132b}}},
+ {X: Field{[10]uint32{0x01ce648e, 0x00b0f650, 0x02484553, 0x0045b169, 0x02220701, 0x031ca6a2, 0x01e9c763, 0x02c3abc1, 0x03253434, 0x003e1ce1}}, Y: Field{[10]uint32{0x006f7bd7, 0x0327885e, 0x0320146f, 0x0055e059, 0x024c286e, 0x0034f86f, 0x01f66270, 0x01e44eda, 0x02d1d4ee, 0x002a2d7b}}},
+ {X: Field{[10]uint32{0x009acc33, 0x021083e4, 0x02f606b1, 0x03e3723f, 0x007b35c8, 0x01a25817, 0x00ca8265, 0x00087e53, 0x01385afb, 0x00017f29}}, Y: Field{[10]uint32{0x01b2b3a8, 0x0246bd75, 0x036392b7, 0x01e35752, 0x03c5b4d0, 0x008facaf, 0x01f9a527, 0x022ff7ac, 0x0251f5c2, 0x000075fe}}},
+ {X: Field{[10]uint32{0x035007db, 0x01193eb3, 0x01a51891, 0x013f8558, 0x03f1fddf, 0x03b52f43, 0x02cef9db, 0x02b366ec, 0x0148d4b2, 0x0011d211}}, Y: Field{[10]uint32{0x028f44a8, 0x02a8f20c, 0x02bce3dd, 0x00efb620, 0x01b93e22, 0x03ed113f, 0x03a25397, 0x033f811b, 0x0154f011, 0x003a9878}}},
+ {X: Field{[10]uint32{0x02c5b8f1, 0x01ab2179, 0x0234ab46, 0x01b49500, 0x01dd8ef5, 0x0106a008, 0x029a6feb, 0x0350ffb1, 0x03ff0b14, 0x000cc7c5}}, Y: Field{[10]uint32{0x02ec144b, 0x015a6c27, 0x0299b68d, 0x01840b11, 0x0337d8c0, 0x02864c47, 0x0364a0f8, 0x011cc6da, 0x00a18d77, 0x002e882f}}},
+ {X: Field{[10]uint32{0x03dc68ce, 0x02c51b76, 0x027f15e9, 0x0073e710, 0x0205b897, 0x0014c395, 0x0388ce98, 0x034b192a, 0x022d200b, 0x0001aae9}}, Y: Field{[10]uint32{0x01f832c8, 0x02ac09ba, 0x00c5b000, 0x035de376, 0x01fcf65f, 0x03c1c7cb, 0x0126ef0c, 0x022466b3, 0x02d7d7d9, 0x0039324d}}},
+ {X: Field{[10]uint32{0x03ca19c5, 0x032f1a48, 0x014fcf52, 0x02371cc9, 0x02c0cfee, 0x027b1bb3, 0x01022b4d, 0x02867188, 0x0035e72f, 0x0031dadb}}, Y: Field{[10]uint32{0x0213efc9, 0x02ea0c7e, 0x03fb1ee7, 0x0215ec86, 0x01b49dba, 0x01fe80a2, 0x034d0a1d, 0x0216666d, 0x027a48ee, 0x0016c3fe}}},
+ {X: Field{[10]uint32{0x021bb77a, 0x024e1533, 0x014a404a, 0x03b50549, 0x02aaa438, 0x00a70529, 0x01590fa4, 0x00f7e6c0, 0x023d43f3, 0x003015ba}}, Y: Field{[10]uint32{0x033dca7b, 0x01ee31fa, 0x0231cc33, 0x000a2e80, 0x0258355a, 0x01da95c7, 0x0079e7f5, 0x02a7c4b1, 0x00e32337, 0x00356c65}}},
+ {X: Field{[10]uint32{0x01ac938a, 0x0222cf6f, 0x003a147e, 0x03124f2b, 0x037df652, 0x01ae3ced, 0x03bb897e, 0x003bc44d, 0x00cc8ddf, 0x000f5a23}}, Y: Field{[10]uint32{0x015879fc, 0x02bc8b53, 0x03b4a691, 0x0269ebce, 0x0338b6bc, 0x0045563d, 0x00daead1, 0x0387ca58, 0x03884d7a, 0x002f2a51}}},
+ {X: Field{[10]uint32{0x00d2a179, 0x012ccf42, 0x009cf392, 0x027d7cb9, 0x00c59d7a, 0x03dbf60d, 0x0145f0cd, 0x004602a4, 0x02f669ce, 0x0013ebfe}}, Y: Field{[10]uint32{0x020159d2, 0x03d55841, 0x00485b71, 0x01c9e6f3, 0x03dcbad8, 0x032442ae, 0x000c16d8, 0x00bb0956, 0x00ac2dca, 0x00278057}}},
+ {X: Field{[10]uint32{0x024aecad, 0x00c15e68, 0x02f614ac, 0x031d9a67, 0x000e8ba0, 0x037b31f1, 0x01a44eb3, 0x03ade1ad, 0x00e37cd7, 0x00011d5e}}, Y: Field{[10]uint32{0x03171651, 0x03be3259, 0x0056945e, 0x019a7af2, 0x0007fd00, 0x02d8a3b6, 0x00eab83f, 0x03802f1a, 0x0017a6be, 0x002522b2}}},
+ {X: Field{[10]uint32{0x00618836, 0x0386a577, 0x01dfe103, 0x029dded6, 0x038c72fd, 0x01d221f6, 0x02d1a35f, 0x0191a892, 0x02753eaa, 0x0026ab78}}, Y: Field{[10]uint32{0x002bca96, 0x000dcf74, 0x0025687e, 0x03b771fd, 0x03ceef2f, 0x0325120f, 0x02e7a050, 0x0097cc79, 0x03848f46, 0x002d9470}}},
+ {X: Field{[10]uint32{0x03aed711, 0x004cebd8, 0x02f9a276, 0x027d8a72, 0x03321c9b, 0x011ecaf3, 0x02818524, 0x03b9d556, 0x03e0b1c6, 0x002c6c30}}, Y: Field{[10]uint32{0x000ac827, 0x02eac90c, 0x01571759, 0x019d632f, 0x03c2c741, 0x03fc5c44, 0x001d0dca, 0x01bfcf7f, 0x00fd624e, 0x00124eb3}}},
+ {X: Field{[10]uint32{0x032a8ff6, 0x0373cfaf, 0x0201c156, 0x01881eeb, 0x032a0ce4, 0x03ce46a6, 0x02c5762f, 0x028163ab, 0x018fb192, 0x003155dd}}, Y: Field{[10]uint32{0x011bd3b3, 0x011e5a5b, 0x01766399, 0x02129dc6, 0x03989212, 0x006ff6fc, 0x010f671b, 0x0386567c, 0x0353d209, 0x000753a6}}},
+ {X: Field{[10]uint32{0x037b5e0e, 0x02b648ca, 0x00d07cc9, 0x0209237d, 0x020edcc0, 0x037d686d, 0x01b5ca60, 0x03b53ed2, 0x01ed5120, 0x001cd48b}}, Y: Field{[10]uint32{0x02e08d74, 0x02233e37, 0x01a96e43, 0x013b25c9, 0x037f87db, 0x016f3f71, 0x01299ced, 0x009c3b47, 0x0194cdf0, 0x0011d5a7}}},
+ {X: Field{[10]uint32{0x00323506, 0x02e70bfa, 0x033ad72b, 0x0033c3b1, 0x00fd6fbc, 0x030afb94, 0x03ae46df, 0x02258ca8, 0x000d6632, 0x000595c7}}, Y: Field{[10]uint32{0x03ec68d2, 0x00911212, 0x03143d22, 0x02135d67, 0x00a936d6, 0x01f39854, 0x0157911e, 0x0071833b, 0x01869e00, 0x001977a7}}},
+ {X: Field{[10]uint32{0x00e5f090, 0x00be5626, 0x03343dbe, 0x00ba0b72, 0x01b1810d, 0x0327be1b, 0x020cc8d7, 0x00c29721, 0x01642eb6, 0x003d7f95}}, Y: Field{[10]uint32{0x03adfa87, 0x03244fa7, 0x03504e20, 0x02f75fb5, 0x02eec2da, 0x030b025e, 0x0340dcdf, 0x036b2328, 0x021fbea9, 0x00173b9e}}},
+ {X: Field{[10]uint32{0x016e3592, 0x0138f28e, 0x00591881, 0x005d635e, 0x037aece0, 0x021f3b6b, 0x01a67a0b, 0x02410d0f, 0x033270d0, 0x003bc276}}, Y: Field{[10]uint32{0x03b675e2, 0x0288e6b1, 0x036ea80c, 0x01c4ab81, 0x037df142, 0x03bf7d38, 0x01c6161c, 0x01ba7e59, 0x0005ba24, 0x00164d3e}}},
+ {X: Field{[10]uint32{0x033a54e8, 0x03f948cd, 0x030c13ed, 0x008be5d2, 0x025e1746, 0x03c807b4, 0x012b102b, 0x03c26661, 0x03d727d2, 0x00221b36}}, Y: Field{[10]uint32{0x00a73b2b, 0x029ec277, 0x021426ee, 0x021ce351, 0x015166f6, 0x019393e2, 0x03518255, 0x01b96b94, 0x028a7fca, 0x0036b2cc}}},
+ {X: Field{[10]uint32{0x02237cff, 0x03be0ab3, 0x011f96e4, 0x00226ef6, 0x01620713, 0x02367cfa, 0x029ff848, 0x02fcba14, 0x03cd04f7, 0x002df61a}}, Y: Field{[10]uint32{0x03702f0e, 0x03f623ce, 0x0002ee32, 0x0293b434, 0x0303acf2, 0x01d5d210, 0x0146dc41, 0x0151faa1, 0x03f1375a, 0x0031ac2b}}},
+ {X: Field{[10]uint32{0x03388c67, 0x03f1eeba, 0x02c4d22b, 0x02659ef1, 0x00c24f5e, 0x0257653b, 0x03910593, 0x02ae14c1, 0x01b28132, 0x0035f45c}}, Y: Field{[10]uint32{0x001a8f8f, 0x01950f77, 0x00744bfe, 0x020a5c22, 0x037be396, 0x02ece6fd, 0x013c1351, 0x038ad957, 0x00e02421, 0x00260ddc}}},
+ {X: Field{[10]uint32{0x0394b1be, 0x024202a5, 0x03502a42, 0x025b0524, 0x00f01a18, 0x00cf6b64, 0x01f1cfa8, 0x00c39c8a, 0x02fd881e, 0x003ff9c4}}, Y: Field{[10]uint32{0x00505da8, 0x03063395, 0x01586cda, 0x01e94c59, 0x02f18b03, 0x03cbe8af, 0x0311ae58, 0x00212842, 0x0203075d, 0x003d0a67}}},
+ {X: Field{[10]uint32{0x03d13f7c, 0x01919555, 0x03d669f6, 0x03781bc0, 0x03dff3f0, 0x03decd71, 0x03cd10b3, 0x01a54735, 0x02b30322, 0x00158f24}}, Y: Field{[10]uint32{0x03ec10c1, 0x0272cdcc, 0x01f43076, 0x0252153d, 0x009bb210, 0x0105be52, 0x030ccfb2, 0x03bd0602, 0x02f4085b, 0x0037287b}}},
+ {X: Field{[10]uint32{0x00f32437, 0x0353591a, 0x013dd9a0, 0x00a19a9f, 0x01dd52c2, 0x03e91f05, 0x00056d7e, 0x03af3985, 0x02f33a2c, 0x002e39db}}, Y: Field{[10]uint32{0x018651c2, 0x01068a24, 0x004a22aa, 0x03084277, 0x003076cc, 0x00986687, 0x02539ba4, 0x039e668e, 0x039d652a, 0x00111539}}},
+ {X: Field{[10]uint32{0x02f1c971, 0x01d5182a, 0x002d2c56, 0x03cf8219, 0x0107b4a4, 0x022a6610, 0x02e429fb, 0x000e8b7c, 0x0304f607, 0x000db6c8}}, Y: Field{[10]uint32{0x0284b5cc, 0x010bf269, 0x03ef00f8, 0x02d02323, 0x03ecf7f9, 0x009ac6ae, 0x03859eee, 0x002a8f66, 0x028f5cc3, 0x002814db}}},
+ {X: Field{[10]uint32{0x00d9a5ab, 0x01562862, 0x02314f9d, 0x0286df1a, 0x00d537c1, 0x03a6b8a9, 0x0055e529, 0x018df758, 0x011d1521, 0x00317539}}, Y: Field{[10]uint32{0x03eb3f6d, 0x036cce9b, 0x02d0de04, 0x00f12d22, 0x00aaf709, 0x0195c265, 0x0365b08c, 0x01e0b3ef, 0x02ed6a13, 0x0032107b}}},
+ {X: Field{[10]uint32{0x01c4bffd, 0x0263e7dc, 0x032207cd, 0x00cd802b, 0x02b05615, 0x018d785e, 0x0379ed3f, 0x0167dbfe, 0x01c29858, 0x0014300f}}, Y: Field{[10]uint32{0x03137720, 0x01929df5, 0x02b0a68b, 0x00a22dfd, 0x025c4255, 0x01471d22, 0x01a2bd74, 0x008a6bd6, 0x0397a7ed, 0x0031a321}}},
+ {X: Field{[10]uint32{0x008333ef, 0x014d1b7c, 0x01ff3364, 0x0245c74c, 0x03985606, 0x03d6ec3b, 0x010ae5dc, 0x01be68b8, 0x004b3e7e, 0x000a01b6}}, Y: Field{[10]uint32{0x007b429d, 0x026d40f2, 0x0385e54a, 0x0099090d, 0x02bf8cac, 0x00e9ad63, 0x00b5ddbf, 0x01332d33, 0x004338e3, 0x001cbc8d}}},
+ {X: Field{[10]uint32{0x008790a4, 0x02254bce, 0x0353f4c5, 0x006f888a, 0x0282bb9c, 0x026103fb, 0x03e33c62, 0x02374710, 0x01dd1ef5, 0x001035c3}}, Y: Field{[10]uint32{0x030770d5, 0x00a875fd, 0x0130d96b, 0x016ce51a, 0x02e65468, 0x03d35545, 0x00d170ea, 0x0264c8ce, 0x0157b6dd, 0x0026c6a7}}},
+ {X: Field{[10]uint32{0x0387c835, 0x01598222, 0x03905d01, 0x00105e60, 0x02ac7338, 0x038876a0, 0x037b193e, 0x00484ef5, 0x003204e7, 0x0022143b}}, Y: Field{[10]uint32{0x01c160e2, 0x00dfddf7, 0x00d3a7d6, 0x02cac32d, 0x02961480, 0x019701c5, 0x01f58eaa, 0x002e464b, 0x03a0a916, 0x002abffd}}},
+ {X: Field{[10]uint32{0x00ad6e8b, 0x0033dc54, 0x00bd2c24, 0x02c1a8c2, 0x030de291, 0x02f92175, 0x039d4a62, 0x00a7d1df, 0x0109bd7c, 0x00152545}}, Y: Field{[10]uint32{0x03ef2722, 0x01b1ccb1, 0x02f27f13, 0x027ddf00, 0x01b1d8f7, 0x013307ea, 0x0245c764, 0x00ee7e8e, 0x007cf2a2, 0x000bf6cd}}},
+ {X: Field{[10]uint32{0x037e5d44, 0x023da7eb, 0x0221facf, 0x022f990d, 0x031c3d3e, 0x0028f9f3, 0x01af1ab7, 0x03ad3ef9, 0x0355cdf8, 0x0027d7b0}}, Y: Field{[10]uint32{0x01d3c06e, 0x01bcb286, 0x00a58488, 0x017a4afe, 0x0312b8be, 0x0368712e, 0x03da94ba, 0x00d5401b, 0x015fb38b, 0x002c80f7}}},
+ {X: Field{[10]uint32{0x02c0b3da, 0x00dc688b, 0x0037bbdf, 0x0388c18a, 0x028b72f0, 0x022cc9bf, 0x035e606c, 0x02794a32, 0x029c1bba, 0x00204b92}}, Y: Field{[10]uint32{0x00e222a1, 0x0347163e, 0x00f24d10, 0x01227be4, 0x015d98d2, 0x03b4004d, 0x02bd36a1, 0x02b8e718, 0x01b714a9, 0x000ae9ed}}},
+ {X: Field{[10]uint32{0x023d924a, 0x0072a18a, 0x02c36c5c, 0x03d8a89b, 0x01af52c6, 0x03575ff4, 0x00ff16ec, 0x0185ad50, 0x01dbcf85, 0x003980d7}}, Y: Field{[10]uint32{0x001eec86, 0x03ed77fc, 0x0154ad6c, 0x0011a716, 0x01173d31, 0x007ca7c6, 0x0118718a, 0x03f2b1be, 0x009ef687, 0x002a514e}}},
+ {X: Field{[10]uint32{0x02033446, 0x0079d49a, 0x00bc6032, 0x00a69ad4, 0x032643f1, 0x01ac8ce6, 0x01696938, 0x0351c6dc, 0x01e8d771, 0x0035e229}}, Y: Field{[10]uint32{0x017d3990, 0x026259fa, 0x030e0b25, 0x00bde7f8, 0x01c0c9a4, 0x01f646d9, 0x017fe32a, 0x01e0fbe9, 0x02225095, 0x000d2e15}}},
+ {X: Field{[10]uint32{0x03c6f41c, 0x0175291d, 0x01802561, 0x00bdc1af, 0x020c8ef4, 0x03e8cad5, 0x01b5f116, 0x013e7c07, 0x03dd2937, 0x00198dcc}}, Y: Field{[10]uint32{0x0078676d, 0x03b09b74, 0x013c1394, 0x0199b895, 0x0185b59f, 0x005002de, 0x014e916a, 0x03f16458, 0x01453ae0, 0x0000d617}}},
+ {X: Field{[10]uint32{0x0323ad9c, 0x02c08f6c, 0x006f0a5a, 0x00ccd585, 0x016affda, 0x0278b8f5, 0x03ad4d11, 0x00504cf6, 0x032805ae, 0x0017b1b9}}, Y: Field{[10]uint32{0x00884579, 0x008f5a70, 0x029f645c, 0x03919a37, 0x03d35a56, 0x00683f28, 0x00d609db, 0x00c078a7, 0x01bfcfc6, 0x000f7490}}},
+ {X: Field{[10]uint32{0x00f8f3c5, 0x019d28cb, 0x02ceee4a, 0x03975105, 0x0087532b, 0x01165c5f, 0x03366471, 0x019a89f0, 0x00421fbb, 0x003c63f1}}, Y: Field{[10]uint32{0x0359d560, 0x008a7344, 0x00de9b4f, 0x0397dd60, 0x02026847, 0x01a1b03e, 0x03b4e836, 0x00f7c403, 0x00813bb3, 0x0034e282}}},
+ {X: Field{[10]uint32{0x01f5345a, 0x0089108e, 0x01719206, 0x03fbba87, 0x017dec0d, 0x004d0919, 0x038d3362, 0x03f87c52, 0x009ed9bc, 0x002063d5}}, Y: Field{[10]uint32{0x006602ee, 0x00b237e1, 0x013688cc, 0x0170ae7d, 0x0048b24c, 0x01fd2cfe, 0x001a8e9d, 0x03d12117, 0x011fcca2, 0x000df398}}},
+ {X: Field{[10]uint32{0x02dce942, 0x016c02c7, 0x02a6417a, 0x03ad9086, 0x024f4fa8, 0x00cba1e5, 0x034ee3a5, 0x00ff20a9, 0x0391f98e, 0x001d78b1}}, Y: Field{[10]uint32{0x03e5f6b4, 0x0153354d, 0x00b26f2d, 0x02f888aa, 0x007c4d37, 0x00582157, 0x02a17c71, 0x004d89a2, 0x033ba495, 0x00147c8d}}},
+ {X: Field{[10]uint32{0x023954d3, 0x01a0db87, 0x011199ca, 0x01667d2e, 0x009b44de, 0x0264ddcc, 0x03f4ec1f, 0x01b4c76b, 0x01b64c0c, 0x001c47e3}}, Y: Field{[10]uint32{0x00caa4b0, 0x038f9f5c, 0x03eb5b75, 0x02e85c2e, 0x016e4dfb, 0x02cd4673, 0x0170fcf7, 0x0320b7cc, 0x01e3432a, 0x00121655}}},
+ {X: Field{[10]uint32{0x033ba6a5, 0x01c6f237, 0x0003a160, 0x003f8878, 0x005216f5, 0x0232a70b, 0x022104ee, 0x0168792f, 0x00266f75, 0x0018d40b}}, Y: Field{[10]uint32{0x01bea942, 0x00a2a852, 0x028dd90f, 0x022bc7ce, 0x033954b8, 0x03f9de5d, 0x01075bda, 0x00fd2bd5, 0x01eac8fc, 0x0029720a}}},
+ {X: Field{[10]uint32{0x02850872, 0x00425530, 0x0138c92d, 0x0358e49e, 0x0213f5c3, 0x00bb95f9, 0x01bb82fd, 0x0381c06d, 0x0059ccfe, 0x000a99dd}}, Y: Field{[10]uint32{0x037cbe71, 0x035717bb, 0x02053714, 0x00a3ace7, 0x00401bbf, 0x02c0f831, 0x031cbf5d, 0x02c2ca6e, 0x03985c5d, 0x003fdba5}}},
+ {X: Field{[10]uint32{0x02b52cbe, 0x006c020c, 0x00d99f05, 0x03417c8c, 0x015b359b, 0x035febe5, 0x01b4a223, 0x01a69c27, 0x038778fb, 0x001a3e17}}, Y: Field{[10]uint32{0x03c92210, 0x0357cf3f, 0x0389e405, 0x0302cef7, 0x01ef9c65, 0x022d5ae1, 0x037b771f, 0x00c62713, 0x0149f4fc, 0x000370ba}}},
+ {X: Field{[10]uint32{0x02b74ade, 0x02413cf4, 0x0390e1c2, 0x0321bd2e, 0x009e9883, 0x039642c9, 0x01fd8b9d, 0x0080d942, 0x01b73b54, 0x001fba75}}, Y: Field{[10]uint32{0x03343e62, 0x030c3b81, 0x03828002, 0x01aa7759, 0x03492063, 0x02497775, 0x01c6977b, 0x03c817e4, 0x0013241c, 0x00260489}}},
+ {X: Field{[10]uint32{0x00aa33c8, 0x01d54f89, 0x03391381, 0x0011e7ab, 0x00102b5d, 0x03503948, 0x03680230, 0x0249c76c, 0x0090cdb1, 0x002111ec}}, Y: Field{[10]uint32{0x03c0bdb0, 0x02a3087d, 0x02a78c14, 0x0295e225, 0x03121d02, 0x00096948, 0x02eacd39, 0x01d20700, 0x03e655a2, 0x00096d0f}}},
+ {X: Field{[10]uint32{0x0016a645, 0x02a2dbca, 0x03268c89, 0x00b9de8b, 0x03e45e62, 0x00317bce, 0x0151f569, 0x01439ade, 0x03b93f15, 0x000c581c}}, Y: Field{[10]uint32{0x007624be, 0x00b6cc65, 0x02caf6a5, 0x02286191, 0x03a1a6f3, 0x00c7571d, 0x0254a4db, 0x0033a30f, 0x01ac2fc7, 0x00155f29}}},
+ {X: Field{[10]uint32{0x0036d6ac, 0x007addd2, 0x004ae5fc, 0x03c7264a, 0x00cdaa8e, 0x030046c6, 0x00fe9495, 0x0086b0d6, 0x012da2ef, 0x003eb88c}}, Y: Field{[10]uint32{0x030b76c7, 0x03ba358f, 0x00b8b54e, 0x0366ca6d, 0x00aa948a, 0x03f32fc2, 0x00ee7cb3, 0x03a196c3, 0x02612d99, 0x001bcefd}}},
+ {X: Field{[10]uint32{0x00f839f0, 0x0339e0d5, 0x023e12f8, 0x031addbc, 0x007d4c72, 0x00c58abb, 0x01e1691d, 0x037f7c2c, 0x03ef5588, 0x000a028a}}, Y: Field{[10]uint32{0x03683f72, 0x02d21ce4, 0x01c73ca7, 0x018f3036, 0x01b2b4ba, 0x03910161, 0x03be1bc7, 0x025dd2a1, 0x011bc31a, 0x003c037b}}},
+ {X: Field{[10]uint32{0x037ccdcd, 0x03dab02f, 0x01ddb86b, 0x02ca2a99, 0x034d0609, 0x031d5113, 0x037e5d28, 0x024b264a, 0x037a9b7b, 0x000fd0f9}}, Y: Field{[10]uint32{0x0072a2d6, 0x01c2a113, 0x015366cf, 0x0155401d, 0x00ac2678, 0x00ae3617, 0x02bd6b99, 0x002952f1, 0x0103bb3c, 0x002cc45e}}},
+ {X: Field{[10]uint32{0x0069f2de, 0x03c58b75, 0x0229646d, 0x0037d941, 0x02953550, 0x00147843, 0x02539290, 0x03e8d21f, 0x01c8387b, 0x000e82bf}}, Y: Field{[10]uint32{0x01bb29c7, 0x0061eb32, 0x0324e8b4, 0x03df23fc, 0x01907d4c, 0x03cb294f, 0x0386dff3, 0x0242db87, 0x00c8f0f6, 0x001d5a5f}}},
+ {X: Field{[10]uint32{0x0170809d, 0x03a905de, 0x01660949, 0x02aa288f, 0x002789d0, 0x01c81ca8, 0x026e7c4a, 0x01c8fa66, 0x0364209f, 0x000fe5ca}}, Y: Field{[10]uint32{0x02e47d15, 0x0293e110, 0x02342b32, 0x00fb98fc, 0x039a7c05, 0x0280b17f, 0x0026e769, 0x03f672bf, 0x00287a6b, 0x001e9209}}},
+ {X: Field{[10]uint32{0x0089b0b4, 0x036bd2ba, 0x004df0e8, 0x0175c7d0, 0x01c21ff8, 0x02e138f4, 0x01f1ecc4, 0x00d93447, 0x000ffa73, 0x00024e2b}}, Y: Field{[10]uint32{0x01be0312, 0x02e9d291, 0x0204a63f, 0x0255932d, 0x004e9689, 0x03681a84, 0x02e8820e, 0x02ce0437, 0x02d3d526, 0x00287027}}},
+ {X: Field{[10]uint32{0x00e28bcc, 0x007b22bd, 0x01071831, 0x016993a6, 0x01631c9b, 0x02f4d15d, 0x01eb9ed3, 0x039d309d, 0x01752993, 0x0014d57b}}, Y: Field{[10]uint32{0x006ad088, 0x01c94f3f, 0x01a40ddf, 0x011c0c24, 0x01c81885, 0x0003c614, 0x010279f6, 0x02aabeb0, 0x007d680a, 0x002eec40}}},
+ {X: Field{[10]uint32{0x03f277b7, 0x0224c47e, 0x024574e9, 0x01bead8b, 0x02b03369, 0x010d0191, 0x03bda46a, 0x01db1b60, 0x02ed70ba, 0x0022038c}}, Y: Field{[10]uint32{0x020410bc, 0x0331ea1b, 0x00e7c623, 0x02bccc39, 0x0308dcda, 0x01a59a1a, 0x02763d5f, 0x03578901, 0x02cb8d10, 0x001dbfac}}},
+ {X: Field{[10]uint32{0x00f11aa8, 0x03447c42, 0x02beebd6, 0x000f6ab5, 0x00857ac5, 0x012dd3a7, 0x00beec11, 0x016da0ae, 0x00aaa275, 0x0036bdde}}, Y: Field{[10]uint32{0x00a5f428, 0x0260bba6, 0x01c88fd4, 0x03c24a60, 0x02e38325, 0x01bb5a5d, 0x00f3024d, 0x00c05e7c, 0x0062710d, 0x0007b617}}},
+ {X: Field{[10]uint32{0x03b474dd, 0x01eaf6a3, 0x004641cf, 0x01690b23, 0x009a60b9, 0x00d4cfe0, 0x01c0a4ff, 0x00f49f46, 0x01dd7563, 0x003970fa}}, Y: Field{[10]uint32{0x01fb0dfc, 0x01ec9063, 0x02afb251, 0x03f858cc, 0x0371b7b7, 0x03c82f27, 0x03036990, 0x0021faac, 0x02f65c5c, 0x003c795a}}},
+ {X: Field{[10]uint32{0x00096973, 0x01a0df70, 0x03afdd11, 0x00302335, 0x016859c2, 0x03ec9d32, 0x03f3bf2f, 0x0361c25d, 0x0334ecdf, 0x0017500f}}, Y: Field{[10]uint32{0x00f6aeb1, 0x004a4e76, 0x01e4a5ba, 0x00d110f9, 0x022335c3, 0x005d935c, 0x001ba707, 0x01b3165e, 0x007c7024, 0x001ad6f9}}},
+ {X: Field{[10]uint32{0x02246b12, 0x019162d7, 0x01f81389, 0x00d3cf95, 0x03993bf0, 0x02642ac9, 0x01b4caac, 0x007dc6cd, 0x013c2551, 0x00142e81}}, Y: Field{[10]uint32{0x02291f63, 0x03e8aefc, 0x025b88a7, 0x028af32f, 0x009f8a22, 0x0018f6ac, 0x02903993, 0x00c5c19d, 0x02455c7a, 0x0034bc4a}}},
+ {X: Field{[10]uint32{0x026629cf, 0x02fc0bc1, 0x03a00b38, 0x0088e670, 0x039f2906, 0x00d961e4, 0x03898f0b, 0x02a7b681, 0x00eaee4a, 0x000e16a0}}, Y: Field{[10]uint32{0x03efcd50, 0x029a5d02, 0x01eb16e6, 0x00091a64, 0x038cfe49, 0x02a42e3e, 0x010806d6, 0x031b975d, 0x020bd72a, 0x002950cc}}},
+ {X: Field{[10]uint32{0x03dedbef, 0x03866582, 0x00a9b276, 0x02948d88, 0x02eaa669, 0x03501463, 0x029de6c3, 0x0378e1b9, 0x00b9904e, 0x00026184}}, Y: Field{[10]uint32{0x0206b581, 0x03436522, 0x03315c4a, 0x034d8760, 0x03b88f72, 0x016d7fe3, 0x00d0c892, 0x02840343, 0x01a2eb6a, 0x00241dd5}}},
+ {X: Field{[10]uint32{0x011b7fe8, 0x01e66646, 0x0329ed45, 0x016d1d53, 0x0219ae21, 0x032efda8, 0x007b0d3d, 0x0034ef7f, 0x0007d964, 0x0020fc42}}, Y: Field{[10]uint32{0x03293364, 0x029be681, 0x035e2489, 0x012bef0a, 0x02fe719e, 0x002778b1, 0x00e69c65, 0x035b4a18, 0x031b5095, 0x003d8b48}}},
+ {X: Field{[10]uint32{0x03b1c246, 0x03285f53, 0x0059e74d, 0x03f19ed8, 0x01e3f287, 0x009d67f4, 0x002b0285, 0x00d718be, 0x02939273, 0x00147488}}, Y: Field{[10]uint32{0x0063745d, 0x008677db, 0x0187be05, 0x0374c4a1, 0x02f7184b, 0x00f22c49, 0x00b909e2, 0x016d3462, 0x03a3b514, 0x002e6e00}}},
+ {X: Field{[10]uint32{0x03465006, 0x0277bc53, 0x03c70368, 0x01316827, 0x013e8cc2, 0x009b0df1, 0x02919458, 0x00f50f49, 0x0342e578, 0x002f9a98}}, Y: Field{[10]uint32{0x007ef000, 0x0236e89f, 0x0004c200, 0x012c70d8, 0x0081bc7e, 0x00f773f6, 0x01efc141, 0x0149e76a, 0x00fc3fc1, 0x002071c6}}},
+ {X: Field{[10]uint32{0x00790036, 0x023c89af, 0x02e81a4e, 0x03642a0a, 0x00448681, 0x022c9c1c, 0x03b043b5, 0x004a1292, 0x00d9c36f, 0x003c84cd}}, Y: Field{[10]uint32{0x0016eff2, 0x03d1d4e2, 0x0308e428, 0x02e0b3c9, 0x03f5f143, 0x00878a4e, 0x03dcc1eb, 0x03f4c114, 0x00513a87, 0x00000112}}},
+ {X: Field{[10]uint32{0x01730508, 0x03abebb2, 0x022cb419, 0x00ca494f, 0x020932a8, 0x01cef49f, 0x00cb1f1b, 0x0118fe04, 0x00e5af34, 0x00055631}}, Y: Field{[10]uint32{0x00c917f8, 0x007f937d, 0x0149e2dd, 0x00dd0a28, 0x006921bb, 0x029d4217, 0x023f3f41, 0x0104c8d9, 0x025025e1, 0x0032e331}}},
+ {X: Field{[10]uint32{0x025d71e2, 0x02428699, 0x02e642e0, 0x03b6641c, 0x01b575a4, 0x02238e09, 0x00d3596a, 0x0083606d, 0x032c8f60, 0x000614e8}}, Y: Field{[10]uint32{0x003a8367, 0x03b660a8, 0x005e89e3, 0x0222ca50, 0x03eaf268, 0x006187ff, 0x024aedbb, 0x02ba838d, 0x031cb170, 0x002368a8}}},
+ {X: Field{[10]uint32{0x00cd323d, 0x00d4e233, 0x0190b8cc, 0x02d0ef75, 0x002da679, 0x03ebea77, 0x01f60dbc, 0x00efb087, 0x00bcf0f0, 0x003bd617}}, Y: Field{[10]uint32{0x00c2f296, 0x03db601e, 0x03acdd93, 0x02e876a9, 0x01f02ccd, 0x00a04e41, 0x0192e078, 0x007db4e1, 0x0203aff9, 0x000af178}}},
+ {X: Field{[10]uint32{0x02fd5c14, 0x01da022c, 0x03471a14, 0x01938344, 0x031fa458, 0x0092cf1e, 0x03d99714, 0x01a3aefb, 0x0237e1ea, 0x000fd30b}}, Y: Field{[10]uint32{0x020eeaa5, 0x038da91f, 0x005e330d, 0x005ed50e, 0x01051b9c, 0x03cca6d4, 0x02665b04, 0x00ecfeaa, 0x00ab3d28, 0x0019e264}}},
+ {X: Field{[10]uint32{0x0021693a, 0x02d04679, 0x0133b621, 0x004082d5, 0x0059fc9b, 0x00eafcab, 0x01cb20ab, 0x02b12860, 0x038ad557, 0x000ac006}}, Y: Field{[10]uint32{0x02c6b94a, 0x00a5c8e0, 0x006758fa, 0x0234b283, 0x01310a32, 0x0122c949, 0x026f8c30, 0x0276c5cf, 0x0007f8d1, 0x003f93cc}}},
+ {X: Field{[10]uint32{0x012cd229, 0x016f24d1, 0x00bb98d0, 0x009d62e8, 0x0379c90d, 0x007ec328, 0x02b5b108, 0x0023fe37, 0x01dd7d5a, 0x00196274}}, Y: Field{[10]uint32{0x028149a9, 0x01e45966, 0x007faa11, 0x016c64af, 0x01fdc547, 0x038003f5, 0x008dca23, 0x00a64d2f, 0x0080ed84, 0x00209025}}},
+ {X: Field{[10]uint32{0x03950a6f, 0x027c3d49, 0x028a83b8, 0x03968e8e, 0x00ab4377, 0x01da9aa4, 0x00553162, 0x020d6e3a, 0x010df5d3, 0x00308cff}}, Y: Field{[10]uint32{0x00f6f3e5, 0x0088e4ad, 0x0384f494, 0x00c61ae2, 0x02314680, 0x016bbf81, 0x00fbac08, 0x02690c4b, 0x00a8775a, 0x0023fa38}}},
+ {X: Field{[10]uint32{0x024cc14a, 0x02c4f41d, 0x036e7b65, 0x003e27db, 0x02a38867, 0x01d68afe, 0x02e3f57f, 0x023bbb5b, 0x02852a84, 0x00209cc6}}, Y: Field{[10]uint32{0x01117583, 0x0039334e, 0x004c1208, 0x026e29d4, 0x011ffacc, 0x0238d288, 0x03096883, 0x017a1fc6, 0x009a307c, 0x00300314}}},
+ {X: Field{[10]uint32{0x02d2a50d, 0x03a9b401, 0x0097707e, 0x02d54fab, 0x00c9dde3, 0x008a50bb, 0x02b51501, 0x02c6c16a, 0x03a0e5d8, 0x003884e1}}, Y: Field{[10]uint32{0x01b0ff83, 0x02043723, 0x00349bb2, 0x02564cd5, 0x000fc81c, 0x012b177f, 0x003c9207, 0x024f7c0d, 0x0109f90d, 0x0031d379}}},
+ {X: Field{[10]uint32{0x039fdc25, 0x03269256, 0x0236a00b, 0x0305b410, 0x0292780f, 0x0358d6e3, 0x035c3414, 0x010f6716, 0x01fd2fa4, 0x0006021c}}, Y: Field{[10]uint32{0x0314d120, 0x021400ea, 0x00146599, 0x00db89de, 0x021f25e6, 0x02f80971, 0x02014a8b, 0x03cde908, 0x01506008, 0x00359b1c}}},
+ {X: Field{[10]uint32{0x00cb2c42, 0x034c382f, 0x03ab4b44, 0x024d360f, 0x00d64dff, 0x00455ae4, 0x0329a9a3, 0x00aa307b, 0x027eed11, 0x002d6a77}}, Y: Field{[10]uint32{0x0139db38, 0x029c7d0d, 0x03d91130, 0x033ec3fc, 0x0130315c, 0x03be15c8, 0x00afe660, 0x00febcec, 0x0279a81c, 0x00159d69}}},
+ {X: Field{[10]uint32{0x00aee7d6, 0x00047f40, 0x03b4d40d, 0x01ec01b4, 0x018ce569, 0x0016973e, 0x02baf78c, 0x039437d0, 0x007261f1, 0x0026b339}}, Y: Field{[10]uint32{0x0107a05c, 0x0223fae5, 0x01e0a95f, 0x00c6b74a, 0x026cb8c8, 0x00c969e7, 0x03568304, 0x0131a795, 0x013c4046, 0x003edf10}}},
+ {X: Field{[10]uint32{0x03574e5c, 0x03303ae2, 0x01100a02, 0x038d9f61, 0x01916796, 0x0064f7bb, 0x007bc4b2, 0x01dc48bf, 0x039b7bef, 0x003e02ad}}, Y: Field{[10]uint32{0x015c8f6d, 0x00067747, 0x022aac77, 0x02142d74, 0x003a1ac5, 0x01b372b3, 0x035834ed, 0x022c9766, 0x003f842d, 0x0031b534}}},
+ {X: Field{[10]uint32{0x009366a1, 0x0287e62f, 0x01aeefae, 0x0123b058, 0x0125d814, 0x0182c936, 0x005845ef, 0x008c30c0, 0x0355cdb4, 0x002d0c78}}, Y: Field{[10]uint32{0x0241c1cd, 0x0345db76, 0x0390ef69, 0x0395731c, 0x017aebac, 0x014adb9a, 0x02ddb985, 0x002850e0, 0x01d4ae23, 0x003af36b}}},
+ {X: Field{[10]uint32{0x0275f1fb, 0x01aa001b, 0x009c593f, 0x037db082, 0x02efe56e, 0x01b72939, 0x02b686f4, 0x00e98d47, 0x039e08c9, 0x001ea982}}, Y: Field{[10]uint32{0x03a0347e, 0x03c03bd7, 0x00c98328, 0x0002d01a, 0x00cb4248, 0x038cf9a5, 0x013e3892, 0x002fc781, 0x01e21770, 0x00001320}}},
+ {X: Field{[10]uint32{0x0286b30b, 0x039d8404, 0x0296ba72, 0x03bc9cbd, 0x01d304fb, 0x028ded37, 0x001d1a4d, 0x0090edd1, 0x010b3aa4, 0x0006a209}}, Y: Field{[10]uint32{0x01b7a473, 0x017d2ada, 0x033fe3fd, 0x0163d166, 0x02b33b76, 0x0015aa6f, 0x02d8cb0f, 0x02056f81, 0x010557d3, 0x001896e7}}},
+ {X: Field{[10]uint32{0x022b57c7, 0x03b6f0ea, 0x0196682d, 0x011c7aea, 0x0106c4ca, 0x02d773b8, 0x034db23c, 0x015628b4, 0x02eb49fd, 0x0016d493}}, Y: Field{[10]uint32{0x038ae50c, 0x014a41ae, 0x02d5dbf2, 0x009caf28, 0x0025c8b2, 0x01b80af7, 0x01b163d5, 0x033875cd, 0x009756b7, 0x000b570b}}},
+ {X: Field{[10]uint32{0x0276d2c5, 0x0016139d, 0x007d1892, 0x03610cef, 0x00191550, 0x03dd5826, 0x00cb8b10, 0x02f9e749, 0x03776d9f, 0x002b9839}}, Y: Field{[10]uint32{0x018d7784, 0x0249bec5, 0x0311ffff, 0x0350d1a8, 0x00b76c36, 0x03bf219e, 0x011be83e, 0x0091cb28, 0x01867377, 0x0010c3fa}}},
+ {X: Field{[10]uint32{0x02efb9d4, 0x03e04a98, 0x03105ab4, 0x00c2710b, 0x0353e8d7, 0x017739be, 0x020b081a, 0x03d9a351, 0x023d9e29, 0x000c8e97}}, Y: Field{[10]uint32{0x004776ba, 0x0295afa0, 0x01830c2f, 0x02911d98, 0x03da6216, 0x02d7aa6b, 0x0256d1d3, 0x00fd0859, 0x03b36948, 0x0000ad15}}},
+ {X: Field{[10]uint32{0x027c1c9d, 0x00d9445e, 0x022a2a8b, 0x0125e965, 0x02b3db86, 0x01a50a6c, 0x00e612ed, 0x0154b219, 0x01b6591e, 0x002b346d}}, Y: Field{[10]uint32{0x026e88b8, 0x01886423, 0x00fa3265, 0x00947af1, 0x0067544d, 0x009498d2, 0x02ba7729, 0x01a40249, 0x03ff056f, 0x003984c7}}},
+ {X: Field{[10]uint32{0x005b36f4, 0x02fdd3de, 0x02cf114e, 0x018211d0, 0x02f2e61e, 0x01549233, 0x026286b1, 0x014b80a8, 0x00708178, 0x001ad38b}}, Y: Field{[10]uint32{0x01b893df, 0x03a19139, 0x01a1a1e4, 0x03f359b9, 0x037398f7, 0x007354a5, 0x007130d0, 0x026f7080, 0x011c7a52, 0x00210025}}},
+ {X: Field{[10]uint32{0x0084ab31, 0x01e5a7e0, 0x017c7151, 0x017e02a0, 0x004e6a37, 0x0230d1d1, 0x004cb914, 0x0029187d, 0x0327d67b, 0x0030acb1}}, Y: Field{[10]uint32{0x036d5f59, 0x0207ebb0, 0x01718824, 0x03522414, 0x03a52c47, 0x030a07f4, 0x00aa2519, 0x01ec3e66, 0x0359ebf3, 0x003fb590}}},
+ {X: Field{[10]uint32{0x004f202e, 0x01f286e4, 0x02f71220, 0x008af683, 0x022ec564, 0x01e283e1, 0x014609d9, 0x02f653de, 0x02dab5b2, 0x000ce17b}}, Y: Field{[10]uint32{0x003d7443, 0x01eedc58, 0x0074b490, 0x0219d1a9, 0x01b12a21, 0x006a7d10, 0x01975aa3, 0x02a3b871, 0x02af1db8, 0x000a0234}}},
+ {X: Field{[10]uint32{0x00c803f2, 0x006701c5, 0x02a82335, 0x03c35314, 0x02edce15, 0x03ead1e1, 0x030c2923, 0x010dee11, 0x00d7f2cb, 0x002003db}}, Y: Field{[10]uint32{0x00a37056, 0x0054bd35, 0x03734ad0, 0x0233b0e5, 0x0023e0a8, 0x02c980a3, 0x0206ca59, 0x006a8337, 0x023e0ad1, 0x002607cb}}},
+ {X: Field{[10]uint32{0x02aa2f3b, 0x0071803b, 0x01f32474, 0x02dd853c, 0x02ebfaf4, 0x01eedb2a, 0x00103c6d, 0x00a1bf4f, 0x03ff3a9f, 0x001cea82}}, Y: Field{[10]uint32{0x00c6f7b1, 0x03c76946, 0x02846701, 0x00f13f79, 0x00a54a2e, 0x0362f39f, 0x009fe73d, 0x02e60f2e, 0x012981a9, 0x0000c2f1}}},
+ {X: Field{[10]uint32{0x0178f2c5, 0x005a7ee8, 0x029ca789, 0x02626f3c, 0x03863804, 0x00f9d84b, 0x03fdfa9c, 0x004fda02, 0x00e6ab5c, 0x0024a03f}}, Y: Field{[10]uint32{0x00ae36bb, 0x013df373, 0x03b233e7, 0x02f76c28, 0x03aeb6a7, 0x03dfd6ed, 0x01397b18, 0x00b8ecbf, 0x00dbc5bc, 0x0012e5bb}}},
+ {X: Field{[10]uint32{0x026e03ca, 0x02fda769, 0x00b8107d, 0x020397b3, 0x029f4387, 0x01c344ba, 0x009be162, 0x02e7bed6, 0x004bbb50, 0x001c8157}}, Y: Field{[10]uint32{0x036bc7cb, 0x0169b183, 0x023f9891, 0x0016a87f, 0x01985ad7, 0x006a188f, 0x01746935, 0x01df7561, 0x017fc30a, 0x002baa89}}},
+ {X: Field{[10]uint32{0x03c1879f, 0x017411f9, 0x008e0308, 0x021c4aaf, 0x000eb8e8, 0x03ea09f3, 0x02687c73, 0x038f6c2e, 0x03d0c771, 0x003c3cf3}}, Y: Field{[10]uint32{0x00936b33, 0x026054e9, 0x02e20eff, 0x01733db8, 0x031bf8aa, 0x013f8428, 0x030c4b32, 0x013153e3, 0x027d8b74, 0x000b184b}}},
+ {X: Field{[10]uint32{0x02f5dcfa, 0x01ebe6f9, 0x033ec67a, 0x01df979e, 0x00d8b611, 0x0290ddab, 0x02c8fe8e, 0x03c9c1be, 0x036570b0, 0x0025f1e2}}, Y: Field{[10]uint32{0x03e14c3d, 0x027563ce, 0x00daa127, 0x026cd1f1, 0x01133460, 0x00f2d650, 0x03da765c, 0x016162a5, 0x010cfea9, 0x0006bae5}}},
+ {X: Field{[10]uint32{0x02509e69, 0x0327bfa7, 0x03eeb9b5, 0x03d4ce9c, 0x024b7908, 0x022c1dfe, 0x013a9de4, 0x01bf0f52, 0x021e967e, 0x002ce7fe}}, Y: Field{[10]uint32{0x0265dc05, 0x01039d7a, 0x01e16f3b, 0x00bc4486, 0x03f76c30, 0x007205f8, 0x0218c007, 0x01cb3035, 0x015181ac, 0x003d57ce}}},
+ {X: Field{[10]uint32{0x00e7baaa, 0x007198fe, 0x03fd1735, 0x01ca2c79, 0x0201b2a9, 0x0246c582, 0x003fcc4d, 0x01f1346f, 0x037a5ff2, 0x000566e7}}, Y: Field{[10]uint32{0x00c4360a, 0x0202df29, 0x02697a83, 0x01f55e30, 0x015e6012, 0x01e27f50, 0x021c7f0d, 0x013febae, 0x036d86c5, 0x002c2abb}}},
+ {X: Field{[10]uint32{0x0385e44c, 0x027dfcf2, 0x021aaf72, 0x02acf04d, 0x016dff76, 0x0189bf11, 0x0107a62b, 0x012c5b1f, 0x03d18d4a, 0x00096043}}, Y: Field{[10]uint32{0x036a2d9b, 0x0348864b, 0x00f442fc, 0x017ccd5e, 0x009252dd, 0x02d2e2c0, 0x0295526a, 0x02f5c2b4, 0x03257794, 0x003d0148}}},
+ {X: Field{[10]uint32{0x033352b2, 0x024d37d1, 0x0241d6e1, 0x02440b69, 0x01eab362, 0x0241d620, 0x019864c0, 0x028ca312, 0x024d5860, 0x0009f882}}, Y: Field{[10]uint32{0x03b45203, 0x02e52640, 0x02a7b65c, 0x00ac03a1, 0x03d3822a, 0x000f0469, 0x030b4905, 0x02d43f89, 0x00f2888c, 0x00305663}}},
+ {X: Field{[10]uint32{0x001448a2, 0x03cef44d, 0x032dd685, 0x01a13651, 0x006d684a, 0x02885ed8, 0x008f465b, 0x0253999c, 0x014e517a, 0x00120fd1}}, Y: Field{[10]uint32{0x039ad11f, 0x01a2985f, 0x02aa82ba, 0x01bfc308, 0x01d338d0, 0x01772dc3, 0x0123346c, 0x0268d917, 0x0144d93b, 0x00304ecc}}},
+ {X: Field{[10]uint32{0x0204e6e5, 0x002967af, 0x03266e2e, 0x023e0e93, 0x0267ef06, 0x03054cbc, 0x024c9a30, 0x012a996b, 0x02f63173, 0x0013d1ec}}, Y: Field{[10]uint32{0x00d99d2b, 0x00d35996, 0x03a27c01, 0x00bb7551, 0x01682439, 0x03b6adcb, 0x033ebcf3, 0x0272d174, 0x034cf11b, 0x00163c7c}}},
+ {X: Field{[10]uint32{0x0397db07, 0x02d8d05d, 0x0057424f, 0x00ac4711, 0x00d6f42a, 0x03a04330, 0x031774b8, 0x033a12d3, 0x037e0835, 0x002a9e3a}}, Y: Field{[10]uint32{0x005e743b, 0x0124fa86, 0x0311b0cf, 0x018c85c4, 0x03ee9ffc, 0x00fdcb8c, 0x00c7541d, 0x0351f167, 0x0139d957, 0x000e5900}}},
+ {X: Field{[10]uint32{0x00033d49, 0x02c33a33, 0x0194417e, 0x03daa97d, 0x0031a3f1, 0x00dd602c, 0x01c0655c, 0x00158047, 0x018583c0, 0x00349662}}, Y: Field{[10]uint32{0x02f24b08, 0x00744696, 0x02d8bc84, 0x00193413, 0x02b6a830, 0x036af85c, 0x014622a2, 0x02062e8a, 0x01739de8, 0x000d9072}}},
+ {X: Field{[10]uint32{0x01e26634, 0x004a9215, 0x03faf487, 0x017567df, 0x03f2d2b8, 0x010d641e, 0x0338f877, 0x02dd3d5b, 0x03a0eccc, 0x0013c08e}}, Y: Field{[10]uint32{0x01a6a456, 0x020a57ec, 0x02e95bc4, 0x012e1a9b, 0x03a2ae09, 0x024edb0f, 0x03c35ea3, 0x014496e3, 0x0033b15d, 0x003e03bf}}},
+ {X: Field{[10]uint32{0x023a1589, 0x03df8b5d, 0x003c670b, 0x00a3df05, 0x028eda41, 0x0056b22f, 0x03e13cfa, 0x03425def, 0x008b48ab, 0x002721bc}}, Y: Field{[10]uint32{0x01c2df45, 0x014bc570, 0x00a171a1, 0x036b211a, 0x0217d4ee, 0x00a7536c, 0x02ff453d, 0x032e20e7, 0x03870e9e, 0x00045447}}},
+ {X: Field{[10]uint32{0x02137576, 0x00362e3b, 0x0120e913, 0x01dda760, 0x01c5e6ac, 0x0355f89a, 0x03affcec, 0x017323ff, 0x018b72e9, 0x000e021c}}, Y: Field{[10]uint32{0x01ea728f, 0x0227f4cc, 0x00ceedb7, 0x0068278f, 0x00c614a6, 0x03b62d63, 0x02e59cf8, 0x02dc8936, 0x01ebcf5e, 0x003d03af}}},
+ {X: Field{[10]uint32{0x00dda3df, 0x03e9d4bf, 0x03b4255d, 0x011d71f7, 0x00eb349f, 0x03b68091, 0x01c80a13, 0x024bf01c, 0x015e3994, 0x00237bf4}}, Y: Field{[10]uint32{0x03f7a771, 0x01317d9e, 0x00c7ff9e, 0x033b8ec3, 0x01a01786, 0x03f0e58c, 0x03b0d19f, 0x03430ed3, 0x03784353, 0x0034f7e9}}},
+ {X: Field{[10]uint32{0x0024bf8a, 0x02a2a9f7, 0x03d466ea, 0x03430c92, 0x03ed99f9, 0x0263eb79, 0x00052487, 0x0341f8ea, 0x01425ac1, 0x00236b23}}, Y: Field{[10]uint32{0x02ef8009, 0x0042dcaa, 0x00087d64, 0x0098834a, 0x0262e9d9, 0x00d5375b, 0x032f097d, 0x00d3f362, 0x01b79232, 0x003c8cbf}}},
+ {X: Field{[10]uint32{0x03a90e1b, 0x032b011f, 0x01d35329, 0x03f1be04, 0x01e45d26, 0x0090f0f4, 0x03178b4f, 0x039b78a1, 0x0043f3bc, 0x0021f399}}, Y: Field{[10]uint32{0x01724138, 0x00cfa54e, 0x02875fac, 0x03523dc3, 0x000f0af0, 0x01fb7cec, 0x002799d7, 0x012ad316, 0x00196241, 0x0002a25c}}},
+ {X: Field{[10]uint32{0x00fdf08d, 0x0259b1aa, 0x02f3bd22, 0x03201d06, 0x02124a21, 0x02dddd6e, 0x0360a3f8, 0x02ddfa7a, 0x03fabf2f, 0x002ffb9a}}, Y: Field{[10]uint32{0x03ba76f7, 0x0339757e, 0x03fa69c9, 0x03a102e0, 0x02cd2e8b, 0x00bf20fb, 0x026f2155, 0x012fc5fc, 0x0399541e, 0x000a6870}}},
+ {X: Field{[10]uint32{0x00c2bec1, 0x026bcad7, 0x0341daef, 0x02be0e06, 0x00044873, 0x02bfdcae, 0x001a5537, 0x02a0008d, 0x01a5b553, 0x00030c3f}}, Y: Field{[10]uint32{0x039fea6d, 0x01054ed0, 0x0162e7d1, 0x01b99775, 0x028a96f7, 0x0338d011, 0x004aafc0, 0x023593e9, 0x02b587d8, 0x001738fa}}},
+ {X: Field{[10]uint32{0x0000ed97, 0x0375360d, 0x030a00f1, 0x001dca35, 0x014d9226, 0x006d067d, 0x01cadbfe, 0x00675c31, 0x01fd5941, 0x00179c54}}, Y: Field{[10]uint32{0x02108917, 0x03654c7a, 0x0020d73b, 0x0259895e, 0x024c64ec, 0x032f75d7, 0x0136816e, 0x0129f58b, 0x02a5a51d, 0x001aa33b}}},
+ {X: Field{[10]uint32{0x0086100b, 0x01a436fb, 0x007c04bf, 0x01ead435, 0x03e974af, 0x01494896, 0x03d06208, 0x0357c3cc, 0x030a66cd, 0x002a723a}}, Y: Field{[10]uint32{0x038e0a2f, 0x02786ca2, 0x02bf329c, 0x0223cebb, 0x00a4371e, 0x03ca4335, 0x02a24bcf, 0x00c7cec0, 0x039d8987, 0x003c8272}}},
+ {X: Field{[10]uint32{0x03a2e439, 0x021446b8, 0x0253b946, 0x01cd7ebd, 0x01cb8043, 0x00bb9848, 0x01b16595, 0x0245411c, 0x01d79366, 0x0025579e}}, Y: Field{[10]uint32{0x03930d06, 0x001c02f3, 0x028261de, 0x037c4839, 0x002e82cd, 0x0295b1e8, 0x02a3bcc1, 0x019e8043, 0x03e32a9b, 0x001a36ab}}},
+ {X: Field{[10]uint32{0x03a34a71, 0x00ad0277, 0x005fac19, 0x0014f21a, 0x02bef248, 0x02edf875, 0x03bc70b3, 0x0331a96c, 0x0293d3c1, 0x0008b49c}}, Y: Field{[10]uint32{0x039b3357, 0x020dfa58, 0x02389e6c, 0x037ece77, 0x014d5d76, 0x01036ed6, 0x004e42e7, 0x0156dd4f, 0x00e34fc8, 0x0031d2d1}}},
+ {X: Field{[10]uint32{0x0137abc0, 0x013a3108, 0x03835b2f, 0x022ce80d, 0x0370d46e, 0x0121ebaf, 0x01d91f71, 0x005d9d3a, 0x02cef74b, 0x003467f3}}, Y: Field{[10]uint32{0x02db7580, 0x02b6db12, 0x00a83fe9, 0x0397cd97, 0x0334ca9f, 0x025332e8, 0x02224f74, 0x002604f3, 0x03f63dca, 0x0016e412}}},
+ {X: Field{[10]uint32{0x02336899, 0x00df2470, 0x0073f2a4, 0x01b1492a, 0x001723c3, 0x02f1a9aa, 0x02091136, 0x01200359, 0x022aadc7, 0x001aa85c}}, Y: Field{[10]uint32{0x02319d07, 0x03c7b8b5, 0x03c369a4, 0x0367b599, 0x023d9709, 0x00855273, 0x01640583, 0x016d318c, 0x004cdf49, 0x0023a5c0}}},
+ {X: Field{[10]uint32{0x00ea6efc, 0x01be146c, 0x01052f73, 0x01ac1c83, 0x02b16e3b, 0x025ab461, 0x0107262e, 0x0348804b, 0x02239ee4, 0x001e6f4d}}, Y: Field{[10]uint32{0x0018729e, 0x03d36fbd, 0x000fe42d, 0x01beb5ae, 0x036a3116, 0x031f24b0, 0x00972c71, 0x03369077, 0x03dbf568, 0x000292d0}}},
+ {X: Field{[10]uint32{0x00f16ce9, 0x00460be9, 0x028c9e40, 0x00800500, 0x03a1c7d8, 0x01a43033, 0x0183c5d3, 0x00ded59d, 0x032c1463, 0x002d780a}}, Y: Field{[10]uint32{0x0069e0b2, 0x0389e564, 0x026fb938, 0x0299c634, 0x021a819b, 0x003a2850, 0x013516fa, 0x02a9c39e, 0x02be3fac, 0x0012e591}}},
+ {X: Field{[10]uint32{0x03a7403a, 0x02bdd0c1, 0x0057dd05, 0x02152ce2, 0x0114a2b6, 0x021fde43, 0x0044d643, 0x03ad3419, 0x0271de2d, 0x00238cf8}}, Y: Field{[10]uint32{0x01ecc429, 0x00f5b8a2, 0x0171fc91, 0x03fc3fa7, 0x00e08d73, 0x00f833ac, 0x02011bd0, 0x028773aa, 0x03a2c7a4, 0x00360b54}}},
+ {X: Field{[10]uint32{0x0019c2f5, 0x0164f293, 0x0036b074, 0x03d8bd7b, 0x020abd6e, 0x03b68df6, 0x0369b73f, 0x029e0395, 0x004277db, 0x0013ffbd}}, Y: Field{[10]uint32{0x0392f854, 0x021a04f4, 0x01d694a1, 0x02f59efe, 0x03796755, 0x02ec27e6, 0x036162cf, 0x0282ae7b, 0x0057378a, 0x002a28c2}}},
+ {X: Field{[10]uint32{0x01f57368, 0x00dc49ba, 0x02bdefb7, 0x035bb2e9, 0x03f7e42e, 0x006e491b, 0x00b03341, 0x001722d6, 0x012a6338, 0x0021e2d9}}, Y: Field{[10]uint32{0x02e85836, 0x007bf055, 0x0020ad54, 0x004749d2, 0x02148c97, 0x01290750, 0x02e71f0b, 0x0056334e, 0x033ed691, 0x000b3efa}}},
+ {X: Field{[10]uint32{0x01eb415e, 0x002c41a7, 0x02783dd4, 0x00bc6c20, 0x01a0aa0b, 0x01e6b2f0, 0x0399ee6a, 0x02bb451a, 0x0215aee2, 0x003be69a}}, Y: Field{[10]uint32{0x01e97240, 0x02f42392, 0x00d826d9, 0x03686715, 0x02cffd9c, 0x02d271ea, 0x03c44802, 0x00d45286, 0x02ba7fd5, 0x00264278}}},
+ {X: Field{[10]uint32{0x0245bf37, 0x02b081c1, 0x008fcdcf, 0x00630b55, 0x02c7814e, 0x036c33a3, 0x00358855, 0x0348c182, 0x00d41551, 0x00357092}}, Y: Field{[10]uint32{0x01a36f05, 0x02013045, 0x029cb3c3, 0x017e0b6a, 0x003cbeb4, 0x0053542a, 0x0378c88c, 0x007e0a32, 0x009e7bf0, 0x003e717a}}},
+ {X: Field{[10]uint32{0x03227d1a, 0x016467d5, 0x00289f2c, 0x003c25bb, 0x026dad0c, 0x005155a0, 0x036e6148, 0x0055f659, 0x01cca526, 0x003b6fc9}}, Y: Field{[10]uint32{0x0299554d, 0x036b80bb, 0x034c7409, 0x007bdb95, 0x03d0ca70, 0x0034dc95, 0x0033c137, 0x0191592a, 0x0088be05, 0x0001a115}}},
+ {X: Field{[10]uint32{0x00cf09bb, 0x039ba953, 0x0378b26f, 0x02c37f3c, 0x0314be80, 0x033e4a1a, 0x021f5cf0, 0x038dd894, 0x026fb8e2, 0x00170480}}, Y: Field{[10]uint32{0x02daa596, 0x0299d619, 0x010471bf, 0x014102ea, 0x0094b81a, 0x02072691, 0x010154d5, 0x0194a1e5, 0x01ef4e2c, 0x000f6635}}},
+ {X: Field{[10]uint32{0x008e2d6d, 0x0134acb9, 0x030a0b43, 0x0352bce5, 0x03ae728b, 0x019cce31, 0x00dcef7f, 0x00157585, 0x02435056, 0x00309f98}}, Y: Field{[10]uint32{0x018525c9, 0x004dea9f, 0x033ced82, 0x025e158c, 0x029e372d, 0x0334a315, 0x00839eeb, 0x03e51bde, 0x02fc703c, 0x001dad61}}},
+ {X: Field{[10]uint32{0x01abaf8a, 0x036bb794, 0x027e7b96, 0x00feac52, 0x007f6760, 0x0263b981, 0x0024e8af, 0x0061ad35, 0x03045140, 0x0028a631}}, Y: Field{[10]uint32{0x00108fda, 0x0358e35a, 0x031085d7, 0x027ae9cb, 0x00463b77, 0x01283087, 0x01b430db, 0x0064d529, 0x01582a1b, 0x001371c0}}},
+ {X: Field{[10]uint32{0x012013c4, 0x00bccf86, 0x02f073a6, 0x005223ae, 0x02fdf400, 0x0125a8cc, 0x0204fb19, 0x03a2c2b0, 0x015782da, 0x00387f3a}}, Y: Field{[10]uint32{0x01d02f4c, 0x0138d9c7, 0x008a4a26, 0x00e513cc, 0x01e8ca64, 0x01de8435, 0x022b50aa, 0x01bfe5aa, 0x02e5d578, 0x0010145f}}},
+ {X: Field{[10]uint32{0x03097d6d, 0x00e6ff02, 0x033a21e1, 0x010bd9cf, 0x001a2b0c, 0x008d8551, 0x00e49bb6, 0x02e00239, 0x03fc5f06, 0x00039c66}}, Y: Field{[10]uint32{0x02fd7822, 0x0118b0ab, 0x025e1a0a, 0x00cd3e45, 0x01d14e2c, 0x00631251, 0x023929ee, 0x037da287, 0x001d83f5, 0x003c320f}}},
+ {X: Field{[10]uint32{0x00ad0a4e, 0x0130e2d4, 0x0235a17f, 0x01436723, 0x020dc27c, 0x039a5f6e, 0x00b11277, 0x03358a10, 0x024ba9d8, 0x001ddd9a}}, Y: Field{[10]uint32{0x031b6431, 0x02da7388, 0x00554b26, 0x01b9bdb9, 0x0060b758, 0x01b0642f, 0x02265ac8, 0x009ee808, 0x02d94483, 0x0016ce8a}}},
+ {X: Field{[10]uint32{0x008514b4, 0x03ca390d, 0x00292597, 0x035d8983, 0x004f2c9d, 0x00418da4, 0x0260cda4, 0x02a157e1, 0x021f6215, 0x003c8ddc}}, Y: Field{[10]uint32{0x02cfef79, 0x02e4ce06, 0x03651bcc, 0x03a755ec, 0x0046f5ad, 0x00f2e61d, 0x02e8c6d3, 0x027e73b2, 0x021c187b, 0x0004276a}}},
+ {X: Field{[10]uint32{0x027b3e08, 0x014fc269, 0x033b9f19, 0x00edb16b, 0x0397517b, 0x01436f20, 0x004e7a8a, 0x006868f3, 0x01d5e889, 0x0025023d}}, Y: Field{[10]uint32{0x01691555, 0x01e7b256, 0x02b90ed8, 0x0150cb67, 0x03ca33e9, 0x0173b4af, 0x01f87b90, 0x006ba725, 0x0212c32f, 0x0006e0bc}}},
+ {X: Field{[10]uint32{0x012a7064, 0x027db055, 0x020f4c4f, 0x03223c59, 0x03883649, 0x03a419d7, 0x03214f13, 0x01e49b27, 0x02551170, 0x002ca0dd}}, Y: Field{[10]uint32{0x011abfcf, 0x02c2f5db, 0x00131829, 0x01054671, 0x03be6ee0, 0x02f5545b, 0x0303ca45, 0x02258b9b, 0x033915be, 0x0022554d}}},
+ {X: Field{[10]uint32{0x0378f4a9, 0x019eff92, 0x039c1437, 0x00c4fe4b, 0x03986413, 0x01b034a7, 0x012a9dcb, 0x03d5293b, 0x020036b5, 0x003390ae}}, Y: Field{[10]uint32{0x03a048d4, 0x02f4dff8, 0x028024a7, 0x0360914a, 0x0339b757, 0x03dc1afe, 0x00c91792, 0x02ebd1da, 0x0292cf35, 0x001b951c}}},
+ {X: Field{[10]uint32{0x00cbcc59, 0x03b738bb, 0x0007d8e9, 0x02f10bc2, 0x00d3942b, 0x0352bd08, 0x009325e8, 0x00ea5efb, 0x02a01a06, 0x002ecf68}}, Y: Field{[10]uint32{0x02d70b32, 0x016749fe, 0x00d9d5c5, 0x00023685, 0x0225d6eb, 0x035b9ecb, 0x018a19ec, 0x0241ffbd, 0x03aabc39, 0x001f0a39}}},
+ {X: Field{[10]uint32{0x02c490ee, 0x00b0378d, 0x02acf539, 0x0249b7a3, 0x01dd3e95, 0x01bec9a4, 0x036f620d, 0x0281d3a9, 0x003c97f3, 0x00097613}}, Y: Field{[10]uint32{0x02d5651a, 0x01ce90c5, 0x0154016f, 0x01b279d6, 0x03415309, 0x02b5bf49, 0x0391ffb1, 0x022a6c1e, 0x0345088c, 0x0017839d}}},
+ {X: Field{[10]uint32{0x00d5765b, 0x00e511a1, 0x034a7faf, 0x00af9d0e, 0x03764994, 0x01f01d85, 0x015a01de, 0x01bc60b9, 0x03fdca25, 0x0022ea8e}}, Y: Field{[10]uint32{0x030506f1, 0x0022e034, 0x018117f3, 0x01f41f9c, 0x01587bfe, 0x01cc2c84, 0x01c28164, 0x0057345c, 0x00978bbe, 0x001851fa}}},
+ {X: Field{[10]uint32{0x021f5170, 0x01a5e5c0, 0x0319274c, 0x026ca1f1, 0x024d3b6b, 0x000931c1, 0x0065dea8, 0x000e1447, 0x020a5b7d, 0x00141f5a}}, Y: Field{[10]uint32{0x037bf5d3, 0x00eb6b5f, 0x03b372dc, 0x034338c3, 0x03c12793, 0x00eb8cae, 0x02a8141c, 0x020eb91f, 0x024770ea, 0x0004e7c5}}},
+ {X: Field{[10]uint32{0x02bbd846, 0x003f4e89, 0x030d6d64, 0x03ced3fc, 0x00e45620, 0x003f085f, 0x037354b1, 0x0316fa66, 0x02f7a059, 0x001f1a64}}, Y: Field{[10]uint32{0x01e0bee6, 0x006838ed, 0x02d03274, 0x02814386, 0x001f64e6, 0x004e7efb, 0x027062d7, 0x019070aa, 0x034efa63, 0x00025911}}},
+ {X: Field{[10]uint32{0x02698bf2, 0x0319a496, 0x0238fcfc, 0x005efec2, 0x033d5e33, 0x03a9bc55, 0x00507509, 0x016c8c52, 0x02b01bf6, 0x003d8a0c}}, Y: Field{[10]uint32{0x00c1ec95, 0x0230a995, 0x0040d366, 0x00ee31d6, 0x011546cc, 0x013cdd6f, 0x02ce6f88, 0x037f5cfd, 0x00107b8f, 0x0035cc52}}},
+ {X: Field{[10]uint32{0x03d1ebad, 0x03e2e71a, 0x02657def, 0x022b3332, 0x00594f62, 0x02f8f1f1, 0x00e20913, 0x03b0d8ad, 0x00abd8e4, 0x002bb487}}, Y: Field{[10]uint32{0x037100f8, 0x03759cae, 0x01dfdf9c, 0x00158094, 0x02b880a2, 0x03d07515, 0x02de1ac2, 0x01ffeaa2, 0x02f3833c, 0x0003e003}}},
+ {X: Field{[10]uint32{0x014bf405, 0x0337f6dc, 0x01f66e06, 0x032adb00, 0x029e0ba8, 0x032a5094, 0x011b877a, 0x026905ae, 0x00a9343a, 0x0011b79e}}, Y: Field{[10]uint32{0x014d2bcf, 0x027662fb, 0x00bf66c8, 0x021c237e, 0x0181f30b, 0x00646136, 0x02809c6f, 0x029cfb84, 0x02524f3e, 0x00305104}}},
+ {X: Field{[10]uint32{0x00bd41bc, 0x000ed095, 0x02174a63, 0x02469d42, 0x03ba4b65, 0x0010ee66, 0x016ae193, 0x03a4c94d, 0x01b8ab82, 0x000a0cad}}, Y: Field{[10]uint32{0x00aba440, 0x0398fdcd, 0x0049e249, 0x0093d242, 0x01a82752, 0x032e19a5, 0x02ce5340, 0x03c5248f, 0x02033f59, 0x00300d8f}}},
+ {X: Field{[10]uint32{0x03e43f9a, 0x017c3132, 0x007ff939, 0x00109cdb, 0x020d85bd, 0x003cdaf6, 0x00abe39b, 0x005885df, 0x01024b5c, 0x0016d5f1}}, Y: Field{[10]uint32{0x0120766c, 0x0032306f, 0x00c06853, 0x0131eb73, 0x01b282ed, 0x00d7613b, 0x03f57b9b, 0x0011cfc6, 0x0007dc0c, 0x00002109}}},
+ {X: Field{[10]uint32{0x01c2f103, 0x0132ec70, 0x03af3dac, 0x0362a7b6, 0x00814c45, 0x025ad2a7, 0x01bf8211, 0x01d63a09, 0x02708063, 0x002ce136}}, Y: Field{[10]uint32{0x030fa325, 0x002fbf48, 0x02d13df3, 0x0056bcc3, 0x03aa2375, 0x0241d5fe, 0x03925965, 0x033101d3, 0x01df6400, 0x0039b998}}},
+ {X: Field{[10]uint32{0x009a5e1c, 0x00031697, 0x008f8e73, 0x01c8057b, 0x0282a5b6, 0x0069519a, 0x00a5da96, 0x01122a6c, 0x0191563e, 0x000dbff6}}, Y: Field{[10]uint32{0x00bb961c, 0x03b625c0, 0x013b632a, 0x035812d4, 0x01d1a742, 0x0135c8a9, 0x01873208, 0x0351fa50, 0x0035fc17, 0x0025c19e}}},
+ {X: Field{[10]uint32{0x0189d81c, 0x02acd2bb, 0x022e7f5a, 0x00b31b0d, 0x035b9d14, 0x00eb7361, 0x0260ecc3, 0x000d9f93, 0x005257c2, 0x0020d9f9}}, Y: Field{[10]uint32{0x008be121, 0x00efc665, 0x0327af1f, 0x0356ef73, 0x02b77ce2, 0x03d0e067, 0x00a9e74d, 0x02c9bb4e, 0x00903ffa, 0x003f1ffc}}},
+ {X: Field{[10]uint32{0x00b0564b, 0x0225a6f7, 0x02d179c9, 0x02e752c6, 0x0004719f, 0x0048e196, 0x00539e24, 0x00a5bed0, 0x03e48cc9, 0x003db391}}, Y: Field{[10]uint32{0x03950e1c, 0x003582a1, 0x02a60093, 0x0019e002, 0x02b524a6, 0x033464ab, 0x01590175, 0x03702dbc, 0x036afe5e, 0x000da34a}}},
+ {X: Field{[10]uint32{0x01fae013, 0x00769efe, 0x02ac6509, 0x01623fe7, 0x03194ccb, 0x01c95917, 0x03d20c2a, 0x029bc149, 0x03e4beda, 0x0010e308}}, Y: Field{[10]uint32{0x02ff15f8, 0x004c69a4, 0x00b456d6, 0x02ffe392, 0x03e28dc6, 0x01c8a884, 0x01c93b53, 0x02095f6f, 0x0230c721, 0x00151882}}},
+ {X: Field{[10]uint32{0x02bee7bd, 0x02124b61, 0x03fbc84e, 0x02acbbb1, 0x03a1fa1d, 0x0176d405, 0x00e87228, 0x00d2fdeb, 0x02f8cc94, 0x00073d9c}}, Y: Field{[10]uint32{0x01cafdcc, 0x00d2f16d, 0x01018167, 0x0047891e, 0x018932b5, 0x01d9f3bf, 0x03cccedb, 0x03769655, 0x01258bb4, 0x0035b48f}}},
+ {X: Field{[10]uint32{0x021a2861, 0x01688fcf, 0x00bf4432, 0x018e2bca, 0x01943052, 0x03dc557f, 0x01cd1574, 0x00a6d9ba, 0x0212b0fa, 0x0011d193}}, Y: Field{[10]uint32{0x02b05141, 0x02a19368, 0x01e5681d, 0x02c286c6, 0x03a2468d, 0x0121a6a0, 0x0166e808, 0x03d5997a, 0x01d53bcd, 0x00082690}}},
+ {X: Field{[10]uint32{0x02a964a2, 0x0301d69a, 0x02ff8717, 0x008f82c0, 0x020c4ee2, 0x02efdceb, 0x0077a0a9, 0x0324139a, 0x03a1c884, 0x002a6b7e}}, Y: Field{[10]uint32{0x03f79dc8, 0x02b90120, 0x0236c6cf, 0x0282121e, 0x02b2d809, 0x03fad49f, 0x03371d4a, 0x030d71cf, 0x001da7bb, 0x002ac584}}},
+ {X: Field{[10]uint32{0x018edcbe, 0x00071bf1, 0x03f97d31, 0x02b97d05, 0x01824421, 0x0167b3e5, 0x00983dd6, 0x000c496b, 0x02de1060, 0x000a4cbf}}, Y: Field{[10]uint32{0x0176d727, 0x01d508f7, 0x02176e10, 0x0385f210, 0x012df54f, 0x03d32c47, 0x0234fe06, 0x0055afcb, 0x0343e666, 0x00218069}}},
+ {X: Field{[10]uint32{0x03a50216, 0x0359969c, 0x01df3e31, 0x00e79a62, 0x0064f9ba, 0x03fdd103, 0x02b62c58, 0x02b41080, 0x01282f87, 0x0016afd5}}, Y: Field{[10]uint32{0x01a1fabf, 0x01a4a541, 0x029c5d32, 0x015ca0b5, 0x00610b6f, 0x03b71738, 0x00a1b370, 0x0170080b, 0x0216f270, 0x001c7713}}},
+ {X: Field{[10]uint32{0x0001843a, 0x02670f6a, 0x013ec573, 0x02f34902, 0x020f359c, 0x00b0b1f9, 0x0087fc28, 0x0072b506, 0x015d9a12, 0x00010652}}, Y: Field{[10]uint32{0x033e0c31, 0x014daabd, 0x009d2956, 0x01f3638e, 0x02d5e661, 0x00e641cc, 0x02fefc78, 0x01425046, 0x01974029, 0x002454b8}}},
+ {X: Field{[10]uint32{0x01fbc3af, 0x016ade8a, 0x03eae416, 0x013889bd, 0x00a902bc, 0x02b2ec56, 0x027979a5, 0x039270f0, 0x0082ea2b, 0x003f28e1}}, Y: Field{[10]uint32{0x0346f5f4, 0x015a9b73, 0x0234f288, 0x01d5ec03, 0x01bad50a, 0x00a5b110, 0x0235f0f7, 0x00999242, 0x035e5fe6, 0x0004981c}}},
+ {X: Field{[10]uint32{0x01065d06, 0x02bd1595, 0x02de14b7, 0x01023244, 0x02d499ec, 0x016f0eac, 0x02135305, 0x00da22b2, 0x01233d70, 0x002f3c14}}, Y: Field{[10]uint32{0x01fb8bf9, 0x032d97e9, 0x0271d5f5, 0x0245d9c3, 0x01c16d49, 0x00d15a21, 0x0084e63a, 0x01a42cd5, 0x03f10645, 0x003cc995}}},
+ {X: Field{[10]uint32{0x029a92e1, 0x036292e3, 0x018e479d, 0x03128999, 0x0268bf6c, 0x017f25ac, 0x019cf74f, 0x02d092c5, 0x002f6391, 0x00139c2d}}, Y: Field{[10]uint32{0x013b3688, 0x02ccfdf9, 0x03d36591, 0x02c8ff93, 0x0266c595, 0x02db38d5, 0x0324fa44, 0x007019de, 0x00111af3, 0x0022e9e2}}},
+ {X: Field{[10]uint32{0x0121742f, 0x0213c37a, 0x00e6e1be, 0x03ce2897, 0x013cdb83, 0x01d8a370, 0x013703ca, 0x0183ab08, 0x03d7331c, 0x000ffa14}}, Y: Field{[10]uint32{0x01dca5d6, 0x00c39517, 0x0076d0b2, 0x00966d81, 0x03f27b51, 0x003c9374, 0x01961540, 0x03704dbd, 0x0377c2c6, 0x003edf6e}}},
+ {X: Field{[10]uint32{0x0248b9be, 0x0098d27d, 0x025f5ee7, 0x0208f33d, 0x01ca42f5, 0x013a5d90, 0x02aa8100, 0x03750028, 0x037fc3ca, 0x003600cd}}, Y: Field{[10]uint32{0x03d6fe99, 0x011c67a3, 0x02900d82, 0x00616b44, 0x00aeed21, 0x033044eb, 0x02b7fbfe, 0x02020152, 0x004f281a, 0x0018d5ee}}},
+ {X: Field{[10]uint32{0x030bebe1, 0x001b2781, 0x03845941, 0x00535b62, 0x0290a051, 0x01fe97b4, 0x037128e7, 0x01c5880a, 0x007b6f9e, 0x001777f7}}, Y: Field{[10]uint32{0x01cd76ad, 0x0047b915, 0x021e9d59, 0x03644663, 0x02714b6d, 0x00740c19, 0x0274c81a, 0x03edefeb, 0x00edfa1e, 0x00008fab}}},
+ {X: Field{[10]uint32{0x036f7dd5, 0x0133528e, 0x004115bc, 0x01bb5c85, 0x037913b4, 0x004b459e, 0x01353e6b, 0x02523fa4, 0x0243c964, 0x0017c540}}, Y: Field{[10]uint32{0x00af903f, 0x0375366e, 0x014e571c, 0x0336555d, 0x03b18147, 0x028d8313, 0x00991e2b, 0x03440805, 0x01497a2f, 0x000daaf2}}},
+ {X: Field{[10]uint32{0x00942647, 0x01a6eb14, 0x00e14979, 0x00898551, 0x030539f0, 0x02c49fbf, 0x00cc89c2, 0x0110a5e9, 0x00975b0c, 0x00092d3f}}, Y: Field{[10]uint32{0x02b5c207, 0x00e895e7, 0x038f9a82, 0x00b290f2, 0x0311d96f, 0x000529de, 0x02f88819, 0x001f617e, 0x03df54ad, 0x002f4f8f}}},
+ {X: Field{[10]uint32{0x002202e0, 0x03395739, 0x0276e1dc, 0x03aab987, 0x03f11b18, 0x02191061, 0x025ba2b2, 0x02d7f277, 0x03355556, 0x0028083a}}, Y: Field{[10]uint32{0x02639f66, 0x02416755, 0x0188027e, 0x01bafadc, 0x039765ac, 0x02a60b8a, 0x03667c00, 0x03d15c5a, 0x021f1ad2, 0x00269c7a}}},
+ {X: Field{[10]uint32{0x01f37a68, 0x01abf6b8, 0x00a0f86f, 0x01e33356, 0x038a224c, 0x018711f8, 0x0131de59, 0x00fab181, 0x0064f717, 0x00182de4}}, Y: Field{[10]uint32{0x010786b7, 0x017ce312, 0x016decfc, 0x038d89c9, 0x013437e4, 0x022d529f, 0x01fcbaed, 0x01f5b5ae, 0x024cf6a4, 0x000eb412}}},
+ {X: Field{[10]uint32{0x01f7d60b, 0x01edf8e8, 0x01685177, 0x02d74442, 0x03d2e233, 0x03238ff7, 0x002d9159, 0x0079512b, 0x01f2b57d, 0x0020d73c}}, Y: Field{[10]uint32{0x02a84b31, 0x017281fd, 0x01b16166, 0x0255f24a, 0x01a7112f, 0x03871b80, 0x03f77339, 0x036c4eee, 0x0135136e, 0x001f48f7}}},
+ {X: Field{[10]uint32{0x037f77ed, 0x00e549e0, 0x00dcab1d, 0x0378c623, 0x03606cd7, 0x012cc66e, 0x021d8ade, 0x036b540b, 0x03501f1e, 0x003ebdd0}}, Y: Field{[10]uint32{0x0221bcc9, 0x0122f7ff, 0x0147616d, 0x006e15d4, 0x030fbcd1, 0x026deb3f, 0x01a0fa03, 0x0160392e, 0x00bdbffb, 0x0036efac}}},
+ {X: Field{[10]uint32{0x012de938, 0x02775dc3, 0x027620a3, 0x02974eca, 0x01044091, 0x004849c7, 0x03f74edf, 0x02eb88f9, 0x03c3e072, 0x000e5b1b}}, Y: Field{[10]uint32{0x026fa667, 0x027458b7, 0x024799e9, 0x01dbd1aa, 0x029fb0e0, 0x01ae3d53, 0x00499409, 0x01513533, 0x02f8a143, 0x00177948}}},
+ {X: Field{[10]uint32{0x0144ab88, 0x0051fb83, 0x03684881, 0x0170790e, 0x00ae8e60, 0x0023bc83, 0x02622f80, 0x03cb2870, 0x0140ad8d, 0x0003e2ae}}, Y: Field{[10]uint32{0x01bff796, 0x00f9c377, 0x011e0406, 0x03d4cf91, 0x01630d28, 0x0201310a, 0x0057163f, 0x009f3b26, 0x0281fa74, 0x00267f94}}},
+ {X: Field{[10]uint32{0x01772367, 0x0106d1af, 0x01e78758, 0x01325640, 0x008197af, 0x020a70dd, 0x0122219a, 0x03fff078, 0x0068af6d, 0x0029880a}}, Y: Field{[10]uint32{0x01e9af45, 0x03deeac1, 0x00e4d145, 0x031360ec, 0x03fe9c4f, 0x0235a363, 0x0254eb6f, 0x0127053e, 0x020bc82a, 0x000981e8}}},
+ {X: Field{[10]uint32{0x0067e41e, 0x0312611c, 0x02bda4d7, 0x017edda8, 0x00cfbced, 0x00e93f6f, 0x03644842, 0x02185a41, 0x019349a9, 0x002c4b46}}, Y: Field{[10]uint32{0x02d75e31, 0x0270cf70, 0x037ec009, 0x0155c006, 0x0173fdd5, 0x01c05112, 0x0045eb3f, 0x022ac4a4, 0x00e0ac6c, 0x00299b75}}},
+ {X: Field{[10]uint32{0x01eb3b3c, 0x01ef7085, 0x01c64fd6, 0x00d17372, 0x009ae0a7, 0x0064e0c1, 0x00d3b97b, 0x003d7f1b, 0x0355b499, 0x00023723}}, Y: Field{[10]uint32{0x01435d83, 0x01044679, 0x002f5fa6, 0x00e3211f, 0x02c00ce4, 0x021c8bd2, 0x0354cc38, 0x023f632e, 0x017d62cc, 0x0006f9d1}}},
+ {X: Field{[10]uint32{0x018feeec, 0x03586719, 0x0053b1b6, 0x00f6b743, 0x01f12864, 0x018d47d9, 0x0121c4b3, 0x02792df5, 0x0337d1db, 0x000b02dc}}, Y: Field{[10]uint32{0x039bad53, 0x0264016c, 0x02d9ad8b, 0x0254ec20, 0x01ef765b, 0x001f3b85, 0x03dae62c, 0x004867de, 0x039ceb7c, 0x003a289e}}},
+ {X: Field{[10]uint32{0x023bab35, 0x001b24f6, 0x00d0e66d, 0x024aed7c, 0x02b17ad6, 0x009052ac, 0x00a0d1d2, 0x001a2692, 0x00a25010, 0x002247ed}}, Y: Field{[10]uint32{0x027260f6, 0x014f8903, 0x00c7c0cb, 0x00399869, 0x0052d06c, 0x00d1fcf2, 0x013c03bc, 0x00f04efa, 0x0166cdf4, 0x00105a14}}},
+ {X: Field{[10]uint32{0x01ca1738, 0x027b4eda, 0x03b02ed9, 0x02d87d6e, 0x0039fbcc, 0x0399a3bc, 0x0213729d, 0x01103f9c, 0x01b1511c, 0x00128cde}}, Y: Field{[10]uint32{0x03ac0f6f, 0x00519328, 0x02b0039d, 0x000f505c, 0x0017b3bf, 0x02d133a2, 0x01d75eed, 0x006476a2, 0x01c239e9, 0x002c4a8f}}},
+ {X: Field{[10]uint32{0x03815521, 0x01c18697, 0x000d22c5, 0x00f0721e, 0x017dc58e, 0x00efe359, 0x01a360f8, 0x01afe98b, 0x03c85493, 0x002e2ca9}}, Y: Field{[10]uint32{0x02a2d15b, 0x0168f57d, 0x03021c06, 0x00b05f0a, 0x021cd441, 0x014aa26e, 0x02c70012, 0x00d8b096, 0x000b7719, 0x0023e48b}}},
+ {X: Field{[10]uint32{0x039624fb, 0x024491f6, 0x03a7ff01, 0x02d88b25, 0x002fb56a, 0x01f3dcea, 0x029341d7, 0x014b941e, 0x0219d1dc, 0x002419bf}}, Y: Field{[10]uint32{0x011baf50, 0x00f9f51c, 0x00896215, 0x02f02aef, 0x00c281f5, 0x02d9e269, 0x01d4929e, 0x0315d760, 0x03436ec3, 0x0008f466}}},
+ {X: Field{[10]uint32{0x00ced8ec, 0x00d35d5f, 0x017c2b05, 0x0379b99d, 0x029f32c8, 0x02d6dcfb, 0x01a18df2, 0x03a6c728, 0x014c19c9, 0x002fe6ac}}, Y: Field{[10]uint32{0x029759c0, 0x007c5d03, 0x011dd048, 0x01d756f2, 0x0385e793, 0x00de8ebd, 0x02724188, 0x018f782a, 0x01233c38, 0x003b25a6}}},
+ {X: Field{[10]uint32{0x016f9d03, 0x01978d4c, 0x031af102, 0x021ba216, 0x0378c656, 0x023adeab, 0x01b7e69e, 0x01280889, 0x006f9c65, 0x001a2c9a}}, Y: Field{[10]uint32{0x014da9c3, 0x012e06fc, 0x0019af28, 0x035bd3dd, 0x03b6b407, 0x00e49caa, 0x014d4077, 0x009af615, 0x01048468, 0x00074f5d}}},
+ {X: Field{[10]uint32{0x010bf2fa, 0x009c00dc, 0x01a7de04, 0x01a6fdef, 0x024d3bf6, 0x00b27cda, 0x00989d39, 0x02886a53, 0x03855251, 0x00083720}}, Y: Field{[10]uint32{0x01aa749f, 0x01d83c25, 0x0224a974, 0x0251588f, 0x03975d67, 0x0182321d, 0x0080c4b3, 0x00ca7fe4, 0x02ff713d, 0x000085f9}}},
+ {X: Field{[10]uint32{0x01fd0368, 0x026872ad, 0x01568168, 0x011a6a1d, 0x025c822e, 0x03164612, 0x01859bf8, 0x0266328e, 0x009b555d, 0x003c2fad}}, Y: Field{[10]uint32{0x02664aac, 0x0022d01c, 0x032f53bd, 0x03c05830, 0x002e8ff7, 0x029d74fd, 0x033b3b30, 0x037e52e8, 0x02e7a23d, 0x00383816}}},
+ {X: Field{[10]uint32{0x00a0ee57, 0x0168ed71, 0x022cfaab, 0x032b7229, 0x0016ddc1, 0x00b3d311, 0x01ad8abf, 0x03e7ae90, 0x0173270f, 0x0023c6aa}}, Y: Field{[10]uint32{0x015920ec, 0x038c2996, 0x00a87071, 0x02c0ae68, 0x002bd6bb, 0x00bdbae8, 0x02a441f1, 0x026c5ea1, 0x0260e340, 0x00242a8d}}},
+ {X: Field{[10]uint32{0x028a9957, 0x0208a0e4, 0x01dfb413, 0x02a02ab2, 0x00fecd43, 0x024d2e20, 0x00ca847a, 0x03051d83, 0x0135278d, 0x0031c7ac}}, Y: Field{[10]uint32{0x02003804, 0x021c57ad, 0x03299a9d, 0x0311f9c6, 0x0351d23a, 0x03b31fdb, 0x0307ad5d, 0x0206e224, 0x03774852, 0x0010599f}}},
+ {X: Field{[10]uint32{0x02c41c81, 0x03b5946f, 0x01180b0f, 0x00f6ee87, 0x00fa904d, 0x01259717, 0x0109df5d, 0x01aa7cdf, 0x026e50d6, 0x003a401c}}, Y: Field{[10]uint32{0x01028e39, 0x0317c25c, 0x01d5a921, 0x0095e1ba, 0x03117f77, 0x0371f5ec, 0x00e64f2c, 0x01bd02cd, 0x0230db03, 0x0035482a}}},
+ {X: Field{[10]uint32{0x0123fa38, 0x0398ed80, 0x00c3beda, 0x035d3e1f, 0x0258d72d, 0x0083bf79, 0x03a6d6b7, 0x014aa6e8, 0x00afa159, 0x002502ac}}, Y: Field{[10]uint32{0x03bfcbcd, 0x01974a3c, 0x00702f87, 0x03c14f10, 0x016e5061, 0x012445b8, 0x01e443aa, 0x022866e1, 0x03476f78, 0x003fb1b5}}},
+ {X: Field{[10]uint32{0x00c76949, 0x00b9c32a, 0x006be8b6, 0x01a81903, 0x02a03ba4, 0x004b1739, 0x033ce9d4, 0x02619937, 0x026d643e, 0x002684f7}}, Y: Field{[10]uint32{0x0126dd5e, 0x000e54da, 0x02499061, 0x00c0bada, 0x01a46016, 0x02f1b2f2, 0x00c914d4, 0x02361e2d, 0x02966c2d, 0x00108e20}}},
+ {X: Field{[10]uint32{0x02c577c3, 0x03e0ee9d, 0x01d6f256, 0x0176f782, 0x01b76d6a, 0x035fd8ba, 0x006b1497, 0x00a7652a, 0x01b2b311, 0x0010e10a}}, Y: Field{[10]uint32{0x00bc1c7d, 0x013e4c97, 0x006cd2e4, 0x0261f11b, 0x03b2398e, 0x03a0cef6, 0x03cb600b, 0x026f86cc, 0x0186a722, 0x00390d80}}},
+ {X: Field{[10]uint32{0x02d02605, 0x019df1a5, 0x00f018c1, 0x02f9a8ea, 0x03c8bb59, 0x010c03a5, 0x007b524e, 0x01cb97eb, 0x025d66d4, 0x000fd8ec}}, Y: Field{[10]uint32{0x00ca39dd, 0x0257ced4, 0x0249d44c, 0x028bef7d, 0x01d9971a, 0x033fcb1a, 0x0119bbe5, 0x006734af, 0x0042158e, 0x0001161c}}},
+ {X: Field{[10]uint32{0x038cc0c5, 0x00d716ae, 0x013d1e17, 0x03b5b3ef, 0x0047afe5, 0x0237b7bc, 0x004f90b9, 0x0294828e, 0x01f717c7, 0x0001987f}}, Y: Field{[10]uint32{0x01a80abd, 0x01c0a4df, 0x02549d99, 0x00cec765, 0x03b83b74, 0x014be083, 0x012f00ea, 0x00386496, 0x003ab43c, 0x002f6689}}},
+ {X: Field{[10]uint32{0x02b951ce, 0x0317e256, 0x018cc279, 0x01f1d6f1, 0x000c999d, 0x03a8b532, 0x0027c367, 0x01abdf43, 0x0326daac, 0x002e706e}}, Y: Field{[10]uint32{0x03140f4e, 0x02e1fac6, 0x0138a767, 0x01eed632, 0x01b872d1, 0x03b575fc, 0x026c5b2e, 0x021aedf1, 0x0334a42b, 0x002934ef}}},
+ {X: Field{[10]uint32{0x0127e8fa, 0x006fe82c, 0x010999b1, 0x03b2ead7, 0x017d9b23, 0x03bf4aee, 0x02af4733, 0x03676142, 0x00a0fc6c, 0x0033d6b1}}, Y: Field{[10]uint32{0x011070ec, 0x03c5817e, 0x002872ca, 0x01dff521, 0x01ad465d, 0x0298b2bd, 0x03a94fe3, 0x005c601f, 0x0316c37f, 0x00112498}}},
+ {X: Field{[10]uint32{0x02b3b422, 0x02191c6f, 0x01b7413c, 0x0286cf0a, 0x03749caa, 0x03c28d3e, 0x0082c57f, 0x028cb8ee, 0x02afab8d, 0x002a94ac}}, Y: Field{[10]uint32{0x000859ce, 0x038fb303, 0x00244ac4, 0x02105b18, 0x03733260, 0x00c8094b, 0x028df35e, 0x0396546d, 0x03284a7b, 0x0012d589}}},
+ {X: Field{[10]uint32{0x0068211c, 0x01fc60d2, 0x0217ad34, 0x0159e61c, 0x007926b0, 0x011a25af, 0x032909c5, 0x002342a7, 0x022eb3aa, 0x0001843c}}, Y: Field{[10]uint32{0x0019e6bb, 0x030d5492, 0x006eac1b, 0x01ef09dd, 0x012dbf63, 0x019bb68f, 0x01571e61, 0x0312cc06, 0x010df35f, 0x00294b86}}},
+ {X: Field{[10]uint32{0x011a6d80, 0x00f30d31, 0x03b44acc, 0x01690997, 0x02db65f1, 0x025449e5, 0x00543307, 0x02963381, 0x00c3a485, 0x00004fc9}}, Y: Field{[10]uint32{0x03f3bc3b, 0x01261301, 0x02e611a4, 0x01b6c93e, 0x020f0797, 0x03e01cd9, 0x01c4327c, 0x01a7fcf3, 0x03b618e0, 0x003eb32f}}},
+ {X: Field{[10]uint32{0x00eb0f24, 0x02176768, 0x02bdf922, 0x03ed0573, 0x01caeb18, 0x008b16a1, 0x00112e69, 0x026ca72c, 0x02a84927, 0x000573af}}, Y: Field{[10]uint32{0x0075d833, 0x03a27e38, 0x00d05821, 0x014a3430, 0x01c36de4, 0x029dec70, 0x01af7ed4, 0x03e6f54e, 0x00fe158f, 0x0008f973}}},
+ {X: Field{[10]uint32{0x004d97f6, 0x03721c80, 0x029a55f2, 0x032025bc, 0x02cf92e0, 0x00093586, 0x001b1d60, 0x014d9f71, 0x018efb7d, 0x00098168}}, Y: Field{[10]uint32{0x0266d375, 0x012f5417, 0x022f4f94, 0x0132500b, 0x02fd6d67, 0x002b5bf4, 0x018ae518, 0x02dfb371, 0x0374f111, 0x00235a99}}},
+ {X: Field{[10]uint32{0x027f9995, 0x002c172f, 0x0356c33d, 0x004cda52, 0x0225cd05, 0x00d6cd8a, 0x0236d6cd, 0x015bcdfe, 0x0272a787, 0x00396238}}, Y: Field{[10]uint32{0x0072fbb7, 0x015bff55, 0x0191766e, 0x0300341c, 0x02115425, 0x0348f94f, 0x00715c6a, 0x010a5a6e, 0x018320b8, 0x00056fae}}},
+ {X: Field{[10]uint32{0x016b46a5, 0x021d436f, 0x00b6ccb9, 0x00e64d16, 0x023a02cc, 0x03de729f, 0x03205cb0, 0x03b716da, 0x0122f264, 0x002000c9}}, Y: Field{[10]uint32{0x011a44a8, 0x01c60ee1, 0x01043bca, 0x03a3530f, 0x02fd2c1d, 0x02aa5c97, 0x038b93b5, 0x007aea63, 0x02f4fb4e, 0x0011e724}}},
+ {X: Field{[10]uint32{0x0241bfaa, 0x01a8be85, 0x013f3c16, 0x02dfe45b, 0x0394b525, 0x0084a1f9, 0x0101308a, 0x0206d5c1, 0x000ee1a5, 0x00254301}}, Y: Field{[10]uint32{0x0338ea71, 0x03bc76ed, 0x01a751e4, 0x022370e1, 0x0252441a, 0x01d808de, 0x0171725f, 0x01c29a7c, 0x020e911d, 0x00390f6c}}},
+ {X: Field{[10]uint32{0x02c391fa, 0x015402a1, 0x018759db, 0x02f8a0b7, 0x01a634b9, 0x02e2f03d, 0x030aecad, 0x03b95cb9, 0x0336423f, 0x003a267f}}, Y: Field{[10]uint32{0x003a9bd1, 0x01231f2d, 0x02790a02, 0x02432c62, 0x01886117, 0x03e1ea44, 0x03100340, 0x02da3899, 0x03b0dfe6, 0x0001fb65}}},
+ {X: Field{[10]uint32{0x00a1a51b, 0x00a972f6, 0x0045e833, 0x034a715e, 0x006a7415, 0x01b867ee, 0x00ce5c76, 0x01adea3e, 0x008f0c20, 0x00348d9a}}, Y: Field{[10]uint32{0x016ec9e9, 0x00170b19, 0x01113adb, 0x021d5486, 0x01d50988, 0x0060ed49, 0x02d65085, 0x012983f9, 0x019fe3d5, 0x001cbc8d}}},
+ {X: Field{[10]uint32{0x019dcccf, 0x038be884, 0x0286ae94, 0x017f7709, 0x01430eab, 0x01718a3d, 0x02458c58, 0x00bc920f, 0x0071da4b, 0x00234f5f}}, Y: Field{[10]uint32{0x0361178f, 0x01e3d607, 0x00aad827, 0x000c7d65, 0x021f435c, 0x0191ffc7, 0x039c22ad, 0x03c832f5, 0x00e47948, 0x000cf102}}},
+ {X: Field{[10]uint32{0x032651a9, 0x01ff66ed, 0x028a587d, 0x01431585, 0x03fee4b7, 0x034418fe, 0x02542ba5, 0x02066546, 0x037ae891, 0x000c83c4}}, Y: Field{[10]uint32{0x03c402c5, 0x016f3cf4, 0x02232679, 0x0262a317, 0x03086036, 0x014efc00, 0x0275a021, 0x0387bcc8, 0x006ae2a4, 0x002e1015}}},
+ {X: Field{[10]uint32{0x0081352c, 0x015df186, 0x020de8ce, 0x01fe691b, 0x027546c8, 0x03519006, 0x01686072, 0x02c967d1, 0x03ce3fe6, 0x0027a2bf}}, Y: Field{[10]uint32{0x029d02f1, 0x01def530, 0x00f9273e, 0x03db14fb, 0x01af8639, 0x01c8d949, 0x00ebaf09, 0x01fdf098, 0x0301d83b, 0x00343a8d}}},
+ {X: Field{[10]uint32{0x021eef64, 0x031cacf1, 0x03f539be, 0x03d26b4a, 0x03daf70f, 0x0090487b, 0x03c915ea, 0x00e61ca4, 0x01b81d35, 0x00177d19}}, Y: Field{[10]uint32{0x01e690af, 0x01069eb5, 0x03e54385, 0x01f3ccf0, 0x038b3804, 0x003d1820, 0x00c193d4, 0x03210416, 0x01ff5ae4, 0x000c81b1}}},
+ {X: Field{[10]uint32{0x02f28f58, 0x01197523, 0x0064d6e1, 0x00e621a8, 0x011312bb, 0x009ae8f1, 0x0061d488, 0x00d42fd2, 0x0326a18c, 0x00266734}}, Y: Field{[10]uint32{0x00b1ef12, 0x02244772, 0x00b0dd41, 0x02c2fa21, 0x00a9fcea, 0x02554582, 0x018e6629, 0x0337d9e6, 0x032ad6dc, 0x000b362a}}},
+ {X: Field{[10]uint32{0x03ce163b, 0x02c09ada, 0x034cdc0a, 0x019d1d86, 0x03479a66, 0x01551832, 0x02ba6f42, 0x02705be8, 0x00ee574d, 0x0020763f}}, Y: Field{[10]uint32{0x00673143, 0x02d2b166, 0x00ca638c, 0x03f3f5f2, 0x003cf771, 0x0169a605, 0x039a996f, 0x01e9a8ed, 0x0334f589, 0x0016539f}}},
+ {X: Field{[10]uint32{0x0096d278, 0x01b610f4, 0x020dd4da, 0x027b254e, 0x0385839c, 0x01be1460, 0x032b42d5, 0x01cefbe4, 0x0324b9ac, 0x0027a0f5}}, Y: Field{[10]uint32{0x00c88869, 0x03e9788c, 0x01689a1a, 0x00029287, 0x0100d3a0, 0x03125bb1, 0x02fda95a, 0x016b2e27, 0x00abfed0, 0x003e2c63}}},
+ {X: Field{[10]uint32{0x02320c3e, 0x0244510f, 0x0231764f, 0x00ecd6ea, 0x01908ec3, 0x00ecb640, 0x00b1f647, 0x00f022bb, 0x00b13b44, 0x00262e8e}}, Y: Field{[10]uint32{0x0399b84f, 0x0075808f, 0x020a44df, 0x01e8d0d2, 0x010d8ece, 0x01bd0bd2, 0x012f972e, 0x00cbefd7, 0x01d7fc22, 0x000d0fd8}}},
+ {X: Field{[10]uint32{0x02a875ec, 0x00120194, 0x01285de7, 0x01ef9b0d, 0x01582244, 0x03a5c19c, 0x03a94886, 0x017bb169, 0x025a9adf, 0x000824ba}}, Y: Field{[10]uint32{0x024e7f35, 0x02b71efa, 0x0228f304, 0x03099650, 0x0195a7e9, 0x00985998, 0x00facc8e, 0x009c8aa5, 0x02eb5238, 0x00377edc}}},
+ {X: Field{[10]uint32{0x02eeb75a, 0x00c13080, 0x01e765b9, 0x00e65687, 0x00c044c6, 0x02f25d04, 0x037bce4e, 0x02817ab1, 0x009a8f45, 0x003e7ba4}}, Y: Field{[10]uint32{0x0301705e, 0x03b93b84, 0x01d51a41, 0x034df8ba, 0x023a39c0, 0x02babc4f, 0x03e50fd2, 0x02c3a11c, 0x01ba93f5, 0x0021840c}}},
+ {X: Field{[10]uint32{0x01df101c, 0x03394d4d, 0x00603c75, 0x009f18fa, 0x015c676e, 0x03baa6fe, 0x002dfc02, 0x0169f2cd, 0x00e23bc5, 0x00284e1e}}, Y: Field{[10]uint32{0x03108427, 0x03ffe09e, 0x02ed001b, 0x0214d71c, 0x02233f05, 0x034fa069, 0x02a2f833, 0x02c24424, 0x02d03d4b, 0x000d7033}}},
+ {X: Field{[10]uint32{0x004ae3e4, 0x01ec6d84, 0x0065d34f, 0x03e0e9c6, 0x03b863a7, 0x02760300, 0x004cfce0, 0x037f61ca, 0x01d2cd32, 0x003a3b20}}, Y: Field{[10]uint32{0x0017648b, 0x009c89c1, 0x01e4ec6e, 0x03a2c219, 0x011d24c4, 0x0145eff2, 0x032b01af, 0x0375ffd4, 0x0377ee12, 0x00182fa6}}},
+ {X: Field{[10]uint32{0x00f35b60, 0x00ae2607, 0x0297a664, 0x0261a6e6, 0x00d48e98, 0x013818e4, 0x030b18fe, 0x03710cd1, 0x02551529, 0x003c1f2c}}, Y: Field{[10]uint32{0x0223b550, 0x00a5e9b0, 0x03d2b0a3, 0x00856544, 0x01c6e854, 0x0388d56a, 0x034b9412, 0x018cf566, 0x03776d74, 0x002f51ba}}},
+ {X: Field{[10]uint32{0x02af7f51, 0x022136ae, 0x03dd82fe, 0x00fcbcb2, 0x0242becd, 0x02982e0d, 0x03189ae0, 0x02a7c2a5, 0x0023dcfd, 0x000e6f39}}, Y: Field{[10]uint32{0x022c8e4d, 0x01e2ec7a, 0x01a2b2db, 0x03a0525e, 0x01f3430b, 0x00c0fb24, 0x00903127, 0x008679d1, 0x00aa4b71, 0x00305667}}},
+ {X: Field{[10]uint32{0x029ad3cf, 0x03f44147, 0x00ec80e0, 0x019f3cb6, 0x0358142f, 0x00f2793f, 0x033de211, 0x02e05062, 0x01cbd51d, 0x001b6984}}, Y: Field{[10]uint32{0x001e4b7f, 0x01e3fcc1, 0x00d704d1, 0x01a0b867, 0x02f7fe55, 0x02c0d203, 0x03d494eb, 0x03d953f6, 0x00483250, 0x001af0bc}}},
+ {X: Field{[10]uint32{0x031aed8a, 0x0327eee2, 0x00c709a3, 0x011de51c, 0x01f4e13a, 0x029fa571, 0x00a5e8ef, 0x003ae629, 0x00038d2e, 0x0033b6e7}}, Y: Field{[10]uint32{0x019a0d40, 0x01ab5361, 0x028feeca, 0x0297dfd7, 0x0046804f, 0x034213d0, 0x00d5d56e, 0x0362f208, 0x0131de42, 0x001e68bf}}},
+ {X: Field{[10]uint32{0x01ae3d82, 0x01e841c1, 0x02d8a3a0, 0x02134037, 0x0225393f, 0x01b107f9, 0x0340458f, 0x001b40cb, 0x00986d11, 0x001f6255}}, Y: Field{[10]uint32{0x026d0d61, 0x03561a86, 0x01866ee7, 0x030ac842, 0x02edd110, 0x0382b783, 0x02a117c7, 0x01652d86, 0x02cfff1c, 0x001753ed}}},
+ {X: Field{[10]uint32{0x03dc3df7, 0x000310f5, 0x01aa175a, 0x01431ba7, 0x00851aaf, 0x00fb3b18, 0x01e26069, 0x010ebfac, 0x01627370, 0x00293ca4}}, Y: Field{[10]uint32{0x039c4439, 0x009a0871, 0x00846b27, 0x01ef118a, 0x0392265d, 0x0116abb4, 0x03abb201, 0x012c54e3, 0x00e8fb76, 0x002fbaff}}},
+ {X: Field{[10]uint32{0x011cab70, 0x0058bc3e, 0x000a29cb, 0x01959a03, 0x00e0ba81, 0x01a26ef3, 0x00ce964e, 0x032c23b0, 0x01acde4c, 0x002d8e27}}, Y: Field{[10]uint32{0x00303529, 0x00103294, 0x02cdd679, 0x029fbbf6, 0x039ee836, 0x0238c7f9, 0x032826d2, 0x0091d05e, 0x03dbd2d0, 0x00391031}}},
+ {X: Field{[10]uint32{0x02fcc9e1, 0x022bbefd, 0x00b4927b, 0x005a6673, 0x01ae4ee0, 0x03bbcdfd, 0x00ac2d6a, 0x030dbe5e, 0x01acf752, 0x001cb39b}}, Y: Field{[10]uint32{0x039bbca6, 0x017c43b5, 0x03bc67c4, 0x03379e5a, 0x028ad38a, 0x0380409f, 0x00c6d4d5, 0x01100f58, 0x0297bbd8, 0x00339ab0}}},
+ {X: Field{[10]uint32{0x00255f06, 0x004e119b, 0x0117531b, 0x02b43e2b, 0x014fb3e5, 0x01af1430, 0x00931faa, 0x01096958, 0x036fcfd7, 0x003beb4c}}, Y: Field{[10]uint32{0x015a82c0, 0x008ba3f8, 0x0203b2b4, 0x00251064, 0x039eab6b, 0x00605c58, 0x03ab5597, 0x026847b1, 0x00f4eeee, 0x000fede1}}},
+ {X: Field{[10]uint32{0x034eaae3, 0x0177ac80, 0x0349c289, 0x01b3ce0a, 0x0322002c, 0x00e4f295, 0x034bd1f0, 0x008599f1, 0x022d04bb, 0x003e6352}}, Y: Field{[10]uint32{0x016fd148, 0x01b3116d, 0x0269e9a3, 0x022b59a7, 0x0297a26f, 0x01851f2e, 0x0350763c, 0x01e2a0d1, 0x031f7e37, 0x00261d78}}},
+ {X: Field{[10]uint32{0x0134183f, 0x02251832, 0x02eafb0b, 0x0079961d, 0x012b0d16, 0x02b04fb4, 0x01eea342, 0x0108ccb1, 0x034d2bc2, 0x001da33d}}, Y: Field{[10]uint32{0x02fdc34e, 0x0003e9e8, 0x022654ba, 0x00cb9cb9, 0x00af083b, 0x0341a954, 0x02e9f72d, 0x0135ebe1, 0x0207e55b, 0x00108cdd}}},
+ {X: Field{[10]uint32{0x01beff7b, 0x0049d369, 0x01c59979, 0x01b88949, 0x03d34cfb, 0x02a45b42, 0x01ec27aa, 0x03189645, 0x03b01d05, 0x002b09bc}}, Y: Field{[10]uint32{0x014f4045, 0x033b37fa, 0x0254a42f, 0x01dae2f7, 0x01a30055, 0x03afac66, 0x0113bcb1, 0x005a0746, 0x00ac89b6, 0x0038d9d8}}},
+ {X: Field{[10]uint32{0x0374fbac, 0x0263cd07, 0x01285212, 0x00368234, 0x02fcd905, 0x02c10a8e, 0x025045e1, 0x002f8b99, 0x0181741a, 0x0036b750}}, Y: Field{[10]uint32{0x00a84f60, 0x01b80339, 0x0002b805, 0x02f2a40a, 0x03f6a4df, 0x018d5d39, 0x01e4e2c8, 0x03741098, 0x03e0da78, 0x001b3d1b}}},
+ {X: Field{[10]uint32{0x0286a3e8, 0x0342ae46, 0x00f82a6f, 0x03aa46a2, 0x032c4e1e, 0x010fc6dc, 0x03139ed1, 0x01aa18be, 0x0198ce9e, 0x00395945}}, Y: Field{[10]uint32{0x01f1ac98, 0x03bf6cbc, 0x0221a9e9, 0x022b55a6, 0x000770fd, 0x03d357db, 0x01723d8f, 0x01b04042, 0x033669ab, 0x002ed084}}},
+ {X: Field{[10]uint32{0x030f5b02, 0x03922b89, 0x03d65de9, 0x02dc3730, 0x032d47a2, 0x0007b8ea, 0x0369b454, 0x03d658e6, 0x011eb4f0, 0x003c9bde}}, Y: Field{[10]uint32{0x030ff699, 0x026f02d1, 0x004fbe1a, 0x02458cea, 0x002693c5, 0x02915d5f, 0x003c799e, 0x02efc946, 0x03251fe5, 0x0008b8d2}}},
+ {X: Field{[10]uint32{0x023da9da, 0x0379a398, 0x018ac19f, 0x008a76de, 0x032d2bec, 0x02137628, 0x01da048a, 0x00bd21ea, 0x010b9561, 0x0029433c}}, Y: Field{[10]uint32{0x03dcc576, 0x020554c2, 0x02888e4c, 0x033730f7, 0x00ce345e, 0x03358166, 0x039f9f47, 0x02899076, 0x013c0a76, 0x0014041f}}},
+ {X: Field{[10]uint32{0x0245c13c, 0x025fc6c2, 0x00c10a11, 0x02ad7b17, 0x03e917e5, 0x0205f2e6, 0x0386a5c1, 0x01b06f57, 0x03b90273, 0x0031d220}}, Y: Field{[10]uint32{0x008beedc, 0x03d2f44b, 0x0232e847, 0x01570ade, 0x01d1c2bd, 0x003a89d6, 0x013e73b6, 0x00f3fc35, 0x03bce739, 0x00380f10}}},
+ {X: Field{[10]uint32{0x01e1c0a9, 0x03fa0002, 0x02e9c98d, 0x02937400, 0x01be7cad, 0x00a78b23, 0x005c00f6, 0x03b622ec, 0x03d01741, 0x00028d0d}}, Y: Field{[10]uint32{0x007bca1c, 0x0181c4e1, 0x01c9ed21, 0x019c2ed0, 0x00fc268e, 0x0134fbbe, 0x01a00afa, 0x032af47f, 0x005a257f, 0x002989f8}}},
+ {X: Field{[10]uint32{0x01c8312d, 0x027fe8e6, 0x03093832, 0x01dc128f, 0x0090c00c, 0x00c1a1bf, 0x018ba895, 0x02ead37a, 0x0188f179, 0x0029b312}}, Y: Field{[10]uint32{0x0170b6df, 0x03fd1d67, 0x01643712, 0x03bd3d84, 0x01bbba86, 0x004d191c, 0x03cad7c1, 0x0169e4a6, 0x00737db2, 0x003d3ae9}}},
+ {X: Field{[10]uint32{0x00b84dbe, 0x0286b29c, 0x02f2400d, 0x020c4e4d, 0x039e6801, 0x03286af8, 0x03330776, 0x02355ecc, 0x00a8f577, 0x0003becd}}, Y: Field{[10]uint32{0x03428d3f, 0x00a61e1f, 0x025952f0, 0x0328526c, 0x027e5845, 0x019d4dae, 0x00878e71, 0x03ea60c8, 0x016efc53, 0x002a5288}}},
+ {X: Field{[10]uint32{0x00dfa07a, 0x017ef5bf, 0x01a94a2c, 0x02e0fe91, 0x03019ec3, 0x021fee6a, 0x03914ef4, 0x039aeec8, 0x02d81385, 0x0004e611}}, Y: Field{[10]uint32{0x00fce099, 0x0132f1ab, 0x02aa09c3, 0x02cba325, 0x0362d837, 0x0237f682, 0x01f6aff2, 0x004336a6, 0x004e599b, 0x0013edf3}}},
+ {X: Field{[10]uint32{0x01f2a101, 0x02336aeb, 0x01bb7a53, 0x00284ca6, 0x0249c209, 0x02d4fa98, 0x01f6eeaa, 0x0159ea0f, 0x03af98ba, 0x00198248}}, Y: Field{[10]uint32{0x0094bd29, 0x003c3623, 0x0078d446, 0x021a5c55, 0x00ee2a56, 0x0118bd10, 0x01890ee8, 0x025c89a6, 0x00cab1a2, 0x002ca2d6}}},
+ {X: Field{[10]uint32{0x012be3c6, 0x000e243d, 0x01a98d3e, 0x03430772, 0x02d2f86b, 0x00698d16, 0x0389d31f, 0x005f78fc, 0x02b58c75, 0x003c6024}}, Y: Field{[10]uint32{0x00f9c906, 0x02a6bf5a, 0x006d07e8, 0x018ca8db, 0x00440ca7, 0x00ec0c87, 0x00276973, 0x013b5df7, 0x02049148, 0x002a0f9e}}},
+ {X: Field{[10]uint32{0x01d0ab75, 0x03844e20, 0x03f74bfe, 0x019d9233, 0x017b7004, 0x02d7eca5, 0x026a6e25, 0x01503ce2, 0x020d1b2c, 0x003a342a}}, Y: Field{[10]uint32{0x0314409a, 0x02ee2af4, 0x016e9f19, 0x032ffaa9, 0x021abfc0, 0x022a0260, 0x00c3f298, 0x01706f43, 0x03be5205, 0x0028c932}}},
+ {X: Field{[10]uint32{0x03526c1a, 0x00b7f11b, 0x025f3c7d, 0x00b540c0, 0x021d8ee7, 0x007dd18f, 0x01613df5, 0x001d0c3e, 0x00c0230a, 0x000961a8}}, Y: Field{[10]uint32{0x0016c735, 0x000eb026, 0x02653ede, 0x02891d01, 0x03ce9b1d, 0x02143d70, 0x007b4694, 0x011c350f, 0x01a1eb2b, 0x0028a5cd}}},
+ {X: Field{[10]uint32{0x037dffd8, 0x032ad099, 0x00e48a12, 0x015390b0, 0x018be682, 0x0375f23d, 0x01bb2d27, 0x01b51b0c, 0x02888d82, 0x00085f3e}}, Y: Field{[10]uint32{0x001ac4ce, 0x025adab0, 0x031a006d, 0x015fd204, 0x0134179c, 0x02be477b, 0x01f99017, 0x03ec540d, 0x00309ff0, 0x00135767}}},
+ {X: Field{[10]uint32{0x02edf4c0, 0x00e8d4c6, 0x03ccb820, 0x02fc4035, 0x03943af3, 0x00df3f59, 0x02791eb0, 0x00ee3e79, 0x013471aa, 0x0013a996}}, Y: Field{[10]uint32{0x00b7b4c5, 0x004a6121, 0x02ca506c, 0x00d3222f, 0x03ded8a5, 0x03257a65, 0x00474035, 0x000b1160, 0x02c419a3, 0x003fbb66}}},
+ {X: Field{[10]uint32{0x00c7a1ae, 0x02b09346, 0x01f7d4fa, 0x03cb2591, 0x007d7759, 0x0125fbaf, 0x0122150c, 0x01aa93a9, 0x028b5102, 0x0025d2e0}}, Y: Field{[10]uint32{0x03aa9d26, 0x0063fb53, 0x0109396d, 0x000ff2c1, 0x0165cd3a, 0x02a07c98, 0x026f344c, 0x01ccd895, 0x01a0c308, 0x00300da7}}},
+ {X: Field{[10]uint32{0x00978186, 0x031c25a7, 0x01755529, 0x0113b475, 0x0299bb45, 0x033d16cd, 0x01c8ae93, 0x035e9653, 0x0379d572, 0x00366056}}, Y: Field{[10]uint32{0x035241fa, 0x038d62b9, 0x013ecd67, 0x036193b5, 0x035b6c20, 0x0023e99f, 0x00ea24f5, 0x006552b1, 0x02cbf518, 0x0027f3ae}}},
+ {X: Field{[10]uint32{0x00368837, 0x00acc3ae, 0x02d38efd, 0x02f7e7da, 0x01478208, 0x03596ab0, 0x01506f1b, 0x03539f2f, 0x01970d9b, 0x00149c49}}, Y: Field{[10]uint32{0x033df18e, 0x008c98a2, 0x01d79aef, 0x03044b5b, 0x0068bbf0, 0x014da004, 0x00911d16, 0x03b2b668, 0x0196ba2c, 0x0014bb2a}}},
+ {X: Field{[10]uint32{0x009abf6d, 0x01577a11, 0x018186af, 0x0278ae2b, 0x00ed2fc8, 0x022a3d3a, 0x030e1fee, 0x03d7e7bd, 0x01afd890, 0x0036508c}}, Y: Field{[10]uint32{0x019e2867, 0x01195248, 0x01e27e06, 0x03d23343, 0x0384278f, 0x00b61972, 0x03475fc3, 0x0248609c, 0x036ef078, 0x0009964a}}},
+ {X: Field{[10]uint32{0x019a7d90, 0x00a2936a, 0x034bfe53, 0x02c1c534, 0x02b661f7, 0x01d8fae6, 0x03a99d4b, 0x036558ec, 0x02317a69, 0x00192144}}, Y: Field{[10]uint32{0x01d46bc6, 0x024828d4, 0x02fb4af4, 0x02cde048, 0x021e06d3, 0x028fa485, 0x02020885, 0x01038dbe, 0x02335150, 0x003ac82e}}},
+ {X: Field{[10]uint32{0x0368a8c2, 0x00e0473b, 0x0021779c, 0x037c3b80, 0x0370df9e, 0x03018959, 0x03413a5f, 0x00bc5e63, 0x011bef66, 0x0034292c}}, Y: Field{[10]uint32{0x0170b9cd, 0x00a7dd37, 0x00dbe8b3, 0x018ffd35, 0x03748b7a, 0x02ace7ba, 0x00ef5c99, 0x01a5170e, 0x012018e1, 0x00352ee6}}},
+ {X: Field{[10]uint32{0x005802b6, 0x001fc1a6, 0x0249b3dc, 0x00dcef54, 0x01dcf546, 0x032f5dac, 0x03e103dd, 0x0121a07e, 0x0086c4b2, 0x0007626e}}, Y: Field{[10]uint32{0x0369535d, 0x0024e7d8, 0x01f3030d, 0x01150af3, 0x02a7885a, 0x00e9c31a, 0x036056ba, 0x00415df8, 0x00caaacd, 0x0028ce73}}},
+ {X: Field{[10]uint32{0x00dbb256, 0x01d72cb9, 0x036c010a, 0x008efac2, 0x039dbab2, 0x00e2e82d, 0x036682fa, 0x010f93c4, 0x01d59363, 0x002db3b3}}, Y: Field{[10]uint32{0x019f7be8, 0x0236c0cc, 0x01d583ba, 0x00ba090b, 0x025f77d1, 0x03604d99, 0x01a5d1fe, 0x021e896f, 0x005387dd, 0x000a4d70}}},
+ {X: Field{[10]uint32{0x032f8e24, 0x02ba942f, 0x002c4028, 0x0244261a, 0x0040f1b4, 0x03d6065a, 0x00a6c5fb, 0x03611cd7, 0x00e0a0ca, 0x00212c91}}, Y: Field{[10]uint32{0x021f7a71, 0x0226b221, 0x021bad82, 0x018b6837, 0x03148c8e, 0x038e9762, 0x0313087e, 0x002c47d5, 0x028c7df8, 0x0018b8a3}}},
+ {X: Field{[10]uint32{0x00114d1a, 0x037db073, 0x036d1638, 0x01650ffa, 0x01664331, 0x038ddf10, 0x00366102, 0x0200a0e5, 0x00ff2a90, 0x003e57b3}}, Y: Field{[10]uint32{0x0158eba2, 0x00e34af9, 0x039ca7de, 0x020586d3, 0x0256d16e, 0x022615bb, 0x011b9ea1, 0x001b36e3, 0x003f1a03, 0x002f436a}}},
+ {X: Field{[10]uint32{0x010f55e3, 0x03bcc874, 0x0132727f, 0x00d79043, 0x032a1e63, 0x0268b748, 0x02ccd255, 0x00f792bc, 0x01fd3e61, 0x001f133b}}, Y: Field{[10]uint32{0x03d7b1d8, 0x030893b9, 0x026960cd, 0x01f504c1, 0x0111d482, 0x01ca9983, 0x017f73c6, 0x0014db1a, 0x0109d9d0, 0x000cc7c8}}},
+ {X: Field{[10]uint32{0x00269713, 0x03dc80e8, 0x021c34b9, 0x019bb4c6, 0x02f88af8, 0x010d789d, 0x03918de0, 0x0360a792, 0x02381bf2, 0x0008d70b}}, Y: Field{[10]uint32{0x00dbf929, 0x00413be8, 0x03d0ff26, 0x00111803, 0x02815a13, 0x013aaa1e, 0x00486144, 0x0024bb9f, 0x030d2671, 0x00143737}}},
+ {X: Field{[10]uint32{0x0207cd73, 0x00a1a0fa, 0x02923761, 0x021b1777, 0x000cdf26, 0x007128e2, 0x03ca488d, 0x0025d545, 0x00d09ab5, 0x000aa587}}, Y: Field{[10]uint32{0x0398abe5, 0x024efa48, 0x0152dd7f, 0x00bbb75d, 0x0384f84c, 0x01d951c8, 0x000f7fde, 0x011b48f3, 0x0076b2ee, 0x00217244}}},
+ {X: Field{[10]uint32{0x00fd65e3, 0x023d0393, 0x01b51a62, 0x01d424f4, 0x03e00c47, 0x02fc60fd, 0x013f591c, 0x02e32e1c, 0x0091f0af, 0x002562f1}}, Y: Field{[10]uint32{0x009a65b3, 0x01431a82, 0x02eef92d, 0x01eaba3d, 0x01b2a09a, 0x03c1d868, 0x013e026a, 0x037f9244, 0x0339fa21, 0x002fd6f8}}},
+ {X: Field{[10]uint32{0x015f78fd, 0x0196f60f, 0x0273ddc8, 0x03319093, 0x030adb5c, 0x01adfa54, 0x035a2e24, 0x01eafe67, 0x00a37b5b, 0x001ba583}}, Y: Field{[10]uint32{0x025e0e15, 0x0166cd5a, 0x01a81bd6, 0x02ca7335, 0x00dcc4b0, 0x0285bf32, 0x02df612e, 0x0190fd7c, 0x03d1d5e9, 0x0014eb52}}},
+ {X: Field{[10]uint32{0x00d05871, 0x03b3a3fc, 0x01b5a8b2, 0x029e9237, 0x00e747e4, 0x036475aa, 0x01615257, 0x02eeb776, 0x020e9272, 0x0035eb24}}, Y: Field{[10]uint32{0x00c87ed8, 0x019b893c, 0x02dc4adf, 0x008186d9, 0x039d4c76, 0x00302630, 0x000b96d0, 0x02b178e3, 0x01fcc37b, 0x0018e06e}}},
+ {X: Field{[10]uint32{0x01730609, 0x00754c57, 0x00078b6c, 0x00bfcb67, 0x024481c1, 0x02fa506b, 0x0123844e, 0x015c1bb0, 0x003b1de9, 0x00026c20}}, Y: Field{[10]uint32{0x033fb1b0, 0x00258a9a, 0x03ef2f5f, 0x02ec4f30, 0x005a5ff0, 0x0392e007, 0x002ed01f, 0x03f7f3ab, 0x03d6b12a, 0x0005833c}}},
+ {X: Field{[10]uint32{0x00c5fd88, 0x0154ef29, 0x033ea689, 0x0027c08b, 0x02991bd5, 0x02e81085, 0x00e0153a, 0x03801a77, 0x006e5b74, 0x0017541d}}, Y: Field{[10]uint32{0x03259ff8, 0x018462da, 0x00e58927, 0x01bedbb4, 0x0299cb33, 0x00a724ad, 0x03a2e484, 0x012c6ef6, 0x005fd2a1, 0x002c3ec8}}},
+ {X: Field{[10]uint32{0x00be04ff, 0x0006a17f, 0x02cf0bbd, 0x02af1a1b, 0x01ef4483, 0x0180230b, 0x03087483, 0x018a7249, 0x0269fa27, 0x00386f09}}, Y: Field{[10]uint32{0x00d95ecf, 0x0027e103, 0x00e783d4, 0x0124efb6, 0x0315e8b1, 0x02ce86ca, 0x033fd435, 0x00248585, 0x0371083c, 0x001bedeb}}},
+ {X: Field{[10]uint32{0x00bfbf78, 0x003732f6, 0x017a2fe9, 0x00833dc0, 0x02f36ac6, 0x037e873c, 0x00519797, 0x024f6d03, 0x001cb5a8, 0x0033f242}}, Y: Field{[10]uint32{0x02a69ac2, 0x00a6b9a5, 0x01659b5f, 0x00695713, 0x00db321d, 0x026fe05f, 0x0377c15a, 0x00bf0cbc, 0x01235077, 0x0009aa23}}},
+ {X: Field{[10]uint32{0x0229bb9b, 0x03677d08, 0x014b05fa, 0x01621163, 0x00cd8ad1, 0x0263b5e3, 0x021246db, 0x01a314e5, 0x009d12bd, 0x00015367}}, Y: Field{[10]uint32{0x021cbff6, 0x01275db7, 0x025eba45, 0x00161248, 0x00f8de70, 0x034cf5f5, 0x00c961fe, 0x0089658c, 0x00311dec, 0x002d7a5f}}},
+ {X: Field{[10]uint32{0x03057dff, 0x02d694d0, 0x002e8d64, 0x02a987f9, 0x02bfb11e, 0x01cd71ec, 0x00f19248, 0x01986740, 0x02e67e9d, 0x0022a453}}, Y: Field{[10]uint32{0x03c040c8, 0x0046b0c6, 0x01b05a63, 0x011a8bd6, 0x0199c518, 0x00a9be94, 0x002f018c, 0x0369262f, 0x01da3374, 0x0006e478}}},
+ {X: Field{[10]uint32{0x00240522, 0x02c16574, 0x03b030a0, 0x010bef48, 0x00aa2f4c, 0x026ac2ae, 0x0304fbae, 0x0077eaf1, 0x01773e64, 0x00352e04}}, Y: Field{[10]uint32{0x025cc726, 0x03ef8159, 0x007b8ce6, 0x00d405c4, 0x01cf2e68, 0x003d037c, 0x01bd3642, 0x02853d29, 0x023b1ea4, 0x002b0c33}}},
+ {X: Field{[10]uint32{0x00780ba9, 0x00999c05, 0x02004362, 0x00b9cb83, 0x006f3c8e, 0x024927d9, 0x002c3517, 0x00d5f2ee, 0x0387c232, 0x002e0429}}, Y: Field{[10]uint32{0x018319e2, 0x036eec05, 0x02ef76a2, 0x00c3c6de, 0x034a422c, 0x02af2119, 0x02bac769, 0x0375fc85, 0x00341078, 0x00150d90}}},
+ {X: Field{[10]uint32{0x0134a833, 0x01cb4ffd, 0x00e0d14e, 0x00b63b1f, 0x00d29c76, 0x00e9fbb4, 0x01691eac, 0x023bdc6b, 0x00cedc73, 0x0035c7e2}}, Y: Field{[10]uint32{0x00fbcd99, 0x0139c583, 0x02ad9d2a, 0x0052570e, 0x0197c1b5, 0x02d31449, 0x019d0d97, 0x02b6ba8b, 0x02831aaa, 0x00291f33}}},
+ {X: Field{[10]uint32{0x01147ffc, 0x02675c5b, 0x0217496c, 0x00b331b1, 0x011ad709, 0x018b3978, 0x01d9d896, 0x018a384e, 0x031d4cac, 0x0005c33c}}, Y: Field{[10]uint32{0x006d77a5, 0x02977b33, 0x013a46f9, 0x03b9a549, 0x01adf6c4, 0x0377cc46, 0x01e8baaa, 0x03d61405, 0x0094e741, 0x0013ecee}}},
+ {X: Field{[10]uint32{0x00c316af, 0x0269913b, 0x034d3172, 0x01250216, 0x03bfd48d, 0x032e6956, 0x00cbf66e, 0x017a00e3, 0x02a3b127, 0x00239da4}}, Y: Field{[10]uint32{0x00c504b1, 0x02ad501a, 0x0241134c, 0x029ae291, 0x024fc0bf, 0x0399aa46, 0x0100665c, 0x01497899, 0x01d3af07, 0x003cce70}}},
+ {X: Field{[10]uint32{0x02ca891a, 0x032fbe92, 0x00d40a27, 0x01a79da1, 0x02a07ca8, 0x038addf3, 0x0047002e, 0x017a04cb, 0x03383dda, 0x001747fc}}, Y: Field{[10]uint32{0x035fbb8b, 0x0246006f, 0x039cf5b0, 0x00ce34a5, 0x02fe8438, 0x01d31145, 0x032e62e0, 0x032f6d9d, 0x03acb0de, 0x00286b6c}}},
+ {X: Field{[10]uint32{0x002b8af7, 0x03fdbb0f, 0x003ebd75, 0x01717d50, 0x00375e1c, 0x00deb556, 0x032605da, 0x0319af77, 0x03dda9de, 0x003559b3}}, Y: Field{[10]uint32{0x019c78bd, 0x02b78398, 0x01ed8427, 0x035efedd, 0x00b6007b, 0x016a4293, 0x01598bb2, 0x01b6a5d0, 0x032c7858, 0x0004f888}}},
+ {X: Field{[10]uint32{0x03d96493, 0x0265f40b, 0x01e33764, 0x03389271, 0x033cb85b, 0x02e7b8f6, 0x01ae74b2, 0x00ebc666, 0x00f9cc71, 0x0032f5c2}}, Y: Field{[10]uint32{0x004cb2cb, 0x03e499da, 0x026d655c, 0x02fdae01, 0x01c264f4, 0x02276376, 0x037a5af8, 0x02c2e24c, 0x016c4ca9, 0x003c0687}}},
+ {X: Field{[10]uint32{0x00ed0fe2, 0x02d6e8fc, 0x013f4ad4, 0x02e3e241, 0x03e8d049, 0x014e003c, 0x020bea21, 0x01cf2208, 0x00e4e8ac, 0x003fb87b}}, Y: Field{[10]uint32{0x0226aad6, 0x015a8bba, 0x0154f53d, 0x02c2f6c2, 0x02f9763d, 0x033d0bda, 0x013354a7, 0x0019028d, 0x00ea17c8, 0x0026d482}}},
+ {X: Field{[10]uint32{0x02ee843f, 0x0122f251, 0x01dbb79c, 0x00cc5305, 0x01db916f, 0x032cd6a3, 0x03a6c3af, 0x01214e35, 0x0266de44, 0x0031aabe}}, Y: Field{[10]uint32{0x01505b1b, 0x02bceff4, 0x01bfa7cd, 0x016cc2c4, 0x0234c49d, 0x029b893e, 0x001a7617, 0x0243def2, 0x02b67fc5, 0x00229871}}},
+ {X: Field{[10]uint32{0x01aac415, 0x0199e076, 0x02f1e0a8, 0x03ffc017, 0x02dcbe21, 0x0199aef3, 0x018551e7, 0x007df922, 0x016083d9, 0x002b0d45}}, Y: Field{[10]uint32{0x0334483d, 0x01f59804, 0x014945ac, 0x002e369b, 0x03557741, 0x03bb2289, 0x00318fbe, 0x026beca3, 0x01977710, 0x0035c276}}},
+ {X: Field{[10]uint32{0x01914e18, 0x01a3dc8f, 0x02ef9219, 0x00d25419, 0x017a212e, 0x00eb013d, 0x0055d199, 0x0092d205, 0x021607c0, 0x002a2709}}, Y: Field{[10]uint32{0x03a3c1ab, 0x00867b84, 0x02199ac8, 0x01a10cf7, 0x013569ce, 0x03b636ac, 0x01f092f5, 0x0219b1df, 0x02626127, 0x0015474d}}},
+ {X: Field{[10]uint32{0x00a3f06b, 0x02202347, 0x02a3a72e, 0x016bf491, 0x02b045b9, 0x03ee458b, 0x00018d8c, 0x0267aba5, 0x031db584, 0x00265460}}, Y: Field{[10]uint32{0x01e4d773, 0x021ec5b6, 0x01188fd4, 0x02856c34, 0x0081696e, 0x02ce1202, 0x0027146f, 0x03e19f56, 0x02ecb9d5, 0x003f8e6b}}},
+ {X: Field{[10]uint32{0x001fba96, 0x009a489a, 0x02e8c78d, 0x03a4df34, 0x028615e2, 0x007b3af1, 0x01be26c6, 0x01111e55, 0x03e01456, 0x002dc785}}, Y: Field{[10]uint32{0x03b9e3bf, 0x007142d8, 0x03dc4301, 0x02a7324a, 0x031a6c5b, 0x03bfa554, 0x023cb224, 0x02e32e57, 0x01f1d21f, 0x003af3f7}}},
+ {X: Field{[10]uint32{0x01914074, 0x020fff05, 0x002c22d6, 0x03b5399d, 0x032fe89f, 0x030f52f2, 0x020ef6a1, 0x027fdb51, 0x001edbdd, 0x00385c3e}}, Y: Field{[10]uint32{0x0396e67f, 0x019f9caa, 0x014d2d6f, 0x03af1f7c, 0x03801fa7, 0x03dbe72b, 0x02206e3d, 0x0072b233, 0x00ee0f97, 0x0024fc44}}},
+ {X: Field{[10]uint32{0x02c104f2, 0x01757207, 0x00c73acf, 0x02291f73, 0x014ac8dd, 0x007eaeec, 0x00f04eda, 0x0017157b, 0x0147318d, 0x0010c695}}, Y: Field{[10]uint32{0x03a779e7, 0x0022fcaf, 0x00dea6fd, 0x01c1d72a, 0x027a6f1f, 0x01f2a09e, 0x03a1f045, 0x0068d92b, 0x00ad7b14, 0x000f8c62}}},
+ {X: Field{[10]uint32{0x02203394, 0x03ffb098, 0x01eec383, 0x0245fc2d, 0x013c1932, 0x007e032c, 0x0226ce4a, 0x01d48caf, 0x026ee158, 0x000a679a}}, Y: Field{[10]uint32{0x01301575, 0x00a9df81, 0x010c93bb, 0x0393b4de, 0x0123c9b3, 0x03002815, 0x008e8bf4, 0x028846ff, 0x00ed3ad4, 0x00176edc}}},
+ {X: Field{[10]uint32{0x038934ee, 0x01e32730, 0x0359fb09, 0x026fa80a, 0x01bc99ac, 0x0079fe09, 0x03b5f786, 0x0221a6cb, 0x008ff2b5, 0x0019b6d2}}, Y: Field{[10]uint32{0x00ae6a5f, 0x01adcc3a, 0x0017fc31, 0x03bfac52, 0x006040e7, 0x03da19b1, 0x010e9972, 0x020fe02c, 0x0112b51c, 0x002addb8}}},
+ {X: Field{[10]uint32{0x02274932, 0x02091f49, 0x002a1c3c, 0x02d7fb50, 0x0054c812, 0x022b56dc, 0x03912fa7, 0x00354aec, 0x016b6698, 0x00049661}}, Y: Field{[10]uint32{0x02150383, 0x011631fc, 0x03c2245d, 0x02ee1c31, 0x02d70dfc, 0x015a06f0, 0x03e0557d, 0x02571fb7, 0x013fc678, 0x003ab5f3}}},
+ {X: Field{[10]uint32{0x01f1cf00, 0x01d177ff, 0x02cf9102, 0x0233bfaf, 0x00426996, 0x03494b1f, 0x025272fd, 0x03cf732a, 0x0214cbb0, 0x00140b21}}, Y: Field{[10]uint32{0x03c53c3c, 0x0242654e, 0x0154c10b, 0x0001921c, 0x001b2f45, 0x01abc28e, 0x01d06951, 0x038d5bf6, 0x028807e4, 0x001c46f1}}},
+ {X: Field{[10]uint32{0x02a8d6fd, 0x026f31c2, 0x00c42224, 0x03b05f00, 0x01f43acd, 0x01edadff, 0x01c10734, 0x01900fda, 0x013c323c, 0x00381446}}, Y: Field{[10]uint32{0x02560455, 0x0045f8e2, 0x039f1c85, 0x02c61fe2, 0x00c574d9, 0x0097098c, 0x011d2bcf, 0x023b985b, 0x0271ce42, 0x000840b0}}},
+ {X: Field{[10]uint32{0x01f1dc46, 0x0381d06b, 0x02cb800a, 0x0162d4e2, 0x030abe7c, 0x030ecdf9, 0x03d90c15, 0x0234c8a7, 0x03ae0d76, 0x0032461e}}, Y: Field{[10]uint32{0x01c92c0f, 0x011ccd62, 0x000f8d75, 0x0373c9ff, 0x015714f6, 0x0056b0a7, 0x03d02526, 0x02e92865, 0x0043f9eb, 0x00304c35}}},
+ {X: Field{[10]uint32{0x010fe897, 0x03b2367a, 0x017a16ea, 0x03513a0a, 0x0123dba4, 0x031ac190, 0x003ae701, 0x02cfb8ac, 0x027eb9f3, 0x0016c215}}, Y: Field{[10]uint32{0x010c27c9, 0x006a61ea, 0x02d92aa8, 0x012dd43f, 0x03914d4b, 0x03a3d32e, 0x02e9c726, 0x03246b37, 0x00159079, 0x002b41c7}}},
+ {X: Field{[10]uint32{0x003ba7cc, 0x03d2946d, 0x0286f839, 0x015343aa, 0x038a9cc5, 0x0189a46a, 0x0306a26d, 0x01ea1b3e, 0x008ac581, 0x002b96d9}}, Y: Field{[10]uint32{0x032db311, 0x03a49750, 0x019830d5, 0x004a9bfa, 0x0166e752, 0x0285f18a, 0x00a48c3d, 0x0308aaac, 0x030db665, 0x0007aa2a}}},
+ {X: Field{[10]uint32{0x010178d2, 0x00085222, 0x038f0421, 0x034c9f95, 0x0004f2e0, 0x03326aed, 0x02ea5c5c, 0x0215b663, 0x00d0a092, 0x000ee6eb}}, Y: Field{[10]uint32{0x01bd5052, 0x031977c8, 0x024911fd, 0x011fc606, 0x00b79be4, 0x02a4a6b8, 0x03628d7e, 0x02e8715e, 0x008e9603, 0x002da07a}}},
+ {X: Field{[10]uint32{0x0259fef4, 0x0016a191, 0x02d7ee8d, 0x01e8707d, 0x03f6dfbf, 0x0179056a, 0x022f8279, 0x019b6b54, 0x0180a740, 0x0014937d}}, Y: Field{[10]uint32{0x0252f35f, 0x02ae9c89, 0x039c1ed2, 0x03e78d62, 0x019c72c5, 0x034c0bbc, 0x03c210ca, 0x0307869b, 0x03285f3b, 0x000feb31}}},
+ {X: Field{[10]uint32{0x010e4363, 0x034c2751, 0x00cdff6e, 0x03a9ff1c, 0x01599a34, 0x01202e1d, 0x0109a383, 0x01d7121f, 0x03f2ade7, 0x000b818d}}, Y: Field{[10]uint32{0x0364738e, 0x0228283d, 0x023696da, 0x03bab69c, 0x031aafb7, 0x012b557c, 0x038e903e, 0x01392731, 0x03087e2f, 0x0038f1ba}}},
+ {X: Field{[10]uint32{0x020cc483, 0x0184c2ea, 0x0364bbda, 0x00a089bd, 0x033f7857, 0x021ee509, 0x013fb335, 0x02f4ef90, 0x02adbeaf, 0x003dffb1}}, Y: Field{[10]uint32{0x0208c68d, 0x014c7467, 0x00544c66, 0x00eb967f, 0x03dd4209, 0x018ee5da, 0x00fefd8e, 0x015f1ff2, 0x01748eb4, 0x003d91aa}}},
+ {X: Field{[10]uint32{0x023608be, 0x0362f122, 0x0229929a, 0x025d3609, 0x00cd6eb4, 0x03624b72, 0x02c95b12, 0x01310cad, 0x00e06af6, 0x001d7e53}}, Y: Field{[10]uint32{0x01958a29, 0x0221deec, 0x026c622e, 0x0248b1ef, 0x026e32c8, 0x007b001d, 0x0316b322, 0x0241a9a4, 0x02d0a2b7, 0x002fe1c5}}},
+ {X: Field{[10]uint32{0x03fb4d85, 0x0370733c, 0x0104331b, 0x03a74c04, 0x00f62e07, 0x0321a424, 0x00f039fc, 0x03cf2c31, 0x02de5e0d, 0x001040a5}}, Y: Field{[10]uint32{0x03fecfa0, 0x03dcbb4f, 0x0396c383, 0x01ff2187, 0x02da7426, 0x018996e0, 0x00a82ff8, 0x03765aae, 0x039ca314, 0x003a58d5}}},
+ {X: Field{[10]uint32{0x033ffa05, 0x03ff8035, 0x03b23cbd, 0x02605b3e, 0x0369b4e6, 0x025f699e, 0x03c1703d, 0x0385acbd, 0x02ac05f5, 0x00332093}}, Y: Field{[10]uint32{0x013e8abb, 0x03c428cd, 0x02aa8b8c, 0x006a4abe, 0x03d18c6f, 0x01f1e203, 0x00582182, 0x013be577, 0x01a69f41, 0x0005f0c3}}},
+ {X: Field{[10]uint32{0x026e5820, 0x03fc44df, 0x00d03a83, 0x0193e976, 0x03d2074b, 0x00c5dc1d, 0x00f0b3fd, 0x03b6335e, 0x00ef4d26, 0x002b306c}}, Y: Field{[10]uint32{0x003ce6c3, 0x01432367, 0x04000111, 0x03405a79, 0x014fcd24, 0x03e3efbb, 0x01d2a804, 0x02ba4406, 0x00c68519, 0x001b3391}}},
+ {X: Field{[10]uint32{0x010da922, 0x03f1c6f2, 0x038257c2, 0x0238c61d, 0x01583c2b, 0x00c62e48, 0x034bccf4, 0x00766c1d, 0x036eccce, 0x00072cc1}}, Y: Field{[10]uint32{0x00e373cc, 0x021d2393, 0x03b04c62, 0x03cb3c96, 0x02a6372d, 0x03b37168, 0x0217dfd3, 0x0181760a, 0x036c0058, 0x000a8bc9}}},
+ {X: Field{[10]uint32{0x00fe13f2, 0x02096aa1, 0x039783d5, 0x0085e8e2, 0x008cb3a5, 0x02796900, 0x03ea9750, 0x03d26d61, 0x00512a22, 0x001bbf69}}, Y: Field{[10]uint32{0x038e2424, 0x0251d621, 0x0103954a, 0x03f6f2f5, 0x0360673c, 0x03968a96, 0x032a54ad, 0x00becc7f, 0x02d56dfe, 0x00047513}}},
+ {X: Field{[10]uint32{0x01bf0858, 0x00c30ee7, 0x01cdd51b, 0x03345f7a, 0x02e2fcf1, 0x02a3f665, 0x00931ecd, 0x00de2d73, 0x0219aef4, 0x0011fda5}}, Y: Field{[10]uint32{0x00b5e274, 0x0242251f, 0x03ee9bf8, 0x022b0cea, 0x020d2fa2, 0x0135c359, 0x0057af2a, 0x038f5b69, 0x02a19776, 0x00052555}}},
+ {X: Field{[10]uint32{0x014d28e4, 0x0120cd5e, 0x00d4f8ff, 0x02f0691f, 0x028b2eae, 0x00e86789, 0x01032c51, 0x0375754e, 0x021e97f5, 0x00374f63}}, Y: Field{[10]uint32{0x00467e83, 0x03e7aa93, 0x029c2e0f, 0x02ec0d2f, 0x030c2233, 0x020bafcc, 0x033d7c63, 0x02a0eaa5, 0x000020f6, 0x001e5a2f}}},
+ {X: Field{[10]uint32{0x01e16d78, 0x02b4ad99, 0x01f9197a, 0x02dd414d, 0x027de2a2, 0x00f2d2cc, 0x015737cd, 0x00e9b2f9, 0x00eea19d, 0x000af515}}, Y: Field{[10]uint32{0x029f7f99, 0x03c7f5c4, 0x037549c1, 0x01221f8f, 0x039f7c62, 0x02b503fa, 0x0271c667, 0x009e3cd0, 0x00f0d6a1, 0x00029c2c}}},
+ {X: Field{[10]uint32{0x035a5ee0, 0x00cc6103, 0x02d91047, 0x037c4eb0, 0x02915462, 0x02899e13, 0x02035b29, 0x01d2d136, 0x01bb2a7e, 0x00233f9d}}, Y: Field{[10]uint32{0x0207cd1e, 0x03cb8919, 0x01ca1eef, 0x0289ff6b, 0x00b65c2d, 0x02491550, 0x02226d1c, 0x01f2193d, 0x0056bdc8, 0x001923ff}}},
+ {X: Field{[10]uint32{0x01724d36, 0x02cc9559, 0x02f6e665, 0x01a13c44, 0x005e046a, 0x012d5ef2, 0x03dab832, 0x018b2f0b, 0x00ae19c4, 0x0017bfcd}}, Y: Field{[10]uint32{0x004d68a4, 0x03378568, 0x026b0ccf, 0x020d1f1a, 0x01d551e7, 0x00b80414, 0x0289629d, 0x011fff08, 0x01bb9db3, 0x000663ed}}},
+ {X: Field{[10]uint32{0x00f92b91, 0x0198e7de, 0x02a61042, 0x02e07c62, 0x00a2c51b, 0x01d8c5dd, 0x02db6244, 0x00ec238d, 0x0154f367, 0x0026a951}}, Y: Field{[10]uint32{0x01384806, 0x0235e118, 0x006fa75c, 0x01197c97, 0x011d167b, 0x01cad42f, 0x0222faf2, 0x01d0134b, 0x03ad4a6e, 0x0021d128}}},
+ {X: Field{[10]uint32{0x03f259e0, 0x032d4e97, 0x0165a955, 0x02a2e75d, 0x03ac88a2, 0x037c1bae, 0x007463c5, 0x0165c37f, 0x01758cfb, 0x0012e0dd}}, Y: Field{[10]uint32{0x028df208, 0x0069793e, 0x02aa9917, 0x01aaadea, 0x02ed7076, 0x0048cf7d, 0x0074396a, 0x0294fdb9, 0x0142bda1, 0x0021d647}}},
+ {X: Field{[10]uint32{0x02428bb1, 0x03317bdd, 0x00428226, 0x009615cd, 0x03c49dc7, 0x01671f3b, 0x03f5a579, 0x03e4399c, 0x00b49134, 0x001752dd}}, Y: Field{[10]uint32{0x02d89425, 0x001e83ef, 0x03cfcb1f, 0x02efc670, 0x00cdc2f6, 0x00036368, 0x026bf3f1, 0x03b856af, 0x0110f466, 0x0006caa2}}},
+ {X: Field{[10]uint32{0x03cad2d8, 0x00a8c255, 0x002b2570, 0x0105eae7, 0x002d4754, 0x018bb9a0, 0x013bafaf, 0x01133976, 0x02c0c552, 0x003542f8}}, Y: Field{[10]uint32{0x0162f583, 0x00735700, 0x0144ef24, 0x03c82f11, 0x005a4dc0, 0x03aa9779, 0x01854617, 0x026ad300, 0x024c6ee8, 0x003f881f}}},
+ {X: Field{[10]uint32{0x0075bff1, 0x0280d384, 0x032e9a1d, 0x03c505b6, 0x02f93bbf, 0x02fe616a, 0x02489155, 0x02ce1193, 0x01ce8e0e, 0x002ec3d8}}, Y: Field{[10]uint32{0x037b7d0e, 0x03dbefed, 0x00412631, 0x0184c51d, 0x034e6b05, 0x02f2c23b, 0x02a1032c, 0x02c37cc3, 0x03152dde, 0x000004e9}}},
+ {X: Field{[10]uint32{0x01dcb2f5, 0x00cafe13, 0x03d22886, 0x02785366, 0x0263e22b, 0x00bf17be, 0x00e41fb2, 0x0006c85c, 0x01db473f, 0x000f39af}}, Y: Field{[10]uint32{0x00e0922e, 0x01e896ab, 0x01edf8d4, 0x023c6eb0, 0x029a8426, 0x0043714b, 0x02b73081, 0x034a6109, 0x0057f4b3, 0x0010c218}}},
+ {X: Field{[10]uint32{0x038f81aa, 0x01d182ec, 0x03c85bd3, 0x03c695b0, 0x02bbcbbf, 0x01f36dd7, 0x00b5490c, 0x0202ff24, 0x014aef16, 0x003ff7ec}}, Y: Field{[10]uint32{0x02f4af0d, 0x005bb87a, 0x00a547c2, 0x031ceef3, 0x0124f228, 0x02522d69, 0x02880d0e, 0x03c6788c, 0x01ef02f1, 0x003cc117}}},
+ {X: Field{[10]uint32{0x0223172c, 0x03e93020, 0x000fed59, 0x000941eb, 0x02c828d1, 0x008cc2bb, 0x026eb60a, 0x00993604, 0x02e19ab4, 0x0006b07c}}, Y: Field{[10]uint32{0x00e18bf8, 0x03c64db6, 0x027f5133, 0x018e06d3, 0x02d8fae0, 0x020363c0, 0x015e3a8f, 0x021abec8, 0x00bc3394, 0x001d8da9}}},
+ {X: Field{[10]uint32{0x01ec228e, 0x01987b2b, 0x009a22d6, 0x02d81f9b, 0x01b1a1a6, 0x0083c8ce, 0x002957aa, 0x03a26985, 0x000a0740, 0x001494d3}}, Y: Field{[10]uint32{0x0261b669, 0x02a5f3cc, 0x022f1365, 0x00d6ba00, 0x02e1a318, 0x02213ebe, 0x02c2fa5d, 0x03226707, 0x02bafe41, 0x0033dbf9}}},
+ {X: Field{[10]uint32{0x011b09eb, 0x03d91899, 0x0278d5b9, 0x00b25928, 0x0104f36f, 0x00df4cac, 0x00dccd61, 0x00b0b1e3, 0x02857cd2, 0x00102480}}, Y: Field{[10]uint32{0x01031d0d, 0x0384b10b, 0x025fb3bd, 0x023ae2a1, 0x01f6b773, 0x013c5824, 0x01fef1bf, 0x00f8fd9b, 0x0373a5fa, 0x00103253}}},
+ {X: Field{[10]uint32{0x03029289, 0x006f1466, 0x019e70c8, 0x030901a7, 0x0225a5b3, 0x021036c5, 0x02ac6e4e, 0x0336c852, 0x00334b9c, 0x0022c74f}}, Y: Field{[10]uint32{0x0223e853, 0x035b6d57, 0x006e5630, 0x027c517e, 0x03802076, 0x01e0889d, 0x01658985, 0x0256647f, 0x00642acf, 0x000453f5}}},
+ {X: Field{[10]uint32{0x00a242bd, 0x01ce5e7d, 0x020fd7e4, 0x0398f4d1, 0x008a6055, 0x019058b7, 0x006bbd20, 0x03c4e967, 0x0260b7c7, 0x002b8537}}, Y: Field{[10]uint32{0x0065a412, 0x031a8f93, 0x00ef16ca, 0x039ebe80, 0x03afccfe, 0x01dbc844, 0x00463e23, 0x028cce85, 0x0089cdb5, 0x0022e581}}},
+ {X: Field{[10]uint32{0x02d3e3d7, 0x020e1b8b, 0x02420078, 0x01204df7, 0x03b81539, 0x037f76eb, 0x00d4e395, 0x0179b0fa, 0x004099c9, 0x003cdfc7}}, Y: Field{[10]uint32{0x03fb3606, 0x003028ec, 0x01af5031, 0x004413d4, 0x030a5644, 0x033dd95d, 0x0283d769, 0x02b4d2c8, 0x008082f6, 0x0007ca40}}},
+ {X: Field{[10]uint32{0x03017a84, 0x00fb2c86, 0x005dfaa5, 0x00cd99b4, 0x00a13f89, 0x030925af, 0x0041c1d3, 0x022270d1, 0x03ae9636, 0x0007ec1f}}, Y: Field{[10]uint32{0x037753c0, 0x03e32718, 0x03cb7b8d, 0x011bea5f, 0x0358e6da, 0x01ffd546, 0x0368934b, 0x015dab12, 0x01c93931, 0x0004a062}}},
+ {X: Field{[10]uint32{0x0015f3cc, 0x0365ca12, 0x0371552b, 0x0087435a, 0x032afb07, 0x02e88ae9, 0x00ea2b51, 0x03b3b520, 0x0354e112, 0x0011347a}}, Y: Field{[10]uint32{0x02ed7043, 0x02a6cabc, 0x0288e3c3, 0x02df56db, 0x02ea1855, 0x035e4e3e, 0x0273e02e, 0x0149bc49, 0x0328574c, 0x0029b84e}}},
+ {X: Field{[10]uint32{0x0103238e, 0x02559168, 0x03cbfd87, 0x0229d669, 0x00ec9491, 0x01dbdef4, 0x02311cff, 0x02e1d5ff, 0x032e5732, 0x001a6025}}, Y: Field{[10]uint32{0x03d26a5e, 0x03ac18d8, 0x03c262d2, 0x03385f16, 0x02ac4a0f, 0x024be826, 0x0376b24a, 0x02450c85, 0x00324ffb, 0x001ee7fa}}},
+ {X: Field{[10]uint32{0x00efcfa3, 0x00c09554, 0x0379bf70, 0x018a7616, 0x01a8566a, 0x03d901a8, 0x019639c4, 0x02c79379, 0x009d405b, 0x001a8ea3}}, Y: Field{[10]uint32{0x02c038ba, 0x023799b2, 0x0124d0ce, 0x03ae7546, 0x002e0f59, 0x025ad1e9, 0x01b408e1, 0x03412a3f, 0x02e87b22, 0x000fa2ae}}},
+ {X: Field{[10]uint32{0x0012ed0b, 0x00e42d91, 0x036831da, 0x013251b0, 0x03bfb680, 0x02f3e809, 0x01844c4d, 0x01192afd, 0x00d41598, 0x003fcc42}}, Y: Field{[10]uint32{0x03d0a317, 0x01cb51f2, 0x03515dc0, 0x03408672, 0x0011f5d4, 0x01c15192, 0x02abe857, 0x03422571, 0x01e33ee1, 0x00201559}}},
+ {X: Field{[10]uint32{0x01517d73, 0x024c93a5, 0x011bb213, 0x01406012, 0x03499727, 0x00d772d6, 0x0134e533, 0x0126acf8, 0x036a2f85, 0x0003b93d}}, Y: Field{[10]uint32{0x0071a838, 0x0204125c, 0x0075c8fe, 0x01f628a4, 0x03830736, 0x032509d9, 0x0189e899, 0x00ac45a2, 0x01672240, 0x001af640}}},
+ {X: Field{[10]uint32{0x0053e0a4, 0x023d4693, 0x01966ac7, 0x00163342, 0x00230c63, 0x032eae83, 0x023b7205, 0x02563cda, 0x01cb01ca, 0x0030845d}}, Y: Field{[10]uint32{0x0072bf51, 0x008da233, 0x02a44ea9, 0x03acbff9, 0x01585a02, 0x03021760, 0x02a0ecd2, 0x0282bc95, 0x03a67a7c, 0x001a8860}}},
+ {X: Field{[10]uint32{0x0237d6fc, 0x0272fce6, 0x01292c40, 0x030317cb, 0x03953141, 0x01f2ae46, 0x0246e39e, 0x02ce60d3, 0x0008a9a0, 0x000b5793}}, Y: Field{[10]uint32{0x01c6e15e, 0x0190119d, 0x03054d61, 0x0087713b, 0x004b5127, 0x024017b4, 0x0234f37e, 0x00c7e824, 0x01c531a3, 0x001d5a6e}}},
+ {X: Field{[10]uint32{0x0315dbc3, 0x030a932e, 0x01c26ef7, 0x019dade6, 0x015d573b, 0x00c5d97c, 0x00124086, 0x03ac2730, 0x0041bfbb, 0x0018c0b0}}, Y: Field{[10]uint32{0x02491025, 0x02bc209f, 0x0063f915, 0x02201279, 0x01a1e514, 0x0024cba4, 0x00ddfedd, 0x010a82b1, 0x020f67ce, 0x000caa3c}}},
+ {X: Field{[10]uint32{0x01934e2d, 0x00d98481, 0x0308ca3b, 0x0330b7aa, 0x005b6c67, 0x027be6e5, 0x01c9cfb8, 0x03823bdf, 0x016c198d, 0x000f9854}}, Y: Field{[10]uint32{0x037520d9, 0x01b818c0, 0x00dbee95, 0x03b41239, 0x005692f3, 0x003d89e1, 0x03849447, 0x01c413dd, 0x03f74d5f, 0x0007bfee}}},
+ {X: Field{[10]uint32{0x0142fe30, 0x02ac2bb9, 0x005a7d8a, 0x0064422c, 0x01b89892, 0x03ccc148, 0x0335a378, 0x00d3492a, 0x02b2d7d1, 0x0028022e}}, Y: Field{[10]uint32{0x01b475a1, 0x027f8c54, 0x01de6be0, 0x03aa0ae6, 0x03f5454a, 0x02701790, 0x03ec2fde, 0x001b9518, 0x03ec903c, 0x001de8dd}}},
+ {X: Field{[10]uint32{0x0224005f, 0x02645fa9, 0x022f8c38, 0x019c05bc, 0x03287114, 0x00b90c05, 0x00f42b80, 0x0258aa54, 0x0348b928, 0x001de0bf}}, Y: Field{[10]uint32{0x03608c15, 0x0322263e, 0x03c18c78, 0x033d6c8a, 0x008ad2c9, 0x026ebf8c, 0x01b766db, 0x00f832b4, 0x024938a0, 0x001e3c8f}}},
+ {X: Field{[10]uint32{0x03ddcfc2, 0x019dbe09, 0x03c20d20, 0x01c633fb, 0x02f6ffbe, 0x03225bba, 0x0019d648, 0x02d13f44, 0x0278c26a, 0x0008ced2}}, Y: Field{[10]uint32{0x033b655c, 0x00fb679d, 0x037b518f, 0x0108b825, 0x01f553d3, 0x020a1337, 0x03ddc1a4, 0x037e4121, 0x0036d976, 0x00379421}}},
+ {X: Field{[10]uint32{0x01b8bb0e, 0x0177831c, 0x02a0792c, 0x008ca57c, 0x023f7a46, 0x03630cd0, 0x03d7aed2, 0x03524f60, 0x022906ee, 0x0020052a}}, Y: Field{[10]uint32{0x03583d92, 0x01b75543, 0x02444f3e, 0x02be0687, 0x01695f39, 0x0215aa78, 0x030caba4, 0x02f26c45, 0x029df2a5, 0x0037161c}}},
+ {X: Field{[10]uint32{0x03bbdfce, 0x012ad676, 0x012c1b28, 0x03abafab, 0x0060882a, 0x02f18723, 0x03050ce7, 0x02b9c46e, 0x010b233d, 0x0022807a}}, Y: Field{[10]uint32{0x0291fdb0, 0x0376eb5d, 0x01cf4ca4, 0x03bc8294, 0x03b34b72, 0x00b2569d, 0x0006cc41, 0x01a4fa4b, 0x035dc9e3, 0x001603b5}}},
+ {X: Field{[10]uint32{0x02e733b4, 0x02e48c86, 0x011a44cb, 0x006825af, 0x03a56988, 0x020ae81f, 0x026372d5, 0x024561c3, 0x034924a2, 0x00014288}}, Y: Field{[10]uint32{0x038cc751, 0x02af3699, 0x03cde3ed, 0x0038bdf3, 0x03aa21d0, 0x0111bf38, 0x01d8e2fa, 0x0007529e, 0x0220a977, 0x001a50f0}}},
+ {X: Field{[10]uint32{0x02aa6d83, 0x00821ebb, 0x015cecbd, 0x01b6a299, 0x02b51b8f, 0x0209903b, 0x0307bd61, 0x01d13dea, 0x03578c96, 0x0032fd24}}, Y: Field{[10]uint32{0x028d4bf0, 0x03c1f13b, 0x011d5e75, 0x02961f41, 0x0129e79f, 0x01212813, 0x00bdb1c9, 0x036e6501, 0x02f45711, 0x001346cd}}},
+ {X: Field{[10]uint32{0x028efe38, 0x026e9c62, 0x03d89ad5, 0x007fe93a, 0x007c63d1, 0x00a2cc76, 0x0164c2e8, 0x034a5a34, 0x0175e4ed, 0x001cdecf}}, Y: Field{[10]uint32{0x01f31586, 0x0208ad4d, 0x03439e7c, 0x01b74e1d, 0x02ff1ebf, 0x03720c9e, 0x027002ee, 0x03945514, 0x03a18aa8, 0x003b1fde}}},
+ {X: Field{[10]uint32{0x0038813a, 0x008bff2b, 0x00b8bb7e, 0x03166aaa, 0x028812e0, 0x035ed105, 0x03f46d69, 0x00e6b9b1, 0x00642519, 0x000a72ca}}, Y: Field{[10]uint32{0x00a2e6e9, 0x02edcebb, 0x038f0528, 0x01477af4, 0x03b5f1eb, 0x01043fc6, 0x02d77c8b, 0x02cb1725, 0x000a7c98, 0x0030fb0a}}},
+ {X: Field{[10]uint32{0x0228fe9d, 0x01653f17, 0x01d352c9, 0x015091d0, 0x03f36689, 0x0065e553, 0x00dffa25, 0x00bef791, 0x02592428, 0x0006162a}}, Y: Field{[10]uint32{0x02d4bd46, 0x03b0a074, 0x0248596f, 0x03512f9d, 0x00be50b1, 0x01f92ad3, 0x03d7879a, 0x027eae7e, 0x01d6b0a6, 0x00283a24}}},
+ {X: Field{[10]uint32{0x022eb75c, 0x03a45d21, 0x004fc2a9, 0x02374d1b, 0x0126c137, 0x013c24ba, 0x03ae314d, 0x003abd9e, 0x00581a42, 0x001cb39f}}, Y: Field{[10]uint32{0x0025ae1c, 0x012f781d, 0x02ff3628, 0x007fdd18, 0x038bec12, 0x002162ee, 0x02236ae3, 0x00f833db, 0x037a5a9c, 0x0008ca45}}},
+ {X: Field{[10]uint32{0x03112903, 0x035bd1ab, 0x0031517b, 0x02f403b3, 0x00a3f9dc, 0x02777e6f, 0x03dcb830, 0x02db492a, 0x025e5dfa, 0x000d3072}}, Y: Field{[10]uint32{0x02a1f803, 0x02a01ec8, 0x021a27ac, 0x0093ad26, 0x0080088a, 0x02962682, 0x03c4aeb6, 0x03325c0d, 0x02adc931, 0x0024fdbf}}},
+ {X: Field{[10]uint32{0x00392c36, 0x02e83749, 0x02243284, 0x011e7389, 0x028d348b, 0x03b8f59d, 0x003100cc, 0x01619fe0, 0x004a80af, 0x0001f16b}}, Y: Field{[10]uint32{0x02fc5828, 0x003a9019, 0x01b86337, 0x03faad61, 0x00a3201c, 0x03a9eae1, 0x03db23d1, 0x03991cc7, 0x0164903b, 0x002911a2}}},
+ {X: Field{[10]uint32{0x00363caa, 0x012dfb13, 0x00b35e59, 0x00f69d1b, 0x010b57bf, 0x01a0ffdf, 0x018851c8, 0x01dca06a, 0x0113244c, 0x002f8b77}}, Y: Field{[10]uint32{0x02580fa2, 0x0391648f, 0x01f257df, 0x02151e56, 0x018c45ea, 0x02f1ee99, 0x033e5b92, 0x028b3c73, 0x01390af8, 0x002b6dd6}}},
+ {X: Field{[10]uint32{0x02c13806, 0x0285d923, 0x039b7901, 0x00ae0665, 0x037f7b22, 0x018b7f67, 0x0244471d, 0x03bf7292, 0x036a3b3b, 0x001b7b87}}, Y: Field{[10]uint32{0x002e5651, 0x02e66657, 0x01ab6af3, 0x00c43d90, 0x021a9a24, 0x02c04c48, 0x000356ce, 0x03dbffe3, 0x01014fa5, 0x001767a1}}},
+ {X: Field{[10]uint32{0x01e68c19, 0x039bf9e7, 0x03c3180e, 0x01afdaeb, 0x02c76438, 0x01ec4544, 0x00355b3a, 0x023b5d24, 0x00e68e2c, 0x00057c99}}, Y: Field{[10]uint32{0x00326aba, 0x00fe315c, 0x0374eddf, 0x02ae9daa, 0x03c41291, 0x01c73ca6, 0x01053fd3, 0x03d023be, 0x0126302b, 0x002415d3}}},
+ {X: Field{[10]uint32{0x029c91a3, 0x026017af, 0x036660df, 0x01ec60fc, 0x016d4c5e, 0x02a61323, 0x0192b785, 0x022433a9, 0x03e904cc, 0x000f5f3e}}, Y: Field{[10]uint32{0x03f62808, 0x01f7f979, 0x00d12682, 0x01239d8c, 0x0042b30b, 0x01aa12d5, 0x0351694f, 0x00196be3, 0x01d44ea7, 0x00355737}}},
+ {X: Field{[10]uint32{0x003a1e10, 0x00773667, 0x02e1445b, 0x02c1ffaf, 0x011ec637, 0x0125c480, 0x035dd3e7, 0x014771ea, 0x03f90d79, 0x00150e22}}, Y: Field{[10]uint32{0x02e5a547, 0x03bfd52a, 0x03dcf6fb, 0x030aa75b, 0x03725f99, 0x03d58348, 0x008738b3, 0x00a97e6f, 0x038825dc, 0x0005ecd9}}},
+ {X: Field{[10]uint32{0x02088313, 0x03c065da, 0x03c94be5, 0x03154818, 0x00425327, 0x024a05e5, 0x00a0d2cc, 0x02029652, 0x03dd9a00, 0x000f08a7}}, Y: Field{[10]uint32{0x02926a1c, 0x036ee34a, 0x01d8d3a8, 0x01c7fb48, 0x01192f0a, 0x00dcf141, 0x0083d12c, 0x020ed2be, 0x0395a84f, 0x000d25d5}}},
+ {X: Field{[10]uint32{0x03c63210, 0x00149c49, 0x02b26157, 0x0138dbc6, 0x011974e7, 0x03ea35eb, 0x0291f368, 0x01669b85, 0x036ee146, 0x002d84ae}}, Y: Field{[10]uint32{0x00df5bb4, 0x0181cb29, 0x00dc223b, 0x005fa382, 0x02052408, 0x0357a3aa, 0x0077733d, 0x0337c7e5, 0x005dd623, 0x00016523}}},
+ {X: Field{[10]uint32{0x0305f613, 0x037bf81e, 0x03d64d2e, 0x0108bbec, 0x03ae381e, 0x024038ce, 0x0341ed3e, 0x003750a0, 0x01855447, 0x003b15b9}}, Y: Field{[10]uint32{0x015e9c45, 0x03d9b3ca, 0x016d9df8, 0x00334ec5, 0x0286effe, 0x01e2f39d, 0x03f2bd65, 0x038c237f, 0x0151acf6, 0x003b35fc}}},
+ {X: Field{[10]uint32{0x0011f80d, 0x039d23ff, 0x0308f25e, 0x02bf9353, 0x02a565ee, 0x026c56c9, 0x000c8baf, 0x027e3ef6, 0x03ca85ff, 0x00006fbc}}, Y: Field{[10]uint32{0x012914f9, 0x0315a0fe, 0x03135272, 0x002b7a22, 0x01125f0a, 0x006f2262, 0x014b8927, 0x0125ee86, 0x00bb96be, 0x003f8098}}},
+ {X: Field{[10]uint32{0x0107c20a, 0x0020fa64, 0x0325168a, 0x03968bae, 0x010c4b27, 0x034afd2b, 0x00e42653, 0x01a38aa4, 0x004a522b, 0x0006f6eb}}, Y: Field{[10]uint32{0x00d63ea1, 0x00a10e54, 0x03a9e3d2, 0x009c38fe, 0x025b09e1, 0x00ba2c81, 0x00467b9d, 0x01fe8004, 0x03263ede, 0x00135838}}},
+ {X: Field{[10]uint32{0x0262fc84, 0x027aab4d, 0x038373bd, 0x01ffa252, 0x026e601b, 0x02cb0b08, 0x01e0f8b1, 0x02e36954, 0x039a567a, 0x003a40cb}}, Y: Field{[10]uint32{0x00eb70e9, 0x00c65b5d, 0x0400064e, 0x0252372c, 0x0121d609, 0x02bf783c, 0x00b0a49d, 0x006bce83, 0x03e647d2, 0x0002b158}}},
+ {X: Field{[10]uint32{0x00f79c75, 0x0241f0c2, 0x011a9fda, 0x03af2281, 0x03a9608d, 0x015b8d19, 0x0108044f, 0x03dd2295, 0x02ec044a, 0x001f39d1}}, Y: Field{[10]uint32{0x02aa426a, 0x0103f57c, 0x017d5406, 0x02814beb, 0x012c6b8f, 0x01bcf006, 0x03bbb804, 0x02f48ef9, 0x01c13166, 0x0023c21e}}},
+ {X: Field{[10]uint32{0x0359eecd, 0x01b7932e, 0x01fc906c, 0x032fbcda, 0x0068862d, 0x01b34c80, 0x01298564, 0x01b47282, 0x038919de, 0x00383549}}, Y: Field{[10]uint32{0x02886b20, 0x028a51b2, 0x03ce88cd, 0x03c74faf, 0x01f46680, 0x025d02f5, 0x03547912, 0x03764293, 0x039db4eb, 0x00263d19}}},
+ {X: Field{[10]uint32{0x025ca397, 0x004eba9f, 0x01f1800a, 0x02159070, 0x02e28c8b, 0x00bc8222, 0x000a4d48, 0x012d6110, 0x01cdcf1f, 0x0031a891}}, Y: Field{[10]uint32{0x021ac628, 0x0399da25, 0x01bf3605, 0x02a0cc08, 0x01cb11ec, 0x02d79b34, 0x00ff944a, 0x032c2656, 0x03b9f8f2, 0x0034c1b6}}},
+ {X: Field{[10]uint32{0x0295c910, 0x00a1b9cd, 0x02b06a1b, 0x00652837, 0x024ade09, 0x026661ff, 0x0334acec, 0x03c20a87, 0x008d9710, 0x003fe55b}}, Y: Field{[10]uint32{0x03bcc306, 0x008f4304, 0x0239fb78, 0x03b2c38b, 0x01a8086a, 0x0362a4dd, 0x028c832f, 0x03f5187f, 0x012b866a, 0x003eafb1}}},
+ {X: Field{[10]uint32{0x02c23af0, 0x00485489, 0x00cc73ff, 0x0059bd2b, 0x025cef12, 0x0313709d, 0x0344fe45, 0x01813343, 0x024a0d1a, 0x00152776}}, Y: Field{[10]uint32{0x000631ef, 0x03dd9784, 0x00381a33, 0x025d58b1, 0x01166fec, 0x02aec578, 0x02eede71, 0x02a0980d, 0x03c0e05b, 0x001c78eb}}},
+ {X: Field{[10]uint32{0x02776416, 0x01f99127, 0x01723207, 0x004bb708, 0x016070dd, 0x037647e7, 0x01896e82, 0x01cf339a, 0x03090215, 0x0019b4f7}}, Y: Field{[10]uint32{0x03b46d5d, 0x03c9e756, 0x01ebc25f, 0x0327aa4c, 0x0009ccf1, 0x02bc162f, 0x0029dd3e, 0x03b8fb65, 0x021359a2, 0x0024e605}}},
+ {X: Field{[10]uint32{0x01e4f8d9, 0x01c0bd5e, 0x01be737b, 0x02083eb8, 0x028a4d7a, 0x01713c61, 0x013ede5a, 0x018e1a71, 0x01bc0942, 0x00186f4f}}, Y: Field{[10]uint32{0x0082e780, 0x015cad38, 0x02caac1b, 0x020788cd, 0x00502aee, 0x003be923, 0x01ddf540, 0x013d24b2, 0x0247e27d, 0x0023015a}}},
+ {X: Field{[10]uint32{0x00178f4e, 0x01bcee60, 0x0000647d, 0x01dbe99f, 0x004ef20c, 0x005236c7, 0x002f7849, 0x036aa49c, 0x03464a31, 0x00229b62}}, Y: Field{[10]uint32{0x028f7407, 0x019f2eab, 0x00d8ccfe, 0x02864efd, 0x03c31309, 0x02081451, 0x0082f9e3, 0x01d8065b, 0x02eee408, 0x00347d01}}},
+ {X: Field{[10]uint32{0x022e573e, 0x03f47924, 0x02b1b809, 0x01096b3d, 0x0137893b, 0x03b76607, 0x00aa90e1, 0x021105c0, 0x029399eb, 0x0038ad83}}, Y: Field{[10]uint32{0x0219f7af, 0x004fba93, 0x029ed635, 0x02b42003, 0x01bd8a38, 0x02cd75e2, 0x0209dc0a, 0x020a6a2b, 0x025fe394, 0x001a2831}}},
+ {X: Field{[10]uint32{0x00f55e85, 0x03c9b375, 0x00574ac6, 0x031cad56, 0x01fc23b8, 0x0277e950, 0x0316cad9, 0x03f24993, 0x030fe85c, 0x00131d80}}, Y: Field{[10]uint32{0x012b7bb6, 0x0166fa28, 0x000902d9, 0x02aa62bb, 0x01e98c63, 0x006157df, 0x039a5745, 0x02d3b323, 0x02d89a31, 0x00112cd4}}},
+ {X: Field{[10]uint32{0x03baed2e, 0x0151d897, 0x01580fe4, 0x025cd98f, 0x002f0e89, 0x00e304e8, 0x022c9ef5, 0x00f0d42a, 0x02a35910, 0x00372ea5}}, Y: Field{[10]uint32{0x036544b4, 0x00530885, 0x003deb4d, 0x034b6cb6, 0x00b13053, 0x016fedcf, 0x01f91bd7, 0x01a62b7a, 0x005f0727, 0x002be788}}},
+ {X: Field{[10]uint32{0x02dc7883, 0x02cacc7c, 0x02a433b5, 0x01ffa6d9, 0x03e68242, 0x0327b71c, 0x03d3e036, 0x03fe6b2f, 0x03d8f75f, 0x003f4125}}, Y: Field{[10]uint32{0x00d62d79, 0x002eb7ff, 0x0213509c, 0x022625b7, 0x01445762, 0x002f792a, 0x03fb2fcc, 0x0041deac, 0x00b69c8d, 0x00348c05}}},
+ {X: Field{[10]uint32{0x01f48040, 0x0331bb7b, 0x01077542, 0x026bae28, 0x02e70500, 0x013a0fe7, 0x011b7795, 0x03904d0f, 0x01bb0b38, 0x0016ed00}}, Y: Field{[10]uint32{0x02599c14, 0x020afe20, 0x03a5ee7a, 0x01cc03b3, 0x00ca9445, 0x01e38f2a, 0x00ea6283, 0x004e47da, 0x00b5acec, 0x0010c7f3}}},
+ {X: Field{[10]uint32{0x00bb283b, 0x00b6d6d2, 0x01d20a26, 0x00119ef1, 0x023acac7, 0x00d70ddf, 0x0341c38b, 0x01ab62c9, 0x024ff9cc, 0x0007ea5a}}, Y: Field{[10]uint32{0x02b963eb, 0x02a3fafb, 0x02ac8bfc, 0x031c6c88, 0x036404dc, 0x0278527a, 0x02af7f1f, 0x016bf3c7, 0x0092ffc6, 0x0030d123}}},
+ {X: Field{[10]uint32{0x002f86ea, 0x00c8a459, 0x00f11614, 0x0080bfb2, 0x03697ea4, 0x01c74298, 0x02384531, 0x014749e9, 0x02ef1ae5, 0x000254d2}}, Y: Field{[10]uint32{0x03729591, 0x00aab03b, 0x03849643, 0x0084b2ff, 0x0346fd7f, 0x0284fa5b, 0x0148a4ec, 0x01f740cf, 0x003c3883, 0x00334325}}},
+ {X: Field{[10]uint32{0x001b8ceb, 0x000ca834, 0x038b7b57, 0x02fc06a3, 0x02138440, 0x02a93fd2, 0x018d08f3, 0x000e42f2, 0x03ed4330, 0x003a9cab}}, Y: Field{[10]uint32{0x0058663e, 0x0299b4b6, 0x0280925e, 0x0112145c, 0x00af4fb0, 0x03ab9fa5, 0x02856a44, 0x00b30a72, 0x018c0369, 0x00385d37}}},
+ {X: Field{[10]uint32{0x00122327, 0x03e1b517, 0x01fa9a01, 0x0188d75e, 0x03165698, 0x02fce874, 0x03801f2a, 0x0148e980, 0x01343ca2, 0x000e564d}}, Y: Field{[10]uint32{0x0153dd96, 0x00b80026, 0x0175b45d, 0x021eb1b2, 0x0142a5b8, 0x0111d449, 0x01cbf0e9, 0x01b72154, 0x03e92cd7, 0x002b34f8}}},
+ {X: Field{[10]uint32{0x002d4721, 0x038f827b, 0x02a3f246, 0x03e1c9d0, 0x034f74ef, 0x037eed46, 0x027d4b53, 0x01683da5, 0x022a375e, 0x00355eca}}, Y: Field{[10]uint32{0x013ed306, 0x03495443, 0x03b036a0, 0x0251c6b9, 0x01c0aeeb, 0x01209e07, 0x02c20913, 0x01fb0c43, 0x00484d10, 0x0004b5be}}},
+ {X: Field{[10]uint32{0x002f1082, 0x02eabd91, 0x0119c59b, 0x023f5480, 0x01fc5def, 0x03804d75, 0x02c781af, 0x03bbd839, 0x03c51b99, 0x00027cb7}}, Y: Field{[10]uint32{0x0320dd0d, 0x022d5b96, 0x01a77e0f, 0x01626789, 0x017ad1d7, 0x02a5bf83, 0x03ca6e4e, 0x00c123e8, 0x0162fd27, 0x00023c82}}},
+ {X: Field{[10]uint32{0x0229884b, 0x00b06f40, 0x0216a935, 0x01d96316, 0x01afa587, 0x03037b68, 0x0336c1f9, 0x03244d26, 0x03c6f030, 0x002c70c2}}, Y: Field{[10]uint32{0x02ecdfc3, 0x00e43187, 0x019f1939, 0x009fd4ed, 0x035563e7, 0x028b8a32, 0x01c63d18, 0x02223735, 0x01d16e77, 0x003e2916}}},
+ {X: Field{[10]uint32{0x01c6e53b, 0x03866369, 0x002eb665, 0x00ce14f8, 0x02305429, 0x02ed7499, 0x01ad6f91, 0x0348dc4b, 0x03e740ca, 0x00022998}}, Y: Field{[10]uint32{0x035c1e99, 0x007bb9ae, 0x03812c0c, 0x03f8081d, 0x000786a8, 0x00ec2463, 0x00cf7116, 0x0174576b, 0x03995117, 0x003881ac}}},
+ {X: Field{[10]uint32{0x012941a1, 0x02aa2d2a, 0x03696fe1, 0x03a09f98, 0x005f4a5a, 0x01b302c0, 0x00fac0a7, 0x0247bbd1, 0x02cbe0ca, 0x000ac255}}, Y: Field{[10]uint32{0x006cffd2, 0x00aa588e, 0x03423ddf, 0x03fb68a7, 0x033f84b8, 0x018989f8, 0x02e1e110, 0x013abe43, 0x03a8dd45, 0x0028c79b}}},
+ {X: Field{[10]uint32{0x0262c3bd, 0x00a449b9, 0x01330d54, 0x02001a83, 0x006b0099, 0x03847ed3, 0x02381df7, 0x0325c3ad, 0x01517a2a, 0x00380510}}, Y: Field{[10]uint32{0x008dfcee, 0x02e8d810, 0x03a1e7f4, 0x00d12218, 0x03aeb3fd, 0x0234636f, 0x01639341, 0x03203085, 0x029ba691, 0x00208e33}}},
+ {X: Field{[10]uint32{0x02c86c37, 0x008568df, 0x02eba08b, 0x035c78a2, 0x02f344e0, 0x01682d99, 0x0316c530, 0x00bccf2b, 0x013e8b06, 0x0002f8c8}}, Y: Field{[10]uint32{0x0151cd1f, 0x02ca725f, 0x00adc3f1, 0x00f7476c, 0x03550fb8, 0x014a8990, 0x03956838, 0x00e29335, 0x03baeaca, 0x00154948}}},
+ {X: Field{[10]uint32{0x01e8ff2b, 0x03859faa, 0x030abc4f, 0x01b6d7ac, 0x001c18eb, 0x0396389d, 0x03aa1db9, 0x02f593f1, 0x03b6bfbf, 0x00188ce4}}, Y: Field{[10]uint32{0x00e42cd3, 0x03537f8d, 0x00b500ba, 0x025ed4ac, 0x031339a1, 0x028edee5, 0x025e316f, 0x016fca80, 0x0174f0fd, 0x001f0390}}},
+ {X: Field{[10]uint32{0x01cfe97a, 0x00856c43, 0x0326fbc6, 0x02aa2bea, 0x01bffe79, 0x0233d02f, 0x01eb624b, 0x007a1d9a, 0x0302dd0a, 0x0036b7ad}}, Y: Field{[10]uint32{0x03253490, 0x030e37c5, 0x00bb48fb, 0x026686ac, 0x025a5225, 0x0334e6f2, 0x0260acb8, 0x026d04b5, 0x00cae4c2, 0x0024c224}}},
+ {X: Field{[10]uint32{0x01362f33, 0x03edde32, 0x03c13627, 0x03563894, 0x010ac98a, 0x00986133, 0x01c9cfec, 0x026e0aec, 0x03b78317, 0x002d4a34}}, Y: Field{[10]uint32{0x038babab, 0x00af54b6, 0x004f047c, 0x00222ed1, 0x01aa902e, 0x028b4628, 0x0140676b, 0x0048a98e, 0x03af1545, 0x00018c80}}},
+ {X: Field{[10]uint32{0x01734a6a, 0x0096adc4, 0x036e02d0, 0x018835d0, 0x017a4de5, 0x0013a7a0, 0x0018a5c8, 0x01b88ab9, 0x03e09398, 0x000bfc88}}, Y: Field{[10]uint32{0x0100f678, 0x029e7000, 0x000965ef, 0x01d75280, 0x03819904, 0x01e0e2ad, 0x0276d8a9, 0x036866f6, 0x0188ec9c, 0x00317234}}},
+ {X: Field{[10]uint32{0x01eb1742, 0x01b9d2e6, 0x0312ff94, 0x03da67f1, 0x019ec839, 0x0322ac73, 0x03d2c393, 0x014f2733, 0x01d50e1e, 0x0032e1cc}}, Y: Field{[10]uint32{0x02d19fb5, 0x02394f3d, 0x0076d8c1, 0x0123921c, 0x00a9db38, 0x024b3a29, 0x01252480, 0x03141374, 0x01f838fe, 0x00334be7}}},
+ {X: Field{[10]uint32{0x00cf4a2e, 0x02c49c78, 0x0379936b, 0x0376fa61, 0x006dac52, 0x03c9c9a4, 0x02c265aa, 0x02972ddb, 0x0045d776, 0x0004ddeb}}, Y: Field{[10]uint32{0x02a04670, 0x02b287b0, 0x010d4f34, 0x0154353b, 0x0025ab21, 0x036524f8, 0x027a8187, 0x0124cb56, 0x030dd595, 0x00292ccc}}},
+ {X: Field{[10]uint32{0x001a5ccd, 0x006894d9, 0x00724c51, 0x01cdeb04, 0x0222fbac, 0x020107ea, 0x03489bd8, 0x031d7f80, 0x03f2f140, 0x002612e6}}, Y: Field{[10]uint32{0x00d14ff3, 0x0050c7f2, 0x02bb590b, 0x026a50a8, 0x03d82f4c, 0x03135431, 0x010ea82a, 0x03bb2e9d, 0x02399733, 0x00311d3d}}},
+ {X: Field{[10]uint32{0x03bdcb06, 0x025835eb, 0x00c4d857, 0x01e5ca63, 0x01d50504, 0x0000afe6, 0x035d56ac, 0x01f3e6c4, 0x000074f5, 0x0012e3f4}}, Y: Field{[10]uint32{0x00c703bf, 0x038deccd, 0x0097e3a8, 0x03a531b4, 0x0095560e, 0x01833ddb, 0x01937a4c, 0x03dbddc8, 0x01031df0, 0x001f0110}}},
+ {X: Field{[10]uint32{0x018b6079, 0x0215a0c8, 0x000b6605, 0x006e2fb3, 0x0334fc75, 0x022f4376, 0x01250b25, 0x0088d986, 0x02536841, 0x0015cc59}}, Y: Field{[10]uint32{0x01652904, 0x010142a4, 0x01c37da6, 0x016f8e8e, 0x0216f833, 0x022bf850, 0x0172898b, 0x00715d22, 0x024f30f0, 0x0034755b}}},
+ {X: Field{[10]uint32{0x0369f286, 0x01c883f6, 0x03bd253c, 0x019d3cae, 0x00607373, 0x019f50fd, 0x032cb597, 0x005bcbef, 0x0197a0ff, 0x00326800}}, Y: Field{[10]uint32{0x00142f0b, 0x03314610, 0x034e4009, 0x03b694c7, 0x006b4dfe, 0x018172af, 0x02074b0c, 0x0045f077, 0x0383d739, 0x0005df19}}},
+ {X: Field{[10]uint32{0x021881cb, 0x03b1b3a9, 0x03ff645e, 0x03d5fba2, 0x00c87b9e, 0x01e6cc02, 0x01616185, 0x008ea76c, 0x02da91df, 0x00388d05}}, Y: Field{[10]uint32{0x00b8da15, 0x01cb755c, 0x00137937, 0x03d28f78, 0x02e42fbc, 0x005c60a5, 0x02c82e0e, 0x00da479f, 0x017f8404, 0x00395590}}},
+ {X: Field{[10]uint32{0x038e9ad8, 0x038a5558, 0x01c1e3b0, 0x03ba29d2, 0x0114293e, 0x01def62a, 0x0214c450, 0x01d4f399, 0x03f2369d, 0x0027e5b8}}, Y: Field{[10]uint32{0x021ddff1, 0x012cae68, 0x00ff6b49, 0x025b94a7, 0x039b01a3, 0x0104f83a, 0x0250d10e, 0x029369c5, 0x02681567, 0x003d7344}}},
+ {X: Field{[10]uint32{0x01301fd2, 0x013efdae, 0x03d5f1d9, 0x01e16e90, 0x01ae4880, 0x039a8c91, 0x014317dd, 0x00048f35, 0x03a4b24b, 0x0012195e}}, Y: Field{[10]uint32{0x02f0d890, 0x02319beb, 0x03e36a4a, 0x02824a69, 0x00dd4931, 0x02a4086c, 0x013ca772, 0x00de04a0, 0x02c06eb5, 0x000647b7}}},
+ {X: Field{[10]uint32{0x0236f24a, 0x021f9a5a, 0x032d4e01, 0x03201de0, 0x02c6c858, 0x00500b5e, 0x03155111, 0x02193632, 0x02e9d72e, 0x0019ecc8}}, Y: Field{[10]uint32{0x03f6946a, 0x03f7ceb1, 0x02208c3d, 0x019fdfe6, 0x030e15c8, 0x017eaa0c, 0x0387058c, 0x02fc54ef, 0x02c26b58, 0x0033fac4}}},
+ {X: Field{[10]uint32{0x004ded15, 0x0381bc29, 0x02d40fbd, 0x004c5820, 0x03c545ba, 0x014800b6, 0x00e89250, 0x037663f3, 0x0068542b, 0x00010ba0}}, Y: Field{[10]uint32{0x03c4aae5, 0x0111146f, 0x02402bf6, 0x0139eab1, 0x01a1ee81, 0x0313c987, 0x03649158, 0x00f3d49c, 0x01b0c1f3, 0x0005916a}}},
+ {X: Field{[10]uint32{0x0290d4c7, 0x0230417f, 0x00e30758, 0x03292a32, 0x013e058c, 0x02eeb001, 0x02191079, 0x01437555, 0x00e1339c, 0x0023b9f7}}, Y: Field{[10]uint32{0x02c9d5f9, 0x01a6a05b, 0x011d2b46, 0x03fc79bc, 0x0098e102, 0x036fa7f8, 0x01a61705, 0x0209e4b3, 0x02f48aae, 0x003fef42}}},
+ {X: Field{[10]uint32{0x03a368e6, 0x01e2a087, 0x02ece559, 0x03c3319b, 0x0237a935, 0x02c82485, 0x01aaaf27, 0x01a9c5ab, 0x01041292, 0x0002af25}}, Y: Field{[10]uint32{0x01f79203, 0x0317db5c, 0x027c9624, 0x01234e91, 0x02155a4a, 0x036b93f4, 0x0375c484, 0x01879e7e, 0x0135e9b4, 0x001cb952}}},
+ {X: Field{[10]uint32{0x02976ba8, 0x037746e9, 0x02f3b433, 0x0235e0fc, 0x00fd72fd, 0x000de3f3, 0x000568d4, 0x03a6d4ec, 0x032081e0, 0x002f4940}}, Y: Field{[10]uint32{0x003ceb39, 0x0318e55b, 0x021ca4c3, 0x01f4a75a, 0x02e8c4c8, 0x005ee39e, 0x00ca8797, 0x01526265, 0x03db8585, 0x0016b6e2}}},
+ {X: Field{[10]uint32{0x02e25f71, 0x02297862, 0x00740c01, 0x03812222, 0x01b31609, 0x039ea836, 0x02e91677, 0x03a13926, 0x0262fbee, 0x0002d3ec}}, Y: Field{[10]uint32{0x0176e5fc, 0x0371fe38, 0x0003b24c, 0x00da3a8d, 0x01265d6d, 0x033d85ba, 0x00ecbe41, 0x00754496, 0x0386dc09, 0x000d37cf}}},
+ {X: Field{[10]uint32{0x02605c01, 0x03a20cef, 0x021c495d, 0x005c86cd, 0x03e46048, 0x00418ed7, 0x005ad148, 0x013abe85, 0x036766f2, 0x00346ea6}}, Y: Field{[10]uint32{0x01e8400a, 0x011da8f6, 0x03a75068, 0x00f292e2, 0x01f87194, 0x0245f8ea, 0x03ce7f28, 0x00bc7998, 0x00bd17de, 0x003a029b}}},
+ {X: Field{[10]uint32{0x022639b3, 0x009d4ba4, 0x01ba8373, 0x0009a771, 0x03a80c67, 0x03ae78aa, 0x006652d5, 0x016a34b5, 0x02b03a3e, 0x0017262d}}, Y: Field{[10]uint32{0x010f4a54, 0x03d944f1, 0x012e06b8, 0x02d98d4a, 0x006a35ef, 0x03e41e81, 0x011bd130, 0x003374b1, 0x039a145d, 0x0002078b}}},
+ {X: Field{[10]uint32{0x002618f8, 0x036d7753, 0x02a840c8, 0x00382a1e, 0x02908abf, 0x03ec97cb, 0x00b70714, 0x02e1bd87, 0x0288f75f, 0x00307e91}}, Y: Field{[10]uint32{0x028397ea, 0x00f32e72, 0x01d9b204, 0x0396ae18, 0x039db869, 0x02aa44f2, 0x0355d0b1, 0x03c9b45f, 0x02776d4b, 0x003cbdd2}}},
+ {X: Field{[10]uint32{0x03227ec1, 0x00ae9b3d, 0x01f76dc2, 0x022d1017, 0x0396aec7, 0x00269d56, 0x0062ba2f, 0x03acc947, 0x02e9a644, 0x00017a01}}, Y: Field{[10]uint32{0x033e614b, 0x013e1fe9, 0x01bba9d8, 0x03adcbcc, 0x02b871d2, 0x01d08c4e, 0x02caa050, 0x020a75ab, 0x0118d6a1, 0x002e2320}}},
+ {X: Field{[10]uint32{0x01c8de9a, 0x018c9bb4, 0x00c1434c, 0x01b7bfd5, 0x01096863, 0x031e406f, 0x023d965b, 0x0069efd8, 0x03fefd2c, 0x003e7451}}, Y: Field{[10]uint32{0x029caffd, 0x01235cb4, 0x00c33cd5, 0x032e1260, 0x0040de44, 0x0045cc18, 0x027d77b4, 0x021b1e4e, 0x0249ab66, 0x0031e21c}}},
+ {X: Field{[10]uint32{0x030ccdb1, 0x0283fb29, 0x0023babe, 0x02b8c5c4, 0x009f7020, 0x001e658d, 0x0138a1f5, 0x03447ea3, 0x015685f6, 0x002e6332}}, Y: Field{[10]uint32{0x010ecf7f, 0x00ab6f26, 0x01f49571, 0x0085c25d, 0x013dcbdf, 0x002208d5, 0x024cc0d4, 0x03a28dbb, 0x00953689, 0x003c1d35}}},
+ {X: Field{[10]uint32{0x0017b474, 0x0229925a, 0x02b03464, 0x024fceed, 0x02184584, 0x0052f2e9, 0x01091dc7, 0x005f9fbe, 0x02d41008, 0x003c5872}}, Y: Field{[10]uint32{0x03740904, 0x0227db66, 0x01ffd612, 0x03e7e946, 0x01c4410a, 0x01798945, 0x0081eb24, 0x03cc908a, 0x012e396a, 0x002dfbae}}},
+ {X: Field{[10]uint32{0x0326914c, 0x02c70214, 0x038fb1b7, 0x03da2899, 0x03fb54af, 0x01bb7022, 0x02abac24, 0x00187915, 0x00892ea4, 0x001f22db}}, Y: Field{[10]uint32{0x027692f8, 0x02722bd7, 0x015b10d6, 0x00f736ae, 0x02296072, 0x00acd1a0, 0x035eacd0, 0x034b0a7f, 0x03026ea1, 0x003c2387}}},
+ {X: Field{[10]uint32{0x00f28729, 0x00d7bb49, 0x01e5dd36, 0x023dc937, 0x023ab207, 0x03dc681d, 0x01b93cce, 0x01196065, 0x029f1633, 0x00119a30}}, Y: Field{[10]uint32{0x0074ea4f, 0x039d0013, 0x00fa129e, 0x01f0bd87, 0x008fd22f, 0x02766545, 0x024c7233, 0x03b1480c, 0x00c98391, 0x00176c8a}}},
+ {X: Field{[10]uint32{0x0167b65e, 0x0071f94c, 0x00b2f4e2, 0x00a724a4, 0x0296fa67, 0x00d9c994, 0x0239f8cf, 0x03697066, 0x00f39dd6, 0x000d10f4}}, Y: Field{[10]uint32{0x03429234, 0x01f03a25, 0x014b92a8, 0x002edfb6, 0x0114a432, 0x0301e514, 0x0131f637, 0x0237723b, 0x02399a08, 0x0012db6d}}},
+ {X: Field{[10]uint32{0x03c227b4, 0x031e0422, 0x020e8ffe, 0x02a6beb0, 0x02458dbc, 0x015d3025, 0x0281e693, 0x013a5560, 0x010117a0, 0x0034f38d}}, Y: Field{[10]uint32{0x02eb9908, 0x01ff2ac1, 0x0384a9b7, 0x01ba4338, 0x007696ee, 0x03555ab4, 0x001e47f8, 0x01bba4d5, 0x03b9628f, 0x002f3f1d}}},
+ {X: Field{[10]uint32{0x015127af, 0x0005583e, 0x03080233, 0x030f34b5, 0x00f2bc1a, 0x03782b0a, 0x01f86409, 0x00914888, 0x0363ad77, 0x00313718}}, Y: Field{[10]uint32{0x012d3038, 0x025ae2dd, 0x0271b3e0, 0x03165fda, 0x00038a79, 0x020d1494, 0x01bc9493, 0x0299990e, 0x028fd789, 0x001e326e}}},
+ {X: Field{[10]uint32{0x015ac666, 0x034a769b, 0x01075b23, 0x0332ef37, 0x021bf4ed, 0x008f4b83, 0x0178d7a1, 0x011fb3f3, 0x0394221a, 0x00031dc7}}, Y: Field{[10]uint32{0x028d6091, 0x0157dc73, 0x01980d91, 0x01bd6e3d, 0x03f2ec52, 0x01778a4f, 0x00719246, 0x016abbd1, 0x0330829f, 0x00137b8e}}},
+ {X: Field{[10]uint32{0x01e6e199, 0x00945f5e, 0x03d50e77, 0x02fc9d6b, 0x0136a1e9, 0x012287c9, 0x02516e64, 0x023dfd6d, 0x00e89633, 0x002ffe23}}, Y: Field{[10]uint32{0x0388c206, 0x01d05629, 0x03f68532, 0x00a6ed56, 0x01c15526, 0x03a5d876, 0x00b62117, 0x004293ac, 0x007ab620, 0x0023cfc3}}},
+ {X: Field{[10]uint32{0x01a3b97a, 0x0287ca82, 0x002da576, 0x01dbcb38, 0x006a467e, 0x00f2b089, 0x010e7e3d, 0x02fc93a1, 0x00645d57, 0x0012bf34}}, Y: Field{[10]uint32{0x0110f0a2, 0x02b95393, 0x01f93984, 0x00ec301b, 0x00ef927d, 0x021db5b0, 0x00692f61, 0x02be4db3, 0x035487b2, 0x0014bc8e}}},
+ {X: Field{[10]uint32{0x02b1f373, 0x022e884c, 0x03abdf8a, 0x00d26001, 0x0379e23c, 0x0136c04b, 0x03933fd9, 0x0038815f, 0x022cb9bf, 0x00312f04}}, Y: Field{[10]uint32{0x02fbfc6d, 0x01e21859, 0x00ce1a87, 0x02f5ef7e, 0x031daf76, 0x02ad5b5d, 0x005d4273, 0x0206eb71, 0x03b6a31d, 0x00390311}}},
+ {X: Field{[10]uint32{0x01f821a8, 0x01a3c614, 0x019ddb4c, 0x0229f4d3, 0x02837a0f, 0x02ac46b2, 0x0223d27b, 0x01de4738, 0x01b1d1be, 0x00121e86}}, Y: Field{[10]uint32{0x01d0ef98, 0x027912a9, 0x00e67f51, 0x000dec97, 0x01055524, 0x0150578d, 0x02335544, 0x013a6821, 0x034316ff, 0x00294f35}}},
+ {X: Field{[10]uint32{0x0301a326, 0x00cb2e10, 0x007f8106, 0x0202a162, 0x01f4ac3d, 0x022333ff, 0x02035165, 0x031d201d, 0x00ecbe06, 0x0009d28f}}, Y: Field{[10]uint32{0x01a9f40d, 0x02627121, 0x019b3ff4, 0x01e98efc, 0x035d06b4, 0x00e172db, 0x0272cab5, 0x022d1426, 0x03e3afbe, 0x0005e892}}},
+ {X: Field{[10]uint32{0x03afa9e8, 0x01e4418c, 0x022c48a0, 0x01a8002f, 0x03e82fcc, 0x01563e74, 0x03fc34e7, 0x0266b00e, 0x0377b0cb, 0x000cacc7}}, Y: Field{[10]uint32{0x018f5bc2, 0x036a0297, 0x032a8993, 0x03542c5c, 0x0217f422, 0x02e0111c, 0x02b3f71d, 0x036a4383, 0x004cc191, 0x000111ed}}},
+ {X: Field{[10]uint32{0x024a2752, 0x022e1680, 0x03c2925d, 0x038419b7, 0x03945285, 0x03f424cd, 0x0339d46f, 0x0051a370, 0x01cf5556, 0x001e30e7}}, Y: Field{[10]uint32{0x03a3ac55, 0x022119de, 0x009ce890, 0x00c57844, 0x02a66809, 0x03008f98, 0x03df63d5, 0x032a17ba, 0x01bb4e41, 0x0035a477}}},
+ {X: Field{[10]uint32{0x0134e5ff, 0x035bece7, 0x0325fa04, 0x0258ac79, 0x00d2f21f, 0x03bbf06a, 0x0102116d, 0x001ddf11, 0x0111a492, 0x0017f1d6}}, Y: Field{[10]uint32{0x017512f2, 0x0182ecd2, 0x00d507a4, 0x01892dca, 0x01f3fe16, 0x0284e5d2, 0x03524d96, 0x0221737f, 0x037f18f5, 0x00167cdb}}},
+ {X: Field{[10]uint32{0x0108fa8a, 0x00a274eb, 0x0364ae38, 0x039bda4e, 0x01fa62dd, 0x038d1b86, 0x010fc164, 0x00ad269b, 0x00e9152b, 0x00328564}}, Y: Field{[10]uint32{0x0046dc8c, 0x023fcc20, 0x007f524a, 0x01124da5, 0x01535ea7, 0x00499157, 0x029eae17, 0x03b5d527, 0x033c1174, 0x0011a9ee}}},
+ {X: Field{[10]uint32{0x0111fa1f, 0x01433767, 0x037f1f3d, 0x02f16ea6, 0x01743d94, 0x03d9b56b, 0x036e660b, 0x02f7ae9f, 0x02665ff0, 0x00171c54}}, Y: Field{[10]uint32{0x0073a03e, 0x03ffa711, 0x00c39b31, 0x02903c82, 0x02e41684, 0x03333293, 0x01ee9ddc, 0x02570e88, 0x031556e9, 0x001f688e}}},
+ {X: Field{[10]uint32{0x00177e82, 0x0361a139, 0x017c8c29, 0x03387255, 0x03fa0c09, 0x03cb840c, 0x01c38774, 0x031ce957, 0x01a36361, 0x0031fdc7}}, Y: Field{[10]uint32{0x01b0dedf, 0x03b6e156, 0x01f92078, 0x0030d0a7, 0x0177c6f5, 0x0013c3e5, 0x022dbf9a, 0x033b2dac, 0x007fb5c2, 0x000235b9}}},
+ {X: Field{[10]uint32{0x0058afab, 0x00070af7, 0x0316da01, 0x03339be9, 0x024130b4, 0x00cedd4d, 0x01259004, 0x0284f8de, 0x019f5264, 0x001ba46f}}, Y: Field{[10]uint32{0x00fd604f, 0x008e946d, 0x034499ed, 0x00d077d6, 0x01ee0f94, 0x00826a80, 0x0020c20f, 0x01612576, 0x0055506b, 0x0016ea9d}}},
+ {X: Field{[10]uint32{0x02ef0d33, 0x015065ae, 0x01072689, 0x0280d416, 0x03244907, 0x00cc8a04, 0x01c789df, 0x01f2ff1d, 0x028e69ac, 0x0007c037}}, Y: Field{[10]uint32{0x02e040f4, 0x020dc0f6, 0x02feab2e, 0x032106e9, 0x020e65fe, 0x0120ad9e, 0x000c30b4, 0x00c3b4a0, 0x0290f323, 0x000a24b3}}},
+ {X: Field{[10]uint32{0x01300638, 0x01e4515f, 0x01e1091d, 0x002c8c93, 0x001a2f5b, 0x01c76356, 0x01efa3ad, 0x0311a508, 0x03f507d8, 0x0030004c}}, Y: Field{[10]uint32{0x00f18895, 0x010d3b4d, 0x027a2f86, 0x004bf72d, 0x031aa3dc, 0x027a38c6, 0x005ea455, 0x03a60b74, 0x01820d3e, 0x000f1dac}}},
+ {X: Field{[10]uint32{0x020cad49, 0x03a420f1, 0x0248d2f8, 0x03819b37, 0x00cdb172, 0x012efe5c, 0x00ef7560, 0x009a784b, 0x01e795e8, 0x0002bd8e}}, Y: Field{[10]uint32{0x0026abb4, 0x00b11d09, 0x03219808, 0x02bd59ce, 0x030c479d, 0x03477921, 0x0014a74c, 0x0334a439, 0x0179ce92, 0x0006f404}}},
+ {X: Field{[10]uint32{0x01f4c9a1, 0x01e5e5cc, 0x00cd54e9, 0x00e22dcf, 0x00ede585, 0x03af2e68, 0x03a0a5d8, 0x03011063, 0x027d5447, 0x0039b6f4}}, Y: Field{[10]uint32{0x01242153, 0x037aaf8f, 0x038ee6b5, 0x00dcd236, 0x01a20710, 0x03433e2f, 0x00c780a0, 0x020c80f5, 0x0124f284, 0x001dfce1}}},
+ {X: Field{[10]uint32{0x036360a9, 0x037f54cc, 0x0246e4c2, 0x007b9015, 0x028d1e3e, 0x0304467a, 0x02dd904e, 0x01c2ab40, 0x0123c95b, 0x003d46a3}}, Y: Field{[10]uint32{0x00f46c57, 0x012c6a70, 0x0113873e, 0x02ad4651, 0x02ae5c6a, 0x02566b36, 0x03488714, 0x00f3d831, 0x009a1d70, 0x00109acb}}},
+ {X: Field{[10]uint32{0x00f6bcf4, 0x01135428, 0x01863429, 0x02b07b91, 0x00a3e4d1, 0x00eb8e98, 0x038d8fc3, 0x00dedfd5, 0x01e70fe4, 0x00384bc4}}, Y: Field{[10]uint32{0x0019f5d2, 0x01b64011, 0x01253e3c, 0x0359b71f, 0x038bfec8, 0x00453255, 0x03985b14, 0x0226ad58, 0x015835fa, 0x0008b457}}},
+ {X: Field{[10]uint32{0x0188e14c, 0x02f1fb7a, 0x00bb9bf6, 0x01467624, 0x03ac6193, 0x02562853, 0x0351e56d, 0x018b418b, 0x020a8ec7, 0x0039d621}}, Y: Field{[10]uint32{0x027ecd78, 0x0070a5d5, 0x03b23ec4, 0x0208ec00, 0x03104386, 0x032d1d43, 0x008d780d, 0x013c87ee, 0x00ef10b8, 0x0010b678}}},
+ {X: Field{[10]uint32{0x00a64163, 0x00e8e608, 0x032c6e42, 0x020bbe47, 0x02d47998, 0x022952de, 0x022b90c7, 0x00797360, 0x03e90ba2, 0x000f24cf}}, Y: Field{[10]uint32{0x029080df, 0x00b77cd9, 0x03f96b67, 0x00d447d9, 0x017fc161, 0x01c02d2b, 0x01b23a56, 0x008b8b29, 0x00be5319, 0x00307aa8}}},
+ {X: Field{[10]uint32{0x02857872, 0x004d3f7a, 0x00e07939, 0x0138f027, 0x00df828e, 0x02469e70, 0x02b6b08e, 0x0019b2db, 0x036a83c9, 0x0011d5d5}}, Y: Field{[10]uint32{0x0038277a, 0x03b9b183, 0x00d7b058, 0x03a27654, 0x01818248, 0x0249c311, 0x03e8388d, 0x01fc5778, 0x03b262d7, 0x0004fc8b}}},
+ {X: Field{[10]uint32{0x031045c7, 0x0275ad00, 0x00aa8012, 0x03361987, 0x0246570f, 0x029fffd0, 0x01df9039, 0x014502c6, 0x01037008, 0x000d798e}}, Y: Field{[10]uint32{0x01b9e8c9, 0x0272b979, 0x011f1b0e, 0x02b6961a, 0x0053cfb3, 0x00f0a3a1, 0x004f022b, 0x018361a9, 0x00bcaa9d, 0x000a157d}}},
+ {X: Field{[10]uint32{0x02126fa3, 0x0398cb8c, 0x024fe82b, 0x0371aa2f, 0x02ad5330, 0x0342a17d, 0x025f0316, 0x02081cd5, 0x02011f11, 0x002b511b}}, Y: Field{[10]uint32{0x00e83e39, 0x00653d8a, 0x00d4315c, 0x0150bdcc, 0x021d8acb, 0x02b03aac, 0x012b2f81, 0x038fd47e, 0x02f1dece, 0x000900e0}}},
+ {X: Field{[10]uint32{0x02718815, 0x0359001a, 0x021aff82, 0x03d75dd1, 0x0289164e, 0x03108869, 0x00af7529, 0x02b0de08, 0x01f3eb01, 0x003efa79}}, Y: Field{[10]uint32{0x02d088e6, 0x0007fd84, 0x00468478, 0x0210aafe, 0x01ba2073, 0x0137a485, 0x013e0884, 0x00b8338e, 0x00add85a, 0x003cbcc3}}},
+ {X: Field{[10]uint32{0x03038135, 0x014bc4ce, 0x029166e9, 0x03d8cb4c, 0x00b9b585, 0x020b326e, 0x0149aa24, 0x03d0c281, 0x0320d81f, 0x000799d4}}, Y: Field{[10]uint32{0x00686aa7, 0x02d326bc, 0x01db1b44, 0x006cd9b4, 0x002e2c7f, 0x02621c03, 0x03aa5de2, 0x03665716, 0x0276c9c7, 0x003283c4}}},
+ {X: Field{[10]uint32{0x02267718, 0x00e45f35, 0x0285f359, 0x010cc383, 0x0394c3f6, 0x0349e492, 0x02b8068a, 0x0394ae8b, 0x037023b0, 0x0005db71}}, Y: Field{[10]uint32{0x017ca8d9, 0x003cff8a, 0x02701d51, 0x03da1746, 0x000548d4, 0x03d98254, 0x010686fd, 0x016c1bd1, 0x02885df7, 0x0034b718}}},
+ {X: Field{[10]uint32{0x01a9c938, 0x002aded0, 0x008dd99a, 0x01080f3f, 0x017ac839, 0x0331f150, 0x02feadbc, 0x00aceacd, 0x02c232a0, 0x000f214d}}, Y: Field{[10]uint32{0x025186b5, 0x013d6b68, 0x03d9dbdc, 0x014b5a8e, 0x018ebc7f, 0x00c08ab4, 0x00dd8f17, 0x0344ab49, 0x02a5249c, 0x0029a13b}}},
+ {X: Field{[10]uint32{0x02f006fd, 0x028c8b5e, 0x014a5605, 0x000f58f1, 0x00ec6ea0, 0x02a20466, 0x00c446fb, 0x01dadb95, 0x03abc61a, 0x00122a9c}}, Y: Field{[10]uint32{0x02403a64, 0x03e64d63, 0x00d4ecdb, 0x02dc1039, 0x035977fa, 0x033cf77c, 0x00185065, 0x002208b4, 0x02eeffb2, 0x0030a317}}},
+ {X: Field{[10]uint32{0x03cc1ff1, 0x028e86d4, 0x024cbd83, 0x0034329f, 0x01263d17, 0x022eb292, 0x02d2b363, 0x000a3676, 0x03620abd, 0x001d1cc9}}, Y: Field{[10]uint32{0x0136c2c6, 0x02f5a779, 0x01f3fddf, 0x03f982ea, 0x00927a88, 0x03008edb, 0x02ef7ce5, 0x02827cfc, 0x030ce8df, 0x00328477}}},
+ {X: Field{[10]uint32{0x01698522, 0x01cb16e5, 0x0002eb86, 0x0095491f, 0x01a40427, 0x0053fa40, 0x03dc9188, 0x016455d9, 0x0309520e, 0x003adc6a}}, Y: Field{[10]uint32{0x0148e995, 0x027d5b93, 0x031eb874, 0x0007001f, 0x01c81b69, 0x0008ecaa, 0x02563cb2, 0x016ce3b5, 0x02e0a7e9, 0x0017eb5e}}},
+ {X: Field{[10]uint32{0x02f5be6b, 0x0110dc5f, 0x021cef84, 0x0256595d, 0x02af5e86, 0x02c5e731, 0x02da74be, 0x00f7d5cb, 0x03f6c776, 0x000ac406}}, Y: Field{[10]uint32{0x03140ce9, 0x03fa188f, 0x02597067, 0x0065fe26, 0x01f66647, 0x03c96108, 0x014629fe, 0x0068f663, 0x02c84e1d, 0x00003745}}},
+ {X: Field{[10]uint32{0x020ab337, 0x02910d9b, 0x033ebca2, 0x03fa3cec, 0x0213976a, 0x017a06e8, 0x032b0507, 0x0195494c, 0x03a82c66, 0x0028267b}}, Y: Field{[10]uint32{0x01136c07, 0x02a66f57, 0x013abdc0, 0x02d796dd, 0x02fb1e33, 0x0049ab32, 0x016c7faa, 0x03cacf77, 0x017b5cf1, 0x003e20e5}}},
+ {X: Field{[10]uint32{0x0362f95d, 0x02f267e2, 0x00f153d5, 0x03340bd6, 0x018cc107, 0x01c2f7ac, 0x032ab6d4, 0x00f3a56d, 0x0056a61c, 0x003d0e5a}}, Y: Field{[10]uint32{0x029f6133, 0x01db005b, 0x02567cfd, 0x03cf87bc, 0x03df81c2, 0x00c9d398, 0x03240caf, 0x02c2c019, 0x011aa8ed, 0x001b8fab}}},
+ {X: Field{[10]uint32{0x014050c0, 0x038e1fda, 0x00008bd5, 0x01f12516, 0x0353215b, 0x0124f600, 0x00aabe5a, 0x02ec6128, 0x019726aa, 0x00369cc8}}, Y: Field{[10]uint32{0x01a0eeb6, 0x0211813a, 0x01b4666d, 0x01339f38, 0x019489af, 0x017a5538, 0x00b987d8, 0x012da1af, 0x03291772, 0x003881d7}}},
+ {X: Field{[10]uint32{0x000a6792, 0x01359be6, 0x02f4575f, 0x0345343c, 0x018fea44, 0x025d0080, 0x0259c09b, 0x01860fd0, 0x021e1959, 0x002645c6}}, Y: Field{[10]uint32{0x01219a4f, 0x01d9ec5d, 0x03f5f27a, 0x034b9d81, 0x0066af1b, 0x0381efb0, 0x032cbd80, 0x03bbcf9f, 0x000c83e1, 0x00148ae1}}},
+ {X: Field{[10]uint32{0x018cf08f, 0x034d329d, 0x0323f8f0, 0x03da44cc, 0x001db7bc, 0x01122270, 0x008997a9, 0x013cd890, 0x02848a2c, 0x000d4f31}}, Y: Field{[10]uint32{0x0267ebe7, 0x01449373, 0x01fa243d, 0x0051b839, 0x0097effd, 0x000a0d32, 0x02b283f7, 0x000559f8, 0x0062f4ba, 0x0006196f}}},
+ {X: Field{[10]uint32{0x02312852, 0x0090b75e, 0x026d5deb, 0x00f755e8, 0x01b9ed7e, 0x02dbf330, 0x027c77f1, 0x034f4e39, 0x003b5053, 0x0022c5a6}}, Y: Field{[10]uint32{0x005d47c6, 0x03217976, 0x00e9fbe6, 0x034b1ca8, 0x000caeb3, 0x03fd26b2, 0x02adeedc, 0x014f4e55, 0x0392fa59, 0x0012764f}}},
+ {X: Field{[10]uint32{0x010cabc9, 0x0381191d, 0x002ef505, 0x00c0eeb0, 0x02efb367, 0x020fed88, 0x03b25130, 0x00c9f089, 0x02a4b1da, 0x001a3d77}}, Y: Field{[10]uint32{0x03d31782, 0x01a263f8, 0x0350c435, 0x0115c72d, 0x02146de0, 0x01b271d0, 0x01257744, 0x012e76bb, 0x039c5d62, 0x00099d03}}},
+ {X: Field{[10]uint32{0x020c699b, 0x02ec8080, 0x01244e74, 0x001a6156, 0x03cc9367, 0x008229b5, 0x019d8bd7, 0x03c03238, 0x007fc3ac, 0x003ebd48}}, Y: Field{[10]uint32{0x02f1936c, 0x019282f3, 0x03eebb85, 0x009c2181, 0x03d42c15, 0x01c77a39, 0x00186ac9, 0x031b952b, 0x004617a6, 0x003eaded}}},
+ {X: Field{[10]uint32{0x00d17630, 0x03d4207a, 0x004a2bca, 0x00828998, 0x02917c04, 0x00bc0685, 0x0204707a, 0x0316f4f6, 0x0291b541, 0x0030f46a}}, Y: Field{[10]uint32{0x00d9ce27, 0x03450d7f, 0x02c64d8c, 0x028d1324, 0x01c9b631, 0x0397ded1, 0x02d7ce54, 0x031017c1, 0x006e5a58, 0x0016d5e0}}},
+ {X: Field{[10]uint32{0x02c8db1a, 0x03267ea2, 0x01455623, 0x016bf8b0, 0x0254b5bd, 0x0246cc3c, 0x00db5263, 0x02e48114, 0x02354970, 0x0008c9e2}}, Y: Field{[10]uint32{0x00e1888b, 0x03b91064, 0x0144d55d, 0x01afef48, 0x03357048, 0x018150b7, 0x0093b746, 0x02791c6b, 0x01dae8df, 0x00219360}}},
+ {X: Field{[10]uint32{0x038c0146, 0x01d97151, 0x02d25485, 0x00ac3b2b, 0x017c12c3, 0x02773440, 0x00de4ab2, 0x0329341d, 0x018133cb, 0x00180bd8}}, Y: Field{[10]uint32{0x027aa968, 0x02791800, 0x0011f91c, 0x010b39a8, 0x019ffab3, 0x0266e721, 0x03d2da15, 0x030d43dd, 0x03b7279e, 0x001310b3}}},
+ {X: Field{[10]uint32{0x01843ee9, 0x03b2ab49, 0x02690fd4, 0x02af1e58, 0x03c545a9, 0x0373233f, 0x002aa463, 0x030ec976, 0x03c70126, 0x00077133}}, Y: Field{[10]uint32{0x03fedeb1, 0x0097986c, 0x003ac182, 0x02e4aa6d, 0x036002b1, 0x0178cabe, 0x0020f172, 0x0155d4d6, 0x01825c53, 0x002a4d5e}}},
+ {X: Field{[10]uint32{0x0235af82, 0x0308f3f3, 0x028b33c6, 0x037e2c13, 0x01887a95, 0x032997f1, 0x00d99108, 0x02f1e453, 0x01216e02, 0x000da53c}}, Y: Field{[10]uint32{0x00555d88, 0x00d9090e, 0x006d1d1c, 0x03266e0e, 0x02c61e57, 0x021162e7, 0x016e7428, 0x0065db51, 0x0291b1c4, 0x001fffb8}}},
+ {X: Field{[10]uint32{0x01f1bdbf, 0x0248ac87, 0x003b4b65, 0x00eea483, 0x00457be0, 0x03c1b0b1, 0x00725e0a, 0x019081ee, 0x0275a959, 0x001d0eb6}}, Y: Field{[10]uint32{0x000f908f, 0x035c5d6d, 0x026c0b16, 0x03e4e6c4, 0x035629b9, 0x00b706d0, 0x00c23ed9, 0x03176027, 0x01b55ac4, 0x0023cae0}}},
+ {X: Field{[10]uint32{0x02420085, 0x02bdf5ac, 0x0394f210, 0x00b89b5b, 0x00f047cf, 0x0011181f, 0x00c42d7f, 0x03129ee7, 0x03977c7c, 0x0002ffa4}}, Y: Field{[10]uint32{0x02373d64, 0x00241beb, 0x01d92126, 0x03fa80b8, 0x01666c3d, 0x037b94f5, 0x02f2b510, 0x03720c07, 0x00598f80, 0x00189758}}},
+ {X: Field{[10]uint32{0x03240eb9, 0x01b62e46, 0x01f8373e, 0x03ff21e5, 0x01cb56eb, 0x0219e86b, 0x01447517, 0x011b230a, 0x000e6ee6, 0x0021b00b}}, Y: Field{[10]uint32{0x005be4ed, 0x0299abf2, 0x037b40bf, 0x01224591, 0x0159d39f, 0x03d5be02, 0x02af5290, 0x004262dd, 0x029fda4b, 0x001966d7}}},
+ {X: Field{[10]uint32{0x007bfda4, 0x02a48a4e, 0x02ce5dc3, 0x011d2e0a, 0x026c4f8f, 0x02a13719, 0x01d357d3, 0x0007a665, 0x0045857f, 0x000eca04}}, Y: Field{[10]uint32{0x02e9fd4c, 0x02039ff4, 0x00f8a16d, 0x008cfd40, 0x01e318a1, 0x03cc4f6b, 0x007c42f1, 0x0055091f, 0x032ccdeb, 0x00265209}}},
+ {X: Field{[10]uint32{0x02fc47c0, 0x0294a13f, 0x007a3da9, 0x02380cc2, 0x02985903, 0x01b5bfca, 0x004d33d4, 0x025e7c14, 0x01d3b54d, 0x00337733}}, Y: Field{[10]uint32{0x016683b8, 0x00ebad01, 0x00321213, 0x02469fac, 0x010196c9, 0x001f7759, 0x0191e5e8, 0x004f0513, 0x03f83693, 0x0027ca84}}},
+ {X: Field{[10]uint32{0x030e16d7, 0x014b0d21, 0x00088403, 0x027ccdc2, 0x018f8c2e, 0x0008c9c4, 0x034462bd, 0x00f76fb8, 0x0102a602, 0x00260401}}, Y: Field{[10]uint32{0x0169b9cb, 0x0253a406, 0x01a5747a, 0x019af5c8, 0x004cf8fb, 0x0152a13b, 0x0381c084, 0x00ecec78, 0x02f469af, 0x0006a2ff}}},
+ {X: Field{[10]uint32{0x01978179, 0x0088f966, 0x02316c90, 0x03e6cd77, 0x03c26092, 0x02e08492, 0x00168479, 0x005e6c24, 0x017db2fc, 0x0022dd9d}}, Y: Field{[10]uint32{0x02b16f05, 0x03e69cd0, 0x009606ea, 0x01a07a2d, 0x01ee4492, 0x00459cc8, 0x01a71a6a, 0x01972950, 0x0326588e, 0x0011fabc}}},
+ {X: Field{[10]uint32{0x02cc3b43, 0x015c759f, 0x02771bf2, 0x02cb557a, 0x0045c83b, 0x01ac3187, 0x004d8a94, 0x02d981bd, 0x03dc897f, 0x00399bb5}}, Y: Field{[10]uint32{0x0214dcbe, 0x03316a7c, 0x01810518, 0x03e64dd3, 0x017f1745, 0x0229016f, 0x00ffd470, 0x03fd3b1b, 0x039b8a9f, 0x00394dbd}}},
+ {X: Field{[10]uint32{0x02bc88c8, 0x01aa84fc, 0x020d2262, 0x00241a82, 0x01ead632, 0x03bd7045, 0x02ad0656, 0x002e7e33, 0x0192cc9c, 0x00381801}}, Y: Field{[10]uint32{0x035a584f, 0x035472df, 0x03f7ca42, 0x01775527, 0x02e7f75f, 0x0304e105, 0x02552544, 0x01c1745b, 0x00b78b84, 0x0018a365}}},
+ {X: Field{[10]uint32{0x01152767, 0x016b01c6, 0x02cfbffc, 0x0109ace4, 0x0362db2e, 0x018f8bc1, 0x0358fc70, 0x00975331, 0x0242a9cf, 0x0006c2bc}}, Y: Field{[10]uint32{0x0056a2be, 0x010ff0f2, 0x035a0ed0, 0x012c0be5, 0x00592dec, 0x024d5012, 0x0128da0d, 0x0015668f, 0x02a5eec3, 0x000ceba2}}},
+ {X: Field{[10]uint32{0x035acb7d, 0x02a935ab, 0x00ed5439, 0x0137396f, 0x009b8092, 0x02c2f2fc, 0x005beeed, 0x01fb68d4, 0x03aa142f, 0x0038813f}}, Y: Field{[10]uint32{0x018911ba, 0x0136d257, 0x0159e692, 0x00c11e69, 0x03a02f70, 0x03bcb08a, 0x02acdd1a, 0x005466b7, 0x019b98e1, 0x0028a013}}},
+ {X: Field{[10]uint32{0x01515ed5, 0x03c26683, 0x0196469c, 0x03d24a11, 0x00a35431, 0x00c5cf53, 0x00ea1fc1, 0x00c7d885, 0x02676515, 0x002bf103}}, Y: Field{[10]uint32{0x00b648e0, 0x01b4ccc0, 0x01b45589, 0x001f34ef, 0x035e6297, 0x02c13499, 0x02e85963, 0x0037a4ca, 0x02f41e48, 0x0015fbdb}}},
+ {X: Field{[10]uint32{0x03e8d226, 0x037b88aa, 0x001d4690, 0x00197298, 0x01729634, 0x017038f2, 0x00588b04, 0x01907e00, 0x03db747b, 0x001654e2}}, Y: Field{[10]uint32{0x002d4438, 0x000c773b, 0x00e28652, 0x00a174de, 0x0352ca7a, 0x037a5821, 0x026547a3, 0x0270d530, 0x006a3c91, 0x00280c12}}},
+ {X: Field{[10]uint32{0x0197ed8f, 0x0391a6aa, 0x026f1efb, 0x01106012, 0x02b964cf, 0x03b6ca9d, 0x03a4baeb, 0x0100a318, 0x034fc38d, 0x001aa474}}, Y: Field{[10]uint32{0x01073260, 0x00075d76, 0x02a00f2b, 0x034729b3, 0x0345f221, 0x034f9cfa, 0x02ead10d, 0x0149d0b4, 0x00836a0b, 0x000c9403}}},
+ {X: Field{[10]uint32{0x02c28d61, 0x018330a2, 0x02ee8f77, 0x02772170, 0x00332ae3, 0x038870d1, 0x01c44ab5, 0x025fba5f, 0x0287b11d, 0x00249839}}, Y: Field{[10]uint32{0x0223e778, 0x03a61458, 0x01d1892c, 0x020e8cf9, 0x01c1d13e, 0x03736765, 0x0124f5e2, 0x01953bdc, 0x033de8d8, 0x0003d1f7}}},
+ {X: Field{[10]uint32{0x00fe3cba, 0x02410413, 0x03e06a03, 0x030f73e6, 0x00b48820, 0x02d3ca4f, 0x038561f4, 0x03cc07d9, 0x03337a66, 0x000d2439}}, Y: Field{[10]uint32{0x029bbd6c, 0x0281c857, 0x006f1f5e, 0x00d94ca2, 0x02a81695, 0x016eec8a, 0x03876368, 0x01c2b1d3, 0x02797edb, 0x00125646}}},
+ {X: Field{[10]uint32{0x0107b4a0, 0x0029a023, 0x03c8a6ec, 0x02049e00, 0x01d71d7a, 0x02a55228, 0x00b1311e, 0x02a68df7, 0x00fe1f47, 0x0025ca7d}}, Y: Field{[10]uint32{0x0317f896, 0x02e2bcba, 0x0386c2dc, 0x01cffa2a, 0x01c8f03d, 0x008bbfa9, 0x03ee569e, 0x03f5ca39, 0x01d4ccc4, 0x0015b869}}},
+ {X: Field{[10]uint32{0x029c2caf, 0x036360eb, 0x034b1c37, 0x02d60332, 0x005e694e, 0x0200113c, 0x03d77a66, 0x0108f473, 0x004f06da, 0x002bd8e4}}, Y: Field{[10]uint32{0x03e110b2, 0x006cc1b6, 0x02400f3d, 0x003df1e6, 0x01b8cfaf, 0x029f8bb7, 0x01fa10b4, 0x02e52345, 0x002f5fe2, 0x001b7b37}}},
+ {X: Field{[10]uint32{0x00435a3f, 0x00bede8b, 0x031f2f24, 0x03831ede, 0x01403cf0, 0x01f0a53f, 0x0274edf8, 0x007c8688, 0x03721f4a, 0x002589c7}}, Y: Field{[10]uint32{0x025adddf, 0x03d6c872, 0x01e7951c, 0x01deb904, 0x01719400, 0x027dba52, 0x03bbca44, 0x033f54af, 0x00731fc8, 0x0019bfef}}},
+ {X: Field{[10]uint32{0x03717c7d, 0x03653292, 0x0296a95b, 0x00f1fb89, 0x00dfa5a1, 0x02ea3658, 0x0027287e, 0x03168056, 0x02151f0c, 0x00290bbc}}, Y: Field{[10]uint32{0x00046fec, 0x0257dad4, 0x03a1ba49, 0x01c82d48, 0x02e32431, 0x0051823b, 0x02969298, 0x029644c8, 0x02d45f08, 0x00179247}}},
+ {X: Field{[10]uint32{0x0062e5e4, 0x00b01eee, 0x02c2f7fb, 0x00ac4d6f, 0x00fc4ce9, 0x022f89e0, 0x019c2896, 0x029d5f61, 0x01ede770, 0x00064ecf}}, Y: Field{[10]uint32{0x00716700, 0x0066d7bc, 0x0177522d, 0x01026031, 0x02d1d1d7, 0x02378155, 0x01d5cd13, 0x01cd7828, 0x03baffbb, 0x00064b12}}},
+ {X: Field{[10]uint32{0x001e8dc7, 0x0029f3a3, 0x02029e29, 0x02c389d5, 0x02054084, 0x01bfbbcf, 0x03b4fc82, 0x0113933c, 0x0075da6f, 0x00333e68}}, Y: Field{[10]uint32{0x0235a183, 0x02c83266, 0x03a67bf6, 0x0247ffa6, 0x020a5d64, 0x00208671, 0x020f0a23, 0x030c2e40, 0x004dccf2, 0x003413e1}}},
+ {X: Field{[10]uint32{0x025b0140, 0x039eb3b4, 0x03831873, 0x02e5b738, 0x00d3ddff, 0x02614c82, 0x00ec69ef, 0x02ed0fd8, 0x025b1d69, 0x001fafa8}}, Y: Field{[10]uint32{0x03ec3d65, 0x00f9f293, 0x01d16fc8, 0x01d62557, 0x002a9483, 0x004e8fce, 0x031a47d0, 0x0358dd53, 0x02f2bf87, 0x00091502}}},
+ {X: Field{[10]uint32{0x00a038c7, 0x004718e1, 0x02e45d71, 0x03af5ca6, 0x02674662, 0x00e11e2d, 0x03ff0380, 0x006c066d, 0x034ac2a3, 0x0000327a}}, Y: Field{[10]uint32{0x01f32240, 0x02f77b60, 0x016a6e26, 0x02cca744, 0x0312f6e8, 0x022b90a8, 0x032b90d7, 0x00fd3afb, 0x003dcaed, 0x001f8bb8}}},
+ {X: Field{[10]uint32{0x01acd867, 0x03651bf9, 0x007b87fe, 0x00361b15, 0x02cd0b29, 0x03f61ed2, 0x0323bc5c, 0x013a7a9e, 0x020c08c8, 0x00115d5b}}, Y: Field{[10]uint32{0x00acdd1f, 0x0076829c, 0x00413461, 0x00b216c2, 0x0031326e, 0x01f705b4, 0x03984c3d, 0x03005cf6, 0x022ce577, 0x00270fd4}}},
+ {X: Field{[10]uint32{0x03e3c0da, 0x0036dfc4, 0x0225ce4a, 0x039c42ae, 0x0359438d, 0x0197891d, 0x009e3416, 0x0358db1e, 0x008121be, 0x0006f561}}, Y: Field{[10]uint32{0x0386a90b, 0x03d0d451, 0x008e7350, 0x035e5627, 0x00ffd4d6, 0x001e1d0c, 0x028a7b75, 0x014e658e, 0x0097bf90, 0x0032c3ae}}},
+ {X: Field{[10]uint32{0x01324dc1, 0x01f3b676, 0x00063054, 0x038333e9, 0x0032eda7, 0x01677663, 0x02a80a97, 0x026e9612, 0x022c8e80, 0x003c6655}}, Y: Field{[10]uint32{0x0008d1d0, 0x026b1ead, 0x00f32400, 0x0047374e, 0x022f7ea8, 0x00f28537, 0x01dbcea3, 0x00126252, 0x02ad7643, 0x000cd467}}},
+ {X: Field{[10]uint32{0x005ea6f3, 0x00f4f53d, 0x03559674, 0x03a61372, 0x02975319, 0x00162548, 0x02ac3b93, 0x01f707d5, 0x0110e9e3, 0x001fed3a}}, Y: Field{[10]uint32{0x03c960ee, 0x00341399, 0x0062855f, 0x029ef553, 0x005f4d94, 0x038c80f7, 0x02b59bcf, 0x03b273cd, 0x003c0cdb, 0x0002dd28}}},
+ {X: Field{[10]uint32{0x006c03e6, 0x03ea7fa2, 0x031364c6, 0x0229ae73, 0x03c1a1d6, 0x0137108c, 0x02270205, 0x0275e2b2, 0x00fd1983, 0x00140f42}}, Y: Field{[10]uint32{0x02448e0a, 0x00def463, 0x02f77589, 0x0355f10d, 0x02698459, 0x01cf48f7, 0x01059144, 0x03ae1ef6, 0x01db9a09, 0x00212b65}}},
+ {X: Field{[10]uint32{0x01e1e713, 0x025820d4, 0x02c25091, 0x032390be, 0x0162db42, 0x021c5629, 0x02d0deac, 0x034f8961, 0x0204e6ae, 0x000cd724}}, Y: Field{[10]uint32{0x00c1c2f9, 0x027c2b3d, 0x01ce67ef, 0x01774d06, 0x0049b60c, 0x004bf761, 0x00849d42, 0x02fb8a50, 0x01bb10f8, 0x00056cd6}}},
+ {X: Field{[10]uint32{0x0034bc9f, 0x01104d0a, 0x035ef30c, 0x0262738f, 0x00f218c2, 0x01c82ed4, 0x01117df5, 0x00567e08, 0x01cbe0f7, 0x002e9a39}}, Y: Field{[10]uint32{0x00fa5d72, 0x01ef2510, 0x017f3ca5, 0x011dc719, 0x03101ff4, 0x0104a8a1, 0x005a2ede, 0x01393bfd, 0x03dd0ff3, 0x000ab096}}},
+ {X: Field{[10]uint32{0x037e6baa, 0x017b0821, 0x03a0a02a, 0x010e8791, 0x03446d79, 0x00e71252, 0x00202677, 0x0210c163, 0x0313311d, 0x0024f5b9}}, Y: Field{[10]uint32{0x001a0856, 0x01a99748, 0x0324fdb5, 0x0055f353, 0x01e10bf6, 0x02d427e7, 0x00710410, 0x03f49b81, 0x019c99a2, 0x001665f0}}},
+ {X: Field{[10]uint32{0x03397172, 0x01402917, 0x00c22ac7, 0x009a3b30, 0x00cb8f46, 0x031746da, 0x0284fbe0, 0x01e829ce, 0x001b5cc7, 0x001ea52f}}, Y: Field{[10]uint32{0x0178bee5, 0x03dad341, 0x02cef34a, 0x025405b7, 0x03032d36, 0x02fb7d34, 0x01c9f8c1, 0x0354a9c6, 0x006e82a4, 0x0004a307}}},
+ {X: Field{[10]uint32{0x0021b809, 0x00f165b2, 0x01c54c21, 0x00b6eb2b, 0x0375fbe5, 0x01bcf919, 0x02ec848f, 0x020f6517, 0x01a7c193, 0x003c0c7b}}, Y: Field{[10]uint32{0x03cabab8, 0x0031dd88, 0x03ea0517, 0x00dabe5a, 0x01eb505d, 0x0394bc65, 0x001e2e7e, 0x0393d76e, 0x010d1c17, 0x002d29e3}}},
+ {X: Field{[10]uint32{0x0039907c, 0x02df5c08, 0x0360857a, 0x01d58329, 0x010ce9f3, 0x01d34065, 0x00cb924c, 0x03820b75, 0x02cd5c17, 0x0021bbc6}}, Y: Field{[10]uint32{0x00f3bb3c, 0x0383b093, 0x03de1ef7, 0x0172731d, 0x0136c310, 0x01b559cf, 0x02d34b10, 0x022b2509, 0x013db907, 0x001a4da8}}},
+ {X: Field{[10]uint32{0x03c6d720, 0x005ad832, 0x00bc9409, 0x0324aac4, 0x006d24ee, 0x00a853ee, 0x039beeb6, 0x00e8d526, 0x00c9c78e, 0x003f3adb}}, Y: Field{[10]uint32{0x03f7583d, 0x005e1cdd, 0x0162f08b, 0x024ba9d5, 0x009f8d92, 0x004b2946, 0x03697015, 0x007c7382, 0x00245f56, 0x001f0b98}}},
+ {X: Field{[10]uint32{0x03a5c8d9, 0x0084fbb7, 0x00f3ecd2, 0x01b8ec50, 0x00d475e3, 0x02bf90e0, 0x0026d837, 0x03cd207d, 0x011b9a36, 0x0028767b}}, Y: Field{[10]uint32{0x03a558a0, 0x016fc1f7, 0x00c6007d, 0x00ef9aaa, 0x0078bd5e, 0x03a7fb95, 0x002cb779, 0x00fca7b0, 0x017ca127, 0x000da0f2}}},
+ {X: Field{[10]uint32{0x01bd48c7, 0x03e43814, 0x03dac844, 0x0269dfac, 0x013e8f62, 0x022bff28, 0x01bbdc75, 0x03b55785, 0x01996311, 0x0036637a}}, Y: Field{[10]uint32{0x00ef2a22, 0x01127ca1, 0x037cc07d, 0x014e5a75, 0x02693943, 0x01de3970, 0x011b8100, 0x023b9da3, 0x014d272a, 0x0022bd86}}},
+ {X: Field{[10]uint32{0x019aac60, 0x022e8fea, 0x023edbee, 0x008e625e, 0x0060f4d2, 0x0197e014, 0x031ba80d, 0x03e8a6db, 0x01b7cd6a, 0x001e0ca3}}, Y: Field{[10]uint32{0x02fc5efb, 0x031ea79d, 0x02f01f35, 0x02171265, 0x02629f81, 0x0384d910, 0x023377f4, 0x00eb1204, 0x016f1d14, 0x0038df92}}},
+ {X: Field{[10]uint32{0x0336db5e, 0x0347d9b8, 0x02117223, 0x033f36c9, 0x005d9747, 0x02ca7b9b, 0x001e1c09, 0x02bc2cdf, 0x0093031f, 0x000f5c05}}, Y: Field{[10]uint32{0x037600ad, 0x033474f9, 0x008b6648, 0x0316e1fe, 0x03414ea3, 0x02d3a774, 0x01f7ce0a, 0x02c82ad0, 0x01408311, 0x00347a64}}},
+ {X: Field{[10]uint32{0x02288628, 0x03dd8ab3, 0x03a96e90, 0x021bf6fd, 0x000e2239, 0x02953b31, 0x015ba2a7, 0x0352ac2f, 0x00c047e0, 0x003d866b}}, Y: Field{[10]uint32{0x001564f2, 0x013b299e, 0x01de68fa, 0x037f3bed, 0x02f9cdcc, 0x039ff07b, 0x016a2d70, 0x017443f2, 0x023de154, 0x003c93ad}}},
+ {X: Field{[10]uint32{0x02d0a2d2, 0x02f0032a, 0x03489a1d, 0x00d678be, 0x0291718f, 0x03de5ff3, 0x004a8514, 0x016800cd, 0x01b871f8, 0x00332a02}}, Y: Field{[10]uint32{0x0090b037, 0x0047045a, 0x012f712b, 0x03b4e0a6, 0x03aba642, 0x007d8be5, 0x018f260a, 0x020d6489, 0x02b83565, 0x002df5ca}}},
+ {X: Field{[10]uint32{0x01c81958, 0x00fb471f, 0x03eeaa7d, 0x016d4706, 0x01aa26c4, 0x003ee851, 0x034eec03, 0x014076be, 0x0366ee2c, 0x002ef465}}, Y: Field{[10]uint32{0x035250fa, 0x03c6b3f7, 0x03cfeb98, 0x033b0cbb, 0x036c1ca4, 0x01c9110b, 0x030a6e89, 0x0184b9f3, 0x01ff70b3, 0x002f1c27}}},
+ {X: Field{[10]uint32{0x001cfadd, 0x01352bfb, 0x025f79c3, 0x03a0e9a2, 0x01ca8f0e, 0x01912a97, 0x03a19381, 0x02065c99, 0x00a0e4a5, 0x001a9bf7}}, Y: Field{[10]uint32{0x02732081, 0x0145fa74, 0x00c36db6, 0x01bf2b6c, 0x006bd7ff, 0x01faf31c, 0x0104298d, 0x01495730, 0x02367658, 0x0030a2c4}}},
+ {X: Field{[10]uint32{0x035c8006, 0x014c85b7, 0x00be02c5, 0x00ac05e9, 0x029564af, 0x014bc2b7, 0x03d693de, 0x00688bb9, 0x03e1fd40, 0x000248b8}}, Y: Field{[10]uint32{0x0088f757, 0x03ac7105, 0x004aa3b9, 0x031c82e5, 0x03696841, 0x032a2889, 0x0379e0c5, 0x012902e6, 0x0065aae8, 0x0029ec40}}},
+ {X: Field{[10]uint32{0x0276eac8, 0x020be629, 0x01490383, 0x036b5225, 0x03aff8a6, 0x00f2f4ec, 0x02bd9dae, 0x02d54fe4, 0x024e3526, 0x0014ffeb}}, Y: Field{[10]uint32{0x01f8c6f4, 0x0390fb66, 0x03d23cfd, 0x024b115b, 0x009e6652, 0x033a183b, 0x023b2228, 0x0202e0f4, 0x00aeb51f, 0x00207f7f}}},
+ {X: Field{[10]uint32{0x0203d119, 0x009e1882, 0x015b9772, 0x031ad574, 0x027c2e70, 0x00a73f92, 0x03e70289, 0x025be274, 0x01d1c945, 0x00052837}}, Y: Field{[10]uint32{0x036dd086, 0x03c7efa5, 0x02e83806, 0x03bed663, 0x007e8c94, 0x00f71956, 0x03e14835, 0x0074777d, 0x0071febe, 0x000ad770}}},
+ {X: Field{[10]uint32{0x0168c8f9, 0x0143c78f, 0x03f4dc01, 0x00a9ce7b, 0x00bebe27, 0x032bcee4, 0x01a25428, 0x03cd6ed4, 0x000dfb74, 0x001cda09}}, Y: Field{[10]uint32{0x00a7a27f, 0x02ea17b9, 0x03cd8fd2, 0x01cac572, 0x0321801a, 0x031191a7, 0x00c71687, 0x03a0b9dd, 0x0317b4c5, 0x00254e4a}}},
+ {X: Field{[10]uint32{0x00580560, 0x00340408, 0x0079e640, 0x0041ef16, 0x035fbdb6, 0x0105a217, 0x016825e2, 0x02ce748e, 0x0053b9ea, 0x001302a0}}, Y: Field{[10]uint32{0x03db5427, 0x02a5eef5, 0x002f093c, 0x0099820f, 0x02f5a6f8, 0x01022de7, 0x03f67f65, 0x0394c985, 0x02a75b7d, 0x00216888}}},
+ {X: Field{[10]uint32{0x01dabbf8, 0x00c814cf, 0x00a1e91e, 0x01abd5e4, 0x026751a2, 0x00cf7f2c, 0x01447a49, 0x03e2b2f6, 0x02a824a6, 0x00328359}}, Y: Field{[10]uint32{0x01395d18, 0x003cca5e, 0x016b2155, 0x0020297c, 0x036f7d7d, 0x03bc0790, 0x01fd49b1, 0x00211447, 0x018d4f8b, 0x00187322}}},
+ {X: Field{[10]uint32{0x01e9d6d4, 0x01629b95, 0x03a76453, 0x03dcd572, 0x01a3d7df, 0x031fec20, 0x020763b5, 0x01a8db54, 0x0375e62f, 0x00191a81}}, Y: Field{[10]uint32{0x037dbbb4, 0x006807de, 0x026f7a6b, 0x011b85f1, 0x01b11000, 0x00b24dbe, 0x01b23662, 0x00299083, 0x0044e738, 0x000f94a2}}},
+ {X: Field{[10]uint32{0x0055d070, 0x000c00d9, 0x007f2303, 0x00faa044, 0x01bac77f, 0x0014b69c, 0x02d7c477, 0x02f04c50, 0x01ecf3d6, 0x0010d559}}, Y: Field{[10]uint32{0x00c9f6bd, 0x027ad369, 0x02d159fa, 0x01706ba5, 0x03ab6edc, 0x027c31c3, 0x03ca8f6c, 0x023658d0, 0x009689fd, 0x0013b54a}}},
+ {X: Field{[10]uint32{0x03aa8f9d, 0x029d82e4, 0x0316fff6, 0x02b000dc, 0x037a014a, 0x018171a4, 0x01f22fee, 0x01512a94, 0x00969328, 0x00362c06}}, Y: Field{[10]uint32{0x0206edf3, 0x03dc964e, 0x020ac989, 0x020b9318, 0x01dd4127, 0x00525ed7, 0x0160719c, 0x01e6b4db, 0x0242a2b8, 0x0018fd47}}},
+ {X: Field{[10]uint32{0x023d48d7, 0x039511b5, 0x0399a21e, 0x02ed1fc1, 0x0283a30a, 0x03c60b97, 0x02f6f2b6, 0x00c14a52, 0x01504a9b, 0x002e51d6}}, Y: Field{[10]uint32{0x002fb876, 0x0241a243, 0x01018042, 0x01f0d2b8, 0x02968027, 0x038d62b5, 0x03896769, 0x0266fde6, 0x002837a8, 0x0032f1d0}}},
+ {X: Field{[10]uint32{0x038e0ef0, 0x01a89c7f, 0x02f0fc3e, 0x019c6c98, 0x01d521b4, 0x0121084d, 0x0201b5e3, 0x0356fb16, 0x00492972, 0x00050c5f}}, Y: Field{[10]uint32{0x02069381, 0x02419470, 0x006cfc20, 0x027930d2, 0x01d318e7, 0x036d20f6, 0x02a476a7, 0x033f48b9, 0x0235d1ce, 0x00331348}}},
+ {X: Field{[10]uint32{0x0144f8c6, 0x03753927, 0x005f8fcd, 0x01cd3a57, 0x0278c4b8, 0x0224a354, 0x0062ab33, 0x019fd13c, 0x03575b68, 0x0022ef6c}}, Y: Field{[10]uint32{0x0173a778, 0x025fccd4, 0x019fa90b, 0x028bb86d, 0x021279ec, 0x01f40398, 0x01a67e6c, 0x01015301, 0x03873242, 0x0034e34c}}},
+ {X: Field{[10]uint32{0x006aa685, 0x002c643c, 0x014761ab, 0x03e53b4c, 0x03380b00, 0x0265b035, 0x0279786b, 0x02f9e024, 0x02f636ec, 0x001ddd7f}}, Y: Field{[10]uint32{0x0355407b, 0x025bafcb, 0x018e12a9, 0x014cae0c, 0x00342431, 0x02e21711, 0x0257d7fc, 0x03596773, 0x0273162d, 0x0014c54a}}},
+ {X: Field{[10]uint32{0x01693b48, 0x0247030e, 0x0242ba74, 0x02955143, 0x00bc9b0e, 0x0279cbed, 0x02649502, 0x038ddef2, 0x03d139eb, 0x0036d792}}, Y: Field{[10]uint32{0x005a0abb, 0x025399b3, 0x00e62141, 0x003af6f9, 0x00416ca2, 0x00e209f7, 0x037ceb32, 0x025ab68c, 0x0113a5a7, 0x002991a0}}},
+ {X: Field{[10]uint32{0x01c619eb, 0x013fc47c, 0x020fc241, 0x00c5c255, 0x016ebf06, 0x03c1a73c, 0x0011be39, 0x014b8bab, 0x03b0578c, 0x003aac15}}, Y: Field{[10]uint32{0x01023f67, 0x036d157f, 0x01f750cd, 0x03386031, 0x006fb041, 0x030b787a, 0x00e5c6c3, 0x02e2a116, 0x023fcf69, 0x00150880}}},
+ {X: Field{[10]uint32{0x03f5e44c, 0x00460ff9, 0x02fe6d02, 0x00c90639, 0x02c231ba, 0x01944ccf, 0x02d43cc0, 0x035845f8, 0x00d3c657, 0x003a557f}}, Y: Field{[10]uint32{0x028e6b57, 0x008a3d20, 0x02369cfe, 0x03f2cb8d, 0x02973095, 0x0311b176, 0x014953a4, 0x00bc9c91, 0x02986521, 0x003743aa}}},
+ {X: Field{[10]uint32{0x002d8e49, 0x01fe46c1, 0x027a72a0, 0x01cfabec, 0x03ec0f5e, 0x00759817, 0x011f596f, 0x03f0c30c, 0x005758ea, 0x0017d68f}}, Y: Field{[10]uint32{0x01cdf1a2, 0x00fbca97, 0x0090ccf2, 0x017a132a, 0x01c6d9f5, 0x02914dbd, 0x005a04aa, 0x02cbaa76, 0x00b01d1f, 0x0000f378}}},
+ {X: Field{[10]uint32{0x00b99bab, 0x00b64902, 0x019c0757, 0x03c9ab48, 0x0049c82c, 0x0012bc46, 0x03fbd7ae, 0x03787bbf, 0x01e4ff0a, 0x003ede8c}}, Y: Field{[10]uint32{0x01df2a01, 0x00ac1fcc, 0x0345a550, 0x00b01cd8, 0x039e6910, 0x03918f75, 0x006bc4eb, 0x0395fbba, 0x020c431d, 0x003aa1ea}}},
+ {X: Field{[10]uint32{0x03ae1ffb, 0x005de352, 0x02b44e41, 0x00f79ac8, 0x036ec18d, 0x020fb8e8, 0x01f8dd96, 0x01dde52e, 0x016aa3e8, 0x00355ec7}}, Y: Field{[10]uint32{0x000f62ee, 0x0235eaf7, 0x008ca73f, 0x015c08b6, 0x009fcb9e, 0x00f32ebb, 0x01adb0e4, 0x034bc027, 0x02d6b85b, 0x00095bff}}},
+ {X: Field{[10]uint32{0x03b8f1a6, 0x02b15232, 0x00b5bbd6, 0x00cb1c2f, 0x030f7268, 0x020da5ec, 0x00fc90e1, 0x0128e3bc, 0x0052d3a2, 0x0024c9bf}}, Y: Field{[10]uint32{0x02889a2b, 0x01629bc4, 0x0330801a, 0x03095355, 0x00d7d766, 0x0267ebea, 0x01176f5c, 0x00afab48, 0x00a0cc0a, 0x00218ef4}}},
+ {X: Field{[10]uint32{0x013caff4, 0x01e6d2ea, 0x036da360, 0x0354c4fb, 0x03d5d310, 0x0082b421, 0x0217e946, 0x02d7995d, 0x00d5abc9, 0x00160d8b}}, Y: Field{[10]uint32{0x022fc52f, 0x012350bd, 0x021c03da, 0x03cf098b, 0x03d6923c, 0x0390c88c, 0x03b673b2, 0x02ef635c, 0x00044e86, 0x00017ca9}}},
+ {X: Field{[10]uint32{0x001738ee, 0x03f3a061, 0x03681034, 0x01a5fa68, 0x01b8c4cd, 0x02cc6358, 0x001b3a96, 0x039a3c38, 0x00b9cd06, 0x001f7522}}, Y: Field{[10]uint32{0x019782cf, 0x0267af82, 0x0010f34a, 0x03414998, 0x00d963de, 0x00f4a4a8, 0x0370846a, 0x03225f2d, 0x01ed0130, 0x003f5ea9}}},
+ {X: Field{[10]uint32{0x00fe798d, 0x01419003, 0x0061df95, 0x0091aea0, 0x011fa2a3, 0x00ed05c1, 0x030d7d5a, 0x005550cc, 0x0302524c, 0x0026fde2}}, Y: Field{[10]uint32{0x00cf5a83, 0x009d5224, 0x00f48104, 0x0215da59, 0x00c7d063, 0x02d08672, 0x01d5a703, 0x01a0075e, 0x03d66d2e, 0x00167d4d}}},
+ {X: Field{[10]uint32{0x02b3fc47, 0x00f70d83, 0x03c39366, 0x02dbbbaf, 0x00e71513, 0x02ef5b47, 0x01b4f879, 0x03572c63, 0x0173743a, 0x0013205a}}, Y: Field{[10]uint32{0x0141105f, 0x010b6243, 0x00254ab1, 0x03af545b, 0x0044c6f8, 0x0003e594, 0x033ef09f, 0x025002a4, 0x02ac37a4, 0x00069b71}}},
+ {X: Field{[10]uint32{0x01051be8, 0x00715bec, 0x031a835c, 0x0169fc00, 0x00173f4e, 0x003ce89b, 0x02964084, 0x018d0d64, 0x03c2c748, 0x001818da}}, Y: Field{[10]uint32{0x03e88e8b, 0x03763d76, 0x01b08541, 0x01adf3e0, 0x020efc2e, 0x0346f95b, 0x024190b0, 0x00af25c2, 0x037a3aed, 0x001c69e2}}},
+ {X: Field{[10]uint32{0x03f8d00a, 0x01e83cc1, 0x00a2f004, 0x00dd0329, 0x03122115, 0x03579b34, 0x0263fc94, 0x0029c1b1, 0x02dec3e9, 0x0029b9dc}}, Y: Field{[10]uint32{0x00eed520, 0x029f1cf4, 0x032ca76b, 0x00875e30, 0x00f10902, 0x002a87ae, 0x02175a81, 0x01c60529, 0x021f5c72, 0x00096e3f}}},
+ {X: Field{[10]uint32{0x00b89262, 0x00c9395f, 0x026c9019, 0x004c598c, 0x031692f6, 0x02a2feeb, 0x03b4b2aa, 0x01c857ea, 0x013c6030, 0x001e7199}}, Y: Field{[10]uint32{0x02197bcb, 0x039fb4b4, 0x028f8db1, 0x00f08138, 0x03c24eaa, 0x0025572f, 0x0379da4c, 0x02525b8a, 0x0112b6b4, 0x000db57b}}},
+ {X: Field{[10]uint32{0x0246cb15, 0x02a151b5, 0x0242ed4b, 0x013aaaf6, 0x034a2bdb, 0x03911530, 0x0374af4c, 0x03eb7b51, 0x032e4530, 0x000fd55a}}, Y: Field{[10]uint32{0x00fd25c3, 0x00a4e27b, 0x039e0588, 0x0360e5f3, 0x02c9fd04, 0x01717138, 0x028996bf, 0x010cc4ef, 0x03211ce8, 0x002eac74}}},
+ {X: Field{[10]uint32{0x03b3913a, 0x009cedcf, 0x01dd93b7, 0x00abce18, 0x02d645c5, 0x03dcc7f8, 0x011e0fbc, 0x03fa7d78, 0x02238d21, 0x003b6966}}, Y: Field{[10]uint32{0x012bbfee, 0x006e6a1c, 0x02562416, 0x015d032c, 0x03d3cea8, 0x01d6dfad, 0x0029c06d, 0x0082e0b3, 0x03014ba3, 0x0008bc8b}}},
+ {X: Field{[10]uint32{0x01e68548, 0x02909e5f, 0x02cb0c42, 0x00aea7d8, 0x033a2bea, 0x01c753c0, 0x0158adf0, 0x03ed3cda, 0x0277323d, 0x0001e87a}}, Y: Field{[10]uint32{0x024825a0, 0x030fc809, 0x01940f6c, 0x0147dbd0, 0x006d2d7f, 0x00984c63, 0x036f9766, 0x00ad7689, 0x0225ee7a, 0x001219b3}}},
+ {X: Field{[10]uint32{0x0323de2a, 0x0330f668, 0x00178a0e, 0x023d8b57, 0x0233d102, 0x02421db8, 0x027c51d5, 0x035b42eb, 0x013aad62, 0x0002b43f}}, Y: Field{[10]uint32{0x003b0601, 0x0100e082, 0x02787a6d, 0x01f7b660, 0x01d16315, 0x01e4b5d8, 0x034a64eb, 0x011a7d53, 0x00c59672, 0x00223809}}},
+ {X: Field{[10]uint32{0x002729d3, 0x001b3718, 0x00dfd207, 0x01c6358d, 0x03ee7437, 0x02e12972, 0x016e9d67, 0x0129a55b, 0x0032f404, 0x0006fc65}}, Y: Field{[10]uint32{0x00516aa9, 0x00710c1f, 0x0292263d, 0x0270fe93, 0x034f2acd, 0x01b0dfa6, 0x02f8e3e1, 0x028681d7, 0x0200afb6, 0x0010452c}}},
+ {X: Field{[10]uint32{0x0121d93b, 0x008130b8, 0x019afc35, 0x017c4b48, 0x012fb1af, 0x0002da53, 0x023b9d5f, 0x036bea2f, 0x02f20bc2, 0x00145185}}, Y: Field{[10]uint32{0x022eaf9c, 0x01cb33e4, 0x0058a740, 0x02dc1140, 0x0257ba8e, 0x0196b6fc, 0x03f4e0a0, 0x00a673d9, 0x0253608a, 0x000f973b}}},
+ {X: Field{[10]uint32{0x0121a661, 0x000b685a, 0x01a1c3b0, 0x00c1aa38, 0x00fdc423, 0x033fcd39, 0x0321d181, 0x03b4c64d, 0x00e85338, 0x00238ffb}}, Y: Field{[10]uint32{0x00f686d2, 0x01993e08, 0x03b2e077, 0x010e2ccc, 0x03128945, 0x032b267b, 0x02dfc249, 0x0121ad9d, 0x034b6736, 0x002c255c}}},
+ {X: Field{[10]uint32{0x03ad4447, 0x0350e329, 0x03355916, 0x02682b98, 0x016db1eb, 0x0362882e, 0x00421867, 0x007b4a4a, 0x0020df10, 0x0011b01a}}, Y: Field{[10]uint32{0x01f1afa9, 0x031eaf37, 0x0226f9ac, 0x01606f3f, 0x01d7d439, 0x0051ed4d, 0x00d1b601, 0x02dcff12, 0x00f4059b, 0x003f2a84}}},
+ {X: Field{[10]uint32{0x03722b31, 0x031f6ff3, 0x02dba0fe, 0x01a470bb, 0x013fff8c, 0x02cdebdc, 0x001e406a, 0x00e42ac0, 0x01f71f9b, 0x00158cd3}}, Y: Field{[10]uint32{0x026707dc, 0x01082f1c, 0x006904af, 0x031011d1, 0x038a3724, 0x01269b24, 0x03c4b0bf, 0x03055a9c, 0x0394340d, 0x0008b410}}},
+ {X: Field{[10]uint32{0x00a67c4f, 0x020998c3, 0x03d37cb8, 0x03e86d72, 0x03b2fd55, 0x03294b48, 0x03e3dc97, 0x017e3276, 0x006d8904, 0x00080b89}}, Y: Field{[10]uint32{0x017a62b1, 0x039ec828, 0x033659a2, 0x038d44f2, 0x027a6241, 0x0116201c, 0x01f661ec, 0x03c08c72, 0x03899cbc, 0x003d39b3}}},
+ {X: Field{[10]uint32{0x039bd4d5, 0x008e7a66, 0x0009dece, 0x01735979, 0x03c56b63, 0x00d54bbf, 0x03c1ff94, 0x0070b3d6, 0x02e01021, 0x00320153}}, Y: Field{[10]uint32{0x03f31057, 0x008a09c5, 0x0046b46e, 0x034419e3, 0x010bf1eb, 0x02e152c1, 0x02842b43, 0x0072f379, 0x01af5160, 0x003d4145}}},
+ {X: Field{[10]uint32{0x00438383, 0x00954e05, 0x004f51c6, 0x02b95be6, 0x01ea3282, 0x02e5c068, 0x01407084, 0x02d86b4a, 0x008c235e, 0x00270a5e}}, Y: Field{[10]uint32{0x0359ead7, 0x01c3b125, 0x0286c2ab, 0x010a6774, 0x00c116cc, 0x02b4c38c, 0x02469db4, 0x03bcb88d, 0x02ecefdb, 0x000c8447}}},
+ {X: Field{[10]uint32{0x01a57ef8, 0x005d1706, 0x009e74bc, 0x008cd9d4, 0x02729990, 0x02530f35, 0x028dc86f, 0x030e51c1, 0x00d0b7b5, 0x0016153a}}, Y: Field{[10]uint32{0x023eb98d, 0x02dd72e9, 0x005f2345, 0x001505f5, 0x00edafec, 0x03834b4f, 0x00c41134, 0x02faf7d4, 0x01c50c06, 0x001f9e40}}},
+ {X: Field{[10]uint32{0x033fef34, 0x03ea247d, 0x010b74d0, 0x03767239, 0x011104a5, 0x0151e913, 0x0046e1b3, 0x039e2681, 0x03f0f45b, 0x0022ecbf}}, Y: Field{[10]uint32{0x03b182c1, 0x02a45cdc, 0x03a7935d, 0x037dc888, 0x03efb979, 0x00e0fdd9, 0x0171e2bc, 0x00fa99b1, 0x0365a534, 0x0030ccb8}}},
+ {X: Field{[10]uint32{0x00cd209e, 0x022d5863, 0x033c45ad, 0x015b71cc, 0x02992f56, 0x02d90f36, 0x0165faac, 0x00ce1e18, 0x02656ee4, 0x0003aa23}}, Y: Field{[10]uint32{0x01f0f909, 0x02a0e897, 0x006f1fd0, 0x012a10e6, 0x02af9f4f, 0x0115c971, 0x03357ab8, 0x00d0f62a, 0x00d64a7a, 0x0030e310}}},
+ {X: Field{[10]uint32{0x0046295a, 0x0075aa51, 0x01ff6698, 0x02e33236, 0x02a3b18a, 0x00352e8a, 0x0322c2ee, 0x01fa984c, 0x00df857c, 0x00303075}}, Y: Field{[10]uint32{0x0172b981, 0x00bf8167, 0x02918729, 0x0123aede, 0x029a2846, 0x0326f91a, 0x02ae1dbe, 0x03bdf739, 0x01d10e8e, 0x00091c45}}},
+ {X: Field{[10]uint32{0x007fc72a, 0x0380a33b, 0x0265db74, 0x0049e4ae, 0x0267b8e2, 0x02dc8faf, 0x0008d8dd, 0x00d800aa, 0x00f9407d, 0x002479a9}}, Y: Field{[10]uint32{0x005721ba, 0x0394104f, 0x0299547e, 0x02ed1e92, 0x0212e57d, 0x00841b82, 0x00e98f7b, 0x022fa173, 0x016035f5, 0x003bdab9}}},
+ {X: Field{[10]uint32{0x03208454, 0x0253823e, 0x03078187, 0x000b8873, 0x0224a7a4, 0x020340d9, 0x015cf613, 0x0074d8a6, 0x02189a8c, 0x00335d25}}, Y: Field{[10]uint32{0x03af0bd9, 0x00b17b72, 0x024f6ba0, 0x00bc748e, 0x022dd6ba, 0x022bf2ae, 0x03debcf8, 0x03e44a80, 0x02be15d1, 0x003cf724}}},
+ {X: Field{[10]uint32{0x02943018, 0x01d4bfe0, 0x015e9f71, 0x0196bc28, 0x0285f630, 0x013ac929, 0x004f3fa4, 0x0239c30c, 0x012d02e6, 0x00267d74}}, Y: Field{[10]uint32{0x020b8a9e, 0x01a37076, 0x01dfb611, 0x020091b5, 0x01dff9f9, 0x0028a5ec, 0x03962c9c, 0x02fccda3, 0x021ad97e, 0x00167c64}}},
+ {X: Field{[10]uint32{0x01f7608f, 0x03580aee, 0x02dff7b3, 0x036e77ae, 0x01a6ac02, 0x01745c64, 0x0256b1e7, 0x01c25845, 0x0130f9c0, 0x0018f1b3}}, Y: Field{[10]uint32{0x021083f0, 0x00fffbd1, 0x017234b7, 0x03d03b9c, 0x006d8b1e, 0x02add6f9, 0x025f0a13, 0x006e3f83, 0x037370a4, 0x000b90e4}}},
+ {X: Field{[10]uint32{0x01184d92, 0x0357a5d7, 0x01e9394c, 0x011c602c, 0x019e04fe, 0x01f9b06c, 0x037fc551, 0x03a84766, 0x032690a5, 0x002dd01f}}, Y: Field{[10]uint32{0x013de6d2, 0x0233df54, 0x0301aaed, 0x0200f835, 0x03828ee8, 0x0299e5b9, 0x020f7277, 0x012611d0, 0x012947dd, 0x0006e54e}}},
+ {X: Field{[10]uint32{0x0383fd40, 0x03e69b78, 0x02297150, 0x023761ad, 0x02c29ce4, 0x01e94015, 0x0121e962, 0x02210375, 0x0116161c, 0x000925e4}}, Y: Field{[10]uint32{0x00b9a70b, 0x03826c0a, 0x03649143, 0x010fdee8, 0x0076f999, 0x03ec5992, 0x00d3e325, 0x0273dce1, 0x01ab3dd6, 0x0004f75c}}},
+ {X: Field{[10]uint32{0x01d73b7d, 0x037a3dfe, 0x0196b6f2, 0x00651943, 0x030b4199, 0x03210542, 0x016c80d4, 0x02c9e219, 0x02c36122, 0x003c426d}}, Y: Field{[10]uint32{0x011c96ac, 0x03ab575e, 0x01c77142, 0x01ad284f, 0x01bd971f, 0x02525be1, 0x0291d4a3, 0x03553702, 0x0369bef8, 0x0029d15c}}},
+ {X: Field{[10]uint32{0x01118df9, 0x038edb5a, 0x015169f0, 0x000289ad, 0x0136be99, 0x03ef42b0, 0x017c9297, 0x030dc13c, 0x03f82031, 0x00166cc0}}, Y: Field{[10]uint32{0x03d678c3, 0x0197af4b, 0x01e02d6c, 0x01b431a5, 0x01983030, 0x00d41a30, 0x008c936b, 0x009c696b, 0x00dd1666, 0x000c31f1}}},
+ {X: Field{[10]uint32{0x0062fc52, 0x00e5d3b5, 0x02cd6602, 0x006b4afd, 0x01a67862, 0x01ee2132, 0x0254cd6c, 0x00436d2e, 0x019aeb39, 0x001989cd}}, Y: Field{[10]uint32{0x0110d487, 0x03115f6a, 0x010b2555, 0x0377a93d, 0x00feab83, 0x024de5de, 0x00867347, 0x01e29ff1, 0x01bad2de, 0x002f2f3e}}},
+ {X: Field{[10]uint32{0x0151f1d9, 0x009e16b7, 0x0281e921, 0x00104610, 0x00ec7efc, 0x003a062b, 0x01d23059, 0x0141f672, 0x0180c4fb, 0x001dbf6b}}, Y: Field{[10]uint32{0x03a8c346, 0x03b376f8, 0x0119a18c, 0x0035ff27, 0x039b88b7, 0x01566156, 0x00adf7ef, 0x03cc1fcd, 0x03cc349c, 0x00332331}}},
+ {X: Field{[10]uint32{0x01313330, 0x00ede478, 0x00700b98, 0x032d30a2, 0x037f2380, 0x02a6ebf6, 0x03ed9cc4, 0x03c2294b, 0x0006e99c, 0x0001e24d}}, Y: Field{[10]uint32{0x0111d149, 0x03e02bc9, 0x0007450e, 0x00ede96e, 0x00d0c2e8, 0x02f56e3b, 0x001acd3f, 0x03f96b42, 0x01af39ea, 0x003b0578}}},
+ {X: Field{[10]uint32{0x038c81d5, 0x02c6e820, 0x039ff3bb, 0x033760e8, 0x01018f16, 0x003a0d3d, 0x013c229d, 0x0084cfb6, 0x02a4e8d0, 0x00031152}}, Y: Field{[10]uint32{0x03ac51f0, 0x00ecea1c, 0x01f5c67e, 0x039b7afd, 0x018af57b, 0x00a69b96, 0x00959245, 0x00e023d2, 0x01cf89c4, 0x002a6398}}},
+ {X: Field{[10]uint32{0x02402880, 0x002d845c, 0x0327bf99, 0x03b8e55e, 0x0097dac1, 0x0108e404, 0x02ba8f96, 0x03048b74, 0x021ccbe5, 0x003fc2f0}}, Y: Field{[10]uint32{0x03bca50a, 0x0334e59d, 0x020da467, 0x03dc14a5, 0x01ecd634, 0x039117b0, 0x00cd5f89, 0x00860635, 0x009c1f7b, 0x00030d02}}},
+ {X: Field{[10]uint32{0x0331c301, 0x00789e4d, 0x0373586f, 0x03a74fad, 0x003a0e61, 0x004ade3c, 0x0132e398, 0x0108ef60, 0x02e349a0, 0x00239121}}, Y: Field{[10]uint32{0x022053a1, 0x01ee6ca6, 0x0083ca8a, 0x02130422, 0x0116bbf0, 0x037088bb, 0x021866f4, 0x0098354b, 0x00d437cc, 0x00225ec9}}},
+ {X: Field{[10]uint32{0x01c579e7, 0x03e96d13, 0x03584590, 0x01b04e11, 0x010bf7fb, 0x00d44227, 0x00a30d20, 0x0313a5ab, 0x017f84f5, 0x0013d329}}, Y: Field{[10]uint32{0x01e63a9e, 0x0094396b, 0x010b717d, 0x01d63ca3, 0x01336349, 0x0286e46a, 0x031cb1f8, 0x0155b0db, 0x03dc1691, 0x00354f6d}}},
+ {X: Field{[10]uint32{0x03c203bb, 0x002ab633, 0x02423c76, 0x01bce22d, 0x0279b3a9, 0x02bb63ee, 0x00618300, 0x013ea417, 0x00b2d7a2, 0x003fa249}}, Y: Field{[10]uint32{0x00b056be, 0x033a8cb4, 0x0026a7e3, 0x02103ea3, 0x00e92c37, 0x02c5f82b, 0x0279df9c, 0x0038afd3, 0x0229c6be, 0x002f4c0f}}},
+ {X: Field{[10]uint32{0x006abb5d, 0x03345371, 0x03fc5dcd, 0x028cc83c, 0x03008ed9, 0x014be66c, 0x005895d1, 0x031cbe1a, 0x035cf6a8, 0x000c267d}}, Y: Field{[10]uint32{0x02fc9f1c, 0x0082cba9, 0x000bc6fc, 0x0313038b, 0x0304a939, 0x02a570a9, 0x038a32c2, 0x014a7289, 0x002aec76, 0x003eed6f}}},
+ {X: Field{[10]uint32{0x0072f4eb, 0x0170b727, 0x004b9741, 0x0088ab0e, 0x03432443, 0x00901727, 0x0232de01, 0x009bced9, 0x0383f841, 0x000ee4e7}}, Y: Field{[10]uint32{0x005607fb, 0x030932bc, 0x0255f1d3, 0x031fd22f, 0x01c1e602, 0x00e84e2d, 0x014cc202, 0x010e03a7, 0x0353ec45, 0x00210edc}}},
+ {X: Field{[10]uint32{0x01c732d8, 0x03191b65, 0x009327b0, 0x025f5b4c, 0x00b032f1, 0x00e12a4e, 0x023cbc06, 0x038d1772, 0x02a04a50, 0x00371d41}}, Y: Field{[10]uint32{0x03d5772a, 0x0378e766, 0x039eae8d, 0x013ad88f, 0x01c6a39d, 0x0345bd0f, 0x039559a3, 0x02758a67, 0x0311f6d4, 0x003fa508}}},
+ {X: Field{[10]uint32{0x03b30dea, 0x03483aa0, 0x01433f84, 0x03ed2af2, 0x003dde68, 0x01c875d7, 0x02fb61a2, 0x01a8d45c, 0x0196c699, 0x003d6931}}, Y: Field{[10]uint32{0x01f26572, 0x01a02ee7, 0x018e35ae, 0x00c3bdf7, 0x02fd783b, 0x034c2e58, 0x02ef9220, 0x03d8eeec, 0x013e77d2, 0x0005d783}}},
+ {X: Field{[10]uint32{0x02a4029e, 0x02f87e6b, 0x03133cb9, 0x01a4098b, 0x01373c2f, 0x03de7d2c, 0x01222ae2, 0x00127f97, 0x00e2c499, 0x001fa40e}}, Y: Field{[10]uint32{0x0025c737, 0x01bccae0, 0x03dfe714, 0x012c888e, 0x031d7dc6, 0x015428d8, 0x00162766, 0x00d6f038, 0x026a3433, 0x000d64b9}}},
+ {X: Field{[10]uint32{0x022b1f41, 0x01227ffd, 0x0050f0af, 0x00eb6482, 0x02e2cb80, 0x03e643ad, 0x0028e921, 0x03f1bf5b, 0x0373d16b, 0x00203c8b}}, Y: Field{[10]uint32{0x03503b28, 0x02f5df9e, 0x02d682a1, 0x00471c9b, 0x00370e67, 0x0133d360, 0x03e11fd2, 0x01d2f01c, 0x01d3c5ee, 0x0021c529}}},
+ {X: Field{[10]uint32{0x020c897d, 0x021efebf, 0x03535fc8, 0x001f6748, 0x03007c31, 0x02e5bf82, 0x0070a58a, 0x014fe10d, 0x02e9e86e, 0x0012628a}}, Y: Field{[10]uint32{0x0001bb53, 0x033b4e99, 0x0209ec3c, 0x02754ee1, 0x037ec380, 0x02acc207, 0x020f6516, 0x01078509, 0x02b373e8, 0x0011eaa7}}},
+ {X: Field{[10]uint32{0x033a010e, 0x0377cc0e, 0x03b6d960, 0x026a009d, 0x028e9c06, 0x029e31d1, 0x012c5427, 0x03861329, 0x024cd14c, 0x001806bd}}, Y: Field{[10]uint32{0x02b7fa18, 0x00734833, 0x00d59916, 0x026c00ef, 0x0156dd57, 0x00b21fbd, 0x0346c273, 0x01db4046, 0x023fca15, 0x000a4029}}},
+ {X: Field{[10]uint32{0x0174a25b, 0x00d07fcb, 0x019849a1, 0x03c41775, 0x03957f2b, 0x008aa9a0, 0x018b06a8, 0x032f12b5, 0x00f07b2f, 0x0023ecb8}}, Y: Field{[10]uint32{0x01070aa4, 0x01a32d1d, 0x016e6b7c, 0x032427db, 0x0306137d, 0x0357e0ab, 0x03386f75, 0x01f3aac6, 0x03508d79, 0x001f3608}}},
+ {X: Field{[10]uint32{0x0269e6d9, 0x03962bda, 0x0282c9bd, 0x02bebbcc, 0x0083468e, 0x01cb18ef, 0x01a14980, 0x0053a2d5, 0x000f0e9d, 0x000cdb5e}}, Y: Field{[10]uint32{0x023d2261, 0x008c8529, 0x00fb00b7, 0x01e7d3f8, 0x02ac3e66, 0x03f4061e, 0x02eba682, 0x02fb9ae3, 0x0004be45, 0x00024b44}}},
+ {X: Field{[10]uint32{0x00d5872d, 0x011fbea4, 0x021a5e4e, 0x000f338f, 0x02b06343, 0x02c0eaba, 0x00d2cbdf, 0x021c113e, 0x0321f4d5, 0x00141eb1}}, Y: Field{[10]uint32{0x007174d9, 0x0348b20c, 0x02f0e917, 0x0254e72a, 0x009ba53c, 0x01ee0f58, 0x00550939, 0x00175e84, 0x018de7db, 0x002e268e}}},
+ {X: Field{[10]uint32{0x033ba343, 0x01a22a51, 0x009a046e, 0x0132fa86, 0x00992c60, 0x019b004b, 0x0171026f, 0x03ee58a4, 0x02c13bb7, 0x00310b73}}, Y: Field{[10]uint32{0x014f7bb5, 0x007380b9, 0x0064be3c, 0x03b00d4d, 0x018fe010, 0x0104e4a7, 0x021bfe7c, 0x008f2e80, 0x0331a532, 0x0022a8dd}}},
+ {X: Field{[10]uint32{0x02866a2c, 0x010651ca, 0x00417d9f, 0x02d9400e, 0x00857eed, 0x03144212, 0x026b5c45, 0x024e8b57, 0x02c3cd60, 0x002c0ba8}}, Y: Field{[10]uint32{0x03a5527c, 0x027049cb, 0x01bf86ac, 0x03a31d69, 0x03ed1d8e, 0x033f3a4e, 0x037c5058, 0x0243186e, 0x0050cea1, 0x003aed17}}},
+ {X: Field{[10]uint32{0x0370d84b, 0x005f117b, 0x02db151e, 0x010566df, 0x0185626d, 0x03aad0ed, 0x03dc2c9a, 0x03b4b89c, 0x03d29f20, 0x003d3464}}, Y: Field{[10]uint32{0x02dd0974, 0x03946586, 0x027e7280, 0x01b1847a, 0x0101f84b, 0x0133695e, 0x013f8cf1, 0x00d28b12, 0x023f19b8, 0x002f6866}}},
+ {X: Field{[10]uint32{0x025f1bb0, 0x01fed93f, 0x02857eef, 0x02ec7fdb, 0x03cc84f6, 0x0340c0b4, 0x0059b9e4, 0x0318add6, 0x00eb19ea, 0x0021d037}}, Y: Field{[10]uint32{0x03c6ca49, 0x023eda39, 0x01d1b1d9, 0x03780522, 0x00f2f151, 0x03ad4887, 0x01d5b6e7, 0x008168b8, 0x02b04783, 0x00029ca7}}},
+ {X: Field{[10]uint32{0x00fcc9cb, 0x017a88e1, 0x03f6c92a, 0x0098da4e, 0x0050aec6, 0x011273a2, 0x010bc940, 0x027c2364, 0x024a85a2, 0x001e7b11}}, Y: Field{[10]uint32{0x02f53b39, 0x039a3a83, 0x03a2cd44, 0x01131896, 0x03a1d7c5, 0x0216aeb8, 0x02d476d0, 0x0342ca6a, 0x00f5b52e, 0x001df45c}}},
+ {X: Field{[10]uint32{0x0207fceb, 0x03bf338c, 0x01238847, 0x03011622, 0x006fb3aa, 0x0157abf5, 0x000e29b2, 0x02edc72f, 0x00d5dd54, 0x0013c406}}, Y: Field{[10]uint32{0x03e7dd8c, 0x00bd938e, 0x0222224a, 0x0364b505, 0x03a64531, 0x01c7ef8e, 0x029b2a02, 0x030b9dce, 0x01e5d23c, 0x0030ca06}}},
+ {X: Field{[10]uint32{0x03e969a1, 0x00181efe, 0x00eb033a, 0x02ae05e0, 0x00e53768, 0x032a1735, 0x0325de68, 0x03a17f76, 0x01362094, 0x0037efc6}}, Y: Field{[10]uint32{0x0380e563, 0x025f876b, 0x0067193d, 0x02eb82df, 0x00a2ca3a, 0x00cb7af3, 0x005f1e49, 0x00870cab, 0x035933ba, 0x00097a82}}},
+ {X: Field{[10]uint32{0x01226649, 0x02ed06a1, 0x034f9b67, 0x01c41505, 0x010940a3, 0x02184912, 0x01805f10, 0x01a20cb0, 0x02c002c3, 0x00061319}}, Y: Field{[10]uint32{0x00662eaf, 0x03fb1f7e, 0x03487ec4, 0x016ea442, 0x00736f81, 0x03814c39, 0x034a24c1, 0x031e453e, 0x0244f1cf, 0x0033d8ff}}},
+ {X: Field{[10]uint32{0x03043686, 0x01043d43, 0x022e0a0f, 0x0027d40c, 0x03ede9de, 0x02090b90, 0x01a8a51a, 0x03813b8e, 0x0206d386, 0x0036aacd}}, Y: Field{[10]uint32{0x0011718a, 0x01dc63b5, 0x015e5dbb, 0x0208ea75, 0x00fbb2b6, 0x03a3dba3, 0x010d0ac4, 0x01f441bf, 0x01c40ebe, 0x000302e8}}},
+ {X: Field{[10]uint32{0x0204530f, 0x0330ce5f, 0x00dfa89d, 0x0059a408, 0x0026b0e2, 0x021234cd, 0x00219d1f, 0x03c94ae8, 0x034a5311, 0x0002a21f}}, Y: Field{[10]uint32{0x01edeace, 0x023de7e7, 0x03195287, 0x0113bb34, 0x02a5b4fa, 0x03680773, 0x029bff3e, 0x032b1fd0, 0x00bd8c37, 0x00169f01}}},
+ {X: Field{[10]uint32{0x002d207a, 0x008fd85f, 0x0158d281, 0x001eca12, 0x024784a9, 0x0216bef3, 0x01dbfd5a, 0x03ae6135, 0x0264409f, 0x0006cc55}}, Y: Field{[10]uint32{0x03a205bb, 0x02715a2a, 0x01c37311, 0x02eaa66f, 0x0384eea5, 0x0165ff55, 0x001d4634, 0x02396961, 0x007cba34, 0x000a5cb3}}},
+ {X: Field{[10]uint32{0x01fe4984, 0x037e85ac, 0x00d1f019, 0x027e0bb2, 0x016727e6, 0x035fa119, 0x035de1e0, 0x00355b57, 0x03d427c3, 0x000552b7}}, Y: Field{[10]uint32{0x020372b5, 0x0265dd4f, 0x02079981, 0x0312487c, 0x03882477, 0x01fe94b7, 0x01f61baa, 0x009e7912, 0x028a324b, 0x0016ea1b}}},
+ {X: Field{[10]uint32{0x00480994, 0x03b03562, 0x02f9494f, 0x027ed130, 0x02585fe8, 0x02c6bcf0, 0x00df417c, 0x03057eca, 0x01f9fe55, 0x0037af5a}}, Y: Field{[10]uint32{0x03f9708d, 0x038f35d5, 0x03c9ef8d, 0x03fe4d17, 0x03002564, 0x03f3d85a, 0x031b8314, 0x01b493a2, 0x002155c1, 0x00263633}}},
+ {X: Field{[10]uint32{0x03baf9e2, 0x01124abb, 0x0066b71d, 0x00f7edcb, 0x01e0316c, 0x01563119, 0x0055fc09, 0x0153e68a, 0x00902a7c, 0x0027f34d}}, Y: Field{[10]uint32{0x03f5d14c, 0x029a47fd, 0x00be51cf, 0x03a09926, 0x03143e1d, 0x0356ae99, 0x029e49c8, 0x02905a27, 0x0160c2b5, 0x0029eb10}}},
+ {X: Field{[10]uint32{0x0143a727, 0x02fe9ce2, 0x019bbfda, 0x024bbb83, 0x00586fd7, 0x03cf79f8, 0x00fb1d2d, 0x02ba6566, 0x01f6fe4b, 0x001672b3}}, Y: Field{[10]uint32{0x020df035, 0x0348d045, 0x01acfed8, 0x031034de, 0x03624599, 0x02471213, 0x00d349e1, 0x02b45b1d, 0x01347b3e, 0x001f1cc3}}},
+ {X: Field{[10]uint32{0x03fb226c, 0x008bfb01, 0x00821677, 0x01cd01ea, 0x0134e6b3, 0x012b398d, 0x03a4c9ec, 0x00765f6c, 0x03d1fb29, 0x0017386a}}, Y: Field{[10]uint32{0x023b7526, 0x0037a3c0, 0x01d3f763, 0x01bc149d, 0x030a39de, 0x03fdea06, 0x02110255, 0x0025cf62, 0x0234b407, 0x002af091}}},
+ {X: Field{[10]uint32{0x0207d73c, 0x02c6a8c0, 0x01baf3af, 0x03433856, 0x01e70897, 0x02cc053d, 0x02680015, 0x002d3dbb, 0x028ebd0a, 0x003de0d8}}, Y: Field{[10]uint32{0x0039af61, 0x027e0273, 0x031df284, 0x03ee0ecb, 0x026c7a6e, 0x03d7efcc, 0x0268b6b1, 0x02e23252, 0x00fd5b96, 0x0034190e}}},
+ {X: Field{[10]uint32{0x037ba0b3, 0x01659614, 0x0200c6c1, 0x011dcbaf, 0x029a988d, 0x011074ba, 0x007130db, 0x00a7b8d7, 0x02bccc72, 0x001e0c3e}}, Y: Field{[10]uint32{0x0338fa7f, 0x02aab746, 0x0157e835, 0x02249fcb, 0x0378acc8, 0x0200e8cf, 0x01c901fa, 0x0345e0f5, 0x018e6aea, 0x00127a2d}}},
+ {X: Field{[10]uint32{0x03cba9e1, 0x014bead7, 0x03482062, 0x01270a3d, 0x006416d5, 0x03e692a4, 0x024399ee, 0x004a1886, 0x010ea890, 0x00324c0e}}, Y: Field{[10]uint32{0x0161cfce, 0x00443bec, 0x0019704d, 0x01f36aac, 0x023bab13, 0x0052d2f2, 0x014e8fdd, 0x0062883d, 0x03da3d06, 0x003e83a1}}},
+ {X: Field{[10]uint32{0x029cd28a, 0x0308f736, 0x018b52d0, 0x02c2979d, 0x03ba0924, 0x017c03b0, 0x0149876e, 0x00645dbe, 0x00672057, 0x000a836a}}, Y: Field{[10]uint32{0x00907647, 0x0342fc3f, 0x01dd1975, 0x007b3413, 0x0390c1fa, 0x01b7c473, 0x01b4870f, 0x00256565, 0x00fc6935, 0x0025b341}}},
+ {X: Field{[10]uint32{0x0046fc83, 0x00dd2cc5, 0x01c53256, 0x033b7072, 0x00f2bef6, 0x00e5a389, 0x036e92e0, 0x01606bd5, 0x01e260da, 0x003d9220}}, Y: Field{[10]uint32{0x027c8b94, 0x02dcbd43, 0x01ac3863, 0x0027e28b, 0x022aacec, 0x01247e95, 0x02f833db, 0x019fd10f, 0x005b660b, 0x002022a5}}},
+ {X: Field{[10]uint32{0x0381f052, 0x005fe66a, 0x00341330, 0x02205597, 0x00c181e4, 0x00243c78, 0x03cea175, 0x017c34e8, 0x013305ec, 0x0025c2f6}}, Y: Field{[10]uint32{0x02e9fc48, 0x0050c7c6, 0x00a796ca, 0x036ce519, 0x038eb30b, 0x01730066, 0x03b6658d, 0x01dd2bf2, 0x030fe284, 0x00134749}}},
+ {X: Field{[10]uint32{0x00c4779a, 0x0056f3b9, 0x03073354, 0x021824a0, 0x032c0588, 0x0172b465, 0x023ecfdf, 0x01507d1c, 0x033124c4, 0x0037fa52}}, Y: Field{[10]uint32{0x0140e23b, 0x0169eae5, 0x00b1c185, 0x03da2c65, 0x01d047af, 0x034d00f1, 0x03afe8c5, 0x0181aa83, 0x0253d547, 0x00330a0f}}},
+ {X: Field{[10]uint32{0x018df800, 0x00e8e7a1, 0x007e3bf3, 0x03463dc1, 0x0216c8bd, 0x021cdf43, 0x0230bbad, 0x0396523e, 0x0379673a, 0x003c604c}}, Y: Field{[10]uint32{0x007d294a, 0x011102ea, 0x015d2ed5, 0x03630921, 0x0220bfb9, 0x002d347c, 0x0008d50d, 0x00b6fe6c, 0x01a6139a, 0x002b34b0}}},
+ {X: Field{[10]uint32{0x01423740, 0x001810db, 0x00f3ec21, 0x025e70da, 0x008890ec, 0x03036c32, 0x0192bd01, 0x006f7d44, 0x0156fb63, 0x003d3ef0}}, Y: Field{[10]uint32{0x03b7149f, 0x02409b07, 0x03f4b4f6, 0x00eb7d21, 0x039cfccd, 0x0061d2eb, 0x01faf91e, 0x037bfd0c, 0x00f05b07, 0x000f2c23}}},
+ {X: Field{[10]uint32{0x0393de6d, 0x00893881, 0x01bbed36, 0x0179d150, 0x00cb9267, 0x033116a0, 0x03a9a725, 0x0275c929, 0x00e83b07, 0x00049369}}, Y: Field{[10]uint32{0x008d00e7, 0x02d26195, 0x01e6ac6f, 0x00c7a819, 0x001cd155, 0x029d6555, 0x02200fb2, 0x0032e935, 0x0066f12e, 0x000f9c00}}},
+ {X: Field{[10]uint32{0x038d1138, 0x033a586d, 0x00c16428, 0x00b40ab2, 0x006c2b11, 0x019ae5f4, 0x02045bb2, 0x01e09877, 0x01c4455e, 0x001d25c8}}, Y: Field{[10]uint32{0x015a3032, 0x01567f01, 0x03b87086, 0x0250e7c1, 0x01025bc5, 0x00cc9b1f, 0x015b237d, 0x00c70bfa, 0x02eda3f3, 0x0009d55a}}},
+ {X: Field{[10]uint32{0x0227a028, 0x026a46dd, 0x00e979ff, 0x02eff531, 0x00257676, 0x0143efd6, 0x0060dfed, 0x023d5487, 0x02490aa5, 0x0018b372}}, Y: Field{[10]uint32{0x015c37b5, 0x03b58156, 0x00fbbd10, 0x02229c52, 0x0317c4a6, 0x03d0cfa3, 0x021528b4, 0x0043a9fb, 0x039ae16d, 0x0022f526}}},
+ {X: Field{[10]uint32{0x006478c6, 0x01692c5a, 0x01344789, 0x03a205d6, 0x011cd3a1, 0x03b4592c, 0x013b2275, 0x00ea985b, 0x00f139b1, 0x00193594}}, Y: Field{[10]uint32{0x01fa5c2f, 0x00f61fcf, 0x03a426b8, 0x0195ee56, 0x02f9e2a0, 0x02590d00, 0x039595b7, 0x00b61fcc, 0x012af757, 0x0037bbb9}}},
+ {X: Field{[10]uint32{0x009ab59d, 0x0327d280, 0x0365a1ec, 0x017b6c00, 0x0237cb93, 0x02149b7d, 0x017c17cd, 0x00dbbcd0, 0x025566c6, 0x0034228f}}, Y: Field{[10]uint32{0x000dc103, 0x02b91889, 0x02a549c9, 0x03f49090, 0x00e9ed32, 0x00e15b69, 0x00d35023, 0x0145d8ff, 0x01c75eec, 0x000b6c12}}},
+ {X: Field{[10]uint32{0x00f20d89, 0x0237c38c, 0x007c6f4b, 0x020926e9, 0x02971547, 0x006166bf, 0x0220d626, 0x031426be, 0x005a35bc, 0x0021d85c}}, Y: Field{[10]uint32{0x01b726ae, 0x03c37e2b, 0x03f64436, 0x027af8b6, 0x010fd43b, 0x02011a82, 0x029c3db7, 0x02588924, 0x01eebb02, 0x002cd309}}},
+ {X: Field{[10]uint32{0x006f5f85, 0x0278468f, 0x03307c4e, 0x03d038de, 0x020e35f6, 0x0139f39f, 0x02cc3175, 0x00990c51, 0x01334ce2, 0x0038d14e}}, Y: Field{[10]uint32{0x0065d97d, 0x03417075, 0x03bf700a, 0x01eccda8, 0x031afdde, 0x00aed144, 0x022a0caf, 0x0206fbfc, 0x038a941e, 0x001cfb85}}},
+ {X: Field{[10]uint32{0x00ca917b, 0x00d8208d, 0x01e27fac, 0x02fe5783, 0x02246b36, 0x036ff3a3, 0x00e6f11f, 0x029f9eb2, 0x012f6609, 0x0020e246}}, Y: Field{[10]uint32{0x032b636f, 0x030de303, 0x019bec68, 0x01db94f2, 0x0267c889, 0x033ec6a8, 0x027b681c, 0x023b0a75, 0x03a55044, 0x00255c1c}}},
+ {X: Field{[10]uint32{0x03c5d387, 0x0186bd30, 0x02b8de5a, 0x03ede893, 0x03bbf287, 0x025ff618, 0x0278029a, 0x03897f8b, 0x00c067bb, 0x0022ff5c}}, Y: Field{[10]uint32{0x03f952fb, 0x0251d03c, 0x031fd5d8, 0x0069bb6e, 0x008b5900, 0x03c93f3b, 0x01b1d644, 0x01973568, 0x026bee72, 0x0038b9b1}}},
+ {X: Field{[10]uint32{0x02ff257d, 0x0164f839, 0x01269fdb, 0x0055a21d, 0x03eaf820, 0x02601482, 0x021582d0, 0x002ec566, 0x019aa05f, 0x00297426}}, Y: Field{[10]uint32{0x0023635a, 0x01970d31, 0x0050bf9c, 0x03469910, 0x00fe6d27, 0x00b392cd, 0x02b62b36, 0x015d999d, 0x03205ef0, 0x0038d365}}},
+ {X: Field{[10]uint32{0x015043ce, 0x01eeaa97, 0x02544282, 0x02164b53, 0x01176451, 0x0227ff67, 0x03942e30, 0x03222d41, 0x01a7b949, 0x0011391e}}, Y: Field{[10]uint32{0x013a7087, 0x013b7788, 0x02e23250, 0x01deb84b, 0x01e2b10d, 0x01295c2a, 0x02714162, 0x03118ec2, 0x00298c12, 0x001ee1bb}}},
+ {X: Field{[10]uint32{0x012aa558, 0x01b38f4d, 0x013c4317, 0x02355648, 0x023f37bb, 0x002af432, 0x02e0251e, 0x01e045c1, 0x0143d979, 0x001837b2}}, Y: Field{[10]uint32{0x01fcaab8, 0x0042759a, 0x03d508bc, 0x013e331b, 0x0116b076, 0x01a614cd, 0x0181448d, 0x0167db14, 0x01f4a31c, 0x000b71a2}}},
+ {X: Field{[10]uint32{0x01f7709b, 0x039eacc0, 0x03b24af7, 0x027f9906, 0x00d4ab82, 0x016506e6, 0x013c5c53, 0x0127983e, 0x01385b54, 0x00172963}}, Y: Field{[10]uint32{0x017cd575, 0x019607b0, 0x03eb74d9, 0x0213574f, 0x00945d9d, 0x03ce7770, 0x00ce0907, 0x01bd2044, 0x02e980eb, 0x0020abee}}},
+ {X: Field{[10]uint32{0x018b031c, 0x02641234, 0x01138100, 0x028f34ca, 0x03b9a23e, 0x01afe1b0, 0x009cf3d2, 0x0358326c, 0x027ea1b1, 0x002ddd65}}, Y: Field{[10]uint32{0x0040fef1, 0x001025c2, 0x030b7120, 0x023211bd, 0x0366f12d, 0x0373eb73, 0x01885c4a, 0x004155c3, 0x029becfa, 0x0034adc5}}},
+ {X: Field{[10]uint32{0x00220f96, 0x01ade690, 0x0044e92e, 0x03047e8e, 0x03a23bc4, 0x026a8175, 0x003595fb, 0x00bd840f, 0x00f67d60, 0x001cf635}}, Y: Field{[10]uint32{0x0000ce3d, 0x015d6ac9, 0x0285d331, 0x00f55a3f, 0x00bb17fb, 0x03b3453b, 0x02185309, 0x03fb96fa, 0x022cffc9, 0x002fdc8a}}},
+ {X: Field{[10]uint32{0x01182b75, 0x02c46026, 0x024d61e7, 0x01151230, 0x008b1e97, 0x0271b7c3, 0x012bcce7, 0x01e08805, 0x01f9f49f, 0x003a0413}}, Y: Field{[10]uint32{0x02137361, 0x00494fe0, 0x0102396b, 0x02087175, 0x03e14fc6, 0x03e57fee, 0x03b0da00, 0x00afac6f, 0x0139ec8f, 0x00370bf5}}},
+ {X: Field{[10]uint32{0x006113e6, 0x03a65715, 0x03209e89, 0x00912403, 0x01777e55, 0x00586039, 0x01449b6d, 0x010cb238, 0x02f6fb6c, 0x003b35cb}}, Y: Field{[10]uint32{0x0226e135, 0x03593ade, 0x029e0e00, 0x00f89a04, 0x00425291, 0x00516180, 0x009f518e, 0x02ea6794, 0x015d358f, 0x00059c5c}}},
+ {X: Field{[10]uint32{0x00fc36cc, 0x001c1429, 0x02455a99, 0x0041fa75, 0x01464bfe, 0x029b5f0d, 0x01fc6b5f, 0x026f45bc, 0x00cfbe82, 0x00038ed7}}, Y: Field{[10]uint32{0x028044f5, 0x01ea1f68, 0x03fa331e, 0x03c042d7, 0x02296cb5, 0x016d9c7e, 0x017a2c9b, 0x03069b78, 0x039b5471, 0x00339eae}}},
+ {X: Field{[10]uint32{0x03107734, 0x0286ae49, 0x01c5ed7c, 0x013c97e2, 0x0041c1ce, 0x013af48b, 0x03e75f7f, 0x024753ad, 0x0202ffab, 0x003cd646}}, Y: Field{[10]uint32{0x00fa4b3d, 0x015f0ae5, 0x01c1018a, 0x01aef8bb, 0x03cf0474, 0x00c52eda, 0x03c7d535, 0x02e49921, 0x0211f2ba, 0x000d168b}}},
+ {X: Field{[10]uint32{0x0345c635, 0x006b65f2, 0x021a6550, 0x034c89eb, 0x00c61349, 0x03f16a54, 0x01184f9f, 0x02b654df, 0x005dae54, 0x003292c1}}, Y: Field{[10]uint32{0x03c1d806, 0x01312d35, 0x00d72eaf, 0x015833a7, 0x014660f4, 0x0110747a, 0x02f3c24b, 0x02fb28d4, 0x017e255e, 0x0038c3e0}}},
+ {X: Field{[10]uint32{0x0341ea38, 0x00a6ed9b, 0x02a72dfd, 0x00819d6a, 0x02300947, 0x01daa57d, 0x00ebdb7b, 0x03a987ee, 0x034054a9, 0x003df315}}, Y: Field{[10]uint32{0x02556eac, 0x00b207ac, 0x009900f5, 0x02ffd4b5, 0x03b3dd7f, 0x03811af8, 0x0275aeb5, 0x00936460, 0x018cfc54, 0x0027518f}}},
+ {X: Field{[10]uint32{0x016ab6c2, 0x007dc37b, 0x029f876b, 0x03ec9eda, 0x01b4fd9b, 0x034d3a2a, 0x024bbef7, 0x038fe3b9, 0x0379fba3, 0x003dd6d7}}, Y: Field{[10]uint32{0x00a43faa, 0x00c3b024, 0x014f9d40, 0x019be168, 0x037e0e82, 0x01d159df, 0x0048e362, 0x02ddedcb, 0x00bc5c3f, 0x000882d0}}},
+ {X: Field{[10]uint32{0x019cd450, 0x023e9303, 0x00fde0e8, 0x0191cd69, 0x0189d86a, 0x03428e63, 0x03d89b6a, 0x008da989, 0x03a25060, 0x000aa8d9}}, Y: Field{[10]uint32{0x0041fc32, 0x02512336, 0x038f6e82, 0x03ffa6bb, 0x021e70ec, 0x0135df61, 0x00a802bc, 0x006c69d9, 0x00250249, 0x000affb7}}},
+ {X: Field{[10]uint32{0x0141620f, 0x00df0e28, 0x0325765a, 0x039ec7ac, 0x03a1078c, 0x01609ec1, 0x01a1e221, 0x00f3db9f, 0x01c11178, 0x003fdfd2}}, Y: Field{[10]uint32{0x00702733, 0x026b3d95, 0x00bead51, 0x02177d91, 0x03a488c5, 0x0049477e, 0x00a8b542, 0x00163a2f, 0x009e2e48, 0x001a5543}}},
+ {X: Field{[10]uint32{0x003aa39f, 0x000a82d7, 0x016016fd, 0x02d1799e, 0x0076d017, 0x034faee4, 0x01f7338f, 0x03d3b291, 0x03581164, 0x000c7414}}, Y: Field{[10]uint32{0x0163f575, 0x03364aa6, 0x011fe6bc, 0x003b46ff, 0x03d4d3ea, 0x0387e348, 0x022fa902, 0x01ffc411, 0x019b7217, 0x003c490c}}},
+ {X: Field{[10]uint32{0x026a3bd0, 0x023ed7df, 0x006eabb8, 0x034ead7c, 0x030c8a02, 0x0236a6b5, 0x00bf2f30, 0x000fb28b, 0x02ddfd12, 0x001babc3}}, Y: Field{[10]uint32{0x03e05f08, 0x0242719c, 0x016d4125, 0x01d28c56, 0x02815a0c, 0x0028ee0e, 0x00521a01, 0x0251d127, 0x01012d8e, 0x00364cdb}}},
+ {X: Field{[10]uint32{0x02da1347, 0x006ea5df, 0x011b9e9a, 0x0320472e, 0x0168e759, 0x03d7ea23, 0x03943acf, 0x006adff0, 0x01197799, 0x0002e569}}, Y: Field{[10]uint32{0x01e5ef23, 0x0208afdb, 0x0287f533, 0x0054dbba, 0x029758bd, 0x0168bfe9, 0x018fbfe7, 0x0112296a, 0x035f446d, 0x00233cb2}}},
+ {X: Field{[10]uint32{0x011427e8, 0x03071608, 0x02eeada6, 0x03d5ae43, 0x021fd386, 0x03a0139f, 0x031dc212, 0x03b6ebce, 0x01d48ce5, 0x001394c0}}, Y: Field{[10]uint32{0x01b9f0d9, 0x00297600, 0x016b76fb, 0x0364ddb6, 0x00dcabaa, 0x02f675a1, 0x012f684c, 0x03f6cb87, 0x003de169, 0x003d40fb}}},
+ {X: Field{[10]uint32{0x00f49cd2, 0x0080cf0f, 0x017a3914, 0x0152b587, 0x02fc7c2b, 0x01270b42, 0x01f92cdc, 0x006d0dc5, 0x01e50903, 0x0013f46a}}, Y: Field{[10]uint32{0x024adcb1, 0x02169b23, 0x031602c8, 0x02fa2e1d, 0x022d99c9, 0x033bda52, 0x034b43be, 0x0196f0ea, 0x011cab01, 0x001cfb30}}},
+ {X: Field{[10]uint32{0x00257c84, 0x00402648, 0x00b86745, 0x03e8ba29, 0x00384070, 0x02363eb8, 0x03b7fa4a, 0x010fe97a, 0x0065b325, 0x0019d01a}}, Y: Field{[10]uint32{0x03c62008, 0x021625ae, 0x0271f3fd, 0x0173bcf4, 0x03e829a4, 0x00c89f7d, 0x00451f5e, 0x0382e53d, 0x02d593a4, 0x000ff766}}},
+ {X: Field{[10]uint32{0x006569e4, 0x024a9969, 0x01cb4e49, 0x02b46723, 0x00de7e8d, 0x036b1028, 0x03dcfa0e, 0x016f9bbc, 0x01aed6ee, 0x00052e55}}, Y: Field{[10]uint32{0x022daf70, 0x0029757e, 0x011ebed6, 0x03097aa7, 0x017d9f31, 0x0184d4f7, 0x001eff67, 0x00fe0612, 0x00b62182, 0x00352e48}}},
+ {X: Field{[10]uint32{0x0339ae42, 0x0297c88c, 0x00fb722c, 0x00d318da, 0x004003e4, 0x0390bf48, 0x02a0b3ff, 0x0357eb7e, 0x03bc5608, 0x00053ca0}}, Y: Field{[10]uint32{0x02db7397, 0x015df3e7, 0x008c37c1, 0x00c0aebb, 0x03bf0ba6, 0x002a1ff6, 0x004d4bfb, 0x03f4ff19, 0x023dc3ae, 0x002c9057}}},
+ {X: Field{[10]uint32{0x03bd1c1f, 0x00ce8c87, 0x03d098e7, 0x01701637, 0x005416a5, 0x03e032ea, 0x02275be7, 0x038829b9, 0x00677d3c, 0x000ff783}}, Y: Field{[10]uint32{0x02daaac6, 0x01740cc6, 0x0389a115, 0x00962498, 0x009a018b, 0x02fa87c2, 0x01782f90, 0x0064b252, 0x03dc610f, 0x0026e3bd}}},
+ {X: Field{[10]uint32{0x02d17267, 0x00cca883, 0x01247df5, 0x01310776, 0x00b993bf, 0x020a4150, 0x01c74dd4, 0x00f417c5, 0x0269df5f, 0x00271579}}, Y: Field{[10]uint32{0x024979f6, 0x02d3829b, 0x00810981, 0x00c8b498, 0x018c6b3c, 0x00dd5ff0, 0x01abd783, 0x01d9945d, 0x00e930c9, 0x0008f6c3}}},
+ {X: Field{[10]uint32{0x02968d16, 0x01a2a4a0, 0x02ee7d85, 0x030d2cfe, 0x02506d2d, 0x003d05d1, 0x00da60b3, 0x006835ba, 0x00dfae14, 0x0002f7a1}}, Y: Field{[10]uint32{0x02b3ab04, 0x03ce3112, 0x00dcb468, 0x03cdb0a6, 0x02900374, 0x0269b1a1, 0x024697b9, 0x01877f9c, 0x0214ff13, 0x001168cc}}},
+ {X: Field{[10]uint32{0x019546a3, 0x00e76bf2, 0x030c0549, 0x021651ac, 0x01e5d970, 0x03183168, 0x0368f454, 0x030b2917, 0x014ab8f3, 0x0006500a}}, Y: Field{[10]uint32{0x00e3b81e, 0x025aed3b, 0x0386abfd, 0x009b9db8, 0x00848bc9, 0x01f186ec, 0x020ea767, 0x0318a879, 0x03993816, 0x00158fe7}}},
+ {X: Field{[10]uint32{0x032ccb0e, 0x027f33ac, 0x00ad6682, 0x0358dcf3, 0x00757a34, 0x0348b60e, 0x00df92ea, 0x00f991f4, 0x01e0d0d1, 0x00375ba8}}, Y: Field{[10]uint32{0x0233c313, 0x00023c3b, 0x003fdd8e, 0x01f2a803, 0x00384b55, 0x012797fe, 0x03ad27fa, 0x03a2ca14, 0x01e36bf4, 0x0030063a}}},
+ {X: Field{[10]uint32{0x037fbf19, 0x01a58596, 0x01ffec06, 0x00dd0b13, 0x00dc1047, 0x02f09ee1, 0x02656bfb, 0x01158b89, 0x03e8c784, 0x00195e11}}, Y: Field{[10]uint32{0x015f2df5, 0x03daad82, 0x001725b5, 0x02d39e69, 0x0242c6a4, 0x0292a6a2, 0x01beda90, 0x02b69240, 0x03b658b6, 0x00376437}}},
+ {X: Field{[10]uint32{0x023dea6b, 0x0141acff, 0x00d3e352, 0x007ce5ae, 0x0349b8e7, 0x036de072, 0x02d26c2e, 0x0275ba41, 0x00b140be, 0x003edc09}}, Y: Field{[10]uint32{0x0308efdf, 0x03f28cba, 0x0061c5a0, 0x0014501c, 0x02fea360, 0x03746b11, 0x02d961e9, 0x008ca2da, 0x03f4e50b, 0x00379023}}},
+ {X: Field{[10]uint32{0x01d8e8e0, 0x004cd434, 0x018dfa31, 0x0031268e, 0x00b3f2be, 0x034fa251, 0x0280179c, 0x02c9e74e, 0x000865a7, 0x000b4a70}}, Y: Field{[10]uint32{0x02efcf8f, 0x027648f6, 0x03ee992e, 0x0017c999, 0x0125c550, 0x02592791, 0x00027485, 0x01292996, 0x027aee70, 0x0032abc4}}},
+ {X: Field{[10]uint32{0x03d5662d, 0x01f07314, 0x036326d8, 0x02269f0c, 0x02392685, 0x00f06f8e, 0x028d42ba, 0x00827d37, 0x007479b7, 0x0036da41}}, Y: Field{[10]uint32{0x03aa4e00, 0x01dddc3e, 0x0063c0b7, 0x02fca48b, 0x01c58c1f, 0x020f893a, 0x013ce32c, 0x021eaa64, 0x03e95c35, 0x002437a2}}},
+ {X: Field{[10]uint32{0x0141697b, 0x011cd5b2, 0x03f0adf2, 0x021f33c4, 0x01723c70, 0x01635bf0, 0x0154ada2, 0x013c2abf, 0x006f922e, 0x00260194}}, Y: Field{[10]uint32{0x016bc237, 0x011684bc, 0x037c9252, 0x0125dec9, 0x01b97fef, 0x034c72b4, 0x0298eef3, 0x02e104dd, 0x0018a8ca, 0x00301f88}}},
+ {X: Field{[10]uint32{0x00e40187, 0x02b9ebd8, 0x025eaae1, 0x03478cf4, 0x01661e0a, 0x023c5188, 0x011c1122, 0x0096b16c, 0x013fe6da, 0x002ae1a3}}, Y: Field{[10]uint32{0x00bf54ad, 0x0357c4cf, 0x001d4d47, 0x0222ef4c, 0x014b12c4, 0x015e9ff6, 0x01195ced, 0x02614068, 0x0298334a, 0x003b892d}}},
+ {X: Field{[10]uint32{0x018dcda2, 0x03627bbf, 0x02f4931f, 0x019aafd9, 0x003122f3, 0x01095f8a, 0x0056be17, 0x023b9848, 0x03d19d2a, 0x0039d587}}, Y: Field{[10]uint32{0x02166d5a, 0x02a0004f, 0x0118d5a8, 0x0242281e, 0x0385bcb1, 0x0089edd6, 0x0366ea73, 0x01b63171, 0x034be365, 0x000814b9}}},
+ {X: Field{[10]uint32{0x00f21e6c, 0x00b7e6fa, 0x0082083c, 0x0004e654, 0x017b562f, 0x02a1132d, 0x008f2e0f, 0x038c1ef8, 0x023d84bb, 0x0017c654}}, Y: Field{[10]uint32{0x0265d7fa, 0x039f105c, 0x02cb9d9b, 0x0109ba46, 0x00333775, 0x01c93ae2, 0x029ad2d5, 0x007778ab, 0x021628ee, 0x000ea5bf}}},
+ {X: Field{[10]uint32{0x01c10cc1, 0x00df4a36, 0x03545698, 0x005c9571, 0x022fdcad, 0x015407bf, 0x022ec1dc, 0x026c4490, 0x02683c94, 0x00327e91}}, Y: Field{[10]uint32{0x03fd1dba, 0x008fb7b1, 0x03ffab5e, 0x00d1db51, 0x00b5b6e7, 0x03a380d2, 0x01dcd8d9, 0x0246b33c, 0x035d18f6, 0x0006aab9}}},
+ {X: Field{[10]uint32{0x03eb8d8c, 0x02de4ec2, 0x02401b1a, 0x03505690, 0x011799b2, 0x024ee081, 0x03a084c3, 0x0061e733, 0x022a1e91, 0x00076a43}}, Y: Field{[10]uint32{0x009c0b63, 0x0134a3b2, 0x013322da, 0x03947d3f, 0x0274994e, 0x00ecff0c, 0x02cbae15, 0x0134e011, 0x006911ea, 0x000f4fdf}}},
+ {X: Field{[10]uint32{0x031b3186, 0x03e26b7c, 0x029153e6, 0x026363d9, 0x03707e40, 0x02de11fd, 0x01504ac0, 0x0390c9af, 0x010f3851, 0x0031bf3c}}, Y: Field{[10]uint32{0x03a50ced, 0x029494e4, 0x00bff03e, 0x02bea726, 0x004e2705, 0x03e3b972, 0x036ea108, 0x018f61b8, 0x01f4a16a, 0x00342b22}}},
+ {X: Field{[10]uint32{0x02378233, 0x035fd185, 0x02588fef, 0x01ac7e6d, 0x0003cf23, 0x00495eb8, 0x02b7d4ef, 0x0319f32d, 0x022eeb56, 0x0005415e}}, Y: Field{[10]uint32{0x004930c2, 0x012ec3f7, 0x010cf505, 0x0188be6a, 0x036f205a, 0x038f42a1, 0x01543ef5, 0x029ea312, 0x0130ccc0, 0x00136ead}}},
+ {X: Field{[10]uint32{0x0308b20f, 0x039067c0, 0x01ea36d1, 0x02de300b, 0x0145bf1c, 0x001f77af, 0x027337dd, 0x02b039ba, 0x02e072d5, 0x000dfbab}}, Y: Field{[10]uint32{0x0361d506, 0x02458c3c, 0x0394aebb, 0x036efd68, 0x01a5761a, 0x00ca8e8f, 0x0077249a, 0x02a85067, 0x00965d9d, 0x002c3191}}},
+ {X: Field{[10]uint32{0x0157745c, 0x009cd889, 0x03ebe61a, 0x022deb66, 0x01f1d6ce, 0x024a2f71, 0x031cd96d, 0x03438cf1, 0x03f83a8b, 0x0016881e}}, Y: Field{[10]uint32{0x00f54dad, 0x031d9998, 0x0213819e, 0x0004c8f1, 0x03ee8789, 0x015d1044, 0x01494ac1, 0x026da8a9, 0x0357fadc, 0x000eb32d}}},
+ {X: Field{[10]uint32{0x03abd139, 0x034e6efe, 0x006d1642, 0x002241c1, 0x02f6b2ee, 0x0206fbed, 0x0391271e, 0x038c9568, 0x016a1a0f, 0x003f8237}}, Y: Field{[10]uint32{0x0181ef40, 0x00319380, 0x030d6c52, 0x00984de6, 0x03665d23, 0x027c8130, 0x02f1b436, 0x0208bb93, 0x02d13535, 0x0010b0d0}}},
+ {X: Field{[10]uint32{0x00706111, 0x032e665e, 0x01daca39, 0x03800f47, 0x01d6d859, 0x0201132b, 0x003edcf3, 0x036ee992, 0x02c908df, 0x002df498}}, Y: Field{[10]uint32{0x00d798e8, 0x01ff91ca, 0x01689ee9, 0x0044194f, 0x0230bb4c, 0x00606d6e, 0x0007c8f5, 0x02ce5da8, 0x0350b308, 0x00258218}}},
+ {X: Field{[10]uint32{0x00130c86, 0x01be008d, 0x00407683, 0x015f731e, 0x027d354b, 0x006eb7d6, 0x0297d7c0, 0x00ddd4eb, 0x032e23b3, 0x0012c4aa}}, Y: Field{[10]uint32{0x023c450e, 0x03ee3c3c, 0x005c0f52, 0x027926b9, 0x012bc964, 0x007f9605, 0x0211e73a, 0x022fd00b, 0x020d9f70, 0x00106753}}},
+ {X: Field{[10]uint32{0x00e88dac, 0x00331276, 0x034f74f3, 0x02addd42, 0x008f362b, 0x02f311f1, 0x009570c8, 0x0333692d, 0x0282a96e, 0x003f1b49}}, Y: Field{[10]uint32{0x00beedbb, 0x0090eb3d, 0x0184808a, 0x03c25800, 0x000694af, 0x024165fe, 0x0322612e, 0x01160347, 0x01273026, 0x0006bd59}}},
+ {X: Field{[10]uint32{0x02607e8b, 0x026d9547, 0x00f0632e, 0x0303910b, 0x025e07e6, 0x012bf6e7, 0x0342c40c, 0x03ae8151, 0x03a9a189, 0x0031ee70}}, Y: Field{[10]uint32{0x001822ab, 0x02010bfc, 0x03e30fc5, 0x02e35370, 0x02ef6b38, 0x03069517, 0x0084cd19, 0x01d36d88, 0x02772f22, 0x0016eda0}}},
+ {X: Field{[10]uint32{0x00dfd956, 0x001be9d4, 0x01627034, 0x030aedbe, 0x0246c761, 0x03b50c1a, 0x02339ba3, 0x029cbca6, 0x034230de, 0x003ae934}}, Y: Field{[10]uint32{0x01237cee, 0x0172fd77, 0x0106d215, 0x02961e4d, 0x01d31b01, 0x001a1033, 0x01a17477, 0x01e2cb8f, 0x020f23d2, 0x003f385e}}},
+ {X: Field{[10]uint32{0x02c04155, 0x0295a7e0, 0x02cc8944, 0x03d1b366, 0x013595dc, 0x02b7b0a1, 0x034358c6, 0x0351c4d6, 0x01c02177, 0x002934db}}, Y: Field{[10]uint32{0x01f00281, 0x00ddfd20, 0x03ad1013, 0x01770beb, 0x0365f3e4, 0x016983f7, 0x038fd0fb, 0x006f838d, 0x037963b2, 0x002168a5}}},
+ {X: Field{[10]uint32{0x02109ba2, 0x002b255d, 0x00a16906, 0x02a939b5, 0x020eb165, 0x0379ceaf, 0x035bf56f, 0x03eb878f, 0x0063ae8b, 0x001245b4}}, Y: Field{[10]uint32{0x003f22ee, 0x026d3513, 0x006564ae, 0x013d9d8e, 0x003b2b0b, 0x014dadf2, 0x027a08ca, 0x010357e5, 0x03034a0b, 0x0029e459}}},
+ {X: Field{[10]uint32{0x02edd046, 0x02b90483, 0x03f97ecb, 0x01e61605, 0x009de019, 0x0012ad27, 0x038f1a44, 0x0180c217, 0x0310b296, 0x001d8736}}, Y: Field{[10]uint32{0x02193db7, 0x00bce88b, 0x010cf2ee, 0x03aa376a, 0x039789f0, 0x022079fe, 0x038f50ab, 0x015175cb, 0x0320763b, 0x00074455}}},
+ {X: Field{[10]uint32{0x01c64ea3, 0x03f28ae3, 0x019d2e05, 0x0053a377, 0x02860ff0, 0x0242f04f, 0x005541b4, 0x023a4b7e, 0x01704d71, 0x00035e89}}, Y: Field{[10]uint32{0x034cb90c, 0x023d0f94, 0x00acec15, 0x0216a8eb, 0x026102db, 0x02f1b7b1, 0x000e035f, 0x019d9dc7, 0x039d2134, 0x00179152}}},
+ {X: Field{[10]uint32{0x014d3bbe, 0x00290fcf, 0x025dfeb2, 0x02653716, 0x020a6b9a, 0x00a5d6ef, 0x02bcb063, 0x0314aec3, 0x004f7962, 0x000abd80}}, Y: Field{[10]uint32{0x001a14f3, 0x03825776, 0x01933d91, 0x006d4c8e, 0x02be1deb, 0x01a31965, 0x0108e3eb, 0x0330540c, 0x01e226f8, 0x001a622a}}},
+ {X: Field{[10]uint32{0x01504255, 0x0023d72a, 0x00959741, 0x0061d6e9, 0x03ca805d, 0x034cc613, 0x027571e5, 0x00218044, 0x00e53bab, 0x002a49d0}}, Y: Field{[10]uint32{0x02d2379f, 0x01d7adb1, 0x0244e68d, 0x0214436a, 0x0096d49c, 0x00eaa138, 0x02dfd3d0, 0x01adc419, 0x011e2eb7, 0x00177ca1}}},
+ {X: Field{[10]uint32{0x00014939, 0x01fb661c, 0x02057bcc, 0x01c0341d, 0x02768567, 0x00e8323a, 0x0287c449, 0x0229ad82, 0x021a510d, 0x00243425}}, Y: Field{[10]uint32{0x00aa545d, 0x01d80eb3, 0x034d3f8d, 0x00be16d2, 0x037c13dc, 0x008e1ab4, 0x036f7a8a, 0x00c2219a, 0x013c1c91, 0x001d351d}}},
+ {X: Field{[10]uint32{0x00ecd12b, 0x02f98441, 0x00ded249, 0x029b28ce, 0x038dd5c6, 0x00b8b820, 0x02bfa279, 0x029813d8, 0x03eaf2e3, 0x0003394a}}, Y: Field{[10]uint32{0x015c009e, 0x0220020b, 0x031a1a49, 0x002a3e3f, 0x03dd0867, 0x0097cf66, 0x00244449, 0x0028adf2, 0x0273738a, 0x002a1a77}}},
+ {X: Field{[10]uint32{0x03cd05c4, 0x038d43fc, 0x02be7cc3, 0x0105b3c5, 0x01122154, 0x0301ab12, 0x0139a471, 0x03f34bff, 0x01c210e3, 0x002672a3}}, Y: Field{[10]uint32{0x03bc4982, 0x03925ab7, 0x02142c6c, 0x03a00244, 0x024550fb, 0x03c1c82f, 0x0326309e, 0x0370b1af, 0x0280131a, 0x001e021e}}},
+ {X: Field{[10]uint32{0x0202d1c6, 0x03b18428, 0x0211ab51, 0x0285f639, 0x00cbfcc6, 0x008b7ae4, 0x03ff1f43, 0x01ef1741, 0x00c29f5a, 0x002f910b}}, Y: Field{[10]uint32{0x03c084a2, 0x01584a1d, 0x03734111, 0x00978c92, 0x02fb3d1f, 0x02b3d6ec, 0x028f2c01, 0x0364d200, 0x02c4680e, 0x0018943c}}},
+ {X: Field{[10]uint32{0x00ec8e54, 0x01c2ec39, 0x00e65677, 0x03e6e3e0, 0x03e75d95, 0x006e6c53, 0x030346b5, 0x02c04084, 0x01f4037f, 0x0014fd7d}}, Y: Field{[10]uint32{0x00c62f93, 0x0331774a, 0x020f9cb1, 0x01c4ca14, 0x0224c0d5, 0x00f8b870, 0x00dd2ef2, 0x00cfd6a8, 0x0353c6e7, 0x0023694a}}},
+ {X: Field{[10]uint32{0x008c4d6c, 0x039b6a97, 0x0155411d, 0x006461bb, 0x02a897ab, 0x00d295bd, 0x0399e3a1, 0x03affdf5, 0x01650e90, 0x00081b39}}, Y: Field{[10]uint32{0x02a75804, 0x02a6a5a9, 0x006754dc, 0x00f0e2b8, 0x00aaa5d5, 0x01e754c8, 0x03ec5c2e, 0x01b729f7, 0x0122bd2d, 0x0030bfd7}}},
+ {X: Field{[10]uint32{0x0073f443, 0x037cab1c, 0x03744faa, 0x0083308f, 0x0002176a, 0x009b4ad5, 0x01f2a727, 0x00beae04, 0x03bb87ee, 0x0034772f}}, Y: Field{[10]uint32{0x01d17db9, 0x003e5a3b, 0x0350c187, 0x024f87d0, 0x00f71da6, 0x03e0cdf6, 0x02fc27e3, 0x002edef2, 0x023b4180, 0x000041b1}}},
+ {X: Field{[10]uint32{0x03749328, 0x005ce4b6, 0x002f6db1, 0x0343bc5f, 0x020a516f, 0x01bff26a, 0x039d4322, 0x01dae87a, 0x0173c543, 0x003486a8}}, Y: Field{[10]uint32{0x0074e424, 0x0131a098, 0x00b24772, 0x0293b5d3, 0x002326f9, 0x00e9d52c, 0x00f79de6, 0x02035981, 0x01f4e014, 0x000df3d7}}},
+ {X: Field{[10]uint32{0x011fa3d2, 0x03553adf, 0x0203178d, 0x020fe387, 0x0215e563, 0x032edf39, 0x01acfbe2, 0x01a69d5a, 0x0024a22c, 0x00148d2c}}, Y: Field{[10]uint32{0x03c000cb, 0x02258c22, 0x02ddfd91, 0x02569d2b, 0x02b41038, 0x0296cd0e, 0x03c3b042, 0x02d4b58a, 0x0042651d, 0x000afab9}}},
+ {X: Field{[10]uint32{0x01412f64, 0x010704cd, 0x00b6a509, 0x033d7b9b, 0x01f5048d, 0x01662253, 0x009dbd4f, 0x0086ae9c, 0x00759f3e, 0x00279ba6}}, Y: Field{[10]uint32{0x01757ea8, 0x009a418c, 0x034a92dc, 0x00ce9f93, 0x01431110, 0x03811c62, 0x00dd1690, 0x00b96909, 0x0199e38f, 0x000ad9c0}}},
+ {X: Field{[10]uint32{0x0343ae45, 0x03ca4a21, 0x017fcd28, 0x01ce0c96, 0x0289232c, 0x00b7a6ec, 0x01f8a927, 0x0239dc43, 0x02959a71, 0x002105b8}}, Y: Field{[10]uint32{0x0133d139, 0x01c487c4, 0x004db4c7, 0x01d1d931, 0x0220732a, 0x03347c00, 0x01b79044, 0x01023b60, 0x0202801b, 0x001bbd24}}},
+ {X: Field{[10]uint32{0x013561a5, 0x02389eb5, 0x0029bb10, 0x01ca7a8d, 0x0027462f, 0x014ae8b7, 0x02405ebe, 0x00ecbcc9, 0x03a7048a, 0x00214a93}}, Y: Field{[10]uint32{0x0162e520, 0x0332bce9, 0x02ac6a81, 0x03de3418, 0x02770b99, 0x032fad9c, 0x00e441c2, 0x02708dac, 0x0046ee0d, 0x000f81b0}}},
+ {X: Field{[10]uint32{0x0277c1bd, 0x00a50b8d, 0x00c5d328, 0x02872c8d, 0x01fa6097, 0x03020f3b, 0x03b876d3, 0x015afae4, 0x01a02dbe, 0x000a2037}}, Y: Field{[10]uint32{0x031bb43a, 0x01991043, 0x019d3bf9, 0x01e103a4, 0x023d371f, 0x00dc37e8, 0x015366c5, 0x01aed3fa, 0x021092d4, 0x0037ec3a}}},
+ {X: Field{[10]uint32{0x01819c65, 0x027fe27c, 0x006f0770, 0x01549d72, 0x0037b535, 0x02699da8, 0x03dbf869, 0x0235ff00, 0x00029e82, 0x0032dbef}}, Y: Field{[10]uint32{0x02062266, 0x00589de1, 0x02bdace5, 0x03ef816e, 0x00ce9161, 0x032ddb2e, 0x00d50c21, 0x01ce6457, 0x019a3657, 0x003f138b}}},
+ {X: Field{[10]uint32{0x001afebe, 0x00c17bfe, 0x021615f6, 0x02962a1c, 0x030abc76, 0x001b43b0, 0x03241066, 0x00d0e086, 0x035bff1c, 0x002021ee}}, Y: Field{[10]uint32{0x0024ce72, 0x0305f782, 0x00353d9b, 0x01fa513d, 0x0223a443, 0x03a6918c, 0x01c5030a, 0x0300ae3d, 0x007aa602, 0x0015e2ca}}},
+ {X: Field{[10]uint32{0x02d3a33a, 0x028a3ed0, 0x01482653, 0x0274493b, 0x00f8ae82, 0x0145f396, 0x030def22, 0x032431eb, 0x00bc30f2, 0x000da7d5}}, Y: Field{[10]uint32{0x01b59d16, 0x009855ee, 0x01b40b45, 0x02f71330, 0x0361f466, 0x01658850, 0x03c97aef, 0x01f8cb18, 0x02af35af, 0x0002e3cb}}},
+ {X: Field{[10]uint32{0x03ed8f7d, 0x00f54cc7, 0x01eb6edd, 0x00a1af92, 0x03df2946, 0x03f6dab1, 0x03b2448f, 0x03e1c54e, 0x004c01b2, 0x0021ef93}}, Y: Field{[10]uint32{0x020effb1, 0x01bd3af2, 0x00a2adfe, 0x02a19a4e, 0x0071fdc8, 0x00735474, 0x031ec542, 0x0302855d, 0x00bc6386, 0x001fbd1d}}},
+ {X: Field{[10]uint32{0x0214715e, 0x00fe8a47, 0x01cfbc01, 0x006d7bb4, 0x0280393f, 0x00e7b6f8, 0x0310eeb2, 0x016faa30, 0x00f018f7, 0x001ed99e}}, Y: Field{[10]uint32{0x038b1fd7, 0x006a2c7c, 0x02890c18, 0x01f4f754, 0x03d98570, 0x02a86efc, 0x008275d2, 0x039a69ce, 0x00e2666e, 0x001e3a2e}}},
+ {X: Field{[10]uint32{0x0160f135, 0x009ce52c, 0x00aed90d, 0x01b5acdf, 0x0377d282, 0x03ee8e22, 0x01608f58, 0x027808aa, 0x02419672, 0x000227b1}}, Y: Field{[10]uint32{0x00786cff, 0x025055e9, 0x021f80ac, 0x02c36466, 0x035e3030, 0x0077ac62, 0x01ee5a74, 0x01ce1c06, 0x0142108d, 0x00177bcc}}},
+ {X: Field{[10]uint32{0x02177f8e, 0x01b4698d, 0x0131199e, 0x0275907e, 0x008b8374, 0x01e30feb, 0x022acbab, 0x00242cea, 0x03393769, 0x000b2fb1}}, Y: Field{[10]uint32{0x03de8886, 0x024820fc, 0x03bad2ca, 0x0332240b, 0x0367fea7, 0x013c9aba, 0x034a007f, 0x00b56b2c, 0x03e757ad, 0x000c5039}}},
+ {X: Field{[10]uint32{0x01946908, 0x033c3baf, 0x03cf02eb, 0x0061198f, 0x0229d576, 0x000c082b, 0x027b116d, 0x02962d4f, 0x03cda2d6, 0x0019e33b}}, Y: Field{[10]uint32{0x026a3491, 0x02f40a03, 0x01713314, 0x0310cc70, 0x0118834f, 0x00caca90, 0x00d56ee9, 0x023bbcdf, 0x01e01329, 0x003d16fa}}},
+ {X: Field{[10]uint32{0x033ec0df, 0x03c608b1, 0x01524b43, 0x01cf2230, 0x015073b0, 0x01337c04, 0x012305a9, 0x013b391a, 0x0278adcc, 0x002376f4}}, Y: Field{[10]uint32{0x00fc5b0c, 0x024ec5e0, 0x0102268b, 0x016e8cec, 0x005d2d67, 0x00a31de1, 0x029ea1ae, 0x031b232a, 0x02dd3c52, 0x00241443}}},
+ {X: Field{[10]uint32{0x03e36626, 0x00743035, 0x00739304, 0x01e2abdc, 0x00607d78, 0x008e0983, 0x03149c3d, 0x03fd7c8a, 0x0082b162, 0x0025cafc}}, Y: Field{[10]uint32{0x004087dc, 0x01416f93, 0x01324797, 0x0093408d, 0x026eca9f, 0x03a42910, 0x01b64f43, 0x02f29366, 0x03baf61c, 0x0011a16c}}},
+ {X: Field{[10]uint32{0x03c97230, 0x03315f2e, 0x0280f540, 0x0182f218, 0x01d8c1f7, 0x0145348f, 0x02801c54, 0x012ae5f7, 0x01526660, 0x0010abc3}}, Y: Field{[10]uint32{0x0299ce38, 0x024afb05, 0x03b89771, 0x01a26378, 0x01cced06, 0x025edd35, 0x017160bd, 0x00a7b50d, 0x03898c90, 0x00015926}}},
+ {X: Field{[10]uint32{0x03bb30ac, 0x0188fcf5, 0x010a9fa5, 0x00853010, 0x021748ee, 0x02686831, 0x02138bca, 0x01b47639, 0x03708729, 0x00014d99}}, Y: Field{[10]uint32{0x015cac1d, 0x02e3f63b, 0x01f31fd8, 0x00b96564, 0x027c297b, 0x01cb642e, 0x0219c2f6, 0x02834d49, 0x0260786b, 0x00381a0e}}},
+ {X: Field{[10]uint32{0x0039fc24, 0x0157047f, 0x002559de, 0x02d2b648, 0x017d5d0a, 0x033903a4, 0x00308d6b, 0x02c63fc1, 0x0284e85b, 0x00280ed8}}, Y: Field{[10]uint32{0x00785493, 0x0356a3fa, 0x035644ca, 0x016f8052, 0x02c07300, 0x024e76e2, 0x03e7235a, 0x030d208f, 0x0282c22c, 0x0009ce7b}}},
+ {X: Field{[10]uint32{0x02b66e97, 0x00b893c9, 0x03a63733, 0x0326648c, 0x01f5801d, 0x02893df7, 0x01980550, 0x014e9af6, 0x02d7268a, 0x000bce53}}, Y: Field{[10]uint32{0x03918d88, 0x03d3375c, 0x014138d3, 0x027d7415, 0x000e49d0, 0x009af130, 0x03d3714a, 0x02ea1b46, 0x033ee934, 0x002d4ad3}}},
+ {X: Field{[10]uint32{0x0133f8ab, 0x01684b1c, 0x016ebbb3, 0x03b7bc2d, 0x027740bc, 0x0047bd7f, 0x020c19a6, 0x014df8ea, 0x0010527e, 0x00245dcc}}, Y: Field{[10]uint32{0x029fb5b6, 0x012053fa, 0x0396500f, 0x017333ee, 0x01b097ae, 0x02ef0dad, 0x021063ab, 0x0120249f, 0x03b328b6, 0x001a3e4d}}},
+ {X: Field{[10]uint32{0x004af615, 0x018035a4, 0x00b24763, 0x03154280, 0x0028486b, 0x0354a77e, 0x020c1aeb, 0x022bc5e8, 0x01bfcddc, 0x000a146f}}, Y: Field{[10]uint32{0x00cb1356, 0x016cb5b7, 0x017585d1, 0x0320edcc, 0x02ee2acf, 0x00cc0d75, 0x006c3760, 0x009eb9b5, 0x0085702e, 0x0034c0b0}}},
+ {X: Field{[10]uint32{0x014bdfef, 0x0136920c, 0x029c25d3, 0x018d69bc, 0x038be3d3, 0x02d1f965, 0x0210b791, 0x0267c515, 0x03ab0254, 0x003a61b5}}, Y: Field{[10]uint32{0x03de35a6, 0x00f0cc51, 0x01c165f5, 0x00b4c710, 0x01cfdb18, 0x00441156, 0x02c63b96, 0x03054043, 0x00dcb3b3, 0x0003418e}}},
+ {X: Field{[10]uint32{0x038bfc03, 0x019238a3, 0x02099b2e, 0x0329fefe, 0x00ab44da, 0x020c7609, 0x001c5e0d, 0x02cb38b7, 0x032c5639, 0x002f1176}}, Y: Field{[10]uint32{0x03213e32, 0x03e6d481, 0x028842c1, 0x02020981, 0x0079a805, 0x02a7d4f8, 0x02327400, 0x0226b527, 0x03b127b2, 0x001764f8}}},
+ {X: Field{[10]uint32{0x00a8dfc6, 0x012632d4, 0x022fd667, 0x004b29ec, 0x01849ef5, 0x0278a440, 0x027b4c84, 0x020274b1, 0x027e47d9, 0x00105175}}, Y: Field{[10]uint32{0x0113f096, 0x0085ce91, 0x00ea9492, 0x001f58a4, 0x03daeae0, 0x0036a993, 0x008604d9, 0x01fe0a5c, 0x00fc2a4f, 0x00151c7d}}},
+ {X: Field{[10]uint32{0x00686825, 0x035d03d7, 0x02fa3c1a, 0x021f9e96, 0x02427e30, 0x01ce373a, 0x015314aa, 0x02755aec, 0x037f4cd7, 0x000b455f}}, Y: Field{[10]uint32{0x016fc1c0, 0x03c7a88a, 0x034eeeab, 0x0084e9c8, 0x02962a4e, 0x01d9aed1, 0x027a29a2, 0x027d2e53, 0x03187615, 0x0030713c}}},
+ {X: Field{[10]uint32{0x033933ba, 0x035e5869, 0x0187b361, 0x025a089a, 0x03d6e896, 0x0304aa06, 0x03e26cb0, 0x002cb977, 0x02847704, 0x000bd098}}, Y: Field{[10]uint32{0x0144075e, 0x0120f460, 0x024bd45e, 0x010a1e7c, 0x00a384f9, 0x01d54cbe, 0x03cf601c, 0x00a1e7bf, 0x020d141b, 0x002f7384}}},
+ {X: Field{[10]uint32{0x03bf527f, 0x007fff0e, 0x0220ab8a, 0x0110dfa8, 0x03bf9f8f, 0x03bc8f29, 0x003c9c0e, 0x004c0b9a, 0x03a76cc9, 0x002d0673}}, Y: Field{[10]uint32{0x02929517, 0x009478ea, 0x00dba3c0, 0x015b8f34, 0x00a911e9, 0x012201ad, 0x0091a70b, 0x00906792, 0x014e290f, 0x002ee1a5}}},
+ {X: Field{[10]uint32{0x0125236f, 0x035cb552, 0x018dcae2, 0x0026c0da, 0x012b17bd, 0x0037b64e, 0x02f2913f, 0x00593f1e, 0x02f95734, 0x00336d29}}, Y: Field{[10]uint32{0x02c8e7aa, 0x03e39baa, 0x025ffc9e, 0x00f013c4, 0x01d57c96, 0x01265914, 0x0100c47d, 0x03d75c39, 0x0236bd1b, 0x00227b68}}},
+ {X: Field{[10]uint32{0x0008c256, 0x02003e3d, 0x00a3e321, 0x013088cf, 0x00a12a8c, 0x000e4bfa, 0x026f2f15, 0x031128cf, 0x0351a45a, 0x003b53a9}}, Y: Field{[10]uint32{0x030ffef2, 0x01018d25, 0x0264acaf, 0x018e62b3, 0x00a296d9, 0x0013644b, 0x01266d4d, 0x00d26aba, 0x01a74a2b, 0x00271fa7}}},
+ {X: Field{[10]uint32{0x00fbf5d3, 0x03b3428f, 0x0287c96d, 0x000be9e6, 0x0384a74b, 0x037c229c, 0x00ccfcd1, 0x018f0a0c, 0x0138fdf9, 0x0026c1bf}}, Y: Field{[10]uint32{0x03226416, 0x0277801a, 0x020d4eb2, 0x028ca86c, 0x023ede27, 0x0136b435, 0x004ba3cd, 0x018056bb, 0x021ce7ee, 0x003a1991}}},
+ {X: Field{[10]uint32{0x02f6ae75, 0x01b94846, 0x004ef516, 0x012f7869, 0x02c2b789, 0x001c0815, 0x0213f1ee, 0x03346a5f, 0x001eefc1, 0x0037c452}}, Y: Field{[10]uint32{0x022b7e02, 0x0152ae88, 0x03ad4a83, 0x0185c5ea, 0x0180c766, 0x039cf8b3, 0x02e1f24d, 0x027e87af, 0x00563542, 0x00285046}}},
+ {X: Field{[10]uint32{0x02a3c9f5, 0x0280cb44, 0x0284523d, 0x00569462, 0x0146e4df, 0x0201f186, 0x03bc65de, 0x00fecf41, 0x01010b1f, 0x003e0ca3}}, Y: Field{[10]uint32{0x01ca6216, 0x003c4033, 0x01df0d5e, 0x0051e9c2, 0x02de1749, 0x0172a7af, 0x029a6d0b, 0x0351e272, 0x00747746, 0x0038a76f}}},
+ {X: Field{[10]uint32{0x013fff86, 0x03c024d3, 0x01e461fc, 0x01ea4b82, 0x01ff0d1b, 0x02b313ed, 0x02135900, 0x008c07e6, 0x03bdb7fc, 0x000f8ebe}}, Y: Field{[10]uint32{0x02b6ebd6, 0x0098849b, 0x00742f0f, 0x0070fb0a, 0x01a5c2af, 0x01866bac, 0x004c8d09, 0x007146f5, 0x03e1b982, 0x0007f1fd}}},
+ {X: Field{[10]uint32{0x03f86125, 0x007aa6c7, 0x0166074d, 0x02013154, 0x0078ede8, 0x0274cd6d, 0x0019f8b6, 0x02005673, 0x02ea6834, 0x002ab45f}}, Y: Field{[10]uint32{0x01365257, 0x033e77e7, 0x008e8ed6, 0x02749ad2, 0x00dfa174, 0x0187ba44, 0x00f45bf3, 0x02276d9f, 0x038cebab, 0x0003a64e}}},
+ {X: Field{[10]uint32{0x010ea35c, 0x03a65ca4, 0x0072d37c, 0x02e3eca4, 0x00286442, 0x0389a85e, 0x00f44b6f, 0x031a1bfa, 0x03195515, 0x00084fee}}, Y: Field{[10]uint32{0x0152a852, 0x0225a77b, 0x0136218e, 0x016189e0, 0x03d68c39, 0x0261d880, 0x00ee5771, 0x03d2ecb4, 0x011b7df7, 0x00125ee5}}},
+ {X: Field{[10]uint32{0x030120fa, 0x024de40d, 0x021a2924, 0x011c24a0, 0x03eba91b, 0x022e31e9, 0x013321ec, 0x020678fa, 0x02a578ed, 0x00335fdc}}, Y: Field{[10]uint32{0x01bb1148, 0x03d7f3d1, 0x03ce2d8f, 0x02464fa5, 0x02ca4eac, 0x02441df9, 0x02c537d9, 0x003cb3e8, 0x00709928, 0x0028f547}}},
+ {X: Field{[10]uint32{0x027f3b51, 0x0248f82d, 0x01b19068, 0x03061e3e, 0x038240ae, 0x0346a78b, 0x023a28a1, 0x00a4e7e6, 0x00c700a7, 0x001c28d8}}, Y: Field{[10]uint32{0x01710259, 0x001554ab, 0x021b73eb, 0x0261b4bd, 0x00dd175c, 0x01a82ee3, 0x024ae36b, 0x036f08ba, 0x007c53a4, 0x00287670}}},
+ {X: Field{[10]uint32{0x01b5e46a, 0x01d98048, 0x02d337a0, 0x03f67369, 0x00eedc35, 0x027a72fa, 0x021dd199, 0x00ad983e, 0x015b4f8e, 0x00151298}}, Y: Field{[10]uint32{0x028451e5, 0x0142cd6e, 0x026bd751, 0x0269cc23, 0x03d7ba7a, 0x0376725f, 0x0286aecb, 0x03235d94, 0x01b9c76f, 0x001d749b}}},
+ {X: Field{[10]uint32{0x02c8acef, 0x030d19e3, 0x03c92a01, 0x03dcdb08, 0x00f8b779, 0x01356d72, 0x019b2657, 0x01cf5ebc, 0x039f76a0, 0x00108635}}, Y: Field{[10]uint32{0x02cfb28e, 0x0007ae6f, 0x00bdaf2c, 0x0157881f, 0x0187e603, 0x02ca1308, 0x01c05f4e, 0x00ed7f99, 0x02314907, 0x001a057d}}},
+ {X: Field{[10]uint32{0x0269b0a9, 0x00bf06a8, 0x03b3864a, 0x01767936, 0x0203deca, 0x018d7e0e, 0x03337598, 0x02b30628, 0x02381a82, 0x001ab689}}, Y: Field{[10]uint32{0x02da6c08, 0x03388a57, 0x033bae8a, 0x03e2d854, 0x012e77b6, 0x022d7e10, 0x0105f32b, 0x0149bd83, 0x02da65f7, 0x0014f4d5}}},
+ {X: Field{[10]uint32{0x0118b09e, 0x019863b8, 0x03579336, 0x0291e04f, 0x018bd46e, 0x030e0b10, 0x0118e987, 0x026965d5, 0x0101d9f2, 0x0017ea67}}, Y: Field{[10]uint32{0x03fc3b39, 0x003a0b4c, 0x034cd6fc, 0x000b6fb0, 0x02f15f66, 0x0260994a, 0x00e381e4, 0x02e06f73, 0x023838de, 0x00351e74}}},
+ {X: Field{[10]uint32{0x00d76f6e, 0x000656d1, 0x03e4412d, 0x0002cadf, 0x030bbb4a, 0x03fbe5b4, 0x02676d72, 0x019eadba, 0x017634cc, 0x00331bb5}}, Y: Field{[10]uint32{0x03bf820c, 0x002bd8bd, 0x03e94f52, 0x00343692, 0x03dd801b, 0x020d0a13, 0x009e5f15, 0x0266e2ab, 0x015ad509, 0x0002c570}}},
+ {X: Field{[10]uint32{0x00ffceb4, 0x00bb8e90, 0x03ddfec3, 0x01e761d1, 0x01ff4476, 0x00289adb, 0x0310bf89, 0x03a8ff7a, 0x03db5323, 0x00393343}}, Y: Field{[10]uint32{0x0220e1f5, 0x021a8c34, 0x00c48d5d, 0x01ef107e, 0x00e2caa8, 0x02dd8a71, 0x02af718d, 0x010d5d95, 0x00c8ba9c, 0x003ef6d0}}},
+ {X: Field{[10]uint32{0x0388a8af, 0x02df3626, 0x025686af, 0x03b1e9d5, 0x030b3c1f, 0x008d1a0c, 0x01e3ca1a, 0x02e4a6b0, 0x022aba51, 0x001dff5c}}, Y: Field{[10]uint32{0x01e98505, 0x0243d6cf, 0x006919cf, 0x016cb1ec, 0x006b5b55, 0x037d2edd, 0x0378ee31, 0x0272d13c, 0x01e10d6e, 0x00340946}}},
+ {X: Field{[10]uint32{0x017a41dd, 0x010630a6, 0x033e2665, 0x008e57fd, 0x006291e5, 0x00a67d3e, 0x03ca57bf, 0x00f51e74, 0x03bca9dd, 0x00134e47}}, Y: Field{[10]uint32{0x00ce899e, 0x03afc96d, 0x02fce1a9, 0x0310e7b1, 0x03e5d4a3, 0x024f10fc, 0x03e9fcd5, 0x0181aee4, 0x0033b55e, 0x0017327b}}},
+ {X: Field{[10]uint32{0x03084e97, 0x00e9115c, 0x022ba83f, 0x03e20586, 0x012eb232, 0x0324bfa0, 0x019d63c3, 0x01ee1172, 0x004617b1, 0x001d02f1}}, Y: Field{[10]uint32{0x00355464, 0x00952bfe, 0x00c67883, 0x00aa640a, 0x02fb1074, 0x004c061d, 0x0317481c, 0x02559dc5, 0x006e0f4f, 0x0003f63b}}},
+ {X: Field{[10]uint32{0x01b46e5c, 0x004396c0, 0x00392b2d, 0x03106f73, 0x00c6aa12, 0x0333b40c, 0x02fd8d60, 0x02114d6e, 0x021cadeb, 0x00309630}}, Y: Field{[10]uint32{0x01171d31, 0x01884e57, 0x022af4cb, 0x029d7b0f, 0x02b73646, 0x0083797c, 0x01d08afa, 0x02f5fdce, 0x037f3e60, 0x001f37c0}}},
+ {X: Field{[10]uint32{0x00130d44, 0x03fee0c9, 0x01768dbe, 0x01786fff, 0x01fac22a, 0x00327299, 0x0180261c, 0x0135742f, 0x0069733a, 0x0023f220}}, Y: Field{[10]uint32{0x02fc946e, 0x03d2a804, 0x00a95954, 0x0298e3c3, 0x01ca5bf0, 0x0073b9a4, 0x0137ba74, 0x0010b553, 0x014bf88c, 0x0010846a}}},
+ {X: Field{[10]uint32{0x0096ad4c, 0x0186ee43, 0x027c967a, 0x038ccae0, 0x00f5152d, 0x03a674c5, 0x03b0e0bc, 0x007091fe, 0x021a4032, 0x0033d8bb}}, Y: Field{[10]uint32{0x02c4a3fe, 0x00259007, 0x015a19bb, 0x00d99043, 0x02e61373, 0x01f70348, 0x01978c07, 0x01ee352f, 0x03c3e64f, 0x0018a129}}},
+ {X: Field{[10]uint32{0x009f8ba7, 0x00103915, 0x019d06c0, 0x032bf5bf, 0x00bb00b3, 0x026da458, 0x00884431, 0x01dd83b3, 0x038a4d44, 0x0014cd47}}, Y: Field{[10]uint32{0x037f6b83, 0x014af34d, 0x02a0a163, 0x02e23027, 0x00c7c1cb, 0x015220e1, 0x01c148fd, 0x039bfdd5, 0x02193816, 0x0020e113}}},
+ {X: Field{[10]uint32{0x0106bb0c, 0x00cd2287, 0x000a9e17, 0x01eb4b98, 0x03baa015, 0x02b3a501, 0x010e1f62, 0x02464653, 0x03ceee2c, 0x00280818}}, Y: Field{[10]uint32{0x03146339, 0x03061ba7, 0x01de05f4, 0x02c0401f, 0x03fcdaee, 0x011122a2, 0x01b40eac, 0x00fd4b6a, 0x01b55565, 0x0018c118}}},
+ {X: Field{[10]uint32{0x01d35660, 0x02a35bf8, 0x018575a6, 0x027a546e, 0x02c360c0, 0x0259822a, 0x034f3741, 0x005d91c9, 0x01cc25de, 0x001c2f2f}}, Y: Field{[10]uint32{0x03461d74, 0x02c3d3b6, 0x02b64a90, 0x00c252a0, 0x003a1c74, 0x02787503, 0x035e719a, 0x01673a02, 0x019b7163, 0x000ef56f}}},
+ {X: Field{[10]uint32{0x02dc8fc7, 0x004b466a, 0x01fff138, 0x0305d055, 0x0054b161, 0x02945778, 0x03b1fe52, 0x030f01be, 0x017783cf, 0x00037e2b}}, Y: Field{[10]uint32{0x00069569, 0x031cd560, 0x0060444e, 0x006c4993, 0x01af3840, 0x002df2e6, 0x034ff20a, 0x036c3274, 0x00f60416, 0x002f1024}}},
+ {X: Field{[10]uint32{0x000a30f9, 0x02a76795, 0x009ed777, 0x011f8154, 0x028788df, 0x014b55be, 0x02fff3a4, 0x0260017c, 0x01ccef39, 0x0009413a}}, Y: Field{[10]uint32{0x0390612a, 0x0167de5c, 0x00a51116, 0x013b6da4, 0x036fd651, 0x02d7f60c, 0x03f4d2fa, 0x023bf2bd, 0x02a2c6f4, 0x001cf141}}},
+ {X: Field{[10]uint32{0x03c97025, 0x005068d6, 0x03a61571, 0x00320678, 0x0218a9ce, 0x0225e7f3, 0x02a6fa56, 0x000cd0e9, 0x03241c92, 0x00093b81}}, Y: Field{[10]uint32{0x00bd7b8a, 0x00909f2c, 0x00bf6ba2, 0x00580bec, 0x03fa0c68, 0x035fd364, 0x0140a6cc, 0x0213a1a2, 0x02cd605b, 0x003b990b}}},
+ {X: Field{[10]uint32{0x023929b3, 0x01b6465e, 0x03093e1c, 0x00ac9700, 0x014961e1, 0x00825fcd, 0x00d8eb11, 0x0301698f, 0x00e09665, 0x0007ab57}}, Y: Field{[10]uint32{0x0156fcc3, 0x012a9b5c, 0x0009dc2f, 0x03d77b9c, 0x007284b5, 0x00775c48, 0x0032fbea, 0x03312ac7, 0x035da1ab, 0x00060037}}},
+ {X: Field{[10]uint32{0x0205d507, 0x01e247ba, 0x009c098e, 0x03bcb97a, 0x03160c69, 0x020e21d2, 0x020b0dcd, 0x013e3e40, 0x03f22608, 0x0011f3cb}}, Y: Field{[10]uint32{0x01fb7d48, 0x03e948b5, 0x03516cf8, 0x03723720, 0x00bca2ef, 0x00e19919, 0x004d0d2c, 0x016bfc41, 0x03df129b, 0x0028d034}}},
+ {X: Field{[10]uint32{0x02d6cbdd, 0x038e7110, 0x03e75b04, 0x02a0fe69, 0x0151f050, 0x0391d293, 0x018bb8ea, 0x01254a88, 0x039b8e2e, 0x0010193e}}, Y: Field{[10]uint32{0x0035de10, 0x0221b76e, 0x03d2b9c7, 0x030346b7, 0x0118ea66, 0x02b77383, 0x013e02aa, 0x0064c24b, 0x0076a2ef, 0x003fe73b}}},
+ {X: Field{[10]uint32{0x0381904e, 0x038cd4fe, 0x000d222d, 0x0101a766, 0x03cdd70a, 0x029b5007, 0x01e0150b, 0x008340c8, 0x00d6e58e, 0x0020e2b2}}, Y: Field{[10]uint32{0x015614bc, 0x015222b6, 0x027105f9, 0x03f03a24, 0x01b1ef24, 0x01054ccc, 0x01a6b251, 0x036efdee, 0x03962909, 0x00264e9b}}},
+ {X: Field{[10]uint32{0x0202f266, 0x03a6d7b8, 0x033855fc, 0x01caf133, 0x035aedee, 0x03b3d650, 0x016ea260, 0x010f48d3, 0x0183189d, 0x002978db}}, Y: Field{[10]uint32{0x01822c55, 0x02c7251e, 0x03fe954a, 0x02d79fae, 0x03dfc2d1, 0x01050d68, 0x012933fb, 0x00ee2677, 0x003ce25c, 0x001e300b}}},
+ {X: Field{[10]uint32{0x03ba72c9, 0x0323f8c7, 0x035725dd, 0x01ea6d47, 0x015ad79e, 0x0235bdeb, 0x03312095, 0x03134cd3, 0x00bcd357, 0x00278903}}, Y: Field{[10]uint32{0x0111f06b, 0x0245cb2d, 0x030eb672, 0x00433be7, 0x0068cc5e, 0x00c2cf27, 0x01476b7b, 0x02818bb0, 0x025ced60, 0x002ba8d2}}},
+ {X: Field{[10]uint32{0x02dc2eba, 0x036bb0ed, 0x020c7ea8, 0x016a182f, 0x02dfc9ed, 0x03b91e89, 0x022b91d1, 0x014e0170, 0x0246bb31, 0x002b46c1}}, Y: Field{[10]uint32{0x02dd2083, 0x02e65564, 0x018bb353, 0x02a5b4c3, 0x03a298da, 0x0285661c, 0x0110c9ee, 0x0314246a, 0x01a22499, 0x003b8b98}}},
+ {X: Field{[10]uint32{0x030ec72b, 0x02df34d6, 0x020cc35c, 0x01d288da, 0x02fa12df, 0x0047b2a9, 0x00d8c7f0, 0x03d92954, 0x008911d8, 0x0013dec2}}, Y: Field{[10]uint32{0x01bb21e3, 0x00549713, 0x01d993e3, 0x0143c778, 0x0129b942, 0x035fe1a4, 0x019ffac8, 0x01f862d3, 0x001b0d29, 0x0024c6bd}}},
+ {X: Field{[10]uint32{0x03d3a7ee, 0x00d48f24, 0x01870d2d, 0x01d0d5a5, 0x02834d02, 0x002ec4be, 0x03ba8747, 0x023cf24f, 0x0170e410, 0x0036aca8}}, Y: Field{[10]uint32{0x0173ae4d, 0x002cbef1, 0x0251e7bb, 0x01bc5d19, 0x03293a5c, 0x002338d6, 0x02ecb24d, 0x0004377a, 0x02cfc37f, 0x00098bc4}}},
+ {X: Field{[10]uint32{0x03cf39be, 0x031d2128, 0x03a317ab, 0x021f12f3, 0x02d499f6, 0x0046d699, 0x01e50823, 0x035cb906, 0x017b0784, 0x000d0dc9}}, Y: Field{[10]uint32{0x01c398d3, 0x02cef6a9, 0x00ec2a49, 0x0281dbc7, 0x00f38bd0, 0x02c1b5f0, 0x013fa143, 0x035a3a11, 0x03076da8, 0x0033a6f3}}},
+ {X: Field{[10]uint32{0x0099545b, 0x0179cd82, 0x0155c9ed, 0x0024d2b4, 0x03939fa4, 0x028d2feb, 0x0386024e, 0x006ad6fd, 0x029f8261, 0x0011652b}}, Y: Field{[10]uint32{0x02d450f5, 0x00fe4a3a, 0x00da4c4b, 0x0178fb83, 0x0177d3f1, 0x01ded1e3, 0x0034e72e, 0x02e9cb0e, 0x03f562b0, 0x00089571}}},
+ {X: Field{[10]uint32{0x01898819, 0x0084b760, 0x003c2f13, 0x00dac89d, 0x033aebb0, 0x01ad6169, 0x02b21fc2, 0x001bec0d, 0x030512db, 0x0001ccdd}}, Y: Field{[10]uint32{0x00307887, 0x00315fd4, 0x03c51515, 0x03b4a4a0, 0x00848b53, 0x0161fcfe, 0x01cf461c, 0x02c28958, 0x0159725f, 0x001d4f77}}},
+ {X: Field{[10]uint32{0x029790ff, 0x02af59b5, 0x0372e3f2, 0x00b41953, 0x00a53f4c, 0x0231d2af, 0x02d81c10, 0x03fbcd54, 0x00144d2a, 0x002f6456}}, Y: Field{[10]uint32{0x0027763e, 0x01fb4b46, 0x005b950e, 0x016e5783, 0x0231ae89, 0x017d1c52, 0x02b3277a, 0x038dced0, 0x01e17f27, 0x0006bd82}}},
+ {X: Field{[10]uint32{0x015bb557, 0x0395b6e4, 0x03c73d4c, 0x01007d27, 0x01677827, 0x00f621c3, 0x001ced90, 0x03fb88a3, 0x014ca51d, 0x00228473}}, Y: Field{[10]uint32{0x02f5cf23, 0x003d8655, 0x017196be, 0x03c09cce, 0x02ca46b3, 0x03d1c403, 0x00278229, 0x02725fbb, 0x03eeae9f, 0x0034c2b5}}},
+ {X: Field{[10]uint32{0x039bfcfd, 0x011b61db, 0x01ea697d, 0x035f0291, 0x03cfd058, 0x016c09ca, 0x023e6886, 0x02ffadb0, 0x01f02802, 0x001e4a6d}}, Y: Field{[10]uint32{0x00fde5d0, 0x02d538bd, 0x00b36963, 0x033507c2, 0x018c80d1, 0x00aa2430, 0x01e366c3, 0x01e0f534, 0x02218039, 0x003e6eeb}}},
+ {X: Field{[10]uint32{0x03d89d01, 0x0131498e, 0x018bcf6e, 0x01566c69, 0x03d55f88, 0x0327c07c, 0x000e79bc, 0x0259be02, 0x02ac1d5b, 0x002037c1}}, Y: Field{[10]uint32{0x01136538, 0x006ab250, 0x03a7ebe4, 0x00dc9983, 0x025ee5c3, 0x030043cd, 0x025614ba, 0x0162a498, 0x02d0a595, 0x000d1a49}}},
+ {X: Field{[10]uint32{0x025ccaf7, 0x020cc56f, 0x00ac6efc, 0x036b483d, 0x03ed4b01, 0x020eb44e, 0x0292b4f3, 0x020fca52, 0x00789ff3, 0x001d1515}}, Y: Field{[10]uint32{0x0160fa9a, 0x01ddf2f0, 0x00ceafae, 0x018679d8, 0x03e82173, 0x0133cad7, 0x01ea165c, 0x01dffb78, 0x037781ee, 0x000d9227}}},
+ {X: Field{[10]uint32{0x02f8fe85, 0x00af3616, 0x01e67de6, 0x0357e1df, 0x03e562d7, 0x00a0a2df, 0x0011fdb4, 0x02a28257, 0x01bcb213, 0x000b1b4d}}, Y: Field{[10]uint32{0x035d159b, 0x02f9ad31, 0x0163144d, 0x0270af4d, 0x002e6013, 0x00bc8ca6, 0x002206c7, 0x013e7d14, 0x03703409, 0x002a8c38}}},
+ {X: Field{[10]uint32{0x02e338db, 0x0369c3ec, 0x027be830, 0x0274c12a, 0x024b4342, 0x00a33458, 0x011846a7, 0x013ac0a0, 0x017a9d93, 0x0020d4d9}}, Y: Field{[10]uint32{0x00e02b71, 0x0275011d, 0x003b166a, 0x02bcebfe, 0x02ed4a4c, 0x039a4f22, 0x0189c5ac, 0x03e974a0, 0x0038020f, 0x003e1001}}},
+ {X: Field{[10]uint32{0x02ae494f, 0x02a377ea, 0x027f6fd1, 0x01cd3b61, 0x012177ca, 0x018698a6, 0x02f63365, 0x015b5f1f, 0x013a54ce, 0x003c85ba}}, Y: Field{[10]uint32{0x00d30611, 0x00fa912b, 0x036723f4, 0x02dc0bc6, 0x038da296, 0x004730d1, 0x03e8fadb, 0x020c9818, 0x0313a0fe, 0x0036c28f}}},
+ {X: Field{[10]uint32{0x008324fb, 0x0342046a, 0x03112273, 0x032379b9, 0x002e9a3d, 0x018bb1fd, 0x022baa4b, 0x01cfe595, 0x02219b5d, 0x00370dc4}}, Y: Field{[10]uint32{0x0357c004, 0x02c553f7, 0x000fb581, 0x0055f0cc, 0x004f1c90, 0x00a7e6ed, 0x020acaa9, 0x00fa58dc, 0x0092ec56, 0x003bb324}}},
+ {X: Field{[10]uint32{0x02649475, 0x02641c8d, 0x0116dd44, 0x01ed0959, 0x02b10f04, 0x03bd4d2b, 0x02f60296, 0x02d3c787, 0x036d48f0, 0x0036cd1c}}, Y: Field{[10]uint32{0x00586bec, 0x02f93fab, 0x00fdfdd1, 0x01985934, 0x001a1169, 0x024f9462, 0x02c34c9b, 0x031e1a54, 0x016cf7a8, 0x00070a73}}},
+ {X: Field{[10]uint32{0x03696add, 0x031ca5c0, 0x03d3378f, 0x03b4d63e, 0x01971b09, 0x00bd6f3c, 0x015af536, 0x021093cd, 0x00572046, 0x00028921}}, Y: Field{[10]uint32{0x02547803, 0x028ddd89, 0x006948c9, 0x00c6f214, 0x03baffc9, 0x00b8915c, 0x0367a56c, 0x037ae28d, 0x016137d0, 0x00269c0f}}},
+ {X: Field{[10]uint32{0x024436c4, 0x027ea8c4, 0x01ed240c, 0x02e63ec9, 0x023eba38, 0x007da343, 0x02aa4293, 0x01d4eeef, 0x006fa9ac, 0x002edee0}}, Y: Field{[10]uint32{0x02426752, 0x020daa04, 0x02e646e5, 0x0273e6d0, 0x0007c6ff, 0x026c0543, 0x03682e3d, 0x02efa366, 0x0174a1a8, 0x0023e049}}},
+ {X: Field{[10]uint32{0x03ecf446, 0x0025bff0, 0x01ad517b, 0x02a9d125, 0x00489344, 0x02783c1a, 0x02194276, 0x02808fd9, 0x0076fc28, 0x0019c0f1}}, Y: Field{[10]uint32{0x00e2a38c, 0x02b10f4a, 0x0215eed3, 0x02ac148b, 0x00f42699, 0x019cc785, 0x00211a30, 0x029c8d61, 0x023f7c9b, 0x0022d200}}},
+ {X: Field{[10]uint32{0x02dbf6a2, 0x012e9878, 0x023b71b4, 0x02a8d251, 0x0214cf0d, 0x00584ae0, 0x023f3b7a, 0x02d123f8, 0x00e4bfa4, 0x002f2abe}}, Y: Field{[10]uint32{0x01c7f404, 0x0385c435, 0x01736d6f, 0x03b1a333, 0x03b07498, 0x02fa1e4e, 0x0108835d, 0x0254ffa7, 0x0300e2cc, 0x002f7fc9}}},
+ {X: Field{[10]uint32{0x0310cd49, 0x0361e464, 0x00f7bbfe, 0x005cfb1d, 0x02217945, 0x01c9a8b9, 0x015b446d, 0x01c88077, 0x03da1a55, 0x00241ad3}}, Y: Field{[10]uint32{0x012653cf, 0x029d34e2, 0x00f93441, 0x0240b5fd, 0x01cf8384, 0x021a421c, 0x0304bc47, 0x0134a340, 0x02dbcd2c, 0x0035d4fc}}},
+ {X: Field{[10]uint32{0x02f93d5f, 0x009ab0e7, 0x029058d7, 0x0337ade1, 0x00fa5369, 0x006ff741, 0x000e326e, 0x01f65546, 0x0383018f, 0x0027b025}}, Y: Field{[10]uint32{0x03acf205, 0x0252b765, 0x02049d17, 0x03e3e252, 0x00ad22ba, 0x034a3edc, 0x02c68424, 0x0059054e, 0x0057994b, 0x002732a0}}},
+ {X: Field{[10]uint32{0x02b8209d, 0x038cc504, 0x030f3a2d, 0x02faec00, 0x036f823c, 0x004534bc, 0x0362a96f, 0x0103b0a0, 0x0106b754, 0x0014cd1e}}, Y: Field{[10]uint32{0x020c1fa0, 0x02824332, 0x0034ab06, 0x0200f864, 0x01595816, 0x025543b1, 0x02f1bf02, 0x022af91f, 0x00e0471f, 0x000332ce}}},
+ {X: Field{[10]uint32{0x023a4870, 0x023e0374, 0x013373b9, 0x00445485, 0x03a33e54, 0x02cd5e01, 0x0224b18e, 0x0012024f, 0x032961b7, 0x0009f14f}}, Y: Field{[10]uint32{0x02575601, 0x02e222f6, 0x014fe2f3, 0x03ea2016, 0x00703fa5, 0x02b23139, 0x03c70e59, 0x00db11c7, 0x038de186, 0x00168fd2}}},
+ {X: Field{[10]uint32{0x0259b68f, 0x03339d77, 0x02a5beac, 0x028f9d72, 0x0322ed51, 0x03d57084, 0x02616bac, 0x017e684a, 0x03e37a11, 0x00248649}}, Y: Field{[10]uint32{0x0327b141, 0x00db1341, 0x00ae2e06, 0x01c45e19, 0x0155884e, 0x0098f5de, 0x02fb5906, 0x0316d662, 0x007bc1e4, 0x002f6edf}}},
+ {X: Field{[10]uint32{0x033ea8c2, 0x01b35b8f, 0x01ff8dde, 0x002468f6, 0x01efb3e6, 0x0390c9d4, 0x03c692ca, 0x007ff59d, 0x00876eb8, 0x0025cecf}}, Y: Field{[10]uint32{0x03bbb0ed, 0x03af7655, 0x003b849a, 0x02b8ea5a, 0x018684b0, 0x036f3b36, 0x0112c5da, 0x01442e90, 0x03710129, 0x000d037d}}},
+ {X: Field{[10]uint32{0x0301ae71, 0x017a6b06, 0x02ce4020, 0x00c84995, 0x00d5972c, 0x024811c0, 0x038ef036, 0x00dd9e64, 0x03def053, 0x00082e05}}, Y: Field{[10]uint32{0x0395707b, 0x0052aa20, 0x01c1234a, 0x0193faa6, 0x01c6b1ce, 0x01282af1, 0x025c3529, 0x02805871, 0x025be2da, 0x000ab8bf}}},
+ {X: Field{[10]uint32{0x03c95876, 0x02226d28, 0x01402aa6, 0x0358f64c, 0x01ca9fc5, 0x01cbad0f, 0x02347b7f, 0x0246041e, 0x004f7a7e, 0x0018f895}}, Y: Field{[10]uint32{0x000d16b1, 0x032b5c4a, 0x02067f91, 0x02c7e1b9, 0x02adf49c, 0x022f57eb, 0x01cdf521, 0x00533801, 0x026d20d7, 0x00398abb}}},
+ {X: Field{[10]uint32{0x022aeb80, 0x00e5d4f8, 0x034216ac, 0x01cb9060, 0x01a69dd4, 0x011f5d8b, 0x0183abfc, 0x0233c2cd, 0x02107150, 0x000be437}}, Y: Field{[10]uint32{0x0388d389, 0x024eaf4d, 0x0264b761, 0x0226708f, 0x00880f3a, 0x02846122, 0x01e5e025, 0x0375d189, 0x02bd04a0, 0x0014dc6f}}},
+ {X: Field{[10]uint32{0x02ed7209, 0x0373ca74, 0x0048ac9a, 0x03082b47, 0x037c9359, 0x03968d47, 0x0237cf75, 0x01b41517, 0x00e8faa9, 0x0023508f}}, Y: Field{[10]uint32{0x03ab40f2, 0x002c4a42, 0x03d6eea8, 0x03056b02, 0x03bb9d23, 0x0299570f, 0x00df7948, 0x03100686, 0x003dee76, 0x0020f52e}}},
+ {X: Field{[10]uint32{0x00181efd, 0x03b04420, 0x03ea3bec, 0x0220156c, 0x02a9c91d, 0x02451090, 0x03111a20, 0x022bfcc0, 0x01425e02, 0x0004be90}}, Y: Field{[10]uint32{0x00c3ff57, 0x00ab103a, 0x03d4dc4d, 0x022ecb8d, 0x03ee5c3b, 0x018bac43, 0x010eddb3, 0x00ad5eb0, 0x03708e79, 0x001ae56c}}},
+ {X: Field{[10]uint32{0x02706f73, 0x011e20a2, 0x00bbff83, 0x01bfff43, 0x00ce7019, 0x037cb5cc, 0x0105632c, 0x0375f35d, 0x015f2a3b, 0x00248f2a}}, Y: Field{[10]uint32{0x0346abbc, 0x0106ad49, 0x032ee3e5, 0x036f2b42, 0x031903af, 0x00433ffc, 0x003983b2, 0x0185cece, 0x0066c39b, 0x003e2c32}}},
+ {X: Field{[10]uint32{0x00893646, 0x027835a2, 0x01776a86, 0x02859882, 0x0064ce3a, 0x00a3d1c1, 0x023875a7, 0x0103a58f, 0x013e8782, 0x00021135}}, Y: Field{[10]uint32{0x03eeaca1, 0x01579cdb, 0x032b25b8, 0x031c67ec, 0x011c84f9, 0x01c4ef1d, 0x00c47b4a, 0x02307fe6, 0x029192bf, 0x00318334}}},
+ {X: Field{[10]uint32{0x01dc98f3, 0x01eb087c, 0x02b2a65e, 0x027d998d, 0x03883829, 0x00016977, 0x0277ff81, 0x007636e8, 0x03d6c547, 0x0010de1b}}, Y: Field{[10]uint32{0x02091b51, 0x00bd4a95, 0x0127e914, 0x0213e630, 0x03745ff8, 0x021c1bf9, 0x039109cb, 0x016ef63d, 0x02c29c8c, 0x0034a4a8}}},
+ {X: Field{[10]uint32{0x0236d7ab, 0x01cdb72b, 0x0257ce94, 0x01162c1c, 0x02bb0dec, 0x02e628b3, 0x0383f71f, 0x03b3d8e1, 0x028df5e9, 0x001b46f0}}, Y: Field{[10]uint32{0x00d549e6, 0x020008e2, 0x0238da0e, 0x001c8c85, 0x00e2c00e, 0x00a04237, 0x0214cf7a, 0x00111e18, 0x0192bfd8, 0x0030b150}}},
+ {X: Field{[10]uint32{0x02ff86c6, 0x0255aac5, 0x037f67d8, 0x0333fe12, 0x016c742c, 0x00f89975, 0x033f89cc, 0x0338f0bb, 0x03347f74, 0x001af13b}}, Y: Field{[10]uint32{0x01b46408, 0x03f33c5e, 0x0066b8b0, 0x03918317, 0x01be26a6, 0x01af798b, 0x036be35c, 0x02c13c49, 0x02fd2d2a, 0x003ad124}}},
+ {X: Field{[10]uint32{0x03678b38, 0x03ea66ef, 0x00ddcb35, 0x00af2ccf, 0x000d67a6, 0x00342357, 0x02a756e0, 0x00256350, 0x0075fa81, 0x001abd14}}, Y: Field{[10]uint32{0x025bff28, 0x01ffe7ee, 0x00bfd528, 0x024e1258, 0x02886c7b, 0x02dce199, 0x00ffc3fa, 0x020b1d9e, 0x024f0e76, 0x002b6edc}}},
+ {X: Field{[10]uint32{0x01260600, 0x03a29995, 0x011caa24, 0x003e416b, 0x00939f34, 0x0156dd18, 0x02f49cd3, 0x018d96a5, 0x03763646, 0x003adb62}}, Y: Field{[10]uint32{0x03bea3cd, 0x02eb835f, 0x015c33c2, 0x021c0cfe, 0x0241f7a1, 0x000ee074, 0x03a11ff6, 0x002dfee6, 0x02fdaea3, 0x001eba73}}},
+ {X: Field{[10]uint32{0x01795068, 0x0115d7a4, 0x000af11e, 0x026eb594, 0x01b34d5e, 0x02eb533d, 0x038dd694, 0x01f4fd9c, 0x02332fef, 0x002f4308}}, Y: Field{[10]uint32{0x011cf209, 0x02082fa7, 0x0113676f, 0x015ceaa7, 0x01a91c4d, 0x01a08e93, 0x01100b66, 0x02c8702a, 0x004e2ea0, 0x003aae97}}},
+ {X: Field{[10]uint32{0x02b7e392, 0x03261e54, 0x034b5054, 0x027e010d, 0x030aa56d, 0x01092455, 0x003e0831, 0x025064d2, 0x03bdc504, 0x0031788e}}, Y: Field{[10]uint32{0x02597751, 0x022b1e9b, 0x00fe2f7f, 0x019a156d, 0x038d59e7, 0x02a92b8f, 0x01cd02e3, 0x0085feff, 0x00cbf684, 0x00132bae}}},
+ {X: Field{[10]uint32{0x0092d2a3, 0x019f3e23, 0x00bd8108, 0x02637a8e, 0x0017178e, 0x03487181, 0x003edb03, 0x02ae4955, 0x0231f3aa, 0x002d5c5d}}, Y: Field{[10]uint32{0x0011942a, 0x01027ca3, 0x020e9a02, 0x02b23c74, 0x00d2bdf0, 0x00936ead, 0x03318745, 0x02a7bc22, 0x01cc0324, 0x0039d082}}},
+ {X: Field{[10]uint32{0x01305cfc, 0x012d7a57, 0x00cca2fe, 0x01f1ee0e, 0x01b2d17b, 0x00c281f8, 0x00a85d5d, 0x007cbf2b, 0x00994960, 0x00271158}}, Y: Field{[10]uint32{0x0304eeb6, 0x03b81bbf, 0x00674674, 0x030d6172, 0x00329273, 0x0079401e, 0x001b61b3, 0x0371f0a1, 0x0140a109, 0x000b5e85}}},
+ {X: Field{[10]uint32{0x02a82f63, 0x01de9462, 0x00d5498c, 0x0175cc8a, 0x03e33dae, 0x00ed9812, 0x02ff1757, 0x00db12a2, 0x0146c0ab, 0x0014ab8a}}, Y: Field{[10]uint32{0x037f87b4, 0x035dc71d, 0x0104d24d, 0x0320190c, 0x027179f5, 0x019524fc, 0x003f899b, 0x006fe934, 0x019b6606, 0x001c388f}}},
+ {X: Field{[10]uint32{0x0394adf9, 0x0167c280, 0x03dcef4f, 0x030b0a7b, 0x0189db9a, 0x0210207a, 0x01ba4903, 0x0118b770, 0x03bf55ff, 0x000527b0}}, Y: Field{[10]uint32{0x009dd7af, 0x02a2f05e, 0x01801341, 0x01737e52, 0x0049642b, 0x039a5472, 0x028fbc7c, 0x02e508ab, 0x0188b91d, 0x00016707}}},
+ {X: Field{[10]uint32{0x02ea7ea7, 0x018e0410, 0x005768a1, 0x00270534, 0x03dbe14a, 0x0054e368, 0x03835346, 0x0063777f, 0x0294d667, 0x002bfe24}}, Y: Field{[10]uint32{0x0159266b, 0x0139d913, 0x00bb9a92, 0x0244aa23, 0x017b6154, 0x02f095b7, 0x022352ac, 0x021e97b3, 0x03ebcf58, 0x001c619a}}},
+ {X: Field{[10]uint32{0x004e76fc, 0x02ed0196, 0x02b78da7, 0x02dce38a, 0x0133887e, 0x000f8ad0, 0x012d49b3, 0x0011cab5, 0x00782cb3, 0x0037913d}}, Y: Field{[10]uint32{0x02482bf5, 0x0348f273, 0x01da7eef, 0x03ea0c3b, 0x01b13d08, 0x02b23bc8, 0x03c630d7, 0x0360b015, 0x018425ba, 0x0019e62b}}},
+ {X: Field{[10]uint32{0x01682e61, 0x03b1f1ce, 0x021345a2, 0x03aca253, 0x02b3a380, 0x006e80b1, 0x032c88be, 0x024d9b05, 0x02737616, 0x00382f1e}}, Y: Field{[10]uint32{0x022cb2e0, 0x01827349, 0x024d3c23, 0x030aad50, 0x035ad1f7, 0x01edfa64, 0x027c0ec8, 0x023fa37f, 0x02b933b1, 0x002f451f}}},
+ {X: Field{[10]uint32{0x032f0e6d, 0x01e91d80, 0x03b1127c, 0x0269c73e, 0x02ed2613, 0x0294da88, 0x033cfa70, 0x027cce51, 0x03272af6, 0x0017b8d3}}, Y: Field{[10]uint32{0x00e13b8c, 0x018abab1, 0x036cb807, 0x004370d8, 0x011316bf, 0x01737bf1, 0x0257de98, 0x01360bda, 0x0396dc0d, 0x003077e3}}},
+ {X: Field{[10]uint32{0x0199a0f2, 0x03397a39, 0x0113a68b, 0x011afb57, 0x03672968, 0x03855f5e, 0x00c274df, 0x01e98e6e, 0x03c177fa, 0x0013728e}}, Y: Field{[10]uint32{0x012fb234, 0x030cb14f, 0x032a1d01, 0x01a14bbf, 0x012fb489, 0x03d6723a, 0x033fd758, 0x026baff6, 0x015836fb, 0x0023f4ad}}},
+ {X: Field{[10]uint32{0x00b48136, 0x0211d47e, 0x004f5bc1, 0x00d280d2, 0x00980810, 0x03a64fd5, 0x01ed9373, 0x000a43be, 0x03c18756, 0x001553da}}, Y: Field{[10]uint32{0x0172b26a, 0x0129af28, 0x0183d206, 0x00e8783f, 0x03de8086, 0x0230fd43, 0x03834e0e, 0x004a8d45, 0x03b7dfd5, 0x002d1530}}},
+ {X: Field{[10]uint32{0x01592ad4, 0x00a096e1, 0x02ba420b, 0x01f2d4e7, 0x02955af8, 0x018b708b, 0x0160b2e1, 0x021e69aa, 0x0350a6c0, 0x00256a06}}, Y: Field{[10]uint32{0x0045c712, 0x006ac303, 0x011af265, 0x021bd9c0, 0x037c7d50, 0x00e2a930, 0x0072b75f, 0x008b47d6, 0x00c4dfed, 0x002f957a}}},
+ {X: Field{[10]uint32{0x037e5c4d, 0x02e2f9d1, 0x01d853ef, 0x029ba8a4, 0x0244a4f8, 0x00c7d560, 0x00d14d34, 0x01a9b8d6, 0x01539e49, 0x00241edb}}, Y: Field{[10]uint32{0x03150eac, 0x021cb91d, 0x0265c21f, 0x0000a489, 0x01ff33e2, 0x0375f475, 0x0017fad1, 0x02ee799e, 0x02943853, 0x002cf4f5}}},
+ {X: Field{[10]uint32{0x03f17aa6, 0x03330271, 0x003575bc, 0x0191adea, 0x01c8884c, 0x00fc5d81, 0x0337cb23, 0x015dbd9d, 0x001bb342, 0x002149f2}}, Y: Field{[10]uint32{0x037604fc, 0x013a3d61, 0x02a64504, 0x0274cce1, 0x019cd47b, 0x0115ddfc, 0x031930c1, 0x0149255e, 0x01bcdb8d, 0x002db59d}}},
+ {X: Field{[10]uint32{0x03ab00ec, 0x025d38bb, 0x01e9f913, 0x00ea066e, 0x03bc6bf8, 0x03e41ba6, 0x02134360, 0x0036493a, 0x027d5a32, 0x0023878e}}, Y: Field{[10]uint32{0x0018b0b9, 0x002783fd, 0x01c4aff3, 0x01f1e4a0, 0x000792e0, 0x029e4b14, 0x023dad4e, 0x017c970c, 0x03abd81d, 0x003653c0}}},
+ {X: Field{[10]uint32{0x019a8d76, 0x03eadd54, 0x0034d72c, 0x0125731d, 0x02dd0d89, 0x031a32da, 0x02cbd86b, 0x012a3426, 0x0393be1f, 0x003f00b2}}, Y: Field{[10]uint32{0x024d4f94, 0x00f1dc9f, 0x004e98b7, 0x027659fa, 0x02ffe4cd, 0x0216895b, 0x026ceb08, 0x01171662, 0x0132729e, 0x001c7de9}}},
+ {X: Field{[10]uint32{0x03e6e7b8, 0x00a26c42, 0x016af80a, 0x01fe6cbb, 0x03ff7635, 0x03c21d46, 0x02c44db4, 0x022ceec6, 0x0302a285, 0x0033e604}}, Y: Field{[10]uint32{0x0173b528, 0x006fa223, 0x007bad3a, 0x00a2e221, 0x02f1a8a8, 0x0213c7e8, 0x0205ded9, 0x0199b9c0, 0x0012bf23, 0x0008dfa7}}},
+ {X: Field{[10]uint32{0x00231d82, 0x03712faa, 0x01228e97, 0x00782e81, 0x0371718d, 0x03235433, 0x0274cbba, 0x03a480f2, 0x01dc1408, 0x000f9b91}}, Y: Field{[10]uint32{0x031ef848, 0x01d19dce, 0x028a3147, 0x0387c3f7, 0x03961009, 0x01fbe1b7, 0x01f287ca, 0x02a017d8, 0x037a2ad3, 0x000b8ff6}}},
+ {X: Field{[10]uint32{0x007d4657, 0x02e7b69c, 0x028b3749, 0x02cb7c99, 0x023ce1b2, 0x00466c3b, 0x00090888, 0x0051c442, 0x03950758, 0x002ec11d}}, Y: Field{[10]uint32{0x01c67587, 0x00e45a1d, 0x01bc1bc4, 0x016ff38a, 0x028d6ee5, 0x036fbbb4, 0x01ad6977, 0x03ce9abd, 0x02fc5f95, 0x002569cb}}},
+ {X: Field{[10]uint32{0x00dd6748, 0x01746e5a, 0x0193903f, 0x01b604a4, 0x0100fe35, 0x0338132d, 0x03a31034, 0x00b0412a, 0x0142b8b0, 0x00138057}}, Y: Field{[10]uint32{0x00a870fb, 0x010b001c, 0x00d2dd39, 0x03ea046f, 0x02746419, 0x02499d08, 0x00e96ffc, 0x01b5c765, 0x00e7dfbf, 0x0034d6c8}}},
+ {X: Field{[10]uint32{0x00a49daf, 0x00dd1649, 0x0386792a, 0x03c90437, 0x0270850a, 0x01a341e3, 0x037391bd, 0x02c8427a, 0x005790c8, 0x00182693}}, Y: Field{[10]uint32{0x03ad0e98, 0x01540bc2, 0x00e8a0e3, 0x000347cd, 0x0314431d, 0x02290e42, 0x01cb14e7, 0x016ce960, 0x027ebc96, 0x003ce98c}}},
+ {X: Field{[10]uint32{0x027fc730, 0x02eac0e8, 0x00aa1780, 0x0184c16d, 0x01b9ea07, 0x005fb3d8, 0x01b7558a, 0x016b0138, 0x03362a95, 0x00332f81}}, Y: Field{[10]uint32{0x0092cd3b, 0x0311fe47, 0x03abb71f, 0x00492c0f, 0x00d981a0, 0x00190ca6, 0x02a4e3ae, 0x02875d97, 0x00166c98, 0x003e5adf}}},
+ {X: Field{[10]uint32{0x03ccab14, 0x01471a70, 0x008c3e21, 0x01a6a10e, 0x009143c5, 0x01384738, 0x0310ef90, 0x008c0b9a, 0x028285df, 0x001bb580}}, Y: Field{[10]uint32{0x02d196e7, 0x0247a946, 0x026081d5, 0x00709614, 0x03e91b0d, 0x0199798b, 0x03c75649, 0x00ede3a3, 0x03b0687a, 0x0019d7a8}}},
+ {X: Field{[10]uint32{0x0349d8e0, 0x01ffda72, 0x02c7f4c0, 0x01dd10f6, 0x02708061, 0x0214554c, 0x033c5923, 0x02853156, 0x01cba0cc, 0x002f7fc1}}, Y: Field{[10]uint32{0x020c9a50, 0x0041b69b, 0x017981dd, 0x024eaab2, 0x03f09d79, 0x020ce443, 0x00a72390, 0x023b309d, 0x010486cd, 0x0014526b}}},
+ {X: Field{[10]uint32{0x022bff2b, 0x01e64453, 0x0386eed5, 0x01570b1c, 0x00af9f6e, 0x01e6bb47, 0x03e53665, 0x00c96c8a, 0x028ccc70, 0x00019339}}, Y: Field{[10]uint32{0x01cb1cae, 0x01abb791, 0x0106bd59, 0x0387aad9, 0x0211bf1b, 0x0084f2ee, 0x021dddf2, 0x02683bbd, 0x01763c8a, 0x003e3226}}},
+ {X: Field{[10]uint32{0x00ab2bb4, 0x0051c686, 0x007edaf0, 0x03d58984, 0x02b40de7, 0x007968bd, 0x02f3c06e, 0x0143cf72, 0x006f4891, 0x003350b9}}, Y: Field{[10]uint32{0x01bcfada, 0x03f68280, 0x025c281d, 0x0227d9e7, 0x0017f11f, 0x0094e9e2, 0x00921f4e, 0x01a59ed3, 0x00ddd202, 0x00367094}}},
+ {X: Field{[10]uint32{0x01619735, 0x0157c062, 0x02c4359d, 0x0070d713, 0x025e9b12, 0x03b136ba, 0x01a7e8e3, 0x0150838b, 0x0007e714, 0x003df0a4}}, Y: Field{[10]uint32{0x03a493b7, 0x02928cfa, 0x023ddc2b, 0x00e8db3e, 0x005ea293, 0x0281b76c, 0x03735a56, 0x02a4f98d, 0x00064dbd, 0x00199145}}},
+ {X: Field{[10]uint32{0x0293b7a8, 0x007d9e57, 0x010f2c5c, 0x034b6445, 0x00377609, 0x01c560d7, 0x033d2214, 0x0121589a, 0x01e1d494, 0x0018ce70}}, Y: Field{[10]uint32{0x02d59b28, 0x00cbf1cf, 0x02d95be5, 0x018261d8, 0x01d10a69, 0x03eb2e30, 0x015a20d8, 0x03a3dffd, 0x01ea47b4, 0x003bef9b}}},
+ {X: Field{[10]uint32{0x0089b37b, 0x0160050d, 0x00b4daaf, 0x01e367d0, 0x0207b1ec, 0x027d3ae1, 0x00bbcf1e, 0x03b4197d, 0x03137d22, 0x003f33c7}}, Y: Field{[10]uint32{0x01bf3e10, 0x012d541f, 0x0111c64a, 0x02bc86cd, 0x016646be, 0x025d5ad3, 0x01559d9d, 0x02b30e20, 0x002fef9f, 0x002969df}}},
+ {X: Field{[10]uint32{0x004f62d2, 0x03058010, 0x03d4e935, 0x035d63b0, 0x00a13434, 0x01ef23d7, 0x023b5541, 0x0213b3c4, 0x031006f2, 0x0036a5ff}}, Y: Field{[10]uint32{0x0312e168, 0x00c0732b, 0x0093cf8b, 0x008a2069, 0x024f3082, 0x0362ae4a, 0x031e3d1c, 0x00cc37cb, 0x028b4900, 0x00197085}}},
+ {X: Field{[10]uint32{0x033e4fd8, 0x00b6260c, 0x039bddce, 0x03c887c2, 0x03343ab6, 0x006d1164, 0x0157556c, 0x009338da, 0x00d5428a, 0x00199da9}}, Y: Field{[10]uint32{0x01af7b41, 0x02c717cf, 0x01593854, 0x01611686, 0x03b7afcf, 0x0119f5e4, 0x034d3d83, 0x0094d7d7, 0x00a4b933, 0x00116f77}}},
+ {X: Field{[10]uint32{0x017859ca, 0x004ab7b9, 0x01ccd302, 0x01e8a986, 0x0153396e, 0x00f7ba90, 0x0222c7cd, 0x00508152, 0x02becf46, 0x001e479a}}, Y: Field{[10]uint32{0x02dd37a1, 0x01ec333e, 0x02c9268a, 0x03745f93, 0x03e2ec07, 0x03fd0fb2, 0x0332990a, 0x01724fb1, 0x03fd08c5, 0x003900ce}}},
+ {X: Field{[10]uint32{0x030018a1, 0x005fcc6b, 0x005ae207, 0x011d2f5f, 0x02c66dd9, 0x012dcc91, 0x00985aa8, 0x0055429e, 0x03b2d518, 0x000e9f1e}}, Y: Field{[10]uint32{0x029d7459, 0x014b517f, 0x03d1437b, 0x0094612b, 0x02b6c38d, 0x039417e2, 0x01f732a9, 0x03b71488, 0x0317e03c, 0x0008e23a}}},
+ {X: Field{[10]uint32{0x013ab999, 0x0082f150, 0x00c3bef7, 0x005cad15, 0x0362b740, 0x0004e075, 0x03ca9361, 0x00725a72, 0x01b18680, 0x0009268b}}, Y: Field{[10]uint32{0x01d5e7a3, 0x0225ed74, 0x030cff71, 0x002cfb24, 0x002f708e, 0x01701d7a, 0x003cf9c8, 0x0247075e, 0x004176aa, 0x00368617}}},
+ {X: Field{[10]uint32{0x034f8590, 0x029a215a, 0x0313614d, 0x01fede4a, 0x0032c085, 0x01595794, 0x01f21e0c, 0x03302661, 0x0153b4e0, 0x002c9783}}, Y: Field{[10]uint32{0x0183eda2, 0x021399d7, 0x01055d6b, 0x02010ac8, 0x0300ac5b, 0x034a360d, 0x00fac42f, 0x038eb387, 0x02ff6b02, 0x0006f45e}}},
+ {X: Field{[10]uint32{0x03862fcd, 0x0167aaed, 0x02cd6013, 0x03dd45ff, 0x02bd1073, 0x0044090f, 0x029db66f, 0x00ce22a1, 0x036805e8, 0x001cd814}}, Y: Field{[10]uint32{0x015f9d56, 0x00494d9b, 0x02913d69, 0x039569d7, 0x03e767fa, 0x0384b507, 0x02434076, 0x0316983e, 0x002d0842, 0x003a71e8}}},
+ {X: Field{[10]uint32{0x03f1b1d9, 0x0172585d, 0x03ff9711, 0x036979c3, 0x022e5b52, 0x03c96750, 0x038a0c9a, 0x00ba5c0b, 0x03567139, 0x003b0bc2}}, Y: Field{[10]uint32{0x008183a8, 0x025263a4, 0x00818204, 0x00ad3f7b, 0x02d49e07, 0x02395b4c, 0x00571fa9, 0x01396432, 0x02bbadb2, 0x0011fdf7}}},
+ {X: Field{[10]uint32{0x03e2d378, 0x02981612, 0x038e5cbf, 0x025484dd, 0x01afc255, 0x00838630, 0x022ad2f3, 0x0350ea46, 0x03a8250d, 0x001f5ea3}}, Y: Field{[10]uint32{0x00fea3be, 0x00384458, 0x0352e02a, 0x01e904fd, 0x03fab2b0, 0x026f0835, 0x0300f110, 0x01f5dc09, 0x02168962, 0x001ad22e}}},
+ {X: Field{[10]uint32{0x026713d7, 0x01a57fea, 0x0036605c, 0x02433fd3, 0x0206e594, 0x009820b1, 0x03aaa01e, 0x01c8ee99, 0x01ce52b6, 0x000c5a9c}}, Y: Field{[10]uint32{0x02a1cb9e, 0x016bdcf5, 0x020200e9, 0x03f73e0b, 0x0184152f, 0x0172d2e8, 0x0344cf6e, 0x0318484a, 0x01a07820, 0x0035bc70}}},
+ {X: Field{[10]uint32{0x03bcca51, 0x01b9caa7, 0x01930ade, 0x015c476e, 0x029ace88, 0x02b65e88, 0x02e5fc6e, 0x0227ff0c, 0x00c30ade, 0x000868aa}}, Y: Field{[10]uint32{0x0082e4d0, 0x01b073e2, 0x001e47c5, 0x00e28ae5, 0x01726fd4, 0x00cbc38d, 0x012aafb4, 0x0145ed5c, 0x010438df, 0x00257f4f}}},
+ {X: Field{[10]uint32{0x028f94d5, 0x027b0c9c, 0x01535536, 0x0378107e, 0x021ad2cf, 0x0144ebeb, 0x0146c68f, 0x0205c36b, 0x0067b3ad, 0x000fc606}}, Y: Field{[10]uint32{0x02317527, 0x0277c428, 0x00a915f0, 0x03c0e2c0, 0x0191abb8, 0x0088aac3, 0x01991894, 0x003aab55, 0x00e4e9f2, 0x002946a5}}},
+ {X: Field{[10]uint32{0x01f63c1e, 0x0024bc22, 0x02a697d0, 0x01b4c563, 0x0079b7aa, 0x0243b3ed, 0x01ecb9b6, 0x00e6f3c4, 0x013911be, 0x003a59cc}}, Y: Field{[10]uint32{0x0103abc2, 0x02050b52, 0x035461f9, 0x03a184c1, 0x00da9be6, 0x00c808a8, 0x022017c0, 0x020f8e37, 0x00f76f87, 0x00030403}}},
+ {X: Field{[10]uint32{0x0008b122, 0x0153eba4, 0x00cd8615, 0x010caf42, 0x02d3096d, 0x03ce61b1, 0x03e94b06, 0x02b1f951, 0x02b01407, 0x00187aa2}}, Y: Field{[10]uint32{0x00a4d182, 0x0172a3fd, 0x02792a10, 0x03d0a0fe, 0x02150167, 0x01a7c73b, 0x0090488e, 0x004ea5d9, 0x03cca6f7, 0x00397156}}},
+ {X: Field{[10]uint32{0x02dab9fe, 0x01cfe4ef, 0x02402cab, 0x03dc928e, 0x0149673d, 0x008e68fc, 0x00815540, 0x01ff767d, 0x027a1745, 0x002b63eb}}, Y: Field{[10]uint32{0x00f03e6b, 0x01fbfbd4, 0x035d4d77, 0x0080bb4d, 0x01485172, 0x00958fde, 0x001d0371, 0x0312eeec, 0x03ef7966, 0x0014edf7}}},
+ {X: Field{[10]uint32{0x02a829d3, 0x02062f6d, 0x0020c586, 0x01324640, 0x02cdf997, 0x0136750d, 0x0362f274, 0x00b9534f, 0x02dfbf7f, 0x00218173}}, Y: Field{[10]uint32{0x01946b88, 0x01bd52df, 0x01873d78, 0x03c143a1, 0x02e7a33d, 0x01dc23fd, 0x009fe4da, 0x02a86988, 0x015f0ca2, 0x0016be29}}},
+ {X: Field{[10]uint32{0x03921d87, 0x034b5b3f, 0x014c8cbc, 0x00f0bc8b, 0x016e8325, 0x029e533e, 0x00ffa5a7, 0x027bd1f7, 0x004b465b, 0x002f7795}}, Y: Field{[10]uint32{0x00aadcd8, 0x02f5b3a3, 0x01a7414e, 0x0237e228, 0x030ec97c, 0x0206f9aa, 0x01e7d230, 0x019fd57b, 0x03677ba8, 0x001b14d8}}},
+ {X: Field{[10]uint32{0x02fe1cdb, 0x039cd18c, 0x016bbfe3, 0x034aeb64, 0x0162a47b, 0x0170a3d2, 0x02eafca8, 0x0223724f, 0x0245e8b0, 0x000c620a}}, Y: Field{[10]uint32{0x01f176bc, 0x0075a4d5, 0x021a6fd1, 0x02a780aa, 0x01d03557, 0x00b80a32, 0x02b833c1, 0x01b8784a, 0x00f0c5f8, 0x0002cd62}}},
+ {X: Field{[10]uint32{0x01dc1202, 0x0013dda9, 0x00883b0d, 0x02f589e6, 0x03e49fad, 0x000ee398, 0x0110b726, 0x003e7b6d, 0x00524580, 0x0005ef90}}, Y: Field{[10]uint32{0x0132fc54, 0x00ce92e3, 0x01cb9c9e, 0x01568bd6, 0x0181667e, 0x010349df, 0x00f7738e, 0x0156b80a, 0x03dcdf88, 0x0005413a}}},
+ {X: Field{[10]uint32{0x03629537, 0x01abeb72, 0x0308c9c5, 0x03d69806, 0x00a303ea, 0x001fcaca, 0x03c4e697, 0x01f4a9af, 0x0133bb69, 0x00318cef}}, Y: Field{[10]uint32{0x0218cef8, 0x03566dee, 0x01eac2b4, 0x01e0cc4e, 0x039f3b7f, 0x0187193c, 0x0006b924, 0x01936fcb, 0x00132d47, 0x0021b8fd}}},
+ {X: Field{[10]uint32{0x0260bb52, 0x01863d60, 0x00062570, 0x02d8ed18, 0x03633434, 0x00cf3444, 0x00881f3a, 0x0043dc64, 0x008af4c7, 0x003ce788}}, Y: Field{[10]uint32{0x01e2e62c, 0x014be4ae, 0x014e2bfe, 0x038ee973, 0x03d0171e, 0x03650f0c, 0x02e2b664, 0x00dbd89c, 0x0005807b, 0x0024315a}}},
+ {X: Field{[10]uint32{0x00a16c54, 0x01808cbd, 0x033db893, 0x0053d67d, 0x01ee4e54, 0x00b6e2b1, 0x00ddfb37, 0x02581e95, 0x039414f2, 0x0033a610}}, Y: Field{[10]uint32{0x0224e0d7, 0x033eebae, 0x03d7f627, 0x00b6e97a, 0x02bb8054, 0x03502ba5, 0x02f78354, 0x01ec4f1c, 0x01a1d105, 0x00069201}}},
+ {X: Field{[10]uint32{0x030a76bb, 0x01fd8cee, 0x0273f625, 0x008a8569, 0x01945041, 0x022175d5, 0x0171af10, 0x01e93ee9, 0x039f8110, 0x001499b9}}, Y: Field{[10]uint32{0x0159b457, 0x003f25a9, 0x01918d3b, 0x0003edce, 0x0018d382, 0x01ed5708, 0x033ca397, 0x017c4a1d, 0x01d09cc8, 0x00179eb4}}},
+ {X: Field{[10]uint32{0x027056e4, 0x030563ef, 0x035c11ff, 0x0025449b, 0x03675070, 0x01de2f22, 0x0370113c, 0x01ea8efc, 0x025763f4, 0x0013ee77}}, Y: Field{[10]uint32{0x0086f7ef, 0x021d54c5, 0x0175e52e, 0x01d61e27, 0x0229fe02, 0x00bf8f6c, 0x022fa347, 0x01c65c2a, 0x02368eec, 0x000b365d}}},
+ {X: Field{[10]uint32{0x03cc0226, 0x015d01c8, 0x0345bded, 0x02a348cd, 0x024ae7bb, 0x005632e4, 0x03ec8406, 0x0376f6aa, 0x0024a99e, 0x002b45a0}}, Y: Field{[10]uint32{0x014095de, 0x03dc103c, 0x003cba21, 0x01ae47b8, 0x029ee638, 0x014f12f9, 0x01e230bb, 0x0119ce3b, 0x0015968e, 0x002ac414}}},
+ {X: Field{[10]uint32{0x03719cb8, 0x0320005c, 0x028d55a7, 0x02e8522e, 0x01277923, 0x03c6cc1f, 0x03aea9b0, 0x01556dcc, 0x01aef7cc, 0x0001560a}}, Y: Field{[10]uint32{0x03267689, 0x03c269d8, 0x03d3d3c4, 0x03db12eb, 0x00382969, 0x031829ef, 0x003b47d6, 0x02561550, 0x02eb9c9b, 0x001a9ecb}}},
+ {X: Field{[10]uint32{0x0378b935, 0x03af0e1a, 0x01910960, 0x010d1435, 0x014e1e4c, 0x013a7780, 0x004bbe78, 0x01383888, 0x02338efa, 0x0008467c}}, Y: Field{[10]uint32{0x00e7bb93, 0x00da44ee, 0x0195711c, 0x01a4d29c, 0x0052acb4, 0x027144ea, 0x0337db96, 0x011319e8, 0x01c37785, 0x0027c867}}},
+ {X: Field{[10]uint32{0x01295bbf, 0x003f96ec, 0x01b3257f, 0x0260fd70, 0x02c52274, 0x0095634d, 0x01e53caa, 0x006fa75f, 0x021b0949, 0x00047f0f}}, Y: Field{[10]uint32{0x004cf6f5, 0x02314a21, 0x00ed6219, 0x02234427, 0x0191b8d1, 0x00c4416b, 0x026b6c02, 0x0164cdaa, 0x034decb0, 0x00071a71}}},
+ {X: Field{[10]uint32{0x03d2a908, 0x02fa8ef7, 0x0182180a, 0x00626421, 0x015e64ac, 0x01f981ab, 0x0091bc86, 0x01450e54, 0x026fea6e, 0x000d2db3}}, Y: Field{[10]uint32{0x03ccad6d, 0x00e5908a, 0x00694403, 0x00953860, 0x0328e9f3, 0x00b1e8c4, 0x01e41a13, 0x02fbcfee, 0x0104f4bd, 0x0016dbb6}}},
+ {X: Field{[10]uint32{0x0210a84c, 0x0103254d, 0x02e2e22a, 0x00f4b6da, 0x00b326fb, 0x01fbdd17, 0x01c567d9, 0x01a2acec, 0x01cab457, 0x001b0897}}, Y: Field{[10]uint32{0x002a1084, 0x03f5da10, 0x0229cd72, 0x010b403a, 0x03912fe0, 0x03610ef6, 0x0363cfa2, 0x03f633af, 0x03522180, 0x001fa175}}},
+ {X: Field{[10]uint32{0x028ed7d7, 0x001c5116, 0x003e32a7, 0x008039c1, 0x03cbfd20, 0x0052da22, 0x03cc7570, 0x025708cb, 0x02e541dd, 0x00017ddd}}, Y: Field{[10]uint32{0x03273c0e, 0x002cda62, 0x022ff2a2, 0x00fdb435, 0x01c11680, 0x0299354a, 0x009de0b9, 0x020d50e8, 0x0078fc6d, 0x000ee317}}},
+ {X: Field{[10]uint32{0x011b0e23, 0x02f64ca2, 0x014e9b8b, 0x01205bf6, 0x01d5371e, 0x00913ea9, 0x037eaa63, 0x010fbd78, 0x00c55315, 0x000f89b6}}, Y: Field{[10]uint32{0x0379bb65, 0x03eaaf82, 0x034b0c70, 0x003db62b, 0x02a5b4c7, 0x01b0fafe, 0x01a53bc0, 0x0280dbb8, 0x011b43a4, 0x000c2827}}},
+ {X: Field{[10]uint32{0x018b36af, 0x0036affc, 0x0085e8aa, 0x03efb84b, 0x0106be8a, 0x01954f91, 0x02970ac2, 0x00d5a2aa, 0x0291c17a, 0x00318d36}}, Y: Field{[10]uint32{0x01a925f0, 0x0088067c, 0x0346d6d5, 0x0267181b, 0x0016eb9f, 0x02361fb5, 0x01d34bd9, 0x0029ef41, 0x01bae139, 0x001925a0}}},
+ {X: Field{[10]uint32{0x027e9a7e, 0x0258b7cb, 0x0347e806, 0x02ceb235, 0x024e8361, 0x03090b5f, 0x02ab4eef, 0x00d6631b, 0x01d64d64, 0x0003b4cd}}, Y: Field{[10]uint32{0x00aa93e7, 0x01ad803f, 0x015e1eb5, 0x039fd5e3, 0x025a1552, 0x023ca2fb, 0x034b6909, 0x01ea9c8c, 0x03f819c9, 0x003c39f0}}},
+ {X: Field{[10]uint32{0x02521581, 0x03656147, 0x0328ed72, 0x0191d54f, 0x02d10be1, 0x021c3fec, 0x023dbf22, 0x0167b0fd, 0x00094113, 0x0034dfe3}}, Y: Field{[10]uint32{0x011f1922, 0x0391ed27, 0x0351a191, 0x03532f8e, 0x02831467, 0x01b4f26f, 0x01f1be75, 0x0380d9cb, 0x03b9ba3a, 0x00369f2f}}},
+ {X: Field{[10]uint32{0x0115c360, 0x00cd4b9d, 0x0391943c, 0x0017ba1b, 0x0005b32d, 0x031ad083, 0x02ae0611, 0x017a970e, 0x01d7c747, 0x003b8c48}}, Y: Field{[10]uint32{0x004c1686, 0x03c916ef, 0x00281b76, 0x012ae9a4, 0x01b80916, 0x02b5ec4b, 0x0047411d, 0x028eca6d, 0x023797be, 0x001c0ecb}}},
+ {X: Field{[10]uint32{0x0187a12b, 0x02005f46, 0x032b5fe9, 0x024109d5, 0x023f5c72, 0x024a984c, 0x02f1a594, 0x00453a83, 0x01bc5c2b, 0x001ed0b2}}, Y: Field{[10]uint32{0x020d27da, 0x03736549, 0x019c9dc7, 0x0378c377, 0x01dd57ed, 0x024909c9, 0x03cd92a9, 0x01cf5d5b, 0x0382e85b, 0x00173dd8}}},
+ {X: Field{[10]uint32{0x00a555cd, 0x01d248be, 0x033c3ad0, 0x02117da4, 0x007c8f9b, 0x003e4975, 0x039b6b9a, 0x014e8a4f, 0x039ab13a, 0x0026bd7f}}, Y: Field{[10]uint32{0x025d4153, 0x01bc7eaf, 0x0042ca33, 0x0065905c, 0x0113a9ec, 0x02423215, 0x02a13fa5, 0x011cd322, 0x009e8995, 0x0032a4fb}}},
+ {X: Field{[10]uint32{0x0048dacc, 0x02061dce, 0x017b659c, 0x014215af, 0x00a5b2b8, 0x01c260f7, 0x021d591f, 0x037c6c1b, 0x027401a2, 0x0017afe8}}, Y: Field{[10]uint32{0x00f7ad18, 0x01a7f1e8, 0x020fb5fb, 0x0047d1cb, 0x0046e124, 0x008a647a, 0x004c15e8, 0x00f190a4, 0x00b96ac2, 0x0002c2b7}}},
+ {X: Field{[10]uint32{0x00c81e6f, 0x00979b3f, 0x01dd3ac1, 0x0219f699, 0x000daeb4, 0x007dbafb, 0x018382bc, 0x017ab214, 0x0108465e, 0x0024ed63}}, Y: Field{[10]uint32{0x0224a4e7, 0x02cfbd46, 0x01b8cf4f, 0x03618ec7, 0x038a50b8, 0x02f2a722, 0x00646c36, 0x005e135d, 0x0118c315, 0x00152fa2}}},
+ {X: Field{[10]uint32{0x036fc858, 0x00c7c772, 0x0211132c, 0x02643b6a, 0x005bc868, 0x00ad0199, 0x00943ee3, 0x0191d3ff, 0x039b4fb4, 0x0028a295}}, Y: Field{[10]uint32{0x02f14670, 0x026c54e6, 0x0239646c, 0x0053ebbd, 0x036e059b, 0x03d942ad, 0x016605f0, 0x01592006, 0x01a3d562, 0x00103ba4}}},
+ {X: Field{[10]uint32{0x0206ac9a, 0x0397cab5, 0x01078e8d, 0x011fe432, 0x01add7cb, 0x0143482b, 0x01f60297, 0x015582dc, 0x0109781d, 0x0003a61e}}, Y: Field{[10]uint32{0x029819d2, 0x01d3c63b, 0x00907102, 0x037ab233, 0x01c55318, 0x031786a0, 0x02a346f5, 0x036b3fff, 0x02c34c80, 0x0001c486}}},
+ {X: Field{[10]uint32{0x01e1dcef, 0x02cefd18, 0x00a7d1d2, 0x02a5d7a1, 0x025c84bc, 0x00e5515b, 0x00ee62ae, 0x02035ff0, 0x011d1587, 0x000a47fc}}, Y: Field{[10]uint32{0x03ec2616, 0x000d9a94, 0x02ceec23, 0x00de4cd6, 0x0171e79e, 0x00892a51, 0x00298ce8, 0x02152d9c, 0x03e8abb6, 0x00317232}}},
+ {X: Field{[10]uint32{0x01e315b4, 0x02600fbf, 0x03d824bd, 0x005ae37f, 0x01efda7d, 0x01cea84c, 0x03d9e573, 0x02d4f90a, 0x03909e28, 0x0012b6c4}}, Y: Field{[10]uint32{0x00b1456a, 0x03b37d75, 0x023eefa2, 0x00093f79, 0x0124eb70, 0x0303266c, 0x00a796e5, 0x02b9f25c, 0x0312b827, 0x0019b5fa}}},
+ {X: Field{[10]uint32{0x027591ff, 0x029c0936, 0x033846b3, 0x0237902f, 0x0201707a, 0x00951807, 0x007e47b2, 0x003bf78f, 0x034b9524, 0x00157897}}, Y: Field{[10]uint32{0x00c830c2, 0x038ad6de, 0x022664b1, 0x038c8ba0, 0x03e4491a, 0x00b72e82, 0x03000b37, 0x0181b5d0, 0x017b7e98, 0x003a7c89}}},
+ {X: Field{[10]uint32{0x02747eca, 0x00016c7e, 0x03ad8aa3, 0x00063084, 0x01388ddd, 0x0118e0d3, 0x03a6d8d5, 0x03f0caf9, 0x0093e41d, 0x0034939d}}, Y: Field{[10]uint32{0x00c26cac, 0x02de18d2, 0x01e93fc4, 0x028260ae, 0x026d7feb, 0x0053527c, 0x01f5bee4, 0x012c597a, 0x0216a51b, 0x0039cea0}}},
+ {X: Field{[10]uint32{0x01fd8b2a, 0x03ba84d8, 0x027d9ed8, 0x01880648, 0x03caa035, 0x03b586bd, 0x03e46003, 0x0176872d, 0x02526d01, 0x0029442c}}, Y: Field{[10]uint32{0x02bea726, 0x0174bce2, 0x01adc356, 0x03ca8004, 0x01eaa2b2, 0x0031b11e, 0x02b15a28, 0x02aee98f, 0x02a09015, 0x000f6630}}},
+ {X: Field{[10]uint32{0x03b314d1, 0x030ad221, 0x01f4f6b8, 0x039bf9a0, 0x008404cd, 0x029575db, 0x03ac63cc, 0x00035456, 0x00d81275, 0x00301341}}, Y: Field{[10]uint32{0x034d9d59, 0x01019eb6, 0x02e1b98c, 0x01637dff, 0x00e3cd44, 0x006f0205, 0x00db9373, 0x003aea67, 0x01779fb8, 0x0032cff3}}},
+ {X: Field{[10]uint32{0x02bd0649, 0x01c3e43b, 0x0245a0df, 0x03fe9e24, 0x006b5dd2, 0x023fe9dc, 0x0051e691, 0x00cd5eea, 0x0061146c, 0x003b271f}}, Y: Field{[10]uint32{0x01186170, 0x03438f4f, 0x027a4daf, 0x0026c498, 0x03b36b07, 0x02458648, 0x028803ce, 0x01a48f01, 0x03fa10ca, 0x00268274}}},
+ {X: Field{[10]uint32{0x020488cc, 0x033b5602, 0x030640ba, 0x0044b294, 0x03b25985, 0x02017952, 0x037e8403, 0x013117d2, 0x013f5d50, 0x002577d7}}, Y: Field{[10]uint32{0x00e8ecc6, 0x01ab5213, 0x00c21c7a, 0x036dd0f7, 0x0235079c, 0x00facc16, 0x03d1ef32, 0x014c16c1, 0x018589b8, 0x00290f73}}},
+ {X: Field{[10]uint32{0x033a6d16, 0x00b511d8, 0x016510c7, 0x0135aec6, 0x012fc8ec, 0x0177fe52, 0x02bf50eb, 0x00314b11, 0x020c3a95, 0x002e3bb3}}, Y: Field{[10]uint32{0x01583744, 0x02c23875, 0x0384b8d0, 0x00b338fe, 0x024a4957, 0x025a68b0, 0x02c1460d, 0x02fe0ee9, 0x02a31b75, 0x001d3a50}}},
+ {X: Field{[10]uint32{0x02dd09a2, 0x002fc71c, 0x000ba052, 0x01df178b, 0x00c82b2d, 0x014487a8, 0x01eac517, 0x0270894f, 0x0216d1f6, 0x001667b3}}, Y: Field{[10]uint32{0x0111bb14, 0x00f48c6a, 0x038599f7, 0x01c99908, 0x00b2fdb6, 0x035eebd2, 0x00e2e725, 0x00f43b76, 0x00c325af, 0x00012284}}},
+ {X: Field{[10]uint32{0x0282ab32, 0x017f37c3, 0x023bc35a, 0x006eee93, 0x007fff71, 0x0186b360, 0x02fdfaa9, 0x0162a5b8, 0x02068d94, 0x002e2e96}}, Y: Field{[10]uint32{0x00f8ca4d, 0x0133b314, 0x007e32d4, 0x005db8ab, 0x03c2d824, 0x0134ca94, 0x00388454, 0x0160b824, 0x03227554, 0x00200d6a}}},
+ {X: Field{[10]uint32{0x027e65f4, 0x017b45c8, 0x00c508c3, 0x020285c4, 0x03ae8063, 0x006c7ffc, 0x02d3d7af, 0x01e19795, 0x03e1cccd, 0x002da11a}}, Y: Field{[10]uint32{0x00bc7201, 0x039bed83, 0x0224177f, 0x03527039, 0x03361ee9, 0x0208c1d8, 0x0189f526, 0x017c2b7a, 0x00253294, 0x002ef6dc}}},
+ {X: Field{[10]uint32{0x01a9d0fe, 0x0203fe03, 0x032ffc35, 0x02ce8464, 0x0120dd31, 0x0211b668, 0x0009e53f, 0x00aefbb4, 0x025e6987, 0x00287fe9}}, Y: Field{[10]uint32{0x02da215b, 0x00116c73, 0x02adadc0, 0x032c9a11, 0x0331c210, 0x022dae9b, 0x00549996, 0x00efe774, 0x0180d576, 0x002a8cb9}}},
+ {X: Field{[10]uint32{0x030d0fa2, 0x03e6885c, 0x02ebeb62, 0x035b7997, 0x022ad73c, 0x0033bc22, 0x008c7078, 0x0071f7d1, 0x036d6709, 0x0026ce05}}, Y: Field{[10]uint32{0x02609207, 0x01813b53, 0x019d26fb, 0x02206412, 0x0264a459, 0x023fd665, 0x02c86bab, 0x026dfbc7, 0x0319c0fb, 0x0008b49a}}},
+ {X: Field{[10]uint32{0x01fd0cd2, 0x014a104d, 0x008981fa, 0x0135f7ab, 0x020accfa, 0x036ad0fe, 0x0132553b, 0x03193eec, 0x009e209d, 0x002f0b33}}, Y: Field{[10]uint32{0x015ccfa6, 0x0160c169, 0x0134374d, 0x004dc624, 0x01350d1d, 0x021e47ef, 0x034931ba, 0x03e22c19, 0x02dc176f, 0x0011cd9a}}},
+ {X: Field{[10]uint32{0x00730f6a, 0x01f735c9, 0x03aa607a, 0x00d39fe4, 0x00d45187, 0x03ef4a8c, 0x0036f514, 0x00a98974, 0x00a16545, 0x00073800}}, Y: Field{[10]uint32{0x01c6811d, 0x0018abcd, 0x02c19ee3, 0x0336dac3, 0x03fa288a, 0x038f56fc, 0x0334baf3, 0x03c3b552, 0x03fb5b90, 0x00382440}}},
+ {X: Field{[10]uint32{0x01e0031f, 0x033742b7, 0x0109d63d, 0x01a13682, 0x034cc63d, 0x02718911, 0x03b26a44, 0x019303a3, 0x029a887d, 0x00211b15}}, Y: Field{[10]uint32{0x0212c07e, 0x010231be, 0x03be47df, 0x0111de61, 0x0207dcbe, 0x013fc105, 0x03acf93d, 0x027e635f, 0x0353132c, 0x0000151d}}},
+ {X: Field{[10]uint32{0x00fe59e9, 0x0207a95d, 0x00b82f5c, 0x007d5321, 0x03701f7b, 0x01a1ac62, 0x00585185, 0x01b88f27, 0x00f72865, 0x0018d96a}}, Y: Field{[10]uint32{0x0316c2eb, 0x0273e9fa, 0x0023fc8d, 0x02d5fff3, 0x01be27f2, 0x027302cf, 0x0151d46c, 0x0394f2b4, 0x01fda992, 0x00231f37}}},
+ {X: Field{[10]uint32{0x012939fc, 0x019fe01f, 0x0237fbd2, 0x03d66314, 0x0371dc5b, 0x017a3f45, 0x01726195, 0x00f6365e, 0x033c89ae, 0x003b5097}}, Y: Field{[10]uint32{0x01a3590b, 0x03f580a6, 0x01d74daf, 0x0341b8f0, 0x02010c98, 0x0273c53d, 0x03285fd1, 0x0280ef35, 0x03dc14f7, 0x001089aa}}},
+ {X: Field{[10]uint32{0x031f00c7, 0x01b728e5, 0x03d5662a, 0x01e8ba40, 0x0285a0bd, 0x02b8c42f, 0x0267f235, 0x01fafa35, 0x006c2e1b, 0x00336949}}, Y: Field{[10]uint32{0x01247f56, 0x020922ca, 0x013f6eae, 0x03cc879b, 0x0296b2c2, 0x006293fa, 0x00534ba3, 0x026cd246, 0x0296f8ea, 0x001e47bc}}},
+ {X: Field{[10]uint32{0x00eaf99e, 0x01a968fd, 0x03bc6f90, 0x0260e1be, 0x02f5017d, 0x025a8470, 0x01d3f7e5, 0x030786fb, 0x00e6ce79, 0x002d0aa1}}, Y: Field{[10]uint32{0x0007e6ac, 0x03e903b5, 0x02610823, 0x0005c2c0, 0x03cc3d06, 0x01d427f2, 0x03fad5e4, 0x00dc60db, 0x00c960bb, 0x000b9c8b}}},
+ {X: Field{[10]uint32{0x030bcf90, 0x01a807ea, 0x024c16d4, 0x0342ea14, 0x01be23ca, 0x021c021d, 0x03149df5, 0x03a6f2d0, 0x008ce1e2, 0x000d62f8}}, Y: Field{[10]uint32{0x039d1308, 0x00171107, 0x01b0034f, 0x0298d922, 0x03462318, 0x01bd4446, 0x00fe0bfb, 0x02b333d9, 0x02f070ba, 0x003cf13f}}},
+ {X: Field{[10]uint32{0x0016a789, 0x02784d58, 0x03ac985c, 0x03de6d0c, 0x01427d16, 0x0115c410, 0x0374bfe1, 0x0188c293, 0x035de5b3, 0x000fb590}}, Y: Field{[10]uint32{0x0041f26f, 0x0249d898, 0x02d9104b, 0x01b56a95, 0x03ee0dc5, 0x014b4f7f, 0x03e677e3, 0x010f4ad6, 0x005e1427, 0x00071cba}}},
+ {X: Field{[10]uint32{0x0016c910, 0x00f67989, 0x00610c25, 0x0142e494, 0x000afb7e, 0x01c85dbd, 0x000d7e26, 0x03685965, 0x022c580d, 0x000927df}}, Y: Field{[10]uint32{0x02a9f50c, 0x01c51ece, 0x02e486dc, 0x0021e7a5, 0x021630f5, 0x037378db, 0x030f8423, 0x0245ba3d, 0x031149e9, 0x001bf058}}},
+ {X: Field{[10]uint32{0x009cc85f, 0x00379bb2, 0x00d4c69f, 0x01bdbd06, 0x0114d2d7, 0x014b2fe4, 0x00f6f0b7, 0x006e8c6c, 0x0144e838, 0x0025ecec}}, Y: Field{[10]uint32{0x0188724f, 0x00111372, 0x01dc2182, 0x01827904, 0x02f72822, 0x03c77a16, 0x00492570, 0x0082d685, 0x013033b7, 0x0019f26f}}},
+ {X: Field{[10]uint32{0x03395a85, 0x03bbc697, 0x01b68cfa, 0x0038e57a, 0x0380610d, 0x00491421, 0x010fcaf4, 0x00a44947, 0x019e868b, 0x000ece11}}, Y: Field{[10]uint32{0x0225ce6f, 0x02392754, 0x023a3c3e, 0x00966c5f, 0x0391ec4c, 0x01dc917a, 0x00cc9a2b, 0x01d1531e, 0x00ddbfde, 0x002f9460}}},
+ {X: Field{[10]uint32{0x02163ebf, 0x03f88725, 0x017efc54, 0x03452680, 0x0074fb35, 0x0209c3f4, 0x00974f44, 0x03822a45, 0x03909f33, 0x00139bc5}}, Y: Field{[10]uint32{0x02b9fd15, 0x03341e39, 0x026a3e56, 0x02035dd3, 0x000dcd28, 0x02a69793, 0x02d34913, 0x01c5596d, 0x038f06f4, 0x0003ed95}}},
+ {X: Field{[10]uint32{0x015c75de, 0x02ccb68c, 0x01a9218d, 0x02ddd586, 0x0272e301, 0x00289597, 0x025a0a67, 0x024df5d0, 0x0063e408, 0x0024506b}}, Y: Field{[10]uint32{0x006d6045, 0x024713d5, 0x007a05de, 0x037ef5e1, 0x03f10b34, 0x00aa95f6, 0x0055e721, 0x030f84f3, 0x010a56be, 0x0034d78a}}},
+ {X: Field{[10]uint32{0x015ba578, 0x00b1844e, 0x01aa2e21, 0x018a23b7, 0x00337c91, 0x013f2480, 0x01c006a0, 0x009d4559, 0x03ca7205, 0x003b26dc}}, Y: Field{[10]uint32{0x00224887, 0x014043cf, 0x039051b1, 0x01d53139, 0x01ba1922, 0x031d38bc, 0x015f3ab4, 0x00b9dce3, 0x02f5c1a2, 0x000df847}}},
+ {X: Field{[10]uint32{0x021caca3, 0x016e06b3, 0x00d7ef0f, 0x0022f94c, 0x01aef502, 0x03aab1b9, 0x00430b1f, 0x024a3f38, 0x00e1bb1a, 0x0015bf05}}, Y: Field{[10]uint32{0x00209001, 0x01fcc1e4, 0x01865f6d, 0x01f30e36, 0x03b05e59, 0x0203d14a, 0x03101d7a, 0x00341e7c, 0x0084f868, 0x00139698}}},
+ {X: Field{[10]uint32{0x017df731, 0x00ea2699, 0x021e4d80, 0x030fc603, 0x00cf3997, 0x003c6c8b, 0x037c3627, 0x0353320a, 0x001b2ceb, 0x002bb35d}}, Y: Field{[10]uint32{0x010b8e21, 0x0315f9fe, 0x03d4d8cc, 0x005c2bff, 0x02256bd3, 0x037426ce, 0x036356e8, 0x03d27c64, 0x03336c0d, 0x0017c412}}},
+ {X: Field{[10]uint32{0x01836cb8, 0x03e2f505, 0x03f0d418, 0x01c8c70f, 0x039b5c10, 0x00c27a7a, 0x0222b9a4, 0x00f54892, 0x03af54f8, 0x00145899}}, Y: Field{[10]uint32{0x03efe4fc, 0x0248261e, 0x0313d865, 0x017628f6, 0x01cc37e8, 0x02dae10e, 0x02f6fd54, 0x00b05fd3, 0x009b9e06, 0x001061ce}}},
+ {X: Field{[10]uint32{0x0066fed5, 0x023d50c9, 0x007e7f25, 0x0371b84a, 0x036e7658, 0x00e0ed3f, 0x01a03687, 0x0111cfe4, 0x02bd8d3f, 0x001a2efa}}, Y: Field{[10]uint32{0x017049c4, 0x018d6b42, 0x03c27048, 0x01e9a8e0, 0x008656fc, 0x025e356c, 0x027f7ccd, 0x026d09e9, 0x000f0ac9, 0x0033d8f2}}},
+ {X: Field{[10]uint32{0x007b67be, 0x036fad6c, 0x018a2b90, 0x023e4259, 0x0049ba90, 0x02d4b079, 0x01592138, 0x01fa6d47, 0x02ab6946, 0x00083388}}, Y: Field{[10]uint32{0x0297ce2d, 0x008374b7, 0x00c3e68f, 0x03c52a77, 0x0331649f, 0x026e8b05, 0x032d17e4, 0x01cfda48, 0x007d9f41, 0x00158b68}}},
+ {X: Field{[10]uint32{0x02798f78, 0x00582b1b, 0x00b07d04, 0x0241ffe0, 0x029c86cd, 0x014855e1, 0x03c1ec6a, 0x027e48eb, 0x02d3a4a5, 0x002d6df5}}, Y: Field{[10]uint32{0x029d4de5, 0x03cf9e7f, 0x02dbcb8e, 0x02e96efd, 0x0045b5ea, 0x034565ed, 0x03c55af4, 0x0097b836, 0x02c97751, 0x0034178c}}},
+ {X: Field{[10]uint32{0x03f45df4, 0x0130c28c, 0x03d4acdc, 0x024dac1d, 0x023967e5, 0x01d7db6e, 0x023d848f, 0x0202c577, 0x00897a42, 0x002556f5}}, Y: Field{[10]uint32{0x01453a02, 0x03e5cd0f, 0x016b2749, 0x006d12c5, 0x01644826, 0x03c97700, 0x03b9fe5b, 0x026473bc, 0x03cb5d79, 0x0012efad}}},
+ {X: Field{[10]uint32{0x020a5a98, 0x0391fe19, 0x02211201, 0x0126721d, 0x0150fee8, 0x02fd4dcd, 0x0002fe18, 0x00dc3acf, 0x015198e7, 0x0027d83a}}, Y: Field{[10]uint32{0x00d613cc, 0x00b13e93, 0x00a6a3a6, 0x03a98b8a, 0x03c865a7, 0x00c87626, 0x02570f59, 0x01619a80, 0x02a933ed, 0x0018e56a}}},
+ {X: Field{[10]uint32{0x00d776ee, 0x03cb5394, 0x01468999, 0x01642895, 0x009c2b64, 0x02269c40, 0x00041c75, 0x00f436f9, 0x00b6f592, 0x001c207c}}, Y: Field{[10]uint32{0x028f9fc9, 0x02a7fdd9, 0x00758403, 0x028ca231, 0x0227f3f0, 0x02fca2d2, 0x02ec9c91, 0x00067a4e, 0x0005e067, 0x00272d80}}},
+ {X: Field{[10]uint32{0x0369561f, 0x02adcecc, 0x023fffb0, 0x00161f99, 0x02b607d6, 0x0358fbe6, 0x00e982ab, 0x0169f06c, 0x01800d8d, 0x00038a40}}, Y: Field{[10]uint32{0x00d924f7, 0x022345f5, 0x01f7861b, 0x006850a6, 0x01993f74, 0x002d5394, 0x00ccc7b8, 0x02692894, 0x02fe7728, 0x001189dd}}},
+ {X: Field{[10]uint32{0x00598bfb, 0x031590d6, 0x035212f4, 0x037f10b2, 0x00ac254c, 0x017231ad, 0x03d5939c, 0x02f57ad8, 0x0328b285, 0x0022ba9c}}, Y: Field{[10]uint32{0x01568ec2, 0x0064be02, 0x01e228e0, 0x03ba6436, 0x0213819a, 0x03281602, 0x00a559a8, 0x0157ffad, 0x027704fc, 0x002da0b6}}},
+ {X: Field{[10]uint32{0x03256e68, 0x005e418b, 0x010feb3a, 0x01e877fa, 0x0127302d, 0x01619702, 0x00fc2874, 0x012d5fa9, 0x00b254b2, 0x003a7442}}, Y: Field{[10]uint32{0x03a128d0, 0x01ee4e6a, 0x032c48f6, 0x026a9169, 0x018d0ba6, 0x02bc50d9, 0x030fc0b1, 0x0367ef9e, 0x02746d29, 0x0003ffdc}}},
+ {X: Field{[10]uint32{0x01ba0fee, 0x021ae1ab, 0x009136d8, 0x00505f4a, 0x00b81f29, 0x00a79332, 0x02d49094, 0x01f985e1, 0x013d1f31, 0x0027a87e}}, Y: Field{[10]uint32{0x0180ec0a, 0x031af91a, 0x036e45d9, 0x0002e564, 0x01975a5c, 0x03f7b845, 0x023ba6aa, 0x02cd45b9, 0x0325d3b0, 0x0008c77f}}},
+ {X: Field{[10]uint32{0x001e7a0d, 0x006da352, 0x000c5718, 0x00042166, 0x0080701d, 0x00fa354c, 0x00d687c4, 0x02efb81f, 0x0015e5fa, 0x003a2849}}, Y: Field{[10]uint32{0x022f62c6, 0x02886e64, 0x005dd5d6, 0x03c8b80e, 0x030ac53b, 0x021d15c9, 0x0062f185, 0x039d1a65, 0x039ce263, 0x00375a60}}},
+ {X: Field{[10]uint32{0x02c3def2, 0x011bfcc1, 0x02cefb44, 0x01009d8d, 0x02ed7968, 0x03db5706, 0x002e04c7, 0x01851687, 0x03baae48, 0x0038a1fc}}, Y: Field{[10]uint32{0x01968c63, 0x02e7efe7, 0x016e0be5, 0x0239f9af, 0x005bcfbe, 0x03c85560, 0x0053baef, 0x02c3a93b, 0x013d401d, 0x0024e550}}},
+ {X: Field{[10]uint32{0x02ad1194, 0x02583755, 0x03927641, 0x00c9aadd, 0x01fb23e2, 0x0053239f, 0x01756eba, 0x016ac39e, 0x039cec20, 0x0023e67d}}, Y: Field{[10]uint32{0x0019a2ea, 0x03ffe67a, 0x02de8c5d, 0x013f27c2, 0x0089cbff, 0x0226c92f, 0x021b0da3, 0x01b5b8bd, 0x03e615cc, 0x00201654}}},
+ {X: Field{[10]uint32{0x0366f586, 0x00f0d0f1, 0x03e14c6b, 0x0351ebcc, 0x013adb63, 0x01687fdb, 0x00dfb59e, 0x008eb783, 0x036a8cb7, 0x002721ea}}, Y: Field{[10]uint32{0x0165bb19, 0x031ba2aa, 0x002004ed, 0x038dd61d, 0x036a3699, 0x032073fd, 0x01012cbb, 0x035e79f5, 0x01227a3b, 0x001d1e60}}},
+ {X: Field{[10]uint32{0x019dc00a, 0x03b1d776, 0x03c3ec75, 0x0141f622, 0x006042bd, 0x02d44bfd, 0x02a10b7f, 0x0177902e, 0x02086f24, 0x00314b21}}, Y: Field{[10]uint32{0x02b3f844, 0x016b80d2, 0x01cc2ca0, 0x01b017ed, 0x0385e540, 0x01f50bf9, 0x00762d83, 0x02e2f672, 0x013abae8, 0x003a30a0}}},
+ {X: Field{[10]uint32{0x028dafb2, 0x0138582e, 0x030ded8d, 0x03f419aa, 0x000dd7c3, 0x02f58d2b, 0x039c6b6e, 0x02f89669, 0x02e194d5, 0x0002d8a1}}, Y: Field{[10]uint32{0x019b5910, 0x00e156a2, 0x034aa18b, 0x0090a80c, 0x0027eaaf, 0x01e64549, 0x03cdf7b4, 0x03c9c1dd, 0x02a8ee0b, 0x001cbb0b}}},
+ {X: Field{[10]uint32{0x03086b6d, 0x035b4d0b, 0x024ce8c5, 0x02817cee, 0x0245c648, 0x01c32a26, 0x013792e3, 0x00be2dc8, 0x02f2045f, 0x0037ded5}}, Y: Field{[10]uint32{0x0196ab4a, 0x008eb985, 0x02cb43df, 0x0335765f, 0x0139ac18, 0x000e6e5b, 0x009fc90d, 0x02f73d08, 0x01483850, 0x000e1b3b}}},
+ {X: Field{[10]uint32{0x0146a3b0, 0x03341a1b, 0x0020f48e, 0x00dd9d79, 0x01459b2b, 0x0192aad6, 0x01110eda, 0x008d5cfa, 0x009f4cd4, 0x000ab3d3}}, Y: Field{[10]uint32{0x022cc579, 0x00a15f56, 0x000cff62, 0x02be5513, 0x0258b37b, 0x009487fe, 0x01ff9bbd, 0x03a60737, 0x0029aea5, 0x0017c696}}},
+ {X: Field{[10]uint32{0x00d33f36, 0x02da1367, 0x03877586, 0x02b29082, 0x026a64f2, 0x00d48dcb, 0x010033db, 0x034de1c8, 0x01aaeb55, 0x002febe5}}, Y: Field{[10]uint32{0x00a3d8ee, 0x000f36ac, 0x03b0f608, 0x00b97c50, 0x0378c6ed, 0x02fe7b20, 0x02fce3eb, 0x039db8a8, 0x0313bb61, 0x001f48ae}}},
+ {X: Field{[10]uint32{0x00f31421, 0x035f635d, 0x01f6a6ad, 0x02a4528a, 0x01faacb6, 0x01627329, 0x0393c9ef, 0x02a24369, 0x03604eab, 0x001e3374}}, Y: Field{[10]uint32{0x0219a634, 0x028e373a, 0x00bfd327, 0x023bebfd, 0x0376430c, 0x02d788a1, 0x030d60ef, 0x0007445a, 0x001505b8, 0x003b5fa7}}},
+ {X: Field{[10]uint32{0x01213d2e, 0x010f08a3, 0x00276d98, 0x0131f2da, 0x01edb894, 0x019aa292, 0x03977135, 0x00e47f1e, 0x03a9050a, 0x003cbaf3}}, Y: Field{[10]uint32{0x00fa4eaa, 0x03d79e2c, 0x01900bb3, 0x00593cf7, 0x0309513d, 0x01a754d3, 0x03a180c5, 0x027c4f14, 0x030d956f, 0x002c71d8}}},
+ {X: Field{[10]uint32{0x02af4c2b, 0x0142e746, 0x00adfca8, 0x02aba056, 0x02857593, 0x01154bab, 0x00199433, 0x032ecc33, 0x020d83bf, 0x00010f35}}, Y: Field{[10]uint32{0x007e8f62, 0x02784418, 0x0130247e, 0x00313f33, 0x01099623, 0x00926633, 0x023d6592, 0x0079ae78, 0x02b10f72, 0x003fd92e}}},
+ {X: Field{[10]uint32{0x038ea93c, 0x0025c27c, 0x01315f92, 0x03ee97b0, 0x0302168d, 0x009fc4ed, 0x020c3a3b, 0x012775ef, 0x00e0c01a, 0x00106497}}, Y: Field{[10]uint32{0x00f77110, 0x03c362e5, 0x02c26c48, 0x01dbc512, 0x01a725a6, 0x02c0b66a, 0x02f49c19, 0x002b0068, 0x015ecb6a, 0x0014d1ae}}},
+ {X: Field{[10]uint32{0x023877e5, 0x03b396cc, 0x03eee3e6, 0x00c9f89b, 0x000fa1c2, 0x0343b836, 0x011bb478, 0x00b60aa1, 0x02106c76, 0x003f48c4}}, Y: Field{[10]uint32{0x016fa162, 0x00bead3e, 0x0266e7eb, 0x018876cf, 0x014bf334, 0x00d3bb70, 0x03748d62, 0x03b3a2eb, 0x0316f5a6, 0x000e5d8c}}},
+ {X: Field{[10]uint32{0x00556ef7, 0x01a0f63d, 0x01cb26ea, 0x012c0341, 0x03d5ad68, 0x028f4727, 0x0254a0a0, 0x02f87cda, 0x0298cb7a, 0x003f8fa2}}, Y: Field{[10]uint32{0x031223bf, 0x02503813, 0x0346c3fa, 0x01d6af81, 0x00837b44, 0x02b56992, 0x03f05f9b, 0x00198e87, 0x027734d8, 0x001f4881}}},
+ {X: Field{[10]uint32{0x035ec5dd, 0x023adcd3, 0x01ab69ba, 0x02521060, 0x0338232e, 0x01c5c5f6, 0x03f9b1d2, 0x006f7130, 0x0364ae0d, 0x003980a9}}, Y: Field{[10]uint32{0x00916fdb, 0x00f9bd33, 0x03450d51, 0x03d5ed20, 0x028bc9be, 0x02dded20, 0x001f9516, 0x022c400b, 0x00aa2626, 0x002b440e}}},
+ {X: Field{[10]uint32{0x0181e086, 0x02f1bfe3, 0x0364eeb0, 0x00b40d91, 0x03321814, 0x01774e46, 0x01cd9620, 0x01cb65c6, 0x01cfadb7, 0x0021c625}}, Y: Field{[10]uint32{0x0337722e, 0x0322658f, 0x029cb555, 0x03293989, 0x00dda2c9, 0x00e184d4, 0x011ef565, 0x01908675, 0x0064f791, 0x00126824}}},
+ {X: Field{[10]uint32{0x03a7e4b4, 0x00e83803, 0x0107f4ab, 0x013d3052, 0x028ed4ec, 0x03ef315b, 0x014ec278, 0x01601720, 0x016e7775, 0x00388a75}}, Y: Field{[10]uint32{0x00e48af2, 0x02ae4205, 0x03ce5795, 0x026ab9ba, 0x006d4265, 0x00f3abaa, 0x017a46b6, 0x020156fb, 0x02bd66d6, 0x00336c1f}}},
+ {X: Field{[10]uint32{0x00bbf8ed, 0x02a54dda, 0x01dd6ca4, 0x02be9c2b, 0x03471066, 0x034835a3, 0x00a31189, 0x0321a223, 0x03856b0c, 0x000154d7}}, Y: Field{[10]uint32{0x030ac5e8, 0x012096dd, 0x02c296ab, 0x014d3de9, 0x01f6f529, 0x030c81a8, 0x027822fa, 0x00a99e10, 0x0044245e, 0x00219572}}},
+ {X: Field{[10]uint32{0x00767ad6, 0x00d7b949, 0x0130c0dd, 0x00843edc, 0x00b8c48d, 0x00f4419b, 0x000d78e0, 0x033a6b89, 0x01054b37, 0x0004195e}}, Y: Field{[10]uint32{0x03e125f5, 0x02077520, 0x02be2e8b, 0x02bf84ce, 0x004393a5, 0x000d57dc, 0x00eb013c, 0x0186400a, 0x037a508a, 0x0014a0da}}},
+ {X: Field{[10]uint32{0x00868c1c, 0x02c3fce8, 0x00e4be6c, 0x00321d0a, 0x00e796db, 0x00d11dde, 0x029e311e, 0x03408e67, 0x02072521, 0x000cd9ac}}, Y: Field{[10]uint32{0x0311638c, 0x0168a350, 0x00ae3025, 0x0191d28d, 0x00ac908c, 0x026660e5, 0x032f15d3, 0x0374b29f, 0x02a422a8, 0x003b1808}}},
+ {X: Field{[10]uint32{0x035953ca, 0x00c0c582, 0x03332f26, 0x01919905, 0x0291bd01, 0x027f6d07, 0x0208a1f5, 0x0391b1cd, 0x0396339b, 0x00129e24}}, Y: Field{[10]uint32{0x01b4c442, 0x008fbe79, 0x021013a1, 0x011ab86e, 0x016e6e03, 0x03ae1863, 0x01c0af84, 0x02b51602, 0x017f615a, 0x003516d9}}},
+ {X: Field{[10]uint32{0x01f1302e, 0x0251f8e2, 0x030fcae9, 0x02d5eae7, 0x00d75d70, 0x037d818a, 0x00c64ad4, 0x0271ff70, 0x0084fa0a, 0x003b93c9}}, Y: Field{[10]uint32{0x01f80170, 0x03afd082, 0x003cbf81, 0x00fd1e95, 0x03409207, 0x036add28, 0x03dbd0d8, 0x037ebb7d, 0x0094d8ec, 0x0014adde}}},
+ {X: Field{[10]uint32{0x01f30a1f, 0x02567f89, 0x02c0eaf9, 0x01831421, 0x039aa9b7, 0x000d7da8, 0x037fbb83, 0x0089bde4, 0x035c163f, 0x00010256}}, Y: Field{[10]uint32{0x01dff7ab, 0x011f1601, 0x025aad55, 0x00ca4c11, 0x006a15d0, 0x030167d9, 0x03145955, 0x01353ba6, 0x00ac6555, 0x00073860}}},
+ {X: Field{[10]uint32{0x00436a24, 0x03318bec, 0x034943d6, 0x02734bd4, 0x037a36a5, 0x00062fee, 0x02ecd9fd, 0x02750904, 0x013b067d, 0x001a8897}}, Y: Field{[10]uint32{0x027c2701, 0x0213e67a, 0x008da6a3, 0x02f31cf1, 0x03cc698a, 0x00c0164b, 0x023c91ee, 0x038332a8, 0x023d9352, 0x000a6cf5}}},
+ {X: Field{[10]uint32{0x01d36e93, 0x0343235c, 0x0057cf46, 0x015253c8, 0x02172492, 0x00fd2e78, 0x0153a89e, 0x02eeff1a, 0x0241e5f9, 0x0008fbea}}, Y: Field{[10]uint32{0x00db789d, 0x023924df, 0x0386ef21, 0x02844c56, 0x0188cea3, 0x0309a486, 0x03d70755, 0x01c68816, 0x03b17f26, 0x00332269}}},
+ {X: Field{[10]uint32{0x033ae55f, 0x02b42053, 0x0066a258, 0x01afd8df, 0x02f97217, 0x028e62b8, 0x01591bd6, 0x02655d63, 0x0297f7f9, 0x0038c307}}, Y: Field{[10]uint32{0x026509e1, 0x0192c061, 0x02df311e, 0x0155a096, 0x013e8e47, 0x034a6f62, 0x01edb4d4, 0x03a497f0, 0x036c3e66, 0x00069c32}}},
+ {X: Field{[10]uint32{0x0308e278, 0x0328caf7, 0x01265b57, 0x02444f23, 0x03f05aac, 0x018061da, 0x0212f534, 0x005b54ad, 0x0382acd4, 0x002f9935}}, Y: Field{[10]uint32{0x03ad7e4a, 0x01ab3561, 0x0261f946, 0x017d6887, 0x03bff8f1, 0x00f2d413, 0x03b81c87, 0x00df24a4, 0x004a43e8, 0x001e9061}}},
+ {X: Field{[10]uint32{0x023822ac, 0x00930e3c, 0x0145076d, 0x02e35291, 0x0073ada0, 0x00bf7cbc, 0x032b4c28, 0x02987019, 0x02bee009, 0x0032ab00}}, Y: Field{[10]uint32{0x0216d06f, 0x03298be4, 0x008ea500, 0x013f1984, 0x0172a9a6, 0x01711579, 0x02cc3047, 0x03d3888e, 0x00bba040, 0x001f64f9}}},
+ {X: Field{[10]uint32{0x0284ccb3, 0x03b079c1, 0x02860fc0, 0x030e1b43, 0x03c1ef94, 0x0385c66c, 0x009321e0, 0x03aa5248, 0x01b03a9c, 0x0036894e}}, Y: Field{[10]uint32{0x023cf9f5, 0x0172fc33, 0x01f15779, 0x01bda8cf, 0x00b1b130, 0x0019fa69, 0x03f601f8, 0x033a8bd9, 0x0387bef1, 0x003a1784}}},
+ {X: Field{[10]uint32{0x019cc0ed, 0x003a4d9e, 0x00198070, 0x01eefa6d, 0x024ce4fe, 0x03673ee9, 0x03c1bd8a, 0x01492192, 0x01525c96, 0x002fcbb9}}, Y: Field{[10]uint32{0x0058f18e, 0x00c0c3d8, 0x0304f634, 0x02639d80, 0x035df423, 0x000ce408, 0x01529bc3, 0x02289284, 0x021db129, 0x0022277a}}},
+ {X: Field{[10]uint32{0x03abde36, 0x0259f051, 0x0226430b, 0x00a9c829, 0x01113060, 0x0290b18d, 0x024c9ff7, 0x00d98a7f, 0x0141cb0c, 0x002cf92c}}, Y: Field{[10]uint32{0x02865657, 0x01f22a94, 0x01f56a7d, 0x02ecb906, 0x03eff979, 0x035abffa, 0x00ff83e5, 0x020a3631, 0x0118c38a, 0x003d9bdc}}},
+ {X: Field{[10]uint32{0x009475a0, 0x01ee9622, 0x03e01496, 0x024d8f0c, 0x0124a255, 0x02888d92, 0x01818265, 0x00846844, 0x024ffad7, 0x001147ac}}, Y: Field{[10]uint32{0x00565bb6, 0x01506791, 0x001a21fe, 0x0316fec5, 0x034cb2f8, 0x0307ccf8, 0x01bd3211, 0x030ede69, 0x014049f6, 0x002227fe}}},
+ {X: Field{[10]uint32{0x00f5984c, 0x019741ce, 0x03c53b5d, 0x02fd2f03, 0x03ea4c77, 0x012e2bcc, 0x027a0b0c, 0x011de084, 0x018a6a75, 0x000a6ad9}}, Y: Field{[10]uint32{0x03f0f2c1, 0x0380688a, 0x016d215e, 0x02aae02c, 0x02947b8b, 0x01cb69af, 0x0219f9ad, 0x01b0ec29, 0x01a9c77d, 0x002aac6f}}},
+ {X: Field{[10]uint32{0x017b24db, 0x026cd04a, 0x038ac287, 0x026b1953, 0x0209d9e7, 0x0076967e, 0x03bb9c0d, 0x03089016, 0x0007d815, 0x0026d671}}, Y: Field{[10]uint32{0x0276d190, 0x006ae369, 0x0376cc76, 0x02d826c6, 0x0117bb35, 0x02eb302a, 0x0027811a, 0x0004530a, 0x018ee630, 0x00293bc1}}},
+ {X: Field{[10]uint32{0x026c9fd0, 0x01939d29, 0x0220fc05, 0x01e94ab1, 0x0378e69a, 0x01b0eb1d, 0x01b970e7, 0x02e5d62e, 0x036582ae, 0x0021f49e}}, Y: Field{[10]uint32{0x03511e03, 0x0026384d, 0x00b1acd9, 0x01724c9a, 0x0004d03d, 0x03c1fd07, 0x0083e087, 0x024cdd07, 0x03ccdec2, 0x000ffcec}}},
+ {X: Field{[10]uint32{0x009701dc, 0x02e9bda6, 0x00bf4d9b, 0x020edc36, 0x037fe7d3, 0x01af2e4e, 0x005a0ab3, 0x02058ef6, 0x004d3895, 0x003eecda}}, Y: Field{[10]uint32{0x03b94504, 0x02f89921, 0x014c0301, 0x0109a297, 0x01759e73, 0x00981b42, 0x01c2af7b, 0x02cef443, 0x01c6c9c5, 0x001ec1f3}}},
+ {X: Field{[10]uint32{0x0314a453, 0x033de7d0, 0x034eacc7, 0x0253e549, 0x01a3ef14, 0x019b9629, 0x03cc1adc, 0x00ae7488, 0x02e4ccc4, 0x0020808a}}, Y: Field{[10]uint32{0x01d2b695, 0x03439245, 0x02a3bb5c, 0x017a6a3a, 0x003a8180, 0x02d36d14, 0x030481a9, 0x00b6841b, 0x02509ddf, 0x00309090}}},
+ {X: Field{[10]uint32{0x0220f901, 0x03b2562f, 0x0001a1db, 0x01f15f42, 0x01ab4e65, 0x0247e25d, 0x02475fae, 0x032cdeef, 0x005b3b51, 0x002e9735}}, Y: Field{[10]uint32{0x0341b0a5, 0x00e807b3, 0x0016478e, 0x0062d639, 0x007f9eb7, 0x026394c9, 0x007eddd2, 0x03d638d0, 0x03c0f8b4, 0x000b8353}}},
+ {X: Field{[10]uint32{0x026703fc, 0x00197622, 0x02d277cd, 0x00eb7d6d, 0x02cfadaf, 0x00f9cb88, 0x02b44445, 0x0346f9da, 0x0041b316, 0x0004a4f2}}, Y: Field{[10]uint32{0x0133c2fa, 0x01c2ab54, 0x01749286, 0x01122012, 0x002488f1, 0x01081c27, 0x004ab523, 0x012622e1, 0x033740fb, 0x00263d63}}},
+ {X: Field{[10]uint32{0x035015c6, 0x02aa6237, 0x037c2c69, 0x03923610, 0x03987d77, 0x022b8db1, 0x03972dea, 0x006f6b6e, 0x03c854bf, 0x003b27ec}}, Y: Field{[10]uint32{0x01486d3f, 0x01047329, 0x00cb2a00, 0x0152ff3b, 0x00fe425d, 0x020c9583, 0x01d6b364, 0x03a5d258, 0x03fdea59, 0x00357cd6}}},
+ {X: Field{[10]uint32{0x0144d244, 0x01372dc9, 0x02d62769, 0x03b1ab6b, 0x029950ea, 0x039f563d, 0x03d44662, 0x016da5b2, 0x003f4cd5, 0x000bb338}}, Y: Field{[10]uint32{0x03f68879, 0x01857990, 0x0082f0f6, 0x00ff79e4, 0x00d1bc79, 0x001f3133, 0x01403cae, 0x03dd1fab, 0x00a97f1c, 0x003853cc}}},
+ {X: Field{[10]uint32{0x026fb3b2, 0x000973d5, 0x03c3d77c, 0x02beb141, 0x024c6ad5, 0x01bdbbe2, 0x025e7fa5, 0x039481e0, 0x037fa63e, 0x003b63eb}}, Y: Field{[10]uint32{0x03684a9d, 0x0011b620, 0x008f2c9b, 0x03123afe, 0x01cb0636, 0x03e8f953, 0x02f10407, 0x009cf296, 0x00b8ab21, 0x00037c48}}},
+ {X: Field{[10]uint32{0x00c32e4f, 0x01e317c5, 0x023a5bc0, 0x027cf0a3, 0x030bf3fd, 0x00c3f645, 0x02b456af, 0x036afb07, 0x037b8780, 0x0011f2e3}}, Y: Field{[10]uint32{0x00aa3203, 0x00c6f4ad, 0x029af669, 0x006625e3, 0x02c5889d, 0x0087b8b7, 0x02fc948f, 0x02a9b1a2, 0x02021f16, 0x003e181e}}},
+ {X: Field{[10]uint32{0x01762009, 0x0056890f, 0x025cacf2, 0x011c78e3, 0x02d49620, 0x02bf9c3a, 0x01a3ee38, 0x02acbcee, 0x02c1fdeb, 0x001d8d96}}, Y: Field{[10]uint32{0x0253aa28, 0x03146d53, 0x01c3211f, 0x00d03737, 0x025d7783, 0x01f517e9, 0x037d3a69, 0x02d803fc, 0x03728b4b, 0x000b2b2b}}},
+ {X: Field{[10]uint32{0x0027b424, 0x00cc27b3, 0x00ea8a23, 0x0078461a, 0x039f0931, 0x018fb720, 0x03750550, 0x03954b84, 0x01e099b8, 0x00327757}}, Y: Field{[10]uint32{0x00f8c1a5, 0x0088daee, 0x039e4b38, 0x022ec45f, 0x0338163a, 0x02bf9f4a, 0x00f134ae, 0x017adf1a, 0x02384e61, 0x0012f534}}},
+ {X: Field{[10]uint32{0x010a8961, 0x0164cb6b, 0x02a3183e, 0x02de08b8, 0x009a1e08, 0x036f2dbe, 0x01c2f96b, 0x01baf1f0, 0x03adcc40, 0x0008ada9}}, Y: Field{[10]uint32{0x020ac794, 0x007b77eb, 0x02d5e22c, 0x0389dd4d, 0x0287b553, 0x00d2bcb5, 0x02be9a95, 0x013d3f4b, 0x0095bab2, 0x0014ae18}}},
+ {X: Field{[10]uint32{0x0381a158, 0x006a6da7, 0x00d24a33, 0x0012cb79, 0x0296f06c, 0x02adfdaf, 0x03017fec, 0x01f7c30d, 0x00a749fa, 0x000fba02}}, Y: Field{[10]uint32{0x0039cb4a, 0x008f0709, 0x02d0c01e, 0x015b6107, 0x016c4b13, 0x01933ff9, 0x03dc1740, 0x027b3621, 0x00ef5f1f, 0x000fa553}}},
+ {X: Field{[10]uint32{0x00fa4803, 0x027088ae, 0x0048f3e4, 0x0009c10c, 0x00aa97d3, 0x0356d890, 0x0269ae44, 0x01225837, 0x00588a7a, 0x000a4e2f}}, Y: Field{[10]uint32{0x01ada03e, 0x0015340e, 0x0081865b, 0x0071672d, 0x029ea59a, 0x029ba80a, 0x034826cb, 0x00764379, 0x02619fad, 0x003c9aef}}},
+ {X: Field{[10]uint32{0x01a15451, 0x025df5f8, 0x030b12c3, 0x01737dca, 0x0094962e, 0x037d0c9d, 0x03ea34f5, 0x03277932, 0x00ecda97, 0x001a0956}}, Y: Field{[10]uint32{0x01fedc6c, 0x02092bee, 0x0220f112, 0x00cd6bad, 0x028b543f, 0x023b1b31, 0x0253c4cc, 0x0004fc64, 0x036522c7, 0x003130b9}}},
+ {X: Field{[10]uint32{0x02493620, 0x029a2d01, 0x03d8c08b, 0x00243dfd, 0x010cbfad, 0x007cf411, 0x036811de, 0x003695e7, 0x0068fc52, 0x001c8363}}, Y: Field{[10]uint32{0x004c9cb5, 0x01517899, 0x03a2950d, 0x030ed217, 0x0107ac26, 0x02eecc6a, 0x016fd4b8, 0x01b41813, 0x00a84f7a, 0x002e19fa}}},
+ {X: Field{[10]uint32{0x00b84831, 0x01fd7afd, 0x029e02a1, 0x00beceb2, 0x01994d5d, 0x030118ea, 0x02153ec6, 0x019634d5, 0x03e71bdf, 0x00259fec}}, Y: Field{[10]uint32{0x007cc83f, 0x0180bad5, 0x03a094cf, 0x03271e21, 0x03e3cddf, 0x0326a135, 0x01d0926e, 0x0092ccbd, 0x01f88617, 0x002e1299}}},
+ {X: Field{[10]uint32{0x03cedc85, 0x029063a2, 0x03d88db2, 0x0353e19c, 0x0273f6eb, 0x03bc4ee6, 0x01fc1131, 0x030f7a39, 0x025c77ec, 0x000767f4}}, Y: Field{[10]uint32{0x028035d7, 0x02b713ab, 0x030e4aa6, 0x032758af, 0x03033012, 0x00fe908c, 0x03ff58e2, 0x003ed2fe, 0x0301d972, 0x00152818}}},
+ {X: Field{[10]uint32{0x01311c0a, 0x033aa27c, 0x0144a0b4, 0x027e4143, 0x017d0402, 0x00d1b8ce, 0x00dff5ff, 0x01ebcc45, 0x0158a113, 0x002004e0}}, Y: Field{[10]uint32{0x025a6b31, 0x008d2a9a, 0x01c36bdd, 0x0225f157, 0x00bc5e94, 0x028ebf9c, 0x01cc712d, 0x02b06309, 0x0076e6d6, 0x0005bd26}}},
+ {X: Field{[10]uint32{0x03ef632f, 0x00de4cf0, 0x00c55c6c, 0x006088aa, 0x0233aa34, 0x0041f7c8, 0x020906b3, 0x0161138e, 0x002177fa, 0x0002aad0}}, Y: Field{[10]uint32{0x0201b092, 0x0139780c, 0x03d2f703, 0x00e669fe, 0x019a0620, 0x028225c4, 0x02d58767, 0x0373b4e0, 0x008f3ad0, 0x0026e0c8}}},
+ {X: Field{[10]uint32{0x03a72f10, 0x004bc4c3, 0x00fe1d36, 0x00dc52ef, 0x003c5232, 0x00052f98, 0x02f1e3b3, 0x03d19367, 0x014c7670, 0x0023cff4}}, Y: Field{[10]uint32{0x0205c68e, 0x01b022d0, 0x030a4b54, 0x03d75c70, 0x02862ef6, 0x032181b9, 0x03a593a5, 0x02e07eef, 0x00947901, 0x002132dc}}},
+ {X: Field{[10]uint32{0x021f4933, 0x0254fb52, 0x00d88e49, 0x000cc32e, 0x00df69a9, 0x00e5e7b2, 0x034578a3, 0x0301bfab, 0x011caba3, 0x000eea72}}, Y: Field{[10]uint32{0x026f99cc, 0x03b91ede, 0x0072f582, 0x016ed248, 0x03fdcff6, 0x01646efb, 0x00107990, 0x0188c7a1, 0x034c3eb6, 0x001c1229}}},
+ {X: Field{[10]uint32{0x00f36a7c, 0x026a72b7, 0x006455f2, 0x0070a618, 0x017344c2, 0x027db2d8, 0x01524682, 0x02c38354, 0x03d289da, 0x000be30d}}, Y: Field{[10]uint32{0x03508396, 0x01d3503a, 0x00201d2f, 0x024dea0d, 0x014223d0, 0x0271e659, 0x02f145e6, 0x01c43afe, 0x024e9d02, 0x000dfc2d}}},
+ {X: Field{[10]uint32{0x02dce846, 0x0310329d, 0x012d300e, 0x00a33b6f, 0x0273fc61, 0x02995bf2, 0x03f60500, 0x02749ee1, 0x03a2c920, 0x001179ba}}, Y: Field{[10]uint32{0x035f16ec, 0x018b24ef, 0x02d908a0, 0x015d399a, 0x02813867, 0x03b88960, 0x0091a635, 0x020aef47, 0x0144ba18, 0x0028f8a3}}},
+ {X: Field{[10]uint32{0x01767ee9, 0x03ee2c7f, 0x023cc605, 0x026e62b4, 0x0182ea7d, 0x03a10b67, 0x027143ff, 0x03348d11, 0x03d380a0, 0x00297b34}}, Y: Field{[10]uint32{0x0311353f, 0x029b8a53, 0x03b959be, 0x00cc3459, 0x02c9ab6c, 0x0140573c, 0x0331fe5b, 0x0109a4fe, 0x00238ea8, 0x0008bc4a}}},
+ {X: Field{[10]uint32{0x0174be83, 0x00ffe400, 0x034a2c94, 0x02a7fd80, 0x0051eb66, 0x0060dd3a, 0x03698213, 0x00ec3510, 0x0271c466, 0x003dfd16}}, Y: Field{[10]uint32{0x0346fce5, 0x030290d6, 0x021498ac, 0x01b3d4be, 0x017fbdf4, 0x01a8ca07, 0x013d6e3e, 0x025fd503, 0x03cd4ec1, 0x000e858c}}},
+ {X: Field{[10]uint32{0x007cb59c, 0x02c9d2d2, 0x00832a94, 0x020a957b, 0x0252bf6c, 0x015c5f50, 0x0303b7de, 0x01385d6b, 0x02866b31, 0x00249608}}, Y: Field{[10]uint32{0x02811f68, 0x03c149d2, 0x004a0369, 0x00b377eb, 0x03d6c2f5, 0x01256ef1, 0x02346700, 0x00277194, 0x01847368, 0x003f23a5}}},
+ {X: Field{[10]uint32{0x02556da4, 0x01db3043, 0x027b5a7f, 0x03c53754, 0x011d7849, 0x02b9be9d, 0x017fa966, 0x034028bd, 0x00d32303, 0x003057fa}}, Y: Field{[10]uint32{0x01c10951, 0x03ec4260, 0x00d067b5, 0x01ab8ba7, 0x03e017c0, 0x00334d22, 0x03c445c5, 0x037fc699, 0x03d04685, 0x000d890a}}},
+ {X: Field{[10]uint32{0x022b5355, 0x013d8331, 0x03e5ca46, 0x00d9f5ca, 0x0004dd71, 0x01c2fc35, 0x00372df2, 0x029838c4, 0x0026152a, 0x000127be}}, Y: Field{[10]uint32{0x00c4c645, 0x01f4b2c8, 0x02165d9c, 0x00bad597, 0x024e369d, 0x01ea4f85, 0x01c572c7, 0x01202e68, 0x03a20dc4, 0x001f2b52}}},
+ {X: Field{[10]uint32{0x0091a18f, 0x02b848a7, 0x006a3be4, 0x0077b59a, 0x03629b2f, 0x018c4cf8, 0x02c876e1, 0x03e53f84, 0x01e7538f, 0x00323782}}, Y: Field{[10]uint32{0x017c2635, 0x02d891da, 0x03e885ea, 0x003c69db, 0x029cecb1, 0x01825958, 0x031e872d, 0x02228417, 0x031fe580, 0x002d69fc}}},
+ {X: Field{[10]uint32{0x02abb344, 0x007ffae5, 0x00576946, 0x0067bdd9, 0x016b3d51, 0x026bc92a, 0x03a6cd3d, 0x010ebc75, 0x03a4616f, 0x00361ae7}}, Y: Field{[10]uint32{0x0003bcab, 0x01c3867c, 0x02539fb5, 0x01cb8e4b, 0x0056df6f, 0x01a72e3a, 0x001b6606, 0x006d2652, 0x028e8f93, 0x0008e233}}},
+ {X: Field{[10]uint32{0x00cbbf88, 0x00eb9bc0, 0x0055a743, 0x02793cfb, 0x0187c496, 0x003f8c10, 0x027b7193, 0x038ac4fe, 0x0218f351, 0x0028b35d}}, Y: Field{[10]uint32{0x0119d685, 0x034dae17, 0x0324aa8d, 0x034e8258, 0x0229870c, 0x00c430d8, 0x015711ab, 0x00d8ec51, 0x0062436a, 0x000f82d7}}},
+ {X: Field{[10]uint32{0x0100b2ca, 0x010b33c8, 0x02b87ab4, 0x00efb4be, 0x02ad6c21, 0x00e6d55d, 0x036e4f6b, 0x0128f5e0, 0x00d4e33e, 0x002dca0f}}, Y: Field{[10]uint32{0x02abc9ea, 0x00c5cfa3, 0x008fc273, 0x019c0109, 0x03090833, 0x0097aacf, 0x021e7e30, 0x008c1c60, 0x02fb111c, 0x00246001}}},
+ {X: Field{[10]uint32{0x00b9a769, 0x02903d92, 0x00d9a0cd, 0x0151bbf3, 0x01d12e18, 0x0328c4d9, 0x01b123b9, 0x02ea34d5, 0x012e9707, 0x002c7f4b}}, Y: Field{[10]uint32{0x035e674e, 0x027bd2d1, 0x0294b58c, 0x00f58b6b, 0x021a40cf, 0x00a062ff, 0x004d2226, 0x01577bd8, 0x00168e8f, 0x00230df3}}},
+ {X: Field{[10]uint32{0x0339f90f, 0x034ae0b2, 0x0262e7c0, 0x031ce574, 0x02cf6077, 0x0216d69b, 0x034be328, 0x03a17832, 0x03e74242, 0x0006c265}}, Y: Field{[10]uint32{0x037760b3, 0x01a48eda, 0x03183fa3, 0x00493052, 0x02f30fae, 0x00ef3e33, 0x00c2d2ef, 0x00762bb6, 0x00d427cd, 0x00156d36}}},
+ {X: Field{[10]uint32{0x018d78d6, 0x01541976, 0x03e698e0, 0x02e06ff5, 0x034f1dc9, 0x03b86eec, 0x02362588, 0x0324977a, 0x03bc094a, 0x0015bfee}}, Y: Field{[10]uint32{0x00edc65f, 0x029c6636, 0x022089f8, 0x02dee00d, 0x02a517fc, 0x02fc716e, 0x02f3d235, 0x00af6c82, 0x008f46d7, 0x002a9cc8}}},
+ {X: Field{[10]uint32{0x02d7045e, 0x00f8364e, 0x00685353, 0x02459c8a, 0x00e39081, 0x0049847a, 0x026cd368, 0x01fe70d0, 0x02b07ddb, 0x0030497e}}, Y: Field{[10]uint32{0x0377e5ae, 0x034c3c66, 0x024b68cc, 0x03d137d1, 0x031f235e, 0x00b07763, 0x003f1189, 0x01952bdb, 0x003f622f, 0x000a019c}}},
+ {X: Field{[10]uint32{0x027f4a17, 0x014508ff, 0x0130148a, 0x03efc967, 0x02dbab85, 0x0207a02b, 0x01fa6fee, 0x031d0a2c, 0x01dbe4e0, 0x0039fb7a}}, Y: Field{[10]uint32{0x033fc066, 0x01695b34, 0x021d9e63, 0x016f0b6e, 0x02e23692, 0x039fd434, 0x00d32e65, 0x0173eb20, 0x037a9fbc, 0x0024eac9}}},
+ {X: Field{[10]uint32{0x03df93f3, 0x02545668, 0x01cc8aa3, 0x00a3122c, 0x03a47c16, 0x0214fe59, 0x00c3da9d, 0x01af311c, 0x0363f1bd, 0x001d1c05}}, Y: Field{[10]uint32{0x018ac8ee, 0x01bb5557, 0x029d8a4b, 0x01eca3b5, 0x02bd2223, 0x001551ee, 0x0393dd5f, 0x0043ccdc, 0x011c7c55, 0x002acb00}}},
+ {X: Field{[10]uint32{0x039081b8, 0x02403579, 0x0257689c, 0x00717195, 0x020a6554, 0x00de138c, 0x01ffb8d8, 0x03dc7f9b, 0x039755ba, 0x0002349f}}, Y: Field{[10]uint32{0x02c250ad, 0x02184946, 0x01386e55, 0x0032dfcc, 0x03f308f9, 0x0354889f, 0x021f837b, 0x0258052b, 0x0268f3c8, 0x0029c5db}}},
+ {X: Field{[10]uint32{0x00cc7ea9, 0x01e633ab, 0x028c10f5, 0x00063a60, 0x0071b0db, 0x02b0976e, 0x000a0ff1, 0x02d4c7ab, 0x02fe9040, 0x0018f81a}}, Y: Field{[10]uint32{0x00910aa5, 0x003001fd, 0x0213e930, 0x0112ca9a, 0x010c9112, 0x00126bb5, 0x028fcf99, 0x03822dac, 0x0084a9db, 0x002aa846}}},
+ {X: Field{[10]uint32{0x004ed50f, 0x0256251d, 0x004b5dde, 0x030a2082, 0x036bf8ba, 0x00f92c6a, 0x01617d02, 0x002acd0b, 0x01ae27d6, 0x00371fa8}}, Y: Field{[10]uint32{0x002f3dfa, 0x000a4705, 0x0140e48a, 0x029b8445, 0x03b63efb, 0x01d52968, 0x03e97fc0, 0x0317feef, 0x036e2b95, 0x0024f1f5}}},
+ {X: Field{[10]uint32{0x02e842d7, 0x00ef46fd, 0x02253221, 0x00e6ee5d, 0x0136e402, 0x02d6baa6, 0x03dfb691, 0x03bd28f5, 0x036df69c, 0x003cebbb}}, Y: Field{[10]uint32{0x0208de5d, 0x0343d188, 0x001151fb, 0x023bd24f, 0x0272e562, 0x032c7a2b, 0x03bde031, 0x01c00be1, 0x01da339c, 0x0015f4df}}},
+ {X: Field{[10]uint32{0x02bec3ce, 0x0286b29d, 0x01b67816, 0x03eca3da, 0x02ae87da, 0x00f5c9cb, 0x005d0812, 0x0193a837, 0x004c316e, 0x002096f6}}, Y: Field{[10]uint32{0x00a52251, 0x032846d0, 0x00f1dc28, 0x01925d96, 0x00849a25, 0x018be1fc, 0x03e3f69d, 0x01c2a1a8, 0x03fdba83, 0x001878e9}}},
+ {X: Field{[10]uint32{0x0056a75d, 0x03bae4ce, 0x03ba7f5a, 0x02e543b0, 0x010edb63, 0x03a509a8, 0x02988cd8, 0x014dc274, 0x00d74dec, 0x000c428b}}, Y: Field{[10]uint32{0x03122c97, 0x00ee07c5, 0x00228ffa, 0x03b8f863, 0x03e3ff1e, 0x02bb0943, 0x02b4ab3a, 0x0395fdfc, 0x02aedfa5, 0x00175b61}}},
+ {X: Field{[10]uint32{0x03425217, 0x0160b006, 0x024d85af, 0x02e25dfb, 0x0369f04d, 0x026edb0f, 0x02355aef, 0x004b43e0, 0x007562a5, 0x000d1c75}}, Y: Field{[10]uint32{0x039cba31, 0x00e67af6, 0x00358aed, 0x02a51410, 0x01ccd444, 0x000ded09, 0x006d68c5, 0x02da7afe, 0x02702fe0, 0x0009cb77}}},
+ {X: Field{[10]uint32{0x00257a2f, 0x01a01f93, 0x0138d808, 0x03ac3a8d, 0x00aaeee4, 0x020a6bb2, 0x022b3df6, 0x02bc9082, 0x0163bfaf, 0x002fdb49}}, Y: Field{[10]uint32{0x000b496d, 0x003b8ac1, 0x03ff1a92, 0x03113079, 0x003a2738, 0x0155d1ae, 0x03847ef7, 0x0125ad93, 0x02007e7b, 0x003a01de}}},
+ {X: Field{[10]uint32{0x039cddc4, 0x03b5094a, 0x023fbbdb, 0x0194c9c8, 0x02d6f4d4, 0x03361db9, 0x03ce42a3, 0x03dc614b, 0x03c4a883, 0x003accf3}}, Y: Field{[10]uint32{0x02e5453f, 0x02b69287, 0x028d2a7d, 0x00df8977, 0x03eaab91, 0x01f7a1be, 0x00f03ad2, 0x022f6641, 0x00f2ef60, 0x0026f500}}},
+ {X: Field{[10]uint32{0x00c2279f, 0x002475bb, 0x0108f082, 0x00f68363, 0x016b123d, 0x037a5591, 0x0383edf7, 0x03cc67ec, 0x00d03e5d, 0x0004c5f8}}, Y: Field{[10]uint32{0x03675afd, 0x0348a48c, 0x03b252a9, 0x025fab2e, 0x01dcae42, 0x001a951c, 0x0122b607, 0x02755ac3, 0x024d5c6f, 0x000efd90}}},
+ {X: Field{[10]uint32{0x009aeb56, 0x02f38d0c, 0x03456c99, 0x039099ee, 0x007e00f8, 0x01501bcc, 0x022cf5dc, 0x010fafac, 0x032e99dc, 0x00206c27}}, Y: Field{[10]uint32{0x03361932, 0x02006028, 0x03d7c495, 0x01bfafc5, 0x011dbc5f, 0x00b8cc72, 0x035b1df9, 0x03bab10b, 0x02a4b300, 0x00275215}}},
+ {X: Field{[10]uint32{0x015a62f2, 0x02199121, 0x01f7e98b, 0x00c8348f, 0x03ed436d, 0x03d3a8cd, 0x02626bae, 0x03fc65c8, 0x01670a32, 0x00037ba9}}, Y: Field{[10]uint32{0x01032414, 0x019b50e7, 0x005a6dfe, 0x03bda79e, 0x014a8310, 0x00305e4b, 0x0157ab34, 0x005ff821, 0x0297c61a, 0x00172449}}},
+ {X: Field{[10]uint32{0x003444e5, 0x03713a39, 0x02755ef3, 0x02c73ba1, 0x0296ae44, 0x01ea46e7, 0x00e02ffa, 0x0345cf9a, 0x00835746, 0x003392b4}}, Y: Field{[10]uint32{0x0303aa7d, 0x001bd89f, 0x02a20d34, 0x006bfc70, 0x00df7cc8, 0x01517fa1, 0x013e2891, 0x023532d5, 0x03890523, 0x002fa1b2}}},
+ {X: Field{[10]uint32{0x030b077e, 0x0339ffd4, 0x004f6fbb, 0x0131f606, 0x032e3638, 0x02281c57, 0x0119a324, 0x006bdb93, 0x023d407f, 0x0026a64f}}, Y: Field{[10]uint32{0x001a7a7e, 0x03baf04c, 0x034e2481, 0x0077150f, 0x023f8700, 0x01b65bfe, 0x027bd6fe, 0x019fba66, 0x012d80a2, 0x00392869}}},
+ {X: Field{[10]uint32{0x039bd0d8, 0x00d844be, 0x03ccc06b, 0x03bd16ab, 0x039247c7, 0x0099ea98, 0x017ae6a1, 0x0017205c, 0x032d7c7f, 0x0007c437}}, Y: Field{[10]uint32{0x00760410, 0x01e0ec16, 0x029affdc, 0x010c9f30, 0x03e45ad6, 0x0259fa6b, 0x0283b0ec, 0x036de4c9, 0x025b71e2, 0x0019c2c9}}},
+ {X: Field{[10]uint32{0x02621b53, 0x0355c461, 0x00a5a0ba, 0x03fe7645, 0x02d57d1d, 0x0329dd77, 0x0317633d, 0x008239f6, 0x025729c9, 0x001c33ac}}, Y: Field{[10]uint32{0x01df0c62, 0x0307b0d2, 0x0164ace7, 0x00941fa7, 0x0200ee98, 0x01b475d6, 0x0211c0ec, 0x01157f37, 0x0291b3f3, 0x001b805b}}},
+ {X: Field{[10]uint32{0x00694e3e, 0x024fdf9d, 0x032fd466, 0x0312b3a7, 0x00043fb6, 0x02841818, 0x03b79210, 0x020bec37, 0x01e64dc8, 0x002e91b9}}, Y: Field{[10]uint32{0x01789acc, 0x010b221f, 0x009cb0f3, 0x02cf7a81, 0x025868d0, 0x0276310d, 0x0208e060, 0x0207fe28, 0x02b90793, 0x003abad3}}},
+ {X: Field{[10]uint32{0x03c30d81, 0x0034e200, 0x037a9e32, 0x01538123, 0x02a631d1, 0x00f5d5e7, 0x0179beaf, 0x02b48390, 0x02dfd233, 0x002ee8ee}}, Y: Field{[10]uint32{0x021b961d, 0x03e400d7, 0x011e8ed3, 0x039a3229, 0x0202bdfc, 0x01d95a4f, 0x03a0af4e, 0x01131cc5, 0x030d69dd, 0x003ca9f1}}},
+ {X: Field{[10]uint32{0x02d3f8a5, 0x01d4298d, 0x01283d93, 0x007ce396, 0x02057d49, 0x010782bc, 0x0258f1bf, 0x02e9a05f, 0x0369d300, 0x001b7da9}}, Y: Field{[10]uint32{0x033a4a6f, 0x0268db69, 0x02819dad, 0x024a67c4, 0x01ebf0f4, 0x0337ed36, 0x02d1f31c, 0x031dcbb3, 0x03b3aa51, 0x0018e820}}},
+ {X: Field{[10]uint32{0x03174f2c, 0x02970529, 0x022361ad, 0x014c74bf, 0x034fab19, 0x024e945c, 0x00c7ea87, 0x026a60a5, 0x031a4b8c, 0x002bff44}}, Y: Field{[10]uint32{0x0011be6d, 0x00a59c4d, 0x01708734, 0x0072cc81, 0x03342689, 0x022a5e23, 0x02ed3225, 0x00da60ff, 0x00d9ec4a, 0x00130f79}}},
+ {X: Field{[10]uint32{0x030abc7e, 0x028914ce, 0x016ee2f0, 0x031af086, 0x01d42cca, 0x031f1c23, 0x01ba5464, 0x02c62867, 0x00499e54, 0x000b68c4}}, Y: Field{[10]uint32{0x032db974, 0x001527c8, 0x03e7c0bb, 0x028fded1, 0x02426981, 0x00713414, 0x0109d445, 0x027e2d5b, 0x009120ad, 0x003cd52b}}},
+ {X: Field{[10]uint32{0x02e57b61, 0x01f433e4, 0x03f2b2dc, 0x0007bb24, 0x0323cdd2, 0x036d30c7, 0x01381ace, 0x03e0aba3, 0x0053cbe3, 0x000e20bb}}, Y: Field{[10]uint32{0x037e6e3a, 0x020328bb, 0x03c786cd, 0x014cbec2, 0x0271a43d, 0x009d0191, 0x02b0046b, 0x02ff3124, 0x015de5a7, 0x00074d0c}}},
+ {X: Field{[10]uint32{0x0387f9f1, 0x026ed21c, 0x00b28d55, 0x01d4a997, 0x03468259, 0x03a7ad78, 0x03c8e4e8, 0x02ac98e6, 0x02356a08, 0x003f2ae1}}, Y: Field{[10]uint32{0x00fceb94, 0x02c81532, 0x03f540d7, 0x023413bd, 0x02bef2b3, 0x034d5c2b, 0x0166753a, 0x001f395d, 0x00c0d08f, 0x002bd020}}},
+ {X: Field{[10]uint32{0x0136bb58, 0x02275d67, 0x00ebe5dd, 0x00468552, 0x02847bf0, 0x01d5032a, 0x01dcd5a5, 0x01f84a8a, 0x00bb8a89, 0x003f4d2e}}, Y: Field{[10]uint32{0x0110b2f3, 0x00d465de, 0x0255b762, 0x00ef4356, 0x00d19b60, 0x008c41b9, 0x0127eaa7, 0x03e5cd5e, 0x02ac6a56, 0x0014699a}}},
+ {X: Field{[10]uint32{0x03d4b469, 0x03663961, 0x002fa808, 0x01826776, 0x031d3b46, 0x01f1f605, 0x007a1678, 0x016fc1db, 0x0120c0d8, 0x0007a26f}}, Y: Field{[10]uint32{0x00fe882a, 0x03218a4f, 0x01353eaf, 0x0243ef13, 0x03dcf115, 0x01d3cc48, 0x02dae475, 0x021d80f7, 0x01d0e576, 0x0013d4ea}}},
+ {X: Field{[10]uint32{0x03aa05ed, 0x00ea55de, 0x0048f5fb, 0x02795231, 0x01ddca45, 0x03beeaea, 0x017d93ea, 0x026b3b23, 0x03ba6690, 0x002287a9}}, Y: Field{[10]uint32{0x037be091, 0x030133e2, 0x00f99e09, 0x033e2ba5, 0x01ea1f1f, 0x0140600c, 0x037655b2, 0x00de90e7, 0x01e9064f, 0x00356016}}},
+ {X: Field{[10]uint32{0x011331a1, 0x03ddb587, 0x032cbd7f, 0x00302d55, 0x00e4451f, 0x03ca586c, 0x0086549a, 0x02649a5a, 0x000d80d5, 0x003830de}}, Y: Field{[10]uint32{0x0145491d, 0x013da392, 0x02551114, 0x02baefb6, 0x03d827dd, 0x008c39ec, 0x03e6f1e5, 0x00ec7f0b, 0x02e6a13c, 0x00267674}}},
+ {X: Field{[10]uint32{0x03996035, 0x032303a0, 0x0260ef7c, 0x0373fc83, 0x008e7e1b, 0x036ab786, 0x03ed36c5, 0x02b0485b, 0x00e6ed23, 0x002590d5}}, Y: Field{[10]uint32{0x0028998a, 0x02f4c98d, 0x03529aa8, 0x0234f18c, 0x027e6a40, 0x039bc188, 0x02531984, 0x031ba1c8, 0x009a8563, 0x003dd228}}},
+ {X: Field{[10]uint32{0x02fe3f9b, 0x036f0f06, 0x014a1ab1, 0x00556150, 0x038bd094, 0x01a61871, 0x02eab869, 0x03218bf1, 0x03295125, 0x00260279}}, Y: Field{[10]uint32{0x007b9fd7, 0x01afd8e6, 0x0005efd4, 0x02250cbf, 0x00ab0fc0, 0x03f21296, 0x03909f86, 0x0155a20c, 0x0228bbf5, 0x003614d8}}},
+ {X: Field{[10]uint32{0x0301ed17, 0x03b31303, 0x03b34abb, 0x01cf6852, 0x011d8d71, 0x00097f1f, 0x0183bf94, 0x013108a3, 0x0102305e, 0x000657d3}}, Y: Field{[10]uint32{0x009d637f, 0x02e1d99f, 0x0221a726, 0x0174ea23, 0x03ce1384, 0x00f2d119, 0x00152e02, 0x02e7341a, 0x00b497ae, 0x00255f6e}}},
+ {X: Field{[10]uint32{0x014e0b37, 0x011286a1, 0x036c0f2c, 0x039a06e0, 0x02b0203f, 0x0009243a, 0x023f726d, 0x01f8d3be, 0x02ba3eb1, 0x00158baa}}, Y: Field{[10]uint32{0x0152b1e8, 0x015a9be1, 0x02da59db, 0x02935ecc, 0x0397093b, 0x003bd094, 0x03a35a77, 0x012010b4, 0x00ed9e66, 0x002d3996}}},
+ {X: Field{[10]uint32{0x01ec8282, 0x027ca383, 0x01a288d7, 0x00b0292c, 0x03de3a60, 0x00c0bcd3, 0x00579693, 0x02405203, 0x01eb1efa, 0x002128b1}}, Y: Field{[10]uint32{0x02207cf1, 0x018acd91, 0x02023bdf, 0x00fd7c36, 0x00c70331, 0x0372b110, 0x03261dba, 0x03bb6161, 0x01c788cf, 0x001c0354}}},
+ {X: Field{[10]uint32{0x0272f913, 0x00025ccd, 0x007fb8ba, 0x02b5df53, 0x00b93e2b, 0x031b52e1, 0x00e73406, 0x0245a2c5, 0x03cf0dbd, 0x0020f44b}}, Y: Field{[10]uint32{0x03279a7b, 0x02d44c79, 0x018ee523, 0x03f61848, 0x013c0dd6, 0x020b3a73, 0x03c78b36, 0x00cb3eeb, 0x0226bf25, 0x0039215b}}},
+ {X: Field{[10]uint32{0x015451cf, 0x0001a3b7, 0x03701dfb, 0x008a7b52, 0x00ce64d5, 0x03d190fe, 0x03e73bf9, 0x00c8383e, 0x02f2bbd9, 0x00266229}}, Y: Field{[10]uint32{0x02882d5b, 0x02877462, 0x01910ed5, 0x0070aafa, 0x000d2f43, 0x024be269, 0x0244e4d8, 0x00994342, 0x02fcbd3b, 0x002eecd4}}},
+ {X: Field{[10]uint32{0x03ff0724, 0x0202842b, 0x00b5160f, 0x0130aa9c, 0x0183017d, 0x028845ac, 0x0321d1e2, 0x00571ccd, 0x003dcfa6, 0x000fa486}}, Y: Field{[10]uint32{0x002dc945, 0x0202ce45, 0x03d7f226, 0x0029d395, 0x0276a2f3, 0x029cfcf4, 0x01fe5453, 0x02f98bc3, 0x0251f4bc, 0x0031e220}}},
+ {X: Field{[10]uint32{0x0239492f, 0x018f5b20, 0x0044de77, 0x02617a96, 0x01e5f85b, 0x02cd89d7, 0x03130faf, 0x03f8e932, 0x0300fa1e, 0x003645d4}}, Y: Field{[10]uint32{0x03678b4b, 0x0199c0a6, 0x03521c55, 0x036217ba, 0x00fbad38, 0x00596aff, 0x0236220d, 0x00a83366, 0x0065e959, 0x001644e3}}},
+ {X: Field{[10]uint32{0x02d933dc, 0x01044a4d, 0x01068b47, 0x02e1ea57, 0x03ed74c5, 0x01d9b99d, 0x017f7b47, 0x02fb9974, 0x025f7c12, 0x001bfd60}}, Y: Field{[10]uint32{0x038c0edf, 0x0200920d, 0x0038131f, 0x02a10334, 0x002ea9ac, 0x034ae360, 0x004be0a4, 0x025d2c8c, 0x01de0cb7, 0x001986ba}}},
+ {X: Field{[10]uint32{0x00b1c31d, 0x03ac4594, 0x035ab15c, 0x01aeeba1, 0x03956036, 0x030093de, 0x027d580a, 0x004190c1, 0x02b1a876, 0x003b5b2f}}, Y: Field{[10]uint32{0x0217dede, 0x01f59aa1, 0x03f4519a, 0x01dbc675, 0x011269c4, 0x000ba040, 0x024d60f7, 0x02270595, 0x007ed1e8, 0x0024501a}}},
+ {X: Field{[10]uint32{0x03d69164, 0x02f812a2, 0x03ca443a, 0x01b8e190, 0x000853bf, 0x02c4c88c, 0x016b56ee, 0x016a8c42, 0x00eb32d7, 0x0017e333}}, Y: Field{[10]uint32{0x0195da3a, 0x0396df9e, 0x02d456bd, 0x03c08734, 0x024f6576, 0x013d60d2, 0x02ac0fac, 0x0077352d, 0x023dd0c8, 0x000d7dca}}},
+ {X: Field{[10]uint32{0x002d0b7b, 0x029b88e6, 0x02f7c479, 0x018bc056, 0x0186580d, 0x03b599d4, 0x02896c67, 0x00e5dd48, 0x00859bb2, 0x00207808}}, Y: Field{[10]uint32{0x03fbb669, 0x036f1933, 0x019601eb, 0x00e38abe, 0x02fce84a, 0x017558ac, 0x02ddc088, 0x03c9bed0, 0x029e4159, 0x0021e47e}}},
+ {X: Field{[10]uint32{0x01d8f721, 0x0109c4a5, 0x005f141d, 0x03a1eb2a, 0x003eb435, 0x018eeb72, 0x03aba7ad, 0x01709a6d, 0x0316dd1e, 0x0037889a}}, Y: Field{[10]uint32{0x02c8423a, 0x01591c06, 0x0120d841, 0x01a90d37, 0x03342841, 0x038cf644, 0x007dc03d, 0x039cb0fe, 0x0399fa2c, 0x0018b878}}},
+ {X: Field{[10]uint32{0x03d140f3, 0x0282f765, 0x012b1d13, 0x02549f2f, 0x00fa7629, 0x03dffc59, 0x0058be59, 0x00ca57f4, 0x03423fcd, 0x0018291b}}, Y: Field{[10]uint32{0x037f1219, 0x034dc3b7, 0x02c8e0f4, 0x015332ff, 0x01912cb8, 0x0280f2ad, 0x02bc31e1, 0x02785f91, 0x02de7b78, 0x00255c74}}},
+ {X: Field{[10]uint32{0x032249c0, 0x0227f2f0, 0x027f5ce0, 0x0164fd0a, 0x0080d7e7, 0x028318d9, 0x013a77ab, 0x02f647ef, 0x005ce1b4, 0x001bfbd1}}, Y: Field{[10]uint32{0x00fa347d, 0x00b17a7d, 0x01a919a9, 0x0361f532, 0x03f82e73, 0x01605e5b, 0x020cae2e, 0x036e0e6b, 0x00fbaf46, 0x000457ef}}},
+ {X: Field{[10]uint32{0x0293522f, 0x01713f90, 0x02a30914, 0x01705120, 0x03a9892b, 0x03b7af95, 0x025f7c26, 0x03e54e8f, 0x011ca8d2, 0x001b4dfd}}, Y: Field{[10]uint32{0x015309af, 0x019fbba7, 0x03dda0a9, 0x016ea212, 0x00cbefae, 0x00ee4382, 0x026897cd, 0x02b52c37, 0x01f36718, 0x001e3944}}},
+ {X: Field{[10]uint32{0x03d46098, 0x02c0d440, 0x02ceaa76, 0x0157f9d2, 0x02738aa1, 0x0376fa65, 0x01cb035e, 0x01c07d72, 0x00275bd0, 0x000302b2}}, Y: Field{[10]uint32{0x00e3cd97, 0x020c807e, 0x026b7c3e, 0x00c5a996, 0x0031d762, 0x003389a9, 0x01684906, 0x029c21aa, 0x022a188f, 0x0039fcca}}},
+ {X: Field{[10]uint32{0x00cde108, 0x00481814, 0x02b935d0, 0x02352c95, 0x01822a64, 0x017ebd29, 0x00507df8, 0x01408c7f, 0x03a86f89, 0x00240036}}, Y: Field{[10]uint32{0x014ef3fd, 0x0360f2d9, 0x00ff1779, 0x0008bd63, 0x00323319, 0x03d32c0f, 0x018383c2, 0x03a7a2ef, 0x003694b2, 0x0026deba}}},
+ {X: Field{[10]uint32{0x029098a1, 0x02ba35a5, 0x01d9a28a, 0x029d18f8, 0x01ad58de, 0x01b0a8b8, 0x02092532, 0x02f23cd9, 0x03f4b490, 0x003c4426}}, Y: Field{[10]uint32{0x012f24c5, 0x00014257, 0x030224a8, 0x030b0c96, 0x006e3382, 0x032305fb, 0x02305141, 0x00b04200, 0x02279fd7, 0x0021d0c6}}},
+ {X: Field{[10]uint32{0x028c0003, 0x0372155b, 0x018b00d1, 0x02353db8, 0x03929adc, 0x01b587e0, 0x00aac8b3, 0x031bc231, 0x01e54e9c, 0x00137a1c}}, Y: Field{[10]uint32{0x00d3bba6, 0x021fc1dc, 0x029c7f01, 0x01c3a68f, 0x00805f4b, 0x027785af, 0x01d7fce1, 0x03a29b1d, 0x03cfca98, 0x00009747}}},
+ {X: Field{[10]uint32{0x02766ece, 0x0004f618, 0x01c80b66, 0x019ff633, 0x008f47b4, 0x01384004, 0x02e89ff9, 0x00aefce9, 0x02759297, 0x00288f2d}}, Y: Field{[10]uint32{0x03cf548c, 0x016bae51, 0x01dc7cae, 0x0337f5fa, 0x03cbca18, 0x01f48eab, 0x02811267, 0x0308f685, 0x0384ed05, 0x002371c2}}},
+ {X: Field{[10]uint32{0x004244e5, 0x00385256, 0x0032bbb4, 0x00e296df, 0x0179d3c9, 0x039c0f31, 0x03a9dd3b, 0x023e2e46, 0x00cce96d, 0x0000a574}}, Y: Field{[10]uint32{0x0303c926, 0x00fdfb8a, 0x02c95265, 0x02304ace, 0x02745e07, 0x014e2b97, 0x030fe376, 0x0352fdab, 0x0206a16b, 0x0029b516}}},
+ {X: Field{[10]uint32{0x02babbce, 0x0009517b, 0x008af9e1, 0x0337bf49, 0x016cb40b, 0x03ef45da, 0x00b13d51, 0x01da9b50, 0x03919d53, 0x001f1a0e}}, Y: Field{[10]uint32{0x01fd3f73, 0x02c6b6ab, 0x02e39332, 0x0169f08e, 0x02197d4e, 0x0367c558, 0x03ed30b8, 0x0215bd6d, 0x01d03608, 0x000f6832}}},
+ {X: Field{[10]uint32{0x000c3189, 0x039fbe07, 0x001ecdf5, 0x027b2a7d, 0x038505f3, 0x0388bb08, 0x020e21ff, 0x00926a57, 0x012ed27e, 0x000c3dd4}}, Y: Field{[10]uint32{0x00875169, 0x010790b9, 0x00164fad, 0x01fd5ba2, 0x039e4e7f, 0x02d1cc65, 0x01286514, 0x00e8e856, 0x005e25ea, 0x000bd7f6}}},
+ {X: Field{[10]uint32{0x03514961, 0x03d69d8b, 0x00835431, 0x00bed244, 0x031c7f84, 0x02358c52, 0x00a41c77, 0x013c9cc9, 0x038c9658, 0x0024ddef}}, Y: Field{[10]uint32{0x01f3df42, 0x03f5b4da, 0x00ad4335, 0x00b4ea27, 0x003cfa89, 0x03b60c34, 0x017fe92a, 0x036cab9f, 0x0055e2ed, 0x00356673}}},
+ {X: Field{[10]uint32{0x0131e9be, 0x0307555b, 0x00ca240a, 0x01e1affd, 0x0328a66e, 0x03e0f153, 0x03530b85, 0x001256e8, 0x03e867f2, 0x000d627f}}, Y: Field{[10]uint32{0x01224c89, 0x02a49d1b, 0x0385b581, 0x019e3f74, 0x00d75b3a, 0x03c4cf71, 0x01c22a89, 0x02278482, 0x02aa9830, 0x0026208b}}},
+ {X: Field{[10]uint32{0x023f8935, 0x036e2e3a, 0x03f85999, 0x01e84754, 0x012c79e7, 0x03f31905, 0x00e0f841, 0x03713396, 0x01f4b2da, 0x000e706c}}, Y: Field{[10]uint32{0x00256721, 0x026aa135, 0x0131e628, 0x010985b3, 0x0350bb8a, 0x03fe76a0, 0x036991de, 0x00ce2590, 0x031ad9df, 0x0039e149}}},
+ {X: Field{[10]uint32{0x0325be33, 0x03bb7b62, 0x0372cad5, 0x0368914e, 0x00b103f9, 0x02d84639, 0x00799188, 0x00b0b666, 0x0059d3d6, 0x00373c45}}, Y: Field{[10]uint32{0x03a1c074, 0x00f31cbc, 0x017b330a, 0x0323eb9f, 0x02a190f6, 0x031f7771, 0x01a92fe7, 0x01c398d1, 0x001aaf32, 0x003700e3}}},
+ {X: Field{[10]uint32{0x02623d1d, 0x018d6cc1, 0x038f0eed, 0x0179bac8, 0x00a32ff0, 0x02f60143, 0x00d82e55, 0x02c304fd, 0x01dd1de9, 0x0018524a}}, Y: Field{[10]uint32{0x00d8a24b, 0x02a9d7b1, 0x02a6ae0e, 0x010c6b2f, 0x02afafdc, 0x020603fd, 0x0118e3be, 0x03c5ee86, 0x0117c9e7, 0x0002bfa1}}},
+ {X: Field{[10]uint32{0x00ce743c, 0x006c2ea7, 0x00296a7c, 0x027ed66a, 0x03ef8160, 0x03b22b6f, 0x005da355, 0x036a5029, 0x0228cff6, 0x003d29c8}}, Y: Field{[10]uint32{0x019cdacb, 0x02a069b8, 0x01e50a25, 0x0094f328, 0x032fbcd0, 0x015a71af, 0x01e90f10, 0x016ab827, 0x00fbde09, 0x00151480}}},
+ {X: Field{[10]uint32{0x022c93f7, 0x03f94903, 0x01a650b5, 0x0133f23f, 0x0357aa16, 0x00dc6e50, 0x0262fbf5, 0x01565d1b, 0x02736caa, 0x0018f310}}, Y: Field{[10]uint32{0x02ce5665, 0x011f1142, 0x004fe09b, 0x0139143c, 0x01e7d822, 0x012c20a2, 0x02d2bd30, 0x0104eb5a, 0x035bc5a6, 0x0007e93b}}},
+ {X: Field{[10]uint32{0x02ab8889, 0x012f8ae3, 0x002016b8, 0x022659e3, 0x00aa7f9d, 0x00d172c1, 0x02cf761f, 0x00e29834, 0x02281184, 0x002b05d4}}, Y: Field{[10]uint32{0x024af2b1, 0x016a60aa, 0x03396343, 0x02266684, 0x00832f29, 0x03ddd97c, 0x02b01b68, 0x00f6b09e, 0x00ae2964, 0x00375f7e}}},
+ {X: Field{[10]uint32{0x024a0e48, 0x01e205a7, 0x02c03dd6, 0x008bcde1, 0x03823e86, 0x00bbead6, 0x00a5a2f7, 0x0106d831, 0x02b9637c, 0x00276ed7}}, Y: Field{[10]uint32{0x03d924d7, 0x00e353ad, 0x025cd1ba, 0x001e2718, 0x0205aa01, 0x021466a8, 0x01cde34b, 0x03587d0b, 0x02ba13f4, 0x0001dcb5}}},
+ {X: Field{[10]uint32{0x02f7dddc, 0x015cc70f, 0x02fb173d, 0x0266e30c, 0x004e88f5, 0x01683622, 0x015b5866, 0x0304d440, 0x01ddd2fc, 0x001c5c25}}, Y: Field{[10]uint32{0x024fa5af, 0x03f7ed1f, 0x0020e581, 0x01b74638, 0x03472732, 0x031ed902, 0x023da3f3, 0x01c2f3ec, 0x010952b4, 0x0007783c}}},
+ {X: Field{[10]uint32{0x025872ca, 0x026a5909, 0x03b2a331, 0x01a0b336, 0x01a32c4a, 0x00535ba7, 0x01e3964c, 0x02c7a900, 0x00d3f829, 0x0016b08c}}, Y: Field{[10]uint32{0x01c026ea, 0x0373ebb2, 0x02e8151b, 0x0360c85e, 0x03423484, 0x00c67290, 0x0206a16e, 0x03d9af17, 0x03a627db, 0x003eb0f0}}},
+ {X: Field{[10]uint32{0x038752ef, 0x01f3dd87, 0x00100857, 0x02854446, 0x01382496, 0x00b9d387, 0x0057537b, 0x03d05785, 0x02af0a39, 0x00349fb2}}, Y: Field{[10]uint32{0x01c6c037, 0x037e92dc, 0x03ae35dc, 0x0213eb38, 0x00d5938e, 0x010486da, 0x03d8eb60, 0x02bcc438, 0x036746cb, 0x003f1202}}},
+ {X: Field{[10]uint32{0x02ac6cda, 0x007882fc, 0x00d6477f, 0x0064e822, 0x01703af6, 0x03eb6a31, 0x0387d539, 0x0266df13, 0x03ddf92d, 0x003821dd}}, Y: Field{[10]uint32{0x01ccfee9, 0x0169404a, 0x00070db0, 0x039fb6f7, 0x001202c4, 0x03384357, 0x016ecc53, 0x0062c93a, 0x008ac6cb, 0x0009693e}}},
+ {X: Field{[10]uint32{0x019ba6ed, 0x0284601a, 0x00776753, 0x039a2015, 0x0363bbe3, 0x0225aae5, 0x02a6a138, 0x01603ef6, 0x02b7afe9, 0x00116b9e}}, Y: Field{[10]uint32{0x0156f322, 0x01b9aa28, 0x00ff16c4, 0x01f83fbf, 0x02502f79, 0x0365bd0f, 0x00d440e3, 0x0381b934, 0x03ed127f, 0x003706bd}}},
+ {X: Field{[10]uint32{0x00d00590, 0x0387793d, 0x00045327, 0x00516007, 0x026ae265, 0x01a2d30b, 0x00f509a7, 0x00114ecf, 0x033b71c5, 0x003f4a32}}, Y: Field{[10]uint32{0x00e5a7b6, 0x01994617, 0x02159c26, 0x00ac95fd, 0x013298a2, 0x005d3388, 0x01081f08, 0x033d12a9, 0x03954867, 0x002c1a13}}},
+ {X: Field{[10]uint32{0x001d850d, 0x02cc9807, 0x01d7a158, 0x0181d9c7, 0x03956816, 0x00ee7ee9, 0x015e4e22, 0x0127c286, 0x000dac6f, 0x003c89bc}}, Y: Field{[10]uint32{0x0109ef86, 0x01c6d968, 0x0150f10f, 0x0228da45, 0x01d823a0, 0x00661bfa, 0x0230e53a, 0x028e2ad1, 0x004f6925, 0x00341757}}},
+ {X: Field{[10]uint32{0x020337a3, 0x0113a41d, 0x0340ff0e, 0x03b23271, 0x00a994e1, 0x02cc0e3e, 0x00e23a72, 0x0212021f, 0x0213a80d, 0x000f3185}}, Y: Field{[10]uint32{0x013c3956, 0x036ef6b3, 0x033f5a11, 0x00794a85, 0x0090377f, 0x0256ac04, 0x0221f09f, 0x00ebda50, 0x016a2409, 0x00211d3e}}},
+ {X: Field{[10]uint32{0x0260e736, 0x036b3833, 0x02223e5c, 0x03572579, 0x02633e7e, 0x03d5f5a1, 0x03be2331, 0x025c4af4, 0x01898cd9, 0x001c87b3}}, Y: Field{[10]uint32{0x00ffd69f, 0x02b064a8, 0x028ad532, 0x0284bdd9, 0x0221dc34, 0x03b18cf1, 0x009450bf, 0x01f2b928, 0x00d86fc0, 0x000c74a5}}},
+ {X: Field{[10]uint32{0x032eff38, 0x03f3fe8a, 0x03aa2db0, 0x00b03fea, 0x00d5b106, 0x03963ea3, 0x01862715, 0x0366c6c9, 0x02581144, 0x00372eb2}}, Y: Field{[10]uint32{0x01ec7d34, 0x00ec95c8, 0x00689e6d, 0x03986bce, 0x00708b53, 0x038b185d, 0x02fbdca5, 0x01b3fe43, 0x021d339f, 0x00273dd8}}},
+ {X: Field{[10]uint32{0x01db8b92, 0x007ccdc5, 0x03878342, 0x02654a39, 0x02b9300b, 0x031e895b, 0x00919382, 0x03b0af39, 0x0293e649, 0x003b4c53}}, Y: Field{[10]uint32{0x00744a11, 0x01f772d8, 0x0318bc83, 0x01238f7e, 0x0153ea03, 0x007c5519, 0x0122355e, 0x03fbcb8a, 0x02af0229, 0x001c2a06}}},
+ {X: Field{[10]uint32{0x01c036ee, 0x00dae30a, 0x01c09854, 0x02d8010a, 0x005f5c7e, 0x017d96ba, 0x02977689, 0x02f23466, 0x03cc7a59, 0x001af466}}, Y: Field{[10]uint32{0x00999090, 0x0109cd41, 0x0332c0bc, 0x039de2d5, 0x0131803c, 0x010d5171, 0x03ea28f8, 0x015a06f6, 0x01e3f4f6, 0x00144d1b}}},
+ {X: Field{[10]uint32{0x003d9acf, 0x01f1ac75, 0x03e15577, 0x0101eb62, 0x03ebe9d6, 0x02f8222f, 0x00228bb5, 0x037ecd81, 0x02156ac8, 0x00267b47}}, Y: Field{[10]uint32{0x01d2c922, 0x024430c2, 0x03c61e19, 0x02683d11, 0x0169f57e, 0x01c90dab, 0x02a0ac04, 0x01332a03, 0x01a4478b, 0x001d6c56}}},
+ {X: Field{[10]uint32{0x02452045, 0x03821dec, 0x0171cc7f, 0x030e30d8, 0x000f00c3, 0x000c0e5c, 0x02dd90fb, 0x0377c212, 0x038c793a, 0x000f859b}}, Y: Field{[10]uint32{0x015bbd59, 0x0086aa07, 0x038da019, 0x0209ee52, 0x019f07e3, 0x0269b31b, 0x0330f6fb, 0x00a997b0, 0x0263b0cd, 0x00245966}}},
+ {X: Field{[10]uint32{0x036df936, 0x01567345, 0x03656cf8, 0x00c82107, 0x01a1b1a4, 0x01027427, 0x00d1b168, 0x017ce2fe, 0x02d9a3a9, 0x003f06ea}}, Y: Field{[10]uint32{0x008af43d, 0x0158fc68, 0x0263884a, 0x024486db, 0x02e0b4d7, 0x020ad6d3, 0x005f2489, 0x02e27541, 0x03bdb013, 0x000c7de9}}},
+ {X: Field{[10]uint32{0x037ff340, 0x02a0673f, 0x0125a5a5, 0x010d3a72, 0x003bd318, 0x00ce1a21, 0x003c8795, 0x007b2b24, 0x013d4b37, 0x00202ceb}}, Y: Field{[10]uint32{0x012af178, 0x039336dc, 0x02bfdf20, 0x00a1cd1e, 0x010108ae, 0x0197eb1a, 0x03ed7d3b, 0x01b61319, 0x00bdaac9, 0x003ec72a}}},
+ {X: Field{[10]uint32{0x00616af2, 0x0330b91a, 0x03422073, 0x012535c9, 0x0002a87d, 0x023bdeab, 0x02c6c364, 0x03dc9f5d, 0x01ab2901, 0x002eb419}}, Y: Field{[10]uint32{0x030a37ed, 0x00ca71d1, 0x01d92236, 0x00d04fc5, 0x02fa925a, 0x02ae8a5c, 0x01d69a2e, 0x03bab536, 0x010216b5, 0x002ba75e}}},
+ {X: Field{[10]uint32{0x029b8fe7, 0x010d7e44, 0x03ca9bce, 0x023dfa06, 0x01a2fb75, 0x0321e079, 0x01beb99c, 0x00329a65, 0x02d90d70, 0x00347c11}}, Y: Field{[10]uint32{0x0111a4df, 0x00d16818, 0x01017fca, 0x0029195d, 0x033090fc, 0x0110cc50, 0x03167188, 0x0056bcd1, 0x025d7eb8, 0x0009d3b7}}},
+ {X: Field{[10]uint32{0x03f0a22f, 0x02811e8c, 0x03ea1751, 0x01851ce9, 0x0299df17, 0x00a6a83d, 0x01ea798d, 0x02a02963, 0x0355e3dc, 0x0036d4d7}}, Y: Field{[10]uint32{0x0353ff6b, 0x014a2b56, 0x037cced3, 0x03591de8, 0x00e61b86, 0x039ea3c4, 0x013df837, 0x00ef2846, 0x015d931a, 0x0039f600}}},
+ {X: Field{[10]uint32{0x00a42a80, 0x039a4703, 0x01d5082a, 0x03945933, 0x008635b7, 0x02693c61, 0x00b1a5db, 0x03c3ebe6, 0x0206a56e, 0x0036876e}}, Y: Field{[10]uint32{0x0210c9ff, 0x0238c4a8, 0x01508d92, 0x0196c85e, 0x008807e2, 0x0172d058, 0x00066210, 0x00c6f2ba, 0x003ca695, 0x0021aa0e}}},
+ {X: Field{[10]uint32{0x01aa42e7, 0x03b0a282, 0x008aeff5, 0x01de6cd6, 0x033b176b, 0x01ed509d, 0x014f29ff, 0x0019b1f7, 0x02b4d980, 0x00099f09}}, Y: Field{[10]uint32{0x0027161d, 0x03c82d42, 0x0034142f, 0x0231fe8c, 0x01d58465, 0x0364f6aa, 0x02300531, 0x03ac9574, 0x003ff4e5, 0x000ce430}}},
+ {X: Field{[10]uint32{0x01cbea0a, 0x0120fff0, 0x0027d4f3, 0x00a7fb97, 0x025561fd, 0x0021246a, 0x00c79152, 0x03e5541c, 0x03524e6f, 0x0020092b}}, Y: Field{[10]uint32{0x02dd86b0, 0x0075f2ec, 0x00a16dff, 0x01c5cd17, 0x03df7a8a, 0x00279dbf, 0x0078fc06, 0x01c9ac20, 0x00d0498f, 0x0032779e}}},
+ {X: Field{[10]uint32{0x0208f661, 0x014d1158, 0x002d2779, 0x025501a2, 0x00dc3dc1, 0x01c73c00, 0x030d7dd3, 0x02d0801f, 0x0268c7be, 0x00047fda}}, Y: Field{[10]uint32{0x03b4092c, 0x0306f029, 0x03dbd658, 0x02ea5e9f, 0x03916b75, 0x007df8ee, 0x03cac25c, 0x0206d479, 0x00252547, 0x002d4f77}}},
+ {X: Field{[10]uint32{0x02e3c929, 0x02309fcd, 0x011f6aa8, 0x025ac01d, 0x02b70d65, 0x016a660a, 0x0232d7a6, 0x02080ce6, 0x0083f9a6, 0x00158a84}}, Y: Field{[10]uint32{0x01e05b51, 0x0112b2ec, 0x03364557, 0x01854248, 0x0166ec20, 0x0042b5d0, 0x00e7d255, 0x02022e54, 0x007f0908, 0x0028e03b}}},
+ {X: Field{[10]uint32{0x0341c413, 0x0020b8b4, 0x037af68d, 0x029533c1, 0x030e097f, 0x03bd915c, 0x02a75987, 0x0035a4ed, 0x00fd327c, 0x0013bf9c}}, Y: Field{[10]uint32{0x00ce3dc7, 0x02afbcb2, 0x0098a4a1, 0x0118233b, 0x00b110a3, 0x03b476c4, 0x028befc3, 0x02d8b766, 0x039b92e0, 0x0004351e}}},
+ {X: Field{[10]uint32{0x03a51f20, 0x03027008, 0x0034ff9a, 0x0260b34c, 0x03354abd, 0x00780709, 0x028576c9, 0x00a2c2f7, 0x030cd7f1, 0x0013592f}}, Y: Field{[10]uint32{0x00a5e28f, 0x030cb97a, 0x00d6eb9d, 0x013cf532, 0x03da3c52, 0x0136f0b9, 0x03bf38e1, 0x037feb79, 0x001af57f, 0x0005679d}}},
+ {X: Field{[10]uint32{0x00a187bf, 0x03cc2cc0, 0x0243bc48, 0x02b0dcab, 0x03466de2, 0x03bb3be8, 0x02f0064c, 0x01e35acf, 0x034aff32, 0x00269058}}, Y: Field{[10]uint32{0x02aeae2a, 0x01faa801, 0x03c3cad2, 0x00c3d014, 0x02f409e5, 0x01591262, 0x007a1936, 0x01df3e11, 0x020faebb, 0x0003bbfb}}},
+ {X: Field{[10]uint32{0x0102418b, 0x0137b4a4, 0x014cf4fc, 0x03f39e09, 0x002c85cf, 0x039719dd, 0x02fec2d2, 0x03782023, 0x00fb9a6b, 0x00038601}}, Y: Field{[10]uint32{0x02fcdda7, 0x01aacd1f, 0x01e7bfa5, 0x030c60f3, 0x02447e93, 0x00e9996b, 0x03e81c9b, 0x0192e70b, 0x01eb9c16, 0x003a72ac}}},
+ {X: Field{[10]uint32{0x00593212, 0x018bc6d9, 0x03b411eb, 0x03c097e7, 0x00717611, 0x03fd134b, 0x021705ad, 0x01ec2be0, 0x0344c024, 0x0002980d}}, Y: Field{[10]uint32{0x02603b61, 0x0066ee32, 0x01d9ce5c, 0x0056a5ae, 0x026dcdb0, 0x021c4ee6, 0x035c0a2f, 0x01d8e10c, 0x032b706a, 0x002083f4}}},
+ {X: Field{[10]uint32{0x015f20b0, 0x01882812, 0x036cb66a, 0x02ceab89, 0x01a1108a, 0x03258193, 0x0172a2fe, 0x004a60d2, 0x01b6895b, 0x0029bc76}}, Y: Field{[10]uint32{0x01c8273c, 0x027550db, 0x0288029c, 0x03be0e81, 0x037f55d7, 0x0219e70f, 0x03f5ea81, 0x020e518f, 0x00d0df03, 0x0026a577}}},
+ {X: Field{[10]uint32{0x01ac5c48, 0x02bc49b3, 0x0041893b, 0x03cef5d3, 0x02f09f30, 0x01b88850, 0x00f920ab, 0x00ad8f80, 0x00320782, 0x0012b145}}, Y: Field{[10]uint32{0x00f43885, 0x012f0c68, 0x02a6ad7e, 0x031dc83d, 0x027ff037, 0x025156ef, 0x03da161f, 0x01291917, 0x014877e9, 0x002afd74}}},
+ {X: Field{[10]uint32{0x03fb7a9b, 0x02efdebd, 0x004752da, 0x00dccd81, 0x0248af6e, 0x02cce508, 0x02c588e1, 0x03ab9633, 0x015ba16e, 0x00168b3d}}, Y: Field{[10]uint32{0x029322e2, 0x00001039, 0x01c4fe0c, 0x007dc58f, 0x01a45f8c, 0x03795688, 0x005aeca5, 0x01cb353f, 0x022d32ff, 0x0023c9ef}}},
+ {X: Field{[10]uint32{0x03011c99, 0x00acf636, 0x0388f023, 0x00f8c32c, 0x02a87605, 0x01bff13a, 0x0012b27f, 0x0307d810, 0x03e8ef48, 0x00385bc8}}, Y: Field{[10]uint32{0x00c56000, 0x030e43ee, 0x017990e8, 0x03a84d0a, 0x0247ffe3, 0x02f69853, 0x015bb977, 0x0297036a, 0x0152b0af, 0x000657ff}}},
+ {X: Field{[10]uint32{0x0124fb84, 0x02f458e1, 0x0145ac1b, 0x00ebfe5a, 0x0228923a, 0x03761ba4, 0x01e4263c, 0x027dc543, 0x00d7ac10, 0x00194d9f}}, Y: Field{[10]uint32{0x0347d731, 0x020d2945, 0x006b68a7, 0x02541a02, 0x00a7687c, 0x03ad3fa3, 0x009b170b, 0x01f75934, 0x01bafbe6, 0x00033c2e}}},
+ {X: Field{[10]uint32{0x03d6eac2, 0x03bcd99a, 0x00d54a5c, 0x02723a55, 0x0389da48, 0x01b75991, 0x004228bd, 0x00ee35e9, 0x000b3944, 0x00042a21}}, Y: Field{[10]uint32{0x0261eff2, 0x01f80d31, 0x00a60798, 0x01571384, 0x03d8cc40, 0x03dfeb44, 0x01163ace, 0x01637861, 0x036ee4aa, 0x001ffdbd}}},
+ {X: Field{[10]uint32{0x0245d6a0, 0x02c4c9d4, 0x000e1528, 0x03aa46ba, 0x027b1db5, 0x0315dfc5, 0x039d0380, 0x020809ae, 0x00a6c01b, 0x000ffbfa}}, Y: Field{[10]uint32{0x03637b5e, 0x01630e8e, 0x02350ecd, 0x01e9f27f, 0x03a95975, 0x0275a3bf, 0x00a0b543, 0x00512915, 0x01a937e6, 0x002a5b7d}}},
+ {X: Field{[10]uint32{0x00052b61, 0x02b68871, 0x00c626c3, 0x03575861, 0x0058595f, 0x01759534, 0x03fb908f, 0x018ba5af, 0x037c0e41, 0x003be4f5}}, Y: Field{[10]uint32{0x03cd0bf5, 0x03efd03c, 0x0066b953, 0x007db35d, 0x01e53526, 0x011745a7, 0x01a23a86, 0x025f1fd6, 0x0385c18d, 0x00100222}}},
+ {X: Field{[10]uint32{0x00ca4872, 0x01ef60ac, 0x01d40d62, 0x0335466f, 0x009224a2, 0x025c6df1, 0x01edbd84, 0x0240f521, 0x035eb0fa, 0x003c5e27}}, Y: Field{[10]uint32{0x031a9da8, 0x000587e9, 0x028d0583, 0x0016b6aa, 0x019e36a9, 0x01ec7d28, 0x03570f47, 0x0115fa8b, 0x00b65456, 0x00132117}}},
+ {X: Field{[10]uint32{0x009b3274, 0x03313533, 0x004bfff3, 0x02422a1c, 0x00641938, 0x0353907c, 0x000d15ba, 0x017b4083, 0x0388ebc7, 0x00342ec5}}, Y: Field{[10]uint32{0x022a7641, 0x02aeffc8, 0x022fd8f7, 0x0091137d, 0x0143ac55, 0x00199992, 0x02877963, 0x009fd239, 0x00a895a3, 0x000e8483}}},
+ {X: Field{[10]uint32{0x00e8963a, 0x0337df37, 0x0005a3fa, 0x0186bae6, 0x022f05e4, 0x00844350, 0x02aab317, 0x01eb9935, 0x010cf780, 0x000592b0}}, Y: Field{[10]uint32{0x02549b69, 0x037166fa, 0x032093f9, 0x0098c07c, 0x009b6dca, 0x0127e63f, 0x01d6f858, 0x037642ec, 0x03d440f1, 0x002373d0}}},
+ {X: Field{[10]uint32{0x001fbe5f, 0x01b1e0a5, 0x02e40987, 0x00a5ce68, 0x00cd3aca, 0x00a527c3, 0x017dcf89, 0x0038eae1, 0x0165a8e4, 0x003c48b6}}, Y: Field{[10]uint32{0x02447371, 0x03409a36, 0x02257f50, 0x01cb4863, 0x00715043, 0x02d9c2fb, 0x02192d0b, 0x02260de2, 0x039dd9e6, 0x00136652}}},
+ {X: Field{[10]uint32{0x008870a8, 0x0050e939, 0x03829662, 0x008605b9, 0x01b975fc, 0x015e07c2, 0x02e2cdbf, 0x02a4a86b, 0x014775e5, 0x002b25c5}}, Y: Field{[10]uint32{0x03c9aa71, 0x010f1c50, 0x03edef89, 0x0373e2ef, 0x0253fff7, 0x01e3725e, 0x03679452, 0x005d0a59, 0x0203795b, 0x000927ed}}},
+ {X: Field{[10]uint32{0x01330906, 0x0312174b, 0x03fbdd48, 0x01b8512c, 0x02fb0add, 0x03a721c3, 0x013da811, 0x03f73243, 0x011edfd5, 0x002567b2}}, Y: Field{[10]uint32{0x0257ebdc, 0x02428898, 0x024b9aed, 0x01d4a91c, 0x0229f489, 0x014d617f, 0x01b5ebc6, 0x031d86d8, 0x0128b707, 0x000797b0}}},
+ {X: Field{[10]uint32{0x02982859, 0x02ea4f87, 0x028b7c59, 0x02348ed7, 0x003c6abd, 0x01b7827c, 0x03b2d157, 0x0208c915, 0x01d8ed7d, 0x001641e5}}, Y: Field{[10]uint32{0x00576708, 0x014a4b4d, 0x003c0683, 0x008ea760, 0x01a09cb1, 0x011ead0b, 0x0216490a, 0x02210583, 0x02861a3c, 0x0017b74a}}},
+ {X: Field{[10]uint32{0x03e0ba9e, 0x005373a8, 0x02555897, 0x02d6fc6e, 0x0348fdb4, 0x032b4541, 0x02178535, 0x00916fb6, 0x03987439, 0x00314dca}}, Y: Field{[10]uint32{0x00bca987, 0x02266c58, 0x035a022e, 0x010e2d92, 0x00767afc, 0x01ada713, 0x01536a54, 0x036e300d, 0x03617159, 0x003e0b42}}},
+ {X: Field{[10]uint32{0x035bd38a, 0x013e5b38, 0x01ee1653, 0x00a1f72f, 0x00101611, 0x00c3c9b1, 0x00d20166, 0x032f4fb2, 0x01fcae39, 0x003cf656}}, Y: Field{[10]uint32{0x009b3562, 0x00f3c5eb, 0x016ce160, 0x000fb42b, 0x03da586a, 0x03918051, 0x03e2f97f, 0x009e0cbf, 0x001f8760, 0x00387957}}},
+ {X: Field{[10]uint32{0x037fad9e, 0x033b0b94, 0x02cf8dd5, 0x010fe2a4, 0x0103a280, 0x0226c193, 0x023d9604, 0x038de0af, 0x036ebe3c, 0x00248af1}}, Y: Field{[10]uint32{0x01122109, 0x0302657d, 0x02b54352, 0x016f440c, 0x00116fbf, 0x006a5486, 0x00b9ea75, 0x03bf688c, 0x03572508, 0x002cc667}}},
+ {X: Field{[10]uint32{0x01f0360d, 0x00e1cd36, 0x00a1299a, 0x02236ebf, 0x022c461d, 0x001c2b32, 0x02b1df08, 0x00b255e6, 0x01407a6d, 0x001171f7}}, Y: Field{[10]uint32{0x03e85ac4, 0x01349799, 0x00e73264, 0x029a983a, 0x02d076eb, 0x03765bd2, 0x03c4e044, 0x01a7b5b0, 0x015b5f24, 0x000e85e1}}},
+ {X: Field{[10]uint32{0x0159bacb, 0x038b49ae, 0x00d5b33e, 0x02787c24, 0x00f1af5c, 0x01104705, 0x0189a5b7, 0x02c028f7, 0x0198dfd4, 0x001908b6}}, Y: Field{[10]uint32{0x037a3bb7, 0x03df6240, 0x03a09cdb, 0x01f1c0ee, 0x03376f59, 0x01dbd6cf, 0x018cea22, 0x0062864f, 0x03344912, 0x00388d63}}},
+ {X: Field{[10]uint32{0x00b0535c, 0x03320b31, 0x01a6f535, 0x033c14d9, 0x0295b1a3, 0x00afdb07, 0x00640f19, 0x01b45469, 0x02143319, 0x00238120}}, Y: Field{[10]uint32{0x017c34ce, 0x023bd43a, 0x00e65b63, 0x02562ea5, 0x00200121, 0x017d56a8, 0x0282ee53, 0x00b1567c, 0x033a1f65, 0x0035b4b5}}},
+ {X: Field{[10]uint32{0x024a79bb, 0x001c27f9, 0x002c4a1c, 0x003c0575, 0x02b8a708, 0x0049184f, 0x025a9e17, 0x00bc3e28, 0x01a8b5eb, 0x00168acf}}, Y: Field{[10]uint32{0x0386e6b7, 0x01fc622f, 0x00cd4422, 0x0209ae09, 0x01a6435a, 0x03be7629, 0x0095f8e6, 0x02abf9b7, 0x011deb54, 0x00181f1e}}},
+ {X: Field{[10]uint32{0x02cd7ccf, 0x034b573d, 0x0213e1a0, 0x0000f377, 0x01c5296e, 0x0082afd2, 0x00f3d912, 0x005299d4, 0x03a35cf6, 0x00050d61}}, Y: Field{[10]uint32{0x02a653d7, 0x00bcb7e1, 0x0201b662, 0x01f0ba0c, 0x0315f14c, 0x011b0d02, 0x021af490, 0x03162d26, 0x01fade6c, 0x00126f21}}},
+ {X: Field{[10]uint32{0x00a93193, 0x006f8677, 0x031a3ac8, 0x01f3fc97, 0x01ba357b, 0x03276141, 0x032c4bc8, 0x031d330e, 0x00428737, 0x003c0203}}, Y: Field{[10]uint32{0x023951f1, 0x00970e52, 0x00f0b5cf, 0x0364b289, 0x001c6a5a, 0x01c09f47, 0x03cfe320, 0x019d29f5, 0x019f57bf, 0x002f7404}}},
+ {X: Field{[10]uint32{0x01130034, 0x01235417, 0x009cef77, 0x02bab01d, 0x023e162d, 0x0175f109, 0x00b26b68, 0x03fbd0db, 0x0373e547, 0x0021deb8}}, Y: Field{[10]uint32{0x00dfcf5f, 0x03db7c35, 0x00a8e6f9, 0x0054cb97, 0x03e1275e, 0x03c9a328, 0x0156b798, 0x00d06bb6, 0x0095b750, 0x0007c2bd}}},
+ {X: Field{[10]uint32{0x00e619d4, 0x03caae7a, 0x02ca0d1d, 0x00182dce, 0x03e55f07, 0x01a689cb, 0x016a0714, 0x03286232, 0x036f0635, 0x00290637}}, Y: Field{[10]uint32{0x02f754e3, 0x03ff3580, 0x00856525, 0x0061a52e, 0x002e7558, 0x0296d646, 0x0099a6da, 0x009383f9, 0x01bb5bbb, 0x000ac1b3}}},
+ {X: Field{[10]uint32{0x02aedeab, 0x001d8de8, 0x029671d9, 0x00253ad4, 0x00114dc2, 0x0131ec2d, 0x02dce4f4, 0x02eb4897, 0x0174bb6f, 0x0013084f}}, Y: Field{[10]uint32{0x03970b51, 0x0037dce7, 0x01be0e48, 0x03ec81b1, 0x01402fb5, 0x022bea73, 0x012c7d54, 0x0170561d, 0x039fccc6, 0x001d06fb}}},
+ {X: Field{[10]uint32{0x00deb13a, 0x02dc1588, 0x01bff0ec, 0x030eed33, 0x032cf93b, 0x02240046, 0x014073a4, 0x03946c6a, 0x02fd3f94, 0x0028de41}}, Y: Field{[10]uint32{0x00e6030a, 0x028b59cc, 0x02332f01, 0x0376252a, 0x008a8a16, 0x00cc52dc, 0x00d5e552, 0x026c7461, 0x00b1c14a, 0x001828ec}}},
+ {X: Field{[10]uint32{0x01e72301, 0x013b1353, 0x0225c5e8, 0x02396e14, 0x02d6d652, 0x01aed194, 0x038ae3d2, 0x02bd4592, 0x02ed639e, 0x000b19df}}, Y: Field{[10]uint32{0x03ee832a, 0x006e7fc1, 0x0278eaca, 0x00c4ecb4, 0x005fe639, 0x02b01f09, 0x0389240c, 0x01f2e85f, 0x0006d3bb, 0x0037c393}}},
+ {X: Field{[10]uint32{0x017e77b4, 0x0077d2df, 0x009395d6, 0x02c33eb2, 0x01684473, 0x02c07000, 0x035fc3c5, 0x01af940c, 0x0014eaf8, 0x002d547e}}, Y: Field{[10]uint32{0x0246664b, 0x026738c1, 0x00bb1bd3, 0x03984693, 0x038818b6, 0x012b879f, 0x033f923b, 0x0057e0c0, 0x03354697, 0x002a5e72}}},
+ {X: Field{[10]uint32{0x01f45c39, 0x020851b7, 0x01984fba, 0x02a1d050, 0x012cd47b, 0x0037c31c, 0x0361ad74, 0x0013abc7, 0x03185c8c, 0x00263571}}, Y: Field{[10]uint32{0x00050804, 0x034ae928, 0x01bc5b36, 0x00b10a3d, 0x019d4a8e, 0x007b3aa2, 0x02f88f5f, 0x01fb083a, 0x01915c73, 0x002b2949}}},
+ {X: Field{[10]uint32{0x00cefc7c, 0x008f8ae5, 0x03bc9a0b, 0x021bbe3e, 0x02ed1e13, 0x03ef3318, 0x00104854, 0x02d949a3, 0x02f7260f, 0x00145238}}, Y: Field{[10]uint32{0x03ca2500, 0x01c914a9, 0x016e1296, 0x00581f2a, 0x039e9b27, 0x0068236e, 0x024a8ccb, 0x0292616e, 0x012d35de, 0x00196d37}}},
+ {X: Field{[10]uint32{0x020e753c, 0x03a44c63, 0x031daf91, 0x01f260b7, 0x00a08a22, 0x02fad145, 0x0240cccb, 0x019042e2, 0x01c18c9d, 0x0004b1a6}}, Y: Field{[10]uint32{0x032fcc99, 0x0008b624, 0x028e120b, 0x01a013b4, 0x004889e9, 0x00145ba2, 0x029a1975, 0x015c90d1, 0x004289b5, 0x001f654f}}},
+ {X: Field{[10]uint32{0x020a8d20, 0x01a75204, 0x02c639dc, 0x01e540e6, 0x02134e44, 0x03aec8c4, 0x02ecac37, 0x010046cd, 0x03f8a773, 0x0013434f}}, Y: Field{[10]uint32{0x0144ec64, 0x025816c0, 0x02a57397, 0x00a7c2c3, 0x03960b3d, 0x025fc85c, 0x00f10261, 0x013180f1, 0x03a0e098, 0x003b7fc5}}},
+ {X: Field{[10]uint32{0x0136e42d, 0x00941855, 0x03be4481, 0x036606a7, 0x03ccb069, 0x019a0cdb, 0x01b0985a, 0x01e9c6a4, 0x030b3e7b, 0x0033a42d}}, Y: Field{[10]uint32{0x01569000, 0x00e91e01, 0x01e672e6, 0x039915fc, 0x00d3af73, 0x021d581b, 0x00640ca2, 0x03ab5d49, 0x015612e0, 0x002337a7}}},
+ {X: Field{[10]uint32{0x0163b2d8, 0x03124c41, 0x0297e360, 0x02c720ef, 0x00d197f5, 0x034bea42, 0x03bf9851, 0x021e7667, 0x03276bb1, 0x000a31e4}}, Y: Field{[10]uint32{0x00643868, 0x02125b3b, 0x010857c1, 0x00f8cf64, 0x03bc0f3e, 0x03873ef8, 0x02b10f6a, 0x02d5196d, 0x0240e2f3, 0x00322513}}},
+ {X: Field{[10]uint32{0x03442443, 0x03fa94f9, 0x006659a1, 0x02021f4c, 0x03864d4c, 0x016dc1fc, 0x00c2b6b5, 0x033c0601, 0x01062413, 0x001b8b6b}}, Y: Field{[10]uint32{0x029430e0, 0x000d77c4, 0x01f7dc4c, 0x00a10d10, 0x02497bc0, 0x02703f8d, 0x021fba73, 0x01a450c2, 0x0064e05d, 0x0027699f}}},
+ {X: Field{[10]uint32{0x004d20fe, 0x016dc923, 0x0254f871, 0x022248fb, 0x0119f261, 0x037d0dfe, 0x034d03df, 0x00e51b10, 0x02c80376, 0x002fbe52}}, Y: Field{[10]uint32{0x031e25db, 0x033b5500, 0x038aaee7, 0x01cf39f8, 0x02386484, 0x02578501, 0x0383032e, 0x007719be, 0x0134e5fc, 0x00348c91}}},
+ {X: Field{[10]uint32{0x018e433d, 0x033b6be0, 0x01125918, 0x0190f517, 0x009b7d86, 0x003c994f, 0x0166a24c, 0x01707728, 0x0057f1b4, 0x0014d523}}, Y: Field{[10]uint32{0x010c3b44, 0x024e013c, 0x0240db6a, 0x0170f2b5, 0x01c36aec, 0x00c2c4ea, 0x01307e21, 0x001fe700, 0x0146f0c2, 0x003304e2}}},
+ {X: Field{[10]uint32{0x00b5867e, 0x01bfd001, 0x0188f90f, 0x02aff51e, 0x012aee71, 0x022dc8fb, 0x00b0e09b, 0x0324053a, 0x03847f25, 0x001ff53d}}, Y: Field{[10]uint32{0x00a1bd9d, 0x0174899d, 0x0297641b, 0x0234dd7e, 0x0358eec1, 0x01b900b6, 0x0205805a, 0x004ab659, 0x02bc901f, 0x003ff0f7}}},
+ {X: Field{[10]uint32{0x0397dd9d, 0x031e7e94, 0x003ccd3d, 0x03da72e2, 0x03d4251b, 0x036411bb, 0x0062424c, 0x0226d127, 0x027e4997, 0x001112a2}}, Y: Field{[10]uint32{0x03b30282, 0x03117936, 0x03f828f7, 0x0106fce4, 0x02abbe8e, 0x002355b0, 0x028c7757, 0x02c0802b, 0x003b3356, 0x0013317c}}},
+ {X: Field{[10]uint32{0x0326bd8b, 0x0033aa15, 0x02bc1acb, 0x019e398a, 0x0204af8c, 0x0108071e, 0x0294bd0a, 0x01897481, 0x007784d8, 0x003fc172}}, Y: Field{[10]uint32{0x0196eeb3, 0x030b79ea, 0x012d906e, 0x028242f4, 0x02a55f6a, 0x02fa613b, 0x025a0b5c, 0x01894f3e, 0x00ce6ac2, 0x001f3c3a}}},
+ {X: Field{[10]uint32{0x027e4ab2, 0x020ce6b7, 0x027c679b, 0x001223c2, 0x00e29f47, 0x00ff649d, 0x0094ea08, 0x006daf3a, 0x03ae6aa3, 0x00203f7d}}, Y: Field{[10]uint32{0x0152fb75, 0x01b9828e, 0x018fe3f4, 0x02fc2f79, 0x0249e066, 0x03515d71, 0x004a8b4b, 0x009d158d, 0x017b1696, 0x001df5cc}}},
+ {X: Field{[10]uint32{0x01879214, 0x012bab50, 0x01589685, 0x01edfad2, 0x03ef2022, 0x0035dcb5, 0x0020a74f, 0x001f2b54, 0x00c810a3, 0x002b0e29}}, Y: Field{[10]uint32{0x035016ac, 0x034b3a87, 0x01213c7c, 0x02acd057, 0x00d75ecf, 0x00b88a7b, 0x02f77ca9, 0x01616105, 0x00bb3c67, 0x003d2713}}},
+ {X: Field{[10]uint32{0x01f75514, 0x02445569, 0x036fea26, 0x00d77a6a, 0x013a90a4, 0x03d40bc6, 0x0162f408, 0x00098bf5, 0x02ddf1e1, 0x002cdcdb}}, Y: Field{[10]uint32{0x015a78c8, 0x020c15eb, 0x027514e4, 0x037995fb, 0x000eafa2, 0x02856b83, 0x01cb0682, 0x00d4f3c0, 0x03aff190, 0x0020633b}}},
+ {X: Field{[10]uint32{0x010dc295, 0x00e2cccc, 0x0322f127, 0x03d73ed9, 0x03e698d4, 0x031aa16a, 0x03f6d5ea, 0x03045ad5, 0x0212d100, 0x0019b59f}}, Y: Field{[10]uint32{0x00a05dd3, 0x0097fa85, 0x0318fd4e, 0x0318cb5c, 0x02685fae, 0x026ef5fa, 0x0208ea70, 0x0269534d, 0x021f3a0c, 0x0027353e}}},
+ {X: Field{[10]uint32{0x02b59043, 0x011c4d4f, 0x0333eb87, 0x01ae9ee6, 0x029fa10c, 0x01bb37c2, 0x02eb6514, 0x0392136a, 0x035f756a, 0x002e15b5}}, Y: Field{[10]uint32{0x01cb0a38, 0x0069f6e2, 0x004c4b04, 0x0071c9ca, 0x026566da, 0x037c91bc, 0x03a177d8, 0x0259252c, 0x02b12f24, 0x00172150}}},
+ {X: Field{[10]uint32{0x01c47d27, 0x014a547e, 0x01548afc, 0x017ee165, 0x03c736b1, 0x01869950, 0x00142cd6, 0x008e4d16, 0x03d70320, 0x0001a0ef}}, Y: Field{[10]uint32{0x022de166, 0x018d045d, 0x01746b41, 0x028a3653, 0x02420387, 0x031a3365, 0x0029f84a, 0x037c9945, 0x0240f5db, 0x00243d4a}}},
+ {X: Field{[10]uint32{0x032923c2, 0x003e2a46, 0x018963d0, 0x029fe25d, 0x0141ee1c, 0x00ce8250, 0x00959345, 0x0079944e, 0x01f0811e, 0x000bfaa8}}, Y: Field{[10]uint32{0x00499c1a, 0x00e843fa, 0x0202b07e, 0x0081f41b, 0x03690d18, 0x039bb87b, 0x03701c35, 0x03500575, 0x0176b884, 0x00277602}}},
+ {X: Field{[10]uint32{0x0287cda4, 0x001ed608, 0x0009780e, 0x02a86a5a, 0x01847070, 0x01134833, 0x0365e9b1, 0x02ebcea5, 0x0137da9e, 0x0033994a}}, Y: Field{[10]uint32{0x001ba572, 0x00c87cc1, 0x01b6801b, 0x00dbade8, 0x00454e17, 0x0279eba1, 0x01db3782, 0x00b6f96a, 0x03fb5f15, 0x0030711b}}},
+ {X: Field{[10]uint32{0x00976211, 0x017f9a1e, 0x008a84fd, 0x02dac137, 0x03556087, 0x01d42f71, 0x03f9738a, 0x018feeac, 0x03d91701, 0x00269a56}}, Y: Field{[10]uint32{0x02aeda70, 0x0273c48f, 0x03c27d0c, 0x00b5935a, 0x010dce26, 0x02521a36, 0x002b1332, 0x03361669, 0x01f375ac, 0x003d02e8}}},
+ {X: Field{[10]uint32{0x0134ba44, 0x034c88ef, 0x00ec718c, 0x0285d55e, 0x035908b0, 0x03936930, 0x02bd6d09, 0x020fb2fe, 0x0368bd30, 0x00396eab}}, Y: Field{[10]uint32{0x03a27fb0, 0x03bee642, 0x03dbce4d, 0x011aa6be, 0x005feb7f, 0x028fa1a9, 0x0076d0ed, 0x030f0541, 0x01f0365c, 0x002ae194}}},
+ {X: Field{[10]uint32{0x03e59cc7, 0x00ddb63f, 0x0104ce06, 0x0322fd8f, 0x03dd0c4d, 0x01fb87f6, 0x033530bb, 0x03f9df63, 0x02a2b507, 0x000b09b3}}, Y: Field{[10]uint32{0x0230d62e, 0x002da739, 0x0004a500, 0x030abbf0, 0x03c30a1c, 0x016114a5, 0x0367151b, 0x00fae6c2, 0x03af54d0, 0x002cd138}}},
+ {X: Field{[10]uint32{0x00bbd0e4, 0x00527d72, 0x027a3c2a, 0x02701ff2, 0x024d5333, 0x0281f8bd, 0x01eadaf0, 0x00b98623, 0x039f52af, 0x001f19d4}}, Y: Field{[10]uint32{0x009067c9, 0x039cfa4c, 0x0303896e, 0x02f986d8, 0x03df7a2c, 0x01990bb1, 0x02cc97ec, 0x0244d813, 0x02fdc21c, 0x000fe61c}}},
+ {X: Field{[10]uint32{0x02249574, 0x02b7072a, 0x01aab8f9, 0x013dd080, 0x00334561, 0x00769c72, 0x02e1d17e, 0x002f24ed, 0x012dec8b, 0x0012d777}}, Y: Field{[10]uint32{0x02c5460b, 0x02cdaa2a, 0x03d695df, 0x0155b957, 0x036e16e7, 0x00aa169a, 0x00d18b3d, 0x03bf6d0d, 0x02dcaa3e, 0x0033eb68}}},
+ {X: Field{[10]uint32{0x00d80e4b, 0x02f0d6e2, 0x03e59216, 0x0200bac2, 0x00f9bb66, 0x01cea13e, 0x0266edb8, 0x0020d61a, 0x02f2ccfc, 0x0035dd70}}, Y: Field{[10]uint32{0x0053ddbb, 0x02ce933f, 0x01ea765b, 0x015e444d, 0x02ff56ca, 0x025902a1, 0x02aa0b51, 0x0088c73d, 0x01b7988a, 0x00322976}}},
+ {X: Field{[10]uint32{0x00d9bb4a, 0x0200ea6f, 0x014dcd3c, 0x01ec0dab, 0x00b005b0, 0x00f70f69, 0x001d9844, 0x003e77ec, 0x03097881, 0x001c68f3}}, Y: Field{[10]uint32{0x03caaa55, 0x00c41002, 0x01f5a1ad, 0x01362627, 0x01bd4a3c, 0x0185eb55, 0x000c5b39, 0x00c06e59, 0x02217db0, 0x0022aae3}}},
+ {X: Field{[10]uint32{0x011f53b7, 0x03a2ec66, 0x00d3fdde, 0x00160970, 0x02a82f7d, 0x035de3bd, 0x00596ae3, 0x025b9880, 0x005492b6, 0x002f1c68}}, Y: Field{[10]uint32{0x029a2a15, 0x02abd85c, 0x03b52b07, 0x00db9003, 0x00d11255, 0x018c2a42, 0x03744600, 0x02e362c4, 0x01259785, 0x00055e24}}},
+ {X: Field{[10]uint32{0x00847abc, 0x0247193f, 0x01f7e6f8, 0x002f1ade, 0x00e8d94a, 0x003d8396, 0x001ec81a, 0x02ff73ee, 0x0119ee62, 0x00274882}}, Y: Field{[10]uint32{0x02d0c675, 0x002f1f9b, 0x02a16e53, 0x03229efe, 0x0075f3a7, 0x027d3a53, 0x03fe8865, 0x00f0ae37, 0x039b1a07, 0x0020524d}}},
+ {X: Field{[10]uint32{0x03f33425, 0x0230cfbb, 0x016e5c6c, 0x006d38da, 0x00d25bff, 0x038eb565, 0x030c6c91, 0x02f4668c, 0x026ad30b, 0x0020da5d}}, Y: Field{[10]uint32{0x02e79e4a, 0x02562e5c, 0x008a4e4b, 0x0236185f, 0x038ed5d2, 0x0087df6b, 0x00970d9c, 0x015d7216, 0x0282b3f4, 0x00289fdd}}},
+ {X: Field{[10]uint32{0x00542451, 0x02cba2c8, 0x00ab457d, 0x02b4735a, 0x03e91f51, 0x021fed09, 0x00d36b54, 0x03aaac6a, 0x00750e4a, 0x001389de}}, Y: Field{[10]uint32{0x026566e0, 0x014083a8, 0x0123e763, 0x0036a3e1, 0x02d138fd, 0x0054a951, 0x02bf1d2a, 0x012e07e5, 0x03655bbc, 0x0027ebbf}}},
+ {X: Field{[10]uint32{0x01a0d2fa, 0x024408ce, 0x036b108b, 0x0306c84c, 0x01825046, 0x009816a4, 0x028d2027, 0x03ffcc39, 0x03b51b9d, 0x0009fe41}}, Y: Field{[10]uint32{0x012d4a15, 0x035ec301, 0x0068acbf, 0x0167ff10, 0x000105f4, 0x03571276, 0x004bf3dd, 0x00d803ee, 0x01c36cb1, 0x00045489}}},
+ {X: Field{[10]uint32{0x02b1fab3, 0x010bbb55, 0x0281864b, 0x02a3cf35, 0x02ef0900, 0x007dc3c5, 0x03ff42d4, 0x01d3110d, 0x03206506, 0x001b67fa}}, Y: Field{[10]uint32{0x03a02065, 0x015d3483, 0x02444f60, 0x0000e6a8, 0x035f7f7b, 0x014ebe8e, 0x015f8576, 0x00f070b9, 0x03ecd82b, 0x0020b365}}},
+ {X: Field{[10]uint32{0x0187bfac, 0x03cb3de0, 0x03558857, 0x02f4ef45, 0x01ecb9cd, 0x00a139ca, 0x01c3b363, 0x019a74d8, 0x02b43360, 0x00226074}}, Y: Field{[10]uint32{0x00d48498, 0x01b5e05c, 0x0245a3e8, 0x018db09d, 0x000216b2, 0x0053b357, 0x011bf736, 0x0174761e, 0x0327d5a4, 0x0006e6ba}}},
+ {X: Field{[10]uint32{0x02e1d72e, 0x026169dc, 0x010ce9c5, 0x0215b4f0, 0x02816916, 0x01fa4b38, 0x0140d557, 0x0347f895, 0x0118e47a, 0x0021299d}}, Y: Field{[10]uint32{0x01631658, 0x0294d071, 0x03356dc8, 0x0389a67b, 0x0016ca04, 0x0312dcff, 0x0011777d, 0x00ba8b9b, 0x03af8507, 0x0034f2e4}}},
+ {X: Field{[10]uint32{0x00a8c683, 0x030a346b, 0x03418d50, 0x0376e77e, 0x007e666c, 0x0196999d, 0x00111e2e, 0x033ddd43, 0x035672a6, 0x0034f999}}, Y: Field{[10]uint32{0x02556dd9, 0x027eb8e9, 0x023f0735, 0x016f7441, 0x034e2e81, 0x008cfe0f, 0x01aca5d8, 0x031b0ead, 0x00aa20e5, 0x001dddbb}}},
+ {X: Field{[10]uint32{0x01b87bba, 0x00b6ce19, 0x03c4af7b, 0x02129a3b, 0x02522a76, 0x0394958f, 0x00e76b5e, 0x015a2201, 0x01ef71d4, 0x003b7a5f}}, Y: Field{[10]uint32{0x01ae702f, 0x01eda4bf, 0x03513758, 0x023eddfa, 0x0285bafb, 0x01d62a03, 0x02279f95, 0x0049d982, 0x020f0c9c, 0x0024b9b4}}},
+ {X: Field{[10]uint32{0x02e8c871, 0x0282e73a, 0x006ed025, 0x021091eb, 0x036ff84f, 0x00c4b9c0, 0x03db3ae2, 0x01213b3d, 0x0142e000, 0x000cd678}}, Y: Field{[10]uint32{0x021cdf66, 0x019be774, 0x0377f871, 0x0024db90, 0x00d00ada, 0x00e76fca, 0x00c98bf7, 0x017e87ce, 0x01f23c84, 0x0019ec0e}}},
+ {X: Field{[10]uint32{0x022b44a1, 0x018b1f84, 0x0158f8fd, 0x02bb3c36, 0x0196f675, 0x00245295, 0x014a3dc4, 0x000bf499, 0x01720c05, 0x0038342a}}, Y: Field{[10]uint32{0x036b0312, 0x01ef51d5, 0x021718db, 0x00b46c47, 0x033ee29e, 0x03684640, 0x03d916ed, 0x0169faef, 0x01bc3457, 0x00032fac}}},
+ {X: Field{[10]uint32{0x01a4c987, 0x01f7e108, 0x02605939, 0x00676368, 0x014f3320, 0x007d757b, 0x0031ac7a, 0x01dc1190, 0x03675df7, 0x00142e24}}, Y: Field{[10]uint32{0x0292f293, 0x013ccd74, 0x01204cb0, 0x014cf67b, 0x0045c382, 0x01b5bfc3, 0x009c3f25, 0x0327ae82, 0x0181063e, 0x00311d97}}},
+ {X: Field{[10]uint32{0x016d446a, 0x0390cb73, 0x0111391c, 0x02f9073a, 0x037f80cb, 0x03e3a048, 0x01e84e99, 0x017fdbc8, 0x018e6677, 0x0017718b}}, Y: Field{[10]uint32{0x0373a9c2, 0x01bac505, 0x01de99ad, 0x02fc497d, 0x00b020ca, 0x0058ff57, 0x021cdabd, 0x011695db, 0x037de270, 0x0012d15a}}},
+ {X: Field{[10]uint32{0x02c10971, 0x0353e588, 0x01b03fdc, 0x01f88bbf, 0x004e56ba, 0x0241c430, 0x0232e187, 0x00611749, 0x038fc792, 0x0022e85d}}, Y: Field{[10]uint32{0x023e3854, 0x031ebd8f, 0x00c53f48, 0x03a23d06, 0x0048ffeb, 0x025c1c9a, 0x01d7d435, 0x025962ce, 0x00ffa835, 0x0007cc7f}}},
+ {X: Field{[10]uint32{0x00db9fc7, 0x03681b02, 0x0294be7a, 0x00aeea2d, 0x02999a10, 0x02fe6042, 0x03ad055f, 0x029eef9a, 0x02147d1e, 0x0028e851}}, Y: Field{[10]uint32{0x006ac294, 0x01fab0e2, 0x03d57a69, 0x01ec69c9, 0x00b3bdb8, 0x014c7ff3, 0x00cd6eb3, 0x004a108f, 0x0331d432, 0x0032609d}}},
+ {X: Field{[10]uint32{0x00af78f5, 0x03470bf8, 0x0328621a, 0x03d93637, 0x01f6ce1a, 0x00d9a0b1, 0x01671c44, 0x00d2ab20, 0x0047bd20, 0x0025882a}}, Y: Field{[10]uint32{0x01826e1c, 0x03855553, 0x01f0d099, 0x0017a256, 0x016168a2, 0x0055af37, 0x007e32f4, 0x037ffb2d, 0x0108a7e3, 0x0038731b}}},
+ {X: Field{[10]uint32{0x0396016b, 0x03663881, 0x016eebc9, 0x01f16126, 0x0395b2c5, 0x012363ff, 0x00b6a52c, 0x01a9e4fc, 0x02a0aa7d, 0x00290361}}, Y: Field{[10]uint32{0x02351ea2, 0x03365402, 0x0087396e, 0x02d117d1, 0x00062911, 0x009585f6, 0x014c15cb, 0x0119b6b6, 0x00e2d453, 0x003b1535}}},
+ {X: Field{[10]uint32{0x03484c80, 0x0241de6c, 0x02fbd5ed, 0x03a6e993, 0x037e5f40, 0x01d1661b, 0x0173b979, 0x009a295d, 0x01a6f60f, 0x001c7bcd}}, Y: Field{[10]uint32{0x038a1ba3, 0x0058ded3, 0x01669875, 0x00f2f91d, 0x0302f369, 0x03d69ab5, 0x037df7f6, 0x01642b15, 0x021e9ff3, 0x003aaffe}}},
+ {X: Field{[10]uint32{0x00f68de2, 0x031db5e9, 0x0267486f, 0x02fbc40f, 0x005308ab, 0x017dc256, 0x01ffa52c, 0x028ecb92, 0x0008c742, 0x002ef469}}, Y: Field{[10]uint32{0x01246124, 0x002d86d7, 0x0079a2ac, 0x00201428, 0x01ee6e1e, 0x01cca116, 0x00fbe96c, 0x0384f86c, 0x03ec9d07, 0x00125072}}},
+ {X: Field{[10]uint32{0x00ba9009, 0x03c7e7a1, 0x012ab433, 0x03fe5613, 0x03805d60, 0x00b226d7, 0x009c92ff, 0x01b7d4f8, 0x03389211, 0x0005a7af}}, Y: Field{[10]uint32{0x03c6228d, 0x000d6641, 0x02a08345, 0x01247a4c, 0x02c997d1, 0x03c77923, 0x01b5adeb, 0x01fb8560, 0x0116e766, 0x002453d5}}},
+ {X: Field{[10]uint32{0x00666acc, 0x01d40b3e, 0x020c3977, 0x02781313, 0x01d71c8d, 0x02436391, 0x00115458, 0x031fefab, 0x02bc4c5e, 0x0023c55e}}, Y: Field{[10]uint32{0x03f25908, 0x00604e0f, 0x021bc635, 0x0026260b, 0x02014dc7, 0x000af28f, 0x019883e6, 0x02a7ee62, 0x02ba1e78, 0x0035055d}}},
+ {X: Field{[10]uint32{0x00ec9a8d, 0x03632d6d, 0x0010091e, 0x024e53ee, 0x0284f71f, 0x026801b6, 0x00ebcd83, 0x009b7001, 0x00d5694b, 0x002334ce}}, Y: Field{[10]uint32{0x00002578, 0x03b34874, 0x03d952a6, 0x00d30809, 0x0303fd9d, 0x015192ac, 0x000eccf4, 0x0366e702, 0x0010dd88, 0x00100c63}}},
+ {X: Field{[10]uint32{0x013272f2, 0x003b8f8a, 0x02e28cbf, 0x030a5224, 0x03a64748, 0x012b5d83, 0x036171af, 0x02e8a834, 0x022f7ba5, 0x0008391f}}, Y: Field{[10]uint32{0x03be00bd, 0x00549519, 0x020a771b, 0x03e1db1c, 0x03162dda, 0x02279099, 0x00520897, 0x02608570, 0x022056b8, 0x002e5ab4}}},
+ {X: Field{[10]uint32{0x032bb880, 0x032d7997, 0x015793f3, 0x031bfefc, 0x02f9c31e, 0x03d0477b, 0x02942d11, 0x023e736d, 0x00a5a0d3, 0x00160bb6}}, Y: Field{[10]uint32{0x03ce8486, 0x03d1e580, 0x02352a4c, 0x0248d29b, 0x02948ea8, 0x012ebd2f, 0x00a8db56, 0x0274f7b1, 0x000e4f9d, 0x000524a3}}},
+ {X: Field{[10]uint32{0x001896d6, 0x03ac6d18, 0x01e7b877, 0x022db47d, 0x03b0bcab, 0x023011ba, 0x03daf30b, 0x030474fd, 0x019a6e76, 0x003d29bd}}, Y: Field{[10]uint32{0x0070f0c5, 0x0229922c, 0x01abeedc, 0x010792f6, 0x01ccde46, 0x026c5239, 0x01a05d4a, 0x01055956, 0x02e9e5d8, 0x000b4e71}}},
+ {X: Field{[10]uint32{0x00957b24, 0x00a6bdcc, 0x0252d2c3, 0x02e31d8e, 0x02fc8564, 0x01588fc1, 0x0266bf01, 0x033d71db, 0x00600f71, 0x000aa083}}, Y: Field{[10]uint32{0x03ff3ca2, 0x0249919d, 0x02d370fd, 0x01f6e655, 0x0236f77f, 0x01401e34, 0x009a1d72, 0x0256679b, 0x0303d742, 0x002ce301}}},
+ {X: Field{[10]uint32{0x02e2799e, 0x00612281, 0x03872623, 0x00ef075f, 0x0133634d, 0x001de8ea, 0x01d48026, 0x02fd921c, 0x004e9fcc, 0x00230b67}}, Y: Field{[10]uint32{0x01351a7d, 0x0152162a, 0x02db8d59, 0x01dd8130, 0x03cf032d, 0x02026169, 0x009c534e, 0x02edb631, 0x036cae43, 0x002b5404}}},
+ {X: Field{[10]uint32{0x00061ba9, 0x003466dd, 0x004906eb, 0x017eb7f1, 0x03db00d2, 0x00e49d64, 0x00b991e2, 0x02cfb434, 0x00530744, 0x002c63a4}}, Y: Field{[10]uint32{0x033877b6, 0x03faa4ac, 0x002a702f, 0x02e1108c, 0x0343a8aa, 0x02600d34, 0x01edd739, 0x02cb19dc, 0x0244c829, 0x00243d72}}},
+ {X: Field{[10]uint32{0x00e835be, 0x01e37347, 0x00109330, 0x01f3d2b1, 0x01d12482, 0x0314efe8, 0x01d2f58c, 0x010d6e41, 0x0157b03d, 0x00033c74}}, Y: Field{[10]uint32{0x0271b459, 0x01b65672, 0x031ab119, 0x037d87ba, 0x003ea656, 0x01147359, 0x0303cf21, 0x031f5a83, 0x01a15547, 0x003b8dea}}},
+ {X: Field{[10]uint32{0x014a6007, 0x0358fdf9, 0x004c1562, 0x0347c8be, 0x0192fc13, 0x01bd2f39, 0x021ac36a, 0x02103ecb, 0x018ad91a, 0x002362e7}}, Y: Field{[10]uint32{0x03842dba, 0x006d1ac2, 0x02ee1ce6, 0x03851f39, 0x01ee9227, 0x00e6af7b, 0x020ec3b4, 0x023cb76b, 0x024393ca, 0x00254a2f}}},
+ {X: Field{[10]uint32{0x0087fc9d, 0x006d18ff, 0x0106f256, 0x02387569, 0x037ae04a, 0x00366932, 0x02c936fb, 0x02c355c5, 0x0144bbc5, 0x001812d5}}, Y: Field{[10]uint32{0x016ac8eb, 0x00649528, 0x01d8a3e3, 0x01bc41a8, 0x03ee3cde, 0x034f67b6, 0x001e5fe7, 0x029b9d07, 0x039c4fb9, 0x000cff8b}}},
+ {X: Field{[10]uint32{0x03aed8f6, 0x030245be, 0x03e5309e, 0x0191e567, 0x02cbd16d, 0x02785328, 0x017aab74, 0x03b91181, 0x00141058, 0x000f9fb5}}, Y: Field{[10]uint32{0x012e79fc, 0x00915a25, 0x006481ba, 0x01860bc6, 0x01f66bd3, 0x00280574, 0x01aa6971, 0x031b8324, 0x024186de, 0x003f056c}}},
+ {X: Field{[10]uint32{0x0143f326, 0x034149de, 0x00f26736, 0x01a531a7, 0x0126e46f, 0x01b3d0b0, 0x01242431, 0x01ee2b25, 0x003586c1, 0x00342b9d}}, Y: Field{[10]uint32{0x034e0757, 0x007386fd, 0x0304b197, 0x00fa2ed7, 0x00fbaca0, 0x02fdada7, 0x0398865a, 0x01622b50, 0x01e8b983, 0x002fe80b}}},
+ {X: Field{[10]uint32{0x00be1441, 0x0147ae62, 0x0197f5f8, 0x01967781, 0x023627bc, 0x014e02b7, 0x02ce2f94, 0x010f8df9, 0x01ced4f3, 0x003bd701}}, Y: Field{[10]uint32{0x00103281, 0x0031865d, 0x036350d6, 0x030ab527, 0x01b681e7, 0x012ba388, 0x010e40b7, 0x03c678ef, 0x001b0379, 0x0036499f}}},
+ {X: Field{[10]uint32{0x008f49ae, 0x01921917, 0x038ca8dc, 0x01971efc, 0x03d7cf42, 0x02c2766b, 0x033015c3, 0x022b65f1, 0x03ebd799, 0x0005dae3}}, Y: Field{[10]uint32{0x0122f1b4, 0x0086fce1, 0x034c5fc8, 0x017a8053, 0x017f989f, 0x019db1e0, 0x00da1905, 0x03268da7, 0x024c8267, 0x002d2f2f}}},
+ {X: Field{[10]uint32{0x0116c3dd, 0x00e9d9af, 0x03a0097b, 0x0374d50b, 0x03b20771, 0x02db698b, 0x0358d69f, 0x03053bae, 0x03db0cff, 0x00223da0}}, Y: Field{[10]uint32{0x011cb601, 0x03fdc607, 0x02219f52, 0x025aca5c, 0x020cf800, 0x0094add3, 0x02797ca0, 0x000f1499, 0x03de8121, 0x0002efbc}}},
+ {X: Field{[10]uint32{0x0237abaa, 0x03f88e3d, 0x00854dd1, 0x0208c7ee, 0x018488b0, 0x00f59e24, 0x00c4121c, 0x03b113f6, 0x038f1247, 0x00299750}}, Y: Field{[10]uint32{0x023f36a3, 0x012a0be6, 0x00986d4d, 0x0257743f, 0x034bb500, 0x0131dc6b, 0x01cf3c0b, 0x010cff7f, 0x004e551e, 0x0017d972}}},
+ {X: Field{[10]uint32{0x0398cc27, 0x0169a818, 0x03d2ff6a, 0x02e40a20, 0x02d5cdda, 0x03c565f1, 0x0208148a, 0x022edfdf, 0x0251c502, 0x002f5a9f}}, Y: Field{[10]uint32{0x0059d885, 0x02dc3d9e, 0x02f662dd, 0x01369dbb, 0x030c1ed1, 0x026a63a4, 0x0397979b, 0x03748ba2, 0x00c4247c, 0x000fc8a0}}},
+ {X: Field{[10]uint32{0x009d274b, 0x00468264, 0x02202344, 0x02b1d34d, 0x0158f7a3, 0x01440514, 0x031814ec, 0x02837152, 0x036c2896, 0x00299c90}}, Y: Field{[10]uint32{0x03c2ec3f, 0x03f3b3af, 0x02654a7a, 0x02765590, 0x02c81f3d, 0x02b6b795, 0x02acea6b, 0x01e3656e, 0x02934681, 0x0037ba00}}},
+ {X: Field{[10]uint32{0x003a24b0, 0x0380de7c, 0x004bc8d9, 0x02a4c844, 0x0257891b, 0x01f4b6a9, 0x01b0993d, 0x03433c6b, 0x01fed3a1, 0x003283d5}}, Y: Field{[10]uint32{0x023cfa6f, 0x010f9bd6, 0x0399db58, 0x020e59c4, 0x03520166, 0x02f2a363, 0x0188baae, 0x00b73645, 0x00e46346, 0x0037006e}}},
+ {X: Field{[10]uint32{0x036429a1, 0x03c2d712, 0x034ccb91, 0x029fa831, 0x02211843, 0x02cbf881, 0x004961cc, 0x00087815, 0x008d9bff, 0x001843fc}}, Y: Field{[10]uint32{0x01d46b28, 0x01d82fb4, 0x020dd9b0, 0x00d8d7c5, 0x02d889bc, 0x03f34f84, 0x03daee68, 0x017e9f6a, 0x018aee96, 0x0012f8ec}}},
+ {X: Field{[10]uint32{0x01ff42ae, 0x03318e2a, 0x0162238f, 0x032588b7, 0x026b695d, 0x037e3c28, 0x00f006cd, 0x03b32de3, 0x0215a70a, 0x000b5be0}}, Y: Field{[10]uint32{0x01a3927b, 0x011521e5, 0x010fd3ff, 0x005491b1, 0x037a9887, 0x03543ccd, 0x01e4e5be, 0x0325a798, 0x0164e2a3, 0x0000ff02}}},
+ {X: Field{[10]uint32{0x00a1bbbb, 0x00318c22, 0x004ea70b, 0x009a90bf, 0x02998468, 0x0386826b, 0x010b132d, 0x00e716d8, 0x01b4868e, 0x002303a6}}, Y: Field{[10]uint32{0x001cfe52, 0x01314d85, 0x01a95c38, 0x00b821e1, 0x036ead99, 0x0186e305, 0x036a41de, 0x01032ca1, 0x0242f0a2, 0x000cae32}}},
+ {X: Field{[10]uint32{0x03c96ed7, 0x0327ac23, 0x007e4dba, 0x007596be, 0x03658c6d, 0x013bdb5d, 0x0062af77, 0x02b9d78c, 0x028f9000, 0x00054a2e}}, Y: Field{[10]uint32{0x013b5651, 0x03b29914, 0x0253a5fa, 0x03571cc6, 0x012d39f0, 0x01d4ea2f, 0x00e64665, 0x01af3475, 0x038d54df, 0x002a3749}}},
+ {X: Field{[10]uint32{0x03f1d7a4, 0x027bde9b, 0x037d2fa0, 0x02feb16b, 0x00104394, 0x02545616, 0x03a040e2, 0x01a9ebc4, 0x02a5d925, 0x0030519b}}, Y: Field{[10]uint32{0x01be5128, 0x0115ec9d, 0x00a7bc05, 0x02db8414, 0x00d8bab3, 0x01800f7c, 0x0284b540, 0x0361e7c1, 0x02c6fb36, 0x0032adbf}}},
+ {X: Field{[10]uint32{0x03e98cb4, 0x004604b4, 0x02b56c6f, 0x02ea1e9d, 0x022ea946, 0x03e430fc, 0x0297a87c, 0x002274a8, 0x0093e051, 0x0033a2ec}}, Y: Field{[10]uint32{0x003a0470, 0x014ba578, 0x028884c2, 0x02b642c3, 0x00679cbc, 0x0344eeab, 0x03f556fb, 0x0213f9b7, 0x0251b906, 0x002a36ee}}},
+ {X: Field{[10]uint32{0x02d6c86d, 0x01960b81, 0x016ea918, 0x018e85ea, 0x027c4267, 0x0024aa53, 0x030ddd9b, 0x02785634, 0x02737c9d, 0x0001dbce}}, Y: Field{[10]uint32{0x01d16c8a, 0x00a808b9, 0x00443b20, 0x00081f90, 0x01b29c53, 0x01b38fc1, 0x00ad27ec, 0x0179b1de, 0x007c4f34, 0x0016c728}}},
+ {X: Field{[10]uint32{0x0274017f, 0x015cb542, 0x001adee1, 0x03fabdda, 0x032ed997, 0x0375f50e, 0x03988725, 0x002c84ee, 0x03c32339, 0x003dd5f7}}, Y: Field{[10]uint32{0x01b83cf8, 0x034912e9, 0x016be461, 0x019f2869, 0x0374ec4f, 0x023ace55, 0x00b63d98, 0x025c99c0, 0x00ea6787, 0x00342d39}}},
+ {X: Field{[10]uint32{0x02d5f5d0, 0x00aa1ee7, 0x0065c149, 0x01a43647, 0x03f27a57, 0x036f8f19, 0x000ec6d3, 0x02bbf7c2, 0x0198a2de, 0x00166fd8}}, Y: Field{[10]uint32{0x0010f8b2, 0x00f5c3e1, 0x029b3a2f, 0x03b58054, 0x016e02f2, 0x03519e15, 0x010834c4, 0x028a08c4, 0x03399011, 0x002fd7ad}}},
+ {X: Field{[10]uint32{0x0149ba16, 0x02020b81, 0x0052d53f, 0x0173c4b3, 0x02a7b0e8, 0x02463056, 0x02857900, 0x021d5d21, 0x030ac86d, 0x002c740b}}, Y: Field{[10]uint32{0x031a19d0, 0x00dff095, 0x0106b854, 0x00965b4f, 0x03972977, 0x00fce14a, 0x000878d6, 0x01adda2a, 0x02039992, 0x0001e497}}},
+ {X: Field{[10]uint32{0x001d1905, 0x0393900e, 0x02908882, 0x03bc53ce, 0x027e5267, 0x01f10610, 0x03d2ec12, 0x0381f406, 0x032f41d8, 0x003349cd}}, Y: Field{[10]uint32{0x01c77297, 0x02bc3257, 0x003522ac, 0x005d4826, 0x02c33296, 0x01045a4e, 0x03810f3b, 0x027ccf33, 0x0203661b, 0x003338db}}},
+ {X: Field{[10]uint32{0x019d3ace, 0x036d26f7, 0x01695b01, 0x033eef20, 0x03ad2258, 0x032eaad3, 0x028940f5, 0x00d664ed, 0x00fc26ca, 0x00044991}}, Y: Field{[10]uint32{0x01c0bf60, 0x01341245, 0x01b904e7, 0x00acefa7, 0x037ff136, 0x03b7c274, 0x03a49b3b, 0x02e57cbd, 0x03907b5a, 0x0021a17d}}},
+ {X: Field{[10]uint32{0x0197d3ce, 0x001b8b03, 0x018bb3a6, 0x03abae12, 0x0192fb51, 0x00d68936, 0x02845759, 0x01285883, 0x032a99ce, 0x0024637d}}, Y: Field{[10]uint32{0x038a8461, 0x0333faee, 0x03065602, 0x00609d26, 0x01bb6b79, 0x0241e533, 0x038b0d3c, 0x03fe63c6, 0x01ec9ebb, 0x00222cce}}},
+ {X: Field{[10]uint32{0x00dcb83b, 0x02b3eaff, 0x01af2a7d, 0x0093cd28, 0x00436e64, 0x035229dc, 0x0025b510, 0x03ff2025, 0x00f265c4, 0x0026e3c6}}, Y: Field{[10]uint32{0x0185ba55, 0x0152a6b5, 0x012475e4, 0x03e4fd8f, 0x01476c4a, 0x0318a04e, 0x02e8c78f, 0x0306e4b0, 0x01e86a34, 0x0002fee5}}},
+ {X: Field{[10]uint32{0x0024ce30, 0x031e3fef, 0x0340c9b9, 0x002b62cc, 0x00382174, 0x03a87639, 0x02be52a1, 0x0189a90a, 0x032ac396, 0x0002b40b}}, Y: Field{[10]uint32{0x022885fb, 0x030b41c6, 0x01b13255, 0x03978953, 0x03ad8c97, 0x02deede9, 0x0027cfe1, 0x01e1cbfe, 0x00e6cf8a, 0x003f31ce}}},
+ {X: Field{[10]uint32{0x026d85a3, 0x03ee6b76, 0x0076c84b, 0x00a23d51, 0x029b5c19, 0x016b3c49, 0x02e34f3f, 0x036b2423, 0x03bd5e60, 0x0000d66b}}, Y: Field{[10]uint32{0x03088955, 0x0055e7ec, 0x030f6b50, 0x00da8608, 0x03443586, 0x024cb385, 0x02721553, 0x03fb59c4, 0x01e79cd3, 0x000b8aa8}}},
+ {X: Field{[10]uint32{0x00b279de, 0x0024459a, 0x033ca55e, 0x03008187, 0x030c3c15, 0x0335b1e3, 0x00c34a31, 0x00bc7384, 0x023e230f, 0x00158e6a}}, Y: Field{[10]uint32{0x0111bef1, 0x01b0bb2d, 0x0309c8ed, 0x006c1189, 0x02e3a7d5, 0x02a7a0f8, 0x023bc263, 0x01fc2cfe, 0x015c15de, 0x00382dba}}},
+ {X: Field{[10]uint32{0x0269ec44, 0x015d94b5, 0x00e4ad86, 0x01b2b50b, 0x03693d3b, 0x0097bf0a, 0x00ef3d0c, 0x02567617, 0x03cc7b2f, 0x000c273f}}, Y: Field{[10]uint32{0x0150077d, 0x02596dea, 0x0274bcf7, 0x0299e664, 0x0232f949, 0x01487548, 0x00095205, 0x02c6f9e6, 0x022fd917, 0x0000eaed}}},
+ {X: Field{[10]uint32{0x033b86b2, 0x006bdb94, 0x033cace9, 0x01a922af, 0x00534a02, 0x01d7244c, 0x018eab63, 0x035f0017, 0x01d2dac1, 0x00147cf5}}, Y: Field{[10]uint32{0x03e99f74, 0x0262a3e8, 0x0235aba9, 0x00aab410, 0x0234f9cf, 0x02816f76, 0x03fbfe0c, 0x0123b67c, 0x027f4bdc, 0x000142c7}}},
+ {X: Field{[10]uint32{0x01c2a244, 0x03897b8a, 0x00e1fa3f, 0x03d22cf9, 0x034158b0, 0x014074c9, 0x000e0c6f, 0x01040115, 0x011833aa, 0x0023d58f}}, Y: Field{[10]uint32{0x03432193, 0x01d64a19, 0x03589028, 0x024f0600, 0x033d031d, 0x0004a263, 0x035248da, 0x00cdc55f, 0x01d85ea9, 0x0013531c}}},
+ {X: Field{[10]uint32{0x037177a9, 0x031cb229, 0x01108ee7, 0x0303b867, 0x003c4853, 0x02c25ab0, 0x0045b39f, 0x036ae72f, 0x0109d68f, 0x000db28a}}, Y: Field{[10]uint32{0x024301b0, 0x00588234, 0x02ed6905, 0x018cc384, 0x0269cbf3, 0x00519e97, 0x033d0953, 0x00a58217, 0x01dfc825, 0x00193d44}}},
+ {X: Field{[10]uint32{0x02a306e0, 0x00d1c0a3, 0x00cf3807, 0x023ad35c, 0x0358dd91, 0x036c9bc3, 0x001ca9c2, 0x03f5f308, 0x00d51f3f, 0x003d8a2e}}, Y: Field{[10]uint32{0x00adc2e8, 0x00d82ef6, 0x01c1ea2d, 0x01f798ca, 0x03b7c2d7, 0x03d55f7b, 0x00d6eb27, 0x00ba6cba, 0x00e30ea8, 0x0002f5af}}},
+ {X: Field{[10]uint32{0x00e67c1b, 0x010454b0, 0x02f2586e, 0x035d8400, 0x00b44fa7, 0x0340d435, 0x026922c9, 0x00b02eca, 0x03f500a8, 0x003ede9a}}, Y: Field{[10]uint32{0x02702da1, 0x017af252, 0x02cfb034, 0x00cc8e86, 0x018419fc, 0x03fa3cfa, 0x01f1406e, 0x031c0c00, 0x0037f1c9, 0x00304a87}}},
+ {X: Field{[10]uint32{0x0278d092, 0x0247ef3f, 0x03033753, 0x00769696, 0x01bf8ec0, 0x0003231d, 0x014080f4, 0x00abcb7c, 0x01195c3e, 0x00308246}}, Y: Field{[10]uint32{0x031adeb9, 0x01ad8c83, 0x01e6c382, 0x0063a203, 0x037aec38, 0x02d9b0c9, 0x007b1fa3, 0x036acfbe, 0x016fcbeb, 0x002cc1ed}}},
+ {X: Field{[10]uint32{0x013192d1, 0x02ff8a2f, 0x0003e8d1, 0x03e3466f, 0x0073c3be, 0x00ddd292, 0x02d7c4c9, 0x009fea81, 0x03893d17, 0x001d89f7}}, Y: Field{[10]uint32{0x028451e1, 0x01c9ac6d, 0x026f4bcf, 0x033fdb4d, 0x021326da, 0x001ddb14, 0x029a865f, 0x0157dea8, 0x036c36f4, 0x000d7499}}},
+ {X: Field{[10]uint32{0x002c62b9, 0x012ca580, 0x01639ed5, 0x01cf2c16, 0x01a3df6f, 0x036ff80d, 0x025df658, 0x00cea5b4, 0x01187c9f, 0x00099999}}, Y: Field{[10]uint32{0x0286630d, 0x00096931, 0x037ba468, 0x02bbd2a5, 0x02c4e7fc, 0x00d5aa1d, 0x01fe7578, 0x01789a94, 0x03c7d34a, 0x002ecc2e}}},
+ {X: Field{[10]uint32{0x022ac683, 0x02fce931, 0x037bbc7a, 0x017dcd60, 0x01ef8b12, 0x03ca9bdc, 0x006a02e8, 0x000b9df7, 0x0185fa98, 0x000ef6a4}}, Y: Field{[10]uint32{0x00a05b85, 0x00b95300, 0x02118936, 0x0172ec32, 0x0222b347, 0x002b8e1d, 0x0075a76a, 0x005e135e, 0x032bc11d, 0x00080bb7}}},
+ {X: Field{[10]uint32{0x003a5c4d, 0x00cf5ae6, 0x00097bc0, 0x022dfd49, 0x023be197, 0x0215c348, 0x0313c714, 0x02d93604, 0x00de4486, 0x000be42f}}, Y: Field{[10]uint32{0x00384f89, 0x03f69c6f, 0x01705270, 0x027b3d5e, 0x01f4aa75, 0x0332a677, 0x01b2e300, 0x0351d4d9, 0x02502028, 0x0018e193}}},
+ {X: Field{[10]uint32{0x00becda7, 0x02f3ef32, 0x01cb6562, 0x0309b1c7, 0x017083ed, 0x0327f35c, 0x0192e654, 0x0039bf72, 0x01d4e9b0, 0x002224fd}}, Y: Field{[10]uint32{0x0238ab50, 0x00c4ed2c, 0x003130fe, 0x0275b36e, 0x02a80fa2, 0x03831a65, 0x03566a1f, 0x0041d3ef, 0x00558e63, 0x0007ebcc}}},
+ {X: Field{[10]uint32{0x0155abba, 0x030d2561, 0x0237d855, 0x0094c273, 0x00f482fc, 0x0369cd44, 0x024fac54, 0x01778fb6, 0x02e686be, 0x002b3f12}}, Y: Field{[10]uint32{0x02c52d87, 0x01c5a14a, 0x0037cb90, 0x01f3e6f4, 0x0176423f, 0x03b0a47f, 0x03a5b998, 0x0229ab4d, 0x0197d187, 0x000e1fd1}}},
+ {X: Field{[10]uint32{0x0017a469, 0x00a95788, 0x020d9542, 0x039f5d19, 0x01d5fe35, 0x00a2948a, 0x03a892dd, 0x03a620bc, 0x0090a4c5, 0x000ab134}}, Y: Field{[10]uint32{0x03086c09, 0x03095c77, 0x01914a3b, 0x00afdd68, 0x01927d17, 0x03639a1a, 0x0279f2d7, 0x03b1151e, 0x01162aa3, 0x0018163d}}},
+ {X: Field{[10]uint32{0x02badef6, 0x03d6139f, 0x0024e9c9, 0x03b09430, 0x02c9b1a3, 0x004f1f98, 0x03c235cd, 0x0315cb96, 0x013ffc13, 0x00004dfb}}, Y: Field{[10]uint32{0x02c6fdba, 0x0214daa3, 0x00bf54fb, 0x030bcdeb, 0x010319e7, 0x0321d63c, 0x003ff023, 0x013d442d, 0x01cc3a46, 0x000307a5}}},
+ {X: Field{[10]uint32{0x033ecfe4, 0x013615fb, 0x02002cfe, 0x03dd63c2, 0x006cfb16, 0x00454ae5, 0x009f6068, 0x0228f4b2, 0x037a7214, 0x0000a280}}, Y: Field{[10]uint32{0x03973d10, 0x02ce613e, 0x03aa8a1b, 0x0093ea40, 0x02ec5951, 0x031b9e8e, 0x03788cf5, 0x037a6e34, 0x0250135c, 0x002cbd2d}}},
+ {X: Field{[10]uint32{0x027a9eeb, 0x02b773c6, 0x000ae3bb, 0x016d7cd3, 0x0378ad6d, 0x01d869db, 0x01d426e8, 0x00cfef3a, 0x01518fd4, 0x000c0fb3}}, Y: Field{[10]uint32{0x01abb602, 0x0158ce66, 0x01385ea9, 0x00fa2761, 0x02cbd8dc, 0x009d72c6, 0x03a5945a, 0x02c67a59, 0x02443b73, 0x001a9ff2}}},
+ {X: Field{[10]uint32{0x01533202, 0x008ce054, 0x0140a509, 0x01e7e2cc, 0x02c69cf0, 0x03595a6e, 0x001defd9, 0x03dc7099, 0x002e5680, 0x0033d8c1}}, Y: Field{[10]uint32{0x00eb4ee8, 0x03cd007b, 0x009b6b8f, 0x00ebd437, 0x00017664, 0x0386a90a, 0x01a20525, 0x03f715c6, 0x036dfb17, 0x000e7ccd}}},
+ {X: Field{[10]uint32{0x031fe4b7, 0x01216a86, 0x0168c44f, 0x02a38b76, 0x0334a229, 0x0395b124, 0x0123b6f2, 0x027eda5a, 0x03efb4a4, 0x0033ebee}}, Y: Field{[10]uint32{0x029f9007, 0x034971b1, 0x02a160b5, 0x0260063e, 0x01f39506, 0x0075dbdc, 0x03afbc70, 0x005f8777, 0x034d4a9c, 0x003703b4}}},
+ {X: Field{[10]uint32{0x010d363e, 0x034bcc4e, 0x0153d785, 0x01da6822, 0x004a7ffd, 0x00f1aa90, 0x0093ff7b, 0x009fa9a9, 0x01e10fd5, 0x003b038f}}, Y: Field{[10]uint32{0x027a35dd, 0x030a17e3, 0x03528fc5, 0x0303fcd4, 0x01723129, 0x005fd4f3, 0x02f3c6a7, 0x00d30420, 0x03ce3002, 0x00252f76}}},
+ {X: Field{[10]uint32{0x032bcde0, 0x038a9012, 0x02f7f84b, 0x0213bac0, 0x0113e9cd, 0x000645af, 0x039c0c35, 0x008b3f52, 0x00d19144, 0x003c1f4f}}, Y: Field{[10]uint32{0x01637320, 0x007ddece, 0x018103aa, 0x001a2b8b, 0x01dfe912, 0x01b47dc1, 0x0048de51, 0x00c860df, 0x02facb39, 0x0033c325}}},
+ {X: Field{[10]uint32{0x0248db10, 0x01c267cd, 0x003e2821, 0x01f799d9, 0x038a6fab, 0x00031e98, 0x0264ac0a, 0x00813a8c, 0x00b66f2e, 0x00129095}}, Y: Field{[10]uint32{0x02e5023a, 0x02acaf0b, 0x0157ac26, 0x0022eb2c, 0x01b187ab, 0x017df7e5, 0x03ef9891, 0x03f0d7be, 0x0229be93, 0x002d5443}}},
+ {X: Field{[10]uint32{0x007774a8, 0x0204fa3a, 0x001d9b5d, 0x02c0e017, 0x01910285, 0x03d9c651, 0x02625829, 0x02bc74d7, 0x03cfb38e, 0x00015bce}}, Y: Field{[10]uint32{0x01ed9dc6, 0x029e9d74, 0x026bac57, 0x01c219df, 0x038a1e82, 0x0051fddc, 0x03f3e5ca, 0x01fe6a6a, 0x00e79e6b, 0x002a6e59}}},
+ {X: Field{[10]uint32{0x03081295, 0x01586f9a, 0x03561ace, 0x021947f9, 0x01af6b98, 0x03aa9327, 0x02d95bff, 0x00bbf030, 0x034e07d3, 0x003e2763}}, Y: Field{[10]uint32{0x01bacc69, 0x03b1c663, 0x030d1449, 0x0145235d, 0x0075e48f, 0x01c61a65, 0x02656911, 0x00e19d8e, 0x031156a3, 0x003298cb}}},
+ {X: Field{[10]uint32{0x03c5530b, 0x03948149, 0x02af9758, 0x00cf1b66, 0x032890b9, 0x007c3a4a, 0x02e4a075, 0x005bad42, 0x01a0d3e7, 0x00170de4}}, Y: Field{[10]uint32{0x03b34616, 0x03e2eae9, 0x021c3ca1, 0x0070cdab, 0x02c4ed86, 0x0244d24e, 0x01e30dae, 0x00b4445e, 0x03c62de5, 0x00113bc4}}},
+ {X: Field{[10]uint32{0x03a38d27, 0x02804caa, 0x0233115f, 0x03c34e8f, 0x038ab94e, 0x01b3bab6, 0x00d71561, 0x0292b98b, 0x025ae6ba, 0x0009d21d}}, Y: Field{[10]uint32{0x03f69e48, 0x013c7c9d, 0x033590cd, 0x00cea4ec, 0x020f36b3, 0x031eba4a, 0x0105bbe6, 0x01dc3582, 0x019dde63, 0x001c7534}}},
+ {X: Field{[10]uint32{0x0327e254, 0x00d8efae, 0x0145322e, 0x028116a5, 0x000d2c41, 0x01fb8f9e, 0x00e4ee18, 0x035de00b, 0x03a2f8ec, 0x002593c7}}, Y: Field{[10]uint32{0x00138a2e, 0x01598435, 0x022e6775, 0x0000ee60, 0x015137ae, 0x00b33988, 0x0081a5fa, 0x02a20fa5, 0x03cade64, 0x0031d12e}}},
+ {X: Field{[10]uint32{0x01b8ca3b, 0x0217895e, 0x02754589, 0x001d3df4, 0x03ee758a, 0x01b0de7f, 0x003594fe, 0x0327ea14, 0x03758709, 0x0022fd81}}, Y: Field{[10]uint32{0x03dd51a4, 0x03986221, 0x03715a5a, 0x03b9c629, 0x02ccc193, 0x02c46343, 0x011cfb8f, 0x0375cbfd, 0x0192b3fb, 0x000f98e2}}},
+ {X: Field{[10]uint32{0x02e06612, 0x008e3740, 0x015f5a10, 0x03603b83, 0x00fbff70, 0x036fb9e6, 0x03c5a95d, 0x008e70af, 0x01239189, 0x003e841c}}, Y: Field{[10]uint32{0x0168e7f1, 0x01311a3e, 0x03936c62, 0x0384b5dc, 0x02315a6b, 0x00757b07, 0x0133ea97, 0x02c29664, 0x015e1a4e, 0x00029833}}},
+ {X: Field{[10]uint32{0x00975588, 0x00d39451, 0x0059383c, 0x00f2a251, 0x033fe250, 0x01e5f2e2, 0x03d145ef, 0x025ffb00, 0x02d09f6f, 0x0016d231}}, Y: Field{[10]uint32{0x006e30a0, 0x00428ea4, 0x03d83c64, 0x0114a01d, 0x02173d6c, 0x02597c4d, 0x0291762d, 0x0046f304, 0x02893526, 0x00113619}}},
+ {X: Field{[10]uint32{0x02b94fd0, 0x03c6f2bb, 0x025b1ae8, 0x013552f2, 0x005d4e85, 0x0397a232, 0x025d1ea1, 0x01f8fca1, 0x03e823aa, 0x00203854}}, Y: Field{[10]uint32{0x006b9728, 0x01eb2ea8, 0x023f73ed, 0x00b01c60, 0x03c888a1, 0x03d3d904, 0x03a92d8e, 0x03046c04, 0x0229e435, 0x003b74ff}}},
+ {X: Field{[10]uint32{0x01ccf2c4, 0x03b5b41e, 0x03e3dae7, 0x027c1ec7, 0x03cd25de, 0x0131b8a6, 0x0190dd15, 0x01d49b09, 0x01d977bf, 0x0005b889}}, Y: Field{[10]uint32{0x01710768, 0x00622b02, 0x0274dd85, 0x014b83e8, 0x0340088c, 0x033708ad, 0x02db82af, 0x01d551b4, 0x0123b9b5, 0x00381c0b}}},
+ {X: Field{[10]uint32{0x01456938, 0x0247bf36, 0x013ce7a6, 0x028b78d6, 0x03bb064a, 0x02097af2, 0x021b65e7, 0x01b1d208, 0x020915a1, 0x0028d102}}, Y: Field{[10]uint32{0x00dbf40c, 0x01c24135, 0x0226bbe9, 0x00f79f0f, 0x0326fa5d, 0x03d0de99, 0x001323a7, 0x00aa3d59, 0x02a03a58, 0x003fdf1e}}},
+ {X: Field{[10]uint32{0x01aa2b5f, 0x00c3a7b3, 0x037c80a0, 0x000e4fac, 0x018d6072, 0x00b564e1, 0x0320401f, 0x0111a008, 0x034cd116, 0x0020550c}}, Y: Field{[10]uint32{0x033d5142, 0x004e7196, 0x03d54150, 0x0361f55c, 0x0017126a, 0x02824522, 0x030676f4, 0x03939ec3, 0x014e5f97, 0x002ee902}}},
+ {X: Field{[10]uint32{0x014d93c7, 0x039a96df, 0x01efa329, 0x0184f86d, 0x02fe7f23, 0x0138265d, 0x0092b257, 0x02eb28e8, 0x00ca27b5, 0x003244d2}}, Y: Field{[10]uint32{0x0176b44a, 0x0079cf16, 0x036399d6, 0x02550257, 0x01e7c372, 0x0006fed6, 0x020e62dc, 0x0268b141, 0x010de9d4, 0x00338907}}},
+ {X: Field{[10]uint32{0x026e8a88, 0x0096435f, 0x024363ba, 0x0101cdf9, 0x01cf3629, 0x0272a592, 0x0235e995, 0x02b5319d, 0x01a879fe, 0x0025022d}}, Y: Field{[10]uint32{0x03994fc0, 0x005d915f, 0x00fdfcbf, 0x034a12e0, 0x00e02155, 0x007d1825, 0x02858d52, 0x004306fc, 0x010a26c7, 0x003842d0}}},
+ {X: Field{[10]uint32{0x02bdd2ce, 0x00f9f975, 0x01b92e7d, 0x02436408, 0x02f80ddf, 0x02160aab, 0x020a159f, 0x0122e1e7, 0x0158eefe, 0x002e1474}}, Y: Field{[10]uint32{0x02d85469, 0x02f6a8b1, 0x0293f06a, 0x036394dd, 0x0060facf, 0x0271f560, 0x00c53f06, 0x00908707, 0x02e10079, 0x000a42b8}}},
+ {X: Field{[10]uint32{0x013d10fc, 0x01c79ab9, 0x005eb1b9, 0x02e15368, 0x0387e7a5, 0x0394d824, 0x00053875, 0x00801d96, 0x034d4a7c, 0x00274c82}}, Y: Field{[10]uint32{0x01d7c456, 0x000fd1c9, 0x0306e796, 0x018729a0, 0x009b44be, 0x039e0ec3, 0x022acd0a, 0x006435a0, 0x037b6a1f, 0x0013dab2}}},
+ {X: Field{[10]uint32{0x018ac7b5, 0x002a7a0d, 0x004c22f3, 0x0053401d, 0x01eaa491, 0x004e9362, 0x0386799d, 0x03b1953f, 0x00107b29, 0x001b5de6}}, Y: Field{[10]uint32{0x03823950, 0x028f9e76, 0x038804b0, 0x00d00ee8, 0x0177b2a3, 0x03899731, 0x0060a2ac, 0x013c26e8, 0x03cc105c, 0x0023de64}}},
+ {X: Field{[10]uint32{0x017f6489, 0x02476a79, 0x0372d73c, 0x001cb209, 0x00680c96, 0x02015b4a, 0x017d62db, 0x013eda68, 0x02ce77e1, 0x002f6cb4}}, Y: Field{[10]uint32{0x03aa590d, 0x02790b96, 0x030c184c, 0x00000f0a, 0x0008a3bc, 0x029bd592, 0x038ecede, 0x00ec6773, 0x0371d43c, 0x0002707b}}},
+ {X: Field{[10]uint32{0x0055b3fa, 0x03ff68fc, 0x02dea741, 0x02a34286, 0x001f7897, 0x01ceec16, 0x01b4787f, 0x002a5293, 0x00ff1ab7, 0x00126a33}}, Y: Field{[10]uint32{0x006ba426, 0x024a0a9b, 0x0243d8bd, 0x0053f5b7, 0x0115b419, 0x03814eb5, 0x02414ed6, 0x03af47b8, 0x02772049, 0x003ca634}}},
+ {X: Field{[10]uint32{0x029d2236, 0x0285ce9d, 0x000d77f1, 0x014ad441, 0x013b3d56, 0x00c5e80b, 0x0267992d, 0x02dec158, 0x016eb466, 0x00328fdf}}, Y: Field{[10]uint32{0x02145c37, 0x036ec4a3, 0x021b7126, 0x02b7dbc6, 0x0090e538, 0x025a90b0, 0x00e6f2bf, 0x00e13bde, 0x02259dcf, 0x00289b58}}},
+ {X: Field{[10]uint32{0x037176e4, 0x03a98c1c, 0x0065bc00, 0x02b699af, 0x01902e9c, 0x003422e6, 0x038469cb, 0x009f46d1, 0x0214f1c4, 0x002d9cb3}}, Y: Field{[10]uint32{0x00865efa, 0x022fdd9a, 0x03eddb81, 0x0142e312, 0x0083f4f5, 0x00f1695b, 0x020f1aff, 0x0145d89e, 0x01790001, 0x0005db02}}},
+ {X: Field{[10]uint32{0x029c199b, 0x03244ebb, 0x0168bda3, 0x01e23cba, 0x022c26dd, 0x010dde2a, 0x01b6866f, 0x01886f5b, 0x0357d4ad, 0x002f72ea}}, Y: Field{[10]uint32{0x00df5603, 0x01548ca2, 0x03c11240, 0x003ba4f1, 0x021cee9f, 0x03585a36, 0x0075a338, 0x004ff5f7, 0x00729bb2, 0x001e61a2}}},
+ {X: Field{[10]uint32{0x01fbf9f5, 0x00e12c95, 0x001961cb, 0x03420b60, 0x020d5bee, 0x0317d08f, 0x0064aa96, 0x01f7d5d3, 0x031e382f, 0x003d7c97}}, Y: Field{[10]uint32{0x02210221, 0x0277febc, 0x0324c98a, 0x01a03849, 0x00f54bc0, 0x02942934, 0x0393a829, 0x012ab960, 0x030b5ad8, 0x003a8e23}}},
+ {X: Field{[10]uint32{0x02ae09c3, 0x002e2505, 0x0250aa73, 0x01261689, 0x03603720, 0x009d1f10, 0x026e280b, 0x02ae7872, 0x0064f9f8, 0x0034a841}}, Y: Field{[10]uint32{0x029c5962, 0x033da2c8, 0x01b454fd, 0x03aeacf0, 0x032c9ffa, 0x00b240ba, 0x00d8dcaf, 0x0194cc0a, 0x01ed8dc4, 0x003465c6}}},
+ {X: Field{[10]uint32{0x00410038, 0x02068008, 0x0291cc5f, 0x00ffcffd, 0x0119058c, 0x03979aa9, 0x01221058, 0x01312f15, 0x02fee672, 0x00224956}}, Y: Field{[10]uint32{0x023fd7bd, 0x01f62bf6, 0x013e6914, 0x02d19c5c, 0x00c833c3, 0x03eead40, 0x0352ffb4, 0x0324d046, 0x02dd9560, 0x00023589}}},
+ {X: Field{[10]uint32{0x016e3952, 0x004bef55, 0x03f94beb, 0x03c81b24, 0x015165e3, 0x01e06406, 0x027d73f5, 0x03bbb8a9, 0x0042c5ec, 0x001791a3}}, Y: Field{[10]uint32{0x00f240de, 0x01994163, 0x021edc38, 0x02d0e92b, 0x03ce1fde, 0x00c39003, 0x00b6a8c3, 0x025f8aae, 0x024a467f, 0x002be0f8}}},
+ {X: Field{[10]uint32{0x019c4e2c, 0x021401fa, 0x0036d7fc, 0x023a4e14, 0x03552caf, 0x03d52ac0, 0x006850e8, 0x00662fd8, 0x03ac9eca, 0x001c30af}}, Y: Field{[10]uint32{0x02ea37b3, 0x03fadb35, 0x00591544, 0x010034b1, 0x023b45d9, 0x0033dd65, 0x00f99392, 0x02b95e2a, 0x0365f5ff, 0x00180c88}}},
+ {X: Field{[10]uint32{0x01c2f318, 0x0107032e, 0x001eeab6, 0x006993a4, 0x03bbb0db, 0x031e58c3, 0x000f86d7, 0x01ad0814, 0x013afe5f, 0x0005850f}}, Y: Field{[10]uint32{0x036a8a94, 0x022c91f5, 0x01e68ecb, 0x009132b4, 0x039fd749, 0x0134734d, 0x0109561d, 0x02075e04, 0x00140bdf, 0x001c1e3a}}},
+ {X: Field{[10]uint32{0x02b62bce, 0x01ba5985, 0x03ed029f, 0x02ddce82, 0x03e1326e, 0x003fd82a, 0x025b0346, 0x0059136c, 0x02ada934, 0x0022b0cf}}, Y: Field{[10]uint32{0x00945cc6, 0x0276ff46, 0x0005dc6d, 0x013f6918, 0x00ea9e61, 0x0266f694, 0x0055d0ed, 0x0062d2f4, 0x03566f0d, 0x0001b41d}}},
+ {X: Field{[10]uint32{0x0166e22a, 0x02a78189, 0x03ce771e, 0x0096843e, 0x0270cb33, 0x038323ad, 0x01f01166, 0x03abf7bd, 0x00b89e7f, 0x0011dae6}}, Y: Field{[10]uint32{0x02a91050, 0x01743875, 0x03f4730c, 0x0176e03e, 0x00fd98bd, 0x0004bc88, 0x0138483c, 0x00ae19f8, 0x00418325, 0x000e36fc}}},
+ {X: Field{[10]uint32{0x01497f11, 0x03114fbb, 0x03058a19, 0x01fc64a5, 0x012e383a, 0x0086b7e8, 0x0302bcb3, 0x0270ef4c, 0x02eff0de, 0x00393498}}, Y: Field{[10]uint32{0x022781d3, 0x01f3def3, 0x0050bfec, 0x0039f008, 0x01953d0c, 0x03a92400, 0x02070c49, 0x0048323c, 0x00fc2fd6, 0x00287e0c}}},
+ {X: Field{[10]uint32{0x00b5cbf8, 0x0303f3fc, 0x019871be, 0x01e5065b, 0x03e2e092, 0x027ccf99, 0x00c4f7cb, 0x02f86fc6, 0x010f48f0, 0x0019ef21}}, Y: Field{[10]uint32{0x0352d32f, 0x0373ae17, 0x03355526, 0x02f24b83, 0x01b7e6fa, 0x034bc833, 0x013e9271, 0x0292c91a, 0x0070334a, 0x00389581}}},
+ {X: Field{[10]uint32{0x02ef2797, 0x0147849c, 0x02b8d58f, 0x029689c4, 0x02b543a6, 0x00aac9d3, 0x024be020, 0x01250895, 0x02c5c0dd, 0x0014372c}}, Y: Field{[10]uint32{0x02b04ea0, 0x0227e352, 0x03ca890d, 0x01a8bddf, 0x038d2ea1, 0x01c17732, 0x03854b49, 0x01132671, 0x036fb69c, 0x000b2f00}}},
+ {X: Field{[10]uint32{0x0358bd6e, 0x029edda1, 0x0287644b, 0x013a2644, 0x01f86080, 0x0377d599, 0x00a57f1b, 0x0123d07a, 0x01777849, 0x001b26f1}}, Y: Field{[10]uint32{0x03b3ff20, 0x003fd13a, 0x00260cd4, 0x005724a0, 0x03a04019, 0x00892406, 0x029ca3d1, 0x02b211cc, 0x01f35998, 0x0021299c}}},
+ {X: Field{[10]uint32{0x0382a868, 0x01f12520, 0x010e7a33, 0x011919ce, 0x0128b441, 0x0231bab4, 0x03ceb361, 0x036ee67c, 0x03c6d27c, 0x00176b24}}, Y: Field{[10]uint32{0x002df508, 0x0292fe0d, 0x02d8bac2, 0x02e38c57, 0x008a91c2, 0x025dc13e, 0x034578aa, 0x0020b9d0, 0x00651805, 0x002195c8}}},
+ {X: Field{[10]uint32{0x01780c86, 0x00af9f21, 0x0196f2ed, 0x002ad1ae, 0x03f6b2a4, 0x00c1cf03, 0x02e9484d, 0x015f85e9, 0x03c65e1c, 0x00081e40}}, Y: Field{[10]uint32{0x03f6a442, 0x018cf051, 0x02c14854, 0x020c4569, 0x020bbdcb, 0x00f85e8e, 0x00fd3107, 0x01353db1, 0x00202956, 0x0012d5a1}}},
+ {X: Field{[10]uint32{0x02dc2f90, 0x0118884b, 0x011dd295, 0x01320a44, 0x036ffbc9, 0x00a0a0c3, 0x03351132, 0x024fa4ea, 0x03639be5, 0x00368097}}, Y: Field{[10]uint32{0x016d2723, 0x0250e0e4, 0x02e68eb6, 0x02997bd2, 0x00714def, 0x006b3d72, 0x02dea9a2, 0x0395dbc3, 0x01eba315, 0x0026d2b3}}},
+ {X: Field{[10]uint32{0x02823cb1, 0x002943ec, 0x02ea5603, 0x03d7b91f, 0x012a0f61, 0x021f3c64, 0x026ffa6b, 0x02272084, 0x02cd01b4, 0x000c9fea}}, Y: Field{[10]uint32{0x00c33b9b, 0x03e7b3ee, 0x037e96b7, 0x019d7f85, 0x0314c00c, 0x000f97e2, 0x00c5ac29, 0x00026c51, 0x03426010, 0x00018d2a}}},
+ {X: Field{[10]uint32{0x037e8084, 0x0091561e, 0x010cc79a, 0x005fd6fd, 0x006c9cab, 0x02746ff6, 0x013478ba, 0x03d18aa1, 0x03ee1619, 0x001133fe}}, Y: Field{[10]uint32{0x008e7da4, 0x031c535d, 0x01f64563, 0x00703f8d, 0x0176442a, 0x0041e691, 0x02f8c288, 0x0278a1fa, 0x03db6207, 0x002c2260}}},
+ {X: Field{[10]uint32{0x02a6fe3a, 0x0085c381, 0x0393a43a, 0x02141203, 0x03beb197, 0x00d3477a, 0x01ad6797, 0x00338b08, 0x01ca1373, 0x00317651}}, Y: Field{[10]uint32{0x023cc3fb, 0x01efc6eb, 0x02f0446e, 0x03ec328f, 0x0374102f, 0x0392a707, 0x03f72878, 0x01c503d9, 0x011b4d8b, 0x0028eab4}}},
+ {X: Field{[10]uint32{0x02c0de31, 0x0290b873, 0x019e677f, 0x03d90d4d, 0x01d4bf22, 0x03c76c3b, 0x032694b8, 0x03a4d446, 0x031984df, 0x003d3633}}, Y: Field{[10]uint32{0x01a30845, 0x02e970ba, 0x03f020c0, 0x01753ec3, 0x025b48a5, 0x01f8eff7, 0x02d76bfc, 0x0062035e, 0x01223aae, 0x0020f40b}}},
+ {X: Field{[10]uint32{0x0037c4cd, 0x002b9f06, 0x02e707e5, 0x0387854e, 0x03a2dce0, 0x0343c3b9, 0x006380af, 0x002f2243, 0x01dc8e7b, 0x0004f5c8}}, Y: Field{[10]uint32{0x00841116, 0x01844ba2, 0x00d28e97, 0x004b57c5, 0x009309c4, 0x002bdf93, 0x039e8237, 0x015045fa, 0x01e3e157, 0x00318830}}},
+ {X: Field{[10]uint32{0x0265ce1a, 0x018b8458, 0x01783928, 0x013389ec, 0x02516482, 0x013076bc, 0x03eb55d9, 0x019ca081, 0x03a666fc, 0x00397e7b}}, Y: Field{[10]uint32{0x000d9975, 0x00bc8f57, 0x0156c771, 0x033d4f82, 0x0201f0f3, 0x018f5e6d, 0x03f9fbe1, 0x00aed48b, 0x03e61830, 0x001402a7}}},
+ {X: Field{[10]uint32{0x0319c9ec, 0x0180f0f0, 0x016988da, 0x038290fa, 0x02a48ea0, 0x009ec6cc, 0x027abb98, 0x0284dd96, 0x00bd0a1b, 0x001cfb8f}}, Y: Field{[10]uint32{0x02b38f58, 0x017b1686, 0x00744b0a, 0x03408386, 0x03bbc909, 0x00ba097c, 0x0330bd5a, 0x01a272fa, 0x02b44093, 0x00365a0c}}},
+ {X: Field{[10]uint32{0x01990d91, 0x0074b3f1, 0x0255df10, 0x0007c09e, 0x003e0285, 0x0089d429, 0x03285e71, 0x01aeea04, 0x03c59404, 0x00046e4b}}, Y: Field{[10]uint32{0x00315417, 0x0245c5a9, 0x03b639fe, 0x03347655, 0x0023b324, 0x002526cb, 0x01cfcd08, 0x033f8103, 0x00aae20f, 0x003822c9}}},
+ {X: Field{[10]uint32{0x0160935b, 0x032873e4, 0x006a0623, 0x0148d8bc, 0x01b1bf49, 0x008a9897, 0x014442a0, 0x003717ec, 0x029c22be, 0x000c10d9}}, Y: Field{[10]uint32{0x00d0eb34, 0x034b2189, 0x00a2206d, 0x02c9724b, 0x0341eead, 0x0349b886, 0x0152c044, 0x01f5afeb, 0x00b04bf4, 0x0037120d}}},
+ {X: Field{[10]uint32{0x015f9a0c, 0x02d71f4f, 0x00495132, 0x0185aa72, 0x023f92aa, 0x001f7b12, 0x007622b4, 0x034510ae, 0x01aac290, 0x0012430e}}, Y: Field{[10]uint32{0x0126b986, 0x01a36b8a, 0x021eab3d, 0x03799dcf, 0x03110f87, 0x00f2cc53, 0x001361f7, 0x012a9bfa, 0x00fd5784, 0x00171db0}}},
+ {X: Field{[10]uint32{0x0002d03a, 0x02c90ce4, 0x03f2d2bb, 0x02528f82, 0x023a4caf, 0x01cac310, 0x01fb2127, 0x00cd1f28, 0x015867d7, 0x003f7573}}, Y: Field{[10]uint32{0x03411995, 0x033a425d, 0x0117210b, 0x01321762, 0x01bd69f8, 0x02f25369, 0x035bcc06, 0x01af1dbe, 0x0007d1d2, 0x003bf97d}}},
+ {X: Field{[10]uint32{0x00435ea9, 0x031405c5, 0x012d80e9, 0x02272b46, 0x00e2d359, 0x01956b10, 0x03db2722, 0x003f3910, 0x008eb083, 0x002f2284}}, Y: Field{[10]uint32{0x03c979f9, 0x01a6e4f8, 0x00d60220, 0x03d8a41f, 0x0076bd3a, 0x024c65b0, 0x008a384b, 0x0369d29c, 0x0258cbc3, 0x00249300}}},
+ {X: Field{[10]uint32{0x02924b44, 0x0177e3ab, 0x02e3b339, 0x02904054, 0x012c706e, 0x00626273, 0x02e431a7, 0x02db2e1a, 0x036e41f4, 0x003b6026}}, Y: Field{[10]uint32{0x00315da8, 0x0326ff19, 0x01f8a324, 0x02642c46, 0x00bede66, 0x0251eaa2, 0x0142ffe0, 0x01562723, 0x005c0329, 0x0004d760}}},
+ {X: Field{[10]uint32{0x00da52d8, 0x02145edb, 0x03276797, 0x0049e7a7, 0x00043982, 0x0390b5aa, 0x007d2f1e, 0x00781d05, 0x02c75d87, 0x0009ad42}}, Y: Field{[10]uint32{0x005dd7a0, 0x011aeb55, 0x005180e3, 0x02814879, 0x021fe37e, 0x00d253c3, 0x014b4c80, 0x01ba7c2c, 0x00638642, 0x00099667}}},
+ {X: Field{[10]uint32{0x03e8efd5, 0x02e53527, 0x01dd725a, 0x00419de1, 0x01679f6b, 0x02241f3c, 0x02746ff9, 0x033351fd, 0x00de27d0, 0x00333b62}}, Y: Field{[10]uint32{0x03f5729a, 0x037d0f5c, 0x00825fe4, 0x019f38af, 0x00e2beba, 0x014ad09a, 0x036adc2c, 0x0212b2d2, 0x022b4dc5, 0x0016c3b7}}},
+ {X: Field{[10]uint32{0x003c6249, 0x02a20f76, 0x032bb52d, 0x005863d1, 0x02bf3fe5, 0x01e221b3, 0x00429c11, 0x018cc8c2, 0x03cb3152, 0x00363b7d}}, Y: Field{[10]uint32{0x03984be3, 0x036bc1c5, 0x033437f3, 0x0201ad21, 0x0108c71b, 0x002e9a47, 0x03427e13, 0x03bbdb50, 0x003ec155, 0x00295aaf}}},
+ {X: Field{[10]uint32{0x0164b4ef, 0x02dc711d, 0x02515c2f, 0x00414fd9, 0x02526489, 0x035b23f3, 0x0149aa5c, 0x00e9d542, 0x03c9f8db, 0x003b60b0}}, Y: Field{[10]uint32{0x00b2f0b4, 0x03a3f948, 0x00f39b06, 0x032057f3, 0x0141ddcc, 0x0112a291, 0x029a26d4, 0x034f1dbe, 0x014906d9, 0x0017b966}}},
+ {X: Field{[10]uint32{0x018ca937, 0x006b910f, 0x0365e777, 0x02b61620, 0x005853b3, 0x01b54212, 0x026249d5, 0x03ad5017, 0x03aee89a, 0x001b89de}}, Y: Field{[10]uint32{0x01f40b8e, 0x01f408ce, 0x025b403f, 0x03713892, 0x008f9623, 0x00e845c3, 0x01a3fe66, 0x02529f0c, 0x03d81e6f, 0x002121c6}}},
+ {X: Field{[10]uint32{0x00a03c5c, 0x00abee52, 0x00967f70, 0x0109d9da, 0x00f2f8b6, 0x0386bfe5, 0x01b12293, 0x00484159, 0x02c86727, 0x002bad9e}}, Y: Field{[10]uint32{0x00bde197, 0x0034875e, 0x0289b698, 0x02fcdc1f, 0x02747100, 0x01bfd6b1, 0x027898d6, 0x02700f37, 0x01889425, 0x003f34f1}}},
+ {X: Field{[10]uint32{0x0283da79, 0x01f381d4, 0x03af23ba, 0x024e8f44, 0x00457531, 0x00e18cfa, 0x00967d1e, 0x031d5a53, 0x034baa20, 0x0027c1ff}}, Y: Field{[10]uint32{0x03f2136b, 0x017edff7, 0x02e36397, 0x03df656e, 0x0014308c, 0x02b28fc7, 0x03c5f363, 0x0185a3fc, 0x030d49d0, 0x002ba2df}}},
+ {X: Field{[10]uint32{0x013e1520, 0x00e5755c, 0x03df7243, 0x0325dab3, 0x03baafc3, 0x02f15406, 0x004b3ef7, 0x036ae859, 0x0114a026, 0x0009011b}}, Y: Field{[10]uint32{0x02029ae6, 0x0219f32a, 0x016cd321, 0x0202eb43, 0x0037fd53, 0x00554d2d, 0x013cd0e9, 0x0028c6ea, 0x01e96dc4, 0x00099521}}},
+ {X: Field{[10]uint32{0x033de519, 0x02f08cca, 0x010c913b, 0x02adf67e, 0x011806af, 0x015d39ae, 0x0344f48c, 0x03471a00, 0x0126bf8f, 0x00004dda}}, Y: Field{[10]uint32{0x01a61fa5, 0x02f9e575, 0x01ced56e, 0x014685d5, 0x018aed90, 0x01f4da5b, 0x02b2198e, 0x01309be1, 0x00e7c4b4, 0x0028d040}}},
+ {X: Field{[10]uint32{0x035a7d6e, 0x03268fbb, 0x015f11ef, 0x02996073, 0x025e4c38, 0x0045aba0, 0x037c85fb, 0x0319a21f, 0x014e816c, 0x00250f1b}}, Y: Field{[10]uint32{0x029de8dd, 0x00c69825, 0x02b24eca, 0x01c0c5a7, 0x0274112f, 0x0220fb8d, 0x02351657, 0x0369b4a7, 0x0324f618, 0x00364f51}}},
+ {X: Field{[10]uint32{0x005432d9, 0x002023a2, 0x03f53d4d, 0x0252bd82, 0x03a0f46e, 0x017d3e19, 0x03c9e61d, 0x0183f72b, 0x001f1592, 0x002b7e01}}, Y: Field{[10]uint32{0x03e57958, 0x01680dc6, 0x02d952b9, 0x01779b0f, 0x02c055ff, 0x03a42cdb, 0x0331bcbb, 0x0145bcf5, 0x021f99d2, 0x00313aae}}},
+ {X: Field{[10]uint32{0x022dcc44, 0x014df01b, 0x01bb8d96, 0x01860c97, 0x01dc0d94, 0x001ea7ea, 0x01defb67, 0x02b82047, 0x0313a404, 0x0005705f}}, Y: Field{[10]uint32{0x01b6898e, 0x03ce0eba, 0x01dc679d, 0x01898359, 0x01a799fb, 0x0144b5e7, 0x0042b482, 0x0257a0da, 0x0352021f, 0x0021d034}}},
+ {X: Field{[10]uint32{0x02cb8ca0, 0x012df372, 0x0143580e, 0x03b46b0c, 0x00966ec9, 0x01ae04f7, 0x01bd5758, 0x01665271, 0x03356236, 0x0021eeee}}, Y: Field{[10]uint32{0x022a48c4, 0x01892a34, 0x00a36f83, 0x03a472b5, 0x036a28f4, 0x00928fa6, 0x0214ccbe, 0x00f09257, 0x012c1bfc, 0x00005666}}},
+ {X: Field{[10]uint32{0x031fa105, 0x01705da7, 0x00daf95b, 0x00f35751, 0x03564da7, 0x02ba710c, 0x0082b5fe, 0x01530678, 0x004a0964, 0x000e6f45}}, Y: Field{[10]uint32{0x016fb207, 0x01dec4c9, 0x019bcfa2, 0x009ccc0c, 0x01dadf15, 0x030f2a3e, 0x02be12eb, 0x03535be2, 0x011c30b5, 0x003ffa28}}},
+ {X: Field{[10]uint32{0x003bca7a, 0x02ef592a, 0x00a9ab78, 0x01dbba5c, 0x00a1c696, 0x0196cbd3, 0x0399bfe2, 0x030319ae, 0x034f9bce, 0x0031393a}}, Y: Field{[10]uint32{0x02bfc286, 0x012283a5, 0x03cb7c22, 0x00ed13f0, 0x012ecb49, 0x001798e0, 0x024be2bd, 0x02e712f3, 0x003d316c, 0x0006ee6a}}},
+ {X: Field{[10]uint32{0x03244e69, 0x0392bb33, 0x01801488, 0x00d3d4f0, 0x028b53f0, 0x023280d7, 0x01dd2f44, 0x034cd3c3, 0x03831c80, 0x003060f9}}, Y: Field{[10]uint32{0x01a8b820, 0x00c362f6, 0x020b1593, 0x02552539, 0x0008ff2f, 0x03770203, 0x03389268, 0x007520f6, 0x02aac771, 0x003e663f}}},
+ {X: Field{[10]uint32{0x02d47d92, 0x0309007f, 0x03b6be39, 0x03655d4e, 0x027ac812, 0x00dd3674, 0x013b630f, 0x038423c2, 0x03ac22a2, 0x00267475}}, Y: Field{[10]uint32{0x02d0e1f0, 0x031378d4, 0x008b039c, 0x00f70d9b, 0x0352080a, 0x00daa25e, 0x01ca3d9b, 0x038d07a3, 0x033488df, 0x000299f4}}},
+ {X: Field{[10]uint32{0x0161cea5, 0x033324ab, 0x012bc5c3, 0x00e79fd7, 0x02985a33, 0x01a42420, 0x03d6f187, 0x0226ef7c, 0x025d16cd, 0x00381c02}}, Y: Field{[10]uint32{0x00a0b0f0, 0x025381dc, 0x007e3bd9, 0x00a529eb, 0x001fd08b, 0x02756708, 0x03ec97bc, 0x00fea102, 0x03e03895, 0x0009bdaa}}},
+ {X: Field{[10]uint32{0x01a7e721, 0x021e8f98, 0x0268b554, 0x01734fe9, 0x025415e9, 0x01ea98bb, 0x03813b56, 0x0360e546, 0x02e8cf36, 0x002c66fd}}, Y: Field{[10]uint32{0x0170153d, 0x00fe2e46, 0x01041fc0, 0x016e9dc2, 0x0246c105, 0x030439c4, 0x019f59e4, 0x036cbb35, 0x00a5ca2c, 0x0018c39e}}},
+ {X: Field{[10]uint32{0x0371fd44, 0x039b867f, 0x03943c6f, 0x01c870cc, 0x0039abaf, 0x025c051d, 0x0027adfa, 0x0343b220, 0x0156e90d, 0x00094024}}, Y: Field{[10]uint32{0x033afc11, 0x019b87d5, 0x01dec9c4, 0x0000b467, 0x01b78255, 0x02e4ce16, 0x014ed74c, 0x01d8c808, 0x03dc8647, 0x000c9011}}},
+ {X: Field{[10]uint32{0x01a3e4ae, 0x02e14e18, 0x00681771, 0x007e588e, 0x02aca501, 0x03531402, 0x030c98d9, 0x0174726e, 0x03e8bbe4, 0x0011739f}}, Y: Field{[10]uint32{0x0392f8b1, 0x0018b908, 0x008327ca, 0x01d804d6, 0x019e41b1, 0x02db1fd9, 0x00725702, 0x02e3c297, 0x02afd1ad, 0x00232f08}}},
+ {X: Field{[10]uint32{0x019ec059, 0x020522d8, 0x026834e3, 0x014d0ec4, 0x02b939e9, 0x028a1bbd, 0x03392120, 0x01ff19f7, 0x0107d3a2, 0x001cc955}}, Y: Field{[10]uint32{0x01c35b63, 0x013a4fc9, 0x00e28a35, 0x03b44d13, 0x00eeba10, 0x03b5b233, 0x00f3deda, 0x0008376c, 0x02e6e941, 0x000c5d35}}},
+ {X: Field{[10]uint32{0x0011df58, 0x0002b072, 0x03885978, 0x00b68481, 0x03602596, 0x0322eb4f, 0x009a9458, 0x030e787b, 0x02f401c6, 0x0025acb3}}, Y: Field{[10]uint32{0x027fa8cd, 0x009271a2, 0x01a997d1, 0x00b660f7, 0x002fbf9e, 0x003000d7, 0x01ab5b7c, 0x02b498eb, 0x012141b4, 0x003b617b}}},
+ {X: Field{[10]uint32{0x02b9c772, 0x00fbbd90, 0x01cdbb98, 0x0324dc09, 0x0357f23c, 0x0244aba1, 0x007bebb0, 0x02ca2a8c, 0x001cd941, 0x0015d906}}, Y: Field{[10]uint32{0x00ac7089, 0x0234afb8, 0x01b8ef2c, 0x0133cf38, 0x01249576, 0x0115e90f, 0x01f64375, 0x0023f76d, 0x034fc239, 0x003a05ce}}},
+ {X: Field{[10]uint32{0x03ec1b61, 0x00a7b724, 0x02c60efd, 0x028e0aed, 0x02ea16d2, 0x0356c9e0, 0x031e3145, 0x0141580a, 0x00397e96, 0x000e3b1e}}, Y: Field{[10]uint32{0x018ec96e, 0x0353258c, 0x01089744, 0x00c47354, 0x02f522e6, 0x012fc995, 0x02caa3ba, 0x0378b362, 0x02a4c7b6, 0x002b3c13}}},
+ {X: Field{[10]uint32{0x02c0b572, 0x03b55e5d, 0x01eb8b7a, 0x03752ca1, 0x0179c9f7, 0x0023dce2, 0x00439fa1, 0x0071e5d6, 0x038013d0, 0x001bb13b}}, Y: Field{[10]uint32{0x0098be7e, 0x006e8bf2, 0x004df13c, 0x01abd7cf, 0x017a6d26, 0x03adabc5, 0x026560e3, 0x03b37c0e, 0x0242e618, 0x0008ca39}}},
+ {X: Field{[10]uint32{0x0377141b, 0x0249127b, 0x027ba884, 0x020713b5, 0x034c40a5, 0x029da1a0, 0x000fc149, 0x01ec6940, 0x036b30c2, 0x00363687}}, Y: Field{[10]uint32{0x01519758, 0x00ecd20b, 0x007dc49a, 0x0385c9ca, 0x03d92464, 0x00e4e1f5, 0x038c3108, 0x024b3c0a, 0x02d6876d, 0x00332d4c}}},
+ {X: Field{[10]uint32{0x037ccb90, 0x03b458a3, 0x022b4e5f, 0x01b0ce1c, 0x026894d3, 0x032a1287, 0x02aa9f0e, 0x01c3b259, 0x00027349, 0x00213c95}}, Y: Field{[10]uint32{0x035cd8b1, 0x0308648c, 0x02944983, 0x00df4e51, 0x0109bee1, 0x027c18c6, 0x017d283d, 0x018c0b32, 0x0109f07e, 0x003cb5ff}}},
+ {X: Field{[10]uint32{0x029503e3, 0x02cb7733, 0x00038136, 0x03533c02, 0x033adabf, 0x00761bfd, 0x01190e39, 0x010dca16, 0x02b55887, 0x003bd9d4}}, Y: Field{[10]uint32{0x03131c56, 0x00567e0f, 0x010f91e6, 0x0391850e, 0x0273f949, 0x02373e63, 0x03aa6759, 0x02d1e5f2, 0x0250013c, 0x0008f672}}},
+ {X: Field{[10]uint32{0x0085ba6d, 0x02f0b004, 0x02a46602, 0x01d3f845, 0x00fe198f, 0x01df1ddb, 0x001cb52c, 0x0399f3d9, 0x01903b3f, 0x003e2361}}, Y: Field{[10]uint32{0x0208742d, 0x001fedee, 0x03a32405, 0x028a39b3, 0x0021da61, 0x0377c539, 0x0295714c, 0x02b5a28d, 0x02bd2178, 0x00162bca}}},
+ {X: Field{[10]uint32{0x01b9c01c, 0x037805cb, 0x01354645, 0x03543457, 0x0218cde6, 0x0177b5f4, 0x01daaa8c, 0x02e5719d, 0x01bdd366, 0x0024edce}}, Y: Field{[10]uint32{0x01cf3627, 0x02e21b89, 0x03fb4748, 0x03c71f22, 0x017afea5, 0x02b83f2b, 0x03af5b96, 0x023aa98c, 0x01356c2f, 0x000093b1}}},
+ {X: Field{[10]uint32{0x00443394, 0x00fc88c0, 0x00f95d41, 0x02496260, 0x006d313b, 0x02030455, 0x0382f801, 0x03968b6f, 0x0004da7a, 0x001ccb3d}}, Y: Field{[10]uint32{0x01596953, 0x035e2693, 0x01e431b7, 0x021054f2, 0x02e88200, 0x029dded5, 0x02eae580, 0x02e42a40, 0x03261758, 0x002163a0}}},
+ {X: Field{[10]uint32{0x01d36e32, 0x0296652a, 0x02f7528e, 0x00ad6f92, 0x0365fc25, 0x006e0e2d, 0x002e024a, 0x0000b4fe, 0x03192c40, 0x003bf781}}, Y: Field{[10]uint32{0x01d9107b, 0x00be034f, 0x01483f0c, 0x02d5a751, 0x03b8dd69, 0x020ea71b, 0x02635851, 0x00d5da46, 0x035c3a15, 0x00227074}}},
+ {X: Field{[10]uint32{0x02c90a15, 0x03764307, 0x034a6b42, 0x016e6c69, 0x02f114e6, 0x02a542f6, 0x0020c1cd, 0x00ce49d9, 0x02f28069, 0x0027bb6a}}, Y: Field{[10]uint32{0x03164de2, 0x022e81f4, 0x035337de, 0x03842b0e, 0x0226f427, 0x0134a314, 0x009728da, 0x010334c9, 0x00247fa5, 0x0004e677}}},
+ {X: Field{[10]uint32{0x01433195, 0x034f5086, 0x017dd877, 0x031f52e8, 0x03775805, 0x03f6d21f, 0x01eaafeb, 0x028851a7, 0x028d342a, 0x0008fc3a}}, Y: Field{[10]uint32{0x03699b03, 0x02ff5182, 0x0306e4fc, 0x030e79f0, 0x0163444d, 0x0353a4f0, 0x032ca8d1, 0x02071574, 0x0231d2a4, 0x0037071b}}},
+ {X: Field{[10]uint32{0x03e060b8, 0x032ddbaa, 0x0052c074, 0x003538cc, 0x02edd47c, 0x01a8c174, 0x0116e827, 0x02798162, 0x027058c2, 0x00003614}}, Y: Field{[10]uint32{0x010cfac8, 0x03f69baf, 0x012583a2, 0x02da2a68, 0x0384d497, 0x027a9264, 0x009e5105, 0x016ee57b, 0x0104e4db, 0x00268392}}},
+ {X: Field{[10]uint32{0x009f28b8, 0x02411acc, 0x0363ad4d, 0x00ddeacd, 0x00f7d36b, 0x0033ce18, 0x022d2d19, 0x00481164, 0x015cccf9, 0x0006cd32}}, Y: Field{[10]uint32{0x0151e948, 0x0128478a, 0x0008f6f1, 0x03a246ed, 0x01f7080d, 0x0181f2d3, 0x0078c3d2, 0x0198ead9, 0x020c3f5f, 0x001c308c}}},
+ {X: Field{[10]uint32{0x0384b228, 0x02851cd2, 0x028c28fc, 0x00d85263, 0x0289569d, 0x03c41c1e, 0x016d4e20, 0x0165aedd, 0x03dcae5e, 0x000c9563}}, Y: Field{[10]uint32{0x02038d86, 0x0241be45, 0x03cfb501, 0x0381d2db, 0x01fe63f6, 0x0356ab36, 0x03978c43, 0x01d56ec8, 0x00b75ed5, 0x001dd66a}}},
+ {X: Field{[10]uint32{0x01984acd, 0x032c7a37, 0x02bf8577, 0x03b3e8f5, 0x016028d7, 0x00102bef, 0x01a38202, 0x02f15ce4, 0x037737d2, 0x00192062}}, Y: Field{[10]uint32{0x01ca2300, 0x001d225c, 0x03e1f057, 0x03b29c99, 0x012cf895, 0x0298c12f, 0x027b8914, 0x01553648, 0x01346ae9, 0x001080ae}}},
+ {X: Field{[10]uint32{0x0177b333, 0x00b61f63, 0x031aae57, 0x0015cb86, 0x01bcd337, 0x010a2154, 0x02a23732, 0x01f2d50a, 0x02c6ec2d, 0x0031abda}}, Y: Field{[10]uint32{0x02c78cbf, 0x031f36b7, 0x023529fc, 0x022e17c8, 0x015d5af1, 0x034101fb, 0x02393bcd, 0x028b7c63, 0x01594ae5, 0x003fff95}}},
+ {X: Field{[10]uint32{0x00f1cef0, 0x00378fa9, 0x02f13a8b, 0x00d0a3ba, 0x002e7a9e, 0x03ccbf51, 0x022a0317, 0x004be03e, 0x004494ea, 0x00247e3f}}, Y: Field{[10]uint32{0x0154dbcf, 0x03fdb669, 0x02a42481, 0x0097aba8, 0x03e76c22, 0x003309ab, 0x02765f42, 0x007742b1, 0x007ad81b, 0x0001a829}}},
+ {X: Field{[10]uint32{0x01c1c017, 0x00ff1084, 0x016c8e35, 0x01848cd7, 0x02dc610a, 0x030056d1, 0x01b081fd, 0x03d5f21e, 0x01fa6a26, 0x0038566a}}, Y: Field{[10]uint32{0x013e8851, 0x0126beaa, 0x010b6bd7, 0x031f2a07, 0x00f1c181, 0x013077cb, 0x01656f9b, 0x0380269d, 0x0243445a, 0x00308271}}},
+ {X: Field{[10]uint32{0x00f9330b, 0x02fae969, 0x01813556, 0x01a6e279, 0x031a7051, 0x001b4a0f, 0x011eda9c, 0x00ea5c48, 0x005e135f, 0x003a3a7f}}, Y: Field{[10]uint32{0x01af0abb, 0x02c4353a, 0x01553fe0, 0x02e7cff1, 0x01c88423, 0x03c7912d, 0x03b55fa6, 0x03a3db69, 0x00993b73, 0x003a2e5a}}},
+ {X: Field{[10]uint32{0x000edead, 0x010d4daf, 0x035b1642, 0x0062bbbe, 0x0011aa98, 0x004ce12d, 0x0027ec6e, 0x013030db, 0x0129d5ae, 0x003cfd75}}, Y: Field{[10]uint32{0x033d34b9, 0x016f9876, 0x02ae533f, 0x00190f94, 0x021dd1e3, 0x03f1782a, 0x01abbc4f, 0x0304ccd1, 0x02431e40, 0x000fdd01}}},
+ {X: Field{[10]uint32{0x00c81159, 0x013db5db, 0x0206a02e, 0x01727285, 0x0209eae6, 0x00505d80, 0x039acffe, 0x02ee6b86, 0x0030f5d8, 0x00316dd9}}, Y: Field{[10]uint32{0x032429c1, 0x03a1b633, 0x00fad0d2, 0x00ce6800, 0x0229b139, 0x02454e02, 0x00875916, 0x02426090, 0x03097008, 0x00201a27}}},
+ {X: Field{[10]uint32{0x00fc09b0, 0x01442703, 0x00261e93, 0x0191ca25, 0x00ff2755, 0x03edb6d4, 0x02d30c9f, 0x0241d117, 0x00b434f5, 0x002552a9}}, Y: Field{[10]uint32{0x0072e4ad, 0x01974f43, 0x00ec5832, 0x01ba029c, 0x03a808b7, 0x00ec3f3c, 0x0176be8b, 0x00b095b3, 0x02861bad, 0x002008f2}}},
+ {X: Field{[10]uint32{0x023d528b, 0x03c4cd5b, 0x00249d6d, 0x01512eed, 0x021b96ee, 0x002960cd, 0x020c9b93, 0x03cce4c0, 0x00bb4803, 0x0001576a}}, Y: Field{[10]uint32{0x02e5b64c, 0x03bdf38c, 0x02575799, 0x0134d568, 0x002387b1, 0x02805e17, 0x00bb209d, 0x03a7d61b, 0x0388ca06, 0x00373112}}},
+ {X: Field{[10]uint32{0x03a1de03, 0x01fe2ee8, 0x0236877a, 0x02f285db, 0x01db59ea, 0x0098ad38, 0x02d48d3d, 0x02ca1ac2, 0x0000d810, 0x0020213a}}, Y: Field{[10]uint32{0x03dc1480, 0x0223f118, 0x00f85e08, 0x02b3acd2, 0x00070d60, 0x02f17e60, 0x0309c129, 0x0197f027, 0x029c59f8, 0x00362fba}}},
+ {X: Field{[10]uint32{0x0318b39b, 0x03be9055, 0x00bd7f85, 0x005ec030, 0x03d15e02, 0x00252526, 0x00f49a15, 0x01fe21d2, 0x02c236c8, 0x0006caed}}, Y: Field{[10]uint32{0x01029c74, 0x006b4514, 0x001dc810, 0x00b02c3a, 0x00c3c3f4, 0x01afaa69, 0x03dd0180, 0x03cdbbc6, 0x01956aad, 0x0008592c}}},
+ {X: Field{[10]uint32{0x00377872, 0x0368e295, 0x02d84830, 0x03667e46, 0x01de9139, 0x034bfafb, 0x01c65ce3, 0x030dcb97, 0x03e80125, 0x003ee9a1}}, Y: Field{[10]uint32{0x03e001c9, 0x00fb049c, 0x03f83092, 0x03c95fd2, 0x0355aabb, 0x0016a584, 0x00a7a821, 0x02540729, 0x02df03b8, 0x0022513a}}},
+ {X: Field{[10]uint32{0x01560cbd, 0x038b7fbf, 0x03a948aa, 0x017bc246, 0x03d21e15, 0x0168b5e5, 0x00699c97, 0x0305bfe7, 0x0380a5f1, 0x002d6392}}, Y: Field{[10]uint32{0x02cec3ec, 0x02944a14, 0x02fec937, 0x01f64097, 0x0304606f, 0x00b5aaa5, 0x031b7f41, 0x02fe9b95, 0x02ba1429, 0x003ffe72}}},
+ {X: Field{[10]uint32{0x0026edec, 0x03c5f38d, 0x02900fce, 0x01f2750e, 0x00114fdb, 0x00171af9, 0x0222551e, 0x01b08554, 0x0126da5d, 0x0023af35}}, Y: Field{[10]uint32{0x013aa97e, 0x01f7e194, 0x0021eae9, 0x00d2bbb7, 0x03de11f0, 0x014bd519, 0x02aafb1a, 0x0006d8fa, 0x03986b33, 0x001ce83e}}},
+ {X: Field{[10]uint32{0x03ee325e, 0x0159a446, 0x00d2dbb9, 0x00c99010, 0x037354e0, 0x025c5526, 0x01c68f0e, 0x00a7a257, 0x000b924b, 0x003ee915}}, Y: Field{[10]uint32{0x0105ebd4, 0x039bd464, 0x0321b6c9, 0x009c5bd4, 0x02290f3c, 0x0394a10e, 0x02ba0d07, 0x015eb8d0, 0x00c33b98, 0x0014a422}}},
+ {X: Field{[10]uint32{0x039c44de, 0x01bd3a2f, 0x025b0ab4, 0x025d946c, 0x02ce014c, 0x01bcfcdb, 0x006301a6, 0x034c91b6, 0x0097a1a7, 0x0022de8b}}, Y: Field{[10]uint32{0x00b247c7, 0x00ca3f69, 0x017b94cb, 0x02110ff0, 0x027c88a6, 0x007a9d4d, 0x006c1f47, 0x00d6cd9e, 0x00ab699c, 0x002e0a15}}},
+ {X: Field{[10]uint32{0x02d2279c, 0x00e6963a, 0x0096f40c, 0x01dd2f52, 0x03931796, 0x006ea426, 0x0003bbba, 0x01c5539c, 0x03435adb, 0x00277c45}}, Y: Field{[10]uint32{0x01b884eb, 0x03c866d0, 0x02f8377e, 0x019775e8, 0x01d45668, 0x01eae190, 0x02913d6e, 0x0330db0d, 0x034ea216, 0x0029e48b}}},
+ {X: Field{[10]uint32{0x02931cd8, 0x02b6b915, 0x03e9e414, 0x005707e6, 0x02c54b62, 0x01cc5224, 0x02fd9e73, 0x0111320b, 0x0384749b, 0x0016fade}}, Y: Field{[10]uint32{0x03abb95c, 0x0183a6cb, 0x01f7b64f, 0x03f3ad47, 0x03d32b7c, 0x03cc23bf, 0x02753fbf, 0x0029f0a3, 0x025f32cd, 0x00026790}}},
+ {X: Field{[10]uint32{0x00788879, 0x004abd93, 0x02f43cd5, 0x01745c19, 0x01c9f8ed, 0x028edec2, 0x005114f4, 0x0012e9e3, 0x00430ff2, 0x000aa0c3}}, Y: Field{[10]uint32{0x02666c84, 0x02588c18, 0x0286561e, 0x00267b90, 0x009ba148, 0x0081fac0, 0x02827fed, 0x00994bae, 0x03a4e888, 0x00004948}}},
+ {X: Field{[10]uint32{0x0057486a, 0x02488787, 0x014191b6, 0x00500670, 0x00985a77, 0x0334cb65, 0x00ab408b, 0x00a8639a, 0x02a14c1f, 0x003dc691}}, Y: Field{[10]uint32{0x00534875, 0x01d6db48, 0x00f0aef6, 0x00feca07, 0x034fac44, 0x03303683, 0x00ce36a4, 0x02694d3f, 0x033e0ea7, 0x002b7c66}}},
+ {X: Field{[10]uint32{0x029d193b, 0x010da9f1, 0x012fdcb6, 0x02acdb10, 0x00bbad2b, 0x01f58f03, 0x00ae2d9f, 0x00acc59e, 0x01dcaa9c, 0x000ae039}}, Y: Field{[10]uint32{0x022119c3, 0x00875880, 0x00ffa276, 0x00670821, 0x038f3c90, 0x0141891e, 0x001ce04c, 0x00018ada, 0x004d71d6, 0x002f20f8}}},
+ {X: Field{[10]uint32{0x023beece, 0x0148d739, 0x01d5bb97, 0x00300f11, 0x0175424a, 0x011124d0, 0x0375b58d, 0x031a71a0, 0x033be521, 0x001272f7}}, Y: Field{[10]uint32{0x0062de7f, 0x01b12697, 0x017a8ae4, 0x03c558e6, 0x0291d260, 0x00e84dab, 0x0356abad, 0x039f3b0d, 0x02eaf0f0, 0x00315857}}},
+ {X: Field{[10]uint32{0x029ee1b2, 0x016e8c73, 0x0373979c, 0x00ee72a1, 0x03f7aa66, 0x03741c3d, 0x015e2f31, 0x02c45648, 0x0314b643, 0x00339351}}, Y: Field{[10]uint32{0x02feac38, 0x023f76c7, 0x010aad6f, 0x02d08030, 0x00479745, 0x0188406c, 0x0359ef5e, 0x00ea8d36, 0x0212a2fc, 0x002c7cd7}}},
+ {X: Field{[10]uint32{0x01e10054, 0x00b53758, 0x01656299, 0x01e7b5f1, 0x01a8bef4, 0x03562071, 0x013bb1b5, 0x016b0e36, 0x02bbaa90, 0x001a09ed}}, Y: Field{[10]uint32{0x016bb869, 0x03e3b3ca, 0x0064d1af, 0x009dfbc8, 0x0030fc37, 0x016007d5, 0x00484279, 0x00083646, 0x007baf65, 0x0021492a}}},
+ {X: Field{[10]uint32{0x0056535f, 0x03d2b460, 0x0112519a, 0x0062c5b7, 0x00ab9472, 0x000e9268, 0x037879aa, 0x035fc71e, 0x00d548f4, 0x00039c79}}, Y: Field{[10]uint32{0x0232f574, 0x006ece03, 0x01c09f0d, 0x01a0f7b4, 0x0383aeed, 0x02d72604, 0x03e3beda, 0x02cf55bd, 0x00617098, 0x00125741}}},
+ {X: Field{[10]uint32{0x0200e032, 0x00199f1b, 0x02542632, 0x005a1cf3, 0x00656528, 0x00ffb69a, 0x036aa32a, 0x03ecc350, 0x01797429, 0x003bda0e}}, Y: Field{[10]uint32{0x0134613f, 0x028d8d41, 0x01404fbb, 0x001bc053, 0x0002f175, 0x006229ab, 0x01ed846f, 0x025fa03f, 0x024ade11, 0x002d2c63}}},
+ {X: Field{[10]uint32{0x012deaf4, 0x0162c0f9, 0x0245b0a2, 0x00db07b1, 0x01dd557e, 0x038bbb61, 0x008007d0, 0x01fbffa4, 0x01c1ac8f, 0x000031ca}}, Y: Field{[10]uint32{0x021305fe, 0x01fafd15, 0x00f27bde, 0x02242b0e, 0x0312365b, 0x00cd6821, 0x02bade6a, 0x013dab17, 0x01c21858, 0x000ba0fb}}},
+ {X: Field{[10]uint32{0x015735ab, 0x031fec44, 0x0288cc1c, 0x03088492, 0x01290d54, 0x02b8b7b4, 0x03c4f2c3, 0x01b54eca, 0x01199a71, 0x0033c74e}}, Y: Field{[10]uint32{0x0100e6e6, 0x02dc35b7, 0x029089b7, 0x03bab550, 0x03c276c8, 0x02ae14e2, 0x0180970d, 0x0100b3a2, 0x01a57ec3, 0x001ad13d}}},
+ {X: Field{[10]uint32{0x03ecdeae, 0x03582696, 0x00f55cf9, 0x01ffe0b6, 0x01a9c28a, 0x03a4369d, 0x031f772e, 0x03b8a3cf, 0x03a0266d, 0x001b3cf5}}, Y: Field{[10]uint32{0x01bc58d4, 0x037ebad2, 0x01e14034, 0x02d3113b, 0x00ede5c9, 0x0366a66f, 0x01b9cf94, 0x03338a25, 0x03b31e11, 0x000ef463}}},
+ {X: Field{[10]uint32{0x01395542, 0x01d2701f, 0x00be7f28, 0x02bb3e0c, 0x0256393c, 0x0002ba4c, 0x02e4274f, 0x03bb2b37, 0x0032ae63, 0x003692d6}}, Y: Field{[10]uint32{0x01b2210b, 0x03220633, 0x00ec4dfe, 0x038c6da5, 0x02106374, 0x005a12e4, 0x01610c9d, 0x0103c605, 0x023bd2d9, 0x0026aaec}}},
+ {X: Field{[10]uint32{0x0330bbfa, 0x0357de90, 0x002d4b8a, 0x0043a561, 0x03407d1a, 0x03a8b1af, 0x0063270c, 0x00385be7, 0x03502321, 0x003e46b8}}, Y: Field{[10]uint32{0x013aa1c2, 0x00421ae4, 0x01e161b5, 0x010ccd94, 0x0153c915, 0x034f46bc, 0x029290ef, 0x0095cd65, 0x01acd196, 0x00007c58}}},
+ {X: Field{[10]uint32{0x02f1ac02, 0x021d2cbc, 0x0025556c, 0x01cfe872, 0x02c72e3f, 0x01cca149, 0x0047c862, 0x00a8b916, 0x0352cc3e, 0x001f86fb}}, Y: Field{[10]uint32{0x02f6e6fe, 0x0305e1f9, 0x017f44c4, 0x008fba36, 0x0008ff05, 0x003f13d4, 0x03048fee, 0x03934f6d, 0x037ea706, 0x002f92c3}}},
+ {X: Field{[10]uint32{0x03d5998f, 0x03f20534, 0x020ecb27, 0x03c52f9c, 0x03706567, 0x03724bad, 0x00e256cc, 0x00bb8dd2, 0x015d30dc, 0x0003749a}}, Y: Field{[10]uint32{0x032dc74f, 0x000a8668, 0x0396ed1a, 0x0103c3c2, 0x01bba677, 0x01151cad, 0x027cf998, 0x02004e7b, 0x0044f102, 0x0026bccb}}},
+ {X: Field{[10]uint32{0x009dbb9d, 0x002ccdd9, 0x037c94d2, 0x02550fec, 0x02125fe3, 0x00ceddb6, 0x02602ba0, 0x018f2344, 0x02507147, 0x001e3eb9}}, Y: Field{[10]uint32{0x03ce3aa6, 0x0388d46f, 0x00ce121d, 0x00c81989, 0x00c3b925, 0x02bc7fa9, 0x01826e5e, 0x03339bd9, 0x000f0726, 0x001e3713}}},
+ {X: Field{[10]uint32{0x01c98bd5, 0x02498da3, 0x018dfee6, 0x02e16476, 0x021b6fb6, 0x0005ad16, 0x01d3e00d, 0x01774aa8, 0x021e510e, 0x0007b7d4}}, Y: Field{[10]uint32{0x01311f86, 0x02369055, 0x00a59751, 0x034d8efb, 0x00aeafd8, 0x006ac3c8, 0x034d8177, 0x026e3743, 0x016d9b2e, 0x00268340}}},
+ {X: Field{[10]uint32{0x00101d39, 0x01aa8634, 0x02b4d416, 0x0250dd58, 0x007ce286, 0x00f31a79, 0x013272cd, 0x02d82e45, 0x030c5e53, 0x002181ee}}, Y: Field{[10]uint32{0x02eb519a, 0x0159b565, 0x00e988ef, 0x015c9e49, 0x02388707, 0x01922be3, 0x01a294aa, 0x0195070d, 0x031ec83c, 0x00005728}}},
+ {X: Field{[10]uint32{0x02d02eab, 0x02d97de5, 0x02df7166, 0x001e44bc, 0x03037f96, 0x010ae6ed, 0x020dbb7c, 0x000fde02, 0x000d9a05, 0x00197f4c}}, Y: Field{[10]uint32{0x02a3b5d9, 0x02e4a2d3, 0x00aa5335, 0x00f3513b, 0x02904caf, 0x03dad0fc, 0x03945401, 0x02a14847, 0x035084fb, 0x003f3454}}},
+ {X: Field{[10]uint32{0x0002d148, 0x03c51633, 0x03f99f47, 0x02a4cc24, 0x0336d031, 0x01332fac, 0x01845f03, 0x01f38700, 0x03a76c84, 0x0032462c}}, Y: Field{[10]uint32{0x03728568, 0x00eb7f5f, 0x00eb53ed, 0x02772a17, 0x02059632, 0x03ea9b98, 0x00632700, 0x00b880c8, 0x0003dbbb, 0x003c95bd}}},
+ {X: Field{[10]uint32{0x01661817, 0x014ab381, 0x03bb5c13, 0x03536f82, 0x01532e54, 0x0102b783, 0x02cb4291, 0x02e1e42f, 0x00fd02f0, 0x001ab0b7}}, Y: Field{[10]uint32{0x029e2af3, 0x02ab8592, 0x026dccca, 0x038c1811, 0x03784c3d, 0x01c89470, 0x0323074e, 0x00e5b16b, 0x0310abf9, 0x003cb098}}},
+ {X: Field{[10]uint32{0x033f3d19, 0x02ffcbf2, 0x0295f5b0, 0x02a517da, 0x02cf8e95, 0x017facac, 0x0239b94b, 0x03ce273b, 0x00ee54ac, 0x00235c71}}, Y: Field{[10]uint32{0x031ce52d, 0x01d611c3, 0x00cb6548, 0x015e26d1, 0x03f0bc88, 0x00cc1840, 0x03a3881e, 0x030711f6, 0x03d95a02, 0x0026110a}}},
+ {X: Field{[10]uint32{0x00f583c3, 0x03b84911, 0x03072b3d, 0x01a2a426, 0x002e5d73, 0x01447a1d, 0x000abbb0, 0x01c463cb, 0x00d3fd55, 0x003a2f49}}, Y: Field{[10]uint32{0x03ce6538, 0x02c6fc22, 0x0343a4d4, 0x016b3583, 0x02238028, 0x01c59167, 0x037992a6, 0x008b6d96, 0x03a6e286, 0x003874b0}}},
+ {X: Field{[10]uint32{0x00075217, 0x01c9568f, 0x011d032d, 0x0092acab, 0x00483fd0, 0x00c478ed, 0x02c8c516, 0x033e2794, 0x01755cf8, 0x0018b70a}}, Y: Field{[10]uint32{0x000e2a97, 0x0247e3d7, 0x00d1e093, 0x02a523cf, 0x018b3fc8, 0x00255094, 0x0301e9cd, 0x008b6383, 0x0132d80d, 0x0001e678}}},
+ {X: Field{[10]uint32{0x004c0e13, 0x014125b5, 0x01451a60, 0x013d9aa5, 0x034d4323, 0x031f4f01, 0x01027099, 0x01f9832c, 0x03aacf72, 0x000df6c4}}, Y: Field{[10]uint32{0x01b1066b, 0x0090cd22, 0x02fb0629, 0x01b7427a, 0x02d3402a, 0x0004e87d, 0x02e9d07e, 0x03bfd065, 0x03be8f8c, 0x00030e0e}}},
+ {X: Field{[10]uint32{0x032aa1ab, 0x01d6cc3e, 0x02c39378, 0x00e49a67, 0x01be9dc4, 0x01cbc77c, 0x018e17c4, 0x01c67b21, 0x0365eab7, 0x000defed}}, Y: Field{[10]uint32{0x01721364, 0x014d58f4, 0x00eea23b, 0x017419bc, 0x025cf44b, 0x022be329, 0x0135f4a9, 0x031308be, 0x03fd865d, 0x001c9c62}}},
+ {X: Field{[10]uint32{0x005d1b94, 0x02e914aa, 0x0145606d, 0x03f84803, 0x03b5d5c3, 0x01885229, 0x01ba6e1f, 0x02fcd57f, 0x021287fc, 0x0010cfb7}}, Y: Field{[10]uint32{0x0357c20e, 0x01765251, 0x02e60571, 0x01f1ebb9, 0x01137a4c, 0x00f8c1e0, 0x030c9591, 0x0144eca3, 0x0213ad6e, 0x002c9f15}}},
+ {X: Field{[10]uint32{0x02671861, 0x02695f4f, 0x03b323af, 0x0342e2c9, 0x02d23295, 0x02adf7d1, 0x021917f6, 0x00379a4a, 0x019fc5ed, 0x0003960b}}, Y: Field{[10]uint32{0x00073154, 0x0077bff5, 0x01fd6557, 0x01cc6de3, 0x01d1c9e0, 0x021b2c74, 0x039faa53, 0x0036f5f9, 0x0385e277, 0x000cfba1}}},
+ {X: Field{[10]uint32{0x009442c2, 0x00a18013, 0x0189e4e4, 0x000529a8, 0x02ad8fae, 0x003c1ab7, 0x02d4e5da, 0x03c56bb8, 0x0340634b, 0x00182c1e}}, Y: Field{[10]uint32{0x004b283d, 0x00466c6f, 0x00f37ff2, 0x027295ec, 0x011557f2, 0x02362ab1, 0x034a2cd6, 0x010ee98a, 0x03cd00d2, 0x003fb821}}},
+ {X: Field{[10]uint32{0x01e03100, 0x0196b4cb, 0x009b2102, 0x029f38df, 0x02643e6d, 0x01ba23ee, 0x0245e35b, 0x03df2828, 0x027601e5, 0x0012c59c}}, Y: Field{[10]uint32{0x02d8dde7, 0x024324e3, 0x00a6473b, 0x00aed8c5, 0x00cacda0, 0x03547c57, 0x0126c1dc, 0x021f8243, 0x03024768, 0x000a2ab3}}},
+ {X: Field{[10]uint32{0x022a3170, 0x034be6ff, 0x027b2a17, 0x03853b53, 0x02fab97d, 0x026a22b8, 0x0003e638, 0x01f9d312, 0x013d6d79, 0x00175584}}, Y: Field{[10]uint32{0x01cd524f, 0x00ac79f6, 0x033abee4, 0x024b8b65, 0x02c65459, 0x03acacd3, 0x02462a27, 0x02cbfe98, 0x02a8534e, 0x000253bc}}},
+ {X: Field{[10]uint32{0x0234f828, 0x02cf418e, 0x03a7ee38, 0x0363ca37, 0x03f4a06c, 0x03a3111c, 0x01572878, 0x006b6344, 0x03ae7511, 0x002a740f}}, Y: Field{[10]uint32{0x03517881, 0x0347e54c, 0x0262e4d9, 0x02d31f78, 0x03480c94, 0x01a3daea, 0x02665bf9, 0x0261e4b2, 0x000cc731, 0x00281ccf}}},
+ {X: Field{[10]uint32{0x020e1ad5, 0x0157c959, 0x00522508, 0x0058599b, 0x0058fd37, 0x02cfdf9c, 0x00db3b77, 0x02f3a7b5, 0x01712b1a, 0x001d0665}}, Y: Field{[10]uint32{0x00da44db, 0x019ef640, 0x0385f22b, 0x03062ab0, 0x00ea3ef2, 0x009c9800, 0x013b8a32, 0x01d6273f, 0x02a8097f, 0x001c432b}}},
+ {X: Field{[10]uint32{0x01918dc8, 0x02ae5bc9, 0x00be7cab, 0x03cab31a, 0x02ba0106, 0x0119cf85, 0x03a1e5f8, 0x0296c7ba, 0x010dbf81, 0x0027c5a6}}, Y: Field{[10]uint32{0x00ebc4f5, 0x01962314, 0x007b0f0b, 0x03c7a996, 0x03135d46, 0x000e01aa, 0x0049d39c, 0x004108d3, 0x007b6232, 0x00035835}}},
+ {X: Field{[10]uint32{0x0301d57d, 0x01c302c8, 0x00619b6a, 0x03d322c9, 0x03c99143, 0x02af4569, 0x011c888f, 0x02e69eb6, 0x01bc4f12, 0x000ed41a}}, Y: Field{[10]uint32{0x01dd1a79, 0x020a31ff, 0x035a8979, 0x013aa1ad, 0x02da1854, 0x02cc4759, 0x034ddfd4, 0x02a5127e, 0x00d1ae59, 0x0036ee1f}}},
+ {X: Field{[10]uint32{0x02baee90, 0x026e51b6, 0x01c68115, 0x035c26dd, 0x01f90cdc, 0x02feaecc, 0x03bf9afb, 0x028db82e, 0x03a967b5, 0x00277a98}}, Y: Field{[10]uint32{0x02bc4464, 0x019989f1, 0x01e57b8a, 0x03ae5353, 0x0305c7d2, 0x02460348, 0x01a605ce, 0x02e5638c, 0x019b11ba, 0x002c52ee}}},
+ {X: Field{[10]uint32{0x01e31e79, 0x0377d215, 0x03a188e0, 0x00b30cf0, 0x0309fe6b, 0x0104798e, 0x025cb534, 0x01aa1095, 0x03921da3, 0x00342c8c}}, Y: Field{[10]uint32{0x0374f8e9, 0x010d7943, 0x02a7515c, 0x01d90fed, 0x02991172, 0x00d42cec, 0x02f1cfcc, 0x01524b72, 0x03ea1a6e, 0x00203b64}}},
+ {X: Field{[10]uint32{0x00b03d20, 0x0205ece4, 0x01da552c, 0x0323dc44, 0x03acfe85, 0x03d1078f, 0x00ca7a49, 0x03912fe6, 0x0255966a, 0x0022b725}}, Y: Field{[10]uint32{0x03c0021e, 0x0069b95c, 0x013b4eed, 0x019b6c6e, 0x005dd1d5, 0x024cdd0c, 0x00c80eac, 0x01cc4860, 0x014c6a71, 0x00339c81}}},
+ {X: Field{[10]uint32{0x020c1670, 0x0059c987, 0x03fe3ec9, 0x00438b84, 0x02141ac6, 0x00062929, 0x00800b6d, 0x00f7a9c0, 0x03f8cf6d, 0x003dbdda}}, Y: Field{[10]uint32{0x039a302c, 0x0070e54f, 0x01a54e24, 0x03dd9913, 0x0263e4fe, 0x01ace93b, 0x025e2a10, 0x0261da63, 0x00afe1ea, 0x002cb11e}}},
+ {X: Field{[10]uint32{0x00b898e5, 0x00f61bc5, 0x039fef87, 0x0235b697, 0x03217638, 0x01cece44, 0x00fcaa18, 0x0368c05d, 0x007d38b7, 0x0003560a}}, Y: Field{[10]uint32{0x02fc8402, 0x00ba7b1a, 0x005ee350, 0x03d58795, 0x03da2b8f, 0x0052b433, 0x018f91d1, 0x00217a0c, 0x013469ed, 0x001e17f2}}},
+ {X: Field{[10]uint32{0x01a3661c, 0x02fd9d0e, 0x0354a02f, 0x0047d2e0, 0x01538e3d, 0x0361c0b0, 0x03e810c6, 0x03b9567f, 0x022350c5, 0x001ddcb2}}, Y: Field{[10]uint32{0x006edddb, 0x036690da, 0x00d6c931, 0x02a2b87f, 0x03fe3dd3, 0x00fa6393, 0x008aefb2, 0x0368516d, 0x02de853f, 0x001688c4}}},
+ {X: Field{[10]uint32{0x02433ad5, 0x01c177dc, 0x02308069, 0x00f9dab7, 0x0046ce90, 0x03f0fecb, 0x010ac95e, 0x00da1deb, 0x0176c50f, 0x0028be7e}}, Y: Field{[10]uint32{0x00c285f3, 0x03c15bf2, 0x0238a22a, 0x012da2be, 0x01f201dd, 0x03e35d11, 0x0211b22b, 0x0227ccd7, 0x031124c2, 0x003b1594}}},
+ {X: Field{[10]uint32{0x038b15f7, 0x0086a013, 0x0211bcb2, 0x019ad4b3, 0x0026fce1, 0x02b49c44, 0x010ec165, 0x03159c93, 0x036585f8, 0x00388365}}, Y: Field{[10]uint32{0x018f33fb, 0x01753766, 0x0031bfc8, 0x008059ab, 0x0321d082, 0x01aaed52, 0x0348b6bc, 0x00e18a62, 0x0133c7f6, 0x0018ed86}}},
+ {X: Field{[10]uint32{0x00ecc18f, 0x033b00eb, 0x0093e42d, 0x0222cafc, 0x03659ba6, 0x001b6c77, 0x0298d945, 0x00778b2f, 0x019d00ca, 0x00221a2d}}, Y: Field{[10]uint32{0x00f2fd0e, 0x005760ff, 0x03076e22, 0x0146bed4, 0x02dea562, 0x01493afd, 0x01dbfe84, 0x023ec014, 0x030796b9, 0x003c0ba6}}},
+ {X: Field{[10]uint32{0x01fb677c, 0x01606e22, 0x016a43f8, 0x0099e09b, 0x0099c832, 0x029afc3a, 0x005f86b9, 0x004d869e, 0x002fe32a, 0x0004267e}}, Y: Field{[10]uint32{0x0044445b, 0x03cdf627, 0x01aac7fc, 0x01866bfa, 0x02cd2d3e, 0x024bab11, 0x0320cd35, 0x03c9c4b3, 0x03f29aa7, 0x0004fee0}}},
+ {X: Field{[10]uint32{0x01cbeea3, 0x00147d0d, 0x01d31ef2, 0x032bb8b5, 0x03deae65, 0x032986c9, 0x03329698, 0x039ecd7d, 0x029677ec, 0x0012be71}}, Y: Field{[10]uint32{0x024e5ef0, 0x00420999, 0x006985b2, 0x025a04c3, 0x00ebfe51, 0x00910229, 0x02e3f80a, 0x02a5dbe5, 0x0196429d, 0x001cc011}}},
+ {X: Field{[10]uint32{0x03dab473, 0x00ed50d5, 0x02045edb, 0x022f45bb, 0x01300d1f, 0x01c4f2ae, 0x02d4bbe8, 0x02e2c0c8, 0x03ca5ace, 0x0025a032}}, Y: Field{[10]uint32{0x010df58a, 0x004c766f, 0x02aec0e9, 0x00f09e62, 0x006904ee, 0x0026ccf8, 0x014697c2, 0x02874bb3, 0x0140e36b, 0x000bca4e}}},
+ {X: Field{[10]uint32{0x03fae7c2, 0x036e6b89, 0x000ee4e2, 0x03eb5ba7, 0x023eb7fd, 0x00520324, 0x01c37203, 0x011fc17e, 0x003afd63, 0x001fbbf3}}, Y: Field{[10]uint32{0x035cac06, 0x023c42fe, 0x0357e973, 0x0276b3ac, 0x007bb93d, 0x01eec78a, 0x0353e421, 0x017051f1, 0x02754f74, 0x002e3a7e}}},
+ {X: Field{[10]uint32{0x039fddb4, 0x0351becb, 0x002fe98f, 0x0016c097, 0x01065e78, 0x02252557, 0x021fbf36, 0x004ae4d1, 0x0156d636, 0x0002e08c}}, Y: Field{[10]uint32{0x00bd465a, 0x02771604, 0x0360cdab, 0x031a8aa3, 0x00d0b537, 0x03a7ab75, 0x03453ebf, 0x03a47917, 0x017a826f, 0x003c8f14}}},
+ {X: Field{[10]uint32{0x01bdadd9, 0x005134e1, 0x002b44d5, 0x008ba246, 0x01bfb9de, 0x00b9d96a, 0x0178706e, 0x03f55248, 0x035e2035, 0x003a0074}}, Y: Field{[10]uint32{0x02956a26, 0x0186025d, 0x03478481, 0x0000fea9, 0x011c2162, 0x00678dea, 0x00868e04, 0x039bc206, 0x023427de, 0x00079920}}},
+ {X: Field{[10]uint32{0x01c67f3a, 0x0123d4b3, 0x01a1c2f3, 0x01402122, 0x0029fd77, 0x01fa243f, 0x00369e50, 0x0025a4a1, 0x010e56b7, 0x003a7518}}, Y: Field{[10]uint32{0x008e4a0e, 0x02a13fad, 0x02c1f7d9, 0x008895f0, 0x031df0e6, 0x03b9145a, 0x01bfca22, 0x020b868a, 0x02ac357d, 0x002397da}}},
+ {X: Field{[10]uint32{0x03b7609b, 0x0206bdb4, 0x028ff4a4, 0x022838d4, 0x00b94bae, 0x011a0021, 0x00d7aa09, 0x0377b8d0, 0x030f51d6, 0x001c70fb}}, Y: Field{[10]uint32{0x015f6b96, 0x03d5f8cc, 0x03ca4544, 0x0351264b, 0x03db6886, 0x02985690, 0x00adc4da, 0x021e8c4e, 0x00dc2f80, 0x0013459d}}},
+ {X: Field{[10]uint32{0x027d6f20, 0x02670392, 0x03947ce9, 0x020f055e, 0x0121aadb, 0x00e2aeb1, 0x038b44d9, 0x03107ef7, 0x0243b6f5, 0x002559f3}}, Y: Field{[10]uint32{0x03a35538, 0x0280084c, 0x00fe35e2, 0x0366cb79, 0x011fd0fd, 0x011730d7, 0x0247ca89, 0x028c6029, 0x0317031e, 0x00327618}}},
+ {X: Field{[10]uint32{0x02dcc141, 0x02c8ade3, 0x0163eb9d, 0x014c3f62, 0x014f8fc7, 0x00468648, 0x033de850, 0x019ce442, 0x014f8116, 0x000d148f}}, Y: Field{[10]uint32{0x0022ac90, 0x03a43121, 0x01ce77d6, 0x0213c9df, 0x02877bca, 0x009df62e, 0x000a0660, 0x0223ae6e, 0x01fe268b, 0x002403ee}}},
+ {X: Field{[10]uint32{0x03c1bd98, 0x002b5e78, 0x01278159, 0x03f2d873, 0x01f2993d, 0x0083973c, 0x034350bf, 0x010f7e8b, 0x037e5f1c, 0x001a7f47}}, Y: Field{[10]uint32{0x0051d7f3, 0x0327ce9b, 0x01615043, 0x008caf37, 0x0302d1c9, 0x0249de5c, 0x0315665a, 0x02502bb6, 0x02cf8b74, 0x0018cdc9}}},
+ {X: Field{[10]uint32{0x014a3de7, 0x021e2bfa, 0x03aa2a9f, 0x01d78c5f, 0x02411b2a, 0x02d3f1ae, 0x006dd39b, 0x02e3dcc5, 0x0024c28c, 0x003930b1}}, Y: Field{[10]uint32{0x0321ae89, 0x022a527a, 0x01158fcc, 0x023a6cef, 0x01c86137, 0x00814573, 0x02607398, 0x017bd236, 0x03e8468e, 0x003ee345}}},
+ {X: Field{[10]uint32{0x00e32773, 0x035ec78d, 0x019ea5de, 0x004c8984, 0x0398e445, 0x03125218, 0x01feb590, 0x005b4270, 0x019aada9, 0x0015c411}}, Y: Field{[10]uint32{0x023871bc, 0x00fb2939, 0x009f0738, 0x00abccfd, 0x02905bf1, 0x002a0d57, 0x016b4093, 0x00e96139, 0x01bdd2d8, 0x002277bb}}},
+ {X: Field{[10]uint32{0x03d48e64, 0x0085e81b, 0x01bc189b, 0x02a642e1, 0x0359a3a8, 0x01c406c9, 0x0017f913, 0x001b856b, 0x02d41718, 0x00355beb}}, Y: Field{[10]uint32{0x00a6652c, 0x00c511cd, 0x038c76d7, 0x01de9221, 0x01ebe439, 0x00da3d52, 0x02f513f5, 0x02cb5ad8, 0x02c33408, 0x003ea1c7}}},
+ {X: Field{[10]uint32{0x02599bcb, 0x014976ea, 0x003f7604, 0x004a0134, 0x00cb5cf0, 0x03b7e1f7, 0x0347be8e, 0x02016da2, 0x02ebda0b, 0x0039d05b}}, Y: Field{[10]uint32{0x01a56c19, 0x03d510ae, 0x01185bbc, 0x00dc4ec4, 0x03533d4f, 0x01f90c52, 0x03eb4c77, 0x0159f8c4, 0x0316f11c, 0x00218431}}},
+ {X: Field{[10]uint32{0x01fa997d, 0x03c581f5, 0x0175f2d5, 0x0291b980, 0x02a4fbfc, 0x00f38cb1, 0x00606081, 0x00d50647, 0x0062ebdd, 0x00232966}}, Y: Field{[10]uint32{0x037698f4, 0x0355a478, 0x031c6980, 0x03bbeab5, 0x01113dd6, 0x00ac5343, 0x01fa1950, 0x03fab1ab, 0x000fb132, 0x002abcd2}}},
+ {X: Field{[10]uint32{0x03243413, 0x02e9bc54, 0x0218172f, 0x0314a30a, 0x036eb8e4, 0x011b1480, 0x015867a8, 0x00ed1464, 0x00451fd4, 0x001925b7}}, Y: Field{[10]uint32{0x004da1f2, 0x01358939, 0x03e87cb1, 0x02f1722c, 0x03153fe2, 0x00a4b3c6, 0x00a281b9, 0x03267b80, 0x00410f85, 0x000113f7}}},
+ {X: Field{[10]uint32{0x01925a5d, 0x02cbf064, 0x035d6c9c, 0x008753a3, 0x0067d207, 0x032b3348, 0x00bc248d, 0x0105aa8e, 0x0063aa82, 0x000e9091}}, Y: Field{[10]uint32{0x02fa9fb2, 0x01e11922, 0x03ca9c31, 0x02fea949, 0x00d4857a, 0x01f206fc, 0x00775cb3, 0x0096450d, 0x0063fd24, 0x001c6959}}},
+ {X: Field{[10]uint32{0x0178c2e6, 0x01344274, 0x03418157, 0x0079ade1, 0x03881178, 0x02a17f98, 0x03f7985a, 0x014652b6, 0x030551d5, 0x001aa516}}, Y: Field{[10]uint32{0x0357ac44, 0x03a67fe6, 0x01d31924, 0x03c4c989, 0x0380df9a, 0x0099f289, 0x0021fc0d, 0x02a0d8c9, 0x003a1ca3, 0x00061b4d}}},
+ {X: Field{[10]uint32{0x02add47f, 0x03f5df4e, 0x008aac9f, 0x003adfe3, 0x0132baac, 0x031704ec, 0x027381b8, 0x0012dedf, 0x0292682d, 0x0004fc7d}}, Y: Field{[10]uint32{0x02e99f0e, 0x02a92b89, 0x03ce2282, 0x00cce311, 0x03433725, 0x01745003, 0x03368528, 0x03fe227a, 0x01e49622, 0x0015ca81}}},
+ {X: Field{[10]uint32{0x02804330, 0x0198d2f4, 0x02522a51, 0x001f9533, 0x01a27007, 0x03b6ddfd, 0x018e7b33, 0x03a3c7b6, 0x03c14f0d, 0x001e7e84}}, Y: Field{[10]uint32{0x01987c65, 0x02247bb5, 0x03aa096e, 0x02ad68bb, 0x00cf2484, 0x0183dc66, 0x001e40e0, 0x027b9cfd, 0x0188e196, 0x0028252f}}},
+ {X: Field{[10]uint32{0x0133130a, 0x0280f6f9, 0x011019dd, 0x01f6ecf7, 0x01fb0837, 0x029b6acf, 0x033f7350, 0x006fdf09, 0x02dbd2c6, 0x0037c7fd}}, Y: Field{[10]uint32{0x023f886e, 0x02584764, 0x02824fd1, 0x02dd6ac3, 0x00cd0061, 0x023452a5, 0x025c969d, 0x021a264b, 0x03ad68c5, 0x0000bf71}}},
+ {X: Field{[10]uint32{0x02cbdb34, 0x021b4a86, 0x032ec51d, 0x006f7de5, 0x032bff65, 0x00204331, 0x00f87760, 0x00e6b460, 0x02805f59, 0x002a088c}}, Y: Field{[10]uint32{0x03c2dfba, 0x013fed45, 0x025b5278, 0x00ab52c4, 0x01e7f2ef, 0x00010dd4, 0x02ea9b44, 0x00d8caca, 0x010f982e, 0x0025a056}}},
+ {X: Field{[10]uint32{0x004c7c44, 0x01a9a212, 0x018c479e, 0x02b6e8ff, 0x02b3780f, 0x00f1ce4c, 0x010ada16, 0x02fd61a6, 0x00c049f3, 0x00101ac3}}, Y: Field{[10]uint32{0x036503dd, 0x008205f7, 0x012d31bb, 0x00ca1646, 0x028b2179, 0x0062bb9f, 0x0074fe02, 0x023951e4, 0x00eff250, 0x002aac39}}},
+ {X: Field{[10]uint32{0x0116bcc8, 0x00cc033d, 0x014604b7, 0x03ab6eb2, 0x00523c81, 0x031366f2, 0x00f103db, 0x011e70f7, 0x03fd5783, 0x00139c10}}, Y: Field{[10]uint32{0x002d1133, 0x014f5a7a, 0x007fa98f, 0x02d9ce93, 0x0177c859, 0x01b24989, 0x0033ead6, 0x006f47a0, 0x03b73ed0, 0x000658a1}}},
+ {X: Field{[10]uint32{0x033e9997, 0x03d003c3, 0x0344e43c, 0x0003a74b, 0x00a7d55b, 0x03c9301c, 0x0175c0ef, 0x0297d641, 0x0271b945, 0x002a68a9}}, Y: Field{[10]uint32{0x020c6285, 0x029636db, 0x014ca5b2, 0x0390ed1b, 0x039ae22c, 0x03dfcbcf, 0x03f957ca, 0x009c5459, 0x0220cb97, 0x001b3517}}},
+ {X: Field{[10]uint32{0x003d3c01, 0x028ffca2, 0x0208b22b, 0x031da01d, 0x0312b2de, 0x00c569bb, 0x0247ae49, 0x02ba23ee, 0x039475ff, 0x001a4a84}}, Y: Field{[10]uint32{0x02e46131, 0x0197059b, 0x0340685a, 0x00fc2018, 0x00c83477, 0x029df458, 0x02867321, 0x01295302, 0x034a03c1, 0x001d3756}}},
+ {X: Field{[10]uint32{0x022cfad8, 0x02aa3235, 0x016e77dd, 0x02b3d740, 0x01063b44, 0x0003f352, 0x0128e75d, 0x00e2ee22, 0x01fd1566, 0x000dbe45}}, Y: Field{[10]uint32{0x0042e8b9, 0x01fd76fa, 0x00e3c0cf, 0x02c38dff, 0x02991dc8, 0x008b3db7, 0x0217d027, 0x03460d7b, 0x02b616ed, 0x0000fc47}}},
+ {X: Field{[10]uint32{0x02a53b31, 0x028e3592, 0x02c8f99a, 0x01f82ece, 0x00a5202a, 0x00d90c51, 0x002fd6ca, 0x00302d51, 0x035a7e01, 0x000fc3db}}, Y: Field{[10]uint32{0x0035c649, 0x027f41c3, 0x01f9ab86, 0x035fc4f3, 0x03ab1f9e, 0x02c3fecf, 0x00099acd, 0x038a6a54, 0x03cf5b33, 0x00095d35}}},
+ {X: Field{[10]uint32{0x00b7b067, 0x02559ccd, 0x00cfd26b, 0x03eaff00, 0x03508a9d, 0x024aab3c, 0x01d4258a, 0x019876c8, 0x02ff071f, 0x0023163e}}, Y: Field{[10]uint32{0x03944893, 0x0285359c, 0x0273f694, 0x01c56778, 0x01e9a8a1, 0x002c44c9, 0x03d08a88, 0x013b8a10, 0x0094ea1d, 0x000e347a}}},
+ {X: Field{[10]uint32{0x01da78de, 0x021fedf1, 0x03a9c0f2, 0x020219ad, 0x02dbc6f5, 0x036502c4, 0x03918642, 0x0068f192, 0x031a205c, 0x0036019c}}, Y: Field{[10]uint32{0x01d0e05e, 0x030bafb3, 0x02ba8d43, 0x001b4907, 0x03704020, 0x018d497e, 0x01da8318, 0x01eaedcd, 0x00302ff5, 0x0021c2a1}}},
+ {X: Field{[10]uint32{0x03848648, 0x0108138a, 0x02741335, 0x00244ae6, 0x03416bde, 0x029f3765, 0x01de1515, 0x02c10693, 0x037e195d, 0x001f6f68}}, Y: Field{[10]uint32{0x00715e71, 0x03ec00c4, 0x00cf3885, 0x006a1ea3, 0x03e1c026, 0x00bd82a7, 0x0284ff13, 0x0001c3f7, 0x007a649d, 0x0020f227}}},
+ {X: Field{[10]uint32{0x03ec54a1, 0x0233ba00, 0x0245e58d, 0x0149f52f, 0x03410a1b, 0x02dddb3e, 0x038ee093, 0x02c38b7d, 0x03c0c803, 0x0022bf08}}, Y: Field{[10]uint32{0x012ed76b, 0x03ba270d, 0x035b401b, 0x028ae5fa, 0x02bf7b11, 0x0218e52f, 0x02529573, 0x039282ce, 0x02ce4f4a, 0x002c107b}}},
+ {X: Field{[10]uint32{0x0252207b, 0x02e4084d, 0x0211236f, 0x033795e1, 0x031b2531, 0x01588452, 0x0003b4b2, 0x03eac12e, 0x00c22c50, 0x00139109}}, Y: Field{[10]uint32{0x01796e6f, 0x02e74376, 0x02ab57e7, 0x0297052d, 0x03889d5c, 0x02c33c90, 0x03421e4f, 0x01c4603e, 0x01815118, 0x0008afd8}}},
+ {X: Field{[10]uint32{0x02e97453, 0x024a5079, 0x023828fd, 0x03bb24ee, 0x02f394b1, 0x038e6cd2, 0x0016e396, 0x002be282, 0x03885a23, 0x00181c5d}}, Y: Field{[10]uint32{0x00dc4b26, 0x03d005c0, 0x016f49f8, 0x03ea278d, 0x03fc0a18, 0x037db6e1, 0x03247620, 0x02906c53, 0x029f2b9d, 0x002a137c}}},
+ {X: Field{[10]uint32{0x00af3213, 0x00b28923, 0x022ac602, 0x01a40b70, 0x00a271f1, 0x02b3dc39, 0x03bbf8df, 0x015bb0de, 0x0120384e, 0x00327dcf}}, Y: Field{[10]uint32{0x01fb5437, 0x02897e23, 0x02cb069e, 0x022e5d85, 0x0089070e, 0x02fd6d5e, 0x03c9bfa8, 0x025606dc, 0x03f4c77f, 0x001d88b9}}},
+ {X: Field{[10]uint32{0x0245282a, 0x0297b6bb, 0x03c4a81e, 0x02718c2f, 0x01a8b995, 0x023643db, 0x002bfea4, 0x0287630f, 0x01fbdab5, 0x00067a97}}, Y: Field{[10]uint32{0x01f1d56c, 0x03876e3f, 0x00c653b8, 0x0275f5b9, 0x00870a95, 0x03cc1ec7, 0x03a4d62a, 0x02f605f0, 0x015d0014, 0x0003084a}}},
+ {X: Field{[10]uint32{0x01617b58, 0x032f9b70, 0x025cb290, 0x01a5c5f7, 0x02047806, 0x02febe14, 0x030e1491, 0x030a4b37, 0x031e30b2, 0x001592f6}}, Y: Field{[10]uint32{0x022b1c0d, 0x013dd39f, 0x01984700, 0x00703aee, 0x0332508c, 0x01dfd777, 0x02841988, 0x02e57e67, 0x00e86fc0, 0x0026a368}}},
+ {X: Field{[10]uint32{0x010bf06b, 0x011a54df, 0x023b54bf, 0x00778376, 0x0150b39d, 0x02fb81ce, 0x02e21237, 0x039b3249, 0x00424f3e, 0x0016f24e}}, Y: Field{[10]uint32{0x00fd5d16, 0x0277a908, 0x01e00c11, 0x00eda52d, 0x0032bb00, 0x035d4e94, 0x03f4bd4c, 0x01e2f82d, 0x03a96627, 0x00353a70}}},
+ {X: Field{[10]uint32{0x00b7f99e, 0x036e6f17, 0x003a5980, 0x00b68ba3, 0x035b2a5f, 0x02071f5f, 0x02f4fc31, 0x022d5cfb, 0x0294829e, 0x000650cb}}, Y: Field{[10]uint32{0x02bcbcf6, 0x039caee6, 0x003f7a4b, 0x0205715c, 0x032e8607, 0x01b806b3, 0x029316e3, 0x02159eed, 0x019e5c5b, 0x003dd726}}},
+ {X: Field{[10]uint32{0x00080b8d, 0x00c33688, 0x01672ea2, 0x0346fbbc, 0x018d0235, 0x002c6d56, 0x02c28bfa, 0x0338668b, 0x001e6196, 0x0034e64a}}, Y: Field{[10]uint32{0x0168aa19, 0x013468d4, 0x03ea9638, 0x03c357b6, 0x03d5483c, 0x017ae90c, 0x02949319, 0x0338e8cf, 0x029520ff, 0x0000729f}}},
+ {X: Field{[10]uint32{0x00e73c88, 0x032a3a84, 0x026bae21, 0x025dd2b8, 0x0239372e, 0x000bd995, 0x01f55563, 0x03ea7f95, 0x035ab220, 0x001b2138}}, Y: Field{[10]uint32{0x0101b2b3, 0x02d30084, 0x029b89a7, 0x0195c7bf, 0x0001d154, 0x003a2c8d, 0x01711e7b, 0x00b02b52, 0x032abd44, 0x00262846}}},
+ {X: Field{[10]uint32{0x00f8f64b, 0x002a0328, 0x00858118, 0x02dba77d, 0x03ec4205, 0x020ef601, 0x0397f14c, 0x0117b685, 0x018ab1b0, 0x001e0533}}, Y: Field{[10]uint32{0x0115f33b, 0x038e34ed, 0x022841b0, 0x00c106bc, 0x036bf177, 0x03798eb7, 0x03e8b704, 0x02e3ffd4, 0x0240edc8, 0x003be45f}}},
+ {X: Field{[10]uint32{0x0196235f, 0x0381b1c2, 0x03993fb6, 0x0035c4e2, 0x02444e71, 0x034a014c, 0x01accfcc, 0x008aa2ff, 0x02831c8e, 0x001e807b}}, Y: Field{[10]uint32{0x001a5519, 0x009f9f0a, 0x00b41045, 0x02606058, 0x00dcb061, 0x024370ef, 0x02f2e080, 0x0170aad8, 0x01091989, 0x003f944b}}},
+ {X: Field{[10]uint32{0x039bd908, 0x02085f07, 0x000ce72e, 0x01bcfcf9, 0x01512e85, 0x0352979e, 0x00b56605, 0x0327be46, 0x02bcdf86, 0x001957b9}}, Y: Field{[10]uint32{0x02f87721, 0x0253d8c4, 0x035c3cae, 0x02e848f7, 0x037dfdef, 0x002079a6, 0x0196ea9d, 0x02c217ce, 0x01a691fc, 0x0032fae9}}},
+ {X: Field{[10]uint32{0x025219bb, 0x021fb877, 0x01d9e1cf, 0x0051103c, 0x003d4d48, 0x01e045ef, 0x00be25fe, 0x01cba3ac, 0x0009fb03, 0x003af5a0}}, Y: Field{[10]uint32{0x0258814b, 0x039e6d2e, 0x0068bd8c, 0x02dbfd96, 0x036da8cd, 0x02f6dd7c, 0x00aed2d6, 0x037d56fc, 0x02386f96, 0x0023bedf}}},
+ {X: Field{[10]uint32{0x01a3865b, 0x0358ed86, 0x039149f1, 0x033c45a3, 0x028b7834, 0x01f56af5, 0x015cf051, 0x016eed3a, 0x00189ac0, 0x0021cd02}}, Y: Field{[10]uint32{0x00480838, 0x00fe4f05, 0x0330cdf6, 0x03eb78af, 0x027d24c0, 0x03eb828f, 0x01d4deed, 0x003c5724, 0x012772ce, 0x0027c7ef}}},
+ {X: Field{[10]uint32{0x00513df3, 0x03cb18cc, 0x0368ba12, 0x0136aa5b, 0x035dda3a, 0x0055a432, 0x0262e925, 0x01eed937, 0x0213b02a, 0x00186dac}}, Y: Field{[10]uint32{0x02b6144e, 0x01894230, 0x03d56e01, 0x03994e65, 0x03c42c6c, 0x03000e86, 0x02d29628, 0x020650da, 0x00f24eff, 0x00331c6e}}},
+ {X: Field{[10]uint32{0x0125fe37, 0x0028190e, 0x0187298f, 0x0388060b, 0x02ed5e02, 0x02126106, 0x01c9e663, 0x006b8b8e, 0x024d7717, 0x0012e9fb}}, Y: Field{[10]uint32{0x0296dbd6, 0x0371cd23, 0x004f1f1f, 0x03ddd46f, 0x035a9da4, 0x02029c9b, 0x032158eb, 0x013c5b2d, 0x01b4fe34, 0x001736f5}}},
+ {X: Field{[10]uint32{0x008badb7, 0x011f9bc8, 0x01de2ee2, 0x01c7fa78, 0x026f9a39, 0x01a24ba6, 0x025bd7a4, 0x037350cb, 0x027fc4d5, 0x0035609e}}, Y: Field{[10]uint32{0x0098e1fa, 0x03c28698, 0x00f18ca0, 0x0298ed4b, 0x002fb667, 0x02c8f183, 0x02fb5349, 0x00303d87, 0x02dc9d0e, 0x003de43e}}},
+ {X: Field{[10]uint32{0x03237633, 0x032e6ca4, 0x0098d411, 0x03f72894, 0x01e9086d, 0x027bf9a4, 0x0144d4a8, 0x0033df03, 0x01597f95, 0x00207b14}}, Y: Field{[10]uint32{0x039a1e7f, 0x0182dcfa, 0x000655fa, 0x028aaa0a, 0x000741d3, 0x03e4bed8, 0x0253f28e, 0x03e03251, 0x03ddc9ef, 0x002216c9}}},
+ {X: Field{[10]uint32{0x02b6dec7, 0x02e8bf5a, 0x01e684cd, 0x01e762b2, 0x026e7237, 0x03c2bfc7, 0x023e06da, 0x03da01da, 0x01f4a0d4, 0x000a3f10}}, Y: Field{[10]uint32{0x01657225, 0x0328aa92, 0x01f54d80, 0x0236c421, 0x01482c6a, 0x0056c8d7, 0x02b9415c, 0x02af1cfa, 0x031e7aff, 0x002c792b}}},
+ {X: Field{[10]uint32{0x03ae4f47, 0x02c62a3d, 0x035d1328, 0x02333d66, 0x036341a8, 0x01fe8be7, 0x00f5b857, 0x01d71f2c, 0x03d6c5bf, 0x003579d4}}, Y: Field{[10]uint32{0x00a1bff9, 0x00315031, 0x013cffaf, 0x003765e5, 0x02fc2f38, 0x03b359ba, 0x018a10c8, 0x0068c894, 0x00b98eb0, 0x00346a95}}},
+ {X: Field{[10]uint32{0x0076e836, 0x03521cc5, 0x0286d8ba, 0x00f5d624, 0x01257d41, 0x0130696a, 0x0008fac4, 0x010a5f98, 0x015d8909, 0x0005a08d}}, Y: Field{[10]uint32{0x0309cf4a, 0x001151ba, 0x02a0278d, 0x03677b53, 0x002ec9c2, 0x014fb613, 0x0059b11d, 0x024327a1, 0x0362e29f, 0x0013da71}}},
+ {X: Field{[10]uint32{0x03e781db, 0x000902c8, 0x032e7903, 0x006b4089, 0x0273425d, 0x03311b88, 0x03511a78, 0x02b9ccba, 0x005fb64c, 0x0027bdea}}, Y: Field{[10]uint32{0x009ce73c, 0x02ce61f4, 0x0204b03e, 0x027ce9dd, 0x0278a50c, 0x03d7a4b8, 0x035e2f20, 0x01691cfc, 0x016f6f6a, 0x0031c80d}}},
+ {X: Field{[10]uint32{0x02e915ec, 0x03b1c280, 0x03612dd7, 0x01a304f3, 0x02021744, 0x03383aaa, 0x031be48a, 0x02694932, 0x03b36f42, 0x0013daba}}, Y: Field{[10]uint32{0x038e761f, 0x0082c473, 0x036c6396, 0x01ba1e03, 0x010b28f9, 0x014adb5f, 0x02d36092, 0x035e400a, 0x014da8b6, 0x00101ab6}}},
+ {X: Field{[10]uint32{0x023f8232, 0x01586ec8, 0x01f8e088, 0x03c690ac, 0x037a3cc7, 0x03035fa2, 0x0310dae5, 0x00b99999, 0x020e5ac0, 0x00132b0f}}, Y: Field{[10]uint32{0x03263142, 0x00168232, 0x019318ba, 0x015b0bf9, 0x03dca655, 0x0230a749, 0x03fcb9cd, 0x03cf2013, 0x008eaa96, 0x0024e5bb}}},
+ {X: Field{[10]uint32{0x039367b8, 0x0282983d, 0x0193738e, 0x01e18186, 0x02f61fbd, 0x01931d81, 0x00a9dd10, 0x02b15cb1, 0x00633aa2, 0x00021bcd}}, Y: Field{[10]uint32{0x01824f05, 0x008f9609, 0x0312a03f, 0x0186d6b9, 0x03cfb2aa, 0x02d30e2b, 0x0376c9fd, 0x01e76d7d, 0x012b5561, 0x003200bf}}},
+ {X: Field{[10]uint32{0x007103a9, 0x0371ffcd, 0x034da318, 0x008ee8f5, 0x000bcd6f, 0x0074e7ea, 0x025ab4cd, 0x03848f9e, 0x01457685, 0x0014c8fc}}, Y: Field{[10]uint32{0x00691cb1, 0x0000de22, 0x028e3461, 0x03c7fb87, 0x0394cab4, 0x02efce3e, 0x01ec977c, 0x02ca784b, 0x0379eccc, 0x000c24be}}},
+ {X: Field{[10]uint32{0x03ea74fd, 0x03c45e0c, 0x030e71a7, 0x001a60ff, 0x03f85cf1, 0x02838717, 0x000c45f3, 0x00471f9a, 0x01464027, 0x0034f5c3}}, Y: Field{[10]uint32{0x00d07bad, 0x01bd896a, 0x03c90fdf, 0x03cf855d, 0x01e4f722, 0x03ba9fee, 0x0093b9e0, 0x003cc45a, 0x0373d9b9, 0x00246609}}},
+ {X: Field{[10]uint32{0x036d4359, 0x02192ef6, 0x02fdd6fd, 0x03e86ac7, 0x01f8cb89, 0x00d953c7, 0x01b5d714, 0x01d84c0b, 0x013728a8, 0x0037d8ee}}, Y: Field{[10]uint32{0x02ce5510, 0x02b2ded8, 0x012a791b, 0x035212de, 0x02a2c7be, 0x00cbe96c, 0x03930348, 0x00fb2db1, 0x01ca191a, 0x001f0ede}}},
+ {X: Field{[10]uint32{0x01b70c74, 0x01afa15c, 0x00ec3974, 0x02531f7b, 0x0328a994, 0x0138898a, 0x0303169a, 0x00d3657c, 0x02228cc3, 0x003c7fa4}}, Y: Field{[10]uint32{0x0351a10e, 0x03944db9, 0x02b6469d, 0x00d630a3, 0x03b67a24, 0x0266bc78, 0x0335f60f, 0x03e9ca8a, 0x03b84e65, 0x0015623c}}},
+ {X: Field{[10]uint32{0x0274fd95, 0x0324216e, 0x03c7dcb3, 0x02d7e8a7, 0x00fb0adb, 0x01f2ca34, 0x03ec14cb, 0x028cc3b7, 0x035d918c, 0x00240c39}}, Y: Field{[10]uint32{0x00b427f7, 0x0366768e, 0x004cd71a, 0x0304eef7, 0x035a452d, 0x00e2b7b5, 0x0128821c, 0x02261302, 0x01286169, 0x001f7c80}}},
+ {X: Field{[10]uint32{0x03ad641a, 0x01f3d71d, 0x007d5ddd, 0x0218b0f3, 0x03dfa0b5, 0x01d9047a, 0x00f628c5, 0x036e1c4d, 0x013935be, 0x000734f0}}, Y: Field{[10]uint32{0x039a324d, 0x012f7852, 0x02bcf592, 0x03c40c3e, 0x0288264c, 0x03211ec9, 0x013a25e0, 0x02ec22fa, 0x01f25488, 0x0008553b}}},
+ {X: Field{[10]uint32{0x0046ad96, 0x03c49f49, 0x01f42202, 0x03feb265, 0x03bd6e91, 0x03b0356e, 0x039f4621, 0x03b1f1e2, 0x0337a19f, 0x00395b81}}, Y: Field{[10]uint32{0x02ad70d7, 0x02226a8f, 0x0177698f, 0x00bd2cbb, 0x011e69b4, 0x01a4fa5d, 0x028d9bbb, 0x01d83902, 0x0027368c, 0x00220c36}}},
+ {X: Field{[10]uint32{0x03b6b101, 0x0398fc57, 0x02657587, 0x0219e021, 0x0156fd08, 0x012b6299, 0x026dfeb2, 0x03978d8f, 0x02c458ab, 0x0006c29a}}, Y: Field{[10]uint32{0x035178dc, 0x00b3124c, 0x01926521, 0x01acb87d, 0x029a35e8, 0x03777b97, 0x033e5aab, 0x018e8ac4, 0x03dae642, 0x0034b7db}}},
+ {X: Field{[10]uint32{0x03ea22b2, 0x03302048, 0x00679d80, 0x01d9173f, 0x0250bb16, 0x011b58a8, 0x01390a62, 0x0186393b, 0x01468fd4, 0x00042850}}, Y: Field{[10]uint32{0x0140185f, 0x00ce003f, 0x015620b0, 0x0096f0c3, 0x01f9a09b, 0x013aec54, 0x0113dbaf, 0x03746bb3, 0x0068dd7f, 0x000ce0ee}}},
+ {X: Field{[10]uint32{0x003f5e35, 0x00f90669, 0x006ac8a7, 0x035e5755, 0x02e357f7, 0x01a2be9c, 0x038837e5, 0x028d45b6, 0x03515378, 0x0027712a}}, Y: Field{[10]uint32{0x0305903f, 0x02359a98, 0x01a06cc6, 0x0386410e, 0x02bfe05c, 0x03a9647b, 0x02422be1, 0x033eff8a, 0x022d9bce, 0x0002376a}}},
+ {X: Field{[10]uint32{0x00ed7196, 0x02b1db8f, 0x035de1aa, 0x0264d880, 0x0213539e, 0x0226c82b, 0x038eb19e, 0x0387ef14, 0x035de7a4, 0x002aa4c5}}, Y: Field{[10]uint32{0x02afb9ad, 0x02e192b0, 0x01a05eff, 0x01afb38f, 0x00c18d14, 0x022d2001, 0x03e133ad, 0x0115a27c, 0x0304c134, 0x003b73b6}}},
+ {X: Field{[10]uint32{0x022edf7b, 0x03bdbec8, 0x00e27536, 0x03e8d753, 0x0294f3ce, 0x0341b31a, 0x036fcbc6, 0x0366822e, 0x03e4da02, 0x00205c7c}}, Y: Field{[10]uint32{0x01e6dd6b, 0x0272967a, 0x03189749, 0x02de9963, 0x03c32038, 0x00f06993, 0x002b55f7, 0x00aae870, 0x01fcaae6, 0x003a46f9}}},
+ {X: Field{[10]uint32{0x02a19ab6, 0x00201606, 0x024b111b, 0x009d0dd1, 0x01893fe6, 0x031e73de, 0x01888c93, 0x00a3998d, 0x0183c891, 0x00147db2}}, Y: Field{[10]uint32{0x0081a067, 0x003c164e, 0x03252a3d, 0x0003578d, 0x00b8cee4, 0x02a37194, 0x001dbf41, 0x0193d483, 0x01494bb1, 0x00174bbc}}},
+ {X: Field{[10]uint32{0x03d7d38a, 0x002ae3db, 0x02580950, 0x02b1d36b, 0x03ec34df, 0x036c3769, 0x01016b19, 0x00c371a9, 0x0184766b, 0x0030287c}}, Y: Field{[10]uint32{0x02c6f01e, 0x024d65fa, 0x01490528, 0x007b1a57, 0x01b27f36, 0x009349aa, 0x01410516, 0x036bc4a7, 0x03e2c7b6, 0x002f72b4}}},
+ {X: Field{[10]uint32{0x03a0eb02, 0x00e51c8c, 0x00a222bd, 0x026c7ade, 0x02fde927, 0x00d07bee, 0x02b6fe07, 0x0145a412, 0x02cc9543, 0x002c6ec7}}, Y: Field{[10]uint32{0x001689a8, 0x02fead32, 0x021d55a7, 0x02137931, 0x014b1490, 0x01c78325, 0x00dbf0a6, 0x010b8b03, 0x035b5253, 0x0037d48f}}},
+ {X: Field{[10]uint32{0x000b5dce, 0x00f79f59, 0x00470180, 0x039da063, 0x023b0891, 0x010dce47, 0x0139ea7e, 0x013b5621, 0x00dc86d0, 0x002d730c}}, Y: Field{[10]uint32{0x02d4ec14, 0x00798bd0, 0x00b65ca4, 0x0077fff9, 0x009f5556, 0x00b80fca, 0x031acc86, 0x00c4b43e, 0x019e45c7, 0x003c7303}}},
+ {X: Field{[10]uint32{0x0263ccb6, 0x03a503e4, 0x016b0da8, 0x008d47f8, 0x008cacee, 0x01f56507, 0x0155b3ea, 0x03fd4ca0, 0x01e705f0, 0x00378ad2}}, Y: Field{[10]uint32{0x018de99f, 0x01364fdb, 0x032ab74b, 0x02d5c0d5, 0x024690d5, 0x01e0552b, 0x017c6801, 0x02fd9ec3, 0x002bb12d, 0x000d35e9}}},
+ {X: Field{[10]uint32{0x03cc8f51, 0x017cf395, 0x0311ad51, 0x02c3bcbb, 0x00ea5c0d, 0x0161c33f, 0x00984046, 0x03845c3a, 0x00e7c129, 0x0022c63d}}, Y: Field{[10]uint32{0x01111f37, 0x00b80226, 0x00aff884, 0x009f9acb, 0x0372281c, 0x0323b72c, 0x01e9d6cd, 0x012964f1, 0x0086c867, 0x001ac784}}},
+ {X: Field{[10]uint32{0x03c86889, 0x0160aa45, 0x03442f9e, 0x0092da97, 0x01822ce4, 0x018aa0c3, 0x00e46f17, 0x03222246, 0x02c027ce, 0x001c9c58}}, Y: Field{[10]uint32{0x03223cca, 0x01bce28b, 0x02e7e841, 0x008f3145, 0x03248656, 0x024f9491, 0x03de5af6, 0x028da79b, 0x02961452, 0x00378d20}}},
+ {X: Field{[10]uint32{0x0105058c, 0x0215adcd, 0x016056d0, 0x03f28fd8, 0x02946a75, 0x0309252f, 0x00eb9b81, 0x01d20fc6, 0x001f4dd1, 0x0012b93f}}, Y: Field{[10]uint32{0x032563e7, 0x011a4843, 0x017a39ae, 0x00db8b18, 0x0059999b, 0x0361e11c, 0x0034a05b, 0x03f05f68, 0x0012e901, 0x00361f9e}}},
+ {X: Field{[10]uint32{0x03f43cd1, 0x00548197, 0x010bf58b, 0x02e93bda, 0x0272007b, 0x01abff40, 0x0026f016, 0x01cffa46, 0x01ace9e8, 0x003a42f2}}, Y: Field{[10]uint32{0x0164fa87, 0x0398d811, 0x02d58905, 0x00b34b95, 0x0147f076, 0x0196e6ff, 0x009b0c00, 0x03f5a147, 0x00e89acd, 0x0012f208}}},
+ {X: Field{[10]uint32{0x011450ba, 0x0101db7d, 0x010209af, 0x0295fc14, 0x0208340b, 0x03a7bdd1, 0x021af7db, 0x00bedbde, 0x02a1db43, 0x002e82b9}}, Y: Field{[10]uint32{0x012be720, 0x021dabe4, 0x02908c58, 0x00630cba, 0x0351019a, 0x0068b0c2, 0x029894c5, 0x0250805c, 0x01b70409, 0x001f4e0e}}},
+ {X: Field{[10]uint32{0x03accfeb, 0x020808b4, 0x03a5def8, 0x02fca607, 0x034f9682, 0x035ee5f5, 0x018b403e, 0x0194c476, 0x0381f77c, 0x001c1986}}, Y: Field{[10]uint32{0x02d06387, 0x02f13929, 0x0277e4e5, 0x02497d19, 0x027b4eeb, 0x02c1bf99, 0x024bd7cf, 0x027d366b, 0x01731895, 0x002408ae}}},
+ {X: Field{[10]uint32{0x00471a47, 0x038248bf, 0x011d80e5, 0x0056347c, 0x0029451c, 0x0367be8e, 0x0381b817, 0x00e81c47, 0x03472815, 0x003f86de}}, Y: Field{[10]uint32{0x02b0f847, 0x02280d34, 0x01fae19c, 0x037c8d13, 0x0285725b, 0x03930c6a, 0x0115dc05, 0x02df1bec, 0x01cc68cf, 0x0025681d}}},
+ {X: Field{[10]uint32{0x02cc3fc0, 0x01c3dfa6, 0x01e867ab, 0x00dfb171, 0x004325bc, 0x009f8e97, 0x0013d04f, 0x02a41ca0, 0x03d2bbae, 0x0022b3ce}}, Y: Field{[10]uint32{0x0216174e, 0x012195cf, 0x00785ee1, 0x03bf6f8b, 0x01b3e2e0, 0x02547e03, 0x01c06a25, 0x009f53ca, 0x03fb36da, 0x003d9e78}}},
+ {X: Field{[10]uint32{0x02f395e3, 0x03aa3612, 0x0314f1d6, 0x03443283, 0x00d2db01, 0x03d8ae9f, 0x03fc6a47, 0x01f56ae1, 0x013725fc, 0x00076157}}, Y: Field{[10]uint32{0x020b1b90, 0x037234c0, 0x012a5815, 0x03436a24, 0x019b0a9a, 0x0189a317, 0x0255183f, 0x01953b51, 0x03ac2d41, 0x0033ac98}}},
+ {X: Field{[10]uint32{0x012a8cba, 0x009b5c16, 0x0302e039, 0x02601147, 0x03099344, 0x01c3466d, 0x00ec6f6d, 0x01338f21, 0x016630c2, 0x0006aed1}}, Y: Field{[10]uint32{0x00525885, 0x0065521d, 0x01863f4b, 0x024d048a, 0x021778d2, 0x00c91514, 0x01886ef7, 0x01ff5cab, 0x006f6be8, 0x001189dc}}},
+ {X: Field{[10]uint32{0x03eac036, 0x03cafaa4, 0x00a5fb86, 0x01992c26, 0x03620e5c, 0x0128fcc2, 0x01d07e24, 0x004bfe59, 0x00fa672c, 0x0006d1e4}}, Y: Field{[10]uint32{0x03edd60e, 0x00634939, 0x012831b0, 0x01c27278, 0x017c19fd, 0x02e0e47f, 0x022a9a06, 0x038b47ca, 0x00fca758, 0x003bb414}}},
+ {X: Field{[10]uint32{0x00de3dd3, 0x00dcca9a, 0x01c98a43, 0x0280878f, 0x0344c106, 0x01584d9e, 0x01dcfc12, 0x032238c3, 0x032cfc9c, 0x001861e2}}, Y: Field{[10]uint32{0x02aed78e, 0x000037c7, 0x0229d436, 0x002dac4f, 0x03afc6f5, 0x0262a7be, 0x014cb774, 0x009e746d, 0x00a0037c, 0x003e8915}}},
+ {X: Field{[10]uint32{0x0144308a, 0x010042a1, 0x030b5335, 0x006a4c5c, 0x00abc727, 0x0114088e, 0x00c21ecf, 0x03fac5ef, 0x01f02767, 0x00210123}}, Y: Field{[10]uint32{0x0193c32f, 0x03223b3a, 0x00b7c838, 0x02a90e33, 0x02605acc, 0x01dd8f1b, 0x03f9814f, 0x00239751, 0x024a39d6, 0x00351c4b}}},
+ {X: Field{[10]uint32{0x02683a94, 0x02eb0cf2, 0x015cf889, 0x0032a201, 0x018ba37d, 0x01fa27e5, 0x031e1e03, 0x005d7b0f, 0x00e56c96, 0x003adeb1}}, Y: Field{[10]uint32{0x0285da8a, 0x00e053d7, 0x030112bc, 0x00ccbd45, 0x03cc07de, 0x004f7f1b, 0x00bfe075, 0x009d2db6, 0x02672ccc, 0x00125078}}},
+ {X: Field{[10]uint32{0x02142e91, 0x00656bc8, 0x03eaf1a4, 0x0154e027, 0x014cbce4, 0x000a2370, 0x02b452ba, 0x012f6ad8, 0x02c9877d, 0x001228da}}, Y: Field{[10]uint32{0x0369659c, 0x0143aeaa, 0x02e2530b, 0x027087fd, 0x0027eec3, 0x013a5436, 0x02d88480, 0x018a21b1, 0x018a0125, 0x0038935b}}},
+ {X: Field{[10]uint32{0x00cca1b5, 0x00b385af, 0x02a91252, 0x019320b4, 0x02e817b6, 0x02c8e803, 0x029af3b1, 0x028975e1, 0x01d05a62, 0x00270c49}}, Y: Field{[10]uint32{0x01e5afe3, 0x026daf4e, 0x03450a18, 0x0185541a, 0x01385663, 0x03863d7d, 0x00172774, 0x01c5a061, 0x0210f670, 0x0031bb36}}},
+ {X: Field{[10]uint32{0x00f80d68, 0x02a479a4, 0x0116bc2c, 0x03b526bc, 0x0310160b, 0x013722f8, 0x033843e0, 0x019c371f, 0x0221dcc7, 0x000cfa07}}, Y: Field{[10]uint32{0x01757b6f, 0x024a4195, 0x01bb8fa5, 0x03a27b01, 0x029ce417, 0x03bf8e2b, 0x01f11678, 0x021b4b9b, 0x01d3a0a3, 0x0039a530}}},
+ {X: Field{[10]uint32{0x036a1ad2, 0x00700cc6, 0x03056d8e, 0x012e29a3, 0x035c1d0d, 0x00256609, 0x02b10715, 0x0383f2ff, 0x029e6899, 0x002550dd}}, Y: Field{[10]uint32{0x009b0d7e, 0x01e54d3b, 0x00b163f5, 0x0219fd9a, 0x0301c4be, 0x00bb473a, 0x035f1487, 0x021041d8, 0x03fdafc5, 0x0001c033}}},
+ {X: Field{[10]uint32{0x0039efdd, 0x0142099d, 0x00203a0d, 0x018f8877, 0x026ca9b1, 0x02d4201f, 0x0081e6e5, 0x00b0e5f5, 0x00d173e6, 0x0013d073}}, Y: Field{[10]uint32{0x0069f79d, 0x0339df43, 0x011eed95, 0x02ff8563, 0x008fea56, 0x02dd2c95, 0x00b309ba, 0x0065cb62, 0x02d6aa8c, 0x003efe63}}},
+ {X: Field{[10]uint32{0x005f12e5, 0x03b3c819, 0x03bd9064, 0x01a91946, 0x00a667fe, 0x023baf0a, 0x03fd9c33, 0x00037ef8, 0x0245584b, 0x00133eda}}, Y: Field{[10]uint32{0x0214652b, 0x006486bd, 0x0312f550, 0x028979ca, 0x00219638, 0x00495640, 0x00fac21d, 0x003a1d1c, 0x02dafe08, 0x000b77f5}}},
+ {X: Field{[10]uint32{0x01eca626, 0x005dd5dd, 0x039821f2, 0x0324605f, 0x038e536b, 0x03eb94ce, 0x02217fd8, 0x028cf297, 0x03ecd9bb, 0x0027bee2}}, Y: Field{[10]uint32{0x00658fb4, 0x003e32ac, 0x02f8e944, 0x02e21d78, 0x018e3573, 0x029f70f8, 0x00bcf9c1, 0x03057a46, 0x00ed0529, 0x001984c0}}},
+ {X: Field{[10]uint32{0x0030e441, 0x039876b9, 0x02470da9, 0x03e7a143, 0x00f5d3c0, 0x02f9b717, 0x01ab953e, 0x039302e1, 0x01525be7, 0x0030aa02}}, Y: Field{[10]uint32{0x009d9d2d, 0x02713be0, 0x0277b483, 0x018f5434, 0x036be063, 0x03027ef0, 0x026fa221, 0x01a5f1f6, 0x0136bf72, 0x00074b7b}}},
+ {X: Field{[10]uint32{0x03baa707, 0x010b808e, 0x0030c0a2, 0x02d006fe, 0x032501a1, 0x031882c4, 0x02162764, 0x0208afd6, 0x036b49ae, 0x0010adff}}, Y: Field{[10]uint32{0x02b71d6d, 0x00288da0, 0x028b0eb9, 0x0254317a, 0x00fb2c75, 0x032ed68e, 0x02de994d, 0x039001c4, 0x005883f0, 0x003907f8}}},
+ {X: Field{[10]uint32{0x03b0c28c, 0x007c38aa, 0x0386df78, 0x02d1fb8e, 0x01e00cc3, 0x017de3ce, 0x03e15185, 0x02d904ab, 0x0129d420, 0x003b82ec}}, Y: Field{[10]uint32{0x000aec61, 0x00d0fad7, 0x01099258, 0x015552ba, 0x0154b174, 0x003b6eb7, 0x006204b6, 0x02891d9f, 0x027a5a4f, 0x003dc743}}},
+ {X: Field{[10]uint32{0x00ef5b9a, 0x0121f01e, 0x02e789ca, 0x0390a894, 0x0077546c, 0x009b140f, 0x031a7160, 0x00efd499, 0x02079cdb, 0x0007c762}}, Y: Field{[10]uint32{0x03571c20, 0x027a6365, 0x01cfc5c3, 0x02a98f47, 0x00180ee4, 0x03ef0c19, 0x00e8e6f9, 0x0144b7aa, 0x030dae55, 0x00318444}}},
+ {X: Field{[10]uint32{0x02a31310, 0x004bfb34, 0x017b8b29, 0x01b97e4c, 0x027cf313, 0x01063c05, 0x026ebe55, 0x027ec564, 0x0006ecdc, 0x0016f6a7}}, Y: Field{[10]uint32{0x005ecad7, 0x02370a01, 0x023feb72, 0x01a285ed, 0x03890761, 0x01cbab6c, 0x03e59d5b, 0x00983203, 0x0370dce1, 0x000d63fe}}},
+ {X: Field{[10]uint32{0x03866ea6, 0x011d5137, 0x01be91f8, 0x01cd2018, 0x01edc789, 0x0383bf5c, 0x0252dec8, 0x031c9d99, 0x0103fa50, 0x0030cbd9}}, Y: Field{[10]uint32{0x01fca304, 0x02e71c40, 0x008566de, 0x00a882e0, 0x006a34af, 0x02c4fc2c, 0x0309443c, 0x03b3101e, 0x02267a13, 0x0019c8d2}}},
+ {X: Field{[10]uint32{0x0089caed, 0x0337aa25, 0x03069941, 0x01ce25ae, 0x00849bb6, 0x02584990, 0x026c83f2, 0x03ac19c3, 0x0111b71f, 0x001520f5}}, Y: Field{[10]uint32{0x008c1148, 0x034e49f6, 0x03ecfbfe, 0x0141e512, 0x03494d53, 0x03639377, 0x02df0f38, 0x00d0dd02, 0x0262d323, 0x0028269a}}},
+ {X: Field{[10]uint32{0x02a322ef, 0x00625603, 0x010472d5, 0x03f6710f, 0x02d5e3c6, 0x029b3091, 0x00b93425, 0x01aae47b, 0x035ff0b8, 0x000f4b63}}, Y: Field{[10]uint32{0x0155b830, 0x027cd936, 0x00509c73, 0x03b28613, 0x00fb45d7, 0x01c75d82, 0x039cf4ab, 0x03381461, 0x008b4c23, 0x0010620d}}},
+ {X: Field{[10]uint32{0x01af1dc0, 0x011d5d08, 0x01e9e40b, 0x000eaae2, 0x00735ddf, 0x024daf04, 0x01ffa9df, 0x019e017f, 0x013929ed, 0x000e970e}}, Y: Field{[10]uint32{0x00a7011d, 0x020893a4, 0x0081e0dd, 0x00aea517, 0x0344dcd5, 0x00a5d720, 0x002a7de2, 0x00a458ab, 0x01197675, 0x001d82c6}}},
+ {X: Field{[10]uint32{0x00590a83, 0x03752135, 0x01f900e5, 0x0120cdcf, 0x00648869, 0x03892831, 0x039272ef, 0x0301b8fb, 0x02ac7c1c, 0x0028f548}}, Y: Field{[10]uint32{0x021b6be2, 0x007cb13b, 0x00795566, 0x031a4c15, 0x0328c377, 0x000005a5, 0x01684a95, 0x03758486, 0x022cb739, 0x001bd4ee}}},
+ {X: Field{[10]uint32{0x00e8180f, 0x01451176, 0x01d42367, 0x021f76e5, 0x02c1437d, 0x00b80aa8, 0x00785836, 0x00806110, 0x01311399, 0x003bc2c2}}, Y: Field{[10]uint32{0x0086c634, 0x03210ae5, 0x019801b9, 0x0029065c, 0x00217352, 0x024be31d, 0x00408cdf, 0x011dc9f4, 0x00078d18, 0x001cefd1}}},
+ {X: Field{[10]uint32{0x0115da20, 0x01bd031b, 0x03e070f2, 0x01734728, 0x02a770c1, 0x01846169, 0x02118991, 0x033ae708, 0x03fd1498, 0x0020503b}}, Y: Field{[10]uint32{0x0022a474, 0x03127f40, 0x01c3e45f, 0x0008280b, 0x03051c11, 0x0058bc0e, 0x028b7eb2, 0x02dfc6f9, 0x03df6d2d, 0x00131d3c}}},
+ {X: Field{[10]uint32{0x03e122f0, 0x02966f3a, 0x00b74215, 0x03c000de, 0x017603c7, 0x03f5bf59, 0x0132f4d3, 0x027c7e4f, 0x03208e08, 0x000d1175}}, Y: Field{[10]uint32{0x010b6d5b, 0x0388e922, 0x013d4b63, 0x00dfa0a5, 0x0238da06, 0x000db868, 0x03c8626f, 0x013bcce8, 0x035dfdb5, 0x001b5040}}},
+ {X: Field{[10]uint32{0x03a58cd7, 0x008f50fd, 0x02b9c72c, 0x01b57f9a, 0x01789a36, 0x00493378, 0x01933f97, 0x00da6874, 0x025a6235, 0x003852ca}}, Y: Field{[10]uint32{0x01fc8f8f, 0x011342fe, 0x013be447, 0x00658954, 0x01d67a9f, 0x022a7962, 0x02fe6ce5, 0x030409b2, 0x02c52f63, 0x00085bc1}}},
+ {X: Field{[10]uint32{0x01891e0b, 0x00fa4b8b, 0x00deaf8f, 0x00199cd2, 0x00eec931, 0x0302205c, 0x010b2b33, 0x02f113f3, 0x00bc8389, 0x001b6590}}, Y: Field{[10]uint32{0x0104227d, 0x00af105f, 0x0331a185, 0x02c20586, 0x0068b5d4, 0x010a21ff, 0x0204759a, 0x036d927f, 0x00856e42, 0x0012d305}}},
+ {X: Field{[10]uint32{0x019b2916, 0x002bf3bf, 0x0232462a, 0x0016e781, 0x02fd028a, 0x01f00ec6, 0x027cc60d, 0x007c84fd, 0x00045c46, 0x0009cbc5}}, Y: Field{[10]uint32{0x03348416, 0x03350cea, 0x00b1e825, 0x020cc551, 0x03fd6b75, 0x0003ac37, 0x023f78d8, 0x00d4e029, 0x02c0c0b2, 0x002618d7}}},
+ {X: Field{[10]uint32{0x033a07e3, 0x00ca7b87, 0x02257681, 0x013b7a45, 0x02415233, 0x0378738e, 0x01250bec, 0x01d1698c, 0x0128eaae, 0x002a3266}}, Y: Field{[10]uint32{0x03351621, 0x03358479, 0x006209f5, 0x02df9879, 0x0124ae51, 0x0058bfb4, 0x01149aa5, 0x00fdfa38, 0x0286abdf, 0x00133309}}},
+ {X: Field{[10]uint32{0x00975409, 0x00e18036, 0x01ceffac, 0x01403f4c, 0x011c660d, 0x02c79320, 0x01be6869, 0x03559626, 0x03337f93, 0x003ec092}}, Y: Field{[10]uint32{0x00c7fdb0, 0x01cbd1f1, 0x01e127b0, 0x028a2765, 0x03ee562c, 0x0115e59b, 0x00730c39, 0x00f255fa, 0x02b78bff, 0x000ce5a1}}},
+ {X: Field{[10]uint32{0x00562f9c, 0x021c15ca, 0x014f2351, 0x03e73912, 0x00a6cb14, 0x0246e136, 0x03ecfe36, 0x00d525dc, 0x0147aa61, 0x00383921}}, Y: Field{[10]uint32{0x00a7b307, 0x01dbbbf7, 0x03676a6d, 0x03e1a7d1, 0x03778609, 0x00e58012, 0x03488389, 0x01d60149, 0x018b5640, 0x00182db7}}},
+ {X: Field{[10]uint32{0x025d16e4, 0x01bbd644, 0x02169807, 0x00f77fb0, 0x03ed9e38, 0x001786c2, 0x0374d296, 0x022d4c27, 0x002d378b, 0x002f5b10}}, Y: Field{[10]uint32{0x01ef2c24, 0x0086c8a7, 0x00f10755, 0x012de544, 0x02a27692, 0x0231b4b0, 0x036a8f8c, 0x0071ecdd, 0x009cbb76, 0x00330eab}}},
+ {X: Field{[10]uint32{0x01e451c0, 0x0085eb01, 0x02ef552c, 0x02f78542, 0x01d5886c, 0x03da548d, 0x00e2c554, 0x013d1051, 0x0231eefa, 0x0039a464}}, Y: Field{[10]uint32{0x03b1cfa7, 0x02ea6b18, 0x0346bc2a, 0x03f1a49f, 0x0173a888, 0x00a8473f, 0x0156133c, 0x00984ad3, 0x01d4d34d, 0x0039d3b8}}},
+ {X: Field{[10]uint32{0x003d03a9, 0x02e92868, 0x01463f9c, 0x007a3051, 0x02037c48, 0x00a2f6ce, 0x012ac5a3, 0x01e1d136, 0x006a2a48, 0x0006a6b3}}, Y: Field{[10]uint32{0x01f0fb10, 0x01f1623f, 0x01ca126a, 0x0206d26d, 0x02df71fc, 0x01ff87d7, 0x02224224, 0x00d8a3eb, 0x029a960e, 0x0002e981}}},
+ {X: Field{[10]uint32{0x02070910, 0x033bd33d, 0x028d536c, 0x0108f5b6, 0x00abfde6, 0x00b6e66e, 0x004e9395, 0x038c07cb, 0x03a92e5f, 0x0016d4ae}}, Y: Field{[10]uint32{0x0347ae29, 0x01bb796d, 0x00341f54, 0x02c0bf9d, 0x02cc1ab1, 0x01c6bb42, 0x00c68f0a, 0x0089f446, 0x03dd901e, 0x00042376}}},
+ {X: Field{[10]uint32{0x01e05242, 0x00ce29ac, 0x022860f1, 0x02935fe6, 0x000652b0, 0x00ef8a0a, 0x01a096a7, 0x020aa6c4, 0x03601ebe, 0x0024b04d}}, Y: Field{[10]uint32{0x02449d7c, 0x02b01b02, 0x0027559f, 0x02f74538, 0x0251a588, 0x017db1e6, 0x003dd578, 0x0343e975, 0x03fc2dc6, 0x000b8fa4}}},
+ {X: Field{[10]uint32{0x014318b8, 0x03ff97c7, 0x01d69a12, 0x01e7d818, 0x0194b4f2, 0x022550af, 0x021c749e, 0x01305dce, 0x00da7996, 0x000f2dbe}}, Y: Field{[10]uint32{0x03b11956, 0x02e904da, 0x01d54d05, 0x01c5b9ac, 0x0272a777, 0x02bb8a55, 0x023bd02f, 0x016b6370, 0x01a8b4f4, 0x0010b930}}},
+ {X: Field{[10]uint32{0x03dbf5db, 0x00545142, 0x0183f664, 0x01366a00, 0x013c60a1, 0x01437839, 0x01a51100, 0x00637444, 0x0351d345, 0x0017fb58}}, Y: Field{[10]uint32{0x0346c3f6, 0x0299621d, 0x036cd056, 0x0078a579, 0x01da77e0, 0x026f60dd, 0x00140b64, 0x029342dd, 0x0190de07, 0x001ade69}}},
+ {X: Field{[10]uint32{0x015d3840, 0x0064f8f6, 0x0356e7d3, 0x02c7f43e, 0x00a14132, 0x0301844a, 0x00245d37, 0x0213cadf, 0x00a781c3, 0x000ae23c}}, Y: Field{[10]uint32{0x01a0e10e, 0x021cfe22, 0x02981bd4, 0x02e520e2, 0x00c1632b, 0x0089125d, 0x01b6453c, 0x01b95d95, 0x03a21144, 0x003de1f9}}},
+ {X: Field{[10]uint32{0x03293443, 0x02ec0b60, 0x02fd2047, 0x0253a623, 0x0118507f, 0x0368d9c6, 0x030ac3e1, 0x0157ecd6, 0x03b15a3f, 0x0031ec91}}, Y: Field{[10]uint32{0x01b85f4f, 0x01ee341b, 0x00b6799e, 0x03d993cf, 0x00c3c8e5, 0x0309f152, 0x02b6ac8b, 0x017c448d, 0x003734c6, 0x0012ad01}}},
+ {X: Field{[10]uint32{0x003647dd, 0x02a8dd78, 0x005344c6, 0x03484875, 0x0045df69, 0x00b04df8, 0x0008a201, 0x02520417, 0x01338dcb, 0x00377f6a}}, Y: Field{[10]uint32{0x03795c1b, 0x02ff96d5, 0x02091bbc, 0x015691be, 0x0095f912, 0x0161c4b4, 0x032e93ac, 0x005af565, 0x01fd02a1, 0x003a57de}}},
+ {X: Field{[10]uint32{0x031da7db, 0x013fbe8d, 0x00c29da0, 0x02d99dfe, 0x029d15a6, 0x0091fa1f, 0x03e3233b, 0x02c415b1, 0x02455084, 0x00372369}}, Y: Field{[10]uint32{0x001449c3, 0x00c81211, 0x00c80931, 0x00a198df, 0x018fc66d, 0x022f5da1, 0x0207fea0, 0x03b00fda, 0x01a3fde3, 0x0030a8d1}}},
+ {X: Field{[10]uint32{0x01ff5333, 0x015520b4, 0x0395b8e3, 0x0334ea31, 0x02a31547, 0x0190e415, 0x0263bc7a, 0x02fea3c4, 0x0326c5fc, 0x003d4fce}}, Y: Field{[10]uint32{0x02716ac1, 0x022f8eb9, 0x031d1bb6, 0x03b1e662, 0x035249e8, 0x005f13ec, 0x0188f1da, 0x02e72a63, 0x0145e664, 0x000044fb}}},
+ {X: Field{[10]uint32{0x0246cae9, 0x0277242d, 0x03a391d8, 0x021a4c4e, 0x027d7546, 0x0365a77d, 0x021d6477, 0x012d793b, 0x03fd0c6d, 0x00192348}}, Y: Field{[10]uint32{0x03e18962, 0x036f8a00, 0x0120615e, 0x01500c98, 0x009b3364, 0x02b81a5f, 0x02ffbd4b, 0x01d74d39, 0x00452393, 0x00340d78}}},
+ {X: Field{[10]uint32{0x002839b1, 0x020ff84f, 0x011cb1c4, 0x038ac72a, 0x03bd51bd, 0x035c2cd0, 0x0073f3ed, 0x01603e09, 0x010e5dbe, 0x0024b9b7}}, Y: Field{[10]uint32{0x039577a5, 0x03d1852c, 0x012015dd, 0x007a8432, 0x01a61ab0, 0x02826ce4, 0x02d1a465, 0x01ef4964, 0x03fea544, 0x00336437}}},
+ {X: Field{[10]uint32{0x009f687b, 0x013b983d, 0x03b782ef, 0x020daf9b, 0x00eaec05, 0x02505695, 0x0223ec54, 0x03be33e8, 0x018a7616, 0x0004c579}}, Y: Field{[10]uint32{0x03e1431c, 0x016109b5, 0x0280f1ac, 0x0285cdf6, 0x022fe189, 0x036b1caa, 0x00e1fa45, 0x01832f15, 0x0100802d, 0x001ca780}}},
+ {X: Field{[10]uint32{0x033e2a3b, 0x0008522a, 0x035e6c94, 0x03579b41, 0x0186b001, 0x00d55394, 0x026b284a, 0x03f61438, 0x03999857, 0x000f22a5}}, Y: Field{[10]uint32{0x00b25977, 0x01a76f4a, 0x012f6d6c, 0x00568410, 0x03a722e9, 0x00140819, 0x0087b3d6, 0x00829565, 0x0092acc7, 0x001193c1}}},
+ {X: Field{[10]uint32{0x027591c8, 0x00ba9d84, 0x00879f86, 0x03e3fc0f, 0x010bf3c7, 0x01be6b38, 0x02b37cae, 0x0317d10d, 0x0230cc94, 0x003a905c}}, Y: Field{[10]uint32{0x01a4faa6, 0x01819f61, 0x033ace91, 0x01d5c09a, 0x006f4ec4, 0x02735010, 0x00cff1eb, 0x03542eeb, 0x00cb8d95, 0x0025848e}}},
+ {X: Field{[10]uint32{0x021a6ceb, 0x0066854d, 0x0040bceb, 0x0282c316, 0x0348496c, 0x00b262bd, 0x01a8c816, 0x001e78ca, 0x01c2f271, 0x0023b33e}}, Y: Field{[10]uint32{0x017e56af, 0x00f5a1ec, 0x03a5b0b5, 0x00e684cb, 0x01c8ac52, 0x00bcdeca, 0x00c6a7c5, 0x03c6a98c, 0x0219165b, 0x000f8966}}},
+ {X: Field{[10]uint32{0x030f296d, 0x00e62d53, 0x0155677f, 0x004e10b3, 0x027bf3d9, 0x0153adaa, 0x033c34ab, 0x00e965a1, 0x0083b350, 0x000cbc3f}}, Y: Field{[10]uint32{0x0381a811, 0x036328be, 0x01e26655, 0x02b73268, 0x00311e50, 0x032d7dec, 0x02da3459, 0x01e2dd8b, 0x016d906f, 0x00351cdb}}},
+ {X: Field{[10]uint32{0x00d7accb, 0x00c60db8, 0x00a9f638, 0x0302c985, 0x03e4fa4c, 0x017fdf2f, 0x03c171da, 0x00ea3e90, 0x011077c8, 0x002df58c}}, Y: Field{[10]uint32{0x016be9de, 0x0217af5e, 0x037e35e2, 0x02d30648, 0x008b84a5, 0x0307ae99, 0x02c27ef9, 0x00554aa2, 0x02405644, 0x0018257d}}},
+ {X: Field{[10]uint32{0x02536954, 0x009a52ef, 0x02cf06c3, 0x03e35a49, 0x010588b4, 0x0158f95b, 0x00cd74e6, 0x013ec295, 0x004a22df, 0x003bdb24}}, Y: Field{[10]uint32{0x025dbaa4, 0x02568881, 0x00c9fb10, 0x024b83a7, 0x02aa7a04, 0x00dc5788, 0x03c3d3c4, 0x00de9396, 0x00b144cd, 0x000c2244}}},
+ {X: Field{[10]uint32{0x02941a6a, 0x00b5eac8, 0x02e27067, 0x0079baaa, 0x02b37524, 0x012385fe, 0x00eebf0b, 0x0096f2b3, 0x03d1e628, 0x0006784e}}, Y: Field{[10]uint32{0x00b613f7, 0x00f2430a, 0x03bbad3e, 0x019b92bc, 0x02855ea6, 0x02fe3330, 0x01308bbd, 0x016f0455, 0x03290700, 0x001bc8b0}}},
+ {X: Field{[10]uint32{0x008e9420, 0x02dec447, 0x025df967, 0x02af5e4a, 0x009a98a7, 0x03ca602c, 0x0349ae45, 0x03de41e4, 0x00df10f2, 0x0015f66f}}, Y: Field{[10]uint32{0x0265db68, 0x01a29ca6, 0x0265eb50, 0x03d6ff93, 0x0142ebfd, 0x033009ec, 0x00f8fcb1, 0x0215378d, 0x01e1d9b7, 0x002fd997}}},
+ {X: Field{[10]uint32{0x03df06b2, 0x03e1eb80, 0x0057e4e3, 0x0087c4f4, 0x00bb530a, 0x0347b4c9, 0x038874e3, 0x017a2c21, 0x02857c3d, 0x000def19}}, Y: Field{[10]uint32{0x00998539, 0x00711493, 0x02ec83a8, 0x02f5cbd7, 0x0377764a, 0x00729eef, 0x02abbeac, 0x02c4bbc4, 0x03dc764d, 0x00055066}}},
+ {X: Field{[10]uint32{0x01c2cec2, 0x01962a7e, 0x021387f3, 0x00729d04, 0x00b572e1, 0x01944b0b, 0x00012a59, 0x024544cf, 0x01d99ca5, 0x0006cc31}}, Y: Field{[10]uint32{0x02f39697, 0x02c16417, 0x0169101d, 0x01445a97, 0x002344f7, 0x01ebe327, 0x004d8421, 0x03343150, 0x020b2a0d, 0x0037108c}}},
+ {X: Field{[10]uint32{0x01efd0bf, 0x02d387f0, 0x03e65b8d, 0x008616e4, 0x01e6e89f, 0x016b5297, 0x0329f4f8, 0x0156b374, 0x01b3050c, 0x0025a0c7}}, Y: Field{[10]uint32{0x03d47837, 0x0127b673, 0x00ef455e, 0x035687e3, 0x0082bd8b, 0x01c1cbcb, 0x0275ef61, 0x01ce6b43, 0x0020fd03, 0x0021bd0e}}},
+ {X: Field{[10]uint32{0x00e3d8ad, 0x024f3551, 0x0379266b, 0x027a85f2, 0x02bce799, 0x01eb3550, 0x0309f28f, 0x00129560, 0x000faa1f, 0x00334bd4}}, Y: Field{[10]uint32{0x00dd8c29, 0x025011b2, 0x0009e929, 0x00158fbc, 0x0127dd1b, 0x02057de5, 0x00743c24, 0x03abba5f, 0x0080ddfc, 0x0007e5dc}}},
+ {X: Field{[10]uint32{0x02d01c08, 0x00af85d2, 0x003e8ff3, 0x0279829e, 0x00802f51, 0x00d54a4a, 0x0318ff9d, 0x02789e8c, 0x027d237c, 0x00180e4a}}, Y: Field{[10]uint32{0x02893fdc, 0x03615bc8, 0x02065663, 0x00714e7f, 0x0088ae9e, 0x03ca5f11, 0x0194afbd, 0x0347e362, 0x0147df91, 0x003adfcc}}},
+ {X: Field{[10]uint32{0x0237ee9a, 0x015d3e7e, 0x03c90d22, 0x01e45e6c, 0x03d8abb6, 0x03cf075f, 0x00d68fb9, 0x02adcc08, 0x03ad0df6, 0x003db3dd}}, Y: Field{[10]uint32{0x0042ebd1, 0x031de389, 0x03523280, 0x02e873e6, 0x0177e81e, 0x037dd8c4, 0x01d513b7, 0x03dc59ad, 0x01c33587, 0x0023fe8a}}},
+ {X: Field{[10]uint32{0x027cdf7a, 0x001c50b6, 0x00abd018, 0x028b49a9, 0x00944a0e, 0x0046f8bf, 0x01b6f4ff, 0x03145165, 0x015af542, 0x0015f200}}, Y: Field{[10]uint32{0x00b05da9, 0x0319cfaa, 0x03e3d2c9, 0x02ff45b8, 0x00ffb692, 0x028dd537, 0x02b32d33, 0x00f319ed, 0x039e8015, 0x002d9f1d}}},
+ {X: Field{[10]uint32{0x034fe462, 0x0390679a, 0x03b4bfa1, 0x01feed90, 0x012f58a1, 0x02ba664c, 0x03d5c51c, 0x01248bfe, 0x0158ac18, 0x001ff821}}, Y: Field{[10]uint32{0x01ec7a11, 0x023ef9de, 0x0079e5a8, 0x01745664, 0x007268cb, 0x03565616, 0x027e9e4c, 0x0162d4db, 0x037d8bbf, 0x001d8011}}},
+ {X: Field{[10]uint32{0x01517b75, 0x0367cfb7, 0x0177d87b, 0x017d62f8, 0x023d8109, 0x03639f13, 0x029b87a0, 0x026fbf5c, 0x016e73b3, 0x000b85bd}}, Y: Field{[10]uint32{0x035fcb7a, 0x013905cd, 0x011aa69b, 0x03c1e808, 0x0177aa59, 0x01a3c260, 0x02c950e6, 0x00e836ea, 0x01ef5732, 0x0013389c}}},
+ {X: Field{[10]uint32{0x00ffdedb, 0x03ae9886, 0x017ad9c2, 0x039b4b76, 0x0049200d, 0x0328929a, 0x0381f666, 0x01e00af9, 0x000d456d, 0x0029351c}}, Y: Field{[10]uint32{0x026e4532, 0x0350d3f1, 0x036d5efe, 0x0396bc4b, 0x009124aa, 0x02192936, 0x030e7628, 0x0283c3a3, 0x006d0e7b, 0x0030267e}}},
+ {X: Field{[10]uint32{0x033fc059, 0x02306676, 0x0145dc04, 0x01d061fc, 0x01a2327e, 0x00795eb9, 0x016c9219, 0x0278fa8c, 0x01505011, 0x002d1d93}}, Y: Field{[10]uint32{0x0398653c, 0x00f55a91, 0x03092c2f, 0x01c13e93, 0x004f1270, 0x0005a862, 0x00831ea9, 0x0084a4fb, 0x00facc27, 0x0038e6fa}}},
+ {X: Field{[10]uint32{0x027e2d0e, 0x0064c6c3, 0x02235503, 0x008ebae0, 0x02c29fe1, 0x0213f1a5, 0x015b352e, 0x02afc33b, 0x03a7d291, 0x000f9a1a}}, Y: Field{[10]uint32{0x0185d266, 0x0371306a, 0x02ed88c7, 0x001e6327, 0x005a889b, 0x00c86e6e, 0x00caf9a9, 0x00f207e1, 0x00ab07cc, 0x001ecd70}}},
+ {X: Field{[10]uint32{0x024a46c5, 0x02501f34, 0x03346db4, 0x0014a234, 0x03584001, 0x00c488c5, 0x0161e563, 0x01c3bf16, 0x032d1d4c, 0x0035e21b}}, Y: Field{[10]uint32{0x00b9efc8, 0x02501015, 0x023e868d, 0x00fe053c, 0x03c5ef50, 0x0135f6ea, 0x0225903d, 0x018092cb, 0x02e617c4, 0x00369917}}},
+ {X: Field{[10]uint32{0x03a17a40, 0x01e643c2, 0x03475d3a, 0x03c8c976, 0x02cea867, 0x038dd519, 0x0257ba71, 0x0135016a, 0x03cc1465, 0x001f2f48}}, Y: Field{[10]uint32{0x02dcbc51, 0x03968774, 0x0303954c, 0x01ffb74d, 0x02088d32, 0x018e3b3a, 0x005541ee, 0x01b6d2e6, 0x01af96e6, 0x003b7739}}},
+ {X: Field{[10]uint32{0x03eb9795, 0x02e62505, 0x00a5c5d2, 0x02ed6185, 0x0018f877, 0x00cf0864, 0x00ea0a92, 0x03876bbb, 0x0185c279, 0x00151898}}, Y: Field{[10]uint32{0x00e9b6f8, 0x0342e1b8, 0x0309d928, 0x03c37192, 0x018cfb07, 0x033f1e46, 0x03967305, 0x0211502f, 0x0185dc8f, 0x001941fb}}},
+ {X: Field{[10]uint32{0x0163c32e, 0x02170201, 0x00681892, 0x03e78880, 0x0259e68c, 0x0376afbe, 0x02db20aa, 0x030b38af, 0x01551cbe, 0x003b73bc}}, Y: Field{[10]uint32{0x02753179, 0x035e8f6f, 0x00b33b03, 0x03f677da, 0x00bed59e, 0x032e936d, 0x016ab45b, 0x00a14f0a, 0x01437559, 0x002b799c}}},
+ {X: Field{[10]uint32{0x023380cd, 0x02342180, 0x02dd99cf, 0x017320d2, 0x036a30bc, 0x032476df, 0x03db47fb, 0x03e74fc9, 0x0153ff6e, 0x003809ea}}, Y: Field{[10]uint32{0x03a2bbf5, 0x00d8b6b2, 0x032e4c7e, 0x02025d61, 0x0162eafc, 0x03114aa0, 0x012d174a, 0x03408239, 0x004de18a, 0x00079ac9}}},
+ {X: Field{[10]uint32{0x02e2b2d6, 0x02b1bd9c, 0x00960e17, 0x00b2aa88, 0x0366dbf9, 0x01e1f549, 0x02a251f3, 0x00090953, 0x0168db98, 0x0029401b}}, Y: Field{[10]uint32{0x020b2b9c, 0x00fea95a, 0x01babfa6, 0x037d735b, 0x0372d1e6, 0x003dd1c8, 0x0198766c, 0x03756e53, 0x017ee854, 0x002864e3}}},
+ {X: Field{[10]uint32{0x0027be11, 0x039419a1, 0x004e03d5, 0x00943b94, 0x01dbb020, 0x00a65646, 0x029adf73, 0x03f67b69, 0x01f201a1, 0x000c9c1d}}, Y: Field{[10]uint32{0x03c4debb, 0x02ace05a, 0x02df32de, 0x03091466, 0x02611a4e, 0x036157e8, 0x00ee3356, 0x0252fa52, 0x02b1c32e, 0x0010695f}}},
+ {X: Field{[10]uint32{0x023363bd, 0x01e567c6, 0x0399ac1c, 0x0013188d, 0x039c87ac, 0x03a57dd2, 0x010cdcd7, 0x012f29ac, 0x01c66669, 0x0025f869}}, Y: Field{[10]uint32{0x00ab5e88, 0x026e49f2, 0x006a948c, 0x02601095, 0x01566894, 0x0359c709, 0x032bb6c4, 0x01587ded, 0x008d1ec7, 0x000f3269}}},
+ {X: Field{[10]uint32{0x00c07a21, 0x0243b4ec, 0x01a047f7, 0x01a27dbf, 0x03d0a2d8, 0x013bad2a, 0x01bce28f, 0x01373f44, 0x0240a737, 0x001143e9}}, Y: Field{[10]uint32{0x03a77f4c, 0x00f285bb, 0x0231fc4c, 0x01b1fae8, 0x02aa35a5, 0x0034774d, 0x002a1f17, 0x033e8752, 0x0298dc17, 0x003aba20}}},
+ {X: Field{[10]uint32{0x020a6559, 0x007bd2e7, 0x004a8a7a, 0x02461fa5, 0x00d81fad, 0x01025090, 0x0209ce1f, 0x019a84b6, 0x0340fc0a, 0x003d6a9c}}, Y: Field{[10]uint32{0x02eb5017, 0x0367f1ca, 0x022e349a, 0x004276d4, 0x00899d98, 0x02136e9d, 0x02e7738f, 0x024bc718, 0x03da9ef9, 0x0004956c}}},
+ {X: Field{[10]uint32{0x0242f1b4, 0x032529e2, 0x02c8c90c, 0x022a2c53, 0x028857ac, 0x01fef5d6, 0x03238419, 0x01e0da9e, 0x01655519, 0x0001a402}}, Y: Field{[10]uint32{0x031b027b, 0x02eb6305, 0x007100f1, 0x02d3a7bd, 0x02952b5b, 0x02f817cc, 0x02271072, 0x025db6d1, 0x01d2038c, 0x00077060}}},
+ {X: Field{[10]uint32{0x03f290aa, 0x00b484b0, 0x01e878ff, 0x03e4cd55, 0x03bc3bc0, 0x030dd830, 0x019f377b, 0x0104d9fa, 0x005a8ed8, 0x000ac6a8}}, Y: Field{[10]uint32{0x0013e280, 0x019f9633, 0x00a417b2, 0x002b2f74, 0x0035e900, 0x01fcda2f, 0x01f58965, 0x02f0c645, 0x02f41eb8, 0x0011ec96}}},
+ {X: Field{[10]uint32{0x0052d81d, 0x00574974, 0x01a7ab53, 0x00e75320, 0x03454b1e, 0x00017976, 0x013540d3, 0x02bfc366, 0x029ca18c, 0x002939ad}}, Y: Field{[10]uint32{0x015d70c5, 0x02b70068, 0x0182236f, 0x00845f22, 0x00df4fcb, 0x00b9e9bb, 0x02d78edc, 0x01e41290, 0x01039c58, 0x001f3fc8}}},
+ {X: Field{[10]uint32{0x039d2582, 0x01a45bec, 0x00fa17a3, 0x02ca029f, 0x01f728e1, 0x02775de5, 0x039cb0fd, 0x03292cf8, 0x0396c74f, 0x002ad12e}}, Y: Field{[10]uint32{0x0026f5c1, 0x01a8b264, 0x00ab7cb7, 0x036079e5, 0x037edc0d, 0x00645659, 0x0373febb, 0x03633279, 0x03a4519f, 0x00167646}}},
+ {X: Field{[10]uint32{0x01e332a2, 0x036f08e7, 0x03cc7715, 0x01d5750b, 0x00934729, 0x015108a2, 0x016a31ae, 0x030f9232, 0x005b3fb9, 0x0020ec32}}, Y: Field{[10]uint32{0x01a6da6e, 0x034c07cd, 0x014b1e36, 0x00e4b592, 0x009652d7, 0x03c21a00, 0x0033b342, 0x00160bf6, 0x0240fb62, 0x003a67d5}}},
+ {X: Field{[10]uint32{0x03954537, 0x02c856bb, 0x0078841e, 0x03d10381, 0x03e5bd10, 0x01402f03, 0x02911ee0, 0x033e059d, 0x013e624e, 0x003a914c}}, Y: Field{[10]uint32{0x000c7445, 0x0344c4db, 0x0244e81a, 0x0005342d, 0x00d5afb1, 0x027a2915, 0x03bde53b, 0x02733880, 0x000ce235, 0x0012ae2c}}},
+ {X: Field{[10]uint32{0x01a3cd4e, 0x033a87d4, 0x03412ac4, 0x0278df3d, 0x03ae6d60, 0x023249f2, 0x03f7a269, 0x00f65a7d, 0x00e4af82, 0x0024db04}}, Y: Field{[10]uint32{0x017b7213, 0x023a37ec, 0x02b60bf6, 0x01ec04f4, 0x00bdb906, 0x000d67db, 0x03e5bdcf, 0x02142e38, 0x03bb10dd, 0x0011bdca}}},
+ {X: Field{[10]uint32{0x02e9bfd6, 0x0243583c, 0x0296b36c, 0x00597478, 0x01847bb1, 0x01aa26cc, 0x02cf8e13, 0x030f6ce4, 0x015b61aa, 0x0010da97}}, Y: Field{[10]uint32{0x0336d68d, 0x0155a18b, 0x0247e336, 0x036839cd, 0x025e342b, 0x012a43e7, 0x038559c8, 0x032b3065, 0x008dae67, 0x003e079a}}},
+ {X: Field{[10]uint32{0x00b315d7, 0x02136001, 0x0067aabd, 0x0108b986, 0x02d931a4, 0x0153d898, 0x024b929e, 0x022684e8, 0x00273fe7, 0x0027ae55}}, Y: Field{[10]uint32{0x012ef59c, 0x03e568d3, 0x01c60768, 0x012bfb04, 0x02d29f20, 0x03bfea0a, 0x0020fba8, 0x03990002, 0x01927dc0, 0x000e2ff0}}},
+ {X: Field{[10]uint32{0x02280d8a, 0x0392e97e, 0x0277a0e6, 0x00342f68, 0x02ecb77a, 0x0003d8f9, 0x02b4328a, 0x02f02b2d, 0x02f587ec, 0x000e09ad}}, Y: Field{[10]uint32{0x024ef271, 0x00cbc10e, 0x016e6572, 0x024e2e8f, 0x01db35e2, 0x03698fe2, 0x03e6eb9e, 0x039a6c84, 0x01fedcef, 0x0003650d}}},
+ {X: Field{[10]uint32{0x00a1dde2, 0x03e32881, 0x00a21cd0, 0x02e36cf3, 0x034dbdce, 0x010d92e7, 0x0193bcf8, 0x0286f8fe, 0x0111ae0e, 0x0028d233}}, Y: Field{[10]uint32{0x0083ac75, 0x03522107, 0x001e91d1, 0x02f5b591, 0x0007078e, 0x004ada28, 0x01c202f2, 0x03ebc9a8, 0x01d3db7c, 0x0007f214}}},
+ {X: Field{[10]uint32{0x03df7329, 0x03a6818a, 0x002053c4, 0x039cf2dc, 0x025d70d1, 0x01c90993, 0x027646d0, 0x037cf139, 0x0239237f, 0x002ff855}}, Y: Field{[10]uint32{0x035f88e4, 0x03413e4a, 0x023adf12, 0x0373924b, 0x03345488, 0x01dd9d20, 0x03c09d1d, 0x03967670, 0x03e61ec5, 0x00240acd}}},
+ {X: Field{[10]uint32{0x003dfa5e, 0x004f3270, 0x02944144, 0x00409c1f, 0x012642ae, 0x02081608, 0x00dc346c, 0x02dbd350, 0x014d81a1, 0x0038bf6c}}, Y: Field{[10]uint32{0x0088fceb, 0x0028f88d, 0x004086c6, 0x02ca6c03, 0x02131e37, 0x01d9d818, 0x026925ae, 0x021545b1, 0x00ed846e, 0x000c046d}}},
+ {X: Field{[10]uint32{0x013c7416, 0x0377b1a4, 0x0038a535, 0x03aab09f, 0x02cf1119, 0x02d2b088, 0x0263659d, 0x019d205d, 0x01c68f47, 0x002ef196}}, Y: Field{[10]uint32{0x0154b954, 0x026099de, 0x00c7a477, 0x00825d6e, 0x03482501, 0x034ff84e, 0x01d13a40, 0x0144abeb, 0x02e19fdb, 0x0007e2db}}},
+ {X: Field{[10]uint32{0x02505521, 0x0137a368, 0x02056cef, 0x02dbf67b, 0x01ce9141, 0x03e169e2, 0x016f743a, 0x01e26f6f, 0x02029866, 0x00196f4a}}, Y: Field{[10]uint32{0x0378f5a5, 0x017ce74c, 0x0370c6b6, 0x0135c429, 0x02990b18, 0x030f9b15, 0x01644a46, 0x02def175, 0x00301ced, 0x000cb6f8}}},
+ {X: Field{[10]uint32{0x0278e981, 0x01645ac8, 0x01406a3a, 0x02427817, 0x00e9318d, 0x0303cdc9, 0x0175a49f, 0x033df093, 0x02eb8382, 0x0007b039}}, Y: Field{[10]uint32{0x0015715a, 0x033f0acd, 0x019fc240, 0x0018cdf3, 0x02fa56ac, 0x01a5f7af, 0x008ade3c, 0x02f2bfab, 0x029cf486, 0x00394384}}},
+ {X: Field{[10]uint32{0x03a9eb8c, 0x032c43d8, 0x00d9e10d, 0x0248cd96, 0x00c0399c, 0x0284058a, 0x01aceb1e, 0x02896678, 0x031c203d, 0x001ce42b}}, Y: Field{[10]uint32{0x037c3126, 0x03837c25, 0x02418320, 0x028ce6f3, 0x002c3ada, 0x037af9f6, 0x03cad451, 0x01ec275e, 0x00966064, 0x001f4855}}},
+ {X: Field{[10]uint32{0x021a533b, 0x01c7a05a, 0x01eb2b4b, 0x007b624c, 0x01127baf, 0x00267311, 0x03ff7f37, 0x00dd91e0, 0x00697b91, 0x00266945}}, Y: Field{[10]uint32{0x03e2e8e4, 0x022018e9, 0x00d4c8a2, 0x03c23a8e, 0x00809d21, 0x02b9d23f, 0x00bd57db, 0x01dc2c3f, 0x000f7503, 0x00127034}}},
+ {X: Field{[10]uint32{0x020394d9, 0x03eb5962, 0x018cbf12, 0x038313f2, 0x02320ba2, 0x03c6dc09, 0x03b7dbfe, 0x00133033, 0x00b13b48, 0x003935b8}}, Y: Field{[10]uint32{0x03761a41, 0x01d74d8e, 0x01b6c750, 0x03760619, 0x03af5fc3, 0x038338be, 0x035ad203, 0x001bf9a9, 0x02ac73a0, 0x002bac3a}}},
+ {X: Field{[10]uint32{0x01fe1a04, 0x01445b86, 0x03459d88, 0x0160ad54, 0x031a9aa0, 0x02b48fec, 0x03e1c460, 0x0397ab2c, 0x0141507c, 0x00122290}}, Y: Field{[10]uint32{0x0312bd12, 0x008d7d33, 0x0104f0d7, 0x01ce97f6, 0x00e82f80, 0x02b58ec1, 0x01eaf25e, 0x03e31d33, 0x0066043e, 0x001af5a8}}},
+ {X: Field{[10]uint32{0x03babaa1, 0x03057659, 0x028c55d2, 0x011f290b, 0x032cb65b, 0x00b7eeb0, 0x011c2ffd, 0x0295346b, 0x024ded0c, 0x00303ff8}}, Y: Field{[10]uint32{0x027e9289, 0x01f1af5f, 0x0167dbbd, 0x03859d59, 0x03a0a330, 0x037dc047, 0x01bbba88, 0x0137c867, 0x023e29c5, 0x00345731}}},
+ {X: Field{[10]uint32{0x027780b1, 0x016e48dd, 0x03fb2830, 0x003fc82f, 0x0131b05d, 0x023f17bc, 0x02dd36dd, 0x01389677, 0x030206c7, 0x000cdb66}}, Y: Field{[10]uint32{0x014e647b, 0x0179fd50, 0x01fd1b05, 0x0184051c, 0x032b1b64, 0x006f6e27, 0x03e6510e, 0x029c1eba, 0x00fc9886, 0x0012bb6b}}},
+ {X: Field{[10]uint32{0x02dcf04f, 0x03b38b40, 0x024a706a, 0x016b3a11, 0x019a2a17, 0x031ee1b9, 0x03d3711d, 0x029ef8ee, 0x02b98973, 0x00260d4f}}, Y: Field{[10]uint32{0x02ee767e, 0x01d187ea, 0x0196d980, 0x0290f5b1, 0x028e45b4, 0x00178704, 0x02108873, 0x01290e3d, 0x02c22789, 0x002a1dfe}}},
+ {X: Field{[10]uint32{0x02da1e61, 0x01f0d84d, 0x039053f3, 0x01df0e3a, 0x0271c9fb, 0x0153f2c2, 0x0239cecb, 0x03e77d8d, 0x021c17ff, 0x003370d7}}, Y: Field{[10]uint32{0x0094eace, 0x026d9a25, 0x017782bb, 0x0275f58a, 0x0087ae55, 0x030528c7, 0x024f0ccd, 0x01c9837d, 0x02bafe91, 0x002a332d}}},
+ {X: Field{[10]uint32{0x00111941, 0x026a4d20, 0x00b5b515, 0x03b149b3, 0x015d7407, 0x02701bc5, 0x00584093, 0x0282c9c5, 0x01c15e62, 0x00244b2c}}, Y: Field{[10]uint32{0x03049bf6, 0x02f561cd, 0x035adbf4, 0x02e60d23, 0x026fa710, 0x031c3769, 0x00cecc86, 0x03111f34, 0x00d51723, 0x00161305}}},
+ {X: Field{[10]uint32{0x03bff3bc, 0x0339a4f0, 0x0102b5dd, 0x01a26003, 0x01ffd195, 0x03fd00d0, 0x02ec6e2c, 0x022b3667, 0x017c7c1e, 0x00085178}}, Y: Field{[10]uint32{0x0236356f, 0x02ffd3dd, 0x02b68957, 0x0222bebf, 0x00a5c430, 0x02769eeb, 0x030e9b89, 0x02cdce56, 0x01a240c0, 0x000ee29c}}},
+ {X: Field{[10]uint32{0x010b1692, 0x00baa523, 0x004ab3aa, 0x002882ff, 0x0143e091, 0x000f3721, 0x024f7e1d, 0x01c9c888, 0x03367e87, 0x00392824}}, Y: Field{[10]uint32{0x02cf846e, 0x00557df0, 0x00f80328, 0x0372bdf4, 0x02898f48, 0x03e9b8d3, 0x02b8315a, 0x01bc0e3b, 0x00313314, 0x00092c7b}}},
+ {X: Field{[10]uint32{0x0328db40, 0x026cdb34, 0x02bb0f57, 0x0361001b, 0x012b1390, 0x01900a1d, 0x03387ed4, 0x01166edf, 0x02dd464d, 0x003f7d49}}, Y: Field{[10]uint32{0x013a3987, 0x011f0379, 0x00963141, 0x026a9d17, 0x01937326, 0x004993b1, 0x02cf7766, 0x005b4774, 0x02c56792, 0x0010e5b9}}},
+ {X: Field{[10]uint32{0x00729f86, 0x016fed3b, 0x01da4fab, 0x012539d4, 0x0252ca4c, 0x02b77cfd, 0x01933ebc, 0x01c9cd42, 0x0016b3e3, 0x0001b217}}, Y: Field{[10]uint32{0x03648d6f, 0x019bc5ba, 0x01cf1217, 0x02646e7e, 0x01e592ce, 0x0177a64a, 0x0249040c, 0x0201f979, 0x03c8520b, 0x0026d4c3}}},
+ {X: Field{[10]uint32{0x00e28e58, 0x0031e44b, 0x03203feb, 0x02889560, 0x03004e7d, 0x0378033e, 0x0098ce4b, 0x038b0043, 0x023c596e, 0x0013efeb}}, Y: Field{[10]uint32{0x026ff099, 0x00d55fb6, 0x017993e7, 0x01960ef0, 0x02396b8a, 0x03d43f58, 0x02dcfdcf, 0x00d92e57, 0x0104ed0e, 0x003fb3c1}}},
+ {X: Field{[10]uint32{0x0378bab8, 0x00d44f81, 0x001fa150, 0x02ef4f0a, 0x0197c1d7, 0x003a7204, 0x0283c2b9, 0x0045e4ed, 0x037b8017, 0x0026f30e}}, Y: Field{[10]uint32{0x01bc0b43, 0x002e45d0, 0x03e9f3b7, 0x00275f62, 0x03a887f0, 0x02166ea8, 0x03825ab9, 0x0227469d, 0x00928782, 0x00368bab}}},
+ {X: Field{[10]uint32{0x03635150, 0x0380be5a, 0x03c8a024, 0x0098ed78, 0x00855b0a, 0x01cb44c5, 0x02956956, 0x028ecfd6, 0x00400e70, 0x00110568}}, Y: Field{[10]uint32{0x023986be, 0x02961a76, 0x0223ec58, 0x0158e7cc, 0x016843ac, 0x026bf571, 0x02921603, 0x02a7e207, 0x038fcf55, 0x0036294e}}},
+ {X: Field{[10]uint32{0x005b2341, 0x00212dc1, 0x030924d2, 0x00d8b54d, 0x01b617b5, 0x03880e0e, 0x00988fcb, 0x02f3da8e, 0x01c9cdaf, 0x001579d6}}, Y: Field{[10]uint32{0x0131bb95, 0x03e0abfe, 0x015d6cf7, 0x02dd0bae, 0x013c1191, 0x0288c561, 0x01524834, 0x00d01626, 0x03eaca8a, 0x00129a4c}}},
+ {X: Field{[10]uint32{0x0140e9c8, 0x018d2215, 0x024b95ed, 0x0162b6f7, 0x018d1153, 0x03720f82, 0x017e072b, 0x00f0bc29, 0x0325bee2, 0x00084087}}, Y: Field{[10]uint32{0x01a8c9f0, 0x02ff8f3e, 0x008d4ba5, 0x0071fe19, 0x034ed8dc, 0x037208a8, 0x002c98f8, 0x003bfdf1, 0x0291a770, 0x0026bbd5}}},
+ {X: Field{[10]uint32{0x01b376d1, 0x031e60b3, 0x024a7a28, 0x03bda413, 0x02c70771, 0x003502e2, 0x03f3c641, 0x006bffb7, 0x011ddded, 0x000ad38c}}, Y: Field{[10]uint32{0x0309b05c, 0x02b1cc35, 0x02575d20, 0x034db1e4, 0x0248b25d, 0x015fd6e5, 0x0243d02b, 0x016c1c3f, 0x00f56b25, 0x0005170c}}},
+ {X: Field{[10]uint32{0x015378b3, 0x022d7d17, 0x0091e8b9, 0x02be412c, 0x025ed91c, 0x0017496d, 0x00dbf5be, 0x01840324, 0x021c7e16, 0x0014642c}}, Y: Field{[10]uint32{0x02650073, 0x0102d299, 0x01166040, 0x01b085b0, 0x001826d2, 0x02f83550, 0x00e3f268, 0x0317e2d4, 0x02471fbd, 0x002e0f33}}},
+ {X: Field{[10]uint32{0x005b56f7, 0x03d00c15, 0x016ae1f2, 0x0025df40, 0x0188b1b0, 0x01d82062, 0x007c7b28, 0x01702cd9, 0x02e454c6, 0x000ac847}}, Y: Field{[10]uint32{0x02854f5c, 0x01c3775d, 0x03506f9b, 0x01a6e18f, 0x00fff746, 0x01e984a2, 0x01a25634, 0x03f0755c, 0x015917d8, 0x001d5d0e}}},
+ {X: Field{[10]uint32{0x024134d4, 0x03e52bb9, 0x021b6d4a, 0x013e5063, 0x03a3caad, 0x03dae99b, 0x038ec37f, 0x002bb8d1, 0x0392b41e, 0x0032cc2d}}, Y: Field{[10]uint32{0x028358c5, 0x006aad88, 0x008e771b, 0x00376bac, 0x00914230, 0x003471ca, 0x02b8b4ec, 0x027d2e48, 0x02decb3a, 0x001155c6}}},
+ {X: Field{[10]uint32{0x00e4bc6c, 0x00f34c81, 0x012e065c, 0x0149fba8, 0x03e46879, 0x0226f99e, 0x0349d070, 0x02a85ba5, 0x03a8d2fc, 0x003d390d}}, Y: Field{[10]uint32{0x03ba97c4, 0x02798a9d, 0x009c4344, 0x03f0e489, 0x008e7647, 0x03743b8a, 0x01e51f8b, 0x02ba28c3, 0x028b7e81, 0x003ed4b4}}},
+ {X: Field{[10]uint32{0x0350d518, 0x0314f377, 0x00080545, 0x012f2d9e, 0x00ce85a9, 0x024f677e, 0x02a726c1, 0x0066cef1, 0x02a76a2a, 0x0028299d}}, Y: Field{[10]uint32{0x03190a71, 0x01ff2223, 0x03fe8e43, 0x01a28f26, 0x0041198d, 0x02b901c0, 0x01816e5a, 0x02f4842e, 0x00c6b1b7, 0x00191ffa}}},
+ {X: Field{[10]uint32{0x03ff7b7e, 0x00296eed, 0x0171c786, 0x01745762, 0x0275a2ba, 0x03abbbb9, 0x00544ab1, 0x0250a2c4, 0x03ead7f3, 0x00057753}}, Y: Field{[10]uint32{0x0038445c, 0x00b11c67, 0x02961844, 0x007c6c7e, 0x0253924d, 0x02dcc8b4, 0x02313427, 0x008551f4, 0x01dd5fab, 0x00226557}}},
+ {X: Field{[10]uint32{0x030ca522, 0x03d8c864, 0x012b8850, 0x00ffdcb3, 0x0301bdea, 0x035d3767, 0x037a188e, 0x012d1d8d, 0x00004029, 0x002a01ae}}, Y: Field{[10]uint32{0x02b97213, 0x02fb7237, 0x010db9c6, 0x02b18624, 0x0253e49a, 0x02aceee1, 0x03f1fa88, 0x02c6bda5, 0x036547d8, 0x0012db5c}}},
+ {X: Field{[10]uint32{0x039f148b, 0x02e8fd56, 0x0006df31, 0x02b3cf01, 0x0058a983, 0x0390c7ba, 0x036ff9f6, 0x01921de8, 0x023dca08, 0x001078dc}}, Y: Field{[10]uint32{0x038392e4, 0x0252074e, 0x02007913, 0x00b37ff2, 0x022753c5, 0x0336a7f4, 0x000b136d, 0x0163406a, 0x02caf27c, 0x0022ac59}}},
+ {X: Field{[10]uint32{0x01bba3c4, 0x002f2a19, 0x00953ea0, 0x011fe353, 0x01690e04, 0x00251985, 0x03a3e587, 0x02322766, 0x00f27855, 0x0018ee28}}, Y: Field{[10]uint32{0x03cf787f, 0x0002cc90, 0x03a0c2d3, 0x025dca2c, 0x008c09b2, 0x03c01320, 0x0295da00, 0x022d254e, 0x014185eb, 0x000c87eb}}},
+ {X: Field{[10]uint32{0x014c5963, 0x00aa6a6c, 0x0056c894, 0x036b4bfe, 0x01c1ca21, 0x0088a698, 0x01cae5f8, 0x0034e941, 0x037faa8b, 0x00018afa}}, Y: Field{[10]uint32{0x02bffd4b, 0x0275efd5, 0x030451ac, 0x0008bd6d, 0x03a36f4c, 0x00fbf710, 0x01886550, 0x0309fd73, 0x00bd7120, 0x0038f673}}},
+ {X: Field{[10]uint32{0x03d20427, 0x03cb1206, 0x0199ac65, 0x033cf2cb, 0x03bc133f, 0x024bc0c4, 0x01d79a90, 0x02e27af9, 0x000af524, 0x002dd686}}, Y: Field{[10]uint32{0x021d2747, 0x02e08952, 0x02d48c39, 0x01918cfb, 0x036a6369, 0x0398b7ec, 0x03094b41, 0x0301534d, 0x0056b11c, 0x0039e154}}},
+ {X: Field{[10]uint32{0x024949e9, 0x03bb413f, 0x032f2f03, 0x00f3bbc0, 0x026b51f9, 0x013418e8, 0x01df9cbe, 0x03f1da5f, 0x036d5298, 0x001396ef}}, Y: Field{[10]uint32{0x02a12188, 0x039138c5, 0x00119476, 0x02fa6495, 0x001871fb, 0x0336024c, 0x0114a19e, 0x02771951, 0x028640cd, 0x00199c09}}},
+ {X: Field{[10]uint32{0x00173237, 0x02fdb7c3, 0x01200074, 0x039b72d8, 0x02b78e86, 0x0357f06a, 0x02edb836, 0x03c1a4ee, 0x003df509, 0x002a5de3}}, Y: Field{[10]uint32{0x01d0cab7, 0x03804fca, 0x025d690e, 0x0072302f, 0x019230a4, 0x002a1759, 0x03a0e50d, 0x03e44e57, 0x019186a0, 0x000cea72}}},
+ {X: Field{[10]uint32{0x03570449, 0x01eed8f3, 0x03c95cdb, 0x039c9b32, 0x00757fb3, 0x02924dab, 0x01790bc1, 0x012f9f12, 0x02ad1666, 0x003c6cea}}, Y: Field{[10]uint32{0x0060cc06, 0x003ed29d, 0x02a3a52b, 0x0098934e, 0x02006434, 0x011899e0, 0x02183981, 0x037040fc, 0x01cbea3f, 0x003477f8}}},
+ {X: Field{[10]uint32{0x0349f598, 0x02293164, 0x022d0698, 0x0172bd33, 0x019563a0, 0x0133c067, 0x0036ad6a, 0x035615a9, 0x013ab015, 0x00359b3f}}, Y: Field{[10]uint32{0x011efc4d, 0x033dbe84, 0x01756d07, 0x02fbee54, 0x00d8e91b, 0x036e503e, 0x03b73056, 0x03679598, 0x01b6d097, 0x0017a85e}}},
+ {X: Field{[10]uint32{0x020ac7aa, 0x03f8ef36, 0x00470ea8, 0x01bcb036, 0x015d87a1, 0x0260bb7f, 0x030f30aa, 0x01744efb, 0x00f0924b, 0x00294ca9}}, Y: Field{[10]uint32{0x038d5c1c, 0x00aa49c7, 0x017ad553, 0x03eab188, 0x0374fd1e, 0x03d40e1b, 0x003de70d, 0x00d204f3, 0x0019ca4e, 0x0030b98b}}},
+ {X: Field{[10]uint32{0x00439b70, 0x0397fd8a, 0x03b3e1a3, 0x03bcff8b, 0x0281ebb3, 0x0381ed8c, 0x03d08c09, 0x0220d7fe, 0x01125df7, 0x002a6ac9}}, Y: Field{[10]uint32{0x01877514, 0x00696d61, 0x00c7e350, 0x02d53a54, 0x01f2eaad, 0x0330d77c, 0x0243698a, 0x0056aa6a, 0x01db56e0, 0x00163fd5}}},
+ {X: Field{[10]uint32{0x020466eb, 0x03fd1b11, 0x02521f2c, 0x012907b5, 0x0153df17, 0x024571b5, 0x004dc830, 0x00f7b306, 0x03849081, 0x00338163}}, Y: Field{[10]uint32{0x02f3e745, 0x011acbe2, 0x03d47c76, 0x01065ecd, 0x02282377, 0x013d3dc6, 0x02815a78, 0x01d05016, 0x00c45881, 0x0010534e}}},
+ {X: Field{[10]uint32{0x02406299, 0x02faaa5b, 0x003d4737, 0x014e76d8, 0x010afe92, 0x0059137a, 0x0385c7f3, 0x02cdaaac, 0x036530a2, 0x002647ea}}, Y: Field{[10]uint32{0x008eed57, 0x00abe7f9, 0x014df4f8, 0x03edeb6a, 0x005d373c, 0x0136807d, 0x016dc9d4, 0x0112f7c5, 0x017677c5, 0x000a8a6d}}},
+ {X: Field{[10]uint32{0x03715d8e, 0x0070fcab, 0x01e140e9, 0x03fa84fc, 0x03ddfdd2, 0x016ad205, 0x00419210, 0x013bbf32, 0x001fbd03, 0x003b9b32}}, Y: Field{[10]uint32{0x0386d8be, 0x00ebcef8, 0x00a3f689, 0x011ea5ef, 0x00df8fd8, 0x02972f01, 0x007358de, 0x03a59487, 0x03fe48c3, 0x002e3de7}}},
+ {X: Field{[10]uint32{0x019c5ef2, 0x02b33685, 0x017a3c5d, 0x03fa04cd, 0x0316ff2d, 0x00507800, 0x004d5cc5, 0x01995d55, 0x0372d642, 0x0019a8b4}}, Y: Field{[10]uint32{0x01bc8929, 0x0368fdd3, 0x029a05ba, 0x03416608, 0x00780000, 0x03c99781, 0x01423b9a, 0x03d234e2, 0x016b91c6, 0x002d5f4b}}},
+ {X: Field{[10]uint32{0x02421da9, 0x0171a48e, 0x00ac6adf, 0x0396b2d3, 0x037a5798, 0x031fcda8, 0x0043e73f, 0x0378e854, 0x01d9f697, 0x0008280b}}, Y: Field{[10]uint32{0x01cf34f7, 0x00db0c33, 0x02b97338, 0x00e0bf31, 0x02ab4ab5, 0x00478f72, 0x02ab61e7, 0x00d87aa9, 0x0100d162, 0x00079b3c}}},
+ {X: Field{[10]uint32{0x037bf552, 0x00e8c0f2, 0x0211092e, 0x026873b6, 0x019f92b7, 0x036894cc, 0x0298b154, 0x03a07daf, 0x02437818, 0x00282e32}}, Y: Field{[10]uint32{0x01543be6, 0x02ff968f, 0x030baa1a, 0x039922d8, 0x02218508, 0x003f38b6, 0x0263ca11, 0x03664141, 0x00ebf447, 0x0011506f}}},
+ {X: Field{[10]uint32{0x00c52c63, 0x005d3ac7, 0x00ffb9e4, 0x02376d6e, 0x01e0d501, 0x0172ea73, 0x015c25fb, 0x039221f8, 0x02ad73dc, 0x00145c53}}, Y: Field{[10]uint32{0x03dafebf, 0x024507e6, 0x0309773b, 0x00c6665d, 0x01a5c248, 0x019b7480, 0x02272c7d, 0x01587afb, 0x00a082ef, 0x0011ede5}}},
+ {X: Field{[10]uint32{0x02451c59, 0x012b0b35, 0x03a2fba7, 0x02904d05, 0x017da195, 0x026487a4, 0x03c41f6a, 0x03781cf9, 0x03631fe4, 0x00063a89}}, Y: Field{[10]uint32{0x024df316, 0x02bb5435, 0x01e6b106, 0x020cba55, 0x00d31b3b, 0x0235f24f, 0x03e0428e, 0x02eea6cc, 0x0337fff6, 0x000e6282}}},
+ {X: Field{[10]uint32{0x03c5a87e, 0x02e415c5, 0x030cd0e8, 0x029675d6, 0x03c3d1f0, 0x033ea617, 0x01ec341a, 0x0060d298, 0x034fc39e, 0x00387562}}, Y: Field{[10]uint32{0x006b3c47, 0x02648967, 0x007f2cf2, 0x00e83767, 0x01af8215, 0x02dfe679, 0x03e2ab3b, 0x03f7b023, 0x020215fd, 0x0006d8bb}}},
+ {X: Field{[10]uint32{0x016c5a84, 0x03b0f9dc, 0x039a3bbd, 0x0104472b, 0x032c19c5, 0x02c94f70, 0x03f5ba8e, 0x030495f7, 0x011730d3, 0x000e5e4e}}, Y: Field{[10]uint32{0x01f18015, 0x02a929fd, 0x021e3f78, 0x02f5070a, 0x00be7b4e, 0x021476a3, 0x02cded5c, 0x00db6644, 0x0350189f, 0x0035a87e}}},
+ {X: Field{[10]uint32{0x039ede88, 0x003c5e96, 0x02ef1552, 0x002c93ca, 0x021d5736, 0x02c09467, 0x01dbf888, 0x0101b4e0, 0x024b601b, 0x00126d27}}, Y: Field{[10]uint32{0x0169a38d, 0x01f9dcbe, 0x02fadbff, 0x02734390, 0x03a0a76e, 0x00279168, 0x03e7be10, 0x035ecd66, 0x00ca02f2, 0x003f3cf3}}},
+ {X: Field{[10]uint32{0x00bdc871, 0x036a914a, 0x024c32bf, 0x02848907, 0x01d64e38, 0x003fc5e8, 0x0188548f, 0x03cdb483, 0x010d0b42, 0x000b3606}}, Y: Field{[10]uint32{0x00259187, 0x03bd66da, 0x02a67077, 0x0034ac5a, 0x022fff78, 0x016affab, 0x0284f45e, 0x0052416a, 0x03692214, 0x003dca70}}},
+ {X: Field{[10]uint32{0x0241025a, 0x00218997, 0x006f2308, 0x03a91747, 0x02b5b642, 0x007e7466, 0x020cb2cf, 0x015198b6, 0x03111738, 0x0007f43e}}, Y: Field{[10]uint32{0x029ce0e9, 0x02460791, 0x0008f557, 0x035b6edb, 0x0294e928, 0x031c04b6, 0x007825d1, 0x002082af, 0x0288fec6, 0x000c4da9}}},
+ {X: Field{[10]uint32{0x02f3a141, 0x0391101e, 0x0387107d, 0x02ec4834, 0x013f93d5, 0x02f61139, 0x0248a0f5, 0x02d6f861, 0x033bd7f8, 0x003c2397}}, Y: Field{[10]uint32{0x01902fac, 0x01b857f6, 0x0289fa52, 0x02f37c74, 0x01bf7ea1, 0x03253a83, 0x0361bdfc, 0x03ab872a, 0x03259067, 0x0000f761}}},
+ {X: Field{[10]uint32{0x005ee207, 0x0172ac47, 0x005a5d3f, 0x03c07fbb, 0x03a0584c, 0x0171af75, 0x03a046bb, 0x03ea58dc, 0x0006b997, 0x002800cf}}, Y: Field{[10]uint32{0x03e268b4, 0x002a36f0, 0x03a17d14, 0x02d8f53f, 0x0039a577, 0x00823503, 0x00c2cda2, 0x039235c2, 0x0131aacb, 0x003bb586}}},
+ {X: Field{[10]uint32{0x02c16f70, 0x0246db98, 0x03b1e1ea, 0x01c1109a, 0x0383ff8f, 0x005de469, 0x001e29b1, 0x0299c77c, 0x000868be, 0x001df7bb}}, Y: Field{[10]uint32{0x0264861d, 0x009ac015, 0x024b5dc4, 0x009f0288, 0x00fcc1fe, 0x0067d7a7, 0x031ae7ef, 0x01cfd8c9, 0x0228ba8f, 0x002e4228}}},
+ {X: Field{[10]uint32{0x01aa72b1, 0x016a86ea, 0x019605fd, 0x03070623, 0x01994a03, 0x00d41acf, 0x01bd1fc6, 0x0043b468, 0x015ffe2f, 0x000bf37b}}, Y: Field{[10]uint32{0x02bbefc6, 0x02df5d81, 0x0145d3fa, 0x00a13fe7, 0x02b4df66, 0x004a8319, 0x00d7c12e, 0x021bc748, 0x03f6f09a, 0x000556fa}}},
+ {X: Field{[10]uint32{0x015db3ad, 0x00438826, 0x02904c83, 0x03fddf0a, 0x018667f8, 0x02e91f02, 0x00add0c9, 0x039cceaf, 0x032dfdf5, 0x0007c302}}, Y: Field{[10]uint32{0x037bc566, 0x035d5995, 0x03e448ef, 0x020a1732, 0x0170f631, 0x00c9a122, 0x039b7613, 0x03d57d44, 0x03cb84ce, 0x002f5c46}}},
+ {X: Field{[10]uint32{0x0237dcf8, 0x03aa3e42, 0x005ef465, 0x03b52aa2, 0x03d603fd, 0x03b7d953, 0x01bdf3c5, 0x00b11183, 0x0144e716, 0x0002d2a1}}, Y: Field{[10]uint32{0x003c62b2, 0x00e28f48, 0x0134c139, 0x01bb6f86, 0x0099f8ee, 0x00a4b2ce, 0x032e27b2, 0x03a2c800, 0x0391b3f2, 0x0014f010}}},
+ {X: Field{[10]uint32{0x005bd68c, 0x016c2dcb, 0x0221a9d8, 0x0031b650, 0x03d00a90, 0x034c1ce5, 0x0331cdfa, 0x02dcd4e3, 0x0282dcde, 0x0037c3af}}, Y: Field{[10]uint32{0x00decfb2, 0x03d1cce2, 0x001c68a2, 0x038b5c1c, 0x034a1d07, 0x0292b3e2, 0x03b869e3, 0x00b95511, 0x0239e7fe, 0x0030ca65}}},
+ {X: Field{[10]uint32{0x03c101c0, 0x032499c0, 0x01576ec7, 0x00396cde, 0x02f9fd46, 0x034a3e27, 0x02ed101f, 0x0230cf87, 0x01b6d1c3, 0x003ac12e}}, Y: Field{[10]uint32{0x01e0ee9e, 0x0363ca3d, 0x024eb008, 0x0120e5d2, 0x00f5ee75, 0x020b5ba7, 0x013cab57, 0x03e02cac, 0x00497f47, 0x0013c9b6}}},
+ {X: Field{[10]uint32{0x03294334, 0x03dc7434, 0x01cface9, 0x003ba9ee, 0x017db4ee, 0x032ae619, 0x014b37a0, 0x031b3ab2, 0x03e2197c, 0x001ef27b}}, Y: Field{[10]uint32{0x01a72013, 0x01e0b697, 0x009a37ff, 0x024c7057, 0x01ad8fb4, 0x02d6ce94, 0x001d9404, 0x01e41aa5, 0x00ad5234, 0x00364c6f}}},
+ {X: Field{[10]uint32{0x033e0b9b, 0x0106b4ed, 0x00844e0a, 0x01433259, 0x011321dc, 0x01a8fa2d, 0x010c10c6, 0x014b192f, 0x01e8f4bd, 0x002248b4}}, Y: Field{[10]uint32{0x0241c431, 0x00a9e8d2, 0x003182a0, 0x031b57b7, 0x0261c9ee, 0x00cdf714, 0x00e6abd3, 0x03887a24, 0x00f17d23, 0x000ad90f}}},
+ {X: Field{[10]uint32{0x02ddcc72, 0x006746bc, 0x00e9acdc, 0x0369df28, 0x030139a7, 0x0311a007, 0x036a842a, 0x004bb48b, 0x01e33a93, 0x0010bcbb}}, Y: Field{[10]uint32{0x0326f99b, 0x038d25e3, 0x0376ac70, 0x0029afd1, 0x02ab9536, 0x037238d0, 0x0260edff, 0x026172e4, 0x03cc715c, 0x00143516}}},
+ {X: Field{[10]uint32{0x016761c6, 0x009c1453, 0x02ea2f3b, 0x03ca4a4d, 0x00627549, 0x01c9ad79, 0x00792550, 0x03fac962, 0x03201862, 0x001ef725}}, Y: Field{[10]uint32{0x01a4fa8c, 0x02a1504b, 0x02269f1c, 0x039032b5, 0x0065372e, 0x02101998, 0x026f0bff, 0x02b7d5db, 0x032b7f77, 0x001c03ad}}},
+ {X: Field{[10]uint32{0x006314cf, 0x0366385d, 0x023066b6, 0x011f4840, 0x01f79d16, 0x008a3868, 0x002e0d85, 0x0126fd79, 0x03a64bf5, 0x002e6d49}}, Y: Field{[10]uint32{0x020cd93f, 0x00a66aaa, 0x00eb7499, 0x00e71b61, 0x02e35b15, 0x000bcc3a, 0x022a2b68, 0x007d6e4e, 0x00642a72, 0x002386cd}}},
+ {X: Field{[10]uint32{0x01e3dda9, 0x02b0961d, 0x02d74978, 0x00c56434, 0x03d187c4, 0x00f3845d, 0x00291929, 0x01dd9407, 0x012934d4, 0x002d9779}}, Y: Field{[10]uint32{0x039fa529, 0x038db58e, 0x014ef324, 0x0027b2f6, 0x03f07555, 0x00c0d915, 0x01c55351, 0x02d73acf, 0x03e74ab9, 0x000f5bf2}}},
+ {X: Field{[10]uint32{0x027c6b9b, 0x0198d9b3, 0x02ca5c2e, 0x03a8d016, 0x01a036ed, 0x00fc1584, 0x03604f6a, 0x01d47abc, 0x02320608, 0x00063aad}}, Y: Field{[10]uint32{0x015074c5, 0x00acd942, 0x03dd99d1, 0x001492f5, 0x02ccd426, 0x027e479b, 0x0211f057, 0x004464db, 0x03bc9467, 0x00227ac1}}},
+ {X: Field{[10]uint32{0x02d360d5, 0x007183ba, 0x000a14eb, 0x03928c6d, 0x03c7502e, 0x025b4e76, 0x01a16065, 0x02590e42, 0x00664a47, 0x00289844}}, Y: Field{[10]uint32{0x01814901, 0x01fcdc9d, 0x00ac03e8, 0x0207cc8f, 0x0085721a, 0x02066086, 0x022d9fe3, 0x0155d8c9, 0x034d8802, 0x0012d175}}},
+ {X: Field{[10]uint32{0x0008a8a7, 0x0250d74f, 0x019595da, 0x03ebd800, 0x01c77ac0, 0x0173c972, 0x019dc583, 0x0214de80, 0x00b12c10, 0x001e2515}}, Y: Field{[10]uint32{0x01829041, 0x02b82fe9, 0x007a2591, 0x000c949a, 0x008841da, 0x0282f5d8, 0x02f43378, 0x0167eb2f, 0x030fed28, 0x001afba1}}},
+ {X: Field{[10]uint32{0x02791569, 0x03897518, 0x025ed7cf, 0x03e67d98, 0x01f81570, 0x00b837e5, 0x03683b9c, 0x0197c046, 0x0206fb4f, 0x00065df0}}, Y: Field{[10]uint32{0x03698479, 0x0390d7af, 0x01de467d, 0x02c9d764, 0x019dcc79, 0x02a7af81, 0x03f435e5, 0x0112aa57, 0x01a3c222, 0x00379db7}}},
+ {X: Field{[10]uint32{0x01f4222f, 0x02b26199, 0x02585189, 0x03530fd5, 0x01ec3b5a, 0x02b0d35f, 0x03e60861, 0x0354d903, 0x01f7d259, 0x002247c3}}, Y: Field{[10]uint32{0x032de219, 0x002b3a46, 0x0257dba9, 0x02ac1010, 0x025c3293, 0x02a35ac3, 0x027a6011, 0x0228a87b, 0x03f70f53, 0x00331782}}},
+ {X: Field{[10]uint32{0x0299530b, 0x02a4dfff, 0x01e55c80, 0x0380f171, 0x0350169d, 0x0104ad34, 0x026c282f, 0x03e07964, 0x03f69262, 0x00214d2e}}, Y: Field{[10]uint32{0x017423b5, 0x0239fad5, 0x01cf9fb0, 0x008d3505, 0x00f70cfc, 0x0395147a, 0x00764c0b, 0x001cdd33, 0x0181e0bb, 0x003efbb9}}},
+ {X: Field{[10]uint32{0x006f63fb, 0x012c1faa, 0x001989e4, 0x01f03c04, 0x0158fc89, 0x01516635, 0x034eafa3, 0x037f4dd1, 0x016404e7, 0x00396dbd}}, Y: Field{[10]uint32{0x0118da79, 0x01b38998, 0x00ad0b2c, 0x03242ce0, 0x008e153c, 0x022201e0, 0x01e7d983, 0x00ea2ddb, 0x03fa68a8, 0x0010da2e}}},
+ {X: Field{[10]uint32{0x02c2b850, 0x02435381, 0x00e29f7c, 0x03ced38e, 0x0046e184, 0x001c91ea, 0x03dc5e55, 0x03945260, 0x028b11c3, 0x003e5646}}, Y: Field{[10]uint32{0x010ff6b5, 0x025e82b6, 0x032a51fe, 0x024fca7f, 0x02957de3, 0x00d9a87e, 0x024e288a, 0x03d61f32, 0x00362361, 0x00108ed9}}},
+ {X: Field{[10]uint32{0x0372384c, 0x02482c7f, 0x038212f2, 0x01655ef1, 0x017c9950, 0x025918de, 0x01eb617c, 0x017a7bbe, 0x01d3252f, 0x000f4c8e}}, Y: Field{[10]uint32{0x02a2e57a, 0x00f2a7c8, 0x03df78f7, 0x0386a6d9, 0x03ef860e, 0x0257ad37, 0x02798bf6, 0x02beb394, 0x03b6fc9b, 0x00070f8d}}},
+ {X: Field{[10]uint32{0x00c5dfb8, 0x035719ef, 0x00055201, 0x018707c5, 0x02a0a6ce, 0x002184a8, 0x028e8554, 0x0135da1a, 0x03234b57, 0x003d0225}}, Y: Field{[10]uint32{0x000a56a4, 0x014c8243, 0x03af3c74, 0x029d80bf, 0x03c3a62f, 0x015969e7, 0x02aac242, 0x03f24552, 0x03b73e72, 0x001ae0a0}}},
+ {X: Field{[10]uint32{0x02267ccf, 0x02d18a8b, 0x03c64bc4, 0x034ac104, 0x0395058e, 0x0262e2d1, 0x03e65f84, 0x031d17da, 0x02e7aea9, 0x002b381d}}, Y: Field{[10]uint32{0x028b97aa, 0x0076b045, 0x0120a31f, 0x018aa651, 0x02dc58f3, 0x02bcd4f8, 0x032ed6dc, 0x02a797ad, 0x0217377f, 0x0002d8b1}}},
+ {X: Field{[10]uint32{0x006ec161, 0x01bf0b42, 0x036af29d, 0x00ced3f7, 0x01b4e63f, 0x02b6c747, 0x030b848e, 0x0181a4c8, 0x03a7408c, 0x001c332e}}, Y: Field{[10]uint32{0x014d6959, 0x020b1ee8, 0x02ec4d77, 0x00e1c7ef, 0x025a4ff3, 0x0152a032, 0x01286776, 0x00398390, 0x01a046d3, 0x003f0736}}},
+ {X: Field{[10]uint32{0x0358d372, 0x03798a79, 0x02ede7a8, 0x02ce65c2, 0x019e33fc, 0x02bd6af1, 0x0258d3a4, 0x016c317a, 0x00b27c0c, 0x0039b9ea}}, Y: Field{[10]uint32{0x018d4a66, 0x036cf972, 0x017049a8, 0x0297262f, 0x00b40df3, 0x024f8b20, 0x011fee27, 0x02d69754, 0x01c4c8c8, 0x00350344}}},
+ {X: Field{[10]uint32{0x03216346, 0x02c74c88, 0x02739117, 0x029433fd, 0x007910e9, 0x0278b109, 0x01495b71, 0x00b9a0ca, 0x01c7e0a0, 0x00337125}}, Y: Field{[10]uint32{0x001583d4, 0x00816c5a, 0x022f0559, 0x0231b390, 0x00d51fc6, 0x03c77dbb, 0x01ddcd87, 0x0302b3ca, 0x036e9306, 0x0018d993}}},
+ {X: Field{[10]uint32{0x022fc5cc, 0x025d741e, 0x02e4f825, 0x0065bcd6, 0x01d0142f, 0x02e09370, 0x022ba333, 0x00878000, 0x009c2fd7, 0x0009e13a}}, Y: Field{[10]uint32{0x003b8cf4, 0x00d7bd77, 0x001db4a3, 0x0113c021, 0x005a391e, 0x00958a3d, 0x00232b9b, 0x019874d5, 0x0266bdfa, 0x0002e962}}},
+ {X: Field{[10]uint32{0x001a2390, 0x023b37ac, 0x00d0b9b9, 0x02ffdabd, 0x030c9118, 0x0212e8f3, 0x001dd831, 0x01ce0085, 0x0362ebcb, 0x002ada66}}, Y: Field{[10]uint32{0x00766905, 0x0241128d, 0x03e71a60, 0x01ede611, 0x012be011, 0x02829f33, 0x0142547d, 0x0083db17, 0x0210b714, 0x00179520}}},
+ {X: Field{[10]uint32{0x035756ec, 0x00f53c2d, 0x02e08dda, 0x00aa60d6, 0x02220955, 0x01b747aa, 0x03ad6d39, 0x038dfee7, 0x03a567ff, 0x001e07a9}}, Y: Field{[10]uint32{0x02637256, 0x0141683c, 0x034b2af9, 0x001f6b37, 0x000403a5, 0x02e99933, 0x01481744, 0x00ee5f93, 0x007b46f6, 0x000f1db6}}},
+ {X: Field{[10]uint32{0x0374029c, 0x002f4fb8, 0x033fd39d, 0x00ef882c, 0x03a0e1ce, 0x023fb968, 0x0004fe7b, 0x002a0a97, 0x0130dd5c, 0x001d6acb}}, Y: Field{[10]uint32{0x01914b9f, 0x0057f358, 0x0121a722, 0x03ead7be, 0x0330536e, 0x0253073d, 0x01f6f8e6, 0x00e4eb2e, 0x0147fdb1, 0x002abd18}}},
+ {X: Field{[10]uint32{0x00ddaff0, 0x00433e02, 0x03ced85a, 0x00cf4471, 0x01087124, 0x0212b55b, 0x023caea6, 0x00f6a5b4, 0x02983730, 0x000a52d9}}, Y: Field{[10]uint32{0x0346f7c1, 0x02993de6, 0x00b4222f, 0x03f20be7, 0x01e5861b, 0x00e2fc7c, 0x0007fa8b, 0x00fa7aa5, 0x02f7feb7, 0x002bd35f}}},
+ {X: Field{[10]uint32{0x0024c8d6, 0x031b8d2e, 0x02e55ea3, 0x03a4495f, 0x00f290f6, 0x0365c047, 0x0283b06b, 0x018e7f25, 0x02ea7433, 0x003619da}}, Y: Field{[10]uint32{0x03a7456d, 0x0296dc65, 0x0230fd71, 0x00ab79c7, 0x0309017b, 0x01aab04c, 0x00f3e5cd, 0x01551424, 0x007635d4, 0x001c4322}}},
+ {X: Field{[10]uint32{0x021270d0, 0x02fb9d05, 0x03544fd8, 0x009ea4ed, 0x00cee714, 0x0361a916, 0x004771c6, 0x03d6b0ab, 0x02030d90, 0x001793b2}}, Y: Field{[10]uint32{0x00c97351, 0x02bc2dd0, 0x03b9ff0c, 0x0293d232, 0x00a93bb4, 0x00d8a225, 0x03a6d603, 0x03e2febf, 0x0143b970, 0x00113f80}}},
+ {X: Field{[10]uint32{0x0180097e, 0x03c496e1, 0x021dc157, 0x00f76f1d, 0x01265c3a, 0x026d5521, 0x0308f212, 0x02ea17f9, 0x01aa244f, 0x0024054b}}, Y: Field{[10]uint32{0x03ef2cf7, 0x00d5ce60, 0x03939b94, 0x00b120d5, 0x038a6d39, 0x03f0bd84, 0x01fa3b28, 0x021a42d6, 0x02c9200b, 0x0005a534}}},
+ {X: Field{[10]uint32{0x005637b5, 0x02cf2423, 0x020f191f, 0x0265ccbb, 0x00daf3a1, 0x032fcae7, 0x03a953fa, 0x01c7114f, 0x00f096f1, 0x0019f755}}, Y: Field{[10]uint32{0x02de74b1, 0x009e6f13, 0x005dfb36, 0x02914d99, 0x025fd6c4, 0x028ce318, 0x01022365, 0x019db6d9, 0x03432d33, 0x0014c9f6}}},
+ {X: Field{[10]uint32{0x036c51ef, 0x037e57ee, 0x00790142, 0x015d57bf, 0x032e7704, 0x01d33d50, 0x020f1447, 0x03fd5d96, 0x02838f95, 0x0031925a}}, Y: Field{[10]uint32{0x00d752a2, 0x0099ff2f, 0x038caca8, 0x0078e8e2, 0x031177b5, 0x022c16d4, 0x0186f01d, 0x0075ce4b, 0x01d6604d, 0x00330010}}},
+ {X: Field{[10]uint32{0x00c11c74, 0x03f6dbda, 0x029ad933, 0x02da5187, 0x02425bf4, 0x02043674, 0x01e5e728, 0x00eff51d, 0x030a0b16, 0x0039e675}}, Y: Field{[10]uint32{0x00ba8600, 0x027f0605, 0x02b215ef, 0x0274689c, 0x03e50444, 0x00631b44, 0x00adcf76, 0x03b8fe6c, 0x005fe29b, 0x003f0d1d}}},
+ {X: Field{[10]uint32{0x01489d3b, 0x03d16b17, 0x0175acb6, 0x01d30f73, 0x02820c87, 0x0060f60b, 0x032aa221, 0x02404540, 0x03b0151a, 0x001b4f25}}, Y: Field{[10]uint32{0x02d4749f, 0x03356c52, 0x023231c2, 0x03e7b99c, 0x0264b57d, 0x033b767b, 0x0295d438, 0x035dee3d, 0x01013d15, 0x0016aa2f}}},
+ {X: Field{[10]uint32{0x02517539, 0x0163bfc2, 0x00165456, 0x030ea0be, 0x03b96d8e, 0x0131a8e6, 0x01cf2d9a, 0x01f79d06, 0x02001c1e, 0x0021b94f}}, Y: Field{[10]uint32{0x0344ad86, 0x01d7c06a, 0x03520ce4, 0x02b099b7, 0x00c24491, 0x00198c45, 0x01da5254, 0x03b3033b, 0x0370f2ef, 0x0003e2c6}}},
+ {X: Field{[10]uint32{0x02a9880a, 0x014210d4, 0x0074347c, 0x02407cf2, 0x03075feb, 0x023b6ccf, 0x023267a7, 0x01f33aa6, 0x0339ac87, 0x00299070}}, Y: Field{[10]uint32{0x03982163, 0x029c9583, 0x01009c34, 0x031abf72, 0x01407559, 0x01f5a729, 0x03dc101b, 0x016b14f1, 0x014f2b27, 0x0036229b}}},
+ {X: Field{[10]uint32{0x0182511a, 0x004d5a27, 0x00ceb9e0, 0x03550243, 0x00b925aa, 0x0378c5d5, 0x001de436, 0x02099916, 0x03a94d77, 0x000e8054}}, Y: Field{[10]uint32{0x00802035, 0x00cf5e96, 0x0055e35a, 0x00367c2b, 0x0111154b, 0x03fc1b3e, 0x0252df38, 0x017169e8, 0x02489493, 0x00003db2}}},
+ {X: Field{[10]uint32{0x032b170f, 0x030a9851, 0x0058c5be, 0x035f18fd, 0x002c2e51, 0x009ba5bd, 0x0126b31d, 0x0326b501, 0x00e8a131, 0x0039e009}}, Y: Field{[10]uint32{0x034e0c53, 0x01fd9627, 0x008eaf19, 0x00125d90, 0x013a3092, 0x036ad977, 0x0093d9ce, 0x02c63c8d, 0x014b1ad7, 0x00315028}}},
+ {X: Field{[10]uint32{0x006a5162, 0x004cce2a, 0x007cc7df, 0x01878b76, 0x007f05a1, 0x0064919a, 0x00380fab, 0x03c3b1d0, 0x005e8351, 0x001e1632}}, Y: Field{[10]uint32{0x02a6de1c, 0x035f96cd, 0x03a60928, 0x001969db, 0x037e658e, 0x03111354, 0x002897e7, 0x0281bf0e, 0x03445313, 0x0032b650}}},
+ {X: Field{[10]uint32{0x030263e6, 0x01c51eb2, 0x024b82f3, 0x022b5666, 0x00ddb9da, 0x02597ccd, 0x0268c170, 0x037750d6, 0x02281c5b, 0x0001990f}}, Y: Field{[10]uint32{0x032cf79b, 0x022d6229, 0x03f36d72, 0x03e9a513, 0x016f2dc8, 0x02125a35, 0x008f9282, 0x02a82e6f, 0x02368ee1, 0x0027e7e7}}},
+ {X: Field{[10]uint32{0x01b2254b, 0x0164b5ae, 0x035e7106, 0x008fa684, 0x02b31325, 0x03a81755, 0x03e8f9e3, 0x03c5325b, 0x0137a286, 0x0017cdb6}}, Y: Field{[10]uint32{0x0056310a, 0x011922e4, 0x02cfc2e5, 0x0070f21a, 0x029adb0e, 0x03cbf4e7, 0x02bf753e, 0x017fcb73, 0x037cc826, 0x0002758d}}},
+ {X: Field{[10]uint32{0x023e2224, 0x019dfaf1, 0x0212fb17, 0x01c9187a, 0x02310f91, 0x00a140f0, 0x0226f266, 0x0282a97d, 0x01ae93d3, 0x00084bac}}, Y: Field{[10]uint32{0x036d1b67, 0x033f51d2, 0x02fa51df, 0x03fbd7f5, 0x010bbc5a, 0x03d4a09a, 0x038d9fdc, 0x00805b1c, 0x0233347f, 0x0014795f}}},
+ {X: Field{[10]uint32{0x01e9eab4, 0x02175dcd, 0x0277e9a0, 0x024e39bc, 0x01dedb3b, 0x000f3898, 0x00481452, 0x027e4cca, 0x02c8940b, 0x00149a54}}, Y: Field{[10]uint32{0x01a42918, 0x013d3361, 0x0210952e, 0x023c50fe, 0x001d9aa5, 0x006013fe, 0x01fe2fd8, 0x00aabe69, 0x03a356df, 0x002195f3}}},
+ {X: Field{[10]uint32{0x001c099f, 0x022f81d3, 0x036ef8f9, 0x00f2e5ea, 0x010419e0, 0x0254e8b4, 0x03a8778c, 0x00a04b92, 0x010def76, 0x00083c5d}}, Y: Field{[10]uint32{0x02cd485e, 0x03a2cc6e, 0x0060ebd8, 0x01396af0, 0x01d9d97b, 0x01a87b0b, 0x020bf881, 0x034a9fec, 0x01f53e7a, 0x0034bfba}}},
+ {X: Field{[10]uint32{0x027ee910, 0x024db735, 0x02496da2, 0x0397bed9, 0x01dbc7f5, 0x03c4f1a4, 0x023cfb27, 0x00599708, 0x03b7ea01, 0x00388c68}}, Y: Field{[10]uint32{0x0365d53f, 0x02d7f02f, 0x0011e96e, 0x000bec5c, 0x0345e4f6, 0x0337c4f0, 0x027316c7, 0x0004c7cf, 0x002e18e8, 0x002a9917}}},
+ {X: Field{[10]uint32{0x01c702ad, 0x005d2d89, 0x002cbed7, 0x0189a1e8, 0x01d01aa9, 0x014b9ca6, 0x02eac355, 0x009b74f6, 0x01523fd0, 0x001e9393}}, Y: Field{[10]uint32{0x01b965d2, 0x02ccc13f, 0x01b8471e, 0x03047e50, 0x007d2bdf, 0x0335f269, 0x00612044, 0x02396ab9, 0x02b6a739, 0x000d4704}}},
+ {X: Field{[10]uint32{0x03f137b3, 0x013471b2, 0x03eaa557, 0x019c6688, 0x039a8589, 0x0000431b, 0x00a5a5ca, 0x0159c19f, 0x007e7696, 0x003f4bdc}}, Y: Field{[10]uint32{0x00315408, 0x01d4c1be, 0x038aa1ae, 0x021e78ef, 0x01df00e2, 0x033957d0, 0x039b1613, 0x0391ccc7, 0x030c1d5a, 0x00311690}}},
+ {X: Field{[10]uint32{0x002bb89d, 0x024634fc, 0x01373f3f, 0x0293e099, 0x036c2ac2, 0x034c121d, 0x0011d676, 0x03d3f384, 0x001e8cf2, 0x003141b3}}, Y: Field{[10]uint32{0x01d3118a, 0x019078a9, 0x02f0c058, 0x01b8bd63, 0x01bea33d, 0x03dee982, 0x0247f6d1, 0x026cccbe, 0x03b37402, 0x002379b7}}},
+ {X: Field{[10]uint32{0x035c0369, 0x0012dd6a, 0x02eebb82, 0x035f63e1, 0x00ad1bb4, 0x0327378f, 0x02b901c3, 0x03e6661a, 0x0102d9cc, 0x000ba9eb}}, Y: Field{[10]uint32{0x02b0ed43, 0x000c6543, 0x03d9ce40, 0x0189253a, 0x032b2135, 0x02bdda51, 0x03648ddd, 0x000c09d8, 0x03d86d75, 0x0004488a}}},
+ {X: Field{[10]uint32{0x02159c5c, 0x00e33467, 0x0279c4c3, 0x00eb77f4, 0x00f8a602, 0x028ab04d, 0x004b421b, 0x039394be, 0x01923555, 0x002ae330}}, Y: Field{[10]uint32{0x0351ee1a, 0x007c8fe1, 0x00ff514d, 0x03ad532a, 0x015a5b54, 0x0311241e, 0x029fbda6, 0x0236f08f, 0x03bdcc26, 0x000b1238}}},
+ {X: Field{[10]uint32{0x01dad430, 0x02bd01fd, 0x00e04c54, 0x009fcb3f, 0x02c37784, 0x029c4226, 0x0348e1c2, 0x0107ea46, 0x02e1cc7c, 0x00223fb0}}, Y: Field{[10]uint32{0x033ed80b, 0x02277ae2, 0x02cf3c4b, 0x019bec7f, 0x02dce306, 0x02c0d709, 0x02c7a049, 0x01994d7e, 0x02884f69, 0x00332d17}}},
+ {X: Field{[10]uint32{0x034b0d41, 0x034dda1d, 0x0357c011, 0x02871931, 0x02940522, 0x03a83373, 0x02c31272, 0x03d746d0, 0x03ae1acc, 0x00101161}}, Y: Field{[10]uint32{0x030e787b, 0x028e4ffb, 0x01325f96, 0x03ad7395, 0x0163401d, 0x02cd46cd, 0x0368c369, 0x0187d3dc, 0x025b25ae, 0x003a373c}}},
+ {X: Field{[10]uint32{0x02b9ab8a, 0x0093469f, 0x01097514, 0x033ef136, 0x0128a377, 0x009d4245, 0x00cf20ab, 0x02a30234, 0x02b9cade, 0x00229c07}}, Y: Field{[10]uint32{0x02ba5a45, 0x02737ab2, 0x0143a454, 0x0099bc0b, 0x01265e8b, 0x02a62d68, 0x0076154c, 0x02b1c30f, 0x018282a9, 0x0013c116}}},
+ {X: Field{[10]uint32{0x01ad3d56, 0x00aa9e22, 0x0038929b, 0x001b1b59, 0x0366e15e, 0x00422930, 0x02141fdb, 0x00270a76, 0x01781940, 0x0030a04a}}, Y: Field{[10]uint32{0x035db5c1, 0x024db22d, 0x01afa974, 0x039db952, 0x029c9db5, 0x032c7951, 0x0034255d, 0x03a5a68a, 0x02fb6670, 0x00215027}}},
+ {X: Field{[10]uint32{0x031d72fe, 0x03ee0401, 0x021298ad, 0x02d0aea9, 0x000f8ea4, 0x002e0af8, 0x03b04d19, 0x03210e4a, 0x02b1c810, 0x0027ff4d}}, Y: Field{[10]uint32{0x01b38404, 0x028f5a80, 0x03d871ca, 0x0291a997, 0x026f25fd, 0x03ea7f86, 0x002955eb, 0x0037e069, 0x024ba11f, 0x0004789e}}},
+ {X: Field{[10]uint32{0x01a48b96, 0x01be1e69, 0x02b25f1c, 0x011d78ff, 0x0239e431, 0x0143bb18, 0x01072107, 0x02c05f2b, 0x0044bc92, 0x002b1280}}, Y: Field{[10]uint32{0x02b8dfe1, 0x02233907, 0x00de2d5f, 0x02fd15ed, 0x03f526bb, 0x011307d4, 0x03498533, 0x000bfc79, 0x03ba7310, 0x001071f0}}},
+ {X: Field{[10]uint32{0x0306eb5a, 0x0393a19e, 0x0214224a, 0x01b35d93, 0x0357d808, 0x03467f17, 0x03c83bf9, 0x02a482cf, 0x001c157c, 0x0031e2c4}}, Y: Field{[10]uint32{0x038126c8, 0x00dfc674, 0x001d2deb, 0x033570a7, 0x02b7a9d7, 0x013cee3d, 0x035f533b, 0x0183ffeb, 0x006eb9d6, 0x0006a34b}}},
+ {X: Field{[10]uint32{0x03147cd2, 0x0396ba1d, 0x03d13578, 0x02e39b45, 0x01c24b0d, 0x02bb7648, 0x03c1c2db, 0x0122e57c, 0x03055723, 0x003423ce}}, Y: Field{[10]uint32{0x022713cb, 0x0187899d, 0x00696914, 0x02bd77f8, 0x034987df, 0x0028e148, 0x02e3e5c9, 0x01f2eda6, 0x00de0a06, 0x0009ed7f}}},
+ {X: Field{[10]uint32{0x01e312f5, 0x02312ca9, 0x004893d0, 0x01471602, 0x001091cf, 0x01f1707f, 0x01db0f1c, 0x03d87ae0, 0x003d5060, 0x00103a81}}, Y: Field{[10]uint32{0x0166b27c, 0x005a8007, 0x01f30848, 0x00fbed96, 0x02043de0, 0x0167c54d, 0x02719be2, 0x00c0bf80, 0x02c42836, 0x000bbc47}}},
+ {X: Field{[10]uint32{0x018362e7, 0x0212b40d, 0x02ec39f1, 0x03e76ec7, 0x0117db73, 0x0090bae9, 0x00827b28, 0x02d2cb7a, 0x00bdfb53, 0x003e7441}}, Y: Field{[10]uint32{0x01771877, 0x0333f3d3, 0x03167296, 0x03052bdb, 0x0268f4e3, 0x01f50fc2, 0x02707b6d, 0x006520ae, 0x020b6c37, 0x0035d912}}},
+ {X: Field{[10]uint32{0x03f9ddc9, 0x00dde37b, 0x02b6e570, 0x028905c4, 0x00fea5f8, 0x0268176b, 0x02132b40, 0x0120a539, 0x02ee14c3, 0x003749da}}, Y: Field{[10]uint32{0x01ceb7ef, 0x0260d4e9, 0x0066b7bc, 0x0180add0, 0x034803f7, 0x025a4343, 0x02de6553, 0x03bb25ff, 0x017d5d92, 0x00026f98}}},
+ {X: Field{[10]uint32{0x01155d49, 0x03a13c18, 0x012f4c8b, 0x035de149, 0x032104c7, 0x03c36e36, 0x03d11f67, 0x01ef4319, 0x0039d5f1, 0x002148be}}, Y: Field{[10]uint32{0x023ea117, 0x00ea5656, 0x00777316, 0x0375667e, 0x02e01f3e, 0x03729256, 0x039b59cd, 0x007e3db2, 0x01518031, 0x002dde46}}},
+ {X: Field{[10]uint32{0x02b5b225, 0x000c362d, 0x0264eeb2, 0x01992ff3, 0x02510491, 0x018519ca, 0x0002a624, 0x02fa383f, 0x02bdb4f3, 0x001cca00}}, Y: Field{[10]uint32{0x02a3c6f3, 0x01aadc91, 0x01f8e35a, 0x018b4455, 0x02d9022d, 0x0302c973, 0x0105f92c, 0x03b875a9, 0x01ec590e, 0x001ef533}}},
+ {X: Field{[10]uint32{0x0167af62, 0x036d5cd6, 0x02fc68fb, 0x02bf1125, 0x01f5ffcb, 0x022f7a85, 0x0273276b, 0x020d4887, 0x01a12c4f, 0x0006cd90}}, Y: Field{[10]uint32{0x01664048, 0x03619b66, 0x021cef0f, 0x00c81ea3, 0x000b824c, 0x02d33407, 0x01e2e153, 0x00adecbb, 0x02f5e5d1, 0x0000f543}}},
+ {X: Field{[10]uint32{0x0301a7ce, 0x0254974f, 0x00c852c7, 0x01576efa, 0x010c8972, 0x02d9b4e4, 0x02cbe60c, 0x0213ffb5, 0x02184e92, 0x0034c0d3}}, Y: Field{[10]uint32{0x01d09e25, 0x03e3e67e, 0x013b48c4, 0x0313bacd, 0x0211172a, 0x017c6e87, 0x0094b058, 0x01439ca8, 0x030416ce, 0x002cd998}}},
+ {X: Field{[10]uint32{0x01e9db17, 0x00c9c29a, 0x0176d65c, 0x00aa8eb4, 0x0261c6db, 0x023d3e16, 0x03a44610, 0x03d7bc63, 0x0200bd22, 0x00239ea0}}, Y: Field{[10]uint32{0x03530568, 0x012cec7c, 0x01ceadee, 0x01d466cd, 0x004a4824, 0x01c7d335, 0x03536edc, 0x025e6fe1, 0x03b51cce, 0x002107f8}}},
+ {X: Field{[10]uint32{0x00a4027e, 0x02c2d958, 0x009e85da, 0x00f60e40, 0x01c4af5f, 0x005086b8, 0x02aee276, 0x0219c746, 0x00de29ab, 0x003f332d}}, Y: Field{[10]uint32{0x037f993b, 0x02f48b83, 0x01c47fa6, 0x0352fa8a, 0x01a6e269, 0x03a5df9c, 0x036ac069, 0x0226bf56, 0x0396203b, 0x002808a7}}},
+ {X: Field{[10]uint32{0x004c8a26, 0x00b001f9, 0x02576925, 0x01d87e67, 0x039e74a4, 0x03ab5c16, 0x00681f0a, 0x02060213, 0x017f4435, 0x0039a33f}}, Y: Field{[10]uint32{0x0028f82e, 0x004874b1, 0x013c1672, 0x01863a7c, 0x01712291, 0x03c343ad, 0x0378d50c, 0x038ab908, 0x00a7b027, 0x002b7670}}},
+ {X: Field{[10]uint32{0x006891d8, 0x0381184b, 0x029a8072, 0x0022dc9b, 0x0263bfe0, 0x022ecc94, 0x026de7ac, 0x02b05921, 0x03ad4b81, 0x0022dbc3}}, Y: Field{[10]uint32{0x024bc9ca, 0x03b2bb6e, 0x01288092, 0x023e98a4, 0x0391493e, 0x0289ff84, 0x008d328c, 0x0012de02, 0x0108a8d6, 0x0026eb59}}},
+ {X: Field{[10]uint32{0x024b78b1, 0x035266f5, 0x021ba8cf, 0x010d5ea4, 0x02470f89, 0x0019d185, 0x03178cf2, 0x00652498, 0x00aa37ac, 0x00042283}}, Y: Field{[10]uint32{0x0265bf55, 0x0067d928, 0x032a75a8, 0x0149844a, 0x039b7c04, 0x03fd45f1, 0x03e302e1, 0x0255bd7f, 0x0122be05, 0x001a0543}}},
+ {X: Field{[10]uint32{0x0357edb6, 0x0100a131, 0x0208b429, 0x02949952, 0x02ab8e13, 0x00dc2971, 0x032daa83, 0x0315e474, 0x03330844, 0x003fb460}}, Y: Field{[10]uint32{0x02457fe5, 0x02707fcd, 0x01e56f83, 0x00bb4fe2, 0x00b1b52c, 0x0254ba8d, 0x0229a976, 0x02ae13ae, 0x03378395, 0x0019ef77}}},
+ {X: Field{[10]uint32{0x00170a2f, 0x02cbb824, 0x00da501f, 0x02108d46, 0x00848b2d, 0x02933789, 0x03ed6f10, 0x01b3cd42, 0x039decd5, 0x002fafec}}, Y: Field{[10]uint32{0x03a11573, 0x0350328a, 0x0275197d, 0x036c2987, 0x0005acb2, 0x0051b652, 0x0125fbde, 0x03e21c8a, 0x00b3bb86, 0x0004c0ad}}},
+ {X: Field{[10]uint32{0x001e716c, 0x01efca06, 0x0286c9c6, 0x015e74a2, 0x02af8d50, 0x01369ed5, 0x0070d3cb, 0x034edb11, 0x02ed2a58, 0x0019c4d6}}, Y: Field{[10]uint32{0x02fd6664, 0x01202723, 0x03040019, 0x00fc14fa, 0x0230fa2f, 0x03cdd111, 0x00f3e778, 0x038fbf72, 0x02ab2786, 0x0025f102}}},
+ {X: Field{[10]uint32{0x0354f90e, 0x024a3950, 0x038b9c37, 0x01782436, 0x03c3dea7, 0x0135b7c0, 0x0309dd41, 0x01b96b36, 0x01bb0956, 0x002c03ad}}, Y: Field{[10]uint32{0x029b1258, 0x03e4fbb9, 0x0164d8ae, 0x01c044b2, 0x02ccc3a6, 0x02666bce, 0x0173aa63, 0x0399d3a6, 0x02411cb6, 0x001b4483}}},
+ {X: Field{[10]uint32{0x03bb73a2, 0x03cce13c, 0x03bb8ecd, 0x024b7a7b, 0x01233375, 0x028e6cb6, 0x01db6d3b, 0x00808bc2, 0x026cbe8d, 0x001c86c6}}, Y: Field{[10]uint32{0x0205310f, 0x01632392, 0x020885b4, 0x039e542f, 0x014acbb2, 0x0253e01d, 0x01ae1f2e, 0x003d1c1d, 0x0362631a, 0x00336d06}}},
+ {X: Field{[10]uint32{0x038a0837, 0x028f9137, 0x03f71d10, 0x020e5226, 0x0242f60b, 0x02431083, 0x0147cde1, 0x004b2a37, 0x00ac015b, 0x0032e35e}}, Y: Field{[10]uint32{0x0296dbc2, 0x01f33ffa, 0x022d5d17, 0x022c4206, 0x03abdc44, 0x03ecb849, 0x00d3846c, 0x00d9d7a3, 0x01a6a307, 0x00202f8c}}},
+ {X: Field{[10]uint32{0x00781920, 0x03b1e15b, 0x0017a0af, 0x00af8bb8, 0x0137e5c5, 0x03450f95, 0x03f3ae66, 0x03621348, 0x03cc4919, 0x0012473e}}, Y: Field{[10]uint32{0x02874189, 0x01fb3115, 0x03ee62b1, 0x0353b706, 0x003ba714, 0x01367cbb, 0x004d29cc, 0x00c2234d, 0x03502628, 0x001d8c86}}},
+ {X: Field{[10]uint32{0x02b507b4, 0x01c02cda, 0x0027cfb3, 0x011b17af, 0x038145d1, 0x02088c0e, 0x02ed33ff, 0x00898c8e, 0x03ee4899, 0x0001b28c}}, Y: Field{[10]uint32{0x00b11f4e, 0x00fa34b0, 0x03ec644e, 0x002a7276, 0x038c376a, 0x002548af, 0x00a20cfd, 0x03419078, 0x02b3f189, 0x0025adce}}},
+ {X: Field{[10]uint32{0x01d842c7, 0x032aea06, 0x00f8997c, 0x03be6058, 0x001bf602, 0x008b3e9a, 0x03b33d38, 0x025c6db2, 0x03cb3c48, 0x001b47f7}}, Y: Field{[10]uint32{0x03b1713f, 0x01b4a733, 0x0376909c, 0x0311565a, 0x00fa555a, 0x01bc1180, 0x017c0629, 0x02098979, 0x03c46608, 0x00020af1}}},
+ {X: Field{[10]uint32{0x02a43554, 0x038fea7f, 0x01b55c88, 0x00f0f87a, 0x02daeb53, 0x01ac8de5, 0x01ac3ca3, 0x00bd069a, 0x02991cf9, 0x0028fa05}}, Y: Field{[10]uint32{0x012855f1, 0x02520c8c, 0x020fa25e, 0x03d5e1b4, 0x0165887d, 0x015014c2, 0x0206b0b4, 0x0119ebe8, 0x029be802, 0x0021e9be}}},
+ {X: Field{[10]uint32{0x01d49c70, 0x0230fa1f, 0x03ab571f, 0x013cfcbf, 0x007f570e, 0x0142cab1, 0x02c7438d, 0x030ca53a, 0x03d7cbfb, 0x003f212a}}, Y: Field{[10]uint32{0x03f73dd9, 0x014ddf69, 0x0075b691, 0x00ee959b, 0x02589f6c, 0x0266d905, 0x01b3f1cd, 0x015ac396, 0x02690713, 0x001d11ec}}},
+ {X: Field{[10]uint32{0x0355d1b1, 0x02090200, 0x01769539, 0x02a1ce9a, 0x01af4e02, 0x03b28568, 0x00d31252, 0x0056e860, 0x02408fc5, 0x002fac8c}}, Y: Field{[10]uint32{0x019c1459, 0x030d0fd4, 0x01e95b3b, 0x028417ae, 0x00e2bbe6, 0x006dd96c, 0x02deba93, 0x02a6ab97, 0x000d6fa8, 0x0004be92}}},
+ {X: Field{[10]uint32{0x0299eb8e, 0x0180d906, 0x00f13df7, 0x00ed810d, 0x010a50e6, 0x02f0094a, 0x02373d71, 0x035fcc66, 0x0279cffa, 0x001a2245}}, Y: Field{[10]uint32{0x00772fb8, 0x01ed6dda, 0x00524da0, 0x0258b9bb, 0x037736ce, 0x01b40540, 0x02a7c1e8, 0x022a8b4b, 0x01b76db2, 0x00102de3}}},
+ {X: Field{[10]uint32{0x03068817, 0x0007b8ae, 0x01d96ed4, 0x03350a3a, 0x03b42e2f, 0x023ed754, 0x022f736e, 0x02c103f7, 0x01ad1ae7, 0x0003b10d}}, Y: Field{[10]uint32{0x0096f9f2, 0x02fb23bf, 0x03ac244b, 0x01175943, 0x0126860c, 0x01b13de5, 0x0028a856, 0x010dbd2a, 0x02aa1283, 0x0004efdb}}},
+ {X: Field{[10]uint32{0x03de3033, 0x0165341a, 0x0249f374, 0x01d9885a, 0x0060a755, 0x01df9241, 0x03b7ce7f, 0x01a22df7, 0x02fa661f, 0x0019e7d6}}, Y: Field{[10]uint32{0x03617ca1, 0x03ecd71b, 0x017094e0, 0x00ca921f, 0x02c8fddd, 0x023c172d, 0x00f14bfc, 0x013f6956, 0x03d96c25, 0x003fcfff}}},
+ {X: Field{[10]uint32{0x0233be60, 0x026994bd, 0x02d68ba8, 0x000bb3ad, 0x011aa2fc, 0x010c1ec8, 0x0348aeb6, 0x009b97ef, 0x00ea05dc, 0x0027faf6}}, Y: Field{[10]uint32{0x02630bee, 0x0390d923, 0x0099272b, 0x0258b1de, 0x033fc5dc, 0x02ef1783, 0x036e785c, 0x00e292b4, 0x03c8ea62, 0x0030219e}}},
+ {X: Field{[10]uint32{0x000b1601, 0x00df24d8, 0x03acfe21, 0x02046d64, 0x010347b3, 0x03763e7c, 0x02bed696, 0x02d23b6d, 0x0154c534, 0x003621ac}}, Y: Field{[10]uint32{0x0375d077, 0x02ad7583, 0x03964f10, 0x03064edd, 0x03d74028, 0x03faa8fd, 0x02246c8e, 0x036aa713, 0x0118aa07, 0x002932f0}}},
+ {X: Field{[10]uint32{0x006e9d47, 0x03929d11, 0x0349ab7e, 0x009f73b0, 0x01096a8e, 0x03fc85e8, 0x03f6ab68, 0x028e9820, 0x03efc187, 0x002be332}}, Y: Field{[10]uint32{0x03e941f0, 0x01c5b3da, 0x03dc4990, 0x00cc96a3, 0x031662a7, 0x0395539b, 0x025b625b, 0x000e49f6, 0x027c9988, 0x0000fb8c}}},
+ {X: Field{[10]uint32{0x01d3d26a, 0x00662f1f, 0x033654a6, 0x0162a65e, 0x0042d334, 0x012952a1, 0x0051d224, 0x0098728d, 0x00e7891c, 0x0007a600}}, Y: Field{[10]uint32{0x01a215d4, 0x0269dcd9, 0x013bd566, 0x03259bdd, 0x03978120, 0x020b9acd, 0x031a321e, 0x03f03757, 0x0186bd6f, 0x000c8be2}}},
+ {X: Field{[10]uint32{0x03150044, 0x0193159d, 0x015e415d, 0x029a8b49, 0x00aae4ff, 0x00ea43cc, 0x000dc97f, 0x02002561, 0x02f29f00, 0x00045718}}, Y: Field{[10]uint32{0x02d8af95, 0x035f8cba, 0x01a14a8f, 0x017a2f0b, 0x02cceef9, 0x0393f7c2, 0x03660e01, 0x03397bf5, 0x00127e37, 0x00136513}}},
+ {X: Field{[10]uint32{0x02e0178c, 0x01565a0a, 0x02ba2598, 0x017fd0a0, 0x033f5313, 0x0144896f, 0x00d78e8e, 0x01e776cd, 0x039dacbf, 0x000072e7}}, Y: Field{[10]uint32{0x011a4bf5, 0x01a32d2f, 0x0284a50c, 0x03421577, 0x02d7b602, 0x02f3c8d3, 0x01595e20, 0x026f2508, 0x00e37a18, 0x0023f4e9}}},
+ {X: Field{[10]uint32{0x03bfe357, 0x01e7b94b, 0x0370b66a, 0x0163e779, 0x01af86d2, 0x0326478e, 0x02b2a5bd, 0x03059d2e, 0x03c463e4, 0x0018a856}}, Y: Field{[10]uint32{0x02f52749, 0x02f792e3, 0x01e9f9f7, 0x0107a3af, 0x02d376fe, 0x01bd1548, 0x02da69fe, 0x01f93495, 0x029fd946, 0x002de3f2}}},
+ {X: Field{[10]uint32{0x02df505e, 0x0047a4d7, 0x01ec454b, 0x00a96867, 0x026bd2c8, 0x01cefb53, 0x0170914a, 0x006520c5, 0x00e05bf3, 0x0015d29b}}, Y: Field{[10]uint32{0x00001318, 0x0206a5d7, 0x00b789b2, 0x02ea2ed7, 0x02d02dba, 0x006a6943, 0x02a60b8c, 0x03cce3c3, 0x02cccbd6, 0x0039ecb8}}},
+ {X: Field{[10]uint32{0x024084e6, 0x02b47549, 0x023194ad, 0x02ad5839, 0x01c5ae50, 0x027b493f, 0x039cedad, 0x018692eb, 0x037ca3a3, 0x001931b8}}, Y: Field{[10]uint32{0x00116067, 0x025bb59a, 0x008d3f79, 0x003a09c7, 0x004b7a48, 0x00d6b801, 0x0054a07f, 0x02d01027, 0x035656b6, 0x0039b90b}}},
+ {X: Field{[10]uint32{0x0100fd84, 0x002041d2, 0x03b11553, 0x011ab79f, 0x0371b277, 0x01d581e9, 0x0246af84, 0x02379555, 0x0297fe4a, 0x00124196}}, Y: Field{[10]uint32{0x030ae7f9, 0x0217c6b5, 0x03342834, 0x01efeed0, 0x0094e721, 0x01ec9d9f, 0x038eb43c, 0x00c2426a, 0x009f67a0, 0x0026175a}}},
+ {X: Field{[10]uint32{0x030999cb, 0x02532a8c, 0x009aa443, 0x0079f962, 0x028500c9, 0x03a227cc, 0x02a683b7, 0x0242f61d, 0x03f91857, 0x001bf4cb}}, Y: Field{[10]uint32{0x01d2de3b, 0x025ea321, 0x0278c644, 0x024e3c69, 0x03efbd64, 0x031afc07, 0x013784e9, 0x03c975ea, 0x00841be1, 0x0004bfa0}}},
+ {X: Field{[10]uint32{0x02d3b185, 0x02e4ad98, 0x0098b4eb, 0x03109bf7, 0x012d6d12, 0x01c25214, 0x0334812f, 0x027239bf, 0x00da4818, 0x001299f5}}, Y: Field{[10]uint32{0x038150f5, 0x033a945f, 0x01540684, 0x0174e269, 0x033e5009, 0x03e9c6e3, 0x03c668ee, 0x02ddddcd, 0x03f2f6e5, 0x00163aa0}}},
+ {X: Field{[10]uint32{0x039f4db2, 0x0386fae9, 0x00c85987, 0x03165708, 0x00edecf4, 0x026b6d19, 0x020752db, 0x009dc174, 0x0131d3a9, 0x003a86b2}}, Y: Field{[10]uint32{0x0322b83e, 0x03dbcd19, 0x008309c3, 0x014da292, 0x03426b57, 0x001bf646, 0x0316597b, 0x02580560, 0x030e25aa, 0x0033da26}}},
+ {X: Field{[10]uint32{0x01545c5a, 0x0136fd37, 0x006c12de, 0x03cfc65b, 0x0161414a, 0x02af2672, 0x032663f7, 0x00149f55, 0x026e248a, 0x00232cd6}}, Y: Field{[10]uint32{0x000cfcfa, 0x0254b99a, 0x02a7c4a3, 0x02afcdaf, 0x01c43292, 0x00235403, 0x02dfc3fa, 0x0336d99b, 0x00e047da, 0x0012ccb9}}},
+ {X: Field{[10]uint32{0x027f21c8, 0x02673374, 0x008e3c8d, 0x02110c1e, 0x00843186, 0x01160558, 0x02f8dfbf, 0x030bab3f, 0x000cf150, 0x00091f20}}, Y: Field{[10]uint32{0x031d0db6, 0x010ba147, 0x030a7579, 0x01776cf9, 0x02a70839, 0x020a7adf, 0x026462f5, 0x03468398, 0x00dc914f, 0x003320b6}}},
+ {X: Field{[10]uint32{0x03426673, 0x012191cc, 0x02482c9f, 0x0133b480, 0x025e0c4a, 0x0040dc23, 0x00f35666, 0x0249f3ec, 0x03c407fb, 0x001950f5}}, Y: Field{[10]uint32{0x0107ebab, 0x023cf51e, 0x0019c88d, 0x00c0ff72, 0x0020bbc7, 0x00c7a9d4, 0x00ae0d16, 0x02b5d605, 0x029a69b4, 0x003894ac}}},
+ {X: Field{[10]uint32{0x0388e6d0, 0x0155ad30, 0x026c29b3, 0x036cb840, 0x02d5e759, 0x03d72705, 0x01da4aca, 0x00ce8e82, 0x0255d81c, 0x00313c44}}, Y: Field{[10]uint32{0x00a8fd49, 0x03554747, 0x014f24fc, 0x02ac61ba, 0x0195379e, 0x0123d463, 0x00e5530e, 0x022ad605, 0x02a81af4, 0x0038b98d}}},
+ {X: Field{[10]uint32{0x02019eec, 0x0363be57, 0x005981ba, 0x023f2798, 0x01b08284, 0x012bd681, 0x003d92a1, 0x00e6ddce, 0x029d85da, 0x0033c61a}}, Y: Field{[10]uint32{0x0079e3fc, 0x01156f2c, 0x0064248f, 0x01f81873, 0x006b49f3, 0x0100425a, 0x03672a16, 0x03f8214f, 0x021bc860, 0x0032af78}}},
+ {X: Field{[10]uint32{0x02ea8f32, 0x02ba40e1, 0x037f6be9, 0x011cf517, 0x00fe9d1d, 0x0222e3f6, 0x015c2c7a, 0x03704f96, 0x0353ad69, 0x0039b0f8}}, Y: Field{[10]uint32{0x00690be1, 0x001f0a2b, 0x02b57021, 0x008357b4, 0x0396b5a9, 0x012617cc, 0x0210800a, 0x01707485, 0x00c94f45, 0x001f4efb}}},
+ {X: Field{[10]uint32{0x01060988, 0x029ecbb0, 0x01c118d6, 0x03ddcc34, 0x01d1ba01, 0x033c8a44, 0x0295dc6b, 0x01553551, 0x03a39bcb, 0x000e09ec}}, Y: Field{[10]uint32{0x0225a211, 0x0142bff2, 0x027bfd9f, 0x01890648, 0x00c800a3, 0x02e3d304, 0x0018c5ec, 0x03ba0c6e, 0x0047b7c9, 0x000c904c}}},
+ {X: Field{[10]uint32{0x006d24fa, 0x01582373, 0x0013e48f, 0x021446d5, 0x004b55ed, 0x0102c3bd, 0x01ae898c, 0x01268aa3, 0x0138a4b1, 0x003fcdf3}}, Y: Field{[10]uint32{0x01c49048, 0x00cb2b2e, 0x03ceca68, 0x0354810c, 0x01f3ffde, 0x01a14ea5, 0x03a489b8, 0x019995f0, 0x01198f4c, 0x00179856}}},
+ {X: Field{[10]uint32{0x020ce509, 0x034fa28c, 0x001def68, 0x01f11545, 0x01d9e53c, 0x03a0edd4, 0x03343229, 0x00beb87b, 0x03c85b49, 0x002f7fd3}}, Y: Field{[10]uint32{0x03de3d20, 0x013f7822, 0x00b8a43b, 0x0139135c, 0x02531f8a, 0x02656784, 0x015088a2, 0x01759985, 0x00649dcc, 0x003a3f66}}},
+ {X: Field{[10]uint32{0x03bcd0af, 0x02a6cf0e, 0x02aef625, 0x001c9051, 0x02e59d10, 0x00063c47, 0x032719d9, 0x03cb55fe, 0x029c313f, 0x003f5ae8}}, Y: Field{[10]uint32{0x01c1079d, 0x00fa5f7d, 0x02bf6de7, 0x03a078e2, 0x035018db, 0x0065ae1d, 0x01f584b3, 0x00430c0e, 0x035e9133, 0x00061f6b}}},
+ {X: Field{[10]uint32{0x0329ff28, 0x02dc42c6, 0x03b621d0, 0x01e05017, 0x004f4b5f, 0x02b0c05e, 0x032ae1c3, 0x01a4a7bd, 0x022d4860, 0x003a8f10}}, Y: Field{[10]uint32{0x03bf208c, 0x03fbe48c, 0x02af2564, 0x01f3be66, 0x01d10b37, 0x028c5b89, 0x03637eef, 0x0381bf0d, 0x001ec6c3, 0x0039162d}}},
+ {X: Field{[10]uint32{0x007b3978, 0x01c14fd2, 0x03c390f8, 0x03b6bc6c, 0x0002ba8a, 0x002d166e, 0x0228924f, 0x03580234, 0x01334982, 0x001194dc}}, Y: Field{[10]uint32{0x01adf3f0, 0x03fd9693, 0x017006bb, 0x0368ee25, 0x023b2444, 0x00850f72, 0x003bb29e, 0x0277bfc9, 0x014c1318, 0x003f6599}}},
+ {X: Field{[10]uint32{0x0178d8f5, 0x00dc5da1, 0x039dd996, 0x012a8b43, 0x01b5b29b, 0x03e78414, 0x036227f9, 0x001a6ab1, 0x03f11226, 0x003f6924}}, Y: Field{[10]uint32{0x01d46fa3, 0x02e1b1f8, 0x03a06d8e, 0x02d4958c, 0x02e04e55, 0x02600e98, 0x03a69d7f, 0x004db7d0, 0x013df63d, 0x00168cd6}}},
+ {X: Field{[10]uint32{0x01f3e4c1, 0x0185d3ce, 0x000cd096, 0x015f15c8, 0x027ab5e7, 0x03a8dbfb, 0x028e2835, 0x00062951, 0x02e95f09, 0x001d3f10}}, Y: Field{[10]uint32{0x018751f0, 0x02c94848, 0x010b32a8, 0x01d52ff4, 0x033760e0, 0x017e3d75, 0x006204d4, 0x0324536a, 0x03403802, 0x00332a82}}},
+ {X: Field{[10]uint32{0x00483d53, 0x022ec6bb, 0x03bafe11, 0x030a0503, 0x030d98f8, 0x0239051d, 0x03818da5, 0x01e68032, 0x004a997b, 0x0002633b}}, Y: Field{[10]uint32{0x02aaec08, 0x01a26b1f, 0x02ae4d81, 0x02782103, 0x01ac422d, 0x020b0675, 0x03b82fa1, 0x017354d9, 0x00581494, 0x000bf398}}},
+ {X: Field{[10]uint32{0x03cba60f, 0x00dd2c44, 0x01fc13c2, 0x01025b31, 0x01e4fa15, 0x025ff55d, 0x015119f6, 0x032f7081, 0x01b789a5, 0x0031d0b7}}, Y: Field{[10]uint32{0x02f3532d, 0x02837a91, 0x0168013f, 0x03d3cac7, 0x01b32248, 0x039b6ea8, 0x002474b0, 0x02438750, 0x012834a9, 0x0026c2bc}}},
+ {X: Field{[10]uint32{0x0391eb89, 0x0027f479, 0x0019b774, 0x0360ec4e, 0x005b5973, 0x03131c89, 0x00979136, 0x0019aad6, 0x004f9a78, 0x0036e8b8}}, Y: Field{[10]uint32{0x033baf43, 0x03f29798, 0x016a889d, 0x03821c11, 0x03aa0e90, 0x005e3c1d, 0x00240e7a, 0x017dd05a, 0x01223adb, 0x000d1d1e}}},
+ {X: Field{[10]uint32{0x02f6538d, 0x0271a710, 0x01fbf106, 0x02183ada, 0x036cc47f, 0x03091cac, 0x0184dcb6, 0x021619ee, 0x02436e59, 0x001b532b}}, Y: Field{[10]uint32{0x01e0a84f, 0x02ec7cf5, 0x01cedb98, 0x019f59fc, 0x02125c2b, 0x00fbfbd4, 0x03c53c92, 0x03df3b75, 0x00c9f0c4, 0x0031fed6}}},
+ {X: Field{[10]uint32{0x00523982, 0x005a80ee, 0x0010f9cc, 0x00e5bf65, 0x029ec5b5, 0x02eb8a46, 0x0264ed43, 0x01ec156d, 0x036ed5b6, 0x0013115f}}, Y: Field{[10]uint32{0x00f344eb, 0x007fb548, 0x00e988e9, 0x01ffb086, 0x02a435f4, 0x029ca09e, 0x022ed682, 0x03867d51, 0x03cf20aa, 0x00124b96}}},
+ {X: Field{[10]uint32{0x0346eb3f, 0x035107f2, 0x018179cd, 0x030c1933, 0x0151fd8a, 0x01d2b8a5, 0x00033bfd, 0x022907d6, 0x01223477, 0x00135f9a}}, Y: Field{[10]uint32{0x022750c4, 0x024bd1b1, 0x012ad0c0, 0x001ef443, 0x036d7bbd, 0x01eb692e, 0x00538791, 0x0274f0e9, 0x00b2ff5c, 0x001d5bb0}}},
+ {X: Field{[10]uint32{0x03d464b2, 0x0311f8c1, 0x0115cfef, 0x027292be, 0x004a4839, 0x02dd3be5, 0x03c565ea, 0x0351e6f6, 0x025069ba, 0x0002b16f}}, Y: Field{[10]uint32{0x02874345, 0x02df3eb7, 0x00381928, 0x02a94a6d, 0x008bad5d, 0x02739176, 0x0322c546, 0x0042d8dd, 0x03febc58, 0x000c91b8}}},
+ {X: Field{[10]uint32{0x023995b2, 0x027a1036, 0x002d15d6, 0x002d8362, 0x0224f91e, 0x014d2c96, 0x026a4812, 0x0004e6ff, 0x01412135, 0x001f6a23}}, Y: Field{[10]uint32{0x00b9c587, 0x0080d23c, 0x03eb5cbc, 0x00b262b6, 0x026a2d09, 0x025dc90c, 0x00bb03cf, 0x0293e1c0, 0x018d62a7, 0x0026222b}}},
+ {X: Field{[10]uint32{0x01abf149, 0x014af8ec, 0x037d4e8b, 0x00ac1744, 0x015d3b92, 0x034f3ad2, 0x01aa3eb4, 0x02734832, 0x031a6323, 0x000e27fc}}, Y: Field{[10]uint32{0x00fe7c93, 0x03000dce, 0x02d49dc3, 0x03b55456, 0x01042f54, 0x01db0521, 0x022ab22b, 0x002fca28, 0x022fbc84, 0x002c3b0a}}},
+ {X: Field{[10]uint32{0x016c4370, 0x009e9756, 0x036f8f3c, 0x012637f3, 0x02a94b2e, 0x00f55cdb, 0x025afaad, 0x00a2cba9, 0x02cf5fb1, 0x00307306}}, Y: Field{[10]uint32{0x034fd38e, 0x010279a4, 0x0153b27c, 0x02a706ec, 0x00ecfec6, 0x028aa233, 0x006bf2da, 0x02b4c5b3, 0x004d1986, 0x002240d6}}},
+ {X: Field{[10]uint32{0x03c9aa3a, 0x01462d21, 0x03cf98b3, 0x015fa46c, 0x0002a349, 0x00725b01, 0x0340be83, 0x01a28a91, 0x0252b927, 0x000e66b3}}, Y: Field{[10]uint32{0x00800005, 0x03ac4d12, 0x02869786, 0x030f2812, 0x03fd9af1, 0x035827e8, 0x017ae095, 0x00e91e84, 0x00b3abdb, 0x002420c5}}},
+ {X: Field{[10]uint32{0x0206d0a2, 0x020eea6e, 0x03c76d82, 0x001832b6, 0x01470cc6, 0x001694ae, 0x02d98593, 0x000695c0, 0x03fd8c9d, 0x0001a550}}, Y: Field{[10]uint32{0x031057df, 0x03a2865c, 0x01d1b6f4, 0x030e2a40, 0x00404eb1, 0x00ca6022, 0x0348f17b, 0x01cbb4b8, 0x03d9a0c3, 0x003a6639}}},
+ {X: Field{[10]uint32{0x00200100, 0x02dabdfa, 0x02d6d400, 0x00f3dc0e, 0x00911e55, 0x01cac70a, 0x01289a58, 0x011bbd68, 0x014fdf9b, 0x00085cb5}}, Y: Field{[10]uint32{0x03687a8c, 0x00625c46, 0x035d9edc, 0x03afd90a, 0x0334a8fb, 0x01cac89b, 0x0020df57, 0x00397832, 0x007d3b79, 0x0008486d}}},
+ {X: Field{[10]uint32{0x015e8b56, 0x017df3a7, 0x03f286d4, 0x00e84390, 0x01cc2713, 0x01248e59, 0x026847d2, 0x00939743, 0x03e937a3, 0x003d81bd}}, Y: Field{[10]uint32{0x0286e007, 0x039d5c4f, 0x008d1a30, 0x02024728, 0x03f5b805, 0x024c9284, 0x03379448, 0x00878b44, 0x03b8622a, 0x001c004f}}},
+ {X: Field{[10]uint32{0x0040fc99, 0x03639c5f, 0x0214edfc, 0x00b7526a, 0x012f95bb, 0x00d0abcd, 0x0032013b, 0x02d93c7d, 0x00c2dfce, 0x0027c548}}, Y: Field{[10]uint32{0x018e863d, 0x035534e2, 0x001996ca, 0x029040c2, 0x02d53dc0, 0x0192a41f, 0x024fe3b7, 0x03c0123e, 0x0226feb1, 0x003fa3f2}}},
+ {X: Field{[10]uint32{0x031eaa08, 0x024dc288, 0x0260518a, 0x00632ca1, 0x0053afe4, 0x01724f4e, 0x00674eb7, 0x019dbbac, 0x036e7587, 0x00199c2b}}, Y: Field{[10]uint32{0x03eb09f3, 0x02933b92, 0x0053734b, 0x03314936, 0x00fb59fc, 0x02ec4bf6, 0x03fcee90, 0x01c7b825, 0x035edfc0, 0x000a64ff}}},
+ {X: Field{[10]uint32{0x03898350, 0x0166a52c, 0x0152465f, 0x013ab5b2, 0x0140650a, 0x03a5530b, 0x00a4e2fe, 0x0312f393, 0x018b345c, 0x000571b5}}, Y: Field{[10]uint32{0x0363cf7f, 0x0039de28, 0x02cf3a6b, 0x02a9cf7c, 0x00221b12, 0x014a34b0, 0x020f3adf, 0x01865996, 0x013b4727, 0x00022531}}},
+ {X: Field{[10]uint32{0x01389621, 0x00665ddd, 0x024548a9, 0x0082583a, 0x00adfffd, 0x017e1692, 0x0293ef17, 0x03790b24, 0x02bf60db, 0x002f12ad}}, Y: Field{[10]uint32{0x01040e42, 0x00d1d846, 0x01a4437a, 0x01d18552, 0x0100791a, 0x0335c64c, 0x016bb68e, 0x038a9d17, 0x00ba24a4, 0x003f8a28}}},
+ {X: Field{[10]uint32{0x013e6ee1, 0x03cb8443, 0x01c8054e, 0x0141001f, 0x0064f20e, 0x031c0eea, 0x015e87f1, 0x03cbdb92, 0x006323fb, 0x00176ac7}}, Y: Field{[10]uint32{0x02695d93, 0x00d2a194, 0x023059c1, 0x0305acc3, 0x03e7f01a, 0x039a2ffe, 0x02db4153, 0x0182f6b9, 0x0200cf44, 0x0007f430}}},
+ {X: Field{[10]uint32{0x028acaf2, 0x01f0625a, 0x03bb2dd6, 0x03639c0b, 0x035cea0b, 0x030ce73a, 0x0228dbb0, 0x01f111ef, 0x0157d735, 0x000b7c73}}, Y: Field{[10]uint32{0x02f1b9e8, 0x03d096b8, 0x01741492, 0x019e6577, 0x0186eefa, 0x0136ddbd, 0x039c0319, 0x0323770e, 0x001120cb, 0x000cc648}}},
+ {X: Field{[10]uint32{0x00d9ab8d, 0x01377bd8, 0x02fea058, 0x019054d5, 0x023d9f97, 0x034aeb1d, 0x0100585e, 0x036bc20c, 0x00175a02, 0x000b606b}}, Y: Field{[10]uint32{0x01f9a0b7, 0x02060f0b, 0x011c9cd5, 0x00b33a7d, 0x0021052e, 0x039b09b9, 0x0297fd49, 0x0217d5e0, 0x00d13b17, 0x003e6423}}},
+ {X: Field{[10]uint32{0x037dc097, 0x0241c090, 0x00db59ef, 0x03d3c47a, 0x0367b1e7, 0x00d5bac5, 0x000d40a5, 0x00b9cc91, 0x0362fb73, 0x0007eb05}}, Y: Field{[10]uint32{0x039b8729, 0x0176569e, 0x031584df, 0x009c04a7, 0x015ae7ce, 0x01d72cc3, 0x01a08ace, 0x01444cad, 0x004ca58d, 0x003b755e}}},
+ {X: Field{[10]uint32{0x00c8c98e, 0x00659e0e, 0x01a9cc2b, 0x03c266c5, 0x0245caba, 0x02aa421b, 0x0093e884, 0x02e42e03, 0x035b4694, 0x00341a82}}, Y: Field{[10]uint32{0x0347def3, 0x00833ec1, 0x02da4986, 0x00517de2, 0x0114fcc8, 0x008bfcec, 0x01b391b2, 0x02c93f34, 0x02ba2777, 0x00132b51}}},
+ {X: Field{[10]uint32{0x01e53445, 0x0054ac5f, 0x01d6929b, 0x02e33e6c, 0x01870059, 0x02dbc1a5, 0x007928ac, 0x0103e664, 0x03275902, 0x00124a37}}, Y: Field{[10]uint32{0x0300d505, 0x029d468c, 0x00ac53db, 0x0330a1aa, 0x03240b83, 0x01f70cda, 0x00c400f3, 0x00ec39ec, 0x020b655b, 0x002ddcf9}}},
+ {X: Field{[10]uint32{0x03a28390, 0x018e7fe1, 0x01dda1b8, 0x01430cc7, 0x03f945d4, 0x00c8a09f, 0x02992617, 0x0060452e, 0x01f9cd54, 0x002986f3}}, Y: Field{[10]uint32{0x00d93a68, 0x03fa01ee, 0x004eeb40, 0x01c3af99, 0x018e61b3, 0x0007f893, 0x0201b2b3, 0x02eca151, 0x016ed6fd, 0x000f9dc7}}},
+ {X: Field{[10]uint32{0x01db93c3, 0x0106c544, 0x0093f9f6, 0x013041fc, 0x030fb8e3, 0x00029e5d, 0x031228c0, 0x02deaece, 0x01b93e2f, 0x0014d68d}}, Y: Field{[10]uint32{0x02ff786f, 0x027fb26c, 0x02e96f0c, 0x02d7a354, 0x0292475f, 0x01f0b8f0, 0x0283fba2, 0x033230e0, 0x03355657, 0x00091c7f}}},
+ {X: Field{[10]uint32{0x0065d4d0, 0x01e42d31, 0x00acfa5f, 0x00ab442e, 0x00f23ad4, 0x01af9c2c, 0x02888bbc, 0x003ca4dd, 0x012ce014, 0x0039a299}}, Y: Field{[10]uint32{0x001a7385, 0x03e7074f, 0x0094c06c, 0x01f82e03, 0x00ea6e0c, 0x02b54848, 0x034ecb6d, 0x00182cc4, 0x010cc368, 0x001275ce}}},
+ {X: Field{[10]uint32{0x03e25fde, 0x03c3a64d, 0x007576b4, 0x01bc22f1, 0x01f5f05f, 0x03a883a6, 0x017855c3, 0x03334fbc, 0x027a74df, 0x003a24e7}}, Y: Field{[10]uint32{0x0261b173, 0x020a7fb5, 0x0388b3e0, 0x015368b0, 0x033773f4, 0x0127930a, 0x00c0fdf4, 0x0156df24, 0x033eff0a, 0x001ad229}}},
+ {X: Field{[10]uint32{0x00751543, 0x0003ebd2, 0x01dafbfd, 0x020d9f0c, 0x007fe164, 0x029b9c2b, 0x00fa2930, 0x0061d200, 0x03ea3145, 0x00125804}}, Y: Field{[10]uint32{0x038c4332, 0x00b8bc6a, 0x03f65614, 0x0022e14d, 0x02581e15, 0x020accc4, 0x00001cb2, 0x0155be29, 0x01118790, 0x002d5c54}}},
+ {X: Field{[10]uint32{0x004b1e1f, 0x0370f060, 0x0120189d, 0x00a79f31, 0x01bb0f6c, 0x00981342, 0x0157a072, 0x030ea55a, 0x01b0b1ef, 0x001111cd}}, Y: Field{[10]uint32{0x0259d6e4, 0x02f9001f, 0x0321f9ae, 0x027cca96, 0x023e9a43, 0x00143956, 0x0332a857, 0x02eacea5, 0x00a3461a, 0x002c6b58}}},
+ {X: Field{[10]uint32{0x02d9511c, 0x02d0450f, 0x02475da3, 0x02279dea, 0x03e88821, 0x02e72630, 0x01a40e74, 0x01f573e1, 0x02c84acd, 0x00016016}}, Y: Field{[10]uint32{0x023c07c0, 0x0204d35a, 0x02363bb4, 0x00882bab, 0x0301ad00, 0x03635a6d, 0x0170dcf0, 0x014cfdef, 0x023bfbba, 0x003254a4}}},
+ {X: Field{[10]uint32{0x039a9501, 0x02ddfbc9, 0x00898dca, 0x02f711b2, 0x02c12619, 0x02da4080, 0x01c53a12, 0x031e1578, 0x011830fd, 0x0022b045}}, Y: Field{[10]uint32{0x01ca4fa4, 0x035af52a, 0x0053ad59, 0x02e376cc, 0x00d5deb3, 0x02fec800, 0x0015493a, 0x03e83874, 0x00c77867, 0x000a7edf}}},
+ {X: Field{[10]uint32{0x02ab542d, 0x01ed1102, 0x01ec67bd, 0x01bc8bd0, 0x014d7022, 0x031efbfd, 0x03c8a7cc, 0x02632da3, 0x01d3e429, 0x002a91eb}}, Y: Field{[10]uint32{0x003683e9, 0x0079d731, 0x01816f77, 0x013f0656, 0x024f8e8c, 0x03d9d166, 0x034f9e39, 0x036630eb, 0x0081ebef, 0x0033e96b}}},
+ {X: Field{[10]uint32{0x0199889a, 0x02236e79, 0x013e419e, 0x026390cf, 0x03d39848, 0x019248ad, 0x0133f753, 0x0053ba48, 0x0127a27a, 0x003cd410}}, Y: Field{[10]uint32{0x001b45df, 0x0337c218, 0x03313c09, 0x008e819a, 0x0256c6d4, 0x01ef2e21, 0x02cdae54, 0x01a2a213, 0x037e9f98, 0x003c6be7}}},
+ {X: Field{[10]uint32{0x024bf08d, 0x03bbbb5f, 0x0398c7c6, 0x03964986, 0x02272d3c, 0x026a6269, 0x00870766, 0x039a20d6, 0x0344edcb, 0x000cdcc3}}, Y: Field{[10]uint32{0x01775a6b, 0x0172f9b8, 0x02794860, 0x01fb31c2, 0x01b6fd05, 0x02f4b5e2, 0x02a32d81, 0x005b412c, 0x0128d877, 0x000fe0ce}}},
+ {X: Field{[10]uint32{0x02dfb0d6, 0x02d2850f, 0x034786e5, 0x01fef84d, 0x00a33d41, 0x02492730, 0x00bdf072, 0x03d61220, 0x02dc8c06, 0x000c5a75}}, Y: Field{[10]uint32{0x0274ce5f, 0x018fa1aa, 0x037fcea1, 0x0030bf79, 0x00a31160, 0x023d0a32, 0x0382f596, 0x00e0e6e9, 0x022dec56, 0x000aa450}}},
+ {X: Field{[10]uint32{0x002a4429, 0x03f331bc, 0x038e980c, 0x0114355f, 0x03c8c43a, 0x02a370fa, 0x007a64d5, 0x02ba073c, 0x0182013a, 0x00363191}}, Y: Field{[10]uint32{0x03822aea, 0x012312a4, 0x02a7be7f, 0x011e1278, 0x02c4773d, 0x027fb8ec, 0x012f195c, 0x018eba32, 0x00519688, 0x003121cc}}},
+ {X: Field{[10]uint32{0x002b6f11, 0x007da7d0, 0x03fe1789, 0x03605368, 0x007e59c8, 0x018c6e21, 0x03cb0395, 0x0091bde9, 0x001f307e, 0x002b99c4}}, Y: Field{[10]uint32{0x01ed44cb, 0x007871c4, 0x022aee41, 0x03e5f608, 0x031d3900, 0x027e68d5, 0x02767afa, 0x0027a2e5, 0x03b4a90b, 0x003d7cb6}}},
+ {X: Field{[10]uint32{0x01dbd8ee, 0x035fc520, 0x00f0c1a9, 0x010e095d, 0x02b4e2ff, 0x02068b17, 0x00a7dc9c, 0x020ce070, 0x023183ba, 0x002a7a1c}}, Y: Field{[10]uint32{0x02468901, 0x03775be5, 0x023354b7, 0x02b0f5ce, 0x03333153, 0x039a0d13, 0x01fb59be, 0x0038cf5a, 0x019990d9, 0x0025a041}}},
+ {X: Field{[10]uint32{0x003376f2, 0x01078d39, 0x0048dad1, 0x01e7ed6f, 0x00694ef8, 0x00cf9a12, 0x014f43aa, 0x03502c9a, 0x021c0ae7, 0x00185afc}}, Y: Field{[10]uint32{0x0080fc77, 0x01772526, 0x02799bf0, 0x016a8f67, 0x024a2772, 0x02d693ea, 0x02451153, 0x0282ea0c, 0x03832aa8, 0x002fb063}}},
+ {X: Field{[10]uint32{0x033f5c2d, 0x0144262b, 0x0295f8d3, 0x033dc069, 0x0339be47, 0x03a6f96e, 0x02882b11, 0x00cf51e2, 0x0335601f, 0x000487a0}}, Y: Field{[10]uint32{0x0103b3e8, 0x00a8a613, 0x03659f68, 0x01c11216, 0x03010dd0, 0x02ffe077, 0x005fdfdc, 0x02812df6, 0x013318fa, 0x000ba64a}}},
+ {X: Field{[10]uint32{0x009f1141, 0x02325eee, 0x0193325c, 0x00a12a42, 0x003a83cc, 0x03bc6f12, 0x0013948f, 0x032a7025, 0x03973025, 0x002fe211}}, Y: Field{[10]uint32{0x02ad5386, 0x01c4fd9b, 0x0363f0e2, 0x0181aaee, 0x016de247, 0x020e3449, 0x015ae3a7, 0x03475e1b, 0x03263d26, 0x000654e8}}},
+ {X: Field{[10]uint32{0x02f811f0, 0x0180295a, 0x02124e86, 0x0383ebb6, 0x00dd1b06, 0x0371d734, 0x0094d4bd, 0x0003e617, 0x01a65a38, 0x001f0a3a}}, Y: Field{[10]uint32{0x02b5c277, 0x005218e2, 0x03863134, 0x035bcb90, 0x002d396f, 0x001d09ed, 0x014cedb7, 0x027c0e24, 0x01b70e33, 0x0028dd5b}}},
+ {X: Field{[10]uint32{0x00a66077, 0x024c5ca4, 0x02b9cb8b, 0x0244c6f0, 0x0346be07, 0x02e48e1e, 0x00b5bf6b, 0x00b3d073, 0x01ad45e6, 0x00397b1b}}, Y: Field{[10]uint32{0x004f0e19, 0x00ceaeb9, 0x00eda67c, 0x0249e884, 0x012bacd0, 0x038f1348, 0x014bea4b, 0x000f2be1, 0x02cc7757, 0x00340117}}},
+ {X: Field{[10]uint32{0x018c2fed, 0x00d85a44, 0x02043583, 0x00f8d363, 0x00703626, 0x0112965d, 0x031c3525, 0x025517ec, 0x021f9203, 0x001bf25b}}, Y: Field{[10]uint32{0x038a9a51, 0x02eaeb62, 0x0089d9aa, 0x00376434, 0x026ca7c2, 0x010e5f8d, 0x030457f8, 0x037a365a, 0x02871571, 0x00340cb7}}},
+ {X: Field{[10]uint32{0x006e4133, 0x0244569d, 0x0149acf4, 0x03738684, 0x021db684, 0x01f04c51, 0x02790914, 0x02711d0b, 0x03511c21, 0x002278f4}}, Y: Field{[10]uint32{0x030c5c90, 0x00be4618, 0x00b03689, 0x02eeec89, 0x0352fde5, 0x000f55fa, 0x00b53d23, 0x0211a361, 0x030b672e, 0x002aaf65}}},
+ {X: Field{[10]uint32{0x010d5890, 0x0238628e, 0x01de84ff, 0x011c3fa8, 0x00c043e9, 0x02b6e36a, 0x00eb44ea, 0x01914e1e, 0x00f0b213, 0x000ade98}}, Y: Field{[10]uint32{0x004a5244, 0x02eeadf4, 0x02f41ae8, 0x01b46409, 0x01b80668, 0x02ce2cd9, 0x03407091, 0x00ca8164, 0x03161ba0, 0x000320a6}}},
+ {X: Field{[10]uint32{0x009627e7, 0x01c8141b, 0x029d42f8, 0x01e6498e, 0x01bfeb98, 0x021e0bc9, 0x037c3dfa, 0x02badf9b, 0x031ac2c2, 0x001192e7}}, Y: Field{[10]uint32{0x02f7502c, 0x016d6d6d, 0x028aadac, 0x001db2d3, 0x029a23a1, 0x0140e1d7, 0x03761dbe, 0x02f30b7d, 0x03f459e1, 0x001f0982}}},
+ {X: Field{[10]uint32{0x019b616f, 0x02d8e89d, 0x035ab268, 0x006a61ba, 0x000b2514, 0x01dd2d9c, 0x0331519e, 0x008a5438, 0x02304357, 0x001e494f}}, Y: Field{[10]uint32{0x027f88e1, 0x000d61b8, 0x03f69100, 0x0363c95d, 0x02ed6467, 0x01a59972, 0x00f5bae9, 0x008d4ec8, 0x017a55b6, 0x00369827}}},
+ {X: Field{[10]uint32{0x01399556, 0x010b45b7, 0x02773876, 0x00250d65, 0x01019acb, 0x0154643e, 0x02b1967f, 0x03032d70, 0x007ce900, 0x00018d0a}}, Y: Field{[10]uint32{0x03debead, 0x02d186b0, 0x037581fc, 0x00f8c4af, 0x00223c47, 0x014ccd2b, 0x00042db2, 0x005804c3, 0x01098cf0, 0x00288d42}}},
+ {X: Field{[10]uint32{0x021bee98, 0x01fc60d0, 0x00223358, 0x012e4588, 0x02d7ef2f, 0x01a9d6d0, 0x0018557f, 0x03f56e8d, 0x01c38bd8, 0x001d8448}}, Y: Field{[10]uint32{0x02dd530f, 0x025ef6d4, 0x010405c8, 0x00d2bebb, 0x0276070e, 0x02eca489, 0x026eeb01, 0x01d0d443, 0x015ff9c1, 0x0010051c}}},
+ {X: Field{[10]uint32{0x01453413, 0x0375819b, 0x034b3e63, 0x03870bc1, 0x0077990f, 0x039428ac, 0x01a30784, 0x037c6967, 0x00c1bfbb, 0x00098632}}, Y: Field{[10]uint32{0x02a48da0, 0x01a7774c, 0x01ab0581, 0x016cc9bf, 0x024bdaf3, 0x03a8f2d1, 0x00e584b4, 0x02daac63, 0x023720f5, 0x002b94e6}}},
+ {X: Field{[10]uint32{0x00f685be, 0x007c76e4, 0x0020dab3, 0x02d70266, 0x00d91699, 0x0124c22d, 0x03a57e19, 0x03c097f1, 0x00cc10c6, 0x00350a7f}}, Y: Field{[10]uint32{0x02648edf, 0x026f5396, 0x00964068, 0x00f5bedb, 0x00a8df04, 0x02f945a2, 0x0014ae91, 0x01646379, 0x01c1ee15, 0x00368ac5}}},
+ {X: Field{[10]uint32{0x00e8b705, 0x036a3639, 0x00b6d56d, 0x03d8d994, 0x01bf1e0c, 0x028b6bbd, 0x0207625b, 0x0232acdb, 0x03c7c04b, 0x001a8638}}, Y: Field{[10]uint32{0x00e94eec, 0x005762f0, 0x0049ed62, 0x010097f3, 0x0120e754, 0x03149507, 0x039c9dab, 0x025b6faf, 0x0330f56c, 0x00198a44}}},
+ {X: Field{[10]uint32{0x00f97756, 0x01e848be, 0x032201a3, 0x03fe906c, 0x01d7ca3e, 0x01a88719, 0x002fa4ad, 0x03cff952, 0x0046d1c9, 0x002616da}}, Y: Field{[10]uint32{0x02a3a92e, 0x03d5102a, 0x01592d56, 0x030234e4, 0x03bb9dc6, 0x03150fe2, 0x022f2c32, 0x023dadda, 0x03dd98e1, 0x000f8ac8}}},
+ {X: Field{[10]uint32{0x026e8c64, 0x024a5b27, 0x03f3355c, 0x038e5953, 0x0296fba8, 0x031ef328, 0x02ee3395, 0x00e2918f, 0x01db4ba8, 0x00252283}}, Y: Field{[10]uint32{0x00f5c1d8, 0x010c970f, 0x00d2e12c, 0x03b4bde5, 0x01c7b705, 0x03949f58, 0x03b69b52, 0x0360fad9, 0x0025da19, 0x00316cd3}}},
+ {X: Field{[10]uint32{0x00a3de2e, 0x02a903ea, 0x028c4256, 0x0331a521, 0x020a437f, 0x020985ec, 0x0246b47e, 0x02c0fede, 0x002c1332, 0x0010ccb4}}, Y: Field{[10]uint32{0x02aa5289, 0x02f83762, 0x01de1e1b, 0x02adcdd9, 0x00393985, 0x025045e0, 0x00327c03, 0x015576a5, 0x016f5f9c, 0x0039b946}}},
+ {X: Field{[10]uint32{0x022a5aa3, 0x0330fedc, 0x01d96a67, 0x0315ac84, 0x02f7e12d, 0x0235a7d6, 0x0150b68a, 0x032257cc, 0x03b92ac1, 0x0017725d}}, Y: Field{[10]uint32{0x0107844d, 0x0342e567, 0x0217d10f, 0x00d0d040, 0x0283260c, 0x0331a5b4, 0x03d29123, 0x03b27872, 0x00a74bf1, 0x00116223}}},
+ {X: Field{[10]uint32{0x03d15764, 0x006a078f, 0x022b0c6e, 0x035f418e, 0x00605e3b, 0x00000e49, 0x030cb6df, 0x03c492a6, 0x0134ca94, 0x0016e73d}}, Y: Field{[10]uint32{0x00897458, 0x006f2f00, 0x03d1d0d8, 0x01233a22, 0x03f9ba4b, 0x0282cb59, 0x0248790f, 0x01bffaf6, 0x01c3b051, 0x00113a63}}},
+ {X: Field{[10]uint32{0x01372f59, 0x035ffdb5, 0x00a6697f, 0x02c25d1b, 0x02e2feb4, 0x022578b7, 0x026baf9c, 0x01c531f4, 0x00073a63, 0x00210d4c}}, Y: Field{[10]uint32{0x00c7a175, 0x00fcda2c, 0x022d23ca, 0x01f209b1, 0x023f9fea, 0x03cbcd14, 0x037361c0, 0x02751132, 0x029e3768, 0x0035cdce}}},
+ {X: Field{[10]uint32{0x021e6a61, 0x000c3eb0, 0x02619804, 0x037fe1d1, 0x008f1a28, 0x00e09b9e, 0x008485fc, 0x026d7227, 0x000e3eef, 0x00273c00}}, Y: Field{[10]uint32{0x0291543c, 0x0184bdff, 0x020a1ac2, 0x01daaa47, 0x002764cd, 0x00801708, 0x021fcb9d, 0x012cb653, 0x033ad868, 0x000acf6a}}},
+ {X: Field{[10]uint32{0x00e1235c, 0x01c68913, 0x035e9996, 0x014e0ebf, 0x038ee028, 0x012469d5, 0x0088b25b, 0x00623882, 0x03dc5897, 0x002eca4b}}, Y: Field{[10]uint32{0x012507e5, 0x00bd6690, 0x023a09e0, 0x03dc9f86, 0x00d5e9b8, 0x01624cd2, 0x03839909, 0x01e18ef2, 0x01c350ba, 0x0034edb6}}},
+ {X: Field{[10]uint32{0x03b7d680, 0x01c32403, 0x01ced2d7, 0x01afc9f1, 0x03efd2bc, 0x008e6d88, 0x008a21a9, 0x03b55daa, 0x01d89835, 0x002575b4}}, Y: Field{[10]uint32{0x00baf048, 0x02ff819b, 0x02468e40, 0x00e31cb3, 0x02b39e7d, 0x03cf39a4, 0x034ac720, 0x01973bea, 0x01ad39db, 0x0032454d}}},
+ {X: Field{[10]uint32{0x01d09a46, 0x01428ea1, 0x00fd89ee, 0x021f7cb2, 0x0115ea37, 0x00328325, 0x02c3fb90, 0x03b08270, 0x020fa164, 0x0032f8fc}}, Y: Field{[10]uint32{0x02fb9a28, 0x00bbfe42, 0x00e8b825, 0x01469962, 0x01734a22, 0x0061b9bb, 0x02222804, 0x00596d23, 0x0354faea, 0x00335625}}},
+ {X: Field{[10]uint32{0x039f604a, 0x0278a4ec, 0x020949f3, 0x03d121f5, 0x01002942, 0x0299e0d7, 0x031c215b, 0x02788166, 0x02b99bab, 0x000f8076}}, Y: Field{[10]uint32{0x0123d481, 0x0172d7a1, 0x022670bd, 0x03e7a2da, 0x00d0a556, 0x019e7cfa, 0x03509798, 0x014113b8, 0x00323336, 0x002d0777}}},
+ {X: Field{[10]uint32{0x02afef7a, 0x004e991d, 0x03350972, 0x0238578f, 0x01c79891, 0x012d8cc7, 0x031cfd2e, 0x03725857, 0x00c05543, 0x000a625d}}, Y: Field{[10]uint32{0x0299da2f, 0x0360181e, 0x0257de5c, 0x028d8b2d, 0x0222354e, 0x011fd82c, 0x00e02e87, 0x0362fa9d, 0x035555f2, 0x001a0060}}},
+ {X: Field{[10]uint32{0x011fdc61, 0x019e4fd4, 0x003dfd93, 0x0322824f, 0x022aabde, 0x0107453d, 0x03764b46, 0x00f25ba8, 0x034d5476, 0x00075c19}}, Y: Field{[10]uint32{0x00dfe632, 0x03ad2f8e, 0x0010e8a4, 0x000588f7, 0x02807741, 0x025d4fd0, 0x024378e5, 0x0112f18c, 0x01ac697e, 0x00259d2b}}},
+ {X: Field{[10]uint32{0x000fece1, 0x02c713c1, 0x00fbacc0, 0x02be46ae, 0x0073c47a, 0x023e2d8d, 0x021875ec, 0x02e5c189, 0x0107b43a, 0x001d4880}}, Y: Field{[10]uint32{0x03aeaffb, 0x01580ba8, 0x00b7b088, 0x035670d4, 0x0041bc9a, 0x02d5bbee, 0x02ebf2bf, 0x001f404a, 0x027cc3bf, 0x000a4253}}},
+ {X: Field{[10]uint32{0x03779720, 0x039e4883, 0x03df92e7, 0x0232743b, 0x03fc7f4c, 0x002eb20e, 0x01b31aab, 0x013b0c9f, 0x01ffb347, 0x0033eb6e}}, Y: Field{[10]uint32{0x019a09b2, 0x002e64c3, 0x00b06ab0, 0x001b34ae, 0x0297d418, 0x02a67ea0, 0x0322ee02, 0x023315e3, 0x017f6f7b, 0x003fedd9}}},
+ {X: Field{[10]uint32{0x01cb828f, 0x03a2daf0, 0x026f464c, 0x03d35ee0, 0x0334a7b4, 0x027612a9, 0x02e46e13, 0x01580eb7, 0x019dbe3c, 0x00093ba4}}, Y: Field{[10]uint32{0x03ff1506, 0x0297a985, 0x03e29364, 0x01dbb55f, 0x01ca6514, 0x00e6e3c4, 0x020b63c5, 0x0151ee4d, 0x0356794b, 0x001100e5}}},
+ {X: Field{[10]uint32{0x00b100f4, 0x00c3bfdf, 0x011dd1b5, 0x014ff90e, 0x00c50ddb, 0x02972fbb, 0x016b8f10, 0x01495bd3, 0x02462f75, 0x00166578}}, Y: Field{[10]uint32{0x001dc64a, 0x005875b6, 0x0018ce08, 0x01ac4f74, 0x03fe78ac, 0x010049ff, 0x02d7ba20, 0x01459711, 0x027c7da0, 0x001df776}}},
+ {X: Field{[10]uint32{0x034d54dd, 0x035470c8, 0x019c29db, 0x00dc073c, 0x00364f8c, 0x02464f02, 0x029fa205, 0x011e3384, 0x007197dd, 0x0029c8cd}}, Y: Field{[10]uint32{0x01796e68, 0x00bbbc4c, 0x019ad92f, 0x00446874, 0x009cfdd7, 0x006a5999, 0x00a5fa00, 0x00b32ce1, 0x015eec2b, 0x000b139a}}},
+ {X: Field{[10]uint32{0x032251a5, 0x015b3404, 0x01c234ed, 0x0358eb50, 0x01a57cfe, 0x037a7f32, 0x0275fcc5, 0x00872f5f, 0x0369d5bc, 0x001919aa}}, Y: Field{[10]uint32{0x01294dc9, 0x0037e909, 0x005d2099, 0x033f12bc, 0x022e0c1e, 0x03da2536, 0x0222f5e5, 0x005b89d9, 0x03896dbb, 0x001db9fb}}},
+ {X: Field{[10]uint32{0x01c28e60, 0x02b3683d, 0x014f11e0, 0x02d478cf, 0x017fab8b, 0x03c85851, 0x02fca2ab, 0x0222af79, 0x0390a293, 0x00297b33}}, Y: Field{[10]uint32{0x020e3ac3, 0x0016c998, 0x023f7948, 0x038b2044, 0x03110e74, 0x019a42b7, 0x02886435, 0x0047cdcf, 0x0116468a, 0x002bf5d6}}},
+ {X: Field{[10]uint32{0x029c2779, 0x03561c7b, 0x01cdf89e, 0x01813472, 0x006a15d0, 0x00fb6796, 0x02e52a1e, 0x01e367c9, 0x02c74936, 0x0010946e}}, Y: Field{[10]uint32{0x02987aa5, 0x016b62dc, 0x0138d3a1, 0x032437fe, 0x004bb023, 0x01980ef3, 0x0190c60e, 0x01c5b5da, 0x027d92e6, 0x003e877c}}},
+ {X: Field{[10]uint32{0x027db30e, 0x00b0a93e, 0x01903f04, 0x03409aa0, 0x030f40c9, 0x006078a0, 0x00f6b973, 0x03308763, 0x02a204c3, 0x001dea79}}, Y: Field{[10]uint32{0x00155aa0, 0x00f79746, 0x03180b6e, 0x0041cacb, 0x03e78d93, 0x02a84333, 0x01b757fa, 0x017336f7, 0x03ef23f2, 0x00287bd3}}},
+ {X: Field{[10]uint32{0x03dbea6b, 0x007fdf9b, 0x0239de75, 0x003a667d, 0x02e9c0d2, 0x015dfe8a, 0x02de73c4, 0x01386f5a, 0x0161c40d, 0x000cff9e}}, Y: Field{[10]uint32{0x01f54849, 0x0102e335, 0x03037058, 0x0251c8ca, 0x039a5919, 0x01930c33, 0x016e7c14, 0x00c1b38c, 0x01cd4eeb, 0x00246df5}}},
+ {X: Field{[10]uint32{0x01179564, 0x02085c3e, 0x003115b6, 0x00054927, 0x03395357, 0x01216f8b, 0x00a9d8cb, 0x00884692, 0x032e5ee5, 0x0010fd9a}}, Y: Field{[10]uint32{0x01a46a45, 0x03de1d0b, 0x028921db, 0x0265ca39, 0x003555e6, 0x018fd7e2, 0x030cf7fe, 0x03aefc30, 0x015ffec0, 0x0014dc2d}}},
+ {X: Field{[10]uint32{0x00b19bfc, 0x0116db0e, 0x0170e1a7, 0x010dcfd6, 0x03ad2f0b, 0x011baa1e, 0x00c7f6b4, 0x0041d35d, 0x021497ef, 0x0012b4d9}}, Y: Field{[10]uint32{0x035cfd39, 0x0133583b, 0x03cfc0cd, 0x0208ca7a, 0x036f9eea, 0x00dbe143, 0x02da00d4, 0x016ff57a, 0x01aa769a, 0x0023d770}}},
+ {X: Field{[10]uint32{0x0012754d, 0x035654f0, 0x012f9155, 0x019a6cbc, 0x02593368, 0x016de5ea, 0x0334dc97, 0x013553cd, 0x02ef9520, 0x0025e66a}}, Y: Field{[10]uint32{0x003e6353, 0x016a1d7a, 0x02f3a984, 0x03b3a88d, 0x0044c256, 0x03124b55, 0x025b476b, 0x0385cd0e, 0x00a3d31f, 0x0012dacd}}},
+ {X: Field{[10]uint32{0x01d828a1, 0x03275045, 0x00dca0fb, 0x0145be6a, 0x03c1c22f, 0x0038d759, 0x003f2525, 0x018d70b4, 0x01f0c6e4, 0x00321892}}, Y: Field{[10]uint32{0x0295ec73, 0x026519fb, 0x0102586d, 0x024d1a7c, 0x02465238, 0x012f1dac, 0x01260b39, 0x013437d3, 0x030b37dc, 0x0003885d}}},
+ {X: Field{[10]uint32{0x0256038d, 0x03370b99, 0x0308e3ac, 0x039824be, 0x0061a08f, 0x033f5018, 0x0282c840, 0x021fbf1c, 0x00c5de56, 0x002d237f}}, Y: Field{[10]uint32{0x00e8927c, 0x02db467f, 0x01566277, 0x0254deb4, 0x01c0b52a, 0x01c51d99, 0x0369c7bc, 0x01c1d1c7, 0x021fec73, 0x00021f8f}}},
+ {X: Field{[10]uint32{0x02357fca, 0x000ff353, 0x02da8585, 0x0134d9cc, 0x030146fa, 0x034e0da8, 0x025c828f, 0x0154d718, 0x036c62d6, 0x001df73a}}, Y: Field{[10]uint32{0x00228bd4, 0x00747a86, 0x0367e909, 0x02321fee, 0x024304d0, 0x034dc3b4, 0x01b85213, 0x025c4d49, 0x02005a13, 0x003642c9}}},
+ {X: Field{[10]uint32{0x0175e49a, 0x0191d40c, 0x01c17473, 0x00f8ccbd, 0x0069cfb4, 0x0331c2b2, 0x031cd633, 0x00061137, 0x00bf4cda, 0x0016d623}}, Y: Field{[10]uint32{0x02d55cda, 0x022432be, 0x017c0d47, 0x01e11d1a, 0x01a52e19, 0x03e57f39, 0x02b823b2, 0x02792a13, 0x031df9e6, 0x0005093b}}},
+ {X: Field{[10]uint32{0x0320b20c, 0x001da164, 0x003b7da1, 0x02944711, 0x032c50ce, 0x03277764, 0x00702518, 0x01082023, 0x03ba8393, 0x003021ee}}, Y: Field{[10]uint32{0x0209d996, 0x00881ee4, 0x02b5f6ec, 0x00f1faf0, 0x00f637c2, 0x032f92cc, 0x030e3455, 0x0157cec0, 0x02697175, 0x001dfc9a}}},
+ {X: Field{[10]uint32{0x0031ed94, 0x011d304c, 0x02a3835e, 0x0183c45f, 0x00247d7d, 0x030b1563, 0x00b3e7cf, 0x0020bc82, 0x017b68f8, 0x00234581}}, Y: Field{[10]uint32{0x02ba3eca, 0x01442475, 0x0314fed5, 0x029fbb1a, 0x016ffb8c, 0x02710e78, 0x00f6e0d1, 0x0344f440, 0x01b662ff, 0x000f4c17}}},
+ {X: Field{[10]uint32{0x01c184b7, 0x03f7307b, 0x019d9242, 0x02597878, 0x03d17daa, 0x03dcdc7f, 0x03b8cd2a, 0x00af21b6, 0x00a603d3, 0x001d7fb8}}, Y: Field{[10]uint32{0x03efa2f8, 0x03f71924, 0x0040910b, 0x027a6810, 0x01061ee8, 0x020245e5, 0x03c992ff, 0x0025d7f9, 0x00ffabc3, 0x0030ac79}}},
+ {X: Field{[10]uint32{0x03368abb, 0x0170789b, 0x007a110d, 0x01d51839, 0x02dda7fb, 0x02a1dc42, 0x00925990, 0x0024f5f4, 0x0159b147, 0x0019768e}}, Y: Field{[10]uint32{0x01862844, 0x01171708, 0x03ce95e3, 0x00a32eb8, 0x00a6f530, 0x0268c08c, 0x032b463d, 0x0307870f, 0x01f52f92, 0x000d6678}}},
+ {X: Field{[10]uint32{0x027933d3, 0x0102dbe5, 0x03f4df81, 0x016fd101, 0x005dda1a, 0x01d4e61c, 0x02b787ca, 0x0084975d, 0x00109463, 0x0019587f}}, Y: Field{[10]uint32{0x020e6337, 0x02a6d564, 0x01ad629f, 0x00ddb4e8, 0x02cd083f, 0x02dba200, 0x02e8aeca, 0x00a0a0fa, 0x03cea88e, 0x001301b1}}},
+ {X: Field{[10]uint32{0x00c4410e, 0x0179e920, 0x016a35ca, 0x00c19993, 0x03c8a3fc, 0x02748cd0, 0x03041a6a, 0x00dc0548, 0x03807049, 0x0032694f}}, Y: Field{[10]uint32{0x036e4bf9, 0x01128882, 0x02d42183, 0x02b7c8d9, 0x02369d4d, 0x038ec9cd, 0x02f0dd06, 0x003517af, 0x00a9b2e3, 0x0026bd1c}}},
+ {X: Field{[10]uint32{0x03b89158, 0x00d165cc, 0x03bf03c7, 0x00517d5d, 0x00c203f8, 0x02e68550, 0x009f45a1, 0x015b76c0, 0x01f3443e, 0x00170549}}, Y: Field{[10]uint32{0x034f4f18, 0x00d24efa, 0x03c02f5b, 0x03eb2e67, 0x0358574a, 0x01895c1e, 0x00f4c803, 0x03646b5d, 0x02f7cb3e, 0x00259e24}}},
+ {X: Field{[10]uint32{0x001648ed, 0x024e72d5, 0x01454d69, 0x02a5d7d8, 0x0269bb6e, 0x01cbfb83, 0x00add6d4, 0x005c75c5, 0x00dad87c, 0x000d5973}}, Y: Field{[10]uint32{0x0062aef8, 0x01a8b64d, 0x014edd48, 0x029daa35, 0x034f02d3, 0x00022c65, 0x03d09bbd, 0x018d6176, 0x03bfec2b, 0x0027df61}}},
+ {X: Field{[10]uint32{0x010e3614, 0x03799847, 0x01edabd8, 0x03744e2d, 0x004527d3, 0x00a85297, 0x00f29df4, 0x0386a2bf, 0x0334c0f5, 0x001000fb}}, Y: Field{[10]uint32{0x003048c4, 0x0131a093, 0x00e2cd3c, 0x003cd85d, 0x033d3ead, 0x0160e70b, 0x03d0a763, 0x0133bf30, 0x01524489, 0x0019c80c}}},
+ {X: Field{[10]uint32{0x012ea57f, 0x01574764, 0x013931cf, 0x0088024a, 0x02138864, 0x02d25689, 0x03b7de39, 0x0141e4fa, 0x035b3796, 0x003d7137}}, Y: Field{[10]uint32{0x01eb3482, 0x0011f80c, 0x02968f30, 0x0295f4c6, 0x03aca34d, 0x028d8434, 0x03672c74, 0x02331168, 0x003e12a9, 0x002c2e4f}}},
+ {X: Field{[10]uint32{0x029e213a, 0x0259e4d5, 0x010b397a, 0x0239a73b, 0x01cbe869, 0x019600a2, 0x023533e5, 0x021b36e9, 0x0280e211, 0x0002f27d}}, Y: Field{[10]uint32{0x032e06a3, 0x004fea6c, 0x01d72007, 0x03d6e478, 0x017bf54e, 0x01f48137, 0x03b94ff8, 0x01463543, 0x03788105, 0x001ab7fe}}},
+ {X: Field{[10]uint32{0x01a16516, 0x02674ab2, 0x006b055f, 0x011d39c1, 0x01549e83, 0x028f8988, 0x03e15d37, 0x02204514, 0x0397f1fe, 0x001373a1}}, Y: Field{[10]uint32{0x03e668ea, 0x0381d52a, 0x01d4337c, 0x02a1d26a, 0x02fc8a8a, 0x035c35ec, 0x00fd9f37, 0x02096a57, 0x0377cca7, 0x003a979a}}},
+ {X: Field{[10]uint32{0x0359b16b, 0x01a74fa5, 0x01eee818, 0x02149944, 0x02af2a4f, 0x000024e0, 0x032a0c04, 0x0255c2f5, 0x02ba1ef2, 0x003d26d6}}, Y: Field{[10]uint32{0x017c7f7d, 0x02391675, 0x01202865, 0x010ed060, 0x021d2fb3, 0x0182af19, 0x02125d0f, 0x03a349a5, 0x0020b996, 0x000b925b}}},
+ {X: Field{[10]uint32{0x012125ec, 0x006fb902, 0x03fa054a, 0x001df5f5, 0x00a2d02f, 0x00afca52, 0x00ff7657, 0x038749ed, 0x014a7573, 0x0009a45f}}, Y: Field{[10]uint32{0x03cd8f97, 0x0173a0c1, 0x006780ad, 0x00c02986, 0x017eb125, 0x03e32232, 0x02fd2d5c, 0x019a80a9, 0x037eae9b, 0x002e391f}}},
+ {X: Field{[10]uint32{0x0329d290, 0x03eab53e, 0x03cb1cd7, 0x01bb3e2e, 0x007ead77, 0x0084f9b6, 0x00b71daf, 0x00bf9263, 0x00d6285a, 0x0006d252}}, Y: Field{[10]uint32{0x00d3bfd8, 0x00306d09, 0x0227bdd3, 0x0266cbd7, 0x00d56984, 0x00b4a186, 0x0336c7a9, 0x0364966d, 0x001fef87, 0x0006ad02}}},
+ {X: Field{[10]uint32{0x01ae64ca, 0x022f55e6, 0x036c7725, 0x03d29a58, 0x00f8b20f, 0x02a6594f, 0x019676fe, 0x02ebde77, 0x02ec8179, 0x000535c4}}, Y: Field{[10]uint32{0x000c6ef0, 0x01b8138e, 0x03ad6d36, 0x00e14eeb, 0x0006f385, 0x01cb38fc, 0x030df37d, 0x0143b0ca, 0x00a64246, 0x000b876e}}},
+ {X: Field{[10]uint32{0x01952453, 0x01a53dc7, 0x038134d9, 0x02222d6f, 0x03a11119, 0x01111644, 0x01967e15, 0x01da1278, 0x02204174, 0x0001d9d4}}, Y: Field{[10]uint32{0x0182fd31, 0x01da10fb, 0x01c27377, 0x00f58253, 0x00de1a5c, 0x029c8b79, 0x0155a906, 0x02d80ce8, 0x00636457, 0x000fc7ec}}},
+ {X: Field{[10]uint32{0x0149fc63, 0x012e8d37, 0x00937fc8, 0x01be5ac9, 0x020a53b1, 0x002ec789, 0x0016d028, 0x022d9d00, 0x0134a882, 0x0016b239}}, Y: Field{[10]uint32{0x00a1fc73, 0x03881bae, 0x0187a8e5, 0x021c457a, 0x0018568f, 0x0242739c, 0x005a4296, 0x03edec0b, 0x020f68f5, 0x00064f40}}},
+ {X: Field{[10]uint32{0x034a14b8, 0x00880b6a, 0x02c43337, 0x0375ab3d, 0x02d618d0, 0x0064d127, 0x01135b60, 0x0158a94c, 0x02b28d16, 0x0021f377}}, Y: Field{[10]uint32{0x03846e2e, 0x01a32ea7, 0x0084be5b, 0x009404d7, 0x01cd7094, 0x038ba44a, 0x011cecbd, 0x022b6650, 0x00e67c95, 0x00170779}}},
+ {X: Field{[10]uint32{0x024c84cb, 0x01de2810, 0x02d52f8c, 0x01fbac35, 0x004d4f8b, 0x03ea198c, 0x021dfe7a, 0x03427d23, 0x0225a39e, 0x00310c72}}, Y: Field{[10]uint32{0x0100d825, 0x02b8299c, 0x034292ae, 0x035b8d7f, 0x00489ede, 0x00c4a4cc, 0x00f2d11d, 0x02f9b4d7, 0x03d65b2d, 0x00114181}}},
+ {X: Field{[10]uint32{0x00a3dd5a, 0x03cda0e2, 0x02c1d9bf, 0x000970bc, 0x03aaa930, 0x003b7128, 0x03af3d44, 0x0068452f, 0x01e8985c, 0x00231408}}, Y: Field{[10]uint32{0x012fb108, 0x02d82aa8, 0x01db13c2, 0x02bb50c5, 0x02b6d31f, 0x0025bf52, 0x01d74ba6, 0x0360701c, 0x00aa8077, 0x00132e58}}},
+ {X: Field{[10]uint32{0x02513d4f, 0x0275c5db, 0x01bb770b, 0x012c99e0, 0x0306e7a1, 0x005df6ef, 0x017c07a0, 0x01d21630, 0x00bb38a4, 0x000ce395}}, Y: Field{[10]uint32{0x00420548, 0x02033e31, 0x026fb92f, 0x03554bb9, 0x02c44a6a, 0x019dd8ee, 0x02951def, 0x033e9308, 0x024e84ca, 0x001e1dab}}},
+ {X: Field{[10]uint32{0x031f3c5a, 0x01bba34b, 0x0061bcb0, 0x0385fbfd, 0x013c7b0f, 0x03349a2b, 0x03683abc, 0x00e88645, 0x00a9efbb, 0x0021fcef}}, Y: Field{[10]uint32{0x01229b61, 0x028cfb55, 0x007f8361, 0x03c6845f, 0x00e5cc11, 0x03d7eef2, 0x001f258b, 0x03f15122, 0x02a1eccc, 0x0029e874}}},
+ {X: Field{[10]uint32{0x013a3e40, 0x001eeed0, 0x01aad524, 0x037119f2, 0x00de27d6, 0x029a9e36, 0x016a0375, 0x01615a39, 0x03df8ed8, 0x0003d008}}, Y: Field{[10]uint32{0x03e178cc, 0x03e7da87, 0x001615cf, 0x0114f89d, 0x03d5e2c5, 0x03567cdc, 0x0230e566, 0x00e845aa, 0x0142fc4e, 0x002c9264}}},
+ {X: Field{[10]uint32{0x006f2d3a, 0x00215927, 0x001a8927, 0x00bcdd38, 0x03453b51, 0x0398ecbe, 0x013d282f, 0x02288a27, 0x03c6d55a, 0x0033ed47}}, Y: Field{[10]uint32{0x0070635d, 0x01ffa724, 0x0125eb56, 0x004872c9, 0x03e4ea53, 0x01879874, 0x02c120e7, 0x0047b4a3, 0x02232838, 0x0023528c}}},
+ {X: Field{[10]uint32{0x0243c539, 0x01f3a5ab, 0x00486893, 0x02c45c87, 0x01c45f77, 0x0089258d, 0x03219db2, 0x00051c2f, 0x020b9705, 0x00166912}}, Y: Field{[10]uint32{0x03039afa, 0x0364c781, 0x00efd158, 0x01644ddd, 0x02400ff9, 0x017ae29d, 0x021d0cd5, 0x003cfc77, 0x00a66a91, 0x0000c787}}},
+ {X: Field{[10]uint32{0x00a8ee7e, 0x015c3a0a, 0x0386f8ab, 0x01cc67f5, 0x02d8e26d, 0x012ecea3, 0x03446281, 0x01e8ddaa, 0x0256ec27, 0x002e673b}}, Y: Field{[10]uint32{0x023494ad, 0x02c44d70, 0x0223062a, 0x00c74773, 0x00b6be5d, 0x01360305, 0x013b16ab, 0x017535c9, 0x0398dda0, 0x0011b83c}}},
+ {X: Field{[10]uint32{0x01172bd2, 0x001eb403, 0x03cb0252, 0x00ad4a51, 0x001c6b92, 0x0369d6ce, 0x00398725, 0x006889b4, 0x036ad96b, 0x0028e784}}, Y: Field{[10]uint32{0x02abb532, 0x00286e6d, 0x023a2d91, 0x01de2bc6, 0x007dbfc9, 0x0258e7ea, 0x010fa717, 0x038238f4, 0x0358074d, 0x001e9701}}},
+ {X: Field{[10]uint32{0x03001976, 0x02365d15, 0x039c45b4, 0x0154d7d1, 0x032c23c8, 0x02dd44ad, 0x02dd59ae, 0x02dd3989, 0x01253b2e, 0x001ba2d0}}, Y: Field{[10]uint32{0x012bc88e, 0x02667a33, 0x02b47873, 0x020bb086, 0x020715bc, 0x032e16a8, 0x0004068a, 0x0301157a, 0x00e1e4e8, 0x003302e2}}},
+ {X: Field{[10]uint32{0x01abb019, 0x0111e294, 0x024189c4, 0x01bc7263, 0x03cd1fb6, 0x03bf44d0, 0x03b6ec98, 0x010627df, 0x02f5681e, 0x002650ad}}, Y: Field{[10]uint32{0x010e7a9a, 0x01459e63, 0x02430569, 0x01afb499, 0x02d2fe98, 0x01f26278, 0x0211e6ff, 0x00b54a42, 0x02bbb0cc, 0x00080343}}},
+ {X: Field{[10]uint32{0x0078506d, 0x0383df94, 0x01744642, 0x03dcbabf, 0x02759636, 0x0122bcd4, 0x0166918b, 0x02e52510, 0x01ec3c57, 0x001ff738}}, Y: Field{[10]uint32{0x03baabd2, 0x004e8ab5, 0x0146b2e3, 0x01e5974f, 0x0353cfb9, 0x038b4b39, 0x03786ed1, 0x01db8dce, 0x02efc19a, 0x0035de16}}},
+ {X: Field{[10]uint32{0x03989c57, 0x035381a4, 0x01b04a70, 0x01362065, 0x035f5165, 0x01df1e6a, 0x030906bd, 0x020fc3c5, 0x005c958c, 0x001bc4c8}}, Y: Field{[10]uint32{0x03b55ee0, 0x023c4fdc, 0x02c99e84, 0x02655445, 0x01033deb, 0x0254368d, 0x028d4f1c, 0x03920ec9, 0x015bb386, 0x0022b268}}},
+ {X: Field{[10]uint32{0x0297654e, 0x03352d8d, 0x007e6e50, 0x013d6d09, 0x03cd405f, 0x0137fefe, 0x00a0665f, 0x01a6f810, 0x035d833c, 0x003e5568}}, Y: Field{[10]uint32{0x03c9ee44, 0x03e93d62, 0x0183e4e2, 0x02c9f686, 0x00f56e80, 0x0103acdf, 0x02f2407f, 0x020e2692, 0x03ce2246, 0x00227d3e}}},
+ {X: Field{[10]uint32{0x02248007, 0x03edaa09, 0x00132e65, 0x0346248e, 0x010b58b8, 0x037e5e63, 0x02257431, 0x011a8d0a, 0x012d6196, 0x0036f345}}, Y: Field{[10]uint32{0x02d8ba13, 0x02d34d8c, 0x01dcec02, 0x038f4086, 0x03e57d23, 0x039a0c3d, 0x0025e9e2, 0x023f4f91, 0x017ec194, 0x0019be9c}}},
+ {X: Field{[10]uint32{0x026e8ebe, 0x03a854d7, 0x035cc71e, 0x02ca2cd6, 0x0399f713, 0x00b9e54f, 0x03cfb1da, 0x02427eb1, 0x00e8e57b, 0x003c6baf}}, Y: Field{[10]uint32{0x01d9d516, 0x03d842f9, 0x0157e1b7, 0x0365617f, 0x0288b0bf, 0x00b93d65, 0x01c24d09, 0x0396a983, 0x02143e77, 0x0021d57e}}},
+ {X: Field{[10]uint32{0x00b55187, 0x01b92281, 0x005f5fef, 0x016a4754, 0x01c002bc, 0x0010c241, 0x01ceab65, 0x0212ffe2, 0x024d941f, 0x00288085}}, Y: Field{[10]uint32{0x02f057ff, 0x00ecfbf0, 0x004c1bee, 0x0256b7a2, 0x01b6d4b0, 0x02e6f393, 0x0172e978, 0x01a2d479, 0x002b2bc2, 0x00038335}}},
+ {X: Field{[10]uint32{0x028ad68a, 0x01011f72, 0x02861e78, 0x02942009, 0x02b1344d, 0x021fe2e6, 0x000eccb2, 0x039f7a52, 0x025746fd, 0x0015cb85}}, Y: Field{[10]uint32{0x01eb5d9f, 0x01a585cc, 0x01170475, 0x01ac283f, 0x0239eda8, 0x00176b5d, 0x02461eb4, 0x02aed234, 0x01e7c066, 0x00305d2b}}},
+ {X: Field{[10]uint32{0x03eba31d, 0x0333a696, 0x00dac58a, 0x03296799, 0x00b67047, 0x01db927a, 0x00b1052b, 0x035d4f02, 0x0107fee4, 0x003d38b2}}, Y: Field{[10]uint32{0x0011c42c, 0x02fe1c4b, 0x030f8f41, 0x00d09201, 0x032b76d1, 0x02a3fa25, 0x00b8317c, 0x034b6392, 0x022d3a92, 0x002c90ea}}},
+ {X: Field{[10]uint32{0x01f06dd5, 0x0258e97f, 0x00463e06, 0x0207c934, 0x02266987, 0x01a2026c, 0x029e436d, 0x015c5bd7, 0x02ec8445, 0x0029bf1a}}, Y: Field{[10]uint32{0x0018ca8d, 0x02402a86, 0x013d5073, 0x013a4614, 0x00a96b7f, 0x01d2367c, 0x02135fdf, 0x03f461ab, 0x0215548e, 0x003705a9}}},
+ {X: Field{[10]uint32{0x0205f026, 0x03378b56, 0x009bcc00, 0x033ac133, 0x00c4ffb3, 0x00dfcb2f, 0x00d8eec9, 0x02594a73, 0x00175fde, 0x002f601a}}, Y: Field{[10]uint32{0x00a26216, 0x008a2cd9, 0x03f76bce, 0x01d1454a, 0x02db0482, 0x02daf771, 0x03e6a0d8, 0x010ca383, 0x02e78e01, 0x002c9e46}}},
+ {X: Field{[10]uint32{0x000165ef, 0x021b74d7, 0x0251e163, 0x02c8e976, 0x032d8614, 0x032b9ae3, 0x015e810e, 0x00f482e7, 0x02676f8c, 0x003e2229}}, Y: Field{[10]uint32{0x009a0dea, 0x00f6b724, 0x0223942a, 0x014f7890, 0x03579788, 0x031ec7ae, 0x034bfe39, 0x03cfbfdb, 0x020fe429, 0x003ed3b8}}},
+ {X: Field{[10]uint32{0x009ae200, 0x0221df10, 0x02fd23ba, 0x039af69d, 0x01c3182e, 0x034583f3, 0x01023a48, 0x02a9c7b2, 0x02055adb, 0x001f2347}}, Y: Field{[10]uint32{0x03907ceb, 0x0385d90b, 0x00524f16, 0x0293cb23, 0x01c489b9, 0x033a0dde, 0x02936f4f, 0x01548f65, 0x020bec59, 0x00228ee0}}},
+ {X: Field{[10]uint32{0x02fabf43, 0x00539d89, 0x0159e75c, 0x02dd48a6, 0x026dfd9b, 0x024eebdc, 0x00ccd715, 0x01c48184, 0x02a4ee25, 0x0006221b}}, Y: Field{[10]uint32{0x0091531d, 0x026361b8, 0x01d31ffa, 0x0210e622, 0x02898a31, 0x01f40ade, 0x033ad3f0, 0x01a2c034, 0x0295f570, 0x00099b19}}},
+ {X: Field{[10]uint32{0x03e52cba, 0x03f73e9a, 0x009a3184, 0x0265419e, 0x011242a0, 0x02b00dae, 0x039a44ec, 0x02b6f4cc, 0x031e38c8, 0x003fa9c3}}, Y: Field{[10]uint32{0x039e7915, 0x009bb38e, 0x0046883e, 0x00bf5d17, 0x02076c0e, 0x00d99c2d, 0x0058093a, 0x0306e777, 0x01f50ba8, 0x00277fdb}}},
+ {X: Field{[10]uint32{0x03d1365a, 0x0312d28d, 0x00c8fb1d, 0x01eff908, 0x0096dcbf, 0x01e5146e, 0x0199142e, 0x00f241db, 0x038945aa, 0x001378c0}}, Y: Field{[10]uint32{0x0287cba4, 0x0193b634, 0x0316d356, 0x02884ec2, 0x03992ac0, 0x0006ccdd, 0x001eb2e2, 0x03799090, 0x029e9093, 0x0033b9d3}}},
+ {X: Field{[10]uint32{0x02104fb2, 0x02220c06, 0x03da3739, 0x01adad6f, 0x028c2d8e, 0x03040a60, 0x03b8c401, 0x02f9e718, 0x01d1eafe, 0x0019f427}}, Y: Field{[10]uint32{0x01360a5f, 0x03ea96ef, 0x0098461f, 0x016367cb, 0x00d4f035, 0x0063e26f, 0x019049e8, 0x00365a3a, 0x01089266, 0x00043ad5}}},
+ {X: Field{[10]uint32{0x00e6010f, 0x03f75dd0, 0x01b5af5f, 0x03d3fe8c, 0x01325e55, 0x01c0c735, 0x0396d4d8, 0x00d3e34e, 0x00fe1868, 0x000ad75c}}, Y: Field{[10]uint32{0x0095ed02, 0x029351ea, 0x03b1f7bd, 0x024327d4, 0x00384398, 0x02c8206d, 0x031f54af, 0x028dcde2, 0x025324d2, 0x00191b9f}}},
+ {X: Field{[10]uint32{0x017be248, 0x03d8b7f8, 0x00752527, 0x008f2893, 0x005d600b, 0x02bb42b4, 0x03f7b446, 0x029db064, 0x02998700, 0x0032d098}}, Y: Field{[10]uint32{0x0019a8b6, 0x03a4e796, 0x006e65ac, 0x01413086, 0x03bcfd02, 0x03339dc8, 0x01f74eb8, 0x01832439, 0x0213f3eb, 0x0024a10f}}},
+ {X: Field{[10]uint32{0x018e4e41, 0x00137b50, 0x00d25f9b, 0x014ff638, 0x0322d0b8, 0x039b7a22, 0x01ce4d01, 0x02f15c4d, 0x037e75b3, 0x000fb9aa}}, Y: Field{[10]uint32{0x034bcc87, 0x0154da06, 0x027689ad, 0x013da03b, 0x006ee1ab, 0x00cfd480, 0x01b6afc9, 0x01466e4c, 0x03984e52, 0x001a720f}}},
+ {X: Field{[10]uint32{0x0087e7be, 0x010217f2, 0x01724e90, 0x031ca8e1, 0x016918ac, 0x005f5e0a, 0x0232df6f, 0x01450c5c, 0x00b0a95a, 0x00160ddd}}, Y: Field{[10]uint32{0x007c3e7b, 0x01cdaaa0, 0x0042418c, 0x03f8542d, 0x03f8f047, 0x019970d4, 0x00160730, 0x033c5cc3, 0x02660ee8, 0x000ceec7}}},
+ {X: Field{[10]uint32{0x0079dc1a, 0x020e381c, 0x03fcb0a8, 0x000269e8, 0x03eb3341, 0x02990fa8, 0x0082b772, 0x009e1de4, 0x01ef3982, 0x002bccb8}}, Y: Field{[10]uint32{0x0295fd4c, 0x027b2dd3, 0x037f8b3a, 0x00c792d2, 0x03169383, 0x0068d9a5, 0x02ee7e8b, 0x0048f9ce, 0x028dc660, 0x001a6178}}},
+ {X: Field{[10]uint32{0x0034d0c4, 0x02b705b8, 0x03f9c948, 0x02737aae, 0x0150f724, 0x03eff0fd, 0x020c740e, 0x01d5466d, 0x03dd3266, 0x001bb7df}}, Y: Field{[10]uint32{0x02f46026, 0x01144f43, 0x016d40bb, 0x0052edf6, 0x0164534f, 0x02c249a4, 0x030de819, 0x01f69d7e, 0x03185def, 0x003c2317}}},
+ {X: Field{[10]uint32{0x01f16b42, 0x00293c00, 0x01f0072a, 0x0182cff6, 0x0086257a, 0x02060878, 0x0104120a, 0x023e51b1, 0x02455d26, 0x000ee699}}, Y: Field{[10]uint32{0x00fe7c7b, 0x006f774b, 0x00117e2e, 0x0121916c, 0x023dfa48, 0x01864041, 0x03601090, 0x01b02257, 0x0215aedf, 0x003b560e}}},
+ {X: Field{[10]uint32{0x007a1039, 0x00eb429d, 0x03ae2d68, 0x010e0ba2, 0x0327b529, 0x02804ac3, 0x03cbdf07, 0x03f6c345, 0x03082b5c, 0x002f40d6}}, Y: Field{[10]uint32{0x03b2ef54, 0x003e68e6, 0x03f61ac9, 0x030e2d8a, 0x00e94a23, 0x01cafa2b, 0x0135ccd5, 0x035fa2a8, 0x03aded4a, 0x00192532}}},
+ {X: Field{[10]uint32{0x015338c3, 0x0116d13c, 0x02ff7a8c, 0x02c50408, 0x024dda59, 0x022780e0, 0x03316ef0, 0x00602eb8, 0x0319fe9b, 0x003897ef}}, Y: Field{[10]uint32{0x034c7cf2, 0x0220d8c5, 0x03be6f63, 0x00467d3e, 0x007c2c8f, 0x0214b9a5, 0x02412581, 0x037548d0, 0x03f658a3, 0x00117b11}}},
+ {X: Field{[10]uint32{0x00ffc9b8, 0x01cb993b, 0x02e6c7c0, 0x0170e1c7, 0x01f30f59, 0x00059501, 0x02ebea75, 0x01cd5814, 0x01cd8ffd, 0x000b88c7}}, Y: Field{[10]uint32{0x0359317a, 0x03cc591b, 0x0127d29c, 0x032fb946, 0x027610d4, 0x02892b78, 0x018f3d3e, 0x02586a11, 0x0052db15, 0x00031991}}},
+ {X: Field{[10]uint32{0x01338fc8, 0x0161983d, 0x020483b4, 0x01d299a9, 0x01fd2a41, 0x00c5b819, 0x01ae1260, 0x0189bc6c, 0x01c93932, 0x001f03ca}}, Y: Field{[10]uint32{0x01cd037f, 0x008cee9d, 0x00162350, 0x013e6326, 0x01b76e2c, 0x021fd5aa, 0x0255d7a5, 0x0049cb00, 0x033ddf6f, 0x0009fbd4}}},
+ {X: Field{[10]uint32{0x00d5bb48, 0x02da881f, 0x019ba31b, 0x0385c2ca, 0x027bd857, 0x01e53ecc, 0x003e0144, 0x027fbfed, 0x021cea6f, 0x0039c0b5}}, Y: Field{[10]uint32{0x023f79c9, 0x0303acc6, 0x02f2112e, 0x02bf298e, 0x00ee5e28, 0x03781de5, 0x0228a712, 0x03b8f9fc, 0x0081c924, 0x00311de6}}},
+ {X: Field{[10]uint32{0x02c852a8, 0x02b917d9, 0x026d8cc2, 0x02900d69, 0x01c362c5, 0x030591fb, 0x0275c117, 0x0306d6fb, 0x0044eade, 0x003c5e00}}, Y: Field{[10]uint32{0x029e1c18, 0x01dd5c8c, 0x030f89a6, 0x00121727, 0x01e8b7a3, 0x00e00c43, 0x00f63ac1, 0x00e5dfc2, 0x01f0f31b, 0x0017e37a}}},
+ {X: Field{[10]uint32{0x0312dd9e, 0x001c07c7, 0x0369f8d0, 0x02dc5982, 0x011582cc, 0x00999969, 0x0152c533, 0x016c6352, 0x037f22ec, 0x001e906c}}, Y: Field{[10]uint32{0x007fc443, 0x01425458, 0x002b9db7, 0x017890a7, 0x01344886, 0x028bc780, 0x00cd74d2, 0x00967020, 0x02132c57, 0x0021102f}}},
+ {X: Field{[10]uint32{0x002db6d3, 0x033342ca, 0x02779ca4, 0x005b5482, 0x02a5ce63, 0x01f0d546, 0x00f4e165, 0x035a7866, 0x037d8111, 0x000253ff}}, Y: Field{[10]uint32{0x005c6fc0, 0x00926f14, 0x03b909c3, 0x00c0ea4c, 0x0342541d, 0x02c763b5, 0x00a75d38, 0x0030155e, 0x0270026c, 0x00120b24}}},
+ {X: Field{[10]uint32{0x03f4e9d1, 0x03251005, 0x02560a54, 0x0224bdc3, 0x01d37759, 0x02c1692a, 0x00ac76b1, 0x03eaa55b, 0x004e8a3f, 0x0035a9b5}}, Y: Field{[10]uint32{0x00863e1a, 0x01ee95e4, 0x00b6cdc5, 0x021f78e2, 0x03c7b93e, 0x00ea2815, 0x023bbe78, 0x0277a645, 0x0322cd83, 0x001230ee}}},
+ {X: Field{[10]uint32{0x00cdf80c, 0x00813e54, 0x03d53699, 0x024e56e4, 0x02c47c09, 0x00550ee4, 0x01dbc477, 0x03b6ac79, 0x01c08e24, 0x00330389}}, Y: Field{[10]uint32{0x011fb70b, 0x00a0af41, 0x038c8220, 0x015490c6, 0x031a977c, 0x02d29b4e, 0x0376ab2c, 0x033ced0e, 0x00b37170, 0x0008314b}}},
+ {X: Field{[10]uint32{0x02f8d827, 0x0095ced8, 0x01be3db7, 0x0291041e, 0x01efddb6, 0x03ee0f2d, 0x025d0eac, 0x0346be84, 0x03684cb7, 0x0033e54f}}, Y: Field{[10]uint32{0x00909c0c, 0x027b76cc, 0x009ac0b8, 0x01406bf2, 0x03b302fa, 0x038f9428, 0x0047a7b8, 0x0046c42a, 0x0366a45d, 0x001c33f8}}},
+ {X: Field{[10]uint32{0x0015d5dc, 0x02675ada, 0x0319fbff, 0x01d450ea, 0x02f8ce69, 0x03f57f87, 0x016b7112, 0x02ac1bfc, 0x02942b34, 0x0006b089}}, Y: Field{[10]uint32{0x036539fc, 0x038fe96a, 0x026154d9, 0x0348911d, 0x011bd823, 0x027859a0, 0x01b7fddd, 0x0025d53a, 0x017e02bd, 0x00290f51}}},
+ {X: Field{[10]uint32{0x024d65c2, 0x03dc8c9e, 0x029e9bb9, 0x03f6904b, 0x00496349, 0x0256501b, 0x03800bcf, 0x02012bc3, 0x03ff1153, 0x00340aee}}, Y: Field{[10]uint32{0x0002a384, 0x03fff06e, 0x032f2876, 0x02087083, 0x020d41e6, 0x03bc22d5, 0x0344f9b9, 0x00cbdc75, 0x00de3c78, 0x000177a0}}},
+ {X: Field{[10]uint32{0x031831a7, 0x021496d3, 0x0204025a, 0x009920de, 0x02d8a603, 0x0312ca67, 0x021cc2b2, 0x013b8d0b, 0x03478d46, 0x000f32b4}}, Y: Field{[10]uint32{0x002691c0, 0x00dac9b4, 0x0035af30, 0x00f926d4, 0x0147492f, 0x033acd00, 0x0079fdd6, 0x0156d82b, 0x024ca59b, 0x000d7a8a}}},
+ {X: Field{[10]uint32{0x02033688, 0x01ee90cd, 0x0106b80f, 0x02cc1067, 0x01b3a758, 0x03fe12cf, 0x0362e90f, 0x030f3835, 0x01543e69, 0x003ab135}}, Y: Field{[10]uint32{0x01deacbe, 0x01a84bf4, 0x01dbf17f, 0x01b7250d, 0x02ee00fb, 0x036a8611, 0x00449aad, 0x01d2effa, 0x02dac543, 0x002a993e}}},
+ {X: Field{[10]uint32{0x03fca753, 0x02383318, 0x037a9a02, 0x01974f6e, 0x015df624, 0x00cef8a0, 0x026d0c61, 0x00dc4ccc, 0x01b173d9, 0x000f4a1e}}, Y: Field{[10]uint32{0x00d6e0f0, 0x029ca59a, 0x00c9d8f0, 0x0230a9aa, 0x01fd38a0, 0x01336e34, 0x023eecb3, 0x02d7a2a7, 0x024d9b95, 0x0015db39}}},
+ {X: Field{[10]uint32{0x0176ca14, 0x0138c11a, 0x03ce4cf7, 0x015a67ae, 0x0272358a, 0x02a31d9a, 0x0137087c, 0x01a0b894, 0x038d56a9, 0x000fd62a}}, Y: Field{[10]uint32{0x0321f29d, 0x010169ec, 0x02315447, 0x00280579, 0x01f6bce2, 0x02d2036b, 0x030f45f1, 0x02a2a07c, 0x03d101a2, 0x000f2414}}},
+ {X: Field{[10]uint32{0x03fd12d7, 0x01776c44, 0x01b97314, 0x004d6211, 0x022a4ed9, 0x022bab90, 0x029df0fa, 0x03346506, 0x0289b48d, 0x0013d7c4}}, Y: Field{[10]uint32{0x00dc1428, 0x03e095b8, 0x03e86077, 0x01a968f0, 0x0342ac0d, 0x0288cf77, 0x02286ed0, 0x0195dc0f, 0x032cc40c, 0x002d70f8}}},
+ {X: Field{[10]uint32{0x03376a76, 0x00e4b724, 0x03bc5ad0, 0x037fe682, 0x03e4a9dc, 0x028aeb35, 0x00e70ddd, 0x031beb9d, 0x01e2a52d, 0x0029928a}}, Y: Field{[10]uint32{0x018a9590, 0x02c05990, 0x0330b4eb, 0x0332c395, 0x01c776f2, 0x00f770d9, 0x02efe873, 0x02c6ddee, 0x00a6faa9, 0x002b78be}}},
+ {X: Field{[10]uint32{0x00480e70, 0x0331f6f2, 0x02f04994, 0x017788d2, 0x00b8694b, 0x0071b4f8, 0x0186f94e, 0x03e22b47, 0x0212c4d6, 0x0037b82a}}, Y: Field{[10]uint32{0x02f93389, 0x01947e18, 0x002193d4, 0x0320034d, 0x02413ae1, 0x00cb4c35, 0x01368df3, 0x00df3ea7, 0x00d4cbda, 0x0032f66b}}},
+ {X: Field{[10]uint32{0x01796936, 0x003c6235, 0x01f74f9c, 0x023220bf, 0x01772b95, 0x003ad9bf, 0x013e2948, 0x01ab86d9, 0x019dc8af, 0x00219dea}}, Y: Field{[10]uint32{0x0397232e, 0x03abe07f, 0x029ed783, 0x0075370f, 0x00662115, 0x002187d1, 0x03a24f3a, 0x0012392d, 0x00c8348c, 0x000c719a}}},
+ {X: Field{[10]uint32{0x02997fee, 0x005e307d, 0x01d80ed6, 0x0306633b, 0x02f44aed, 0x02f5b59d, 0x0229bc79, 0x029f30ac, 0x013acb73, 0x0014445f}}, Y: Field{[10]uint32{0x01110cd6, 0x0395a30e, 0x01a4d174, 0x01c0c870, 0x0278f207, 0x00258d0f, 0x00651d30, 0x0217045c, 0x0004123f, 0x001718e3}}},
+ {X: Field{[10]uint32{0x03141b12, 0x0328e0e7, 0x024689c3, 0x03e0d08f, 0x020a83c9, 0x00ba8490, 0x03585d45, 0x0020a3a1, 0x03646967, 0x0012362b}}, Y: Field{[10]uint32{0x0265e9de, 0x035938d4, 0x0040fdc4, 0x00d6501b, 0x011998dd, 0x00157b41, 0x029843b9, 0x01269f1a, 0x0342f07f, 0x001562a3}}},
+ {X: Field{[10]uint32{0x02966d2c, 0x03a03d7d, 0x0317aecb, 0x01f7d6ee, 0x01d4060c, 0x0070593a, 0x003d4574, 0x03bb9685, 0x02c1b0fd, 0x0018aea6}}, Y: Field{[10]uint32{0x01d9450e, 0x01b04629, 0x00aedb58, 0x019cec0d, 0x019329fe, 0x01c2cee6, 0x0096494b, 0x0105b17f, 0x013f2290, 0x00196819}}},
+ {X: Field{[10]uint32{0x01febf0d, 0x00a5f492, 0x0004a486, 0x00150fcc, 0x00508d8d, 0x00f1e4c4, 0x02f20580, 0x0295ad43, 0x03cb679d, 0x002f937d}}, Y: Field{[10]uint32{0x01f3ba9b, 0x01b10f35, 0x03a0995f, 0x00183e8f, 0x00ca6973, 0x032a21a5, 0x018cb8ba, 0x00f9fea2, 0x0150dd5f, 0x00306d59}}},
+ {X: Field{[10]uint32{0x00c9979d, 0x010d6c0a, 0x010c3a0c, 0x00b33855, 0x02424eac, 0x0211ccc5, 0x02cdf340, 0x0381a016, 0x036ccca2, 0x00392700}}, Y: Field{[10]uint32{0x01609a1b, 0x02264b98, 0x03bcab16, 0x0078ed0a, 0x0121186b, 0x009ebf5f, 0x010d273d, 0x03f7956f, 0x025f0457, 0x00115af0}}},
+ {X: Field{[10]uint32{0x03fd58e3, 0x01e9be25, 0x01302705, 0x006ab570, 0x02976e70, 0x02ddd30a, 0x03ddfc9c, 0x017642cf, 0x01eda81d, 0x002b9a11}}, Y: Field{[10]uint32{0x02d755bc, 0x01299d5f, 0x03e11e5b, 0x01b39a6c, 0x00450112, 0x014e694d, 0x026194e7, 0x038d8264, 0x0055322a, 0x0014a6f7}}},
+ {X: Field{[10]uint32{0x02a25e1b, 0x03ab8c6f, 0x02d183fb, 0x02652867, 0x004c2744, 0x035c4e19, 0x00717e02, 0x02ddcb32, 0x00f8bcc2, 0x0014a876}}, Y: Field{[10]uint32{0x0189011b, 0x01a79810, 0x001dc9f8, 0x01cf1c0d, 0x03dbb806, 0x00edd4a2, 0x00e77f95, 0x01e25212, 0x032ce7f1, 0x00368a82}}},
+ {X: Field{[10]uint32{0x02a2250a, 0x03ce0165, 0x02918425, 0x02724349, 0x010cc552, 0x035692af, 0x0119f50d, 0x01e01357, 0x0301d89a, 0x003feeeb}}, Y: Field{[10]uint32{0x029880e2, 0x00dfb666, 0x0214538c, 0x0043dac6, 0x022d5144, 0x00bf84c8, 0x02a47a6c, 0x018af416, 0x03b7eba6, 0x00222d7d}}},
+ {X: Field{[10]uint32{0x038c942e, 0x0296783f, 0x011f9fe5, 0x0323fd81, 0x014473fb, 0x013e15c9, 0x03840eed, 0x006adebe, 0x0038aab5, 0x0001bfe9}}, Y: Field{[10]uint32{0x0202d775, 0x02131fb9, 0x01f8e668, 0x0168ab1f, 0x0350a0e9, 0x02584ef2, 0x0060dc66, 0x028100ce, 0x02dd3b88, 0x0016c089}}},
+ {X: Field{[10]uint32{0x00a2fc79, 0x03b250c2, 0x00cb5a45, 0x01eb22f2, 0x00c2c1b7, 0x00749a84, 0x00f5ee59, 0x0311f8c6, 0x0258f92a, 0x00272255}}, Y: Field{[10]uint32{0x001045f9, 0x02b3ea70, 0x0338e516, 0x0057fdd3, 0x00ef4b01, 0x0378963b, 0x0255e286, 0x02f563c5, 0x01e2665e, 0x001c201c}}},
+ {X: Field{[10]uint32{0x01861ba9, 0x037dbc30, 0x03bb5df1, 0x0338153e, 0x00a59bb3, 0x03afb38f, 0x01bffd18, 0x00d6c4ff, 0x020defba, 0x0014cb9b}}, Y: Field{[10]uint32{0x02bc5b8a, 0x02d1d52b, 0x027fff61, 0x003e942e, 0x0336f04b, 0x0192d164, 0x0332ed24, 0x02ef0fad, 0x01dad326, 0x0006bd19}}},
+ {X: Field{[10]uint32{0x01fff425, 0x01238039, 0x02ea138d, 0x02020f69, 0x038a8a9f, 0x01432d28, 0x01add8eb, 0x01c24833, 0x0321e3f2, 0x0026410c}}, Y: Field{[10]uint32{0x0377ea6f, 0x0347c123, 0x03786ef9, 0x00937ca6, 0x02404ecb, 0x0394b0cd, 0x025b1be8, 0x00943f67, 0x0197325c, 0x00046fa1}}},
+ {X: Field{[10]uint32{0x004084f9, 0x02bd1b9f, 0x0217287d, 0x01730cc7, 0x017d7908, 0x008308af, 0x00a6e941, 0x00d2a668, 0x00803a09, 0x00259e64}}, Y: Field{[10]uint32{0x00005e03, 0x011b08e6, 0x02d047dc, 0x02ab5d72, 0x02574903, 0x02ca04bb, 0x0120b5c9, 0x002ff9a9, 0x012d1845, 0x003aa400}}},
+ {X: Field{[10]uint32{0x02a0afb9, 0x036b0dce, 0x006ab729, 0x006d3f0e, 0x021f36f7, 0x03bfdd85, 0x02d99819, 0x03f8433d, 0x0157915f, 0x001d3d74}}, Y: Field{[10]uint32{0x01b29eb5, 0x02750846, 0x0009a2c4, 0x02925069, 0x034e4ce4, 0x03323111, 0x02e225cd, 0x02f1d04a, 0x011e4922, 0x00152800}}},
+ {X: Field{[10]uint32{0x01927855, 0x0335aa30, 0x0231e3e7, 0x035caa81, 0x0176e5f3, 0x0235e9d4, 0x000ddebe, 0x00e5555c, 0x035381c6, 0x00049a49}}, Y: Field{[10]uint32{0x039ae553, 0x03833070, 0x017b72c5, 0x03f544cd, 0x013eefef, 0x0387442d, 0x00554fa1, 0x000b5513, 0x00768110, 0x002e4b94}}},
+ {X: Field{[10]uint32{0x00230d9f, 0x03801ee0, 0x028e11aa, 0x02f37471, 0x00d7cdcf, 0x03c63604, 0x036ae35a, 0x00f5cc16, 0x001b1d14, 0x000213be}}, Y: Field{[10]uint32{0x0175d42a, 0x028bb72d, 0x001bb33c, 0x0116a9b8, 0x02b0dda6, 0x00e28b96, 0x02bcf2c6, 0x033a3087, 0x022ba5b4, 0x0032b8e6}}},
+ {X: Field{[10]uint32{0x009037ad, 0x00544b7b, 0x02a62dd7, 0x034a9ccf, 0x01c8d89d, 0x03b58aa1, 0x007af5e0, 0x01ab1d99, 0x01a3326e, 0x000708ab}}, Y: Field{[10]uint32{0x02aab458, 0x00126045, 0x00b64493, 0x03726580, 0x00bc4142, 0x02e79bf5, 0x0246283c, 0x029abe67, 0x00c61562, 0x003d6966}}},
+ {X: Field{[10]uint32{0x024aff1b, 0x01c7307e, 0x03f4e736, 0x012142ef, 0x03c00f1f, 0x02781054, 0x00dd35fe, 0x02af56aa, 0x024ff08e, 0x001ae472}}, Y: Field{[10]uint32{0x01b31852, 0x00943f84, 0x039778cb, 0x0069f761, 0x01b3c955, 0x00413d61, 0x0368c8b6, 0x03e6753e, 0x02da85ad, 0x0031b36a}}},
+ {X: Field{[10]uint32{0x01f85bc2, 0x01e2573b, 0x0188e23f, 0x02d7a3dc, 0x00b99063, 0x020dcdb9, 0x03f03219, 0x00855d84, 0x01996d2e, 0x0015eed2}}, Y: Field{[10]uint32{0x0347cc3a, 0x036dd96a, 0x0150e94f, 0x0050156d, 0x02d0a1ad, 0x01cea0b6, 0x034b9b20, 0x02a43a49, 0x01c672ee, 0x0024ed1b}}},
+ {X: Field{[10]uint32{0x0233ba6e, 0x03d49812, 0x001ccb40, 0x0289e2be, 0x00067c38, 0x018f7e3c, 0x016d9f24, 0x0159b841, 0x0327ebf7, 0x001d5e42}}, Y: Field{[10]uint32{0x009d2045, 0x0267172e, 0x02dac6be, 0x01c66b81, 0x003af8dc, 0x011bab75, 0x025decf3, 0x002976c1, 0x00a3d99b, 0x00328323}}},
+ {X: Field{[10]uint32{0x0074ebe9, 0x02f2ed41, 0x00a08f32, 0x03d36e31, 0x028dd7b4, 0x00c01287, 0x032b6fde, 0x01642fdf, 0x01ada90b, 0x00329e9d}}, Y: Field{[10]uint32{0x03fc69e3, 0x037b5a60, 0x03a1efd3, 0x0166b372, 0x00512732, 0x003c7700, 0x00e8a08e, 0x01479efd, 0x019c5c93, 0x002cc9e3}}},
+ {X: Field{[10]uint32{0x0390b2d1, 0x013d754b, 0x0365c07a, 0x016bcc61, 0x0147b65a, 0x014aecd9, 0x02a8d6ce, 0x018a50e4, 0x00b93bf4, 0x0029b71a}}, Y: Field{[10]uint32{0x010ad45b, 0x00970cf2, 0x024de8f9, 0x01220648, 0x0237f533, 0x024c7718, 0x033c76a0, 0x01558683, 0x0167fc57, 0x00106e9b}}},
+ {X: Field{[10]uint32{0x03b6bba5, 0x036b87da, 0x01b56fe0, 0x0130fd49, 0x002fafed, 0x0030d844, 0x035a0252, 0x03242b1f, 0x01f3f8af, 0x0036884e}}, Y: Field{[10]uint32{0x036349db, 0x001819c6, 0x02c369ad, 0x00743d6e, 0x0271e92c, 0x03968e53, 0x0097522d, 0x03605b70, 0x0388fa9e, 0x00256b72}}},
+ {X: Field{[10]uint32{0x013da4de, 0x023893d0, 0x002cdf5a, 0x01ec8fc4, 0x03215935, 0x02aea732, 0x034194bf, 0x00018eb2, 0x00752f0e, 0x0028cac9}}, Y: Field{[10]uint32{0x03e576cc, 0x034c587a, 0x013dbddf, 0x02e0d3c1, 0x03e09f8a, 0x030d40db, 0x0316ffd8, 0x009ff31d, 0x0143bd8b, 0x0015f7d0}}},
+ {X: Field{[10]uint32{0x01e9bedc, 0x00e2532b, 0x01392b89, 0x03c8b248, 0x02741718, 0x008cf1ce, 0x0319d8ba, 0x013fcf1c, 0x011d3382, 0x002aba92}}, Y: Field{[10]uint32{0x001a63a7, 0x02d85513, 0x02f4eb24, 0x00cb57e3, 0x01a7ad0d, 0x016bb61b, 0x026a3a1a, 0x0371964e, 0x029184d8, 0x000323ec}}},
+ {X: Field{[10]uint32{0x007f2c75, 0x0222b362, 0x015e7ed3, 0x0170ac0c, 0x01ccf75d, 0x01a3ed8e, 0x00f3eb3d, 0x0026f489, 0x00e27a84, 0x000a4d78}}, Y: Field{[10]uint32{0x0168aad4, 0x026a4e31, 0x001640c8, 0x00343f7f, 0x03977e90, 0x00603530, 0x03d00680, 0x02b90260, 0x002462c9, 0x000313fc}}},
+ {X: Field{[10]uint32{0x030fe577, 0x0091339d, 0x0218163d, 0x02581419, 0x03fdebbd, 0x02fabfb2, 0x034259aa, 0x01c94d60, 0x00769e2e, 0x001ff2a0}}, Y: Field{[10]uint32{0x01bc3542, 0x0384f355, 0x02ed99a5, 0x02e9f6eb, 0x0369cfec, 0x03f453fe, 0x003b8f6f, 0x03b48b2b, 0x03abf04d, 0x0028f770}}},
+ {X: Field{[10]uint32{0x028b483e, 0x02d06457, 0x002a96a7, 0x031c4c59, 0x00bc129e, 0x01ed144d, 0x01e665f5, 0x02929fe9, 0x01c601ca, 0x00316d7c}}, Y: Field{[10]uint32{0x00b538e4, 0x01efeee7, 0x012576d3, 0x019b6332, 0x0173dabb, 0x0098047a, 0x0358fd0c, 0x0263368f, 0x0016da50, 0x0009b2ce}}},
+ {X: Field{[10]uint32{0x01a50d88, 0x03eda81e, 0x034f456b, 0x01d33ff6, 0x03d7d5b1, 0x01e400d6, 0x01ecf4bf, 0x019dc993, 0x0274df43, 0x00104368}}, Y: Field{[10]uint32{0x039a6abf, 0x034aefbb, 0x000f88e1, 0x00e56efc, 0x02254a19, 0x01065e7e, 0x002ef1e8, 0x02cd25b7, 0x0168188e, 0x001c7206}}},
+ {X: Field{[10]uint32{0x0367769a, 0x01634173, 0x03387540, 0x02b142af, 0x036f7976, 0x00e89a06, 0x036c5a24, 0x032002ae, 0x00ca334d, 0x000f664a}}, Y: Field{[10]uint32{0x01d2beb7, 0x03d3a7e5, 0x0115b2e4, 0x02af137c, 0x0062bf01, 0x00282879, 0x0183cdd8, 0x009ed4f8, 0x01dc7661, 0x0033f300}}},
+ {X: Field{[10]uint32{0x00040cec, 0x03d0db32, 0x009192e4, 0x0387ce7f, 0x02d858ea, 0x000028c8, 0x037ce312, 0x0392991d, 0x017bc523, 0x00196a3d}}, Y: Field{[10]uint32{0x01192432, 0x01ff7018, 0x01b323f0, 0x03f30815, 0x03c9df69, 0x008affd8, 0x03f7b0ea, 0x00dd16c7, 0x00b99e95, 0x002081a6}}},
+ {X: Field{[10]uint32{0x0192fb79, 0x00f99a97, 0x021531ac, 0x00e4929c, 0x0055f4e5, 0x0189c969, 0x013ef5ca, 0x001b0bff, 0x03ccbaa6, 0x00213954}}, Y: Field{[10]uint32{0x00c5f8d2, 0x03f43ce7, 0x01d674dc, 0x01d4640b, 0x014c0b5f, 0x03004887, 0x01f77311, 0x025197f6, 0x03324aaa, 0x000d35ab}}},
+ {X: Field{[10]uint32{0x00773783, 0x03059a80, 0x036ac5f8, 0x02d3de68, 0x00dda3d4, 0x03451b6a, 0x011578d5, 0x00489bce, 0x01582885, 0x000ed29d}}, Y: Field{[10]uint32{0x01a59e53, 0x0021306c, 0x007877d0, 0x02f1335f, 0x021a4249, 0x013534d6, 0x00b3cc14, 0x00f30bad, 0x02fc4de8, 0x0038df25}}},
+ {X: Field{[10]uint32{0x00cee6b0, 0x01b67bd4, 0x01db8922, 0x01e1920b, 0x02743395, 0x01ff344b, 0x00898193, 0x013a37a9, 0x012c0616, 0x001b6ef4}}, Y: Field{[10]uint32{0x01e02b90, 0x005845ab, 0x02a70333, 0x03182000, 0x020eed3b, 0x0069a2b3, 0x0247c17e, 0x0345514b, 0x0349b3f5, 0x00227923}}},
+ {X: Field{[10]uint32{0x03c441f6, 0x03edcaa5, 0x03e02f0b, 0x0275b307, 0x02f1118e, 0x03e12bdc, 0x020b7431, 0x019205d2, 0x00db3b92, 0x002d9060}}, Y: Field{[10]uint32{0x03b25fd2, 0x03c30b13, 0x004d99e1, 0x036fab1c, 0x0033cc19, 0x03256817, 0x03a4f0f8, 0x00205899, 0x019783d0, 0x002ce53e}}},
+ {X: Field{[10]uint32{0x016b5c56, 0x003c0e88, 0x02115b26, 0x02fb91ac, 0x0137e96f, 0x02ed9fca, 0x037fc08e, 0x01df1b65, 0x038cf473, 0x00085cfc}}, Y: Field{[10]uint32{0x012e2abf, 0x008becc8, 0x0136f27e, 0x006939e7, 0x023bd1c6, 0x01afb3d5, 0x008c6df0, 0x029a13f6, 0x027803c4, 0x002f680a}}},
+ {X: Field{[10]uint32{0x005c5214, 0x03899b7f, 0x0356a222, 0x029aa289, 0x02ea2b89, 0x033cd781, 0x00df0b48, 0x00bc3619, 0x00d3f373, 0x0027767b}}, Y: Field{[10]uint32{0x03e921fe, 0x035c4b85, 0x0106fa70, 0x0069437b, 0x01dcf00b, 0x01f6e52b, 0x019256a5, 0x0209083b, 0x03202ba6, 0x00390ba9}}},
+ {X: Field{[10]uint32{0x03af71a9, 0x004873f9, 0x0136b02a, 0x00c98134, 0x029d3982, 0x03dca424, 0x0149526a, 0x02d8bb75, 0x03ed5ceb, 0x001c17e7}}, Y: Field{[10]uint32{0x010d30a8, 0x00b30a5d, 0x01d2c44d, 0x00028580, 0x002b32c1, 0x01e9e18f, 0x0269a4a5, 0x01cbac4b, 0x017daa44, 0x002ecb2c}}},
+ {X: Field{[10]uint32{0x00ef4410, 0x02130acb, 0x031a217b, 0x028a3637, 0x033fbcda, 0x03f04978, 0x037fcd8c, 0x01a6f5fe, 0x00d18071, 0x003c6a42}}, Y: Field{[10]uint32{0x00911512, 0x02a91a2e, 0x02cc14e7, 0x03921e04, 0x02d792bb, 0x0214799e, 0x01cfa759, 0x01b15be0, 0x0008804c, 0x0003a1b3}}},
+ {X: Field{[10]uint32{0x01355f57, 0x03370938, 0x00d5fd40, 0x00d1491f, 0x005625e4, 0x02148983, 0x012a4756, 0x00f2071d, 0x01793569, 0x0036c317}}, Y: Field{[10]uint32{0x0283daea, 0x030ba371, 0x02629fe8, 0x0354d533, 0x01d0de9b, 0x014e7af9, 0x0321f1e2, 0x034a54dd, 0x02a9fb00, 0x00048317}}},
+ {X: Field{[10]uint32{0x02423ec6, 0x03b652f2, 0x00af59a2, 0x01c1ed4f, 0x02e979d4, 0x010476a1, 0x0158f683, 0x01fa486c, 0x01355600, 0x00179356}}, Y: Field{[10]uint32{0x0272d935, 0x01ddcf98, 0x026dcb94, 0x02824a1d, 0x01c309b5, 0x0339abbf, 0x0062fb37, 0x027b4c9e, 0x03001a0e, 0x001c5622}}},
+ {X: Field{[10]uint32{0x03ec7f28, 0x00abd013, 0x02bcd487, 0x0019fb3e, 0x00a264d1, 0x00904059, 0x017fd112, 0x0397e23a, 0x02083c46, 0x00069e7b}}, Y: Field{[10]uint32{0x02349111, 0x03de8c8c, 0x02aacc4d, 0x03536501, 0x0254f94b, 0x0229723f, 0x016289f1, 0x01d54c0d, 0x03fc49bf, 0x003e4a36}}},
+ {X: Field{[10]uint32{0x00ac5468, 0x028ebcdb, 0x0346e86c, 0x00492af7, 0x011c3a18, 0x00e8290d, 0x000a2d7f, 0x00311b2d, 0x008be3be, 0x0039a4fe}}, Y: Field{[10]uint32{0x01649cc4, 0x002529b7, 0x00efb78f, 0x0135994e, 0x03fb4f35, 0x022bb16b, 0x032db89d, 0x00a8aebb, 0x03bd24ab, 0x00157c2d}}},
+ {X: Field{[10]uint32{0x029ca25e, 0x0315468c, 0x03e581bc, 0x015d7435, 0x0043bb61, 0x017a5b8a, 0x03b12d4f, 0x00f1dbdc, 0x00b1f3c7, 0x001b457a}}, Y: Field{[10]uint32{0x017f069d, 0x030d620b, 0x0365db74, 0x02f9b8ed, 0x01173f8c, 0x0067e296, 0x020d05e4, 0x01909cca, 0x02e18438, 0x003c87cf}}},
+ {X: Field{[10]uint32{0x03ddb682, 0x02aab78e, 0x02dc48a5, 0x0393fd4d, 0x0220dd98, 0x01964f45, 0x0303f2cf, 0x012bd254, 0x0127b261, 0x00122e3c}}, Y: Field{[10]uint32{0x03546e3f, 0x0395fb0b, 0x02e99c7c, 0x0075a00e, 0x02a50d19, 0x0175e1b5, 0x027e23b5, 0x01f18944, 0x01baec13, 0x0023b46e}}},
+ {X: Field{[10]uint32{0x02eb3028, 0x029f03d6, 0x023d4170, 0x02923fdf, 0x008c29fc, 0x028cb828, 0x0319f291, 0x01144251, 0x0231ee1e, 0x000bb0c9}}, Y: Field{[10]uint32{0x017aa945, 0x015e171a, 0x02c91610, 0x03e04faa, 0x02491572, 0x0341f426, 0x010ee359, 0x014db963, 0x019fe21b, 0x003ae187}}},
+ {X: Field{[10]uint32{0x03afce3a, 0x02e3282b, 0x017b6776, 0x019ba861, 0x007ab72f, 0x01573251, 0x012c13fb, 0x0353517b, 0x02cb3b35, 0x003de583}}, Y: Field{[10]uint32{0x0010f08a, 0x0366b9e1, 0x00510cd6, 0x01fe3e1f, 0x03d8f7cf, 0x0280bba9, 0x0140334d, 0x01ad029c, 0x00f8d40f, 0x00240917}}},
+ {X: Field{[10]uint32{0x02613ef2, 0x011c496e, 0x035af7a2, 0x02e31f72, 0x01139b29, 0x0163cea8, 0x0385780d, 0x03df9bbc, 0x003e4b22, 0x002a5333}}, Y: Field{[10]uint32{0x02845409, 0x03511768, 0x00c45e94, 0x032e33e9, 0x02782471, 0x02f1a99b, 0x01ba357c, 0x03e836a2, 0x00fadd6a, 0x003bdc14}}},
+ {X: Field{[10]uint32{0x01485c38, 0x018bd53d, 0x0239956d, 0x03b45c21, 0x028c42b3, 0x0315bc09, 0x03d6f576, 0x03d0c034, 0x03f86d80, 0x0039229f}}, Y: Field{[10]uint32{0x029a6255, 0x03671697, 0x00231a7b, 0x00091ee6, 0x03e429b7, 0x01ffed0a, 0x01e3c65c, 0x01ec2c8a, 0x0229b499, 0x002c5a54}}},
+ {X: Field{[10]uint32{0x0322d2ae, 0x027a6edf, 0x00d9eac7, 0x02efd922, 0x02cccb09, 0x00a98cf5, 0x025b422b, 0x0320eb36, 0x008c7d46, 0x0037e652}}, Y: Field{[10]uint32{0x0345fd4b, 0x01dd58bc, 0x038c3e04, 0x01176468, 0x03aaf83a, 0x02f4f1ca, 0x001a8785, 0x03d17114, 0x0280a958, 0x00225240}}},
+ {X: Field{[10]uint32{0x0322fd84, 0x03bd06bb, 0x03770553, 0x00f8a6c9, 0x032bb4e4, 0x02e8d23b, 0x024368eb, 0x03e7d1bd, 0x02c04db9, 0x00285431}}, Y: Field{[10]uint32{0x01c5c201, 0x0193ca46, 0x01ccae1f, 0x01fad121, 0x00e7b539, 0x0038fb47, 0x0122ab02, 0x01683b0e, 0x0274e152, 0x001877ea}}},
+ {X: Field{[10]uint32{0x03aa0edd, 0x02a9507c, 0x024e1204, 0x03ff615a, 0x00937392, 0x0326128a, 0x03aa167b, 0x031be475, 0x01fa452e, 0x0026df7b}}, Y: Field{[10]uint32{0x03d2c74a, 0x012a113f, 0x03e7910a, 0x002732b6, 0x03b4262c, 0x0326cc6a, 0x020ef6e7, 0x01a37af2, 0x01122f51, 0x0028dfd2}}},
+ {X: Field{[10]uint32{0x00e51904, 0x03b4d60a, 0x01a23d38, 0x00f3e482, 0x02ad1aa8, 0x01e69641, 0x00f75c55, 0x03a9c6c8, 0x02516d0c, 0x0031f5de}}, Y: Field{[10]uint32{0x00a44bd6, 0x0393635d, 0x00e7f56d, 0x02232d7b, 0x0108e5a2, 0x026c36ba, 0x030a7a14, 0x00d980de, 0x007d9e1a, 0x000e669f}}},
+ {X: Field{[10]uint32{0x02fe73fd, 0x009e52d0, 0x02e8d806, 0x03b2cee1, 0x02fc1d1d, 0x01cf6604, 0x026c2b0f, 0x0396e685, 0x00298e4d, 0x0034c4ea}}, Y: Field{[10]uint32{0x03708fe4, 0x02a20c07, 0x02a16fc9, 0x027182bd, 0x03b8514c, 0x02ef6d36, 0x03062c5d, 0x01b8bcd3, 0x023a7eb2, 0x00194911}}},
+ {X: Field{[10]uint32{0x03211e5f, 0x0181ffa5, 0x038b9787, 0x00f1263c, 0x022e6c2a, 0x00f13c63, 0x0069b8e8, 0x031a4c19, 0x023b4d66, 0x0012efcd}}, Y: Field{[10]uint32{0x011c60c3, 0x01ba301f, 0x025629f2, 0x01670378, 0x0382bb0d, 0x00605dd0, 0x03b64061, 0x01cb1631, 0x024b2438, 0x002790b2}}},
+ {X: Field{[10]uint32{0x021e9cf2, 0x0114d7e1, 0x0003e3f8, 0x00ddd19d, 0x01d471bd, 0x0199f3c6, 0x027ef1da, 0x033a1b52, 0x00ed23a0, 0x0000ef84}}, Y: Field{[10]uint32{0x0066d885, 0x02c10cd0, 0x00ead0a7, 0x02432e57, 0x00edfd20, 0x026ee7ea, 0x034748a4, 0x005f0194, 0x03780cb3, 0x002ee564}}},
+ {X: Field{[10]uint32{0x01ca2076, 0x02736cd7, 0x01d96b16, 0x026032e9, 0x00946da1, 0x034a7bb1, 0x01074ec8, 0x0258f20a, 0x0080d723, 0x003f347e}}, Y: Field{[10]uint32{0x02a87b01, 0x024674ec, 0x013467c0, 0x02b896fb, 0x02d3b105, 0x03e97f21, 0x00ec2755, 0x018b8713, 0x00e3a313, 0x0025226f}}},
+ {X: Field{[10]uint32{0x02b317c4, 0x03009c7e, 0x0217cf0e, 0x02a14b34, 0x01f39f42, 0x023a81a0, 0x027114cd, 0x00d98acb, 0x0358993d, 0x0002d7ec}}, Y: Field{[10]uint32{0x03a71b43, 0x02ceeefc, 0x0334a791, 0x0314537d, 0x0380a653, 0x02c12b09, 0x01bfa828, 0x00b2f3c3, 0x02b8ee62, 0x00227623}}},
+ {X: Field{[10]uint32{0x03e274e7, 0x00920563, 0x037c9556, 0x01fd8139, 0x0330fc13, 0x00b32acf, 0x000f39bd, 0x0118291d, 0x02d17fca, 0x002a1aee}}, Y: Field{[10]uint32{0x030753fb, 0x02de8a40, 0x01a0bd03, 0x038498fd, 0x031394ed, 0x01258b01, 0x0294742e, 0x026b1e34, 0x0259ba96, 0x00309b70}}},
+ {X: Field{[10]uint32{0x0330d29a, 0x02486004, 0x01467887, 0x025309f4, 0x019dd3fc, 0x024d744a, 0x034bc7ba, 0x02f259f8, 0x01f6348c, 0x0003b4c8}}, Y: Field{[10]uint32{0x03f7c3b5, 0x00349468, 0x021351be, 0x00085400, 0x00fc5ac4, 0x03c1ef72, 0x03b44d6c, 0x0177871d, 0x0360832b, 0x002d01e0}}},
+ {X: Field{[10]uint32{0x02d17dea, 0x035c6506, 0x0097996e, 0x023dc07f, 0x022c425b, 0x03825312, 0x01e827ed, 0x02e4dbd5, 0x0275e4dd, 0x003205e4}}, Y: Field{[10]uint32{0x002553a7, 0x03fa6776, 0x02622e16, 0x018f14ac, 0x038ce5e9, 0x019921ab, 0x009b0b92, 0x034597ad, 0x005be241, 0x003667c7}}},
+ {X: Field{[10]uint32{0x0284985b, 0x03435f77, 0x02512df1, 0x00b87647, 0x010eeaf8, 0x03e37f3f, 0x02743283, 0x02ce0d24, 0x013f23b9, 0x001bc23c}}, Y: Field{[10]uint32{0x00bd602e, 0x00ff8236, 0x03a76a4a, 0x00788b31, 0x010665d6, 0x000dc2b1, 0x0258ed05, 0x010ce9bb, 0x0029f99f, 0x0025adaa}}},
+ {X: Field{[10]uint32{0x038f9d5a, 0x031f99e7, 0x015e4b35, 0x01b28461, 0x03e6ab5d, 0x03ab0f97, 0x01f8b609, 0x02753fbe, 0x03e3410f, 0x002510e9}}, Y: Field{[10]uint32{0x03eded57, 0x003e4d8e, 0x01b538fa, 0x03756847, 0x02ac9b2a, 0x001eaf08, 0x03c93e6d, 0x0230fcc6, 0x03b57818, 0x00363141}}},
+ {X: Field{[10]uint32{0x033c502b, 0x01c0fd44, 0x013d2e37, 0x0120378a, 0x01d38c88, 0x01c015bb, 0x03afcfa5, 0x00da06b4, 0x00ca3ed5, 0x0010cbaa}}, Y: Field{[10]uint32{0x03edff71, 0x00ce26da, 0x00118faa, 0x0371909c, 0x010965dd, 0x009b1a98, 0x0266a498, 0x00aec023, 0x028b70b5, 0x00278648}}},
+ {X: Field{[10]uint32{0x0182403b, 0x0240ff86, 0x032c130f, 0x03ab8adc, 0x005e22ff, 0x00f1ffb6, 0x02584a3d, 0x00bf6316, 0x009a42f8, 0x000745d6}}, Y: Field{[10]uint32{0x00c39ceb, 0x003d549e, 0x00e9454e, 0x017ef978, 0x03511e96, 0x0117c31a, 0x0164ed02, 0x03482099, 0x03b48f18, 0x0027def3}}},
+ {X: Field{[10]uint32{0x018e6b2d, 0x00da87f8, 0x0098b554, 0x03fffdf0, 0x021ab8c6, 0x024104b3, 0x02778ea7, 0x0211bd97, 0x01b5cd84, 0x001d0ce6}}, Y: Field{[10]uint32{0x00b784bc, 0x03d26cb6, 0x03145fb1, 0x02739733, 0x01e84ff4, 0x0006dbf4, 0x0166d3fc, 0x006f9399, 0x001a8280, 0x00371b32}}},
+ {X: Field{[10]uint32{0x0110b2a7, 0x0268369e, 0x0071fa27, 0x00cb817e, 0x025330d2, 0x02d7e490, 0x023e80e3, 0x0123058b, 0x01583b28, 0x00390de1}}, Y: Field{[10]uint32{0x01624b68, 0x036b3c15, 0x011f080c, 0x006f41db, 0x01d5e242, 0x005e6862, 0x013f99f8, 0x01e3901f, 0x0171aa49, 0x0030e6d0}}},
+ {X: Field{[10]uint32{0x0318d63e, 0x0009acd9, 0x02a10664, 0x033bd7d0, 0x038f8a99, 0x00029918, 0x0355ac7d, 0x00e6a3c5, 0x00a31b16, 0x003bbdda}}, Y: Field{[10]uint32{0x0224a991, 0x01211cc7, 0x01ef5ee6, 0x02e22f8a, 0x01878efc, 0x03a5ec19, 0x030043af, 0x039a186b, 0x01f4cbf4, 0x000aa401}}},
+ {X: Field{[10]uint32{0x03c91fe9, 0x0032a86f, 0x0129a180, 0x027ecb7a, 0x00fc2afa, 0x01807612, 0x00dce1bd, 0x0184b3d0, 0x02872504, 0x000576d1}}, Y: Field{[10]uint32{0x027eded8, 0x01c43313, 0x03515f17, 0x002e568b, 0x021e7236, 0x0242e0b2, 0x00678a9d, 0x02366941, 0x024e7d50, 0x002a2db9}}},
+ {X: Field{[10]uint32{0x014a4191, 0x015eeb43, 0x022a0c77, 0x00fbf1e3, 0x01d2b330, 0x015a87f6, 0x028d2a04, 0x02a12e74, 0x02cf2529, 0x002b517e}}, Y: Field{[10]uint32{0x0254f069, 0x012a234d, 0x0125aa6b, 0x002583e6, 0x01bf8d81, 0x03ddf56b, 0x02f58678, 0x00c0d45b, 0x0171473f, 0x00069e39}}},
+ {X: Field{[10]uint32{0x01151824, 0x02526d6e, 0x03d8958c, 0x01b57e92, 0x021c19b6, 0x0224aeb0, 0x0375050a, 0x01ed33ad, 0x03446e02, 0x0010680d}}, Y: Field{[10]uint32{0x01140317, 0x0150df65, 0x00e74bb4, 0x033590d7, 0x0027c53a, 0x00381ea1, 0x021cb2e6, 0x034e3e9c, 0x00ddfa96, 0x003b5f11}}},
+ {X: Field{[10]uint32{0x03217ae0, 0x0047c749, 0x00740560, 0x035836b0, 0x015a70d5, 0x003c410f, 0x03645890, 0x031ffcb3, 0x006958f4, 0x0008082e}}, Y: Field{[10]uint32{0x01c4e9e0, 0x02e53df8, 0x02aa0490, 0x0184a754, 0x02b37f59, 0x0093ac71, 0x01946171, 0x03d0c686, 0x01e22757, 0x00044656}}},
+ {X: Field{[10]uint32{0x02bd4ba1, 0x00e0ea7a, 0x00180283, 0x0155c400, 0x0299c5f7, 0x021685a7, 0x033bf27d, 0x01d2a543, 0x0146859f, 0x000be66a}}, Y: Field{[10]uint32{0x0389fc53, 0x0153dd37, 0x039fa128, 0x02753a35, 0x0236ecba, 0x03982164, 0x024ed246, 0x03aa891e, 0x0182d3ca, 0x000f9888}}},
+ {X: Field{[10]uint32{0x02369baa, 0x03af7467, 0x03a3c177, 0x01d752a0, 0x010e7c56, 0x03889fca, 0x027688c2, 0x014e4005, 0x018957f6, 0x003773ce}}, Y: Field{[10]uint32{0x034b2431, 0x0077004b, 0x01b873da, 0x0233cac4, 0x01c3c342, 0x02437408, 0x01a3ceea, 0x020ce88e, 0x023f3fa6, 0x0029c031}}},
+ {X: Field{[10]uint32{0x011ace4f, 0x03441086, 0x0117b73b, 0x02ab02de, 0x0392df1e, 0x024c6716, 0x022fa9e0, 0x008d8067, 0x03b80425, 0x002618e9}}, Y: Field{[10]uint32{0x003b69e6, 0x018d58b8, 0x02b6a3bf, 0x02b93c6c, 0x023a1fa7, 0x00928c3a, 0x0309f8c7, 0x02ac852f, 0x01a9281d, 0x00126926}}},
+ {X: Field{[10]uint32{0x01733886, 0x02a3d637, 0x01d2e467, 0x03bcf1b5, 0x0219cb4d, 0x012e3a4b, 0x033734a6, 0x01645cd3, 0x01f9ea2c, 0x001b1519}}, Y: Field{[10]uint32{0x020e733c, 0x03f110c7, 0x03c8d3da, 0x017e8701, 0x03768f65, 0x00c66acf, 0x02a2616a, 0x03cd7456, 0x02bb179d, 0x00015f88}}},
+ {X: Field{[10]uint32{0x00f3fcdd, 0x01e7c514, 0x03a530d9, 0x0153f9c0, 0x0025acb6, 0x02c281a4, 0x00ca387f, 0x00efac34, 0x0113360b, 0x002acdd5}}, Y: Field{[10]uint32{0x0041be4a, 0x01170bdb, 0x027c5464, 0x01d940fb, 0x0157f0f7, 0x030de9bb, 0x03842f43, 0x00b7966d, 0x0149309a, 0x000fa704}}},
+ {X: Field{[10]uint32{0x002603d2, 0x00481e93, 0x03111482, 0x02a7a450, 0x00ff0878, 0x0016c8b4, 0x03aee379, 0x03bac2c8, 0x03ea4a72, 0x001ab2f8}}, Y: Field{[10]uint32{0x030d32b9, 0x032c6777, 0x025330ae, 0x00f39256, 0x02ac2ca2, 0x03279a01, 0x023dad76, 0x01365a85, 0x00be9f93, 0x0007b3bf}}},
+ {X: Field{[10]uint32{0x02955d89, 0x03e573ce, 0x008c3653, 0x00141fc7, 0x03b4ddd1, 0x01d9b894, 0x00ac9f9c, 0x00310979, 0x014458fd, 0x001e5574}}, Y: Field{[10]uint32{0x0250aaca, 0x00d40925, 0x01245847, 0x00ec0349, 0x0340c672, 0x00e880a1, 0x02892255, 0x021fc252, 0x01f73043, 0x0023ea71}}},
+ {X: Field{[10]uint32{0x01ace377, 0x0083360d, 0x0213228c, 0x02ff95e0, 0x02d488eb, 0x01ef4f68, 0x02b25a22, 0x010cfdc0, 0x010c0090, 0x002d65cb}}, Y: Field{[10]uint32{0x02b008fa, 0x035932d0, 0x03212cf3, 0x0211702f, 0x00e3e78f, 0x005d2cbf, 0x01ef70ed, 0x00f7949e, 0x00bf7fbc, 0x0008d51c}}},
+ {X: Field{[10]uint32{0x00bcf886, 0x02d22f41, 0x038e4d9c, 0x01f91257, 0x02cc500d, 0x00f31e7c, 0x004f3bc5, 0x03e9a288, 0x001033a5, 0x002899aa}}, Y: Field{[10]uint32{0x015949f8, 0x022def7d, 0x011ecb56, 0x00916c2e, 0x03d52b78, 0x011bcf8d, 0x00390e6a, 0x0056dd99, 0x01a1958d, 0x000c6a2c}}},
+ {X: Field{[10]uint32{0x00b9cc15, 0x03908751, 0x03123451, 0x00fdf783, 0x01ae7f4f, 0x03a7df08, 0x03bf47e1, 0x006d8d6e, 0x02ec2119, 0x00071904}}, Y: Field{[10]uint32{0x002c685a, 0x0188a131, 0x0169d82a, 0x006c8bfe, 0x016e7fec, 0x000958c2, 0x0173851d, 0x0313cfd6, 0x022c1111, 0x0020cfe2}}},
+ {X: Field{[10]uint32{0x020b7fda, 0x018841cf, 0x01f68a74, 0x01f17989, 0x03817267, 0x03b813fc, 0x019ccbef, 0x016d5e70, 0x02ab1757, 0x003b8d4c}}, Y: Field{[10]uint32{0x027e8718, 0x03d1441b, 0x00f53a9a, 0x02d24acb, 0x0304b704, 0x03123b9a, 0x01ff04dc, 0x0261ee0f, 0x00c8b2fd, 0x003c4b84}}},
+ {X: Field{[10]uint32{0x021a3838, 0x011367fb, 0x0115e379, 0x012c0259, 0x0152ef9a, 0x01fd6d2f, 0x012765af, 0x01e4dcbb, 0x03be0486, 0x0017b443}}, Y: Field{[10]uint32{0x00080573, 0x03218ced, 0x028af2a8, 0x01ed7ef1, 0x02a4bffd, 0x00977399, 0x00ac6410, 0x00e493b6, 0x01b49fbe, 0x002313ae}}},
+ {X: Field{[10]uint32{0x001378d2, 0x00754d74, 0x0152a15a, 0x0165c208, 0x01b8f6b8, 0x01cd0838, 0x03e7345f, 0x0217b5a7, 0x0221f04c, 0x003f8d22}}, Y: Field{[10]uint32{0x001f2b7b, 0x0273f482, 0x019117fa, 0x00f5f67e, 0x03506947, 0x038e3908, 0x02abd103, 0x02afd173, 0x0046c9f5, 0x00356575}}},
+ {X: Field{[10]uint32{0x032436e9, 0x0221d17e, 0x0223dbda, 0x02730245, 0x03b57367, 0x016e8e5c, 0x021e1c0b, 0x012e8021, 0x0369b7b6, 0x0001c500}}, Y: Field{[10]uint32{0x03a12b2d, 0x01da9520, 0x010ad1f3, 0x01881cb1, 0x0240dfa3, 0x003199cb, 0x003bc213, 0x02581ca3, 0x0350f979, 0x003c1dc0}}},
+ {X: Field{[10]uint32{0x01dad15d, 0x020855e6, 0x01bd40aa, 0x036ea0e0, 0x020a7465, 0x0048c025, 0x02c6b88b, 0x0078eb9f, 0x00e48e98, 0x001b4531}}, Y: Field{[10]uint32{0x03e0f841, 0x016c1439, 0x0299a50e, 0x023ed6fa, 0x01f9c6de, 0x02d62cb5, 0x02635f6d, 0x0344aa93, 0x02aaa5f2, 0x00097934}}},
+ {X: Field{[10]uint32{0x024383da, 0x036c2bc6, 0x0228daea, 0x01c416ed, 0x004dffe0, 0x015413a2, 0x020558e5, 0x01f5f8d8, 0x01c6a683, 0x001e4c6e}}, Y: Field{[10]uint32{0x03e80c0b, 0x033fb7be, 0x002ff9d5, 0x0012108b, 0x0196b7a9, 0x03cef4e3, 0x0112128b, 0x00971b77, 0x02733209, 0x00161b2a}}},
+ {X: Field{[10]uint32{0x01cec834, 0x03342f79, 0x03d95b0e, 0x01149eaa, 0x0088dca1, 0x005462e2, 0x00e1f32a, 0x00f50d74, 0x016a35b8, 0x000527a7}}, Y: Field{[10]uint32{0x025606f5, 0x01d316b3, 0x02e1fcbc, 0x03300641, 0x00f87b11, 0x03404bed, 0x01d49b38, 0x033197a4, 0x02a0fd84, 0x0011601e}}},
+ {X: Field{[10]uint32{0x01297394, 0x026f49c3, 0x03ff7b80, 0x025b0a12, 0x001bf6e6, 0x01e52404, 0x02f2b59d, 0x0146a088, 0x036eb4b3, 0x00195ac9}}, Y: Field{[10]uint32{0x03763291, 0x01cca05e, 0x025d9b64, 0x034feaa3, 0x03905eb6, 0x0038d624, 0x00ebfa9a, 0x010e8a4a, 0x03095f86, 0x0021d1bc}}},
+ {X: Field{[10]uint32{0x031eb02e, 0x012d8283, 0x000a6988, 0x00814e62, 0x033656a7, 0x01e14b87, 0x022370ff, 0x01a627b9, 0x01e36808, 0x00183ce6}}, Y: Field{[10]uint32{0x0044ad59, 0x02cadbf5, 0x0267d4f1, 0x03f937bc, 0x039e5976, 0x0082dde7, 0x0251676d, 0x02f85214, 0x005a8347, 0x00157728}}},
+ {X: Field{[10]uint32{0x006eaa13, 0x036f9062, 0x00e0d4ca, 0x016a4063, 0x01034a30, 0x013e6f70, 0x006f4175, 0x02907029, 0x03030a67, 0x00136f68}}, Y: Field{[10]uint32{0x03a48fc4, 0x01616e0f, 0x03970c22, 0x025748f5, 0x01909a3b, 0x010cedd1, 0x01f9fe64, 0x00d16359, 0x0086fec3, 0x003818b3}}},
+ {X: Field{[10]uint32{0x010363d1, 0x03ca8037, 0x03111d07, 0x0313d256, 0x03f8c8b1, 0x0360671a, 0x03c10c8f, 0x01336569, 0x01ca04d6, 0x00205ab8}}, Y: Field{[10]uint32{0x02526009, 0x03470619, 0x0366b2df, 0x03c83524, 0x03b12187, 0x03a744ee, 0x02a55208, 0x035bf55b, 0x03ffc331, 0x003027da}}},
+ {X: Field{[10]uint32{0x0081b52b, 0x00636be0, 0x020a000f, 0x011305b5, 0x01872029, 0x0178a22b, 0x032b8fae, 0x03829f0e, 0x039c983f, 0x001160e7}}, Y: Field{[10]uint32{0x01dd8649, 0x02169a99, 0x004db2a7, 0x01af3684, 0x01aff40c, 0x0020d6be, 0x01f7beb3, 0x013ad020, 0x02074de7, 0x003e4da3}}},
+ {X: Field{[10]uint32{0x00223465, 0x016dba35, 0x00d5063c, 0x01f6c8ef, 0x0244b715, 0x0309153c, 0x004c482e, 0x0080ec78, 0x02483a49, 0x00142b92}}, Y: Field{[10]uint32{0x015f3008, 0x02e8df9f, 0x0065836d, 0x00a170d9, 0x010a6190, 0x0160ef69, 0x032031ec, 0x00b87d97, 0x03d7e7bd, 0x00386e33}}},
+ {X: Field{[10]uint32{0x016b72d6, 0x010657d8, 0x039dba69, 0x012fb49b, 0x03c5d8bb, 0x0086b39d, 0x02dde15b, 0x01422467, 0x02316039, 0x0037ddec}}, Y: Field{[10]uint32{0x034344a4, 0x03254022, 0x0303717d, 0x0032ccfc, 0x00c99e27, 0x019cd997, 0x00cff822, 0x02fef2e2, 0x01b89ece, 0x002292dd}}},
+ {X: Field{[10]uint32{0x0233277d, 0x02c2e3bc, 0x01345437, 0x02358ecb, 0x016d2d23, 0x0009d01d, 0x00419d67, 0x00bc62dd, 0x0219978e, 0x003b1b03}}, Y: Field{[10]uint32{0x0236e553, 0x018fc2c9, 0x02d8a4a3, 0x01a05cf3, 0x0296bd39, 0x016ff931, 0x0171dc13, 0x03133189, 0x039a02df, 0x003e436a}}},
+ {X: Field{[10]uint32{0x017b3329, 0x00640458, 0x03e4ba46, 0x0215214a, 0x005af2a8, 0x029c8886, 0x014eacb1, 0x03f39a9b, 0x016f90e7, 0x000a1d10}}, Y: Field{[10]uint32{0x02eb4466, 0x0374997a, 0x0282d448, 0x01256d36, 0x03b8628e, 0x0244ab5f, 0x024c9af7, 0x0359222e, 0x0275f6ce, 0x0007cc8d}}},
+ {X: Field{[10]uint32{0x00ff4247, 0x02b3cfdc, 0x01d2be7d, 0x032e25f2, 0x02529de5, 0x00edb74f, 0x0087f3e8, 0x00ea03e3, 0x03ec586d, 0x0021c8d9}}, Y: Field{[10]uint32{0x02a3ac05, 0x01a144a9, 0x02eeceef, 0x032792d8, 0x017dc571, 0x0109f802, 0x00768b5e, 0x0210ede2, 0x00e0fae0, 0x00396ed8}}},
+ {X: Field{[10]uint32{0x024713cc, 0x02368f90, 0x01f4891b, 0x02c84efc, 0x004339a0, 0x00312bcd, 0x0030ce94, 0x03f4c2b9, 0x00040baf, 0x003043c8}}, Y: Field{[10]uint32{0x0231c7ee, 0x00dfef61, 0x02e59c35, 0x01e58d0f, 0x03bf6dbf, 0x00fe0bb7, 0x006d456b, 0x026cdb15, 0x0055f0c3, 0x000defa4}}},
+ {X: Field{[10]uint32{0x00d847c5, 0x01b7651c, 0x0059da35, 0x02cee4ef, 0x00733b8b, 0x00cd4fa0, 0x01f0f150, 0x00c015af, 0x02e191c8, 0x0005384b}}, Y: Field{[10]uint32{0x03efcfb2, 0x01438ea6, 0x020dab15, 0x00c80634, 0x01d487f0, 0x019b5c91, 0x0332ba7c, 0x005e044a, 0x038ee00c, 0x003a5c1e}}},
+ {X: Field{[10]uint32{0x009fdf36, 0x01e08f12, 0x003057b5, 0x02d2ba01, 0x003687ea, 0x02b414f9, 0x00dd89f6, 0x00de774b, 0x021e2583, 0x0036b0ee}}, Y: Field{[10]uint32{0x03e2c041, 0x011d171b, 0x03fa4761, 0x010bf4de, 0x02d13a69, 0x00b47b13, 0x0020ab1c, 0x00546557, 0x024d8821, 0x001178f6}}},
+ {X: Field{[10]uint32{0x03800bf4, 0x01373faf, 0x00b09264, 0x02eff74b, 0x00a2507d, 0x000e968b, 0x039fad0b, 0x021abba1, 0x027a05c0, 0x00366ff1}}, Y: Field{[10]uint32{0x02be6730, 0x00518d00, 0x02ca42fc, 0x023ac8f9, 0x02e5bb4e, 0x024d243d, 0x036c8b1e, 0x03d6f454, 0x014b5a39, 0x00380577}}},
+ {X: Field{[10]uint32{0x0196c61e, 0x01861cde, 0x00b34007, 0x00704bdb, 0x028a9a98, 0x03659660, 0x00d7e581, 0x03283c5c, 0x00522f04, 0x00379bcd}}, Y: Field{[10]uint32{0x032a0cc7, 0x00153bbd, 0x00e3b826, 0x0053fc09, 0x012fc6d8, 0x00d3857c, 0x039c251f, 0x013ea50e, 0x033b28d7, 0x0007b05b}}},
+ {X: Field{[10]uint32{0x00e30eaf, 0x02fe0a28, 0x00d93f54, 0x00e93ea3, 0x02b35c87, 0x00d94a0f, 0x00a15ef2, 0x005eba21, 0x0355338e, 0x0010caac}}, Y: Field{[10]uint32{0x01447807, 0x00f73fe5, 0x02b9e870, 0x0029f61a, 0x01caa9af, 0x00830429, 0x023e0767, 0x0036fc22, 0x02a10a13, 0x003d5819}}},
+ {X: Field{[10]uint32{0x037c4d99, 0x0102359f, 0x02afa35a, 0x0036d6fa, 0x008d9699, 0x02550c75, 0x010f546d, 0x009f0e8d, 0x0107cfa1, 0x000f4b8d}}, Y: Field{[10]uint32{0x035f74f2, 0x015564e8, 0x02ac51b2, 0x0020aef4, 0x017f4a05, 0x003e288d, 0x01655cab, 0x030dcc51, 0x005f4711, 0x00369822}}},
+ {X: Field{[10]uint32{0x00ba87ef, 0x01b94609, 0x0183f457, 0x03180646, 0x03f781c7, 0x017cedc6, 0x0029d0a5, 0x0352f8df, 0x031cb96d, 0x001fcfd0}}, Y: Field{[10]uint32{0x00b8bfec, 0x032009d8, 0x021c1695, 0x03093a45, 0x02cfdb08, 0x01c5dee5, 0x00259f6f, 0x034930ae, 0x03457649, 0x003d37d0}}},
+ {X: Field{[10]uint32{0x03687143, 0x00129fcb, 0x017163d6, 0x0357c4a3, 0x026f7b67, 0x015639ab, 0x036cdd8b, 0x01c00112, 0x0359f2c8, 0x00109c2f}}, Y: Field{[10]uint32{0x01a99315, 0x023aaf53, 0x0174e0d0, 0x0037b494, 0x006c4a18, 0x01689549, 0x025da0a1, 0x03e465a1, 0x00ef2e8f, 0x00000d63}}},
+ {X: Field{[10]uint32{0x03603852, 0x0256e31f, 0x02ebd46f, 0x02ac3af8, 0x01b7931c, 0x0147194e, 0x013af50d, 0x03f27104, 0x022b9930, 0x003198dc}}, Y: Field{[10]uint32{0x025ecfab, 0x01c237a4, 0x0313f719, 0x0231e3e3, 0x020b9476, 0x00f292cc, 0x0132a310, 0x008f63ad, 0x03b32cdf, 0x000d10f9}}},
+ {X: Field{[10]uint32{0x006c4e14, 0x023c58b2, 0x0214f21f, 0x03ce56b9, 0x010168e8, 0x019b95fe, 0x03d7b65c, 0x03fc0b3a, 0x0064e396, 0x002c0052}}, Y: Field{[10]uint32{0x002eb876, 0x02f92e86, 0x0272cb7d, 0x027a8381, 0x004a80b6, 0x02d4048c, 0x025007da, 0x02537bb9, 0x01d7e2ec, 0x000fdb26}}},
+ {X: Field{[10]uint32{0x0284f41a, 0x00310436, 0x03b2e125, 0x03d34919, 0x03c2d735, 0x032e0b90, 0x03329f0c, 0x02768d74, 0x019398fe, 0x00193273}}, Y: Field{[10]uint32{0x024372e9, 0x02544555, 0x0105ec8d, 0x01e3fd42, 0x01c223ef, 0x033b7c12, 0x0206fc6d, 0x0180cf44, 0x00ab71bf, 0x003492d4}}},
+ {X: Field{[10]uint32{0x0129b766, 0x03f676f3, 0x02736ab4, 0x03533cc9, 0x00ecccfa, 0x009f6e58, 0x0359706b, 0x0161893d, 0x001d51e0, 0x003ff821}}, Y: Field{[10]uint32{0x01cf2562, 0x001d245e, 0x00a0177c, 0x0244c2cd, 0x03eb5d83, 0x01360193, 0x02c15952, 0x01b0413f, 0x01c9f695, 0x001af47c}}},
+ {X: Field{[10]uint32{0x03ca7432, 0x034fe6dd, 0x020fa47f, 0x01873c3c, 0x034b4518, 0x03103479, 0x0138d630, 0x03165eeb, 0x00c0c053, 0x00034774}}, Y: Field{[10]uint32{0x0055976f, 0x0288ef5b, 0x0103280b, 0x02b77a4a, 0x035c9dc5, 0x02aabd9a, 0x03b5628d, 0x0257c0f9, 0x03fdb594, 0x000d2aa5}}},
+ {X: Field{[10]uint32{0x028e5779, 0x03b2916b, 0x01d8df99, 0x00106c61, 0x019153f7, 0x03e65bc7, 0x0249cd3a, 0x035fde8f, 0x02e8c76b, 0x0021e90d}}, Y: Field{[10]uint32{0x011006f3, 0x02f9e5fc, 0x02027b6d, 0x03fdaa26, 0x00369ea4, 0x0287f0db, 0x0105d5b2, 0x00e113fe, 0x03f91255, 0x00234b3c}}},
+ {X: Field{[10]uint32{0x0327c379, 0x03a7b2f7, 0x016e4b59, 0x0037354e, 0x00180107, 0x023f58bb, 0x00f707da, 0x031100e1, 0x00a74899, 0x00295140}}, Y: Field{[10]uint32{0x03cb2668, 0x00d15c8c, 0x02cae2f3, 0x00fc4768, 0x005315df, 0x00b249fe, 0x035b5e57, 0x02ec1817, 0x004a6d26, 0x00388591}}},
+ {X: Field{[10]uint32{0x03d8187b, 0x02f54695, 0x00a9c88f, 0x01c821a4, 0x0328417b, 0x012358c8, 0x01aea85b, 0x0067d3e9, 0x00f799a3, 0x0024dfa9}}, Y: Field{[10]uint32{0x03dc9d9d, 0x03215533, 0x027bbb24, 0x036a9f4f, 0x00fce77b, 0x00510e2b, 0x01ce4afd, 0x02bb22df, 0x03fc9eb4, 0x000a4c69}}},
+ {X: Field{[10]uint32{0x03fa6f36, 0x02c1766d, 0x03f07a1e, 0x018e3525, 0x02c70608, 0x02c13fc9, 0x00dbc96c, 0x012a8c81, 0x0076bb91, 0x00141e4f}}, Y: Field{[10]uint32{0x00bdab21, 0x00ff59c1, 0x03fbdeb1, 0x000daec7, 0x03d963b6, 0x0077a7bc, 0x00940df4, 0x001d8ada, 0x0078b5e3, 0x002beabf}}},
+ {X: Field{[10]uint32{0x02d8bb5a, 0x025d9bc1, 0x01bf13a2, 0x02098755, 0x01f8da52, 0x02ff86b5, 0x011c5709, 0x03959373, 0x0230fada, 0x0022d801}}, Y: Field{[10]uint32{0x032916c0, 0x0108481a, 0x01f4dc11, 0x026e7080, 0x01788538, 0x0164dd30, 0x005a7c38, 0x010e6bb1, 0x024a3bd0, 0x003efc6d}}},
+ {X: Field{[10]uint32{0x038c8458, 0x03cf40b9, 0x027bd635, 0x010c8ac5, 0x021fc616, 0x03ff062e, 0x03c96500, 0x0057b68d, 0x03dde32a, 0x00053a22}}, Y: Field{[10]uint32{0x036f02c9, 0x007bfa65, 0x009d735b, 0x004dd809, 0x035cc2cd, 0x01d6bf82, 0x02355be4, 0x003ea97e, 0x02c3dc24, 0x00020b07}}},
+ {X: Field{[10]uint32{0x011c6c06, 0x00bf3d26, 0x00a30a91, 0x024bbf1c, 0x01975a3d, 0x031e2c72, 0x013dc028, 0x0211cb51, 0x00a324b6, 0x00308079}}, Y: Field{[10]uint32{0x00e2dc08, 0x01a7a73c, 0x00cee624, 0x02334e37, 0x02a82f5f, 0x031e1a84, 0x03f3e503, 0x039b423a, 0x015441d6, 0x000098ea}}},
+ {X: Field{[10]uint32{0x019db4fb, 0x03443b82, 0x035a70c5, 0x00b9846c, 0x01409418, 0x0060a337, 0x0061b1e1, 0x022cfdc6, 0x025d319a, 0x001025d9}}, Y: Field{[10]uint32{0x027a506a, 0x02dc3540, 0x027a85dc, 0x0255415c, 0x03322a6b, 0x01bffb80, 0x02cd1ef5, 0x00ac7d5d, 0x00ebb1aa, 0x0032835f}}},
+ {X: Field{[10]uint32{0x0027fa92, 0x03aad26d, 0x037a445d, 0x007cde94, 0x01371334, 0x02f814b6, 0x02021a04, 0x00a4fb74, 0x007aeff9, 0x0005cf4a}}, Y: Field{[10]uint32{0x02432548, 0x02691b05, 0x00e541fb, 0x00b34fe7, 0x0172e530, 0x015c9519, 0x03c37b58, 0x00621b09, 0x0204f03a, 0x002589b8}}},
+ {X: Field{[10]uint32{0x014d4256, 0x0086911a, 0x039e78f1, 0x031a3c7c, 0x01227fb8, 0x0098a6fb, 0x014b03c9, 0x00453cc3, 0x034d001b, 0x003248f1}}, Y: Field{[10]uint32{0x035b3d29, 0x004d1016, 0x002731f4, 0x000f62b5, 0x00c9f918, 0x03c089e2, 0x00d1e08e, 0x004e0842, 0x026bdd5e, 0x00163b6f}}},
+ {X: Field{[10]uint32{0x00b92d46, 0x0312adc3, 0x01a57c88, 0x02f9b2e4, 0x0393e5a8, 0x025b3cc7, 0x03104c51, 0x0170b4f7, 0x0106b1f2, 0x0024be9e}}, Y: Field{[10]uint32{0x0087f307, 0x0185d472, 0x0024079a, 0x017b3962, 0x00ae99a7, 0x02f34367, 0x0374db62, 0x007f07a3, 0x02bd7934, 0x00284858}}},
+ {X: Field{[10]uint32{0x00639140, 0x02a8f102, 0x0294c691, 0x024412ba, 0x00976a9c, 0x034c3577, 0x008e17ee, 0x01e30aa7, 0x01f6f51f, 0x000dd1df}}, Y: Field{[10]uint32{0x00089872, 0x0357f0aa, 0x037305c2, 0x019bd419, 0x0325c3da, 0x0142c114, 0x006e15de, 0x0195b193, 0x02ed1955, 0x001a9a89}}},
+ {X: Field{[10]uint32{0x010521bf, 0x03682637, 0x0359667a, 0x0090db17, 0x00be9bc7, 0x02fc03ec, 0x034e78ca, 0x03ce37e0, 0x02591195, 0x002d6cbb}}, Y: Field{[10]uint32{0x01ddd5e4, 0x01c1b885, 0x03e44314, 0x02c03f63, 0x00cc8bae, 0x0146afa4, 0x01d276d9, 0x00c0211b, 0x03859523, 0x00043cdb}}},
+ {X: Field{[10]uint32{0x02a137bb, 0x0116c0f4, 0x03630948, 0x00d5dbb2, 0x02560393, 0x034c1fbc, 0x02415e90, 0x006ff8da, 0x01b8443f, 0x0002c174}}, Y: Field{[10]uint32{0x01066cbc, 0x01fc189f, 0x02f6465f, 0x01200f87, 0x0054098f, 0x03c358fe, 0x002a4156, 0x002cb0c4, 0x024bddc9, 0x00267fb3}}},
+ {X: Field{[10]uint32{0x01d918fd, 0x01aba281, 0x03179de7, 0x0219b342, 0x03d69dcd, 0x025496d6, 0x03d703ae, 0x02cef73b, 0x01bd4778, 0x003975c4}}, Y: Field{[10]uint32{0x01b64248, 0x0070d71b, 0x01327542, 0x0092bce2, 0x009685d5, 0x03fbd5a4, 0x0088e218, 0x016ca683, 0x00ae5aa0, 0x0022bc05}}},
+ {X: Field{[10]uint32{0x02fa4f30, 0x007de1a1, 0x03eb9f4f, 0x00471092, 0x001e217d, 0x0344de66, 0x031c6fc4, 0x0120beff, 0x02b8377a, 0x001dc0f2}}, Y: Field{[10]uint32{0x0084e8b3, 0x000d5c7a, 0x03f0a8e9, 0x03b5082b, 0x008dd329, 0x015a324b, 0x02247fd5, 0x02e36f1f, 0x01d13c80, 0x000cc8fb}}},
+ {X: Field{[10]uint32{0x014f3cc8, 0x017d8985, 0x03085540, 0x00b3052c, 0x032c87da, 0x00a910d5, 0x02cf7225, 0x02d220d9, 0x0329c18b, 0x003e0d2b}}, Y: Field{[10]uint32{0x015ab248, 0x0007fb6f, 0x015c2820, 0x0311c5d8, 0x026bd8f7, 0x03f56f31, 0x027dc094, 0x01068a78, 0x02c0ca54, 0x000ba282}}},
+ {X: Field{[10]uint32{0x03bbaee0, 0x01d0cd92, 0x03a794c7, 0x01f40740, 0x0213bbcd, 0x007614ab, 0x038ee845, 0x00f18076, 0x013d13f3, 0x001e0ec2}}, Y: Field{[10]uint32{0x00ae5b4b, 0x0326e09d, 0x001ab66e, 0x031c105c, 0x036b5fb1, 0x03b0b3be, 0x00dbfb20, 0x01aaffe8, 0x0301cfde, 0x000eaa42}}},
+ {X: Field{[10]uint32{0x001c3391, 0x00b69678, 0x022666f9, 0x02087062, 0x033ae42e, 0x023bcb1d, 0x00a243b4, 0x002e6405, 0x0035a777, 0x002f8f31}}, Y: Field{[10]uint32{0x00e4a701, 0x02a49d97, 0x01c51e6a, 0x00149775, 0x00a560f7, 0x0187af16, 0x01fc64de, 0x02316056, 0x01360911, 0x003c34ef}}},
+ {X: Field{[10]uint32{0x003b606d, 0x0024a15e, 0x02a08fc9, 0x001a115d, 0x0197f89e, 0x03fb86b8, 0x03624545, 0x0003bbf8, 0x03d7adac, 0x000fa602}}, Y: Field{[10]uint32{0x01c5c228, 0x00ccffba, 0x0088a34d, 0x00c14ff5, 0x0367455e, 0x03824451, 0x00734347, 0x0251b1d1, 0x0241204c, 0x003193c3}}},
+ {X: Field{[10]uint32{0x0182b442, 0x02f3ecb5, 0x027c335b, 0x01517757, 0x0291d7b1, 0x025e435c, 0x0159bf12, 0x0079a8d2, 0x0140aa62, 0x0029ac10}}, Y: Field{[10]uint32{0x03cce830, 0x00705a6a, 0x0137f804, 0x0363b90b, 0x03a997f8, 0x010abdb9, 0x021d1515, 0x01765d79, 0x01e29cc0, 0x00272cb2}}},
+ {X: Field{[10]uint32{0x03fa721b, 0x02038a91, 0x002e51f2, 0x00b4888e, 0x0229ba43, 0x00a6cb0e, 0x009a6a1b, 0x032e3e84, 0x003fc133, 0x001fa9ea}}, Y: Field{[10]uint32{0x0299d7e8, 0x01f763a9, 0x031b45bb, 0x01d78e15, 0x026aabab, 0x03450c29, 0x01c5562a, 0x01dcc60c, 0x00e88a1f, 0x0032f8e1}}},
+ {X: Field{[10]uint32{0x010fa042, 0x00ab2982, 0x026c8d84, 0x03b851aa, 0x008189f9, 0x0052e9b5, 0x002b5fca, 0x027af8be, 0x007ef0fc, 0x0021497a}}, Y: Field{[10]uint32{0x0332c86f, 0x01c39d5a, 0x022a686c, 0x0391f7f8, 0x00192873, 0x028d295c, 0x02a393f2, 0x028f3c60, 0x0278f311, 0x00373c1a}}},
+ {X: Field{[10]uint32{0x03d56dce, 0x029ed06e, 0x00fc0952, 0x03cdb341, 0x0316daff, 0x0197fa59, 0x0129c337, 0x0034327b, 0x037dfa05, 0x001d5569}}, Y: Field{[10]uint32{0x03152177, 0x035bc7c5, 0x019cfd0b, 0x024a0c1a, 0x0118dc03, 0x002bcc44, 0x03d0a3cd, 0x03707f62, 0x00a7bdc3, 0x00261530}}},
+ {X: Field{[10]uint32{0x02ac296b, 0x03b85f66, 0x02f710be, 0x02eefb98, 0x00972bb3, 0x00cf8031, 0x026f0261, 0x036b0453, 0x02a07a0a, 0x0027b450}}, Y: Field{[10]uint32{0x037a9d08, 0x0142880a, 0x03f6a391, 0x02144709, 0x009f4dca, 0x01a66bd4, 0x00d4006f, 0x038ee349, 0x02416c80, 0x00307aba}}},
+ {X: Field{[10]uint32{0x03c56b79, 0x00ec6a37, 0x029d5fb1, 0x0310b805, 0x00c9d761, 0x00463f60, 0x02aa67c8, 0x02333424, 0x00b3784d, 0x0028ff4b}}, Y: Field{[10]uint32{0x007ea755, 0x02ff56fe, 0x01f6d659, 0x03c9e827, 0x02b0d13d, 0x03243562, 0x00fcdd48, 0x0157cb54, 0x034155db, 0x001d7366}}},
+ {X: Field{[10]uint32{0x005ad251, 0x014880d8, 0x0142fc99, 0x038a2edb, 0x01554338, 0x02703884, 0x01ad598b, 0x01fba1e6, 0x0205217e, 0x000aad2f}}, Y: Field{[10]uint32{0x0076d853, 0x03d78c55, 0x01dc7bd8, 0x0320f231, 0x03b788af, 0x00f8791e, 0x008c8eb8, 0x01b529ff, 0x0258da06, 0x000b0a86}}},
+ {X: Field{[10]uint32{0x0248c383, 0x02959ee1, 0x033592ce, 0x002767e3, 0x0308c95d, 0x019bb33a, 0x02268af5, 0x006ababd, 0x0088af8c, 0x0012bf0a}}, Y: Field{[10]uint32{0x004f5eed, 0x0164cdaa, 0x0005458b, 0x012f8778, 0x03cf3f28, 0x03a671fa, 0x01025797, 0x03a4ba62, 0x03825e69, 0x002c789a}}},
+ {X: Field{[10]uint32{0x018e3d4a, 0x00086d4b, 0x0188b548, 0x03236bf6, 0x02f63f5f, 0x02b070ac, 0x0038600a, 0x0274b920, 0x03aa9231, 0x00376003}}, Y: Field{[10]uint32{0x0039ed7d, 0x006a5dc4, 0x0260ce8e, 0x024853fb, 0x028fdbc1, 0x006206f1, 0x02522ac9, 0x01a35d83, 0x00926e04, 0x00167fa0}}},
+ {X: Field{[10]uint32{0x02378c91, 0x029d3cf1, 0x017e2af5, 0x0209b7e7, 0x0007bb51, 0x02bec1fe, 0x039bc886, 0x0297e226, 0x03d1daa3, 0x00212abc}}, Y: Field{[10]uint32{0x0035afbb, 0x030a920e, 0x030e8011, 0x021add13, 0x03a04fd5, 0x0333825a, 0x0331218e, 0x0375be98, 0x02b845ea, 0x003d0592}}},
+ {X: Field{[10]uint32{0x03c40b2b, 0x02b4ea09, 0x02fcc8ad, 0x0202e233, 0x00d2ffc1, 0x037feda4, 0x02823a3a, 0x0276e2a4, 0x02c39e2e, 0x002ddc3c}}, Y: Field{[10]uint32{0x000d53e6, 0x01667a37, 0x0122e79f, 0x025f29b3, 0x037e319c, 0x01ba9593, 0x01b90a91, 0x01260974, 0x02370989, 0x0003df1b}}},
+ {X: Field{[10]uint32{0x02bb2b29, 0x00879fae, 0x0336236a, 0x021c924f, 0x017cb1db, 0x02c41f32, 0x0145c5fb, 0x039559c0, 0x00a8a0d7, 0x00298182}}, Y: Field{[10]uint32{0x0354de5f, 0x009715de, 0x00e1906f, 0x007ed603, 0x01a289c9, 0x03528e06, 0x0006f906, 0x01152259, 0x027c4e41, 0x000d08d4}}},
+ {X: Field{[10]uint32{0x03414597, 0x02d926d4, 0x032d921e, 0x03dff2af, 0x0320f6b0, 0x0324469c, 0x02b4e5fc, 0x00e4e979, 0x00f97b7f, 0x00203d1c}}, Y: Field{[10]uint32{0x03d9adc3, 0x033a7c4a, 0x03e4afa1, 0x01392d6d, 0x03770fa1, 0x004f0fce, 0x028faea0, 0x02f8304c, 0x02f96e1b, 0x0015f63c}}},
+ {X: Field{[10]uint32{0x015abb6f, 0x032ccea6, 0x017fe261, 0x036c7c0e, 0x0072e4a3, 0x01929ed6, 0x03f0096c, 0x012330ff, 0x03f21f52, 0x00138446}}, Y: Field{[10]uint32{0x02eb2b9f, 0x02b2eda5, 0x02b0f6d5, 0x0050c7ea, 0x00c03af6, 0x0182f64c, 0x01829c1d, 0x00cefd7f, 0x01721027, 0x0009273c}}},
+ {X: Field{[10]uint32{0x022844c9, 0x005b1a31, 0x034f0184, 0x0037ce05, 0x00960cb7, 0x0083a17b, 0x0254660a, 0x00763040, 0x00b547fa, 0x001f6303}}, Y: Field{[10]uint32{0x0335a271, 0x00015c57, 0x00743404, 0x02b87daf, 0x0372b0f1, 0x00d633f4, 0x017335bf, 0x0135e685, 0x023c17ec, 0x000b5e6e}}},
+ {X: Field{[10]uint32{0x030a0034, 0x00aabe59, 0x013aaf61, 0x02e26d65, 0x0014b132, 0x016a7cbc, 0x023d48fa, 0x01be95fc, 0x00bd9589, 0x002f0353}}, Y: Field{[10]uint32{0x03a0639d, 0x0283d20b, 0x01412480, 0x00fca3a9, 0x0383d756, 0x015dcef2, 0x02410915, 0x019605e9, 0x02707b31, 0x003d7419}}},
+ {X: Field{[10]uint32{0x02d37a40, 0x039c3ead, 0x006a42df, 0x029a9f99, 0x015cceb0, 0x024c8785, 0x02ddbe1c, 0x03445657, 0x02aead08, 0x002c5528}}, Y: Field{[10]uint32{0x0216592a, 0x01794fcc, 0x00756c8b, 0x0234278f, 0x0217120d, 0x0257225b, 0x01e586f6, 0x0344af40, 0x0221674d, 0x0026aeb7}}},
+ {X: Field{[10]uint32{0x0372e1e4, 0x01729615, 0x03325531, 0x0159f91d, 0x02314be7, 0x0107f8b9, 0x013bc318, 0x001bc9c1, 0x0034a6ce, 0x003bd80f}}, Y: Field{[10]uint32{0x009ad65d, 0x02b965f1, 0x00f5164a, 0x023cef42, 0x0115fced, 0x0206688c, 0x03a7e57d, 0x02c2e648, 0x022896f3, 0x003e7aef}}},
+ {X: Field{[10]uint32{0x02aa9376, 0x0388ffa0, 0x016e2c04, 0x03686b12, 0x01014f7b, 0x02b70010, 0x01a05d91, 0x007aeeb5, 0x036c2d90, 0x00298045}}, Y: Field{[10]uint32{0x02e88ab8, 0x0228c0c6, 0x01e68f8c, 0x03e74fab, 0x03d59abc, 0x03a450dd, 0x032fb849, 0x00d924dd, 0x01b7ce0c, 0x003de077}}},
+ {X: Field{[10]uint32{0x0031e6a7, 0x00c54e57, 0x007eb273, 0x03bcea40, 0x03b1c7f0, 0x0326a409, 0x03968b9b, 0x00413bea, 0x0147b6b3, 0x002af105}}, Y: Field{[10]uint32{0x017e0ec9, 0x02e28df6, 0x00dce879, 0x034d498a, 0x03594c5b, 0x035e0e66, 0x00a1821d, 0x0075bef6, 0x00a228f2, 0x00334a16}}},
+ {X: Field{[10]uint32{0x007f5a81, 0x038e85f6, 0x008a92f2, 0x029b4c6d, 0x02941d1d, 0x009b904e, 0x024c4300, 0x031c86cb, 0x010500c9, 0x0024a240}}, Y: Field{[10]uint32{0x0260a5da, 0x025fca36, 0x03e2bb30, 0x02669f2f, 0x0015c223, 0x004ed1f1, 0x0032e17c, 0x03185c79, 0x007b1bdc, 0x003072b6}}},
+ {X: Field{[10]uint32{0x037ca563, 0x01129f70, 0x00228ad1, 0x0201af59, 0x00500a7a, 0x0251da43, 0x02468319, 0x00d7291a, 0x02a69f4b, 0x00394837}}, Y: Field{[10]uint32{0x022a82de, 0x02c34f22, 0x03356638, 0x002b6d9c, 0x01e2330b, 0x02b538b6, 0x0355dda6, 0x023efa40, 0x0366ac3f, 0x001b0035}}},
+ {X: Field{[10]uint32{0x017fadc4, 0x00b5c071, 0x03fb3750, 0x005463c3, 0x02ac2e93, 0x035bbc97, 0x03d18a79, 0x03c70695, 0x0223e2b3, 0x00300cde}}, Y: Field{[10]uint32{0x00808b65, 0x00851bd4, 0x021eccdd, 0x00e3db81, 0x017ac7e9, 0x001e95c3, 0x029c3d5b, 0x037cd51c, 0x0073be22, 0x003f3a96}}},
+ {X: Field{[10]uint32{0x0181ac04, 0x0049e6ca, 0x0193cfa5, 0x02583d4d, 0x001b796a, 0x00b47589, 0x01fb6a76, 0x00b01dad, 0x02bb6a8e, 0x0009db18}}, Y: Field{[10]uint32{0x021afc1a, 0x00ba85db, 0x0292b73e, 0x01e0223d, 0x00773c45, 0x01a588db, 0x01284d7d, 0x000748fe, 0x025abb6b, 0x001714e9}}},
+ {X: Field{[10]uint32{0x01663a5f, 0x00776fa3, 0x01ed4fad, 0x01bd9ea7, 0x00c4a2de, 0x00f23b79, 0x037ccdd4, 0x00770ae0, 0x0287e505, 0x00181387}}, Y: Field{[10]uint32{0x03429bee, 0x001ac9e2, 0x0034902d, 0x01ce670d, 0x02ace4c4, 0x01113618, 0x014d6759, 0x0065ce4f, 0x023ce351, 0x003dc3f8}}},
+ {X: Field{[10]uint32{0x0041f6fa, 0x038e21d7, 0x00eec3b6, 0x02bbdf93, 0x024aba16, 0x03a40e6e, 0x00b05be5, 0x02441b56, 0x011f470d, 0x003cbf05}}, Y: Field{[10]uint32{0x01e98de0, 0x02a485b8, 0x037b85d2, 0x01ce705a, 0x00d41887, 0x001da418, 0x027f2d6e, 0x01718f63, 0x02c7f1aa, 0x003d26f4}}},
+ {X: Field{[10]uint32{0x000ac560, 0x0240b84d, 0x00315eb0, 0x025359ac, 0x007ee0b2, 0x0391babe, 0x001d9cd7, 0x00d3bcee, 0x03460e9f, 0x002380c4}}, Y: Field{[10]uint32{0x00394296, 0x00517e4b, 0x00dca450, 0x023003b0, 0x02006b02, 0x03b81413, 0x027441c0, 0x00787944, 0x00bda5e2, 0x003fc032}}},
+ {X: Field{[10]uint32{0x01a9970b, 0x027d03f9, 0x01a0a96b, 0x02cea174, 0x03d4e26e, 0x02ca553a, 0x021cbe16, 0x01ea3c9e, 0x031ad75b, 0x002a1a03}}, Y: Field{[10]uint32{0x02070c01, 0x0065cef9, 0x024c6950, 0x02fb10a5, 0x02757401, 0x00fd4a25, 0x03281f2a, 0x036b18e5, 0x0341a55b, 0x001831af}}},
+ {X: Field{[10]uint32{0x004f4658, 0x039b1bd4, 0x03066128, 0x00035372, 0x0009ca8c, 0x002171e5, 0x03407c05, 0x00ba8780, 0x01e7f4d8, 0x00135a28}}, Y: Field{[10]uint32{0x03d1ce76, 0x009979e8, 0x02af4d36, 0x0028e99c, 0x0126a955, 0x030db75b, 0x0295d2d2, 0x00da44aa, 0x0211e5dd, 0x00217177}}},
+ {X: Field{[10]uint32{0x02c2a7a9, 0x02882bb9, 0x024835c6, 0x0306b9e2, 0x01758c0b, 0x0340bace, 0x003cdc1b, 0x021925a6, 0x001c2a6d, 0x000dc23d}}, Y: Field{[10]uint32{0x03ec4152, 0x014febea, 0x039e7f45, 0x01171c2b, 0x023c2b71, 0x02aac64f, 0x01ae0f87, 0x03d77572, 0x019e79b7, 0x000c42de}}},
+ {X: Field{[10]uint32{0x0115f059, 0x038de028, 0x01a92f6c, 0x0334eaec, 0x022d1a18, 0x00fd6dcc, 0x03961814, 0x02317fc6, 0x01674502, 0x0023220e}}, Y: Field{[10]uint32{0x020725d8, 0x0229f9d8, 0x00e10b00, 0x01097237, 0x0040128e, 0x019b761f, 0x03441800, 0x01212830, 0x02d4e4ae, 0x0009158e}}},
+ {X: Field{[10]uint32{0x018f8fb0, 0x0387fd35, 0x0305d0a0, 0x03098d08, 0x03652e83, 0x0129c98e, 0x010fd1a9, 0x01eb4ef7, 0x036a7b37, 0x00311179}}, Y: Field{[10]uint32{0x03acc89d, 0x033a9872, 0x01b8cc94, 0x039c8c19, 0x02f60ae2, 0x02ab9f71, 0x03bd3c13, 0x036d84eb, 0x001adc8d, 0x0012fd69}}},
+ {X: Field{[10]uint32{0x02419f16, 0x03d976a3, 0x02e8deb2, 0x017bb6ab, 0x0236949d, 0x0292e7f5, 0x019f1d4d, 0x00d7f983, 0x013ac8a6, 0x0012b658}}, Y: Field{[10]uint32{0x00b0d7c4, 0x02d2545a, 0x0331642a, 0x01ded2c1, 0x01387458, 0x03c6a06e, 0x0131c83e, 0x0283eceb, 0x03068f67, 0x0016a6d6}}},
+ {X: Field{[10]uint32{0x0360c943, 0x0074a7f5, 0x00b0c20d, 0x02f163a4, 0x022e397f, 0x0122a998, 0x0349d776, 0x03f9b26a, 0x02e1958b, 0x002facfa}}, Y: Field{[10]uint32{0x0382c9b8, 0x03bfe200, 0x02678dba, 0x01edaa08, 0x03ec76f2, 0x02a9a36b, 0x01dc6fb5, 0x019eac89, 0x02bef43a, 0x00035691}}},
+ {X: Field{[10]uint32{0x0134f397, 0x026867f4, 0x018ab9df, 0x0050f900, 0x034623fc, 0x035281da, 0x03f1daea, 0x0086cef8, 0x02b0bc0e, 0x002aaa6a}}, Y: Field{[10]uint32{0x0342e40b, 0x01c0ee89, 0x0390ed3c, 0x03e2ead9, 0x02d3f094, 0x03e8b6b4, 0x000347e8, 0x00b1969b, 0x03fe1964, 0x000271f5}}},
+ {X: Field{[10]uint32{0x0199dc52, 0x035a956b, 0x01356604, 0x01867f57, 0x00d40116, 0x0073e749, 0x017ae86f, 0x03d118bf, 0x028999d6, 0x00154f07}}, Y: Field{[10]uint32{0x0150cebc, 0x002f5bfd, 0x004ed646, 0x0250de4d, 0x013f6fe4, 0x01f17c37, 0x02ba776f, 0x02b169b4, 0x013b8410, 0x0009ad03}}},
+ {X: Field{[10]uint32{0x02a1abc8, 0x03afe096, 0x0128ab47, 0x0025567b, 0x00c3d565, 0x01c97581, 0x00dae9c4, 0x023f10e6, 0x01ea3637, 0x00216621}}, Y: Field{[10]uint32{0x000687f5, 0x00c7f3fc, 0x030669e5, 0x02a8f102, 0x020e6e84, 0x02cb458d, 0x02fd9305, 0x02e58eec, 0x02f9fc74, 0x003eb96b}}},
+ {X: Field{[10]uint32{0x00368f93, 0x01ef7bbc, 0x0254b0bb, 0x00ca9c31, 0x0189e510, 0x00ee08d1, 0x00bf7c16, 0x01752155, 0x0118679c, 0x0017ec28}}, Y: Field{[10]uint32{0x03c2a2d0, 0x03c6099a, 0x00c70a4c, 0x02b4e765, 0x005b9966, 0x02e5761a, 0x0302111e, 0x005b4efe, 0x01f04a68, 0x0003a355}}},
+ {X: Field{[10]uint32{0x00f91dfa, 0x02fa0be5, 0x00302194, 0x0175df39, 0x02bbed44, 0x039c376b, 0x03d737c1, 0x03854f26, 0x034786f3, 0x00029090}}, Y: Field{[10]uint32{0x03beed46, 0x00595239, 0x02496971, 0x02963b04, 0x01a54239, 0x0096da7f, 0x0012f4df, 0x03f6a704, 0x02d6abd9, 0x0009f472}}},
+ {X: Field{[10]uint32{0x00c821e7, 0x006e4868, 0x003eef57, 0x0115cac2, 0x00394659, 0x01ca4c43, 0x028213cc, 0x0307ce82, 0x0108063f, 0x0017401d}}, Y: Field{[10]uint32{0x02b2df3a, 0x00744aff, 0x007f939f, 0x0205ac10, 0x02d99bfa, 0x0048e121, 0x00c26056, 0x01681ecb, 0x03c45d05, 0x00394e3e}}},
+ {X: Field{[10]uint32{0x002e3db9, 0x00bd7a0a, 0x02a525f8, 0x02a9c737, 0x01e80393, 0x012aadfe, 0x00605a0e, 0x000a1a4d, 0x01b897b1, 0x0028fac9}}, Y: Field{[10]uint32{0x01e7f77d, 0x00f60fdc, 0x00c6f030, 0x022f9a24, 0x036beec5, 0x00a259f1, 0x036baaf1, 0x03117908, 0x00c21430, 0x0038acd5}}},
+ {X: Field{[10]uint32{0x0097981b, 0x00b8273a, 0x01f0fff7, 0x01453a8d, 0x021e309e, 0x0043f205, 0x033f51cd, 0x00c80a5b, 0x02208a13, 0x001cfd8c}}, Y: Field{[10]uint32{0x02420179, 0x03b41cc2, 0x01dc4015, 0x01ea286d, 0x02309525, 0x00d26a4b, 0x01f7ded0, 0x03ccbb5b, 0x0159cc78, 0x0010d04a}}},
+ {X: Field{[10]uint32{0x00da41af, 0x03b139d2, 0x01bb4ccf, 0x00b7c6ee, 0x00776051, 0x01811992, 0x00d9628f, 0x02d7ce3c, 0x01d1c21b, 0x0017c209}}, Y: Field{[10]uint32{0x025c0cab, 0x0108e7ff, 0x02323b37, 0x02e30925, 0x005becd4, 0x01964a09, 0x031abd5b, 0x03784a13, 0x020e1d95, 0x0037aeb1}}},
+ {X: Field{[10]uint32{0x03d84294, 0x00967fbd, 0x0276da10, 0x03ff19a9, 0x02efc26d, 0x03448a53, 0x023f624c, 0x03a7cbeb, 0x02f2b4a8, 0x003310a9}}, Y: Field{[10]uint32{0x03230519, 0x0383850e, 0x016901ba, 0x0385a804, 0x03118a7a, 0x02d7ec5f, 0x03f2adb2, 0x02f417c4, 0x0200f92c, 0x00246c99}}},
+ {X: Field{[10]uint32{0x03635a17, 0x0000bb1b, 0x022618f0, 0x035af44d, 0x034de0c5, 0x03bef347, 0x01aad7a8, 0x0384fea0, 0x00e76eeb, 0x001f55b8}}, Y: Field{[10]uint32{0x03fa1ad8, 0x004eb090, 0x01754f7d, 0x03b156a4, 0x00051122, 0x03a9779f, 0x01ca813e, 0x038fb91b, 0x0307fe55, 0x00255189}}},
+ {X: Field{[10]uint32{0x03a5be61, 0x015301bd, 0x00dc6add, 0x03f0f1d9, 0x02fba8ca, 0x02b6d5ad, 0x03605b3a, 0x017b12b2, 0x021b4fe8, 0x001e5cad}}, Y: Field{[10]uint32{0x02b8c7d8, 0x0249b24c, 0x037dd9f4, 0x03397516, 0x024764c4, 0x011aa3a4, 0x00f5141c, 0x03e9ba9f, 0x02702642, 0x002e8619}}},
+ {X: Field{[10]uint32{0x01025626, 0x00208d75, 0x02e0bbbe, 0x01fcd87e, 0x034344c8, 0x019d3e43, 0x01f63609, 0x00540226, 0x0040347b, 0x003b7229}}, Y: Field{[10]uint32{0x032cd77b, 0x007b3106, 0x024864d0, 0x008a6947, 0x027bf841, 0x034502cb, 0x00c7cefa, 0x02fd666f, 0x03409a14, 0x000be049}}},
+ {X: Field{[10]uint32{0x01b16899, 0x021df34f, 0x00d18d54, 0x02fc9558, 0x02d4ea1b, 0x027e6661, 0x0327b571, 0x03d354bd, 0x01c97a8c, 0x002f66d9}}, Y: Field{[10]uint32{0x02fe432d, 0x02638af0, 0x019af7db, 0x00fd77fa, 0x01ee9c8e, 0x02f93e18, 0x00d9e02d, 0x023972fc, 0x01274e87, 0x001673dc}}},
+ {X: Field{[10]uint32{0x00f35782, 0x038ab313, 0x02106f3b, 0x00096542, 0x0072d918, 0x01317636, 0x03565714, 0x03a3334d, 0x02381191, 0x0009d8d7}}, Y: Field{[10]uint32{0x00d1ab7d, 0x0264bdc3, 0x00ce9db1, 0x03cdf9ae, 0x00eb5251, 0x03d46eb5, 0x03fa3ab8, 0x021c3401, 0x0247a019, 0x0030d67f}}},
+ {X: Field{[10]uint32{0x0321d85c, 0x0377c84e, 0x03261839, 0x03d2577e, 0x00359950, 0x01e803a6, 0x02abad14, 0x014c02a5, 0x00c316c0, 0x001124b7}}, Y: Field{[10]uint32{0x009ad35b, 0x00d3b5f7, 0x02433189, 0x02fe9630, 0x02fafed4, 0x008a7716, 0x03b8c6d2, 0x00790b6f, 0x0371a4e8, 0x0003b7c4}}},
+ {X: Field{[10]uint32{0x01f9c67b, 0x02a981bb, 0x03c01279, 0x031b3b8d, 0x0325887f, 0x02f623e3, 0x028a3869, 0x00079637, 0x0040409e, 0x003e0493}}, Y: Field{[10]uint32{0x026fa6bc, 0x01830868, 0x009d3655, 0x0231879d, 0x022b0f00, 0x035fcd98, 0x026269c3, 0x03b82a28, 0x01d1d31f, 0x0003801c}}},
+ {X: Field{[10]uint32{0x0205a2b5, 0x0212f0e6, 0x030b1b57, 0x00ce3d57, 0x02ce3aed, 0x03579470, 0x000716ad, 0x03337e8b, 0x0367066e, 0x0033165e}}, Y: Field{[10]uint32{0x00682865, 0x00e9061d, 0x022da74e, 0x039fcfbc, 0x03df52da, 0x00a3a356, 0x0212ec40, 0x010f6747, 0x01fc394a, 0x0004b80c}}},
+ {X: Field{[10]uint32{0x005aeda2, 0x034c78a0, 0x022ee6fd, 0x01c698c8, 0x03d4a45f, 0x03549774, 0x01642707, 0x020fef48, 0x02c6bc12, 0x00050b2c}}, Y: Field{[10]uint32{0x02d66ec0, 0x017b7197, 0x02f2e181, 0x03edf1a1, 0x00ed082b, 0x02fb1916, 0x015b7180, 0x0108ab93, 0x0112c72c, 0x002f7a4f}}},
+ {X: Field{[10]uint32{0x001d2d3c, 0x03645230, 0x0147968f, 0x01d78fc3, 0x01c33273, 0x02a25dea, 0x016704a1, 0x0165079a, 0x0202dd76, 0x003efd35}}, Y: Field{[10]uint32{0x006afa8d, 0x03c4e5b0, 0x0118d08e, 0x02ca6bdf, 0x00c7b96f, 0x01a3d858, 0x014cae8e, 0x02572e9b, 0x01f799e8, 0x00196d1b}}},
+ {X: Field{[10]uint32{0x01bfffb8, 0x0048f863, 0x02bc7c6d, 0x036f3163, 0x01f09436, 0x03053143, 0x0300ea5e, 0x03a3338c, 0x0157bb5f, 0x003bf6d7}}, Y: Field{[10]uint32{0x0203fe01, 0x01ee2900, 0x00deb813, 0x01fb7758, 0x01d444e4, 0x019ef627, 0x019ce931, 0x00318988, 0x0003d9a9, 0x000e420e}}},
+ {X: Field{[10]uint32{0x003f35ad, 0x0241d08b, 0x03d74976, 0x03c7ab7a, 0x02921f59, 0x01afcb53, 0x00b36c7b, 0x00155c2d, 0x0334faa3, 0x0016f290}}, Y: Field{[10]uint32{0x021206e3, 0x03489ef0, 0x0345b520, 0x00a8d4fe, 0x0179d27f, 0x03591b6d, 0x03f2fe1c, 0x018fdc8a, 0x02f5e2a6, 0x000f25ee}}},
+ {X: Field{[10]uint32{0x01156632, 0x03c7cfd4, 0x00d4c49f, 0x025c69cf, 0x01ff921e, 0x012a9990, 0x018a0f05, 0x03c1956b, 0x03bce90c, 0x0026a876}}, Y: Field{[10]uint32{0x031a4200, 0x00efd00a, 0x012dc651, 0x01eae404, 0x016e0b33, 0x02730449, 0x002f0f0b, 0x03a176e0, 0x001d8bf1, 0x0032fdba}}},
+ {X: Field{[10]uint32{0x03c2d408, 0x02a5589c, 0x01b86aba, 0x01bfbfc2, 0x035386e5, 0x037b0a09, 0x01d4d23d, 0x01d9d935, 0x005586ed, 0x000bf1ff}}, Y: Field{[10]uint32{0x01d6285f, 0x0272041a, 0x03f3f54f, 0x01617531, 0x016019a5, 0x000c42d7, 0x037b0c3e, 0x00d2bb91, 0x01e4773c, 0x0016ffda}}},
+ {X: Field{[10]uint32{0x034190b2, 0x03332ef4, 0x03f34764, 0x00403cbf, 0x026ef3b2, 0x0037e445, 0x01954878, 0x01bcb10c, 0x0141c3ac, 0x002397ee}}, Y: Field{[10]uint32{0x0110d2ce, 0x026ebaff, 0x02c4b1df, 0x027b73c6, 0x038d29b5, 0x039eccbe, 0x03ae154c, 0x01a38b18, 0x01b15f66, 0x0036f8b0}}},
+ {X: Field{[10]uint32{0x033d49c6, 0x006f5842, 0x03690480, 0x001c99a4, 0x02dcfbaa, 0x02a56e36, 0x013389ea, 0x035b7417, 0x03594748, 0x001e96ee}}, Y: Field{[10]uint32{0x034187c0, 0x03b7ab18, 0x03fa7fd4, 0x0073bff8, 0x00ca1386, 0x0048d71a, 0x00b755c6, 0x00cffa36, 0x0043a42d, 0x0030b4a0}}},
+ {X: Field{[10]uint32{0x03b76753, 0x03ebc86f, 0x00745f87, 0x0388894d, 0x00917c2f, 0x02d8c738, 0x033ee1b1, 0x00d4c6b9, 0x00bdf0d3, 0x00256fae}}, Y: Field{[10]uint32{0x0064f45b, 0x030bc2c3, 0x00adaa43, 0x020df88c, 0x03b9bd77, 0x01283932, 0x03e269fb, 0x0165d549, 0x0200d9c5, 0x0031b3e1}}},
+ {X: Field{[10]uint32{0x02968d25, 0x003488f8, 0x03a32054, 0x0365dae3, 0x03576dbb, 0x002ae5e4, 0x00fa4809, 0x01b700c1, 0x030c6d89, 0x003d13b2}}, Y: Field{[10]uint32{0x0321086a, 0x027cd4f0, 0x038106d1, 0x003d79db, 0x01e20e47, 0x03a91a82, 0x0203c629, 0x010ca5da, 0x00f62964, 0x00151419}}},
+ {X: Field{[10]uint32{0x038109de, 0x01274994, 0x01e074fb, 0x0309dc18, 0x01d56d68, 0x03deb899, 0x033ef501, 0x024db985, 0x00d33dbd, 0x002374cb}}, Y: Field{[10]uint32{0x003f1e76, 0x0217dc1f, 0x00851ae9, 0x00968430, 0x00ad158c, 0x011f5b64, 0x012bca8a, 0x02b0814e, 0x025c80da, 0x001ac443}}},
+ {X: Field{[10]uint32{0x0237997b, 0x01d77698, 0x01a8c770, 0x00fe2473, 0x010fea5e, 0x01c74113, 0x03bc77eb, 0x03d5e353, 0x0130b0f0, 0x000f52bf}}, Y: Field{[10]uint32{0x018bb9ce, 0x02c7bf01, 0x0093ed83, 0x02af9d21, 0x020ae286, 0x02708eb6, 0x013d4424, 0x03d5fb1e, 0x00e8664d, 0x000a05b8}}},
+ {X: Field{[10]uint32{0x01d95ff1, 0x03ff45e1, 0x020200a5, 0x0204b4af, 0x02b83913, 0x01a81ee8, 0x015ccac8, 0x00ec8aca, 0x01fbbeaa, 0x002a6dce}}, Y: Field{[10]uint32{0x03b84f1b, 0x016cabaf, 0x02d401a5, 0x00ae3b5e, 0x00d3c5d4, 0x0310ff7b, 0x016d7323, 0x029abbda, 0x023021d6, 0x00287420}}},
+ {X: Field{[10]uint32{0x0203715a, 0x01fd1ae4, 0x03632bb7, 0x019eb3e6, 0x02a37e5d, 0x022d5659, 0x02cc754c, 0x0147aff0, 0x0347e512, 0x003a4025}}, Y: Field{[10]uint32{0x02f9df72, 0x036ad3f3, 0x03907d9c, 0x01e85f38, 0x00756f27, 0x015c6962, 0x03476f25, 0x03e65dc6, 0x01679ea8, 0x000d0962}}},
+ {X: Field{[10]uint32{0x021a3f2e, 0x01d90e7c, 0x006c1a83, 0x0104eb13, 0x002108fe, 0x02ccc821, 0x00d09b96, 0x035d3309, 0x00ed55aa, 0x001f8d23}}, Y: Field{[10]uint32{0x00389e5f, 0x033e0fad, 0x020f91ed, 0x00bcd964, 0x01c884c2, 0x010e793d, 0x0065706e, 0x009e5761, 0x038e3b72, 0x000e61d3}}},
+ {X: Field{[10]uint32{0x03b1f55a, 0x029d29be, 0x01220aaa, 0x02da2834, 0x038e340f, 0x003f3034, 0x032cdabf, 0x035c055b, 0x02765ec2, 0x0029f759}}, Y: Field{[10]uint32{0x0341d447, 0x029439cb, 0x00e73760, 0x02b5117a, 0x0163710d, 0x02c02efa, 0x02ded9b0, 0x0298f4a4, 0x03f2ab00, 0x002dc246}}},
+ {X: Field{[10]uint32{0x03f57025, 0x02354780, 0x03a96a30, 0x00a91a4f, 0x0051c085, 0x01b624d3, 0x0033a481, 0x032fdb70, 0x01e9a8cc, 0x0002e15e}}, Y: Field{[10]uint32{0x0158268b, 0x0337315c, 0x00feca8b, 0x00cdbda5, 0x0242c888, 0x02f046f6, 0x0164a3e0, 0x00546cbc, 0x00df4d79, 0x0039a5bb}}},
+ {X: Field{[10]uint32{0x03f57af8, 0x00b0b0af, 0x03cdabb4, 0x007519e1, 0x03184f1c, 0x01ed669f, 0x00c8c72e, 0x002032fe, 0x00459de0, 0x0001eca7}}, Y: Field{[10]uint32{0x03801799, 0x011b7a57, 0x026145dc, 0x02dc97d3, 0x02817578, 0x000ddbb7, 0x0101ca56, 0x0344f506, 0x0367a6d8, 0x001037a0}}},
+ {X: Field{[10]uint32{0x02f00f9f, 0x026bf765, 0x0214e017, 0x0276cc7f, 0x030d1c4e, 0x002df940, 0x020e34ef, 0x016f9eb0, 0x026f89b6, 0x00073bfe}}, Y: Field{[10]uint32{0x0276f179, 0x01d12d46, 0x02da979a, 0x03d6f2a9, 0x008e293b, 0x005e4384, 0x018feb78, 0x00c2f7b6, 0x00b1f059, 0x001bf7ba}}},
+ {X: Field{[10]uint32{0x01e58d74, 0x0365f645, 0x01e47ca2, 0x03fa8013, 0x0280ba4e, 0x00078bb1, 0x01d01e9a, 0x000715b5, 0x016d11d3, 0x00155b8b}}, Y: Field{[10]uint32{0x0249d711, 0x00b175d4, 0x0096108a, 0x031cbd36, 0x013d66e6, 0x03bb2f26, 0x01ba7eef, 0x035edad5, 0x009bb633, 0x0025620d}}},
+ {X: Field{[10]uint32{0x01e51586, 0x02ae45e8, 0x026ba6a7, 0x03d3a7b9, 0x02b97f7b, 0x00ad8ba8, 0x004518a4, 0x00f723b4, 0x028873b9, 0x002cd41b}}, Y: Field{[10]uint32{0x030b3b38, 0x00eb9306, 0x023fd582, 0x027c7e3f, 0x025917a3, 0x02b2ea7f, 0x0293eaa7, 0x03edeff9, 0x01001230, 0x0011d3e0}}},
+ {X: Field{[10]uint32{0x012628f3, 0x01d2e5af, 0x00504e97, 0x00e86665, 0x001ba7ff, 0x0243b99f, 0x001a886f, 0x0124236c, 0x02f389cb, 0x0003461a}}, Y: Field{[10]uint32{0x02a2db7d, 0x023dfbbc, 0x0021d5d0, 0x01bfd046, 0x02d01d74, 0x0218bbcd, 0x0378c75a, 0x01f372d1, 0x002bc656, 0x000ece5e}}},
+ {X: Field{[10]uint32{0x03987bb7, 0x02215cbb, 0x00d55d67, 0x0200aa04, 0x0119e8c9, 0x018b18e7, 0x02459000, 0x016b08fe, 0x0121e106, 0x003e5476}}, Y: Field{[10]uint32{0x01d7d950, 0x002631fe, 0x0207055d, 0x019aedda, 0x01051abc, 0x03d54ed7, 0x03db2397, 0x03a5d409, 0x01c187f8, 0x00373df7}}},
+ {X: Field{[10]uint32{0x00d915ec, 0x00f83eb1, 0x0242ebb5, 0x01d3f20a, 0x038bcbf8, 0x03cd0382, 0x021b75e8, 0x01bf1845, 0x02167bac, 0x002373a3}}, Y: Field{[10]uint32{0x00ae940c, 0x004985f8, 0x03674e32, 0x03d240cb, 0x039c0287, 0x01349bb5, 0x00b410b3, 0x02e7ae6d, 0x03a14a9e, 0x00047394}}},
+ {X: Field{[10]uint32{0x01e26e2b, 0x00e7baa6, 0x005dc4f4, 0x016bb56a, 0x02755dfc, 0x0304a9ea, 0x012ed15e, 0x0290f35f, 0x00dda0a7, 0x00338b4f}}, Y: Field{[10]uint32{0x03a5a145, 0x025f1801, 0x0009a36b, 0x0191f886, 0x036a8eed, 0x03160881, 0x035c2853, 0x009d03a9, 0x02bbe7ca, 0x001aa5ab}}},
+ {X: Field{[10]uint32{0x00d92092, 0x00e42a37, 0x000f05ea, 0x00295632, 0x00f712c4, 0x020ce492, 0x03367b5c, 0x0353173b, 0x02fcdcc2, 0x0008e519}}, Y: Field{[10]uint32{0x03ac28cd, 0x02157849, 0x0318ed0e, 0x02acedf5, 0x0265d176, 0x023805cd, 0x023ee8e9, 0x03c22f29, 0x023c9b49, 0x003cb388}}},
+ {X: Field{[10]uint32{0x0163e033, 0x0297fb8d, 0x0395e0f6, 0x01911d98, 0x034a2f3c, 0x00c7825c, 0x005bcd83, 0x00f02367, 0x0364341d, 0x000882ad}}, Y: Field{[10]uint32{0x02df5011, 0x03360dd5, 0x03f4cf9d, 0x028d5e05, 0x03aa51a9, 0x02d48300, 0x03dc7a42, 0x004fbd19, 0x0060d030, 0x003b0791}}},
+ {X: Field{[10]uint32{0x004b469f, 0x03ffa024, 0x03db4ee2, 0x004993e8, 0x02845f0b, 0x00f13443, 0x03ffd81f, 0x01a9b1c3, 0x01fe1640, 0x00355157}}, Y: Field{[10]uint32{0x020aaf9a, 0x00428401, 0x019b8088, 0x03c0abe5, 0x0028a20a, 0x0056125f, 0x01d99e49, 0x00798899, 0x038d257e, 0x00283e4e}}},
+ {X: Field{[10]uint32{0x00e60c72, 0x03627ca2, 0x0137e1a9, 0x03e73f07, 0x02f5039c, 0x007bb034, 0x0054665f, 0x03c1777c, 0x0377a1f6, 0x00148d9c}}, Y: Field{[10]uint32{0x02c7bb41, 0x027f1767, 0x01ce6a03, 0x005b663e, 0x00d05e70, 0x038925e8, 0x018d0477, 0x030d4b35, 0x0355430f, 0x001e3627}}},
+ {X: Field{[10]uint32{0x03a56395, 0x0377a957, 0x02c9f4c1, 0x03c644b9, 0x01a8e569, 0x01cd9049, 0x023dc886, 0x0250889a, 0x01133ecc, 0x0016e658}}, Y: Field{[10]uint32{0x02436d0a, 0x010abd93, 0x00f19101, 0x02a84226, 0x03f7a0bc, 0x0178bf57, 0x00ac902c, 0x01b2bd76, 0x03641207, 0x002ee75d}}},
+ {X: Field{[10]uint32{0x004c13fb, 0x0093ccae, 0x00f0c07c, 0x010f6e5b, 0x03eecd1a, 0x02c299dc, 0x007fa4a5, 0x03479963, 0x035cbfbe, 0x003cdb36}}, Y: Field{[10]uint32{0x018c394c, 0x01b24640, 0x039b9315, 0x039d1e4d, 0x01993744, 0x006d8996, 0x016aee18, 0x03b68a45, 0x02f05ee9, 0x0033f1b4}}},
+ {X: Field{[10]uint32{0x0079a6f9, 0x017ee45c, 0x03e44059, 0x00cc43b1, 0x030842ce, 0x014c499b, 0x00bf7545, 0x01ebcace, 0x018e2510, 0x000c8231}}, Y: Field{[10]uint32{0x02c785d7, 0x011d628c, 0x001c645a, 0x028b2220, 0x03653599, 0x0257b0b2, 0x01d9ab58, 0x02db2581, 0x01cb5346, 0x0020c71b}}},
+ {X: Field{[10]uint32{0x009927a7, 0x014e4623, 0x025a8c52, 0x020d9406, 0x02472535, 0x01135cd5, 0x0021b80b, 0x00438aa8, 0x02071f85, 0x002981ce}}, Y: Field{[10]uint32{0x0364fec9, 0x03c64698, 0x032462a9, 0x00361600, 0x026fefa3, 0x033f26ee, 0x0318baad, 0x01d84859, 0x03c54c8a, 0x003a4ea7}}},
+ {X: Field{[10]uint32{0x01f0d913, 0x00d5d62e, 0x007139e3, 0x01f8d589, 0x00f7ec1a, 0x02a9fffa, 0x00f21476, 0x02bdfc98, 0x0062f79e, 0x000cd42d}}, Y: Field{[10]uint32{0x01152959, 0x01c5c448, 0x00d4e805, 0x02f120a9, 0x03020f33, 0x02a34ba4, 0x03d2341b, 0x0048883e, 0x01b30fce, 0x0007c327}}},
+ {X: Field{[10]uint32{0x03073caa, 0x03893380, 0x0344c11d, 0x00f99bd9, 0x00177391, 0x02859433, 0x007c89b5, 0x00a9d248, 0x03170bc8, 0x00295356}}, Y: Field{[10]uint32{0x02cd3ab8, 0x01edec4c, 0x033afcdb, 0x009be4ad, 0x02fe62dc, 0x02488b27, 0x007fe5d4, 0x0374460f, 0x035f5309, 0x000f090e}}},
+ {X: Field{[10]uint32{0x00a04cf8, 0x0095ca41, 0x005cae5b, 0x01b558e4, 0x028a7d34, 0x0071e18f, 0x0024f7b0, 0x01e8d285, 0x02bf676a, 0x00196428}}, Y: Field{[10]uint32{0x03e781e7, 0x01419168, 0x02f09396, 0x03b10919, 0x004f8d0c, 0x03a8bdcd, 0x002d972e, 0x0106684e, 0x00030490, 0x00047356}}},
+ {X: Field{[10]uint32{0x03cba9a5, 0x025bb271, 0x0159289e, 0x00f7ed6e, 0x01884039, 0x028d9c04, 0x03461a20, 0x03d22f4b, 0x00029fc7, 0x002cf027}}, Y: Field{[10]uint32{0x00f5cfa9, 0x03324ac2, 0x0360ab97, 0x035abcb6, 0x03c6a3e6, 0x0300c38a, 0x03bb1bda, 0x012b4065, 0x026cbce5, 0x0039ed6a}}},
+ {X: Field{[10]uint32{0x00fa8bc0, 0x024a4e46, 0x0064426a, 0x03be3f75, 0x02cdc693, 0x022ca65c, 0x03361439, 0x004de9f6, 0x02a8044a, 0x0035e5a3}}, Y: Field{[10]uint32{0x0157a75c, 0x009bb22b, 0x022e5283, 0x01d35d36, 0x0156dd31, 0x004338b9, 0x015dd294, 0x010d3b2f, 0x01892901, 0x00209009}}},
+ {X: Field{[10]uint32{0x038e8304, 0x0167c020, 0x0365c6d9, 0x03212d40, 0x033bf6ed, 0x009406b6, 0x02ca172b, 0x03e73347, 0x006c2f98, 0x002295ef}}, Y: Field{[10]uint32{0x03e7d14e, 0x02ff8361, 0x038b992c, 0x00404691, 0x01bf6434, 0x02fe9a30, 0x00b5d67c, 0x0166150e, 0x0062a0f8, 0x000bafd5}}},
+ {X: Field{[10]uint32{0x0073fd22, 0x03435418, 0x03b4e551, 0x034dfc3b, 0x011a555d, 0x023218f3, 0x00b8d18f, 0x0142a30f, 0x00416847, 0x0014621a}}, Y: Field{[10]uint32{0x02f3f192, 0x0145f68d, 0x03691f30, 0x0141b14b, 0x006a28ce, 0x00bd660f, 0x00e0f15c, 0x00eb429b, 0x009b9e98, 0x003ac17c}}},
+ {X: Field{[10]uint32{0x027c85f3, 0x0124f8bd, 0x037b0ab7, 0x005a6e7a, 0x02d3a026, 0x00575574, 0x02ab8566, 0x01e53ea7, 0x035f27e4, 0x003faa30}}, Y: Field{[10]uint32{0x00148864, 0x012940a3, 0x03c889b5, 0x03d52aa5, 0x03b24158, 0x038ae8b9, 0x01123378, 0x01b8ea61, 0x0297cf0a, 0x0030c977}}},
+ {X: Field{[10]uint32{0x01f94b63, 0x01409fb4, 0x0051077b, 0x01a5fbd3, 0x01d79d5f, 0x01707273, 0x01ab955d, 0x009793e3, 0x00ccd7bc, 0x001984b3}}, Y: Field{[10]uint32{0x0057860b, 0x0012668d, 0x0320073d, 0x0200570e, 0x03e9bd6a, 0x0094f7e6, 0x02abab50, 0x02342b9e, 0x02c17a37, 0x00185544}}},
+ {X: Field{[10]uint32{0x006f8746, 0x02f5f92a, 0x03533cbd, 0x019e7db4, 0x02f8a7ae, 0x00c66655, 0x009d6983, 0x01676c13, 0x007a4998, 0x0032662c}}, Y: Field{[10]uint32{0x01d17138, 0x0046fc23, 0x038a66af, 0x03a444e0, 0x0137d6b5, 0x03a881ba, 0x019d81b0, 0x01dd7a89, 0x0371919e, 0x00367804}}},
+ {X: Field{[10]uint32{0x024cc1e1, 0x003ec30e, 0x004bb052, 0x00551835, 0x00c32e39, 0x00f77242, 0x00fcd0d2, 0x02597e15, 0x0269c5cf, 0x00170391}}, Y: Field{[10]uint32{0x035adea1, 0x02e42719, 0x0055464f, 0x03b722cf, 0x0189f5ed, 0x0343df2e, 0x0335ffac, 0x0269374b, 0x03af7e0f, 0x0033faee}}},
+ {X: Field{[10]uint32{0x0158c0fd, 0x036fee1c, 0x0350bcb2, 0x016d93e5, 0x037ab319, 0x01aa74fe, 0x02f6433c, 0x01459fc1, 0x02483038, 0x00343f76}}, Y: Field{[10]uint32{0x031283db, 0x000838fb, 0x03c358f0, 0x0057442a, 0x03f5c6e3, 0x01860cda, 0x02e13598, 0x03d87f20, 0x01776a34, 0x00133795}}},
+ {X: Field{[10]uint32{0x024a3e81, 0x01c0617e, 0x00fd37bc, 0x014c66df, 0x0007cab1, 0x0088b39d, 0x01482656, 0x03d96817, 0x030fd78b, 0x00364955}}, Y: Field{[10]uint32{0x03c1924c, 0x0360dc21, 0x00ed1673, 0x03833740, 0x00ff52be, 0x027195d7, 0x021a5c7b, 0x02ea4068, 0x019ac448, 0x00000f0e}}},
+ {X: Field{[10]uint32{0x018374c8, 0x030861c2, 0x00f9a1d0, 0x013f5e06, 0x02a023cc, 0x0212c200, 0x037d6074, 0x012eb081, 0x016d81f8, 0x001174ad}}, Y: Field{[10]uint32{0x0019d7f4, 0x01901067, 0x03f05030, 0x007e122e, 0x00982941, 0x009598f3, 0x010506ea, 0x032cdeb5, 0x00d192a9, 0x00053286}}},
+ {X: Field{[10]uint32{0x02157400, 0x005c2de7, 0x03fba5b7, 0x01e196a4, 0x00ea8c19, 0x03e6843e, 0x013404dd, 0x0316efde, 0x00118588, 0x001ab4eb}}, Y: Field{[10]uint32{0x011686d7, 0x018bfa60, 0x02c97a87, 0x02b45cc7, 0x02382eb5, 0x035d8a4b, 0x0320e80f, 0x00b0ffb7, 0x001f1e24, 0x003e895d}}},
+ {X: Field{[10]uint32{0x02595f52, 0x0387afd2, 0x00bf5028, 0x00a00b77, 0x0026d540, 0x004ac876, 0x03ea9e39, 0x02582de4, 0x0045b6dc, 0x00176891}}, Y: Field{[10]uint32{0x01f16026, 0x01007cd9, 0x005fd01b, 0x03663222, 0x02fabfa0, 0x03e28bf4, 0x015063bf, 0x0329a626, 0x038cad1d, 0x002f063f}}},
+ {X: Field{[10]uint32{0x0132b346, 0x0057bf2b, 0x00f445ed, 0x0227549f, 0x03d7b5f1, 0x01975c4c, 0x039b89f8, 0x021b4a4e, 0x006811ce, 0x00377fd9}}, Y: Field{[10]uint32{0x027f5737, 0x03b68d95, 0x0110db1a, 0x019c4fa9, 0x034d236b, 0x004ac070, 0x021ae080, 0x0005af84, 0x0194cb22, 0x001c983a}}},
+ {X: Field{[10]uint32{0x0097f029, 0x0279a6fe, 0x012436ad, 0x02637275, 0x02c1030d, 0x02142611, 0x032f50bc, 0x03ea4f43, 0x033b9120, 0x002a2e7f}}, Y: Field{[10]uint32{0x0066c591, 0x01f8cca1, 0x017b2359, 0x03da8ac7, 0x00c866aa, 0x00ec1fbf, 0x01a4c2ca, 0x01a1cbaa, 0x029a4e51, 0x00172fe8}}},
+ {X: Field{[10]uint32{0x01dbcafd, 0x03068054, 0x00eb7a2f, 0x01921a3b, 0x02628752, 0x03237bac, 0x03c18eda, 0x0275a9c8, 0x03fb177b, 0x00250c1d}}, Y: Field{[10]uint32{0x00e7eb4e, 0x03d2a546, 0x01442e48, 0x004be97f, 0x03ccb6e3, 0x031f7e4f, 0x038248da, 0x0007274f, 0x01fc41ad, 0x0000866a}}},
+ {X: Field{[10]uint32{0x0058b8e3, 0x0043cd99, 0x0174e9e8, 0x027e9593, 0x0382b33f, 0x00917aef, 0x0360f524, 0x0205ebf7, 0x01ac09c9, 0x001d72d8}}, Y: Field{[10]uint32{0x0003c367, 0x02b7f7bb, 0x00fb85b3, 0x01df3563, 0x02664414, 0x0277dae7, 0x00986f5f, 0x00210d18, 0x01bdf66f, 0x002aa04d}}},
+ {X: Field{[10]uint32{0x031fccc8, 0x0039f238, 0x010c5075, 0x03cee6eb, 0x02c34fdc, 0x0239fc2b, 0x00922b22, 0x023a152f, 0x017727cb, 0x0006edf8}}, Y: Field{[10]uint32{0x00221ca3, 0x00368e30, 0x023d5238, 0x0030f989, 0x02855ea0, 0x0109737a, 0x01e322c2, 0x0179c2f6, 0x00861e85, 0x002efdca}}},
+ {X: Field{[10]uint32{0x03ee8dbb, 0x02a536a2, 0x02a2eafd, 0x01c72638, 0x0087f024, 0x001743cc, 0x034b41cf, 0x036fcd16, 0x004b39e9, 0x002510ce}}, Y: Field{[10]uint32{0x024544ee, 0x0380723e, 0x02504aba, 0x015fdbde, 0x03e7b5da, 0x01f8e4e7, 0x00ac6e22, 0x0047d8e3, 0x0173ccb2, 0x0038d984}}},
+ {X: Field{[10]uint32{0x03740d25, 0x033a9dbb, 0x0183961c, 0x015359a4, 0x00b4c27d, 0x0306a59a, 0x011638ae, 0x02aaca35, 0x01d5a68c, 0x00126f45}}, Y: Field{[10]uint32{0x0318c6e4, 0x01d0e7cf, 0x03e579db, 0x0183ab3c, 0x0377563b, 0x02657303, 0x03b9f0bd, 0x0391f7ef, 0x00688760, 0x001923f2}}},
+ {X: Field{[10]uint32{0x02cfed85, 0x02517f5e, 0x02f9073f, 0x01e2960c, 0x02c151aa, 0x001e241f, 0x013684fd, 0x027a1613, 0x038e9280, 0x003431ed}}, Y: Field{[10]uint32{0x02970c89, 0x02e56ce3, 0x01d5707a, 0x01d48ab6, 0x03be91e4, 0x030c1480, 0x0129046b, 0x012902d5, 0x01abbe49, 0x002a0365}}},
+ {X: Field{[10]uint32{0x02eb9275, 0x01af5f64, 0x00bf0cd9, 0x0361e5d2, 0x027c4c28, 0x033721d6, 0x018f9c75, 0x0088c97a, 0x01463ab2, 0x0037af77}}, Y: Field{[10]uint32{0x02b9799c, 0x02531c42, 0x00754ab5, 0x0192c4af, 0x0150d020, 0x01cebc96, 0x03b3dd7a, 0x03f2c17f, 0x008dc3ff, 0x0003440f}}},
+ {X: Field{[10]uint32{0x03f33998, 0x01004bc6, 0x02dc33f6, 0x032152c0, 0x029f9ebc, 0x03681cc4, 0x022d6bf9, 0x01a8563a, 0x017c192a, 0x00075e6c}}, Y: Field{[10]uint32{0x00f60a5e, 0x039aef53, 0x00a12b78, 0x020af102, 0x020c7876, 0x033d91c0, 0x00d986fb, 0x0322a014, 0x00b3dbc1, 0x001bb206}}},
+ {X: Field{[10]uint32{0x0281ca1b, 0x03f4db9b, 0x018449ed, 0x015c9931, 0x0374bd3b, 0x03454d7f, 0x009c38d7, 0x011fa5ca, 0x02ebff5d, 0x000bfadd}}, Y: Field{[10]uint32{0x01f93b74, 0x030ceee2, 0x00899378, 0x01d1e267, 0x03bb462e, 0x03e72af1, 0x02e18cd1, 0x02a08f7e, 0x024a7ba3, 0x00116f53}}},
+ {X: Field{[10]uint32{0x00682573, 0x00bf82ec, 0x013c0637, 0x00e52619, 0x013eef1b, 0x0393d7bf, 0x0372ab62, 0x0169dfd4, 0x0190faef, 0x00005343}}, Y: Field{[10]uint32{0x02081453, 0x02a4bd8d, 0x0131236b, 0x025dcae8, 0x01601a4f, 0x01c65a0c, 0x0130f51d, 0x02e4c13d, 0x029a80c2, 0x00145fc5}}},
+ {X: Field{[10]uint32{0x03313321, 0x008aafff, 0x02476fd5, 0x00dd1b4b, 0x02ad0941, 0x0042ce6c, 0x00bd9adb, 0x02470ce1, 0x03a5728f, 0x001cc1a9}}, Y: Field{[10]uint32{0x03a915a2, 0x005ee06d, 0x02a85a8e, 0x03b496e1, 0x01574c85, 0x0124bc6c, 0x03bd4e4f, 0x03a1ecd6, 0x02aba5b9, 0x00085788}}},
+ {X: Field{[10]uint32{0x0255aaba, 0x0134d89a, 0x0171976d, 0x01e9cdfa, 0x00fd2406, 0x0263eb48, 0x02873a06, 0x036e32cc, 0x014f870c, 0x00217611}}, Y: Field{[10]uint32{0x0117e4a2, 0x010d2c4c, 0x033bb951, 0x03b8446b, 0x01539fe7, 0x02e720cf, 0x02a0715c, 0x027a3948, 0x000a36eb, 0x000db58f}}},
+ {X: Field{[10]uint32{0x034384c3, 0x0028392c, 0x00dffc1f, 0x00a25b63, 0x0202f7da, 0x0386448a, 0x01b21cb9, 0x019ea896, 0x03829930, 0x0031a3d9}}, Y: Field{[10]uint32{0x0079e94a, 0x030da04c, 0x014ffb7d, 0x024daca6, 0x0308dcd4, 0x026575a8, 0x02484fb0, 0x00ce1dfa, 0x016a331c, 0x001d39ba}}},
+ {X: Field{[10]uint32{0x00214dd3, 0x038c6101, 0x0217fe18, 0x0141a1c2, 0x00e29cd8, 0x00d47227, 0x02d5c9c3, 0x01554211, 0x01115dbe, 0x00205120}}, Y: Field{[10]uint32{0x030d19a8, 0x02af2c59, 0x02785210, 0x00f97b75, 0x01540ea3, 0x011e1a27, 0x03740e92, 0x030a71a5, 0x00b3d4cd, 0x001d775e}}},
+ {X: Field{[10]uint32{0x00c945f5, 0x00120558, 0x00ebe3e2, 0x006f3d85, 0x0324214e, 0x01c1bc87, 0x0325993a, 0x0351e3d7, 0x0319de24, 0x000c42d6}}, Y: Field{[10]uint32{0x004318c3, 0x00ccc9c4, 0x021a147e, 0x014fc0a8, 0x01bf04cc, 0x03a1035a, 0x01d017e2, 0x03481782, 0x02ca0f01, 0x0022d0b1}}},
+ {X: Field{[10]uint32{0x03c4bc3e, 0x0165d302, 0x03420a02, 0x00471a13, 0x01b0a90f, 0x00b9b514, 0x01e4bcab, 0x038ae77f, 0x03c74baf, 0x0033e291}}, Y: Field{[10]uint32{0x034c97d1, 0x00806ef8, 0x01c3d1cc, 0x01a70299, 0x02614d8a, 0x0321d8af, 0x02331e62, 0x021a65e1, 0x0264a9a7, 0x003c2dec}}},
+ {X: Field{[10]uint32{0x038650fc, 0x011ebe62, 0x002d33d7, 0x0221a6e6, 0x03ab5533, 0x00f4ed82, 0x00100ec6, 0x02a4139c, 0x02267352, 0x00283f18}}, Y: Field{[10]uint32{0x0385865f, 0x025bcace, 0x02497e2b, 0x02cfe659, 0x03cd162e, 0x00870e67, 0x0388c395, 0x013ad192, 0x014c16b2, 0x002e8eb9}}},
+ {X: Field{[10]uint32{0x00ff8bdb, 0x038f08db, 0x03fb07dc, 0x01c29386, 0x032e1eaf, 0x000114cc, 0x00d03391, 0x03751d61, 0x03e2535e, 0x002ab976}}, Y: Field{[10]uint32{0x03a7449b, 0x02554ced, 0x00321911, 0x03168d56, 0x02a51d85, 0x011cdccb, 0x02784392, 0x001adeec, 0x01f6e558, 0x001f3ea9}}},
+ {X: Field{[10]uint32{0x0103ae39, 0x0285eec1, 0x01bd50b0, 0x009a1b69, 0x005c3172, 0x009c1686, 0x000792fb, 0x01d5432f, 0x03115b89, 0x002293a4}}, Y: Field{[10]uint32{0x017cef2c, 0x03a48ff4, 0x016922dd, 0x0362a770, 0x022442ae, 0x02a85d5c, 0x011b976d, 0x00231c5d, 0x01c8d85f, 0x000588eb}}},
+ {X: Field{[10]uint32{0x03066463, 0x0336b1a1, 0x03f26a51, 0x028332eb, 0x018627e1, 0x02404096, 0x015cd612, 0x002c254a, 0x0135eca9, 0x0032f3bd}}, Y: Field{[10]uint32{0x03212653, 0x01fee35a, 0x03c259d8, 0x005cd18b, 0x02498fee, 0x03143855, 0x00afb9d8, 0x032670ff, 0x03fac2a2, 0x0019470b}}},
+ {X: Field{[10]uint32{0x010f8c99, 0x00bab07b, 0x02609990, 0x0134bab5, 0x010bf12c, 0x00ae7210, 0x0290e336, 0x00af42ea, 0x01594d6a, 0x000965c5}}, Y: Field{[10]uint32{0x0075245e, 0x02b4afca, 0x02a8294b, 0x008b4289, 0x01d974dd, 0x00cfa2ec, 0x004002bc, 0x00132e05, 0x036cc974, 0x00127806}}},
+ {X: Field{[10]uint32{0x02f1445f, 0x00b34a6d, 0x02a89167, 0x0178fa6c, 0x00a707da, 0x0203c0d9, 0x0389044c, 0x027daeb0, 0x028b2b04, 0x002dd535}}, Y: Field{[10]uint32{0x01e37740, 0x02bb1793, 0x01da1af2, 0x01097d37, 0x02bea555, 0x037f0bd3, 0x0092e3ed, 0x008f459c, 0x03c1625e, 0x0006ca6d}}},
+ {X: Field{[10]uint32{0x03084037, 0x02263fd3, 0x0040aafa, 0x022f4a53, 0x02ab0bde, 0x03ce2d68, 0x03ca2fe2, 0x023ce731, 0x01a850e6, 0x00082ba9}}, Y: Field{[10]uint32{0x03f59444, 0x03877c00, 0x00fc20b4, 0x00f0c48c, 0x02ab1e88, 0x03f9f86c, 0x02fd6a56, 0x019bb1aa, 0x02b3f176, 0x001bb55d}}},
+ {X: Field{[10]uint32{0x031979a6, 0x017876f8, 0x01e7bf0d, 0x0341f340, 0x02c6939f, 0x025fae16, 0x008cba9a, 0x03a48cca, 0x0202919d, 0x0009a113}}, Y: Field{[10]uint32{0x009ebfb7, 0x03154817, 0x005a16c7, 0x030a0cb1, 0x00cc08a6, 0x0063ed83, 0x026f11e5, 0x03eb4409, 0x028e06a5, 0x0000f7e6}}},
+ {X: Field{[10]uint32{0x0028414c, 0x0372a577, 0x033fd485, 0x01ac68e2, 0x00efbe0a, 0x03b37e6d, 0x00fd413b, 0x026abc9f, 0x026133a6, 0x00046bf2}}, Y: Field{[10]uint32{0x03737b1c, 0x007d6b36, 0x0377b212, 0x03eee724, 0x009e4678, 0x0391ed00, 0x0047bbf8, 0x01ff988a, 0x0390c067, 0x002352e1}}},
+ {X: Field{[10]uint32{0x00d2a63d, 0x01e37bba, 0x0160df3d, 0x01ec8f9c, 0x00498633, 0x039fa578, 0x03be09fc, 0x017594de, 0x00d52fe2, 0x00311b85}}, Y: Field{[10]uint32{0x01d2b723, 0x01d7563d, 0x017589b1, 0x03bd0fe8, 0x011f04b9, 0x0377d9e9, 0x0008dd77, 0x03a7fcb4, 0x01ab4211, 0x0028803f}}},
+ {X: Field{[10]uint32{0x0055e4d7, 0x03673635, 0x02142d31, 0x00f23d63, 0x01241228, 0x00429d81, 0x01f598a2, 0x03f82491, 0x0212578a, 0x00015c2a}}, Y: Field{[10]uint32{0x00c50ac8, 0x00b03c4b, 0x01601b93, 0x02a57429, 0x019a2bed, 0x0144a81c, 0x03439e08, 0x00378750, 0x0361f8e9, 0x0030a3f6}}},
+ {X: Field{[10]uint32{0x03c3fa64, 0x00c4237e, 0x00d1f3a3, 0x02b33ec5, 0x02224236, 0x00e15385, 0x0170b84e, 0x033a80a1, 0x035e88a1, 0x0034c4b6}}, Y: Field{[10]uint32{0x0397e1de, 0x0185fdb3, 0x026cf36b, 0x012ba9cb, 0x0064b8aa, 0x000c724c, 0x01fa0aae, 0x00e0f211, 0x00891843, 0x00329794}}},
+ {X: Field{[10]uint32{0x02398087, 0x013b022a, 0x00a6d1fe, 0x02e1d889, 0x01c9be5e, 0x009e7c00, 0x01a9ad99, 0x019c3853, 0x00769981, 0x0007b88a}}, Y: Field{[10]uint32{0x02176dcc, 0x00c727c0, 0x034526ff, 0x02896031, 0x00b68603, 0x01511835, 0x0242c650, 0x038deb7f, 0x0114e303, 0x00188404}}},
+ {X: Field{[10]uint32{0x03bb81a0, 0x02a6a955, 0x004a94af, 0x035cb530, 0x011700b9, 0x03259300, 0x005511d1, 0x013fd2ba, 0x02cde2b8, 0x0007ee72}}, Y: Field{[10]uint32{0x03737fcb, 0x0159d497, 0x0038ee04, 0x01acb3e8, 0x0115b130, 0x0108050d, 0x019f59f7, 0x017cab5b, 0x03c1295c, 0x0010c2dc}}},
+ {X: Field{[10]uint32{0x011c085b, 0x00685d98, 0x01145f19, 0x02e7e913, 0x034a998b, 0x0201f9d0, 0x032934a9, 0x002d1da7, 0x002dd3cf, 0x00341332}}, Y: Field{[10]uint32{0x01be5fa9, 0x00805a40, 0x0392d155, 0x02b32196, 0x018f4c13, 0x03848f75, 0x02cf1cac, 0x03454710, 0x01afb551, 0x001e9286}}},
+ {X: Field{[10]uint32{0x03e7e9aa, 0x03a1c133, 0x01e15712, 0x02295237, 0x038a544f, 0x009f7d77, 0x00b97f1f, 0x0345faea, 0x02088bd4, 0x0007932c}}, Y: Field{[10]uint32{0x019b828d, 0x0119b369, 0x03e515e8, 0x025971c6, 0x03db0663, 0x00ff68fc, 0x019930a5, 0x00cfb39e, 0x021eb729, 0x00360171}}},
+ {X: Field{[10]uint32{0x0251590d, 0x01b71237, 0x028c717d, 0x01a77cf7, 0x008f769f, 0x02f3f6ae, 0x032bbadc, 0x02168359, 0x0398707a, 0x001482a8}}, Y: Field{[10]uint32{0x02e9ada8, 0x01495513, 0x0052a39a, 0x01366638, 0x013b5472, 0x0045daab, 0x01095e2f, 0x01e88b02, 0x00e4a904, 0x002634d1}}},
+ {X: Field{[10]uint32{0x03614ef2, 0x032b1b9e, 0x005d7a79, 0x0325e0c9, 0x00e7080a, 0x001a4ff2, 0x00d45a06, 0x03bdf0b8, 0x03de165b, 0x000ea7f8}}, Y: Field{[10]uint32{0x03038d4a, 0x00187bdc, 0x0398e151, 0x0126a9b5, 0x007607ff, 0x024d3222, 0x02895f52, 0x037bbf1e, 0x0046fd3f, 0x00014625}}},
+ {X: Field{[10]uint32{0x02149938, 0x03639cf6, 0x0005665f, 0x00190dcc, 0x018e3c68, 0x02db5a32, 0x0289a3a2, 0x00201790, 0x01ccc26c, 0x002724a7}}, Y: Field{[10]uint32{0x016ba2fa, 0x0285034e, 0x02dd956a, 0x00b6aaf9, 0x02c81edf, 0x00409d8a, 0x039f6bab, 0x024824fc, 0x0140b4c2, 0x001b7efe}}},
+ {X: Field{[10]uint32{0x01be419e, 0x005dd222, 0x00a660d1, 0x02af1a6b, 0x03ee22ab, 0x0179e822, 0x02f1e42e, 0x0019462e, 0x00cef4e0, 0x000d56d8}}, Y: Field{[10]uint32{0x002604e2, 0x011bd0ff, 0x031b1ed1, 0x02baed13, 0x034fc01d, 0x02d4fedc, 0x020eaaac, 0x03ec417f, 0x023bb277, 0x001fd1e2}}},
+ {X: Field{[10]uint32{0x03f7f37f, 0x039efcf5, 0x01705dfc, 0x02465d0e, 0x01ea9660, 0x00478406, 0x0389bb1c, 0x01110b84, 0x014f21ad, 0x001daffc}}, Y: Field{[10]uint32{0x0289d763, 0x01a95260, 0x0307b93f, 0x03e2488f, 0x02a29a34, 0x0308b80b, 0x034da79b, 0x02ac4ad7, 0x0291376a, 0x000e1568}}},
+ {X: Field{[10]uint32{0x0156b454, 0x023e2d98, 0x021dbfa0, 0x02ffe88b, 0x02becbb4, 0x01620ce5, 0x023aadd3, 0x01e8edf8, 0x00df1057, 0x00246ee7}}, Y: Field{[10]uint32{0x00edbb91, 0x0333c965, 0x01a1ef2c, 0x010b0b2a, 0x00a3edea, 0x005846d7, 0x0053e93d, 0x026c0bb7, 0x039e4f14, 0x003b1b2e}}},
+ {X: Field{[10]uint32{0x00865562, 0x00c4296a, 0x02537f8c, 0x01f53acc, 0x010a7dde, 0x003116c2, 0x0081204f, 0x01b184d9, 0x010f1ba8, 0x002795ac}}, Y: Field{[10]uint32{0x028aa67c, 0x010d8756, 0x022d516f, 0x02bc3461, 0x028b523e, 0x027ba31a, 0x03ca1a37, 0x0305b122, 0x013d8552, 0x00337cd1}}},
+ {X: Field{[10]uint32{0x008e09f9, 0x0125cb66, 0x00af500f, 0x01d53a69, 0x01a11dcb, 0x00e4c15c, 0x02e28a42, 0x01af7939, 0x014daf28, 0x00139cd6}}, Y: Field{[10]uint32{0x018a36e7, 0x02d47c51, 0x02418cd1, 0x014c20a2, 0x01af0d8e, 0x0289d00d, 0x03d812ce, 0x010b3b80, 0x03d070c0, 0x002967c8}}},
+ {X: Field{[10]uint32{0x0123d860, 0x02b254ce, 0x01bb1d9f, 0x01cc12c4, 0x00393d59, 0x032cb185, 0x01d3c557, 0x0227e9a4, 0x03f7e92d, 0x00055bf7}}, Y: Field{[10]uint32{0x013b360b, 0x03ac04e8, 0x032ee620, 0x033408c4, 0x00bff653, 0x0199408f, 0x02d68f64, 0x01d833bd, 0x0237c448, 0x0013a4a5}}},
+ {X: Field{[10]uint32{0x028ea03b, 0x0029f9eb, 0x0356998b, 0x01487e24, 0x0170d23d, 0x00f4d36e, 0x017a9052, 0x008cd975, 0x0250eb37, 0x003cb22d}}, Y: Field{[10]uint32{0x001a7881, 0x010aa1c6, 0x0183d72f, 0x031d9ce5, 0x00204488, 0x002f7a7b, 0x03422a56, 0x026fda5c, 0x031484a9, 0x002f66b0}}},
+ {X: Field{[10]uint32{0x0351e3e3, 0x01399eb1, 0x0316cd4a, 0x028806b8, 0x0288d526, 0x01ee05ae, 0x01bb92ba, 0x01d0c17d, 0x0257a4a3, 0x0009f74d}}, Y: Field{[10]uint32{0x03be3304, 0x019092e0, 0x00e8c022, 0x0007df61, 0x008a756b, 0x03fa5d79, 0x03af3d51, 0x029005ab, 0x01d3c0fa, 0x0022033f}}},
+ {X: Field{[10]uint32{0x03b3d1bc, 0x013c58fa, 0x037081c6, 0x020b099c, 0x037a3901, 0x03312dfc, 0x00c5d981, 0x00d5f00f, 0x020c19f7, 0x003db097}}, Y: Field{[10]uint32{0x0289e43d, 0x039f08a3, 0x03c2f183, 0x014ab7cd, 0x01295341, 0x010ecd62, 0x0144d666, 0x0283e8e6, 0x03ea7c05, 0x0023202c}}},
+ {X: Field{[10]uint32{0x03fad4f2, 0x02b1fd29, 0x01f45087, 0x0015c5bf, 0x02ae2803, 0x0274dd84, 0x02847d3d, 0x017a87a8, 0x000c7130, 0x00319e20}}, Y: Field{[10]uint32{0x000b63c6, 0x0127a21b, 0x022d92d5, 0x00e7c41b, 0x0055d41d, 0x02fabd76, 0x0349a42e, 0x00ae3376, 0x03f4d2fb, 0x002f97fe}}},
+ {X: Field{[10]uint32{0x03f6d560, 0x0244ba04, 0x03d30931, 0x037e816f, 0x02f98177, 0x023c347b, 0x01e2d3a6, 0x01de1bf2, 0x0221e66b, 0x003cd76c}}, Y: Field{[10]uint32{0x003f29fa, 0x01f30039, 0x007c7bb6, 0x0054da9f, 0x0209eccb, 0x03f96c7b, 0x0174ca5a, 0x00810226, 0x00080e6b, 0x0012266a}}},
+ {X: Field{[10]uint32{0x03e69de9, 0x00718e64, 0x00debd02, 0x0013101d, 0x035d944f, 0x00ce2230, 0x01843d6c, 0x018cfb6e, 0x037da915, 0x000ae4f8}}, Y: Field{[10]uint32{0x030522f0, 0x034f2212, 0x001676f2, 0x017f1c94, 0x00366a4a, 0x004c83bf, 0x0372a58f, 0x0287324f, 0x0095c6ff, 0x003acf44}}},
+ {X: Field{[10]uint32{0x02091b69, 0x02407459, 0x02331060, 0x02522c52, 0x03e4875b, 0x03f6d01b, 0x01913ab0, 0x011c5bd4, 0x03b39045, 0x00206008}}, Y: Field{[10]uint32{0x0227e7b1, 0x039130a8, 0x00990f98, 0x0227e9f6, 0x026fe573, 0x00e393cb, 0x01af3e1f, 0x03911c31, 0x018a6224, 0x002cfd5c}}},
+ {X: Field{[10]uint32{0x00662bb6, 0x00fc180f, 0x001fbdb3, 0x01ec84f7, 0x006645ce, 0x016c5061, 0x02e565b6, 0x029a76ca, 0x026a244c, 0x000059db}}, Y: Field{[10]uint32{0x022e0298, 0x028c7ee0, 0x001fdcf4, 0x026c5bb3, 0x01aeb968, 0x034b1f03, 0x03208300, 0x0177049a, 0x03a5deef, 0x00223872}}},
+ {X: Field{[10]uint32{0x00298d54, 0x00b2c877, 0x02e4c391, 0x0150c38c, 0x01d96574, 0x008f8bc8, 0x0229d733, 0x00df78e1, 0x01a1a925, 0x0000be4c}}, Y: Field{[10]uint32{0x030ef904, 0x0077eba8, 0x03ccc52e, 0x03442f6e, 0x0195a5b2, 0x015899c4, 0x036fe43f, 0x003ebbbb, 0x01086fbc, 0x0024ca4b}}},
+ {X: Field{[10]uint32{0x01fd0279, 0x01cc3228, 0x001af2d1, 0x03044898, 0x02be8a32, 0x013d1521, 0x03f20d9b, 0x0232462f, 0x0212f0dd, 0x001ee935}}, Y: Field{[10]uint32{0x02401179, 0x00d39e34, 0x00310d02, 0x0316f131, 0x013018e3, 0x0334126a, 0x0220af14, 0x0190c6cb, 0x02a1f5b0, 0x0022ab5e}}},
+ {X: Field{[10]uint32{0x001d5e78, 0x01aa9872, 0x023d8528, 0x00233323, 0x03d6974d, 0x008de67a, 0x039b2be7, 0x01ea45a9, 0x02b085fe, 0x0003a37e}}, Y: Field{[10]uint32{0x023f926c, 0x02ead01b, 0x0181c37d, 0x00eec637, 0x00fbaec5, 0x01521eee, 0x0195d47a, 0x02d55b99, 0x006e519d, 0x0008485a}}},
+ {X: Field{[10]uint32{0x0184ab5e, 0x02432683, 0x0264c94c, 0x028554d6, 0x02ea751d, 0x01facb9a, 0x01071061, 0x01fbd1be, 0x03bcb159, 0x001f5588}}, Y: Field{[10]uint32{0x00ce7575, 0x0372f0a8, 0x037e4204, 0x0351759a, 0x00701b3c, 0x02f8ba2e, 0x0114b70e, 0x031378c5, 0x03318004, 0x003718e7}}},
+ {X: Field{[10]uint32{0x00a7ffa3, 0x03213ee2, 0x02ad57b9, 0x005a0778, 0x001e4ac9, 0x00ee0880, 0x0186194b, 0x02fb1d22, 0x022d8074, 0x00023a07}}, Y: Field{[10]uint32{0x019fa890, 0x02052641, 0x03e6cdc7, 0x026a37e4, 0x03fa94e9, 0x018b40fd, 0x016f6cf7, 0x01120329, 0x001df4a3, 0x0010217b}}},
+ {X: Field{[10]uint32{0x028da71e, 0x034ea169, 0x0052b53e, 0x0324ad73, 0x0173e68a, 0x01a71a0a, 0x018affd1, 0x03b98978, 0x03e78290, 0x002a7568}}, Y: Field{[10]uint32{0x00805fd6, 0x026f92ad, 0x02536ee8, 0x0083391e, 0x028d6e8b, 0x01e4ce22, 0x009ed298, 0x01622546, 0x016bf9eb, 0x000736ab}}},
+ {X: Field{[10]uint32{0x03dba2cd, 0x02c48f15, 0x00497d64, 0x03c391ab, 0x00984985, 0x00c4be12, 0x037b3134, 0x01f0380e, 0x03cabcda, 0x0013df05}}, Y: Field{[10]uint32{0x034a25d7, 0x02d72a28, 0x00f5e888, 0x002a6eaa, 0x00c87701, 0x0141c334, 0x00be7c1d, 0x0030efcf, 0x01d95f47, 0x002182fb}}},
+ {X: Field{[10]uint32{0x03a64921, 0x02ec2ae7, 0x025b5b4f, 0x00f14d5c, 0x01034b8c, 0x0155cd3a, 0x01bd016f, 0x029ee6a4, 0x017a9234, 0x0011e3cf}}, Y: Field{[10]uint32{0x00051a1f, 0x02d364ee, 0x021018ff, 0x015360fc, 0x003f2530, 0x0087a69f, 0x02bca05c, 0x00fc63ae, 0x0394f025, 0x0036e5e8}}},
+ {X: Field{[10]uint32{0x027963d5, 0x014bac7f, 0x02329f25, 0x02ad87ee, 0x033ea09a, 0x007685e7, 0x037cc01b, 0x01b9f5a7, 0x017b73d9, 0x002b39f9}}, Y: Field{[10]uint32{0x02908918, 0x03bee249, 0x0211b796, 0x013040c1, 0x017e213e, 0x03809659, 0x010f824b, 0x02f413b2, 0x01f22b8d, 0x003e8094}}},
+ {X: Field{[10]uint32{0x0108d1fd, 0x001039ea, 0x01f24374, 0x03e28742, 0x034401f2, 0x0337da7b, 0x013757cd, 0x001dc609, 0x0067f517, 0x003355ba}}, Y: Field{[10]uint32{0x03338fe1, 0x012ee89f, 0x03b90a45, 0x02109ded, 0x0183e4bd, 0x03d8831f, 0x02b29a22, 0x002e9228, 0x021652cf, 0x0021e3dc}}},
+ {X: Field{[10]uint32{0x024d5329, 0x00f944fb, 0x03e33e92, 0x01cae819, 0x0167a2c6, 0x01ec9769, 0x031dd249, 0x03e26992, 0x025cd9d2, 0x000c10ba}}, Y: Field{[10]uint32{0x0268b1fb, 0x03906cd6, 0x0261281c, 0x021a3817, 0x02d3fa1d, 0x01b489e8, 0x028568cd, 0x01a85282, 0x0144d551, 0x0002e130}}},
+ {X: Field{[10]uint32{0x02712ec0, 0x0147b267, 0x03f1bce3, 0x02455ebc, 0x0130a2e2, 0x02be80d1, 0x002b042b, 0x03b49802, 0x008da094, 0x00015782}}, Y: Field{[10]uint32{0x026b33e9, 0x03274bb1, 0x01db2082, 0x037e0b54, 0x0100caca, 0x00531512, 0x00919335, 0x020c9258, 0x017f6439, 0x0031be0a}}},
+ {X: Field{[10]uint32{0x03408966, 0x02d1a44e, 0x01875e63, 0x020fbb5c, 0x01e0e0da, 0x0295e83a, 0x03f91817, 0x024ef28d, 0x013a69dd, 0x002f4b6c}}, Y: Field{[10]uint32{0x01b0da2d, 0x029d0a82, 0x00cf8078, 0x0391016e, 0x00187ee6, 0x03d96cfe, 0x03c25d50, 0x026cbc48, 0x0260f948, 0x0011b849}}},
+ {X: Field{[10]uint32{0x03d3d210, 0x0158939f, 0x03ecb609, 0x006661a9, 0x00ef7c52, 0x013b4685, 0x02678e62, 0x0211557f, 0x0110cdbb, 0x001f5e94}}, Y: Field{[10]uint32{0x02c6c37c, 0x01d2965a, 0x00867727, 0x03680570, 0x00626a46, 0x02ea9281, 0x019d640a, 0x011493e0, 0x01c3c0a5, 0x003255e3}}},
+ {X: Field{[10]uint32{0x037a3fa7, 0x02cc3d24, 0x037825bd, 0x00a406f5, 0x02fd4e6d, 0x013b6af1, 0x01669813, 0x004d50aa, 0x0317513b, 0x0007bc48}}, Y: Field{[10]uint32{0x010e1ade, 0x012276d6, 0x00039909, 0x02651a13, 0x01123198, 0x01aa327e, 0x011cee33, 0x02f3bcd1, 0x0288a391, 0x0038392d}}},
+ {X: Field{[10]uint32{0x0206baaf, 0x00c33a85, 0x01d1949d, 0x021a2e68, 0x029f463b, 0x00cb4bc4, 0x02c6b2e3, 0x02e5db6f, 0x0003766f, 0x003bfe81}}, Y: Field{[10]uint32{0x001cb082, 0x00877bef, 0x003c2382, 0x03116d28, 0x03b0cbfd, 0x0280f785, 0x00de1b7d, 0x03e993ce, 0x0083bf3e, 0x002316c7}}},
+ {X: Field{[10]uint32{0x0087d65c, 0x03699868, 0x02069df5, 0x0036743a, 0x0320bf78, 0x01cebd6f, 0x025f0222, 0x02810955, 0x01e976a9, 0x0037249c}}, Y: Field{[10]uint32{0x023d6063, 0x033629ad, 0x010c1944, 0x01f18852, 0x0055ce7c, 0x031ceddb, 0x02f11bb1, 0x034c3261, 0x01e7b27b, 0x0037219e}}},
+ {X: Field{[10]uint32{0x00264619, 0x02ad052e, 0x031b2384, 0x024c0376, 0x02a1336b, 0x01d54075, 0x00f69462, 0x0280b086, 0x01c21e1c, 0x0002b877}}, Y: Field{[10]uint32{0x01b26b48, 0x03d0881f, 0x0076a01f, 0x0326a21f, 0x0332466b, 0x026a9db5, 0x00e5c8e1, 0x018497b2, 0x039d300b, 0x000871ac}}},
+ {X: Field{[10]uint32{0x0282cf5b, 0x0338ead3, 0x00a1285c, 0x0226fcaf, 0x01033dd9, 0x00c5918d, 0x00924808, 0x00d724ae, 0x000ffe58, 0x002ba8b0}}, Y: Field{[10]uint32{0x03dfa97f, 0x0064eca4, 0x029673e8, 0x035014ee, 0x039aad65, 0x019c2c64, 0x0220e84e, 0x0184490a, 0x00cf935a, 0x00185566}}},
+ {X: Field{[10]uint32{0x02ebf696, 0x02322fa2, 0x0066b634, 0x00f98db2, 0x01b45e72, 0x02451d9f, 0x01b30b65, 0x00ea1bd5, 0x021634b4, 0x00244f43}}, Y: Field{[10]uint32{0x01971a9f, 0x01e9710e, 0x00305148, 0x00385235, 0x0039c0c1, 0x00c5c809, 0x02574af4, 0x03f69340, 0x020751af, 0x00385319}}},
+ {X: Field{[10]uint32{0x03c26fc0, 0x0094b48e, 0x0005a301, 0x00f621e3, 0x0040fc16, 0x02ec3e72, 0x00d61916, 0x02b20178, 0x0354775c, 0x0013c2cc}}, Y: Field{[10]uint32{0x018da1e3, 0x03f0fcef, 0x01ac3fa8, 0x01ddba15, 0x016c0e10, 0x03cf897c, 0x02eb2eb5, 0x03f7e0e9, 0x00863aed, 0x002c2dd5}}},
+ {X: Field{[10]uint32{0x0316129d, 0x028f693c, 0x0083b181, 0x02583e02, 0x02f469df, 0x03197ab4, 0x033b2f75, 0x025e3dd9, 0x014073cc, 0x00176886}}, Y: Field{[10]uint32{0x02f311d1, 0x03051663, 0x031eaf3b, 0x036d8a16, 0x030237b1, 0x0067ad50, 0x00d5e63e, 0x0099c15c, 0x0080743d, 0x002145b4}}},
+ {X: Field{[10]uint32{0x03e74a23, 0x03bbb45a, 0x0163dd4b, 0x00c89a74, 0x02a8fbc1, 0x00d0134d, 0x0392fb46, 0x03e46b32, 0x0330ca7a, 0x001db86c}}, Y: Field{[10]uint32{0x027f5326, 0x02b83787, 0x02791bca, 0x000000c6, 0x0002ce28, 0x03fe837b, 0x016f2e52, 0x023bcfb2, 0x0253c590, 0x00042ce4}}},
+ {X: Field{[10]uint32{0x02393e64, 0x025d743b, 0x01be1d76, 0x015d9c77, 0x018fe8ef, 0x022c8cd6, 0x03912637, 0x003b860b, 0x008b2f21, 0x00312f92}}, Y: Field{[10]uint32{0x0379f449, 0x01389c2e, 0x02aee10d, 0x01c3e01f, 0x00b910cd, 0x02632809, 0x00beadcb, 0x02695120, 0x012fa1a0, 0x002fb04e}}},
+ {X: Field{[10]uint32{0x0333ff37, 0x00329724, 0x0254256d, 0x000134da, 0x0025f5be, 0x00f58230, 0x0313848d, 0x03f5dec7, 0x018da141, 0x000151a4}}, Y: Field{[10]uint32{0x01914ac7, 0x008fa3ce, 0x004dcc2d, 0x02920cdc, 0x03b0b82b, 0x033e686f, 0x0300d716, 0x02f86973, 0x00c79684, 0x0000f475}}},
+ {X: Field{[10]uint32{0x026078de, 0x03065809, 0x0210a320, 0x02c6719f, 0x002e6df8, 0x023fc3d0, 0x03368b09, 0x03af44b7, 0x03c42c51, 0x00337f1b}}, Y: Field{[10]uint32{0x0189cb0d, 0x02f81a3f, 0x0063c0fe, 0x0046dbdd, 0x03c26894, 0x02cddd3c, 0x03bef456, 0x01499151, 0x0130023e, 0x0016617a}}},
+ {X: Field{[10]uint32{0x00f03034, 0x02ef351f, 0x00e99c99, 0x012d1c63, 0x02036f0e, 0x01023851, 0x021eec62, 0x005281bc, 0x00cc593b, 0x001dcc3f}}, Y: Field{[10]uint32{0x02016b72, 0x023e644f, 0x0001ccc2, 0x02ddbe5c, 0x0152beac, 0x024aa9f7, 0x030151b4, 0x03904a70, 0x03e20736, 0x003c5f43}}},
+ {X: Field{[10]uint32{0x0141b3ea, 0x01acd51e, 0x03090572, 0x02a57eb7, 0x01d855a7, 0x03e256f1, 0x00c7b559, 0x0023d19d, 0x03de4743, 0x0022a930}}, Y: Field{[10]uint32{0x00b8594d, 0x0357dc57, 0x018be7db, 0x01085432, 0x0278d9da, 0x03d00fb4, 0x034ae9ad, 0x00988c6f, 0x004a0eac, 0x003c9d71}}},
+ {X: Field{[10]uint32{0x0325bb79, 0x01534434, 0x0313c5cb, 0x0375e156, 0x01f32d33, 0x02250124, 0x036f87ff, 0x03a49625, 0x01a497a4, 0x0005649b}}, Y: Field{[10]uint32{0x03ce8e51, 0x03c5b619, 0x00d40d35, 0x01e20a20, 0x001aa03c, 0x0327dc6e, 0x031bf67e, 0x02fea3a1, 0x00b65b1e, 0x00056b18}}},
+ {X: Field{[10]uint32{0x01b1710d, 0x02bbaf7d, 0x02dbb35f, 0x01175159, 0x02fc99f5, 0x00005a23, 0x0062b48f, 0x0055d1e5, 0x00feaa74, 0x00157d3d}}, Y: Field{[10]uint32{0x0302d15f, 0x01486d2e, 0x03e0f662, 0x02b6db8f, 0x03d015a4, 0x01f7fb0f, 0x027b8945, 0x0132139d, 0x020563f2, 0x00203b3a}}},
+ {X: Field{[10]uint32{0x00e93cee, 0x00dfda38, 0x03e0d0b1, 0x035d335c, 0x02f04a60, 0x0136ccdf, 0x0357c4ae, 0x01fccfe8, 0x02cf402f, 0x0025695a}}, Y: Field{[10]uint32{0x036501fd, 0x0086d3bb, 0x021a4bd5, 0x038f396d, 0x01d21c89, 0x00c326b9, 0x034e72ca, 0x02ea105b, 0x01bfb7c9, 0x0039c901}}},
+ {X: Field{[10]uint32{0x027a2aac, 0x02206ae3, 0x03cd64b0, 0x03fc1266, 0x03c2a697, 0x00daa5e0, 0x0034b7bc, 0x01eed44c, 0x0190b50d, 0x000a2a7f}}, Y: Field{[10]uint32{0x0394a788, 0x00fea8e5, 0x01720b58, 0x03d453e8, 0x01a37cfa, 0x005421e0, 0x02635968, 0x01fa9268, 0x01b05c7e, 0x001dac54}}},
+ {X: Field{[10]uint32{0x0334b672, 0x03e97bf9, 0x0393cb36, 0x034e6736, 0x00b571e2, 0x02b0e3ac, 0x0116b93e, 0x018b1290, 0x01136d64, 0x001901b7}}, Y: Field{[10]uint32{0x01d7fd1e, 0x03a8d617, 0x0274fdef, 0x006a5df6, 0x01b4c5eb, 0x00aa447e, 0x019c9d06, 0x0398514b, 0x037b92b8, 0x000e5d31}}},
+ {X: Field{[10]uint32{0x01066529, 0x022d99bc, 0x003c2e3c, 0x01f8dd9c, 0x029d40c3, 0x024cdd1f, 0x03ef9039, 0x03870253, 0x023fcb62, 0x0023f63c}}, Y: Field{[10]uint32{0x014ab5c8, 0x003815c3, 0x02baf310, 0x004c8244, 0x025ba190, 0x016498a5, 0x029099d7, 0x005d6c92, 0x039bde10, 0x0022c2cb}}},
+ {X: Field{[10]uint32{0x03a1a24b, 0x03bb0558, 0x023cc3e0, 0x02acb49c, 0x03cc525b, 0x02325390, 0x00679bdc, 0x01cda270, 0x022bd445, 0x00145e02}}, Y: Field{[10]uint32{0x00e01109, 0x000fe8bc, 0x03dfc646, 0x028cd4c3, 0x014b6b08, 0x024e4713, 0x006e5db2, 0x02347b1d, 0x019b0e17, 0x001409b3}}},
+ {X: Field{[10]uint32{0x00283561, 0x02d0aa63, 0x01065bee, 0x00d1a123, 0x025b8c85, 0x0364e772, 0x02fe0e5c, 0x03e6fcf4, 0x013ae7c7, 0x002a8052}}, Y: Field{[10]uint32{0x00da82d9, 0x0220440b, 0x030f0e9e, 0x0022cf84, 0x021783e9, 0x006678f4, 0x023af145, 0x02d78d91, 0x03454a42, 0x002823c2}}},
+ {X: Field{[10]uint32{0x00ceab70, 0x029814c6, 0x01afb97f, 0x035065b3, 0x010e4456, 0x01a89fa0, 0x001c4fad, 0x039b52b2, 0x0349d4bb, 0x003362ad}}, Y: Field{[10]uint32{0x01f59beb, 0x00bc6e17, 0x01231da3, 0x020ec14a, 0x01ca8621, 0x0335eb4f, 0x01c92493, 0x02883780, 0x0339bd68, 0x003f1b1d}}},
+ {X: Field{[10]uint32{0x01fe3e32, 0x02fb1715, 0x027eae00, 0x03871668, 0x02379f56, 0x002ed221, 0x017bc54e, 0x014079e8, 0x02f2e824, 0x0039a737}}, Y: Field{[10]uint32{0x02c41cd4, 0x03616362, 0x03c80f41, 0x0399b12e, 0x013fe735, 0x018a45e4, 0x0125338f, 0x014e6040, 0x01104037, 0x0003a03b}}},
+ {X: Field{[10]uint32{0x03ff8a8d, 0x00623836, 0x004a2f30, 0x01a5e406, 0x00f6b6ec, 0x038c6073, 0x0308af19, 0x007dfbbe, 0x02d9182b, 0x0016939c}}, Y: Field{[10]uint32{0x01f9da19, 0x0049408b, 0x00bee2d9, 0x0189ed6c, 0x017b62ea, 0x02b0ce97, 0x031c5885, 0x015f60ec, 0x03f2d5a8, 0x000b473d}}},
+ {X: Field{[10]uint32{0x00984a2b, 0x00f46d7e, 0x0330a8f2, 0x01517740, 0x020d78f1, 0x024829e7, 0x00416b03, 0x01884504, 0x005948bd, 0x00278002}}, Y: Field{[10]uint32{0x008e3f62, 0x00459d32, 0x03338db6, 0x01683634, 0x00151ab8, 0x036c37f2, 0x030680ce, 0x03f4f308, 0x00920412, 0x000dab81}}},
+ {X: Field{[10]uint32{0x018bc6ff, 0x00bc84c9, 0x00d18ac8, 0x0217c2f2, 0x0399f884, 0x03a90971, 0x02d35d4a, 0x021cd3b2, 0x03aeb12f, 0x001f82e5}}, Y: Field{[10]uint32{0x01f3946e, 0x01902d5a, 0x037bccc7, 0x01011a4b, 0x00ab95fb, 0x02c2db97, 0x003b0b8a, 0x006da8ff, 0x0224a4be, 0x0039dbd3}}},
+ {X: Field{[10]uint32{0x01038ee2, 0x00cdb198, 0x00c860b9, 0x039606f8, 0x02b3064b, 0x019e1e3e, 0x0281ff28, 0x03125772, 0x00fb1bdf, 0x00188a17}}, Y: Field{[10]uint32{0x009b5161, 0x013705e1, 0x024f771f, 0x0360869b, 0x00a65ca8, 0x03c56775, 0x0285ea08, 0x03a7cd03, 0x03e45f60, 0x003cb246}}},
+ {X: Field{[10]uint32{0x02c82623, 0x03c49aa9, 0x00ac8006, 0x02ebbbcf, 0x00cd3765, 0x01b57067, 0x01870ef3, 0x02d735a6, 0x02812de1, 0x001c08d3}}, Y: Field{[10]uint32{0x01330736, 0x00e6ee10, 0x036ec071, 0x01a43f56, 0x023140f7, 0x0011ce2e, 0x03f3c920, 0x029ddc98, 0x018a0f92, 0x0038b6fe}}},
+ {X: Field{[10]uint32{0x015db07d, 0x025e29f3, 0x025e6136, 0x0399fd2f, 0x037dc1b4, 0x010d2c29, 0x0240ef57, 0x035737b7, 0x00618f31, 0x002b9dc1}}, Y: Field{[10]uint32{0x013d16e6, 0x034fa4f6, 0x03b01d46, 0x004a5459, 0x005cc43e, 0x001d00df, 0x0120e420, 0x01121cfd, 0x01646558, 0x00293894}}},
+ {X: Field{[10]uint32{0x006f2b53, 0x0126dbc9, 0x026049e3, 0x039f590f, 0x005b7f4c, 0x01a39825, 0x02b78fb7, 0x01a62d22, 0x008fe4db, 0x0033b1eb}}, Y: Field{[10]uint32{0x025fadfb, 0x01b4006d, 0x03c325ca, 0x03d2035a, 0x017f5d3c, 0x0293f20c, 0x03bfd2a7, 0x001a150c, 0x01459933, 0x001246ed}}},
+ {X: Field{[10]uint32{0x005eee36, 0x013571df, 0x006658db, 0x033f0bfe, 0x010852e4, 0x01588a5e, 0x02f62e83, 0x03927c9d, 0x0296b051, 0x002009db}}, Y: Field{[10]uint32{0x002f6d9d, 0x035f713d, 0x0330cf06, 0x0394dccf, 0x002c4d4c, 0x03dd44e9, 0x00d526e5, 0x0227c21c, 0x02968825, 0x003d4435}}},
+ {X: Field{[10]uint32{0x0285b27d, 0x0110c5f6, 0x02741b89, 0x03260af6, 0x00e9e351, 0x03e3e142, 0x0163934e, 0x03eabb98, 0x03d49d85, 0x002c6409}}, Y: Field{[10]uint32{0x0247a824, 0x02ecdcba, 0x002d6dba, 0x0048815d, 0x028439f8, 0x00bac10b, 0x038443af, 0x039a72cd, 0x01cbdec0, 0x00304918}}},
+ {X: Field{[10]uint32{0x030c792c, 0x0016cb95, 0x0308129e, 0x01bfef10, 0x01989c65, 0x02b851fc, 0x013fc78a, 0x0300074f, 0x014acf07, 0x0015d667}}, Y: Field{[10]uint32{0x018514b0, 0x02ef7100, 0x03a23f13, 0x03ce4042, 0x0238b57a, 0x02d2d3c0, 0x00e181b1, 0x02e85b86, 0x020fd215, 0x00173e3a}}},
+ {X: Field{[10]uint32{0x02e6e4b7, 0x01b9063a, 0x01490bad, 0x0230ac1f, 0x00306e6f, 0x014f9d8f, 0x03cda2b6, 0x002e0b14, 0x0283fa11, 0x0016add8}}, Y: Field{[10]uint32{0x015e8ea0, 0x00deaead, 0x02884f74, 0x01c9058a, 0x03aebe82, 0x00decfe0, 0x027de95b, 0x01e38c5e, 0x0243cc2a, 0x003fcd95}}},
+ {X: Field{[10]uint32{0x019d4a85, 0x000f9fe5, 0x00898649, 0x03910943, 0x0266ea88, 0x02800c77, 0x012dd45f, 0x035edfa9, 0x01e48602, 0x001ee4f6}}, Y: Field{[10]uint32{0x022b52f0, 0x01474cc5, 0x01099a48, 0x01807cab, 0x030f6dd0, 0x03beb5b0, 0x00f50a0f, 0x007fa428, 0x02015ab9, 0x0026732c}}},
+ {X: Field{[10]uint32{0x0396ebb6, 0x038b38be, 0x00a9307e, 0x0086e584, 0x011de26a, 0x02cded2e, 0x0101be72, 0x009dd904, 0x00b6af64, 0x000b561e}}, Y: Field{[10]uint32{0x00fc585a, 0x012f5f0b, 0x018f547d, 0x01aedf48, 0x00a88706, 0x019c5bcb, 0x00815d94, 0x00013a08, 0x005ddf4b, 0x0004e3b8}}},
+ {X: Field{[10]uint32{0x0160af3b, 0x00c9a739, 0x03ee7ac1, 0x03d4e33e, 0x03cf1ccf, 0x039072d5, 0x00a0fce2, 0x00cb6809, 0x0068eebc, 0x000758dc}}, Y: Field{[10]uint32{0x0276eadb, 0x0333f4b0, 0x009ed1b4, 0x0252dfba, 0x02d589a4, 0x0377282b, 0x005ce542, 0x0191159a, 0x01f1a289, 0x001aa4cb}}},
+ {X: Field{[10]uint32{0x027de64c, 0x0273c111, 0x029a3947, 0x03bc3fa4, 0x0326a478, 0x0244ac15, 0x0187a680, 0x0048d7cc, 0x036b460e, 0x0020aeae}}, Y: Field{[10]uint32{0x0345647f, 0x00227844, 0x00faff51, 0x0068c9f4, 0x015de43a, 0x013560da, 0x033c11c9, 0x000e5807, 0x0233603d, 0x000ea7d3}}},
+ {X: Field{[10]uint32{0x0348090a, 0x01b72a82, 0x01262c27, 0x00d0306e, 0x00a01c51, 0x036ab984, 0x03d899a9, 0x016ff6d8, 0x031d4e71, 0x002ba1b9}}, Y: Field{[10]uint32{0x00fd7b5e, 0x00778a53, 0x02126a30, 0x020e7271, 0x006f2f9e, 0x02d1619e, 0x02c4df93, 0x023deffa, 0x008bfcae, 0x000d592d}}},
+ {X: Field{[10]uint32{0x02a413e8, 0x01d0d90a, 0x0000ef57, 0x02f247d0, 0x02664c50, 0x007accad, 0x02d6ad7f, 0x00730fd2, 0x02fbfc66, 0x000d6970}}, Y: Field{[10]uint32{0x02d6cde5, 0x006f33b2, 0x02752711, 0x0249332b, 0x01b901d6, 0x022a0721, 0x00727826, 0x019920f8, 0x01a2887f, 0x0012940a}}},
+ {X: Field{[10]uint32{0x0058e2dc, 0x01ac1a56, 0x0360ecbc, 0x0259b1b5, 0x02763244, 0x03494766, 0x027c29ad, 0x00229d87, 0x007f4dd5, 0x000e1afc}}, Y: Field{[10]uint32{0x02407696, 0x006b61f7, 0x01f41e81, 0x008456a0, 0x020f07c6, 0x023ec52c, 0x0103e196, 0x0280e076, 0x00049c1f, 0x00353c52}}},
+ {X: Field{[10]uint32{0x02346f96, 0x0379aa84, 0x00909fab, 0x01f32f5c, 0x03f9c46c, 0x02441361, 0x02c445ec, 0x03d33142, 0x001c9bd6, 0x0037fb0e}}, Y: Field{[10]uint32{0x017553f1, 0x033fc09e, 0x03f2e56c, 0x01da922d, 0x03d1ce0f, 0x0365a516, 0x017ef3ca, 0x01926f7e, 0x00f825b6, 0x00179cd1}}},
+ {X: Field{[10]uint32{0x002abbb2, 0x0307aa21, 0x00aaa007, 0x000b48d6, 0x02f8a243, 0x03a82ff0, 0x013e0b70, 0x00133152, 0x00c604db, 0x000d81b7}}, Y: Field{[10]uint32{0x0287301d, 0x011f9e15, 0x025edbb5, 0x02c6f880, 0x0387eea8, 0x03b28d99, 0x03569a1f, 0x026dd2e2, 0x003bbc4d, 0x0029721d}}},
+ {X: Field{[10]uint32{0x012b0016, 0x014a0979, 0x012b6660, 0x00e239db, 0x00db0860, 0x007464a8, 0x03025a47, 0x025b8a68, 0x0337e190, 0x000d1079}}, Y: Field{[10]uint32{0x01eef0da, 0x02d83de0, 0x01b9e7db, 0x0128de18, 0x015eb9bd, 0x02c8ce8e, 0x003ad47b, 0x032639cf, 0x037ed5ca, 0x0001b443}}},
+ {X: Field{[10]uint32{0x02636e99, 0x01504289, 0x03030002, 0x02fd737f, 0x01b1d902, 0x015aa73d, 0x02a7a5c4, 0x0230d2d7, 0x002e460d, 0x002cb25f}}, Y: Field{[10]uint32{0x02057b7c, 0x0227a8f8, 0x02bfa232, 0x007c9c85, 0x021f151e, 0x03da5cf8, 0x03417b3c, 0x03bcc1d4, 0x0081a8c8, 0x0019c4cc}}},
+ {X: Field{[10]uint32{0x03e045fd, 0x03054055, 0x01a973b6, 0x02dcf6d1, 0x019b7932, 0x016409ed, 0x03fdabed, 0x00f773e3, 0x018b59a4, 0x0009d02f}}, Y: Field{[10]uint32{0x03b02a85, 0x01e01fa4, 0x0182e1ea, 0x0392c3af, 0x03987aab, 0x0304ddd4, 0x00787a63, 0x006b50b0, 0x02b1f69f, 0x002041bc}}},
+ {X: Field{[10]uint32{0x01b6c21b, 0x01597862, 0x009a69ee, 0x01a76331, 0x00aaa8e2, 0x00fe5003, 0x00b4f400, 0x02530336, 0x03d9bdbd, 0x00286b3f}}, Y: Field{[10]uint32{0x02f0235b, 0x0305afc3, 0x00a66df7, 0x03033065, 0x00bcc4fd, 0x03d393d1, 0x00acfbd4, 0x03d4625d, 0x017e0733, 0x0018bb1f}}},
+ {X: Field{[10]uint32{0x03349847, 0x007d05d5, 0x00cff630, 0x02f4ccb6, 0x019a5357, 0x00e34eab, 0x038c0f15, 0x012b30c9, 0x02d68d52, 0x00142eca}}, Y: Field{[10]uint32{0x03acfb32, 0x00d4a1fe, 0x03139b85, 0x039659df, 0x02ba4b33, 0x03bc062e, 0x03d4c6e1, 0x009af6e5, 0x03d5d035, 0x00363f0c}}},
+ {X: Field{[10]uint32{0x034fdbd9, 0x03420e17, 0x0132ec9f, 0x02823f43, 0x01948e2c, 0x008a2040, 0x035e8601, 0x02d3eb59, 0x02626031, 0x003af7ec}}, Y: Field{[10]uint32{0x000dbf2e, 0x018a69e9, 0x02a0a9c4, 0x010a2546, 0x034f853a, 0x019b8c66, 0x03964e44, 0x0044f76c, 0x026cc470, 0x002c1e01}}},
+ {X: Field{[10]uint32{0x018bd48f, 0x022dd0ba, 0x001f63a4, 0x03e05c55, 0x01d57b35, 0x0023f56b, 0x02f73e82, 0x00a8bef7, 0x00236548, 0x00176bd3}}, Y: Field{[10]uint32{0x0287f967, 0x031d728b, 0x0327db2c, 0x03cb08c0, 0x009cbd11, 0x03e8f7fb, 0x03fc83c4, 0x02181fd7, 0x03cb5a24, 0x0024056f}}},
+ {X: Field{[10]uint32{0x028533c7, 0x0147327b, 0x0277d085, 0x017cac4a, 0x01238c90, 0x00d4fe09, 0x0219517f, 0x0020519e, 0x00205d84, 0x0008b6e7}}, Y: Field{[10]uint32{0x006dcdf8, 0x01c0e2ce, 0x0231c85f, 0x00a6d811, 0x027ad19e, 0x02e6b3c3, 0x02192642, 0x00a8a28c, 0x03c82343, 0x001a0286}}},
+ {X: Field{[10]uint32{0x00c100ae, 0x01ca1875, 0x00d4f4db, 0x016111a5, 0x019fb446, 0x021b9b95, 0x0225213f, 0x02f94649, 0x01d102e8, 0x0010110d}}, Y: Field{[10]uint32{0x011586d1, 0x0213de1b, 0x00f4cb62, 0x016a5078, 0x02dd734e, 0x03e09246, 0x02047768, 0x03bbeba3, 0x0282b321, 0x0027af39}}},
+ {X: Field{[10]uint32{0x0037530f, 0x00994cba, 0x009f260c, 0x027331a7, 0x00fe59df, 0x0354b687, 0x0200d1a3, 0x029b7be1, 0x02ff6831, 0x003730db}}, Y: Field{[10]uint32{0x0377a893, 0x0256b307, 0x014d65b7, 0x03fda643, 0x03b6b385, 0x01e159b2, 0x0298c135, 0x02dfa17a, 0x01e67360, 0x0021826d}}},
+ {X: Field{[10]uint32{0x001a1514, 0x014f9e67, 0x019a8b43, 0x0101178b, 0x00e991d1, 0x018cf2d2, 0x004cd04c, 0x00e0f929, 0x03941a1c, 0x003bc37e}}, Y: Field{[10]uint32{0x036f6f42, 0x01721abd, 0x006d461e, 0x02f0f8cd, 0x019c3599, 0x01a4fb41, 0x033afabf, 0x017e6adc, 0x0160f2a7, 0x00009a17}}},
+ {X: Field{[10]uint32{0x01766b8a, 0x02f14dc7, 0x01b3086a, 0x02eb6758, 0x02410b0f, 0x03299ac1, 0x012e18f2, 0x03bf5ad3, 0x00fdc6c3, 0x00092213}}, Y: Field{[10]uint32{0x00e2267d, 0x01ec5f6b, 0x0119e465, 0x0066a9a1, 0x0086a786, 0x0288f04c, 0x015c6bf8, 0x036a9f4e, 0x008566f3, 0x001f0737}}},
+ {X: Field{[10]uint32{0x02cd8b20, 0x01d18c92, 0x01a450de, 0x00219e36, 0x01485b07, 0x0206dbc1, 0x0207756f, 0x012a04b1, 0x0291c700, 0x001506d9}}, Y: Field{[10]uint32{0x01c609d7, 0x0179d931, 0x0117fc7f, 0x037eba61, 0x00cefff3, 0x008e0de1, 0x009f0d50, 0x010a6b1d, 0x03018a3c, 0x0037733c}}},
+ {X: Field{[10]uint32{0x01fa822d, 0x0090b068, 0x03b9a138, 0x0322ee76, 0x02f792cf, 0x03c7e0a5, 0x005eea4f, 0x00b8fea4, 0x01696726, 0x0001518a}}, Y: Field{[10]uint32{0x01e6880e, 0x02b6ff88, 0x0218570d, 0x01c043db, 0x03da2d73, 0x02195967, 0x02d8e7f9, 0x02549d3e, 0x02898e42, 0x0018c048}}},
+ {X: Field{[10]uint32{0x00848e83, 0x0200833b, 0x01f6d6e1, 0x01241b3a, 0x003ddfd9, 0x001185bf, 0x0122bb97, 0x004a7734, 0x0112ad2c, 0x002501c2}}, Y: Field{[10]uint32{0x0314017b, 0x02e9b66d, 0x01536d1f, 0x03e0ad5c, 0x00b5d261, 0x0169cca9, 0x0101080b, 0x0327c532, 0x00e56bfa, 0x00270ece}}},
+ {X: Field{[10]uint32{0x023ca6c9, 0x02e4a95b, 0x020173ed, 0x0180d94e, 0x02ea73b0, 0x00505ee4, 0x028071cc, 0x01987abe, 0x00e48ddc, 0x000a98cc}}, Y: Field{[10]uint32{0x03fc7d79, 0x01d878f0, 0x016f3d8b, 0x00e1ad54, 0x035802bc, 0x02fd3eea, 0x02d56a3f, 0x030d42e8, 0x01cd4754, 0x002ce314}}},
+ {X: Field{[10]uint32{0x03f7424d, 0x02c11eb4, 0x00c39dac, 0x0071fbf1, 0x008c418c, 0x03fd69f5, 0x024078c5, 0x03685d6b, 0x00935f95, 0x002450b9}}, Y: Field{[10]uint32{0x0085cd05, 0x022b732e, 0x02ac0e69, 0x01fd629f, 0x0137d0ab, 0x0293e6c1, 0x0284ea55, 0x00cea7a1, 0x0274c471, 0x00054596}}},
+ {X: Field{[10]uint32{0x0285804d, 0x03a995b2, 0x0169ad1e, 0x01c9ff2f, 0x000bb8d3, 0x022351fa, 0x0263ef38, 0x0137bb6e, 0x03295cac, 0x000b8662}}, Y: Field{[10]uint32{0x0380fd52, 0x01ae7b19, 0x02e63067, 0x01a07148, 0x00eb3824, 0x02c720c3, 0x02b0c2b1, 0x03fef854, 0x01b3e700, 0x000c7757}}},
+ {X: Field{[10]uint32{0x0272f72d, 0x03d4db2c, 0x0264e5a3, 0x038befc0, 0x0032a671, 0x02f66f16, 0x023e52a7, 0x032bebc4, 0x01e9b2ef, 0x002d138d}}, Y: Field{[10]uint32{0x02a43423, 0x005a9696, 0x02b0871c, 0x0304e4d2, 0x03f80c81, 0x0090f992, 0x032b80a1, 0x027f5098, 0x03e3beb3, 0x00235227}}},
+ {X: Field{[10]uint32{0x003a3cd7, 0x037d906e, 0x013beefd, 0x02d6439b, 0x00f609f0, 0x008918f7, 0x02cf365c, 0x012db6d7, 0x0101e132, 0x0037266b}}, Y: Field{[10]uint32{0x0111b682, 0x03f921bb, 0x003decf0, 0x02511e81, 0x03a4c1e7, 0x00e4f021, 0x000ad6a4, 0x02fabccb, 0x02ca2fea, 0x002d2d08}}},
+ {X: Field{[10]uint32{0x0162a359, 0x03146ebe, 0x0237648f, 0x03f3a8a1, 0x013029eb, 0x021a3d34, 0x02af89bb, 0x0070b73e, 0x038eeb99, 0x00385d20}}, Y: Field{[10]uint32{0x00e7570b, 0x016b4aa8, 0x01ec70c0, 0x018a086a, 0x000238dc, 0x0369731d, 0x031b60a4, 0x0377252e, 0x008727cb, 0x003e0373}}},
+ {X: Field{[10]uint32{0x02583d33, 0x00437ea8, 0x0349765d, 0x0062d5a2, 0x014ca21d, 0x02dce7ad, 0x00d79a48, 0x005b510b, 0x018b15bd, 0x0018900d}}, Y: Field{[10]uint32{0x00ec2d00, 0x00f0375b, 0x0013fa61, 0x005b7ccd, 0x01fc5461, 0x0290db54, 0x02d8caa8, 0x01d543b5, 0x014d724e, 0x001ab2c1}}},
+ {X: Field{[10]uint32{0x023f8d70, 0x01a0d0b9, 0x007b2e62, 0x01dcb070, 0x02aa61c0, 0x03f4ebde, 0x03a29b4b, 0x02b03d50, 0x00eb560a, 0x0029d5ff}}, Y: Field{[10]uint32{0x000352da, 0x0031033d, 0x0057b39d, 0x01419d25, 0x02b4c074, 0x02f1a880, 0x00713e27, 0x015743ed, 0x02eff808, 0x00161933}}},
+ {X: Field{[10]uint32{0x03777bba, 0x02f5044b, 0x008143a1, 0x02602f1d, 0x01d4b1f4, 0x03942746, 0x02e94162, 0x00527640, 0x007357c3, 0x003cdb84}}, Y: Field{[10]uint32{0x03d1993e, 0x02a5a60e, 0x0025a14a, 0x010de3c3, 0x0045f74b, 0x01b0ff92, 0x00d93967, 0x009a4f90, 0x022d139a, 0x003535f6}}},
+ {X: Field{[10]uint32{0x024af99a, 0x01a75648, 0x0020b172, 0x013f3125, 0x004a8e0e, 0x0189dfbc, 0x0134949b, 0x003fdc4e, 0x014b55a4, 0x00213bcb}}, Y: Field{[10]uint32{0x01ea73a6, 0x020c2161, 0x03e3e80a, 0x01d9d53b, 0x0260465e, 0x02c759d4, 0x03f2b7a0, 0x01423d97, 0x00b701d3, 0x0015ebff}}},
+ {X: Field{[10]uint32{0x03ce7576, 0x01e1e10f, 0x03f4784f, 0x037d022c, 0x0296b046, 0x03fca2eb, 0x02fdca34, 0x03d9b5f7, 0x024b274f, 0x0004e3bd}}, Y: Field{[10]uint32{0x02e1ecf1, 0x021546ff, 0x03d4ced9, 0x004bb929, 0x01dfe979, 0x000c94bb, 0x02010cbd, 0x01f10d04, 0x00e51d51, 0x003af741}}},
+ {X: Field{[10]uint32{0x011f318c, 0x032d820f, 0x0189b435, 0x00a38b66, 0x032d4547, 0x01434c15, 0x02a11455, 0x015a4884, 0x03fe2ba0, 0x003a0bc0}}, Y: Field{[10]uint32{0x0012dcda, 0x017d8fd6, 0x010f2eb2, 0x00dd8099, 0x03613b29, 0x028d3848, 0x02aaf1fe, 0x0162064a, 0x03b9cf29, 0x0006469b}}},
+ {X: Field{[10]uint32{0x02afb317, 0x02f4b216, 0x0296be44, 0x02630346, 0x00111170, 0x03cd17b0, 0x035fb3e7, 0x01beb1fa, 0x0000676b, 0x0015a9a1}}, Y: Field{[10]uint32{0x031dfb4e, 0x016c33a7, 0x0194903f, 0x03f33874, 0x02f49ff2, 0x03106067, 0x01dcb5f4, 0x02df316e, 0x027a5ae1, 0x000e9060}}},
+ {X: Field{[10]uint32{0x001309f5, 0x028f0cb7, 0x010084ef, 0x006b9029, 0x028f735b, 0x007c9982, 0x02fe255e, 0x00f6d3ce, 0x007f1b35, 0x0020bd5d}}, Y: Field{[10]uint32{0x024a0144, 0x02a64189, 0x03bd7dd5, 0x028a933d, 0x03d05f9e, 0x0055caef, 0x007e4c67, 0x03007dfa, 0x0103f4cc, 0x0010ba2e}}},
+ {X: Field{[10]uint32{0x02e0cf13, 0x02b5651d, 0x002bb0bf, 0x03040678, 0x0280ef76, 0x01dacc4d, 0x0389e0c3, 0x00659292, 0x0141c47b, 0x002244da}}, Y: Field{[10]uint32{0x002d3f3b, 0x01d4de8b, 0x0221af6f, 0x01641dfd, 0x01d722e6, 0x005df18d, 0x0071bc50, 0x01593fd2, 0x0385fb6a, 0x002ce8a9}}},
+ {X: Field{[10]uint32{0x02238909, 0x018297d0, 0x01df1c73, 0x02ee5d9c, 0x010b9954, 0x03bd7628, 0x030cb51e, 0x03d60003, 0x01690c98, 0x00318942}}, Y: Field{[10]uint32{0x018ec724, 0x01cc68c1, 0x01240219, 0x0365ac7b, 0x01552d5b, 0x0065f83a, 0x013f935e, 0x02ac8937, 0x024c915e, 0x0020f40c}}},
+ {X: Field{[10]uint32{0x03c7e3b4, 0x0047f523, 0x00184274, 0x02377439, 0x01ad1293, 0x03aa6761, 0x024a481d, 0x00c80119, 0x02d96391, 0x00388e66}}, Y: Field{[10]uint32{0x03c69d47, 0x01537e24, 0x03298f9b, 0x0287ec43, 0x005d8b1f, 0x02270de0, 0x02836ed3, 0x00a388ba, 0x0162beae, 0x00183fff}}},
+ {X: Field{[10]uint32{0x0003d959, 0x03e0870c, 0x007b85a1, 0x035f09f3, 0x020a59c5, 0x032345e5, 0x02383d6c, 0x00a64a69, 0x031c186d, 0x00013402}}, Y: Field{[10]uint32{0x02487640, 0x00c9fa33, 0x01cb4687, 0x0375be35, 0x02dd4aa3, 0x002df1f9, 0x01c8ce7a, 0x0067f527, 0x02d127eb, 0x0021d4ba}}},
+ {X: Field{[10]uint32{0x0264121e, 0x025ceba4, 0x003185ea, 0x028d6591, 0x00933cbf, 0x02df8712, 0x02548e98, 0x014b246a, 0x03ef8b8b, 0x000d1198}}, Y: Field{[10]uint32{0x014d9efd, 0x02b9d814, 0x02b06dfe, 0x01738bdc, 0x036fe388, 0x02fa959c, 0x017e6240, 0x023bb2e5, 0x01c89dfe, 0x001cf426}}},
+ {X: Field{[10]uint32{0x00de6648, 0x0222ef68, 0x019e35c7, 0x0355f28c, 0x03f411d3, 0x02526d3c, 0x03038d47, 0x00aa60cc, 0x004ddbd2, 0x000dffd2}}, Y: Field{[10]uint32{0x00547c67, 0x02b9aa48, 0x00bfba9a, 0x021a0e60, 0x03a45cf0, 0x03b07d70, 0x03b14554, 0x0236074b, 0x014b5161, 0x0015694e}}},
+ {X: Field{[10]uint32{0x03556ca5, 0x0256c185, 0x012e14d7, 0x01c035bc, 0x00d2881f, 0x0331b4f6, 0x01339d14, 0x0019ae42, 0x01db0ad5, 0x0033cef3}}, Y: Field{[10]uint32{0x01678a6f, 0x025e91c4, 0x000b13c1, 0x03dc22df, 0x00b61b90, 0x009d8089, 0x020e4023, 0x003c8188, 0x02bc99e2, 0x003849a1}}},
+ {X: Field{[10]uint32{0x01a73402, 0x000bb7d7, 0x00d4149f, 0x02852606, 0x03d35e47, 0x00f5d296, 0x00f91101, 0x0346b28e, 0x02e7db8f, 0x00258740}}, Y: Field{[10]uint32{0x01fed240, 0x0014561c, 0x0282a1db, 0x02b7f8be, 0x01765dc8, 0x03fc85fa, 0x0115ca3b, 0x019df059, 0x02acd698, 0x002518ba}}},
+ {X: Field{[10]uint32{0x006ec3ba, 0x02be5fad, 0x0135c5e1, 0x00901169, 0x003648b7, 0x01d2052b, 0x0122ca60, 0x02399497, 0x0390574a, 0x0010f98b}}, Y: Field{[10]uint32{0x01939734, 0x01a8d6cf, 0x033a318f, 0x02167b71, 0x03e141dc, 0x00634140, 0x029e20ed, 0x033c5e4d, 0x025617c1, 0x001b7bc2}}},
+ {X: Field{[10]uint32{0x03dfdbb7, 0x02001495, 0x0116033b, 0x02d2a58b, 0x020457e4, 0x0237a4ec, 0x02113cf9, 0x000630d4, 0x03799d79, 0x00279a0a}}, Y: Field{[10]uint32{0x0049041b, 0x00fb1754, 0x001e93f2, 0x0153ba6a, 0x01b29833, 0x010174b2, 0x00468a06, 0x018d0e27, 0x0316bfe9, 0x00276e72}}},
+ {X: Field{[10]uint32{0x01a1a8b4, 0x021db935, 0x008f9436, 0x0390800b, 0x025f9682, 0x02148064, 0x0222d130, 0x02d676ca, 0x03a78079, 0x001e4061}}, Y: Field{[10]uint32{0x03fa456e, 0x02564b2b, 0x004de17e, 0x0075a981, 0x02ade0ad, 0x01aa39aa, 0x014381e5, 0x00c600d9, 0x0346f6b4, 0x00009722}}},
+ {X: Field{[10]uint32{0x00169583, 0x0339557c, 0x02b1d683, 0x030c356e, 0x01662a0d, 0x016887ff, 0x0222d653, 0x012cce67, 0x038a6c74, 0x0024a292}}, Y: Field{[10]uint32{0x026fcf84, 0x01373266, 0x01eaa75d, 0x03d9a1ff, 0x01323d55, 0x03fb21ea, 0x01af7e45, 0x02552f87, 0x0284c064, 0x000947fb}}},
+ {X: Field{[10]uint32{0x02084c88, 0x01b0fd2f, 0x03fde6c1, 0x00fa6efe, 0x03a6ffb7, 0x03262e1b, 0x01872de8, 0x00bcb2b1, 0x00da8118, 0x001a13a2}}, Y: Field{[10]uint32{0x036383fe, 0x03c19173, 0x00bb60bf, 0x02c1abee, 0x03ad179e, 0x01d55eac, 0x01ae45ff, 0x018b5648, 0x019dfc9d, 0x0031146d}}},
+ {X: Field{[10]uint32{0x01174343, 0x02defe93, 0x02f6cad7, 0x033aa165, 0x038e8166, 0x02526f3a, 0x00ebfa86, 0x02c335ea, 0x0283a403, 0x0022f74b}}, Y: Field{[10]uint32{0x00177172, 0x032f23ea, 0x03bad08c, 0x0167a7bf, 0x03643bb3, 0x03b24df0, 0x0307b2fe, 0x020be1f5, 0x014797f6, 0x001c8830}}},
+ {X: Field{[10]uint32{0x02399543, 0x03a02c2f, 0x008b4b69, 0x01a791a5, 0x03b71958, 0x03e487da, 0x0258ef50, 0x01254a14, 0x03216e3c, 0x0030fe8e}}, Y: Field{[10]uint32{0x02ec1796, 0x03b654c2, 0x0310fc8e, 0x0285d22e, 0x015a519c, 0x0009b0b1, 0x00880503, 0x01986ddc, 0x00ed21f6, 0x003ac811}}},
+ {X: Field{[10]uint32{0x037e63a2, 0x028e29eb, 0x02b483d6, 0x034b990a, 0x00195a8b, 0x0034d578, 0x01fb0df5, 0x00a564de, 0x0013eb2d, 0x0007018f}}, Y: Field{[10]uint32{0x030f2abb, 0x03d5cde1, 0x02ed7cfc, 0x01d1fd11, 0x02b00428, 0x0310389a, 0x005005c8, 0x027fd9d7, 0x0392d14c, 0x000814e3}}},
+ {X: Field{[10]uint32{0x0331d452, 0x006d7803, 0x0399981f, 0x037841f8, 0x016c6086, 0x009f2d4e, 0x002dc6c2, 0x03063d2e, 0x03977b54, 0x00183019}}, Y: Field{[10]uint32{0x0098429a, 0x0157c637, 0x0013b737, 0x03dc2ab3, 0x02ce0e8b, 0x015ebebf, 0x03d2617b, 0x0046cb9b, 0x02c4e3eb, 0x000fd151}}},
+ {X: Field{[10]uint32{0x02a36856, 0x03c022ff, 0x01722c0a, 0x00aebc61, 0x03421cdc, 0x008c7b62, 0x0263e90a, 0x01aaef3c, 0x03999225, 0x003f0573}}, Y: Field{[10]uint32{0x0235d798, 0x00d375f1, 0x0197e276, 0x025fd726, 0x00c01dbd, 0x0268efc9, 0x01d46e46, 0x00214dc3, 0x02a4d9c4, 0x002af8d1}}},
+ {X: Field{[10]uint32{0x03249454, 0x023f9109, 0x02ee5c6f, 0x01a99649, 0x001a92b0, 0x0322c1ee, 0x00da262b, 0x00eedd0a, 0x01851817, 0x003d850e}}, Y: Field{[10]uint32{0x0301cf84, 0x00f38635, 0x004aab9f, 0x03a6731e, 0x0011fced, 0x02fa397a, 0x001f06d4, 0x01630835, 0x02ef3a25, 0x002c760c}}},
+ {X: Field{[10]uint32{0x0261b5f5, 0x0085b73b, 0x00bc7ad5, 0x010c4275, 0x0301f1fd, 0x01a845aa, 0x02685427, 0x02110907, 0x00a96221, 0x0015e516}}, Y: Field{[10]uint32{0x0053e2d8, 0x0352d84b, 0x03e237bd, 0x01365eba, 0x0021274a, 0x00d6fb5c, 0x00c8d461, 0x015f1857, 0x007468c1, 0x000cf959}}},
+ {X: Field{[10]uint32{0x01fe62e7, 0x01479e90, 0x023bd8c0, 0x0007f85f, 0x03abab20, 0x038d57a3, 0x0162678f, 0x0104cad5, 0x03dcb080, 0x0018dd54}}, Y: Field{[10]uint32{0x03572dce, 0x005e4826, 0x00d3c319, 0x025a1d38, 0x036989b2, 0x019ee853, 0x026a9511, 0x01b87fc6, 0x01c2ad58, 0x000a2f5b}}},
+ {X: Field{[10]uint32{0x0180e2a3, 0x00dc8bad, 0x028ea66c, 0x036d5dfe, 0x0389e99d, 0x03953d60, 0x01ddb923, 0x02156f88, 0x030f6f64, 0x003baef5}}, Y: Field{[10]uint32{0x02fd4d68, 0x021a09cc, 0x00e1dedc, 0x0260f7d8, 0x007c9866, 0x034eb13b, 0x015606ea, 0x000d1529, 0x017915b5, 0x000f46da}}},
+ {X: Field{[10]uint32{0x006c56fb, 0x0143909a, 0x01ddb2e3, 0x022db971, 0x023a6e88, 0x01de448d, 0x011135f3, 0x02c769a2, 0x031f2bf4, 0x0013b224}}, Y: Field{[10]uint32{0x02a09bc7, 0x0277c8d5, 0x019f535d, 0x004155a4, 0x003cbab9, 0x02370f8a, 0x03197704, 0x00c1aaf5, 0x02794c2b, 0x00357db1}}},
+ {X: Field{[10]uint32{0x02e9730e, 0x03094eaf, 0x001a735b, 0x01733137, 0x018f4937, 0x03f571dc, 0x004deabf, 0x01f9e9f6, 0x0376fc5b, 0x001ad69f}}, Y: Field{[10]uint32{0x03b58af8, 0x0277d910, 0x00b7af8f, 0x02afdab6, 0x039eafb8, 0x006155d5, 0x02562df1, 0x017daac4, 0x01c48fbf, 0x0007a4d7}}},
+ {X: Field{[10]uint32{0x02013af7, 0x0391e227, 0x00f27683, 0x03cc8753, 0x035f5b73, 0x01f8a601, 0x024c7591, 0x02562909, 0x01ebf620, 0x000a8c4a}}, Y: Field{[10]uint32{0x01020da4, 0x006487f4, 0x036c689a, 0x00be9b09, 0x01406673, 0x036e2b1f, 0x0346edef, 0x00a2cfe8, 0x01e4c1fc, 0x003a503d}}},
+ {X: Field{[10]uint32{0x0328b5ab, 0x03d458ee, 0x02d124c6, 0x00ef120d, 0x0294a872, 0x02fcb209, 0x0307f345, 0x010fcde0, 0x001ce994, 0x00022ffa}}, Y: Field{[10]uint32{0x00433c71, 0x0192b0fc, 0x01348364, 0x01214b99, 0x0087de98, 0x02345de9, 0x028edc26, 0x017ebe5d, 0x0227857e, 0x00162c5b}}},
+ {X: Field{[10]uint32{0x02d61be3, 0x00cdef62, 0x00f831c1, 0x024a8143, 0x01054236, 0x03934d5b, 0x039daf3e, 0x0159b4b4, 0x00d9449c, 0x0011e083}}, Y: Field{[10]uint32{0x0152c2e4, 0x03ca3326, 0x026655e5, 0x0232a6ba, 0x011200d3, 0x00bc9d11, 0x02d069d2, 0x02a04001, 0x02032988, 0x001237eb}}},
+ {X: Field{[10]uint32{0x01a934e2, 0x03a64855, 0x01131cd6, 0x0149075f, 0x00f9e8dc, 0x0130fbca, 0x01221d88, 0x00d81627, 0x03ce8e45, 0x000b5fc0}}, Y: Field{[10]uint32{0x03ee9c72, 0x00ae3a2d, 0x0043a57a, 0x01c9b5b2, 0x0116a7b2, 0x00a1813e, 0x014d55fe, 0x03ce387c, 0x03c05a39, 0x0021052c}}},
+ {X: Field{[10]uint32{0x01d8e37b, 0x008017a6, 0x0267f1dc, 0x01b2cec7, 0x03f5a5b0, 0x02109416, 0x0150d4ee, 0x02321b08, 0x00ec919d, 0x0020e21f}}, Y: Field{[10]uint32{0x02b4c009, 0x03ba5064, 0x03e327a2, 0x039fe620, 0x03fcea9d, 0x03962117, 0x0134fe12, 0x03ab89e3, 0x03cdf5c9, 0x003fb839}}},
+ {X: Field{[10]uint32{0x01ca1e24, 0x037c6474, 0x010f3f37, 0x002469ed, 0x00a9d0b7, 0x01970ff8, 0x028c03f5, 0x02eac836, 0x01e1138b, 0x0001467e}}, Y: Field{[10]uint32{0x0261ba9e, 0x0300da86, 0x039eb367, 0x02a6b79a, 0x01ef6cd6, 0x0207a5bd, 0x0231ec07, 0x033908fd, 0x02fe2bff, 0x001935ae}}},
+ {X: Field{[10]uint32{0x028fba61, 0x004eb652, 0x02e6c3cd, 0x03998fb7, 0x023946ff, 0x00a4d854, 0x02de2087, 0x01d3a9a6, 0x038f84bc, 0x0020247d}}, Y: Field{[10]uint32{0x030bda1a, 0x00ea7302, 0x02212fe1, 0x03b0e79e, 0x006765fa, 0x01c02aab, 0x03a5d90d, 0x01a23072, 0x018baf84, 0x0006aaa9}}},
+ {X: Field{[10]uint32{0x02db3afc, 0x023a5f9e, 0x01bb49ed, 0x00815b35, 0x018388cf, 0x028dbc43, 0x02a53434, 0x015d21f0, 0x000dd3fe, 0x00142af0}}, Y: Field{[10]uint32{0x01ed25ea, 0x00390763, 0x015d68a8, 0x03640eb7, 0x01670fe0, 0x026e76c0, 0x0064f01d, 0x00103ec7, 0x019514b6, 0x002ae2eb}}},
+ {X: Field{[10]uint32{0x02a2f110, 0x001dcacd, 0x0131faa2, 0x00b9b44a, 0x0120e572, 0x010dab9d, 0x024f2533, 0x007d12a7, 0x00bb4da0, 0x002a690a}}, Y: Field{[10]uint32{0x034c0c5f, 0x0321141d, 0x037a0557, 0x02da16d0, 0x00f8c226, 0x03e94f88, 0x00f05822, 0x0289b110, 0x021a1830, 0x002e8144}}},
+ {X: Field{[10]uint32{0x007a83ce, 0x026c742b, 0x03ecf64e, 0x0396ddd4, 0x01d6948b, 0x0047a668, 0x03fa11b2, 0x0359ddc9, 0x03d46314, 0x0035ebf6}}, Y: Field{[10]uint32{0x00e21d04, 0x02e8734d, 0x008f480a, 0x03e945ca, 0x03ee9b2a, 0x0272d0aa, 0x010ed9d7, 0x012aee8e, 0x017d748a, 0x002d7e2e}}},
+ {X: Field{[10]uint32{0x036de265, 0x00aaff66, 0x03a99d62, 0x006b5462, 0x0113f19b, 0x019cab15, 0x0141694b, 0x01119a8f, 0x034cd2b5, 0x000adae0}}, Y: Field{[10]uint32{0x02b9b0d6, 0x033b141e, 0x01df187c, 0x026e24b6, 0x0174ec84, 0x032facb9, 0x01d52dd3, 0x02cf4ab4, 0x0193ddc0, 0x00306489}}},
+ {X: Field{[10]uint32{0x016ac8ea, 0x018326ea, 0x025a2513, 0x012c68fb, 0x03f29c34, 0x0270471a, 0x016ef7ea, 0x00fe8c56, 0x034ad7f9, 0x003ce4f3}}, Y: Field{[10]uint32{0x028133e1, 0x03b6ea9e, 0x027ec41b, 0x02ccd78e, 0x01fbfa56, 0x00341849, 0x02480163, 0x033bae43, 0x00a9de67, 0x0013a047}}},
+ {X: Field{[10]uint32{0x008f418a, 0x0235d7a7, 0x03c0e084, 0x02f414be, 0x00bbc546, 0x028922a5, 0x03050120, 0x02c95204, 0x02504e14, 0x002f0ee4}}, Y: Field{[10]uint32{0x02a58223, 0x03bcab69, 0x022d9af0, 0x00e31d86, 0x018f5eca, 0x00475e31, 0x013a911f, 0x021f05d9, 0x03c6f8b4, 0x002694ab}}},
+ {X: Field{[10]uint32{0x036055c0, 0x019fbbd7, 0x01cec014, 0x00eefdbe, 0x03e71edc, 0x02af6c7d, 0x021e1704, 0x03ee29cc, 0x0273c601, 0x000bd683}}, Y: Field{[10]uint32{0x0153e393, 0x00fd1099, 0x002ebc5a, 0x033c4f65, 0x02b79a5e, 0x03e01c84, 0x01d97f80, 0x00b2c4ee, 0x010d142d, 0x00362ec7}}},
+ {X: Field{[10]uint32{0x03a54ae8, 0x00fb4d1c, 0x0215bfa1, 0x01efd72f, 0x018d8d8d, 0x0245b047, 0x01099b96, 0x01a6b213, 0x01e3b4fc, 0x002e0f94}}, Y: Field{[10]uint32{0x023dda5b, 0x00d970b2, 0x02a78f3f, 0x0211b876, 0x01daeb7a, 0x01f3f094, 0x0018084a, 0x00e48c88, 0x038869c5, 0x0008cb83}}},
+ {X: Field{[10]uint32{0x03516377, 0x026902f9, 0x00c0ea24, 0x00c16423, 0x00e90e9b, 0x03ba2416, 0x032b3722, 0x01e8c854, 0x019350b0, 0x000425c6}}, Y: Field{[10]uint32{0x020a1055, 0x025adb96, 0x03f672c7, 0x03e7395b, 0x010dc735, 0x00c21e67, 0x023a3a5e, 0x0168126f, 0x027c7bd5, 0x001a682d}}},
+ {X: Field{[10]uint32{0x005c4477, 0x009e88fa, 0x01647dcb, 0x0053051a, 0x02622508, 0x000a6774, 0x0171711a, 0x014063cf, 0x035cc95d, 0x0036fbbd}}, Y: Field{[10]uint32{0x00d66413, 0x01daa422, 0x0175335e, 0x038c72fe, 0x00676311, 0x03148dfe, 0x02a68556, 0x013e38ae, 0x02cd1633, 0x003751c4}}},
+ {X: Field{[10]uint32{0x03af114f, 0x0201b55a, 0x00d29d96, 0x02239328, 0x03027238, 0x00ded043, 0x0005f185, 0x03a4e3cd, 0x01992bde, 0x000a32c4}}, Y: Field{[10]uint32{0x001e5aa3, 0x03afd2fa, 0x03fea695, 0x01b30a95, 0x01c3e2ef, 0x00e973a2, 0x029fc1e8, 0x0376078e, 0x03febbe5, 0x00039b18}}},
+ {X: Field{[10]uint32{0x029f60ba, 0x02e8b893, 0x02da3790, 0x016b919d, 0x00caef38, 0x0273b175, 0x039f1768, 0x03a67997, 0x030b64ef, 0x003c28b7}}, Y: Field{[10]uint32{0x007a4519, 0x02db4520, 0x01a85713, 0x0081ef3c, 0x02006a25, 0x02a9df69, 0x0098c12a, 0x03d99051, 0x0208b900, 0x0029f29f}}},
+ {X: Field{[10]uint32{0x002b0f00, 0x037ff952, 0x01410799, 0x001a6aec, 0x0254fe9b, 0x03d54c41, 0x007ad4f0, 0x010e5837, 0x02eb38e5, 0x00346ed1}}, Y: Field{[10]uint32{0x02ce4214, 0x007e48ba, 0x00b14a03, 0x00b2be4c, 0x00d03bbd, 0x01a09adb, 0x00a54639, 0x00c2d834, 0x019fe088, 0x00052c18}}},
+ {X: Field{[10]uint32{0x0369517a, 0x00333807, 0x00a8415c, 0x00083152, 0x0185d740, 0x03074268, 0x01adb31a, 0x0049a97d, 0x02567705, 0x0009ef4b}}, Y: Field{[10]uint32{0x01468d32, 0x01e064a9, 0x0008f655, 0x02b61cd3, 0x03202690, 0x0238c0b5, 0x01ce428a, 0x00734a7e, 0x01d7cba2, 0x0004880f}}},
+ {X: Field{[10]uint32{0x03d21d9c, 0x010c806f, 0x003bd61d, 0x0376e36f, 0x0355441a, 0x02cad9db, 0x03835efa, 0x038805a4, 0x03901c72, 0x001acb31}}, Y: Field{[10]uint32{0x02dd7456, 0x016ce8d2, 0x015601bd, 0x0014639d, 0x006690bb, 0x018bfce3, 0x03f90d4b, 0x00124f6b, 0x0006deea, 0x001665cd}}},
+ {X: Field{[10]uint32{0x00840f27, 0x0027ed65, 0x012675df, 0x024f981f, 0x01c63c3b, 0x02ff35af, 0x02a8bcc6, 0x014f158c, 0x003f32f9, 0x001d7a17}}, Y: Field{[10]uint32{0x00b6bb30, 0x03c07b5b, 0x01c47723, 0x02832fdb, 0x00bc59ac, 0x0109b99a, 0x0324f89d, 0x031cf65a, 0x03768714, 0x0008bd68}}},
+ {X: Field{[10]uint32{0x006d56a7, 0x00802e7e, 0x0268315e, 0x0149a314, 0x02f26e17, 0x038a3c79, 0x000eed57, 0x0054bd07, 0x0071969e, 0x0034de8c}}, Y: Field{[10]uint32{0x02ff6181, 0x0080d59d, 0x036d3abe, 0x030ed1d0, 0x0370e296, 0x025885c8, 0x004b1fbd, 0x00747437, 0x03269875, 0x0014f549}}},
+ {X: Field{[10]uint32{0x03414976, 0x014407a9, 0x001d237d, 0x0262538d, 0x02676931, 0x03860eec, 0x01466408, 0x01a5ccd9, 0x03047f5e, 0x001c56ec}}, Y: Field{[10]uint32{0x01a968d4, 0x01827ba8, 0x01acadb7, 0x03ec0f60, 0x02a89dd1, 0x03a570f5, 0x01ea6722, 0x0357a1e9, 0x035f9e82, 0x000a1103}}},
+ {X: Field{[10]uint32{0x02c642e8, 0x022b7df6, 0x0013968d, 0x0292c21f, 0x028e4924, 0x01a04bb0, 0x034a52cc, 0x0056569e, 0x002a4f5b, 0x003dcb45}}, Y: Field{[10]uint32{0x021087dd, 0x023e5e9d, 0x007a6537, 0x0333eebd, 0x00585486, 0x03165305, 0x02ab9bbb, 0x0010b3c5, 0x004bb5d8, 0x001406d9}}},
+ {X: Field{[10]uint32{0x01284c26, 0x00ee58b0, 0x03f28024, 0x01b363ef, 0x00384084, 0x0291a7cd, 0x003cf020, 0x0228e97f, 0x038fb4ca, 0x001ecfbf}}, Y: Field{[10]uint32{0x01748579, 0x0240ad6c, 0x00522811, 0x01bbf544, 0x023bbf63, 0x03858408, 0x00bc5555, 0x01849294, 0x00fd1539, 0x002f8962}}},
+ {X: Field{[10]uint32{0x02113dd8, 0x017f0de2, 0x018a59cc, 0x00d7fcad, 0x03ec2a70, 0x025d3933, 0x03652257, 0x03b29334, 0x00d771fb, 0x0009106a}}, Y: Field{[10]uint32{0x02447981, 0x00a624e0, 0x00fccae1, 0x00b64c5b, 0x00fe035d, 0x02b08cd8, 0x03f4c6a7, 0x019c4d2e, 0x03760531, 0x000152c1}}},
+ {X: Field{[10]uint32{0x00cf7591, 0x03a68a85, 0x0024de78, 0x01f2d92e, 0x02512d09, 0x03d2ace1, 0x03916b12, 0x019f2916, 0x024ed054, 0x003083f2}}, Y: Field{[10]uint32{0x00eecc02, 0x008d56b9, 0x0346d02b, 0x022c8e33, 0x03931fc4, 0x036b4439, 0x007e69c9, 0x0101cb2a, 0x00c796ee, 0x0022146b}}},
+ {X: Field{[10]uint32{0x009ec8e7, 0x024bac81, 0x01d67634, 0x01b5a437, 0x00a34c6c, 0x035d604c, 0x00e415aa, 0x01498edd, 0x028d0137, 0x000bdac3}}, Y: Field{[10]uint32{0x02f25dbe, 0x01354e36, 0x02868e38, 0x01d7d88d, 0x03adc722, 0x02d327d9, 0x02cb614e, 0x03da9e5d, 0x01f8438c, 0x003431e4}}},
+ {X: Field{[10]uint32{0x02b665dd, 0x02e47aac, 0x00762c5a, 0x00f0f763, 0x01fc0037, 0x00dd36c8, 0x00b3ed11, 0x0015b5be, 0x01be426f, 0x002febf0}}, Y: Field{[10]uint32{0x010e2a2e, 0x00d84545, 0x02781684, 0x01429d64, 0x006dc400, 0x02841b69, 0x027b0710, 0x0000e9fe, 0x0297a4cf, 0x0027107c}}},
+ {X: Field{[10]uint32{0x01cb4e8c, 0x024c1db3, 0x01be91df, 0x03dc5ca3, 0x03895980, 0x01d675d3, 0x0376f860, 0x0009cdb5, 0x01ca9056, 0x0033dc47}}, Y: Field{[10]uint32{0x034f1cd5, 0x0102a9dc, 0x020124e1, 0x02991fb3, 0x022f91f6, 0x02226c8f, 0x0156defe, 0x0085bf8d, 0x01bfcf25, 0x0014a8de}}},
+ {X: Field{[10]uint32{0x03d1384b, 0x0145b26a, 0x0394e1c3, 0x01d46191, 0x03f516fd, 0x00da43cb, 0x0001ec36, 0x03c6630c, 0x01de27aa, 0x002e6fa5}}, Y: Field{[10]uint32{0x02cb6df9, 0x030489c7, 0x013cd27f, 0x0160aea1, 0x001ff85d, 0x02232e3e, 0x029b6144, 0x03710c0f, 0x0397dca1, 0x001a21d7}}},
+ {X: Field{[10]uint32{0x00e9638e, 0x014ddcca, 0x03331fff, 0x02cf095f, 0x037bec31, 0x01466b80, 0x0042b377, 0x01aa314d, 0x03e6c4d0, 0x003d7c95}}, Y: Field{[10]uint32{0x03e986dd, 0x03c85950, 0x0169e35f, 0x03b2ed00, 0x02c80bea, 0x03483432, 0x012e3ed0, 0x00c84eed, 0x020a48d0, 0x002da879}}},
+ {X: Field{[10]uint32{0x00099ce7, 0x02455799, 0x02bf9df0, 0x00ff2db3, 0x02a5281b, 0x002bdf64, 0x00036033, 0x022a8456, 0x034c17e3, 0x003f0d71}}, Y: Field{[10]uint32{0x0379dae9, 0x00e489f6, 0x0245ac62, 0x02ecbb23, 0x018421fb, 0x0205344c, 0x00c1c589, 0x01a4ed69, 0x004d41e8, 0x001b8be6}}},
+ {X: Field{[10]uint32{0x014384dd, 0x00bf33b5, 0x00aa7473, 0x0287338d, 0x02c1bc18, 0x027feb29, 0x005e5a98, 0x01cd8dd0, 0x020149d9, 0x002b04d7}}, Y: Field{[10]uint32{0x02f021d0, 0x00685882, 0x01cb1c47, 0x014d844f, 0x01d8e545, 0x027e35c2, 0x00cbf630, 0x0129adaf, 0x02cdff95, 0x000f8e2e}}},
+ {X: Field{[10]uint32{0x035f345d, 0x01d3e4a7, 0x01055f36, 0x015f3d30, 0x01bfd8f6, 0x01e46806, 0x02400c4e, 0x03175e00, 0x03fbefb3, 0x00182804}}, Y: Field{[10]uint32{0x00a1bd97, 0x00817cce, 0x035b2711, 0x019151a2, 0x039907e3, 0x028c8004, 0x00a5138c, 0x03f8f8a8, 0x00483582, 0x001f9d8f}}},
+ {X: Field{[10]uint32{0x01a7acb7, 0x03413a86, 0x013a906e, 0x01642fbe, 0x02ceb3a6, 0x029e2664, 0x023d0273, 0x01ea290e, 0x01065d90, 0x00282668}}, Y: Field{[10]uint32{0x03c5a50d, 0x038f5ed6, 0x007db06f, 0x02836c50, 0x02d5cca4, 0x03c326d1, 0x034bb579, 0x008bff00, 0x03fbfe3c, 0x0004dfe7}}},
+ {X: Field{[10]uint32{0x00a792ab, 0x03d3f0e5, 0x0107b09e, 0x005c127c, 0x00c6ed70, 0x00472769, 0x03ea5a8c, 0x018f5861, 0x0286d027, 0x0026e876}}, Y: Field{[10]uint32{0x0263f741, 0x00866759, 0x01650c47, 0x029970b6, 0x008716ae, 0x0005d461, 0x03879089, 0x0167156f, 0x02d8ab54, 0x003c6788}}},
+ {X: Field{[10]uint32{0x0277ada0, 0x01453269, 0x0134f63a, 0x00e24d42, 0x01b5e022, 0x03ca3643, 0x03e93633, 0x0050c05e, 0x001ad30d, 0x000d909c}}, Y: Field{[10]uint32{0x01aba970, 0x00378efc, 0x02c22344, 0x02613d4a, 0x026432fa, 0x02a2ef61, 0x0279f487, 0x02ef1b13, 0x02b9c76b, 0x000bf7e6}}},
+ {X: Field{[10]uint32{0x02941a5b, 0x028e94b5, 0x02c31c2e, 0x003551c4, 0x0106188c, 0x00b261c6, 0x0153012e, 0x01c26363, 0x0058100b, 0x000a7de7}}, Y: Field{[10]uint32{0x022d524b, 0x01a242e6, 0x01bf3721, 0x02dc0b56, 0x02919d5b, 0x021a8a01, 0x00ec42f5, 0x0306ec34, 0x0199eaa6, 0x002fa7b7}}},
+ {X: Field{[10]uint32{0x01ba1bbc, 0x034b11e2, 0x03061e5e, 0x0342b17f, 0x0004b470, 0x00ffacd4, 0x02d5030c, 0x00a13e05, 0x02dfbc35, 0x0038046a}}, Y: Field{[10]uint32{0x00c979e3, 0x0030068f, 0x0270055a, 0x02a4fd2c, 0x03021ec1, 0x00a4ef9d, 0x026ee97f, 0x016468db, 0x03934f2b, 0x00382a63}}},
+ {X: Field{[10]uint32{0x03d78585, 0x025bb813, 0x02dfb3ed, 0x0145dfff, 0x020ee06a, 0x022e4887, 0x02b54b68, 0x014d58df, 0x016b00fe, 0x00297220}}, Y: Field{[10]uint32{0x01ff8e5f, 0x02f96a32, 0x0076fe03, 0x0076bb59, 0x037d6595, 0x029abb54, 0x00977929, 0x02c46912, 0x037b9d63, 0x000fe198}}},
+ {X: Field{[10]uint32{0x03194707, 0x03c5b271, 0x02509abe, 0x038244a8, 0x022e6d49, 0x01c23f39, 0x0207798e, 0x00d42e54, 0x00237e44, 0x000ee54b}}, Y: Field{[10]uint32{0x01d68936, 0x026d676f, 0x02edaff4, 0x00c5af37, 0x02e6ebb6, 0x01e44b99, 0x0141a385, 0x01b22b27, 0x032a419e, 0x003de125}}},
+ {X: Field{[10]uint32{0x0157af04, 0x000bc937, 0x02632725, 0x004667e1, 0x02b75dd6, 0x021e92aa, 0x007982a1, 0x0054be03, 0x02bcd9d8, 0x002365e5}}, Y: Field{[10]uint32{0x03e611bd, 0x026080ad, 0x0092c89c, 0x034a63a6, 0x010317c2, 0x035a2654, 0x015695f2, 0x0078e8a3, 0x007994a3, 0x003ee6c5}}},
+ {X: Field{[10]uint32{0x0202de40, 0x005dc11a, 0x03f51845, 0x01edbbd9, 0x014fde4d, 0x01e2259a, 0x036f689d, 0x01911454, 0x005b2f4e, 0x0025acaf}}, Y: Field{[10]uint32{0x008e89cc, 0x01712842, 0x0178b214, 0x026cd4b0, 0x01914eee, 0x03eff394, 0x039bbf5a, 0x020b6d40, 0x0126f919, 0x00382ddb}}},
+ {X: Field{[10]uint32{0x032e2d79, 0x03bd7490, 0x0103625b, 0x02e68743, 0x034e3ab2, 0x01963be5, 0x028f54d8, 0x0254038a, 0x03109f12, 0x0026fdf3}}, Y: Field{[10]uint32{0x016e8582, 0x0343c652, 0x0020be32, 0x029c66f3, 0x01dd6373, 0x0223af49, 0x038bb521, 0x0071a146, 0x03adf77e, 0x000844f5}}},
+ {X: Field{[10]uint32{0x03d4f1b7, 0x0013cabc, 0x00dab11a, 0x00f58756, 0x00c91f85, 0x0366a861, 0x008c7414, 0x016d7abf, 0x03a72037, 0x000434ff}}, Y: Field{[10]uint32{0x03298c90, 0x0043a8c3, 0x0321beeb, 0x002b505b, 0x02c98d75, 0x03e30fc0, 0x015c7046, 0x03d0f2c8, 0x032a8a96, 0x00307e12}}},
+ {X: Field{[10]uint32{0x003a5eb6, 0x019e7a03, 0x00e92c0e, 0x01fa210c, 0x030e9257, 0x006da1cc, 0x01636920, 0x007342e3, 0x022b6adf, 0x0015b593}}, Y: Field{[10]uint32{0x02f71cc0, 0x0069badf, 0x0382451b, 0x01f89792, 0x025d4b68, 0x01f579a5, 0x00427c25, 0x02108d22, 0x030efbe9, 0x0000004d}}},
+ {X: Field{[10]uint32{0x031528bf, 0x02b70d1c, 0x021c1420, 0x014a95a0, 0x026dbfa3, 0x003091e4, 0x01eddbd2, 0x033c81d7, 0x003e1c83, 0x003fb128}}, Y: Field{[10]uint32{0x01a95509, 0x01f9aa2f, 0x00b2aa78, 0x023bf5ef, 0x031bab78, 0x00e1fa6f, 0x03a0d98f, 0x0390b4ee, 0x02af8670, 0x002854ac}}},
+ {X: Field{[10]uint32{0x03ee92eb, 0x030983cb, 0x03001779, 0x036ca6a1, 0x02a45d11, 0x02256796, 0x02e6d53e, 0x02a6b18e, 0x01177cce, 0x0016029d}}, Y: Field{[10]uint32{0x029e8edd, 0x03d3e719, 0x02a06862, 0x02436304, 0x0086733a, 0x0054dd69, 0x008c4111, 0x03193081, 0x029c3263, 0x001e4ef9}}},
+ {X: Field{[10]uint32{0x02f636f6, 0x036e5d9a, 0x002f535e, 0x034b437b, 0x02991b46, 0x004de866, 0x017431b1, 0x0073af3e, 0x03e57893, 0x0024a1af}}, Y: Field{[10]uint32{0x0329f516, 0x006d6974, 0x015f28cb, 0x020147b7, 0x00c55fce, 0x0014ede0, 0x00b38fb2, 0x036d0a0f, 0x0130e962, 0x001f9dd3}}},
+ {X: Field{[10]uint32{0x00f4890d, 0x008b070a, 0x02041e54, 0x01476982, 0x02803e38, 0x03fbb196, 0x002cf2ee, 0x0099494e, 0x01a99b70, 0x00181b55}}, Y: Field{[10]uint32{0x00eda1a7, 0x02295314, 0x02e5407f, 0x00147d3b, 0x0379ae2c, 0x006e2a85, 0x004a1e03, 0x01904528, 0x026e3c2a, 0x00372256}}},
+ {X: Field{[10]uint32{0x01f917f5, 0x001fda5d, 0x00df66e8, 0x03180139, 0x0011387d, 0x033f23b6, 0x03ef2f1b, 0x03073773, 0x0140833e, 0x00285a83}}, Y: Field{[10]uint32{0x022d6527, 0x0246f620, 0x01388ba9, 0x03658c04, 0x037fd281, 0x02203421, 0x01f32a82, 0x01294c54, 0x013713de, 0x0015235f}}},
+ {X: Field{[10]uint32{0x039f0329, 0x027430d3, 0x0262d9b7, 0x0057b7d6, 0x004a687a, 0x03881c9b, 0x03e3e7aa, 0x01388e68, 0x01d2be57, 0x00001652}}, Y: Field{[10]uint32{0x005288a9, 0x02a44851, 0x0255f337, 0x01de5c8f, 0x02f7f4e7, 0x01203de3, 0x01d94275, 0x02c970c4, 0x025a167a, 0x001c772c}}},
+ {X: Field{[10]uint32{0x0168b240, 0x01f1395e, 0x01536cef, 0x00ce0840, 0x03cd1e23, 0x02707fd3, 0x017b295e, 0x00362927, 0x024ae67b, 0x002107d3}}, Y: Field{[10]uint32{0x031f4161, 0x019c7415, 0x03d5cb56, 0x00de335c, 0x01ccae80, 0x0236f99e, 0x03979f4a, 0x0293b43a, 0x009c265f, 0x0007d587}}},
+ {X: Field{[10]uint32{0x02cb7442, 0x00fb0791, 0x0240ddd4, 0x02b80289, 0x03faf680, 0x0109e23f, 0x03d4b831, 0x03a7ca22, 0x01f8c748, 0x0008988f}}, Y: Field{[10]uint32{0x03a55da3, 0x003804e1, 0x03aaad5e, 0x01ed2530, 0x0317d582, 0x033a7de1, 0x024381d0, 0x02d64be5, 0x000adfcd, 0x000e03bc}}},
+ {X: Field{[10]uint32{0x005185e4, 0x0319523d, 0x02e2dc88, 0x037aced9, 0x02670083, 0x0298285f, 0x007a21e5, 0x00c07ba8, 0x03c36438, 0x00205819}}, Y: Field{[10]uint32{0x01c4cbf7, 0x020abb93, 0x02647f59, 0x03b11409, 0x022eeedc, 0x00dbf0e7, 0x00f4e8e2, 0x03a7c7c1, 0x011b9a95, 0x0016be8e}}},
+ {X: Field{[10]uint32{0x02085c1f, 0x01a49373, 0x02485354, 0x0270b065, 0x017d28af, 0x02a38109, 0x00f6431b, 0x0314c493, 0x01614745, 0x003e3c8d}}, Y: Field{[10]uint32{0x0334750f, 0x0199d4d9, 0x01e7507f, 0x01d6b34a, 0x02bd1012, 0x03f9dad7, 0x008c1b93, 0x006d5695, 0x0067e3b4, 0x00028594}}},
+ {X: Field{[10]uint32{0x03f2f57a, 0x00ee4cd5, 0x03e23775, 0x00f77812, 0x0228bb93, 0x01c214ec, 0x01537d4c, 0x02285709, 0x0184e25b, 0x00084c95}}, Y: Field{[10]uint32{0x02e873e2, 0x02dc9fa1, 0x01f53d20, 0x03c566e8, 0x03f627b5, 0x01fc869b, 0x00b00d51, 0x03d5e83c, 0x00f2078e, 0x000dc232}}},
+ {X: Field{[10]uint32{0x03dfbda3, 0x0335a98f, 0x01c77845, 0x02b2f245, 0x0188b0ba, 0x03feb050, 0x00c24b37, 0x0066cb00, 0x03fcf485, 0x002cbd3d}}, Y: Field{[10]uint32{0x0157702c, 0x0138a31f, 0x03e171c9, 0x00eb356c, 0x03de4972, 0x03d33cf1, 0x03196bb5, 0x03b90cf9, 0x019e6f52, 0x002c81ad}}},
+ {X: Field{[10]uint32{0x027f7265, 0x004bfb3b, 0x02064622, 0x014f6b2b, 0x03fd9c5c, 0x01593e70, 0x0070fd39, 0x00001adf, 0x014f5f42, 0x002d3997}}, Y: Field{[10]uint32{0x016bee0e, 0x01cd41a0, 0x025bffc0, 0x0235a119, 0x0003c75b, 0x020fb0b1, 0x021723ea, 0x00efd3cc, 0x02f2e399, 0x000c1edb}}},
+ {X: Field{[10]uint32{0x023a7240, 0x00d4ac77, 0x00bab8f2, 0x007410fd, 0x03aa58b6, 0x01e63ba4, 0x033968e9, 0x0026b497, 0x01939ac6, 0x0013c411}}, Y: Field{[10]uint32{0x038179ae, 0x00887b9f, 0x024bd186, 0x0224fd2a, 0x03ed9d0a, 0x01569424, 0x01698f5c, 0x0257e960, 0x03bb9883, 0x003b6361}}},
+ {X: Field{[10]uint32{0x014672fa, 0x01f00592, 0x00738d09, 0x02148e22, 0x0390018e, 0x02b5d4a7, 0x026b2157, 0x0304967e, 0x00ffe515, 0x0026d79d}}, Y: Field{[10]uint32{0x01fece15, 0x00f8ebc8, 0x00bc43db, 0x03610786, 0x01fe2df3, 0x00fecee7, 0x01bf70c4, 0x00c3c5ef, 0x026d4c4e, 0x00075561}}},
+ {X: Field{[10]uint32{0x0217e302, 0x0205f21f, 0x02cf510d, 0x030b1da8, 0x0330f8a2, 0x024e1ec6, 0x02968f94, 0x03dc6040, 0x0042ac8c, 0x0001defd}}, Y: Field{[10]uint32{0x032af0e9, 0x039d5bf4, 0x021f26a6, 0x0217dbbb, 0x01e4daaa, 0x01b16fbb, 0x03b1103e, 0x0011ac74, 0x02611d90, 0x002ec3e7}}},
+ {X: Field{[10]uint32{0x00c266a9, 0x034e22de, 0x00fe64bc, 0x01a4c20d, 0x00d2f5d4, 0x005aa662, 0x0028f34b, 0x008125ac, 0x025cd49f, 0x0009f784}}, Y: Field{[10]uint32{0x00b54bfe, 0x00f78957, 0x039b81a4, 0x00b4c8e5, 0x0384cdfc, 0x000e6b4a, 0x019dac24, 0x0364a8ab, 0x02a8483d, 0x003d0f61}}},
+ {X: Field{[10]uint32{0x03e9c116, 0x00262712, 0x01b13225, 0x03c1fe11, 0x017f026c, 0x03bed6a3, 0x03b60ae4, 0x01d78652, 0x0178ae1d, 0x00086fdc}}, Y: Field{[10]uint32{0x01b8d967, 0x03da26bb, 0x0081d434, 0x02455a59, 0x0076b522, 0x034ed63e, 0x03444664, 0x037c5745, 0x02adbc21, 0x001b2aa0}}},
+ {X: Field{[10]uint32{0x0232e234, 0x00916c15, 0x0156a66d, 0x03e6702e, 0x02dc9100, 0x020a2768, 0x0365b7f0, 0x0005a906, 0x025493ee, 0x00000924}}, Y: Field{[10]uint32{0x03c45b3d, 0x01738c41, 0x016f82ed, 0x0119ebb2, 0x00d883ff, 0x013dbe41, 0x004c5367, 0x007e6054, 0x01941cb5, 0x002f28c0}}},
+ {X: Field{[10]uint32{0x01867f76, 0x039d4e1f, 0x016fe230, 0x00966e4c, 0x00ea8e94, 0x02e4dc42, 0x02d89b96, 0x00ad3351, 0x00c1e347, 0x0034fd91}}, Y: Field{[10]uint32{0x018cade5, 0x02cb6943, 0x03b7c597, 0x02b8c5af, 0x0202e536, 0x01489e50, 0x0337ed9d, 0x025cca8e, 0x0203fd62, 0x00246089}}},
+ {X: Field{[10]uint32{0x0325b261, 0x00dfdeb8, 0x02e89d03, 0x01d51894, 0x01915c26, 0x011fd95b, 0x00e52c81, 0x034532a2, 0x034b0e2b, 0x00321187}}, Y: Field{[10]uint32{0x00dcae06, 0x033bb6a7, 0x02b07e38, 0x016aa2a4, 0x01fa3b61, 0x011bbf7d, 0x0232868e, 0x01e66cfd, 0x018197ac, 0x000625c4}}},
+ {X: Field{[10]uint32{0x0395a380, 0x00cd0ab0, 0x0060d913, 0x01aaaa96, 0x01a8c240, 0x01ef5b28, 0x0357e1da, 0x02a4e306, 0x0190be20, 0x002db97d}}, Y: Field{[10]uint32{0x018a04b6, 0x011b579f, 0x02026ff1, 0x0325a9b7, 0x01cf01ee, 0x02d698c1, 0x0186569a, 0x03ab79cb, 0x00f1a2f2, 0x00299ca3}}},
+ {X: Field{[10]uint32{0x01eb5d6c, 0x013b2556, 0x008c0312, 0x0237c524, 0x018b7013, 0x017bf043, 0x014eee4b, 0x0007415b, 0x039d4657, 0x000f4945}}, Y: Field{[10]uint32{0x0395980f, 0x00ca9c62, 0x03c8c3e0, 0x028ab155, 0x023b56f7, 0x00f1625e, 0x03e88e2b, 0x035fb18c, 0x03fe1d61, 0x000562de}}},
+ {X: Field{[10]uint32{0x02f94d99, 0x026965d1, 0x02927984, 0x004646bd, 0x00d85155, 0x03689fc4, 0x0093425b, 0x00526656, 0x0154c717, 0x0002aed7}}, Y: Field{[10]uint32{0x00b9a161, 0x015108b1, 0x03ad04e4, 0x002b64f5, 0x037012ff, 0x03d08270, 0x0106e89f, 0x0237a8db, 0x03cc3be2, 0x001337fa}}},
+ {X: Field{[10]uint32{0x0325c73e, 0x014a41ec, 0x0224c523, 0x0219cfb1, 0x02f12433, 0x038c72ec, 0x00dedaa4, 0x03e70a40, 0x0125115e, 0x00262740}}, Y: Field{[10]uint32{0x00c6c8df, 0x01a081a5, 0x000c8d16, 0x018ca547, 0x00d553df, 0x0109e5d4, 0x01f28ee1, 0x0381c3f0, 0x02e9945d, 0x0034da67}}},
+ {X: Field{[10]uint32{0x02013884, 0x03908c97, 0x02af82d0, 0x004f20a8, 0x015e05db, 0x003b7dc3, 0x028bbe4e, 0x0347fc18, 0x01d429c3, 0x00313171}}, Y: Field{[10]uint32{0x03a97eea, 0x02e9f9fb, 0x023ee0f2, 0x003744cc, 0x03ccee86, 0x002b7a5f, 0x029da677, 0x0222a7f0, 0x00b88251, 0x0030b1db}}},
+ {X: Field{[10]uint32{0x02c0807b, 0x00552789, 0x01edc360, 0x0047b02e, 0x03be9471, 0x000283a0, 0x035080a9, 0x02d97236, 0x0050c623, 0x002198b6}}, Y: Field{[10]uint32{0x01da840b, 0x03c3db8d, 0x01526b3d, 0x01333e32, 0x03f91e72, 0x0246020e, 0x02a72b32, 0x039e93d9, 0x0277b0c9, 0x00029c75}}},
+ {X: Field{[10]uint32{0x01083898, 0x03b6c5c7, 0x02626cbd, 0x031f03aa, 0x00543b73, 0x00eaef51, 0x0309b389, 0x0166fccc, 0x03497e73, 0x00349bfb}}, Y: Field{[10]uint32{0x01851395, 0x00e07e1e, 0x03ad956d, 0x00835236, 0x0004d60c, 0x0141c3e4, 0x0101ea9a, 0x002ce5ad, 0x0209bb09, 0x002b62ec}}},
+ {X: Field{[10]uint32{0x029d8d0f, 0x01e17488, 0x009838f8, 0x03d7c5cf, 0x025b4560, 0x02d00844, 0x0342ff85, 0x02da09f5, 0x00e8c584, 0x0015a6fa}}, Y: Field{[10]uint32{0x001b8559, 0x036bf1f5, 0x0235422e, 0x00cd789b, 0x0247c74a, 0x02692754, 0x015581bf, 0x01f626a3, 0x01a4a826, 0x002c24e0}}},
+ {X: Field{[10]uint32{0x030116d4, 0x0279e534, 0x02255d4a, 0x02ef256a, 0x03842f82, 0x01658363, 0x0167bc6c, 0x021eceb6, 0x00c34d17, 0x00378d2b}}, Y: Field{[10]uint32{0x021816d3, 0x02cf5de8, 0x00505b6c, 0x002fbc26, 0x00e322c4, 0x0220f4fc, 0x00f4d3e0, 0x02d4a95f, 0x001cb2b6, 0x000bf76d}}},
+ {X: Field{[10]uint32{0x01c50b1a, 0x01bea671, 0x003d5544, 0x0101c376, 0x03ece852, 0x01d0a96c, 0x0149b861, 0x02dd89b5, 0x034876db, 0x0011d0c2}}, Y: Field{[10]uint32{0x03200df1, 0x00d5e92b, 0x033e85af, 0x01223771, 0x02b53dd0, 0x0323b1dc, 0x006a0ead, 0x0115cd63, 0x02ba0700, 0x0035d564}}},
+ {X: Field{[10]uint32{0x02e9fe13, 0x002c25f5, 0x00fd7914, 0x03fbdb1a, 0x018c2d8f, 0x01aeeadb, 0x017339b7, 0x01c99ae8, 0x00b5e668, 0x003c7478}}, Y: Field{[10]uint32{0x0324e580, 0x0150f56f, 0x0350bb96, 0x013699f6, 0x03a1d849, 0x008c03e5, 0x01c54837, 0x00ce14d2, 0x0226fc23, 0x00002958}}},
+ {X: Field{[10]uint32{0x00cdbcd0, 0x0056e17e, 0x004c3c05, 0x03fce0fd, 0x006e8132, 0x025a30dd, 0x03d0426e, 0x003784f6, 0x03357614, 0x0008a9bd}}, Y: Field{[10]uint32{0x03d18d1b, 0x038d157e, 0x01e48e69, 0x0276a101, 0x03430a39, 0x003e5690, 0x00dc0044, 0x0038f8d6, 0x01a89027, 0x00277362}}},
+ {X: Field{[10]uint32{0x01a9ada2, 0x019538f8, 0x02867b46, 0x00c30a78, 0x02fc307b, 0x01d10ba3, 0x030c6ea5, 0x0232826e, 0x03280afd, 0x000b7714}}, Y: Field{[10]uint32{0x0087dee4, 0x03b6dcf0, 0x03393b5f, 0x024c665d, 0x0107d077, 0x007fe438, 0x02daa6e3, 0x039ba1ef, 0x010edb84, 0x001ee6ae}}},
+ {X: Field{[10]uint32{0x01da0fca, 0x0078b065, 0x03a9e1a0, 0x015151b7, 0x011fb1c8, 0x0162e719, 0x00a116c0, 0x03d4bf4c, 0x0039a60a, 0x00182dbe}}, Y: Field{[10]uint32{0x00d26c40, 0x01360f88, 0x02bcdca5, 0x00187615, 0x03b0e743, 0x011a763a, 0x039b07b2, 0x02d052f8, 0x029f28cf, 0x00179dfd}}},
+ {X: Field{[10]uint32{0x01dee53c, 0x009a9f43, 0x02776dcd, 0x00a15f25, 0x022a1f1f, 0x0257a90e, 0x0306bfdf, 0x024b9432, 0x019b9b90, 0x0009e430}}, Y: Field{[10]uint32{0x014e7f64, 0x01767cdc, 0x005b6271, 0x01662caf, 0x00de0677, 0x00085c26, 0x0387afaa, 0x01b9e2c8, 0x0120d04e, 0x003f7ba8}}},
+ {X: Field{[10]uint32{0x01113803, 0x03e411bd, 0x037c00d7, 0x028d1453, 0x02db181e, 0x03eb65e0, 0x03576b16, 0x02f22c49, 0x020f9ee8, 0x0039510c}}, Y: Field{[10]uint32{0x00510741, 0x00465cb0, 0x01e0f952, 0x002b89ad, 0x023c7368, 0x03739f0c, 0x01b63dd9, 0x01d1139a, 0x02fb0239, 0x002e4dd8}}},
+ {X: Field{[10]uint32{0x0355313d, 0x026abeb6, 0x00cee39f, 0x0335a6ed, 0x038e2706, 0x02f535d3, 0x00a236cb, 0x00a35618, 0x01ae73e4, 0x001b1fc9}}, Y: Field{[10]uint32{0x00dc9121, 0x012d6072, 0x030916a4, 0x012f577f, 0x018db30c, 0x0163aa48, 0x020864be, 0x026c63a6, 0x03c9e33f, 0x003632e3}}},
+ {X: Field{[10]uint32{0x0393d4e8, 0x03a94ee6, 0x03499121, 0x00e80c3b, 0x03dd9eaa, 0x00e54bc9, 0x01e9c3ef, 0x00351d34, 0x0328ff71, 0x000a2746}}, Y: Field{[10]uint32{0x02880667, 0x02ce52bb, 0x03e38cf2, 0x00c9dfd2, 0x02642859, 0x0116cf2e, 0x00d5cb72, 0x00b75613, 0x000aaebc, 0x003cdabe}}},
+ {X: Field{[10]uint32{0x0110b5aa, 0x028769d6, 0x03476b9f, 0x022b53bd, 0x002a6f4a, 0x0244c306, 0x0287b5d2, 0x0359cc97, 0x0197ac01, 0x003c0aad}}, Y: Field{[10]uint32{0x00e38adb, 0x025902b3, 0x02aaffe8, 0x007d97b2, 0x01d3262d, 0x030d18cf, 0x02c53795, 0x022c4fb3, 0x002aecf2, 0x002ba230}}},
+ {X: Field{[10]uint32{0x00a0413a, 0x03e10637, 0x01a8d2d8, 0x01c13b0a, 0x03c625bb, 0x01b531b4, 0x0332c82d, 0x00c4195d, 0x034f71a7, 0x0002a6a5}}, Y: Field{[10]uint32{0x01b372cd, 0x022496e4, 0x01c2126e, 0x02b33f47, 0x01af1497, 0x0183b479, 0x02f222d8, 0x03a5bf57, 0x0033eed4, 0x0030837d}}},
+ {X: Field{[10]uint32{0x0177496a, 0x0073d023, 0x0071f4a2, 0x03f05941, 0x024cc392, 0x018d2d57, 0x020e9c78, 0x00226466, 0x010d728e, 0x001e1986}}, Y: Field{[10]uint32{0x000cfd22, 0x004a44eb, 0x01b23035, 0x038ea4da, 0x0029d79d, 0x00d68799, 0x028e265c, 0x008bbf2a, 0x00d95404, 0x0006ed7f}}},
+ {X: Field{[10]uint32{0x0333b9ac, 0x004c2920, 0x00773ce0, 0x016a4443, 0x0025cc11, 0x018f6550, 0x00e4e2de, 0x02e3afc0, 0x03e344b3, 0x003229ff}}, Y: Field{[10]uint32{0x02e67b6e, 0x0148ff97, 0x02806dbb, 0x003f6a5f, 0x02ca9128, 0x032a1c91, 0x00141aa5, 0x018ed59d, 0x03e5010c, 0x003287fe}}},
+ {X: Field{[10]uint32{0x039208ba, 0x0259b993, 0x033472f9, 0x00cf533c, 0x019cc1e6, 0x01369a1c, 0x0019e84e, 0x01ab4e0d, 0x026a13ff, 0x0001b2ee}}, Y: Field{[10]uint32{0x02214a88, 0x0228a987, 0x011fcfac, 0x02258a9f, 0x03058598, 0x02711986, 0x0392c34e, 0x024fd13e, 0x01820c78, 0x000d4489}}},
+ {X: Field{[10]uint32{0x019de719, 0x008ff6bf, 0x03e1287b, 0x020526e8, 0x00ffe9aa, 0x031d976b, 0x01450c82, 0x021847ad, 0x01bd691a, 0x00381fe3}}, Y: Field{[10]uint32{0x00fbc509, 0x02c18763, 0x02bc6894, 0x01b96d49, 0x030acb0c, 0x0384631f, 0x01937994, 0x033fba89, 0x01f08e39, 0x0024cb8d}}},
+ {X: Field{[10]uint32{0x02d2c5d4, 0x00ce8b21, 0x029b84b6, 0x00e3f331, 0x0151f3e2, 0x034fcca9, 0x02720d71, 0x02505b37, 0x009832fd, 0x001884da}}, Y: Field{[10]uint32{0x02784e9c, 0x03dc576f, 0x00f68206, 0x01b5a72f, 0x03791f3b, 0x03c79665, 0x016d9684, 0x01f90616, 0x024d6224, 0x0004dfa6}}},
+ {X: Field{[10]uint32{0x03a7b9eb, 0x013a3036, 0x004f2325, 0x02e87a9a, 0x0240a318, 0x01c43021, 0x03eb2faf, 0x019c1894, 0x018862de, 0x0022c041}}, Y: Field{[10]uint32{0x01bfd264, 0x008dc686, 0x0348e2ce, 0x00655bc3, 0x03dbd7e4, 0x01e8cfe7, 0x00bf43cf, 0x01b18333, 0x0062dcc5, 0x00152922}}},
+ {X: Field{[10]uint32{0x00f213d8, 0x01203aa1, 0x031cfeaf, 0x021f70c2, 0x023fb2ed, 0x015af2eb, 0x03bbbace, 0x020d1bfb, 0x008c14af, 0x0004b4e4}}, Y: Field{[10]uint32{0x0267fdfc, 0x0206a626, 0x0024ecb1, 0x01766396, 0x01fef41e, 0x000b1366, 0x02764210, 0x036b2611, 0x01fbdf7d, 0x003f1185}}},
+ {X: Field{[10]uint32{0x01784cd2, 0x018b4580, 0x013dc8da, 0x01bb7df0, 0x02b47428, 0x00a48a64, 0x00e368f6, 0x0331a6ef, 0x01e2a7b8, 0x00086741}}, Y: Field{[10]uint32{0x034c7f5c, 0x00785e28, 0x02de2076, 0x00ec8587, 0x03dd2820, 0x023eeafb, 0x029407de, 0x02c79e3b, 0x03739a7e, 0x0022bb93}}},
+ {X: Field{[10]uint32{0x005de204, 0x00016db6, 0x03074852, 0x004f0e32, 0x0049bbe2, 0x034997ce, 0x011fa23a, 0x03ea47da, 0x01599a76, 0x0035f433}}, Y: Field{[10]uint32{0x011ce2fa, 0x023cdf24, 0x019d1e93, 0x018302c7, 0x03ed1a2d, 0x01c9683b, 0x021330ea, 0x0036b97a, 0x032c6075, 0x003cd255}}},
+ {X: Field{[10]uint32{0x02bb6c6d, 0x03d25e3a, 0x0042d635, 0x02ecb1dc, 0x009f65cf, 0x03ea3f0f, 0x018b73f6, 0x02408e0f, 0x01f5a04c, 0x0028fe9a}}, Y: Field{[10]uint32{0x03cbdea2, 0x007296b0, 0x03e8372c, 0x035d6665, 0x010accb2, 0x00e268bc, 0x0395b18f, 0x02aac52b, 0x01a89994, 0x0031e628}}},
+ {X: Field{[10]uint32{0x03b2d1cd, 0x0322bec4, 0x00e92cc5, 0x01307414, 0x00854073, 0x0176505c, 0x0072e71e, 0x0115f5e6, 0x001a825c, 0x00240ba2}}, Y: Field{[10]uint32{0x01a62d43, 0x020b0c2f, 0x01e338ac, 0x001f33f2, 0x02de099f, 0x018be091, 0x0163cccf, 0x01bee444, 0x013263bf, 0x003fc1d4}}},
+ {X: Field{[10]uint32{0x0329c144, 0x03318381, 0x03505d34, 0x01693e32, 0x036923ea, 0x03c64cae, 0x021aa2b3, 0x00155b4d, 0x01f24c47, 0x000c97c6}}, Y: Field{[10]uint32{0x0294bec4, 0x01f11ae7, 0x021782a5, 0x03058665, 0x0173e3e9, 0x006fe3e7, 0x001bf358, 0x028337e6, 0x02b829a6, 0x003d2a6b}}},
+ {X: Field{[10]uint32{0x021edd4b, 0x02c1f1be, 0x0024763b, 0x0117ac1e, 0x00bcdf72, 0x033ffeb3, 0x025f8602, 0x033d854f, 0x03b441a6, 0x001a653c}}, Y: Field{[10]uint32{0x0074c174, 0x02c45806, 0x03bd927d, 0x02ae1fdc, 0x02198ee4, 0x00fc1454, 0x00479d8d, 0x02a25ca7, 0x01ea892d, 0x003b0bf1}}},
+ {X: Field{[10]uint32{0x02cb2d8c, 0x0284149a, 0x0137f3b7, 0x028ad6eb, 0x005663c5, 0x02307daa, 0x011bd2f0, 0x01e5bff5, 0x00324e8f, 0x00086156}}, Y: Field{[10]uint32{0x01897c2d, 0x03475da8, 0x00cf4b15, 0x0255759f, 0x033b93c4, 0x000d0efd, 0x0290d44b, 0x0300f265, 0x02cb33ce, 0x0039df3b}}},
+ {X: Field{[10]uint32{0x0191b099, 0x01d33be7, 0x021b0a56, 0x00fd21ea, 0x01319693, 0x0391dcad, 0x027c312a, 0x02a00695, 0x023b32f2, 0x0024176a}}, Y: Field{[10]uint32{0x01cf369f, 0x0161c710, 0x021d6b69, 0x010d6cb2, 0x0382b648, 0x019ff705, 0x0291d5d7, 0x005c644d, 0x01c36d27, 0x002fd8a1}}},
+ {X: Field{[10]uint32{0x025339f1, 0x02547bad, 0x017f5b39, 0x01d8c54e, 0x031b6853, 0x036f839f, 0x03e51613, 0x001491d7, 0x038434b6, 0x0037df3e}}, Y: Field{[10]uint32{0x03558243, 0x00333d37, 0x00d2ee58, 0x00f1be91, 0x010d1beb, 0x03659475, 0x0153393d, 0x039154b6, 0x017e1419, 0x0039c973}}},
+ {X: Field{[10]uint32{0x01732491, 0x016f2d39, 0x024a5d8c, 0x01d8a33d, 0x00385cb2, 0x03297ae0, 0x0096b821, 0x00ae7a8f, 0x02fc8884, 0x0039fee7}}, Y: Field{[10]uint32{0x00f22331, 0x00a054de, 0x03d5f5e9, 0x00a3b76a, 0x011353c1, 0x019d6a5f, 0x03b83900, 0x0380dc98, 0x02bca6f9, 0x0032399d}}},
+ {X: Field{[10]uint32{0x0124285b, 0x008da773, 0x012fecc1, 0x00575c78, 0x01bad797, 0x029103d6, 0x02ac0a3f, 0x02885879, 0x030c272b, 0x003468d7}}, Y: Field{[10]uint32{0x019edb3c, 0x02e526b2, 0x02ec1806, 0x02a25840, 0x0049dc41, 0x02c55900, 0x02f2f21b, 0x01c5b6e7, 0x00f7d475, 0x0007d6dc}}},
+ {X: Field{[10]uint32{0x027b079f, 0x0043694a, 0x032e5551, 0x00a41164, 0x024f4204, 0x01eb98a7, 0x03da74ac, 0x03753385, 0x02e85f2d, 0x00019ae9}}, Y: Field{[10]uint32{0x03a80402, 0x002279c1, 0x03733263, 0x0010d921, 0x02219679, 0x026f7fef, 0x01a4f357, 0x03bef3d3, 0x005beb8e, 0x00363aeb}}},
+ {X: Field{[10]uint32{0x00f3a749, 0x03ce682d, 0x01e487b1, 0x008875ee, 0x00c36e7c, 0x01d7e714, 0x03cf8065, 0x00414ad2, 0x029a2688, 0x0001bdfd}}, Y: Field{[10]uint32{0x0331a4c4, 0x00d6a99c, 0x0202b892, 0x016096ed, 0x00bc1835, 0x03058394, 0x00352b9c, 0x02e22ead, 0x03840d89, 0x0004741a}}},
+ {X: Field{[10]uint32{0x026c0abd, 0x00308724, 0x01b90eda, 0x03fa132b, 0x0141c23a, 0x017006b1, 0x01699067, 0x0140ec98, 0x016f571d, 0x0012f85b}}, Y: Field{[10]uint32{0x02c1d06d, 0x013f8ca7, 0x011bd9a0, 0x023f2c8c, 0x01d9ede7, 0x034cffb5, 0x02116c5d, 0x03cb7586, 0x02deffa1, 0x00004107}}},
+ {X: Field{[10]uint32{0x01e75886, 0x03c142c0, 0x029bd33b, 0x00d43b95, 0x03191603, 0x005a6315, 0x00abbc79, 0x02b2d9d8, 0x005db55e, 0x0022be23}}, Y: Field{[10]uint32{0x01d9a12c, 0x02fd65af, 0x02beaf61, 0x02d74af9, 0x00ca203e, 0x025801f0, 0x02eeb245, 0x02d2c4a6, 0x010b6bf2, 0x0013d6e1}}},
+ {X: Field{[10]uint32{0x00ef8672, 0x02d82213, 0x035072e2, 0x00602339, 0x01edb695, 0x00e457a0, 0x03648491, 0x03ae3869, 0x037a3316, 0x002b4cf9}}, Y: Field{[10]uint32{0x037ccd90, 0x0297932b, 0x0313f16c, 0x0227c563, 0x016c4f4f, 0x025431d7, 0x01157fd7, 0x022f6769, 0x01e24bc8, 0x003e8058}}},
+ {X: Field{[10]uint32{0x01d8c2bc, 0x037b6cf6, 0x01ba069e, 0x007d808b, 0x01cdb51e, 0x0070d121, 0x0196ee9b, 0x02bf9e47, 0x01ef7620, 0x001112a0}}, Y: Field{[10]uint32{0x0351e2fd, 0x006bc465, 0x03b52e64, 0x00a47beb, 0x02bd2683, 0x02ff366e, 0x02811c7f, 0x013af0bb, 0x03d9a49d, 0x002a2005}}},
+ {X: Field{[10]uint32{0x02aa5c51, 0x002d98f3, 0x00aa51d1, 0x034492b2, 0x0377af3a, 0x01940e8b, 0x0387e9d2, 0x03e2d981, 0x03a39530, 0x0016c781}}, Y: Field{[10]uint32{0x037810b9, 0x00311c3d, 0x0013b450, 0x0041eef4, 0x02e87cb5, 0x021aa01a, 0x031e59b6, 0x0383ec9c, 0x00d38d55, 0x003f3d30}}},
+ {X: Field{[10]uint32{0x03174309, 0x00cfb45c, 0x02844ba5, 0x01f65897, 0x01b1d42e, 0x00c5f99f, 0x034c4033, 0x01aa195e, 0x00170e98, 0x00000fa3}}, Y: Field{[10]uint32{0x00cd6caa, 0x03d54865, 0x03e5e696, 0x03d70a5b, 0x029db702, 0x00f1fb83, 0x020f3966, 0x028d743a, 0x009ff4f5, 0x0037baf9}}},
+ {X: Field{[10]uint32{0x00d112c1, 0x03a0f601, 0x017e5746, 0x0241fc75, 0x036432af, 0x011ad4a2, 0x024c078b, 0x032c6674, 0x02ee5e9b, 0x0028425b}}, Y: Field{[10]uint32{0x02e7c6d4, 0x0229db74, 0x02fc13f0, 0x003f87a4, 0x0097eace, 0x033553cf, 0x02b3019a, 0x00db3595, 0x00fe6994, 0x002f44f9}}},
+ {X: Field{[10]uint32{0x0265f2f0, 0x001c6dd9, 0x0093898c, 0x024d37b4, 0x00368610, 0x0269d7ba, 0x000a6d89, 0x0379d76d, 0x01794218, 0x00151d61}}, Y: Field{[10]uint32{0x01174548, 0x0184fd86, 0x021b5c6f, 0x02fca71d, 0x026bcde4, 0x0376a995, 0x00dcd94f, 0x031a25c3, 0x024213e1, 0x000ef555}}},
+ {X: Field{[10]uint32{0x01456057, 0x02f1a511, 0x02df7f7b, 0x02417ba6, 0x02a44002, 0x013dd161, 0x0356604f, 0x02f112ff, 0x0192fcb4, 0x0013acca}}, Y: Field{[10]uint32{0x0245c3d4, 0x0185502e, 0x03609216, 0x02319b6d, 0x00e0cc9d, 0x0014400c, 0x0277c673, 0x027c06b6, 0x00f26834, 0x00215daa}}},
+ {X: Field{[10]uint32{0x0261a22d, 0x016d322d, 0x01ea269c, 0x008fe4b9, 0x000f2917, 0x026429f0, 0x01428e75, 0x0124cf1b, 0x01efd2eb, 0x000d42cb}}, Y: Field{[10]uint32{0x00de6943, 0x003ec964, 0x0159e354, 0x02a04c83, 0x0370f807, 0x0203bd6f, 0x02126d83, 0x03cd2fcd, 0x0300add9, 0x00186b36}}},
+ {X: Field{[10]uint32{0x01f360ff, 0x03f6611d, 0x03017d7a, 0x01ac0c1a, 0x032da3c9, 0x02b284a6, 0x037341ee, 0x0220654c, 0x00bece7f, 0x002453aa}}, Y: Field{[10]uint32{0x01ac7b53, 0x01ca98e1, 0x01213d32, 0x02927f22, 0x03582948, 0x022c90b6, 0x03b563ce, 0x02029d20, 0x0148ebef, 0x003caa95}}},
+ {X: Field{[10]uint32{0x03dc0fef, 0x01891ae0, 0x01a33459, 0x03e714f8, 0x03ad6d44, 0x01c38fd7, 0x02baa6bd, 0x0097d2ea, 0x021738da, 0x0003d95b}}, Y: Field{[10]uint32{0x01fd83e5, 0x0076b256, 0x03ef54c3, 0x012c8103, 0x00c742ce, 0x00dcf0b1, 0x025f53cf, 0x024a1c29, 0x00fc3463, 0x00102a2d}}},
+ {X: Field{[10]uint32{0x033b618f, 0x0399dc64, 0x00182ce3, 0x008e8849, 0x02d77e10, 0x0036a99b, 0x00310bbc, 0x00f39519, 0x02f0334e, 0x00291f22}}, Y: Field{[10]uint32{0x000c7f08, 0x0254a503, 0x02c4b522, 0x00ba1c57, 0x0341ec5b, 0x0285c4fa, 0x031694ff, 0x01f1d579, 0x0354056d, 0x001b6f32}}},
+ {X: Field{[10]uint32{0x00753ca9, 0x01bba74c, 0x02688676, 0x00c47ab3, 0x003b5fde, 0x0085e357, 0x007947f8, 0x0012997a, 0x00625e1d, 0x0002a28a}}, Y: Field{[10]uint32{0x02fc2169, 0x03cbc78b, 0x023ba94d, 0x01d75ce4, 0x021feb3f, 0x03e8426f, 0x039e672e, 0x02813429, 0x02f7483a, 0x003e0ab5}}},
+ {X: Field{[10]uint32{0x01c017d0, 0x00fde88c, 0x008371e8, 0x002283d1, 0x034fe062, 0x03f501fb, 0x02903cb3, 0x02e15789, 0x014e5f8e, 0x002807fd}}, Y: Field{[10]uint32{0x032edf92, 0x016cbb83, 0x03ee2f0e, 0x00009d98, 0x009fd59b, 0x01f64945, 0x0018ec07, 0x0069a213, 0x02f9c52f, 0x000891f1}}},
+ {X: Field{[10]uint32{0x0142aed1, 0x01f21d63, 0x0072ff2d, 0x038c47d8, 0x0061ef4f, 0x02668c83, 0x02adbd60, 0x03226db2, 0x003a626a, 0x0039ec27}}, Y: Field{[10]uint32{0x00609fdc, 0x02bbf34e, 0x005e2c0f, 0x0285b667, 0x0337c3c5, 0x000f3d68, 0x01c64ace, 0x0143a639, 0x02d36a7b, 0x0023b665}}},
+ {X: Field{[10]uint32{0x023ff2fd, 0x016916e1, 0x037173f3, 0x025cdcf2, 0x0196307c, 0x01816410, 0x009fb522, 0x00a81b2a, 0x0253336c, 0x000eeea7}}, Y: Field{[10]uint32{0x03d24799, 0x03a0d049, 0x0160d52a, 0x008dba32, 0x00419d51, 0x0153a6e3, 0x00ccaeae, 0x03f05bd6, 0x01093faf, 0x003cbfa4}}},
+ {X: Field{[10]uint32{0x000630a3, 0x0017e70b, 0x00acdaf9, 0x0086d890, 0x0311950c, 0x010cbd4c, 0x01224000, 0x0005d088, 0x02b6dc66, 0x003d8748}}, Y: Field{[10]uint32{0x009ffb05, 0x006915c1, 0x02796142, 0x01405778, 0x00692bb2, 0x0337eac6, 0x02b7e865, 0x00b3ce4f, 0x035a1a66, 0x000181a3}}},
+ {X: Field{[10]uint32{0x00a80962, 0x026f9c3a, 0x02d13718, 0x037009c0, 0x01891c45, 0x03cf91c8, 0x0038dcb8, 0x0288b62f, 0x00556b1a, 0x00296d82}}, Y: Field{[10]uint32{0x00b1ddb6, 0x02640cbf, 0x0234a071, 0x01a5f357, 0x023a9b3a, 0x01b060ab, 0x0220b99e, 0x0017287f, 0x03d2d5e3, 0x003ddfe5}}},
+ {X: Field{[10]uint32{0x01e1a259, 0x02a97321, 0x02ac1be3, 0x006ca008, 0x02f03030, 0x039bd64b, 0x00ae950b, 0x00958b87, 0x02f900eb, 0x001c30ea}}, Y: Field{[10]uint32{0x00587583, 0x0085ee53, 0x01deb61f, 0x02fa85eb, 0x033f91f2, 0x004eabbd, 0x00626f72, 0x034c6739, 0x03cd31a8, 0x000fcb2d}}},
+ {X: Field{[10]uint32{0x0106e530, 0x01744da3, 0x03d93b97, 0x02bf0cf9, 0x01a67952, 0x010f9e44, 0x01fcc4d4, 0x0178dca3, 0x01d1a875, 0x000775c3}}, Y: Field{[10]uint32{0x0190d084, 0x0077f35c, 0x020c4014, 0x01f6dafb, 0x01240e67, 0x03b31cf7, 0x00400742, 0x0253bd1c, 0x01741f58, 0x0011a13e}}},
+ {X: Field{[10]uint32{0x0083fcf9, 0x020331a4, 0x035462b1, 0x00f5195c, 0x02f5d37c, 0x034372a0, 0x016bb7f2, 0x03f52f63, 0x018d7aac, 0x0035135a}}, Y: Field{[10]uint32{0x007dc407, 0x026fafc2, 0x03e47281, 0x0104dd02, 0x03c0c940, 0x031056f5, 0x0067b0f4, 0x00a59643, 0x003d0423, 0x00286360}}},
+ {X: Field{[10]uint32{0x01b34ca5, 0x02700414, 0x019f9410, 0x00418553, 0x0362730a, 0x02c6f0ee, 0x0122ae74, 0x015d0a15, 0x02e13045, 0x00211626}}, Y: Field{[10]uint32{0x03b3606c, 0x03d88d4d, 0x0390349b, 0x02e8f78e, 0x03de14fc, 0x00be9c1f, 0x02ffce9b, 0x02bd26fd, 0x0208f2a9, 0x002e5e7e}}},
+ {X: Field{[10]uint32{0x03724627, 0x034bc122, 0x006f5469, 0x00fff413, 0x01bc84e7, 0x03fc5707, 0x0131c1ef, 0x02265afb, 0x03df8911, 0x000f7b23}}, Y: Field{[10]uint32{0x03eb2c8c, 0x0389c406, 0x0310c16a, 0x028aff50, 0x03daccca, 0x013fe237, 0x011a555f, 0x016f3f6f, 0x03c1e20b, 0x002c50fc}}},
+ {X: Field{[10]uint32{0x00cac160, 0x03d0dd02, 0x0012a2f0, 0x037905ed, 0x02023a8d, 0x00339197, 0x01bfcc47, 0x0367180e, 0x03c5519d, 0x000d9e97}}, Y: Field{[10]uint32{0x03f021a6, 0x03eb1729, 0x03cc2dba, 0x00825ea1, 0x03faa648, 0x00f83e3c, 0x011b136a, 0x03f2438a, 0x01df2c6b, 0x0016e3ef}}},
+ {X: Field{[10]uint32{0x0063efc1, 0x00c95b25, 0x02cce5fa, 0x03f521ee, 0x031e7c2e, 0x003623a4, 0x03ab6b32, 0x0181bd82, 0x007e7777, 0x0022a956}}, Y: Field{[10]uint32{0x03f091dc, 0x00e7f474, 0x00c1888a, 0x00d11278, 0x0150beeb, 0x02b548a2, 0x02921eca, 0x0284cb05, 0x036c98bf, 0x002b16e9}}},
+ {X: Field{[10]uint32{0x0084cae0, 0x01afcf03, 0x038c6a5d, 0x0107b299, 0x02af3aa4, 0x02c34471, 0x00fd9e60, 0x00cba80c, 0x01910ea6, 0x001e7000}}, Y: Field{[10]uint32{0x01dfb899, 0x034b608e, 0x01e85472, 0x037caf46, 0x01ae9c8b, 0x03d0070b, 0x000b659b, 0x02a504eb, 0x00703b19, 0x000fe550}}},
+ {X: Field{[10]uint32{0x03a04fc8, 0x03e2fe00, 0x018b3d4e, 0x0292b692, 0x01e858aa, 0x01920c95, 0x01951a06, 0x027a5737, 0x032221a5, 0x00321379}}, Y: Field{[10]uint32{0x02f0a0b9, 0x02f11452, 0x01102158, 0x03483d8e, 0x010548fc, 0x01888112, 0x0011109a, 0x02fca37e, 0x0158915a, 0x001cf37a}}},
+ {X: Field{[10]uint32{0x01a9d6d5, 0x01ae24ad, 0x00c218cb, 0x0373f9a5, 0x01fedf74, 0x028f164d, 0x023822b2, 0x01f58781, 0x0050c632, 0x0022c6e3}}, Y: Field{[10]uint32{0x00fe168b, 0x01832c00, 0x037f841f, 0x01ad6d90, 0x00c03676, 0x03fd0c53, 0x03dfc479, 0x0190d7d1, 0x01529f15, 0x0015ef62}}},
+ {X: Field{[10]uint32{0x00702c52, 0x00ff5492, 0x03650e78, 0x039dc675, 0x0033a31c, 0x0107e061, 0x0117c4a3, 0x00be6148, 0x008a3ae8, 0x002d17bb}}, Y: Field{[10]uint32{0x020a1c90, 0x0231b867, 0x0046dc98, 0x02167ba4, 0x03254117, 0x0280525e, 0x005d0fce, 0x01ad3c24, 0x035cc708, 0x0033555a}}},
+ {X: Field{[10]uint32{0x00757319, 0x001de020, 0x01cd2c57, 0x004e196a, 0x0031ab70, 0x031632f7, 0x034871ea, 0x025b1d9e, 0x00ddd930, 0x0028b577}}, Y: Field{[10]uint32{0x03064547, 0x0351ab92, 0x001a60a6, 0x02a2bd8b, 0x03227ae8, 0x00782d4d, 0x02b5978b, 0x02c8fa79, 0x02b4b130, 0x001ea901}}},
+ {X: Field{[10]uint32{0x01ed2b2d, 0x0053066e, 0x025db3d3, 0x0064486b, 0x01e97f6e, 0x01426fb0, 0x0164ea83, 0x0165429d, 0x02b4e5d3, 0x001c480d}}, Y: Field{[10]uint32{0x00a93616, 0x01d0539a, 0x0172a21d, 0x00cbe725, 0x00e3a322, 0x0094d0b2, 0x0298d2f4, 0x0183a811, 0x03f38d05, 0x0009618b}}},
+ {X: Field{[10]uint32{0x00bfb392, 0x00ad54bc, 0x02df0756, 0x038c1e56, 0x03dca402, 0x026bf25c, 0x02e58c87, 0x0322ea50, 0x00f7d70f, 0x0016f3bc}}, Y: Field{[10]uint32{0x03af1919, 0x032c2242, 0x0247454c, 0x0391cc95, 0x011a444c, 0x00ff15be, 0x03b0e12c, 0x016ff4fb, 0x024cecb4, 0x001f3216}}},
+ {X: Field{[10]uint32{0x01741ada, 0x0076164e, 0x02b0eb5c, 0x00519d9e, 0x03b9e5f2, 0x03d713a6, 0x03ab9f0a, 0x02286c2b, 0x002f9d50, 0x0037355c}}, Y: Field{[10]uint32{0x01cc1fa1, 0x009463b7, 0x0335f9eb, 0x0161bc31, 0x013369d5, 0x00949940, 0x00d40a4a, 0x038e9f73, 0x02d7ea13, 0x003dfaba}}},
+ {X: Field{[10]uint32{0x02cb3d9f, 0x02e46ef9, 0x02ec9784, 0x02e4974f, 0x02363bfc, 0x02e2dc5d, 0x01c3ade1, 0x018a7424, 0x00d0004f, 0x000b3a8c}}, Y: Field{[10]uint32{0x01c42624, 0x011825a8, 0x036e3444, 0x0152ce6c, 0x03c48ba4, 0x00f778d2, 0x009a76aa, 0x02c5c73f, 0x03ada42a, 0x002a0fd2}}},
+ {X: Field{[10]uint32{0x01c32f8d, 0x01b7f1e8, 0x035d009c, 0x035ba540, 0x01150e54, 0x029064d3, 0x015fcb13, 0x00647b7c, 0x01f2767b, 0x002162d0}}, Y: Field{[10]uint32{0x03de8dd7, 0x03b3e0a7, 0x01358e5c, 0x0277d975, 0x00b34d6e, 0x01200a8a, 0x00a21720, 0x0257d51e, 0x017d76dc, 0x0020602e}}},
+ {X: Field{[10]uint32{0x030e81e6, 0x03f40830, 0x01294245, 0x01a034bc, 0x033eb9a6, 0x03d06004, 0x01234e5f, 0x0166e1b4, 0x0002bee3, 0x00357260}}, Y: Field{[10]uint32{0x033781de, 0x02bad256, 0x0376d921, 0x03a47640, 0x03a0b6bc, 0x00bf21ed, 0x01a2e4ee, 0x031e5419, 0x01a4cd2b, 0x0013948b}}},
+ {X: Field{[10]uint32{0x0120c1ed, 0x01b0e865, 0x00fb7d4d, 0x01db6a2b, 0x0134002d, 0x00b792df, 0x024ddf58, 0x03aa7dc6, 0x01622f9c, 0x0003afe4}}, Y: Field{[10]uint32{0x02d4e251, 0x02074616, 0x0136ecd4, 0x0126394d, 0x027e43d0, 0x00631d6a, 0x03fb4833, 0x02073638, 0x03223e18, 0x003bb9d4}}},
+ {X: Field{[10]uint32{0x0261db4d, 0x01bdb202, 0x01ff6b40, 0x0013cd9a, 0x000acc45, 0x03dd2f9a, 0x002e111a, 0x015bcc23, 0x02a9d087, 0x0000e1fd}}, Y: Field{[10]uint32{0x03cdd28a, 0x02d54ba1, 0x00c4a59d, 0x0288dc89, 0x01ed0bbb, 0x033d73d3, 0x01f96d5d, 0x017e449b, 0x01e3ea1d, 0x000a2165}}},
+ {X: Field{[10]uint32{0x03e46714, 0x01d255b7, 0x020df255, 0x03ba7fbc, 0x009aa409, 0x01648051, 0x03a2d70e, 0x0354b8e0, 0x01c0989b, 0x00225ffc}}, Y: Field{[10]uint32{0x01adc9d1, 0x03b3e942, 0x016c6bca, 0x01a4db7f, 0x02de0940, 0x0112a1ce, 0x0295a006, 0x0194a7d3, 0x00c9308c, 0x000f3ef0}}},
+ {X: Field{[10]uint32{0x01a395af, 0x01fbc6ad, 0x03eefb57, 0x00ddbe13, 0x03bbcbb3, 0x00b62c93, 0x02bbf21e, 0x02131e2d, 0x00a68e04, 0x000c956a}}, Y: Field{[10]uint32{0x0112aeb3, 0x0089664a, 0x0081fd81, 0x0355107a, 0x0379ef3f, 0x00b5d224, 0x014a426d, 0x012e139b, 0x0002f920, 0x0005ecf0}}},
+ {X: Field{[10]uint32{0x01c55599, 0x023be7f7, 0x01b7e277, 0x00079c1c, 0x011fbca1, 0x007b6889, 0x003eeafb, 0x038ec0e5, 0x0152d4d9, 0x000b292a}}, Y: Field{[10]uint32{0x03891e00, 0x00b858c8, 0x016a0989, 0x032d8f28, 0x03e98631, 0x01d231fa, 0x01a2c044, 0x030637e0, 0x02ccdf02, 0x002feb2e}}},
+ {X: Field{[10]uint32{0x024383b2, 0x0017dab7, 0x03d73105, 0x03e22936, 0x02046ee5, 0x006dbb2d, 0x03b0410e, 0x00cd2b51, 0x009c478c, 0x0030fa0a}}, Y: Field{[10]uint32{0x02f0f55f, 0x00012cf5, 0x0391fde4, 0x03b89c9e, 0x0000229b, 0x02d3b488, 0x03f4309c, 0x0048e191, 0x02ceb043, 0x0015e4b0}}},
+ {X: Field{[10]uint32{0x01119049, 0x02f49f05, 0x019d5f87, 0x02376e4b, 0x0086fb96, 0x01fe6108, 0x03ad63c6, 0x024be619, 0x0360a862, 0x000aef7b}}, Y: Field{[10]uint32{0x00a85362, 0x0219d598, 0x03538802, 0x018953c0, 0x00e75dac, 0x03503534, 0x0099d193, 0x0311e4a4, 0x03623536, 0x003d292d}}},
+ {X: Field{[10]uint32{0x032496a9, 0x00cf2e7f, 0x03d2ce03, 0x01ef88ab, 0x01fe3ee4, 0x005292f8, 0x0014ef07, 0x02b2cc60, 0x00909e7d, 0x001de9b8}}, Y: Field{[10]uint32{0x0251065f, 0x01746214, 0x00384381, 0x009f858f, 0x0234461e, 0x00658524, 0x01915d18, 0x0241b347, 0x0075b1a9, 0x00153c39}}},
+ {X: Field{[10]uint32{0x00f40ff0, 0x00e79141, 0x00b1145c, 0x0391e4d4, 0x02ea94d5, 0x01e7d935, 0x034f4139, 0x0249537a, 0x016b7871, 0x0034656e}}, Y: Field{[10]uint32{0x00e0636c, 0x01fdca70, 0x0069bd99, 0x02b696bd, 0x00b8245c, 0x002936e2, 0x032d4b2b, 0x0211ba51, 0x0040613c, 0x0008e291}}},
+ {X: Field{[10]uint32{0x00815b1f, 0x029866c1, 0x01bd8113, 0x00552369, 0x00ad024d, 0x00213d05, 0x03b0f3c6, 0x029975d6, 0x0336208a, 0x0030e6a8}}, Y: Field{[10]uint32{0x0126fe5a, 0x00cc54c4, 0x012004b2, 0x014db612, 0x02455a00, 0x0395cfb9, 0x0083b226, 0x00775052, 0x02d63274, 0x001eaac7}}},
+ {X: Field{[10]uint32{0x01e31f30, 0x01dd933f, 0x028d2296, 0x01c11362, 0x01d6661c, 0x00932ecc, 0x020bd270, 0x020b6f2f, 0x023d0baf, 0x003a0328}}, Y: Field{[10]uint32{0x0197451b, 0x0211d129, 0x017138c4, 0x01091a18, 0x01f67e81, 0x03ae0f97, 0x03c583a5, 0x01e1e2f2, 0x01d47318, 0x002854f4}}},
+ {X: Field{[10]uint32{0x0272ef80, 0x032dec0b, 0x00120711, 0x017f82bb, 0x01f3e850, 0x0356569f, 0x016723a4, 0x0308e83e, 0x0265a5a9, 0x000e56de}}, Y: Field{[10]uint32{0x009bf990, 0x026979f9, 0x034b6222, 0x000ca64b, 0x034f88cf, 0x02895950, 0x02d37b19, 0x01b8e4da, 0x01d54747, 0x00164083}}},
+ {X: Field{[10]uint32{0x010b495c, 0x03f688a4, 0x02577644, 0x0117ffbc, 0x02e8b495, 0x0144a976, 0x017e2cd9, 0x008f49ed, 0x00dbb83e, 0x0019e9fa}}, Y: Field{[10]uint32{0x00965735, 0x014c0cba, 0x01f15a87, 0x03b9a338, 0x0041fd34, 0x03a02d04, 0x00a89f78, 0x02e7d040, 0x019d3791, 0x001f0052}}},
+ {X: Field{[10]uint32{0x01c0c7e7, 0x02cecfdb, 0x03892ac9, 0x00218508, 0x03ecfb4b, 0x032f8b38, 0x01863952, 0x039ec21a, 0x027d76d2, 0x003100e3}}, Y: Field{[10]uint32{0x01e92f3b, 0x0080d459, 0x0229e72f, 0x002d9909, 0x00012946, 0x030d3f23, 0x02a27bab, 0x026df4c9, 0x030d9efc, 0x00186ece}}},
+ {X: Field{[10]uint32{0x03a25e5a, 0x0095a630, 0x019a88a5, 0x00201c28, 0x01b9bdda, 0x03f0fd5d, 0x029c52f5, 0x034ebbb9, 0x01e226a4, 0x001dc169}}, Y: Field{[10]uint32{0x03c7a1b7, 0x020f92d4, 0x022073a8, 0x00088901, 0x0244be9e, 0x0071aa60, 0x0026973d, 0x001be309, 0x016cf019, 0x00116382}}},
+ {X: Field{[10]uint32{0x00ff48d0, 0x028d1d4d, 0x028759e4, 0x03c6d192, 0x0268a5f1, 0x007f80e5, 0x02994fa0, 0x02d7985a, 0x03c35958, 0x003cf3a2}}, Y: Field{[10]uint32{0x010058fe, 0x02891cf8, 0x00d6b222, 0x02821d40, 0x038dc92a, 0x01ebb18f, 0x008c441f, 0x035e2d9f, 0x0197be3a, 0x00270687}}},
+ {X: Field{[10]uint32{0x00a4e0d0, 0x0279fccf, 0x005d7664, 0x02b6bd5a, 0x003ebb94, 0x00075be2, 0x029d764e, 0x033af6e6, 0x0120de69, 0x002417b0}}, Y: Field{[10]uint32{0x00a9d554, 0x039127a7, 0x030e93a8, 0x004b5e6a, 0x024d42ce, 0x01470032, 0x00a75d0e, 0x02a8e9dd, 0x02993974, 0x0024985f}}},
+ {X: Field{[10]uint32{0x0321eeed, 0x02b69a26, 0x006b4f15, 0x011ff6c9, 0x0127d484, 0x01993078, 0x02d0edc3, 0x02164a2e, 0x024da357, 0x002c6dd2}}, Y: Field{[10]uint32{0x013206d9, 0x02c9baa7, 0x021328f5, 0x0240cf13, 0x00c14e4d, 0x00c8b134, 0x00e38231, 0x027a3ef3, 0x01c7b84e, 0x00310d4e}}},
+ {X: Field{[10]uint32{0x03d8bcf1, 0x03ee58c0, 0x02025bd5, 0x01344b4f, 0x038dcf81, 0x0310b6ad, 0x03a2a471, 0x00b51acb, 0x0165c72f, 0x00035100}}, Y: Field{[10]uint32{0x0343ae3e, 0x001c87d4, 0x0022aca3, 0x01247601, 0x03fabab7, 0x031da0f7, 0x03ad9cff, 0x017eb3a5, 0x0150261f, 0x00382192}}},
+ {X: Field{[10]uint32{0x0053b303, 0x00fe4e54, 0x02ed1de0, 0x02bd9602, 0x03fe08d5, 0x0355ce95, 0x03910be6, 0x00669fde, 0x004f722c, 0x003fd493}}, Y: Field{[10]uint32{0x0353bf0d, 0x02ea986d, 0x0391398f, 0x01a18bd7, 0x035b9f13, 0x00c80cd6, 0x0262deab, 0x02aa2ece, 0x014e5b25, 0x0003f52b}}},
+ {X: Field{[10]uint32{0x018d091e, 0x017fbc63, 0x01a4463a, 0x02c128eb, 0x038fafa2, 0x02706e90, 0x0376a53c, 0x00420f92, 0x00bd331c, 0x003bff78}}, Y: Field{[10]uint32{0x01947dde, 0x038530c7, 0x02b9aee0, 0x037cad06, 0x02c563bd, 0x01b33bc3, 0x02e54208, 0x0084179a, 0x029ca75c, 0x003f5ea1}}},
+ {X: Field{[10]uint32{0x033875e8, 0x03115c4b, 0x01278f40, 0x01939027, 0x021115ba, 0x0160eb6c, 0x034a304b, 0x03667a22, 0x02c099c8, 0x002979d1}}, Y: Field{[10]uint32{0x02934a68, 0x0307bbcb, 0x00c07fd2, 0x00e7767a, 0x02841709, 0x001cfdff, 0x00baba4f, 0x00e0c0b1, 0x0112c2af, 0x001fe0c8}}},
+ {X: Field{[10]uint32{0x02ccb431, 0x006424cc, 0x0246a1ba, 0x01d121be, 0x037df5e2, 0x03f91544, 0x00daa722, 0x03a50e76, 0x01e3af5e, 0x001ab32e}}, Y: Field{[10]uint32{0x0328dcae, 0x03277267, 0x01dc443e, 0x00207f3d, 0x01a3faf1, 0x01a3e4b9, 0x03c26a9b, 0x01960141, 0x0258842d, 0x003c3785}}},
+ {X: Field{[10]uint32{0x032b6d4e, 0x0225e2bd, 0x023ba1ec, 0x00c7b404, 0x00b86f3d, 0x03be15a6, 0x00e782b3, 0x00cafdba, 0x0055e40d, 0x003204f4}}, Y: Field{[10]uint32{0x01068ca6, 0x01e40463, 0x0128d288, 0x03d0aee5, 0x0047d37e, 0x021318a0, 0x01a41916, 0x0118c713, 0x03572f92, 0x002ebdb5}}},
+ {X: Field{[10]uint32{0x03c7aaf9, 0x02a11365, 0x01177038, 0x0398bf7c, 0x03599dfa, 0x02f93561, 0x03baeb58, 0x03f18913, 0x00122cad, 0x0022e208}}, Y: Field{[10]uint32{0x02f7a6a3, 0x00f1e081, 0x00b2d409, 0x0291da02, 0x007867c8, 0x029690aa, 0x016e131f, 0x003693dc, 0x0293ac90, 0x003d79b0}}},
+ {X: Field{[10]uint32{0x017310ce, 0x006760cb, 0x017ee096, 0x00d1341c, 0x03bc02ff, 0x03fea910, 0x00a5acc4, 0x03960ad5, 0x0050f49e, 0x0023c1d4}}, Y: Field{[10]uint32{0x01f7fd3f, 0x0284c56d, 0x021c9b99, 0x02a1adc0, 0x01f1f9f9, 0x011e668f, 0x00555c4a, 0x034c95f3, 0x01bb7ab3, 0x0004ee40}}},
+ {X: Field{[10]uint32{0x00374c58, 0x035047ec, 0x01f66921, 0x036c8720, 0x0389a456, 0x00bdcb25, 0x025fb1df, 0x00f950f1, 0x02f8cf64, 0x002ef214}}, Y: Field{[10]uint32{0x030a590b, 0x012ee8ac, 0x032cd4c1, 0x00be13c0, 0x03a27e1c, 0x02c922cf, 0x03f604cf, 0x007892ca, 0x02bbe797, 0x002b423a}}},
+ {X: Field{[10]uint32{0x0280bc1f, 0x000940c6, 0x009fcffa, 0x0332c795, 0x03009278, 0x03730b72, 0x00edddc9, 0x0156ee1e, 0x004b662b, 0x000b5df7}}, Y: Field{[10]uint32{0x00d058eb, 0x01821c3b, 0x03fffa8e, 0x0282272b, 0x02c07707, 0x01dbbdbb, 0x01a62f4e, 0x03ca86b4, 0x00d84fa7, 0x000a22ec}}},
+ {X: Field{[10]uint32{0x03ccbdf9, 0x01e452b5, 0x00b4ffea, 0x02ae7216, 0x00c90945, 0x012ee9b2, 0x03df7d99, 0x02a1bae6, 0x031ff3b4, 0x002f20fd}}, Y: Field{[10]uint32{0x03232292, 0x034f9252, 0x00b30020, 0x018e8ea2, 0x01fa3c25, 0x03446550, 0x01ed4553, 0x01f48e02, 0x03a3e506, 0x00063a47}}},
+ {X: Field{[10]uint32{0x00200919, 0x036d0d4b, 0x037b3205, 0x03038aee, 0x0045f83d, 0x011f4149, 0x0211b7e8, 0x02239ac3, 0x02578d9b, 0x001f56e5}}, Y: Field{[10]uint32{0x00515ba9, 0x03d55c24, 0x00d352fa, 0x01caabf5, 0x00b1c9e6, 0x015a6bd3, 0x00e7230c, 0x0304370a, 0x037b8830, 0x00079a27}}},
+ {X: Field{[10]uint32{0x000cdc80, 0x03e4a288, 0x03cdc1ba, 0x021f2b30, 0x01516148, 0x01183128, 0x01bab4c7, 0x021a20c7, 0x03648d75, 0x00217a7c}}, Y: Field{[10]uint32{0x01369e27, 0x0239684c, 0x03a9dd5f, 0x03d300ff, 0x035ba5e4, 0x001fdff0, 0x025224cc, 0x01170161, 0x01180d50, 0x001fd339}}},
+ {X: Field{[10]uint32{0x02cd0810, 0x00765d12, 0x0065da10, 0x01dd16c7, 0x029c1d10, 0x02ef6dc6, 0x0055816d, 0x0252f4d2, 0x00dfc1c0, 0x001094e4}}, Y: Field{[10]uint32{0x0349bc00, 0x01df53c7, 0x0327d1e2, 0x030c2303, 0x02707547, 0x0027785d, 0x0026d94f, 0x0135c1a4, 0x00dd20ef, 0x00207c53}}},
+ {X: Field{[10]uint32{0x013549d7, 0x036bfd90, 0x004194ce, 0x0026fe39, 0x02dbb594, 0x00283dd6, 0x00d00bb6, 0x024eb094, 0x030b66dc, 0x000f31f3}}, Y: Field{[10]uint32{0x00204a58, 0x01307587, 0x0323a066, 0x00668afa, 0x02ae17b7, 0x037dc399, 0x008bcf99, 0x036267da, 0x032fc3db, 0x000cc698}}},
+ {X: Field{[10]uint32{0x0270853d, 0x00acfaf3, 0x035f017e, 0x00a8af8e, 0x009d6a0b, 0x03fde276, 0x03c923bc, 0x02f3a023, 0x008db8a1, 0x003f5c82}}, Y: Field{[10]uint32{0x01eaf599, 0x0037b242, 0x03494b71, 0x02a37d91, 0x0193db4a, 0x0282fb76, 0x03296383, 0x0066ebac, 0x0323a388, 0x0034e44a}}},
+ {X: Field{[10]uint32{0x03e65060, 0x02cd6b3b, 0x037a6b72, 0x01071f74, 0x01c73185, 0x0282ea89, 0x00940af9, 0x025b6936, 0x038d5e00, 0x000f9563}}, Y: Field{[10]uint32{0x0260e90a, 0x01414f79, 0x00dde769, 0x00c5ffb0, 0x03f78f64, 0x02ea56e1, 0x03bdb3ef, 0x020170fa, 0x017f069d, 0x000a900f}}},
+ {X: Field{[10]uint32{0x00694a7e, 0x03c81276, 0x00b01e82, 0x00aa43f4, 0x03721ec3, 0x0386dd17, 0x0000149f, 0x03c8885b, 0x0223f525, 0x001c1c20}}, Y: Field{[10]uint32{0x03d12569, 0x036afafb, 0x0354b410, 0x02218d98, 0x01fce17d, 0x01f650ed, 0x0186ac90, 0x0354fc67, 0x0387f0b4, 0x003bd2b5}}},
+ {X: Field{[10]uint32{0x02414f72, 0x03a4452a, 0x012fc6e5, 0x02537be7, 0x02440b4a, 0x007933dd, 0x01eddb71, 0x03ebd92e, 0x0225eabf, 0x003b28a5}}, Y: Field{[10]uint32{0x037618cf, 0x00e2e388, 0x009dcd35, 0x00a0a0e6, 0x03f798b6, 0x03162433, 0x03bb2274, 0x028ff2c8, 0x007575af, 0x003c7e0e}}},
+ {X: Field{[10]uint32{0x03297695, 0x00e3d957, 0x00108778, 0x02959b5b, 0x02da7423, 0x02186496, 0x0206db46, 0x03c31311, 0x0350542d, 0x0016df11}}, Y: Field{[10]uint32{0x011f784d, 0x008ae79e, 0x010795f9, 0x00b57a01, 0x01de04db, 0x033669a9, 0x00cb1a24, 0x02227f5b, 0x03661ae1, 0x0010a044}}},
+ {X: Field{[10]uint32{0x00012042, 0x026e61af, 0x0038cb37, 0x01a20016, 0x02bd5da1, 0x039e20bf, 0x02982dd1, 0x02cbbb4d, 0x03e6040c, 0x002bc697}}, Y: Field{[10]uint32{0x013e6224, 0x0104856b, 0x00778b7e, 0x023a18f5, 0x02576877, 0x03f3f228, 0x03d12ed1, 0x0298d298, 0x0149305f, 0x001c55c1}}},
+ {X: Field{[10]uint32{0x0366b1d2, 0x00659da4, 0x0346a9a3, 0x022c755d, 0x03e1e8b1, 0x00627132, 0x03cd1be1, 0x01f9c3e0, 0x03a24678, 0x001c9d10}}, Y: Field{[10]uint32{0x0116d540, 0x024a341b, 0x03dead68, 0x0303480b, 0x004df56a, 0x01dc396d, 0x02565cc1, 0x00fa2684, 0x00269bba, 0x00218d5e}}},
+ {X: Field{[10]uint32{0x02640b8d, 0x03866284, 0x012556c5, 0x00aeafcf, 0x03ae2c9a, 0x004e647d, 0x01e68352, 0x0398a852, 0x0179db34, 0x0000259e}}, Y: Field{[10]uint32{0x019edcc4, 0x0301f07f, 0x03b014d4, 0x009c946c, 0x018547b8, 0x02fcf47b, 0x02e44ac3, 0x015944f3, 0x014f5244, 0x00267707}}},
+ {X: Field{[10]uint32{0x03203601, 0x03ee20eb, 0x038b159d, 0x01f6f95e, 0x02be5693, 0x0016c1ac, 0x02f9d739, 0x0124789f, 0x01db08f3, 0x001e5002}}, Y: Field{[10]uint32{0x02da40b6, 0x0329878a, 0x017e750e, 0x009090e4, 0x005db60d, 0x022761ad, 0x026a0872, 0x03873456, 0x024d7ee5, 0x00169ab5}}},
+ {X: Field{[10]uint32{0x01851d10, 0x018a5faa, 0x015110cf, 0x00bd41e4, 0x03d2f421, 0x03ec3747, 0x029470b1, 0x02c2436e, 0x02396f90, 0x0021f2f6}}, Y: Field{[10]uint32{0x001b63f0, 0x02480169, 0x013e773a, 0x014b8473, 0x03fb8f79, 0x01561771, 0x01fb4c9c, 0x03e65d40, 0x01f3a2a4, 0x00272825}}},
+ {X: Field{[10]uint32{0x0110acb0, 0x0116c06e, 0x01fa84b2, 0x036816e5, 0x02cd1f3a, 0x006f9f84, 0x00207720, 0x005d4963, 0x0303475d, 0x0027b55e}}, Y: Field{[10]uint32{0x03bbd5eb, 0x03ba8da8, 0x0350d324, 0x0112387b, 0x03253106, 0x0032cfa2, 0x0058a7bd, 0x0206be17, 0x005443bd, 0x00356324}}},
+ {X: Field{[10]uint32{0x028b0402, 0x00d53980, 0x02be7d5d, 0x0087f499, 0x0335fd95, 0x01844cd8, 0x02c77e38, 0x011260b6, 0x022292ca, 0x003be342}}, Y: Field{[10]uint32{0x00b58b6b, 0x01629d0f, 0x0037ff97, 0x034b8ad0, 0x02f2f547, 0x01df06a6, 0x0223e5b6, 0x02076a92, 0x034a5568, 0x00395712}}},
+ {X: Field{[10]uint32{0x0127e3d9, 0x000565f4, 0x01c75abd, 0x0386c4bd, 0x002299f6, 0x03e93b42, 0x02d369f4, 0x03ca7540, 0x01f5a274, 0x001b6e88}}, Y: Field{[10]uint32{0x01a39d94, 0x0369de94, 0x00f3c930, 0x02774b7c, 0x01c951f6, 0x039ba720, 0x00302de3, 0x03907a31, 0x032f0a0c, 0x001da17d}}},
+ {X: Field{[10]uint32{0x00399a3d, 0x0111a4f2, 0x032aa6ba, 0x026dfecc, 0x02784196, 0x01bb4a94, 0x001b0f42, 0x0308d5f7, 0x02bf857a, 0x0023370f}}, Y: Field{[10]uint32{0x03f910ca, 0x01dbe92d, 0x02beca58, 0x02ac9d22, 0x03df250d, 0x02da2866, 0x00d87249, 0x031c501b, 0x03c1915a, 0x0008d374}}},
+ {X: Field{[10]uint32{0x01eca2da, 0x03f620ad, 0x00de1e88, 0x03e8a4d1, 0x00a9c790, 0x011c1a26, 0x03391b6f, 0x0196d1f8, 0x01c8caa6, 0x0028020a}}, Y: Field{[10]uint32{0x01424110, 0x02d4c5bf, 0x02aa8184, 0x025d81a3, 0x00234862, 0x020c6095, 0x004b1299, 0x01333962, 0x00c71e83, 0x002df23f}}},
+ {X: Field{[10]uint32{0x0149ce6a, 0x02007748, 0x005f5640, 0x00bbbfdf, 0x02a4ed5b, 0x0353c8b5, 0x012e54a1, 0x02fac528, 0x0362446c, 0x00161cbd}}, Y: Field{[10]uint32{0x00ee198f, 0x0283070a, 0x01e2ac75, 0x0362eeb3, 0x004c37d5, 0x010d93bd, 0x030c29e2, 0x015fe869, 0x03e88627, 0x0022ab34}}},
+ {X: Field{[10]uint32{0x02fd34f2, 0x0331ae40, 0x03b2fec4, 0x02b24674, 0x0353e7ce, 0x016d4cb3, 0x02677d2e, 0x01c543c8, 0x01c05dba, 0x002dc3b5}}, Y: Field{[10]uint32{0x00d28cf8, 0x035120a9, 0x0083126b, 0x026c2158, 0x0376c3d6, 0x006363f2, 0x03cee0b0, 0x005c728b, 0x0128cc74, 0x001f90fd}}},
+ {X: Field{[10]uint32{0x0053bb52, 0x00305ae0, 0x027d309d, 0x00169e42, 0x022e8ca5, 0x03ac272e, 0x01a6d7c8, 0x0187431f, 0x02133c61, 0x0012faa8}}, Y: Field{[10]uint32{0x01d4f6d5, 0x02b372a6, 0x03ffadb1, 0x01b30a62, 0x03070349, 0x012cbb84, 0x0226d8fe, 0x0368bb19, 0x003c9cbd, 0x00369302}}},
+ {X: Field{[10]uint32{0x01804831, 0x003a07c1, 0x035fc8a1, 0x00d134d3, 0x0108594b, 0x017e6af4, 0x00de363c, 0x0060d29e, 0x02c653ce, 0x002a34c7}}, Y: Field{[10]uint32{0x02c5cff9, 0x0130a1b6, 0x00bce64f, 0x00616529, 0x008c462c, 0x02df22e9, 0x01b5601c, 0x038dc27b, 0x01cd7cbb, 0x002d35aa}}},
+}
+
+var prec = [64][16]XY{
+ {
+ {X: Field{[10]uint32{0x02f81798, 0x00a056c5, 0x028d959f, 0x036cb738, 0x03029bfc, 0x03a1c2c1, 0x0206295c, 0x02eeb156, 0x027ef9dc, 0x001e6f99}}, Y: Field{[10]uint32{0x0310d4b8, 0x01f423fe, 0x014199c4, 0x01229a15, 0x00fd17b4, 0x0384422a, 0x024fbfc0, 0x03119576, 0x027726a3, 0x00120eb6}}},
+ {X: Field{[10]uint32{0x00709ee5, 0x03026e57, 0x03ca7aba, 0x012e33bc, 0x005c778e, 0x01701f36, 0x005406e9, 0x01f5b4c1, 0x039441ed, 0x0031811f}}, Y: Field{[10]uint32{0x00cfe52a, 0x010c6a54, 0x010e1236, 0x0194c99b, 0x02f7f632, 0x019b3abb, 0x00584194, 0x030ce68f, 0x00fea63d, 0x0006b85a}}},
+ {X: Field{[10]uint32{0x00e036f9, 0x007c44ef, 0x019b0860, 0x01160dbe, 0x01b531c8, 0x0227548a, 0x0344f85f, 0x030c4124, 0x02019258, 0x003e4c22}}, Y: Field{[10]uint32{0x00b8e672, 0x027f5d61, 0x0231b6cb, 0x0264d308, 0x026500a9, 0x028dfcd5, 0x02337e62, 0x03a0503f, 0x030f632d, 0x000e23de}}},
+ {X: Field{[10]uint32{0x00c4cd13, 0x02a52afa, 0x0358474f, 0x02403b81, 0x00cc6c13, 0x00c2c501, 0x01e49049, 0x0203cd60, 0x03f1c10d, 0x003924f6}}, Y: Field{[10]uint32{0x03739922, 0x025ef711, 0x03e40cfe, 0x00cefef7, 0x00d967ae, 0x03a94512, 0x002e2098, 0x0156dd59, 0x013ea0d4, 0x00147b66}}},
+ {X: Field{[10]uint32{0x0240efe4, 0x02355a6c, 0x01ab7cba, 0x02f77186, 0x00e88b84, 0x0297144a, 0x034a7250, 0x00824d56, 0x024d1a07, 0x000be2f7}}, Y: Field{[10]uint32{0x02ac62d6, 0x021f4ea9, 0x02840dca, 0x006eac35, 0x02f78827, 0x01b27109, 0x01ba9dda, 0x038f5b53, 0x022636e5, 0x00362b08}}},
+ {X: Field{[10]uint32{0x00297556, 0x015e8518, 0x0218b2f0, 0x00be15a2, 0x0382f647, 0x01548d74, 0x0053a143, 0x03ba9081, 0x03d5755e, 0x003ffe5e}}, Y: Field{[10]uint32{0x0075f297, 0x01c30dac, 0x024a03c8, 0x03d9463f, 0x00de80f0, 0x03d17158, 0x03e96017, 0x02d883ce, 0x037aacfb, 0x002b849d}}},
+ {X: Field{[10]uint32{0x02c4f9bc, 0x02f77b72, 0x0239ce92, 0x01f80cc3, 0x023d419b, 0x00ba9e83, 0x018f365f, 0x02d3aa8e, 0x00646e5d, 0x00172f7c}}, Y: Field{[10]uint32{0x007264da, 0x02098a02, 0x027b5a50, 0x02e04ff7, 0x03a813d0, 0x01869536, 0x0178d6d8, 0x0165828c, 0x0240ba25, 0x001abaf2}}},
+ {X: Field{[10]uint32{0x010a2a01, 0x0213bcf8, 0x0088a677, 0x001796be, 0x030a1bdd, 0x01c3cf0b, 0x033843fb, 0x00d476bf, 0x01e15cca, 0x000bc079}}, Y: Field{[10]uint32{0x00bde904, 0x028b2ddb, 0x03617b5d, 0x035ae96d, 0x00c2e213, 0x00cb44ed, 0x03d082a1, 0x026524a4, 0x00a74153, 0x0017136a}}},
+ {X: Field{[10]uint32{0x0027ccbe, 0x03c4437f, 0x02714c35, 0x025d315f, 0x01e09796, 0x03d566af, 0x02d178a9, 0x03d94c26, 0x00e2f0c7, 0x002b3521}}, Y: Field{[10]uint32{0x024f9c37, 0x03098ab1, 0x00e0f05c, 0x0290dd7e, 0x01add888, 0x018ed87a, 0x03809717, 0x0367f590, 0x0121b0a7, 0x00330ce2}}},
+ {X: Field{[10]uint32{0x03e247c7, 0x01a38a91, 0x002b752a, 0x026c650f, 0x013442d4, 0x02b9ab97, 0x0077c7b1, 0x032188d5, 0x019e47f3, 0x002810d3}}, Y: Field{[10]uint32{0x037368d7, 0x03b94ec0, 0x021593cb, 0x00bb61de, 0x016f794c, 0x00e8931a, 0x036c7e69, 0x02f09e8e, 0x02425419, 0x00224eae}}},
+ {X: Field{[10]uint32{0x01a008cb, 0x0305e257, 0x03891bbe, 0x002f9705, 0x00564998, 0x003196ab, 0x034246b7, 0x0104797b, 0x03f858a9, 0x001dd2b9}}, Y: Field{[10]uint32{0x0153c61b, 0x035d3272, 0x016a8301, 0x038b7fe7, 0x01372db1, 0x01edecd9, 0x003dd56d, 0x01786409, 0x0032eb6b, 0x00366128}}},
+ {X: Field{[10]uint32{0x00afe85a, 0x003d1c1c, 0x0095bc5b, 0x01065880, 0x03687cf4, 0x035cd18c, 0x0038f004, 0x01586c57, 0x01d548e7, 0x00340445}}, Y: Field{[10]uint32{0x00062327, 0x0146c4fd, 0x02d526b0, 0x017766a1, 0x0179238c, 0x005ef605, 0x0364537e, 0x03835ea2, 0x03fdc815, 0x002a7cd3}}},
+ {X: Field{[10]uint32{0x01405aa8, 0x0377e3c6, 0x018cddee, 0x03198439, 0x01b075fb, 0x00dd2194, 0x011d205c, 0x00a22f1f, 0x03c2d975, 0x003ca1dc}}, Y: Field{[10]uint32{0x0303ed81, 0x0172d4b6, 0x0291f29b, 0x0369487e, 0x033a1a06, 0x01736bd1, 0x00212eb6, 0x002a25d6, 0x002e8d88, 0x0002ac24}}},
+ {X: Field{[10]uint32{0x00e823e4, 0x02c90698, 0x009e6e49, 0x018d9e25, 0x0226aa7b, 0x01f4e38c, 0x024e67f0, 0x01c673f5, 0x039e895e, 0x001267f7}}, Y: Field{[10]uint32{0x03a13f5b, 0x03d03500, 0x015bcc65, 0x0309e8fe, 0x00464279, 0x01ecf519, 0x03044e4a, 0x02154643, 0x02c4b54e, 0x0032b0bd}}},
+ {X: Field{[10]uint32{0x027e080e, 0x036f3e38, 0x0379e44a, 0x01bcf217, 0x0131e594, 0x0257fd04, 0x0065ae30, 0x03aa5969, 0x014f7d43, 0x0035e493}}, Y: Field{[10]uint32{0x02a26b58, 0x013727fd, 0x013a5c50, 0x00af625b, 0x03ea40af, 0x02331b7b, 0x0042ec22, 0x01ca9a0e, 0x0072a86c, 0x0016078a}}},
+ {X: Field{[10]uint32{0x026dec0a, 0x03ba278a, 0x01ae9c44, 0x01a6e1e9, 0x03b2a313, 0x00708fa5, 0x011aabc2, 0x027b14c0, 0x0293b59e, 0x003983f3}}, Y: Field{[10]uint32{0x01616821, 0x00cb339a, 0x03f0be1f, 0x00791348, 0x00129689, 0x015e4dc4, 0x0399f34f, 0x02564a76, 0x007399e5, 0x003df8d4}}},
+ },
+ {
+ {X: Field{[10]uint32{0x026dec0a, 0x03ba278a, 0x01ae9c44, 0x01a6e1e9, 0x03b2a313, 0x00708fa5, 0x011aabc2, 0x027b14c0, 0x0293b59e, 0x003983f3}}, Y: Field{[10]uint32{0x01616821, 0x00cb339a, 0x03f0be1f, 0x00791348, 0x00129689, 0x015e4dc4, 0x0399f34f, 0x02564a76, 0x007399e5, 0x003df8d4}}},
+ {X: Field{[10]uint32{0x03143e65, 0x0036f501, 0x0261d75d, 0x02e26412, 0x02dacffc, 0x00bcde33, 0x036e054e, 0x0288b51e, 0x01d74fb5, 0x0034c066}}, Y: Field{[10]uint32{0x00106ab9, 0x00ffc7c9, 0x0019605b, 0x030d93b6, 0x011f760c, 0x0260e019, 0x016dec9e, 0x03570ecf, 0x019d0ae3, 0x002540e3}}},
+ {X: Field{[10]uint32{0x0118e5c3, 0x021c2a84, 0x02bc19bd, 0x009d14af, 0x03fc579b, 0x013996d2, 0x001656ef, 0x00c1f6d1, 0x035d9645, 0x001bb28c}}, Y: Field{[10]uint32{0x01a08668, 0x028bde01, 0x02c34498, 0x00e8efe3, 0x003a496a, 0x012e1d68, 0x02f57907, 0x001c4164, 0x03b57a7a, 0x00354048}}},
+ {X: Field{[10]uint32{0x0074ef8b, 0x024639be, 0x03d81e37, 0x007736eb, 0x00fc4c6f, 0x020ca08f, 0x01051eaf, 0x03aadc2c, 0x01542d16, 0x002fc8f0}}, Y: Field{[10]uint32{0x02831d9f, 0x00dfbf99, 0x02f784dc, 0x01520478, 0x00c522fc, 0x0294e4b9, 0x01928a0b, 0x000dcdeb, 0x026fc330, 0x00172ce1}}},
+ {X: Field{[10]uint32{0x0387f62e, 0x034c7853, 0x021270ec, 0x00e18dc5, 0x0010e6e6, 0x00d1967c, 0x03c744ed, 0x0243b035, 0x03bef1bf, 0x003a588e}}, Y: Field{[10]uint32{0x004ee737, 0x004fabe9, 0x0044e530, 0x032775a2, 0x01fe6043, 0x03b6aa4a, 0x03e953a8, 0x0267a783, 0x003b4bc2, 0x000e2a5d}}},
+ {X: Field{[10]uint32{0x038cb0e3, 0x00ceb29f, 0x023a4439, 0x00ff87bf, 0x02a22eb5, 0x02cbadcb, 0x0264e044, 0x01b63e3e, 0x00e57445, 0x000fc3a0}}, Y: Field{[10]uint32{0x025f404f, 0x00a278ba, 0x013a4cb0, 0x00ea996d, 0x03950125, 0x0217406c, 0x00b9c084, 0x02f247a4, 0x03d7296c, 0x0032d9b5}}},
+ {X: Field{[10]uint32{0x028d733c, 0x02ab7e0a, 0x028f9eb0, 0x02fd8bf2, 0x02ffc274, 0x002035a0, 0x004a36f2, 0x0076e822, 0x0173e516, 0x002f20b7}}, Y: Field{[10]uint32{0x007797f0, 0x0218413d, 0x017301e7, 0x02eb9ce2, 0x03ae93a0, 0x0067c0b7, 0x029b4bf7, 0x0072b152, 0x003a044b, 0x00397ca3}}},
+ {X: Field{[10]uint32{0x0369a24e, 0x001dd159, 0x01655647, 0x035c014d, 0x00bcf55c, 0x01f459c7, 0x02c3d09f, 0x01e819a5, 0x03e4033f, 0x000d3fce}}, Y: Field{[10]uint32{0x03cc2f1a, 0x00419e9c, 0x03681849, 0x030fa3e2, 0x0055df16, 0x020c8263, 0x02619d89, 0x01b154fd, 0x01623a23, 0x00176744}}},
+ {X: Field{[10]uint32{0x03bc7671, 0x03f88c57, 0x00e32d7e, 0x03214a16, 0x00743f1b, 0x01e63d24, 0x00291ce1, 0x01c84748, 0x0248c765, 0x00238f44}}, Y: Field{[10]uint32{0x00717dec, 0x00771906, 0x0144a7ef, 0x02aa98f8, 0x02b9352b, 0x00e4fa43, 0x00480e19, 0x032e07d9, 0x00e10ecf, 0x00026692}}},
+ {X: Field{[10]uint32{0x01b03f6c, 0x030cab54, 0x0184b05e, 0x0048aa6c, 0x02a4d047, 0x03dcfd5d, 0x00776838, 0x036488af, 0x03a27a52, 0x000c2244}}, Y: Field{[10]uint32{0x00fe4c67, 0x02d7bf3a, 0x01f1260a, 0x03aa0af4, 0x01a8333f, 0x01b00dd7, 0x023531f6, 0x02f97e47, 0x009543fe, 0x003d296c}}},
+ {X: Field{[10]uint32{0x02b31db2, 0x021d0caf, 0x006a0f32, 0x009e23d4, 0x028fcae8, 0x002228ad, 0x02a193ed, 0x02926225, 0x01aa2234, 0x001e2a24}}, Y: Field{[10]uint32{0x01fa4343, 0x027588ee, 0x0382d306, 0x03376002, 0x0254379b, 0x01cc0b7d, 0x035f2552, 0x00d72ff3, 0x035beb50, 0x001a44a8}}},
+ {X: Field{[10]uint32{0x03ce1752, 0x01d43dcc, 0x0204ec7b, 0x025f5f34, 0x02e783c7, 0x026726ba, 0x02ddf64d, 0x0318d604, 0x0258d01d, 0x0035e836}}, Y: Field{[10]uint32{0x0362cef4, 0x0009ce01, 0x03742bbc, 0x02a3018a, 0x010be040, 0x0038a119, 0x03292834, 0x0200cbdb, 0x00e06800, 0x002449dc}}},
+ {X: Field{[10]uint32{0x01b0e595, 0x0123dde3, 0x002bb653, 0x02e7ee82, 0x03a7163c, 0x00581dba, 0x00e37658, 0x006c5f5f, 0x001855db, 0x001f619e}}, Y: Field{[10]uint32{0x00733de8, 0x01478eaf, 0x01532999, 0x01383897, 0x00293784, 0x0353e20e, 0x0162e2be, 0x03e1dcb9, 0x02dfec86, 0x0038ae66}}},
+ {X: Field{[10]uint32{0x00e6b514, 0x03115c1b, 0x03322609, 0x031e6cd5, 0x01890905, 0x00211352, 0x005c3560, 0x03b45622, 0x01c2f919, 0x00022f22}}, Y: Field{[10]uint32{0x00c95157, 0x00fd33aa, 0x036f06f6, 0x0158449d, 0x01172d30, 0x02d624b0, 0x0376fec3, 0x03305b79, 0x03cdd7cd, 0x0034c4fc}}},
+ {X: Field{[10]uint32{0x02060dfc, 0x03fbe145, 0x02a2a008, 0x02108179, 0x0276545f, 0x0106ac21, 0x0094b9dc, 0x00ab2121, 0x010f0058, 0x0037714c}}, Y: Field{[10]uint32{0x03820ca8, 0x03e2adb9, 0x00730fb5, 0x031aaf41, 0x0041dbaf, 0x0323c3a4, 0x011ab6dc, 0x025a4806, 0x033af20d, 0x002e834b}}},
+ {X: Field{[10]uint32{0x01f51508, 0x01b88ff5, 0x01ca1064, 0x02af56b0, 0x00d8c39c, 0x01cb788e, 0x02a6e3e1, 0x002767a8, 0x023212c6, 0x0020a089}}, Y: Field{[10]uint32{0x02e26caf, 0x02dbabfd, 0x017bed31, 0x02b0bdec, 0x0262d613, 0x002d82b3, 0x00256e83, 0x037f917a, 0x00098557, 0x00047e2a}}},
+ },
+ {
+ {X: Field{[10]uint32{0x01f51508, 0x01b88ff5, 0x01ca1064, 0x02af56b0, 0x00d8c39c, 0x01cb788e, 0x02a6e3e1, 0x002767a8, 0x023212c6, 0x0020a089}}, Y: Field{[10]uint32{0x02e26caf, 0x02dbabfd, 0x017bed31, 0x02b0bdec, 0x0262d613, 0x002d82b3, 0x00256e83, 0x037f917a, 0x00098557, 0x00047e2a}}},
+ {X: Field{[10]uint32{0x0334a24d, 0x038b003b, 0x019d0926, 0x01a36785, 0x010adbc9, 0x033e4635, 0x01a857a9, 0x027fce41, 0x00b287a7, 0x001194dc}}, Y: Field{[10]uint32{0x033887f4, 0x023ec82c, 0x03a10a2f, 0x02c8574d, 0x01588e09, 0x037bb0b0, 0x02f8bdaf, 0x03020a92, 0x01b38368, 0x000d794c}}},
+ {X: Field{[10]uint32{0x017e8dfa, 0x03032e79, 0x02184fcf, 0x02468f1f, 0x00098091, 0x032a6328, 0x01a30f8a, 0x02713036, 0x032ff079, 0x002098b3}}, Y: Field{[10]uint32{0x03ac376a, 0x03fe363e, 0x0047835c, 0x00ccac53, 0x0057b6ed, 0x016cd3cd, 0x03ee22ec, 0x0279399b, 0x01e20910, 0x0020ff65}}},
+ {X: Field{[10]uint32{0x0285131f, 0x02406cb8, 0x03088d5b, 0x0337204e, 0x00aaec6e, 0x01ab5890, 0x024a18f6, 0x02f5df59, 0x03b8e23c, 0x000907fa}}, Y: Field{[10]uint32{0x0350026d, 0x00f99bc9, 0x035afabb, 0x003ef432, 0x00cd50fd, 0x00e6077e, 0x00420bd1, 0x03e34f5b, 0x00d9ff94, 0x00144cde}}},
+ {X: Field{[10]uint32{0x026bdb6f, 0x00b922c0, 0x00b94905, 0x0351edcd, 0x037ca41b, 0x033a6721, 0x00105b24, 0x0377545a, 0x008b1da0, 0x00066097}}, Y: Field{[10]uint32{0x009cfc9b, 0x03dc2131, 0x013a6b5d, 0x033233db, 0x00ebe9ee, 0x013d67db, 0x00261cc9, 0x021e3cc8, 0x010f0d4c, 0x0018a50c}}},
+ {X: Field{[10]uint32{0x0070620c, 0x03307c9f, 0x008d9d17, 0x02faaf0a, 0x004998c4, 0x02d9c5e0, 0x00dd31a2, 0x008db718, 0x00a48d2c, 0x000594ea}}, Y: Field{[10]uint32{0x015b32cd, 0x00ba074c, 0x01c526ca, 0x01237f4f, 0x00012af7, 0x03be9c07, 0x03a99474, 0x01fdebab, 0x010935af, 0x0000ce0a}}},
+ {X: Field{[10]uint32{0x0182824c, 0x0342548f, 0x034e650e, 0x00d17854, 0x02dfa58e, 0x01b0a667, 0x005f56ec, 0x0064510f, 0x006c1160, 0x001bc4b6}}, Y: Field{[10]uint32{0x02eb34d0, 0x0270d201, 0x03c5b857, 0x01042152, 0x01391c92, 0x03588dda, 0x01994f3f, 0x02fe821d, 0x03f44ab3, 0x001713fd}}},
+ {X: Field{[10]uint32{0x03920471, 0x02d8c1a6, 0x01e0dedc, 0x0217d08f, 0x01fc318b, 0x00f63e36, 0x024cc298, 0x03e9e7f3, 0x034ea172, 0x001746f6}}, Y: Field{[10]uint32{0x03b83103, 0x00c199bd, 0x02e7b703, 0x02665b15, 0x0279eb1e, 0x02288995, 0x00bb9943, 0x0278b9e5, 0x02677937, 0x000a10e0}}},
+ {X: Field{[10]uint32{0x03453629, 0x037700b6, 0x02603076, 0x03703d67, 0x0245cfdc, 0x008eafbd, 0x0262716a, 0x02a97450, 0x006f9a0a, 0x00080ea3}}, Y: Field{[10]uint32{0x03f89f84, 0x0071e14f, 0x01ed4597, 0x009714a1, 0x02686deb, 0x03d04184, 0x00c76d15, 0x0366e4db, 0x0353de5d, 0x000ec3c2}}},
+ {X: Field{[10]uint32{0x0147f3d6, 0x011955ec, 0x00b45b94, 0x0085eae3, 0x03553199, 0x01195440, 0x026a3632, 0x02c78467, 0x0332c294, 0x0011d291}}, Y: Field{[10]uint32{0x00628ba4, 0x03a14a0a, 0x01300dce, 0x005c0438, 0x0311fa7f, 0x00e922a8, 0x02cc30cc, 0x03c13bb4, 0x02231206, 0x00251897}}},
+ {X: Field{[10]uint32{0x006c7ecb, 0x004c3779, 0x00ce9783, 0x00ff96ed, 0x009d3aed, 0x0219b87b, 0x01ef7334, 0x01060720, 0x02eb3d03, 0x001b8ab2}}, Y: Field{[10]uint32{0x02bc8720, 0x024807bb, 0x0112c844, 0x02e46d9d, 0x02fac706, 0x003ed90e, 0x000c4daf, 0x03b85276, 0x006797ef, 0x00279869}}},
+ {X: Field{[10]uint32{0x031dabcd, 0x010ae9b9, 0x00b4f47d, 0x01262797, 0x0354d3fe, 0x002d4dcf, 0x018ae326, 0x03d0f182, 0x00fb6b63, 0x003527b9}}, Y: Field{[10]uint32{0x016603c2, 0x02a433c0, 0x03031e66, 0x024c4bfd, 0x02129c50, 0x0186fcd5, 0x0087ea7a, 0x0124375f, 0x039209a5, 0x00014c78}}},
+ {X: Field{[10]uint32{0x00a4147e, 0x00063cfc, 0x03201eb7, 0x022fddd7, 0x002747dd, 0x02924296, 0x021717e8, 0x0055aebd, 0x0092e9e9, 0x003569c1}}, Y: Field{[10]uint32{0x03fb65ff, 0x02cf2e0c, 0x0357f8e4, 0x0211e59f, 0x02f4c4d9, 0x0197814c, 0x00909907, 0x02271bf1, 0x02f5dbab, 0x00276d49}}},
+ {X: Field{[10]uint32{0x003841c6, 0x02a3da2d, 0x02fbd63d, 0x03034d0f, 0x0212aa3c, 0x033afd30, 0x03b6b52d, 0x00226526, 0x009e03df, 0x001b3044}}, Y: Field{[10]uint32{0x0154e94d, 0x00ce91ae, 0x02cf5b97, 0x00f8b641, 0x00d79b43, 0x028a7ffb, 0x03d3d6b0, 0x012dd83f, 0x02fe9c09, 0x002bd586}}},
+ {X: Field{[10]uint32{0x00edcec6, 0x036d1af6, 0x00f454ed, 0x030b4d8d, 0x02a1061c, 0x000b36b1, 0x023efc63, 0x022ea014, 0x019aabe1, 0x000e3144}}, Y: Field{[10]uint32{0x0133db08, 0x0382fec6, 0x030a6456, 0x0208ad54, 0x0328a16c, 0x01d7ca0b, 0x00cb2da2, 0x01cca99a, 0x012285d9, 0x00399277}}},
+ {X: Field{[10]uint32{0x01e5b739, 0x03396d54, 0x022ed73f, 0x00cff488, 0x01e0b938, 0x01bf211b, 0x0399cc6c, 0x021969cb, 0x019f728b, 0x0005d785}}, Y: Field{[10]uint32{0x01fed695, 0x029bffba, 0x0345c6ef, 0x016b7490, 0x02acb595, 0x03fdc7d7, 0x02f97a51, 0x01e7ae93, 0x020d9e3c, 0x0034d41b}}},
+ },
+ {
+ {X: Field{[10]uint32{0x01e5b739, 0x03396d54, 0x022ed73f, 0x00cff488, 0x01e0b938, 0x01bf211b, 0x0399cc6c, 0x021969cb, 0x019f728b, 0x0005d785}}, Y: Field{[10]uint32{0x01fed695, 0x029bffba, 0x0345c6ef, 0x016b7490, 0x02acb595, 0x03fdc7d7, 0x02f97a51, 0x01e7ae93, 0x020d9e3c, 0x0034d41b}}},
+ {X: Field{[10]uint32{0x02bc47d6, 0x02012791, 0x0121bce7, 0x02d71b68, 0x0130fdfe, 0x004e7188, 0x03fbcc8e, 0x00cb5e97, 0x013f03ff, 0x00108e80}}, Y: Field{[10]uint32{0x03548a34, 0x00db9b62, 0x0009ed12, 0x030d493c, 0x03720d8e, 0x02bdacf1, 0x0179f7bb, 0x0365c284, 0x000fe1e1, 0x002e46b8}}},
+ {X: Field{[10]uint32{0x01041216, 0x01fe3c71, 0x0036a65b, 0x03da10ae, 0x023f7335, 0x030bfb54, 0x00b59efd, 0x02b3d04a, 0x017b21f7, 0x00369d4c}}, Y: Field{[10]uint32{0x02708572, 0x034ca61b, 0x00edadae, 0x01eb9deb, 0x02e9aac0, 0x010b5ff1, 0x019e21b3, 0x0357c37c, 0x0046bf72, 0x001cfe28}}},
+ {X: Field{[10]uint32{0x0016824a, 0x037dbde1, 0x02741302, 0x00bcecf8, 0x0249df66, 0x0335a1dd, 0x0107a7ab, 0x02e41422, 0x0245ac1f, 0x0004475a}}, Y: Field{[10]uint32{0x0108e9d0, 0x00447508, 0x00a4ca9a, 0x02265b6b, 0x02f07000, 0x03c19654, 0x00d48dbf, 0x02bfeee4, 0x011c478e, 0x0001a5a4}}},
+ {X: Field{[10]uint32{0x0065a930, 0x010f9c79, 0x012fdb01, 0x0305ac4d, 0x022587f1, 0x02a0bac7, 0x033c58c4, 0x01275c15, 0x01b48e97, 0x00071c71}}, Y: Field{[10]uint32{0x034638b5, 0x01cfdb30, 0x00d471d8, 0x00fedc5d, 0x0079345e, 0x0092eda3, 0x013f1f28, 0x03e8309c, 0x0334e8f5, 0x0012a470}}},
+ {X: Field{[10]uint32{0x0062bac0, 0x014c93cf, 0x02b06950, 0x037d47c2, 0x0219150d, 0x00fa2dc3, 0x024b7d2c, 0x011a704d, 0x00f9023f, 0x00254c3c}}, Y: Field{[10]uint32{0x0218e309, 0x02af6a5d, 0x01c68478, 0x0214bc7f, 0x00e25b32, 0x026cccf8, 0x01d2f7f5, 0x008788d3, 0x005a8f9f, 0x0023cf0c}}},
+ {X: Field{[10]uint32{0x02db6ee7, 0x0236b96e, 0x02077e31, 0x010c9d12, 0x007850dd, 0x0026d327, 0x02e837a9, 0x02959a4d, 0x02fc1f31, 0x00361392}}, Y: Field{[10]uint32{0x002ebed2, 0x0155b9b5, 0x0264982d, 0x025d2a8f, 0x01fdd8ac, 0x01597793, 0x0238d58f, 0x01e7384a, 0x009a7c7b, 0x00394960}}},
+ {X: Field{[10]uint32{0x03ced775, 0x03b77806, 0x00e56ab5, 0x02297bdd, 0x037290b6, 0x032e773f, 0x0395dbeb, 0x0322e2b5, 0x01c97ac7, 0x0012929b}}, Y: Field{[10]uint32{0x038dd66d, 0x03e3da29, 0x002acb2b, 0x036d091d, 0x031de90c, 0x02703d15, 0x03ef9f73, 0x0079ca50, 0x01b01663, 0x0014a644}}},
+ {X: Field{[10]uint32{0x009e6d10, 0x03a7b3e9, 0x019d2394, 0x03cebab2, 0x03f60adf, 0x017fdbb4, 0x0322b928, 0x02053506, 0x004bde66, 0x003cf511}}, Y: Field{[10]uint32{0x0347da3f, 0x00e33014, 0x02c630a0, 0x01433a75, 0x03fc1ada, 0x026292d6, 0x02b95ac1, 0x0058f52e, 0x00dfa6f0, 0x000290c9}}},
+ {X: Field{[10]uint32{0x0147b4b3, 0x0246dde9, 0x01411f5e, 0x0347f599, 0x00356929, 0x0026548b, 0x0382efee, 0x013dd477, 0x002f1d8e, 0x003c01b1}}, Y: Field{[10]uint32{0x006aa74b, 0x03d127ea, 0x03ae1b5e, 0x03bb5af9, 0x0275c933, 0x0393df45, 0x007848a4, 0x01482971, 0x00d4a666, 0x003da055}}},
+ {X: Field{[10]uint32{0x01d33a07, 0x02cd01ba, 0x03cab48c, 0x0022a8e6, 0x004e72ee, 0x036f7d01, 0x0085520c, 0x007627e4, 0x012c9d9c, 0x002b8c19}}, Y: Field{[10]uint32{0x00a0b2a6, 0x01c303d8, 0x0295c748, 0x03d77f5f, 0x031c9c37, 0x036e3573, 0x00ce7d33, 0x03f95fbf, 0x01c38d63, 0x001b2e76}}},
+ {X: Field{[10]uint32{0x003c9c8f, 0x0010e177, 0x027b2067, 0x03b8f90d, 0x00f2816f, 0x02a8ccac, 0x009ff43a, 0x0263f5bc, 0x02dcbe42, 0x0019ef80}}, Y: Field{[10]uint32{0x013652d9, 0x02126616, 0x002be553, 0x03d82e23, 0x03cd993b, 0x020a45a4, 0x00945b60, 0x03be128b, 0x01a73e4d, 0x001ea6d5}}},
+ {X: Field{[10]uint32{0x0028caca, 0x01952e43, 0x001da759, 0x02ef320a, 0x021869c7, 0x00ce2326, 0x0217e758, 0x03872057, 0x032a5bd5, 0x00363706}}, Y: Field{[10]uint32{0x03b3ec7a, 0x019dba88, 0x028f6cdb, 0x00b3b204, 0x007d315d, 0x00091f65, 0x02d8da42, 0x031f5631, 0x02d927ce, 0x00233b02}}},
+ {X: Field{[10]uint32{0x018b01b5, 0x00be5d14, 0x03adac5c, 0x022e1c42, 0x01ddccc8, 0x0149016c, 0x0250c453, 0x03a21706, 0x0346403d, 0x00039a6c}}, Y: Field{[10]uint32{0x00d965c5, 0x03b8da1e, 0x0283e418, 0x017cf401, 0x03cedf59, 0x01f5f74d, 0x01ed70ab, 0x03914987, 0x02c5fcd7, 0x0002d3be}}},
+ {X: Field{[10]uint32{0x03c4416f, 0x007ed98e, 0x00402892, 0x008fcc2c, 0x01a7aefd, 0x000cbcc7, 0x01425a8d, 0x013b3356, 0x0292c5f8, 0x0009d278}}, Y: Field{[10]uint32{0x006bbd8e, 0x022f78bf, 0x021057e9, 0x02d97ba5, 0x02f59e9f, 0x03f2b6cf, 0x03d94990, 0x00af1100, 0x014e3767, 0x0014330b}}},
+ {X: Field{[10]uint32{0x03ff4640, 0x02eb63e0, 0x02ffe526, 0x01f95554, 0x0053441c, 0x01898bb8, 0x00eac05b, 0x00327267, 0x00d447b0, 0x000d8f64}}, Y: Field{[10]uint32{0x03ee9de9, 0x000f1fce, 0x01ecb620, 0x02402066, 0x0145b9a8, 0x01fccd8c, 0x03b44539, 0x00888654, 0x03adfc73, 0x0001389c}}},
+ },
+ {
+ {X: Field{[10]uint32{0x03ff4640, 0x02eb63e0, 0x02ffe526, 0x01f95554, 0x0053441c, 0x01898bb8, 0x00eac05b, 0x00327267, 0x00d447b0, 0x000d8f64}}, Y: Field{[10]uint32{0x03ee9de9, 0x000f1fce, 0x01ecb620, 0x02402066, 0x0145b9a8, 0x01fccd8c, 0x03b44539, 0x00888654, 0x03adfc73, 0x0001389c}}},
+ {X: Field{[10]uint32{0x0392c541, 0x004a972b, 0x0359dd27, 0x0004bb7e, 0x030b62fb, 0x024ec0af, 0x03973c6c, 0x01fa6d54, 0x0066ed9a, 0x001306e6}}, Y: Field{[10]uint32{0x028fe020, 0x013cff71, 0x031ad72c, 0x035f90fa, 0x00c652ea, 0x0395b9a7, 0x03cb753c, 0x02283dfe, 0x02d320be, 0x00307de4}}},
+ {X: Field{[10]uint32{0x02e55dc8, 0x024485bd, 0x004394b8, 0x02dbab28, 0x026ff95a, 0x00142510, 0x004a440c, 0x03fecaea, 0x004790c5, 0x00110c50}}, Y: Field{[10]uint32{0x03e323b3, 0x02512bb6, 0x02e5031d, 0x02de7aa8, 0x03a66a29, 0x0190bfb5, 0x019837f5, 0x019be3fa, 0x0142e653, 0x0025ac30}}},
+ {X: Field{[10]uint32{0x02aaf3d1, 0x023ca32f, 0x03135e0c, 0x02f068a3, 0x023233ed, 0x01e02d53, 0x01a2f3c0, 0x02c4ad4a, 0x0077ba83, 0x0029020e}}, Y: Field{[10]uint32{0x00b254b9, 0x02d4d37c, 0x02f90b12, 0x015dbb47, 0x022001e7, 0x00d86cf8, 0x03f83d69, 0x02f1e6e2, 0x0212feef, 0x00103a7d}}},
+ {X: Field{[10]uint32{0x001b23a8, 0x0252175c, 0x02e0adfe, 0x011c2a1f, 0x01ab7b7d, 0x02484227, 0x02243d5b, 0x02a1f049, 0x028d866c, 0x002788bf}}, Y: Field{[10]uint32{0x0084edae, 0x0104f142, 0x01cecf7a, 0x0127ed44, 0x03c0f7c9, 0x0267054c, 0x03f3f020, 0x00b4405d, 0x00e9ca12, 0x003f4bfc}}},
+ {X: Field{[10]uint32{0x03f0e9aa, 0x0178658c, 0x0134b3eb, 0x01dac46f, 0x02681127, 0x01604e34, 0x0124ae0d, 0x009ab6de, 0x03e8575f, 0x00394e03}}, Y: Field{[10]uint32{0x0082720f, 0x02904d90, 0x0318ec4b, 0x0177d1a0, 0x016fb94e, 0x00932380, 0x02913639, 0x02d0756d, 0x00739087, 0x002e5ff6}}},
+ {X: Field{[10]uint32{0x031a70e4, 0x01022fc1, 0x03475dd7, 0x007d7d73, 0x01cd5ee5, 0x01c14c1b, 0x01d69e64, 0x00aa34bb, 0x02d503ce, 0x0014237d}}, Y: Field{[10]uint32{0x01950984, 0x0396fdca, 0x02dfedf2, 0x00a3ba2a, 0x014ec032, 0x00cf9271, 0x03304aa7, 0x0310b5dd, 0x039b933b, 0x00055310}}},
+ {X: Field{[10]uint32{0x0140d33a, 0x00f6d69e, 0x003b98cd, 0x00291508, 0x036e0d88, 0x03d5b21b, 0x00e3e1a2, 0x0302d4e9, 0x0241d28c, 0x002a0131}}, Y: Field{[10]uint32{0x0146967a, 0x03a57e9b, 0x036a943c, 0x02a273dc, 0x001af18c, 0x005811fa, 0x02c2842c, 0x029b40f7, 0x03252b2f, 0x00256fa0}}},
+ {X: Field{[10]uint32{0x021abe11, 0x03f69db3, 0x0220f6ea, 0x0309672c, 0x02dab921, 0x00c0496c, 0x00df5819, 0x025d8cce, 0x03845510, 0x0038f6ff}}, Y: Field{[10]uint32{0x03a8de63, 0x026b5527, 0x01c414b4, 0x0240f1ad, 0x03d3c97d, 0x02e2a3bc, 0x038fa75d, 0x00508590, 0x01099a34, 0x0001bcbe}}},
+ {X: Field{[10]uint32{0x023968b6, 0x00a4de2d, 0x03ab2e69, 0x0197b678, 0x02f40261, 0x0224224e, 0x005a9600, 0x01e7ed0f, 0x023dfc65, 0x003de92f}}, Y: Field{[10]uint32{0x00c34882, 0x03768cb4, 0x0105e494, 0x02e34440, 0x0299702f, 0x023294b4, 0x01290303, 0x03185487, 0x036ce823, 0x0035b77b}}},
+ {X: Field{[10]uint32{0x03593449, 0x006c8d80, 0x006ffdcf, 0x004b90a9, 0x02f61b7c, 0x001f4052, 0x00d9c13a, 0x0250361e, 0x0064c7de, 0x00066b38}}, Y: Field{[10]uint32{0x01f83631, 0x0052e4eb, 0x0068a3a4, 0x027d0210, 0x02ac710b, 0x02500b11, 0x02bd739d, 0x028cceff, 0x02035268, 0x0038de64}}},
+ {X: Field{[10]uint32{0x02bc61d6, 0x034d86fb, 0x002de1ae, 0x029f67fd, 0x018a8fd3, 0x035ac7d4, 0x015f0d15, 0x026bc30e, 0x03e4a3ed, 0x0024e7fc}}, Y: Field{[10]uint32{0x03f5cb70, 0x03a919a8, 0x03f82e75, 0x01bade31, 0x00980bf2, 0x03c05b01, 0x006fc4ee, 0x02a43a75, 0x03cf08b7, 0x0037aace}}},
+ {X: Field{[10]uint32{0x00ba6b63, 0x03a624b3, 0x03bb5ee3, 0x01d3f42c, 0x010a0fe6, 0x03aa238c, 0x00c33228, 0x01f6a842, 0x00ec20f8, 0x00361d03}}, Y: Field{[10]uint32{0x0134c5f3, 0x028db01a, 0x0294abee, 0x01730e05, 0x0140104f, 0x000eb0df, 0x00a6ee99, 0x00cafcde, 0x0133c6b9, 0x00191cb0}}},
+ {X: Field{[10]uint32{0x028ff2cf, 0x03b5ba22, 0x02094a34, 0x0171ec18, 0x0038ea75, 0x00901469, 0x03a98dba, 0x02b8c1e5, 0x025f1c4c, 0x000066a7}}, Y: Field{[10]uint32{0x030e4352, 0x01f9d9b6, 0x02d353a7, 0x03ba2121, 0x000ce7eb, 0x0004adcc, 0x01062925, 0x02bd7bea, 0x0067ea85, 0x00079987}}},
+ {X: Field{[10]uint32{0x033ec038, 0x013fcb06, 0x02b27619, 0x01ab9831, 0x00d9fd51, 0x03ca4294, 0x0083e762, 0x01820d92, 0x03391b50, 0x00162b0c}}, Y: Field{[10]uint32{0x00246279, 0x02a8fc44, 0x03bca16e, 0x00f02d3e, 0x03021904, 0x02647fa5, 0x0379249e, 0x024b65e1, 0x0306d55c, 0x002458f5}}},
+ {X: Field{[10]uint32{0x03fdf80c, 0x01e69577, 0x00d1b69f, 0x0206856f, 0x0043e4a7, 0x01d158e2, 0x02244b5b, 0x030afa31, 0x03165df3, 0x0022d2d7}}, Y: Field{[10]uint32{0x03d4fd36, 0x03fc3197, 0x02e56b3e, 0x0151858b, 0x00f9e336, 0x02ac3681, 0x03bd7813, 0x0022d2cf, 0x026f68d3, 0x0012ab42}}},
+ },
+ {
+ {X: Field{[10]uint32{0x03fdf80c, 0x01e69577, 0x00d1b69f, 0x0206856f, 0x0043e4a7, 0x01d158e2, 0x02244b5b, 0x030afa31, 0x03165df3, 0x0022d2d7}}, Y: Field{[10]uint32{0x03d4fd36, 0x03fc3197, 0x02e56b3e, 0x0151858b, 0x00f9e336, 0x02ac3681, 0x03bd7813, 0x0022d2cf, 0x026f68d3, 0x0012ab42}}},
+ {X: Field{[10]uint32{0x0355e4be, 0x03c99c51, 0x0197abb3, 0x03b905f2, 0x0071af64, 0x020f1844, 0x0217c7ec, 0x0245c633, 0x00e4e132, 0x003b4317}}, Y: Field{[10]uint32{0x007bf42f, 0x027e9ba8, 0x01ab163f, 0x0095d8f7, 0x0049d939, 0x029fa9a0, 0x03dad7f5, 0x0116f6fc, 0x03c7bc23, 0x000886a7}}},
+ {X: Field{[10]uint32{0x015812dd, 0x00a960bd, 0x030e2a0a, 0x008d54b4, 0x023d4467, 0x00163de3, 0x02abed6c, 0x00d4bc2d, 0x017a92ff, 0x001c0a6f}}, Y: Field{[10]uint32{0x022d2927, 0x03319ac6, 0x0073c721, 0x01090ecb, 0x0047dae8, 0x00c1a0eb, 0x016544ae, 0x02cf49f7, 0x02dafde8, 0x002c3bbe}}},
+ {X: Field{[10]uint32{0x03cec8ab, 0x01b9b201, 0x012ced4b, 0x0159b815, 0x00e53254, 0x00fc7eba, 0x0315c3f8, 0x039a52ce, 0x0013c44c, 0x003ebb2c}}, Y: Field{[10]uint32{0x03155070, 0x0077f66a, 0x02e2e898, 0x021ae178, 0x019c32b2, 0x030bec4f, 0x02e02c6e, 0x032d5ff0, 0x01e90e9e, 0x0033026d}}},
+ {X: Field{[10]uint32{0x01486ed1, 0x0395a0ef, 0x01b6a49c, 0x02e92559, 0x005745be, 0x0233dd58, 0x01d4109d, 0x01726402, 0x01caeae6, 0x002733fb}}, Y: Field{[10]uint32{0x01e95d8d, 0x03567b5d, 0x02aa24f6, 0x0165a564, 0x01242167, 0x0002cd04, 0x01224812, 0x00cb3ed8, 0x01713d6a, 0x001f0bd3}}},
+ {X: Field{[10]uint32{0x0181fdc2, 0x02affe6c, 0x02364dcd, 0x02ed7318, 0x02dd2f62, 0x0228d39f, 0x02264b81, 0x01b91d2a, 0x002af47e, 0x003d0b04}}, Y: Field{[10]uint32{0x0085d7fd, 0x000024e9, 0x00f2681f, 0x00b668ab, 0x024c1550, 0x021bf88a, 0x03ad05cb, 0x0201b1e3, 0x02b46cfe, 0x0015d40e}}},
+ {X: Field{[10]uint32{0x03d0eaca, 0x01ac69d6, 0x00ab7a20, 0x01dae8b5, 0x01d0c745, 0x032937c6, 0x028fde33, 0x01050cd6, 0x03876341, 0x00336692}}, Y: Field{[10]uint32{0x03ff4acc, 0x03ebed6a, 0x0234f6e6, 0x023bb5bd, 0x030127b3, 0x00cfa822, 0x01488ae9, 0x03c8fa05, 0x0079a1e8, 0x003c1156}}},
+ {X: Field{[10]uint32{0x02d1b1f7, 0x0193aba6, 0x00d3e07f, 0x02093c8f, 0x01b3b2dd, 0x01f2f2bf, 0x0331a0b3, 0x034bcb21, 0x02132dca, 0x00026ee2}}, Y: Field{[10]uint32{0x03811c80, 0x00c189f0, 0x02d53641, 0x0103d1d4, 0x010f54a8, 0x03e18fa1, 0x039dd284, 0x038ee6db, 0x02b2afee, 0x002516ec}}},
+ {X: Field{[10]uint32{0x03bc57c6, 0x0254e8f1, 0x036cbf20, 0x0288fac9, 0x004903d7, 0x00f58c25, 0x00f2d2e9, 0x026faa21, 0x002f88ed, 0x002b4262}}, Y: Field{[10]uint32{0x024a0ab8, 0x00b03b6b, 0x022d3ca3, 0x00dcd643, 0x037b311d, 0x0276af97, 0x00186c72, 0x0294ae8a, 0x008c42fb, 0x001c90f0}}},
+ {X: Field{[10]uint32{0x03927dc7, 0x036ad913, 0x018a49e2, 0x00358f50, 0x0337a7a4, 0x019a8508, 0x029ed953, 0x029aef99, 0x00cc082b, 0x00389828}}, Y: Field{[10]uint32{0x02aef35d, 0x03cdbd11, 0x0382da45, 0x02d118b2, 0x00edbcc0, 0x0096fd10, 0x033cb3d7, 0x02759fc1, 0x0344b0da, 0x000dfb99}}},
+ {X: Field{[10]uint32{0x03a56302, 0x00c31caa, 0x01862ea8, 0x00debc3c, 0x00f506a9, 0x027eb4b8, 0x02da2d2a, 0x02907c7a, 0x010aeb3c, 0x0036744a}}, Y: Field{[10]uint32{0x00291c29, 0x0376bea2, 0x00f2aeaa, 0x03367e9d, 0x001739ae, 0x0098e1b9, 0x01715c67, 0x00fbb40a, 0x0113ec2d, 0x001fad4c}}},
+ {X: Field{[10]uint32{0x02dd7dd6, 0x01b51f7b, 0x0168c386, 0x03899786, 0x0049376f, 0x039f3f7b, 0x01a7840e, 0x01492f29, 0x036a24c7, 0x000cb3f3}}, Y: Field{[10]uint32{0x0208e330, 0x03512bbf, 0x0208b25f, 0x03480d26, 0x027a0d8c, 0x0027d587, 0x008096a4, 0x01dd2188, 0x0234976a, 0x0008611a}}},
+ {X: Field{[10]uint32{0x00d1243a, 0x034dc13d, 0x025fdbac, 0x0008fd52, 0x0002b126, 0x018fd561, 0x00d21ac0, 0x01b3be47, 0x01de539d, 0x002f141e}}, Y: Field{[10]uint32{0x015db68a, 0x02545a21, 0x03169f5c, 0x03d6c7d1, 0x035f7ee4, 0x037ff235, 0x02c72b94, 0x0172ee3b, 0x023b3a70, 0x0019418a}}},
+ {X: Field{[10]uint32{0x02abf83d, 0x0340ff7d, 0x00596696, 0x0163ecb4, 0x02b8f940, 0x00348b00, 0x00be68f1, 0x03127cfb, 0x02dde85a, 0x0008d72a}}, Y: Field{[10]uint32{0x0133e191, 0x03b27a43, 0x010ae7f4, 0x0358c8d8, 0x013f0518, 0x0324eb62, 0x00232a5b, 0x011fafb9, 0x01c745fd, 0x003704be}}},
+ {X: Field{[10]uint32{0x034a3f9f, 0x009139ad, 0x0016908d, 0x01977026, 0x02c287a6, 0x036c9896, 0x03deaae7, 0x031fa244, 0x037e505f, 0x00134c69}}, Y: Field{[10]uint32{0x001e0ba7, 0x02c0904c, 0x00a754fc, 0x0146db80, 0x03cbf6fb, 0x01e009d4, 0x0318f38c, 0x015d6c1a, 0x02c96098, 0x00088907}}},
+ {X: Field{[10]uint32{0x0232fcda, 0x00456494, 0x0277bcb6, 0x03fe9b03, 0x03b700db, 0x02f55231, 0x03771c00, 0x0265b5af, 0x02a6e5db, 0x001c8f2e}}, Y: Field{[10]uint32{0x02b39f5f, 0x0301a767, 0x0094801d, 0x0194dde5, 0x022660a0, 0x0220935b, 0x02113748, 0x031262a4, 0x03b5595c, 0x0025ba19}}},
+ },
+ {
+ {X: Field{[10]uint32{0x0232fcda, 0x00456494, 0x0277bcb6, 0x03fe9b03, 0x03b700db, 0x02f55231, 0x03771c00, 0x0265b5af, 0x02a6e5db, 0x001c8f2e}}, Y: Field{[10]uint32{0x02b39f5f, 0x0301a767, 0x0094801d, 0x0194dde5, 0x022660a0, 0x0220935b, 0x02113748, 0x031262a4, 0x03b5595c, 0x0025ba19}}},
+ {X: Field{[10]uint32{0x00a030d5, 0x00e0f583, 0x009071fd, 0x010c1e61, 0x022d240a, 0x01dce8f1, 0x03d7dc45, 0x01d134d0, 0x0386437b, 0x0015fbe9}}, Y: Field{[10]uint32{0x00b02f9e, 0x02ad109d, 0x0174ab07, 0x00ab97a6, 0x00689b6d, 0x023780fb, 0x03627c92, 0x02146224, 0x030bd1b4, 0x0035c4b6}}},
+ {X: Field{[10]uint32{0x00633cb1, 0x01f827a0, 0x02113256, 0x012da740, 0x03575a22, 0x008607f2, 0x00627321, 0x032b5003, 0x00f317aa, 0x001b77a7}}, Y: Field{[10]uint32{0x03ce6b34, 0x03526a99, 0x01ef357d, 0x036b3e16, 0x0080b27f, 0x006e99aa, 0x019ef86a, 0x03907572, 0x03e7a707, 0x0024623e}}},
+ {X: Field{[10]uint32{0x00584dd5, 0x03f1ddc3, 0x0012a7fa, 0x01f8c9ec, 0x01108057, 0x01489b2e, 0x01f7e9cd, 0x02f10a8b, 0x01436a28, 0x000992ef}}, Y: Field{[10]uint32{0x0304ab11, 0x0089e4dd, 0x00d8de61, 0x010dc5ee, 0x026a1182, 0x030cef88, 0x0375ce24, 0x024ed353, 0x03a94ee0, 0x00361f1b}}},
+ {X: Field{[10]uint32{0x0133f3c5, 0x0294634a, 0x02522419, 0x01c457c4, 0x00085a0f, 0x0391ee14, 0x004bb7f8, 0x0337a04f, 0x032cd5b5, 0x00121be9}}, Y: Field{[10]uint32{0x02fb0f53, 0x0129c6b2, 0x023b79ad, 0x020f3c3c, 0x0362d9b7, 0x03323c67, 0x00c48bae, 0x03750f92, 0x0319f56b, 0x0018b848}}},
+ {X: Field{[10]uint32{0x00e5467d, 0x02f5da91, 0x03ace4d0, 0x02e066ef, 0x0140908a, 0x03b25c3a, 0x021f62e0, 0x028488b0, 0x00f0fc69, 0x0025f419}}, Y: Field{[10]uint32{0x029cb3fa, 0x00c03f47, 0x03ccd797, 0x02e153c5, 0x03da5fb3, 0x02142187, 0x037c66fa, 0x000b300f, 0x032ed334, 0x002265d3}}},
+ {X: Field{[10]uint32{0x0299f728, 0x01650897, 0x02204ebd, 0x03ef9bc4, 0x03677375, 0x01da94c0, 0x024ff27b, 0x02bd3ed9, 0x0174a894, 0x00091e5a}}, Y: Field{[10]uint32{0x03aaebff, 0x000145ba, 0x022d837a, 0x030255d6, 0x025adbf3, 0x03635992, 0x012e87e7, 0x00c007b1, 0x0144688f, 0x0038f5e3}}},
+ {X: Field{[10]uint32{0x032438e8, 0x009af612, 0x02c9d2bf, 0x007f56f7, 0x01a78bc6, 0x008da9e7, 0x0085c056, 0x034aef6b, 0x0124bd40, 0x002a5319}}, Y: Field{[10]uint32{0x018661f4, 0x00b236fc, 0x01b2bc2e, 0x0182838e, 0x027e5d3c, 0x0140678e, 0x03921950, 0x018a03f5, 0x03d992f9, 0x002d4807}}},
+ {X: Field{[10]uint32{0x03b0079a, 0x0031b50b, 0x02049c9e, 0x03dc8e49, 0x00916f9e, 0x01ace0c9, 0x01a59ee7, 0x017fc18c, 0x03daa3d5, 0x000bce72}}, Y: Field{[10]uint32{0x005690ba, 0x00a5cc0b, 0x00230fe2, 0x02f220a8, 0x039bfb3f, 0x01e36962, 0x02936d02, 0x00e60d36, 0x03de1386, 0x002afab6}}},
+ {X: Field{[10]uint32{0x018086c8, 0x01bca26e, 0x023ff5f4, 0x00d2d899, 0x0040c10e, 0x02aa39bf, 0x01263b70, 0x00af74a2, 0x025baa80, 0x000fa10b}}, Y: Field{[10]uint32{0x02e939a9, 0x012d44e3, 0x03d4ef99, 0x01dadd79, 0x0037b8e5, 0x006c1df0, 0x01370463, 0x039cb86e, 0x03f5fc92, 0x00227c93}}},
+ {X: Field{[10]uint32{0x00f7ab73, 0x00c02cb9, 0x003a7793, 0x03aa7511, 0x0262e3d4, 0x014d2bb4, 0x0239e86c, 0x0186e95a, 0x016c327d, 0x003968c7}}, Y: Field{[10]uint32{0x00561f42, 0x00e8ff1c, 0x03a21391, 0x0126a032, 0x01bf8c44, 0x0293b397, 0x0118a977, 0x0275e830, 0x003d8d1e, 0x000dde23}}},
+ {X: Field{[10]uint32{0x03613bec, 0x02072e44, 0x03e67cca, 0x02744073, 0x028bb5fc, 0x01d3e5ca, 0x031b33dc, 0x00def7b7, 0x02b8c939, 0x000b73f2}}, Y: Field{[10]uint32{0x02039215, 0x00c24926, 0x01f383e7, 0x02eb4cfd, 0x003732cf, 0x01bdb1bd, 0x03088b7d, 0x02904997, 0x00dd9474, 0x0011b6f1}}},
+ {X: Field{[10]uint32{0x014dcd86, 0x024a68f0, 0x031b588f, 0x00825afd, 0x011fc5d4, 0x0014773c, 0x010dd982, 0x00d11f7d, 0x014a0d15, 0x00330e27}}, Y: Field{[10]uint32{0x00f0a873, 0x02db7672, 0x0387468e, 0x0063f9f9, 0x0205c57e, 0x03aa4432, 0x0168bdbb, 0x02efb66d, 0x03d660f6, 0x0024eb93}}},
+ {X: Field{[10]uint32{0x03b4f6be, 0x00f5d937, 0x02b64844, 0x03fd3e8f, 0x02b567d5, 0x023c3a2d, 0x004bb042, 0x0208a23b, 0x03d1ae75, 0x0028ab94}}, Y: Field{[10]uint32{0x02eeb9a2, 0x008959d2, 0x00436c04, 0x019f0f50, 0x004c0efa, 0x0306d51f, 0x015679c7, 0x028261f2, 0x014d44b3, 0x001a4cd6}}},
+ {X: Field{[10]uint32{0x00819311, 0x0271bade, 0x0314724f, 0x0388421d, 0x030b3e1e, 0x033d7b47, 0x010a17e0, 0x03a408dd, 0x01c89d71, 0x001fe4a4}}, Y: Field{[10]uint32{0x002eb125, 0x03e6d5eb, 0x02174aa9, 0x0102721a, 0x02120aaa, 0x0149056d, 0x010de8c4, 0x00fbc3d7, 0x011063ec, 0x00276803}}},
+ {X: Field{[10]uint32{0x027dd7fa, 0x00cfb283, 0x019839a5, 0x0048dea4, 0x01094796, 0x00b0b4ed, 0x01feec81, 0x02fe62e9, 0x00d493be, 0x003bafe9}}, Y: Field{[10]uint32{0x01de8999, 0x0353f6b8, 0x03712ddf, 0x030e9c47, 0x019ae4cd, 0x005e0227, 0x02e7edaf, 0x03c3c9a7, 0x00a3970e, 0x001766a3}}},
+ },
+ {
+ {X: Field{[10]uint32{0x027dd7fa, 0x00cfb283, 0x019839a5, 0x0048dea4, 0x01094796, 0x00b0b4ed, 0x01feec81, 0x02fe62e9, 0x00d493be, 0x003bafe9}}, Y: Field{[10]uint32{0x01de8999, 0x0353f6b8, 0x03712ddf, 0x030e9c47, 0x019ae4cd, 0x005e0227, 0x02e7edaf, 0x03c3c9a7, 0x00a3970e, 0x001766a3}}},
+ {X: Field{[10]uint32{0x03d297fd, 0x03ba4211, 0x026d676b, 0x03023d9d, 0x03c4ea4b, 0x00461257, 0x01c6031c, 0x01eff698, 0x02d7a7a9, 0x000e0712}}, Y: Field{[10]uint32{0x01493fc5, 0x0338c61f, 0x01c0093a, 0x00cb6e4e, 0x00f04510, 0x026457b3, 0x03e5fa70, 0x03bb923c, 0x013b238e, 0x0024dabd}}},
+ {X: Field{[10]uint32{0x037ceceb, 0x019e3fee, 0x03af0f3f, 0x024e225f, 0x0073a59f, 0x03db9a05, 0x03fb8126, 0x035140db, 0x02204276, 0x0010dea1}}, Y: Field{[10]uint32{0x02c181e1, 0x00ef30d5, 0x01782736, 0x033f723e, 0x0387220f, 0x0274a5ff, 0x038feb69, 0x030cbda6, 0x03a13eea, 0x0002e45a}}},
+ {X: Field{[10]uint32{0x02de454c, 0x035c108b, 0x008b2448, 0x017fbf74, 0x039cf1d0, 0x0254e311, 0x0210831d, 0x0318ef33, 0x01cd05ad, 0x00387bee}}, Y: Field{[10]uint32{0x00913797, 0x03f48cea, 0x014c6ad9, 0x01129e8b, 0x03464e32, 0x0391dc48, 0x0154c1ff, 0x026f9ec0, 0x0130d8af, 0x0003b2d1}}},
+ {X: Field{[10]uint32{0x017f96f2, 0x035ca782, 0x0335cd58, 0x00a74b21, 0x03358235, 0x028f309c, 0x00b7e3b9, 0x0226f20f, 0x0313e2a4, 0x002a7be7}}, Y: Field{[10]uint32{0x02c04be4, 0x03556c15, 0x00702c03, 0x02bd6a6d, 0x01b74f89, 0x03aed84f, 0x016ee160, 0x0275f365, 0x00e59455, 0x003a0533}}},
+ {X: Field{[10]uint32{0x00bf00eb, 0x036761f7, 0x002274c9, 0x022f0634, 0x0241b4e9, 0x0068c2f0, 0x03e16f6a, 0x03537126, 0x00ae96ea, 0x002e241c}}, Y: Field{[10]uint32{0x030e664e, 0x03c6f346, 0x02a671b7, 0x001adae5, 0x02cb0d8b, 0x007129d9, 0x02294e4c, 0x03623d1c, 0x00c2c8a2, 0x001bc932}}},
+ {X: Field{[10]uint32{0x010cf77e, 0x02ad684d, 0x02b0dbc0, 0x01d152a2, 0x0207dbf5, 0x03ea8190, 0x03827d69, 0x00d6f954, 0x0141ee1d, 0x0019b601}}, Y: Field{[10]uint32{0x00eaa3a6, 0x03e5ebe8, 0x0376d2a5, 0x00eadec6, 0x029444b4, 0x00d584fd, 0x031d4205, 0x03ed0b0f, 0x03e732ff, 0x001473f7}}},
+ {X: Field{[10]uint32{0x01eb99a4, 0x03fbacca, 0x03b18d33, 0x027ccf51, 0x00c7e541, 0x02bd1d6a, 0x02c235e9, 0x01c04316, 0x01b1a269, 0x0014c63e}}, Y: Field{[10]uint32{0x0291f92d, 0x009bbbbf, 0x02c652c7, 0x0103478f, 0x00a41f2b, 0x02ed017a, 0x032d93ae, 0x0290655d, 0x03eb4bed, 0x003d1333}}},
+ {X: Field{[10]uint32{0x03213a5a, 0x01218a21, 0x0262b935, 0x0129e17e, 0x000b7320, 0x019330f2, 0x03508a1c, 0x00fe8afc, 0x01e13650, 0x0018ab01}}, Y: Field{[10]uint32{0x006a9e45, 0x0348703d, 0x014efc10, 0x000605e6, 0x01e55909, 0x01ea495e, 0x015e79e0, 0x029b934e, 0x01f3a0d1, 0x0008dbef}}},
+ {X: Field{[10]uint32{0x03c76ac1, 0x0086cf3b, 0x02c05d6b, 0x02572908, 0x016124c3, 0x0354fa26, 0x021859a7, 0x00de10df, 0x03bfab10, 0x000623bc}}, Y: Field{[10]uint32{0x028f00bc, 0x0180ca94, 0x03875351, 0x03a0f1d8, 0x00e4d66d, 0x03ce638e, 0x005fb18c, 0x02ea6740, 0x017a052f, 0x0039bf26}}},
+ {X: Field{[10]uint32{0x03bad12b, 0x03f52619, 0x02e1ec30, 0x0003abd9, 0x0385d5ea, 0x031bcb6c, 0x03613af5, 0x023d6d6f, 0x00497244, 0x003284f1}}, Y: Field{[10]uint32{0x0323b0f2, 0x0267d1a5, 0x03566896, 0x01c44695, 0x026370ab, 0x02ab68f5, 0x015fa64e, 0x021f22b0, 0x018361c2, 0x0020ea82}}},
+ {X: Field{[10]uint32{0x02fbe7b2, 0x01bfe6ad, 0x025a3b9d, 0x03051635, 0x005eaded, 0x00aa2118, 0x036bbb1b, 0x0107e3cc, 0x03669cb4, 0x00099221}}, Y: Field{[10]uint32{0x01bc2a34, 0x029e2f08, 0x03603932, 0x0205a83a, 0x005638d9, 0x000b77c6, 0x02f2dcad, 0x0112623c, 0x02b4b201, 0x00278576}}},
+ {X: Field{[10]uint32{0x0080414e, 0x03b97e57, 0x00f7fdda, 0x0218b59b, 0x0114ef8a, 0x01182792, 0x0011c4f4, 0x00aba16b, 0x0101a705, 0x00073b2c}}, Y: Field{[10]uint32{0x02169a3b, 0x03a524b4, 0x031d0dca, 0x039511c8, 0x02907557, 0x017b6b45, 0x01aa3283, 0x01f3ed39, 0x00669609, 0x003cd0d8}}},
+ {X: Field{[10]uint32{0x0320907d, 0x00793462, 0x0051c50d, 0x0358581e, 0x003b15b2, 0x012143fd, 0x002f4589, 0x03089ec0, 0x01bc3e54, 0x003e62d7}}, Y: Field{[10]uint32{0x00c926af, 0x004c66d7, 0x00e35835, 0x038096a4, 0x0241fcd9, 0x02ea7327, 0x0139b706, 0x004fe90a, 0x00bd4f4a, 0x0038b542}}},
+ {X: Field{[10]uint32{0x02d810a9, 0x016f2313, 0x00155c4f, 0x00fcf1c0, 0x024f889d, 0x0077c8e4, 0x010daf5f, 0x023e7325, 0x007504d7, 0x000a9a64}}, Y: Field{[10]uint32{0x029b4728, 0x01ace23e, 0x005c7cf8, 0x03a5fb05, 0x00667d47, 0x013ec13f, 0x02c58695, 0x03ff6b0f, 0x039b6c3d, 0x00153e40}}},
+ {X: Field{[10]uint32{0x01a48db0, 0x01e0d6ce, 0x003bfefd, 0x028a6cf0, 0x019f1215, 0x02def791, 0x011d0a09, 0x01c59c9e, 0x00da696e, 0x000403d1}}, Y: Field{[10]uint32{0x03c65a09, 0x0357358a, 0x015ac0fb, 0x0063fd46, 0x02b7ff4a, 0x03024199, 0x008f3300, 0x002ddcbb, 0x013192a0, 0x00337678}}},
+ },
+ {
+ {X: Field{[10]uint32{0x01a48db0, 0x01e0d6ce, 0x003bfefd, 0x028a6cf0, 0x019f1215, 0x02def791, 0x011d0a09, 0x01c59c9e, 0x00da696e, 0x000403d1}}, Y: Field{[10]uint32{0x03c65a09, 0x0357358a, 0x015ac0fb, 0x0063fd46, 0x02b7ff4a, 0x03024199, 0x008f3300, 0x002ddcbb, 0x013192a0, 0x00337678}}},
+ {X: Field{[10]uint32{0x024df706, 0x014a13c7, 0x008084b0, 0x03e48df4, 0x01d8d9c8, 0x02d31066, 0x0015dff2, 0x031dc6a1, 0x01f2ceb5, 0x00230262}}, Y: Field{[10]uint32{0x0172fa98, 0x02b168d7, 0x011aa736, 0x03d45594, 0x0060de6b, 0x0277259b, 0x012172cb, 0x0080d3ff, 0x01044f43, 0x003ed36f}}},
+ {X: Field{[10]uint32{0x01bc15b4, 0x02684d25, 0x02ee69cb, 0x02391968, 0x01927502, 0x03b5f2a3, 0x0058ee9c, 0x02b727b6, 0x022e51ee, 0x00043a43}}, Y: Field{[10]uint32{0x00aa258d, 0x02f98256, 0x02a8834e, 0x018c0aed, 0x014ca589, 0x01ab47dd, 0x017a8c61, 0x03810935, 0x030380d5, 0x0031a28d}}},
+ {X: Field{[10]uint32{0x0047bffd, 0x018f0cf7, 0x03c1bb1e, 0x00e6f256, 0x019c5285, 0x0098b009, 0x02481743, 0x019c1312, 0x013c5e26, 0x003ee3c5}}, Y: Field{[10]uint32{0x0149b095, 0x02917776, 0x02613090, 0x0226b150, 0x031dde13, 0x012f3354, 0x03a11d9b, 0x0188605b, 0x029dc5e0, 0x001b289e}}},
+ {X: Field{[10]uint32{0x03e75269, 0x00ff0c0f, 0x033182dd, 0x033014f4, 0x01a377a3, 0x0052df73, 0x035b90b7, 0x0058e115, 0x0342da54, 0x003dd08b}}, Y: Field{[10]uint32{0x03e49bd5, 0x0203a1c5, 0x018e0189, 0x00dfd28e, 0x037fb3a2, 0x027d8d65, 0x00ce7dcb, 0x0024ff46, 0x031a3313, 0x00101b0b}}},
+ {X: Field{[10]uint32{0x021c0a80, 0x00aaf21e, 0x01c740f6, 0x0163196a, 0x034d6251, 0x000bfe70, 0x03c9be70, 0x033296c5, 0x0268a614, 0x002dac56}}, Y: Field{[10]uint32{0x01ce0a03, 0x03404410, 0x016eeb6c, 0x02cc20b8, 0x009c9a12, 0x03d94db5, 0x00e223ee, 0x02d87a95, 0x0214d6cd, 0x003eb98b}}},
+ {X: Field{[10]uint32{0x01a7175f, 0x02d9a5bd, 0x0342a653, 0x01c74c73, 0x03edb8e7, 0x00b577ae, 0x0079a558, 0x00f3fdca, 0x010417d4, 0x000b632b}}, Y: Field{[10]uint32{0x039d592a, 0x01eee46e, 0x025e0cf3, 0x03f672d7, 0x037a846b, 0x004b274d, 0x03232fa6, 0x02a529ee, 0x0383318c, 0x0031cfce}}},
+ {X: Field{[10]uint32{0x03b2629a, 0x0286e2d2, 0x027b8b8f, 0x0161dcde, 0x0065a02c, 0x01ca1c21, 0x00cc9f0a, 0x0145d568, 0x033fd75d, 0x0039d1cc}}, Y: Field{[10]uint32{0x0146f6d6, 0x0365869a, 0x0169a9f8, 0x02a9b86a, 0x01c88376, 0x00130960, 0x00436038, 0x00304533, 0x02014507, 0x003cabff}}},
+ {X: Field{[10]uint32{0x00b51045, 0x0326f0e5, 0x025b3e34, 0x025bcc70, 0x03bbc6c8, 0x007a33dc, 0x0273d4eb, 0x01ba962b, 0x011db98a, 0x0007b2ff}}, Y: Field{[10]uint32{0x02c70026, 0x019c4040, 0x0022d53a, 0x011ad0d9, 0x00b19006, 0x0126a6ce, 0x03d0bb18, 0x030e9911, 0x02308b99, 0x00073db8}}},
+ {X: Field{[10]uint32{0x0013e439, 0x016d5b19, 0x02f674a3, 0x03bf7757, 0x02f92f69, 0x01fb6d92, 0x00b1bfeb, 0x038a5abe, 0x03b8b477, 0x00265d06}}, Y: Field{[10]uint32{0x0032cd5b, 0x015f609a, 0x026e43e6, 0x0325a5d1, 0x02b17c15, 0x01638f9e, 0x035aa562, 0x0326979c, 0x01b07bd9, 0x003791fa}}},
+ {X: Field{[10]uint32{0x01358533, 0x0335d9ba, 0x00b9df7a, 0x03e753ed, 0x0010a933, 0x0074caa3, 0x02955a29, 0x01d4a20f, 0x00c5fe57, 0x00268225}}, Y: Field{[10]uint32{0x0360ba08, 0x03871770, 0x01dadfb3, 0x02f6ee03, 0x0165a6e5, 0x0153f0c8, 0x0117d5f9, 0x023f0c7e, 0x03c4201b, 0x0029e620}}},
+ {X: Field{[10]uint32{0x02b062d4, 0x02a942a4, 0x02141a7c, 0x03966eda, 0x027a5ce7, 0x00fa889e, 0x03b17128, 0x03ab281b, 0x02a43256, 0x000d658f}}, Y: Field{[10]uint32{0x03b25302, 0x02a9346e, 0x019b1a10, 0x02e59379, 0x02d04082, 0x027022a5, 0x00ce196f, 0x039726ff, 0x01454951, 0x003d96f8}}},
+ {X: Field{[10]uint32{0x018ef7f6, 0x01017586, 0x00f9f694, 0x03dde81e, 0x025923f3, 0x00ee2ba9, 0x019c8527, 0x034b8d6f, 0x0049db4f, 0x00199376}}, Y: Field{[10]uint32{0x011eac94, 0x025bfcd7, 0x02ecee74, 0x02cc6e39, 0x03fc3d3a, 0x03411633, 0x0048ce5d, 0x01e4ca85, 0x001717f2, 0x002b5448}}},
+ {X: Field{[10]uint32{0x019334f0, 0x02d9bcc4, 0x011b60d0, 0x03ece82b, 0x0174728e, 0x0170a790, 0x020e8248, 0x030c871a, 0x037b02cf, 0x0033aede}}, Y: Field{[10]uint32{0x01e45191, 0x0142f494, 0x036cb167, 0x0276e780, 0x004765a2, 0x0374b8dc, 0x01ec0f74, 0x0128cae8, 0x0243633b, 0x003f8f7c}}},
+ {X: Field{[10]uint32{0x03c934b3, 0x0029adf0, 0x022c4e0c, 0x02016c2b, 0x022b31f5, 0x020469c0, 0x031d9669, 0x02e18e08, 0x029377d0, 0x0020844e}}, Y: Field{[10]uint32{0x002c6a0f, 0x01798ab1, 0x0280377e, 0x009a6911, 0x00aa1f7c, 0x0168318a, 0x0066cf2b, 0x00d99821, 0x00dac9ae, 0x0023686e}}},
+ {X: Field{[10]uint32{0x0134fd2d, 0x02b379b9, 0x033852c8, 0x011193ce, 0x03a77f8d, 0x02813005, 0x009227a4, 0x03b46c77, 0x03e262c7, 0x003840c6}}, Y: Field{[10]uint32{0x0056a00d, 0x03c63ca5, 0x02d79a44, 0x01067873, 0x02f292dd, 0x0165d4d6, 0x036a4176, 0x010179ae, 0x01928940, 0x00275c18}}},
+ },
+ {
+ {X: Field{[10]uint32{0x0134fd2d, 0x02b379b9, 0x033852c8, 0x011193ce, 0x03a77f8d, 0x02813005, 0x009227a4, 0x03b46c77, 0x03e262c7, 0x003840c6}}, Y: Field{[10]uint32{0x0056a00d, 0x03c63ca5, 0x02d79a44, 0x01067873, 0x02f292dd, 0x0165d4d6, 0x036a4176, 0x010179ae, 0x01928940, 0x00275c18}}},
+ {X: Field{[10]uint32{0x015c8356, 0x009f8daa, 0x0185784e, 0x03177a53, 0x01028a6a, 0x03ca6cb2, 0x0395dcd0, 0x0227aae7, 0x03224c80, 0x003d2e4f}}, Y: Field{[10]uint32{0x02001fd3, 0x02186e6f, 0x0209abd5, 0x00d12455, 0x00c37ef1, 0x0103bba4, 0x025f6a7a, 0x018b7ec3, 0x02ec0629, 0x00299ea4}}},
+ {X: Field{[10]uint32{0x03028d83, 0x0188ebbb, 0x03961579, 0x01b6e9d0, 0x03619592, 0x01779a76, 0x01abe5a1, 0x0217b1a9, 0x03c4e3c7, 0x0029fafd}}, Y: Field{[10]uint32{0x01d0bed1, 0x000e4ae6, 0x03919964, 0x009d2c14, 0x0347a389, 0x00112012, 0x019c7377, 0x018b573f, 0x012fbfe3, 0x00188145}}},
+ {X: Field{[10]uint32{0x03160e8a, 0x018bf85e, 0x0296c20d, 0x004be5f9, 0x00d51e85, 0x0096c22c, 0x01622ea0, 0x0148dac6, 0x00a1fce5, 0x0002746b}}, Y: Field{[10]uint32{0x00a04c44, 0x0014315f, 0x035e534e, 0x03ba484a, 0x026fe9e0, 0x0036309f, 0x016692ce, 0x03c318f9, 0x008f5101, 0x000454c6}}},
+ {X: Field{[10]uint32{0x03dd5cfa, 0x00390089, 0x014b5bae, 0x004dfc27, 0x036a89c5, 0x0098d18c, 0x01c6a534, 0x013d3073, 0x008dcb02, 0x0016d728}}, Y: Field{[10]uint32{0x0248e98c, 0x0129be67, 0x029d3e66, 0x0332bcc9, 0x00bfd067, 0x0221a425, 0x011f0cea, 0x016097a6, 0x02f70aa1, 0x000fb32d}}},
+ {X: Field{[10]uint32{0x03b61ee5, 0x021104de, 0x00c13f28, 0x038bec7c, 0x02da4f04, 0x025d2b9b, 0x02638cd8, 0x0086e198, 0x0230cc87, 0x003524cc}}, Y: Field{[10]uint32{0x01d694a8, 0x03693439, 0x00ddc662, 0x0231690e, 0x021ad12c, 0x03b2bed7, 0x00c5e9d1, 0x02748fb7, 0x01abf51a, 0x00008702}}},
+ {X: Field{[10]uint32{0x03531f82, 0x014a38c8, 0x02c9f2b9, 0x01aec430, 0x01ff5132, 0x02708b0a, 0x02f3e748, 0x012ed733, 0x02acc111, 0x00011bc9}}, Y: Field{[10]uint32{0x03ceda07, 0x017f22c2, 0x01c7fa50, 0x01736ad5, 0x01d02594, 0x03f0c95e, 0x02370ac2, 0x020bab38, 0x0331635b, 0x001ae012}}},
+ {X: Field{[10]uint32{0x01ba7fc2, 0x035f411d, 0x01562e97, 0x024eff0e, 0x03518b3a, 0x02087379, 0x022ad793, 0x00ae7862, 0x01cc454c, 0x00319b16}}, Y: Field{[10]uint32{0x035f5956, 0x00f1a73d, 0x015977ec, 0x0376c565, 0x02f00a60, 0x02b0432c, 0x024f3cea, 0x003f3efa, 0x03e2bfb3, 0x0036564b}}},
+ {X: Field{[10]uint32{0x00432711, 0x00550dc4, 0x02b9060b, 0x00bf7645, 0x02cf140b, 0x02265916, 0x0396f0f0, 0x03bed4d7, 0x02d931e0, 0x00304649}}, Y: Field{[10]uint32{0x03e2610c, 0x009878bb, 0x00055e49, 0x00b283cd, 0x0383ab92, 0x01b331b3, 0x0094bf18, 0x02da2461, 0x00cc7d25, 0x0022f87e}}},
+ {X: Field{[10]uint32{0x02be316c, 0x01b1b348, 0x03ad0f83, 0x00fc9e39, 0x016bf404, 0x0097bd7c, 0x017cef5b, 0x00deccac, 0x01aa4a0b, 0x00156735}}, Y: Field{[10]uint32{0x03e04013, 0x02ae7267, 0x000e71a6, 0x0074d81e, 0x038a389a, 0x01d31a4b, 0x01ba9298, 0x0101dbcb, 0x009c08d4, 0x002ab551}}},
+ {X: Field{[10]uint32{0x01257963, 0x0261d3e8, 0x02861c17, 0x014b0d2a, 0x005b018d, 0x00e25e71, 0x01bb54b5, 0x023cb9b3, 0x02e9eb68, 0x001a4211}}, Y: Field{[10]uint32{0x026f9835, 0x01d96651, 0x02b253a5, 0x02a08724, 0x036cbc3c, 0x024beedf, 0x0017024f, 0x03af16d0, 0x03cb7f3f, 0x00389217}}},
+ {X: Field{[10]uint32{0x0004554a, 0x03772f3b, 0x00ffe530, 0x02ed1a23, 0x00aadcff, 0x028428bb, 0x00652c27, 0x0346811d, 0x03c89873, 0x00225bcd}}, Y: Field{[10]uint32{0x029138df, 0x03e7f864, 0x017dcd68, 0x0186b310, 0x01e6085b, 0x03a046fc, 0x0222bb04, 0x0312b369, 0x03e7224a, 0x000e0108}}},
+ {X: Field{[10]uint32{0x02e23ace, 0x004e52f7, 0x012fd2d1, 0x0196d537, 0x01dec87c, 0x0128ca45, 0x027552df, 0x0082eaee, 0x03fb8c92, 0x003ecf7d}}, Y: Field{[10]uint32{0x0322e8de, 0x037bd325, 0x03f5ee09, 0x010bfb49, 0x029e7271, 0x036ead62, 0x02251540, 0x00f1594a, 0x01bc11c7, 0x0014438a}}},
+ {X: Field{[10]uint32{0x00d36f89, 0x003c4c17, 0x00b925f9, 0x031b9c03, 0x031e4754, 0x00a403b8, 0x01d68b87, 0x0148e594, 0x03176915, 0x00120adb}}, Y: Field{[10]uint32{0x00a4f423, 0x0328dc9c, 0x01a68467, 0x00d10b52, 0x0219ee07, 0x035ffa4b, 0x018c23e6, 0x03316b2c, 0x011df9a5, 0x003a30f0}}},
+ {X: Field{[10]uint32{0x00272351, 0x01f3fbd4, 0x03109860, 0x00f7e67f, 0x0170734b, 0x02ac7350, 0x038a3eb3, 0x01462cfa, 0x02c24f5c, 0x001b7617}}, Y: Field{[10]uint32{0x03c7664b, 0x01fe8adf, 0x0017c9b0, 0x03df0f82, 0x03877c6f, 0x03d7106d, 0x01407f9a, 0x0109f827, 0x03f4121f, 0x0005ba99}}},
+ {X: Field{[10]uint32{0x0094696d, 0x039a2364, 0x02af52d5, 0x019a9075, 0x005cf8b2, 0x010ef5fb, 0x002839f1, 0x016d4c2b, 0x00ae46d5, 0x003fba9b}}, Y: Field{[10]uint32{0x00090088, 0x0177afc6, 0x0042d315, 0x015f3105, 0x00981c89, 0x03cfb357, 0x02e4e12b, 0x0386eac1, 0x036c97dc, 0x00395f1a}}},
+ },
+ {
+ {X: Field{[10]uint32{0x0094696d, 0x039a2364, 0x02af52d5, 0x019a9075, 0x005cf8b2, 0x010ef5fb, 0x002839f1, 0x016d4c2b, 0x00ae46d5, 0x003fba9b}}, Y: Field{[10]uint32{0x00090088, 0x0177afc6, 0x0042d315, 0x015f3105, 0x00981c89, 0x03cfb357, 0x02e4e12b, 0x0386eac1, 0x036c97dc, 0x00395f1a}}},
+ {X: Field{[10]uint32{0x02752b08, 0x010102bb, 0x021870aa, 0x0382ccc6, 0x01141eca, 0x036cb85e, 0x03261af9, 0x021f8714, 0x03621adb, 0x00134002}}, Y: Field{[10]uint32{0x00302cea, 0x00a147d2, 0x0293a3e7, 0x03c4671c, 0x00cb7df5, 0x00b65cb3, 0x02d82558, 0x0349572d, 0x038f18e0, 0x001a8356}}},
+ {X: Field{[10]uint32{0x00dfd587, 0x00d86ed2, 0x02656079, 0x00e326c0, 0x015ec4ba, 0x033d684b, 0x0067aaa2, 0x01422cd2, 0x001bacf4, 0x0014212d}}, Y: Field{[10]uint32{0x01470e89, 0x027a5fe4, 0x035606e7, 0x0181a247, 0x035db6f5, 0x014a49d1, 0x01aa6c85, 0x0034c586, 0x031a1d98, 0x000d2a58}}},
+ {X: Field{[10]uint32{0x035c58ef, 0x0258bf51, 0x01b77f89, 0x0100f87c, 0x00d657a0, 0x011c5c4a, 0x02a26211, 0x0281775a, 0x00ca203d, 0x001c7d5c}}, Y: Field{[10]uint32{0x035d420e, 0x01269cb4, 0x03e7df86, 0x00030cd8, 0x01f2445d, 0x02f256e3, 0x01557345, 0x02203749, 0x015b95dc, 0x003ad090}}},
+ {X: Field{[10]uint32{0x02b34cc6, 0x008c985e, 0x00a12d08, 0x01d9f3cc, 0x00c80c29, 0x00635c4a, 0x03b3f1fd, 0x0357a94f, 0x003e0642, 0x0013c530}}, Y: Field{[10]uint32{0x007e681f, 0x03094be6, 0x01d0225e, 0x033a3a07, 0x00b9de3c, 0x00e98950, 0x013a70f4, 0x03a25319, 0x00a8caa4, 0x001ed4f4}}},
+ {X: Field{[10]uint32{0x00953fa9, 0x01655b5b, 0x003db4d0, 0x00a7c2e3, 0x0228ab26, 0x02f46301, 0x01f485d4, 0x024c8ce9, 0x010eaaab, 0x002927b4}}, Y: Field{[10]uint32{0x02fb4c72, 0x00af4891, 0x0181b67b, 0x00d25a38, 0x035ae875, 0x0037f77e, 0x03476c0a, 0x014e6380, 0x0094660f, 0x00331cae}}},
+ {X: Field{[10]uint32{0x0241d90d, 0x01dc4044, 0x004f8342, 0x01076c91, 0x03e81cf1, 0x03b774d8, 0x01436095, 0x027b4750, 0x007e49c7, 0x0029d36e}}, Y: Field{[10]uint32{0x037adad4, 0x01462e0f, 0x02313f32, 0x024d1282, 0x00a9ee50, 0x02205c72, 0x03dd08a5, 0x03bbcc9f, 0x01cdaf23, 0x003de1a4}}},
+ {X: Field{[10]uint32{0x03ff8359, 0x022c1810, 0x03651604, 0x00771979, 0x0046b482, 0x00876805, 0x01282b5c, 0x03494edf, 0x03629f7b, 0x0028adec}}, Y: Field{[10]uint32{0x0286fec2, 0x025ffb3f, 0x03835a23, 0x00d411bc, 0x0110d108, 0x01c78a72, 0x02937a3f, 0x0048b55e, 0x00941695, 0x001a4c0e}}},
+ {X: Field{[10]uint32{0x01c1ae1f, 0x0332888c, 0x000b2a5e, 0x031a2b35, 0x00456e58, 0x02e8d596, 0x00dcd44e, 0x028b3e6b, 0x025744ba, 0x001a407e}}, Y: Field{[10]uint32{0x022838b0, 0x00cc1974, 0x03a930f8, 0x0297971d, 0x01d79f3b, 0x00a72403, 0x01b5380c, 0x03084918, 0x00882273, 0x000d7797}}},
+ {X: Field{[10]uint32{0x01f1f366, 0x002404e6, 0x036be34f, 0x01e8f401, 0x004a7905, 0x01265364, 0x015f216b, 0x01fdee92, 0x025c5da4, 0x001744d3}}, Y: Field{[10]uint32{0x00990f2c, 0x0034fa71, 0x00b39e2b, 0x005882a2, 0x03cf02d6, 0x00ea0adc, 0x03e2a4ae, 0x011410b6, 0x034d3e08, 0x0000ec7b}}},
+ {X: Field{[10]uint32{0x027a4bdb, 0x00c4206c, 0x00cac4b0, 0x0010d525, 0x01046a6d, 0x006ee8d7, 0x004b643f, 0x02049e89, 0x002d1d43, 0x00234f36}}, Y: Field{[10]uint32{0x029a8a2c, 0x00d31f39, 0x01296c3d, 0x01f4dc2b, 0x02d4e380, 0x001d88db, 0x00fbf9d0, 0x0107d1c3, 0x016180ee, 0x0026f509}}},
+ {X: Field{[10]uint32{0x03a1d916, 0x025b4ff9, 0x01f3a3c0, 0x00e5747c, 0x00315b0a, 0x0176ec1c, 0x006158a6, 0x027432eb, 0x01acb6d5, 0x001943be}}, Y: Field{[10]uint32{0x0068387b, 0x0127299c, 0x026ba858, 0x00229db0, 0x0158bb46, 0x01e6e0b1, 0x029c0b92, 0x02c461c3, 0x01f21162, 0x00021744}}},
+ {X: Field{[10]uint32{0x00ec1d2d, 0x0334f1ad, 0x00f45440, 0x0171b9f6, 0x03d9099f, 0x019eda47, 0x029d6729, 0x011ce6bf, 0x0363d606, 0x003abe60}}, Y: Field{[10]uint32{0x00838452, 0x039d5813, 0x00b53fcf, 0x01515fa1, 0x02a9f52d, 0x01ac666a, 0x01228a0e, 0x023489dd, 0x003a7fe7, 0x00394606}}},
+ {X: Field{[10]uint32{0x03d98ee1, 0x0323a022, 0x012bed42, 0x01ea4226, 0x03579df3, 0x023ee865, 0x027c924a, 0x00860ffa, 0x02ce0ceb, 0x00075dc2}}, Y: Field{[10]uint32{0x0138ffca, 0x02e05e47, 0x017ecf9f, 0x029038f5, 0x0237f61c, 0x01954aa1, 0x0163038b, 0x03d779e2, 0x0005f46e, 0x0009e3e2}}},
+ {X: Field{[10]uint32{0x005ae767, 0x00d6fdc1, 0x0371cbcb, 0x032e7a25, 0x00c273a9, 0x0301b976, 0x0340e052, 0x02d8d19b, 0x01163aed, 0x003ee56f}}, Y: Field{[10]uint32{0x03bf0e11, 0x00fa82be, 0x03134185, 0x01c62967, 0x03b816f4, 0x01a089d6, 0x0004d9d3, 0x0376f148, 0x00d811a8, 0x00199305}}},
+ {X: Field{[10]uint32{0x01ec6cb1, 0x02a5e2f0, 0x003de33f, 0x01f60216, 0x00feed65, 0x01bff28f, 0x027be4be, 0x027372cd, 0x011d9104, 0x003699ea}}, Y: Field{[10]uint32{0x0268be1d, 0x03aa389e, 0x000a17e9, 0x031423dd, 0x01dec7ad, 0x0325e039, 0x03463f7e, 0x010af107, 0x02354816, 0x0026eb2a}}},
+ },
+ {
+ {X: Field{[10]uint32{0x01ec6cb1, 0x02a5e2f0, 0x003de33f, 0x01f60216, 0x00feed65, 0x01bff28f, 0x027be4be, 0x027372cd, 0x011d9104, 0x003699ea}}, Y: Field{[10]uint32{0x0268be1d, 0x03aa389e, 0x000a17e9, 0x031423dd, 0x01dec7ad, 0x0325e039, 0x03463f7e, 0x010af107, 0x02354816, 0x0026eb2a}}},
+ {X: Field{[10]uint32{0x03e741c9, 0x00f32087, 0x01a835ee, 0x00d733a9, 0x018bbd9f, 0x03c0361c, 0x00c0cfaa, 0x03bd61f0, 0x01365fa1, 0x00136eb3}}, Y: Field{[10]uint32{0x038eb623, 0x03843e0c, 0x0135f60b, 0x02827f01, 0x010cc384, 0x020e0a67, 0x01cfd59e, 0x0224b9ff, 0x000e8a51, 0x0005b0d5}}},
+ {X: Field{[10]uint32{0x01bc8a44, 0x03741945, 0x011a19ef, 0x01df2f85, 0x03684101, 0x029697f1, 0x00565a4b, 0x03b68f4e, 0x00583cfc, 0x00134060}}, Y: Field{[10]uint32{0x02dbc09e, 0x03e53246, 0x01a362f1, 0x011a160b, 0x03969420, 0x01f58e04, 0x029ba800, 0x03d74d9f, 0x02c18cb4, 0x000e8cf1}}},
+ {X: Field{[10]uint32{0x00e218da, 0x036a2ead, 0x0205087e, 0x03c549a1, 0x010f4c85, 0x03d07096, 0x00f17d8f, 0x026fbb9a, 0x03c48150, 0x0004f47f}}, Y: Field{[10]uint32{0x03191c19, 0x02d06776, 0x01127e0d, 0x0081b56f, 0x01a4ad01, 0x006dd62f, 0x00b9337b, 0x0258773b, 0x011fa991, 0x0018020e}}},
+ {X: Field{[10]uint32{0x01daeb00, 0x02ad4a19, 0x01f76bc1, 0x00933991, 0x015923eb, 0x00edba74, 0x02cb6a27, 0x03e55c20, 0x0107df5c, 0x000bd985}}, Y: Field{[10]uint32{0x033992c0, 0x01d9e260, 0x0308c122, 0x009c6574, 0x006ecdee, 0x00802b74, 0x039537a8, 0x02ccfdbb, 0x02136f52, 0x003f5704}}},
+ {X: Field{[10]uint32{0x035b4eb8, 0x0084f924, 0x01a3cf52, 0x03c6ae2d, 0x0207f557, 0x032bcb73, 0x03f54a3c, 0x00895bc3, 0x00e43adf, 0x0030465a}}, Y: Field{[10]uint32{0x03911add, 0x01265b5b, 0x0149b704, 0x02504a9c, 0x0242f8b4, 0x019d9be0, 0x039d81fe, 0x01163e0d, 0x02937786, 0x002ffd79}}},
+ {X: Field{[10]uint32{0x016aa6d9, 0x02a42824, 0x02dcf182, 0x02d91dc0, 0x003662c8, 0x0060d68e, 0x00f174da, 0x011f4895, 0x017d05fe, 0x003d6504}}, Y: Field{[10]uint32{0x032e50cf, 0x001a5baf, 0x01b86c7d, 0x0220f9ad, 0x037a9277, 0x00252f3a, 0x025dbdab, 0x006c4b3d, 0x01a56e97, 0x0032a9d8}}},
+ {X: Field{[10]uint32{0x02e96db8, 0x02d032a8, 0x01bff133, 0x005b38a7, 0x033cc9d9, 0x016c14ce, 0x019c79c4, 0x018001d9, 0x039cef6c, 0x000866d3}}, Y: Field{[10]uint32{0x013b6bc7, 0x03c069e3, 0x0176527d, 0x0314fa41, 0x02394f8a, 0x000dca9b, 0x0244180c, 0x03bfabd6, 0x0205d959, 0x00093671}}},
+ {X: Field{[10]uint32{0x02c6f4c0, 0x0380e55e, 0x01c4ccaa, 0x03a3312f, 0x01da4e8d, 0x01a59c47, 0x021c38be, 0x02737b13, 0x017f1f4d, 0x0003cb53}}, Y: Field{[10]uint32{0x02339b58, 0x01eeeb5c, 0x02656e7e, 0x029e4090, 0x028f6a10, 0x00e079c7, 0x03b27fdf, 0x0379345f, 0x03857e93, 0x000fb227}}},
+ {X: Field{[10]uint32{0x00284327, 0x0347e6bd, 0x02facc56, 0x02c0e0e9, 0x03ac4020, 0x001a8d05, 0x003ebdd8, 0x02d17375, 0x00bdcd64, 0x0003da10}}, Y: Field{[10]uint32{0x01e2ab72, 0x0349d691, 0x01eb7400, 0x029dc4ae, 0x03b68dab, 0x02d8452b, 0x01e8bff4, 0x0069dd25, 0x037f100f, 0x003cc134}}},
+ {X: Field{[10]uint32{0x03428cb2, 0x01414ff7, 0x02b55d85, 0x03f59a88, 0x01233822, 0x0256343c, 0x037a1815, 0x012ef47a, 0x02c2e2a1, 0x00075773}}, Y: Field{[10]uint32{0x015b189b, 0x03b44022, 0x004a51e5, 0x00be1d81, 0x00bd3e91, 0x021bc2e2, 0x00787824, 0x03231434, 0x0083b142, 0x001b9710}}},
+ {X: Field{[10]uint32{0x01dffc96, 0x02e84256, 0x01857295, 0x0296beb1, 0x019228cd, 0x0205fac0, 0x039b395c, 0x00f7abdb, 0x00bee148, 0x0005871b}}, Y: Field{[10]uint32{0x03492de4, 0x02f3d846, 0x00621c93, 0x0324babe, 0x019b9634, 0x032c60c1, 0x01259391, 0x03fe616f, 0x0292a6b9, 0x002289b2}}},
+ {X: Field{[10]uint32{0x00381273, 0x03aa23ea, 0x01ae5fb0, 0x02581a4f, 0x02d84376, 0x031049b3, 0x01ea9b2c, 0x019d0e7f, 0x02fd3009, 0x00227668}}, Y: Field{[10]uint32{0x0309773d, 0x03acfbb4, 0x03324a03, 0x0202b449, 0x018f61d6, 0x01b3d8bd, 0x03aaf207, 0x01bd40dd, 0x01b451d6, 0x0037f289}}},
+ {X: Field{[10]uint32{0x010a683f, 0x018557e0, 0x031be4cf, 0x00c6fdba, 0x005248bd, 0x00626aa3, 0x02c7285f, 0x035283f9, 0x02cc3f64, 0x001e0f43}}, Y: Field{[10]uint32{0x00f54c4c, 0x019b38b8, 0x01ee9dfd, 0x0221c8e5, 0x02b5de92, 0x01fcb547, 0x02b74572, 0x03d28c05, 0x01029073, 0x0008029b}}},
+ {X: Field{[10]uint32{0x01c71d91, 0x00cacb2d, 0x00fd21cc, 0x00b8aa25, 0x0223945e, 0x0056bfb3, 0x02a1c131, 0x002b8714, 0x038783a5, 0x0020c646}}, Y: Field{[10]uint32{0x02148a61, 0x027b0238, 0x005ee70b, 0x0145d411, 0x0217a11f, 0x005f2ba2, 0x006de13d, 0x006dc278, 0x03157380, 0x00382b1f}}},
+ {X: Field{[10]uint32{0x0237b7c0, 0x01173306, 0x0069f575, 0x03deec44, 0x01ec08d0, 0x03bc8854, 0x02000935, 0x0133769b, 0x03aa0b33, 0x0014e413}}, Y: Field{[10]uint32{0x022771c8, 0x02c25ac0, 0x034699dc, 0x02078510, 0x00139999, 0x00834f07, 0x009eccac, 0x0041b623, 0x03d0bc80, 0x0016f021}}},
+ },
+ {
+ {X: Field{[10]uint32{0x0237b7c0, 0x01173306, 0x0069f575, 0x03deec44, 0x01ec08d0, 0x03bc8854, 0x02000935, 0x0133769b, 0x03aa0b33, 0x0014e413}}, Y: Field{[10]uint32{0x022771c8, 0x02c25ac0, 0x034699dc, 0x02078510, 0x00139999, 0x00834f07, 0x009eccac, 0x0041b623, 0x03d0bc80, 0x0016f021}}},
+ {X: Field{[10]uint32{0x00a47ca9, 0x0343c7ce, 0x005ad57c, 0x02aab43e, 0x012a6ee7, 0x00c5a657, 0x03991196, 0x0119d4f3, 0x01af9d41, 0x0000695d}}, Y: Field{[10]uint32{0x03ebcdb7, 0x0177cb9d, 0x03ea667c, 0x01767d35, 0x00bdb93c, 0x006ee1a6, 0x015fc52e, 0x00370f31, 0x01cb8ab2, 0x000c0e3c}}},
+ {X: Field{[10]uint32{0x00a2050e, 0x0310bf92, 0x00a6771a, 0x015d857e, 0x01742ef5, 0x0391e6e2, 0x03769cc6, 0x01cc625a, 0x00fd24bc, 0x0019cdc9}}, Y: Field{[10]uint32{0x021d3d70, 0x03269241, 0x01cc2b90, 0x03f50cd2, 0x01be6bac, 0x02a21adb, 0x03482c09, 0x01288080, 0x0257896a, 0x003933e0}}},
+ {X: Field{[10]uint32{0x0315565b, 0x0275d578, 0x00c6ee30, 0x020f4f08, 0x02d3a61a, 0x01d85575, 0x031f5c1b, 0x0350e729, 0x00437621, 0x003d7c38}}, Y: Field{[10]uint32{0x012ecc82, 0x010c2bf7, 0x0240a678, 0x02fcfb5f, 0x02a5bf61, 0x037dc406, 0x02189160, 0x0014afd8, 0x0262be5a, 0x001ae7d3}}},
+ {X: Field{[10]uint32{0x02de63bf, 0x01b920e0, 0x01c66cbf, 0x00ca1c98, 0x00e03af5, 0x03d859aa, 0x0198a631, 0x0130c279, 0x03a472df, 0x0010d9bb}}, Y: Field{[10]uint32{0x017924cd, 0x01a90238, 0x02d6b02c, 0x01496aa9, 0x02f33b0c, 0x00c09a3a, 0x022537e1, 0x035f38bb, 0x0109bee2, 0x000b9f76}}},
+ {X: Field{[10]uint32{0x01a78179, 0x03d807ea, 0x02afe34c, 0x00149835, 0x036b50e9, 0x00827b67, 0x01a47336, 0x02e37241, 0x03f37081, 0x00265729}}, Y: Field{[10]uint32{0x03ec1f47, 0x03eed32b, 0x00e52931, 0x015a6ad9, 0x02bbcc85, 0x0124a18e, 0x0234d880, 0x015cead7, 0x01e95553, 0x00366816}}},
+ {X: Field{[10]uint32{0x02f96190, 0x0149ffc1, 0x0125ef10, 0x03a41f25, 0x03d1f02d, 0x019ea9d7, 0x03e55696, 0x02ac7e5e, 0x03627991, 0x001ef5d4}}, Y: Field{[10]uint32{0x03da00f6, 0x005c812a, 0x02695a3d, 0x0170783a, 0x02ce0fcc, 0x010e09f5, 0x02d64749, 0x018c2757, 0x02b3dbba, 0x0020cdbc}}},
+ {X: Field{[10]uint32{0x01362d33, 0x01e0767d, 0x03642cbe, 0x00851889, 0x0347cbc9, 0x01c32938, 0x027f36d9, 0x01ba695e, 0x030b6c0b, 0x0023d41b}}, Y: Field{[10]uint32{0x03fa243f, 0x021f4321, 0x00eaf304, 0x01750eee, 0x0048cf92, 0x03c70cda, 0x030c5424, 0x0185c654, 0x015d2afa, 0x0011a7e5}}},
+ {X: Field{[10]uint32{0x02ad41ed, 0x0054c555, 0x0352433b, 0x00d7d3c0, 0x020308ac, 0x02463724, 0x023419e8, 0x035706be, 0x027bddaa, 0x0013dfa4}}, Y: Field{[10]uint32{0x02642d57, 0x00d5e19f, 0x0375bdf4, 0x01c53abd, 0x022e7314, 0x00ea3da9, 0x02980df5, 0x022c4154, 0x005156a8, 0x0037f9dd}}},
+ {X: Field{[10]uint32{0x025e6618, 0x010e868f, 0x03cb4c18, 0x03d6763f, 0x03166d65, 0x03904918, 0x02017141, 0x01f6fe1f, 0x007338b9, 0x003ef084}}, Y: Field{[10]uint32{0x0230c860, 0x01536808, 0x00cf20ed, 0x00fc772f, 0x017f3c4f, 0x03ce6c47, 0x0160c1a6, 0x025052d2, 0x0059185c, 0x0027e6c2}}},
+ {X: Field{[10]uint32{0x03748690, 0x01814499, 0x00b01cfa, 0x0137618c, 0x007d5790, 0x0374cf40, 0x03452b1e, 0x00733252, 0x03867d29, 0x0008d572}}, Y: Field{[10]uint32{0x0089582b, 0x011d4c53, 0x0139147c, 0x01633472, 0x00582868, 0x016a9f16, 0x01b85ec1, 0x0387e3d5, 0x018a5a71, 0x000870bc}}},
+ {X: Field{[10]uint32{0x009135d3, 0x02361761, 0x031fc13d, 0x03404b90, 0x0274203c, 0x004c2c5a, 0x00134294, 0x02a16997, 0x03c7ef82, 0x00016502}}, Y: Field{[10]uint32{0x022255d2, 0x035d1465, 0x02391d02, 0x00a32640, 0x02f12863, 0x02ad9a1e, 0x035b0c7a, 0x02ad84bd, 0x0185eb4f, 0x002414de}}},
+ {X: Field{[10]uint32{0x02de7f16, 0x03a88582, 0x0028c6da, 0x03a4f2f8, 0x00ae9cba, 0x0309d749, 0x03592ab6, 0x0295b004, 0x025b9b3d, 0x0002d9a0}}, Y: Field{[10]uint32{0x00c56217, 0x01109a12, 0x00d2bd94, 0x0037cf9f, 0x03b7243c, 0x02d5ea5f, 0x03a76ba8, 0x026cffbc, 0x00b818e0, 0x00287ee8}}},
+ {X: Field{[10]uint32{0x00d2374d, 0x00c1c059, 0x02b2bc63, 0x025a133f, 0x00dcf38a, 0x02cffda9, 0x025a9f71, 0x03274976, 0x02d8b5e5, 0x0005bba3}}, Y: Field{[10]uint32{0x00865998, 0x016f2d3f, 0x01dd980e, 0x003b9b53, 0x02075513, 0x016dbfd8, 0x026b843e, 0x03c44228, 0x03f0546f, 0x003d4039}}},
+ {X: Field{[10]uint32{0x01060d5b, 0x01ac08a6, 0x03a7c290, 0x02c470e8, 0x03904613, 0x027e5472, 0x0109b2fd, 0x0008b2d8, 0x003cf0bd, 0x003d8081}}, Y: Field{[10]uint32{0x02f88f13, 0x01bd42c6, 0x01a3f76f, 0x034adf74, 0x0237aa56, 0x0313defa, 0x01a8f64a, 0x033c6620, 0x0306c1f0, 0x003c0dad}}},
+ {X: Field{[10]uint32{0x02d86047, 0x02567d0e, 0x00bcaeff, 0x0010ea6e, 0x0379b53a, 0x0132a419, 0x01cca776, 0x020e9dc6, 0x010bd359, 0x00239ef3}}, Y: Field{[10]uint32{0x0060372a, 0x00011fa1, 0x028b3ea1, 0x00b91ff5, 0x0179e88e, 0x032a5451, 0x00310420, 0x0292ce50, 0x030b2a3d, 0x00042ddd}}},
+ },
+ {
+ {X: Field{[10]uint32{0x02d86047, 0x02567d0e, 0x00bcaeff, 0x0010ea6e, 0x0379b53a, 0x0132a419, 0x01cca776, 0x020e9dc6, 0x010bd359, 0x00239ef3}}, Y: Field{[10]uint32{0x0060372a, 0x00011fa1, 0x028b3ea1, 0x00b91ff5, 0x0179e88e, 0x032a5451, 0x00310420, 0x0292ce50, 0x030b2a3d, 0x00042ddd}}},
+ {X: Field{[10]uint32{0x013f0351, 0x00a022fc, 0x009e777d, 0x0234f40e, 0x033bc15b, 0x025a5437, 0x010f3199, 0x01ca770d, 0x03aa195e, 0x000cecd6}}, Y: Field{[10]uint32{0x038d7418, 0x0140f332, 0x01b702bc, 0x03bef222, 0x00aa6560, 0x012354af, 0x00640362, 0x02fe1fe5, 0x0185640a, 0x00296280}}},
+ {X: Field{[10]uint32{0x001ead4b, 0x0221e681, 0x003c1ffe, 0x03eda46c, 0x023a75ed, 0x02bf9daf, 0x014734ef, 0x00cdfb1c, 0x000c8c8f, 0x002ff243}}, Y: Field{[10]uint32{0x02fedaed, 0x00b1bc21, 0x02e3e745, 0x03fccb82, 0x02fb468e, 0x01410b4d, 0x03a718dd, 0x037b4936, 0x01b1e09c, 0x001ea520}}},
+ {X: Field{[10]uint32{0x0014bb36, 0x0371ec91, 0x03ca6d71, 0x00272b5e, 0x0256f6e1, 0x01c7df88, 0x0383ad20, 0x00fe5572, 0x02ae22c9, 0x000dd37b}}, Y: Field{[10]uint32{0x01af734a, 0x016faa63, 0x00321787, 0x018c0395, 0x013828d6, 0x0201bdca, 0x0032c06f, 0x013e6458, 0x01b64fcd, 0x0005c459}}},
+ {X: Field{[10]uint32{0x01bb3b3e, 0x01ef41dd, 0x033cb26e, 0x005fbe7d, 0x03507536, 0x030b4fd6, 0x025993e8, 0x02aa9372, 0x011cbe3f, 0x001ccb7c}}, Y: Field{[10]uint32{0x03366693, 0x01df87b5, 0x00436cc5, 0x01b59316, 0x02e69dad, 0x00094e45, 0x03e25584, 0x0265df2d, 0x003ede8f, 0x001fd064}}},
+ {X: Field{[10]uint32{0x01b7ad0d, 0x03215bb9, 0x011d3694, 0x01f2a743, 0x0076ee76, 0x01b45b11, 0x010d8a49, 0x0380370b, 0x010dabb5, 0x000e955a}}, Y: Field{[10]uint32{0x02e8c407, 0x0261e42c, 0x01218d6c, 0x022b2b0c, 0x0301cacb, 0x01fbe67c, 0x021fbac9, 0x0195efec, 0x021975a0, 0x0030f8a3}}},
+ {X: Field{[10]uint32{0x008dc3b9, 0x016cf062, 0x00c99c5f, 0x0093a5dd, 0x0019a669, 0x0325fbd8, 0x01a8840c, 0x011ed0a3, 0x00b96039, 0x00133825}}, Y: Field{[10]uint32{0x01c0de52, 0x013dedb9, 0x006502c1, 0x008327a8, 0x0216205b, 0x029dab28, 0x03b4d80c, 0x026cfb55, 0x03babf1a, 0x00014e43}}},
+ {X: Field{[10]uint32{0x02e7d616, 0x02992b5a, 0x01f0c5e8, 0x03cad8aa, 0x00944dba, 0x016bac37, 0x006e0739, 0x03ab95f1, 0x009c7f3a, 0x0008e030}}, Y: Field{[10]uint32{0x021bbc1a, 0x026f9205, 0x02756009, 0x00523e11, 0x0293af92, 0x01426c26, 0x0198aefd, 0x0255abc5, 0x02193464, 0x001be3a1}}},
+ {X: Field{[10]uint32{0x02aafe5a, 0x01d782c2, 0x02edd4c3, 0x02ce9426, 0x00e25470, 0x02c08ff4, 0x018a6a95, 0x019f7a5b, 0x02b76fc6, 0x0026a5a3}}, Y: Field{[10]uint32{0x02d975c0, 0x02ff5093, 0x00cc0ce6, 0x0029979c, 0x02e7b588, 0x03618743, 0x03c66d03, 0x02e8a553, 0x0307a6d3, 0x002afdbe}}},
+ {X: Field{[10]uint32{0x03a32402, 0x018b453b, 0x025348d9, 0x0184f19a, 0x025e659c, 0x000e00d3, 0x037db3bb, 0x03aaaf83, 0x02ced74c, 0x00060293}}, Y: Field{[10]uint32{0x00894b4e, 0x00de0371, 0x0118b320, 0x024dff73, 0x01a602c5, 0x013fafa1, 0x03bfc2f2, 0x035f8ab6, 0x015747ba, 0x00126293}}},
+ {X: Field{[10]uint32{0x034c6397, 0x0072fe7c, 0x00d09375, 0x02d401d3, 0x0107dd3d, 0x014dac88, 0x00aef802, 0x0186553c, 0x03ed0171, 0x0034f1be}}, Y: Field{[10]uint32{0x00cb3f9c, 0x0323415a, 0x00e00b1f, 0x00224178, 0x028a0c77, 0x00baad91, 0x018394d9, 0x00abc651, 0x02c55e5e, 0x00128374}}},
+ {X: Field{[10]uint32{0x01b2df82, 0x0291ec26, 0x00fb1927, 0x00591c41, 0x00ec5e7a, 0x0338cb01, 0x012d18ec, 0x02e4b332, 0x005c62bf, 0x00101699}}, Y: Field{[10]uint32{0x01307dbf, 0x00a0d282, 0x0062b5da, 0x02cb3b71, 0x022ffa9d, 0x008df9c4, 0x00aca61e, 0x025b83d7, 0x0014f44d, 0x002f0f2d}}},
+ {X: Field{[10]uint32{0x02c3137e, 0x020964c2, 0x0244619b, 0x018a96bd, 0x03fe925b, 0x02aace54, 0x02f06a76, 0x010ee380, 0x03981292, 0x00132f78}}, Y: Field{[10]uint32{0x02c02fe6, 0x023c573b, 0x02d60c00, 0x02b9623a, 0x00d193a7, 0x02e530dc, 0x0092a134, 0x01856540, 0x00608f13, 0x001b3955}}},
+ {X: Field{[10]uint32{0x010ce56e, 0x006788f9, 0x014a3c71, 0x03c35de4, 0x02c8293a, 0x032f9e05, 0x00590fca, 0x006bcf9a, 0x00d3ce53, 0x002a9b71}}, Y: Field{[10]uint32{0x01edd739, 0x03ce8d1f, 0x010a8b9d, 0x036be3dc, 0x03c11984, 0x03997998, 0x01f6edc5, 0x0394a5b8, 0x018fa241, 0x003af1e6}}},
+ {X: Field{[10]uint32{0x00fbf84b, 0x008c1b38, 0x00b8a47a, 0x032ef0fc, 0x0303c48f, 0x030533ae, 0x03d9c730, 0x01891ee2, 0x033c82b1, 0x0012e74c}}, Y: Field{[10]uint32{0x036c3c48, 0x03b92d28, 0x035e6239, 0x010f8bd6, 0x036766d5, 0x019e6dfa, 0x0313d982, 0x03054954, 0x03fbe24c, 0x003f5ff1}}},
+ {X: Field{[10]uint32{0x01c43862, 0x01078566, 0x026690a8, 0x03c60e5f, 0x0271a7f4, 0x026e06f7, 0x01081868, 0x03fc879b, 0x0134c1cd, 0x000e17bb}}, Y: Field{[10]uint32{0x002e5453, 0x0163f955, 0x01c8cc04, 0x03b0821b, 0x036b304e, 0x027afd15, 0x001de19e, 0x008fd59c, 0x03c3e8ea, 0x000a0efa}}},
+ },
+ {
+ {X: Field{[10]uint32{0x01c43862, 0x01078566, 0x026690a8, 0x03c60e5f, 0x0271a7f4, 0x026e06f7, 0x01081868, 0x03fc879b, 0x0134c1cd, 0x000e17bb}}, Y: Field{[10]uint32{0x002e5453, 0x0163f955, 0x01c8cc04, 0x03b0821b, 0x036b304e, 0x027afd15, 0x001de19e, 0x008fd59c, 0x03c3e8ea, 0x000a0efa}}},
+ {X: Field{[10]uint32{0x00f2827c, 0x00e89c1e, 0x01ce2dc8, 0x010afbf0, 0x0147c826, 0x0357d9f4, 0x016be134, 0x01520011, 0x02083daf, 0x003dbd88}}, Y: Field{[10]uint32{0x00aaa102, 0x02c82d48, 0x01bf6d15, 0x01d120c8, 0x03e657ca, 0x00d9f3b9, 0x02c5715b, 0x00e83ebc, 0x02817de7, 0x0006f353}}},
+ {X: Field{[10]uint32{0x02e2d9b3, 0x034c1aad, 0x0163514b, 0x020c6ce3, 0x0241db92, 0x0273e115, 0x012ea613, 0x00179d78, 0x00f397c7, 0x000668c5}}, Y: Field{[10]uint32{0x03aaaf33, 0x00bb8972, 0x03e56d55, 0x00749012, 0x03a5021d, 0x01fd4a2c, 0x00965f88, 0x00a3748d, 0x00f5dac7, 0x001b2b36}}},
+ {X: Field{[10]uint32{0x015adcb6, 0x024c825c, 0x02f369d8, 0x0339f631, 0x01cd91c3, 0x0347f095, 0x030cb3c3, 0x00f78af5, 0x01188f95, 0x003ec9b9}}, Y: Field{[10]uint32{0x00ba68f3, 0x02f28ed6, 0x02b5449d, 0x00c6e2de, 0x0116d2cb, 0x027405da, 0x02846a71, 0x028d3563, 0x00811012, 0x003cf84a}}},
+ {X: Field{[10]uint32{0x02f00480, 0x0161fac4, 0x01cee7d8, 0x00128403, 0x01203588, 0x013d9c86, 0x01c98636, 0x036a8d57, 0x014b95a8, 0x0016103b}}, Y: Field{[10]uint32{0x0222cf9e, 0x00b578af, 0x03872159, 0x01514ab8, 0x02ba7522, 0x00577636, 0x0168deaa, 0x03c5041e, 0x026b220b, 0x0019c336}}},
+ {X: Field{[10]uint32{0x03a52264, 0x01cdf658, 0x00b3752e, 0x000c5500, 0x03d0adfc, 0x02b9473f, 0x006e2a9a, 0x01ffa6a0, 0x000de818, 0x00217ff7}}, Y: Field{[10]uint32{0x02da2082, 0x01f4a6a0, 0x01d0498c, 0x0324ac5e, 0x00678182, 0x01551c1b, 0x02568f50, 0x0252342f, 0x00187ae2, 0x000ffb8c}}},
+ {X: Field{[10]uint32{0x03f54c42, 0x0137ba08, 0x03dc8e48, 0x00f09a68, 0x0145dc1a, 0x03b394c9, 0x0058c1f4, 0x0063ec77, 0x01a53469, 0x0027d5c0}}, Y: Field{[10]uint32{0x03eb6a21, 0x0387124b, 0x02527860, 0x012ac867, 0x0189ee78, 0x01ca6ff7, 0x0395b6b5, 0x02795efe, 0x03b8801d, 0x00339ee3}}},
+ {X: Field{[10]uint32{0x00788c1e, 0x0136dd58, 0x011d7ed4, 0x00183a2f, 0x03d18c37, 0x018f3aad, 0x035c6bc7, 0x004cb4a3, 0x025911b9, 0x00226448}}, Y: Field{[10]uint32{0x028f0ef1, 0x031088a3, 0x01e11635, 0x0213f7be, 0x0236969c, 0x026c4dbe, 0x03876355, 0x02b26c9e, 0x01987cc9, 0x0036a2d3}}},
+ {X: Field{[10]uint32{0x0122461a, 0x0104cca5, 0x018327e9, 0x00996f1c, 0x00bcb30a, 0x019fbe68, 0x03b87010, 0x0233f006, 0x0169235a, 0x0009fd84}}, Y: Field{[10]uint32{0x03301a2d, 0x0132be71, 0x039446aa, 0x00836a18, 0x00e4981b, 0x01d0a3ba, 0x008c5612, 0x01ab4ba9, 0x01a9900a, 0x003944bc}}},
+ {X: Field{[10]uint32{0x02ddd3ac, 0x03662579, 0x006516db, 0x00ce8bc0, 0x037bf8f6, 0x0338b568, 0x012d90d6, 0x00b82561, 0x03e6732a, 0x0025bb94}}, Y: Field{[10]uint32{0x029b6fde, 0x0096cd9c, 0x01c06fbf, 0x025db19b, 0x02ef0d07, 0x03afc783, 0x004c9711, 0x00a7cb63, 0x02eae4b6, 0x000e6e72}}},
+ {X: Field{[10]uint32{0x014f36b9, 0x00b26cb4, 0x03390cce, 0x02ed8ee7, 0x012598ca, 0x017d2a60, 0x01bf2f43, 0x03e50498, 0x01856cee, 0x001901de}}, Y: Field{[10]uint32{0x00b4b50a, 0x02c7ba79, 0x02eb2894, 0x01c12673, 0x008cda08, 0x02169edb, 0x010d75fd, 0x01bbebbe, 0x028f44e5, 0x00369864}}},
+ {X: Field{[10]uint32{0x02a88c9c, 0x03fd692d, 0x01f069c1, 0x0198c527, 0x02a37b68, 0x01cb2a8a, 0x021d9ac9, 0x0244e62c, 0x0081e547, 0x001e1964}}, Y: Field{[10]uint32{0x01a7d19b, 0x0164d15d, 0x02a155e0, 0x026c0ead, 0x0112cf91, 0x017a0658, 0x028fa722, 0x0034ada7, 0x007792a3, 0x0016688c}}},
+ {X: Field{[10]uint32{0x00d6b76f, 0x018f7e65, 0x015dbcef, 0x03eed320, 0x027fe5a9, 0x00277fab, 0x02f708bc, 0x019a7d14, 0x00e31c85, 0x00288dd4}}, Y: Field{[10]uint32{0x01cca8da, 0x024b3323, 0x008d141d, 0x0047f6e1, 0x03e7707c, 0x03504444, 0x032fa3e4, 0x0379b6b0, 0x0314a6e7, 0x003dcce6}}},
+ {X: Field{[10]uint32{0x00c13079, 0x0336c4f4, 0x01688d4f, 0x00055374, 0x026f3e5a, 0x036bcc05, 0x01fea76e, 0x003aee02, 0x010b6e1f, 0x001794ad}}, Y: Field{[10]uint32{0x00e1296f, 0x00f1239c, 0x00e1cc10, 0x0344f58f, 0x004a3829, 0x01280fab, 0x02987853, 0x012c326d, 0x02e73a35, 0x000667b7}}},
+ {X: Field{[10]uint32{0x00eee475, 0x03a7193f, 0x0382b12e, 0x00a103b5, 0x01ab6ac8, 0x00f2bfd0, 0x013c021f, 0x00de357b, 0x0007a3f2, 0x002efc6b}}, Y: Field{[10]uint32{0x03fe5067, 0x008a8021, 0x001d6846, 0x02250e2d, 0x0324eb9d, 0x01ac57f8, 0x0083cc83, 0x01839842, 0x00deead4, 0x002d2fee}}},
+ {X: Field{[10]uint32{0x03fac3a7, 0x01bb61b0, 0x03bc9c60, 0x0129651f, 0x000fddf8, 0x004f7e86, 0x03c73a44, 0x03c6458d, 0x01b803ec, 0x0001be76}}, Y: Field{[10]uint32{0x02842160, 0x0224180e, 0x01002d86, 0x00bd70a0, 0x007ea4dd, 0x03917135, 0x038e2a30, 0x0166e9a6, 0x028e6030, 0x001f2031}}},
+ },
+ {
+ {X: Field{[10]uint32{0x03fac3a7, 0x01bb61b0, 0x03bc9c60, 0x0129651f, 0x000fddf8, 0x004f7e86, 0x03c73a44, 0x03c6458d, 0x01b803ec, 0x0001be76}}, Y: Field{[10]uint32{0x02842160, 0x0224180e, 0x01002d86, 0x00bd70a0, 0x007ea4dd, 0x03917135, 0x038e2a30, 0x0166e9a6, 0x028e6030, 0x001f2031}}},
+ {X: Field{[10]uint32{0x037fd72d, 0x03489d12, 0x01a175c9, 0x03969f93, 0x01da1745, 0x01120a4e, 0x01c36c28, 0x01047073, 0x02ea252b, 0x002ba1bb}}, Y: Field{[10]uint32{0x02ee38bc, 0x0132de93, 0x03728233, 0x015451cb, 0x018d9211, 0x0227fc3a, 0x02b0ace5, 0x000be58a, 0x03c97073, 0x00067a64}}},
+ {X: Field{[10]uint32{0x021ce204, 0x035d7a34, 0x023d524e, 0x0239099d, 0x03b2a725, 0x0329bdcb, 0x0374d859, 0x03193ee0, 0x01d162b3, 0x0010f290}}, Y: Field{[10]uint32{0x034a8f6b, 0x014113a4, 0x02468e52, 0x02ccfa92, 0x039ab6c7, 0x0236e8c7, 0x0250f921, 0x008fe871, 0x0282e370, 0x00373a96}}},
+ {X: Field{[10]uint32{0x00169290, 0x011d099f, 0x032ee7a1, 0x01d73cdb, 0x008718be, 0x01b70b12, 0x01d2f8c5, 0x03fd5798, 0x01f90bbf, 0x00089232}}, Y: Field{[10]uint32{0x003ea257, 0x036284a2, 0x02be2369, 0x0008d768, 0x00e16375, 0x010d6e86, 0x006bb55b, 0x03bb5e94, 0x00692d21, 0x003e8165}}},
+ {X: Field{[10]uint32{0x03e6efda, 0x033a4b3a, 0x0005964f, 0x03cfe1ca, 0x01922d4f, 0x0216941b, 0x026f7237, 0x00afd6d9, 0x02ef2289, 0x00270f81}}, Y: Field{[10]uint32{0x03aefc7d, 0x0103cca9, 0x03df7df1, 0x01a1ecdb, 0x01d43bc8, 0x03389bf5, 0x030b2d44, 0x0248f62b, 0x01e5e762, 0x0029edc2}}},
+ {X: Field{[10]uint32{0x00978583, 0x0290c805, 0x0213f5b3, 0x02bbc185, 0x00cdd6e9, 0x003e4885, 0x03841999, 0x00c4dd25, 0x009b9cf2, 0x000c2afe}}, Y: Field{[10]uint32{0x01c75777, 0x00600d47, 0x004ac446, 0x0288eed6, 0x0063120e, 0x00386ae0, 0x037b4f2d, 0x01d26337, 0x0115477f, 0x0012c0d4}}},
+ {X: Field{[10]uint32{0x02c88be2, 0x009ead71, 0x025e2791, 0x008341bb, 0x03ea2c78, 0x020c1dd6, 0x0372759d, 0x003c0cee, 0x02a313e2, 0x00175be2}}, Y: Field{[10]uint32{0x017ad75d, 0x03954fc3, 0x012c2892, 0x023a9afe, 0x00edab6f, 0x02c22f08, 0x01aaf33a, 0x0353a31c, 0x018d8d56, 0x002b712c}}},
+ {X: Field{[10]uint32{0x010964e3, 0x036b12ed, 0x02f76fd0, 0x01df7471, 0x00a99f08, 0x02502174, 0x0011b48d, 0x01101d2b, 0x0216e05c, 0x0038469b}}, Y: Field{[10]uint32{0x0282bfc8, 0x03efe2c1, 0x00c6f767, 0x0384e0c6, 0x0017adc6, 0x01bc2bc9, 0x02d5e259, 0x0350c386, 0x025b87a2, 0x0021f581}}},
+ {X: Field{[10]uint32{0x02d1b844, 0x024d46e4, 0x02484f28, 0x020b05cf, 0x01c69c03, 0x004e22f1, 0x02b15c3c, 0x00357f21, 0x01c304a6, 0x003d5f4d}}, Y: Field{[10]uint32{0x01266837, 0x02eaef58, 0x01c6a464, 0x0080c245, 0x00700697, 0x027918d3, 0x004d3f5a, 0x03d365e4, 0x019ea98e, 0x001c1fcf}}},
+ {X: Field{[10]uint32{0x021f51d3, 0x01c591ec, 0x03df8739, 0x0118b0e7, 0x0011f80d, 0x036842ea, 0x00d419b9, 0x02a5573a, 0x03216726, 0x001a9cfe}}, Y: Field{[10]uint32{0x01224b17, 0x00937669, 0x03774018, 0x011a2d82, 0x022db482, 0x025c844c, 0x02a7d294, 0x03cf09ff, 0x02fca1ed, 0x0013cf3b}}},
+ {X: Field{[10]uint32{0x00c7cb09, 0x03401fcf, 0x03435234, 0x01a28746, 0x023bc7eb, 0x00f61c51, 0x016e1fee, 0x025297d6, 0x007a3a65, 0x0004f9d8}}, Y: Field{[10]uint32{0x00079160, 0x01d6a282, 0x036411be, 0x02ed9ad5, 0x0165eae2, 0x02cd0a67, 0x025fdd85, 0x02e2c78c, 0x008de8fb, 0x000a1372}}},
+ {X: Field{[10]uint32{0x00288015, 0x00df98fb, 0x019cc39a, 0x014fbb72, 0x024673f8, 0x0016daa9, 0x01fac61a, 0x0379bda0, 0x02aad936, 0x002a8053}}, Y: Field{[10]uint32{0x02c1006f, 0x00539991, 0x00ad9df8, 0x001d0f3b, 0x03ef4b9b, 0x03dec3d8, 0x032a7e43, 0x02fa6b0f, 0x03c04636, 0x000f7a44}}},
+ {X: Field{[10]uint32{0x00cdee05, 0x00338496, 0x003b9006, 0x02c85cbb, 0x01a8761f, 0x02c1a407, 0x000250b1, 0x020b9890, 0x03225681, 0x000a6fa8}}, Y: Field{[10]uint32{0x022651c8, 0x0280d669, 0x018e39e4, 0x02db231a, 0x03f9fc31, 0x021c17b1, 0x0009b3fb, 0x02683aa4, 0x01a2690e, 0x001f1036}}},
+ {X: Field{[10]uint32{0x011d45f9, 0x02155e3c, 0x026144cf, 0x0379b1e5, 0x02ba4c1c, 0x01f6de5b, 0x022ef2c7, 0x0144ad3a, 0x03d35337, 0x000dabb8}}, Y: Field{[10]uint32{0x00febad4, 0x02eacfdf, 0x036069d3, 0x0342b11c, 0x00004b35, 0x01f263d5, 0x00b95470, 0x018271e7, 0x0235cd69, 0x0032ab76}}},
+ {X: Field{[10]uint32{0x02f18ada, 0x01b1d584, 0x01bcc11b, 0x024eef6f, 0x01d460bd, 0x00cf5296, 0x0036faff, 0x02239f67, 0x006d2382, 0x003d485e}}, Y: Field{[10]uint32{0x03953516, 0x01a2bf48, 0x030981dd, 0x028db16f, 0x02aa5ef4, 0x03347475, 0x0026102b, 0x036d5fb3, 0x03bf6038, 0x00381a1b}}},
+ {X: Field{[10]uint32{0x02d0e6bd, 0x01f839d0, 0x01e5313b, 0x018f6c3d, 0x03f774d1, 0x00135bb2, 0x022147c1, 0x0138960a, 0x0001243c, 0x000cc8b5}}, Y: Field{[10]uint32{0x0028b2a0, 0x00e8ba5b, 0x03af624f, 0x00fa8a1c, 0x032805f6, 0x0376be6d, 0x03019bc4, 0x013bd6fe, 0x0397e966, 0x0015b9c1}}},
+ },
+ {
+ {X: Field{[10]uint32{0x02d0e6bd, 0x01f839d0, 0x01e5313b, 0x018f6c3d, 0x03f774d1, 0x00135bb2, 0x022147c1, 0x0138960a, 0x0001243c, 0x000cc8b5}}, Y: Field{[10]uint32{0x0028b2a0, 0x00e8ba5b, 0x03af624f, 0x00fa8a1c, 0x032805f6, 0x0376be6d, 0x03019bc4, 0x013bd6fe, 0x0397e966, 0x0015b9c1}}},
+ {X: Field{[10]uint32{0x00ade462, 0x025b4cb0, 0x00f29fc6, 0x0323ab6f, 0x010d4cdd, 0x01320335, 0x00ef31b0, 0x02f6b848, 0x000250ce, 0x00234988}}, Y: Field{[10]uint32{0x0326470c, 0x002a2e43, 0x00b3ad8e, 0x0139c99e, 0x021d4afb, 0x00fb8dae, 0x01f6f2dc, 0x03d0df4c, 0x03b4715b, 0x003afb4e}}},
+ {X: Field{[10]uint32{0x019ab499, 0x0274fc81, 0x00330abd, 0x0271b9cf, 0x000b1329, 0x019fc06f, 0x02196b3c, 0x0016e974, 0x03f3015c, 0x001e2eab}}, Y: Field{[10]uint32{0x02e097fd, 0x0348c63f, 0x01199681, 0x03ba3449, 0x0291632e, 0x0360820b, 0x00a84e0e, 0x0302bebf, 0x00dbdb06, 0x002b52f7}}},
+ {X: Field{[10]uint32{0x0116e633, 0x01190f85, 0x01c8b916, 0x00341cb6, 0x038ed493, 0x0165340e, 0x00068a1f, 0x02faa739, 0x00766eae, 0x00048e30}}, Y: Field{[10]uint32{0x037b7805, 0x036dca31, 0x0022805c, 0x00b731d0, 0x03094625, 0x0070f705, 0x00979e2d, 0x004d675b, 0x002dbb27, 0x0022a76c}}},
+ {X: Field{[10]uint32{0x0106ace6, 0x00f85b3f, 0x020ca449, 0x00dbe0e8, 0x0223709b, 0x024a6ac6, 0x00b84984, 0x038f5308, 0x0211a14a, 0x001bdc3c}}, Y: Field{[10]uint32{0x0202d5de, 0x02fb4d2d, 0x005ee048, 0x019af96b, 0x00753295, 0x01ee67d4, 0x015d8f34, 0x01edcdbe, 0x02309402, 0x001e47a2}}},
+ {X: Field{[10]uint32{0x01cd5379, 0x018ccc29, 0x03cadc30, 0x00e161c2, 0x032db794, 0x02a93488, 0x002481b8, 0x004e0a9e, 0x02d56bdd, 0x0005f01c}}, Y: Field{[10]uint32{0x0108cd25, 0x02b8146c, 0x02d0df7c, 0x01d8996e, 0x038959ac, 0x03c740d3, 0x03c1247a, 0x0281939d, 0x01f4283d, 0x0036406f}}},
+ {X: Field{[10]uint32{0x00ee1b40, 0x03b8fb98, 0x02247dc8, 0x016dc7a5, 0x008ced48, 0x0040f335, 0x00949f19, 0x029057e0, 0x01b29d6a, 0x00385667}}, Y: Field{[10]uint32{0x038f93a6, 0x018997b5, 0x0199de1d, 0x01d2f0ca, 0x03a6363a, 0x028bf1f3, 0x02f894aa, 0x035283be, 0x02232a81, 0x001e4cd8}}},
+ {X: Field{[10]uint32{0x008e7a66, 0x0005549e, 0x0021619b, 0x00a0ac3b, 0x01cddcd7, 0x029a846e, 0x032ea758, 0x0270579e, 0x030770cb, 0x0009c756}}, Y: Field{[10]uint32{0x003c9727, 0x035c9638, 0x0024e7a8, 0x038d422a, 0x03e2a065, 0x026b21df, 0x017d0994, 0x03d24791, 0x005834e7, 0x00174ea9}}},
+ {X: Field{[10]uint32{0x01c00c3e, 0x037e8a12, 0x008e2f81, 0x000f2448, 0x01f00e8f, 0x03514616, 0x02562d33, 0x01a5590d, 0x00970440, 0x002ec2c1}}, Y: Field{[10]uint32{0x01955a35, 0x02a60b44, 0x0090a799, 0x013a4177, 0x02fe6704, 0x02ac6c14, 0x01d2fa17, 0x027d8d95, 0x005853af, 0x001019f9}}},
+ {X: Field{[10]uint32{0x00a923b7, 0x03a1f62a, 0x01b30da1, 0x03bb6071, 0x02aef650, 0x020ce099, 0x00708ab6, 0x0269c150, 0x039b2199, 0x002b0ab2}}, Y: Field{[10]uint32{0x03cd20a6, 0x030492b5, 0x03a4fa2d, 0x02fc4b49, 0x0360b0d0, 0x004f67ac, 0x01afa0df, 0x01c93472, 0x028511c1, 0x001da110}}},
+ {X: Field{[10]uint32{0x01dd32e6, 0x01d6e701, 0x01ee7e0e, 0x0146d4f9, 0x03c663b5, 0x01d697ef, 0x0249dbe0, 0x01e27a6d, 0x01554195, 0x00371690}}, Y: Field{[10]uint32{0x014a99b9, 0x01f6de9d, 0x01bcf80e, 0x0241db92, 0x002ff2ee, 0x006fd651, 0x00ea5e20, 0x019e9db7, 0x00a63f9f, 0x0012bcea}}},
+ {X: Field{[10]uint32{0x022d8dae, 0x00f00632, 0x01ea9579, 0x03e47f49, 0x02ac32a5, 0x032c895b, 0x02b25ef9, 0x024be6e9, 0x00026211, 0x002209c7}}, Y: Field{[10]uint32{0x021e77d9, 0x009b03cf, 0x01099fb4, 0x01b71c5f, 0x00c30087, 0x016afd6b, 0x01c8b3ae, 0x01daa900, 0x01535071, 0x0035c677}}},
+ {X: Field{[10]uint32{0x0144e7cb, 0x0116eb11, 0x020359ed, 0x0096d4a5, 0x01a10642, 0x004053a6, 0x03354a57, 0x00ee76f8, 0x01703987, 0x00055b86}}, Y: Field{[10]uint32{0x01250a37, 0x00e4b02b, 0x039cd6d5, 0x02357ad0, 0x009496d5, 0x00e0d2fa, 0x039572a6, 0x0241f6a4, 0x019f8f31, 0x001af023}}},
+ {X: Field{[10]uint32{0x0089240f, 0x02eb7267, 0x03b858f5, 0x02ebe8b9, 0x0274f8c4, 0x01f8385d, 0x00ee0919, 0x01cce386, 0x010d652d, 0x00056e0e}}, Y: Field{[10]uint32{0x0326f04a, 0x03e7be38, 0x033352e2, 0x02ad7068, 0x01b30367, 0x01e967e6, 0x03dd7ccc, 0x023420ea, 0x020c8efe, 0x001e1b3c}}},
+ {X: Field{[10]uint32{0x019853ca, 0x02f0a731, 0x03f54dbf, 0x01ae7c66, 0x0348e962, 0x0239c584, 0x00a76a22, 0x010e09af, 0x00cecb68, 0x00109a6f}}, Y: Field{[10]uint32{0x01b8d367, 0x0163bd4d, 0x028a3da9, 0x0297e796, 0x01fd3940, 0x010c6902, 0x0084ca9c, 0x005adc8f, 0x001a82c0, 0x003b4ac7}}},
+ {X: Field{[10]uint32{0x0134ab83, 0x035d34a0, 0x03397721, 0x026bdd90, 0x00741b3f, 0x0259961a, 0x011770d8, 0x02df68af, 0x007d2de0, 0x002159cb}}, Y: Field{[10]uint32{0x010313a6, 0x00c253de, 0x00f44c8e, 0x03f314a6, 0x01e77f17, 0x0298b0b9, 0x034049bf, 0x02cbad8d, 0x039b5b43, 0x001f1206}}},
+ },
+ {
+ {X: Field{[10]uint32{0x0134ab83, 0x035d34a0, 0x03397721, 0x026bdd90, 0x00741b3f, 0x0259961a, 0x011770d8, 0x02df68af, 0x007d2de0, 0x002159cb}}, Y: Field{[10]uint32{0x010313a6, 0x00c253de, 0x00f44c8e, 0x03f314a6, 0x01e77f17, 0x0298b0b9, 0x034049bf, 0x02cbad8d, 0x039b5b43, 0x001f1206}}},
+ {X: Field{[10]uint32{0x0317fc25, 0x02e42f07, 0x02d96998, 0x011b7cb9, 0x033b89ea, 0x01722987, 0x00186121, 0x027b00db, 0x036b740f, 0x0014d333}}, Y: Field{[10]uint32{0x03e86e76, 0x031fdbb3, 0x028ddd71, 0x01deff74, 0x010ae3d2, 0x00b550d5, 0x02ae3dd3, 0x00b76d18, 0x00b09c8b, 0x00355c57}}},
+ {X: Field{[10]uint32{0x03ba9000, 0x001c8ea0, 0x028b6fdf, 0x0271a097, 0x01c4872f, 0x0210050f, 0x00876075, 0x036305a1, 0x00f9fff1, 0x002b0e1d}}, Y: Field{[10]uint32{0x0310cf0a, 0x00f1f65b, 0x029fa4da, 0x0035fd9b, 0x03085e35, 0x01045fe4, 0x022dde89, 0x0301a6e1, 0x012308a1, 0x002a997a}}},
+ {X: Field{[10]uint32{0x00bee8b6, 0x01c248fa, 0x008d2c71, 0x011fb3ef, 0x0179020d, 0x023e2abb, 0x01e14201, 0x02dfcc20, 0x035cee87, 0x002a4747}}, Y: Field{[10]uint32{0x010644c1, 0x0345aa90, 0x03225003, 0x027d8a32, 0x02f80056, 0x0376b4ec, 0x03189c8d, 0x023b8569, 0x024ee2df, 0x001d228c}}},
+ {X: Field{[10]uint32{0x0106dbd4, 0x001bd9bb, 0x00d081a6, 0x0215e288, 0x01ec0e3f, 0x0268f9ca, 0x0114075e, 0x01c04e6b, 0x00e7aa68, 0x0015c357}}, Y: Field{[10]uint32{0x011ed495, 0x016fb3af, 0x00bed5a6, 0x01b71918, 0x03b683a3, 0x007406ee, 0x0366e671, 0x000bd816, 0x0349420e, 0x0029ab94}}},
+ {X: Field{[10]uint32{0x03ba402e, 0x0358c2c5, 0x02989ae5, 0x0170b410, 0x03c3b81a, 0x021238f0, 0x03ead0c4, 0x0280a962, 0x035cd18f, 0x0023a246}}, Y: Field{[10]uint32{0x00fad9e0, 0x02d89e71, 0x027ee8e1, 0x0090855e, 0x02af650c, 0x013ca8c1, 0x038d0e40, 0x0319a02c, 0x020e6a9e, 0x003974c3}}},
+ {X: Field{[10]uint32{0x012d230e, 0x0307e482, 0x03928434, 0x02834a4c, 0x01daee32, 0x000d9bbd, 0x03c229ee, 0x022edbe1, 0x00702826, 0x001d6d7e}}, Y: Field{[10]uint32{0x011570b8, 0x032f7ef5, 0x038fb037, 0x02c01447, 0x020267a4, 0x01377ea3, 0x01787455, 0x02148d8f, 0x0221e3a7, 0x00149f33}}},
+ {X: Field{[10]uint32{0x0184cf74, 0x02870956, 0x01f10aa1, 0x0116fbd8, 0x000735ae, 0x00b50e0f, 0x02214dde, 0x0238d706, 0x0023d90c, 0x00305723}}, Y: Field{[10]uint32{0x01ccb000, 0x0123360e, 0x015a2c4a, 0x00b542c0, 0x0247bf77, 0x0097f5ee, 0x01c6f45e, 0x0088d723, 0x00d82852, 0x000aea55}}},
+ {X: Field{[10]uint32{0x034fcc0e, 0x01afdab0, 0x0084c47b, 0x0290af8e, 0x00927f10, 0x01f49672, 0x025b80e2, 0x037b0ac2, 0x02fae1ed, 0x00113f23}}, Y: Field{[10]uint32{0x019c420a, 0x03c0c79c, 0x0089d9cf, 0x0292f341, 0x03720e94, 0x020cf4f5, 0x01267e78, 0x004d9f92, 0x0294ba9b, 0x0034b1f7}}},
+ {X: Field{[10]uint32{0x0142dea9, 0x004fc3a2, 0x03130584, 0x0232e2df, 0x02ab35a9, 0x0182a1ff, 0x006ad8ba, 0x0176d9e5, 0x02133428, 0x000559a1}}, Y: Field{[10]uint32{0x027be3df, 0x0151bc0d, 0x02dcbf92, 0x01a22c8f, 0x02de4828, 0x02c83f48, 0x02894eff, 0x03c14413, 0x03aa0e82, 0x0013cd65}}},
+ {X: Field{[10]uint32{0x03b69991, 0x01207f22, 0x03175d5a, 0x028b0cc1, 0x01fffb3f, 0x0380bd4d, 0x02a16620, 0x01ef1a19, 0x0247bace, 0x0037a8ae}}, Y: Field{[10]uint32{0x016fe2df, 0x01d0aa7c, 0x019bc706, 0x02cd887b, 0x03229dcd, 0x013dee79, 0x01cbfec8, 0x00a392b1, 0x03d6d90c, 0x002b8a2f}}},
+ {X: Field{[10]uint32{0x036bcfe8, 0x03b58794, 0x03bb3e61, 0x027b5a6d, 0x020e0c17, 0x001acc66, 0x02ca8f23, 0x02666d1c, 0x00bc1cc6, 0x0004ccbe}}, Y: Field{[10]uint32{0x02e78402, 0x00374b36, 0x0021451b, 0x009356a3, 0x01ba93b4, 0x017701a0, 0x0367c453, 0x00bb5c4f, 0x03ee2960, 0x0030e771}}},
+ {X: Field{[10]uint32{0x014fc9cc, 0x01034094, 0x021658c2, 0x02f0a691, 0x0226d00a, 0x012e2a0d, 0x001cf6cc, 0x01a35bbf, 0x0098a6e1, 0x000e5a3f}}, Y: Field{[10]uint32{0x03ad37dd, 0x00e52257, 0x03334019, 0x01dbfe23, 0x011a1465, 0x02ab4cb2, 0x037982d1, 0x0164a048, 0x03d0db4b, 0x001e272e}}},
+ {X: Field{[10]uint32{0x00cc84bf, 0x00ebcf85, 0x01f27c02, 0x01b7bae8, 0x0380bf1d, 0x030a9254, 0x00e37159, 0x00205a0c, 0x01364e54, 0x002d775a}}, Y: Field{[10]uint32{0x0374750c, 0x01485f38, 0x01a90c78, 0x037b75ac, 0x01353110, 0x01635051, 0x0118733c, 0x032dadaf, 0x005853c7, 0x0012cdbb}}},
+ {X: Field{[10]uint32{0x020c85f1, 0x0308646b, 0x03a250ae, 0x014d80e8, 0x01a6a52e, 0x015e5175, 0x0325df09, 0x01a8a49a, 0x010698e0, 0x001a25a4}}, Y: Field{[10]uint32{0x01c1de21, 0x01208ccb, 0x003922c7, 0x02768354, 0x011f40c1, 0x021175cb, 0x03305c1d, 0x025e495b, 0x03b4b38c, 0x002bbf4f}}},
+ {X: Field{[10]uint32{0x00c82a0a, 0x02566bd8, 0x00832ffd, 0x03183d9a, 0x010f9226, 0x006504ec, 0x006c9f19, 0x022291ac, 0x03809b19, 0x0002522f}}, Y: Field{[10]uint32{0x00c8e589, 0x02dfe236, 0x012bed4c, 0x002325f3, 0x006d4dff, 0x0070d063, 0x02b74c5d, 0x01991b71, 0x02856dcb, 0x0014e958}}},
+ },
+ {
+ {X: Field{[10]uint32{0x00c82a0a, 0x02566bd8, 0x00832ffd, 0x03183d9a, 0x010f9226, 0x006504ec, 0x006c9f19, 0x022291ac, 0x03809b19, 0x0002522f}}, Y: Field{[10]uint32{0x00c8e589, 0x02dfe236, 0x012bed4c, 0x002325f3, 0x006d4dff, 0x0070d063, 0x02b74c5d, 0x01991b71, 0x02856dcb, 0x0014e958}}},
+ {X: Field{[10]uint32{0x028b000a, 0x03ac115f, 0x01e51396, 0x00cc7a09, 0x02ef16c1, 0x00a47c2d, 0x01ce4c66, 0x0164d835, 0x007f372e, 0x0009a54b}}, Y: Field{[10]uint32{0x01ef705a, 0x035007c1, 0x027318c3, 0x023d94f5, 0x02debe39, 0x035a2108, 0x03c893d2, 0x029a218a, 0x024c5800, 0x003d44fa}}},
+ {X: Field{[10]uint32{0x00c8ac7f, 0x00bf97ee, 0x02a52728, 0x03b9978a, 0x01641242, 0x0015be12, 0x003396d2, 0x00aef2d7, 0x02fbe382, 0x0026516c}}, Y: Field{[10]uint32{0x01aea3b0, 0x0250e85a, 0x00dfa96d, 0x008fbb6b, 0x01282f7a, 0x02ca3bfd, 0x03db44ff, 0x00a0b581, 0x01824b0f, 0x000fbbfb}}},
+ {X: Field{[10]uint32{0x02134f96, 0x0096225d, 0x030e9f10, 0x0195cb5a, 0x03f52119, 0x00c7fc90, 0x032be8b1, 0x0316f6fb, 0x00e6fc23, 0x00318b96}}, Y: Field{[10]uint32{0x014cf97e, 0x01dfb534, 0x01c3e822, 0x00d58dcc, 0x01bcfb85, 0x00c507f1, 0x03d67675, 0x02859e30, 0x027d45b1, 0x0010e5e0}}},
+ {X: Field{[10]uint32{0x029e353a, 0x035e78e5, 0x021f6ed1, 0x00214aef, 0x0210a044, 0x0041f57f, 0x01f82227, 0x01c3988d, 0x006b2058, 0x000a8c53}}, Y: Field{[10]uint32{0x01746067, 0x0249b879, 0x018bfc25, 0x02ab6c99, 0x00138a54, 0x02ea86e8, 0x0063e476, 0x009eb069, 0x000bf35a, 0x0005692b}}},
+ {X: Field{[10]uint32{0x02fccf64, 0x02926624, 0x0318e3ba, 0x03789604, 0x033bd278, 0x01f2576f, 0x028772c7, 0x018df6c1, 0x015c0eb4, 0x00031f44}}, Y: Field{[10]uint32{0x0078fee0, 0x01b4ecca, 0x0268d53f, 0x020e566b, 0x0148785d, 0x01e2bc51, 0x02424b84, 0x02c111ea, 0x007b1925, 0x0012aa1d}}},
+ {X: Field{[10]uint32{0x01b84966, 0x00bd27ba, 0x03ff989e, 0x001b75fc, 0x011b4f41, 0x029adb24, 0x00b6faf3, 0x03f0b526, 0x0100b703, 0x00165669}}, Y: Field{[10]uint32{0x03473a6a, 0x0198c861, 0x0242640a, 0x030233f8, 0x009100dc, 0x03720a9c, 0x00312820, 0x02a25fe5, 0x02741f5c, 0x0000dc39}}},
+ {X: Field{[10]uint32{0x03188cbb, 0x01be2002, 0x01e97368, 0x0080201f, 0x00b81c03, 0x005988ac, 0x003329a7, 0x0171d05a, 0x00520eec, 0x00041d18}}, Y: Field{[10]uint32{0x03272124, 0x01ed8d87, 0x03da601d, 0x01d23738, 0x01242e0d, 0x033d5284, 0x0326b9b9, 0x016630d4, 0x00c09a21, 0x002af975}}},
+ {X: Field{[10]uint32{0x03c6b173, 0x0326e48a, 0x03feb3b0, 0x00f1fbb4, 0x017dd862, 0x0016d7e7, 0x0160c463, 0x00bfa384, 0x01393722, 0x0027bacc}}, Y: Field{[10]uint32{0x0323a71d, 0x02588365, 0x00c4b953, 0x02fb439c, 0x030ea71a, 0x02ee86b8, 0x02aabfdb, 0x03563654, 0x01e0110e, 0x0038487c}}},
+ {X: Field{[10]uint32{0x02d2cf25, 0x03a6f24a, 0x03a94457, 0x0136f249, 0x037ba49b, 0x009ecf0b, 0x011e80ba, 0x02a72c63, 0x029bf3da, 0x00148366}}, Y: Field{[10]uint32{0x0285181f, 0x02db20e8, 0x030c7610, 0x019446fd, 0x022bab0b, 0x012ea5c1, 0x030ae71b, 0x007ab923, 0x009b1027, 0x003949bd}}},
+ {X: Field{[10]uint32{0x02c805f3, 0x00910fdf, 0x01591577, 0x01d42766, 0x007de40f, 0x001ba5e2, 0x02bb2388, 0x0063d45b, 0x03e4c7f7, 0x000e7313}}, Y: Field{[10]uint32{0x023c48d3, 0x0068304e, 0x012e4d19, 0x00dcff24, 0x01bbb957, 0x03d0b79f, 0x01e6693c, 0x03e3cc54, 0x032c5a46, 0x003b2c51}}},
+ {X: Field{[10]uint32{0x008d5622, 0x02baeb15, 0x03d2e8b5, 0x03bde946, 0x03e1db07, 0x02fcce06, 0x01586a81, 0x0254d68e, 0x011e6168, 0x0017f1b0}}, Y: Field{[10]uint32{0x01ac1683, 0x03610040, 0x03f300d0, 0x00239b1e, 0x030e05ad, 0x000d9eb2, 0x019ba2db, 0x03676e70, 0x02549aa1, 0x00043a03}}},
+ {X: Field{[10]uint32{0x0222580e, 0x018bed73, 0x0388793d, 0x025b4b5b, 0x02c71328, 0x0136f534, 0x012ffde6, 0x0371a5a2, 0x007466ec, 0x003e5320}}, Y: Field{[10]uint32{0x0127db82, 0x0148fd9c, 0x01d4e81e, 0x0114c8dc, 0x029887ec, 0x02d6a07d, 0x014bff6a, 0x00896a46, 0x03dc6785, 0x0017a71f}}},
+ {X: Field{[10]uint32{0x00a3d8a5, 0x02ad81f0, 0x02f99123, 0x01a115cf, 0x0126d77d, 0x00fb426b, 0x031274a3, 0x035ba4d0, 0x03e5d872, 0x0016a90c}}, Y: Field{[10]uint32{0x013c2ba7, 0x03dfbddb, 0x02ef4fb5, 0x03d4b675, 0x0116475c, 0x01ca2958, 0x02394aec, 0x039e6866, 0x01fc682a, 0x003773a8}}},
+ {X: Field{[10]uint32{0x00c4f21f, 0x0102eb44, 0x01a7a6be, 0x0165340f, 0x025024a9, 0x02c66674, 0x0002068d, 0x03458bf3, 0x006c6ad5, 0x0023332e}}, Y: Field{[10]uint32{0x029dfea0, 0x0049ba9c, 0x03e28f7f, 0x02b20992, 0x014b92dc, 0x0321d629, 0x01bef549, 0x00710da6, 0x02586275, 0x0015fe25}}},
+ {X: Field{[10]uint32{0x038fd8e8, 0x0336067c, 0x0352acce, 0x0137f1a5, 0x00f1b0e4, 0x000a1cea, 0x0067ce0f, 0x00070d3c, 0x027f4618, 0x00189833}}, Y: Field{[10]uint32{0x02b4ae17, 0x0213a56c, 0x00198c1a, 0x008e0147, 0x03ecd292, 0x01da87bd, 0x03090497, 0x02d5c69f, 0x002b6fa5, 0x002f0b6a}}},
+ },
+ {
+ {X: Field{[10]uint32{0x038fd8e8, 0x0336067c, 0x0352acce, 0x0137f1a5, 0x00f1b0e4, 0x000a1cea, 0x0067ce0f, 0x00070d3c, 0x027f4618, 0x00189833}}, Y: Field{[10]uint32{0x02b4ae17, 0x0213a56c, 0x00198c1a, 0x008e0147, 0x03ecd292, 0x01da87bd, 0x03090497, 0x02d5c69f, 0x002b6fa5, 0x002f0b6a}}},
+ {X: Field{[10]uint32{0x01477c2d, 0x019d1bcf, 0x0127e076, 0x01465aab, 0x0316e65c, 0x0213c684, 0x008409be, 0x0069cf7b, 0x024748ad, 0x00217636}}, Y: Field{[10]uint32{0x03d1dd70, 0x02605bf1, 0x015a6207, 0x0080cf13, 0x0094b0a0, 0x007bf1ef, 0x02b53653, 0x019a4161, 0x0353665c, 0x00162522}}},
+ {X: Field{[10]uint32{0x01136602, 0x02e91950, 0x03a5bbb0, 0x01203678, 0x0138c46f, 0x008ccecf, 0x0058937f, 0x037f0cf4, 0x03280482, 0x0021f449}}, Y: Field{[10]uint32{0x00af6aac, 0x020f1076, 0x03f7c4f6, 0x01d1bf4e, 0x0387a884, 0x03d9dd14, 0x02a276cf, 0x000f7a49, 0x00870a5a, 0x001c7389}}},
+ {X: Field{[10]uint32{0x000b80d9, 0x000c4b5b, 0x007f0485, 0x00403f71, 0x024d1e7e, 0x030fb8fb, 0x00892e9c, 0x012e5a30, 0x0166e7ec, 0x00238a9c}}, Y: Field{[10]uint32{0x02b29f50, 0x0187cab5, 0x0349a49c, 0x02235c18, 0x005297b6, 0x005aa752, 0x02dd29b7, 0x02f964b3, 0x03a9ae2c, 0x003ab6c2}}},
+ {X: Field{[10]uint32{0x00c5a916, 0x00175cd2, 0x010f25b2, 0x00354d58, 0x013f5c44, 0x02ad52a8, 0x00acc63d, 0x03a5d1ac, 0x013fe261, 0x003f575f}}, Y: Field{[10]uint32{0x02db8bda, 0x02cdec1e, 0x02faab14, 0x0052f73d, 0x03e5d738, 0x0271ed4b, 0x0343ca67, 0x016c1f4a, 0x02d0eeb5, 0x0003760f}}},
+ {X: Field{[10]uint32{0x00e74459, 0x028d722c, 0x036dd674, 0x018e1f76, 0x01fef237, 0x004f22a4, 0x00f46587, 0x015a0164, 0x001d4ec0, 0x000a37de}}, Y: Field{[10]uint32{0x035e656f, 0x001f303b, 0x02f0a8de, 0x029406b9, 0x00a3795b, 0x003c89e5, 0x00db1789, 0x003c5f2c, 0x02a66a13, 0x003c5267}}},
+ {X: Field{[10]uint32{0x01f7529c, 0x0264258d, 0x011dd45d, 0x0262d6f5, 0x0138765b, 0x034d10e0, 0x02453c32, 0x009848ae, 0x0010981c, 0x00378375}}, Y: Field{[10]uint32{0x00cd88fe, 0x008300b9, 0x0374063c, 0x031a226d, 0x00178924, 0x035e8d5c, 0x02109822, 0x00517e6c, 0x029d10a2, 0x0035c29b}}},
+ {X: Field{[10]uint32{0x004561be, 0x007e8f4b, 0x0190f992, 0x03a04d67, 0x00ee4ab2, 0x01e3e254, 0x00366ecd, 0x03d63b72, 0x035842bf, 0x001da6f1}}, Y: Field{[10]uint32{0x00d9685f, 0x0082ffec, 0x033add59, 0x01d9ede1, 0x0341a177, 0x01cfd751, 0x01ce4cef, 0x020eeb23, 0x03362fe7, 0x0012fe05}}},
+ {X: Field{[10]uint32{0x00f76d11, 0x00bd234e, 0x015573c8, 0x003efe14, 0x02151100, 0x0270a4a8, 0x005befc3, 0x03d139a7, 0x008ada4c, 0x002c9b08}}, Y: Field{[10]uint32{0x03b7356b, 0x03002c78, 0x0224bdc1, 0x01967609, 0x03050030, 0x0033590c, 0x004e87d9, 0x034cf3c3, 0x00820949, 0x0007c73e}}},
+ {X: Field{[10]uint32{0x008e129e, 0x00e76825, 0x01b10312, 0x02cb00a2, 0x032bd1df, 0x0394f0b7, 0x00f8de28, 0x0133debc, 0x00efb7b2, 0x0019b8ff}}, Y: Field{[10]uint32{0x02e7bbea, 0x02f0d80b, 0x03b5172b, 0x027b4694, 0x035fd7d9, 0x0337e032, 0x00b5bf34, 0x0303d966, 0x034fb770, 0x00082fe2}}},
+ {X: Field{[10]uint32{0x029e22db, 0x038ec199, 0x00933f94, 0x03d67e72, 0x02ac993f, 0x00630a53, 0x023bd290, 0x03d48e9f, 0x00b8fc7f, 0x003f3ac5}}, Y: Field{[10]uint32{0x002260a1, 0x01cb6c97, 0x03e4cbf5, 0x01e4e93a, 0x00ad550e, 0x0097c249, 0x018a5a75, 0x02e347f3, 0x033a40d6, 0x00192a9a}}},
+ {X: Field{[10]uint32{0x01c71143, 0x0367714a, 0x017ea346, 0x02b113c1, 0x012e7ead, 0x0008fe8d, 0x027ccf90, 0x03a840f2, 0x039622bb, 0x0003ad17}}, Y: Field{[10]uint32{0x0370b136, 0x02336882, 0x01bf4c8a, 0x03a9a8ac, 0x03d65969, 0x00078a15, 0x03601f59, 0x02f43d5c, 0x03585838, 0x0014b10b}}},
+ {X: Field{[10]uint32{0x038a2755, 0x02105e68, 0x005506f0, 0x01c59527, 0x0253721a, 0x02d41fea, 0x00175774, 0x0172b157, 0x02623ccd, 0x0013a426}}, Y: Field{[10]uint32{0x03cca3de, 0x02927d88, 0x0000caf7, 0x025348a6, 0x03b6cd53, 0x001d5676, 0x03246dd5, 0x00d6bb3b, 0x02878cce, 0x002b95b6}}},
+ {X: Field{[10]uint32{0x0007d7c8, 0x0345234f, 0x0232f00c, 0x01d7e0a7, 0x01e0f196, 0x03cf5226, 0x0070411b, 0x02dcf5a1, 0x008ab230, 0x000f3e48}}, Y: Field{[10]uint32{0x024cee08, 0x02a476b6, 0x0059c0c4, 0x032356e3, 0x009d4684, 0x017059c8, 0x02ce6ca6, 0x02197547, 0x024c15af, 0x003780f1}}},
+ {X: Field{[10]uint32{0x003ba64d, 0x01625666, 0x015a3a82, 0x01de2316, 0x02bde60f, 0x02e39038, 0x030a145e, 0x01300efe, 0x015c22e0, 0x0030d9d1}}, Y: Field{[10]uint32{0x022181fd, 0x03323e5a, 0x00f14614, 0x02b285de, 0x0342626a, 0x01365931, 0x00e0e6e8, 0x0180cc20, 0x02d069cb, 0x000e9482}}},
+ {X: Field{[10]uint32{0x0037fa2d, 0x00f32348, 0x01c43295, 0x03d5d6ff, 0x03043ec8, 0x02efd040, 0x00348414, 0x036350f6, 0x01e0afc1, 0x003940df}}, Y: Field{[10]uint32{0x01755bda, 0x01772107, 0x01f10e0e, 0x000fb120, 0x01bd5f5b, 0x02e642f7, 0x0398d09f, 0x034ed7e7, 0x034baa94, 0x00115c54}}},
+ },
+ {
+ {X: Field{[10]uint32{0x0037fa2d, 0x00f32348, 0x01c43295, 0x03d5d6ff, 0x03043ec8, 0x02efd040, 0x00348414, 0x036350f6, 0x01e0afc1, 0x003940df}}, Y: Field{[10]uint32{0x01755bda, 0x01772107, 0x01f10e0e, 0x000fb120, 0x01bd5f5b, 0x02e642f7, 0x0398d09f, 0x034ed7e7, 0x034baa94, 0x00115c54}}},
+ {X: Field{[10]uint32{0x023d34ef, 0x00f231e7, 0x02ddb8c6, 0x01f1e4a8, 0x02c3ab21, 0x00b586cf, 0x00b6cf7d, 0x015253d0, 0x01a467fd, 0x00297803}}, Y: Field{[10]uint32{0x037adb4c, 0x0171738b, 0x000acb85, 0x03f9e424, 0x025b60dc, 0x026fd0f4, 0x01726fe9, 0x02155508, 0x01f5e560, 0x000263f9}}},
+ {X: Field{[10]uint32{0x037e7775, 0x02a29b85, 0x015f6388, 0x024e23b6, 0x02b5e155, 0x03d4a46b, 0x00543bac, 0x00cf3b96, 0x023aff96, 0x0027625a}}, Y: Field{[10]uint32{0x02056691, 0x03db4eae, 0x0253befc, 0x01fb8a64, 0x01e899cd, 0x0094249f, 0x02964ed7, 0x02fc2e53, 0x01e43f49, 0x0037646a}}},
+ {X: Field{[10]uint32{0x03b91252, 0x00dc5835, 0x0172ae67, 0x00b911dd, 0x006d4afd, 0x0326fef1, 0x019f4bb1, 0x00ad00d4, 0x01f5ef3a, 0x002a6505}}, Y: Field{[10]uint32{0x03edc264, 0x00ddeb12, 0x00ddd73a, 0x02b5643d, 0x02899a16, 0x013dbdad, 0x022f10f2, 0x03e12ee7, 0x024cae81, 0x0020b439}}},
+ {X: Field{[10]uint32{0x002a3293, 0x0381378f, 0x0076c5fd, 0x01bba40d, 0x015688b8, 0x00a0bd33, 0x02b0a573, 0x00de4b43, 0x00ee7116, 0x0020c9ee}}, Y: Field{[10]uint32{0x020df9bd, 0x02153863, 0x02a416bc, 0x02d3b8c9, 0x0096afda, 0x009e5c21, 0x03b3ea66, 0x02a63862, 0x02266ee0, 0x0001265f}}},
+ {X: Field{[10]uint32{0x00904ed3, 0x015fc7a3, 0x01784159, 0x01624161, 0x00df2a74, 0x0049c8e1, 0x03f8e643, 0x00637fe5, 0x002d2db8, 0x000033e3}}, Y: Field{[10]uint32{0x016f77c1, 0x02658ede, 0x02827b00, 0x01e74cbd, 0x0122991d, 0x0146f604, 0x01d5c1bd, 0x03510467, 0x000ea781, 0x002aab40}}},
+ {X: Field{[10]uint32{0x0162c042, 0x006c9b11, 0x03b1a242, 0x008d2e37, 0x02092d23, 0x03e6a3b5, 0x016661d8, 0x02c5a25f, 0x02aa2a6d, 0x0016b90a}}, Y: Field{[10]uint32{0x0379269c, 0x017337e3, 0x018dbf90, 0x025441f3, 0x0294e0db, 0x000e2752, 0x01c1ddc6, 0x00147aad, 0x027c05ff, 0x0026764e}}},
+ {X: Field{[10]uint32{0x02540f17, 0x01196d9a, 0x0132bd8c, 0x01c17c30, 0x004c750d, 0x023e4d7e, 0x00edde09, 0x0347f1f6, 0x029f9e4f, 0x002d5bd3}}, Y: Field{[10]uint32{0x0200102d, 0x00bf2b80, 0x0285446a, 0x018f2f32, 0x0121d429, 0x00160b47, 0x01c11adf, 0x02a15b4f, 0x013429cc, 0x000cba39}}},
+ {X: Field{[10]uint32{0x0285af61, 0x02204a17, 0x02766b34, 0x008b752b, 0x034e8ed7, 0x01b086c3, 0x02eb68ff, 0x0323ad66, 0x02e426a1, 0x0024b08e}}, Y: Field{[10]uint32{0x036a2b09, 0x008d9a70, 0x02fed4e7, 0x020ad8a1, 0x012d23ad, 0x01ce355e, 0x03217d5c, 0x006ed027, 0x008f0155, 0x0010533e}}},
+ {X: Field{[10]uint32{0x01e5d1b3, 0x02a92096, 0x02a3e280, 0x0227f5b2, 0x0048c9b7, 0x003f36cc, 0x027e4c6f, 0x0120ef47, 0x0151caf6, 0x000eae94}}, Y: Field{[10]uint32{0x02f30087, 0x02d9e350, 0x02ee6a85, 0x01674b79, 0x01e18463, 0x01f5cb32, 0x024ec804, 0x01474241, 0x0223bff2, 0x0023079c}}},
+ {X: Field{[10]uint32{0x03b5eba8, 0x02bc6cb1, 0x02a36ce2, 0x031fe463, 0x022dabed, 0x02be37d0, 0x010f4176, 0x037c4223, 0x008c76af, 0x003fb958}}, Y: Field{[10]uint32{0x010b9b5c, 0x00574da3, 0x014793f5, 0x010afe41, 0x02e380ff, 0x00a1f053, 0x01402f99, 0x0162bec4, 0x019134fe, 0x000e01d6}}},
+ {X: Field{[10]uint32{0x00f8cffd, 0x02d66223, 0x01ae61b2, 0x0056de91, 0x01432e6b, 0x01e6f762, 0x01afb88f, 0x02306f51, 0x037f1fe7, 0x00002026}}, Y: Field{[10]uint32{0x01b5f32f, 0x03516863, 0x01f93d91, 0x03eb64ae, 0x0112a340, 0x0394bf72, 0x008c836d, 0x02a18c0a, 0x0022bf41, 0x003e05f8}}},
+ {X: Field{[10]uint32{0x0063caf4, 0x00ee92cf, 0x03d5281e, 0x02aca3d4, 0x00a28ff3, 0x018a9abf, 0x02113b4c, 0x019f9882, 0x00eb92e6, 0x0010b951}}, Y: Field{[10]uint32{0x029c29c8, 0x02bb0265, 0x005f1187, 0x01edafbf, 0x0073a50e, 0x01d0579e, 0x01f220c1, 0x0319c7dc, 0x00e0f91c, 0x0027fe15}}},
+ {X: Field{[10]uint32{0x03ed9ef9, 0x006417bd, 0x0063d6c6, 0x02803bc3, 0x02ad2ba5, 0x01ff064a, 0x01f78494, 0x03529d07, 0x02ddd352, 0x000cb779}}, Y: Field{[10]uint32{0x031fb871, 0x02e11a00, 0x034b21ab, 0x00de7263, 0x0059ec1b, 0x0356307d, 0x036a4f94, 0x019ef388, 0x03dc3420, 0x0010745e}}},
+ {X: Field{[10]uint32{0x020f09a1, 0x00af6617, 0x0328380a, 0x03c6e500, 0x02f0a109, 0x011c03bf, 0x0196ed2a, 0x00b38e0e, 0x03b66553, 0x001ebb60}}, Y: Field{[10]uint32{0x01857d73, 0x036337a1, 0x00a54045, 0x00c03cfd, 0x02d88b2f, 0x0040cb63, 0x01afd0ab, 0x03bdf1f7, 0x005f9a31, 0x003d6e15}}},
+ {X: Field{[10]uint32{0x00fce725, 0x019a82b9, 0x005b7258, 0x03471a9b, 0x00e7e8db, 0x03c5dc6d, 0x02a905e8, 0x001eb7d7, 0x02b0f4a2, 0x003818dc}}, Y: Field{[10]uint32{0x02ee31dd, 0x000d3e53, 0x00870b27, 0x01de1c41, 0x00d7484a, 0x03569223, 0x0227bb2a, 0x0233f84a, 0x0174bce1, 0x001ea422}}},
+ },
+ {
+ {X: Field{[10]uint32{0x00fce725, 0x019a82b9, 0x005b7258, 0x03471a9b, 0x00e7e8db, 0x03c5dc6d, 0x02a905e8, 0x001eb7d7, 0x02b0f4a2, 0x003818dc}}, Y: Field{[10]uint32{0x02ee31dd, 0x000d3e53, 0x00870b27, 0x01de1c41, 0x00d7484a, 0x03569223, 0x0227bb2a, 0x0233f84a, 0x0174bce1, 0x001ea422}}},
+ {X: Field{[10]uint32{0x02d2ff3e, 0x026bb90f, 0x02d3cfe0, 0x036d3b1b, 0x00045ebf, 0x03eb4fcf, 0x00dbd304, 0x01ae3e72, 0x034ca204, 0x0003ab04}}, Y: Field{[10]uint32{0x01210988, 0x0081881f, 0x01376e17, 0x025adfc8, 0x01ac19f6, 0x00ac45e6, 0x03f103bf, 0x026d0916, 0x01be7935, 0x001258c3}}},
+ {X: Field{[10]uint32{0x02328d6a, 0x02a06236, 0x0018bdba, 0x00ea56b7, 0x03b24d77, 0x016c23e9, 0x00689918, 0x0138028d, 0x005ba623, 0x003198f0}}, Y: Field{[10]uint32{0x02c9b8c0, 0x002edaaf, 0x039cc23b, 0x03a944af, 0x03dd8551, 0x01d5c4c5, 0x01afdcf2, 0x0070e34e, 0x018d5f72, 0x000ccc7a}}},
+ {X: Field{[10]uint32{0x03bfa4dc, 0x01c1b937, 0x01b17476, 0x01e01321, 0x03f5948a, 0x02b6ed07, 0x012119d7, 0x03a8660e, 0x0190731f, 0x00359e21}}, Y: Field{[10]uint32{0x013b5406, 0x02f35aef, 0x0207cca7, 0x03137726, 0x026206f1, 0x008704ea, 0x00ef5c6d, 0x018f1250, 0x00c89d50, 0x000a3aaa}}},
+ {X: Field{[10]uint32{0x0196de2f, 0x0072120e, 0x01114bc9, 0x00bb82c9, 0x0177cedf, 0x0283f93a, 0x02b30dee, 0x01a91673, 0x0282dfb8, 0x0034ff09}}, Y: Field{[10]uint32{0x00526f8c, 0x02489075, 0x03f168c4, 0x02637dea, 0x024e59b4, 0x013de076, 0x00b4754d, 0x002863da, 0x0399a45f, 0x00313c37}}},
+ {X: Field{[10]uint32{0x02143fb0, 0x00d69958, 0x005dd6dc, 0x020c2f08, 0x03a9fb92, 0x011e6565, 0x03aff339, 0x020de433, 0x001c33af, 0x000a4ab7}}, Y: Field{[10]uint32{0x036ad01c, 0x036d8f38, 0x01d4d8a9, 0x00b5cd7a, 0x02d83e66, 0x03313b3d, 0x031968a0, 0x02d91fcf, 0x021bcee0, 0x00281c99}}},
+ {X: Field{[10]uint32{0x03e697ea, 0x03123440, 0x003e85c6, 0x03ee617e, 0x019ce678, 0x028feaf4, 0x00a1fec9, 0x03008df7, 0x0343feb2, 0x00305e92}}, Y: Field{[10]uint32{0x02dc6c87, 0x00ee1f77, 0x002ab0ee, 0x02d5fe7c, 0x0296e1a1, 0x025807eb, 0x02178f71, 0x0165532b, 0x002d55ab, 0x000e4d57}}},
+ {X: Field{[10]uint32{0x008ff9b3, 0x017ed039, 0x0301a727, 0x00815666, 0x03c7b1a6, 0x00adc752, 0x03f210f1, 0x01025d2a, 0x00cbd9a0, 0x001a4c3f}}, Y: Field{[10]uint32{0x02e96a4e, 0x036ad7e3, 0x0051acfd, 0x004f92b3, 0x00090f9b, 0x01d7db5e, 0x030fcdb8, 0x0007ab68, 0x0294b947, 0x001fc0ab}}},
+ {X: Field{[10]uint32{0x0163da1b, 0x00b0c08c, 0x0231182d, 0x03983e4e, 0x029a0ede, 0x03f047f7, 0x009349d7, 0x0242d1a3, 0x037ca267, 0x0023d862}}, Y: Field{[10]uint32{0x03bdd76e, 0x00c48440, 0x036e7c7f, 0x01a8c926, 0x026450c6, 0x01eb1690, 0x03bda74d, 0x03adbad7, 0x0325f08b, 0x001e08cf}}},
+ {X: Field{[10]uint32{0x010cec10, 0x02c26d53, 0x016b084f, 0x03f2ab7b, 0x02ba25f0, 0x00b4f39c, 0x02b0e61b, 0x0079a6ba, 0x029ca332, 0x0013654a}}, Y: Field{[10]uint32{0x03d06932, 0x00dac4ee, 0x014da8ee, 0x037f213d, 0x02ba4aa2, 0x01ed72d3, 0x002aec78, 0x009e7915, 0x004a66dd, 0x002c5e06}}},
+ {X: Field{[10]uint32{0x02c8ae90, 0x01643f83, 0x005deee8, 0x024ba2ef, 0x00cfb26b, 0x0320fc6e, 0x02d5b8da, 0x0079bae1, 0x00f15b7a, 0x0025e630}}, Y: Field{[10]uint32{0x012844d3, 0x02b0bab9, 0x008e27a9, 0x016f40c6, 0x02e2e496, 0x03e71cef, 0x02ec9494, 0x00bb4f74, 0x02aa75a4, 0x002e9038}}},
+ {X: Field{[10]uint32{0x00b90e0b, 0x03079b0c, 0x00a4589e, 0x00e7ec25, 0x03d6ff1d, 0x02719d6c, 0x01c804a5, 0x019f4ffb, 0x03f9ad54, 0x00290d41}}, Y: Field{[10]uint32{0x021fdc20, 0x0002e64e, 0x01b5a3f0, 0x00d94d66, 0x00dc2a20, 0x0102fa30, 0x02d07ccb, 0x035c6850, 0x01c94c3f, 0x001f23cb}}},
+ {X: Field{[10]uint32{0x01d66b7f, 0x0065e3c4, 0x01c8105a, 0x0141461f, 0x017aa692, 0x0224a11d, 0x00f1b90b, 0x00b59d1f, 0x02e3fb5a, 0x003f7e9b}}, Y: Field{[10]uint32{0x00e5178b, 0x023e019e, 0x00de9daa, 0x03744f5e, 0x00d846f9, 0x00f68631, 0x000c1c9a, 0x02636e4f, 0x031e2249, 0x0013673c}}},
+ {X: Field{[10]uint32{0x01c0d7ad, 0x01ad6196, 0x0093ab83, 0x036de8ad, 0x011ddb64, 0x01d2799c, 0x0211ca1a, 0x03eeebbf, 0x02cd4b7b, 0x001cac13}}, Y: Field{[10]uint32{0x0323cd97, 0x039bfd19, 0x034fb2ef, 0x01a0771b, 0x0196265d, 0x0364d340, 0x01d452d6, 0x028d633b, 0x03ea0e64, 0x001a196c}}},
+ {X: Field{[10]uint32{0x0265bcf0, 0x01d5e124, 0x03d30b80, 0x01e10471, 0x0269ce2b, 0x0073c883, 0x01ea9a46, 0x02790eb7, 0x0238de22, 0x003f5633}}, Y: Field{[10]uint32{0x03996292, 0x039ea73a, 0x00d1df33, 0x03f8a3c7, 0x0387261b, 0x0121793e, 0x0382ab9a, 0x00856f54, 0x01e53763, 0x003ff829}}},
+ {X: Field{[10]uint32{0x00559754, 0x035a4234, 0x0358540a, 0x03778a8f, 0x0204b10b, 0x03033808, 0x010bbf9d, 0x03514d63, 0x02715cd5, 0x00084f1e}}, Y: Field{[10]uint32{0x00b458f2, 0x00b09d4d, 0x03eeddff, 0x03d7cda9, 0x00bb4850, 0x0116e864, 0x013ad062, 0x018941c0, 0x010b5ae4, 0x0012db6b}}},
+ },
+ {
+ {X: Field{[10]uint32{0x00559754, 0x035a4234, 0x0358540a, 0x03778a8f, 0x0204b10b, 0x03033808, 0x010bbf9d, 0x03514d63, 0x02715cd5, 0x00084f1e}}, Y: Field{[10]uint32{0x00b458f2, 0x00b09d4d, 0x03eeddff, 0x03d7cda9, 0x00bb4850, 0x0116e864, 0x013ad062, 0x018941c0, 0x010b5ae4, 0x0012db6b}}},
+ {X: Field{[10]uint32{0x02c87fac, 0x00e25783, 0x03cf0899, 0x01d188b9, 0x020d1ab9, 0x00c8d203, 0x02e9fed8, 0x0269fd9a, 0x008132b4, 0x00071795}}, Y: Field{[10]uint32{0x03c2d4ef, 0x035ecf57, 0x0324c555, 0x03ac9bf8, 0x03a3deac, 0x03530ab4, 0x03959fa1, 0x011a3cae, 0x020f837f, 0x0013ff3d}}},
+ {X: Field{[10]uint32{0x0205dccc, 0x03600467, 0x0293e532, 0x03b53066, 0x02ae3fa3, 0x0254f45c, 0x006e096b, 0x0280c255, 0x02e1753d, 0x002e33bd}}, Y: Field{[10]uint32{0x006d5750, 0x012833f3, 0x02813301, 0x030da9ad, 0x01df757f, 0x0134af66, 0x00d4a74e, 0x026efda9, 0x0260a6cc, 0x000c0ae2}}},
+ {X: Field{[10]uint32{0x00531dbc, 0x03f2e875, 0x00970e20, 0x0067fb57, 0x021f901c, 0x002ef1f3, 0x036e9421, 0x019a377b, 0x010602c5, 0x001189db}}, Y: Field{[10]uint32{0x0286b8e2, 0x01cc0265, 0x03c99af8, 0x03efff86, 0x01498bad, 0x01c37b66, 0x02922875, 0x01d6e128, 0x0324d44c, 0x000383df}}},
+ {X: Field{[10]uint32{0x033bb31a, 0x037fb84d, 0x017b485b, 0x01ad7f6e, 0x01701f7b, 0x03aed7d2, 0x02a0bde2, 0x01ce1780, 0x03e779b4, 0x0000fecc}}, Y: Field{[10]uint32{0x01215c9e, 0x032f9a5f, 0x000d4e34, 0x01db11d9, 0x03c65a7c, 0x02eed5ca, 0x00c161aa, 0x03f8a078, 0x0152548e, 0x003cdab6}}},
+ {X: Field{[10]uint32{0x006df50d, 0x03bb405a, 0x012bd0c4, 0x00a871be, 0x00cd5e79, 0x03020818, 0x03d87442, 0x007c0b5b, 0x0230935c, 0x000e95c5}}, Y: Field{[10]uint32{0x0059679b, 0x0162ca3a, 0x01a11d21, 0x007aede0, 0x01e0aaf8, 0x015c2837, 0x02f3ff2e, 0x03ccbd45, 0x0073b599, 0x0021784e}}},
+ {X: Field{[10]uint32{0x019a4ab4, 0x01457af7, 0x037c0a5b, 0x0306156e, 0x02717c36, 0x0343de8d, 0x0316f7b4, 0x00f84587, 0x00d109ec, 0x0012c5df}}, Y: Field{[10]uint32{0x035ab6f7, 0x0377f918, 0x01f558aa, 0x0157c5d0, 0x006e37e2, 0x00d89ad2, 0x028f6729, 0x03e997f6, 0x02e9a5e2, 0x000fb259}}},
+ {X: Field{[10]uint32{0x022f001d, 0x013bc4d4, 0x01899611, 0x02b371e3, 0x036850e0, 0x030c6458, 0x025eb211, 0x03093d39, 0x00eca7a6, 0x003bfa9a}}, Y: Field{[10]uint32{0x03bc4415, 0x021067dc, 0x00771c12, 0x027ece12, 0x03e41395, 0x00dc6685, 0x0150307a, 0x00f05368, 0x03869d58, 0x002aae11}}},
+ {X: Field{[10]uint32{0x001c23a4, 0x01beca6c, 0x01cf56f4, 0x01611e92, 0x01c22a41, 0x026e735d, 0x0203829b, 0x01e81b0a, 0x035206a2, 0x0017a1c0}}, Y: Field{[10]uint32{0x00d986f9, 0x01e65ac4, 0x00fda121, 0x021d2933, 0x01a2171d, 0x038b1b8b, 0x01755d1a, 0x0248879c, 0x004efb9c, 0x0016e599}}},
+ {X: Field{[10]uint32{0x0291dc6e, 0x007bc8b0, 0x01fbd8b4, 0x02a537ca, 0x02661fa8, 0x028f8e3c, 0x03136c23, 0x016c9171, 0x0347a3f1, 0x0033c2f7}}, Y: Field{[10]uint32{0x037a8196, 0x00f05136, 0x032a99c7, 0x03f4aed7, 0x02b4fc6c, 0x015e463d, 0x00523b4e, 0x03d44693, 0x001c6e61, 0x000e30b8}}},
+ {X: Field{[10]uint32{0x007b0c66, 0x03cd7480, 0x006fb1f3, 0x039195b2, 0x0034a7fe, 0x002b3add, 0x032244f6, 0x01a02911, 0x0301930d, 0x00395170}}, Y: Field{[10]uint32{0x01f2d470, 0x03d5f49c, 0x0239dd87, 0x02386d68, 0x0397e582, 0x02566f2f, 0x01c6fda3, 0x025579f9, 0x000e8c62, 0x00381a8d}}},
+ {X: Field{[10]uint32{0x008f7e09, 0x028ad9fe, 0x012cde2a, 0x01e6e9f6, 0x02b3a037, 0x0117702f, 0x00e12e5a, 0x017f2ef6, 0x023d4f20, 0x00179aa1}}, Y: Field{[10]uint32{0x00dfca97, 0x018a19d2, 0x00fe3bbd, 0x00dc8ed3, 0x00a68e50, 0x01a5008d, 0x004a8d1f, 0x023b7f11, 0x02078a38, 0x003095c6}}},
+ {X: Field{[10]uint32{0x03648bba, 0x020642e0, 0x007444a5, 0x02c1a70f, 0x0082a0f0, 0x03c06ce6, 0x033ee225, 0x03d60284, 0x02157a54, 0x002ca910}}, Y: Field{[10]uint32{0x00fb6452, 0x03ead280, 0x017bb246, 0x00547270, 0x01c0d855, 0x03ef5f8c, 0x01fbc978, 0x0199867a, 0x03c2b693, 0x003f93d7}}},
+ {X: Field{[10]uint32{0x0304ab91, 0x039d78ac, 0x01557679, 0x00650914, 0x0325a40c, 0x02de0470, 0x02383063, 0x00452e29, 0x03ea8fe5, 0x0001e87f}}, Y: Field{[10]uint32{0x0397e554, 0x03d18ed9, 0x01d9d35a, 0x03a86402, 0x01287e5d, 0x00d12965, 0x010437c4, 0x01f151a4, 0x0021b0fd, 0x00384301}}},
+ {X: Field{[10]uint32{0x03ab27d0, 0x03748bba, 0x0103fcf6, 0x03e8b114, 0x03f70b41, 0x02365c01, 0x02970191, 0x00e1946e, 0x020f3d45, 0x0006e423}}, Y: Field{[10]uint32{0x00d3d110, 0x0219d790, 0x011b571e, 0x024d61f9, 0x02b5bbca, 0x005f12e6, 0x0357c918, 0x01ad79bc, 0x025eec46, 0x0026db58}}},
+ {X: Field{[10]uint32{0x00fbd53c, 0x030e8ec2, 0x02cddf0c, 0x01c2b718, 0x03e2838c, 0x015066a1, 0x03b9352a, 0x02cd3a36, 0x032a7af4, 0x00139f09}}, Y: Field{[10]uint32{0x03dcaae6, 0x00e50605, 0x01d33e0b, 0x0052ffdf, 0x03530b96, 0x037bda06, 0x02fd09f6, 0x002c6385, 0x00766c9d, 0x0005dd27}}},
+ },
+ {
+ {X: Field{[10]uint32{0x00fbd53c, 0x030e8ec2, 0x02cddf0c, 0x01c2b718, 0x03e2838c, 0x015066a1, 0x03b9352a, 0x02cd3a36, 0x032a7af4, 0x00139f09}}, Y: Field{[10]uint32{0x03dcaae6, 0x00e50605, 0x01d33e0b, 0x0052ffdf, 0x03530b96, 0x037bda06, 0x02fd09f6, 0x002c6385, 0x00766c9d, 0x0005dd27}}},
+ {X: Field{[10]uint32{0x006e1b4d, 0x00879b9f, 0x00790e28, 0x01686fbe, 0x009b11f2, 0x038e1767, 0x00a269f4, 0x02223c9a, 0x03b02696, 0x00226405}}, Y: Field{[10]uint32{0x0014ab2b, 0x02baf6b6, 0x03212009, 0x0303e4ca, 0x02e4e51b, 0x018d62fe, 0x00579833, 0x00d3c2ed, 0x00dab5b3, 0x0010eb8b}}},
+ {X: Field{[10]uint32{0x0121b3ff, 0x02611939, 0x0350cee2, 0x005fa6a9, 0x01233c07, 0x026b8929, 0x0244d2be, 0x011571d7, 0x023010c9, 0x00009213}}, Y: Field{[10]uint32{0x0269da7e, 0x02b92e40, 0x008bbcc1, 0x037a48eb, 0x03ad7006, 0x02cb43ba, 0x02c2b3c2, 0x038c341f, 0x00a0aa23, 0x00258674}}},
+ {X: Field{[10]uint32{0x025f712f, 0x018d685f, 0x003a8af2, 0x02fe46d6, 0x022831f5, 0x00c89fc3, 0x034728e6, 0x017f52a3, 0x00f76e90, 0x0019fd91}}, Y: Field{[10]uint32{0x007160e5, 0x02b2d79c, 0x02198d68, 0x0223df4d, 0x005e0e14, 0x0161b3de, 0x01adeb7b, 0x017413c1, 0x028f6644, 0x002e0cf5}}},
+ {X: Field{[10]uint32{0x004ba7b9, 0x02de7ea0, 0x01751f96, 0x01c0c1d0, 0x0220d6a4, 0x01cb2553, 0x039b70d6, 0x03395fbd, 0x0126cfb6, 0x0005b071}}, Y: Field{[10]uint32{0x005bd741, 0x02f8e947, 0x029cc475, 0x0006f726, 0x02ec755c, 0x0322a537, 0x02627459, 0x0050e418, 0x037c3403, 0x0036c55f}}},
+ {X: Field{[10]uint32{0x00692fd1, 0x01825850, 0x00dfe2b2, 0x01b32f64, 0x02dcf43c, 0x02c7c643, 0x00aadef4, 0x03fe0038, 0x00b49901, 0x001394f2}}, Y: Field{[10]uint32{0x028625e0, 0x024c39cc, 0x01753934, 0x03695ff2, 0x01a87a50, 0x01c86768, 0x02cd709a, 0x02807861, 0x024f4d41, 0x00375b8f}}},
+ {X: Field{[10]uint32{0x036683fa, 0x01921ea8, 0x00825e83, 0x014e03b0, 0x0295821b, 0x01149ed9, 0x0289ce77, 0x00c6be1e, 0x00d753f9, 0x0000e5cf}}, Y: Field{[10]uint32{0x034a577f, 0x03ecaddf, 0x001dedf5, 0x03863fa6, 0x00d77884, 0x00ad689b, 0x03e12b63, 0x028e8d90, 0x022cc30c, 0x000e33d6}}},
+ {X: Field{[10]uint32{0x0389a762, 0x0098fb4e, 0x02b8dc10, 0x00c04bb9, 0x02930dc9, 0x01a2d1c4, 0x000a0549, 0x009557ea, 0x036c9365, 0x000c9fe1}}, Y: Field{[10]uint32{0x01203301, 0x03f6566e, 0x03dfe9c9, 0x01c3faf5, 0x01755350, 0x038665ee, 0x01969255, 0x01009ac2, 0x00eab352, 0x002cb501}}},
+ {X: Field{[10]uint32{0x00bf6f06, 0x02ce6670, 0x03b57180, 0x00c89410, 0x01713c13, 0x000815d9, 0x02c04f4b, 0x03c54470, 0x03ba72ec, 0x002e9aa6}}, Y: Field{[10]uint32{0x001db551, 0x02fbdc1e, 0x03aafe32, 0x03deb1a5, 0x029e5d14, 0x01562f63, 0x0020bf2e, 0x0046c0c8, 0x0238b34a, 0x0004ddc7}}},
+ {X: Field{[10]uint32{0x01637b39, 0x03c46655, 0x01fa2799, 0x02617b1d, 0x026c52b9, 0x0300c05a, 0x015b9286, 0x02b1730f, 0x01da6b99, 0x00033cf1}}, Y: Field{[10]uint32{0x02852a40, 0x01e8f5e8, 0x01c3cd24, 0x00148f09, 0x0137acd3, 0x00600929, 0x00671adc, 0x026d904d, 0x012fd9f3, 0x0000b3ed}}},
+ {X: Field{[10]uint32{0x01231a43, 0x03be7c1c, 0x003b9fd1, 0x035996b5, 0x0344d514, 0x0137910b, 0x02ed9506, 0x01374b62, 0x00cc27cc, 0x000d716f}}, Y: Field{[10]uint32{0x0220c8f6, 0x01cb9145, 0x030ae7db, 0x033018f3, 0x014cf7a4, 0x01be9627, 0x00e5820b, 0x011b39cd, 0x01723b97, 0x00038d9d}}},
+ {X: Field{[10]uint32{0x0149827b, 0x038d5f6d, 0x03d6148c, 0x03cf8486, 0x01fcc4f7, 0x038b38c4, 0x0212e06d, 0x01d7cea0, 0x00f5e0d3, 0x003391f4}}, Y: Field{[10]uint32{0x03aed097, 0x032697fb, 0x029df43c, 0x00bfc15d, 0x0329e659, 0x016e6b43, 0x009139fe, 0x00352756, 0x00fb9963, 0x000571a6}}},
+ {X: Field{[10]uint32{0x01d40609, 0x002f15bf, 0x00d76bf4, 0x02603607, 0x02c74190, 0x01620d5a, 0x022f12fc, 0x021af284, 0x00245c55, 0x003f51e7}}, Y: Field{[10]uint32{0x0264ca53, 0x00bc4d9a, 0x024739de, 0x035c9872, 0x019113ae, 0x0326107f, 0x00ad7a43, 0x02bfbfcb, 0x03b52694, 0x000c1a73}}},
+ {X: Field{[10]uint32{0x0148be00, 0x03f9c55f, 0x03e13b38, 0x03a85a63, 0x03f60682, 0x03e550f1, 0x030e2207, 0x010bcd3a, 0x00bd4a8e, 0x0024c6fe}}, Y: Field{[10]uint32{0x0344f452, 0x01aa44c7, 0x01df5158, 0x01aacccf, 0x026a43ee, 0x00503afb, 0x03388e61, 0x00820f46, 0x03f0489c, 0x003c454e}}},
+ {X: Field{[10]uint32{0x03799a7f, 0x01c0bd4a, 0x028424db, 0x03354ee3, 0x004f18b6, 0x03cb1f55, 0x02d8eb9a, 0x036192f7, 0x002a3acc, 0x001b1000}}, Y: Field{[10]uint32{0x03c81e32, 0x03320b34, 0x003f68b5, 0x01320812, 0x01c07abd, 0x0387772f, 0x00b836a0, 0x00d6f9a4, 0x001530b6, 0x002570b7}}},
+ {X: Field{[10]uint32{0x00fb27b6, 0x009f8a10, 0x00576324, 0x02caf90c, 0x01c76e3d, 0x005a1aa9, 0x03238ad6, 0x022c6c43, 0x023dbe77, 0x003fa9d3}}, Y: Field{[10]uint32{0x023cb96f, 0x034f6dfc, 0x03b77701, 0x01ae5cfd, 0x03126b59, 0x032dabe4, 0x03674dec, 0x004ca5f3, 0x00db9b0b, 0x001b815a}}},
+ },
+ {
+ {X: Field{[10]uint32{0x00fb27b6, 0x009f8a10, 0x00576324, 0x02caf90c, 0x01c76e3d, 0x005a1aa9, 0x03238ad6, 0x022c6c43, 0x023dbe77, 0x003fa9d3}}, Y: Field{[10]uint32{0x023cb96f, 0x034f6dfc, 0x03b77701, 0x01ae5cfd, 0x03126b59, 0x032dabe4, 0x03674dec, 0x004ca5f3, 0x00db9b0b, 0x001b815a}}},
+ {X: Field{[10]uint32{0x039756e4, 0x025f2587, 0x030488fd, 0x039778dc, 0x02bb570e, 0x003a3343, 0x00e03d85, 0x0203fc60, 0x01c83042, 0x003b6510}}, Y: Field{[10]uint32{0x033abfae, 0x03827e4f, 0x0298bff0, 0x01d3f937, 0x0209f237, 0x02c4e447, 0x02176128, 0x03e866be, 0x029efe8b, 0x000f6fa7}}},
+ {X: Field{[10]uint32{0x02889756, 0x0206ba6f, 0x00bb25dd, 0x0265ec01, 0x03f27b64, 0x01c6267c, 0x02cd97b2, 0x03faa089, 0x03c33211, 0x001d8ba2}}, Y: Field{[10]uint32{0x00a6b774, 0x0096781f, 0x03a5e25e, 0x00c52213, 0x031972db, 0x0260b8d1, 0x03cc4f14, 0x03a5f0f1, 0x00260af3, 0x00300a25}}},
+ {X: Field{[10]uint32{0x011cf119, 0x02b40cf5, 0x00d3015b, 0x03613ead, 0x015b10bd, 0x012d21d4, 0x03ed3f62, 0x01f0ff27, 0x018ee67a, 0x000a765a}}, Y: Field{[10]uint32{0x01056339, 0x021d015d, 0x002963c8, 0x003a4e9f, 0x03b89c94, 0x013c725b, 0x03a12540, 0x00ad149d, 0x00517dc8, 0x001ff40b}}},
+ {X: Field{[10]uint32{0x0175d2ea, 0x01d7a5c2, 0x028ea26f, 0x03e84053, 0x011e52ac, 0x00c23d2a, 0x019bdbb2, 0x0254d238, 0x0147df60, 0x0037c1df}}, Y: Field{[10]uint32{0x01936f95, 0x030b678c, 0x01277aa3, 0x02e13ef7, 0x008a1ec5, 0x0228949f, 0x008425c9, 0x01fd1093, 0x028800ef, 0x003e185e}}},
+ {X: Field{[10]uint32{0x02714560, 0x01602969, 0x006c2875, 0x0009f95b, 0x00247f21, 0x00696a17, 0x007ef64f, 0x034dae75, 0x0275579a, 0x000e2e0a}}, Y: Field{[10]uint32{0x0374299e, 0x021ccd29, 0x02284ada, 0x00efbdc5, 0x017d94f2, 0x00590d16, 0x03f56346, 0x007bd0a2, 0x02976f26, 0x003e7629}}},
+ {X: Field{[10]uint32{0x004c92d7, 0x01247eef, 0x011b45b8, 0x01bb950e, 0x0135db4d, 0x00d2c50a, 0x017dea83, 0x03680cb8, 0x01758bd3, 0x0027cf9f}}, Y: Field{[10]uint32{0x014906dd, 0x02eff3ec, 0x021186cb, 0x000f5a53, 0x02452a23, 0x02eac540, 0x0062b21c, 0x0119ad62, 0x001ea77d, 0x003b34a1}}},
+ {X: Field{[10]uint32{0x03422491, 0x031114df, 0x00cff467, 0x012a1818, 0x01fd453e, 0x00d6028c, 0x03fb7bd3, 0x024db5bc, 0x03d05013, 0x00049ad5}}, Y: Field{[10]uint32{0x01a3ef84, 0x00c7c667, 0x01347afa, 0x030c2fce, 0x00e148ba, 0x00afcfec, 0x004a3eba, 0x018b0b8f, 0x00130616, 0x003069f7}}},
+ {X: Field{[10]uint32{0x02a8c483, 0x0035ccac, 0x00ac35ae, 0x02231410, 0x01174b0c, 0x03be54a0, 0x038c3d22, 0x033e7b70, 0x015d7b5c, 0x0028331e}}, Y: Field{[10]uint32{0x02cc6ba9, 0x019d1564, 0x03605509, 0x006f7da4, 0x006b348f, 0x008c77de, 0x0374fc97, 0x021cfb88, 0x0122f8b3, 0x002af0c0}}},
+ {X: Field{[10]uint32{0x02faf403, 0x01588e8e, 0x03576051, 0x03ee5eb5, 0x0338a0ae, 0x02282d6f, 0x00faffac, 0x007d59c3, 0x0179b9e8, 0x00068904}}, Y: Field{[10]uint32{0x00d79a16, 0x02db9039, 0x0360d590, 0x03d05e37, 0x002c8177, 0x02416ddb, 0x03f27493, 0x01030b12, 0x00c0a867, 0x00238728}}},
+ {X: Field{[10]uint32{0x01dd3aee, 0x03c6daf1, 0x012f2170, 0x022a3e5b, 0x0213153a, 0x01aa5db2, 0x0222a9ac, 0x031f3383, 0x00a51553, 0x001b4714}}, Y: Field{[10]uint32{0x01f597f7, 0x00d5393f, 0x013adfee, 0x002aa3b5, 0x00851e31, 0x00a1f51d, 0x03272002, 0x037f725d, 0x008e06ab, 0x002bffc5}}},
+ {X: Field{[10]uint32{0x03720b26, 0x00bac126, 0x03cd0762, 0x017e6333, 0x0026f283, 0x004e4188, 0x006bbed4, 0x01a3b87d, 0x01ae9ac9, 0x000f8431}}, Y: Field{[10]uint32{0x01d92db5, 0x03a631eb, 0x01e43346, 0x02936f82, 0x00e2ff79, 0x01c8578a, 0x00665b28, 0x0222456a, 0x02cffe42, 0x0031cd71}}},
+ {X: Field{[10]uint32{0x00a6d0bb, 0x032a6df9, 0x02fdc678, 0x008bd686, 0x03659d31, 0x02299063, 0x011a6d8a, 0x03e7cfcc, 0x01618b97, 0x001797c7}}, Y: Field{[10]uint32{0x0033eaf9, 0x00e11e44, 0x0253a168, 0x00b941bd, 0x0272555f, 0x0139c876, 0x00f6bcd0, 0x039bdcd6, 0x002b06a7, 0x0035ec54}}},
+ {X: Field{[10]uint32{0x01543cb4, 0x020e9f59, 0x00299e00, 0x02db08b4, 0x003c4529, 0x0203aa28, 0x03684d05, 0x02152a2a, 0x03ae9734, 0x001cfe1e}}, Y: Field{[10]uint32{0x00856cdd, 0x03761cb1, 0x02d7a3d2, 0x03d4d5fc, 0x019d5c42, 0x028500a2, 0x03fbfc11, 0x03e1bfba, 0x00f03a87, 0x000df19b}}},
+ {X: Field{[10]uint32{0x03005e3f, 0x026d7913, 0x01bd2dda, 0x00c6fb0e, 0x015af68e, 0x03806852, 0x013cb9ac, 0x0109ffff, 0x026b3c16, 0x003e04e2}}, Y: Field{[10]uint32{0x03357eb7, 0x01f8080b, 0x0221342d, 0x02f5552f, 0x01f4ec41, 0x02a972d4, 0x01015e57, 0x03af67e7, 0x033befb4, 0x00329d63}}},
+ {X: Field{[10]uint32{0x03bdde39, 0x000a9105, 0x0032952c, 0x01e6dd81, 0x031544e1, 0x02665a34, 0x022570d5, 0x033c3842, 0x0113f677, 0x001db990}}, Y: Field{[10]uint32{0x0101ac01, 0x005d4b46, 0x02032b4b, 0x034ad5b4, 0x035e2a33, 0x01a07c34, 0x03066d70, 0x02573d5d, 0x038dee4e, 0x00324377}}},
+ },
+ {
+ {X: Field{[10]uint32{0x03bdde39, 0x000a9105, 0x0032952c, 0x01e6dd81, 0x031544e1, 0x02665a34, 0x022570d5, 0x033c3842, 0x0113f677, 0x001db990}}, Y: Field{[10]uint32{0x0101ac01, 0x005d4b46, 0x02032b4b, 0x034ad5b4, 0x035e2a33, 0x01a07c34, 0x03066d70, 0x02573d5d, 0x038dee4e, 0x00324377}}},
+ {X: Field{[10]uint32{0x021187a5, 0x02666a0e, 0x02e691cf, 0x0188b0a6, 0x00005d57, 0x00587204, 0x007c9d88, 0x031cefba, 0x030e9e52, 0x001c2294}}, Y: Field{[10]uint32{0x033db9c0, 0x013c66d1, 0x03e8a58a, 0x00f1b4d4, 0x003ecda7, 0x02db4e0a, 0x01656dcb, 0x02a25fea, 0x0011e1f9, 0x0026e212}}},
+ {X: Field{[10]uint32{0x0078ee8d, 0x01424730, 0x019442f0, 0x033941a4, 0x024ebf20, 0x02a6d3fd, 0x03f7263a, 0x02a6f897, 0x03ad859d, 0x00342395}}, Y: Field{[10]uint32{0x01a63e86, 0x01fd370b, 0x02d9de99, 0x033e508b, 0x00123ef7, 0x015f9b7d, 0x02172ee7, 0x02235cb5, 0x03984ab4, 0x00214ba5}}},
+ {X: Field{[10]uint32{0x01e4f5be, 0x02c5b1b3, 0x0359e2e1, 0x01b61aca, 0x039f374b, 0x017918b3, 0x03d64839, 0x00ef8866, 0x034fc48b, 0x000673c0}}, Y: Field{[10]uint32{0x03321af2, 0x0054cadb, 0x01c0c0a9, 0x0324fc3c, 0x03ef91d1, 0x02c60651, 0x034be68a, 0x02d19b0e, 0x0306a15a, 0x000a38ca}}},
+ {X: Field{[10]uint32{0x029129ec, 0x00519c10, 0x02548159, 0x033c7920, 0x000cae3a, 0x0334c742, 0x018be80e, 0x01349d7d, 0x0085e4d4, 0x001f69b0}}, Y: Field{[10]uint32{0x00d9ff0e, 0x002bb8ab, 0x0186aeb5, 0x02195329, 0x030448c0, 0x024589ef, 0x01d02074, 0x00615d44, 0x006bb9f4, 0x003d2605}}},
+ {X: Field{[10]uint32{0x029c22bc, 0x02b950c3, 0x0042fd43, 0x035a46f3, 0x0201da67, 0x026f1ef9, 0x01b3444d, 0x03ac8dd9, 0x02a5e99e, 0x0014cd73}}, Y: Field{[10]uint32{0x03dacb60, 0x03099cb2, 0x0319b3c2, 0x008db287, 0x02c8c30c, 0x0033ae1a, 0x027f080f, 0x01489281, 0x0020769c, 0x000efe34}}},
+ {X: Field{[10]uint32{0x01654f22, 0x00f52554, 0x02ee94f8, 0x02508c6a, 0x03b2f7f3, 0x039a7653, 0x03e9001b, 0x02f9b886, 0x00cff5c1, 0x00243424}}, Y: Field{[10]uint32{0x001a43e1, 0x037815d8, 0x038740f5, 0x0194f68f, 0x036dd635, 0x01afdc0c, 0x03f021e0, 0x03d86a54, 0x021d2bac, 0x003355a6}}},
+ {X: Field{[10]uint32{0x017cf3e8, 0x02f08274, 0x02219e3a, 0x000d2fa8, 0x02ee93bd, 0x00e5fd5d, 0x0319c2f8, 0x017c35f1, 0x00a078cb, 0x002bdb11}}, Y: Field{[10]uint32{0x0351baea, 0x03741805, 0x01435b8a, 0x03a9f283, 0x03ec362a, 0x032c91b7, 0x01e73153, 0x012cc2be, 0x016fe85d, 0x0001e102}}},
+ {X: Field{[10]uint32{0x036b19fa, 0x03bd9471, 0x019d71b6, 0x01b41a20, 0x02d9d6e0, 0x02084a4b, 0x0322c310, 0x0347b31c, 0x00587cf1, 0x003691e6}}, Y: Field{[10]uint32{0x026f5af7, 0x009bbacc, 0x03c206aa, 0x00fa554f, 0x02a67bd1, 0x038595a7, 0x03369077, 0x02bc0745, 0x03789bcc, 0x003aec75}}},
+ {X: Field{[10]uint32{0x02569044, 0x03e47b75, 0x02ef96d2, 0x01b3e833, 0x0033c039, 0x017163cc, 0x002bafe9, 0x01894e75, 0x020d6f7d, 0x002a8871}}, Y: Field{[10]uint32{0x02f37766, 0x00931070, 0x00334c19, 0x03044e4a, 0x02ee5aba, 0x0106b7d3, 0x01d26add, 0x01aba9b4, 0x0086fc4e, 0x002cab9a}}},
+ {X: Field{[10]uint32{0x01135dbd, 0x00bed96e, 0x0231ecd9, 0x02bce761, 0x00f0c087, 0x00ba625f, 0x017aaf58, 0x03b9ab60, 0x0104a8dd, 0x0038f91d}}, Y: Field{[10]uint32{0x0348045d, 0x01abcf91, 0x01da9690, 0x03fd7b25, 0x02a5a202, 0x00ae0fff, 0x018c8195, 0x031b102e, 0x03f809cb, 0x0024c296}}},
+ {X: Field{[10]uint32{0x03f4de54, 0x00798853, 0x002be5bc, 0x0247a74f, 0x00a5cabd, 0x00528a16, 0x034031cf, 0x000a8b0e, 0x00355df2, 0x0015c5b7}}, Y: Field{[10]uint32{0x00100fa5, 0x0293f554, 0x02417d3e, 0x0333411f, 0x01ebf3fe, 0x0264c931, 0x02aa661a, 0x020fce47, 0x00400a5b, 0x002617db}}},
+ {X: Field{[10]uint32{0x01ee455f, 0x002e7973, 0x00075cbf, 0x039ba339, 0x02ff67ff, 0x0202f6d2, 0x0345338f, 0x02a6c291, 0x016fe870, 0x001fa319}}, Y: Field{[10]uint32{0x031b9cba, 0x037a6605, 0x02627173, 0x019d1bd1, 0x034aa2d1, 0x0200e94e, 0x03f760f4, 0x01d03ca8, 0x0232ca30, 0x002f7771}}},
+ {X: Field{[10]uint32{0x0369b57c, 0x00540365, 0x03c7b1e6, 0x02f0e78b, 0x01da5033, 0x02f8fc13, 0x008f1925, 0x00a0ad4d, 0x01cb592d, 0x0000c194}}, Y: Field{[10]uint32{0x033236e3, 0x00e9417c, 0x038057ff, 0x0061ce7d, 0x03192a4d, 0x0215a0b0, 0x00e2423e, 0x030262b1, 0x0033bb7a, 0x00094822}}},
+ {X: Field{[10]uint32{0x0298b59e, 0x025ae6d9, 0x007a4377, 0x009624d1, 0x020a3359, 0x00f8f1c9, 0x02b035ab, 0x017ac56f, 0x01f891a9, 0x000f7e10}}, Y: Field{[10]uint32{0x0392baf5, 0x02399e5a, 0x009f8bcf, 0x01ec8525, 0x027bfc86, 0x00473ce1, 0x002bae8f, 0x02430768, 0x02df98b0, 0x002ce3f9}}},
+ {X: Field{[10]uint32{0x03cbb891, 0x0054090a, 0x00bee3ab, 0x010f7c9b, 0x028f7cc6, 0x010fe3e6, 0x0281baa7, 0x02af87a0, 0x016b03b2, 0x0031ce31}}, Y: Field{[10]uint32{0x019a84c3, 0x01cd765a, 0x00fe917e, 0x03bde203, 0x0382314e, 0x032feeee, 0x0318f2ea, 0x03494dfd, 0x0178951a, 0x00224fed}}},
+ },
+ {
+ {X: Field{[10]uint32{0x03cbb891, 0x0054090a, 0x00bee3ab, 0x010f7c9b, 0x028f7cc6, 0x010fe3e6, 0x0281baa7, 0x02af87a0, 0x016b03b2, 0x0031ce31}}, Y: Field{[10]uint32{0x019a84c3, 0x01cd765a, 0x00fe917e, 0x03bde203, 0x0382314e, 0x032feeee, 0x0318f2ea, 0x03494dfd, 0x0178951a, 0x00224fed}}},
+ {X: Field{[10]uint32{0x0262ab1b, 0x02ac1e11, 0x009e4dda, 0x03a926e3, 0x00647197, 0x00b9eaa5, 0x0332a699, 0x000dd0d6, 0x005ecd7c, 0x00155e21}}, Y: Field{[10]uint32{0x016f3511, 0x03463cc1, 0x024de316, 0x01d1a975, 0x03f653a7, 0x034a9014, 0x026d0a51, 0x038b0f3a, 0x03978b6d, 0x00398741}}},
+ {X: Field{[10]uint32{0x0361d58d, 0x02abcce1, 0x00e2f34b, 0x03902358, 0x02ca4c9b, 0x01c837de, 0x02240a35, 0x01851842, 0x0127823f, 0x002e3118}}, Y: Field{[10]uint32{0x011051a4, 0x03a82ea7, 0x03c5b638, 0x01e17841, 0x013f7504, 0x01fcf141, 0x02458f69, 0x038df452, 0x016c5170, 0x0023e7b6}}},
+ {X: Field{[10]uint32{0x008b6c29, 0x021a6e25, 0x0196094f, 0x0153f38e, 0x0122f123, 0x03433b33, 0x03fa3bc1, 0x0193312a, 0x003888a3, 0x0011fcce}}, Y: Field{[10]uint32{0x02537ef9, 0x03b84483, 0x014a81ed, 0x025623e6, 0x0118bb49, 0x02d05b1c, 0x00e48675, 0x00a4dc64, 0x028d0f03, 0x001232a6}}},
+ {X: Field{[10]uint32{0x010b0040, 0x002cc101, 0x00adc2db, 0x02e7c04d, 0x01f3f47d, 0x03a68d9c, 0x010c993f, 0x01c7de8d, 0x029f7102, 0x0002355b}}, Y: Field{[10]uint32{0x033fd0a1, 0x03899e96, 0x002beb58, 0x01c8385e, 0x01f6d7c4, 0x035e6ca1, 0x03d150a8, 0x026a887f, 0x01aebd0a, 0x00284861}}},
+ {X: Field{[10]uint32{0x0166ff40, 0x037a8684, 0x0336da14, 0x012907ff, 0x02caeebf, 0x0392028b, 0x038125d8, 0x0234adf1, 0x00331881, 0x001ac010}}, Y: Field{[10]uint32{0x0171b847, 0x0104c3a7, 0x02de9eb7, 0x03db9fcf, 0x00076883, 0x0242fcbc, 0x00943a05, 0x03eb265a, 0x033ae8aa, 0x00107346}}},
+ {X: Field{[10]uint32{0x03573b7f, 0x0158f7c4, 0x02270f56, 0x017b4c2d, 0x03889a1c, 0x02f9968d, 0x0220f977, 0x03398d07, 0x0232d42f, 0x003704fc}}, Y: Field{[10]uint32{0x001f2ba6, 0x03348a13, 0x00b1c42a, 0x01c05d01, 0x02704554, 0x012a429d, 0x03410da8, 0x00d030f1, 0x0280429e, 0x0032426e}}},
+ {X: Field{[10]uint32{0x01ff4adb, 0x029b23c1, 0x03768a81, 0x035bf2fb, 0x0214f570, 0x01a9757d, 0x026b4c9c, 0x02e33f91, 0x0334ae41, 0x00303007}}, Y: Field{[10]uint32{0x00351065, 0x03bfdceb, 0x01b85fc4, 0x0345c345, 0x02cdbc43, 0x001d6e33, 0x0137a0b4, 0x01fd71f2, 0x01bee435, 0x0002e13d}}},
+ {X: Field{[10]uint32{0x03ae9ceb, 0x03d642e1, 0x02d14b02, 0x03a9c3bc, 0x00226c21, 0x02c8466a, 0x0319565d, 0x01fc1ceb, 0x01e601df, 0x0009700b}}, Y: Field{[10]uint32{0x03c6e275, 0x024344d2, 0x00726470, 0x037c2996, 0x0137c641, 0x03eb4475, 0x0084e0dc, 0x00e0f032, 0x02d2c812, 0x0022a7fa}}},
+ {X: Field{[10]uint32{0x032c1a1c, 0x000675e4, 0x01d6e365, 0x006808af, 0x03a2f32b, 0x002d8ee4, 0x0229ea40, 0x032f6cf4, 0x03bc468e, 0x000ea4cb}}, Y: Field{[10]uint32{0x01343540, 0x02a49a5f, 0x028b684a, 0x0055d268, 0x02c0417e, 0x03720742, 0x009547d4, 0x015ea007, 0x00540f34, 0x002b4f60}}},
+ {X: Field{[10]uint32{0x005a3c34, 0x00263dbb, 0x009fe1f8, 0x0300a565, 0x00aece82, 0x01eb8f96, 0x02b9f4ca, 0x039273a2, 0x011b2cf8, 0x003fb767}}, Y: Field{[10]uint32{0x013d7714, 0x0152fd38, 0x0029762b, 0x011a66fe, 0x00adaeb5, 0x0323d2c0, 0x03e85312, 0x02e382c2, 0x00c31853, 0x00294b89}}},
+ {X: Field{[10]uint32{0x00d6bf1f, 0x00841ae0, 0x03cbb045, 0x00fa6093, 0x0146bd03, 0x01acd1ae, 0x0121e927, 0x02e0f28d, 0x0343451c, 0x0030ccdc}}, Y: Field{[10]uint32{0x00b01f48, 0x0396108f, 0x02162f95, 0x01083899, 0x0198ba36, 0x01cb0c55, 0x01ff31af, 0x00b3684f, 0x01391b81, 0x000bbbfa}}},
+ {X: Field{[10]uint32{0x02b6a396, 0x0395346a, 0x020769b4, 0x0246844d, 0x0373021b, 0x03a1222c, 0x02e2d7f5, 0x029230b7, 0x0286bc6e, 0x000f838c}}, Y: Field{[10]uint32{0x0180e27e, 0x00c79236, 0x00f6a2eb, 0x0107cd1a, 0x026ab010, 0x02d14ff1, 0x031fe1de, 0x00de593c, 0x0172fa3b, 0x00329120}}},
+ {X: Field{[10]uint32{0x02f027e9, 0x03d31236, 0x0277e27b, 0x036fb951, 0x03d7ca75, 0x01fb5b45, 0x03c7cd53, 0x00f894f0, 0x033d3ea8, 0x001698a1}}, Y: Field{[10]uint32{0x004c68b4, 0x02764161, 0x035fb319, 0x00c27299, 0x03988af4, 0x03b15e90, 0x02409cfe, 0x01abf69d, 0x0079a5bf, 0x003db651}}},
+ {X: Field{[10]uint32{0x001023ec, 0x00d6188d, 0x03570aaf, 0x03ddbfb3, 0x035645d8, 0x0260ae6b, 0x002e0200, 0x00b4a126, 0x013080c3, 0x000d12ae}}, Y: Field{[10]uint32{0x021eeb87, 0x02260a47, 0x015d704f, 0x01abf0e6, 0x03fc4e97, 0x02945317, 0x038f2d1e, 0x0118a9cf, 0x03042b24, 0x001b870a}}},
+ {X: Field{[10]uint32{0x00f6c14b, 0x03a7d962, 0x01014372, 0x017cea49, 0x03d1d72e, 0x0325ca1d, 0x024c7637, 0x016e0789, 0x026548b6, 0x00362558}}, Y: Field{[10]uint32{0x017d991f, 0x018fb5d7, 0x027e1793, 0x018caec1, 0x0303428d, 0x0230d03a, 0x00ec6081, 0x01fab9ca, 0x0238f2bc, 0x003fafea}}},
+ },
+ {
+ {X: Field{[10]uint32{0x00f6c14b, 0x03a7d962, 0x01014372, 0x017cea49, 0x03d1d72e, 0x0325ca1d, 0x024c7637, 0x016e0789, 0x026548b6, 0x00362558}}, Y: Field{[10]uint32{0x017d991f, 0x018fb5d7, 0x027e1793, 0x018caec1, 0x0303428d, 0x0230d03a, 0x00ec6081, 0x01fab9ca, 0x0238f2bc, 0x003fafea}}},
+ {X: Field{[10]uint32{0x03078424, 0x02d652dd, 0x00c3fba5, 0x01e83b10, 0x0303ecaf, 0x0000e899, 0x03a43622, 0x00113a28, 0x02ef8971, 0x003f44db}}, Y: Field{[10]uint32{0x0271ddf1, 0x007bbbf1, 0x01fa8cd6, 0x03de28ab, 0x017cf2b1, 0x01717be9, 0x021d191b, 0x014b319e, 0x0034f3c6, 0x0008636a}}},
+ {X: Field{[10]uint32{0x0127b756, 0x02a1ffd8, 0x0170480b, 0x0392ae82, 0x0203428b, 0x00182d05, 0x01362da5, 0x03c499cb, 0x002f716d, 0x001b631e}}, Y: Field{[10]uint32{0x03172571, 0x007dd2af, 0x01cca655, 0x0368b5f3, 0x034e3aa6, 0x01b4d36b, 0x019a82d3, 0x02e44451, 0x030896fd, 0x00266bb7}}},
+ {X: Field{[10]uint32{0x01b1cb3c, 0x03613b23, 0x0024a5f1, 0x028350fc, 0x021b7003, 0x01d467e1, 0x01cca536, 0x0234503a, 0x029dd963, 0x003667a3}}, Y: Field{[10]uint32{0x038637a7, 0x028a78da, 0x0365cd88, 0x03e3ff21, 0x026286fe, 0x02f3ae9b, 0x005bb321, 0x028e9ea5, 0x01ad1cc0, 0x000db706}}},
+ {X: Field{[10]uint32{0x018cf17a, 0x03869cdd, 0x023524de, 0x032e9620, 0x00f1f85d, 0x02d025fe, 0x0059aef1, 0x01eb2a34, 0x02dd95bf, 0x003af2af}}, Y: Field{[10]uint32{0x00aa0ccd, 0x033717d7, 0x0295c446, 0x004b42b3, 0x0310fad2, 0x01f0cb9a, 0x0000a1b6, 0x02e72c0b, 0x020f8f22, 0x0011f4f3}}},
+ {X: Field{[10]uint32{0x01a3c43c, 0x012cb154, 0x02258e4c, 0x032a3b3b, 0x000df701, 0x02ab99c5, 0x00c1f2b4, 0x03356d23, 0x029467ca, 0x0015b276}}, Y: Field{[10]uint32{0x00d7c9ed, 0x0362df48, 0x00aa1824, 0x03e4cbb7, 0x0241d40f, 0x0372da14, 0x03c7964d, 0x027b0bcc, 0x02cb42c7, 0x000e351a}}},
+ {X: Field{[10]uint32{0x00855c5b, 0x03b9456b, 0x00afbbce, 0x006805f2, 0x00118562, 0x0385ff0a, 0x0331a369, 0x03389114, 0x012e4bd4, 0x003a37d3}}, Y: Field{[10]uint32{0x02465650, 0x0179cb0b, 0x00d7d59d, 0x017c7879, 0x019663b5, 0x027bccb1, 0x004db4f5, 0x026c9911, 0x0170c47f, 0x001b15ff}}},
+ {X: Field{[10]uint32{0x00385172, 0x01bda34f, 0x02636fd4, 0x00781103, 0x01d20335, 0x016c2464, 0x03d8a54e, 0x020c5e86, 0x01619a19, 0x0000ff7c}}, Y: Field{[10]uint32{0x00cb9794, 0x0319fc3f, 0x0232b79a, 0x027a439c, 0x015b9b92, 0x03215cdd, 0x0070c7d3, 0x004b0ff9, 0x02c06e5c, 0x00102340}}},
+ {X: Field{[10]uint32{0x02e7e454, 0x03d6f694, 0x02150d08, 0x03bc3c39, 0x02fe32ef, 0x02a60598, 0x02486023, 0x02a0ca44, 0x03d718ec, 0x00101a34}}, Y: Field{[10]uint32{0x00ef191e, 0x02b37976, 0x03332779, 0x03b44f0d, 0x01988d21, 0x03674e34, 0x02c14597, 0x011eaae7, 0x03b7254a, 0x00233614}}},
+ {X: Field{[10]uint32{0x01d8247e, 0x0307fd4d, 0x011eb400, 0x0309445a, 0x00cd4780, 0x03e82de8, 0x02101f9a, 0x0157395b, 0x01bba2c3, 0x000cfab2}}, Y: Field{[10]uint32{0x033da9bf, 0x005aac2b, 0x0007f372, 0x00dedfa9, 0x0184f8cf, 0x03457bcb, 0x0061f2af, 0x01f10751, 0x0173e4e1, 0x000d65cc}}},
+ {X: Field{[10]uint32{0x02c5d939, 0x01eb7e11, 0x033de085, 0x021deea4, 0x02a475a2, 0x0032809f, 0x01bf32e6, 0x009782d5, 0x02cdb1d8, 0x00049543}}, Y: Field{[10]uint32{0x01e757c9, 0x01d3f156, 0x0143192a, 0x007fb363, 0x02838b74, 0x01dc929c, 0x008e43c1, 0x035e9d51, 0x0334f872, 0x001ee3e0}}},
+ {X: Field{[10]uint32{0x01f771c8, 0x0092740b, 0x00c87b9e, 0x0047b825, 0x00335a52, 0x0007e1d4, 0x032c2b3c, 0x03240a74, 0x006d922d, 0x002dc795}}, Y: Field{[10]uint32{0x03f48c51, 0x00e89be4, 0x02286245, 0x00ad56ee, 0x0026bd52, 0x0338a23d, 0x0112a4cc, 0x03e401e2, 0x03a8cec9, 0x0039f33b}}},
+ {X: Field{[10]uint32{0x02c8a56f, 0x002ab195, 0x0342138d, 0x0150d3cd, 0x0385093c, 0x02beb423, 0x01bb7b53, 0x0217531a, 0x031ac3b5, 0x00251359}}, Y: Field{[10]uint32{0x027be289, 0x01371976, 0x0117eb9f, 0x01d37419, 0x0167d4c1, 0x00ceb186, 0x01439361, 0x007ffd30, 0x01977b50, 0x0029c419}}},
+ {X: Field{[10]uint32{0x03194444, 0x01cc24b4, 0x03ea268f, 0x0252ea9f, 0x02850fea, 0x0361e867, 0x02239666, 0x009ae184, 0x0196ba15, 0x003eb3d7}}, Y: Field{[10]uint32{0x00bad676, 0x02fd2211, 0x0100b552, 0x0116e51f, 0x02be72b2, 0x024b76b1, 0x01b77563, 0x0113da4d, 0x007bb8ad, 0x001f3ae4}}},
+ {X: Field{[10]uint32{0x0208f15a, 0x02e2862b, 0x0100baee, 0x01b7204a, 0x01fd69e5, 0x02b4f0c1, 0x02b03655, 0x026833f9, 0x0291cd09, 0x0021a953}}, Y: Field{[10]uint32{0x01388308, 0x013479f0, 0x0254d352, 0x00496cd4, 0x0377129d, 0x035d5a19, 0x032a8d06, 0x021180e9, 0x014837a7, 0x0033fb98}}},
+ {X: Field{[10]uint32{0x03676e03, 0x01429593, 0x00edd491, 0x00da4fa1, 0x01ceffc7, 0x01c7a1d8, 0x00f64335, 0x01d463ac, 0x00032a95, 0x002e36a5}}, Y: Field{[10]uint32{0x02fdf6e7, 0x023939d3, 0x03b51148, 0x013657fc, 0x0092cc58, 0x018a022c, 0x0099cc97, 0x0287935f, 0x03a44805, 0x000a0137}}},
+ },
+ {
+ {X: Field{[10]uint32{0x03676e03, 0x01429593, 0x00edd491, 0x00da4fa1, 0x01ceffc7, 0x01c7a1d8, 0x00f64335, 0x01d463ac, 0x00032a95, 0x002e36a5}}, Y: Field{[10]uint32{0x02fdf6e7, 0x023939d3, 0x03b51148, 0x013657fc, 0x0092cc58, 0x018a022c, 0x0099cc97, 0x0287935f, 0x03a44805, 0x000a0137}}},
+ {X: Field{[10]uint32{0x01af726a, 0x00fd0531, 0x036e6d41, 0x0172c96f, 0x01469a3e, 0x02ad883e, 0x032cb698, 0x0317394f, 0x0105ed8c, 0x001b4db4}}, Y: Field{[10]uint32{0x03f9fc7d, 0x00124684, 0x00a35c57, 0x00dad042, 0x01dcc599, 0x0171400a, 0x018c66c9, 0x019a79cb, 0x0034e377, 0x00392e97}}},
+ {X: Field{[10]uint32{0x02e1346b, 0x02612771, 0x031c5ea1, 0x0040e16b, 0x005abe7b, 0x013454b0, 0x00c761f1, 0x03442f95, 0x00ff0982, 0x0001a41a}}, Y: Field{[10]uint32{0x03226c13, 0x01629535, 0x0026e7bb, 0x00e65318, 0x02a4f689, 0x0021910a, 0x005db2bd, 0x03789b6a, 0x03e090bf, 0x002e18f8}}},
+ {X: Field{[10]uint32{0x0140db99, 0x00a8c329, 0x0012286e, 0x03014d2e, 0x03eb1309, 0x01bc2c38, 0x02883fa6, 0x02b03341, 0x01e10cd3, 0x000eadaf}}, Y: Field{[10]uint32{0x03da78a3, 0x01cff8c6, 0x00043e68, 0x02c38da7, 0x0038d137, 0x0284fa67, 0x03117a96, 0x01c75ff0, 0x02079be8, 0x002eb298}}},
+ {X: Field{[10]uint32{0x00a1f6a1, 0x01a47f37, 0x03f1a30e, 0x0050d233, 0x01068cbd, 0x007a1b38, 0x006dc5cb, 0x025d854a, 0x0093cb25, 0x0022630d}}, Y: Field{[10]uint32{0x024f647c, 0x037083c5, 0x0179ca4a, 0x025e7caf, 0x03b2a7cf, 0x00ab1ba4, 0x00454245, 0x02955276, 0x0186ab56, 0x001d7dd6}}},
+ {X: Field{[10]uint32{0x0235c795, 0x038aef1c, 0x001d7584, 0x0163af55, 0x030b0d89, 0x03472275, 0x03b05b37, 0x025d2ce4, 0x022435ef, 0x00018f11}}, Y: Field{[10]uint32{0x03110258, 0x00b70256, 0x029bd3f3, 0x02b3e926, 0x029e4acb, 0x00c7216d, 0x01f660d9, 0x0210110c, 0x03b91303, 0x00389fe6}}},
+ {X: Field{[10]uint32{0x011e3998, 0x02780f0f, 0x00328aa6, 0x02e45e81, 0x025e56c8, 0x008a89d3, 0x01299d70, 0x022fc069, 0x02fed291, 0x002c84f8}}, Y: Field{[10]uint32{0x025fb81e, 0x032f718c, 0x01175ec2, 0x016faf7b, 0x03d53416, 0x00e90ef0, 0x0161ebf8, 0x00f04b0f, 0x02c20f2d, 0x0008a7e3}}},
+ {X: Field{[10]uint32{0x031048da, 0x01efc9e7, 0x013ba777, 0x03cdcf77, 0x02ba2fd4, 0x0341ef38, 0x03a069d9, 0x015bc3f6, 0x00e3f1ad, 0x001e598d}}, Y: Field{[10]uint32{0x0106cf01, 0x026f8928, 0x00862e8f, 0x03633f5d, 0x02532576, 0x029e49fc, 0x01e74735, 0x002e255b, 0x02b6cfb2, 0x001363b8}}},
+ {X: Field{[10]uint32{0x025be234, 0x0387fb28, 0x0350700b, 0x039c377c, 0x020e83e3, 0x00581b81, 0x01d0ba69, 0x03e4f974, 0x02d816c7, 0x0012cece}}, Y: Field{[10]uint32{0x020e8362, 0x02df80e4, 0x01b84063, 0x024b3c84, 0x0041e7fd, 0x03633013, 0x035e96df, 0x02f271e1, 0x023b85da, 0x0017bb00}}},
+ {X: Field{[10]uint32{0x005201e1, 0x0026b270, 0x0377dab2, 0x016ba0da, 0x01d264cb, 0x03a8d7e6, 0x02bd55cd, 0x01e2ba14, 0x02b06e6c, 0x0030a671}}, Y: Field{[10]uint32{0x00f51ba3, 0x00cc4e94, 0x02ae9add, 0x03d60eb0, 0x03bd74dc, 0x035dd335, 0x0084f24f, 0x02016ce2, 0x01923611, 0x0016a9ce}}},
+ {X: Field{[10]uint32{0x0289f55e, 0x018d29f8, 0x02707b96, 0x03c38b1d, 0x022976b0, 0x01e2596f, 0x00251b02, 0x013e5808, 0x00b6ddb0, 0x0027dee2}}, Y: Field{[10]uint32{0x021e4bde, 0x034ed97f, 0x022b1b3c, 0x0383ac42, 0x03c0e536, 0x0263f1c7, 0x03146b42, 0x0043def8, 0x0384c704, 0x000cbe7d}}},
+ {X: Field{[10]uint32{0x001cbaab, 0x01e9fc5b, 0x0164cfd3, 0x01e40cf5, 0x001acab8, 0x029c18d7, 0x00ab6c18, 0x0181c566, 0x0298fb35, 0x00340c6b}}, Y: Field{[10]uint32{0x01116b26, 0x02411fe1, 0x01fdc4c3, 0x013f6f59, 0x036dfb4a, 0x0372d373, 0x02e4c06a, 0x01613a39, 0x02b4e954, 0x00105465}}},
+ {X: Field{[10]uint32{0x01fe1d2b, 0x01272307, 0x038e5165, 0x002795a1, 0x00c493f5, 0x00fedce9, 0x02ccadfd, 0x01238f9d, 0x03e9cb74, 0x00356290}}, Y: Field{[10]uint32{0x00d50922, 0x009e56e3, 0x02fbffcf, 0x008572f5, 0x0354d9ba, 0x020a09da, 0x02729132, 0x020f3c42, 0x026ba058, 0x003f05e1}}},
+ {X: Field{[10]uint32{0x007996c0, 0x03ef5611, 0x0269a626, 0x01c9dae8, 0x016e2eed, 0x02fb743a, 0x03979577, 0x00d590e6, 0x02d86a95, 0x0005ba16}}, Y: Field{[10]uint32{0x00151d48, 0x022f192e, 0x01d54488, 0x02b6715a, 0x0221b642, 0x0003b556, 0x0217e5ce, 0x0124fbec, 0x00aeb424, 0x001d022c}}},
+ {X: Field{[10]uint32{0x009c795e, 0x00546f89, 0x0005e124, 0x02aa673a, 0x02ed4406, 0x0309fa93, 0x02d969c3, 0x020c4335, 0x01397111, 0x0008749c}}, Y: Field{[10]uint32{0x01208ece, 0x004bb0e6, 0x03761b00, 0x01292b7e, 0x03d67194, 0x008aed30, 0x0335b855, 0x02b3a85d, 0x01b4b075, 0x0025317e}}},
+ {X: Field{[10]uint32{0x03c0df5d, 0x0045de38, 0x02792f1a, 0x03ed455a, 0x032019ef, 0x01d75fea, 0x00adab94, 0x02cce9f6, 0x0214441f, 0x003a03fa}}, Y: Field{[10]uint32{0x02c9ec78, 0x010a46da, 0x02ea9fcb, 0x0202bcc8, 0x032d155e, 0x00f2a511, 0x009768ca, 0x0001dc7a, 0x027f638e, 0x003bb477}}},
+ },
+ {
+ {X: Field{[10]uint32{0x03c0df5d, 0x0045de38, 0x02792f1a, 0x03ed455a, 0x032019ef, 0x01d75fea, 0x00adab94, 0x02cce9f6, 0x0214441f, 0x003a03fa}}, Y: Field{[10]uint32{0x02c9ec78, 0x010a46da, 0x02ea9fcb, 0x0202bcc8, 0x032d155e, 0x00f2a511, 0x009768ca, 0x0001dc7a, 0x027f638e, 0x003bb477}}},
+ {X: Field{[10]uint32{0x0383cd58, 0x0039e2c3, 0x039162db, 0x00e1df4b, 0x03122dcc, 0x03bf9e8d, 0x01ac4ed1, 0x00499660, 0x01f08ea4, 0x00110328}}, Y: Field{[10]uint32{0x008a3f4b, 0x02f01a6e, 0x02260b07, 0x0109a702, 0x02a21e4d, 0x03538bc0, 0x00954dc9, 0x03848abe, 0x00d2cd5e, 0x0029b22c}}},
+ {X: Field{[10]uint32{0x03592d55, 0x00d67b35, 0x010192c0, 0x011d038d, 0x0106d5b9, 0x00cf38ec, 0x02fef696, 0x00149822, 0x02dbc4a1, 0x00174bb1}}, Y: Field{[10]uint32{0x035183a7, 0x039743ab, 0x01174266, 0x0336b445, 0x010e2a7b, 0x01a335a5, 0x03710fa2, 0x0117ad63, 0x01f89c6e, 0x0002a4b3}}},
+ {X: Field{[10]uint32{0x02998b10, 0x02f689c4, 0x029d9e81, 0x02f306c8, 0x019bc70e, 0x00ea41e0, 0x037f829d, 0x01b07317, 0x03af2b96, 0x003da532}}, Y: Field{[10]uint32{0x00f05e51, 0x0222c5c0, 0x02a47f67, 0x030c60f0, 0x02eb6c64, 0x0311b60a, 0x03c5ffac, 0x03c0f58c, 0x02ba61be, 0x0010298f}}},
+ {X: Field{[10]uint32{0x028f9f5c, 0x03d2d27f, 0x00a51991, 0x03856620, 0x017361f1, 0x0057d013, 0x02cae342, 0x03dd0bf8, 0x01c3b11b, 0x002b0dc7}}, Y: Field{[10]uint32{0x025a503c, 0x020ffccc, 0x01e1d17a, 0x0163b9d4, 0x01229534, 0x009539cd, 0x02101e73, 0x0291dffc, 0x02c18709, 0x00314585}}},
+ {X: Field{[10]uint32{0x015bf84c, 0x012e3e39, 0x01027a74, 0x03b55c36, 0x03d964c6, 0x008f2b93, 0x01d3c252, 0x01b32397, 0x0099ceb9, 0x00189e0a}}, Y: Field{[10]uint32{0x0315fa2a, 0x0073ead7, 0x036ed6f5, 0x039f7745, 0x039a020d, 0x025c99e0, 0x00549722, 0x028a2407, 0x00a40911, 0x00359c2b}}},
+ {X: Field{[10]uint32{0x01e33446, 0x00723546, 0x0385df4a, 0x03114abc, 0x0240893b, 0x0088a85e, 0x008c0bd0, 0x0210324d, 0x003a14f1, 0x00225080}}, Y: Field{[10]uint32{0x02387689, 0x00e28039, 0x00f9840d, 0x00d9e79d, 0x006bfd77, 0x03bf7938, 0x00b2d6d0, 0x001de936, 0x039595a5, 0x002a7f40}}},
+ {X: Field{[10]uint32{0x01d553fd, 0x0284cd63, 0x02414f95, 0x0257022d, 0x0047abf6, 0x02689654, 0x036d4f43, 0x01a12142, 0x022a3556, 0x0022dba1}}, Y: Field{[10]uint32{0x029be5ed, 0x00f6b4cf, 0x003d0d80, 0x016860ce, 0x0124ac3c, 0x013ae7e8, 0x010bc2df, 0x0072d034, 0x00910ed1, 0x003a9782}}},
+ {X: Field{[10]uint32{0x0113cb26, 0x00a3256e, 0x016d03d7, 0x027004ef, 0x0099eb41, 0x01541726, 0x00da44ff, 0x010aa28b, 0x026b30a3, 0x0009dc09}}, Y: Field{[10]uint32{0x0348a7a2, 0x01c5ccfc, 0x01bebbfe, 0x006f3205, 0x00e940c9, 0x01fcacc9, 0x012d24d0, 0x036c6955, 0x005e79b0, 0x003d926f}}},
+ {X: Field{[10]uint32{0x030c58bd, 0x010912b3, 0x024ce23f, 0x0137d911, 0x0228d49f, 0x01aabb3d, 0x019e1005, 0x013024cb, 0x006e2484, 0x0034eb7c}}, Y: Field{[10]uint32{0x03c89387, 0x0392ae4d, 0x00c9ce52, 0x027e92e6, 0x02aee386, 0x03fd8e2e, 0x03b2febc, 0x0181def7, 0x01b4fc2a, 0x0015fa67}}},
+ {X: Field{[10]uint32{0x015e8247, 0x02a80856, 0x00d1af0a, 0x01155a1b, 0x0097bfdc, 0x033e2ea4, 0x025e6e01, 0x03b485e3, 0x00d383cb, 0x001d7934}}, Y: Field{[10]uint32{0x01982d22, 0x00ff6756, 0x01893ca2, 0x02dbaa6b, 0x007ddab5, 0x01edc9b5, 0x01f970ec, 0x002641d0, 0x02a17541, 0x0007f390}}},
+ {X: Field{[10]uint32{0x039715c2, 0x011c743c, 0x0129a399, 0x0087e629, 0x01690065, 0x028cffb7, 0x011f78ce, 0x00f616d0, 0x0288f19a, 0x000bc627}}, Y: Field{[10]uint32{0x0171dfea, 0x018d6110, 0x014f066a, 0x038b0da1, 0x03eb3333, 0x03443e7d, 0x0308475e, 0x035f3f7d, 0x01f8f3c5, 0x0032468e}}},
+ {X: Field{[10]uint32{0x02333323, 0x027d1369, 0x02bf4747, 0x0071a3d2, 0x009cbbbc, 0x026136a1, 0x0020d605, 0x02efc0fc, 0x02383361, 0x000fb46d}}, Y: Field{[10]uint32{0x01d61ba3, 0x00ff122d, 0x037294b1, 0x02842de3, 0x02a9b728, 0x0223e4a7, 0x017c9896, 0x013b9d76, 0x01a48b5b, 0x003613cb}}},
+ {X: Field{[10]uint32{0x023eb3fc, 0x018bb73e, 0x02398875, 0x02513643, 0x0277ee68, 0x02229bdf, 0x0246b408, 0x01aedddf, 0x00bb0a1b, 0x0034b372}}, Y: Field{[10]uint32{0x02d37564, 0x021f6cf7, 0x00927442, 0x02e4c42d, 0x02c1f217, 0x033e49bb, 0x01e95362, 0x018411b7, 0x02f9e5c5, 0x003154e2}}},
+ {X: Field{[10]uint32{0x033980bf, 0x0015f52c, 0x000baf25, 0x00b94374, 0x0368a370, 0x00d23750, 0x006fd772, 0x020606e1, 0x02f06a75, 0x001c3f74}}, Y: Field{[10]uint32{0x00b75785, 0x03aa33a8, 0x00a5612e, 0x020e175d, 0x030a1035, 0x007b965a, 0x03a410d1, 0x021a5a55, 0x02c0d0d5, 0x0017b7f2}}},
+ {X: Field{[10]uint32{0x00e16070, 0x001eef31, 0x02915ddc, 0x000c7bf5, 0x03f2a182, 0x03559d50, 0x03a48e51, 0x01c10c4e, 0x017bdfcd, 0x0028c05a}}, Y: Field{[10]uint32{0x02177ea1, 0x03468107, 0x01a130c0, 0x03df0284, 0x031735db, 0x017503e6, 0x01809fa2, 0x0393d420, 0x011cfb67, 0x001cdc3e}}},
+ },
+ {
+ {X: Field{[10]uint32{0x00e16070, 0x001eef31, 0x02915ddc, 0x000c7bf5, 0x03f2a182, 0x03559d50, 0x03a48e51, 0x01c10c4e, 0x017bdfcd, 0x0028c05a}}, Y: Field{[10]uint32{0x02177ea1, 0x03468107, 0x01a130c0, 0x03df0284, 0x031735db, 0x017503e6, 0x01809fa2, 0x0393d420, 0x011cfb67, 0x001cdc3e}}},
+ {X: Field{[10]uint32{0x024ba5ae, 0x0080c5bc, 0x035d8114, 0x000130d2, 0x00b43965, 0x0382ffdd, 0x028d2419, 0x03c127cf, 0x019cff79, 0x0009f879}}, Y: Field{[10]uint32{0x003a45b3, 0x016ffba2, 0x023f784a, 0x029a6be9, 0x01df48a1, 0x031e77c1, 0x01b5e3cf, 0x038827b8, 0x02a6c804, 0x000c42c9}}},
+ {X: Field{[10]uint32{0x038011fc, 0x0049c004, 0x00562670, 0x019eb5ca, 0x0183596a, 0x00880293, 0x02b13308, 0x03ac4455, 0x03a30815, 0x001ba0c4}}, Y: Field{[10]uint32{0x0315ab7d, 0x02da7e8f, 0x01f9a6ac, 0x016ba714, 0x0026af91, 0x0076b0c1, 0x0212db20, 0x03c81306, 0x018bdc24, 0x003051e0}}},
+ {X: Field{[10]uint32{0x00aed7ae, 0x0245d727, 0x03b4f996, 0x037a13ef, 0x035a39ad, 0x024b5f93, 0x0188ec38, 0x012bb859, 0x03a5f686, 0x0031c4b9}}, Y: Field{[10]uint32{0x02156294, 0x00522a91, 0x0263784d, 0x01512c33, 0x01380d8e, 0x00477679, 0x02d4b823, 0x018ecd97, 0x01075163, 0x00125910}}},
+ {X: Field{[10]uint32{0x000e6ba7, 0x01d26e34, 0x02f7f53a, 0x016d1245, 0x003d36ec, 0x0136786d, 0x011e038a, 0x02147caf, 0x01099784, 0x003e54aa}}, Y: Field{[10]uint32{0x0175e4c1, 0x02bbb940, 0x022b98db, 0x01ed318a, 0x02555716, 0x009fe83d, 0x01376a2e, 0x033afe18, 0x025b08ab, 0x00362a4e}}},
+ {X: Field{[10]uint32{0x015b6f7e, 0x0127d716, 0x02021f95, 0x014f4e2c, 0x01beb32b, 0x00261db3, 0x02053aad, 0x028c320e, 0x011d04cd, 0x00296b1f}}, Y: Field{[10]uint32{0x02b19c84, 0x02edcc22, 0x00a4848d, 0x0183d606, 0x0399e391, 0x01f67b86, 0x00c3c924, 0x03d56cdb, 0x020ab540, 0x0037c2e2}}},
+ {X: Field{[10]uint32{0x03aa0e93, 0x001968a0, 0x01f62690, 0x010ebbec, 0x028f2e39, 0x0367a24e, 0x00031a19, 0x03fb9d41, 0x015e31d3, 0x0025005b}}, Y: Field{[10]uint32{0x03addac2, 0x03b49a21, 0x0307a38e, 0x00eea95e, 0x03f48437, 0x03bb9bf5, 0x0355d354, 0x01365900, 0x02ee5c45, 0x0019d40c}}},
+ {X: Field{[10]uint32{0x00a6db03, 0x00f87f91, 0x01d791b4, 0x01bd609d, 0x00b2c85d, 0x02e19d7f, 0x01c0d426, 0x008d7419, 0x0104a4b3, 0x0002ff01}}, Y: Field{[10]uint32{0x024b8542, 0x03234691, 0x00f0558a, 0x025cd175, 0x02374271, 0x0129b264, 0x038ec7f9, 0x03cd14fe, 0x027a6c34, 0x00065551}}},
+ {X: Field{[10]uint32{0x0266b17b, 0x01218b80, 0x03b32b0f, 0x0288098a, 0x02023568, 0x02a7c270, 0x03978846, 0x02ca246e, 0x0174d59f, 0x003bc8b4}}, Y: Field{[10]uint32{0x01dac83e, 0x01b810de, 0x001b732a, 0x01bdc70d, 0x033ee727, 0x038d2841, 0x039ccc3a, 0x0131d5a3, 0x00c97ab2, 0x002f15e1}}},
+ {X: Field{[10]uint32{0x034318b5, 0x00b150ba, 0x0045657f, 0x0204bd6e, 0x0272ed5c, 0x03c815fb, 0x0388a38d, 0x02343d55, 0x01fbe194, 0x0026217d}}, Y: Field{[10]uint32{0x0199175c, 0x01509505, 0x004af2fe, 0x03b59da4, 0x027c82ad, 0x01a33ae3, 0x012c4677, 0x0263e65b, 0x02f69ef1, 0x0004d7f5}}},
+ {X: Field{[10]uint32{0x02d382a0, 0x00c056a4, 0x019ae231, 0x02f38bb3, 0x03f28dcb, 0x02cb7e49, 0x00acc780, 0x0224b4e7, 0x03ce4ceb, 0x002d7dfb}}, Y: Field{[10]uint32{0x01b4b532, 0x03c2aee9, 0x038c5ba2, 0x01b4a6b3, 0x0371fb09, 0x0032f774, 0x00957c6e, 0x03c8d4f0, 0x005b51c3, 0x001a10d5}}},
+ {X: Field{[10]uint32{0x0281c1bc, 0x0292b933, 0x01b33b93, 0x03962aed, 0x03d25365, 0x01a339d9, 0x01815b8d, 0x00118d6b, 0x0305465c, 0x0000cd83}}, Y: Field{[10]uint32{0x026cbedd, 0x034a2595, 0x0150176d, 0x03ad7204, 0x03231728, 0x004c19d4, 0x0369c425, 0x0140053f, 0x01f90c57, 0x001f922d}}},
+ {X: Field{[10]uint32{0x012cffa5, 0x02491910, 0x005c47e6, 0x00219a33, 0x0389ed42, 0x02f51890, 0x00754d8f, 0x0041d902, 0x03d2b2e7, 0x00073770}}, Y: Field{[10]uint32{0x0121954e, 0x01b62735, 0x03528ade, 0x0109acda, 0x02c41c98, 0x0250ac22, 0x01b126bf, 0x03e298ff, 0x020cb2f1, 0x000791da}}},
+ {X: Field{[10]uint32{0x008993f7, 0x027dcd01, 0x03ce1150, 0x008fe09c, 0x02962552, 0x0322eb90, 0x034fbe1b, 0x0214458c, 0x006a56a3, 0x00021d4d}}, Y: Field{[10]uint32{0x02b9dcc2, 0x030b205c, 0x0018e601, 0x03c6c498, 0x03c9f4d4, 0x01d7e8a1, 0x02994e6e, 0x022c0c43, 0x00a8a2ef, 0x0001939b}}},
+ {X: Field{[10]uint32{0x00a9f22f, 0x03f90e4d, 0x00e2ad35, 0x031485ea, 0x00cc0819, 0x01220d6c, 0x01f8b8b9, 0x03a4e7c8, 0x0359f25c, 0x000ab32c}}, Y: Field{[10]uint32{0x035c4927, 0x01772ced, 0x0150b7b7, 0x02fb16e9, 0x01154bd7, 0x037c3b7c, 0x0213a37e, 0x034b9464, 0x00e9588a, 0x00354629}}},
+ {X: Field{[10]uint32{0x03b04ed4, 0x02b18f8f, 0x03fffab7, 0x002c44c1, 0x0208cc33, 0x0099e378, 0x03f9d051, 0x02e4d918, 0x01b389d6, 0x00242b61}}, Y: Field{[10]uint32{0x036ef150, 0x03535232, 0x0094d991, 0x02f8560a, 0x0039aefa, 0x009c88ae, 0x03dcbd94, 0x020986bf, 0x023620a3, 0x0003941e}}},
+ },
+ {
+ {X: Field{[10]uint32{0x03b04ed4, 0x02b18f8f, 0x03fffab7, 0x002c44c1, 0x0208cc33, 0x0099e378, 0x03f9d051, 0x02e4d918, 0x01b389d6, 0x00242b61}}, Y: Field{[10]uint32{0x036ef150, 0x03535232, 0x0094d991, 0x02f8560a, 0x0039aefa, 0x009c88ae, 0x03dcbd94, 0x020986bf, 0x023620a3, 0x0003941e}}},
+ {X: Field{[10]uint32{0x03dc0151, 0x022c3b69, 0x03bad281, 0x039919c1, 0x017e125b, 0x0210978f, 0x00b1d154, 0x0101dfd1, 0x000ef8c9, 0x001f8b35}}, Y: Field{[10]uint32{0x00721ec7, 0x02f14e48, 0x0082c9a3, 0x0102bbb8, 0x01889bee, 0x0087be57, 0x0261a8b3, 0x03eace0a, 0x01082adc, 0x002416dd}}},
+ {X: Field{[10]uint32{0x00b7b678, 0x0176ccec, 0x03816627, 0x0046f3d8, 0x02f13c43, 0x009adb1d, 0x0186bca4, 0x008c6e86, 0x017334e4, 0x00061b92}}, Y: Field{[10]uint32{0x00d91fc1, 0x001dbcbe, 0x035dca7a, 0x00951254, 0x02110772, 0x002df99f, 0x03fc825c, 0x02f612a9, 0x00e49807, 0x00303518}}},
+ {X: Field{[10]uint32{0x0345e597, 0x000eb904, 0x03cf90e1, 0x03e76e14, 0x039c636b, 0x007bd4a9, 0x00975bbd, 0x036b3887, 0x012195be, 0x002851bd}}, Y: Field{[10]uint32{0x005a770a, 0x0159dabd, 0x014b0767, 0x02c887c2, 0x00ea67a5, 0x02ecc6d0, 0x0295dd2d, 0x03fac26b, 0x030ab053, 0x00296a66}}},
+ {X: Field{[10]uint32{0x03421fb8, 0x01b972ec, 0x015d0cf0, 0x03cbbd69, 0x02984971, 0x00edc904, 0x0206b34c, 0x02fd8b9f, 0x01834f6d, 0x00018723}}, Y: Field{[10]uint32{0x023ccd80, 0x03bd9a13, 0x00dd2995, 0x012ce9bf, 0x00806713, 0x03817ad7, 0x01392590, 0x02d2deea, 0x02d99003, 0x001b7f1a}}},
+ {X: Field{[10]uint32{0x03b9dc8f, 0x03226e12, 0x01333d08, 0x00fbd7b7, 0x01aba9e9, 0x0149e1f4, 0x00f70353, 0x01a19092, 0x01cee1c2, 0x003f6650}}, Y: Field{[10]uint32{0x019780d5, 0x03ab94f9, 0x0138d743, 0x03f7bbfa, 0x027872b2, 0x02221679, 0x0297e057, 0x039bd1b7, 0x0075bd40, 0x001e907b}}},
+ {X: Field{[10]uint32{0x036b35a4, 0x012f862b, 0x03b48712, 0x029aac9f, 0x01889f37, 0x00ce9a2b, 0x03632407, 0x03944edc, 0x023a208e, 0x003da9ad}}, Y: Field{[10]uint32{0x01f422a6, 0x02dbfb20, 0x01862cae, 0x01b9d7b8, 0x0319d575, 0x0158061b, 0x02d3704f, 0x004e2c72, 0x00a8002d, 0x000f7df2}}},
+ {X: Field{[10]uint32{0x00e45444, 0x02d4ff13, 0x004e20cb, 0x007bfb33, 0x00dbde42, 0x0096a045, 0x03bf9dab, 0x024ee6f3, 0x01a1cf19, 0x0034931d}}, Y: Field{[10]uint32{0x03dd4a57, 0x00c91a61, 0x02524cb9, 0x03d267c7, 0x02bf7593, 0x003969e2, 0x00b7d181, 0x0307473f, 0x012de84d, 0x00163f87}}},
+ {X: Field{[10]uint32{0x02954c11, 0x0208fa29, 0x01018b96, 0x00f05583, 0x037fa8a4, 0x0141de3f, 0x00d1b0f1, 0x030dd888, 0x0028c286, 0x0021e8bf}}, Y: Field{[10]uint32{0x032a8b45, 0x038ccb89, 0x0124b756, 0x00fca9e0, 0x02cc4893, 0x00349d4c, 0x031948da, 0x03b3be5e, 0x018b45aa, 0x000ceb54}}},
+ {X: Field{[10]uint32{0x03a43ddc, 0x006bfa61, 0x02e4aeeb, 0x0286a655, 0x0124282c, 0x039ef7d5, 0x001eb85e, 0x02b1b684, 0x03864946, 0x002a2c22}}, Y: Field{[10]uint32{0x03a2a6b8, 0x000720b7, 0x036c3870, 0x0114ac41, 0x00a325b4, 0x03c3a3b7, 0x01591ffd, 0x01a807cc, 0x028bc8a3, 0x001fc03f}}},
+ {X: Field{[10]uint32{0x02706ab6, 0x01d1cab8, 0x03c0dae4, 0x00774b94, 0x023c0b34, 0x030e133f, 0x0156efcb, 0x02069a11, 0x02046e78, 0x003851cb}}, Y: Field{[10]uint32{0x0158de05, 0x021a85a7, 0x0127536e, 0x015514f3, 0x00aa589d, 0x0321887e, 0x03691978, 0x023f1a0f, 0x02aa47c5, 0x0020b364}}},
+ {X: Field{[10]uint32{0x03963645, 0x0250cb0e, 0x031f8e3e, 0x0201f9c7, 0x032dcdb2, 0x038c4cbe, 0x034781a2, 0x0298f9b9, 0x014fb1b8, 0x00317c25}}, Y: Field{[10]uint32{0x008be2dd, 0x0221d3c0, 0x03e4edbf, 0x00ac011e, 0x02a33050, 0x009835f9, 0x023cb440, 0x02dbec62, 0x031021b0, 0x003554b4}}},
+ {X: Field{[10]uint32{0x03a84fb6, 0x02b95081, 0x01021ebf, 0x01d43e85, 0x03c42368, 0x03922e7a, 0x00b4d601, 0x02bbd77a, 0x02c804f8, 0x00072be4}}, Y: Field{[10]uint32{0x03149109, 0x00606409, 0x0267616b, 0x01a5a8b3, 0x02ec1cc1, 0x03c40588, 0x01a64f8f, 0x0394e920, 0x005ac976, 0x002f092e}}},
+ {X: Field{[10]uint32{0x01c8381f, 0x024c48fa, 0x011a753a, 0x0358e0f0, 0x000ed3d6, 0x013f8404, 0x02beb463, 0x025f38d3, 0x0355bc6d, 0x0037ceb3}}, Y: Field{[10]uint32{0x0347de3a, 0x03f5a588, 0x009e61af, 0x01f99f8e, 0x03b10195, 0x036b347a, 0x0099c1de, 0x01e9d698, 0x00ca5190, 0x001acf76}}},
+ {X: Field{[10]uint32{0x02955911, 0x0233f852, 0x0152db76, 0x0289837b, 0x03107e16, 0x00f5e0e5, 0x009efe9b, 0x01943496, 0x0169af09, 0x001c16ff}}, Y: Field{[10]uint32{0x03d200e4, 0x01f1a4ff, 0x0272d8bb, 0x0148a90b, 0x02297f3b, 0x0150147e, 0x0263d81f, 0x03e6429f, 0x00130b73, 0x003852a9}}},
+ {X: Field{[10]uint32{0x02c4c0da, 0x02d11327, 0x023351b7, 0x01e1c8fa, 0x02e88c56, 0x0207c58b, 0x039c1ad9, 0x017cce48, 0x01d2f63b, 0x0023da2e}}, Y: Field{[10]uint32{0x001fff82, 0x032fde54, 0x00bfdf23, 0x03fa5544, 0x01bbea2c, 0x01af8857, 0x01d90c2b, 0x00e61b78, 0x032dba06, 0x00198aa7}}},
+ },
+ {
+ {X: Field{[10]uint32{0x02c4c0da, 0x02d11327, 0x023351b7, 0x01e1c8fa, 0x02e88c56, 0x0207c58b, 0x039c1ad9, 0x017cce48, 0x01d2f63b, 0x0023da2e}}, Y: Field{[10]uint32{0x001fff82, 0x032fde54, 0x00bfdf23, 0x03fa5544, 0x01bbea2c, 0x01af8857, 0x01d90c2b, 0x00e61b78, 0x032dba06, 0x00198aa7}}},
+ {X: Field{[10]uint32{0x00f27076, 0x011f7e13, 0x03eaee68, 0x02b79d89, 0x01d89858, 0x03f66bd6, 0x02febe77, 0x020563f2, 0x02fd784e, 0x0013526b}}, Y: Field{[10]uint32{0x03aa781e, 0x002d9880, 0x018466b9, 0x0069f7d3, 0x006e0f2d, 0x016729bc, 0x023f2103, 0x0344d79c, 0x0059a10d, 0x00334cbf}}},
+ {X: Field{[10]uint32{0x023809fa, 0x00ae3b74, 0x014be18e, 0x02cd4765, 0x00fd845c, 0x009147c2, 0x0293363f, 0x027c8a2e, 0x01be2e50, 0x000e0e07}}, Y: Field{[10]uint32{0x031fed52, 0x001d460c, 0x0324dbd7, 0x032ccb63, 0x003681fc, 0x0083ac73, 0x01405a55, 0x005f72c2, 0x010a0fb9, 0x003928cb}}},
+ {X: Field{[10]uint32{0x01b62026, 0x02f2d5ca, 0x01d4ee8d, 0x03822274, 0x038d2a3d, 0x03d716a9, 0x016619e1, 0x01be14df, 0x039e85d5, 0x001d5914}}, Y: Field{[10]uint32{0x02ce0cf3, 0x00b23eb6, 0x01f33417, 0x036552de, 0x01684aac, 0x029c8a49, 0x031df524, 0x02cf1948, 0x01413749, 0x003075a1}}},
+ {X: Field{[10]uint32{0x03c2a310, 0x01099225, 0x026303ea, 0x02950048, 0x01f186ae, 0x0291a668, 0x0121b82a, 0x00ab9bda, 0x0324e437, 0x00124989}}, Y: Field{[10]uint32{0x0227ded0, 0x006da057, 0x038ce0c4, 0x004a9d7f, 0x036d1636, 0x01c50c0e, 0x02cfa569, 0x02afe568, 0x0373bca7, 0x0004cdf9}}},
+ {X: Field{[10]uint32{0x03663da4, 0x019b0640, 0x00b81f81, 0x02467d74, 0x03a5a362, 0x03112a8a, 0x008a6ed7, 0x01c179a0, 0x02356aa5, 0x001a9992}}, Y: Field{[10]uint32{0x03fc22c4, 0x00c4fecc, 0x004c9c28, 0x0049f9b0, 0x01089916, 0x01afc335, 0x0386ec19, 0x03a62ca7, 0x025954fd, 0x00112684}}},
+ {X: Field{[10]uint32{0x02bd2d31, 0x012c1e73, 0x01b8d138, 0x015bfc1b, 0x004dcc1a, 0x011df8be, 0x02253b3e, 0x00324357, 0x028c1a24, 0x0038c195}}, Y: Field{[10]uint32{0x02546e44, 0x02d020e4, 0x03826692, 0x010af8dc, 0x02ffbc80, 0x03df436d, 0x00f2b107, 0x01098222, 0x03e37893, 0x0003ab1b}}},
+ {X: Field{[10]uint32{0x03b4a278, 0x0136b355, 0x0082b536, 0x017c7fd0, 0x0078f61a, 0x02b67332, 0x006ff301, 0x009de59d, 0x017ad9df, 0x000842a4}}, Y: Field{[10]uint32{0x007b2231, 0x01c4ff43, 0x00bfc7f2, 0x006abfc8, 0x013789e6, 0x02359cdf, 0x039be81f, 0x0395ede8, 0x035450b5, 0x0019c386}}},
+ {X: Field{[10]uint32{0x023136b0, 0x0030e78d, 0x01dd9c53, 0x0366aad0, 0x0374ebf8, 0x00fef58c, 0x01b0e762, 0x033bf09c, 0x000e2428, 0x000ee784}}, Y: Field{[10]uint32{0x00dbbc8a, 0x03b05bdb, 0x01f81953, 0x028ceb4c, 0x02a2ae28, 0x03d1d6c9, 0x01533eb8, 0x02edc77c, 0x00152d16, 0x003ebee6}}},
+ {X: Field{[10]uint32{0x0190124e, 0x023ad4f7, 0x0085dea9, 0x01a14a07, 0x02c1e802, 0x036ce055, 0x029a1946, 0x015505df, 0x0293c06c, 0x001ebab2}}, Y: Field{[10]uint32{0x02021e31, 0x001e0408, 0x0104b3f5, 0x03e6e42a, 0x0159bc1b, 0x01b07654, 0x02caff04, 0x0243c13e, 0x03190c13, 0x0037eca6}}},
+ {X: Field{[10]uint32{0x03485d3f, 0x023c11cb, 0x03eee960, 0x01a2041e, 0x0317ca07, 0x0177b7bd, 0x036ca80f, 0x0326a4ad, 0x0149712a, 0x002ec2ab}}, Y: Field{[10]uint32{0x00a2f975, 0x00e4940f, 0x00bffe79, 0x03e8c59c, 0x00895a5a, 0x00a5f68d, 0x00d201f7, 0x0151e63b, 0x0053c583, 0x003a9a67}}},
+ {X: Field{[10]uint32{0x01ed815e, 0x01c0b541, 0x017b470f, 0x02af0700, 0x0166f440, 0x02551eb4, 0x035fad21, 0x0128cbae, 0x02c679f7, 0x00155a36}}, Y: Field{[10]uint32{0x00602df0, 0x02fd9300, 0x02151d9b, 0x03bb8960, 0x03eb05f7, 0x0341cfca, 0x00d6fe01, 0x02e99160, 0x00742788, 0x001ea17e}}},
+ {X: Field{[10]uint32{0x02718dc9, 0x03b4ce8d, 0x023de4ae, 0x0136c044, 0x03e1e58b, 0x02bf8044, 0x028eb197, 0x03f30353, 0x02c8e4ee, 0x001e4242}}, Y: Field{[10]uint32{0x00fae7c5, 0x00c8ac47, 0x0008b963, 0x02dc2ea4, 0x02dd36af, 0x0366aa95, 0x01816cbc, 0x016e3c4f, 0x022b9190, 0x003aaadc}}},
+ {X: Field{[10]uint32{0x0244a0c8, 0x0306f70b, 0x01932abe, 0x0100bb8a, 0x032c9be7, 0x031d0db0, 0x01bae600, 0x0250f2f2, 0x02884807, 0x001807a7}}, Y: Field{[10]uint32{0x0200e557, 0x024d04ae, 0x02659547, 0x0169ad1b, 0x01424e0c, 0x03feaeec, 0x00b8cfa9, 0x023b31c5, 0x02aa6fdc, 0x00169e88}}},
+ {X: Field{[10]uint32{0x0360c7d1, 0x025a531f, 0x01ad2a26, 0x039f35dd, 0x028dd71d, 0x01526e99, 0x003dbbce, 0x01ed5470, 0x01ade9f9, 0x0039df20}}, Y: Field{[10]uint32{0x02d72449, 0x01607ca0, 0x006d34ec, 0x03dc70a6, 0x03631470, 0x03aa0550, 0x03c3b323, 0x004c8717, 0x0078eef8, 0x000eb3c5}}},
+ {X: Field{[10]uint32{0x03231e11, 0x01bf5414, 0x01e3e668, 0x01940da0, 0x011f48e8, 0x02630d82, 0x0399ff91, 0x0217597f, 0x030176af, 0x00393cfe}}, Y: Field{[10]uint32{0x03eb73bc, 0x030e15db, 0x011c9822, 0x013b2547, 0x006cc7e7, 0x0280adca, 0x021a6d0e, 0x013c7059, 0x033ad0ef, 0x000798d8}}},
+ },
+ {
+ {X: Field{[10]uint32{0x03231e11, 0x01bf5414, 0x01e3e668, 0x01940da0, 0x011f48e8, 0x02630d82, 0x0399ff91, 0x0217597f, 0x030176af, 0x00393cfe}}, Y: Field{[10]uint32{0x03eb73bc, 0x030e15db, 0x011c9822, 0x013b2547, 0x006cc7e7, 0x0280adca, 0x021a6d0e, 0x013c7059, 0x033ad0ef, 0x000798d8}}},
+ {X: Field{[10]uint32{0x03cdaf2f, 0x03b888ce, 0x032953bf, 0x02096e85, 0x0388531a, 0x02f6cd8b, 0x0064110a, 0x01cf807b, 0x03b76867, 0x0012cc32}}, Y: Field{[10]uint32{0x0126b5b7, 0x00cf518f, 0x00575680, 0x020790d2, 0x011fdf3c, 0x01f0f12a, 0x01e2c577, 0x018a6dbe, 0x010265bb, 0x001d318d}}},
+ {X: Field{[10]uint32{0x03f05bd6, 0x027c139a, 0x01946539, 0x000c84aa, 0x00a2f56e, 0x02d1c37b, 0x032f51fe, 0x013fa420, 0x0241bee4, 0x0024030c}}, Y: Field{[10]uint32{0x000d358b, 0x00ab4efc, 0x03b15de5, 0x0160f13b, 0x01d69853, 0x01c2c90e, 0x01c72045, 0x03c3d7e5, 0x01e8e8b1, 0x001b0c7e}}},
+ {X: Field{[10]uint32{0x0273059f, 0x03a70a69, 0x03a192ff, 0x01414383, 0x03ec1171, 0x01d19205, 0x015b20b1, 0x01c03734, 0x00aa7ae1, 0x0032ed0d}}, Y: Field{[10]uint32{0x027c070c, 0x02a59088, 0x03845b7d, 0x013c2b57, 0x0141d45e, 0x022d77eb, 0x02d49233, 0x02f45d58, 0x000ab4da, 0x00128688}}},
+ {X: Field{[10]uint32{0x03105c50, 0x030a3327, 0x005257a7, 0x03bdec4e, 0x0182e0de, 0x00f08cf3, 0x028cc340, 0x0242ab58, 0x0362ab05, 0x0016a340}}, Y: Field{[10]uint32{0x00a4cde9, 0x02c8060e, 0x013c35c9, 0x02299b40, 0x00a605f6, 0x0050ffdd, 0x02a6b724, 0x0394da4d, 0x02b113d4, 0x0030167a}}},
+ {X: Field{[10]uint32{0x032e294d, 0x03ecbde9, 0x00dd5be6, 0x028fc034, 0x02f158eb, 0x037dfb71, 0x02289eae, 0x00d2e469, 0x00805cd5, 0x000a77f9}}, Y: Field{[10]uint32{0x00469b52, 0x00dc983b, 0x02e69441, 0x0070e4a7, 0x01d1f196, 0x02281793, 0x0034e758, 0x01cb866d, 0x0026d006, 0x002fd9b6}}},
+ {X: Field{[10]uint32{0x02d64feb, 0x03862e6c, 0x0292c647, 0x02964a48, 0x003772f8, 0x01b2e93a, 0x02f3a577, 0x03d82923, 0x01031232, 0x00364fd3}}, Y: Field{[10]uint32{0x00698359, 0x03ef564d, 0x00da37b0, 0x002fbb24, 0x0193e043, 0x01372313, 0x037311c5, 0x009cce88, 0x015d45cb, 0x001e4955}}},
+ {X: Field{[10]uint32{0x02de12c0, 0x01e1b841, 0x010e94d4, 0x03161d18, 0x006d9cda, 0x0155c913, 0x02d7b1e7, 0x00b07341, 0x016d9c10, 0x003d1e01}}, Y: Field{[10]uint32{0x025361fe, 0x01db39b2, 0x012d769a, 0x03d826ae, 0x0026c17e, 0x001a1a53, 0x00095e01, 0x00e51b9a, 0x0210f33e, 0x001fc279}}},
+ {X: Field{[10]uint32{0x039fbc84, 0x00813350, 0x02016722, 0x0245815e, 0x037e7062, 0x018ab196, 0x014e2bc6, 0x00a1106c, 0x01c6e36f, 0x000bc1da}}, Y: Field{[10]uint32{0x00201bec, 0x0240b787, 0x015d73fb, 0x01a93137, 0x01cca79b, 0x02438852, 0x01df0079, 0x02f777e9, 0x03724d73, 0x002d0d3c}}},
+ {X: Field{[10]uint32{0x0026dea2, 0x02cbf4b4, 0x005d8928, 0x0114b167, 0x0187c84c, 0x0269b758, 0x01a1e26d, 0x02efef5c, 0x0248d561, 0x0007773e}}, Y: Field{[10]uint32{0x003de522, 0x0121cf46, 0x0273406f, 0x02314701, 0x00666fd6, 0x0100b008, 0x03ea34d6, 0x00e9f507, 0x001fa992, 0x0031be90}}},
+ {X: Field{[10]uint32{0x02a758ea, 0x01fab321, 0x019c4d53, 0x006249fc, 0x01911883, 0x01505b8e, 0x006895a1, 0x000c2656, 0x0380559e, 0x003f9f99}}, Y: Field{[10]uint32{0x037ab649, 0x008b6576, 0x020d1e4f, 0x001d10c4, 0x033b8017, 0x02124947, 0x0008e169, 0x0372e623, 0x0167a281, 0x000e2a9a}}},
+ {X: Field{[10]uint32{0x033773f7, 0x03c011b0, 0x019953c7, 0x034d16d6, 0x0150d44f, 0x0278dca8, 0x01410c00, 0x008db4f8, 0x0226f5dd, 0x000d56cc}}, Y: Field{[10]uint32{0x0087c182, 0x00f0ffc6, 0x01109005, 0x01e33389, 0x001e25df, 0x03487f2e, 0x0310eedd, 0x000eb527, 0x00807047, 0x00023b29}}},
+ {X: Field{[10]uint32{0x00fffefa, 0x005589a3, 0x01afade7, 0x013dc194, 0x01101804, 0x0030ebe1, 0x01f6f915, 0x00c49f5b, 0x01ca7538, 0x00246ebd}}, Y: Field{[10]uint32{0x037f6faf, 0x00dbcd37, 0x0303dc7d, 0x00439bf4, 0x02f4bef3, 0x01f74f64, 0x01969f12, 0x02f3af97, 0x03119347, 0x00013973}}},
+ {X: Field{[10]uint32{0x00785491, 0x037d01a4, 0x025d1dd3, 0x01792baa, 0x035291de, 0x00be19ad, 0x019f43cb, 0x002eb958, 0x00f17f26, 0x0024ac78}}, Y: Field{[10]uint32{0x00be555b, 0x0234d816, 0x00d7b9c9, 0x01df88a2, 0x003985fb, 0x00d396b4, 0x027c1d10, 0x02798f85, 0x00028d8d, 0x00207b11}}},
+ {X: Field{[10]uint32{0x0133c546, 0x00245fa3, 0x01af32fc, 0x02cca17b, 0x0382575f, 0x003d7775, 0x02c5373e, 0x01e29f2c, 0x0121cb3f, 0x00111610}}, Y: Field{[10]uint32{0x000b4fd4, 0x01b461c0, 0x0273660a, 0x00f3ecb2, 0x00852f0a, 0x0246b688, 0x0225eae3, 0x01d4e9dc, 0x0377f3f8, 0x000c2364}}},
+ {X: Field{[10]uint32{0x00eae29e, 0x02dbab88, 0x01d0716f, 0x00bc3538, 0x02c7034f, 0x01169099, 0x0161537a, 0x03ccc7ae, 0x029b18eb, 0x0023003e}}, Y: Field{[10]uint32{0x0302414b, 0x00a93199, 0x02c54e7d, 0x03ea078d, 0x00c2fada, 0x01cdb25d, 0x01c343a3, 0x008686a7, 0x0267fea5, 0x003be91c}}},
+ },
+ {
+ {X: Field{[10]uint32{0x00eae29e, 0x02dbab88, 0x01d0716f, 0x00bc3538, 0x02c7034f, 0x01169099, 0x0161537a, 0x03ccc7ae, 0x029b18eb, 0x0023003e}}, Y: Field{[10]uint32{0x0302414b, 0x00a93199, 0x02c54e7d, 0x03ea078d, 0x00c2fada, 0x01cdb25d, 0x01c343a3, 0x008686a7, 0x0267fea5, 0x003be91c}}},
+ {X: Field{[10]uint32{0x018ada5f, 0x0326ac30, 0x02fb3e84, 0x01fca448, 0x03fd7e29, 0x00daf87b, 0x03b5bf96, 0x02d1bea2, 0x00176da2, 0x000933f0}}, Y: Field{[10]uint32{0x038a586b, 0x02984e65, 0x014f268f, 0x028693e0, 0x03ed959c, 0x037b6a49, 0x028714d5, 0x01869a61, 0x03bb079c, 0x003affe3}}},
+ {X: Field{[10]uint32{0x03fd913d, 0x025580fa, 0x009eac3f, 0x039bb953, 0x0050a680, 0x030aa348, 0x0107a084, 0x0377e1d3, 0x02a7e907, 0x000d8d8a}}, Y: Field{[10]uint32{0x012e243d, 0x03e6bab1, 0x03aafc44, 0x00435acb, 0x02d830bb, 0x00368aa0, 0x01624437, 0x02bf54d0, 0x00676cb8, 0x00123c9e}}},
+ {X: Field{[10]uint32{0x00679da2, 0x00c62565, 0x017edf10, 0x01ff1fc1, 0x0216ddd6, 0x004a4bb1, 0x02ded72a, 0x02f20ba8, 0x0158d4b9, 0x0000129f}}, Y: Field{[10]uint32{0x039ffe26, 0x01fd211d, 0x0228a487, 0x025258fe, 0x0371c3b4, 0x03b1c6ce, 0x031d8147, 0x032dd79a, 0x01b76702, 0x002e62b1}}},
+ {X: Field{[10]uint32{0x01132896, 0x02eafe6b, 0x02c967ca, 0x02eadef1, 0x01fcb1e3, 0x03764803, 0x015ad962, 0x00780bca, 0x036df32a, 0x001121e5}}, Y: Field{[10]uint32{0x03685248, 0x0006c4ab, 0x02a7a48c, 0x016989da, 0x0306b40d, 0x0115868c, 0x009a9077, 0x02bf87bf, 0x0060d115, 0x0009ef56}}},
+ {X: Field{[10]uint32{0x035732c0, 0x021934dd, 0x037aa859, 0x039c8cdd, 0x02202fe5, 0x032c425b, 0x00a5d1b7, 0x012e6d89, 0x0331f8b7, 0x0023cf33}}, Y: Field{[10]uint32{0x01b9415b, 0x02f79799, 0x00825e73, 0x01dd5216, 0x00a90e68, 0x01f394f6, 0x02f46d99, 0x0394c627, 0x013e2d39, 0x0019fc73}}},
+ {X: Field{[10]uint32{0x03a2670c, 0x0055bdaf, 0x033e6e08, 0x00ae8189, 0x007400f8, 0x00cd40c9, 0x02a9caa8, 0x020de22d, 0x02c28bcb, 0x0012934e}}, Y: Field{[10]uint32{0x02c1764d, 0x02e7ff75, 0x03eed808, 0x0132fca6, 0x01493059, 0x03bc0ae7, 0x027711dd, 0x01693c5f, 0x011c0184, 0x001c2aee}}},
+ {X: Field{[10]uint32{0x007c4b65, 0x00d3ab72, 0x032a9ccf, 0x0228781e, 0x0196f880, 0x0019b392, 0x036c5e2c, 0x00071ff1, 0x01c4cbd0, 0x003b9f5a}}, Y: Field{[10]uint32{0x0136a95a, 0x023d13b4, 0x002e523e, 0x0266eba5, 0x02c33e89, 0x00c3cbb8, 0x0192abf0, 0x004e0868, 0x026ec1a4, 0x003b3218}}},
+ {X: Field{[10]uint32{0x00b24aa7, 0x01abf893, 0x01c530d9, 0x0318e4d1, 0x00903108, 0x03fe3f86, 0x02e6fd89, 0x00600b0e, 0x01190ae9, 0x0017decb}}, Y: Field{[10]uint32{0x02693d7d, 0x0201d0d2, 0x01d0c6d7, 0x01c24f20, 0x03ce8deb, 0x03399f11, 0x023f80a3, 0x03caccc2, 0x0200c4fd, 0x0001dc0d}}},
+ {X: Field{[10]uint32{0x03004130, 0x018cb5ff, 0x02b09842, 0x00ce070d, 0x0249fd86, 0x01532d6a, 0x02a14e52, 0x0061ac99, 0x01b5f72d, 0x001435dd}}, Y: Field{[10]uint32{0x036e406d, 0x02e31937, 0x024c3456, 0x0117bbda, 0x032975d9, 0x0004018f, 0x01724346, 0x02955f14, 0x023b0f4e, 0x000d007b}}},
+ {X: Field{[10]uint32{0x037fb8bd, 0x006f17cb, 0x0090a419, 0x02857f90, 0x007bc464, 0x025221b6, 0x02c24e6d, 0x024340ab, 0x0051339d, 0x00144e5d}}, Y: Field{[10]uint32{0x03908c0f, 0x012b0b60, 0x00d5a809, 0x034f8fe6, 0x03fafc32, 0x03a05711, 0x008fefda, 0x00efcd2e, 0x003e4764, 0x003f35c5}}},
+ {X: Field{[10]uint32{0x00889f3f, 0x007e0e4d, 0x01da7f2a, 0x022d1425, 0x03c4feb2, 0x005a6c3a, 0x02a3469b, 0x00465887, 0x0026f1b2, 0x0021e644}}, Y: Field{[10]uint32{0x03bb792b, 0x00b7e6f0, 0x0037b49e, 0x006fca18, 0x01e932f6, 0x005fc9e7, 0x032f2cb7, 0x00765884, 0x014ca5a9, 0x00377aae}}},
+ {X: Field{[10]uint32{0x0236ca73, 0x01d2457b, 0x033ede2b, 0x034daeef, 0x03eac864, 0x03c05221, 0x0029112b, 0x037ee2a9, 0x02d62bfb, 0x0033e0c5}}, Y: Field{[10]uint32{0x02c25534, 0x0248650b, 0x0310f5b4, 0x02636235, 0x001c9615, 0x0037329a, 0x00445089, 0x0275cf8e, 0x018deb5d, 0x00027fad}}},
+ {X: Field{[10]uint32{0x019c8f0a, 0x036611af, 0x00e64afc, 0x00b22f61, 0x00af3e9f, 0x0300ea1f, 0x0126603b, 0x02913f0e, 0x00ed297b, 0x001b8845}}, Y: Field{[10]uint32{0x016a2c9b, 0x02452374, 0x0195ebd7, 0x01d743e5, 0x01090bec, 0x00317647, 0x026d50f8, 0x001b89f6, 0x020cc26f, 0x00015646}}},
+ {X: Field{[10]uint32{0x0352f97d, 0x024df5ad, 0x036613c8, 0x031d7cd1, 0x025a2efb, 0x0233e985, 0x039d2866, 0x02d27794, 0x029a4c4b, 0x00218437}}, Y: Field{[10]uint32{0x031b1af2, 0x01f73507, 0x003e0805, 0x027d5155, 0x0257ab4d, 0x014cfe67, 0x03cd99b2, 0x002ef24d, 0x03a02b63, 0x0034c665}}},
+ {X: Field{[10]uint32{0x00cb3e41, 0x03f77f18, 0x012c0997, 0x013cc22e, 0x03143d08, 0x027a63b4, 0x010cec0a, 0x020a7cf8, 0x00e69dd4, 0x0039e89b}}, Y: Field{[10]uint32{0x032cfd51, 0x02a50873, 0x003e20e8, 0x0301083a, 0x00d0a6b2, 0x02abeec6, 0x01b006a1, 0x02612d1c, 0x02300fa7, 0x000a9d63}}},
+ },
+ {
+ {X: Field{[10]uint32{0x00cb3e41, 0x03f77f18, 0x012c0997, 0x013cc22e, 0x03143d08, 0x027a63b4, 0x010cec0a, 0x020a7cf8, 0x00e69dd4, 0x0039e89b}}, Y: Field{[10]uint32{0x032cfd51, 0x02a50873, 0x003e20e8, 0x0301083a, 0x00d0a6b2, 0x02abeec6, 0x01b006a1, 0x02612d1c, 0x02300fa7, 0x000a9d63}}},
+ {X: Field{[10]uint32{0x034ae861, 0x0396e45e, 0x02fa9d97, 0x03935b8c, 0x01203c35, 0x01c8227d, 0x038bfb67, 0x03e34034, 0x02ba036b, 0x003d72be}}, Y: Field{[10]uint32{0x0182239c, 0x0308e703, 0x005f3cc9, 0x027154bc, 0x019b3b2a, 0x01020e45, 0x03f99046, 0x01b605ef, 0x038a022a, 0x00067a0e}}},
+ {X: Field{[10]uint32{0x02ee42db, 0x027f4afe, 0x0314a70f, 0x016d1cc1, 0x01d9bbbc, 0x007b2ff0, 0x03b6edb9, 0x024543f1, 0x03e7d9b5, 0x00330d09}}, Y: Field{[10]uint32{0x01d87bdb, 0x00a70045, 0x0022dc62, 0x02b639c9, 0x0010e5cb, 0x02c85480, 0x01e3fd3f, 0x031a8621, 0x0041a521, 0x003a8926}}},
+ {X: Field{[10]uint32{0x012a9651, 0x035335ef, 0x0182084f, 0x02712532, 0x028f9e50, 0x01fa0150, 0x01f5156d, 0x00fc7c4b, 0x0024ceb6, 0x003a4e24}}, Y: Field{[10]uint32{0x02786824, 0x0378add7, 0x00bfefef, 0x033b19dc, 0x018d7110, 0x019c6abc, 0x0287abaf, 0x019657e4, 0x00872372, 0x0021921a}}},
+ {X: Field{[10]uint32{0x02d4a086, 0x00d9b19f, 0x0010eff4, 0x00563a71, 0x00b1d75c, 0x02f2d73d, 0x003c585f, 0x011177b2, 0x01bacd98, 0x002523c1}}, Y: Field{[10]uint32{0x022bca4b, 0x006003e7, 0x022d1a2a, 0x029c70fe, 0x011c2328, 0x00044e50, 0x03450a66, 0x00a8ce0b, 0x009ffb5a, 0x0021932a}}},
+ {X: Field{[10]uint32{0x0296e4f1, 0x029c594b, 0x00030cb0, 0x01802ba0, 0x02ff5f01, 0x00d7bf32, 0x01777083, 0x0065f880, 0x008f0198, 0x0015aec5}}, Y: Field{[10]uint32{0x02b0582e, 0x027c067b, 0x030eb588, 0x0348012b, 0x037313d1, 0x038c3aa7, 0x0303ed8b, 0x0028cefa, 0x00a56130, 0x00282561}}},
+ {X: Field{[10]uint32{0x03542c21, 0x02fa9b2d, 0x00c15c0c, 0x034a3a99, 0x03ae19f4, 0x01475b50, 0x016fc454, 0x026b2419, 0x01629291, 0x00096106}}, Y: Field{[10]uint32{0x032bfabf, 0x02f8c659, 0x02d7b3be, 0x021b930a, 0x01f3e3a1, 0x031d44f5, 0x025daa4c, 0x00912007, 0x031f1cdb, 0x003f2cd6}}},
+ {X: Field{[10]uint32{0x00ddab8b, 0x03506b9f, 0x00e6fcf2, 0x00494f1a, 0x039f0e4d, 0x020b430d, 0x0116900d, 0x0095afb4, 0x01d87829, 0x00099156}}, Y: Field{[10]uint32{0x001de473, 0x0192d140, 0x031e6c9f, 0x02bce72b, 0x037a8631, 0x00d01cb5, 0x03bc6370, 0x0144b3bd, 0x011926d3, 0x001e796f}}},
+ {X: Field{[10]uint32{0x001ecbf8, 0x01187d03, 0x017ca43c, 0x037a6bbb, 0x036489f0, 0x007a1087, 0x029754cc, 0x0314948a, 0x01c41373, 0x001f84b3}}, Y: Field{[10]uint32{0x00bed615, 0x016e336c, 0x019f59d4, 0x00763f87, 0x01c969f6, 0x03934496, 0x03f94dab, 0x0320dc50, 0x0388888d, 0x001c4a13}}},
+ {X: Field{[10]uint32{0x018a26c1, 0x028a3ee2, 0x0304ae2d, 0x0285ce4e, 0x019a954f, 0x0309b871, 0x02351579, 0x014aedba, 0x00fd373b, 0x002da832}}, Y: Field{[10]uint32{0x0278217c, 0x0143b6a2, 0x01a06f55, 0x03a162ad, 0x00fc94a5, 0x02f69feb, 0x0101e3fe, 0x01d2526a, 0x03bfda03, 0x0017bc64}}},
+ {X: Field{[10]uint32{0x00557d86, 0x01994705, 0x03ff417e, 0x011e3999, 0x031cfeec, 0x028169b3, 0x02b91ca7, 0x010a99dc, 0x02ff2a37, 0x0012e3b0}}, Y: Field{[10]uint32{0x01167eb9, 0x026c646d, 0x03692bdd, 0x03bc3f0f, 0x0328d5f2, 0x0149eb17, 0x024072de, 0x015eac52, 0x03ff04c1, 0x003f79b0}}},
+ {X: Field{[10]uint32{0x01f23d1f, 0x015fd660, 0x036d8a4c, 0x035c8300, 0x02b6b25f, 0x03f62829, 0x03d489e1, 0x002eeef4, 0x00153d67, 0x002ce63a}}, Y: Field{[10]uint32{0x032ff3fc, 0x00faffe0, 0x016cd158, 0x022b4985, 0x02ea791d, 0x02c02e94, 0x037feb2f, 0x03d1fc1f, 0x0022572d, 0x001a7d67}}},
+ {X: Field{[10]uint32{0x0380763c, 0x020b4ed1, 0x0291d52b, 0x017a4995, 0x025f8a6d, 0x025eb01f, 0x02436dc6, 0x00e9094c, 0x01073396, 0x003f3570}}, Y: Field{[10]uint32{0x00e851cb, 0x039d080e, 0x023a4b54, 0x00b9c591, 0x00b119b2, 0x03dcb8e3, 0x0320db35, 0x00b118ed, 0x03e2e552, 0x0006376a}}},
+ {X: Field{[10]uint32{0x03e9fc8d, 0x0311e98c, 0x028ad2b1, 0x0026093c, 0x0348b848, 0x0118c69c, 0x00d0b205, 0x0177fe9b, 0x01c1bb42, 0x0018d283}}, Y: Field{[10]uint32{0x033f87b6, 0x01fcc2c9, 0x00616958, 0x02863b57, 0x03519ad5, 0x03792a73, 0x0205a657, 0x012db2bf, 0x021fe75a, 0x0035d6f8}}},
+ {X: Field{[10]uint32{0x018ef686, 0x00ef8c17, 0x02e66bce, 0x03d0089c, 0x03f68e48, 0x02099b94, 0x038a5daf, 0x032f9488, 0x00ee5843, 0x002403cb}}, Y: Field{[10]uint32{0x0121a8cf, 0x029259f8, 0x016d5073, 0x03d0f245, 0x00596cdf, 0x00d27444, 0x01c551b1, 0x01096b58, 0x0155ec60, 0x001ccab0}}},
+ {X: Field{[10]uint32{0x026b80ef, 0x00a7acf7, 0x0024f3cf, 0x0259f5e5, 0x0171cbcb, 0x00ef2f71, 0x03540c22, 0x00bb2348, 0x020ee366, 0x002d9167}}, Y: Field{[10]uint32{0x0271ba45, 0x02fc2d86, 0x01b2ff30, 0x01b5238d, 0x03c4b3ae, 0x0159876c, 0x01adf16e, 0x0381b787, 0x036d06f3, 0x00019f21}}},
+ },
+ {
+ {X: Field{[10]uint32{0x026b80ef, 0x00a7acf7, 0x0024f3cf, 0x0259f5e5, 0x0171cbcb, 0x00ef2f71, 0x03540c22, 0x00bb2348, 0x020ee366, 0x002d9167}}, Y: Field{[10]uint32{0x0271ba45, 0x02fc2d86, 0x01b2ff30, 0x01b5238d, 0x03c4b3ae, 0x0159876c, 0x01adf16e, 0x0381b787, 0x036d06f3, 0x00019f21}}},
+ {X: Field{[10]uint32{0x033eb51f, 0x03bcdd40, 0x00211253, 0x01daf9e7, 0x03b68905, 0x007d0564, 0x0136f730, 0x00f22393, 0x00f0d982, 0x0039763a}}, Y: Field{[10]uint32{0x0262a2d9, 0x016f6596, 0x0354979d, 0x011b67c3, 0x00e509dc, 0x023fbbbc, 0x0316a57d, 0x00f812ae, 0x01b7861e, 0x0013707a}}},
+ {X: Field{[10]uint32{0x019888e9, 0x033c9e4c, 0x00a8b439, 0x01afc912, 0x033d12ba, 0x0259a059, 0x0260d302, 0x029b8b77, 0x02773ac3, 0x0007e43a}}, Y: Field{[10]uint32{0x03113b79, 0x037f25fb, 0x022e656f, 0x03fb9654, 0x00213751, 0x007ae5aa, 0x00153d27, 0x02843a56, 0x027c15da, 0x00226f8d}}},
+ {X: Field{[10]uint32{0x03155e64, 0x019d9203, 0x0011737a, 0x013ea28c, 0x01ab66be, 0x006eb837, 0x02b0f732, 0x0230f715, 0x03f77dbc, 0x002a7289}}, Y: Field{[10]uint32{0x021b3297, 0x03cccf15, 0x030ae1f3, 0x02086f2b, 0x00875d41, 0x0300b401, 0x017d2246, 0x00535346, 0x035678fb, 0x003d2ecc}}},
+ {X: Field{[10]uint32{0x0162222c, 0x03bedbcd, 0x032c6085, 0x01e6479b, 0x02de0344, 0x00d2d4ae, 0x0302bad3, 0x0382b5b9, 0x014dedff, 0x0004e939}}, Y: Field{[10]uint32{0x00200145, 0x0059a32a, 0x004c08cb, 0x01deb724, 0x02d4f9c5, 0x03582694, 0x00ac2f81, 0x03a04ecb, 0x014e5816, 0x0032759f}}},
+ {X: Field{[10]uint32{0x01bf6c42, 0x02acf770, 0x0075393e, 0x026c4662, 0x02f7793d, 0x01b3b9d3, 0x03465481, 0x00171fb9, 0x033cd6c1, 0x00340b86}}, Y: Field{[10]uint32{0x03bc54cc, 0x018ca3e1, 0x02aac133, 0x026e4c6d, 0x02bca587, 0x00349149, 0x0332270d, 0x00896049, 0x00f3ca8e, 0x002682dd}}},
+ {X: Field{[10]uint32{0x003b46bb, 0x0393703d, 0x02525437, 0x018feb24, 0x0112ed3a, 0x0211576f, 0x0007c05d, 0x02ab7475, 0x02bf233c, 0x00186647}}, Y: Field{[10]uint32{0x0020a848, 0x03d64073, 0x00d8ef48, 0x027294bb, 0x011ca872, 0x01beeb7c, 0x02f38716, 0x03924a54, 0x0308f3fd, 0x00007178}}},
+ {X: Field{[10]uint32{0x02ee247c, 0x02f18a75, 0x00ee06d4, 0x0211fd47, 0x011f478e, 0x0073f9d6, 0x03a10561, 0x035fc97a, 0x01800686, 0x001a3edc}}, Y: Field{[10]uint32{0x0201865d, 0x03e08b46, 0x03c9dae1, 0x002c131c, 0x039a8d58, 0x0006c301, 0x03354275, 0x0258d9cd, 0x023462dd, 0x003344b4}}},
+ {X: Field{[10]uint32{0x021add3b, 0x02f8f774, 0x03d8f7e5, 0x013d15c9, 0x018b9a94, 0x03458984, 0x0039cdb0, 0x034e1d24, 0x02a4b787, 0x003a89eb}}, Y: Field{[10]uint32{0x028ce7dd, 0x038a476d, 0x01be71b5, 0x035a3938, 0x0278b212, 0x00970bd8, 0x023ceb23, 0x005f795c, 0x01e6e42a, 0x0031c3fc}}},
+ {X: Field{[10]uint32{0x02da1f54, 0x016af6f8, 0x025df934, 0x03088c50, 0x021b2b52, 0x024d1445, 0x03550ab1, 0x0183ae61, 0x03b23df2, 0x001c4dfd}}, Y: Field{[10]uint32{0x01c3edbc, 0x02350db3, 0x01bb84af, 0x03551b3f, 0x03ebf081, 0x03c98029, 0x00dacb17, 0x0201d397, 0x02d80435, 0x0017f9e2}}},
+ {X: Field{[10]uint32{0x011ff757, 0x02be2ed8, 0x0226e6e8, 0x01d07130, 0x029b4ce9, 0x01b8adb6, 0x01010f8b, 0x03f552ea, 0x01356b7f, 0x00165194}}, Y: Field{[10]uint32{0x014d031a, 0x019bb2a2, 0x03e3b28a, 0x01edfeff, 0x01961bbc, 0x017101be, 0x02038d01, 0x009d4010, 0x020ce5df, 0x000d844d}}},
+ {X: Field{[10]uint32{0x036c15c2, 0x03d1fc63, 0x00f1ca1e, 0x005323ce, 0x003de764, 0x027450d2, 0x01739813, 0x01d5ffa8, 0x0052bca1, 0x002115aa}}, Y: Field{[10]uint32{0x03174134, 0x03bf0ca2, 0x03671ff1, 0x002615be, 0x034cc90f, 0x0041e79f, 0x0349ec37, 0x00b37bf4, 0x0246d484, 0x00386e76}}},
+ {X: Field{[10]uint32{0x036160b5, 0x009628d8, 0x02bc0676, 0x0091c39f, 0x00ccc53f, 0x000247b0, 0x003af797, 0x00ca43a1, 0x023915f7, 0x0005ac9b}}, Y: Field{[10]uint32{0x00a1dc0e, 0x0097efd6, 0x03ef8146, 0x02b1c2e8, 0x00e1363a, 0x018d9535, 0x03643524, 0x03be2ed8, 0x025a6302, 0x000183d5}}},
+ {X: Field{[10]uint32{0x021b793e, 0x0077a4e3, 0x025183d6, 0x028ac34b, 0x01d36aee, 0x033eab93, 0x002eccf2, 0x00739970, 0x017c9835, 0x0013c545}}, Y: Field{[10]uint32{0x03ba9889, 0x03307f70, 0x007aab4f, 0x012cd529, 0x02c0daff, 0x03352833, 0x01da9db9, 0x02e4e7f2, 0x0366079d, 0x00302538}}},
+ {X: Field{[10]uint32{0x03b32db8, 0x0134a24d, 0x0391f396, 0x0127d91d, 0x01c91ed7, 0x010b3aa1, 0x02a143c8, 0x027e4c6f, 0x0295c455, 0x000092d4}}, Y: Field{[10]uint32{0x0264f760, 0x0153eaaa, 0x001a9594, 0x0044816e, 0x0062ab68, 0x031796fa, 0x02e2821c, 0x00c271ed, 0x038f5bff, 0x001827fb}}},
+ {X: Field{[10]uint32{0x016943e8, 0x0283d6d2, 0x005a5ded, 0x0319f9cf, 0x031d6f1f, 0x0063c188, 0x03234aa1, 0x02e101e4, 0x00c8280b, 0x0035a2a0}}, Y: Field{[10]uint32{0x03133120, 0x0321099a, 0x0295a294, 0x023de114, 0x035b0e7b, 0x01ec38a2, 0x00b1f917, 0x021b4031, 0x01fff4b5, 0x0036e2ea}}},
+ },
+ {
+ {X: Field{[10]uint32{0x016943e8, 0x0283d6d2, 0x005a5ded, 0x0319f9cf, 0x031d6f1f, 0x0063c188, 0x03234aa1, 0x02e101e4, 0x00c8280b, 0x0035a2a0}}, Y: Field{[10]uint32{0x03133120, 0x0321099a, 0x0295a294, 0x023de114, 0x035b0e7b, 0x01ec38a2, 0x00b1f917, 0x021b4031, 0x01fff4b5, 0x0036e2ea}}},
+ {X: Field{[10]uint32{0x0012b6fd, 0x02888b29, 0x02b828bd, 0x00f1bdc0, 0x00aced05, 0x01d48dcf, 0x02f8efb3, 0x0102f900, 0x009c677a, 0x003c5a90}}, Y: Field{[10]uint32{0x00a052da, 0x036b9dfb, 0x03ca4268, 0x0164927a, 0x02165406, 0x0138c393, 0x026a75a7, 0x009e675e, 0x01171453, 0x000a904c}}},
+ {X: Field{[10]uint32{0x00a1c4f9, 0x010aa863, 0x0228235b, 0x00d32adf, 0x004f4efe, 0x0187c5bd, 0x000b83da, 0x01ca3131, 0x038f22bd, 0x001e057d}}, Y: Field{[10]uint32{0x0378bc15, 0x007a8dad, 0x011e19ab, 0x039855df, 0x015cb42d, 0x011630d7, 0x0193cf31, 0x02bda9f7, 0x01e8cd39, 0x00307180}}},
+ {X: Field{[10]uint32{0x026dd4e4, 0x0282db8c, 0x018325c1, 0x00bdafb6, 0x01b89f4f, 0x025dbe13, 0x0237f699, 0x01bd0bef, 0x0106ab76, 0x0010552d}}, Y: Field{[10]uint32{0x035ded1c, 0x0164a541, 0x02dd46c8, 0x03674788, 0x02414ea9, 0x004097fd, 0x006e44d6, 0x02622253, 0x035043c5, 0x0008eb41}}},
+ {X: Field{[10]uint32{0x028c8530, 0x01b870fb, 0x00d8e6d2, 0x0207be3d, 0x01512df6, 0x005a9b1b, 0x0377c640, 0x01005db8, 0x03cda0ec, 0x0030e49c}}, Y: Field{[10]uint32{0x018446c7, 0x00c3c3de, 0x01715c40, 0x02f68bbb, 0x0050edfc, 0x0070c666, 0x001d3944, 0x00f23a74, 0x02425743, 0x0023106f}}},
+ {X: Field{[10]uint32{0x03ed5996, 0x0133a2d0, 0x02f53bde, 0x01664d82, 0x006831fe, 0x00a06e49, 0x02fbc903, 0x0293a924, 0x03e9fe99, 0x000691ad}}, Y: Field{[10]uint32{0x00c85cae, 0x013b447a, 0x0345c2ee, 0x02a7bd49, 0x01508794, 0x0018fafd, 0x03ee084a, 0x03715c38, 0x001ea3f1, 0x001a0f3a}}},
+ {X: Field{[10]uint32{0x037a26c1, 0x00902ec8, 0x036a531f, 0x0163036f, 0x01166c6e, 0x00740ec9, 0x0122431c, 0x0046c09d, 0x0047f584, 0x00368c5d}}, Y: Field{[10]uint32{0x00f74d6f, 0x020dbb3b, 0x01525f51, 0x03175ea0, 0x03d36836, 0x0096762d, 0x0384167c, 0x0231a748, 0x03b87f5d, 0x001d4ee5}}},
+ {X: Field{[10]uint32{0x037f0246, 0x0069e98f, 0x03ddf4c5, 0x0127f1c9, 0x0293e86e, 0x02d655ba, 0x00a8d4d0, 0x02570420, 0x012769cc, 0x002dcf19}}, Y: Field{[10]uint32{0x022a407b, 0x0394593a, 0x014e5597, 0x03931b95, 0x021a0d72, 0x016db07a, 0x0135893c, 0x032a752d, 0x03107174, 0x002699f6}}},
+ {X: Field{[10]uint32{0x0339dc49, 0x018a2a4d, 0x01603d2b, 0x03699bd5, 0x02239392, 0x02ffc8c6, 0x024ac508, 0x0039b041, 0x02cb02af, 0x001a92f9}}, Y: Field{[10]uint32{0x02edd5cf, 0x028ae77c, 0x00a4d3e6, 0x0132c529, 0x00ab7e2b, 0x003ea016, 0x00166e36, 0x001d65f7, 0x03aa2a89, 0x003c5763}}},
+ {X: Field{[10]uint32{0x00f8fb8c, 0x026fe776, 0x01e148ad, 0x026ea96f, 0x014cdc2b, 0x031cc044, 0x012facb5, 0x00803254, 0x027060d8, 0x000d966e}}, Y: Field{[10]uint32{0x00c8a3d1, 0x011ae31f, 0x0313575e, 0x0353912e, 0x031e142e, 0x031d261f, 0x01725f8e, 0x00685c4e, 0x01e806e0, 0x0013b9ea}}},
+ {X: Field{[10]uint32{0x02987fac, 0x03a28311, 0x02f6798b, 0x021902a1, 0x008bc90f, 0x03b2628f, 0x02982603, 0x01fc4d13, 0x029f13ae, 0x00007df1}}, Y: Field{[10]uint32{0x01174c68, 0x0079ce06, 0x03c263f9, 0x038867da, 0x01cb7f5d, 0x00a6adbe, 0x031036e3, 0x0288b796, 0x003f36fd, 0x002753b3}}},
+ {X: Field{[10]uint32{0x022e607b, 0x034d673b, 0x036aa1f4, 0x03b1b03c, 0x0388aa1e, 0x015ff74a, 0x01111f56, 0x01dcb083, 0x0367fd31, 0x0001dccf}}, Y: Field{[10]uint32{0x00614763, 0x03cc4773, 0x017d26a2, 0x03816f80, 0x0089e3bd, 0x02ec55bd, 0x0263a8c5, 0x020a17ab, 0x00fbac17, 0x003f67fa}}},
+ {X: Field{[10]uint32{0x02daba4d, 0x00e86f5d, 0x016261d3, 0x003880c6, 0x039c65fb, 0x023e8af2, 0x03062edd, 0x034e072d, 0x0001761f, 0x00155fa5}}, Y: Field{[10]uint32{0x03a52316, 0x01d286ed, 0x0190a513, 0x03d7e90d, 0x02c5e9b8, 0x01732f21, 0x0135cfa1, 0x029f811b, 0x033a601f, 0x001e9fa3}}},
+ {X: Field{[10]uint32{0x0005fbdd, 0x00b6734f, 0x001396e2, 0x0149d392, 0x0279589d, 0x01abe80c, 0x0120654b, 0x003120e2, 0x010a0031, 0x0038f91d}}, Y: Field{[10]uint32{0x0135b883, 0x0088c745, 0x02ffbcba, 0x02ff173e, 0x00b46587, 0x01868481, 0x02350499, 0x00964014, 0x0301abad, 0x0003e9e5}}},
+ {X: Field{[10]uint32{0x01f5341a, 0x03d4bfca, 0x036b8038, 0x00b19a58, 0x019cc7a3, 0x01ec4050, 0x029d40ea, 0x0216a4ec, 0x02821998, 0x000eb6b6}}, Y: Field{[10]uint32{0x0186c6cc, 0x016024d9, 0x00fbcb51, 0x0396d17a, 0x03e9d6d2, 0x01aac405, 0x02e35bf3, 0x00da7d54, 0x02228999, 0x002ffa87}}},
+ {X: Field{[10]uint32{0x028d3d5d, 0x016603f0, 0x01cea409, 0x02e5cd12, 0x009612ae, 0x001e8c2c, 0x01c02709, 0x0201094b, 0x017df65c, 0x000c92bb}}, Y: Field{[10]uint32{0x02ab7c84, 0x00892be5, 0x02843967, 0x0031f8cc, 0x0319213b, 0x02bb07d3, 0x030c0c35, 0x007cbfc4, 0x025774b6, 0x0019228d}}},
+ },
+ {
+ {X: Field{[10]uint32{0x028d3d5d, 0x016603f0, 0x01cea409, 0x02e5cd12, 0x009612ae, 0x001e8c2c, 0x01c02709, 0x0201094b, 0x017df65c, 0x000c92bb}}, Y: Field{[10]uint32{0x02ab7c84, 0x00892be5, 0x02843967, 0x0031f8cc, 0x0319213b, 0x02bb07d3, 0x030c0c35, 0x007cbfc4, 0x025774b6, 0x0019228d}}},
+ {X: Field{[10]uint32{0x02919749, 0x00e0e06c, 0x01b1fa8f, 0x012a3783, 0x03f72b3e, 0x02035c80, 0x01326818, 0x012408a3, 0x031ea26f, 0x000cb24c}}, Y: Field{[10]uint32{0x0290b5e3, 0x03a5ec3c, 0x02b09631, 0x02f6b8e6, 0x00268a4a, 0x01bcf6ee, 0x01a2f02b, 0x0272d5a5, 0x032b3420, 0x0035f349}}},
+ {X: Field{[10]uint32{0x03d53ed3, 0x0245d60b, 0x02ccef5c, 0x03ee7695, 0x01163f74, 0x0077df12, 0x00f60b93, 0x01cab56e, 0x03d59967, 0x00082102}}, Y: Field{[10]uint32{0x027a7132, 0x010ff946, 0x00899871, 0x01ce539c, 0x025487c4, 0x01aebeb0, 0x03bd476a, 0x02090d21, 0x0097cec1, 0x003ca64d}}},
+ {X: Field{[10]uint32{0x039795e4, 0x0308949e, 0x02b8e1e1, 0x02db8611, 0x0069c161, 0x03fb1ac7, 0x002f6a70, 0x00de1528, 0x033b3b98, 0x003aca4b}}, Y: Field{[10]uint32{0x0253a0fe, 0x03a74beb, 0x01c6f5b7, 0x01d42444, 0x0357131d, 0x005160d6, 0x016634af, 0x02fa005a, 0x025a96ee, 0x002310f0}}},
+ {X: Field{[10]uint32{0x00a35b35, 0x00b2ed62, 0x0121edbd, 0x02297028, 0x011ab5d8, 0x01623aff, 0x013d029e, 0x00e6eef4, 0x03f60eb3, 0x0039adaf}}, Y: Field{[10]uint32{0x001007bd, 0x00a4f6e7, 0x019c7c57, 0x0274efa6, 0x01fe3b6c, 0x00d65877, 0x02f43e38, 0x034bcc99, 0x02bd3300, 0x000697fc}}},
+ {X: Field{[10]uint32{0x0032f9a2, 0x02e38a48, 0x006ccc48, 0x0143e87f, 0x03ce566f, 0x007fe3d8, 0x02374cb3, 0x009903b4, 0x02bd9a6b, 0x00096ab1}}, Y: Field{[10]uint32{0x0351d4f0, 0x008c284a, 0x033d9e76, 0x02ef1067, 0x02559883, 0x013c643d, 0x0332f54f, 0x0151b05b, 0x023ba644, 0x003d69b1}}},
+ {X: Field{[10]uint32{0x00360dd3, 0x03be34b0, 0x022090d4, 0x00db6143, 0x0347a8a8, 0x038338ee, 0x030b8086, 0x0266ca22, 0x03745be4, 0x003814c5}}, Y: Field{[10]uint32{0x0024f87b, 0x03b3644f, 0x03dc2b2a, 0x037a6040, 0x0061b987, 0x016da805, 0x0009582b, 0x00bce736, 0x0371a5d9, 0x0037070e}}},
+ {X: Field{[10]uint32{0x01303fdd, 0x00e755e2, 0x02d35aea, 0x01fc6747, 0x014d7145, 0x00127ef8, 0x020d4310, 0x017bcb98, 0x0201df3b, 0x0029968e}}, Y: Field{[10]uint32{0x02e68703, 0x0112a340, 0x013cadad, 0x00093ebb, 0x0286861d, 0x003b4b1d, 0x0343d8d9, 0x0171bee3, 0x00940cff, 0x001e63a8}}},
+ {X: Field{[10]uint32{0x0098dfea, 0x011998b4, 0x038797c1, 0x0324ba99, 0x03fadcb3, 0x020e9795, 0x018e5d2a, 0x01b16780, 0x033a7788, 0x002a054e}}, Y: Field{[10]uint32{0x026d892f, 0x026a77db, 0x034158a4, 0x03dd0b6b, 0x03b1b5e0, 0x01e14f80, 0x018db9c5, 0x0183f14f, 0x016461d0, 0x000a91ce}}},
+ {X: Field{[10]uint32{0x024c9489, 0x00c354b4, 0x00a98616, 0x039b8539, 0x00c0aef4, 0x01ba754a, 0x027887ff, 0x019f0a68, 0x0315d9d5, 0x0018a06e}}, Y: Field{[10]uint32{0x01f42bc6, 0x01fc9ae7, 0x033ad918, 0x01374c86, 0x0145fd96, 0x01ba6efd, 0x02738f45, 0x02a19648, 0x01a0908d, 0x000bf4f1}}},
+ {X: Field{[10]uint32{0x03cecfa5, 0x039de922, 0x03b020a7, 0x03686c5a, 0x032a0d62, 0x00e3b68e, 0x034695c6, 0x02b76b7a, 0x03b30fec, 0x0013c170}}, Y: Field{[10]uint32{0x01d37b53, 0x034092a5, 0x008cd2ec, 0x00c7c06d, 0x01447ee4, 0x01654d2e, 0x01632361, 0x0109beb7, 0x01ea603d, 0x0014e926}}},
+ {X: Field{[10]uint32{0x00445a7a, 0x00c72ea5, 0x01ec5901, 0x03c2073c, 0x01df9535, 0x01807235, 0x02f11b6c, 0x031afec4, 0x03bc9f06, 0x003e0bfb}}, Y: Field{[10]uint32{0x002a7a98, 0x02b38619, 0x011e5963, 0x02d91903, 0x00b51c83, 0x02502d29, 0x003942c1, 0x01ad9d54, 0x03bdc6fb, 0x00252ecd}}},
+ {X: Field{[10]uint32{0x004b96aa, 0x039d9642, 0x03cce461, 0x00d548aa, 0x02d02986, 0x028ee603, 0x02405e1a, 0x02a46f89, 0x02b99f67, 0x00364c26}}, Y: Field{[10]uint32{0x02b28a86, 0x0313cdf0, 0x02978f26, 0x03eebf3f, 0x03d3b6c9, 0x009d32d7, 0x0210f066, 0x03155f5f, 0x032a9b4e, 0x001bbe66}}},
+ {X: Field{[10]uint32{0x02b7d2d5, 0x03750ac5, 0x02a66f6f, 0x0134755b, 0x022637b8, 0x00bbd40b, 0x030f3d32, 0x01080f20, 0x03aa9783, 0x0028a16a}}, Y: Field{[10]uint32{0x0001f99c, 0x01754be4, 0x013e9c40, 0x0086dadd, 0x02d86573, 0x0042cb8a, 0x03952dfe, 0x01eb1a4a, 0x0292cd1b, 0x00395ba5}}},
+ {X: Field{[10]uint32{0x038fcf0e, 0x02e34167, 0x026facf7, 0x03f79f12, 0x01d65b6f, 0x03aa8d04, 0x01c3446d, 0x00b4d6ea, 0x00a13856, 0x001f561f}}, Y: Field{[10]uint32{0x00bc9459, 0x03068276, 0x0380a501, 0x002b4c8d, 0x00c46390, 0x033f5ab4, 0x023400b6, 0x0131849c, 0x00038830, 0x0029ca57}}},
+ {X: Field{[10]uint32{0x01054c96, 0x02f4dcff, 0x00a888e8, 0x00eea347, 0x00eec414, 0x017fb977, 0x011dfdbe, 0x03987db5, 0x014919cd, 0x00137e70}}, Y: Field{[10]uint32{0x02d10d5d, 0x02eb01b2, 0x0090192e, 0x03370a21, 0x00b5d506, 0x02876175, 0x00974c23, 0x021ca014, 0x0051092d, 0x00000d7b}}},
+ },
+ {
+ {X: Field{[10]uint32{0x01054c96, 0x02f4dcff, 0x00a888e8, 0x00eea347, 0x00eec414, 0x017fb977, 0x011dfdbe, 0x03987db5, 0x014919cd, 0x00137e70}}, Y: Field{[10]uint32{0x02d10d5d, 0x02eb01b2, 0x0090192e, 0x03370a21, 0x00b5d506, 0x02876175, 0x00974c23, 0x021ca014, 0x0051092d, 0x00000d7b}}},
+ {X: Field{[10]uint32{0x01a49e04, 0x01ac3f07, 0x00d70c0c, 0x015395ea, 0x00e9de45, 0x012e1c22, 0x01317d4e, 0x02663349, 0x02d8d2cc, 0x003b4cb2}}, Y: Field{[10]uint32{0x001db9e0, 0x0048345f, 0x02b7db63, 0x02b2d27e, 0x0352da9f, 0x02167482, 0x001ca375, 0x00081295, 0x035f1d03, 0x0004a7fb}}},
+ {X: Field{[10]uint32{0x01ef001d, 0x00897697, 0x0227ef4f, 0x035a626e, 0x0321f9bb, 0x0278ed92, 0x020bd1c0, 0x00b2bc83, 0x032db27e, 0x00295268}}, Y: Field{[10]uint32{0x00624783, 0x036c69fc, 0x0305add5, 0x00a98b25, 0x02eb141e, 0x02296515, 0x00cc30ed, 0x019b2f7d, 0x027906d9, 0x001e66de}}},
+ {X: Field{[10]uint32{0x0083f855, 0x0106353a, 0x00016cb7, 0x032d8f0d, 0x0228c36d, 0x031c0d9b, 0x009e4111, 0x0183c601, 0x03724d63, 0x003a086a}}, Y: Field{[10]uint32{0x01852ddf, 0x03831a96, 0x023efed4, 0x031853b0, 0x018b3b19, 0x0105b3d6, 0x010d4115, 0x00f38d9f, 0x03f863f5, 0x002b7bf2}}},
+ {X: Field{[10]uint32{0x012ed4cb, 0x03bc7971, 0x02c5a05a, 0x03ecf027, 0x02c954de, 0x00d4cb9b, 0x0308bd98, 0x03b3448f, 0x0330da07, 0x001f9e63}}, Y: Field{[10]uint32{0x00bb9462, 0x005981e5, 0x037a1257, 0x006ffe7c, 0x03b17357, 0x03bcbc15, 0x01a9549d, 0x02b20c10, 0x00c4a24d, 0x00348f73}}},
+ {X: Field{[10]uint32{0x0206e37a, 0x01de2b10, 0x00731a24, 0x02523141, 0x034d8c18, 0x02d689d3, 0x00e83f46, 0x02000b3d, 0x0387f286, 0x002d49aa}}, Y: Field{[10]uint32{0x00c5ccab, 0x019e3ffc, 0x0392abf3, 0x026c03e8, 0x0128ce53, 0x0029bc63, 0x00aaced6, 0x00363b57, 0x01d77810, 0x001907cd}}},
+ {X: Field{[10]uint32{0x03630834, 0x00e83ef4, 0x00067fdf, 0x00a18f6b, 0x008463f1, 0x02a32042, 0x01b9e96b, 0x011e0eb5, 0x02003151, 0x000893e8}}, Y: Field{[10]uint32{0x007a2272, 0x0311cdf1, 0x00f75cd3, 0x013b0294, 0x013d6292, 0x0247427d, 0x00b70fa3, 0x036970f1, 0x0232bb3e, 0x002ef953}}},
+ {X: Field{[10]uint32{0x0041742e, 0x03d67bad, 0x006e9fbf, 0x011ebce0, 0x032f14a5, 0x0325a4e9, 0x015452fb, 0x03484bd1, 0x0194e51a, 0x000fc362}}, Y: Field{[10]uint32{0x03ecadbe, 0x014d8ef3, 0x03d958c6, 0x00b0eb44, 0x031e205e, 0x011e9b82, 0x025cb0e8, 0x00f71117, 0x0023f28c, 0x003ef5db}}},
+ {X: Field{[10]uint32{0x003c19d7, 0x01927456, 0x0357bb67, 0x0116b0b3, 0x02bbbb5e, 0x0108a3bc, 0x01a25cce, 0x00e7904a, 0x00cc600a, 0x0030b528}}, Y: Field{[10]uint32{0x0107928d, 0x00a2e0b1, 0x01c9772f, 0x020c5cd1, 0x0126804a, 0x03d04983, 0x0183b5f7, 0x018a5350, 0x00f9c080, 0x00196b68}}},
+ {X: Field{[10]uint32{0x01848116, 0x01507957, 0x027bba04, 0x0003f278, 0x001cc9b1, 0x03a52115, 0x0072ce10, 0x034ef814, 0x019abb39, 0x0005a4de}}, Y: Field{[10]uint32{0x027198b3, 0x03d9b080, 0x012e483d, 0x03971366, 0x02c03193, 0x01b1837b, 0x02af60f1, 0x03631539, 0x033b9cb2, 0x00312710}}},
+ {X: Field{[10]uint32{0x00940c9a, 0x0202b52f, 0x0233084c, 0x0384ebd0, 0x0113cf3c, 0x01137708, 0x01585e27, 0x03cc6439, 0x027ec305, 0x000bb08a}}, Y: Field{[10]uint32{0x011e7a4d, 0x0253f661, 0x01bdacd1, 0x020f668d, 0x03124051, 0x00a71ffa, 0x02e24f50, 0x01e5a130, 0x0068de33, 0x0022c769}}},
+ {X: Field{[10]uint32{0x01d9123f, 0x00e0c7ae, 0x03a7d7e9, 0x006c7e22, 0x0129fc79, 0x03ef47a4, 0x015f8eca, 0x01a9bcbe, 0x038f72aa, 0x000d06d4}}, Y: Field{[10]uint32{0x00bb9a40, 0x0282abc6, 0x026ed19e, 0x029c14a8, 0x0072dee6, 0x0049366b, 0x02f2f041, 0x03167ae9, 0x024719c1, 0x00161604}}},
+ {X: Field{[10]uint32{0x01683eeb, 0x003b97f7, 0x03133aa7, 0x00e28234, 0x033e36eb, 0x00212e3c, 0x01af6525, 0x0233b2ac, 0x01738f9a, 0x002bf19a}}, Y: Field{[10]uint32{0x00cd4509, 0x00a72acc, 0x01fdc91e, 0x015497b7, 0x02570bab, 0x0288e705, 0x0359c7fc, 0x009d4af0, 0x01976dd2, 0x00000b08}}},
+ {X: Field{[10]uint32{0x03aad77f, 0x001ec731, 0x03b7fa7d, 0x037c3d69, 0x006d4ebb, 0x01da659c, 0x004afc3a, 0x02e378ca, 0x033ec68e, 0x0013c3aa}}, Y: Field{[10]uint32{0x00e6eea8, 0x00fc4773, 0x0092ce6c, 0x0234096b, 0x00adaa07, 0x00ab0bca, 0x008de306, 0x02dd5d68, 0x027176eb, 0x002ca3a8}}},
+ {X: Field{[10]uint32{0x036f4293, 0x0007e1ed, 0x01139ea2, 0x02d594f1, 0x0210e978, 0x01c2ca0b, 0x01bc8cf3, 0x00cc2448, 0x035a9f34, 0x0034955e}}, Y: Field{[10]uint32{0x0282740a, 0x0061e894, 0x01a5f1db, 0x00e37901, 0x03e34b68, 0x02d2b487, 0x0282f06e, 0x009fc049, 0x034355e4, 0x0029e1ec}}},
+ {X: Field{[10]uint32{0x001f98cd, 0x0326722b, 0x00308cbf, 0x001535fc, 0x01523489, 0x03319808, 0x02d8a9c1, 0x0121c3eb, 0x01a84a47, 0x00270e46}}, Y: Field{[10]uint32{0x00fc599d, 0x039780f5, 0x008e6be7, 0x03ddb193, 0x01905326, 0x00983990, 0x00f044bf, 0x03755d61, 0x030f4a4d, 0x00376e13}}},
+ },
+ {
+ {X: Field{[10]uint32{0x001f98cd, 0x0326722b, 0x00308cbf, 0x001535fc, 0x01523489, 0x03319808, 0x02d8a9c1, 0x0121c3eb, 0x01a84a47, 0x00270e46}}, Y: Field{[10]uint32{0x00fc599d, 0x039780f5, 0x008e6be7, 0x03ddb193, 0x01905326, 0x00983990, 0x00f044bf, 0x03755d61, 0x030f4a4d, 0x00376e13}}},
+ {X: Field{[10]uint32{0x014a09ec, 0x03bededa, 0x035f0435, 0x0294fa14, 0x000cd326, 0x01724aa9, 0x002fc69d, 0x03603c29, 0x01326255, 0x000b8f01}}, Y: Field{[10]uint32{0x00c7327e, 0x0121a062, 0x02651253, 0x00f1c1ed, 0x03e048a5, 0x020bf06a, 0x01ae240b, 0x01bed6f7, 0x0091656c, 0x000007fe}}},
+ {X: Field{[10]uint32{0x03b64db3, 0x026354e3, 0x0138417b, 0x0328e775, 0x02a7ede4, 0x0394ee35, 0x03bb83fb, 0x0332dd02, 0x039229bd, 0x00304508}}, Y: Field{[10]uint32{0x000259be, 0x0033a7ff, 0x027d1e23, 0x02413515, 0x01a87580, 0x03a5e2f4, 0x00ecde4f, 0x01bf0a97, 0x02dc5b48, 0x00048dfd}}},
+ {X: Field{[10]uint32{0x039c7ce6, 0x03c668aa, 0x00934205, 0x005a8642, 0x00337103, 0x03893769, 0x015fb7e3, 0x00561eb8, 0x024ccfa4, 0x003a38a8}}, Y: Field{[10]uint32{0x0036267c, 0x0007ada2, 0x03a73b2c, 0x000ed709, 0x016e09e6, 0x02fb8816, 0x02f2b2b3, 0x01746d32, 0x03ce0c6f, 0x0011b260}}},
+ {X: Field{[10]uint32{0x03081e46, 0x03b60d00, 0x019ea1ed, 0x02315515, 0x013a5221, 0x02498d1c, 0x02d9c2c1, 0x01c89020, 0x03f831a7, 0x001b16d2}}, Y: Field{[10]uint32{0x03fbcd70, 0x03e72e02, 0x02a62ed1, 0x0209ab08, 0x0041d0cf, 0x038af91e, 0x0347863c, 0x0350bec8, 0x03714926, 0x0032c144}}},
+ {X: Field{[10]uint32{0x011349e2, 0x00cab77c, 0x00c05808, 0x03d05d49, 0x0160e3ec, 0x0106b5e3, 0x02147e9a, 0x030b9f98, 0x0324c6b9, 0x003e0160}}, Y: Field{[10]uint32{0x032025fc, 0x0311a796, 0x0288d5fa, 0x02d589b7, 0x03509498, 0x03a84488, 0x0281aa60, 0x015b3737, 0x025a0a88, 0x00257183}}},
+ {X: Field{[10]uint32{0x024dcd4b, 0x0396bb11, 0x00124dca, 0x03566447, 0x010c30c7, 0x02ac4291, 0x0270665c, 0x02b792d5, 0x0056670c, 0x00387a6a}}, Y: Field{[10]uint32{0x03041f2c, 0x02d897ae, 0x02b292d0, 0x026ab285, 0x027f44d1, 0x02c95de4, 0x02c43599, 0x0314c6de, 0x02954455, 0x00158ac2}}},
+ {X: Field{[10]uint32{0x02c7b3c2, 0x034e59a2, 0x01b5f5b0, 0x0248e0f5, 0x0212acaf, 0x01c00ca8, 0x030a38b1, 0x01cf0acb, 0x02ac5d85, 0x0029d526}}, Y: Field{[10]uint32{0x0287eaef, 0x03245c64, 0x016dffa0, 0x00554dc4, 0x035d6b51, 0x00651f4a, 0x01a1d70c, 0x009054cd, 0x01b90d1c, 0x002f45f4}}},
+ {X: Field{[10]uint32{0x03add73c, 0x021dbf8a, 0x00b7d005, 0x03640a99, 0x008fd9cd, 0x03b70508, 0x00a74e42, 0x02c265de, 0x0257ad11, 0x00146c86}}, Y: Field{[10]uint32{0x0336d8d1, 0x0352b87a, 0x034ba6f7, 0x003ca31c, 0x026c2013, 0x034b073e, 0x00a07f01, 0x034f9755, 0x0010001f, 0x00001e4c}}},
+ {X: Field{[10]uint32{0x017e2c95, 0x037265af, 0x00d82ab7, 0x02852e1e, 0x036f3f2b, 0x02b15055, 0x019a12a8, 0x034697b7, 0x03fbb24a, 0x003281f2}}, Y: Field{[10]uint32{0x0150dfa2, 0x0266eb23, 0x00cbf05e, 0x03ccedf8, 0x013ac306, 0x030419b2, 0x00a2267b, 0x003b7d2a, 0x011032df, 0x002bb70c}}},
+ {X: Field{[10]uint32{0x0309f34b, 0x01742dce, 0x026ce6d7, 0x03982331, 0x01e58873, 0x00fce758, 0x02b6296f, 0x02de6186, 0x03a63b1c, 0x0025c07c}}, Y: Field{[10]uint32{0x00df5793, 0x03214330, 0x00794acd, 0x00e5ff73, 0x037104bc, 0x0055a0cd, 0x03031b53, 0x003b4575, 0x03bb8caf, 0x000f7512}}},
+ {X: Field{[10]uint32{0x02548418, 0x01c7446b, 0x03923173, 0x01f62260, 0x02dce488, 0x00de8d06, 0x03072b05, 0x01f8a4be, 0x00c9e481, 0x000b9b6c}}, Y: Field{[10]uint32{0x00a2b918, 0x01e4b004, 0x035f1e69, 0x01cf870f, 0x004b8e1d, 0x022a4459, 0x01314897, 0x01befe88, 0x02411d77, 0x001d3ada}}},
+ {X: Field{[10]uint32{0x031e2f46, 0x039888ef, 0x0383015c, 0x007a1c9d, 0x035270f7, 0x00358f15, 0x01592e04, 0x019b3111, 0x001d2c9e, 0x00280dad}}, Y: Field{[10]uint32{0x02ffb349, 0x00789a57, 0x031f4f73, 0x020b3fc2, 0x010680e2, 0x01e7ac23, 0x031f6aa4, 0x01acf5f7, 0x01a003e9, 0x0030efe4}}},
+ {X: Field{[10]uint32{0x03db2a09, 0x00154580, 0x01bbf096, 0x021f7080, 0x01f63142, 0x029d9b68, 0x01638800, 0x0030d4af, 0x0004d9c3, 0x002c2773}}, Y: Field{[10]uint32{0x00b1a093, 0x01f6cea0, 0x014e7aed, 0x035305ab, 0x026a951b, 0x02bab403, 0x008d1635, 0x009037dc, 0x006481cf, 0x00229fcc}}},
+ {X: Field{[10]uint32{0x004cea08, 0x022e40e3, 0x0221dbcd, 0x02e8383a, 0x02654b58, 0x01001194, 0x00a61153, 0x023141bd, 0x02dbaa4e, 0x001aa17e}}, Y: Field{[10]uint32{0x0062f4f3, 0x037b3966, 0x021b6a19, 0x012d0f5c, 0x00b4271a, 0x023f988c, 0x01933c14, 0x0196754c, 0x0204bae4, 0x00002d91}}},
+ {X: Field{[10]uint32{0x00a959e5, 0x004e0848, 0x014cc5a2, 0x00ea2e47, 0x0391e149, 0x036381ae, 0x0205f281, 0x00bf7e37, 0x030b1dd1, 0x001815c5}}, Y: Field{[10]uint32{0x0385a2a8, 0x026fa4c8, 0x00c65e89, 0x02f0fb89, 0x02465152, 0x01c77c98, 0x019a2daf, 0x01201eb7, 0x00b26a6a, 0x002686bc}}},
+ },
+ {
+ {X: Field{[10]uint32{0x00a959e5, 0x004e0848, 0x014cc5a2, 0x00ea2e47, 0x0391e149, 0x036381ae, 0x0205f281, 0x00bf7e37, 0x030b1dd1, 0x001815c5}}, Y: Field{[10]uint32{0x0385a2a8, 0x026fa4c8, 0x00c65e89, 0x02f0fb89, 0x02465152, 0x01c77c98, 0x019a2daf, 0x01201eb7, 0x00b26a6a, 0x002686bc}}},
+ {X: Field{[10]uint32{0x02fd545c, 0x02729760, 0x00e66189, 0x0237528a, 0x037c133f, 0x01b72177, 0x014110a4, 0x0381900e, 0x01677c52, 0x0019dcff}}, Y: Field{[10]uint32{0x007eb1ae, 0x01fc0d25, 0x00f98e8c, 0x03d6871b, 0x03ead780, 0x034ac91a, 0x00f25c9d, 0x0194bc3c, 0x02d8cd97, 0x001113ad}}},
+ {X: Field{[10]uint32{0x031c032b, 0x036858a5, 0x01c980d4, 0x02285ebf, 0x01ff6b66, 0x03f1d9b1, 0x0111b5fd, 0x000980f7, 0x00fcd6e0, 0x001c7aea}}, Y: Field{[10]uint32{0x0268359f, 0x02d6a385, 0x00755e7a, 0x0345dd2d, 0x0371931a, 0x01532edf, 0x0260516f, 0x034e77bd, 0x02624b61, 0x0034bfc4}}},
+ {X: Field{[10]uint32{0x0386f021, 0x03185ac2, 0x00050373, 0x00e0411a, 0x020374e4, 0x038321f0, 0x03c79aac, 0x0395948d, 0x0194d17c, 0x00383e1b}}, Y: Field{[10]uint32{0x01bf325a, 0x02de732d, 0x0045b3b6, 0x0300457f, 0x009a80bc, 0x0072268b, 0x011e832f, 0x02f3d1ea, 0x0073730a, 0x000315c7}}},
+ {X: Field{[10]uint32{0x0203a61c, 0x0391d14a, 0x00574d06, 0x03d1a41c, 0x00507868, 0x02aaa774, 0x0217442b, 0x02748cb2, 0x0305b324, 0x002157b0}}, Y: Field{[10]uint32{0x025dfc07, 0x031baab1, 0x004965df, 0x013a85f9, 0x02d332f7, 0x02d0bed3, 0x003cbff9, 0x00705fd5, 0x012ec5f0, 0x00037617}}},
+ {X: Field{[10]uint32{0x02aa138b, 0x00367dce, 0x02cd66df, 0x002fbde1, 0x0363efba, 0x03119c7f, 0x003ebc18, 0x02b8a1e5, 0x0249d3c3, 0x00105ff8}}, Y: Field{[10]uint32{0x021ae869, 0x0246ccd2, 0x026afd1c, 0x037b0155, 0x03c19daf, 0x003ea795, 0x00a5d29f, 0x00f8e308, 0x01d7bcd2, 0x00008d62}}},
+ {X: Field{[10]uint32{0x0332d706, 0x03029207, 0x00678b00, 0x0291d1a8, 0x020618cc, 0x00256fe8, 0x010d29a3, 0x03efc7c5, 0x006abab3, 0x000f3912}}, Y: Field{[10]uint32{0x007fd9e4, 0x01cd8dff, 0x0289f40b, 0x010f3587, 0x02edd156, 0x00425241, 0x02fd046b, 0x01e14a23, 0x008daae3, 0x0039dd50}}},
+ {X: Field{[10]uint32{0x02da6e03, 0x001dcb00, 0x016038ad, 0x03e4232b, 0x034c277d, 0x035a5bd3, 0x0191e193, 0x0141073a, 0x01ab9f24, 0x0010b285}}, Y: Field{[10]uint32{0x00347793, 0x02227ea3, 0x03ea7836, 0x029a041a, 0x02d66e85, 0x032e003b, 0x03ce4d1f, 0x015f2591, 0x0326c81c, 0x001a34bb}}},
+ {X: Field{[10]uint32{0x011cd3fb, 0x01032ede, 0x03e686db, 0x03f65ca6, 0x034a2a33, 0x03e2113a, 0x02e03218, 0x00dfebc0, 0x01143f4e, 0x00047331}}, Y: Field{[10]uint32{0x01160d86, 0x01c5ae95, 0x03472a93, 0x03f4b374, 0x01fa0b1e, 0x00e3308e, 0x028e2449, 0x00477ad4, 0x032a902b, 0x0012a95a}}},
+ {X: Field{[10]uint32{0x01583a3e, 0x02ebc10a, 0x02808108, 0x02662c55, 0x00b15205, 0x036521c7, 0x0275dbbe, 0x03df955c, 0x033f16d0, 0x00162255}}, Y: Field{[10]uint32{0x025b124f, 0x016632df, 0x029cf8f1, 0x01335331, 0x0096fe29, 0x0269ad39, 0x00f5df8a, 0x015bf811, 0x0062c558, 0x0006be8a}}},
+ {X: Field{[10]uint32{0x018f7552, 0x02e44658, 0x00fac387, 0x022e6015, 0x01bd4113, 0x0208e0b7, 0x0397774f, 0x0271bd0e, 0x0317e514, 0x0000942e}}, Y: Field{[10]uint32{0x0110b14d, 0x0212588d, 0x02f1e3f0, 0x00f0ccf5, 0x03da006f, 0x03fa7605, 0x02d7df75, 0x020208d0, 0x00fc9bbe, 0x001cc64c}}},
+ {X: Field{[10]uint32{0x0307e636, 0x0162d040, 0x011d97e1, 0x039cc858, 0x00b4a77d, 0x028844b2, 0x01bc29bd, 0x01d910f7, 0x01601638, 0x0008867c}}, Y: Field{[10]uint32{0x01f15109, 0x0286cb5c, 0x02f55e07, 0x0034fdce, 0x016dd723, 0x02e08c2f, 0x0006d4f1, 0x028bd86e, 0x00ac5cb6, 0x00012a61}}},
+ {X: Field{[10]uint32{0x03725d12, 0x004fa4e7, 0x0347505d, 0x02ef72d7, 0x03d94642, 0x02808bef, 0x00a39ce0, 0x01ff4ead, 0x0088b346, 0x00069d27}}, Y: Field{[10]uint32{0x03ac56e4, 0x01945348, 0x01aa7013, 0x01a62643, 0x03607208, 0x00abcf63, 0x018be75c, 0x0038b3d1, 0x019573ec, 0x001fa474}}},
+ {X: Field{[10]uint32{0x02c704c0, 0x00b59c2d, 0x0394f5d2, 0x0183b378, 0x00560446, 0x00d41e09, 0x027f8a6e, 0x0099d285, 0x0107c92f, 0x0029deaa}}, Y: Field{[10]uint32{0x02dfea48, 0x02f1c11f, 0x01462af8, 0x0311d056, 0x014c921f, 0x030af56a, 0x01e188e5, 0x033f93c8, 0x02e5bf35, 0x002e2206}}},
+ {X: Field{[10]uint32{0x01fae458, 0x0012394a, 0x0097fd61, 0x0109d9bb, 0x028b0a5c, 0x037edecc, 0x01d156a5, 0x00863042, 0x005be0f8, 0x0031d41a}}, Y: Field{[10]uint32{0x0357b598, 0x01a10655, 0x011a2b01, 0x0140cd65, 0x000a5dca, 0x019cb1ed, 0x012f414c, 0x007817ed, 0x01f8cf92, 0x003ab5e5}}},
+ {X: Field{[10]uint32{0x00b94266, 0x01a5cfbb, 0x01f12b1a, 0x03ee9f53, 0x0080cef0, 0x006368c6, 0x01439a45, 0x02104508, 0x038e23a0, 0x00295db7}}, Y: Field{[10]uint32{0x01b28ec8, 0x02f846b8, 0x019f3ee8, 0x029fd453, 0x00432e10, 0x0163360b, 0x02b97afe, 0x0102cb24, 0x0320e766, 0x001029af}}},
+ },
+ {
+ {X: Field{[10]uint32{0x00b94266, 0x01a5cfbb, 0x01f12b1a, 0x03ee9f53, 0x0080cef0, 0x006368c6, 0x01439a45, 0x02104508, 0x038e23a0, 0x00295db7}}, Y: Field{[10]uint32{0x01b28ec8, 0x02f846b8, 0x019f3ee8, 0x029fd453, 0x00432e10, 0x0163360b, 0x02b97afe, 0x0102cb24, 0x0320e766, 0x001029af}}},
+ {X: Field{[10]uint32{0x02704896, 0x015c96f6, 0x03b8dcec, 0x018f26b3, 0x026f3ba0, 0x02f9c6eb, 0x02520867, 0x0168ed51, 0x0062ef3b, 0x00279773}}, Y: Field{[10]uint32{0x0282c835, 0x009da772, 0x0351248f, 0x006180c3, 0x0279605d, 0x0131d848, 0x03d3a215, 0x017cfa97, 0x012ddb92, 0x001bfb74}}},
+ {X: Field{[10]uint32{0x019ed6c1, 0x02bad633, 0x013d6b68, 0x016f0f56, 0x02c24e74, 0x0017b743, 0x03fc1877, 0x03d4fa02, 0x036dcb74, 0x0000ca0c}}, Y: Field{[10]uint32{0x00fafeee, 0x01baf9be, 0x0094adec, 0x037c972d, 0x00265bf4, 0x00835f23, 0x02d5943a, 0x027ca311, 0x003812fd, 0x001c6a26}}},
+ {X: Field{[10]uint32{0x00bf7ea0, 0x03b561d1, 0x01833953, 0x028173bd, 0x00e33625, 0x01bc0ec8, 0x016e9f97, 0x0116b7e3, 0x00375b87, 0x0029f782}}, Y: Field{[10]uint32{0x03bcabaa, 0x030154e6, 0x01aa2e04, 0x0303faf1, 0x02645a47, 0x012223a6, 0x004a0b33, 0x02979484, 0x02b057ad, 0x00298f65}}},
+ {X: Field{[10]uint32{0x0235983a, 0x02a6a34c, 0x00eb2919, 0x00dc04ef, 0x01e38a10, 0x003f854c, 0x023926d7, 0x00715371, 0x02ae8b91, 0x003393d3}}, Y: Field{[10]uint32{0x013cdecf, 0x035ac643, 0x0340aecf, 0x008a3afd, 0x03526c65, 0x039c1d50, 0x02de0249, 0x03eeecfa, 0x0173c390, 0x003cf27e}}},
+ {X: Field{[10]uint32{0x02da57e4, 0x01592299, 0x019f86b7, 0x01bbf737, 0x0298c499, 0x018c6f07, 0x01ea2a74, 0x0062e76f, 0x02e39839, 0x001a4336}}, Y: Field{[10]uint32{0x033f33bb, 0x00656d24, 0x023d42b6, 0x03ef3a56, 0x01f863d8, 0x01656253, 0x01fd91bf, 0x01e691ea, 0x0079677b, 0x002102b7}}},
+ {X: Field{[10]uint32{0x01b0e6c9, 0x02aad995, 0x00c89a6d, 0x033de1b9, 0x01db5ff9, 0x037e2f2f, 0x0228fb36, 0x018889e3, 0x03a54b98, 0x00136faf}}, Y: Field{[10]uint32{0x02b2cc25, 0x029e1557, 0x00efae94, 0x02caf141, 0x03589311, 0x03888a7c, 0x01a626e6, 0x00ebb7d1, 0x03b03c91, 0x00043fb9}}},
+ {X: Field{[10]uint32{0x02d916fb, 0x023e8412, 0x024a3a9f, 0x03f7a527, 0x03e68065, 0x0073fd32, 0x03c35ac0, 0x02032704, 0x018e6890, 0x00309999}}, Y: Field{[10]uint32{0x00887814, 0x03bd4ae8, 0x0138856a, 0x037fad84, 0x036b8fec, 0x009189ea, 0x0398170b, 0x036aac3d, 0x013854e7, 0x0039fa16}}},
+ {X: Field{[10]uint32{0x01857295, 0x00068469, 0x03f0164e, 0x01fc0d0c, 0x0069c8e4, 0x02872848, 0x02e118fc, 0x0170862c, 0x000bfef4, 0x00290a89}}, Y: Field{[10]uint32{0x027eb9c1, 0x00ddffb2, 0x0139556b, 0x00b34546, 0x0027a1c2, 0x01376931, 0x026b22b2, 0x0175159e, 0x03f26100, 0x000ea82c}}},
+ {X: Field{[10]uint32{0x005c5b40, 0x02f3f580, 0x03d1e269, 0x021e6ee7, 0x03150b96, 0x023330f7, 0x01ed382e, 0x0334536b, 0x00c8bf53, 0x00292d4f}}, Y: Field{[10]uint32{0x01c61bfd, 0x017b45b4, 0x019e3d1f, 0x026fdd49, 0x03199cca, 0x037f6961, 0x015ca003, 0x016e0112, 0x00ce8300, 0x0033bbc2}}},
+ {X: Field{[10]uint32{0x03cdc098, 0x003fd55b, 0x02803222, 0x003dab91, 0x01550ae0, 0x00312670, 0x03f1f86c, 0x008899e9, 0x032f96fb, 0x000d384a}}, Y: Field{[10]uint32{0x027474e2, 0x02c6b79a, 0x003f664c, 0x00c3c662, 0x0304df51, 0x005e5cb6, 0x034cbc84, 0x034c8b65, 0x02ddd7b5, 0x002992b0}}},
+ {X: Field{[10]uint32{0x00fb8036, 0x02262a97, 0x035085f9, 0x024b0368, 0x033ad09a, 0x03f59fa0, 0x02117dd1, 0x011ed22b, 0x0351fb16, 0x0033fd89}}, Y: Field{[10]uint32{0x00f59de0, 0x03ced689, 0x02825843, 0x0363d80c, 0x0278a589, 0x021850f1, 0x03e34b58, 0x00b46b17, 0x0126bd54, 0x00337d3b}}},
+ {X: Field{[10]uint32{0x03173b92, 0x01bad7a3, 0x037611cd, 0x03d05a7e, 0x003b7e72, 0x03d3595a, 0x0231a218, 0x0247ca6f, 0x0240d9bb, 0x00043d34}}, Y: Field{[10]uint32{0x033146c2, 0x00801b58, 0x02db7c90, 0x0274521a, 0x0290bb76, 0x00ce422e, 0x01b25a5a, 0x014eb484, 0x01950917, 0x0021438b}}},
+ {X: Field{[10]uint32{0x004393d7, 0x01983b74, 0x01de1ee6, 0x00959dd2, 0x03869dff, 0x008d5cf8, 0x017f8936, 0x03cee10c, 0x00018a78, 0x0037a87f}}, Y: Field{[10]uint32{0x01710ccd, 0x01f53be5, 0x00cbdbf9, 0x0268ade7, 0x03af6def, 0x01b59b80, 0x03f134ff, 0x0171434e, 0x01cc942e, 0x0013d952}}},
+ {X: Field{[10]uint32{0x00d84958, 0x03f4766a, 0x005caee6, 0x02c5b2b3, 0x026a11de, 0x03503321, 0x0319b976, 0x01df9d27, 0x000b69b6, 0x003a11ba}}, Y: Field{[10]uint32{0x0082cf9f, 0x01191ede, 0x001a640c, 0x00d9c783, 0x03ad51a3, 0x01e62ddb, 0x01bd9104, 0x01f89507, 0x00fc894c, 0x0028a72e}}},
+ {X: Field{[10]uint32{0x0258ad71, 0x018e226f, 0x03a208f7, 0x03d73e68, 0x00bb30d1, 0x0277a30e, 0x005fe962, 0x030f8c28, 0x038c28de, 0x001dde29}}, Y: Field{[10]uint32{0x019f43ac, 0x004ff07f, 0x02c563b5, 0x0047fc92, 0x0087b384, 0x00bfd600, 0x0098e12f, 0x02c8bfdc, 0x019ab5a5, 0x000d189b}}},
+ },
+ {
+ {X: Field{[10]uint32{0x0258ad71, 0x018e226f, 0x03a208f7, 0x03d73e68, 0x00bb30d1, 0x0277a30e, 0x005fe962, 0x030f8c28, 0x038c28de, 0x001dde29}}, Y: Field{[10]uint32{0x019f43ac, 0x004ff07f, 0x02c563b5, 0x0047fc92, 0x0087b384, 0x00bfd600, 0x0098e12f, 0x02c8bfdc, 0x019ab5a5, 0x000d189b}}},
+ {X: Field{[10]uint32{0x0073e879, 0x02870944, 0x02ea7a7e, 0x016b8413, 0x032cf16a, 0x03c3f8e4, 0x02f482d7, 0x001b458c, 0x016b5ca0, 0x0039ee5e}}, Y: Field{[10]uint32{0x02a89d98, 0x01c4226e, 0x00af338e, 0x0097b6a6, 0x029cb5bf, 0x00df3072, 0x002102a7, 0x0278bf7d, 0x008c1916, 0x0004ae26}}},
+ {X: Field{[10]uint32{0x0319c869, 0x031bab8c, 0x032702f7, 0x0175d87a, 0x0018a9f9, 0x03f32b37, 0x01839022, 0x00ff2340, 0x005d9817, 0x000c0601}}, Y: Field{[10]uint32{0x02b856f0, 0x031db274, 0x01a7bfc0, 0x032928f6, 0x03ca2a84, 0x03588b8e, 0x02624320, 0x02dedbe1, 0x01782503, 0x002b17f1}}},
+ {X: Field{[10]uint32{0x02628f0f, 0x035c8afc, 0x02919865, 0x02abcabb, 0x0365423d, 0x02f8269c, 0x00915a24, 0x01880f0b, 0x00185087, 0x0001c6fc}}, Y: Field{[10]uint32{0x01a1c334, 0x03172f51, 0x000bbb57, 0x01a88c72, 0x02098f9c, 0x03021338, 0x03600bc1, 0x033d2b8c, 0x015d504d, 0x00149ea8}}},
+ {X: Field{[10]uint32{0x01ed29b5, 0x01a61be9, 0x01d1b4c6, 0x0181c4ab, 0x01f5830b, 0x0298f221, 0x02b67db9, 0x01fbcd0e, 0x01b61ee5, 0x000c8a20}}, Y: Field{[10]uint32{0x00d15ad2, 0x03c49b9f, 0x03604ef4, 0x02ae53b9, 0x01ca83ae, 0x01054c78, 0x010b19df, 0x00d13ac4, 0x028417a0, 0x00059dc0}}},
+ {X: Field{[10]uint32{0x00953133, 0x01f726c6, 0x021ae647, 0x00a9d21c, 0x017fb3b4, 0x03f337ea, 0x012806c0, 0x03748e20, 0x034fed0d, 0x000282ca}}, Y: Field{[10]uint32{0x00af0fc9, 0x00928dcd, 0x00ba94bc, 0x03a2c3b5, 0x016fa384, 0x01916323, 0x001c6ca8, 0x02fcbc0f, 0x002cfb5a, 0x00336846}}},
+ {X: Field{[10]uint32{0x02c96100, 0x02a101e1, 0x008e63bf, 0x006a9ba7, 0x00a16301, 0x037cf6f3, 0x003dd9b2, 0x006e7fed, 0x033ac0fb, 0x000fce11}}, Y: Field{[10]uint32{0x02624707, 0x00ab06fc, 0x031bcf1e, 0x01f02dd7, 0x0166571c, 0x03c1e739, 0x034c4462, 0x000e5494, 0x0055f5d4, 0x001c31a7}}},
+ {X: Field{[10]uint32{0x039620e1, 0x00ddb7e8, 0x013786f6, 0x03214048, 0x025b1911, 0x0300f0e7, 0x0232e594, 0x0395a0ce, 0x003acb9b, 0x0000860d}}, Y: Field{[10]uint32{0x006998b5, 0x00667d94, 0x009ec5e0, 0x0290bd0f, 0x00443299, 0x000beff0, 0x03f24fd6, 0x0142fabc, 0x0148970a, 0x002faa07}}},
+ {X: Field{[10]uint32{0x0122d2ac, 0x031bb1bf, 0x02ce0234, 0x0049b72a, 0x0310ddfe, 0x01e177cb, 0x003c0e09, 0x029db72d, 0x03c5fd27, 0x000a2044}}, Y: Field{[10]uint32{0x0342a268, 0x03ad57e3, 0x008fd081, 0x01285523, 0x03ddc3d4, 0x0325d84d, 0x00777260, 0x031723c8, 0x030158fb, 0x002869fa}}},
+ {X: Field{[10]uint32{0x02e515dd, 0x0284ebbf, 0x024228c1, 0x008cd0ea, 0x029d0453, 0x012f7f8b, 0x035866ab, 0x0306083b, 0x02fee6ee, 0x0028afe6}}, Y: Field{[10]uint32{0x02c30212, 0x02a5ac01, 0x018745c3, 0x02aa6a3a, 0x0000f2e3, 0x03017a8a, 0x00a5e2ab, 0x02adece8, 0x0071c55c, 0x0016846f}}},
+ {X: Field{[10]uint32{0x005f8ea8, 0x02a03749, 0x02900d4b, 0x038e5934, 0x01d17248, 0x01c467f9, 0x03f4d95d, 0x00e8a954, 0x0200c846, 0x003e58e8}}, Y: Field{[10]uint32{0x01bc99eb, 0x0157ec16, 0x020824bc, 0x00d6762d, 0x008bb8f2, 0x03fd09c8, 0x03722301, 0x020f028e, 0x00268c7f, 0x00272165}}},
+ {X: Field{[10]uint32{0x030a2a53, 0x03c3b037, 0x0211e7ea, 0x02cfe059, 0x02d51dca, 0x00ea6e24, 0x00394574, 0x0265f0ea, 0x018d07c3, 0x001be194}}, Y: Field{[10]uint32{0x033bfeb2, 0x02695d1c, 0x01f35113, 0x01cbaa81, 0x00bf54f7, 0x029c265a, 0x0376ea95, 0x020bca6d, 0x0216fd45, 0x003542bd}}},
+ {X: Field{[10]uint32{0x0206a315, 0x02a20c49, 0x023ad9e1, 0x01cbc9a5, 0x02407260, 0x0243825f, 0x00d8b2a5, 0x03669fe6, 0x024cff70, 0x00297648}}, Y: Field{[10]uint32{0x023b68d1, 0x0184cd67, 0x027c9d35, 0x00d1f446, 0x01ed4d0d, 0x01e6037a, 0x03306abd, 0x03696cd0, 0x03003b20, 0x0021cca2}}},
+ {X: Field{[10]uint32{0x00d52891, 0x027abd36, 0x01f52af1, 0x03620fae, 0x0339a0f7, 0x02c5ffe9, 0x0244de90, 0x02378d19, 0x03c9cbc5, 0x000ef092}}, Y: Field{[10]uint32{0x0105b79c, 0x03478a13, 0x032d1386, 0x00a02921, 0x004da845, 0x02fed23d, 0x02bed840, 0x00f629ff, 0x00a48a78, 0x003c238c}}},
+ {X: Field{[10]uint32{0x02231493, 0x02ded501, 0x00d469cd, 0x020c3331, 0x0096411a, 0x003979a9, 0x034e41d0, 0x030d813a, 0x002e1b73, 0x003c7fa6}}, Y: Field{[10]uint32{0x018848c1, 0x02a6699d, 0x030d0196, 0x00d1b97f, 0x03f173fb, 0x03df6674, 0x02d3c205, 0x01377085, 0x01eaed9a, 0x000b8806}}},
+ {X: Field{[10]uint32{0x02d903ac, 0x03b6a701, 0x03e5cb09, 0x01d396b5, 0x02d5f962, 0x039ebf4b, 0x0329fd30, 0x02a1118d, 0x015ee637, 0x00024a25}}, Y: Field{[10]uint32{0x03cd091f, 0x0203a4d6, 0x0183fc51, 0x03bea2a3, 0x02ac3d26, 0x024ea57b, 0x0378a130, 0x010aa09e, 0x01003d3f, 0x00309588}}},
+ },
+ {
+ {X: Field{[10]uint32{0x02d903ac, 0x03b6a701, 0x03e5cb09, 0x01d396b5, 0x02d5f962, 0x039ebf4b, 0x0329fd30, 0x02a1118d, 0x015ee637, 0x00024a25}}, Y: Field{[10]uint32{0x03cd091f, 0x0203a4d6, 0x0183fc51, 0x03bea2a3, 0x02ac3d26, 0x024ea57b, 0x0378a130, 0x010aa09e, 0x01003d3f, 0x00309588}}},
+ {X: Field{[10]uint32{0x0359dd9e, 0x0011e983, 0x030e7231, 0x03156d63, 0x027ce5e9, 0x032c62b5, 0x01163b04, 0x034d436b, 0x01ee3771, 0x0013e26f}}, Y: Field{[10]uint32{0x0156b049, 0x01ab8c80, 0x01f5c101, 0x014198e3, 0x031e4882, 0x010eec91, 0x00baf4c0, 0x007da571, 0x02d5227a, 0x00329e54}}},
+ {X: Field{[10]uint32{0x0074b839, 0x004a1d5e, 0x02b41811, 0x02ce54f4, 0x02be4115, 0x008c2dab, 0x03df0dfb, 0x0396a014, 0x001fc0e1, 0x000f80ee}}, Y: Field{[10]uint32{0x000594ba, 0x0073959f, 0x01b8da0c, 0x03c3f6ad, 0x027de5c5, 0x01c663d9, 0x00f66075, 0x01fd0b11, 0x0163dff0, 0x00344eb8}}},
+ {X: Field{[10]uint32{0x03f01197, 0x030c533f, 0x005bf529, 0x03c1e689, 0x0194b668, 0x00b0f132, 0x0396baca, 0x0316a030, 0x0304cae3, 0x0032e7a0}}, Y: Field{[10]uint32{0x03989c1d, 0x01381d8e, 0x00a24c33, 0x02300578, 0x0341b2d1, 0x03c22245, 0x03258cdf, 0x0039a849, 0x02801eb8, 0x0018b1f4}}},
+ {X: Field{[10]uint32{0x0357a513, 0x03de39a0, 0x0023f3a3, 0x004d16cc, 0x01f151bd, 0x028a48b1, 0x02fa283a, 0x0124b358, 0x00b7a2f4, 0x003998b0}}, Y: Field{[10]uint32{0x0017d07e, 0x02880728, 0x00d89192, 0x0358954e, 0x01d8035c, 0x00486906, 0x01ae208a, 0x01148c17, 0x013ce612, 0x002ac2c6}}},
+ {X: Field{[10]uint32{0x01a7d197, 0x03a434ee, 0x019459ba, 0x030623a9, 0x035e83a8, 0x008b08d2, 0x038ffe0a, 0x03d8e51d, 0x0254280d, 0x0030b162}}, Y: Field{[10]uint32{0x01eeb5e9, 0x00732fe2, 0x002484e4, 0x011516b6, 0x020a47ec, 0x00bb4e69, 0x03041ab6, 0x00249d5c, 0x0288366e, 0x001cba8c}}},
+ {X: Field{[10]uint32{0x0337d242, 0x017dfbf7, 0x014b0499, 0x02981e70, 0x01c29fec, 0x02f8d61f, 0x03862c7c, 0x03db2e10, 0x00b1c94c, 0x00102fe0}}, Y: Field{[10]uint32{0x02405088, 0x03609e69, 0x035583d1, 0x02e90af4, 0x0274321e, 0x02c9bf84, 0x013fe9b1, 0x02abc13d, 0x0135d856, 0x002d5e77}}},
+ {X: Field{[10]uint32{0x008d2cc2, 0x027ff094, 0x0058c15f, 0x0351c123, 0x018e0bee, 0x001cc371, 0x00cf2a41, 0x01a6f4f2, 0x01b0f89c, 0x0038bcd2}}, Y: Field{[10]uint32{0x00d4c04f, 0x011ef638, 0x03db37e3, 0x03a38272, 0x0242344b, 0x0180856e, 0x0060aec7, 0x01c8de06, 0x03280f82, 0x0007facb}}},
+ {X: Field{[10]uint32{0x015a3558, 0x00acd916, 0x027f2baf, 0x021788d2, 0x02ac071f, 0x0236d67d, 0x02f97813, 0x0329c201, 0x0297601d, 0x000f453f}}, Y: Field{[10]uint32{0x0043df4c, 0x036ceb19, 0x01727c6a, 0x03851f07, 0x0082e0a2, 0x02fd5b85, 0x029a931d, 0x0207be3c, 0x01d6e846, 0x0005b1af}}},
+ {X: Field{[10]uint32{0x00ea4178, 0x031c0905, 0x03cd510f, 0x0153931d, 0x03782e03, 0x01dd2532, 0x00453c6a, 0x018da1a0, 0x0072d175, 0x00011c2a}}, Y: Field{[10]uint32{0x00098bd6, 0x01127c6e, 0x01aea079, 0x01c1a613, 0x0319b568, 0x034e7032, 0x02145e9f, 0x026b359d, 0x03a9c110, 0x00022669}}},
+ {X: Field{[10]uint32{0x02b1fc24, 0x027d6b60, 0x03570ede, 0x0071f8fd, 0x012528d8, 0x03249219, 0x001ac4d2, 0x01949473, 0x0140e82e, 0x00375be9}}, Y: Field{[10]uint32{0x029b74ca, 0x00c71183, 0x022304a4, 0x01afb5cc, 0x03ec10de, 0x00595f9d, 0x026f1ebf, 0x0061bf8d, 0x037eb1d3, 0x0019f98a}}},
+ {X: Field{[10]uint32{0x03369217, 0x0379b658, 0x011ead74, 0x01a40198, 0x01ca1c39, 0x01013ab3, 0x01a278f5, 0x03589288, 0x00ffcba4, 0x0010b714}}, Y: Field{[10]uint32{0x022dbc57, 0x0025f88f, 0x01e841c3, 0x03b2a380, 0x03a7a139, 0x0182ea14, 0x0178f5f1, 0x016c75fb, 0x021f6638, 0x00296ea6}}},
+ {X: Field{[10]uint32{0x01d08e02, 0x02a4564f, 0x0302881e, 0x02dff6b7, 0x00108547, 0x028f47a0, 0x0069499a, 0x0175e03e, 0x01a82de5, 0x0004fe8b}}, Y: Field{[10]uint32{0x00b03410, 0x0150770f, 0x02b97da5, 0x02ec6690, 0x03e644af, 0x02ed0cb1, 0x03356206, 0x0369c8c4, 0x00b04555, 0x0004d8ce}}},
+ {X: Field{[10]uint32{0x0246a9e9, 0x006b3a45, 0x03b0423f, 0x029f62b9, 0x015dcbb7, 0x03329d77, 0x01f82bb9, 0x03bdd5f4, 0x039c4b0a, 0x002560ad}}, Y: Field{[10]uint32{0x0256a698, 0x035d24ea, 0x002ffbc4, 0x0317c4ee, 0x0001cbb5, 0x02be39a9, 0x02c6acee, 0x009bbb53, 0x01800ed4, 0x0008819f}}},
+ {X: Field{[10]uint32{0x004ee41a, 0x00ceae65, 0x029a6ac2, 0x0374edf5, 0x02879b56, 0x00b1a0a0, 0x03c10b67, 0x002910fd, 0x0051d3c7, 0x00341b12}}, Y: Field{[10]uint32{0x03295e6f, 0x03e13a62, 0x02e252f1, 0x00d1858b, 0x019b7b84, 0x013d8c24, 0x030acd4f, 0x0342b6ee, 0x014c0584, 0x0016057f}}},
+ {X: Field{[10]uint32{0x03d82751, 0x02b9d458, 0x0354527a, 0x02a41eb4, 0x015645b4, 0x0038eca1, 0x01064f3a, 0x02c424e6, 0x02f3ec6d, 0x0021743f}}, Y: Field{[10]uint32{0x02b1f962, 0x008de893, 0x0331582c, 0x03a5a1dc, 0x023e8751, 0x020b3d59, 0x01d496e5, 0x02302f8a, 0x008413a3, 0x0007c0d9}}},
+ },
+ {
+ {X: Field{[10]uint32{0x03d82751, 0x02b9d458, 0x0354527a, 0x02a41eb4, 0x015645b4, 0x0038eca1, 0x01064f3a, 0x02c424e6, 0x02f3ec6d, 0x0021743f}}, Y: Field{[10]uint32{0x02b1f962, 0x008de893, 0x0331582c, 0x03a5a1dc, 0x023e8751, 0x020b3d59, 0x01d496e5, 0x02302f8a, 0x008413a3, 0x0007c0d9}}},
+ {X: Field{[10]uint32{0x015fcade, 0x015b4507, 0x01ff7563, 0x038025c4, 0x0068b482, 0x034477c1, 0x007a6cfc, 0x0313d3d8, 0x034b19a4, 0x001ade43}}, Y: Field{[10]uint32{0x0338d3ff, 0x03fe1bf0, 0x02b0ab6f, 0x02d1ef89, 0x03a83fa5, 0x032b8272, 0x016661f9, 0x03acfbca, 0x001b2ff9, 0x00340ea6}}},
+ {X: Field{[10]uint32{0x00de4cf3, 0x0154187b, 0x0066ab99, 0x00d51e28, 0x039340e5, 0x005766b9, 0x03c2d26d, 0x008b0ef9, 0x034ac114, 0x000e136a}}, Y: Field{[10]uint32{0x012d0566, 0x01e5ac89, 0x03a73b7c, 0x00ce5d46, 0x001f430a, 0x00ad31bc, 0x034ed6da, 0x03290efe, 0x01bcd1b9, 0x0035b8f1}}},
+ {X: Field{[10]uint32{0x03a3e0cb, 0x03336af8, 0x00be0bb0, 0x037a165e, 0x023d2479, 0x03313e3f, 0x022c367a, 0x02fb4f05, 0x032c2d7e, 0x00104526}}, Y: Field{[10]uint32{0x039033a8, 0x024ba60c, 0x00f2470e, 0x0017bd24, 0x00b3ec78, 0x0240b3ca, 0x0015c9b9, 0x00c150ad, 0x0392db7c, 0x00324356}}},
+ {X: Field{[10]uint32{0x025238c2, 0x03cfa487, 0x00b8b98a, 0x0170e03b, 0x0040355f, 0x03a0bb52, 0x031610b4, 0x0056a906, 0x000eb7d4, 0x00053c3b}}, Y: Field{[10]uint32{0x02f07922, 0x01a8d1e4, 0x0139d6e8, 0x03600c12, 0x03d25c00, 0x02109d1f, 0x01fc73e3, 0x01760248, 0x013dd483, 0x002ac4b5}}},
+ {X: Field{[10]uint32{0x02972627, 0x00d9a822, 0x01e1f8a4, 0x00100948, 0x00e19216, 0x02f11068, 0x018c1efc, 0x03857206, 0x030949bf, 0x00228c61}}, Y: Field{[10]uint32{0x02bb8af9, 0x011ed591, 0x00bcce7b, 0x016b0fbf, 0x00174436, 0x0161eea9, 0x0177ed28, 0x02993425, 0x008768f7, 0x00192edf}}},
+ {X: Field{[10]uint32{0x0143e94d, 0x00d4bbf5, 0x00e188f6, 0x029d5be6, 0x02dd1302, 0x02968376, 0x01c34678, 0x00a1fb10, 0x03bb782c, 0x003ad0bc}}, Y: Field{[10]uint32{0x01924d89, 0x01677911, 0x02d42405, 0x02379835, 0x034cd846, 0x03f37edd, 0x020dd572, 0x0364b726, 0x01074f25, 0x0008d29b}}},
+ {X: Field{[10]uint32{0x03f3d3fc, 0x03774a38, 0x01cebf8d, 0x0208170a, 0x02664a9b, 0x021ca9ee, 0x02c3dfe2, 0x021277eb, 0x00fa4e7c, 0x00347eb5}}, Y: Field{[10]uint32{0x00f3704d, 0x008d0f14, 0x03326ed2, 0x00c7bfcd, 0x00bad371, 0x0162de06, 0x033f70e8, 0x03f7f951, 0x0314a348, 0x0023f865}}},
+ {X: Field{[10]uint32{0x0219aaed, 0x01396d5f, 0x03327032, 0x037a3199, 0x00459bac, 0x0381aa48, 0x02ec02f6, 0x008366a7, 0x00ca5168, 0x00073c4e}}, Y: Field{[10]uint32{0x012f400e, 0x01ba975a, 0x03ffbc13, 0x023fbf1d, 0x03479eef, 0x02db7785, 0x00372a66, 0x018e197d, 0x02f3171c, 0x0035bff6}}},
+ {X: Field{[10]uint32{0x00ba68dd, 0x01cee8b8, 0x02d65374, 0x010e31fa, 0x02bca7c9, 0x0076b4c4, 0x0266838c, 0x01d049fc, 0x02abfe2b, 0x000172fa}}, Y: Field{[10]uint32{0x01d03959, 0x00a7cc9f, 0x033b5942, 0x01c17794, 0x007f3d96, 0x0141bbe8, 0x01386665, 0x0055baba, 0x03b6fa90, 0x0004f288}}},
+ {X: Field{[10]uint32{0x02a8aa39, 0x0303a7ed, 0x03ac55f6, 0x01ed29e3, 0x0137a663, 0x01266436, 0x035a0968, 0x03504b21, 0x02be5f40, 0x002d61a1}}, Y: Field{[10]uint32{0x03493c1f, 0x01e4d74a, 0x0347b8fc, 0x02639b6c, 0x01abbdaf, 0x01302a47, 0x01478d45, 0x0230b052, 0x014324c7, 0x00158cb5}}},
+ {X: Field{[10]uint32{0x023a1550, 0x011319f2, 0x01f279a5, 0x027e3bff, 0x01801da9, 0x007e2dd4, 0x0130976e, 0x015d04b7, 0x01ab3405, 0x003aff1a}}, Y: Field{[10]uint32{0x01362f6e, 0x010afd90, 0x00b1951f, 0x00639a30, 0x037983c8, 0x01fd3f41, 0x01f199db, 0x02d5028f, 0x00cdb99c, 0x0038bffa}}},
+ {X: Field{[10]uint32{0x003b4cc5, 0x007af8ec, 0x037c2ee9, 0x02e96871, 0x02572831, 0x01fcea00, 0x035bc4fe, 0x0330ad9e, 0x01b06b8b, 0x0017f067}}, Y: Field{[10]uint32{0x01b57c28, 0x00e7ee19, 0x03ec4a3b, 0x000f3021, 0x009276f5, 0x028e97bd, 0x022138f9, 0x031f19bb, 0x00c0ec98, 0x003b23a1}}},
+ {X: Field{[10]uint32{0x028d319f, 0x02fce397, 0x018e948b, 0x0185b510, 0x00e66aa5, 0x01eab260, 0x010b6533, 0x02a19841, 0x0350ce93, 0x001b3970}}, Y: Field{[10]uint32{0x01cf513f, 0x031af5e5, 0x0378308a, 0x03803b14, 0x012da8f2, 0x02ef88fc, 0x013e3e8c, 0x00f216fb, 0x0026e250, 0x00254340}}},
+ {X: Field{[10]uint32{0x00b38cb5, 0x02e15f53, 0x00948bb4, 0x037d34e2, 0x03e10b7f, 0x034fba86, 0x03a8a40f, 0x038a277a, 0x030d42ed, 0x002e23ed}}, Y: Field{[10]uint32{0x0165f3d7, 0x03e9d596, 0x00c7197b, 0x00489ebe, 0x024d4f3e, 0x02cd6a38, 0x034bb994, 0x00ca0180, 0x02ad46ea, 0x0035b1cd}}},
+ {X: Field{[10]uint32{0x0126087e, 0x01012091, 0x020308f5, 0x02220b68, 0x01fdfb6d, 0x01e62e17, 0x009b6041, 0x033a5f07, 0x01ce97ee, 0x003fcac3}}, Y: Field{[10]uint32{0x00c29907, 0x0147807c, 0x02ceb2c9, 0x01bee438, 0x02c7b7ed, 0x01341e4d, 0x034c4dc5, 0x02e8622b, 0x03fef524, 0x00124f44}}},
+ },
+ {
+ {X: Field{[10]uint32{0x0126087e, 0x01012091, 0x020308f5, 0x02220b68, 0x01fdfb6d, 0x01e62e17, 0x009b6041, 0x033a5f07, 0x01ce97ee, 0x003fcac3}}, Y: Field{[10]uint32{0x00c29907, 0x0147807c, 0x02ceb2c9, 0x01bee438, 0x02c7b7ed, 0x01341e4d, 0x034c4dc5, 0x02e8622b, 0x03fef524, 0x00124f44}}},
+ {X: Field{[10]uint32{0x0149f8ef, 0x00ea6bcc, 0x034583bd, 0x013b98e2, 0x023deb5c, 0x032c6ec8, 0x0229ebbe, 0x01b27de3, 0x03bc5f36, 0x000a60b6}}, Y: Field{[10]uint32{0x02c7a248, 0x01c9ac05, 0x02d8456e, 0x02504b8f, 0x01095db9, 0x01ed6f27, 0x03a5339c, 0x00882ae7, 0x03e9af66, 0x002986d6}}},
+ {X: Field{[10]uint32{0x01d681f9, 0x00153f9e, 0x02b9fc59, 0x03beb23f, 0x0066ce0e, 0x000b252c, 0x037ff25e, 0x008c2222, 0x01f2775f, 0x0031d17f}}, Y: Field{[10]uint32{0x03bb1247, 0x005cd0de, 0x005c7603, 0x00d719f5, 0x038cdbd3, 0x003a0619, 0x031394c7, 0x03979e29, 0x02f2f6b9, 0x00164088}}},
+ {X: Field{[10]uint32{0x0380441b, 0x0227d848, 0x03658852, 0x01160385, 0x0060011f, 0x0125f6d6, 0x036eb590, 0x0303dad0, 0x01042af0, 0x00068a39}}, Y: Field{[10]uint32{0x0052af25, 0x03d81aa1, 0x027aeb05, 0x016d1bb9, 0x0104b3e7, 0x025dbc3b, 0x038329a8, 0x0276adf1, 0x027996c5, 0x00155de6}}},
+ {X: Field{[10]uint32{0x01cd0ea3, 0x0133bb4d, 0x004815e0, 0x03a0832b, 0x02b34478, 0x019cb9fc, 0x0259e5eb, 0x00142c9e, 0x01f3a975, 0x002aec9e}}, Y: Field{[10]uint32{0x00307bce, 0x024c4cdf, 0x033b6470, 0x0016780b, 0x007c9769, 0x00c1e3b5, 0x034be0c0, 0x025c367e, 0x003bbf17, 0x00177b84}}},
+ {X: Field{[10]uint32{0x009a2115, 0x03f54d19, 0x025ebe77, 0x00245e95, 0x02ec7960, 0x01902606, 0x006aca9d, 0x031b1b75, 0x0052b194, 0x003f5cf0}}, Y: Field{[10]uint32{0x02ba6cda, 0x032adee9, 0x0021f049, 0x0158ba75, 0x0104f601, 0x01bdf5b6, 0x00abab02, 0x02211008, 0x00c1c817, 0x001881da}}},
+ {X: Field{[10]uint32{0x03c9ee3e, 0x038bcfc6, 0x0382c5c2, 0x02a58f9c, 0x01ea9fa1, 0x0099fb44, 0x03aeaa74, 0x01a0a09f, 0x010b59fc, 0x000fe045}}, Y: Field{[10]uint32{0x019aae06, 0x02b6c316, 0x001603ce, 0x0373f36a, 0x027623b2, 0x011e5598, 0x031beb3c, 0x02a0b519, 0x0268fdbf, 0x00067222}}},
+ {X: Field{[10]uint32{0x021e30a7, 0x03c38e58, 0x003242ee, 0x02de6176, 0x002edd5e, 0x034fc805, 0x0250cc0b, 0x00c18074, 0x03e9535f, 0x000322e0}}, Y: Field{[10]uint32{0x03f688de, 0x03defae7, 0x0134dbeb, 0x00dee61c, 0x00aacad2, 0x03bf7215, 0x010e3f17, 0x036b1ee1, 0x0077065f, 0x0003731c}}},
+ {X: Field{[10]uint32{0x00e4a007, 0x006fbebe, 0x0358b617, 0x033c22ec, 0x0015ecee, 0x0295b1fb, 0x014ba33a, 0x00b79a56, 0x032dd008, 0x00173e04}}, Y: Field{[10]uint32{0x0068b883, 0x00fc2424, 0x03fe8ce6, 0x025b1e71, 0x02c8946f, 0x01230f7d, 0x02d41588, 0x03e837d2, 0x025c0d61, 0x002d16bb}}},
+ {X: Field{[10]uint32{0x003c18e1, 0x00fbf313, 0x03230300, 0x03eeeab5, 0x00ba4ae5, 0x012eb1fd, 0x02267110, 0x0035ae44, 0x01458351, 0x002cfe81}}, Y: Field{[10]uint32{0x02aa2b4f, 0x007efb84, 0x02542cb1, 0x0267c433, 0x01aa55a4, 0x0193f9bf, 0x02182980, 0x03d5adee, 0x00759340, 0x002a1709}}},
+ {X: Field{[10]uint32{0x02c2d4a7, 0x01bf9ec9, 0x03fb1095, 0x024cef3f, 0x021bc36f, 0x031013b4, 0x03e33973, 0x02925194, 0x024d0d4b, 0x002db57f}}, Y: Field{[10]uint32{0x02e86371, 0x03739f8e, 0x03cc8118, 0x0139bd78, 0x02745b7e, 0x037fff63, 0x03cf9209, 0x035b0537, 0x03a13abb, 0x0011fcdc}}},
+ {X: Field{[10]uint32{0x03816b2f, 0x021b0d46, 0x02e11fdb, 0x021048a3, 0x01ee0cb7, 0x009b1757, 0x00165fe1, 0x00699dba, 0x02dd6595, 0x00169351}}, Y: Field{[10]uint32{0x03e86c60, 0x01ebae1c, 0x00cebaf9, 0x0317ecfb, 0x02b50e6c, 0x03cf7f35, 0x003e27f8, 0x0182ac0a, 0x0396ca0e, 0x001df248}}},
+ {X: Field{[10]uint32{0x0066dd33, 0x00cd88bf, 0x036dc509, 0x023fc771, 0x02ea8fbc, 0x000a6c08, 0x03b1b150, 0x01621c1a, 0x03c066cf, 0x0018722e}}, Y: Field{[10]uint32{0x02f10bfa, 0x02ea7ced, 0x00c8ca3b, 0x03ab0a08, 0x036a5106, 0x026174fe, 0x0269994b, 0x03dc0d11, 0x02239e54, 0x0024d667}}},
+ {X: Field{[10]uint32{0x035cacbb, 0x019233cc, 0x01b26fce, 0x00a2f58d, 0x0118ac30, 0x0318899c, 0x0177e5bd, 0x003335ee, 0x01b12c72, 0x0013f5a6}}, Y: Field{[10]uint32{0x021ad839, 0x00bbea23, 0x03e6133b, 0x02cba088, 0x00aa998e, 0x036d878b, 0x0079dbfc, 0x0282bb65, 0x02f3f511, 0x0031b243}}},
+ {X: Field{[10]uint32{0x016b2ff8, 0x016df337, 0x008fa980, 0x0305ca1b, 0x01876336, 0x03b0ef7c, 0x009f5373, 0x01e1461f, 0x03a57426, 0x002538ca}}, Y: Field{[10]uint32{0x00e1af3e, 0x0121554b, 0x03e13add, 0x010949af, 0x00b33af0, 0x018b67a3, 0x031e4886, 0x0013864b, 0x008b43da, 0x000346d1}}},
+ {X: Field{[10]uint32{0x0056e241, 0x03978b3e, 0x01d28780, 0x0052335b, 0x0357f1ee, 0x0006c84a, 0x012b2e63, 0x0203aa7b, 0x03e4b1e8, 0x00209fee}}, Y: Field{[10]uint32{0x02c293ec, 0x016da2eb, 0x03166d60, 0x00c61a40, 0x007ff7a6, 0x0347449a, 0x03ef2c67, 0x01ec2dc6, 0x00923c72, 0x003183e7}}},
+ },
+ {
+ {X: Field{[10]uint32{0x0056e241, 0x03978b3e, 0x01d28780, 0x0052335b, 0x0357f1ee, 0x0006c84a, 0x012b2e63, 0x0203aa7b, 0x03e4b1e8, 0x00209fee}}, Y: Field{[10]uint32{0x02c293ec, 0x016da2eb, 0x03166d60, 0x00c61a40, 0x007ff7a6, 0x0347449a, 0x03ef2c67, 0x01ec2dc6, 0x00923c72, 0x003183e7}}},
+ {X: Field{[10]uint32{0x00b1815d, 0x03912dc3, 0x03461ef6, 0x024862e1, 0x0260470a, 0x01db9acd, 0x02d7c8d5, 0x01ae5cf8, 0x02a7dce5, 0x002ddfc4}}, Y: Field{[10]uint32{0x0257dbc5, 0x00f4af23, 0x0016d6ba, 0x03e46912, 0x014c42f0, 0x00f30b99, 0x00cefb37, 0x02b310fc, 0x01b14f86, 0x0012dbe1}}},
+ {X: Field{[10]uint32{0x03b80fa7, 0x012172ce, 0x01388634, 0x01aedc10, 0x033aa7da, 0x00c82067, 0x011a06bd, 0x030bef03, 0x031f6308, 0x000215f8}}, Y: Field{[10]uint32{0x01366b2d, 0x020847c2, 0x0016abd9, 0x0010f35c, 0x03172e37, 0x0372dc51, 0x017cc9d1, 0x005c824b, 0x03423ae0, 0x003d90e4}}},
+ {X: Field{[10]uint32{0x005565ec, 0x0176b4b1, 0x005970fe, 0x037d25df, 0x02d858d8, 0x02de7e55, 0x03308b2c, 0x02fc491e, 0x03943018, 0x001225ce}}, Y: Field{[10]uint32{0x02ed07e9, 0x01e41d7e, 0x037b83b8, 0x02596011, 0x01511b35, 0x005116bc, 0x037bb3a0, 0x03706d90, 0x01684f3c, 0x001d87dd}}},
+ {X: Field{[10]uint32{0x01c70e63, 0x000b0e82, 0x01496f5d, 0x01e39d4f, 0x029cbb8b, 0x019299cb, 0x005c6557, 0x018010d5, 0x00ea56bd, 0x000a2ab3}}, Y: Field{[10]uint32{0x0057da4e, 0x000e20bc, 0x021e8b9f, 0x03391136, 0x03f5fc59, 0x01da3aed, 0x0289667c, 0x0038559e, 0x022ef81a, 0x000ada4c}}},
+ {X: Field{[10]uint32{0x036d6cd3, 0x0002af9e, 0x0378833a, 0x00740e24, 0x03341661, 0x015948e5, 0x0269b870, 0x02061206, 0x02167f2b, 0x003a8499}}, Y: Field{[10]uint32{0x00f450be, 0x018a497d, 0x01a88aae, 0x00b7aef8, 0x01b1c975, 0x00451789, 0x00e112bf, 0x038ff6ab, 0x02e5078e, 0x00086938}}},
+ {X: Field{[10]uint32{0x03e674b5, 0x03714bdc, 0x00aac601, 0x02739c18, 0x0392d8f6, 0x033ae293, 0x01db2c9b, 0x02998517, 0x0225a055, 0x0028bced}}, Y: Field{[10]uint32{0x02937941, 0x00e32383, 0x03a53b09, 0x00c5f0cf, 0x039222fa, 0x00ca9f12, 0x0044a90f, 0x01a2ba00, 0x0159614c, 0x001883a8}}},
+ {X: Field{[10]uint32{0x03fd71fa, 0x0135d0ae, 0x027d4a4d, 0x00996d14, 0x030b775a, 0x029c1305, 0x02972728, 0x015671b5, 0x018e8eb5, 0x003a4c49}}, Y: Field{[10]uint32{0x034d3307, 0x02f434c5, 0x035f33d9, 0x0386ed78, 0x00b3946c, 0x032552d0, 0x01eb4169, 0x037b83a1, 0x03364c3f, 0x003ec78c}}},
+ {X: Field{[10]uint32{0x011eb056, 0x00058c76, 0x01386c76, 0x036e3b3f, 0x01a002ef, 0x00fd457d, 0x018b5c6a, 0x01648c76, 0x03c9eaae, 0x000f13e0}}, Y: Field{[10]uint32{0x005cecab, 0x01624f68, 0x02b87742, 0x0112073d, 0x001982b5, 0x00ec9e20, 0x02d6573c, 0x022da8ce, 0x0007514a, 0x002511e4}}},
+ {X: Field{[10]uint32{0x008fadf1, 0x00f632d5, 0x01f9de64, 0x021e9c4b, 0x0300359b, 0x0224605e, 0x0365f8de, 0x01091270, 0x00387f7f, 0x003b7ce1}}, Y: Field{[10]uint32{0x00415fb6, 0x010db3db, 0x03d2879c, 0x004f7a8d, 0x030f4e88, 0x0082a9ad, 0x01802351, 0x0214037b, 0x01b0a189, 0x001cb4ed}}},
+ {X: Field{[10]uint32{0x0186dfa9, 0x0187f6ef, 0x013a7190, 0x029026e6, 0x02dc38b4, 0x02040eea, 0x01c1e03e, 0x019f538a, 0x01288a99, 0x002bfe38}}, Y: Field{[10]uint32{0x01d12681, 0x000f0db0, 0x039c7071, 0x02a51067, 0x00f9116d, 0x03f3d4fd, 0x013ebaa1, 0x01f0ff4f, 0x03b32137, 0x002362d2}}},
+ {X: Field{[10]uint32{0x00ff55c5, 0x008f5097, 0x01ec9771, 0x00a0689d, 0x035f4efd, 0x020ad2d8, 0x0012c1e7, 0x0110b29b, 0x01fdfb25, 0x0033cdab}}, Y: Field{[10]uint32{0x01a0228e, 0x009e2148, 0x02706aca, 0x03097034, 0x03a7547e, 0x02f67c81, 0x002f58b3, 0x01da1927, 0x02166ae0, 0x00345a84}}},
+ {X: Field{[10]uint32{0x009ba9c1, 0x009cdae6, 0x0338e28f, 0x02968274, 0x01e40f7c, 0x03b3b95e, 0x0058262a, 0x0002cfa1, 0x004528dc, 0x0034fede}}, Y: Field{[10]uint32{0x0351b267, 0x02e237fa, 0x02de0061, 0x03570046, 0x02341ced, 0x022dc3f9, 0x03ca0575, 0x02d39f29, 0x0034efa6, 0x003e2535}}},
+ {X: Field{[10]uint32{0x0181f79b, 0x015032f0, 0x02db4fe8, 0x01943392, 0x02e045d8, 0x01a97289, 0x01f82e7c, 0x037ebb8b, 0x00a26c63, 0x000c7203}}, Y: Field{[10]uint32{0x01225400, 0x027949b5, 0x025f1f0b, 0x03abd444, 0x01622ff9, 0x023cc364, 0x014e4d36, 0x009b7cc2, 0x02c12029, 0x0024ad67}}},
+ {X: Field{[10]uint32{0x032bb909, 0x025b0743, 0x00d999da, 0x01f14d66, 0x03639102, 0x02461f5f, 0x00729883, 0x02aa23fd, 0x000e0ac9, 0x0013b24c}}, Y: Field{[10]uint32{0x00cf4071, 0x028e0fe9, 0x03827b88, 0x020836b0, 0x02d52e16, 0x0213126e, 0x000dc451, 0x00137172, 0x0106be1b, 0x001e0ae8}}},
+ {X: Field{[10]uint32{0x0120e2b3, 0x02d63e88, 0x039aa7f3, 0x0339fd1f, 0x017a58fd, 0x0339b948, 0x03e4ae34, 0x02f6eb9e, 0x01f21f51, 0x003aa992}}, Y: Field{[10]uint32{0x025ad93d, 0x0294c16e, 0x03e59d47, 0x0197c4fd, 0x0201a6b9, 0x021e6a96, 0x01a80f89, 0x02c0eb1a, 0x01ed5bbb, 0x002f8c9e}}},
+ },
+ {
+ {X: Field{[10]uint32{0x0120e2b3, 0x02d63e88, 0x039aa7f3, 0x0339fd1f, 0x017a58fd, 0x0339b948, 0x03e4ae34, 0x02f6eb9e, 0x01f21f51, 0x003aa992}}, Y: Field{[10]uint32{0x025ad93d, 0x0294c16e, 0x03e59d47, 0x0197c4fd, 0x0201a6b9, 0x021e6a96, 0x01a80f89, 0x02c0eb1a, 0x01ed5bbb, 0x002f8c9e}}},
+ {X: Field{[10]uint32{0x03c9b0a8, 0x02f07307, 0x03db453d, 0x0171c17c, 0x029e337b, 0x00089e7a, 0x0223ea50, 0x025fbb09, 0x01b3beb9, 0x000eb6e7}}, Y: Field{[10]uint32{0x005bbdda, 0x039e5d7c, 0x026cc61a, 0x03e61c09, 0x02aad9c8, 0x030257fd, 0x0374de07, 0x0139c4f1, 0x016daee7, 0x000dd38b}}},
+ {X: Field{[10]uint32{0x032e070d, 0x00ff4e8f, 0x02a98f58, 0x007314a9, 0x0229aab7, 0x021411f8, 0x00731c3b, 0x012affd2, 0x01e9042f, 0x0012dca9}}, Y: Field{[10]uint32{0x016dd780, 0x02ea0bba, 0x00c3de44, 0x03774a52, 0x00b0b465, 0x0343cf04, 0x0277bb36, 0x03873d80, 0x014e1d6a, 0x00166787}}},
+ {X: Field{[10]uint32{0x00ae86f9, 0x03a78324, 0x03caf054, 0x015a58f9, 0x01fefdff, 0x01b17f1a, 0x010955e5, 0x0272edf8, 0x03ac428e, 0x0004a794}}, Y: Field{[10]uint32{0x0289c85d, 0x03bf7347, 0x0201b822, 0x03f45acf, 0x03b2a232, 0x01c4860f, 0x01a2115b, 0x0268a6cb, 0x03958aee, 0x001057b2}}},
+ {X: Field{[10]uint32{0x0202591c, 0x039ff612, 0x025a1e9c, 0x02596144, 0x013ef549, 0x01787f58, 0x026bfbeb, 0x03238a16, 0x03fc6539, 0x002a7f24}}, Y: Field{[10]uint32{0x01bec2dc, 0x02b77bda, 0x03253790, 0x01057f3d, 0x01ca888c, 0x02a45979, 0x004c17a1, 0x021c5cfa, 0x0339dc53, 0x00270b39}}},
+ {X: Field{[10]uint32{0x005912ec, 0x01c0283e, 0x01113428, 0x00139182, 0x0327f9ca, 0x02abc150, 0x03499694, 0x016de1aa, 0x01d4e3fb, 0x002a9c48}}, Y: Field{[10]uint32{0x02e35978, 0x0132c992, 0x02cbdb11, 0x02a33815, 0x03fee134, 0x01a8bb7a, 0x005266b9, 0x02542714, 0x0077dad0, 0x0031a43c}}},
+ {X: Field{[10]uint32{0x01968b59, 0x001b838b, 0x03c2e110, 0x02b84f2e, 0x0309a28b, 0x0026c09d, 0x03d7ac12, 0x027c29a9, 0x017c1a6f, 0x00325000}}, Y: Field{[10]uint32{0x01e572fb, 0x035d9023, 0x009c8fef, 0x02d90e43, 0x00e2842c, 0x016d5d0b, 0x038a1bfa, 0x0218804e, 0x02500c9b, 0x000e7648}}},
+ {X: Field{[10]uint32{0x0055b8da, 0x0090f57a, 0x00711922, 0x01f44a25, 0x02c75626, 0x03b84255, 0x005ecb6a, 0x0251216e, 0x0094c8f6, 0x00180511}}, Y: Field{[10]uint32{0x034e4bbd, 0x0001643c, 0x02a4bad5, 0x0309f8fc, 0x03543955, 0x004cb996, 0x00be1fd9, 0x03991a7a, 0x0269f681, 0x0022ed75}}},
+ {X: Field{[10]uint32{0x026b3332, 0x01cccd5c, 0x01de6a28, 0x0341cfb9, 0x00310388, 0x01c2fe38, 0x02793a5f, 0x000093b1, 0x039d7eed, 0x0007e12e}}, Y: Field{[10]uint32{0x00e8d52e, 0x010a28c5, 0x003a2554, 0x00b50db7, 0x00c2bcce, 0x016e7b7c, 0x007c27f7, 0x027b3095, 0x01072bca, 0x003b9c9b}}},
+ {X: Field{[10]uint32{0x01972bcb, 0x02565e6c, 0x00ceb9dd, 0x00f8907b, 0x02c2f22e, 0x03b685dd, 0x028e0213, 0x027c0a3d, 0x0057c8bb, 0x000f7cb4}}, Y: Field{[10]uint32{0x025d09df, 0x008b34f5, 0x00771b28, 0x025a0065, 0x031b9144, 0x011a9a12, 0x026b23b0, 0x01bbab5b, 0x01c640c8, 0x00371fac}}},
+ {X: Field{[10]uint32{0x01efa98e, 0x02a952b3, 0x027995cd, 0x01a046b0, 0x03724844, 0x02647a71, 0x028157b3, 0x03f341b2, 0x00890945, 0x0003c4f8}}, Y: Field{[10]uint32{0x02286767, 0x029dda6f, 0x02ccdc08, 0x01785b3a, 0x03287e70, 0x01ecd8b6, 0x023f8b0a, 0x01f140d7, 0x01f1764e, 0x002b7548}}},
+ {X: Field{[10]uint32{0x03d292dc, 0x001a893f, 0x014ce1b8, 0x0202c5dc, 0x01775e26, 0x01ef5e76, 0x008070d3, 0x03e4d2e9, 0x01533720, 0x0012e645}}, Y: Field{[10]uint32{0x03095ca6, 0x0297ff95, 0x02afd433, 0x03116cdd, 0x03938323, 0x017c07d5, 0x03c0a74b, 0x00e889b7, 0x01496110, 0x0038c9dd}}},
+ {X: Field{[10]uint32{0x01f59b6b, 0x00700efa, 0x00e2fa5e, 0x018f0622, 0x03e9b38c, 0x035609b4, 0x0328a1d2, 0x03b1f6cd, 0x01a551dd, 0x00377864}}, Y: Field{[10]uint32{0x02cb1410, 0x03658a49, 0x00fecf6a, 0x02ef9c55, 0x028b5738, 0x0314b853, 0x02757d61, 0x01d72f82, 0x03780282, 0x0016cafe}}},
+ {X: Field{[10]uint32{0x03b43eeb, 0x0346cd08, 0x0184feee, 0x0006fe04, 0x00181c94, 0x03cd6717, 0x024825ff, 0x017a4dfa, 0x03979eb9, 0x0020f100}}, Y: Field{[10]uint32{0x0084fb51, 0x00d021b5, 0x03b40aff, 0x032ad54f, 0x0295b6bf, 0x0003586c, 0x03c1e46d, 0x03b8f42f, 0x03f2437c, 0x000a55d7}}},
+ {X: Field{[10]uint32{0x01c6b699, 0x03157f72, 0x02871b68, 0x00d5af91, 0x02a86f57, 0x01ed05a0, 0x016d7bf9, 0x01bde968, 0x012eed83, 0x0017eac0}}, Y: Field{[10]uint32{0x01c6c3aa, 0x00c854b0, 0x03519b17, 0x01ffaa20, 0x0390ab11, 0x00358bde, 0x02bb4113, 0x034513a7, 0x0270a3c3, 0x000b66fe}}},
+ {X: Field{[10]uint32{0x0234d24f, 0x00d8cb76, 0x037401e2, 0x03c32684, 0x0141b6d8, 0x033d0bb9, 0x011df6de, 0x005a764e, 0x0143c5cf, 0x0039290b}}, Y: Field{[10]uint32{0x02ba9414, 0x03dc4c77, 0x024f13a7, 0x037ea363, 0x00e886ee, 0x02e2b4d3, 0x03c99ccf, 0x031cd49b, 0x02e716d1, 0x001367e4}}},
+ },
+ {
+ {X: Field{[10]uint32{0x0234d24f, 0x00d8cb76, 0x037401e2, 0x03c32684, 0x0141b6d8, 0x033d0bb9, 0x011df6de, 0x005a764e, 0x0143c5cf, 0x0039290b}}, Y: Field{[10]uint32{0x02ba9414, 0x03dc4c77, 0x024f13a7, 0x037ea363, 0x00e886ee, 0x02e2b4d3, 0x03c99ccf, 0x031cd49b, 0x02e716d1, 0x001367e4}}},
+ {X: Field{[10]uint32{0x028f62bb, 0x03cba8cf, 0x00d2a303, 0x018bdeb9, 0x010553c5, 0x01b13bd3, 0x030acf85, 0x02c634fb, 0x01fb84cf, 0x003f5914}}, Y: Field{[10]uint32{0x032c0911, 0x03642184, 0x0283fd0a, 0x024b4803, 0x00fa2ab4, 0x02f0d133, 0x03e7a5c1, 0x0055e2db, 0x02b2b187, 0x0039d173}}},
+ {X: Field{[10]uint32{0x03ea0c68, 0x01042bce, 0x0392b5c8, 0x008d9dec, 0x03094301, 0x034e5beb, 0x009bc8e8, 0x028e8925, 0x0234e156, 0x000f9065}}, Y: Field{[10]uint32{0x0245edb6, 0x02dbfdc6, 0x01a1abcb, 0x0118c0f3, 0x022fa119, 0x01c1a4c1, 0x033cbfe3, 0x0087dfcd, 0x019d924b, 0x000048f1}}},
+ {X: Field{[10]uint32{0x01fe696b, 0x0347ee75, 0x007a1fa1, 0x035773cf, 0x030042e2, 0x03e7b6ee, 0x02e81a06, 0x021af1c5, 0x007cb240, 0x0007bb88}}, Y: Field{[10]uint32{0x0029337b, 0x0159c39d, 0x0294ebb4, 0x00b82bf5, 0x037a0206, 0x01187257, 0x03196d12, 0x009a734a, 0x0119aef6, 0x00194b2f}}},
+ {X: Field{[10]uint32{0x039824d7, 0x01748f24, 0x01897af7, 0x0130d472, 0x036eb7b6, 0x03dfc2d5, 0x014a3e62, 0x01d423bb, 0x00f5455d, 0x0023650e}}, Y: Field{[10]uint32{0x0366489f, 0x0013d224, 0x0063d8a0, 0x02e0c9ac, 0x038fb9e2, 0x02adbbdb, 0x0260bd31, 0x01b0a8b2, 0x00734fee, 0x000c9878}}},
+ {X: Field{[10]uint32{0x03d4b84a, 0x02053105, 0x033e69a9, 0x0123c7d0, 0x00621ddf, 0x00a141c1, 0x022a492d, 0x00bf2c31, 0x01e58dc7, 0x003c4ea6}}, Y: Field{[10]uint32{0x03fd1c81, 0x0243f154, 0x01962859, 0x011c43cb, 0x02b6e37d, 0x038ff81b, 0x02b91cd1, 0x03a656a9, 0x00cd0f0b, 0x000cf0b2}}},
+ {X: Field{[10]uint32{0x00d713de, 0x0201c6a6, 0x026208e4, 0x03edd0a3, 0x039360c2, 0x03f95150, 0x00a912a2, 0x01510835, 0x00c558ee, 0x002dc949}}, Y: Field{[10]uint32{0x038350e9, 0x03f94966, 0x01fcb76f, 0x01bf9129, 0x010482d2, 0x0275a505, 0x002d182e, 0x00f91441, 0x039a8a28, 0x0013146c}}},
+ {X: Field{[10]uint32{0x0394c0d5, 0x0103c67b, 0x0257908d, 0x0005f15c, 0x01e1c0fc, 0x011b8844, 0x025ab2c3, 0x03ac5351, 0x033ea8a9, 0x003303a8}}, Y: Field{[10]uint32{0x03452fe6, 0x02f965eb, 0x03543dea, 0x0099844f, 0x03f6074f, 0x017ef998, 0x03dd203b, 0x0228bec8, 0x023b711c, 0x003e641e}}},
+ {X: Field{[10]uint32{0x023b2cb4, 0x01b0a4ff, 0x010402cc, 0x016fcdc8, 0x023049f3, 0x00484527, 0x01c76e38, 0x0049466b, 0x035a216d, 0x000f7917}}, Y: Field{[10]uint32{0x007eb02f, 0x038ceb0c, 0x0044cf61, 0x03996a1c, 0x02823e28, 0x025f2441, 0x0208aa4a, 0x02b77143, 0x0198405e, 0x002e8aa1}}},
+ {X: Field{[10]uint32{0x020c0222, 0x02f5d44a, 0x00b559cc, 0x03e720ba, 0x0016937e, 0x005c03cb, 0x00a18bfc, 0x0228111b, 0x024d9ca5, 0x002792b1}}, Y: Field{[10]uint32{0x00fdc9bb, 0x03dd9ce9, 0x0104e16c, 0x003cf6ae, 0x001c6203, 0x00ecc034, 0x000e8df6, 0x039d34c2, 0x011d9fe4, 0x0033a917}}},
+ {X: Field{[10]uint32{0x00e4e5bf, 0x011d9bdb, 0x005b1723, 0x021a8240, 0x029b67ca, 0x012241ab, 0x023fce37, 0x02fa1f07, 0x01c68959, 0x0021447c}}, Y: Field{[10]uint32{0x01789c08, 0x024a5130, 0x025262fc, 0x0226f14d, 0x032da878, 0x01aa8008, 0x01ddf7ec, 0x03521d30, 0x01cf91bc, 0x003b37fd}}},
+ {X: Field{[10]uint32{0x02735a1e, 0x030ec513, 0x01fa05f0, 0x0259af98, 0x004003e0, 0x018480bf, 0x038cddad, 0x015b2d1a, 0x03c0799b, 0x0019e2b1}}, Y: Field{[10]uint32{0x02f7c055, 0x00e97dc4, 0x01457a36, 0x02ccf4dc, 0x02597fff, 0x01c417a3, 0x030ff3d5, 0x00a16de9, 0x0233d9a5, 0x00021453}}},
+ {X: Field{[10]uint32{0x013258ab, 0x0159a28f, 0x014dc31b, 0x02062af0, 0x0157d242, 0x03852ad6, 0x03a1c72e, 0x018088b3, 0x012e81cf, 0x00231681}}, Y: Field{[10]uint32{0x022d0f8f, 0x038214c0, 0x004ade57, 0x03e70365, 0x0246dae8, 0x00130230, 0x01a80c79, 0x02f6841e, 0x034bb443, 0x001a0476}}},
+ {X: Field{[10]uint32{0x022aa9b8, 0x03a5dc20, 0x02f8ed7b, 0x00a4cd41, 0x0300006e, 0x0316b517, 0x026895d9, 0x003db375, 0x0114d868, 0x00192ea5}}, Y: Field{[10]uint32{0x02163565, 0x0347ee6d, 0x03b35e93, 0x01bda0c1, 0x025fef1b, 0x0066f927, 0x0207728c, 0x006f6edf, 0x0322a643, 0x002049cf}}},
+ {X: Field{[10]uint32{0x0391bcee, 0x030a82af, 0x00d84158, 0x023c7830, 0x03f5cf1d, 0x015afc4d, 0x0063cec5, 0x00d582f7, 0x0016debd, 0x0033bdfe}}, Y: Field{[10]uint32{0x01966b33, 0x0136a7e0, 0x036ac6bb, 0x000a85cb, 0x03a63e4b, 0x00074917, 0x023b339c, 0x021c0491, 0x00836374, 0x0019f9d3}}},
+ {X: Field{[10]uint32{0x0300bf19, 0x01cee750, 0x02a49471, 0x01daa23f, 0x0392b535, 0x02cd4ada, 0x0160fada, 0x02f76550, 0x03ef360c, 0x0007b203}}, Y: Field{[10]uint32{0x0107cefd, 0x03370730, 0x0207b671, 0x01fd8a56, 0x020146e7, 0x01eaefd7, 0x03a4958a, 0x00d034bc, 0x013756b5, 0x002bbbfa}}},
+ },
+ {
+ {X: Field{[10]uint32{0x0300bf19, 0x01cee750, 0x02a49471, 0x01daa23f, 0x0392b535, 0x02cd4ada, 0x0160fada, 0x02f76550, 0x03ef360c, 0x0007b203}}, Y: Field{[10]uint32{0x0107cefd, 0x03370730, 0x0207b671, 0x01fd8a56, 0x020146e7, 0x01eaefd7, 0x03a4958a, 0x00d034bc, 0x013756b5, 0x002bbbfa}}},
+ {X: Field{[10]uint32{0x014ff9e4, 0x03a01750, 0x010560da, 0x03dbaf62, 0x038e8462, 0x013f242e, 0x02eaa034, 0x012f1b2f, 0x023519f0, 0x0016f9fa}}, Y: Field{[10]uint32{0x03e0bdbb, 0x002c1e11, 0x02309403, 0x00c08466, 0x020e99c6, 0x0156adff, 0x03f890f6, 0x0398151d, 0x02c3f638, 0x000cbccb}}},
+ {X: Field{[10]uint32{0x02fea1f9, 0x01f2ef14, 0x012b94b1, 0x01423011, 0x01c4ff0b, 0x01c4194c, 0x00fddab6, 0x03cba0ef, 0x000a55d1, 0x0029b722}}, Y: Field{[10]uint32{0x03c345e9, 0x0305391e, 0x037e63b1, 0x036df9a3, 0x00057b89, 0x01ab2f14, 0x00683a11, 0x019f0c0e, 0x00547dc3, 0x001fbc6a}}},
+ {X: Field{[10]uint32{0x01db7bb8, 0x02d517d3, 0x03991e3f, 0x01927e14, 0x00d50028, 0x0237dfd7, 0x013fc869, 0x01399420, 0x01116eae, 0x00163c26}}, Y: Field{[10]uint32{0x025b2d6e, 0x031cd60b, 0x00302bde, 0x0018b45d, 0x02507ee4, 0x0118e019, 0x022ff761, 0x00446835, 0x002aaffe, 0x001f81c0}}},
+ {X: Field{[10]uint32{0x02d6c9b3, 0x01030fc1, 0x01637c8d, 0x03a1d219, 0x028c6c4c, 0x0229206e, 0x01c229c7, 0x011664af, 0x013fea42, 0x003f9aea}}, Y: Field{[10]uint32{0x0148bdfb, 0x031e23ea, 0x029b00c2, 0x02fc170b, 0x02d980f1, 0x01504ed5, 0x03b41b34, 0x0261cada, 0x00d74053, 0x001fba46}}},
+ {X: Field{[10]uint32{0x007985c4, 0x004f9dc7, 0x02b108b6, 0x01256e78, 0x00134bfc, 0x00bdd30d, 0x00284280, 0x026df395, 0x01caf7b5, 0x0008c82d}}, Y: Field{[10]uint32{0x002c6d44, 0x013c77d3, 0x02b8d4ff, 0x00847367, 0x03d96f10, 0x03e6f2a4, 0x00721b81, 0x03a50c63, 0x003dc88b, 0x0031e7e5}}},
+ {X: Field{[10]uint32{0x00f95151, 0x03c41cc3, 0x00b64422, 0x01b910b1, 0x01b96480, 0x030237b4, 0x020c8c2d, 0x0262fec0, 0x02f146fc, 0x00057578}}, Y: Field{[10]uint32{0x03f8ecf2, 0x0281f30b, 0x000f9482, 0x02e5f763, 0x01bb204f, 0x022408fe, 0x010e1097, 0x0353b1fe, 0x0231915f, 0x00296dcb}}},
+ {X: Field{[10]uint32{0x009a8e2c, 0x030581b3, 0x021c1413, 0x00693306, 0x03823d8d, 0x021832c3, 0x03cc04fd, 0x0242d8ce, 0x00b9b297, 0x002c3e79}}, Y: Field{[10]uint32{0x033d0db4, 0x0019b137, 0x00ee76c2, 0x000b05c7, 0x003350cc, 0x01bf78fc, 0x00bb0b90, 0x0379b507, 0x03f1843a, 0x00127a0a}}},
+ {X: Field{[10]uint32{0x016a5658, 0x02042e4a, 0x025643d7, 0x014907bd, 0x023814b2, 0x01eb8a6f, 0x007e0092, 0x0111eb63, 0x00725688, 0x0021303a}}, Y: Field{[10]uint32{0x001b80d1, 0x019ca6f6, 0x01fd22d9, 0x02607d3c, 0x02d3a61a, 0x0194dc97, 0x007e3190, 0x008b1282, 0x0380c160, 0x00099660}}},
+ {X: Field{[10]uint32{0x01d6fad4, 0x000bca76, 0x0124c5aa, 0x033c7268, 0x0094b357, 0x004f567d, 0x02d04ce2, 0x0247b23e, 0x0280670a, 0x0015b6d8}}, Y: Field{[10]uint32{0x019e0836, 0x02703f4d, 0x01cc867a, 0x02868c79, 0x03f5b8b2, 0x035a0c31, 0x03591016, 0x009c9143, 0x0394db57, 0x0036834e}}},
+ {X: Field{[10]uint32{0x00dc6a0f, 0x02ed7225, 0x01575375, 0x02450bf8, 0x02744341, 0x00b01df0, 0x01264e7a, 0x01cc7559, 0x01c71a93, 0x003fb5ac}}, Y: Field{[10]uint32{0x036fc7e0, 0x0235cb65, 0x00409ccb, 0x024c28ff, 0x031374d5, 0x0134eb88, 0x039181ae, 0x03fc2a11, 0x03e6b0ff, 0x002378aa}}},
+ {X: Field{[10]uint32{0x023a809c, 0x0382c2f2, 0x0346d79f, 0x03d75e60, 0x02dab662, 0x00952a27, 0x03cf97e4, 0x037d5afe, 0x02c83933, 0x0004979f}}, Y: Field{[10]uint32{0x009e70d9, 0x032402a5, 0x00a3dda8, 0x00bbc1ff, 0x031e4e3b, 0x015c868d, 0x03747caf, 0x032ce221, 0x02ede254, 0x003834fd}}},
+ {X: Field{[10]uint32{0x00e29355, 0x02217c46, 0x00d86db3, 0x024ce5c8, 0x002f1c8e, 0x0008ee76, 0x00ef8604, 0x032f1c3f, 0x01d992d3, 0x000a9a93}}, Y: Field{[10]uint32{0x01cc2872, 0x00f803ed, 0x0076c005, 0x00e99313, 0x01fe905a, 0x009a3e43, 0x00fdc81e, 0x01f831d8, 0x03ba7c4a, 0x00219df7}}},
+ {X: Field{[10]uint32{0x03681028, 0x00a54479, 0x01bb47f5, 0x017abf2e, 0x03196e23, 0x036bcf63, 0x033ce97d, 0x008386fc, 0x03f1185d, 0x00286b2c}}, Y: Field{[10]uint32{0x00a11c9d, 0x02918f85, 0x017881f1, 0x009c7e83, 0x0266eecb, 0x0223c316, 0x00475882, 0x02ca6da8, 0x03a61abb, 0x00156a20}}},
+ {X: Field{[10]uint32{0x0148dabf, 0x03ea23f8, 0x038eb1f9, 0x02e4d275, 0x01c1add2, 0x017eb9cd, 0x0364ec23, 0x01d51b65, 0x03026c92, 0x00390b64}}, Y: Field{[10]uint32{0x011e1361, 0x00b1d5a0, 0x03eb9d77, 0x01c0679d, 0x00327275, 0x037ce14c, 0x0338cebf, 0x0212c362, 0x022c6e2d, 0x001904e1}}},
+ {X: Field{[10]uint32{0x026642be, 0x02d64a0d, 0x03a889dd, 0x01c5f562, 0x03ce3490, 0x02037ea2, 0x0300af46, 0x0030be46, 0x038c0467, 0x00051a9d}}, Y: Field{[10]uint32{0x0183efd0, 0x00a5d20f, 0x01ed1d0b, 0x0074bdf9, 0x030aaa97, 0x02752ca1, 0x0269827f, 0x000a2b75, 0x00ec3354, 0x002cc638}}},
+ },
+ {
+ {X: Field{[10]uint32{0x026642be, 0x02d64a0d, 0x03a889dd, 0x01c5f562, 0x03ce3490, 0x02037ea2, 0x0300af46, 0x0030be46, 0x038c0467, 0x00051a9d}}, Y: Field{[10]uint32{0x0183efd0, 0x00a5d20f, 0x01ed1d0b, 0x0074bdf9, 0x030aaa97, 0x02752ca1, 0x0269827f, 0x000a2b75, 0x00ec3354, 0x002cc638}}},
+ {X: Field{[10]uint32{0x01de5cac, 0x008d955e, 0x0261911b, 0x00f1fb2c, 0x03eefc98, 0x02f34533, 0x0270b5c0, 0x01f89395, 0x00ce8a59, 0x0015d3bc}}, Y: Field{[10]uint32{0x035a4805, 0x026ba9b1, 0x0008cae5, 0x01efbc40, 0x011a260a, 0x01a6de11, 0x016ada05, 0x00671cef, 0x0130281f, 0x00026e66}}},
+ {X: Field{[10]uint32{0x03315443, 0x00e1ce09, 0x027299d9, 0x03552ba1, 0x013d79bb, 0x002850a8, 0x02c89982, 0x024d7fd0, 0x00040660, 0x003f1a5b}}, Y: Field{[10]uint32{0x03d28960, 0x003582d5, 0x011b1749, 0x0218426f, 0x01487ff4, 0x01a59ded, 0x030e1cdd, 0x01624aef, 0x03ebf83b, 0x00383389}}},
+ {X: Field{[10]uint32{0x020966d3, 0x030b5d09, 0x00645808, 0x0306bbfe, 0x0110a770, 0x026320d7, 0x0109397b, 0x03e7e176, 0x02799d8b, 0x0034f65f}}, Y: Field{[10]uint32{0x033c2e52, 0x03ae1420, 0x004eebdd, 0x0046fa37, 0x03b5e487, 0x03500eb4, 0x02a89275, 0x032579aa, 0x006376ba, 0x002376ed}}},
+ {X: Field{[10]uint32{0x02fdb4eb, 0x02cbd705, 0x02a79d1b, 0x01e718b9, 0x028fa3dd, 0x00afac24, 0x0256a356, 0x03cab46b, 0x0221ff4f, 0x0025d2bc}}, Y: Field{[10]uint32{0x01f6f484, 0x0270f7ea, 0x00234840, 0x00a8efff, 0x01111c57, 0x00b0243b, 0x011e43d0, 0x000f2993, 0x007d5350, 0x0015548e}}},
+ {X: Field{[10]uint32{0x006b5b56, 0x01857f5f, 0x00b607f3, 0x02abb622, 0x014185c8, 0x02fc8039, 0x03587ed3, 0x010ce337, 0x025700ef, 0x00283a21}}, Y: Field{[10]uint32{0x021d7518, 0x02f7944e, 0x00a51a16, 0x0075c216, 0x01526b87, 0x0214f7ab, 0x01a6b89b, 0x02b542e6, 0x02839fa9, 0x003d6e91}}},
+ {X: Field{[10]uint32{0x015aeee3, 0x0012b6d7, 0x00813739, 0x030d9963, 0x01e8284b, 0x01a49c31, 0x0121b3a6, 0x00e62c24, 0x019b49de, 0x0016eaad}}, Y: Field{[10]uint32{0x00f69717, 0x00a6bedc, 0x01eed82d, 0x0276af4c, 0x03215ddc, 0x007ff6bd, 0x01a00866, 0x01fa15b9, 0x03617c0f, 0x002295df}}},
+ {X: Field{[10]uint32{0x028c6d4b, 0x003ee4e5, 0x00c12004, 0x033e3d25, 0x02b2be78, 0x032efb82, 0x0174e782, 0x006261ee, 0x013288b3, 0x002c6a99}}, Y: Field{[10]uint32{0x0091ac51, 0x02798aba, 0x03cc383d, 0x02427588, 0x03100a1d, 0x0358ea0e, 0x004aa8e2, 0x0035c49a, 0x031c6081, 0x001fb581}}},
+ {X: Field{[10]uint32{0x01726890, 0x02c7913d, 0x03d15851, 0x03fab20d, 0x02e59025, 0x03e44283, 0x0032fceb, 0x0310f404, 0x03a7eb49, 0x003eda17}}, Y: Field{[10]uint32{0x0035783a, 0x03aa3cee, 0x039b2606, 0x004ba439, 0x014fa6cb, 0x02192e82, 0x01ca16d9, 0x0178ba1a, 0x0322c98e, 0x0035d437}}},
+ {X: Field{[10]uint32{0x02c6e5bb, 0x03b6bb18, 0x03e6ab7e, 0x03b8d5b3, 0x0324fdff, 0x024a965f, 0x00ab0b83, 0x00417cd6, 0x004108c7, 0x0009445b}}, Y: Field{[10]uint32{0x037e1321, 0x011cca83, 0x0272d4dc, 0x037d4730, 0x0377c508, 0x02057763, 0x037406dc, 0x01df807a, 0x0113e771, 0x0018361a}}},
+ {X: Field{[10]uint32{0x00bca48a, 0x012fc4ea, 0x0362f546, 0x03d3a0f7, 0x0178b4d5, 0x00a1fdc7, 0x0327b91c, 0x0265682a, 0x03f659e2, 0x00177963}}, Y: Field{[10]uint32{0x02fd41cd, 0x0253a034, 0x00aa9587, 0x0271383e, 0x003fe5bd, 0x014b4f21, 0x01a623c2, 0x026d54c2, 0x033d8035, 0x001a168e}}},
+ {X: Field{[10]uint32{0x00cedd26, 0x01977dd4, 0x015541d7, 0x0277a95c, 0x023cc8b9, 0x0258e78a, 0x01d8100f, 0x03aec984, 0x00372961, 0x002be212}}, Y: Field{[10]uint32{0x00e43f7f, 0x039eb4ec, 0x001708b6, 0x01219ea9, 0x0254549e, 0x02fb4be5, 0x00cbb88e, 0x01c0c34a, 0x03f97b16, 0x003715fe}}},
+ {X: Field{[10]uint32{0x01ef63b6, 0x00e0d139, 0x0182ebde, 0x0059cc6c, 0x005ab4d0, 0x02d3f072, 0x01b7fda3, 0x0062febc, 0x01cdead6, 0x001bc609}}, Y: Field{[10]uint32{0x01c655f3, 0x0211b3d1, 0x0145412c, 0x019009fe, 0x013c895a, 0x020ccd15, 0x034204d7, 0x02446e63, 0x027dd591, 0x003fc25f}}},
+ {X: Field{[10]uint32{0x02a50e2d, 0x02796c7e, 0x00bdc39f, 0x03b3dab9, 0x00b5a275, 0x00206b74, 0x0256e3ea, 0x0200d96c, 0x02605b88, 0x00148435}}, Y: Field{[10]uint32{0x02fda8ee, 0x026a24d6, 0x0286eb02, 0x03371909, 0x035a273d, 0x03fd9622, 0x0013c0e7, 0x034c04e7, 0x034a5dec, 0x000d7d99}}},
+ {X: Field{[10]uint32{0x00a63f3b, 0x0011fb7d, 0x039727b5, 0x000665e3, 0x0183203b, 0x039db1d9, 0x007115f5, 0x028ddad6, 0x0095f762, 0x00317b2e}}, Y: Field{[10]uint32{0x01005024, 0x03cdd1a1, 0x03ee5b53, 0x03b978c2, 0x008beb65, 0x03e48cfb, 0x02a4058f, 0x0207cdd3, 0x01181978, 0x00088949}}},
+ {X: Field{[10]uint32{0x0180eef9, 0x01aa1e4c, 0x039776d7, 0x008268a2, 0x028d0012, 0x02a81ec4, 0x03acebb1, 0x0397c1f8, 0x00f61d22, 0x003e9430}}, Y: Field{[10]uint32{0x034f2811, 0x03635f4f, 0x0213b38c, 0x024e95e8, 0x025e6832, 0x00a069a2, 0x02cd2872, 0x03aea6dc, 0x02922397, 0x001ae131}}},
+ },
+ {
+ {X: Field{[10]uint32{0x0180eef9, 0x01aa1e4c, 0x039776d7, 0x008268a2, 0x028d0012, 0x02a81ec4, 0x03acebb1, 0x0397c1f8, 0x00f61d22, 0x003e9430}}, Y: Field{[10]uint32{0x034f2811, 0x03635f4f, 0x0213b38c, 0x024e95e8, 0x025e6832, 0x00a069a2, 0x02cd2872, 0x03aea6dc, 0x02922397, 0x001ae131}}},
+ {X: Field{[10]uint32{0x007f5048, 0x016f88c6, 0x006d459c, 0x0349120e, 0x02e72328, 0x00ba420d, 0x00140fe0, 0x01d381e0, 0x02ee6190, 0x0018e593}}, Y: Field{[10]uint32{0x01309df8, 0x028a1362, 0x02c84383, 0x024d3779, 0x013d580b, 0x00d2fef2, 0x01ff9b1c, 0x033d068e, 0x033a6b89, 0x000edb3e}}},
+ {X: Field{[10]uint32{0x01da5e12, 0x03838ce4, 0x00b2971e, 0x0100572b, 0x02a9c60a, 0x028728ad, 0x02329f93, 0x038c6f36, 0x023c4379, 0x003dd40b}}, Y: Field{[10]uint32{0x0385f4eb, 0x02e717a0, 0x00ebc7a4, 0x00bbdc97, 0x007b86d3, 0x00f59c81, 0x0170945c, 0x03ebf566, 0x01edd67c, 0x000f15fd}}},
+ {X: Field{[10]uint32{0x02db2a65, 0x012e87ae, 0x01a31f81, 0x00ab4f2f, 0x01afd7f1, 0x003f27dd, 0x01469ddf, 0x02df88b4, 0x025b4d15, 0x00168f38}}, Y: Field{[10]uint32{0x01327f1d, 0x005c33c7, 0x03e8ed8b, 0x030f6097, 0x033ee28b, 0x03cfe66b, 0x03a6dbfb, 0x017d8e1c, 0x025b92e0, 0x0022cd04}}},
+ {X: Field{[10]uint32{0x00b7d105, 0x0124cc44, 0x03c9f207, 0x012e5395, 0x03f4ca5c, 0x038d156c, 0x024f6624, 0x01618a8e, 0x00f983ae, 0x0004bf9e}}, Y: Field{[10]uint32{0x03794a60, 0x02b1bee7, 0x010b8458, 0x01975bba, 0x031dece2, 0x0269f2dd, 0x02b5aa19, 0x02f3dde1, 0x01a338d6, 0x000818bc}}},
+ {X: Field{[10]uint32{0x0232478e, 0x00c481cf, 0x027ed237, 0x023caa6e, 0x0024ab31, 0x03cccac8, 0x02c6b7f3, 0x004e203f, 0x01d60106, 0x00350804}}, Y: Field{[10]uint32{0x004e88d4, 0x0015a074, 0x00cc31ce, 0x00bcd542, 0x036fb24b, 0x012fe11e, 0x02d5f5f4, 0x0138306c, 0x00e9a37d, 0x002eb975}}},
+ {X: Field{[10]uint32{0x020c5d05, 0x00760ce7, 0x02daff62, 0x0142a95c, 0x02480e6c, 0x020212c6, 0x004bb102, 0x011cf563, 0x031347df, 0x001daab0}}, Y: Field{[10]uint32{0x01ece63e, 0x01866dd4, 0x02ee3556, 0x033c0579, 0x034b1225, 0x00809897, 0x02f32c83, 0x01c3beaf, 0x02ef0d5c, 0x003bd55d}}},
+ {X: Field{[10]uint32{0x029f44d0, 0x01ccdd52, 0x03a0016a, 0x01b9a6a3, 0x0385dbcb, 0x0037907f, 0x010be34f, 0x00fb69a4, 0x01af98f9, 0x00173981}}, Y: Field{[10]uint32{0x01d30105, 0x0017cd22, 0x00cc6c0d, 0x02fe8cbb, 0x00ab3cb1, 0x0071db16, 0x0256bd03, 0x01aff9ee, 0x039bec22, 0x00133773}}},
+ {X: Field{[10]uint32{0x0053c086, 0x01bd217f, 0x01aec9e2, 0x00d27268, 0x00c6b55c, 0x017a2041, 0x0260c314, 0x0173321f, 0x025bbe5c, 0x002998ff}}, Y: Field{[10]uint32{0x01016201, 0x03140ca9, 0x00fc0e69, 0x0295ce65, 0x03991ecc, 0x02608f70, 0x01b102c8, 0x007efd74, 0x017f6b21, 0x002d5066}}},
+ {X: Field{[10]uint32{0x01f40840, 0x0035a472, 0x0359eaa2, 0x010a7954, 0x03a71df4, 0x00e290d1, 0x00eaa239, 0x03dd07f9, 0x0121121f, 0x00380d1b}}, Y: Field{[10]uint32{0x03d7ce72, 0x0286abfc, 0x033edc39, 0x0269baf4, 0x02269cd3, 0x03b9ee8a, 0x016d4a97, 0x02255b5d, 0x03713c99, 0x000fb9a0}}},
+ {X: Field{[10]uint32{0x03758574, 0x02007b52, 0x01c6e9ad, 0x02250d3e, 0x03d83266, 0x02b8af7c, 0x03ca1027, 0x0336096d, 0x027a0206, 0x0037a554}}, Y: Field{[10]uint32{0x0367232a, 0x037c7f3e, 0x02deb4b7, 0x00145568, 0x03bae6a1, 0x03c5a7b5, 0x021dc847, 0x03453938, 0x0056ac93, 0x001334f8}}},
+ {X: Field{[10]uint32{0x016ddcd3, 0x01c8dee8, 0x0003556a, 0x000087a8, 0x03044b11, 0x02e1d86b, 0x035beb6c, 0x0267b7de, 0x0136f64e, 0x0006b86b}}, Y: Field{[10]uint32{0x027eb2b7, 0x0118674b, 0x0213c7cc, 0x0377f2ed, 0x0159616a, 0x00841122, 0x0074f775, 0x02488167, 0x014987a0, 0x001c0581}}},
+ {X: Field{[10]uint32{0x0185474f, 0x026e2aff, 0x00668d77, 0x00ae258d, 0x02894c4a, 0x011e16ba, 0x02dccbe4, 0x00ab76ff, 0x00e066d3, 0x002369af}}, Y: Field{[10]uint32{0x017b4ef7, 0x03e71f4f, 0x01d7a5fd, 0x024c176f, 0x010b1cc5, 0x01c77ffc, 0x03ddf5d0, 0x0353fe13, 0x006af31e, 0x0004ff1b}}},
+ {X: Field{[10]uint32{0x029de533, 0x03ffe242, 0x02e3c80f, 0x019c08d5, 0x002a9bb5, 0x0191c49d, 0x02979f6a, 0x0243e483, 0x01123337, 0x00044e2b}}, Y: Field{[10]uint32{0x01332573, 0x02dc253f, 0x040006a8, 0x002d1528, 0x03f679bd, 0x03e569f7, 0x030dc3e9, 0x0076521b, 0x01b75875, 0x002cd549}}},
+ {X: Field{[10]uint32{0x01d042ea, 0x0350959f, 0x02fd06b5, 0x0299163a, 0x02ebfa26, 0x00cf24ef, 0x03d6649e, 0x02e8e6c6, 0x00c7cfb3, 0x001cca6b}}, Y: Field{[10]uint32{0x035c94a1, 0x0233fb0b, 0x034f0ada, 0x01cc77ea, 0x02184897, 0x03eada3b, 0x0284e794, 0x01bc5224, 0x013541b7, 0x00249c92}}},
+ {X: Field{[10]uint32{0x03067ec2, 0x00f4cad7, 0x025220e5, 0x02d756ee, 0x021a288a, 0x03623a10, 0x025bf6b7, 0x006846c6, 0x01d0ca72, 0x00368758}}, Y: Field{[10]uint32{0x02d836f1, 0x03ee83c6, 0x0348a655, 0x026749e6, 0x0166a738, 0x0072478a, 0x00076616, 0x00c1b1e7, 0x015a7c99, 0x002055fd}}},
+ },
+ {
+ {X: Field{[10]uint32{0x03067ec2, 0x00f4cad7, 0x025220e5, 0x02d756ee, 0x021a288a, 0x03623a10, 0x025bf6b7, 0x006846c6, 0x01d0ca72, 0x00368758}}, Y: Field{[10]uint32{0x02d836f1, 0x03ee83c6, 0x0348a655, 0x026749e6, 0x0166a738, 0x0072478a, 0x00076616, 0x00c1b1e7, 0x015a7c99, 0x002055fd}}},
+ {X: Field{[10]uint32{0x00d3c369, 0x0084348b, 0x02934b3c, 0x020f87e3, 0x02236054, 0x03704a0e, 0x005d5f61, 0x0311137e, 0x000b4ef4, 0x00271ef8}}, Y: Field{[10]uint32{0x02329515, 0x038ffae8, 0x01cbd29e, 0x00e859da, 0x003e3115, 0x03390052, 0x0226d455, 0x0034814a, 0x00de74b2, 0x00248830}}},
+ {X: Field{[10]uint32{0x0295a8db, 0x021dccbe, 0x036f615d, 0x03111e74, 0x03b83ec0, 0x0246c5c8, 0x02966469, 0x03741067, 0x01a46303, 0x0038fa43}}, Y: Field{[10]uint32{0x030d1cf9, 0x01b3dfc6, 0x00d3d101, 0x025f3261, 0x02fbb1ef, 0x01c0b9da, 0x00faa90c, 0x005e2ec0, 0x03c0056c, 0x003ef94e}}},
+ {X: Field{[10]uint32{0x03b8c9e3, 0x03364b5e, 0x0178e76b, 0x029c1504, 0x0174dd06, 0x02333124, 0x01664b23, 0x0098eed5, 0x03f42825, 0x0003f360}}, Y: Field{[10]uint32{0x034aa9ad, 0x03557ef7, 0x03bf4e86, 0x0337c589, 0x03adbeae, 0x017f6da0, 0x018232de, 0x03ef3b47, 0x01cfeac5, 0x001b02f0}}},
+ {X: Field{[10]uint32{0x012ee214, 0x02bf5904, 0x0154017a, 0x025e564c, 0x00782a4e, 0x01703007, 0x03650dfd, 0x035dd6a2, 0x02c732e3, 0x0027d3ff}}, Y: Field{[10]uint32{0x0085f37a, 0x01108894, 0x000283ef, 0x024c2f22, 0x019719b6, 0x035d71a7, 0x0296682f, 0x00bcb983, 0x02e1318e, 0x0018e738}}},
+ {X: Field{[10]uint32{0x001d0ce6, 0x030f72d5, 0x00d41f4f, 0x028b3d66, 0x02748992, 0x00e817ec, 0x0214cce3, 0x02a504bb, 0x022937f1, 0x00050a56}}, Y: Field{[10]uint32{0x0338bb86, 0x0206a2b5, 0x0241a52a, 0x01806d74, 0x01310895, 0x011020ec, 0x0031c448, 0x0141c46c, 0x0363df11, 0x003fa9d4}}},
+ {X: Field{[10]uint32{0x0361a0a5, 0x01a05147, 0x00e3ef8b, 0x0386cf05, 0x004b1253, 0x03d102cb, 0x031a0a41, 0x012b06c5, 0x022d4113, 0x0010c7d8}}, Y: Field{[10]uint32{0x00cef899, 0x01edff9e, 0x0177246b, 0x0010d559, 0x0241baaa, 0x01c8ea9c, 0x02de6519, 0x010e3db5, 0x027fe7aa, 0x0028a60c}}},
+ {X: Field{[10]uint32{0x026b64f1, 0x00e6512c, 0x02d995cf, 0x00a3d51d, 0x01b7edcf, 0x01447967, 0x00da4c62, 0x03c04353, 0x007f1b58, 0x001c5d50}}, Y: Field{[10]uint32{0x024234d5, 0x039fbeac, 0x01d2a426, 0x02ddd11c, 0x02b01fe8, 0x00d3321b, 0x02d34011, 0x035543cd, 0x014344e3, 0x0010ed15}}},
+ {X: Field{[10]uint32{0x03748503, 0x0099f559, 0x028e7cac, 0x011dcc4c, 0x000e6e0e, 0x03e284ab, 0x0362ef39, 0x023ee1b2, 0x02ddece7, 0x00264f6e}}, Y: Field{[10]uint32{0x02b0cee2, 0x01cd84df, 0x01aa49ba, 0x03da6e2b, 0x0217f87b, 0x01e87d46, 0x01f78478, 0x03bbade1, 0x01ee8569, 0x0029486a}}},
+ {X: Field{[10]uint32{0x03421e21, 0x0136ea65, 0x022f4e46, 0x0288f3bf, 0x003aca86, 0x010633eb, 0x00289212, 0x005dcaea, 0x006b84e5, 0x0003083a}}, Y: Field{[10]uint32{0x01aa6a45, 0x020f5928, 0x01349dfc, 0x03d96f42, 0x0386ee76, 0x0386696d, 0x01237a11, 0x02b6b068, 0x01bf76d0, 0x003d587a}}},
+ {X: Field{[10]uint32{0x02d23d80, 0x02889d69, 0x00d478de, 0x007c991d, 0x00e10bd1, 0x024258b0, 0x039431cb, 0x017a968c, 0x02ba06ad, 0x001d7c5e}}, Y: Field{[10]uint32{0x000dd57e, 0x02a16c0a, 0x02590986, 0x03b6ed3a, 0x02372ffb, 0x0066d8a4, 0x03c7d0bf, 0x026a031f, 0x02fe1563, 0x00281e98}}},
+ {X: Field{[10]uint32{0x03344f7f, 0x0233e712, 0x020c4c71, 0x03f52339, 0x00ee8b89, 0x0349b504, 0x017e32cb, 0x0382b83a, 0x004bd972, 0x000d5332}}, Y: Field{[10]uint32{0x01db82d6, 0x02c46ba9, 0x020ec7e4, 0x0006180b, 0x018e36c6, 0x026ea215, 0x010b493f, 0x01ad759d, 0x0329291c, 0x0027012f}}},
+ {X: Field{[10]uint32{0x01ad3413, 0x02e6db58, 0x01684ae2, 0x00100c9f, 0x028db9c0, 0x032e1ede, 0x0295f485, 0x03d2829b, 0x015e11d9, 0x00199e15}}, Y: Field{[10]uint32{0x02bca672, 0x0204081f, 0x02660124, 0x0054eb71, 0x02a6ce2d, 0x01f2f7e7, 0x01266d92, 0x03d91a49, 0x023de278, 0x00144376}}},
+ {X: Field{[10]uint32{0x0102b4b1, 0x01ed7e0d, 0x00a44748, 0x01535b02, 0x01c4af25, 0x018884ea, 0x0086c0f2, 0x0250a101, 0x0018da0f, 0x002b3bc5}}, Y: Field{[10]uint32{0x02e85bfc, 0x007e9e59, 0x0078c6f8, 0x0242b7c6, 0x012a3f62, 0x03625c73, 0x00017b53, 0x01e93781, 0x019fd7e8, 0x003134d5}}},
+ {X: Field{[10]uint32{0x02cc8563, 0x002bd6c1, 0x001eaac0, 0x016fff84, 0x009224df, 0x00658da2, 0x02c82bd8, 0x01dd22b6, 0x02362cda, 0x003af712}}, Y: Field{[10]uint32{0x0394ccfa, 0x005ef3a8, 0x00f9249b, 0x02492481, 0x03bec407, 0x033753c1, 0x01ee35e6, 0x034d7e6c, 0x0144e856, 0x0019668c}}},
+ {X: Field{[10]uint32{0x01064e13, 0x00ec1843, 0x01e062a7, 0x038111bc, 0x0215311d, 0x023f5059, 0x015ff98e, 0x001a41c8, 0x02ff0c97, 0x002a38a0}}, Y: Field{[10]uint32{0x01f4cc0c, 0x01f1cc44, 0x02bd6cef, 0x00f94375, 0x008b679a, 0x02c94562, 0x03b7f3c5, 0x007026af, 0x015b8db8, 0x001fe5cd}}},
+ },
+ {
+ {X: Field{[10]uint32{0x01064e13, 0x00ec1843, 0x01e062a7, 0x038111bc, 0x0215311d, 0x023f5059, 0x015ff98e, 0x001a41c8, 0x02ff0c97, 0x002a38a0}}, Y: Field{[10]uint32{0x01f4cc0c, 0x01f1cc44, 0x02bd6cef, 0x00f94375, 0x008b679a, 0x02c94562, 0x03b7f3c5, 0x007026af, 0x015b8db8, 0x001fe5cd}}},
+ {X: Field{[10]uint32{0x037653a1, 0x03ae7a9f, 0x027c1c15, 0x02a9d4f5, 0x03efbe9e, 0x03a99b98, 0x0076f805, 0x02bb2f2e, 0x02e7e27f, 0x0032b1bc}}, Y: Field{[10]uint32{0x02c5e556, 0x0042b43f, 0x003a068c, 0x0395a204, 0x0081e83a, 0x010a8d14, 0x01b65d9a, 0x01bc6533, 0x02e5e2aa, 0x003df505}}},
+ {X: Field{[10]uint32{0x023979b5, 0x00666c2e, 0x0029e22a, 0x023799fa, 0x00ba288f, 0x03b90394, 0x0337f0b1, 0x03898c9f, 0x03c5cdad, 0x002b8881}}, Y: Field{[10]uint32{0x0050fa6f, 0x00f359a1, 0x0388968f, 0x01f4df53, 0x00fca87b, 0x00eb5c18, 0x00c92452, 0x027dc6b5, 0x02510c07, 0x003aa47f}}},
+ {X: Field{[10]uint32{0x0224003d, 0x03d2ac21, 0x00b11cc9, 0x00a508e3, 0x014ab767, 0x016390c9, 0x03c5932e, 0x03481bbe, 0x0246ee37, 0x0039b7f7}}, Y: Field{[10]uint32{0x0216b93b, 0x02194388, 0x017dd754, 0x03a949ff, 0x003b1ce5, 0x0223e488, 0x02f48f7b, 0x00e5263c, 0x03b7be91, 0x0021c9ec}}},
+ {X: Field{[10]uint32{0x02fca824, 0x00064403, 0x024fae41, 0x013fa885, 0x01e0be0c, 0x01961518, 0x02c54100, 0x02b39673, 0x010cad72, 0x0032e37b}}, Y: Field{[10]uint32{0x03227361, 0x002f4163, 0x01742f14, 0x037f1e4c, 0x0096ad1f, 0x028b32f1, 0x0316c487, 0x0223216c, 0x008f740d, 0x000ce940}}},
+ {X: Field{[10]uint32{0x00e4dd6a, 0x0384787b, 0x01cef559, 0x02728c88, 0x020a00e4, 0x02359311, 0x01eca37e, 0x00ad92f2, 0x00f7b279, 0x001276f9}}, Y: Field{[10]uint32{0x029e3eae, 0x02dca90a, 0x03b69b13, 0x00bf2816, 0x021c3855, 0x01a48956, 0x01fe33db, 0x02071cb1, 0x02984704, 0x002e2d5c}}},
+ {X: Field{[10]uint32{0x03cbd327, 0x006d368e, 0x02aee941, 0x01488792, 0x02b04e08, 0x01f9dbb5, 0x0294900d, 0x020d9c23, 0x03298af1, 0x002c314e}}, Y: Field{[10]uint32{0x017be436, 0x01af128b, 0x02a0f161, 0x0031d18d, 0x03d82a22, 0x02d9acab, 0x00f6a601, 0x01fa858e, 0x03401fbd, 0x003b8aa5}}},
+ {X: Field{[10]uint32{0x00dce109, 0x00440d52, 0x011d3b0e, 0x005273c8, 0x02e250e3, 0x02b25820, 0x0240cfc7, 0x0208f59a, 0x009cd9a6, 0x000f1382}}, Y: Field{[10]uint32{0x0219aeea, 0x03d9648e, 0x02697e2b, 0x010b65ff, 0x039579e1, 0x015d934d, 0x0357bca1, 0x0246d201, 0x02669fe1, 0x0010feef}}},
+ {X: Field{[10]uint32{0x03b836a1, 0x03bed8e5, 0x01ef7de6, 0x017fdd9e, 0x02c80640, 0x039dfd49, 0x018862ec, 0x02e48353, 0x033f329d, 0x001bdae9}}, Y: Field{[10]uint32{0x02832b84, 0x037cbec1, 0x03f934db, 0x014a2387, 0x00d8990c, 0x016fba70, 0x030b8a40, 0x030638f6, 0x0217ff5f, 0x00371de2}}},
+ {X: Field{[10]uint32{0x025d5241, 0x015adfe0, 0x012f6680, 0x032a482f, 0x02563ed7, 0x002cfaa2, 0x00277d34, 0x019d394d, 0x01ada779, 0x003e3307}}, Y: Field{[10]uint32{0x0070e10a, 0x02bc0e3c, 0x00bd4960, 0x01b187ac, 0x0052c2d7, 0x01459bc1, 0x03e892fa, 0x01c3facc, 0x024410b1, 0x0004f793}}},
+ {X: Field{[10]uint32{0x02b39ede, 0x038d0827, 0x012d42ae, 0x00cb5c18, 0x00310880, 0x004090d8, 0x00ff467e, 0x00abd2ef, 0x027dc742, 0x001f51c6}}, Y: Field{[10]uint32{0x03f6607e, 0x02f3652a, 0x028fd0c9, 0x01f4708a, 0x027795cf, 0x03ff21be, 0x0382231e, 0x0215941e, 0x0319f3a6, 0x0000129e}}},
+ {X: Field{[10]uint32{0x00e5f03a, 0x022d6f7d, 0x006d54fe, 0x03ac7858, 0x0196565f, 0x035f7f8d, 0x03dcfb33, 0x02f8cdcd, 0x03dd0289, 0x002030d3}}, Y: Field{[10]uint32{0x023ca504, 0x03d151bf, 0x005cb117, 0x03bc7cc9, 0x03d30b2a, 0x01f72680, 0x02db5700, 0x007b3557, 0x0056a78c, 0x00091f82}}},
+ {X: Field{[10]uint32{0x025eb1c1, 0x03527895, 0x01c5aa56, 0x019f36b9, 0x027fcd75, 0x0260bc25, 0x030fcc31, 0x00feb1c1, 0x0163f9b7, 0x003c0094}}, Y: Field{[10]uint32{0x01de2ae0, 0x01f5c11b, 0x011e57da, 0x01735b34, 0x018576ff, 0x0289abfb, 0x026b4a5d, 0x00837d31, 0x01e8883d, 0x000153aa}}},
+ {X: Field{[10]uint32{0x0214f422, 0x00281872, 0x00deca61, 0x03b67931, 0x00b383e4, 0x0136f1ef, 0x03e80221, 0x037cf52b, 0x02e897a9, 0x001b3b46}}, Y: Field{[10]uint32{0x004fc091, 0x00f690f6, 0x00932ae7, 0x0321e6a7, 0x008ca102, 0x02f9ae6e, 0x0095a728, 0x0239eaed, 0x02eb1b0f, 0x00096222}}},
+ {X: Field{[10]uint32{0x02c32c64, 0x00d424f6, 0x00bf84cf, 0x000fb2b9, 0x020e36fe, 0x03d1dc57, 0x0304e950, 0x008ea83d, 0x000001ed, 0x002b0485}}, Y: Field{[10]uint32{0x02b1a867, 0x00ab6eb7, 0x03089881, 0x00e9694f, 0x03ed5a5d, 0x00c12668, 0x030b6957, 0x022ebc61, 0x00cbac33, 0x0033a3af}}},
+ {X: Field{[10]uint32{0x0319497c, 0x00e0b7a0, 0x008c022f, 0x03e94494, 0x015d59b1, 0x0244f2ac, 0x039e56e6, 0x02161cb4, 0x03b9c9a2, 0x0005d294}}, Y: Field{[10]uint32{0x039afa73, 0x0284eb01, 0x0054383d, 0x007632e6, 0x02646b3a, 0x0311fe79, 0x034155f2, 0x0270595e, 0x0037abfc, 0x00333277}}},
+ },
+ {
+ {X: Field{[10]uint32{0x0319497c, 0x00e0b7a0, 0x008c022f, 0x03e94494, 0x015d59b1, 0x0244f2ac, 0x039e56e6, 0x02161cb4, 0x03b9c9a2, 0x0005d294}}, Y: Field{[10]uint32{0x039afa73, 0x0284eb01, 0x0054383d, 0x007632e6, 0x02646b3a, 0x0311fe79, 0x034155f2, 0x0270595e, 0x0037abfc, 0x00333277}}},
+ {X: Field{[10]uint32{0x000dd273, 0x0368dbe1, 0x001115f5, 0x00383914, 0x03d53d28, 0x006e4ba8, 0x007071ef, 0x01aed8c3, 0x02e79694, 0x000839b8}}, Y: Field{[10]uint32{0x0346b593, 0x033f456e, 0x0293cc07, 0x01e4f6a1, 0x01811ec9, 0x01e1d195, 0x00ba1ad9, 0x01679128, 0x02fe4f15, 0x0034eb5e}}},
+ {X: Field{[10]uint32{0x014b8367, 0x0201cf5d, 0x006bfe94, 0x01f59f54, 0x01b775b7, 0x0210da97, 0x00aa5d45, 0x0149b903, 0x014ae446, 0x00179682}}, Y: Field{[10]uint32{0x01ce85ca, 0x00a6a764, 0x03fa4453, 0x03bcf797, 0x02796aa9, 0x01ca92de, 0x00901f15, 0x0178170b, 0x00c9a479, 0x002ba2be}}},
+ {X: Field{[10]uint32{0x02077674, 0x0153cc06, 0x00ca3e7b, 0x004db309, 0x0035ae68, 0x039c76dc, 0x00280a07, 0x01476ea0, 0x0024d7a3, 0x0023832a}}, Y: Field{[10]uint32{0x02b7ed98, 0x0132fb04, 0x010290b8, 0x00674be4, 0x03cff604, 0x0298b3d5, 0x0169d24d, 0x00b50771, 0x02075919, 0x00013b15}}},
+ {X: Field{[10]uint32{0x03b10d9d, 0x0215e4e5, 0x00fcaf19, 0x0062747e, 0x01e6a52f, 0x00432e0b, 0x02ccb833, 0x00ba1677, 0x00adb970, 0x00003538}}, Y: Field{[10]uint32{0x0140dced, 0x0040121c, 0x01923e82, 0x0325e38b, 0x030b5898, 0x00c8a1fd, 0x012f8464, 0x0190251f, 0x01981837, 0x0021ee00}}},
+ {X: Field{[10]uint32{0x00bcad59, 0x017a0d83, 0x02aa07b0, 0x00169382, 0x017c845a, 0x017e40bc, 0x0217c85a, 0x00d801ea, 0x001152ac, 0x000bb5db}}, Y: Field{[10]uint32{0x00ea66fe, 0x031ea271, 0x0394114a, 0x0004c29f, 0x015f72c6, 0x0205d9fb, 0x01a6eaec, 0x017c88b3, 0x014043b8, 0x0018e7d3}}},
+ {X: Field{[10]uint32{0x009caee8, 0x00469827, 0x030bb208, 0x0116c689, 0x03632e20, 0x03b12999, 0x037a19ae, 0x01d303db, 0x021368ef, 0x0000d994}}, Y: Field{[10]uint32{0x0372b711, 0x03b1a8ed, 0x03a7f0a9, 0x0224ca56, 0x0101cba9, 0x02e9a511, 0x009fc681, 0x037b6665, 0x032b2a93, 0x0007c630}}},
+ {X: Field{[10]uint32{0x00192441, 0x02bf17aa, 0x034afe96, 0x00868c86, 0x01afdb58, 0x038f59b0, 0x03a63553, 0x020b4717, 0x00da51c9, 0x003deed4}}, Y: Field{[10]uint32{0x005165ae, 0x0103a875, 0x0074bbc6, 0x007eef13, 0x01b1cfdc, 0x03799217, 0x01bc63bd, 0x029498c4, 0x03e30334, 0x0024f30e}}},
+ {X: Field{[10]uint32{0x0046c85c, 0x03e5d465, 0x0006353f, 0x00239807, 0x02de37de, 0x00fdb1ba, 0x00676c45, 0x023c7ea8, 0x01056fdb, 0x00039624}}, Y: Field{[10]uint32{0x0148972e, 0x031df9c8, 0x01add5f6, 0x013a0337, 0x00f49023, 0x03d20626, 0x007418ba, 0x01ef683b, 0x005f11fa, 0x0038e692}}},
+ {X: Field{[10]uint32{0x015ae087, 0x01240401, 0x00a57e03, 0x01be8d25, 0x00c671b9, 0x010e8544, 0x03945fb7, 0x029660b4, 0x03155b6e, 0x0028d199}}, Y: Field{[10]uint32{0x02887627, 0x03cd98c8, 0x030bccb3, 0x01bc8e53, 0x01c53eab, 0x028a8c14, 0x02fe9a1a, 0x0316f637, 0x03a5e56b, 0x00087297}}},
+ {X: Field{[10]uint32{0x022e1259, 0x022b7cf0, 0x0362aff1, 0x02901a04, 0x01931739, 0x0001dddc, 0x02cf5faa, 0x0118fcad, 0x026d26f1, 0x0029d004}}, Y: Field{[10]uint32{0x034a5f43, 0x01c5c90c, 0x02dad5f7, 0x01d4ec75, 0x0117865e, 0x019f1fb9, 0x005f174a, 0x03c7fc6c, 0x03baf194, 0x00016a7f}}},
+ {X: Field{[10]uint32{0x00b84b48, 0x03d15c79, 0x017ea830, 0x031e67a0, 0x0091adf4, 0x03505fdc, 0x0110f577, 0x0293d506, 0x030e7d45, 0x0017ec77}}, Y: Field{[10]uint32{0x03be8eb8, 0x037a9a8d, 0x021ad77e, 0x02421cfc, 0x020629c3, 0x039b4960, 0x00f4646f, 0x013527ef, 0x03bcbc3c, 0x000854be}}},
+ {X: Field{[10]uint32{0x0308f1fe, 0x0285e8f2, 0x007bfd88, 0x039c2e82, 0x03d7ce7e, 0x0360b45d, 0x01405765, 0x01d39299, 0x00216d94, 0x0021f92e}}, Y: Field{[10]uint32{0x02d5e2ec, 0x01d2b26b, 0x02d9d75f, 0x036f59e1, 0x006e2f23, 0x00be30b3, 0x03d7f8ea, 0x01233b35, 0x02c07663, 0x003dd38e}}},
+ {X: Field{[10]uint32{0x01b8f255, 0x01b661fe, 0x00d21114, 0x039d24a8, 0x01e77d43, 0x02aa0bfa, 0x022e4608, 0x02e29058, 0x017478e1, 0x00256ef6}}, Y: Field{[10]uint32{0x00361439, 0x038ffa0a, 0x03fc1010, 0x02bbf1dd, 0x00f2ba72, 0x003cb436, 0x032c208f, 0x031dff7b, 0x02d129e3, 0x002fb50e}}},
+ {X: Field{[10]uint32{0x01c4d15c, 0x01c039a8, 0x0274b9a8, 0x02fc1f03, 0x00105ea7, 0x00495291, 0x02c22c0c, 0x01e696a4, 0x03463fea, 0x000d7a86}}, Y: Field{[10]uint32{0x033fe1ea, 0x00e6ebdf, 0x0095edc9, 0x0280c194, 0x005d633a, 0x01d34ec6, 0x008fa5fd, 0x034b35e2, 0x01651b9e, 0x002b4864}}},
+ {X: Field{[10]uint32{0x0075b7ba, 0x03f7fc25, 0x00b3d884, 0x00c39246, 0x03e039e7, 0x01406336, 0x03e57edf, 0x01e170f4, 0x02981943, 0x002564e5}}, Y: Field{[10]uint32{0x0124f2fd, 0x022afe1d, 0x01385e9b, 0x019321c2, 0x009c653f, 0x02e735a1, 0x020386a4, 0x00c7762e, 0x012888c3, 0x000b9f95}}},
+ },
+ {
+ {X: Field{[10]uint32{0x0075b7ba, 0x03f7fc25, 0x00b3d884, 0x00c39246, 0x03e039e7, 0x01406336, 0x03e57edf, 0x01e170f4, 0x02981943, 0x002564e5}}, Y: Field{[10]uint32{0x0124f2fd, 0x022afe1d, 0x01385e9b, 0x019321c2, 0x009c653f, 0x02e735a1, 0x020386a4, 0x00c7762e, 0x012888c3, 0x000b9f95}}},
+ {X: Field{[10]uint32{0x03c8f53b, 0x01d6a502, 0x007c7072, 0x01ace45d, 0x02d70222, 0x035cf657, 0x0232ca7d, 0x029f7abf, 0x0005ff0d, 0x0032fb85}}, Y: Field{[10]uint32{0x00c87f45, 0x00b9ac9e, 0x03728292, 0x03da049b, 0x030d9ff4, 0x02e0a533, 0x01f3e689, 0x03e40ad4, 0x034f4e75, 0x003d8847}}},
+ {X: Field{[10]uint32{0x03d69985, 0x03177643, 0x032aea09, 0x032db77d, 0x009f309c, 0x02f333c5, 0x00f690df, 0x00bdf9e2, 0x0275ceb7, 0x0002ba5d}}, Y: Field{[10]uint32{0x0009a003, 0x023ad045, 0x01aff89c, 0x0105ebb8, 0x01d0b99d, 0x01469531, 0x038dfee0, 0x023453a6, 0x0173f6e4, 0x00244866}}},
+ {X: Field{[10]uint32{0x00b311dd, 0x01f222c5, 0x01b9cf37, 0x02bbef5c, 0x003de3be, 0x02e894b8, 0x0180bfa0, 0x03d6b375, 0x02d28faa, 0x002b756e}}, Y: Field{[10]uint32{0x01d6c38d, 0x0260bcd2, 0x01b8902f, 0x039d9a6e, 0x0352d4e1, 0x00d66053, 0x00e434f8, 0x030e965d, 0x00f4da3d, 0x003a710f}}},
+ {X: Field{[10]uint32{0x01262b90, 0x0064f7f6, 0x0029a9dc, 0x0307f8f3, 0x03b723c4, 0x02009747, 0x0365f177, 0x0184bb26, 0x022a5ac1, 0x000ac561}}, Y: Field{[10]uint32{0x003d7557, 0x0265b992, 0x009a4991, 0x01c3e652, 0x026f5349, 0x02a1d241, 0x0230d52d, 0x00cfea9e, 0x013daa0a, 0x000bac01}}},
+ {X: Field{[10]uint32{0x0078afb0, 0x016b9e58, 0x021974e7, 0x031b1049, 0x0314ff12, 0x019b45c1, 0x00d4468c, 0x018ed492, 0x03cd7661, 0x0008275a}}, Y: Field{[10]uint32{0x0340b310, 0x006ddd69, 0x023e385d, 0x024ce7d3, 0x0301edb7, 0x02626296, 0x0165baba, 0x00ca0282, 0x03429e7b, 0x00068bc4}}},
+ {X: Field{[10]uint32{0x00e7be40, 0x025c532a, 0x00ee593f, 0x02524410, 0x02f2d2c8, 0x01b91da6, 0x0295c161, 0x03b99dfb, 0x02ed1a96, 0x001abe7a}}, Y: Field{[10]uint32{0x02387e1c, 0x005b809b, 0x01569fa4, 0x019a83d6, 0x0145e3f6, 0x00d1f720, 0x009ea428, 0x0199259c, 0x02116900, 0x002ce04a}}},
+ {X: Field{[10]uint32{0x017c0979, 0x01900283, 0x00c96f5f, 0x0052f16a, 0x024a29b3, 0x03d073b4, 0x029df3df, 0x005c50fe, 0x032ba817, 0x0014fc90}}, Y: Field{[10]uint32{0x037b36a2, 0x01fa4314, 0x03845f9f, 0x03d727a2, 0x024bd5a4, 0x0046c1f7, 0x014e3e09, 0x01e6df33, 0x03fbc1f0, 0x002f54bb}}},
+ {X: Field{[10]uint32{0x0082801e, 0x02dbe83d, 0x00155d26, 0x022f16f5, 0x0140794f, 0x032e35be, 0x03aab424, 0x00513bac, 0x00ee0444, 0x0016599a}}, Y: Field{[10]uint32{0x00870c37, 0x01c523c1, 0x0135ad47, 0x032d8f4d, 0x028db6c1, 0x01dc4c13, 0x008f9608, 0x03bd7c7b, 0x00a85bba, 0x002526a8}}},
+ {X: Field{[10]uint32{0x00977063, 0x00102962, 0x00c4fef4, 0x022fec4c, 0x0365bf6f, 0x019f83f6, 0x0150f838, 0x0269bd87, 0x029e047f, 0x0029d8b9}}, Y: Field{[10]uint32{0x014f6ef1, 0x00da7e0a, 0x00e62a06, 0x028e5b7f, 0x01958b48, 0x00cdcaa2, 0x021732d9, 0x00455e06, 0x0157cbed, 0x001ae637}}},
+ {X: Field{[10]uint32{0x032c19fd, 0x026cb9f0, 0x028c3e4c, 0x03a41600, 0x034acab8, 0x02d5c2d6, 0x01f4d17a, 0x0141d8bf, 0x01881b50, 0x002fa134}}, Y: Field{[10]uint32{0x02f1281f, 0x025294dc, 0x01c37676, 0x03d57943, 0x007955a7, 0x00c20e65, 0x01e65f48, 0x01425134, 0x00cb32dc, 0x003bfe58}}},
+ {X: Field{[10]uint32{0x0355a9bf, 0x02c0a637, 0x01bf8ebc, 0x03bca7a9, 0x00f6b015, 0x0075f15e, 0x00307f60, 0x00c60604, 0x00eb9c6e, 0x001c98a6}}, Y: Field{[10]uint32{0x003accae, 0x01be2c2f, 0x033b4e11, 0x032f0019, 0x00be797b, 0x00f42678, 0x0035a2ef, 0x026ff6a6, 0x0001a9de, 0x000e3522}}},
+ {X: Field{[10]uint32{0x02c69482, 0x02dd7f55, 0x02167bd1, 0x01004cbe, 0x00cbeab5, 0x02bcaf22, 0x0357274c, 0x01fb9507, 0x00314c0d, 0x002619e8}}, Y: Field{[10]uint32{0x03792cd7, 0x0018451b, 0x028a916f, 0x033d4558, 0x039e6245, 0x006ea658, 0x0392d55b, 0x020d3e71, 0x015a3b10, 0x00340b98}}},
+ {X: Field{[10]uint32{0x01a7e7d2, 0x01fcb610, 0x03d85995, 0x0230fbea, 0x03a4c90e, 0x0251b791, 0x03af7555, 0x039229a4, 0x030f1339, 0x002e4d04}}, Y: Field{[10]uint32{0x00653d39, 0x02646a26, 0x00c41a4a, 0x036f9c37, 0x03ffd381, 0x02fde347, 0x00929a5f, 0x0015daa8, 0x036b9b2d, 0x002548cf}}},
+ {X: Field{[10]uint32{0x01557aa1, 0x008e7647, 0x03c2978a, 0x03fb3407, 0x03df1d92, 0x002675aa, 0x027f2ea0, 0x02056964, 0x024540d8, 0x002a19bc}}, Y: Field{[10]uint32{0x01430634, 0x006eed30, 0x01a4b798, 0x0319f184, 0x0161eb69, 0x036c384e, 0x013d8fa5, 0x00ad135e, 0x01f6a802, 0x002d61ce}}},
+ {X: Field{[10]uint32{0x0182b151, 0x004d0327, 0x03a2dbb5, 0x00f5587e, 0x03cca0a4, 0x02c426a3, 0x005a1153, 0x00795b59, 0x0250ae40, 0x0034a98e}}, Y: Field{[10]uint32{0x00f89405, 0x01085d37, 0x00a52d41, 0x002bd213, 0x00a70f75, 0x00a52088, 0x01aee58b, 0x03f2dd59, 0x02fb6443, 0x003a0b61}}},
+ },
+ {
+ {X: Field{[10]uint32{0x0182b151, 0x004d0327, 0x03a2dbb5, 0x00f5587e, 0x03cca0a4, 0x02c426a3, 0x005a1153, 0x00795b59, 0x0250ae40, 0x0034a98e}}, Y: Field{[10]uint32{0x00f89405, 0x01085d37, 0x00a52d41, 0x002bd213, 0x00a70f75, 0x00a52088, 0x01aee58b, 0x03f2dd59, 0x02fb6443, 0x003a0b61}}},
+ {X: Field{[10]uint32{0x0272da5f, 0x0312eb32, 0x013497c6, 0x01acdb10, 0x0122b9cd, 0x00cdc97e, 0x03c72020, 0x0149788e, 0x03a76100, 0x002ebc60}}, Y: Field{[10]uint32{0x00f2a0cf, 0x03398a2a, 0x01361377, 0x031729ce, 0x018e2336, 0x035a6c74, 0x008bd58d, 0x0134cd5a, 0x03be9ccb, 0x0037ab27}}},
+ {X: Field{[10]uint32{0x024b3ba0, 0x027d8d7b, 0x031f1785, 0x03d7c62f, 0x035c2abe, 0x006fc917, 0x03e170f3, 0x03edcefb, 0x0105221f, 0x00104204}}, Y: Field{[10]uint32{0x03525595, 0x02587705, 0x02455486, 0x02159681, 0x00133649, 0x035ae126, 0x00a65ae1, 0x0159a3cb, 0x036976ff, 0x00370dfc}}},
+ {X: Field{[10]uint32{0x016c3943, 0x02b29631, 0x02a5ffa5, 0x00b55add, 0x015adbd0, 0x03923dbf, 0x01332906, 0x01008e3e, 0x00a7e384, 0x003debbe}}, Y: Field{[10]uint32{0x00f442f1, 0x03d89feb, 0x01003431, 0x0212a373, 0x03eec301, 0x00eacff3, 0x0042bbdc, 0x0369e5f1, 0x0344d5ff, 0x00138ec2}}},
+ {X: Field{[10]uint32{0x03d98ded, 0x02726e24, 0x00218462, 0x020cee28, 0x02dbdf22, 0x014c7597, 0x00f22990, 0x03032323, 0x0210a16c, 0x0018e8a8}}, Y: Field{[10]uint32{0x00d1cfc2, 0x0065f538, 0x0073a519, 0x0280271e, 0x021fabf6, 0x013b6511, 0x02503325, 0x031dbf41, 0x02e2e7fe, 0x00220ad0}}},
+ {X: Field{[10]uint32{0x000e5485, 0x02799a80, 0x01df0208, 0x022fd769, 0x02451306, 0x01cc83c4, 0x02c70862, 0x02f7fe38, 0x02d793a2, 0x0007349d}}, Y: Field{[10]uint32{0x005fbd7f, 0x033c1462, 0x024ecca5, 0x01c2c826, 0x0399d0e2, 0x014ba5df, 0x00b34d45, 0x02bdce35, 0x01d18b2e, 0x0019856f}}},
+ {X: Field{[10]uint32{0x00045445, 0x0186942e, 0x00d7eea8, 0x01c6407a, 0x0080ff73, 0x0355efbc, 0x0312e2e5, 0x019f28f7, 0x015d449d, 0x00030560}}, Y: Field{[10]uint32{0x0054a206, 0x03e1f550, 0x00ea3214, 0x0390d963, 0x00ba3054, 0x0198f34a, 0x0293c3b6, 0x01045742, 0x020a3ae9, 0x000bcc35}}},
+ {X: Field{[10]uint32{0x01924459, 0x032515c4, 0x0278c1fa, 0x00968f1e, 0x037af2fa, 0x03776ec7, 0x022e29f0, 0x0240db16, 0x03cb1001, 0x0037ed51}}, Y: Field{[10]uint32{0x0065fd9e, 0x00178373, 0x031dcfa2, 0x00c39700, 0x0022af09, 0x03721933, 0x00389ce9, 0x011c222e, 0x02a9ba0f, 0x0026b334}}},
+ {X: Field{[10]uint32{0x03857faf, 0x0048e730, 0x019701e9, 0x03787a58, 0x03882fca, 0x020a3bdf, 0x017ba8f4, 0x022a7035, 0x036b89ae, 0x0031d5fa}}, Y: Field{[10]uint32{0x00584ca4, 0x0276c328, 0x014c101d, 0x00344062, 0x03627d31, 0x022fb186, 0x03369f20, 0x03fcd895, 0x01cfcd23, 0x003c0e96}}},
+ {X: Field{[10]uint32{0x02f8b517, 0x02ecd463, 0x01bac9a8, 0x00691c5c, 0x0177c277, 0x02845789, 0x01bc8064, 0x036c9257, 0x02f7ccc4, 0x001c4808}}, Y: Field{[10]uint32{0x009da1ac, 0x01f7ca09, 0x01d7748b, 0x037cef5e, 0x01a3603e, 0x00251d50, 0x03101f9b, 0x03a4a2b9, 0x0338de4d, 0x002f55e0}}},
+ {X: Field{[10]uint32{0x0059225d, 0x034613d5, 0x018d10e4, 0x01f8b621, 0x0244faf7, 0x006700a8, 0x015d4099, 0x028343e0, 0x03aeadaf, 0x003ea018}}, Y: Field{[10]uint32{0x02ce1507, 0x02df8edf, 0x0059c3a2, 0x00db401f, 0x000a2b6c, 0x00931097, 0x00de2208, 0x0301a458, 0x039057c0, 0x0002e9c7}}},
+ {X: Field{[10]uint32{0x010bc03e, 0x014f566a, 0x015e33c7, 0x024d4780, 0x0084b0f3, 0x011143e0, 0x01a925f7, 0x001cba79, 0x00ed2c82, 0x000b3bb6}}, Y: Field{[10]uint32{0x02b82adc, 0x01cae2de, 0x03cd01cb, 0x033c8354, 0x034a1df9, 0x03f1f6ba, 0x0050eb7a, 0x0378fb36, 0x0380e9b9, 0x002909da}}},
+ {X: Field{[10]uint32{0x02f0d044, 0x027fa505, 0x021a7967, 0x03524279, 0x01aaba9f, 0x018bb829, 0x02f69cf8, 0x015ea278, 0x03c59d02, 0x00196328}}, Y: Field{[10]uint32{0x03cb872d, 0x007ccbbd, 0x00e89add, 0x018f1063, 0x0255a167, 0x004ef4dd, 0x0165d627, 0x0095183c, 0x01377aea, 0x002b9730}}},
+ {X: Field{[10]uint32{0x02aa2494, 0x03538c50, 0x00c9a50c, 0x03f9f744, 0x027bdcdd, 0x013aef20, 0x01136e7c, 0x03a3b374, 0x009a4539, 0x000de71d}}, Y: Field{[10]uint32{0x02c86c63, 0x03ea7a33, 0x016435be, 0x029edfa1, 0x011364f6, 0x019e0fc4, 0x01c0ef1d, 0x0300c4f2, 0x03848bf9, 0x00289518}}},
+ {X: Field{[10]uint32{0x0296756d, 0x02b255cd, 0x01417ab5, 0x01815958, 0x00676af1, 0x034fcc17, 0x00c19835, 0x03caeb39, 0x034aaf91, 0x000c7252}}, Y: Field{[10]uint32{0x0208ae78, 0x0117a377, 0x01070abc, 0x032b9ab4, 0x0283aedf, 0x02bd0581, 0x00b8b59a, 0x020ea6fd, 0x004b556e, 0x003e03e2}}},
+ {X: Field{[10]uint32{0x0217e073, 0x01be6d15, 0x0317b343, 0x02f4e0e4, 0x026bacbd, 0x01f3f721, 0x02e7896d, 0x007ae243, 0x02233547, 0x0019161f}}, Y: Field{[10]uint32{0x03af6589, 0x026797a7, 0x02ab3582, 0x00e44ceb, 0x0185b90a, 0x01f0a668, 0x016dd644, 0x000b8aba, 0x01d5bf69, 0x003667f3}}},
+ },
+ {
+ {X: Field{[10]uint32{0x0217e073, 0x01be6d15, 0x0317b343, 0x02f4e0e4, 0x026bacbd, 0x01f3f721, 0x02e7896d, 0x007ae243, 0x02233547, 0x0019161f}}, Y: Field{[10]uint32{0x03af6589, 0x026797a7, 0x02ab3582, 0x00e44ceb, 0x0185b90a, 0x01f0a668, 0x016dd644, 0x000b8aba, 0x01d5bf69, 0x003667f3}}},
+ {X: Field{[10]uint32{0x0384480d, 0x03362310, 0x032ef44b, 0x0288aa47, 0x0294e0b6, 0x024bc304, 0x0328b54c, 0x02503cb3, 0x02b142df, 0x002e19b5}}, Y: Field{[10]uint32{0x004cafa8, 0x0166d1c3, 0x006d60e6, 0x02012c76, 0x0024e522, 0x02a6b5eb, 0x02278d7e, 0x03adc226, 0x00b3426a, 0x0006452c}}},
+ {X: Field{[10]uint32{0x02103dd6, 0x01c51c83, 0x00859adf, 0x0301f001, 0x02c34604, 0x0164a85e, 0x02213cfc, 0x000fe0da, 0x03d55a42, 0x002f11de}}, Y: Field{[10]uint32{0x02f7c343, 0x0020b635, 0x004ac639, 0x01cb18ed, 0x015d2935, 0x01b7a98e, 0x03ac552c, 0x037549b2, 0x022429a8, 0x0038c787}}},
+ {X: Field{[10]uint32{0x01b20d6c, 0x02736a07, 0x02455d22, 0x0393b53f, 0x03e2d52a, 0x0040aea1, 0x019d1646, 0x02067b13, 0x009085de, 0x003b0aee}}, Y: Field{[10]uint32{0x029cf4a0, 0x02671358, 0x03a98a0e, 0x012fa1fb, 0x0233a236, 0x01425031, 0x02f66f06, 0x004e84cc, 0x017661e0, 0x00333b30}}},
+ {X: Field{[10]uint32{0x004eab31, 0x0370ec35, 0x034907d0, 0x00501398, 0x000ac5af, 0x019efe3a, 0x003b4232, 0x02e0e00c, 0x00fe5a6b, 0x0016276d}}, Y: Field{[10]uint32{0x01361f6a, 0x02baf9d4, 0x038db941, 0x01548523, 0x031f610e, 0x012f643c, 0x00706202, 0x028a93d8, 0x005c108a, 0x00189551}}},
+ {X: Field{[10]uint32{0x02695f94, 0x0202c60d, 0x03fa592d, 0x031a4589, 0x0362a169, 0x02be6a73, 0x00cb8683, 0x023d7f43, 0x0151b455, 0x002c7497}}, Y: Field{[10]uint32{0x02e32736, 0x01fae697, 0x03edca5b, 0x0236ae18, 0x0360f6f1, 0x026aea05, 0x03ea0ac1, 0x0242c7de, 0x0272030e, 0x001c1b76}}},
+ {X: Field{[10]uint32{0x020c2c41, 0x02585ca6, 0x036c67bf, 0x0071580c, 0x0042831c, 0x035bb6df, 0x00a1860a, 0x00be8baa, 0x0337d16e, 0x0004ce6c}}, Y: Field{[10]uint32{0x01f1bc2b, 0x03c152ea, 0x023a4185, 0x03e1f7a4, 0x006b1227, 0x0044e8d0, 0x023240fd, 0x02b96e9e, 0x016362c7, 0x0027e6ca}}},
+ {X: Field{[10]uint32{0x03b09d0f, 0x0183b2c8, 0x03ecf38a, 0x01903d42, 0x01e50050, 0x03951641, 0x01d75ef5, 0x025b3b4e, 0x03e389e2, 0x001c7129}}, Y: Field{[10]uint32{0x020ddb62, 0x02c7c05c, 0x03fc7637, 0x0021298b, 0x02786f2b, 0x00be042a, 0x033e0a29, 0x03cee82b, 0x02db737a, 0x0004c4fe}}},
+ {X: Field{[10]uint32{0x00fc47af, 0x012c7e16, 0x00dec370, 0x0320cb03, 0x00a8ddfe, 0x00006d5a, 0x010329b5, 0x033c5f31, 0x03a11363, 0x001ffcee}}, Y: Field{[10]uint32{0x01ba43a7, 0x0185933e, 0x02c297f8, 0x006b462e, 0x0317a53b, 0x011cd11a, 0x03c891b7, 0x0298a682, 0x03ae8018, 0x0007dae9}}},
+ {X: Field{[10]uint32{0x0241e20e, 0x03132ea7, 0x03864d1d, 0x00f5e34c, 0x0138a87a, 0x00e934fa, 0x030f7f00, 0x013722f2, 0x01c4a511, 0x003f0e57}}, Y: Field{[10]uint32{0x03cf42ee, 0x036330b9, 0x00e2b77a, 0x0169a179, 0x02022147, 0x02f76db5, 0x02b81a98, 0x01f42533, 0x009108d0, 0x000e19b8}}},
+ {X: Field{[10]uint32{0x01213775, 0x01358025, 0x02a99018, 0x00ec8f50, 0x0100b429, 0x03fb1fd8, 0x001e9395, 0x0182ed85, 0x00463ceb, 0x0023b19c}}, Y: Field{[10]uint32{0x0041ffff, 0x0043cf9e, 0x011e90e0, 0x0282f33d, 0x0271da98, 0x033b7b83, 0x02643415, 0x016f8c1b, 0x026fa0da, 0x0023d629}}},
+ {X: Field{[10]uint32{0x02f83231, 0x01c4062d, 0x025e3499, 0x0239d810, 0x00b7c30d, 0x016cff74, 0x01158276, 0x02e89aa3, 0x00c53502, 0x002143e3}}, Y: Field{[10]uint32{0x032e8373, 0x00c6a757, 0x0177f4a0, 0x0285dc8b, 0x010a85bf, 0x020b31e2, 0x03f7086b, 0x02414f42, 0x01be02a7, 0x002f12a7}}},
+ {X: Field{[10]uint32{0x0052abbb, 0x00ffe34d, 0x01c2e3cb, 0x00bf8ae5, 0x01ae6aa7, 0x03657525, 0x01bac3fe, 0x0006ee27, 0x01b441e7, 0x0020f798}}, Y: Field{[10]uint32{0x014eb66e, 0x0145dac1, 0x002918a0, 0x00daef39, 0x03d79c5f, 0x03138558, 0x03fb6af8, 0x01827e9a, 0x0334a34c, 0x000cbc38}}},
+ {X: Field{[10]uint32{0x032e6ffa, 0x00441937, 0x0176388b, 0x00dedc55, 0x0246be9f, 0x011d4351, 0x005bb6a9, 0x0067ec51, 0x02f98f94, 0x0014ffa2}}, Y: Field{[10]uint32{0x00e92eb5, 0x03acdc99, 0x030c22a1, 0x03980ef5, 0x005fb5f8, 0x01193797, 0x000cf6c4, 0x01518859, 0x017e7b51, 0x0024ca20}}},
+ {X: Field{[10]uint32{0x019276f1, 0x022309bd, 0x03b15e96, 0x02ca4a85, 0x0033ae25, 0x03df361a, 0x00bb5c00, 0x03076c6a, 0x03898f50, 0x000f5d98}}, Y: Field{[10]uint32{0x019cbcb3, 0x012996e1, 0x0178601e, 0x008066c6, 0x02f32198, 0x02b60ccf, 0x0176e34d, 0x01f76d82, 0x01737a18, 0x0034dd9a}}},
+ {X: Field{[10]uint32{0x0145e458, 0x035b21b7, 0x027fd358, 0x033a8943, 0x002f0aa6, 0x01527781, 0x02546d3e, 0x036216ce, 0x01e0e4e4, 0x0021206f}}, Y: Field{[10]uint32{0x0379057e, 0x012c6d65, 0x02e556d6, 0x0310ac98, 0x02900a79, 0x033b2cb2, 0x0225bf39, 0x00137612, 0x038cba54, 0x000e3b9e}}},
+ },
+ {
+ {X: Field{[10]uint32{0x0145e458, 0x035b21b7, 0x027fd358, 0x033a8943, 0x002f0aa6, 0x01527781, 0x02546d3e, 0x036216ce, 0x01e0e4e4, 0x0021206f}}, Y: Field{[10]uint32{0x0379057e, 0x012c6d65, 0x02e556d6, 0x0310ac98, 0x02900a79, 0x033b2cb2, 0x0225bf39, 0x00137612, 0x038cba54, 0x000e3b9e}}},
+ {X: Field{[10]uint32{0x00e9f114, 0x010cd49b, 0x021dde54, 0x0014a655, 0x03392ed6, 0x007524af, 0x0143c6cd, 0x00ea2e7f, 0x0050bd38, 0x00258a69}}, Y: Field{[10]uint32{0x024aa391, 0x025cb128, 0x02f8dca3, 0x00f9715a, 0x01b92559, 0x0033bd93, 0x02befd22, 0x02db5d5d, 0x03280c5f, 0x002fd0e6}}},
+ {X: Field{[10]uint32{0x012da17d, 0x0283e905, 0x0246b160, 0x036c2341, 0x0011dc13, 0x03f802f2, 0x014e6b05, 0x02317c22, 0x011e0f51, 0x000efabb}}, Y: Field{[10]uint32{0x00c768d2, 0x0012617b, 0x00416ce7, 0x01ee37fb, 0x0154cde7, 0x03a0386d, 0x034a8beb, 0x01eb37fb, 0x03f55aff, 0x0030ec35}}},
+ {X: Field{[10]uint32{0x02ca6cc3, 0x00e36589, 0x0218383d, 0x011f861f, 0x031477d7, 0x033224f7, 0x01730da7, 0x011a23ac, 0x0047ef1e, 0x002dcec7}}, Y: Field{[10]uint32{0x014fdba3, 0x00d75da9, 0x03f5afac, 0x014825d5, 0x017322a2, 0x03320142, 0x017d64bb, 0x008aa429, 0x01cb2949, 0x001610c5}}},
+ {X: Field{[10]uint32{0x024edcc5, 0x03e85f6e, 0x011b7234, 0x0085080c, 0x03e74e32, 0x0249d665, 0x012dfc03, 0x0275861d, 0x03a0cbdc, 0x001b9cf6}}, Y: Field{[10]uint32{0x019da0e4, 0x007df375, 0x039037b3, 0x0369c019, 0x03278a77, 0x0220a1a4, 0x02455088, 0x033122fa, 0x01fc49ee, 0x003b82b0}}},
+ {X: Field{[10]uint32{0x0063e1be, 0x026b4134, 0x01a75c1b, 0x028bdf8e, 0x03a92429, 0x036f3c09, 0x02615253, 0x00ac51c8, 0x01d11d60, 0x0004c590}}, Y: Field{[10]uint32{0x01fec890, 0x007fcf88, 0x01b77fdd, 0x0303e5d1, 0x03bd0fae, 0x036f4afa, 0x002e30fc, 0x00e7c1a9, 0x02617960, 0x00130ef6}}},
+ {X: Field{[10]uint32{0x0280b979, 0x03131092, 0x03b31409, 0x03e8ca6a, 0x000490f5, 0x0291f0c4, 0x027d97ea, 0x02d649d8, 0x018937e5, 0x001dc1b7}}, Y: Field{[10]uint32{0x0126cfde, 0x03d20410, 0x03e3214c, 0x00d3f5fb, 0x0117fa0a, 0x007aa71c, 0x038dd799, 0x02dc51dd, 0x01827d5b, 0x002280aa}}},
+ {X: Field{[10]uint32{0x038f93e0, 0x038864b4, 0x0099f9c6, 0x00eed9da, 0x03d05b2a, 0x01e8bfbd, 0x03989200, 0x00600c47, 0x02b2db40, 0x003b7f85}}, Y: Field{[10]uint32{0x029405ad, 0x005e4f78, 0x0227e3d0, 0x000311b8, 0x025b3d51, 0x02c17434, 0x0174faa4, 0x036cda53, 0x02f1fca5, 0x003b9a40}}},
+ {X: Field{[10]uint32{0x026fe285, 0x02e712dc, 0x03127dcd, 0x00a504fb, 0x02a45bac, 0x007e781a, 0x02f3c7a4, 0x0303e034, 0x02c5929b, 0x0005b508}}, Y: Field{[10]uint32{0x0155b441, 0x003ff9b0, 0x00d4233e, 0x0044dcd9, 0x01e93f0c, 0x018d4c6c, 0x02b7e69a, 0x009906a2, 0x00fa51e2, 0x00037e22}}},
+ {X: Field{[10]uint32{0x01e306a5, 0x004cae1a, 0x007f15d3, 0x00931309, 0x02b8b5f6, 0x017cb971, 0x027129b3, 0x0030cd24, 0x0363f9f3, 0x0025cb2c}}, Y: Field{[10]uint32{0x02e86295, 0x007f502d, 0x00f35d06, 0x03b732b5, 0x01b85702, 0x02f1941e, 0x01e77fe5, 0x024aa97e, 0x0304e2df, 0x002b98d1}}},
+ {X: Field{[10]uint32{0x02cfa513, 0x0042f2ae, 0x023aeae3, 0x027e6983, 0x004e2407, 0x003d5aa7, 0x01a34475, 0x01b58ea9, 0x0247eec7, 0x0007f303}}, Y: Field{[10]uint32{0x007afc9c, 0x01d6e904, 0x03918750, 0x03459260, 0x004beded, 0x00ce7e6d, 0x00e38754, 0x0151e2d2, 0x01a041e3, 0x00059770}}},
+ {X: Field{[10]uint32{0x0046e079, 0x0280d49f, 0x0078dd12, 0x002e17a7, 0x00ab6693, 0x000ae8dd, 0x02f75adb, 0x02b14c3f, 0x02ad2acf, 0x002ae1b0}}, Y: Field{[10]uint32{0x0236ffe1, 0x00a2f05d, 0x017c0ec4, 0x03a12143, 0x01ce7728, 0x01cc8032, 0x01c46d4d, 0x00a6af3d, 0x0286019f, 0x00048270}}},
+ {X: Field{[10]uint32{0x02dc69b2, 0x009c1f3f, 0x0371721a, 0x0226c9ad, 0x02a50a60, 0x0172a8e1, 0x00643043, 0x02e285cc, 0x0073ad6c, 0x00304ae4}}, Y: Field{[10]uint32{0x00dd41dd, 0x02ba6c08, 0x032a0032, 0x02f8f49e, 0x02b8ee1d, 0x03e2525d, 0x0372dc89, 0x0337c765, 0x003fe534, 0x000c5cf1}}},
+ {X: Field{[10]uint32{0x02341142, 0x031ef3a7, 0x02760d3e, 0x03add91c, 0x007ae684, 0x0268459a, 0x021bd217, 0x028ec06e, 0x00110c2d, 0x00319c07}}, Y: Field{[10]uint32{0x020f4dad, 0x01318567, 0x03e57892, 0x02e96f26, 0x015d07fc, 0x03867d68, 0x03869bbd, 0x0376654b, 0x02b38d6c, 0x000a8083}}},
+ {X: Field{[10]uint32{0x0161fe4d, 0x03d6177e, 0x03197ab6, 0x01be2c41, 0x028a1488, 0x004b29cf, 0x033e9313, 0x01ea3e8f, 0x0385dc32, 0x0034166f}}, Y: Field{[10]uint32{0x02e823c2, 0x00d6c19a, 0x0364cb99, 0x0287d36a, 0x00fd388b, 0x0212556d, 0x020765dc, 0x014978ff, 0x0260c08b, 0x0011441e}}},
+ {X: Field{[10]uint32{0x00af666b, 0x018c0fdb, 0x00e30bcd, 0x034f12c7, 0x037ffcfe, 0x0205fd18, 0x036979ae, 0x000aa98a, 0x0257a781, 0x0004d192}}, Y: Field{[10]uint32{0x036ecc27, 0x0256a41f, 0x002e13f4, 0x02a07425, 0x0248f300, 0x00f32c32, 0x03e43345, 0x011603bd, 0x01900461, 0x001a6f85}}},
+ },
+ {
+ {X: Field{[10]uint32{0x00af666b, 0x018c0fdb, 0x00e30bcd, 0x034f12c7, 0x037ffcfe, 0x0205fd18, 0x036979ae, 0x000aa98a, 0x0257a781, 0x0004d192}}, Y: Field{[10]uint32{0x036ecc27, 0x0256a41f, 0x002e13f4, 0x02a07425, 0x0248f300, 0x00f32c32, 0x03e43345, 0x011603bd, 0x01900461, 0x001a6f85}}},
+ {X: Field{[10]uint32{0x025084ae, 0x02127181, 0x02577c75, 0x01f73aaf, 0x019182be, 0x017f84b4, 0x005c88c8, 0x014d8bb0, 0x00f53224, 0x003acf3e}}, Y: Field{[10]uint32{0x016b9480, 0x01f07ffe, 0x012a66f6, 0x03179f6f, 0x01f52b45, 0x03f72928, 0x03e63dce, 0x035c010f, 0x038222d9, 0x00320cf1}}},
+ {X: Field{[10]uint32{0x02ca5f51, 0x01ac8263, 0x01aebf21, 0x006e53f2, 0x03ddea17, 0x03c16d73, 0x02ed6b2b, 0x039a58b1, 0x0114dd9e, 0x00377a75}}, Y: Field{[10]uint32{0x00c638f7, 0x01a69cf4, 0x0171f9ad, 0x03a37a25, 0x0150feeb, 0x029fe3c2, 0x011f34b0, 0x02044762, 0x01133ce2, 0x002e139a}}},
+ {X: Field{[10]uint32{0x02e9a5d0, 0x016f2f30, 0x001d9f8e, 0x03e61288, 0x02a576fc, 0x0211466c, 0x03a60f21, 0x02665d3d, 0x027d092d, 0x002f7c69}}, Y: Field{[10]uint32{0x0162ff7b, 0x013dc061, 0x02461cdb, 0x01879589, 0x02a6280b, 0x01afdeea, 0x00be54a8, 0x0286aaa0, 0x002bab65, 0x00102564}}},
+ {X: Field{[10]uint32{0x019c88e4, 0x001ac166, 0x006ec2f9, 0x00f882b5, 0x039aed51, 0x004812c5, 0x01f406eb, 0x024dcdba, 0x02102369, 0x003f4698}}, Y: Field{[10]uint32{0x015bc8df, 0x02324596, 0x000f299c, 0x03525730, 0x02dc6b71, 0x0125dde0, 0x013c0695, 0x03082fec, 0x0354b9c8, 0x0006b25e}}},
+ {X: Field{[10]uint32{0x009b0cca, 0x031a9568, 0x016f01cc, 0x02249293, 0x01a34575, 0x028a3696, 0x00454f68, 0x03d32357, 0x00b1dbb0, 0x000354e3}}, Y: Field{[10]uint32{0x00929e05, 0x02c51f83, 0x034c9731, 0x02676244, 0x038534cd, 0x003bb5f3, 0x00a8d5c4, 0x0304432c, 0x03ac7a3e, 0x0032065a}}},
+ {X: Field{[10]uint32{0x038018ce, 0x0056d6d7, 0x02d68bd5, 0x01ce3624, 0x03cf2da5, 0x00b21b71, 0x03ffce4f, 0x025ae7c4, 0x0131d8c2, 0x0013b921}}, Y: Field{[10]uint32{0x0248381f, 0x016986c7, 0x006013c3, 0x01c6d3a0, 0x02710749, 0x0031f179, 0x03b4408d, 0x03e2d7f1, 0x02d4810b, 0x002da3e7}}},
+ {X: Field{[10]uint32{0x0327e771, 0x017f05ce, 0x0262abde, 0x02591df6, 0x008c3b41, 0x019120ed, 0x01be267b, 0x03b0a735, 0x026eddc4, 0x001a215a}}, Y: Field{[10]uint32{0x03bbdab6, 0x02358a81, 0x0333a611, 0x03ca4ec1, 0x02331d22, 0x0067ded2, 0x036fd49c, 0x0287ec4e, 0x01f14f79, 0x001de8cf}}},
+ {X: Field{[10]uint32{0x01473678, 0x014ba47c, 0x012f7028, 0x0254250e, 0x00cba057, 0x016e301c, 0x01e314c5, 0x00036ffd, 0x009c34c4, 0x003f5db3}}, Y: Field{[10]uint32{0x01144f4f, 0x0193baa3, 0x008437e1, 0x03b85007, 0x0260628e, 0x0340cb35, 0x03ee0a73, 0x010f6b83, 0x01437871, 0x003c8119}}},
+ {X: Field{[10]uint32{0x02e66b24, 0x00014cb3, 0x00366b5f, 0x003fb5ee, 0x02e8b9c6, 0x03c6b7b4, 0x0244d99b, 0x031ee203, 0x00cfb9e9, 0x00133576}}, Y: Field{[10]uint32{0x000932fd, 0x03bf6ebd, 0x03aed221, 0x01784b4b, 0x03ca61e4, 0x0335b440, 0x024e8c39, 0x012d567f, 0x0282deb9, 0x0015dbab}}},
+ {X: Field{[10]uint32{0x017a2193, 0x002dc523, 0x0146edf0, 0x0113c65d, 0x012c691e, 0x012d3a88, 0x026ce827, 0x02d00867, 0x03a33123, 0x002168aa}}, Y: Field{[10]uint32{0x00cdcf3a, 0x0320f52c, 0x012427f0, 0x037e70ec, 0x03e1c6da, 0x007300a7, 0x02c6082d, 0x00145b60, 0x0057eb2b, 0x002704a6}}},
+ {X: Field{[10]uint32{0x01d7e577, 0x00c0f3bb, 0x004d56ae, 0x015a14db, 0x03d3a0f2, 0x003a8841, 0x00604727, 0x03dec96b, 0x010f8828, 0x0030d4b5}}, Y: Field{[10]uint32{0x00d9b570, 0x013fe23e, 0x017063ca, 0x02cad848, 0x0300a8ab, 0x02f39e7e, 0x03d53145, 0x02e6e5aa, 0x0038ba76, 0x002f9dca}}},
+ {X: Field{[10]uint32{0x037568b0, 0x000c16cd, 0x03b0535b, 0x03406780, 0x0335ae8d, 0x01e0d943, 0x00b6d6c5, 0x03f9d110, 0x03fc73cf, 0x00349776}}, Y: Field{[10]uint32{0x0339929c, 0x004e49b7, 0x03f0060a, 0x022078f0, 0x03832273, 0x0379f64a, 0x02aef74c, 0x01224e2f, 0x037593f8, 0x001e8ebf}}},
+ {X: Field{[10]uint32{0x02712536, 0x0158fa07, 0x03e71a33, 0x03d5bfd7, 0x02a85051, 0x02d8d7a7, 0x006de71a, 0x00ea7f82, 0x0286b0a4, 0x0001a453}}, Y: Field{[10]uint32{0x001128f1, 0x011dc4e0, 0x029da2a2, 0x01ac2bde, 0x00896c22, 0x016b0a30, 0x018aceae, 0x02f4149f, 0x012852d9, 0x000adf9e}}},
+ {X: Field{[10]uint32{0x031d7c13, 0x03944629, 0x03a3855f, 0x03dfe83f, 0x01641ab5, 0x01eab201, 0x0307e9a9, 0x0129c957, 0x013143e9, 0x0011604d}}, Y: Field{[10]uint32{0x02ff63cf, 0x022f154e, 0x016b9963, 0x01550af6, 0x01702006, 0x01f75a72, 0x03f50f17, 0x026b62d5, 0x00ec1497, 0x0027d616}}},
+ {X: Field{[10]uint32{0x0183f366, 0x028e834b, 0x00588cad, 0x03b78bca, 0x020cd9cc, 0x0307725e, 0x02f430bc, 0x03f8ba6b, 0x01f5b713, 0x002f12a7}}, Y: Field{[10]uint32{0x001f33c1, 0x02359996, 0x03b16d75, 0x03efe951, 0x02a6e8a9, 0x012de632, 0x03937adf, 0x017018e0, 0x01ca6e78, 0x00034ea0}}},
+ },
+ {
+ {X: Field{[10]uint32{0x0183f366, 0x028e834b, 0x00588cad, 0x03b78bca, 0x020cd9cc, 0x0307725e, 0x02f430bc, 0x03f8ba6b, 0x01f5b713, 0x002f12a7}}, Y: Field{[10]uint32{0x001f33c1, 0x02359996, 0x03b16d75, 0x03efe951, 0x02a6e8a9, 0x012de632, 0x03937adf, 0x017018e0, 0x01ca6e78, 0x00034ea0}}},
+ {X: Field{[10]uint32{0x03fceb19, 0x0379517c, 0x00409282, 0x0087de17, 0x002e89b2, 0x0339eead, 0x005c7626, 0x033302af, 0x015e11ce, 0x003690cf}}, Y: Field{[10]uint32{0x02f5cc64, 0x039c4829, 0x03277684, 0x00b6489e, 0x018e77fc, 0x03e57948, 0x02bbdc4a, 0x0040c077, 0x03d321a8, 0x00392636}}},
+ {X: Field{[10]uint32{0x0312be3c, 0x028b8cbd, 0x02a66b06, 0x023b6851, 0x007295f1, 0x02c0054d, 0x00725dba, 0x02cde34f, 0x009d9331, 0x000e75cd}}, Y: Field{[10]uint32{0x006ff65c, 0x00067d07, 0x01644cc3, 0x0297b290, 0x00ef5ef7, 0x019a04ba, 0x0127554c, 0x00efdfec, 0x034f56ef, 0x0023e4a6}}},
+ {X: Field{[10]uint32{0x02cf692a, 0x0389d716, 0x03e0654d, 0x0229c881, 0x01bcc483, 0x00705bbf, 0x01c11698, 0x031fb070, 0x021ee9e8, 0x0000c7a3}}, Y: Field{[10]uint32{0x016f667a, 0x00aa13ac, 0x033b09cc, 0x009f16fd, 0x03706498, 0x00359d0e, 0x01097029, 0x00d4f767, 0x035b465b, 0x002b5f9f}}},
+ {X: Field{[10]uint32{0x0377f22b, 0x0393ef37, 0x02e035aa, 0x00e653e0, 0x02c69972, 0x02656bc9, 0x011cd6c2, 0x00774279, 0x0217f7dc, 0x003c32e9}}, Y: Field{[10]uint32{0x0109a03c, 0x0238b1d6, 0x015661fc, 0x01fa4282, 0x0004f18c, 0x0145b410, 0x03326c36, 0x037e627b, 0x034313f9, 0x0006896a}}},
+ {X: Field{[10]uint32{0x03829372, 0x002a929d, 0x00553dec, 0x003222e9, 0x03c49b30, 0x00e15e5a, 0x03626ae5, 0x0034ecc4, 0x00c90f3e, 0x002d0c67}}, Y: Field{[10]uint32{0x02dd5427, 0x02733002, 0x011bb772, 0x005728f8, 0x02707b12, 0x03087168, 0x037afe09, 0x0140affe, 0x00499a6f, 0x0011c1f5}}},
+ {X: Field{[10]uint32{0x02509c12, 0x03373531, 0x0347658a, 0x008d6f47, 0x018d6bfe, 0x021c9a3b, 0x01170e8d, 0x01534c87, 0x02b9db21, 0x000e075e}}, Y: Field{[10]uint32{0x02b46102, 0x010aa38b, 0x02af7546, 0x0161b39b, 0x03205828, 0x02996079, 0x01d24573, 0x00f6a7ad, 0x035b7fda, 0x00291eaa}}},
+ {X: Field{[10]uint32{0x01f488b6, 0x02f5ffe0, 0x0291592b, 0x00d8ff1e, 0x03e9c9bf, 0x00995fdc, 0x03e00d86, 0x01845574, 0x0207a88d, 0x002a61e1}}, Y: Field{[10]uint32{0x031dab1d, 0x029eeec0, 0x01c6d495, 0x006592b5, 0x0239d0f0, 0x00855f08, 0x0063e7c8, 0x02575870, 0x01abd588, 0x00346068}}},
+ {X: Field{[10]uint32{0x004fe955, 0x00ed358e, 0x03ce48db, 0x0296818e, 0x03f69956, 0x02532294, 0x013b73e6, 0x021f991e, 0x005467ab, 0x0029c0fc}}, Y: Field{[10]uint32{0x021344bd, 0x02cbbef5, 0x0277fa26, 0x00a7165c, 0x03539e16, 0x02c64666, 0x02a792d6, 0x011eb703, 0x0135a2b0, 0x0035403e}}},
+ {X: Field{[10]uint32{0x038a8cc6, 0x0024edb0, 0x038fbe64, 0x007a7da7, 0x00ba2e12, 0x03b5fcf7, 0x02279ff6, 0x0105f923, 0x00c750b3, 0x000cc649}}, Y: Field{[10]uint32{0x02587810, 0x02383ed1, 0x01b54c4e, 0x026b3a7a, 0x017fb99e, 0x038bfecc, 0x025b601b, 0x03c060ae, 0x01411b33, 0x0032a3de}}},
+ {X: Field{[10]uint32{0x02eace58, 0x02595b01, 0x0211d349, 0x018e8bcc, 0x031b7e45, 0x0014e80f, 0x006ad0d7, 0x01435d1b, 0x03c5aad5, 0x001cf1ac}}, Y: Field{[10]uint32{0x02f8654e, 0x002a45ca, 0x01291717, 0x0236eee3, 0x02aa6a87, 0x019b6471, 0x02909913, 0x013dd06e, 0x00a4733a, 0x000e8bed}}},
+ {X: Field{[10]uint32{0x01cbcb9e, 0x03c449b3, 0x03c3df4b, 0x02277360, 0x01d6fa56, 0x03f50dd8, 0x00c32447, 0x00cdea7b, 0x02d7119d, 0x003372c4}}, Y: Field{[10]uint32{0x0161cfd1, 0x029616b2, 0x03340a08, 0x0090d637, 0x01a199af, 0x01b7a652, 0x02fbea09, 0x03c47eff, 0x02e17bb9, 0x0039a678}}},
+ {X: Field{[10]uint32{0x00181d5e, 0x00e22fc0, 0x02f2054b, 0x02a6e56a, 0x00de71b3, 0x0303b76e, 0x0100d3a1, 0x011ff687, 0x03e7506d, 0x003189fc}}, Y: Field{[10]uint32{0x029f886d, 0x0240298d, 0x022c3927, 0x0015272f, 0x028ef6b0, 0x02287df5, 0x01696013, 0x00a98ecb, 0x01d71e44, 0x0035e3e7}}},
+ {X: Field{[10]uint32{0x025fe9cc, 0x011f3dcc, 0x008db1d7, 0x02ecd276, 0x03fbb883, 0x00b52b08, 0x00411084, 0x00c6c4dc, 0x026328ec, 0x0031bb57}}, Y: Field{[10]uint32{0x028fd94b, 0x02f38712, 0x02cf10c0, 0x00ad83c8, 0x02844f97, 0x031fdeca, 0x032ee125, 0x03e0c0a4, 0x005b49d7, 0x003791d0}}},
+ {X: Field{[10]uint32{0x03828b16, 0x00a367ed, 0x0047f34e, 0x023ca292, 0x03a04795, 0x03c1b794, 0x025f40a6, 0x0348cfe8, 0x02be0edf, 0x002ee23e}}, Y: Field{[10]uint32{0x02ea5df7, 0x011ce882, 0x02969c51, 0x01d38e87, 0x03ec4a81, 0x00456458, 0x01dc5960, 0x03a374d1, 0x02b304f5, 0x002dcd9d}}},
+ {X: Field{[10]uint32{0x01324caa, 0x02acc3f9, 0x032a3954, 0x038c2a51, 0x02694b65, 0x0114a8cb, 0x03d8c749, 0x022f0348, 0x017bf829, 0x00230a2a}}, Y: Field{[10]uint32{0x03ef9482, 0x00771cf2, 0x039459e7, 0x03c11472, 0x037ae784, 0x03df303a, 0x00fedf31, 0x01464cde, 0x0063a330, 0x001028c1}}},
+ },
+ {
+ {X: Field{[10]uint32{0x01324caa, 0x02acc3f9, 0x032a3954, 0x038c2a51, 0x02694b65, 0x0114a8cb, 0x03d8c749, 0x022f0348, 0x017bf829, 0x00230a2a}}, Y: Field{[10]uint32{0x03ef9482, 0x00771cf2, 0x039459e7, 0x03c11472, 0x037ae784, 0x03df303a, 0x00fedf31, 0x01464cde, 0x0063a330, 0x001028c1}}},
+ {X: Field{[10]uint32{0x0211d8e2, 0x02c807dd, 0x03c4d5df, 0x03a37927, 0x02c8130f, 0x011fc368, 0x03ed5a60, 0x028bc65a, 0x01872a38, 0x002ac6b0}}, Y: Field{[10]uint32{0x0029d15b, 0x01607cf1, 0x0145f01a, 0x034cf879, 0x02f7ef93, 0x02da90ad, 0x02a5f39d, 0x005e87a6, 0x037a324d, 0x0004fd28}}},
+ {X: Field{[10]uint32{0x0354dd40, 0x03a1c551, 0x026cf863, 0x00c7f0d1, 0x01a24226, 0x035cbdba, 0x034841fc, 0x037f3d16, 0x007032c0, 0x0025ca49}}, Y: Field{[10]uint32{0x02a36143, 0x02d24bca, 0x02f49384, 0x014956b2, 0x0290dae8, 0x02f537cd, 0x015c75dc, 0x03a87734, 0x0244265f, 0x00247468}}},
+ {X: Field{[10]uint32{0x0251b3fa, 0x02bb9909, 0x03434226, 0x0195dcb7, 0x038ea1b3, 0x014fcc7b, 0x003a6072, 0x03e0b4dc, 0x029b5bee, 0x0009593f}}, Y: Field{[10]uint32{0x01e5122d, 0x00b9a8c0, 0x0016edb8, 0x02adade6, 0x0314f37d, 0x0080e497, 0x03a14ae1, 0x00e24257, 0x03a60678, 0x0022b67d}}},
+ {X: Field{[10]uint32{0x002ca7ff, 0x0360bae3, 0x0021a3c2, 0x0176577c, 0x03180364, 0x028bc9eb, 0x00791ad5, 0x01e5b814, 0x0397580a, 0x002258df}}, Y: Field{[10]uint32{0x00493e68, 0x0105785c, 0x02ab7bed, 0x028e390b, 0x01f87bc6, 0x010d5d22, 0x03b9cf15, 0x02109355, 0x01248c88, 0x000b47f8}}},
+ {X: Field{[10]uint32{0x007a89ee, 0x030d4cc3, 0x014f8057, 0x0271eadb, 0x024bdbc5, 0x03261962, 0x0060b88f, 0x01e7844a, 0x00e26a41, 0x001c7be9}}, Y: Field{[10]uint32{0x01366a2e, 0x0224ca70, 0x01a0b4f4, 0x02e2397a, 0x022aaafa, 0x005ca528, 0x03b2c32b, 0x0092ba7b, 0x001f8bb6, 0x000517ea}}},
+ {X: Field{[10]uint32{0x00a8dd7f, 0x01b58e83, 0x0381a618, 0x000d5a84, 0x021bc728, 0x0354d5d0, 0x01c9da03, 0x017824bf, 0x00e71be2, 0x000c204e}}, Y: Field{[10]uint32{0x0292c7f2, 0x017c91e2, 0x01915e41, 0x01190d2b, 0x00c81656, 0x00502386, 0x039ec45d, 0x03f24978, 0x02d28828, 0x000a3478}}},
+ {X: Field{[10]uint32{0x02180068, 0x0238f4eb, 0x03103b17, 0x01b082f4, 0x027ea3d5, 0x00c37006, 0x006c5c0c, 0x016c32ff, 0x0136ffac, 0x003fcf58}}, Y: Field{[10]uint32{0x008c6077, 0x01aedb86, 0x035e670a, 0x03c90007, 0x01547676, 0x0365ab70, 0x010372cd, 0x00003903, 0x01be84e4, 0x0004cc8e}}},
+ {X: Field{[10]uint32{0x026a3fb1, 0x03315a21, 0x02206c0d, 0x00a0664b, 0x036ec009, 0x016da18b, 0x025750c8, 0x03ad9747, 0x00e82a6d, 0x0015d7f1}}, Y: Field{[10]uint32{0x002655ad, 0x023a42a4, 0x02f2f09b, 0x01cf1a8e, 0x02ed33b5, 0x01e3a1f6, 0x031dbc29, 0x03f28b59, 0x039042a6, 0x001bdbb6}}},
+ {X: Field{[10]uint32{0x0121250a, 0x039ff72f, 0x00ad4954, 0x01d60e66, 0x03df45e1, 0x010d5579, 0x01e342ba, 0x022b494c, 0x01480bab, 0x000fea45}}, Y: Field{[10]uint32{0x02a76731, 0x021b00be, 0x01fb791c, 0x01680cad, 0x002e45e5, 0x00eec49f, 0x01bdf960, 0x02c0c33d, 0x02905499, 0x002fe6d9}}},
+ {X: Field{[10]uint32{0x010117df, 0x01aa291e, 0x0102921b, 0x02ef3880, 0x03da253b, 0x03ba8aa3, 0x03f26f81, 0x02ade889, 0x0036b64e, 0x00297b24}}, Y: Field{[10]uint32{0x006462fe, 0x00a04cfe, 0x02363d81, 0x03c15852, 0x031c8461, 0x0347e83d, 0x0197983a, 0x01010031, 0x02625ec1, 0x002de771}}},
+ {X: Field{[10]uint32{0x01e0545f, 0x0008d263, 0x0074f5cb, 0x0368841b, 0x0080e625, 0x02cd422b, 0x035ea004, 0x01c4928d, 0x03cc58e0, 0x00148116}}, Y: Field{[10]uint32{0x006c3d91, 0x028d3014, 0x01af236e, 0x003caa3f, 0x03793b9d, 0x00338c4a, 0x030ed9c2, 0x0048eb50, 0x01fcebe3, 0x0006cfcc}}},
+ {X: Field{[10]uint32{0x032ad712, 0x03e5d705, 0x007290b0, 0x02c37841, 0x015a398c, 0x0118d26e, 0x01e79761, 0x002c2527, 0x03e91331, 0x002854f7}}, Y: Field{[10]uint32{0x0148fdd2, 0x017d94e3, 0x03329c8a, 0x00a16bc2, 0x02bd053f, 0x007c6e26, 0x00318d5f, 0x016cbf12, 0x00413fb0, 0x003f6536}}},
+ {X: Field{[10]uint32{0x0220479f, 0x004f430c, 0x0338a89f, 0x02579796, 0x035de47b, 0x00dd80d8, 0x0162c8d2, 0x00bf6e00, 0x036ebe47, 0x00162d50}}, Y: Field{[10]uint32{0x027db17a, 0x01cdd795, 0x0334144a, 0x03120a6e, 0x0396af27, 0x00bdb7a0, 0x02913a25, 0x019cb138, 0x02b055cd, 0x002175ed}}},
+ {X: Field{[10]uint32{0x01cf5b3a, 0x030dc044, 0x02781030, 0x020ef6d6, 0x00c4433a, 0x023b7209, 0x01c34d08, 0x0118564d, 0x02c6af79, 0x00269506}}, Y: Field{[10]uint32{0x02a44ae4, 0x0155d7cd, 0x0252d63f, 0x0389487a, 0x035548fe, 0x0223d1d7, 0x03e1af36, 0x01aadf2b, 0x00c1cb10, 0x002d9852}}},
+ {X: Field{[10]uint32{0x03accae0, 0x012e8447, 0x0333748c, 0x0031692e, 0x023c8b35, 0x03c1c7f4, 0x01d94ce4, 0x009ea307, 0x02661395, 0x00023aa5}}, Y: Field{[10]uint32{0x0262b945, 0x03cd28c3, 0x038e955a, 0x02fa73c3, 0x0335b783, 0x02e57175, 0x00e7c0cf, 0x009e0b89, 0x02bbc8ee, 0x001883be}}},
+ },
+ {
+ {X: Field{[10]uint32{0x03accae0, 0x012e8447, 0x0333748c, 0x0031692e, 0x023c8b35, 0x03c1c7f4, 0x01d94ce4, 0x009ea307, 0x02661395, 0x00023aa5}}, Y: Field{[10]uint32{0x0262b945, 0x03cd28c3, 0x038e955a, 0x02fa73c3, 0x0335b783, 0x02e57175, 0x00e7c0cf, 0x009e0b89, 0x02bbc8ee, 0x001883be}}},
+ {X: Field{[10]uint32{0x0190b632, 0x00c4c768, 0x01ab9a29, 0x008e92ad, 0x0263cf2a, 0x01556760, 0x0266df31, 0x003367ce, 0x03717622, 0x003097d8}}, Y: Field{[10]uint32{0x009590cf, 0x02fcf5bf, 0x03a1d6ee, 0x03fe7809, 0x000a9f04, 0x020275e6, 0x01049903, 0x00a1ce62, 0x03ede94d, 0x0014c553}}},
+ {X: Field{[10]uint32{0x02a06f5e, 0x0102d659, 0x0037021a, 0x0145ba82, 0x02a34192, 0x0098edc5, 0x03b0d421, 0x0094eb0d, 0x00fbea14, 0x000e0ec9}}, Y: Field{[10]uint32{0x03c6e772, 0x03d1e1b4, 0x02b04089, 0x01d2ee30, 0x01e8f6ae, 0x013a9686, 0x00f566d5, 0x02e88113, 0x006ac4ed, 0x001533dc}}},
+ {X: Field{[10]uint32{0x0066d561, 0x032cedf5, 0x00b4de2c, 0x0370c65e, 0x000c7b55, 0x01a21513, 0x002d82a5, 0x01aeacfa, 0x01fe3cce, 0x000aa7a3}}, Y: Field{[10]uint32{0x02e76373, 0x0333d494, 0x02182f96, 0x03b05e80, 0x035e01ea, 0x0022e5b3, 0x007b5ad6, 0x01947eeb, 0x01a5c16e, 0x000077fb}}},
+ {X: Field{[10]uint32{0x0238a136, 0x01d70751, 0x00195c79, 0x038cda0e, 0x002b0d1c, 0x01835e43, 0x01e59c6b, 0x03b5b5e2, 0x02d03e02, 0x0039a10c}}, Y: Field{[10]uint32{0x006c2584, 0x03460423, 0x03336aaf, 0x03af6cd5, 0x032e09e3, 0x02807991, 0x012a7303, 0x01699893, 0x001398e3, 0x003296f9}}},
+ {X: Field{[10]uint32{0x03cf2dce, 0x026d0236, 0x006c0213, 0x00417077, 0x0068114a, 0x00bfe660, 0x009e4c99, 0x018862f5, 0x014292e4, 0x0025798b}}, Y: Field{[10]uint32{0x00c86594, 0x0377f7d6, 0x0120e62b, 0x0180dc13, 0x025e7b30, 0x010a354b, 0x03a26e2b, 0x00a1d460, 0x0184296c, 0x0001ada0}}},
+ {X: Field{[10]uint32{0x02e8c10c, 0x021f1105, 0x016807ce, 0x017ce46f, 0x03b47298, 0x01cc1b9f, 0x02fbdece, 0x0170a83b, 0x0159e2fe, 0x000e5775}}, Y: Field{[10]uint32{0x01fe638e, 0x035b64c1, 0x0122cbc3, 0x0013719a, 0x034c909c, 0x03fe9389, 0x0013e87a, 0x00ab1741, 0x00d4b459, 0x003f58b7}}},
+ {X: Field{[10]uint32{0x038be384, 0x034c810f, 0x036c3e8b, 0x02b68c76, 0x0271ec0a, 0x03f7bc1c, 0x01ad6c94, 0x00f86c94, 0x00a42be6, 0x002c8de4}}, Y: Field{[10]uint32{0x0319880e, 0x0291cf7a, 0x00b58d10, 0x03d0527b, 0x0117f004, 0x02a07e51, 0x0150f88a, 0x017b6fa3, 0x014919d5, 0x003f1ada}}},
+ {X: Field{[10]uint32{0x016c14ef, 0x01936c83, 0x03c8f516, 0x01d41be4, 0x000858fc, 0x03b89920, 0x02eed5be, 0x01772e7d, 0x02dc3552, 0x001e9452}}, Y: Field{[10]uint32{0x033fbd13, 0x00f861c2, 0x0224f7ad, 0x03dcaa9b, 0x0329beae, 0x0323d70d, 0x017f0b94, 0x039363a2, 0x01fed152, 0x0015bb74}}},
+ {X: Field{[10]uint32{0x017ec94b, 0x03c14f42, 0x01c2dff9, 0x02472356, 0x0127ed70, 0x02b9a060, 0x02215aa8, 0x03bfb47b, 0x03cb7b4a, 0x002c844e}}, Y: Field{[10]uint32{0x007831ad, 0x03efff1a, 0x010fdbd5, 0x002c8d5f, 0x03094322, 0x01532d3a, 0x01a0b534, 0x03b9cc41, 0x027399e8, 0x0024efa7}}},
+ {X: Field{[10]uint32{0x036d65eb, 0x0118f413, 0x021524a9, 0x01dd5100, 0x035a9910, 0x012423c8, 0x028ef3bf, 0x0364363a, 0x01584325, 0x0007b87f}}, Y: Field{[10]uint32{0x0122941c, 0x00dae497, 0x002b11e0, 0x03a618d6, 0x02ca32f4, 0x03d0bf3e, 0x03ab9fc4, 0x031cf073, 0x0091bdd6, 0x002eda4a}}},
+ {X: Field{[10]uint32{0x03a6257f, 0x01499165, 0x02c40b80, 0x02c689e9, 0x011873c3, 0x02c1f9e2, 0x0024274a, 0x013c9699, 0x01c8e1f5, 0x001c7a4d}}, Y: Field{[10]uint32{0x01b1e582, 0x005d1874, 0x00f7a5b2, 0x015033dc, 0x02ef2523, 0x01eb8a94, 0x02d86ba4, 0x008944f7, 0x0259f47c, 0x001e364f}}},
+ {X: Field{[10]uint32{0x0236cb44, 0x02543bc3, 0x020191f1, 0x01b23728, 0x01617e8b, 0x0220cd5f, 0x0058fd0d, 0x02aaa2f0, 0x0234d38f, 0x00055455}}, Y: Field{[10]uint32{0x03495a68, 0x02bd1947, 0x001e5329, 0x01d7c083, 0x01a8c371, 0x0118c817, 0x030e3f0b, 0x0148578d, 0x03c75557, 0x002ad3ff}}},
+ {X: Field{[10]uint32{0x01ca950e, 0x0211c91e, 0x03bacbf0, 0x01d8aec4, 0x0139e015, 0x03b8b118, 0x02f8be79, 0x02572b14, 0x01ca4ee7, 0x002af114}}, Y: Field{[10]uint32{0x029490d2, 0x039f6326, 0x013ec07c, 0x00033a95, 0x02526840, 0x00b24515, 0x01dfb80c, 0x0029676c, 0x00befe82, 0x002b89c6}}},
+ {X: Field{[10]uint32{0x0027bacc, 0x0251841d, 0x022e151f, 0x019374b5, 0x029e7331, 0x0163712a, 0x0358eb09, 0x014804d8, 0x006446bf, 0x000ef1af}}, Y: Field{[10]uint32{0x02d6fda6, 0x00cff57a, 0x02b4714c, 0x02948a2f, 0x03d71b75, 0x01b5b00a, 0x0362ee22, 0x030c1736, 0x00c07176, 0x00238c17}}},
+ {X: Field{[10]uint32{0x039a9787, 0x01db313a, 0x0168092f, 0x02056566, 0x0189bdde, 0x02f4de23, 0x0269716b, 0x028181d1, 0x01faef5b, 0x00374d89}}, Y: Field{[10]uint32{0x0244a573, 0x01a34031, 0x0395937f, 0x0260a20c, 0x02941461, 0x0115cc72, 0x01a25010, 0x00c35187, 0x03a3520e, 0x001e8623}}},
+ },
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/z_init.go b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/z_init.go
new file mode 100644
index 0000000000..051b8d1bf7
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2/z_init.go
@@ -0,0 +1,113 @@
+package secp256k1go
+
+/*
+import (
+ "os"
+ "fmt"
+ "time"
+)
+
+
+var (
+ pre_g, pre_g_128 []XY
+ prec [64][16]XY
+ fin XY
+)
+
+
+func ecmult_start() {
+ return
+ sta := time.Now()
+
+ g := TheCurve.G
+
+ // calculate 2^128*generator
+ var g_128j XYZ
+ g_128j.SetXY(&g)
+
+ for i := 0; i < 128; i++ {
+ g_128j.Double(&g_128j)
+ }
+
+ var g_128 XY
+ g_128.SetXYZ(&g_128j)
+
+ // precompute the tables with odd multiples
+ pre_g = g.precomp(WINDOW_G)
+ pre_g_128 = g_128.precomp(WINDOW_G)
+
+ // compute prec and fin
+ var gg XYZ
+ gg.SetXY(&g)
+ ad := g
+ var fn XYZ
+ fn.Infinity = true
+ for j:=0; j<64; j++ {
+ prec[j][0].SetXYZ(&gg)
+ fn.Add(&fn, &gg)
+ for i:=1; i<16; i++ {
+ gg.AddXY(&gg, &ad)
+ prec[j][i].SetXYZ(&gg)
+ }
+ ad = prec[j][15]
+ }
+ fin.SetXYZ(&fn)
+ fin.Neg(&fin)
+
+ if false {
+ f, _ := os.Create("z_prec.go")
+ fmt.Fprintln(f, "package secp256k1\n\nvar prec = [64][16]XY {")
+ for j:=0; j<64; j++ {
+ fmt.Fprintln(f, " {")
+ for i:=0; i<16; i++ {
+ fmt.Fprintln(f, "{X:" + fe2str(&prec[j][i].X) + ", Y:" + fe2str(&prec[j][i].Y) + "},")
+ }
+ fmt.Fprintln(f, "},")
+ }
+ fmt.Fprintln(f, "}")
+ f.Close()
+ }
+
+ if false {
+ f, _ := os.Create("z_pre_g.go")
+ fmt.Fprintln(f, "package secp256k1\n\nvar pre_g = []XY {")
+ for i := range pre_g {
+ fmt.Fprintln(f, "{X:" + fe2str(&pre_g[i].X) + ", Y:" + fe2str(&pre_g[i].Y) + "},")
+ }
+ fmt.Fprintln(f, "}")
+ f.Close()
+ }
+
+ if false {
+ f, _ := os.Create("z_pre_g_128.go")
+ fmt.Fprintln(f, "package secp256k1\n\nvar pre_g_128 = []XY {")
+ for i := range pre_g_128 {
+ fmt.Fprintln(f, "{X:" + fe2str(&pre_g_128[i].X) + ", Y:" + fe2str(&pre_g_128[i].Y) + "},")
+ }
+ fmt.Fprintln(f, "}")
+ f.Close()
+ }
+
+ if false {
+ f, _ := os.Create("z_fin.go")
+ fmt.Fprintln(f, "package secp256k1\n\nvar fim = XY {")
+ fmt.Fprintln(f, "X:" + fe2str(&fin.X) + ", Y:" + fe2str(&fin.Y) + ",")
+ fmt.Fprintln(f, "}")
+ f.Close()
+ }
+
+ println("start done in", time.Now().Sub(sta).String())
+}
+
+
+func fe2str(f *Field) (s string) {
+ s = fmt.Sprintf("Field{[10]uint32{0x%08x", f.n[0])
+ for i:=1; i 4 { // nolint: unconvert
+ log.Panic()
+ }
+
+ return sig
+}
+
+// SignDeterministic generates signature in repeatable way
+func SignDeterministic(msg []byte, seckey []byte, nonceSeed []byte) []byte {
+ nonceSeed2 := SumSHA256(nonceSeed) //deterministicly generate nonce
+
+ var sig = make([]byte, 65)
+ var recid int
+
+ var cSig secp.Signature
+
+ var seckey1 secp.Number
+ var msg1 secp.Number
+ var nonce1 secp.Number
+
+ seckey1.SetBytes(seckey)
+ msg1.SetBytes(msg)
+ nonce1.SetBytes(nonceSeed2)
+
+ ret := cSig.Sign(&seckey1, &msg1, &nonce1, &recid)
+ if ret != 1 {
+ log.Panic("Secp256k1-go, SignDeterministic, signature fail")
+ }
+
+ sigBytes := cSig.Bytes()
+ for i := 0; i < 64; i++ {
+ sig[i] = sigBytes[i]
+ }
+
+ sig[64] = byte(recid)
+
+ if len(sigBytes) != 64 {
+ log.Fatalf("Invalid signature byte count: %d", len(sigBytes))
+ }
+
+ if int(recid) > 4 { // nolint: unconvert
+ log.Panic()
+ }
+
+ return sig
+
+}
+
+// VerifySeckey renames ChkSeckeyValidity
+func VerifySeckey(seckey []byte) int {
+ if len(seckey) != 32 {
+ return -1
+ }
+
+ //does conversion internally if less than order of curve
+ if secp.SeckeyIsValid(seckey) != 1 {
+ return -2
+ }
+
+ //seckey is just 32 bit integer
+ //assume all seckey are valid
+ //no. must be less than order of curve
+ //note: converts internally
+ return 1
+}
+
+/*
+* Validate a public key.
+* Returns: 1: valid public key
+* 0: invalid public key
+ */
+
+// VerifyPubkey renames ChkPubkeyValidity
+// returns 1 on success
+func VerifyPubkey(pubkey []byte) int {
+ if len(pubkey) != 33 {
+ //log.Printf("Seck256k1, VerifyPubkey, pubkey length invalid")
+ return -1
+ }
+
+ if secp.PubkeyIsValid(pubkey) != 1 {
+ return -3 //tests parse and validity
+ }
+
+ var pubkey1 secp.XY
+ ret := pubkey1.ParsePubkey(pubkey)
+
+ if !ret {
+ return -2 //invalid, parse fail
+ }
+ //fails for unknown reason
+ //TODO: uncomment
+ if !pubkey1.IsValid() {
+ return -4 //invalid, validation fail
+ }
+ return 1 //valid
+}
+
+// VerifySignatureValidity verifies a signature is well formed and not malleable
+func VerifySignatureValidity(sig []byte) int {
+ //64+1
+ if len(sig) != 65 {
+ log.Fatal("1")
+ return 0
+ }
+ //malleability check:
+ //highest bit of 32nd byte must be 1
+ //0x7f us 126 or 0b01111111
+ if (sig[32] >> 7) == 1 {
+ log.Fatal("2")
+ return 0
+ }
+ //recovery id check
+ if sig[64] >= 4 {
+ log.Fatal("3")
+ return 0
+ }
+ return 1
+}
+
+// VerifySignature for compressed signatures, does not need pubkey
+func VerifySignature(msg []byte, sig []byte, pubkey1 []byte) int {
+ if msg == nil || sig == nil || pubkey1 == nil {
+ log.Panic("VerifySignature, ERROR: invalid input, nils")
+ }
+ if len(sig) != 65 {
+ log.Panic("VerifySignature, invalid signature length")
+ }
+ if len(pubkey1) != 33 {
+ log.Panic("VerifySignature, invalid pubkey length")
+ }
+
+ //malleability check:
+ //to enforce malleability, highest bit of S must be 1
+ //S starts at 32nd byte
+ //0x80 is 0b10000000 or 128 and masks highest bit
+ if (sig[32] >> 7) == 1 {
+ return 0 //valid signature, but fails malleability
+ }
+
+ if sig[64] >= 4 {
+ return 0 //recover byte invalid
+ }
+
+ pubkey2 := RecoverPubkey(msg, sig) //if pubkey recovered, signature valid
+
+ if pubkey2 == nil {
+ return 0
+ }
+
+ if len(pubkey2) != 33 {
+ log.Panic("recovered pubkey length invalid")
+ }
+
+ if !bytes.Equal(pubkey1, pubkey2) {
+ return 0 //pubkeys do not match
+ }
+
+ return 1 //valid signature
+}
+
+//SignatureErrorString returns error string for signature failure
+func SignatureErrorString(msg []byte, sig []byte, pubkey1 []byte) string {
+
+ if msg == nil || len(sig) != 65 || len(pubkey1) != 33 {
+ log.Panic()
+ }
+
+ if (sig[32] >> 7) == 1 {
+ return "signature fails malleability requirement"
+ }
+
+ if sig[64] >= 4 {
+ return "signature recovery byte is invalid, must be 0 to 3"
+ }
+
+ pubkey2 := RecoverPubkey(msg, sig) //if pubkey recovered, signature valid
+ if pubkey2 == nil {
+ return "pubkey from signature failed"
+ }
+
+ if !bytes.Equal(pubkey1, pubkey2) {
+ return "input pubkey and recovered pubkey do not match"
+ }
+
+ return "No Error!"
+}
+
+// RecoverPubkey recovers the public key from the signature
+//recovery of pubkey means correct signature
+func RecoverPubkey(msg []byte, sig []byte) []byte {
+ if len(sig) != 65 {
+ log.Panic()
+ }
+
+ var recid = int(sig[64])
+
+ pubkey, ret := secp.RecoverPublicKey(
+ sig[0:64],
+ msg,
+ recid)
+
+ if ret != 1 {
+ if DebugPrint {
+ log.Printf("RecoverPubkey: code %d", ret)
+ }
+ return nil
+ }
+ //var pubkey2 []byte = pubkey1.Bytes() //compressed
+
+ if pubkey == nil {
+ log.Panic("ERROR: impossible, pubkey nil and ret ==1")
+ }
+ if len(pubkey) != 33 {
+ log.Panic("pubkey length wrong")
+ }
+
+ return pubkey
+ //nonce1.SetBytes(nonce_seed)
+
+}
+
+// ECDH raise a pubkey to the power of a seckey
+func ECDH(pub []byte, sec []byte) []byte {
+ if len(sec) != 32 {
+ log.Panic()
+ }
+
+ if len(pub) != 33 {
+ log.Panic()
+ }
+
+ if VerifySeckey(sec) != 1 {
+ if DebugPrint {
+ log.Printf("Invalid Seckey")
+ }
+ }
+
+ if ret := VerifyPubkey(pub); ret != 1 {
+ if DebugPrint {
+ log.Printf("Invalid Pubkey, %d", ret)
+ }
+ return nil
+ }
+
+ pubkeyOut := secp.Multiply(pub, sec)
+ if pubkeyOut == nil {
+ return nil
+ }
+ if len(pubkeyOut) != 33 {
+ log.Panic("ERROR: impossible, invalid pubkey length")
+ }
+ return pubkeyOut
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/util/logging/formatter.go b/vendor/github.com/skycoin/skycoin/src/util/logging/formatter.go
new file mode 100644
index 0000000000..983a382bb1
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/util/logging/formatter.go
@@ -0,0 +1,441 @@
+package logging
+
+import (
+ "bytes"
+ "fmt"
+ "io"
+ "os"
+ "sort"
+ "strings"
+ "sync"
+ "time"
+
+ "github.com/mgutz/ansi"
+ "github.com/sirupsen/logrus"
+ "golang.org/x/crypto/ssh/terminal"
+)
+
+const defaultTimestampFormat = time.RFC3339
+
+var (
+ baseTimestamp = time.Now()
+ defaultColorScheme = &ColorScheme{
+ InfoLevelStyle: "green",
+ WarnLevelStyle: "yellow",
+ ErrorLevelStyle: "red",
+ FatalLevelStyle: "red",
+ PanicLevelStyle: "red",
+ DebugLevelStyle: "blue",
+ PrefixStyle: "cyan",
+ TimestampStyle: "black+h",
+ CallContextStyle: "black+h",
+ CriticalStyle: "magenta+h",
+ }
+ noColorsColorScheme = &compiledColorScheme{
+ InfoLevelColor: ansi.ColorFunc(""),
+ WarnLevelColor: ansi.ColorFunc(""),
+ ErrorLevelColor: ansi.ColorFunc(""),
+ FatalLevelColor: ansi.ColorFunc(""),
+ PanicLevelColor: ansi.ColorFunc(""),
+ DebugLevelColor: ansi.ColorFunc(""),
+ PrefixColor: ansi.ColorFunc(""),
+ TimestampColor: ansi.ColorFunc(""),
+ CallContextColor: ansi.ColorFunc(""),
+ CriticalColor: ansi.ColorFunc(""),
+ }
+ defaultCompiledColorScheme = compileColorScheme(defaultColorScheme)
+)
+
+func miniTS() int {
+ return int(time.Since(baseTimestamp) / time.Second)
+}
+
+// ColorScheme configures the logging output colors
+type ColorScheme struct {
+ InfoLevelStyle string
+ WarnLevelStyle string
+ ErrorLevelStyle string
+ FatalLevelStyle string
+ PanicLevelStyle string
+ DebugLevelStyle string
+ PrefixStyle string
+ TimestampStyle string
+ CallContextStyle string
+ CriticalStyle string
+}
+
+type compiledColorScheme struct {
+ InfoLevelColor func(string) string
+ WarnLevelColor func(string) string
+ ErrorLevelColor func(string) string
+ FatalLevelColor func(string) string
+ PanicLevelColor func(string) string
+ DebugLevelColor func(string) string
+ PrefixColor func(string) string
+ TimestampColor func(string) string
+ CallContextColor func(string) string
+ CriticalColor func(string) string
+}
+
+// TextFormatter formats log output
+type TextFormatter struct {
+ // Set to true to bypass checking for a TTY before outputting colors.
+ ForceColors bool
+
+ // Force disabling colors. For a TTY colors are enabled by default.
+ DisableColors bool
+
+ // Force formatted layout, even for non-TTY output.
+ ForceFormatting bool
+
+ // Disable timestamp logging. useful when output is redirected to logging
+ // system that already adds timestamps.
+ DisableTimestamp bool
+
+ // Disable the conversion of the log levels to uppercase
+ DisableUppercase bool
+
+ // Enable logging the full timestamp when a TTY is attached instead of just
+ // the time passed since beginning of execution.
+ FullTimestamp bool
+
+ // Timestamp format to use for display when a full timestamp is printed.
+ TimestampFormat string
+
+ // The fields are sorted by default for a consistent output. For applications
+ // that log extremely frequently and don't use the JSON formatter this may not
+ // be desired.
+ DisableSorting bool
+
+ // Wrap empty fields in quotes if true.
+ QuoteEmptyFields bool
+
+ // Can be set to the override the default quoting character "
+ // with something else. For example: ', or `.
+ QuoteCharacter string
+
+ // Pad msg field with spaces on the right for display.
+ // The value for this parameter will be the size of padding.
+ // Its default value is zero, which means no padding will be applied for msg.
+ SpacePadding int
+
+ // Always use quotes for string values (except for empty fields)
+ AlwaysQuoteStrings bool
+
+ // Color scheme to use.
+ colorScheme *compiledColorScheme
+
+ // Whether the logger's out is to a terminal.
+ isTerminal bool
+
+ sync.Once
+}
+
+func getCompiledColor(main string, fallback string) func(string) string {
+ var style string
+ if main != "" {
+ style = main
+ } else {
+ style = fallback
+ }
+ return ansi.ColorFunc(style)
+}
+
+func compileColorScheme(s *ColorScheme) *compiledColorScheme {
+ return &compiledColorScheme{
+ InfoLevelColor: getCompiledColor(s.InfoLevelStyle, defaultColorScheme.InfoLevelStyle),
+ WarnLevelColor: getCompiledColor(s.WarnLevelStyle, defaultColorScheme.WarnLevelStyle),
+ ErrorLevelColor: getCompiledColor(s.ErrorLevelStyle, defaultColorScheme.ErrorLevelStyle),
+ FatalLevelColor: getCompiledColor(s.FatalLevelStyle, defaultColorScheme.FatalLevelStyle),
+ PanicLevelColor: getCompiledColor(s.PanicLevelStyle, defaultColorScheme.PanicLevelStyle),
+ DebugLevelColor: getCompiledColor(s.DebugLevelStyle, defaultColorScheme.DebugLevelStyle),
+ PrefixColor: getCompiledColor(s.PrefixStyle, defaultColorScheme.PrefixStyle),
+ TimestampColor: getCompiledColor(s.TimestampStyle, defaultColorScheme.TimestampStyle),
+ CallContextColor: getCompiledColor(s.CallContextStyle, defaultColorScheme.CallContextStyle),
+ CriticalColor: getCompiledColor(s.CriticalStyle, defaultColorScheme.CriticalStyle),
+ }
+}
+
+func (f *TextFormatter) init(entry *logrus.Entry) {
+ if len(f.QuoteCharacter) == 0 {
+ f.QuoteCharacter = "\""
+ }
+ if entry.Logger != nil {
+ f.isTerminal = f.checkIfTerminal(entry.Logger.Out)
+ }
+}
+
+func (f *TextFormatter) checkIfTerminal(w io.Writer) bool {
+ switch v := w.(type) {
+ case *os.File:
+ return terminal.IsTerminal(int(v.Fd()))
+ default:
+ return false
+ }
+}
+
+// SetColorScheme sets the TextFormatter's color scheme configuration
+func (f *TextFormatter) SetColorScheme(colorScheme *ColorScheme) {
+ f.colorScheme = compileColorScheme(colorScheme)
+}
+
+// Format formats a logrus.Entry
+func (f *TextFormatter) Format(entry *logrus.Entry) ([]byte, error) {
+ var b *bytes.Buffer
+ keys := make([]string, 0, len(entry.Data))
+ for k := range entry.Data {
+ keys = append(keys, k)
+ }
+ lastKeyIdx := len(keys) - 1
+
+ if !f.DisableSorting {
+ sort.Strings(keys)
+ }
+ if entry.Buffer != nil {
+ b = entry.Buffer
+ } else {
+ b = &bytes.Buffer{}
+ }
+
+ f.Do(func() { f.init(entry) })
+
+ isFormatted := f.ForceFormatting || f.isTerminal
+
+ timestampFormat := f.TimestampFormat
+ if timestampFormat == "" {
+ timestampFormat = defaultTimestampFormat
+ }
+ if isFormatted {
+ isColored := (f.ForceColors || f.isTerminal) && !f.DisableColors
+ var colorScheme *compiledColorScheme
+ if isColored {
+ if f.colorScheme == nil {
+ colorScheme = defaultCompiledColorScheme
+ } else {
+ colorScheme = f.colorScheme
+ }
+ } else {
+ colorScheme = noColorsColorScheme
+ }
+ f.printColored(b, entry, keys, timestampFormat, colorScheme)
+ } else {
+ if !f.DisableTimestamp {
+ f.appendKeyValue(b, "time", entry.Time.Format(timestampFormat), true)
+ }
+ f.appendKeyValue(b, "level", entry.Level.String(), true)
+ if entry.Message != "" {
+ f.appendKeyValue(b, "msg", entry.Message, lastKeyIdx >= 0)
+ }
+ for i, key := range keys {
+ f.appendKeyValue(b, key, entry.Data[key], lastKeyIdx != i)
+ }
+ }
+
+ b.WriteByte('\n') // nolint: gosec
+ return b.Bytes(), nil
+}
+
+func (f *TextFormatter) printColored(b *bytes.Buffer, entry *logrus.Entry, keys []string, timestampFormat string, colorScheme *compiledColorScheme) {
+ var levelColor func(string) string
+ var levelText string
+ switch entry.Level {
+ case logrus.InfoLevel:
+ levelColor = colorScheme.InfoLevelColor
+ case logrus.WarnLevel:
+ levelColor = colorScheme.WarnLevelColor
+ case logrus.ErrorLevel:
+ levelColor = colorScheme.ErrorLevelColor
+ case logrus.FatalLevel:
+ levelColor = colorScheme.FatalLevelColor
+ case logrus.PanicLevel:
+ levelColor = colorScheme.PanicLevelColor
+ default:
+ levelColor = colorScheme.DebugLevelColor
+ }
+
+ priority, ok := entry.Data[logPriorityKey]
+ hasPriority := ok && priority == logPriorityCritical
+
+ if entry.Level != logrus.WarnLevel {
+ levelText = entry.Level.String()
+ } else {
+ levelText = "warn"
+ }
+
+ if !f.DisableUppercase {
+ levelText = strings.ToUpper(levelText)
+ }
+
+ level := levelColor(levelText)
+ message := entry.Message
+ prefix := ""
+
+ prefixText := extractPrefix(entry)
+ if prefixText != "" {
+ prefixText = " " + prefixText + ":"
+ prefix = colorScheme.PrefixColor(prefixText)
+ }
+
+ messageFormat := "%s"
+ if f.SpacePadding != 0 {
+ messageFormat = fmt.Sprintf("%%-%ds", f.SpacePadding)
+ }
+ if message != "" {
+ messageFormat = " " + messageFormat
+ }
+
+ callContextParts := []string{}
+ if ifile, ok := entry.Data["file"]; ok {
+ if sfile, ok := ifile.(string); ok && sfile != "" {
+ callContextParts = append(callContextParts, sfile)
+ }
+ }
+ if ifunc, ok := entry.Data["func"]; ok {
+ if sfunc, ok := ifunc.(string); ok && sfunc != "" {
+ callContextParts = append(callContextParts, sfunc)
+ }
+ }
+ if iline, ok := entry.Data["line"]; ok {
+ sline := ""
+ switch iline := iline.(type) {
+ case string:
+ sline = iline
+ case int, uint, int32, int64, uint32, uint64:
+ sline = fmt.Sprint(iline)
+ }
+ if sline != "" {
+ callContextParts = append(callContextParts, fmt.Sprint(sline))
+ }
+ }
+ callContextText := strings.Join(callContextParts, ":")
+ callContext := colorScheme.CallContextColor(callContextText)
+ if callContext != "" {
+ callContext = " " + callContext
+ }
+
+ if f.DisableTimestamp {
+ if hasPriority {
+ str := fmt.Sprintf("%s%s%s"+messageFormat, levelText, callContextText, prefixText, message)
+ fmt.Fprint(b, colorScheme.CriticalColor(str))
+ } else {
+ fmt.Fprintf(b, "%s%s%s"+messageFormat, level, callContext, prefix, message)
+ }
+ } else {
+ var timestamp string
+ if !f.FullTimestamp {
+ timestamp = fmt.Sprintf("[%04d]", miniTS())
+ } else {
+ timestamp = fmt.Sprintf("[%s]", entry.Time.Format(timestampFormat))
+ }
+
+ coloredTimestamp := colorScheme.TimestampColor(timestamp)
+
+ if hasPriority {
+ str := fmt.Sprintf("%s %s%s%s"+messageFormat, timestamp, levelText, callContextText, prefixText, message)
+ fmt.Fprint(b, colorScheme.CriticalColor(str))
+ } else {
+ fmt.Fprintf(b, "%s %s%s%s"+messageFormat, coloredTimestamp, level, callContext, prefix, message)
+ }
+ }
+
+ for _, k := range keys {
+ if k != "prefix" && k != "file" && k != "func" && k != "line" && k != logPriorityKey && k != logModuleKey {
+ v := entry.Data[k]
+ fmt.Fprintf(b, " %s", f.formatKeyValue(levelColor(k), v))
+ }
+ }
+}
+
+func (f *TextFormatter) needsQuoting(text string) bool {
+ if len(text) == 0 {
+ return f.QuoteEmptyFields
+ }
+
+ if f.AlwaysQuoteStrings {
+ return true
+ }
+
+ for _, ch := range text {
+ if !((ch >= 'a' && ch <= 'z') ||
+ (ch >= 'A' && ch <= 'Z') ||
+ (ch >= '0' && ch <= '9') ||
+ ch == '-' || ch == '.') {
+ return true
+ }
+ }
+
+ return false
+}
+
+func extractPrefix(e *logrus.Entry) string {
+ var module string
+ if iModule, ok := e.Data[logModuleKey]; ok {
+ module, _ = iModule.(string)
+ }
+
+ var priority string
+ if iPriority, ok := e.Data[logPriorityKey]; ok {
+ priority, _ = iPriority.(string)
+ }
+
+ switch {
+ case priority == "":
+ return fmt.Sprintf("[%s]", module)
+ case module == "":
+ return fmt.Sprintf("[%s]", priority)
+ default:
+ return fmt.Sprintf("[%s:%s]", module, priority)
+ }
+}
+
+func (f *TextFormatter) formatKeyValue(key string, value interface{}) string {
+ return fmt.Sprintf("%s=%s", key, f.formatValue(value))
+}
+
+func (f *TextFormatter) formatValue(value interface{}) string {
+ switch value := value.(type) {
+ case string:
+ if f.needsQuoting(value) {
+ return fmt.Sprintf("%s%+v%s", f.QuoteCharacter, value, f.QuoteCharacter)
+ }
+ return value
+ case error:
+ errmsg := value.Error()
+ if f.needsQuoting(errmsg) {
+ return fmt.Sprintf("%s%+v%s", f.QuoteCharacter, errmsg, f.QuoteCharacter)
+ }
+ return errmsg
+ default:
+ return fmt.Sprintf("%+v", value)
+ }
+}
+
+func (f *TextFormatter) appendKeyValue(b *bytes.Buffer, key string, value interface{}, appendSpace bool) {
+ b.WriteString(key) // nolint: gosec
+ b.WriteByte('=') // nolint: gosec
+ f.appendValue(b, value) // nolint: gosec
+
+ if appendSpace {
+ b.WriteByte(' ') // nolint: gosec
+ }
+}
+
+func (f *TextFormatter) appendValue(b *bytes.Buffer, value interface{}) {
+ switch value := value.(type) {
+ case string:
+ if f.needsQuoting(value) {
+ fmt.Fprintf(b, "%s%+v%s", f.QuoteCharacter, value, f.QuoteCharacter)
+ } else {
+ b.WriteString(value) // nolint: gosec
+ }
+ case error:
+ errmsg := value.Error()
+ if f.needsQuoting(errmsg) {
+ fmt.Fprintf(b, "%s%+v%s", f.QuoteCharacter, errmsg, f.QuoteCharacter)
+ } else {
+ b.WriteString(errmsg) // nolint: gosec
+ }
+ default:
+ fmt.Fprint(b, value)
+ }
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/util/logging/hooks.go b/vendor/github.com/skycoin/skycoin/src/util/logging/hooks.go
new file mode 100644
index 0000000000..d8d0cc61d3
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/util/logging/hooks.go
@@ -0,0 +1,44 @@
+package logging
+
+import (
+ "io"
+
+ "github.com/sirupsen/logrus"
+)
+
+// WriteHook is a logrus.Hook that logs to an io.Writer
+type WriteHook struct {
+ w io.Writer
+ formatter logrus.Formatter
+}
+
+// NewWriteHook returns a new WriteHook
+func NewWriteHook(w io.Writer) *WriteHook {
+ return &WriteHook{
+ w: w,
+ formatter: &TextFormatter{
+ DisableColors: true,
+ FullTimestamp: true,
+ AlwaysQuoteStrings: true,
+ QuoteEmptyFields: true,
+ ForceFormatting: true,
+ },
+ }
+}
+
+// Levels returns Levels accepted by the WriteHook.
+// All logrus.Levels are returned.
+func (f *WriteHook) Levels() []logrus.Level {
+ return logrus.AllLevels
+}
+
+// Fire writes a logrus.Entry to the file
+func (f *WriteHook) Fire(e *logrus.Entry) error {
+ b, err := f.formatter.Format(e)
+ if err != nil {
+ return err
+ }
+
+ _, err = f.w.Write(b)
+ return err
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/util/logging/logger.go b/vendor/github.com/skycoin/skycoin/src/util/logging/logger.go
new file mode 100644
index 0000000000..2f3b4f7b59
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/util/logging/logger.go
@@ -0,0 +1,71 @@
+package logging
+
+import (
+ "os"
+
+ "github.com/sirupsen/logrus"
+)
+
+// Logger wraps logrus.FieldLogger
+type Logger struct {
+ logrus.FieldLogger
+}
+
+// Critical adds special critical-level fields for specially highlighted logging,
+// since logrus lacks a distinct critical field and does not have configurable log levels
+func (logger *Logger) Critical() logrus.FieldLogger {
+ return logger.WithField(logPriorityKey, logPriorityCritical)
+}
+
+// MasterLogger wraps logrus.Logger and is able to create new package-aware loggers
+type MasterLogger struct {
+ *logrus.Logger
+}
+
+// NewMasterLogger creates a new package-aware logger with formatting string
+func NewMasterLogger() *MasterLogger {
+ hooks := make(logrus.LevelHooks)
+
+ return &MasterLogger{
+ Logger: &logrus.Logger{
+ Out: os.Stdout,
+ Formatter: &TextFormatter{
+ FullTimestamp: true,
+ AlwaysQuoteStrings: true,
+ QuoteEmptyFields: true,
+ ForceFormatting: true,
+ DisableColors: false,
+ ForceColors: false,
+ },
+ Hooks: hooks,
+ Level: logrus.DebugLevel,
+ },
+ }
+}
+
+// PackageLogger instantiates a package-aware logger
+func (logger *MasterLogger) PackageLogger(moduleName string) *Logger {
+ return &Logger{
+ FieldLogger: logger.WithField(logModuleKey, moduleName),
+ }
+}
+
+// AddHook adds a logrus.Hook to the logger and its module loggers
+func (logger *MasterLogger) AddHook(hook logrus.Hook) {
+ logger.Hooks.Add(hook)
+}
+
+// SetLevel sets the log level for the logger and its module loggers
+func (logger *MasterLogger) SetLevel(level logrus.Level) {
+ logger.Level = level
+}
+
+// EnableColors enables colored logging
+func (logger *MasterLogger) EnableColors() {
+ logger.Formatter.(*TextFormatter).DisableColors = false
+}
+
+// DisableColors disables colored logging
+func (logger *MasterLogger) DisableColors() {
+ logger.Formatter.(*TextFormatter).DisableColors = true
+}
diff --git a/vendor/github.com/skycoin/skycoin/src/util/logging/logging.go b/vendor/github.com/skycoin/skycoin/src/util/logging/logging.go
new file mode 100644
index 0000000000..f7b86ffc6a
--- /dev/null
+++ b/vendor/github.com/skycoin/skycoin/src/util/logging/logging.go
@@ -0,0 +1,79 @@
+/*
+Package logging provides application logging utilities
+*/
+package logging
+
+import (
+ "errors"
+ "io"
+ "io/ioutil"
+ "strings"
+
+ "github.com/sirupsen/logrus"
+)
+
+var log = NewMasterLogger()
+
+const (
+ // logModuleKey is the key used for the module name data entry
+ logModuleKey = "_module"
+ // logPriorityKey is the log entry key for priority log statements
+ logPriorityKey = "_priority"
+ // logPriorityCritical is the log entry value for priority log statements
+ logPriorityCritical = "CRITICAL"
+)
+
+// LevelFromString returns a logrus.Level from a string identifier
+func LevelFromString(s string) (logrus.Level, error) {
+ switch strings.ToLower(s) {
+ case "debug":
+ return logrus.DebugLevel, nil
+ case "info", "notice":
+ return logrus.InfoLevel, nil
+ case "warn", "warning":
+ return logrus.WarnLevel, nil
+ case "error":
+ return logrus.ErrorLevel, nil
+ case "fatal", "critical":
+ return logrus.FatalLevel, nil
+ case "panic":
+ return logrus.PanicLevel, nil
+ default:
+ return logrus.DebugLevel, errors.New("could not convert string to log level")
+ }
+}
+
+// MustGetLogger returns a package-aware logger from the master logger
+func MustGetLogger(module string) *Logger {
+ return log.PackageLogger(module)
+}
+
+// AddHook adds a hook to the global logger
+func AddHook(hook logrus.Hook) {
+ log.AddHook(hook)
+}
+
+// EnableColors enables colored logging
+func EnableColors() {
+ log.EnableColors()
+}
+
+// DisableColors disables colored logging
+func DisableColors() {
+ log.DisableColors()
+}
+
+// SetLevel sets the logger's minimum log level
+func SetLevel(level logrus.Level) {
+ log.SetLevel(level)
+}
+
+// SetOutputTo sets the logger's output to an io.Writer
+func SetOutputTo(w io.Writer) {
+ log.Out = w
+}
+
+// Disable disables the logger completely
+func Disable() {
+ log.Out = ioutil.Discard
+}
diff --git a/vendor/github.com/spf13/cobra/.gitignore b/vendor/github.com/spf13/cobra/.gitignore
new file mode 100644
index 0000000000..1b8c7c2611
--- /dev/null
+++ b/vendor/github.com/spf13/cobra/.gitignore
@@ -0,0 +1,36 @@
+# Compiled Object files, Static and Dynamic libs (Shared Objects)
+*.o
+*.a
+*.so
+
+# Folders
+_obj
+_test
+
+# Architecture specific extensions/prefixes
+*.[568vq]
+[568vq].out
+
+*.cgo1.go
+*.cgo2.c
+_cgo_defun.c
+_cgo_gotypes.go
+_cgo_export.*
+
+_testmain.go
+
+# Vim files https://github.com/github/gitignore/blob/master/Global/Vim.gitignore
+# swap
+[._]*.s[a-w][a-z]
+[._]s[a-w][a-z]
+# session
+Session.vim
+# temporary
+.netrwhist
+*~
+# auto-generated tag files
+tags
+
+*.exe
+
+cobra.test
diff --git a/vendor/github.com/spf13/cobra/.mailmap b/vendor/github.com/spf13/cobra/.mailmap
new file mode 100644
index 0000000000..94ec53068a
--- /dev/null
+++ b/vendor/github.com/spf13/cobra/.mailmap
@@ -0,0 +1,3 @@
+Steve Francia
+Bjørn Erik Pedersen
+Fabiano Franz
diff --git a/vendor/github.com/spf13/cobra/.travis.yml b/vendor/github.com/spf13/cobra/.travis.yml
new file mode 100644
index 0000000000..5afcb20961
--- /dev/null
+++ b/vendor/github.com/spf13/cobra/.travis.yml
@@ -0,0 +1,21 @@
+language: go
+
+matrix:
+ include:
+ - go: 1.9.4
+ - go: 1.10.0
+ - go: tip
+ allow_failures:
+ - go: tip
+
+before_install:
+ - mkdir -p bin
+ - curl -Lso bin/shellcheck https://github.com/caarlos0/shellcheck-docker/releases/download/v0.4.3/shellcheck
+ - chmod +x bin/shellcheck
+script:
+ - PATH=$PATH:$PWD/bin go test -v ./...
+ - go build
+ - diff -u <(echo -n) <(gofmt -d -s .)
+ - if [ -z $NOVET ]; then
+ diff -u <(echo -n) <(go tool vet . 2>&1 | grep -vE 'ExampleCommand|bash_completions.*Fprint');
+ fi
diff --git a/vendor/github.com/spf13/cobra/LICENSE.txt b/vendor/github.com/spf13/cobra/LICENSE.txt
new file mode 100644
index 0000000000..298f0e2665
--- /dev/null
+++ b/vendor/github.com/spf13/cobra/LICENSE.txt
@@ -0,0 +1,174 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
diff --git a/vendor/github.com/spf13/cobra/README.md b/vendor/github.com/spf13/cobra/README.md
new file mode 100644
index 0000000000..851fcc087c
--- /dev/null
+++ b/vendor/github.com/spf13/cobra/README.md
@@ -0,0 +1,736 @@
+![cobra logo](https://cloud.githubusercontent.com/assets/173412/10886352/ad566232-814f-11e5-9cd0-aa101788c117.png)
+
+Cobra is both a library for creating powerful modern CLI applications as well as a program to generate applications and command files.
+
+Many of the most widely used Go projects are built using Cobra including:
+
+* [Kubernetes](http://kubernetes.io/)
+* [Hugo](http://gohugo.io)
+* [rkt](https://github.com/coreos/rkt)
+* [etcd](https://github.com/coreos/etcd)
+* [Moby (former Docker)](https://github.com/moby/moby)
+* [Docker (distribution)](https://github.com/docker/distribution)
+* [OpenShift](https://www.openshift.com/)
+* [Delve](https://github.com/derekparker/delve)
+* [GopherJS](http://www.gopherjs.org/)
+* [CockroachDB](http://www.cockroachlabs.com/)
+* [Bleve](http://www.blevesearch.com/)
+* [ProjectAtomic (enterprise)](http://www.projectatomic.io/)
+* [GiantSwarm's swarm](https://github.com/giantswarm/cli)
+* [Nanobox](https://github.com/nanobox-io/nanobox)/[Nanopack](https://github.com/nanopack)
+* [rclone](http://rclone.org/)
+* [nehm](https://github.com/bogem/nehm)
+* [Pouch](https://github.com/alibaba/pouch)
+
+[![Build Status](https://travis-ci.org/spf13/cobra.svg "Travis CI status")](https://travis-ci.org/spf13/cobra)
+[![CircleCI status](https://circleci.com/gh/spf13/cobra.png?circle-token=:circle-token "CircleCI status")](https://circleci.com/gh/spf13/cobra)
+[![GoDoc](https://godoc.org/github.com/spf13/cobra?status.svg)](https://godoc.org/github.com/spf13/cobra)
+
+# Table of Contents
+
+- [Overview](#overview)
+- [Concepts](#concepts)
+ * [Commands](#commands)
+ * [Flags](#flags)
+- [Installing](#installing)
+- [Getting Started](#getting-started)
+ * [Using the Cobra Generator](#using-the-cobra-generator)
+ * [Using the Cobra Library](#using-the-cobra-library)
+ * [Working with Flags](#working-with-flags)
+ * [Positional and Custom Arguments](#positional-and-custom-arguments)
+ * [Example](#example)
+ * [Help Command](#help-command)
+ * [Usage Message](#usage-message)
+ * [PreRun and PostRun Hooks](#prerun-and-postrun-hooks)
+ * [Suggestions when "unknown command" happens](#suggestions-when-unknown-command-happens)
+ * [Generating documentation for your command](#generating-documentation-for-your-command)
+ * [Generating bash completions](#generating-bash-completions)
+- [Contributing](#contributing)
+- [License](#license)
+
+# Overview
+
+Cobra is a library providing a simple interface to create powerful modern CLI
+interfaces similar to git & go tools.
+
+Cobra is also an application that will generate your application scaffolding to rapidly
+develop a Cobra-based application.
+
+Cobra provides:
+* Easy subcommand-based CLIs: `app server`, `app fetch`, etc.
+* Fully POSIX-compliant flags (including short & long versions)
+* Nested subcommands
+* Global, local and cascading flags
+* Easy generation of applications & commands with `cobra init appname` & `cobra add cmdname`
+* Intelligent suggestions (`app srver`... did you mean `app server`?)
+* Automatic help generation for commands and flags
+* Automatic help flag recognition of `-h`, `--help`, etc.
+* Automatically generated bash autocomplete for your application
+* Automatically generated man pages for your application
+* Command aliases so you can change things without breaking them
+* The flexibility to define your own help, usage, etc.
+* Optional tight integration with [viper](http://github.com/spf13/viper) for 12-factor apps
+
+# Concepts
+
+Cobra is built on a structure of commands, arguments & flags.
+
+**Commands** represent actions, **Args** are things and **Flags** are modifiers for those actions.
+
+The best applications will read like sentences when used. Users will know how
+to use the application because they will natively understand how to use it.
+
+The pattern to follow is
+`APPNAME VERB NOUN --ADJECTIVE.`
+ or
+`APPNAME COMMAND ARG --FLAG`
+
+A few good real world examples may better illustrate this point.
+
+In the following example, 'server' is a command, and 'port' is a flag:
+
+ hugo server --port=1313
+
+In this command we are telling Git to clone the url bare.
+
+ git clone URL --bare
+
+## Commands
+
+Command is the central point of the application. Each interaction that
+the application supports will be contained in a Command. A command can
+have children commands and optionally run an action.
+
+In the example above, 'server' is the command.
+
+[More about cobra.Command](https://godoc.org/github.com/spf13/cobra#Command)
+
+## Flags
+
+A flag is a way to modify the behavior of a command. Cobra supports
+fully POSIX-compliant flags as well as the Go [flag package](https://golang.org/pkg/flag/).
+A Cobra command can define flags that persist through to children commands
+and flags that are only available to that command.
+
+In the example above, 'port' is the flag.
+
+Flag functionality is provided by the [pflag
+library](https://github.com/spf13/pflag), a fork of the flag standard library
+which maintains the same interface while adding POSIX compliance.
+
+# Installing
+Using Cobra is easy. First, use `go get` to install the latest version
+of the library. This command will install the `cobra` generator executable
+along with the library and its dependencies:
+
+ go get -u github.com/spf13/cobra/cobra
+
+Next, include Cobra in your application:
+
+```go
+import "github.com/spf13/cobra"
+```
+
+# Getting Started
+
+While you are welcome to provide your own organization, typically a Cobra-based
+application will follow the following organizational structure:
+
+```
+ ▾ appName/
+ ▾ cmd/
+ add.go
+ your.go
+ commands.go
+ here.go
+ main.go
+```
+
+In a Cobra app, typically the main.go file is very bare. It serves one purpose: initializing Cobra.
+
+```go
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "{pathToYourApp}/cmd"
+)
+
+func main() {
+ cmd.Execute()
+}
+```
+
+## Using the Cobra Generator
+
+Cobra provides its own program that will create your application and add any
+commands you want. It's the easiest way to incorporate Cobra into your application.
+
+[Here](https://github.com/spf13/cobra/blob/master/cobra/README.md) you can find more information about it.
+
+## Using the Cobra Library
+
+To manually implement Cobra you need to create a bare main.go file and a rootCmd file.
+You will optionally provide additional commands as you see fit.
+
+### Create rootCmd
+
+Cobra doesn't require any special constructors. Simply create your commands.
+
+Ideally you place this in app/cmd/root.go:
+
+```go
+var rootCmd = &cobra.Command{
+ Use: "hugo",
+ Short: "Hugo is a very fast static site generator",
+ Long: `A Fast and Flexible Static Site Generator built with
+ love by spf13 and friends in Go.
+ Complete documentation is available at http://hugo.spf13.com`,
+ Run: func(cmd *cobra.Command, args []string) {
+ // Do Stuff Here
+ },
+}
+
+func Execute() {
+ if err := rootCmd.Execute(); err != nil {
+ fmt.Println(err)
+ os.Exit(1)
+ }
+}
+```
+
+You will additionally define flags and handle configuration in your init() function.
+
+For example cmd/root.go:
+
+```go
+import (
+ "fmt"
+ "os"
+
+ homedir "github.com/mitchellh/go-homedir"
+ "github.com/spf13/cobra"
+ "github.com/spf13/viper"
+)
+
+func init() {
+ cobra.OnInitialize(initConfig)
+ rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.cobra.yaml)")
+ rootCmd.PersistentFlags().StringVarP(&projectBase, "projectbase", "b", "", "base project directory eg. github.com/spf13/")
+ rootCmd.PersistentFlags().StringP("author", "a", "YOUR NAME", "Author name for copyright attribution")
+ rootCmd.PersistentFlags().StringVarP(&userLicense, "license", "l", "", "Name of license for the project (can provide `licensetext` in config)")
+ rootCmd.PersistentFlags().Bool("viper", true, "Use Viper for configuration")
+ viper.BindPFlag("author", rootCmd.PersistentFlags().Lookup("author"))
+ viper.BindPFlag("projectbase", rootCmd.PersistentFlags().Lookup("projectbase"))
+ viper.BindPFlag("useViper", rootCmd.PersistentFlags().Lookup("viper"))
+ viper.SetDefault("author", "NAME HERE ")
+ viper.SetDefault("license", "apache")
+}
+
+func initConfig() {
+ // Don't forget to read config either from cfgFile or from home directory!
+ if cfgFile != "" {
+ // Use config file from the flag.
+ viper.SetConfigFile(cfgFile)
+ } else {
+ // Find home directory.
+ home, err := homedir.Dir()
+ if err != nil {
+ fmt.Println(err)
+ os.Exit(1)
+ }
+
+ // Search config in home directory with name ".cobra" (without extension).
+ viper.AddConfigPath(home)
+ viper.SetConfigName(".cobra")
+ }
+
+ if err := viper.ReadInConfig(); err != nil {
+ fmt.Println("Can't read config:", err)
+ os.Exit(1)
+ }
+}
+```
+
+### Create your main.go
+
+With the root command you need to have your main function execute it.
+Execute should be run on the root for clarity, though it can be called on any command.
+
+In a Cobra app, typically the main.go file is very bare. It serves, one purpose, to initialize Cobra.
+
+```go
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "{pathToYourApp}/cmd"
+)
+
+func main() {
+ cmd.Execute()
+}
+```
+
+### Create additional commands
+
+Additional commands can be defined and typically are each given their own file
+inside of the cmd/ directory.
+
+If you wanted to create a version command you would create cmd/version.go and
+populate it with the following:
+
+```go
+package cmd
+
+import (
+ "fmt"
+
+ "github.com/spf13/cobra"
+)
+
+func init() {
+ rootCmd.AddCommand(versionCmd)
+}
+
+var versionCmd = &cobra.Command{
+ Use: "version",
+ Short: "Print the version number of Hugo",
+ Long: `All software has versions. This is Hugo's`,
+ Run: func(cmd *cobra.Command, args []string) {
+ fmt.Println("Hugo Static Site Generator v0.9 -- HEAD")
+ },
+}
+```
+
+## Working with Flags
+
+Flags provide modifiers to control how the action command operates.
+
+### Assign flags to a command
+
+Since the flags are defined and used in different locations, we need to
+define a variable outside with the correct scope to assign the flag to
+work with.
+
+```go
+var Verbose bool
+var Source string
+```
+
+There are two different approaches to assign a flag.
+
+### Persistent Flags
+
+A flag can be 'persistent' meaning that this flag will be available to the
+command it's assigned to as well as every command under that command. For
+global flags, assign a flag as a persistent flag on the root.
+
+```go
+rootCmd.PersistentFlags().BoolVarP(&Verbose, "verbose", "v", false, "verbose output")
+```
+
+### Local Flags
+
+A flag can also be assigned locally which will only apply to that specific command.
+
+```go
+rootCmd.Flags().StringVarP(&Source, "source", "s", "", "Source directory to read from")
+```
+
+### Local Flag on Parent Commands
+
+By default Cobra only parses local flags on the target command, any local flags on
+parent commands are ignored. By enabling `Command.TraverseChildren` Cobra will
+parse local flags on each command before executing the target command.
+
+```go
+command := cobra.Command{
+ Use: "print [OPTIONS] [COMMANDS]",
+ TraverseChildren: true,
+}
+```
+
+### Bind Flags with Config
+
+You can also bind your flags with [viper](https://github.com/spf13/viper):
+```go
+var author string
+
+func init() {
+ rootCmd.PersistentFlags().StringVar(&author, "author", "YOUR NAME", "Author name for copyright attribution")
+ viper.BindPFlag("author", rootCmd.PersistentFlags().Lookup("author"))
+}
+```
+
+In this example the persistent flag `author` is bound with `viper`.
+**Note**, that the variable `author` will not be set to the value from config,
+when the `--author` flag is not provided by user.
+
+More in [viper documentation](https://github.com/spf13/viper#working-with-flags).
+
+### Required flags
+
+Flags are optional by default. If instead you wish your command to report an error
+when a flag has not been set, mark it as required:
+```go
+rootCmd.Flags().StringVarP(&Region, "region", "r", "", "AWS region (required)")
+rootCmd.MarkFlagRequired("region")
+```
+
+## Positional and Custom Arguments
+
+Validation of positional arguments can be specified using the `Args` field
+of `Command`.
+
+The following validators are built in:
+
+- `NoArgs` - the command will report an error if there are any positional args.
+- `ArbitraryArgs` - the command will accept any args.
+- `OnlyValidArgs` - the command will report an error if there are any positional args that are not in the `ValidArgs` field of `Command`.
+- `MinimumNArgs(int)` - the command will report an error if there are not at least N positional args.
+- `MaximumNArgs(int)` - the command will report an error if there are more than N positional args.
+- `ExactArgs(int)` - the command will report an error if there are not exactly N positional args.
+- `RangeArgs(min, max)` - the command will report an error if the number of args is not between the minimum and maximum number of expected args.
+
+An example of setting the custom validator:
+
+```go
+var cmd = &cobra.Command{
+ Short: "hello",
+ Args: func(cmd *cobra.Command, args []string) error {
+ if len(args) < 1 {
+ return errors.New("requires at least one arg")
+ }
+ if myapp.IsValidColor(args[0]) {
+ return nil
+ }
+ return fmt.Errorf("invalid color specified: %s", args[0])
+ },
+ Run: func(cmd *cobra.Command, args []string) {
+ fmt.Println("Hello, World!")
+ },
+}
+```
+
+## Example
+
+In the example below, we have defined three commands. Two are at the top level
+and one (cmdTimes) is a child of one of the top commands. In this case the root
+is not executable meaning that a subcommand is required. This is accomplished
+by not providing a 'Run' for the 'rootCmd'.
+
+We have only defined one flag for a single command.
+
+More documentation about flags is available at https://github.com/spf13/pflag
+
+```go
+package main
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/spf13/cobra"
+)
+
+func main() {
+ var echoTimes int
+
+ var cmdPrint = &cobra.Command{
+ Use: "print [string to print]",
+ Short: "Print anything to the screen",
+ Long: `print is for printing anything back to the screen.
+For many years people have printed back to the screen.`,
+ Args: cobra.MinimumNArgs(1),
+ Run: func(cmd *cobra.Command, args []string) {
+ fmt.Println("Print: " + strings.Join(args, " "))
+ },
+ }
+
+ var cmdEcho = &cobra.Command{
+ Use: "echo [string to echo]",
+ Short: "Echo anything to the screen",
+ Long: `echo is for echoing anything back.
+Echo works a lot like print, except it has a child command.`,
+ Args: cobra.MinimumNArgs(1),
+ Run: func(cmd *cobra.Command, args []string) {
+ fmt.Println("Print: " + strings.Join(args, " "))
+ },
+ }
+
+ var cmdTimes = &cobra.Command{
+ Use: "times [# times] [string to echo]",
+ Short: "Echo anything to the screen more times",
+ Long: `echo things multiple times back to the user by providing
+a count and a string.`,
+ Args: cobra.MinimumNArgs(1),
+ Run: func(cmd *cobra.Command, args []string) {
+ for i := 0; i < echoTimes; i++ {
+ fmt.Println("Echo: " + strings.Join(args, " "))
+ }
+ },
+ }
+
+ cmdTimes.Flags().IntVarP(&echoTimes, "times", "t", 1, "times to echo the input")
+
+ var rootCmd = &cobra.Command{Use: "app"}
+ rootCmd.AddCommand(cmdPrint, cmdEcho)
+ cmdEcho.AddCommand(cmdTimes)
+ rootCmd.Execute()
+}
+```
+
+For a more complete example of a larger application, please checkout [Hugo](http://gohugo.io/).
+
+## Help Command
+
+Cobra automatically adds a help command to your application when you have subcommands.
+This will be called when a user runs 'app help'. Additionally, help will also
+support all other commands as input. Say, for instance, you have a command called
+'create' without any additional configuration; Cobra will work when 'app help
+create' is called. Every command will automatically have the '--help' flag added.
+
+### Example
+
+The following output is automatically generated by Cobra. Nothing beyond the
+command and flag definitions are needed.
+
+ $ cobra help
+
+ Cobra is a CLI library for Go that empowers applications.
+ This application is a tool to generate the needed files
+ to quickly create a Cobra application.
+
+ Usage:
+ cobra [command]
+
+ Available Commands:
+ add Add a command to a Cobra Application
+ help Help about any command
+ init Initialize a Cobra Application
+
+ Flags:
+ -a, --author string author name for copyright attribution (default "YOUR NAME")
+ --config string config file (default is $HOME/.cobra.yaml)
+ -h, --help help for cobra
+ -l, --license string name of license for the project
+ --viper use Viper for configuration (default true)
+
+ Use "cobra [command] --help" for more information about a command.
+
+
+Help is just a command like any other. There is no special logic or behavior
+around it. In fact, you can provide your own if you want.
+
+### Defining your own help
+
+You can provide your own Help command or your own template for the default command to use
+with following functions:
+
+```go
+cmd.SetHelpCommand(cmd *Command)
+cmd.SetHelpFunc(f func(*Command, []string))
+cmd.SetHelpTemplate(s string)
+```
+
+The latter two will also apply to any children commands.
+
+## Usage Message
+
+When the user provides an invalid flag or invalid command, Cobra responds by
+showing the user the 'usage'.
+
+### Example
+You may recognize this from the help above. That's because the default help
+embeds the usage as part of its output.
+
+ $ cobra --invalid
+ Error: unknown flag: --invalid
+ Usage:
+ cobra [command]
+
+ Available Commands:
+ add Add a command to a Cobra Application
+ help Help about any command
+ init Initialize a Cobra Application
+
+ Flags:
+ -a, --author string author name for copyright attribution (default "YOUR NAME")
+ --config string config file (default is $HOME/.cobra.yaml)
+ -h, --help help for cobra
+ -l, --license string name of license for the project
+ --viper use Viper for configuration (default true)
+
+ Use "cobra [command] --help" for more information about a command.
+
+### Defining your own usage
+You can provide your own usage function or template for Cobra to use.
+Like help, the function and template are overridable through public methods:
+
+```go
+cmd.SetUsageFunc(f func(*Command) error)
+cmd.SetUsageTemplate(s string)
+```
+
+## Version Flag
+
+Cobra adds a top-level '--version' flag if the Version field is set on the root command.
+Running an application with the '--version' flag will print the version to stdout using
+the version template. The template can be customized using the
+`cmd.SetVersionTemplate(s string)` function.
+
+## PreRun and PostRun Hooks
+
+It is possible to run functions before or after the main `Run` function of your command. The `PersistentPreRun` and `PreRun` functions will be executed before `Run`. `PersistentPostRun` and `PostRun` will be executed after `Run`. The `Persistent*Run` functions will be inherited by children if they do not declare their own. These functions are run in the following order:
+
+- `PersistentPreRun`
+- `PreRun`
+- `Run`
+- `PostRun`
+- `PersistentPostRun`
+
+An example of two commands which use all of these features is below. When the subcommand is executed, it will run the root command's `PersistentPreRun` but not the root command's `PersistentPostRun`:
+
+```go
+package main
+
+import (
+ "fmt"
+
+ "github.com/spf13/cobra"
+)
+
+func main() {
+
+ var rootCmd = &cobra.Command{
+ Use: "root [sub]",
+ Short: "My root command",
+ PersistentPreRun: func(cmd *cobra.Command, args []string) {
+ fmt.Printf("Inside rootCmd PersistentPreRun with args: %v\n", args)
+ },
+ PreRun: func(cmd *cobra.Command, args []string) {
+ fmt.Printf("Inside rootCmd PreRun with args: %v\n", args)
+ },
+ Run: func(cmd *cobra.Command, args []string) {
+ fmt.Printf("Inside rootCmd Run with args: %v\n", args)
+ },
+ PostRun: func(cmd *cobra.Command, args []string) {
+ fmt.Printf("Inside rootCmd PostRun with args: %v\n", args)
+ },
+ PersistentPostRun: func(cmd *cobra.Command, args []string) {
+ fmt.Printf("Inside rootCmd PersistentPostRun with args: %v\n", args)
+ },
+ }
+
+ var subCmd = &cobra.Command{
+ Use: "sub [no options!]",
+ Short: "My subcommand",
+ PreRun: func(cmd *cobra.Command, args []string) {
+ fmt.Printf("Inside subCmd PreRun with args: %v\n", args)
+ },
+ Run: func(cmd *cobra.Command, args []string) {
+ fmt.Printf("Inside subCmd Run with args: %v\n", args)
+ },
+ PostRun: func(cmd *cobra.Command, args []string) {
+ fmt.Printf("Inside subCmd PostRun with args: %v\n", args)
+ },
+ PersistentPostRun: func(cmd *cobra.Command, args []string) {
+ fmt.Printf("Inside subCmd PersistentPostRun with args: %v\n", args)
+ },
+ }
+
+ rootCmd.AddCommand(subCmd)
+
+ rootCmd.SetArgs([]string{""})
+ rootCmd.Execute()
+ fmt.Println()
+ rootCmd.SetArgs([]string{"sub", "arg1", "arg2"})
+ rootCmd.Execute()
+}
+```
+
+Output:
+```
+Inside rootCmd PersistentPreRun with args: []
+Inside rootCmd PreRun with args: []
+Inside rootCmd Run with args: []
+Inside rootCmd PostRun with args: []
+Inside rootCmd PersistentPostRun with args: []
+
+Inside rootCmd PersistentPreRun with args: [arg1 arg2]
+Inside subCmd PreRun with args: [arg1 arg2]
+Inside subCmd Run with args: [arg1 arg2]
+Inside subCmd PostRun with args: [arg1 arg2]
+Inside subCmd PersistentPostRun with args: [arg1 arg2]
+```
+
+## Suggestions when "unknown command" happens
+
+Cobra will print automatic suggestions when "unknown command" errors happen. This allows Cobra to behave similarly to the `git` command when a typo happens. For example:
+
+```
+$ hugo srever
+Error: unknown command "srever" for "hugo"
+
+Did you mean this?
+ server
+
+Run 'hugo --help' for usage.
+```
+
+Suggestions are automatic based on every subcommand registered and use an implementation of [Levenshtein distance](http://en.wikipedia.org/wiki/Levenshtein_distance). Every registered command that matches a minimum distance of 2 (ignoring case) will be displayed as a suggestion.
+
+If you need to disable suggestions or tweak the string distance in your command, use:
+
+```go
+command.DisableSuggestions = true
+```
+
+or
+
+```go
+command.SuggestionsMinimumDistance = 1
+```
+
+You can also explicitly set names for which a given command will be suggested using the `SuggestFor` attribute. This allows suggestions for strings that are not close in terms of string distance, but makes sense in your set of commands and for some which you don't want aliases. Example:
+
+```
+$ kubectl remove
+Error: unknown command "remove" for "kubectl"
+
+Did you mean this?
+ delete
+
+Run 'kubectl help' for usage.
+```
+
+## Generating documentation for your command
+
+Cobra can generate documentation based on subcommands, flags, etc. in the following formats:
+
+- [Markdown](doc/md_docs.md)
+- [ReStructured Text](doc/rest_docs.md)
+- [Man Page](doc/man_docs.md)
+
+## Generating bash completions
+
+Cobra can generate a bash-completion file. If you add more information to your command, these completions can be amazingly powerful and flexible. Read more about it in [Bash Completions](bash_completions.md).
+
+# Contributing
+
+1. Fork it
+2. Download your fork to your PC (`git clone https://github.com/your_username/cobra && cd cobra`)
+3. Create your feature branch (`git checkout -b my-new-feature`)
+4. Make changes and add them (`git add .`)
+5. Commit your changes (`git commit -m 'Add some feature'`)
+6. Push to the branch (`git push origin my-new-feature`)
+7. Create new pull request
+
+# License
+
+Cobra is released under the Apache 2.0 license. See [LICENSE.txt](https://github.com/spf13/cobra/blob/master/LICENSE.txt)
diff --git a/vendor/github.com/spf13/cobra/args.go b/vendor/github.com/spf13/cobra/args.go
new file mode 100644
index 0000000000..a5d8a9273e
--- /dev/null
+++ b/vendor/github.com/spf13/cobra/args.go
@@ -0,0 +1,89 @@
+package cobra
+
+import (
+ "fmt"
+)
+
+type PositionalArgs func(cmd *Command, args []string) error
+
+// Legacy arg validation has the following behaviour:
+// - root commands with no subcommands can take arbitrary arguments
+// - root commands with subcommands will do subcommand validity checking
+// - subcommands will always accept arbitrary arguments
+func legacyArgs(cmd *Command, args []string) error {
+ // no subcommand, always take args
+ if !cmd.HasSubCommands() {
+ return nil
+ }
+
+ // root command with subcommands, do subcommand checking.
+ if !cmd.HasParent() && len(args) > 0 {
+ return fmt.Errorf("unknown command %q for %q%s", args[0], cmd.CommandPath(), cmd.findSuggestions(args[0]))
+ }
+ return nil
+}
+
+// NoArgs returns an error if any args are included.
+func NoArgs(cmd *Command, args []string) error {
+ if len(args) > 0 {
+ return fmt.Errorf("unknown command %q for %q", args[0], cmd.CommandPath())
+ }
+ return nil
+}
+
+// OnlyValidArgs returns an error if any args are not in the list of ValidArgs.
+func OnlyValidArgs(cmd *Command, args []string) error {
+ if len(cmd.ValidArgs) > 0 {
+ for _, v := range args {
+ if !stringInSlice(v, cmd.ValidArgs) {
+ return fmt.Errorf("invalid argument %q for %q%s", v, cmd.CommandPath(), cmd.findSuggestions(args[0]))
+ }
+ }
+ }
+ return nil
+}
+
+// ArbitraryArgs never returns an error.
+func ArbitraryArgs(cmd *Command, args []string) error {
+ return nil
+}
+
+// MinimumNArgs returns an error if there is not at least N args.
+func MinimumNArgs(n int) PositionalArgs {
+ return func(cmd *Command, args []string) error {
+ if len(args) < n {
+ return fmt.Errorf("requires at least %d arg(s), only received %d", n, len(args))
+ }
+ return nil
+ }
+}
+
+// MaximumNArgs returns an error if there are more than N args.
+func MaximumNArgs(n int) PositionalArgs {
+ return func(cmd *Command, args []string) error {
+ if len(args) > n {
+ return fmt.Errorf("accepts at most %d arg(s), received %d", n, len(args))
+ }
+ return nil
+ }
+}
+
+// ExactArgs returns an error if there are not exactly n args.
+func ExactArgs(n int) PositionalArgs {
+ return func(cmd *Command, args []string) error {
+ if len(args) != n {
+ return fmt.Errorf("accepts %d arg(s), received %d", n, len(args))
+ }
+ return nil
+ }
+}
+
+// RangeArgs returns an error if the number of args is not within the expected range.
+func RangeArgs(min int, max int) PositionalArgs {
+ return func(cmd *Command, args []string) error {
+ if len(args) < min || len(args) > max {
+ return fmt.Errorf("accepts between %d and %d arg(s), received %d", min, max, len(args))
+ }
+ return nil
+ }
+}
diff --git a/vendor/github.com/spf13/cobra/bash_completions.go b/vendor/github.com/spf13/cobra/bash_completions.go
new file mode 100644
index 0000000000..8fa8f486fa
--- /dev/null
+++ b/vendor/github.com/spf13/cobra/bash_completions.go
@@ -0,0 +1,584 @@
+package cobra
+
+import (
+ "bytes"
+ "fmt"
+ "io"
+ "os"
+ "sort"
+ "strings"
+
+ "github.com/spf13/pflag"
+)
+
+// Annotations for Bash completion.
+const (
+ BashCompFilenameExt = "cobra_annotation_bash_completion_filename_extensions"
+ BashCompCustom = "cobra_annotation_bash_completion_custom"
+ BashCompOneRequiredFlag = "cobra_annotation_bash_completion_one_required_flag"
+ BashCompSubdirsInDir = "cobra_annotation_bash_completion_subdirs_in_dir"
+)
+
+func writePreamble(buf *bytes.Buffer, name string) {
+ buf.WriteString(fmt.Sprintf("# bash completion for %-36s -*- shell-script -*-\n", name))
+ buf.WriteString(fmt.Sprintf(`
+__%[1]s_debug()
+{
+ if [[ -n ${BASH_COMP_DEBUG_FILE} ]]; then
+ echo "$*" >> "${BASH_COMP_DEBUG_FILE}"
+ fi
+}
+
+# Homebrew on Macs have version 1.3 of bash-completion which doesn't include
+# _init_completion. This is a very minimal version of that function.
+__%[1]s_init_completion()
+{
+ COMPREPLY=()
+ _get_comp_words_by_ref "$@" cur prev words cword
+}
+
+__%[1]s_index_of_word()
+{
+ local w word=$1
+ shift
+ index=0
+ for w in "$@"; do
+ [[ $w = "$word" ]] && return
+ index=$((index+1))
+ done
+ index=-1
+}
+
+__%[1]s_contains_word()
+{
+ local w word=$1; shift
+ for w in "$@"; do
+ [[ $w = "$word" ]] && return
+ done
+ return 1
+}
+
+__%[1]s_handle_reply()
+{
+ __%[1]s_debug "${FUNCNAME[0]}"
+ case $cur in
+ -*)
+ if [[ $(type -t compopt) = "builtin" ]]; then
+ compopt -o nospace
+ fi
+ local allflags
+ if [ ${#must_have_one_flag[@]} -ne 0 ]; then
+ allflags=("${must_have_one_flag[@]}")
+ else
+ allflags=("${flags[*]} ${two_word_flags[*]}")
+ fi
+ COMPREPLY=( $(compgen -W "${allflags[*]}" -- "$cur") )
+ if [[ $(type -t compopt) = "builtin" ]]; then
+ [[ "${COMPREPLY[0]}" == *= ]] || compopt +o nospace
+ fi
+
+ # complete after --flag=abc
+ if [[ $cur == *=* ]]; then
+ if [[ $(type -t compopt) = "builtin" ]]; then
+ compopt +o nospace
+ fi
+
+ local index flag
+ flag="${cur%%=*}"
+ __%[1]s_index_of_word "${flag}" "${flags_with_completion[@]}"
+ COMPREPLY=()
+ if [[ ${index} -ge 0 ]]; then
+ PREFIX=""
+ cur="${cur#*=}"
+ ${flags_completion[${index}]}
+ if [ -n "${ZSH_VERSION}" ]; then
+ # zsh completion needs --flag= prefix
+ eval "COMPREPLY=( \"\${COMPREPLY[@]/#/${flag}=}\" )"
+ fi
+ fi
+ fi
+ return 0;
+ ;;
+ esac
+
+ # check if we are handling a flag with special work handling
+ local index
+ __%[1]s_index_of_word "${prev}" "${flags_with_completion[@]}"
+ if [[ ${index} -ge 0 ]]; then
+ ${flags_completion[${index}]}
+ return
+ fi
+
+ # we are parsing a flag and don't have a special handler, no completion
+ if [[ ${cur} != "${words[cword]}" ]]; then
+ return
+ fi
+
+ local completions
+ completions=("${commands[@]}")
+ if [[ ${#must_have_one_noun[@]} -ne 0 ]]; then
+ completions=("${must_have_one_noun[@]}")
+ fi
+ if [[ ${#must_have_one_flag[@]} -ne 0 ]]; then
+ completions+=("${must_have_one_flag[@]}")
+ fi
+ COMPREPLY=( $(compgen -W "${completions[*]}" -- "$cur") )
+
+ if [[ ${#COMPREPLY[@]} -eq 0 && ${#noun_aliases[@]} -gt 0 && ${#must_have_one_noun[@]} -ne 0 ]]; then
+ COMPREPLY=( $(compgen -W "${noun_aliases[*]}" -- "$cur") )
+ fi
+
+ if [[ ${#COMPREPLY[@]} -eq 0 ]]; then
+ declare -F __custom_func >/dev/null && __custom_func
+ fi
+
+ # available in bash-completion >= 2, not always present on macOS
+ if declare -F __ltrim_colon_completions >/dev/null; then
+ __ltrim_colon_completions "$cur"
+ fi
+
+ # If there is only 1 completion and it is a flag with an = it will be completed
+ # but we don't want a space after the =
+ if [[ "${#COMPREPLY[@]}" -eq "1" ]] && [[ $(type -t compopt) = "builtin" ]] && [[ "${COMPREPLY[0]}" == --*= ]]; then
+ compopt -o nospace
+ fi
+}
+
+# The arguments should be in the form "ext1|ext2|extn"
+__%[1]s_handle_filename_extension_flag()
+{
+ local ext="$1"
+ _filedir "@(${ext})"
+}
+
+__%[1]s_handle_subdirs_in_dir_flag()
+{
+ local dir="$1"
+ pushd "${dir}" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1
+}
+
+__%[1]s_handle_flag()
+{
+ __%[1]s_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}"
+
+ # if a command required a flag, and we found it, unset must_have_one_flag()
+ local flagname=${words[c]}
+ local flagvalue
+ # if the word contained an =
+ if [[ ${words[c]} == *"="* ]]; then
+ flagvalue=${flagname#*=} # take in as flagvalue after the =
+ flagname=${flagname%%=*} # strip everything after the =
+ flagname="${flagname}=" # but put the = back
+ fi
+ __%[1]s_debug "${FUNCNAME[0]}: looking for ${flagname}"
+ if __%[1]s_contains_word "${flagname}" "${must_have_one_flag[@]}"; then
+ must_have_one_flag=()
+ fi
+
+ # if you set a flag which only applies to this command, don't show subcommands
+ if __%[1]s_contains_word "${flagname}" "${local_nonpersistent_flags[@]}"; then
+ commands=()
+ fi
+
+ # keep flag value with flagname as flaghash
+ # flaghash variable is an associative array which is only supported in bash > 3.
+ if [[ -z "${BASH_VERSION}" || "${BASH_VERSINFO[0]}" -gt 3 ]]; then
+ if [ -n "${flagvalue}" ] ; then
+ flaghash[${flagname}]=${flagvalue}
+ elif [ -n "${words[ $((c+1)) ]}" ] ; then
+ flaghash[${flagname}]=${words[ $((c+1)) ]}
+ else
+ flaghash[${flagname}]="true" # pad "true" for bool flag
+ fi
+ fi
+
+ # skip the argument to a two word flag
+ if __%[1]s_contains_word "${words[c]}" "${two_word_flags[@]}"; then
+ c=$((c+1))
+ # if we are looking for a flags value, don't show commands
+ if [[ $c -eq $cword ]]; then
+ commands=()
+ fi
+ fi
+
+ c=$((c+1))
+
+}
+
+__%[1]s_handle_noun()
+{
+ __%[1]s_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}"
+
+ if __%[1]s_contains_word "${words[c]}" "${must_have_one_noun[@]}"; then
+ must_have_one_noun=()
+ elif __%[1]s_contains_word "${words[c]}" "${noun_aliases[@]}"; then
+ must_have_one_noun=()
+ fi
+
+ nouns+=("${words[c]}")
+ c=$((c+1))
+}
+
+__%[1]s_handle_command()
+{
+ __%[1]s_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}"
+
+ local next_command
+ if [[ -n ${last_command} ]]; then
+ next_command="_${last_command}_${words[c]//:/__}"
+ else
+ if [[ $c -eq 0 ]]; then
+ next_command="_%[1]s_root_command"
+ else
+ next_command="_${words[c]//:/__}"
+ fi
+ fi
+ c=$((c+1))
+ __%[1]s_debug "${FUNCNAME[0]}: looking for ${next_command}"
+ declare -F "$next_command" >/dev/null && $next_command
+}
+
+__%[1]s_handle_word()
+{
+ if [[ $c -ge $cword ]]; then
+ __%[1]s_handle_reply
+ return
+ fi
+ __%[1]s_debug "${FUNCNAME[0]}: c is $c words[c] is ${words[c]}"
+ if [[ "${words[c]}" == -* ]]; then
+ __%[1]s_handle_flag
+ elif __%[1]s_contains_word "${words[c]}" "${commands[@]}"; then
+ __%[1]s_handle_command
+ elif [[ $c -eq 0 ]]; then
+ __%[1]s_handle_command
+ elif __%[1]s_contains_word "${words[c]}" "${command_aliases[@]}"; then
+ # aliashash variable is an associative array which is only supported in bash > 3.
+ if [[ -z "${BASH_VERSION}" || "${BASH_VERSINFO[0]}" -gt 3 ]]; then
+ words[c]=${aliashash[${words[c]}]}
+ __%[1]s_handle_command
+ else
+ __%[1]s_handle_noun
+ fi
+ else
+ __%[1]s_handle_noun
+ fi
+ __%[1]s_handle_word
+}
+
+`, name))
+}
+
+func writePostscript(buf *bytes.Buffer, name string) {
+ name = strings.Replace(name, ":", "__", -1)
+ buf.WriteString(fmt.Sprintf("__start_%s()\n", name))
+ buf.WriteString(fmt.Sprintf(`{
+ local cur prev words cword
+ declare -A flaghash 2>/dev/null || :
+ declare -A aliashash 2>/dev/null || :
+ if declare -F _init_completion >/dev/null 2>&1; then
+ _init_completion -s || return
+ else
+ __%[1]s_init_completion -n "=" || return
+ fi
+
+ local c=0
+ local flags=()
+ local two_word_flags=()
+ local local_nonpersistent_flags=()
+ local flags_with_completion=()
+ local flags_completion=()
+ local commands=("%[1]s")
+ local must_have_one_flag=()
+ local must_have_one_noun=()
+ local last_command
+ local nouns=()
+
+ __%[1]s_handle_word
+}
+
+`, name))
+ buf.WriteString(fmt.Sprintf(`if [[ $(type -t compopt) = "builtin" ]]; then
+ complete -o default -F __start_%s %s
+else
+ complete -o default -o nospace -F __start_%s %s
+fi
+
+`, name, name, name, name))
+ buf.WriteString("# ex: ts=4 sw=4 et filetype=sh\n")
+}
+
+func writeCommands(buf *bytes.Buffer, cmd *Command) {
+ buf.WriteString(" commands=()\n")
+ for _, c := range cmd.Commands() {
+ if !c.IsAvailableCommand() || c == cmd.helpCommand {
+ continue
+ }
+ buf.WriteString(fmt.Sprintf(" commands+=(%q)\n", c.Name()))
+ writeCmdAliases(buf, c)
+ }
+ buf.WriteString("\n")
+}
+
+func writeFlagHandler(buf *bytes.Buffer, name string, annotations map[string][]string, cmd *Command) {
+ for key, value := range annotations {
+ switch key {
+ case BashCompFilenameExt:
+ buf.WriteString(fmt.Sprintf(" flags_with_completion+=(%q)\n", name))
+
+ var ext string
+ if len(value) > 0 {
+ ext = fmt.Sprintf("__%s_handle_filename_extension_flag ", cmd.Root().Name()) + strings.Join(value, "|")
+ } else {
+ ext = "_filedir"
+ }
+ buf.WriteString(fmt.Sprintf(" flags_completion+=(%q)\n", ext))
+ case BashCompCustom:
+ buf.WriteString(fmt.Sprintf(" flags_with_completion+=(%q)\n", name))
+ if len(value) > 0 {
+ handlers := strings.Join(value, "; ")
+ buf.WriteString(fmt.Sprintf(" flags_completion+=(%q)\n", handlers))
+ } else {
+ buf.WriteString(" flags_completion+=(:)\n")
+ }
+ case BashCompSubdirsInDir:
+ buf.WriteString(fmt.Sprintf(" flags_with_completion+=(%q)\n", name))
+
+ var ext string
+ if len(value) == 1 {
+ ext = fmt.Sprintf("__%s_handle_subdirs_in_dir_flag ", cmd.Root().Name()) + value[0]
+ } else {
+ ext = "_filedir -d"
+ }
+ buf.WriteString(fmt.Sprintf(" flags_completion+=(%q)\n", ext))
+ }
+ }
+}
+
+func writeShortFlag(buf *bytes.Buffer, flag *pflag.Flag, cmd *Command) {
+ name := flag.Shorthand
+ format := " "
+ if len(flag.NoOptDefVal) == 0 {
+ format += "two_word_"
+ }
+ format += "flags+=(\"-%s\")\n"
+ buf.WriteString(fmt.Sprintf(format, name))
+ writeFlagHandler(buf, "-"+name, flag.Annotations, cmd)
+}
+
+func writeFlag(buf *bytes.Buffer, flag *pflag.Flag, cmd *Command) {
+ name := flag.Name
+ format := " flags+=(\"--%s"
+ if len(flag.NoOptDefVal) == 0 {
+ format += "="
+ }
+ format += "\")\n"
+ buf.WriteString(fmt.Sprintf(format, name))
+ writeFlagHandler(buf, "--"+name, flag.Annotations, cmd)
+}
+
+func writeLocalNonPersistentFlag(buf *bytes.Buffer, flag *pflag.Flag) {
+ name := flag.Name
+ format := " local_nonpersistent_flags+=(\"--%s"
+ if len(flag.NoOptDefVal) == 0 {
+ format += "="
+ }
+ format += "\")\n"
+ buf.WriteString(fmt.Sprintf(format, name))
+}
+
+func writeFlags(buf *bytes.Buffer, cmd *Command) {
+ buf.WriteString(` flags=()
+ two_word_flags=()
+ local_nonpersistent_flags=()
+ flags_with_completion=()
+ flags_completion=()
+
+`)
+ localNonPersistentFlags := cmd.LocalNonPersistentFlags()
+ cmd.NonInheritedFlags().VisitAll(func(flag *pflag.Flag) {
+ if nonCompletableFlag(flag) {
+ return
+ }
+ writeFlag(buf, flag, cmd)
+ if len(flag.Shorthand) > 0 {
+ writeShortFlag(buf, flag, cmd)
+ }
+ if localNonPersistentFlags.Lookup(flag.Name) != nil {
+ writeLocalNonPersistentFlag(buf, flag)
+ }
+ })
+ cmd.InheritedFlags().VisitAll(func(flag *pflag.Flag) {
+ if nonCompletableFlag(flag) {
+ return
+ }
+ writeFlag(buf, flag, cmd)
+ if len(flag.Shorthand) > 0 {
+ writeShortFlag(buf, flag, cmd)
+ }
+ })
+
+ buf.WriteString("\n")
+}
+
+func writeRequiredFlag(buf *bytes.Buffer, cmd *Command) {
+ buf.WriteString(" must_have_one_flag=()\n")
+ flags := cmd.NonInheritedFlags()
+ flags.VisitAll(func(flag *pflag.Flag) {
+ if nonCompletableFlag(flag) {
+ return
+ }
+ for key := range flag.Annotations {
+ switch key {
+ case BashCompOneRequiredFlag:
+ format := " must_have_one_flag+=(\"--%s"
+ if flag.Value.Type() != "bool" {
+ format += "="
+ }
+ format += "\")\n"
+ buf.WriteString(fmt.Sprintf(format, flag.Name))
+
+ if len(flag.Shorthand) > 0 {
+ buf.WriteString(fmt.Sprintf(" must_have_one_flag+=(\"-%s\")\n", flag.Shorthand))
+ }
+ }
+ }
+ })
+}
+
+func writeRequiredNouns(buf *bytes.Buffer, cmd *Command) {
+ buf.WriteString(" must_have_one_noun=()\n")
+ sort.Sort(sort.StringSlice(cmd.ValidArgs))
+ for _, value := range cmd.ValidArgs {
+ buf.WriteString(fmt.Sprintf(" must_have_one_noun+=(%q)\n", value))
+ }
+}
+
+func writeCmdAliases(buf *bytes.Buffer, cmd *Command) {
+ if len(cmd.Aliases) == 0 {
+ return
+ }
+
+ sort.Sort(sort.StringSlice(cmd.Aliases))
+
+ buf.WriteString(fmt.Sprint(` if [[ -z "${BASH_VERSION}" || "${BASH_VERSINFO[0]}" -gt 3 ]]; then`, "\n"))
+ for _, value := range cmd.Aliases {
+ buf.WriteString(fmt.Sprintf(" command_aliases+=(%q)\n", value))
+ buf.WriteString(fmt.Sprintf(" aliashash[%q]=%q\n", value, cmd.Name()))
+ }
+ buf.WriteString(` fi`)
+ buf.WriteString("\n")
+}
+func writeArgAliases(buf *bytes.Buffer, cmd *Command) {
+ buf.WriteString(" noun_aliases=()\n")
+ sort.Sort(sort.StringSlice(cmd.ArgAliases))
+ for _, value := range cmd.ArgAliases {
+ buf.WriteString(fmt.Sprintf(" noun_aliases+=(%q)\n", value))
+ }
+}
+
+func gen(buf *bytes.Buffer, cmd *Command) {
+ for _, c := range cmd.Commands() {
+ if !c.IsAvailableCommand() || c == cmd.helpCommand {
+ continue
+ }
+ gen(buf, c)
+ }
+ commandName := cmd.CommandPath()
+ commandName = strings.Replace(commandName, " ", "_", -1)
+ commandName = strings.Replace(commandName, ":", "__", -1)
+
+ if cmd.Root() == cmd {
+ buf.WriteString(fmt.Sprintf("_%s_root_command()\n{\n", commandName))
+ } else {
+ buf.WriteString(fmt.Sprintf("_%s()\n{\n", commandName))
+ }
+
+ buf.WriteString(fmt.Sprintf(" last_command=%q\n", commandName))
+ buf.WriteString("\n")
+ buf.WriteString(" command_aliases=()\n")
+ buf.WriteString("\n")
+
+ writeCommands(buf, cmd)
+ writeFlags(buf, cmd)
+ writeRequiredFlag(buf, cmd)
+ writeRequiredNouns(buf, cmd)
+ writeArgAliases(buf, cmd)
+ buf.WriteString("}\n\n")
+}
+
+// GenBashCompletion generates bash completion file and writes to the passed writer.
+func (c *Command) GenBashCompletion(w io.Writer) error {
+ buf := new(bytes.Buffer)
+ writePreamble(buf, c.Name())
+ if len(c.BashCompletionFunction) > 0 {
+ buf.WriteString(c.BashCompletionFunction + "\n")
+ }
+ gen(buf, c)
+ writePostscript(buf, c.Name())
+
+ _, err := buf.WriteTo(w)
+ return err
+}
+
+func nonCompletableFlag(flag *pflag.Flag) bool {
+ return flag.Hidden || len(flag.Deprecated) > 0
+}
+
+// GenBashCompletionFile generates bash completion file.
+func (c *Command) GenBashCompletionFile(filename string) error {
+ outFile, err := os.Create(filename)
+ if err != nil {
+ return err
+ }
+ defer outFile.Close()
+
+ return c.GenBashCompletion(outFile)
+}
+
+// MarkFlagRequired adds the BashCompOneRequiredFlag annotation to the named flag if it exists,
+// and causes your command to report an error if invoked without the flag.
+func (c *Command) MarkFlagRequired(name string) error {
+ return MarkFlagRequired(c.Flags(), name)
+}
+
+// MarkPersistentFlagRequired adds the BashCompOneRequiredFlag annotation to the named persistent flag if it exists,
+// and causes your command to report an error if invoked without the flag.
+func (c *Command) MarkPersistentFlagRequired(name string) error {
+ return MarkFlagRequired(c.PersistentFlags(), name)
+}
+
+// MarkFlagRequired adds the BashCompOneRequiredFlag annotation to the named flag if it exists,
+// and causes your command to report an error if invoked without the flag.
+func MarkFlagRequired(flags *pflag.FlagSet, name string) error {
+ return flags.SetAnnotation(name, BashCompOneRequiredFlag, []string{"true"})
+}
+
+// MarkFlagFilename adds the BashCompFilenameExt annotation to the named flag, if it exists.
+// Generated bash autocompletion will select filenames for the flag, limiting to named extensions if provided.
+func (c *Command) MarkFlagFilename(name string, extensions ...string) error {
+ return MarkFlagFilename(c.Flags(), name, extensions...)
+}
+
+// MarkFlagCustom adds the BashCompCustom annotation to the named flag, if it exists.
+// Generated bash autocompletion will call the bash function f for the flag.
+func (c *Command) MarkFlagCustom(name string, f string) error {
+ return MarkFlagCustom(c.Flags(), name, f)
+}
+
+// MarkPersistentFlagFilename adds the BashCompFilenameExt annotation to the named persistent flag, if it exists.
+// Generated bash autocompletion will select filenames for the flag, limiting to named extensions if provided.
+func (c *Command) MarkPersistentFlagFilename(name string, extensions ...string) error {
+ return MarkFlagFilename(c.PersistentFlags(), name, extensions...)
+}
+
+// MarkFlagFilename adds the BashCompFilenameExt annotation to the named flag in the flag set, if it exists.
+// Generated bash autocompletion will select filenames for the flag, limiting to named extensions if provided.
+func MarkFlagFilename(flags *pflag.FlagSet, name string, extensions ...string) error {
+ return flags.SetAnnotation(name, BashCompFilenameExt, extensions)
+}
+
+// MarkFlagCustom adds the BashCompCustom annotation to the named flag in the flag set, if it exists.
+// Generated bash autocompletion will call the bash function f for the flag.
+func MarkFlagCustom(flags *pflag.FlagSet, name string, f string) error {
+ return flags.SetAnnotation(name, BashCompCustom, []string{f})
+}
diff --git a/vendor/github.com/spf13/cobra/bash_completions.md b/vendor/github.com/spf13/cobra/bash_completions.md
new file mode 100644
index 0000000000..e79d4769d1
--- /dev/null
+++ b/vendor/github.com/spf13/cobra/bash_completions.md
@@ -0,0 +1,221 @@
+# Generating Bash Completions For Your Own cobra.Command
+
+Generating bash completions from a cobra command is incredibly easy. An actual program which does so for the kubernetes kubectl binary is as follows:
+
+```go
+package main
+
+import (
+ "io/ioutil"
+ "os"
+
+ "k8s.io/kubernetes/pkg/kubectl/cmd"
+ "k8s.io/kubernetes/pkg/kubectl/cmd/util"
+)
+
+func main() {
+ kubectl := cmd.NewKubectlCommand(util.NewFactory(nil), os.Stdin, ioutil.Discard, ioutil.Discard)
+ kubectl.GenBashCompletionFile("out.sh")
+}
+```
+
+`out.sh` will get you completions of subcommands and flags. Copy it to `/etc/bash_completion.d/` as described [here](https://debian-administration.org/article/316/An_introduction_to_bash_completion_part_1) and reset your terminal to use autocompletion. If you make additional annotations to your code, you can get even more intelligent and flexible behavior.
+
+## Creating your own custom functions
+
+Some more actual code that works in kubernetes:
+
+```bash
+const (
+ bash_completion_func = `__kubectl_parse_get()
+{
+ local kubectl_output out
+ if kubectl_output=$(kubectl get --no-headers "$1" 2>/dev/null); then
+ out=($(echo "${kubectl_output}" | awk '{print $1}'))
+ COMPREPLY=( $( compgen -W "${out[*]}" -- "$cur" ) )
+ fi
+}
+
+__kubectl_get_resource()
+{
+ if [[ ${#nouns[@]} -eq 0 ]]; then
+ return 1
+ fi
+ __kubectl_parse_get ${nouns[${#nouns[@]} -1]}
+ if [[ $? -eq 0 ]]; then
+ return 0
+ fi
+}
+
+__custom_func() {
+ case ${last_command} in
+ kubectl_get | kubectl_describe | kubectl_delete | kubectl_stop)
+ __kubectl_get_resource
+ return
+ ;;
+ *)
+ ;;
+ esac
+}
+`)
+```
+
+And then I set that in my command definition:
+
+```go
+cmds := &cobra.Command{
+ Use: "kubectl",
+ Short: "kubectl controls the Kubernetes cluster manager",
+ Long: `kubectl controls the Kubernetes cluster manager.
+
+Find more information at https://github.com/GoogleCloudPlatform/kubernetes.`,
+ Run: runHelp,
+ BashCompletionFunction: bash_completion_func,
+}
+```
+
+The `BashCompletionFunction` option is really only valid/useful on the root command. Doing the above will cause `__custom_func()` to be called when the built in processor was unable to find a solution. In the case of kubernetes a valid command might look something like `kubectl get pod [mypod]`. If you type `kubectl get pod [tab][tab]` the `__customc_func()` will run because the cobra.Command only understood "kubectl" and "get." `__custom_func()` will see that the cobra.Command is "kubectl_get" and will thus call another helper `__kubectl_get_resource()`. `__kubectl_get_resource` will look at the 'nouns' collected. In our example the only noun will be `pod`. So it will call `__kubectl_parse_get pod`. `__kubectl_parse_get` will actually call out to kubernetes and get any pods. It will then set `COMPREPLY` to valid pods!
+
+## Have the completions code complete your 'nouns'
+
+In the above example "pod" was assumed to already be typed. But if you want `kubectl get [tab][tab]` to show a list of valid "nouns" you have to set them. Simplified code from `kubectl get` looks like:
+
+```go
+validArgs []string = { "pod", "node", "service", "replicationcontroller" }
+
+cmd := &cobra.Command{
+ Use: "get [(-o|--output=)json|yaml|template|...] (RESOURCE [NAME] | RESOURCE/NAME ...)",
+ Short: "Display one or many resources",
+ Long: get_long,
+ Example: get_example,
+ Run: func(cmd *cobra.Command, args []string) {
+ err := RunGet(f, out, cmd, args)
+ util.CheckErr(err)
+ },
+ ValidArgs: validArgs,
+}
+```
+
+Notice we put the "ValidArgs" on the "get" subcommand. Doing so will give results like
+
+```bash
+# kubectl get [tab][tab]
+node pod replicationcontroller service
+```
+
+## Plural form and shortcuts for nouns
+
+If your nouns have a number of aliases, you can define them alongside `ValidArgs` using `ArgAliases`:
+
+```go
+argAliases []string = { "pods", "nodes", "services", "svc", "replicationcontrollers", "rc" }
+
+cmd := &cobra.Command{
+ ...
+ ValidArgs: validArgs,
+ ArgAliases: argAliases
+}
+```
+
+The aliases are not shown to the user on tab completion, but they are accepted as valid nouns by
+the completion algorithm if entered manually, e.g. in:
+
+```bash
+# kubectl get rc [tab][tab]
+backend frontend database
+```
+
+Note that without declaring `rc` as an alias, the completion algorithm would show the list of nouns
+in this example again instead of the replication controllers.
+
+## Mark flags as required
+
+Most of the time completions will only show subcommands. But if a flag is required to make a subcommand work, you probably want it to show up when the user types [tab][tab]. Marking a flag as 'Required' is incredibly easy.
+
+```go
+cmd.MarkFlagRequired("pod")
+cmd.MarkFlagRequired("container")
+```
+
+and you'll get something like
+
+```bash
+# kubectl exec [tab][tab][tab]
+-c --container= -p --pod=
+```
+
+# Specify valid filename extensions for flags that take a filename
+
+In this example we use --filename= and expect to get a json or yaml file as the argument. To make this easier we annotate the --filename flag with valid filename extensions.
+
+```go
+ annotations := []string{"json", "yaml", "yml"}
+ annotation := make(map[string][]string)
+ annotation[cobra.BashCompFilenameExt] = annotations
+
+ flag := &pflag.Flag{
+ Name: "filename",
+ Shorthand: "f",
+ Usage: usage,
+ Value: value,
+ DefValue: value.String(),
+ Annotations: annotation,
+ }
+ cmd.Flags().AddFlag(flag)
+```
+
+Now when you run a command with this filename flag you'll get something like
+
+```bash
+# kubectl create -f
+test/ example/ rpmbuild/
+hello.yml test.json
+```
+
+So while there are many other files in the CWD it only shows me subdirs and those with valid extensions.
+
+# Specify custom flag completion
+
+Similar to the filename completion and filtering using cobra.BashCompFilenameExt, you can specify
+a custom flag completion function with cobra.BashCompCustom:
+
+```go
+ annotation := make(map[string][]string)
+ annotation[cobra.BashCompCustom] = []string{"__kubectl_get_namespaces"}
+
+ flag := &pflag.Flag{
+ Name: "namespace",
+ Usage: usage,
+ Annotations: annotation,
+ }
+ cmd.Flags().AddFlag(flag)
+```
+
+In addition add the `__handle_namespace_flag` implementation in the `BashCompletionFunction`
+value, e.g.:
+
+```bash
+__kubectl_get_namespaces()
+{
+ local template
+ template="{{ range .items }}{{ .metadata.name }} {{ end }}"
+ local kubectl_out
+ if kubectl_out=$(kubectl get -o template --template="${template}" namespace 2>/dev/null); then
+ COMPREPLY=( $( compgen -W "${kubectl_out}[*]" -- "$cur" ) )
+ fi
+}
+```
+# Using bash aliases for commands
+
+You can also configure the `bash aliases` for the commands and they will also support completions.
+
+```bash
+alias aliasname=origcommand
+complete -o default -F __start_origcommand aliasname
+
+# and now when you run `aliasname` completion will make
+# suggestions as it did for `origcommand`.
+
+$) aliasname
+completion firstcommand secondcommand
+```
diff --git a/vendor/github.com/spf13/cobra/cobra.go b/vendor/github.com/spf13/cobra/cobra.go
new file mode 100644
index 0000000000..7010fd15b7
--- /dev/null
+++ b/vendor/github.com/spf13/cobra/cobra.go
@@ -0,0 +1,200 @@
+// Copyright © 2013 Steve Francia .
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Commands similar to git, go tools and other modern CLI tools
+// inspired by go, go-Commander, gh and subcommand
+
+package cobra
+
+import (
+ "fmt"
+ "io"
+ "reflect"
+ "strconv"
+ "strings"
+ "text/template"
+ "unicode"
+)
+
+var templateFuncs = template.FuncMap{
+ "trim": strings.TrimSpace,
+ "trimRightSpace": trimRightSpace,
+ "trimTrailingWhitespaces": trimRightSpace,
+ "appendIfNotPresent": appendIfNotPresent,
+ "rpad": rpad,
+ "gt": Gt,
+ "eq": Eq,
+}
+
+var initializers []func()
+
+// EnablePrefixMatching allows to set automatic prefix matching. Automatic prefix matching can be a dangerous thing
+// to automatically enable in CLI tools.
+// Set this to true to enable it.
+var EnablePrefixMatching = false
+
+// EnableCommandSorting controls sorting of the slice of commands, which is turned on by default.
+// To disable sorting, set it to false.
+var EnableCommandSorting = true
+
+// MousetrapHelpText enables an information splash screen on Windows
+// if the CLI is started from explorer.exe.
+// To disable the mousetrap, just set this variable to blank string ("").
+// Works only on Microsoft Windows.
+var MousetrapHelpText string = `This is a command line tool.
+
+You need to open cmd.exe and run it from there.
+`
+
+// AddTemplateFunc adds a template function that's available to Usage and Help
+// template generation.
+func AddTemplateFunc(name string, tmplFunc interface{}) {
+ templateFuncs[name] = tmplFunc
+}
+
+// AddTemplateFuncs adds multiple template functions that are available to Usage and
+// Help template generation.
+func AddTemplateFuncs(tmplFuncs template.FuncMap) {
+ for k, v := range tmplFuncs {
+ templateFuncs[k] = v
+ }
+}
+
+// OnInitialize sets the passed functions to be run when each command's
+// Execute method is called.
+func OnInitialize(y ...func()) {
+ initializers = append(initializers, y...)
+}
+
+// FIXME Gt is unused by cobra and should be removed in a version 2. It exists only for compatibility with users of cobra.
+
+// Gt takes two types and checks whether the first type is greater than the second. In case of types Arrays, Chans,
+// Maps and Slices, Gt will compare their lengths. Ints are compared directly while strings are first parsed as
+// ints and then compared.
+func Gt(a interface{}, b interface{}) bool {
+ var left, right int64
+ av := reflect.ValueOf(a)
+
+ switch av.Kind() {
+ case reflect.Array, reflect.Chan, reflect.Map, reflect.Slice:
+ left = int64(av.Len())
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+ left = av.Int()
+ case reflect.String:
+ left, _ = strconv.ParseInt(av.String(), 10, 64)
+ }
+
+ bv := reflect.ValueOf(b)
+
+ switch bv.Kind() {
+ case reflect.Array, reflect.Chan, reflect.Map, reflect.Slice:
+ right = int64(bv.Len())
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+ right = bv.Int()
+ case reflect.String:
+ right, _ = strconv.ParseInt(bv.String(), 10, 64)
+ }
+
+ return left > right
+}
+
+// FIXME Eq is unused by cobra and should be removed in a version 2. It exists only for compatibility with users of cobra.
+
+// Eq takes two types and checks whether they are equal. Supported types are int and string. Unsupported types will panic.
+func Eq(a interface{}, b interface{}) bool {
+ av := reflect.ValueOf(a)
+ bv := reflect.ValueOf(b)
+
+ switch av.Kind() {
+ case reflect.Array, reflect.Chan, reflect.Map, reflect.Slice:
+ panic("Eq called on unsupported type")
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+ return av.Int() == bv.Int()
+ case reflect.String:
+ return av.String() == bv.String()
+ }
+ return false
+}
+
+func trimRightSpace(s string) string {
+ return strings.TrimRightFunc(s, unicode.IsSpace)
+}
+
+// FIXME appendIfNotPresent is unused by cobra and should be removed in a version 2. It exists only for compatibility with users of cobra.
+
+// appendIfNotPresent will append stringToAppend to the end of s, but only if it's not yet present in s.
+func appendIfNotPresent(s, stringToAppend string) string {
+ if strings.Contains(s, stringToAppend) {
+ return s
+ }
+ return s + " " + stringToAppend
+}
+
+// rpad adds padding to the right of a string.
+func rpad(s string, padding int) string {
+ template := fmt.Sprintf("%%-%ds", padding)
+ return fmt.Sprintf(template, s)
+}
+
+// tmpl executes the given template text on data, writing the result to w.
+func tmpl(w io.Writer, text string, data interface{}) error {
+ t := template.New("top")
+ t.Funcs(templateFuncs)
+ template.Must(t.Parse(text))
+ return t.Execute(w, data)
+}
+
+// ld compares two strings and returns the levenshtein distance between them.
+func ld(s, t string, ignoreCase bool) int {
+ if ignoreCase {
+ s = strings.ToLower(s)
+ t = strings.ToLower(t)
+ }
+ d := make([][]int, len(s)+1)
+ for i := range d {
+ d[i] = make([]int, len(t)+1)
+ }
+ for i := range d {
+ d[i][0] = i
+ }
+ for j := range d[0] {
+ d[0][j] = j
+ }
+ for j := 1; j <= len(t); j++ {
+ for i := 1; i <= len(s); i++ {
+ if s[i-1] == t[j-1] {
+ d[i][j] = d[i-1][j-1]
+ } else {
+ min := d[i-1][j]
+ if d[i][j-1] < min {
+ min = d[i][j-1]
+ }
+ if d[i-1][j-1] < min {
+ min = d[i-1][j-1]
+ }
+ d[i][j] = min + 1
+ }
+ }
+
+ }
+ return d[len(s)][len(t)]
+}
+
+func stringInSlice(a string, list []string) bool {
+ for _, b := range list {
+ if b == a {
+ return true
+ }
+ }
+ return false
+}
diff --git a/vendor/github.com/spf13/cobra/command.go b/vendor/github.com/spf13/cobra/command.go
new file mode 100644
index 0000000000..34d1bf3671
--- /dev/null
+++ b/vendor/github.com/spf13/cobra/command.go
@@ -0,0 +1,1517 @@
+// Copyright © 2013 Steve Francia .
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package cobra is a commander providing a simple interface to create powerful modern CLI interfaces.
+// In addition to providing an interface, Cobra simultaneously provides a controller to organize your application code.
+package cobra
+
+import (
+ "bytes"
+ "fmt"
+ "io"
+ "os"
+ "path/filepath"
+ "sort"
+ "strings"
+
+ flag "github.com/spf13/pflag"
+)
+
+// FParseErrWhitelist configures Flag parse errors to be ignored
+type FParseErrWhitelist flag.ParseErrorsWhitelist
+
+// Command is just that, a command for your application.
+// E.g. 'go run ...' - 'run' is the command. Cobra requires
+// you to define the usage and description as part of your command
+// definition to ensure usability.
+type Command struct {
+ // Use is the one-line usage message.
+ Use string
+
+ // Aliases is an array of aliases that can be used instead of the first word in Use.
+ Aliases []string
+
+ // SuggestFor is an array of command names for which this command will be suggested -
+ // similar to aliases but only suggests.
+ SuggestFor []string
+
+ // Short is the short description shown in the 'help' output.
+ Short string
+
+ // Long is the long message shown in the 'help ' output.
+ Long string
+
+ // Example is examples of how to use the command.
+ Example string
+
+ // ValidArgs is list of all valid non-flag arguments that are accepted in bash completions
+ ValidArgs []string
+
+ // Expected arguments
+ Args PositionalArgs
+
+ // ArgAliases is List of aliases for ValidArgs.
+ // These are not suggested to the user in the bash completion,
+ // but accepted if entered manually.
+ ArgAliases []string
+
+ // BashCompletionFunction is custom functions used by the bash autocompletion generator.
+ BashCompletionFunction string
+
+ // Deprecated defines, if this command is deprecated and should print this string when used.
+ Deprecated string
+
+ // Hidden defines, if this command is hidden and should NOT show up in the list of available commands.
+ Hidden bool
+
+ // Annotations are key/value pairs that can be used by applications to identify or
+ // group commands.
+ Annotations map[string]string
+
+ // Version defines the version for this command. If this value is non-empty and the command does not
+ // define a "version" flag, a "version" boolean flag will be added to the command and, if specified,
+ // will print content of the "Version" variable.
+ Version string
+
+ // The *Run functions are executed in the following order:
+ // * PersistentPreRun()
+ // * PreRun()
+ // * Run()
+ // * PostRun()
+ // * PersistentPostRun()
+ // All functions get the same args, the arguments after the command name.
+ //
+ // PersistentPreRun: children of this command will inherit and execute.
+ PersistentPreRun func(cmd *Command, args []string)
+ // PersistentPreRunE: PersistentPreRun but returns an error.
+ PersistentPreRunE func(cmd *Command, args []string) error
+ // PreRun: children of this command will not inherit.
+ PreRun func(cmd *Command, args []string)
+ // PreRunE: PreRun but returns an error.
+ PreRunE func(cmd *Command, args []string) error
+ // Run: Typically the actual work function. Most commands will only implement this.
+ Run func(cmd *Command, args []string)
+ // RunE: Run but returns an error.
+ RunE func(cmd *Command, args []string) error
+ // PostRun: run after the Run command.
+ PostRun func(cmd *Command, args []string)
+ // PostRunE: PostRun but returns an error.
+ PostRunE func(cmd *Command, args []string) error
+ // PersistentPostRun: children of this command will inherit and execute after PostRun.
+ PersistentPostRun func(cmd *Command, args []string)
+ // PersistentPostRunE: PersistentPostRun but returns an error.
+ PersistentPostRunE func(cmd *Command, args []string) error
+
+ // SilenceErrors is an option to quiet errors down stream.
+ SilenceErrors bool
+
+ // SilenceUsage is an option to silence usage when an error occurs.
+ SilenceUsage bool
+
+ // DisableFlagParsing disables the flag parsing.
+ // If this is true all flags will be passed to the command as arguments.
+ DisableFlagParsing bool
+
+ // DisableAutoGenTag defines, if gen tag ("Auto generated by spf13/cobra...")
+ // will be printed by generating docs for this command.
+ DisableAutoGenTag bool
+
+ // DisableFlagsInUseLine will disable the addition of [flags] to the usage
+ // line of a command when printing help or generating docs
+ DisableFlagsInUseLine bool
+
+ // DisableSuggestions disables the suggestions based on Levenshtein distance
+ // that go along with 'unknown command' messages.
+ DisableSuggestions bool
+ // SuggestionsMinimumDistance defines minimum levenshtein distance to display suggestions.
+ // Must be > 0.
+ SuggestionsMinimumDistance int
+
+ // TraverseChildren parses flags on all parents before executing child command.
+ TraverseChildren bool
+
+ //FParseErrWhitelist flag parse errors to be ignored
+ FParseErrWhitelist FParseErrWhitelist
+
+ // commands is the list of commands supported by this program.
+ commands []*Command
+ // parent is a parent command for this command.
+ parent *Command
+ // Max lengths of commands' string lengths for use in padding.
+ commandsMaxUseLen int
+ commandsMaxCommandPathLen int
+ commandsMaxNameLen int
+ // commandsAreSorted defines, if command slice are sorted or not.
+ commandsAreSorted bool
+ // commandCalledAs is the name or alias value used to call this command.
+ commandCalledAs struct {
+ name string
+ called bool
+ }
+
+ // args is actual args parsed from flags.
+ args []string
+ // flagErrorBuf contains all error messages from pflag.
+ flagErrorBuf *bytes.Buffer
+ // flags is full set of flags.
+ flags *flag.FlagSet
+ // pflags contains persistent flags.
+ pflags *flag.FlagSet
+ // lflags contains local flags.
+ lflags *flag.FlagSet
+ // iflags contains inherited flags.
+ iflags *flag.FlagSet
+ // parentsPflags is all persistent flags of cmd's parents.
+ parentsPflags *flag.FlagSet
+ // globNormFunc is the global normalization function
+ // that we can use on every pflag set and children commands
+ globNormFunc func(f *flag.FlagSet, name string) flag.NormalizedName
+
+ // output is an output writer defined by user.
+ output io.Writer
+ // usageFunc is usage func defined by user.
+ usageFunc func(*Command) error
+ // usageTemplate is usage template defined by user.
+ usageTemplate string
+ // flagErrorFunc is func defined by user and it's called when the parsing of
+ // flags returns an error.
+ flagErrorFunc func(*Command, error) error
+ // helpTemplate is help template defined by user.
+ helpTemplate string
+ // helpFunc is help func defined by user.
+ helpFunc func(*Command, []string)
+ // helpCommand is command with usage 'help'. If it's not defined by user,
+ // cobra uses default help command.
+ helpCommand *Command
+ // versionTemplate is the version template defined by user.
+ versionTemplate string
+}
+
+// SetArgs sets arguments for the command. It is set to os.Args[1:] by default, if desired, can be overridden
+// particularly useful when testing.
+func (c *Command) SetArgs(a []string) {
+ c.args = a
+}
+
+// SetOutput sets the destination for usage and error messages.
+// If output is nil, os.Stderr is used.
+func (c *Command) SetOutput(output io.Writer) {
+ c.output = output
+}
+
+// SetUsageFunc sets usage function. Usage can be defined by application.
+func (c *Command) SetUsageFunc(f func(*Command) error) {
+ c.usageFunc = f
+}
+
+// SetUsageTemplate sets usage template. Can be defined by Application.
+func (c *Command) SetUsageTemplate(s string) {
+ c.usageTemplate = s
+}
+
+// SetFlagErrorFunc sets a function to generate an error when flag parsing
+// fails.
+func (c *Command) SetFlagErrorFunc(f func(*Command, error) error) {
+ c.flagErrorFunc = f
+}
+
+// SetHelpFunc sets help function. Can be defined by Application.
+func (c *Command) SetHelpFunc(f func(*Command, []string)) {
+ c.helpFunc = f
+}
+
+// SetHelpCommand sets help command.
+func (c *Command) SetHelpCommand(cmd *Command) {
+ c.helpCommand = cmd
+}
+
+// SetHelpTemplate sets help template to be used. Application can use it to set custom template.
+func (c *Command) SetHelpTemplate(s string) {
+ c.helpTemplate = s
+}
+
+// SetVersionTemplate sets version template to be used. Application can use it to set custom template.
+func (c *Command) SetVersionTemplate(s string) {
+ c.versionTemplate = s
+}
+
+// SetGlobalNormalizationFunc sets a normalization function to all flag sets and also to child commands.
+// The user should not have a cyclic dependency on commands.
+func (c *Command) SetGlobalNormalizationFunc(n func(f *flag.FlagSet, name string) flag.NormalizedName) {
+ c.Flags().SetNormalizeFunc(n)
+ c.PersistentFlags().SetNormalizeFunc(n)
+ c.globNormFunc = n
+
+ for _, command := range c.commands {
+ command.SetGlobalNormalizationFunc(n)
+ }
+}
+
+// OutOrStdout returns output to stdout.
+func (c *Command) OutOrStdout() io.Writer {
+ return c.getOut(os.Stdout)
+}
+
+// OutOrStderr returns output to stderr
+func (c *Command) OutOrStderr() io.Writer {
+ return c.getOut(os.Stderr)
+}
+
+func (c *Command) getOut(def io.Writer) io.Writer {
+ if c.output != nil {
+ return c.output
+ }
+ if c.HasParent() {
+ return c.parent.getOut(def)
+ }
+ return def
+}
+
+// UsageFunc returns either the function set by SetUsageFunc for this command
+// or a parent, or it returns a default usage function.
+func (c *Command) UsageFunc() (f func(*Command) error) {
+ if c.usageFunc != nil {
+ return c.usageFunc
+ }
+ if c.HasParent() {
+ return c.Parent().UsageFunc()
+ }
+ return func(c *Command) error {
+ c.mergePersistentFlags()
+ err := tmpl(c.OutOrStderr(), c.UsageTemplate(), c)
+ if err != nil {
+ c.Println(err)
+ }
+ return err
+ }
+}
+
+// Usage puts out the usage for the command.
+// Used when a user provides invalid input.
+// Can be defined by user by overriding UsageFunc.
+func (c *Command) Usage() error {
+ return c.UsageFunc()(c)
+}
+
+// HelpFunc returns either the function set by SetHelpFunc for this command
+// or a parent, or it returns a function with default help behavior.
+func (c *Command) HelpFunc() func(*Command, []string) {
+ if c.helpFunc != nil {
+ return c.helpFunc
+ }
+ if c.HasParent() {
+ return c.Parent().HelpFunc()
+ }
+ return func(c *Command, a []string) {
+ c.mergePersistentFlags()
+ err := tmpl(c.OutOrStdout(), c.HelpTemplate(), c)
+ if err != nil {
+ c.Println(err)
+ }
+ }
+}
+
+// Help puts out the help for the command.
+// Used when a user calls help [command].
+// Can be defined by user by overriding HelpFunc.
+func (c *Command) Help() error {
+ c.HelpFunc()(c, []string{})
+ return nil
+}
+
+// UsageString return usage string.
+func (c *Command) UsageString() string {
+ tmpOutput := c.output
+ bb := new(bytes.Buffer)
+ c.SetOutput(bb)
+ c.Usage()
+ c.output = tmpOutput
+ return bb.String()
+}
+
+// FlagErrorFunc returns either the function set by SetFlagErrorFunc for this
+// command or a parent, or it returns a function which returns the original
+// error.
+func (c *Command) FlagErrorFunc() (f func(*Command, error) error) {
+ if c.flagErrorFunc != nil {
+ return c.flagErrorFunc
+ }
+
+ if c.HasParent() {
+ return c.parent.FlagErrorFunc()
+ }
+ return func(c *Command, err error) error {
+ return err
+ }
+}
+
+var minUsagePadding = 25
+
+// UsagePadding return padding for the usage.
+func (c *Command) UsagePadding() int {
+ if c.parent == nil || minUsagePadding > c.parent.commandsMaxUseLen {
+ return minUsagePadding
+ }
+ return c.parent.commandsMaxUseLen
+}
+
+var minCommandPathPadding = 11
+
+// CommandPathPadding return padding for the command path.
+func (c *Command) CommandPathPadding() int {
+ if c.parent == nil || minCommandPathPadding > c.parent.commandsMaxCommandPathLen {
+ return minCommandPathPadding
+ }
+ return c.parent.commandsMaxCommandPathLen
+}
+
+var minNamePadding = 11
+
+// NamePadding returns padding for the name.
+func (c *Command) NamePadding() int {
+ if c.parent == nil || minNamePadding > c.parent.commandsMaxNameLen {
+ return minNamePadding
+ }
+ return c.parent.commandsMaxNameLen
+}
+
+// UsageTemplate returns usage template for the command.
+func (c *Command) UsageTemplate() string {
+ if c.usageTemplate != "" {
+ return c.usageTemplate
+ }
+
+ if c.HasParent() {
+ return c.parent.UsageTemplate()
+ }
+ return `Usage:{{if .Runnable}}
+ {{.UseLine}}{{end}}{{if .HasAvailableSubCommands}}
+ {{.CommandPath}} [command]{{end}}{{if gt (len .Aliases) 0}}
+
+Aliases:
+ {{.NameAndAliases}}{{end}}{{if .HasExample}}
+
+Examples:
+{{.Example}}{{end}}{{if .HasAvailableSubCommands}}
+
+Available Commands:{{range .Commands}}{{if (or .IsAvailableCommand (eq .Name "help"))}}
+ {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableLocalFlags}}
+
+Flags:
+{{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasAvailableInheritedFlags}}
+
+Global Flags:
+{{.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasHelpSubCommands}}
+
+Additional help topics:{{range .Commands}}{{if .IsAdditionalHelpTopicCommand}}
+ {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableSubCommands}}
+
+Use "{{.CommandPath}} [command] --help" for more information about a command.{{end}}
+`
+}
+
+// HelpTemplate return help template for the command.
+func (c *Command) HelpTemplate() string {
+ if c.helpTemplate != "" {
+ return c.helpTemplate
+ }
+
+ if c.HasParent() {
+ return c.parent.HelpTemplate()
+ }
+ return `{{with (or .Long .Short)}}{{. | trimTrailingWhitespaces}}
+
+{{end}}{{if or .Runnable .HasSubCommands}}{{.UsageString}}{{end}}`
+}
+
+// VersionTemplate return version template for the command.
+func (c *Command) VersionTemplate() string {
+ if c.versionTemplate != "" {
+ return c.versionTemplate
+ }
+
+ if c.HasParent() {
+ return c.parent.VersionTemplate()
+ }
+ return `{{with .Name}}{{printf "%s " .}}{{end}}{{printf "version %s" .Version}}
+`
+}
+
+func hasNoOptDefVal(name string, fs *flag.FlagSet) bool {
+ flag := fs.Lookup(name)
+ if flag == nil {
+ return false
+ }
+ return flag.NoOptDefVal != ""
+}
+
+func shortHasNoOptDefVal(name string, fs *flag.FlagSet) bool {
+ if len(name) == 0 {
+ return false
+ }
+
+ flag := fs.ShorthandLookup(name[:1])
+ if flag == nil {
+ return false
+ }
+ return flag.NoOptDefVal != ""
+}
+
+func stripFlags(args []string, c *Command) []string {
+ if len(args) == 0 {
+ return args
+ }
+ c.mergePersistentFlags()
+
+ commands := []string{}
+ flags := c.Flags()
+
+Loop:
+ for len(args) > 0 {
+ s := args[0]
+ args = args[1:]
+ switch {
+ case s == "--":
+ // "--" terminates the flags
+ break Loop
+ case strings.HasPrefix(s, "--") && !strings.Contains(s, "=") && !hasNoOptDefVal(s[2:], flags):
+ // If '--flag arg' then
+ // delete arg from args.
+ fallthrough // (do the same as below)
+ case strings.HasPrefix(s, "-") && !strings.Contains(s, "=") && len(s) == 2 && !shortHasNoOptDefVal(s[1:], flags):
+ // If '-f arg' then
+ // delete 'arg' from args or break the loop if len(args) <= 1.
+ if len(args) <= 1 {
+ break Loop
+ } else {
+ args = args[1:]
+ continue
+ }
+ case s != "" && !strings.HasPrefix(s, "-"):
+ commands = append(commands, s)
+ }
+ }
+
+ return commands
+}
+
+// argsMinusFirstX removes only the first x from args. Otherwise, commands that look like
+// openshift admin policy add-role-to-user admin my-user, lose the admin argument (arg[4]).
+func argsMinusFirstX(args []string, x string) []string {
+ for i, y := range args {
+ if x == y {
+ ret := []string{}
+ ret = append(ret, args[:i]...)
+ ret = append(ret, args[i+1:]...)
+ return ret
+ }
+ }
+ return args
+}
+
+func isFlagArg(arg string) bool {
+ return ((len(arg) >= 3 && arg[1] == '-') ||
+ (len(arg) >= 2 && arg[0] == '-' && arg[1] != '-'))
+}
+
+// Find the target command given the args and command tree
+// Meant to be run on the highest node. Only searches down.
+func (c *Command) Find(args []string) (*Command, []string, error) {
+ var innerfind func(*Command, []string) (*Command, []string)
+
+ innerfind = func(c *Command, innerArgs []string) (*Command, []string) {
+ argsWOflags := stripFlags(innerArgs, c)
+ if len(argsWOflags) == 0 {
+ return c, innerArgs
+ }
+ nextSubCmd := argsWOflags[0]
+
+ cmd := c.findNext(nextSubCmd)
+ if cmd != nil {
+ return innerfind(cmd, argsMinusFirstX(innerArgs, nextSubCmd))
+ }
+ return c, innerArgs
+ }
+
+ commandFound, a := innerfind(c, args)
+ if commandFound.Args == nil {
+ return commandFound, a, legacyArgs(commandFound, stripFlags(a, commandFound))
+ }
+ return commandFound, a, nil
+}
+
+func (c *Command) findSuggestions(arg string) string {
+ if c.DisableSuggestions {
+ return ""
+ }
+ if c.SuggestionsMinimumDistance <= 0 {
+ c.SuggestionsMinimumDistance = 2
+ }
+ suggestionsString := ""
+ if suggestions := c.SuggestionsFor(arg); len(suggestions) > 0 {
+ suggestionsString += "\n\nDid you mean this?\n"
+ for _, s := range suggestions {
+ suggestionsString += fmt.Sprintf("\t%v\n", s)
+ }
+ }
+ return suggestionsString
+}
+
+func (c *Command) findNext(next string) *Command {
+ matches := make([]*Command, 0)
+ for _, cmd := range c.commands {
+ if cmd.Name() == next || cmd.HasAlias(next) {
+ cmd.commandCalledAs.name = next
+ return cmd
+ }
+ if EnablePrefixMatching && cmd.hasNameOrAliasPrefix(next) {
+ matches = append(matches, cmd)
+ }
+ }
+
+ if len(matches) == 1 {
+ return matches[0]
+ }
+
+ return nil
+}
+
+// Traverse the command tree to find the command, and parse args for
+// each parent.
+func (c *Command) Traverse(args []string) (*Command, []string, error) {
+ flags := []string{}
+ inFlag := false
+
+ for i, arg := range args {
+ switch {
+ // A long flag with a space separated value
+ case strings.HasPrefix(arg, "--") && !strings.Contains(arg, "="):
+ // TODO: this isn't quite right, we should really check ahead for 'true' or 'false'
+ inFlag = !hasNoOptDefVal(arg[2:], c.Flags())
+ flags = append(flags, arg)
+ continue
+ // A short flag with a space separated value
+ case strings.HasPrefix(arg, "-") && !strings.Contains(arg, "=") && len(arg) == 2 && !shortHasNoOptDefVal(arg[1:], c.Flags()):
+ inFlag = true
+ flags = append(flags, arg)
+ continue
+ // The value for a flag
+ case inFlag:
+ inFlag = false
+ flags = append(flags, arg)
+ continue
+ // A flag without a value, or with an `=` separated value
+ case isFlagArg(arg):
+ flags = append(flags, arg)
+ continue
+ }
+
+ cmd := c.findNext(arg)
+ if cmd == nil {
+ return c, args, nil
+ }
+
+ if err := c.ParseFlags(flags); err != nil {
+ return nil, args, err
+ }
+ return cmd.Traverse(args[i+1:])
+ }
+ return c, args, nil
+}
+
+// SuggestionsFor provides suggestions for the typedName.
+func (c *Command) SuggestionsFor(typedName string) []string {
+ suggestions := []string{}
+ for _, cmd := range c.commands {
+ if cmd.IsAvailableCommand() {
+ levenshteinDistance := ld(typedName, cmd.Name(), true)
+ suggestByLevenshtein := levenshteinDistance <= c.SuggestionsMinimumDistance
+ suggestByPrefix := strings.HasPrefix(strings.ToLower(cmd.Name()), strings.ToLower(typedName))
+ if suggestByLevenshtein || suggestByPrefix {
+ suggestions = append(suggestions, cmd.Name())
+ }
+ for _, explicitSuggestion := range cmd.SuggestFor {
+ if strings.EqualFold(typedName, explicitSuggestion) {
+ suggestions = append(suggestions, cmd.Name())
+ }
+ }
+ }
+ }
+ return suggestions
+}
+
+// VisitParents visits all parents of the command and invokes fn on each parent.
+func (c *Command) VisitParents(fn func(*Command)) {
+ if c.HasParent() {
+ fn(c.Parent())
+ c.Parent().VisitParents(fn)
+ }
+}
+
+// Root finds root command.
+func (c *Command) Root() *Command {
+ if c.HasParent() {
+ return c.Parent().Root()
+ }
+ return c
+}
+
+// ArgsLenAtDash will return the length of c.Flags().Args at the moment
+// when a -- was found during args parsing.
+func (c *Command) ArgsLenAtDash() int {
+ return c.Flags().ArgsLenAtDash()
+}
+
+func (c *Command) execute(a []string) (err error) {
+ if c == nil {
+ return fmt.Errorf("Called Execute() on a nil Command")
+ }
+
+ if len(c.Deprecated) > 0 {
+ c.Printf("Command %q is deprecated, %s\n", c.Name(), c.Deprecated)
+ }
+
+ // initialize help and version flag at the last point possible to allow for user
+ // overriding
+ c.InitDefaultHelpFlag()
+ c.InitDefaultVersionFlag()
+
+ err = c.ParseFlags(a)
+ if err != nil {
+ return c.FlagErrorFunc()(c, err)
+ }
+
+ // If help is called, regardless of other flags, return we want help.
+ // Also say we need help if the command isn't runnable.
+ helpVal, err := c.Flags().GetBool("help")
+ if err != nil {
+ // should be impossible to get here as we always declare a help
+ // flag in InitDefaultHelpFlag()
+ c.Println("\"help\" flag declared as non-bool. Please correct your code")
+ return err
+ }
+
+ if helpVal {
+ return flag.ErrHelp
+ }
+
+ // for back-compat, only add version flag behavior if version is defined
+ if c.Version != "" {
+ versionVal, err := c.Flags().GetBool("version")
+ if err != nil {
+ c.Println("\"version\" flag declared as non-bool. Please correct your code")
+ return err
+ }
+ if versionVal {
+ err := tmpl(c.OutOrStdout(), c.VersionTemplate(), c)
+ if err != nil {
+ c.Println(err)
+ }
+ return err
+ }
+ }
+
+ if !c.Runnable() {
+ return flag.ErrHelp
+ }
+
+ c.preRun()
+
+ argWoFlags := c.Flags().Args()
+ if c.DisableFlagParsing {
+ argWoFlags = a
+ }
+
+ if err := c.ValidateArgs(argWoFlags); err != nil {
+ return err
+ }
+
+ for p := c; p != nil; p = p.Parent() {
+ if p.PersistentPreRunE != nil {
+ if err := p.PersistentPreRunE(c, argWoFlags); err != nil {
+ return err
+ }
+ break
+ } else if p.PersistentPreRun != nil {
+ p.PersistentPreRun(c, argWoFlags)
+ break
+ }
+ }
+ if c.PreRunE != nil {
+ if err := c.PreRunE(c, argWoFlags); err != nil {
+ return err
+ }
+ } else if c.PreRun != nil {
+ c.PreRun(c, argWoFlags)
+ }
+
+ if err := c.validateRequiredFlags(); err != nil {
+ return err
+ }
+ if c.RunE != nil {
+ if err := c.RunE(c, argWoFlags); err != nil {
+ return err
+ }
+ } else {
+ c.Run(c, argWoFlags)
+ }
+ if c.PostRunE != nil {
+ if err := c.PostRunE(c, argWoFlags); err != nil {
+ return err
+ }
+ } else if c.PostRun != nil {
+ c.PostRun(c, argWoFlags)
+ }
+ for p := c; p != nil; p = p.Parent() {
+ if p.PersistentPostRunE != nil {
+ if err := p.PersistentPostRunE(c, argWoFlags); err != nil {
+ return err
+ }
+ break
+ } else if p.PersistentPostRun != nil {
+ p.PersistentPostRun(c, argWoFlags)
+ break
+ }
+ }
+
+ return nil
+}
+
+func (c *Command) preRun() {
+ for _, x := range initializers {
+ x()
+ }
+}
+
+// Execute uses the args (os.Args[1:] by default)
+// and run through the command tree finding appropriate matches
+// for commands and then corresponding flags.
+func (c *Command) Execute() error {
+ _, err := c.ExecuteC()
+ return err
+}
+
+// ExecuteC executes the command.
+func (c *Command) ExecuteC() (cmd *Command, err error) {
+ // Regardless of what command execute is called on, run on Root only
+ if c.HasParent() {
+ return c.Root().ExecuteC()
+ }
+
+ // windows hook
+ if preExecHookFn != nil {
+ preExecHookFn(c)
+ }
+
+ // initialize help as the last point possible to allow for user
+ // overriding
+ c.InitDefaultHelpCmd()
+
+ var args []string
+
+ // Workaround FAIL with "go test -v" or "cobra.test -test.v", see #155
+ if c.args == nil && filepath.Base(os.Args[0]) != "cobra.test" {
+ args = os.Args[1:]
+ } else {
+ args = c.args
+ }
+
+ var flags []string
+ if c.TraverseChildren {
+ cmd, flags, err = c.Traverse(args)
+ } else {
+ cmd, flags, err = c.Find(args)
+ }
+ if err != nil {
+ // If found parse to a subcommand and then failed, talk about the subcommand
+ if cmd != nil {
+ c = cmd
+ }
+ if !c.SilenceErrors {
+ c.Println("Error:", err.Error())
+ c.Printf("Run '%v --help' for usage.\n", c.CommandPath())
+ }
+ return c, err
+ }
+
+ cmd.commandCalledAs.called = true
+ if cmd.commandCalledAs.name == "" {
+ cmd.commandCalledAs.name = cmd.Name()
+ }
+
+ err = cmd.execute(flags)
+ if err != nil {
+ // Always show help if requested, even if SilenceErrors is in
+ // effect
+ if err == flag.ErrHelp {
+ cmd.HelpFunc()(cmd, args)
+ return cmd, nil
+ }
+
+ // If root command has SilentErrors flagged,
+ // all subcommands should respect it
+ if !cmd.SilenceErrors && !c.SilenceErrors {
+ c.Println("Error:", err.Error())
+ }
+
+ // If root command has SilentUsage flagged,
+ // all subcommands should respect it
+ if !cmd.SilenceUsage && !c.SilenceUsage {
+ c.Println(cmd.UsageString())
+ }
+ }
+ return cmd, err
+}
+
+func (c *Command) ValidateArgs(args []string) error {
+ if c.Args == nil {
+ return nil
+ }
+ return c.Args(c, args)
+}
+
+func (c *Command) validateRequiredFlags() error {
+ flags := c.Flags()
+ missingFlagNames := []string{}
+ flags.VisitAll(func(pflag *flag.Flag) {
+ requiredAnnotation, found := pflag.Annotations[BashCompOneRequiredFlag]
+ if !found {
+ return
+ }
+ if (requiredAnnotation[0] == "true") && !pflag.Changed {
+ missingFlagNames = append(missingFlagNames, pflag.Name)
+ }
+ })
+
+ if len(missingFlagNames) > 0 {
+ return fmt.Errorf(`required flag(s) "%s" not set`, strings.Join(missingFlagNames, `", "`))
+ }
+ return nil
+}
+
+// InitDefaultHelpFlag adds default help flag to c.
+// It is called automatically by executing the c or by calling help and usage.
+// If c already has help flag, it will do nothing.
+func (c *Command) InitDefaultHelpFlag() {
+ c.mergePersistentFlags()
+ if c.Flags().Lookup("help") == nil {
+ usage := "help for "
+ if c.Name() == "" {
+ usage += "this command"
+ } else {
+ usage += c.Name()
+ }
+ c.Flags().BoolP("help", "h", false, usage)
+ }
+}
+
+// InitDefaultVersionFlag adds default version flag to c.
+// It is called automatically by executing the c.
+// If c already has a version flag, it will do nothing.
+// If c.Version is empty, it will do nothing.
+func (c *Command) InitDefaultVersionFlag() {
+ if c.Version == "" {
+ return
+ }
+
+ c.mergePersistentFlags()
+ if c.Flags().Lookup("version") == nil {
+ usage := "version for "
+ if c.Name() == "" {
+ usage += "this command"
+ } else {
+ usage += c.Name()
+ }
+ c.Flags().Bool("version", false, usage)
+ }
+}
+
+// InitDefaultHelpCmd adds default help command to c.
+// It is called automatically by executing the c or by calling help and usage.
+// If c already has help command or c has no subcommands, it will do nothing.
+func (c *Command) InitDefaultHelpCmd() {
+ if !c.HasSubCommands() {
+ return
+ }
+
+ if c.helpCommand == nil {
+ c.helpCommand = &Command{
+ Use: "help [command]",
+ Short: "Help about any command",
+ Long: `Help provides help for any command in the application.
+Simply type ` + c.Name() + ` help [path to command] for full details.`,
+
+ Run: func(c *Command, args []string) {
+ cmd, _, e := c.Root().Find(args)
+ if cmd == nil || e != nil {
+ c.Printf("Unknown help topic %#q\n", args)
+ c.Root().Usage()
+ } else {
+ cmd.InitDefaultHelpFlag() // make possible 'help' flag to be shown
+ cmd.Help()
+ }
+ },
+ }
+ }
+ c.RemoveCommand(c.helpCommand)
+ c.AddCommand(c.helpCommand)
+}
+
+// ResetCommands delete parent, subcommand and help command from c.
+func (c *Command) ResetCommands() {
+ c.parent = nil
+ c.commands = nil
+ c.helpCommand = nil
+ c.parentsPflags = nil
+}
+
+// Sorts commands by their names.
+type commandSorterByName []*Command
+
+func (c commandSorterByName) Len() int { return len(c) }
+func (c commandSorterByName) Swap(i, j int) { c[i], c[j] = c[j], c[i] }
+func (c commandSorterByName) Less(i, j int) bool { return c[i].Name() < c[j].Name() }
+
+// Commands returns a sorted slice of child commands.
+func (c *Command) Commands() []*Command {
+ // do not sort commands if it already sorted or sorting was disabled
+ if EnableCommandSorting && !c.commandsAreSorted {
+ sort.Sort(commandSorterByName(c.commands))
+ c.commandsAreSorted = true
+ }
+ return c.commands
+}
+
+// AddCommand adds one or more commands to this parent command.
+func (c *Command) AddCommand(cmds ...*Command) {
+ for i, x := range cmds {
+ if cmds[i] == c {
+ panic("Command can't be a child of itself")
+ }
+ cmds[i].parent = c
+ // update max lengths
+ usageLen := len(x.Use)
+ if usageLen > c.commandsMaxUseLen {
+ c.commandsMaxUseLen = usageLen
+ }
+ commandPathLen := len(x.CommandPath())
+ if commandPathLen > c.commandsMaxCommandPathLen {
+ c.commandsMaxCommandPathLen = commandPathLen
+ }
+ nameLen := len(x.Name())
+ if nameLen > c.commandsMaxNameLen {
+ c.commandsMaxNameLen = nameLen
+ }
+ // If global normalization function exists, update all children
+ if c.globNormFunc != nil {
+ x.SetGlobalNormalizationFunc(c.globNormFunc)
+ }
+ c.commands = append(c.commands, x)
+ c.commandsAreSorted = false
+ }
+}
+
+// RemoveCommand removes one or more commands from a parent command.
+func (c *Command) RemoveCommand(cmds ...*Command) {
+ commands := []*Command{}
+main:
+ for _, command := range c.commands {
+ for _, cmd := range cmds {
+ if command == cmd {
+ command.parent = nil
+ continue main
+ }
+ }
+ commands = append(commands, command)
+ }
+ c.commands = commands
+ // recompute all lengths
+ c.commandsMaxUseLen = 0
+ c.commandsMaxCommandPathLen = 0
+ c.commandsMaxNameLen = 0
+ for _, command := range c.commands {
+ usageLen := len(command.Use)
+ if usageLen > c.commandsMaxUseLen {
+ c.commandsMaxUseLen = usageLen
+ }
+ commandPathLen := len(command.CommandPath())
+ if commandPathLen > c.commandsMaxCommandPathLen {
+ c.commandsMaxCommandPathLen = commandPathLen
+ }
+ nameLen := len(command.Name())
+ if nameLen > c.commandsMaxNameLen {
+ c.commandsMaxNameLen = nameLen
+ }
+ }
+}
+
+// Print is a convenience method to Print to the defined output, fallback to Stderr if not set.
+func (c *Command) Print(i ...interface{}) {
+ fmt.Fprint(c.OutOrStderr(), i...)
+}
+
+// Println is a convenience method to Println to the defined output, fallback to Stderr if not set.
+func (c *Command) Println(i ...interface{}) {
+ c.Print(fmt.Sprintln(i...))
+}
+
+// Printf is a convenience method to Printf to the defined output, fallback to Stderr if not set.
+func (c *Command) Printf(format string, i ...interface{}) {
+ c.Print(fmt.Sprintf(format, i...))
+}
+
+// CommandPath returns the full path to this command.
+func (c *Command) CommandPath() string {
+ if c.HasParent() {
+ return c.Parent().CommandPath() + " " + c.Name()
+ }
+ return c.Name()
+}
+
+// UseLine puts out the full usage for a given command (including parents).
+func (c *Command) UseLine() string {
+ var useline string
+ if c.HasParent() {
+ useline = c.parent.CommandPath() + " " + c.Use
+ } else {
+ useline = c.Use
+ }
+ if c.DisableFlagsInUseLine {
+ return useline
+ }
+ if c.HasAvailableFlags() && !strings.Contains(useline, "[flags]") {
+ useline += " [flags]"
+ }
+ return useline
+}
+
+// DebugFlags used to determine which flags have been assigned to which commands
+// and which persist.
+func (c *Command) DebugFlags() {
+ c.Println("DebugFlags called on", c.Name())
+ var debugflags func(*Command)
+
+ debugflags = func(x *Command) {
+ if x.HasFlags() || x.HasPersistentFlags() {
+ c.Println(x.Name())
+ }
+ if x.HasFlags() {
+ x.flags.VisitAll(func(f *flag.Flag) {
+ if x.HasPersistentFlags() && x.persistentFlag(f.Name) != nil {
+ c.Println(" -"+f.Shorthand+",", "--"+f.Name, "["+f.DefValue+"]", "", f.Value, " [LP]")
+ } else {
+ c.Println(" -"+f.Shorthand+",", "--"+f.Name, "["+f.DefValue+"]", "", f.Value, " [L]")
+ }
+ })
+ }
+ if x.HasPersistentFlags() {
+ x.pflags.VisitAll(func(f *flag.Flag) {
+ if x.HasFlags() {
+ if x.flags.Lookup(f.Name) == nil {
+ c.Println(" -"+f.Shorthand+",", "--"+f.Name, "["+f.DefValue+"]", "", f.Value, " [P]")
+ }
+ } else {
+ c.Println(" -"+f.Shorthand+",", "--"+f.Name, "["+f.DefValue+"]", "", f.Value, " [P]")
+ }
+ })
+ }
+ c.Println(x.flagErrorBuf)
+ if x.HasSubCommands() {
+ for _, y := range x.commands {
+ debugflags(y)
+ }
+ }
+ }
+
+ debugflags(c)
+}
+
+// Name returns the command's name: the first word in the use line.
+func (c *Command) Name() string {
+ name := c.Use
+ i := strings.Index(name, " ")
+ if i >= 0 {
+ name = name[:i]
+ }
+ return name
+}
+
+// HasAlias determines if a given string is an alias of the command.
+func (c *Command) HasAlias(s string) bool {
+ for _, a := range c.Aliases {
+ if a == s {
+ return true
+ }
+ }
+ return false
+}
+
+// CalledAs returns the command name or alias that was used to invoke
+// this command or an empty string if the command has not been called.
+func (c *Command) CalledAs() string {
+ if c.commandCalledAs.called {
+ return c.commandCalledAs.name
+ }
+ return ""
+}
+
+// hasNameOrAliasPrefix returns true if the Name or any of aliases start
+// with prefix
+func (c *Command) hasNameOrAliasPrefix(prefix string) bool {
+ if strings.HasPrefix(c.Name(), prefix) {
+ c.commandCalledAs.name = c.Name()
+ return true
+ }
+ for _, alias := range c.Aliases {
+ if strings.HasPrefix(alias, prefix) {
+ c.commandCalledAs.name = alias
+ return true
+ }
+ }
+ return false
+}
+
+// NameAndAliases returns a list of the command name and all aliases
+func (c *Command) NameAndAliases() string {
+ return strings.Join(append([]string{c.Name()}, c.Aliases...), ", ")
+}
+
+// HasExample determines if the command has example.
+func (c *Command) HasExample() bool {
+ return len(c.Example) > 0
+}
+
+// Runnable determines if the command is itself runnable.
+func (c *Command) Runnable() bool {
+ return c.Run != nil || c.RunE != nil
+}
+
+// HasSubCommands determines if the command has children commands.
+func (c *Command) HasSubCommands() bool {
+ return len(c.commands) > 0
+}
+
+// IsAvailableCommand determines if a command is available as a non-help command
+// (this includes all non deprecated/hidden commands).
+func (c *Command) IsAvailableCommand() bool {
+ if len(c.Deprecated) != 0 || c.Hidden {
+ return false
+ }
+
+ if c.HasParent() && c.Parent().helpCommand == c {
+ return false
+ }
+
+ if c.Runnable() || c.HasAvailableSubCommands() {
+ return true
+ }
+
+ return false
+}
+
+// IsAdditionalHelpTopicCommand determines if a command is an additional
+// help topic command; additional help topic command is determined by the
+// fact that it is NOT runnable/hidden/deprecated, and has no sub commands that
+// are runnable/hidden/deprecated.
+// Concrete example: https://github.com/spf13/cobra/issues/393#issuecomment-282741924.
+func (c *Command) IsAdditionalHelpTopicCommand() bool {
+ // if a command is runnable, deprecated, or hidden it is not a 'help' command
+ if c.Runnable() || len(c.Deprecated) != 0 || c.Hidden {
+ return false
+ }
+
+ // if any non-help sub commands are found, the command is not a 'help' command
+ for _, sub := range c.commands {
+ if !sub.IsAdditionalHelpTopicCommand() {
+ return false
+ }
+ }
+
+ // the command either has no sub commands, or no non-help sub commands
+ return true
+}
+
+// HasHelpSubCommands determines if a command has any available 'help' sub commands
+// that need to be shown in the usage/help default template under 'additional help
+// topics'.
+func (c *Command) HasHelpSubCommands() bool {
+ // return true on the first found available 'help' sub command
+ for _, sub := range c.commands {
+ if sub.IsAdditionalHelpTopicCommand() {
+ return true
+ }
+ }
+
+ // the command either has no sub commands, or no available 'help' sub commands
+ return false
+}
+
+// HasAvailableSubCommands determines if a command has available sub commands that
+// need to be shown in the usage/help default template under 'available commands'.
+func (c *Command) HasAvailableSubCommands() bool {
+ // return true on the first found available (non deprecated/help/hidden)
+ // sub command
+ for _, sub := range c.commands {
+ if sub.IsAvailableCommand() {
+ return true
+ }
+ }
+
+ // the command either has no sub commands, or no available (non deprecated/help/hidden)
+ // sub commands
+ return false
+}
+
+// HasParent determines if the command is a child command.
+func (c *Command) HasParent() bool {
+ return c.parent != nil
+}
+
+// GlobalNormalizationFunc returns the global normalization function or nil if it doesn't exist.
+func (c *Command) GlobalNormalizationFunc() func(f *flag.FlagSet, name string) flag.NormalizedName {
+ return c.globNormFunc
+}
+
+// Flags returns the complete FlagSet that applies
+// to this command (local and persistent declared here and by all parents).
+func (c *Command) Flags() *flag.FlagSet {
+ if c.flags == nil {
+ c.flags = flag.NewFlagSet(c.Name(), flag.ContinueOnError)
+ if c.flagErrorBuf == nil {
+ c.flagErrorBuf = new(bytes.Buffer)
+ }
+ c.flags.SetOutput(c.flagErrorBuf)
+ }
+
+ return c.flags
+}
+
+// LocalNonPersistentFlags are flags specific to this command which will NOT persist to subcommands.
+func (c *Command) LocalNonPersistentFlags() *flag.FlagSet {
+ persistentFlags := c.PersistentFlags()
+
+ out := flag.NewFlagSet(c.Name(), flag.ContinueOnError)
+ c.LocalFlags().VisitAll(func(f *flag.Flag) {
+ if persistentFlags.Lookup(f.Name) == nil {
+ out.AddFlag(f)
+ }
+ })
+ return out
+}
+
+// LocalFlags returns the local FlagSet specifically set in the current command.
+func (c *Command) LocalFlags() *flag.FlagSet {
+ c.mergePersistentFlags()
+
+ if c.lflags == nil {
+ c.lflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError)
+ if c.flagErrorBuf == nil {
+ c.flagErrorBuf = new(bytes.Buffer)
+ }
+ c.lflags.SetOutput(c.flagErrorBuf)
+ }
+ c.lflags.SortFlags = c.Flags().SortFlags
+ if c.globNormFunc != nil {
+ c.lflags.SetNormalizeFunc(c.globNormFunc)
+ }
+
+ addToLocal := func(f *flag.Flag) {
+ if c.lflags.Lookup(f.Name) == nil && c.parentsPflags.Lookup(f.Name) == nil {
+ c.lflags.AddFlag(f)
+ }
+ }
+ c.Flags().VisitAll(addToLocal)
+ c.PersistentFlags().VisitAll(addToLocal)
+ return c.lflags
+}
+
+// InheritedFlags returns all flags which were inherited from parents commands.
+func (c *Command) InheritedFlags() *flag.FlagSet {
+ c.mergePersistentFlags()
+
+ if c.iflags == nil {
+ c.iflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError)
+ if c.flagErrorBuf == nil {
+ c.flagErrorBuf = new(bytes.Buffer)
+ }
+ c.iflags.SetOutput(c.flagErrorBuf)
+ }
+
+ local := c.LocalFlags()
+ if c.globNormFunc != nil {
+ c.iflags.SetNormalizeFunc(c.globNormFunc)
+ }
+
+ c.parentsPflags.VisitAll(func(f *flag.Flag) {
+ if c.iflags.Lookup(f.Name) == nil && local.Lookup(f.Name) == nil {
+ c.iflags.AddFlag(f)
+ }
+ })
+ return c.iflags
+}
+
+// NonInheritedFlags returns all flags which were not inherited from parent commands.
+func (c *Command) NonInheritedFlags() *flag.FlagSet {
+ return c.LocalFlags()
+}
+
+// PersistentFlags returns the persistent FlagSet specifically set in the current command.
+func (c *Command) PersistentFlags() *flag.FlagSet {
+ if c.pflags == nil {
+ c.pflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError)
+ if c.flagErrorBuf == nil {
+ c.flagErrorBuf = new(bytes.Buffer)
+ }
+ c.pflags.SetOutput(c.flagErrorBuf)
+ }
+ return c.pflags
+}
+
+// ResetFlags deletes all flags from command.
+func (c *Command) ResetFlags() {
+ c.flagErrorBuf = new(bytes.Buffer)
+ c.flagErrorBuf.Reset()
+ c.flags = flag.NewFlagSet(c.Name(), flag.ContinueOnError)
+ c.flags.SetOutput(c.flagErrorBuf)
+ c.pflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError)
+ c.pflags.SetOutput(c.flagErrorBuf)
+
+ c.lflags = nil
+ c.iflags = nil
+ c.parentsPflags = nil
+}
+
+// HasFlags checks if the command contains any flags (local plus persistent from the entire structure).
+func (c *Command) HasFlags() bool {
+ return c.Flags().HasFlags()
+}
+
+// HasPersistentFlags checks if the command contains persistent flags.
+func (c *Command) HasPersistentFlags() bool {
+ return c.PersistentFlags().HasFlags()
+}
+
+// HasLocalFlags checks if the command has flags specifically declared locally.
+func (c *Command) HasLocalFlags() bool {
+ return c.LocalFlags().HasFlags()
+}
+
+// HasInheritedFlags checks if the command has flags inherited from its parent command.
+func (c *Command) HasInheritedFlags() bool {
+ return c.InheritedFlags().HasFlags()
+}
+
+// HasAvailableFlags checks if the command contains any flags (local plus persistent from the entire
+// structure) which are not hidden or deprecated.
+func (c *Command) HasAvailableFlags() bool {
+ return c.Flags().HasAvailableFlags()
+}
+
+// HasAvailablePersistentFlags checks if the command contains persistent flags which are not hidden or deprecated.
+func (c *Command) HasAvailablePersistentFlags() bool {
+ return c.PersistentFlags().HasAvailableFlags()
+}
+
+// HasAvailableLocalFlags checks if the command has flags specifically declared locally which are not hidden
+// or deprecated.
+func (c *Command) HasAvailableLocalFlags() bool {
+ return c.LocalFlags().HasAvailableFlags()
+}
+
+// HasAvailableInheritedFlags checks if the command has flags inherited from its parent command which are
+// not hidden or deprecated.
+func (c *Command) HasAvailableInheritedFlags() bool {
+ return c.InheritedFlags().HasAvailableFlags()
+}
+
+// Flag climbs up the command tree looking for matching flag.
+func (c *Command) Flag(name string) (flag *flag.Flag) {
+ flag = c.Flags().Lookup(name)
+
+ if flag == nil {
+ flag = c.persistentFlag(name)
+ }
+
+ return
+}
+
+// Recursively find matching persistent flag.
+func (c *Command) persistentFlag(name string) (flag *flag.Flag) {
+ if c.HasPersistentFlags() {
+ flag = c.PersistentFlags().Lookup(name)
+ }
+
+ if flag == nil {
+ c.updateParentsPflags()
+ flag = c.parentsPflags.Lookup(name)
+ }
+ return
+}
+
+// ParseFlags parses persistent flag tree and local flags.
+func (c *Command) ParseFlags(args []string) error {
+ if c.DisableFlagParsing {
+ return nil
+ }
+
+ if c.flagErrorBuf == nil {
+ c.flagErrorBuf = new(bytes.Buffer)
+ }
+ beforeErrorBufLen := c.flagErrorBuf.Len()
+ c.mergePersistentFlags()
+
+ //do it here after merging all flags and just before parse
+ c.Flags().ParseErrorsWhitelist = flag.ParseErrorsWhitelist(c.FParseErrWhitelist)
+
+ err := c.Flags().Parse(args)
+ // Print warnings if they occurred (e.g. deprecated flag messages).
+ if c.flagErrorBuf.Len()-beforeErrorBufLen > 0 && err == nil {
+ c.Print(c.flagErrorBuf.String())
+ }
+
+ return err
+}
+
+// Parent returns a commands parent command.
+func (c *Command) Parent() *Command {
+ return c.parent
+}
+
+// mergePersistentFlags merges c.PersistentFlags() to c.Flags()
+// and adds missing persistent flags of all parents.
+func (c *Command) mergePersistentFlags() {
+ c.updateParentsPflags()
+ c.Flags().AddFlagSet(c.PersistentFlags())
+ c.Flags().AddFlagSet(c.parentsPflags)
+}
+
+// updateParentsPflags updates c.parentsPflags by adding
+// new persistent flags of all parents.
+// If c.parentsPflags == nil, it makes new.
+func (c *Command) updateParentsPflags() {
+ if c.parentsPflags == nil {
+ c.parentsPflags = flag.NewFlagSet(c.Name(), flag.ContinueOnError)
+ c.parentsPflags.SetOutput(c.flagErrorBuf)
+ c.parentsPflags.SortFlags = false
+ }
+
+ if c.globNormFunc != nil {
+ c.parentsPflags.SetNormalizeFunc(c.globNormFunc)
+ }
+
+ c.Root().PersistentFlags().AddFlagSet(flag.CommandLine)
+
+ c.VisitParents(func(parent *Command) {
+ c.parentsPflags.AddFlagSet(parent.PersistentFlags())
+ })
+}
diff --git a/vendor/github.com/spf13/cobra/command_notwin.go b/vendor/github.com/spf13/cobra/command_notwin.go
new file mode 100644
index 0000000000..6159c1cc19
--- /dev/null
+++ b/vendor/github.com/spf13/cobra/command_notwin.go
@@ -0,0 +1,5 @@
+// +build !windows
+
+package cobra
+
+var preExecHookFn func(*Command)
diff --git a/vendor/github.com/spf13/cobra/command_win.go b/vendor/github.com/spf13/cobra/command_win.go
new file mode 100644
index 0000000000..edec728e4f
--- /dev/null
+++ b/vendor/github.com/spf13/cobra/command_win.go
@@ -0,0 +1,20 @@
+// +build windows
+
+package cobra
+
+import (
+ "os"
+ "time"
+
+ "github.com/inconshreveable/mousetrap"
+)
+
+var preExecHookFn = preExecHook
+
+func preExecHook(c *Command) {
+ if MousetrapHelpText != "" && mousetrap.StartedByExplorer() {
+ c.Print(MousetrapHelpText)
+ time.Sleep(5 * time.Second)
+ os.Exit(1)
+ }
+}
diff --git a/vendor/github.com/spf13/cobra/zsh_completions.go b/vendor/github.com/spf13/cobra/zsh_completions.go
new file mode 100644
index 0000000000..889c22e273
--- /dev/null
+++ b/vendor/github.com/spf13/cobra/zsh_completions.go
@@ -0,0 +1,126 @@
+package cobra
+
+import (
+ "bytes"
+ "fmt"
+ "io"
+ "os"
+ "strings"
+)
+
+// GenZshCompletionFile generates zsh completion file.
+func (c *Command) GenZshCompletionFile(filename string) error {
+ outFile, err := os.Create(filename)
+ if err != nil {
+ return err
+ }
+ defer outFile.Close()
+
+ return c.GenZshCompletion(outFile)
+}
+
+// GenZshCompletion generates a zsh completion file and writes to the passed writer.
+func (c *Command) GenZshCompletion(w io.Writer) error {
+ buf := new(bytes.Buffer)
+
+ writeHeader(buf, c)
+ maxDepth := maxDepth(c)
+ writeLevelMapping(buf, maxDepth)
+ writeLevelCases(buf, maxDepth, c)
+
+ _, err := buf.WriteTo(w)
+ return err
+}
+
+func writeHeader(w io.Writer, cmd *Command) {
+ fmt.Fprintf(w, "#compdef %s\n\n", cmd.Name())
+}
+
+func maxDepth(c *Command) int {
+ if len(c.Commands()) == 0 {
+ return 0
+ }
+ maxDepthSub := 0
+ for _, s := range c.Commands() {
+ subDepth := maxDepth(s)
+ if subDepth > maxDepthSub {
+ maxDepthSub = subDepth
+ }
+ }
+ return 1 + maxDepthSub
+}
+
+func writeLevelMapping(w io.Writer, numLevels int) {
+ fmt.Fprintln(w, `_arguments \`)
+ for i := 1; i <= numLevels; i++ {
+ fmt.Fprintf(w, ` '%d: :->level%d' \`, i, i)
+ fmt.Fprintln(w)
+ }
+ fmt.Fprintf(w, ` '%d: :%s'`, numLevels+1, "_files")
+ fmt.Fprintln(w)
+}
+
+func writeLevelCases(w io.Writer, maxDepth int, root *Command) {
+ fmt.Fprintln(w, "case $state in")
+ defer fmt.Fprintln(w, "esac")
+
+ for i := 1; i <= maxDepth; i++ {
+ fmt.Fprintf(w, " level%d)\n", i)
+ writeLevel(w, root, i)
+ fmt.Fprintln(w, " ;;")
+ }
+ fmt.Fprintln(w, " *)")
+ fmt.Fprintln(w, " _arguments '*: :_files'")
+ fmt.Fprintln(w, " ;;")
+}
+
+func writeLevel(w io.Writer, root *Command, i int) {
+ fmt.Fprintf(w, " case $words[%d] in\n", i)
+ defer fmt.Fprintln(w, " esac")
+
+ commands := filterByLevel(root, i)
+ byParent := groupByParent(commands)
+
+ for p, c := range byParent {
+ names := names(c)
+ fmt.Fprintf(w, " %s)\n", p)
+ fmt.Fprintf(w, " _arguments '%d: :(%s)'\n", i, strings.Join(names, " "))
+ fmt.Fprintln(w, " ;;")
+ }
+ fmt.Fprintln(w, " *)")
+ fmt.Fprintln(w, " _arguments '*: :_files'")
+ fmt.Fprintln(w, " ;;")
+
+}
+
+func filterByLevel(c *Command, l int) []*Command {
+ cs := make([]*Command, 0)
+ if l == 0 {
+ cs = append(cs, c)
+ return cs
+ }
+ for _, s := range c.Commands() {
+ cs = append(cs, filterByLevel(s, l-1)...)
+ }
+ return cs
+}
+
+func groupByParent(commands []*Command) map[string][]*Command {
+ m := make(map[string][]*Command)
+ for _, c := range commands {
+ parent := c.Parent()
+ if parent == nil {
+ continue
+ }
+ m[parent.Name()] = append(m[parent.Name()], c)
+ }
+ return m
+}
+
+func names(commands []*Command) []string {
+ ns := make([]string, len(commands))
+ for i, c := range commands {
+ ns[i] = c.Name()
+ }
+ return ns
+}
diff --git a/vendor/github.com/spf13/pflag/.gitignore b/vendor/github.com/spf13/pflag/.gitignore
new file mode 100644
index 0000000000..c3da290134
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/.gitignore
@@ -0,0 +1,2 @@
+.idea/*
+
diff --git a/vendor/github.com/spf13/pflag/.travis.yml b/vendor/github.com/spf13/pflag/.travis.yml
new file mode 100644
index 0000000000..f8a63b308b
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/.travis.yml
@@ -0,0 +1,21 @@
+sudo: false
+
+language: go
+
+go:
+ - 1.7.3
+ - 1.8.1
+ - tip
+
+matrix:
+ allow_failures:
+ - go: tip
+
+install:
+ - go get github.com/golang/lint/golint
+ - export PATH=$GOPATH/bin:$PATH
+ - go install ./...
+
+script:
+ - verify/all.sh -v
+ - go test ./...
diff --git a/vendor/github.com/spf13/pflag/LICENSE b/vendor/github.com/spf13/pflag/LICENSE
new file mode 100644
index 0000000000..63ed1cfea1
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/LICENSE
@@ -0,0 +1,28 @@
+Copyright (c) 2012 Alex Ogier. All rights reserved.
+Copyright (c) 2012 The Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/github.com/spf13/pflag/README.md b/vendor/github.com/spf13/pflag/README.md
new file mode 100644
index 0000000000..b052414d12
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/README.md
@@ -0,0 +1,296 @@
+[![Build Status](https://travis-ci.org/spf13/pflag.svg?branch=master)](https://travis-ci.org/spf13/pflag)
+[![Go Report Card](https://goreportcard.com/badge/github.com/spf13/pflag)](https://goreportcard.com/report/github.com/spf13/pflag)
+[![GoDoc](https://godoc.org/github.com/spf13/pflag?status.svg)](https://godoc.org/github.com/spf13/pflag)
+
+## Description
+
+pflag is a drop-in replacement for Go's flag package, implementing
+POSIX/GNU-style --flags.
+
+pflag is compatible with the [GNU extensions to the POSIX recommendations
+for command-line options][1]. For a more precise description, see the
+"Command-line flag syntax" section below.
+
+[1]: http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html
+
+pflag is available under the same style of BSD license as the Go language,
+which can be found in the LICENSE file.
+
+## Installation
+
+pflag is available using the standard `go get` command.
+
+Install by running:
+
+ go get github.com/spf13/pflag
+
+Run tests by running:
+
+ go test github.com/spf13/pflag
+
+## Usage
+
+pflag is a drop-in replacement of Go's native flag package. If you import
+pflag under the name "flag" then all code should continue to function
+with no changes.
+
+``` go
+import flag "github.com/spf13/pflag"
+```
+
+There is one exception to this: if you directly instantiate the Flag struct
+there is one more field "Shorthand" that you will need to set.
+Most code never instantiates this struct directly, and instead uses
+functions such as String(), BoolVar(), and Var(), and is therefore
+unaffected.
+
+Define flags using flag.String(), Bool(), Int(), etc.
+
+This declares an integer flag, -flagname, stored in the pointer ip, with type *int.
+
+``` go
+var ip *int = flag.Int("flagname", 1234, "help message for flagname")
+```
+
+If you like, you can bind the flag to a variable using the Var() functions.
+
+``` go
+var flagvar int
+func init() {
+ flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname")
+}
+```
+
+Or you can create custom flags that satisfy the Value interface (with
+pointer receivers) and couple them to flag parsing by
+
+``` go
+flag.Var(&flagVal, "name", "help message for flagname")
+```
+
+For such flags, the default value is just the initial value of the variable.
+
+After all flags are defined, call
+
+``` go
+flag.Parse()
+```
+
+to parse the command line into the defined flags.
+
+Flags may then be used directly. If you're using the flags themselves,
+they are all pointers; if you bind to variables, they're values.
+
+``` go
+fmt.Println("ip has value ", *ip)
+fmt.Println("flagvar has value ", flagvar)
+```
+
+There are helpers function to get values later if you have the FlagSet but
+it was difficult to keep up with all of the flag pointers in your code.
+If you have a pflag.FlagSet with a flag called 'flagname' of type int you
+can use GetInt() to get the int value. But notice that 'flagname' must exist
+and it must be an int. GetString("flagname") will fail.
+
+``` go
+i, err := flagset.GetInt("flagname")
+```
+
+After parsing, the arguments after the flag are available as the
+slice flag.Args() or individually as flag.Arg(i).
+The arguments are indexed from 0 through flag.NArg()-1.
+
+The pflag package also defines some new functions that are not in flag,
+that give one-letter shorthands for flags. You can use these by appending
+'P' to the name of any function that defines a flag.
+
+``` go
+var ip = flag.IntP("flagname", "f", 1234, "help message")
+var flagvar bool
+func init() {
+ flag.BoolVarP(&flagvar, "boolname", "b", true, "help message")
+}
+flag.VarP(&flagVal, "varname", "v", "help message")
+```
+
+Shorthand letters can be used with single dashes on the command line.
+Boolean shorthand flags can be combined with other shorthand flags.
+
+The default set of command-line flags is controlled by
+top-level functions. The FlagSet type allows one to define
+independent sets of flags, such as to implement subcommands
+in a command-line interface. The methods of FlagSet are
+analogous to the top-level functions for the command-line
+flag set.
+
+## Setting no option default values for flags
+
+After you create a flag it is possible to set the pflag.NoOptDefVal for
+the given flag. Doing this changes the meaning of the flag slightly. If
+a flag has a NoOptDefVal and the flag is set on the command line without
+an option the flag will be set to the NoOptDefVal. For example given:
+
+``` go
+var ip = flag.IntP("flagname", "f", 1234, "help message")
+flag.Lookup("flagname").NoOptDefVal = "4321"
+```
+
+Would result in something like
+
+| Parsed Arguments | Resulting Value |
+| ------------- | ------------- |
+| --flagname=1357 | ip=1357 |
+| --flagname | ip=4321 |
+| [nothing] | ip=1234 |
+
+## Command line flag syntax
+
+```
+--flag // boolean flags, or flags with no option default values
+--flag x // only on flags without a default value
+--flag=x
+```
+
+Unlike the flag package, a single dash before an option means something
+different than a double dash. Single dashes signify a series of shorthand
+letters for flags. All but the last shorthand letter must be boolean flags
+or a flag with a default value
+
+```
+// boolean or flags where the 'no option default value' is set
+-f
+-f=true
+-abc
+but
+-b true is INVALID
+
+// non-boolean and flags without a 'no option default value'
+-n 1234
+-n=1234
+-n1234
+
+// mixed
+-abcs "hello"
+-absd="hello"
+-abcs1234
+```
+
+Flag parsing stops after the terminator "--". Unlike the flag package,
+flags can be interspersed with arguments anywhere on the command line
+before this terminator.
+
+Integer flags accept 1234, 0664, 0x1234 and may be negative.
+Boolean flags (in their long form) accept 1, 0, t, f, true, false,
+TRUE, FALSE, True, False.
+Duration flags accept any input valid for time.ParseDuration.
+
+## Mutating or "Normalizing" Flag names
+
+It is possible to set a custom flag name 'normalization function.' It allows flag names to be mutated both when created in the code and when used on the command line to some 'normalized' form. The 'normalized' form is used for comparison. Two examples of using the custom normalization func follow.
+
+**Example #1**: You want -, _, and . in flags to compare the same. aka --my-flag == --my_flag == --my.flag
+
+``` go
+func wordSepNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName {
+ from := []string{"-", "_"}
+ to := "."
+ for _, sep := range from {
+ name = strings.Replace(name, sep, to, -1)
+ }
+ return pflag.NormalizedName(name)
+}
+
+myFlagSet.SetNormalizeFunc(wordSepNormalizeFunc)
+```
+
+**Example #2**: You want to alias two flags. aka --old-flag-name == --new-flag-name
+
+``` go
+func aliasNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName {
+ switch name {
+ case "old-flag-name":
+ name = "new-flag-name"
+ break
+ }
+ return pflag.NormalizedName(name)
+}
+
+myFlagSet.SetNormalizeFunc(aliasNormalizeFunc)
+```
+
+## Deprecating a flag or its shorthand
+It is possible to deprecate a flag, or just its shorthand. Deprecating a flag/shorthand hides it from help text and prints a usage message when the deprecated flag/shorthand is used.
+
+**Example #1**: You want to deprecate a flag named "badflag" as well as inform the users what flag they should use instead.
+```go
+// deprecate a flag by specifying its name and a usage message
+flags.MarkDeprecated("badflag", "please use --good-flag instead")
+```
+This hides "badflag" from help text, and prints `Flag --badflag has been deprecated, please use --good-flag instead` when "badflag" is used.
+
+**Example #2**: You want to keep a flag name "noshorthandflag" but deprecate its shortname "n".
+```go
+// deprecate a flag shorthand by specifying its flag name and a usage message
+flags.MarkShorthandDeprecated("noshorthandflag", "please use --noshorthandflag only")
+```
+This hides the shortname "n" from help text, and prints `Flag shorthand -n has been deprecated, please use --noshorthandflag only` when the shorthand "n" is used.
+
+Note that usage message is essential here, and it should not be empty.
+
+## Hidden flags
+It is possible to mark a flag as hidden, meaning it will still function as normal, however will not show up in usage/help text.
+
+**Example**: You have a flag named "secretFlag" that you need for internal use only and don't want it showing up in help text, or for its usage text to be available.
+```go
+// hide a flag by specifying its name
+flags.MarkHidden("secretFlag")
+```
+
+## Disable sorting of flags
+`pflag` allows you to disable sorting of flags for help and usage message.
+
+**Example**:
+```go
+flags.BoolP("verbose", "v", false, "verbose output")
+flags.String("coolflag", "yeaah", "it's really cool flag")
+flags.Int("usefulflag", 777, "sometimes it's very useful")
+flags.SortFlags = false
+flags.PrintDefaults()
+```
+**Output**:
+```
+ -v, --verbose verbose output
+ --coolflag string it's really cool flag (default "yeaah")
+ --usefulflag int sometimes it's very useful (default 777)
+```
+
+
+## Supporting Go flags when using pflag
+In order to support flags defined using Go's `flag` package, they must be added to the `pflag` flagset. This is usually necessary
+to support flags defined by third-party dependencies (e.g. `golang/glog`).
+
+**Example**: You want to add the Go flags to the `CommandLine` flagset
+```go
+import (
+ goflag "flag"
+ flag "github.com/spf13/pflag"
+)
+
+var ip *int = flag.Int("flagname", 1234, "help message for flagname")
+
+func main() {
+ flag.CommandLine.AddGoFlagSet(goflag.CommandLine)
+ flag.Parse()
+}
+```
+
+## More info
+
+You can see the full reference documentation of the pflag package
+[at godoc.org][3], or through go's standard documentation system by
+running `godoc -http=:6060` and browsing to
+[http://localhost:6060/pkg/github.com/spf13/pflag][2] after
+installation.
+
+[2]: http://localhost:6060/pkg/github.com/spf13/pflag
+[3]: http://godoc.org/github.com/spf13/pflag
diff --git a/vendor/github.com/spf13/pflag/bool.go b/vendor/github.com/spf13/pflag/bool.go
new file mode 100644
index 0000000000..c4c5c0bfda
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/bool.go
@@ -0,0 +1,94 @@
+package pflag
+
+import "strconv"
+
+// optional interface to indicate boolean flags that can be
+// supplied without "=value" text
+type boolFlag interface {
+ Value
+ IsBoolFlag() bool
+}
+
+// -- bool Value
+type boolValue bool
+
+func newBoolValue(val bool, p *bool) *boolValue {
+ *p = val
+ return (*boolValue)(p)
+}
+
+func (b *boolValue) Set(s string) error {
+ v, err := strconv.ParseBool(s)
+ *b = boolValue(v)
+ return err
+}
+
+func (b *boolValue) Type() string {
+ return "bool"
+}
+
+func (b *boolValue) String() string { return strconv.FormatBool(bool(*b)) }
+
+func (b *boolValue) IsBoolFlag() bool { return true }
+
+func boolConv(sval string) (interface{}, error) {
+ return strconv.ParseBool(sval)
+}
+
+// GetBool return the bool value of a flag with the given name
+func (f *FlagSet) GetBool(name string) (bool, error) {
+ val, err := f.getFlagType(name, "bool", boolConv)
+ if err != nil {
+ return false, err
+ }
+ return val.(bool), nil
+}
+
+// BoolVar defines a bool flag with specified name, default value, and usage string.
+// The argument p points to a bool variable in which to store the value of the flag.
+func (f *FlagSet) BoolVar(p *bool, name string, value bool, usage string) {
+ f.BoolVarP(p, name, "", value, usage)
+}
+
+// BoolVarP is like BoolVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) BoolVarP(p *bool, name, shorthand string, value bool, usage string) {
+ flag := f.VarPF(newBoolValue(value, p), name, shorthand, usage)
+ flag.NoOptDefVal = "true"
+}
+
+// BoolVar defines a bool flag with specified name, default value, and usage string.
+// The argument p points to a bool variable in which to store the value of the flag.
+func BoolVar(p *bool, name string, value bool, usage string) {
+ BoolVarP(p, name, "", value, usage)
+}
+
+// BoolVarP is like BoolVar, but accepts a shorthand letter that can be used after a single dash.
+func BoolVarP(p *bool, name, shorthand string, value bool, usage string) {
+ flag := CommandLine.VarPF(newBoolValue(value, p), name, shorthand, usage)
+ flag.NoOptDefVal = "true"
+}
+
+// Bool defines a bool flag with specified name, default value, and usage string.
+// The return value is the address of a bool variable that stores the value of the flag.
+func (f *FlagSet) Bool(name string, value bool, usage string) *bool {
+ return f.BoolP(name, "", value, usage)
+}
+
+// BoolP is like Bool, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) BoolP(name, shorthand string, value bool, usage string) *bool {
+ p := new(bool)
+ f.BoolVarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// Bool defines a bool flag with specified name, default value, and usage string.
+// The return value is the address of a bool variable that stores the value of the flag.
+func Bool(name string, value bool, usage string) *bool {
+ return BoolP(name, "", value, usage)
+}
+
+// BoolP is like Bool, but accepts a shorthand letter that can be used after a single dash.
+func BoolP(name, shorthand string, value bool, usage string) *bool {
+ b := CommandLine.BoolP(name, shorthand, value, usage)
+ return b
+}
diff --git a/vendor/github.com/spf13/pflag/bool_slice.go b/vendor/github.com/spf13/pflag/bool_slice.go
new file mode 100644
index 0000000000..5af02f1a75
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/bool_slice.go
@@ -0,0 +1,147 @@
+package pflag
+
+import (
+ "io"
+ "strconv"
+ "strings"
+)
+
+// -- boolSlice Value
+type boolSliceValue struct {
+ value *[]bool
+ changed bool
+}
+
+func newBoolSliceValue(val []bool, p *[]bool) *boolSliceValue {
+ bsv := new(boolSliceValue)
+ bsv.value = p
+ *bsv.value = val
+ return bsv
+}
+
+// Set converts, and assigns, the comma-separated boolean argument string representation as the []bool value of this flag.
+// If Set is called on a flag that already has a []bool assigned, the newly converted values will be appended.
+func (s *boolSliceValue) Set(val string) error {
+
+ // remove all quote characters
+ rmQuote := strings.NewReplacer(`"`, "", `'`, "", "`", "")
+
+ // read flag arguments with CSV parser
+ boolStrSlice, err := readAsCSV(rmQuote.Replace(val))
+ if err != nil && err != io.EOF {
+ return err
+ }
+
+ // parse boolean values into slice
+ out := make([]bool, 0, len(boolStrSlice))
+ for _, boolStr := range boolStrSlice {
+ b, err := strconv.ParseBool(strings.TrimSpace(boolStr))
+ if err != nil {
+ return err
+ }
+ out = append(out, b)
+ }
+
+ if !s.changed {
+ *s.value = out
+ } else {
+ *s.value = append(*s.value, out...)
+ }
+
+ s.changed = true
+
+ return nil
+}
+
+// Type returns a string that uniquely represents this flag's type.
+func (s *boolSliceValue) Type() string {
+ return "boolSlice"
+}
+
+// String defines a "native" format for this boolean slice flag value.
+func (s *boolSliceValue) String() string {
+
+ boolStrSlice := make([]string, len(*s.value))
+ for i, b := range *s.value {
+ boolStrSlice[i] = strconv.FormatBool(b)
+ }
+
+ out, _ := writeAsCSV(boolStrSlice)
+
+ return "[" + out + "]"
+}
+
+func boolSliceConv(val string) (interface{}, error) {
+ val = strings.Trim(val, "[]")
+ // Empty string would cause a slice with one (empty) entry
+ if len(val) == 0 {
+ return []bool{}, nil
+ }
+ ss := strings.Split(val, ",")
+ out := make([]bool, len(ss))
+ for i, t := range ss {
+ var err error
+ out[i], err = strconv.ParseBool(t)
+ if err != nil {
+ return nil, err
+ }
+ }
+ return out, nil
+}
+
+// GetBoolSlice returns the []bool value of a flag with the given name.
+func (f *FlagSet) GetBoolSlice(name string) ([]bool, error) {
+ val, err := f.getFlagType(name, "boolSlice", boolSliceConv)
+ if err != nil {
+ return []bool{}, err
+ }
+ return val.([]bool), nil
+}
+
+// BoolSliceVar defines a boolSlice flag with specified name, default value, and usage string.
+// The argument p points to a []bool variable in which to store the value of the flag.
+func (f *FlagSet) BoolSliceVar(p *[]bool, name string, value []bool, usage string) {
+ f.VarP(newBoolSliceValue(value, p), name, "", usage)
+}
+
+// BoolSliceVarP is like BoolSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) BoolSliceVarP(p *[]bool, name, shorthand string, value []bool, usage string) {
+ f.VarP(newBoolSliceValue(value, p), name, shorthand, usage)
+}
+
+// BoolSliceVar defines a []bool flag with specified name, default value, and usage string.
+// The argument p points to a []bool variable in which to store the value of the flag.
+func BoolSliceVar(p *[]bool, name string, value []bool, usage string) {
+ CommandLine.VarP(newBoolSliceValue(value, p), name, "", usage)
+}
+
+// BoolSliceVarP is like BoolSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func BoolSliceVarP(p *[]bool, name, shorthand string, value []bool, usage string) {
+ CommandLine.VarP(newBoolSliceValue(value, p), name, shorthand, usage)
+}
+
+// BoolSlice defines a []bool flag with specified name, default value, and usage string.
+// The return value is the address of a []bool variable that stores the value of the flag.
+func (f *FlagSet) BoolSlice(name string, value []bool, usage string) *[]bool {
+ p := []bool{}
+ f.BoolSliceVarP(&p, name, "", value, usage)
+ return &p
+}
+
+// BoolSliceP is like BoolSlice, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) BoolSliceP(name, shorthand string, value []bool, usage string) *[]bool {
+ p := []bool{}
+ f.BoolSliceVarP(&p, name, shorthand, value, usage)
+ return &p
+}
+
+// BoolSlice defines a []bool flag with specified name, default value, and usage string.
+// The return value is the address of a []bool variable that stores the value of the flag.
+func BoolSlice(name string, value []bool, usage string) *[]bool {
+ return CommandLine.BoolSliceP(name, "", value, usage)
+}
+
+// BoolSliceP is like BoolSlice, but accepts a shorthand letter that can be used after a single dash.
+func BoolSliceP(name, shorthand string, value []bool, usage string) *[]bool {
+ return CommandLine.BoolSliceP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/bytes.go b/vendor/github.com/spf13/pflag/bytes.go
new file mode 100644
index 0000000000..67d5304570
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/bytes.go
@@ -0,0 +1,209 @@
+package pflag
+
+import (
+ "encoding/base64"
+ "encoding/hex"
+ "fmt"
+ "strings"
+)
+
+// BytesHex adapts []byte for use as a flag. Value of flag is HEX encoded
+type bytesHexValue []byte
+
+// String implements pflag.Value.String.
+func (bytesHex bytesHexValue) String() string {
+ return fmt.Sprintf("%X", []byte(bytesHex))
+}
+
+// Set implements pflag.Value.Set.
+func (bytesHex *bytesHexValue) Set(value string) error {
+ bin, err := hex.DecodeString(strings.TrimSpace(value))
+
+ if err != nil {
+ return err
+ }
+
+ *bytesHex = bin
+
+ return nil
+}
+
+// Type implements pflag.Value.Type.
+func (*bytesHexValue) Type() string {
+ return "bytesHex"
+}
+
+func newBytesHexValue(val []byte, p *[]byte) *bytesHexValue {
+ *p = val
+ return (*bytesHexValue)(p)
+}
+
+func bytesHexConv(sval string) (interface{}, error) {
+
+ bin, err := hex.DecodeString(sval)
+
+ if err == nil {
+ return bin, nil
+ }
+
+ return nil, fmt.Errorf("invalid string being converted to Bytes: %s %s", sval, err)
+}
+
+// GetBytesHex return the []byte value of a flag with the given name
+func (f *FlagSet) GetBytesHex(name string) ([]byte, error) {
+ val, err := f.getFlagType(name, "bytesHex", bytesHexConv)
+
+ if err != nil {
+ return []byte{}, err
+ }
+
+ return val.([]byte), nil
+}
+
+// BytesHexVar defines an []byte flag with specified name, default value, and usage string.
+// The argument p points to an []byte variable in which to store the value of the flag.
+func (f *FlagSet) BytesHexVar(p *[]byte, name string, value []byte, usage string) {
+ f.VarP(newBytesHexValue(value, p), name, "", usage)
+}
+
+// BytesHexVarP is like BytesHexVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) BytesHexVarP(p *[]byte, name, shorthand string, value []byte, usage string) {
+ f.VarP(newBytesHexValue(value, p), name, shorthand, usage)
+}
+
+// BytesHexVar defines an []byte flag with specified name, default value, and usage string.
+// The argument p points to an []byte variable in which to store the value of the flag.
+func BytesHexVar(p *[]byte, name string, value []byte, usage string) {
+ CommandLine.VarP(newBytesHexValue(value, p), name, "", usage)
+}
+
+// BytesHexVarP is like BytesHexVar, but accepts a shorthand letter that can be used after a single dash.
+func BytesHexVarP(p *[]byte, name, shorthand string, value []byte, usage string) {
+ CommandLine.VarP(newBytesHexValue(value, p), name, shorthand, usage)
+}
+
+// BytesHex defines an []byte flag with specified name, default value, and usage string.
+// The return value is the address of an []byte variable that stores the value of the flag.
+func (f *FlagSet) BytesHex(name string, value []byte, usage string) *[]byte {
+ p := new([]byte)
+ f.BytesHexVarP(p, name, "", value, usage)
+ return p
+}
+
+// BytesHexP is like BytesHex, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) BytesHexP(name, shorthand string, value []byte, usage string) *[]byte {
+ p := new([]byte)
+ f.BytesHexVarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// BytesHex defines an []byte flag with specified name, default value, and usage string.
+// The return value is the address of an []byte variable that stores the value of the flag.
+func BytesHex(name string, value []byte, usage string) *[]byte {
+ return CommandLine.BytesHexP(name, "", value, usage)
+}
+
+// BytesHexP is like BytesHex, but accepts a shorthand letter that can be used after a single dash.
+func BytesHexP(name, shorthand string, value []byte, usage string) *[]byte {
+ return CommandLine.BytesHexP(name, shorthand, value, usage)
+}
+
+// BytesBase64 adapts []byte for use as a flag. Value of flag is Base64 encoded
+type bytesBase64Value []byte
+
+// String implements pflag.Value.String.
+func (bytesBase64 bytesBase64Value) String() string {
+ return base64.StdEncoding.EncodeToString([]byte(bytesBase64))
+}
+
+// Set implements pflag.Value.Set.
+func (bytesBase64 *bytesBase64Value) Set(value string) error {
+ bin, err := base64.StdEncoding.DecodeString(strings.TrimSpace(value))
+
+ if err != nil {
+ return err
+ }
+
+ *bytesBase64 = bin
+
+ return nil
+}
+
+// Type implements pflag.Value.Type.
+func (*bytesBase64Value) Type() string {
+ return "bytesBase64"
+}
+
+func newBytesBase64Value(val []byte, p *[]byte) *bytesBase64Value {
+ *p = val
+ return (*bytesBase64Value)(p)
+}
+
+func bytesBase64ValueConv(sval string) (interface{}, error) {
+
+ bin, err := base64.StdEncoding.DecodeString(sval)
+ if err == nil {
+ return bin, nil
+ }
+
+ return nil, fmt.Errorf("invalid string being converted to Bytes: %s %s", sval, err)
+}
+
+// GetBytesBase64 return the []byte value of a flag with the given name
+func (f *FlagSet) GetBytesBase64(name string) ([]byte, error) {
+ val, err := f.getFlagType(name, "bytesBase64", bytesBase64ValueConv)
+
+ if err != nil {
+ return []byte{}, err
+ }
+
+ return val.([]byte), nil
+}
+
+// BytesBase64Var defines an []byte flag with specified name, default value, and usage string.
+// The argument p points to an []byte variable in which to store the value of the flag.
+func (f *FlagSet) BytesBase64Var(p *[]byte, name string, value []byte, usage string) {
+ f.VarP(newBytesBase64Value(value, p), name, "", usage)
+}
+
+// BytesBase64VarP is like BytesBase64Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) BytesBase64VarP(p *[]byte, name, shorthand string, value []byte, usage string) {
+ f.VarP(newBytesBase64Value(value, p), name, shorthand, usage)
+}
+
+// BytesBase64Var defines an []byte flag with specified name, default value, and usage string.
+// The argument p points to an []byte variable in which to store the value of the flag.
+func BytesBase64Var(p *[]byte, name string, value []byte, usage string) {
+ CommandLine.VarP(newBytesBase64Value(value, p), name, "", usage)
+}
+
+// BytesBase64VarP is like BytesBase64Var, but accepts a shorthand letter that can be used after a single dash.
+func BytesBase64VarP(p *[]byte, name, shorthand string, value []byte, usage string) {
+ CommandLine.VarP(newBytesBase64Value(value, p), name, shorthand, usage)
+}
+
+// BytesBase64 defines an []byte flag with specified name, default value, and usage string.
+// The return value is the address of an []byte variable that stores the value of the flag.
+func (f *FlagSet) BytesBase64(name string, value []byte, usage string) *[]byte {
+ p := new([]byte)
+ f.BytesBase64VarP(p, name, "", value, usage)
+ return p
+}
+
+// BytesBase64P is like BytesBase64, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) BytesBase64P(name, shorthand string, value []byte, usage string) *[]byte {
+ p := new([]byte)
+ f.BytesBase64VarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// BytesBase64 defines an []byte flag with specified name, default value, and usage string.
+// The return value is the address of an []byte variable that stores the value of the flag.
+func BytesBase64(name string, value []byte, usage string) *[]byte {
+ return CommandLine.BytesBase64P(name, "", value, usage)
+}
+
+// BytesBase64P is like BytesBase64, but accepts a shorthand letter that can be used after a single dash.
+func BytesBase64P(name, shorthand string, value []byte, usage string) *[]byte {
+ return CommandLine.BytesBase64P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/count.go b/vendor/github.com/spf13/pflag/count.go
new file mode 100644
index 0000000000..aa126e44d1
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/count.go
@@ -0,0 +1,96 @@
+package pflag
+
+import "strconv"
+
+// -- count Value
+type countValue int
+
+func newCountValue(val int, p *int) *countValue {
+ *p = val
+ return (*countValue)(p)
+}
+
+func (i *countValue) Set(s string) error {
+ // "+1" means that no specific value was passed, so increment
+ if s == "+1" {
+ *i = countValue(*i + 1)
+ return nil
+ }
+ v, err := strconv.ParseInt(s, 0, 0)
+ *i = countValue(v)
+ return err
+}
+
+func (i *countValue) Type() string {
+ return "count"
+}
+
+func (i *countValue) String() string { return strconv.Itoa(int(*i)) }
+
+func countConv(sval string) (interface{}, error) {
+ i, err := strconv.Atoi(sval)
+ if err != nil {
+ return nil, err
+ }
+ return i, nil
+}
+
+// GetCount return the int value of a flag with the given name
+func (f *FlagSet) GetCount(name string) (int, error) {
+ val, err := f.getFlagType(name, "count", countConv)
+ if err != nil {
+ return 0, err
+ }
+ return val.(int), nil
+}
+
+// CountVar defines a count flag with specified name, default value, and usage string.
+// The argument p points to an int variable in which to store the value of the flag.
+// A count flag will add 1 to its value evey time it is found on the command line
+func (f *FlagSet) CountVar(p *int, name string, usage string) {
+ f.CountVarP(p, name, "", usage)
+}
+
+// CountVarP is like CountVar only take a shorthand for the flag name.
+func (f *FlagSet) CountVarP(p *int, name, shorthand string, usage string) {
+ flag := f.VarPF(newCountValue(0, p), name, shorthand, usage)
+ flag.NoOptDefVal = "+1"
+}
+
+// CountVar like CountVar only the flag is placed on the CommandLine instead of a given flag set
+func CountVar(p *int, name string, usage string) {
+ CommandLine.CountVar(p, name, usage)
+}
+
+// CountVarP is like CountVar only take a shorthand for the flag name.
+func CountVarP(p *int, name, shorthand string, usage string) {
+ CommandLine.CountVarP(p, name, shorthand, usage)
+}
+
+// Count defines a count flag with specified name, default value, and usage string.
+// The return value is the address of an int variable that stores the value of the flag.
+// A count flag will add 1 to its value evey time it is found on the command line
+func (f *FlagSet) Count(name string, usage string) *int {
+ p := new(int)
+ f.CountVarP(p, name, "", usage)
+ return p
+}
+
+// CountP is like Count only takes a shorthand for the flag name.
+func (f *FlagSet) CountP(name, shorthand string, usage string) *int {
+ p := new(int)
+ f.CountVarP(p, name, shorthand, usage)
+ return p
+}
+
+// Count defines a count flag with specified name, default value, and usage string.
+// The return value is the address of an int variable that stores the value of the flag.
+// A count flag will add 1 to its value evey time it is found on the command line
+func Count(name string, usage string) *int {
+ return CommandLine.CountP(name, "", usage)
+}
+
+// CountP is like Count only takes a shorthand for the flag name.
+func CountP(name, shorthand string, usage string) *int {
+ return CommandLine.CountP(name, shorthand, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/duration.go b/vendor/github.com/spf13/pflag/duration.go
new file mode 100644
index 0000000000..e9debef88e
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/duration.go
@@ -0,0 +1,86 @@
+package pflag
+
+import (
+ "time"
+)
+
+// -- time.Duration Value
+type durationValue time.Duration
+
+func newDurationValue(val time.Duration, p *time.Duration) *durationValue {
+ *p = val
+ return (*durationValue)(p)
+}
+
+func (d *durationValue) Set(s string) error {
+ v, err := time.ParseDuration(s)
+ *d = durationValue(v)
+ return err
+}
+
+func (d *durationValue) Type() string {
+ return "duration"
+}
+
+func (d *durationValue) String() string { return (*time.Duration)(d).String() }
+
+func durationConv(sval string) (interface{}, error) {
+ return time.ParseDuration(sval)
+}
+
+// GetDuration return the duration value of a flag with the given name
+func (f *FlagSet) GetDuration(name string) (time.Duration, error) {
+ val, err := f.getFlagType(name, "duration", durationConv)
+ if err != nil {
+ return 0, err
+ }
+ return val.(time.Duration), nil
+}
+
+// DurationVar defines a time.Duration flag with specified name, default value, and usage string.
+// The argument p points to a time.Duration variable in which to store the value of the flag.
+func (f *FlagSet) DurationVar(p *time.Duration, name string, value time.Duration, usage string) {
+ f.VarP(newDurationValue(value, p), name, "", usage)
+}
+
+// DurationVarP is like DurationVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) DurationVarP(p *time.Duration, name, shorthand string, value time.Duration, usage string) {
+ f.VarP(newDurationValue(value, p), name, shorthand, usage)
+}
+
+// DurationVar defines a time.Duration flag with specified name, default value, and usage string.
+// The argument p points to a time.Duration variable in which to store the value of the flag.
+func DurationVar(p *time.Duration, name string, value time.Duration, usage string) {
+ CommandLine.VarP(newDurationValue(value, p), name, "", usage)
+}
+
+// DurationVarP is like DurationVar, but accepts a shorthand letter that can be used after a single dash.
+func DurationVarP(p *time.Duration, name, shorthand string, value time.Duration, usage string) {
+ CommandLine.VarP(newDurationValue(value, p), name, shorthand, usage)
+}
+
+// Duration defines a time.Duration flag with specified name, default value, and usage string.
+// The return value is the address of a time.Duration variable that stores the value of the flag.
+func (f *FlagSet) Duration(name string, value time.Duration, usage string) *time.Duration {
+ p := new(time.Duration)
+ f.DurationVarP(p, name, "", value, usage)
+ return p
+}
+
+// DurationP is like Duration, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) DurationP(name, shorthand string, value time.Duration, usage string) *time.Duration {
+ p := new(time.Duration)
+ f.DurationVarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// Duration defines a time.Duration flag with specified name, default value, and usage string.
+// The return value is the address of a time.Duration variable that stores the value of the flag.
+func Duration(name string, value time.Duration, usage string) *time.Duration {
+ return CommandLine.DurationP(name, "", value, usage)
+}
+
+// DurationP is like Duration, but accepts a shorthand letter that can be used after a single dash.
+func DurationP(name, shorthand string, value time.Duration, usage string) *time.Duration {
+ return CommandLine.DurationP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/duration_slice.go b/vendor/github.com/spf13/pflag/duration_slice.go
new file mode 100644
index 0000000000..52c6b6dc10
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/duration_slice.go
@@ -0,0 +1,128 @@
+package pflag
+
+import (
+ "fmt"
+ "strings"
+ "time"
+)
+
+// -- durationSlice Value
+type durationSliceValue struct {
+ value *[]time.Duration
+ changed bool
+}
+
+func newDurationSliceValue(val []time.Duration, p *[]time.Duration) *durationSliceValue {
+ dsv := new(durationSliceValue)
+ dsv.value = p
+ *dsv.value = val
+ return dsv
+}
+
+func (s *durationSliceValue) Set(val string) error {
+ ss := strings.Split(val, ",")
+ out := make([]time.Duration, len(ss))
+ for i, d := range ss {
+ var err error
+ out[i], err = time.ParseDuration(d)
+ if err != nil {
+ return err
+ }
+
+ }
+ if !s.changed {
+ *s.value = out
+ } else {
+ *s.value = append(*s.value, out...)
+ }
+ s.changed = true
+ return nil
+}
+
+func (s *durationSliceValue) Type() string {
+ return "durationSlice"
+}
+
+func (s *durationSliceValue) String() string {
+ out := make([]string, len(*s.value))
+ for i, d := range *s.value {
+ out[i] = fmt.Sprintf("%s", d)
+ }
+ return "[" + strings.Join(out, ",") + "]"
+}
+
+func durationSliceConv(val string) (interface{}, error) {
+ val = strings.Trim(val, "[]")
+ // Empty string would cause a slice with one (empty) entry
+ if len(val) == 0 {
+ return []time.Duration{}, nil
+ }
+ ss := strings.Split(val, ",")
+ out := make([]time.Duration, len(ss))
+ for i, d := range ss {
+ var err error
+ out[i], err = time.ParseDuration(d)
+ if err != nil {
+ return nil, err
+ }
+
+ }
+ return out, nil
+}
+
+// GetDurationSlice returns the []time.Duration value of a flag with the given name
+func (f *FlagSet) GetDurationSlice(name string) ([]time.Duration, error) {
+ val, err := f.getFlagType(name, "durationSlice", durationSliceConv)
+ if err != nil {
+ return []time.Duration{}, err
+ }
+ return val.([]time.Duration), nil
+}
+
+// DurationSliceVar defines a durationSlice flag with specified name, default value, and usage string.
+// The argument p points to a []time.Duration variable in which to store the value of the flag.
+func (f *FlagSet) DurationSliceVar(p *[]time.Duration, name string, value []time.Duration, usage string) {
+ f.VarP(newDurationSliceValue(value, p), name, "", usage)
+}
+
+// DurationSliceVarP is like DurationSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) DurationSliceVarP(p *[]time.Duration, name, shorthand string, value []time.Duration, usage string) {
+ f.VarP(newDurationSliceValue(value, p), name, shorthand, usage)
+}
+
+// DurationSliceVar defines a duration[] flag with specified name, default value, and usage string.
+// The argument p points to a duration[] variable in which to store the value of the flag.
+func DurationSliceVar(p *[]time.Duration, name string, value []time.Duration, usage string) {
+ CommandLine.VarP(newDurationSliceValue(value, p), name, "", usage)
+}
+
+// DurationSliceVarP is like DurationSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func DurationSliceVarP(p *[]time.Duration, name, shorthand string, value []time.Duration, usage string) {
+ CommandLine.VarP(newDurationSliceValue(value, p), name, shorthand, usage)
+}
+
+// DurationSlice defines a []time.Duration flag with specified name, default value, and usage string.
+// The return value is the address of a []time.Duration variable that stores the value of the flag.
+func (f *FlagSet) DurationSlice(name string, value []time.Duration, usage string) *[]time.Duration {
+ p := []time.Duration{}
+ f.DurationSliceVarP(&p, name, "", value, usage)
+ return &p
+}
+
+// DurationSliceP is like DurationSlice, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) DurationSliceP(name, shorthand string, value []time.Duration, usage string) *[]time.Duration {
+ p := []time.Duration{}
+ f.DurationSliceVarP(&p, name, shorthand, value, usage)
+ return &p
+}
+
+// DurationSlice defines a []time.Duration flag with specified name, default value, and usage string.
+// The return value is the address of a []time.Duration variable that stores the value of the flag.
+func DurationSlice(name string, value []time.Duration, usage string) *[]time.Duration {
+ return CommandLine.DurationSliceP(name, "", value, usage)
+}
+
+// DurationSliceP is like DurationSlice, but accepts a shorthand letter that can be used after a single dash.
+func DurationSliceP(name, shorthand string, value []time.Duration, usage string) *[]time.Duration {
+ return CommandLine.DurationSliceP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/flag.go b/vendor/github.com/spf13/pflag/flag.go
new file mode 100644
index 0000000000..9beeda8ecc
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/flag.go
@@ -0,0 +1,1227 @@
+// Copyright 2009 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 pflag is a drop-in replacement for Go's flag package, implementing
+POSIX/GNU-style --flags.
+
+pflag is compatible with the GNU extensions to the POSIX recommendations
+for command-line options. See
+http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html
+
+Usage:
+
+pflag is a drop-in replacement of Go's native flag package. If you import
+pflag under the name "flag" then all code should continue to function
+with no changes.
+
+ import flag "github.com/spf13/pflag"
+
+There is one exception to this: if you directly instantiate the Flag struct
+there is one more field "Shorthand" that you will need to set.
+Most code never instantiates this struct directly, and instead uses
+functions such as String(), BoolVar(), and Var(), and is therefore
+unaffected.
+
+Define flags using flag.String(), Bool(), Int(), etc.
+
+This declares an integer flag, -flagname, stored in the pointer ip, with type *int.
+ var ip = flag.Int("flagname", 1234, "help message for flagname")
+If you like, you can bind the flag to a variable using the Var() functions.
+ var flagvar int
+ func init() {
+ flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname")
+ }
+Or you can create custom flags that satisfy the Value interface (with
+pointer receivers) and couple them to flag parsing by
+ flag.Var(&flagVal, "name", "help message for flagname")
+For such flags, the default value is just the initial value of the variable.
+
+After all flags are defined, call
+ flag.Parse()
+to parse the command line into the defined flags.
+
+Flags may then be used directly. If you're using the flags themselves,
+they are all pointers; if you bind to variables, they're values.
+ fmt.Println("ip has value ", *ip)
+ fmt.Println("flagvar has value ", flagvar)
+
+After parsing, the arguments after the flag are available as the
+slice flag.Args() or individually as flag.Arg(i).
+The arguments are indexed from 0 through flag.NArg()-1.
+
+The pflag package also defines some new functions that are not in flag,
+that give one-letter shorthands for flags. You can use these by appending
+'P' to the name of any function that defines a flag.
+ var ip = flag.IntP("flagname", "f", 1234, "help message")
+ var flagvar bool
+ func init() {
+ flag.BoolVarP("boolname", "b", true, "help message")
+ }
+ flag.VarP(&flagVar, "varname", "v", 1234, "help message")
+Shorthand letters can be used with single dashes on the command line.
+Boolean shorthand flags can be combined with other shorthand flags.
+
+Command line flag syntax:
+ --flag // boolean flags only
+ --flag=x
+
+Unlike the flag package, a single dash before an option means something
+different than a double dash. Single dashes signify a series of shorthand
+letters for flags. All but the last shorthand letter must be boolean flags.
+ // boolean flags
+ -f
+ -abc
+ // non-boolean flags
+ -n 1234
+ -Ifile
+ // mixed
+ -abcs "hello"
+ -abcn1234
+
+Flag parsing stops after the terminator "--". Unlike the flag package,
+flags can be interspersed with arguments anywhere on the command line
+before this terminator.
+
+Integer flags accept 1234, 0664, 0x1234 and may be negative.
+Boolean flags (in their long form) accept 1, 0, t, f, true, false,
+TRUE, FALSE, True, False.
+Duration flags accept any input valid for time.ParseDuration.
+
+The default set of command-line flags is controlled by
+top-level functions. The FlagSet type allows one to define
+independent sets of flags, such as to implement subcommands
+in a command-line interface. The methods of FlagSet are
+analogous to the top-level functions for the command-line
+flag set.
+*/
+package pflag
+
+import (
+ "bytes"
+ "errors"
+ goflag "flag"
+ "fmt"
+ "io"
+ "os"
+ "sort"
+ "strings"
+)
+
+// ErrHelp is the error returned if the flag -help is invoked but no such flag is defined.
+var ErrHelp = errors.New("pflag: help requested")
+
+// ErrorHandling defines how to handle flag parsing errors.
+type ErrorHandling int
+
+const (
+ // ContinueOnError will return an err from Parse() if an error is found
+ ContinueOnError ErrorHandling = iota
+ // ExitOnError will call os.Exit(2) if an error is found when parsing
+ ExitOnError
+ // PanicOnError will panic() if an error is found when parsing flags
+ PanicOnError
+)
+
+// ParseErrorsWhitelist defines the parsing errors that can be ignored
+type ParseErrorsWhitelist struct {
+ // UnknownFlags will ignore unknown flags errors and continue parsing rest of the flags
+ UnknownFlags bool
+}
+
+// NormalizedName is a flag name that has been normalized according to rules
+// for the FlagSet (e.g. making '-' and '_' equivalent).
+type NormalizedName string
+
+// A FlagSet represents a set of defined flags.
+type FlagSet struct {
+ // Usage is the function called when an error occurs while parsing flags.
+ // The field is a function (not a method) that may be changed to point to
+ // a custom error handler.
+ Usage func()
+
+ // SortFlags is used to indicate, if user wants to have sorted flags in
+ // help/usage messages.
+ SortFlags bool
+
+ // ParseErrorsWhitelist is used to configure a whitelist of errors
+ ParseErrorsWhitelist ParseErrorsWhitelist
+
+ name string
+ parsed bool
+ actual map[NormalizedName]*Flag
+ orderedActual []*Flag
+ sortedActual []*Flag
+ formal map[NormalizedName]*Flag
+ orderedFormal []*Flag
+ sortedFormal []*Flag
+ shorthands map[byte]*Flag
+ args []string // arguments after flags
+ argsLenAtDash int // len(args) when a '--' was located when parsing, or -1 if no --
+ errorHandling ErrorHandling
+ output io.Writer // nil means stderr; use out() accessor
+ interspersed bool // allow interspersed option/non-option args
+ normalizeNameFunc func(f *FlagSet, name string) NormalizedName
+
+ addedGoFlagSets []*goflag.FlagSet
+}
+
+// A Flag represents the state of a flag.
+type Flag struct {
+ Name string // name as it appears on command line
+ Shorthand string // one-letter abbreviated flag
+ Usage string // help message
+ Value Value // value as set
+ DefValue string // default value (as text); for usage message
+ Changed bool // If the user set the value (or if left to default)
+ NoOptDefVal string // default value (as text); if the flag is on the command line without any options
+ Deprecated string // If this flag is deprecated, this string is the new or now thing to use
+ Hidden bool // used by cobra.Command to allow flags to be hidden from help/usage text
+ ShorthandDeprecated string // If the shorthand of this flag is deprecated, this string is the new or now thing to use
+ Annotations map[string][]string // used by cobra.Command bash autocomple code
+}
+
+// Value is the interface to the dynamic value stored in a flag.
+// (The default value is represented as a string.)
+type Value interface {
+ String() string
+ Set(string) error
+ Type() string
+}
+
+// sortFlags returns the flags as a slice in lexicographical sorted order.
+func sortFlags(flags map[NormalizedName]*Flag) []*Flag {
+ list := make(sort.StringSlice, len(flags))
+ i := 0
+ for k := range flags {
+ list[i] = string(k)
+ i++
+ }
+ list.Sort()
+ result := make([]*Flag, len(list))
+ for i, name := range list {
+ result[i] = flags[NormalizedName(name)]
+ }
+ return result
+}
+
+// SetNormalizeFunc allows you to add a function which can translate flag names.
+// Flags added to the FlagSet will be translated and then when anything tries to
+// look up the flag that will also be translated. So it would be possible to create
+// a flag named "getURL" and have it translated to "geturl". A user could then pass
+// "--getUrl" which may also be translated to "geturl" and everything will work.
+func (f *FlagSet) SetNormalizeFunc(n func(f *FlagSet, name string) NormalizedName) {
+ f.normalizeNameFunc = n
+ f.sortedFormal = f.sortedFormal[:0]
+ for fname, flag := range f.formal {
+ nname := f.normalizeFlagName(flag.Name)
+ if fname == nname {
+ continue
+ }
+ flag.Name = string(nname)
+ delete(f.formal, fname)
+ f.formal[nname] = flag
+ if _, set := f.actual[fname]; set {
+ delete(f.actual, fname)
+ f.actual[nname] = flag
+ }
+ }
+}
+
+// GetNormalizeFunc returns the previously set NormalizeFunc of a function which
+// does no translation, if not set previously.
+func (f *FlagSet) GetNormalizeFunc() func(f *FlagSet, name string) NormalizedName {
+ if f.normalizeNameFunc != nil {
+ return f.normalizeNameFunc
+ }
+ return func(f *FlagSet, name string) NormalizedName { return NormalizedName(name) }
+}
+
+func (f *FlagSet) normalizeFlagName(name string) NormalizedName {
+ n := f.GetNormalizeFunc()
+ return n(f, name)
+}
+
+func (f *FlagSet) out() io.Writer {
+ if f.output == nil {
+ return os.Stderr
+ }
+ return f.output
+}
+
+// SetOutput sets the destination for usage and error messages.
+// If output is nil, os.Stderr is used.
+func (f *FlagSet) SetOutput(output io.Writer) {
+ f.output = output
+}
+
+// VisitAll visits the flags in lexicographical order or
+// in primordial order if f.SortFlags is false, calling fn for each.
+// It visits all flags, even those not set.
+func (f *FlagSet) VisitAll(fn func(*Flag)) {
+ if len(f.formal) == 0 {
+ return
+ }
+
+ var flags []*Flag
+ if f.SortFlags {
+ if len(f.formal) != len(f.sortedFormal) {
+ f.sortedFormal = sortFlags(f.formal)
+ }
+ flags = f.sortedFormal
+ } else {
+ flags = f.orderedFormal
+ }
+
+ for _, flag := range flags {
+ fn(flag)
+ }
+}
+
+// HasFlags returns a bool to indicate if the FlagSet has any flags defined.
+func (f *FlagSet) HasFlags() bool {
+ return len(f.formal) > 0
+}
+
+// HasAvailableFlags returns a bool to indicate if the FlagSet has any flags
+// that are not hidden.
+func (f *FlagSet) HasAvailableFlags() bool {
+ for _, flag := range f.formal {
+ if !flag.Hidden {
+ return true
+ }
+ }
+ return false
+}
+
+// VisitAll visits the command-line flags in lexicographical order or
+// in primordial order if f.SortFlags is false, calling fn for each.
+// It visits all flags, even those not set.
+func VisitAll(fn func(*Flag)) {
+ CommandLine.VisitAll(fn)
+}
+
+// Visit visits the flags in lexicographical order or
+// in primordial order if f.SortFlags is false, calling fn for each.
+// It visits only those flags that have been set.
+func (f *FlagSet) Visit(fn func(*Flag)) {
+ if len(f.actual) == 0 {
+ return
+ }
+
+ var flags []*Flag
+ if f.SortFlags {
+ if len(f.actual) != len(f.sortedActual) {
+ f.sortedActual = sortFlags(f.actual)
+ }
+ flags = f.sortedActual
+ } else {
+ flags = f.orderedActual
+ }
+
+ for _, flag := range flags {
+ fn(flag)
+ }
+}
+
+// Visit visits the command-line flags in lexicographical order or
+// in primordial order if f.SortFlags is false, calling fn for each.
+// It visits only those flags that have been set.
+func Visit(fn func(*Flag)) {
+ CommandLine.Visit(fn)
+}
+
+// Lookup returns the Flag structure of the named flag, returning nil if none exists.
+func (f *FlagSet) Lookup(name string) *Flag {
+ return f.lookup(f.normalizeFlagName(name))
+}
+
+// ShorthandLookup returns the Flag structure of the short handed flag,
+// returning nil if none exists.
+// It panics, if len(name) > 1.
+func (f *FlagSet) ShorthandLookup(name string) *Flag {
+ if name == "" {
+ return nil
+ }
+ if len(name) > 1 {
+ msg := fmt.Sprintf("can not look up shorthand which is more than one ASCII character: %q", name)
+ fmt.Fprintf(f.out(), msg)
+ panic(msg)
+ }
+ c := name[0]
+ return f.shorthands[c]
+}
+
+// lookup returns the Flag structure of the named flag, returning nil if none exists.
+func (f *FlagSet) lookup(name NormalizedName) *Flag {
+ return f.formal[name]
+}
+
+// func to return a given type for a given flag name
+func (f *FlagSet) getFlagType(name string, ftype string, convFunc func(sval string) (interface{}, error)) (interface{}, error) {
+ flag := f.Lookup(name)
+ if flag == nil {
+ err := fmt.Errorf("flag accessed but not defined: %s", name)
+ return nil, err
+ }
+
+ if flag.Value.Type() != ftype {
+ err := fmt.Errorf("trying to get %s value of flag of type %s", ftype, flag.Value.Type())
+ return nil, err
+ }
+
+ sval := flag.Value.String()
+ result, err := convFunc(sval)
+ if err != nil {
+ return nil, err
+ }
+ return result, nil
+}
+
+// ArgsLenAtDash will return the length of f.Args at the moment when a -- was
+// found during arg parsing. This allows your program to know which args were
+// before the -- and which came after.
+func (f *FlagSet) ArgsLenAtDash() int {
+ return f.argsLenAtDash
+}
+
+// MarkDeprecated indicated that a flag is deprecated in your program. It will
+// continue to function but will not show up in help or usage messages. Using
+// this flag will also print the given usageMessage.
+func (f *FlagSet) MarkDeprecated(name string, usageMessage string) error {
+ flag := f.Lookup(name)
+ if flag == nil {
+ return fmt.Errorf("flag %q does not exist", name)
+ }
+ if usageMessage == "" {
+ return fmt.Errorf("deprecated message for flag %q must be set", name)
+ }
+ flag.Deprecated = usageMessage
+ flag.Hidden = true
+ return nil
+}
+
+// MarkShorthandDeprecated will mark the shorthand of a flag deprecated in your
+// program. It will continue to function but will not show up in help or usage
+// messages. Using this flag will also print the given usageMessage.
+func (f *FlagSet) MarkShorthandDeprecated(name string, usageMessage string) error {
+ flag := f.Lookup(name)
+ if flag == nil {
+ return fmt.Errorf("flag %q does not exist", name)
+ }
+ if usageMessage == "" {
+ return fmt.Errorf("deprecated message for flag %q must be set", name)
+ }
+ flag.ShorthandDeprecated = usageMessage
+ return nil
+}
+
+// MarkHidden sets a flag to 'hidden' in your program. It will continue to
+// function but will not show up in help or usage messages.
+func (f *FlagSet) MarkHidden(name string) error {
+ flag := f.Lookup(name)
+ if flag == nil {
+ return fmt.Errorf("flag %q does not exist", name)
+ }
+ flag.Hidden = true
+ return nil
+}
+
+// Lookup returns the Flag structure of the named command-line flag,
+// returning nil if none exists.
+func Lookup(name string) *Flag {
+ return CommandLine.Lookup(name)
+}
+
+// ShorthandLookup returns the Flag structure of the short handed flag,
+// returning nil if none exists.
+func ShorthandLookup(name string) *Flag {
+ return CommandLine.ShorthandLookup(name)
+}
+
+// Set sets the value of the named flag.
+func (f *FlagSet) Set(name, value string) error {
+ normalName := f.normalizeFlagName(name)
+ flag, ok := f.formal[normalName]
+ if !ok {
+ return fmt.Errorf("no such flag -%v", name)
+ }
+
+ err := flag.Value.Set(value)
+ if err != nil {
+ var flagName string
+ if flag.Shorthand != "" && flag.ShorthandDeprecated == "" {
+ flagName = fmt.Sprintf("-%s, --%s", flag.Shorthand, flag.Name)
+ } else {
+ flagName = fmt.Sprintf("--%s", flag.Name)
+ }
+ return fmt.Errorf("invalid argument %q for %q flag: %v", value, flagName, err)
+ }
+
+ if !flag.Changed {
+ if f.actual == nil {
+ f.actual = make(map[NormalizedName]*Flag)
+ }
+ f.actual[normalName] = flag
+ f.orderedActual = append(f.orderedActual, flag)
+
+ flag.Changed = true
+ }
+
+ if flag.Deprecated != "" {
+ fmt.Fprintf(f.out(), "Flag --%s has been deprecated, %s\n", flag.Name, flag.Deprecated)
+ }
+ return nil
+}
+
+// SetAnnotation allows one to set arbitrary annotations on a flag in the FlagSet.
+// This is sometimes used by spf13/cobra programs which want to generate additional
+// bash completion information.
+func (f *FlagSet) SetAnnotation(name, key string, values []string) error {
+ normalName := f.normalizeFlagName(name)
+ flag, ok := f.formal[normalName]
+ if !ok {
+ return fmt.Errorf("no such flag -%v", name)
+ }
+ if flag.Annotations == nil {
+ flag.Annotations = map[string][]string{}
+ }
+ flag.Annotations[key] = values
+ return nil
+}
+
+// Changed returns true if the flag was explicitly set during Parse() and false
+// otherwise
+func (f *FlagSet) Changed(name string) bool {
+ flag := f.Lookup(name)
+ // If a flag doesn't exist, it wasn't changed....
+ if flag == nil {
+ return false
+ }
+ return flag.Changed
+}
+
+// Set sets the value of the named command-line flag.
+func Set(name, value string) error {
+ return CommandLine.Set(name, value)
+}
+
+// PrintDefaults prints, to standard error unless configured
+// otherwise, the default values of all defined flags in the set.
+func (f *FlagSet) PrintDefaults() {
+ usages := f.FlagUsages()
+ fmt.Fprint(f.out(), usages)
+}
+
+// defaultIsZeroValue returns true if the default value for this flag represents
+// a zero value.
+func (f *Flag) defaultIsZeroValue() bool {
+ switch f.Value.(type) {
+ case boolFlag:
+ return f.DefValue == "false"
+ case *durationValue:
+ // Beginning in Go 1.7, duration zero values are "0s"
+ return f.DefValue == "0" || f.DefValue == "0s"
+ case *intValue, *int8Value, *int32Value, *int64Value, *uintValue, *uint8Value, *uint16Value, *uint32Value, *uint64Value, *countValue, *float32Value, *float64Value:
+ return f.DefValue == "0"
+ case *stringValue:
+ return f.DefValue == ""
+ case *ipValue, *ipMaskValue, *ipNetValue:
+ return f.DefValue == ""
+ case *intSliceValue, *stringSliceValue, *stringArrayValue:
+ return f.DefValue == "[]"
+ default:
+ switch f.Value.String() {
+ case "false":
+ return true
+ case "":
+ return true
+ case "":
+ return true
+ case "0":
+ return true
+ }
+ return false
+ }
+}
+
+// UnquoteUsage extracts a back-quoted name from the usage
+// string for a flag and returns it and the un-quoted usage.
+// Given "a `name` to show" it returns ("name", "a name to show").
+// If there are no back quotes, the name is an educated guess of the
+// type of the flag's value, or the empty string if the flag is boolean.
+func UnquoteUsage(flag *Flag) (name string, usage string) {
+ // Look for a back-quoted name, but avoid the strings package.
+ usage = flag.Usage
+ for i := 0; i < len(usage); i++ {
+ if usage[i] == '`' {
+ for j := i + 1; j < len(usage); j++ {
+ if usage[j] == '`' {
+ name = usage[i+1 : j]
+ usage = usage[:i] + name + usage[j+1:]
+ return name, usage
+ }
+ }
+ break // Only one back quote; use type name.
+ }
+ }
+
+ name = flag.Value.Type()
+ switch name {
+ case "bool":
+ name = ""
+ case "float64":
+ name = "float"
+ case "int64":
+ name = "int"
+ case "uint64":
+ name = "uint"
+ case "stringSlice":
+ name = "strings"
+ case "intSlice":
+ name = "ints"
+ case "uintSlice":
+ name = "uints"
+ case "boolSlice":
+ name = "bools"
+ }
+
+ return
+}
+
+// Splits the string `s` on whitespace into an initial substring up to
+// `i` runes in length and the remainder. Will go `slop` over `i` if
+// that encompasses the entire string (which allows the caller to
+// avoid short orphan words on the final line).
+func wrapN(i, slop int, s string) (string, string) {
+ if i+slop > len(s) {
+ return s, ""
+ }
+
+ w := strings.LastIndexAny(s[:i], " \t\n")
+ if w <= 0 {
+ return s, ""
+ }
+ nlPos := strings.LastIndex(s[:i], "\n")
+ if nlPos > 0 && nlPos < w {
+ return s[:nlPos], s[nlPos+1:]
+ }
+ return s[:w], s[w+1:]
+}
+
+// Wraps the string `s` to a maximum width `w` with leading indent
+// `i`. The first line is not indented (this is assumed to be done by
+// caller). Pass `w` == 0 to do no wrapping
+func wrap(i, w int, s string) string {
+ if w == 0 {
+ return strings.Replace(s, "\n", "\n"+strings.Repeat(" ", i), -1)
+ }
+
+ // space between indent i and end of line width w into which
+ // we should wrap the text.
+ wrap := w - i
+
+ var r, l string
+
+ // Not enough space for sensible wrapping. Wrap as a block on
+ // the next line instead.
+ if wrap < 24 {
+ i = 16
+ wrap = w - i
+ r += "\n" + strings.Repeat(" ", i)
+ }
+ // If still not enough space then don't even try to wrap.
+ if wrap < 24 {
+ return strings.Replace(s, "\n", r, -1)
+ }
+
+ // Try to avoid short orphan words on the final line, by
+ // allowing wrapN to go a bit over if that would fit in the
+ // remainder of the line.
+ slop := 5
+ wrap = wrap - slop
+
+ // Handle first line, which is indented by the caller (or the
+ // special case above)
+ l, s = wrapN(wrap, slop, s)
+ r = r + strings.Replace(l, "\n", "\n"+strings.Repeat(" ", i), -1)
+
+ // Now wrap the rest
+ for s != "" {
+ var t string
+
+ t, s = wrapN(wrap, slop, s)
+ r = r + "\n" + strings.Repeat(" ", i) + strings.Replace(t, "\n", "\n"+strings.Repeat(" ", i), -1)
+ }
+
+ return r
+
+}
+
+// FlagUsagesWrapped returns a string containing the usage information
+// for all flags in the FlagSet. Wrapped to `cols` columns (0 for no
+// wrapping)
+func (f *FlagSet) FlagUsagesWrapped(cols int) string {
+ buf := new(bytes.Buffer)
+
+ lines := make([]string, 0, len(f.formal))
+
+ maxlen := 0
+ f.VisitAll(func(flag *Flag) {
+ if flag.Hidden {
+ return
+ }
+
+ line := ""
+ if flag.Shorthand != "" && flag.ShorthandDeprecated == "" {
+ line = fmt.Sprintf(" -%s, --%s", flag.Shorthand, flag.Name)
+ } else {
+ line = fmt.Sprintf(" --%s", flag.Name)
+ }
+
+ varname, usage := UnquoteUsage(flag)
+ if varname != "" {
+ line += " " + varname
+ }
+ if flag.NoOptDefVal != "" {
+ switch flag.Value.Type() {
+ case "string":
+ line += fmt.Sprintf("[=\"%s\"]", flag.NoOptDefVal)
+ case "bool":
+ if flag.NoOptDefVal != "true" {
+ line += fmt.Sprintf("[=%s]", flag.NoOptDefVal)
+ }
+ case "count":
+ if flag.NoOptDefVal != "+1" {
+ line += fmt.Sprintf("[=%s]", flag.NoOptDefVal)
+ }
+ default:
+ line += fmt.Sprintf("[=%s]", flag.NoOptDefVal)
+ }
+ }
+
+ // This special character will be replaced with spacing once the
+ // correct alignment is calculated
+ line += "\x00"
+ if len(line) > maxlen {
+ maxlen = len(line)
+ }
+
+ line += usage
+ if !flag.defaultIsZeroValue() {
+ if flag.Value.Type() == "string" {
+ line += fmt.Sprintf(" (default %q)", flag.DefValue)
+ } else {
+ line += fmt.Sprintf(" (default %s)", flag.DefValue)
+ }
+ }
+ if len(flag.Deprecated) != 0 {
+ line += fmt.Sprintf(" (DEPRECATED: %s)", flag.Deprecated)
+ }
+
+ lines = append(lines, line)
+ })
+
+ for _, line := range lines {
+ sidx := strings.Index(line, "\x00")
+ spacing := strings.Repeat(" ", maxlen-sidx)
+ // maxlen + 2 comes from + 1 for the \x00 and + 1 for the (deliberate) off-by-one in maxlen-sidx
+ fmt.Fprintln(buf, line[:sidx], spacing, wrap(maxlen+2, cols, line[sidx+1:]))
+ }
+
+ return buf.String()
+}
+
+// FlagUsages returns a string containing the usage information for all flags in
+// the FlagSet
+func (f *FlagSet) FlagUsages() string {
+ return f.FlagUsagesWrapped(0)
+}
+
+// PrintDefaults prints to standard error the default values of all defined command-line flags.
+func PrintDefaults() {
+ CommandLine.PrintDefaults()
+}
+
+// defaultUsage is the default function to print a usage message.
+func defaultUsage(f *FlagSet) {
+ fmt.Fprintf(f.out(), "Usage of %s:\n", f.name)
+ f.PrintDefaults()
+}
+
+// NOTE: Usage is not just defaultUsage(CommandLine)
+// because it serves (via godoc flag Usage) as the example
+// for how to write your own usage function.
+
+// Usage prints to standard error a usage message documenting all defined command-line flags.
+// The function is a variable that may be changed to point to a custom function.
+// By default it prints a simple header and calls PrintDefaults; for details about the
+// format of the output and how to control it, see the documentation for PrintDefaults.
+var Usage = func() {
+ fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0])
+ PrintDefaults()
+}
+
+// NFlag returns the number of flags that have been set.
+func (f *FlagSet) NFlag() int { return len(f.actual) }
+
+// NFlag returns the number of command-line flags that have been set.
+func NFlag() int { return len(CommandLine.actual) }
+
+// Arg returns the i'th argument. Arg(0) is the first remaining argument
+// after flags have been processed.
+func (f *FlagSet) Arg(i int) string {
+ if i < 0 || i >= len(f.args) {
+ return ""
+ }
+ return f.args[i]
+}
+
+// Arg returns the i'th command-line argument. Arg(0) is the first remaining argument
+// after flags have been processed.
+func Arg(i int) string {
+ return CommandLine.Arg(i)
+}
+
+// NArg is the number of arguments remaining after flags have been processed.
+func (f *FlagSet) NArg() int { return len(f.args) }
+
+// NArg is the number of arguments remaining after flags have been processed.
+func NArg() int { return len(CommandLine.args) }
+
+// Args returns the non-flag arguments.
+func (f *FlagSet) Args() []string { return f.args }
+
+// Args returns the non-flag command-line arguments.
+func Args() []string { return CommandLine.args }
+
+// Var defines a flag with the specified name and usage string. The type and
+// value of the flag are represented by the first argument, of type Value, which
+// typically holds a user-defined implementation of Value. For instance, the
+// caller could create a flag that turns a comma-separated string into a slice
+// of strings by giving the slice the methods of Value; in particular, Set would
+// decompose the comma-separated string into the slice.
+func (f *FlagSet) Var(value Value, name string, usage string) {
+ f.VarP(value, name, "", usage)
+}
+
+// VarPF is like VarP, but returns the flag created
+func (f *FlagSet) VarPF(value Value, name, shorthand, usage string) *Flag {
+ // Remember the default value as a string; it won't change.
+ flag := &Flag{
+ Name: name,
+ Shorthand: shorthand,
+ Usage: usage,
+ Value: value,
+ DefValue: value.String(),
+ }
+ f.AddFlag(flag)
+ return flag
+}
+
+// VarP is like Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) VarP(value Value, name, shorthand, usage string) {
+ f.VarPF(value, name, shorthand, usage)
+}
+
+// AddFlag will add the flag to the FlagSet
+func (f *FlagSet) AddFlag(flag *Flag) {
+ normalizedFlagName := f.normalizeFlagName(flag.Name)
+
+ _, alreadyThere := f.formal[normalizedFlagName]
+ if alreadyThere {
+ msg := fmt.Sprintf("%s flag redefined: %s", f.name, flag.Name)
+ fmt.Fprintln(f.out(), msg)
+ panic(msg) // Happens only if flags are declared with identical names
+ }
+ if f.formal == nil {
+ f.formal = make(map[NormalizedName]*Flag)
+ }
+
+ flag.Name = string(normalizedFlagName)
+ f.formal[normalizedFlagName] = flag
+ f.orderedFormal = append(f.orderedFormal, flag)
+
+ if flag.Shorthand == "" {
+ return
+ }
+ if len(flag.Shorthand) > 1 {
+ msg := fmt.Sprintf("%q shorthand is more than one ASCII character", flag.Shorthand)
+ fmt.Fprintf(f.out(), msg)
+ panic(msg)
+ }
+ if f.shorthands == nil {
+ f.shorthands = make(map[byte]*Flag)
+ }
+ c := flag.Shorthand[0]
+ used, alreadyThere := f.shorthands[c]
+ if alreadyThere {
+ msg := fmt.Sprintf("unable to redefine %q shorthand in %q flagset: it's already used for %q flag", c, f.name, used.Name)
+ fmt.Fprintf(f.out(), msg)
+ panic(msg)
+ }
+ f.shorthands[c] = flag
+}
+
+// AddFlagSet adds one FlagSet to another. If a flag is already present in f
+// the flag from newSet will be ignored.
+func (f *FlagSet) AddFlagSet(newSet *FlagSet) {
+ if newSet == nil {
+ return
+ }
+ newSet.VisitAll(func(flag *Flag) {
+ if f.Lookup(flag.Name) == nil {
+ f.AddFlag(flag)
+ }
+ })
+}
+
+// Var defines a flag with the specified name and usage string. The type and
+// value of the flag are represented by the first argument, of type Value, which
+// typically holds a user-defined implementation of Value. For instance, the
+// caller could create a flag that turns a comma-separated string into a slice
+// of strings by giving the slice the methods of Value; in particular, Set would
+// decompose the comma-separated string into the slice.
+func Var(value Value, name string, usage string) {
+ CommandLine.VarP(value, name, "", usage)
+}
+
+// VarP is like Var, but accepts a shorthand letter that can be used after a single dash.
+func VarP(value Value, name, shorthand, usage string) {
+ CommandLine.VarP(value, name, shorthand, usage)
+}
+
+// failf prints to standard error a formatted error and usage message and
+// returns the error.
+func (f *FlagSet) failf(format string, a ...interface{}) error {
+ err := fmt.Errorf(format, a...)
+ if f.errorHandling != ContinueOnError {
+ fmt.Fprintln(f.out(), err)
+ f.usage()
+ }
+ return err
+}
+
+// usage calls the Usage method for the flag set, or the usage function if
+// the flag set is CommandLine.
+func (f *FlagSet) usage() {
+ if f == CommandLine {
+ Usage()
+ } else if f.Usage == nil {
+ defaultUsage(f)
+ } else {
+ f.Usage()
+ }
+}
+
+//--unknown (args will be empty)
+//--unknown --next-flag ... (args will be --next-flag ...)
+//--unknown arg ... (args will be arg ...)
+func stripUnknownFlagValue(args []string) []string {
+ if len(args) == 0 {
+ //--unknown
+ return args
+ }
+
+ first := args[0]
+ if len(first) > 0 && first[0] == '-' {
+ //--unknown --next-flag ...
+ return args
+ }
+
+ //--unknown arg ... (args will be arg ...)
+ if len(args) > 1 {
+ return args[1:]
+ }
+ return nil
+}
+
+func (f *FlagSet) parseLongArg(s string, args []string, fn parseFunc) (a []string, err error) {
+ a = args
+ name := s[2:]
+ if len(name) == 0 || name[0] == '-' || name[0] == '=' {
+ err = f.failf("bad flag syntax: %s", s)
+ return
+ }
+
+ split := strings.SplitN(name, "=", 2)
+ name = split[0]
+ flag, exists := f.formal[f.normalizeFlagName(name)]
+
+ if !exists {
+ switch {
+ case name == "help":
+ f.usage()
+ return a, ErrHelp
+ case f.ParseErrorsWhitelist.UnknownFlags:
+ // --unknown=unknownval arg ...
+ // we do not want to lose arg in this case
+ if len(split) >= 2 {
+ return a, nil
+ }
+
+ return stripUnknownFlagValue(a), nil
+ default:
+ err = f.failf("unknown flag: --%s", name)
+ return
+ }
+ }
+
+ var value string
+ if len(split) == 2 {
+ // '--flag=arg'
+ value = split[1]
+ } else if flag.NoOptDefVal != "" {
+ // '--flag' (arg was optional)
+ value = flag.NoOptDefVal
+ } else if len(a) > 0 {
+ // '--flag arg'
+ value = a[0]
+ a = a[1:]
+ } else {
+ // '--flag' (arg was required)
+ err = f.failf("flag needs an argument: %s", s)
+ return
+ }
+
+ err = fn(flag, value)
+ if err != nil {
+ f.failf(err.Error())
+ }
+ return
+}
+
+func (f *FlagSet) parseSingleShortArg(shorthands string, args []string, fn parseFunc) (outShorts string, outArgs []string, err error) {
+ outArgs = args
+
+ if strings.HasPrefix(shorthands, "test.") {
+ return
+ }
+
+ outShorts = shorthands[1:]
+ c := shorthands[0]
+
+ flag, exists := f.shorthands[c]
+ if !exists {
+ switch {
+ case c == 'h':
+ f.usage()
+ err = ErrHelp
+ return
+ case f.ParseErrorsWhitelist.UnknownFlags:
+ // '-f=arg arg ...'
+ // we do not want to lose arg in this case
+ if len(shorthands) > 2 && shorthands[1] == '=' {
+ outShorts = ""
+ return
+ }
+
+ outArgs = stripUnknownFlagValue(outArgs)
+ return
+ default:
+ err = f.failf("unknown shorthand flag: %q in -%s", c, shorthands)
+ return
+ }
+ }
+
+ var value string
+ if len(shorthands) > 2 && shorthands[1] == '=' {
+ // '-f=arg'
+ value = shorthands[2:]
+ outShorts = ""
+ } else if flag.NoOptDefVal != "" {
+ // '-f' (arg was optional)
+ value = flag.NoOptDefVal
+ } else if len(shorthands) > 1 {
+ // '-farg'
+ value = shorthands[1:]
+ outShorts = ""
+ } else if len(args) > 0 {
+ // '-f arg'
+ value = args[0]
+ outArgs = args[1:]
+ } else {
+ // '-f' (arg was required)
+ err = f.failf("flag needs an argument: %q in -%s", c, shorthands)
+ return
+ }
+
+ if flag.ShorthandDeprecated != "" {
+ fmt.Fprintf(f.out(), "Flag shorthand -%s has been deprecated, %s\n", flag.Shorthand, flag.ShorthandDeprecated)
+ }
+
+ err = fn(flag, value)
+ if err != nil {
+ f.failf(err.Error())
+ }
+ return
+}
+
+func (f *FlagSet) parseShortArg(s string, args []string, fn parseFunc) (a []string, err error) {
+ a = args
+ shorthands := s[1:]
+
+ // "shorthands" can be a series of shorthand letters of flags (e.g. "-vvv").
+ for len(shorthands) > 0 {
+ shorthands, a, err = f.parseSingleShortArg(shorthands, args, fn)
+ if err != nil {
+ return
+ }
+ }
+
+ return
+}
+
+func (f *FlagSet) parseArgs(args []string, fn parseFunc) (err error) {
+ for len(args) > 0 {
+ s := args[0]
+ args = args[1:]
+ if len(s) == 0 || s[0] != '-' || len(s) == 1 {
+ if !f.interspersed {
+ f.args = append(f.args, s)
+ f.args = append(f.args, args...)
+ return nil
+ }
+ f.args = append(f.args, s)
+ continue
+ }
+
+ if s[1] == '-' {
+ if len(s) == 2 { // "--" terminates the flags
+ f.argsLenAtDash = len(f.args)
+ f.args = append(f.args, args...)
+ break
+ }
+ args, err = f.parseLongArg(s, args, fn)
+ } else {
+ args, err = f.parseShortArg(s, args, fn)
+ }
+ if err != nil {
+ return
+ }
+ }
+ return
+}
+
+// Parse parses flag definitions from the argument list, which should not
+// include the command name. Must be called after all flags in the FlagSet
+// are defined and before flags are accessed by the program.
+// The return value will be ErrHelp if -help was set but not defined.
+func (f *FlagSet) Parse(arguments []string) error {
+ if f.addedGoFlagSets != nil {
+ for _, goFlagSet := range f.addedGoFlagSets {
+ goFlagSet.Parse(nil)
+ }
+ }
+ f.parsed = true
+
+ if len(arguments) < 0 {
+ return nil
+ }
+
+ f.args = make([]string, 0, len(arguments))
+
+ set := func(flag *Flag, value string) error {
+ return f.Set(flag.Name, value)
+ }
+
+ err := f.parseArgs(arguments, set)
+ if err != nil {
+ switch f.errorHandling {
+ case ContinueOnError:
+ return err
+ case ExitOnError:
+ fmt.Println(err)
+ os.Exit(2)
+ case PanicOnError:
+ panic(err)
+ }
+ }
+ return nil
+}
+
+type parseFunc func(flag *Flag, value string) error
+
+// ParseAll parses flag definitions from the argument list, which should not
+// include the command name. The arguments for fn are flag and value. Must be
+// called after all flags in the FlagSet are defined and before flags are
+// accessed by the program. The return value will be ErrHelp if -help was set
+// but not defined.
+func (f *FlagSet) ParseAll(arguments []string, fn func(flag *Flag, value string) error) error {
+ f.parsed = true
+ f.args = make([]string, 0, len(arguments))
+
+ err := f.parseArgs(arguments, fn)
+ if err != nil {
+ switch f.errorHandling {
+ case ContinueOnError:
+ return err
+ case ExitOnError:
+ os.Exit(2)
+ case PanicOnError:
+ panic(err)
+ }
+ }
+ return nil
+}
+
+// Parsed reports whether f.Parse has been called.
+func (f *FlagSet) Parsed() bool {
+ return f.parsed
+}
+
+// Parse parses the command-line flags from os.Args[1:]. Must be called
+// after all flags are defined and before flags are accessed by the program.
+func Parse() {
+ // Ignore errors; CommandLine is set for ExitOnError.
+ CommandLine.Parse(os.Args[1:])
+}
+
+// ParseAll parses the command-line flags from os.Args[1:] and called fn for each.
+// The arguments for fn are flag and value. Must be called after all flags are
+// defined and before flags are accessed by the program.
+func ParseAll(fn func(flag *Flag, value string) error) {
+ // Ignore errors; CommandLine is set for ExitOnError.
+ CommandLine.ParseAll(os.Args[1:], fn)
+}
+
+// SetInterspersed sets whether to support interspersed option/non-option arguments.
+func SetInterspersed(interspersed bool) {
+ CommandLine.SetInterspersed(interspersed)
+}
+
+// Parsed returns true if the command-line flags have been parsed.
+func Parsed() bool {
+ return CommandLine.Parsed()
+}
+
+// CommandLine is the default set of command-line flags, parsed from os.Args.
+var CommandLine = NewFlagSet(os.Args[0], ExitOnError)
+
+// NewFlagSet returns a new, empty flag set with the specified name,
+// error handling property and SortFlags set to true.
+func NewFlagSet(name string, errorHandling ErrorHandling) *FlagSet {
+ f := &FlagSet{
+ name: name,
+ errorHandling: errorHandling,
+ argsLenAtDash: -1,
+ interspersed: true,
+ SortFlags: true,
+ }
+ return f
+}
+
+// SetInterspersed sets whether to support interspersed option/non-option arguments.
+func (f *FlagSet) SetInterspersed(interspersed bool) {
+ f.interspersed = interspersed
+}
+
+// Init sets the name and error handling property for a flag set.
+// By default, the zero FlagSet uses an empty name and the
+// ContinueOnError error handling policy.
+func (f *FlagSet) Init(name string, errorHandling ErrorHandling) {
+ f.name = name
+ f.errorHandling = errorHandling
+ f.argsLenAtDash = -1
+}
diff --git a/vendor/github.com/spf13/pflag/float32.go b/vendor/github.com/spf13/pflag/float32.go
new file mode 100644
index 0000000000..a243f81f7f
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/float32.go
@@ -0,0 +1,88 @@
+package pflag
+
+import "strconv"
+
+// -- float32 Value
+type float32Value float32
+
+func newFloat32Value(val float32, p *float32) *float32Value {
+ *p = val
+ return (*float32Value)(p)
+}
+
+func (f *float32Value) Set(s string) error {
+ v, err := strconv.ParseFloat(s, 32)
+ *f = float32Value(v)
+ return err
+}
+
+func (f *float32Value) Type() string {
+ return "float32"
+}
+
+func (f *float32Value) String() string { return strconv.FormatFloat(float64(*f), 'g', -1, 32) }
+
+func float32Conv(sval string) (interface{}, error) {
+ v, err := strconv.ParseFloat(sval, 32)
+ if err != nil {
+ return 0, err
+ }
+ return float32(v), nil
+}
+
+// GetFloat32 return the float32 value of a flag with the given name
+func (f *FlagSet) GetFloat32(name string) (float32, error) {
+ val, err := f.getFlagType(name, "float32", float32Conv)
+ if err != nil {
+ return 0, err
+ }
+ return val.(float32), nil
+}
+
+// Float32Var defines a float32 flag with specified name, default value, and usage string.
+// The argument p points to a float32 variable in which to store the value of the flag.
+func (f *FlagSet) Float32Var(p *float32, name string, value float32, usage string) {
+ f.VarP(newFloat32Value(value, p), name, "", usage)
+}
+
+// Float32VarP is like Float32Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Float32VarP(p *float32, name, shorthand string, value float32, usage string) {
+ f.VarP(newFloat32Value(value, p), name, shorthand, usage)
+}
+
+// Float32Var defines a float32 flag with specified name, default value, and usage string.
+// The argument p points to a float32 variable in which to store the value of the flag.
+func Float32Var(p *float32, name string, value float32, usage string) {
+ CommandLine.VarP(newFloat32Value(value, p), name, "", usage)
+}
+
+// Float32VarP is like Float32Var, but accepts a shorthand letter that can be used after a single dash.
+func Float32VarP(p *float32, name, shorthand string, value float32, usage string) {
+ CommandLine.VarP(newFloat32Value(value, p), name, shorthand, usage)
+}
+
+// Float32 defines a float32 flag with specified name, default value, and usage string.
+// The return value is the address of a float32 variable that stores the value of the flag.
+func (f *FlagSet) Float32(name string, value float32, usage string) *float32 {
+ p := new(float32)
+ f.Float32VarP(p, name, "", value, usage)
+ return p
+}
+
+// Float32P is like Float32, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Float32P(name, shorthand string, value float32, usage string) *float32 {
+ p := new(float32)
+ f.Float32VarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// Float32 defines a float32 flag with specified name, default value, and usage string.
+// The return value is the address of a float32 variable that stores the value of the flag.
+func Float32(name string, value float32, usage string) *float32 {
+ return CommandLine.Float32P(name, "", value, usage)
+}
+
+// Float32P is like Float32, but accepts a shorthand letter that can be used after a single dash.
+func Float32P(name, shorthand string, value float32, usage string) *float32 {
+ return CommandLine.Float32P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/float64.go b/vendor/github.com/spf13/pflag/float64.go
new file mode 100644
index 0000000000..04b5492a7d
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/float64.go
@@ -0,0 +1,84 @@
+package pflag
+
+import "strconv"
+
+// -- float64 Value
+type float64Value float64
+
+func newFloat64Value(val float64, p *float64) *float64Value {
+ *p = val
+ return (*float64Value)(p)
+}
+
+func (f *float64Value) Set(s string) error {
+ v, err := strconv.ParseFloat(s, 64)
+ *f = float64Value(v)
+ return err
+}
+
+func (f *float64Value) Type() string {
+ return "float64"
+}
+
+func (f *float64Value) String() string { return strconv.FormatFloat(float64(*f), 'g', -1, 64) }
+
+func float64Conv(sval string) (interface{}, error) {
+ return strconv.ParseFloat(sval, 64)
+}
+
+// GetFloat64 return the float64 value of a flag with the given name
+func (f *FlagSet) GetFloat64(name string) (float64, error) {
+ val, err := f.getFlagType(name, "float64", float64Conv)
+ if err != nil {
+ return 0, err
+ }
+ return val.(float64), nil
+}
+
+// Float64Var defines a float64 flag with specified name, default value, and usage string.
+// The argument p points to a float64 variable in which to store the value of the flag.
+func (f *FlagSet) Float64Var(p *float64, name string, value float64, usage string) {
+ f.VarP(newFloat64Value(value, p), name, "", usage)
+}
+
+// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Float64VarP(p *float64, name, shorthand string, value float64, usage string) {
+ f.VarP(newFloat64Value(value, p), name, shorthand, usage)
+}
+
+// Float64Var defines a float64 flag with specified name, default value, and usage string.
+// The argument p points to a float64 variable in which to store the value of the flag.
+func Float64Var(p *float64, name string, value float64, usage string) {
+ CommandLine.VarP(newFloat64Value(value, p), name, "", usage)
+}
+
+// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash.
+func Float64VarP(p *float64, name, shorthand string, value float64, usage string) {
+ CommandLine.VarP(newFloat64Value(value, p), name, shorthand, usage)
+}
+
+// Float64 defines a float64 flag with specified name, default value, and usage string.
+// The return value is the address of a float64 variable that stores the value of the flag.
+func (f *FlagSet) Float64(name string, value float64, usage string) *float64 {
+ p := new(float64)
+ f.Float64VarP(p, name, "", value, usage)
+ return p
+}
+
+// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Float64P(name, shorthand string, value float64, usage string) *float64 {
+ p := new(float64)
+ f.Float64VarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// Float64 defines a float64 flag with specified name, default value, and usage string.
+// The return value is the address of a float64 variable that stores the value of the flag.
+func Float64(name string, value float64, usage string) *float64 {
+ return CommandLine.Float64P(name, "", value, usage)
+}
+
+// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash.
+func Float64P(name, shorthand string, value float64, usage string) *float64 {
+ return CommandLine.Float64P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/golangflag.go b/vendor/github.com/spf13/pflag/golangflag.go
new file mode 100644
index 0000000000..d3dd72b7fe
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/golangflag.go
@@ -0,0 +1,105 @@
+// Copyright 2009 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 pflag
+
+import (
+ goflag "flag"
+ "reflect"
+ "strings"
+)
+
+// flagValueWrapper implements pflag.Value around a flag.Value. The main
+// difference here is the addition of the Type method that returns a string
+// name of the type. As this is generally unknown, we approximate that with
+// reflection.
+type flagValueWrapper struct {
+ inner goflag.Value
+ flagType string
+}
+
+// We are just copying the boolFlag interface out of goflag as that is what
+// they use to decide if a flag should get "true" when no arg is given.
+type goBoolFlag interface {
+ goflag.Value
+ IsBoolFlag() bool
+}
+
+func wrapFlagValue(v goflag.Value) Value {
+ // If the flag.Value happens to also be a pflag.Value, just use it directly.
+ if pv, ok := v.(Value); ok {
+ return pv
+ }
+
+ pv := &flagValueWrapper{
+ inner: v,
+ }
+
+ t := reflect.TypeOf(v)
+ if t.Kind() == reflect.Interface || t.Kind() == reflect.Ptr {
+ t = t.Elem()
+ }
+
+ pv.flagType = strings.TrimSuffix(t.Name(), "Value")
+ return pv
+}
+
+func (v *flagValueWrapper) String() string {
+ return v.inner.String()
+}
+
+func (v *flagValueWrapper) Set(s string) error {
+ return v.inner.Set(s)
+}
+
+func (v *flagValueWrapper) Type() string {
+ return v.flagType
+}
+
+// PFlagFromGoFlag will return a *pflag.Flag given a *flag.Flag
+// If the *flag.Flag.Name was a single character (ex: `v`) it will be accessiblei
+// with both `-v` and `--v` in flags. If the golang flag was more than a single
+// character (ex: `verbose`) it will only be accessible via `--verbose`
+func PFlagFromGoFlag(goflag *goflag.Flag) *Flag {
+ // Remember the default value as a string; it won't change.
+ flag := &Flag{
+ Name: goflag.Name,
+ Usage: goflag.Usage,
+ Value: wrapFlagValue(goflag.Value),
+ // Looks like golang flags don't set DefValue correctly :-(
+ //DefValue: goflag.DefValue,
+ DefValue: goflag.Value.String(),
+ }
+ // Ex: if the golang flag was -v, allow both -v and --v to work
+ if len(flag.Name) == 1 {
+ flag.Shorthand = flag.Name
+ }
+ if fv, ok := goflag.Value.(goBoolFlag); ok && fv.IsBoolFlag() {
+ flag.NoOptDefVal = "true"
+ }
+ return flag
+}
+
+// AddGoFlag will add the given *flag.Flag to the pflag.FlagSet
+func (f *FlagSet) AddGoFlag(goflag *goflag.Flag) {
+ if f.Lookup(goflag.Name) != nil {
+ return
+ }
+ newflag := PFlagFromGoFlag(goflag)
+ f.AddFlag(newflag)
+}
+
+// AddGoFlagSet will add the given *flag.FlagSet to the pflag.FlagSet
+func (f *FlagSet) AddGoFlagSet(newSet *goflag.FlagSet) {
+ if newSet == nil {
+ return
+ }
+ newSet.VisitAll(func(goflag *goflag.Flag) {
+ f.AddGoFlag(goflag)
+ })
+ if f.addedGoFlagSets == nil {
+ f.addedGoFlagSets = make([]*goflag.FlagSet, 0)
+ }
+ f.addedGoFlagSets = append(f.addedGoFlagSets, newSet)
+}
diff --git a/vendor/github.com/spf13/pflag/int.go b/vendor/github.com/spf13/pflag/int.go
new file mode 100644
index 0000000000..1474b89df6
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/int.go
@@ -0,0 +1,84 @@
+package pflag
+
+import "strconv"
+
+// -- int Value
+type intValue int
+
+func newIntValue(val int, p *int) *intValue {
+ *p = val
+ return (*intValue)(p)
+}
+
+func (i *intValue) Set(s string) error {
+ v, err := strconv.ParseInt(s, 0, 64)
+ *i = intValue(v)
+ return err
+}
+
+func (i *intValue) Type() string {
+ return "int"
+}
+
+func (i *intValue) String() string { return strconv.Itoa(int(*i)) }
+
+func intConv(sval string) (interface{}, error) {
+ return strconv.Atoi(sval)
+}
+
+// GetInt return the int value of a flag with the given name
+func (f *FlagSet) GetInt(name string) (int, error) {
+ val, err := f.getFlagType(name, "int", intConv)
+ if err != nil {
+ return 0, err
+ }
+ return val.(int), nil
+}
+
+// IntVar defines an int flag with specified name, default value, and usage string.
+// The argument p points to an int variable in which to store the value of the flag.
+func (f *FlagSet) IntVar(p *int, name string, value int, usage string) {
+ f.VarP(newIntValue(value, p), name, "", usage)
+}
+
+// IntVarP is like IntVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IntVarP(p *int, name, shorthand string, value int, usage string) {
+ f.VarP(newIntValue(value, p), name, shorthand, usage)
+}
+
+// IntVar defines an int flag with specified name, default value, and usage string.
+// The argument p points to an int variable in which to store the value of the flag.
+func IntVar(p *int, name string, value int, usage string) {
+ CommandLine.VarP(newIntValue(value, p), name, "", usage)
+}
+
+// IntVarP is like IntVar, but accepts a shorthand letter that can be used after a single dash.
+func IntVarP(p *int, name, shorthand string, value int, usage string) {
+ CommandLine.VarP(newIntValue(value, p), name, shorthand, usage)
+}
+
+// Int defines an int flag with specified name, default value, and usage string.
+// The return value is the address of an int variable that stores the value of the flag.
+func (f *FlagSet) Int(name string, value int, usage string) *int {
+ p := new(int)
+ f.IntVarP(p, name, "", value, usage)
+ return p
+}
+
+// IntP is like Int, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IntP(name, shorthand string, value int, usage string) *int {
+ p := new(int)
+ f.IntVarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// Int defines an int flag with specified name, default value, and usage string.
+// The return value is the address of an int variable that stores the value of the flag.
+func Int(name string, value int, usage string) *int {
+ return CommandLine.IntP(name, "", value, usage)
+}
+
+// IntP is like Int, but accepts a shorthand letter that can be used after a single dash.
+func IntP(name, shorthand string, value int, usage string) *int {
+ return CommandLine.IntP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/int16.go b/vendor/github.com/spf13/pflag/int16.go
new file mode 100644
index 0000000000..f1a01d05e6
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/int16.go
@@ -0,0 +1,88 @@
+package pflag
+
+import "strconv"
+
+// -- int16 Value
+type int16Value int16
+
+func newInt16Value(val int16, p *int16) *int16Value {
+ *p = val
+ return (*int16Value)(p)
+}
+
+func (i *int16Value) Set(s string) error {
+ v, err := strconv.ParseInt(s, 0, 16)
+ *i = int16Value(v)
+ return err
+}
+
+func (i *int16Value) Type() string {
+ return "int16"
+}
+
+func (i *int16Value) String() string { return strconv.FormatInt(int64(*i), 10) }
+
+func int16Conv(sval string) (interface{}, error) {
+ v, err := strconv.ParseInt(sval, 0, 16)
+ if err != nil {
+ return 0, err
+ }
+ return int16(v), nil
+}
+
+// GetInt16 returns the int16 value of a flag with the given name
+func (f *FlagSet) GetInt16(name string) (int16, error) {
+ val, err := f.getFlagType(name, "int16", int16Conv)
+ if err != nil {
+ return 0, err
+ }
+ return val.(int16), nil
+}
+
+// Int16Var defines an int16 flag with specified name, default value, and usage string.
+// The argument p points to an int16 variable in which to store the value of the flag.
+func (f *FlagSet) Int16Var(p *int16, name string, value int16, usage string) {
+ f.VarP(newInt16Value(value, p), name, "", usage)
+}
+
+// Int16VarP is like Int16Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Int16VarP(p *int16, name, shorthand string, value int16, usage string) {
+ f.VarP(newInt16Value(value, p), name, shorthand, usage)
+}
+
+// Int16Var defines an int16 flag with specified name, default value, and usage string.
+// The argument p points to an int16 variable in which to store the value of the flag.
+func Int16Var(p *int16, name string, value int16, usage string) {
+ CommandLine.VarP(newInt16Value(value, p), name, "", usage)
+}
+
+// Int16VarP is like Int16Var, but accepts a shorthand letter that can be used after a single dash.
+func Int16VarP(p *int16, name, shorthand string, value int16, usage string) {
+ CommandLine.VarP(newInt16Value(value, p), name, shorthand, usage)
+}
+
+// Int16 defines an int16 flag with specified name, default value, and usage string.
+// The return value is the address of an int16 variable that stores the value of the flag.
+func (f *FlagSet) Int16(name string, value int16, usage string) *int16 {
+ p := new(int16)
+ f.Int16VarP(p, name, "", value, usage)
+ return p
+}
+
+// Int16P is like Int16, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Int16P(name, shorthand string, value int16, usage string) *int16 {
+ p := new(int16)
+ f.Int16VarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// Int16 defines an int16 flag with specified name, default value, and usage string.
+// The return value is the address of an int16 variable that stores the value of the flag.
+func Int16(name string, value int16, usage string) *int16 {
+ return CommandLine.Int16P(name, "", value, usage)
+}
+
+// Int16P is like Int16, but accepts a shorthand letter that can be used after a single dash.
+func Int16P(name, shorthand string, value int16, usage string) *int16 {
+ return CommandLine.Int16P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/int32.go b/vendor/github.com/spf13/pflag/int32.go
new file mode 100644
index 0000000000..9b95944f0f
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/int32.go
@@ -0,0 +1,88 @@
+package pflag
+
+import "strconv"
+
+// -- int32 Value
+type int32Value int32
+
+func newInt32Value(val int32, p *int32) *int32Value {
+ *p = val
+ return (*int32Value)(p)
+}
+
+func (i *int32Value) Set(s string) error {
+ v, err := strconv.ParseInt(s, 0, 32)
+ *i = int32Value(v)
+ return err
+}
+
+func (i *int32Value) Type() string {
+ return "int32"
+}
+
+func (i *int32Value) String() string { return strconv.FormatInt(int64(*i), 10) }
+
+func int32Conv(sval string) (interface{}, error) {
+ v, err := strconv.ParseInt(sval, 0, 32)
+ if err != nil {
+ return 0, err
+ }
+ return int32(v), nil
+}
+
+// GetInt32 return the int32 value of a flag with the given name
+func (f *FlagSet) GetInt32(name string) (int32, error) {
+ val, err := f.getFlagType(name, "int32", int32Conv)
+ if err != nil {
+ return 0, err
+ }
+ return val.(int32), nil
+}
+
+// Int32Var defines an int32 flag with specified name, default value, and usage string.
+// The argument p points to an int32 variable in which to store the value of the flag.
+func (f *FlagSet) Int32Var(p *int32, name string, value int32, usage string) {
+ f.VarP(newInt32Value(value, p), name, "", usage)
+}
+
+// Int32VarP is like Int32Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Int32VarP(p *int32, name, shorthand string, value int32, usage string) {
+ f.VarP(newInt32Value(value, p), name, shorthand, usage)
+}
+
+// Int32Var defines an int32 flag with specified name, default value, and usage string.
+// The argument p points to an int32 variable in which to store the value of the flag.
+func Int32Var(p *int32, name string, value int32, usage string) {
+ CommandLine.VarP(newInt32Value(value, p), name, "", usage)
+}
+
+// Int32VarP is like Int32Var, but accepts a shorthand letter that can be used after a single dash.
+func Int32VarP(p *int32, name, shorthand string, value int32, usage string) {
+ CommandLine.VarP(newInt32Value(value, p), name, shorthand, usage)
+}
+
+// Int32 defines an int32 flag with specified name, default value, and usage string.
+// The return value is the address of an int32 variable that stores the value of the flag.
+func (f *FlagSet) Int32(name string, value int32, usage string) *int32 {
+ p := new(int32)
+ f.Int32VarP(p, name, "", value, usage)
+ return p
+}
+
+// Int32P is like Int32, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Int32P(name, shorthand string, value int32, usage string) *int32 {
+ p := new(int32)
+ f.Int32VarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// Int32 defines an int32 flag with specified name, default value, and usage string.
+// The return value is the address of an int32 variable that stores the value of the flag.
+func Int32(name string, value int32, usage string) *int32 {
+ return CommandLine.Int32P(name, "", value, usage)
+}
+
+// Int32P is like Int32, but accepts a shorthand letter that can be used after a single dash.
+func Int32P(name, shorthand string, value int32, usage string) *int32 {
+ return CommandLine.Int32P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/int64.go b/vendor/github.com/spf13/pflag/int64.go
new file mode 100644
index 0000000000..0026d781d9
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/int64.go
@@ -0,0 +1,84 @@
+package pflag
+
+import "strconv"
+
+// -- int64 Value
+type int64Value int64
+
+func newInt64Value(val int64, p *int64) *int64Value {
+ *p = val
+ return (*int64Value)(p)
+}
+
+func (i *int64Value) Set(s string) error {
+ v, err := strconv.ParseInt(s, 0, 64)
+ *i = int64Value(v)
+ return err
+}
+
+func (i *int64Value) Type() string {
+ return "int64"
+}
+
+func (i *int64Value) String() string { return strconv.FormatInt(int64(*i), 10) }
+
+func int64Conv(sval string) (interface{}, error) {
+ return strconv.ParseInt(sval, 0, 64)
+}
+
+// GetInt64 return the int64 value of a flag with the given name
+func (f *FlagSet) GetInt64(name string) (int64, error) {
+ val, err := f.getFlagType(name, "int64", int64Conv)
+ if err != nil {
+ return 0, err
+ }
+ return val.(int64), nil
+}
+
+// Int64Var defines an int64 flag with specified name, default value, and usage string.
+// The argument p points to an int64 variable in which to store the value of the flag.
+func (f *FlagSet) Int64Var(p *int64, name string, value int64, usage string) {
+ f.VarP(newInt64Value(value, p), name, "", usage)
+}
+
+// Int64VarP is like Int64Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Int64VarP(p *int64, name, shorthand string, value int64, usage string) {
+ f.VarP(newInt64Value(value, p), name, shorthand, usage)
+}
+
+// Int64Var defines an int64 flag with specified name, default value, and usage string.
+// The argument p points to an int64 variable in which to store the value of the flag.
+func Int64Var(p *int64, name string, value int64, usage string) {
+ CommandLine.VarP(newInt64Value(value, p), name, "", usage)
+}
+
+// Int64VarP is like Int64Var, but accepts a shorthand letter that can be used after a single dash.
+func Int64VarP(p *int64, name, shorthand string, value int64, usage string) {
+ CommandLine.VarP(newInt64Value(value, p), name, shorthand, usage)
+}
+
+// Int64 defines an int64 flag with specified name, default value, and usage string.
+// The return value is the address of an int64 variable that stores the value of the flag.
+func (f *FlagSet) Int64(name string, value int64, usage string) *int64 {
+ p := new(int64)
+ f.Int64VarP(p, name, "", value, usage)
+ return p
+}
+
+// Int64P is like Int64, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Int64P(name, shorthand string, value int64, usage string) *int64 {
+ p := new(int64)
+ f.Int64VarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// Int64 defines an int64 flag with specified name, default value, and usage string.
+// The return value is the address of an int64 variable that stores the value of the flag.
+func Int64(name string, value int64, usage string) *int64 {
+ return CommandLine.Int64P(name, "", value, usage)
+}
+
+// Int64P is like Int64, but accepts a shorthand letter that can be used after a single dash.
+func Int64P(name, shorthand string, value int64, usage string) *int64 {
+ return CommandLine.Int64P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/int8.go b/vendor/github.com/spf13/pflag/int8.go
new file mode 100644
index 0000000000..4da92228e6
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/int8.go
@@ -0,0 +1,88 @@
+package pflag
+
+import "strconv"
+
+// -- int8 Value
+type int8Value int8
+
+func newInt8Value(val int8, p *int8) *int8Value {
+ *p = val
+ return (*int8Value)(p)
+}
+
+func (i *int8Value) Set(s string) error {
+ v, err := strconv.ParseInt(s, 0, 8)
+ *i = int8Value(v)
+ return err
+}
+
+func (i *int8Value) Type() string {
+ return "int8"
+}
+
+func (i *int8Value) String() string { return strconv.FormatInt(int64(*i), 10) }
+
+func int8Conv(sval string) (interface{}, error) {
+ v, err := strconv.ParseInt(sval, 0, 8)
+ if err != nil {
+ return 0, err
+ }
+ return int8(v), nil
+}
+
+// GetInt8 return the int8 value of a flag with the given name
+func (f *FlagSet) GetInt8(name string) (int8, error) {
+ val, err := f.getFlagType(name, "int8", int8Conv)
+ if err != nil {
+ return 0, err
+ }
+ return val.(int8), nil
+}
+
+// Int8Var defines an int8 flag with specified name, default value, and usage string.
+// The argument p points to an int8 variable in which to store the value of the flag.
+func (f *FlagSet) Int8Var(p *int8, name string, value int8, usage string) {
+ f.VarP(newInt8Value(value, p), name, "", usage)
+}
+
+// Int8VarP is like Int8Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Int8VarP(p *int8, name, shorthand string, value int8, usage string) {
+ f.VarP(newInt8Value(value, p), name, shorthand, usage)
+}
+
+// Int8Var defines an int8 flag with specified name, default value, and usage string.
+// The argument p points to an int8 variable in which to store the value of the flag.
+func Int8Var(p *int8, name string, value int8, usage string) {
+ CommandLine.VarP(newInt8Value(value, p), name, "", usage)
+}
+
+// Int8VarP is like Int8Var, but accepts a shorthand letter that can be used after a single dash.
+func Int8VarP(p *int8, name, shorthand string, value int8, usage string) {
+ CommandLine.VarP(newInt8Value(value, p), name, shorthand, usage)
+}
+
+// Int8 defines an int8 flag with specified name, default value, and usage string.
+// The return value is the address of an int8 variable that stores the value of the flag.
+func (f *FlagSet) Int8(name string, value int8, usage string) *int8 {
+ p := new(int8)
+ f.Int8VarP(p, name, "", value, usage)
+ return p
+}
+
+// Int8P is like Int8, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Int8P(name, shorthand string, value int8, usage string) *int8 {
+ p := new(int8)
+ f.Int8VarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// Int8 defines an int8 flag with specified name, default value, and usage string.
+// The return value is the address of an int8 variable that stores the value of the flag.
+func Int8(name string, value int8, usage string) *int8 {
+ return CommandLine.Int8P(name, "", value, usage)
+}
+
+// Int8P is like Int8, but accepts a shorthand letter that can be used after a single dash.
+func Int8P(name, shorthand string, value int8, usage string) *int8 {
+ return CommandLine.Int8P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/int_slice.go b/vendor/github.com/spf13/pflag/int_slice.go
new file mode 100644
index 0000000000..1e7c9edde9
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/int_slice.go
@@ -0,0 +1,128 @@
+package pflag
+
+import (
+ "fmt"
+ "strconv"
+ "strings"
+)
+
+// -- intSlice Value
+type intSliceValue struct {
+ value *[]int
+ changed bool
+}
+
+func newIntSliceValue(val []int, p *[]int) *intSliceValue {
+ isv := new(intSliceValue)
+ isv.value = p
+ *isv.value = val
+ return isv
+}
+
+func (s *intSliceValue) Set(val string) error {
+ ss := strings.Split(val, ",")
+ out := make([]int, len(ss))
+ for i, d := range ss {
+ var err error
+ out[i], err = strconv.Atoi(d)
+ if err != nil {
+ return err
+ }
+
+ }
+ if !s.changed {
+ *s.value = out
+ } else {
+ *s.value = append(*s.value, out...)
+ }
+ s.changed = true
+ return nil
+}
+
+func (s *intSliceValue) Type() string {
+ return "intSlice"
+}
+
+func (s *intSliceValue) String() string {
+ out := make([]string, len(*s.value))
+ for i, d := range *s.value {
+ out[i] = fmt.Sprintf("%d", d)
+ }
+ return "[" + strings.Join(out, ",") + "]"
+}
+
+func intSliceConv(val string) (interface{}, error) {
+ val = strings.Trim(val, "[]")
+ // Empty string would cause a slice with one (empty) entry
+ if len(val) == 0 {
+ return []int{}, nil
+ }
+ ss := strings.Split(val, ",")
+ out := make([]int, len(ss))
+ for i, d := range ss {
+ var err error
+ out[i], err = strconv.Atoi(d)
+ if err != nil {
+ return nil, err
+ }
+
+ }
+ return out, nil
+}
+
+// GetIntSlice return the []int value of a flag with the given name
+func (f *FlagSet) GetIntSlice(name string) ([]int, error) {
+ val, err := f.getFlagType(name, "intSlice", intSliceConv)
+ if err != nil {
+ return []int{}, err
+ }
+ return val.([]int), nil
+}
+
+// IntSliceVar defines a intSlice flag with specified name, default value, and usage string.
+// The argument p points to a []int variable in which to store the value of the flag.
+func (f *FlagSet) IntSliceVar(p *[]int, name string, value []int, usage string) {
+ f.VarP(newIntSliceValue(value, p), name, "", usage)
+}
+
+// IntSliceVarP is like IntSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IntSliceVarP(p *[]int, name, shorthand string, value []int, usage string) {
+ f.VarP(newIntSliceValue(value, p), name, shorthand, usage)
+}
+
+// IntSliceVar defines a int[] flag with specified name, default value, and usage string.
+// The argument p points to a int[] variable in which to store the value of the flag.
+func IntSliceVar(p *[]int, name string, value []int, usage string) {
+ CommandLine.VarP(newIntSliceValue(value, p), name, "", usage)
+}
+
+// IntSliceVarP is like IntSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func IntSliceVarP(p *[]int, name, shorthand string, value []int, usage string) {
+ CommandLine.VarP(newIntSliceValue(value, p), name, shorthand, usage)
+}
+
+// IntSlice defines a []int flag with specified name, default value, and usage string.
+// The return value is the address of a []int variable that stores the value of the flag.
+func (f *FlagSet) IntSlice(name string, value []int, usage string) *[]int {
+ p := []int{}
+ f.IntSliceVarP(&p, name, "", value, usage)
+ return &p
+}
+
+// IntSliceP is like IntSlice, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IntSliceP(name, shorthand string, value []int, usage string) *[]int {
+ p := []int{}
+ f.IntSliceVarP(&p, name, shorthand, value, usage)
+ return &p
+}
+
+// IntSlice defines a []int flag with specified name, default value, and usage string.
+// The return value is the address of a []int variable that stores the value of the flag.
+func IntSlice(name string, value []int, usage string) *[]int {
+ return CommandLine.IntSliceP(name, "", value, usage)
+}
+
+// IntSliceP is like IntSlice, but accepts a shorthand letter that can be used after a single dash.
+func IntSliceP(name, shorthand string, value []int, usage string) *[]int {
+ return CommandLine.IntSliceP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/ip.go b/vendor/github.com/spf13/pflag/ip.go
new file mode 100644
index 0000000000..3d414ba69f
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/ip.go
@@ -0,0 +1,94 @@
+package pflag
+
+import (
+ "fmt"
+ "net"
+ "strings"
+)
+
+// -- net.IP value
+type ipValue net.IP
+
+func newIPValue(val net.IP, p *net.IP) *ipValue {
+ *p = val
+ return (*ipValue)(p)
+}
+
+func (i *ipValue) String() string { return net.IP(*i).String() }
+func (i *ipValue) Set(s string) error {
+ ip := net.ParseIP(strings.TrimSpace(s))
+ if ip == nil {
+ return fmt.Errorf("failed to parse IP: %q", s)
+ }
+ *i = ipValue(ip)
+ return nil
+}
+
+func (i *ipValue) Type() string {
+ return "ip"
+}
+
+func ipConv(sval string) (interface{}, error) {
+ ip := net.ParseIP(sval)
+ if ip != nil {
+ return ip, nil
+ }
+ return nil, fmt.Errorf("invalid string being converted to IP address: %s", sval)
+}
+
+// GetIP return the net.IP value of a flag with the given name
+func (f *FlagSet) GetIP(name string) (net.IP, error) {
+ val, err := f.getFlagType(name, "ip", ipConv)
+ if err != nil {
+ return nil, err
+ }
+ return val.(net.IP), nil
+}
+
+// IPVar defines an net.IP flag with specified name, default value, and usage string.
+// The argument p points to an net.IP variable in which to store the value of the flag.
+func (f *FlagSet) IPVar(p *net.IP, name string, value net.IP, usage string) {
+ f.VarP(newIPValue(value, p), name, "", usage)
+}
+
+// IPVarP is like IPVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IPVarP(p *net.IP, name, shorthand string, value net.IP, usage string) {
+ f.VarP(newIPValue(value, p), name, shorthand, usage)
+}
+
+// IPVar defines an net.IP flag with specified name, default value, and usage string.
+// The argument p points to an net.IP variable in which to store the value of the flag.
+func IPVar(p *net.IP, name string, value net.IP, usage string) {
+ CommandLine.VarP(newIPValue(value, p), name, "", usage)
+}
+
+// IPVarP is like IPVar, but accepts a shorthand letter that can be used after a single dash.
+func IPVarP(p *net.IP, name, shorthand string, value net.IP, usage string) {
+ CommandLine.VarP(newIPValue(value, p), name, shorthand, usage)
+}
+
+// IP defines an net.IP flag with specified name, default value, and usage string.
+// The return value is the address of an net.IP variable that stores the value of the flag.
+func (f *FlagSet) IP(name string, value net.IP, usage string) *net.IP {
+ p := new(net.IP)
+ f.IPVarP(p, name, "", value, usage)
+ return p
+}
+
+// IPP is like IP, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IPP(name, shorthand string, value net.IP, usage string) *net.IP {
+ p := new(net.IP)
+ f.IPVarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// IP defines an net.IP flag with specified name, default value, and usage string.
+// The return value is the address of an net.IP variable that stores the value of the flag.
+func IP(name string, value net.IP, usage string) *net.IP {
+ return CommandLine.IPP(name, "", value, usage)
+}
+
+// IPP is like IP, but accepts a shorthand letter that can be used after a single dash.
+func IPP(name, shorthand string, value net.IP, usage string) *net.IP {
+ return CommandLine.IPP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/ip_slice.go b/vendor/github.com/spf13/pflag/ip_slice.go
new file mode 100644
index 0000000000..7dd196fe3f
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/ip_slice.go
@@ -0,0 +1,148 @@
+package pflag
+
+import (
+ "fmt"
+ "io"
+ "net"
+ "strings"
+)
+
+// -- ipSlice Value
+type ipSliceValue struct {
+ value *[]net.IP
+ changed bool
+}
+
+func newIPSliceValue(val []net.IP, p *[]net.IP) *ipSliceValue {
+ ipsv := new(ipSliceValue)
+ ipsv.value = p
+ *ipsv.value = val
+ return ipsv
+}
+
+// Set converts, and assigns, the comma-separated IP argument string representation as the []net.IP value of this flag.
+// If Set is called on a flag that already has a []net.IP assigned, the newly converted values will be appended.
+func (s *ipSliceValue) Set(val string) error {
+
+ // remove all quote characters
+ rmQuote := strings.NewReplacer(`"`, "", `'`, "", "`", "")
+
+ // read flag arguments with CSV parser
+ ipStrSlice, err := readAsCSV(rmQuote.Replace(val))
+ if err != nil && err != io.EOF {
+ return err
+ }
+
+ // parse ip values into slice
+ out := make([]net.IP, 0, len(ipStrSlice))
+ for _, ipStr := range ipStrSlice {
+ ip := net.ParseIP(strings.TrimSpace(ipStr))
+ if ip == nil {
+ return fmt.Errorf("invalid string being converted to IP address: %s", ipStr)
+ }
+ out = append(out, ip)
+ }
+
+ if !s.changed {
+ *s.value = out
+ } else {
+ *s.value = append(*s.value, out...)
+ }
+
+ s.changed = true
+
+ return nil
+}
+
+// Type returns a string that uniquely represents this flag's type.
+func (s *ipSliceValue) Type() string {
+ return "ipSlice"
+}
+
+// String defines a "native" format for this net.IP slice flag value.
+func (s *ipSliceValue) String() string {
+
+ ipStrSlice := make([]string, len(*s.value))
+ for i, ip := range *s.value {
+ ipStrSlice[i] = ip.String()
+ }
+
+ out, _ := writeAsCSV(ipStrSlice)
+
+ return "[" + out + "]"
+}
+
+func ipSliceConv(val string) (interface{}, error) {
+ val = strings.Trim(val, "[]")
+ // Emtpy string would cause a slice with one (empty) entry
+ if len(val) == 0 {
+ return []net.IP{}, nil
+ }
+ ss := strings.Split(val, ",")
+ out := make([]net.IP, len(ss))
+ for i, sval := range ss {
+ ip := net.ParseIP(strings.TrimSpace(sval))
+ if ip == nil {
+ return nil, fmt.Errorf("invalid string being converted to IP address: %s", sval)
+ }
+ out[i] = ip
+ }
+ return out, nil
+}
+
+// GetIPSlice returns the []net.IP value of a flag with the given name
+func (f *FlagSet) GetIPSlice(name string) ([]net.IP, error) {
+ val, err := f.getFlagType(name, "ipSlice", ipSliceConv)
+ if err != nil {
+ return []net.IP{}, err
+ }
+ return val.([]net.IP), nil
+}
+
+// IPSliceVar defines a ipSlice flag with specified name, default value, and usage string.
+// The argument p points to a []net.IP variable in which to store the value of the flag.
+func (f *FlagSet) IPSliceVar(p *[]net.IP, name string, value []net.IP, usage string) {
+ f.VarP(newIPSliceValue(value, p), name, "", usage)
+}
+
+// IPSliceVarP is like IPSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IPSliceVarP(p *[]net.IP, name, shorthand string, value []net.IP, usage string) {
+ f.VarP(newIPSliceValue(value, p), name, shorthand, usage)
+}
+
+// IPSliceVar defines a []net.IP flag with specified name, default value, and usage string.
+// The argument p points to a []net.IP variable in which to store the value of the flag.
+func IPSliceVar(p *[]net.IP, name string, value []net.IP, usage string) {
+ CommandLine.VarP(newIPSliceValue(value, p), name, "", usage)
+}
+
+// IPSliceVarP is like IPSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func IPSliceVarP(p *[]net.IP, name, shorthand string, value []net.IP, usage string) {
+ CommandLine.VarP(newIPSliceValue(value, p), name, shorthand, usage)
+}
+
+// IPSlice defines a []net.IP flag with specified name, default value, and usage string.
+// The return value is the address of a []net.IP variable that stores the value of that flag.
+func (f *FlagSet) IPSlice(name string, value []net.IP, usage string) *[]net.IP {
+ p := []net.IP{}
+ f.IPSliceVarP(&p, name, "", value, usage)
+ return &p
+}
+
+// IPSliceP is like IPSlice, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IPSliceP(name, shorthand string, value []net.IP, usage string) *[]net.IP {
+ p := []net.IP{}
+ f.IPSliceVarP(&p, name, shorthand, value, usage)
+ return &p
+}
+
+// IPSlice defines a []net.IP flag with specified name, default value, and usage string.
+// The return value is the address of a []net.IP variable that stores the value of the flag.
+func IPSlice(name string, value []net.IP, usage string) *[]net.IP {
+ return CommandLine.IPSliceP(name, "", value, usage)
+}
+
+// IPSliceP is like IPSlice, but accepts a shorthand letter that can be used after a single dash.
+func IPSliceP(name, shorthand string, value []net.IP, usage string) *[]net.IP {
+ return CommandLine.IPSliceP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/ipmask.go b/vendor/github.com/spf13/pflag/ipmask.go
new file mode 100644
index 0000000000..5bd44bd21d
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/ipmask.go
@@ -0,0 +1,122 @@
+package pflag
+
+import (
+ "fmt"
+ "net"
+ "strconv"
+)
+
+// -- net.IPMask value
+type ipMaskValue net.IPMask
+
+func newIPMaskValue(val net.IPMask, p *net.IPMask) *ipMaskValue {
+ *p = val
+ return (*ipMaskValue)(p)
+}
+
+func (i *ipMaskValue) String() string { return net.IPMask(*i).String() }
+func (i *ipMaskValue) Set(s string) error {
+ ip := ParseIPv4Mask(s)
+ if ip == nil {
+ return fmt.Errorf("failed to parse IP mask: %q", s)
+ }
+ *i = ipMaskValue(ip)
+ return nil
+}
+
+func (i *ipMaskValue) Type() string {
+ return "ipMask"
+}
+
+// ParseIPv4Mask written in IP form (e.g. 255.255.255.0).
+// This function should really belong to the net package.
+func ParseIPv4Mask(s string) net.IPMask {
+ mask := net.ParseIP(s)
+ if mask == nil {
+ if len(s) != 8 {
+ return nil
+ }
+ // net.IPMask.String() actually outputs things like ffffff00
+ // so write a horrible parser for that as well :-(
+ m := []int{}
+ for i := 0; i < 4; i++ {
+ b := "0x" + s[2*i:2*i+2]
+ d, err := strconv.ParseInt(b, 0, 0)
+ if err != nil {
+ return nil
+ }
+ m = append(m, int(d))
+ }
+ s := fmt.Sprintf("%d.%d.%d.%d", m[0], m[1], m[2], m[3])
+ mask = net.ParseIP(s)
+ if mask == nil {
+ return nil
+ }
+ }
+ return net.IPv4Mask(mask[12], mask[13], mask[14], mask[15])
+}
+
+func parseIPv4Mask(sval string) (interface{}, error) {
+ mask := ParseIPv4Mask(sval)
+ if mask == nil {
+ return nil, fmt.Errorf("unable to parse %s as net.IPMask", sval)
+ }
+ return mask, nil
+}
+
+// GetIPv4Mask return the net.IPv4Mask value of a flag with the given name
+func (f *FlagSet) GetIPv4Mask(name string) (net.IPMask, error) {
+ val, err := f.getFlagType(name, "ipMask", parseIPv4Mask)
+ if err != nil {
+ return nil, err
+ }
+ return val.(net.IPMask), nil
+}
+
+// IPMaskVar defines an net.IPMask flag with specified name, default value, and usage string.
+// The argument p points to an net.IPMask variable in which to store the value of the flag.
+func (f *FlagSet) IPMaskVar(p *net.IPMask, name string, value net.IPMask, usage string) {
+ f.VarP(newIPMaskValue(value, p), name, "", usage)
+}
+
+// IPMaskVarP is like IPMaskVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IPMaskVarP(p *net.IPMask, name, shorthand string, value net.IPMask, usage string) {
+ f.VarP(newIPMaskValue(value, p), name, shorthand, usage)
+}
+
+// IPMaskVar defines an net.IPMask flag with specified name, default value, and usage string.
+// The argument p points to an net.IPMask variable in which to store the value of the flag.
+func IPMaskVar(p *net.IPMask, name string, value net.IPMask, usage string) {
+ CommandLine.VarP(newIPMaskValue(value, p), name, "", usage)
+}
+
+// IPMaskVarP is like IPMaskVar, but accepts a shorthand letter that can be used after a single dash.
+func IPMaskVarP(p *net.IPMask, name, shorthand string, value net.IPMask, usage string) {
+ CommandLine.VarP(newIPMaskValue(value, p), name, shorthand, usage)
+}
+
+// IPMask defines an net.IPMask flag with specified name, default value, and usage string.
+// The return value is the address of an net.IPMask variable that stores the value of the flag.
+func (f *FlagSet) IPMask(name string, value net.IPMask, usage string) *net.IPMask {
+ p := new(net.IPMask)
+ f.IPMaskVarP(p, name, "", value, usage)
+ return p
+}
+
+// IPMaskP is like IPMask, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IPMaskP(name, shorthand string, value net.IPMask, usage string) *net.IPMask {
+ p := new(net.IPMask)
+ f.IPMaskVarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// IPMask defines an net.IPMask flag with specified name, default value, and usage string.
+// The return value is the address of an net.IPMask variable that stores the value of the flag.
+func IPMask(name string, value net.IPMask, usage string) *net.IPMask {
+ return CommandLine.IPMaskP(name, "", value, usage)
+}
+
+// IPMaskP is like IP, but accepts a shorthand letter that can be used after a single dash.
+func IPMaskP(name, shorthand string, value net.IPMask, usage string) *net.IPMask {
+ return CommandLine.IPMaskP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/ipnet.go b/vendor/github.com/spf13/pflag/ipnet.go
new file mode 100644
index 0000000000..e2c1b8bcd5
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/ipnet.go
@@ -0,0 +1,98 @@
+package pflag
+
+import (
+ "fmt"
+ "net"
+ "strings"
+)
+
+// IPNet adapts net.IPNet for use as a flag.
+type ipNetValue net.IPNet
+
+func (ipnet ipNetValue) String() string {
+ n := net.IPNet(ipnet)
+ return n.String()
+}
+
+func (ipnet *ipNetValue) Set(value string) error {
+ _, n, err := net.ParseCIDR(strings.TrimSpace(value))
+ if err != nil {
+ return err
+ }
+ *ipnet = ipNetValue(*n)
+ return nil
+}
+
+func (*ipNetValue) Type() string {
+ return "ipNet"
+}
+
+func newIPNetValue(val net.IPNet, p *net.IPNet) *ipNetValue {
+ *p = val
+ return (*ipNetValue)(p)
+}
+
+func ipNetConv(sval string) (interface{}, error) {
+ _, n, err := net.ParseCIDR(strings.TrimSpace(sval))
+ if err == nil {
+ return *n, nil
+ }
+ return nil, fmt.Errorf("invalid string being converted to IPNet: %s", sval)
+}
+
+// GetIPNet return the net.IPNet value of a flag with the given name
+func (f *FlagSet) GetIPNet(name string) (net.IPNet, error) {
+ val, err := f.getFlagType(name, "ipNet", ipNetConv)
+ if err != nil {
+ return net.IPNet{}, err
+ }
+ return val.(net.IPNet), nil
+}
+
+// IPNetVar defines an net.IPNet flag with specified name, default value, and usage string.
+// The argument p points to an net.IPNet variable in which to store the value of the flag.
+func (f *FlagSet) IPNetVar(p *net.IPNet, name string, value net.IPNet, usage string) {
+ f.VarP(newIPNetValue(value, p), name, "", usage)
+}
+
+// IPNetVarP is like IPNetVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IPNetVarP(p *net.IPNet, name, shorthand string, value net.IPNet, usage string) {
+ f.VarP(newIPNetValue(value, p), name, shorthand, usage)
+}
+
+// IPNetVar defines an net.IPNet flag with specified name, default value, and usage string.
+// The argument p points to an net.IPNet variable in which to store the value of the flag.
+func IPNetVar(p *net.IPNet, name string, value net.IPNet, usage string) {
+ CommandLine.VarP(newIPNetValue(value, p), name, "", usage)
+}
+
+// IPNetVarP is like IPNetVar, but accepts a shorthand letter that can be used after a single dash.
+func IPNetVarP(p *net.IPNet, name, shorthand string, value net.IPNet, usage string) {
+ CommandLine.VarP(newIPNetValue(value, p), name, shorthand, usage)
+}
+
+// IPNet defines an net.IPNet flag with specified name, default value, and usage string.
+// The return value is the address of an net.IPNet variable that stores the value of the flag.
+func (f *FlagSet) IPNet(name string, value net.IPNet, usage string) *net.IPNet {
+ p := new(net.IPNet)
+ f.IPNetVarP(p, name, "", value, usage)
+ return p
+}
+
+// IPNetP is like IPNet, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) IPNetP(name, shorthand string, value net.IPNet, usage string) *net.IPNet {
+ p := new(net.IPNet)
+ f.IPNetVarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// IPNet defines an net.IPNet flag with specified name, default value, and usage string.
+// The return value is the address of an net.IPNet variable that stores the value of the flag.
+func IPNet(name string, value net.IPNet, usage string) *net.IPNet {
+ return CommandLine.IPNetP(name, "", value, usage)
+}
+
+// IPNetP is like IPNet, but accepts a shorthand letter that can be used after a single dash.
+func IPNetP(name, shorthand string, value net.IPNet, usage string) *net.IPNet {
+ return CommandLine.IPNetP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/string.go b/vendor/github.com/spf13/pflag/string.go
new file mode 100644
index 0000000000..04e0a26ff7
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/string.go
@@ -0,0 +1,80 @@
+package pflag
+
+// -- string Value
+type stringValue string
+
+func newStringValue(val string, p *string) *stringValue {
+ *p = val
+ return (*stringValue)(p)
+}
+
+func (s *stringValue) Set(val string) error {
+ *s = stringValue(val)
+ return nil
+}
+func (s *stringValue) Type() string {
+ return "string"
+}
+
+func (s *stringValue) String() string { return string(*s) }
+
+func stringConv(sval string) (interface{}, error) {
+ return sval, nil
+}
+
+// GetString return the string value of a flag with the given name
+func (f *FlagSet) GetString(name string) (string, error) {
+ val, err := f.getFlagType(name, "string", stringConv)
+ if err != nil {
+ return "", err
+ }
+ return val.(string), nil
+}
+
+// StringVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a string variable in which to store the value of the flag.
+func (f *FlagSet) StringVar(p *string, name string, value string, usage string) {
+ f.VarP(newStringValue(value, p), name, "", usage)
+}
+
+// StringVarP is like StringVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringVarP(p *string, name, shorthand string, value string, usage string) {
+ f.VarP(newStringValue(value, p), name, shorthand, usage)
+}
+
+// StringVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a string variable in which to store the value of the flag.
+func StringVar(p *string, name string, value string, usage string) {
+ CommandLine.VarP(newStringValue(value, p), name, "", usage)
+}
+
+// StringVarP is like StringVar, but accepts a shorthand letter that can be used after a single dash.
+func StringVarP(p *string, name, shorthand string, value string, usage string) {
+ CommandLine.VarP(newStringValue(value, p), name, shorthand, usage)
+}
+
+// String defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a string variable that stores the value of the flag.
+func (f *FlagSet) String(name string, value string, usage string) *string {
+ p := new(string)
+ f.StringVarP(p, name, "", value, usage)
+ return p
+}
+
+// StringP is like String, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringP(name, shorthand string, value string, usage string) *string {
+ p := new(string)
+ f.StringVarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// String defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a string variable that stores the value of the flag.
+func String(name string, value string, usage string) *string {
+ return CommandLine.StringP(name, "", value, usage)
+}
+
+// StringP is like String, but accepts a shorthand letter that can be used after a single dash.
+func StringP(name, shorthand string, value string, usage string) *string {
+ return CommandLine.StringP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/string_array.go b/vendor/github.com/spf13/pflag/string_array.go
new file mode 100644
index 0000000000..fa7bc60187
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/string_array.go
@@ -0,0 +1,103 @@
+package pflag
+
+// -- stringArray Value
+type stringArrayValue struct {
+ value *[]string
+ changed bool
+}
+
+func newStringArrayValue(val []string, p *[]string) *stringArrayValue {
+ ssv := new(stringArrayValue)
+ ssv.value = p
+ *ssv.value = val
+ return ssv
+}
+
+func (s *stringArrayValue) Set(val string) error {
+ if !s.changed {
+ *s.value = []string{val}
+ s.changed = true
+ } else {
+ *s.value = append(*s.value, val)
+ }
+ return nil
+}
+
+func (s *stringArrayValue) Type() string {
+ return "stringArray"
+}
+
+func (s *stringArrayValue) String() string {
+ str, _ := writeAsCSV(*s.value)
+ return "[" + str + "]"
+}
+
+func stringArrayConv(sval string) (interface{}, error) {
+ sval = sval[1 : len(sval)-1]
+ // An empty string would cause a array with one (empty) string
+ if len(sval) == 0 {
+ return []string{}, nil
+ }
+ return readAsCSV(sval)
+}
+
+// GetStringArray return the []string value of a flag with the given name
+func (f *FlagSet) GetStringArray(name string) ([]string, error) {
+ val, err := f.getFlagType(name, "stringArray", stringArrayConv)
+ if err != nil {
+ return []string{}, err
+ }
+ return val.([]string), nil
+}
+
+// StringArrayVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a []string variable in which to store the values of the multiple flags.
+// The value of each argument will not try to be separated by comma. Use a StringSlice for that.
+func (f *FlagSet) StringArrayVar(p *[]string, name string, value []string, usage string) {
+ f.VarP(newStringArrayValue(value, p), name, "", usage)
+}
+
+// StringArrayVarP is like StringArrayVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringArrayVarP(p *[]string, name, shorthand string, value []string, usage string) {
+ f.VarP(newStringArrayValue(value, p), name, shorthand, usage)
+}
+
+// StringArrayVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a []string variable in which to store the value of the flag.
+// The value of each argument will not try to be separated by comma. Use a StringSlice for that.
+func StringArrayVar(p *[]string, name string, value []string, usage string) {
+ CommandLine.VarP(newStringArrayValue(value, p), name, "", usage)
+}
+
+// StringArrayVarP is like StringArrayVar, but accepts a shorthand letter that can be used after a single dash.
+func StringArrayVarP(p *[]string, name, shorthand string, value []string, usage string) {
+ CommandLine.VarP(newStringArrayValue(value, p), name, shorthand, usage)
+}
+
+// StringArray defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a []string variable that stores the value of the flag.
+// The value of each argument will not try to be separated by comma. Use a StringSlice for that.
+func (f *FlagSet) StringArray(name string, value []string, usage string) *[]string {
+ p := []string{}
+ f.StringArrayVarP(&p, name, "", value, usage)
+ return &p
+}
+
+// StringArrayP is like StringArray, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringArrayP(name, shorthand string, value []string, usage string) *[]string {
+ p := []string{}
+ f.StringArrayVarP(&p, name, shorthand, value, usage)
+ return &p
+}
+
+// StringArray defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a []string variable that stores the value of the flag.
+// The value of each argument will not try to be separated by comma. Use a StringSlice for that.
+func StringArray(name string, value []string, usage string) *[]string {
+ return CommandLine.StringArrayP(name, "", value, usage)
+}
+
+// StringArrayP is like StringArray, but accepts a shorthand letter that can be used after a single dash.
+func StringArrayP(name, shorthand string, value []string, usage string) *[]string {
+ return CommandLine.StringArrayP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/string_slice.go b/vendor/github.com/spf13/pflag/string_slice.go
new file mode 100644
index 0000000000..0cd3ccc083
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/string_slice.go
@@ -0,0 +1,149 @@
+package pflag
+
+import (
+ "bytes"
+ "encoding/csv"
+ "strings"
+)
+
+// -- stringSlice Value
+type stringSliceValue struct {
+ value *[]string
+ changed bool
+}
+
+func newStringSliceValue(val []string, p *[]string) *stringSliceValue {
+ ssv := new(stringSliceValue)
+ ssv.value = p
+ *ssv.value = val
+ return ssv
+}
+
+func readAsCSV(val string) ([]string, error) {
+ if val == "" {
+ return []string{}, nil
+ }
+ stringReader := strings.NewReader(val)
+ csvReader := csv.NewReader(stringReader)
+ return csvReader.Read()
+}
+
+func writeAsCSV(vals []string) (string, error) {
+ b := &bytes.Buffer{}
+ w := csv.NewWriter(b)
+ err := w.Write(vals)
+ if err != nil {
+ return "", err
+ }
+ w.Flush()
+ return strings.TrimSuffix(b.String(), "\n"), nil
+}
+
+func (s *stringSliceValue) Set(val string) error {
+ v, err := readAsCSV(val)
+ if err != nil {
+ return err
+ }
+ if !s.changed {
+ *s.value = v
+ } else {
+ *s.value = append(*s.value, v...)
+ }
+ s.changed = true
+ return nil
+}
+
+func (s *stringSliceValue) Type() string {
+ return "stringSlice"
+}
+
+func (s *stringSliceValue) String() string {
+ str, _ := writeAsCSV(*s.value)
+ return "[" + str + "]"
+}
+
+func stringSliceConv(sval string) (interface{}, error) {
+ sval = sval[1 : len(sval)-1]
+ // An empty string would cause a slice with one (empty) string
+ if len(sval) == 0 {
+ return []string{}, nil
+ }
+ return readAsCSV(sval)
+}
+
+// GetStringSlice return the []string value of a flag with the given name
+func (f *FlagSet) GetStringSlice(name string) ([]string, error) {
+ val, err := f.getFlagType(name, "stringSlice", stringSliceConv)
+ if err != nil {
+ return []string{}, err
+ }
+ return val.([]string), nil
+}
+
+// StringSliceVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a []string variable in which to store the value of the flag.
+// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly.
+// For example:
+// --ss="v1,v2" -ss="v3"
+// will result in
+// []string{"v1", "v2", "v3"}
+func (f *FlagSet) StringSliceVar(p *[]string, name string, value []string, usage string) {
+ f.VarP(newStringSliceValue(value, p), name, "", usage)
+}
+
+// StringSliceVarP is like StringSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringSliceVarP(p *[]string, name, shorthand string, value []string, usage string) {
+ f.VarP(newStringSliceValue(value, p), name, shorthand, usage)
+}
+
+// StringSliceVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a []string variable in which to store the value of the flag.
+// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly.
+// For example:
+// --ss="v1,v2" -ss="v3"
+// will result in
+// []string{"v1", "v2", "v3"}
+func StringSliceVar(p *[]string, name string, value []string, usage string) {
+ CommandLine.VarP(newStringSliceValue(value, p), name, "", usage)
+}
+
+// StringSliceVarP is like StringSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func StringSliceVarP(p *[]string, name, shorthand string, value []string, usage string) {
+ CommandLine.VarP(newStringSliceValue(value, p), name, shorthand, usage)
+}
+
+// StringSlice defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a []string variable that stores the value of the flag.
+// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly.
+// For example:
+// --ss="v1,v2" -ss="v3"
+// will result in
+// []string{"v1", "v2", "v3"}
+func (f *FlagSet) StringSlice(name string, value []string, usage string) *[]string {
+ p := []string{}
+ f.StringSliceVarP(&p, name, "", value, usage)
+ return &p
+}
+
+// StringSliceP is like StringSlice, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringSliceP(name, shorthand string, value []string, usage string) *[]string {
+ p := []string{}
+ f.StringSliceVarP(&p, name, shorthand, value, usage)
+ return &p
+}
+
+// StringSlice defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a []string variable that stores the value of the flag.
+// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly.
+// For example:
+// --ss="v1,v2" -ss="v3"
+// will result in
+// []string{"v1", "v2", "v3"}
+func StringSlice(name string, value []string, usage string) *[]string {
+ return CommandLine.StringSliceP(name, "", value, usage)
+}
+
+// StringSliceP is like StringSlice, but accepts a shorthand letter that can be used after a single dash.
+func StringSliceP(name, shorthand string, value []string, usage string) *[]string {
+ return CommandLine.StringSliceP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/string_to_int.go b/vendor/github.com/spf13/pflag/string_to_int.go
new file mode 100644
index 0000000000..5ceda3965d
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/string_to_int.go
@@ -0,0 +1,149 @@
+package pflag
+
+import (
+ "bytes"
+ "fmt"
+ "strconv"
+ "strings"
+)
+
+// -- stringToInt Value
+type stringToIntValue struct {
+ value *map[string]int
+ changed bool
+}
+
+func newStringToIntValue(val map[string]int, p *map[string]int) *stringToIntValue {
+ ssv := new(stringToIntValue)
+ ssv.value = p
+ *ssv.value = val
+ return ssv
+}
+
+// Format: a=1,b=2
+func (s *stringToIntValue) Set(val string) error {
+ ss := strings.Split(val, ",")
+ out := make(map[string]int, len(ss))
+ for _, pair := range ss {
+ kv := strings.SplitN(pair, "=", 2)
+ if len(kv) != 2 {
+ return fmt.Errorf("%s must be formatted as key=value", pair)
+ }
+ var err error
+ out[kv[0]], err = strconv.Atoi(kv[1])
+ if err != nil {
+ return err
+ }
+ }
+ if !s.changed {
+ *s.value = out
+ } else {
+ for k, v := range out {
+ (*s.value)[k] = v
+ }
+ }
+ s.changed = true
+ return nil
+}
+
+func (s *stringToIntValue) Type() string {
+ return "stringToInt"
+}
+
+func (s *stringToIntValue) String() string {
+ var buf bytes.Buffer
+ i := 0
+ for k, v := range *s.value {
+ if i > 0 {
+ buf.WriteRune(',')
+ }
+ buf.WriteString(k)
+ buf.WriteRune('=')
+ buf.WriteString(strconv.Itoa(v))
+ i++
+ }
+ return "[" + buf.String() + "]"
+}
+
+func stringToIntConv(val string) (interface{}, error) {
+ val = strings.Trim(val, "[]")
+ // An empty string would cause an empty map
+ if len(val) == 0 {
+ return map[string]int{}, nil
+ }
+ ss := strings.Split(val, ",")
+ out := make(map[string]int, len(ss))
+ for _, pair := range ss {
+ kv := strings.SplitN(pair, "=", 2)
+ if len(kv) != 2 {
+ return nil, fmt.Errorf("%s must be formatted as key=value", pair)
+ }
+ var err error
+ out[kv[0]], err = strconv.Atoi(kv[1])
+ if err != nil {
+ return nil, err
+ }
+ }
+ return out, nil
+}
+
+// GetStringToInt return the map[string]int value of a flag with the given name
+func (f *FlagSet) GetStringToInt(name string) (map[string]int, error) {
+ val, err := f.getFlagType(name, "stringToInt", stringToIntConv)
+ if err != nil {
+ return map[string]int{}, err
+ }
+ return val.(map[string]int), nil
+}
+
+// StringToIntVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a map[string]int variable in which to store the values of the multiple flags.
+// The value of each argument will not try to be separated by comma
+func (f *FlagSet) StringToIntVar(p *map[string]int, name string, value map[string]int, usage string) {
+ f.VarP(newStringToIntValue(value, p), name, "", usage)
+}
+
+// StringToIntVarP is like StringToIntVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringToIntVarP(p *map[string]int, name, shorthand string, value map[string]int, usage string) {
+ f.VarP(newStringToIntValue(value, p), name, shorthand, usage)
+}
+
+// StringToIntVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a map[string]int variable in which to store the value of the flag.
+// The value of each argument will not try to be separated by comma
+func StringToIntVar(p *map[string]int, name string, value map[string]int, usage string) {
+ CommandLine.VarP(newStringToIntValue(value, p), name, "", usage)
+}
+
+// StringToIntVarP is like StringToIntVar, but accepts a shorthand letter that can be used after a single dash.
+func StringToIntVarP(p *map[string]int, name, shorthand string, value map[string]int, usage string) {
+ CommandLine.VarP(newStringToIntValue(value, p), name, shorthand, usage)
+}
+
+// StringToInt defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a map[string]int variable that stores the value of the flag.
+// The value of each argument will not try to be separated by comma
+func (f *FlagSet) StringToInt(name string, value map[string]int, usage string) *map[string]int {
+ p := map[string]int{}
+ f.StringToIntVarP(&p, name, "", value, usage)
+ return &p
+}
+
+// StringToIntP is like StringToInt, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringToIntP(name, shorthand string, value map[string]int, usage string) *map[string]int {
+ p := map[string]int{}
+ f.StringToIntVarP(&p, name, shorthand, value, usage)
+ return &p
+}
+
+// StringToInt defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a map[string]int variable that stores the value of the flag.
+// The value of each argument will not try to be separated by comma
+func StringToInt(name string, value map[string]int, usage string) *map[string]int {
+ return CommandLine.StringToIntP(name, "", value, usage)
+}
+
+// StringToIntP is like StringToInt, but accepts a shorthand letter that can be used after a single dash.
+func StringToIntP(name, shorthand string, value map[string]int, usage string) *map[string]int {
+ return CommandLine.StringToIntP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/string_to_string.go b/vendor/github.com/spf13/pflag/string_to_string.go
new file mode 100644
index 0000000000..890a01afc0
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/string_to_string.go
@@ -0,0 +1,160 @@
+package pflag
+
+import (
+ "bytes"
+ "encoding/csv"
+ "fmt"
+ "strings"
+)
+
+// -- stringToString Value
+type stringToStringValue struct {
+ value *map[string]string
+ changed bool
+}
+
+func newStringToStringValue(val map[string]string, p *map[string]string) *stringToStringValue {
+ ssv := new(stringToStringValue)
+ ssv.value = p
+ *ssv.value = val
+ return ssv
+}
+
+// Format: a=1,b=2
+func (s *stringToStringValue) Set(val string) error {
+ var ss []string
+ n := strings.Count(val, "=")
+ switch n {
+ case 0:
+ return fmt.Errorf("%s must be formatted as key=value", val)
+ case 1:
+ ss = append(ss, strings.Trim(val, `"`))
+ default:
+ r := csv.NewReader(strings.NewReader(val))
+ var err error
+ ss, err = r.Read()
+ if err != nil {
+ return err
+ }
+ }
+
+ out := make(map[string]string, len(ss))
+ for _, pair := range ss {
+ kv := strings.SplitN(pair, "=", 2)
+ if len(kv) != 2 {
+ return fmt.Errorf("%s must be formatted as key=value", pair)
+ }
+ out[kv[0]] = kv[1]
+ }
+ if !s.changed {
+ *s.value = out
+ } else {
+ for k, v := range out {
+ (*s.value)[k] = v
+ }
+ }
+ s.changed = true
+ return nil
+}
+
+func (s *stringToStringValue) Type() string {
+ return "stringToString"
+}
+
+func (s *stringToStringValue) String() string {
+ records := make([]string, 0, len(*s.value)>>1)
+ for k, v := range *s.value {
+ records = append(records, k+"="+v)
+ }
+
+ var buf bytes.Buffer
+ w := csv.NewWriter(&buf)
+ if err := w.Write(records); err != nil {
+ panic(err)
+ }
+ w.Flush()
+ return "[" + strings.TrimSpace(buf.String()) + "]"
+}
+
+func stringToStringConv(val string) (interface{}, error) {
+ val = strings.Trim(val, "[]")
+ // An empty string would cause an empty map
+ if len(val) == 0 {
+ return map[string]string{}, nil
+ }
+ r := csv.NewReader(strings.NewReader(val))
+ ss, err := r.Read()
+ if err != nil {
+ return nil, err
+ }
+ out := make(map[string]string, len(ss))
+ for _, pair := range ss {
+ kv := strings.SplitN(pair, "=", 2)
+ if len(kv) != 2 {
+ return nil, fmt.Errorf("%s must be formatted as key=value", pair)
+ }
+ out[kv[0]] = kv[1]
+ }
+ return out, nil
+}
+
+// GetStringToString return the map[string]string value of a flag with the given name
+func (f *FlagSet) GetStringToString(name string) (map[string]string, error) {
+ val, err := f.getFlagType(name, "stringToString", stringToStringConv)
+ if err != nil {
+ return map[string]string{}, err
+ }
+ return val.(map[string]string), nil
+}
+
+// StringToStringVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a map[string]string variable in which to store the values of the multiple flags.
+// The value of each argument will not try to be separated by comma
+func (f *FlagSet) StringToStringVar(p *map[string]string, name string, value map[string]string, usage string) {
+ f.VarP(newStringToStringValue(value, p), name, "", usage)
+}
+
+// StringToStringVarP is like StringToStringVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringToStringVarP(p *map[string]string, name, shorthand string, value map[string]string, usage string) {
+ f.VarP(newStringToStringValue(value, p), name, shorthand, usage)
+}
+
+// StringToStringVar defines a string flag with specified name, default value, and usage string.
+// The argument p points to a map[string]string variable in which to store the value of the flag.
+// The value of each argument will not try to be separated by comma
+func StringToStringVar(p *map[string]string, name string, value map[string]string, usage string) {
+ CommandLine.VarP(newStringToStringValue(value, p), name, "", usage)
+}
+
+// StringToStringVarP is like StringToStringVar, but accepts a shorthand letter that can be used after a single dash.
+func StringToStringVarP(p *map[string]string, name, shorthand string, value map[string]string, usage string) {
+ CommandLine.VarP(newStringToStringValue(value, p), name, shorthand, usage)
+}
+
+// StringToString defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a map[string]string variable that stores the value of the flag.
+// The value of each argument will not try to be separated by comma
+func (f *FlagSet) StringToString(name string, value map[string]string, usage string) *map[string]string {
+ p := map[string]string{}
+ f.StringToStringVarP(&p, name, "", value, usage)
+ return &p
+}
+
+// StringToStringP is like StringToString, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) StringToStringP(name, shorthand string, value map[string]string, usage string) *map[string]string {
+ p := map[string]string{}
+ f.StringToStringVarP(&p, name, shorthand, value, usage)
+ return &p
+}
+
+// StringToString defines a string flag with specified name, default value, and usage string.
+// The return value is the address of a map[string]string variable that stores the value of the flag.
+// The value of each argument will not try to be separated by comma
+func StringToString(name string, value map[string]string, usage string) *map[string]string {
+ return CommandLine.StringToStringP(name, "", value, usage)
+}
+
+// StringToStringP is like StringToString, but accepts a shorthand letter that can be used after a single dash.
+func StringToStringP(name, shorthand string, value map[string]string, usage string) *map[string]string {
+ return CommandLine.StringToStringP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/uint.go b/vendor/github.com/spf13/pflag/uint.go
new file mode 100644
index 0000000000..dcbc2b758c
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/uint.go
@@ -0,0 +1,88 @@
+package pflag
+
+import "strconv"
+
+// -- uint Value
+type uintValue uint
+
+func newUintValue(val uint, p *uint) *uintValue {
+ *p = val
+ return (*uintValue)(p)
+}
+
+func (i *uintValue) Set(s string) error {
+ v, err := strconv.ParseUint(s, 0, 64)
+ *i = uintValue(v)
+ return err
+}
+
+func (i *uintValue) Type() string {
+ return "uint"
+}
+
+func (i *uintValue) String() string { return strconv.FormatUint(uint64(*i), 10) }
+
+func uintConv(sval string) (interface{}, error) {
+ v, err := strconv.ParseUint(sval, 0, 0)
+ if err != nil {
+ return 0, err
+ }
+ return uint(v), nil
+}
+
+// GetUint return the uint value of a flag with the given name
+func (f *FlagSet) GetUint(name string) (uint, error) {
+ val, err := f.getFlagType(name, "uint", uintConv)
+ if err != nil {
+ return 0, err
+ }
+ return val.(uint), nil
+}
+
+// UintVar defines a uint flag with specified name, default value, and usage string.
+// The argument p points to a uint variable in which to store the value of the flag.
+func (f *FlagSet) UintVar(p *uint, name string, value uint, usage string) {
+ f.VarP(newUintValue(value, p), name, "", usage)
+}
+
+// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) UintVarP(p *uint, name, shorthand string, value uint, usage string) {
+ f.VarP(newUintValue(value, p), name, shorthand, usage)
+}
+
+// UintVar defines a uint flag with specified name, default value, and usage string.
+// The argument p points to a uint variable in which to store the value of the flag.
+func UintVar(p *uint, name string, value uint, usage string) {
+ CommandLine.VarP(newUintValue(value, p), name, "", usage)
+}
+
+// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash.
+func UintVarP(p *uint, name, shorthand string, value uint, usage string) {
+ CommandLine.VarP(newUintValue(value, p), name, shorthand, usage)
+}
+
+// Uint defines a uint flag with specified name, default value, and usage string.
+// The return value is the address of a uint variable that stores the value of the flag.
+func (f *FlagSet) Uint(name string, value uint, usage string) *uint {
+ p := new(uint)
+ f.UintVarP(p, name, "", value, usage)
+ return p
+}
+
+// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) UintP(name, shorthand string, value uint, usage string) *uint {
+ p := new(uint)
+ f.UintVarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// Uint defines a uint flag with specified name, default value, and usage string.
+// The return value is the address of a uint variable that stores the value of the flag.
+func Uint(name string, value uint, usage string) *uint {
+ return CommandLine.UintP(name, "", value, usage)
+}
+
+// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash.
+func UintP(name, shorthand string, value uint, usage string) *uint {
+ return CommandLine.UintP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/uint16.go b/vendor/github.com/spf13/pflag/uint16.go
new file mode 100644
index 0000000000..7e9914eddd
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/uint16.go
@@ -0,0 +1,88 @@
+package pflag
+
+import "strconv"
+
+// -- uint16 value
+type uint16Value uint16
+
+func newUint16Value(val uint16, p *uint16) *uint16Value {
+ *p = val
+ return (*uint16Value)(p)
+}
+
+func (i *uint16Value) Set(s string) error {
+ v, err := strconv.ParseUint(s, 0, 16)
+ *i = uint16Value(v)
+ return err
+}
+
+func (i *uint16Value) Type() string {
+ return "uint16"
+}
+
+func (i *uint16Value) String() string { return strconv.FormatUint(uint64(*i), 10) }
+
+func uint16Conv(sval string) (interface{}, error) {
+ v, err := strconv.ParseUint(sval, 0, 16)
+ if err != nil {
+ return 0, err
+ }
+ return uint16(v), nil
+}
+
+// GetUint16 return the uint16 value of a flag with the given name
+func (f *FlagSet) GetUint16(name string) (uint16, error) {
+ val, err := f.getFlagType(name, "uint16", uint16Conv)
+ if err != nil {
+ return 0, err
+ }
+ return val.(uint16), nil
+}
+
+// Uint16Var defines a uint flag with specified name, default value, and usage string.
+// The argument p points to a uint variable in which to store the value of the flag.
+func (f *FlagSet) Uint16Var(p *uint16, name string, value uint16, usage string) {
+ f.VarP(newUint16Value(value, p), name, "", usage)
+}
+
+// Uint16VarP is like Uint16Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Uint16VarP(p *uint16, name, shorthand string, value uint16, usage string) {
+ f.VarP(newUint16Value(value, p), name, shorthand, usage)
+}
+
+// Uint16Var defines a uint flag with specified name, default value, and usage string.
+// The argument p points to a uint variable in which to store the value of the flag.
+func Uint16Var(p *uint16, name string, value uint16, usage string) {
+ CommandLine.VarP(newUint16Value(value, p), name, "", usage)
+}
+
+// Uint16VarP is like Uint16Var, but accepts a shorthand letter that can be used after a single dash.
+func Uint16VarP(p *uint16, name, shorthand string, value uint16, usage string) {
+ CommandLine.VarP(newUint16Value(value, p), name, shorthand, usage)
+}
+
+// Uint16 defines a uint flag with specified name, default value, and usage string.
+// The return value is the address of a uint variable that stores the value of the flag.
+func (f *FlagSet) Uint16(name string, value uint16, usage string) *uint16 {
+ p := new(uint16)
+ f.Uint16VarP(p, name, "", value, usage)
+ return p
+}
+
+// Uint16P is like Uint16, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Uint16P(name, shorthand string, value uint16, usage string) *uint16 {
+ p := new(uint16)
+ f.Uint16VarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// Uint16 defines a uint flag with specified name, default value, and usage string.
+// The return value is the address of a uint variable that stores the value of the flag.
+func Uint16(name string, value uint16, usage string) *uint16 {
+ return CommandLine.Uint16P(name, "", value, usage)
+}
+
+// Uint16P is like Uint16, but accepts a shorthand letter that can be used after a single dash.
+func Uint16P(name, shorthand string, value uint16, usage string) *uint16 {
+ return CommandLine.Uint16P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/uint32.go b/vendor/github.com/spf13/pflag/uint32.go
new file mode 100644
index 0000000000..d8024539bf
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/uint32.go
@@ -0,0 +1,88 @@
+package pflag
+
+import "strconv"
+
+// -- uint32 value
+type uint32Value uint32
+
+func newUint32Value(val uint32, p *uint32) *uint32Value {
+ *p = val
+ return (*uint32Value)(p)
+}
+
+func (i *uint32Value) Set(s string) error {
+ v, err := strconv.ParseUint(s, 0, 32)
+ *i = uint32Value(v)
+ return err
+}
+
+func (i *uint32Value) Type() string {
+ return "uint32"
+}
+
+func (i *uint32Value) String() string { return strconv.FormatUint(uint64(*i), 10) }
+
+func uint32Conv(sval string) (interface{}, error) {
+ v, err := strconv.ParseUint(sval, 0, 32)
+ if err != nil {
+ return 0, err
+ }
+ return uint32(v), nil
+}
+
+// GetUint32 return the uint32 value of a flag with the given name
+func (f *FlagSet) GetUint32(name string) (uint32, error) {
+ val, err := f.getFlagType(name, "uint32", uint32Conv)
+ if err != nil {
+ return 0, err
+ }
+ return val.(uint32), nil
+}
+
+// Uint32Var defines a uint32 flag with specified name, default value, and usage string.
+// The argument p points to a uint32 variable in which to store the value of the flag.
+func (f *FlagSet) Uint32Var(p *uint32, name string, value uint32, usage string) {
+ f.VarP(newUint32Value(value, p), name, "", usage)
+}
+
+// Uint32VarP is like Uint32Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Uint32VarP(p *uint32, name, shorthand string, value uint32, usage string) {
+ f.VarP(newUint32Value(value, p), name, shorthand, usage)
+}
+
+// Uint32Var defines a uint32 flag with specified name, default value, and usage string.
+// The argument p points to a uint32 variable in which to store the value of the flag.
+func Uint32Var(p *uint32, name string, value uint32, usage string) {
+ CommandLine.VarP(newUint32Value(value, p), name, "", usage)
+}
+
+// Uint32VarP is like Uint32Var, but accepts a shorthand letter that can be used after a single dash.
+func Uint32VarP(p *uint32, name, shorthand string, value uint32, usage string) {
+ CommandLine.VarP(newUint32Value(value, p), name, shorthand, usage)
+}
+
+// Uint32 defines a uint32 flag with specified name, default value, and usage string.
+// The return value is the address of a uint32 variable that stores the value of the flag.
+func (f *FlagSet) Uint32(name string, value uint32, usage string) *uint32 {
+ p := new(uint32)
+ f.Uint32VarP(p, name, "", value, usage)
+ return p
+}
+
+// Uint32P is like Uint32, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Uint32P(name, shorthand string, value uint32, usage string) *uint32 {
+ p := new(uint32)
+ f.Uint32VarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// Uint32 defines a uint32 flag with specified name, default value, and usage string.
+// The return value is the address of a uint32 variable that stores the value of the flag.
+func Uint32(name string, value uint32, usage string) *uint32 {
+ return CommandLine.Uint32P(name, "", value, usage)
+}
+
+// Uint32P is like Uint32, but accepts a shorthand letter that can be used after a single dash.
+func Uint32P(name, shorthand string, value uint32, usage string) *uint32 {
+ return CommandLine.Uint32P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/uint64.go b/vendor/github.com/spf13/pflag/uint64.go
new file mode 100644
index 0000000000..f62240f2ce
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/uint64.go
@@ -0,0 +1,88 @@
+package pflag
+
+import "strconv"
+
+// -- uint64 Value
+type uint64Value uint64
+
+func newUint64Value(val uint64, p *uint64) *uint64Value {
+ *p = val
+ return (*uint64Value)(p)
+}
+
+func (i *uint64Value) Set(s string) error {
+ v, err := strconv.ParseUint(s, 0, 64)
+ *i = uint64Value(v)
+ return err
+}
+
+func (i *uint64Value) Type() string {
+ return "uint64"
+}
+
+func (i *uint64Value) String() string { return strconv.FormatUint(uint64(*i), 10) }
+
+func uint64Conv(sval string) (interface{}, error) {
+ v, err := strconv.ParseUint(sval, 0, 64)
+ if err != nil {
+ return 0, err
+ }
+ return uint64(v), nil
+}
+
+// GetUint64 return the uint64 value of a flag with the given name
+func (f *FlagSet) GetUint64(name string) (uint64, error) {
+ val, err := f.getFlagType(name, "uint64", uint64Conv)
+ if err != nil {
+ return 0, err
+ }
+ return val.(uint64), nil
+}
+
+// Uint64Var defines a uint64 flag with specified name, default value, and usage string.
+// The argument p points to a uint64 variable in which to store the value of the flag.
+func (f *FlagSet) Uint64Var(p *uint64, name string, value uint64, usage string) {
+ f.VarP(newUint64Value(value, p), name, "", usage)
+}
+
+// Uint64VarP is like Uint64Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Uint64VarP(p *uint64, name, shorthand string, value uint64, usage string) {
+ f.VarP(newUint64Value(value, p), name, shorthand, usage)
+}
+
+// Uint64Var defines a uint64 flag with specified name, default value, and usage string.
+// The argument p points to a uint64 variable in which to store the value of the flag.
+func Uint64Var(p *uint64, name string, value uint64, usage string) {
+ CommandLine.VarP(newUint64Value(value, p), name, "", usage)
+}
+
+// Uint64VarP is like Uint64Var, but accepts a shorthand letter that can be used after a single dash.
+func Uint64VarP(p *uint64, name, shorthand string, value uint64, usage string) {
+ CommandLine.VarP(newUint64Value(value, p), name, shorthand, usage)
+}
+
+// Uint64 defines a uint64 flag with specified name, default value, and usage string.
+// The return value is the address of a uint64 variable that stores the value of the flag.
+func (f *FlagSet) Uint64(name string, value uint64, usage string) *uint64 {
+ p := new(uint64)
+ f.Uint64VarP(p, name, "", value, usage)
+ return p
+}
+
+// Uint64P is like Uint64, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Uint64P(name, shorthand string, value uint64, usage string) *uint64 {
+ p := new(uint64)
+ f.Uint64VarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// Uint64 defines a uint64 flag with specified name, default value, and usage string.
+// The return value is the address of a uint64 variable that stores the value of the flag.
+func Uint64(name string, value uint64, usage string) *uint64 {
+ return CommandLine.Uint64P(name, "", value, usage)
+}
+
+// Uint64P is like Uint64, but accepts a shorthand letter that can be used after a single dash.
+func Uint64P(name, shorthand string, value uint64, usage string) *uint64 {
+ return CommandLine.Uint64P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/uint8.go b/vendor/github.com/spf13/pflag/uint8.go
new file mode 100644
index 0000000000..bb0e83c1f6
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/uint8.go
@@ -0,0 +1,88 @@
+package pflag
+
+import "strconv"
+
+// -- uint8 Value
+type uint8Value uint8
+
+func newUint8Value(val uint8, p *uint8) *uint8Value {
+ *p = val
+ return (*uint8Value)(p)
+}
+
+func (i *uint8Value) Set(s string) error {
+ v, err := strconv.ParseUint(s, 0, 8)
+ *i = uint8Value(v)
+ return err
+}
+
+func (i *uint8Value) Type() string {
+ return "uint8"
+}
+
+func (i *uint8Value) String() string { return strconv.FormatUint(uint64(*i), 10) }
+
+func uint8Conv(sval string) (interface{}, error) {
+ v, err := strconv.ParseUint(sval, 0, 8)
+ if err != nil {
+ return 0, err
+ }
+ return uint8(v), nil
+}
+
+// GetUint8 return the uint8 value of a flag with the given name
+func (f *FlagSet) GetUint8(name string) (uint8, error) {
+ val, err := f.getFlagType(name, "uint8", uint8Conv)
+ if err != nil {
+ return 0, err
+ }
+ return val.(uint8), nil
+}
+
+// Uint8Var defines a uint8 flag with specified name, default value, and usage string.
+// The argument p points to a uint8 variable in which to store the value of the flag.
+func (f *FlagSet) Uint8Var(p *uint8, name string, value uint8, usage string) {
+ f.VarP(newUint8Value(value, p), name, "", usage)
+}
+
+// Uint8VarP is like Uint8Var, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Uint8VarP(p *uint8, name, shorthand string, value uint8, usage string) {
+ f.VarP(newUint8Value(value, p), name, shorthand, usage)
+}
+
+// Uint8Var defines a uint8 flag with specified name, default value, and usage string.
+// The argument p points to a uint8 variable in which to store the value of the flag.
+func Uint8Var(p *uint8, name string, value uint8, usage string) {
+ CommandLine.VarP(newUint8Value(value, p), name, "", usage)
+}
+
+// Uint8VarP is like Uint8Var, but accepts a shorthand letter that can be used after a single dash.
+func Uint8VarP(p *uint8, name, shorthand string, value uint8, usage string) {
+ CommandLine.VarP(newUint8Value(value, p), name, shorthand, usage)
+}
+
+// Uint8 defines a uint8 flag with specified name, default value, and usage string.
+// The return value is the address of a uint8 variable that stores the value of the flag.
+func (f *FlagSet) Uint8(name string, value uint8, usage string) *uint8 {
+ p := new(uint8)
+ f.Uint8VarP(p, name, "", value, usage)
+ return p
+}
+
+// Uint8P is like Uint8, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) Uint8P(name, shorthand string, value uint8, usage string) *uint8 {
+ p := new(uint8)
+ f.Uint8VarP(p, name, shorthand, value, usage)
+ return p
+}
+
+// Uint8 defines a uint8 flag with specified name, default value, and usage string.
+// The return value is the address of a uint8 variable that stores the value of the flag.
+func Uint8(name string, value uint8, usage string) *uint8 {
+ return CommandLine.Uint8P(name, "", value, usage)
+}
+
+// Uint8P is like Uint8, but accepts a shorthand letter that can be used after a single dash.
+func Uint8P(name, shorthand string, value uint8, usage string) *uint8 {
+ return CommandLine.Uint8P(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/spf13/pflag/uint_slice.go b/vendor/github.com/spf13/pflag/uint_slice.go
new file mode 100644
index 0000000000..edd94c600a
--- /dev/null
+++ b/vendor/github.com/spf13/pflag/uint_slice.go
@@ -0,0 +1,126 @@
+package pflag
+
+import (
+ "fmt"
+ "strconv"
+ "strings"
+)
+
+// -- uintSlice Value
+type uintSliceValue struct {
+ value *[]uint
+ changed bool
+}
+
+func newUintSliceValue(val []uint, p *[]uint) *uintSliceValue {
+ uisv := new(uintSliceValue)
+ uisv.value = p
+ *uisv.value = val
+ return uisv
+}
+
+func (s *uintSliceValue) Set(val string) error {
+ ss := strings.Split(val, ",")
+ out := make([]uint, len(ss))
+ for i, d := range ss {
+ u, err := strconv.ParseUint(d, 10, 0)
+ if err != nil {
+ return err
+ }
+ out[i] = uint(u)
+ }
+ if !s.changed {
+ *s.value = out
+ } else {
+ *s.value = append(*s.value, out...)
+ }
+ s.changed = true
+ return nil
+}
+
+func (s *uintSliceValue) Type() string {
+ return "uintSlice"
+}
+
+func (s *uintSliceValue) String() string {
+ out := make([]string, len(*s.value))
+ for i, d := range *s.value {
+ out[i] = fmt.Sprintf("%d", d)
+ }
+ return "[" + strings.Join(out, ",") + "]"
+}
+
+func uintSliceConv(val string) (interface{}, error) {
+ val = strings.Trim(val, "[]")
+ // Empty string would cause a slice with one (empty) entry
+ if len(val) == 0 {
+ return []uint{}, nil
+ }
+ ss := strings.Split(val, ",")
+ out := make([]uint, len(ss))
+ for i, d := range ss {
+ u, err := strconv.ParseUint(d, 10, 0)
+ if err != nil {
+ return nil, err
+ }
+ out[i] = uint(u)
+ }
+ return out, nil
+}
+
+// GetUintSlice returns the []uint value of a flag with the given name.
+func (f *FlagSet) GetUintSlice(name string) ([]uint, error) {
+ val, err := f.getFlagType(name, "uintSlice", uintSliceConv)
+ if err != nil {
+ return []uint{}, err
+ }
+ return val.([]uint), nil
+}
+
+// UintSliceVar defines a uintSlice flag with specified name, default value, and usage string.
+// The argument p points to a []uint variable in which to store the value of the flag.
+func (f *FlagSet) UintSliceVar(p *[]uint, name string, value []uint, usage string) {
+ f.VarP(newUintSliceValue(value, p), name, "", usage)
+}
+
+// UintSliceVarP is like UintSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) UintSliceVarP(p *[]uint, name, shorthand string, value []uint, usage string) {
+ f.VarP(newUintSliceValue(value, p), name, shorthand, usage)
+}
+
+// UintSliceVar defines a uint[] flag with specified name, default value, and usage string.
+// The argument p points to a uint[] variable in which to store the value of the flag.
+func UintSliceVar(p *[]uint, name string, value []uint, usage string) {
+ CommandLine.VarP(newUintSliceValue(value, p), name, "", usage)
+}
+
+// UintSliceVarP is like the UintSliceVar, but accepts a shorthand letter that can be used after a single dash.
+func UintSliceVarP(p *[]uint, name, shorthand string, value []uint, usage string) {
+ CommandLine.VarP(newUintSliceValue(value, p), name, shorthand, usage)
+}
+
+// UintSlice defines a []uint flag with specified name, default value, and usage string.
+// The return value is the address of a []uint variable that stores the value of the flag.
+func (f *FlagSet) UintSlice(name string, value []uint, usage string) *[]uint {
+ p := []uint{}
+ f.UintSliceVarP(&p, name, "", value, usage)
+ return &p
+}
+
+// UintSliceP is like UintSlice, but accepts a shorthand letter that can be used after a single dash.
+func (f *FlagSet) UintSliceP(name, shorthand string, value []uint, usage string) *[]uint {
+ p := []uint{}
+ f.UintSliceVarP(&p, name, shorthand, value, usage)
+ return &p
+}
+
+// UintSlice defines a []uint flag with specified name, default value, and usage string.
+// The return value is the address of a []uint variable that stores the value of the flag.
+func UintSlice(name string, value []uint, usage string) *[]uint {
+ return CommandLine.UintSliceP(name, "", value, usage)
+}
+
+// UintSliceP is like UintSlice, but accepts a shorthand letter that can be used after a single dash.
+func UintSliceP(name, shorthand string, value []uint, usage string) *[]uint {
+ return CommandLine.UintSliceP(name, shorthand, value, usage)
+}
diff --git a/vendor/github.com/stretchr/testify/LICENSE b/vendor/github.com/stretchr/testify/LICENSE
new file mode 100644
index 0000000000..f38ec5956b
--- /dev/null
+++ b/vendor/github.com/stretchr/testify/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2012-2018 Mat Ryer and Tyler Bunnell
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/vendor/github.com/stretchr/testify/assert/assertion_format.go b/vendor/github.com/stretchr/testify/assert/assertion_format.go
new file mode 100644
index 0000000000..aa1c2b95cd
--- /dev/null
+++ b/vendor/github.com/stretchr/testify/assert/assertion_format.go
@@ -0,0 +1,484 @@
+/*
+* CODE GENERATED AUTOMATICALLY WITH github.com/stretchr/testify/_codegen
+* THIS FILE MUST NOT BE EDITED BY HAND
+ */
+
+package assert
+
+import (
+ http "net/http"
+ url "net/url"
+ time "time"
+)
+
+// Conditionf uses a Comparison to assert a complex condition.
+func Conditionf(t TestingT, comp Comparison, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return Condition(t, comp, append([]interface{}{msg}, args...)...)
+}
+
+// Containsf asserts that the specified string, list(array, slice...) or map contains the
+// specified substring or element.
+//
+// assert.Containsf(t, "Hello World", "World", "error message %s", "formatted")
+// assert.Containsf(t, ["Hello", "World"], "World", "error message %s", "formatted")
+// assert.Containsf(t, {"Hello": "World"}, "Hello", "error message %s", "formatted")
+func Containsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return Contains(t, s, contains, append([]interface{}{msg}, args...)...)
+}
+
+// DirExistsf checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists.
+func DirExistsf(t TestingT, path string, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return DirExists(t, path, append([]interface{}{msg}, args...)...)
+}
+
+// ElementsMatchf asserts that the specified listA(array, slice...) is equal to specified
+// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements,
+// the number of appearances of each of them in both lists should match.
+//
+// assert.ElementsMatchf(t, [1, 3, 2, 3], [1, 3, 3, 2], "error message %s", "formatted")
+func ElementsMatchf(t TestingT, listA interface{}, listB interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return ElementsMatch(t, listA, listB, append([]interface{}{msg}, args...)...)
+}
+
+// Emptyf asserts that the specified object is empty. I.e. nil, "", false, 0 or either
+// a slice or a channel with len == 0.
+//
+// assert.Emptyf(t, obj, "error message %s", "formatted")
+func Emptyf(t TestingT, object interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return Empty(t, object, append([]interface{}{msg}, args...)...)
+}
+
+// Equalf asserts that two objects are equal.
+//
+// assert.Equalf(t, 123, 123, "error message %s", "formatted")
+//
+// Pointer variable equality is determined based on the equality of the
+// referenced values (as opposed to the memory addresses). Function equality
+// cannot be determined and will always fail.
+func Equalf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return Equal(t, expected, actual, append([]interface{}{msg}, args...)...)
+}
+
+// EqualErrorf asserts that a function returned an error (i.e. not `nil`)
+// and that it is equal to the provided error.
+//
+// actualObj, err := SomeFunction()
+// assert.EqualErrorf(t, err, expectedErrorString, "error message %s", "formatted")
+func EqualErrorf(t TestingT, theError error, errString string, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return EqualError(t, theError, errString, append([]interface{}{msg}, args...)...)
+}
+
+// EqualValuesf asserts that two objects are equal or convertable to the same types
+// and equal.
+//
+// assert.EqualValuesf(t, uint32(123, "error message %s", "formatted"), int32(123))
+func EqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return EqualValues(t, expected, actual, append([]interface{}{msg}, args...)...)
+}
+
+// Errorf asserts that a function returned an error (i.e. not `nil`).
+//
+// actualObj, err := SomeFunction()
+// if assert.Errorf(t, err, "error message %s", "formatted") {
+// assert.Equal(t, expectedErrorf, err)
+// }
+func Errorf(t TestingT, err error, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return Error(t, err, append([]interface{}{msg}, args...)...)
+}
+
+// Exactlyf asserts that two objects are equal in value and type.
+//
+// assert.Exactlyf(t, int32(123, "error message %s", "formatted"), int64(123))
+func Exactlyf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return Exactly(t, expected, actual, append([]interface{}{msg}, args...)...)
+}
+
+// Failf reports a failure through
+func Failf(t TestingT, failureMessage string, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return Fail(t, failureMessage, append([]interface{}{msg}, args...)...)
+}
+
+// FailNowf fails test
+func FailNowf(t TestingT, failureMessage string, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return FailNow(t, failureMessage, append([]interface{}{msg}, args...)...)
+}
+
+// Falsef asserts that the specified value is false.
+//
+// assert.Falsef(t, myBool, "error message %s", "formatted")
+func Falsef(t TestingT, value bool, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return False(t, value, append([]interface{}{msg}, args...)...)
+}
+
+// FileExistsf checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file.
+func FileExistsf(t TestingT, path string, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return FileExists(t, path, append([]interface{}{msg}, args...)...)
+}
+
+// HTTPBodyContainsf asserts that a specified handler returns a
+// body that contains a string.
+//
+// assert.HTTPBodyContainsf(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func HTTPBodyContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return HTTPBodyContains(t, handler, method, url, values, str, append([]interface{}{msg}, args...)...)
+}
+
+// HTTPBodyNotContainsf asserts that a specified handler returns a
+// body that does not contain a string.
+//
+// assert.HTTPBodyNotContainsf(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func HTTPBodyNotContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return HTTPBodyNotContains(t, handler, method, url, values, str, append([]interface{}{msg}, args...)...)
+}
+
+// HTTPErrorf asserts that a specified handler returns an error status code.
+//
+// assert.HTTPErrorf(t, myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}}
+//
+// Returns whether the assertion was successful (true, "error message %s", "formatted") or not (false).
+func HTTPErrorf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return HTTPError(t, handler, method, url, values, append([]interface{}{msg}, args...)...)
+}
+
+// HTTPRedirectf asserts that a specified handler returns a redirect status code.
+//
+// assert.HTTPRedirectf(t, myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}}
+//
+// Returns whether the assertion was successful (true, "error message %s", "formatted") or not (false).
+func HTTPRedirectf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return HTTPRedirect(t, handler, method, url, values, append([]interface{}{msg}, args...)...)
+}
+
+// HTTPSuccessf asserts that a specified handler returns a success status code.
+//
+// assert.HTTPSuccessf(t, myHandler, "POST", "http://www.google.com", nil, "error message %s", "formatted")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func HTTPSuccessf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return HTTPSuccess(t, handler, method, url, values, append([]interface{}{msg}, args...)...)
+}
+
+// Implementsf asserts that an object is implemented by the specified interface.
+//
+// assert.Implementsf(t, (*MyInterface, "error message %s", "formatted")(nil), new(MyObject))
+func Implementsf(t TestingT, interfaceObject interface{}, object interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return Implements(t, interfaceObject, object, append([]interface{}{msg}, args...)...)
+}
+
+// InDeltaf asserts that the two numerals are within delta of each other.
+//
+// assert.InDeltaf(t, math.Pi, (22 / 7.0, "error message %s", "formatted"), 0.01)
+func InDeltaf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return InDelta(t, expected, actual, delta, append([]interface{}{msg}, args...)...)
+}
+
+// InDeltaMapValuesf is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.
+func InDeltaMapValuesf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return InDeltaMapValues(t, expected, actual, delta, append([]interface{}{msg}, args...)...)
+}
+
+// InDeltaSlicef is the same as InDelta, except it compares two slices.
+func InDeltaSlicef(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return InDeltaSlice(t, expected, actual, delta, append([]interface{}{msg}, args...)...)
+}
+
+// InEpsilonf asserts that expected and actual have a relative error less than epsilon
+func InEpsilonf(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return InEpsilon(t, expected, actual, epsilon, append([]interface{}{msg}, args...)...)
+}
+
+// InEpsilonSlicef is the same as InEpsilon, except it compares each value from two slices.
+func InEpsilonSlicef(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return InEpsilonSlice(t, expected, actual, epsilon, append([]interface{}{msg}, args...)...)
+}
+
+// IsTypef asserts that the specified objects are of the same type.
+func IsTypef(t TestingT, expectedType interface{}, object interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return IsType(t, expectedType, object, append([]interface{}{msg}, args...)...)
+}
+
+// JSONEqf asserts that two JSON strings are equivalent.
+//
+// assert.JSONEqf(t, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`, "error message %s", "formatted")
+func JSONEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return JSONEq(t, expected, actual, append([]interface{}{msg}, args...)...)
+}
+
+// Lenf asserts that the specified object has specific length.
+// Lenf also fails if the object has a type that len() not accept.
+//
+// assert.Lenf(t, mySlice, 3, "error message %s", "formatted")
+func Lenf(t TestingT, object interface{}, length int, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return Len(t, object, length, append([]interface{}{msg}, args...)...)
+}
+
+// Nilf asserts that the specified object is nil.
+//
+// assert.Nilf(t, err, "error message %s", "formatted")
+func Nilf(t TestingT, object interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return Nil(t, object, append([]interface{}{msg}, args...)...)
+}
+
+// NoErrorf asserts that a function returned no error (i.e. `nil`).
+//
+// actualObj, err := SomeFunction()
+// if assert.NoErrorf(t, err, "error message %s", "formatted") {
+// assert.Equal(t, expectedObj, actualObj)
+// }
+func NoErrorf(t TestingT, err error, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return NoError(t, err, append([]interface{}{msg}, args...)...)
+}
+
+// NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the
+// specified substring or element.
+//
+// assert.NotContainsf(t, "Hello World", "Earth", "error message %s", "formatted")
+// assert.NotContainsf(t, ["Hello", "World"], "Earth", "error message %s", "formatted")
+// assert.NotContainsf(t, {"Hello": "World"}, "Earth", "error message %s", "formatted")
+func NotContainsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotContains(t, s, contains, append([]interface{}{msg}, args...)...)
+}
+
+// NotEmptyf asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either
+// a slice or a channel with len == 0.
+//
+// if assert.NotEmptyf(t, obj, "error message %s", "formatted") {
+// assert.Equal(t, "two", obj[1])
+// }
+func NotEmptyf(t TestingT, object interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotEmpty(t, object, append([]interface{}{msg}, args...)...)
+}
+
+// NotEqualf asserts that the specified values are NOT equal.
+//
+// assert.NotEqualf(t, obj1, obj2, "error message %s", "formatted")
+//
+// Pointer variable equality is determined based on the equality of the
+// referenced values (as opposed to the memory addresses).
+func NotEqualf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotEqual(t, expected, actual, append([]interface{}{msg}, args...)...)
+}
+
+// NotNilf asserts that the specified object is not nil.
+//
+// assert.NotNilf(t, err, "error message %s", "formatted")
+func NotNilf(t TestingT, object interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotNil(t, object, append([]interface{}{msg}, args...)...)
+}
+
+// NotPanicsf asserts that the code inside the specified PanicTestFunc does NOT panic.
+//
+// assert.NotPanicsf(t, func(){ RemainCalm() }, "error message %s", "formatted")
+func NotPanicsf(t TestingT, f PanicTestFunc, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotPanics(t, f, append([]interface{}{msg}, args...)...)
+}
+
+// NotRegexpf asserts that a specified regexp does not match a string.
+//
+// assert.NotRegexpf(t, regexp.MustCompile("starts", "error message %s", "formatted"), "it's starting")
+// assert.NotRegexpf(t, "^start", "it's not starting", "error message %s", "formatted")
+func NotRegexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotRegexp(t, rx, str, append([]interface{}{msg}, args...)...)
+}
+
+// NotSubsetf asserts that the specified list(array, slice...) contains not all
+// elements given in the specified subset(array, slice...).
+//
+// assert.NotSubsetf(t, [1, 3, 4], [1, 2], "But [1, 3, 4] does not contain [1, 2]", "error message %s", "formatted")
+func NotSubsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotSubset(t, list, subset, append([]interface{}{msg}, args...)...)
+}
+
+// NotZerof asserts that i is not the zero value for its type.
+func NotZerof(t TestingT, i interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotZero(t, i, append([]interface{}{msg}, args...)...)
+}
+
+// Panicsf asserts that the code inside the specified PanicTestFunc panics.
+//
+// assert.Panicsf(t, func(){ GoCrazy() }, "error message %s", "formatted")
+func Panicsf(t TestingT, f PanicTestFunc, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return Panics(t, f, append([]interface{}{msg}, args...)...)
+}
+
+// PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that
+// the recovered panic value equals the expected panic value.
+//
+// assert.PanicsWithValuef(t, "crazy error", func(){ GoCrazy() }, "error message %s", "formatted")
+func PanicsWithValuef(t TestingT, expected interface{}, f PanicTestFunc, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return PanicsWithValue(t, expected, f, append([]interface{}{msg}, args...)...)
+}
+
+// Regexpf asserts that a specified regexp matches a string.
+//
+// assert.Regexpf(t, regexp.MustCompile("start", "error message %s", "formatted"), "it's starting")
+// assert.Regexpf(t, "start...$", "it's not starting", "error message %s", "formatted")
+func Regexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return Regexp(t, rx, str, append([]interface{}{msg}, args...)...)
+}
+
+// Subsetf asserts that the specified list(array, slice...) contains all
+// elements given in the specified subset(array, slice...).
+//
+// assert.Subsetf(t, [1, 2, 3], [1, 2], "But [1, 2, 3] does contain [1, 2]", "error message %s", "formatted")
+func Subsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return Subset(t, list, subset, append([]interface{}{msg}, args...)...)
+}
+
+// Truef asserts that the specified value is true.
+//
+// assert.Truef(t, myBool, "error message %s", "formatted")
+func Truef(t TestingT, value bool, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return True(t, value, append([]interface{}{msg}, args...)...)
+}
+
+// WithinDurationf asserts that the two times are within duration delta of each other.
+//
+// assert.WithinDurationf(t, time.Now(), time.Now(), 10*time.Second, "error message %s", "formatted")
+func WithinDurationf(t TestingT, expected time.Time, actual time.Time, delta time.Duration, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return WithinDuration(t, expected, actual, delta, append([]interface{}{msg}, args...)...)
+}
+
+// Zerof asserts that i is the zero value for its type.
+func Zerof(t TestingT, i interface{}, msg string, args ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ return Zero(t, i, append([]interface{}{msg}, args...)...)
+}
diff --git a/vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl b/vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl
new file mode 100644
index 0000000000..d2bb0b8177
--- /dev/null
+++ b/vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl
@@ -0,0 +1,5 @@
+{{.CommentFormat}}
+func {{.DocInfo.Name}}f(t TestingT, {{.ParamsFormat}}) bool {
+ if h, ok := t.(tHelper); ok { h.Helper() }
+ return {{.DocInfo.Name}}(t, {{.ForwardedParamsFormat}})
+}
diff --git a/vendor/github.com/stretchr/testify/assert/assertion_forward.go b/vendor/github.com/stretchr/testify/assert/assertion_forward.go
new file mode 100644
index 0000000000..de39f794e7
--- /dev/null
+++ b/vendor/github.com/stretchr/testify/assert/assertion_forward.go
@@ -0,0 +1,956 @@
+/*
+* CODE GENERATED AUTOMATICALLY WITH github.com/stretchr/testify/_codegen
+* THIS FILE MUST NOT BE EDITED BY HAND
+ */
+
+package assert
+
+import (
+ http "net/http"
+ url "net/url"
+ time "time"
+)
+
+// Condition uses a Comparison to assert a complex condition.
+func (a *Assertions) Condition(comp Comparison, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Condition(a.t, comp, msgAndArgs...)
+}
+
+// Conditionf uses a Comparison to assert a complex condition.
+func (a *Assertions) Conditionf(comp Comparison, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Conditionf(a.t, comp, msg, args...)
+}
+
+// Contains asserts that the specified string, list(array, slice...) or map contains the
+// specified substring or element.
+//
+// a.Contains("Hello World", "World")
+// a.Contains(["Hello", "World"], "World")
+// a.Contains({"Hello": "World"}, "Hello")
+func (a *Assertions) Contains(s interface{}, contains interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Contains(a.t, s, contains, msgAndArgs...)
+}
+
+// Containsf asserts that the specified string, list(array, slice...) or map contains the
+// specified substring or element.
+//
+// a.Containsf("Hello World", "World", "error message %s", "formatted")
+// a.Containsf(["Hello", "World"], "World", "error message %s", "formatted")
+// a.Containsf({"Hello": "World"}, "Hello", "error message %s", "formatted")
+func (a *Assertions) Containsf(s interface{}, contains interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Containsf(a.t, s, contains, msg, args...)
+}
+
+// DirExists checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists.
+func (a *Assertions) DirExists(path string, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return DirExists(a.t, path, msgAndArgs...)
+}
+
+// DirExistsf checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists.
+func (a *Assertions) DirExistsf(path string, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return DirExistsf(a.t, path, msg, args...)
+}
+
+// ElementsMatch asserts that the specified listA(array, slice...) is equal to specified
+// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements,
+// the number of appearances of each of them in both lists should match.
+//
+// a.ElementsMatch([1, 3, 2, 3], [1, 3, 3, 2])
+func (a *Assertions) ElementsMatch(listA interface{}, listB interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return ElementsMatch(a.t, listA, listB, msgAndArgs...)
+}
+
+// ElementsMatchf asserts that the specified listA(array, slice...) is equal to specified
+// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements,
+// the number of appearances of each of them in both lists should match.
+//
+// a.ElementsMatchf([1, 3, 2, 3], [1, 3, 3, 2], "error message %s", "formatted")
+func (a *Assertions) ElementsMatchf(listA interface{}, listB interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return ElementsMatchf(a.t, listA, listB, msg, args...)
+}
+
+// Empty asserts that the specified object is empty. I.e. nil, "", false, 0 or either
+// a slice or a channel with len == 0.
+//
+// a.Empty(obj)
+func (a *Assertions) Empty(object interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Empty(a.t, object, msgAndArgs...)
+}
+
+// Emptyf asserts that the specified object is empty. I.e. nil, "", false, 0 or either
+// a slice or a channel with len == 0.
+//
+// a.Emptyf(obj, "error message %s", "formatted")
+func (a *Assertions) Emptyf(object interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Emptyf(a.t, object, msg, args...)
+}
+
+// Equal asserts that two objects are equal.
+//
+// a.Equal(123, 123)
+//
+// Pointer variable equality is determined based on the equality of the
+// referenced values (as opposed to the memory addresses). Function equality
+// cannot be determined and will always fail.
+func (a *Assertions) Equal(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Equal(a.t, expected, actual, msgAndArgs...)
+}
+
+// EqualError asserts that a function returned an error (i.e. not `nil`)
+// and that it is equal to the provided error.
+//
+// actualObj, err := SomeFunction()
+// a.EqualError(err, expectedErrorString)
+func (a *Assertions) EqualError(theError error, errString string, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return EqualError(a.t, theError, errString, msgAndArgs...)
+}
+
+// EqualErrorf asserts that a function returned an error (i.e. not `nil`)
+// and that it is equal to the provided error.
+//
+// actualObj, err := SomeFunction()
+// a.EqualErrorf(err, expectedErrorString, "error message %s", "formatted")
+func (a *Assertions) EqualErrorf(theError error, errString string, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return EqualErrorf(a.t, theError, errString, msg, args...)
+}
+
+// EqualValues asserts that two objects are equal or convertable to the same types
+// and equal.
+//
+// a.EqualValues(uint32(123), int32(123))
+func (a *Assertions) EqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return EqualValues(a.t, expected, actual, msgAndArgs...)
+}
+
+// EqualValuesf asserts that two objects are equal or convertable to the same types
+// and equal.
+//
+// a.EqualValuesf(uint32(123, "error message %s", "formatted"), int32(123))
+func (a *Assertions) EqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return EqualValuesf(a.t, expected, actual, msg, args...)
+}
+
+// Equalf asserts that two objects are equal.
+//
+// a.Equalf(123, 123, "error message %s", "formatted")
+//
+// Pointer variable equality is determined based on the equality of the
+// referenced values (as opposed to the memory addresses). Function equality
+// cannot be determined and will always fail.
+func (a *Assertions) Equalf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Equalf(a.t, expected, actual, msg, args...)
+}
+
+// Error asserts that a function returned an error (i.e. not `nil`).
+//
+// actualObj, err := SomeFunction()
+// if a.Error(err) {
+// assert.Equal(t, expectedError, err)
+// }
+func (a *Assertions) Error(err error, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Error(a.t, err, msgAndArgs...)
+}
+
+// Errorf asserts that a function returned an error (i.e. not `nil`).
+//
+// actualObj, err := SomeFunction()
+// if a.Errorf(err, "error message %s", "formatted") {
+// assert.Equal(t, expectedErrorf, err)
+// }
+func (a *Assertions) Errorf(err error, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Errorf(a.t, err, msg, args...)
+}
+
+// Exactly asserts that two objects are equal in value and type.
+//
+// a.Exactly(int32(123), int64(123))
+func (a *Assertions) Exactly(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Exactly(a.t, expected, actual, msgAndArgs...)
+}
+
+// Exactlyf asserts that two objects are equal in value and type.
+//
+// a.Exactlyf(int32(123, "error message %s", "formatted"), int64(123))
+func (a *Assertions) Exactlyf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Exactlyf(a.t, expected, actual, msg, args...)
+}
+
+// Fail reports a failure through
+func (a *Assertions) Fail(failureMessage string, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Fail(a.t, failureMessage, msgAndArgs...)
+}
+
+// FailNow fails test
+func (a *Assertions) FailNow(failureMessage string, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return FailNow(a.t, failureMessage, msgAndArgs...)
+}
+
+// FailNowf fails test
+func (a *Assertions) FailNowf(failureMessage string, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return FailNowf(a.t, failureMessage, msg, args...)
+}
+
+// Failf reports a failure through
+func (a *Assertions) Failf(failureMessage string, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Failf(a.t, failureMessage, msg, args...)
+}
+
+// False asserts that the specified value is false.
+//
+// a.False(myBool)
+func (a *Assertions) False(value bool, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return False(a.t, value, msgAndArgs...)
+}
+
+// Falsef asserts that the specified value is false.
+//
+// a.Falsef(myBool, "error message %s", "formatted")
+func (a *Assertions) Falsef(value bool, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Falsef(a.t, value, msg, args...)
+}
+
+// FileExists checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file.
+func (a *Assertions) FileExists(path string, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return FileExists(a.t, path, msgAndArgs...)
+}
+
+// FileExistsf checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file.
+func (a *Assertions) FileExistsf(path string, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return FileExistsf(a.t, path, msg, args...)
+}
+
+// HTTPBodyContains asserts that a specified handler returns a
+// body that contains a string.
+//
+// a.HTTPBodyContains(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func (a *Assertions) HTTPBodyContains(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return HTTPBodyContains(a.t, handler, method, url, values, str, msgAndArgs...)
+}
+
+// HTTPBodyContainsf asserts that a specified handler returns a
+// body that contains a string.
+//
+// a.HTTPBodyContainsf(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func (a *Assertions) HTTPBodyContainsf(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return HTTPBodyContainsf(a.t, handler, method, url, values, str, msg, args...)
+}
+
+// HTTPBodyNotContains asserts that a specified handler returns a
+// body that does not contain a string.
+//
+// a.HTTPBodyNotContains(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func (a *Assertions) HTTPBodyNotContains(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return HTTPBodyNotContains(a.t, handler, method, url, values, str, msgAndArgs...)
+}
+
+// HTTPBodyNotContainsf asserts that a specified handler returns a
+// body that does not contain a string.
+//
+// a.HTTPBodyNotContainsf(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func (a *Assertions) HTTPBodyNotContainsf(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return HTTPBodyNotContainsf(a.t, handler, method, url, values, str, msg, args...)
+}
+
+// HTTPError asserts that a specified handler returns an error status code.
+//
+// a.HTTPError(myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}}
+//
+// Returns whether the assertion was successful (true) or not (false).
+func (a *Assertions) HTTPError(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return HTTPError(a.t, handler, method, url, values, msgAndArgs...)
+}
+
+// HTTPErrorf asserts that a specified handler returns an error status code.
+//
+// a.HTTPErrorf(myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}}
+//
+// Returns whether the assertion was successful (true, "error message %s", "formatted") or not (false).
+func (a *Assertions) HTTPErrorf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return HTTPErrorf(a.t, handler, method, url, values, msg, args...)
+}
+
+// HTTPRedirect asserts that a specified handler returns a redirect status code.
+//
+// a.HTTPRedirect(myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}}
+//
+// Returns whether the assertion was successful (true) or not (false).
+func (a *Assertions) HTTPRedirect(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return HTTPRedirect(a.t, handler, method, url, values, msgAndArgs...)
+}
+
+// HTTPRedirectf asserts that a specified handler returns a redirect status code.
+//
+// a.HTTPRedirectf(myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}}
+//
+// Returns whether the assertion was successful (true, "error message %s", "formatted") or not (false).
+func (a *Assertions) HTTPRedirectf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return HTTPRedirectf(a.t, handler, method, url, values, msg, args...)
+}
+
+// HTTPSuccess asserts that a specified handler returns a success status code.
+//
+// a.HTTPSuccess(myHandler, "POST", "http://www.google.com", nil)
+//
+// Returns whether the assertion was successful (true) or not (false).
+func (a *Assertions) HTTPSuccess(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return HTTPSuccess(a.t, handler, method, url, values, msgAndArgs...)
+}
+
+// HTTPSuccessf asserts that a specified handler returns a success status code.
+//
+// a.HTTPSuccessf(myHandler, "POST", "http://www.google.com", nil, "error message %s", "formatted")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func (a *Assertions) HTTPSuccessf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return HTTPSuccessf(a.t, handler, method, url, values, msg, args...)
+}
+
+// Implements asserts that an object is implemented by the specified interface.
+//
+// a.Implements((*MyInterface)(nil), new(MyObject))
+func (a *Assertions) Implements(interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Implements(a.t, interfaceObject, object, msgAndArgs...)
+}
+
+// Implementsf asserts that an object is implemented by the specified interface.
+//
+// a.Implementsf((*MyInterface, "error message %s", "formatted")(nil), new(MyObject))
+func (a *Assertions) Implementsf(interfaceObject interface{}, object interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Implementsf(a.t, interfaceObject, object, msg, args...)
+}
+
+// InDelta asserts that the two numerals are within delta of each other.
+//
+// a.InDelta(math.Pi, (22 / 7.0), 0.01)
+func (a *Assertions) InDelta(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return InDelta(a.t, expected, actual, delta, msgAndArgs...)
+}
+
+// InDeltaMapValues is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.
+func (a *Assertions) InDeltaMapValues(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return InDeltaMapValues(a.t, expected, actual, delta, msgAndArgs...)
+}
+
+// InDeltaMapValuesf is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.
+func (a *Assertions) InDeltaMapValuesf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return InDeltaMapValuesf(a.t, expected, actual, delta, msg, args...)
+}
+
+// InDeltaSlice is the same as InDelta, except it compares two slices.
+func (a *Assertions) InDeltaSlice(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return InDeltaSlice(a.t, expected, actual, delta, msgAndArgs...)
+}
+
+// InDeltaSlicef is the same as InDelta, except it compares two slices.
+func (a *Assertions) InDeltaSlicef(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return InDeltaSlicef(a.t, expected, actual, delta, msg, args...)
+}
+
+// InDeltaf asserts that the two numerals are within delta of each other.
+//
+// a.InDeltaf(math.Pi, (22 / 7.0, "error message %s", "formatted"), 0.01)
+func (a *Assertions) InDeltaf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return InDeltaf(a.t, expected, actual, delta, msg, args...)
+}
+
+// InEpsilon asserts that expected and actual have a relative error less than epsilon
+func (a *Assertions) InEpsilon(expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return InEpsilon(a.t, expected, actual, epsilon, msgAndArgs...)
+}
+
+// InEpsilonSlice is the same as InEpsilon, except it compares each value from two slices.
+func (a *Assertions) InEpsilonSlice(expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return InEpsilonSlice(a.t, expected, actual, epsilon, msgAndArgs...)
+}
+
+// InEpsilonSlicef is the same as InEpsilon, except it compares each value from two slices.
+func (a *Assertions) InEpsilonSlicef(expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return InEpsilonSlicef(a.t, expected, actual, epsilon, msg, args...)
+}
+
+// InEpsilonf asserts that expected and actual have a relative error less than epsilon
+func (a *Assertions) InEpsilonf(expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return InEpsilonf(a.t, expected, actual, epsilon, msg, args...)
+}
+
+// IsType asserts that the specified objects are of the same type.
+func (a *Assertions) IsType(expectedType interface{}, object interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return IsType(a.t, expectedType, object, msgAndArgs...)
+}
+
+// IsTypef asserts that the specified objects are of the same type.
+func (a *Assertions) IsTypef(expectedType interface{}, object interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return IsTypef(a.t, expectedType, object, msg, args...)
+}
+
+// JSONEq asserts that two JSON strings are equivalent.
+//
+// a.JSONEq(`{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`)
+func (a *Assertions) JSONEq(expected string, actual string, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return JSONEq(a.t, expected, actual, msgAndArgs...)
+}
+
+// JSONEqf asserts that two JSON strings are equivalent.
+//
+// a.JSONEqf(`{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`, "error message %s", "formatted")
+func (a *Assertions) JSONEqf(expected string, actual string, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return JSONEqf(a.t, expected, actual, msg, args...)
+}
+
+// Len asserts that the specified object has specific length.
+// Len also fails if the object has a type that len() not accept.
+//
+// a.Len(mySlice, 3)
+func (a *Assertions) Len(object interface{}, length int, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Len(a.t, object, length, msgAndArgs...)
+}
+
+// Lenf asserts that the specified object has specific length.
+// Lenf also fails if the object has a type that len() not accept.
+//
+// a.Lenf(mySlice, 3, "error message %s", "formatted")
+func (a *Assertions) Lenf(object interface{}, length int, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Lenf(a.t, object, length, msg, args...)
+}
+
+// Nil asserts that the specified object is nil.
+//
+// a.Nil(err)
+func (a *Assertions) Nil(object interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Nil(a.t, object, msgAndArgs...)
+}
+
+// Nilf asserts that the specified object is nil.
+//
+// a.Nilf(err, "error message %s", "formatted")
+func (a *Assertions) Nilf(object interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Nilf(a.t, object, msg, args...)
+}
+
+// NoError asserts that a function returned no error (i.e. `nil`).
+//
+// actualObj, err := SomeFunction()
+// if a.NoError(err) {
+// assert.Equal(t, expectedObj, actualObj)
+// }
+func (a *Assertions) NoError(err error, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return NoError(a.t, err, msgAndArgs...)
+}
+
+// NoErrorf asserts that a function returned no error (i.e. `nil`).
+//
+// actualObj, err := SomeFunction()
+// if a.NoErrorf(err, "error message %s", "formatted") {
+// assert.Equal(t, expectedObj, actualObj)
+// }
+func (a *Assertions) NoErrorf(err error, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return NoErrorf(a.t, err, msg, args...)
+}
+
+// NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the
+// specified substring or element.
+//
+// a.NotContains("Hello World", "Earth")
+// a.NotContains(["Hello", "World"], "Earth")
+// a.NotContains({"Hello": "World"}, "Earth")
+func (a *Assertions) NotContains(s interface{}, contains interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotContains(a.t, s, contains, msgAndArgs...)
+}
+
+// NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the
+// specified substring or element.
+//
+// a.NotContainsf("Hello World", "Earth", "error message %s", "formatted")
+// a.NotContainsf(["Hello", "World"], "Earth", "error message %s", "formatted")
+// a.NotContainsf({"Hello": "World"}, "Earth", "error message %s", "formatted")
+func (a *Assertions) NotContainsf(s interface{}, contains interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotContainsf(a.t, s, contains, msg, args...)
+}
+
+// NotEmpty asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either
+// a slice or a channel with len == 0.
+//
+// if a.NotEmpty(obj) {
+// assert.Equal(t, "two", obj[1])
+// }
+func (a *Assertions) NotEmpty(object interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotEmpty(a.t, object, msgAndArgs...)
+}
+
+// NotEmptyf asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either
+// a slice or a channel with len == 0.
+//
+// if a.NotEmptyf(obj, "error message %s", "formatted") {
+// assert.Equal(t, "two", obj[1])
+// }
+func (a *Assertions) NotEmptyf(object interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotEmptyf(a.t, object, msg, args...)
+}
+
+// NotEqual asserts that the specified values are NOT equal.
+//
+// a.NotEqual(obj1, obj2)
+//
+// Pointer variable equality is determined based on the equality of the
+// referenced values (as opposed to the memory addresses).
+func (a *Assertions) NotEqual(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotEqual(a.t, expected, actual, msgAndArgs...)
+}
+
+// NotEqualf asserts that the specified values are NOT equal.
+//
+// a.NotEqualf(obj1, obj2, "error message %s", "formatted")
+//
+// Pointer variable equality is determined based on the equality of the
+// referenced values (as opposed to the memory addresses).
+func (a *Assertions) NotEqualf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotEqualf(a.t, expected, actual, msg, args...)
+}
+
+// NotNil asserts that the specified object is not nil.
+//
+// a.NotNil(err)
+func (a *Assertions) NotNil(object interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotNil(a.t, object, msgAndArgs...)
+}
+
+// NotNilf asserts that the specified object is not nil.
+//
+// a.NotNilf(err, "error message %s", "formatted")
+func (a *Assertions) NotNilf(object interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotNilf(a.t, object, msg, args...)
+}
+
+// NotPanics asserts that the code inside the specified PanicTestFunc does NOT panic.
+//
+// a.NotPanics(func(){ RemainCalm() })
+func (a *Assertions) NotPanics(f PanicTestFunc, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotPanics(a.t, f, msgAndArgs...)
+}
+
+// NotPanicsf asserts that the code inside the specified PanicTestFunc does NOT panic.
+//
+// a.NotPanicsf(func(){ RemainCalm() }, "error message %s", "formatted")
+func (a *Assertions) NotPanicsf(f PanicTestFunc, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotPanicsf(a.t, f, msg, args...)
+}
+
+// NotRegexp asserts that a specified regexp does not match a string.
+//
+// a.NotRegexp(regexp.MustCompile("starts"), "it's starting")
+// a.NotRegexp("^start", "it's not starting")
+func (a *Assertions) NotRegexp(rx interface{}, str interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotRegexp(a.t, rx, str, msgAndArgs...)
+}
+
+// NotRegexpf asserts that a specified regexp does not match a string.
+//
+// a.NotRegexpf(regexp.MustCompile("starts", "error message %s", "formatted"), "it's starting")
+// a.NotRegexpf("^start", "it's not starting", "error message %s", "formatted")
+func (a *Assertions) NotRegexpf(rx interface{}, str interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotRegexpf(a.t, rx, str, msg, args...)
+}
+
+// NotSubset asserts that the specified list(array, slice...) contains not all
+// elements given in the specified subset(array, slice...).
+//
+// a.NotSubset([1, 3, 4], [1, 2], "But [1, 3, 4] does not contain [1, 2]")
+func (a *Assertions) NotSubset(list interface{}, subset interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotSubset(a.t, list, subset, msgAndArgs...)
+}
+
+// NotSubsetf asserts that the specified list(array, slice...) contains not all
+// elements given in the specified subset(array, slice...).
+//
+// a.NotSubsetf([1, 3, 4], [1, 2], "But [1, 3, 4] does not contain [1, 2]", "error message %s", "formatted")
+func (a *Assertions) NotSubsetf(list interface{}, subset interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotSubsetf(a.t, list, subset, msg, args...)
+}
+
+// NotZero asserts that i is not the zero value for its type.
+func (a *Assertions) NotZero(i interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotZero(a.t, i, msgAndArgs...)
+}
+
+// NotZerof asserts that i is not the zero value for its type.
+func (a *Assertions) NotZerof(i interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return NotZerof(a.t, i, msg, args...)
+}
+
+// Panics asserts that the code inside the specified PanicTestFunc panics.
+//
+// a.Panics(func(){ GoCrazy() })
+func (a *Assertions) Panics(f PanicTestFunc, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Panics(a.t, f, msgAndArgs...)
+}
+
+// PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that
+// the recovered panic value equals the expected panic value.
+//
+// a.PanicsWithValue("crazy error", func(){ GoCrazy() })
+func (a *Assertions) PanicsWithValue(expected interface{}, f PanicTestFunc, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return PanicsWithValue(a.t, expected, f, msgAndArgs...)
+}
+
+// PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that
+// the recovered panic value equals the expected panic value.
+//
+// a.PanicsWithValuef("crazy error", func(){ GoCrazy() }, "error message %s", "formatted")
+func (a *Assertions) PanicsWithValuef(expected interface{}, f PanicTestFunc, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return PanicsWithValuef(a.t, expected, f, msg, args...)
+}
+
+// Panicsf asserts that the code inside the specified PanicTestFunc panics.
+//
+// a.Panicsf(func(){ GoCrazy() }, "error message %s", "formatted")
+func (a *Assertions) Panicsf(f PanicTestFunc, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Panicsf(a.t, f, msg, args...)
+}
+
+// Regexp asserts that a specified regexp matches a string.
+//
+// a.Regexp(regexp.MustCompile("start"), "it's starting")
+// a.Regexp("start...$", "it's not starting")
+func (a *Assertions) Regexp(rx interface{}, str interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Regexp(a.t, rx, str, msgAndArgs...)
+}
+
+// Regexpf asserts that a specified regexp matches a string.
+//
+// a.Regexpf(regexp.MustCompile("start", "error message %s", "formatted"), "it's starting")
+// a.Regexpf("start...$", "it's not starting", "error message %s", "formatted")
+func (a *Assertions) Regexpf(rx interface{}, str interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Regexpf(a.t, rx, str, msg, args...)
+}
+
+// Subset asserts that the specified list(array, slice...) contains all
+// elements given in the specified subset(array, slice...).
+//
+// a.Subset([1, 2, 3], [1, 2], "But [1, 2, 3] does contain [1, 2]")
+func (a *Assertions) Subset(list interface{}, subset interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Subset(a.t, list, subset, msgAndArgs...)
+}
+
+// Subsetf asserts that the specified list(array, slice...) contains all
+// elements given in the specified subset(array, slice...).
+//
+// a.Subsetf([1, 2, 3], [1, 2], "But [1, 2, 3] does contain [1, 2]", "error message %s", "formatted")
+func (a *Assertions) Subsetf(list interface{}, subset interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Subsetf(a.t, list, subset, msg, args...)
+}
+
+// True asserts that the specified value is true.
+//
+// a.True(myBool)
+func (a *Assertions) True(value bool, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return True(a.t, value, msgAndArgs...)
+}
+
+// Truef asserts that the specified value is true.
+//
+// a.Truef(myBool, "error message %s", "formatted")
+func (a *Assertions) Truef(value bool, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Truef(a.t, value, msg, args...)
+}
+
+// WithinDuration asserts that the two times are within duration delta of each other.
+//
+// a.WithinDuration(time.Now(), time.Now(), 10*time.Second)
+func (a *Assertions) WithinDuration(expected time.Time, actual time.Time, delta time.Duration, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return WithinDuration(a.t, expected, actual, delta, msgAndArgs...)
+}
+
+// WithinDurationf asserts that the two times are within duration delta of each other.
+//
+// a.WithinDurationf(time.Now(), time.Now(), 10*time.Second, "error message %s", "formatted")
+func (a *Assertions) WithinDurationf(expected time.Time, actual time.Time, delta time.Duration, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return WithinDurationf(a.t, expected, actual, delta, msg, args...)
+}
+
+// Zero asserts that i is the zero value for its type.
+func (a *Assertions) Zero(i interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Zero(a.t, i, msgAndArgs...)
+}
+
+// Zerof asserts that i is the zero value for its type.
+func (a *Assertions) Zerof(i interface{}, msg string, args ...interface{}) bool {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ return Zerof(a.t, i, msg, args...)
+}
diff --git a/vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl b/vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl
new file mode 100644
index 0000000000..188bb9e174
--- /dev/null
+++ b/vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl
@@ -0,0 +1,5 @@
+{{.CommentWithoutT "a"}}
+func (a *Assertions) {{.DocInfo.Name}}({{.Params}}) bool {
+ if h, ok := a.t.(tHelper); ok { h.Helper() }
+ return {{.DocInfo.Name}}(a.t, {{.ForwardedParams}})
+}
diff --git a/vendor/github.com/stretchr/testify/assert/assertions.go b/vendor/github.com/stretchr/testify/assert/assertions.go
new file mode 100644
index 0000000000..9bd4a80e48
--- /dev/null
+++ b/vendor/github.com/stretchr/testify/assert/assertions.go
@@ -0,0 +1,1416 @@
+package assert
+
+import (
+ "bufio"
+ "bytes"
+ "encoding/json"
+ "errors"
+ "fmt"
+ "math"
+ "os"
+ "reflect"
+ "regexp"
+ "runtime"
+ "strings"
+ "time"
+ "unicode"
+ "unicode/utf8"
+
+ "github.com/davecgh/go-spew/spew"
+ "github.com/pmezard/go-difflib/difflib"
+)
+
+//go:generate go run ../_codegen/main.go -output-package=assert -template=assertion_format.go.tmpl
+
+// TestingT is an interface wrapper around *testing.T
+type TestingT interface {
+ Errorf(format string, args ...interface{})
+}
+
+// ComparisonAssertionFunc is a common function prototype when comparing two values. Can be useful
+// for table driven tests.
+type ComparisonAssertionFunc func(TestingT, interface{}, interface{}, ...interface{}) bool
+
+// ValueAssertionFunc is a common function prototype when validating a single value. Can be useful
+// for table driven tests.
+type ValueAssertionFunc func(TestingT, interface{}, ...interface{}) bool
+
+// BoolAssertionFunc is a common function prototype when validating a bool value. Can be useful
+// for table driven tests.
+type BoolAssertionFunc func(TestingT, bool, ...interface{}) bool
+
+// ErrorAssertionFunc is a common function prototype when validating an error value. Can be useful
+// for table driven tests.
+type ErrorAssertionFunc func(TestingT, error, ...interface{}) bool
+
+// Comparison a custom function that returns true on success and false on failure
+type Comparison func() (success bool)
+
+/*
+ Helper functions
+*/
+
+// ObjectsAreEqual determines if two objects are considered equal.
+//
+// This function does no assertion of any kind.
+func ObjectsAreEqual(expected, actual interface{}) bool {
+ if expected == nil || actual == nil {
+ return expected == actual
+ }
+
+ exp, ok := expected.([]byte)
+ if !ok {
+ return reflect.DeepEqual(expected, actual)
+ }
+
+ act, ok := actual.([]byte)
+ if !ok {
+ return false
+ }
+ if exp == nil || act == nil {
+ return exp == nil && act == nil
+ }
+ return bytes.Equal(exp, act)
+}
+
+// ObjectsAreEqualValues gets whether two objects are equal, or if their
+// values are equal.
+func ObjectsAreEqualValues(expected, actual interface{}) bool {
+ if ObjectsAreEqual(expected, actual) {
+ return true
+ }
+
+ actualType := reflect.TypeOf(actual)
+ if actualType == nil {
+ return false
+ }
+ expectedValue := reflect.ValueOf(expected)
+ if expectedValue.IsValid() && expectedValue.Type().ConvertibleTo(actualType) {
+ // Attempt comparison after type conversion
+ return reflect.DeepEqual(expectedValue.Convert(actualType).Interface(), actual)
+ }
+
+ return false
+}
+
+/* CallerInfo is necessary because the assert functions use the testing object
+internally, causing it to print the file:line of the assert method, rather than where
+the problem actually occurred in calling code.*/
+
+// CallerInfo returns an array of strings containing the file and line number
+// of each stack frame leading from the current test to the assert call that
+// failed.
+func CallerInfo() []string {
+
+ pc := uintptr(0)
+ file := ""
+ line := 0
+ ok := false
+ name := ""
+
+ callers := []string{}
+ for i := 0; ; i++ {
+ pc, file, line, ok = runtime.Caller(i)
+ if !ok {
+ // The breaks below failed to terminate the loop, and we ran off the
+ // end of the call stack.
+ break
+ }
+
+ // This is a huge edge case, but it will panic if this is the case, see #180
+ if file == "" {
+ break
+ }
+
+ f := runtime.FuncForPC(pc)
+ if f == nil {
+ break
+ }
+ name = f.Name()
+
+ // testing.tRunner is the standard library function that calls
+ // tests. Subtests are called directly by tRunner, without going through
+ // the Test/Benchmark/Example function that contains the t.Run calls, so
+ // with subtests we should break when we hit tRunner, without adding it
+ // to the list of callers.
+ if name == "testing.tRunner" {
+ break
+ }
+
+ parts := strings.Split(file, "/")
+ file = parts[len(parts)-1]
+ if len(parts) > 1 {
+ dir := parts[len(parts)-2]
+ if (dir != "assert" && dir != "mock" && dir != "require") || file == "mock_test.go" {
+ callers = append(callers, fmt.Sprintf("%s:%d", file, line))
+ }
+ }
+
+ // Drop the package
+ segments := strings.Split(name, ".")
+ name = segments[len(segments)-1]
+ if isTest(name, "Test") ||
+ isTest(name, "Benchmark") ||
+ isTest(name, "Example") {
+ break
+ }
+ }
+
+ return callers
+}
+
+// Stolen from the `go test` tool.
+// isTest tells whether name looks like a test (or benchmark, according to prefix).
+// It is a Test (say) if there is a character after Test that is not a lower-case letter.
+// We don't want TesticularCancer.
+func isTest(name, prefix string) bool {
+ if !strings.HasPrefix(name, prefix) {
+ return false
+ }
+ if len(name) == len(prefix) { // "Test" is ok
+ return true
+ }
+ rune, _ := utf8.DecodeRuneInString(name[len(prefix):])
+ return !unicode.IsLower(rune)
+}
+
+func messageFromMsgAndArgs(msgAndArgs ...interface{}) string {
+ if len(msgAndArgs) == 0 || msgAndArgs == nil {
+ return ""
+ }
+ if len(msgAndArgs) == 1 {
+ msg := msgAndArgs[0]
+ if msgAsStr, ok := msg.(string); ok {
+ return msgAsStr
+ }
+ return fmt.Sprintf("%+v", msg)
+ }
+ if len(msgAndArgs) > 1 {
+ return fmt.Sprintf(msgAndArgs[0].(string), msgAndArgs[1:]...)
+ }
+ return ""
+}
+
+// Aligns the provided message so that all lines after the first line start at the same location as the first line.
+// Assumes that the first line starts at the correct location (after carriage return, tab, label, spacer and tab).
+// The longestLabelLen parameter specifies the length of the longest label in the output (required becaues this is the
+// basis on which the alignment occurs).
+func indentMessageLines(message string, longestLabelLen int) string {
+ outBuf := new(bytes.Buffer)
+
+ for i, scanner := 0, bufio.NewScanner(strings.NewReader(message)); scanner.Scan(); i++ {
+ // no need to align first line because it starts at the correct location (after the label)
+ if i != 0 {
+ // append alignLen+1 spaces to align with "{{longestLabel}}:" before adding tab
+ outBuf.WriteString("\n\t" + strings.Repeat(" ", longestLabelLen+1) + "\t")
+ }
+ outBuf.WriteString(scanner.Text())
+ }
+
+ return outBuf.String()
+}
+
+type failNower interface {
+ FailNow()
+}
+
+// FailNow fails test
+func FailNow(t TestingT, failureMessage string, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ Fail(t, failureMessage, msgAndArgs...)
+
+ // We cannot extend TestingT with FailNow() and
+ // maintain backwards compatibility, so we fallback
+ // to panicking when FailNow is not available in
+ // TestingT.
+ // See issue #263
+
+ if t, ok := t.(failNower); ok {
+ t.FailNow()
+ } else {
+ panic("test failed and t is missing `FailNow()`")
+ }
+ return false
+}
+
+// Fail reports a failure through
+func Fail(t TestingT, failureMessage string, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ content := []labeledContent{
+ {"Error Trace", strings.Join(CallerInfo(), "\n\t\t\t")},
+ {"Error", failureMessage},
+ }
+
+ // Add test name if the Go version supports it
+ if n, ok := t.(interface {
+ Name() string
+ }); ok {
+ content = append(content, labeledContent{"Test", n.Name()})
+ }
+
+ message := messageFromMsgAndArgs(msgAndArgs...)
+ if len(message) > 0 {
+ content = append(content, labeledContent{"Messages", message})
+ }
+
+ t.Errorf("\n%s", ""+labeledOutput(content...))
+
+ return false
+}
+
+type labeledContent struct {
+ label string
+ content string
+}
+
+// labeledOutput returns a string consisting of the provided labeledContent. Each labeled output is appended in the following manner:
+//
+// \t{{label}}:{{align_spaces}}\t{{content}}\n
+//
+// The initial carriage return is required to undo/erase any padding added by testing.T.Errorf. The "\t{{label}}:" is for the label.
+// If a label is shorter than the longest label provided, padding spaces are added to make all the labels match in length. Once this
+// alignment is achieved, "\t{{content}}\n" is added for the output.
+//
+// If the content of the labeledOutput contains line breaks, the subsequent lines are aligned so that they start at the same location as the first line.
+func labeledOutput(content ...labeledContent) string {
+ longestLabel := 0
+ for _, v := range content {
+ if len(v.label) > longestLabel {
+ longestLabel = len(v.label)
+ }
+ }
+ var output string
+ for _, v := range content {
+ output += "\t" + v.label + ":" + strings.Repeat(" ", longestLabel-len(v.label)) + "\t" + indentMessageLines(v.content, longestLabel) + "\n"
+ }
+ return output
+}
+
+// Implements asserts that an object is implemented by the specified interface.
+//
+// assert.Implements(t, (*MyInterface)(nil), new(MyObject))
+func Implements(t TestingT, interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ interfaceType := reflect.TypeOf(interfaceObject).Elem()
+
+ if object == nil {
+ return Fail(t, fmt.Sprintf("Cannot check if nil implements %v", interfaceType), msgAndArgs...)
+ }
+ if !reflect.TypeOf(object).Implements(interfaceType) {
+ return Fail(t, fmt.Sprintf("%T must implement %v", object, interfaceType), msgAndArgs...)
+ }
+
+ return true
+}
+
+// IsType asserts that the specified objects are of the same type.
+func IsType(t TestingT, expectedType interface{}, object interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+
+ if !ObjectsAreEqual(reflect.TypeOf(object), reflect.TypeOf(expectedType)) {
+ return Fail(t, fmt.Sprintf("Object expected to be of type %v, but was %v", reflect.TypeOf(expectedType), reflect.TypeOf(object)), msgAndArgs...)
+ }
+
+ return true
+}
+
+// Equal asserts that two objects are equal.
+//
+// assert.Equal(t, 123, 123)
+//
+// Pointer variable equality is determined based on the equality of the
+// referenced values (as opposed to the memory addresses). Function equality
+// cannot be determined and will always fail.
+func Equal(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ if err := validateEqualArgs(expected, actual); err != nil {
+ return Fail(t, fmt.Sprintf("Invalid operation: %#v == %#v (%s)",
+ expected, actual, err), msgAndArgs...)
+ }
+
+ if !ObjectsAreEqual(expected, actual) {
+ diff := diff(expected, actual)
+ expected, actual = formatUnequalValues(expected, actual)
+ return Fail(t, fmt.Sprintf("Not equal: \n"+
+ "expected: %s\n"+
+ "actual : %s%s", expected, actual, diff), msgAndArgs...)
+ }
+
+ return true
+
+}
+
+// formatUnequalValues takes two values of arbitrary types and returns string
+// representations appropriate to be presented to the user.
+//
+// If the values are not of like type, the returned strings will be prefixed
+// with the type name, and the value will be enclosed in parenthesis similar
+// to a type conversion in the Go grammar.
+func formatUnequalValues(expected, actual interface{}) (e string, a string) {
+ if reflect.TypeOf(expected) != reflect.TypeOf(actual) {
+ return fmt.Sprintf("%T(%#v)", expected, expected),
+ fmt.Sprintf("%T(%#v)", actual, actual)
+ }
+
+ return fmt.Sprintf("%#v", expected),
+ fmt.Sprintf("%#v", actual)
+}
+
+// EqualValues asserts that two objects are equal or convertable to the same types
+// and equal.
+//
+// assert.EqualValues(t, uint32(123), int32(123))
+func EqualValues(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+
+ if !ObjectsAreEqualValues(expected, actual) {
+ diff := diff(expected, actual)
+ expected, actual = formatUnequalValues(expected, actual)
+ return Fail(t, fmt.Sprintf("Not equal: \n"+
+ "expected: %s\n"+
+ "actual : %s%s", expected, actual, diff), msgAndArgs...)
+ }
+
+ return true
+
+}
+
+// Exactly asserts that two objects are equal in value and type.
+//
+// assert.Exactly(t, int32(123), int64(123))
+func Exactly(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+
+ aType := reflect.TypeOf(expected)
+ bType := reflect.TypeOf(actual)
+
+ if aType != bType {
+ return Fail(t, fmt.Sprintf("Types expected to match exactly\n\t%v != %v", aType, bType), msgAndArgs...)
+ }
+
+ return Equal(t, expected, actual, msgAndArgs...)
+
+}
+
+// NotNil asserts that the specified object is not nil.
+//
+// assert.NotNil(t, err)
+func NotNil(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ if !isNil(object) {
+ return true
+ }
+ return Fail(t, "Expected value not to be nil.", msgAndArgs...)
+}
+
+// containsKind checks if a specified kind in the slice of kinds.
+func containsKind(kinds []reflect.Kind, kind reflect.Kind) bool {
+ for i := 0; i < len(kinds); i++ {
+ if kind == kinds[i] {
+ return true
+ }
+ }
+
+ return false
+}
+
+// isNil checks if a specified object is nil or not, without Failing.
+func isNil(object interface{}) bool {
+ if object == nil {
+ return true
+ }
+
+ value := reflect.ValueOf(object)
+ kind := value.Kind()
+ isNilableKind := containsKind(
+ []reflect.Kind{
+ reflect.Chan, reflect.Func,
+ reflect.Interface, reflect.Map,
+ reflect.Ptr, reflect.Slice},
+ kind)
+
+ if isNilableKind && value.IsNil() {
+ return true
+ }
+
+ return false
+}
+
+// Nil asserts that the specified object is nil.
+//
+// assert.Nil(t, err)
+func Nil(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ if isNil(object) {
+ return true
+ }
+ return Fail(t, fmt.Sprintf("Expected nil, but got: %#v", object), msgAndArgs...)
+}
+
+// isEmpty gets whether the specified object is considered empty or not.
+func isEmpty(object interface{}) bool {
+
+ // get nil case out of the way
+ if object == nil {
+ return true
+ }
+
+ objValue := reflect.ValueOf(object)
+
+ switch objValue.Kind() {
+ // collection types are empty when they have no element
+ case reflect.Array, reflect.Chan, reflect.Map, reflect.Slice:
+ return objValue.Len() == 0
+ // pointers are empty if nil or if the value they point to is empty
+ case reflect.Ptr:
+ if objValue.IsNil() {
+ return true
+ }
+ deref := objValue.Elem().Interface()
+ return isEmpty(deref)
+ // for all other types, compare against the zero value
+ default:
+ zero := reflect.Zero(objValue.Type())
+ return reflect.DeepEqual(object, zero.Interface())
+ }
+}
+
+// Empty asserts that the specified object is empty. I.e. nil, "", false, 0 or either
+// a slice or a channel with len == 0.
+//
+// assert.Empty(t, obj)
+func Empty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+
+ pass := isEmpty(object)
+ if !pass {
+ Fail(t, fmt.Sprintf("Should be empty, but was %v", object), msgAndArgs...)
+ }
+
+ return pass
+
+}
+
+// NotEmpty asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either
+// a slice or a channel with len == 0.
+//
+// if assert.NotEmpty(t, obj) {
+// assert.Equal(t, "two", obj[1])
+// }
+func NotEmpty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+
+ pass := !isEmpty(object)
+ if !pass {
+ Fail(t, fmt.Sprintf("Should NOT be empty, but was %v", object), msgAndArgs...)
+ }
+
+ return pass
+
+}
+
+// getLen try to get length of object.
+// return (false, 0) if impossible.
+func getLen(x interface{}) (ok bool, length int) {
+ v := reflect.ValueOf(x)
+ defer func() {
+ if e := recover(); e != nil {
+ ok = false
+ }
+ }()
+ return true, v.Len()
+}
+
+// Len asserts that the specified object has specific length.
+// Len also fails if the object has a type that len() not accept.
+//
+// assert.Len(t, mySlice, 3)
+func Len(t TestingT, object interface{}, length int, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ ok, l := getLen(object)
+ if !ok {
+ return Fail(t, fmt.Sprintf("\"%s\" could not be applied builtin len()", object), msgAndArgs...)
+ }
+
+ if l != length {
+ return Fail(t, fmt.Sprintf("\"%s\" should have %d item(s), but has %d", object, length, l), msgAndArgs...)
+ }
+ return true
+}
+
+// True asserts that the specified value is true.
+//
+// assert.True(t, myBool)
+func True(t TestingT, value bool, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ if h, ok := t.(interface {
+ Helper()
+ }); ok {
+ h.Helper()
+ }
+
+ if value != true {
+ return Fail(t, "Should be true", msgAndArgs...)
+ }
+
+ return true
+
+}
+
+// False asserts that the specified value is false.
+//
+// assert.False(t, myBool)
+func False(t TestingT, value bool, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+
+ if value != false {
+ return Fail(t, "Should be false", msgAndArgs...)
+ }
+
+ return true
+
+}
+
+// NotEqual asserts that the specified values are NOT equal.
+//
+// assert.NotEqual(t, obj1, obj2)
+//
+// Pointer variable equality is determined based on the equality of the
+// referenced values (as opposed to the memory addresses).
+func NotEqual(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ if err := validateEqualArgs(expected, actual); err != nil {
+ return Fail(t, fmt.Sprintf("Invalid operation: %#v != %#v (%s)",
+ expected, actual, err), msgAndArgs...)
+ }
+
+ if ObjectsAreEqual(expected, actual) {
+ return Fail(t, fmt.Sprintf("Should not be: %#v\n", actual), msgAndArgs...)
+ }
+
+ return true
+
+}
+
+// containsElement try loop over the list check if the list includes the element.
+// return (false, false) if impossible.
+// return (true, false) if element was not found.
+// return (true, true) if element was found.
+func includeElement(list interface{}, element interface{}) (ok, found bool) {
+
+ listValue := reflect.ValueOf(list)
+ elementValue := reflect.ValueOf(element)
+ defer func() {
+ if e := recover(); e != nil {
+ ok = false
+ found = false
+ }
+ }()
+
+ if reflect.TypeOf(list).Kind() == reflect.String {
+ return true, strings.Contains(listValue.String(), elementValue.String())
+ }
+
+ if reflect.TypeOf(list).Kind() == reflect.Map {
+ mapKeys := listValue.MapKeys()
+ for i := 0; i < len(mapKeys); i++ {
+ if ObjectsAreEqual(mapKeys[i].Interface(), element) {
+ return true, true
+ }
+ }
+ return true, false
+ }
+
+ for i := 0; i < listValue.Len(); i++ {
+ if ObjectsAreEqual(listValue.Index(i).Interface(), element) {
+ return true, true
+ }
+ }
+ return true, false
+
+}
+
+// Contains asserts that the specified string, list(array, slice...) or map contains the
+// specified substring or element.
+//
+// assert.Contains(t, "Hello World", "World")
+// assert.Contains(t, ["Hello", "World"], "World")
+// assert.Contains(t, {"Hello": "World"}, "Hello")
+func Contains(t TestingT, s, contains interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+
+ ok, found := includeElement(s, contains)
+ if !ok {
+ return Fail(t, fmt.Sprintf("\"%s\" could not be applied builtin len()", s), msgAndArgs...)
+ }
+ if !found {
+ return Fail(t, fmt.Sprintf("\"%s\" does not contain \"%s\"", s, contains), msgAndArgs...)
+ }
+
+ return true
+
+}
+
+// NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the
+// specified substring or element.
+//
+// assert.NotContains(t, "Hello World", "Earth")
+// assert.NotContains(t, ["Hello", "World"], "Earth")
+// assert.NotContains(t, {"Hello": "World"}, "Earth")
+func NotContains(t TestingT, s, contains interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+
+ ok, found := includeElement(s, contains)
+ if !ok {
+ return Fail(t, fmt.Sprintf("\"%s\" could not be applied builtin len()", s), msgAndArgs...)
+ }
+ if found {
+ return Fail(t, fmt.Sprintf("\"%s\" should not contain \"%s\"", s, contains), msgAndArgs...)
+ }
+
+ return true
+
+}
+
+// Subset asserts that the specified list(array, slice...) contains all
+// elements given in the specified subset(array, slice...).
+//
+// assert.Subset(t, [1, 2, 3], [1, 2], "But [1, 2, 3] does contain [1, 2]")
+func Subset(t TestingT, list, subset interface{}, msgAndArgs ...interface{}) (ok bool) {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ if subset == nil {
+ return true // we consider nil to be equal to the nil set
+ }
+
+ subsetValue := reflect.ValueOf(subset)
+ defer func() {
+ if e := recover(); e != nil {
+ ok = false
+ }
+ }()
+
+ listKind := reflect.TypeOf(list).Kind()
+ subsetKind := reflect.TypeOf(subset).Kind()
+
+ if listKind != reflect.Array && listKind != reflect.Slice {
+ return Fail(t, fmt.Sprintf("%q has an unsupported type %s", list, listKind), msgAndArgs...)
+ }
+
+ if subsetKind != reflect.Array && subsetKind != reflect.Slice {
+ return Fail(t, fmt.Sprintf("%q has an unsupported type %s", subset, subsetKind), msgAndArgs...)
+ }
+
+ for i := 0; i < subsetValue.Len(); i++ {
+ element := subsetValue.Index(i).Interface()
+ ok, found := includeElement(list, element)
+ if !ok {
+ return Fail(t, fmt.Sprintf("\"%s\" could not be applied builtin len()", list), msgAndArgs...)
+ }
+ if !found {
+ return Fail(t, fmt.Sprintf("\"%s\" does not contain \"%s\"", list, element), msgAndArgs...)
+ }
+ }
+
+ return true
+}
+
+// NotSubset asserts that the specified list(array, slice...) contains not all
+// elements given in the specified subset(array, slice...).
+//
+// assert.NotSubset(t, [1, 3, 4], [1, 2], "But [1, 3, 4] does not contain [1, 2]")
+func NotSubset(t TestingT, list, subset interface{}, msgAndArgs ...interface{}) (ok bool) {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ if subset == nil {
+ return Fail(t, fmt.Sprintf("nil is the empty set which is a subset of every set"), msgAndArgs...)
+ }
+
+ subsetValue := reflect.ValueOf(subset)
+ defer func() {
+ if e := recover(); e != nil {
+ ok = false
+ }
+ }()
+
+ listKind := reflect.TypeOf(list).Kind()
+ subsetKind := reflect.TypeOf(subset).Kind()
+
+ if listKind != reflect.Array && listKind != reflect.Slice {
+ return Fail(t, fmt.Sprintf("%q has an unsupported type %s", list, listKind), msgAndArgs...)
+ }
+
+ if subsetKind != reflect.Array && subsetKind != reflect.Slice {
+ return Fail(t, fmt.Sprintf("%q has an unsupported type %s", subset, subsetKind), msgAndArgs...)
+ }
+
+ for i := 0; i < subsetValue.Len(); i++ {
+ element := subsetValue.Index(i).Interface()
+ ok, found := includeElement(list, element)
+ if !ok {
+ return Fail(t, fmt.Sprintf("\"%s\" could not be applied builtin len()", list), msgAndArgs...)
+ }
+ if !found {
+ return true
+ }
+ }
+
+ return Fail(t, fmt.Sprintf("%q is a subset of %q", subset, list), msgAndArgs...)
+}
+
+// ElementsMatch asserts that the specified listA(array, slice...) is equal to specified
+// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements,
+// the number of appearances of each of them in both lists should match.
+//
+// assert.ElementsMatch(t, [1, 3, 2, 3], [1, 3, 3, 2])
+func ElementsMatch(t TestingT, listA, listB interface{}, msgAndArgs ...interface{}) (ok bool) {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ if isEmpty(listA) && isEmpty(listB) {
+ return true
+ }
+
+ aKind := reflect.TypeOf(listA).Kind()
+ bKind := reflect.TypeOf(listB).Kind()
+
+ if aKind != reflect.Array && aKind != reflect.Slice {
+ return Fail(t, fmt.Sprintf("%q has an unsupported type %s", listA, aKind), msgAndArgs...)
+ }
+
+ if bKind != reflect.Array && bKind != reflect.Slice {
+ return Fail(t, fmt.Sprintf("%q has an unsupported type %s", listB, bKind), msgAndArgs...)
+ }
+
+ aValue := reflect.ValueOf(listA)
+ bValue := reflect.ValueOf(listB)
+
+ aLen := aValue.Len()
+ bLen := bValue.Len()
+
+ if aLen != bLen {
+ return Fail(t, fmt.Sprintf("lengths don't match: %d != %d", aLen, bLen), msgAndArgs...)
+ }
+
+ // Mark indexes in bValue that we already used
+ visited := make([]bool, bLen)
+ for i := 0; i < aLen; i++ {
+ element := aValue.Index(i).Interface()
+ found := false
+ for j := 0; j < bLen; j++ {
+ if visited[j] {
+ continue
+ }
+ if ObjectsAreEqual(bValue.Index(j).Interface(), element) {
+ visited[j] = true
+ found = true
+ break
+ }
+ }
+ if !found {
+ return Fail(t, fmt.Sprintf("element %s appears more times in %s than in %s", element, aValue, bValue), msgAndArgs...)
+ }
+ }
+
+ return true
+}
+
+// Condition uses a Comparison to assert a complex condition.
+func Condition(t TestingT, comp Comparison, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ result := comp()
+ if !result {
+ Fail(t, "Condition failed!", msgAndArgs...)
+ }
+ return result
+}
+
+// PanicTestFunc defines a func that should be passed to the assert.Panics and assert.NotPanics
+// methods, and represents a simple func that takes no arguments, and returns nothing.
+type PanicTestFunc func()
+
+// didPanic returns true if the function passed to it panics. Otherwise, it returns false.
+func didPanic(f PanicTestFunc) (bool, interface{}) {
+
+ didPanic := false
+ var message interface{}
+ func() {
+
+ defer func() {
+ if message = recover(); message != nil {
+ didPanic = true
+ }
+ }()
+
+ // call the target function
+ f()
+
+ }()
+
+ return didPanic, message
+
+}
+
+// Panics asserts that the code inside the specified PanicTestFunc panics.
+//
+// assert.Panics(t, func(){ GoCrazy() })
+func Panics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+
+ if funcDidPanic, panicValue := didPanic(f); !funcDidPanic {
+ return Fail(t, fmt.Sprintf("func %#v should panic\n\tPanic value:\t%#v", f, panicValue), msgAndArgs...)
+ }
+
+ return true
+}
+
+// PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that
+// the recovered panic value equals the expected panic value.
+//
+// assert.PanicsWithValue(t, "crazy error", func(){ GoCrazy() })
+func PanicsWithValue(t TestingT, expected interface{}, f PanicTestFunc, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+
+ funcDidPanic, panicValue := didPanic(f)
+ if !funcDidPanic {
+ return Fail(t, fmt.Sprintf("func %#v should panic\n\tPanic value:\t%#v", f, panicValue), msgAndArgs...)
+ }
+ if panicValue != expected {
+ return Fail(t, fmt.Sprintf("func %#v should panic with value:\t%#v\n\tPanic value:\t%#v", f, expected, panicValue), msgAndArgs...)
+ }
+
+ return true
+}
+
+// NotPanics asserts that the code inside the specified PanicTestFunc does NOT panic.
+//
+// assert.NotPanics(t, func(){ RemainCalm() })
+func NotPanics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+
+ if funcDidPanic, panicValue := didPanic(f); funcDidPanic {
+ return Fail(t, fmt.Sprintf("func %#v should not panic\n\tPanic value:\t%v", f, panicValue), msgAndArgs...)
+ }
+
+ return true
+}
+
+// WithinDuration asserts that the two times are within duration delta of each other.
+//
+// assert.WithinDuration(t, time.Now(), time.Now(), 10*time.Second)
+func WithinDuration(t TestingT, expected, actual time.Time, delta time.Duration, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+
+ dt := expected.Sub(actual)
+ if dt < -delta || dt > delta {
+ return Fail(t, fmt.Sprintf("Max difference between %v and %v allowed is %v, but difference was %v", expected, actual, delta, dt), msgAndArgs...)
+ }
+
+ return true
+}
+
+func toFloat(x interface{}) (float64, bool) {
+ var xf float64
+ xok := true
+
+ switch xn := x.(type) {
+ case uint8:
+ xf = float64(xn)
+ case uint16:
+ xf = float64(xn)
+ case uint32:
+ xf = float64(xn)
+ case uint64:
+ xf = float64(xn)
+ case int:
+ xf = float64(xn)
+ case int8:
+ xf = float64(xn)
+ case int16:
+ xf = float64(xn)
+ case int32:
+ xf = float64(xn)
+ case int64:
+ xf = float64(xn)
+ case float32:
+ xf = float64(xn)
+ case float64:
+ xf = float64(xn)
+ case time.Duration:
+ xf = float64(xn)
+ default:
+ xok = false
+ }
+
+ return xf, xok
+}
+
+// InDelta asserts that the two numerals are within delta of each other.
+//
+// assert.InDelta(t, math.Pi, (22 / 7.0), 0.01)
+func InDelta(t TestingT, expected, actual interface{}, delta float64, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+
+ af, aok := toFloat(expected)
+ bf, bok := toFloat(actual)
+
+ if !aok || !bok {
+ return Fail(t, fmt.Sprintf("Parameters must be numerical"), msgAndArgs...)
+ }
+
+ if math.IsNaN(af) {
+ return Fail(t, fmt.Sprintf("Expected must not be NaN"), msgAndArgs...)
+ }
+
+ if math.IsNaN(bf) {
+ return Fail(t, fmt.Sprintf("Expected %v with delta %v, but was NaN", expected, delta), msgAndArgs...)
+ }
+
+ dt := af - bf
+ if dt < -delta || dt > delta {
+ return Fail(t, fmt.Sprintf("Max difference between %v and %v allowed is %v, but difference was %v", expected, actual, delta, dt), msgAndArgs...)
+ }
+
+ return true
+}
+
+// InDeltaSlice is the same as InDelta, except it compares two slices.
+func InDeltaSlice(t TestingT, expected, actual interface{}, delta float64, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ if expected == nil || actual == nil ||
+ reflect.TypeOf(actual).Kind() != reflect.Slice ||
+ reflect.TypeOf(expected).Kind() != reflect.Slice {
+ return Fail(t, fmt.Sprintf("Parameters must be slice"), msgAndArgs...)
+ }
+
+ actualSlice := reflect.ValueOf(actual)
+ expectedSlice := reflect.ValueOf(expected)
+
+ for i := 0; i < actualSlice.Len(); i++ {
+ result := InDelta(t, actualSlice.Index(i).Interface(), expectedSlice.Index(i).Interface(), delta, msgAndArgs...)
+ if !result {
+ return result
+ }
+ }
+
+ return true
+}
+
+// InDeltaMapValues is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.
+func InDeltaMapValues(t TestingT, expected, actual interface{}, delta float64, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ if expected == nil || actual == nil ||
+ reflect.TypeOf(actual).Kind() != reflect.Map ||
+ reflect.TypeOf(expected).Kind() != reflect.Map {
+ return Fail(t, "Arguments must be maps", msgAndArgs...)
+ }
+
+ expectedMap := reflect.ValueOf(expected)
+ actualMap := reflect.ValueOf(actual)
+
+ if expectedMap.Len() != actualMap.Len() {
+ return Fail(t, "Arguments must have the same number of keys", msgAndArgs...)
+ }
+
+ for _, k := range expectedMap.MapKeys() {
+ ev := expectedMap.MapIndex(k)
+ av := actualMap.MapIndex(k)
+
+ if !ev.IsValid() {
+ return Fail(t, fmt.Sprintf("missing key %q in expected map", k), msgAndArgs...)
+ }
+
+ if !av.IsValid() {
+ return Fail(t, fmt.Sprintf("missing key %q in actual map", k), msgAndArgs...)
+ }
+
+ if !InDelta(
+ t,
+ ev.Interface(),
+ av.Interface(),
+ delta,
+ msgAndArgs...,
+ ) {
+ return false
+ }
+ }
+
+ return true
+}
+
+func calcRelativeError(expected, actual interface{}) (float64, error) {
+ af, aok := toFloat(expected)
+ if !aok {
+ return 0, fmt.Errorf("expected value %q cannot be converted to float", expected)
+ }
+ if af == 0 {
+ return 0, fmt.Errorf("expected value must have a value other than zero to calculate the relative error")
+ }
+ bf, bok := toFloat(actual)
+ if !bok {
+ return 0, fmt.Errorf("actual value %q cannot be converted to float", actual)
+ }
+
+ return math.Abs(af-bf) / math.Abs(af), nil
+}
+
+// InEpsilon asserts that expected and actual have a relative error less than epsilon
+func InEpsilon(t TestingT, expected, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ actualEpsilon, err := calcRelativeError(expected, actual)
+ if err != nil {
+ return Fail(t, err.Error(), msgAndArgs...)
+ }
+ if actualEpsilon > epsilon {
+ return Fail(t, fmt.Sprintf("Relative error is too high: %#v (expected)\n"+
+ " < %#v (actual)", epsilon, actualEpsilon), msgAndArgs...)
+ }
+
+ return true
+}
+
+// InEpsilonSlice is the same as InEpsilon, except it compares each value from two slices.
+func InEpsilonSlice(t TestingT, expected, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ if expected == nil || actual == nil ||
+ reflect.TypeOf(actual).Kind() != reflect.Slice ||
+ reflect.TypeOf(expected).Kind() != reflect.Slice {
+ return Fail(t, fmt.Sprintf("Parameters must be slice"), msgAndArgs...)
+ }
+
+ actualSlice := reflect.ValueOf(actual)
+ expectedSlice := reflect.ValueOf(expected)
+
+ for i := 0; i < actualSlice.Len(); i++ {
+ result := InEpsilon(t, actualSlice.Index(i).Interface(), expectedSlice.Index(i).Interface(), epsilon)
+ if !result {
+ return result
+ }
+ }
+
+ return true
+}
+
+/*
+ Errors
+*/
+
+// NoError asserts that a function returned no error (i.e. `nil`).
+//
+// actualObj, err := SomeFunction()
+// if assert.NoError(t, err) {
+// assert.Equal(t, expectedObj, actualObj)
+// }
+func NoError(t TestingT, err error, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ if err != nil {
+ return Fail(t, fmt.Sprintf("Received unexpected error:\n%+v", err), msgAndArgs...)
+ }
+
+ return true
+}
+
+// Error asserts that a function returned an error (i.e. not `nil`).
+//
+// actualObj, err := SomeFunction()
+// if assert.Error(t, err) {
+// assert.Equal(t, expectedError, err)
+// }
+func Error(t TestingT, err error, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+
+ if err == nil {
+ return Fail(t, "An error is expected but got nil.", msgAndArgs...)
+ }
+
+ return true
+}
+
+// EqualError asserts that a function returned an error (i.e. not `nil`)
+// and that it is equal to the provided error.
+//
+// actualObj, err := SomeFunction()
+// assert.EqualError(t, err, expectedErrorString)
+func EqualError(t TestingT, theError error, errString string, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ if !Error(t, theError, msgAndArgs...) {
+ return false
+ }
+ expected := errString
+ actual := theError.Error()
+ // don't need to use deep equals here, we know they are both strings
+ if expected != actual {
+ return Fail(t, fmt.Sprintf("Error message not equal:\n"+
+ "expected: %q\n"+
+ "actual : %q", expected, actual), msgAndArgs...)
+ }
+ return true
+}
+
+// matchRegexp return true if a specified regexp matches a string.
+func matchRegexp(rx interface{}, str interface{}) bool {
+
+ var r *regexp.Regexp
+ if rr, ok := rx.(*regexp.Regexp); ok {
+ r = rr
+ } else {
+ r = regexp.MustCompile(fmt.Sprint(rx))
+ }
+
+ return (r.FindStringIndex(fmt.Sprint(str)) != nil)
+
+}
+
+// Regexp asserts that a specified regexp matches a string.
+//
+// assert.Regexp(t, regexp.MustCompile("start"), "it's starting")
+// assert.Regexp(t, "start...$", "it's not starting")
+func Regexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+
+ match := matchRegexp(rx, str)
+
+ if !match {
+ Fail(t, fmt.Sprintf("Expect \"%v\" to match \"%v\"", str, rx), msgAndArgs...)
+ }
+
+ return match
+}
+
+// NotRegexp asserts that a specified regexp does not match a string.
+//
+// assert.NotRegexp(t, regexp.MustCompile("starts"), "it's starting")
+// assert.NotRegexp(t, "^start", "it's not starting")
+func NotRegexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ match := matchRegexp(rx, str)
+
+ if match {
+ Fail(t, fmt.Sprintf("Expect \"%v\" to NOT match \"%v\"", str, rx), msgAndArgs...)
+ }
+
+ return !match
+
+}
+
+// Zero asserts that i is the zero value for its type.
+func Zero(t TestingT, i interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ if i != nil && !reflect.DeepEqual(i, reflect.Zero(reflect.TypeOf(i)).Interface()) {
+ return Fail(t, fmt.Sprintf("Should be zero, but was %v", i), msgAndArgs...)
+ }
+ return true
+}
+
+// NotZero asserts that i is not the zero value for its type.
+func NotZero(t TestingT, i interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ if i == nil || reflect.DeepEqual(i, reflect.Zero(reflect.TypeOf(i)).Interface()) {
+ return Fail(t, fmt.Sprintf("Should not be zero, but was %v", i), msgAndArgs...)
+ }
+ return true
+}
+
+// FileExists checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file.
+func FileExists(t TestingT, path string, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ info, err := os.Lstat(path)
+ if err != nil {
+ if os.IsNotExist(err) {
+ return Fail(t, fmt.Sprintf("unable to find file %q", path), msgAndArgs...)
+ }
+ return Fail(t, fmt.Sprintf("error when running os.Lstat(%q): %s", path, err), msgAndArgs...)
+ }
+ if info.IsDir() {
+ return Fail(t, fmt.Sprintf("%q is a directory", path), msgAndArgs...)
+ }
+ return true
+}
+
+// DirExists checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists.
+func DirExists(t TestingT, path string, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ info, err := os.Lstat(path)
+ if err != nil {
+ if os.IsNotExist(err) {
+ return Fail(t, fmt.Sprintf("unable to find file %q", path), msgAndArgs...)
+ }
+ return Fail(t, fmt.Sprintf("error when running os.Lstat(%q): %s", path, err), msgAndArgs...)
+ }
+ if !info.IsDir() {
+ return Fail(t, fmt.Sprintf("%q is a file", path), msgAndArgs...)
+ }
+ return true
+}
+
+// JSONEq asserts that two JSON strings are equivalent.
+//
+// assert.JSONEq(t, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`)
+func JSONEq(t TestingT, expected string, actual string, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ var expectedJSONAsInterface, actualJSONAsInterface interface{}
+
+ if err := json.Unmarshal([]byte(expected), &expectedJSONAsInterface); err != nil {
+ return Fail(t, fmt.Sprintf("Expected value ('%s') is not valid json.\nJSON parsing error: '%s'", expected, err.Error()), msgAndArgs...)
+ }
+
+ if err := json.Unmarshal([]byte(actual), &actualJSONAsInterface); err != nil {
+ return Fail(t, fmt.Sprintf("Input ('%s') needs to be valid json.\nJSON parsing error: '%s'", actual, err.Error()), msgAndArgs...)
+ }
+
+ return Equal(t, expectedJSONAsInterface, actualJSONAsInterface, msgAndArgs...)
+}
+
+func typeAndKind(v interface{}) (reflect.Type, reflect.Kind) {
+ t := reflect.TypeOf(v)
+ k := t.Kind()
+
+ if k == reflect.Ptr {
+ t = t.Elem()
+ k = t.Kind()
+ }
+ return t, k
+}
+
+// diff returns a diff of both values as long as both are of the same type and
+// are a struct, map, slice, array or string. Otherwise it returns an empty string.
+func diff(expected interface{}, actual interface{}) string {
+ if expected == nil || actual == nil {
+ return ""
+ }
+
+ et, ek := typeAndKind(expected)
+ at, _ := typeAndKind(actual)
+
+ if et != at {
+ return ""
+ }
+
+ if ek != reflect.Struct && ek != reflect.Map && ek != reflect.Slice && ek != reflect.Array && ek != reflect.String {
+ return ""
+ }
+
+ var e, a string
+ if et != reflect.TypeOf("") {
+ e = spewConfig.Sdump(expected)
+ a = spewConfig.Sdump(actual)
+ } else {
+ e = expected.(string)
+ a = actual.(string)
+ }
+
+ diff, _ := difflib.GetUnifiedDiffString(difflib.UnifiedDiff{
+ A: difflib.SplitLines(e),
+ B: difflib.SplitLines(a),
+ FromFile: "Expected",
+ FromDate: "",
+ ToFile: "Actual",
+ ToDate: "",
+ Context: 1,
+ })
+
+ return "\n\nDiff:\n" + diff
+}
+
+// validateEqualArgs checks whether provided arguments can be safely used in the
+// Equal/NotEqual functions.
+func validateEqualArgs(expected, actual interface{}) error {
+ if isFunction(expected) || isFunction(actual) {
+ return errors.New("cannot take func type as argument")
+ }
+ return nil
+}
+
+func isFunction(arg interface{}) bool {
+ if arg == nil {
+ return false
+ }
+ return reflect.TypeOf(arg).Kind() == reflect.Func
+}
+
+var spewConfig = spew.ConfigState{
+ Indent: " ",
+ DisablePointerAddresses: true,
+ DisableCapacities: true,
+ SortKeys: true,
+}
+
+type tHelper interface {
+ Helper()
+}
diff --git a/vendor/github.com/stretchr/testify/assert/doc.go b/vendor/github.com/stretchr/testify/assert/doc.go
new file mode 100644
index 0000000000..c9dccc4d6c
--- /dev/null
+++ b/vendor/github.com/stretchr/testify/assert/doc.go
@@ -0,0 +1,45 @@
+// Package assert provides a set of comprehensive testing tools for use with the normal Go testing system.
+//
+// Example Usage
+//
+// The following is a complete example using assert in a standard test function:
+// import (
+// "testing"
+// "github.com/stretchr/testify/assert"
+// )
+//
+// func TestSomething(t *testing.T) {
+//
+// var a string = "Hello"
+// var b string = "Hello"
+//
+// assert.Equal(t, a, b, "The two words should be the same.")
+//
+// }
+//
+// if you assert many times, use the format below:
+//
+// import (
+// "testing"
+// "github.com/stretchr/testify/assert"
+// )
+//
+// func TestSomething(t *testing.T) {
+// assert := assert.New(t)
+//
+// var a string = "Hello"
+// var b string = "Hello"
+//
+// assert.Equal(a, b, "The two words should be the same.")
+// }
+//
+// Assertions
+//
+// Assertions allow you to easily write test code, and are global funcs in the `assert` package.
+// All assertion functions take, as the first argument, the `*testing.T` object provided by the
+// testing framework. This allows the assertion funcs to write the failings and other details to
+// the correct place.
+//
+// Every assertion function also takes an optional string message as the final argument,
+// allowing custom error messages to be appended to the message the assertion method outputs.
+package assert
diff --git a/vendor/github.com/stretchr/testify/assert/errors.go b/vendor/github.com/stretchr/testify/assert/errors.go
new file mode 100644
index 0000000000..ac9dc9d1d6
--- /dev/null
+++ b/vendor/github.com/stretchr/testify/assert/errors.go
@@ -0,0 +1,10 @@
+package assert
+
+import (
+ "errors"
+)
+
+// AnError is an error instance useful for testing. If the code does not care
+// about error specifics, and only needs to return the error for example, this
+// error should be used to make the test code more readable.
+var AnError = errors.New("assert.AnError general error for testing")
diff --git a/vendor/github.com/stretchr/testify/assert/forward_assertions.go b/vendor/github.com/stretchr/testify/assert/forward_assertions.go
new file mode 100644
index 0000000000..9ad56851d9
--- /dev/null
+++ b/vendor/github.com/stretchr/testify/assert/forward_assertions.go
@@ -0,0 +1,16 @@
+package assert
+
+// Assertions provides assertion methods around the
+// TestingT interface.
+type Assertions struct {
+ t TestingT
+}
+
+// New makes a new Assertions object for the specified TestingT.
+func New(t TestingT) *Assertions {
+ return &Assertions{
+ t: t,
+ }
+}
+
+//go:generate go run ../_codegen/main.go -output-package=assert -template=assertion_forward.go.tmpl -include-format-funcs
diff --git a/vendor/github.com/stretchr/testify/assert/http_assertions.go b/vendor/github.com/stretchr/testify/assert/http_assertions.go
new file mode 100644
index 0000000000..df46fa777a
--- /dev/null
+++ b/vendor/github.com/stretchr/testify/assert/http_assertions.go
@@ -0,0 +1,143 @@
+package assert
+
+import (
+ "fmt"
+ "net/http"
+ "net/http/httptest"
+ "net/url"
+ "strings"
+)
+
+// httpCode is a helper that returns HTTP code of the response. It returns -1 and
+// an error if building a new request fails.
+func httpCode(handler http.HandlerFunc, method, url string, values url.Values) (int, error) {
+ w := httptest.NewRecorder()
+ req, err := http.NewRequest(method, url, nil)
+ if err != nil {
+ return -1, err
+ }
+ req.URL.RawQuery = values.Encode()
+ handler(w, req)
+ return w.Code, nil
+}
+
+// HTTPSuccess asserts that a specified handler returns a success status code.
+//
+// assert.HTTPSuccess(t, myHandler, "POST", "http://www.google.com", nil)
+//
+// Returns whether the assertion was successful (true) or not (false).
+func HTTPSuccess(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ code, err := httpCode(handler, method, url, values)
+ if err != nil {
+ Fail(t, fmt.Sprintf("Failed to build test request, got error: %s", err))
+ return false
+ }
+
+ isSuccessCode := code >= http.StatusOK && code <= http.StatusPartialContent
+ if !isSuccessCode {
+ Fail(t, fmt.Sprintf("Expected HTTP success status code for %q but received %d", url+"?"+values.Encode(), code))
+ }
+
+ return isSuccessCode
+}
+
+// HTTPRedirect asserts that a specified handler returns a redirect status code.
+//
+// assert.HTTPRedirect(t, myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}}
+//
+// Returns whether the assertion was successful (true) or not (false).
+func HTTPRedirect(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ code, err := httpCode(handler, method, url, values)
+ if err != nil {
+ Fail(t, fmt.Sprintf("Failed to build test request, got error: %s", err))
+ return false
+ }
+
+ isRedirectCode := code >= http.StatusMultipleChoices && code <= http.StatusTemporaryRedirect
+ if !isRedirectCode {
+ Fail(t, fmt.Sprintf("Expected HTTP redirect status code for %q but received %d", url+"?"+values.Encode(), code))
+ }
+
+ return isRedirectCode
+}
+
+// HTTPError asserts that a specified handler returns an error status code.
+//
+// assert.HTTPError(t, myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}}
+//
+// Returns whether the assertion was successful (true) or not (false).
+func HTTPError(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ code, err := httpCode(handler, method, url, values)
+ if err != nil {
+ Fail(t, fmt.Sprintf("Failed to build test request, got error: %s", err))
+ return false
+ }
+
+ isErrorCode := code >= http.StatusBadRequest
+ if !isErrorCode {
+ Fail(t, fmt.Sprintf("Expected HTTP error status code for %q but received %d", url+"?"+values.Encode(), code))
+ }
+
+ return isErrorCode
+}
+
+// HTTPBody is a helper that returns HTTP body of the response. It returns
+// empty string if building a new request fails.
+func HTTPBody(handler http.HandlerFunc, method, url string, values url.Values) string {
+ w := httptest.NewRecorder()
+ req, err := http.NewRequest(method, url+"?"+values.Encode(), nil)
+ if err != nil {
+ return ""
+ }
+ handler(w, req)
+ return w.Body.String()
+}
+
+// HTTPBodyContains asserts that a specified handler returns a
+// body that contains a string.
+//
+// assert.HTTPBodyContains(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func HTTPBodyContains(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ body := HTTPBody(handler, method, url, values)
+
+ contains := strings.Contains(body, fmt.Sprint(str))
+ if !contains {
+ Fail(t, fmt.Sprintf("Expected response body for \"%s\" to contain \"%s\" but found \"%s\"", url+"?"+values.Encode(), str, body))
+ }
+
+ return contains
+}
+
+// HTTPBodyNotContains asserts that a specified handler returns a
+// body that does not contain a string.
+//
+// assert.HTTPBodyNotContains(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func HTTPBodyNotContains(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool {
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ body := HTTPBody(handler, method, url, values)
+
+ contains := strings.Contains(body, fmt.Sprint(str))
+ if contains {
+ Fail(t, fmt.Sprintf("Expected response body for \"%s\" to NOT contain \"%s\" but found \"%s\"", url+"?"+values.Encode(), str, body))
+ }
+
+ return !contains
+}
diff --git a/vendor/github.com/stretchr/testify/require/doc.go b/vendor/github.com/stretchr/testify/require/doc.go
new file mode 100644
index 0000000000..169de39221
--- /dev/null
+++ b/vendor/github.com/stretchr/testify/require/doc.go
@@ -0,0 +1,28 @@
+// Package require implements the same assertions as the `assert` package but
+// stops test execution when a test fails.
+//
+// Example Usage
+//
+// The following is a complete example using require in a standard test function:
+// import (
+// "testing"
+// "github.com/stretchr/testify/require"
+// )
+//
+// func TestSomething(t *testing.T) {
+//
+// var a string = "Hello"
+// var b string = "Hello"
+//
+// require.Equal(t, a, b, "The two words should be the same.")
+//
+// }
+//
+// Assertions
+//
+// The `require` package have same global functions as in the `assert` package,
+// but instead of returning a boolean result they call `t.FailNow()`.
+//
+// Every assertion function also takes an optional string message as the final argument,
+// allowing custom error messages to be appended to the message the assertion method outputs.
+package require
diff --git a/vendor/github.com/stretchr/testify/require/forward_requirements.go b/vendor/github.com/stretchr/testify/require/forward_requirements.go
new file mode 100644
index 0000000000..ac71d40581
--- /dev/null
+++ b/vendor/github.com/stretchr/testify/require/forward_requirements.go
@@ -0,0 +1,16 @@
+package require
+
+// Assertions provides assertion methods around the
+// TestingT interface.
+type Assertions struct {
+ t TestingT
+}
+
+// New makes a new Assertions object for the specified TestingT.
+func New(t TestingT) *Assertions {
+ return &Assertions{
+ t: t,
+ }
+}
+
+//go:generate go run ../_codegen/main.go -output-package=require -template=require_forward.go.tmpl -include-format-funcs
diff --git a/vendor/github.com/stretchr/testify/require/require.go b/vendor/github.com/stretchr/testify/require/require.go
new file mode 100644
index 0000000000..535f293490
--- /dev/null
+++ b/vendor/github.com/stretchr/testify/require/require.go
@@ -0,0 +1,1227 @@
+/*
+* CODE GENERATED AUTOMATICALLY WITH github.com/stretchr/testify/_codegen
+* THIS FILE MUST NOT BE EDITED BY HAND
+ */
+
+package require
+
+import (
+ assert "github.com/stretchr/testify/assert"
+ http "net/http"
+ url "net/url"
+ time "time"
+)
+
+// Condition uses a Comparison to assert a complex condition.
+func Condition(t TestingT, comp assert.Comparison, msgAndArgs ...interface{}) {
+ if assert.Condition(t, comp, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Conditionf uses a Comparison to assert a complex condition.
+func Conditionf(t TestingT, comp assert.Comparison, msg string, args ...interface{}) {
+ if assert.Conditionf(t, comp, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Contains asserts that the specified string, list(array, slice...) or map contains the
+// specified substring or element.
+//
+// assert.Contains(t, "Hello World", "World")
+// assert.Contains(t, ["Hello", "World"], "World")
+// assert.Contains(t, {"Hello": "World"}, "Hello")
+func Contains(t TestingT, s interface{}, contains interface{}, msgAndArgs ...interface{}) {
+ if assert.Contains(t, s, contains, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Containsf asserts that the specified string, list(array, slice...) or map contains the
+// specified substring or element.
+//
+// assert.Containsf(t, "Hello World", "World", "error message %s", "formatted")
+// assert.Containsf(t, ["Hello", "World"], "World", "error message %s", "formatted")
+// assert.Containsf(t, {"Hello": "World"}, "Hello", "error message %s", "formatted")
+func Containsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{}) {
+ if assert.Containsf(t, s, contains, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// DirExists checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists.
+func DirExists(t TestingT, path string, msgAndArgs ...interface{}) {
+ if assert.DirExists(t, path, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// DirExistsf checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists.
+func DirExistsf(t TestingT, path string, msg string, args ...interface{}) {
+ if assert.DirExistsf(t, path, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// ElementsMatch asserts that the specified listA(array, slice...) is equal to specified
+// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements,
+// the number of appearances of each of them in both lists should match.
+//
+// assert.ElementsMatch(t, [1, 3, 2, 3], [1, 3, 3, 2])
+func ElementsMatch(t TestingT, listA interface{}, listB interface{}, msgAndArgs ...interface{}) {
+ if assert.ElementsMatch(t, listA, listB, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// ElementsMatchf asserts that the specified listA(array, slice...) is equal to specified
+// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements,
+// the number of appearances of each of them in both lists should match.
+//
+// assert.ElementsMatchf(t, [1, 3, 2, 3], [1, 3, 3, 2], "error message %s", "formatted")
+func ElementsMatchf(t TestingT, listA interface{}, listB interface{}, msg string, args ...interface{}) {
+ if assert.ElementsMatchf(t, listA, listB, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Empty asserts that the specified object is empty. I.e. nil, "", false, 0 or either
+// a slice or a channel with len == 0.
+//
+// assert.Empty(t, obj)
+func Empty(t TestingT, object interface{}, msgAndArgs ...interface{}) {
+ if assert.Empty(t, object, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Emptyf asserts that the specified object is empty. I.e. nil, "", false, 0 or either
+// a slice or a channel with len == 0.
+//
+// assert.Emptyf(t, obj, "error message %s", "formatted")
+func Emptyf(t TestingT, object interface{}, msg string, args ...interface{}) {
+ if assert.Emptyf(t, object, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Equal asserts that two objects are equal.
+//
+// assert.Equal(t, 123, 123)
+//
+// Pointer variable equality is determined based on the equality of the
+// referenced values (as opposed to the memory addresses). Function equality
+// cannot be determined and will always fail.
+func Equal(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) {
+ if assert.Equal(t, expected, actual, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// EqualError asserts that a function returned an error (i.e. not `nil`)
+// and that it is equal to the provided error.
+//
+// actualObj, err := SomeFunction()
+// assert.EqualError(t, err, expectedErrorString)
+func EqualError(t TestingT, theError error, errString string, msgAndArgs ...interface{}) {
+ if assert.EqualError(t, theError, errString, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// EqualErrorf asserts that a function returned an error (i.e. not `nil`)
+// and that it is equal to the provided error.
+//
+// actualObj, err := SomeFunction()
+// assert.EqualErrorf(t, err, expectedErrorString, "error message %s", "formatted")
+func EqualErrorf(t TestingT, theError error, errString string, msg string, args ...interface{}) {
+ if assert.EqualErrorf(t, theError, errString, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// EqualValues asserts that two objects are equal or convertable to the same types
+// and equal.
+//
+// assert.EqualValues(t, uint32(123), int32(123))
+func EqualValues(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) {
+ if assert.EqualValues(t, expected, actual, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// EqualValuesf asserts that two objects are equal or convertable to the same types
+// and equal.
+//
+// assert.EqualValuesf(t, uint32(123, "error message %s", "formatted"), int32(123))
+func EqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) {
+ if assert.EqualValuesf(t, expected, actual, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Equalf asserts that two objects are equal.
+//
+// assert.Equalf(t, 123, 123, "error message %s", "formatted")
+//
+// Pointer variable equality is determined based on the equality of the
+// referenced values (as opposed to the memory addresses). Function equality
+// cannot be determined and will always fail.
+func Equalf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) {
+ if assert.Equalf(t, expected, actual, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Error asserts that a function returned an error (i.e. not `nil`).
+//
+// actualObj, err := SomeFunction()
+// if assert.Error(t, err) {
+// assert.Equal(t, expectedError, err)
+// }
+func Error(t TestingT, err error, msgAndArgs ...interface{}) {
+ if assert.Error(t, err, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Errorf asserts that a function returned an error (i.e. not `nil`).
+//
+// actualObj, err := SomeFunction()
+// if assert.Errorf(t, err, "error message %s", "formatted") {
+// assert.Equal(t, expectedErrorf, err)
+// }
+func Errorf(t TestingT, err error, msg string, args ...interface{}) {
+ if assert.Errorf(t, err, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Exactly asserts that two objects are equal in value and type.
+//
+// assert.Exactly(t, int32(123), int64(123))
+func Exactly(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) {
+ if assert.Exactly(t, expected, actual, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Exactlyf asserts that two objects are equal in value and type.
+//
+// assert.Exactlyf(t, int32(123, "error message %s", "formatted"), int64(123))
+func Exactlyf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) {
+ if assert.Exactlyf(t, expected, actual, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Fail reports a failure through
+func Fail(t TestingT, failureMessage string, msgAndArgs ...interface{}) {
+ if assert.Fail(t, failureMessage, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// FailNow fails test
+func FailNow(t TestingT, failureMessage string, msgAndArgs ...interface{}) {
+ if assert.FailNow(t, failureMessage, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// FailNowf fails test
+func FailNowf(t TestingT, failureMessage string, msg string, args ...interface{}) {
+ if assert.FailNowf(t, failureMessage, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Failf reports a failure through
+func Failf(t TestingT, failureMessage string, msg string, args ...interface{}) {
+ if assert.Failf(t, failureMessage, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// False asserts that the specified value is false.
+//
+// assert.False(t, myBool)
+func False(t TestingT, value bool, msgAndArgs ...interface{}) {
+ if assert.False(t, value, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Falsef asserts that the specified value is false.
+//
+// assert.Falsef(t, myBool, "error message %s", "formatted")
+func Falsef(t TestingT, value bool, msg string, args ...interface{}) {
+ if assert.Falsef(t, value, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// FileExists checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file.
+func FileExists(t TestingT, path string, msgAndArgs ...interface{}) {
+ if assert.FileExists(t, path, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// FileExistsf checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file.
+func FileExistsf(t TestingT, path string, msg string, args ...interface{}) {
+ if assert.FileExistsf(t, path, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// HTTPBodyContains asserts that a specified handler returns a
+// body that contains a string.
+//
+// assert.HTTPBodyContains(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func HTTPBodyContains(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) {
+ if assert.HTTPBodyContains(t, handler, method, url, values, str, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// HTTPBodyContainsf asserts that a specified handler returns a
+// body that contains a string.
+//
+// assert.HTTPBodyContainsf(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func HTTPBodyContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) {
+ if assert.HTTPBodyContainsf(t, handler, method, url, values, str, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// HTTPBodyNotContains asserts that a specified handler returns a
+// body that does not contain a string.
+//
+// assert.HTTPBodyNotContains(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func HTTPBodyNotContains(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) {
+ if assert.HTTPBodyNotContains(t, handler, method, url, values, str, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// HTTPBodyNotContainsf asserts that a specified handler returns a
+// body that does not contain a string.
+//
+// assert.HTTPBodyNotContainsf(t, myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func HTTPBodyNotContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) {
+ if assert.HTTPBodyNotContainsf(t, handler, method, url, values, str, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// HTTPError asserts that a specified handler returns an error status code.
+//
+// assert.HTTPError(t, myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}}
+//
+// Returns whether the assertion was successful (true) or not (false).
+func HTTPError(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) {
+ if assert.HTTPError(t, handler, method, url, values, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// HTTPErrorf asserts that a specified handler returns an error status code.
+//
+// assert.HTTPErrorf(t, myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}}
+//
+// Returns whether the assertion was successful (true, "error message %s", "formatted") or not (false).
+func HTTPErrorf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) {
+ if assert.HTTPErrorf(t, handler, method, url, values, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// HTTPRedirect asserts that a specified handler returns a redirect status code.
+//
+// assert.HTTPRedirect(t, myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}}
+//
+// Returns whether the assertion was successful (true) or not (false).
+func HTTPRedirect(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) {
+ if assert.HTTPRedirect(t, handler, method, url, values, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// HTTPRedirectf asserts that a specified handler returns a redirect status code.
+//
+// assert.HTTPRedirectf(t, myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}}
+//
+// Returns whether the assertion was successful (true, "error message %s", "formatted") or not (false).
+func HTTPRedirectf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) {
+ if assert.HTTPRedirectf(t, handler, method, url, values, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// HTTPSuccess asserts that a specified handler returns a success status code.
+//
+// assert.HTTPSuccess(t, myHandler, "POST", "http://www.google.com", nil)
+//
+// Returns whether the assertion was successful (true) or not (false).
+func HTTPSuccess(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) {
+ if assert.HTTPSuccess(t, handler, method, url, values, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// HTTPSuccessf asserts that a specified handler returns a success status code.
+//
+// assert.HTTPSuccessf(t, myHandler, "POST", "http://www.google.com", nil, "error message %s", "formatted")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func HTTPSuccessf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) {
+ if assert.HTTPSuccessf(t, handler, method, url, values, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Implements asserts that an object is implemented by the specified interface.
+//
+// assert.Implements(t, (*MyInterface)(nil), new(MyObject))
+func Implements(t TestingT, interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) {
+ if assert.Implements(t, interfaceObject, object, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Implementsf asserts that an object is implemented by the specified interface.
+//
+// assert.Implementsf(t, (*MyInterface, "error message %s", "formatted")(nil), new(MyObject))
+func Implementsf(t TestingT, interfaceObject interface{}, object interface{}, msg string, args ...interface{}) {
+ if assert.Implementsf(t, interfaceObject, object, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// InDelta asserts that the two numerals are within delta of each other.
+//
+// assert.InDelta(t, math.Pi, (22 / 7.0), 0.01)
+func InDelta(t TestingT, expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) {
+ if assert.InDelta(t, expected, actual, delta, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// InDeltaMapValues is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.
+func InDeltaMapValues(t TestingT, expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) {
+ if assert.InDeltaMapValues(t, expected, actual, delta, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// InDeltaMapValuesf is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.
+func InDeltaMapValuesf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) {
+ if assert.InDeltaMapValuesf(t, expected, actual, delta, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// InDeltaSlice is the same as InDelta, except it compares two slices.
+func InDeltaSlice(t TestingT, expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) {
+ if assert.InDeltaSlice(t, expected, actual, delta, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// InDeltaSlicef is the same as InDelta, except it compares two slices.
+func InDeltaSlicef(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) {
+ if assert.InDeltaSlicef(t, expected, actual, delta, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// InDeltaf asserts that the two numerals are within delta of each other.
+//
+// assert.InDeltaf(t, math.Pi, (22 / 7.0, "error message %s", "formatted"), 0.01)
+func InDeltaf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) {
+ if assert.InDeltaf(t, expected, actual, delta, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// InEpsilon asserts that expected and actual have a relative error less than epsilon
+func InEpsilon(t TestingT, expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) {
+ if assert.InEpsilon(t, expected, actual, epsilon, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// InEpsilonSlice is the same as InEpsilon, except it compares each value from two slices.
+func InEpsilonSlice(t TestingT, expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) {
+ if assert.InEpsilonSlice(t, expected, actual, epsilon, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// InEpsilonSlicef is the same as InEpsilon, except it compares each value from two slices.
+func InEpsilonSlicef(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) {
+ if assert.InEpsilonSlicef(t, expected, actual, epsilon, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// InEpsilonf asserts that expected and actual have a relative error less than epsilon
+func InEpsilonf(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) {
+ if assert.InEpsilonf(t, expected, actual, epsilon, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// IsType asserts that the specified objects are of the same type.
+func IsType(t TestingT, expectedType interface{}, object interface{}, msgAndArgs ...interface{}) {
+ if assert.IsType(t, expectedType, object, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// IsTypef asserts that the specified objects are of the same type.
+func IsTypef(t TestingT, expectedType interface{}, object interface{}, msg string, args ...interface{}) {
+ if assert.IsTypef(t, expectedType, object, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// JSONEq asserts that two JSON strings are equivalent.
+//
+// assert.JSONEq(t, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`)
+func JSONEq(t TestingT, expected string, actual string, msgAndArgs ...interface{}) {
+ if assert.JSONEq(t, expected, actual, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// JSONEqf asserts that two JSON strings are equivalent.
+//
+// assert.JSONEqf(t, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`, "error message %s", "formatted")
+func JSONEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) {
+ if assert.JSONEqf(t, expected, actual, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Len asserts that the specified object has specific length.
+// Len also fails if the object has a type that len() not accept.
+//
+// assert.Len(t, mySlice, 3)
+func Len(t TestingT, object interface{}, length int, msgAndArgs ...interface{}) {
+ if assert.Len(t, object, length, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Lenf asserts that the specified object has specific length.
+// Lenf also fails if the object has a type that len() not accept.
+//
+// assert.Lenf(t, mySlice, 3, "error message %s", "formatted")
+func Lenf(t TestingT, object interface{}, length int, msg string, args ...interface{}) {
+ if assert.Lenf(t, object, length, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Nil asserts that the specified object is nil.
+//
+// assert.Nil(t, err)
+func Nil(t TestingT, object interface{}, msgAndArgs ...interface{}) {
+ if assert.Nil(t, object, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Nilf asserts that the specified object is nil.
+//
+// assert.Nilf(t, err, "error message %s", "formatted")
+func Nilf(t TestingT, object interface{}, msg string, args ...interface{}) {
+ if assert.Nilf(t, object, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// NoError asserts that a function returned no error (i.e. `nil`).
+//
+// actualObj, err := SomeFunction()
+// if assert.NoError(t, err) {
+// assert.Equal(t, expectedObj, actualObj)
+// }
+func NoError(t TestingT, err error, msgAndArgs ...interface{}) {
+ if assert.NoError(t, err, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// NoErrorf asserts that a function returned no error (i.e. `nil`).
+//
+// actualObj, err := SomeFunction()
+// if assert.NoErrorf(t, err, "error message %s", "formatted") {
+// assert.Equal(t, expectedObj, actualObj)
+// }
+func NoErrorf(t TestingT, err error, msg string, args ...interface{}) {
+ if assert.NoErrorf(t, err, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the
+// specified substring or element.
+//
+// assert.NotContains(t, "Hello World", "Earth")
+// assert.NotContains(t, ["Hello", "World"], "Earth")
+// assert.NotContains(t, {"Hello": "World"}, "Earth")
+func NotContains(t TestingT, s interface{}, contains interface{}, msgAndArgs ...interface{}) {
+ if assert.NotContains(t, s, contains, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the
+// specified substring or element.
+//
+// assert.NotContainsf(t, "Hello World", "Earth", "error message %s", "formatted")
+// assert.NotContainsf(t, ["Hello", "World"], "Earth", "error message %s", "formatted")
+// assert.NotContainsf(t, {"Hello": "World"}, "Earth", "error message %s", "formatted")
+func NotContainsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{}) {
+ if assert.NotContainsf(t, s, contains, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// NotEmpty asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either
+// a slice or a channel with len == 0.
+//
+// if assert.NotEmpty(t, obj) {
+// assert.Equal(t, "two", obj[1])
+// }
+func NotEmpty(t TestingT, object interface{}, msgAndArgs ...interface{}) {
+ if assert.NotEmpty(t, object, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// NotEmptyf asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either
+// a slice or a channel with len == 0.
+//
+// if assert.NotEmptyf(t, obj, "error message %s", "formatted") {
+// assert.Equal(t, "two", obj[1])
+// }
+func NotEmptyf(t TestingT, object interface{}, msg string, args ...interface{}) {
+ if assert.NotEmptyf(t, object, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// NotEqual asserts that the specified values are NOT equal.
+//
+// assert.NotEqual(t, obj1, obj2)
+//
+// Pointer variable equality is determined based on the equality of the
+// referenced values (as opposed to the memory addresses).
+func NotEqual(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) {
+ if assert.NotEqual(t, expected, actual, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// NotEqualf asserts that the specified values are NOT equal.
+//
+// assert.NotEqualf(t, obj1, obj2, "error message %s", "formatted")
+//
+// Pointer variable equality is determined based on the equality of the
+// referenced values (as opposed to the memory addresses).
+func NotEqualf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) {
+ if assert.NotEqualf(t, expected, actual, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// NotNil asserts that the specified object is not nil.
+//
+// assert.NotNil(t, err)
+func NotNil(t TestingT, object interface{}, msgAndArgs ...interface{}) {
+ if assert.NotNil(t, object, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// NotNilf asserts that the specified object is not nil.
+//
+// assert.NotNilf(t, err, "error message %s", "formatted")
+func NotNilf(t TestingT, object interface{}, msg string, args ...interface{}) {
+ if assert.NotNilf(t, object, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// NotPanics asserts that the code inside the specified PanicTestFunc does NOT panic.
+//
+// assert.NotPanics(t, func(){ RemainCalm() })
+func NotPanics(t TestingT, f assert.PanicTestFunc, msgAndArgs ...interface{}) {
+ if assert.NotPanics(t, f, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// NotPanicsf asserts that the code inside the specified PanicTestFunc does NOT panic.
+//
+// assert.NotPanicsf(t, func(){ RemainCalm() }, "error message %s", "formatted")
+func NotPanicsf(t TestingT, f assert.PanicTestFunc, msg string, args ...interface{}) {
+ if assert.NotPanicsf(t, f, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// NotRegexp asserts that a specified regexp does not match a string.
+//
+// assert.NotRegexp(t, regexp.MustCompile("starts"), "it's starting")
+// assert.NotRegexp(t, "^start", "it's not starting")
+func NotRegexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interface{}) {
+ if assert.NotRegexp(t, rx, str, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// NotRegexpf asserts that a specified regexp does not match a string.
+//
+// assert.NotRegexpf(t, regexp.MustCompile("starts", "error message %s", "formatted"), "it's starting")
+// assert.NotRegexpf(t, "^start", "it's not starting", "error message %s", "formatted")
+func NotRegexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) {
+ if assert.NotRegexpf(t, rx, str, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// NotSubset asserts that the specified list(array, slice...) contains not all
+// elements given in the specified subset(array, slice...).
+//
+// assert.NotSubset(t, [1, 3, 4], [1, 2], "But [1, 3, 4] does not contain [1, 2]")
+func NotSubset(t TestingT, list interface{}, subset interface{}, msgAndArgs ...interface{}) {
+ if assert.NotSubset(t, list, subset, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// NotSubsetf asserts that the specified list(array, slice...) contains not all
+// elements given in the specified subset(array, slice...).
+//
+// assert.NotSubsetf(t, [1, 3, 4], [1, 2], "But [1, 3, 4] does not contain [1, 2]", "error message %s", "formatted")
+func NotSubsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) {
+ if assert.NotSubsetf(t, list, subset, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// NotZero asserts that i is not the zero value for its type.
+func NotZero(t TestingT, i interface{}, msgAndArgs ...interface{}) {
+ if assert.NotZero(t, i, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// NotZerof asserts that i is not the zero value for its type.
+func NotZerof(t TestingT, i interface{}, msg string, args ...interface{}) {
+ if assert.NotZerof(t, i, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Panics asserts that the code inside the specified PanicTestFunc panics.
+//
+// assert.Panics(t, func(){ GoCrazy() })
+func Panics(t TestingT, f assert.PanicTestFunc, msgAndArgs ...interface{}) {
+ if assert.Panics(t, f, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that
+// the recovered panic value equals the expected panic value.
+//
+// assert.PanicsWithValue(t, "crazy error", func(){ GoCrazy() })
+func PanicsWithValue(t TestingT, expected interface{}, f assert.PanicTestFunc, msgAndArgs ...interface{}) {
+ if assert.PanicsWithValue(t, expected, f, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that
+// the recovered panic value equals the expected panic value.
+//
+// assert.PanicsWithValuef(t, "crazy error", func(){ GoCrazy() }, "error message %s", "formatted")
+func PanicsWithValuef(t TestingT, expected interface{}, f assert.PanicTestFunc, msg string, args ...interface{}) {
+ if assert.PanicsWithValuef(t, expected, f, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Panicsf asserts that the code inside the specified PanicTestFunc panics.
+//
+// assert.Panicsf(t, func(){ GoCrazy() }, "error message %s", "formatted")
+func Panicsf(t TestingT, f assert.PanicTestFunc, msg string, args ...interface{}) {
+ if assert.Panicsf(t, f, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Regexp asserts that a specified regexp matches a string.
+//
+// assert.Regexp(t, regexp.MustCompile("start"), "it's starting")
+// assert.Regexp(t, "start...$", "it's not starting")
+func Regexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interface{}) {
+ if assert.Regexp(t, rx, str, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Regexpf asserts that a specified regexp matches a string.
+//
+// assert.Regexpf(t, regexp.MustCompile("start", "error message %s", "formatted"), "it's starting")
+// assert.Regexpf(t, "start...$", "it's not starting", "error message %s", "formatted")
+func Regexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) {
+ if assert.Regexpf(t, rx, str, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Subset asserts that the specified list(array, slice...) contains all
+// elements given in the specified subset(array, slice...).
+//
+// assert.Subset(t, [1, 2, 3], [1, 2], "But [1, 2, 3] does contain [1, 2]")
+func Subset(t TestingT, list interface{}, subset interface{}, msgAndArgs ...interface{}) {
+ if assert.Subset(t, list, subset, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Subsetf asserts that the specified list(array, slice...) contains all
+// elements given in the specified subset(array, slice...).
+//
+// assert.Subsetf(t, [1, 2, 3], [1, 2], "But [1, 2, 3] does contain [1, 2]", "error message %s", "formatted")
+func Subsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) {
+ if assert.Subsetf(t, list, subset, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// True asserts that the specified value is true.
+//
+// assert.True(t, myBool)
+func True(t TestingT, value bool, msgAndArgs ...interface{}) {
+ if assert.True(t, value, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Truef asserts that the specified value is true.
+//
+// assert.Truef(t, myBool, "error message %s", "formatted")
+func Truef(t TestingT, value bool, msg string, args ...interface{}) {
+ if assert.Truef(t, value, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// WithinDuration asserts that the two times are within duration delta of each other.
+//
+// assert.WithinDuration(t, time.Now(), time.Now(), 10*time.Second)
+func WithinDuration(t TestingT, expected time.Time, actual time.Time, delta time.Duration, msgAndArgs ...interface{}) {
+ if assert.WithinDuration(t, expected, actual, delta, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// WithinDurationf asserts that the two times are within duration delta of each other.
+//
+// assert.WithinDurationf(t, time.Now(), time.Now(), 10*time.Second, "error message %s", "formatted")
+func WithinDurationf(t TestingT, expected time.Time, actual time.Time, delta time.Duration, msg string, args ...interface{}) {
+ if assert.WithinDurationf(t, expected, actual, delta, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Zero asserts that i is the zero value for its type.
+func Zero(t TestingT, i interface{}, msgAndArgs ...interface{}) {
+ if assert.Zero(t, i, msgAndArgs...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
+
+// Zerof asserts that i is the zero value for its type.
+func Zerof(t TestingT, i interface{}, msg string, args ...interface{}) {
+ if assert.Zerof(t, i, msg, args...) {
+ return
+ }
+ if h, ok := t.(tHelper); ok {
+ h.Helper()
+ }
+ t.FailNow()
+}
diff --git a/vendor/github.com/stretchr/testify/require/require.go.tmpl b/vendor/github.com/stretchr/testify/require/require.go.tmpl
new file mode 100644
index 0000000000..6ffc751b5e
--- /dev/null
+++ b/vendor/github.com/stretchr/testify/require/require.go.tmpl
@@ -0,0 +1,6 @@
+{{.Comment}}
+func {{.DocInfo.Name}}(t TestingT, {{.Params}}) {
+ if assert.{{.DocInfo.Name}}(t, {{.ForwardedParams}}) { return }
+ if h, ok := t.(tHelper); ok { h.Helper() }
+ t.FailNow()
+}
diff --git a/vendor/github.com/stretchr/testify/require/require_forward.go b/vendor/github.com/stretchr/testify/require/require_forward.go
new file mode 100644
index 0000000000..9fe41dbdc0
--- /dev/null
+++ b/vendor/github.com/stretchr/testify/require/require_forward.go
@@ -0,0 +1,957 @@
+/*
+* CODE GENERATED AUTOMATICALLY WITH github.com/stretchr/testify/_codegen
+* THIS FILE MUST NOT BE EDITED BY HAND
+ */
+
+package require
+
+import (
+ assert "github.com/stretchr/testify/assert"
+ http "net/http"
+ url "net/url"
+ time "time"
+)
+
+// Condition uses a Comparison to assert a complex condition.
+func (a *Assertions) Condition(comp assert.Comparison, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Condition(a.t, comp, msgAndArgs...)
+}
+
+// Conditionf uses a Comparison to assert a complex condition.
+func (a *Assertions) Conditionf(comp assert.Comparison, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Conditionf(a.t, comp, msg, args...)
+}
+
+// Contains asserts that the specified string, list(array, slice...) or map contains the
+// specified substring or element.
+//
+// a.Contains("Hello World", "World")
+// a.Contains(["Hello", "World"], "World")
+// a.Contains({"Hello": "World"}, "Hello")
+func (a *Assertions) Contains(s interface{}, contains interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Contains(a.t, s, contains, msgAndArgs...)
+}
+
+// Containsf asserts that the specified string, list(array, slice...) or map contains the
+// specified substring or element.
+//
+// a.Containsf("Hello World", "World", "error message %s", "formatted")
+// a.Containsf(["Hello", "World"], "World", "error message %s", "formatted")
+// a.Containsf({"Hello": "World"}, "Hello", "error message %s", "formatted")
+func (a *Assertions) Containsf(s interface{}, contains interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Containsf(a.t, s, contains, msg, args...)
+}
+
+// DirExists checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists.
+func (a *Assertions) DirExists(path string, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ DirExists(a.t, path, msgAndArgs...)
+}
+
+// DirExistsf checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists.
+func (a *Assertions) DirExistsf(path string, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ DirExistsf(a.t, path, msg, args...)
+}
+
+// ElementsMatch asserts that the specified listA(array, slice...) is equal to specified
+// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements,
+// the number of appearances of each of them in both lists should match.
+//
+// a.ElementsMatch([1, 3, 2, 3], [1, 3, 3, 2])
+func (a *Assertions) ElementsMatch(listA interface{}, listB interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ ElementsMatch(a.t, listA, listB, msgAndArgs...)
+}
+
+// ElementsMatchf asserts that the specified listA(array, slice...) is equal to specified
+// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements,
+// the number of appearances of each of them in both lists should match.
+//
+// a.ElementsMatchf([1, 3, 2, 3], [1, 3, 3, 2], "error message %s", "formatted")
+func (a *Assertions) ElementsMatchf(listA interface{}, listB interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ ElementsMatchf(a.t, listA, listB, msg, args...)
+}
+
+// Empty asserts that the specified object is empty. I.e. nil, "", false, 0 or either
+// a slice or a channel with len == 0.
+//
+// a.Empty(obj)
+func (a *Assertions) Empty(object interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Empty(a.t, object, msgAndArgs...)
+}
+
+// Emptyf asserts that the specified object is empty. I.e. nil, "", false, 0 or either
+// a slice or a channel with len == 0.
+//
+// a.Emptyf(obj, "error message %s", "formatted")
+func (a *Assertions) Emptyf(object interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Emptyf(a.t, object, msg, args...)
+}
+
+// Equal asserts that two objects are equal.
+//
+// a.Equal(123, 123)
+//
+// Pointer variable equality is determined based on the equality of the
+// referenced values (as opposed to the memory addresses). Function equality
+// cannot be determined and will always fail.
+func (a *Assertions) Equal(expected interface{}, actual interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Equal(a.t, expected, actual, msgAndArgs...)
+}
+
+// EqualError asserts that a function returned an error (i.e. not `nil`)
+// and that it is equal to the provided error.
+//
+// actualObj, err := SomeFunction()
+// a.EqualError(err, expectedErrorString)
+func (a *Assertions) EqualError(theError error, errString string, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ EqualError(a.t, theError, errString, msgAndArgs...)
+}
+
+// EqualErrorf asserts that a function returned an error (i.e. not `nil`)
+// and that it is equal to the provided error.
+//
+// actualObj, err := SomeFunction()
+// a.EqualErrorf(err, expectedErrorString, "error message %s", "formatted")
+func (a *Assertions) EqualErrorf(theError error, errString string, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ EqualErrorf(a.t, theError, errString, msg, args...)
+}
+
+// EqualValues asserts that two objects are equal or convertable to the same types
+// and equal.
+//
+// a.EqualValues(uint32(123), int32(123))
+func (a *Assertions) EqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ EqualValues(a.t, expected, actual, msgAndArgs...)
+}
+
+// EqualValuesf asserts that two objects are equal or convertable to the same types
+// and equal.
+//
+// a.EqualValuesf(uint32(123, "error message %s", "formatted"), int32(123))
+func (a *Assertions) EqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ EqualValuesf(a.t, expected, actual, msg, args...)
+}
+
+// Equalf asserts that two objects are equal.
+//
+// a.Equalf(123, 123, "error message %s", "formatted")
+//
+// Pointer variable equality is determined based on the equality of the
+// referenced values (as opposed to the memory addresses). Function equality
+// cannot be determined and will always fail.
+func (a *Assertions) Equalf(expected interface{}, actual interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Equalf(a.t, expected, actual, msg, args...)
+}
+
+// Error asserts that a function returned an error (i.e. not `nil`).
+//
+// actualObj, err := SomeFunction()
+// if a.Error(err) {
+// assert.Equal(t, expectedError, err)
+// }
+func (a *Assertions) Error(err error, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Error(a.t, err, msgAndArgs...)
+}
+
+// Errorf asserts that a function returned an error (i.e. not `nil`).
+//
+// actualObj, err := SomeFunction()
+// if a.Errorf(err, "error message %s", "formatted") {
+// assert.Equal(t, expectedErrorf, err)
+// }
+func (a *Assertions) Errorf(err error, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Errorf(a.t, err, msg, args...)
+}
+
+// Exactly asserts that two objects are equal in value and type.
+//
+// a.Exactly(int32(123), int64(123))
+func (a *Assertions) Exactly(expected interface{}, actual interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Exactly(a.t, expected, actual, msgAndArgs...)
+}
+
+// Exactlyf asserts that two objects are equal in value and type.
+//
+// a.Exactlyf(int32(123, "error message %s", "formatted"), int64(123))
+func (a *Assertions) Exactlyf(expected interface{}, actual interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Exactlyf(a.t, expected, actual, msg, args...)
+}
+
+// Fail reports a failure through
+func (a *Assertions) Fail(failureMessage string, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Fail(a.t, failureMessage, msgAndArgs...)
+}
+
+// FailNow fails test
+func (a *Assertions) FailNow(failureMessage string, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ FailNow(a.t, failureMessage, msgAndArgs...)
+}
+
+// FailNowf fails test
+func (a *Assertions) FailNowf(failureMessage string, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ FailNowf(a.t, failureMessage, msg, args...)
+}
+
+// Failf reports a failure through
+func (a *Assertions) Failf(failureMessage string, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Failf(a.t, failureMessage, msg, args...)
+}
+
+// False asserts that the specified value is false.
+//
+// a.False(myBool)
+func (a *Assertions) False(value bool, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ False(a.t, value, msgAndArgs...)
+}
+
+// Falsef asserts that the specified value is false.
+//
+// a.Falsef(myBool, "error message %s", "formatted")
+func (a *Assertions) Falsef(value bool, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Falsef(a.t, value, msg, args...)
+}
+
+// FileExists checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file.
+func (a *Assertions) FileExists(path string, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ FileExists(a.t, path, msgAndArgs...)
+}
+
+// FileExistsf checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file.
+func (a *Assertions) FileExistsf(path string, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ FileExistsf(a.t, path, msg, args...)
+}
+
+// HTTPBodyContains asserts that a specified handler returns a
+// body that contains a string.
+//
+// a.HTTPBodyContains(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func (a *Assertions) HTTPBodyContains(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ HTTPBodyContains(a.t, handler, method, url, values, str, msgAndArgs...)
+}
+
+// HTTPBodyContainsf asserts that a specified handler returns a
+// body that contains a string.
+//
+// a.HTTPBodyContainsf(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func (a *Assertions) HTTPBodyContainsf(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ HTTPBodyContainsf(a.t, handler, method, url, values, str, msg, args...)
+}
+
+// HTTPBodyNotContains asserts that a specified handler returns a
+// body that does not contain a string.
+//
+// a.HTTPBodyNotContains(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func (a *Assertions) HTTPBodyNotContains(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ HTTPBodyNotContains(a.t, handler, method, url, values, str, msgAndArgs...)
+}
+
+// HTTPBodyNotContainsf asserts that a specified handler returns a
+// body that does not contain a string.
+//
+// a.HTTPBodyNotContainsf(myHandler, "GET", "www.google.com", nil, "I'm Feeling Lucky", "error message %s", "formatted")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func (a *Assertions) HTTPBodyNotContainsf(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ HTTPBodyNotContainsf(a.t, handler, method, url, values, str, msg, args...)
+}
+
+// HTTPError asserts that a specified handler returns an error status code.
+//
+// a.HTTPError(myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}}
+//
+// Returns whether the assertion was successful (true) or not (false).
+func (a *Assertions) HTTPError(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ HTTPError(a.t, handler, method, url, values, msgAndArgs...)
+}
+
+// HTTPErrorf asserts that a specified handler returns an error status code.
+//
+// a.HTTPErrorf(myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}}
+//
+// Returns whether the assertion was successful (true, "error message %s", "formatted") or not (false).
+func (a *Assertions) HTTPErrorf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ HTTPErrorf(a.t, handler, method, url, values, msg, args...)
+}
+
+// HTTPRedirect asserts that a specified handler returns a redirect status code.
+//
+// a.HTTPRedirect(myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}}
+//
+// Returns whether the assertion was successful (true) or not (false).
+func (a *Assertions) HTTPRedirect(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ HTTPRedirect(a.t, handler, method, url, values, msgAndArgs...)
+}
+
+// HTTPRedirectf asserts that a specified handler returns a redirect status code.
+//
+// a.HTTPRedirectf(myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}}
+//
+// Returns whether the assertion was successful (true, "error message %s", "formatted") or not (false).
+func (a *Assertions) HTTPRedirectf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ HTTPRedirectf(a.t, handler, method, url, values, msg, args...)
+}
+
+// HTTPSuccess asserts that a specified handler returns a success status code.
+//
+// a.HTTPSuccess(myHandler, "POST", "http://www.google.com", nil)
+//
+// Returns whether the assertion was successful (true) or not (false).
+func (a *Assertions) HTTPSuccess(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ HTTPSuccess(a.t, handler, method, url, values, msgAndArgs...)
+}
+
+// HTTPSuccessf asserts that a specified handler returns a success status code.
+//
+// a.HTTPSuccessf(myHandler, "POST", "http://www.google.com", nil, "error message %s", "formatted")
+//
+// Returns whether the assertion was successful (true) or not (false).
+func (a *Assertions) HTTPSuccessf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ HTTPSuccessf(a.t, handler, method, url, values, msg, args...)
+}
+
+// Implements asserts that an object is implemented by the specified interface.
+//
+// a.Implements((*MyInterface)(nil), new(MyObject))
+func (a *Assertions) Implements(interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Implements(a.t, interfaceObject, object, msgAndArgs...)
+}
+
+// Implementsf asserts that an object is implemented by the specified interface.
+//
+// a.Implementsf((*MyInterface, "error message %s", "formatted")(nil), new(MyObject))
+func (a *Assertions) Implementsf(interfaceObject interface{}, object interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Implementsf(a.t, interfaceObject, object, msg, args...)
+}
+
+// InDelta asserts that the two numerals are within delta of each other.
+//
+// a.InDelta(math.Pi, (22 / 7.0), 0.01)
+func (a *Assertions) InDelta(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ InDelta(a.t, expected, actual, delta, msgAndArgs...)
+}
+
+// InDeltaMapValues is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.
+func (a *Assertions) InDeltaMapValues(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ InDeltaMapValues(a.t, expected, actual, delta, msgAndArgs...)
+}
+
+// InDeltaMapValuesf is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.
+func (a *Assertions) InDeltaMapValuesf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ InDeltaMapValuesf(a.t, expected, actual, delta, msg, args...)
+}
+
+// InDeltaSlice is the same as InDelta, except it compares two slices.
+func (a *Assertions) InDeltaSlice(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ InDeltaSlice(a.t, expected, actual, delta, msgAndArgs...)
+}
+
+// InDeltaSlicef is the same as InDelta, except it compares two slices.
+func (a *Assertions) InDeltaSlicef(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ InDeltaSlicef(a.t, expected, actual, delta, msg, args...)
+}
+
+// InDeltaf asserts that the two numerals are within delta of each other.
+//
+// a.InDeltaf(math.Pi, (22 / 7.0, "error message %s", "formatted"), 0.01)
+func (a *Assertions) InDeltaf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ InDeltaf(a.t, expected, actual, delta, msg, args...)
+}
+
+// InEpsilon asserts that expected and actual have a relative error less than epsilon
+func (a *Assertions) InEpsilon(expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ InEpsilon(a.t, expected, actual, epsilon, msgAndArgs...)
+}
+
+// InEpsilonSlice is the same as InEpsilon, except it compares each value from two slices.
+func (a *Assertions) InEpsilonSlice(expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ InEpsilonSlice(a.t, expected, actual, epsilon, msgAndArgs...)
+}
+
+// InEpsilonSlicef is the same as InEpsilon, except it compares each value from two slices.
+func (a *Assertions) InEpsilonSlicef(expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ InEpsilonSlicef(a.t, expected, actual, epsilon, msg, args...)
+}
+
+// InEpsilonf asserts that expected and actual have a relative error less than epsilon
+func (a *Assertions) InEpsilonf(expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ InEpsilonf(a.t, expected, actual, epsilon, msg, args...)
+}
+
+// IsType asserts that the specified objects are of the same type.
+func (a *Assertions) IsType(expectedType interface{}, object interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ IsType(a.t, expectedType, object, msgAndArgs...)
+}
+
+// IsTypef asserts that the specified objects are of the same type.
+func (a *Assertions) IsTypef(expectedType interface{}, object interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ IsTypef(a.t, expectedType, object, msg, args...)
+}
+
+// JSONEq asserts that two JSON strings are equivalent.
+//
+// a.JSONEq(`{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`)
+func (a *Assertions) JSONEq(expected string, actual string, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ JSONEq(a.t, expected, actual, msgAndArgs...)
+}
+
+// JSONEqf asserts that two JSON strings are equivalent.
+//
+// a.JSONEqf(`{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`, "error message %s", "formatted")
+func (a *Assertions) JSONEqf(expected string, actual string, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ JSONEqf(a.t, expected, actual, msg, args...)
+}
+
+// Len asserts that the specified object has specific length.
+// Len also fails if the object has a type that len() not accept.
+//
+// a.Len(mySlice, 3)
+func (a *Assertions) Len(object interface{}, length int, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Len(a.t, object, length, msgAndArgs...)
+}
+
+// Lenf asserts that the specified object has specific length.
+// Lenf also fails if the object has a type that len() not accept.
+//
+// a.Lenf(mySlice, 3, "error message %s", "formatted")
+func (a *Assertions) Lenf(object interface{}, length int, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Lenf(a.t, object, length, msg, args...)
+}
+
+// Nil asserts that the specified object is nil.
+//
+// a.Nil(err)
+func (a *Assertions) Nil(object interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Nil(a.t, object, msgAndArgs...)
+}
+
+// Nilf asserts that the specified object is nil.
+//
+// a.Nilf(err, "error message %s", "formatted")
+func (a *Assertions) Nilf(object interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Nilf(a.t, object, msg, args...)
+}
+
+// NoError asserts that a function returned no error (i.e. `nil`).
+//
+// actualObj, err := SomeFunction()
+// if a.NoError(err) {
+// assert.Equal(t, expectedObj, actualObj)
+// }
+func (a *Assertions) NoError(err error, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ NoError(a.t, err, msgAndArgs...)
+}
+
+// NoErrorf asserts that a function returned no error (i.e. `nil`).
+//
+// actualObj, err := SomeFunction()
+// if a.NoErrorf(err, "error message %s", "formatted") {
+// assert.Equal(t, expectedObj, actualObj)
+// }
+func (a *Assertions) NoErrorf(err error, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ NoErrorf(a.t, err, msg, args...)
+}
+
+// NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the
+// specified substring or element.
+//
+// a.NotContains("Hello World", "Earth")
+// a.NotContains(["Hello", "World"], "Earth")
+// a.NotContains({"Hello": "World"}, "Earth")
+func (a *Assertions) NotContains(s interface{}, contains interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ NotContains(a.t, s, contains, msgAndArgs...)
+}
+
+// NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the
+// specified substring or element.
+//
+// a.NotContainsf("Hello World", "Earth", "error message %s", "formatted")
+// a.NotContainsf(["Hello", "World"], "Earth", "error message %s", "formatted")
+// a.NotContainsf({"Hello": "World"}, "Earth", "error message %s", "formatted")
+func (a *Assertions) NotContainsf(s interface{}, contains interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ NotContainsf(a.t, s, contains, msg, args...)
+}
+
+// NotEmpty asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either
+// a slice or a channel with len == 0.
+//
+// if a.NotEmpty(obj) {
+// assert.Equal(t, "two", obj[1])
+// }
+func (a *Assertions) NotEmpty(object interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ NotEmpty(a.t, object, msgAndArgs...)
+}
+
+// NotEmptyf asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either
+// a slice or a channel with len == 0.
+//
+// if a.NotEmptyf(obj, "error message %s", "formatted") {
+// assert.Equal(t, "two", obj[1])
+// }
+func (a *Assertions) NotEmptyf(object interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ NotEmptyf(a.t, object, msg, args...)
+}
+
+// NotEqual asserts that the specified values are NOT equal.
+//
+// a.NotEqual(obj1, obj2)
+//
+// Pointer variable equality is determined based on the equality of the
+// referenced values (as opposed to the memory addresses).
+func (a *Assertions) NotEqual(expected interface{}, actual interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ NotEqual(a.t, expected, actual, msgAndArgs...)
+}
+
+// NotEqualf asserts that the specified values are NOT equal.
+//
+// a.NotEqualf(obj1, obj2, "error message %s", "formatted")
+//
+// Pointer variable equality is determined based on the equality of the
+// referenced values (as opposed to the memory addresses).
+func (a *Assertions) NotEqualf(expected interface{}, actual interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ NotEqualf(a.t, expected, actual, msg, args...)
+}
+
+// NotNil asserts that the specified object is not nil.
+//
+// a.NotNil(err)
+func (a *Assertions) NotNil(object interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ NotNil(a.t, object, msgAndArgs...)
+}
+
+// NotNilf asserts that the specified object is not nil.
+//
+// a.NotNilf(err, "error message %s", "formatted")
+func (a *Assertions) NotNilf(object interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ NotNilf(a.t, object, msg, args...)
+}
+
+// NotPanics asserts that the code inside the specified PanicTestFunc does NOT panic.
+//
+// a.NotPanics(func(){ RemainCalm() })
+func (a *Assertions) NotPanics(f assert.PanicTestFunc, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ NotPanics(a.t, f, msgAndArgs...)
+}
+
+// NotPanicsf asserts that the code inside the specified PanicTestFunc does NOT panic.
+//
+// a.NotPanicsf(func(){ RemainCalm() }, "error message %s", "formatted")
+func (a *Assertions) NotPanicsf(f assert.PanicTestFunc, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ NotPanicsf(a.t, f, msg, args...)
+}
+
+// NotRegexp asserts that a specified regexp does not match a string.
+//
+// a.NotRegexp(regexp.MustCompile("starts"), "it's starting")
+// a.NotRegexp("^start", "it's not starting")
+func (a *Assertions) NotRegexp(rx interface{}, str interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ NotRegexp(a.t, rx, str, msgAndArgs...)
+}
+
+// NotRegexpf asserts that a specified regexp does not match a string.
+//
+// a.NotRegexpf(regexp.MustCompile("starts", "error message %s", "formatted"), "it's starting")
+// a.NotRegexpf("^start", "it's not starting", "error message %s", "formatted")
+func (a *Assertions) NotRegexpf(rx interface{}, str interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ NotRegexpf(a.t, rx, str, msg, args...)
+}
+
+// NotSubset asserts that the specified list(array, slice...) contains not all
+// elements given in the specified subset(array, slice...).
+//
+// a.NotSubset([1, 3, 4], [1, 2], "But [1, 3, 4] does not contain [1, 2]")
+func (a *Assertions) NotSubset(list interface{}, subset interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ NotSubset(a.t, list, subset, msgAndArgs...)
+}
+
+// NotSubsetf asserts that the specified list(array, slice...) contains not all
+// elements given in the specified subset(array, slice...).
+//
+// a.NotSubsetf([1, 3, 4], [1, 2], "But [1, 3, 4] does not contain [1, 2]", "error message %s", "formatted")
+func (a *Assertions) NotSubsetf(list interface{}, subset interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ NotSubsetf(a.t, list, subset, msg, args...)
+}
+
+// NotZero asserts that i is not the zero value for its type.
+func (a *Assertions) NotZero(i interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ NotZero(a.t, i, msgAndArgs...)
+}
+
+// NotZerof asserts that i is not the zero value for its type.
+func (a *Assertions) NotZerof(i interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ NotZerof(a.t, i, msg, args...)
+}
+
+// Panics asserts that the code inside the specified PanicTestFunc panics.
+//
+// a.Panics(func(){ GoCrazy() })
+func (a *Assertions) Panics(f assert.PanicTestFunc, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Panics(a.t, f, msgAndArgs...)
+}
+
+// PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that
+// the recovered panic value equals the expected panic value.
+//
+// a.PanicsWithValue("crazy error", func(){ GoCrazy() })
+func (a *Assertions) PanicsWithValue(expected interface{}, f assert.PanicTestFunc, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ PanicsWithValue(a.t, expected, f, msgAndArgs...)
+}
+
+// PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that
+// the recovered panic value equals the expected panic value.
+//
+// a.PanicsWithValuef("crazy error", func(){ GoCrazy() }, "error message %s", "formatted")
+func (a *Assertions) PanicsWithValuef(expected interface{}, f assert.PanicTestFunc, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ PanicsWithValuef(a.t, expected, f, msg, args...)
+}
+
+// Panicsf asserts that the code inside the specified PanicTestFunc panics.
+//
+// a.Panicsf(func(){ GoCrazy() }, "error message %s", "formatted")
+func (a *Assertions) Panicsf(f assert.PanicTestFunc, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Panicsf(a.t, f, msg, args...)
+}
+
+// Regexp asserts that a specified regexp matches a string.
+//
+// a.Regexp(regexp.MustCompile("start"), "it's starting")
+// a.Regexp("start...$", "it's not starting")
+func (a *Assertions) Regexp(rx interface{}, str interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Regexp(a.t, rx, str, msgAndArgs...)
+}
+
+// Regexpf asserts that a specified regexp matches a string.
+//
+// a.Regexpf(regexp.MustCompile("start", "error message %s", "formatted"), "it's starting")
+// a.Regexpf("start...$", "it's not starting", "error message %s", "formatted")
+func (a *Assertions) Regexpf(rx interface{}, str interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Regexpf(a.t, rx, str, msg, args...)
+}
+
+// Subset asserts that the specified list(array, slice...) contains all
+// elements given in the specified subset(array, slice...).
+//
+// a.Subset([1, 2, 3], [1, 2], "But [1, 2, 3] does contain [1, 2]")
+func (a *Assertions) Subset(list interface{}, subset interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Subset(a.t, list, subset, msgAndArgs...)
+}
+
+// Subsetf asserts that the specified list(array, slice...) contains all
+// elements given in the specified subset(array, slice...).
+//
+// a.Subsetf([1, 2, 3], [1, 2], "But [1, 2, 3] does contain [1, 2]", "error message %s", "formatted")
+func (a *Assertions) Subsetf(list interface{}, subset interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Subsetf(a.t, list, subset, msg, args...)
+}
+
+// True asserts that the specified value is true.
+//
+// a.True(myBool)
+func (a *Assertions) True(value bool, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ True(a.t, value, msgAndArgs...)
+}
+
+// Truef asserts that the specified value is true.
+//
+// a.Truef(myBool, "error message %s", "formatted")
+func (a *Assertions) Truef(value bool, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Truef(a.t, value, msg, args...)
+}
+
+// WithinDuration asserts that the two times are within duration delta of each other.
+//
+// a.WithinDuration(time.Now(), time.Now(), 10*time.Second)
+func (a *Assertions) WithinDuration(expected time.Time, actual time.Time, delta time.Duration, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ WithinDuration(a.t, expected, actual, delta, msgAndArgs...)
+}
+
+// WithinDurationf asserts that the two times are within duration delta of each other.
+//
+// a.WithinDurationf(time.Now(), time.Now(), 10*time.Second, "error message %s", "formatted")
+func (a *Assertions) WithinDurationf(expected time.Time, actual time.Time, delta time.Duration, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ WithinDurationf(a.t, expected, actual, delta, msg, args...)
+}
+
+// Zero asserts that i is the zero value for its type.
+func (a *Assertions) Zero(i interface{}, msgAndArgs ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Zero(a.t, i, msgAndArgs...)
+}
+
+// Zerof asserts that i is the zero value for its type.
+func (a *Assertions) Zerof(i interface{}, msg string, args ...interface{}) {
+ if h, ok := a.t.(tHelper); ok {
+ h.Helper()
+ }
+ Zerof(a.t, i, msg, args...)
+}
diff --git a/vendor/github.com/stretchr/testify/require/require_forward.go.tmpl b/vendor/github.com/stretchr/testify/require/require_forward.go.tmpl
new file mode 100644
index 0000000000..54124df1d3
--- /dev/null
+++ b/vendor/github.com/stretchr/testify/require/require_forward.go.tmpl
@@ -0,0 +1,5 @@
+{{.CommentWithoutT "a"}}
+func (a *Assertions) {{.DocInfo.Name}}({{.Params}}) {
+ if h, ok := a.t.(tHelper); ok { h.Helper() }
+ {{.DocInfo.Name}}(a.t, {{.ForwardedParams}})
+}
diff --git a/vendor/github.com/stretchr/testify/require/requirements.go b/vendor/github.com/stretchr/testify/require/requirements.go
new file mode 100644
index 0000000000..6b85c5ecef
--- /dev/null
+++ b/vendor/github.com/stretchr/testify/require/requirements.go
@@ -0,0 +1,29 @@
+package require
+
+// TestingT is an interface wrapper around *testing.T
+type TestingT interface {
+ Errorf(format string, args ...interface{})
+ FailNow()
+}
+
+type tHelper interface {
+ Helper()
+}
+
+// ComparisonAssertionFunc is a common function prototype when comparing two values. Can be useful
+// for table driven tests.
+type ComparisonAssertionFunc func(TestingT, interface{}, interface{}, ...interface{})
+
+// ValueAssertionFunc is a common function prototype when validating a single value. Can be useful
+// for table driven tests.
+type ValueAssertionFunc func(TestingT, interface{}, ...interface{})
+
+// BoolAssertionFunc is a common function prototype when validating a bool value. Can be useful
+// for table driven tests.
+type BoolAssertionFunc func(TestingT, bool, ...interface{})
+
+// ErrorAssertionFunc is a common function prototype when validating an error value. Can be useful
+// for table driven tests.
+type ErrorAssertionFunc func(TestingT, error, ...interface{})
+
+//go:generate go run ../_codegen/main.go -output-package=require -template=require.go.tmpl -include-format-funcs
diff --git a/vendor/go.etcd.io/bbolt/.gitignore b/vendor/go.etcd.io/bbolt/.gitignore
new file mode 100644
index 0000000000..3bcd8cbaf0
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/.gitignore
@@ -0,0 +1,5 @@
+*.prof
+*.test
+*.swp
+/bin/
+cover.out
diff --git a/vendor/go.etcd.io/bbolt/.travis.yml b/vendor/go.etcd.io/bbolt/.travis.yml
new file mode 100644
index 0000000000..a60300c558
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/.travis.yml
@@ -0,0 +1,17 @@
+language: go
+go_import_path: go.etcd.io/bbolt
+
+sudo: false
+
+go:
+- 1.11
+
+before_install:
+- go get -v honnef.co/go/tools/...
+- go get -v github.com/kisielk/errcheck
+
+script:
+- make fmt
+- make test
+- make race
+# - make errcheck
diff --git a/vendor/go.etcd.io/bbolt/LICENSE b/vendor/go.etcd.io/bbolt/LICENSE
new file mode 100644
index 0000000000..004e77fe5d
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2013 Ben Johnson
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/vendor/go.etcd.io/bbolt/Makefile b/vendor/go.etcd.io/bbolt/Makefile
new file mode 100644
index 0000000000..2968aaa61d
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/Makefile
@@ -0,0 +1,38 @@
+BRANCH=`git rev-parse --abbrev-ref HEAD`
+COMMIT=`git rev-parse --short HEAD`
+GOLDFLAGS="-X main.branch $(BRANCH) -X main.commit $(COMMIT)"
+
+default: build
+
+race:
+ @TEST_FREELIST_TYPE=hashmap go test -v -race -test.run="TestSimulate_(100op|1000op)"
+ @echo "array freelist test"
+ @TEST_FREELIST_TYPE=array go test -v -race -test.run="TestSimulate_(100op|1000op)"
+
+fmt:
+ !(gofmt -l -s -d $(shell find . -name \*.go) | grep '[a-z]')
+
+# go get honnef.co/go/tools/simple
+gosimple:
+ gosimple ./...
+
+# go get honnef.co/go/tools/unused
+unused:
+ unused ./...
+
+# go get github.com/kisielk/errcheck
+errcheck:
+ @errcheck -ignorepkg=bytes -ignore=os:Remove go.etcd.io/bbolt
+
+test:
+ TEST_FREELIST_TYPE=hashmap go test -timeout 20m -v -coverprofile cover.out -covermode atomic
+ # Note: gets "program not an importable package" in out of path builds
+ TEST_FREELIST_TYPE=hashmap go test -v ./cmd/bbolt
+
+ @echo "array freelist test"
+
+ @TEST_FREELIST_TYPE=array go test -timeout 20m -v -coverprofile cover.out -covermode atomic
+ # Note: gets "program not an importable package" in out of path builds
+ @TEST_FREELIST_TYPE=array go test -v ./cmd/bbolt
+
+.PHONY: race fmt errcheck test gosimple unused
diff --git a/vendor/go.etcd.io/bbolt/README.md b/vendor/go.etcd.io/bbolt/README.md
new file mode 100644
index 0000000000..e9989efc50
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/README.md
@@ -0,0 +1,954 @@
+bbolt
+=====
+
+[![Go Report Card](https://goreportcard.com/badge/github.com/etcd-io/bbolt?style=flat-square)](https://goreportcard.com/report/github.com/etcd-io/bbolt)
+[![Coverage](https://codecov.io/gh/etcd-io/bbolt/branch/master/graph/badge.svg)](https://codecov.io/gh/etcd-io/bbolt)
+[![Build Status Travis](https://img.shields.io/travis/etcd-io/bboltlabs.svg?style=flat-square&&branch=master)](https://travis-ci.com/etcd-io/bbolt)
+[![Godoc](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](https://godoc.org/github.com/etcd-io/bbolt)
+[![Releases](https://img.shields.io/github/release/etcd-io/bbolt/all.svg?style=flat-square)](https://github.com/etcd-io/bbolt/releases)
+[![LICENSE](https://img.shields.io/github/license/etcd-io/bbolt.svg?style=flat-square)](https://github.com/etcd-io/bbolt/blob/master/LICENSE)
+
+bbolt is a fork of [Ben Johnson's][gh_ben] [Bolt][bolt] key/value
+store. The purpose of this fork is to provide the Go community with an active
+maintenance and development target for Bolt; the goal is improved reliability
+and stability. bbolt includes bug fixes, performance enhancements, and features
+not found in Bolt while preserving backwards compatibility with the Bolt API.
+
+Bolt is a pure Go key/value store inspired by [Howard Chu's][hyc_symas]
+[LMDB project][lmdb]. The goal of the project is to provide a simple,
+fast, and reliable database for projects that don't require a full database
+server such as Postgres or MySQL.
+
+Since Bolt is meant to be used as such a low-level piece of functionality,
+simplicity is key. The API will be small and only focus on getting values
+and setting values. That's it.
+
+[gh_ben]: https://github.com/benbjohnson
+[bolt]: https://github.com/boltdb/bolt
+[hyc_symas]: https://twitter.com/hyc_symas
+[lmdb]: http://symas.com/mdb/
+
+## Project Status
+
+Bolt is stable, the API is fixed, and the file format is fixed. Full unit
+test coverage and randomized black box testing are used to ensure database
+consistency and thread safety. Bolt is currently used in high-load production
+environments serving databases as large as 1TB. Many companies such as
+Shopify and Heroku use Bolt-backed services every day.
+
+## Project versioning
+
+bbolt uses [semantic versioning](http://semver.org).
+API should not change between patch and minor releases.
+New minor versions may add additional features to the API.
+
+## Table of Contents
+
+ - [Getting Started](#getting-started)
+ - [Installing](#installing)
+ - [Opening a database](#opening-a-database)
+ - [Transactions](#transactions)
+ - [Read-write transactions](#read-write-transactions)
+ - [Read-only transactions](#read-only-transactions)
+ - [Batch read-write transactions](#batch-read-write-transactions)
+ - [Managing transactions manually](#managing-transactions-manually)
+ - [Using buckets](#using-buckets)
+ - [Using key/value pairs](#using-keyvalue-pairs)
+ - [Autoincrementing integer for the bucket](#autoincrementing-integer-for-the-bucket)
+ - [Iterating over keys](#iterating-over-keys)
+ - [Prefix scans](#prefix-scans)
+ - [Range scans](#range-scans)
+ - [ForEach()](#foreach)
+ - [Nested buckets](#nested-buckets)
+ - [Database backups](#database-backups)
+ - [Statistics](#statistics)
+ - [Read-Only Mode](#read-only-mode)
+ - [Mobile Use (iOS/Android)](#mobile-use-iosandroid)
+ - [Resources](#resources)
+ - [Comparison with other databases](#comparison-with-other-databases)
+ - [Postgres, MySQL, & other relational databases](#postgres-mysql--other-relational-databases)
+ - [LevelDB, RocksDB](#leveldb-rocksdb)
+ - [LMDB](#lmdb)
+ - [Caveats & Limitations](#caveats--limitations)
+ - [Reading the Source](#reading-the-source)
+ - [Other Projects Using Bolt](#other-projects-using-bolt)
+
+## Getting Started
+
+### Installing
+
+To start using Bolt, install Go and run `go get`:
+
+```sh
+$ go get go.etcd.io/bbolt/...
+```
+
+This will retrieve the library and install the `bolt` command line utility into
+your `$GOBIN` path.
+
+
+### Importing bbolt
+
+To use bbolt as an embedded key-value store, import as:
+
+```go
+import bolt "go.etcd.io/bbolt"
+
+db, err := bolt.Open(path, 0666, nil)
+if err != nil {
+ return err
+}
+defer db.Close()
+```
+
+
+### Opening a database
+
+The top-level object in Bolt is a `DB`. It is represented as a single file on
+your disk and represents a consistent snapshot of your data.
+
+To open your database, simply use the `bolt.Open()` function:
+
+```go
+package main
+
+import (
+ "log"
+
+ bolt "go.etcd.io/bbolt"
+)
+
+func main() {
+ // Open the my.db data file in your current directory.
+ // It will be created if it doesn't exist.
+ db, err := bolt.Open("my.db", 0600, nil)
+ if err != nil {
+ log.Fatal(err)
+ }
+ defer db.Close()
+
+ ...
+}
+```
+
+Please note that Bolt obtains a file lock on the data file so multiple processes
+cannot open the same database at the same time. Opening an already open Bolt
+database will cause it to hang until the other process closes it. To prevent
+an indefinite wait you can pass a timeout option to the `Open()` function:
+
+```go
+db, err := bolt.Open("my.db", 0600, &bolt.Options{Timeout: 1 * time.Second})
+```
+
+
+### Transactions
+
+Bolt allows only one read-write transaction at a time but allows as many
+read-only transactions as you want at a time. Each transaction has a consistent
+view of the data as it existed when the transaction started.
+
+Individual transactions and all objects created from them (e.g. buckets, keys)
+are not thread safe. To work with data in multiple goroutines you must start
+a transaction for each one or use locking to ensure only one goroutine accesses
+a transaction at a time. Creating transaction from the `DB` is thread safe.
+
+Read-only transactions and read-write transactions should not depend on one
+another and generally shouldn't be opened simultaneously in the same goroutine.
+This can cause a deadlock as the read-write transaction needs to periodically
+re-map the data file but it cannot do so while a read-only transaction is open.
+
+
+#### Read-write transactions
+
+To start a read-write transaction, you can use the `DB.Update()` function:
+
+```go
+err := db.Update(func(tx *bolt.Tx) error {
+ ...
+ return nil
+})
+```
+
+Inside the closure, you have a consistent view of the database. You commit the
+transaction by returning `nil` at the end. You can also rollback the transaction
+at any point by returning an error. All database operations are allowed inside
+a read-write transaction.
+
+Always check the return error as it will report any disk failures that can cause
+your transaction to not complete. If you return an error within your closure
+it will be passed through.
+
+
+#### Read-only transactions
+
+To start a read-only transaction, you can use the `DB.View()` function:
+
+```go
+err := db.View(func(tx *bolt.Tx) error {
+ ...
+ return nil
+})
+```
+
+You also get a consistent view of the database within this closure, however,
+no mutating operations are allowed within a read-only transaction. You can only
+retrieve buckets, retrieve values, and copy the database within a read-only
+transaction.
+
+
+#### Batch read-write transactions
+
+Each `DB.Update()` waits for disk to commit the writes. This overhead
+can be minimized by combining multiple updates with the `DB.Batch()`
+function:
+
+```go
+err := db.Batch(func(tx *bolt.Tx) error {
+ ...
+ return nil
+})
+```
+
+Concurrent Batch calls are opportunistically combined into larger
+transactions. Batch is only useful when there are multiple goroutines
+calling it.
+
+The trade-off is that `Batch` can call the given
+function multiple times, if parts of the transaction fail. The
+function must be idempotent and side effects must take effect only
+after a successful return from `DB.Batch()`.
+
+For example: don't display messages from inside the function, instead
+set variables in the enclosing scope:
+
+```go
+var id uint64
+err := db.Batch(func(tx *bolt.Tx) error {
+ // Find last key in bucket, decode as bigendian uint64, increment
+ // by one, encode back to []byte, and add new key.
+ ...
+ id = newValue
+ return nil
+})
+if err != nil {
+ return ...
+}
+fmt.Println("Allocated ID %d", id)
+```
+
+
+#### Managing transactions manually
+
+The `DB.View()` and `DB.Update()` functions are wrappers around the `DB.Begin()`
+function. These helper functions will start the transaction, execute a function,
+and then safely close your transaction if an error is returned. This is the
+recommended way to use Bolt transactions.
+
+However, sometimes you may want to manually start and end your transactions.
+You can use the `DB.Begin()` function directly but **please** be sure to close
+the transaction.
+
+```go
+// Start a writable transaction.
+tx, err := db.Begin(true)
+if err != nil {
+ return err
+}
+defer tx.Rollback()
+
+// Use the transaction...
+_, err := tx.CreateBucket([]byte("MyBucket"))
+if err != nil {
+ return err
+}
+
+// Commit the transaction and check for error.
+if err := tx.Commit(); err != nil {
+ return err
+}
+```
+
+The first argument to `DB.Begin()` is a boolean stating if the transaction
+should be writable.
+
+
+### Using buckets
+
+Buckets are collections of key/value pairs within the database. All keys in a
+bucket must be unique. You can create a bucket using the `DB.CreateBucket()`
+function:
+
+```go
+db.Update(func(tx *bolt.Tx) error {
+ b, err := tx.CreateBucket([]byte("MyBucket"))
+ if err != nil {
+ return fmt.Errorf("create bucket: %s", err)
+ }
+ return nil
+})
+```
+
+You can also create a bucket only if it doesn't exist by using the
+`Tx.CreateBucketIfNotExists()` function. It's a common pattern to call this
+function for all your top-level buckets after you open your database so you can
+guarantee that they exist for future transactions.
+
+To delete a bucket, simply call the `Tx.DeleteBucket()` function.
+
+
+### Using key/value pairs
+
+To save a key/value pair to a bucket, use the `Bucket.Put()` function:
+
+```go
+db.Update(func(tx *bolt.Tx) error {
+ b := tx.Bucket([]byte("MyBucket"))
+ err := b.Put([]byte("answer"), []byte("42"))
+ return err
+})
+```
+
+This will set the value of the `"answer"` key to `"42"` in the `MyBucket`
+bucket. To retrieve this value, we can use the `Bucket.Get()` function:
+
+```go
+db.View(func(tx *bolt.Tx) error {
+ b := tx.Bucket([]byte("MyBucket"))
+ v := b.Get([]byte("answer"))
+ fmt.Printf("The answer is: %s\n", v)
+ return nil
+})
+```
+
+The `Get()` function does not return an error because its operation is
+guaranteed to work (unless there is some kind of system failure). If the key
+exists then it will return its byte slice value. If it doesn't exist then it
+will return `nil`. It's important to note that you can have a zero-length value
+set to a key which is different than the key not existing.
+
+Use the `Bucket.Delete()` function to delete a key from the bucket.
+
+Please note that values returned from `Get()` are only valid while the
+transaction is open. If you need to use a value outside of the transaction
+then you must use `copy()` to copy it to another byte slice.
+
+
+### Autoincrementing integer for the bucket
+By using the `NextSequence()` function, you can let Bolt determine a sequence
+which can be used as the unique identifier for your key/value pairs. See the
+example below.
+
+```go
+// CreateUser saves u to the store. The new user ID is set on u once the data is persisted.
+func (s *Store) CreateUser(u *User) error {
+ return s.db.Update(func(tx *bolt.Tx) error {
+ // Retrieve the users bucket.
+ // This should be created when the DB is first opened.
+ b := tx.Bucket([]byte("users"))
+
+ // Generate ID for the user.
+ // This returns an error only if the Tx is closed or not writeable.
+ // That can't happen in an Update() call so I ignore the error check.
+ id, _ := b.NextSequence()
+ u.ID = int(id)
+
+ // Marshal user data into bytes.
+ buf, err := json.Marshal(u)
+ if err != nil {
+ return err
+ }
+
+ // Persist bytes to users bucket.
+ return b.Put(itob(u.ID), buf)
+ })
+}
+
+// itob returns an 8-byte big endian representation of v.
+func itob(v int) []byte {
+ b := make([]byte, 8)
+ binary.BigEndian.PutUint64(b, uint64(v))
+ return b
+}
+
+type User struct {
+ ID int
+ ...
+}
+```
+
+### Iterating over keys
+
+Bolt stores its keys in byte-sorted order within a bucket. This makes sequential
+iteration over these keys extremely fast. To iterate over keys we'll use a
+`Cursor`:
+
+```go
+db.View(func(tx *bolt.Tx) error {
+ // Assume bucket exists and has keys
+ b := tx.Bucket([]byte("MyBucket"))
+
+ c := b.Cursor()
+
+ for k, v := c.First(); k != nil; k, v = c.Next() {
+ fmt.Printf("key=%s, value=%s\n", k, v)
+ }
+
+ return nil
+})
+```
+
+The cursor allows you to move to a specific point in the list of keys and move
+forward or backward through the keys one at a time.
+
+The following functions are available on the cursor:
+
+```
+First() Move to the first key.
+Last() Move to the last key.
+Seek() Move to a specific key.
+Next() Move to the next key.
+Prev() Move to the previous key.
+```
+
+Each of those functions has a return signature of `(key []byte, value []byte)`.
+When you have iterated to the end of the cursor then `Next()` will return a
+`nil` key. You must seek to a position using `First()`, `Last()`, or `Seek()`
+before calling `Next()` or `Prev()`. If you do not seek to a position then
+these functions will return a `nil` key.
+
+During iteration, if the key is non-`nil` but the value is `nil`, that means
+the key refers to a bucket rather than a value. Use `Bucket.Bucket()` to
+access the sub-bucket.
+
+
+#### Prefix scans
+
+To iterate over a key prefix, you can combine `Seek()` and `bytes.HasPrefix()`:
+
+```go
+db.View(func(tx *bolt.Tx) error {
+ // Assume bucket exists and has keys
+ c := tx.Bucket([]byte("MyBucket")).Cursor()
+
+ prefix := []byte("1234")
+ for k, v := c.Seek(prefix); k != nil && bytes.HasPrefix(k, prefix); k, v = c.Next() {
+ fmt.Printf("key=%s, value=%s\n", k, v)
+ }
+
+ return nil
+})
+```
+
+#### Range scans
+
+Another common use case is scanning over a range such as a time range. If you
+use a sortable time encoding such as RFC3339 then you can query a specific
+date range like this:
+
+```go
+db.View(func(tx *bolt.Tx) error {
+ // Assume our events bucket exists and has RFC3339 encoded time keys.
+ c := tx.Bucket([]byte("Events")).Cursor()
+
+ // Our time range spans the 90's decade.
+ min := []byte("1990-01-01T00:00:00Z")
+ max := []byte("2000-01-01T00:00:00Z")
+
+ // Iterate over the 90's.
+ for k, v := c.Seek(min); k != nil && bytes.Compare(k, max) <= 0; k, v = c.Next() {
+ fmt.Printf("%s: %s\n", k, v)
+ }
+
+ return nil
+})
+```
+
+Note that, while RFC3339 is sortable, the Golang implementation of RFC3339Nano does not use a fixed number of digits after the decimal point and is therefore not sortable.
+
+
+#### ForEach()
+
+You can also use the function `ForEach()` if you know you'll be iterating over
+all the keys in a bucket:
+
+```go
+db.View(func(tx *bolt.Tx) error {
+ // Assume bucket exists and has keys
+ b := tx.Bucket([]byte("MyBucket"))
+
+ b.ForEach(func(k, v []byte) error {
+ fmt.Printf("key=%s, value=%s\n", k, v)
+ return nil
+ })
+ return nil
+})
+```
+
+Please note that keys and values in `ForEach()` are only valid while
+the transaction is open. If you need to use a key or value outside of
+the transaction, you must use `copy()` to copy it to another byte
+slice.
+
+### Nested buckets
+
+You can also store a bucket in a key to create nested buckets. The API is the
+same as the bucket management API on the `DB` object:
+
+```go
+func (*Bucket) CreateBucket(key []byte) (*Bucket, error)
+func (*Bucket) CreateBucketIfNotExists(key []byte) (*Bucket, error)
+func (*Bucket) DeleteBucket(key []byte) error
+```
+
+Say you had a multi-tenant application where the root level bucket was the account bucket. Inside of this bucket was a sequence of accounts which themselves are buckets. And inside the sequence bucket you could have many buckets pertaining to the Account itself (Users, Notes, etc) isolating the information into logical groupings.
+
+```go
+
+// createUser creates a new user in the given account.
+func createUser(accountID int, u *User) error {
+ // Start the transaction.
+ tx, err := db.Begin(true)
+ if err != nil {
+ return err
+ }
+ defer tx.Rollback()
+
+ // Retrieve the root bucket for the account.
+ // Assume this has already been created when the account was set up.
+ root := tx.Bucket([]byte(strconv.FormatUint(accountID, 10)))
+
+ // Setup the users bucket.
+ bkt, err := root.CreateBucketIfNotExists([]byte("USERS"))
+ if err != nil {
+ return err
+ }
+
+ // Generate an ID for the new user.
+ userID, err := bkt.NextSequence()
+ if err != nil {
+ return err
+ }
+ u.ID = userID
+
+ // Marshal and save the encoded user.
+ if buf, err := json.Marshal(u); err != nil {
+ return err
+ } else if err := bkt.Put([]byte(strconv.FormatUint(u.ID, 10)), buf); err != nil {
+ return err
+ }
+
+ // Commit the transaction.
+ if err := tx.Commit(); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+```
+
+
+
+
+### Database backups
+
+Bolt is a single file so it's easy to backup. You can use the `Tx.WriteTo()`
+function to write a consistent view of the database to a writer. If you call
+this from a read-only transaction, it will perform a hot backup and not block
+your other database reads and writes.
+
+By default, it will use a regular file handle which will utilize the operating
+system's page cache. See the [`Tx`](https://godoc.org/go.etcd.io/bbolt#Tx)
+documentation for information about optimizing for larger-than-RAM datasets.
+
+One common use case is to backup over HTTP so you can use tools like `cURL` to
+do database backups:
+
+```go
+func BackupHandleFunc(w http.ResponseWriter, req *http.Request) {
+ err := db.View(func(tx *bolt.Tx) error {
+ w.Header().Set("Content-Type", "application/octet-stream")
+ w.Header().Set("Content-Disposition", `attachment; filename="my.db"`)
+ w.Header().Set("Content-Length", strconv.Itoa(int(tx.Size())))
+ _, err := tx.WriteTo(w)
+ return err
+ })
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ }
+}
+```
+
+Then you can backup using this command:
+
+```sh
+$ curl http://localhost/backup > my.db
+```
+
+Or you can open your browser to `http://localhost/backup` and it will download
+automatically.
+
+If you want to backup to another file you can use the `Tx.CopyFile()` helper
+function.
+
+
+### Statistics
+
+The database keeps a running count of many of the internal operations it
+performs so you can better understand what's going on. By grabbing a snapshot
+of these stats at two points in time we can see what operations were performed
+in that time range.
+
+For example, we could start a goroutine to log stats every 10 seconds:
+
+```go
+go func() {
+ // Grab the initial stats.
+ prev := db.Stats()
+
+ for {
+ // Wait for 10s.
+ time.Sleep(10 * time.Second)
+
+ // Grab the current stats and diff them.
+ stats := db.Stats()
+ diff := stats.Sub(&prev)
+
+ // Encode stats to JSON and print to STDERR.
+ json.NewEncoder(os.Stderr).Encode(diff)
+
+ // Save stats for the next loop.
+ prev = stats
+ }
+}()
+```
+
+It's also useful to pipe these stats to a service such as statsd for monitoring
+or to provide an HTTP endpoint that will perform a fixed-length sample.
+
+
+### Read-Only Mode
+
+Sometimes it is useful to create a shared, read-only Bolt database. To this,
+set the `Options.ReadOnly` flag when opening your database. Read-only mode
+uses a shared lock to allow multiple processes to read from the database but
+it will block any processes from opening the database in read-write mode.
+
+```go
+db, err := bolt.Open("my.db", 0666, &bolt.Options{ReadOnly: true})
+if err != nil {
+ log.Fatal(err)
+}
+```
+
+### Mobile Use (iOS/Android)
+
+Bolt is able to run on mobile devices by leveraging the binding feature of the
+[gomobile](https://github.com/golang/mobile) tool. Create a struct that will
+contain your database logic and a reference to a `*bolt.DB` with a initializing
+constructor that takes in a filepath where the database file will be stored.
+Neither Android nor iOS require extra permissions or cleanup from using this method.
+
+```go
+func NewBoltDB(filepath string) *BoltDB {
+ db, err := bolt.Open(filepath+"/demo.db", 0600, nil)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ return &BoltDB{db}
+}
+
+type BoltDB struct {
+ db *bolt.DB
+ ...
+}
+
+func (b *BoltDB) Path() string {
+ return b.db.Path()
+}
+
+func (b *BoltDB) Close() {
+ b.db.Close()
+}
+```
+
+Database logic should be defined as methods on this wrapper struct.
+
+To initialize this struct from the native language (both platforms now sync
+their local storage to the cloud. These snippets disable that functionality for the
+database file):
+
+#### Android
+
+```java
+String path;
+if (android.os.Build.VERSION.SDK_INT >=android.os.Build.VERSION_CODES.LOLLIPOP){
+ path = getNoBackupFilesDir().getAbsolutePath();
+} else{
+ path = getFilesDir().getAbsolutePath();
+}
+Boltmobiledemo.BoltDB boltDB = Boltmobiledemo.NewBoltDB(path)
+```
+
+#### iOS
+
+```objc
+- (void)demo {
+ NSString* path = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
+ NSUserDomainMask,
+ YES) objectAtIndex:0];
+ GoBoltmobiledemoBoltDB * demo = GoBoltmobiledemoNewBoltDB(path);
+ [self addSkipBackupAttributeToItemAtPath:demo.path];
+ //Some DB Logic would go here
+ [demo close];
+}
+
+- (BOOL)addSkipBackupAttributeToItemAtPath:(NSString *) filePathString
+{
+ NSURL* URL= [NSURL fileURLWithPath: filePathString];
+ assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);
+
+ NSError *error = nil;
+ BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES]
+ forKey: NSURLIsExcludedFromBackupKey error: &error];
+ if(!success){
+ NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);
+ }
+ return success;
+}
+
+```
+
+## Resources
+
+For more information on getting started with Bolt, check out the following articles:
+
+* [Intro to BoltDB: Painless Performant Persistence](http://npf.io/2014/07/intro-to-boltdb-painless-performant-persistence/) by [Nate Finch](https://github.com/natefinch).
+* [Bolt -- an embedded key/value database for Go](https://www.progville.com/go/bolt-embedded-db-golang/) by Progville
+
+
+## Comparison with other databases
+
+### Postgres, MySQL, & other relational databases
+
+Relational databases structure data into rows and are only accessible through
+the use of SQL. This approach provides flexibility in how you store and query
+your data but also incurs overhead in parsing and planning SQL statements. Bolt
+accesses all data by a byte slice key. This makes Bolt fast to read and write
+data by key but provides no built-in support for joining values together.
+
+Most relational databases (with the exception of SQLite) are standalone servers
+that run separately from your application. This gives your systems
+flexibility to connect multiple application servers to a single database
+server but also adds overhead in serializing and transporting data over the
+network. Bolt runs as a library included in your application so all data access
+has to go through your application's process. This brings data closer to your
+application but limits multi-process access to the data.
+
+
+### LevelDB, RocksDB
+
+LevelDB and its derivatives (RocksDB, HyperLevelDB) are similar to Bolt in that
+they are libraries bundled into the application, however, their underlying
+structure is a log-structured merge-tree (LSM tree). An LSM tree optimizes
+random writes by using a write ahead log and multi-tiered, sorted files called
+SSTables. Bolt uses a B+tree internally and only a single file. Both approaches
+have trade-offs.
+
+If you require a high random write throughput (>10,000 w/sec) or you need to use
+spinning disks then LevelDB could be a good choice. If your application is
+read-heavy or does a lot of range scans then Bolt could be a good choice.
+
+One other important consideration is that LevelDB does not have transactions.
+It supports batch writing of key/values pairs and it supports read snapshots
+but it will not give you the ability to do a compare-and-swap operation safely.
+Bolt supports fully serializable ACID transactions.
+
+
+### LMDB
+
+Bolt was originally a port of LMDB so it is architecturally similar. Both use
+a B+tree, have ACID semantics with fully serializable transactions, and support
+lock-free MVCC using a single writer and multiple readers.
+
+The two projects have somewhat diverged. LMDB heavily focuses on raw performance
+while Bolt has focused on simplicity and ease of use. For example, LMDB allows
+several unsafe actions such as direct writes for the sake of performance. Bolt
+opts to disallow actions which can leave the database in a corrupted state. The
+only exception to this in Bolt is `DB.NoSync`.
+
+There are also a few differences in API. LMDB requires a maximum mmap size when
+opening an `mdb_env` whereas Bolt will handle incremental mmap resizing
+automatically. LMDB overloads the getter and setter functions with multiple
+flags whereas Bolt splits these specialized cases into their own functions.
+
+
+## Caveats & Limitations
+
+It's important to pick the right tool for the job and Bolt is no exception.
+Here are a few things to note when evaluating and using Bolt:
+
+* Bolt is good for read intensive workloads. Sequential write performance is
+ also fast but random writes can be slow. You can use `DB.Batch()` or add a
+ write-ahead log to help mitigate this issue.
+
+* Bolt uses a B+tree internally so there can be a lot of random page access.
+ SSDs provide a significant performance boost over spinning disks.
+
+* Try to avoid long running read transactions. Bolt uses copy-on-write so
+ old pages cannot be reclaimed while an old transaction is using them.
+
+* Byte slices returned from Bolt are only valid during a transaction. Once the
+ transaction has been committed or rolled back then the memory they point to
+ can be reused by a new page or can be unmapped from virtual memory and you'll
+ see an `unexpected fault address` panic when accessing it.
+
+* Bolt uses an exclusive write lock on the database file so it cannot be
+ shared by multiple processes.
+
+* Be careful when using `Bucket.FillPercent`. Setting a high fill percent for
+ buckets that have random inserts will cause your database to have very poor
+ page utilization.
+
+* Use larger buckets in general. Smaller buckets causes poor page utilization
+ once they become larger than the page size (typically 4KB).
+
+* Bulk loading a lot of random writes into a new bucket can be slow as the
+ page will not split until the transaction is committed. Randomly inserting
+ more than 100,000 key/value pairs into a single new bucket in a single
+ transaction is not advised.
+
+* Bolt uses a memory-mapped file so the underlying operating system handles the
+ caching of the data. Typically, the OS will cache as much of the file as it
+ can in memory and will release memory as needed to other processes. This means
+ that Bolt can show very high memory usage when working with large databases.
+ However, this is expected and the OS will release memory as needed. Bolt can
+ handle databases much larger than the available physical RAM, provided its
+ memory-map fits in the process virtual address space. It may be problematic
+ on 32-bits systems.
+
+* The data structures in the Bolt database are memory mapped so the data file
+ will be endian specific. This means that you cannot copy a Bolt file from a
+ little endian machine to a big endian machine and have it work. For most
+ users this is not a concern since most modern CPUs are little endian.
+
+* Because of the way pages are laid out on disk, Bolt cannot truncate data files
+ and return free pages back to the disk. Instead, Bolt maintains a free list
+ of unused pages within its data file. These free pages can be reused by later
+ transactions. This works well for many use cases as databases generally tend
+ to grow. However, it's important to note that deleting large chunks of data
+ will not allow you to reclaim that space on disk.
+
+ For more information on page allocation, [see this comment][page-allocation].
+
+[page-allocation]: https://github.com/boltdb/bolt/issues/308#issuecomment-74811638
+
+
+## Reading the Source
+
+Bolt is a relatively small code base (<5KLOC) for an embedded, serializable,
+transactional key/value database so it can be a good starting point for people
+interested in how databases work.
+
+The best places to start are the main entry points into Bolt:
+
+- `Open()` - Initializes the reference to the database. It's responsible for
+ creating the database if it doesn't exist, obtaining an exclusive lock on the
+ file, reading the meta pages, & memory-mapping the file.
+
+- `DB.Begin()` - Starts a read-only or read-write transaction depending on the
+ value of the `writable` argument. This requires briefly obtaining the "meta"
+ lock to keep track of open transactions. Only one read-write transaction can
+ exist at a time so the "rwlock" is acquired during the life of a read-write
+ transaction.
+
+- `Bucket.Put()` - Writes a key/value pair into a bucket. After validating the
+ arguments, a cursor is used to traverse the B+tree to the page and position
+ where they key & value will be written. Once the position is found, the bucket
+ materializes the underlying page and the page's parent pages into memory as
+ "nodes". These nodes are where mutations occur during read-write transactions.
+ These changes get flushed to disk during commit.
+
+- `Bucket.Get()` - Retrieves a key/value pair from a bucket. This uses a cursor
+ to move to the page & position of a key/value pair. During a read-only
+ transaction, the key and value data is returned as a direct reference to the
+ underlying mmap file so there's no allocation overhead. For read-write
+ transactions, this data may reference the mmap file or one of the in-memory
+ node values.
+
+- `Cursor` - This object is simply for traversing the B+tree of on-disk pages
+ or in-memory nodes. It can seek to a specific key, move to the first or last
+ value, or it can move forward or backward. The cursor handles the movement up
+ and down the B+tree transparently to the end user.
+
+- `Tx.Commit()` - Converts the in-memory dirty nodes and the list of free pages
+ into pages to be written to disk. Writing to disk then occurs in two phases.
+ First, the dirty pages are written to disk and an `fsync()` occurs. Second, a
+ new meta page with an incremented transaction ID is written and another
+ `fsync()` occurs. This two phase write ensures that partially written data
+ pages are ignored in the event of a crash since the meta page pointing to them
+ is never written. Partially written meta pages are invalidated because they
+ are written with a checksum.
+
+If you have additional notes that could be helpful for others, please submit
+them via pull request.
+
+
+## Other Projects Using Bolt
+
+Below is a list of public, open source projects that use Bolt:
+
+* [Algernon](https://github.com/xyproto/algernon) - A HTTP/2 web server with built-in support for Lua. Uses BoltDB as the default database backend.
+* [Bazil](https://bazil.org/) - A file system that lets your data reside where it is most convenient for it to reside.
+* [bolter](https://github.com/hasit/bolter) - Command-line app for viewing BoltDB file in your terminal.
+* [boltcli](https://github.com/spacewander/boltcli) - the redis-cli for boltdb with Lua script support.
+* [BoltHold](https://github.com/timshannon/bolthold) - An embeddable NoSQL store for Go types built on BoltDB
+* [BoltStore](https://github.com/yosssi/boltstore) - Session store using Bolt.
+* [Boltdb Boilerplate](https://github.com/bobintornado/boltdb-boilerplate) - Boilerplate wrapper around bolt aiming to make simple calls one-liners.
+* [BoltDbWeb](https://github.com/evnix/boltdbweb) - A web based GUI for BoltDB files.
+* [bleve](http://www.blevesearch.com/) - A pure Go search engine similar to ElasticSearch that uses Bolt as the default storage backend.
+* [btcwallet](https://github.com/btcsuite/btcwallet) - A bitcoin wallet.
+* [buckets](https://github.com/joyrexus/buckets) - a bolt wrapper streamlining
+ simple tx and key scans.
+* [cayley](https://github.com/google/cayley) - Cayley is an open-source graph database using Bolt as optional backend.
+* [ChainStore](https://github.com/pressly/chainstore) - Simple key-value interface to a variety of storage engines organized as a chain of operations.
+* [Consul](https://github.com/hashicorp/consul) - Consul is service discovery and configuration made easy. Distributed, highly available, and datacenter-aware.
+* [DVID](https://github.com/janelia-flyem/dvid) - Added Bolt as optional storage engine and testing it against Basho-tuned leveldb.
+* [dcrwallet](https://github.com/decred/dcrwallet) - A wallet for the Decred cryptocurrency.
+* [drive](https://github.com/odeke-em/drive) - drive is an unofficial Google Drive command line client for \*NIX operating systems.
+* [event-shuttle](https://github.com/sclasen/event-shuttle) - A Unix system service to collect and reliably deliver messages to Kafka.
+* [Freehold](http://tshannon.bitbucket.org/freehold/) - An open, secure, and lightweight platform for your files and data.
+* [Go Report Card](https://goreportcard.com/) - Go code quality report cards as a (free and open source) service.
+* [GoWebApp](https://github.com/josephspurrier/gowebapp) - A basic MVC web application in Go using BoltDB.
+* [GoShort](https://github.com/pankajkhairnar/goShort) - GoShort is a URL shortener written in Golang and BoltDB for persistent key/value storage and for routing it's using high performent HTTPRouter.
+* [gopherpit](https://github.com/gopherpit/gopherpit) - A web service to manage Go remote import paths with custom domains
+* [Gitchain](https://github.com/gitchain/gitchain) - Decentralized, peer-to-peer Git repositories aka "Git meets Bitcoin".
+* [InfluxDB](https://influxdata.com) - Scalable datastore for metrics, events, and real-time analytics.
+* [ipLocator](https://github.com/AndreasBriese/ipLocator) - A fast ip-geo-location-server using bolt with bloom filters.
+* [ipxed](https://github.com/kelseyhightower/ipxed) - Web interface and api for ipxed.
+* [Ironsmith](https://github.com/timshannon/ironsmith) - A simple, script-driven continuous integration (build - > test -> release) tool, with no external dependencies
+* [Kala](https://github.com/ajvb/kala) - Kala is a modern job scheduler optimized to run on a single node. It is persistent, JSON over HTTP API, ISO 8601 duration notation, and dependent jobs.
+* [Key Value Access Langusge (KVAL)](https://github.com/kval-access-language) - A proposed grammar for key-value datastores offering a bbolt binding.
+* [LedisDB](https://github.com/siddontang/ledisdb) - A high performance NoSQL, using Bolt as optional storage.
+* [lru](https://github.com/crowdriff/lru) - Easy to use Bolt-backed Least-Recently-Used (LRU) read-through cache with chainable remote stores.
+* [mbuckets](https://github.com/abhigupta912/mbuckets) - A Bolt wrapper that allows easy operations on multi level (nested) buckets.
+* [MetricBase](https://github.com/msiebuhr/MetricBase) - Single-binary version of Graphite.
+* [MuLiFS](https://github.com/dankomiocevic/mulifs) - Music Library Filesystem creates a filesystem to organise your music files.
+* [Operation Go: A Routine Mission](http://gocode.io) - An online programming game for Golang using Bolt for user accounts and a leaderboard.
+* [photosite/session](https://godoc.org/bitbucket.org/kardianos/photosite/session) - Sessions for a photo viewing site.
+* [Prometheus Annotation Server](https://github.com/oliver006/prom_annotation_server) - Annotation server for PromDash & Prometheus service monitoring system.
+* [reef-pi](https://github.com/reef-pi/reef-pi) - reef-pi is an award winning, modular, DIY reef tank controller using easy to learn electronics based on a Raspberry Pi.
+* [Request Baskets](https://github.com/darklynx/request-baskets) - A web service to collect arbitrary HTTP requests and inspect them via REST API or simple web UI, similar to [RequestBin](http://requestb.in/) service
+* [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Highly scalable distributed key~file system with O(1) disk read.
+* [stow](https://github.com/djherbis/stow) - a persistence manager for objects
+ backed by boltdb.
+* [Storm](https://github.com/asdine/storm) - Simple and powerful ORM for BoltDB.
+* [SimpleBolt](https://github.com/xyproto/simplebolt) - A simple way to use BoltDB. Deals mainly with strings.
+* [Skybox Analytics](https://github.com/skybox/skybox) - A standalone funnel analysis tool for web analytics.
+* [Scuttlebutt](https://github.com/benbjohnson/scuttlebutt) - Uses Bolt to store and process all Twitter mentions of GitHub projects.
+* [tentacool](https://github.com/optiflows/tentacool) - REST api server to manage system stuff (IP, DNS, Gateway...) on a linux server.
+* [torrent](https://github.com/anacrolix/torrent) - Full-featured BitTorrent client package and utilities in Go. BoltDB is a storage backend in development.
+* [Wiki](https://github.com/peterhellberg/wiki) - A tiny wiki using Goji, BoltDB and Blackfriday.
+
+If you are using Bolt in a project please send a pull request to add it to the list.
diff --git a/vendor/go.etcd.io/bbolt/bolt_386.go b/vendor/go.etcd.io/bbolt/bolt_386.go
new file mode 100644
index 0000000000..4d35ee7cf3
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/bolt_386.go
@@ -0,0 +1,10 @@
+package bbolt
+
+// maxMapSize represents the largest mmap size supported by Bolt.
+const maxMapSize = 0x7FFFFFFF // 2GB
+
+// maxAllocSize is the size used when creating array pointers.
+const maxAllocSize = 0xFFFFFFF
+
+// Are unaligned load/stores broken on this arch?
+var brokenUnaligned = false
diff --git a/vendor/go.etcd.io/bbolt/bolt_amd64.go b/vendor/go.etcd.io/bbolt/bolt_amd64.go
new file mode 100644
index 0000000000..60a52dad56
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/bolt_amd64.go
@@ -0,0 +1,10 @@
+package bbolt
+
+// maxMapSize represents the largest mmap size supported by Bolt.
+const maxMapSize = 0xFFFFFFFFFFFF // 256TB
+
+// maxAllocSize is the size used when creating array pointers.
+const maxAllocSize = 0x7FFFFFFF
+
+// Are unaligned load/stores broken on this arch?
+var brokenUnaligned = false
diff --git a/vendor/go.etcd.io/bbolt/bolt_arm.go b/vendor/go.etcd.io/bbolt/bolt_arm.go
new file mode 100644
index 0000000000..105d27ddb7
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/bolt_arm.go
@@ -0,0 +1,28 @@
+package bbolt
+
+import "unsafe"
+
+// maxMapSize represents the largest mmap size supported by Bolt.
+const maxMapSize = 0x7FFFFFFF // 2GB
+
+// maxAllocSize is the size used when creating array pointers.
+const maxAllocSize = 0xFFFFFFF
+
+// Are unaligned load/stores broken on this arch?
+var brokenUnaligned bool
+
+func init() {
+ // Simple check to see whether this arch handles unaligned load/stores
+ // correctly.
+
+ // ARM9 and older devices require load/stores to be from/to aligned
+ // addresses. If not, the lower 2 bits are cleared and that address is
+ // read in a jumbled up order.
+
+ // See http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka15414.html
+
+ raw := [6]byte{0xfe, 0xef, 0x11, 0x22, 0x22, 0x11}
+ val := *(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(&raw)) + 2))
+
+ brokenUnaligned = val != 0x11222211
+}
diff --git a/vendor/go.etcd.io/bbolt/bolt_arm64.go b/vendor/go.etcd.io/bbolt/bolt_arm64.go
new file mode 100644
index 0000000000..f5aa2a5ee2
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/bolt_arm64.go
@@ -0,0 +1,12 @@
+// +build arm64
+
+package bbolt
+
+// maxMapSize represents the largest mmap size supported by Bolt.
+const maxMapSize = 0xFFFFFFFFFFFF // 256TB
+
+// maxAllocSize is the size used when creating array pointers.
+const maxAllocSize = 0x7FFFFFFF
+
+// Are unaligned load/stores broken on this arch?
+var brokenUnaligned = false
diff --git a/vendor/go.etcd.io/bbolt/bolt_linux.go b/vendor/go.etcd.io/bbolt/bolt_linux.go
new file mode 100644
index 0000000000..7707bcacf0
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/bolt_linux.go
@@ -0,0 +1,10 @@
+package bbolt
+
+import (
+ "syscall"
+)
+
+// fdatasync flushes written data to a file descriptor.
+func fdatasync(db *DB) error {
+ return syscall.Fdatasync(int(db.file.Fd()))
+}
diff --git a/vendor/go.etcd.io/bbolt/bolt_mips64x.go b/vendor/go.etcd.io/bbolt/bolt_mips64x.go
new file mode 100644
index 0000000000..baeb289fd9
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/bolt_mips64x.go
@@ -0,0 +1,12 @@
+// +build mips64 mips64le
+
+package bbolt
+
+// maxMapSize represents the largest mmap size supported by Bolt.
+const maxMapSize = 0x8000000000 // 512GB
+
+// maxAllocSize is the size used when creating array pointers.
+const maxAllocSize = 0x7FFFFFFF
+
+// Are unaligned load/stores broken on this arch?
+var brokenUnaligned = false
diff --git a/vendor/go.etcd.io/bbolt/bolt_mipsx.go b/vendor/go.etcd.io/bbolt/bolt_mipsx.go
new file mode 100644
index 0000000000..2d9b1a91f3
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/bolt_mipsx.go
@@ -0,0 +1,12 @@
+// +build mips mipsle
+
+package bbolt
+
+// maxMapSize represents the largest mmap size supported by Bolt.
+const maxMapSize = 0x40000000 // 1GB
+
+// maxAllocSize is the size used when creating array pointers.
+const maxAllocSize = 0xFFFFFFF
+
+// Are unaligned load/stores broken on this arch?
+var brokenUnaligned = false
diff --git a/vendor/go.etcd.io/bbolt/bolt_openbsd.go b/vendor/go.etcd.io/bbolt/bolt_openbsd.go
new file mode 100644
index 0000000000..d7f50358ef
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/bolt_openbsd.go
@@ -0,0 +1,27 @@
+package bbolt
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+const (
+ msAsync = 1 << iota // perform asynchronous writes
+ msSync // perform synchronous writes
+ msInvalidate // invalidate cached data
+)
+
+func msync(db *DB) error {
+ _, _, errno := syscall.Syscall(syscall.SYS_MSYNC, uintptr(unsafe.Pointer(db.data)), uintptr(db.datasz), msInvalidate)
+ if errno != 0 {
+ return errno
+ }
+ return nil
+}
+
+func fdatasync(db *DB) error {
+ if db.data != nil {
+ return msync(db)
+ }
+ return db.file.Sync()
+}
diff --git a/vendor/go.etcd.io/bbolt/bolt_ppc.go b/vendor/go.etcd.io/bbolt/bolt_ppc.go
new file mode 100644
index 0000000000..69804714aa
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/bolt_ppc.go
@@ -0,0 +1,12 @@
+// +build ppc
+
+package bbolt
+
+// maxMapSize represents the largest mmap size supported by Bolt.
+const maxMapSize = 0x7FFFFFFF // 2GB
+
+// maxAllocSize is the size used when creating array pointers.
+const maxAllocSize = 0xFFFFFFF
+
+// Are unaligned load/stores broken on this arch?
+var brokenUnaligned = false
diff --git a/vendor/go.etcd.io/bbolt/bolt_ppc64.go b/vendor/go.etcd.io/bbolt/bolt_ppc64.go
new file mode 100644
index 0000000000..3565908576
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/bolt_ppc64.go
@@ -0,0 +1,12 @@
+// +build ppc64
+
+package bbolt
+
+// maxMapSize represents the largest mmap size supported by Bolt.
+const maxMapSize = 0xFFFFFFFFFFFF // 256TB
+
+// maxAllocSize is the size used when creating array pointers.
+const maxAllocSize = 0x7FFFFFFF
+
+// Are unaligned load/stores broken on this arch?
+var brokenUnaligned = false
diff --git a/vendor/go.etcd.io/bbolt/bolt_ppc64le.go b/vendor/go.etcd.io/bbolt/bolt_ppc64le.go
new file mode 100644
index 0000000000..422c7c69d6
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/bolt_ppc64le.go
@@ -0,0 +1,12 @@
+// +build ppc64le
+
+package bbolt
+
+// maxMapSize represents the largest mmap size supported by Bolt.
+const maxMapSize = 0xFFFFFFFFFFFF // 256TB
+
+// maxAllocSize is the size used when creating array pointers.
+const maxAllocSize = 0x7FFFFFFF
+
+// Are unaligned load/stores broken on this arch?
+var brokenUnaligned = false
diff --git a/vendor/go.etcd.io/bbolt/bolt_s390x.go b/vendor/go.etcd.io/bbolt/bolt_s390x.go
new file mode 100644
index 0000000000..6d3fcb825d
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/bolt_s390x.go
@@ -0,0 +1,12 @@
+// +build s390x
+
+package bbolt
+
+// maxMapSize represents the largest mmap size supported by Bolt.
+const maxMapSize = 0xFFFFFFFFFFFF // 256TB
+
+// maxAllocSize is the size used when creating array pointers.
+const maxAllocSize = 0x7FFFFFFF
+
+// Are unaligned load/stores broken on this arch?
+var brokenUnaligned = false
diff --git a/vendor/go.etcd.io/bbolt/bolt_unix.go b/vendor/go.etcd.io/bbolt/bolt_unix.go
new file mode 100644
index 0000000000..5f2bb51451
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/bolt_unix.go
@@ -0,0 +1,93 @@
+// +build !windows,!plan9,!solaris
+
+package bbolt
+
+import (
+ "fmt"
+ "syscall"
+ "time"
+ "unsafe"
+)
+
+// flock acquires an advisory lock on a file descriptor.
+func flock(db *DB, exclusive bool, timeout time.Duration) error {
+ var t time.Time
+ if timeout != 0 {
+ t = time.Now()
+ }
+ fd := db.file.Fd()
+ flag := syscall.LOCK_NB
+ if exclusive {
+ flag |= syscall.LOCK_EX
+ } else {
+ flag |= syscall.LOCK_SH
+ }
+ for {
+ // Attempt to obtain an exclusive lock.
+ err := syscall.Flock(int(fd), flag)
+ if err == nil {
+ return nil
+ } else if err != syscall.EWOULDBLOCK {
+ return err
+ }
+
+ // If we timed out then return an error.
+ if timeout != 0 && time.Since(t) > timeout-flockRetryTimeout {
+ return ErrTimeout
+ }
+
+ // Wait for a bit and try again.
+ time.Sleep(flockRetryTimeout)
+ }
+}
+
+// funlock releases an advisory lock on a file descriptor.
+func funlock(db *DB) error {
+ return syscall.Flock(int(db.file.Fd()), syscall.LOCK_UN)
+}
+
+// mmap memory maps a DB's data file.
+func mmap(db *DB, sz int) error {
+ // Map the data file to memory.
+ b, err := syscall.Mmap(int(db.file.Fd()), 0, sz, syscall.PROT_READ, syscall.MAP_SHARED|db.MmapFlags)
+ if err != nil {
+ return err
+ }
+
+ // Advise the kernel that the mmap is accessed randomly.
+ err = madvise(b, syscall.MADV_RANDOM)
+ if err != nil && err != syscall.ENOSYS {
+ // Ignore not implemented error in kernel because it still works.
+ return fmt.Errorf("madvise: %s", err)
+ }
+
+ // Save the original byte slice and convert to a byte array pointer.
+ db.dataref = b
+ db.data = (*[maxMapSize]byte)(unsafe.Pointer(&b[0]))
+ db.datasz = sz
+ return nil
+}
+
+// munmap unmaps a DB's data file from memory.
+func munmap(db *DB) error {
+ // Ignore the unmap if we have no mapped data.
+ if db.dataref == nil {
+ return nil
+ }
+
+ // Unmap using the original byte slice.
+ err := syscall.Munmap(db.dataref)
+ db.dataref = nil
+ db.data = nil
+ db.datasz = 0
+ return err
+}
+
+// NOTE: This function is copied from stdlib because it is not available on darwin.
+func madvise(b []byte, advice int) (err error) {
+ _, _, e1 := syscall.Syscall(syscall.SYS_MADVISE, uintptr(unsafe.Pointer(&b[0])), uintptr(len(b)), uintptr(advice))
+ if e1 != 0 {
+ err = e1
+ }
+ return
+}
diff --git a/vendor/go.etcd.io/bbolt/bolt_unix_solaris.go b/vendor/go.etcd.io/bbolt/bolt_unix_solaris.go
new file mode 100644
index 0000000000..babad65786
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/bolt_unix_solaris.go
@@ -0,0 +1,88 @@
+package bbolt
+
+import (
+ "fmt"
+ "syscall"
+ "time"
+ "unsafe"
+
+ "golang.org/x/sys/unix"
+)
+
+// flock acquires an advisory lock on a file descriptor.
+func flock(db *DB, exclusive bool, timeout time.Duration) error {
+ var t time.Time
+ if timeout != 0 {
+ t = time.Now()
+ }
+ fd := db.file.Fd()
+ var lockType int16
+ if exclusive {
+ lockType = syscall.F_WRLCK
+ } else {
+ lockType = syscall.F_RDLCK
+ }
+ for {
+ // Attempt to obtain an exclusive lock.
+ lock := syscall.Flock_t{Type: lockType}
+ err := syscall.FcntlFlock(fd, syscall.F_SETLK, &lock)
+ if err == nil {
+ return nil
+ } else if err != syscall.EAGAIN {
+ return err
+ }
+
+ // If we timed out then return an error.
+ if timeout != 0 && time.Since(t) > timeout-flockRetryTimeout {
+ return ErrTimeout
+ }
+
+ // Wait for a bit and try again.
+ time.Sleep(flockRetryTimeout)
+ }
+}
+
+// funlock releases an advisory lock on a file descriptor.
+func funlock(db *DB) error {
+ var lock syscall.Flock_t
+ lock.Start = 0
+ lock.Len = 0
+ lock.Type = syscall.F_UNLCK
+ lock.Whence = 0
+ return syscall.FcntlFlock(uintptr(db.file.Fd()), syscall.F_SETLK, &lock)
+}
+
+// mmap memory maps a DB's data file.
+func mmap(db *DB, sz int) error {
+ // Map the data file to memory.
+ b, err := unix.Mmap(int(db.file.Fd()), 0, sz, syscall.PROT_READ, syscall.MAP_SHARED|db.MmapFlags)
+ if err != nil {
+ return err
+ }
+
+ // Advise the kernel that the mmap is accessed randomly.
+ if err := unix.Madvise(b, syscall.MADV_RANDOM); err != nil {
+ return fmt.Errorf("madvise: %s", err)
+ }
+
+ // Save the original byte slice and convert to a byte array pointer.
+ db.dataref = b
+ db.data = (*[maxMapSize]byte)(unsafe.Pointer(&b[0]))
+ db.datasz = sz
+ return nil
+}
+
+// munmap unmaps a DB's data file from memory.
+func munmap(db *DB) error {
+ // Ignore the unmap if we have no mapped data.
+ if db.dataref == nil {
+ return nil
+ }
+
+ // Unmap using the original byte slice.
+ err := unix.Munmap(db.dataref)
+ db.dataref = nil
+ db.data = nil
+ db.datasz = 0
+ return err
+}
diff --git a/vendor/go.etcd.io/bbolt/bolt_windows.go b/vendor/go.etcd.io/bbolt/bolt_windows.go
new file mode 100644
index 0000000000..fca178bd29
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/bolt_windows.go
@@ -0,0 +1,141 @@
+package bbolt
+
+import (
+ "fmt"
+ "os"
+ "syscall"
+ "time"
+ "unsafe"
+)
+
+// LockFileEx code derived from golang build filemutex_windows.go @ v1.5.1
+var (
+ modkernel32 = syscall.NewLazyDLL("kernel32.dll")
+ procLockFileEx = modkernel32.NewProc("LockFileEx")
+ procUnlockFileEx = modkernel32.NewProc("UnlockFileEx")
+)
+
+const (
+ // see https://msdn.microsoft.com/en-us/library/windows/desktop/aa365203(v=vs.85).aspx
+ flagLockExclusive = 2
+ flagLockFailImmediately = 1
+
+ // see https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx
+ errLockViolation syscall.Errno = 0x21
+)
+
+func lockFileEx(h syscall.Handle, flags, reserved, locklow, lockhigh uint32, ol *syscall.Overlapped) (err error) {
+ r, _, err := procLockFileEx.Call(uintptr(h), uintptr(flags), uintptr(reserved), uintptr(locklow), uintptr(lockhigh), uintptr(unsafe.Pointer(ol)))
+ if r == 0 {
+ return err
+ }
+ return nil
+}
+
+func unlockFileEx(h syscall.Handle, reserved, locklow, lockhigh uint32, ol *syscall.Overlapped) (err error) {
+ r, _, err := procUnlockFileEx.Call(uintptr(h), uintptr(reserved), uintptr(locklow), uintptr(lockhigh), uintptr(unsafe.Pointer(ol)), 0)
+ if r == 0 {
+ return err
+ }
+ return nil
+}
+
+// fdatasync flushes written data to a file descriptor.
+func fdatasync(db *DB) error {
+ return db.file.Sync()
+}
+
+// flock acquires an advisory lock on a file descriptor.
+func flock(db *DB, exclusive bool, timeout time.Duration) error {
+ var t time.Time
+ if timeout != 0 {
+ t = time.Now()
+ }
+ var flag uint32 = flagLockFailImmediately
+ if exclusive {
+ flag |= flagLockExclusive
+ }
+ for {
+ // Fix for https://github.com/etcd-io/bbolt/issues/121. Use byte-range
+ // -1..0 as the lock on the database file.
+ var m1 uint32 = (1 << 32) - 1 // -1 in a uint32
+ err := lockFileEx(syscall.Handle(db.file.Fd()), flag, 0, 1, 0, &syscall.Overlapped{
+ Offset: m1,
+ OffsetHigh: m1,
+ })
+
+ if err == nil {
+ return nil
+ } else if err != errLockViolation {
+ return err
+ }
+
+ // If we timed oumercit then return an error.
+ if timeout != 0 && time.Since(t) > timeout-flockRetryTimeout {
+ return ErrTimeout
+ }
+
+ // Wait for a bit and try again.
+ time.Sleep(flockRetryTimeout)
+ }
+}
+
+// funlock releases an advisory lock on a file descriptor.
+func funlock(db *DB) error {
+ var m1 uint32 = (1 << 32) - 1 // -1 in a uint32
+ err := unlockFileEx(syscall.Handle(db.file.Fd()), 0, 1, 0, &syscall.Overlapped{
+ Offset: m1,
+ OffsetHigh: m1,
+ })
+ return err
+}
+
+// mmap memory maps a DB's data file.
+// Based on: https://github.com/edsrzf/mmap-go
+func mmap(db *DB, sz int) error {
+ if !db.readOnly {
+ // Truncate the database to the size of the mmap.
+ if err := db.file.Truncate(int64(sz)); err != nil {
+ return fmt.Errorf("truncate: %s", err)
+ }
+ }
+
+ // Open a file mapping handle.
+ sizelo := uint32(sz >> 32)
+ sizehi := uint32(sz) & 0xffffffff
+ h, errno := syscall.CreateFileMapping(syscall.Handle(db.file.Fd()), nil, syscall.PAGE_READONLY, sizelo, sizehi, nil)
+ if h == 0 {
+ return os.NewSyscallError("CreateFileMapping", errno)
+ }
+
+ // Create the memory map.
+ addr, errno := syscall.MapViewOfFile(h, syscall.FILE_MAP_READ, 0, 0, uintptr(sz))
+ if addr == 0 {
+ return os.NewSyscallError("MapViewOfFile", errno)
+ }
+
+ // Close mapping handle.
+ if err := syscall.CloseHandle(syscall.Handle(h)); err != nil {
+ return os.NewSyscallError("CloseHandle", err)
+ }
+
+ // Convert to a byte array.
+ db.data = ((*[maxMapSize]byte)(unsafe.Pointer(addr)))
+ db.datasz = sz
+
+ return nil
+}
+
+// munmap unmaps a pointer from a file.
+// Based on: https://github.com/edsrzf/mmap-go
+func munmap(db *DB) error {
+ if db.data == nil {
+ return nil
+ }
+
+ addr := (uintptr)(unsafe.Pointer(&db.data[0]))
+ if err := syscall.UnmapViewOfFile(addr); err != nil {
+ return os.NewSyscallError("UnmapViewOfFile", err)
+ }
+ return nil
+}
diff --git a/vendor/go.etcd.io/bbolt/boltsync_unix.go b/vendor/go.etcd.io/bbolt/boltsync_unix.go
new file mode 100644
index 0000000000..9587afefee
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/boltsync_unix.go
@@ -0,0 +1,8 @@
+// +build !windows,!plan9,!linux,!openbsd
+
+package bbolt
+
+// fdatasync flushes written data to a file descriptor.
+func fdatasync(db *DB) error {
+ return db.file.Sync()
+}
diff --git a/vendor/go.etcd.io/bbolt/bucket.go b/vendor/go.etcd.io/bbolt/bucket.go
new file mode 100644
index 0000000000..84bfd4d6a2
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/bucket.go
@@ -0,0 +1,775 @@
+package bbolt
+
+import (
+ "bytes"
+ "fmt"
+ "unsafe"
+)
+
+const (
+ // MaxKeySize is the maximum length of a key, in bytes.
+ MaxKeySize = 32768
+
+ // MaxValueSize is the maximum length of a value, in bytes.
+ MaxValueSize = (1 << 31) - 2
+)
+
+const bucketHeaderSize = int(unsafe.Sizeof(bucket{}))
+
+const (
+ minFillPercent = 0.1
+ maxFillPercent = 1.0
+)
+
+// DefaultFillPercent is the percentage that split pages are filled.
+// This value can be changed by setting Bucket.FillPercent.
+const DefaultFillPercent = 0.5
+
+// Bucket represents a collection of key/value pairs inside the database.
+type Bucket struct {
+ *bucket
+ tx *Tx // the associated transaction
+ buckets map[string]*Bucket // subbucket cache
+ page *page // inline page reference
+ rootNode *node // materialized node for the root page.
+ nodes map[pgid]*node // node cache
+
+ // Sets the threshold for filling nodes when they split. By default,
+ // the bucket will fill to 50% but it can be useful to increase this
+ // amount if you know that your write workloads are mostly append-only.
+ //
+ // This is non-persisted across transactions so it must be set in every Tx.
+ FillPercent float64
+}
+
+// bucket represents the on-file representation of a bucket.
+// This is stored as the "value" of a bucket key. If the bucket is small enough,
+// then its root page can be stored inline in the "value", after the bucket
+// header. In the case of inline buckets, the "root" will be 0.
+type bucket struct {
+ root pgid // page id of the bucket's root-level page
+ sequence uint64 // monotonically incrementing, used by NextSequence()
+}
+
+// newBucket returns a new bucket associated with a transaction.
+func newBucket(tx *Tx) Bucket {
+ var b = Bucket{tx: tx, FillPercent: DefaultFillPercent}
+ if tx.writable {
+ b.buckets = make(map[string]*Bucket)
+ b.nodes = make(map[pgid]*node)
+ }
+ return b
+}
+
+// Tx returns the tx of the bucket.
+func (b *Bucket) Tx() *Tx {
+ return b.tx
+}
+
+// Root returns the root of the bucket.
+func (b *Bucket) Root() pgid {
+ return b.root
+}
+
+// Writable returns whether the bucket is writable.
+func (b *Bucket) Writable() bool {
+ return b.tx.writable
+}
+
+// Cursor creates a cursor associated with the bucket.
+// The cursor is only valid as long as the transaction is open.
+// Do not use a cursor after the transaction is closed.
+func (b *Bucket) Cursor() *Cursor {
+ // Update transaction statistics.
+ b.tx.stats.CursorCount++
+
+ // Allocate and return a cursor.
+ return &Cursor{
+ bucket: b,
+ stack: make([]elemRef, 0),
+ }
+}
+
+// Bucket retrieves a nested bucket by name.
+// Returns nil if the bucket does not exist.
+// The bucket instance is only valid for the lifetime of the transaction.
+func (b *Bucket) Bucket(name []byte) *Bucket {
+ if b.buckets != nil {
+ if child := b.buckets[string(name)]; child != nil {
+ return child
+ }
+ }
+
+ // Move cursor to key.
+ c := b.Cursor()
+ k, v, flags := c.seek(name)
+
+ // Return nil if the key doesn't exist or it is not a bucket.
+ if !bytes.Equal(name, k) || (flags&bucketLeafFlag) == 0 {
+ return nil
+ }
+
+ // Otherwise create a bucket and cache it.
+ var child = b.openBucket(v)
+ if b.buckets != nil {
+ b.buckets[string(name)] = child
+ }
+
+ return child
+}
+
+// Helper method that re-interprets a sub-bucket value
+// from a parent into a Bucket
+func (b *Bucket) openBucket(value []byte) *Bucket {
+ var child = newBucket(b.tx)
+
+ // If unaligned load/stores are broken on this arch and value is
+ // unaligned simply clone to an aligned byte array.
+ unaligned := brokenUnaligned && uintptr(unsafe.Pointer(&value[0]))&3 != 0
+
+ if unaligned {
+ value = cloneBytes(value)
+ }
+
+ // If this is a writable transaction then we need to copy the bucket entry.
+ // Read-only transactions can point directly at the mmap entry.
+ if b.tx.writable && !unaligned {
+ child.bucket = &bucket{}
+ *child.bucket = *(*bucket)(unsafe.Pointer(&value[0]))
+ } else {
+ child.bucket = (*bucket)(unsafe.Pointer(&value[0]))
+ }
+
+ // Save a reference to the inline page if the bucket is inline.
+ if child.root == 0 {
+ child.page = (*page)(unsafe.Pointer(&value[bucketHeaderSize]))
+ }
+
+ return &child
+}
+
+// CreateBucket creates a new bucket at the given key and returns the new bucket.
+// Returns an error if the key already exists, if the bucket name is blank, or if the bucket name is too long.
+// The bucket instance is only valid for the lifetime of the transaction.
+func (b *Bucket) CreateBucket(key []byte) (*Bucket, error) {
+ if b.tx.db == nil {
+ return nil, ErrTxClosed
+ } else if !b.tx.writable {
+ return nil, ErrTxNotWritable
+ } else if len(key) == 0 {
+ return nil, ErrBucketNameRequired
+ }
+
+ // Move cursor to correct position.
+ c := b.Cursor()
+ k, _, flags := c.seek(key)
+
+ // Return an error if there is an existing key.
+ if bytes.Equal(key, k) {
+ if (flags & bucketLeafFlag) != 0 {
+ return nil, ErrBucketExists
+ }
+ return nil, ErrIncompatibleValue
+ }
+
+ // Create empty, inline bucket.
+ var bucket = Bucket{
+ bucket: &bucket{},
+ rootNode: &node{isLeaf: true},
+ FillPercent: DefaultFillPercent,
+ }
+ var value = bucket.write()
+
+ // Insert into node.
+ key = cloneBytes(key)
+ c.node().put(key, key, value, 0, bucketLeafFlag)
+
+ // Since subbuckets are not allowed on inline buckets, we need to
+ // dereference the inline page, if it exists. This will cause the bucket
+ // to be treated as a regular, non-inline bucket for the rest of the tx.
+ b.page = nil
+
+ return b.Bucket(key), nil
+}
+
+// CreateBucketIfNotExists creates a new bucket if it doesn't already exist and returns a reference to it.
+// Returns an error if the bucket name is blank, or if the bucket name is too long.
+// The bucket instance is only valid for the lifetime of the transaction.
+func (b *Bucket) CreateBucketIfNotExists(key []byte) (*Bucket, error) {
+ child, err := b.CreateBucket(key)
+ if err == ErrBucketExists {
+ return b.Bucket(key), nil
+ } else if err != nil {
+ return nil, err
+ }
+ return child, nil
+}
+
+// DeleteBucket deletes a bucket at the given key.
+// Returns an error if the bucket does not exists, or if the key represents a non-bucket value.
+func (b *Bucket) DeleteBucket(key []byte) error {
+ if b.tx.db == nil {
+ return ErrTxClosed
+ } else if !b.Writable() {
+ return ErrTxNotWritable
+ }
+
+ // Move cursor to correct position.
+ c := b.Cursor()
+ k, _, flags := c.seek(key)
+
+ // Return an error if bucket doesn't exist or is not a bucket.
+ if !bytes.Equal(key, k) {
+ return ErrBucketNotFound
+ } else if (flags & bucketLeafFlag) == 0 {
+ return ErrIncompatibleValue
+ }
+
+ // Recursively delete all child buckets.
+ child := b.Bucket(key)
+ err := child.ForEach(func(k, v []byte) error {
+ if v == nil {
+ if err := child.DeleteBucket(k); err != nil {
+ return fmt.Errorf("delete bucket: %s", err)
+ }
+ }
+ return nil
+ })
+ if err != nil {
+ return err
+ }
+
+ // Remove cached copy.
+ delete(b.buckets, string(key))
+
+ // Release all bucket pages to freelist.
+ child.nodes = nil
+ child.rootNode = nil
+ child.free()
+
+ // Delete the node if we have a matching key.
+ c.node().del(key)
+
+ return nil
+}
+
+// Get retrieves the value for a key in the bucket.
+// Returns a nil value if the key does not exist or if the key is a nested bucket.
+// The returned value is only valid for the life of the transaction.
+func (b *Bucket) Get(key []byte) []byte {
+ k, v, flags := b.Cursor().seek(key)
+
+ // Return nil if this is a bucket.
+ if (flags & bucketLeafFlag) != 0 {
+ return nil
+ }
+
+ // If our target node isn't the same key as what's passed in then return nil.
+ if !bytes.Equal(key, k) {
+ return nil
+ }
+ return v
+}
+
+// Put sets the value for a key in the bucket.
+// If the key exist then its previous value will be overwritten.
+// Supplied value must remain valid for the life of the transaction.
+// Returns an error if the bucket was created from a read-only transaction, if the key is blank, if the key is too large, or if the value is too large.
+func (b *Bucket) Put(key []byte, value []byte) error {
+ if b.tx.db == nil {
+ return ErrTxClosed
+ } else if !b.Writable() {
+ return ErrTxNotWritable
+ } else if len(key) == 0 {
+ return ErrKeyRequired
+ } else if len(key) > MaxKeySize {
+ return ErrKeyTooLarge
+ } else if int64(len(value)) > MaxValueSize {
+ return ErrValueTooLarge
+ }
+
+ // Move cursor to correct position.
+ c := b.Cursor()
+ k, _, flags := c.seek(key)
+
+ // Return an error if there is an existing key with a bucket value.
+ if bytes.Equal(key, k) && (flags&bucketLeafFlag) != 0 {
+ return ErrIncompatibleValue
+ }
+
+ // Insert into node.
+ key = cloneBytes(key)
+ c.node().put(key, key, value, 0, 0)
+
+ return nil
+}
+
+// Delete removes a key from the bucket.
+// If the key does not exist then nothing is done and a nil error is returned.
+// Returns an error if the bucket was created from a read-only transaction.
+func (b *Bucket) Delete(key []byte) error {
+ if b.tx.db == nil {
+ return ErrTxClosed
+ } else if !b.Writable() {
+ return ErrTxNotWritable
+ }
+
+ // Move cursor to correct position.
+ c := b.Cursor()
+ k, _, flags := c.seek(key)
+
+ // Return nil if the key doesn't exist.
+ if !bytes.Equal(key, k) {
+ return nil
+ }
+
+ // Return an error if there is already existing bucket value.
+ if (flags & bucketLeafFlag) != 0 {
+ return ErrIncompatibleValue
+ }
+
+ // Delete the node if we have a matching key.
+ c.node().del(key)
+
+ return nil
+}
+
+// Sequence returns the current integer for the bucket without incrementing it.
+func (b *Bucket) Sequence() uint64 { return b.bucket.sequence }
+
+// SetSequence updates the sequence number for the bucket.
+func (b *Bucket) SetSequence(v uint64) error {
+ if b.tx.db == nil {
+ return ErrTxClosed
+ } else if !b.Writable() {
+ return ErrTxNotWritable
+ }
+
+ // Materialize the root node if it hasn't been already so that the
+ // bucket will be saved during commit.
+ if b.rootNode == nil {
+ _ = b.node(b.root, nil)
+ }
+
+ // Increment and return the sequence.
+ b.bucket.sequence = v
+ return nil
+}
+
+// NextSequence returns an autoincrementing integer for the bucket.
+func (b *Bucket) NextSequence() (uint64, error) {
+ if b.tx.db == nil {
+ return 0, ErrTxClosed
+ } else if !b.Writable() {
+ return 0, ErrTxNotWritable
+ }
+
+ // Materialize the root node if it hasn't been already so that the
+ // bucket will be saved during commit.
+ if b.rootNode == nil {
+ _ = b.node(b.root, nil)
+ }
+
+ // Increment and return the sequence.
+ b.bucket.sequence++
+ return b.bucket.sequence, nil
+}
+
+// ForEach executes a function for each key/value pair in a bucket.
+// If the provided function returns an error then the iteration is stopped and
+// the error is returned to the caller. The provided function must not modify
+// the bucket; this will result in undefined behavior.
+func (b *Bucket) ForEach(fn func(k, v []byte) error) error {
+ if b.tx.db == nil {
+ return ErrTxClosed
+ }
+ c := b.Cursor()
+ for k, v := c.First(); k != nil; k, v = c.Next() {
+ if err := fn(k, v); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+// Stat returns stats on a bucket.
+func (b *Bucket) Stats() BucketStats {
+ var s, subStats BucketStats
+ pageSize := b.tx.db.pageSize
+ s.BucketN += 1
+ if b.root == 0 {
+ s.InlineBucketN += 1
+ }
+ b.forEachPage(func(p *page, depth int) {
+ if (p.flags & leafPageFlag) != 0 {
+ s.KeyN += int(p.count)
+
+ // used totals the used bytes for the page
+ used := pageHeaderSize
+
+ if p.count != 0 {
+ // If page has any elements, add all element headers.
+ used += leafPageElementSize * int(p.count-1)
+
+ // Add all element key, value sizes.
+ // The computation takes advantage of the fact that the position
+ // of the last element's key/value equals to the total of the sizes
+ // of all previous elements' keys and values.
+ // It also includes the last element's header.
+ lastElement := p.leafPageElement(p.count - 1)
+ used += int(lastElement.pos + lastElement.ksize + lastElement.vsize)
+ }
+
+ if b.root == 0 {
+ // For inlined bucket just update the inline stats
+ s.InlineBucketInuse += used
+ } else {
+ // For non-inlined bucket update all the leaf stats
+ s.LeafPageN++
+ s.LeafInuse += used
+ s.LeafOverflowN += int(p.overflow)
+
+ // Collect stats from sub-buckets.
+ // Do that by iterating over all element headers
+ // looking for the ones with the bucketLeafFlag.
+ for i := uint16(0); i < p.count; i++ {
+ e := p.leafPageElement(i)
+ if (e.flags & bucketLeafFlag) != 0 {
+ // For any bucket element, open the element value
+ // and recursively call Stats on the contained bucket.
+ subStats.Add(b.openBucket(e.value()).Stats())
+ }
+ }
+ }
+ } else if (p.flags & branchPageFlag) != 0 {
+ s.BranchPageN++
+ lastElement := p.branchPageElement(p.count - 1)
+
+ // used totals the used bytes for the page
+ // Add header and all element headers.
+ used := pageHeaderSize + (branchPageElementSize * int(p.count-1))
+
+ // Add size of all keys and values.
+ // Again, use the fact that last element's position equals to
+ // the total of key, value sizes of all previous elements.
+ used += int(lastElement.pos + lastElement.ksize)
+ s.BranchInuse += used
+ s.BranchOverflowN += int(p.overflow)
+ }
+
+ // Keep track of maximum page depth.
+ if depth+1 > s.Depth {
+ s.Depth = (depth + 1)
+ }
+ })
+
+ // Alloc stats can be computed from page counts and pageSize.
+ s.BranchAlloc = (s.BranchPageN + s.BranchOverflowN) * pageSize
+ s.LeafAlloc = (s.LeafPageN + s.LeafOverflowN) * pageSize
+
+ // Add the max depth of sub-buckets to get total nested depth.
+ s.Depth += subStats.Depth
+ // Add the stats for all sub-buckets
+ s.Add(subStats)
+ return s
+}
+
+// forEachPage iterates over every page in a bucket, including inline pages.
+func (b *Bucket) forEachPage(fn func(*page, int)) {
+ // If we have an inline page then just use that.
+ if b.page != nil {
+ fn(b.page, 0)
+ return
+ }
+
+ // Otherwise traverse the page hierarchy.
+ b.tx.forEachPage(b.root, 0, fn)
+}
+
+// forEachPageNode iterates over every page (or node) in a bucket.
+// This also includes inline pages.
+func (b *Bucket) forEachPageNode(fn func(*page, *node, int)) {
+ // If we have an inline page or root node then just use that.
+ if b.page != nil {
+ fn(b.page, nil, 0)
+ return
+ }
+ b._forEachPageNode(b.root, 0, fn)
+}
+
+func (b *Bucket) _forEachPageNode(pgid pgid, depth int, fn func(*page, *node, int)) {
+ var p, n = b.pageNode(pgid)
+
+ // Execute function.
+ fn(p, n, depth)
+
+ // Recursively loop over children.
+ if p != nil {
+ if (p.flags & branchPageFlag) != 0 {
+ for i := 0; i < int(p.count); i++ {
+ elem := p.branchPageElement(uint16(i))
+ b._forEachPageNode(elem.pgid, depth+1, fn)
+ }
+ }
+ } else {
+ if !n.isLeaf {
+ for _, inode := range n.inodes {
+ b._forEachPageNode(inode.pgid, depth+1, fn)
+ }
+ }
+ }
+}
+
+// spill writes all the nodes for this bucket to dirty pages.
+func (b *Bucket) spill() error {
+ // Spill all child buckets first.
+ for name, child := range b.buckets {
+ // If the child bucket is small enough and it has no child buckets then
+ // write it inline into the parent bucket's page. Otherwise spill it
+ // like a normal bucket and make the parent value a pointer to the page.
+ var value []byte
+ if child.inlineable() {
+ child.free()
+ value = child.write()
+ } else {
+ if err := child.spill(); err != nil {
+ return err
+ }
+
+ // Update the child bucket header in this bucket.
+ value = make([]byte, unsafe.Sizeof(bucket{}))
+ var bucket = (*bucket)(unsafe.Pointer(&value[0]))
+ *bucket = *child.bucket
+ }
+
+ // Skip writing the bucket if there are no materialized nodes.
+ if child.rootNode == nil {
+ continue
+ }
+
+ // Update parent node.
+ var c = b.Cursor()
+ k, _, flags := c.seek([]byte(name))
+ if !bytes.Equal([]byte(name), k) {
+ panic(fmt.Sprintf("misplaced bucket header: %x -> %x", []byte(name), k))
+ }
+ if flags&bucketLeafFlag == 0 {
+ panic(fmt.Sprintf("unexpected bucket header flag: %x", flags))
+ }
+ c.node().put([]byte(name), []byte(name), value, 0, bucketLeafFlag)
+ }
+
+ // Ignore if there's not a materialized root node.
+ if b.rootNode == nil {
+ return nil
+ }
+
+ // Spill nodes.
+ if err := b.rootNode.spill(); err != nil {
+ return err
+ }
+ b.rootNode = b.rootNode.root()
+
+ // Update the root node for this bucket.
+ if b.rootNode.pgid >= b.tx.meta.pgid {
+ panic(fmt.Sprintf("pgid (%d) above high water mark (%d)", b.rootNode.pgid, b.tx.meta.pgid))
+ }
+ b.root = b.rootNode.pgid
+
+ return nil
+}
+
+// inlineable returns true if a bucket is small enough to be written inline
+// and if it contains no subbuckets. Otherwise returns false.
+func (b *Bucket) inlineable() bool {
+ var n = b.rootNode
+
+ // Bucket must only contain a single leaf node.
+ if n == nil || !n.isLeaf {
+ return false
+ }
+
+ // Bucket is not inlineable if it contains subbuckets or if it goes beyond
+ // our threshold for inline bucket size.
+ var size = pageHeaderSize
+ for _, inode := range n.inodes {
+ size += leafPageElementSize + len(inode.key) + len(inode.value)
+
+ if inode.flags&bucketLeafFlag != 0 {
+ return false
+ } else if size > b.maxInlineBucketSize() {
+ return false
+ }
+ }
+
+ return true
+}
+
+// Returns the maximum total size of a bucket to make it a candidate for inlining.
+func (b *Bucket) maxInlineBucketSize() int {
+ return b.tx.db.pageSize / 4
+}
+
+// write allocates and writes a bucket to a byte slice.
+func (b *Bucket) write() []byte {
+ // Allocate the appropriate size.
+ var n = b.rootNode
+ var value = make([]byte, bucketHeaderSize+n.size())
+
+ // Write a bucket header.
+ var bucket = (*bucket)(unsafe.Pointer(&value[0]))
+ *bucket = *b.bucket
+
+ // Convert byte slice to a fake page and write the root node.
+ var p = (*page)(unsafe.Pointer(&value[bucketHeaderSize]))
+ n.write(p)
+
+ return value
+}
+
+// rebalance attempts to balance all nodes.
+func (b *Bucket) rebalance() {
+ for _, n := range b.nodes {
+ n.rebalance()
+ }
+ for _, child := range b.buckets {
+ child.rebalance()
+ }
+}
+
+// node creates a node from a page and associates it with a given parent.
+func (b *Bucket) node(pgid pgid, parent *node) *node {
+ _assert(b.nodes != nil, "nodes map expected")
+
+ // Retrieve node if it's already been created.
+ if n := b.nodes[pgid]; n != nil {
+ return n
+ }
+
+ // Otherwise create a node and cache it.
+ n := &node{bucket: b, parent: parent}
+ if parent == nil {
+ b.rootNode = n
+ } else {
+ parent.children = append(parent.children, n)
+ }
+
+ // Use the inline page if this is an inline bucket.
+ var p = b.page
+ if p == nil {
+ p = b.tx.page(pgid)
+ }
+
+ // Read the page into the node and cache it.
+ n.read(p)
+ b.nodes[pgid] = n
+
+ // Update statistics.
+ b.tx.stats.NodeCount++
+
+ return n
+}
+
+// free recursively frees all pages in the bucket.
+func (b *Bucket) free() {
+ if b.root == 0 {
+ return
+ }
+
+ var tx = b.tx
+ b.forEachPageNode(func(p *page, n *node, _ int) {
+ if p != nil {
+ tx.db.freelist.free(tx.meta.txid, p)
+ } else {
+ n.free()
+ }
+ })
+ b.root = 0
+}
+
+// dereference removes all references to the old mmap.
+func (b *Bucket) dereference() {
+ if b.rootNode != nil {
+ b.rootNode.root().dereference()
+ }
+
+ for _, child := range b.buckets {
+ child.dereference()
+ }
+}
+
+// pageNode returns the in-memory node, if it exists.
+// Otherwise returns the underlying page.
+func (b *Bucket) pageNode(id pgid) (*page, *node) {
+ // Inline buckets have a fake page embedded in their value so treat them
+ // differently. We'll return the rootNode (if available) or the fake page.
+ if b.root == 0 {
+ if id != 0 {
+ panic(fmt.Sprintf("inline bucket non-zero page access(2): %d != 0", id))
+ }
+ if b.rootNode != nil {
+ return nil, b.rootNode
+ }
+ return b.page, nil
+ }
+
+ // Check the node cache for non-inline buckets.
+ if b.nodes != nil {
+ if n := b.nodes[id]; n != nil {
+ return nil, n
+ }
+ }
+
+ // Finally lookup the page from the transaction if no node is materialized.
+ return b.tx.page(id), nil
+}
+
+// BucketStats records statistics about resources used by a bucket.
+type BucketStats struct {
+ // Page count statistics.
+ BranchPageN int // number of logical branch pages
+ BranchOverflowN int // number of physical branch overflow pages
+ LeafPageN int // number of logical leaf pages
+ LeafOverflowN int // number of physical leaf overflow pages
+
+ // Tree statistics.
+ KeyN int // number of keys/value pairs
+ Depth int // number of levels in B+tree
+
+ // Page size utilization.
+ BranchAlloc int // bytes allocated for physical branch pages
+ BranchInuse int // bytes actually used for branch data
+ LeafAlloc int // bytes allocated for physical leaf pages
+ LeafInuse int // bytes actually used for leaf data
+
+ // Bucket statistics
+ BucketN int // total number of buckets including the top bucket
+ InlineBucketN int // total number on inlined buckets
+ InlineBucketInuse int // bytes used for inlined buckets (also accounted for in LeafInuse)
+}
+
+func (s *BucketStats) Add(other BucketStats) {
+ s.BranchPageN += other.BranchPageN
+ s.BranchOverflowN += other.BranchOverflowN
+ s.LeafPageN += other.LeafPageN
+ s.LeafOverflowN += other.LeafOverflowN
+ s.KeyN += other.KeyN
+ if s.Depth < other.Depth {
+ s.Depth = other.Depth
+ }
+ s.BranchAlloc += other.BranchAlloc
+ s.BranchInuse += other.BranchInuse
+ s.LeafAlloc += other.LeafAlloc
+ s.LeafInuse += other.LeafInuse
+
+ s.BucketN += other.BucketN
+ s.InlineBucketN += other.InlineBucketN
+ s.InlineBucketInuse += other.InlineBucketInuse
+}
+
+// cloneBytes returns a copy of a given slice.
+func cloneBytes(v []byte) []byte {
+ var clone = make([]byte, len(v))
+ copy(clone, v)
+ return clone
+}
diff --git a/vendor/go.etcd.io/bbolt/cursor.go b/vendor/go.etcd.io/bbolt/cursor.go
new file mode 100644
index 0000000000..3000aced6c
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/cursor.go
@@ -0,0 +1,396 @@
+package bbolt
+
+import (
+ "bytes"
+ "fmt"
+ "sort"
+)
+
+// Cursor represents an iterator that can traverse over all key/value pairs in a bucket in sorted order.
+// Cursors see nested buckets with value == nil.
+// Cursors can be obtained from a transaction and are valid as long as the transaction is open.
+//
+// Keys and values returned from the cursor are only valid for the life of the transaction.
+//
+// Changing data while traversing with a cursor may cause it to be invalidated
+// and return unexpected keys and/or values. You must reposition your cursor
+// after mutating data.
+type Cursor struct {
+ bucket *Bucket
+ stack []elemRef
+}
+
+// Bucket returns the bucket that this cursor was created from.
+func (c *Cursor) Bucket() *Bucket {
+ return c.bucket
+}
+
+// First moves the cursor to the first item in the bucket and returns its key and value.
+// If the bucket is empty then a nil key and value are returned.
+// The returned key and value are only valid for the life of the transaction.
+func (c *Cursor) First() (key []byte, value []byte) {
+ _assert(c.bucket.tx.db != nil, "tx closed")
+ c.stack = c.stack[:0]
+ p, n := c.bucket.pageNode(c.bucket.root)
+ c.stack = append(c.stack, elemRef{page: p, node: n, index: 0})
+ c.first()
+
+ // If we land on an empty page then move to the next value.
+ // https://github.com/boltdb/bolt/issues/450
+ if c.stack[len(c.stack)-1].count() == 0 {
+ c.next()
+ }
+
+ k, v, flags := c.keyValue()
+ if (flags & uint32(bucketLeafFlag)) != 0 {
+ return k, nil
+ }
+ return k, v
+
+}
+
+// Last moves the cursor to the last item in the bucket and returns its key and value.
+// If the bucket is empty then a nil key and value are returned.
+// The returned key and value are only valid for the life of the transaction.
+func (c *Cursor) Last() (key []byte, value []byte) {
+ _assert(c.bucket.tx.db != nil, "tx closed")
+ c.stack = c.stack[:0]
+ p, n := c.bucket.pageNode(c.bucket.root)
+ ref := elemRef{page: p, node: n}
+ ref.index = ref.count() - 1
+ c.stack = append(c.stack, ref)
+ c.last()
+ k, v, flags := c.keyValue()
+ if (flags & uint32(bucketLeafFlag)) != 0 {
+ return k, nil
+ }
+ return k, v
+}
+
+// Next moves the cursor to the next item in the bucket and returns its key and value.
+// If the cursor is at the end of the bucket then a nil key and value are returned.
+// The returned key and value are only valid for the life of the transaction.
+func (c *Cursor) Next() (key []byte, value []byte) {
+ _assert(c.bucket.tx.db != nil, "tx closed")
+ k, v, flags := c.next()
+ if (flags & uint32(bucketLeafFlag)) != 0 {
+ return k, nil
+ }
+ return k, v
+}
+
+// Prev moves the cursor to the previous item in the bucket and returns its key and value.
+// If the cursor is at the beginning of the bucket then a nil key and value are returned.
+// The returned key and value are only valid for the life of the transaction.
+func (c *Cursor) Prev() (key []byte, value []byte) {
+ _assert(c.bucket.tx.db != nil, "tx closed")
+
+ // Attempt to move back one element until we're successful.
+ // Move up the stack as we hit the beginning of each page in our stack.
+ for i := len(c.stack) - 1; i >= 0; i-- {
+ elem := &c.stack[i]
+ if elem.index > 0 {
+ elem.index--
+ break
+ }
+ c.stack = c.stack[:i]
+ }
+
+ // If we've hit the end then return nil.
+ if len(c.stack) == 0 {
+ return nil, nil
+ }
+
+ // Move down the stack to find the last element of the last leaf under this branch.
+ c.last()
+ k, v, flags := c.keyValue()
+ if (flags & uint32(bucketLeafFlag)) != 0 {
+ return k, nil
+ }
+ return k, v
+}
+
+// Seek moves the cursor to a given key and returns it.
+// If the key does not exist then the next key is used. If no keys
+// follow, a nil key is returned.
+// The returned key and value are only valid for the life of the transaction.
+func (c *Cursor) Seek(seek []byte) (key []byte, value []byte) {
+ k, v, flags := c.seek(seek)
+
+ // If we ended up after the last element of a page then move to the next one.
+ if ref := &c.stack[len(c.stack)-1]; ref.index >= ref.count() {
+ k, v, flags = c.next()
+ }
+
+ if k == nil {
+ return nil, nil
+ } else if (flags & uint32(bucketLeafFlag)) != 0 {
+ return k, nil
+ }
+ return k, v
+}
+
+// Delete removes the current key/value under the cursor from the bucket.
+// Delete fails if current key/value is a bucket or if the transaction is not writable.
+func (c *Cursor) Delete() error {
+ if c.bucket.tx.db == nil {
+ return ErrTxClosed
+ } else if !c.bucket.Writable() {
+ return ErrTxNotWritable
+ }
+
+ key, _, flags := c.keyValue()
+ // Return an error if current value is a bucket.
+ if (flags & bucketLeafFlag) != 0 {
+ return ErrIncompatibleValue
+ }
+ c.node().del(key)
+
+ return nil
+}
+
+// seek moves the cursor to a given key and returns it.
+// If the key does not exist then the next key is used.
+func (c *Cursor) seek(seek []byte) (key []byte, value []byte, flags uint32) {
+ _assert(c.bucket.tx.db != nil, "tx closed")
+
+ // Start from root page/node and traverse to correct page.
+ c.stack = c.stack[:0]
+ c.search(seek, c.bucket.root)
+
+ // If this is a bucket then return a nil value.
+ return c.keyValue()
+}
+
+// first moves the cursor to the first leaf element under the last page in the stack.
+func (c *Cursor) first() {
+ for {
+ // Exit when we hit a leaf page.
+ var ref = &c.stack[len(c.stack)-1]
+ if ref.isLeaf() {
+ break
+ }
+
+ // Keep adding pages pointing to the first element to the stack.
+ var pgid pgid
+ if ref.node != nil {
+ pgid = ref.node.inodes[ref.index].pgid
+ } else {
+ pgid = ref.page.branchPageElement(uint16(ref.index)).pgid
+ }
+ p, n := c.bucket.pageNode(pgid)
+ c.stack = append(c.stack, elemRef{page: p, node: n, index: 0})
+ }
+}
+
+// last moves the cursor to the last leaf element under the last page in the stack.
+func (c *Cursor) last() {
+ for {
+ // Exit when we hit a leaf page.
+ ref := &c.stack[len(c.stack)-1]
+ if ref.isLeaf() {
+ break
+ }
+
+ // Keep adding pages pointing to the last element in the stack.
+ var pgid pgid
+ if ref.node != nil {
+ pgid = ref.node.inodes[ref.index].pgid
+ } else {
+ pgid = ref.page.branchPageElement(uint16(ref.index)).pgid
+ }
+ p, n := c.bucket.pageNode(pgid)
+
+ var nextRef = elemRef{page: p, node: n}
+ nextRef.index = nextRef.count() - 1
+ c.stack = append(c.stack, nextRef)
+ }
+}
+
+// next moves to the next leaf element and returns the key and value.
+// If the cursor is at the last leaf element then it stays there and returns nil.
+func (c *Cursor) next() (key []byte, value []byte, flags uint32) {
+ for {
+ // Attempt to move over one element until we're successful.
+ // Move up the stack as we hit the end of each page in our stack.
+ var i int
+ for i = len(c.stack) - 1; i >= 0; i-- {
+ elem := &c.stack[i]
+ if elem.index < elem.count()-1 {
+ elem.index++
+ break
+ }
+ }
+
+ // If we've hit the root page then stop and return. This will leave the
+ // cursor on the last element of the last page.
+ if i == -1 {
+ return nil, nil, 0
+ }
+
+ // Otherwise start from where we left off in the stack and find the
+ // first element of the first leaf page.
+ c.stack = c.stack[:i+1]
+ c.first()
+
+ // If this is an empty page then restart and move back up the stack.
+ // https://github.com/boltdb/bolt/issues/450
+ if c.stack[len(c.stack)-1].count() == 0 {
+ continue
+ }
+
+ return c.keyValue()
+ }
+}
+
+// search recursively performs a binary search against a given page/node until it finds a given key.
+func (c *Cursor) search(key []byte, pgid pgid) {
+ p, n := c.bucket.pageNode(pgid)
+ if p != nil && (p.flags&(branchPageFlag|leafPageFlag)) == 0 {
+ panic(fmt.Sprintf("invalid page type: %d: %x", p.id, p.flags))
+ }
+ e := elemRef{page: p, node: n}
+ c.stack = append(c.stack, e)
+
+ // If we're on a leaf page/node then find the specific node.
+ if e.isLeaf() {
+ c.nsearch(key)
+ return
+ }
+
+ if n != nil {
+ c.searchNode(key, n)
+ return
+ }
+ c.searchPage(key, p)
+}
+
+func (c *Cursor) searchNode(key []byte, n *node) {
+ var exact bool
+ index := sort.Search(len(n.inodes), func(i int) bool {
+ // TODO(benbjohnson): Optimize this range search. It's a bit hacky right now.
+ // sort.Search() finds the lowest index where f() != -1 but we need the highest index.
+ ret := bytes.Compare(n.inodes[i].key, key)
+ if ret == 0 {
+ exact = true
+ }
+ return ret != -1
+ })
+ if !exact && index > 0 {
+ index--
+ }
+ c.stack[len(c.stack)-1].index = index
+
+ // Recursively search to the next page.
+ c.search(key, n.inodes[index].pgid)
+}
+
+func (c *Cursor) searchPage(key []byte, p *page) {
+ // Binary search for the correct range.
+ inodes := p.branchPageElements()
+
+ var exact bool
+ index := sort.Search(int(p.count), func(i int) bool {
+ // TODO(benbjohnson): Optimize this range search. It's a bit hacky right now.
+ // sort.Search() finds the lowest index where f() != -1 but we need the highest index.
+ ret := bytes.Compare(inodes[i].key(), key)
+ if ret == 0 {
+ exact = true
+ }
+ return ret != -1
+ })
+ if !exact && index > 0 {
+ index--
+ }
+ c.stack[len(c.stack)-1].index = index
+
+ // Recursively search to the next page.
+ c.search(key, inodes[index].pgid)
+}
+
+// nsearch searches the leaf node on the top of the stack for a key.
+func (c *Cursor) nsearch(key []byte) {
+ e := &c.stack[len(c.stack)-1]
+ p, n := e.page, e.node
+
+ // If we have a node then search its inodes.
+ if n != nil {
+ index := sort.Search(len(n.inodes), func(i int) bool {
+ return bytes.Compare(n.inodes[i].key, key) != -1
+ })
+ e.index = index
+ return
+ }
+
+ // If we have a page then search its leaf elements.
+ inodes := p.leafPageElements()
+ index := sort.Search(int(p.count), func(i int) bool {
+ return bytes.Compare(inodes[i].key(), key) != -1
+ })
+ e.index = index
+}
+
+// keyValue returns the key and value of the current leaf element.
+func (c *Cursor) keyValue() ([]byte, []byte, uint32) {
+ ref := &c.stack[len(c.stack)-1]
+
+ // If the cursor is pointing to the end of page/node then return nil.
+ if ref.count() == 0 || ref.index >= ref.count() {
+ return nil, nil, 0
+ }
+
+ // Retrieve value from node.
+ if ref.node != nil {
+ inode := &ref.node.inodes[ref.index]
+ return inode.key, inode.value, inode.flags
+ }
+
+ // Or retrieve value from page.
+ elem := ref.page.leafPageElement(uint16(ref.index))
+ return elem.key(), elem.value(), elem.flags
+}
+
+// node returns the node that the cursor is currently positioned on.
+func (c *Cursor) node() *node {
+ _assert(len(c.stack) > 0, "accessing a node with a zero-length cursor stack")
+
+ // If the top of the stack is a leaf node then just return it.
+ if ref := &c.stack[len(c.stack)-1]; ref.node != nil && ref.isLeaf() {
+ return ref.node
+ }
+
+ // Start from root and traverse down the hierarchy.
+ var n = c.stack[0].node
+ if n == nil {
+ n = c.bucket.node(c.stack[0].page.id, nil)
+ }
+ for _, ref := range c.stack[:len(c.stack)-1] {
+ _assert(!n.isLeaf, "expected branch node")
+ n = n.childAt(int(ref.index))
+ }
+ _assert(n.isLeaf, "expected leaf node")
+ return n
+}
+
+// elemRef represents a reference to an element on a given page/node.
+type elemRef struct {
+ page *page
+ node *node
+ index int
+}
+
+// isLeaf returns whether the ref is pointing at a leaf page/node.
+func (r *elemRef) isLeaf() bool {
+ if r.node != nil {
+ return r.node.isLeaf
+ }
+ return (r.page.flags & leafPageFlag) != 0
+}
+
+// count returns the number of inodes or page elements.
+func (r *elemRef) count() int {
+ if r.node != nil {
+ return len(r.node.inodes)
+ }
+ return int(r.page.count)
+}
diff --git a/vendor/go.etcd.io/bbolt/db.go b/vendor/go.etcd.io/bbolt/db.go
new file mode 100644
index 0000000000..962248c99f
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/db.go
@@ -0,0 +1,1164 @@
+package bbolt
+
+import (
+ "errors"
+ "fmt"
+ "hash/fnv"
+ "log"
+ "os"
+ "runtime"
+ "sort"
+ "sync"
+ "time"
+ "unsafe"
+)
+
+// The largest step that can be taken when remapping the mmap.
+const maxMmapStep = 1 << 30 // 1GB
+
+// The data file format version.
+const version = 2
+
+// Represents a marker value to indicate that a file is a Bolt DB.
+const magic uint32 = 0xED0CDAED
+
+const pgidNoFreelist pgid = 0xffffffffffffffff
+
+// IgnoreNoSync specifies whether the NoSync field of a DB is ignored when
+// syncing changes to a file. This is required as some operating systems,
+// such as OpenBSD, do not have a unified buffer cache (UBC) and writes
+// must be synchronized using the msync(2) syscall.
+const IgnoreNoSync = runtime.GOOS == "openbsd"
+
+// Default values if not set in a DB instance.
+const (
+ DefaultMaxBatchSize int = 1000
+ DefaultMaxBatchDelay = 10 * time.Millisecond
+ DefaultAllocSize = 16 * 1024 * 1024
+)
+
+// default page size for db is set to the OS page size.
+var defaultPageSize = os.Getpagesize()
+
+// The time elapsed between consecutive file locking attempts.
+const flockRetryTimeout = 50 * time.Millisecond
+
+// FreelistType is the type of the freelist backend
+type FreelistType string
+
+const (
+ // FreelistArrayType indicates backend freelist type is array
+ FreelistArrayType = FreelistType("array")
+ // FreelistMapType indicates backend freelist type is hashmap
+ FreelistMapType = FreelistType("hashmap")
+)
+
+// DB represents a collection of buckets persisted to a file on disk.
+// All data access is performed through transactions which can be obtained through the DB.
+// All the functions on DB will return a ErrDatabaseNotOpen if accessed before Open() is called.
+type DB struct {
+ // When enabled, the database will perform a Check() after every commit.
+ // A panic is issued if the database is in an inconsistent state. This
+ // flag has a large performance impact so it should only be used for
+ // debugging purposes.
+ StrictMode bool
+
+ // Setting the NoSync flag will cause the database to skip fsync()
+ // calls after each commit. This can be useful when bulk loading data
+ // into a database and you can restart the bulk load in the event of
+ // a system failure or database corruption. Do not set this flag for
+ // normal use.
+ //
+ // If the package global IgnoreNoSync constant is true, this value is
+ // ignored. See the comment on that constant for more details.
+ //
+ // THIS IS UNSAFE. PLEASE USE WITH CAUTION.
+ NoSync bool
+
+ // When true, skips syncing freelist to disk. This improves the database
+ // write performance under normal operation, but requires a full database
+ // re-sync during recovery.
+ NoFreelistSync bool
+
+ // FreelistType sets the backend freelist type. There are two options. Array which is simple but endures
+ // dramatic performance degradation if database is large and framentation in freelist is common.
+ // The alternative one is using hashmap, it is faster in almost all circumstances
+ // but it doesn't guarantee that it offers the smallest page id available. In normal case it is safe.
+ // The default type is array
+ FreelistType FreelistType
+
+ // When true, skips the truncate call when growing the database.
+ // Setting this to true is only safe on non-ext3/ext4 systems.
+ // Skipping truncation avoids preallocation of hard drive space and
+ // bypasses a truncate() and fsync() syscall on remapping.
+ //
+ // https://github.com/boltdb/bolt/issues/284
+ NoGrowSync bool
+
+ // If you want to read the entire database fast, you can set MmapFlag to
+ // syscall.MAP_POPULATE on Linux 2.6.23+ for sequential read-ahead.
+ MmapFlags int
+
+ // MaxBatchSize is the maximum size of a batch. Default value is
+ // copied from DefaultMaxBatchSize in Open.
+ //
+ // If <=0, disables batching.
+ //
+ // Do not change concurrently with calls to Batch.
+ MaxBatchSize int
+
+ // MaxBatchDelay is the maximum delay before a batch starts.
+ // Default value is copied from DefaultMaxBatchDelay in Open.
+ //
+ // If <=0, effectively disables batching.
+ //
+ // Do not change concurrently with calls to Batch.
+ MaxBatchDelay time.Duration
+
+ // AllocSize is the amount of space allocated when the database
+ // needs to create new pages. This is done to amortize the cost
+ // of truncate() and fsync() when growing the data file.
+ AllocSize int
+
+ path string
+ file *os.File
+ dataref []byte // mmap'ed readonly, write throws SEGV
+ data *[maxMapSize]byte
+ datasz int
+ filesz int // current on disk file size
+ meta0 *meta
+ meta1 *meta
+ pageSize int
+ opened bool
+ rwtx *Tx
+ txs []*Tx
+ stats Stats
+
+ freelist *freelist
+ freelistLoad sync.Once
+
+ pagePool sync.Pool
+
+ batchMu sync.Mutex
+ batch *batch
+
+ rwlock sync.Mutex // Allows only one writer at a time.
+ metalock sync.Mutex // Protects meta page access.
+ mmaplock sync.RWMutex // Protects mmap access during remapping.
+ statlock sync.RWMutex // Protects stats access.
+
+ ops struct {
+ writeAt func(b []byte, off int64) (n int, err error)
+ }
+
+ // Read only mode.
+ // When true, Update() and Begin(true) return ErrDatabaseReadOnly immediately.
+ readOnly bool
+}
+
+// Path returns the path to currently open database file.
+func (db *DB) Path() string {
+ return db.path
+}
+
+// GoString returns the Go string representation of the database.
+func (db *DB) GoString() string {
+ return fmt.Sprintf("bolt.DB{path:%q}", db.path)
+}
+
+// String returns the string representation of the database.
+func (db *DB) String() string {
+ return fmt.Sprintf("DB<%q>", db.path)
+}
+
+// Open creates and opens a database at the given path.
+// If the file does not exist then it will be created automatically.
+// Passing in nil options will cause Bolt to open the database with the default options.
+func Open(path string, mode os.FileMode, options *Options) (*DB, error) {
+ db := &DB{
+ opened: true,
+ }
+ // Set default options if no options are provided.
+ if options == nil {
+ options = DefaultOptions
+ }
+ db.NoSync = options.NoSync
+ db.NoGrowSync = options.NoGrowSync
+ db.MmapFlags = options.MmapFlags
+ db.NoFreelistSync = options.NoFreelistSync
+ db.FreelistType = options.FreelistType
+
+ // Set default values for later DB operations.
+ db.MaxBatchSize = DefaultMaxBatchSize
+ db.MaxBatchDelay = DefaultMaxBatchDelay
+ db.AllocSize = DefaultAllocSize
+
+ flag := os.O_RDWR
+ if options.ReadOnly {
+ flag = os.O_RDONLY
+ db.readOnly = true
+ }
+
+ // Open data file and separate sync handler for metadata writes.
+ db.path = path
+ var err error
+ if db.file, err = os.OpenFile(db.path, flag|os.O_CREATE, mode); err != nil {
+ _ = db.close()
+ return nil, err
+ }
+
+ // Lock file so that other processes using Bolt in read-write mode cannot
+ // use the database at the same time. This would cause corruption since
+ // the two processes would write meta pages and free pages separately.
+ // The database file is locked exclusively (only one process can grab the lock)
+ // if !options.ReadOnly.
+ // The database file is locked using the shared lock (more than one process may
+ // hold a lock at the same time) otherwise (options.ReadOnly is set).
+ if err := flock(db, !db.readOnly, options.Timeout); err != nil {
+ _ = db.close()
+ return nil, err
+ }
+
+ // Default values for test hooks
+ db.ops.writeAt = db.file.WriteAt
+
+ if db.pageSize = options.PageSize; db.pageSize == 0 {
+ // Set the default page size to the OS page size.
+ db.pageSize = defaultPageSize
+ }
+
+ // Initialize the database if it doesn't exist.
+ if info, err := db.file.Stat(); err != nil {
+ _ = db.close()
+ return nil, err
+ } else if info.Size() == 0 {
+ // Initialize new files with meta pages.
+ if err := db.init(); err != nil {
+ // clean up file descriptor on initialization fail
+ _ = db.close()
+ return nil, err
+ }
+ } else {
+ // Read the first meta page to determine the page size.
+ var buf [0x1000]byte
+ // If we can't read the page size, but can read a page, assume
+ // it's the same as the OS or one given -- since that's how the
+ // page size was chosen in the first place.
+ //
+ // If the first page is invalid and this OS uses a different
+ // page size than what the database was created with then we
+ // are out of luck and cannot access the database.
+ //
+ // TODO: scan for next page
+ if bw, err := db.file.ReadAt(buf[:], 0); err == nil && bw == len(buf) {
+ if m := db.pageInBuffer(buf[:], 0).meta(); m.validate() == nil {
+ db.pageSize = int(m.pageSize)
+ }
+ } else {
+ _ = db.close()
+ return nil, ErrInvalid
+ }
+ }
+
+ // Initialize page pool.
+ db.pagePool = sync.Pool{
+ New: func() interface{} {
+ return make([]byte, db.pageSize)
+ },
+ }
+
+ // Memory map the data file.
+ if err := db.mmap(options.InitialMmapSize); err != nil {
+ _ = db.close()
+ return nil, err
+ }
+
+ if db.readOnly {
+ return db, nil
+ }
+
+ db.loadFreelist()
+
+ // Flush freelist when transitioning from no sync to sync so
+ // NoFreelistSync unaware boltdb can open the db later.
+ if !db.NoFreelistSync && !db.hasSyncedFreelist() {
+ tx, err := db.Begin(true)
+ if tx != nil {
+ err = tx.Commit()
+ }
+ if err != nil {
+ _ = db.close()
+ return nil, err
+ }
+ }
+
+ // Mark the database as opened and return.
+ return db, nil
+}
+
+// loadFreelist reads the freelist if it is synced, or reconstructs it
+// by scanning the DB if it is not synced. It assumes there are no
+// concurrent accesses being made to the freelist.
+func (db *DB) loadFreelist() {
+ db.freelistLoad.Do(func() {
+ db.freelist = newFreelist(db.FreelistType)
+ if !db.hasSyncedFreelist() {
+ // Reconstruct free list by scanning the DB.
+ db.freelist.readIDs(db.freepages())
+ } else {
+ // Read free list from freelist page.
+ db.freelist.read(db.page(db.meta().freelist))
+ }
+ db.stats.FreePageN = db.freelist.free_count()
+ })
+}
+
+func (db *DB) hasSyncedFreelist() bool {
+ return db.meta().freelist != pgidNoFreelist
+}
+
+// mmap opens the underlying memory-mapped file and initializes the meta references.
+// minsz is the minimum size that the new mmap can be.
+func (db *DB) mmap(minsz int) error {
+ db.mmaplock.Lock()
+ defer db.mmaplock.Unlock()
+
+ info, err := db.file.Stat()
+ if err != nil {
+ return fmt.Errorf("mmap stat error: %s", err)
+ } else if int(info.Size()) < db.pageSize*2 {
+ return fmt.Errorf("file size too small")
+ }
+
+ // Ensure the size is at least the minimum size.
+ var size = int(info.Size())
+ if size < minsz {
+ size = minsz
+ }
+ size, err = db.mmapSize(size)
+ if err != nil {
+ return err
+ }
+
+ // Dereference all mmap references before unmapping.
+ if db.rwtx != nil {
+ db.rwtx.root.dereference()
+ }
+
+ // Unmap existing data before continuing.
+ if err := db.munmap(); err != nil {
+ return err
+ }
+
+ // Memory-map the data file as a byte slice.
+ if err := mmap(db, size); err != nil {
+ return err
+ }
+
+ // Save references to the meta pages.
+ db.meta0 = db.page(0).meta()
+ db.meta1 = db.page(1).meta()
+
+ // Validate the meta pages. We only return an error if both meta pages fail
+ // validation, since meta0 failing validation means that it wasn't saved
+ // properly -- but we can recover using meta1. And vice-versa.
+ err0 := db.meta0.validate()
+ err1 := db.meta1.validate()
+ if err0 != nil && err1 != nil {
+ return err0
+ }
+
+ return nil
+}
+
+// munmap unmaps the data file from memory.
+func (db *DB) munmap() error {
+ if err := munmap(db); err != nil {
+ return fmt.Errorf("unmap error: " + err.Error())
+ }
+ return nil
+}
+
+// mmapSize determines the appropriate size for the mmap given the current size
+// of the database. The minimum size is 32KB and doubles until it reaches 1GB.
+// Returns an error if the new mmap size is greater than the max allowed.
+func (db *DB) mmapSize(size int) (int, error) {
+ // Double the size from 32KB until 1GB.
+ for i := uint(15); i <= 30; i++ {
+ if size <= 1< maxMapSize {
+ return 0, fmt.Errorf("mmap too large")
+ }
+
+ // If larger than 1GB then grow by 1GB at a time.
+ sz := int64(size)
+ if remainder := sz % int64(maxMmapStep); remainder > 0 {
+ sz += int64(maxMmapStep) - remainder
+ }
+
+ // Ensure that the mmap size is a multiple of the page size.
+ // This should always be true since we're incrementing in MBs.
+ pageSize := int64(db.pageSize)
+ if (sz % pageSize) != 0 {
+ sz = ((sz / pageSize) + 1) * pageSize
+ }
+
+ // If we've exceeded the max size then only grow up to the max size.
+ if sz > maxMapSize {
+ sz = maxMapSize
+ }
+
+ return int(sz), nil
+}
+
+// init creates a new database file and initializes its meta pages.
+func (db *DB) init() error {
+ // Create two meta pages on a buffer.
+ buf := make([]byte, db.pageSize*4)
+ for i := 0; i < 2; i++ {
+ p := db.pageInBuffer(buf[:], pgid(i))
+ p.id = pgid(i)
+ p.flags = metaPageFlag
+
+ // Initialize the meta page.
+ m := p.meta()
+ m.magic = magic
+ m.version = version
+ m.pageSize = uint32(db.pageSize)
+ m.freelist = 2
+ m.root = bucket{root: 3}
+ m.pgid = 4
+ m.txid = txid(i)
+ m.checksum = m.sum64()
+ }
+
+ // Write an empty freelist at page 3.
+ p := db.pageInBuffer(buf[:], pgid(2))
+ p.id = pgid(2)
+ p.flags = freelistPageFlag
+ p.count = 0
+
+ // Write an empty leaf page at page 4.
+ p = db.pageInBuffer(buf[:], pgid(3))
+ p.id = pgid(3)
+ p.flags = leafPageFlag
+ p.count = 0
+
+ // Write the buffer to our data file.
+ if _, err := db.ops.writeAt(buf, 0); err != nil {
+ return err
+ }
+ if err := fdatasync(db); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+// Close releases all database resources.
+// It will block waiting for any open transactions to finish
+// before closing the database and returning.
+func (db *DB) Close() error {
+ db.rwlock.Lock()
+ defer db.rwlock.Unlock()
+
+ db.metalock.Lock()
+ defer db.metalock.Unlock()
+
+ db.mmaplock.Lock()
+ defer db.mmaplock.Unlock()
+
+ return db.close()
+}
+
+func (db *DB) close() error {
+ if !db.opened {
+ return nil
+ }
+
+ db.opened = false
+
+ db.freelist = nil
+
+ // Clear ops.
+ db.ops.writeAt = nil
+
+ // Close the mmap.
+ if err := db.munmap(); err != nil {
+ return err
+ }
+
+ // Close file handles.
+ if db.file != nil {
+ // No need to unlock read-only file.
+ if !db.readOnly {
+ // Unlock the file.
+ if err := funlock(db); err != nil {
+ log.Printf("bolt.Close(): funlock error: %s", err)
+ }
+ }
+
+ // Close the file descriptor.
+ if err := db.file.Close(); err != nil {
+ return fmt.Errorf("db file close: %s", err)
+ }
+ db.file = nil
+ }
+
+ db.path = ""
+ return nil
+}
+
+// Begin starts a new transaction.
+// Multiple read-only transactions can be used concurrently but only one
+// write transaction can be used at a time. Starting multiple write transactions
+// will cause the calls to block and be serialized until the current write
+// transaction finishes.
+//
+// Transactions should not be dependent on one another. Opening a read
+// transaction and a write transaction in the same goroutine can cause the
+// writer to deadlock because the database periodically needs to re-mmap itself
+// as it grows and it cannot do that while a read transaction is open.
+//
+// If a long running read transaction (for example, a snapshot transaction) is
+// needed, you might want to set DB.InitialMmapSize to a large enough value
+// to avoid potential blocking of write transaction.
+//
+// IMPORTANT: You must close read-only transactions after you are finished or
+// else the database will not reclaim old pages.
+func (db *DB) Begin(writable bool) (*Tx, error) {
+ if writable {
+ return db.beginRWTx()
+ }
+ return db.beginTx()
+}
+
+func (db *DB) beginTx() (*Tx, error) {
+ // Lock the meta pages while we initialize the transaction. We obtain
+ // the meta lock before the mmap lock because that's the order that the
+ // write transaction will obtain them.
+ db.metalock.Lock()
+
+ // Obtain a read-only lock on the mmap. When the mmap is remapped it will
+ // obtain a write lock so all transactions must finish before it can be
+ // remapped.
+ db.mmaplock.RLock()
+
+ // Exit if the database is not open yet.
+ if !db.opened {
+ db.mmaplock.RUnlock()
+ db.metalock.Unlock()
+ return nil, ErrDatabaseNotOpen
+ }
+
+ // Create a transaction associated with the database.
+ t := &Tx{}
+ t.init(db)
+
+ // Keep track of transaction until it closes.
+ db.txs = append(db.txs, t)
+ n := len(db.txs)
+
+ // Unlock the meta pages.
+ db.metalock.Unlock()
+
+ // Update the transaction stats.
+ db.statlock.Lock()
+ db.stats.TxN++
+ db.stats.OpenTxN = n
+ db.statlock.Unlock()
+
+ return t, nil
+}
+
+func (db *DB) beginRWTx() (*Tx, error) {
+ // If the database was opened with Options.ReadOnly, return an error.
+ if db.readOnly {
+ return nil, ErrDatabaseReadOnly
+ }
+
+ // Obtain writer lock. This is released by the transaction when it closes.
+ // This enforces only one writer transaction at a time.
+ db.rwlock.Lock()
+
+ // Once we have the writer lock then we can lock the meta pages so that
+ // we can set up the transaction.
+ db.metalock.Lock()
+ defer db.metalock.Unlock()
+
+ // Exit if the database is not open yet.
+ if !db.opened {
+ db.rwlock.Unlock()
+ return nil, ErrDatabaseNotOpen
+ }
+
+ // Create a transaction associated with the database.
+ t := &Tx{writable: true}
+ t.init(db)
+ db.rwtx = t
+ db.freePages()
+ return t, nil
+}
+
+// freePages releases any pages associated with closed read-only transactions.
+func (db *DB) freePages() {
+ // Free all pending pages prior to earliest open transaction.
+ sort.Sort(txsById(db.txs))
+ minid := txid(0xFFFFFFFFFFFFFFFF)
+ if len(db.txs) > 0 {
+ minid = db.txs[0].meta.txid
+ }
+ if minid > 0 {
+ db.freelist.release(minid - 1)
+ }
+ // Release unused txid extents.
+ for _, t := range db.txs {
+ db.freelist.releaseRange(minid, t.meta.txid-1)
+ minid = t.meta.txid + 1
+ }
+ db.freelist.releaseRange(minid, txid(0xFFFFFFFFFFFFFFFF))
+ // Any page both allocated and freed in an extent is safe to release.
+}
+
+type txsById []*Tx
+
+func (t txsById) Len() int { return len(t) }
+func (t txsById) Swap(i, j int) { t[i], t[j] = t[j], t[i] }
+func (t txsById) Less(i, j int) bool { return t[i].meta.txid < t[j].meta.txid }
+
+// removeTx removes a transaction from the database.
+func (db *DB) removeTx(tx *Tx) {
+ // Release the read lock on the mmap.
+ db.mmaplock.RUnlock()
+
+ // Use the meta lock to restrict access to the DB object.
+ db.metalock.Lock()
+
+ // Remove the transaction.
+ for i, t := range db.txs {
+ if t == tx {
+ last := len(db.txs) - 1
+ db.txs[i] = db.txs[last]
+ db.txs[last] = nil
+ db.txs = db.txs[:last]
+ break
+ }
+ }
+ n := len(db.txs)
+
+ // Unlock the meta pages.
+ db.metalock.Unlock()
+
+ // Merge statistics.
+ db.statlock.Lock()
+ db.stats.OpenTxN = n
+ db.stats.TxStats.add(&tx.stats)
+ db.statlock.Unlock()
+}
+
+// Update executes a function within the context of a read-write managed transaction.
+// If no error is returned from the function then the transaction is committed.
+// If an error is returned then the entire transaction is rolled back.
+// Any error that is returned from the function or returned from the commit is
+// returned from the Update() method.
+//
+// Attempting to manually commit or rollback within the function will cause a panic.
+func (db *DB) Update(fn func(*Tx) error) error {
+ t, err := db.Begin(true)
+ if err != nil {
+ return err
+ }
+
+ // Make sure the transaction rolls back in the event of a panic.
+ defer func() {
+ if t.db != nil {
+ t.rollback()
+ }
+ }()
+
+ // Mark as a managed tx so that the inner function cannot manually commit.
+ t.managed = true
+
+ // If an error is returned from the function then rollback and return error.
+ err = fn(t)
+ t.managed = false
+ if err != nil {
+ _ = t.Rollback()
+ return err
+ }
+
+ return t.Commit()
+}
+
+// View executes a function within the context of a managed read-only transaction.
+// Any error that is returned from the function is returned from the View() method.
+//
+// Attempting to manually rollback within the function will cause a panic.
+func (db *DB) View(fn func(*Tx) error) error {
+ t, err := db.Begin(false)
+ if err != nil {
+ return err
+ }
+
+ // Make sure the transaction rolls back in the event of a panic.
+ defer func() {
+ if t.db != nil {
+ t.rollback()
+ }
+ }()
+
+ // Mark as a managed tx so that the inner function cannot manually rollback.
+ t.managed = true
+
+ // If an error is returned from the function then pass it through.
+ err = fn(t)
+ t.managed = false
+ if err != nil {
+ _ = t.Rollback()
+ return err
+ }
+
+ return t.Rollback()
+}
+
+// Batch calls fn as part of a batch. It behaves similar to Update,
+// except:
+//
+// 1. concurrent Batch calls can be combined into a single Bolt
+// transaction.
+//
+// 2. the function passed to Batch may be called multiple times,
+// regardless of whether it returns error or not.
+//
+// This means that Batch function side effects must be idempotent and
+// take permanent effect only after a successful return is seen in
+// caller.
+//
+// The maximum batch size and delay can be adjusted with DB.MaxBatchSize
+// and DB.MaxBatchDelay, respectively.
+//
+// Batch is only useful when there are multiple goroutines calling it.
+func (db *DB) Batch(fn func(*Tx) error) error {
+ errCh := make(chan error, 1)
+
+ db.batchMu.Lock()
+ if (db.batch == nil) || (db.batch != nil && len(db.batch.calls) >= db.MaxBatchSize) {
+ // There is no existing batch, or the existing batch is full; start a new one.
+ db.batch = &batch{
+ db: db,
+ }
+ db.batch.timer = time.AfterFunc(db.MaxBatchDelay, db.batch.trigger)
+ }
+ db.batch.calls = append(db.batch.calls, call{fn: fn, err: errCh})
+ if len(db.batch.calls) >= db.MaxBatchSize {
+ // wake up batch, it's ready to run
+ go db.batch.trigger()
+ }
+ db.batchMu.Unlock()
+
+ err := <-errCh
+ if err == trySolo {
+ err = db.Update(fn)
+ }
+ return err
+}
+
+type call struct {
+ fn func(*Tx) error
+ err chan<- error
+}
+
+type batch struct {
+ db *DB
+ timer *time.Timer
+ start sync.Once
+ calls []call
+}
+
+// trigger runs the batch if it hasn't already been run.
+func (b *batch) trigger() {
+ b.start.Do(b.run)
+}
+
+// run performs the transactions in the batch and communicates results
+// back to DB.Batch.
+func (b *batch) run() {
+ b.db.batchMu.Lock()
+ b.timer.Stop()
+ // Make sure no new work is added to this batch, but don't break
+ // other batches.
+ if b.db.batch == b {
+ b.db.batch = nil
+ }
+ b.db.batchMu.Unlock()
+
+retry:
+ for len(b.calls) > 0 {
+ var failIdx = -1
+ err := b.db.Update(func(tx *Tx) error {
+ for i, c := range b.calls {
+ if err := safelyCall(c.fn, tx); err != nil {
+ failIdx = i
+ return err
+ }
+ }
+ return nil
+ })
+
+ if failIdx >= 0 {
+ // take the failing transaction out of the batch. it's
+ // safe to shorten b.calls here because db.batch no longer
+ // points to us, and we hold the mutex anyway.
+ c := b.calls[failIdx]
+ b.calls[failIdx], b.calls = b.calls[len(b.calls)-1], b.calls[:len(b.calls)-1]
+ // tell the submitter re-run it solo, continue with the rest of the batch
+ c.err <- trySolo
+ continue retry
+ }
+
+ // pass success, or bolt internal errors, to all callers
+ for _, c := range b.calls {
+ c.err <- err
+ }
+ break retry
+ }
+}
+
+// trySolo is a special sentinel error value used for signaling that a
+// transaction function should be re-run. It should never be seen by
+// callers.
+var trySolo = errors.New("batch function returned an error and should be re-run solo")
+
+type panicked struct {
+ reason interface{}
+}
+
+func (p panicked) Error() string {
+ if err, ok := p.reason.(error); ok {
+ return err.Error()
+ }
+ return fmt.Sprintf("panic: %v", p.reason)
+}
+
+func safelyCall(fn func(*Tx) error, tx *Tx) (err error) {
+ defer func() {
+ if p := recover(); p != nil {
+ err = panicked{p}
+ }
+ }()
+ return fn(tx)
+}
+
+// Sync executes fdatasync() against the database file handle.
+//
+// This is not necessary under normal operation, however, if you use NoSync
+// then it allows you to force the database file to sync against the disk.
+func (db *DB) Sync() error { return fdatasync(db) }
+
+// Stats retrieves ongoing performance stats for the database.
+// This is only updated when a transaction closes.
+func (db *DB) Stats() Stats {
+ db.statlock.RLock()
+ defer db.statlock.RUnlock()
+ return db.stats
+}
+
+// This is for internal access to the raw data bytes from the C cursor, use
+// carefully, or not at all.
+func (db *DB) Info() *Info {
+ return &Info{uintptr(unsafe.Pointer(&db.data[0])), db.pageSize}
+}
+
+// page retrieves a page reference from the mmap based on the current page size.
+func (db *DB) page(id pgid) *page {
+ pos := id * pgid(db.pageSize)
+ return (*page)(unsafe.Pointer(&db.data[pos]))
+}
+
+// pageInBuffer retrieves a page reference from a given byte array based on the current page size.
+func (db *DB) pageInBuffer(b []byte, id pgid) *page {
+ return (*page)(unsafe.Pointer(&b[id*pgid(db.pageSize)]))
+}
+
+// meta retrieves the current meta page reference.
+func (db *DB) meta() *meta {
+ // We have to return the meta with the highest txid which doesn't fail
+ // validation. Otherwise, we can cause errors when in fact the database is
+ // in a consistent state. metaA is the one with the higher txid.
+ metaA := db.meta0
+ metaB := db.meta1
+ if db.meta1.txid > db.meta0.txid {
+ metaA = db.meta1
+ metaB = db.meta0
+ }
+
+ // Use higher meta page if valid. Otherwise fallback to previous, if valid.
+ if err := metaA.validate(); err == nil {
+ return metaA
+ } else if err := metaB.validate(); err == nil {
+ return metaB
+ }
+
+ // This should never be reached, because both meta1 and meta0 were validated
+ // on mmap() and we do fsync() on every write.
+ panic("bolt.DB.meta(): invalid meta pages")
+}
+
+// allocate returns a contiguous block of memory starting at a given page.
+func (db *DB) allocate(txid txid, count int) (*page, error) {
+ // Allocate a temporary buffer for the page.
+ var buf []byte
+ if count == 1 {
+ buf = db.pagePool.Get().([]byte)
+ } else {
+ buf = make([]byte, count*db.pageSize)
+ }
+ p := (*page)(unsafe.Pointer(&buf[0]))
+ p.overflow = uint32(count - 1)
+
+ // Use pages from the freelist if they are available.
+ if p.id = db.freelist.allocate(txid, count); p.id != 0 {
+ return p, nil
+ }
+
+ // Resize mmap() if we're at the end.
+ p.id = db.rwtx.meta.pgid
+ var minsz = int((p.id+pgid(count))+1) * db.pageSize
+ if minsz >= db.datasz {
+ if err := db.mmap(minsz); err != nil {
+ return nil, fmt.Errorf("mmap allocate error: %s", err)
+ }
+ }
+
+ // Move the page id high water mark.
+ db.rwtx.meta.pgid += pgid(count)
+
+ return p, nil
+}
+
+// grow grows the size of the database to the given sz.
+func (db *DB) grow(sz int) error {
+ // Ignore if the new size is less than available file size.
+ if sz <= db.filesz {
+ return nil
+ }
+
+ // If the data is smaller than the alloc size then only allocate what's needed.
+ // Once it goes over the allocation size then allocate in chunks.
+ if db.datasz < db.AllocSize {
+ sz = db.datasz
+ } else {
+ sz += db.AllocSize
+ }
+
+ // Truncate and fsync to ensure file size metadata is flushed.
+ // https://github.com/boltdb/bolt/issues/284
+ if !db.NoGrowSync && !db.readOnly {
+ if runtime.GOOS != "windows" {
+ if err := db.file.Truncate(int64(sz)); err != nil {
+ return fmt.Errorf("file resize error: %s", err)
+ }
+ }
+ if err := db.file.Sync(); err != nil {
+ return fmt.Errorf("file sync error: %s", err)
+ }
+ }
+
+ db.filesz = sz
+ return nil
+}
+
+func (db *DB) IsReadOnly() bool {
+ return db.readOnly
+}
+
+func (db *DB) freepages() []pgid {
+ tx, err := db.beginTx()
+ defer func() {
+ err = tx.Rollback()
+ if err != nil {
+ panic("freepages: failed to rollback tx")
+ }
+ }()
+ if err != nil {
+ panic("freepages: failed to open read only tx")
+ }
+
+ reachable := make(map[pgid]*page)
+ nofreed := make(map[pgid]bool)
+ ech := make(chan error)
+ go func() {
+ for e := range ech {
+ panic(fmt.Sprintf("freepages: failed to get all reachable pages (%v)", e))
+ }
+ }()
+ tx.checkBucket(&tx.root, reachable, nofreed, ech)
+ close(ech)
+
+ var fids []pgid
+ for i := pgid(2); i < db.meta().pgid; i++ {
+ if _, ok := reachable[i]; !ok {
+ fids = append(fids, i)
+ }
+ }
+ return fids
+}
+
+// Options represents the options that can be set when opening a database.
+type Options struct {
+ // Timeout is the amount of time to wait to obtain a file lock.
+ // When set to zero it will wait indefinitely. This option is only
+ // available on Darwin and Linux.
+ Timeout time.Duration
+
+ // Sets the DB.NoGrowSync flag before memory mapping the file.
+ NoGrowSync bool
+
+ // Do not sync freelist to disk. This improves the database write performance
+ // under normal operation, but requires a full database re-sync during recovery.
+ NoFreelistSync bool
+
+ // FreelistType sets the backend freelist type. There are two options. Array which is simple but endures
+ // dramatic performance degradation if database is large and framentation in freelist is common.
+ // The alternative one is using hashmap, it is faster in almost all circumstances
+ // but it doesn't guarantee that it offers the smallest page id available. In normal case it is safe.
+ // The default type is array
+ FreelistType FreelistType
+
+ // Open database in read-only mode. Uses flock(..., LOCK_SH |LOCK_NB) to
+ // grab a shared lock (UNIX).
+ ReadOnly bool
+
+ // Sets the DB.MmapFlags flag before memory mapping the file.
+ MmapFlags int
+
+ // InitialMmapSize is the initial mmap size of the database
+ // in bytes. Read transactions won't block write transaction
+ // if the InitialMmapSize is large enough to hold database mmap
+ // size. (See DB.Begin for more information)
+ //
+ // If <=0, the initial map size is 0.
+ // If initialMmapSize is smaller than the previous database size,
+ // it takes no effect.
+ InitialMmapSize int
+
+ // PageSize overrides the default OS page size.
+ PageSize int
+
+ // NoSync sets the initial value of DB.NoSync. Normally this can just be
+ // set directly on the DB itself when returned from Open(), but this option
+ // is useful in APIs which expose Options but not the underlying DB.
+ NoSync bool
+}
+
+// DefaultOptions represent the options used if nil options are passed into Open().
+// No timeout is used which will cause Bolt to wait indefinitely for a lock.
+var DefaultOptions = &Options{
+ Timeout: 0,
+ NoGrowSync: false,
+ FreelistType: FreelistArrayType,
+}
+
+// Stats represents statistics about the database.
+type Stats struct {
+ // Freelist stats
+ FreePageN int // total number of free pages on the freelist
+ PendingPageN int // total number of pending pages on the freelist
+ FreeAlloc int // total bytes allocated in free pages
+ FreelistInuse int // total bytes used by the freelist
+
+ // Transaction stats
+ TxN int // total number of started read transactions
+ OpenTxN int // number of currently open read transactions
+
+ TxStats TxStats // global, ongoing stats.
+}
+
+// Sub calculates and returns the difference between two sets of database stats.
+// This is useful when obtaining stats at two different points and time and
+// you need the performance counters that occurred within that time span.
+func (s *Stats) Sub(other *Stats) Stats {
+ if other == nil {
+ return *s
+ }
+ var diff Stats
+ diff.FreePageN = s.FreePageN
+ diff.PendingPageN = s.PendingPageN
+ diff.FreeAlloc = s.FreeAlloc
+ diff.FreelistInuse = s.FreelistInuse
+ diff.TxN = s.TxN - other.TxN
+ diff.TxStats = s.TxStats.Sub(&other.TxStats)
+ return diff
+}
+
+type Info struct {
+ Data uintptr
+ PageSize int
+}
+
+type meta struct {
+ magic uint32
+ version uint32
+ pageSize uint32
+ flags uint32
+ root bucket
+ freelist pgid
+ pgid pgid
+ txid txid
+ checksum uint64
+}
+
+// validate checks the marker bytes and version of the meta page to ensure it matches this binary.
+func (m *meta) validate() error {
+ if m.magic != magic {
+ return ErrInvalid
+ } else if m.version != version {
+ return ErrVersionMismatch
+ } else if m.checksum != 0 && m.checksum != m.sum64() {
+ return ErrChecksum
+ }
+ return nil
+}
+
+// copy copies one meta object to another.
+func (m *meta) copy(dest *meta) {
+ *dest = *m
+}
+
+// write writes the meta onto a page.
+func (m *meta) write(p *page) {
+ if m.root.root >= m.pgid {
+ panic(fmt.Sprintf("root bucket pgid (%d) above high water mark (%d)", m.root.root, m.pgid))
+ } else if m.freelist >= m.pgid && m.freelist != pgidNoFreelist {
+ // TODO: reject pgidNoFreeList if !NoFreelistSync
+ panic(fmt.Sprintf("freelist pgid (%d) above high water mark (%d)", m.freelist, m.pgid))
+ }
+
+ // Page id is either going to be 0 or 1 which we can determine by the transaction ID.
+ p.id = pgid(m.txid % 2)
+ p.flags |= metaPageFlag
+
+ // Calculate the checksum.
+ m.checksum = m.sum64()
+
+ m.copy(p.meta())
+}
+
+// generates the checksum for the meta.
+func (m *meta) sum64() uint64 {
+ var h = fnv.New64a()
+ _, _ = h.Write((*[unsafe.Offsetof(meta{}.checksum)]byte)(unsafe.Pointer(m))[:])
+ return h.Sum64()
+}
+
+// _assert will panic with a given formatted message if the given condition is false.
+func _assert(condition bool, msg string, v ...interface{}) {
+ if !condition {
+ panic(fmt.Sprintf("assertion failed: "+msg, v...))
+ }
+}
diff --git a/vendor/go.etcd.io/bbolt/doc.go b/vendor/go.etcd.io/bbolt/doc.go
new file mode 100644
index 0000000000..95f25f01c6
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/doc.go
@@ -0,0 +1,44 @@
+/*
+package bbolt implements a low-level key/value store in pure Go. It supports
+fully serializable transactions, ACID semantics, and lock-free MVCC with
+multiple readers and a single writer. Bolt can be used for projects that
+want a simple data store without the need to add large dependencies such as
+Postgres or MySQL.
+
+Bolt is a single-level, zero-copy, B+tree data store. This means that Bolt is
+optimized for fast read access and does not require recovery in the event of a
+system crash. Transactions which have not finished committing will simply be
+rolled back in the event of a crash.
+
+The design of Bolt is based on Howard Chu's LMDB database project.
+
+Bolt currently works on Windows, Mac OS X, and Linux.
+
+
+Basics
+
+There are only a few types in Bolt: DB, Bucket, Tx, and Cursor. The DB is
+a collection of buckets and is represented by a single file on disk. A bucket is
+a collection of unique keys that are associated with values.
+
+Transactions provide either read-only or read-write access to the database.
+Read-only transactions can retrieve key/value pairs and can use Cursors to
+iterate over the dataset sequentially. Read-write transactions can create and
+delete buckets and can insert and remove keys. Only one read-write transaction
+is allowed at a time.
+
+
+Caveats
+
+The database uses a read-only, memory-mapped data file to ensure that
+applications cannot corrupt the database, however, this means that keys and
+values returned from Bolt cannot be changed. Writing to a read-only byte slice
+will cause Go to panic.
+
+Keys and values retrieved from the database are only valid for the life of
+the transaction. When used outside the transaction, these byte slices can
+point to different data or can point to invalid memory which will cause a panic.
+
+
+*/
+package bbolt
diff --git a/vendor/go.etcd.io/bbolt/errors.go b/vendor/go.etcd.io/bbolt/errors.go
new file mode 100644
index 0000000000..48758ca577
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/errors.go
@@ -0,0 +1,71 @@
+package bbolt
+
+import "errors"
+
+// These errors can be returned when opening or calling methods on a DB.
+var (
+ // ErrDatabaseNotOpen is returned when a DB instance is accessed before it
+ // is opened or after it is closed.
+ ErrDatabaseNotOpen = errors.New("database not open")
+
+ // ErrDatabaseOpen is returned when opening a database that is
+ // already open.
+ ErrDatabaseOpen = errors.New("database already open")
+
+ // ErrInvalid is returned when both meta pages on a database are invalid.
+ // This typically occurs when a file is not a bolt database.
+ ErrInvalid = errors.New("invalid database")
+
+ // ErrVersionMismatch is returned when the data file was created with a
+ // different version of Bolt.
+ ErrVersionMismatch = errors.New("version mismatch")
+
+ // ErrChecksum is returned when either meta page checksum does not match.
+ ErrChecksum = errors.New("checksum error")
+
+ // ErrTimeout is returned when a database cannot obtain an exclusive lock
+ // on the data file after the timeout passed to Open().
+ ErrTimeout = errors.New("timeout")
+)
+
+// These errors can occur when beginning or committing a Tx.
+var (
+ // ErrTxNotWritable is returned when performing a write operation on a
+ // read-only transaction.
+ ErrTxNotWritable = errors.New("tx not writable")
+
+ // ErrTxClosed is returned when committing or rolling back a transaction
+ // that has already been committed or rolled back.
+ ErrTxClosed = errors.New("tx closed")
+
+ // ErrDatabaseReadOnly is returned when a mutating transaction is started on a
+ // read-only database.
+ ErrDatabaseReadOnly = errors.New("database is in read-only mode")
+)
+
+// These errors can occur when putting or deleting a value or a bucket.
+var (
+ // ErrBucketNotFound is returned when trying to access a bucket that has
+ // not been created yet.
+ ErrBucketNotFound = errors.New("bucket not found")
+
+ // ErrBucketExists is returned when creating a bucket that already exists.
+ ErrBucketExists = errors.New("bucket already exists")
+
+ // ErrBucketNameRequired is returned when creating a bucket with a blank name.
+ ErrBucketNameRequired = errors.New("bucket name required")
+
+ // ErrKeyRequired is returned when inserting a zero-length key.
+ ErrKeyRequired = errors.New("key required")
+
+ // ErrKeyTooLarge is returned when inserting a key that is larger than MaxKeySize.
+ ErrKeyTooLarge = errors.New("key too large")
+
+ // ErrValueTooLarge is returned when inserting a value that is larger than MaxValueSize.
+ ErrValueTooLarge = errors.New("value too large")
+
+ // ErrIncompatibleValue is returned when trying create or delete a bucket
+ // on an existing non-bucket key or when trying to create or delete a
+ // non-bucket key on an existing bucket key.
+ ErrIncompatibleValue = errors.New("incompatible value")
+)
diff --git a/vendor/go.etcd.io/bbolt/freelist.go b/vendor/go.etcd.io/bbolt/freelist.go
new file mode 100644
index 0000000000..93fd85d504
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/freelist.go
@@ -0,0 +1,370 @@
+package bbolt
+
+import (
+ "fmt"
+ "sort"
+ "unsafe"
+)
+
+// txPending holds a list of pgids and corresponding allocation txns
+// that are pending to be freed.
+type txPending struct {
+ ids []pgid
+ alloctx []txid // txids allocating the ids
+ lastReleaseBegin txid // beginning txid of last matching releaseRange
+}
+
+// pidSet holds the set of starting pgids which have the same span size
+type pidSet map[pgid]struct{}
+
+// freelist represents a list of all pages that are available for allocation.
+// It also tracks pages that have been freed but are still in use by open transactions.
+type freelist struct {
+ freelistType FreelistType // freelist type
+ ids []pgid // all free and available free page ids.
+ allocs map[pgid]txid // mapping of txid that allocated a pgid.
+ pending map[txid]*txPending // mapping of soon-to-be free page ids by tx.
+ cache map[pgid]bool // fast lookup of all free and pending page ids.
+ freemaps map[uint64]pidSet // key is the size of continuous pages(span), value is a set which contains the starting pgids of same size
+ forwardMap map[pgid]uint64 // key is start pgid, value is its span size
+ backwardMap map[pgid]uint64 // key is end pgid, value is its span size
+ allocate func(txid txid, n int) pgid // the freelist allocate func
+ free_count func() int // the function which gives you free page number
+ mergeSpans func(ids pgids) // the mergeSpan func
+ getFreePageIDs func() []pgid // get free pgids func
+ readIDs func(pgids []pgid) // readIDs func reads list of pages and init the freelist
+}
+
+// newFreelist returns an empty, initialized freelist.
+func newFreelist(freelistType FreelistType) *freelist {
+ f := &freelist{
+ freelistType: freelistType,
+ allocs: make(map[pgid]txid),
+ pending: make(map[txid]*txPending),
+ cache: make(map[pgid]bool),
+ freemaps: make(map[uint64]pidSet),
+ forwardMap: make(map[pgid]uint64),
+ backwardMap: make(map[pgid]uint64),
+ }
+
+ if freelistType == FreelistMapType {
+ f.allocate = f.hashmapAllocate
+ f.free_count = f.hashmapFreeCount
+ f.mergeSpans = f.hashmapMergeSpans
+ f.getFreePageIDs = f.hashmapGetFreePageIDs
+ f.readIDs = f.hashmapReadIDs
+ } else {
+ f.allocate = f.arrayAllocate
+ f.free_count = f.arrayFreeCount
+ f.mergeSpans = f.arrayMergeSpans
+ f.getFreePageIDs = f.arrayGetFreePageIDs
+ f.readIDs = f.arrayReadIDs
+ }
+
+ return f
+}
+
+// size returns the size of the page after serialization.
+func (f *freelist) size() int {
+ n := f.count()
+ if n >= 0xFFFF {
+ // The first element will be used to store the count. See freelist.write.
+ n++
+ }
+ return pageHeaderSize + (int(unsafe.Sizeof(pgid(0))) * n)
+}
+
+// count returns count of pages on the freelist
+func (f *freelist) count() int {
+ return f.free_count() + f.pending_count()
+}
+
+// arrayFreeCount returns count of free pages(array version)
+func (f *freelist) arrayFreeCount() int {
+ return len(f.ids)
+}
+
+// pending_count returns count of pending pages
+func (f *freelist) pending_count() int {
+ var count int
+ for _, txp := range f.pending {
+ count += len(txp.ids)
+ }
+ return count
+}
+
+// copyall copies into dst a list of all free ids and all pending ids in one sorted list.
+// f.count returns the minimum length required for dst.
+func (f *freelist) copyall(dst []pgid) {
+ m := make(pgids, 0, f.pending_count())
+ for _, txp := range f.pending {
+ m = append(m, txp.ids...)
+ }
+ sort.Sort(m)
+ mergepgids(dst, f.getFreePageIDs(), m)
+}
+
+// arrayAllocate returns the starting page id of a contiguous list of pages of a given size.
+// If a contiguous block cannot be found then 0 is returned.
+func (f *freelist) arrayAllocate(txid txid, n int) pgid {
+ if len(f.ids) == 0 {
+ return 0
+ }
+
+ var initial, previd pgid
+ for i, id := range f.ids {
+ if id <= 1 {
+ panic(fmt.Sprintf("invalid page allocation: %d", id))
+ }
+
+ // Reset initial page if this is not contiguous.
+ if previd == 0 || id-previd != 1 {
+ initial = id
+ }
+
+ // If we found a contiguous block then remove it and return it.
+ if (id-initial)+1 == pgid(n) {
+ // If we're allocating off the beginning then take the fast path
+ // and just adjust the existing slice. This will use extra memory
+ // temporarily but the append() in free() will realloc the slice
+ // as is necessary.
+ if (i + 1) == n {
+ f.ids = f.ids[i+1:]
+ } else {
+ copy(f.ids[i-n+1:], f.ids[i+1:])
+ f.ids = f.ids[:len(f.ids)-n]
+ }
+
+ // Remove from the free cache.
+ for i := pgid(0); i < pgid(n); i++ {
+ delete(f.cache, initial+i)
+ }
+ f.allocs[initial] = txid
+ return initial
+ }
+
+ previd = id
+ }
+ return 0
+}
+
+// free releases a page and its overflow for a given transaction id.
+// If the page is already free then a panic will occur.
+func (f *freelist) free(txid txid, p *page) {
+ if p.id <= 1 {
+ panic(fmt.Sprintf("cannot free page 0 or 1: %d", p.id))
+ }
+
+ // Free page and all its overflow pages.
+ txp := f.pending[txid]
+ if txp == nil {
+ txp = &txPending{}
+ f.pending[txid] = txp
+ }
+ allocTxid, ok := f.allocs[p.id]
+ if ok {
+ delete(f.allocs, p.id)
+ } else if (p.flags & freelistPageFlag) != 0 {
+ // Freelist is always allocated by prior tx.
+ allocTxid = txid - 1
+ }
+
+ for id := p.id; id <= p.id+pgid(p.overflow); id++ {
+ // Verify that page is not already free.
+ if f.cache[id] {
+ panic(fmt.Sprintf("page %d already freed", id))
+ }
+ // Add to the freelist and cache.
+ txp.ids = append(txp.ids, id)
+ txp.alloctx = append(txp.alloctx, allocTxid)
+ f.cache[id] = true
+ }
+}
+
+// release moves all page ids for a transaction id (or older) to the freelist.
+func (f *freelist) release(txid txid) {
+ m := make(pgids, 0)
+ for tid, txp := range f.pending {
+ if tid <= txid {
+ // Move transaction's pending pages to the available freelist.
+ // Don't remove from the cache since the page is still free.
+ m = append(m, txp.ids...)
+ delete(f.pending, tid)
+ }
+ }
+ f.mergeSpans(m)
+}
+
+// releaseRange moves pending pages allocated within an extent [begin,end] to the free list.
+func (f *freelist) releaseRange(begin, end txid) {
+ if begin > end {
+ return
+ }
+ var m pgids
+ for tid, txp := range f.pending {
+ if tid < begin || tid > end {
+ continue
+ }
+ // Don't recompute freed pages if ranges haven't updated.
+ if txp.lastReleaseBegin == begin {
+ continue
+ }
+ for i := 0; i < len(txp.ids); i++ {
+ if atx := txp.alloctx[i]; atx < begin || atx > end {
+ continue
+ }
+ m = append(m, txp.ids[i])
+ txp.ids[i] = txp.ids[len(txp.ids)-1]
+ txp.ids = txp.ids[:len(txp.ids)-1]
+ txp.alloctx[i] = txp.alloctx[len(txp.alloctx)-1]
+ txp.alloctx = txp.alloctx[:len(txp.alloctx)-1]
+ i--
+ }
+ txp.lastReleaseBegin = begin
+ if len(txp.ids) == 0 {
+ delete(f.pending, tid)
+ }
+ }
+ f.mergeSpans(m)
+}
+
+// rollback removes the pages from a given pending tx.
+func (f *freelist) rollback(txid txid) {
+ // Remove page ids from cache.
+ txp := f.pending[txid]
+ if txp == nil {
+ return
+ }
+ var m pgids
+ for i, pgid := range txp.ids {
+ delete(f.cache, pgid)
+ tx := txp.alloctx[i]
+ if tx == 0 {
+ continue
+ }
+ if tx != txid {
+ // Pending free aborted; restore page back to alloc list.
+ f.allocs[pgid] = tx
+ } else {
+ // Freed page was allocated by this txn; OK to throw away.
+ m = append(m, pgid)
+ }
+ }
+ // Remove pages from pending list and mark as free if allocated by txid.
+ delete(f.pending, txid)
+ f.mergeSpans(m)
+}
+
+// freed returns whether a given page is in the free list.
+func (f *freelist) freed(pgid pgid) bool {
+ return f.cache[pgid]
+}
+
+// read initializes the freelist from a freelist page.
+func (f *freelist) read(p *page) {
+ if (p.flags & freelistPageFlag) == 0 {
+ panic(fmt.Sprintf("invalid freelist page: %d, page type is %s", p.id, p.typ()))
+ }
+ // If the page.count is at the max uint16 value (64k) then it's considered
+ // an overflow and the size of the freelist is stored as the first element.
+ idx, count := 0, int(p.count)
+ if count == 0xFFFF {
+ idx = 1
+ count = int(((*[maxAllocSize]pgid)(unsafe.Pointer(&p.ptr)))[0])
+ }
+
+ // Copy the list of page ids from the freelist.
+ if count == 0 {
+ f.ids = nil
+ } else {
+ ids := ((*[maxAllocSize]pgid)(unsafe.Pointer(&p.ptr)))[idx : idx+count]
+
+ // copy the ids, so we don't modify on the freelist page directly
+ idsCopy := make([]pgid, count)
+ copy(idsCopy, ids)
+ // Make sure they're sorted.
+ sort.Sort(pgids(idsCopy))
+
+ f.readIDs(idsCopy)
+ }
+}
+
+// arrayReadIDs initializes the freelist from a given list of ids.
+func (f *freelist) arrayReadIDs(ids []pgid) {
+ f.ids = ids
+ f.reindex()
+}
+
+func (f *freelist) arrayGetFreePageIDs() []pgid {
+ return f.ids
+}
+
+// write writes the page ids onto a freelist page. All free and pending ids are
+// saved to disk since in the event of a program crash, all pending ids will
+// become free.
+func (f *freelist) write(p *page) error {
+ // Combine the old free pgids and pgids waiting on an open transaction.
+
+ // Update the header flag.
+ p.flags |= freelistPageFlag
+
+ // The page.count can only hold up to 64k elements so if we overflow that
+ // number then we handle it by putting the size in the first element.
+ lenids := f.count()
+ if lenids == 0 {
+ p.count = uint16(lenids)
+ } else if lenids < 0xFFFF {
+ p.count = uint16(lenids)
+ f.copyall(((*[maxAllocSize]pgid)(unsafe.Pointer(&p.ptr)))[:])
+ } else {
+ p.count = 0xFFFF
+ ((*[maxAllocSize]pgid)(unsafe.Pointer(&p.ptr)))[0] = pgid(lenids)
+ f.copyall(((*[maxAllocSize]pgid)(unsafe.Pointer(&p.ptr)))[1:])
+ }
+
+ return nil
+}
+
+// reload reads the freelist from a page and filters out pending items.
+func (f *freelist) reload(p *page) {
+ f.read(p)
+
+ // Build a cache of only pending pages.
+ pcache := make(map[pgid]bool)
+ for _, txp := range f.pending {
+ for _, pendingID := range txp.ids {
+ pcache[pendingID] = true
+ }
+ }
+
+ // Check each page in the freelist and build a new available freelist
+ // with any pages not in the pending lists.
+ var a []pgid
+ for _, id := range f.getFreePageIDs() {
+ if !pcache[id] {
+ a = append(a, id)
+ }
+ }
+
+ f.readIDs(a)
+}
+
+// reindex rebuilds the free cache based on available and pending free lists.
+func (f *freelist) reindex() {
+ ids := f.getFreePageIDs()
+ f.cache = make(map[pgid]bool, len(ids))
+ for _, id := range ids {
+ f.cache[id] = true
+ }
+ for _, txp := range f.pending {
+ for _, pendingID := range txp.ids {
+ f.cache[pendingID] = true
+ }
+ }
+}
+
+// arrayMergeSpans try to merge list of pages(represented by pgids) with existing spans but using array
+func (f *freelist) arrayMergeSpans(ids pgids) {
+ sort.Sort(ids)
+ f.ids = pgids(f.ids).merge(ids)
+}
diff --git a/vendor/go.etcd.io/bbolt/freelist_hmap.go b/vendor/go.etcd.io/bbolt/freelist_hmap.go
new file mode 100644
index 0000000000..6a03a6c3c8
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/freelist_hmap.go
@@ -0,0 +1,178 @@
+package bbolt
+
+import "sort"
+
+// hashmapFreeCount returns count of free pages(hashmap version)
+func (f *freelist) hashmapFreeCount() int {
+ // use the forwardmap to get the total count
+ count := 0
+ for _, size := range f.forwardMap {
+ count += int(size)
+ }
+ return count
+}
+
+// hashmapAllocate serves the same purpose as arrayAllocate, but use hashmap as backend
+func (f *freelist) hashmapAllocate(txid txid, n int) pgid {
+ if n == 0 {
+ return 0
+ }
+
+ // if we have a exact size match just return short path
+ if bm, ok := f.freemaps[uint64(n)]; ok {
+ for pid := range bm {
+ // remove the span
+ f.delSpan(pid, uint64(n))
+
+ f.allocs[pid] = txid
+
+ for i := pgid(0); i < pgid(n); i++ {
+ delete(f.cache, pid+pgid(i))
+ }
+ return pid
+ }
+ }
+
+ // lookup the map to find larger span
+ for size, bm := range f.freemaps {
+ if size < uint64(n) {
+ continue
+ }
+
+ for pid := range bm {
+ // remove the initial
+ f.delSpan(pid, uint64(size))
+
+ f.allocs[pid] = txid
+
+ remain := size - uint64(n)
+
+ // add remain span
+ f.addSpan(pid+pgid(n), remain)
+
+ for i := pgid(0); i < pgid(n); i++ {
+ delete(f.cache, pid+pgid(i))
+ }
+ return pid
+ }
+ }
+
+ return 0
+}
+
+// hashmapReadIDs reads pgids as input an initial the freelist(hashmap version)
+func (f *freelist) hashmapReadIDs(pgids []pgid) {
+ f.init(pgids)
+
+ // Rebuild the page cache.
+ f.reindex()
+}
+
+// hashmapGetFreePageIDs returns the sorted free page ids
+func (f *freelist) hashmapGetFreePageIDs() []pgid {
+ count := f.free_count()
+ if count == 0 {
+ return nil
+ }
+
+ m := make([]pgid, 0, count)
+ for start, size := range f.forwardMap {
+ for i := 0; i < int(size); i++ {
+ m = append(m, start+pgid(i))
+ }
+ }
+ sort.Sort(pgids(m))
+
+ return m
+}
+
+// hashmapMergeSpans try to merge list of pages(represented by pgids) with existing spans
+func (f *freelist) hashmapMergeSpans(ids pgids) {
+ for _, id := range ids {
+ // try to see if we can merge and update
+ f.mergeWithExistingSpan(id)
+ }
+}
+
+// mergeWithExistingSpan merges pid to the existing free spans, try to merge it backward and forward
+func (f *freelist) mergeWithExistingSpan(pid pgid) {
+ prev := pid - 1
+ next := pid + 1
+
+ preSize, mergeWithPrev := f.backwardMap[prev]
+ nextSize, mergeWithNext := f.forwardMap[next]
+ newStart := pid
+ newSize := uint64(1)
+
+ if mergeWithPrev {
+ //merge with previous span
+ start := prev + 1 - pgid(preSize)
+ f.delSpan(start, preSize)
+
+ newStart -= pgid(preSize)
+ newSize += preSize
+ }
+
+ if mergeWithNext {
+ // merge with next span
+ f.delSpan(next, nextSize)
+ newSize += nextSize
+ }
+
+ f.addSpan(newStart, newSize)
+}
+
+func (f *freelist) addSpan(start pgid, size uint64) {
+ f.backwardMap[start-1+pgid(size)] = size
+ f.forwardMap[start] = size
+ if _, ok := f.freemaps[size]; !ok {
+ f.freemaps[size] = make(map[pgid]struct{})
+ }
+
+ f.freemaps[size][start] = struct{}{}
+}
+
+func (f *freelist) delSpan(start pgid, size uint64) {
+ delete(f.forwardMap, start)
+ delete(f.backwardMap, start+pgid(size-1))
+ delete(f.freemaps[size], start)
+ if len(f.freemaps[size]) == 0 {
+ delete(f.freemaps, size)
+ }
+}
+
+// initial from pgids using when use hashmap version
+// pgids must be sorted
+func (f *freelist) init(pgids []pgid) {
+ if len(pgids) == 0 {
+ return
+ }
+
+ size := uint64(1)
+ start := pgids[0]
+
+ if !sort.SliceIsSorted([]pgid(pgids), func(i, j int) bool { return pgids[i] < pgids[j] }) {
+ panic("pgids not sorted")
+ }
+
+ f.freemaps = make(map[uint64]pidSet)
+ f.forwardMap = make(map[pgid]uint64)
+ f.backwardMap = make(map[pgid]uint64)
+
+ for i := 1; i < len(pgids); i++ {
+ // continuous page
+ if pgids[i] == pgids[i-1]+1 {
+ size++
+ } else {
+ f.addSpan(start, size)
+
+ size = 1
+ start = pgids[i]
+ }
+ }
+
+ // init the tail
+ if size != 0 && start != 0 {
+ f.addSpan(start, size)
+ }
+}
diff --git a/vendor/go.etcd.io/bbolt/node.go b/vendor/go.etcd.io/bbolt/node.go
new file mode 100644
index 0000000000..6c3fa553ea
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/node.go
@@ -0,0 +1,604 @@
+package bbolt
+
+import (
+ "bytes"
+ "fmt"
+ "sort"
+ "unsafe"
+)
+
+// node represents an in-memory, deserialized page.
+type node struct {
+ bucket *Bucket
+ isLeaf bool
+ unbalanced bool
+ spilled bool
+ key []byte
+ pgid pgid
+ parent *node
+ children nodes
+ inodes inodes
+}
+
+// root returns the top-level node this node is attached to.
+func (n *node) root() *node {
+ if n.parent == nil {
+ return n
+ }
+ return n.parent.root()
+}
+
+// minKeys returns the minimum number of inodes this node should have.
+func (n *node) minKeys() int {
+ if n.isLeaf {
+ return 1
+ }
+ return 2
+}
+
+// size returns the size of the node after serialization.
+func (n *node) size() int {
+ sz, elsz := pageHeaderSize, n.pageElementSize()
+ for i := 0; i < len(n.inodes); i++ {
+ item := &n.inodes[i]
+ sz += elsz + len(item.key) + len(item.value)
+ }
+ return sz
+}
+
+// sizeLessThan returns true if the node is less than a given size.
+// This is an optimization to avoid calculating a large node when we only need
+// to know if it fits inside a certain page size.
+func (n *node) sizeLessThan(v int) bool {
+ sz, elsz := pageHeaderSize, n.pageElementSize()
+ for i := 0; i < len(n.inodes); i++ {
+ item := &n.inodes[i]
+ sz += elsz + len(item.key) + len(item.value)
+ if sz >= v {
+ return false
+ }
+ }
+ return true
+}
+
+// pageElementSize returns the size of each page element based on the type of node.
+func (n *node) pageElementSize() int {
+ if n.isLeaf {
+ return leafPageElementSize
+ }
+ return branchPageElementSize
+}
+
+// childAt returns the child node at a given index.
+func (n *node) childAt(index int) *node {
+ if n.isLeaf {
+ panic(fmt.Sprintf("invalid childAt(%d) on a leaf node", index))
+ }
+ return n.bucket.node(n.inodes[index].pgid, n)
+}
+
+// childIndex returns the index of a given child node.
+func (n *node) childIndex(child *node) int {
+ index := sort.Search(len(n.inodes), func(i int) bool { return bytes.Compare(n.inodes[i].key, child.key) != -1 })
+ return index
+}
+
+// numChildren returns the number of children.
+func (n *node) numChildren() int {
+ return len(n.inodes)
+}
+
+// nextSibling returns the next node with the same parent.
+func (n *node) nextSibling() *node {
+ if n.parent == nil {
+ return nil
+ }
+ index := n.parent.childIndex(n)
+ if index >= n.parent.numChildren()-1 {
+ return nil
+ }
+ return n.parent.childAt(index + 1)
+}
+
+// prevSibling returns the previous node with the same parent.
+func (n *node) prevSibling() *node {
+ if n.parent == nil {
+ return nil
+ }
+ index := n.parent.childIndex(n)
+ if index == 0 {
+ return nil
+ }
+ return n.parent.childAt(index - 1)
+}
+
+// put inserts a key/value.
+func (n *node) put(oldKey, newKey, value []byte, pgid pgid, flags uint32) {
+ if pgid >= n.bucket.tx.meta.pgid {
+ panic(fmt.Sprintf("pgid (%d) above high water mark (%d)", pgid, n.bucket.tx.meta.pgid))
+ } else if len(oldKey) <= 0 {
+ panic("put: zero-length old key")
+ } else if len(newKey) <= 0 {
+ panic("put: zero-length new key")
+ }
+
+ // Find insertion index.
+ index := sort.Search(len(n.inodes), func(i int) bool { return bytes.Compare(n.inodes[i].key, oldKey) != -1 })
+
+ // Add capacity and shift nodes if we don't have an exact match and need to insert.
+ exact := (len(n.inodes) > 0 && index < len(n.inodes) && bytes.Equal(n.inodes[index].key, oldKey))
+ if !exact {
+ n.inodes = append(n.inodes, inode{})
+ copy(n.inodes[index+1:], n.inodes[index:])
+ }
+
+ inode := &n.inodes[index]
+ inode.flags = flags
+ inode.key = newKey
+ inode.value = value
+ inode.pgid = pgid
+ _assert(len(inode.key) > 0, "put: zero-length inode key")
+}
+
+// del removes a key from the node.
+func (n *node) del(key []byte) {
+ // Find index of key.
+ index := sort.Search(len(n.inodes), func(i int) bool { return bytes.Compare(n.inodes[i].key, key) != -1 })
+
+ // Exit if the key isn't found.
+ if index >= len(n.inodes) || !bytes.Equal(n.inodes[index].key, key) {
+ return
+ }
+
+ // Delete inode from the node.
+ n.inodes = append(n.inodes[:index], n.inodes[index+1:]...)
+
+ // Mark the node as needing rebalancing.
+ n.unbalanced = true
+}
+
+// read initializes the node from a page.
+func (n *node) read(p *page) {
+ n.pgid = p.id
+ n.isLeaf = ((p.flags & leafPageFlag) != 0)
+ n.inodes = make(inodes, int(p.count))
+
+ for i := 0; i < int(p.count); i++ {
+ inode := &n.inodes[i]
+ if n.isLeaf {
+ elem := p.leafPageElement(uint16(i))
+ inode.flags = elem.flags
+ inode.key = elem.key()
+ inode.value = elem.value()
+ } else {
+ elem := p.branchPageElement(uint16(i))
+ inode.pgid = elem.pgid
+ inode.key = elem.key()
+ }
+ _assert(len(inode.key) > 0, "read: zero-length inode key")
+ }
+
+ // Save first key so we can find the node in the parent when we spill.
+ if len(n.inodes) > 0 {
+ n.key = n.inodes[0].key
+ _assert(len(n.key) > 0, "read: zero-length node key")
+ } else {
+ n.key = nil
+ }
+}
+
+// write writes the items onto one or more pages.
+func (n *node) write(p *page) {
+ // Initialize page.
+ if n.isLeaf {
+ p.flags |= leafPageFlag
+ } else {
+ p.flags |= branchPageFlag
+ }
+
+ if len(n.inodes) >= 0xFFFF {
+ panic(fmt.Sprintf("inode overflow: %d (pgid=%d)", len(n.inodes), p.id))
+ }
+ p.count = uint16(len(n.inodes))
+
+ // Stop here if there are no items to write.
+ if p.count == 0 {
+ return
+ }
+
+ // Loop over each item and write it to the page.
+ b := (*[maxAllocSize]byte)(unsafe.Pointer(&p.ptr))[n.pageElementSize()*len(n.inodes):]
+ for i, item := range n.inodes {
+ _assert(len(item.key) > 0, "write: zero-length inode key")
+
+ // Write the page element.
+ if n.isLeaf {
+ elem := p.leafPageElement(uint16(i))
+ elem.pos = uint32(uintptr(unsafe.Pointer(&b[0])) - uintptr(unsafe.Pointer(elem)))
+ elem.flags = item.flags
+ elem.ksize = uint32(len(item.key))
+ elem.vsize = uint32(len(item.value))
+ } else {
+ elem := p.branchPageElement(uint16(i))
+ elem.pos = uint32(uintptr(unsafe.Pointer(&b[0])) - uintptr(unsafe.Pointer(elem)))
+ elem.ksize = uint32(len(item.key))
+ elem.pgid = item.pgid
+ _assert(elem.pgid != p.id, "write: circular dependency occurred")
+ }
+
+ // If the length of key+value is larger than the max allocation size
+ // then we need to reallocate the byte array pointer.
+ //
+ // See: https://github.com/boltdb/bolt/pull/335
+ klen, vlen := len(item.key), len(item.value)
+ if len(b) < klen+vlen {
+ b = (*[maxAllocSize]byte)(unsafe.Pointer(&b[0]))[:]
+ }
+
+ // Write data for the element to the end of the page.
+ copy(b[0:], item.key)
+ b = b[klen:]
+ copy(b[0:], item.value)
+ b = b[vlen:]
+ }
+
+ // DEBUG ONLY: n.dump()
+}
+
+// split breaks up a node into multiple smaller nodes, if appropriate.
+// This should only be called from the spill() function.
+func (n *node) split(pageSize int) []*node {
+ var nodes []*node
+
+ node := n
+ for {
+ // Split node into two.
+ a, b := node.splitTwo(pageSize)
+ nodes = append(nodes, a)
+
+ // If we can't split then exit the loop.
+ if b == nil {
+ break
+ }
+
+ // Set node to b so it gets split on the next iteration.
+ node = b
+ }
+
+ return nodes
+}
+
+// splitTwo breaks up a node into two smaller nodes, if appropriate.
+// This should only be called from the split() function.
+func (n *node) splitTwo(pageSize int) (*node, *node) {
+ // Ignore the split if the page doesn't have at least enough nodes for
+ // two pages or if the nodes can fit in a single page.
+ if len(n.inodes) <= (minKeysPerPage*2) || n.sizeLessThan(pageSize) {
+ return n, nil
+ }
+
+ // Determine the threshold before starting a new node.
+ var fillPercent = n.bucket.FillPercent
+ if fillPercent < minFillPercent {
+ fillPercent = minFillPercent
+ } else if fillPercent > maxFillPercent {
+ fillPercent = maxFillPercent
+ }
+ threshold := int(float64(pageSize) * fillPercent)
+
+ // Determine split position and sizes of the two pages.
+ splitIndex, _ := n.splitIndex(threshold)
+
+ // Split node into two separate nodes.
+ // If there's no parent then we'll need to create one.
+ if n.parent == nil {
+ n.parent = &node{bucket: n.bucket, children: []*node{n}}
+ }
+
+ // Create a new node and add it to the parent.
+ next := &node{bucket: n.bucket, isLeaf: n.isLeaf, parent: n.parent}
+ n.parent.children = append(n.parent.children, next)
+
+ // Split inodes across two nodes.
+ next.inodes = n.inodes[splitIndex:]
+ n.inodes = n.inodes[:splitIndex]
+
+ // Update the statistics.
+ n.bucket.tx.stats.Split++
+
+ return n, next
+}
+
+// splitIndex finds the position where a page will fill a given threshold.
+// It returns the index as well as the size of the first page.
+// This is only be called from split().
+func (n *node) splitIndex(threshold int) (index, sz int) {
+ sz = pageHeaderSize
+
+ // Loop until we only have the minimum number of keys required for the second page.
+ for i := 0; i < len(n.inodes)-minKeysPerPage; i++ {
+ index = i
+ inode := n.inodes[i]
+ elsize := n.pageElementSize() + len(inode.key) + len(inode.value)
+
+ // If we have at least the minimum number of keys and adding another
+ // node would put us over the threshold then exit and return.
+ if i >= minKeysPerPage && sz+elsize > threshold {
+ break
+ }
+
+ // Add the element size to the total size.
+ sz += elsize
+ }
+
+ return
+}
+
+// spill writes the nodes to dirty pages and splits nodes as it goes.
+// Returns an error if dirty pages cannot be allocated.
+func (n *node) spill() error {
+ var tx = n.bucket.tx
+ if n.spilled {
+ return nil
+ }
+
+ // Spill child nodes first. Child nodes can materialize sibling nodes in
+ // the case of split-merge so we cannot use a range loop. We have to check
+ // the children size on every loop iteration.
+ sort.Sort(n.children)
+ for i := 0; i < len(n.children); i++ {
+ if err := n.children[i].spill(); err != nil {
+ return err
+ }
+ }
+
+ // We no longer need the child list because it's only used for spill tracking.
+ n.children = nil
+
+ // Split nodes into appropriate sizes. The first node will always be n.
+ var nodes = n.split(tx.db.pageSize)
+ for _, node := range nodes {
+ // Add node's page to the freelist if it's not new.
+ if node.pgid > 0 {
+ tx.db.freelist.free(tx.meta.txid, tx.page(node.pgid))
+ node.pgid = 0
+ }
+
+ // Allocate contiguous space for the node.
+ p, err := tx.allocate((node.size() + tx.db.pageSize - 1) / tx.db.pageSize)
+ if err != nil {
+ return err
+ }
+
+ // Write the node.
+ if p.id >= tx.meta.pgid {
+ panic(fmt.Sprintf("pgid (%d) above high water mark (%d)", p.id, tx.meta.pgid))
+ }
+ node.pgid = p.id
+ node.write(p)
+ node.spilled = true
+
+ // Insert into parent inodes.
+ if node.parent != nil {
+ var key = node.key
+ if key == nil {
+ key = node.inodes[0].key
+ }
+
+ node.parent.put(key, node.inodes[0].key, nil, node.pgid, 0)
+ node.key = node.inodes[0].key
+ _assert(len(node.key) > 0, "spill: zero-length node key")
+ }
+
+ // Update the statistics.
+ tx.stats.Spill++
+ }
+
+ // If the root node split and created a new root then we need to spill that
+ // as well. We'll clear out the children to make sure it doesn't try to respill.
+ if n.parent != nil && n.parent.pgid == 0 {
+ n.children = nil
+ return n.parent.spill()
+ }
+
+ return nil
+}
+
+// rebalance attempts to combine the node with sibling nodes if the node fill
+// size is below a threshold or if there are not enough keys.
+func (n *node) rebalance() {
+ if !n.unbalanced {
+ return
+ }
+ n.unbalanced = false
+
+ // Update statistics.
+ n.bucket.tx.stats.Rebalance++
+
+ // Ignore if node is above threshold (25%) and has enough keys.
+ var threshold = n.bucket.tx.db.pageSize / 4
+ if n.size() > threshold && len(n.inodes) > n.minKeys() {
+ return
+ }
+
+ // Root node has special handling.
+ if n.parent == nil {
+ // If root node is a branch and only has one node then collapse it.
+ if !n.isLeaf && len(n.inodes) == 1 {
+ // Move root's child up.
+ child := n.bucket.node(n.inodes[0].pgid, n)
+ n.isLeaf = child.isLeaf
+ n.inodes = child.inodes[:]
+ n.children = child.children
+
+ // Reparent all child nodes being moved.
+ for _, inode := range n.inodes {
+ if child, ok := n.bucket.nodes[inode.pgid]; ok {
+ child.parent = n
+ }
+ }
+
+ // Remove old child.
+ child.parent = nil
+ delete(n.bucket.nodes, child.pgid)
+ child.free()
+ }
+
+ return
+ }
+
+ // If node has no keys then just remove it.
+ if n.numChildren() == 0 {
+ n.parent.del(n.key)
+ n.parent.removeChild(n)
+ delete(n.bucket.nodes, n.pgid)
+ n.free()
+ n.parent.rebalance()
+ return
+ }
+
+ _assert(n.parent.numChildren() > 1, "parent must have at least 2 children")
+
+ // Destination node is right sibling if idx == 0, otherwise left sibling.
+ var target *node
+ var useNextSibling = (n.parent.childIndex(n) == 0)
+ if useNextSibling {
+ target = n.nextSibling()
+ } else {
+ target = n.prevSibling()
+ }
+
+ // If both this node and the target node are too small then merge them.
+ if useNextSibling {
+ // Reparent all child nodes being moved.
+ for _, inode := range target.inodes {
+ if child, ok := n.bucket.nodes[inode.pgid]; ok {
+ child.parent.removeChild(child)
+ child.parent = n
+ child.parent.children = append(child.parent.children, child)
+ }
+ }
+
+ // Copy over inodes from target and remove target.
+ n.inodes = append(n.inodes, target.inodes...)
+ n.parent.del(target.key)
+ n.parent.removeChild(target)
+ delete(n.bucket.nodes, target.pgid)
+ target.free()
+ } else {
+ // Reparent all child nodes being moved.
+ for _, inode := range n.inodes {
+ if child, ok := n.bucket.nodes[inode.pgid]; ok {
+ child.parent.removeChild(child)
+ child.parent = target
+ child.parent.children = append(child.parent.children, child)
+ }
+ }
+
+ // Copy over inodes to target and remove node.
+ target.inodes = append(target.inodes, n.inodes...)
+ n.parent.del(n.key)
+ n.parent.removeChild(n)
+ delete(n.bucket.nodes, n.pgid)
+ n.free()
+ }
+
+ // Either this node or the target node was deleted from the parent so rebalance it.
+ n.parent.rebalance()
+}
+
+// removes a node from the list of in-memory children.
+// This does not affect the inodes.
+func (n *node) removeChild(target *node) {
+ for i, child := range n.children {
+ if child == target {
+ n.children = append(n.children[:i], n.children[i+1:]...)
+ return
+ }
+ }
+}
+
+// dereference causes the node to copy all its inode key/value references to heap memory.
+// This is required when the mmap is reallocated so inodes are not pointing to stale data.
+func (n *node) dereference() {
+ if n.key != nil {
+ key := make([]byte, len(n.key))
+ copy(key, n.key)
+ n.key = key
+ _assert(n.pgid == 0 || len(n.key) > 0, "dereference: zero-length node key on existing node")
+ }
+
+ for i := range n.inodes {
+ inode := &n.inodes[i]
+
+ key := make([]byte, len(inode.key))
+ copy(key, inode.key)
+ inode.key = key
+ _assert(len(inode.key) > 0, "dereference: zero-length inode key")
+
+ value := make([]byte, len(inode.value))
+ copy(value, inode.value)
+ inode.value = value
+ }
+
+ // Recursively dereference children.
+ for _, child := range n.children {
+ child.dereference()
+ }
+
+ // Update statistics.
+ n.bucket.tx.stats.NodeDeref++
+}
+
+// free adds the node's underlying page to the freelist.
+func (n *node) free() {
+ if n.pgid != 0 {
+ n.bucket.tx.db.freelist.free(n.bucket.tx.meta.txid, n.bucket.tx.page(n.pgid))
+ n.pgid = 0
+ }
+}
+
+// dump writes the contents of the node to STDERR for debugging purposes.
+/*
+func (n *node) dump() {
+ // Write node header.
+ var typ = "branch"
+ if n.isLeaf {
+ typ = "leaf"
+ }
+ warnf("[NODE %d {type=%s count=%d}]", n.pgid, typ, len(n.inodes))
+
+ // Write out abbreviated version of each item.
+ for _, item := range n.inodes {
+ if n.isLeaf {
+ if item.flags&bucketLeafFlag != 0 {
+ bucket := (*bucket)(unsafe.Pointer(&item.value[0]))
+ warnf("+L %08x -> (bucket root=%d)", trunc(item.key, 4), bucket.root)
+ } else {
+ warnf("+L %08x -> %08x", trunc(item.key, 4), trunc(item.value, 4))
+ }
+ } else {
+ warnf("+B %08x -> pgid=%d", trunc(item.key, 4), item.pgid)
+ }
+ }
+ warn("")
+}
+*/
+
+type nodes []*node
+
+func (s nodes) Len() int { return len(s) }
+func (s nodes) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
+func (s nodes) Less(i, j int) bool { return bytes.Compare(s[i].inodes[0].key, s[j].inodes[0].key) == -1 }
+
+// inode represents an internal node inside of a node.
+// It can be used to point to elements in a page or point
+// to an element which hasn't been added to a page yet.
+type inode struct {
+ flags uint32
+ pgid pgid
+ key []byte
+ value []byte
+}
+
+type inodes []inode
diff --git a/vendor/go.etcd.io/bbolt/page.go b/vendor/go.etcd.io/bbolt/page.go
new file mode 100644
index 0000000000..bca9615f0f
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/page.go
@@ -0,0 +1,197 @@
+package bbolt
+
+import (
+ "fmt"
+ "os"
+ "sort"
+ "unsafe"
+)
+
+const pageHeaderSize = int(unsafe.Offsetof(((*page)(nil)).ptr))
+
+const minKeysPerPage = 2
+
+const branchPageElementSize = int(unsafe.Sizeof(branchPageElement{}))
+const leafPageElementSize = int(unsafe.Sizeof(leafPageElement{}))
+
+const (
+ branchPageFlag = 0x01
+ leafPageFlag = 0x02
+ metaPageFlag = 0x04
+ freelistPageFlag = 0x10
+)
+
+const (
+ bucketLeafFlag = 0x01
+)
+
+type pgid uint64
+
+type page struct {
+ id pgid
+ flags uint16
+ count uint16
+ overflow uint32
+ ptr uintptr
+}
+
+// typ returns a human readable page type string used for debugging.
+func (p *page) typ() string {
+ if (p.flags & branchPageFlag) != 0 {
+ return "branch"
+ } else if (p.flags & leafPageFlag) != 0 {
+ return "leaf"
+ } else if (p.flags & metaPageFlag) != 0 {
+ return "meta"
+ } else if (p.flags & freelistPageFlag) != 0 {
+ return "freelist"
+ }
+ return fmt.Sprintf("unknown<%02x>", p.flags)
+}
+
+// meta returns a pointer to the metadata section of the page.
+func (p *page) meta() *meta {
+ return (*meta)(unsafe.Pointer(&p.ptr))
+}
+
+// leafPageElement retrieves the leaf node by index
+func (p *page) leafPageElement(index uint16) *leafPageElement {
+ n := &((*[0x7FFFFFF]leafPageElement)(unsafe.Pointer(&p.ptr)))[index]
+ return n
+}
+
+// leafPageElements retrieves a list of leaf nodes.
+func (p *page) leafPageElements() []leafPageElement {
+ if p.count == 0 {
+ return nil
+ }
+ return ((*[0x7FFFFFF]leafPageElement)(unsafe.Pointer(&p.ptr)))[:]
+}
+
+// branchPageElement retrieves the branch node by index
+func (p *page) branchPageElement(index uint16) *branchPageElement {
+ return &((*[0x7FFFFFF]branchPageElement)(unsafe.Pointer(&p.ptr)))[index]
+}
+
+// branchPageElements retrieves a list of branch nodes.
+func (p *page) branchPageElements() []branchPageElement {
+ if p.count == 0 {
+ return nil
+ }
+ return ((*[0x7FFFFFF]branchPageElement)(unsafe.Pointer(&p.ptr)))[:]
+}
+
+// dump writes n bytes of the page to STDERR as hex output.
+func (p *page) hexdump(n int) {
+ buf := (*[maxAllocSize]byte)(unsafe.Pointer(p))[:n]
+ fmt.Fprintf(os.Stderr, "%x\n", buf)
+}
+
+type pages []*page
+
+func (s pages) Len() int { return len(s) }
+func (s pages) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
+func (s pages) Less(i, j int) bool { return s[i].id < s[j].id }
+
+// branchPageElement represents a node on a branch page.
+type branchPageElement struct {
+ pos uint32
+ ksize uint32
+ pgid pgid
+}
+
+// key returns a byte slice of the node key.
+func (n *branchPageElement) key() []byte {
+ buf := (*[maxAllocSize]byte)(unsafe.Pointer(n))
+ return (*[maxAllocSize]byte)(unsafe.Pointer(&buf[n.pos]))[:n.ksize]
+}
+
+// leafPageElement represents a node on a leaf page.
+type leafPageElement struct {
+ flags uint32
+ pos uint32
+ ksize uint32
+ vsize uint32
+}
+
+// key returns a byte slice of the node key.
+func (n *leafPageElement) key() []byte {
+ buf := (*[maxAllocSize]byte)(unsafe.Pointer(n))
+ return (*[maxAllocSize]byte)(unsafe.Pointer(&buf[n.pos]))[:n.ksize:n.ksize]
+}
+
+// value returns a byte slice of the node value.
+func (n *leafPageElement) value() []byte {
+ buf := (*[maxAllocSize]byte)(unsafe.Pointer(n))
+ return (*[maxAllocSize]byte)(unsafe.Pointer(&buf[n.pos+n.ksize]))[:n.vsize:n.vsize]
+}
+
+// PageInfo represents human readable information about a page.
+type PageInfo struct {
+ ID int
+ Type string
+ Count int
+ OverflowCount int
+}
+
+type pgids []pgid
+
+func (s pgids) Len() int { return len(s) }
+func (s pgids) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
+func (s pgids) Less(i, j int) bool { return s[i] < s[j] }
+
+// merge returns the sorted union of a and b.
+func (a pgids) merge(b pgids) pgids {
+ // Return the opposite slice if one is nil.
+ if len(a) == 0 {
+ return b
+ }
+ if len(b) == 0 {
+ return a
+ }
+ merged := make(pgids, len(a)+len(b))
+ mergepgids(merged, a, b)
+ return merged
+}
+
+// mergepgids copies the sorted union of a and b into dst.
+// If dst is too small, it panics.
+func mergepgids(dst, a, b pgids) {
+ if len(dst) < len(a)+len(b) {
+ panic(fmt.Errorf("mergepgids bad len %d < %d + %d", len(dst), len(a), len(b)))
+ }
+ // Copy in the opposite slice if one is nil.
+ if len(a) == 0 {
+ copy(dst, b)
+ return
+ }
+ if len(b) == 0 {
+ copy(dst, a)
+ return
+ }
+
+ // Merged will hold all elements from both lists.
+ merged := dst[:0]
+
+ // Assign lead to the slice with a lower starting value, follow to the higher value.
+ lead, follow := a, b
+ if b[0] < a[0] {
+ lead, follow = b, a
+ }
+
+ // Continue while there are elements in the lead.
+ for len(lead) > 0 {
+ // Merge largest prefix of lead that is ahead of follow[0].
+ n := sort.Search(len(lead), func(i int) bool { return lead[i] > follow[0] })
+ merged = append(merged, lead[:n]...)
+ if n >= len(lead) {
+ break
+ }
+
+ // Swap lead and follow.
+ lead, follow = follow, lead[n:]
+ }
+
+ // Append what's left in follow.
+ _ = append(merged, follow...)
+}
diff --git a/vendor/go.etcd.io/bbolt/tx.go b/vendor/go.etcd.io/bbolt/tx.go
new file mode 100644
index 0000000000..f508641427
--- /dev/null
+++ b/vendor/go.etcd.io/bbolt/tx.go
@@ -0,0 +1,707 @@
+package bbolt
+
+import (
+ "fmt"
+ "io"
+ "os"
+ "sort"
+ "strings"
+ "time"
+ "unsafe"
+)
+
+// txid represents the internal transaction identifier.
+type txid uint64
+
+// Tx represents a read-only or read/write transaction on the database.
+// Read-only transactions can be used for retrieving values for keys and creating cursors.
+// Read/write transactions can create and remove buckets and create and remove keys.
+//
+// IMPORTANT: You must commit or rollback transactions when you are done with
+// them. Pages can not be reclaimed by the writer until no more transactions
+// are using them. A long running read transaction can cause the database to
+// quickly grow.
+type Tx struct {
+ writable bool
+ managed bool
+ db *DB
+ meta *meta
+ root Bucket
+ pages map[pgid]*page
+ stats TxStats
+ commitHandlers []func()
+
+ // WriteFlag specifies the flag for write-related methods like WriteTo().
+ // Tx opens the database file with the specified flag to copy the data.
+ //
+ // By default, the flag is unset, which works well for mostly in-memory
+ // workloads. For databases that are much larger than available RAM,
+ // set the flag to syscall.O_DIRECT to avoid trashing the page cache.
+ WriteFlag int
+}
+
+// init initializes the transaction.
+func (tx *Tx) init(db *DB) {
+ tx.db = db
+ tx.pages = nil
+
+ // Copy the meta page since it can be changed by the writer.
+ tx.meta = &meta{}
+ db.meta().copy(tx.meta)
+
+ // Copy over the root bucket.
+ tx.root = newBucket(tx)
+ tx.root.bucket = &bucket{}
+ *tx.root.bucket = tx.meta.root
+
+ // Increment the transaction id and add a page cache for writable transactions.
+ if tx.writable {
+ tx.pages = make(map[pgid]*page)
+ tx.meta.txid += txid(1)
+ }
+}
+
+// ID returns the transaction id.
+func (tx *Tx) ID() int {
+ return int(tx.meta.txid)
+}
+
+// DB returns a reference to the database that created the transaction.
+func (tx *Tx) DB() *DB {
+ return tx.db
+}
+
+// Size returns current database size in bytes as seen by this transaction.
+func (tx *Tx) Size() int64 {
+ return int64(tx.meta.pgid) * int64(tx.db.pageSize)
+}
+
+// Writable returns whether the transaction can perform write operations.
+func (tx *Tx) Writable() bool {
+ return tx.writable
+}
+
+// Cursor creates a cursor associated with the root bucket.
+// All items in the cursor will return a nil value because all root bucket keys point to buckets.
+// The cursor is only valid as long as the transaction is open.
+// Do not use a cursor after the transaction is closed.
+func (tx *Tx) Cursor() *Cursor {
+ return tx.root.Cursor()
+}
+
+// Stats retrieves a copy of the current transaction statistics.
+func (tx *Tx) Stats() TxStats {
+ return tx.stats
+}
+
+// Bucket retrieves a bucket by name.
+// Returns nil if the bucket does not exist.
+// The bucket instance is only valid for the lifetime of the transaction.
+func (tx *Tx) Bucket(name []byte) *Bucket {
+ return tx.root.Bucket(name)
+}
+
+// CreateBucket creates a new bucket.
+// Returns an error if the bucket already exists, if the bucket name is blank, or if the bucket name is too long.
+// The bucket instance is only valid for the lifetime of the transaction.
+func (tx *Tx) CreateBucket(name []byte) (*Bucket, error) {
+ return tx.root.CreateBucket(name)
+}
+
+// CreateBucketIfNotExists creates a new bucket if it doesn't already exist.
+// Returns an error if the bucket name is blank, or if the bucket name is too long.
+// The bucket instance is only valid for the lifetime of the transaction.
+func (tx *Tx) CreateBucketIfNotExists(name []byte) (*Bucket, error) {
+ return tx.root.CreateBucketIfNotExists(name)
+}
+
+// DeleteBucket deletes a bucket.
+// Returns an error if the bucket cannot be found or if the key represents a non-bucket value.
+func (tx *Tx) DeleteBucket(name []byte) error {
+ return tx.root.DeleteBucket(name)
+}
+
+// ForEach executes a function for each bucket in the root.
+// If the provided function returns an error then the iteration is stopped and
+// the error is returned to the caller.
+func (tx *Tx) ForEach(fn func(name []byte, b *Bucket) error) error {
+ return tx.root.ForEach(func(k, v []byte) error {
+ return fn(k, tx.root.Bucket(k))
+ })
+}
+
+// OnCommit adds a handler function to be executed after the transaction successfully commits.
+func (tx *Tx) OnCommit(fn func()) {
+ tx.commitHandlers = append(tx.commitHandlers, fn)
+}
+
+// Commit writes all changes to disk and updates the meta page.
+// Returns an error if a disk write error occurs, or if Commit is
+// called on a read-only transaction.
+func (tx *Tx) Commit() error {
+ _assert(!tx.managed, "managed tx commit not allowed")
+ if tx.db == nil {
+ return ErrTxClosed
+ } else if !tx.writable {
+ return ErrTxNotWritable
+ }
+
+ // TODO(benbjohnson): Use vectorized I/O to write out dirty pages.
+
+ // Rebalance nodes which have had deletions.
+ var startTime = time.Now()
+ tx.root.rebalance()
+ if tx.stats.Rebalance > 0 {
+ tx.stats.RebalanceTime += time.Since(startTime)
+ }
+
+ // spill data onto dirty pages.
+ startTime = time.Now()
+ if err := tx.root.spill(); err != nil {
+ tx.rollback()
+ return err
+ }
+ tx.stats.SpillTime += time.Since(startTime)
+
+ // Free the old root bucket.
+ tx.meta.root.root = tx.root.root
+
+ // Free the old freelist because commit writes out a fresh freelist.
+ if tx.meta.freelist != pgidNoFreelist {
+ tx.db.freelist.free(tx.meta.txid, tx.db.page(tx.meta.freelist))
+ }
+
+ if !tx.db.NoFreelistSync {
+ err := tx.commitFreelist()
+ if err != nil {
+ return err
+ }
+ } else {
+ tx.meta.freelist = pgidNoFreelist
+ }
+
+ // Write dirty pages to disk.
+ startTime = time.Now()
+ if err := tx.write(); err != nil {
+ tx.rollback()
+ return err
+ }
+
+ // If strict mode is enabled then perform a consistency check.
+ // Only the first consistency error is reported in the panic.
+ if tx.db.StrictMode {
+ ch := tx.Check()
+ var errs []string
+ for {
+ err, ok := <-ch
+ if !ok {
+ break
+ }
+ errs = append(errs, err.Error())
+ }
+ if len(errs) > 0 {
+ panic("check fail: " + strings.Join(errs, "\n"))
+ }
+ }
+
+ // Write meta to disk.
+ if err := tx.writeMeta(); err != nil {
+ tx.rollback()
+ return err
+ }
+ tx.stats.WriteTime += time.Since(startTime)
+
+ // Finalize the transaction.
+ tx.close()
+
+ // Execute commit handlers now that the locks have been removed.
+ for _, fn := range tx.commitHandlers {
+ fn()
+ }
+
+ return nil
+}
+
+func (tx *Tx) commitFreelist() error {
+ // Allocate new pages for the new free list. This will overestimate
+ // the size of the freelist but not underestimate the size (which would be bad).
+ opgid := tx.meta.pgid
+ p, err := tx.allocate((tx.db.freelist.size() / tx.db.pageSize) + 1)
+ if err != nil {
+ tx.rollback()
+ return err
+ }
+ if err := tx.db.freelist.write(p); err != nil {
+ tx.rollback()
+ return err
+ }
+ tx.meta.freelist = p.id
+ // If the high water mark has moved up then attempt to grow the database.
+ if tx.meta.pgid > opgid {
+ if err := tx.db.grow(int(tx.meta.pgid+1) * tx.db.pageSize); err != nil {
+ tx.rollback()
+ return err
+ }
+ }
+
+ return nil
+}
+
+// Rollback closes the transaction and ignores all previous updates. Read-only
+// transactions must be rolled back and not committed.
+func (tx *Tx) Rollback() error {
+ _assert(!tx.managed, "managed tx rollback not allowed")
+ if tx.db == nil {
+ return ErrTxClosed
+ }
+ tx.rollback()
+ return nil
+}
+
+func (tx *Tx) rollback() {
+ if tx.db == nil {
+ return
+ }
+ if tx.writable {
+ tx.db.freelist.rollback(tx.meta.txid)
+ tx.db.freelist.reload(tx.db.page(tx.db.meta().freelist))
+ }
+ tx.close()
+}
+
+func (tx *Tx) close() {
+ if tx.db == nil {
+ return
+ }
+ if tx.writable {
+ // Grab freelist stats.
+ var freelistFreeN = tx.db.freelist.free_count()
+ var freelistPendingN = tx.db.freelist.pending_count()
+ var freelistAlloc = tx.db.freelist.size()
+
+ // Remove transaction ref & writer lock.
+ tx.db.rwtx = nil
+ tx.db.rwlock.Unlock()
+
+ // Merge statistics.
+ tx.db.statlock.Lock()
+ tx.db.stats.FreePageN = freelistFreeN
+ tx.db.stats.PendingPageN = freelistPendingN
+ tx.db.stats.FreeAlloc = (freelistFreeN + freelistPendingN) * tx.db.pageSize
+ tx.db.stats.FreelistInuse = freelistAlloc
+ tx.db.stats.TxStats.add(&tx.stats)
+ tx.db.statlock.Unlock()
+ } else {
+ tx.db.removeTx(tx)
+ }
+
+ // Clear all references.
+ tx.db = nil
+ tx.meta = nil
+ tx.root = Bucket{tx: tx}
+ tx.pages = nil
+}
+
+// Copy writes the entire database to a writer.
+// This function exists for backwards compatibility.
+//
+// Deprecated; Use WriteTo() instead.
+func (tx *Tx) Copy(w io.Writer) error {
+ _, err := tx.WriteTo(w)
+ return err
+}
+
+// WriteTo writes the entire database to a writer.
+// If err == nil then exactly tx.Size() bytes will be written into the writer.
+func (tx *Tx) WriteTo(w io.Writer) (n int64, err error) {
+ // Attempt to open reader with WriteFlag
+ f, err := os.OpenFile(tx.db.path, os.O_RDONLY|tx.WriteFlag, 0)
+ if err != nil {
+ return 0, err
+ }
+ defer func() {
+ if cerr := f.Close(); err == nil {
+ err = cerr
+ }
+ }()
+
+ // Generate a meta page. We use the same page data for both meta pages.
+ buf := make([]byte, tx.db.pageSize)
+ page := (*page)(unsafe.Pointer(&buf[0]))
+ page.flags = metaPageFlag
+ *page.meta() = *tx.meta
+
+ // Write meta 0.
+ page.id = 0
+ page.meta().checksum = page.meta().sum64()
+ nn, err := w.Write(buf)
+ n += int64(nn)
+ if err != nil {
+ return n, fmt.Errorf("meta 0 copy: %s", err)
+ }
+
+ // Write meta 1 with a lower transaction id.
+ page.id = 1
+ page.meta().txid -= 1
+ page.meta().checksum = page.meta().sum64()
+ nn, err = w.Write(buf)
+ n += int64(nn)
+ if err != nil {
+ return n, fmt.Errorf("meta 1 copy: %s", err)
+ }
+
+ // Move past the meta pages in the file.
+ if _, err := f.Seek(int64(tx.db.pageSize*2), io.SeekStart); err != nil {
+ return n, fmt.Errorf("seek: %s", err)
+ }
+
+ // Copy data pages.
+ wn, err := io.CopyN(w, f, tx.Size()-int64(tx.db.pageSize*2))
+ n += wn
+ if err != nil {
+ return n, err
+ }
+
+ return n, nil
+}
+
+// CopyFile copies the entire database to file at the given path.
+// A reader transaction is maintained during the copy so it is safe to continue
+// using the database while a copy is in progress.
+func (tx *Tx) CopyFile(path string, mode os.FileMode) error {
+ f, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_TRUNC, mode)
+ if err != nil {
+ return err
+ }
+
+ err = tx.Copy(f)
+ if err != nil {
+ _ = f.Close()
+ return err
+ }
+ return f.Close()
+}
+
+// Check performs several consistency checks on the database for this transaction.
+// An error is returned if any inconsistency is found.
+//
+// It can be safely run concurrently on a writable transaction. However, this
+// incurs a high cost for large databases and databases with a lot of subbuckets
+// because of caching. This overhead can be removed if running on a read-only
+// transaction, however, it is not safe to execute other writer transactions at
+// the same time.
+func (tx *Tx) Check() <-chan error {
+ ch := make(chan error)
+ go tx.check(ch)
+ return ch
+}
+
+func (tx *Tx) check(ch chan error) {
+ // Force loading free list if opened in ReadOnly mode.
+ tx.db.loadFreelist()
+
+ // Check if any pages are double freed.
+ freed := make(map[pgid]bool)
+ all := make([]pgid, tx.db.freelist.count())
+ tx.db.freelist.copyall(all)
+ for _, id := range all {
+ if freed[id] {
+ ch <- fmt.Errorf("page %d: already freed", id)
+ }
+ freed[id] = true
+ }
+
+ // Track every reachable page.
+ reachable := make(map[pgid]*page)
+ reachable[0] = tx.page(0) // meta0
+ reachable[1] = tx.page(1) // meta1
+ if tx.meta.freelist != pgidNoFreelist {
+ for i := uint32(0); i <= tx.page(tx.meta.freelist).overflow; i++ {
+ reachable[tx.meta.freelist+pgid(i)] = tx.page(tx.meta.freelist)
+ }
+ }
+
+ // Recursively check buckets.
+ tx.checkBucket(&tx.root, reachable, freed, ch)
+
+ // Ensure all pages below high water mark are either reachable or freed.
+ for i := pgid(0); i < tx.meta.pgid; i++ {
+ _, isReachable := reachable[i]
+ if !isReachable && !freed[i] {
+ ch <- fmt.Errorf("page %d: unreachable unfreed", int(i))
+ }
+ }
+
+ // Close the channel to signal completion.
+ close(ch)
+}
+
+func (tx *Tx) checkBucket(b *Bucket, reachable map[pgid]*page, freed map[pgid]bool, ch chan error) {
+ // Ignore inline buckets.
+ if b.root == 0 {
+ return
+ }
+
+ // Check every page used by this bucket.
+ b.tx.forEachPage(b.root, 0, func(p *page, _ int) {
+ if p.id > tx.meta.pgid {
+ ch <- fmt.Errorf("page %d: out of bounds: %d", int(p.id), int(b.tx.meta.pgid))
+ }
+
+ // Ensure each page is only referenced once.
+ for i := pgid(0); i <= pgid(p.overflow); i++ {
+ var id = p.id + i
+ if _, ok := reachable[id]; ok {
+ ch <- fmt.Errorf("page %d: multiple references", int(id))
+ }
+ reachable[id] = p
+ }
+
+ // We should only encounter un-freed leaf and branch pages.
+ if freed[p.id] {
+ ch <- fmt.Errorf("page %d: reachable freed", int(p.id))
+ } else if (p.flags&branchPageFlag) == 0 && (p.flags&leafPageFlag) == 0 {
+ ch <- fmt.Errorf("page %d: invalid type: %s", int(p.id), p.typ())
+ }
+ })
+
+ // Check each bucket within this bucket.
+ _ = b.ForEach(func(k, v []byte) error {
+ if child := b.Bucket(k); child != nil {
+ tx.checkBucket(child, reachable, freed, ch)
+ }
+ return nil
+ })
+}
+
+// allocate returns a contiguous block of memory starting at a given page.
+func (tx *Tx) allocate(count int) (*page, error) {
+ p, err := tx.db.allocate(tx.meta.txid, count)
+ if err != nil {
+ return nil, err
+ }
+
+ // Save to our page cache.
+ tx.pages[p.id] = p
+
+ // Update statistics.
+ tx.stats.PageCount += count
+ tx.stats.PageAlloc += count * tx.db.pageSize
+
+ return p, nil
+}
+
+// write writes any dirty pages to disk.
+func (tx *Tx) write() error {
+ // Sort pages by id.
+ pages := make(pages, 0, len(tx.pages))
+ for _, p := range tx.pages {
+ pages = append(pages, p)
+ }
+ // Clear out page cache early.
+ tx.pages = make(map[pgid]*page)
+ sort.Sort(pages)
+
+ // Write pages to disk in order.
+ for _, p := range pages {
+ size := (int(p.overflow) + 1) * tx.db.pageSize
+ offset := int64(p.id) * int64(tx.db.pageSize)
+
+ // Write out page in "max allocation" sized chunks.
+ ptr := (*[maxAllocSize]byte)(unsafe.Pointer(p))
+ for {
+ // Limit our write to our max allocation size.
+ sz := size
+ if sz > maxAllocSize-1 {
+ sz = maxAllocSize - 1
+ }
+
+ // Write chunk to disk.
+ buf := ptr[:sz]
+ if _, err := tx.db.ops.writeAt(buf, offset); err != nil {
+ return err
+ }
+
+ // Update statistics.
+ tx.stats.Write++
+
+ // Exit inner for loop if we've written all the chunks.
+ size -= sz
+ if size == 0 {
+ break
+ }
+
+ // Otherwise move offset forward and move pointer to next chunk.
+ offset += int64(sz)
+ ptr = (*[maxAllocSize]byte)(unsafe.Pointer(&ptr[sz]))
+ }
+ }
+
+ // Ignore file sync if flag is set on DB.
+ if !tx.db.NoSync || IgnoreNoSync {
+ if err := fdatasync(tx.db); err != nil {
+ return err
+ }
+ }
+
+ // Put small pages back to page pool.
+ for _, p := range pages {
+ // Ignore page sizes over 1 page.
+ // These are allocated using make() instead of the page pool.
+ if int(p.overflow) != 0 {
+ continue
+ }
+
+ buf := (*[maxAllocSize]byte)(unsafe.Pointer(p))[:tx.db.pageSize]
+
+ // See https://go.googlesource.com/go/+/f03c9202c43e0abb130669852082117ca50aa9b1
+ for i := range buf {
+ buf[i] = 0
+ }
+ tx.db.pagePool.Put(buf)
+ }
+
+ return nil
+}
+
+// writeMeta writes the meta to the disk.
+func (tx *Tx) writeMeta() error {
+ // Create a temporary buffer for the meta page.
+ buf := make([]byte, tx.db.pageSize)
+ p := tx.db.pageInBuffer(buf, 0)
+ tx.meta.write(p)
+
+ // Write the meta page to file.
+ if _, err := tx.db.ops.writeAt(buf, int64(p.id)*int64(tx.db.pageSize)); err != nil {
+ return err
+ }
+ if !tx.db.NoSync || IgnoreNoSync {
+ if err := fdatasync(tx.db); err != nil {
+ return err
+ }
+ }
+
+ // Update statistics.
+ tx.stats.Write++
+
+ return nil
+}
+
+// page returns a reference to the page with a given id.
+// If page has been written to then a temporary buffered page is returned.
+func (tx *Tx) page(id pgid) *page {
+ // Check the dirty pages first.
+ if tx.pages != nil {
+ if p, ok := tx.pages[id]; ok {
+ return p
+ }
+ }
+
+ // Otherwise return directly from the mmap.
+ return tx.db.page(id)
+}
+
+// forEachPage iterates over every page within a given page and executes a function.
+func (tx *Tx) forEachPage(pgid pgid, depth int, fn func(*page, int)) {
+ p := tx.page(pgid)
+
+ // Execute function.
+ fn(p, depth)
+
+ // Recursively loop over children.
+ if (p.flags & branchPageFlag) != 0 {
+ for i := 0; i < int(p.count); i++ {
+ elem := p.branchPageElement(uint16(i))
+ tx.forEachPage(elem.pgid, depth+1, fn)
+ }
+ }
+}
+
+// Page returns page information for a given page number.
+// This is only safe for concurrent use when used by a writable transaction.
+func (tx *Tx) Page(id int) (*PageInfo, error) {
+ if tx.db == nil {
+ return nil, ErrTxClosed
+ } else if pgid(id) >= tx.meta.pgid {
+ return nil, nil
+ }
+
+ // Build the page info.
+ p := tx.db.page(pgid(id))
+ info := &PageInfo{
+ ID: id,
+ Count: int(p.count),
+ OverflowCount: int(p.overflow),
+ }
+
+ // Determine the type (or if it's free).
+ if tx.db.freelist.freed(pgid(id)) {
+ info.Type = "free"
+ } else {
+ info.Type = p.typ()
+ }
+
+ return info, nil
+}
+
+// TxStats represents statistics about the actions performed by the transaction.
+type TxStats struct {
+ // Page statistics.
+ PageCount int // number of page allocations
+ PageAlloc int // total bytes allocated
+
+ // Cursor statistics.
+ CursorCount int // number of cursors created
+
+ // Node statistics
+ NodeCount int // number of node allocations
+ NodeDeref int // number of node dereferences
+
+ // Rebalance statistics.
+ Rebalance int // number of node rebalances
+ RebalanceTime time.Duration // total time spent rebalancing
+
+ // Split/Spill statistics.
+ Split int // number of nodes split
+ Spill int // number of nodes spilled
+ SpillTime time.Duration // total time spent spilling
+
+ // Write statistics.
+ Write int // number of writes performed
+ WriteTime time.Duration // total time spent writing to disk
+}
+
+func (s *TxStats) add(other *TxStats) {
+ s.PageCount += other.PageCount
+ s.PageAlloc += other.PageAlloc
+ s.CursorCount += other.CursorCount
+ s.NodeCount += other.NodeCount
+ s.NodeDeref += other.NodeDeref
+ s.Rebalance += other.Rebalance
+ s.RebalanceTime += other.RebalanceTime
+ s.Split += other.Split
+ s.Spill += other.Spill
+ s.SpillTime += other.SpillTime
+ s.Write += other.Write
+ s.WriteTime += other.WriteTime
+}
+
+// Sub calculates and returns the difference between two sets of transaction stats.
+// This is useful when obtaining stats at two different points and time and
+// you need the performance counters that occurred within that time span.
+func (s *TxStats) Sub(other *TxStats) TxStats {
+ var diff TxStats
+ diff.PageCount = s.PageCount - other.PageCount
+ diff.PageAlloc = s.PageAlloc - other.PageAlloc
+ diff.CursorCount = s.CursorCount - other.CursorCount
+ diff.NodeCount = s.NodeCount - other.NodeCount
+ diff.NodeDeref = s.NodeDeref - other.NodeDeref
+ diff.Rebalance = s.Rebalance - other.Rebalance
+ diff.RebalanceTime = s.RebalanceTime - other.RebalanceTime
+ diff.Split = s.Split - other.Split
+ diff.Spill = s.Spill - other.Spill
+ diff.SpillTime = s.SpillTime - other.SpillTime
+ diff.Write = s.Write - other.Write
+ diff.WriteTime = s.WriteTime - other.WriteTime
+ return diff
+}
diff --git a/vendor/golang.org/x/crypto/AUTHORS b/vendor/golang.org/x/crypto/AUTHORS
new file mode 100644
index 0000000000..2b00ddba0d
--- /dev/null
+++ b/vendor/golang.org/x/crypto/AUTHORS
@@ -0,0 +1,3 @@
+# This source code refers to The Go Authors for copyright purposes.
+# The master list of authors is in the main Go distribution,
+# visible at https://tip.golang.org/AUTHORS.
diff --git a/vendor/golang.org/x/crypto/CONTRIBUTORS b/vendor/golang.org/x/crypto/CONTRIBUTORS
new file mode 100644
index 0000000000..1fbd3e976f
--- /dev/null
+++ b/vendor/golang.org/x/crypto/CONTRIBUTORS
@@ -0,0 +1,3 @@
+# This source code was written by the Go contributors.
+# The master list of contributors is in the main Go distribution,
+# visible at https://tip.golang.org/CONTRIBUTORS.
diff --git a/vendor/golang.org/x/crypto/LICENSE b/vendor/golang.org/x/crypto/LICENSE
new file mode 100644
index 0000000000..6a66aea5ea
--- /dev/null
+++ b/vendor/golang.org/x/crypto/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) 2009 The Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/golang.org/x/crypto/PATENTS b/vendor/golang.org/x/crypto/PATENTS
new file mode 100644
index 0000000000..733099041f
--- /dev/null
+++ b/vendor/golang.org/x/crypto/PATENTS
@@ -0,0 +1,22 @@
+Additional IP Rights Grant (Patents)
+
+"This implementation" means the copyrightable works distributed by
+Google as part of the Go project.
+
+Google hereby grants to You a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable (except as stated in this section)
+patent license to make, have made, use, offer to sell, sell, import,
+transfer and otherwise run, modify and propagate the contents of this
+implementation of Go, where such license applies only to those patent
+claims, both currently owned or controlled by Google and acquired in
+the future, licensable by Google that are necessarily infringed by this
+implementation of Go. This grant does not include claims that would be
+infringed only as a consequence of further modification of this
+implementation. If you or your agent or exclusive licensee institute or
+order or agree to the institution of patent litigation against any
+entity (including a cross-claim or counterclaim in a lawsuit) alleging
+that this implementation of Go or any code incorporated within this
+implementation of Go constitutes direct or contributory patent
+infringement, or inducement of patent infringement, then any patent
+rights granted to you under this License for this implementation of Go
+shall terminate as of the date such litigation is filed.
diff --git a/vendor/golang.org/x/crypto/blake2b/blake2b.go b/vendor/golang.org/x/crypto/blake2b/blake2b.go
new file mode 100644
index 0000000000..c160e1a4e3
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2b/blake2b.go
@@ -0,0 +1,289 @@
+// Copyright 2016 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 blake2b implements the BLAKE2b hash algorithm defined by RFC 7693
+// and the extendable output function (XOF) BLAKE2Xb.
+//
+// For a detailed specification of BLAKE2b see https://blake2.net/blake2.pdf
+// and for BLAKE2Xb see https://blake2.net/blake2x.pdf
+//
+// If you aren't sure which function you need, use BLAKE2b (Sum512 or New512).
+// If you need a secret-key MAC (message authentication code), use the New512
+// function with a non-nil key.
+//
+// BLAKE2X is a construction to compute hash values larger than 64 bytes. It
+// can produce hash values between 0 and 4 GiB.
+package blake2b
+
+import (
+ "encoding/binary"
+ "errors"
+ "hash"
+)
+
+const (
+ // The blocksize of BLAKE2b in bytes.
+ BlockSize = 128
+ // The hash size of BLAKE2b-512 in bytes.
+ Size = 64
+ // The hash size of BLAKE2b-384 in bytes.
+ Size384 = 48
+ // The hash size of BLAKE2b-256 in bytes.
+ Size256 = 32
+)
+
+var (
+ useAVX2 bool
+ useAVX bool
+ useSSE4 bool
+)
+
+var (
+ errKeySize = errors.New("blake2b: invalid key size")
+ errHashSize = errors.New("blake2b: invalid hash size")
+)
+
+var iv = [8]uint64{
+ 0x6a09e667f3bcc908, 0xbb67ae8584caa73b, 0x3c6ef372fe94f82b, 0xa54ff53a5f1d36f1,
+ 0x510e527fade682d1, 0x9b05688c2b3e6c1f, 0x1f83d9abfb41bd6b, 0x5be0cd19137e2179,
+}
+
+// Sum512 returns the BLAKE2b-512 checksum of the data.
+func Sum512(data []byte) [Size]byte {
+ var sum [Size]byte
+ checkSum(&sum, Size, data)
+ return sum
+}
+
+// Sum384 returns the BLAKE2b-384 checksum of the data.
+func Sum384(data []byte) [Size384]byte {
+ var sum [Size]byte
+ var sum384 [Size384]byte
+ checkSum(&sum, Size384, data)
+ copy(sum384[:], sum[:Size384])
+ return sum384
+}
+
+// Sum256 returns the BLAKE2b-256 checksum of the data.
+func Sum256(data []byte) [Size256]byte {
+ var sum [Size]byte
+ var sum256 [Size256]byte
+ checkSum(&sum, Size256, data)
+ copy(sum256[:], sum[:Size256])
+ return sum256
+}
+
+// New512 returns a new hash.Hash computing the BLAKE2b-512 checksum. A non-nil
+// key turns the hash into a MAC. The key must be between zero and 64 bytes long.
+func New512(key []byte) (hash.Hash, error) { return newDigest(Size, key) }
+
+// New384 returns a new hash.Hash computing the BLAKE2b-384 checksum. A non-nil
+// key turns the hash into a MAC. The key must be between zero and 64 bytes long.
+func New384(key []byte) (hash.Hash, error) { return newDigest(Size384, key) }
+
+// New256 returns a new hash.Hash computing the BLAKE2b-256 checksum. A non-nil
+// key turns the hash into a MAC. The key must be between zero and 64 bytes long.
+func New256(key []byte) (hash.Hash, error) { return newDigest(Size256, key) }
+
+// New returns a new hash.Hash computing the BLAKE2b checksum with a custom length.
+// A non-nil key turns the hash into a MAC. The key must be between zero and 64 bytes long.
+// The hash size can be a value between 1 and 64 but it is highly recommended to use
+// values equal or greater than:
+// - 32 if BLAKE2b is used as a hash function (The key is zero bytes long).
+// - 16 if BLAKE2b is used as a MAC function (The key is at least 16 bytes long).
+// When the key is nil, the returned hash.Hash implements BinaryMarshaler
+// and BinaryUnmarshaler for state (de)serialization as documented by hash.Hash.
+func New(size int, key []byte) (hash.Hash, error) { return newDigest(size, key) }
+
+func newDigest(hashSize int, key []byte) (*digest, error) {
+ if hashSize < 1 || hashSize > Size {
+ return nil, errHashSize
+ }
+ if len(key) > Size {
+ return nil, errKeySize
+ }
+ d := &digest{
+ size: hashSize,
+ keyLen: len(key),
+ }
+ copy(d.key[:], key)
+ d.Reset()
+ return d, nil
+}
+
+func checkSum(sum *[Size]byte, hashSize int, data []byte) {
+ h := iv
+ h[0] ^= uint64(hashSize) | (1 << 16) | (1 << 24)
+ var c [2]uint64
+
+ if length := len(data); length > BlockSize {
+ n := length &^ (BlockSize - 1)
+ if length == n {
+ n -= BlockSize
+ }
+ hashBlocks(&h, &c, 0, data[:n])
+ data = data[n:]
+ }
+
+ var block [BlockSize]byte
+ offset := copy(block[:], data)
+ remaining := uint64(BlockSize - offset)
+ if c[0] < remaining {
+ c[1]--
+ }
+ c[0] -= remaining
+
+ hashBlocks(&h, &c, 0xFFFFFFFFFFFFFFFF, block[:])
+
+ for i, v := range h[:(hashSize+7)/8] {
+ binary.LittleEndian.PutUint64(sum[8*i:], v)
+ }
+}
+
+type digest struct {
+ h [8]uint64
+ c [2]uint64
+ size int
+ block [BlockSize]byte
+ offset int
+
+ key [BlockSize]byte
+ keyLen int
+}
+
+const (
+ magic = "b2b"
+ marshaledSize = len(magic) + 8*8 + 2*8 + 1 + BlockSize + 1
+)
+
+func (d *digest) MarshalBinary() ([]byte, error) {
+ if d.keyLen != 0 {
+ return nil, errors.New("crypto/blake2b: cannot marshal MACs")
+ }
+ b := make([]byte, 0, marshaledSize)
+ b = append(b, magic...)
+ for i := 0; i < 8; i++ {
+ b = appendUint64(b, d.h[i])
+ }
+ b = appendUint64(b, d.c[0])
+ b = appendUint64(b, d.c[1])
+ // Maximum value for size is 64
+ b = append(b, byte(d.size))
+ b = append(b, d.block[:]...)
+ b = append(b, byte(d.offset))
+ return b, nil
+}
+
+func (d *digest) UnmarshalBinary(b []byte) error {
+ if len(b) < len(magic) || string(b[:len(magic)]) != magic {
+ return errors.New("crypto/blake2b: invalid hash state identifier")
+ }
+ if len(b) != marshaledSize {
+ return errors.New("crypto/blake2b: invalid hash state size")
+ }
+ b = b[len(magic):]
+ for i := 0; i < 8; i++ {
+ b, d.h[i] = consumeUint64(b)
+ }
+ b, d.c[0] = consumeUint64(b)
+ b, d.c[1] = consumeUint64(b)
+ d.size = int(b[0])
+ b = b[1:]
+ copy(d.block[:], b[:BlockSize])
+ b = b[BlockSize:]
+ d.offset = int(b[0])
+ return nil
+}
+
+func (d *digest) BlockSize() int { return BlockSize }
+
+func (d *digest) Size() int { return d.size }
+
+func (d *digest) Reset() {
+ d.h = iv
+ d.h[0] ^= uint64(d.size) | (uint64(d.keyLen) << 8) | (1 << 16) | (1 << 24)
+ d.offset, d.c[0], d.c[1] = 0, 0, 0
+ if d.keyLen > 0 {
+ d.block = d.key
+ d.offset = BlockSize
+ }
+}
+
+func (d *digest) Write(p []byte) (n int, err error) {
+ n = len(p)
+
+ if d.offset > 0 {
+ remaining := BlockSize - d.offset
+ if n <= remaining {
+ d.offset += copy(d.block[d.offset:], p)
+ return
+ }
+ copy(d.block[d.offset:], p[:remaining])
+ hashBlocks(&d.h, &d.c, 0, d.block[:])
+ d.offset = 0
+ p = p[remaining:]
+ }
+
+ if length := len(p); length > BlockSize {
+ nn := length &^ (BlockSize - 1)
+ if length == nn {
+ nn -= BlockSize
+ }
+ hashBlocks(&d.h, &d.c, 0, p[:nn])
+ p = p[nn:]
+ }
+
+ if len(p) > 0 {
+ d.offset += copy(d.block[:], p)
+ }
+
+ return
+}
+
+func (d *digest) Sum(sum []byte) []byte {
+ var hash [Size]byte
+ d.finalize(&hash)
+ return append(sum, hash[:d.size]...)
+}
+
+func (d *digest) finalize(hash *[Size]byte) {
+ var block [BlockSize]byte
+ copy(block[:], d.block[:d.offset])
+ remaining := uint64(BlockSize - d.offset)
+
+ c := d.c
+ if c[0] < remaining {
+ c[1]--
+ }
+ c[0] -= remaining
+
+ h := d.h
+ hashBlocks(&h, &c, 0xFFFFFFFFFFFFFFFF, block[:])
+
+ for i, v := range h {
+ binary.LittleEndian.PutUint64(hash[8*i:], v)
+ }
+}
+
+func appendUint64(b []byte, x uint64) []byte {
+ var a [8]byte
+ binary.BigEndian.PutUint64(a[:], x)
+ return append(b, a[:]...)
+}
+
+func appendUint32(b []byte, x uint32) []byte {
+ var a [4]byte
+ binary.BigEndian.PutUint32(a[:], x)
+ return append(b, a[:]...)
+}
+
+func consumeUint64(b []byte) ([]byte, uint64) {
+ x := binary.BigEndian.Uint64(b)
+ return b[8:], x
+}
+
+func consumeUint32(b []byte) ([]byte, uint32) {
+ x := binary.BigEndian.Uint32(b)
+ return b[4:], x
+}
diff --git a/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.go b/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.go
new file mode 100644
index 0000000000..4d31dd0fdc
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.go
@@ -0,0 +1,37 @@
+// Copyright 2016 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 go1.7,amd64,!gccgo,!appengine
+
+package blake2b
+
+import "golang.org/x/sys/cpu"
+
+func init() {
+ useAVX2 = cpu.X86.HasAVX2
+ useAVX = cpu.X86.HasAVX
+ useSSE4 = cpu.X86.HasSSE41
+}
+
+//go:noescape
+func hashBlocksAVX2(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte)
+
+//go:noescape
+func hashBlocksAVX(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte)
+
+//go:noescape
+func hashBlocksSSE4(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte)
+
+func hashBlocks(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) {
+ switch {
+ case useAVX2:
+ hashBlocksAVX2(h, c, flag, blocks)
+ case useAVX:
+ hashBlocksAVX(h, c, flag, blocks)
+ case useSSE4:
+ hashBlocksSSE4(h, c, flag, blocks)
+ default:
+ hashBlocksGeneric(h, c, flag, blocks)
+ }
+}
diff --git a/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.s b/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.s
new file mode 100644
index 0000000000..5593b1b3dc
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.s
@@ -0,0 +1,750 @@
+// Copyright 2016 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 go1.7,amd64,!gccgo,!appengine
+
+#include "textflag.h"
+
+DATA ·AVX2_iv0<>+0x00(SB)/8, $0x6a09e667f3bcc908
+DATA ·AVX2_iv0<>+0x08(SB)/8, $0xbb67ae8584caa73b
+DATA ·AVX2_iv0<>+0x10(SB)/8, $0x3c6ef372fe94f82b
+DATA ·AVX2_iv0<>+0x18(SB)/8, $0xa54ff53a5f1d36f1
+GLOBL ·AVX2_iv0<>(SB), (NOPTR+RODATA), $32
+
+DATA ·AVX2_iv1<>+0x00(SB)/8, $0x510e527fade682d1
+DATA ·AVX2_iv1<>+0x08(SB)/8, $0x9b05688c2b3e6c1f
+DATA ·AVX2_iv1<>+0x10(SB)/8, $0x1f83d9abfb41bd6b
+DATA ·AVX2_iv1<>+0x18(SB)/8, $0x5be0cd19137e2179
+GLOBL ·AVX2_iv1<>(SB), (NOPTR+RODATA), $32
+
+DATA ·AVX2_c40<>+0x00(SB)/8, $0x0201000706050403
+DATA ·AVX2_c40<>+0x08(SB)/8, $0x0a09080f0e0d0c0b
+DATA ·AVX2_c40<>+0x10(SB)/8, $0x0201000706050403
+DATA ·AVX2_c40<>+0x18(SB)/8, $0x0a09080f0e0d0c0b
+GLOBL ·AVX2_c40<>(SB), (NOPTR+RODATA), $32
+
+DATA ·AVX2_c48<>+0x00(SB)/8, $0x0100070605040302
+DATA ·AVX2_c48<>+0x08(SB)/8, $0x09080f0e0d0c0b0a
+DATA ·AVX2_c48<>+0x10(SB)/8, $0x0100070605040302
+DATA ·AVX2_c48<>+0x18(SB)/8, $0x09080f0e0d0c0b0a
+GLOBL ·AVX2_c48<>(SB), (NOPTR+RODATA), $32
+
+DATA ·AVX_iv0<>+0x00(SB)/8, $0x6a09e667f3bcc908
+DATA ·AVX_iv0<>+0x08(SB)/8, $0xbb67ae8584caa73b
+GLOBL ·AVX_iv0<>(SB), (NOPTR+RODATA), $16
+
+DATA ·AVX_iv1<>+0x00(SB)/8, $0x3c6ef372fe94f82b
+DATA ·AVX_iv1<>+0x08(SB)/8, $0xa54ff53a5f1d36f1
+GLOBL ·AVX_iv1<>(SB), (NOPTR+RODATA), $16
+
+DATA ·AVX_iv2<>+0x00(SB)/8, $0x510e527fade682d1
+DATA ·AVX_iv2<>+0x08(SB)/8, $0x9b05688c2b3e6c1f
+GLOBL ·AVX_iv2<>(SB), (NOPTR+RODATA), $16
+
+DATA ·AVX_iv3<>+0x00(SB)/8, $0x1f83d9abfb41bd6b
+DATA ·AVX_iv3<>+0x08(SB)/8, $0x5be0cd19137e2179
+GLOBL ·AVX_iv3<>(SB), (NOPTR+RODATA), $16
+
+DATA ·AVX_c40<>+0x00(SB)/8, $0x0201000706050403
+DATA ·AVX_c40<>+0x08(SB)/8, $0x0a09080f0e0d0c0b
+GLOBL ·AVX_c40<>(SB), (NOPTR+RODATA), $16
+
+DATA ·AVX_c48<>+0x00(SB)/8, $0x0100070605040302
+DATA ·AVX_c48<>+0x08(SB)/8, $0x09080f0e0d0c0b0a
+GLOBL ·AVX_c48<>(SB), (NOPTR+RODATA), $16
+
+#define VPERMQ_0x39_Y1_Y1 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xc9; BYTE $0x39
+#define VPERMQ_0x93_Y1_Y1 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xc9; BYTE $0x93
+#define VPERMQ_0x4E_Y2_Y2 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xd2; BYTE $0x4e
+#define VPERMQ_0x93_Y3_Y3 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xdb; BYTE $0x93
+#define VPERMQ_0x39_Y3_Y3 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xdb; BYTE $0x39
+
+#define ROUND_AVX2(m0, m1, m2, m3, t, c40, c48) \
+ VPADDQ m0, Y0, Y0; \
+ VPADDQ Y1, Y0, Y0; \
+ VPXOR Y0, Y3, Y3; \
+ VPSHUFD $-79, Y3, Y3; \
+ VPADDQ Y3, Y2, Y2; \
+ VPXOR Y2, Y1, Y1; \
+ VPSHUFB c40, Y1, Y1; \
+ VPADDQ m1, Y0, Y0; \
+ VPADDQ Y1, Y0, Y0; \
+ VPXOR Y0, Y3, Y3; \
+ VPSHUFB c48, Y3, Y3; \
+ VPADDQ Y3, Y2, Y2; \
+ VPXOR Y2, Y1, Y1; \
+ VPADDQ Y1, Y1, t; \
+ VPSRLQ $63, Y1, Y1; \
+ VPXOR t, Y1, Y1; \
+ VPERMQ_0x39_Y1_Y1; \
+ VPERMQ_0x4E_Y2_Y2; \
+ VPERMQ_0x93_Y3_Y3; \
+ VPADDQ m2, Y0, Y0; \
+ VPADDQ Y1, Y0, Y0; \
+ VPXOR Y0, Y3, Y3; \
+ VPSHUFD $-79, Y3, Y3; \
+ VPADDQ Y3, Y2, Y2; \
+ VPXOR Y2, Y1, Y1; \
+ VPSHUFB c40, Y1, Y1; \
+ VPADDQ m3, Y0, Y0; \
+ VPADDQ Y1, Y0, Y0; \
+ VPXOR Y0, Y3, Y3; \
+ VPSHUFB c48, Y3, Y3; \
+ VPADDQ Y3, Y2, Y2; \
+ VPXOR Y2, Y1, Y1; \
+ VPADDQ Y1, Y1, t; \
+ VPSRLQ $63, Y1, Y1; \
+ VPXOR t, Y1, Y1; \
+ VPERMQ_0x39_Y3_Y3; \
+ VPERMQ_0x4E_Y2_Y2; \
+ VPERMQ_0x93_Y1_Y1
+
+#define VMOVQ_SI_X11_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x1E
+#define VMOVQ_SI_X12_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x26
+#define VMOVQ_SI_X13_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x2E
+#define VMOVQ_SI_X14_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x36
+#define VMOVQ_SI_X15_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x3E
+
+#define VMOVQ_SI_X11(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x5E; BYTE $n
+#define VMOVQ_SI_X12(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x66; BYTE $n
+#define VMOVQ_SI_X13(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x6E; BYTE $n
+#define VMOVQ_SI_X14(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x76; BYTE $n
+#define VMOVQ_SI_X15(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x7E; BYTE $n
+
+#define VPINSRQ_1_SI_X11_0 BYTE $0xC4; BYTE $0x63; BYTE $0xA1; BYTE $0x22; BYTE $0x1E; BYTE $0x01
+#define VPINSRQ_1_SI_X12_0 BYTE $0xC4; BYTE $0x63; BYTE $0x99; BYTE $0x22; BYTE $0x26; BYTE $0x01
+#define VPINSRQ_1_SI_X13_0 BYTE $0xC4; BYTE $0x63; BYTE $0x91; BYTE $0x22; BYTE $0x2E; BYTE $0x01
+#define VPINSRQ_1_SI_X14_0 BYTE $0xC4; BYTE $0x63; BYTE $0x89; BYTE $0x22; BYTE $0x36; BYTE $0x01
+#define VPINSRQ_1_SI_X15_0 BYTE $0xC4; BYTE $0x63; BYTE $0x81; BYTE $0x22; BYTE $0x3E; BYTE $0x01
+
+#define VPINSRQ_1_SI_X11(n) BYTE $0xC4; BYTE $0x63; BYTE $0xA1; BYTE $0x22; BYTE $0x5E; BYTE $n; BYTE $0x01
+#define VPINSRQ_1_SI_X12(n) BYTE $0xC4; BYTE $0x63; BYTE $0x99; BYTE $0x22; BYTE $0x66; BYTE $n; BYTE $0x01
+#define VPINSRQ_1_SI_X13(n) BYTE $0xC4; BYTE $0x63; BYTE $0x91; BYTE $0x22; BYTE $0x6E; BYTE $n; BYTE $0x01
+#define VPINSRQ_1_SI_X14(n) BYTE $0xC4; BYTE $0x63; BYTE $0x89; BYTE $0x22; BYTE $0x76; BYTE $n; BYTE $0x01
+#define VPINSRQ_1_SI_X15(n) BYTE $0xC4; BYTE $0x63; BYTE $0x81; BYTE $0x22; BYTE $0x7E; BYTE $n; BYTE $0x01
+
+#define VMOVQ_R8_X15 BYTE $0xC4; BYTE $0x41; BYTE $0xF9; BYTE $0x6E; BYTE $0xF8
+#define VPINSRQ_1_R9_X15 BYTE $0xC4; BYTE $0x43; BYTE $0x81; BYTE $0x22; BYTE $0xF9; BYTE $0x01
+
+// load msg: Y12 = (i0, i1, i2, i3)
+// i0, i1, i2, i3 must not be 0
+#define LOAD_MSG_AVX2_Y12(i0, i1, i2, i3) \
+ VMOVQ_SI_X12(i0*8); \
+ VMOVQ_SI_X11(i2*8); \
+ VPINSRQ_1_SI_X12(i1*8); \
+ VPINSRQ_1_SI_X11(i3*8); \
+ VINSERTI128 $1, X11, Y12, Y12
+
+// load msg: Y13 = (i0, i1, i2, i3)
+// i0, i1, i2, i3 must not be 0
+#define LOAD_MSG_AVX2_Y13(i0, i1, i2, i3) \
+ VMOVQ_SI_X13(i0*8); \
+ VMOVQ_SI_X11(i2*8); \
+ VPINSRQ_1_SI_X13(i1*8); \
+ VPINSRQ_1_SI_X11(i3*8); \
+ VINSERTI128 $1, X11, Y13, Y13
+
+// load msg: Y14 = (i0, i1, i2, i3)
+// i0, i1, i2, i3 must not be 0
+#define LOAD_MSG_AVX2_Y14(i0, i1, i2, i3) \
+ VMOVQ_SI_X14(i0*8); \
+ VMOVQ_SI_X11(i2*8); \
+ VPINSRQ_1_SI_X14(i1*8); \
+ VPINSRQ_1_SI_X11(i3*8); \
+ VINSERTI128 $1, X11, Y14, Y14
+
+// load msg: Y15 = (i0, i1, i2, i3)
+// i0, i1, i2, i3 must not be 0
+#define LOAD_MSG_AVX2_Y15(i0, i1, i2, i3) \
+ VMOVQ_SI_X15(i0*8); \
+ VMOVQ_SI_X11(i2*8); \
+ VPINSRQ_1_SI_X15(i1*8); \
+ VPINSRQ_1_SI_X11(i3*8); \
+ VINSERTI128 $1, X11, Y15, Y15
+
+#define LOAD_MSG_AVX2_0_2_4_6_1_3_5_7_8_10_12_14_9_11_13_15() \
+ VMOVQ_SI_X12_0; \
+ VMOVQ_SI_X11(4*8); \
+ VPINSRQ_1_SI_X12(2*8); \
+ VPINSRQ_1_SI_X11(6*8); \
+ VINSERTI128 $1, X11, Y12, Y12; \
+ LOAD_MSG_AVX2_Y13(1, 3, 5, 7); \
+ LOAD_MSG_AVX2_Y14(8, 10, 12, 14); \
+ LOAD_MSG_AVX2_Y15(9, 11, 13, 15)
+
+#define LOAD_MSG_AVX2_14_4_9_13_10_8_15_6_1_0_11_5_12_2_7_3() \
+ LOAD_MSG_AVX2_Y12(14, 4, 9, 13); \
+ LOAD_MSG_AVX2_Y13(10, 8, 15, 6); \
+ VMOVQ_SI_X11(11*8); \
+ VPSHUFD $0x4E, 0*8(SI), X14; \
+ VPINSRQ_1_SI_X11(5*8); \
+ VINSERTI128 $1, X11, Y14, Y14; \
+ LOAD_MSG_AVX2_Y15(12, 2, 7, 3)
+
+#define LOAD_MSG_AVX2_11_12_5_15_8_0_2_13_10_3_7_9_14_6_1_4() \
+ VMOVQ_SI_X11(5*8); \
+ VMOVDQU 11*8(SI), X12; \
+ VPINSRQ_1_SI_X11(15*8); \
+ VINSERTI128 $1, X11, Y12, Y12; \
+ VMOVQ_SI_X13(8*8); \
+ VMOVQ_SI_X11(2*8); \
+ VPINSRQ_1_SI_X13_0; \
+ VPINSRQ_1_SI_X11(13*8); \
+ VINSERTI128 $1, X11, Y13, Y13; \
+ LOAD_MSG_AVX2_Y14(10, 3, 7, 9); \
+ LOAD_MSG_AVX2_Y15(14, 6, 1, 4)
+
+#define LOAD_MSG_AVX2_7_3_13_11_9_1_12_14_2_5_4_15_6_10_0_8() \
+ LOAD_MSG_AVX2_Y12(7, 3, 13, 11); \
+ LOAD_MSG_AVX2_Y13(9, 1, 12, 14); \
+ LOAD_MSG_AVX2_Y14(2, 5, 4, 15); \
+ VMOVQ_SI_X15(6*8); \
+ VMOVQ_SI_X11_0; \
+ VPINSRQ_1_SI_X15(10*8); \
+ VPINSRQ_1_SI_X11(8*8); \
+ VINSERTI128 $1, X11, Y15, Y15
+
+#define LOAD_MSG_AVX2_9_5_2_10_0_7_4_15_14_11_6_3_1_12_8_13() \
+ LOAD_MSG_AVX2_Y12(9, 5, 2, 10); \
+ VMOVQ_SI_X13_0; \
+ VMOVQ_SI_X11(4*8); \
+ VPINSRQ_1_SI_X13(7*8); \
+ VPINSRQ_1_SI_X11(15*8); \
+ VINSERTI128 $1, X11, Y13, Y13; \
+ LOAD_MSG_AVX2_Y14(14, 11, 6, 3); \
+ LOAD_MSG_AVX2_Y15(1, 12, 8, 13)
+
+#define LOAD_MSG_AVX2_2_6_0_8_12_10_11_3_4_7_15_1_13_5_14_9() \
+ VMOVQ_SI_X12(2*8); \
+ VMOVQ_SI_X11_0; \
+ VPINSRQ_1_SI_X12(6*8); \
+ VPINSRQ_1_SI_X11(8*8); \
+ VINSERTI128 $1, X11, Y12, Y12; \
+ LOAD_MSG_AVX2_Y13(12, 10, 11, 3); \
+ LOAD_MSG_AVX2_Y14(4, 7, 15, 1); \
+ LOAD_MSG_AVX2_Y15(13, 5, 14, 9)
+
+#define LOAD_MSG_AVX2_12_1_14_4_5_15_13_10_0_6_9_8_7_3_2_11() \
+ LOAD_MSG_AVX2_Y12(12, 1, 14, 4); \
+ LOAD_MSG_AVX2_Y13(5, 15, 13, 10); \
+ VMOVQ_SI_X14_0; \
+ VPSHUFD $0x4E, 8*8(SI), X11; \
+ VPINSRQ_1_SI_X14(6*8); \
+ VINSERTI128 $1, X11, Y14, Y14; \
+ LOAD_MSG_AVX2_Y15(7, 3, 2, 11)
+
+#define LOAD_MSG_AVX2_13_7_12_3_11_14_1_9_5_15_8_2_0_4_6_10() \
+ LOAD_MSG_AVX2_Y12(13, 7, 12, 3); \
+ LOAD_MSG_AVX2_Y13(11, 14, 1, 9); \
+ LOAD_MSG_AVX2_Y14(5, 15, 8, 2); \
+ VMOVQ_SI_X15_0; \
+ VMOVQ_SI_X11(6*8); \
+ VPINSRQ_1_SI_X15(4*8); \
+ VPINSRQ_1_SI_X11(10*8); \
+ VINSERTI128 $1, X11, Y15, Y15
+
+#define LOAD_MSG_AVX2_6_14_11_0_15_9_3_8_12_13_1_10_2_7_4_5() \
+ VMOVQ_SI_X12(6*8); \
+ VMOVQ_SI_X11(11*8); \
+ VPINSRQ_1_SI_X12(14*8); \
+ VPINSRQ_1_SI_X11_0; \
+ VINSERTI128 $1, X11, Y12, Y12; \
+ LOAD_MSG_AVX2_Y13(15, 9, 3, 8); \
+ VMOVQ_SI_X11(1*8); \
+ VMOVDQU 12*8(SI), X14; \
+ VPINSRQ_1_SI_X11(10*8); \
+ VINSERTI128 $1, X11, Y14, Y14; \
+ VMOVQ_SI_X15(2*8); \
+ VMOVDQU 4*8(SI), X11; \
+ VPINSRQ_1_SI_X15(7*8); \
+ VINSERTI128 $1, X11, Y15, Y15
+
+#define LOAD_MSG_AVX2_10_8_7_1_2_4_6_5_15_9_3_13_11_14_12_0() \
+ LOAD_MSG_AVX2_Y12(10, 8, 7, 1); \
+ VMOVQ_SI_X13(2*8); \
+ VPSHUFD $0x4E, 5*8(SI), X11; \
+ VPINSRQ_1_SI_X13(4*8); \
+ VINSERTI128 $1, X11, Y13, Y13; \
+ LOAD_MSG_AVX2_Y14(15, 9, 3, 13); \
+ VMOVQ_SI_X15(11*8); \
+ VMOVQ_SI_X11(12*8); \
+ VPINSRQ_1_SI_X15(14*8); \
+ VPINSRQ_1_SI_X11_0; \
+ VINSERTI128 $1, X11, Y15, Y15
+
+// func hashBlocksAVX2(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte)
+TEXT ·hashBlocksAVX2(SB), 4, $320-48 // frame size = 288 + 32 byte alignment
+ MOVQ h+0(FP), AX
+ MOVQ c+8(FP), BX
+ MOVQ flag+16(FP), CX
+ MOVQ blocks_base+24(FP), SI
+ MOVQ blocks_len+32(FP), DI
+
+ MOVQ SP, DX
+ MOVQ SP, R9
+ ADDQ $31, R9
+ ANDQ $~31, R9
+ MOVQ R9, SP
+
+ MOVQ CX, 16(SP)
+ XORQ CX, CX
+ MOVQ CX, 24(SP)
+
+ VMOVDQU ·AVX2_c40<>(SB), Y4
+ VMOVDQU ·AVX2_c48<>(SB), Y5
+
+ VMOVDQU 0(AX), Y8
+ VMOVDQU 32(AX), Y9
+ VMOVDQU ·AVX2_iv0<>(SB), Y6
+ VMOVDQU ·AVX2_iv1<>(SB), Y7
+
+ MOVQ 0(BX), R8
+ MOVQ 8(BX), R9
+ MOVQ R9, 8(SP)
+
+loop:
+ ADDQ $128, R8
+ MOVQ R8, 0(SP)
+ CMPQ R8, $128
+ JGE noinc
+ INCQ R9
+ MOVQ R9, 8(SP)
+
+noinc:
+ VMOVDQA Y8, Y0
+ VMOVDQA Y9, Y1
+ VMOVDQA Y6, Y2
+ VPXOR 0(SP), Y7, Y3
+
+ LOAD_MSG_AVX2_0_2_4_6_1_3_5_7_8_10_12_14_9_11_13_15()
+ VMOVDQA Y12, 32(SP)
+ VMOVDQA Y13, 64(SP)
+ VMOVDQA Y14, 96(SP)
+ VMOVDQA Y15, 128(SP)
+ ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
+ LOAD_MSG_AVX2_14_4_9_13_10_8_15_6_1_0_11_5_12_2_7_3()
+ VMOVDQA Y12, 160(SP)
+ VMOVDQA Y13, 192(SP)
+ VMOVDQA Y14, 224(SP)
+ VMOVDQA Y15, 256(SP)
+
+ ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
+ LOAD_MSG_AVX2_11_12_5_15_8_0_2_13_10_3_7_9_14_6_1_4()
+ ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
+ LOAD_MSG_AVX2_7_3_13_11_9_1_12_14_2_5_4_15_6_10_0_8()
+ ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
+ LOAD_MSG_AVX2_9_5_2_10_0_7_4_15_14_11_6_3_1_12_8_13()
+ ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
+ LOAD_MSG_AVX2_2_6_0_8_12_10_11_3_4_7_15_1_13_5_14_9()
+ ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
+ LOAD_MSG_AVX2_12_1_14_4_5_15_13_10_0_6_9_8_7_3_2_11()
+ ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
+ LOAD_MSG_AVX2_13_7_12_3_11_14_1_9_5_15_8_2_0_4_6_10()
+ ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
+ LOAD_MSG_AVX2_6_14_11_0_15_9_3_8_12_13_1_10_2_7_4_5()
+ ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
+ LOAD_MSG_AVX2_10_8_7_1_2_4_6_5_15_9_3_13_11_14_12_0()
+ ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
+
+ ROUND_AVX2(32(SP), 64(SP), 96(SP), 128(SP), Y10, Y4, Y5)
+ ROUND_AVX2(160(SP), 192(SP), 224(SP), 256(SP), Y10, Y4, Y5)
+
+ VPXOR Y0, Y8, Y8
+ VPXOR Y1, Y9, Y9
+ VPXOR Y2, Y8, Y8
+ VPXOR Y3, Y9, Y9
+
+ LEAQ 128(SI), SI
+ SUBQ $128, DI
+ JNE loop
+
+ MOVQ R8, 0(BX)
+ MOVQ R9, 8(BX)
+
+ VMOVDQU Y8, 0(AX)
+ VMOVDQU Y9, 32(AX)
+ VZEROUPPER
+
+ MOVQ DX, SP
+ RET
+
+#define VPUNPCKLQDQ_X2_X2_X15 BYTE $0xC5; BYTE $0x69; BYTE $0x6C; BYTE $0xFA
+#define VPUNPCKLQDQ_X3_X3_X15 BYTE $0xC5; BYTE $0x61; BYTE $0x6C; BYTE $0xFB
+#define VPUNPCKLQDQ_X7_X7_X15 BYTE $0xC5; BYTE $0x41; BYTE $0x6C; BYTE $0xFF
+#define VPUNPCKLQDQ_X13_X13_X15 BYTE $0xC4; BYTE $0x41; BYTE $0x11; BYTE $0x6C; BYTE $0xFD
+#define VPUNPCKLQDQ_X14_X14_X15 BYTE $0xC4; BYTE $0x41; BYTE $0x09; BYTE $0x6C; BYTE $0xFE
+
+#define VPUNPCKHQDQ_X15_X2_X2 BYTE $0xC4; BYTE $0xC1; BYTE $0x69; BYTE $0x6D; BYTE $0xD7
+#define VPUNPCKHQDQ_X15_X3_X3 BYTE $0xC4; BYTE $0xC1; BYTE $0x61; BYTE $0x6D; BYTE $0xDF
+#define VPUNPCKHQDQ_X15_X6_X6 BYTE $0xC4; BYTE $0xC1; BYTE $0x49; BYTE $0x6D; BYTE $0xF7
+#define VPUNPCKHQDQ_X15_X7_X7 BYTE $0xC4; BYTE $0xC1; BYTE $0x41; BYTE $0x6D; BYTE $0xFF
+#define VPUNPCKHQDQ_X15_X3_X2 BYTE $0xC4; BYTE $0xC1; BYTE $0x61; BYTE $0x6D; BYTE $0xD7
+#define VPUNPCKHQDQ_X15_X7_X6 BYTE $0xC4; BYTE $0xC1; BYTE $0x41; BYTE $0x6D; BYTE $0xF7
+#define VPUNPCKHQDQ_X15_X13_X3 BYTE $0xC4; BYTE $0xC1; BYTE $0x11; BYTE $0x6D; BYTE $0xDF
+#define VPUNPCKHQDQ_X15_X13_X7 BYTE $0xC4; BYTE $0xC1; BYTE $0x11; BYTE $0x6D; BYTE $0xFF
+
+#define SHUFFLE_AVX() \
+ VMOVDQA X6, X13; \
+ VMOVDQA X2, X14; \
+ VMOVDQA X4, X6; \
+ VPUNPCKLQDQ_X13_X13_X15; \
+ VMOVDQA X5, X4; \
+ VMOVDQA X6, X5; \
+ VPUNPCKHQDQ_X15_X7_X6; \
+ VPUNPCKLQDQ_X7_X7_X15; \
+ VPUNPCKHQDQ_X15_X13_X7; \
+ VPUNPCKLQDQ_X3_X3_X15; \
+ VPUNPCKHQDQ_X15_X2_X2; \
+ VPUNPCKLQDQ_X14_X14_X15; \
+ VPUNPCKHQDQ_X15_X3_X3; \
+
+#define SHUFFLE_AVX_INV() \
+ VMOVDQA X2, X13; \
+ VMOVDQA X4, X14; \
+ VPUNPCKLQDQ_X2_X2_X15; \
+ VMOVDQA X5, X4; \
+ VPUNPCKHQDQ_X15_X3_X2; \
+ VMOVDQA X14, X5; \
+ VPUNPCKLQDQ_X3_X3_X15; \
+ VMOVDQA X6, X14; \
+ VPUNPCKHQDQ_X15_X13_X3; \
+ VPUNPCKLQDQ_X7_X7_X15; \
+ VPUNPCKHQDQ_X15_X6_X6; \
+ VPUNPCKLQDQ_X14_X14_X15; \
+ VPUNPCKHQDQ_X15_X7_X7; \
+
+#define HALF_ROUND_AVX(v0, v1, v2, v3, v4, v5, v6, v7, m0, m1, m2, m3, t0, c40, c48) \
+ VPADDQ m0, v0, v0; \
+ VPADDQ v2, v0, v0; \
+ VPADDQ m1, v1, v1; \
+ VPADDQ v3, v1, v1; \
+ VPXOR v0, v6, v6; \
+ VPXOR v1, v7, v7; \
+ VPSHUFD $-79, v6, v6; \
+ VPSHUFD $-79, v7, v7; \
+ VPADDQ v6, v4, v4; \
+ VPADDQ v7, v5, v5; \
+ VPXOR v4, v2, v2; \
+ VPXOR v5, v3, v3; \
+ VPSHUFB c40, v2, v2; \
+ VPSHUFB c40, v3, v3; \
+ VPADDQ m2, v0, v0; \
+ VPADDQ v2, v0, v0; \
+ VPADDQ m3, v1, v1; \
+ VPADDQ v3, v1, v1; \
+ VPXOR v0, v6, v6; \
+ VPXOR v1, v7, v7; \
+ VPSHUFB c48, v6, v6; \
+ VPSHUFB c48, v7, v7; \
+ VPADDQ v6, v4, v4; \
+ VPADDQ v7, v5, v5; \
+ VPXOR v4, v2, v2; \
+ VPXOR v5, v3, v3; \
+ VPADDQ v2, v2, t0; \
+ VPSRLQ $63, v2, v2; \
+ VPXOR t0, v2, v2; \
+ VPADDQ v3, v3, t0; \
+ VPSRLQ $63, v3, v3; \
+ VPXOR t0, v3, v3
+
+// load msg: X12 = (i0, i1), X13 = (i2, i3), X14 = (i4, i5), X15 = (i6, i7)
+// i0, i1, i2, i3, i4, i5, i6, i7 must not be 0
+#define LOAD_MSG_AVX(i0, i1, i2, i3, i4, i5, i6, i7) \
+ VMOVQ_SI_X12(i0*8); \
+ VMOVQ_SI_X13(i2*8); \
+ VMOVQ_SI_X14(i4*8); \
+ VMOVQ_SI_X15(i6*8); \
+ VPINSRQ_1_SI_X12(i1*8); \
+ VPINSRQ_1_SI_X13(i3*8); \
+ VPINSRQ_1_SI_X14(i5*8); \
+ VPINSRQ_1_SI_X15(i7*8)
+
+// load msg: X12 = (0, 2), X13 = (4, 6), X14 = (1, 3), X15 = (5, 7)
+#define LOAD_MSG_AVX_0_2_4_6_1_3_5_7() \
+ VMOVQ_SI_X12_0; \
+ VMOVQ_SI_X13(4*8); \
+ VMOVQ_SI_X14(1*8); \
+ VMOVQ_SI_X15(5*8); \
+ VPINSRQ_1_SI_X12(2*8); \
+ VPINSRQ_1_SI_X13(6*8); \
+ VPINSRQ_1_SI_X14(3*8); \
+ VPINSRQ_1_SI_X15(7*8)
+
+// load msg: X12 = (1, 0), X13 = (11, 5), X14 = (12, 2), X15 = (7, 3)
+#define LOAD_MSG_AVX_1_0_11_5_12_2_7_3() \
+ VPSHUFD $0x4E, 0*8(SI), X12; \
+ VMOVQ_SI_X13(11*8); \
+ VMOVQ_SI_X14(12*8); \
+ VMOVQ_SI_X15(7*8); \
+ VPINSRQ_1_SI_X13(5*8); \
+ VPINSRQ_1_SI_X14(2*8); \
+ VPINSRQ_1_SI_X15(3*8)
+
+// load msg: X12 = (11, 12), X13 = (5, 15), X14 = (8, 0), X15 = (2, 13)
+#define LOAD_MSG_AVX_11_12_5_15_8_0_2_13() \
+ VMOVDQU 11*8(SI), X12; \
+ VMOVQ_SI_X13(5*8); \
+ VMOVQ_SI_X14(8*8); \
+ VMOVQ_SI_X15(2*8); \
+ VPINSRQ_1_SI_X13(15*8); \
+ VPINSRQ_1_SI_X14_0; \
+ VPINSRQ_1_SI_X15(13*8)
+
+// load msg: X12 = (2, 5), X13 = (4, 15), X14 = (6, 10), X15 = (0, 8)
+#define LOAD_MSG_AVX_2_5_4_15_6_10_0_8() \
+ VMOVQ_SI_X12(2*8); \
+ VMOVQ_SI_X13(4*8); \
+ VMOVQ_SI_X14(6*8); \
+ VMOVQ_SI_X15_0; \
+ VPINSRQ_1_SI_X12(5*8); \
+ VPINSRQ_1_SI_X13(15*8); \
+ VPINSRQ_1_SI_X14(10*8); \
+ VPINSRQ_1_SI_X15(8*8)
+
+// load msg: X12 = (9, 5), X13 = (2, 10), X14 = (0, 7), X15 = (4, 15)
+#define LOAD_MSG_AVX_9_5_2_10_0_7_4_15() \
+ VMOVQ_SI_X12(9*8); \
+ VMOVQ_SI_X13(2*8); \
+ VMOVQ_SI_X14_0; \
+ VMOVQ_SI_X15(4*8); \
+ VPINSRQ_1_SI_X12(5*8); \
+ VPINSRQ_1_SI_X13(10*8); \
+ VPINSRQ_1_SI_X14(7*8); \
+ VPINSRQ_1_SI_X15(15*8)
+
+// load msg: X12 = (2, 6), X13 = (0, 8), X14 = (12, 10), X15 = (11, 3)
+#define LOAD_MSG_AVX_2_6_0_8_12_10_11_3() \
+ VMOVQ_SI_X12(2*8); \
+ VMOVQ_SI_X13_0; \
+ VMOVQ_SI_X14(12*8); \
+ VMOVQ_SI_X15(11*8); \
+ VPINSRQ_1_SI_X12(6*8); \
+ VPINSRQ_1_SI_X13(8*8); \
+ VPINSRQ_1_SI_X14(10*8); \
+ VPINSRQ_1_SI_X15(3*8)
+
+// load msg: X12 = (0, 6), X13 = (9, 8), X14 = (7, 3), X15 = (2, 11)
+#define LOAD_MSG_AVX_0_6_9_8_7_3_2_11() \
+ MOVQ 0*8(SI), X12; \
+ VPSHUFD $0x4E, 8*8(SI), X13; \
+ MOVQ 7*8(SI), X14; \
+ MOVQ 2*8(SI), X15; \
+ VPINSRQ_1_SI_X12(6*8); \
+ VPINSRQ_1_SI_X14(3*8); \
+ VPINSRQ_1_SI_X15(11*8)
+
+// load msg: X12 = (6, 14), X13 = (11, 0), X14 = (15, 9), X15 = (3, 8)
+#define LOAD_MSG_AVX_6_14_11_0_15_9_3_8() \
+ MOVQ 6*8(SI), X12; \
+ MOVQ 11*8(SI), X13; \
+ MOVQ 15*8(SI), X14; \
+ MOVQ 3*8(SI), X15; \
+ VPINSRQ_1_SI_X12(14*8); \
+ VPINSRQ_1_SI_X13_0; \
+ VPINSRQ_1_SI_X14(9*8); \
+ VPINSRQ_1_SI_X15(8*8)
+
+// load msg: X12 = (5, 15), X13 = (8, 2), X14 = (0, 4), X15 = (6, 10)
+#define LOAD_MSG_AVX_5_15_8_2_0_4_6_10() \
+ MOVQ 5*8(SI), X12; \
+ MOVQ 8*8(SI), X13; \
+ MOVQ 0*8(SI), X14; \
+ MOVQ 6*8(SI), X15; \
+ VPINSRQ_1_SI_X12(15*8); \
+ VPINSRQ_1_SI_X13(2*8); \
+ VPINSRQ_1_SI_X14(4*8); \
+ VPINSRQ_1_SI_X15(10*8)
+
+// load msg: X12 = (12, 13), X13 = (1, 10), X14 = (2, 7), X15 = (4, 5)
+#define LOAD_MSG_AVX_12_13_1_10_2_7_4_5() \
+ VMOVDQU 12*8(SI), X12; \
+ MOVQ 1*8(SI), X13; \
+ MOVQ 2*8(SI), X14; \
+ VPINSRQ_1_SI_X13(10*8); \
+ VPINSRQ_1_SI_X14(7*8); \
+ VMOVDQU 4*8(SI), X15
+
+// load msg: X12 = (15, 9), X13 = (3, 13), X14 = (11, 14), X15 = (12, 0)
+#define LOAD_MSG_AVX_15_9_3_13_11_14_12_0() \
+ MOVQ 15*8(SI), X12; \
+ MOVQ 3*8(SI), X13; \
+ MOVQ 11*8(SI), X14; \
+ MOVQ 12*8(SI), X15; \
+ VPINSRQ_1_SI_X12(9*8); \
+ VPINSRQ_1_SI_X13(13*8); \
+ VPINSRQ_1_SI_X14(14*8); \
+ VPINSRQ_1_SI_X15_0
+
+// func hashBlocksAVX(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte)
+TEXT ·hashBlocksAVX(SB), 4, $288-48 // frame size = 272 + 16 byte alignment
+ MOVQ h+0(FP), AX
+ MOVQ c+8(FP), BX
+ MOVQ flag+16(FP), CX
+ MOVQ blocks_base+24(FP), SI
+ MOVQ blocks_len+32(FP), DI
+
+ MOVQ SP, BP
+ MOVQ SP, R9
+ ADDQ $15, R9
+ ANDQ $~15, R9
+ MOVQ R9, SP
+
+ VMOVDQU ·AVX_c40<>(SB), X0
+ VMOVDQU ·AVX_c48<>(SB), X1
+ VMOVDQA X0, X8
+ VMOVDQA X1, X9
+
+ VMOVDQU ·AVX_iv3<>(SB), X0
+ VMOVDQA X0, 0(SP)
+ XORQ CX, 0(SP) // 0(SP) = ·AVX_iv3 ^ (CX || 0)
+
+ VMOVDQU 0(AX), X10
+ VMOVDQU 16(AX), X11
+ VMOVDQU 32(AX), X2
+ VMOVDQU 48(AX), X3
+
+ MOVQ 0(BX), R8
+ MOVQ 8(BX), R9
+
+loop:
+ ADDQ $128, R8
+ CMPQ R8, $128
+ JGE noinc
+ INCQ R9
+
+noinc:
+ VMOVQ_R8_X15
+ VPINSRQ_1_R9_X15
+
+ VMOVDQA X10, X0
+ VMOVDQA X11, X1
+ VMOVDQU ·AVX_iv0<>(SB), X4
+ VMOVDQU ·AVX_iv1<>(SB), X5
+ VMOVDQU ·AVX_iv2<>(SB), X6
+
+ VPXOR X15, X6, X6
+ VMOVDQA 0(SP), X7
+
+ LOAD_MSG_AVX_0_2_4_6_1_3_5_7()
+ VMOVDQA X12, 16(SP)
+ VMOVDQA X13, 32(SP)
+ VMOVDQA X14, 48(SP)
+ VMOVDQA X15, 64(SP)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX()
+ LOAD_MSG_AVX(8, 10, 12, 14, 9, 11, 13, 15)
+ VMOVDQA X12, 80(SP)
+ VMOVDQA X13, 96(SP)
+ VMOVDQA X14, 112(SP)
+ VMOVDQA X15, 128(SP)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX_INV()
+
+ LOAD_MSG_AVX(14, 4, 9, 13, 10, 8, 15, 6)
+ VMOVDQA X12, 144(SP)
+ VMOVDQA X13, 160(SP)
+ VMOVDQA X14, 176(SP)
+ VMOVDQA X15, 192(SP)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX()
+ LOAD_MSG_AVX_1_0_11_5_12_2_7_3()
+ VMOVDQA X12, 208(SP)
+ VMOVDQA X13, 224(SP)
+ VMOVDQA X14, 240(SP)
+ VMOVDQA X15, 256(SP)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX_INV()
+
+ LOAD_MSG_AVX_11_12_5_15_8_0_2_13()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX()
+ LOAD_MSG_AVX(10, 3, 7, 9, 14, 6, 1, 4)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX_INV()
+
+ LOAD_MSG_AVX(7, 3, 13, 11, 9, 1, 12, 14)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX()
+ LOAD_MSG_AVX_2_5_4_15_6_10_0_8()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX_INV()
+
+ LOAD_MSG_AVX_9_5_2_10_0_7_4_15()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX()
+ LOAD_MSG_AVX(14, 11, 6, 3, 1, 12, 8, 13)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX_INV()
+
+ LOAD_MSG_AVX_2_6_0_8_12_10_11_3()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX()
+ LOAD_MSG_AVX(4, 7, 15, 1, 13, 5, 14, 9)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX_INV()
+
+ LOAD_MSG_AVX(12, 1, 14, 4, 5, 15, 13, 10)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX()
+ LOAD_MSG_AVX_0_6_9_8_7_3_2_11()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX_INV()
+
+ LOAD_MSG_AVX(13, 7, 12, 3, 11, 14, 1, 9)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX()
+ LOAD_MSG_AVX_5_15_8_2_0_4_6_10()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX_INV()
+
+ LOAD_MSG_AVX_6_14_11_0_15_9_3_8()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX()
+ LOAD_MSG_AVX_12_13_1_10_2_7_4_5()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX_INV()
+
+ LOAD_MSG_AVX(10, 8, 7, 1, 2, 4, 6, 5)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX()
+ LOAD_MSG_AVX_15_9_3_13_11_14_12_0()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
+ SHUFFLE_AVX_INV()
+
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 16(SP), 32(SP), 48(SP), 64(SP), X15, X8, X9)
+ SHUFFLE_AVX()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 80(SP), 96(SP), 112(SP), 128(SP), X15, X8, X9)
+ SHUFFLE_AVX_INV()
+
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 144(SP), 160(SP), 176(SP), 192(SP), X15, X8, X9)
+ SHUFFLE_AVX()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 208(SP), 224(SP), 240(SP), 256(SP), X15, X8, X9)
+ SHUFFLE_AVX_INV()
+
+ VMOVDQU 32(AX), X14
+ VMOVDQU 48(AX), X15
+ VPXOR X0, X10, X10
+ VPXOR X1, X11, X11
+ VPXOR X2, X14, X14
+ VPXOR X3, X15, X15
+ VPXOR X4, X10, X10
+ VPXOR X5, X11, X11
+ VPXOR X6, X14, X2
+ VPXOR X7, X15, X3
+ VMOVDQU X2, 32(AX)
+ VMOVDQU X3, 48(AX)
+
+ LEAQ 128(SI), SI
+ SUBQ $128, DI
+ JNE loop
+
+ VMOVDQU X10, 0(AX)
+ VMOVDQU X11, 16(AX)
+
+ MOVQ R8, 0(BX)
+ MOVQ R9, 8(BX)
+ VZEROUPPER
+
+ MOVQ BP, SP
+ RET
diff --git a/vendor/golang.org/x/crypto/blake2b/blake2b_amd64.go b/vendor/golang.org/x/crypto/blake2b/blake2b_amd64.go
new file mode 100644
index 0000000000..30e2fcd581
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2b/blake2b_amd64.go
@@ -0,0 +1,24 @@
+// Copyright 2016 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 !go1.7,amd64,!gccgo,!appengine
+
+package blake2b
+
+import "golang.org/x/sys/cpu"
+
+func init() {
+ useSSE4 = cpu.X86.HasSSE41
+}
+
+//go:noescape
+func hashBlocksSSE4(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte)
+
+func hashBlocks(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) {
+ if useSSE4 {
+ hashBlocksSSE4(h, c, flag, blocks)
+ } else {
+ hashBlocksGeneric(h, c, flag, blocks)
+ }
+}
diff --git a/vendor/golang.org/x/crypto/blake2b/blake2b_amd64.s b/vendor/golang.org/x/crypto/blake2b/blake2b_amd64.s
new file mode 100644
index 0000000000..578e947b3b
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2b/blake2b_amd64.s
@@ -0,0 +1,281 @@
+// Copyright 2016 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 amd64,!gccgo,!appengine
+
+#include "textflag.h"
+
+DATA ·iv0<>+0x00(SB)/8, $0x6a09e667f3bcc908
+DATA ·iv0<>+0x08(SB)/8, $0xbb67ae8584caa73b
+GLOBL ·iv0<>(SB), (NOPTR+RODATA), $16
+
+DATA ·iv1<>+0x00(SB)/8, $0x3c6ef372fe94f82b
+DATA ·iv1<>+0x08(SB)/8, $0xa54ff53a5f1d36f1
+GLOBL ·iv1<>(SB), (NOPTR+RODATA), $16
+
+DATA ·iv2<>+0x00(SB)/8, $0x510e527fade682d1
+DATA ·iv2<>+0x08(SB)/8, $0x9b05688c2b3e6c1f
+GLOBL ·iv2<>(SB), (NOPTR+RODATA), $16
+
+DATA ·iv3<>+0x00(SB)/8, $0x1f83d9abfb41bd6b
+DATA ·iv3<>+0x08(SB)/8, $0x5be0cd19137e2179
+GLOBL ·iv3<>(SB), (NOPTR+RODATA), $16
+
+DATA ·c40<>+0x00(SB)/8, $0x0201000706050403
+DATA ·c40<>+0x08(SB)/8, $0x0a09080f0e0d0c0b
+GLOBL ·c40<>(SB), (NOPTR+RODATA), $16
+
+DATA ·c48<>+0x00(SB)/8, $0x0100070605040302
+DATA ·c48<>+0x08(SB)/8, $0x09080f0e0d0c0b0a
+GLOBL ·c48<>(SB), (NOPTR+RODATA), $16
+
+#define SHUFFLE(v2, v3, v4, v5, v6, v7, t1, t2) \
+ MOVO v4, t1; \
+ MOVO v5, v4; \
+ MOVO t1, v5; \
+ MOVO v6, t1; \
+ PUNPCKLQDQ v6, t2; \
+ PUNPCKHQDQ v7, v6; \
+ PUNPCKHQDQ t2, v6; \
+ PUNPCKLQDQ v7, t2; \
+ MOVO t1, v7; \
+ MOVO v2, t1; \
+ PUNPCKHQDQ t2, v7; \
+ PUNPCKLQDQ v3, t2; \
+ PUNPCKHQDQ t2, v2; \
+ PUNPCKLQDQ t1, t2; \
+ PUNPCKHQDQ t2, v3
+
+#define SHUFFLE_INV(v2, v3, v4, v5, v6, v7, t1, t2) \
+ MOVO v4, t1; \
+ MOVO v5, v4; \
+ MOVO t1, v5; \
+ MOVO v2, t1; \
+ PUNPCKLQDQ v2, t2; \
+ PUNPCKHQDQ v3, v2; \
+ PUNPCKHQDQ t2, v2; \
+ PUNPCKLQDQ v3, t2; \
+ MOVO t1, v3; \
+ MOVO v6, t1; \
+ PUNPCKHQDQ t2, v3; \
+ PUNPCKLQDQ v7, t2; \
+ PUNPCKHQDQ t2, v6; \
+ PUNPCKLQDQ t1, t2; \
+ PUNPCKHQDQ t2, v7
+
+#define HALF_ROUND(v0, v1, v2, v3, v4, v5, v6, v7, m0, m1, m2, m3, t0, c40, c48) \
+ PADDQ m0, v0; \
+ PADDQ m1, v1; \
+ PADDQ v2, v0; \
+ PADDQ v3, v1; \
+ PXOR v0, v6; \
+ PXOR v1, v7; \
+ PSHUFD $0xB1, v6, v6; \
+ PSHUFD $0xB1, v7, v7; \
+ PADDQ v6, v4; \
+ PADDQ v7, v5; \
+ PXOR v4, v2; \
+ PXOR v5, v3; \
+ PSHUFB c40, v2; \
+ PSHUFB c40, v3; \
+ PADDQ m2, v0; \
+ PADDQ m3, v1; \
+ PADDQ v2, v0; \
+ PADDQ v3, v1; \
+ PXOR v0, v6; \
+ PXOR v1, v7; \
+ PSHUFB c48, v6; \
+ PSHUFB c48, v7; \
+ PADDQ v6, v4; \
+ PADDQ v7, v5; \
+ PXOR v4, v2; \
+ PXOR v5, v3; \
+ MOVOU v2, t0; \
+ PADDQ v2, t0; \
+ PSRLQ $63, v2; \
+ PXOR t0, v2; \
+ MOVOU v3, t0; \
+ PADDQ v3, t0; \
+ PSRLQ $63, v3; \
+ PXOR t0, v3
+
+#define LOAD_MSG(m0, m1, m2, m3, src, i0, i1, i2, i3, i4, i5, i6, i7) \
+ MOVQ i0*8(src), m0; \
+ PINSRQ $1, i1*8(src), m0; \
+ MOVQ i2*8(src), m1; \
+ PINSRQ $1, i3*8(src), m1; \
+ MOVQ i4*8(src), m2; \
+ PINSRQ $1, i5*8(src), m2; \
+ MOVQ i6*8(src), m3; \
+ PINSRQ $1, i7*8(src), m3
+
+// func hashBlocksSSE4(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte)
+TEXT ·hashBlocksSSE4(SB), 4, $288-48 // frame size = 272 + 16 byte alignment
+ MOVQ h+0(FP), AX
+ MOVQ c+8(FP), BX
+ MOVQ flag+16(FP), CX
+ MOVQ blocks_base+24(FP), SI
+ MOVQ blocks_len+32(FP), DI
+
+ MOVQ SP, BP
+ MOVQ SP, R9
+ ADDQ $15, R9
+ ANDQ $~15, R9
+ MOVQ R9, SP
+
+ MOVOU ·iv3<>(SB), X0
+ MOVO X0, 0(SP)
+ XORQ CX, 0(SP) // 0(SP) = ·iv3 ^ (CX || 0)
+
+ MOVOU ·c40<>(SB), X13
+ MOVOU ·c48<>(SB), X14
+
+ MOVOU 0(AX), X12
+ MOVOU 16(AX), X15
+
+ MOVQ 0(BX), R8
+ MOVQ 8(BX), R9
+
+loop:
+ ADDQ $128, R8
+ CMPQ R8, $128
+ JGE noinc
+ INCQ R9
+
+noinc:
+ MOVQ R8, X8
+ PINSRQ $1, R9, X8
+
+ MOVO X12, X0
+ MOVO X15, X1
+ MOVOU 32(AX), X2
+ MOVOU 48(AX), X3
+ MOVOU ·iv0<>(SB), X4
+ MOVOU ·iv1<>(SB), X5
+ MOVOU ·iv2<>(SB), X6
+
+ PXOR X8, X6
+ MOVO 0(SP), X7
+
+ LOAD_MSG(X8, X9, X10, X11, SI, 0, 2, 4, 6, 1, 3, 5, 7)
+ MOVO X8, 16(SP)
+ MOVO X9, 32(SP)
+ MOVO X10, 48(SP)
+ MOVO X11, 64(SP)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9)
+ LOAD_MSG(X8, X9, X10, X11, SI, 8, 10, 12, 14, 9, 11, 13, 15)
+ MOVO X8, 80(SP)
+ MOVO X9, 96(SP)
+ MOVO X10, 112(SP)
+ MOVO X11, 128(SP)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9)
+
+ LOAD_MSG(X8, X9, X10, X11, SI, 14, 4, 9, 13, 10, 8, 15, 6)
+ MOVO X8, 144(SP)
+ MOVO X9, 160(SP)
+ MOVO X10, 176(SP)
+ MOVO X11, 192(SP)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9)
+ LOAD_MSG(X8, X9, X10, X11, SI, 1, 0, 11, 5, 12, 2, 7, 3)
+ MOVO X8, 208(SP)
+ MOVO X9, 224(SP)
+ MOVO X10, 240(SP)
+ MOVO X11, 256(SP)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9)
+
+ LOAD_MSG(X8, X9, X10, X11, SI, 11, 12, 5, 15, 8, 0, 2, 13)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9)
+ LOAD_MSG(X8, X9, X10, X11, SI, 10, 3, 7, 9, 14, 6, 1, 4)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9)
+
+ LOAD_MSG(X8, X9, X10, X11, SI, 7, 3, 13, 11, 9, 1, 12, 14)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9)
+ LOAD_MSG(X8, X9, X10, X11, SI, 2, 5, 4, 15, 6, 10, 0, 8)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9)
+
+ LOAD_MSG(X8, X9, X10, X11, SI, 9, 5, 2, 10, 0, 7, 4, 15)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9)
+ LOAD_MSG(X8, X9, X10, X11, SI, 14, 11, 6, 3, 1, 12, 8, 13)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9)
+
+ LOAD_MSG(X8, X9, X10, X11, SI, 2, 6, 0, 8, 12, 10, 11, 3)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9)
+ LOAD_MSG(X8, X9, X10, X11, SI, 4, 7, 15, 1, 13, 5, 14, 9)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9)
+
+ LOAD_MSG(X8, X9, X10, X11, SI, 12, 1, 14, 4, 5, 15, 13, 10)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9)
+ LOAD_MSG(X8, X9, X10, X11, SI, 0, 6, 9, 8, 7, 3, 2, 11)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9)
+
+ LOAD_MSG(X8, X9, X10, X11, SI, 13, 7, 12, 3, 11, 14, 1, 9)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9)
+ LOAD_MSG(X8, X9, X10, X11, SI, 5, 15, 8, 2, 0, 4, 6, 10)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9)
+
+ LOAD_MSG(X8, X9, X10, X11, SI, 6, 14, 11, 0, 15, 9, 3, 8)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9)
+ LOAD_MSG(X8, X9, X10, X11, SI, 12, 13, 1, 10, 2, 7, 4, 5)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9)
+
+ LOAD_MSG(X8, X9, X10, X11, SI, 10, 8, 7, 1, 2, 4, 6, 5)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9)
+ LOAD_MSG(X8, X9, X10, X11, SI, 15, 9, 3, 13, 11, 14, 12, 0)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9)
+
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, 16(SP), 32(SP), 48(SP), 64(SP), X11, X13, X14)
+ SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, 80(SP), 96(SP), 112(SP), 128(SP), X11, X13, X14)
+ SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9)
+
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, 144(SP), 160(SP), 176(SP), 192(SP), X11, X13, X14)
+ SHUFFLE(X2, X3, X4, X5, X6, X7, X8, X9)
+ HALF_ROUND(X0, X1, X2, X3, X4, X5, X6, X7, 208(SP), 224(SP), 240(SP), 256(SP), X11, X13, X14)
+ SHUFFLE_INV(X2, X3, X4, X5, X6, X7, X8, X9)
+
+ MOVOU 32(AX), X10
+ MOVOU 48(AX), X11
+ PXOR X0, X12
+ PXOR X1, X15
+ PXOR X2, X10
+ PXOR X3, X11
+ PXOR X4, X12
+ PXOR X5, X15
+ PXOR X6, X10
+ PXOR X7, X11
+ MOVOU X10, 32(AX)
+ MOVOU X11, 48(AX)
+
+ LEAQ 128(SI), SI
+ SUBQ $128, DI
+ JNE loop
+
+ MOVOU X12, 0(AX)
+ MOVOU X15, 16(AX)
+
+ MOVQ R8, 0(BX)
+ MOVQ R9, 8(BX)
+
+ MOVQ BP, SP
+ RET
diff --git a/vendor/golang.org/x/crypto/blake2b/blake2b_generic.go b/vendor/golang.org/x/crypto/blake2b/blake2b_generic.go
new file mode 100644
index 0000000000..4bd2abc916
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2b/blake2b_generic.go
@@ -0,0 +1,179 @@
+// Copyright 2016 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 blake2b
+
+import "encoding/binary"
+
+// the precomputed values for BLAKE2b
+// there are 12 16-byte arrays - one for each round
+// the entries are calculated from the sigma constants.
+var precomputed = [12][16]byte{
+ {0, 2, 4, 6, 1, 3, 5, 7, 8, 10, 12, 14, 9, 11, 13, 15},
+ {14, 4, 9, 13, 10, 8, 15, 6, 1, 0, 11, 5, 12, 2, 7, 3},
+ {11, 12, 5, 15, 8, 0, 2, 13, 10, 3, 7, 9, 14, 6, 1, 4},
+ {7, 3, 13, 11, 9, 1, 12, 14, 2, 5, 4, 15, 6, 10, 0, 8},
+ {9, 5, 2, 10, 0, 7, 4, 15, 14, 11, 6, 3, 1, 12, 8, 13},
+ {2, 6, 0, 8, 12, 10, 11, 3, 4, 7, 15, 1, 13, 5, 14, 9},
+ {12, 1, 14, 4, 5, 15, 13, 10, 0, 6, 9, 8, 7, 3, 2, 11},
+ {13, 7, 12, 3, 11, 14, 1, 9, 5, 15, 8, 2, 0, 4, 6, 10},
+ {6, 14, 11, 0, 15, 9, 3, 8, 12, 13, 1, 10, 2, 7, 4, 5},
+ {10, 8, 7, 1, 2, 4, 6, 5, 15, 9, 3, 13, 11, 14, 12, 0},
+ {0, 2, 4, 6, 1, 3, 5, 7, 8, 10, 12, 14, 9, 11, 13, 15}, // equal to the first
+ {14, 4, 9, 13, 10, 8, 15, 6, 1, 0, 11, 5, 12, 2, 7, 3}, // equal to the second
+}
+
+func hashBlocksGeneric(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) {
+ var m [16]uint64
+ c0, c1 := c[0], c[1]
+
+ for i := 0; i < len(blocks); {
+ c0 += BlockSize
+ if c0 < BlockSize {
+ c1++
+ }
+
+ v0, v1, v2, v3, v4, v5, v6, v7 := h[0], h[1], h[2], h[3], h[4], h[5], h[6], h[7]
+ v8, v9, v10, v11, v12, v13, v14, v15 := iv[0], iv[1], iv[2], iv[3], iv[4], iv[5], iv[6], iv[7]
+ v12 ^= c0
+ v13 ^= c1
+ v14 ^= flag
+
+ for j := range m {
+ m[j] = binary.LittleEndian.Uint64(blocks[i:])
+ i += 8
+ }
+
+ for j := range precomputed {
+ s := &(precomputed[j])
+
+ v0 += m[s[0]]
+ v0 += v4
+ v12 ^= v0
+ v12 = v12<<(64-32) | v12>>32
+ v8 += v12
+ v4 ^= v8
+ v4 = v4<<(64-24) | v4>>24
+ v1 += m[s[1]]
+ v1 += v5
+ v13 ^= v1
+ v13 = v13<<(64-32) | v13>>32
+ v9 += v13
+ v5 ^= v9
+ v5 = v5<<(64-24) | v5>>24
+ v2 += m[s[2]]
+ v2 += v6
+ v14 ^= v2
+ v14 = v14<<(64-32) | v14>>32
+ v10 += v14
+ v6 ^= v10
+ v6 = v6<<(64-24) | v6>>24
+ v3 += m[s[3]]
+ v3 += v7
+ v15 ^= v3
+ v15 = v15<<(64-32) | v15>>32
+ v11 += v15
+ v7 ^= v11
+ v7 = v7<<(64-24) | v7>>24
+
+ v0 += m[s[4]]
+ v0 += v4
+ v12 ^= v0
+ v12 = v12<<(64-16) | v12>>16
+ v8 += v12
+ v4 ^= v8
+ v4 = v4<<(64-63) | v4>>63
+ v1 += m[s[5]]
+ v1 += v5
+ v13 ^= v1
+ v13 = v13<<(64-16) | v13>>16
+ v9 += v13
+ v5 ^= v9
+ v5 = v5<<(64-63) | v5>>63
+ v2 += m[s[6]]
+ v2 += v6
+ v14 ^= v2
+ v14 = v14<<(64-16) | v14>>16
+ v10 += v14
+ v6 ^= v10
+ v6 = v6<<(64-63) | v6>>63
+ v3 += m[s[7]]
+ v3 += v7
+ v15 ^= v3
+ v15 = v15<<(64-16) | v15>>16
+ v11 += v15
+ v7 ^= v11
+ v7 = v7<<(64-63) | v7>>63
+
+ v0 += m[s[8]]
+ v0 += v5
+ v15 ^= v0
+ v15 = v15<<(64-32) | v15>>32
+ v10 += v15
+ v5 ^= v10
+ v5 = v5<<(64-24) | v5>>24
+ v1 += m[s[9]]
+ v1 += v6
+ v12 ^= v1
+ v12 = v12<<(64-32) | v12>>32
+ v11 += v12
+ v6 ^= v11
+ v6 = v6<<(64-24) | v6>>24
+ v2 += m[s[10]]
+ v2 += v7
+ v13 ^= v2
+ v13 = v13<<(64-32) | v13>>32
+ v8 += v13
+ v7 ^= v8
+ v7 = v7<<(64-24) | v7>>24
+ v3 += m[s[11]]
+ v3 += v4
+ v14 ^= v3
+ v14 = v14<<(64-32) | v14>>32
+ v9 += v14
+ v4 ^= v9
+ v4 = v4<<(64-24) | v4>>24
+
+ v0 += m[s[12]]
+ v0 += v5
+ v15 ^= v0
+ v15 = v15<<(64-16) | v15>>16
+ v10 += v15
+ v5 ^= v10
+ v5 = v5<<(64-63) | v5>>63
+ v1 += m[s[13]]
+ v1 += v6
+ v12 ^= v1
+ v12 = v12<<(64-16) | v12>>16
+ v11 += v12
+ v6 ^= v11
+ v6 = v6<<(64-63) | v6>>63
+ v2 += m[s[14]]
+ v2 += v7
+ v13 ^= v2
+ v13 = v13<<(64-16) | v13>>16
+ v8 += v13
+ v7 ^= v8
+ v7 = v7<<(64-63) | v7>>63
+ v3 += m[s[15]]
+ v3 += v4
+ v14 ^= v3
+ v14 = v14<<(64-16) | v14>>16
+ v9 += v14
+ v4 ^= v9
+ v4 = v4<<(64-63) | v4>>63
+
+ }
+
+ h[0] ^= v0 ^ v8
+ h[1] ^= v1 ^ v9
+ h[2] ^= v2 ^ v10
+ h[3] ^= v3 ^ v11
+ h[4] ^= v4 ^ v12
+ h[5] ^= v5 ^ v13
+ h[6] ^= v6 ^ v14
+ h[7] ^= v7 ^ v15
+ }
+ c[0], c[1] = c0, c1
+}
diff --git a/vendor/golang.org/x/crypto/blake2b/blake2b_ref.go b/vendor/golang.org/x/crypto/blake2b/blake2b_ref.go
new file mode 100644
index 0000000000..da156a1ba6
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2b/blake2b_ref.go
@@ -0,0 +1,11 @@
+// Copyright 2016 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 !amd64 appengine gccgo
+
+package blake2b
+
+func hashBlocks(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) {
+ hashBlocksGeneric(h, c, flag, blocks)
+}
diff --git a/vendor/golang.org/x/crypto/blake2b/blake2x.go b/vendor/golang.org/x/crypto/blake2b/blake2x.go
new file mode 100644
index 0000000000..52c414db0e
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2b/blake2x.go
@@ -0,0 +1,177 @@
+// Copyright 2017 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 blake2b
+
+import (
+ "encoding/binary"
+ "errors"
+ "io"
+)
+
+// XOF defines the interface to hash functions that
+// support arbitrary-length output.
+type XOF interface {
+ // Write absorbs more data into the hash's state. It panics if called
+ // after Read.
+ io.Writer
+
+ // Read reads more output from the hash. It returns io.EOF if the limit
+ // has been reached.
+ io.Reader
+
+ // Clone returns a copy of the XOF in its current state.
+ Clone() XOF
+
+ // Reset resets the XOF to its initial state.
+ Reset()
+}
+
+// OutputLengthUnknown can be used as the size argument to NewXOF to indicate
+// the length of the output is not known in advance.
+const OutputLengthUnknown = 0
+
+// magicUnknownOutputLength is a magic value for the output size that indicates
+// an unknown number of output bytes.
+const magicUnknownOutputLength = (1 << 32) - 1
+
+// maxOutputLength is the absolute maximum number of bytes to produce when the
+// number of output bytes is unknown.
+const maxOutputLength = (1 << 32) * 64
+
+// NewXOF creates a new variable-output-length hash. The hash either produce a
+// known number of bytes (1 <= size < 2**32-1), or an unknown number of bytes
+// (size == OutputLengthUnknown). In the latter case, an absolute limit of
+// 256GiB applies.
+//
+// A non-nil key turns the hash into a MAC. The key must between
+// zero and 32 bytes long.
+func NewXOF(size uint32, key []byte) (XOF, error) {
+ if len(key) > Size {
+ return nil, errKeySize
+ }
+ if size == magicUnknownOutputLength {
+ // 2^32-1 indicates an unknown number of bytes and thus isn't a
+ // valid length.
+ return nil, errors.New("blake2b: XOF length too large")
+ }
+ if size == OutputLengthUnknown {
+ size = magicUnknownOutputLength
+ }
+ x := &xof{
+ d: digest{
+ size: Size,
+ keyLen: len(key),
+ },
+ length: size,
+ }
+ copy(x.d.key[:], key)
+ x.Reset()
+ return x, nil
+}
+
+type xof struct {
+ d digest
+ length uint32
+ remaining uint64
+ cfg, root, block [Size]byte
+ offset int
+ nodeOffset uint32
+ readMode bool
+}
+
+func (x *xof) Write(p []byte) (n int, err error) {
+ if x.readMode {
+ panic("blake2b: write to XOF after read")
+ }
+ return x.d.Write(p)
+}
+
+func (x *xof) Clone() XOF {
+ clone := *x
+ return &clone
+}
+
+func (x *xof) Reset() {
+ x.cfg[0] = byte(Size)
+ binary.LittleEndian.PutUint32(x.cfg[4:], uint32(Size)) // leaf length
+ binary.LittleEndian.PutUint32(x.cfg[12:], x.length) // XOF length
+ x.cfg[17] = byte(Size) // inner hash size
+
+ x.d.Reset()
+ x.d.h[1] ^= uint64(x.length) << 32
+
+ x.remaining = uint64(x.length)
+ if x.remaining == magicUnknownOutputLength {
+ x.remaining = maxOutputLength
+ }
+ x.offset, x.nodeOffset = 0, 0
+ x.readMode = false
+}
+
+func (x *xof) Read(p []byte) (n int, err error) {
+ if !x.readMode {
+ x.d.finalize(&x.root)
+ x.readMode = true
+ }
+
+ if x.remaining == 0 {
+ return 0, io.EOF
+ }
+
+ n = len(p)
+ if uint64(n) > x.remaining {
+ n = int(x.remaining)
+ p = p[:n]
+ }
+
+ if x.offset > 0 {
+ blockRemaining := Size - x.offset
+ if n < blockRemaining {
+ x.offset += copy(p, x.block[x.offset:])
+ x.remaining -= uint64(n)
+ return
+ }
+ copy(p, x.block[x.offset:])
+ p = p[blockRemaining:]
+ x.offset = 0
+ x.remaining -= uint64(blockRemaining)
+ }
+
+ for len(p) >= Size {
+ binary.LittleEndian.PutUint32(x.cfg[8:], x.nodeOffset)
+ x.nodeOffset++
+
+ x.d.initConfig(&x.cfg)
+ x.d.Write(x.root[:])
+ x.d.finalize(&x.block)
+
+ copy(p, x.block[:])
+ p = p[Size:]
+ x.remaining -= uint64(Size)
+ }
+
+ if todo := len(p); todo > 0 {
+ if x.remaining < uint64(Size) {
+ x.cfg[0] = byte(x.remaining)
+ }
+ binary.LittleEndian.PutUint32(x.cfg[8:], x.nodeOffset)
+ x.nodeOffset++
+
+ x.d.initConfig(&x.cfg)
+ x.d.Write(x.root[:])
+ x.d.finalize(&x.block)
+
+ x.offset = copy(p, x.block[:todo])
+ x.remaining -= uint64(todo)
+ }
+ return
+}
+
+func (d *digest) initConfig(cfg *[Size]byte) {
+ d.offset, d.c[0], d.c[1] = 0, 0, 0
+ for i := range d.h {
+ d.h[i] = iv[i] ^ binary.LittleEndian.Uint64(cfg[i*8:])
+ }
+}
diff --git a/vendor/golang.org/x/crypto/blake2b/register.go b/vendor/golang.org/x/crypto/blake2b/register.go
new file mode 100644
index 0000000000..efd689af4b
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2b/register.go
@@ -0,0 +1,32 @@
+// Copyright 2017 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 go1.9
+
+package blake2b
+
+import (
+ "crypto"
+ "hash"
+)
+
+func init() {
+ newHash256 := func() hash.Hash {
+ h, _ := New256(nil)
+ return h
+ }
+ newHash384 := func() hash.Hash {
+ h, _ := New384(nil)
+ return h
+ }
+
+ newHash512 := func() hash.Hash {
+ h, _ := New512(nil)
+ return h
+ }
+
+ crypto.RegisterHash(crypto.BLAKE2b_256, newHash256)
+ crypto.RegisterHash(crypto.BLAKE2b_384, newHash384)
+ crypto.RegisterHash(crypto.BLAKE2b_512, newHash512)
+}
diff --git a/vendor/golang.org/x/crypto/blake2s/blake2s.go b/vendor/golang.org/x/crypto/blake2s/blake2s.go
new file mode 100644
index 0000000000..5fb4a9ecd1
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2s/blake2s.go
@@ -0,0 +1,244 @@
+// Copyright 2016 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 blake2s implements the BLAKE2s hash algorithm defined by RFC 7693
+// and the extendable output function (XOF) BLAKE2Xs.
+//
+// For a detailed specification of BLAKE2s see https://blake2.net/blake2.pdf
+// and for BLAKE2Xs see https://blake2.net/blake2x.pdf
+//
+// If you aren't sure which function you need, use BLAKE2s (Sum256 or New256).
+// If you need a secret-key MAC (message authentication code), use the New256
+// function with a non-nil key.
+//
+// BLAKE2X is a construction to compute hash values larger than 32 bytes. It
+// can produce hash values between 0 and 65535 bytes.
+package blake2s // import "golang.org/x/crypto/blake2s"
+
+import (
+ "encoding/binary"
+ "errors"
+ "hash"
+)
+
+const (
+ // The blocksize of BLAKE2s in bytes.
+ BlockSize = 64
+
+ // The hash size of BLAKE2s-256 in bytes.
+ Size = 32
+
+ // The hash size of BLAKE2s-128 in bytes.
+ Size128 = 16
+)
+
+var errKeySize = errors.New("blake2s: invalid key size")
+
+var iv = [8]uint32{
+ 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
+ 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,
+}
+
+// Sum256 returns the BLAKE2s-256 checksum of the data.
+func Sum256(data []byte) [Size]byte {
+ var sum [Size]byte
+ checkSum(&sum, Size, data)
+ return sum
+}
+
+// New256 returns a new hash.Hash computing the BLAKE2s-256 checksum. A non-nil
+// key turns the hash into a MAC. The key must between zero and 32 bytes long.
+// When the key is nil, the returned hash.Hash implements BinaryMarshaler
+// and BinaryUnmarshaler for state (de)serialization as documented by hash.Hash.
+func New256(key []byte) (hash.Hash, error) { return newDigest(Size, key) }
+
+// New128 returns a new hash.Hash computing the BLAKE2s-128 checksum given a
+// non-empty key. Note that a 128-bit digest is too small to be secure as a
+// cryptographic hash and should only be used as a MAC, thus the key argument
+// is not optional.
+func New128(key []byte) (hash.Hash, error) {
+ if len(key) == 0 {
+ return nil, errors.New("blake2s: a key is required for a 128-bit hash")
+ }
+ return newDigest(Size128, key)
+}
+
+func newDigest(hashSize int, key []byte) (*digest, error) {
+ if len(key) > Size {
+ return nil, errKeySize
+ }
+ d := &digest{
+ size: hashSize,
+ keyLen: len(key),
+ }
+ copy(d.key[:], key)
+ d.Reset()
+ return d, nil
+}
+
+func checkSum(sum *[Size]byte, hashSize int, data []byte) {
+ var (
+ h [8]uint32
+ c [2]uint32
+ )
+
+ h = iv
+ h[0] ^= uint32(hashSize) | (1 << 16) | (1 << 24)
+
+ if length := len(data); length > BlockSize {
+ n := length &^ (BlockSize - 1)
+ if length == n {
+ n -= BlockSize
+ }
+ hashBlocks(&h, &c, 0, data[:n])
+ data = data[n:]
+ }
+
+ var block [BlockSize]byte
+ offset := copy(block[:], data)
+ remaining := uint32(BlockSize - offset)
+
+ if c[0] < remaining {
+ c[1]--
+ }
+ c[0] -= remaining
+
+ hashBlocks(&h, &c, 0xFFFFFFFF, block[:])
+
+ for i, v := range h {
+ binary.LittleEndian.PutUint32(sum[4*i:], v)
+ }
+}
+
+type digest struct {
+ h [8]uint32
+ c [2]uint32
+ size int
+ block [BlockSize]byte
+ offset int
+
+ key [BlockSize]byte
+ keyLen int
+}
+
+const (
+ magic = "b2s"
+ marshaledSize = len(magic) + 8*4 + 2*4 + 1 + BlockSize + 1
+)
+
+func (d *digest) MarshalBinary() ([]byte, error) {
+ if d.keyLen != 0 {
+ return nil, errors.New("crypto/blake2s: cannot marshal MACs")
+ }
+ b := make([]byte, 0, marshaledSize)
+ b = append(b, magic...)
+ for i := 0; i < 8; i++ {
+ b = appendUint32(b, d.h[i])
+ }
+ b = appendUint32(b, d.c[0])
+ b = appendUint32(b, d.c[1])
+ // Maximum value for size is 32
+ b = append(b, byte(d.size))
+ b = append(b, d.block[:]...)
+ b = append(b, byte(d.offset))
+ return b, nil
+}
+
+func (d *digest) UnmarshalBinary(b []byte) error {
+ if len(b) < len(magic) || string(b[:len(magic)]) != magic {
+ return errors.New("crypto/blake2s: invalid hash state identifier")
+ }
+ if len(b) != marshaledSize {
+ return errors.New("crypto/blake2s: invalid hash state size")
+ }
+ b = b[len(magic):]
+ for i := 0; i < 8; i++ {
+ b, d.h[i] = consumeUint32(b)
+ }
+ b, d.c[0] = consumeUint32(b)
+ b, d.c[1] = consumeUint32(b)
+ d.size = int(b[0])
+ b = b[1:]
+ copy(d.block[:], b[:BlockSize])
+ b = b[BlockSize:]
+ d.offset = int(b[0])
+ return nil
+}
+
+func (d *digest) BlockSize() int { return BlockSize }
+
+func (d *digest) Size() int { return d.size }
+
+func (d *digest) Reset() {
+ d.h = iv
+ d.h[0] ^= uint32(d.size) | (uint32(d.keyLen) << 8) | (1 << 16) | (1 << 24)
+ d.offset, d.c[0], d.c[1] = 0, 0, 0
+ if d.keyLen > 0 {
+ d.block = d.key
+ d.offset = BlockSize
+ }
+}
+
+func (d *digest) Write(p []byte) (n int, err error) {
+ n = len(p)
+
+ if d.offset > 0 {
+ remaining := BlockSize - d.offset
+ if n <= remaining {
+ d.offset += copy(d.block[d.offset:], p)
+ return
+ }
+ copy(d.block[d.offset:], p[:remaining])
+ hashBlocks(&d.h, &d.c, 0, d.block[:])
+ d.offset = 0
+ p = p[remaining:]
+ }
+
+ if length := len(p); length > BlockSize {
+ nn := length &^ (BlockSize - 1)
+ if length == nn {
+ nn -= BlockSize
+ }
+ hashBlocks(&d.h, &d.c, 0, p[:nn])
+ p = p[nn:]
+ }
+
+ d.offset += copy(d.block[:], p)
+ return
+}
+
+func (d *digest) Sum(sum []byte) []byte {
+ var hash [Size]byte
+ d.finalize(&hash)
+ return append(sum, hash[:d.size]...)
+}
+
+func (d *digest) finalize(hash *[Size]byte) {
+ var block [BlockSize]byte
+ h := d.h
+ c := d.c
+
+ copy(block[:], d.block[:d.offset])
+ remaining := uint32(BlockSize - d.offset)
+ if c[0] < remaining {
+ c[1]--
+ }
+ c[0] -= remaining
+
+ hashBlocks(&h, &c, 0xFFFFFFFF, block[:])
+ for i, v := range h {
+ binary.LittleEndian.PutUint32(hash[4*i:], v)
+ }
+}
+
+func appendUint32(b []byte, x uint32) []byte {
+ var a [4]byte
+ binary.BigEndian.PutUint32(a[:], x)
+ return append(b, a[:]...)
+}
+
+func consumeUint32(b []byte) ([]byte, uint32) {
+ x := binary.BigEndian.Uint32(b)
+ return b[4:], x
+}
diff --git a/vendor/golang.org/x/crypto/blake2s/blake2s_386.go b/vendor/golang.org/x/crypto/blake2s/blake2s_386.go
new file mode 100644
index 0000000000..d8f9cea938
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2s/blake2s_386.go
@@ -0,0 +1,32 @@
+// Copyright 2016 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 386,!gccgo,!appengine
+
+package blake2s
+
+import "golang.org/x/sys/cpu"
+
+var (
+ useSSE4 = false
+ useSSSE3 = cpu.X86.HasSSSE3
+ useSSE2 = cpu.X86.HasSSE2
+)
+
+//go:noescape
+func hashBlocksSSE2(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte)
+
+//go:noescape
+func hashBlocksSSSE3(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte)
+
+func hashBlocks(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte) {
+ switch {
+ case useSSSE3:
+ hashBlocksSSSE3(h, c, flag, blocks)
+ case useSSE2:
+ hashBlocksSSE2(h, c, flag, blocks)
+ default:
+ hashBlocksGeneric(h, c, flag, blocks)
+ }
+}
diff --git a/vendor/golang.org/x/crypto/blake2s/blake2s_386.s b/vendor/golang.org/x/crypto/blake2s/blake2s_386.s
new file mode 100644
index 0000000000..c123e5d608
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2s/blake2s_386.s
@@ -0,0 +1,435 @@
+// Copyright 2016 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 386,!gccgo,!appengine
+
+#include "textflag.h"
+
+DATA iv0<>+0x00(SB)/4, $0x6a09e667
+DATA iv0<>+0x04(SB)/4, $0xbb67ae85
+DATA iv0<>+0x08(SB)/4, $0x3c6ef372
+DATA iv0<>+0x0c(SB)/4, $0xa54ff53a
+GLOBL iv0<>(SB), (NOPTR+RODATA), $16
+
+DATA iv1<>+0x00(SB)/4, $0x510e527f
+DATA iv1<>+0x04(SB)/4, $0x9b05688c
+DATA iv1<>+0x08(SB)/4, $0x1f83d9ab
+DATA iv1<>+0x0c(SB)/4, $0x5be0cd19
+GLOBL iv1<>(SB), (NOPTR+RODATA), $16
+
+DATA rol16<>+0x00(SB)/8, $0x0504070601000302
+DATA rol16<>+0x08(SB)/8, $0x0D0C0F0E09080B0A
+GLOBL rol16<>(SB), (NOPTR+RODATA), $16
+
+DATA rol8<>+0x00(SB)/8, $0x0407060500030201
+DATA rol8<>+0x08(SB)/8, $0x0C0F0E0D080B0A09
+GLOBL rol8<>(SB), (NOPTR+RODATA), $16
+
+DATA counter<>+0x00(SB)/8, $0x40
+DATA counter<>+0x08(SB)/8, $0x0
+GLOBL counter<>(SB), (NOPTR+RODATA), $16
+
+#define ROTL_SSE2(n, t, v) \
+ MOVO v, t; \
+ PSLLL $n, t; \
+ PSRLL $(32-n), v; \
+ PXOR t, v
+
+#define ROTL_SSSE3(c, v) \
+ PSHUFB c, v
+
+#define ROUND_SSE2(v0, v1, v2, v3, m0, m1, m2, m3, t) \
+ PADDL m0, v0; \
+ PADDL v1, v0; \
+ PXOR v0, v3; \
+ ROTL_SSE2(16, t, v3); \
+ PADDL v3, v2; \
+ PXOR v2, v1; \
+ ROTL_SSE2(20, t, v1); \
+ PADDL m1, v0; \
+ PADDL v1, v0; \
+ PXOR v0, v3; \
+ ROTL_SSE2(24, t, v3); \
+ PADDL v3, v2; \
+ PXOR v2, v1; \
+ ROTL_SSE2(25, t, v1); \
+ PSHUFL $0x39, v1, v1; \
+ PSHUFL $0x4E, v2, v2; \
+ PSHUFL $0x93, v3, v3; \
+ PADDL m2, v0; \
+ PADDL v1, v0; \
+ PXOR v0, v3; \
+ ROTL_SSE2(16, t, v3); \
+ PADDL v3, v2; \
+ PXOR v2, v1; \
+ ROTL_SSE2(20, t, v1); \
+ PADDL m3, v0; \
+ PADDL v1, v0; \
+ PXOR v0, v3; \
+ ROTL_SSE2(24, t, v3); \
+ PADDL v3, v2; \
+ PXOR v2, v1; \
+ ROTL_SSE2(25, t, v1); \
+ PSHUFL $0x39, v3, v3; \
+ PSHUFL $0x4E, v2, v2; \
+ PSHUFL $0x93, v1, v1
+
+#define ROUND_SSSE3(v0, v1, v2, v3, m0, m1, m2, m3, t, c16, c8) \
+ PADDL m0, v0; \
+ PADDL v1, v0; \
+ PXOR v0, v3; \
+ ROTL_SSSE3(c16, v3); \
+ PADDL v3, v2; \
+ PXOR v2, v1; \
+ ROTL_SSE2(20, t, v1); \
+ PADDL m1, v0; \
+ PADDL v1, v0; \
+ PXOR v0, v3; \
+ ROTL_SSSE3(c8, v3); \
+ PADDL v3, v2; \
+ PXOR v2, v1; \
+ ROTL_SSE2(25, t, v1); \
+ PSHUFL $0x39, v1, v1; \
+ PSHUFL $0x4E, v2, v2; \
+ PSHUFL $0x93, v3, v3; \
+ PADDL m2, v0; \
+ PADDL v1, v0; \
+ PXOR v0, v3; \
+ ROTL_SSSE3(c16, v3); \
+ PADDL v3, v2; \
+ PXOR v2, v1; \
+ ROTL_SSE2(20, t, v1); \
+ PADDL m3, v0; \
+ PADDL v1, v0; \
+ PXOR v0, v3; \
+ ROTL_SSSE3(c8, v3); \
+ PADDL v3, v2; \
+ PXOR v2, v1; \
+ ROTL_SSE2(25, t, v1); \
+ PSHUFL $0x39, v3, v3; \
+ PSHUFL $0x4E, v2, v2; \
+ PSHUFL $0x93, v1, v1
+
+#define PRECOMPUTE(dst, off, src, t) \
+ MOVL 0*4(src), t; \
+ MOVL t, 0*4+off+0(dst); \
+ MOVL t, 9*4+off+64(dst); \
+ MOVL t, 5*4+off+128(dst); \
+ MOVL t, 14*4+off+192(dst); \
+ MOVL t, 4*4+off+256(dst); \
+ MOVL t, 2*4+off+320(dst); \
+ MOVL t, 8*4+off+384(dst); \
+ MOVL t, 12*4+off+448(dst); \
+ MOVL t, 3*4+off+512(dst); \
+ MOVL t, 15*4+off+576(dst); \
+ MOVL 1*4(src), t; \
+ MOVL t, 4*4+off+0(dst); \
+ MOVL t, 8*4+off+64(dst); \
+ MOVL t, 14*4+off+128(dst); \
+ MOVL t, 5*4+off+192(dst); \
+ MOVL t, 12*4+off+256(dst); \
+ MOVL t, 11*4+off+320(dst); \
+ MOVL t, 1*4+off+384(dst); \
+ MOVL t, 6*4+off+448(dst); \
+ MOVL t, 10*4+off+512(dst); \
+ MOVL t, 3*4+off+576(dst); \
+ MOVL 2*4(src), t; \
+ MOVL t, 1*4+off+0(dst); \
+ MOVL t, 13*4+off+64(dst); \
+ MOVL t, 6*4+off+128(dst); \
+ MOVL t, 8*4+off+192(dst); \
+ MOVL t, 2*4+off+256(dst); \
+ MOVL t, 0*4+off+320(dst); \
+ MOVL t, 14*4+off+384(dst); \
+ MOVL t, 11*4+off+448(dst); \
+ MOVL t, 12*4+off+512(dst); \
+ MOVL t, 4*4+off+576(dst); \
+ MOVL 3*4(src), t; \
+ MOVL t, 5*4+off+0(dst); \
+ MOVL t, 15*4+off+64(dst); \
+ MOVL t, 9*4+off+128(dst); \
+ MOVL t, 1*4+off+192(dst); \
+ MOVL t, 11*4+off+256(dst); \
+ MOVL t, 7*4+off+320(dst); \
+ MOVL t, 13*4+off+384(dst); \
+ MOVL t, 3*4+off+448(dst); \
+ MOVL t, 6*4+off+512(dst); \
+ MOVL t, 10*4+off+576(dst); \
+ MOVL 4*4(src), t; \
+ MOVL t, 2*4+off+0(dst); \
+ MOVL t, 1*4+off+64(dst); \
+ MOVL t, 15*4+off+128(dst); \
+ MOVL t, 10*4+off+192(dst); \
+ MOVL t, 6*4+off+256(dst); \
+ MOVL t, 8*4+off+320(dst); \
+ MOVL t, 3*4+off+384(dst); \
+ MOVL t, 13*4+off+448(dst); \
+ MOVL t, 14*4+off+512(dst); \
+ MOVL t, 5*4+off+576(dst); \
+ MOVL 5*4(src), t; \
+ MOVL t, 6*4+off+0(dst); \
+ MOVL t, 11*4+off+64(dst); \
+ MOVL t, 2*4+off+128(dst); \
+ MOVL t, 9*4+off+192(dst); \
+ MOVL t, 1*4+off+256(dst); \
+ MOVL t, 13*4+off+320(dst); \
+ MOVL t, 4*4+off+384(dst); \
+ MOVL t, 8*4+off+448(dst); \
+ MOVL t, 15*4+off+512(dst); \
+ MOVL t, 7*4+off+576(dst); \
+ MOVL 6*4(src), t; \
+ MOVL t, 3*4+off+0(dst); \
+ MOVL t, 7*4+off+64(dst); \
+ MOVL t, 13*4+off+128(dst); \
+ MOVL t, 12*4+off+192(dst); \
+ MOVL t, 10*4+off+256(dst); \
+ MOVL t, 1*4+off+320(dst); \
+ MOVL t, 9*4+off+384(dst); \
+ MOVL t, 14*4+off+448(dst); \
+ MOVL t, 0*4+off+512(dst); \
+ MOVL t, 6*4+off+576(dst); \
+ MOVL 7*4(src), t; \
+ MOVL t, 7*4+off+0(dst); \
+ MOVL t, 14*4+off+64(dst); \
+ MOVL t, 10*4+off+128(dst); \
+ MOVL t, 0*4+off+192(dst); \
+ MOVL t, 5*4+off+256(dst); \
+ MOVL t, 9*4+off+320(dst); \
+ MOVL t, 12*4+off+384(dst); \
+ MOVL t, 1*4+off+448(dst); \
+ MOVL t, 13*4+off+512(dst); \
+ MOVL t, 2*4+off+576(dst); \
+ MOVL 8*4(src), t; \
+ MOVL t, 8*4+off+0(dst); \
+ MOVL t, 5*4+off+64(dst); \
+ MOVL t, 4*4+off+128(dst); \
+ MOVL t, 15*4+off+192(dst); \
+ MOVL t, 14*4+off+256(dst); \
+ MOVL t, 3*4+off+320(dst); \
+ MOVL t, 11*4+off+384(dst); \
+ MOVL t, 10*4+off+448(dst); \
+ MOVL t, 7*4+off+512(dst); \
+ MOVL t, 1*4+off+576(dst); \
+ MOVL 9*4(src), t; \
+ MOVL t, 12*4+off+0(dst); \
+ MOVL t, 2*4+off+64(dst); \
+ MOVL t, 11*4+off+128(dst); \
+ MOVL t, 4*4+off+192(dst); \
+ MOVL t, 0*4+off+256(dst); \
+ MOVL t, 15*4+off+320(dst); \
+ MOVL t, 10*4+off+384(dst); \
+ MOVL t, 7*4+off+448(dst); \
+ MOVL t, 5*4+off+512(dst); \
+ MOVL t, 9*4+off+576(dst); \
+ MOVL 10*4(src), t; \
+ MOVL t, 9*4+off+0(dst); \
+ MOVL t, 4*4+off+64(dst); \
+ MOVL t, 8*4+off+128(dst); \
+ MOVL t, 13*4+off+192(dst); \
+ MOVL t, 3*4+off+256(dst); \
+ MOVL t, 5*4+off+320(dst); \
+ MOVL t, 7*4+off+384(dst); \
+ MOVL t, 15*4+off+448(dst); \
+ MOVL t, 11*4+off+512(dst); \
+ MOVL t, 0*4+off+576(dst); \
+ MOVL 11*4(src), t; \
+ MOVL t, 13*4+off+0(dst); \
+ MOVL t, 10*4+off+64(dst); \
+ MOVL t, 0*4+off+128(dst); \
+ MOVL t, 3*4+off+192(dst); \
+ MOVL t, 9*4+off+256(dst); \
+ MOVL t, 6*4+off+320(dst); \
+ MOVL t, 15*4+off+384(dst); \
+ MOVL t, 4*4+off+448(dst); \
+ MOVL t, 2*4+off+512(dst); \
+ MOVL t, 12*4+off+576(dst); \
+ MOVL 12*4(src), t; \
+ MOVL t, 10*4+off+0(dst); \
+ MOVL t, 12*4+off+64(dst); \
+ MOVL t, 1*4+off+128(dst); \
+ MOVL t, 6*4+off+192(dst); \
+ MOVL t, 13*4+off+256(dst); \
+ MOVL t, 4*4+off+320(dst); \
+ MOVL t, 0*4+off+384(dst); \
+ MOVL t, 2*4+off+448(dst); \
+ MOVL t, 8*4+off+512(dst); \
+ MOVL t, 14*4+off+576(dst); \
+ MOVL 13*4(src), t; \
+ MOVL t, 14*4+off+0(dst); \
+ MOVL t, 3*4+off+64(dst); \
+ MOVL t, 7*4+off+128(dst); \
+ MOVL t, 2*4+off+192(dst); \
+ MOVL t, 15*4+off+256(dst); \
+ MOVL t, 12*4+off+320(dst); \
+ MOVL t, 6*4+off+384(dst); \
+ MOVL t, 0*4+off+448(dst); \
+ MOVL t, 9*4+off+512(dst); \
+ MOVL t, 11*4+off+576(dst); \
+ MOVL 14*4(src), t; \
+ MOVL t, 11*4+off+0(dst); \
+ MOVL t, 0*4+off+64(dst); \
+ MOVL t, 12*4+off+128(dst); \
+ MOVL t, 7*4+off+192(dst); \
+ MOVL t, 8*4+off+256(dst); \
+ MOVL t, 14*4+off+320(dst); \
+ MOVL t, 2*4+off+384(dst); \
+ MOVL t, 5*4+off+448(dst); \
+ MOVL t, 1*4+off+512(dst); \
+ MOVL t, 13*4+off+576(dst); \
+ MOVL 15*4(src), t; \
+ MOVL t, 15*4+off+0(dst); \
+ MOVL t, 6*4+off+64(dst); \
+ MOVL t, 3*4+off+128(dst); \
+ MOVL t, 11*4+off+192(dst); \
+ MOVL t, 7*4+off+256(dst); \
+ MOVL t, 10*4+off+320(dst); \
+ MOVL t, 5*4+off+384(dst); \
+ MOVL t, 9*4+off+448(dst); \
+ MOVL t, 4*4+off+512(dst); \
+ MOVL t, 8*4+off+576(dst)
+
+// func hashBlocksSSE2(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte)
+TEXT ·hashBlocksSSE2(SB), 0, $672-24 // frame = 656 + 16 byte alignment
+ MOVL h+0(FP), AX
+ MOVL c+4(FP), BX
+ MOVL flag+8(FP), CX
+ MOVL blocks_base+12(FP), SI
+ MOVL blocks_len+16(FP), DX
+
+ MOVL SP, BP
+ MOVL SP, DI
+ ADDL $15, DI
+ ANDL $~15, DI
+ MOVL DI, SP
+
+ MOVL CX, 8(SP)
+ MOVL 0(BX), CX
+ MOVL CX, 0(SP)
+ MOVL 4(BX), CX
+ MOVL CX, 4(SP)
+ XORL CX, CX
+ MOVL CX, 12(SP)
+
+ MOVOU 0(AX), X0
+ MOVOU 16(AX), X1
+ MOVOU counter<>(SB), X2
+
+loop:
+ MOVO X0, X4
+ MOVO X1, X5
+ MOVOU iv0<>(SB), X6
+ MOVOU iv1<>(SB), X7
+
+ MOVO 0(SP), X3
+ PADDQ X2, X3
+ PXOR X3, X7
+ MOVO X3, 0(SP)
+
+ PRECOMPUTE(SP, 16, SI, CX)
+ ROUND_SSE2(X4, X5, X6, X7, 16(SP), 32(SP), 48(SP), 64(SP), X3)
+ ROUND_SSE2(X4, X5, X6, X7, 16+64(SP), 32+64(SP), 48+64(SP), 64+64(SP), X3)
+ ROUND_SSE2(X4, X5, X6, X7, 16+128(SP), 32+128(SP), 48+128(SP), 64+128(SP), X3)
+ ROUND_SSE2(X4, X5, X6, X7, 16+192(SP), 32+192(SP), 48+192(SP), 64+192(SP), X3)
+ ROUND_SSE2(X4, X5, X6, X7, 16+256(SP), 32+256(SP), 48+256(SP), 64+256(SP), X3)
+ ROUND_SSE2(X4, X5, X6, X7, 16+320(SP), 32+320(SP), 48+320(SP), 64+320(SP), X3)
+ ROUND_SSE2(X4, X5, X6, X7, 16+384(SP), 32+384(SP), 48+384(SP), 64+384(SP), X3)
+ ROUND_SSE2(X4, X5, X6, X7, 16+448(SP), 32+448(SP), 48+448(SP), 64+448(SP), X3)
+ ROUND_SSE2(X4, X5, X6, X7, 16+512(SP), 32+512(SP), 48+512(SP), 64+512(SP), X3)
+ ROUND_SSE2(X4, X5, X6, X7, 16+576(SP), 32+576(SP), 48+576(SP), 64+576(SP), X3)
+
+ PXOR X4, X0
+ PXOR X5, X1
+ PXOR X6, X0
+ PXOR X7, X1
+
+ LEAL 64(SI), SI
+ SUBL $64, DX
+ JNE loop
+
+ MOVL 0(SP), CX
+ MOVL CX, 0(BX)
+ MOVL 4(SP), CX
+ MOVL CX, 4(BX)
+
+ MOVOU X0, 0(AX)
+ MOVOU X1, 16(AX)
+
+ MOVL BP, SP
+ RET
+
+// func hashBlocksSSSE3(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte)
+TEXT ·hashBlocksSSSE3(SB), 0, $704-24 // frame = 688 + 16 byte alignment
+ MOVL h+0(FP), AX
+ MOVL c+4(FP), BX
+ MOVL flag+8(FP), CX
+ MOVL blocks_base+12(FP), SI
+ MOVL blocks_len+16(FP), DX
+
+ MOVL SP, BP
+ MOVL SP, DI
+ ADDL $15, DI
+ ANDL $~15, DI
+ MOVL DI, SP
+
+ MOVL CX, 8(SP)
+ MOVL 0(BX), CX
+ MOVL CX, 0(SP)
+ MOVL 4(BX), CX
+ MOVL CX, 4(SP)
+ XORL CX, CX
+ MOVL CX, 12(SP)
+
+ MOVOU 0(AX), X0
+ MOVOU 16(AX), X1
+ MOVOU counter<>(SB), X2
+
+loop:
+ MOVO X0, 656(SP)
+ MOVO X1, 672(SP)
+ MOVO X0, X4
+ MOVO X1, X5
+ MOVOU iv0<>(SB), X6
+ MOVOU iv1<>(SB), X7
+
+ MOVO 0(SP), X3
+ PADDQ X2, X3
+ PXOR X3, X7
+ MOVO X3, 0(SP)
+
+ MOVOU rol16<>(SB), X0
+ MOVOU rol8<>(SB), X1
+
+ PRECOMPUTE(SP, 16, SI, CX)
+ ROUND_SSSE3(X4, X5, X6, X7, 16(SP), 32(SP), 48(SP), 64(SP), X3, X0, X1)
+ ROUND_SSSE3(X4, X5, X6, X7, 16+64(SP), 32+64(SP), 48+64(SP), 64+64(SP), X3, X0, X1)
+ ROUND_SSSE3(X4, X5, X6, X7, 16+128(SP), 32+128(SP), 48+128(SP), 64+128(SP), X3, X0, X1)
+ ROUND_SSSE3(X4, X5, X6, X7, 16+192(SP), 32+192(SP), 48+192(SP), 64+192(SP), X3, X0, X1)
+ ROUND_SSSE3(X4, X5, X6, X7, 16+256(SP), 32+256(SP), 48+256(SP), 64+256(SP), X3, X0, X1)
+ ROUND_SSSE3(X4, X5, X6, X7, 16+320(SP), 32+320(SP), 48+320(SP), 64+320(SP), X3, X0, X1)
+ ROUND_SSSE3(X4, X5, X6, X7, 16+384(SP), 32+384(SP), 48+384(SP), 64+384(SP), X3, X0, X1)
+ ROUND_SSSE3(X4, X5, X6, X7, 16+448(SP), 32+448(SP), 48+448(SP), 64+448(SP), X3, X0, X1)
+ ROUND_SSSE3(X4, X5, X6, X7, 16+512(SP), 32+512(SP), 48+512(SP), 64+512(SP), X3, X0, X1)
+ ROUND_SSSE3(X4, X5, X6, X7, 16+576(SP), 32+576(SP), 48+576(SP), 64+576(SP), X3, X0, X1)
+
+ MOVO 656(SP), X0
+ MOVO 672(SP), X1
+ PXOR X4, X0
+ PXOR X5, X1
+ PXOR X6, X0
+ PXOR X7, X1
+
+ LEAL 64(SI), SI
+ SUBL $64, DX
+ JNE loop
+
+ MOVL 0(SP), CX
+ MOVL CX, 0(BX)
+ MOVL 4(SP), CX
+ MOVL CX, 4(BX)
+
+ MOVOU X0, 0(AX)
+ MOVOU X1, 16(AX)
+
+ MOVL BP, SP
+ RET
diff --git a/vendor/golang.org/x/crypto/blake2s/blake2s_amd64.go b/vendor/golang.org/x/crypto/blake2s/blake2s_amd64.go
new file mode 100644
index 0000000000..4e8d2d7452
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2s/blake2s_amd64.go
@@ -0,0 +1,37 @@
+// Copyright 2016 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 amd64,!gccgo,!appengine
+
+package blake2s
+
+import "golang.org/x/sys/cpu"
+
+var (
+ useSSE4 = cpu.X86.HasSSE41
+ useSSSE3 = cpu.X86.HasSSSE3
+ useSSE2 = cpu.X86.HasSSE2
+)
+
+//go:noescape
+func hashBlocksSSE2(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte)
+
+//go:noescape
+func hashBlocksSSSE3(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte)
+
+//go:noescape
+func hashBlocksSSE4(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte)
+
+func hashBlocks(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte) {
+ switch {
+ case useSSE4:
+ hashBlocksSSE4(h, c, flag, blocks)
+ case useSSSE3:
+ hashBlocksSSSE3(h, c, flag, blocks)
+ case useSSE2:
+ hashBlocksSSE2(h, c, flag, blocks)
+ default:
+ hashBlocksGeneric(h, c, flag, blocks)
+ }
+}
diff --git a/vendor/golang.org/x/crypto/blake2s/blake2s_amd64.s b/vendor/golang.org/x/crypto/blake2s/blake2s_amd64.s
new file mode 100644
index 0000000000..8da280262e
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2s/blake2s_amd64.s
@@ -0,0 +1,438 @@
+// Copyright 2016 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 amd64,!gccgo,!appengine
+
+#include "textflag.h"
+
+DATA iv0<>+0x00(SB)/4, $0x6a09e667
+DATA iv0<>+0x04(SB)/4, $0xbb67ae85
+DATA iv0<>+0x08(SB)/4, $0x3c6ef372
+DATA iv0<>+0x0c(SB)/4, $0xa54ff53a
+GLOBL iv0<>(SB), (NOPTR+RODATA), $16
+
+DATA iv1<>+0x00(SB)/4, $0x510e527f
+DATA iv1<>+0x04(SB)/4, $0x9b05688c
+DATA iv1<>+0x08(SB)/4, $0x1f83d9ab
+DATA iv1<>+0x0c(SB)/4, $0x5be0cd19
+GLOBL iv1<>(SB), (NOPTR+RODATA), $16
+
+DATA rol16<>+0x00(SB)/8, $0x0504070601000302
+DATA rol16<>+0x08(SB)/8, $0x0D0C0F0E09080B0A
+GLOBL rol16<>(SB), (NOPTR+RODATA), $16
+
+DATA rol8<>+0x00(SB)/8, $0x0407060500030201
+DATA rol8<>+0x08(SB)/8, $0x0C0F0E0D080B0A09
+GLOBL rol8<>(SB), (NOPTR+RODATA), $16
+
+DATA counter<>+0x00(SB)/8, $0x40
+DATA counter<>+0x08(SB)/8, $0x0
+GLOBL counter<>(SB), (NOPTR+RODATA), $16
+
+#define ROTL_SSE2(n, t, v) \
+ MOVO v, t; \
+ PSLLL $n, t; \
+ PSRLL $(32-n), v; \
+ PXOR t, v
+
+#define ROTL_SSSE3(c, v) \
+ PSHUFB c, v
+
+#define ROUND_SSE2(v0, v1, v2, v3, m0, m1, m2, m3, t) \
+ PADDL m0, v0; \
+ PADDL v1, v0; \
+ PXOR v0, v3; \
+ ROTL_SSE2(16, t, v3); \
+ PADDL v3, v2; \
+ PXOR v2, v1; \
+ ROTL_SSE2(20, t, v1); \
+ PADDL m1, v0; \
+ PADDL v1, v0; \
+ PXOR v0, v3; \
+ ROTL_SSE2(24, t, v3); \
+ PADDL v3, v2; \
+ PXOR v2, v1; \
+ ROTL_SSE2(25, t, v1); \
+ PSHUFL $0x39, v1, v1; \
+ PSHUFL $0x4E, v2, v2; \
+ PSHUFL $0x93, v3, v3; \
+ PADDL m2, v0; \
+ PADDL v1, v0; \
+ PXOR v0, v3; \
+ ROTL_SSE2(16, t, v3); \
+ PADDL v3, v2; \
+ PXOR v2, v1; \
+ ROTL_SSE2(20, t, v1); \
+ PADDL m3, v0; \
+ PADDL v1, v0; \
+ PXOR v0, v3; \
+ ROTL_SSE2(24, t, v3); \
+ PADDL v3, v2; \
+ PXOR v2, v1; \
+ ROTL_SSE2(25, t, v1); \
+ PSHUFL $0x39, v3, v3; \
+ PSHUFL $0x4E, v2, v2; \
+ PSHUFL $0x93, v1, v1
+
+#define ROUND_SSSE3(v0, v1, v2, v3, m0, m1, m2, m3, t, c16, c8) \
+ PADDL m0, v0; \
+ PADDL v1, v0; \
+ PXOR v0, v3; \
+ ROTL_SSSE3(c16, v3); \
+ PADDL v3, v2; \
+ PXOR v2, v1; \
+ ROTL_SSE2(20, t, v1); \
+ PADDL m1, v0; \
+ PADDL v1, v0; \
+ PXOR v0, v3; \
+ ROTL_SSSE3(c8, v3); \
+ PADDL v3, v2; \
+ PXOR v2, v1; \
+ ROTL_SSE2(25, t, v1); \
+ PSHUFL $0x39, v1, v1; \
+ PSHUFL $0x4E, v2, v2; \
+ PSHUFL $0x93, v3, v3; \
+ PADDL m2, v0; \
+ PADDL v1, v0; \
+ PXOR v0, v3; \
+ ROTL_SSSE3(c16, v3); \
+ PADDL v3, v2; \
+ PXOR v2, v1; \
+ ROTL_SSE2(20, t, v1); \
+ PADDL m3, v0; \
+ PADDL v1, v0; \
+ PXOR v0, v3; \
+ ROTL_SSSE3(c8, v3); \
+ PADDL v3, v2; \
+ PXOR v2, v1; \
+ ROTL_SSE2(25, t, v1); \
+ PSHUFL $0x39, v3, v3; \
+ PSHUFL $0x4E, v2, v2; \
+ PSHUFL $0x93, v1, v1
+
+
+#define LOAD_MSG_SSE4(m0, m1, m2, m3, src, i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15) \
+ MOVL i0*4(src), m0; \
+ PINSRD $1, i1*4(src), m0; \
+ PINSRD $2, i2*4(src), m0; \
+ PINSRD $3, i3*4(src), m0; \
+ MOVL i4*4(src), m1; \
+ PINSRD $1, i5*4(src), m1; \
+ PINSRD $2, i6*4(src), m1; \
+ PINSRD $3, i7*4(src), m1; \
+ MOVL i8*4(src), m2; \
+ PINSRD $1, i9*4(src), m2; \
+ PINSRD $2, i10*4(src), m2; \
+ PINSRD $3, i11*4(src), m2; \
+ MOVL i12*4(src), m3; \
+ PINSRD $1, i13*4(src), m3; \
+ PINSRD $2, i14*4(src), m3; \
+ PINSRD $3, i15*4(src), m3
+
+#define PRECOMPUTE_MSG(dst, off, src, R8, R9, R10, R11, R12, R13, R14, R15) \
+ MOVQ 0*4(src), R8; \
+ MOVQ 2*4(src), R9; \
+ MOVQ 4*4(src), R10; \
+ MOVQ 6*4(src), R11; \
+ MOVQ 8*4(src), R12; \
+ MOVQ 10*4(src), R13; \
+ MOVQ 12*4(src), R14; \
+ MOVQ 14*4(src), R15; \
+ \
+ MOVL R8, 0*4+off+0(dst); \
+ MOVL R8, 9*4+off+64(dst); \
+ MOVL R8, 5*4+off+128(dst); \
+ MOVL R8, 14*4+off+192(dst); \
+ MOVL R8, 4*4+off+256(dst); \
+ MOVL R8, 2*4+off+320(dst); \
+ MOVL R8, 8*4+off+384(dst); \
+ MOVL R8, 12*4+off+448(dst); \
+ MOVL R8, 3*4+off+512(dst); \
+ MOVL R8, 15*4+off+576(dst); \
+ SHRQ $32, R8; \
+ MOVL R8, 4*4+off+0(dst); \
+ MOVL R8, 8*4+off+64(dst); \
+ MOVL R8, 14*4+off+128(dst); \
+ MOVL R8, 5*4+off+192(dst); \
+ MOVL R8, 12*4+off+256(dst); \
+ MOVL R8, 11*4+off+320(dst); \
+ MOVL R8, 1*4+off+384(dst); \
+ MOVL R8, 6*4+off+448(dst); \
+ MOVL R8, 10*4+off+512(dst); \
+ MOVL R8, 3*4+off+576(dst); \
+ \
+ MOVL R9, 1*4+off+0(dst); \
+ MOVL R9, 13*4+off+64(dst); \
+ MOVL R9, 6*4+off+128(dst); \
+ MOVL R9, 8*4+off+192(dst); \
+ MOVL R9, 2*4+off+256(dst); \
+ MOVL R9, 0*4+off+320(dst); \
+ MOVL R9, 14*4+off+384(dst); \
+ MOVL R9, 11*4+off+448(dst); \
+ MOVL R9, 12*4+off+512(dst); \
+ MOVL R9, 4*4+off+576(dst); \
+ SHRQ $32, R9; \
+ MOVL R9, 5*4+off+0(dst); \
+ MOVL R9, 15*4+off+64(dst); \
+ MOVL R9, 9*4+off+128(dst); \
+ MOVL R9, 1*4+off+192(dst); \
+ MOVL R9, 11*4+off+256(dst); \
+ MOVL R9, 7*4+off+320(dst); \
+ MOVL R9, 13*4+off+384(dst); \
+ MOVL R9, 3*4+off+448(dst); \
+ MOVL R9, 6*4+off+512(dst); \
+ MOVL R9, 10*4+off+576(dst); \
+ \
+ MOVL R10, 2*4+off+0(dst); \
+ MOVL R10, 1*4+off+64(dst); \
+ MOVL R10, 15*4+off+128(dst); \
+ MOVL R10, 10*4+off+192(dst); \
+ MOVL R10, 6*4+off+256(dst); \
+ MOVL R10, 8*4+off+320(dst); \
+ MOVL R10, 3*4+off+384(dst); \
+ MOVL R10, 13*4+off+448(dst); \
+ MOVL R10, 14*4+off+512(dst); \
+ MOVL R10, 5*4+off+576(dst); \
+ SHRQ $32, R10; \
+ MOVL R10, 6*4+off+0(dst); \
+ MOVL R10, 11*4+off+64(dst); \
+ MOVL R10, 2*4+off+128(dst); \
+ MOVL R10, 9*4+off+192(dst); \
+ MOVL R10, 1*4+off+256(dst); \
+ MOVL R10, 13*4+off+320(dst); \
+ MOVL R10, 4*4+off+384(dst); \
+ MOVL R10, 8*4+off+448(dst); \
+ MOVL R10, 15*4+off+512(dst); \
+ MOVL R10, 7*4+off+576(dst); \
+ \
+ MOVL R11, 3*4+off+0(dst); \
+ MOVL R11, 7*4+off+64(dst); \
+ MOVL R11, 13*4+off+128(dst); \
+ MOVL R11, 12*4+off+192(dst); \
+ MOVL R11, 10*4+off+256(dst); \
+ MOVL R11, 1*4+off+320(dst); \
+ MOVL R11, 9*4+off+384(dst); \
+ MOVL R11, 14*4+off+448(dst); \
+ MOVL R11, 0*4+off+512(dst); \
+ MOVL R11, 6*4+off+576(dst); \
+ SHRQ $32, R11; \
+ MOVL R11, 7*4+off+0(dst); \
+ MOVL R11, 14*4+off+64(dst); \
+ MOVL R11, 10*4+off+128(dst); \
+ MOVL R11, 0*4+off+192(dst); \
+ MOVL R11, 5*4+off+256(dst); \
+ MOVL R11, 9*4+off+320(dst); \
+ MOVL R11, 12*4+off+384(dst); \
+ MOVL R11, 1*4+off+448(dst); \
+ MOVL R11, 13*4+off+512(dst); \
+ MOVL R11, 2*4+off+576(dst); \
+ \
+ MOVL R12, 8*4+off+0(dst); \
+ MOVL R12, 5*4+off+64(dst); \
+ MOVL R12, 4*4+off+128(dst); \
+ MOVL R12, 15*4+off+192(dst); \
+ MOVL R12, 14*4+off+256(dst); \
+ MOVL R12, 3*4+off+320(dst); \
+ MOVL R12, 11*4+off+384(dst); \
+ MOVL R12, 10*4+off+448(dst); \
+ MOVL R12, 7*4+off+512(dst); \
+ MOVL R12, 1*4+off+576(dst); \
+ SHRQ $32, R12; \
+ MOVL R12, 12*4+off+0(dst); \
+ MOVL R12, 2*4+off+64(dst); \
+ MOVL R12, 11*4+off+128(dst); \
+ MOVL R12, 4*4+off+192(dst); \
+ MOVL R12, 0*4+off+256(dst); \
+ MOVL R12, 15*4+off+320(dst); \
+ MOVL R12, 10*4+off+384(dst); \
+ MOVL R12, 7*4+off+448(dst); \
+ MOVL R12, 5*4+off+512(dst); \
+ MOVL R12, 9*4+off+576(dst); \
+ \
+ MOVL R13, 9*4+off+0(dst); \
+ MOVL R13, 4*4+off+64(dst); \
+ MOVL R13, 8*4+off+128(dst); \
+ MOVL R13, 13*4+off+192(dst); \
+ MOVL R13, 3*4+off+256(dst); \
+ MOVL R13, 5*4+off+320(dst); \
+ MOVL R13, 7*4+off+384(dst); \
+ MOVL R13, 15*4+off+448(dst); \
+ MOVL R13, 11*4+off+512(dst); \
+ MOVL R13, 0*4+off+576(dst); \
+ SHRQ $32, R13; \
+ MOVL R13, 13*4+off+0(dst); \
+ MOVL R13, 10*4+off+64(dst); \
+ MOVL R13, 0*4+off+128(dst); \
+ MOVL R13, 3*4+off+192(dst); \
+ MOVL R13, 9*4+off+256(dst); \
+ MOVL R13, 6*4+off+320(dst); \
+ MOVL R13, 15*4+off+384(dst); \
+ MOVL R13, 4*4+off+448(dst); \
+ MOVL R13, 2*4+off+512(dst); \
+ MOVL R13, 12*4+off+576(dst); \
+ \
+ MOVL R14, 10*4+off+0(dst); \
+ MOVL R14, 12*4+off+64(dst); \
+ MOVL R14, 1*4+off+128(dst); \
+ MOVL R14, 6*4+off+192(dst); \
+ MOVL R14, 13*4+off+256(dst); \
+ MOVL R14, 4*4+off+320(dst); \
+ MOVL R14, 0*4+off+384(dst); \
+ MOVL R14, 2*4+off+448(dst); \
+ MOVL R14, 8*4+off+512(dst); \
+ MOVL R14, 14*4+off+576(dst); \
+ SHRQ $32, R14; \
+ MOVL R14, 14*4+off+0(dst); \
+ MOVL R14, 3*4+off+64(dst); \
+ MOVL R14, 7*4+off+128(dst); \
+ MOVL R14, 2*4+off+192(dst); \
+ MOVL R14, 15*4+off+256(dst); \
+ MOVL R14, 12*4+off+320(dst); \
+ MOVL R14, 6*4+off+384(dst); \
+ MOVL R14, 0*4+off+448(dst); \
+ MOVL R14, 9*4+off+512(dst); \
+ MOVL R14, 11*4+off+576(dst); \
+ \
+ MOVL R15, 11*4+off+0(dst); \
+ MOVL R15, 0*4+off+64(dst); \
+ MOVL R15, 12*4+off+128(dst); \
+ MOVL R15, 7*4+off+192(dst); \
+ MOVL R15, 8*4+off+256(dst); \
+ MOVL R15, 14*4+off+320(dst); \
+ MOVL R15, 2*4+off+384(dst); \
+ MOVL R15, 5*4+off+448(dst); \
+ MOVL R15, 1*4+off+512(dst); \
+ MOVL R15, 13*4+off+576(dst); \
+ SHRQ $32, R15; \
+ MOVL R15, 15*4+off+0(dst); \
+ MOVL R15, 6*4+off+64(dst); \
+ MOVL R15, 3*4+off+128(dst); \
+ MOVL R15, 11*4+off+192(dst); \
+ MOVL R15, 7*4+off+256(dst); \
+ MOVL R15, 10*4+off+320(dst); \
+ MOVL R15, 5*4+off+384(dst); \
+ MOVL R15, 9*4+off+448(dst); \
+ MOVL R15, 4*4+off+512(dst); \
+ MOVL R15, 8*4+off+576(dst)
+
+#define BLAKE2s_SSE2() \
+ PRECOMPUTE_MSG(SP, 16, SI, R8, R9, R10, R11, R12, R13, R14, R15); \
+ ROUND_SSE2(X4, X5, X6, X7, 16(SP), 32(SP), 48(SP), 64(SP), X8); \
+ ROUND_SSE2(X4, X5, X6, X7, 16+64(SP), 32+64(SP), 48+64(SP), 64+64(SP), X8); \
+ ROUND_SSE2(X4, X5, X6, X7, 16+128(SP), 32+128(SP), 48+128(SP), 64+128(SP), X8); \
+ ROUND_SSE2(X4, X5, X6, X7, 16+192(SP), 32+192(SP), 48+192(SP), 64+192(SP), X8); \
+ ROUND_SSE2(X4, X5, X6, X7, 16+256(SP), 32+256(SP), 48+256(SP), 64+256(SP), X8); \
+ ROUND_SSE2(X4, X5, X6, X7, 16+320(SP), 32+320(SP), 48+320(SP), 64+320(SP), X8); \
+ ROUND_SSE2(X4, X5, X6, X7, 16+384(SP), 32+384(SP), 48+384(SP), 64+384(SP), X8); \
+ ROUND_SSE2(X4, X5, X6, X7, 16+448(SP), 32+448(SP), 48+448(SP), 64+448(SP), X8); \
+ ROUND_SSE2(X4, X5, X6, X7, 16+512(SP), 32+512(SP), 48+512(SP), 64+512(SP), X8); \
+ ROUND_SSE2(X4, X5, X6, X7, 16+576(SP), 32+576(SP), 48+576(SP), 64+576(SP), X8)
+
+#define BLAKE2s_SSSE3() \
+ PRECOMPUTE_MSG(SP, 16, SI, R8, R9, R10, R11, R12, R13, R14, R15); \
+ ROUND_SSSE3(X4, X5, X6, X7, 16(SP), 32(SP), 48(SP), 64(SP), X8, X13, X14); \
+ ROUND_SSSE3(X4, X5, X6, X7, 16+64(SP), 32+64(SP), 48+64(SP), 64+64(SP), X8, X13, X14); \
+ ROUND_SSSE3(X4, X5, X6, X7, 16+128(SP), 32+128(SP), 48+128(SP), 64+128(SP), X8, X13, X14); \
+ ROUND_SSSE3(X4, X5, X6, X7, 16+192(SP), 32+192(SP), 48+192(SP), 64+192(SP), X8, X13, X14); \
+ ROUND_SSSE3(X4, X5, X6, X7, 16+256(SP), 32+256(SP), 48+256(SP), 64+256(SP), X8, X13, X14); \
+ ROUND_SSSE3(X4, X5, X6, X7, 16+320(SP), 32+320(SP), 48+320(SP), 64+320(SP), X8, X13, X14); \
+ ROUND_SSSE3(X4, X5, X6, X7, 16+384(SP), 32+384(SP), 48+384(SP), 64+384(SP), X8, X13, X14); \
+ ROUND_SSSE3(X4, X5, X6, X7, 16+448(SP), 32+448(SP), 48+448(SP), 64+448(SP), X8, X13, X14); \
+ ROUND_SSSE3(X4, X5, X6, X7, 16+512(SP), 32+512(SP), 48+512(SP), 64+512(SP), X8, X13, X14); \
+ ROUND_SSSE3(X4, X5, X6, X7, 16+576(SP), 32+576(SP), 48+576(SP), 64+576(SP), X8, X13, X14)
+
+#define BLAKE2s_SSE4() \
+ LOAD_MSG_SSE4(X8, X9, X10, X11, SI, 0, 2, 4, 6, 1, 3, 5, 7, 8, 10, 12, 14, 9, 11, 13, 15); \
+ ROUND_SSSE3(X4, X5, X6, X7, X8, X9, X10, X11, X8, X13, X14); \
+ LOAD_MSG_SSE4(X8, X9, X10, X11, SI, 14, 4, 9, 13, 10, 8, 15, 6, 1, 0, 11, 5, 12, 2, 7, 3); \
+ ROUND_SSSE3(X4, X5, X6, X7, X8, X9, X10, X11, X8, X13, X14); \
+ LOAD_MSG_SSE4(X8, X9, X10, X11, SI, 11, 12, 5, 15, 8, 0, 2, 13, 10, 3, 7, 9, 14, 6, 1, 4); \
+ ROUND_SSSE3(X4, X5, X6, X7, X8, X9, X10, X11, X8, X13, X14); \
+ LOAD_MSG_SSE4(X8, X9, X10, X11, SI, 7, 3, 13, 11, 9, 1, 12, 14, 2, 5, 4, 15, 6, 10, 0, 8); \
+ ROUND_SSSE3(X4, X5, X6, X7, X8, X9, X10, X11, X8, X13, X14); \
+ LOAD_MSG_SSE4(X8, X9, X10, X11, SI, 9, 5, 2, 10, 0, 7, 4, 15, 14, 11, 6, 3, 1, 12, 8, 13); \
+ ROUND_SSSE3(X4, X5, X6, X7, X8, X9, X10, X11, X8, X13, X14); \
+ LOAD_MSG_SSE4(X8, X9, X10, X11, SI, 2, 6, 0, 8, 12, 10, 11, 3, 4, 7, 15, 1, 13, 5, 14, 9); \
+ ROUND_SSSE3(X4, X5, X6, X7, X8, X9, X10, X11, X8, X13, X14); \
+ LOAD_MSG_SSE4(X8, X9, X10, X11, SI, 12, 1, 14, 4, 5, 15, 13, 10, 0, 6, 9, 8, 7, 3, 2, 11); \
+ ROUND_SSSE3(X4, X5, X6, X7, X8, X9, X10, X11, X8, X13, X14); \
+ LOAD_MSG_SSE4(X8, X9, X10, X11, SI, 13, 7, 12, 3, 11, 14, 1, 9, 5, 15, 8, 2, 0, 4, 6, 10); \
+ ROUND_SSSE3(X4, X5, X6, X7, X8, X9, X10, X11, X8, X13, X14); \
+ LOAD_MSG_SSE4(X8, X9, X10, X11, SI, 6, 14, 11, 0, 15, 9, 3, 8, 12, 13, 1, 10, 2, 7, 4, 5); \
+ ROUND_SSSE3(X4, X5, X6, X7, X8, X9, X10, X11, X8, X13, X14); \
+ LOAD_MSG_SSE4(X8, X9, X10, X11, SI, 10, 8, 7, 1, 2, 4, 6, 5, 15, 9, 3, 13, 11, 14, 12, 0); \
+ ROUND_SSSE3(X4, X5, X6, X7, X8, X9, X10, X11, X8, X13, X14)
+
+#define HASH_BLOCKS(h, c, flag, blocks_base, blocks_len, BLAKE2s_FUNC) \
+ MOVQ h, AX; \
+ MOVQ c, BX; \
+ MOVL flag, CX; \
+ MOVQ blocks_base, SI; \
+ MOVQ blocks_len, DX; \
+ \
+ MOVQ SP, BP; \
+ MOVQ SP, R9; \
+ ADDQ $15, R9; \
+ ANDQ $~15, R9; \
+ MOVQ R9, SP; \
+ \
+ MOVQ 0(BX), R9; \
+ MOVQ R9, 0(SP); \
+ XORQ R9, R9; \
+ MOVQ R9, 8(SP); \
+ MOVL CX, 8(SP); \
+ \
+ MOVOU 0(AX), X0; \
+ MOVOU 16(AX), X1; \
+ MOVOU iv0<>(SB), X2; \
+ MOVOU iv1<>(SB), X3 \
+ \
+ MOVOU counter<>(SB), X12; \
+ MOVOU rol16<>(SB), X13; \
+ MOVOU rol8<>(SB), X14; \
+ MOVO 0(SP), X15; \
+ \
+ loop: \
+ MOVO X0, X4; \
+ MOVO X1, X5; \
+ MOVO X2, X6; \
+ MOVO X3, X7; \
+ \
+ PADDQ X12, X15; \
+ PXOR X15, X7; \
+ \
+ BLAKE2s_FUNC(); \
+ \
+ PXOR X4, X0; \
+ PXOR X5, X1; \
+ PXOR X6, X0; \
+ PXOR X7, X1; \
+ \
+ LEAQ 64(SI), SI; \
+ SUBQ $64, DX; \
+ JNE loop; \
+ \
+ MOVO X15, 0(SP); \
+ MOVQ 0(SP), R9; \
+ MOVQ R9, 0(BX); \
+ \
+ MOVOU X0, 0(AX); \
+ MOVOU X1, 16(AX); \
+ \
+ MOVQ BP, SP
+
+// func hashBlocksSSE2(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte)
+TEXT ·hashBlocksSSE2(SB), 0, $672-48 // frame = 656 + 16 byte alignment
+ HASH_BLOCKS(h+0(FP), c+8(FP), flag+16(FP), blocks_base+24(FP), blocks_len+32(FP), BLAKE2s_SSE2)
+ RET
+
+// func hashBlocksSSSE3(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte)
+TEXT ·hashBlocksSSSE3(SB), 0, $672-48 // frame = 656 + 16 byte alignment
+ HASH_BLOCKS(h+0(FP), c+8(FP), flag+16(FP), blocks_base+24(FP), blocks_len+32(FP), BLAKE2s_SSSE3)
+ RET
+
+// func hashBlocksSSE4(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte)
+TEXT ·hashBlocksSSE4(SB), 0, $32-48 // frame = 16 + 16 byte alignment
+ HASH_BLOCKS(h+0(FP), c+8(FP), flag+16(FP), blocks_base+24(FP), blocks_len+32(FP), BLAKE2s_SSE4)
+ RET
diff --git a/vendor/golang.org/x/crypto/blake2s/blake2s_generic.go b/vendor/golang.org/x/crypto/blake2s/blake2s_generic.go
new file mode 100644
index 0000000000..f7e065378a
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2s/blake2s_generic.go
@@ -0,0 +1,174 @@
+// Copyright 2016 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 blake2s
+
+// the precomputed values for BLAKE2s
+// there are 10 16-byte arrays - one for each round
+// the entries are calculated from the sigma constants.
+var precomputed = [10][16]byte{
+ {0, 2, 4, 6, 1, 3, 5, 7, 8, 10, 12, 14, 9, 11, 13, 15},
+ {14, 4, 9, 13, 10, 8, 15, 6, 1, 0, 11, 5, 12, 2, 7, 3},
+ {11, 12, 5, 15, 8, 0, 2, 13, 10, 3, 7, 9, 14, 6, 1, 4},
+ {7, 3, 13, 11, 9, 1, 12, 14, 2, 5, 4, 15, 6, 10, 0, 8},
+ {9, 5, 2, 10, 0, 7, 4, 15, 14, 11, 6, 3, 1, 12, 8, 13},
+ {2, 6, 0, 8, 12, 10, 11, 3, 4, 7, 15, 1, 13, 5, 14, 9},
+ {12, 1, 14, 4, 5, 15, 13, 10, 0, 6, 9, 8, 7, 3, 2, 11},
+ {13, 7, 12, 3, 11, 14, 1, 9, 5, 15, 8, 2, 0, 4, 6, 10},
+ {6, 14, 11, 0, 15, 9, 3, 8, 12, 13, 1, 10, 2, 7, 4, 5},
+ {10, 8, 7, 1, 2, 4, 6, 5, 15, 9, 3, 13, 11, 14, 12, 0},
+}
+
+func hashBlocksGeneric(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte) {
+ var m [16]uint32
+ c0, c1 := c[0], c[1]
+
+ for i := 0; i < len(blocks); {
+ c0 += BlockSize
+ if c0 < BlockSize {
+ c1++
+ }
+
+ v0, v1, v2, v3, v4, v5, v6, v7 := h[0], h[1], h[2], h[3], h[4], h[5], h[6], h[7]
+ v8, v9, v10, v11, v12, v13, v14, v15 := iv[0], iv[1], iv[2], iv[3], iv[4], iv[5], iv[6], iv[7]
+ v12 ^= c0
+ v13 ^= c1
+ v14 ^= flag
+
+ for j := range m {
+ m[j] = uint32(blocks[i]) | uint32(blocks[i+1])<<8 | uint32(blocks[i+2])<<16 | uint32(blocks[i+3])<<24
+ i += 4
+ }
+
+ for k := range precomputed {
+ s := &(precomputed[k])
+
+ v0 += m[s[0]]
+ v0 += v4
+ v12 ^= v0
+ v12 = v12<<(32-16) | v12>>16
+ v8 += v12
+ v4 ^= v8
+ v4 = v4<<(32-12) | v4>>12
+ v1 += m[s[1]]
+ v1 += v5
+ v13 ^= v1
+ v13 = v13<<(32-16) | v13>>16
+ v9 += v13
+ v5 ^= v9
+ v5 = v5<<(32-12) | v5>>12
+ v2 += m[s[2]]
+ v2 += v6
+ v14 ^= v2
+ v14 = v14<<(32-16) | v14>>16
+ v10 += v14
+ v6 ^= v10
+ v6 = v6<<(32-12) | v6>>12
+ v3 += m[s[3]]
+ v3 += v7
+ v15 ^= v3
+ v15 = v15<<(32-16) | v15>>16
+ v11 += v15
+ v7 ^= v11
+ v7 = v7<<(32-12) | v7>>12
+
+ v0 += m[s[4]]
+ v0 += v4
+ v12 ^= v0
+ v12 = v12<<(32-8) | v12>>8
+ v8 += v12
+ v4 ^= v8
+ v4 = v4<<(32-7) | v4>>7
+ v1 += m[s[5]]
+ v1 += v5
+ v13 ^= v1
+ v13 = v13<<(32-8) | v13>>8
+ v9 += v13
+ v5 ^= v9
+ v5 = v5<<(32-7) | v5>>7
+ v2 += m[s[6]]
+ v2 += v6
+ v14 ^= v2
+ v14 = v14<<(32-8) | v14>>8
+ v10 += v14
+ v6 ^= v10
+ v6 = v6<<(32-7) | v6>>7
+ v3 += m[s[7]]
+ v3 += v7
+ v15 ^= v3
+ v15 = v15<<(32-8) | v15>>8
+ v11 += v15
+ v7 ^= v11
+ v7 = v7<<(32-7) | v7>>7
+
+ v0 += m[s[8]]
+ v0 += v5
+ v15 ^= v0
+ v15 = v15<<(32-16) | v15>>16
+ v10 += v15
+ v5 ^= v10
+ v5 = v5<<(32-12) | v5>>12
+ v1 += m[s[9]]
+ v1 += v6
+ v12 ^= v1
+ v12 = v12<<(32-16) | v12>>16
+ v11 += v12
+ v6 ^= v11
+ v6 = v6<<(32-12) | v6>>12
+ v2 += m[s[10]]
+ v2 += v7
+ v13 ^= v2
+ v13 = v13<<(32-16) | v13>>16
+ v8 += v13
+ v7 ^= v8
+ v7 = v7<<(32-12) | v7>>12
+ v3 += m[s[11]]
+ v3 += v4
+ v14 ^= v3
+ v14 = v14<<(32-16) | v14>>16
+ v9 += v14
+ v4 ^= v9
+ v4 = v4<<(32-12) | v4>>12
+
+ v0 += m[s[12]]
+ v0 += v5
+ v15 ^= v0
+ v15 = v15<<(32-8) | v15>>8
+ v10 += v15
+ v5 ^= v10
+ v5 = v5<<(32-7) | v5>>7
+ v1 += m[s[13]]
+ v1 += v6
+ v12 ^= v1
+ v12 = v12<<(32-8) | v12>>8
+ v11 += v12
+ v6 ^= v11
+ v6 = v6<<(32-7) | v6>>7
+ v2 += m[s[14]]
+ v2 += v7
+ v13 ^= v2
+ v13 = v13<<(32-8) | v13>>8
+ v8 += v13
+ v7 ^= v8
+ v7 = v7<<(32-7) | v7>>7
+ v3 += m[s[15]]
+ v3 += v4
+ v14 ^= v3
+ v14 = v14<<(32-8) | v14>>8
+ v9 += v14
+ v4 ^= v9
+ v4 = v4<<(32-7) | v4>>7
+ }
+
+ h[0] ^= v0 ^ v8
+ h[1] ^= v1 ^ v9
+ h[2] ^= v2 ^ v10
+ h[3] ^= v3 ^ v11
+ h[4] ^= v4 ^ v12
+ h[5] ^= v5 ^ v13
+ h[6] ^= v6 ^ v14
+ h[7] ^= v7 ^ v15
+ }
+ c[0], c[1] = c0, c1
+}
diff --git a/vendor/golang.org/x/crypto/blake2s/blake2s_ref.go b/vendor/golang.org/x/crypto/blake2s/blake2s_ref.go
new file mode 100644
index 0000000000..a311273454
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2s/blake2s_ref.go
@@ -0,0 +1,17 @@
+// Copyright 2016 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 !amd64,!386 gccgo appengine
+
+package blake2s
+
+var (
+ useSSE4 = false
+ useSSSE3 = false
+ useSSE2 = false
+)
+
+func hashBlocks(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte) {
+ hashBlocksGeneric(h, c, flag, blocks)
+}
diff --git a/vendor/golang.org/x/crypto/blake2s/blake2x.go b/vendor/golang.org/x/crypto/blake2s/blake2x.go
new file mode 100644
index 0000000000..828749ff01
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2s/blake2x.go
@@ -0,0 +1,178 @@
+// Copyright 2017 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 blake2s
+
+import (
+ "encoding/binary"
+ "errors"
+ "io"
+)
+
+// XOF defines the interface to hash functions that
+// support arbitrary-length output.
+type XOF interface {
+ // Write absorbs more data into the hash's state. It panics if called
+ // after Read.
+ io.Writer
+
+ // Read reads more output from the hash. It returns io.EOF if the limit
+ // has been reached.
+ io.Reader
+
+ // Clone returns a copy of the XOF in its current state.
+ Clone() XOF
+
+ // Reset resets the XOF to its initial state.
+ Reset()
+}
+
+// OutputLengthUnknown can be used as the size argument to NewXOF to indicate
+// the length of the output is not known in advance.
+const OutputLengthUnknown = 0
+
+// magicUnknownOutputLength is a magic value for the output size that indicates
+// an unknown number of output bytes.
+const magicUnknownOutputLength = 65535
+
+// maxOutputLength is the absolute maximum number of bytes to produce when the
+// number of output bytes is unknown.
+const maxOutputLength = (1 << 32) * 32
+
+// NewXOF creates a new variable-output-length hash. The hash either produce a
+// known number of bytes (1 <= size < 65535), or an unknown number of bytes
+// (size == OutputLengthUnknown). In the latter case, an absolute limit of
+// 128GiB applies.
+//
+// A non-nil key turns the hash into a MAC. The key must between
+// zero and 32 bytes long.
+func NewXOF(size uint16, key []byte) (XOF, error) {
+ if len(key) > Size {
+ return nil, errKeySize
+ }
+ if size == magicUnknownOutputLength {
+ // 2^16-1 indicates an unknown number of bytes and thus isn't a
+ // valid length.
+ return nil, errors.New("blake2s: XOF length too large")
+ }
+ if size == OutputLengthUnknown {
+ size = magicUnknownOutputLength
+ }
+ x := &xof{
+ d: digest{
+ size: Size,
+ keyLen: len(key),
+ },
+ length: size,
+ }
+ copy(x.d.key[:], key)
+ x.Reset()
+ return x, nil
+}
+
+type xof struct {
+ d digest
+ length uint16
+ remaining uint64
+ cfg, root, block [Size]byte
+ offset int
+ nodeOffset uint32
+ readMode bool
+}
+
+func (x *xof) Write(p []byte) (n int, err error) {
+ if x.readMode {
+ panic("blake2s: write to XOF after read")
+ }
+ return x.d.Write(p)
+}
+
+func (x *xof) Clone() XOF {
+ clone := *x
+ return &clone
+}
+
+func (x *xof) Reset() {
+ x.cfg[0] = byte(Size)
+ binary.LittleEndian.PutUint32(x.cfg[4:], uint32(Size)) // leaf length
+ binary.LittleEndian.PutUint16(x.cfg[12:], x.length) // XOF length
+ x.cfg[15] = byte(Size) // inner hash size
+
+ x.d.Reset()
+ x.d.h[3] ^= uint32(x.length)
+
+ x.remaining = uint64(x.length)
+ if x.remaining == magicUnknownOutputLength {
+ x.remaining = maxOutputLength
+ }
+ x.offset, x.nodeOffset = 0, 0
+ x.readMode = false
+}
+
+func (x *xof) Read(p []byte) (n int, err error) {
+ if !x.readMode {
+ x.d.finalize(&x.root)
+ x.readMode = true
+ }
+
+ if x.remaining == 0 {
+ return 0, io.EOF
+ }
+
+ n = len(p)
+ if uint64(n) > x.remaining {
+ n = int(x.remaining)
+ p = p[:n]
+ }
+
+ if x.offset > 0 {
+ blockRemaining := Size - x.offset
+ if n < blockRemaining {
+ x.offset += copy(p, x.block[x.offset:])
+ x.remaining -= uint64(n)
+ return
+ }
+ copy(p, x.block[x.offset:])
+ p = p[blockRemaining:]
+ x.offset = 0
+ x.remaining -= uint64(blockRemaining)
+ }
+
+ for len(p) >= Size {
+ binary.LittleEndian.PutUint32(x.cfg[8:], x.nodeOffset)
+ x.nodeOffset++
+
+ x.d.initConfig(&x.cfg)
+ x.d.Write(x.root[:])
+ x.d.finalize(&x.block)
+
+ copy(p, x.block[:])
+ p = p[Size:]
+ x.remaining -= uint64(Size)
+ }
+
+ if todo := len(p); todo > 0 {
+ if x.remaining < uint64(Size) {
+ x.cfg[0] = byte(x.remaining)
+ }
+ binary.LittleEndian.PutUint32(x.cfg[8:], x.nodeOffset)
+ x.nodeOffset++
+
+ x.d.initConfig(&x.cfg)
+ x.d.Write(x.root[:])
+ x.d.finalize(&x.block)
+
+ x.offset = copy(p, x.block[:todo])
+ x.remaining -= uint64(todo)
+ }
+
+ return
+}
+
+func (d *digest) initConfig(cfg *[Size]byte) {
+ d.offset, d.c[0], d.c[1] = 0, 0, 0
+ for i := range d.h {
+ d.h[i] = iv[i] ^ binary.LittleEndian.Uint32(cfg[i*4:])
+ }
+}
diff --git a/vendor/golang.org/x/crypto/blake2s/register.go b/vendor/golang.org/x/crypto/blake2s/register.go
new file mode 100644
index 0000000000..d277459a1c
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2s/register.go
@@ -0,0 +1,21 @@
+// Copyright 2017 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 go1.9
+
+package blake2s
+
+import (
+ "crypto"
+ "hash"
+)
+
+func init() {
+ newHash256 := func() hash.Hash {
+ h, _ := New256(nil)
+ return h
+ }
+
+ crypto.RegisterHash(crypto.BLAKE2s_256, newHash256)
+}
diff --git a/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305.go b/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305.go
new file mode 100644
index 0000000000..bbb86efef5
--- /dev/null
+++ b/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305.go
@@ -0,0 +1,101 @@
+// Copyright 2016 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 chacha20poly1305 implements the ChaCha20-Poly1305 AEAD as specified in RFC 7539,
+// and its extended nonce variant XChaCha20-Poly1305.
+package chacha20poly1305 // import "golang.org/x/crypto/chacha20poly1305"
+
+import (
+ "crypto/cipher"
+ "encoding/binary"
+ "errors"
+)
+
+const (
+ // KeySize is the size of the key used by this AEAD, in bytes.
+ KeySize = 32
+
+ // NonceSize is the size of the nonce used with the standard variant of this
+ // AEAD, in bytes.
+ //
+ // Note that this is too short to be safely generated at random if the same
+ // key is reused more than 2³² times.
+ NonceSize = 12
+
+ // NonceSizeX is the size of the nonce used with the XChaCha20-Poly1305
+ // variant of this AEAD, in bytes.
+ NonceSizeX = 24
+)
+
+type chacha20poly1305 struct {
+ key [8]uint32
+}
+
+// New returns a ChaCha20-Poly1305 AEAD that uses the given 256-bit key.
+func New(key []byte) (cipher.AEAD, error) {
+ if len(key) != KeySize {
+ return nil, errors.New("chacha20poly1305: bad key length")
+ }
+ ret := new(chacha20poly1305)
+ ret.key[0] = binary.LittleEndian.Uint32(key[0:4])
+ ret.key[1] = binary.LittleEndian.Uint32(key[4:8])
+ ret.key[2] = binary.LittleEndian.Uint32(key[8:12])
+ ret.key[3] = binary.LittleEndian.Uint32(key[12:16])
+ ret.key[4] = binary.LittleEndian.Uint32(key[16:20])
+ ret.key[5] = binary.LittleEndian.Uint32(key[20:24])
+ ret.key[6] = binary.LittleEndian.Uint32(key[24:28])
+ ret.key[7] = binary.LittleEndian.Uint32(key[28:32])
+ return ret, nil
+}
+
+func (c *chacha20poly1305) NonceSize() int {
+ return NonceSize
+}
+
+func (c *chacha20poly1305) Overhead() int {
+ return 16
+}
+
+func (c *chacha20poly1305) Seal(dst, nonce, plaintext, additionalData []byte) []byte {
+ if len(nonce) != NonceSize {
+ panic("chacha20poly1305: bad nonce length passed to Seal")
+ }
+
+ if uint64(len(plaintext)) > (1<<38)-64 {
+ panic("chacha20poly1305: plaintext too large")
+ }
+
+ return c.seal(dst, nonce, plaintext, additionalData)
+}
+
+var errOpen = errors.New("chacha20poly1305: message authentication failed")
+
+func (c *chacha20poly1305) Open(dst, nonce, ciphertext, additionalData []byte) ([]byte, error) {
+ if len(nonce) != NonceSize {
+ panic("chacha20poly1305: bad nonce length passed to Open")
+ }
+ if len(ciphertext) < 16 {
+ return nil, errOpen
+ }
+ if uint64(len(ciphertext)) > (1<<38)-48 {
+ panic("chacha20poly1305: ciphertext too large")
+ }
+
+ return c.open(dst, nonce, ciphertext, additionalData)
+}
+
+// sliceForAppend takes a slice and a requested number of bytes. It returns a
+// slice with the contents of the given slice followed by that many bytes and a
+// second slice that aliases into it and contains only the extra bytes. If the
+// original slice has sufficient capacity then no allocation is performed.
+func sliceForAppend(in []byte, n int) (head, tail []byte) {
+ if total := len(in) + n; cap(in) >= total {
+ head = in[:total]
+ } else {
+ head = make([]byte, total)
+ copy(head, in)
+ }
+ tail = head[len(in):]
+ return
+}
diff --git a/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_amd64.go b/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_amd64.go
new file mode 100644
index 0000000000..2aa4fd89db
--- /dev/null
+++ b/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_amd64.go
@@ -0,0 +1,86 @@
+// Copyright 2016 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 go1.7,amd64,!gccgo,!appengine
+
+package chacha20poly1305
+
+import (
+ "encoding/binary"
+
+ "golang.org/x/crypto/internal/subtle"
+ "golang.org/x/sys/cpu"
+)
+
+//go:noescape
+func chacha20Poly1305Open(dst []byte, key []uint32, src, ad []byte) bool
+
+//go:noescape
+func chacha20Poly1305Seal(dst []byte, key []uint32, src, ad []byte)
+
+var (
+ useAVX2 = cpu.X86.HasAVX2 && cpu.X86.HasBMI2
+)
+
+// setupState writes a ChaCha20 input matrix to state. See
+// https://tools.ietf.org/html/rfc7539#section-2.3.
+func setupState(state *[16]uint32, key *[8]uint32, nonce []byte) {
+ state[0] = 0x61707865
+ state[1] = 0x3320646e
+ state[2] = 0x79622d32
+ state[3] = 0x6b206574
+
+ state[4] = key[0]
+ state[5] = key[1]
+ state[6] = key[2]
+ state[7] = key[3]
+ state[8] = key[4]
+ state[9] = key[5]
+ state[10] = key[6]
+ state[11] = key[7]
+
+ state[12] = 0
+ state[13] = binary.LittleEndian.Uint32(nonce[:4])
+ state[14] = binary.LittleEndian.Uint32(nonce[4:8])
+ state[15] = binary.LittleEndian.Uint32(nonce[8:12])
+}
+
+func (c *chacha20poly1305) seal(dst, nonce, plaintext, additionalData []byte) []byte {
+ if !cpu.X86.HasSSSE3 {
+ return c.sealGeneric(dst, nonce, plaintext, additionalData)
+ }
+
+ var state [16]uint32
+ setupState(&state, &c.key, nonce)
+
+ ret, out := sliceForAppend(dst, len(plaintext)+16)
+ if subtle.InexactOverlap(out, plaintext) {
+ panic("chacha20poly1305: invalid buffer overlap")
+ }
+ chacha20Poly1305Seal(out[:], state[:], plaintext, additionalData)
+ return ret
+}
+
+func (c *chacha20poly1305) open(dst, nonce, ciphertext, additionalData []byte) ([]byte, error) {
+ if !cpu.X86.HasSSSE3 {
+ return c.openGeneric(dst, nonce, ciphertext, additionalData)
+ }
+
+ var state [16]uint32
+ setupState(&state, &c.key, nonce)
+
+ ciphertext = ciphertext[:len(ciphertext)-16]
+ ret, out := sliceForAppend(dst, len(ciphertext))
+ if subtle.InexactOverlap(out, ciphertext) {
+ panic("chacha20poly1305: invalid buffer overlap")
+ }
+ if !chacha20Poly1305Open(out, state[:], ciphertext, additionalData) {
+ for i := range out {
+ out[i] = 0
+ }
+ return nil, errOpen
+ }
+
+ return ret, nil
+}
diff --git a/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_amd64.s b/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_amd64.s
new file mode 100644
index 0000000000..af76bbcc93
--- /dev/null
+++ b/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_amd64.s
@@ -0,0 +1,2695 @@
+// Copyright 2016 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.
+
+// This file was originally from https://golang.org/cl/24717 by Vlad Krasnov of CloudFlare.
+
+// +build go1.7,amd64,!gccgo,!appengine
+
+#include "textflag.h"
+// General register allocation
+#define oup DI
+#define inp SI
+#define inl BX
+#define adp CX // free to reuse, after we hash the additional data
+#define keyp R8 // free to reuse, when we copy the key to stack
+#define itr2 R9 // general iterator
+#define itr1 CX // general iterator
+#define acc0 R10
+#define acc1 R11
+#define acc2 R12
+#define t0 R13
+#define t1 R14
+#define t2 R15
+#define t3 R8
+// Register and stack allocation for the SSE code
+#define rStore (0*16)(BP)
+#define sStore (1*16)(BP)
+#define state1Store (2*16)(BP)
+#define state2Store (3*16)(BP)
+#define tmpStore (4*16)(BP)
+#define ctr0Store (5*16)(BP)
+#define ctr1Store (6*16)(BP)
+#define ctr2Store (7*16)(BP)
+#define ctr3Store (8*16)(BP)
+#define A0 X0
+#define A1 X1
+#define A2 X2
+#define B0 X3
+#define B1 X4
+#define B2 X5
+#define C0 X6
+#define C1 X7
+#define C2 X8
+#define D0 X9
+#define D1 X10
+#define D2 X11
+#define T0 X12
+#define T1 X13
+#define T2 X14
+#define T3 X15
+#define A3 T0
+#define B3 T1
+#define C3 T2
+#define D3 T3
+// Register and stack allocation for the AVX2 code
+#define rsStoreAVX2 (0*32)(BP)
+#define state1StoreAVX2 (1*32)(BP)
+#define state2StoreAVX2 (2*32)(BP)
+#define ctr0StoreAVX2 (3*32)(BP)
+#define ctr1StoreAVX2 (4*32)(BP)
+#define ctr2StoreAVX2 (5*32)(BP)
+#define ctr3StoreAVX2 (6*32)(BP)
+#define tmpStoreAVX2 (7*32)(BP) // 256 bytes on stack
+#define AA0 Y0
+#define AA1 Y5
+#define AA2 Y6
+#define AA3 Y7
+#define BB0 Y14
+#define BB1 Y9
+#define BB2 Y10
+#define BB3 Y11
+#define CC0 Y12
+#define CC1 Y13
+#define CC2 Y8
+#define CC3 Y15
+#define DD0 Y4
+#define DD1 Y1
+#define DD2 Y2
+#define DD3 Y3
+#define TT0 DD3
+#define TT1 AA3
+#define TT2 BB3
+#define TT3 CC3
+// ChaCha20 constants
+DATA ·chacha20Constants<>+0x00(SB)/4, $0x61707865
+DATA ·chacha20Constants<>+0x04(SB)/4, $0x3320646e
+DATA ·chacha20Constants<>+0x08(SB)/4, $0x79622d32
+DATA ·chacha20Constants<>+0x0c(SB)/4, $0x6b206574
+DATA ·chacha20Constants<>+0x10(SB)/4, $0x61707865
+DATA ·chacha20Constants<>+0x14(SB)/4, $0x3320646e
+DATA ·chacha20Constants<>+0x18(SB)/4, $0x79622d32
+DATA ·chacha20Constants<>+0x1c(SB)/4, $0x6b206574
+// <<< 16 with PSHUFB
+DATA ·rol16<>+0x00(SB)/8, $0x0504070601000302
+DATA ·rol16<>+0x08(SB)/8, $0x0D0C0F0E09080B0A
+DATA ·rol16<>+0x10(SB)/8, $0x0504070601000302
+DATA ·rol16<>+0x18(SB)/8, $0x0D0C0F0E09080B0A
+// <<< 8 with PSHUFB
+DATA ·rol8<>+0x00(SB)/8, $0x0605040702010003
+DATA ·rol8<>+0x08(SB)/8, $0x0E0D0C0F0A09080B
+DATA ·rol8<>+0x10(SB)/8, $0x0605040702010003
+DATA ·rol8<>+0x18(SB)/8, $0x0E0D0C0F0A09080B
+
+DATA ·avx2InitMask<>+0x00(SB)/8, $0x0
+DATA ·avx2InitMask<>+0x08(SB)/8, $0x0
+DATA ·avx2InitMask<>+0x10(SB)/8, $0x1
+DATA ·avx2InitMask<>+0x18(SB)/8, $0x0
+
+DATA ·avx2IncMask<>+0x00(SB)/8, $0x2
+DATA ·avx2IncMask<>+0x08(SB)/8, $0x0
+DATA ·avx2IncMask<>+0x10(SB)/8, $0x2
+DATA ·avx2IncMask<>+0x18(SB)/8, $0x0
+// Poly1305 key clamp
+DATA ·polyClampMask<>+0x00(SB)/8, $0x0FFFFFFC0FFFFFFF
+DATA ·polyClampMask<>+0x08(SB)/8, $0x0FFFFFFC0FFFFFFC
+DATA ·polyClampMask<>+0x10(SB)/8, $0xFFFFFFFFFFFFFFFF
+DATA ·polyClampMask<>+0x18(SB)/8, $0xFFFFFFFFFFFFFFFF
+
+DATA ·sseIncMask<>+0x00(SB)/8, $0x1
+DATA ·sseIncMask<>+0x08(SB)/8, $0x0
+// To load/store the last < 16 bytes in a buffer
+DATA ·andMask<>+0x00(SB)/8, $0x00000000000000ff
+DATA ·andMask<>+0x08(SB)/8, $0x0000000000000000
+DATA ·andMask<>+0x10(SB)/8, $0x000000000000ffff
+DATA ·andMask<>+0x18(SB)/8, $0x0000000000000000
+DATA ·andMask<>+0x20(SB)/8, $0x0000000000ffffff
+DATA ·andMask<>+0x28(SB)/8, $0x0000000000000000
+DATA ·andMask<>+0x30(SB)/8, $0x00000000ffffffff
+DATA ·andMask<>+0x38(SB)/8, $0x0000000000000000
+DATA ·andMask<>+0x40(SB)/8, $0x000000ffffffffff
+DATA ·andMask<>+0x48(SB)/8, $0x0000000000000000
+DATA ·andMask<>+0x50(SB)/8, $0x0000ffffffffffff
+DATA ·andMask<>+0x58(SB)/8, $0x0000000000000000
+DATA ·andMask<>+0x60(SB)/8, $0x00ffffffffffffff
+DATA ·andMask<>+0x68(SB)/8, $0x0000000000000000
+DATA ·andMask<>+0x70(SB)/8, $0xffffffffffffffff
+DATA ·andMask<>+0x78(SB)/8, $0x0000000000000000
+DATA ·andMask<>+0x80(SB)/8, $0xffffffffffffffff
+DATA ·andMask<>+0x88(SB)/8, $0x00000000000000ff
+DATA ·andMask<>+0x90(SB)/8, $0xffffffffffffffff
+DATA ·andMask<>+0x98(SB)/8, $0x000000000000ffff
+DATA ·andMask<>+0xa0(SB)/8, $0xffffffffffffffff
+DATA ·andMask<>+0xa8(SB)/8, $0x0000000000ffffff
+DATA ·andMask<>+0xb0(SB)/8, $0xffffffffffffffff
+DATA ·andMask<>+0xb8(SB)/8, $0x00000000ffffffff
+DATA ·andMask<>+0xc0(SB)/8, $0xffffffffffffffff
+DATA ·andMask<>+0xc8(SB)/8, $0x000000ffffffffff
+DATA ·andMask<>+0xd0(SB)/8, $0xffffffffffffffff
+DATA ·andMask<>+0xd8(SB)/8, $0x0000ffffffffffff
+DATA ·andMask<>+0xe0(SB)/8, $0xffffffffffffffff
+DATA ·andMask<>+0xe8(SB)/8, $0x00ffffffffffffff
+
+GLOBL ·chacha20Constants<>(SB), (NOPTR+RODATA), $32
+GLOBL ·rol16<>(SB), (NOPTR+RODATA), $32
+GLOBL ·rol8<>(SB), (NOPTR+RODATA), $32
+GLOBL ·sseIncMask<>(SB), (NOPTR+RODATA), $16
+GLOBL ·avx2IncMask<>(SB), (NOPTR+RODATA), $32
+GLOBL ·avx2InitMask<>(SB), (NOPTR+RODATA), $32
+GLOBL ·polyClampMask<>(SB), (NOPTR+RODATA), $32
+GLOBL ·andMask<>(SB), (NOPTR+RODATA), $240
+// No PALIGNR in Go ASM yet (but VPALIGNR is present).
+#define shiftB0Left BYTE $0x66; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xdb; BYTE $0x04 // PALIGNR $4, X3, X3
+#define shiftB1Left BYTE $0x66; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xe4; BYTE $0x04 // PALIGNR $4, X4, X4
+#define shiftB2Left BYTE $0x66; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xed; BYTE $0x04 // PALIGNR $4, X5, X5
+#define shiftB3Left BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xed; BYTE $0x04 // PALIGNR $4, X13, X13
+#define shiftC0Left BYTE $0x66; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xf6; BYTE $0x08 // PALIGNR $8, X6, X6
+#define shiftC1Left BYTE $0x66; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xff; BYTE $0x08 // PALIGNR $8, X7, X7
+#define shiftC2Left BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xc0; BYTE $0x08 // PALIGNR $8, X8, X8
+#define shiftC3Left BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xf6; BYTE $0x08 // PALIGNR $8, X14, X14
+#define shiftD0Left BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xc9; BYTE $0x0c // PALIGNR $12, X9, X9
+#define shiftD1Left BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xd2; BYTE $0x0c // PALIGNR $12, X10, X10
+#define shiftD2Left BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xdb; BYTE $0x0c // PALIGNR $12, X11, X11
+#define shiftD3Left BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xff; BYTE $0x0c // PALIGNR $12, X15, X15
+#define shiftB0Right BYTE $0x66; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xdb; BYTE $0x0c // PALIGNR $12, X3, X3
+#define shiftB1Right BYTE $0x66; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xe4; BYTE $0x0c // PALIGNR $12, X4, X4
+#define shiftB2Right BYTE $0x66; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xed; BYTE $0x0c // PALIGNR $12, X5, X5
+#define shiftB3Right BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xed; BYTE $0x0c // PALIGNR $12, X13, X13
+#define shiftC0Right shiftC0Left
+#define shiftC1Right shiftC1Left
+#define shiftC2Right shiftC2Left
+#define shiftC3Right shiftC3Left
+#define shiftD0Right BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xc9; BYTE $0x04 // PALIGNR $4, X9, X9
+#define shiftD1Right BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xd2; BYTE $0x04 // PALIGNR $4, X10, X10
+#define shiftD2Right BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xdb; BYTE $0x04 // PALIGNR $4, X11, X11
+#define shiftD3Right BYTE $0x66; BYTE $0x45; BYTE $0x0f; BYTE $0x3a; BYTE $0x0f; BYTE $0xff; BYTE $0x04 // PALIGNR $4, X15, X15
+// Some macros
+#define chachaQR(A, B, C, D, T) \
+ PADDD B, A; PXOR A, D; PSHUFB ·rol16<>(SB), D \
+ PADDD D, C; PXOR C, B; MOVO B, T; PSLLL $12, T; PSRLL $20, B; PXOR T, B \
+ PADDD B, A; PXOR A, D; PSHUFB ·rol8<>(SB), D \
+ PADDD D, C; PXOR C, B; MOVO B, T; PSLLL $7, T; PSRLL $25, B; PXOR T, B
+
+#define chachaQR_AVX2(A, B, C, D, T) \
+ VPADDD B, A, A; VPXOR A, D, D; VPSHUFB ·rol16<>(SB), D, D \
+ VPADDD D, C, C; VPXOR C, B, B; VPSLLD $12, B, T; VPSRLD $20, B, B; VPXOR T, B, B \
+ VPADDD B, A, A; VPXOR A, D, D; VPSHUFB ·rol8<>(SB), D, D \
+ VPADDD D, C, C; VPXOR C, B, B; VPSLLD $7, B, T; VPSRLD $25, B, B; VPXOR T, B, B
+
+#define polyAdd(S) ADDQ S, acc0; ADCQ 8+S, acc1; ADCQ $1, acc2
+#define polyMulStage1 MOVQ (0*8)(BP), AX; MOVQ AX, t2; MULQ acc0; MOVQ AX, t0; MOVQ DX, t1; MOVQ (0*8)(BP), AX; MULQ acc1; IMULQ acc2, t2; ADDQ AX, t1; ADCQ DX, t2
+#define polyMulStage2 MOVQ (1*8)(BP), AX; MOVQ AX, t3; MULQ acc0; ADDQ AX, t1; ADCQ $0, DX; MOVQ DX, acc0; MOVQ (1*8)(BP), AX; MULQ acc1; ADDQ AX, t2; ADCQ $0, DX
+#define polyMulStage3 IMULQ acc2, t3; ADDQ acc0, t2; ADCQ DX, t3
+#define polyMulReduceStage MOVQ t0, acc0; MOVQ t1, acc1; MOVQ t2, acc2; ANDQ $3, acc2; MOVQ t2, t0; ANDQ $-4, t0; MOVQ t3, t1; SHRQ $2, t2:t3; SHRQ $2, t3; ADDQ t0, acc0; ADCQ t1, acc1; ADCQ $0, acc2; ADDQ t2, acc0; ADCQ t3, acc1; ADCQ $0, acc2
+
+#define polyMulStage1_AVX2 MOVQ (0*8)(BP), DX; MOVQ DX, t2; MULXQ acc0, t0, t1; IMULQ acc2, t2; MULXQ acc1, AX, DX; ADDQ AX, t1; ADCQ DX, t2
+#define polyMulStage2_AVX2 MOVQ (1*8)(BP), DX; MULXQ acc0, acc0, AX; ADDQ acc0, t1; MULXQ acc1, acc1, t3; ADCQ acc1, t2; ADCQ $0, t3
+#define polyMulStage3_AVX2 IMULQ acc2, DX; ADDQ AX, t2; ADCQ DX, t3
+
+#define polyMul polyMulStage1; polyMulStage2; polyMulStage3; polyMulReduceStage
+#define polyMulAVX2 polyMulStage1_AVX2; polyMulStage2_AVX2; polyMulStage3_AVX2; polyMulReduceStage
+// ----------------------------------------------------------------------------
+TEXT polyHashADInternal<>(SB), NOSPLIT, $0
+ // adp points to beginning of additional data
+ // itr2 holds ad length
+ XORQ acc0, acc0
+ XORQ acc1, acc1
+ XORQ acc2, acc2
+ CMPQ itr2, $13
+ JNE hashADLoop
+
+openFastTLSAD:
+ // Special treatment for the TLS case of 13 bytes
+ MOVQ (adp), acc0
+ MOVQ 5(adp), acc1
+ SHRQ $24, acc1
+ MOVQ $1, acc2
+ polyMul
+ RET
+
+hashADLoop:
+ // Hash in 16 byte chunks
+ CMPQ itr2, $16
+ JB hashADTail
+ polyAdd(0(adp))
+ LEAQ (1*16)(adp), adp
+ SUBQ $16, itr2
+ polyMul
+ JMP hashADLoop
+
+hashADTail:
+ CMPQ itr2, $0
+ JE hashADDone
+
+ // Hash last < 16 byte tail
+ XORQ t0, t0
+ XORQ t1, t1
+ XORQ t2, t2
+ ADDQ itr2, adp
+
+hashADTailLoop:
+ SHLQ $8, t1:t0
+ SHLQ $8, t0
+ MOVB -1(adp), t2
+ XORQ t2, t0
+ DECQ adp
+ DECQ itr2
+ JNE hashADTailLoop
+
+hashADTailFinish:
+ ADDQ t0, acc0; ADCQ t1, acc1; ADCQ $1, acc2
+ polyMul
+
+ // Finished AD
+hashADDone:
+ RET
+
+// ----------------------------------------------------------------------------
+// func chacha20Poly1305Open(dst, key, src, ad []byte) bool
+TEXT ·chacha20Poly1305Open(SB), 0, $288-97
+ // For aligned stack access
+ MOVQ SP, BP
+ ADDQ $32, BP
+ ANDQ $-32, BP
+ MOVQ dst+0(FP), oup
+ MOVQ key+24(FP), keyp
+ MOVQ src+48(FP), inp
+ MOVQ src_len+56(FP), inl
+ MOVQ ad+72(FP), adp
+
+ // Check for AVX2 support
+ CMPB ·useAVX2(SB), $1
+ JE chacha20Poly1305Open_AVX2
+
+ // Special optimization, for very short buffers
+ CMPQ inl, $128
+ JBE openSSE128 // About 16% faster
+
+ // For long buffers, prepare the poly key first
+ MOVOU ·chacha20Constants<>(SB), A0
+ MOVOU (1*16)(keyp), B0
+ MOVOU (2*16)(keyp), C0
+ MOVOU (3*16)(keyp), D0
+ MOVO D0, T1
+
+ // Store state on stack for future use
+ MOVO B0, state1Store
+ MOVO C0, state2Store
+ MOVO D0, ctr3Store
+ MOVQ $10, itr2
+
+openSSEPreparePolyKey:
+ chachaQR(A0, B0, C0, D0, T0)
+ shiftB0Left; shiftC0Left; shiftD0Left
+ chachaQR(A0, B0, C0, D0, T0)
+ shiftB0Right; shiftC0Right; shiftD0Right
+ DECQ itr2
+ JNE openSSEPreparePolyKey
+
+ // A0|B0 hold the Poly1305 32-byte key, C0,D0 can be discarded
+ PADDL ·chacha20Constants<>(SB), A0; PADDL state1Store, B0
+
+ // Clamp and store the key
+ PAND ·polyClampMask<>(SB), A0
+ MOVO A0, rStore; MOVO B0, sStore
+
+ // Hash AAD
+ MOVQ ad_len+80(FP), itr2
+ CALL polyHashADInternal<>(SB)
+
+openSSEMainLoop:
+ CMPQ inl, $256
+ JB openSSEMainLoopDone
+
+ // Load state, increment counter blocks
+ MOVO ·chacha20Constants<>(SB), A0; MOVO state1Store, B0; MOVO state2Store, C0; MOVO ctr3Store, D0; PADDL ·sseIncMask<>(SB), D0
+ MOVO A0, A1; MOVO B0, B1; MOVO C0, C1; MOVO D0, D1; PADDL ·sseIncMask<>(SB), D1
+ MOVO A1, A2; MOVO B1, B2; MOVO C1, C2; MOVO D1, D2; PADDL ·sseIncMask<>(SB), D2
+ MOVO A2, A3; MOVO B2, B3; MOVO C2, C3; MOVO D2, D3; PADDL ·sseIncMask<>(SB), D3
+
+ // Store counters
+ MOVO D0, ctr0Store; MOVO D1, ctr1Store; MOVO D2, ctr2Store; MOVO D3, ctr3Store
+
+ // There are 10 ChaCha20 iterations of 2QR each, so for 6 iterations we hash 2 blocks, and for the remaining 4 only 1 block - for a total of 16
+ MOVQ $4, itr1
+ MOVQ inp, itr2
+
+openSSEInternalLoop:
+ MOVO C3, tmpStore
+ chachaQR(A0, B0, C0, D0, C3); chachaQR(A1, B1, C1, D1, C3); chachaQR(A2, B2, C2, D2, C3)
+ MOVO tmpStore, C3
+ MOVO C1, tmpStore
+ chachaQR(A3, B3, C3, D3, C1)
+ MOVO tmpStore, C1
+ polyAdd(0(itr2))
+ shiftB0Left; shiftB1Left; shiftB2Left; shiftB3Left
+ shiftC0Left; shiftC1Left; shiftC2Left; shiftC3Left
+ shiftD0Left; shiftD1Left; shiftD2Left; shiftD3Left
+ polyMulStage1
+ polyMulStage2
+ LEAQ (2*8)(itr2), itr2
+ MOVO C3, tmpStore
+ chachaQR(A0, B0, C0, D0, C3); chachaQR(A1, B1, C1, D1, C3); chachaQR(A2, B2, C2, D2, C3)
+ MOVO tmpStore, C3
+ MOVO C1, tmpStore
+ polyMulStage3
+ chachaQR(A3, B3, C3, D3, C1)
+ MOVO tmpStore, C1
+ polyMulReduceStage
+ shiftB0Right; shiftB1Right; shiftB2Right; shiftB3Right
+ shiftC0Right; shiftC1Right; shiftC2Right; shiftC3Right
+ shiftD0Right; shiftD1Right; shiftD2Right; shiftD3Right
+ DECQ itr1
+ JGE openSSEInternalLoop
+
+ polyAdd(0(itr2))
+ polyMul
+ LEAQ (2*8)(itr2), itr2
+
+ CMPQ itr1, $-6
+ JG openSSEInternalLoop
+
+ // Add in the state
+ PADDD ·chacha20Constants<>(SB), A0; PADDD ·chacha20Constants<>(SB), A1; PADDD ·chacha20Constants<>(SB), A2; PADDD ·chacha20Constants<>(SB), A3
+ PADDD state1Store, B0; PADDD state1Store, B1; PADDD state1Store, B2; PADDD state1Store, B3
+ PADDD state2Store, C0; PADDD state2Store, C1; PADDD state2Store, C2; PADDD state2Store, C3
+ PADDD ctr0Store, D0; PADDD ctr1Store, D1; PADDD ctr2Store, D2; PADDD ctr3Store, D3
+
+ // Load - xor - store
+ MOVO D3, tmpStore
+ MOVOU (0*16)(inp), D3; PXOR D3, A0; MOVOU A0, (0*16)(oup)
+ MOVOU (1*16)(inp), D3; PXOR D3, B0; MOVOU B0, (1*16)(oup)
+ MOVOU (2*16)(inp), D3; PXOR D3, C0; MOVOU C0, (2*16)(oup)
+ MOVOU (3*16)(inp), D3; PXOR D3, D0; MOVOU D0, (3*16)(oup)
+ MOVOU (4*16)(inp), D0; PXOR D0, A1; MOVOU A1, (4*16)(oup)
+ MOVOU (5*16)(inp), D0; PXOR D0, B1; MOVOU B1, (5*16)(oup)
+ MOVOU (6*16)(inp), D0; PXOR D0, C1; MOVOU C1, (6*16)(oup)
+ MOVOU (7*16)(inp), D0; PXOR D0, D1; MOVOU D1, (7*16)(oup)
+ MOVOU (8*16)(inp), D0; PXOR D0, A2; MOVOU A2, (8*16)(oup)
+ MOVOU (9*16)(inp), D0; PXOR D0, B2; MOVOU B2, (9*16)(oup)
+ MOVOU (10*16)(inp), D0; PXOR D0, C2; MOVOU C2, (10*16)(oup)
+ MOVOU (11*16)(inp), D0; PXOR D0, D2; MOVOU D2, (11*16)(oup)
+ MOVOU (12*16)(inp), D0; PXOR D0, A3; MOVOU A3, (12*16)(oup)
+ MOVOU (13*16)(inp), D0; PXOR D0, B3; MOVOU B3, (13*16)(oup)
+ MOVOU (14*16)(inp), D0; PXOR D0, C3; MOVOU C3, (14*16)(oup)
+ MOVOU (15*16)(inp), D0; PXOR tmpStore, D0; MOVOU D0, (15*16)(oup)
+ LEAQ 256(inp), inp
+ LEAQ 256(oup), oup
+ SUBQ $256, inl
+ JMP openSSEMainLoop
+
+openSSEMainLoopDone:
+ // Handle the various tail sizes efficiently
+ TESTQ inl, inl
+ JE openSSEFinalize
+ CMPQ inl, $64
+ JBE openSSETail64
+ CMPQ inl, $128
+ JBE openSSETail128
+ CMPQ inl, $192
+ JBE openSSETail192
+ JMP openSSETail256
+
+openSSEFinalize:
+ // Hash in the PT, AAD lengths
+ ADDQ ad_len+80(FP), acc0; ADCQ src_len+56(FP), acc1; ADCQ $1, acc2
+ polyMul
+
+ // Final reduce
+ MOVQ acc0, t0
+ MOVQ acc1, t1
+ MOVQ acc2, t2
+ SUBQ $-5, acc0
+ SBBQ $-1, acc1
+ SBBQ $3, acc2
+ CMOVQCS t0, acc0
+ CMOVQCS t1, acc1
+ CMOVQCS t2, acc2
+
+ // Add in the "s" part of the key
+ ADDQ 0+sStore, acc0
+ ADCQ 8+sStore, acc1
+
+ // Finally, constant time compare to the tag at the end of the message
+ XORQ AX, AX
+ MOVQ $1, DX
+ XORQ (0*8)(inp), acc0
+ XORQ (1*8)(inp), acc1
+ ORQ acc1, acc0
+ CMOVQEQ DX, AX
+
+ // Return true iff tags are equal
+ MOVB AX, ret+96(FP)
+ RET
+
+// ----------------------------------------------------------------------------
+// Special optimization for buffers smaller than 129 bytes
+openSSE128:
+ // For up to 128 bytes of ciphertext and 64 bytes for the poly key, we require to process three blocks
+ MOVOU ·chacha20Constants<>(SB), A0; MOVOU (1*16)(keyp), B0; MOVOU (2*16)(keyp), C0; MOVOU (3*16)(keyp), D0
+ MOVO A0, A1; MOVO B0, B1; MOVO C0, C1; MOVO D0, D1; PADDL ·sseIncMask<>(SB), D1
+ MOVO A1, A2; MOVO B1, B2; MOVO C1, C2; MOVO D1, D2; PADDL ·sseIncMask<>(SB), D2
+ MOVO B0, T1; MOVO C0, T2; MOVO D1, T3
+ MOVQ $10, itr2
+
+openSSE128InnerCipherLoop:
+ chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0); chachaQR(A2, B2, C2, D2, T0)
+ shiftB0Left; shiftB1Left; shiftB2Left
+ shiftC0Left; shiftC1Left; shiftC2Left
+ shiftD0Left; shiftD1Left; shiftD2Left
+ chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0); chachaQR(A2, B2, C2, D2, T0)
+ shiftB0Right; shiftB1Right; shiftB2Right
+ shiftC0Right; shiftC1Right; shiftC2Right
+ shiftD0Right; shiftD1Right; shiftD2Right
+ DECQ itr2
+ JNE openSSE128InnerCipherLoop
+
+ // A0|B0 hold the Poly1305 32-byte key, C0,D0 can be discarded
+ PADDL ·chacha20Constants<>(SB), A0; PADDL ·chacha20Constants<>(SB), A1; PADDL ·chacha20Constants<>(SB), A2
+ PADDL T1, B0; PADDL T1, B1; PADDL T1, B2
+ PADDL T2, C1; PADDL T2, C2
+ PADDL T3, D1; PADDL ·sseIncMask<>(SB), T3; PADDL T3, D2
+
+ // Clamp and store the key
+ PAND ·polyClampMask<>(SB), A0
+ MOVOU A0, rStore; MOVOU B0, sStore
+
+ // Hash
+ MOVQ ad_len+80(FP), itr2
+ CALL polyHashADInternal<>(SB)
+
+openSSE128Open:
+ CMPQ inl, $16
+ JB openSSETail16
+ SUBQ $16, inl
+
+ // Load for hashing
+ polyAdd(0(inp))
+
+ // Load for decryption
+ MOVOU (inp), T0; PXOR T0, A1; MOVOU A1, (oup)
+ LEAQ (1*16)(inp), inp
+ LEAQ (1*16)(oup), oup
+ polyMul
+
+ // Shift the stream "left"
+ MOVO B1, A1
+ MOVO C1, B1
+ MOVO D1, C1
+ MOVO A2, D1
+ MOVO B2, A2
+ MOVO C2, B2
+ MOVO D2, C2
+ JMP openSSE128Open
+
+openSSETail16:
+ TESTQ inl, inl
+ JE openSSEFinalize
+
+ // We can safely load the CT from the end, because it is padded with the MAC
+ MOVQ inl, itr2
+ SHLQ $4, itr2
+ LEAQ ·andMask<>(SB), t0
+ MOVOU (inp), T0
+ ADDQ inl, inp
+ PAND -16(t0)(itr2*1), T0
+ MOVO T0, 0+tmpStore
+ MOVQ T0, t0
+ MOVQ 8+tmpStore, t1
+ PXOR A1, T0
+
+ // We can only store one byte at a time, since plaintext can be shorter than 16 bytes
+openSSETail16Store:
+ MOVQ T0, t3
+ MOVB t3, (oup)
+ PSRLDQ $1, T0
+ INCQ oup
+ DECQ inl
+ JNE openSSETail16Store
+ ADDQ t0, acc0; ADCQ t1, acc1; ADCQ $1, acc2
+ polyMul
+ JMP openSSEFinalize
+
+// ----------------------------------------------------------------------------
+// Special optimization for the last 64 bytes of ciphertext
+openSSETail64:
+ // Need to decrypt up to 64 bytes - prepare single block
+ MOVO ·chacha20Constants<>(SB), A0; MOVO state1Store, B0; MOVO state2Store, C0; MOVO ctr3Store, D0; PADDL ·sseIncMask<>(SB), D0; MOVO D0, ctr0Store
+ XORQ itr2, itr2
+ MOVQ inl, itr1
+ CMPQ itr1, $16
+ JB openSSETail64LoopB
+
+openSSETail64LoopA:
+ // Perform ChaCha rounds, while hashing the remaining input
+ polyAdd(0(inp)(itr2*1))
+ polyMul
+ SUBQ $16, itr1
+
+openSSETail64LoopB:
+ ADDQ $16, itr2
+ chachaQR(A0, B0, C0, D0, T0)
+ shiftB0Left; shiftC0Left; shiftD0Left
+ chachaQR(A0, B0, C0, D0, T0)
+ shiftB0Right; shiftC0Right; shiftD0Right
+
+ CMPQ itr1, $16
+ JAE openSSETail64LoopA
+
+ CMPQ itr2, $160
+ JNE openSSETail64LoopB
+
+ PADDL ·chacha20Constants<>(SB), A0; PADDL state1Store, B0; PADDL state2Store, C0; PADDL ctr0Store, D0
+
+openSSETail64DecLoop:
+ CMPQ inl, $16
+ JB openSSETail64DecLoopDone
+ SUBQ $16, inl
+ MOVOU (inp), T0
+ PXOR T0, A0
+ MOVOU A0, (oup)
+ LEAQ 16(inp), inp
+ LEAQ 16(oup), oup
+ MOVO B0, A0
+ MOVO C0, B0
+ MOVO D0, C0
+ JMP openSSETail64DecLoop
+
+openSSETail64DecLoopDone:
+ MOVO A0, A1
+ JMP openSSETail16
+
+// ----------------------------------------------------------------------------
+// Special optimization for the last 128 bytes of ciphertext
+openSSETail128:
+ // Need to decrypt up to 128 bytes - prepare two blocks
+ MOVO ·chacha20Constants<>(SB), A1; MOVO state1Store, B1; MOVO state2Store, C1; MOVO ctr3Store, D1; PADDL ·sseIncMask<>(SB), D1; MOVO D1, ctr0Store
+ MOVO A1, A0; MOVO B1, B0; MOVO C1, C0; MOVO D1, D0; PADDL ·sseIncMask<>(SB), D0; MOVO D0, ctr1Store
+ XORQ itr2, itr2
+ MOVQ inl, itr1
+ ANDQ $-16, itr1
+
+openSSETail128LoopA:
+ // Perform ChaCha rounds, while hashing the remaining input
+ polyAdd(0(inp)(itr2*1))
+ polyMul
+
+openSSETail128LoopB:
+ ADDQ $16, itr2
+ chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0)
+ shiftB0Left; shiftC0Left; shiftD0Left
+ shiftB1Left; shiftC1Left; shiftD1Left
+ chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0)
+ shiftB0Right; shiftC0Right; shiftD0Right
+ shiftB1Right; shiftC1Right; shiftD1Right
+
+ CMPQ itr2, itr1
+ JB openSSETail128LoopA
+
+ CMPQ itr2, $160
+ JNE openSSETail128LoopB
+
+ PADDL ·chacha20Constants<>(SB), A0; PADDL ·chacha20Constants<>(SB), A1
+ PADDL state1Store, B0; PADDL state1Store, B1
+ PADDL state2Store, C0; PADDL state2Store, C1
+ PADDL ctr1Store, D0; PADDL ctr0Store, D1
+
+ MOVOU (0*16)(inp), T0; MOVOU (1*16)(inp), T1; MOVOU (2*16)(inp), T2; MOVOU (3*16)(inp), T3
+ PXOR T0, A1; PXOR T1, B1; PXOR T2, C1; PXOR T3, D1
+ MOVOU A1, (0*16)(oup); MOVOU B1, (1*16)(oup); MOVOU C1, (2*16)(oup); MOVOU D1, (3*16)(oup)
+
+ SUBQ $64, inl
+ LEAQ 64(inp), inp
+ LEAQ 64(oup), oup
+ JMP openSSETail64DecLoop
+
+// ----------------------------------------------------------------------------
+// Special optimization for the last 192 bytes of ciphertext
+openSSETail192:
+ // Need to decrypt up to 192 bytes - prepare three blocks
+ MOVO ·chacha20Constants<>(SB), A2; MOVO state1Store, B2; MOVO state2Store, C2; MOVO ctr3Store, D2; PADDL ·sseIncMask<>(SB), D2; MOVO D2, ctr0Store
+ MOVO A2, A1; MOVO B2, B1; MOVO C2, C1; MOVO D2, D1; PADDL ·sseIncMask<>(SB), D1; MOVO D1, ctr1Store
+ MOVO A1, A0; MOVO B1, B0; MOVO C1, C0; MOVO D1, D0; PADDL ·sseIncMask<>(SB), D0; MOVO D0, ctr2Store
+
+ MOVQ inl, itr1
+ MOVQ $160, itr2
+ CMPQ itr1, $160
+ CMOVQGT itr2, itr1
+ ANDQ $-16, itr1
+ XORQ itr2, itr2
+
+openSSLTail192LoopA:
+ // Perform ChaCha rounds, while hashing the remaining input
+ polyAdd(0(inp)(itr2*1))
+ polyMul
+
+openSSLTail192LoopB:
+ ADDQ $16, itr2
+ chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0); chachaQR(A2, B2, C2, D2, T0)
+ shiftB0Left; shiftC0Left; shiftD0Left
+ shiftB1Left; shiftC1Left; shiftD1Left
+ shiftB2Left; shiftC2Left; shiftD2Left
+
+ chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0); chachaQR(A2, B2, C2, D2, T0)
+ shiftB0Right; shiftC0Right; shiftD0Right
+ shiftB1Right; shiftC1Right; shiftD1Right
+ shiftB2Right; shiftC2Right; shiftD2Right
+
+ CMPQ itr2, itr1
+ JB openSSLTail192LoopA
+
+ CMPQ itr2, $160
+ JNE openSSLTail192LoopB
+
+ CMPQ inl, $176
+ JB openSSLTail192Store
+
+ polyAdd(160(inp))
+ polyMul
+
+ CMPQ inl, $192
+ JB openSSLTail192Store
+
+ polyAdd(176(inp))
+ polyMul
+
+openSSLTail192Store:
+ PADDL ·chacha20Constants<>(SB), A0; PADDL ·chacha20Constants<>(SB), A1; PADDL ·chacha20Constants<>(SB), A2
+ PADDL state1Store, B0; PADDL state1Store, B1; PADDL state1Store, B2
+ PADDL state2Store, C0; PADDL state2Store, C1; PADDL state2Store, C2
+ PADDL ctr2Store, D0; PADDL ctr1Store, D1; PADDL ctr0Store, D2
+
+ MOVOU (0*16)(inp), T0; MOVOU (1*16)(inp), T1; MOVOU (2*16)(inp), T2; MOVOU (3*16)(inp), T3
+ PXOR T0, A2; PXOR T1, B2; PXOR T2, C2; PXOR T3, D2
+ MOVOU A2, (0*16)(oup); MOVOU B2, (1*16)(oup); MOVOU C2, (2*16)(oup); MOVOU D2, (3*16)(oup)
+
+ MOVOU (4*16)(inp), T0; MOVOU (5*16)(inp), T1; MOVOU (6*16)(inp), T2; MOVOU (7*16)(inp), T3
+ PXOR T0, A1; PXOR T1, B1; PXOR T2, C1; PXOR T3, D1
+ MOVOU A1, (4*16)(oup); MOVOU B1, (5*16)(oup); MOVOU C1, (6*16)(oup); MOVOU D1, (7*16)(oup)
+
+ SUBQ $128, inl
+ LEAQ 128(inp), inp
+ LEAQ 128(oup), oup
+ JMP openSSETail64DecLoop
+
+// ----------------------------------------------------------------------------
+// Special optimization for the last 256 bytes of ciphertext
+openSSETail256:
+ // Need to decrypt up to 256 bytes - prepare four blocks
+ MOVO ·chacha20Constants<>(SB), A0; MOVO state1Store, B0; MOVO state2Store, C0; MOVO ctr3Store, D0; PADDL ·sseIncMask<>(SB), D0
+ MOVO A0, A1; MOVO B0, B1; MOVO C0, C1; MOVO D0, D1; PADDL ·sseIncMask<>(SB), D1
+ MOVO A1, A2; MOVO B1, B2; MOVO C1, C2; MOVO D1, D2; PADDL ·sseIncMask<>(SB), D2
+ MOVO A2, A3; MOVO B2, B3; MOVO C2, C3; MOVO D2, D3; PADDL ·sseIncMask<>(SB), D3
+
+ // Store counters
+ MOVO D0, ctr0Store; MOVO D1, ctr1Store; MOVO D2, ctr2Store; MOVO D3, ctr3Store
+ XORQ itr2, itr2
+
+openSSETail256Loop:
+ // This loop inteleaves 8 ChaCha quarter rounds with 1 poly multiplication
+ polyAdd(0(inp)(itr2*1))
+ MOVO C3, tmpStore
+ chachaQR(A0, B0, C0, D0, C3); chachaQR(A1, B1, C1, D1, C3); chachaQR(A2, B2, C2, D2, C3)
+ MOVO tmpStore, C3
+ MOVO C1, tmpStore
+ chachaQR(A3, B3, C3, D3, C1)
+ MOVO tmpStore, C1
+ shiftB0Left; shiftB1Left; shiftB2Left; shiftB3Left
+ shiftC0Left; shiftC1Left; shiftC2Left; shiftC3Left
+ shiftD0Left; shiftD1Left; shiftD2Left; shiftD3Left
+ polyMulStage1
+ polyMulStage2
+ MOVO C3, tmpStore
+ chachaQR(A0, B0, C0, D0, C3); chachaQR(A1, B1, C1, D1, C3); chachaQR(A2, B2, C2, D2, C3)
+ MOVO tmpStore, C3
+ MOVO C1, tmpStore
+ chachaQR(A3, B3, C3, D3, C1)
+ MOVO tmpStore, C1
+ polyMulStage3
+ polyMulReduceStage
+ shiftB0Right; shiftB1Right; shiftB2Right; shiftB3Right
+ shiftC0Right; shiftC1Right; shiftC2Right; shiftC3Right
+ shiftD0Right; shiftD1Right; shiftD2Right; shiftD3Right
+ ADDQ $2*8, itr2
+ CMPQ itr2, $160
+ JB openSSETail256Loop
+ MOVQ inl, itr1
+ ANDQ $-16, itr1
+
+openSSETail256HashLoop:
+ polyAdd(0(inp)(itr2*1))
+ polyMul
+ ADDQ $2*8, itr2
+ CMPQ itr2, itr1
+ JB openSSETail256HashLoop
+
+ // Add in the state
+ PADDD ·chacha20Constants<>(SB), A0; PADDD ·chacha20Constants<>(SB), A1; PADDD ·chacha20Constants<>(SB), A2; PADDD ·chacha20Constants<>(SB), A3
+ PADDD state1Store, B0; PADDD state1Store, B1; PADDD state1Store, B2; PADDD state1Store, B3
+ PADDD state2Store, C0; PADDD state2Store, C1; PADDD state2Store, C2; PADDD state2Store, C3
+ PADDD ctr0Store, D0; PADDD ctr1Store, D1; PADDD ctr2Store, D2; PADDD ctr3Store, D3
+ MOVO D3, tmpStore
+
+ // Load - xor - store
+ MOVOU (0*16)(inp), D3; PXOR D3, A0
+ MOVOU (1*16)(inp), D3; PXOR D3, B0
+ MOVOU (2*16)(inp), D3; PXOR D3, C0
+ MOVOU (3*16)(inp), D3; PXOR D3, D0
+ MOVOU A0, (0*16)(oup)
+ MOVOU B0, (1*16)(oup)
+ MOVOU C0, (2*16)(oup)
+ MOVOU D0, (3*16)(oup)
+ MOVOU (4*16)(inp), A0; MOVOU (5*16)(inp), B0; MOVOU (6*16)(inp), C0; MOVOU (7*16)(inp), D0
+ PXOR A0, A1; PXOR B0, B1; PXOR C0, C1; PXOR D0, D1
+ MOVOU A1, (4*16)(oup); MOVOU B1, (5*16)(oup); MOVOU C1, (6*16)(oup); MOVOU D1, (7*16)(oup)
+ MOVOU (8*16)(inp), A0; MOVOU (9*16)(inp), B0; MOVOU (10*16)(inp), C0; MOVOU (11*16)(inp), D0
+ PXOR A0, A2; PXOR B0, B2; PXOR C0, C2; PXOR D0, D2
+ MOVOU A2, (8*16)(oup); MOVOU B2, (9*16)(oup); MOVOU C2, (10*16)(oup); MOVOU D2, (11*16)(oup)
+ LEAQ 192(inp), inp
+ LEAQ 192(oup), oup
+ SUBQ $192, inl
+ MOVO A3, A0
+ MOVO B3, B0
+ MOVO C3, C0
+ MOVO tmpStore, D0
+
+ JMP openSSETail64DecLoop
+
+// ----------------------------------------------------------------------------
+// ------------------------- AVX2 Code ----------------------------------------
+chacha20Poly1305Open_AVX2:
+ VZEROUPPER
+ VMOVDQU ·chacha20Constants<>(SB), AA0
+ BYTE $0xc4; BYTE $0x42; BYTE $0x7d; BYTE $0x5a; BYTE $0x70; BYTE $0x10 // broadcasti128 16(r8), ymm14
+ BYTE $0xc4; BYTE $0x42; BYTE $0x7d; BYTE $0x5a; BYTE $0x60; BYTE $0x20 // broadcasti128 32(r8), ymm12
+ BYTE $0xc4; BYTE $0xc2; BYTE $0x7d; BYTE $0x5a; BYTE $0x60; BYTE $0x30 // broadcasti128 48(r8), ymm4
+ VPADDD ·avx2InitMask<>(SB), DD0, DD0
+
+ // Special optimization, for very short buffers
+ CMPQ inl, $192
+ JBE openAVX2192
+ CMPQ inl, $320
+ JBE openAVX2320
+
+ // For the general key prepare the key first - as a byproduct we have 64 bytes of cipher stream
+ VMOVDQA BB0, state1StoreAVX2
+ VMOVDQA CC0, state2StoreAVX2
+ VMOVDQA DD0, ctr3StoreAVX2
+ MOVQ $10, itr2
+
+openAVX2PreparePolyKey:
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0)
+ VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $12, DD0, DD0, DD0
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0)
+ VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $4, DD0, DD0, DD0
+ DECQ itr2
+ JNE openAVX2PreparePolyKey
+
+ VPADDD ·chacha20Constants<>(SB), AA0, AA0
+ VPADDD state1StoreAVX2, BB0, BB0
+ VPADDD state2StoreAVX2, CC0, CC0
+ VPADDD ctr3StoreAVX2, DD0, DD0
+
+ VPERM2I128 $0x02, AA0, BB0, TT0
+
+ // Clamp and store poly key
+ VPAND ·polyClampMask<>(SB), TT0, TT0
+ VMOVDQA TT0, rsStoreAVX2
+
+ // Stream for the first 64 bytes
+ VPERM2I128 $0x13, AA0, BB0, AA0
+ VPERM2I128 $0x13, CC0, DD0, BB0
+
+ // Hash AD + first 64 bytes
+ MOVQ ad_len+80(FP), itr2
+ CALL polyHashADInternal<>(SB)
+ XORQ itr1, itr1
+
+openAVX2InitialHash64:
+ polyAdd(0(inp)(itr1*1))
+ polyMulAVX2
+ ADDQ $16, itr1
+ CMPQ itr1, $64
+ JNE openAVX2InitialHash64
+
+ // Decrypt the first 64 bytes
+ VPXOR (0*32)(inp), AA0, AA0
+ VPXOR (1*32)(inp), BB0, BB0
+ VMOVDQU AA0, (0*32)(oup)
+ VMOVDQU BB0, (1*32)(oup)
+ LEAQ (2*32)(inp), inp
+ LEAQ (2*32)(oup), oup
+ SUBQ $64, inl
+
+openAVX2MainLoop:
+ CMPQ inl, $512
+ JB openAVX2MainLoopDone
+
+ // Load state, increment counter blocks, store the incremented counters
+ VMOVDQU ·chacha20Constants<>(SB), AA0; VMOVDQA AA0, AA1; VMOVDQA AA0, AA2; VMOVDQA AA0, AA3
+ VMOVDQA state1StoreAVX2, BB0; VMOVDQA BB0, BB1; VMOVDQA BB0, BB2; VMOVDQA BB0, BB3
+ VMOVDQA state2StoreAVX2, CC0; VMOVDQA CC0, CC1; VMOVDQA CC0, CC2; VMOVDQA CC0, CC3
+ VMOVDQA ctr3StoreAVX2, DD0; VPADDD ·avx2IncMask<>(SB), DD0, DD0; VPADDD ·avx2IncMask<>(SB), DD0, DD1; VPADDD ·avx2IncMask<>(SB), DD1, DD2; VPADDD ·avx2IncMask<>(SB), DD2, DD3
+ VMOVDQA DD0, ctr0StoreAVX2; VMOVDQA DD1, ctr1StoreAVX2; VMOVDQA DD2, ctr2StoreAVX2; VMOVDQA DD3, ctr3StoreAVX2
+ XORQ itr1, itr1
+
+openAVX2InternalLoop:
+ // Lets just say this spaghetti loop interleaves 2 quarter rounds with 3 poly multiplications
+ // Effectively per 512 bytes of stream we hash 480 bytes of ciphertext
+ polyAdd(0*8(inp)(itr1*1))
+ VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3
+ polyMulStage1_AVX2
+ VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3
+ VPSHUFB ·rol16<>(SB), DD0, DD0; VPSHUFB ·rol16<>(SB), DD1, DD1; VPSHUFB ·rol16<>(SB), DD2, DD2; VPSHUFB ·rol16<>(SB), DD3, DD3
+ polyMulStage2_AVX2
+ VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3
+ VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3
+ polyMulStage3_AVX2
+ VMOVDQA CC3, tmpStoreAVX2
+ VPSLLD $12, BB0, CC3; VPSRLD $20, BB0, BB0; VPXOR CC3, BB0, BB0
+ VPSLLD $12, BB1, CC3; VPSRLD $20, BB1, BB1; VPXOR CC3, BB1, BB1
+ VPSLLD $12, BB2, CC3; VPSRLD $20, BB2, BB2; VPXOR CC3, BB2, BB2
+ VPSLLD $12, BB3, CC3; VPSRLD $20, BB3, BB3; VPXOR CC3, BB3, BB3
+ VMOVDQA tmpStoreAVX2, CC3
+ polyMulReduceStage
+ VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3
+ VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3
+ VPSHUFB ·rol8<>(SB), DD0, DD0; VPSHUFB ·rol8<>(SB), DD1, DD1; VPSHUFB ·rol8<>(SB), DD2, DD2; VPSHUFB ·rol8<>(SB), DD3, DD3
+ polyAdd(2*8(inp)(itr1*1))
+ VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3
+ polyMulStage1_AVX2
+ VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3
+ VMOVDQA CC3, tmpStoreAVX2
+ VPSLLD $7, BB0, CC3; VPSRLD $25, BB0, BB0; VPXOR CC3, BB0, BB0
+ VPSLLD $7, BB1, CC3; VPSRLD $25, BB1, BB1; VPXOR CC3, BB1, BB1
+ VPSLLD $7, BB2, CC3; VPSRLD $25, BB2, BB2; VPXOR CC3, BB2, BB2
+ VPSLLD $7, BB3, CC3; VPSRLD $25, BB3, BB3; VPXOR CC3, BB3, BB3
+ VMOVDQA tmpStoreAVX2, CC3
+ polyMulStage2_AVX2
+ VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $4, BB2, BB2, BB2; VPALIGNR $4, BB3, BB3, BB3
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $8, CC3, CC3, CC3
+ VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1; VPALIGNR $12, DD2, DD2, DD2; VPALIGNR $12, DD3, DD3, DD3
+ VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3
+ polyMulStage3_AVX2
+ VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3
+ VPSHUFB ·rol16<>(SB), DD0, DD0; VPSHUFB ·rol16<>(SB), DD1, DD1; VPSHUFB ·rol16<>(SB), DD2, DD2; VPSHUFB ·rol16<>(SB), DD3, DD3
+ polyMulReduceStage
+ VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3
+ VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3
+ polyAdd(4*8(inp)(itr1*1))
+ LEAQ (6*8)(itr1), itr1
+ VMOVDQA CC3, tmpStoreAVX2
+ VPSLLD $12, BB0, CC3; VPSRLD $20, BB0, BB0; VPXOR CC3, BB0, BB0
+ VPSLLD $12, BB1, CC3; VPSRLD $20, BB1, BB1; VPXOR CC3, BB1, BB1
+ VPSLLD $12, BB2, CC3; VPSRLD $20, BB2, BB2; VPXOR CC3, BB2, BB2
+ VPSLLD $12, BB3, CC3; VPSRLD $20, BB3, BB3; VPXOR CC3, BB3, BB3
+ VMOVDQA tmpStoreAVX2, CC3
+ polyMulStage1_AVX2
+ VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3
+ VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3
+ polyMulStage2_AVX2
+ VPSHUFB ·rol8<>(SB), DD0, DD0; VPSHUFB ·rol8<>(SB), DD1, DD1; VPSHUFB ·rol8<>(SB), DD2, DD2; VPSHUFB ·rol8<>(SB), DD3, DD3
+ VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3
+ polyMulStage3_AVX2
+ VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3
+ VMOVDQA CC3, tmpStoreAVX2
+ VPSLLD $7, BB0, CC3; VPSRLD $25, BB0, BB0; VPXOR CC3, BB0, BB0
+ VPSLLD $7, BB1, CC3; VPSRLD $25, BB1, BB1; VPXOR CC3, BB1, BB1
+ VPSLLD $7, BB2, CC3; VPSRLD $25, BB2, BB2; VPXOR CC3, BB2, BB2
+ VPSLLD $7, BB3, CC3; VPSRLD $25, BB3, BB3; VPXOR CC3, BB3, BB3
+ VMOVDQA tmpStoreAVX2, CC3
+ polyMulReduceStage
+ VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $12, BB2, BB2, BB2; VPALIGNR $12, BB3, BB3, BB3
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $8, CC3, CC3, CC3
+ VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1; VPALIGNR $4, DD2, DD2, DD2; VPALIGNR $4, DD3, DD3, DD3
+ CMPQ itr1, $480
+ JNE openAVX2InternalLoop
+
+ VPADDD ·chacha20Constants<>(SB), AA0, AA0; VPADDD ·chacha20Constants<>(SB), AA1, AA1; VPADDD ·chacha20Constants<>(SB), AA2, AA2; VPADDD ·chacha20Constants<>(SB), AA3, AA3
+ VPADDD state1StoreAVX2, BB0, BB0; VPADDD state1StoreAVX2, BB1, BB1; VPADDD state1StoreAVX2, BB2, BB2; VPADDD state1StoreAVX2, BB3, BB3
+ VPADDD state2StoreAVX2, CC0, CC0; VPADDD state2StoreAVX2, CC1, CC1; VPADDD state2StoreAVX2, CC2, CC2; VPADDD state2StoreAVX2, CC3, CC3
+ VPADDD ctr0StoreAVX2, DD0, DD0; VPADDD ctr1StoreAVX2, DD1, DD1; VPADDD ctr2StoreAVX2, DD2, DD2; VPADDD ctr3StoreAVX2, DD3, DD3
+ VMOVDQA CC3, tmpStoreAVX2
+
+ // We only hashed 480 of the 512 bytes available - hash the remaining 32 here
+ polyAdd(480(inp))
+ polyMulAVX2
+ VPERM2I128 $0x02, AA0, BB0, CC3; VPERM2I128 $0x13, AA0, BB0, BB0; VPERM2I128 $0x02, CC0, DD0, AA0; VPERM2I128 $0x13, CC0, DD0, CC0
+ VPXOR (0*32)(inp), CC3, CC3; VPXOR (1*32)(inp), AA0, AA0; VPXOR (2*32)(inp), BB0, BB0; VPXOR (3*32)(inp), CC0, CC0
+ VMOVDQU CC3, (0*32)(oup); VMOVDQU AA0, (1*32)(oup); VMOVDQU BB0, (2*32)(oup); VMOVDQU CC0, (3*32)(oup)
+ VPERM2I128 $0x02, AA1, BB1, AA0; VPERM2I128 $0x02, CC1, DD1, BB0; VPERM2I128 $0x13, AA1, BB1, CC0; VPERM2I128 $0x13, CC1, DD1, DD0
+ VPXOR (4*32)(inp), AA0, AA0; VPXOR (5*32)(inp), BB0, BB0; VPXOR (6*32)(inp), CC0, CC0; VPXOR (7*32)(inp), DD0, DD0
+ VMOVDQU AA0, (4*32)(oup); VMOVDQU BB0, (5*32)(oup); VMOVDQU CC0, (6*32)(oup); VMOVDQU DD0, (7*32)(oup)
+
+ // and here
+ polyAdd(496(inp))
+ polyMulAVX2
+ VPERM2I128 $0x02, AA2, BB2, AA0; VPERM2I128 $0x02, CC2, DD2, BB0; VPERM2I128 $0x13, AA2, BB2, CC0; VPERM2I128 $0x13, CC2, DD2, DD0
+ VPXOR (8*32)(inp), AA0, AA0; VPXOR (9*32)(inp), BB0, BB0; VPXOR (10*32)(inp), CC0, CC0; VPXOR (11*32)(inp), DD0, DD0
+ VMOVDQU AA0, (8*32)(oup); VMOVDQU BB0, (9*32)(oup); VMOVDQU CC0, (10*32)(oup); VMOVDQU DD0, (11*32)(oup)
+ VPERM2I128 $0x02, AA3, BB3, AA0; VPERM2I128 $0x02, tmpStoreAVX2, DD3, BB0; VPERM2I128 $0x13, AA3, BB3, CC0; VPERM2I128 $0x13, tmpStoreAVX2, DD3, DD0
+ VPXOR (12*32)(inp), AA0, AA0; VPXOR (13*32)(inp), BB0, BB0; VPXOR (14*32)(inp), CC0, CC0; VPXOR (15*32)(inp), DD0, DD0
+ VMOVDQU AA0, (12*32)(oup); VMOVDQU BB0, (13*32)(oup); VMOVDQU CC0, (14*32)(oup); VMOVDQU DD0, (15*32)(oup)
+ LEAQ (32*16)(inp), inp
+ LEAQ (32*16)(oup), oup
+ SUBQ $(32*16), inl
+ JMP openAVX2MainLoop
+
+openAVX2MainLoopDone:
+ // Handle the various tail sizes efficiently
+ TESTQ inl, inl
+ JE openSSEFinalize
+ CMPQ inl, $128
+ JBE openAVX2Tail128
+ CMPQ inl, $256
+ JBE openAVX2Tail256
+ CMPQ inl, $384
+ JBE openAVX2Tail384
+ JMP openAVX2Tail512
+
+// ----------------------------------------------------------------------------
+// Special optimization for buffers smaller than 193 bytes
+openAVX2192:
+ // For up to 192 bytes of ciphertext and 64 bytes for the poly key, we process four blocks
+ VMOVDQA AA0, AA1
+ VMOVDQA BB0, BB1
+ VMOVDQA CC0, CC1
+ VPADDD ·avx2IncMask<>(SB), DD0, DD1
+ VMOVDQA AA0, AA2
+ VMOVDQA BB0, BB2
+ VMOVDQA CC0, CC2
+ VMOVDQA DD0, DD2
+ VMOVDQA DD1, TT3
+ MOVQ $10, itr2
+
+openAVX2192InnerCipherLoop:
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0)
+ VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1
+ VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0)
+ VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1
+ VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1
+ DECQ itr2
+ JNE openAVX2192InnerCipherLoop
+ VPADDD AA2, AA0, AA0; VPADDD AA2, AA1, AA1
+ VPADDD BB2, BB0, BB0; VPADDD BB2, BB1, BB1
+ VPADDD CC2, CC0, CC0; VPADDD CC2, CC1, CC1
+ VPADDD DD2, DD0, DD0; VPADDD TT3, DD1, DD1
+ VPERM2I128 $0x02, AA0, BB0, TT0
+
+ // Clamp and store poly key
+ VPAND ·polyClampMask<>(SB), TT0, TT0
+ VMOVDQA TT0, rsStoreAVX2
+
+ // Stream for up to 192 bytes
+ VPERM2I128 $0x13, AA0, BB0, AA0
+ VPERM2I128 $0x13, CC0, DD0, BB0
+ VPERM2I128 $0x02, AA1, BB1, CC0
+ VPERM2I128 $0x02, CC1, DD1, DD0
+ VPERM2I128 $0x13, AA1, BB1, AA1
+ VPERM2I128 $0x13, CC1, DD1, BB1
+
+openAVX2ShortOpen:
+ // Hash
+ MOVQ ad_len+80(FP), itr2
+ CALL polyHashADInternal<>(SB)
+
+openAVX2ShortOpenLoop:
+ CMPQ inl, $32
+ JB openAVX2ShortTail32
+ SUBQ $32, inl
+
+ // Load for hashing
+ polyAdd(0*8(inp))
+ polyMulAVX2
+ polyAdd(2*8(inp))
+ polyMulAVX2
+
+ // Load for decryption
+ VPXOR (inp), AA0, AA0
+ VMOVDQU AA0, (oup)
+ LEAQ (1*32)(inp), inp
+ LEAQ (1*32)(oup), oup
+
+ // Shift stream left
+ VMOVDQA BB0, AA0
+ VMOVDQA CC0, BB0
+ VMOVDQA DD0, CC0
+ VMOVDQA AA1, DD0
+ VMOVDQA BB1, AA1
+ VMOVDQA CC1, BB1
+ VMOVDQA DD1, CC1
+ VMOVDQA AA2, DD1
+ VMOVDQA BB2, AA2
+ JMP openAVX2ShortOpenLoop
+
+openAVX2ShortTail32:
+ CMPQ inl, $16
+ VMOVDQA A0, A1
+ JB openAVX2ShortDone
+
+ SUBQ $16, inl
+
+ // Load for hashing
+ polyAdd(0*8(inp))
+ polyMulAVX2
+
+ // Load for decryption
+ VPXOR (inp), A0, T0
+ VMOVDQU T0, (oup)
+ LEAQ (1*16)(inp), inp
+ LEAQ (1*16)(oup), oup
+ VPERM2I128 $0x11, AA0, AA0, AA0
+ VMOVDQA A0, A1
+
+openAVX2ShortDone:
+ VZEROUPPER
+ JMP openSSETail16
+
+// ----------------------------------------------------------------------------
+// Special optimization for buffers smaller than 321 bytes
+openAVX2320:
+ // For up to 320 bytes of ciphertext and 64 bytes for the poly key, we process six blocks
+ VMOVDQA AA0, AA1; VMOVDQA BB0, BB1; VMOVDQA CC0, CC1; VPADDD ·avx2IncMask<>(SB), DD0, DD1
+ VMOVDQA AA0, AA2; VMOVDQA BB0, BB2; VMOVDQA CC0, CC2; VPADDD ·avx2IncMask<>(SB), DD1, DD2
+ VMOVDQA BB0, TT1; VMOVDQA CC0, TT2; VMOVDQA DD0, TT3
+ MOVQ $10, itr2
+
+openAVX2320InnerCipherLoop:
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0); chachaQR_AVX2(AA2, BB2, CC2, DD2, TT0)
+ VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $4, BB2, BB2, BB2
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2
+ VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1; VPALIGNR $12, DD2, DD2, DD2
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0); chachaQR_AVX2(AA2, BB2, CC2, DD2, TT0)
+ VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $12, BB2, BB2, BB2
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2
+ VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1; VPALIGNR $4, DD2, DD2, DD2
+ DECQ itr2
+ JNE openAVX2320InnerCipherLoop
+
+ VMOVDQA ·chacha20Constants<>(SB), TT0
+ VPADDD TT0, AA0, AA0; VPADDD TT0, AA1, AA1; VPADDD TT0, AA2, AA2
+ VPADDD TT1, BB0, BB0; VPADDD TT1, BB1, BB1; VPADDD TT1, BB2, BB2
+ VPADDD TT2, CC0, CC0; VPADDD TT2, CC1, CC1; VPADDD TT2, CC2, CC2
+ VMOVDQA ·avx2IncMask<>(SB), TT0
+ VPADDD TT3, DD0, DD0; VPADDD TT0, TT3, TT3
+ VPADDD TT3, DD1, DD1; VPADDD TT0, TT3, TT3
+ VPADDD TT3, DD2, DD2
+
+ // Clamp and store poly key
+ VPERM2I128 $0x02, AA0, BB0, TT0
+ VPAND ·polyClampMask<>(SB), TT0, TT0
+ VMOVDQA TT0, rsStoreAVX2
+
+ // Stream for up to 320 bytes
+ VPERM2I128 $0x13, AA0, BB0, AA0
+ VPERM2I128 $0x13, CC0, DD0, BB0
+ VPERM2I128 $0x02, AA1, BB1, CC0
+ VPERM2I128 $0x02, CC1, DD1, DD0
+ VPERM2I128 $0x13, AA1, BB1, AA1
+ VPERM2I128 $0x13, CC1, DD1, BB1
+ VPERM2I128 $0x02, AA2, BB2, CC1
+ VPERM2I128 $0x02, CC2, DD2, DD1
+ VPERM2I128 $0x13, AA2, BB2, AA2
+ VPERM2I128 $0x13, CC2, DD2, BB2
+ JMP openAVX2ShortOpen
+
+// ----------------------------------------------------------------------------
+// Special optimization for the last 128 bytes of ciphertext
+openAVX2Tail128:
+ // Need to decrypt up to 128 bytes - prepare two blocks
+ VMOVDQA ·chacha20Constants<>(SB), AA1
+ VMOVDQA state1StoreAVX2, BB1
+ VMOVDQA state2StoreAVX2, CC1
+ VMOVDQA ctr3StoreAVX2, DD1
+ VPADDD ·avx2IncMask<>(SB), DD1, DD1
+ VMOVDQA DD1, DD0
+
+ XORQ itr2, itr2
+ MOVQ inl, itr1
+ ANDQ $-16, itr1
+ TESTQ itr1, itr1
+ JE openAVX2Tail128LoopB
+
+openAVX2Tail128LoopA:
+ // Perform ChaCha rounds, while hashing the remaining input
+ polyAdd(0(inp)(itr2*1))
+ polyMulAVX2
+
+openAVX2Tail128LoopB:
+ ADDQ $16, itr2
+ chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0)
+ VPALIGNR $4, BB1, BB1, BB1
+ VPALIGNR $8, CC1, CC1, CC1
+ VPALIGNR $12, DD1, DD1, DD1
+ chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0)
+ VPALIGNR $12, BB1, BB1, BB1
+ VPALIGNR $8, CC1, CC1, CC1
+ VPALIGNR $4, DD1, DD1, DD1
+ CMPQ itr2, itr1
+ JB openAVX2Tail128LoopA
+ CMPQ itr2, $160
+ JNE openAVX2Tail128LoopB
+
+ VPADDD ·chacha20Constants<>(SB), AA1, AA1
+ VPADDD state1StoreAVX2, BB1, BB1
+ VPADDD state2StoreAVX2, CC1, CC1
+ VPADDD DD0, DD1, DD1
+ VPERM2I128 $0x02, AA1, BB1, AA0; VPERM2I128 $0x02, CC1, DD1, BB0; VPERM2I128 $0x13, AA1, BB1, CC0; VPERM2I128 $0x13, CC1, DD1, DD0
+
+openAVX2TailLoop:
+ CMPQ inl, $32
+ JB openAVX2Tail
+ SUBQ $32, inl
+
+ // Load for decryption
+ VPXOR (inp), AA0, AA0
+ VMOVDQU AA0, (oup)
+ LEAQ (1*32)(inp), inp
+ LEAQ (1*32)(oup), oup
+ VMOVDQA BB0, AA0
+ VMOVDQA CC0, BB0
+ VMOVDQA DD0, CC0
+ JMP openAVX2TailLoop
+
+openAVX2Tail:
+ CMPQ inl, $16
+ VMOVDQA A0, A1
+ JB openAVX2TailDone
+ SUBQ $16, inl
+
+ // Load for decryption
+ VPXOR (inp), A0, T0
+ VMOVDQU T0, (oup)
+ LEAQ (1*16)(inp), inp
+ LEAQ (1*16)(oup), oup
+ VPERM2I128 $0x11, AA0, AA0, AA0
+ VMOVDQA A0, A1
+
+openAVX2TailDone:
+ VZEROUPPER
+ JMP openSSETail16
+
+// ----------------------------------------------------------------------------
+// Special optimization for the last 256 bytes of ciphertext
+openAVX2Tail256:
+ // Need to decrypt up to 256 bytes - prepare four blocks
+ VMOVDQA ·chacha20Constants<>(SB), AA0; VMOVDQA AA0, AA1
+ VMOVDQA state1StoreAVX2, BB0; VMOVDQA BB0, BB1
+ VMOVDQA state2StoreAVX2, CC0; VMOVDQA CC0, CC1
+ VMOVDQA ctr3StoreAVX2, DD0
+ VPADDD ·avx2IncMask<>(SB), DD0, DD0
+ VPADDD ·avx2IncMask<>(SB), DD0, DD1
+ VMOVDQA DD0, TT1
+ VMOVDQA DD1, TT2
+
+ // Compute the number of iterations that will hash data
+ MOVQ inl, tmpStoreAVX2
+ MOVQ inl, itr1
+ SUBQ $128, itr1
+ SHRQ $4, itr1
+ MOVQ $10, itr2
+ CMPQ itr1, $10
+ CMOVQGT itr2, itr1
+ MOVQ inp, inl
+ XORQ itr2, itr2
+
+openAVX2Tail256LoopA:
+ polyAdd(0(inl))
+ polyMulAVX2
+ LEAQ 16(inl), inl
+
+ // Perform ChaCha rounds, while hashing the remaining input
+openAVX2Tail256LoopB:
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0)
+ VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1
+ VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1
+ INCQ itr2
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0)
+ VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1
+ VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1
+ CMPQ itr2, itr1
+ JB openAVX2Tail256LoopA
+
+ CMPQ itr2, $10
+ JNE openAVX2Tail256LoopB
+
+ MOVQ inl, itr2
+ SUBQ inp, inl
+ MOVQ inl, itr1
+ MOVQ tmpStoreAVX2, inl
+
+ // Hash the remainder of data (if any)
+openAVX2Tail256Hash:
+ ADDQ $16, itr1
+ CMPQ itr1, inl
+ JGT openAVX2Tail256HashEnd
+ polyAdd (0(itr2))
+ polyMulAVX2
+ LEAQ 16(itr2), itr2
+ JMP openAVX2Tail256Hash
+
+// Store 128 bytes safely, then go to store loop
+openAVX2Tail256HashEnd:
+ VPADDD ·chacha20Constants<>(SB), AA0, AA0; VPADDD ·chacha20Constants<>(SB), AA1, AA1
+ VPADDD state1StoreAVX2, BB0, BB0; VPADDD state1StoreAVX2, BB1, BB1
+ VPADDD state2StoreAVX2, CC0, CC0; VPADDD state2StoreAVX2, CC1, CC1
+ VPADDD TT1, DD0, DD0; VPADDD TT2, DD1, DD1
+ VPERM2I128 $0x02, AA0, BB0, AA2; VPERM2I128 $0x02, CC0, DD0, BB2; VPERM2I128 $0x13, AA0, BB0, CC2; VPERM2I128 $0x13, CC0, DD0, DD2
+ VPERM2I128 $0x02, AA1, BB1, AA0; VPERM2I128 $0x02, CC1, DD1, BB0; VPERM2I128 $0x13, AA1, BB1, CC0; VPERM2I128 $0x13, CC1, DD1, DD0
+
+ VPXOR (0*32)(inp), AA2, AA2; VPXOR (1*32)(inp), BB2, BB2; VPXOR (2*32)(inp), CC2, CC2; VPXOR (3*32)(inp), DD2, DD2
+ VMOVDQU AA2, (0*32)(oup); VMOVDQU BB2, (1*32)(oup); VMOVDQU CC2, (2*32)(oup); VMOVDQU DD2, (3*32)(oup)
+ LEAQ (4*32)(inp), inp
+ LEAQ (4*32)(oup), oup
+ SUBQ $4*32, inl
+
+ JMP openAVX2TailLoop
+
+// ----------------------------------------------------------------------------
+// Special optimization for the last 384 bytes of ciphertext
+openAVX2Tail384:
+ // Need to decrypt up to 384 bytes - prepare six blocks
+ VMOVDQA ·chacha20Constants<>(SB), AA0; VMOVDQA AA0, AA1; VMOVDQA AA0, AA2
+ VMOVDQA state1StoreAVX2, BB0; VMOVDQA BB0, BB1; VMOVDQA BB0, BB2
+ VMOVDQA state2StoreAVX2, CC0; VMOVDQA CC0, CC1; VMOVDQA CC0, CC2
+ VMOVDQA ctr3StoreAVX2, DD0
+ VPADDD ·avx2IncMask<>(SB), DD0, DD0
+ VPADDD ·avx2IncMask<>(SB), DD0, DD1
+ VPADDD ·avx2IncMask<>(SB), DD1, DD2
+ VMOVDQA DD0, ctr0StoreAVX2
+ VMOVDQA DD1, ctr1StoreAVX2
+ VMOVDQA DD2, ctr2StoreAVX2
+
+ // Compute the number of iterations that will hash two blocks of data
+ MOVQ inl, tmpStoreAVX2
+ MOVQ inl, itr1
+ SUBQ $256, itr1
+ SHRQ $4, itr1
+ ADDQ $6, itr1
+ MOVQ $10, itr2
+ CMPQ itr1, $10
+ CMOVQGT itr2, itr1
+ MOVQ inp, inl
+ XORQ itr2, itr2
+
+ // Perform ChaCha rounds, while hashing the remaining input
+openAVX2Tail384LoopB:
+ polyAdd(0(inl))
+ polyMulAVX2
+ LEAQ 16(inl), inl
+
+openAVX2Tail384LoopA:
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0); chachaQR_AVX2(AA2, BB2, CC2, DD2, TT0)
+ VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $4, BB2, BB2, BB2
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2
+ VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1; VPALIGNR $12, DD2, DD2, DD2
+ polyAdd(0(inl))
+ polyMulAVX2
+ LEAQ 16(inl), inl
+ INCQ itr2
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0); chachaQR_AVX2(AA2, BB2, CC2, DD2, TT0)
+ VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $12, BB2, BB2, BB2
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2
+ VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1; VPALIGNR $4, DD2, DD2, DD2
+
+ CMPQ itr2, itr1
+ JB openAVX2Tail384LoopB
+
+ CMPQ itr2, $10
+ JNE openAVX2Tail384LoopA
+
+ MOVQ inl, itr2
+ SUBQ inp, inl
+ MOVQ inl, itr1
+ MOVQ tmpStoreAVX2, inl
+
+openAVX2Tail384Hash:
+ ADDQ $16, itr1
+ CMPQ itr1, inl
+ JGT openAVX2Tail384HashEnd
+ polyAdd(0(itr2))
+ polyMulAVX2
+ LEAQ 16(itr2), itr2
+ JMP openAVX2Tail384Hash
+
+// Store 256 bytes safely, then go to store loop
+openAVX2Tail384HashEnd:
+ VPADDD ·chacha20Constants<>(SB), AA0, AA0; VPADDD ·chacha20Constants<>(SB), AA1, AA1; VPADDD ·chacha20Constants<>(SB), AA2, AA2
+ VPADDD state1StoreAVX2, BB0, BB0; VPADDD state1StoreAVX2, BB1, BB1; VPADDD state1StoreAVX2, BB2, BB2
+ VPADDD state2StoreAVX2, CC0, CC0; VPADDD state2StoreAVX2, CC1, CC1; VPADDD state2StoreAVX2, CC2, CC2
+ VPADDD ctr0StoreAVX2, DD0, DD0; VPADDD ctr1StoreAVX2, DD1, DD1; VPADDD ctr2StoreAVX2, DD2, DD2
+ VPERM2I128 $0x02, AA0, BB0, TT0; VPERM2I128 $0x02, CC0, DD0, TT1; VPERM2I128 $0x13, AA0, BB0, TT2; VPERM2I128 $0x13, CC0, DD0, TT3
+ VPXOR (0*32)(inp), TT0, TT0; VPXOR (1*32)(inp), TT1, TT1; VPXOR (2*32)(inp), TT2, TT2; VPXOR (3*32)(inp), TT3, TT3
+ VMOVDQU TT0, (0*32)(oup); VMOVDQU TT1, (1*32)(oup); VMOVDQU TT2, (2*32)(oup); VMOVDQU TT3, (3*32)(oup)
+ VPERM2I128 $0x02, AA1, BB1, TT0; VPERM2I128 $0x02, CC1, DD1, TT1; VPERM2I128 $0x13, AA1, BB1, TT2; VPERM2I128 $0x13, CC1, DD1, TT3
+ VPXOR (4*32)(inp), TT0, TT0; VPXOR (5*32)(inp), TT1, TT1; VPXOR (6*32)(inp), TT2, TT2; VPXOR (7*32)(inp), TT3, TT3
+ VMOVDQU TT0, (4*32)(oup); VMOVDQU TT1, (5*32)(oup); VMOVDQU TT2, (6*32)(oup); VMOVDQU TT3, (7*32)(oup)
+ VPERM2I128 $0x02, AA2, BB2, AA0; VPERM2I128 $0x02, CC2, DD2, BB0; VPERM2I128 $0x13, AA2, BB2, CC0; VPERM2I128 $0x13, CC2, DD2, DD0
+ LEAQ (8*32)(inp), inp
+ LEAQ (8*32)(oup), oup
+ SUBQ $8*32, inl
+ JMP openAVX2TailLoop
+
+// ----------------------------------------------------------------------------
+// Special optimization for the last 512 bytes of ciphertext
+openAVX2Tail512:
+ VMOVDQU ·chacha20Constants<>(SB), AA0; VMOVDQA AA0, AA1; VMOVDQA AA0, AA2; VMOVDQA AA0, AA3
+ VMOVDQA state1StoreAVX2, BB0; VMOVDQA BB0, BB1; VMOVDQA BB0, BB2; VMOVDQA BB0, BB3
+ VMOVDQA state2StoreAVX2, CC0; VMOVDQA CC0, CC1; VMOVDQA CC0, CC2; VMOVDQA CC0, CC3
+ VMOVDQA ctr3StoreAVX2, DD0; VPADDD ·avx2IncMask<>(SB), DD0, DD0; VPADDD ·avx2IncMask<>(SB), DD0, DD1; VPADDD ·avx2IncMask<>(SB), DD1, DD2; VPADDD ·avx2IncMask<>(SB), DD2, DD3
+ VMOVDQA DD0, ctr0StoreAVX2; VMOVDQA DD1, ctr1StoreAVX2; VMOVDQA DD2, ctr2StoreAVX2; VMOVDQA DD3, ctr3StoreAVX2
+ XORQ itr1, itr1
+ MOVQ inp, itr2
+
+openAVX2Tail512LoopB:
+ polyAdd(0(itr2))
+ polyMulAVX2
+ LEAQ (2*8)(itr2), itr2
+
+openAVX2Tail512LoopA:
+ VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3
+ VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3
+ VPSHUFB ·rol16<>(SB), DD0, DD0; VPSHUFB ·rol16<>(SB), DD1, DD1; VPSHUFB ·rol16<>(SB), DD2, DD2; VPSHUFB ·rol16<>(SB), DD3, DD3
+ VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3
+ VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3
+ VMOVDQA CC3, tmpStoreAVX2
+ VPSLLD $12, BB0, CC3; VPSRLD $20, BB0, BB0; VPXOR CC3, BB0, BB0
+ VPSLLD $12, BB1, CC3; VPSRLD $20, BB1, BB1; VPXOR CC3, BB1, BB1
+ VPSLLD $12, BB2, CC3; VPSRLD $20, BB2, BB2; VPXOR CC3, BB2, BB2
+ VPSLLD $12, BB3, CC3; VPSRLD $20, BB3, BB3; VPXOR CC3, BB3, BB3
+ VMOVDQA tmpStoreAVX2, CC3
+ polyAdd(0*8(itr2))
+ polyMulAVX2
+ VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3
+ VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3
+ VPSHUFB ·rol8<>(SB), DD0, DD0; VPSHUFB ·rol8<>(SB), DD1, DD1; VPSHUFB ·rol8<>(SB), DD2, DD2; VPSHUFB ·rol8<>(SB), DD3, DD3
+ VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3
+ VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3
+ VMOVDQA CC3, tmpStoreAVX2
+ VPSLLD $7, BB0, CC3; VPSRLD $25, BB0, BB0; VPXOR CC3, BB0, BB0
+ VPSLLD $7, BB1, CC3; VPSRLD $25, BB1, BB1; VPXOR CC3, BB1, BB1
+ VPSLLD $7, BB2, CC3; VPSRLD $25, BB2, BB2; VPXOR CC3, BB2, BB2
+ VPSLLD $7, BB3, CC3; VPSRLD $25, BB3, BB3; VPXOR CC3, BB3, BB3
+ VMOVDQA tmpStoreAVX2, CC3
+ VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $4, BB2, BB2, BB2; VPALIGNR $4, BB3, BB3, BB3
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $8, CC3, CC3, CC3
+ VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1; VPALIGNR $12, DD2, DD2, DD2; VPALIGNR $12, DD3, DD3, DD3
+ VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3
+ VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3
+ VPSHUFB ·rol16<>(SB), DD0, DD0; VPSHUFB ·rol16<>(SB), DD1, DD1; VPSHUFB ·rol16<>(SB), DD2, DD2; VPSHUFB ·rol16<>(SB), DD3, DD3
+ VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3
+ VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3
+ polyAdd(2*8(itr2))
+ polyMulAVX2
+ LEAQ (4*8)(itr2), itr2
+ VMOVDQA CC3, tmpStoreAVX2
+ VPSLLD $12, BB0, CC3; VPSRLD $20, BB0, BB0; VPXOR CC3, BB0, BB0
+ VPSLLD $12, BB1, CC3; VPSRLD $20, BB1, BB1; VPXOR CC3, BB1, BB1
+ VPSLLD $12, BB2, CC3; VPSRLD $20, BB2, BB2; VPXOR CC3, BB2, BB2
+ VPSLLD $12, BB3, CC3; VPSRLD $20, BB3, BB3; VPXOR CC3, BB3, BB3
+ VMOVDQA tmpStoreAVX2, CC3
+ VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3
+ VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3
+ VPSHUFB ·rol8<>(SB), DD0, DD0; VPSHUFB ·rol8<>(SB), DD1, DD1; VPSHUFB ·rol8<>(SB), DD2, DD2; VPSHUFB ·rol8<>(SB), DD3, DD3
+ VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3
+ VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3
+ VMOVDQA CC3, tmpStoreAVX2
+ VPSLLD $7, BB0, CC3; VPSRLD $25, BB0, BB0; VPXOR CC3, BB0, BB0
+ VPSLLD $7, BB1, CC3; VPSRLD $25, BB1, BB1; VPXOR CC3, BB1, BB1
+ VPSLLD $7, BB2, CC3; VPSRLD $25, BB2, BB2; VPXOR CC3, BB2, BB2
+ VPSLLD $7, BB3, CC3; VPSRLD $25, BB3, BB3; VPXOR CC3, BB3, BB3
+ VMOVDQA tmpStoreAVX2, CC3
+ VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $12, BB2, BB2, BB2; VPALIGNR $12, BB3, BB3, BB3
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $8, CC3, CC3, CC3
+ VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1; VPALIGNR $4, DD2, DD2, DD2; VPALIGNR $4, DD3, DD3, DD3
+ INCQ itr1
+ CMPQ itr1, $4
+ JLT openAVX2Tail512LoopB
+
+ CMPQ itr1, $10
+ JNE openAVX2Tail512LoopA
+
+ MOVQ inl, itr1
+ SUBQ $384, itr1
+ ANDQ $-16, itr1
+
+openAVX2Tail512HashLoop:
+ TESTQ itr1, itr1
+ JE openAVX2Tail512HashEnd
+ polyAdd(0(itr2))
+ polyMulAVX2
+ LEAQ 16(itr2), itr2
+ SUBQ $16, itr1
+ JMP openAVX2Tail512HashLoop
+
+openAVX2Tail512HashEnd:
+ VPADDD ·chacha20Constants<>(SB), AA0, AA0; VPADDD ·chacha20Constants<>(SB), AA1, AA1; VPADDD ·chacha20Constants<>(SB), AA2, AA2; VPADDD ·chacha20Constants<>(SB), AA3, AA3
+ VPADDD state1StoreAVX2, BB0, BB0; VPADDD state1StoreAVX2, BB1, BB1; VPADDD state1StoreAVX2, BB2, BB2; VPADDD state1StoreAVX2, BB3, BB3
+ VPADDD state2StoreAVX2, CC0, CC0; VPADDD state2StoreAVX2, CC1, CC1; VPADDD state2StoreAVX2, CC2, CC2; VPADDD state2StoreAVX2, CC3, CC3
+ VPADDD ctr0StoreAVX2, DD0, DD0; VPADDD ctr1StoreAVX2, DD1, DD1; VPADDD ctr2StoreAVX2, DD2, DD2; VPADDD ctr3StoreAVX2, DD3, DD3
+ VMOVDQA CC3, tmpStoreAVX2
+ VPERM2I128 $0x02, AA0, BB0, CC3; VPERM2I128 $0x13, AA0, BB0, BB0; VPERM2I128 $0x02, CC0, DD0, AA0; VPERM2I128 $0x13, CC0, DD0, CC0
+ VPXOR (0*32)(inp), CC3, CC3; VPXOR (1*32)(inp), AA0, AA0; VPXOR (2*32)(inp), BB0, BB0; VPXOR (3*32)(inp), CC0, CC0
+ VMOVDQU CC3, (0*32)(oup); VMOVDQU AA0, (1*32)(oup); VMOVDQU BB0, (2*32)(oup); VMOVDQU CC0, (3*32)(oup)
+ VPERM2I128 $0x02, AA1, BB1, AA0; VPERM2I128 $0x02, CC1, DD1, BB0; VPERM2I128 $0x13, AA1, BB1, CC0; VPERM2I128 $0x13, CC1, DD1, DD0
+ VPXOR (4*32)(inp), AA0, AA0; VPXOR (5*32)(inp), BB0, BB0; VPXOR (6*32)(inp), CC0, CC0; VPXOR (7*32)(inp), DD0, DD0
+ VMOVDQU AA0, (4*32)(oup); VMOVDQU BB0, (5*32)(oup); VMOVDQU CC0, (6*32)(oup); VMOVDQU DD0, (7*32)(oup)
+ VPERM2I128 $0x02, AA2, BB2, AA0; VPERM2I128 $0x02, CC2, DD2, BB0; VPERM2I128 $0x13, AA2, BB2, CC0; VPERM2I128 $0x13, CC2, DD2, DD0
+ VPXOR (8*32)(inp), AA0, AA0; VPXOR (9*32)(inp), BB0, BB0; VPXOR (10*32)(inp), CC0, CC0; VPXOR (11*32)(inp), DD0, DD0
+ VMOVDQU AA0, (8*32)(oup); VMOVDQU BB0, (9*32)(oup); VMOVDQU CC0, (10*32)(oup); VMOVDQU DD0, (11*32)(oup)
+ VPERM2I128 $0x02, AA3, BB3, AA0; VPERM2I128 $0x02, tmpStoreAVX2, DD3, BB0; VPERM2I128 $0x13, AA3, BB3, CC0; VPERM2I128 $0x13, tmpStoreAVX2, DD3, DD0
+
+ LEAQ (12*32)(inp), inp
+ LEAQ (12*32)(oup), oup
+ SUBQ $12*32, inl
+
+ JMP openAVX2TailLoop
+
+// ----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+// func chacha20Poly1305Seal(dst, key, src, ad []byte)
+TEXT ·chacha20Poly1305Seal(SB), 0, $288-96
+ // For aligned stack access
+ MOVQ SP, BP
+ ADDQ $32, BP
+ ANDQ $-32, BP
+ MOVQ dst+0(FP), oup
+ MOVQ key+24(FP), keyp
+ MOVQ src+48(FP), inp
+ MOVQ src_len+56(FP), inl
+ MOVQ ad+72(FP), adp
+
+ CMPB ·useAVX2(SB), $1
+ JE chacha20Poly1305Seal_AVX2
+
+ // Special optimization, for very short buffers
+ CMPQ inl, $128
+ JBE sealSSE128 // About 15% faster
+
+ // In the seal case - prepare the poly key + 3 blocks of stream in the first iteration
+ MOVOU ·chacha20Constants<>(SB), A0
+ MOVOU (1*16)(keyp), B0
+ MOVOU (2*16)(keyp), C0
+ MOVOU (3*16)(keyp), D0
+
+ // Store state on stack for future use
+ MOVO B0, state1Store
+ MOVO C0, state2Store
+
+ // Load state, increment counter blocks
+ MOVO A0, A1; MOVO B0, B1; MOVO C0, C1; MOVO D0, D1; PADDL ·sseIncMask<>(SB), D1
+ MOVO A1, A2; MOVO B1, B2; MOVO C1, C2; MOVO D1, D2; PADDL ·sseIncMask<>(SB), D2
+ MOVO A2, A3; MOVO B2, B3; MOVO C2, C3; MOVO D2, D3; PADDL ·sseIncMask<>(SB), D3
+
+ // Store counters
+ MOVO D0, ctr0Store; MOVO D1, ctr1Store; MOVO D2, ctr2Store; MOVO D3, ctr3Store
+ MOVQ $10, itr2
+
+sealSSEIntroLoop:
+ MOVO C3, tmpStore
+ chachaQR(A0, B0, C0, D0, C3); chachaQR(A1, B1, C1, D1, C3); chachaQR(A2, B2, C2, D2, C3)
+ MOVO tmpStore, C3
+ MOVO C1, tmpStore
+ chachaQR(A3, B3, C3, D3, C1)
+ MOVO tmpStore, C1
+ shiftB0Left; shiftB1Left; shiftB2Left; shiftB3Left
+ shiftC0Left; shiftC1Left; shiftC2Left; shiftC3Left
+ shiftD0Left; shiftD1Left; shiftD2Left; shiftD3Left
+
+ MOVO C3, tmpStore
+ chachaQR(A0, B0, C0, D0, C3); chachaQR(A1, B1, C1, D1, C3); chachaQR(A2, B2, C2, D2, C3)
+ MOVO tmpStore, C3
+ MOVO C1, tmpStore
+ chachaQR(A3, B3, C3, D3, C1)
+ MOVO tmpStore, C1
+ shiftB0Right; shiftB1Right; shiftB2Right; shiftB3Right
+ shiftC0Right; shiftC1Right; shiftC2Right; shiftC3Right
+ shiftD0Right; shiftD1Right; shiftD2Right; shiftD3Right
+ DECQ itr2
+ JNE sealSSEIntroLoop
+
+ // Add in the state
+ PADDD ·chacha20Constants<>(SB), A0; PADDD ·chacha20Constants<>(SB), A1; PADDD ·chacha20Constants<>(SB), A2; PADDD ·chacha20Constants<>(SB), A3
+ PADDD state1Store, B0; PADDD state1Store, B1; PADDD state1Store, B2; PADDD state1Store, B3
+ PADDD state2Store, C1; PADDD state2Store, C2; PADDD state2Store, C3
+ PADDD ctr1Store, D1; PADDD ctr2Store, D2; PADDD ctr3Store, D3
+
+ // Clamp and store the key
+ PAND ·polyClampMask<>(SB), A0
+ MOVO A0, rStore
+ MOVO B0, sStore
+
+ // Hash AAD
+ MOVQ ad_len+80(FP), itr2
+ CALL polyHashADInternal<>(SB)
+
+ MOVOU (0*16)(inp), A0; MOVOU (1*16)(inp), B0; MOVOU (2*16)(inp), C0; MOVOU (3*16)(inp), D0
+ PXOR A0, A1; PXOR B0, B1; PXOR C0, C1; PXOR D0, D1
+ MOVOU A1, (0*16)(oup); MOVOU B1, (1*16)(oup); MOVOU C1, (2*16)(oup); MOVOU D1, (3*16)(oup)
+ MOVOU (4*16)(inp), A0; MOVOU (5*16)(inp), B0; MOVOU (6*16)(inp), C0; MOVOU (7*16)(inp), D0
+ PXOR A0, A2; PXOR B0, B2; PXOR C0, C2; PXOR D0, D2
+ MOVOU A2, (4*16)(oup); MOVOU B2, (5*16)(oup); MOVOU C2, (6*16)(oup); MOVOU D2, (7*16)(oup)
+
+ MOVQ $128, itr1
+ SUBQ $128, inl
+ LEAQ 128(inp), inp
+
+ MOVO A3, A1; MOVO B3, B1; MOVO C3, C1; MOVO D3, D1
+
+ CMPQ inl, $64
+ JBE sealSSE128SealHash
+
+ MOVOU (0*16)(inp), A0; MOVOU (1*16)(inp), B0; MOVOU (2*16)(inp), C0; MOVOU (3*16)(inp), D0
+ PXOR A0, A3; PXOR B0, B3; PXOR C0, C3; PXOR D0, D3
+ MOVOU A3, (8*16)(oup); MOVOU B3, (9*16)(oup); MOVOU C3, (10*16)(oup); MOVOU D3, (11*16)(oup)
+
+ ADDQ $64, itr1
+ SUBQ $64, inl
+ LEAQ 64(inp), inp
+
+ MOVQ $2, itr1
+ MOVQ $8, itr2
+
+ CMPQ inl, $64
+ JBE sealSSETail64
+ CMPQ inl, $128
+ JBE sealSSETail128
+ CMPQ inl, $192
+ JBE sealSSETail192
+
+sealSSEMainLoop:
+ // Load state, increment counter blocks
+ MOVO ·chacha20Constants<>(SB), A0; MOVO state1Store, B0; MOVO state2Store, C0; MOVO ctr3Store, D0; PADDL ·sseIncMask<>(SB), D0
+ MOVO A0, A1; MOVO B0, B1; MOVO C0, C1; MOVO D0, D1; PADDL ·sseIncMask<>(SB), D1
+ MOVO A1, A2; MOVO B1, B2; MOVO C1, C2; MOVO D1, D2; PADDL ·sseIncMask<>(SB), D2
+ MOVO A2, A3; MOVO B2, B3; MOVO C2, C3; MOVO D2, D3; PADDL ·sseIncMask<>(SB), D3
+
+ // Store counters
+ MOVO D0, ctr0Store; MOVO D1, ctr1Store; MOVO D2, ctr2Store; MOVO D3, ctr3Store
+
+sealSSEInnerLoop:
+ MOVO C3, tmpStore
+ chachaQR(A0, B0, C0, D0, C3); chachaQR(A1, B1, C1, D1, C3); chachaQR(A2, B2, C2, D2, C3)
+ MOVO tmpStore, C3
+ MOVO C1, tmpStore
+ chachaQR(A3, B3, C3, D3, C1)
+ MOVO tmpStore, C1
+ polyAdd(0(oup))
+ shiftB0Left; shiftB1Left; shiftB2Left; shiftB3Left
+ shiftC0Left; shiftC1Left; shiftC2Left; shiftC3Left
+ shiftD0Left; shiftD1Left; shiftD2Left; shiftD3Left
+ polyMulStage1
+ polyMulStage2
+ LEAQ (2*8)(oup), oup
+ MOVO C3, tmpStore
+ chachaQR(A0, B0, C0, D0, C3); chachaQR(A1, B1, C1, D1, C3); chachaQR(A2, B2, C2, D2, C3)
+ MOVO tmpStore, C3
+ MOVO C1, tmpStore
+ polyMulStage3
+ chachaQR(A3, B3, C3, D3, C1)
+ MOVO tmpStore, C1
+ polyMulReduceStage
+ shiftB0Right; shiftB1Right; shiftB2Right; shiftB3Right
+ shiftC0Right; shiftC1Right; shiftC2Right; shiftC3Right
+ shiftD0Right; shiftD1Right; shiftD2Right; shiftD3Right
+ DECQ itr2
+ JGE sealSSEInnerLoop
+ polyAdd(0(oup))
+ polyMul
+ LEAQ (2*8)(oup), oup
+ DECQ itr1
+ JG sealSSEInnerLoop
+
+ // Add in the state
+ PADDD ·chacha20Constants<>(SB), A0; PADDD ·chacha20Constants<>(SB), A1; PADDD ·chacha20Constants<>(SB), A2; PADDD ·chacha20Constants<>(SB), A3
+ PADDD state1Store, B0; PADDD state1Store, B1; PADDD state1Store, B2; PADDD state1Store, B3
+ PADDD state2Store, C0; PADDD state2Store, C1; PADDD state2Store, C2; PADDD state2Store, C3
+ PADDD ctr0Store, D0; PADDD ctr1Store, D1; PADDD ctr2Store, D2; PADDD ctr3Store, D3
+ MOVO D3, tmpStore
+
+ // Load - xor - store
+ MOVOU (0*16)(inp), D3; PXOR D3, A0
+ MOVOU (1*16)(inp), D3; PXOR D3, B0
+ MOVOU (2*16)(inp), D3; PXOR D3, C0
+ MOVOU (3*16)(inp), D3; PXOR D3, D0
+ MOVOU A0, (0*16)(oup)
+ MOVOU B0, (1*16)(oup)
+ MOVOU C0, (2*16)(oup)
+ MOVOU D0, (3*16)(oup)
+ MOVO tmpStore, D3
+
+ MOVOU (4*16)(inp), A0; MOVOU (5*16)(inp), B0; MOVOU (6*16)(inp), C0; MOVOU (7*16)(inp), D0
+ PXOR A0, A1; PXOR B0, B1; PXOR C0, C1; PXOR D0, D1
+ MOVOU A1, (4*16)(oup); MOVOU B1, (5*16)(oup); MOVOU C1, (6*16)(oup); MOVOU D1, (7*16)(oup)
+ MOVOU (8*16)(inp), A0; MOVOU (9*16)(inp), B0; MOVOU (10*16)(inp), C0; MOVOU (11*16)(inp), D0
+ PXOR A0, A2; PXOR B0, B2; PXOR C0, C2; PXOR D0, D2
+ MOVOU A2, (8*16)(oup); MOVOU B2, (9*16)(oup); MOVOU C2, (10*16)(oup); MOVOU D2, (11*16)(oup)
+ ADDQ $192, inp
+ MOVQ $192, itr1
+ SUBQ $192, inl
+ MOVO A3, A1
+ MOVO B3, B1
+ MOVO C3, C1
+ MOVO D3, D1
+ CMPQ inl, $64
+ JBE sealSSE128SealHash
+ MOVOU (0*16)(inp), A0; MOVOU (1*16)(inp), B0; MOVOU (2*16)(inp), C0; MOVOU (3*16)(inp), D0
+ PXOR A0, A3; PXOR B0, B3; PXOR C0, C3; PXOR D0, D3
+ MOVOU A3, (12*16)(oup); MOVOU B3, (13*16)(oup); MOVOU C3, (14*16)(oup); MOVOU D3, (15*16)(oup)
+ LEAQ 64(inp), inp
+ SUBQ $64, inl
+ MOVQ $6, itr1
+ MOVQ $4, itr2
+ CMPQ inl, $192
+ JG sealSSEMainLoop
+
+ MOVQ inl, itr1
+ TESTQ inl, inl
+ JE sealSSE128SealHash
+ MOVQ $6, itr1
+ CMPQ inl, $64
+ JBE sealSSETail64
+ CMPQ inl, $128
+ JBE sealSSETail128
+ JMP sealSSETail192
+
+// ----------------------------------------------------------------------------
+// Special optimization for the last 64 bytes of plaintext
+sealSSETail64:
+ // Need to encrypt up to 64 bytes - prepare single block, hash 192 or 256 bytes
+ MOVO ·chacha20Constants<>(SB), A1
+ MOVO state1Store, B1
+ MOVO state2Store, C1
+ MOVO ctr3Store, D1
+ PADDL ·sseIncMask<>(SB), D1
+ MOVO D1, ctr0Store
+
+sealSSETail64LoopA:
+ // Perform ChaCha rounds, while hashing the previously encrypted ciphertext
+ polyAdd(0(oup))
+ polyMul
+ LEAQ 16(oup), oup
+
+sealSSETail64LoopB:
+ chachaQR(A1, B1, C1, D1, T1)
+ shiftB1Left; shiftC1Left; shiftD1Left
+ chachaQR(A1, B1, C1, D1, T1)
+ shiftB1Right; shiftC1Right; shiftD1Right
+ polyAdd(0(oup))
+ polyMul
+ LEAQ 16(oup), oup
+
+ DECQ itr1
+ JG sealSSETail64LoopA
+
+ DECQ itr2
+ JGE sealSSETail64LoopB
+ PADDL ·chacha20Constants<>(SB), A1
+ PADDL state1Store, B1
+ PADDL state2Store, C1
+ PADDL ctr0Store, D1
+
+ JMP sealSSE128Seal
+
+// ----------------------------------------------------------------------------
+// Special optimization for the last 128 bytes of plaintext
+sealSSETail128:
+ // Need to encrypt up to 128 bytes - prepare two blocks, hash 192 or 256 bytes
+ MOVO ·chacha20Constants<>(SB), A0; MOVO state1Store, B0; MOVO state2Store, C0; MOVO ctr3Store, D0; PADDL ·sseIncMask<>(SB), D0; MOVO D0, ctr0Store
+ MOVO A0, A1; MOVO B0, B1; MOVO C0, C1; MOVO D0, D1; PADDL ·sseIncMask<>(SB), D1; MOVO D1, ctr1Store
+
+sealSSETail128LoopA:
+ // Perform ChaCha rounds, while hashing the previously encrypted ciphertext
+ polyAdd(0(oup))
+ polyMul
+ LEAQ 16(oup), oup
+
+sealSSETail128LoopB:
+ chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0)
+ shiftB0Left; shiftC0Left; shiftD0Left
+ shiftB1Left; shiftC1Left; shiftD1Left
+ polyAdd(0(oup))
+ polyMul
+ LEAQ 16(oup), oup
+ chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0)
+ shiftB0Right; shiftC0Right; shiftD0Right
+ shiftB1Right; shiftC1Right; shiftD1Right
+
+ DECQ itr1
+ JG sealSSETail128LoopA
+
+ DECQ itr2
+ JGE sealSSETail128LoopB
+
+ PADDL ·chacha20Constants<>(SB), A0; PADDL ·chacha20Constants<>(SB), A1
+ PADDL state1Store, B0; PADDL state1Store, B1
+ PADDL state2Store, C0; PADDL state2Store, C1
+ PADDL ctr0Store, D0; PADDL ctr1Store, D1
+
+ MOVOU (0*16)(inp), T0; MOVOU (1*16)(inp), T1; MOVOU (2*16)(inp), T2; MOVOU (3*16)(inp), T3
+ PXOR T0, A0; PXOR T1, B0; PXOR T2, C0; PXOR T3, D0
+ MOVOU A0, (0*16)(oup); MOVOU B0, (1*16)(oup); MOVOU C0, (2*16)(oup); MOVOU D0, (3*16)(oup)
+
+ MOVQ $64, itr1
+ LEAQ 64(inp), inp
+ SUBQ $64, inl
+
+ JMP sealSSE128SealHash
+
+// ----------------------------------------------------------------------------
+// Special optimization for the last 192 bytes of plaintext
+sealSSETail192:
+ // Need to encrypt up to 192 bytes - prepare three blocks, hash 192 or 256 bytes
+ MOVO ·chacha20Constants<>(SB), A0; MOVO state1Store, B0; MOVO state2Store, C0; MOVO ctr3Store, D0; PADDL ·sseIncMask<>(SB), D0; MOVO D0, ctr0Store
+ MOVO A0, A1; MOVO B0, B1; MOVO C0, C1; MOVO D0, D1; PADDL ·sseIncMask<>(SB), D1; MOVO D1, ctr1Store
+ MOVO A1, A2; MOVO B1, B2; MOVO C1, C2; MOVO D1, D2; PADDL ·sseIncMask<>(SB), D2; MOVO D2, ctr2Store
+
+sealSSETail192LoopA:
+ // Perform ChaCha rounds, while hashing the previously encrypted ciphertext
+ polyAdd(0(oup))
+ polyMul
+ LEAQ 16(oup), oup
+
+sealSSETail192LoopB:
+ chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0); chachaQR(A2, B2, C2, D2, T0)
+ shiftB0Left; shiftC0Left; shiftD0Left
+ shiftB1Left; shiftC1Left; shiftD1Left
+ shiftB2Left; shiftC2Left; shiftD2Left
+
+ polyAdd(0(oup))
+ polyMul
+ LEAQ 16(oup), oup
+
+ chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0); chachaQR(A2, B2, C2, D2, T0)
+ shiftB0Right; shiftC0Right; shiftD0Right
+ shiftB1Right; shiftC1Right; shiftD1Right
+ shiftB2Right; shiftC2Right; shiftD2Right
+
+ DECQ itr1
+ JG sealSSETail192LoopA
+
+ DECQ itr2
+ JGE sealSSETail192LoopB
+
+ PADDL ·chacha20Constants<>(SB), A0; PADDL ·chacha20Constants<>(SB), A1; PADDL ·chacha20Constants<>(SB), A2
+ PADDL state1Store, B0; PADDL state1Store, B1; PADDL state1Store, B2
+ PADDL state2Store, C0; PADDL state2Store, C1; PADDL state2Store, C2
+ PADDL ctr0Store, D0; PADDL ctr1Store, D1; PADDL ctr2Store, D2
+
+ MOVOU (0*16)(inp), T0; MOVOU (1*16)(inp), T1; MOVOU (2*16)(inp), T2; MOVOU (3*16)(inp), T3
+ PXOR T0, A0; PXOR T1, B0; PXOR T2, C0; PXOR T3, D0
+ MOVOU A0, (0*16)(oup); MOVOU B0, (1*16)(oup); MOVOU C0, (2*16)(oup); MOVOU D0, (3*16)(oup)
+ MOVOU (4*16)(inp), T0; MOVOU (5*16)(inp), T1; MOVOU (6*16)(inp), T2; MOVOU (7*16)(inp), T3
+ PXOR T0, A1; PXOR T1, B1; PXOR T2, C1; PXOR T3, D1
+ MOVOU A1, (4*16)(oup); MOVOU B1, (5*16)(oup); MOVOU C1, (6*16)(oup); MOVOU D1, (7*16)(oup)
+
+ MOVO A2, A1
+ MOVO B2, B1
+ MOVO C2, C1
+ MOVO D2, D1
+ MOVQ $128, itr1
+ LEAQ 128(inp), inp
+ SUBQ $128, inl
+
+ JMP sealSSE128SealHash
+
+// ----------------------------------------------------------------------------
+// Special seal optimization for buffers smaller than 129 bytes
+sealSSE128:
+ // For up to 128 bytes of ciphertext and 64 bytes for the poly key, we require to process three blocks
+ MOVOU ·chacha20Constants<>(SB), A0; MOVOU (1*16)(keyp), B0; MOVOU (2*16)(keyp), C0; MOVOU (3*16)(keyp), D0
+ MOVO A0, A1; MOVO B0, B1; MOVO C0, C1; MOVO D0, D1; PADDL ·sseIncMask<>(SB), D1
+ MOVO A1, A2; MOVO B1, B2; MOVO C1, C2; MOVO D1, D2; PADDL ·sseIncMask<>(SB), D2
+ MOVO B0, T1; MOVO C0, T2; MOVO D1, T3
+ MOVQ $10, itr2
+
+sealSSE128InnerCipherLoop:
+ chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0); chachaQR(A2, B2, C2, D2, T0)
+ shiftB0Left; shiftB1Left; shiftB2Left
+ shiftC0Left; shiftC1Left; shiftC2Left
+ shiftD0Left; shiftD1Left; shiftD2Left
+ chachaQR(A0, B0, C0, D0, T0); chachaQR(A1, B1, C1, D1, T0); chachaQR(A2, B2, C2, D2, T0)
+ shiftB0Right; shiftB1Right; shiftB2Right
+ shiftC0Right; shiftC1Right; shiftC2Right
+ shiftD0Right; shiftD1Right; shiftD2Right
+ DECQ itr2
+ JNE sealSSE128InnerCipherLoop
+
+ // A0|B0 hold the Poly1305 32-byte key, C0,D0 can be discarded
+ PADDL ·chacha20Constants<>(SB), A0; PADDL ·chacha20Constants<>(SB), A1; PADDL ·chacha20Constants<>(SB), A2
+ PADDL T1, B0; PADDL T1, B1; PADDL T1, B2
+ PADDL T2, C1; PADDL T2, C2
+ PADDL T3, D1; PADDL ·sseIncMask<>(SB), T3; PADDL T3, D2
+ PAND ·polyClampMask<>(SB), A0
+ MOVOU A0, rStore
+ MOVOU B0, sStore
+
+ // Hash
+ MOVQ ad_len+80(FP), itr2
+ CALL polyHashADInternal<>(SB)
+ XORQ itr1, itr1
+
+sealSSE128SealHash:
+ // itr1 holds the number of bytes encrypted but not yet hashed
+ CMPQ itr1, $16
+ JB sealSSE128Seal
+ polyAdd(0(oup))
+ polyMul
+
+ SUBQ $16, itr1
+ ADDQ $16, oup
+
+ JMP sealSSE128SealHash
+
+sealSSE128Seal:
+ CMPQ inl, $16
+ JB sealSSETail
+ SUBQ $16, inl
+
+ // Load for decryption
+ MOVOU (inp), T0
+ PXOR T0, A1
+ MOVOU A1, (oup)
+ LEAQ (1*16)(inp), inp
+ LEAQ (1*16)(oup), oup
+
+ // Extract for hashing
+ MOVQ A1, t0
+ PSRLDQ $8, A1
+ MOVQ A1, t1
+ ADDQ t0, acc0; ADCQ t1, acc1; ADCQ $1, acc2
+ polyMul
+
+ // Shift the stream "left"
+ MOVO B1, A1
+ MOVO C1, B1
+ MOVO D1, C1
+ MOVO A2, D1
+ MOVO B2, A2
+ MOVO C2, B2
+ MOVO D2, C2
+ JMP sealSSE128Seal
+
+sealSSETail:
+ TESTQ inl, inl
+ JE sealSSEFinalize
+
+ // We can only load the PT one byte at a time to avoid read after end of buffer
+ MOVQ inl, itr2
+ SHLQ $4, itr2
+ LEAQ ·andMask<>(SB), t0
+ MOVQ inl, itr1
+ LEAQ -1(inp)(inl*1), inp
+ XORQ t2, t2
+ XORQ t3, t3
+ XORQ AX, AX
+
+sealSSETailLoadLoop:
+ SHLQ $8, t2, t3
+ SHLQ $8, t2
+ MOVB (inp), AX
+ XORQ AX, t2
+ LEAQ -1(inp), inp
+ DECQ itr1
+ JNE sealSSETailLoadLoop
+ MOVQ t2, 0+tmpStore
+ MOVQ t3, 8+tmpStore
+ PXOR 0+tmpStore, A1
+ MOVOU A1, (oup)
+ MOVOU -16(t0)(itr2*1), T0
+ PAND T0, A1
+ MOVQ A1, t0
+ PSRLDQ $8, A1
+ MOVQ A1, t1
+ ADDQ t0, acc0; ADCQ t1, acc1; ADCQ $1, acc2
+ polyMul
+
+ ADDQ inl, oup
+
+sealSSEFinalize:
+ // Hash in the buffer lengths
+ ADDQ ad_len+80(FP), acc0
+ ADCQ src_len+56(FP), acc1
+ ADCQ $1, acc2
+ polyMul
+
+ // Final reduce
+ MOVQ acc0, t0
+ MOVQ acc1, t1
+ MOVQ acc2, t2
+ SUBQ $-5, acc0
+ SBBQ $-1, acc1
+ SBBQ $3, acc2
+ CMOVQCS t0, acc0
+ CMOVQCS t1, acc1
+ CMOVQCS t2, acc2
+
+ // Add in the "s" part of the key
+ ADDQ 0+sStore, acc0
+ ADCQ 8+sStore, acc1
+
+ // Finally store the tag at the end of the message
+ MOVQ acc0, (0*8)(oup)
+ MOVQ acc1, (1*8)(oup)
+ RET
+
+// ----------------------------------------------------------------------------
+// ------------------------- AVX2 Code ----------------------------------------
+chacha20Poly1305Seal_AVX2:
+ VZEROUPPER
+ VMOVDQU ·chacha20Constants<>(SB), AA0
+ BYTE $0xc4; BYTE $0x42; BYTE $0x7d; BYTE $0x5a; BYTE $0x70; BYTE $0x10 // broadcasti128 16(r8), ymm14
+ BYTE $0xc4; BYTE $0x42; BYTE $0x7d; BYTE $0x5a; BYTE $0x60; BYTE $0x20 // broadcasti128 32(r8), ymm12
+ BYTE $0xc4; BYTE $0xc2; BYTE $0x7d; BYTE $0x5a; BYTE $0x60; BYTE $0x30 // broadcasti128 48(r8), ymm4
+ VPADDD ·avx2InitMask<>(SB), DD0, DD0
+
+ // Special optimizations, for very short buffers
+ CMPQ inl, $192
+ JBE seal192AVX2 // 33% faster
+ CMPQ inl, $320
+ JBE seal320AVX2 // 17% faster
+
+ // For the general key prepare the key first - as a byproduct we have 64 bytes of cipher stream
+ VMOVDQA AA0, AA1; VMOVDQA AA0, AA2; VMOVDQA AA0, AA3
+ VMOVDQA BB0, BB1; VMOVDQA BB0, BB2; VMOVDQA BB0, BB3; VMOVDQA BB0, state1StoreAVX2
+ VMOVDQA CC0, CC1; VMOVDQA CC0, CC2; VMOVDQA CC0, CC3; VMOVDQA CC0, state2StoreAVX2
+ VPADDD ·avx2IncMask<>(SB), DD0, DD1; VMOVDQA DD0, ctr0StoreAVX2
+ VPADDD ·avx2IncMask<>(SB), DD1, DD2; VMOVDQA DD1, ctr1StoreAVX2
+ VPADDD ·avx2IncMask<>(SB), DD2, DD3; VMOVDQA DD2, ctr2StoreAVX2
+ VMOVDQA DD3, ctr3StoreAVX2
+ MOVQ $10, itr2
+
+sealAVX2IntroLoop:
+ VMOVDQA CC3, tmpStoreAVX2
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, CC3); chachaQR_AVX2(AA1, BB1, CC1, DD1, CC3); chachaQR_AVX2(AA2, BB2, CC2, DD2, CC3)
+ VMOVDQA tmpStoreAVX2, CC3
+ VMOVDQA CC1, tmpStoreAVX2
+ chachaQR_AVX2(AA3, BB3, CC3, DD3, CC1)
+ VMOVDQA tmpStoreAVX2, CC1
+
+ VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $12, DD0, DD0, DD0
+ VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $12, DD1, DD1, DD1
+ VPALIGNR $4, BB2, BB2, BB2; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $12, DD2, DD2, DD2
+ VPALIGNR $4, BB3, BB3, BB3; VPALIGNR $8, CC3, CC3, CC3; VPALIGNR $12, DD3, DD3, DD3
+
+ VMOVDQA CC3, tmpStoreAVX2
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, CC3); chachaQR_AVX2(AA1, BB1, CC1, DD1, CC3); chachaQR_AVX2(AA2, BB2, CC2, DD2, CC3)
+ VMOVDQA tmpStoreAVX2, CC3
+ VMOVDQA CC1, tmpStoreAVX2
+ chachaQR_AVX2(AA3, BB3, CC3, DD3, CC1)
+ VMOVDQA tmpStoreAVX2, CC1
+
+ VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $4, DD0, DD0, DD0
+ VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $4, DD1, DD1, DD1
+ VPALIGNR $12, BB2, BB2, BB2; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $4, DD2, DD2, DD2
+ VPALIGNR $12, BB3, BB3, BB3; VPALIGNR $8, CC3, CC3, CC3; VPALIGNR $4, DD3, DD3, DD3
+ DECQ itr2
+ JNE sealAVX2IntroLoop
+
+ VPADDD ·chacha20Constants<>(SB), AA0, AA0; VPADDD ·chacha20Constants<>(SB), AA1, AA1; VPADDD ·chacha20Constants<>(SB), AA2, AA2; VPADDD ·chacha20Constants<>(SB), AA3, AA3
+ VPADDD state1StoreAVX2, BB0, BB0; VPADDD state1StoreAVX2, BB1, BB1; VPADDD state1StoreAVX2, BB2, BB2; VPADDD state1StoreAVX2, BB3, BB3
+ VPADDD state2StoreAVX2, CC0, CC0; VPADDD state2StoreAVX2, CC1, CC1; VPADDD state2StoreAVX2, CC2, CC2; VPADDD state2StoreAVX2, CC3, CC3
+ VPADDD ctr0StoreAVX2, DD0, DD0; VPADDD ctr1StoreAVX2, DD1, DD1; VPADDD ctr2StoreAVX2, DD2, DD2; VPADDD ctr3StoreAVX2, DD3, DD3
+
+ VPERM2I128 $0x13, CC0, DD0, CC0 // Stream bytes 96 - 127
+ VPERM2I128 $0x02, AA0, BB0, DD0 // The Poly1305 key
+ VPERM2I128 $0x13, AA0, BB0, AA0 // Stream bytes 64 - 95
+
+ // Clamp and store poly key
+ VPAND ·polyClampMask<>(SB), DD0, DD0
+ VMOVDQA DD0, rsStoreAVX2
+
+ // Hash AD
+ MOVQ ad_len+80(FP), itr2
+ CALL polyHashADInternal<>(SB)
+
+ // Can store at least 320 bytes
+ VPXOR (0*32)(inp), AA0, AA0
+ VPXOR (1*32)(inp), CC0, CC0
+ VMOVDQU AA0, (0*32)(oup)
+ VMOVDQU CC0, (1*32)(oup)
+
+ VPERM2I128 $0x02, AA1, BB1, AA0; VPERM2I128 $0x02, CC1, DD1, BB0; VPERM2I128 $0x13, AA1, BB1, CC0; VPERM2I128 $0x13, CC1, DD1, DD0
+ VPXOR (2*32)(inp), AA0, AA0; VPXOR (3*32)(inp), BB0, BB0; VPXOR (4*32)(inp), CC0, CC0; VPXOR (5*32)(inp), DD0, DD0
+ VMOVDQU AA0, (2*32)(oup); VMOVDQU BB0, (3*32)(oup); VMOVDQU CC0, (4*32)(oup); VMOVDQU DD0, (5*32)(oup)
+ VPERM2I128 $0x02, AA2, BB2, AA0; VPERM2I128 $0x02, CC2, DD2, BB0; VPERM2I128 $0x13, AA2, BB2, CC0; VPERM2I128 $0x13, CC2, DD2, DD0
+ VPXOR (6*32)(inp), AA0, AA0; VPXOR (7*32)(inp), BB0, BB0; VPXOR (8*32)(inp), CC0, CC0; VPXOR (9*32)(inp), DD0, DD0
+ VMOVDQU AA0, (6*32)(oup); VMOVDQU BB0, (7*32)(oup); VMOVDQU CC0, (8*32)(oup); VMOVDQU DD0, (9*32)(oup)
+
+ MOVQ $320, itr1
+ SUBQ $320, inl
+ LEAQ 320(inp), inp
+
+ VPERM2I128 $0x02, AA3, BB3, AA0; VPERM2I128 $0x02, CC3, DD3, BB0; VPERM2I128 $0x13, AA3, BB3, CC0; VPERM2I128 $0x13, CC3, DD3, DD0
+ CMPQ inl, $128
+ JBE sealAVX2SealHash
+
+ VPXOR (0*32)(inp), AA0, AA0; VPXOR (1*32)(inp), BB0, BB0; VPXOR (2*32)(inp), CC0, CC0; VPXOR (3*32)(inp), DD0, DD0
+ VMOVDQU AA0, (10*32)(oup); VMOVDQU BB0, (11*32)(oup); VMOVDQU CC0, (12*32)(oup); VMOVDQU DD0, (13*32)(oup)
+ SUBQ $128, inl
+ LEAQ 128(inp), inp
+
+ MOVQ $8, itr1
+ MOVQ $2, itr2
+
+ CMPQ inl, $128
+ JBE sealAVX2Tail128
+ CMPQ inl, $256
+ JBE sealAVX2Tail256
+ CMPQ inl, $384
+ JBE sealAVX2Tail384
+ CMPQ inl, $512
+ JBE sealAVX2Tail512
+
+ // We have 448 bytes to hash, but main loop hashes 512 bytes at a time - perform some rounds, before the main loop
+ VMOVDQA ·chacha20Constants<>(SB), AA0; VMOVDQA AA0, AA1; VMOVDQA AA0, AA2; VMOVDQA AA0, AA3
+ VMOVDQA state1StoreAVX2, BB0; VMOVDQA BB0, BB1; VMOVDQA BB0, BB2; VMOVDQA BB0, BB3
+ VMOVDQA state2StoreAVX2, CC0; VMOVDQA CC0, CC1; VMOVDQA CC0, CC2; VMOVDQA CC0, CC3
+ VMOVDQA ctr3StoreAVX2, DD0
+ VPADDD ·avx2IncMask<>(SB), DD0, DD0; VPADDD ·avx2IncMask<>(SB), DD0, DD1; VPADDD ·avx2IncMask<>(SB), DD1, DD2; VPADDD ·avx2IncMask<>(SB), DD2, DD3
+ VMOVDQA DD0, ctr0StoreAVX2; VMOVDQA DD1, ctr1StoreAVX2; VMOVDQA DD2, ctr2StoreAVX2; VMOVDQA DD3, ctr3StoreAVX2
+
+ VMOVDQA CC3, tmpStoreAVX2
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, CC3); chachaQR_AVX2(AA1, BB1, CC1, DD1, CC3); chachaQR_AVX2(AA2, BB2, CC2, DD2, CC3)
+ VMOVDQA tmpStoreAVX2, CC3
+ VMOVDQA CC1, tmpStoreAVX2
+ chachaQR_AVX2(AA3, BB3, CC3, DD3, CC1)
+ VMOVDQA tmpStoreAVX2, CC1
+
+ VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $12, DD0, DD0, DD0
+ VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $12, DD1, DD1, DD1
+ VPALIGNR $4, BB2, BB2, BB2; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $12, DD2, DD2, DD2
+ VPALIGNR $4, BB3, BB3, BB3; VPALIGNR $8, CC3, CC3, CC3; VPALIGNR $12, DD3, DD3, DD3
+
+ VMOVDQA CC3, tmpStoreAVX2
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, CC3); chachaQR_AVX2(AA1, BB1, CC1, DD1, CC3); chachaQR_AVX2(AA2, BB2, CC2, DD2, CC3)
+ VMOVDQA tmpStoreAVX2, CC3
+ VMOVDQA CC1, tmpStoreAVX2
+ chachaQR_AVX2(AA3, BB3, CC3, DD3, CC1)
+ VMOVDQA tmpStoreAVX2, CC1
+
+ VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $4, DD0, DD0, DD0
+ VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $4, DD1, DD1, DD1
+ VPALIGNR $12, BB2, BB2, BB2; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $4, DD2, DD2, DD2
+ VPALIGNR $12, BB3, BB3, BB3; VPALIGNR $8, CC3, CC3, CC3; VPALIGNR $4, DD3, DD3, DD3
+ VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3
+ VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3
+ VPSHUFB ·rol16<>(SB), DD0, DD0; VPSHUFB ·rol16<>(SB), DD1, DD1; VPSHUFB ·rol16<>(SB), DD2, DD2; VPSHUFB ·rol16<>(SB), DD3, DD3
+ VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3
+ VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3
+ VMOVDQA CC3, tmpStoreAVX2
+ VPSLLD $12, BB0, CC3; VPSRLD $20, BB0, BB0; VPXOR CC3, BB0, BB0
+ VPSLLD $12, BB1, CC3; VPSRLD $20, BB1, BB1; VPXOR CC3, BB1, BB1
+ VPSLLD $12, BB2, CC3; VPSRLD $20, BB2, BB2; VPXOR CC3, BB2, BB2
+ VPSLLD $12, BB3, CC3; VPSRLD $20, BB3, BB3; VPXOR CC3, BB3, BB3
+ VMOVDQA tmpStoreAVX2, CC3
+
+ SUBQ $16, oup // Adjust the pointer
+ MOVQ $9, itr1
+ JMP sealAVX2InternalLoopStart
+
+sealAVX2MainLoop:
+ // Load state, increment counter blocks, store the incremented counters
+ VMOVDQU ·chacha20Constants<>(SB), AA0; VMOVDQA AA0, AA1; VMOVDQA AA0, AA2; VMOVDQA AA0, AA3
+ VMOVDQA state1StoreAVX2, BB0; VMOVDQA BB0, BB1; VMOVDQA BB0, BB2; VMOVDQA BB0, BB3
+ VMOVDQA state2StoreAVX2, CC0; VMOVDQA CC0, CC1; VMOVDQA CC0, CC2; VMOVDQA CC0, CC3
+ VMOVDQA ctr3StoreAVX2, DD0; VPADDD ·avx2IncMask<>(SB), DD0, DD0; VPADDD ·avx2IncMask<>(SB), DD0, DD1; VPADDD ·avx2IncMask<>(SB), DD1, DD2; VPADDD ·avx2IncMask<>(SB), DD2, DD3
+ VMOVDQA DD0, ctr0StoreAVX2; VMOVDQA DD1, ctr1StoreAVX2; VMOVDQA DD2, ctr2StoreAVX2; VMOVDQA DD3, ctr3StoreAVX2
+ MOVQ $10, itr1
+
+sealAVX2InternalLoop:
+ polyAdd(0*8(oup))
+ VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3
+ polyMulStage1_AVX2
+ VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3
+ VPSHUFB ·rol16<>(SB), DD0, DD0; VPSHUFB ·rol16<>(SB), DD1, DD1; VPSHUFB ·rol16<>(SB), DD2, DD2; VPSHUFB ·rol16<>(SB), DD3, DD3
+ polyMulStage2_AVX2
+ VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3
+ VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3
+ polyMulStage3_AVX2
+ VMOVDQA CC3, tmpStoreAVX2
+ VPSLLD $12, BB0, CC3; VPSRLD $20, BB0, BB0; VPXOR CC3, BB0, BB0
+ VPSLLD $12, BB1, CC3; VPSRLD $20, BB1, BB1; VPXOR CC3, BB1, BB1
+ VPSLLD $12, BB2, CC3; VPSRLD $20, BB2, BB2; VPXOR CC3, BB2, BB2
+ VPSLLD $12, BB3, CC3; VPSRLD $20, BB3, BB3; VPXOR CC3, BB3, BB3
+ VMOVDQA tmpStoreAVX2, CC3
+ polyMulReduceStage
+
+sealAVX2InternalLoopStart:
+ VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3
+ VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3
+ VPSHUFB ·rol8<>(SB), DD0, DD0; VPSHUFB ·rol8<>(SB), DD1, DD1; VPSHUFB ·rol8<>(SB), DD2, DD2; VPSHUFB ·rol8<>(SB), DD3, DD3
+ polyAdd(2*8(oup))
+ VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3
+ polyMulStage1_AVX2
+ VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3
+ VMOVDQA CC3, tmpStoreAVX2
+ VPSLLD $7, BB0, CC3; VPSRLD $25, BB0, BB0; VPXOR CC3, BB0, BB0
+ VPSLLD $7, BB1, CC3; VPSRLD $25, BB1, BB1; VPXOR CC3, BB1, BB1
+ VPSLLD $7, BB2, CC3; VPSRLD $25, BB2, BB2; VPXOR CC3, BB2, BB2
+ VPSLLD $7, BB3, CC3; VPSRLD $25, BB3, BB3; VPXOR CC3, BB3, BB3
+ VMOVDQA tmpStoreAVX2, CC3
+ polyMulStage2_AVX2
+ VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $4, BB2, BB2, BB2; VPALIGNR $4, BB3, BB3, BB3
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $8, CC3, CC3, CC3
+ VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1; VPALIGNR $12, DD2, DD2, DD2; VPALIGNR $12, DD3, DD3, DD3
+ VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3
+ polyMulStage3_AVX2
+ VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3
+ VPSHUFB ·rol16<>(SB), DD0, DD0; VPSHUFB ·rol16<>(SB), DD1, DD1; VPSHUFB ·rol16<>(SB), DD2, DD2; VPSHUFB ·rol16<>(SB), DD3, DD3
+ polyMulReduceStage
+ VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3
+ VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3
+ polyAdd(4*8(oup))
+ LEAQ (6*8)(oup), oup
+ VMOVDQA CC3, tmpStoreAVX2
+ VPSLLD $12, BB0, CC3; VPSRLD $20, BB0, BB0; VPXOR CC3, BB0, BB0
+ VPSLLD $12, BB1, CC3; VPSRLD $20, BB1, BB1; VPXOR CC3, BB1, BB1
+ VPSLLD $12, BB2, CC3; VPSRLD $20, BB2, BB2; VPXOR CC3, BB2, BB2
+ VPSLLD $12, BB3, CC3; VPSRLD $20, BB3, BB3; VPXOR CC3, BB3, BB3
+ VMOVDQA tmpStoreAVX2, CC3
+ polyMulStage1_AVX2
+ VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3
+ VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3
+ polyMulStage2_AVX2
+ VPSHUFB ·rol8<>(SB), DD0, DD0; VPSHUFB ·rol8<>(SB), DD1, DD1; VPSHUFB ·rol8<>(SB), DD2, DD2; VPSHUFB ·rol8<>(SB), DD3, DD3
+ VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3
+ polyMulStage3_AVX2
+ VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3
+ VMOVDQA CC3, tmpStoreAVX2
+ VPSLLD $7, BB0, CC3; VPSRLD $25, BB0, BB0; VPXOR CC3, BB0, BB0
+ VPSLLD $7, BB1, CC3; VPSRLD $25, BB1, BB1; VPXOR CC3, BB1, BB1
+ VPSLLD $7, BB2, CC3; VPSRLD $25, BB2, BB2; VPXOR CC3, BB2, BB2
+ VPSLLD $7, BB3, CC3; VPSRLD $25, BB3, BB3; VPXOR CC3, BB3, BB3
+ VMOVDQA tmpStoreAVX2, CC3
+ polyMulReduceStage
+ VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $12, BB2, BB2, BB2; VPALIGNR $12, BB3, BB3, BB3
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $8, CC3, CC3, CC3
+ VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1; VPALIGNR $4, DD2, DD2, DD2; VPALIGNR $4, DD3, DD3, DD3
+ DECQ itr1
+ JNE sealAVX2InternalLoop
+
+ VPADDD ·chacha20Constants<>(SB), AA0, AA0; VPADDD ·chacha20Constants<>(SB), AA1, AA1; VPADDD ·chacha20Constants<>(SB), AA2, AA2; VPADDD ·chacha20Constants<>(SB), AA3, AA3
+ VPADDD state1StoreAVX2, BB0, BB0; VPADDD state1StoreAVX2, BB1, BB1; VPADDD state1StoreAVX2, BB2, BB2; VPADDD state1StoreAVX2, BB3, BB3
+ VPADDD state2StoreAVX2, CC0, CC0; VPADDD state2StoreAVX2, CC1, CC1; VPADDD state2StoreAVX2, CC2, CC2; VPADDD state2StoreAVX2, CC3, CC3
+ VPADDD ctr0StoreAVX2, DD0, DD0; VPADDD ctr1StoreAVX2, DD1, DD1; VPADDD ctr2StoreAVX2, DD2, DD2; VPADDD ctr3StoreAVX2, DD3, DD3
+ VMOVDQA CC3, tmpStoreAVX2
+
+ // We only hashed 480 of the 512 bytes available - hash the remaining 32 here
+ polyAdd(0*8(oup))
+ polyMulAVX2
+ LEAQ (4*8)(oup), oup
+ VPERM2I128 $0x02, AA0, BB0, CC3; VPERM2I128 $0x13, AA0, BB0, BB0; VPERM2I128 $0x02, CC0, DD0, AA0; VPERM2I128 $0x13, CC0, DD0, CC0
+ VPXOR (0*32)(inp), CC3, CC3; VPXOR (1*32)(inp), AA0, AA0; VPXOR (2*32)(inp), BB0, BB0; VPXOR (3*32)(inp), CC0, CC0
+ VMOVDQU CC3, (0*32)(oup); VMOVDQU AA0, (1*32)(oup); VMOVDQU BB0, (2*32)(oup); VMOVDQU CC0, (3*32)(oup)
+ VPERM2I128 $0x02, AA1, BB1, AA0; VPERM2I128 $0x02, CC1, DD1, BB0; VPERM2I128 $0x13, AA1, BB1, CC0; VPERM2I128 $0x13, CC1, DD1, DD0
+ VPXOR (4*32)(inp), AA0, AA0; VPXOR (5*32)(inp), BB0, BB0; VPXOR (6*32)(inp), CC0, CC0; VPXOR (7*32)(inp), DD0, DD0
+ VMOVDQU AA0, (4*32)(oup); VMOVDQU BB0, (5*32)(oup); VMOVDQU CC0, (6*32)(oup); VMOVDQU DD0, (7*32)(oup)
+
+ // and here
+ polyAdd(-2*8(oup))
+ polyMulAVX2
+ VPERM2I128 $0x02, AA2, BB2, AA0; VPERM2I128 $0x02, CC2, DD2, BB0; VPERM2I128 $0x13, AA2, BB2, CC0; VPERM2I128 $0x13, CC2, DD2, DD0
+ VPXOR (8*32)(inp), AA0, AA0; VPXOR (9*32)(inp), BB0, BB0; VPXOR (10*32)(inp), CC0, CC0; VPXOR (11*32)(inp), DD0, DD0
+ VMOVDQU AA0, (8*32)(oup); VMOVDQU BB0, (9*32)(oup); VMOVDQU CC0, (10*32)(oup); VMOVDQU DD0, (11*32)(oup)
+ VPERM2I128 $0x02, AA3, BB3, AA0; VPERM2I128 $0x02, tmpStoreAVX2, DD3, BB0; VPERM2I128 $0x13, AA3, BB3, CC0; VPERM2I128 $0x13, tmpStoreAVX2, DD3, DD0
+ VPXOR (12*32)(inp), AA0, AA0; VPXOR (13*32)(inp), BB0, BB0; VPXOR (14*32)(inp), CC0, CC0; VPXOR (15*32)(inp), DD0, DD0
+ VMOVDQU AA0, (12*32)(oup); VMOVDQU BB0, (13*32)(oup); VMOVDQU CC0, (14*32)(oup); VMOVDQU DD0, (15*32)(oup)
+ LEAQ (32*16)(inp), inp
+ SUBQ $(32*16), inl
+ CMPQ inl, $512
+ JG sealAVX2MainLoop
+
+ // Tail can only hash 480 bytes
+ polyAdd(0*8(oup))
+ polyMulAVX2
+ polyAdd(2*8(oup))
+ polyMulAVX2
+ LEAQ 32(oup), oup
+
+ MOVQ $10, itr1
+ MOVQ $0, itr2
+ CMPQ inl, $128
+ JBE sealAVX2Tail128
+ CMPQ inl, $256
+ JBE sealAVX2Tail256
+ CMPQ inl, $384
+ JBE sealAVX2Tail384
+ JMP sealAVX2Tail512
+
+// ----------------------------------------------------------------------------
+// Special optimization for buffers smaller than 193 bytes
+seal192AVX2:
+ // For up to 192 bytes of ciphertext and 64 bytes for the poly key, we process four blocks
+ VMOVDQA AA0, AA1
+ VMOVDQA BB0, BB1
+ VMOVDQA CC0, CC1
+ VPADDD ·avx2IncMask<>(SB), DD0, DD1
+ VMOVDQA AA0, AA2
+ VMOVDQA BB0, BB2
+ VMOVDQA CC0, CC2
+ VMOVDQA DD0, DD2
+ VMOVDQA DD1, TT3
+ MOVQ $10, itr2
+
+sealAVX2192InnerCipherLoop:
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0)
+ VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1
+ VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0)
+ VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1
+ VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1
+ DECQ itr2
+ JNE sealAVX2192InnerCipherLoop
+ VPADDD AA2, AA0, AA0; VPADDD AA2, AA1, AA1
+ VPADDD BB2, BB0, BB0; VPADDD BB2, BB1, BB1
+ VPADDD CC2, CC0, CC0; VPADDD CC2, CC1, CC1
+ VPADDD DD2, DD0, DD0; VPADDD TT3, DD1, DD1
+ VPERM2I128 $0x02, AA0, BB0, TT0
+
+ // Clamp and store poly key
+ VPAND ·polyClampMask<>(SB), TT0, TT0
+ VMOVDQA TT0, rsStoreAVX2
+
+ // Stream for up to 192 bytes
+ VPERM2I128 $0x13, AA0, BB0, AA0
+ VPERM2I128 $0x13, CC0, DD0, BB0
+ VPERM2I128 $0x02, AA1, BB1, CC0
+ VPERM2I128 $0x02, CC1, DD1, DD0
+ VPERM2I128 $0x13, AA1, BB1, AA1
+ VPERM2I128 $0x13, CC1, DD1, BB1
+
+sealAVX2ShortSeal:
+ // Hash aad
+ MOVQ ad_len+80(FP), itr2
+ CALL polyHashADInternal<>(SB)
+ XORQ itr1, itr1
+
+sealAVX2SealHash:
+ // itr1 holds the number of bytes encrypted but not yet hashed
+ CMPQ itr1, $16
+ JB sealAVX2ShortSealLoop
+ polyAdd(0(oup))
+ polyMul
+ SUBQ $16, itr1
+ ADDQ $16, oup
+ JMP sealAVX2SealHash
+
+sealAVX2ShortSealLoop:
+ CMPQ inl, $32
+ JB sealAVX2ShortTail32
+ SUBQ $32, inl
+
+ // Load for encryption
+ VPXOR (inp), AA0, AA0
+ VMOVDQU AA0, (oup)
+ LEAQ (1*32)(inp), inp
+
+ // Now can hash
+ polyAdd(0*8(oup))
+ polyMulAVX2
+ polyAdd(2*8(oup))
+ polyMulAVX2
+ LEAQ (1*32)(oup), oup
+
+ // Shift stream left
+ VMOVDQA BB0, AA0
+ VMOVDQA CC0, BB0
+ VMOVDQA DD0, CC0
+ VMOVDQA AA1, DD0
+ VMOVDQA BB1, AA1
+ VMOVDQA CC1, BB1
+ VMOVDQA DD1, CC1
+ VMOVDQA AA2, DD1
+ VMOVDQA BB2, AA2
+ JMP sealAVX2ShortSealLoop
+
+sealAVX2ShortTail32:
+ CMPQ inl, $16
+ VMOVDQA A0, A1
+ JB sealAVX2ShortDone
+
+ SUBQ $16, inl
+
+ // Load for encryption
+ VPXOR (inp), A0, T0
+ VMOVDQU T0, (oup)
+ LEAQ (1*16)(inp), inp
+
+ // Hash
+ polyAdd(0*8(oup))
+ polyMulAVX2
+ LEAQ (1*16)(oup), oup
+ VPERM2I128 $0x11, AA0, AA0, AA0
+ VMOVDQA A0, A1
+
+sealAVX2ShortDone:
+ VZEROUPPER
+ JMP sealSSETail
+
+// ----------------------------------------------------------------------------
+// Special optimization for buffers smaller than 321 bytes
+seal320AVX2:
+ // For up to 320 bytes of ciphertext and 64 bytes for the poly key, we process six blocks
+ VMOVDQA AA0, AA1; VMOVDQA BB0, BB1; VMOVDQA CC0, CC1; VPADDD ·avx2IncMask<>(SB), DD0, DD1
+ VMOVDQA AA0, AA2; VMOVDQA BB0, BB2; VMOVDQA CC0, CC2; VPADDD ·avx2IncMask<>(SB), DD1, DD2
+ VMOVDQA BB0, TT1; VMOVDQA CC0, TT2; VMOVDQA DD0, TT3
+ MOVQ $10, itr2
+
+sealAVX2320InnerCipherLoop:
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0); chachaQR_AVX2(AA2, BB2, CC2, DD2, TT0)
+ VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $4, BB2, BB2, BB2
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2
+ VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1; VPALIGNR $12, DD2, DD2, DD2
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0); chachaQR_AVX2(AA2, BB2, CC2, DD2, TT0)
+ VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $12, BB2, BB2, BB2
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2
+ VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1; VPALIGNR $4, DD2, DD2, DD2
+ DECQ itr2
+ JNE sealAVX2320InnerCipherLoop
+
+ VMOVDQA ·chacha20Constants<>(SB), TT0
+ VPADDD TT0, AA0, AA0; VPADDD TT0, AA1, AA1; VPADDD TT0, AA2, AA2
+ VPADDD TT1, BB0, BB0; VPADDD TT1, BB1, BB1; VPADDD TT1, BB2, BB2
+ VPADDD TT2, CC0, CC0; VPADDD TT2, CC1, CC1; VPADDD TT2, CC2, CC2
+ VMOVDQA ·avx2IncMask<>(SB), TT0
+ VPADDD TT3, DD0, DD0; VPADDD TT0, TT3, TT3
+ VPADDD TT3, DD1, DD1; VPADDD TT0, TT3, TT3
+ VPADDD TT3, DD2, DD2
+
+ // Clamp and store poly key
+ VPERM2I128 $0x02, AA0, BB0, TT0
+ VPAND ·polyClampMask<>(SB), TT0, TT0
+ VMOVDQA TT0, rsStoreAVX2
+
+ // Stream for up to 320 bytes
+ VPERM2I128 $0x13, AA0, BB0, AA0
+ VPERM2I128 $0x13, CC0, DD0, BB0
+ VPERM2I128 $0x02, AA1, BB1, CC0
+ VPERM2I128 $0x02, CC1, DD1, DD0
+ VPERM2I128 $0x13, AA1, BB1, AA1
+ VPERM2I128 $0x13, CC1, DD1, BB1
+ VPERM2I128 $0x02, AA2, BB2, CC1
+ VPERM2I128 $0x02, CC2, DD2, DD1
+ VPERM2I128 $0x13, AA2, BB2, AA2
+ VPERM2I128 $0x13, CC2, DD2, BB2
+ JMP sealAVX2ShortSeal
+
+// ----------------------------------------------------------------------------
+// Special optimization for the last 128 bytes of ciphertext
+sealAVX2Tail128:
+ // Need to decrypt up to 128 bytes - prepare two blocks
+ // If we got here after the main loop - there are 512 encrypted bytes waiting to be hashed
+ // If we got here before the main loop - there are 448 encrpyred bytes waiting to be hashed
+ VMOVDQA ·chacha20Constants<>(SB), AA0
+ VMOVDQA state1StoreAVX2, BB0
+ VMOVDQA state2StoreAVX2, CC0
+ VMOVDQA ctr3StoreAVX2, DD0
+ VPADDD ·avx2IncMask<>(SB), DD0, DD0
+ VMOVDQA DD0, DD1
+
+sealAVX2Tail128LoopA:
+ polyAdd(0(oup))
+ polyMul
+ LEAQ 16(oup), oup
+
+sealAVX2Tail128LoopB:
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0)
+ polyAdd(0(oup))
+ polyMul
+ VPALIGNR $4, BB0, BB0, BB0
+ VPALIGNR $8, CC0, CC0, CC0
+ VPALIGNR $12, DD0, DD0, DD0
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0)
+ polyAdd(16(oup))
+ polyMul
+ LEAQ 32(oup), oup
+ VPALIGNR $12, BB0, BB0, BB0
+ VPALIGNR $8, CC0, CC0, CC0
+ VPALIGNR $4, DD0, DD0, DD0
+ DECQ itr1
+ JG sealAVX2Tail128LoopA
+ DECQ itr2
+ JGE sealAVX2Tail128LoopB
+
+ VPADDD ·chacha20Constants<>(SB), AA0, AA1
+ VPADDD state1StoreAVX2, BB0, BB1
+ VPADDD state2StoreAVX2, CC0, CC1
+ VPADDD DD1, DD0, DD1
+
+ VPERM2I128 $0x02, AA1, BB1, AA0
+ VPERM2I128 $0x02, CC1, DD1, BB0
+ VPERM2I128 $0x13, AA1, BB1, CC0
+ VPERM2I128 $0x13, CC1, DD1, DD0
+ JMP sealAVX2ShortSealLoop
+
+// ----------------------------------------------------------------------------
+// Special optimization for the last 256 bytes of ciphertext
+sealAVX2Tail256:
+ // Need to decrypt up to 256 bytes - prepare two blocks
+ // If we got here after the main loop - there are 512 encrypted bytes waiting to be hashed
+ // If we got here before the main loop - there are 448 encrpyred bytes waiting to be hashed
+ VMOVDQA ·chacha20Constants<>(SB), AA0; VMOVDQA ·chacha20Constants<>(SB), AA1
+ VMOVDQA state1StoreAVX2, BB0; VMOVDQA state1StoreAVX2, BB1
+ VMOVDQA state2StoreAVX2, CC0; VMOVDQA state2StoreAVX2, CC1
+ VMOVDQA ctr3StoreAVX2, DD0
+ VPADDD ·avx2IncMask<>(SB), DD0, DD0
+ VPADDD ·avx2IncMask<>(SB), DD0, DD1
+ VMOVDQA DD0, TT1
+ VMOVDQA DD1, TT2
+
+sealAVX2Tail256LoopA:
+ polyAdd(0(oup))
+ polyMul
+ LEAQ 16(oup), oup
+
+sealAVX2Tail256LoopB:
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0)
+ polyAdd(0(oup))
+ polyMul
+ VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1
+ VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0)
+ polyAdd(16(oup))
+ polyMul
+ LEAQ 32(oup), oup
+ VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1
+ VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1
+ DECQ itr1
+ JG sealAVX2Tail256LoopA
+ DECQ itr2
+ JGE sealAVX2Tail256LoopB
+
+ VPADDD ·chacha20Constants<>(SB), AA0, AA0; VPADDD ·chacha20Constants<>(SB), AA1, AA1
+ VPADDD state1StoreAVX2, BB0, BB0; VPADDD state1StoreAVX2, BB1, BB1
+ VPADDD state2StoreAVX2, CC0, CC0; VPADDD state2StoreAVX2, CC1, CC1
+ VPADDD TT1, DD0, DD0; VPADDD TT2, DD1, DD1
+ VPERM2I128 $0x02, AA0, BB0, TT0
+ VPERM2I128 $0x02, CC0, DD0, TT1
+ VPERM2I128 $0x13, AA0, BB0, TT2
+ VPERM2I128 $0x13, CC0, DD0, TT3
+ VPXOR (0*32)(inp), TT0, TT0; VPXOR (1*32)(inp), TT1, TT1; VPXOR (2*32)(inp), TT2, TT2; VPXOR (3*32)(inp), TT3, TT3
+ VMOVDQU TT0, (0*32)(oup); VMOVDQU TT1, (1*32)(oup); VMOVDQU TT2, (2*32)(oup); VMOVDQU TT3, (3*32)(oup)
+ MOVQ $128, itr1
+ LEAQ 128(inp), inp
+ SUBQ $128, inl
+ VPERM2I128 $0x02, AA1, BB1, AA0
+ VPERM2I128 $0x02, CC1, DD1, BB0
+ VPERM2I128 $0x13, AA1, BB1, CC0
+ VPERM2I128 $0x13, CC1, DD1, DD0
+
+ JMP sealAVX2SealHash
+
+// ----------------------------------------------------------------------------
+// Special optimization for the last 384 bytes of ciphertext
+sealAVX2Tail384:
+ // Need to decrypt up to 384 bytes - prepare two blocks
+ // If we got here after the main loop - there are 512 encrypted bytes waiting to be hashed
+ // If we got here before the main loop - there are 448 encrpyred bytes waiting to be hashed
+ VMOVDQA ·chacha20Constants<>(SB), AA0; VMOVDQA AA0, AA1; VMOVDQA AA0, AA2
+ VMOVDQA state1StoreAVX2, BB0; VMOVDQA BB0, BB1; VMOVDQA BB0, BB2
+ VMOVDQA state2StoreAVX2, CC0; VMOVDQA CC0, CC1; VMOVDQA CC0, CC2
+ VMOVDQA ctr3StoreAVX2, DD0
+ VPADDD ·avx2IncMask<>(SB), DD0, DD0; VPADDD ·avx2IncMask<>(SB), DD0, DD1; VPADDD ·avx2IncMask<>(SB), DD1, DD2
+ VMOVDQA DD0, TT1; VMOVDQA DD1, TT2; VMOVDQA DD2, TT3
+
+sealAVX2Tail384LoopA:
+ polyAdd(0(oup))
+ polyMul
+ LEAQ 16(oup), oup
+
+sealAVX2Tail384LoopB:
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0); chachaQR_AVX2(AA2, BB2, CC2, DD2, TT0)
+ polyAdd(0(oup))
+ polyMul
+ VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $4, BB2, BB2, BB2
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2
+ VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1; VPALIGNR $12, DD2, DD2, DD2
+ chachaQR_AVX2(AA0, BB0, CC0, DD0, TT0); chachaQR_AVX2(AA1, BB1, CC1, DD1, TT0); chachaQR_AVX2(AA2, BB2, CC2, DD2, TT0)
+ polyAdd(16(oup))
+ polyMul
+ LEAQ 32(oup), oup
+ VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $12, BB2, BB2, BB2
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2
+ VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1; VPALIGNR $4, DD2, DD2, DD2
+ DECQ itr1
+ JG sealAVX2Tail384LoopA
+ DECQ itr2
+ JGE sealAVX2Tail384LoopB
+
+ VPADDD ·chacha20Constants<>(SB), AA0, AA0; VPADDD ·chacha20Constants<>(SB), AA1, AA1; VPADDD ·chacha20Constants<>(SB), AA2, AA2
+ VPADDD state1StoreAVX2, BB0, BB0; VPADDD state1StoreAVX2, BB1, BB1; VPADDD state1StoreAVX2, BB2, BB2
+ VPADDD state2StoreAVX2, CC0, CC0; VPADDD state2StoreAVX2, CC1, CC1; VPADDD state2StoreAVX2, CC2, CC2
+ VPADDD TT1, DD0, DD0; VPADDD TT2, DD1, DD1; VPADDD TT3, DD2, DD2
+ VPERM2I128 $0x02, AA0, BB0, TT0
+ VPERM2I128 $0x02, CC0, DD0, TT1
+ VPERM2I128 $0x13, AA0, BB0, TT2
+ VPERM2I128 $0x13, CC0, DD0, TT3
+ VPXOR (0*32)(inp), TT0, TT0; VPXOR (1*32)(inp), TT1, TT1; VPXOR (2*32)(inp), TT2, TT2; VPXOR (3*32)(inp), TT3, TT3
+ VMOVDQU TT0, (0*32)(oup); VMOVDQU TT1, (1*32)(oup); VMOVDQU TT2, (2*32)(oup); VMOVDQU TT3, (3*32)(oup)
+ VPERM2I128 $0x02, AA1, BB1, TT0
+ VPERM2I128 $0x02, CC1, DD1, TT1
+ VPERM2I128 $0x13, AA1, BB1, TT2
+ VPERM2I128 $0x13, CC1, DD1, TT3
+ VPXOR (4*32)(inp), TT0, TT0; VPXOR (5*32)(inp), TT1, TT1; VPXOR (6*32)(inp), TT2, TT2; VPXOR (7*32)(inp), TT3, TT3
+ VMOVDQU TT0, (4*32)(oup); VMOVDQU TT1, (5*32)(oup); VMOVDQU TT2, (6*32)(oup); VMOVDQU TT3, (7*32)(oup)
+ MOVQ $256, itr1
+ LEAQ 256(inp), inp
+ SUBQ $256, inl
+ VPERM2I128 $0x02, AA2, BB2, AA0
+ VPERM2I128 $0x02, CC2, DD2, BB0
+ VPERM2I128 $0x13, AA2, BB2, CC0
+ VPERM2I128 $0x13, CC2, DD2, DD0
+
+ JMP sealAVX2SealHash
+
+// ----------------------------------------------------------------------------
+// Special optimization for the last 512 bytes of ciphertext
+sealAVX2Tail512:
+ // Need to decrypt up to 512 bytes - prepare two blocks
+ // If we got here after the main loop - there are 512 encrypted bytes waiting to be hashed
+ // If we got here before the main loop - there are 448 encrpyred bytes waiting to be hashed
+ VMOVDQA ·chacha20Constants<>(SB), AA0; VMOVDQA AA0, AA1; VMOVDQA AA0, AA2; VMOVDQA AA0, AA3
+ VMOVDQA state1StoreAVX2, BB0; VMOVDQA BB0, BB1; VMOVDQA BB0, BB2; VMOVDQA BB0, BB3
+ VMOVDQA state2StoreAVX2, CC0; VMOVDQA CC0, CC1; VMOVDQA CC0, CC2; VMOVDQA CC0, CC3
+ VMOVDQA ctr3StoreAVX2, DD0
+ VPADDD ·avx2IncMask<>(SB), DD0, DD0; VPADDD ·avx2IncMask<>(SB), DD0, DD1; VPADDD ·avx2IncMask<>(SB), DD1, DD2; VPADDD ·avx2IncMask<>(SB), DD2, DD3
+ VMOVDQA DD0, ctr0StoreAVX2; VMOVDQA DD1, ctr1StoreAVX2; VMOVDQA DD2, ctr2StoreAVX2; VMOVDQA DD3, ctr3StoreAVX2
+
+sealAVX2Tail512LoopA:
+ polyAdd(0(oup))
+ polyMul
+ LEAQ 16(oup), oup
+
+sealAVX2Tail512LoopB:
+ VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3
+ VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3
+ VPSHUFB ·rol16<>(SB), DD0, DD0; VPSHUFB ·rol16<>(SB), DD1, DD1; VPSHUFB ·rol16<>(SB), DD2, DD2; VPSHUFB ·rol16<>(SB), DD3, DD3
+ VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3
+ VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3
+ VMOVDQA CC3, tmpStoreAVX2
+ VPSLLD $12, BB0, CC3; VPSRLD $20, BB0, BB0; VPXOR CC3, BB0, BB0
+ VPSLLD $12, BB1, CC3; VPSRLD $20, BB1, BB1; VPXOR CC3, BB1, BB1
+ VPSLLD $12, BB2, CC3; VPSRLD $20, BB2, BB2; VPXOR CC3, BB2, BB2
+ VPSLLD $12, BB3, CC3; VPSRLD $20, BB3, BB3; VPXOR CC3, BB3, BB3
+ VMOVDQA tmpStoreAVX2, CC3
+ polyAdd(0*8(oup))
+ polyMulAVX2
+ VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3
+ VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3
+ VPSHUFB ·rol8<>(SB), DD0, DD0; VPSHUFB ·rol8<>(SB), DD1, DD1; VPSHUFB ·rol8<>(SB), DD2, DD2; VPSHUFB ·rol8<>(SB), DD3, DD3
+ VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3
+ VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3
+ VMOVDQA CC3, tmpStoreAVX2
+ VPSLLD $7, BB0, CC3; VPSRLD $25, BB0, BB0; VPXOR CC3, BB0, BB0
+ VPSLLD $7, BB1, CC3; VPSRLD $25, BB1, BB1; VPXOR CC3, BB1, BB1
+ VPSLLD $7, BB2, CC3; VPSRLD $25, BB2, BB2; VPXOR CC3, BB2, BB2
+ VPSLLD $7, BB3, CC3; VPSRLD $25, BB3, BB3; VPXOR CC3, BB3, BB3
+ VMOVDQA tmpStoreAVX2, CC3
+ VPALIGNR $4, BB0, BB0, BB0; VPALIGNR $4, BB1, BB1, BB1; VPALIGNR $4, BB2, BB2, BB2; VPALIGNR $4, BB3, BB3, BB3
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $8, CC3, CC3, CC3
+ VPALIGNR $12, DD0, DD0, DD0; VPALIGNR $12, DD1, DD1, DD1; VPALIGNR $12, DD2, DD2, DD2; VPALIGNR $12, DD3, DD3, DD3
+ VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3
+ VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3
+ VPSHUFB ·rol16<>(SB), DD0, DD0; VPSHUFB ·rol16<>(SB), DD1, DD1; VPSHUFB ·rol16<>(SB), DD2, DD2; VPSHUFB ·rol16<>(SB), DD3, DD3
+ VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3
+ VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3
+ polyAdd(2*8(oup))
+ polyMulAVX2
+ LEAQ (4*8)(oup), oup
+ VMOVDQA CC3, tmpStoreAVX2
+ VPSLLD $12, BB0, CC3; VPSRLD $20, BB0, BB0; VPXOR CC3, BB0, BB0
+ VPSLLD $12, BB1, CC3; VPSRLD $20, BB1, BB1; VPXOR CC3, BB1, BB1
+ VPSLLD $12, BB2, CC3; VPSRLD $20, BB2, BB2; VPXOR CC3, BB2, BB2
+ VPSLLD $12, BB3, CC3; VPSRLD $20, BB3, BB3; VPXOR CC3, BB3, BB3
+ VMOVDQA tmpStoreAVX2, CC3
+ VPADDD BB0, AA0, AA0; VPADDD BB1, AA1, AA1; VPADDD BB2, AA2, AA2; VPADDD BB3, AA3, AA3
+ VPXOR AA0, DD0, DD0; VPXOR AA1, DD1, DD1; VPXOR AA2, DD2, DD2; VPXOR AA3, DD3, DD3
+ VPSHUFB ·rol8<>(SB), DD0, DD0; VPSHUFB ·rol8<>(SB), DD1, DD1; VPSHUFB ·rol8<>(SB), DD2, DD2; VPSHUFB ·rol8<>(SB), DD3, DD3
+ VPADDD DD0, CC0, CC0; VPADDD DD1, CC1, CC1; VPADDD DD2, CC2, CC2; VPADDD DD3, CC3, CC3
+ VPXOR CC0, BB0, BB0; VPXOR CC1, BB1, BB1; VPXOR CC2, BB2, BB2; VPXOR CC3, BB3, BB3
+ VMOVDQA CC3, tmpStoreAVX2
+ VPSLLD $7, BB0, CC3; VPSRLD $25, BB0, BB0; VPXOR CC3, BB0, BB0
+ VPSLLD $7, BB1, CC3; VPSRLD $25, BB1, BB1; VPXOR CC3, BB1, BB1
+ VPSLLD $7, BB2, CC3; VPSRLD $25, BB2, BB2; VPXOR CC3, BB2, BB2
+ VPSLLD $7, BB3, CC3; VPSRLD $25, BB3, BB3; VPXOR CC3, BB3, BB3
+ VMOVDQA tmpStoreAVX2, CC3
+ VPALIGNR $12, BB0, BB0, BB0; VPALIGNR $12, BB1, BB1, BB1; VPALIGNR $12, BB2, BB2, BB2; VPALIGNR $12, BB3, BB3, BB3
+ VPALIGNR $8, CC0, CC0, CC0; VPALIGNR $8, CC1, CC1, CC1; VPALIGNR $8, CC2, CC2, CC2; VPALIGNR $8, CC3, CC3, CC3
+ VPALIGNR $4, DD0, DD0, DD0; VPALIGNR $4, DD1, DD1, DD1; VPALIGNR $4, DD2, DD2, DD2; VPALIGNR $4, DD3, DD3, DD3
+
+ DECQ itr1
+ JG sealAVX2Tail512LoopA
+ DECQ itr2
+ JGE sealAVX2Tail512LoopB
+
+ VPADDD ·chacha20Constants<>(SB), AA0, AA0; VPADDD ·chacha20Constants<>(SB), AA1, AA1; VPADDD ·chacha20Constants<>(SB), AA2, AA2; VPADDD ·chacha20Constants<>(SB), AA3, AA3
+ VPADDD state1StoreAVX2, BB0, BB0; VPADDD state1StoreAVX2, BB1, BB1; VPADDD state1StoreAVX2, BB2, BB2; VPADDD state1StoreAVX2, BB3, BB3
+ VPADDD state2StoreAVX2, CC0, CC0; VPADDD state2StoreAVX2, CC1, CC1; VPADDD state2StoreAVX2, CC2, CC2; VPADDD state2StoreAVX2, CC3, CC3
+ VPADDD ctr0StoreAVX2, DD0, DD0; VPADDD ctr1StoreAVX2, DD1, DD1; VPADDD ctr2StoreAVX2, DD2, DD2; VPADDD ctr3StoreAVX2, DD3, DD3
+ VMOVDQA CC3, tmpStoreAVX2
+ VPERM2I128 $0x02, AA0, BB0, CC3
+ VPXOR (0*32)(inp), CC3, CC3
+ VMOVDQU CC3, (0*32)(oup)
+ VPERM2I128 $0x02, CC0, DD0, CC3
+ VPXOR (1*32)(inp), CC3, CC3
+ VMOVDQU CC3, (1*32)(oup)
+ VPERM2I128 $0x13, AA0, BB0, CC3
+ VPXOR (2*32)(inp), CC3, CC3
+ VMOVDQU CC3, (2*32)(oup)
+ VPERM2I128 $0x13, CC0, DD0, CC3
+ VPXOR (3*32)(inp), CC3, CC3
+ VMOVDQU CC3, (3*32)(oup)
+
+ VPERM2I128 $0x02, AA1, BB1, AA0
+ VPERM2I128 $0x02, CC1, DD1, BB0
+ VPERM2I128 $0x13, AA1, BB1, CC0
+ VPERM2I128 $0x13, CC1, DD1, DD0
+ VPXOR (4*32)(inp), AA0, AA0; VPXOR (5*32)(inp), BB0, BB0; VPXOR (6*32)(inp), CC0, CC0; VPXOR (7*32)(inp), DD0, DD0
+ VMOVDQU AA0, (4*32)(oup); VMOVDQU BB0, (5*32)(oup); VMOVDQU CC0, (6*32)(oup); VMOVDQU DD0, (7*32)(oup)
+
+ VPERM2I128 $0x02, AA2, BB2, AA0
+ VPERM2I128 $0x02, CC2, DD2, BB0
+ VPERM2I128 $0x13, AA2, BB2, CC0
+ VPERM2I128 $0x13, CC2, DD2, DD0
+ VPXOR (8*32)(inp), AA0, AA0; VPXOR (9*32)(inp), BB0, BB0; VPXOR (10*32)(inp), CC0, CC0; VPXOR (11*32)(inp), DD0, DD0
+ VMOVDQU AA0, (8*32)(oup); VMOVDQU BB0, (9*32)(oup); VMOVDQU CC0, (10*32)(oup); VMOVDQU DD0, (11*32)(oup)
+
+ MOVQ $384, itr1
+ LEAQ 384(inp), inp
+ SUBQ $384, inl
+ VPERM2I128 $0x02, AA3, BB3, AA0
+ VPERM2I128 $0x02, tmpStoreAVX2, DD3, BB0
+ VPERM2I128 $0x13, AA3, BB3, CC0
+ VPERM2I128 $0x13, tmpStoreAVX2, DD3, DD0
+
+ JMP sealAVX2SealHash
diff --git a/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_generic.go b/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_generic.go
new file mode 100644
index 0000000000..c27971216c
--- /dev/null
+++ b/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_generic.go
@@ -0,0 +1,81 @@
+// Copyright 2016 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 chacha20poly1305
+
+import (
+ "encoding/binary"
+
+ "golang.org/x/crypto/internal/chacha20"
+ "golang.org/x/crypto/internal/subtle"
+ "golang.org/x/crypto/poly1305"
+)
+
+func roundTo16(n int) int {
+ return 16 * ((n + 15) / 16)
+}
+
+func (c *chacha20poly1305) sealGeneric(dst, nonce, plaintext, additionalData []byte) []byte {
+ ret, out := sliceForAppend(dst, len(plaintext)+poly1305.TagSize)
+ if subtle.InexactOverlap(out, plaintext) {
+ panic("chacha20poly1305: invalid buffer overlap")
+ }
+
+ var polyKey [32]byte
+ s := chacha20.New(c.key, [3]uint32{
+ binary.LittleEndian.Uint32(nonce[0:4]),
+ binary.LittleEndian.Uint32(nonce[4:8]),
+ binary.LittleEndian.Uint32(nonce[8:12]),
+ })
+ s.XORKeyStream(polyKey[:], polyKey[:])
+ s.Advance() // skip the next 32 bytes
+ s.XORKeyStream(out, plaintext)
+
+ polyInput := make([]byte, roundTo16(len(additionalData))+roundTo16(len(plaintext))+8+8)
+ copy(polyInput, additionalData)
+ copy(polyInput[roundTo16(len(additionalData)):], out[:len(plaintext)])
+ binary.LittleEndian.PutUint64(polyInput[len(polyInput)-16:], uint64(len(additionalData)))
+ binary.LittleEndian.PutUint64(polyInput[len(polyInput)-8:], uint64(len(plaintext)))
+
+ var tag [poly1305.TagSize]byte
+ poly1305.Sum(&tag, polyInput, &polyKey)
+ copy(out[len(plaintext):], tag[:])
+
+ return ret
+}
+
+func (c *chacha20poly1305) openGeneric(dst, nonce, ciphertext, additionalData []byte) ([]byte, error) {
+ var tag [poly1305.TagSize]byte
+ copy(tag[:], ciphertext[len(ciphertext)-16:])
+ ciphertext = ciphertext[:len(ciphertext)-16]
+
+ var polyKey [32]byte
+ s := chacha20.New(c.key, [3]uint32{
+ binary.LittleEndian.Uint32(nonce[0:4]),
+ binary.LittleEndian.Uint32(nonce[4:8]),
+ binary.LittleEndian.Uint32(nonce[8:12]),
+ })
+ s.XORKeyStream(polyKey[:], polyKey[:])
+ s.Advance() // skip the next 32 bytes
+
+ polyInput := make([]byte, roundTo16(len(additionalData))+roundTo16(len(ciphertext))+8+8)
+ copy(polyInput, additionalData)
+ copy(polyInput[roundTo16(len(additionalData)):], ciphertext)
+ binary.LittleEndian.PutUint64(polyInput[len(polyInput)-16:], uint64(len(additionalData)))
+ binary.LittleEndian.PutUint64(polyInput[len(polyInput)-8:], uint64(len(ciphertext)))
+
+ ret, out := sliceForAppend(dst, len(ciphertext))
+ if subtle.InexactOverlap(out, ciphertext) {
+ panic("chacha20poly1305: invalid buffer overlap")
+ }
+ if !poly1305.Verify(&tag, polyInput, &polyKey) {
+ for i := range out {
+ out[i] = 0
+ }
+ return nil, errOpen
+ }
+
+ s.XORKeyStream(out, ciphertext)
+ return ret, nil
+}
diff --git a/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_noasm.go b/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_noasm.go
new file mode 100644
index 0000000000..4c2eb703c3
--- /dev/null
+++ b/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_noasm.go
@@ -0,0 +1,15 @@
+// Copyright 2016 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 !amd64 !go1.7 gccgo appengine
+
+package chacha20poly1305
+
+func (c *chacha20poly1305) seal(dst, nonce, plaintext, additionalData []byte) []byte {
+ return c.sealGeneric(dst, nonce, plaintext, additionalData)
+}
+
+func (c *chacha20poly1305) open(dst, nonce, ciphertext, additionalData []byte) ([]byte, error) {
+ return c.openGeneric(dst, nonce, ciphertext, additionalData)
+}
diff --git a/vendor/golang.org/x/crypto/chacha20poly1305/xchacha20poly1305.go b/vendor/golang.org/x/crypto/chacha20poly1305/xchacha20poly1305.go
new file mode 100644
index 0000000000..a02fa57192
--- /dev/null
+++ b/vendor/golang.org/x/crypto/chacha20poly1305/xchacha20poly1305.go
@@ -0,0 +1,104 @@
+// Copyright 2018 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 chacha20poly1305
+
+import (
+ "crypto/cipher"
+ "encoding/binary"
+ "errors"
+
+ "golang.org/x/crypto/internal/chacha20"
+)
+
+type xchacha20poly1305 struct {
+ key [8]uint32
+}
+
+// NewX returns a XChaCha20-Poly1305 AEAD that uses the given 256-bit key.
+//
+// XChaCha20-Poly1305 is a ChaCha20-Poly1305 variant that takes a longer nonce,
+// suitable to be generated randomly without risk of collisions. It should be
+// preferred when nonce uniqueness cannot be trivially ensured, or whenever
+// nonces are randomly generated.
+func NewX(key []byte) (cipher.AEAD, error) {
+ if len(key) != KeySize {
+ return nil, errors.New("chacha20poly1305: bad key length")
+ }
+ ret := new(xchacha20poly1305)
+ ret.key[0] = binary.LittleEndian.Uint32(key[0:4])
+ ret.key[1] = binary.LittleEndian.Uint32(key[4:8])
+ ret.key[2] = binary.LittleEndian.Uint32(key[8:12])
+ ret.key[3] = binary.LittleEndian.Uint32(key[12:16])
+ ret.key[4] = binary.LittleEndian.Uint32(key[16:20])
+ ret.key[5] = binary.LittleEndian.Uint32(key[20:24])
+ ret.key[6] = binary.LittleEndian.Uint32(key[24:28])
+ ret.key[7] = binary.LittleEndian.Uint32(key[28:32])
+ return ret, nil
+}
+
+func (*xchacha20poly1305) NonceSize() int {
+ return NonceSizeX
+}
+
+func (*xchacha20poly1305) Overhead() int {
+ return 16
+}
+
+func (x *xchacha20poly1305) Seal(dst, nonce, plaintext, additionalData []byte) []byte {
+ if len(nonce) != NonceSizeX {
+ panic("chacha20poly1305: bad nonce length passed to Seal")
+ }
+
+ // XChaCha20-Poly1305 technically supports a 64-bit counter, so there is no
+ // size limit. However, since we reuse the ChaCha20-Poly1305 implementation,
+ // the second half of the counter is not available. This is unlikely to be
+ // an issue because the cipher.AEAD API requires the entire message to be in
+ // memory, and the counter overflows at 256 GB.
+ if uint64(len(plaintext)) > (1<<38)-64 {
+ panic("chacha20poly1305: plaintext too large")
+ }
+
+ hNonce := [4]uint32{
+ binary.LittleEndian.Uint32(nonce[0:4]),
+ binary.LittleEndian.Uint32(nonce[4:8]),
+ binary.LittleEndian.Uint32(nonce[8:12]),
+ binary.LittleEndian.Uint32(nonce[12:16]),
+ }
+ c := &chacha20poly1305{
+ key: chacha20.HChaCha20(&x.key, &hNonce),
+ }
+ // The first 4 bytes of the final nonce are unused counter space.
+ cNonce := make([]byte, NonceSize)
+ copy(cNonce[4:12], nonce[16:24])
+
+ return c.seal(dst, cNonce[:], plaintext, additionalData)
+}
+
+func (x *xchacha20poly1305) Open(dst, nonce, ciphertext, additionalData []byte) ([]byte, error) {
+ if len(nonce) != NonceSizeX {
+ panic("chacha20poly1305: bad nonce length passed to Open")
+ }
+ if len(ciphertext) < 16 {
+ return nil, errOpen
+ }
+ if uint64(len(ciphertext)) > (1<<38)-48 {
+ panic("chacha20poly1305: ciphertext too large")
+ }
+
+ hNonce := [4]uint32{
+ binary.LittleEndian.Uint32(nonce[0:4]),
+ binary.LittleEndian.Uint32(nonce[4:8]),
+ binary.LittleEndian.Uint32(nonce[8:12]),
+ binary.LittleEndian.Uint32(nonce[12:16]),
+ }
+ c := &chacha20poly1305{
+ key: chacha20.HChaCha20(&x.key, &hNonce),
+ }
+ // The first 4 bytes of the final nonce are unused counter space.
+ cNonce := make([]byte, NonceSize)
+ copy(cNonce[4:12], nonce[16:24])
+
+ return c.open(dst, cNonce[:], ciphertext, additionalData)
+}
diff --git a/vendor/golang.org/x/crypto/curve25519/const_amd64.h b/vendor/golang.org/x/crypto/curve25519/const_amd64.h
new file mode 100644
index 0000000000..b3f74162f6
--- /dev/null
+++ b/vendor/golang.org/x/crypto/curve25519/const_amd64.h
@@ -0,0 +1,8 @@
+// Copyright 2012 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.
+
+// This code was translated into a form compatible with 6a from the public
+// domain sources in SUPERCOP: https://bench.cr.yp.to/supercop.html
+
+#define REDMASK51 0x0007FFFFFFFFFFFF
diff --git a/vendor/golang.org/x/crypto/curve25519/const_amd64.s b/vendor/golang.org/x/crypto/curve25519/const_amd64.s
new file mode 100644
index 0000000000..ee7b4bd5f8
--- /dev/null
+++ b/vendor/golang.org/x/crypto/curve25519/const_amd64.s
@@ -0,0 +1,20 @@
+// Copyright 2012 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.
+
+// This code was translated into a form compatible with 6a from the public
+// domain sources in SUPERCOP: https://bench.cr.yp.to/supercop.html
+
+// +build amd64,!gccgo,!appengine
+
+// These constants cannot be encoded in non-MOVQ immediates.
+// We access them directly from memory instead.
+
+DATA ·_121666_213(SB)/8, $996687872
+GLOBL ·_121666_213(SB), 8, $8
+
+DATA ·_2P0(SB)/8, $0xFFFFFFFFFFFDA
+GLOBL ·_2P0(SB), 8, $8
+
+DATA ·_2P1234(SB)/8, $0xFFFFFFFFFFFFE
+GLOBL ·_2P1234(SB), 8, $8
diff --git a/vendor/golang.org/x/crypto/curve25519/cswap_amd64.s b/vendor/golang.org/x/crypto/curve25519/cswap_amd64.s
new file mode 100644
index 0000000000..cd793a5b5f
--- /dev/null
+++ b/vendor/golang.org/x/crypto/curve25519/cswap_amd64.s
@@ -0,0 +1,65 @@
+// Copyright 2012 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 amd64,!gccgo,!appengine
+
+// func cswap(inout *[4][5]uint64, v uint64)
+TEXT ·cswap(SB),7,$0
+ MOVQ inout+0(FP),DI
+ MOVQ v+8(FP),SI
+
+ SUBQ $1, SI
+ NOTQ SI
+ MOVQ SI, X15
+ PSHUFD $0x44, X15, X15
+
+ MOVOU 0(DI), X0
+ MOVOU 16(DI), X2
+ MOVOU 32(DI), X4
+ MOVOU 48(DI), X6
+ MOVOU 64(DI), X8
+ MOVOU 80(DI), X1
+ MOVOU 96(DI), X3
+ MOVOU 112(DI), X5
+ MOVOU 128(DI), X7
+ MOVOU 144(DI), X9
+
+ MOVO X1, X10
+ MOVO X3, X11
+ MOVO X5, X12
+ MOVO X7, X13
+ MOVO X9, X14
+
+ PXOR X0, X10
+ PXOR X2, X11
+ PXOR X4, X12
+ PXOR X6, X13
+ PXOR X8, X14
+ PAND X15, X10
+ PAND X15, X11
+ PAND X15, X12
+ PAND X15, X13
+ PAND X15, X14
+ PXOR X10, X0
+ PXOR X10, X1
+ PXOR X11, X2
+ PXOR X11, X3
+ PXOR X12, X4
+ PXOR X12, X5
+ PXOR X13, X6
+ PXOR X13, X7
+ PXOR X14, X8
+ PXOR X14, X9
+
+ MOVOU X0, 0(DI)
+ MOVOU X2, 16(DI)
+ MOVOU X4, 32(DI)
+ MOVOU X6, 48(DI)
+ MOVOU X8, 64(DI)
+ MOVOU X1, 80(DI)
+ MOVOU X3, 96(DI)
+ MOVOU X5, 112(DI)
+ MOVOU X7, 128(DI)
+ MOVOU X9, 144(DI)
+ RET
diff --git a/vendor/golang.org/x/crypto/curve25519/curve25519.go b/vendor/golang.org/x/crypto/curve25519/curve25519.go
new file mode 100644
index 0000000000..75f24babb6
--- /dev/null
+++ b/vendor/golang.org/x/crypto/curve25519/curve25519.go
@@ -0,0 +1,834 @@
+// 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.
+
+// We have an implementation in amd64 assembly so this code is only run on
+// non-amd64 platforms. The amd64 assembly does not support gccgo.
+// +build !amd64 gccgo appengine
+
+package curve25519
+
+import (
+ "encoding/binary"
+)
+
+// This code is a port of the public domain, "ref10" implementation of
+// curve25519 from SUPERCOP 20130419 by D. J. Bernstein.
+
+// fieldElement represents an element of the field GF(2^255 - 19). An element
+// t, entries t[0]...t[9], represents the integer t[0]+2^26 t[1]+2^51 t[2]+2^77
+// t[3]+2^102 t[4]+...+2^230 t[9]. Bounds on each t[i] vary depending on
+// context.
+type fieldElement [10]int32
+
+func feZero(fe *fieldElement) {
+ for i := range fe {
+ fe[i] = 0
+ }
+}
+
+func feOne(fe *fieldElement) {
+ feZero(fe)
+ fe[0] = 1
+}
+
+func feAdd(dst, a, b *fieldElement) {
+ for i := range dst {
+ dst[i] = a[i] + b[i]
+ }
+}
+
+func feSub(dst, a, b *fieldElement) {
+ for i := range dst {
+ dst[i] = a[i] - b[i]
+ }
+}
+
+func feCopy(dst, src *fieldElement) {
+ for i := range dst {
+ dst[i] = src[i]
+ }
+}
+
+// feCSwap replaces (f,g) with (g,f) if b == 1; replaces (f,g) with (f,g) if b == 0.
+//
+// Preconditions: b in {0,1}.
+func feCSwap(f, g *fieldElement, b int32) {
+ b = -b
+ for i := range f {
+ t := b & (f[i] ^ g[i])
+ f[i] ^= t
+ g[i] ^= t
+ }
+}
+
+// load3 reads a 24-bit, little-endian value from in.
+func load3(in []byte) int64 {
+ var r int64
+ r = int64(in[0])
+ r |= int64(in[1]) << 8
+ r |= int64(in[2]) << 16
+ return r
+}
+
+// load4 reads a 32-bit, little-endian value from in.
+func load4(in []byte) int64 {
+ return int64(binary.LittleEndian.Uint32(in))
+}
+
+func feFromBytes(dst *fieldElement, src *[32]byte) {
+ h0 := load4(src[:])
+ h1 := load3(src[4:]) << 6
+ h2 := load3(src[7:]) << 5
+ h3 := load3(src[10:]) << 3
+ h4 := load3(src[13:]) << 2
+ h5 := load4(src[16:])
+ h6 := load3(src[20:]) << 7
+ h7 := load3(src[23:]) << 5
+ h8 := load3(src[26:]) << 4
+ h9 := (load3(src[29:]) & 0x7fffff) << 2
+
+ var carry [10]int64
+ carry[9] = (h9 + 1<<24) >> 25
+ h0 += carry[9] * 19
+ h9 -= carry[9] << 25
+ carry[1] = (h1 + 1<<24) >> 25
+ h2 += carry[1]
+ h1 -= carry[1] << 25
+ carry[3] = (h3 + 1<<24) >> 25
+ h4 += carry[3]
+ h3 -= carry[3] << 25
+ carry[5] = (h5 + 1<<24) >> 25
+ h6 += carry[5]
+ h5 -= carry[5] << 25
+ carry[7] = (h7 + 1<<24) >> 25
+ h8 += carry[7]
+ h7 -= carry[7] << 25
+
+ carry[0] = (h0 + 1<<25) >> 26
+ h1 += carry[0]
+ h0 -= carry[0] << 26
+ carry[2] = (h2 + 1<<25) >> 26
+ h3 += carry[2]
+ h2 -= carry[2] << 26
+ carry[4] = (h4 + 1<<25) >> 26
+ h5 += carry[4]
+ h4 -= carry[4] << 26
+ carry[6] = (h6 + 1<<25) >> 26
+ h7 += carry[6]
+ h6 -= carry[6] << 26
+ carry[8] = (h8 + 1<<25) >> 26
+ h9 += carry[8]
+ h8 -= carry[8] << 26
+
+ dst[0] = int32(h0)
+ dst[1] = int32(h1)
+ dst[2] = int32(h2)
+ dst[3] = int32(h3)
+ dst[4] = int32(h4)
+ dst[5] = int32(h5)
+ dst[6] = int32(h6)
+ dst[7] = int32(h7)
+ dst[8] = int32(h8)
+ dst[9] = int32(h9)
+}
+
+// feToBytes marshals h to s.
+// Preconditions:
+// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc.
+//
+// Write p=2^255-19; q=floor(h/p).
+// Basic claim: q = floor(2^(-255)(h + 19 2^(-25)h9 + 2^(-1))).
+//
+// Proof:
+// Have |h|<=p so |q|<=1 so |19^2 2^(-255) q|<1/4.
+// Also have |h-2^230 h9|<2^230 so |19 2^(-255)(h-2^230 h9)|<1/4.
+//
+// Write y=2^(-1)-19^2 2^(-255)q-19 2^(-255)(h-2^230 h9).
+// Then 0> 25
+ q = (h[0] + q) >> 26
+ q = (h[1] + q) >> 25
+ q = (h[2] + q) >> 26
+ q = (h[3] + q) >> 25
+ q = (h[4] + q) >> 26
+ q = (h[5] + q) >> 25
+ q = (h[6] + q) >> 26
+ q = (h[7] + q) >> 25
+ q = (h[8] + q) >> 26
+ q = (h[9] + q) >> 25
+
+ // Goal: Output h-(2^255-19)q, which is between 0 and 2^255-20.
+ h[0] += 19 * q
+ // Goal: Output h-2^255 q, which is between 0 and 2^255-20.
+
+ carry[0] = h[0] >> 26
+ h[1] += carry[0]
+ h[0] -= carry[0] << 26
+ carry[1] = h[1] >> 25
+ h[2] += carry[1]
+ h[1] -= carry[1] << 25
+ carry[2] = h[2] >> 26
+ h[3] += carry[2]
+ h[2] -= carry[2] << 26
+ carry[3] = h[3] >> 25
+ h[4] += carry[3]
+ h[3] -= carry[3] << 25
+ carry[4] = h[4] >> 26
+ h[5] += carry[4]
+ h[4] -= carry[4] << 26
+ carry[5] = h[5] >> 25
+ h[6] += carry[5]
+ h[5] -= carry[5] << 25
+ carry[6] = h[6] >> 26
+ h[7] += carry[6]
+ h[6] -= carry[6] << 26
+ carry[7] = h[7] >> 25
+ h[8] += carry[7]
+ h[7] -= carry[7] << 25
+ carry[8] = h[8] >> 26
+ h[9] += carry[8]
+ h[8] -= carry[8] << 26
+ carry[9] = h[9] >> 25
+ h[9] -= carry[9] << 25
+ // h10 = carry9
+
+ // Goal: Output h[0]+...+2^255 h10-2^255 q, which is between 0 and 2^255-20.
+ // Have h[0]+...+2^230 h[9] between 0 and 2^255-1;
+ // evidently 2^255 h10-2^255 q = 0.
+ // Goal: Output h[0]+...+2^230 h[9].
+
+ s[0] = byte(h[0] >> 0)
+ s[1] = byte(h[0] >> 8)
+ s[2] = byte(h[0] >> 16)
+ s[3] = byte((h[0] >> 24) | (h[1] << 2))
+ s[4] = byte(h[1] >> 6)
+ s[5] = byte(h[1] >> 14)
+ s[6] = byte((h[1] >> 22) | (h[2] << 3))
+ s[7] = byte(h[2] >> 5)
+ s[8] = byte(h[2] >> 13)
+ s[9] = byte((h[2] >> 21) | (h[3] << 5))
+ s[10] = byte(h[3] >> 3)
+ s[11] = byte(h[3] >> 11)
+ s[12] = byte((h[3] >> 19) | (h[4] << 6))
+ s[13] = byte(h[4] >> 2)
+ s[14] = byte(h[4] >> 10)
+ s[15] = byte(h[4] >> 18)
+ s[16] = byte(h[5] >> 0)
+ s[17] = byte(h[5] >> 8)
+ s[18] = byte(h[5] >> 16)
+ s[19] = byte((h[5] >> 24) | (h[6] << 1))
+ s[20] = byte(h[6] >> 7)
+ s[21] = byte(h[6] >> 15)
+ s[22] = byte((h[6] >> 23) | (h[7] << 3))
+ s[23] = byte(h[7] >> 5)
+ s[24] = byte(h[7] >> 13)
+ s[25] = byte((h[7] >> 21) | (h[8] << 4))
+ s[26] = byte(h[8] >> 4)
+ s[27] = byte(h[8] >> 12)
+ s[28] = byte((h[8] >> 20) | (h[9] << 6))
+ s[29] = byte(h[9] >> 2)
+ s[30] = byte(h[9] >> 10)
+ s[31] = byte(h[9] >> 18)
+}
+
+// feMul calculates h = f * g
+// Can overlap h with f or g.
+//
+// Preconditions:
+// |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc.
+// |g| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc.
+//
+// Postconditions:
+// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc.
+//
+// Notes on implementation strategy:
+//
+// Using schoolbook multiplication.
+// Karatsuba would save a little in some cost models.
+//
+// Most multiplications by 2 and 19 are 32-bit precomputations;
+// cheaper than 64-bit postcomputations.
+//
+// There is one remaining multiplication by 19 in the carry chain;
+// one *19 precomputation can be merged into this,
+// but the resulting data flow is considerably less clean.
+//
+// There are 12 carries below.
+// 10 of them are 2-way parallelizable and vectorizable.
+// Can get away with 11 carries, but then data flow is much deeper.
+//
+// With tighter constraints on inputs can squeeze carries into int32.
+func feMul(h, f, g *fieldElement) {
+ f0 := f[0]
+ f1 := f[1]
+ f2 := f[2]
+ f3 := f[3]
+ f4 := f[4]
+ f5 := f[5]
+ f6 := f[6]
+ f7 := f[7]
+ f8 := f[8]
+ f9 := f[9]
+ g0 := g[0]
+ g1 := g[1]
+ g2 := g[2]
+ g3 := g[3]
+ g4 := g[4]
+ g5 := g[5]
+ g6 := g[6]
+ g7 := g[7]
+ g8 := g[8]
+ g9 := g[9]
+ g1_19 := 19 * g1 // 1.4*2^29
+ g2_19 := 19 * g2 // 1.4*2^30; still ok
+ g3_19 := 19 * g3
+ g4_19 := 19 * g4
+ g5_19 := 19 * g5
+ g6_19 := 19 * g6
+ g7_19 := 19 * g7
+ g8_19 := 19 * g8
+ g9_19 := 19 * g9
+ f1_2 := 2 * f1
+ f3_2 := 2 * f3
+ f5_2 := 2 * f5
+ f7_2 := 2 * f7
+ f9_2 := 2 * f9
+ f0g0 := int64(f0) * int64(g0)
+ f0g1 := int64(f0) * int64(g1)
+ f0g2 := int64(f0) * int64(g2)
+ f0g3 := int64(f0) * int64(g3)
+ f0g4 := int64(f0) * int64(g4)
+ f0g5 := int64(f0) * int64(g5)
+ f0g6 := int64(f0) * int64(g6)
+ f0g7 := int64(f0) * int64(g7)
+ f0g8 := int64(f0) * int64(g8)
+ f0g9 := int64(f0) * int64(g9)
+ f1g0 := int64(f1) * int64(g0)
+ f1g1_2 := int64(f1_2) * int64(g1)
+ f1g2 := int64(f1) * int64(g2)
+ f1g3_2 := int64(f1_2) * int64(g3)
+ f1g4 := int64(f1) * int64(g4)
+ f1g5_2 := int64(f1_2) * int64(g5)
+ f1g6 := int64(f1) * int64(g6)
+ f1g7_2 := int64(f1_2) * int64(g7)
+ f1g8 := int64(f1) * int64(g8)
+ f1g9_38 := int64(f1_2) * int64(g9_19)
+ f2g0 := int64(f2) * int64(g0)
+ f2g1 := int64(f2) * int64(g1)
+ f2g2 := int64(f2) * int64(g2)
+ f2g3 := int64(f2) * int64(g3)
+ f2g4 := int64(f2) * int64(g4)
+ f2g5 := int64(f2) * int64(g5)
+ f2g6 := int64(f2) * int64(g6)
+ f2g7 := int64(f2) * int64(g7)
+ f2g8_19 := int64(f2) * int64(g8_19)
+ f2g9_19 := int64(f2) * int64(g9_19)
+ f3g0 := int64(f3) * int64(g0)
+ f3g1_2 := int64(f3_2) * int64(g1)
+ f3g2 := int64(f3) * int64(g2)
+ f3g3_2 := int64(f3_2) * int64(g3)
+ f3g4 := int64(f3) * int64(g4)
+ f3g5_2 := int64(f3_2) * int64(g5)
+ f3g6 := int64(f3) * int64(g6)
+ f3g7_38 := int64(f3_2) * int64(g7_19)
+ f3g8_19 := int64(f3) * int64(g8_19)
+ f3g9_38 := int64(f3_2) * int64(g9_19)
+ f4g0 := int64(f4) * int64(g0)
+ f4g1 := int64(f4) * int64(g1)
+ f4g2 := int64(f4) * int64(g2)
+ f4g3 := int64(f4) * int64(g3)
+ f4g4 := int64(f4) * int64(g4)
+ f4g5 := int64(f4) * int64(g5)
+ f4g6_19 := int64(f4) * int64(g6_19)
+ f4g7_19 := int64(f4) * int64(g7_19)
+ f4g8_19 := int64(f4) * int64(g8_19)
+ f4g9_19 := int64(f4) * int64(g9_19)
+ f5g0 := int64(f5) * int64(g0)
+ f5g1_2 := int64(f5_2) * int64(g1)
+ f5g2 := int64(f5) * int64(g2)
+ f5g3_2 := int64(f5_2) * int64(g3)
+ f5g4 := int64(f5) * int64(g4)
+ f5g5_38 := int64(f5_2) * int64(g5_19)
+ f5g6_19 := int64(f5) * int64(g6_19)
+ f5g7_38 := int64(f5_2) * int64(g7_19)
+ f5g8_19 := int64(f5) * int64(g8_19)
+ f5g9_38 := int64(f5_2) * int64(g9_19)
+ f6g0 := int64(f6) * int64(g0)
+ f6g1 := int64(f6) * int64(g1)
+ f6g2 := int64(f6) * int64(g2)
+ f6g3 := int64(f6) * int64(g3)
+ f6g4_19 := int64(f6) * int64(g4_19)
+ f6g5_19 := int64(f6) * int64(g5_19)
+ f6g6_19 := int64(f6) * int64(g6_19)
+ f6g7_19 := int64(f6) * int64(g7_19)
+ f6g8_19 := int64(f6) * int64(g8_19)
+ f6g9_19 := int64(f6) * int64(g9_19)
+ f7g0 := int64(f7) * int64(g0)
+ f7g1_2 := int64(f7_2) * int64(g1)
+ f7g2 := int64(f7) * int64(g2)
+ f7g3_38 := int64(f7_2) * int64(g3_19)
+ f7g4_19 := int64(f7) * int64(g4_19)
+ f7g5_38 := int64(f7_2) * int64(g5_19)
+ f7g6_19 := int64(f7) * int64(g6_19)
+ f7g7_38 := int64(f7_2) * int64(g7_19)
+ f7g8_19 := int64(f7) * int64(g8_19)
+ f7g9_38 := int64(f7_2) * int64(g9_19)
+ f8g0 := int64(f8) * int64(g0)
+ f8g1 := int64(f8) * int64(g1)
+ f8g2_19 := int64(f8) * int64(g2_19)
+ f8g3_19 := int64(f8) * int64(g3_19)
+ f8g4_19 := int64(f8) * int64(g4_19)
+ f8g5_19 := int64(f8) * int64(g5_19)
+ f8g6_19 := int64(f8) * int64(g6_19)
+ f8g7_19 := int64(f8) * int64(g7_19)
+ f8g8_19 := int64(f8) * int64(g8_19)
+ f8g9_19 := int64(f8) * int64(g9_19)
+ f9g0 := int64(f9) * int64(g0)
+ f9g1_38 := int64(f9_2) * int64(g1_19)
+ f9g2_19 := int64(f9) * int64(g2_19)
+ f9g3_38 := int64(f9_2) * int64(g3_19)
+ f9g4_19 := int64(f9) * int64(g4_19)
+ f9g5_38 := int64(f9_2) * int64(g5_19)
+ f9g6_19 := int64(f9) * int64(g6_19)
+ f9g7_38 := int64(f9_2) * int64(g7_19)
+ f9g8_19 := int64(f9) * int64(g8_19)
+ f9g9_38 := int64(f9_2) * int64(g9_19)
+ h0 := f0g0 + f1g9_38 + f2g8_19 + f3g7_38 + f4g6_19 + f5g5_38 + f6g4_19 + f7g3_38 + f8g2_19 + f9g1_38
+ h1 := f0g1 + f1g0 + f2g9_19 + f3g8_19 + f4g7_19 + f5g6_19 + f6g5_19 + f7g4_19 + f8g3_19 + f9g2_19
+ h2 := f0g2 + f1g1_2 + f2g0 + f3g9_38 + f4g8_19 + f5g7_38 + f6g6_19 + f7g5_38 + f8g4_19 + f9g3_38
+ h3 := f0g3 + f1g2 + f2g1 + f3g0 + f4g9_19 + f5g8_19 + f6g7_19 + f7g6_19 + f8g5_19 + f9g4_19
+ h4 := f0g4 + f1g3_2 + f2g2 + f3g1_2 + f4g0 + f5g9_38 + f6g8_19 + f7g7_38 + f8g6_19 + f9g5_38
+ h5 := f0g5 + f1g4 + f2g3 + f3g2 + f4g1 + f5g0 + f6g9_19 + f7g8_19 + f8g7_19 + f9g6_19
+ h6 := f0g6 + f1g5_2 + f2g4 + f3g3_2 + f4g2 + f5g1_2 + f6g0 + f7g9_38 + f8g8_19 + f9g7_38
+ h7 := f0g7 + f1g6 + f2g5 + f3g4 + f4g3 + f5g2 + f6g1 + f7g0 + f8g9_19 + f9g8_19
+ h8 := f0g8 + f1g7_2 + f2g6 + f3g5_2 + f4g4 + f5g3_2 + f6g2 + f7g1_2 + f8g0 + f9g9_38
+ h9 := f0g9 + f1g8 + f2g7 + f3g6 + f4g5 + f5g4 + f6g3 + f7g2 + f8g1 + f9g0
+ var carry [10]int64
+
+ // |h0| <= (1.1*1.1*2^52*(1+19+19+19+19)+1.1*1.1*2^50*(38+38+38+38+38))
+ // i.e. |h0| <= 1.2*2^59; narrower ranges for h2, h4, h6, h8
+ // |h1| <= (1.1*1.1*2^51*(1+1+19+19+19+19+19+19+19+19))
+ // i.e. |h1| <= 1.5*2^58; narrower ranges for h3, h5, h7, h9
+
+ carry[0] = (h0 + (1 << 25)) >> 26
+ h1 += carry[0]
+ h0 -= carry[0] << 26
+ carry[4] = (h4 + (1 << 25)) >> 26
+ h5 += carry[4]
+ h4 -= carry[4] << 26
+ // |h0| <= 2^25
+ // |h4| <= 2^25
+ // |h1| <= 1.51*2^58
+ // |h5| <= 1.51*2^58
+
+ carry[1] = (h1 + (1 << 24)) >> 25
+ h2 += carry[1]
+ h1 -= carry[1] << 25
+ carry[5] = (h5 + (1 << 24)) >> 25
+ h6 += carry[5]
+ h5 -= carry[5] << 25
+ // |h1| <= 2^24; from now on fits into int32
+ // |h5| <= 2^24; from now on fits into int32
+ // |h2| <= 1.21*2^59
+ // |h6| <= 1.21*2^59
+
+ carry[2] = (h2 + (1 << 25)) >> 26
+ h3 += carry[2]
+ h2 -= carry[2] << 26
+ carry[6] = (h6 + (1 << 25)) >> 26
+ h7 += carry[6]
+ h6 -= carry[6] << 26
+ // |h2| <= 2^25; from now on fits into int32 unchanged
+ // |h6| <= 2^25; from now on fits into int32 unchanged
+ // |h3| <= 1.51*2^58
+ // |h7| <= 1.51*2^58
+
+ carry[3] = (h3 + (1 << 24)) >> 25
+ h4 += carry[3]
+ h3 -= carry[3] << 25
+ carry[7] = (h7 + (1 << 24)) >> 25
+ h8 += carry[7]
+ h7 -= carry[7] << 25
+ // |h3| <= 2^24; from now on fits into int32 unchanged
+ // |h7| <= 2^24; from now on fits into int32 unchanged
+ // |h4| <= 1.52*2^33
+ // |h8| <= 1.52*2^33
+
+ carry[4] = (h4 + (1 << 25)) >> 26
+ h5 += carry[4]
+ h4 -= carry[4] << 26
+ carry[8] = (h8 + (1 << 25)) >> 26
+ h9 += carry[8]
+ h8 -= carry[8] << 26
+ // |h4| <= 2^25; from now on fits into int32 unchanged
+ // |h8| <= 2^25; from now on fits into int32 unchanged
+ // |h5| <= 1.01*2^24
+ // |h9| <= 1.51*2^58
+
+ carry[9] = (h9 + (1 << 24)) >> 25
+ h0 += carry[9] * 19
+ h9 -= carry[9] << 25
+ // |h9| <= 2^24; from now on fits into int32 unchanged
+ // |h0| <= 1.8*2^37
+
+ carry[0] = (h0 + (1 << 25)) >> 26
+ h1 += carry[0]
+ h0 -= carry[0] << 26
+ // |h0| <= 2^25; from now on fits into int32 unchanged
+ // |h1| <= 1.01*2^24
+
+ h[0] = int32(h0)
+ h[1] = int32(h1)
+ h[2] = int32(h2)
+ h[3] = int32(h3)
+ h[4] = int32(h4)
+ h[5] = int32(h5)
+ h[6] = int32(h6)
+ h[7] = int32(h7)
+ h[8] = int32(h8)
+ h[9] = int32(h9)
+}
+
+// feSquare calculates h = f*f. Can overlap h with f.
+//
+// Preconditions:
+// |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc.
+//
+// Postconditions:
+// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc.
+func feSquare(h, f *fieldElement) {
+ f0 := f[0]
+ f1 := f[1]
+ f2 := f[2]
+ f3 := f[3]
+ f4 := f[4]
+ f5 := f[5]
+ f6 := f[6]
+ f7 := f[7]
+ f8 := f[8]
+ f9 := f[9]
+ f0_2 := 2 * f0
+ f1_2 := 2 * f1
+ f2_2 := 2 * f2
+ f3_2 := 2 * f3
+ f4_2 := 2 * f4
+ f5_2 := 2 * f5
+ f6_2 := 2 * f6
+ f7_2 := 2 * f7
+ f5_38 := 38 * f5 // 1.31*2^30
+ f6_19 := 19 * f6 // 1.31*2^30
+ f7_38 := 38 * f7 // 1.31*2^30
+ f8_19 := 19 * f8 // 1.31*2^30
+ f9_38 := 38 * f9 // 1.31*2^30
+ f0f0 := int64(f0) * int64(f0)
+ f0f1_2 := int64(f0_2) * int64(f1)
+ f0f2_2 := int64(f0_2) * int64(f2)
+ f0f3_2 := int64(f0_2) * int64(f3)
+ f0f4_2 := int64(f0_2) * int64(f4)
+ f0f5_2 := int64(f0_2) * int64(f5)
+ f0f6_2 := int64(f0_2) * int64(f6)
+ f0f7_2 := int64(f0_2) * int64(f7)
+ f0f8_2 := int64(f0_2) * int64(f8)
+ f0f9_2 := int64(f0_2) * int64(f9)
+ f1f1_2 := int64(f1_2) * int64(f1)
+ f1f2_2 := int64(f1_2) * int64(f2)
+ f1f3_4 := int64(f1_2) * int64(f3_2)
+ f1f4_2 := int64(f1_2) * int64(f4)
+ f1f5_4 := int64(f1_2) * int64(f5_2)
+ f1f6_2 := int64(f1_2) * int64(f6)
+ f1f7_4 := int64(f1_2) * int64(f7_2)
+ f1f8_2 := int64(f1_2) * int64(f8)
+ f1f9_76 := int64(f1_2) * int64(f9_38)
+ f2f2 := int64(f2) * int64(f2)
+ f2f3_2 := int64(f2_2) * int64(f3)
+ f2f4_2 := int64(f2_2) * int64(f4)
+ f2f5_2 := int64(f2_2) * int64(f5)
+ f2f6_2 := int64(f2_2) * int64(f6)
+ f2f7_2 := int64(f2_2) * int64(f7)
+ f2f8_38 := int64(f2_2) * int64(f8_19)
+ f2f9_38 := int64(f2) * int64(f9_38)
+ f3f3_2 := int64(f3_2) * int64(f3)
+ f3f4_2 := int64(f3_2) * int64(f4)
+ f3f5_4 := int64(f3_2) * int64(f5_2)
+ f3f6_2 := int64(f3_2) * int64(f6)
+ f3f7_76 := int64(f3_2) * int64(f7_38)
+ f3f8_38 := int64(f3_2) * int64(f8_19)
+ f3f9_76 := int64(f3_2) * int64(f9_38)
+ f4f4 := int64(f4) * int64(f4)
+ f4f5_2 := int64(f4_2) * int64(f5)
+ f4f6_38 := int64(f4_2) * int64(f6_19)
+ f4f7_38 := int64(f4) * int64(f7_38)
+ f4f8_38 := int64(f4_2) * int64(f8_19)
+ f4f9_38 := int64(f4) * int64(f9_38)
+ f5f5_38 := int64(f5) * int64(f5_38)
+ f5f6_38 := int64(f5_2) * int64(f6_19)
+ f5f7_76 := int64(f5_2) * int64(f7_38)
+ f5f8_38 := int64(f5_2) * int64(f8_19)
+ f5f9_76 := int64(f5_2) * int64(f9_38)
+ f6f6_19 := int64(f6) * int64(f6_19)
+ f6f7_38 := int64(f6) * int64(f7_38)
+ f6f8_38 := int64(f6_2) * int64(f8_19)
+ f6f9_38 := int64(f6) * int64(f9_38)
+ f7f7_38 := int64(f7) * int64(f7_38)
+ f7f8_38 := int64(f7_2) * int64(f8_19)
+ f7f9_76 := int64(f7_2) * int64(f9_38)
+ f8f8_19 := int64(f8) * int64(f8_19)
+ f8f9_38 := int64(f8) * int64(f9_38)
+ f9f9_38 := int64(f9) * int64(f9_38)
+ h0 := f0f0 + f1f9_76 + f2f8_38 + f3f7_76 + f4f6_38 + f5f5_38
+ h1 := f0f1_2 + f2f9_38 + f3f8_38 + f4f7_38 + f5f6_38
+ h2 := f0f2_2 + f1f1_2 + f3f9_76 + f4f8_38 + f5f7_76 + f6f6_19
+ h3 := f0f3_2 + f1f2_2 + f4f9_38 + f5f8_38 + f6f7_38
+ h4 := f0f4_2 + f1f3_4 + f2f2 + f5f9_76 + f6f8_38 + f7f7_38
+ h5 := f0f5_2 + f1f4_2 + f2f3_2 + f6f9_38 + f7f8_38
+ h6 := f0f6_2 + f1f5_4 + f2f4_2 + f3f3_2 + f7f9_76 + f8f8_19
+ h7 := f0f7_2 + f1f6_2 + f2f5_2 + f3f4_2 + f8f9_38
+ h8 := f0f8_2 + f1f7_4 + f2f6_2 + f3f5_4 + f4f4 + f9f9_38
+ h9 := f0f9_2 + f1f8_2 + f2f7_2 + f3f6_2 + f4f5_2
+ var carry [10]int64
+
+ carry[0] = (h0 + (1 << 25)) >> 26
+ h1 += carry[0]
+ h0 -= carry[0] << 26
+ carry[4] = (h4 + (1 << 25)) >> 26
+ h5 += carry[4]
+ h4 -= carry[4] << 26
+
+ carry[1] = (h1 + (1 << 24)) >> 25
+ h2 += carry[1]
+ h1 -= carry[1] << 25
+ carry[5] = (h5 + (1 << 24)) >> 25
+ h6 += carry[5]
+ h5 -= carry[5] << 25
+
+ carry[2] = (h2 + (1 << 25)) >> 26
+ h3 += carry[2]
+ h2 -= carry[2] << 26
+ carry[6] = (h6 + (1 << 25)) >> 26
+ h7 += carry[6]
+ h6 -= carry[6] << 26
+
+ carry[3] = (h3 + (1 << 24)) >> 25
+ h4 += carry[3]
+ h3 -= carry[3] << 25
+ carry[7] = (h7 + (1 << 24)) >> 25
+ h8 += carry[7]
+ h7 -= carry[7] << 25
+
+ carry[4] = (h4 + (1 << 25)) >> 26
+ h5 += carry[4]
+ h4 -= carry[4] << 26
+ carry[8] = (h8 + (1 << 25)) >> 26
+ h9 += carry[8]
+ h8 -= carry[8] << 26
+
+ carry[9] = (h9 + (1 << 24)) >> 25
+ h0 += carry[9] * 19
+ h9 -= carry[9] << 25
+
+ carry[0] = (h0 + (1 << 25)) >> 26
+ h1 += carry[0]
+ h0 -= carry[0] << 26
+
+ h[0] = int32(h0)
+ h[1] = int32(h1)
+ h[2] = int32(h2)
+ h[3] = int32(h3)
+ h[4] = int32(h4)
+ h[5] = int32(h5)
+ h[6] = int32(h6)
+ h[7] = int32(h7)
+ h[8] = int32(h8)
+ h[9] = int32(h9)
+}
+
+// feMul121666 calculates h = f * 121666. Can overlap h with f.
+//
+// Preconditions:
+// |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc.
+//
+// Postconditions:
+// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc.
+func feMul121666(h, f *fieldElement) {
+ h0 := int64(f[0]) * 121666
+ h1 := int64(f[1]) * 121666
+ h2 := int64(f[2]) * 121666
+ h3 := int64(f[3]) * 121666
+ h4 := int64(f[4]) * 121666
+ h5 := int64(f[5]) * 121666
+ h6 := int64(f[6]) * 121666
+ h7 := int64(f[7]) * 121666
+ h8 := int64(f[8]) * 121666
+ h9 := int64(f[9]) * 121666
+ var carry [10]int64
+
+ carry[9] = (h9 + (1 << 24)) >> 25
+ h0 += carry[9] * 19
+ h9 -= carry[9] << 25
+ carry[1] = (h1 + (1 << 24)) >> 25
+ h2 += carry[1]
+ h1 -= carry[1] << 25
+ carry[3] = (h3 + (1 << 24)) >> 25
+ h4 += carry[3]
+ h3 -= carry[3] << 25
+ carry[5] = (h5 + (1 << 24)) >> 25
+ h6 += carry[5]
+ h5 -= carry[5] << 25
+ carry[7] = (h7 + (1 << 24)) >> 25
+ h8 += carry[7]
+ h7 -= carry[7] << 25
+
+ carry[0] = (h0 + (1 << 25)) >> 26
+ h1 += carry[0]
+ h0 -= carry[0] << 26
+ carry[2] = (h2 + (1 << 25)) >> 26
+ h3 += carry[2]
+ h2 -= carry[2] << 26
+ carry[4] = (h4 + (1 << 25)) >> 26
+ h5 += carry[4]
+ h4 -= carry[4] << 26
+ carry[6] = (h6 + (1 << 25)) >> 26
+ h7 += carry[6]
+ h6 -= carry[6] << 26
+ carry[8] = (h8 + (1 << 25)) >> 26
+ h9 += carry[8]
+ h8 -= carry[8] << 26
+
+ h[0] = int32(h0)
+ h[1] = int32(h1)
+ h[2] = int32(h2)
+ h[3] = int32(h3)
+ h[4] = int32(h4)
+ h[5] = int32(h5)
+ h[6] = int32(h6)
+ h[7] = int32(h7)
+ h[8] = int32(h8)
+ h[9] = int32(h9)
+}
+
+// feInvert sets out = z^-1.
+func feInvert(out, z *fieldElement) {
+ var t0, t1, t2, t3 fieldElement
+ var i int
+
+ feSquare(&t0, z)
+ for i = 1; i < 1; i++ {
+ feSquare(&t0, &t0)
+ }
+ feSquare(&t1, &t0)
+ for i = 1; i < 2; i++ {
+ feSquare(&t1, &t1)
+ }
+ feMul(&t1, z, &t1)
+ feMul(&t0, &t0, &t1)
+ feSquare(&t2, &t0)
+ for i = 1; i < 1; i++ {
+ feSquare(&t2, &t2)
+ }
+ feMul(&t1, &t1, &t2)
+ feSquare(&t2, &t1)
+ for i = 1; i < 5; i++ {
+ feSquare(&t2, &t2)
+ }
+ feMul(&t1, &t2, &t1)
+ feSquare(&t2, &t1)
+ for i = 1; i < 10; i++ {
+ feSquare(&t2, &t2)
+ }
+ feMul(&t2, &t2, &t1)
+ feSquare(&t3, &t2)
+ for i = 1; i < 20; i++ {
+ feSquare(&t3, &t3)
+ }
+ feMul(&t2, &t3, &t2)
+ feSquare(&t2, &t2)
+ for i = 1; i < 10; i++ {
+ feSquare(&t2, &t2)
+ }
+ feMul(&t1, &t2, &t1)
+ feSquare(&t2, &t1)
+ for i = 1; i < 50; i++ {
+ feSquare(&t2, &t2)
+ }
+ feMul(&t2, &t2, &t1)
+ feSquare(&t3, &t2)
+ for i = 1; i < 100; i++ {
+ feSquare(&t3, &t3)
+ }
+ feMul(&t2, &t3, &t2)
+ feSquare(&t2, &t2)
+ for i = 1; i < 50; i++ {
+ feSquare(&t2, &t2)
+ }
+ feMul(&t1, &t2, &t1)
+ feSquare(&t1, &t1)
+ for i = 1; i < 5; i++ {
+ feSquare(&t1, &t1)
+ }
+ feMul(out, &t1, &t0)
+}
+
+func scalarMult(out, in, base *[32]byte) {
+ var e [32]byte
+
+ copy(e[:], in[:])
+ e[0] &= 248
+ e[31] &= 127
+ e[31] |= 64
+
+ var x1, x2, z2, x3, z3, tmp0, tmp1 fieldElement
+ feFromBytes(&x1, base)
+ feOne(&x2)
+ feCopy(&x3, &x1)
+ feOne(&z3)
+
+ swap := int32(0)
+ for pos := 254; pos >= 0; pos-- {
+ b := e[pos/8] >> uint(pos&7)
+ b &= 1
+ swap ^= int32(b)
+ feCSwap(&x2, &x3, swap)
+ feCSwap(&z2, &z3, swap)
+ swap = int32(b)
+
+ feSub(&tmp0, &x3, &z3)
+ feSub(&tmp1, &x2, &z2)
+ feAdd(&x2, &x2, &z2)
+ feAdd(&z2, &x3, &z3)
+ feMul(&z3, &tmp0, &x2)
+ feMul(&z2, &z2, &tmp1)
+ feSquare(&tmp0, &tmp1)
+ feSquare(&tmp1, &x2)
+ feAdd(&x3, &z3, &z2)
+ feSub(&z2, &z3, &z2)
+ feMul(&x2, &tmp1, &tmp0)
+ feSub(&tmp1, &tmp1, &tmp0)
+ feSquare(&z2, &z2)
+ feMul121666(&z3, &tmp1)
+ feSquare(&x3, &x3)
+ feAdd(&tmp0, &tmp0, &z3)
+ feMul(&z3, &x1, &z2)
+ feMul(&z2, &tmp1, &tmp0)
+ }
+
+ feCSwap(&x2, &x3, swap)
+ feCSwap(&z2, &z3, swap)
+
+ feInvert(&z2, &z2)
+ feMul(&x2, &x2, &z2)
+ feToBytes(out, &x2)
+}
diff --git a/vendor/golang.org/x/crypto/curve25519/doc.go b/vendor/golang.org/x/crypto/curve25519/doc.go
new file mode 100644
index 0000000000..da9b10d9c1
--- /dev/null
+++ b/vendor/golang.org/x/crypto/curve25519/doc.go
@@ -0,0 +1,23 @@
+// Copyright 2012 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 curve25519 provides an implementation of scalar multiplication on
+// the elliptic curve known as curve25519. See https://cr.yp.to/ecdh.html
+package curve25519 // import "golang.org/x/crypto/curve25519"
+
+// basePoint is the x coordinate of the generator of the curve.
+var basePoint = [32]byte{9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+
+// ScalarMult sets dst to the product in*base where dst and base are the x
+// coordinates of group points and all values are in little-endian form.
+func ScalarMult(dst, in, base *[32]byte) {
+ scalarMult(dst, in, base)
+}
+
+// ScalarBaseMult sets dst to the product in*base where dst and base are the x
+// coordinates of group points, base is the standard generator and all values
+// are in little-endian form.
+func ScalarBaseMult(dst, in *[32]byte) {
+ ScalarMult(dst, in, &basePoint)
+}
diff --git a/vendor/golang.org/x/crypto/curve25519/freeze_amd64.s b/vendor/golang.org/x/crypto/curve25519/freeze_amd64.s
new file mode 100644
index 0000000000..390816106e
--- /dev/null
+++ b/vendor/golang.org/x/crypto/curve25519/freeze_amd64.s
@@ -0,0 +1,73 @@
+// Copyright 2012 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.
+
+// This code was translated into a form compatible with 6a from the public
+// domain sources in SUPERCOP: https://bench.cr.yp.to/supercop.html
+
+// +build amd64,!gccgo,!appengine
+
+#include "const_amd64.h"
+
+// func freeze(inout *[5]uint64)
+TEXT ·freeze(SB),7,$0-8
+ MOVQ inout+0(FP), DI
+
+ MOVQ 0(DI),SI
+ MOVQ 8(DI),DX
+ MOVQ 16(DI),CX
+ MOVQ 24(DI),R8
+ MOVQ 32(DI),R9
+ MOVQ $REDMASK51,AX
+ MOVQ AX,R10
+ SUBQ $18,R10
+ MOVQ $3,R11
+REDUCELOOP:
+ MOVQ SI,R12
+ SHRQ $51,R12
+ ANDQ AX,SI
+ ADDQ R12,DX
+ MOVQ DX,R12
+ SHRQ $51,R12
+ ANDQ AX,DX
+ ADDQ R12,CX
+ MOVQ CX,R12
+ SHRQ $51,R12
+ ANDQ AX,CX
+ ADDQ R12,R8
+ MOVQ R8,R12
+ SHRQ $51,R12
+ ANDQ AX,R8
+ ADDQ R12,R9
+ MOVQ R9,R12
+ SHRQ $51,R12
+ ANDQ AX,R9
+ IMUL3Q $19,R12,R12
+ ADDQ R12,SI
+ SUBQ $1,R11
+ JA REDUCELOOP
+ MOVQ $1,R12
+ CMPQ R10,SI
+ CMOVQLT R11,R12
+ CMPQ AX,DX
+ CMOVQNE R11,R12
+ CMPQ AX,CX
+ CMOVQNE R11,R12
+ CMPQ AX,R8
+ CMOVQNE R11,R12
+ CMPQ AX,R9
+ CMOVQNE R11,R12
+ NEGQ R12
+ ANDQ R12,AX
+ ANDQ R12,R10
+ SUBQ R10,SI
+ SUBQ AX,DX
+ SUBQ AX,CX
+ SUBQ AX,R8
+ SUBQ AX,R9
+ MOVQ SI,0(DI)
+ MOVQ DX,8(DI)
+ MOVQ CX,16(DI)
+ MOVQ R8,24(DI)
+ MOVQ R9,32(DI)
+ RET
diff --git a/vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s b/vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s
new file mode 100644
index 0000000000..9e9040b250
--- /dev/null
+++ b/vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s
@@ -0,0 +1,1377 @@
+// Copyright 2012 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.
+
+// This code was translated into a form compatible with 6a from the public
+// domain sources in SUPERCOP: https://bench.cr.yp.to/supercop.html
+
+// +build amd64,!gccgo,!appengine
+
+#include "const_amd64.h"
+
+// func ladderstep(inout *[5][5]uint64)
+TEXT ·ladderstep(SB),0,$296-8
+ MOVQ inout+0(FP),DI
+
+ MOVQ 40(DI),SI
+ MOVQ 48(DI),DX
+ MOVQ 56(DI),CX
+ MOVQ 64(DI),R8
+ MOVQ 72(DI),R9
+ MOVQ SI,AX
+ MOVQ DX,R10
+ MOVQ CX,R11
+ MOVQ R8,R12
+ MOVQ R9,R13
+ ADDQ ·_2P0(SB),AX
+ ADDQ ·_2P1234(SB),R10
+ ADDQ ·_2P1234(SB),R11
+ ADDQ ·_2P1234(SB),R12
+ ADDQ ·_2P1234(SB),R13
+ ADDQ 80(DI),SI
+ ADDQ 88(DI),DX
+ ADDQ 96(DI),CX
+ ADDQ 104(DI),R8
+ ADDQ 112(DI),R9
+ SUBQ 80(DI),AX
+ SUBQ 88(DI),R10
+ SUBQ 96(DI),R11
+ SUBQ 104(DI),R12
+ SUBQ 112(DI),R13
+ MOVQ SI,0(SP)
+ MOVQ DX,8(SP)
+ MOVQ CX,16(SP)
+ MOVQ R8,24(SP)
+ MOVQ R9,32(SP)
+ MOVQ AX,40(SP)
+ MOVQ R10,48(SP)
+ MOVQ R11,56(SP)
+ MOVQ R12,64(SP)
+ MOVQ R13,72(SP)
+ MOVQ 40(SP),AX
+ MULQ 40(SP)
+ MOVQ AX,SI
+ MOVQ DX,CX
+ MOVQ 40(SP),AX
+ SHLQ $1,AX
+ MULQ 48(SP)
+ MOVQ AX,R8
+ MOVQ DX,R9
+ MOVQ 40(SP),AX
+ SHLQ $1,AX
+ MULQ 56(SP)
+ MOVQ AX,R10
+ MOVQ DX,R11
+ MOVQ 40(SP),AX
+ SHLQ $1,AX
+ MULQ 64(SP)
+ MOVQ AX,R12
+ MOVQ DX,R13
+ MOVQ 40(SP),AX
+ SHLQ $1,AX
+ MULQ 72(SP)
+ MOVQ AX,R14
+ MOVQ DX,R15
+ MOVQ 48(SP),AX
+ MULQ 48(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 48(SP),AX
+ SHLQ $1,AX
+ MULQ 56(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 48(SP),AX
+ SHLQ $1,AX
+ MULQ 64(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 48(SP),DX
+ IMUL3Q $38,DX,AX
+ MULQ 72(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 56(SP),AX
+ MULQ 56(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 56(SP),DX
+ IMUL3Q $38,DX,AX
+ MULQ 64(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 56(SP),DX
+ IMUL3Q $38,DX,AX
+ MULQ 72(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 64(SP),DX
+ IMUL3Q $19,DX,AX
+ MULQ 64(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 64(SP),DX
+ IMUL3Q $38,DX,AX
+ MULQ 72(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 72(SP),DX
+ IMUL3Q $19,DX,AX
+ MULQ 72(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ $REDMASK51,DX
+ SHLQ $13,CX:SI
+ ANDQ DX,SI
+ SHLQ $13,R9:R8
+ ANDQ DX,R8
+ ADDQ CX,R8
+ SHLQ $13,R11:R10
+ ANDQ DX,R10
+ ADDQ R9,R10
+ SHLQ $13,R13:R12
+ ANDQ DX,R12
+ ADDQ R11,R12
+ SHLQ $13,R15:R14
+ ANDQ DX,R14
+ ADDQ R13,R14
+ IMUL3Q $19,R15,CX
+ ADDQ CX,SI
+ MOVQ SI,CX
+ SHRQ $51,CX
+ ADDQ R8,CX
+ ANDQ DX,SI
+ MOVQ CX,R8
+ SHRQ $51,CX
+ ADDQ R10,CX
+ ANDQ DX,R8
+ MOVQ CX,R9
+ SHRQ $51,CX
+ ADDQ R12,CX
+ ANDQ DX,R9
+ MOVQ CX,AX
+ SHRQ $51,CX
+ ADDQ R14,CX
+ ANDQ DX,AX
+ MOVQ CX,R10
+ SHRQ $51,CX
+ IMUL3Q $19,CX,CX
+ ADDQ CX,SI
+ ANDQ DX,R10
+ MOVQ SI,80(SP)
+ MOVQ R8,88(SP)
+ MOVQ R9,96(SP)
+ MOVQ AX,104(SP)
+ MOVQ R10,112(SP)
+ MOVQ 0(SP),AX
+ MULQ 0(SP)
+ MOVQ AX,SI
+ MOVQ DX,CX
+ MOVQ 0(SP),AX
+ SHLQ $1,AX
+ MULQ 8(SP)
+ MOVQ AX,R8
+ MOVQ DX,R9
+ MOVQ 0(SP),AX
+ SHLQ $1,AX
+ MULQ 16(SP)
+ MOVQ AX,R10
+ MOVQ DX,R11
+ MOVQ 0(SP),AX
+ SHLQ $1,AX
+ MULQ 24(SP)
+ MOVQ AX,R12
+ MOVQ DX,R13
+ MOVQ 0(SP),AX
+ SHLQ $1,AX
+ MULQ 32(SP)
+ MOVQ AX,R14
+ MOVQ DX,R15
+ MOVQ 8(SP),AX
+ MULQ 8(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 8(SP),AX
+ SHLQ $1,AX
+ MULQ 16(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 8(SP),AX
+ SHLQ $1,AX
+ MULQ 24(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 8(SP),DX
+ IMUL3Q $38,DX,AX
+ MULQ 32(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 16(SP),AX
+ MULQ 16(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 16(SP),DX
+ IMUL3Q $38,DX,AX
+ MULQ 24(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 16(SP),DX
+ IMUL3Q $38,DX,AX
+ MULQ 32(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 24(SP),DX
+ IMUL3Q $19,DX,AX
+ MULQ 24(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 24(SP),DX
+ IMUL3Q $38,DX,AX
+ MULQ 32(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 32(SP),DX
+ IMUL3Q $19,DX,AX
+ MULQ 32(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ $REDMASK51,DX
+ SHLQ $13,CX:SI
+ ANDQ DX,SI
+ SHLQ $13,R9:R8
+ ANDQ DX,R8
+ ADDQ CX,R8
+ SHLQ $13,R11:R10
+ ANDQ DX,R10
+ ADDQ R9,R10
+ SHLQ $13,R13:R12
+ ANDQ DX,R12
+ ADDQ R11,R12
+ SHLQ $13,R15:R14
+ ANDQ DX,R14
+ ADDQ R13,R14
+ IMUL3Q $19,R15,CX
+ ADDQ CX,SI
+ MOVQ SI,CX
+ SHRQ $51,CX
+ ADDQ R8,CX
+ ANDQ DX,SI
+ MOVQ CX,R8
+ SHRQ $51,CX
+ ADDQ R10,CX
+ ANDQ DX,R8
+ MOVQ CX,R9
+ SHRQ $51,CX
+ ADDQ R12,CX
+ ANDQ DX,R9
+ MOVQ CX,AX
+ SHRQ $51,CX
+ ADDQ R14,CX
+ ANDQ DX,AX
+ MOVQ CX,R10
+ SHRQ $51,CX
+ IMUL3Q $19,CX,CX
+ ADDQ CX,SI
+ ANDQ DX,R10
+ MOVQ SI,120(SP)
+ MOVQ R8,128(SP)
+ MOVQ R9,136(SP)
+ MOVQ AX,144(SP)
+ MOVQ R10,152(SP)
+ MOVQ SI,SI
+ MOVQ R8,DX
+ MOVQ R9,CX
+ MOVQ AX,R8
+ MOVQ R10,R9
+ ADDQ ·_2P0(SB),SI
+ ADDQ ·_2P1234(SB),DX
+ ADDQ ·_2P1234(SB),CX
+ ADDQ ·_2P1234(SB),R8
+ ADDQ ·_2P1234(SB),R9
+ SUBQ 80(SP),SI
+ SUBQ 88(SP),DX
+ SUBQ 96(SP),CX
+ SUBQ 104(SP),R8
+ SUBQ 112(SP),R9
+ MOVQ SI,160(SP)
+ MOVQ DX,168(SP)
+ MOVQ CX,176(SP)
+ MOVQ R8,184(SP)
+ MOVQ R9,192(SP)
+ MOVQ 120(DI),SI
+ MOVQ 128(DI),DX
+ MOVQ 136(DI),CX
+ MOVQ 144(DI),R8
+ MOVQ 152(DI),R9
+ MOVQ SI,AX
+ MOVQ DX,R10
+ MOVQ CX,R11
+ MOVQ R8,R12
+ MOVQ R9,R13
+ ADDQ ·_2P0(SB),AX
+ ADDQ ·_2P1234(SB),R10
+ ADDQ ·_2P1234(SB),R11
+ ADDQ ·_2P1234(SB),R12
+ ADDQ ·_2P1234(SB),R13
+ ADDQ 160(DI),SI
+ ADDQ 168(DI),DX
+ ADDQ 176(DI),CX
+ ADDQ 184(DI),R8
+ ADDQ 192(DI),R9
+ SUBQ 160(DI),AX
+ SUBQ 168(DI),R10
+ SUBQ 176(DI),R11
+ SUBQ 184(DI),R12
+ SUBQ 192(DI),R13
+ MOVQ SI,200(SP)
+ MOVQ DX,208(SP)
+ MOVQ CX,216(SP)
+ MOVQ R8,224(SP)
+ MOVQ R9,232(SP)
+ MOVQ AX,240(SP)
+ MOVQ R10,248(SP)
+ MOVQ R11,256(SP)
+ MOVQ R12,264(SP)
+ MOVQ R13,272(SP)
+ MOVQ 224(SP),SI
+ IMUL3Q $19,SI,AX
+ MOVQ AX,280(SP)
+ MULQ 56(SP)
+ MOVQ AX,SI
+ MOVQ DX,CX
+ MOVQ 232(SP),DX
+ IMUL3Q $19,DX,AX
+ MOVQ AX,288(SP)
+ MULQ 48(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 200(SP),AX
+ MULQ 40(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 200(SP),AX
+ MULQ 48(SP)
+ MOVQ AX,R8
+ MOVQ DX,R9
+ MOVQ 200(SP),AX
+ MULQ 56(SP)
+ MOVQ AX,R10
+ MOVQ DX,R11
+ MOVQ 200(SP),AX
+ MULQ 64(SP)
+ MOVQ AX,R12
+ MOVQ DX,R13
+ MOVQ 200(SP),AX
+ MULQ 72(SP)
+ MOVQ AX,R14
+ MOVQ DX,R15
+ MOVQ 208(SP),AX
+ MULQ 40(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 208(SP),AX
+ MULQ 48(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 208(SP),AX
+ MULQ 56(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 208(SP),AX
+ MULQ 64(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 208(SP),DX
+ IMUL3Q $19,DX,AX
+ MULQ 72(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 216(SP),AX
+ MULQ 40(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 216(SP),AX
+ MULQ 48(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 216(SP),AX
+ MULQ 56(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 216(SP),DX
+ IMUL3Q $19,DX,AX
+ MULQ 64(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 216(SP),DX
+ IMUL3Q $19,DX,AX
+ MULQ 72(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 224(SP),AX
+ MULQ 40(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 224(SP),AX
+ MULQ 48(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 280(SP),AX
+ MULQ 64(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 280(SP),AX
+ MULQ 72(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 232(SP),AX
+ MULQ 40(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 288(SP),AX
+ MULQ 56(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 288(SP),AX
+ MULQ 64(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 288(SP),AX
+ MULQ 72(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ $REDMASK51,DX
+ SHLQ $13,CX:SI
+ ANDQ DX,SI
+ SHLQ $13,R9:R8
+ ANDQ DX,R8
+ ADDQ CX,R8
+ SHLQ $13,R11:R10
+ ANDQ DX,R10
+ ADDQ R9,R10
+ SHLQ $13,R13:R12
+ ANDQ DX,R12
+ ADDQ R11,R12
+ SHLQ $13,R15:R14
+ ANDQ DX,R14
+ ADDQ R13,R14
+ IMUL3Q $19,R15,CX
+ ADDQ CX,SI
+ MOVQ SI,CX
+ SHRQ $51,CX
+ ADDQ R8,CX
+ MOVQ CX,R8
+ SHRQ $51,CX
+ ANDQ DX,SI
+ ADDQ R10,CX
+ MOVQ CX,R9
+ SHRQ $51,CX
+ ANDQ DX,R8
+ ADDQ R12,CX
+ MOVQ CX,AX
+ SHRQ $51,CX
+ ANDQ DX,R9
+ ADDQ R14,CX
+ MOVQ CX,R10
+ SHRQ $51,CX
+ ANDQ DX,AX
+ IMUL3Q $19,CX,CX
+ ADDQ CX,SI
+ ANDQ DX,R10
+ MOVQ SI,40(SP)
+ MOVQ R8,48(SP)
+ MOVQ R9,56(SP)
+ MOVQ AX,64(SP)
+ MOVQ R10,72(SP)
+ MOVQ 264(SP),SI
+ IMUL3Q $19,SI,AX
+ MOVQ AX,200(SP)
+ MULQ 16(SP)
+ MOVQ AX,SI
+ MOVQ DX,CX
+ MOVQ 272(SP),DX
+ IMUL3Q $19,DX,AX
+ MOVQ AX,208(SP)
+ MULQ 8(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 240(SP),AX
+ MULQ 0(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 240(SP),AX
+ MULQ 8(SP)
+ MOVQ AX,R8
+ MOVQ DX,R9
+ MOVQ 240(SP),AX
+ MULQ 16(SP)
+ MOVQ AX,R10
+ MOVQ DX,R11
+ MOVQ 240(SP),AX
+ MULQ 24(SP)
+ MOVQ AX,R12
+ MOVQ DX,R13
+ MOVQ 240(SP),AX
+ MULQ 32(SP)
+ MOVQ AX,R14
+ MOVQ DX,R15
+ MOVQ 248(SP),AX
+ MULQ 0(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 248(SP),AX
+ MULQ 8(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 248(SP),AX
+ MULQ 16(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 248(SP),AX
+ MULQ 24(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 248(SP),DX
+ IMUL3Q $19,DX,AX
+ MULQ 32(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 256(SP),AX
+ MULQ 0(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 256(SP),AX
+ MULQ 8(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 256(SP),AX
+ MULQ 16(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 256(SP),DX
+ IMUL3Q $19,DX,AX
+ MULQ 24(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 256(SP),DX
+ IMUL3Q $19,DX,AX
+ MULQ 32(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 264(SP),AX
+ MULQ 0(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 264(SP),AX
+ MULQ 8(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 200(SP),AX
+ MULQ 24(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 200(SP),AX
+ MULQ 32(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 272(SP),AX
+ MULQ 0(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 208(SP),AX
+ MULQ 16(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 208(SP),AX
+ MULQ 24(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 208(SP),AX
+ MULQ 32(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ $REDMASK51,DX
+ SHLQ $13,CX:SI
+ ANDQ DX,SI
+ SHLQ $13,R9:R8
+ ANDQ DX,R8
+ ADDQ CX,R8
+ SHLQ $13,R11:R10
+ ANDQ DX,R10
+ ADDQ R9,R10
+ SHLQ $13,R13:R12
+ ANDQ DX,R12
+ ADDQ R11,R12
+ SHLQ $13,R15:R14
+ ANDQ DX,R14
+ ADDQ R13,R14
+ IMUL3Q $19,R15,CX
+ ADDQ CX,SI
+ MOVQ SI,CX
+ SHRQ $51,CX
+ ADDQ R8,CX
+ MOVQ CX,R8
+ SHRQ $51,CX
+ ANDQ DX,SI
+ ADDQ R10,CX
+ MOVQ CX,R9
+ SHRQ $51,CX
+ ANDQ DX,R8
+ ADDQ R12,CX
+ MOVQ CX,AX
+ SHRQ $51,CX
+ ANDQ DX,R9
+ ADDQ R14,CX
+ MOVQ CX,R10
+ SHRQ $51,CX
+ ANDQ DX,AX
+ IMUL3Q $19,CX,CX
+ ADDQ CX,SI
+ ANDQ DX,R10
+ MOVQ SI,DX
+ MOVQ R8,CX
+ MOVQ R9,R11
+ MOVQ AX,R12
+ MOVQ R10,R13
+ ADDQ ·_2P0(SB),DX
+ ADDQ ·_2P1234(SB),CX
+ ADDQ ·_2P1234(SB),R11
+ ADDQ ·_2P1234(SB),R12
+ ADDQ ·_2P1234(SB),R13
+ ADDQ 40(SP),SI
+ ADDQ 48(SP),R8
+ ADDQ 56(SP),R9
+ ADDQ 64(SP),AX
+ ADDQ 72(SP),R10
+ SUBQ 40(SP),DX
+ SUBQ 48(SP),CX
+ SUBQ 56(SP),R11
+ SUBQ 64(SP),R12
+ SUBQ 72(SP),R13
+ MOVQ SI,120(DI)
+ MOVQ R8,128(DI)
+ MOVQ R9,136(DI)
+ MOVQ AX,144(DI)
+ MOVQ R10,152(DI)
+ MOVQ DX,160(DI)
+ MOVQ CX,168(DI)
+ MOVQ R11,176(DI)
+ MOVQ R12,184(DI)
+ MOVQ R13,192(DI)
+ MOVQ 120(DI),AX
+ MULQ 120(DI)
+ MOVQ AX,SI
+ MOVQ DX,CX
+ MOVQ 120(DI),AX
+ SHLQ $1,AX
+ MULQ 128(DI)
+ MOVQ AX,R8
+ MOVQ DX,R9
+ MOVQ 120(DI),AX
+ SHLQ $1,AX
+ MULQ 136(DI)
+ MOVQ AX,R10
+ MOVQ DX,R11
+ MOVQ 120(DI),AX
+ SHLQ $1,AX
+ MULQ 144(DI)
+ MOVQ AX,R12
+ MOVQ DX,R13
+ MOVQ 120(DI),AX
+ SHLQ $1,AX
+ MULQ 152(DI)
+ MOVQ AX,R14
+ MOVQ DX,R15
+ MOVQ 128(DI),AX
+ MULQ 128(DI)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 128(DI),AX
+ SHLQ $1,AX
+ MULQ 136(DI)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 128(DI),AX
+ SHLQ $1,AX
+ MULQ 144(DI)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 128(DI),DX
+ IMUL3Q $38,DX,AX
+ MULQ 152(DI)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 136(DI),AX
+ MULQ 136(DI)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 136(DI),DX
+ IMUL3Q $38,DX,AX
+ MULQ 144(DI)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 136(DI),DX
+ IMUL3Q $38,DX,AX
+ MULQ 152(DI)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 144(DI),DX
+ IMUL3Q $19,DX,AX
+ MULQ 144(DI)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 144(DI),DX
+ IMUL3Q $38,DX,AX
+ MULQ 152(DI)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 152(DI),DX
+ IMUL3Q $19,DX,AX
+ MULQ 152(DI)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ $REDMASK51,DX
+ SHLQ $13,CX:SI
+ ANDQ DX,SI
+ SHLQ $13,R9:R8
+ ANDQ DX,R8
+ ADDQ CX,R8
+ SHLQ $13,R11:R10
+ ANDQ DX,R10
+ ADDQ R9,R10
+ SHLQ $13,R13:R12
+ ANDQ DX,R12
+ ADDQ R11,R12
+ SHLQ $13,R15:R14
+ ANDQ DX,R14
+ ADDQ R13,R14
+ IMUL3Q $19,R15,CX
+ ADDQ CX,SI
+ MOVQ SI,CX
+ SHRQ $51,CX
+ ADDQ R8,CX
+ ANDQ DX,SI
+ MOVQ CX,R8
+ SHRQ $51,CX
+ ADDQ R10,CX
+ ANDQ DX,R8
+ MOVQ CX,R9
+ SHRQ $51,CX
+ ADDQ R12,CX
+ ANDQ DX,R9
+ MOVQ CX,AX
+ SHRQ $51,CX
+ ADDQ R14,CX
+ ANDQ DX,AX
+ MOVQ CX,R10
+ SHRQ $51,CX
+ IMUL3Q $19,CX,CX
+ ADDQ CX,SI
+ ANDQ DX,R10
+ MOVQ SI,120(DI)
+ MOVQ R8,128(DI)
+ MOVQ R9,136(DI)
+ MOVQ AX,144(DI)
+ MOVQ R10,152(DI)
+ MOVQ 160(DI),AX
+ MULQ 160(DI)
+ MOVQ AX,SI
+ MOVQ DX,CX
+ MOVQ 160(DI),AX
+ SHLQ $1,AX
+ MULQ 168(DI)
+ MOVQ AX,R8
+ MOVQ DX,R9
+ MOVQ 160(DI),AX
+ SHLQ $1,AX
+ MULQ 176(DI)
+ MOVQ AX,R10
+ MOVQ DX,R11
+ MOVQ 160(DI),AX
+ SHLQ $1,AX
+ MULQ 184(DI)
+ MOVQ AX,R12
+ MOVQ DX,R13
+ MOVQ 160(DI),AX
+ SHLQ $1,AX
+ MULQ 192(DI)
+ MOVQ AX,R14
+ MOVQ DX,R15
+ MOVQ 168(DI),AX
+ MULQ 168(DI)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 168(DI),AX
+ SHLQ $1,AX
+ MULQ 176(DI)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 168(DI),AX
+ SHLQ $1,AX
+ MULQ 184(DI)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 168(DI),DX
+ IMUL3Q $38,DX,AX
+ MULQ 192(DI)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 176(DI),AX
+ MULQ 176(DI)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 176(DI),DX
+ IMUL3Q $38,DX,AX
+ MULQ 184(DI)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 176(DI),DX
+ IMUL3Q $38,DX,AX
+ MULQ 192(DI)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 184(DI),DX
+ IMUL3Q $19,DX,AX
+ MULQ 184(DI)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 184(DI),DX
+ IMUL3Q $38,DX,AX
+ MULQ 192(DI)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 192(DI),DX
+ IMUL3Q $19,DX,AX
+ MULQ 192(DI)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ $REDMASK51,DX
+ SHLQ $13,CX:SI
+ ANDQ DX,SI
+ SHLQ $13,R9:R8
+ ANDQ DX,R8
+ ADDQ CX,R8
+ SHLQ $13,R11:R10
+ ANDQ DX,R10
+ ADDQ R9,R10
+ SHLQ $13,R13:R12
+ ANDQ DX,R12
+ ADDQ R11,R12
+ SHLQ $13,R15:R14
+ ANDQ DX,R14
+ ADDQ R13,R14
+ IMUL3Q $19,R15,CX
+ ADDQ CX,SI
+ MOVQ SI,CX
+ SHRQ $51,CX
+ ADDQ R8,CX
+ ANDQ DX,SI
+ MOVQ CX,R8
+ SHRQ $51,CX
+ ADDQ R10,CX
+ ANDQ DX,R8
+ MOVQ CX,R9
+ SHRQ $51,CX
+ ADDQ R12,CX
+ ANDQ DX,R9
+ MOVQ CX,AX
+ SHRQ $51,CX
+ ADDQ R14,CX
+ ANDQ DX,AX
+ MOVQ CX,R10
+ SHRQ $51,CX
+ IMUL3Q $19,CX,CX
+ ADDQ CX,SI
+ ANDQ DX,R10
+ MOVQ SI,160(DI)
+ MOVQ R8,168(DI)
+ MOVQ R9,176(DI)
+ MOVQ AX,184(DI)
+ MOVQ R10,192(DI)
+ MOVQ 184(DI),SI
+ IMUL3Q $19,SI,AX
+ MOVQ AX,0(SP)
+ MULQ 16(DI)
+ MOVQ AX,SI
+ MOVQ DX,CX
+ MOVQ 192(DI),DX
+ IMUL3Q $19,DX,AX
+ MOVQ AX,8(SP)
+ MULQ 8(DI)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 160(DI),AX
+ MULQ 0(DI)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 160(DI),AX
+ MULQ 8(DI)
+ MOVQ AX,R8
+ MOVQ DX,R9
+ MOVQ 160(DI),AX
+ MULQ 16(DI)
+ MOVQ AX,R10
+ MOVQ DX,R11
+ MOVQ 160(DI),AX
+ MULQ 24(DI)
+ MOVQ AX,R12
+ MOVQ DX,R13
+ MOVQ 160(DI),AX
+ MULQ 32(DI)
+ MOVQ AX,R14
+ MOVQ DX,R15
+ MOVQ 168(DI),AX
+ MULQ 0(DI)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 168(DI),AX
+ MULQ 8(DI)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 168(DI),AX
+ MULQ 16(DI)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 168(DI),AX
+ MULQ 24(DI)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 168(DI),DX
+ IMUL3Q $19,DX,AX
+ MULQ 32(DI)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 176(DI),AX
+ MULQ 0(DI)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 176(DI),AX
+ MULQ 8(DI)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 176(DI),AX
+ MULQ 16(DI)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 176(DI),DX
+ IMUL3Q $19,DX,AX
+ MULQ 24(DI)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 176(DI),DX
+ IMUL3Q $19,DX,AX
+ MULQ 32(DI)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 184(DI),AX
+ MULQ 0(DI)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 184(DI),AX
+ MULQ 8(DI)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 0(SP),AX
+ MULQ 24(DI)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 0(SP),AX
+ MULQ 32(DI)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 192(DI),AX
+ MULQ 0(DI)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 8(SP),AX
+ MULQ 16(DI)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 8(SP),AX
+ MULQ 24(DI)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 8(SP),AX
+ MULQ 32(DI)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ $REDMASK51,DX
+ SHLQ $13,CX:SI
+ ANDQ DX,SI
+ SHLQ $13,R9:R8
+ ANDQ DX,R8
+ ADDQ CX,R8
+ SHLQ $13,R11:R10
+ ANDQ DX,R10
+ ADDQ R9,R10
+ SHLQ $13,R13:R12
+ ANDQ DX,R12
+ ADDQ R11,R12
+ SHLQ $13,R15:R14
+ ANDQ DX,R14
+ ADDQ R13,R14
+ IMUL3Q $19,R15,CX
+ ADDQ CX,SI
+ MOVQ SI,CX
+ SHRQ $51,CX
+ ADDQ R8,CX
+ MOVQ CX,R8
+ SHRQ $51,CX
+ ANDQ DX,SI
+ ADDQ R10,CX
+ MOVQ CX,R9
+ SHRQ $51,CX
+ ANDQ DX,R8
+ ADDQ R12,CX
+ MOVQ CX,AX
+ SHRQ $51,CX
+ ANDQ DX,R9
+ ADDQ R14,CX
+ MOVQ CX,R10
+ SHRQ $51,CX
+ ANDQ DX,AX
+ IMUL3Q $19,CX,CX
+ ADDQ CX,SI
+ ANDQ DX,R10
+ MOVQ SI,160(DI)
+ MOVQ R8,168(DI)
+ MOVQ R9,176(DI)
+ MOVQ AX,184(DI)
+ MOVQ R10,192(DI)
+ MOVQ 144(SP),SI
+ IMUL3Q $19,SI,AX
+ MOVQ AX,0(SP)
+ MULQ 96(SP)
+ MOVQ AX,SI
+ MOVQ DX,CX
+ MOVQ 152(SP),DX
+ IMUL3Q $19,DX,AX
+ MOVQ AX,8(SP)
+ MULQ 88(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 120(SP),AX
+ MULQ 80(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 120(SP),AX
+ MULQ 88(SP)
+ MOVQ AX,R8
+ MOVQ DX,R9
+ MOVQ 120(SP),AX
+ MULQ 96(SP)
+ MOVQ AX,R10
+ MOVQ DX,R11
+ MOVQ 120(SP),AX
+ MULQ 104(SP)
+ MOVQ AX,R12
+ MOVQ DX,R13
+ MOVQ 120(SP),AX
+ MULQ 112(SP)
+ MOVQ AX,R14
+ MOVQ DX,R15
+ MOVQ 128(SP),AX
+ MULQ 80(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 128(SP),AX
+ MULQ 88(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 128(SP),AX
+ MULQ 96(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 128(SP),AX
+ MULQ 104(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 128(SP),DX
+ IMUL3Q $19,DX,AX
+ MULQ 112(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 136(SP),AX
+ MULQ 80(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 136(SP),AX
+ MULQ 88(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 136(SP),AX
+ MULQ 96(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 136(SP),DX
+ IMUL3Q $19,DX,AX
+ MULQ 104(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 136(SP),DX
+ IMUL3Q $19,DX,AX
+ MULQ 112(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 144(SP),AX
+ MULQ 80(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 144(SP),AX
+ MULQ 88(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 0(SP),AX
+ MULQ 104(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 0(SP),AX
+ MULQ 112(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 152(SP),AX
+ MULQ 80(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 8(SP),AX
+ MULQ 96(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 8(SP),AX
+ MULQ 104(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 8(SP),AX
+ MULQ 112(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ $REDMASK51,DX
+ SHLQ $13,CX:SI
+ ANDQ DX,SI
+ SHLQ $13,R9:R8
+ ANDQ DX,R8
+ ADDQ CX,R8
+ SHLQ $13,R11:R10
+ ANDQ DX,R10
+ ADDQ R9,R10
+ SHLQ $13,R13:R12
+ ANDQ DX,R12
+ ADDQ R11,R12
+ SHLQ $13,R15:R14
+ ANDQ DX,R14
+ ADDQ R13,R14
+ IMUL3Q $19,R15,CX
+ ADDQ CX,SI
+ MOVQ SI,CX
+ SHRQ $51,CX
+ ADDQ R8,CX
+ MOVQ CX,R8
+ SHRQ $51,CX
+ ANDQ DX,SI
+ ADDQ R10,CX
+ MOVQ CX,R9
+ SHRQ $51,CX
+ ANDQ DX,R8
+ ADDQ R12,CX
+ MOVQ CX,AX
+ SHRQ $51,CX
+ ANDQ DX,R9
+ ADDQ R14,CX
+ MOVQ CX,R10
+ SHRQ $51,CX
+ ANDQ DX,AX
+ IMUL3Q $19,CX,CX
+ ADDQ CX,SI
+ ANDQ DX,R10
+ MOVQ SI,40(DI)
+ MOVQ R8,48(DI)
+ MOVQ R9,56(DI)
+ MOVQ AX,64(DI)
+ MOVQ R10,72(DI)
+ MOVQ 160(SP),AX
+ MULQ ·_121666_213(SB)
+ SHRQ $13,AX
+ MOVQ AX,SI
+ MOVQ DX,CX
+ MOVQ 168(SP),AX
+ MULQ ·_121666_213(SB)
+ SHRQ $13,AX
+ ADDQ AX,CX
+ MOVQ DX,R8
+ MOVQ 176(SP),AX
+ MULQ ·_121666_213(SB)
+ SHRQ $13,AX
+ ADDQ AX,R8
+ MOVQ DX,R9
+ MOVQ 184(SP),AX
+ MULQ ·_121666_213(SB)
+ SHRQ $13,AX
+ ADDQ AX,R9
+ MOVQ DX,R10
+ MOVQ 192(SP),AX
+ MULQ ·_121666_213(SB)
+ SHRQ $13,AX
+ ADDQ AX,R10
+ IMUL3Q $19,DX,DX
+ ADDQ DX,SI
+ ADDQ 80(SP),SI
+ ADDQ 88(SP),CX
+ ADDQ 96(SP),R8
+ ADDQ 104(SP),R9
+ ADDQ 112(SP),R10
+ MOVQ SI,80(DI)
+ MOVQ CX,88(DI)
+ MOVQ R8,96(DI)
+ MOVQ R9,104(DI)
+ MOVQ R10,112(DI)
+ MOVQ 104(DI),SI
+ IMUL3Q $19,SI,AX
+ MOVQ AX,0(SP)
+ MULQ 176(SP)
+ MOVQ AX,SI
+ MOVQ DX,CX
+ MOVQ 112(DI),DX
+ IMUL3Q $19,DX,AX
+ MOVQ AX,8(SP)
+ MULQ 168(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 80(DI),AX
+ MULQ 160(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 80(DI),AX
+ MULQ 168(SP)
+ MOVQ AX,R8
+ MOVQ DX,R9
+ MOVQ 80(DI),AX
+ MULQ 176(SP)
+ MOVQ AX,R10
+ MOVQ DX,R11
+ MOVQ 80(DI),AX
+ MULQ 184(SP)
+ MOVQ AX,R12
+ MOVQ DX,R13
+ MOVQ 80(DI),AX
+ MULQ 192(SP)
+ MOVQ AX,R14
+ MOVQ DX,R15
+ MOVQ 88(DI),AX
+ MULQ 160(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 88(DI),AX
+ MULQ 168(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 88(DI),AX
+ MULQ 176(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 88(DI),AX
+ MULQ 184(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 88(DI),DX
+ IMUL3Q $19,DX,AX
+ MULQ 192(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 96(DI),AX
+ MULQ 160(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 96(DI),AX
+ MULQ 168(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 96(DI),AX
+ MULQ 176(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 96(DI),DX
+ IMUL3Q $19,DX,AX
+ MULQ 184(SP)
+ ADDQ AX,SI
+ ADCQ DX,CX
+ MOVQ 96(DI),DX
+ IMUL3Q $19,DX,AX
+ MULQ 192(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 104(DI),AX
+ MULQ 160(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 104(DI),AX
+ MULQ 168(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 0(SP),AX
+ MULQ 184(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 0(SP),AX
+ MULQ 192(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 112(DI),AX
+ MULQ 160(SP)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 8(SP),AX
+ MULQ 176(SP)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 8(SP),AX
+ MULQ 184(SP)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 8(SP),AX
+ MULQ 192(SP)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ $REDMASK51,DX
+ SHLQ $13,CX:SI
+ ANDQ DX,SI
+ SHLQ $13,R9:R8
+ ANDQ DX,R8
+ ADDQ CX,R8
+ SHLQ $13,R11:R10
+ ANDQ DX,R10
+ ADDQ R9,R10
+ SHLQ $13,R13:R12
+ ANDQ DX,R12
+ ADDQ R11,R12
+ SHLQ $13,R15:R14
+ ANDQ DX,R14
+ ADDQ R13,R14
+ IMUL3Q $19,R15,CX
+ ADDQ CX,SI
+ MOVQ SI,CX
+ SHRQ $51,CX
+ ADDQ R8,CX
+ MOVQ CX,R8
+ SHRQ $51,CX
+ ANDQ DX,SI
+ ADDQ R10,CX
+ MOVQ CX,R9
+ SHRQ $51,CX
+ ANDQ DX,R8
+ ADDQ R12,CX
+ MOVQ CX,AX
+ SHRQ $51,CX
+ ANDQ DX,R9
+ ADDQ R14,CX
+ MOVQ CX,R10
+ SHRQ $51,CX
+ ANDQ DX,AX
+ IMUL3Q $19,CX,CX
+ ADDQ CX,SI
+ ANDQ DX,R10
+ MOVQ SI,80(DI)
+ MOVQ R8,88(DI)
+ MOVQ R9,96(DI)
+ MOVQ AX,104(DI)
+ MOVQ R10,112(DI)
+ RET
diff --git a/vendor/golang.org/x/crypto/curve25519/mont25519_amd64.go b/vendor/golang.org/x/crypto/curve25519/mont25519_amd64.go
new file mode 100644
index 0000000000..5822bd5338
--- /dev/null
+++ b/vendor/golang.org/x/crypto/curve25519/mont25519_amd64.go
@@ -0,0 +1,240 @@
+// Copyright 2012 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 amd64,!gccgo,!appengine
+
+package curve25519
+
+// These functions are implemented in the .s files. The names of the functions
+// in the rest of the file are also taken from the SUPERCOP sources to help
+// people following along.
+
+//go:noescape
+
+func cswap(inout *[5]uint64, v uint64)
+
+//go:noescape
+
+func ladderstep(inout *[5][5]uint64)
+
+//go:noescape
+
+func freeze(inout *[5]uint64)
+
+//go:noescape
+
+func mul(dest, a, b *[5]uint64)
+
+//go:noescape
+
+func square(out, in *[5]uint64)
+
+// mladder uses a Montgomery ladder to calculate (xr/zr) *= s.
+func mladder(xr, zr *[5]uint64, s *[32]byte) {
+ var work [5][5]uint64
+
+ work[0] = *xr
+ setint(&work[1], 1)
+ setint(&work[2], 0)
+ work[3] = *xr
+ setint(&work[4], 1)
+
+ j := uint(6)
+ var prevbit byte
+
+ for i := 31; i >= 0; i-- {
+ for j < 8 {
+ bit := ((*s)[i] >> j) & 1
+ swap := bit ^ prevbit
+ prevbit = bit
+ cswap(&work[1], uint64(swap))
+ ladderstep(&work)
+ j--
+ }
+ j = 7
+ }
+
+ *xr = work[1]
+ *zr = work[2]
+}
+
+func scalarMult(out, in, base *[32]byte) {
+ var e [32]byte
+ copy(e[:], (*in)[:])
+ e[0] &= 248
+ e[31] &= 127
+ e[31] |= 64
+
+ var t, z [5]uint64
+ unpack(&t, base)
+ mladder(&t, &z, &e)
+ invert(&z, &z)
+ mul(&t, &t, &z)
+ pack(out, &t)
+}
+
+func setint(r *[5]uint64, v uint64) {
+ r[0] = v
+ r[1] = 0
+ r[2] = 0
+ r[3] = 0
+ r[4] = 0
+}
+
+// unpack sets r = x where r consists of 5, 51-bit limbs in little-endian
+// order.
+func unpack(r *[5]uint64, x *[32]byte) {
+ r[0] = uint64(x[0]) |
+ uint64(x[1])<<8 |
+ uint64(x[2])<<16 |
+ uint64(x[3])<<24 |
+ uint64(x[4])<<32 |
+ uint64(x[5])<<40 |
+ uint64(x[6]&7)<<48
+
+ r[1] = uint64(x[6])>>3 |
+ uint64(x[7])<<5 |
+ uint64(x[8])<<13 |
+ uint64(x[9])<<21 |
+ uint64(x[10])<<29 |
+ uint64(x[11])<<37 |
+ uint64(x[12]&63)<<45
+
+ r[2] = uint64(x[12])>>6 |
+ uint64(x[13])<<2 |
+ uint64(x[14])<<10 |
+ uint64(x[15])<<18 |
+ uint64(x[16])<<26 |
+ uint64(x[17])<<34 |
+ uint64(x[18])<<42 |
+ uint64(x[19]&1)<<50
+
+ r[3] = uint64(x[19])>>1 |
+ uint64(x[20])<<7 |
+ uint64(x[21])<<15 |
+ uint64(x[22])<<23 |
+ uint64(x[23])<<31 |
+ uint64(x[24])<<39 |
+ uint64(x[25]&15)<<47
+
+ r[4] = uint64(x[25])>>4 |
+ uint64(x[26])<<4 |
+ uint64(x[27])<<12 |
+ uint64(x[28])<<20 |
+ uint64(x[29])<<28 |
+ uint64(x[30])<<36 |
+ uint64(x[31]&127)<<44
+}
+
+// pack sets out = x where out is the usual, little-endian form of the 5,
+// 51-bit limbs in x.
+func pack(out *[32]byte, x *[5]uint64) {
+ t := *x
+ freeze(&t)
+
+ out[0] = byte(t[0])
+ out[1] = byte(t[0] >> 8)
+ out[2] = byte(t[0] >> 16)
+ out[3] = byte(t[0] >> 24)
+ out[4] = byte(t[0] >> 32)
+ out[5] = byte(t[0] >> 40)
+ out[6] = byte(t[0] >> 48)
+
+ out[6] ^= byte(t[1]<<3) & 0xf8
+ out[7] = byte(t[1] >> 5)
+ out[8] = byte(t[1] >> 13)
+ out[9] = byte(t[1] >> 21)
+ out[10] = byte(t[1] >> 29)
+ out[11] = byte(t[1] >> 37)
+ out[12] = byte(t[1] >> 45)
+
+ out[12] ^= byte(t[2]<<6) & 0xc0
+ out[13] = byte(t[2] >> 2)
+ out[14] = byte(t[2] >> 10)
+ out[15] = byte(t[2] >> 18)
+ out[16] = byte(t[2] >> 26)
+ out[17] = byte(t[2] >> 34)
+ out[18] = byte(t[2] >> 42)
+ out[19] = byte(t[2] >> 50)
+
+ out[19] ^= byte(t[3]<<1) & 0xfe
+ out[20] = byte(t[3] >> 7)
+ out[21] = byte(t[3] >> 15)
+ out[22] = byte(t[3] >> 23)
+ out[23] = byte(t[3] >> 31)
+ out[24] = byte(t[3] >> 39)
+ out[25] = byte(t[3] >> 47)
+
+ out[25] ^= byte(t[4]<<4) & 0xf0
+ out[26] = byte(t[4] >> 4)
+ out[27] = byte(t[4] >> 12)
+ out[28] = byte(t[4] >> 20)
+ out[29] = byte(t[4] >> 28)
+ out[30] = byte(t[4] >> 36)
+ out[31] = byte(t[4] >> 44)
+}
+
+// invert calculates r = x^-1 mod p using Fermat's little theorem.
+func invert(r *[5]uint64, x *[5]uint64) {
+ var z2, z9, z11, z2_5_0, z2_10_0, z2_20_0, z2_50_0, z2_100_0, t [5]uint64
+
+ square(&z2, x) /* 2 */
+ square(&t, &z2) /* 4 */
+ square(&t, &t) /* 8 */
+ mul(&z9, &t, x) /* 9 */
+ mul(&z11, &z9, &z2) /* 11 */
+ square(&t, &z11) /* 22 */
+ mul(&z2_5_0, &t, &z9) /* 2^5 - 2^0 = 31 */
+
+ square(&t, &z2_5_0) /* 2^6 - 2^1 */
+ for i := 1; i < 5; i++ { /* 2^20 - 2^10 */
+ square(&t, &t)
+ }
+ mul(&z2_10_0, &t, &z2_5_0) /* 2^10 - 2^0 */
+
+ square(&t, &z2_10_0) /* 2^11 - 2^1 */
+ for i := 1; i < 10; i++ { /* 2^20 - 2^10 */
+ square(&t, &t)
+ }
+ mul(&z2_20_0, &t, &z2_10_0) /* 2^20 - 2^0 */
+
+ square(&t, &z2_20_0) /* 2^21 - 2^1 */
+ for i := 1; i < 20; i++ { /* 2^40 - 2^20 */
+ square(&t, &t)
+ }
+ mul(&t, &t, &z2_20_0) /* 2^40 - 2^0 */
+
+ square(&t, &t) /* 2^41 - 2^1 */
+ for i := 1; i < 10; i++ { /* 2^50 - 2^10 */
+ square(&t, &t)
+ }
+ mul(&z2_50_0, &t, &z2_10_0) /* 2^50 - 2^0 */
+
+ square(&t, &z2_50_0) /* 2^51 - 2^1 */
+ for i := 1; i < 50; i++ { /* 2^100 - 2^50 */
+ square(&t, &t)
+ }
+ mul(&z2_100_0, &t, &z2_50_0) /* 2^100 - 2^0 */
+
+ square(&t, &z2_100_0) /* 2^101 - 2^1 */
+ for i := 1; i < 100; i++ { /* 2^200 - 2^100 */
+ square(&t, &t)
+ }
+ mul(&t, &t, &z2_100_0) /* 2^200 - 2^0 */
+
+ square(&t, &t) /* 2^201 - 2^1 */
+ for i := 1; i < 50; i++ { /* 2^250 - 2^50 */
+ square(&t, &t)
+ }
+ mul(&t, &t, &z2_50_0) /* 2^250 - 2^0 */
+
+ square(&t, &t) /* 2^251 - 2^1 */
+ square(&t, &t) /* 2^252 - 2^2 */
+ square(&t, &t) /* 2^253 - 2^3 */
+
+ square(&t, &t) /* 2^254 - 2^4 */
+
+ square(&t, &t) /* 2^255 - 2^5 */
+ mul(r, &t, &z11) /* 2^255 - 21 */
+}
diff --git a/vendor/golang.org/x/crypto/curve25519/mul_amd64.s b/vendor/golang.org/x/crypto/curve25519/mul_amd64.s
new file mode 100644
index 0000000000..5ce80a2e56
--- /dev/null
+++ b/vendor/golang.org/x/crypto/curve25519/mul_amd64.s
@@ -0,0 +1,169 @@
+// Copyright 2012 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.
+
+// This code was translated into a form compatible with 6a from the public
+// domain sources in SUPERCOP: https://bench.cr.yp.to/supercop.html
+
+// +build amd64,!gccgo,!appengine
+
+#include "const_amd64.h"
+
+// func mul(dest, a, b *[5]uint64)
+TEXT ·mul(SB),0,$16-24
+ MOVQ dest+0(FP), DI
+ MOVQ a+8(FP), SI
+ MOVQ b+16(FP), DX
+
+ MOVQ DX,CX
+ MOVQ 24(SI),DX
+ IMUL3Q $19,DX,AX
+ MOVQ AX,0(SP)
+ MULQ 16(CX)
+ MOVQ AX,R8
+ MOVQ DX,R9
+ MOVQ 32(SI),DX
+ IMUL3Q $19,DX,AX
+ MOVQ AX,8(SP)
+ MULQ 8(CX)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 0(SI),AX
+ MULQ 0(CX)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 0(SI),AX
+ MULQ 8(CX)
+ MOVQ AX,R10
+ MOVQ DX,R11
+ MOVQ 0(SI),AX
+ MULQ 16(CX)
+ MOVQ AX,R12
+ MOVQ DX,R13
+ MOVQ 0(SI),AX
+ MULQ 24(CX)
+ MOVQ AX,R14
+ MOVQ DX,R15
+ MOVQ 0(SI),AX
+ MULQ 32(CX)
+ MOVQ AX,BX
+ MOVQ DX,BP
+ MOVQ 8(SI),AX
+ MULQ 0(CX)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 8(SI),AX
+ MULQ 8(CX)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 8(SI),AX
+ MULQ 16(CX)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 8(SI),AX
+ MULQ 24(CX)
+ ADDQ AX,BX
+ ADCQ DX,BP
+ MOVQ 8(SI),DX
+ IMUL3Q $19,DX,AX
+ MULQ 32(CX)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 16(SI),AX
+ MULQ 0(CX)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 16(SI),AX
+ MULQ 8(CX)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 16(SI),AX
+ MULQ 16(CX)
+ ADDQ AX,BX
+ ADCQ DX,BP
+ MOVQ 16(SI),DX
+ IMUL3Q $19,DX,AX
+ MULQ 24(CX)
+ ADDQ AX,R8
+ ADCQ DX,R9
+ MOVQ 16(SI),DX
+ IMUL3Q $19,DX,AX
+ MULQ 32(CX)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 24(SI),AX
+ MULQ 0(CX)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ 24(SI),AX
+ MULQ 8(CX)
+ ADDQ AX,BX
+ ADCQ DX,BP
+ MOVQ 0(SP),AX
+ MULQ 24(CX)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 0(SP),AX
+ MULQ 32(CX)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 32(SI),AX
+ MULQ 0(CX)
+ ADDQ AX,BX
+ ADCQ DX,BP
+ MOVQ 8(SP),AX
+ MULQ 16(CX)
+ ADDQ AX,R10
+ ADCQ DX,R11
+ MOVQ 8(SP),AX
+ MULQ 24(CX)
+ ADDQ AX,R12
+ ADCQ DX,R13
+ MOVQ 8(SP),AX
+ MULQ 32(CX)
+ ADDQ AX,R14
+ ADCQ DX,R15
+ MOVQ $REDMASK51,SI
+ SHLQ $13,R9:R8
+ ANDQ SI,R8
+ SHLQ $13,R11:R10
+ ANDQ SI,R10
+ ADDQ R9,R10
+ SHLQ $13,R13:R12
+ ANDQ SI,R12
+ ADDQ R11,R12
+ SHLQ $13,R15:R14
+ ANDQ SI,R14
+ ADDQ R13,R14
+ SHLQ $13,BP:BX
+ ANDQ SI,BX
+ ADDQ R15,BX
+ IMUL3Q $19,BP,DX
+ ADDQ DX,R8
+ MOVQ R8,DX
+ SHRQ $51,DX
+ ADDQ R10,DX
+ MOVQ DX,CX
+ SHRQ $51,DX
+ ANDQ SI,R8
+ ADDQ R12,DX
+ MOVQ DX,R9
+ SHRQ $51,DX
+ ANDQ SI,CX
+ ADDQ R14,DX
+ MOVQ DX,AX
+ SHRQ $51,DX
+ ANDQ SI,R9
+ ADDQ BX,DX
+ MOVQ DX,R10
+ SHRQ $51,DX
+ ANDQ SI,AX
+ IMUL3Q $19,DX,DX
+ ADDQ DX,R8
+ ANDQ SI,R10
+ MOVQ R8,0(DI)
+ MOVQ CX,8(DI)
+ MOVQ R9,16(DI)
+ MOVQ AX,24(DI)
+ MOVQ R10,32(DI)
+ RET
diff --git a/vendor/golang.org/x/crypto/curve25519/square_amd64.s b/vendor/golang.org/x/crypto/curve25519/square_amd64.s
new file mode 100644
index 0000000000..12f73734ff
--- /dev/null
+++ b/vendor/golang.org/x/crypto/curve25519/square_amd64.s
@@ -0,0 +1,132 @@
+// Copyright 2012 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.
+
+// This code was translated into a form compatible with 6a from the public
+// domain sources in SUPERCOP: https://bench.cr.yp.to/supercop.html
+
+// +build amd64,!gccgo,!appengine
+
+#include "const_amd64.h"
+
+// func square(out, in *[5]uint64)
+TEXT ·square(SB),7,$0-16
+ MOVQ out+0(FP), DI
+ MOVQ in+8(FP), SI
+
+ MOVQ 0(SI),AX
+ MULQ 0(SI)
+ MOVQ AX,CX
+ MOVQ DX,R8
+ MOVQ 0(SI),AX
+ SHLQ $1,AX
+ MULQ 8(SI)
+ MOVQ AX,R9
+ MOVQ DX,R10
+ MOVQ 0(SI),AX
+ SHLQ $1,AX
+ MULQ 16(SI)
+ MOVQ AX,R11
+ MOVQ DX,R12
+ MOVQ 0(SI),AX
+ SHLQ $1,AX
+ MULQ 24(SI)
+ MOVQ AX,R13
+ MOVQ DX,R14
+ MOVQ 0(SI),AX
+ SHLQ $1,AX
+ MULQ 32(SI)
+ MOVQ AX,R15
+ MOVQ DX,BX
+ MOVQ 8(SI),AX
+ MULQ 8(SI)
+ ADDQ AX,R11
+ ADCQ DX,R12
+ MOVQ 8(SI),AX
+ SHLQ $1,AX
+ MULQ 16(SI)
+ ADDQ AX,R13
+ ADCQ DX,R14
+ MOVQ 8(SI),AX
+ SHLQ $1,AX
+ MULQ 24(SI)
+ ADDQ AX,R15
+ ADCQ DX,BX
+ MOVQ 8(SI),DX
+ IMUL3Q $38,DX,AX
+ MULQ 32(SI)
+ ADDQ AX,CX
+ ADCQ DX,R8
+ MOVQ 16(SI),AX
+ MULQ 16(SI)
+ ADDQ AX,R15
+ ADCQ DX,BX
+ MOVQ 16(SI),DX
+ IMUL3Q $38,DX,AX
+ MULQ 24(SI)
+ ADDQ AX,CX
+ ADCQ DX,R8
+ MOVQ 16(SI),DX
+ IMUL3Q $38,DX,AX
+ MULQ 32(SI)
+ ADDQ AX,R9
+ ADCQ DX,R10
+ MOVQ 24(SI),DX
+ IMUL3Q $19,DX,AX
+ MULQ 24(SI)
+ ADDQ AX,R9
+ ADCQ DX,R10
+ MOVQ 24(SI),DX
+ IMUL3Q $38,DX,AX
+ MULQ 32(SI)
+ ADDQ AX,R11
+ ADCQ DX,R12
+ MOVQ 32(SI),DX
+ IMUL3Q $19,DX,AX
+ MULQ 32(SI)
+ ADDQ AX,R13
+ ADCQ DX,R14
+ MOVQ $REDMASK51,SI
+ SHLQ $13,R8:CX
+ ANDQ SI,CX
+ SHLQ $13,R10:R9
+ ANDQ SI,R9
+ ADDQ R8,R9
+ SHLQ $13,R12:R11
+ ANDQ SI,R11
+ ADDQ R10,R11
+ SHLQ $13,R14:R13
+ ANDQ SI,R13
+ ADDQ R12,R13
+ SHLQ $13,BX:R15
+ ANDQ SI,R15
+ ADDQ R14,R15
+ IMUL3Q $19,BX,DX
+ ADDQ DX,CX
+ MOVQ CX,DX
+ SHRQ $51,DX
+ ADDQ R9,DX
+ ANDQ SI,CX
+ MOVQ DX,R8
+ SHRQ $51,DX
+ ADDQ R11,DX
+ ANDQ SI,R8
+ MOVQ DX,R9
+ SHRQ $51,DX
+ ADDQ R13,DX
+ ANDQ SI,R9
+ MOVQ DX,AX
+ SHRQ $51,DX
+ ADDQ R15,DX
+ ANDQ SI,AX
+ MOVQ DX,R10
+ SHRQ $51,DX
+ IMUL3Q $19,DX,DX
+ ADDQ DX,CX
+ ANDQ SI,R10
+ MOVQ CX,0(DI)
+ MOVQ R8,8(DI)
+ MOVQ R9,16(DI)
+ MOVQ AX,24(DI)
+ MOVQ R10,32(DI)
+ RET
diff --git a/vendor/golang.org/x/crypto/internal/chacha20/asm_arm64.s b/vendor/golang.org/x/crypto/internal/chacha20/asm_arm64.s
new file mode 100644
index 0000000000..b3a16ef751
--- /dev/null
+++ b/vendor/golang.org/x/crypto/internal/chacha20/asm_arm64.s
@@ -0,0 +1,308 @@
+// Copyright 2018 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 go1.11
+// +build !gccgo,!appengine
+
+#include "textflag.h"
+
+#define NUM_ROUNDS 10
+
+// func xorKeyStreamVX(dst, src []byte, key *[8]uint32, nonce *[3]uint32, counter *uint32)
+TEXT ·xorKeyStreamVX(SB), NOSPLIT, $0
+ MOVD dst+0(FP), R1
+ MOVD src+24(FP), R2
+ MOVD src_len+32(FP), R3
+ MOVD key+48(FP), R4
+ MOVD nonce+56(FP), R6
+ MOVD counter+64(FP), R7
+
+ MOVD $·constants(SB), R10
+ MOVD $·incRotMatrix(SB), R11
+
+ MOVW (R7), R20
+
+ AND $~255, R3, R13
+ ADD R2, R13, R12 // R12 for block end
+ AND $255, R3, R13
+loop:
+ MOVD $NUM_ROUNDS, R21
+ VLD1 (R11), [V30.S4, V31.S4]
+
+ // load contants
+ // VLD4R (R10), [V0.S4, V1.S4, V2.S4, V3.S4]
+ WORD $0x4D60E940
+
+ // load keys
+ // VLD4R 16(R4), [V4.S4, V5.S4, V6.S4, V7.S4]
+ WORD $0x4DFFE884
+ // VLD4R 16(R4), [V8.S4, V9.S4, V10.S4, V11.S4]
+ WORD $0x4DFFE888
+ SUB $32, R4
+
+ // load counter + nonce
+ // VLD1R (R7), [V12.S4]
+ WORD $0x4D40C8EC
+
+ // VLD3R (R6), [V13.S4, V14.S4, V15.S4]
+ WORD $0x4D40E8CD
+
+ // update counter
+ VADD V30.S4, V12.S4, V12.S4
+
+chacha:
+ // V0..V3 += V4..V7
+ // V12..V15 <<<= ((V12..V15 XOR V0..V3), 16)
+ VADD V0.S4, V4.S4, V0.S4
+ VADD V1.S4, V5.S4, V1.S4
+ VADD V2.S4, V6.S4, V2.S4
+ VADD V3.S4, V7.S4, V3.S4
+ VEOR V12.B16, V0.B16, V12.B16
+ VEOR V13.B16, V1.B16, V13.B16
+ VEOR V14.B16, V2.B16, V14.B16
+ VEOR V15.B16, V3.B16, V15.B16
+ VREV32 V12.H8, V12.H8
+ VREV32 V13.H8, V13.H8
+ VREV32 V14.H8, V14.H8
+ VREV32 V15.H8, V15.H8
+ // V8..V11 += V12..V15
+ // V4..V7 <<<= ((V4..V7 XOR V8..V11), 12)
+ VADD V8.S4, V12.S4, V8.S4
+ VADD V9.S4, V13.S4, V9.S4
+ VADD V10.S4, V14.S4, V10.S4
+ VADD V11.S4, V15.S4, V11.S4
+ VEOR V8.B16, V4.B16, V16.B16
+ VEOR V9.B16, V5.B16, V17.B16
+ VEOR V10.B16, V6.B16, V18.B16
+ VEOR V11.B16, V7.B16, V19.B16
+ VSHL $12, V16.S4, V4.S4
+ VSHL $12, V17.S4, V5.S4
+ VSHL $12, V18.S4, V6.S4
+ VSHL $12, V19.S4, V7.S4
+ VSRI $20, V16.S4, V4.S4
+ VSRI $20, V17.S4, V5.S4
+ VSRI $20, V18.S4, V6.S4
+ VSRI $20, V19.S4, V7.S4
+
+ // V0..V3 += V4..V7
+ // V12..V15 <<<= ((V12..V15 XOR V0..V3), 8)
+ VADD V0.S4, V4.S4, V0.S4
+ VADD V1.S4, V5.S4, V1.S4
+ VADD V2.S4, V6.S4, V2.S4
+ VADD V3.S4, V7.S4, V3.S4
+ VEOR V12.B16, V0.B16, V12.B16
+ VEOR V13.B16, V1.B16, V13.B16
+ VEOR V14.B16, V2.B16, V14.B16
+ VEOR V15.B16, V3.B16, V15.B16
+ VTBL V31.B16, [V12.B16], V12.B16
+ VTBL V31.B16, [V13.B16], V13.B16
+ VTBL V31.B16, [V14.B16], V14.B16
+ VTBL V31.B16, [V15.B16], V15.B16
+
+ // V8..V11 += V12..V15
+ // V4..V7 <<<= ((V4..V7 XOR V8..V11), 7)
+ VADD V12.S4, V8.S4, V8.S4
+ VADD V13.S4, V9.S4, V9.S4
+ VADD V14.S4, V10.S4, V10.S4
+ VADD V15.S4, V11.S4, V11.S4
+ VEOR V8.B16, V4.B16, V16.B16
+ VEOR V9.B16, V5.B16, V17.B16
+ VEOR V10.B16, V6.B16, V18.B16
+ VEOR V11.B16, V7.B16, V19.B16
+ VSHL $7, V16.S4, V4.S4
+ VSHL $7, V17.S4, V5.S4
+ VSHL $7, V18.S4, V6.S4
+ VSHL $7, V19.S4, V7.S4
+ VSRI $25, V16.S4, V4.S4
+ VSRI $25, V17.S4, V5.S4
+ VSRI $25, V18.S4, V6.S4
+ VSRI $25, V19.S4, V7.S4
+
+ // V0..V3 += V5..V7, V4
+ // V15,V12-V14 <<<= ((V15,V12-V14 XOR V0..V3), 16)
+ VADD V0.S4, V5.S4, V0.S4
+ VADD V1.S4, V6.S4, V1.S4
+ VADD V2.S4, V7.S4, V2.S4
+ VADD V3.S4, V4.S4, V3.S4
+ VEOR V15.B16, V0.B16, V15.B16
+ VEOR V12.B16, V1.B16, V12.B16
+ VEOR V13.B16, V2.B16, V13.B16
+ VEOR V14.B16, V3.B16, V14.B16
+ VREV32 V12.H8, V12.H8
+ VREV32 V13.H8, V13.H8
+ VREV32 V14.H8, V14.H8
+ VREV32 V15.H8, V15.H8
+
+ // V10 += V15; V5 <<<= ((V10 XOR V5), 12)
+ // ...
+ VADD V15.S4, V10.S4, V10.S4
+ VADD V12.S4, V11.S4, V11.S4
+ VADD V13.S4, V8.S4, V8.S4
+ VADD V14.S4, V9.S4, V9.S4
+ VEOR V10.B16, V5.B16, V16.B16
+ VEOR V11.B16, V6.B16, V17.B16
+ VEOR V8.B16, V7.B16, V18.B16
+ VEOR V9.B16, V4.B16, V19.B16
+ VSHL $12, V16.S4, V5.S4
+ VSHL $12, V17.S4, V6.S4
+ VSHL $12, V18.S4, V7.S4
+ VSHL $12, V19.S4, V4.S4
+ VSRI $20, V16.S4, V5.S4
+ VSRI $20, V17.S4, V6.S4
+ VSRI $20, V18.S4, V7.S4
+ VSRI $20, V19.S4, V4.S4
+
+ // V0 += V5; V15 <<<= ((V0 XOR V15), 8)
+ // ...
+ VADD V5.S4, V0.S4, V0.S4
+ VADD V6.S4, V1.S4, V1.S4
+ VADD V7.S4, V2.S4, V2.S4
+ VADD V4.S4, V3.S4, V3.S4
+ VEOR V0.B16, V15.B16, V15.B16
+ VEOR V1.B16, V12.B16, V12.B16
+ VEOR V2.B16, V13.B16, V13.B16
+ VEOR V3.B16, V14.B16, V14.B16
+ VTBL V31.B16, [V12.B16], V12.B16
+ VTBL V31.B16, [V13.B16], V13.B16
+ VTBL V31.B16, [V14.B16], V14.B16
+ VTBL V31.B16, [V15.B16], V15.B16
+
+ // V10 += V15; V5 <<<= ((V10 XOR V5), 7)
+ // ...
+ VADD V15.S4, V10.S4, V10.S4
+ VADD V12.S4, V11.S4, V11.S4
+ VADD V13.S4, V8.S4, V8.S4
+ VADD V14.S4, V9.S4, V9.S4
+ VEOR V10.B16, V5.B16, V16.B16
+ VEOR V11.B16, V6.B16, V17.B16
+ VEOR V8.B16, V7.B16, V18.B16
+ VEOR V9.B16, V4.B16, V19.B16
+ VSHL $7, V16.S4, V5.S4
+ VSHL $7, V17.S4, V6.S4
+ VSHL $7, V18.S4, V7.S4
+ VSHL $7, V19.S4, V4.S4
+ VSRI $25, V16.S4, V5.S4
+ VSRI $25, V17.S4, V6.S4
+ VSRI $25, V18.S4, V7.S4
+ VSRI $25, V19.S4, V4.S4
+
+ SUB $1, R21
+ CBNZ R21, chacha
+
+ // VLD4R (R10), [V16.S4, V17.S4, V18.S4, V19.S4]
+ WORD $0x4D60E950
+
+ // VLD4R 16(R4), [V20.S4, V21.S4, V22.S4, V23.S4]
+ WORD $0x4DFFE894
+ VADD V30.S4, V12.S4, V12.S4
+ VADD V16.S4, V0.S4, V0.S4
+ VADD V17.S4, V1.S4, V1.S4
+ VADD V18.S4, V2.S4, V2.S4
+ VADD V19.S4, V3.S4, V3.S4
+ // VLD4R 16(R4), [V24.S4, V25.S4, V26.S4, V27.S4]
+ WORD $0x4DFFE898
+ // restore R4
+ SUB $32, R4
+
+ // load counter + nonce
+ // VLD1R (R7), [V28.S4]
+ WORD $0x4D40C8FC
+ // VLD3R (R6), [V29.S4, V30.S4, V31.S4]
+ WORD $0x4D40E8DD
+
+ VADD V20.S4, V4.S4, V4.S4
+ VADD V21.S4, V5.S4, V5.S4
+ VADD V22.S4, V6.S4, V6.S4
+ VADD V23.S4, V7.S4, V7.S4
+ VADD V24.S4, V8.S4, V8.S4
+ VADD V25.S4, V9.S4, V9.S4
+ VADD V26.S4, V10.S4, V10.S4
+ VADD V27.S4, V11.S4, V11.S4
+ VADD V28.S4, V12.S4, V12.S4
+ VADD V29.S4, V13.S4, V13.S4
+ VADD V30.S4, V14.S4, V14.S4
+ VADD V31.S4, V15.S4, V15.S4
+
+ VZIP1 V1.S4, V0.S4, V16.S4
+ VZIP2 V1.S4, V0.S4, V17.S4
+ VZIP1 V3.S4, V2.S4, V18.S4
+ VZIP2 V3.S4, V2.S4, V19.S4
+ VZIP1 V5.S4, V4.S4, V20.S4
+ VZIP2 V5.S4, V4.S4, V21.S4
+ VZIP1 V7.S4, V6.S4, V22.S4
+ VZIP2 V7.S4, V6.S4, V23.S4
+ VZIP1 V9.S4, V8.S4, V24.S4
+ VZIP2 V9.S4, V8.S4, V25.S4
+ VZIP1 V11.S4, V10.S4, V26.S4
+ VZIP2 V11.S4, V10.S4, V27.S4
+ VZIP1 V13.S4, V12.S4, V28.S4
+ VZIP2 V13.S4, V12.S4, V29.S4
+ VZIP1 V15.S4, V14.S4, V30.S4
+ VZIP2 V15.S4, V14.S4, V31.S4
+ VZIP1 V18.D2, V16.D2, V0.D2
+ VZIP2 V18.D2, V16.D2, V4.D2
+ VZIP1 V19.D2, V17.D2, V8.D2
+ VZIP2 V19.D2, V17.D2, V12.D2
+ VLD1.P 64(R2), [V16.B16, V17.B16, V18.B16, V19.B16]
+
+ VZIP1 V22.D2, V20.D2, V1.D2
+ VZIP2 V22.D2, V20.D2, V5.D2
+ VZIP1 V23.D2, V21.D2, V9.D2
+ VZIP2 V23.D2, V21.D2, V13.D2
+ VLD1.P 64(R2), [V20.B16, V21.B16, V22.B16, V23.B16]
+ VZIP1 V26.D2, V24.D2, V2.D2
+ VZIP2 V26.D2, V24.D2, V6.D2
+ VZIP1 V27.D2, V25.D2, V10.D2
+ VZIP2 V27.D2, V25.D2, V14.D2
+ VLD1.P 64(R2), [V24.B16, V25.B16, V26.B16, V27.B16]
+ VZIP1 V30.D2, V28.D2, V3.D2
+ VZIP2 V30.D2, V28.D2, V7.D2
+ VZIP1 V31.D2, V29.D2, V11.D2
+ VZIP2 V31.D2, V29.D2, V15.D2
+ VLD1.P 64(R2), [V28.B16, V29.B16, V30.B16, V31.B16]
+ VEOR V0.B16, V16.B16, V16.B16
+ VEOR V1.B16, V17.B16, V17.B16
+ VEOR V2.B16, V18.B16, V18.B16
+ VEOR V3.B16, V19.B16, V19.B16
+ VST1.P [V16.B16, V17.B16, V18.B16, V19.B16], 64(R1)
+ VEOR V4.B16, V20.B16, V20.B16
+ VEOR V5.B16, V21.B16, V21.B16
+ VEOR V6.B16, V22.B16, V22.B16
+ VEOR V7.B16, V23.B16, V23.B16
+ VST1.P [V20.B16, V21.B16, V22.B16, V23.B16], 64(R1)
+ VEOR V8.B16, V24.B16, V24.B16
+ VEOR V9.B16, V25.B16, V25.B16
+ VEOR V10.B16, V26.B16, V26.B16
+ VEOR V11.B16, V27.B16, V27.B16
+ VST1.P [V24.B16, V25.B16, V26.B16, V27.B16], 64(R1)
+ VEOR V12.B16, V28.B16, V28.B16
+ VEOR V13.B16, V29.B16, V29.B16
+ VEOR V14.B16, V30.B16, V30.B16
+ VEOR V15.B16, V31.B16, V31.B16
+ VST1.P [V28.B16, V29.B16, V30.B16, V31.B16], 64(R1)
+
+ ADD $4, R20
+ MOVW R20, (R7) // update counter
+
+ CMP R2, R12
+ BGT loop
+
+ RET
+
+
+DATA ·constants+0x00(SB)/4, $0x61707865
+DATA ·constants+0x04(SB)/4, $0x3320646e
+DATA ·constants+0x08(SB)/4, $0x79622d32
+DATA ·constants+0x0c(SB)/4, $0x6b206574
+GLOBL ·constants(SB), NOPTR|RODATA, $32
+
+DATA ·incRotMatrix+0x00(SB)/4, $0x00000000
+DATA ·incRotMatrix+0x04(SB)/4, $0x00000001
+DATA ·incRotMatrix+0x08(SB)/4, $0x00000002
+DATA ·incRotMatrix+0x0c(SB)/4, $0x00000003
+DATA ·incRotMatrix+0x10(SB)/4, $0x02010003
+DATA ·incRotMatrix+0x14(SB)/4, $0x06050407
+DATA ·incRotMatrix+0x18(SB)/4, $0x0A09080B
+DATA ·incRotMatrix+0x1c(SB)/4, $0x0E0D0C0F
+GLOBL ·incRotMatrix(SB), NOPTR|RODATA, $32
diff --git a/vendor/golang.org/x/crypto/internal/chacha20/chacha_arm64.go b/vendor/golang.org/x/crypto/internal/chacha20/chacha_arm64.go
new file mode 100644
index 0000000000..ad74e23aef
--- /dev/null
+++ b/vendor/golang.org/x/crypto/internal/chacha20/chacha_arm64.go
@@ -0,0 +1,31 @@
+// Copyright 2018 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 go1.11
+// +build !gccgo
+
+package chacha20
+
+const (
+ haveAsm = true
+ bufSize = 256
+)
+
+//go:noescape
+func xorKeyStreamVX(dst, src []byte, key *[8]uint32, nonce *[3]uint32, counter *uint32)
+
+func (c *Cipher) xorKeyStreamAsm(dst, src []byte) {
+
+ if len(src) >= bufSize {
+ xorKeyStreamVX(dst, src, &c.key, &c.nonce, &c.counter)
+ }
+
+ if len(src)%bufSize != 0 {
+ i := len(src) - len(src)%bufSize
+ c.buf = [bufSize]byte{}
+ copy(c.buf[:], src[i:])
+ xorKeyStreamVX(c.buf[:], c.buf[:], &c.key, &c.nonce, &c.counter)
+ c.len = bufSize - copy(dst[i:], c.buf[:len(src)%bufSize])
+ }
+}
diff --git a/vendor/golang.org/x/crypto/internal/chacha20/chacha_generic.go b/vendor/golang.org/x/crypto/internal/chacha20/chacha_generic.go
new file mode 100644
index 0000000000..6570847f5e
--- /dev/null
+++ b/vendor/golang.org/x/crypto/internal/chacha20/chacha_generic.go
@@ -0,0 +1,264 @@
+// Copyright 2016 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 ChaCha20 implements the core ChaCha20 function as specified
+// in https://tools.ietf.org/html/rfc7539#section-2.3.
+package chacha20
+
+import (
+ "crypto/cipher"
+ "encoding/binary"
+
+ "golang.org/x/crypto/internal/subtle"
+)
+
+// assert that *Cipher implements cipher.Stream
+var _ cipher.Stream = (*Cipher)(nil)
+
+// Cipher is a stateful instance of ChaCha20 using a particular key
+// and nonce. A *Cipher implements the cipher.Stream interface.
+type Cipher struct {
+ key [8]uint32
+ counter uint32 // incremented after each block
+ nonce [3]uint32
+ buf [bufSize]byte // buffer for unused keystream bytes
+ len int // number of unused keystream bytes at end of buf
+}
+
+// New creates a new ChaCha20 stream cipher with the given key and nonce.
+// The initial counter value is set to 0.
+func New(key [8]uint32, nonce [3]uint32) *Cipher {
+ return &Cipher{key: key, nonce: nonce}
+}
+
+// ChaCha20 constants spelling "expand 32-byte k"
+const (
+ j0 uint32 = 0x61707865
+ j1 uint32 = 0x3320646e
+ j2 uint32 = 0x79622d32
+ j3 uint32 = 0x6b206574
+)
+
+func quarterRound(a, b, c, d uint32) (uint32, uint32, uint32, uint32) {
+ a += b
+ d ^= a
+ d = (d << 16) | (d >> 16)
+ c += d
+ b ^= c
+ b = (b << 12) | (b >> 20)
+ a += b
+ d ^= a
+ d = (d << 8) | (d >> 24)
+ c += d
+ b ^= c
+ b = (b << 7) | (b >> 25)
+ return a, b, c, d
+}
+
+// XORKeyStream XORs each byte in the given slice with a byte from the
+// cipher's key stream. Dst and src must overlap entirely or not at all.
+//
+// If len(dst) < len(src), XORKeyStream will panic. It is acceptable
+// to pass a dst bigger than src, and in that case, XORKeyStream will
+// only update dst[:len(src)] and will not touch the rest of dst.
+//
+// Multiple calls to XORKeyStream behave as if the concatenation of
+// the src buffers was passed in a single run. That is, Cipher
+// maintains state and does not reset at each XORKeyStream call.
+func (s *Cipher) XORKeyStream(dst, src []byte) {
+ if len(dst) < len(src) {
+ panic("chacha20: output smaller than input")
+ }
+ if subtle.InexactOverlap(dst[:len(src)], src) {
+ panic("chacha20: invalid buffer overlap")
+ }
+
+ // xor src with buffered keystream first
+ if s.len != 0 {
+ buf := s.buf[len(s.buf)-s.len:]
+ if len(src) < len(buf) {
+ buf = buf[:len(src)]
+ }
+ td, ts := dst[:len(buf)], src[:len(buf)] // BCE hint
+ for i, b := range buf {
+ td[i] = ts[i] ^ b
+ }
+ s.len -= len(buf)
+ if s.len != 0 {
+ return
+ }
+ s.buf = [len(s.buf)]byte{} // zero the empty buffer
+ src = src[len(buf):]
+ dst = dst[len(buf):]
+ }
+
+ if len(src) == 0 {
+ return
+ }
+ if haveAsm {
+ if uint64(len(src))+uint64(s.counter)*64 > (1<<38)-64 {
+ panic("chacha20: counter overflow")
+ }
+ s.xorKeyStreamAsm(dst, src)
+ return
+ }
+
+ // set up a 64-byte buffer to pad out the final block if needed
+ // (hoisted out of the main loop to avoid spills)
+ rem := len(src) % 64 // length of final block
+ fin := len(src) - rem // index of final block
+ if rem > 0 {
+ copy(s.buf[len(s.buf)-64:], src[fin:])
+ }
+
+ // pre-calculate most of the first round
+ s1, s5, s9, s13 := quarterRound(j1, s.key[1], s.key[5], s.nonce[0])
+ s2, s6, s10, s14 := quarterRound(j2, s.key[2], s.key[6], s.nonce[1])
+ s3, s7, s11, s15 := quarterRound(j3, s.key[3], s.key[7], s.nonce[2])
+
+ n := len(src)
+ src, dst = src[:n:n], dst[:n:n] // BCE hint
+ for i := 0; i < n; i += 64 {
+ // calculate the remainder of the first round
+ s0, s4, s8, s12 := quarterRound(j0, s.key[0], s.key[4], s.counter)
+
+ // execute the second round
+ x0, x5, x10, x15 := quarterRound(s0, s5, s10, s15)
+ x1, x6, x11, x12 := quarterRound(s1, s6, s11, s12)
+ x2, x7, x8, x13 := quarterRound(s2, s7, s8, s13)
+ x3, x4, x9, x14 := quarterRound(s3, s4, s9, s14)
+
+ // execute the remaining 18 rounds
+ for i := 0; i < 9; i++ {
+ x0, x4, x8, x12 = quarterRound(x0, x4, x8, x12)
+ x1, x5, x9, x13 = quarterRound(x1, x5, x9, x13)
+ x2, x6, x10, x14 = quarterRound(x2, x6, x10, x14)
+ x3, x7, x11, x15 = quarterRound(x3, x7, x11, x15)
+
+ x0, x5, x10, x15 = quarterRound(x0, x5, x10, x15)
+ x1, x6, x11, x12 = quarterRound(x1, x6, x11, x12)
+ x2, x7, x8, x13 = quarterRound(x2, x7, x8, x13)
+ x3, x4, x9, x14 = quarterRound(x3, x4, x9, x14)
+ }
+
+ x0 += j0
+ x1 += j1
+ x2 += j2
+ x3 += j3
+
+ x4 += s.key[0]
+ x5 += s.key[1]
+ x6 += s.key[2]
+ x7 += s.key[3]
+ x8 += s.key[4]
+ x9 += s.key[5]
+ x10 += s.key[6]
+ x11 += s.key[7]
+
+ x12 += s.counter
+ x13 += s.nonce[0]
+ x14 += s.nonce[1]
+ x15 += s.nonce[2]
+
+ // increment the counter
+ s.counter += 1
+ if s.counter == 0 {
+ panic("chacha20: counter overflow")
+ }
+
+ // pad to 64 bytes if needed
+ in, out := src[i:], dst[i:]
+ if i == fin {
+ // src[fin:] has already been copied into s.buf before
+ // the main loop
+ in, out = s.buf[len(s.buf)-64:], s.buf[len(s.buf)-64:]
+ }
+ in, out = in[:64], out[:64] // BCE hint
+
+ // XOR the key stream with the source and write out the result
+ xor(out[0:], in[0:], x0)
+ xor(out[4:], in[4:], x1)
+ xor(out[8:], in[8:], x2)
+ xor(out[12:], in[12:], x3)
+ xor(out[16:], in[16:], x4)
+ xor(out[20:], in[20:], x5)
+ xor(out[24:], in[24:], x6)
+ xor(out[28:], in[28:], x7)
+ xor(out[32:], in[32:], x8)
+ xor(out[36:], in[36:], x9)
+ xor(out[40:], in[40:], x10)
+ xor(out[44:], in[44:], x11)
+ xor(out[48:], in[48:], x12)
+ xor(out[52:], in[52:], x13)
+ xor(out[56:], in[56:], x14)
+ xor(out[60:], in[60:], x15)
+ }
+ // copy any trailing bytes out of the buffer and into dst
+ if rem != 0 {
+ s.len = 64 - rem
+ copy(dst[fin:], s.buf[len(s.buf)-64:])
+ }
+}
+
+// Advance discards bytes in the key stream until the next 64 byte block
+// boundary is reached and updates the counter accordingly. If the key
+// stream is already at a block boundary no bytes will be discarded and
+// the counter will be unchanged.
+func (s *Cipher) Advance() {
+ s.len -= s.len % 64
+ if s.len == 0 {
+ s.buf = [len(s.buf)]byte{}
+ }
+}
+
+// XORKeyStream crypts bytes from in to out using the given key and counters.
+// In and out must overlap entirely or not at all. Counter contains the raw
+// ChaCha20 counter bytes (i.e. block counter followed by nonce).
+func XORKeyStream(out, in []byte, counter *[16]byte, key *[32]byte) {
+ s := Cipher{
+ key: [8]uint32{
+ binary.LittleEndian.Uint32(key[0:4]),
+ binary.LittleEndian.Uint32(key[4:8]),
+ binary.LittleEndian.Uint32(key[8:12]),
+ binary.LittleEndian.Uint32(key[12:16]),
+ binary.LittleEndian.Uint32(key[16:20]),
+ binary.LittleEndian.Uint32(key[20:24]),
+ binary.LittleEndian.Uint32(key[24:28]),
+ binary.LittleEndian.Uint32(key[28:32]),
+ },
+ nonce: [3]uint32{
+ binary.LittleEndian.Uint32(counter[4:8]),
+ binary.LittleEndian.Uint32(counter[8:12]),
+ binary.LittleEndian.Uint32(counter[12:16]),
+ },
+ counter: binary.LittleEndian.Uint32(counter[0:4]),
+ }
+ s.XORKeyStream(out, in)
+}
+
+// HChaCha20 uses the ChaCha20 core to generate a derived key from a key and a
+// nonce. It should only be used as part of the XChaCha20 construction.
+func HChaCha20(key *[8]uint32, nonce *[4]uint32) [8]uint32 {
+ x0, x1, x2, x3 := j0, j1, j2, j3
+ x4, x5, x6, x7 := key[0], key[1], key[2], key[3]
+ x8, x9, x10, x11 := key[4], key[5], key[6], key[7]
+ x12, x13, x14, x15 := nonce[0], nonce[1], nonce[2], nonce[3]
+
+ for i := 0; i < 10; i++ {
+ x0, x4, x8, x12 = quarterRound(x0, x4, x8, x12)
+ x1, x5, x9, x13 = quarterRound(x1, x5, x9, x13)
+ x2, x6, x10, x14 = quarterRound(x2, x6, x10, x14)
+ x3, x7, x11, x15 = quarterRound(x3, x7, x11, x15)
+
+ x0, x5, x10, x15 = quarterRound(x0, x5, x10, x15)
+ x1, x6, x11, x12 = quarterRound(x1, x6, x11, x12)
+ x2, x7, x8, x13 = quarterRound(x2, x7, x8, x13)
+ x3, x4, x9, x14 = quarterRound(x3, x4, x9, x14)
+ }
+
+ var out [8]uint32
+ out[0], out[1], out[2], out[3] = x0, x1, x2, x3
+ out[4], out[5], out[6], out[7] = x12, x13, x14, x15
+ return out
+}
diff --git a/vendor/golang.org/x/crypto/internal/chacha20/chacha_noasm.go b/vendor/golang.org/x/crypto/internal/chacha20/chacha_noasm.go
new file mode 100644
index 0000000000..47eac0314c
--- /dev/null
+++ b/vendor/golang.org/x/crypto/internal/chacha20/chacha_noasm.go
@@ -0,0 +1,16 @@
+// Copyright 2018 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 !arm64,!s390x arm64,!go1.11 gccgo appengine
+
+package chacha20
+
+const (
+ bufSize = 64
+ haveAsm = false
+)
+
+func (*Cipher) xorKeyStreamAsm(dst, src []byte) {
+ panic("not implemented")
+}
diff --git a/vendor/golang.org/x/crypto/internal/chacha20/chacha_s390x.go b/vendor/golang.org/x/crypto/internal/chacha20/chacha_s390x.go
new file mode 100644
index 0000000000..0c1c671c40
--- /dev/null
+++ b/vendor/golang.org/x/crypto/internal/chacha20/chacha_s390x.go
@@ -0,0 +1,30 @@
+// Copyright 2018 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 s390x,!gccgo,!appengine
+
+package chacha20
+
+var haveAsm = hasVectorFacility()
+
+const bufSize = 256
+
+// hasVectorFacility reports whether the machine supports the vector
+// facility (vx).
+// Implementation in asm_s390x.s.
+func hasVectorFacility() bool
+
+// xorKeyStreamVX is an assembly implementation of XORKeyStream. It must only
+// be called when the vector facility is available.
+// Implementation in asm_s390x.s.
+//go:noescape
+func xorKeyStreamVX(dst, src []byte, key *[8]uint32, nonce *[3]uint32, counter *uint32, buf *[256]byte, len *int)
+
+func (c *Cipher) xorKeyStreamAsm(dst, src []byte) {
+ xorKeyStreamVX(dst, src, &c.key, &c.nonce, &c.counter, &c.buf, &c.len)
+}
+
+// EXRL targets, DO NOT CALL!
+func mvcSrcToBuf()
+func mvcBufToDst()
diff --git a/vendor/golang.org/x/crypto/internal/chacha20/chacha_s390x.s b/vendor/golang.org/x/crypto/internal/chacha20/chacha_s390x.s
new file mode 100644
index 0000000000..98427c5e22
--- /dev/null
+++ b/vendor/golang.org/x/crypto/internal/chacha20/chacha_s390x.s
@@ -0,0 +1,283 @@
+// Copyright 2018 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 s390x,!gccgo,!appengine
+
+#include "go_asm.h"
+#include "textflag.h"
+
+// This is an implementation of the ChaCha20 encryption algorithm as
+// specified in RFC 7539. It uses vector instructions to compute
+// 4 keystream blocks in parallel (256 bytes) which are then XORed
+// with the bytes in the input slice.
+
+GLOBL ·constants<>(SB), RODATA|NOPTR, $32
+// BSWAP: swap bytes in each 4-byte element
+DATA ·constants<>+0x00(SB)/4, $0x03020100
+DATA ·constants<>+0x04(SB)/4, $0x07060504
+DATA ·constants<>+0x08(SB)/4, $0x0b0a0908
+DATA ·constants<>+0x0c(SB)/4, $0x0f0e0d0c
+// J0: [j0, j1, j2, j3]
+DATA ·constants<>+0x10(SB)/4, $0x61707865
+DATA ·constants<>+0x14(SB)/4, $0x3320646e
+DATA ·constants<>+0x18(SB)/4, $0x79622d32
+DATA ·constants<>+0x1c(SB)/4, $0x6b206574
+
+// EXRL targets:
+TEXT ·mvcSrcToBuf(SB), NOFRAME|NOSPLIT, $0
+ MVC $1, (R1), (R8)
+ RET
+
+TEXT ·mvcBufToDst(SB), NOFRAME|NOSPLIT, $0
+ MVC $1, (R8), (R9)
+ RET
+
+#define BSWAP V5
+#define J0 V6
+#define KEY0 V7
+#define KEY1 V8
+#define NONCE V9
+#define CTR V10
+#define M0 V11
+#define M1 V12
+#define M2 V13
+#define M3 V14
+#define INC V15
+#define X0 V16
+#define X1 V17
+#define X2 V18
+#define X3 V19
+#define X4 V20
+#define X5 V21
+#define X6 V22
+#define X7 V23
+#define X8 V24
+#define X9 V25
+#define X10 V26
+#define X11 V27
+#define X12 V28
+#define X13 V29
+#define X14 V30
+#define X15 V31
+
+#define NUM_ROUNDS 20
+
+#define ROUND4(a0, a1, a2, a3, b0, b1, b2, b3, c0, c1, c2, c3, d0, d1, d2, d3) \
+ VAF a1, a0, a0 \
+ VAF b1, b0, b0 \
+ VAF c1, c0, c0 \
+ VAF d1, d0, d0 \
+ VX a0, a2, a2 \
+ VX b0, b2, b2 \
+ VX c0, c2, c2 \
+ VX d0, d2, d2 \
+ VERLLF $16, a2, a2 \
+ VERLLF $16, b2, b2 \
+ VERLLF $16, c2, c2 \
+ VERLLF $16, d2, d2 \
+ VAF a2, a3, a3 \
+ VAF b2, b3, b3 \
+ VAF c2, c3, c3 \
+ VAF d2, d3, d3 \
+ VX a3, a1, a1 \
+ VX b3, b1, b1 \
+ VX c3, c1, c1 \
+ VX d3, d1, d1 \
+ VERLLF $12, a1, a1 \
+ VERLLF $12, b1, b1 \
+ VERLLF $12, c1, c1 \
+ VERLLF $12, d1, d1 \
+ VAF a1, a0, a0 \
+ VAF b1, b0, b0 \
+ VAF c1, c0, c0 \
+ VAF d1, d0, d0 \
+ VX a0, a2, a2 \
+ VX b0, b2, b2 \
+ VX c0, c2, c2 \
+ VX d0, d2, d2 \
+ VERLLF $8, a2, a2 \
+ VERLLF $8, b2, b2 \
+ VERLLF $8, c2, c2 \
+ VERLLF $8, d2, d2 \
+ VAF a2, a3, a3 \
+ VAF b2, b3, b3 \
+ VAF c2, c3, c3 \
+ VAF d2, d3, d3 \
+ VX a3, a1, a1 \
+ VX b3, b1, b1 \
+ VX c3, c1, c1 \
+ VX d3, d1, d1 \
+ VERLLF $7, a1, a1 \
+ VERLLF $7, b1, b1 \
+ VERLLF $7, c1, c1 \
+ VERLLF $7, d1, d1
+
+#define PERMUTE(mask, v0, v1, v2, v3) \
+ VPERM v0, v0, mask, v0 \
+ VPERM v1, v1, mask, v1 \
+ VPERM v2, v2, mask, v2 \
+ VPERM v3, v3, mask, v3
+
+#define ADDV(x, v0, v1, v2, v3) \
+ VAF x, v0, v0 \
+ VAF x, v1, v1 \
+ VAF x, v2, v2 \
+ VAF x, v3, v3
+
+#define XORV(off, dst, src, v0, v1, v2, v3) \
+ VLM off(src), M0, M3 \
+ PERMUTE(BSWAP, v0, v1, v2, v3) \
+ VX v0, M0, M0 \
+ VX v1, M1, M1 \
+ VX v2, M2, M2 \
+ VX v3, M3, M3 \
+ VSTM M0, M3, off(dst)
+
+#define SHUFFLE(a, b, c, d, t, u, v, w) \
+ VMRHF a, c, t \ // t = {a[0], c[0], a[1], c[1]}
+ VMRHF b, d, u \ // u = {b[0], d[0], b[1], d[1]}
+ VMRLF a, c, v \ // v = {a[2], c[2], a[3], c[3]}
+ VMRLF b, d, w \ // w = {b[2], d[2], b[3], d[3]}
+ VMRHF t, u, a \ // a = {a[0], b[0], c[0], d[0]}
+ VMRLF t, u, b \ // b = {a[1], b[1], c[1], d[1]}
+ VMRHF v, w, c \ // c = {a[2], b[2], c[2], d[2]}
+ VMRLF v, w, d // d = {a[3], b[3], c[3], d[3]}
+
+// func xorKeyStreamVX(dst, src []byte, key *[8]uint32, nonce *[3]uint32, counter *uint32, buf *[256]byte, len *int)
+TEXT ·xorKeyStreamVX(SB), NOSPLIT, $0
+ MOVD $·constants<>(SB), R1
+ MOVD dst+0(FP), R2 // R2=&dst[0]
+ LMG src+24(FP), R3, R4 // R3=&src[0] R4=len(src)
+ MOVD key+48(FP), R5 // R5=key
+ MOVD nonce+56(FP), R6 // R6=nonce
+ MOVD counter+64(FP), R7 // R7=counter
+ MOVD buf+72(FP), R8 // R8=buf
+ MOVD len+80(FP), R9 // R9=len
+
+ // load BSWAP and J0
+ VLM (R1), BSWAP, J0
+
+ // set up tail buffer
+ ADD $-1, R4, R12
+ MOVBZ R12, R12
+ CMPUBEQ R12, $255, aligned
+ MOVD R4, R1
+ AND $~255, R1
+ MOVD $(R3)(R1*1), R1
+ EXRL $·mvcSrcToBuf(SB), R12
+ MOVD $255, R0
+ SUB R12, R0
+ MOVD R0, (R9) // update len
+
+aligned:
+ // setup
+ MOVD $95, R0
+ VLM (R5), KEY0, KEY1
+ VLL R0, (R6), NONCE
+ VZERO M0
+ VLEIB $7, $32, M0
+ VSRLB M0, NONCE, NONCE
+
+ // initialize counter values
+ VLREPF (R7), CTR
+ VZERO INC
+ VLEIF $1, $1, INC
+ VLEIF $2, $2, INC
+ VLEIF $3, $3, INC
+ VAF INC, CTR, CTR
+ VREPIF $4, INC
+
+chacha:
+ VREPF $0, J0, X0
+ VREPF $1, J0, X1
+ VREPF $2, J0, X2
+ VREPF $3, J0, X3
+ VREPF $0, KEY0, X4
+ VREPF $1, KEY0, X5
+ VREPF $2, KEY0, X6
+ VREPF $3, KEY0, X7
+ VREPF $0, KEY1, X8
+ VREPF $1, KEY1, X9
+ VREPF $2, KEY1, X10
+ VREPF $3, KEY1, X11
+ VLR CTR, X12
+ VREPF $1, NONCE, X13
+ VREPF $2, NONCE, X14
+ VREPF $3, NONCE, X15
+
+ MOVD $(NUM_ROUNDS/2), R1
+
+loop:
+ ROUND4(X0, X4, X12, X8, X1, X5, X13, X9, X2, X6, X14, X10, X3, X7, X15, X11)
+ ROUND4(X0, X5, X15, X10, X1, X6, X12, X11, X2, X7, X13, X8, X3, X4, X14, X9)
+
+ ADD $-1, R1
+ BNE loop
+
+ // decrement length
+ ADD $-256, R4
+ BLT tail
+
+continue:
+ // rearrange vectors
+ SHUFFLE(X0, X1, X2, X3, M0, M1, M2, M3)
+ ADDV(J0, X0, X1, X2, X3)
+ SHUFFLE(X4, X5, X6, X7, M0, M1, M2, M3)
+ ADDV(KEY0, X4, X5, X6, X7)
+ SHUFFLE(X8, X9, X10, X11, M0, M1, M2, M3)
+ ADDV(KEY1, X8, X9, X10, X11)
+ VAF CTR, X12, X12
+ SHUFFLE(X12, X13, X14, X15, M0, M1, M2, M3)
+ ADDV(NONCE, X12, X13, X14, X15)
+
+ // increment counters
+ VAF INC, CTR, CTR
+
+ // xor keystream with plaintext
+ XORV(0*64, R2, R3, X0, X4, X8, X12)
+ XORV(1*64, R2, R3, X1, X5, X9, X13)
+ XORV(2*64, R2, R3, X2, X6, X10, X14)
+ XORV(3*64, R2, R3, X3, X7, X11, X15)
+
+ // increment pointers
+ MOVD $256(R2), R2
+ MOVD $256(R3), R3
+
+ CMPBNE R4, $0, chacha
+ CMPUBEQ R12, $255, return
+ EXRL $·mvcBufToDst(SB), R12 // len was updated during setup
+
+return:
+ VSTEF $0, CTR, (R7)
+ RET
+
+tail:
+ MOVD R2, R9
+ MOVD R8, R2
+ MOVD R8, R3
+ MOVD $0, R4
+ JMP continue
+
+// func hasVectorFacility() bool
+TEXT ·hasVectorFacility(SB), NOSPLIT, $24-1
+ MOVD $x-24(SP), R1
+ XC $24, 0(R1), 0(R1) // clear the storage
+ MOVD $2, R0 // R0 is the number of double words stored -1
+ WORD $0xB2B01000 // STFLE 0(R1)
+ XOR R0, R0 // reset the value of R0
+ MOVBZ z-8(SP), R1
+ AND $0x40, R1
+ BEQ novector
+
+vectorinstalled:
+ // check if the vector instruction has been enabled
+ VLEIB $0, $0xF, V16
+ VLGVB $0, V16, R1
+ CMPBNE R1, $0xF, novector
+ MOVB $1, ret+0(FP) // have vx
+ RET
+
+novector:
+ MOVB $0, ret+0(FP) // no vx
+ RET
diff --git a/vendor/golang.org/x/crypto/internal/chacha20/xor.go b/vendor/golang.org/x/crypto/internal/chacha20/xor.go
new file mode 100644
index 0000000000..9c5ba0b33a
--- /dev/null
+++ b/vendor/golang.org/x/crypto/internal/chacha20/xor.go
@@ -0,0 +1,43 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found src the LICENSE file.
+
+package chacha20
+
+import (
+ "runtime"
+)
+
+// Platforms that have fast unaligned 32-bit little endian accesses.
+const unaligned = runtime.GOARCH == "386" ||
+ runtime.GOARCH == "amd64" ||
+ runtime.GOARCH == "arm64" ||
+ runtime.GOARCH == "ppc64le" ||
+ runtime.GOARCH == "s390x"
+
+// xor reads a little endian uint32 from src, XORs it with u and
+// places the result in little endian byte order in dst.
+func xor(dst, src []byte, u uint32) {
+ _, _ = src[3], dst[3] // eliminate bounds checks
+ if unaligned {
+ // The compiler should optimize this code into
+ // 32-bit unaligned little endian loads and stores.
+ // TODO: delete once the compiler does a reliably
+ // good job with the generic code below.
+ // See issue #25111 for more details.
+ v := uint32(src[0])
+ v |= uint32(src[1]) << 8
+ v |= uint32(src[2]) << 16
+ v |= uint32(src[3]) << 24
+ v ^= u
+ dst[0] = byte(v)
+ dst[1] = byte(v >> 8)
+ dst[2] = byte(v >> 16)
+ dst[3] = byte(v >> 24)
+ } else {
+ dst[0] = src[0] ^ byte(u)
+ dst[1] = src[1] ^ byte(u>>8)
+ dst[2] = src[2] ^ byte(u>>16)
+ dst[3] = src[3] ^ byte(u>>24)
+ }
+}
diff --git a/vendor/golang.org/x/crypto/internal/subtle/aliasing.go b/vendor/golang.org/x/crypto/internal/subtle/aliasing.go
new file mode 100644
index 0000000000..f38797bfa1
--- /dev/null
+++ b/vendor/golang.org/x/crypto/internal/subtle/aliasing.go
@@ -0,0 +1,32 @@
+// Copyright 2018 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 !appengine
+
+// Package subtle implements functions that are often useful in cryptographic
+// code but require careful thought to use correctly.
+package subtle // import "golang.org/x/crypto/internal/subtle"
+
+import "unsafe"
+
+// AnyOverlap reports whether x and y share memory at any (not necessarily
+// corresponding) index. The memory beyond the slice length is ignored.
+func AnyOverlap(x, y []byte) bool {
+ return len(x) > 0 && len(y) > 0 &&
+ uintptr(unsafe.Pointer(&x[0])) <= uintptr(unsafe.Pointer(&y[len(y)-1])) &&
+ uintptr(unsafe.Pointer(&y[0])) <= uintptr(unsafe.Pointer(&x[len(x)-1]))
+}
+
+// InexactOverlap reports whether x and y share memory at any non-corresponding
+// index. The memory beyond the slice length is ignored. Note that x and y can
+// have different lengths and still not have any inexact overlap.
+//
+// InexactOverlap can be used to implement the requirements of the crypto/cipher
+// AEAD, Block, BlockMode and Stream interfaces.
+func InexactOverlap(x, y []byte) bool {
+ if len(x) == 0 || len(y) == 0 || &x[0] == &y[0] {
+ return false
+ }
+ return AnyOverlap(x, y)
+}
diff --git a/vendor/golang.org/x/crypto/internal/subtle/aliasing_appengine.go b/vendor/golang.org/x/crypto/internal/subtle/aliasing_appengine.go
new file mode 100644
index 0000000000..0cc4a8a642
--- /dev/null
+++ b/vendor/golang.org/x/crypto/internal/subtle/aliasing_appengine.go
@@ -0,0 +1,35 @@
+// Copyright 2018 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 appengine
+
+// Package subtle implements functions that are often useful in cryptographic
+// code but require careful thought to use correctly.
+package subtle // import "golang.org/x/crypto/internal/subtle"
+
+// This is the Google App Engine standard variant based on reflect
+// because the unsafe package and cgo are disallowed.
+
+import "reflect"
+
+// AnyOverlap reports whether x and y share memory at any (not necessarily
+// corresponding) index. The memory beyond the slice length is ignored.
+func AnyOverlap(x, y []byte) bool {
+ return len(x) > 0 && len(y) > 0 &&
+ reflect.ValueOf(&x[0]).Pointer() <= reflect.ValueOf(&y[len(y)-1]).Pointer() &&
+ reflect.ValueOf(&y[0]).Pointer() <= reflect.ValueOf(&x[len(x)-1]).Pointer()
+}
+
+// InexactOverlap reports whether x and y share memory at any non-corresponding
+// index. The memory beyond the slice length is ignored. Note that x and y can
+// have different lengths and still not have any inexact overlap.
+//
+// InexactOverlap can be used to implement the requirements of the crypto/cipher
+// AEAD, Block, BlockMode and Stream interfaces.
+func InexactOverlap(x, y []byte) bool {
+ if len(x) == 0 || len(y) == 0 || &x[0] == &y[0] {
+ return false
+ }
+ return AnyOverlap(x, y)
+}
diff --git a/vendor/golang.org/x/crypto/poly1305/poly1305.go b/vendor/golang.org/x/crypto/poly1305/poly1305.go
new file mode 100644
index 0000000000..f562fa5712
--- /dev/null
+++ b/vendor/golang.org/x/crypto/poly1305/poly1305.go
@@ -0,0 +1,33 @@
+// Copyright 2012 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 poly1305 implements Poly1305 one-time message authentication code as
+specified in https://cr.yp.to/mac/poly1305-20050329.pdf.
+
+Poly1305 is a fast, one-time authentication function. It is infeasible for an
+attacker to generate an authenticator for a message without the key. However, a
+key must only be used for a single message. Authenticating two different
+messages with the same key allows an attacker to forge authenticators for other
+messages with the same key.
+
+Poly1305 was originally coupled with AES in order to make Poly1305-AES. AES was
+used with a fixed key in order to generate one-time keys from an nonce.
+However, in this package AES isn't used and the one-time key is specified
+directly.
+*/
+package poly1305 // import "golang.org/x/crypto/poly1305"
+
+import "crypto/subtle"
+
+// TagSize is the size, in bytes, of a poly1305 authenticator.
+const TagSize = 16
+
+// Verify returns true if mac is a valid authenticator for m with the given
+// key.
+func Verify(mac *[16]byte, m []byte, key *[32]byte) bool {
+ var tmp [16]byte
+ Sum(&tmp, m, key)
+ return subtle.ConstantTimeCompare(tmp[:], mac[:]) == 1
+}
diff --git a/vendor/golang.org/x/crypto/poly1305/sum_amd64.go b/vendor/golang.org/x/crypto/poly1305/sum_amd64.go
new file mode 100644
index 0000000000..4dd72fe799
--- /dev/null
+++ b/vendor/golang.org/x/crypto/poly1305/sum_amd64.go
@@ -0,0 +1,22 @@
+// Copyright 2012 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 amd64,!gccgo,!appengine
+
+package poly1305
+
+// This function is implemented in sum_amd64.s
+//go:noescape
+func poly1305(out *[16]byte, m *byte, mlen uint64, key *[32]byte)
+
+// Sum generates an authenticator for m using a one-time key and puts the
+// 16-byte result into out. Authenticating two different messages with the same
+// key allows an attacker to forge messages at will.
+func Sum(out *[16]byte, m []byte, key *[32]byte) {
+ var mPtr *byte
+ if len(m) > 0 {
+ mPtr = &m[0]
+ }
+ poly1305(out, mPtr, uint64(len(m)), key)
+}
diff --git a/vendor/golang.org/x/crypto/poly1305/sum_amd64.s b/vendor/golang.org/x/crypto/poly1305/sum_amd64.s
new file mode 100644
index 0000000000..2edae63828
--- /dev/null
+++ b/vendor/golang.org/x/crypto/poly1305/sum_amd64.s
@@ -0,0 +1,125 @@
+// Copyright 2012 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 amd64,!gccgo,!appengine
+
+#include "textflag.h"
+
+#define POLY1305_ADD(msg, h0, h1, h2) \
+ ADDQ 0(msg), h0; \
+ ADCQ 8(msg), h1; \
+ ADCQ $1, h2; \
+ LEAQ 16(msg), msg
+
+#define POLY1305_MUL(h0, h1, h2, r0, r1, t0, t1, t2, t3) \
+ MOVQ r0, AX; \
+ MULQ h0; \
+ MOVQ AX, t0; \
+ MOVQ DX, t1; \
+ MOVQ r0, AX; \
+ MULQ h1; \
+ ADDQ AX, t1; \
+ ADCQ $0, DX; \
+ MOVQ r0, t2; \
+ IMULQ h2, t2; \
+ ADDQ DX, t2; \
+ \
+ MOVQ r1, AX; \
+ MULQ h0; \
+ ADDQ AX, t1; \
+ ADCQ $0, DX; \
+ MOVQ DX, h0; \
+ MOVQ r1, t3; \
+ IMULQ h2, t3; \
+ MOVQ r1, AX; \
+ MULQ h1; \
+ ADDQ AX, t2; \
+ ADCQ DX, t3; \
+ ADDQ h0, t2; \
+ ADCQ $0, t3; \
+ \
+ MOVQ t0, h0; \
+ MOVQ t1, h1; \
+ MOVQ t2, h2; \
+ ANDQ $3, h2; \
+ MOVQ t2, t0; \
+ ANDQ $0xFFFFFFFFFFFFFFFC, t0; \
+ ADDQ t0, h0; \
+ ADCQ t3, h1; \
+ ADCQ $0, h2; \
+ SHRQ $2, t3, t2; \
+ SHRQ $2, t3; \
+ ADDQ t2, h0; \
+ ADCQ t3, h1; \
+ ADCQ $0, h2
+
+DATA ·poly1305Mask<>+0x00(SB)/8, $0x0FFFFFFC0FFFFFFF
+DATA ·poly1305Mask<>+0x08(SB)/8, $0x0FFFFFFC0FFFFFFC
+GLOBL ·poly1305Mask<>(SB), RODATA, $16
+
+// func poly1305(out *[16]byte, m *byte, mlen uint64, key *[32]key)
+TEXT ·poly1305(SB), $0-32
+ MOVQ out+0(FP), DI
+ MOVQ m+8(FP), SI
+ MOVQ mlen+16(FP), R15
+ MOVQ key+24(FP), AX
+
+ MOVQ 0(AX), R11
+ MOVQ 8(AX), R12
+ ANDQ ·poly1305Mask<>(SB), R11 // r0
+ ANDQ ·poly1305Mask<>+8(SB), R12 // r1
+ XORQ R8, R8 // h0
+ XORQ R9, R9 // h1
+ XORQ R10, R10 // h2
+
+ CMPQ R15, $16
+ JB bytes_between_0_and_15
+
+loop:
+ POLY1305_ADD(SI, R8, R9, R10)
+
+multiply:
+ POLY1305_MUL(R8, R9, R10, R11, R12, BX, CX, R13, R14)
+ SUBQ $16, R15
+ CMPQ R15, $16
+ JAE loop
+
+bytes_between_0_and_15:
+ TESTQ R15, R15
+ JZ done
+ MOVQ $1, BX
+ XORQ CX, CX
+ XORQ R13, R13
+ ADDQ R15, SI
+
+flush_buffer:
+ SHLQ $8, BX, CX
+ SHLQ $8, BX
+ MOVB -1(SI), R13
+ XORQ R13, BX
+ DECQ SI
+ DECQ R15
+ JNZ flush_buffer
+
+ ADDQ BX, R8
+ ADCQ CX, R9
+ ADCQ $0, R10
+ MOVQ $16, R15
+ JMP multiply
+
+done:
+ MOVQ R8, AX
+ MOVQ R9, BX
+ SUBQ $0xFFFFFFFFFFFFFFFB, AX
+ SBBQ $0xFFFFFFFFFFFFFFFF, BX
+ SBBQ $3, R10
+ CMOVQCS R8, AX
+ CMOVQCS R9, BX
+ MOVQ key+24(FP), R8
+ ADDQ 16(R8), AX
+ ADCQ 24(R8), BX
+
+ MOVQ AX, 0(DI)
+ MOVQ BX, 8(DI)
+ RET
diff --git a/vendor/golang.org/x/crypto/poly1305/sum_arm.go b/vendor/golang.org/x/crypto/poly1305/sum_arm.go
new file mode 100644
index 0000000000..5dc321c2f3
--- /dev/null
+++ b/vendor/golang.org/x/crypto/poly1305/sum_arm.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 arm,!gccgo,!appengine,!nacl
+
+package poly1305
+
+// This function is implemented in sum_arm.s
+//go:noescape
+func poly1305_auth_armv6(out *[16]byte, m *byte, mlen uint32, key *[32]byte)
+
+// Sum generates an authenticator for m using a one-time key and puts the
+// 16-byte result into out. Authenticating two different messages with the same
+// key allows an attacker to forge messages at will.
+func Sum(out *[16]byte, m []byte, key *[32]byte) {
+ var mPtr *byte
+ if len(m) > 0 {
+ mPtr = &m[0]
+ }
+ poly1305_auth_armv6(out, mPtr, uint32(len(m)), key)
+}
diff --git a/vendor/golang.org/x/crypto/poly1305/sum_arm.s b/vendor/golang.org/x/crypto/poly1305/sum_arm.s
new file mode 100644
index 0000000000..f70b4ac484
--- /dev/null
+++ b/vendor/golang.org/x/crypto/poly1305/sum_arm.s
@@ -0,0 +1,427 @@
+// 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 arm,!gccgo,!appengine,!nacl
+
+#include "textflag.h"
+
+// This code was translated into a form compatible with 5a from the public
+// domain source by Andrew Moon: github.com/floodyberry/poly1305-opt/blob/master/app/extensions/poly1305.
+
+DATA ·poly1305_init_constants_armv6<>+0x00(SB)/4, $0x3ffffff
+DATA ·poly1305_init_constants_armv6<>+0x04(SB)/4, $0x3ffff03
+DATA ·poly1305_init_constants_armv6<>+0x08(SB)/4, $0x3ffc0ff
+DATA ·poly1305_init_constants_armv6<>+0x0c(SB)/4, $0x3f03fff
+DATA ·poly1305_init_constants_armv6<>+0x10(SB)/4, $0x00fffff
+GLOBL ·poly1305_init_constants_armv6<>(SB), 8, $20
+
+// Warning: the linker may use R11 to synthesize certain instructions. Please
+// take care and verify that no synthetic instructions use it.
+
+TEXT poly1305_init_ext_armv6<>(SB), NOSPLIT, $0
+ // Needs 16 bytes of stack and 64 bytes of space pointed to by R0. (It
+ // might look like it's only 60 bytes of space but the final four bytes
+ // will be written by another function.) We need to skip over four
+ // bytes of stack because that's saving the value of 'g'.
+ ADD $4, R13, R8
+ MOVM.IB [R4-R7], (R8)
+ MOVM.IA.W (R1), [R2-R5]
+ MOVW $·poly1305_init_constants_armv6<>(SB), R7
+ MOVW R2, R8
+ MOVW R2>>26, R9
+ MOVW R3>>20, g
+ MOVW R4>>14, R11
+ MOVW R5>>8, R12
+ ORR R3<<6, R9, R9
+ ORR R4<<12, g, g
+ ORR R5<<18, R11, R11
+ MOVM.IA (R7), [R2-R6]
+ AND R8, R2, R2
+ AND R9, R3, R3
+ AND g, R4, R4
+ AND R11, R5, R5
+ AND R12, R6, R6
+ MOVM.IA.W [R2-R6], (R0)
+ EOR R2, R2, R2
+ EOR R3, R3, R3
+ EOR R4, R4, R4
+ EOR R5, R5, R5
+ EOR R6, R6, R6
+ MOVM.IA.W [R2-R6], (R0)
+ MOVM.IA.W (R1), [R2-R5]
+ MOVM.IA [R2-R6], (R0)
+ ADD $20, R13, R0
+ MOVM.DA (R0), [R4-R7]
+ RET
+
+#define MOVW_UNALIGNED(Rsrc, Rdst, Rtmp, offset) \
+ MOVBU (offset+0)(Rsrc), Rtmp; \
+ MOVBU Rtmp, (offset+0)(Rdst); \
+ MOVBU (offset+1)(Rsrc), Rtmp; \
+ MOVBU Rtmp, (offset+1)(Rdst); \
+ MOVBU (offset+2)(Rsrc), Rtmp; \
+ MOVBU Rtmp, (offset+2)(Rdst); \
+ MOVBU (offset+3)(Rsrc), Rtmp; \
+ MOVBU Rtmp, (offset+3)(Rdst)
+
+TEXT poly1305_blocks_armv6<>(SB), NOSPLIT, $0
+ // Needs 24 bytes of stack for saved registers and then 88 bytes of
+ // scratch space after that. We assume that 24 bytes at (R13) have
+ // already been used: four bytes for the link register saved in the
+ // prelude of poly1305_auth_armv6, four bytes for saving the value of g
+ // in that function and 16 bytes of scratch space used around
+ // poly1305_finish_ext_armv6_skip1.
+ ADD $24, R13, R12
+ MOVM.IB [R4-R8, R14], (R12)
+ MOVW R0, 88(R13)
+ MOVW R1, 92(R13)
+ MOVW R2, 96(R13)
+ MOVW R1, R14
+ MOVW R2, R12
+ MOVW 56(R0), R8
+ WORD $0xe1180008 // TST R8, R8 not working see issue 5921
+ EOR R6, R6, R6
+ MOVW.EQ $(1<<24), R6
+ MOVW R6, 84(R13)
+ ADD $116, R13, g
+ MOVM.IA (R0), [R0-R9]
+ MOVM.IA [R0-R4], (g)
+ CMP $16, R12
+ BLO poly1305_blocks_armv6_done
+
+poly1305_blocks_armv6_mainloop:
+ WORD $0xe31e0003 // TST R14, #3 not working see issue 5921
+ BEQ poly1305_blocks_armv6_mainloop_aligned
+ ADD $100, R13, g
+ MOVW_UNALIGNED(R14, g, R0, 0)
+ MOVW_UNALIGNED(R14, g, R0, 4)
+ MOVW_UNALIGNED(R14, g, R0, 8)
+ MOVW_UNALIGNED(R14, g, R0, 12)
+ MOVM.IA (g), [R0-R3]
+ ADD $16, R14
+ B poly1305_blocks_armv6_mainloop_loaded
+
+poly1305_blocks_armv6_mainloop_aligned:
+ MOVM.IA.W (R14), [R0-R3]
+
+poly1305_blocks_armv6_mainloop_loaded:
+ MOVW R0>>26, g
+ MOVW R1>>20, R11
+ MOVW R2>>14, R12
+ MOVW R14, 92(R13)
+ MOVW R3>>8, R4
+ ORR R1<<6, g, g
+ ORR R2<<12, R11, R11
+ ORR R3<<18, R12, R12
+ BIC $0xfc000000, R0, R0
+ BIC $0xfc000000, g, g
+ MOVW 84(R13), R3
+ BIC $0xfc000000, R11, R11
+ BIC $0xfc000000, R12, R12
+ ADD R0, R5, R5
+ ADD g, R6, R6
+ ORR R3, R4, R4
+ ADD R11, R7, R7
+ ADD $116, R13, R14
+ ADD R12, R8, R8
+ ADD R4, R9, R9
+ MOVM.IA (R14), [R0-R4]
+ MULLU R4, R5, (R11, g)
+ MULLU R3, R5, (R14, R12)
+ MULALU R3, R6, (R11, g)
+ MULALU R2, R6, (R14, R12)
+ MULALU R2, R7, (R11, g)
+ MULALU R1, R7, (R14, R12)
+ ADD R4<<2, R4, R4
+ ADD R3<<2, R3, R3
+ MULALU R1, R8, (R11, g)
+ MULALU R0, R8, (R14, R12)
+ MULALU R0, R9, (R11, g)
+ MULALU R4, R9, (R14, R12)
+ MOVW g, 76(R13)
+ MOVW R11, 80(R13)
+ MOVW R12, 68(R13)
+ MOVW R14, 72(R13)
+ MULLU R2, R5, (R11, g)
+ MULLU R1, R5, (R14, R12)
+ MULALU R1, R6, (R11, g)
+ MULALU R0, R6, (R14, R12)
+ MULALU R0, R7, (R11, g)
+ MULALU R4, R7, (R14, R12)
+ ADD R2<<2, R2, R2
+ ADD R1<<2, R1, R1
+ MULALU R4, R8, (R11, g)
+ MULALU R3, R8, (R14, R12)
+ MULALU R3, R9, (R11, g)
+ MULALU R2, R9, (R14, R12)
+ MOVW g, 60(R13)
+ MOVW R11, 64(R13)
+ MOVW R12, 52(R13)
+ MOVW R14, 56(R13)
+ MULLU R0, R5, (R11, g)
+ MULALU R4, R6, (R11, g)
+ MULALU R3, R7, (R11, g)
+ MULALU R2, R8, (R11, g)
+ MULALU R1, R9, (R11, g)
+ ADD $52, R13, R0
+ MOVM.IA (R0), [R0-R7]
+ MOVW g>>26, R12
+ MOVW R4>>26, R14
+ ORR R11<<6, R12, R12
+ ORR R5<<6, R14, R14
+ BIC $0xfc000000, g, g
+ BIC $0xfc000000, R4, R4
+ ADD.S R12, R0, R0
+ ADC $0, R1, R1
+ ADD.S R14, R6, R6
+ ADC $0, R7, R7
+ MOVW R0>>26, R12
+ MOVW R6>>26, R14
+ ORR R1<<6, R12, R12
+ ORR R7<<6, R14, R14
+ BIC $0xfc000000, R0, R0
+ BIC $0xfc000000, R6, R6
+ ADD R14<<2, R14, R14
+ ADD.S R12, R2, R2
+ ADC $0, R3, R3
+ ADD R14, g, g
+ MOVW R2>>26, R12
+ MOVW g>>26, R14
+ ORR R3<<6, R12, R12
+ BIC $0xfc000000, g, R5
+ BIC $0xfc000000, R2, R7
+ ADD R12, R4, R4
+ ADD R14, R0, R0
+ MOVW R4>>26, R12
+ BIC $0xfc000000, R4, R8
+ ADD R12, R6, R9
+ MOVW 96(R13), R12
+ MOVW 92(R13), R14
+ MOVW R0, R6
+ CMP $32, R12
+ SUB $16, R12, R12
+ MOVW R12, 96(R13)
+ BHS poly1305_blocks_armv6_mainloop
+
+poly1305_blocks_armv6_done:
+ MOVW 88(R13), R12
+ MOVW R5, 20(R12)
+ MOVW R6, 24(R12)
+ MOVW R7, 28(R12)
+ MOVW R8, 32(R12)
+ MOVW R9, 36(R12)
+ ADD $48, R13, R0
+ MOVM.DA (R0), [R4-R8, R14]
+ RET
+
+#define MOVHUP_UNALIGNED(Rsrc, Rdst, Rtmp) \
+ MOVBU.P 1(Rsrc), Rtmp; \
+ MOVBU.P Rtmp, 1(Rdst); \
+ MOVBU.P 1(Rsrc), Rtmp; \
+ MOVBU.P Rtmp, 1(Rdst)
+
+#define MOVWP_UNALIGNED(Rsrc, Rdst, Rtmp) \
+ MOVHUP_UNALIGNED(Rsrc, Rdst, Rtmp); \
+ MOVHUP_UNALIGNED(Rsrc, Rdst, Rtmp)
+
+// func poly1305_auth_armv6(out *[16]byte, m *byte, mlen uint32, key *[32]key)
+TEXT ·poly1305_auth_armv6(SB), $196-16
+ // The value 196, just above, is the sum of 64 (the size of the context
+ // structure) and 132 (the amount of stack needed).
+ //
+ // At this point, the stack pointer (R13) has been moved down. It
+ // points to the saved link register and there's 196 bytes of free
+ // space above it.
+ //
+ // The stack for this function looks like:
+ //
+ // +---------------------
+ // |
+ // | 64 bytes of context structure
+ // |
+ // +---------------------
+ // |
+ // | 112 bytes for poly1305_blocks_armv6
+ // |
+ // +---------------------
+ // | 16 bytes of final block, constructed at
+ // | poly1305_finish_ext_armv6_skip8
+ // +---------------------
+ // | four bytes of saved 'g'
+ // +---------------------
+ // | lr, saved by prelude <- R13 points here
+ // +---------------------
+ MOVW g, 4(R13)
+
+ MOVW out+0(FP), R4
+ MOVW m+4(FP), R5
+ MOVW mlen+8(FP), R6
+ MOVW key+12(FP), R7
+
+ ADD $136, R13, R0 // 136 = 4 + 4 + 16 + 112
+ MOVW R7, R1
+
+ // poly1305_init_ext_armv6 will write to the stack from R13+4, but
+ // that's ok because none of the other values have been written yet.
+ BL poly1305_init_ext_armv6<>(SB)
+ BIC.S $15, R6, R2
+ BEQ poly1305_auth_armv6_noblocks
+ ADD $136, R13, R0
+ MOVW R5, R1
+ ADD R2, R5, R5
+ SUB R2, R6, R6
+ BL poly1305_blocks_armv6<>(SB)
+
+poly1305_auth_armv6_noblocks:
+ ADD $136, R13, R0
+ MOVW R5, R1
+ MOVW R6, R2
+ MOVW R4, R3
+
+ MOVW R0, R5
+ MOVW R1, R6
+ MOVW R2, R7
+ MOVW R3, R8
+ AND.S R2, R2, R2
+ BEQ poly1305_finish_ext_armv6_noremaining
+ EOR R0, R0
+ ADD $8, R13, R9 // 8 = offset to 16 byte scratch space
+ MOVW R0, (R9)
+ MOVW R0, 4(R9)
+ MOVW R0, 8(R9)
+ MOVW R0, 12(R9)
+ WORD $0xe3110003 // TST R1, #3 not working see issue 5921
+ BEQ poly1305_finish_ext_armv6_aligned
+ WORD $0xe3120008 // TST R2, #8 not working see issue 5921
+ BEQ poly1305_finish_ext_armv6_skip8
+ MOVWP_UNALIGNED(R1, R9, g)
+ MOVWP_UNALIGNED(R1, R9, g)
+
+poly1305_finish_ext_armv6_skip8:
+ WORD $0xe3120004 // TST $4, R2 not working see issue 5921
+ BEQ poly1305_finish_ext_armv6_skip4
+ MOVWP_UNALIGNED(R1, R9, g)
+
+poly1305_finish_ext_armv6_skip4:
+ WORD $0xe3120002 // TST $2, R2 not working see issue 5921
+ BEQ poly1305_finish_ext_armv6_skip2
+ MOVHUP_UNALIGNED(R1, R9, g)
+ B poly1305_finish_ext_armv6_skip2
+
+poly1305_finish_ext_armv6_aligned:
+ WORD $0xe3120008 // TST R2, #8 not working see issue 5921
+ BEQ poly1305_finish_ext_armv6_skip8_aligned
+ MOVM.IA.W (R1), [g-R11]
+ MOVM.IA.W [g-R11], (R9)
+
+poly1305_finish_ext_armv6_skip8_aligned:
+ WORD $0xe3120004 // TST $4, R2 not working see issue 5921
+ BEQ poly1305_finish_ext_armv6_skip4_aligned
+ MOVW.P 4(R1), g
+ MOVW.P g, 4(R9)
+
+poly1305_finish_ext_armv6_skip4_aligned:
+ WORD $0xe3120002 // TST $2, R2 not working see issue 5921
+ BEQ poly1305_finish_ext_armv6_skip2
+ MOVHU.P 2(R1), g
+ MOVH.P g, 2(R9)
+
+poly1305_finish_ext_armv6_skip2:
+ WORD $0xe3120001 // TST $1, R2 not working see issue 5921
+ BEQ poly1305_finish_ext_armv6_skip1
+ MOVBU.P 1(R1), g
+ MOVBU.P g, 1(R9)
+
+poly1305_finish_ext_armv6_skip1:
+ MOVW $1, R11
+ MOVBU R11, 0(R9)
+ MOVW R11, 56(R5)
+ MOVW R5, R0
+ ADD $8, R13, R1
+ MOVW $16, R2
+ BL poly1305_blocks_armv6<>(SB)
+
+poly1305_finish_ext_armv6_noremaining:
+ MOVW 20(R5), R0
+ MOVW 24(R5), R1
+ MOVW 28(R5), R2
+ MOVW 32(R5), R3
+ MOVW 36(R5), R4
+ MOVW R4>>26, R12
+ BIC $0xfc000000, R4, R4
+ ADD R12<<2, R12, R12
+ ADD R12, R0, R0
+ MOVW R0>>26, R12
+ BIC $0xfc000000, R0, R0
+ ADD R12, R1, R1
+ MOVW R1>>26, R12
+ BIC $0xfc000000, R1, R1
+ ADD R12, R2, R2
+ MOVW R2>>26, R12
+ BIC $0xfc000000, R2, R2
+ ADD R12, R3, R3
+ MOVW R3>>26, R12
+ BIC $0xfc000000, R3, R3
+ ADD R12, R4, R4
+ ADD $5, R0, R6
+ MOVW R6>>26, R12
+ BIC $0xfc000000, R6, R6
+ ADD R12, R1, R7
+ MOVW R7>>26, R12
+ BIC $0xfc000000, R7, R7
+ ADD R12, R2, g
+ MOVW g>>26, R12
+ BIC $0xfc000000, g, g
+ ADD R12, R3, R11
+ MOVW $-(1<<26), R12
+ ADD R11>>26, R12, R12
+ BIC $0xfc000000, R11, R11
+ ADD R12, R4, R9
+ MOVW R9>>31, R12
+ SUB $1, R12
+ AND R12, R6, R6
+ AND R12, R7, R7
+ AND R12, g, g
+ AND R12, R11, R11
+ AND R12, R9, R9
+ MVN R12, R12
+ AND R12, R0, R0
+ AND R12, R1, R1
+ AND R12, R2, R2
+ AND R12, R3, R3
+ AND R12, R4, R4
+ ORR R6, R0, R0
+ ORR R7, R1, R1
+ ORR g, R2, R2
+ ORR R11, R3, R3
+ ORR R9, R4, R4
+ ORR R1<<26, R0, R0
+ MOVW R1>>6, R1
+ ORR R2<<20, R1, R1
+ MOVW R2>>12, R2
+ ORR R3<<14, R2, R2
+ MOVW R3>>18, R3
+ ORR R4<<8, R3, R3
+ MOVW 40(R5), R6
+ MOVW 44(R5), R7
+ MOVW 48(R5), g
+ MOVW 52(R5), R11
+ ADD.S R6, R0, R0
+ ADC.S R7, R1, R1
+ ADC.S g, R2, R2
+ ADC.S R11, R3, R3
+ MOVM.IA [R0-R3], (R8)
+ MOVW R5, R12
+ EOR R0, R0, R0
+ EOR R1, R1, R1
+ EOR R2, R2, R2
+ EOR R3, R3, R3
+ EOR R4, R4, R4
+ EOR R5, R5, R5
+ EOR R6, R6, R6
+ EOR R7, R7, R7
+ MOVM.IA.W [R0-R7], (R12)
+ MOVM.IA [R0-R7], (R12)
+ MOVW 4(R13), g
+ RET
diff --git a/vendor/golang.org/x/crypto/poly1305/sum_noasm.go b/vendor/golang.org/x/crypto/poly1305/sum_noasm.go
new file mode 100644
index 0000000000..751eec5274
--- /dev/null
+++ b/vendor/golang.org/x/crypto/poly1305/sum_noasm.go
@@ -0,0 +1,14 @@
+// Copyright 2018 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 s390x,!go1.11 !arm,!amd64,!s390x gccgo appengine nacl
+
+package poly1305
+
+// Sum generates an authenticator for msg using a one-time key and puts the
+// 16-byte result into out. Authenticating two different messages with the same
+// key allows an attacker to forge messages at will.
+func Sum(out *[TagSize]byte, msg []byte, key *[32]byte) {
+ sumGeneric(out, msg, key)
+}
diff --git a/vendor/golang.org/x/crypto/poly1305/sum_ref.go b/vendor/golang.org/x/crypto/poly1305/sum_ref.go
new file mode 100644
index 0000000000..c4d59bd098
--- /dev/null
+++ b/vendor/golang.org/x/crypto/poly1305/sum_ref.go
@@ -0,0 +1,139 @@
+// Copyright 2012 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 poly1305
+
+import "encoding/binary"
+
+// sumGeneric generates an authenticator for msg using a one-time key and
+// puts the 16-byte result into out. This is the generic implementation of
+// Sum and should be called if no assembly implementation is available.
+func sumGeneric(out *[TagSize]byte, msg []byte, key *[32]byte) {
+ var (
+ h0, h1, h2, h3, h4 uint32 // the hash accumulators
+ r0, r1, r2, r3, r4 uint64 // the r part of the key
+ )
+
+ r0 = uint64(binary.LittleEndian.Uint32(key[0:]) & 0x3ffffff)
+ r1 = uint64((binary.LittleEndian.Uint32(key[3:]) >> 2) & 0x3ffff03)
+ r2 = uint64((binary.LittleEndian.Uint32(key[6:]) >> 4) & 0x3ffc0ff)
+ r3 = uint64((binary.LittleEndian.Uint32(key[9:]) >> 6) & 0x3f03fff)
+ r4 = uint64((binary.LittleEndian.Uint32(key[12:]) >> 8) & 0x00fffff)
+
+ R1, R2, R3, R4 := r1*5, r2*5, r3*5, r4*5
+
+ for len(msg) >= TagSize {
+ // h += msg
+ h0 += binary.LittleEndian.Uint32(msg[0:]) & 0x3ffffff
+ h1 += (binary.LittleEndian.Uint32(msg[3:]) >> 2) & 0x3ffffff
+ h2 += (binary.LittleEndian.Uint32(msg[6:]) >> 4) & 0x3ffffff
+ h3 += (binary.LittleEndian.Uint32(msg[9:]) >> 6) & 0x3ffffff
+ h4 += (binary.LittleEndian.Uint32(msg[12:]) >> 8) | (1 << 24)
+
+ // h *= r
+ d0 := (uint64(h0) * r0) + (uint64(h1) * R4) + (uint64(h2) * R3) + (uint64(h3) * R2) + (uint64(h4) * R1)
+ d1 := (d0 >> 26) + (uint64(h0) * r1) + (uint64(h1) * r0) + (uint64(h2) * R4) + (uint64(h3) * R3) + (uint64(h4) * R2)
+ d2 := (d1 >> 26) + (uint64(h0) * r2) + (uint64(h1) * r1) + (uint64(h2) * r0) + (uint64(h3) * R4) + (uint64(h4) * R3)
+ d3 := (d2 >> 26) + (uint64(h0) * r3) + (uint64(h1) * r2) + (uint64(h2) * r1) + (uint64(h3) * r0) + (uint64(h4) * R4)
+ d4 := (d3 >> 26) + (uint64(h0) * r4) + (uint64(h1) * r3) + (uint64(h2) * r2) + (uint64(h3) * r1) + (uint64(h4) * r0)
+
+ // h %= p
+ h0 = uint32(d0) & 0x3ffffff
+ h1 = uint32(d1) & 0x3ffffff
+ h2 = uint32(d2) & 0x3ffffff
+ h3 = uint32(d3) & 0x3ffffff
+ h4 = uint32(d4) & 0x3ffffff
+
+ h0 += uint32(d4>>26) * 5
+ h1 += h0 >> 26
+ h0 = h0 & 0x3ffffff
+
+ msg = msg[TagSize:]
+ }
+
+ if len(msg) > 0 {
+ var block [TagSize]byte
+ off := copy(block[:], msg)
+ block[off] = 0x01
+
+ // h += msg
+ h0 += binary.LittleEndian.Uint32(block[0:]) & 0x3ffffff
+ h1 += (binary.LittleEndian.Uint32(block[3:]) >> 2) & 0x3ffffff
+ h2 += (binary.LittleEndian.Uint32(block[6:]) >> 4) & 0x3ffffff
+ h3 += (binary.LittleEndian.Uint32(block[9:]) >> 6) & 0x3ffffff
+ h4 += (binary.LittleEndian.Uint32(block[12:]) >> 8)
+
+ // h *= r
+ d0 := (uint64(h0) * r0) + (uint64(h1) * R4) + (uint64(h2) * R3) + (uint64(h3) * R2) + (uint64(h4) * R1)
+ d1 := (d0 >> 26) + (uint64(h0) * r1) + (uint64(h1) * r0) + (uint64(h2) * R4) + (uint64(h3) * R3) + (uint64(h4) * R2)
+ d2 := (d1 >> 26) + (uint64(h0) * r2) + (uint64(h1) * r1) + (uint64(h2) * r0) + (uint64(h3) * R4) + (uint64(h4) * R3)
+ d3 := (d2 >> 26) + (uint64(h0) * r3) + (uint64(h1) * r2) + (uint64(h2) * r1) + (uint64(h3) * r0) + (uint64(h4) * R4)
+ d4 := (d3 >> 26) + (uint64(h0) * r4) + (uint64(h1) * r3) + (uint64(h2) * r2) + (uint64(h3) * r1) + (uint64(h4) * r0)
+
+ // h %= p
+ h0 = uint32(d0) & 0x3ffffff
+ h1 = uint32(d1) & 0x3ffffff
+ h2 = uint32(d2) & 0x3ffffff
+ h3 = uint32(d3) & 0x3ffffff
+ h4 = uint32(d4) & 0x3ffffff
+
+ h0 += uint32(d4>>26) * 5
+ h1 += h0 >> 26
+ h0 = h0 & 0x3ffffff
+ }
+
+ // h %= p reduction
+ h2 += h1 >> 26
+ h1 &= 0x3ffffff
+ h3 += h2 >> 26
+ h2 &= 0x3ffffff
+ h4 += h3 >> 26
+ h3 &= 0x3ffffff
+ h0 += 5 * (h4 >> 26)
+ h4 &= 0x3ffffff
+ h1 += h0 >> 26
+ h0 &= 0x3ffffff
+
+ // h - p
+ t0 := h0 + 5
+ t1 := h1 + (t0 >> 26)
+ t2 := h2 + (t1 >> 26)
+ t3 := h3 + (t2 >> 26)
+ t4 := h4 + (t3 >> 26) - (1 << 26)
+ t0 &= 0x3ffffff
+ t1 &= 0x3ffffff
+ t2 &= 0x3ffffff
+ t3 &= 0x3ffffff
+
+ // select h if h < p else h - p
+ t_mask := (t4 >> 31) - 1
+ h_mask := ^t_mask
+ h0 = (h0 & h_mask) | (t0 & t_mask)
+ h1 = (h1 & h_mask) | (t1 & t_mask)
+ h2 = (h2 & h_mask) | (t2 & t_mask)
+ h3 = (h3 & h_mask) | (t3 & t_mask)
+ h4 = (h4 & h_mask) | (t4 & t_mask)
+
+ // h %= 2^128
+ h0 |= h1 << 26
+ h1 = ((h1 >> 6) | (h2 << 20))
+ h2 = ((h2 >> 12) | (h3 << 14))
+ h3 = ((h3 >> 18) | (h4 << 8))
+
+ // s: the s part of the key
+ // tag = (h + s) % (2^128)
+ t := uint64(h0) + uint64(binary.LittleEndian.Uint32(key[16:]))
+ h0 = uint32(t)
+ t = uint64(h1) + uint64(binary.LittleEndian.Uint32(key[20:])) + (t >> 32)
+ h1 = uint32(t)
+ t = uint64(h2) + uint64(binary.LittleEndian.Uint32(key[24:])) + (t >> 32)
+ h2 = uint32(t)
+ t = uint64(h3) + uint64(binary.LittleEndian.Uint32(key[28:])) + (t >> 32)
+ h3 = uint32(t)
+
+ binary.LittleEndian.PutUint32(out[0:], h0)
+ binary.LittleEndian.PutUint32(out[4:], h1)
+ binary.LittleEndian.PutUint32(out[8:], h2)
+ binary.LittleEndian.PutUint32(out[12:], h3)
+}
diff --git a/vendor/golang.org/x/crypto/poly1305/sum_s390x.go b/vendor/golang.org/x/crypto/poly1305/sum_s390x.go
new file mode 100644
index 0000000000..7a266cece4
--- /dev/null
+++ b/vendor/golang.org/x/crypto/poly1305/sum_s390x.go
@@ -0,0 +1,49 @@
+// Copyright 2018 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 s390x,go1.11,!gccgo,!appengine
+
+package poly1305
+
+// hasVectorFacility reports whether the machine supports
+// the vector facility (vx).
+func hasVectorFacility() bool
+
+// hasVMSLFacility reports whether the machine supports
+// Vector Multiply Sum Logical (VMSL).
+func hasVMSLFacility() bool
+
+var hasVX = hasVectorFacility()
+var hasVMSL = hasVMSLFacility()
+
+// poly1305vx is an assembly implementation of Poly1305 that uses vector
+// instructions. It must only be called if the vector facility (vx) is
+// available.
+//go:noescape
+func poly1305vx(out *[16]byte, m *byte, mlen uint64, key *[32]byte)
+
+// poly1305vmsl is an assembly implementation of Poly1305 that uses vector
+// instructions, including VMSL. It must only be called if the vector facility (vx) is
+// available and if VMSL is supported.
+//go:noescape
+func poly1305vmsl(out *[16]byte, m *byte, mlen uint64, key *[32]byte)
+
+// Sum generates an authenticator for m using a one-time key and puts the
+// 16-byte result into out. Authenticating two different messages with the same
+// key allows an attacker to forge messages at will.
+func Sum(out *[16]byte, m []byte, key *[32]byte) {
+ if hasVX {
+ var mPtr *byte
+ if len(m) > 0 {
+ mPtr = &m[0]
+ }
+ if hasVMSL && len(m) > 256 {
+ poly1305vmsl(out, mPtr, uint64(len(m)), key)
+ } else {
+ poly1305vx(out, mPtr, uint64(len(m)), key)
+ }
+ } else {
+ sumGeneric(out, m, key)
+ }
+}
diff --git a/vendor/golang.org/x/crypto/poly1305/sum_s390x.s b/vendor/golang.org/x/crypto/poly1305/sum_s390x.s
new file mode 100644
index 0000000000..356c07a6c2
--- /dev/null
+++ b/vendor/golang.org/x/crypto/poly1305/sum_s390x.s
@@ -0,0 +1,400 @@
+// Copyright 2018 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 s390x,go1.11,!gccgo,!appengine
+
+#include "textflag.h"
+
+// Implementation of Poly1305 using the vector facility (vx).
+
+// constants
+#define MOD26 V0
+#define EX0 V1
+#define EX1 V2
+#define EX2 V3
+
+// temporaries
+#define T_0 V4
+#define T_1 V5
+#define T_2 V6
+#define T_3 V7
+#define T_4 V8
+
+// key (r)
+#define R_0 V9
+#define R_1 V10
+#define R_2 V11
+#define R_3 V12
+#define R_4 V13
+#define R5_1 V14
+#define R5_2 V15
+#define R5_3 V16
+#define R5_4 V17
+#define RSAVE_0 R5
+#define RSAVE_1 R6
+#define RSAVE_2 R7
+#define RSAVE_3 R8
+#define RSAVE_4 R9
+#define R5SAVE_1 V28
+#define R5SAVE_2 V29
+#define R5SAVE_3 V30
+#define R5SAVE_4 V31
+
+// message block
+#define F_0 V18
+#define F_1 V19
+#define F_2 V20
+#define F_3 V21
+#define F_4 V22
+
+// accumulator
+#define H_0 V23
+#define H_1 V24
+#define H_2 V25
+#define H_3 V26
+#define H_4 V27
+
+GLOBL ·keyMask<>(SB), RODATA, $16
+DATA ·keyMask<>+0(SB)/8, $0xffffff0ffcffff0f
+DATA ·keyMask<>+8(SB)/8, $0xfcffff0ffcffff0f
+
+GLOBL ·bswapMask<>(SB), RODATA, $16
+DATA ·bswapMask<>+0(SB)/8, $0x0f0e0d0c0b0a0908
+DATA ·bswapMask<>+8(SB)/8, $0x0706050403020100
+
+GLOBL ·constants<>(SB), RODATA, $64
+// MOD26
+DATA ·constants<>+0(SB)/8, $0x3ffffff
+DATA ·constants<>+8(SB)/8, $0x3ffffff
+// EX0
+DATA ·constants<>+16(SB)/8, $0x0006050403020100
+DATA ·constants<>+24(SB)/8, $0x1016151413121110
+// EX1
+DATA ·constants<>+32(SB)/8, $0x060c0b0a09080706
+DATA ·constants<>+40(SB)/8, $0x161c1b1a19181716
+// EX2
+DATA ·constants<>+48(SB)/8, $0x0d0d0d0d0d0f0e0d
+DATA ·constants<>+56(SB)/8, $0x1d1d1d1d1d1f1e1d
+
+// h = (f*g) % (2**130-5) [partial reduction]
+#define MULTIPLY(f0, f1, f2, f3, f4, g0, g1, g2, g3, g4, g51, g52, g53, g54, h0, h1, h2, h3, h4) \
+ VMLOF f0, g0, h0 \
+ VMLOF f0, g1, h1 \
+ VMLOF f0, g2, h2 \
+ VMLOF f0, g3, h3 \
+ VMLOF f0, g4, h4 \
+ VMLOF f1, g54, T_0 \
+ VMLOF f1, g0, T_1 \
+ VMLOF f1, g1, T_2 \
+ VMLOF f1, g2, T_3 \
+ VMLOF f1, g3, T_4 \
+ VMALOF f2, g53, h0, h0 \
+ VMALOF f2, g54, h1, h1 \
+ VMALOF f2, g0, h2, h2 \
+ VMALOF f2, g1, h3, h3 \
+ VMALOF f2, g2, h4, h4 \
+ VMALOF f3, g52, T_0, T_0 \
+ VMALOF f3, g53, T_1, T_1 \
+ VMALOF f3, g54, T_2, T_2 \
+ VMALOF f3, g0, T_3, T_3 \
+ VMALOF f3, g1, T_4, T_4 \
+ VMALOF f4, g51, h0, h0 \
+ VMALOF f4, g52, h1, h1 \
+ VMALOF f4, g53, h2, h2 \
+ VMALOF f4, g54, h3, h3 \
+ VMALOF f4, g0, h4, h4 \
+ VAG T_0, h0, h0 \
+ VAG T_1, h1, h1 \
+ VAG T_2, h2, h2 \
+ VAG T_3, h3, h3 \
+ VAG T_4, h4, h4
+
+// carry h0->h1 h3->h4, h1->h2 h4->h0, h0->h1 h2->h3, h3->h4
+#define REDUCE(h0, h1, h2, h3, h4) \
+ VESRLG $26, h0, T_0 \
+ VESRLG $26, h3, T_1 \
+ VN MOD26, h0, h0 \
+ VN MOD26, h3, h3 \
+ VAG T_0, h1, h1 \
+ VAG T_1, h4, h4 \
+ VESRLG $26, h1, T_2 \
+ VESRLG $26, h4, T_3 \
+ VN MOD26, h1, h1 \
+ VN MOD26, h4, h4 \
+ VESLG $2, T_3, T_4 \
+ VAG T_3, T_4, T_4 \
+ VAG T_2, h2, h2 \
+ VAG T_4, h0, h0 \
+ VESRLG $26, h2, T_0 \
+ VESRLG $26, h0, T_1 \
+ VN MOD26, h2, h2 \
+ VN MOD26, h0, h0 \
+ VAG T_0, h3, h3 \
+ VAG T_1, h1, h1 \
+ VESRLG $26, h3, T_2 \
+ VN MOD26, h3, h3 \
+ VAG T_2, h4, h4
+
+// expand in0 into d[0] and in1 into d[1]
+#define EXPAND(in0, in1, d0, d1, d2, d3, d4) \
+ VGBM $0x0707, d1 \ // d1=tmp
+ VPERM in0, in1, EX2, d4 \
+ VPERM in0, in1, EX0, d0 \
+ VPERM in0, in1, EX1, d2 \
+ VN d1, d4, d4 \
+ VESRLG $26, d0, d1 \
+ VESRLG $30, d2, d3 \
+ VESRLG $4, d2, d2 \
+ VN MOD26, d0, d0 \
+ VN MOD26, d1, d1 \
+ VN MOD26, d2, d2 \
+ VN MOD26, d3, d3
+
+// pack h4:h0 into h1:h0 (no carry)
+#define PACK(h0, h1, h2, h3, h4) \
+ VESLG $26, h1, h1 \
+ VESLG $26, h3, h3 \
+ VO h0, h1, h0 \
+ VO h2, h3, h2 \
+ VESLG $4, h2, h2 \
+ VLEIB $7, $48, h1 \
+ VSLB h1, h2, h2 \
+ VO h0, h2, h0 \
+ VLEIB $7, $104, h1 \
+ VSLB h1, h4, h3 \
+ VO h3, h0, h0 \
+ VLEIB $7, $24, h1 \
+ VSRLB h1, h4, h1
+
+// if h > 2**130-5 then h -= 2**130-5
+#define MOD(h0, h1, t0, t1, t2) \
+ VZERO t0 \
+ VLEIG $1, $5, t0 \
+ VACCQ h0, t0, t1 \
+ VAQ h0, t0, t0 \
+ VONE t2 \
+ VLEIG $1, $-4, t2 \
+ VAQ t2, t1, t1 \
+ VACCQ h1, t1, t1 \
+ VONE t2 \
+ VAQ t2, t1, t1 \
+ VN h0, t1, t2 \
+ VNC t0, t1, t1 \
+ VO t1, t2, h0
+
+// func poly1305vx(out *[16]byte, m *byte, mlen uint64, key *[32]key)
+TEXT ·poly1305vx(SB), $0-32
+ // This code processes up to 2 blocks (32 bytes) per iteration
+ // using the algorithm described in:
+ // NEON crypto, Daniel J. Bernstein & Peter Schwabe
+ // https://cryptojedi.org/papers/neoncrypto-20120320.pdf
+ LMG out+0(FP), R1, R4 // R1=out, R2=m, R3=mlen, R4=key
+
+ // load MOD26, EX0, EX1 and EX2
+ MOVD $·constants<>(SB), R5
+ VLM (R5), MOD26, EX2
+
+ // setup r
+ VL (R4), T_0
+ MOVD $·keyMask<>(SB), R6
+ VL (R6), T_1
+ VN T_0, T_1, T_0
+ EXPAND(T_0, T_0, R_0, R_1, R_2, R_3, R_4)
+
+ // setup r*5
+ VLEIG $0, $5, T_0
+ VLEIG $1, $5, T_0
+
+ // store r (for final block)
+ VMLOF T_0, R_1, R5SAVE_1
+ VMLOF T_0, R_2, R5SAVE_2
+ VMLOF T_0, R_3, R5SAVE_3
+ VMLOF T_0, R_4, R5SAVE_4
+ VLGVG $0, R_0, RSAVE_0
+ VLGVG $0, R_1, RSAVE_1
+ VLGVG $0, R_2, RSAVE_2
+ VLGVG $0, R_3, RSAVE_3
+ VLGVG $0, R_4, RSAVE_4
+
+ // skip r**2 calculation
+ CMPBLE R3, $16, skip
+
+ // calculate r**2
+ MULTIPLY(R_0, R_1, R_2, R_3, R_4, R_0, R_1, R_2, R_3, R_4, R5SAVE_1, R5SAVE_2, R5SAVE_3, R5SAVE_4, H_0, H_1, H_2, H_3, H_4)
+ REDUCE(H_0, H_1, H_2, H_3, H_4)
+ VLEIG $0, $5, T_0
+ VLEIG $1, $5, T_0
+ VMLOF T_0, H_1, R5_1
+ VMLOF T_0, H_2, R5_2
+ VMLOF T_0, H_3, R5_3
+ VMLOF T_0, H_4, R5_4
+ VLR H_0, R_0
+ VLR H_1, R_1
+ VLR H_2, R_2
+ VLR H_3, R_3
+ VLR H_4, R_4
+
+ // initialize h
+ VZERO H_0
+ VZERO H_1
+ VZERO H_2
+ VZERO H_3
+ VZERO H_4
+
+loop:
+ CMPBLE R3, $32, b2
+ VLM (R2), T_0, T_1
+ SUB $32, R3
+ MOVD $32(R2), R2
+ EXPAND(T_0, T_1, F_0, F_1, F_2, F_3, F_4)
+ VLEIB $4, $1, F_4
+ VLEIB $12, $1, F_4
+
+multiply:
+ VAG H_0, F_0, F_0
+ VAG H_1, F_1, F_1
+ VAG H_2, F_2, F_2
+ VAG H_3, F_3, F_3
+ VAG H_4, F_4, F_4
+ MULTIPLY(F_0, F_1, F_2, F_3, F_4, R_0, R_1, R_2, R_3, R_4, R5_1, R5_2, R5_3, R5_4, H_0, H_1, H_2, H_3, H_4)
+ REDUCE(H_0, H_1, H_2, H_3, H_4)
+ CMPBNE R3, $0, loop
+
+finish:
+ // sum vectors
+ VZERO T_0
+ VSUMQG H_0, T_0, H_0
+ VSUMQG H_1, T_0, H_1
+ VSUMQG H_2, T_0, H_2
+ VSUMQG H_3, T_0, H_3
+ VSUMQG H_4, T_0, H_4
+
+ // h may be >= 2*(2**130-5) so we need to reduce it again
+ REDUCE(H_0, H_1, H_2, H_3, H_4)
+
+ // carry h1->h4
+ VESRLG $26, H_1, T_1
+ VN MOD26, H_1, H_1
+ VAQ T_1, H_2, H_2
+ VESRLG $26, H_2, T_2
+ VN MOD26, H_2, H_2
+ VAQ T_2, H_3, H_3
+ VESRLG $26, H_3, T_3
+ VN MOD26, H_3, H_3
+ VAQ T_3, H_4, H_4
+
+ // h is now < 2*(2**130-5)
+ // pack h into h1 (hi) and h0 (lo)
+ PACK(H_0, H_1, H_2, H_3, H_4)
+
+ // if h > 2**130-5 then h -= 2**130-5
+ MOD(H_0, H_1, T_0, T_1, T_2)
+
+ // h += s
+ MOVD $·bswapMask<>(SB), R5
+ VL (R5), T_1
+ VL 16(R4), T_0
+ VPERM T_0, T_0, T_1, T_0 // reverse bytes (to big)
+ VAQ T_0, H_0, H_0
+ VPERM H_0, H_0, T_1, H_0 // reverse bytes (to little)
+ VST H_0, (R1)
+
+ RET
+
+b2:
+ CMPBLE R3, $16, b1
+
+ // 2 blocks remaining
+ SUB $17, R3
+ VL (R2), T_0
+ VLL R3, 16(R2), T_1
+ ADD $1, R3
+ MOVBZ $1, R0
+ CMPBEQ R3, $16, 2(PC)
+ VLVGB R3, R0, T_1
+ EXPAND(T_0, T_1, F_0, F_1, F_2, F_3, F_4)
+ CMPBNE R3, $16, 2(PC)
+ VLEIB $12, $1, F_4
+ VLEIB $4, $1, F_4
+
+ // setup [r²,r]
+ VLVGG $1, RSAVE_0, R_0
+ VLVGG $1, RSAVE_1, R_1
+ VLVGG $1, RSAVE_2, R_2
+ VLVGG $1, RSAVE_3, R_3
+ VLVGG $1, RSAVE_4, R_4
+ VPDI $0, R5_1, R5SAVE_1, R5_1
+ VPDI $0, R5_2, R5SAVE_2, R5_2
+ VPDI $0, R5_3, R5SAVE_3, R5_3
+ VPDI $0, R5_4, R5SAVE_4, R5_4
+
+ MOVD $0, R3
+ BR multiply
+
+skip:
+ VZERO H_0
+ VZERO H_1
+ VZERO H_2
+ VZERO H_3
+ VZERO H_4
+
+ CMPBEQ R3, $0, finish
+
+b1:
+ // 1 block remaining
+ SUB $1, R3
+ VLL R3, (R2), T_0
+ ADD $1, R3
+ MOVBZ $1, R0
+ CMPBEQ R3, $16, 2(PC)
+ VLVGB R3, R0, T_0
+ VZERO T_1
+ EXPAND(T_0, T_1, F_0, F_1, F_2, F_3, F_4)
+ CMPBNE R3, $16, 2(PC)
+ VLEIB $4, $1, F_4
+ VLEIG $1, $1, R_0
+ VZERO R_1
+ VZERO R_2
+ VZERO R_3
+ VZERO R_4
+ VZERO R5_1
+ VZERO R5_2
+ VZERO R5_3
+ VZERO R5_4
+
+ // setup [r, 1]
+ VLVGG $0, RSAVE_0, R_0
+ VLVGG $0, RSAVE_1, R_1
+ VLVGG $0, RSAVE_2, R_2
+ VLVGG $0, RSAVE_3, R_3
+ VLVGG $0, RSAVE_4, R_4
+ VPDI $0, R5SAVE_1, R5_1, R5_1
+ VPDI $0, R5SAVE_2, R5_2, R5_2
+ VPDI $0, R5SAVE_3, R5_3, R5_3
+ VPDI $0, R5SAVE_4, R5_4, R5_4
+
+ MOVD $0, R3
+ BR multiply
+
+TEXT ·hasVectorFacility(SB), NOSPLIT, $24-1
+ MOVD $x-24(SP), R1
+ XC $24, 0(R1), 0(R1) // clear the storage
+ MOVD $2, R0 // R0 is the number of double words stored -1
+ WORD $0xB2B01000 // STFLE 0(R1)
+ XOR R0, R0 // reset the value of R0
+ MOVBZ z-8(SP), R1
+ AND $0x40, R1
+ BEQ novector
+
+vectorinstalled:
+ // check if the vector instruction has been enabled
+ VLEIB $0, $0xF, V16
+ VLGVB $0, V16, R1
+ CMPBNE R1, $0xF, novector
+ MOVB $1, ret+0(FP) // have vx
+ RET
+
+novector:
+ MOVB $0, ret+0(FP) // no vx
+ RET
diff --git a/vendor/golang.org/x/crypto/poly1305/sum_vmsl_s390x.s b/vendor/golang.org/x/crypto/poly1305/sum_vmsl_s390x.s
new file mode 100644
index 0000000000..e548020b14
--- /dev/null
+++ b/vendor/golang.org/x/crypto/poly1305/sum_vmsl_s390x.s
@@ -0,0 +1,931 @@
+// Copyright 2018 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 s390x,go1.11,!gccgo,!appengine
+
+#include "textflag.h"
+
+// Implementation of Poly1305 using the vector facility (vx) and the VMSL instruction.
+
+// constants
+#define EX0 V1
+#define EX1 V2
+#define EX2 V3
+
+// temporaries
+#define T_0 V4
+#define T_1 V5
+#define T_2 V6
+#define T_3 V7
+#define T_4 V8
+#define T_5 V9
+#define T_6 V10
+#define T_7 V11
+#define T_8 V12
+#define T_9 V13
+#define T_10 V14
+
+// r**2 & r**4
+#define R_0 V15
+#define R_1 V16
+#define R_2 V17
+#define R5_1 V18
+#define R5_2 V19
+// key (r)
+#define RSAVE_0 R7
+#define RSAVE_1 R8
+#define RSAVE_2 R9
+#define R5SAVE_1 R10
+#define R5SAVE_2 R11
+
+// message block
+#define M0 V20
+#define M1 V21
+#define M2 V22
+#define M3 V23
+#define M4 V24
+#define M5 V25
+
+// accumulator
+#define H0_0 V26
+#define H1_0 V27
+#define H2_0 V28
+#define H0_1 V29
+#define H1_1 V30
+#define H2_1 V31
+
+GLOBL ·keyMask<>(SB), RODATA, $16
+DATA ·keyMask<>+0(SB)/8, $0xffffff0ffcffff0f
+DATA ·keyMask<>+8(SB)/8, $0xfcffff0ffcffff0f
+
+GLOBL ·bswapMask<>(SB), RODATA, $16
+DATA ·bswapMask<>+0(SB)/8, $0x0f0e0d0c0b0a0908
+DATA ·bswapMask<>+8(SB)/8, $0x0706050403020100
+
+GLOBL ·constants<>(SB), RODATA, $48
+// EX0
+DATA ·constants<>+0(SB)/8, $0x18191a1b1c1d1e1f
+DATA ·constants<>+8(SB)/8, $0x0000050403020100
+// EX1
+DATA ·constants<>+16(SB)/8, $0x18191a1b1c1d1e1f
+DATA ·constants<>+24(SB)/8, $0x00000a0908070605
+// EX2
+DATA ·constants<>+32(SB)/8, $0x18191a1b1c1d1e1f
+DATA ·constants<>+40(SB)/8, $0x0000000f0e0d0c0b
+
+GLOBL ·c<>(SB), RODATA, $48
+// EX0
+DATA ·c<>+0(SB)/8, $0x0000050403020100
+DATA ·c<>+8(SB)/8, $0x0000151413121110
+// EX1
+DATA ·c<>+16(SB)/8, $0x00000a0908070605
+DATA ·c<>+24(SB)/8, $0x00001a1918171615
+// EX2
+DATA ·c<>+32(SB)/8, $0x0000000f0e0d0c0b
+DATA ·c<>+40(SB)/8, $0x0000001f1e1d1c1b
+
+GLOBL ·reduce<>(SB), RODATA, $32
+// 44 bit
+DATA ·reduce<>+0(SB)/8, $0x0
+DATA ·reduce<>+8(SB)/8, $0xfffffffffff
+// 42 bit
+DATA ·reduce<>+16(SB)/8, $0x0
+DATA ·reduce<>+24(SB)/8, $0x3ffffffffff
+
+// h = (f*g) % (2**130-5) [partial reduction]
+// uses T_0...T_9 temporary registers
+// input: m02_0, m02_1, m02_2, m13_0, m13_1, m13_2, r_0, r_1, r_2, r5_1, r5_2, m4_0, m4_1, m4_2, m5_0, m5_1, m5_2
+// temp: t0, t1, t2, t3, t4, t5, t6, t7, t8, t9
+// output: m02_0, m02_1, m02_2, m13_0, m13_1, m13_2
+#define MULTIPLY(m02_0, m02_1, m02_2, m13_0, m13_1, m13_2, r_0, r_1, r_2, r5_1, r5_2, m4_0, m4_1, m4_2, m5_0, m5_1, m5_2, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9) \
+ \ // Eliminate the dependency for the last 2 VMSLs
+ VMSLG m02_0, r_2, m4_2, m4_2 \
+ VMSLG m13_0, r_2, m5_2, m5_2 \ // 8 VMSLs pipelined
+ VMSLG m02_0, r_0, m4_0, m4_0 \
+ VMSLG m02_1, r5_2, V0, T_0 \
+ VMSLG m02_0, r_1, m4_1, m4_1 \
+ VMSLG m02_1, r_0, V0, T_1 \
+ VMSLG m02_1, r_1, V0, T_2 \
+ VMSLG m02_2, r5_1, V0, T_3 \
+ VMSLG m02_2, r5_2, V0, T_4 \
+ VMSLG m13_0, r_0, m5_0, m5_0 \
+ VMSLG m13_1, r5_2, V0, T_5 \
+ VMSLG m13_0, r_1, m5_1, m5_1 \
+ VMSLG m13_1, r_0, V0, T_6 \
+ VMSLG m13_1, r_1, V0, T_7 \
+ VMSLG m13_2, r5_1, V0, T_8 \
+ VMSLG m13_2, r5_2, V0, T_9 \
+ VMSLG m02_2, r_0, m4_2, m4_2 \
+ VMSLG m13_2, r_0, m5_2, m5_2 \
+ VAQ m4_0, T_0, m02_0 \
+ VAQ m4_1, T_1, m02_1 \
+ VAQ m5_0, T_5, m13_0 \
+ VAQ m5_1, T_6, m13_1 \
+ VAQ m02_0, T_3, m02_0 \
+ VAQ m02_1, T_4, m02_1 \
+ VAQ m13_0, T_8, m13_0 \
+ VAQ m13_1, T_9, m13_1 \
+ VAQ m4_2, T_2, m02_2 \
+ VAQ m5_2, T_7, m13_2 \
+
+// SQUARE uses three limbs of r and r_2*5 to output square of r
+// uses T_1, T_5 and T_7 temporary registers
+// input: r_0, r_1, r_2, r5_2
+// temp: TEMP0, TEMP1, TEMP2
+// output: p0, p1, p2
+#define SQUARE(r_0, r_1, r_2, r5_2, p0, p1, p2, TEMP0, TEMP1, TEMP2) \
+ VMSLG r_0, r_0, p0, p0 \
+ VMSLG r_1, r5_2, V0, TEMP0 \
+ VMSLG r_2, r5_2, p1, p1 \
+ VMSLG r_0, r_1, V0, TEMP1 \
+ VMSLG r_1, r_1, p2, p2 \
+ VMSLG r_0, r_2, V0, TEMP2 \
+ VAQ TEMP0, p0, p0 \
+ VAQ TEMP1, p1, p1 \
+ VAQ TEMP2, p2, p2 \
+ VAQ TEMP0, p0, p0 \
+ VAQ TEMP1, p1, p1 \
+ VAQ TEMP2, p2, p2 \
+
+// carry h0->h1->h2->h0 || h3->h4->h5->h3
+// uses T_2, T_4, T_5, T_7, T_8, T_9
+// t6, t7, t8, t9, t10, t11
+// input: h0, h1, h2, h3, h4, h5
+// temp: t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11
+// output: h0, h1, h2, h3, h4, h5
+#define REDUCE(h0, h1, h2, h3, h4, h5, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11) \
+ VLM (R12), t6, t7 \ // 44 and 42 bit clear mask
+ VLEIB $7, $0x28, t10 \ // 5 byte shift mask
+ VREPIB $4, t8 \ // 4 bit shift mask
+ VREPIB $2, t11 \ // 2 bit shift mask
+ VSRLB t10, h0, t0 \ // h0 byte shift
+ VSRLB t10, h1, t1 \ // h1 byte shift
+ VSRLB t10, h2, t2 \ // h2 byte shift
+ VSRLB t10, h3, t3 \ // h3 byte shift
+ VSRLB t10, h4, t4 \ // h4 byte shift
+ VSRLB t10, h5, t5 \ // h5 byte shift
+ VSRL t8, t0, t0 \ // h0 bit shift
+ VSRL t8, t1, t1 \ // h2 bit shift
+ VSRL t11, t2, t2 \ // h2 bit shift
+ VSRL t8, t3, t3 \ // h3 bit shift
+ VSRL t8, t4, t4 \ // h4 bit shift
+ VESLG $2, t2, t9 \ // h2 carry x5
+ VSRL t11, t5, t5 \ // h5 bit shift
+ VN t6, h0, h0 \ // h0 clear carry
+ VAQ t2, t9, t2 \ // h2 carry x5
+ VESLG $2, t5, t9 \ // h5 carry x5
+ VN t6, h1, h1 \ // h1 clear carry
+ VN t7, h2, h2 \ // h2 clear carry
+ VAQ t5, t9, t5 \ // h5 carry x5
+ VN t6, h3, h3 \ // h3 clear carry
+ VN t6, h4, h4 \ // h4 clear carry
+ VN t7, h5, h5 \ // h5 clear carry
+ VAQ t0, h1, h1 \ // h0->h1
+ VAQ t3, h4, h4 \ // h3->h4
+ VAQ t1, h2, h2 \ // h1->h2
+ VAQ t4, h5, h5 \ // h4->h5
+ VAQ t2, h0, h0 \ // h2->h0
+ VAQ t5, h3, h3 \ // h5->h3
+ VREPG $1, t6, t6 \ // 44 and 42 bit masks across both halves
+ VREPG $1, t7, t7 \
+ VSLDB $8, h0, h0, h0 \ // set up [h0/1/2, h3/4/5]
+ VSLDB $8, h1, h1, h1 \
+ VSLDB $8, h2, h2, h2 \
+ VO h0, h3, h3 \
+ VO h1, h4, h4 \
+ VO h2, h5, h5 \
+ VESRLG $44, h3, t0 \ // 44 bit shift right
+ VESRLG $44, h4, t1 \
+ VESRLG $42, h5, t2 \
+ VN t6, h3, h3 \ // clear carry bits
+ VN t6, h4, h4 \
+ VN t7, h5, h5 \
+ VESLG $2, t2, t9 \ // multiply carry by 5
+ VAQ t9, t2, t2 \
+ VAQ t0, h4, h4 \
+ VAQ t1, h5, h5 \
+ VAQ t2, h3, h3 \
+
+// carry h0->h1->h2->h0
+// input: h0, h1, h2
+// temp: t0, t1, t2, t3, t4, t5, t6, t7, t8
+// output: h0, h1, h2
+#define REDUCE2(h0, h1, h2, t0, t1, t2, t3, t4, t5, t6, t7, t8) \
+ VLEIB $7, $0x28, t3 \ // 5 byte shift mask
+ VREPIB $4, t4 \ // 4 bit shift mask
+ VREPIB $2, t7 \ // 2 bit shift mask
+ VGBM $0x003F, t5 \ // mask to clear carry bits
+ VSRLB t3, h0, t0 \
+ VSRLB t3, h1, t1 \
+ VSRLB t3, h2, t2 \
+ VESRLG $4, t5, t5 \ // 44 bit clear mask
+ VSRL t4, t0, t0 \
+ VSRL t4, t1, t1 \
+ VSRL t7, t2, t2 \
+ VESRLG $2, t5, t6 \ // 42 bit clear mask
+ VESLG $2, t2, t8 \
+ VAQ t8, t2, t2 \
+ VN t5, h0, h0 \
+ VN t5, h1, h1 \
+ VN t6, h2, h2 \
+ VAQ t0, h1, h1 \
+ VAQ t1, h2, h2 \
+ VAQ t2, h0, h0 \
+ VSRLB t3, h0, t0 \
+ VSRLB t3, h1, t1 \
+ VSRLB t3, h2, t2 \
+ VSRL t4, t0, t0 \
+ VSRL t4, t1, t1 \
+ VSRL t7, t2, t2 \
+ VN t5, h0, h0 \
+ VN t5, h1, h1 \
+ VESLG $2, t2, t8 \
+ VN t6, h2, h2 \
+ VAQ t0, h1, h1 \
+ VAQ t8, t2, t2 \
+ VAQ t1, h2, h2 \
+ VAQ t2, h0, h0 \
+
+// expands two message blocks into the lower halfs of the d registers
+// moves the contents of the d registers into upper halfs
+// input: in1, in2, d0, d1, d2, d3, d4, d5
+// temp: TEMP0, TEMP1, TEMP2, TEMP3
+// output: d0, d1, d2, d3, d4, d5
+#define EXPACC(in1, in2, d0, d1, d2, d3, d4, d5, TEMP0, TEMP1, TEMP2, TEMP3) \
+ VGBM $0xff3f, TEMP0 \
+ VGBM $0xff1f, TEMP1 \
+ VESLG $4, d1, TEMP2 \
+ VESLG $4, d4, TEMP3 \
+ VESRLG $4, TEMP0, TEMP0 \
+ VPERM in1, d0, EX0, d0 \
+ VPERM in2, d3, EX0, d3 \
+ VPERM in1, d2, EX2, d2 \
+ VPERM in2, d5, EX2, d5 \
+ VPERM in1, TEMP2, EX1, d1 \
+ VPERM in2, TEMP3, EX1, d4 \
+ VN TEMP0, d0, d0 \
+ VN TEMP0, d3, d3 \
+ VESRLG $4, d1, d1 \
+ VESRLG $4, d4, d4 \
+ VN TEMP1, d2, d2 \
+ VN TEMP1, d5, d5 \
+ VN TEMP0, d1, d1 \
+ VN TEMP0, d4, d4 \
+
+// expands one message block into the lower halfs of the d registers
+// moves the contents of the d registers into upper halfs
+// input: in, d0, d1, d2
+// temp: TEMP0, TEMP1, TEMP2
+// output: d0, d1, d2
+#define EXPACC2(in, d0, d1, d2, TEMP0, TEMP1, TEMP2) \
+ VGBM $0xff3f, TEMP0 \
+ VESLG $4, d1, TEMP2 \
+ VGBM $0xff1f, TEMP1 \
+ VPERM in, d0, EX0, d0 \
+ VESRLG $4, TEMP0, TEMP0 \
+ VPERM in, d2, EX2, d2 \
+ VPERM in, TEMP2, EX1, d1 \
+ VN TEMP0, d0, d0 \
+ VN TEMP1, d2, d2 \
+ VESRLG $4, d1, d1 \
+ VN TEMP0, d1, d1 \
+
+// pack h2:h0 into h1:h0 (no carry)
+// input: h0, h1, h2
+// output: h0, h1, h2
+#define PACK(h0, h1, h2) \
+ VMRLG h1, h2, h2 \ // copy h1 to upper half h2
+ VESLG $44, h1, h1 \ // shift limb 1 44 bits, leaving 20
+ VO h0, h1, h0 \ // combine h0 with 20 bits from limb 1
+ VESRLG $20, h2, h1 \ // put top 24 bits of limb 1 into h1
+ VLEIG $1, $0, h1 \ // clear h2 stuff from lower half of h1
+ VO h0, h1, h0 \ // h0 now has 88 bits (limb 0 and 1)
+ VLEIG $0, $0, h2 \ // clear upper half of h2
+ VESRLG $40, h2, h1 \ // h1 now has upper two bits of result
+ VLEIB $7, $88, h1 \ // for byte shift (11 bytes)
+ VSLB h1, h2, h2 \ // shift h2 11 bytes to the left
+ VO h0, h2, h0 \ // combine h0 with 20 bits from limb 1
+ VLEIG $0, $0, h1 \ // clear upper half of h1
+
+// if h > 2**130-5 then h -= 2**130-5
+// input: h0, h1
+// temp: t0, t1, t2
+// output: h0
+#define MOD(h0, h1, t0, t1, t2) \
+ VZERO t0 \
+ VLEIG $1, $5, t0 \
+ VACCQ h0, t0, t1 \
+ VAQ h0, t0, t0 \
+ VONE t2 \
+ VLEIG $1, $-4, t2 \
+ VAQ t2, t1, t1 \
+ VACCQ h1, t1, t1 \
+ VONE t2 \
+ VAQ t2, t1, t1 \
+ VN h0, t1, t2 \
+ VNC t0, t1, t1 \
+ VO t1, t2, h0 \
+
+// func poly1305vmsl(out *[16]byte, m *byte, mlen uint64, key *[32]key)
+TEXT ·poly1305vmsl(SB), $0-32
+ // This code processes 6 + up to 4 blocks (32 bytes) per iteration
+ // using the algorithm described in:
+ // NEON crypto, Daniel J. Bernstein & Peter Schwabe
+ // https://cryptojedi.org/papers/neoncrypto-20120320.pdf
+ // And as moddified for VMSL as described in
+ // Accelerating Poly1305 Cryptographic Message Authentication on the z14
+ // O'Farrell et al, CASCON 2017, p48-55
+ // https://ibm.ent.box.com/s/jf9gedj0e9d2vjctfyh186shaztavnht
+
+ LMG out+0(FP), R1, R4 // R1=out, R2=m, R3=mlen, R4=key
+ VZERO V0 // c
+
+ // load EX0, EX1 and EX2
+ MOVD $·constants<>(SB), R5
+ VLM (R5), EX0, EX2 // c
+
+ // setup r
+ VL (R4), T_0
+ MOVD $·keyMask<>(SB), R6
+ VL (R6), T_1
+ VN T_0, T_1, T_0
+ VZERO T_2 // limbs for r
+ VZERO T_3
+ VZERO T_4
+ EXPACC2(T_0, T_2, T_3, T_4, T_1, T_5, T_7)
+
+ // T_2, T_3, T_4: [0, r]
+
+ // setup r*20
+ VLEIG $0, $0, T_0
+ VLEIG $1, $20, T_0 // T_0: [0, 20]
+ VZERO T_5
+ VZERO T_6
+ VMSLG T_0, T_3, T_5, T_5
+ VMSLG T_0, T_4, T_6, T_6
+
+ // store r for final block in GR
+ VLGVG $1, T_2, RSAVE_0 // c
+ VLGVG $1, T_3, RSAVE_1 // c
+ VLGVG $1, T_4, RSAVE_2 // c
+ VLGVG $1, T_5, R5SAVE_1 // c
+ VLGVG $1, T_6, R5SAVE_2 // c
+
+ // initialize h
+ VZERO H0_0
+ VZERO H1_0
+ VZERO H2_0
+ VZERO H0_1
+ VZERO H1_1
+ VZERO H2_1
+
+ // initialize pointer for reduce constants
+ MOVD $·reduce<>(SB), R12
+
+ // calculate r**2 and 20*(r**2)
+ VZERO R_0
+ VZERO R_1
+ VZERO R_2
+ SQUARE(T_2, T_3, T_4, T_6, R_0, R_1, R_2, T_1, T_5, T_7)
+ REDUCE2(R_0, R_1, R_2, M0, M1, M2, M3, M4, R5_1, R5_2, M5, T_1)
+ VZERO R5_1
+ VZERO R5_2
+ VMSLG T_0, R_1, R5_1, R5_1
+ VMSLG T_0, R_2, R5_2, R5_2
+
+ // skip r**4 calculation if 3 blocks or less
+ CMPBLE R3, $48, b4
+
+ // calculate r**4 and 20*(r**4)
+ VZERO T_8
+ VZERO T_9
+ VZERO T_10
+ SQUARE(R_0, R_1, R_2, R5_2, T_8, T_9, T_10, T_1, T_5, T_7)
+ REDUCE2(T_8, T_9, T_10, M0, M1, M2, M3, M4, T_2, T_3, M5, T_1)
+ VZERO T_2
+ VZERO T_3
+ VMSLG T_0, T_9, T_2, T_2
+ VMSLG T_0, T_10, T_3, T_3
+
+ // put r**2 to the right and r**4 to the left of R_0, R_1, R_2
+ VSLDB $8, T_8, T_8, T_8
+ VSLDB $8, T_9, T_9, T_9
+ VSLDB $8, T_10, T_10, T_10
+ VSLDB $8, T_2, T_2, T_2
+ VSLDB $8, T_3, T_3, T_3
+
+ VO T_8, R_0, R_0
+ VO T_9, R_1, R_1
+ VO T_10, R_2, R_2
+ VO T_2, R5_1, R5_1
+ VO T_3, R5_2, R5_2
+
+ CMPBLE R3, $80, load // less than or equal to 5 blocks in message
+
+ // 6(or 5+1) blocks
+ SUB $81, R3
+ VLM (R2), M0, M4
+ VLL R3, 80(R2), M5
+ ADD $1, R3
+ MOVBZ $1, R0
+ CMPBGE R3, $16, 2(PC)
+ VLVGB R3, R0, M5
+ MOVD $96(R2), R2
+ EXPACC(M0, M1, H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, T_0, T_1, T_2, T_3)
+ EXPACC(M2, M3, H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, T_0, T_1, T_2, T_3)
+ VLEIB $2, $1, H2_0
+ VLEIB $2, $1, H2_1
+ VLEIB $10, $1, H2_0
+ VLEIB $10, $1, H2_1
+
+ VZERO M0
+ VZERO M1
+ VZERO M2
+ VZERO M3
+ VZERO T_4
+ VZERO T_10
+ EXPACC(M4, M5, M0, M1, M2, M3, T_4, T_10, T_0, T_1, T_2, T_3)
+ VLR T_4, M4
+ VLEIB $10, $1, M2
+ CMPBLT R3, $16, 2(PC)
+ VLEIB $10, $1, T_10
+ MULTIPLY(H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, R_0, R_1, R_2, R5_1, R5_2, M0, M1, M2, M3, M4, T_10, T_0, T_1, T_2, T_3, T_4, T_5, T_6, T_7, T_8, T_9)
+ REDUCE(H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, T_10, M0, M1, M2, M3, M4, T_4, T_5, T_2, T_7, T_8, T_9)
+ VMRHG V0, H0_1, H0_0
+ VMRHG V0, H1_1, H1_0
+ VMRHG V0, H2_1, H2_0
+ VMRLG V0, H0_1, H0_1
+ VMRLG V0, H1_1, H1_1
+ VMRLG V0, H2_1, H2_1
+
+ SUB $16, R3
+ CMPBLE R3, $0, square
+
+load:
+ // load EX0, EX1 and EX2
+ MOVD $·c<>(SB), R5
+ VLM (R5), EX0, EX2
+
+loop:
+ CMPBLE R3, $64, add // b4 // last 4 or less blocks left
+
+ // next 4 full blocks
+ VLM (R2), M2, M5
+ SUB $64, R3
+ MOVD $64(R2), R2
+ REDUCE(H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, T_10, M0, M1, T_0, T_1, T_3, T_4, T_5, T_2, T_7, T_8, T_9)
+
+ // expacc in-lined to create [m2, m3] limbs
+ VGBM $0x3f3f, T_0 // 44 bit clear mask
+ VGBM $0x1f1f, T_1 // 40 bit clear mask
+ VPERM M2, M3, EX0, T_3
+ VESRLG $4, T_0, T_0 // 44 bit clear mask ready
+ VPERM M2, M3, EX1, T_4
+ VPERM M2, M3, EX2, T_5
+ VN T_0, T_3, T_3
+ VESRLG $4, T_4, T_4
+ VN T_1, T_5, T_5
+ VN T_0, T_4, T_4
+ VMRHG H0_1, T_3, H0_0
+ VMRHG H1_1, T_4, H1_0
+ VMRHG H2_1, T_5, H2_0
+ VMRLG H0_1, T_3, H0_1
+ VMRLG H1_1, T_4, H1_1
+ VMRLG H2_1, T_5, H2_1
+ VLEIB $10, $1, H2_0
+ VLEIB $10, $1, H2_1
+ VPERM M4, M5, EX0, T_3
+ VPERM M4, M5, EX1, T_4
+ VPERM M4, M5, EX2, T_5
+ VN T_0, T_3, T_3
+ VESRLG $4, T_4, T_4
+ VN T_1, T_5, T_5
+ VN T_0, T_4, T_4
+ VMRHG V0, T_3, M0
+ VMRHG V0, T_4, M1
+ VMRHG V0, T_5, M2
+ VMRLG V0, T_3, M3
+ VMRLG V0, T_4, M4
+ VMRLG V0, T_5, M5
+ VLEIB $10, $1, M2
+ VLEIB $10, $1, M5
+
+ MULTIPLY(H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, R_0, R_1, R_2, R5_1, R5_2, M0, M1, M2, M3, M4, M5, T_0, T_1, T_2, T_3, T_4, T_5, T_6, T_7, T_8, T_9)
+ CMPBNE R3, $0, loop
+ REDUCE(H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, T_10, M0, M1, M3, M4, M5, T_4, T_5, T_2, T_7, T_8, T_9)
+ VMRHG V0, H0_1, H0_0
+ VMRHG V0, H1_1, H1_0
+ VMRHG V0, H2_1, H2_0
+ VMRLG V0, H0_1, H0_1
+ VMRLG V0, H1_1, H1_1
+ VMRLG V0, H2_1, H2_1
+
+ // load EX0, EX1, EX2
+ MOVD $·constants<>(SB), R5
+ VLM (R5), EX0, EX2
+
+ // sum vectors
+ VAQ H0_0, H0_1, H0_0
+ VAQ H1_0, H1_1, H1_0
+ VAQ H2_0, H2_1, H2_0
+
+ // h may be >= 2*(2**130-5) so we need to reduce it again
+ // M0...M4 are used as temps here
+ REDUCE2(H0_0, H1_0, H2_0, M0, M1, M2, M3, M4, T_9, T_10, H0_1, M5)
+
+next: // carry h1->h2
+ VLEIB $7, $0x28, T_1
+ VREPIB $4, T_2
+ VGBM $0x003F, T_3
+ VESRLG $4, T_3
+
+ // byte shift
+ VSRLB T_1, H1_0, T_4
+
+ // bit shift
+ VSRL T_2, T_4, T_4
+
+ // clear h1 carry bits
+ VN T_3, H1_0, H1_0
+
+ // add carry
+ VAQ T_4, H2_0, H2_0
+
+ // h is now < 2*(2**130-5)
+ // pack h into h1 (hi) and h0 (lo)
+ PACK(H0_0, H1_0, H2_0)
+
+ // if h > 2**130-5 then h -= 2**130-5
+ MOD(H0_0, H1_0, T_0, T_1, T_2)
+
+ // h += s
+ MOVD $·bswapMask<>(SB), R5
+ VL (R5), T_1
+ VL 16(R4), T_0
+ VPERM T_0, T_0, T_1, T_0 // reverse bytes (to big)
+ VAQ T_0, H0_0, H0_0
+ VPERM H0_0, H0_0, T_1, H0_0 // reverse bytes (to little)
+ VST H0_0, (R1)
+ RET
+
+add:
+ // load EX0, EX1, EX2
+ MOVD $·constants<>(SB), R5
+ VLM (R5), EX0, EX2
+
+ REDUCE(H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, T_10, M0, M1, M3, M4, M5, T_4, T_5, T_2, T_7, T_8, T_9)
+ VMRHG V0, H0_1, H0_0
+ VMRHG V0, H1_1, H1_0
+ VMRHG V0, H2_1, H2_0
+ VMRLG V0, H0_1, H0_1
+ VMRLG V0, H1_1, H1_1
+ VMRLG V0, H2_1, H2_1
+ CMPBLE R3, $64, b4
+
+b4:
+ CMPBLE R3, $48, b3 // 3 blocks or less
+
+ // 4(3+1) blocks remaining
+ SUB $49, R3
+ VLM (R2), M0, M2
+ VLL R3, 48(R2), M3
+ ADD $1, R3
+ MOVBZ $1, R0
+ CMPBEQ R3, $16, 2(PC)
+ VLVGB R3, R0, M3
+ MOVD $64(R2), R2
+ EXPACC(M0, M1, H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, T_0, T_1, T_2, T_3)
+ VLEIB $10, $1, H2_0
+ VLEIB $10, $1, H2_1
+ VZERO M0
+ VZERO M1
+ VZERO M4
+ VZERO M5
+ VZERO T_4
+ VZERO T_10
+ EXPACC(M2, M3, M0, M1, M4, M5, T_4, T_10, T_0, T_1, T_2, T_3)
+ VLR T_4, M2
+ VLEIB $10, $1, M4
+ CMPBNE R3, $16, 2(PC)
+ VLEIB $10, $1, T_10
+ MULTIPLY(H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, R_0, R_1, R_2, R5_1, R5_2, M0, M1, M4, M5, M2, T_10, T_0, T_1, T_2, T_3, T_4, T_5, T_6, T_7, T_8, T_9)
+ REDUCE(H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, T_10, M0, M1, M3, M4, M5, T_4, T_5, T_2, T_7, T_8, T_9)
+ VMRHG V0, H0_1, H0_0
+ VMRHG V0, H1_1, H1_0
+ VMRHG V0, H2_1, H2_0
+ VMRLG V0, H0_1, H0_1
+ VMRLG V0, H1_1, H1_1
+ VMRLG V0, H2_1, H2_1
+ SUB $16, R3
+ CMPBLE R3, $0, square // this condition must always hold true!
+
+b3:
+ CMPBLE R3, $32, b2
+
+ // 3 blocks remaining
+
+ // setup [r²,r]
+ VSLDB $8, R_0, R_0, R_0
+ VSLDB $8, R_1, R_1, R_1
+ VSLDB $8, R_2, R_2, R_2
+ VSLDB $8, R5_1, R5_1, R5_1
+ VSLDB $8, R5_2, R5_2, R5_2
+
+ VLVGG $1, RSAVE_0, R_0
+ VLVGG $1, RSAVE_1, R_1
+ VLVGG $1, RSAVE_2, R_2
+ VLVGG $1, R5SAVE_1, R5_1
+ VLVGG $1, R5SAVE_2, R5_2
+
+ // setup [h0, h1]
+ VSLDB $8, H0_0, H0_0, H0_0
+ VSLDB $8, H1_0, H1_0, H1_0
+ VSLDB $8, H2_0, H2_0, H2_0
+ VO H0_1, H0_0, H0_0
+ VO H1_1, H1_0, H1_0
+ VO H2_1, H2_0, H2_0
+ VZERO H0_1
+ VZERO H1_1
+ VZERO H2_1
+
+ VZERO M0
+ VZERO M1
+ VZERO M2
+ VZERO M3
+ VZERO M4
+ VZERO M5
+
+ // H*[r**2, r]
+ MULTIPLY(H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, R_0, R_1, R_2, R5_1, R5_2, M0, M1, M2, M3, M4, M5, T_0, T_1, T_2, T_3, T_4, T_5, T_6, T_7, T_8, T_9)
+ REDUCE2(H0_0, H1_0, H2_0, M0, M1, M2, M3, M4, H0_1, H1_1, T_10, M5)
+
+ SUB $33, R3
+ VLM (R2), M0, M1
+ VLL R3, 32(R2), M2
+ ADD $1, R3
+ MOVBZ $1, R0
+ CMPBEQ R3, $16, 2(PC)
+ VLVGB R3, R0, M2
+
+ // H += m0
+ VZERO T_1
+ VZERO T_2
+ VZERO T_3
+ EXPACC2(M0, T_1, T_2, T_3, T_4, T_5, T_6)
+ VLEIB $10, $1, T_3
+ VAG H0_0, T_1, H0_0
+ VAG H1_0, T_2, H1_0
+ VAG H2_0, T_3, H2_0
+
+ VZERO M0
+ VZERO M3
+ VZERO M4
+ VZERO M5
+ VZERO T_10
+
+ // (H+m0)*r
+ MULTIPLY(H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, R_0, R_1, R_2, R5_1, R5_2, M0, M3, M4, M5, V0, T_10, T_0, T_1, T_2, T_3, T_4, T_5, T_6, T_7, T_8, T_9)
+ REDUCE2(H0_0, H1_0, H2_0, M0, M3, M4, M5, T_10, H0_1, H1_1, H2_1, T_9)
+
+ // H += m1
+ VZERO V0
+ VZERO T_1
+ VZERO T_2
+ VZERO T_3
+ EXPACC2(M1, T_1, T_2, T_3, T_4, T_5, T_6)
+ VLEIB $10, $1, T_3
+ VAQ H0_0, T_1, H0_0
+ VAQ H1_0, T_2, H1_0
+ VAQ H2_0, T_3, H2_0
+ REDUCE2(H0_0, H1_0, H2_0, M0, M3, M4, M5, T_9, H0_1, H1_1, H2_1, T_10)
+
+ // [H, m2] * [r**2, r]
+ EXPACC2(M2, H0_0, H1_0, H2_0, T_1, T_2, T_3)
+ CMPBNE R3, $16, 2(PC)
+ VLEIB $10, $1, H2_0
+ VZERO M0
+ VZERO M1
+ VZERO M2
+ VZERO M3
+ VZERO M4
+ VZERO M5
+ MULTIPLY(H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, R_0, R_1, R_2, R5_1, R5_2, M0, M1, M2, M3, M4, M5, T_0, T_1, T_2, T_3, T_4, T_5, T_6, T_7, T_8, T_9)
+ REDUCE2(H0_0, H1_0, H2_0, M0, M1, M2, M3, M4, H0_1, H1_1, M5, T_10)
+ SUB $16, R3
+ CMPBLE R3, $0, next // this condition must always hold true!
+
+b2:
+ CMPBLE R3, $16, b1
+
+ // 2 blocks remaining
+
+ // setup [r²,r]
+ VSLDB $8, R_0, R_0, R_0
+ VSLDB $8, R_1, R_1, R_1
+ VSLDB $8, R_2, R_2, R_2
+ VSLDB $8, R5_1, R5_1, R5_1
+ VSLDB $8, R5_2, R5_2, R5_2
+
+ VLVGG $1, RSAVE_0, R_0
+ VLVGG $1, RSAVE_1, R_1
+ VLVGG $1, RSAVE_2, R_2
+ VLVGG $1, R5SAVE_1, R5_1
+ VLVGG $1, R5SAVE_2, R5_2
+
+ // setup [h0, h1]
+ VSLDB $8, H0_0, H0_0, H0_0
+ VSLDB $8, H1_0, H1_0, H1_0
+ VSLDB $8, H2_0, H2_0, H2_0
+ VO H0_1, H0_0, H0_0
+ VO H1_1, H1_0, H1_0
+ VO H2_1, H2_0, H2_0
+ VZERO H0_1
+ VZERO H1_1
+ VZERO H2_1
+
+ VZERO M0
+ VZERO M1
+ VZERO M2
+ VZERO M3
+ VZERO M4
+ VZERO M5
+
+ // H*[r**2, r]
+ MULTIPLY(H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, R_0, R_1, R_2, R5_1, R5_2, M0, M1, M2, M3, M4, M5, T_0, T_1, T_2, T_3, T_4, T_5, T_6, T_7, T_8, T_9)
+ REDUCE(H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, T_10, M0, M1, M2, M3, M4, T_4, T_5, T_2, T_7, T_8, T_9)
+ VMRHG V0, H0_1, H0_0
+ VMRHG V0, H1_1, H1_0
+ VMRHG V0, H2_1, H2_0
+ VMRLG V0, H0_1, H0_1
+ VMRLG V0, H1_1, H1_1
+ VMRLG V0, H2_1, H2_1
+
+ // move h to the left and 0s at the right
+ VSLDB $8, H0_0, H0_0, H0_0
+ VSLDB $8, H1_0, H1_0, H1_0
+ VSLDB $8, H2_0, H2_0, H2_0
+
+ // get message blocks and append 1 to start
+ SUB $17, R3
+ VL (R2), M0
+ VLL R3, 16(R2), M1
+ ADD $1, R3
+ MOVBZ $1, R0
+ CMPBEQ R3, $16, 2(PC)
+ VLVGB R3, R0, M1
+ VZERO T_6
+ VZERO T_7
+ VZERO T_8
+ EXPACC2(M0, T_6, T_7, T_8, T_1, T_2, T_3)
+ EXPACC2(M1, T_6, T_7, T_8, T_1, T_2, T_3)
+ VLEIB $2, $1, T_8
+ CMPBNE R3, $16, 2(PC)
+ VLEIB $10, $1, T_8
+
+ // add [m0, m1] to h
+ VAG H0_0, T_6, H0_0
+ VAG H1_0, T_7, H1_0
+ VAG H2_0, T_8, H2_0
+
+ VZERO M2
+ VZERO M3
+ VZERO M4
+ VZERO M5
+ VZERO T_10
+ VZERO M0
+
+ // at this point R_0 .. R5_2 look like [r**2, r]
+ MULTIPLY(H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, R_0, R_1, R_2, R5_1, R5_2, M2, M3, M4, M5, T_10, M0, T_0, T_1, T_2, T_3, T_4, T_5, T_6, T_7, T_8, T_9)
+ REDUCE2(H0_0, H1_0, H2_0, M2, M3, M4, M5, T_9, H0_1, H1_1, H2_1, T_10)
+ SUB $16, R3, R3
+ CMPBLE R3, $0, next
+
+b1:
+ CMPBLE R3, $0, next
+
+ // 1 block remaining
+
+ // setup [r²,r]
+ VSLDB $8, R_0, R_0, R_0
+ VSLDB $8, R_1, R_1, R_1
+ VSLDB $8, R_2, R_2, R_2
+ VSLDB $8, R5_1, R5_1, R5_1
+ VSLDB $8, R5_2, R5_2, R5_2
+
+ VLVGG $1, RSAVE_0, R_0
+ VLVGG $1, RSAVE_1, R_1
+ VLVGG $1, RSAVE_2, R_2
+ VLVGG $1, R5SAVE_1, R5_1
+ VLVGG $1, R5SAVE_2, R5_2
+
+ // setup [h0, h1]
+ VSLDB $8, H0_0, H0_0, H0_0
+ VSLDB $8, H1_0, H1_0, H1_0
+ VSLDB $8, H2_0, H2_0, H2_0
+ VO H0_1, H0_0, H0_0
+ VO H1_1, H1_0, H1_0
+ VO H2_1, H2_0, H2_0
+ VZERO H0_1
+ VZERO H1_1
+ VZERO H2_1
+
+ VZERO M0
+ VZERO M1
+ VZERO M2
+ VZERO M3
+ VZERO M4
+ VZERO M5
+
+ // H*[r**2, r]
+ MULTIPLY(H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, R_0, R_1, R_2, R5_1, R5_2, M0, M1, M2, M3, M4, M5, T_0, T_1, T_2, T_3, T_4, T_5, T_6, T_7, T_8, T_9)
+ REDUCE2(H0_0, H1_0, H2_0, M0, M1, M2, M3, M4, T_9, T_10, H0_1, M5)
+
+ // set up [0, m0] limbs
+ SUB $1, R3
+ VLL R3, (R2), M0
+ ADD $1, R3
+ MOVBZ $1, R0
+ CMPBEQ R3, $16, 2(PC)
+ VLVGB R3, R0, M0
+ VZERO T_1
+ VZERO T_2
+ VZERO T_3
+ EXPACC2(M0, T_1, T_2, T_3, T_4, T_5, T_6)// limbs: [0, m]
+ CMPBNE R3, $16, 2(PC)
+ VLEIB $10, $1, T_3
+
+ // h+m0
+ VAQ H0_0, T_1, H0_0
+ VAQ H1_0, T_2, H1_0
+ VAQ H2_0, T_3, H2_0
+
+ VZERO M0
+ VZERO M1
+ VZERO M2
+ VZERO M3
+ VZERO M4
+ VZERO M5
+ MULTIPLY(H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, R_0, R_1, R_2, R5_1, R5_2, M0, M1, M2, M3, M4, M5, T_0, T_1, T_2, T_3, T_4, T_5, T_6, T_7, T_8, T_9)
+ REDUCE2(H0_0, H1_0, H2_0, M0, M1, M2, M3, M4, T_9, T_10, H0_1, M5)
+
+ BR next
+
+square:
+ // setup [r²,r]
+ VSLDB $8, R_0, R_0, R_0
+ VSLDB $8, R_1, R_1, R_1
+ VSLDB $8, R_2, R_2, R_2
+ VSLDB $8, R5_1, R5_1, R5_1
+ VSLDB $8, R5_2, R5_2, R5_2
+
+ VLVGG $1, RSAVE_0, R_0
+ VLVGG $1, RSAVE_1, R_1
+ VLVGG $1, RSAVE_2, R_2
+ VLVGG $1, R5SAVE_1, R5_1
+ VLVGG $1, R5SAVE_2, R5_2
+
+ // setup [h0, h1]
+ VSLDB $8, H0_0, H0_0, H0_0
+ VSLDB $8, H1_0, H1_0, H1_0
+ VSLDB $8, H2_0, H2_0, H2_0
+ VO H0_1, H0_0, H0_0
+ VO H1_1, H1_0, H1_0
+ VO H2_1, H2_0, H2_0
+ VZERO H0_1
+ VZERO H1_1
+ VZERO H2_1
+
+ VZERO M0
+ VZERO M1
+ VZERO M2
+ VZERO M3
+ VZERO M4
+ VZERO M5
+
+ // (h0*r**2) + (h1*r)
+ MULTIPLY(H0_0, H1_0, H2_0, H0_1, H1_1, H2_1, R_0, R_1, R_2, R5_1, R5_2, M0, M1, M2, M3, M4, M5, T_0, T_1, T_2, T_3, T_4, T_5, T_6, T_7, T_8, T_9)
+ REDUCE2(H0_0, H1_0, H2_0, M0, M1, M2, M3, M4, T_9, T_10, H0_1, M5)
+ BR next
+
+TEXT ·hasVMSLFacility(SB), NOSPLIT, $24-1
+ MOVD $x-24(SP), R1
+ XC $24, 0(R1), 0(R1) // clear the storage
+ MOVD $2, R0 // R0 is the number of double words stored -1
+ WORD $0xB2B01000 // STFLE 0(R1)
+ XOR R0, R0 // reset the value of R0
+ MOVBZ z-8(SP), R1
+ AND $0x01, R1
+ BEQ novmsl
+
+vectorinstalled:
+ // check if the vector instruction has been enabled
+ VLEIB $0, $0xF, V16
+ VLGVB $0, V16, R1
+ CMPBNE R1, $0xF, novmsl
+ MOVB $1, ret+0(FP) // have vx
+ RET
+
+novmsl:
+ MOVB $0, ret+0(FP) // no vx
+ RET
diff --git a/vendor/golang.org/x/crypto/ssh/terminal/terminal.go b/vendor/golang.org/x/crypto/ssh/terminal/terminal.go
new file mode 100644
index 0000000000..9d666ffcf0
--- /dev/null
+++ b/vendor/golang.org/x/crypto/ssh/terminal/terminal.go
@@ -0,0 +1,955 @@
+// 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 terminal
+
+import (
+ "bytes"
+ "io"
+ "sync"
+ "unicode/utf8"
+)
+
+// EscapeCodes contains escape sequences that can be written to the terminal in
+// order to achieve different styles of text.
+type EscapeCodes struct {
+ // Foreground colors
+ Black, Red, Green, Yellow, Blue, Magenta, Cyan, White []byte
+
+ // Reset all attributes
+ Reset []byte
+}
+
+var vt100EscapeCodes = EscapeCodes{
+ Black: []byte{keyEscape, '[', '3', '0', 'm'},
+ Red: []byte{keyEscape, '[', '3', '1', 'm'},
+ Green: []byte{keyEscape, '[', '3', '2', 'm'},
+ Yellow: []byte{keyEscape, '[', '3', '3', 'm'},
+ Blue: []byte{keyEscape, '[', '3', '4', 'm'},
+ Magenta: []byte{keyEscape, '[', '3', '5', 'm'},
+ Cyan: []byte{keyEscape, '[', '3', '6', 'm'},
+ White: []byte{keyEscape, '[', '3', '7', 'm'},
+
+ Reset: []byte{keyEscape, '[', '0', 'm'},
+}
+
+// Terminal contains the state for running a VT100 terminal that is capable of
+// reading lines of input.
+type Terminal struct {
+ // AutoCompleteCallback, if non-null, is called for each keypress with
+ // the full input line and the current position of the cursor (in
+ // bytes, as an index into |line|). If it returns ok=false, the key
+ // press is processed normally. Otherwise it returns a replacement line
+ // and the new cursor position.
+ AutoCompleteCallback func(line string, pos int, key rune) (newLine string, newPos int, ok bool)
+
+ // Escape contains a pointer to the escape codes for this terminal.
+ // It's always a valid pointer, although the escape codes themselves
+ // may be empty if the terminal doesn't support them.
+ Escape *EscapeCodes
+
+ // lock protects the terminal and the state in this object from
+ // concurrent processing of a key press and a Write() call.
+ lock sync.Mutex
+
+ c io.ReadWriter
+ prompt []rune
+
+ // line is the current line being entered.
+ line []rune
+ // pos is the logical position of the cursor in line
+ pos int
+ // echo is true if local echo is enabled
+ echo bool
+ // pasteActive is true iff there is a bracketed paste operation in
+ // progress.
+ pasteActive bool
+
+ // cursorX contains the current X value of the cursor where the left
+ // edge is 0. cursorY contains the row number where the first row of
+ // the current line is 0.
+ cursorX, cursorY int
+ // maxLine is the greatest value of cursorY so far.
+ maxLine int
+
+ termWidth, termHeight int
+
+ // outBuf contains the terminal data to be sent.
+ outBuf []byte
+ // remainder contains the remainder of any partial key sequences after
+ // a read. It aliases into inBuf.
+ remainder []byte
+ inBuf [256]byte
+
+ // history contains previously entered commands so that they can be
+ // accessed with the up and down keys.
+ history stRingBuffer
+ // historyIndex stores the currently accessed history entry, where zero
+ // means the immediately previous entry.
+ historyIndex int
+ // When navigating up and down the history it's possible to return to
+ // the incomplete, initial line. That value is stored in
+ // historyPending.
+ historyPending string
+}
+
+// NewTerminal runs a VT100 terminal on the given ReadWriter. If the ReadWriter is
+// a local terminal, that terminal must first have been put into raw mode.
+// prompt is a string that is written at the start of each input line (i.e.
+// "> ").
+func NewTerminal(c io.ReadWriter, prompt string) *Terminal {
+ return &Terminal{
+ Escape: &vt100EscapeCodes,
+ c: c,
+ prompt: []rune(prompt),
+ termWidth: 80,
+ termHeight: 24,
+ echo: true,
+ historyIndex: -1,
+ }
+}
+
+const (
+ keyCtrlD = 4
+ keyCtrlU = 21
+ keyEnter = '\r'
+ keyEscape = 27
+ keyBackspace = 127
+ keyUnknown = 0xd800 /* UTF-16 surrogate area */ + iota
+ keyUp
+ keyDown
+ keyLeft
+ keyRight
+ keyAltLeft
+ keyAltRight
+ keyHome
+ keyEnd
+ keyDeleteWord
+ keyDeleteLine
+ keyClearScreen
+ keyPasteStart
+ keyPasteEnd
+)
+
+var (
+ crlf = []byte{'\r', '\n'}
+ pasteStart = []byte{keyEscape, '[', '2', '0', '0', '~'}
+ pasteEnd = []byte{keyEscape, '[', '2', '0', '1', '~'}
+)
+
+// bytesToKey tries to parse a key sequence from b. If successful, it returns
+// the key and the remainder of the input. Otherwise it returns utf8.RuneError.
+func bytesToKey(b []byte, pasteActive bool) (rune, []byte) {
+ if len(b) == 0 {
+ return utf8.RuneError, nil
+ }
+
+ if !pasteActive {
+ switch b[0] {
+ case 1: // ^A
+ return keyHome, b[1:]
+ case 5: // ^E
+ return keyEnd, b[1:]
+ case 8: // ^H
+ return keyBackspace, b[1:]
+ case 11: // ^K
+ return keyDeleteLine, b[1:]
+ case 12: // ^L
+ return keyClearScreen, b[1:]
+ case 23: // ^W
+ return keyDeleteWord, b[1:]
+ case 14: // ^N
+ return keyDown, b[1:]
+ case 16: // ^P
+ return keyUp, b[1:]
+ }
+ }
+
+ if b[0] != keyEscape {
+ if !utf8.FullRune(b) {
+ return utf8.RuneError, b
+ }
+ r, l := utf8.DecodeRune(b)
+ return r, b[l:]
+ }
+
+ if !pasteActive && len(b) >= 3 && b[0] == keyEscape && b[1] == '[' {
+ switch b[2] {
+ case 'A':
+ return keyUp, b[3:]
+ case 'B':
+ return keyDown, b[3:]
+ case 'C':
+ return keyRight, b[3:]
+ case 'D':
+ return keyLeft, b[3:]
+ case 'H':
+ return keyHome, b[3:]
+ case 'F':
+ return keyEnd, b[3:]
+ }
+ }
+
+ if !pasteActive && len(b) >= 6 && b[0] == keyEscape && b[1] == '[' && b[2] == '1' && b[3] == ';' && b[4] == '3' {
+ switch b[5] {
+ case 'C':
+ return keyAltRight, b[6:]
+ case 'D':
+ return keyAltLeft, b[6:]
+ }
+ }
+
+ if !pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteStart) {
+ return keyPasteStart, b[6:]
+ }
+
+ if pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteEnd) {
+ return keyPasteEnd, b[6:]
+ }
+
+ // If we get here then we have a key that we don't recognise, or a
+ // partial sequence. It's not clear how one should find the end of a
+ // sequence without knowing them all, but it seems that [a-zA-Z~] only
+ // appears at the end of a sequence.
+ for i, c := range b[0:] {
+ if c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c == '~' {
+ return keyUnknown, b[i+1:]
+ }
+ }
+
+ return utf8.RuneError, b
+}
+
+// queue appends data to the end of t.outBuf
+func (t *Terminal) queue(data []rune) {
+ t.outBuf = append(t.outBuf, []byte(string(data))...)
+}
+
+var eraseUnderCursor = []rune{' ', keyEscape, '[', 'D'}
+var space = []rune{' '}
+
+func isPrintable(key rune) bool {
+ isInSurrogateArea := key >= 0xd800 && key <= 0xdbff
+ return key >= 32 && !isInSurrogateArea
+}
+
+// moveCursorToPos appends data to t.outBuf which will move the cursor to the
+// given, logical position in the text.
+func (t *Terminal) moveCursorToPos(pos int) {
+ if !t.echo {
+ return
+ }
+
+ x := visualLength(t.prompt) + pos
+ y := x / t.termWidth
+ x = x % t.termWidth
+
+ up := 0
+ if y < t.cursorY {
+ up = t.cursorY - y
+ }
+
+ down := 0
+ if y > t.cursorY {
+ down = y - t.cursorY
+ }
+
+ left := 0
+ if x < t.cursorX {
+ left = t.cursorX - x
+ }
+
+ right := 0
+ if x > t.cursorX {
+ right = x - t.cursorX
+ }
+
+ t.cursorX = x
+ t.cursorY = y
+ t.move(up, down, left, right)
+}
+
+func (t *Terminal) move(up, down, left, right int) {
+ movement := make([]rune, 3*(up+down+left+right))
+ m := movement
+ for i := 0; i < up; i++ {
+ m[0] = keyEscape
+ m[1] = '['
+ m[2] = 'A'
+ m = m[3:]
+ }
+ for i := 0; i < down; i++ {
+ m[0] = keyEscape
+ m[1] = '['
+ m[2] = 'B'
+ m = m[3:]
+ }
+ for i := 0; i < left; i++ {
+ m[0] = keyEscape
+ m[1] = '['
+ m[2] = 'D'
+ m = m[3:]
+ }
+ for i := 0; i < right; i++ {
+ m[0] = keyEscape
+ m[1] = '['
+ m[2] = 'C'
+ m = m[3:]
+ }
+
+ t.queue(movement)
+}
+
+func (t *Terminal) clearLineToRight() {
+ op := []rune{keyEscape, '[', 'K'}
+ t.queue(op)
+}
+
+const maxLineLength = 4096
+
+func (t *Terminal) setLine(newLine []rune, newPos int) {
+ if t.echo {
+ t.moveCursorToPos(0)
+ t.writeLine(newLine)
+ for i := len(newLine); i < len(t.line); i++ {
+ t.writeLine(space)
+ }
+ t.moveCursorToPos(newPos)
+ }
+ t.line = newLine
+ t.pos = newPos
+}
+
+func (t *Terminal) advanceCursor(places int) {
+ t.cursorX += places
+ t.cursorY += t.cursorX / t.termWidth
+ if t.cursorY > t.maxLine {
+ t.maxLine = t.cursorY
+ }
+ t.cursorX = t.cursorX % t.termWidth
+
+ if places > 0 && t.cursorX == 0 {
+ // Normally terminals will advance the current position
+ // when writing a character. But that doesn't happen
+ // for the last character in a line. However, when
+ // writing a character (except a new line) that causes
+ // a line wrap, the position will be advanced two
+ // places.
+ //
+ // So, if we are stopping at the end of a line, we
+ // need to write a newline so that our cursor can be
+ // advanced to the next line.
+ t.outBuf = append(t.outBuf, '\r', '\n')
+ }
+}
+
+func (t *Terminal) eraseNPreviousChars(n int) {
+ if n == 0 {
+ return
+ }
+
+ if t.pos < n {
+ n = t.pos
+ }
+ t.pos -= n
+ t.moveCursorToPos(t.pos)
+
+ copy(t.line[t.pos:], t.line[n+t.pos:])
+ t.line = t.line[:len(t.line)-n]
+ if t.echo {
+ t.writeLine(t.line[t.pos:])
+ for i := 0; i < n; i++ {
+ t.queue(space)
+ }
+ t.advanceCursor(n)
+ t.moveCursorToPos(t.pos)
+ }
+}
+
+// countToLeftWord returns then number of characters from the cursor to the
+// start of the previous word.
+func (t *Terminal) countToLeftWord() int {
+ if t.pos == 0 {
+ return 0
+ }
+
+ pos := t.pos - 1
+ for pos > 0 {
+ if t.line[pos] != ' ' {
+ break
+ }
+ pos--
+ }
+ for pos > 0 {
+ if t.line[pos] == ' ' {
+ pos++
+ break
+ }
+ pos--
+ }
+
+ return t.pos - pos
+}
+
+// countToRightWord returns then number of characters from the cursor to the
+// start of the next word.
+func (t *Terminal) countToRightWord() int {
+ pos := t.pos
+ for pos < len(t.line) {
+ if t.line[pos] == ' ' {
+ break
+ }
+ pos++
+ }
+ for pos < len(t.line) {
+ if t.line[pos] != ' ' {
+ break
+ }
+ pos++
+ }
+ return pos - t.pos
+}
+
+// visualLength returns the number of visible glyphs in s.
+func visualLength(runes []rune) int {
+ inEscapeSeq := false
+ length := 0
+
+ for _, r := range runes {
+ switch {
+ case inEscapeSeq:
+ if (r >= 'a' && r <= 'z') || (r >= 'A' && r <= 'Z') {
+ inEscapeSeq = false
+ }
+ case r == '\x1b':
+ inEscapeSeq = true
+ default:
+ length++
+ }
+ }
+
+ return length
+}
+
+// handleKey processes the given key and, optionally, returns a line of text
+// that the user has entered.
+func (t *Terminal) handleKey(key rune) (line string, ok bool) {
+ if t.pasteActive && key != keyEnter {
+ t.addKeyToLine(key)
+ return
+ }
+
+ switch key {
+ case keyBackspace:
+ if t.pos == 0 {
+ return
+ }
+ t.eraseNPreviousChars(1)
+ case keyAltLeft:
+ // move left by a word.
+ t.pos -= t.countToLeftWord()
+ t.moveCursorToPos(t.pos)
+ case keyAltRight:
+ // move right by a word.
+ t.pos += t.countToRightWord()
+ t.moveCursorToPos(t.pos)
+ case keyLeft:
+ if t.pos == 0 {
+ return
+ }
+ t.pos--
+ t.moveCursorToPos(t.pos)
+ case keyRight:
+ if t.pos == len(t.line) {
+ return
+ }
+ t.pos++
+ t.moveCursorToPos(t.pos)
+ case keyHome:
+ if t.pos == 0 {
+ return
+ }
+ t.pos = 0
+ t.moveCursorToPos(t.pos)
+ case keyEnd:
+ if t.pos == len(t.line) {
+ return
+ }
+ t.pos = len(t.line)
+ t.moveCursorToPos(t.pos)
+ case keyUp:
+ entry, ok := t.history.NthPreviousEntry(t.historyIndex + 1)
+ if !ok {
+ return "", false
+ }
+ if t.historyIndex == -1 {
+ t.historyPending = string(t.line)
+ }
+ t.historyIndex++
+ runes := []rune(entry)
+ t.setLine(runes, len(runes))
+ case keyDown:
+ switch t.historyIndex {
+ case -1:
+ return
+ case 0:
+ runes := []rune(t.historyPending)
+ t.setLine(runes, len(runes))
+ t.historyIndex--
+ default:
+ entry, ok := t.history.NthPreviousEntry(t.historyIndex - 1)
+ if ok {
+ t.historyIndex--
+ runes := []rune(entry)
+ t.setLine(runes, len(runes))
+ }
+ }
+ case keyEnter:
+ t.moveCursorToPos(len(t.line))
+ t.queue([]rune("\r\n"))
+ line = string(t.line)
+ ok = true
+ t.line = t.line[:0]
+ t.pos = 0
+ t.cursorX = 0
+ t.cursorY = 0
+ t.maxLine = 0
+ case keyDeleteWord:
+ // Delete zero or more spaces and then one or more characters.
+ t.eraseNPreviousChars(t.countToLeftWord())
+ case keyDeleteLine:
+ // Delete everything from the current cursor position to the
+ // end of line.
+ for i := t.pos; i < len(t.line); i++ {
+ t.queue(space)
+ t.advanceCursor(1)
+ }
+ t.line = t.line[:t.pos]
+ t.moveCursorToPos(t.pos)
+ case keyCtrlD:
+ // Erase the character under the current position.
+ // The EOF case when the line is empty is handled in
+ // readLine().
+ if t.pos < len(t.line) {
+ t.pos++
+ t.eraseNPreviousChars(1)
+ }
+ case keyCtrlU:
+ t.eraseNPreviousChars(t.pos)
+ case keyClearScreen:
+ // Erases the screen and moves the cursor to the home position.
+ t.queue([]rune("\x1b[2J\x1b[H"))
+ t.queue(t.prompt)
+ t.cursorX, t.cursorY = 0, 0
+ t.advanceCursor(visualLength(t.prompt))
+ t.setLine(t.line, t.pos)
+ default:
+ if t.AutoCompleteCallback != nil {
+ prefix := string(t.line[:t.pos])
+ suffix := string(t.line[t.pos:])
+
+ t.lock.Unlock()
+ newLine, newPos, completeOk := t.AutoCompleteCallback(prefix+suffix, len(prefix), key)
+ t.lock.Lock()
+
+ if completeOk {
+ t.setLine([]rune(newLine), utf8.RuneCount([]byte(newLine)[:newPos]))
+ return
+ }
+ }
+ if !isPrintable(key) {
+ return
+ }
+ if len(t.line) == maxLineLength {
+ return
+ }
+ t.addKeyToLine(key)
+ }
+ return
+}
+
+// addKeyToLine inserts the given key at the current position in the current
+// line.
+func (t *Terminal) addKeyToLine(key rune) {
+ if len(t.line) == cap(t.line) {
+ newLine := make([]rune, len(t.line), 2*(1+len(t.line)))
+ copy(newLine, t.line)
+ t.line = newLine
+ }
+ t.line = t.line[:len(t.line)+1]
+ copy(t.line[t.pos+1:], t.line[t.pos:])
+ t.line[t.pos] = key
+ if t.echo {
+ t.writeLine(t.line[t.pos:])
+ }
+ t.pos++
+ t.moveCursorToPos(t.pos)
+}
+
+func (t *Terminal) writeLine(line []rune) {
+ for len(line) != 0 {
+ remainingOnLine := t.termWidth - t.cursorX
+ todo := len(line)
+ if todo > remainingOnLine {
+ todo = remainingOnLine
+ }
+ t.queue(line[:todo])
+ t.advanceCursor(visualLength(line[:todo]))
+ line = line[todo:]
+ }
+}
+
+// writeWithCRLF writes buf to w but replaces all occurrences of \n with \r\n.
+func writeWithCRLF(w io.Writer, buf []byte) (n int, err error) {
+ for len(buf) > 0 {
+ i := bytes.IndexByte(buf, '\n')
+ todo := len(buf)
+ if i >= 0 {
+ todo = i
+ }
+
+ var nn int
+ nn, err = w.Write(buf[:todo])
+ n += nn
+ if err != nil {
+ return n, err
+ }
+ buf = buf[todo:]
+
+ if i >= 0 {
+ if _, err = w.Write(crlf); err != nil {
+ return n, err
+ }
+ n++
+ buf = buf[1:]
+ }
+ }
+
+ return n, nil
+}
+
+func (t *Terminal) Write(buf []byte) (n int, err error) {
+ t.lock.Lock()
+ defer t.lock.Unlock()
+
+ if t.cursorX == 0 && t.cursorY == 0 {
+ // This is the easy case: there's nothing on the screen that we
+ // have to move out of the way.
+ return writeWithCRLF(t.c, buf)
+ }
+
+ // We have a prompt and possibly user input on the screen. We
+ // have to clear it first.
+ t.move(0 /* up */, 0 /* down */, t.cursorX /* left */, 0 /* right */)
+ t.cursorX = 0
+ t.clearLineToRight()
+
+ for t.cursorY > 0 {
+ t.move(1 /* up */, 0, 0, 0)
+ t.cursorY--
+ t.clearLineToRight()
+ }
+
+ if _, err = t.c.Write(t.outBuf); err != nil {
+ return
+ }
+ t.outBuf = t.outBuf[:0]
+
+ if n, err = writeWithCRLF(t.c, buf); err != nil {
+ return
+ }
+
+ t.writeLine(t.prompt)
+ if t.echo {
+ t.writeLine(t.line)
+ }
+
+ t.moveCursorToPos(t.pos)
+
+ if _, err = t.c.Write(t.outBuf); err != nil {
+ return
+ }
+ t.outBuf = t.outBuf[:0]
+ return
+}
+
+// ReadPassword temporarily changes the prompt and reads a password, without
+// echo, from the terminal.
+func (t *Terminal) ReadPassword(prompt string) (line string, err error) {
+ t.lock.Lock()
+ defer t.lock.Unlock()
+
+ oldPrompt := t.prompt
+ t.prompt = []rune(prompt)
+ t.echo = false
+
+ line, err = t.readLine()
+
+ t.prompt = oldPrompt
+ t.echo = true
+
+ return
+}
+
+// ReadLine returns a line of input from the terminal.
+func (t *Terminal) ReadLine() (line string, err error) {
+ t.lock.Lock()
+ defer t.lock.Unlock()
+
+ return t.readLine()
+}
+
+func (t *Terminal) readLine() (line string, err error) {
+ // t.lock must be held at this point
+
+ if t.cursorX == 0 && t.cursorY == 0 {
+ t.writeLine(t.prompt)
+ t.c.Write(t.outBuf)
+ t.outBuf = t.outBuf[:0]
+ }
+
+ lineIsPasted := t.pasteActive
+
+ for {
+ rest := t.remainder
+ lineOk := false
+ for !lineOk {
+ var key rune
+ key, rest = bytesToKey(rest, t.pasteActive)
+ if key == utf8.RuneError {
+ break
+ }
+ if !t.pasteActive {
+ if key == keyCtrlD {
+ if len(t.line) == 0 {
+ return "", io.EOF
+ }
+ }
+ if key == keyPasteStart {
+ t.pasteActive = true
+ if len(t.line) == 0 {
+ lineIsPasted = true
+ }
+ continue
+ }
+ } else if key == keyPasteEnd {
+ t.pasteActive = false
+ continue
+ }
+ if !t.pasteActive {
+ lineIsPasted = false
+ }
+ line, lineOk = t.handleKey(key)
+ }
+ if len(rest) > 0 {
+ n := copy(t.inBuf[:], rest)
+ t.remainder = t.inBuf[:n]
+ } else {
+ t.remainder = nil
+ }
+ t.c.Write(t.outBuf)
+ t.outBuf = t.outBuf[:0]
+ if lineOk {
+ if t.echo {
+ t.historyIndex = -1
+ t.history.Add(line)
+ }
+ if lineIsPasted {
+ err = ErrPasteIndicator
+ }
+ return
+ }
+
+ // t.remainder is a slice at the beginning of t.inBuf
+ // containing a partial key sequence
+ readBuf := t.inBuf[len(t.remainder):]
+ var n int
+
+ t.lock.Unlock()
+ n, err = t.c.Read(readBuf)
+ t.lock.Lock()
+
+ if err != nil {
+ return
+ }
+
+ t.remainder = t.inBuf[:n+len(t.remainder)]
+ }
+}
+
+// SetPrompt sets the prompt to be used when reading subsequent lines.
+func (t *Terminal) SetPrompt(prompt string) {
+ t.lock.Lock()
+ defer t.lock.Unlock()
+
+ t.prompt = []rune(prompt)
+}
+
+func (t *Terminal) clearAndRepaintLinePlusNPrevious(numPrevLines int) {
+ // Move cursor to column zero at the start of the line.
+ t.move(t.cursorY, 0, t.cursorX, 0)
+ t.cursorX, t.cursorY = 0, 0
+ t.clearLineToRight()
+ for t.cursorY < numPrevLines {
+ // Move down a line
+ t.move(0, 1, 0, 0)
+ t.cursorY++
+ t.clearLineToRight()
+ }
+ // Move back to beginning.
+ t.move(t.cursorY, 0, 0, 0)
+ t.cursorX, t.cursorY = 0, 0
+
+ t.queue(t.prompt)
+ t.advanceCursor(visualLength(t.prompt))
+ t.writeLine(t.line)
+ t.moveCursorToPos(t.pos)
+}
+
+func (t *Terminal) SetSize(width, height int) error {
+ t.lock.Lock()
+ defer t.lock.Unlock()
+
+ if width == 0 {
+ width = 1
+ }
+
+ oldWidth := t.termWidth
+ t.termWidth, t.termHeight = width, height
+
+ switch {
+ case width == oldWidth:
+ // If the width didn't change then nothing else needs to be
+ // done.
+ return nil
+ case len(t.line) == 0 && t.cursorX == 0 && t.cursorY == 0:
+ // If there is nothing on current line and no prompt printed,
+ // just do nothing
+ return nil
+ case width < oldWidth:
+ // Some terminals (e.g. xterm) will truncate lines that were
+ // too long when shinking. Others, (e.g. gnome-terminal) will
+ // attempt to wrap them. For the former, repainting t.maxLine
+ // works great, but that behaviour goes badly wrong in the case
+ // of the latter because they have doubled every full line.
+
+ // We assume that we are working on a terminal that wraps lines
+ // and adjust the cursor position based on every previous line
+ // wrapping and turning into two. This causes the prompt on
+ // xterms to move upwards, which isn't great, but it avoids a
+ // huge mess with gnome-terminal.
+ if t.cursorX >= t.termWidth {
+ t.cursorX = t.termWidth - 1
+ }
+ t.cursorY *= 2
+ t.clearAndRepaintLinePlusNPrevious(t.maxLine * 2)
+ case width > oldWidth:
+ // If the terminal expands then our position calculations will
+ // be wrong in the future because we think the cursor is
+ // |t.pos| chars into the string, but there will be a gap at
+ // the end of any wrapped line.
+ //
+ // But the position will actually be correct until we move, so
+ // we can move back to the beginning and repaint everything.
+ t.clearAndRepaintLinePlusNPrevious(t.maxLine)
+ }
+
+ _, err := t.c.Write(t.outBuf)
+ t.outBuf = t.outBuf[:0]
+ return err
+}
+
+type pasteIndicatorError struct{}
+
+func (pasteIndicatorError) Error() string {
+ return "terminal: ErrPasteIndicator not correctly handled"
+}
+
+// ErrPasteIndicator may be returned from ReadLine as the error, in addition
+// to valid line data. It indicates that bracketed paste mode is enabled and
+// that the returned line consists only of pasted data. Programs may wish to
+// interpret pasted data more literally than typed data.
+var ErrPasteIndicator = pasteIndicatorError{}
+
+// SetBracketedPasteMode requests that the terminal bracket paste operations
+// with markers. Not all terminals support this but, if it is supported, then
+// enabling this mode will stop any autocomplete callback from running due to
+// pastes. Additionally, any lines that are completely pasted will be returned
+// from ReadLine with the error set to ErrPasteIndicator.
+func (t *Terminal) SetBracketedPasteMode(on bool) {
+ if on {
+ io.WriteString(t.c, "\x1b[?2004h")
+ } else {
+ io.WriteString(t.c, "\x1b[?2004l")
+ }
+}
+
+// stRingBuffer is a ring buffer of strings.
+type stRingBuffer struct {
+ // entries contains max elements.
+ entries []string
+ max int
+ // head contains the index of the element most recently added to the ring.
+ head int
+ // size contains the number of elements in the ring.
+ size int
+}
+
+func (s *stRingBuffer) Add(a string) {
+ if s.entries == nil {
+ const defaultNumEntries = 100
+ s.entries = make([]string, defaultNumEntries)
+ s.max = defaultNumEntries
+ }
+
+ s.head = (s.head + 1) % s.max
+ s.entries[s.head] = a
+ if s.size < s.max {
+ s.size++
+ }
+}
+
+// NthPreviousEntry returns the value passed to the nth previous call to Add.
+// If n is zero then the immediately prior value is returned, if one, then the
+// next most recent, and so on. If such an element doesn't exist then ok is
+// false.
+func (s *stRingBuffer) NthPreviousEntry(n int) (value string, ok bool) {
+ if n >= s.size {
+ return "", false
+ }
+ index := s.head - n
+ if index < 0 {
+ index += s.max
+ }
+ return s.entries[index], true
+}
+
+// readPasswordLine reads from reader until it finds \n or io.EOF.
+// The slice returned does not include the \n.
+// readPasswordLine also ignores any \r it finds.
+func readPasswordLine(reader io.Reader) ([]byte, error) {
+ var buf [1]byte
+ var ret []byte
+
+ for {
+ n, err := reader.Read(buf[:])
+ if n > 0 {
+ switch buf[0] {
+ case '\n':
+ return ret, nil
+ case '\r':
+ // remove \r from passwords on Windows
+ default:
+ ret = append(ret, buf[0])
+ }
+ continue
+ }
+ if err != nil {
+ if err == io.EOF && len(ret) > 0 {
+ return ret, nil
+ }
+ return ret, err
+ }
+ }
+}
diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util.go b/vendor/golang.org/x/crypto/ssh/terminal/util.go
new file mode 100644
index 0000000000..3911040840
--- /dev/null
+++ b/vendor/golang.org/x/crypto/ssh/terminal/util.go
@@ -0,0 +1,114 @@
+// 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.
+
+// +build aix darwin dragonfly freebsd linux,!appengine netbsd openbsd
+
+// Package terminal provides support functions for dealing with terminals, as
+// commonly found on UNIX systems.
+//
+// Putting a terminal into raw mode is the most common requirement:
+//
+// oldState, err := terminal.MakeRaw(0)
+// if err != nil {
+// panic(err)
+// }
+// defer terminal.Restore(0, oldState)
+package terminal // import "golang.org/x/crypto/ssh/terminal"
+
+import (
+ "golang.org/x/sys/unix"
+)
+
+// State contains the state of a terminal.
+type State struct {
+ termios unix.Termios
+}
+
+// IsTerminal returns whether the given file descriptor is a terminal.
+func IsTerminal(fd int) bool {
+ _, err := unix.IoctlGetTermios(fd, ioctlReadTermios)
+ return err == nil
+}
+
+// MakeRaw put the terminal connected to the given file descriptor into raw
+// mode and returns the previous state of the terminal so that it can be
+// restored.
+func MakeRaw(fd int) (*State, error) {
+ termios, err := unix.IoctlGetTermios(fd, ioctlReadTermios)
+ if err != nil {
+ return nil, err
+ }
+
+ oldState := State{termios: *termios}
+
+ // This attempts to replicate the behaviour documented for cfmakeraw in
+ // the termios(3) manpage.
+ termios.Iflag &^= unix.IGNBRK | unix.BRKINT | unix.PARMRK | unix.ISTRIP | unix.INLCR | unix.IGNCR | unix.ICRNL | unix.IXON
+ termios.Oflag &^= unix.OPOST
+ termios.Lflag &^= unix.ECHO | unix.ECHONL | unix.ICANON | unix.ISIG | unix.IEXTEN
+ termios.Cflag &^= unix.CSIZE | unix.PARENB
+ termios.Cflag |= unix.CS8
+ termios.Cc[unix.VMIN] = 1
+ termios.Cc[unix.VTIME] = 0
+ if err := unix.IoctlSetTermios(fd, ioctlWriteTermios, termios); err != nil {
+ return nil, err
+ }
+
+ return &oldState, nil
+}
+
+// GetState returns the current state of a terminal which may be useful to
+// restore the terminal after a signal.
+func GetState(fd int) (*State, error) {
+ termios, err := unix.IoctlGetTermios(fd, ioctlReadTermios)
+ if err != nil {
+ return nil, err
+ }
+
+ return &State{termios: *termios}, nil
+}
+
+// Restore restores the terminal connected to the given file descriptor to a
+// previous state.
+func Restore(fd int, state *State) error {
+ return unix.IoctlSetTermios(fd, ioctlWriteTermios, &state.termios)
+}
+
+// GetSize returns the dimensions of the given terminal.
+func GetSize(fd int) (width, height int, err error) {
+ ws, err := unix.IoctlGetWinsize(fd, unix.TIOCGWINSZ)
+ if err != nil {
+ return -1, -1, err
+ }
+ return int(ws.Col), int(ws.Row), nil
+}
+
+// passwordReader is an io.Reader that reads from a specific file descriptor.
+type passwordReader int
+
+func (r passwordReader) Read(buf []byte) (int, error) {
+ return unix.Read(int(r), buf)
+}
+
+// ReadPassword reads a line of input from a terminal without local echo. This
+// is commonly used for inputting passwords and other sensitive data. The slice
+// returned does not include the \n.
+func ReadPassword(fd int) ([]byte, error) {
+ termios, err := unix.IoctlGetTermios(fd, ioctlReadTermios)
+ if err != nil {
+ return nil, err
+ }
+
+ newState := *termios
+ newState.Lflag &^= unix.ECHO
+ newState.Lflag |= unix.ICANON | unix.ISIG
+ newState.Iflag |= unix.ICRNL
+ if err := unix.IoctlSetTermios(fd, ioctlWriteTermios, &newState); err != nil {
+ return nil, err
+ }
+
+ defer unix.IoctlSetTermios(fd, ioctlWriteTermios, termios)
+
+ return readPasswordLine(passwordReader(fd))
+}
diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_aix.go b/vendor/golang.org/x/crypto/ssh/terminal/util_aix.go
new file mode 100644
index 0000000000..dfcd627859
--- /dev/null
+++ b/vendor/golang.org/x/crypto/ssh/terminal/util_aix.go
@@ -0,0 +1,12 @@
+// Copyright 2018 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 aix
+
+package terminal
+
+import "golang.org/x/sys/unix"
+
+const ioctlReadTermios = unix.TCGETS
+const ioctlWriteTermios = unix.TCSETS
diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_bsd.go b/vendor/golang.org/x/crypto/ssh/terminal/util_bsd.go
new file mode 100644
index 0000000000..cb23a59049
--- /dev/null
+++ b/vendor/golang.org/x/crypto/ssh/terminal/util_bsd.go
@@ -0,0 +1,12 @@
+// 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.
+
+// +build darwin dragonfly freebsd netbsd openbsd
+
+package terminal
+
+import "golang.org/x/sys/unix"
+
+const ioctlReadTermios = unix.TIOCGETA
+const ioctlWriteTermios = unix.TIOCSETA
diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_linux.go b/vendor/golang.org/x/crypto/ssh/terminal/util_linux.go
new file mode 100644
index 0000000000..5fadfe8a1d
--- /dev/null
+++ b/vendor/golang.org/x/crypto/ssh/terminal/util_linux.go
@@ -0,0 +1,10 @@
+// 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 terminal
+
+import "golang.org/x/sys/unix"
+
+const ioctlReadTermios = unix.TCGETS
+const ioctlWriteTermios = unix.TCSETS
diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_plan9.go b/vendor/golang.org/x/crypto/ssh/terminal/util_plan9.go
new file mode 100644
index 0000000000..9317ac7ede
--- /dev/null
+++ b/vendor/golang.org/x/crypto/ssh/terminal/util_plan9.go
@@ -0,0 +1,58 @@
+// Copyright 2016 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 terminal provides support functions for dealing with terminals, as
+// commonly found on UNIX systems.
+//
+// Putting a terminal into raw mode is the most common requirement:
+//
+// oldState, err := terminal.MakeRaw(0)
+// if err != nil {
+// panic(err)
+// }
+// defer terminal.Restore(0, oldState)
+package terminal
+
+import (
+ "fmt"
+ "runtime"
+)
+
+type State struct{}
+
+// IsTerminal returns whether the given file descriptor is a terminal.
+func IsTerminal(fd int) bool {
+ return false
+}
+
+// MakeRaw put the terminal connected to the given file descriptor into raw
+// mode and returns the previous state of the terminal so that it can be
+// restored.
+func MakeRaw(fd int) (*State, error) {
+ return nil, fmt.Errorf("terminal: MakeRaw not implemented on %s/%s", runtime.GOOS, runtime.GOARCH)
+}
+
+// GetState returns the current state of a terminal which may be useful to
+// restore the terminal after a signal.
+func GetState(fd int) (*State, error) {
+ return nil, fmt.Errorf("terminal: GetState not implemented on %s/%s", runtime.GOOS, runtime.GOARCH)
+}
+
+// Restore restores the terminal connected to the given file descriptor to a
+// previous state.
+func Restore(fd int, state *State) error {
+ return fmt.Errorf("terminal: Restore not implemented on %s/%s", runtime.GOOS, runtime.GOARCH)
+}
+
+// GetSize returns the dimensions of the given terminal.
+func GetSize(fd int) (width, height int, err error) {
+ return 0, 0, fmt.Errorf("terminal: GetSize not implemented on %s/%s", runtime.GOOS, runtime.GOARCH)
+}
+
+// ReadPassword reads a line of input from a terminal without local echo. This
+// is commonly used for inputting passwords and other sensitive data. The slice
+// returned does not include the \n.
+func ReadPassword(fd int) ([]byte, error) {
+ return nil, fmt.Errorf("terminal: ReadPassword not implemented on %s/%s", runtime.GOOS, runtime.GOARCH)
+}
diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_solaris.go b/vendor/golang.org/x/crypto/ssh/terminal/util_solaris.go
new file mode 100644
index 0000000000..3d5f06a9f0
--- /dev/null
+++ b/vendor/golang.org/x/crypto/ssh/terminal/util_solaris.go
@@ -0,0 +1,124 @@
+// 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 solaris
+
+package terminal // import "golang.org/x/crypto/ssh/terminal"
+
+import (
+ "golang.org/x/sys/unix"
+ "io"
+ "syscall"
+)
+
+// State contains the state of a terminal.
+type State struct {
+ termios unix.Termios
+}
+
+// IsTerminal returns whether the given file descriptor is a terminal.
+func IsTerminal(fd int) bool {
+ _, err := unix.IoctlGetTermio(fd, unix.TCGETA)
+ return err == nil
+}
+
+// ReadPassword reads a line of input from a terminal without local echo. This
+// is commonly used for inputting passwords and other sensitive data. The slice
+// returned does not include the \n.
+func ReadPassword(fd int) ([]byte, error) {
+ // see also: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libast/common/uwin/getpass.c
+ val, err := unix.IoctlGetTermios(fd, unix.TCGETS)
+ if err != nil {
+ return nil, err
+ }
+ oldState := *val
+
+ newState := oldState
+ newState.Lflag &^= syscall.ECHO
+ newState.Lflag |= syscall.ICANON | syscall.ISIG
+ newState.Iflag |= syscall.ICRNL
+ err = unix.IoctlSetTermios(fd, unix.TCSETS, &newState)
+ if err != nil {
+ return nil, err
+ }
+
+ defer unix.IoctlSetTermios(fd, unix.TCSETS, &oldState)
+
+ var buf [16]byte
+ var ret []byte
+ for {
+ n, err := syscall.Read(fd, buf[:])
+ if err != nil {
+ return nil, err
+ }
+ if n == 0 {
+ if len(ret) == 0 {
+ return nil, io.EOF
+ }
+ break
+ }
+ if buf[n-1] == '\n' {
+ n--
+ }
+ ret = append(ret, buf[:n]...)
+ if n < len(buf) {
+ break
+ }
+ }
+
+ return ret, nil
+}
+
+// MakeRaw puts the terminal connected to the given file descriptor into raw
+// mode and returns the previous state of the terminal so that it can be
+// restored.
+// see http://cr.illumos.org/~webrev/andy_js/1060/
+func MakeRaw(fd int) (*State, error) {
+ termios, err := unix.IoctlGetTermios(fd, unix.TCGETS)
+ if err != nil {
+ return nil, err
+ }
+
+ oldState := State{termios: *termios}
+
+ termios.Iflag &^= unix.IGNBRK | unix.BRKINT | unix.PARMRK | unix.ISTRIP | unix.INLCR | unix.IGNCR | unix.ICRNL | unix.IXON
+ termios.Oflag &^= unix.OPOST
+ termios.Lflag &^= unix.ECHO | unix.ECHONL | unix.ICANON | unix.ISIG | unix.IEXTEN
+ termios.Cflag &^= unix.CSIZE | unix.PARENB
+ termios.Cflag |= unix.CS8
+ termios.Cc[unix.VMIN] = 1
+ termios.Cc[unix.VTIME] = 0
+
+ if err := unix.IoctlSetTermios(fd, unix.TCSETS, termios); err != nil {
+ return nil, err
+ }
+
+ return &oldState, nil
+}
+
+// Restore restores the terminal connected to the given file descriptor to a
+// previous state.
+func Restore(fd int, oldState *State) error {
+ return unix.IoctlSetTermios(fd, unix.TCSETS, &oldState.termios)
+}
+
+// GetState returns the current state of a terminal which may be useful to
+// restore the terminal after a signal.
+func GetState(fd int) (*State, error) {
+ termios, err := unix.IoctlGetTermios(fd, unix.TCGETS)
+ if err != nil {
+ return nil, err
+ }
+
+ return &State{termios: *termios}, nil
+}
+
+// GetSize returns the dimensions of the given terminal.
+func GetSize(fd int) (width, height int, err error) {
+ ws, err := unix.IoctlGetWinsize(fd, unix.TIOCGWINSZ)
+ if err != nil {
+ return 0, 0, err
+ }
+ return int(ws.Col), int(ws.Row), nil
+}
diff --git a/vendor/golang.org/x/crypto/ssh/terminal/util_windows.go b/vendor/golang.org/x/crypto/ssh/terminal/util_windows.go
new file mode 100644
index 0000000000..6cb8a95038
--- /dev/null
+++ b/vendor/golang.org/x/crypto/ssh/terminal/util_windows.go
@@ -0,0 +1,103 @@
+// 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.
+
+// +build windows
+
+// Package terminal provides support functions for dealing with terminals, as
+// commonly found on UNIX systems.
+//
+// Putting a terminal into raw mode is the most common requirement:
+//
+// oldState, err := terminal.MakeRaw(0)
+// if err != nil {
+// panic(err)
+// }
+// defer terminal.Restore(0, oldState)
+package terminal
+
+import (
+ "os"
+
+ "golang.org/x/sys/windows"
+)
+
+type State struct {
+ mode uint32
+}
+
+// IsTerminal returns whether the given file descriptor is a terminal.
+func IsTerminal(fd int) bool {
+ var st uint32
+ err := windows.GetConsoleMode(windows.Handle(fd), &st)
+ return err == nil
+}
+
+// MakeRaw put the terminal connected to the given file descriptor into raw
+// mode and returns the previous state of the terminal so that it can be
+// restored.
+func MakeRaw(fd int) (*State, error) {
+ var st uint32
+ if err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil {
+ return nil, err
+ }
+ raw := st &^ (windows.ENABLE_ECHO_INPUT | windows.ENABLE_PROCESSED_INPUT | windows.ENABLE_LINE_INPUT | windows.ENABLE_PROCESSED_OUTPUT)
+ if err := windows.SetConsoleMode(windows.Handle(fd), raw); err != nil {
+ return nil, err
+ }
+ return &State{st}, nil
+}
+
+// GetState returns the current state of a terminal which may be useful to
+// restore the terminal after a signal.
+func GetState(fd int) (*State, error) {
+ var st uint32
+ if err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil {
+ return nil, err
+ }
+ return &State{st}, nil
+}
+
+// Restore restores the terminal connected to the given file descriptor to a
+// previous state.
+func Restore(fd int, state *State) error {
+ return windows.SetConsoleMode(windows.Handle(fd), state.mode)
+}
+
+// GetSize returns the dimensions of the given terminal.
+func GetSize(fd int) (width, height int, err error) {
+ var info windows.ConsoleScreenBufferInfo
+ if err := windows.GetConsoleScreenBufferInfo(windows.Handle(fd), &info); err != nil {
+ return 0, 0, err
+ }
+ return int(info.Size.X), int(info.Size.Y), nil
+}
+
+// ReadPassword reads a line of input from a terminal without local echo. This
+// is commonly used for inputting passwords and other sensitive data. The slice
+// returned does not include the \n.
+func ReadPassword(fd int) ([]byte, error) {
+ var st uint32
+ if err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil {
+ return nil, err
+ }
+ old := st
+
+ st &^= (windows.ENABLE_ECHO_INPUT)
+ st |= (windows.ENABLE_PROCESSED_INPUT | windows.ENABLE_LINE_INPUT | windows.ENABLE_PROCESSED_OUTPUT)
+ if err := windows.SetConsoleMode(windows.Handle(fd), st); err != nil {
+ return nil, err
+ }
+
+ defer windows.SetConsoleMode(windows.Handle(fd), old)
+
+ var h windows.Handle
+ p, _ := windows.GetCurrentProcess()
+ if err := windows.DuplicateHandle(p, windows.Handle(fd), p, &h, 0, false, windows.DUPLICATE_SAME_ACCESS); err != nil {
+ return nil, err
+ }
+
+ f := os.NewFile(uintptr(h), "stdin")
+ defer f.Close()
+ return readPasswordLine(f)
+}
diff --git a/vendor/golang.org/x/net/AUTHORS b/vendor/golang.org/x/net/AUTHORS
new file mode 100644
index 0000000000..15167cd746
--- /dev/null
+++ b/vendor/golang.org/x/net/AUTHORS
@@ -0,0 +1,3 @@
+# This source code refers to The Go Authors for copyright purposes.
+# The master list of authors is in the main Go distribution,
+# visible at http://tip.golang.org/AUTHORS.
diff --git a/vendor/golang.org/x/net/CONTRIBUTORS b/vendor/golang.org/x/net/CONTRIBUTORS
new file mode 100644
index 0000000000..1c4577e968
--- /dev/null
+++ b/vendor/golang.org/x/net/CONTRIBUTORS
@@ -0,0 +1,3 @@
+# This source code was written by the Go contributors.
+# The master list of contributors is in the main Go distribution,
+# visible at http://tip.golang.org/CONTRIBUTORS.
diff --git a/vendor/golang.org/x/net/LICENSE b/vendor/golang.org/x/net/LICENSE
new file mode 100644
index 0000000000..6a66aea5ea
--- /dev/null
+++ b/vendor/golang.org/x/net/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) 2009 The Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/golang.org/x/net/PATENTS b/vendor/golang.org/x/net/PATENTS
new file mode 100644
index 0000000000..733099041f
--- /dev/null
+++ b/vendor/golang.org/x/net/PATENTS
@@ -0,0 +1,22 @@
+Additional IP Rights Grant (Patents)
+
+"This implementation" means the copyrightable works distributed by
+Google as part of the Go project.
+
+Google hereby grants to You a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable (except as stated in this section)
+patent license to make, have made, use, offer to sell, sell, import,
+transfer and otherwise run, modify and propagate the contents of this
+implementation of Go, where such license applies only to those patent
+claims, both currently owned or controlled by Google and acquired in
+the future, licensable by Google that are necessarily infringed by this
+implementation of Go. This grant does not include claims that would be
+infringed only as a consequence of further modification of this
+implementation. If you or your agent or exclusive licensee institute or
+order or agree to the institution of patent litigation against any
+entity (including a cross-claim or counterclaim in a lawsuit) alleging
+that this implementation of Go or any code incorporated within this
+implementation of Go constitutes direct or contributory patent
+infringement, or inducement of patent infringement, then any patent
+rights granted to you under this License for this implementation of Go
+shall terminate as of the date such litigation is filed.
diff --git a/vendor/golang.org/x/net/context/context.go b/vendor/golang.org/x/net/context/context.go
new file mode 100644
index 0000000000..a3c021d3f8
--- /dev/null
+++ b/vendor/golang.org/x/net/context/context.go
@@ -0,0 +1,56 @@
+// 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 context defines the Context type, which carries deadlines,
+// cancelation signals, and other request-scoped values across API boundaries
+// and between processes.
+// As of Go 1.7 this package is available in the standard library under the
+// name context. https://golang.org/pkg/context.
+//
+// Incoming requests to a server should create a Context, and outgoing calls to
+// servers should accept a Context. The chain of function calls between must
+// propagate the Context, optionally replacing it with a modified copy created
+// using WithDeadline, WithTimeout, WithCancel, or WithValue.
+//
+// Programs that use Contexts should follow these rules to keep interfaces
+// consistent across packages and enable static analysis tools to check context
+// propagation:
+//
+// Do not store Contexts inside a struct type; instead, pass a Context
+// explicitly to each function that needs it. The Context should be the first
+// parameter, typically named ctx:
+//
+// func DoSomething(ctx context.Context, arg Arg) error {
+// // ... use ctx ...
+// }
+//
+// Do not pass a nil Context, even if a function permits it. Pass context.TODO
+// if you are unsure about which Context to use.
+//
+// Use context Values only for request-scoped data that transits processes and
+// APIs, not for passing optional parameters to functions.
+//
+// The same Context may be passed to functions running in different goroutines;
+// Contexts are safe for simultaneous use by multiple goroutines.
+//
+// See http://blog.golang.org/context for example code for a server that uses
+// Contexts.
+package context // import "golang.org/x/net/context"
+
+// Background returns a non-nil, empty Context. It is never canceled, has no
+// values, and has no deadline. It is typically used by the main function,
+// initialization, and tests, and as the top-level Context for incoming
+// requests.
+func Background() Context {
+ return background
+}
+
+// TODO returns a non-nil, empty Context. Code should use context.TODO when
+// it's unclear which Context to use or it is not yet available (because the
+// surrounding function has not yet been extended to accept a Context
+// parameter). TODO is recognized by static analysis tools that determine
+// whether Contexts are propagated correctly in a program.
+func TODO() Context {
+ return todo
+}
diff --git a/vendor/golang.org/x/net/context/go17.go b/vendor/golang.org/x/net/context/go17.go
new file mode 100644
index 0000000000..d20f52b7de
--- /dev/null
+++ b/vendor/golang.org/x/net/context/go17.go
@@ -0,0 +1,72 @@
+// Copyright 2016 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 go1.7
+
+package context
+
+import (
+ "context" // standard library's context, as of Go 1.7
+ "time"
+)
+
+var (
+ todo = context.TODO()
+ background = context.Background()
+)
+
+// Canceled is the error returned by Context.Err when the context is canceled.
+var Canceled = context.Canceled
+
+// DeadlineExceeded is the error returned by Context.Err when the context's
+// deadline passes.
+var DeadlineExceeded = context.DeadlineExceeded
+
+// 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) {
+ ctx, f := context.WithCancel(parent)
+ return ctx, CancelFunc(f)
+}
+
+// WithDeadline returns a copy of the parent context with the deadline adjusted
+// to be no later than d. If the parent's deadline is already earlier than d,
+// WithDeadline(parent, d) is semantically equivalent to parent. The returned
+// context's Done channel is closed when the deadline expires, 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 WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) {
+ ctx, f := context.WithDeadline(parent, deadline)
+ return ctx, CancelFunc(f)
+}
+
+// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)).
+//
+// 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)
+// defer cancel() // releases resources if slowOperation completes before timeout elapses
+// return slowOperation(ctx)
+// }
+func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) {
+ return WithDeadline(parent, time.Now().Add(timeout))
+}
+
+// WithValue returns a copy of parent in which the value associated with key is
+// val.
+//
+// Use context Values only for request-scoped data that transits processes and
+// APIs, not for passing optional parameters to functions.
+func WithValue(parent Context, key interface{}, val interface{}) Context {
+ return context.WithValue(parent, key, val)
+}
diff --git a/vendor/golang.org/x/net/context/go19.go b/vendor/golang.org/x/net/context/go19.go
new file mode 100644
index 0000000000..d88bd1db12
--- /dev/null
+++ b/vendor/golang.org/x/net/context/go19.go
@@ -0,0 +1,20 @@
+// Copyright 2017 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 go1.9
+
+package context
+
+import "context" // standard library's context, as of Go 1.7
+
+// A Context carries a deadline, a cancelation signal, and other values across
+// API boundaries.
+//
+// Context's methods may be called by multiple goroutines simultaneously.
+type Context = context.Context
+
+// A CancelFunc tells an operation to abandon its work.
+// A CancelFunc does not wait for the work to stop.
+// After the first call, subsequent calls to a CancelFunc do nothing.
+type CancelFunc = context.CancelFunc
diff --git a/vendor/golang.org/x/net/context/pre_go17.go b/vendor/golang.org/x/net/context/pre_go17.go
new file mode 100644
index 0000000000..0f35592df5
--- /dev/null
+++ b/vendor/golang.org/x/net/context/pre_go17.go
@@ -0,0 +1,300 @@
+// 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.
+
+// +build !go1.7
+
+package context
+
+import (
+ "errors"
+ "fmt"
+ "sync"
+ "time"
+)
+
+// An emptyCtx is never canceled, has no values, and has no deadline. It is not
+// struct{}, since vars of this type must have distinct addresses.
+type emptyCtx int
+
+func (*emptyCtx) Deadline() (deadline time.Time, ok bool) {
+ return
+}
+
+func (*emptyCtx) Done() <-chan struct{} {
+ return nil
+}
+
+func (*emptyCtx) Err() error {
+ return nil
+}
+
+func (*emptyCtx) Value(key interface{}) interface{} {
+ return nil
+}
+
+func (e *emptyCtx) String() string {
+ switch e {
+ case background:
+ return "context.Background"
+ case todo:
+ return "context.TODO"
+ }
+ return "unknown empty Context"
+}
+
+var (
+ background = new(emptyCtx)
+ todo = new(emptyCtx)
+)
+
+// Canceled is the error returned by Context.Err when the context is canceled.
+var Canceled = errors.New("context canceled")
+
+// DeadlineExceeded is the error returned by Context.Err when the context's
+// deadline passes.
+var DeadlineExceeded = errors.New("context deadline exceeded")
+
+// 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)
+ return c, func() { c.cancel(true, Canceled) }
+}
+
+// newCancelCtx returns an initialized cancelCtx.
+func newCancelCtx(parent Context) *cancelCtx {
+ return &cancelCtx{
+ Context: parent,
+ done: make(chan struct{}),
+ }
+}
+
+// propagateCancel arranges for child to be canceled when parent is.
+func propagateCancel(parent Context, child canceler) {
+ if parent.Done() == nil {
+ return // parent is never canceled
+ }
+ if p, ok := parentCancelCtx(parent); ok {
+ p.mu.Lock()
+ if p.err != nil {
+ // parent has already been canceled
+ child.cancel(false, p.err)
+ } else {
+ if p.children == nil {
+ p.children = make(map[canceler]bool)
+ }
+ p.children[child] = true
+ }
+ p.mu.Unlock()
+ } else {
+ go func() {
+ select {
+ case <-parent.Done():
+ child.cancel(false, parent.Err())
+ case <-child.Done():
+ }
+ }()
+ }
+}
+
+// parentCancelCtx follows a chain of parent references until it finds a
+// *cancelCtx. This function understands how each of the concrete types in this
+// package represents its parent.
+func parentCancelCtx(parent Context) (*cancelCtx, bool) {
+ for {
+ switch c := parent.(type) {
+ case *cancelCtx:
+ return c, true
+ case *timerCtx:
+ return c.cancelCtx, true
+ case *valueCtx:
+ parent = c.Context
+ default:
+ return nil, false
+ }
+ }
+}
+
+// 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 {
+ cancel(removeFromParent bool, err error)
+ Done() <-chan struct{}
+}
+
+// A cancelCtx can be canceled. When canceled, it also cancels any children
+// that implement canceler.
+type cancelCtx struct {
+ Context
+
+ done chan struct{} // closed by the first cancel call.
+
+ mu sync.Mutex
+ children map[canceler]bool // set to nil by the first cancel call
+ err error // set to non-nil by the first cancel call
+}
+
+func (c *cancelCtx) Done() <-chan struct{} {
+ return c.done
+}
+
+func (c *cancelCtx) Err() error {
+ c.mu.Lock()
+ defer c.mu.Unlock()
+ return c.err
+}
+
+func (c *cancelCtx) String() string {
+ return fmt.Sprintf("%v.WithCancel", c.Context)
+}
+
+// cancel closes c.done, cancels each of c's children, and, if
+// removeFromParent is true, removes c from its parent's children.
+func (c *cancelCtx) cancel(removeFromParent bool, err error) {
+ if err == nil {
+ panic("context: internal error: missing cancel error")
+ }
+ c.mu.Lock()
+ if c.err != nil {
+ c.mu.Unlock()
+ return // already canceled
+ }
+ c.err = err
+ close(c.done)
+ for child := range c.children {
+ // NOTE: acquiring the child's lock while holding parent's lock.
+ child.cancel(false, err)
+ }
+ c.children = nil
+ c.mu.Unlock()
+
+ if removeFromParent {
+ removeChild(c.Context, c)
+ }
+}
+
+// WithDeadline returns a copy of the parent context with the deadline adjusted
+// to be no later than d. If the parent's deadline is already earlier than d,
+// WithDeadline(parent, d) is semantically equivalent to parent. The returned
+// context's Done channel is closed when the deadline expires, 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 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.
+ return WithCancel(parent)
+ }
+ c := &timerCtx{
+ cancelCtx: newCancelCtx(parent),
+ deadline: deadline,
+ }
+ propagateCancel(parent, c)
+ d := deadline.Sub(time.Now())
+ if d <= 0 {
+ c.cancel(true, DeadlineExceeded) // deadline has already passed
+ return c, func() { c.cancel(true, Canceled) }
+ }
+ c.mu.Lock()
+ defer c.mu.Unlock()
+ if c.err == nil {
+ c.timer = time.AfterFunc(d, func() {
+ c.cancel(true, DeadlineExceeded)
+ })
+ }
+ return c, func() { c.cancel(true, Canceled) }
+}
+
+// A timerCtx carries a timer and a deadline. It embeds a cancelCtx to
+// implement Done and Err. It implements cancel by stopping its timer then
+// delegating to cancelCtx.cancel.
+type timerCtx struct {
+ *cancelCtx
+ timer *time.Timer // Under cancelCtx.mu.
+
+ deadline time.Time
+}
+
+func (c *timerCtx) Deadline() (deadline time.Time, ok bool) {
+ return c.deadline, true
+}
+
+func (c *timerCtx) String() string {
+ return fmt.Sprintf("%v.WithDeadline(%s [%s])", c.cancelCtx.Context, c.deadline, c.deadline.Sub(time.Now()))
+}
+
+func (c *timerCtx) cancel(removeFromParent bool, err error) {
+ 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()
+ c.timer = nil
+ }
+ c.mu.Unlock()
+}
+
+// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)).
+//
+// 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)
+// defer cancel() // releases resources if slowOperation completes before timeout elapses
+// return slowOperation(ctx)
+// }
+func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) {
+ return WithDeadline(parent, time.Now().Add(timeout))
+}
+
+// WithValue returns a copy of parent in which the value associated with key is
+// val.
+//
+// Use context Values only for request-scoped data that transits processes and
+// APIs, not for passing optional parameters to functions.
+func WithValue(parent Context, key interface{}, val interface{}) Context {
+ return &valueCtx{parent, key, val}
+}
+
+// A valueCtx carries a key-value pair. It implements Value for that key and
+// delegates all other calls to the embedded Context.
+type valueCtx struct {
+ Context
+ key, val interface{}
+}
+
+func (c *valueCtx) String() string {
+ return fmt.Sprintf("%v.WithValue(%#v, %#v)", c.Context, c.key, c.val)
+}
+
+func (c *valueCtx) Value(key interface{}) interface{} {
+ if c.key == key {
+ return c.val
+ }
+ return c.Context.Value(key)
+}
diff --git a/vendor/golang.org/x/net/context/pre_go19.go b/vendor/golang.org/x/net/context/pre_go19.go
new file mode 100644
index 0000000000..b105f80be4
--- /dev/null
+++ b/vendor/golang.org/x/net/context/pre_go19.go
@@ -0,0 +1,109 @@
+// 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.
+
+// +build !go1.9
+
+package context
+
+import "time"
+
+// A Context carries a deadline, a cancelation signal, and other values across
+// API boundaries.
+//
+// Context's methods may be called by multiple goroutines simultaneously.
+type Context interface {
+ // Deadline returns the time when work done on behalf of this context
+ // should be canceled. Deadline returns ok==false when no deadline is
+ // set. Successive calls to Deadline return the same results.
+ Deadline() (deadline time.Time, ok bool)
+
+ // Done returns a channel that's closed when work done on behalf of this
+ // context should be canceled. Done may return nil if this context can
+ // never be canceled. Successive calls to Done return the same value.
+ //
+ // WithCancel arranges for Done to be closed when cancel is called;
+ // WithDeadline arranges for Done to be closed when the deadline
+ // expires; WithTimeout arranges for Done to be closed when the timeout
+ // elapses.
+ //
+ // Done is provided for use in select statements:
+ //
+ // // 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.
+ Done() <-chan struct{}
+
+ // Err returns a non-nil error value after Done is closed. Err returns
+ // Canceled if the context was canceled or DeadlineExceeded if the
+ // context's deadline passed. No other values for Err are defined.
+ // After Done is closed, successive calls to Err return the same value.
+ Err() error
+
+ // Value returns the value associated with this context for key, or nil
+ // if no value is associated with key. Successive calls to Value with
+ // the same key returns the same result.
+ //
+ // Use context values only for request-scoped data that transits
+ // processes and API boundaries, not for passing optional parameters to
+ // functions.
+ //
+ // A key identifies a specific value in a Context. Functions that wish
+ // to store values in Context typically allocate a key in a global
+ // variable then use that key as the argument to context.WithValue and
+ // Context.Value. A key can be any type that supports equality;
+ // packages should define keys as an unexported type to avoid
+ // collisions.
+ //
+ // Packages that define a Context key should provide type-safe accessors
+ // for the values stores using that key:
+ //
+ // // Package user defines a User type that's stored in Contexts.
+ // package user
+ //
+ // import "golang.org/x/net/context"
+ //
+ // // User is the type of value stored in the Contexts.
+ // type User struct {...}
+ //
+ // // key is an unexported type for keys defined in this package.
+ // // This prevents collisions with keys defined in other packages.
+ // type key int
+ //
+ // // userKey is the key for user.User values in Contexts. It is
+ // // unexported; clients use user.NewContext and user.FromContext
+ // // instead of using this key directly.
+ // var userKey key = 0
+ //
+ // // NewContext returns a new Context that carries value u.
+ // func NewContext(ctx context.Context, u *User) context.Context {
+ // return context.WithValue(ctx, userKey, u)
+ // }
+ //
+ // // FromContext returns the User value stored in ctx, if any.
+ // func FromContext(ctx context.Context) (*User, bool) {
+ // u, ok := ctx.Value(userKey).(*User)
+ // return u, ok
+ // }
+ Value(key interface{}) interface{}
+}
+
+// A CancelFunc tells an operation to abandon its work.
+// A CancelFunc does not wait for the work to stop.
+// After the first call, subsequent calls to a CancelFunc do nothing.
+type CancelFunc func()
diff --git a/vendor/golang.org/x/net/internal/socks/client.go b/vendor/golang.org/x/net/internal/socks/client.go
new file mode 100644
index 0000000000..3d6f516a59
--- /dev/null
+++ b/vendor/golang.org/x/net/internal/socks/client.go
@@ -0,0 +1,168 @@
+// Copyright 2018 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 socks
+
+import (
+ "context"
+ "errors"
+ "io"
+ "net"
+ "strconv"
+ "time"
+)
+
+var (
+ noDeadline = time.Time{}
+ aLongTimeAgo = time.Unix(1, 0)
+)
+
+func (d *Dialer) connect(ctx context.Context, c net.Conn, address string) (_ net.Addr, ctxErr error) {
+ host, port, err := splitHostPort(address)
+ if err != nil {
+ return nil, err
+ }
+ if deadline, ok := ctx.Deadline(); ok && !deadline.IsZero() {
+ c.SetDeadline(deadline)
+ defer c.SetDeadline(noDeadline)
+ }
+ if ctx != context.Background() {
+ errCh := make(chan error, 1)
+ done := make(chan struct{})
+ defer func() {
+ close(done)
+ if ctxErr == nil {
+ ctxErr = <-errCh
+ }
+ }()
+ go func() {
+ select {
+ case <-ctx.Done():
+ c.SetDeadline(aLongTimeAgo)
+ errCh <- ctx.Err()
+ case <-done:
+ errCh <- nil
+ }
+ }()
+ }
+
+ b := make([]byte, 0, 6+len(host)) // the size here is just an estimate
+ b = append(b, Version5)
+ if len(d.AuthMethods) == 0 || d.Authenticate == nil {
+ b = append(b, 1, byte(AuthMethodNotRequired))
+ } else {
+ ams := d.AuthMethods
+ if len(ams) > 255 {
+ return nil, errors.New("too many authentication methods")
+ }
+ b = append(b, byte(len(ams)))
+ for _, am := range ams {
+ b = append(b, byte(am))
+ }
+ }
+ if _, ctxErr = c.Write(b); ctxErr != nil {
+ return
+ }
+
+ if _, ctxErr = io.ReadFull(c, b[:2]); ctxErr != nil {
+ return
+ }
+ if b[0] != Version5 {
+ return nil, errors.New("unexpected protocol version " + strconv.Itoa(int(b[0])))
+ }
+ am := AuthMethod(b[1])
+ if am == AuthMethodNoAcceptableMethods {
+ return nil, errors.New("no acceptable authentication methods")
+ }
+ if d.Authenticate != nil {
+ if ctxErr = d.Authenticate(ctx, c, am); ctxErr != nil {
+ return
+ }
+ }
+
+ b = b[:0]
+ b = append(b, Version5, byte(d.cmd), 0)
+ if ip := net.ParseIP(host); ip != nil {
+ if ip4 := ip.To4(); ip4 != nil {
+ b = append(b, AddrTypeIPv4)
+ b = append(b, ip4...)
+ } else if ip6 := ip.To16(); ip6 != nil {
+ b = append(b, AddrTypeIPv6)
+ b = append(b, ip6...)
+ } else {
+ return nil, errors.New("unknown address type")
+ }
+ } else {
+ if len(host) > 255 {
+ return nil, errors.New("FQDN too long")
+ }
+ b = append(b, AddrTypeFQDN)
+ b = append(b, byte(len(host)))
+ b = append(b, host...)
+ }
+ b = append(b, byte(port>>8), byte(port))
+ if _, ctxErr = c.Write(b); ctxErr != nil {
+ return
+ }
+
+ if _, ctxErr = io.ReadFull(c, b[:4]); ctxErr != nil {
+ return
+ }
+ if b[0] != Version5 {
+ return nil, errors.New("unexpected protocol version " + strconv.Itoa(int(b[0])))
+ }
+ if cmdErr := Reply(b[1]); cmdErr != StatusSucceeded {
+ return nil, errors.New("unknown error " + cmdErr.String())
+ }
+ if b[2] != 0 {
+ return nil, errors.New("non-zero reserved field")
+ }
+ l := 2
+ var a Addr
+ switch b[3] {
+ case AddrTypeIPv4:
+ l += net.IPv4len
+ a.IP = make(net.IP, net.IPv4len)
+ case AddrTypeIPv6:
+ l += net.IPv6len
+ a.IP = make(net.IP, net.IPv6len)
+ case AddrTypeFQDN:
+ if _, err := io.ReadFull(c, b[:1]); err != nil {
+ return nil, err
+ }
+ l += int(b[0])
+ default:
+ return nil, errors.New("unknown address type " + strconv.Itoa(int(b[3])))
+ }
+ if cap(b) < l {
+ b = make([]byte, l)
+ } else {
+ b = b[:l]
+ }
+ if _, ctxErr = io.ReadFull(c, b); ctxErr != nil {
+ return
+ }
+ if a.IP != nil {
+ copy(a.IP, b)
+ } else {
+ a.Name = string(b[:len(b)-2])
+ }
+ a.Port = int(b[len(b)-2])<<8 | int(b[len(b)-1])
+ return &a, nil
+}
+
+func splitHostPort(address string) (string, int, error) {
+ host, port, err := net.SplitHostPort(address)
+ if err != nil {
+ return "", 0, err
+ }
+ portnum, err := strconv.Atoi(port)
+ if err != nil {
+ return "", 0, err
+ }
+ if 1 > portnum || portnum > 0xffff {
+ return "", 0, errors.New("port number out of range " + port)
+ }
+ return host, portnum, nil
+}
diff --git a/vendor/golang.org/x/net/internal/socks/socks.go b/vendor/golang.org/x/net/internal/socks/socks.go
new file mode 100644
index 0000000000..6929a9fd5c
--- /dev/null
+++ b/vendor/golang.org/x/net/internal/socks/socks.go
@@ -0,0 +1,317 @@
+// Copyright 2018 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 socks provides a SOCKS version 5 client implementation.
+//
+// SOCKS protocol version 5 is defined in RFC 1928.
+// Username/Password authentication for SOCKS version 5 is defined in
+// RFC 1929.
+package socks
+
+import (
+ "context"
+ "errors"
+ "io"
+ "net"
+ "strconv"
+)
+
+// A Command represents a SOCKS command.
+type Command int
+
+func (cmd Command) String() string {
+ switch cmd {
+ case CmdConnect:
+ return "socks connect"
+ case cmdBind:
+ return "socks bind"
+ default:
+ return "socks " + strconv.Itoa(int(cmd))
+ }
+}
+
+// An AuthMethod represents a SOCKS authentication method.
+type AuthMethod int
+
+// A Reply represents a SOCKS command reply code.
+type Reply int
+
+func (code Reply) String() string {
+ switch code {
+ case StatusSucceeded:
+ return "succeeded"
+ case 0x01:
+ return "general SOCKS server failure"
+ case 0x02:
+ return "connection not allowed by ruleset"
+ case 0x03:
+ return "network unreachable"
+ case 0x04:
+ return "host unreachable"
+ case 0x05:
+ return "connection refused"
+ case 0x06:
+ return "TTL expired"
+ case 0x07:
+ return "command not supported"
+ case 0x08:
+ return "address type not supported"
+ default:
+ return "unknown code: " + strconv.Itoa(int(code))
+ }
+}
+
+// Wire protocol constants.
+const (
+ Version5 = 0x05
+
+ AddrTypeIPv4 = 0x01
+ AddrTypeFQDN = 0x03
+ AddrTypeIPv6 = 0x04
+
+ CmdConnect Command = 0x01 // establishes an active-open forward proxy connection
+ cmdBind Command = 0x02 // establishes a passive-open forward proxy connection
+
+ AuthMethodNotRequired AuthMethod = 0x00 // no authentication required
+ AuthMethodUsernamePassword AuthMethod = 0x02 // use username/password
+ AuthMethodNoAcceptableMethods AuthMethod = 0xff // no acceptable authentication methods
+
+ StatusSucceeded Reply = 0x00
+)
+
+// An Addr represents a SOCKS-specific address.
+// Either Name or IP is used exclusively.
+type Addr struct {
+ Name string // fully-qualified domain name
+ IP net.IP
+ Port int
+}
+
+func (a *Addr) Network() string { return "socks" }
+
+func (a *Addr) String() string {
+ if a == nil {
+ return ""
+ }
+ port := strconv.Itoa(a.Port)
+ if a.IP == nil {
+ return net.JoinHostPort(a.Name, port)
+ }
+ return net.JoinHostPort(a.IP.String(), port)
+}
+
+// A Conn represents a forward proxy connection.
+type Conn struct {
+ net.Conn
+
+ boundAddr net.Addr
+}
+
+// BoundAddr returns the address assigned by the proxy server for
+// connecting to the command target address from the proxy server.
+func (c *Conn) BoundAddr() net.Addr {
+ if c == nil {
+ return nil
+ }
+ return c.boundAddr
+}
+
+// A Dialer holds SOCKS-specific options.
+type Dialer struct {
+ cmd Command // either CmdConnect or cmdBind
+ proxyNetwork string // network between a proxy server and a client
+ proxyAddress string // proxy server address
+
+ // ProxyDial specifies the optional dial function for
+ // establishing the transport connection.
+ ProxyDial func(context.Context, string, string) (net.Conn, error)
+
+ // AuthMethods specifies the list of request authention
+ // methods.
+ // If empty, SOCKS client requests only AuthMethodNotRequired.
+ AuthMethods []AuthMethod
+
+ // Authenticate specifies the optional authentication
+ // function. It must be non-nil when AuthMethods is not empty.
+ // It must return an error when the authentication is failed.
+ Authenticate func(context.Context, io.ReadWriter, AuthMethod) error
+}
+
+// DialContext connects to the provided address on the provided
+// network.
+//
+// The returned error value may be a net.OpError. When the Op field of
+// net.OpError contains "socks", the Source field contains a proxy
+// server address and the Addr field contains a command target
+// address.
+//
+// See func Dial of the net package of standard library for a
+// description of the network and address parameters.
+func (d *Dialer) DialContext(ctx context.Context, network, address string) (net.Conn, error) {
+ if err := d.validateTarget(network, address); err != nil {
+ proxy, dst, _ := d.pathAddrs(address)
+ return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: err}
+ }
+ if ctx == nil {
+ proxy, dst, _ := d.pathAddrs(address)
+ return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: errors.New("nil context")}
+ }
+ var err error
+ var c net.Conn
+ if d.ProxyDial != nil {
+ c, err = d.ProxyDial(ctx, d.proxyNetwork, d.proxyAddress)
+ } else {
+ var dd net.Dialer
+ c, err = dd.DialContext(ctx, d.proxyNetwork, d.proxyAddress)
+ }
+ if err != nil {
+ proxy, dst, _ := d.pathAddrs(address)
+ return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: err}
+ }
+ a, err := d.connect(ctx, c, address)
+ if err != nil {
+ c.Close()
+ proxy, dst, _ := d.pathAddrs(address)
+ return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: err}
+ }
+ return &Conn{Conn: c, boundAddr: a}, nil
+}
+
+// DialWithConn initiates a connection from SOCKS server to the target
+// network and address using the connection c that is already
+// connected to the SOCKS server.
+//
+// It returns the connection's local address assigned by the SOCKS
+// server.
+func (d *Dialer) DialWithConn(ctx context.Context, c net.Conn, network, address string) (net.Addr, error) {
+ if err := d.validateTarget(network, address); err != nil {
+ proxy, dst, _ := d.pathAddrs(address)
+ return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: err}
+ }
+ if ctx == nil {
+ proxy, dst, _ := d.pathAddrs(address)
+ return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: errors.New("nil context")}
+ }
+ a, err := d.connect(ctx, c, address)
+ if err != nil {
+ proxy, dst, _ := d.pathAddrs(address)
+ return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: err}
+ }
+ return a, nil
+}
+
+// Dial connects to the provided address on the provided network.
+//
+// Unlike DialContext, it returns a raw transport connection instead
+// of a forward proxy connection.
+//
+// Deprecated: Use DialContext or DialWithConn instead.
+func (d *Dialer) Dial(network, address string) (net.Conn, error) {
+ if err := d.validateTarget(network, address); err != nil {
+ proxy, dst, _ := d.pathAddrs(address)
+ return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: err}
+ }
+ var err error
+ var c net.Conn
+ if d.ProxyDial != nil {
+ c, err = d.ProxyDial(context.Background(), d.proxyNetwork, d.proxyAddress)
+ } else {
+ c, err = net.Dial(d.proxyNetwork, d.proxyAddress)
+ }
+ if err != nil {
+ proxy, dst, _ := d.pathAddrs(address)
+ return nil, &net.OpError{Op: d.cmd.String(), Net: network, Source: proxy, Addr: dst, Err: err}
+ }
+ if _, err := d.DialWithConn(context.Background(), c, network, address); err != nil {
+ c.Close()
+ return nil, err
+ }
+ return c, nil
+}
+
+func (d *Dialer) validateTarget(network, address string) error {
+ switch network {
+ case "tcp", "tcp6", "tcp4":
+ default:
+ return errors.New("network not implemented")
+ }
+ switch d.cmd {
+ case CmdConnect, cmdBind:
+ default:
+ return errors.New("command not implemented")
+ }
+ return nil
+}
+
+func (d *Dialer) pathAddrs(address string) (proxy, dst net.Addr, err error) {
+ for i, s := range []string{d.proxyAddress, address} {
+ host, port, err := splitHostPort(s)
+ if err != nil {
+ return nil, nil, err
+ }
+ a := &Addr{Port: port}
+ a.IP = net.ParseIP(host)
+ if a.IP == nil {
+ a.Name = host
+ }
+ if i == 0 {
+ proxy = a
+ } else {
+ dst = a
+ }
+ }
+ return
+}
+
+// NewDialer returns a new Dialer that dials through the provided
+// proxy server's network and address.
+func NewDialer(network, address string) *Dialer {
+ return &Dialer{proxyNetwork: network, proxyAddress: address, cmd: CmdConnect}
+}
+
+const (
+ authUsernamePasswordVersion = 0x01
+ authStatusSucceeded = 0x00
+)
+
+// UsernamePassword are the credentials for the username/password
+// authentication method.
+type UsernamePassword struct {
+ Username string
+ Password string
+}
+
+// Authenticate authenticates a pair of username and password with the
+// proxy server.
+func (up *UsernamePassword) Authenticate(ctx context.Context, rw io.ReadWriter, auth AuthMethod) error {
+ switch auth {
+ case AuthMethodNotRequired:
+ return nil
+ case AuthMethodUsernamePassword:
+ if len(up.Username) == 0 || len(up.Username) > 255 || len(up.Password) == 0 || len(up.Password) > 255 {
+ return errors.New("invalid username/password")
+ }
+ b := []byte{authUsernamePasswordVersion}
+ b = append(b, byte(len(up.Username)))
+ b = append(b, up.Username...)
+ b = append(b, byte(len(up.Password)))
+ b = append(b, up.Password...)
+ // TODO(mikio): handle IO deadlines and cancelation if
+ // necessary
+ if _, err := rw.Write(b); err != nil {
+ return err
+ }
+ if _, err := io.ReadFull(rw, b[:2]); err != nil {
+ return err
+ }
+ if b[0] != authUsernamePasswordVersion {
+ return errors.New("invalid username/password version")
+ }
+ if b[1] != authStatusSucceeded {
+ return errors.New("username/password authentication failed")
+ }
+ return nil
+ }
+ return errors.New("unsupported authentication method " + strconv.Itoa(int(auth)))
+}
diff --git a/vendor/golang.org/x/net/proxy/direct.go b/vendor/golang.org/x/net/proxy/direct.go
new file mode 100644
index 0000000000..4c5ad88b1e
--- /dev/null
+++ b/vendor/golang.org/x/net/proxy/direct.go
@@ -0,0 +1,18 @@
+// 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 proxy
+
+import (
+ "net"
+)
+
+type direct struct{}
+
+// Direct is a direct proxy: one that makes network connections directly.
+var Direct = direct{}
+
+func (direct) Dial(network, addr string) (net.Conn, error) {
+ return net.Dial(network, addr)
+}
diff --git a/vendor/golang.org/x/net/proxy/per_host.go b/vendor/golang.org/x/net/proxy/per_host.go
new file mode 100644
index 0000000000..0689bb6a70
--- /dev/null
+++ b/vendor/golang.org/x/net/proxy/per_host.go
@@ -0,0 +1,140 @@
+// 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 proxy
+
+import (
+ "net"
+ "strings"
+)
+
+// A PerHost directs connections to a default Dialer unless the host name
+// requested matches one of a number of exceptions.
+type PerHost struct {
+ def, bypass Dialer
+
+ bypassNetworks []*net.IPNet
+ bypassIPs []net.IP
+ bypassZones []string
+ bypassHosts []string
+}
+
+// NewPerHost returns a PerHost Dialer that directs connections to either
+// defaultDialer or bypass, depending on whether the connection matches one of
+// the configured rules.
+func NewPerHost(defaultDialer, bypass Dialer) *PerHost {
+ return &PerHost{
+ def: defaultDialer,
+ bypass: bypass,
+ }
+}
+
+// Dial connects to the address addr on the given network through either
+// defaultDialer or bypass.
+func (p *PerHost) Dial(network, addr string) (c net.Conn, err error) {
+ host, _, err := net.SplitHostPort(addr)
+ if err != nil {
+ return nil, err
+ }
+
+ return p.dialerForRequest(host).Dial(network, addr)
+}
+
+func (p *PerHost) dialerForRequest(host string) Dialer {
+ if ip := net.ParseIP(host); ip != nil {
+ for _, net := range p.bypassNetworks {
+ if net.Contains(ip) {
+ return p.bypass
+ }
+ }
+ for _, bypassIP := range p.bypassIPs {
+ if bypassIP.Equal(ip) {
+ return p.bypass
+ }
+ }
+ return p.def
+ }
+
+ for _, zone := range p.bypassZones {
+ if strings.HasSuffix(host, zone) {
+ return p.bypass
+ }
+ if host == zone[1:] {
+ // For a zone ".example.com", we match "example.com"
+ // too.
+ return p.bypass
+ }
+ }
+ for _, bypassHost := range p.bypassHosts {
+ if bypassHost == host {
+ return p.bypass
+ }
+ }
+ return p.def
+}
+
+// AddFromString parses a string that contains comma-separated values
+// specifying hosts that should use the bypass proxy. Each value is either an
+// IP address, a CIDR range, a zone (*.example.com) or a host name
+// (localhost). A best effort is made to parse the string and errors are
+// ignored.
+func (p *PerHost) AddFromString(s string) {
+ hosts := strings.Split(s, ",")
+ for _, host := range hosts {
+ host = strings.TrimSpace(host)
+ if len(host) == 0 {
+ continue
+ }
+ if strings.Contains(host, "/") {
+ // We assume that it's a CIDR address like 127.0.0.0/8
+ if _, net, err := net.ParseCIDR(host); err == nil {
+ p.AddNetwork(net)
+ }
+ continue
+ }
+ if ip := net.ParseIP(host); ip != nil {
+ p.AddIP(ip)
+ continue
+ }
+ if strings.HasPrefix(host, "*.") {
+ p.AddZone(host[1:])
+ continue
+ }
+ p.AddHost(host)
+ }
+}
+
+// AddIP specifies an IP address that will use the bypass proxy. Note that
+// this will only take effect if a literal IP address is dialed. A connection
+// to a named host will never match an IP.
+func (p *PerHost) AddIP(ip net.IP) {
+ p.bypassIPs = append(p.bypassIPs, ip)
+}
+
+// AddNetwork specifies an IP range that will use the bypass proxy. Note that
+// this will only take effect if a literal IP address is dialed. A connection
+// to a named host will never match.
+func (p *PerHost) AddNetwork(net *net.IPNet) {
+ p.bypassNetworks = append(p.bypassNetworks, net)
+}
+
+// AddZone specifies a DNS suffix that will use the bypass proxy. A zone of
+// "example.com" matches "example.com" and all of its subdomains.
+func (p *PerHost) AddZone(zone string) {
+ if strings.HasSuffix(zone, ".") {
+ zone = zone[:len(zone)-1]
+ }
+ if !strings.HasPrefix(zone, ".") {
+ zone = "." + zone
+ }
+ p.bypassZones = append(p.bypassZones, zone)
+}
+
+// AddHost specifies a host name that will use the bypass proxy.
+func (p *PerHost) AddHost(host string) {
+ if strings.HasSuffix(host, ".") {
+ host = host[:len(host)-1]
+ }
+ p.bypassHosts = append(p.bypassHosts, host)
+}
diff --git a/vendor/golang.org/x/net/proxy/proxy.go b/vendor/golang.org/x/net/proxy/proxy.go
new file mode 100644
index 0000000000..f6026b902c
--- /dev/null
+++ b/vendor/golang.org/x/net/proxy/proxy.go
@@ -0,0 +1,139 @@
+// 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 proxy provides support for a variety of protocols to proxy network
+// data.
+package proxy // import "golang.org/x/net/proxy"
+
+import (
+ "errors"
+ "net"
+ "net/url"
+ "os"
+ "sync"
+)
+
+// A Dialer is a means to establish a connection.
+type Dialer interface {
+ // Dial connects to the given address via the proxy.
+ Dial(network, addr string) (c net.Conn, err error)
+}
+
+// Auth contains authentication parameters that specific Dialers may require.
+type Auth struct {
+ User, Password string
+}
+
+// FromEnvironment returns the dialer specified by the proxy related variables in
+// the environment.
+func FromEnvironment() Dialer {
+ allProxy := allProxyEnv.Get()
+ if len(allProxy) == 0 {
+ return Direct
+ }
+
+ proxyURL, err := url.Parse(allProxy)
+ if err != nil {
+ return Direct
+ }
+ proxy, err := FromURL(proxyURL, Direct)
+ if err != nil {
+ return Direct
+ }
+
+ noProxy := noProxyEnv.Get()
+ if len(noProxy) == 0 {
+ return proxy
+ }
+
+ perHost := NewPerHost(proxy, Direct)
+ perHost.AddFromString(noProxy)
+ return perHost
+}
+
+// proxySchemes is a map from URL schemes to a function that creates a Dialer
+// from a URL with such a scheme.
+var proxySchemes map[string]func(*url.URL, Dialer) (Dialer, error)
+
+// RegisterDialerType takes a URL scheme and a function to generate Dialers from
+// a URL with that scheme and a forwarding Dialer. Registered schemes are used
+// by FromURL.
+func RegisterDialerType(scheme string, f func(*url.URL, Dialer) (Dialer, error)) {
+ if proxySchemes == nil {
+ proxySchemes = make(map[string]func(*url.URL, Dialer) (Dialer, error))
+ }
+ proxySchemes[scheme] = f
+}
+
+// FromURL returns a Dialer given a URL specification and an underlying
+// Dialer for it to make network requests.
+func FromURL(u *url.URL, forward Dialer) (Dialer, error) {
+ var auth *Auth
+ if u.User != nil {
+ auth = new(Auth)
+ auth.User = u.User.Username()
+ if p, ok := u.User.Password(); ok {
+ auth.Password = p
+ }
+ }
+
+ switch u.Scheme {
+ case "socks5", "socks5h":
+ addr := u.Hostname()
+ port := u.Port()
+ if port == "" {
+ port = "1080"
+ }
+ return SOCKS5("tcp", net.JoinHostPort(addr, port), auth, forward)
+ }
+
+ // If the scheme doesn't match any of the built-in schemes, see if it
+ // was registered by another package.
+ if proxySchemes != nil {
+ if f, ok := proxySchemes[u.Scheme]; ok {
+ return f(u, forward)
+ }
+ }
+
+ return nil, errors.New("proxy: unknown scheme: " + u.Scheme)
+}
+
+var (
+ allProxyEnv = &envOnce{
+ names: []string{"ALL_PROXY", "all_proxy"},
+ }
+ noProxyEnv = &envOnce{
+ names: []string{"NO_PROXY", "no_proxy"},
+ }
+)
+
+// envOnce looks up an environment variable (optionally by multiple
+// names) once. It mitigates expensive lookups on some platforms
+// (e.g. Windows).
+// (Borrowed from net/http/transport.go)
+type envOnce struct {
+ names []string
+ once sync.Once
+ val string
+}
+
+func (e *envOnce) Get() string {
+ e.once.Do(e.init)
+ return e.val
+}
+
+func (e *envOnce) init() {
+ for _, n := range e.names {
+ e.val = os.Getenv(n)
+ if e.val != "" {
+ return
+ }
+ }
+}
+
+// reset is used by tests
+func (e *envOnce) reset() {
+ e.once = sync.Once{}
+ e.val = ""
+}
diff --git a/vendor/golang.org/x/net/proxy/socks5.go b/vendor/golang.org/x/net/proxy/socks5.go
new file mode 100644
index 0000000000..56345ec8b6
--- /dev/null
+++ b/vendor/golang.org/x/net/proxy/socks5.go
@@ -0,0 +1,36 @@
+// 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 proxy
+
+import (
+ "context"
+ "net"
+
+ "golang.org/x/net/internal/socks"
+)
+
+// SOCKS5 returns a Dialer that makes SOCKSv5 connections to the given
+// address with an optional username and password.
+// See RFC 1928 and RFC 1929.
+func SOCKS5(network, address string, auth *Auth, forward Dialer) (Dialer, error) {
+ d := socks.NewDialer(network, address)
+ if forward != nil {
+ d.ProxyDial = func(_ context.Context, network string, address string) (net.Conn, error) {
+ return forward.Dial(network, address)
+ }
+ }
+ if auth != nil {
+ up := socks.UsernamePassword{
+ Username: auth.User,
+ Password: auth.Password,
+ }
+ d.AuthMethods = []socks.AuthMethod{
+ socks.AuthMethodNotRequired,
+ socks.AuthMethodUsernamePassword,
+ }
+ d.Authenticate = up.Authenticate
+ }
+ return d, nil
+}
diff --git a/vendor/golang.org/x/sys/AUTHORS b/vendor/golang.org/x/sys/AUTHORS
new file mode 100644
index 0000000000..15167cd746
--- /dev/null
+++ b/vendor/golang.org/x/sys/AUTHORS
@@ -0,0 +1,3 @@
+# This source code refers to The Go Authors for copyright purposes.
+# The master list of authors is in the main Go distribution,
+# visible at http://tip.golang.org/AUTHORS.
diff --git a/vendor/golang.org/x/sys/CONTRIBUTORS b/vendor/golang.org/x/sys/CONTRIBUTORS
new file mode 100644
index 0000000000..1c4577e968
--- /dev/null
+++ b/vendor/golang.org/x/sys/CONTRIBUTORS
@@ -0,0 +1,3 @@
+# This source code was written by the Go contributors.
+# The master list of contributors is in the main Go distribution,
+# visible at http://tip.golang.org/CONTRIBUTORS.
diff --git a/vendor/golang.org/x/sys/LICENSE b/vendor/golang.org/x/sys/LICENSE
new file mode 100644
index 0000000000..6a66aea5ea
--- /dev/null
+++ b/vendor/golang.org/x/sys/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) 2009 The Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/golang.org/x/sys/PATENTS b/vendor/golang.org/x/sys/PATENTS
new file mode 100644
index 0000000000..733099041f
--- /dev/null
+++ b/vendor/golang.org/x/sys/PATENTS
@@ -0,0 +1,22 @@
+Additional IP Rights Grant (Patents)
+
+"This implementation" means the copyrightable works distributed by
+Google as part of the Go project.
+
+Google hereby grants to You a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable (except as stated in this section)
+patent license to make, have made, use, offer to sell, sell, import,
+transfer and otherwise run, modify and propagate the contents of this
+implementation of Go, where such license applies only to those patent
+claims, both currently owned or controlled by Google and acquired in
+the future, licensable by Google that are necessarily infringed by this
+implementation of Go. This grant does not include claims that would be
+infringed only as a consequence of further modification of this
+implementation. If you or your agent or exclusive licensee institute or
+order or agree to the institution of patent litigation against any
+entity (including a cross-claim or counterclaim in a lawsuit) alleging
+that this implementation of Go or any code incorporated within this
+implementation of Go constitutes direct or contributory patent
+infringement, or inducement of patent infringement, then any patent
+rights granted to you under this License for this implementation of Go
+shall terminate as of the date such litigation is filed.
diff --git a/vendor/golang.org/x/sys/cpu/byteorder.go b/vendor/golang.org/x/sys/cpu/byteorder.go
new file mode 100644
index 0000000000..da6b9e4363
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/byteorder.go
@@ -0,0 +1,30 @@
+// Copyright 2019 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 cpu
+
+import (
+ "encoding/binary"
+ "runtime"
+)
+
+// hostByteOrder returns binary.LittleEndian on little-endian machines and
+// binary.BigEndian on big-endian machines.
+func hostByteOrder() binary.ByteOrder {
+ switch runtime.GOARCH {
+ case "386", "amd64", "amd64p32",
+ "arm", "arm64",
+ "mipsle", "mips64le", "mips64p32le",
+ "ppc64le",
+ "riscv", "riscv64":
+ return binary.LittleEndian
+ case "armbe", "arm64be",
+ "mips", "mips64", "mips64p32",
+ "ppc", "ppc64",
+ "s390", "s390x",
+ "sparc", "sparc64":
+ return binary.BigEndian
+ }
+ panic("unknown architecture")
+}
diff --git a/vendor/golang.org/x/sys/cpu/cpu.go b/vendor/golang.org/x/sys/cpu/cpu.go
new file mode 100644
index 0000000000..6b0034ecd7
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/cpu.go
@@ -0,0 +1,89 @@
+// Copyright 2018 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 cpu implements processor feature detection for
+// various CPU architectures.
+package cpu
+
+// CacheLinePad is used to pad structs to avoid false sharing.
+type CacheLinePad struct{ _ [cacheLineSize]byte }
+
+// X86 contains the supported CPU features of the
+// current X86/AMD64 platform. If the current platform
+// is not X86/AMD64 then all feature flags are false.
+//
+// X86 is padded to avoid false sharing. Further the HasAVX
+// and HasAVX2 are only set if the OS supports XMM and YMM
+// registers in addition to the CPUID feature bit being set.
+var X86 struct {
+ _ CacheLinePad
+ HasAES bool // AES hardware implementation (AES NI)
+ HasADX bool // Multi-precision add-carry instruction extensions
+ HasAVX bool // Advanced vector extension
+ HasAVX2 bool // Advanced vector extension 2
+ HasBMI1 bool // Bit manipulation instruction set 1
+ HasBMI2 bool // Bit manipulation instruction set 2
+ HasERMS bool // Enhanced REP for MOVSB and STOSB
+ HasFMA bool // Fused-multiply-add instructions
+ HasOSXSAVE bool // OS supports XSAVE/XRESTOR for saving/restoring XMM registers.
+ HasPCLMULQDQ bool // PCLMULQDQ instruction - most often used for AES-GCM
+ HasPOPCNT bool // Hamming weight instruction POPCNT.
+ HasRDRAND bool // RDRAND instruction (on-chip random number generator)
+ HasRDSEED bool // RDSEED instruction (on-chip random number generator)
+ HasSSE2 bool // Streaming SIMD extension 2 (always available on amd64)
+ HasSSE3 bool // Streaming SIMD extension 3
+ HasSSSE3 bool // Supplemental streaming SIMD extension 3
+ HasSSE41 bool // Streaming SIMD extension 4 and 4.1
+ HasSSE42 bool // Streaming SIMD extension 4 and 4.2
+ _ CacheLinePad
+}
+
+// ARM64 contains the supported CPU features of the
+// current ARMv8(aarch64) platform. If the current platform
+// is not arm64 then all feature flags are false.
+var ARM64 struct {
+ _ CacheLinePad
+ HasFP bool // Floating-point instruction set (always available)
+ HasASIMD bool // Advanced SIMD (always available)
+ HasEVTSTRM bool // Event stream support
+ HasAES bool // AES hardware implementation
+ HasPMULL bool // Polynomial multiplication instruction set
+ HasSHA1 bool // SHA1 hardware implementation
+ HasSHA2 bool // SHA2 hardware implementation
+ HasCRC32 bool // CRC32 hardware implementation
+ HasATOMICS bool // Atomic memory operation instruction set
+ HasFPHP bool // Half precision floating-point instruction set
+ HasASIMDHP bool // Advanced SIMD half precision instruction set
+ HasCPUID bool // CPUID identification scheme registers
+ HasASIMDRDM bool // Rounding double multiply add/subtract instruction set
+ HasJSCVT bool // Javascript conversion from floating-point to integer
+ HasFCMA bool // Floating-point multiplication and addition of complex numbers
+ HasLRCPC bool // Release Consistent processor consistent support
+ HasDCPOP bool // Persistent memory support
+ HasSHA3 bool // SHA3 hardware implementation
+ HasSM3 bool // SM3 hardware implementation
+ HasSM4 bool // SM4 hardware implementation
+ HasASIMDDP bool // Advanced SIMD double precision instruction set
+ HasSHA512 bool // SHA512 hardware implementation
+ HasSVE bool // Scalable Vector Extensions
+ HasASIMDFHM bool // Advanced SIMD multiplication FP16 to FP32
+ _ CacheLinePad
+}
+
+// PPC64 contains the supported CPU features of the current ppc64/ppc64le platforms.
+// If the current platform is not ppc64/ppc64le then all feature flags are false.
+//
+// For ppc64/ppc64le, it is safe to check only for ISA level starting on ISA v3.00,
+// since there are no optional categories. There are some exceptions that also
+// require kernel support to work (DARN, SCV), so there are feature bits for
+// those as well. The minimum processor requirement is POWER8 (ISA 2.07).
+// The struct is padded to avoid false sharing.
+var PPC64 struct {
+ _ CacheLinePad
+ HasDARN bool // Hardware random number generator (requires kernel enablement)
+ HasSCV bool // Syscall vectored (requires kernel enablement)
+ IsPOWER8 bool // ISA v2.07 (POWER8)
+ IsPOWER9 bool // ISA v3.00 (POWER9)
+ _ CacheLinePad
+}
diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm.go b/vendor/golang.org/x/sys/cpu/cpu_arm.go
new file mode 100644
index 0000000000..7f2348b7d4
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/cpu_arm.go
@@ -0,0 +1,9 @@
+// Copyright 2018 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 cpu
+
+const cacheLineSize = 32
+
+func doinit() {}
diff --git a/vendor/golang.org/x/sys/cpu/cpu_gc_x86.go b/vendor/golang.org/x/sys/cpu/cpu_gc_x86.go
new file mode 100644
index 0000000000..f7cb46971c
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/cpu_gc_x86.go
@@ -0,0 +1,16 @@
+// Copyright 2018 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 386 amd64 amd64p32
+// +build !gccgo
+
+package cpu
+
+// cpuid is implemented in cpu_x86.s for gc compiler
+// and in cpu_gccgo.c for gccgo.
+func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32)
+
+// xgetbv with ecx = 0 is implemented in cpu_x86.s for gc compiler
+// and in cpu_gccgo.c for gccgo.
+func xgetbv() (eax, edx uint32)
diff --git a/vendor/golang.org/x/sys/cpu/cpu_gccgo.c b/vendor/golang.org/x/sys/cpu/cpu_gccgo.c
new file mode 100644
index 0000000000..e363c7d131
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/cpu_gccgo.c
@@ -0,0 +1,43 @@
+// Copyright 2018 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 386 amd64 amd64p32
+// +build gccgo
+
+#include
+#include
+
+// Need to wrap __get_cpuid_count because it's declared as static.
+int
+gccgoGetCpuidCount(uint32_t leaf, uint32_t subleaf,
+ uint32_t *eax, uint32_t *ebx,
+ uint32_t *ecx, uint32_t *edx)
+{
+ return __get_cpuid_count(leaf, subleaf, eax, ebx, ecx, edx);
+}
+
+// xgetbv reads the contents of an XCR (Extended Control Register)
+// specified in the ECX register into registers EDX:EAX.
+// Currently, the only supported value for XCR is 0.
+//
+// TODO: Replace with a better alternative:
+//
+// #include
+//
+// #pragma GCC target("xsave")
+//
+// void gccgoXgetbv(uint32_t *eax, uint32_t *edx) {
+// unsigned long long x = _xgetbv(0);
+// *eax = x & 0xffffffff;
+// *edx = (x >> 32) & 0xffffffff;
+// }
+//
+// Note that _xgetbv is defined starting with GCC 8.
+void
+gccgoXgetbv(uint32_t *eax, uint32_t *edx)
+{
+ __asm(" xorl %%ecx, %%ecx\n"
+ " xgetbv"
+ : "=a"(*eax), "=d"(*edx));
+}
diff --git a/vendor/golang.org/x/sys/cpu/cpu_gccgo.go b/vendor/golang.org/x/sys/cpu/cpu_gccgo.go
new file mode 100644
index 0000000000..ba49b91bd3
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/cpu_gccgo.go
@@ -0,0 +1,26 @@
+// Copyright 2018 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 386 amd64 amd64p32
+// +build gccgo
+
+package cpu
+
+//extern gccgoGetCpuidCount
+func gccgoGetCpuidCount(eaxArg, ecxArg uint32, eax, ebx, ecx, edx *uint32)
+
+func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32) {
+ var a, b, c, d uint32
+ gccgoGetCpuidCount(eaxArg, ecxArg, &a, &b, &c, &d)
+ return a, b, c, d
+}
+
+//extern gccgoXgetbv
+func gccgoXgetbv(eax, edx *uint32)
+
+func xgetbv() (eax, edx uint32) {
+ var a, d uint32
+ gccgoXgetbv(&a, &d)
+ return a, d
+}
diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux.go b/vendor/golang.org/x/sys/cpu/cpu_linux.go
new file mode 100644
index 0000000000..33b61e528a
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/cpu_linux.go
@@ -0,0 +1,55 @@
+// Copyright 2018 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 !amd64,!amd64p32,!386
+
+package cpu
+
+import (
+ "io/ioutil"
+)
+
+const (
+ _AT_HWCAP = 16
+ _AT_HWCAP2 = 26
+
+ procAuxv = "/proc/self/auxv"
+
+ uintSize = int(32 << (^uint(0) >> 63))
+)
+
+// For those platforms don't have a 'cpuid' equivalent we use HWCAP/HWCAP2
+// These are initialized in cpu_$GOARCH.go
+// and should not be changed after they are initialized.
+var hwCap uint
+var hwCap2 uint
+
+func init() {
+ buf, err := ioutil.ReadFile(procAuxv)
+ if err != nil {
+ panic("read proc auxv failed: " + err.Error())
+ }
+
+ bo := hostByteOrder()
+ for len(buf) >= 2*(uintSize/8) {
+ var tag, val uint
+ switch uintSize {
+ case 32:
+ tag = uint(bo.Uint32(buf[0:]))
+ val = uint(bo.Uint32(buf[4:]))
+ buf = buf[8:]
+ case 64:
+ tag = uint(bo.Uint64(buf[0:]))
+ val = uint(bo.Uint64(buf[8:]))
+ buf = buf[16:]
+ }
+ switch tag {
+ case _AT_HWCAP:
+ hwCap = val
+ case _AT_HWCAP2:
+ hwCap2 = val
+ }
+ }
+ doinit()
+}
diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go
new file mode 100644
index 0000000000..fa7fb1bd7b
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go
@@ -0,0 +1,67 @@
+// Copyright 2018 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 cpu
+
+const cacheLineSize = 64
+
+// HWCAP/HWCAP2 bits. These are exposed by Linux.
+const (
+ hwcap_FP = 1 << 0
+ hwcap_ASIMD = 1 << 1
+ hwcap_EVTSTRM = 1 << 2
+ hwcap_AES = 1 << 3
+ hwcap_PMULL = 1 << 4
+ hwcap_SHA1 = 1 << 5
+ hwcap_SHA2 = 1 << 6
+ hwcap_CRC32 = 1 << 7
+ hwcap_ATOMICS = 1 << 8
+ hwcap_FPHP = 1 << 9
+ hwcap_ASIMDHP = 1 << 10
+ hwcap_CPUID = 1 << 11
+ hwcap_ASIMDRDM = 1 << 12
+ hwcap_JSCVT = 1 << 13
+ hwcap_FCMA = 1 << 14
+ hwcap_LRCPC = 1 << 15
+ hwcap_DCPOP = 1 << 16
+ hwcap_SHA3 = 1 << 17
+ hwcap_SM3 = 1 << 18
+ hwcap_SM4 = 1 << 19
+ hwcap_ASIMDDP = 1 << 20
+ hwcap_SHA512 = 1 << 21
+ hwcap_SVE = 1 << 22
+ hwcap_ASIMDFHM = 1 << 23
+)
+
+func doinit() {
+ // HWCAP feature bits
+ ARM64.HasFP = isSet(hwCap, hwcap_FP)
+ ARM64.HasASIMD = isSet(hwCap, hwcap_ASIMD)
+ ARM64.HasEVTSTRM = isSet(hwCap, hwcap_EVTSTRM)
+ ARM64.HasAES = isSet(hwCap, hwcap_AES)
+ ARM64.HasPMULL = isSet(hwCap, hwcap_PMULL)
+ ARM64.HasSHA1 = isSet(hwCap, hwcap_SHA1)
+ ARM64.HasSHA2 = isSet(hwCap, hwcap_SHA2)
+ ARM64.HasCRC32 = isSet(hwCap, hwcap_CRC32)
+ ARM64.HasATOMICS = isSet(hwCap, hwcap_ATOMICS)
+ ARM64.HasFPHP = isSet(hwCap, hwcap_FPHP)
+ ARM64.HasASIMDHP = isSet(hwCap, hwcap_ASIMDHP)
+ ARM64.HasCPUID = isSet(hwCap, hwcap_CPUID)
+ ARM64.HasASIMDRDM = isSet(hwCap, hwcap_ASIMDRDM)
+ ARM64.HasJSCVT = isSet(hwCap, hwcap_JSCVT)
+ ARM64.HasFCMA = isSet(hwCap, hwcap_FCMA)
+ ARM64.HasLRCPC = isSet(hwCap, hwcap_LRCPC)
+ ARM64.HasDCPOP = isSet(hwCap, hwcap_DCPOP)
+ ARM64.HasSHA3 = isSet(hwCap, hwcap_SHA3)
+ ARM64.HasSM3 = isSet(hwCap, hwcap_SM3)
+ ARM64.HasSM4 = isSet(hwCap, hwcap_SM4)
+ ARM64.HasASIMDDP = isSet(hwCap, hwcap_ASIMDDP)
+ ARM64.HasSHA512 = isSet(hwCap, hwcap_SHA512)
+ ARM64.HasSVE = isSet(hwCap, hwcap_SVE)
+ ARM64.HasASIMDFHM = isSet(hwCap, hwcap_ASIMDFHM)
+}
+
+func isSet(hwc uint, value uint) bool {
+ return hwc&value != 0
+}
diff --git a/vendor/golang.org/x/sys/cpu/cpu_mips64x.go b/vendor/golang.org/x/sys/cpu/cpu_mips64x.go
new file mode 100644
index 0000000000..f55e0c82c7
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/cpu_mips64x.go
@@ -0,0 +1,11 @@
+// Copyright 2018 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 mips64 mips64le
+
+package cpu
+
+const cacheLineSize = 32
+
+func doinit() {}
diff --git a/vendor/golang.org/x/sys/cpu/cpu_mipsx.go b/vendor/golang.org/x/sys/cpu/cpu_mipsx.go
new file mode 100644
index 0000000000..cda87b1a1b
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/cpu_mipsx.go
@@ -0,0 +1,11 @@
+// Copyright 2018 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 mips mipsle
+
+package cpu
+
+const cacheLineSize = 32
+
+func doinit() {}
diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go
new file mode 100644
index 0000000000..dd1e76dc92
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go
@@ -0,0 +1,11 @@
+// Copyright 2019 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 !linux,arm64
+
+package cpu
+
+const cacheLineSize = 64
+
+func doinit() {}
diff --git a/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go b/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go
new file mode 100644
index 0000000000..a971b0125c
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go
@@ -0,0 +1,32 @@
+// Copyright 2018 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 ppc64 ppc64le
+
+package cpu
+
+const cacheLineSize = 128
+
+// HWCAP/HWCAP2 bits. These are exposed by the kernel.
+const (
+ // ISA Level
+ _PPC_FEATURE2_ARCH_2_07 = 0x80000000
+ _PPC_FEATURE2_ARCH_3_00 = 0x00800000
+
+ // CPU features
+ _PPC_FEATURE2_DARN = 0x00200000
+ _PPC_FEATURE2_SCV = 0x00100000
+)
+
+func doinit() {
+ // HWCAP2 feature bits
+ PPC64.IsPOWER8 = isSet(hwCap2, _PPC_FEATURE2_ARCH_2_07)
+ PPC64.IsPOWER9 = isSet(hwCap2, _PPC_FEATURE2_ARCH_3_00)
+ PPC64.HasDARN = isSet(hwCap2, _PPC_FEATURE2_DARN)
+ PPC64.HasSCV = isSet(hwCap2, _PPC_FEATURE2_SCV)
+}
+
+func isSet(hwc uint, value uint) bool {
+ return hwc&value != 0
+}
diff --git a/vendor/golang.org/x/sys/cpu/cpu_s390x.go b/vendor/golang.org/x/sys/cpu/cpu_s390x.go
new file mode 100644
index 0000000000..ce8a2289e0
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/cpu_s390x.go
@@ -0,0 +1,9 @@
+// Copyright 2018 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 cpu
+
+const cacheLineSize = 256
+
+func doinit() {}
diff --git a/vendor/golang.org/x/sys/cpu/cpu_x86.go b/vendor/golang.org/x/sys/cpu/cpu_x86.go
new file mode 100644
index 0000000000..2b3ca2e115
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/cpu_x86.go
@@ -0,0 +1,57 @@
+// Copyright 2018 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 386 amd64 amd64p32
+
+package cpu
+
+const cacheLineSize = 64
+
+func init() {
+ maxID, _, _, _ := cpuid(0, 0)
+
+ if maxID < 1 {
+ return
+ }
+
+ _, _, ecx1, edx1 := cpuid(1, 0)
+ X86.HasSSE2 = isSet(26, edx1)
+
+ X86.HasSSE3 = isSet(0, ecx1)
+ X86.HasPCLMULQDQ = isSet(1, ecx1)
+ X86.HasSSSE3 = isSet(9, ecx1)
+ X86.HasFMA = isSet(12, ecx1)
+ X86.HasSSE41 = isSet(19, ecx1)
+ X86.HasSSE42 = isSet(20, ecx1)
+ X86.HasPOPCNT = isSet(23, ecx1)
+ X86.HasAES = isSet(25, ecx1)
+ X86.HasOSXSAVE = isSet(27, ecx1)
+ X86.HasRDRAND = isSet(30, ecx1)
+
+ osSupportsAVX := false
+ // For XGETBV, OSXSAVE bit is required and sufficient.
+ if X86.HasOSXSAVE {
+ eax, _ := xgetbv()
+ // Check if XMM and YMM registers have OS support.
+ osSupportsAVX = isSet(1, eax) && isSet(2, eax)
+ }
+
+ X86.HasAVX = isSet(28, ecx1) && osSupportsAVX
+
+ if maxID < 7 {
+ return
+ }
+
+ _, ebx7, _, _ := cpuid(7, 0)
+ X86.HasBMI1 = isSet(3, ebx7)
+ X86.HasAVX2 = isSet(5, ebx7) && osSupportsAVX
+ X86.HasBMI2 = isSet(8, ebx7)
+ X86.HasERMS = isSet(9, ebx7)
+ X86.HasRDSEED = isSet(18, ebx7)
+ X86.HasADX = isSet(19, ebx7)
+}
+
+func isSet(bitpos uint, value uint32) bool {
+ return value&(1<`, and the
+signal numbers and strings are generated from `#include `. All of
+these constants are written to `zerrors_${GOOS}_${GOARCH}.go` via a C program,
+`_errors.c`, which prints out all the constants.
+
+To add a constant, add the header that includes it to the appropriate variable.
+Then, edit the regex (if necessary) to match the desired constant. Avoid making
+the regex too broad to avoid matching unintended constants.
+
+
+## Generated files
+
+### `zerror_${GOOS}_${GOARCH}.go`
+
+A file containing all of the system's generated error numbers, error strings,
+signal numbers, and constants. Generated by `mkerrors.sh` (see above).
+
+### `zsyscall_${GOOS}_${GOARCH}.go`
+
+A file containing all the generated syscalls for a specific GOOS and GOARCH.
+Generated by `mksyscall.go` (see above).
+
+### `zsysnum_${GOOS}_${GOARCH}.go`
+
+A list of numeric constants for all the syscall number of the specific GOOS
+and GOARCH. Generated by mksysnum (see above).
+
+### `ztypes_${GOOS}_${GOARCH}.go`
+
+A file containing Go types for passing into (or returning from) syscalls.
+Generated by godefs and the types file (see above).
diff --git a/vendor/golang.org/x/sys/unix/affinity_linux.go b/vendor/golang.org/x/sys/unix/affinity_linux.go
new file mode 100644
index 0000000000..72afe3338c
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/affinity_linux.go
@@ -0,0 +1,124 @@
+// Copyright 2018 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.
+
+// CPU affinity functions
+
+package unix
+
+import (
+ "unsafe"
+)
+
+const cpuSetSize = _CPU_SETSIZE / _NCPUBITS
+
+// CPUSet represents a CPU affinity mask.
+type CPUSet [cpuSetSize]cpuMask
+
+func schedAffinity(trap uintptr, pid int, set *CPUSet) error {
+ _, _, e := RawSyscall(trap, uintptr(pid), uintptr(unsafe.Sizeof(*set)), uintptr(unsafe.Pointer(set)))
+ if e != 0 {
+ return errnoErr(e)
+ }
+ return nil
+}
+
+// SchedGetaffinity gets the CPU affinity mask of the thread specified by pid.
+// If pid is 0 the calling thread is used.
+func SchedGetaffinity(pid int, set *CPUSet) error {
+ return schedAffinity(SYS_SCHED_GETAFFINITY, pid, set)
+}
+
+// SchedSetaffinity sets the CPU affinity mask of the thread specified by pid.
+// If pid is 0 the calling thread is used.
+func SchedSetaffinity(pid int, set *CPUSet) error {
+ return schedAffinity(SYS_SCHED_SETAFFINITY, pid, set)
+}
+
+// Zero clears the set s, so that it contains no CPUs.
+func (s *CPUSet) Zero() {
+ for i := range s {
+ s[i] = 0
+ }
+}
+
+func cpuBitsIndex(cpu int) int {
+ return cpu / _NCPUBITS
+}
+
+func cpuBitsMask(cpu int) cpuMask {
+ return cpuMask(1 << (uint(cpu) % _NCPUBITS))
+}
+
+// Set adds cpu to the set s.
+func (s *CPUSet) Set(cpu int) {
+ i := cpuBitsIndex(cpu)
+ if i < len(s) {
+ s[i] |= cpuBitsMask(cpu)
+ }
+}
+
+// Clear removes cpu from the set s.
+func (s *CPUSet) Clear(cpu int) {
+ i := cpuBitsIndex(cpu)
+ if i < len(s) {
+ s[i] &^= cpuBitsMask(cpu)
+ }
+}
+
+// IsSet reports whether cpu is in the set s.
+func (s *CPUSet) IsSet(cpu int) bool {
+ i := cpuBitsIndex(cpu)
+ if i < len(s) {
+ return s[i]&cpuBitsMask(cpu) != 0
+ }
+ return false
+}
+
+// Count returns the number of CPUs in the set s.
+func (s *CPUSet) Count() int {
+ c := 0
+ for _, b := range s {
+ c += onesCount64(uint64(b))
+ }
+ return c
+}
+
+// onesCount64 is a copy of Go 1.9's math/bits.OnesCount64.
+// Once this package can require Go 1.9, we can delete this
+// and update the caller to use bits.OnesCount64.
+func onesCount64(x uint64) int {
+ const m0 = 0x5555555555555555 // 01010101 ...
+ const m1 = 0x3333333333333333 // 00110011 ...
+ const m2 = 0x0f0f0f0f0f0f0f0f // 00001111 ...
+ const m3 = 0x00ff00ff00ff00ff // etc.
+ const m4 = 0x0000ffff0000ffff
+
+ // Implementation: Parallel summing of adjacent bits.
+ // See "Hacker's Delight", Chap. 5: Counting Bits.
+ // The following pattern shows the general approach:
+ //
+ // x = x>>1&(m0&m) + x&(m0&m)
+ // x = x>>2&(m1&m) + x&(m1&m)
+ // x = x>>4&(m2&m) + x&(m2&m)
+ // x = x>>8&(m3&m) + x&(m3&m)
+ // x = x>>16&(m4&m) + x&(m4&m)
+ // x = x>>32&(m5&m) + x&(m5&m)
+ // return int(x)
+ //
+ // Masking (& operations) can be left away when there's no
+ // danger that a field's sum will carry over into the next
+ // field: Since the result cannot be > 64, 8 bits is enough
+ // and we can ignore the masks for the shifts by 8 and up.
+ // Per "Hacker's Delight", the first line can be simplified
+ // more, but it saves at best one instruction, so we leave
+ // it alone for clarity.
+ const m = 1<<64 - 1
+ x = x>>1&(m0&m) + x&(m0&m)
+ x = x>>2&(m1&m) + x&(m1&m)
+ x = (x>>4 + x) & (m2 & m)
+ x += x >> 8
+ x += x >> 16
+ x += x >> 32
+ return int(x) & (1<<7 - 1)
+}
diff --git a/vendor/golang.org/x/sys/unix/aliases.go b/vendor/golang.org/x/sys/unix/aliases.go
new file mode 100644
index 0000000000..951fce4d0d
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/aliases.go
@@ -0,0 +1,14 @@
+// Copyright 2018 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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
+// +build go1.9
+
+package unix
+
+import "syscall"
+
+type Signal = syscall.Signal
+type Errno = syscall.Errno
+type SysProcAttr = syscall.SysProcAttr
diff --git a/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s b/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s
new file mode 100644
index 0000000000..06f84b8555
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s
@@ -0,0 +1,17 @@
+// Copyright 2018 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 !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for ppc64, AIX are implemented in runtime/syscall_aix.go
+//
+
+TEXT ·syscall6(SB),NOSPLIT,$0-88
+ JMP syscall·syscall6(SB)
+
+TEXT ·rawSyscall6(SB),NOSPLIT,$0-88
+ JMP syscall·rawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_386.s b/vendor/golang.org/x/sys/unix/asm_darwin_386.s
new file mode 100644
index 0000000000..8a7278319e
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_darwin_386.s
@@ -0,0 +1,29 @@
+// Copyright 2009 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 !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for 386, Darwin
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-52
+ JMP syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s b/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s
new file mode 100644
index 0000000000..6321421f27
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s
@@ -0,0 +1,29 @@
+// Copyright 2009 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 !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for AMD64, Darwin
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-104
+ JMP syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_arm.s b/vendor/golang.org/x/sys/unix/asm_darwin_arm.s
new file mode 100644
index 0000000000..333242d506
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_darwin_arm.s
@@ -0,0 +1,30 @@
+// 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 !gccgo
+// +build arm,darwin
+
+#include "textflag.h"
+
+//
+// System call support for ARM, Darwin
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ B syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ B syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-52
+ B syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ B syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ B syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s b/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s
new file mode 100644
index 0000000000..97e0174371
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s
@@ -0,0 +1,30 @@
+// 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 !gccgo
+// +build arm64,darwin
+
+#include "textflag.h"
+
+//
+// System call support for AMD64, Darwin
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ B syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ B syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-104
+ B syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ B syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ B syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s b/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s
new file mode 100644
index 0000000000..603dd5728c
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s
@@ -0,0 +1,29 @@
+// Copyright 2009 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 !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for AMD64, DragonFly
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-104
+ JMP syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_386.s b/vendor/golang.org/x/sys/unix/asm_freebsd_386.s
new file mode 100644
index 0000000000..c9a0a26015
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_freebsd_386.s
@@ -0,0 +1,29 @@
+// Copyright 2009 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 !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for 386, FreeBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-52
+ JMP syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s
new file mode 100644
index 0000000000..35172477c8
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s
@@ -0,0 +1,29 @@
+// Copyright 2009 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 !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for AMD64, FreeBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-104
+ JMP syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s b/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s
new file mode 100644
index 0000000000..9227c875bf
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s
@@ -0,0 +1,29 @@
+// Copyright 2012 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 !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for ARM, FreeBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ B syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ B syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-52
+ B syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ B syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ B syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s b/vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s
new file mode 100644
index 0000000000..d9318cbf03
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s
@@ -0,0 +1,29 @@
+// Copyright 2018 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 !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for ARM64, FreeBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-104
+ JMP syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_386.s b/vendor/golang.org/x/sys/unix/asm_linux_386.s
new file mode 100644
index 0000000000..448bebbb59
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_linux_386.s
@@ -0,0 +1,65 @@
+// Copyright 2009 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 !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for 386, Linux
+//
+
+// See ../runtime/sys_linux_386.s for the reason why we always use int 0x80
+// instead of the glibc-specific "CALL 0x10(GS)".
+#define INVOKE_SYSCALL INT $0x80
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ JMP syscall·Syscall6(SB)
+
+TEXT ·SyscallNoError(SB),NOSPLIT,$0-24
+ CALL runtime·entersyscall(SB)
+ MOVL trap+0(FP), AX // syscall entry
+ MOVL a1+4(FP), BX
+ MOVL a2+8(FP), CX
+ MOVL a3+12(FP), DX
+ MOVL $0, SI
+ MOVL $0, DI
+ INVOKE_SYSCALL
+ MOVL AX, r1+16(FP)
+ MOVL DX, r2+20(FP)
+ CALL runtime·exitsyscall(SB)
+ RET
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ JMP syscall·RawSyscall6(SB)
+
+TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24
+ MOVL trap+0(FP), AX // syscall entry
+ MOVL a1+4(FP), BX
+ MOVL a2+8(FP), CX
+ MOVL a3+12(FP), DX
+ MOVL $0, SI
+ MOVL $0, DI
+ INVOKE_SYSCALL
+ MOVL AX, r1+16(FP)
+ MOVL DX, r2+20(FP)
+ RET
+
+TEXT ·socketcall(SB),NOSPLIT,$0-36
+ JMP syscall·socketcall(SB)
+
+TEXT ·rawsocketcall(SB),NOSPLIT,$0-36
+ JMP syscall·rawsocketcall(SB)
+
+TEXT ·seek(SB),NOSPLIT,$0-28
+ JMP syscall·seek(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s
new file mode 100644
index 0000000000..c6468a9588
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s
@@ -0,0 +1,57 @@
+// Copyright 2009 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 !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for AMD64, Linux
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JMP syscall·Syscall6(SB)
+
+TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
+ CALL runtime·entersyscall(SB)
+ MOVQ a1+8(FP), DI
+ MOVQ a2+16(FP), SI
+ MOVQ a3+24(FP), DX
+ MOVQ $0, R10
+ MOVQ $0, R8
+ MOVQ $0, R9
+ MOVQ trap+0(FP), AX // syscall entry
+ SYSCALL
+ MOVQ AX, r1+32(FP)
+ MOVQ DX, r2+40(FP)
+ CALL runtime·exitsyscall(SB)
+ RET
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ JMP syscall·RawSyscall6(SB)
+
+TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
+ MOVQ a1+8(FP), DI
+ MOVQ a2+16(FP), SI
+ MOVQ a3+24(FP), DX
+ MOVQ $0, R10
+ MOVQ $0, R8
+ MOVQ $0, R9
+ MOVQ trap+0(FP), AX // syscall entry
+ SYSCALL
+ MOVQ AX, r1+32(FP)
+ MOVQ DX, r2+40(FP)
+ RET
+
+TEXT ·gettimeofday(SB),NOSPLIT,$0-16
+ JMP syscall·gettimeofday(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm.s b/vendor/golang.org/x/sys/unix/asm_linux_arm.s
new file mode 100644
index 0000000000..cf0f3575c1
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_linux_arm.s
@@ -0,0 +1,56 @@
+// Copyright 2009 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 !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for arm, Linux
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ B syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ B syscall·Syscall6(SB)
+
+TEXT ·SyscallNoError(SB),NOSPLIT,$0-24
+ BL runtime·entersyscall(SB)
+ MOVW trap+0(FP), R7
+ MOVW a1+4(FP), R0
+ MOVW a2+8(FP), R1
+ MOVW a3+12(FP), R2
+ MOVW $0, R3
+ MOVW $0, R4
+ MOVW $0, R5
+ SWI $0
+ MOVW R0, r1+16(FP)
+ MOVW $0, R0
+ MOVW R0, r2+20(FP)
+ BL runtime·exitsyscall(SB)
+ RET
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ B syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ B syscall·RawSyscall6(SB)
+
+TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24
+ MOVW trap+0(FP), R7 // syscall entry
+ MOVW a1+4(FP), R0
+ MOVW a2+8(FP), R1
+ MOVW a3+12(FP), R2
+ SWI $0
+ MOVW R0, r1+16(FP)
+ MOVW $0, R0
+ MOVW R0, r2+20(FP)
+ RET
+
+TEXT ·seek(SB),NOSPLIT,$0-28
+ B syscall·seek(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s
new file mode 100644
index 0000000000..afe6fdf6b1
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s
@@ -0,0 +1,52 @@
+// 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 linux
+// +build arm64
+// +build !gccgo
+
+#include "textflag.h"
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ B syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ B syscall·Syscall6(SB)
+
+TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
+ BL runtime·entersyscall(SB)
+ MOVD a1+8(FP), R0
+ MOVD a2+16(FP), R1
+ MOVD a3+24(FP), R2
+ MOVD $0, R3
+ MOVD $0, R4
+ MOVD $0, R5
+ MOVD trap+0(FP), R8 // syscall entry
+ SVC
+ MOVD R0, r1+32(FP) // r1
+ MOVD R1, r2+40(FP) // r2
+ BL runtime·exitsyscall(SB)
+ RET
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ B syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ B syscall·RawSyscall6(SB)
+
+TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
+ MOVD a1+8(FP), R0
+ MOVD a2+16(FP), R1
+ MOVD a3+24(FP), R2
+ MOVD $0, R3
+ MOVD $0, R4
+ MOVD $0, R5
+ MOVD trap+0(FP), R8 // syscall entry
+ SVC
+ MOVD R0, r1+32(FP)
+ MOVD R1, r2+40(FP)
+ RET
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
new file mode 100644
index 0000000000..ab9d63831a
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
@@ -0,0 +1,56 @@
+// 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 linux
+// +build mips64 mips64le
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for mips64, Linux
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JMP syscall·Syscall6(SB)
+
+TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
+ JAL runtime·entersyscall(SB)
+ MOVV a1+8(FP), R4
+ MOVV a2+16(FP), R5
+ MOVV a3+24(FP), R6
+ MOVV R0, R7
+ MOVV R0, R8
+ MOVV R0, R9
+ MOVV trap+0(FP), R2 // syscall entry
+ SYSCALL
+ MOVV R2, r1+32(FP)
+ MOVV R3, r2+40(FP)
+ JAL runtime·exitsyscall(SB)
+ RET
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ JMP syscall·RawSyscall6(SB)
+
+TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
+ MOVV a1+8(FP), R4
+ MOVV a2+16(FP), R5
+ MOVV a3+24(FP), R6
+ MOVV R0, R7
+ MOVV R0, R8
+ MOVV R0, R9
+ MOVV trap+0(FP), R2 // syscall entry
+ SYSCALL
+ MOVV R2, r1+32(FP)
+ MOVV R3, r2+40(FP)
+ RET
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s
new file mode 100644
index 0000000000..99e5399045
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s
@@ -0,0 +1,54 @@
+// Copyright 2016 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 linux
+// +build mips mipsle
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for mips, Linux
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-52
+ JMP syscall·Syscall9(SB)
+
+TEXT ·SyscallNoError(SB),NOSPLIT,$0-24
+ JAL runtime·entersyscall(SB)
+ MOVW a1+4(FP), R4
+ MOVW a2+8(FP), R5
+ MOVW a3+12(FP), R6
+ MOVW R0, R7
+ MOVW trap+0(FP), R2 // syscall entry
+ SYSCALL
+ MOVW R2, r1+16(FP) // r1
+ MOVW R3, r2+20(FP) // r2
+ JAL runtime·exitsyscall(SB)
+ RET
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ JMP syscall·RawSyscall6(SB)
+
+TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24
+ MOVW a1+4(FP), R4
+ MOVW a2+8(FP), R5
+ MOVW a3+12(FP), R6
+ MOVW trap+0(FP), R2 // syscall entry
+ SYSCALL
+ MOVW R2, r1+16(FP)
+ MOVW R3, r2+20(FP)
+ RET
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s
new file mode 100644
index 0000000000..88f7125578
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s
@@ -0,0 +1,44 @@
+// 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.
+
+// +build linux
+// +build ppc64 ppc64le
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for ppc64, Linux
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
+ BL runtime·entersyscall(SB)
+ MOVD a1+8(FP), R3
+ MOVD a2+16(FP), R4
+ MOVD a3+24(FP), R5
+ MOVD R0, R6
+ MOVD R0, R7
+ MOVD R0, R8
+ MOVD trap+0(FP), R9 // syscall entry
+ SYSCALL R9
+ MOVD R3, r1+32(FP)
+ MOVD R4, r2+40(FP)
+ BL runtime·exitsyscall(SB)
+ RET
+
+TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
+ MOVD a1+8(FP), R3
+ MOVD a2+16(FP), R4
+ MOVD a3+24(FP), R5
+ MOVD R0, R6
+ MOVD R0, R7
+ MOVD R0, R8
+ MOVD trap+0(FP), R9 // syscall entry
+ SYSCALL R9
+ MOVD R3, r1+32(FP)
+ MOVD R4, r2+40(FP)
+ RET
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_s390x.s b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s
new file mode 100644
index 0000000000..a5a863c6bd
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s
@@ -0,0 +1,56 @@
+// Copyright 2016 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 s390x
+// +build linux
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for s390x, Linux
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ BR syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ BR syscall·Syscall6(SB)
+
+TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
+ BL runtime·entersyscall(SB)
+ MOVD a1+8(FP), R2
+ MOVD a2+16(FP), R3
+ MOVD a3+24(FP), R4
+ MOVD $0, R5
+ MOVD $0, R6
+ MOVD $0, R7
+ MOVD trap+0(FP), R1 // syscall entry
+ SYSCALL
+ MOVD R2, r1+32(FP)
+ MOVD R3, r2+40(FP)
+ BL runtime·exitsyscall(SB)
+ RET
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ BR syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ BR syscall·RawSyscall6(SB)
+
+TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
+ MOVD a1+8(FP), R2
+ MOVD a2+16(FP), R3
+ MOVD a3+24(FP), R4
+ MOVD $0, R5
+ MOVD $0, R6
+ MOVD $0, R7
+ MOVD trap+0(FP), R1 // syscall entry
+ SYSCALL
+ MOVD R2, r1+32(FP)
+ MOVD R3, r2+40(FP)
+ RET
diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_386.s b/vendor/golang.org/x/sys/unix/asm_netbsd_386.s
new file mode 100644
index 0000000000..48bdcd7632
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_netbsd_386.s
@@ -0,0 +1,29 @@
+// Copyright 2009 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 !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for 386, NetBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-52
+ JMP syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s
new file mode 100644
index 0000000000..2ede05c72f
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s
@@ -0,0 +1,29 @@
+// Copyright 2009 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 !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for AMD64, NetBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-104
+ JMP syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s b/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s
new file mode 100644
index 0000000000..e8928571c4
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s
@@ -0,0 +1,29 @@
+// 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.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for ARM, NetBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ B syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ B syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-52
+ B syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ B syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ B syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s b/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s
new file mode 100644
index 0000000000..6f98ba5a37
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s
@@ -0,0 +1,29 @@
+// Copyright 2019 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 !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for ARM64, NetBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ B syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ B syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-104
+ B syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ B syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ B syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_386.s b/vendor/golang.org/x/sys/unix/asm_openbsd_386.s
new file mode 100644
index 0000000000..00576f3c83
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_openbsd_386.s
@@ -0,0 +1,29 @@
+// Copyright 2009 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 !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for 386, OpenBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-52
+ JMP syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s
new file mode 100644
index 0000000000..790ef77f86
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s
@@ -0,0 +1,29 @@
+// Copyright 2009 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 !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for AMD64, OpenBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-104
+ JMP syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s b/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s
new file mode 100644
index 0000000000..469bfa1003
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s
@@ -0,0 +1,29 @@
+// Copyright 2017 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 !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for ARM, OpenBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ B syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ B syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-52
+ B syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ B syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ B syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s
new file mode 100644
index 0000000000..ded8260f3e
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s
@@ -0,0 +1,17 @@
+// 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.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go
+//
+
+TEXT ·sysvicall6(SB),NOSPLIT,$0-88
+ JMP syscall·sysvicall6(SB)
+
+TEXT ·rawSysvicall6(SB),NOSPLIT,$0-88
+ JMP syscall·rawSysvicall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/bluetooth_linux.go b/vendor/golang.org/x/sys/unix/bluetooth_linux.go
new file mode 100644
index 0000000000..6e32296970
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/bluetooth_linux.go
@@ -0,0 +1,35 @@
+// Copyright 2016 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.
+
+// Bluetooth sockets and messages
+
+package unix
+
+// Bluetooth Protocols
+const (
+ BTPROTO_L2CAP = 0
+ BTPROTO_HCI = 1
+ BTPROTO_SCO = 2
+ BTPROTO_RFCOMM = 3
+ BTPROTO_BNEP = 4
+ BTPROTO_CMTP = 5
+ BTPROTO_HIDP = 6
+ BTPROTO_AVDTP = 7
+)
+
+const (
+ HCI_CHANNEL_RAW = 0
+ HCI_CHANNEL_USER = 1
+ HCI_CHANNEL_MONITOR = 2
+ HCI_CHANNEL_CONTROL = 3
+)
+
+// Socketoption Level
+const (
+ SOL_BLUETOOTH = 0x112
+ SOL_HCI = 0x0
+ SOL_L2CAP = 0x6
+ SOL_RFCOMM = 0x12
+ SOL_SCO = 0x11
+)
diff --git a/vendor/golang.org/x/sys/unix/cap_freebsd.go b/vendor/golang.org/x/sys/unix/cap_freebsd.go
new file mode 100644
index 0000000000..df52048773
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/cap_freebsd.go
@@ -0,0 +1,195 @@
+// Copyright 2017 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 freebsd
+
+package unix
+
+import (
+ "errors"
+ "fmt"
+)
+
+// Go implementation of C mostly found in /usr/src/sys/kern/subr_capability.c
+
+const (
+ // This is the version of CapRights this package understands. See C implementation for parallels.
+ capRightsGoVersion = CAP_RIGHTS_VERSION_00
+ capArSizeMin = CAP_RIGHTS_VERSION_00 + 2
+ capArSizeMax = capRightsGoVersion + 2
+)
+
+var (
+ bit2idx = []int{
+ -1, 0, 1, -1, 2, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1,
+ 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ }
+)
+
+func capidxbit(right uint64) int {
+ return int((right >> 57) & 0x1f)
+}
+
+func rightToIndex(right uint64) (int, error) {
+ idx := capidxbit(right)
+ if idx < 0 || idx >= len(bit2idx) {
+ return -2, fmt.Errorf("index for right 0x%x out of range", right)
+ }
+ return bit2idx[idx], nil
+}
+
+func caprver(right uint64) int {
+ return int(right >> 62)
+}
+
+func capver(rights *CapRights) int {
+ return caprver(rights.Rights[0])
+}
+
+func caparsize(rights *CapRights) int {
+ return capver(rights) + 2
+}
+
+// CapRightsSet sets the permissions in setrights in rights.
+func CapRightsSet(rights *CapRights, setrights []uint64) error {
+ // This is essentially a copy of cap_rights_vset()
+ if capver(rights) != CAP_RIGHTS_VERSION_00 {
+ return fmt.Errorf("bad rights version %d", capver(rights))
+ }
+
+ n := caparsize(rights)
+ if n < capArSizeMin || n > capArSizeMax {
+ return errors.New("bad rights size")
+ }
+
+ for _, right := range setrights {
+ if caprver(right) != CAP_RIGHTS_VERSION_00 {
+ return errors.New("bad right version")
+ }
+ i, err := rightToIndex(right)
+ if err != nil {
+ return err
+ }
+ if i >= n {
+ return errors.New("index overflow")
+ }
+ if capidxbit(rights.Rights[i]) != capidxbit(right) {
+ return errors.New("index mismatch")
+ }
+ rights.Rights[i] |= right
+ if capidxbit(rights.Rights[i]) != capidxbit(right) {
+ return errors.New("index mismatch (after assign)")
+ }
+ }
+
+ return nil
+}
+
+// CapRightsClear clears the permissions in clearrights from rights.
+func CapRightsClear(rights *CapRights, clearrights []uint64) error {
+ // This is essentially a copy of cap_rights_vclear()
+ if capver(rights) != CAP_RIGHTS_VERSION_00 {
+ return fmt.Errorf("bad rights version %d", capver(rights))
+ }
+
+ n := caparsize(rights)
+ if n < capArSizeMin || n > capArSizeMax {
+ return errors.New("bad rights size")
+ }
+
+ for _, right := range clearrights {
+ if caprver(right) != CAP_RIGHTS_VERSION_00 {
+ return errors.New("bad right version")
+ }
+ i, err := rightToIndex(right)
+ if err != nil {
+ return err
+ }
+ if i >= n {
+ return errors.New("index overflow")
+ }
+ if capidxbit(rights.Rights[i]) != capidxbit(right) {
+ return errors.New("index mismatch")
+ }
+ rights.Rights[i] &= ^(right & 0x01FFFFFFFFFFFFFF)
+ if capidxbit(rights.Rights[i]) != capidxbit(right) {
+ return errors.New("index mismatch (after assign)")
+ }
+ }
+
+ return nil
+}
+
+// CapRightsIsSet checks whether all the permissions in setrights are present in rights.
+func CapRightsIsSet(rights *CapRights, setrights []uint64) (bool, error) {
+ // This is essentially a copy of cap_rights_is_vset()
+ if capver(rights) != CAP_RIGHTS_VERSION_00 {
+ return false, fmt.Errorf("bad rights version %d", capver(rights))
+ }
+
+ n := caparsize(rights)
+ if n < capArSizeMin || n > capArSizeMax {
+ return false, errors.New("bad rights size")
+ }
+
+ for _, right := range setrights {
+ if caprver(right) != CAP_RIGHTS_VERSION_00 {
+ return false, errors.New("bad right version")
+ }
+ i, err := rightToIndex(right)
+ if err != nil {
+ return false, err
+ }
+ if i >= n {
+ return false, errors.New("index overflow")
+ }
+ if capidxbit(rights.Rights[i]) != capidxbit(right) {
+ return false, errors.New("index mismatch")
+ }
+ if (rights.Rights[i] & right) != right {
+ return false, nil
+ }
+ }
+
+ return true, nil
+}
+
+func capright(idx uint64, bit uint64) uint64 {
+ return ((1 << (57 + idx)) | bit)
+}
+
+// CapRightsInit returns a pointer to an initialised CapRights structure filled with rights.
+// See man cap_rights_init(3) and rights(4).
+func CapRightsInit(rights []uint64) (*CapRights, error) {
+ var r CapRights
+ r.Rights[0] = (capRightsGoVersion << 62) | capright(0, 0)
+ r.Rights[1] = capright(1, 0)
+
+ err := CapRightsSet(&r, rights)
+ if err != nil {
+ return nil, err
+ }
+ return &r, nil
+}
+
+// CapRightsLimit reduces the operations permitted on fd to at most those contained in rights.
+// The capability rights on fd can never be increased by CapRightsLimit.
+// See man cap_rights_limit(2) and rights(4).
+func CapRightsLimit(fd uintptr, rights *CapRights) error {
+ return capRightsLimit(int(fd), rights)
+}
+
+// CapRightsGet returns a CapRights structure containing the operations permitted on fd.
+// See man cap_rights_get(3) and rights(4).
+func CapRightsGet(fd uintptr) (*CapRights, error) {
+ r, err := CapRightsInit(nil)
+ if err != nil {
+ return nil, err
+ }
+ err = capRightsGet(capRightsGoVersion, int(fd), r)
+ if err != nil {
+ return nil, err
+ }
+ return r, nil
+}
diff --git a/vendor/golang.org/x/sys/unix/constants.go b/vendor/golang.org/x/sys/unix/constants.go
new file mode 100644
index 0000000000..3a6ac648dd
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/constants.go
@@ -0,0 +1,13 @@
+// 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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
+
+package unix
+
+const (
+ R_OK = 0x4
+ W_OK = 0x2
+ X_OK = 0x1
+)
diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc.go
new file mode 100644
index 0000000000..5e5fb45104
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/dev_aix_ppc.go
@@ -0,0 +1,27 @@
+// Copyright 2018 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 aix
+// +build ppc
+
+// Functions to access/create device major and minor numbers matching the
+// encoding used by AIX.
+
+package unix
+
+// Major returns the major component of a Linux device number.
+func Major(dev uint64) uint32 {
+ return uint32((dev >> 16) & 0xffff)
+}
+
+// Minor returns the minor component of a Linux device number.
+func Minor(dev uint64) uint32 {
+ return uint32(dev & 0xffff)
+}
+
+// Mkdev returns a Linux device number generated from the given major and minor
+// components.
+func Mkdev(major, minor uint32) uint64 {
+ return uint64(((major) << 16) | (minor))
+}
diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go
new file mode 100644
index 0000000000..8b401244c4
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go
@@ -0,0 +1,29 @@
+// Copyright 2018 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 aix
+// +build ppc64
+
+// Functions to access/create device major and minor numbers matching the
+// encoding used AIX.
+
+package unix
+
+// Major returns the major component of a Linux device number.
+func Major(dev uint64) uint32 {
+ return uint32((dev & 0x3fffffff00000000) >> 32)
+}
+
+// Minor returns the minor component of a Linux device number.
+func Minor(dev uint64) uint32 {
+ return uint32((dev & 0x00000000ffffffff) >> 0)
+}
+
+// Mkdev returns a Linux device number generated from the given major and minor
+// components.
+func Mkdev(major, minor uint32) uint64 {
+ var DEVNO64 uint64
+ DEVNO64 = 0x8000000000000000
+ return ((uint64(major) << 32) | (uint64(minor) & 0x00000000FFFFFFFF) | DEVNO64)
+}
diff --git a/vendor/golang.org/x/sys/unix/dev_darwin.go b/vendor/golang.org/x/sys/unix/dev_darwin.go
new file mode 100644
index 0000000000..8d1dc0fa3d
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/dev_darwin.go
@@ -0,0 +1,24 @@
+// Copyright 2017 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.
+
+// Functions to access/create device major and minor numbers matching the
+// encoding used in Darwin's sys/types.h header.
+
+package unix
+
+// Major returns the major component of a Darwin device number.
+func Major(dev uint64) uint32 {
+ return uint32((dev >> 24) & 0xff)
+}
+
+// Minor returns the minor component of a Darwin device number.
+func Minor(dev uint64) uint32 {
+ return uint32(dev & 0xffffff)
+}
+
+// Mkdev returns a Darwin device number generated from the given major and minor
+// components.
+func Mkdev(major, minor uint32) uint64 {
+ return (uint64(major) << 24) | uint64(minor)
+}
diff --git a/vendor/golang.org/x/sys/unix/dev_dragonfly.go b/vendor/golang.org/x/sys/unix/dev_dragonfly.go
new file mode 100644
index 0000000000..8502f202ce
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/dev_dragonfly.go
@@ -0,0 +1,30 @@
+// Copyright 2017 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.
+
+// Functions to access/create device major and minor numbers matching the
+// encoding used in Dragonfly's sys/types.h header.
+//
+// The information below is extracted and adapted from sys/types.h:
+//
+// Minor gives a cookie instead of an index since in order to avoid changing the
+// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for
+// devices that don't use them.
+
+package unix
+
+// Major returns the major component of a DragonFlyBSD device number.
+func Major(dev uint64) uint32 {
+ return uint32((dev >> 8) & 0xff)
+}
+
+// Minor returns the minor component of a DragonFlyBSD device number.
+func Minor(dev uint64) uint32 {
+ return uint32(dev & 0xffff00ff)
+}
+
+// Mkdev returns a DragonFlyBSD device number generated from the given major and
+// minor components.
+func Mkdev(major, minor uint32) uint64 {
+ return (uint64(major) << 8) | uint64(minor)
+}
diff --git a/vendor/golang.org/x/sys/unix/dev_freebsd.go b/vendor/golang.org/x/sys/unix/dev_freebsd.go
new file mode 100644
index 0000000000..eba3b4bd38
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/dev_freebsd.go
@@ -0,0 +1,30 @@
+// Copyright 2017 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.
+
+// Functions to access/create device major and minor numbers matching the
+// encoding used in FreeBSD's sys/types.h header.
+//
+// The information below is extracted and adapted from sys/types.h:
+//
+// Minor gives a cookie instead of an index since in order to avoid changing the
+// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for
+// devices that don't use them.
+
+package unix
+
+// Major returns the major component of a FreeBSD device number.
+func Major(dev uint64) uint32 {
+ return uint32((dev >> 8) & 0xff)
+}
+
+// Minor returns the minor component of a FreeBSD device number.
+func Minor(dev uint64) uint32 {
+ return uint32(dev & 0xffff00ff)
+}
+
+// Mkdev returns a FreeBSD device number generated from the given major and
+// minor components.
+func Mkdev(major, minor uint32) uint64 {
+ return (uint64(major) << 8) | uint64(minor)
+}
diff --git a/vendor/golang.org/x/sys/unix/dev_linux.go b/vendor/golang.org/x/sys/unix/dev_linux.go
new file mode 100644
index 0000000000..d165d6f308
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/dev_linux.go
@@ -0,0 +1,42 @@
+// Copyright 2017 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.
+
+// Functions to access/create device major and minor numbers matching the
+// encoding used by the Linux kernel and glibc.
+//
+// The information below is extracted and adapted from bits/sysmacros.h in the
+// glibc sources:
+//
+// dev_t in glibc is 64-bit, with 32-bit major and minor numbers. glibc's
+// default encoding is MMMM Mmmm mmmM MMmm, where M is a hex digit of the major
+// number and m is a hex digit of the minor number. This is backward compatible
+// with legacy systems where dev_t is 16 bits wide, encoded as MMmm. It is also
+// backward compatible with the Linux kernel, which for some architectures uses
+// 32-bit dev_t, encoded as mmmM MMmm.
+
+package unix
+
+// Major returns the major component of a Linux device number.
+func Major(dev uint64) uint32 {
+ major := uint32((dev & 0x00000000000fff00) >> 8)
+ major |= uint32((dev & 0xfffff00000000000) >> 32)
+ return major
+}
+
+// Minor returns the minor component of a Linux device number.
+func Minor(dev uint64) uint32 {
+ minor := uint32((dev & 0x00000000000000ff) >> 0)
+ minor |= uint32((dev & 0x00000ffffff00000) >> 12)
+ return minor
+}
+
+// Mkdev returns a Linux device number generated from the given major and minor
+// components.
+func Mkdev(major, minor uint32) uint64 {
+ dev := (uint64(major) & 0x00000fff) << 8
+ dev |= (uint64(major) & 0xfffff000) << 32
+ dev |= (uint64(minor) & 0x000000ff) << 0
+ dev |= (uint64(minor) & 0xffffff00) << 12
+ return dev
+}
diff --git a/vendor/golang.org/x/sys/unix/dev_netbsd.go b/vendor/golang.org/x/sys/unix/dev_netbsd.go
new file mode 100644
index 0000000000..b4a203d0c5
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/dev_netbsd.go
@@ -0,0 +1,29 @@
+// Copyright 2017 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.
+
+// Functions to access/create device major and minor numbers matching the
+// encoding used in NetBSD's sys/types.h header.
+
+package unix
+
+// Major returns the major component of a NetBSD device number.
+func Major(dev uint64) uint32 {
+ return uint32((dev & 0x000fff00) >> 8)
+}
+
+// Minor returns the minor component of a NetBSD device number.
+func Minor(dev uint64) uint32 {
+ minor := uint32((dev & 0x000000ff) >> 0)
+ minor |= uint32((dev & 0xfff00000) >> 12)
+ return minor
+}
+
+// Mkdev returns a NetBSD device number generated from the given major and minor
+// components.
+func Mkdev(major, minor uint32) uint64 {
+ dev := (uint64(major) << 8) & 0x000fff00
+ dev |= (uint64(minor) << 12) & 0xfff00000
+ dev |= (uint64(minor) << 0) & 0x000000ff
+ return dev
+}
diff --git a/vendor/golang.org/x/sys/unix/dev_openbsd.go b/vendor/golang.org/x/sys/unix/dev_openbsd.go
new file mode 100644
index 0000000000..f3430c42ff
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/dev_openbsd.go
@@ -0,0 +1,29 @@
+// Copyright 2017 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.
+
+// Functions to access/create device major and minor numbers matching the
+// encoding used in OpenBSD's sys/types.h header.
+
+package unix
+
+// Major returns the major component of an OpenBSD device number.
+func Major(dev uint64) uint32 {
+ return uint32((dev & 0x0000ff00) >> 8)
+}
+
+// Minor returns the minor component of an OpenBSD device number.
+func Minor(dev uint64) uint32 {
+ minor := uint32((dev & 0x000000ff) >> 0)
+ minor |= uint32((dev & 0xffff0000) >> 8)
+ return minor
+}
+
+// Mkdev returns an OpenBSD device number generated from the given major and minor
+// components.
+func Mkdev(major, minor uint32) uint64 {
+ dev := (uint64(major) << 8) & 0x0000ff00
+ dev |= (uint64(minor) << 8) & 0xffff0000
+ dev |= (uint64(minor) << 0) & 0x000000ff
+ return dev
+}
diff --git a/vendor/golang.org/x/sys/unix/dirent.go b/vendor/golang.org/x/sys/unix/dirent.go
new file mode 100644
index 0000000000..4407c505a3
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/dirent.go
@@ -0,0 +1,17 @@
+// Copyright 2009 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 aix darwin dragonfly freebsd linux nacl netbsd openbsd solaris
+
+package unix
+
+import "syscall"
+
+// ParseDirent parses up to max directory entries in buf,
+// appending the names to names. It returns the number of
+// bytes consumed from buf, the number of entries added
+// to names, and the new names slice.
+func ParseDirent(buf []byte, max int, names []string) (consumed int, count int, newnames []string) {
+ return syscall.ParseDirent(buf, max, names)
+}
diff --git a/vendor/golang.org/x/sys/unix/endian_big.go b/vendor/golang.org/x/sys/unix/endian_big.go
new file mode 100644
index 0000000000..5e9269063f
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/endian_big.go
@@ -0,0 +1,9 @@
+// Copyright 2016 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 ppc64 s390x mips mips64
+
+package unix
+
+const isBigEndian = true
diff --git a/vendor/golang.org/x/sys/unix/endian_little.go b/vendor/golang.org/x/sys/unix/endian_little.go
new file mode 100644
index 0000000000..085df2d8dd
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/endian_little.go
@@ -0,0 +1,9 @@
+// Copyright 2016 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 386 amd64 amd64p32 arm arm64 ppc64le mipsle mips64le
+
+package unix
+
+const isBigEndian = false
diff --git a/vendor/golang.org/x/sys/unix/env_unix.go b/vendor/golang.org/x/sys/unix/env_unix.go
new file mode 100644
index 0000000000..84178b0a13
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/env_unix.go
@@ -0,0 +1,31 @@
+// Copyright 2010 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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
+
+// Unix environment variables.
+
+package unix
+
+import "syscall"
+
+func Getenv(key string) (value string, found bool) {
+ return syscall.Getenv(key)
+}
+
+func Setenv(key, value string) error {
+ return syscall.Setenv(key, value)
+}
+
+func Clearenv() {
+ syscall.Clearenv()
+}
+
+func Environ() []string {
+ return syscall.Environ()
+}
+
+func Unsetenv(key string) error {
+ return syscall.Unsetenv(key)
+}
diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_386.go b/vendor/golang.org/x/sys/unix/errors_freebsd_386.go
new file mode 100644
index 0000000000..c56bc8b05e
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/errors_freebsd_386.go
@@ -0,0 +1,227 @@
+// Copyright 2017 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.
+
+// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep
+// them here for backwards compatibility.
+
+package unix
+
+const (
+ IFF_SMART = 0x20
+ IFT_1822 = 0x2
+ IFT_A12MPPSWITCH = 0x82
+ IFT_AAL2 = 0xbb
+ IFT_AAL5 = 0x31
+ IFT_ADSL = 0x5e
+ IFT_AFLANE8023 = 0x3b
+ IFT_AFLANE8025 = 0x3c
+ IFT_ARAP = 0x58
+ IFT_ARCNET = 0x23
+ IFT_ARCNETPLUS = 0x24
+ IFT_ASYNC = 0x54
+ IFT_ATM = 0x25
+ IFT_ATMDXI = 0x69
+ IFT_ATMFUNI = 0x6a
+ IFT_ATMIMA = 0x6b
+ IFT_ATMLOGICAL = 0x50
+ IFT_ATMRADIO = 0xbd
+ IFT_ATMSUBINTERFACE = 0x86
+ IFT_ATMVCIENDPT = 0xc2
+ IFT_ATMVIRTUAL = 0x95
+ IFT_BGPPOLICYACCOUNTING = 0xa2
+ IFT_BSC = 0x53
+ IFT_CCTEMUL = 0x3d
+ IFT_CEPT = 0x13
+ IFT_CES = 0x85
+ IFT_CHANNEL = 0x46
+ IFT_CNR = 0x55
+ IFT_COFFEE = 0x84
+ IFT_COMPOSITELINK = 0x9b
+ IFT_DCN = 0x8d
+ IFT_DIGITALPOWERLINE = 0x8a
+ IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
+ IFT_DLSW = 0x4a
+ IFT_DOCSCABLEDOWNSTREAM = 0x80
+ IFT_DOCSCABLEMACLAYER = 0x7f
+ IFT_DOCSCABLEUPSTREAM = 0x81
+ IFT_DS0 = 0x51
+ IFT_DS0BUNDLE = 0x52
+ IFT_DS1FDL = 0xaa
+ IFT_DS3 = 0x1e
+ IFT_DTM = 0x8c
+ IFT_DVBASILN = 0xac
+ IFT_DVBASIOUT = 0xad
+ IFT_DVBRCCDOWNSTREAM = 0x93
+ IFT_DVBRCCMACLAYER = 0x92
+ IFT_DVBRCCUPSTREAM = 0x94
+ IFT_ENC = 0xf4
+ IFT_EON = 0x19
+ IFT_EPLRS = 0x57
+ IFT_ESCON = 0x49
+ IFT_ETHER = 0x6
+ IFT_FAITH = 0xf2
+ IFT_FAST = 0x7d
+ IFT_FASTETHER = 0x3e
+ IFT_FASTETHERFX = 0x45
+ IFT_FDDI = 0xf
+ IFT_FIBRECHANNEL = 0x38
+ IFT_FRAMERELAYINTERCONNECT = 0x3a
+ IFT_FRAMERELAYMPI = 0x5c
+ IFT_FRDLCIENDPT = 0xc1
+ IFT_FRELAY = 0x20
+ IFT_FRELAYDCE = 0x2c
+ IFT_FRF16MFRBUNDLE = 0xa3
+ IFT_FRFORWARD = 0x9e
+ IFT_G703AT2MB = 0x43
+ IFT_G703AT64K = 0x42
+ IFT_GIF = 0xf0
+ IFT_GIGABITETHERNET = 0x75
+ IFT_GR303IDT = 0xb2
+ IFT_GR303RDT = 0xb1
+ IFT_H323GATEKEEPER = 0xa4
+ IFT_H323PROXY = 0xa5
+ IFT_HDH1822 = 0x3
+ IFT_HDLC = 0x76
+ IFT_HDSL2 = 0xa8
+ IFT_HIPERLAN2 = 0xb7
+ IFT_HIPPI = 0x2f
+ IFT_HIPPIINTERFACE = 0x39
+ IFT_HOSTPAD = 0x5a
+ IFT_HSSI = 0x2e
+ IFT_HY = 0xe
+ IFT_IBM370PARCHAN = 0x48
+ IFT_IDSL = 0x9a
+ IFT_IEEE80211 = 0x47
+ IFT_IEEE80212 = 0x37
+ IFT_IEEE8023ADLAG = 0xa1
+ IFT_IFGSN = 0x91
+ IFT_IMT = 0xbe
+ IFT_INTERLEAVE = 0x7c
+ IFT_IP = 0x7e
+ IFT_IPFORWARD = 0x8e
+ IFT_IPOVERATM = 0x72
+ IFT_IPOVERCDLC = 0x6d
+ IFT_IPOVERCLAW = 0x6e
+ IFT_IPSWITCH = 0x4e
+ IFT_IPXIP = 0xf9
+ IFT_ISDN = 0x3f
+ IFT_ISDNBASIC = 0x14
+ IFT_ISDNPRIMARY = 0x15
+ IFT_ISDNS = 0x4b
+ IFT_ISDNU = 0x4c
+ IFT_ISO88022LLC = 0x29
+ IFT_ISO88023 = 0x7
+ IFT_ISO88024 = 0x8
+ IFT_ISO88025 = 0x9
+ IFT_ISO88025CRFPINT = 0x62
+ IFT_ISO88025DTR = 0x56
+ IFT_ISO88025FIBER = 0x73
+ IFT_ISO88026 = 0xa
+ IFT_ISUP = 0xb3
+ IFT_L3IPXVLAN = 0x89
+ IFT_LAPB = 0x10
+ IFT_LAPD = 0x4d
+ IFT_LAPF = 0x77
+ IFT_LOCALTALK = 0x2a
+ IFT_LOOP = 0x18
+ IFT_MEDIAMAILOVERIP = 0x8b
+ IFT_MFSIGLINK = 0xa7
+ IFT_MIOX25 = 0x26
+ IFT_MODEM = 0x30
+ IFT_MPC = 0x71
+ IFT_MPLS = 0xa6
+ IFT_MPLSTUNNEL = 0x96
+ IFT_MSDSL = 0x8f
+ IFT_MVL = 0xbf
+ IFT_MYRINET = 0x63
+ IFT_NFAS = 0xaf
+ IFT_NSIP = 0x1b
+ IFT_OPTICALCHANNEL = 0xc3
+ IFT_OPTICALTRANSPORT = 0xc4
+ IFT_OTHER = 0x1
+ IFT_P10 = 0xc
+ IFT_P80 = 0xd
+ IFT_PARA = 0x22
+ IFT_PFLOG = 0xf6
+ IFT_PFSYNC = 0xf7
+ IFT_PLC = 0xae
+ IFT_POS = 0xab
+ IFT_PPPMULTILINKBUNDLE = 0x6c
+ IFT_PROPBWAP2MP = 0xb8
+ IFT_PROPCNLS = 0x59
+ IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5
+ IFT_PROPDOCSWIRELESSMACLAYER = 0xb4
+ IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6
+ IFT_PROPMUX = 0x36
+ IFT_PROPWIRELESSP2P = 0x9d
+ IFT_PTPSERIAL = 0x16
+ IFT_PVC = 0xf1
+ IFT_QLLC = 0x44
+ IFT_RADIOMAC = 0xbc
+ IFT_RADSL = 0x5f
+ IFT_REACHDSL = 0xc0
+ IFT_RFC1483 = 0x9f
+ IFT_RS232 = 0x21
+ IFT_RSRB = 0x4f
+ IFT_SDLC = 0x11
+ IFT_SDSL = 0x60
+ IFT_SHDSL = 0xa9
+ IFT_SIP = 0x1f
+ IFT_SLIP = 0x1c
+ IFT_SMDSDXI = 0x2b
+ IFT_SMDSICIP = 0x34
+ IFT_SONET = 0x27
+ IFT_SONETOVERHEADCHANNEL = 0xb9
+ IFT_SONETPATH = 0x32
+ IFT_SONETVT = 0x33
+ IFT_SRP = 0x97
+ IFT_SS7SIGLINK = 0x9c
+ IFT_STACKTOSTACK = 0x6f
+ IFT_STARLAN = 0xb
+ IFT_STF = 0xd7
+ IFT_T1 = 0x12
+ IFT_TDLC = 0x74
+ IFT_TERMPAD = 0x5b
+ IFT_TR008 = 0xb0
+ IFT_TRANSPHDLC = 0x7b
+ IFT_TUNNEL = 0x83
+ IFT_ULTRA = 0x1d
+ IFT_USB = 0xa0
+ IFT_V11 = 0x40
+ IFT_V35 = 0x2d
+ IFT_V36 = 0x41
+ IFT_V37 = 0x78
+ IFT_VDSL = 0x61
+ IFT_VIRTUALIPADDRESS = 0x70
+ IFT_VOICEEM = 0x64
+ IFT_VOICEENCAP = 0x67
+ IFT_VOICEFXO = 0x65
+ IFT_VOICEFXS = 0x66
+ IFT_VOICEOVERATM = 0x98
+ IFT_VOICEOVERFRAMERELAY = 0x99
+ IFT_VOICEOVERIP = 0x68
+ IFT_X213 = 0x5d
+ IFT_X25 = 0x5
+ IFT_X25DDN = 0x4
+ IFT_X25HUNTGROUP = 0x7a
+ IFT_X25MLP = 0x79
+ IFT_X25PLE = 0x28
+ IFT_XETHER = 0x1a
+ IPPROTO_MAXID = 0x34
+ IPV6_FAITH = 0x1d
+ IP_FAITH = 0x16
+ MAP_NORESERVE = 0x40
+ MAP_RENAME = 0x20
+ NET_RT_MAXID = 0x6
+ RTF_PRCLONING = 0x10000
+ RTM_OLDADD = 0x9
+ RTM_OLDDEL = 0xa
+ SIOCADDRT = 0x8030720a
+ SIOCALIFADDR = 0x8118691b
+ SIOCDELRT = 0x8030720b
+ SIOCDLIFADDR = 0x8118691d
+ SIOCGLIFADDR = 0xc118691c
+ SIOCGLIFPHYADDR = 0xc118694b
+ SIOCSLIFPHYADDR = 0x8118694a
+)
diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go
new file mode 100644
index 0000000000..3e9771175a
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go
@@ -0,0 +1,227 @@
+// Copyright 2017 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.
+
+// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep
+// them here for backwards compatibility.
+
+package unix
+
+const (
+ IFF_SMART = 0x20
+ IFT_1822 = 0x2
+ IFT_A12MPPSWITCH = 0x82
+ IFT_AAL2 = 0xbb
+ IFT_AAL5 = 0x31
+ IFT_ADSL = 0x5e
+ IFT_AFLANE8023 = 0x3b
+ IFT_AFLANE8025 = 0x3c
+ IFT_ARAP = 0x58
+ IFT_ARCNET = 0x23
+ IFT_ARCNETPLUS = 0x24
+ IFT_ASYNC = 0x54
+ IFT_ATM = 0x25
+ IFT_ATMDXI = 0x69
+ IFT_ATMFUNI = 0x6a
+ IFT_ATMIMA = 0x6b
+ IFT_ATMLOGICAL = 0x50
+ IFT_ATMRADIO = 0xbd
+ IFT_ATMSUBINTERFACE = 0x86
+ IFT_ATMVCIENDPT = 0xc2
+ IFT_ATMVIRTUAL = 0x95
+ IFT_BGPPOLICYACCOUNTING = 0xa2
+ IFT_BSC = 0x53
+ IFT_CCTEMUL = 0x3d
+ IFT_CEPT = 0x13
+ IFT_CES = 0x85
+ IFT_CHANNEL = 0x46
+ IFT_CNR = 0x55
+ IFT_COFFEE = 0x84
+ IFT_COMPOSITELINK = 0x9b
+ IFT_DCN = 0x8d
+ IFT_DIGITALPOWERLINE = 0x8a
+ IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
+ IFT_DLSW = 0x4a
+ IFT_DOCSCABLEDOWNSTREAM = 0x80
+ IFT_DOCSCABLEMACLAYER = 0x7f
+ IFT_DOCSCABLEUPSTREAM = 0x81
+ IFT_DS0 = 0x51
+ IFT_DS0BUNDLE = 0x52
+ IFT_DS1FDL = 0xaa
+ IFT_DS3 = 0x1e
+ IFT_DTM = 0x8c
+ IFT_DVBASILN = 0xac
+ IFT_DVBASIOUT = 0xad
+ IFT_DVBRCCDOWNSTREAM = 0x93
+ IFT_DVBRCCMACLAYER = 0x92
+ IFT_DVBRCCUPSTREAM = 0x94
+ IFT_ENC = 0xf4
+ IFT_EON = 0x19
+ IFT_EPLRS = 0x57
+ IFT_ESCON = 0x49
+ IFT_ETHER = 0x6
+ IFT_FAITH = 0xf2
+ IFT_FAST = 0x7d
+ IFT_FASTETHER = 0x3e
+ IFT_FASTETHERFX = 0x45
+ IFT_FDDI = 0xf
+ IFT_FIBRECHANNEL = 0x38
+ IFT_FRAMERELAYINTERCONNECT = 0x3a
+ IFT_FRAMERELAYMPI = 0x5c
+ IFT_FRDLCIENDPT = 0xc1
+ IFT_FRELAY = 0x20
+ IFT_FRELAYDCE = 0x2c
+ IFT_FRF16MFRBUNDLE = 0xa3
+ IFT_FRFORWARD = 0x9e
+ IFT_G703AT2MB = 0x43
+ IFT_G703AT64K = 0x42
+ IFT_GIF = 0xf0
+ IFT_GIGABITETHERNET = 0x75
+ IFT_GR303IDT = 0xb2
+ IFT_GR303RDT = 0xb1
+ IFT_H323GATEKEEPER = 0xa4
+ IFT_H323PROXY = 0xa5
+ IFT_HDH1822 = 0x3
+ IFT_HDLC = 0x76
+ IFT_HDSL2 = 0xa8
+ IFT_HIPERLAN2 = 0xb7
+ IFT_HIPPI = 0x2f
+ IFT_HIPPIINTERFACE = 0x39
+ IFT_HOSTPAD = 0x5a
+ IFT_HSSI = 0x2e
+ IFT_HY = 0xe
+ IFT_IBM370PARCHAN = 0x48
+ IFT_IDSL = 0x9a
+ IFT_IEEE80211 = 0x47
+ IFT_IEEE80212 = 0x37
+ IFT_IEEE8023ADLAG = 0xa1
+ IFT_IFGSN = 0x91
+ IFT_IMT = 0xbe
+ IFT_INTERLEAVE = 0x7c
+ IFT_IP = 0x7e
+ IFT_IPFORWARD = 0x8e
+ IFT_IPOVERATM = 0x72
+ IFT_IPOVERCDLC = 0x6d
+ IFT_IPOVERCLAW = 0x6e
+ IFT_IPSWITCH = 0x4e
+ IFT_IPXIP = 0xf9
+ IFT_ISDN = 0x3f
+ IFT_ISDNBASIC = 0x14
+ IFT_ISDNPRIMARY = 0x15
+ IFT_ISDNS = 0x4b
+ IFT_ISDNU = 0x4c
+ IFT_ISO88022LLC = 0x29
+ IFT_ISO88023 = 0x7
+ IFT_ISO88024 = 0x8
+ IFT_ISO88025 = 0x9
+ IFT_ISO88025CRFPINT = 0x62
+ IFT_ISO88025DTR = 0x56
+ IFT_ISO88025FIBER = 0x73
+ IFT_ISO88026 = 0xa
+ IFT_ISUP = 0xb3
+ IFT_L3IPXVLAN = 0x89
+ IFT_LAPB = 0x10
+ IFT_LAPD = 0x4d
+ IFT_LAPF = 0x77
+ IFT_LOCALTALK = 0x2a
+ IFT_LOOP = 0x18
+ IFT_MEDIAMAILOVERIP = 0x8b
+ IFT_MFSIGLINK = 0xa7
+ IFT_MIOX25 = 0x26
+ IFT_MODEM = 0x30
+ IFT_MPC = 0x71
+ IFT_MPLS = 0xa6
+ IFT_MPLSTUNNEL = 0x96
+ IFT_MSDSL = 0x8f
+ IFT_MVL = 0xbf
+ IFT_MYRINET = 0x63
+ IFT_NFAS = 0xaf
+ IFT_NSIP = 0x1b
+ IFT_OPTICALCHANNEL = 0xc3
+ IFT_OPTICALTRANSPORT = 0xc4
+ IFT_OTHER = 0x1
+ IFT_P10 = 0xc
+ IFT_P80 = 0xd
+ IFT_PARA = 0x22
+ IFT_PFLOG = 0xf6
+ IFT_PFSYNC = 0xf7
+ IFT_PLC = 0xae
+ IFT_POS = 0xab
+ IFT_PPPMULTILINKBUNDLE = 0x6c
+ IFT_PROPBWAP2MP = 0xb8
+ IFT_PROPCNLS = 0x59
+ IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5
+ IFT_PROPDOCSWIRELESSMACLAYER = 0xb4
+ IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6
+ IFT_PROPMUX = 0x36
+ IFT_PROPWIRELESSP2P = 0x9d
+ IFT_PTPSERIAL = 0x16
+ IFT_PVC = 0xf1
+ IFT_QLLC = 0x44
+ IFT_RADIOMAC = 0xbc
+ IFT_RADSL = 0x5f
+ IFT_REACHDSL = 0xc0
+ IFT_RFC1483 = 0x9f
+ IFT_RS232 = 0x21
+ IFT_RSRB = 0x4f
+ IFT_SDLC = 0x11
+ IFT_SDSL = 0x60
+ IFT_SHDSL = 0xa9
+ IFT_SIP = 0x1f
+ IFT_SLIP = 0x1c
+ IFT_SMDSDXI = 0x2b
+ IFT_SMDSICIP = 0x34
+ IFT_SONET = 0x27
+ IFT_SONETOVERHEADCHANNEL = 0xb9
+ IFT_SONETPATH = 0x32
+ IFT_SONETVT = 0x33
+ IFT_SRP = 0x97
+ IFT_SS7SIGLINK = 0x9c
+ IFT_STACKTOSTACK = 0x6f
+ IFT_STARLAN = 0xb
+ IFT_STF = 0xd7
+ IFT_T1 = 0x12
+ IFT_TDLC = 0x74
+ IFT_TERMPAD = 0x5b
+ IFT_TR008 = 0xb0
+ IFT_TRANSPHDLC = 0x7b
+ IFT_TUNNEL = 0x83
+ IFT_ULTRA = 0x1d
+ IFT_USB = 0xa0
+ IFT_V11 = 0x40
+ IFT_V35 = 0x2d
+ IFT_V36 = 0x41
+ IFT_V37 = 0x78
+ IFT_VDSL = 0x61
+ IFT_VIRTUALIPADDRESS = 0x70
+ IFT_VOICEEM = 0x64
+ IFT_VOICEENCAP = 0x67
+ IFT_VOICEFXO = 0x65
+ IFT_VOICEFXS = 0x66
+ IFT_VOICEOVERATM = 0x98
+ IFT_VOICEOVERFRAMERELAY = 0x99
+ IFT_VOICEOVERIP = 0x68
+ IFT_X213 = 0x5d
+ IFT_X25 = 0x5
+ IFT_X25DDN = 0x4
+ IFT_X25HUNTGROUP = 0x7a
+ IFT_X25MLP = 0x79
+ IFT_X25PLE = 0x28
+ IFT_XETHER = 0x1a
+ IPPROTO_MAXID = 0x34
+ IPV6_FAITH = 0x1d
+ IP_FAITH = 0x16
+ MAP_NORESERVE = 0x40
+ MAP_RENAME = 0x20
+ NET_RT_MAXID = 0x6
+ RTF_PRCLONING = 0x10000
+ RTM_OLDADD = 0x9
+ RTM_OLDDEL = 0xa
+ SIOCADDRT = 0x8040720a
+ SIOCALIFADDR = 0x8118691b
+ SIOCDELRT = 0x8040720b
+ SIOCDLIFADDR = 0x8118691d
+ SIOCGLIFADDR = 0xc118691c
+ SIOCGLIFPHYADDR = 0xc118694b
+ SIOCSLIFPHYADDR = 0x8118694a
+)
diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_arm.go b/vendor/golang.org/x/sys/unix/errors_freebsd_arm.go
new file mode 100644
index 0000000000..856dca3254
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/errors_freebsd_arm.go
@@ -0,0 +1,226 @@
+// Copyright 2017 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 unix
+
+const (
+ IFT_1822 = 0x2
+ IFT_A12MPPSWITCH = 0x82
+ IFT_AAL2 = 0xbb
+ IFT_AAL5 = 0x31
+ IFT_ADSL = 0x5e
+ IFT_AFLANE8023 = 0x3b
+ IFT_AFLANE8025 = 0x3c
+ IFT_ARAP = 0x58
+ IFT_ARCNET = 0x23
+ IFT_ARCNETPLUS = 0x24
+ IFT_ASYNC = 0x54
+ IFT_ATM = 0x25
+ IFT_ATMDXI = 0x69
+ IFT_ATMFUNI = 0x6a
+ IFT_ATMIMA = 0x6b
+ IFT_ATMLOGICAL = 0x50
+ IFT_ATMRADIO = 0xbd
+ IFT_ATMSUBINTERFACE = 0x86
+ IFT_ATMVCIENDPT = 0xc2
+ IFT_ATMVIRTUAL = 0x95
+ IFT_BGPPOLICYACCOUNTING = 0xa2
+ IFT_BSC = 0x53
+ IFT_CCTEMUL = 0x3d
+ IFT_CEPT = 0x13
+ IFT_CES = 0x85
+ IFT_CHANNEL = 0x46
+ IFT_CNR = 0x55
+ IFT_COFFEE = 0x84
+ IFT_COMPOSITELINK = 0x9b
+ IFT_DCN = 0x8d
+ IFT_DIGITALPOWERLINE = 0x8a
+ IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
+ IFT_DLSW = 0x4a
+ IFT_DOCSCABLEDOWNSTREAM = 0x80
+ IFT_DOCSCABLEMACLAYER = 0x7f
+ IFT_DOCSCABLEUPSTREAM = 0x81
+ IFT_DS0 = 0x51
+ IFT_DS0BUNDLE = 0x52
+ IFT_DS1FDL = 0xaa
+ IFT_DS3 = 0x1e
+ IFT_DTM = 0x8c
+ IFT_DVBASILN = 0xac
+ IFT_DVBASIOUT = 0xad
+ IFT_DVBRCCDOWNSTREAM = 0x93
+ IFT_DVBRCCMACLAYER = 0x92
+ IFT_DVBRCCUPSTREAM = 0x94
+ IFT_ENC = 0xf4
+ IFT_EON = 0x19
+ IFT_EPLRS = 0x57
+ IFT_ESCON = 0x49
+ IFT_ETHER = 0x6
+ IFT_FAST = 0x7d
+ IFT_FASTETHER = 0x3e
+ IFT_FASTETHERFX = 0x45
+ IFT_FDDI = 0xf
+ IFT_FIBRECHANNEL = 0x38
+ IFT_FRAMERELAYINTERCONNECT = 0x3a
+ IFT_FRAMERELAYMPI = 0x5c
+ IFT_FRDLCIENDPT = 0xc1
+ IFT_FRELAY = 0x20
+ IFT_FRELAYDCE = 0x2c
+ IFT_FRF16MFRBUNDLE = 0xa3
+ IFT_FRFORWARD = 0x9e
+ IFT_G703AT2MB = 0x43
+ IFT_G703AT64K = 0x42
+ IFT_GIF = 0xf0
+ IFT_GIGABITETHERNET = 0x75
+ IFT_GR303IDT = 0xb2
+ IFT_GR303RDT = 0xb1
+ IFT_H323GATEKEEPER = 0xa4
+ IFT_H323PROXY = 0xa5
+ IFT_HDH1822 = 0x3
+ IFT_HDLC = 0x76
+ IFT_HDSL2 = 0xa8
+ IFT_HIPERLAN2 = 0xb7
+ IFT_HIPPI = 0x2f
+ IFT_HIPPIINTERFACE = 0x39
+ IFT_HOSTPAD = 0x5a
+ IFT_HSSI = 0x2e
+ IFT_HY = 0xe
+ IFT_IBM370PARCHAN = 0x48
+ IFT_IDSL = 0x9a
+ IFT_IEEE80211 = 0x47
+ IFT_IEEE80212 = 0x37
+ IFT_IEEE8023ADLAG = 0xa1
+ IFT_IFGSN = 0x91
+ IFT_IMT = 0xbe
+ IFT_INTERLEAVE = 0x7c
+ IFT_IP = 0x7e
+ IFT_IPFORWARD = 0x8e
+ IFT_IPOVERATM = 0x72
+ IFT_IPOVERCDLC = 0x6d
+ IFT_IPOVERCLAW = 0x6e
+ IFT_IPSWITCH = 0x4e
+ IFT_ISDN = 0x3f
+ IFT_ISDNBASIC = 0x14
+ IFT_ISDNPRIMARY = 0x15
+ IFT_ISDNS = 0x4b
+ IFT_ISDNU = 0x4c
+ IFT_ISO88022LLC = 0x29
+ IFT_ISO88023 = 0x7
+ IFT_ISO88024 = 0x8
+ IFT_ISO88025 = 0x9
+ IFT_ISO88025CRFPINT = 0x62
+ IFT_ISO88025DTR = 0x56
+ IFT_ISO88025FIBER = 0x73
+ IFT_ISO88026 = 0xa
+ IFT_ISUP = 0xb3
+ IFT_L3IPXVLAN = 0x89
+ IFT_LAPB = 0x10
+ IFT_LAPD = 0x4d
+ IFT_LAPF = 0x77
+ IFT_LOCALTALK = 0x2a
+ IFT_LOOP = 0x18
+ IFT_MEDIAMAILOVERIP = 0x8b
+ IFT_MFSIGLINK = 0xa7
+ IFT_MIOX25 = 0x26
+ IFT_MODEM = 0x30
+ IFT_MPC = 0x71
+ IFT_MPLS = 0xa6
+ IFT_MPLSTUNNEL = 0x96
+ IFT_MSDSL = 0x8f
+ IFT_MVL = 0xbf
+ IFT_MYRINET = 0x63
+ IFT_NFAS = 0xaf
+ IFT_NSIP = 0x1b
+ IFT_OPTICALCHANNEL = 0xc3
+ IFT_OPTICALTRANSPORT = 0xc4
+ IFT_OTHER = 0x1
+ IFT_P10 = 0xc
+ IFT_P80 = 0xd
+ IFT_PARA = 0x22
+ IFT_PFLOG = 0xf6
+ IFT_PFSYNC = 0xf7
+ IFT_PLC = 0xae
+ IFT_POS = 0xab
+ IFT_PPPMULTILINKBUNDLE = 0x6c
+ IFT_PROPBWAP2MP = 0xb8
+ IFT_PROPCNLS = 0x59
+ IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5
+ IFT_PROPDOCSWIRELESSMACLAYER = 0xb4
+ IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6
+ IFT_PROPMUX = 0x36
+ IFT_PROPWIRELESSP2P = 0x9d
+ IFT_PTPSERIAL = 0x16
+ IFT_PVC = 0xf1
+ IFT_QLLC = 0x44
+ IFT_RADIOMAC = 0xbc
+ IFT_RADSL = 0x5f
+ IFT_REACHDSL = 0xc0
+ IFT_RFC1483 = 0x9f
+ IFT_RS232 = 0x21
+ IFT_RSRB = 0x4f
+ IFT_SDLC = 0x11
+ IFT_SDSL = 0x60
+ IFT_SHDSL = 0xa9
+ IFT_SIP = 0x1f
+ IFT_SLIP = 0x1c
+ IFT_SMDSDXI = 0x2b
+ IFT_SMDSICIP = 0x34
+ IFT_SONET = 0x27
+ IFT_SONETOVERHEADCHANNEL = 0xb9
+ IFT_SONETPATH = 0x32
+ IFT_SONETVT = 0x33
+ IFT_SRP = 0x97
+ IFT_SS7SIGLINK = 0x9c
+ IFT_STACKTOSTACK = 0x6f
+ IFT_STARLAN = 0xb
+ IFT_STF = 0xd7
+ IFT_T1 = 0x12
+ IFT_TDLC = 0x74
+ IFT_TERMPAD = 0x5b
+ IFT_TR008 = 0xb0
+ IFT_TRANSPHDLC = 0x7b
+ IFT_TUNNEL = 0x83
+ IFT_ULTRA = 0x1d
+ IFT_USB = 0xa0
+ IFT_V11 = 0x40
+ IFT_V35 = 0x2d
+ IFT_V36 = 0x41
+ IFT_V37 = 0x78
+ IFT_VDSL = 0x61
+ IFT_VIRTUALIPADDRESS = 0x70
+ IFT_VOICEEM = 0x64
+ IFT_VOICEENCAP = 0x67
+ IFT_VOICEFXO = 0x65
+ IFT_VOICEFXS = 0x66
+ IFT_VOICEOVERATM = 0x98
+ IFT_VOICEOVERFRAMERELAY = 0x99
+ IFT_VOICEOVERIP = 0x68
+ IFT_X213 = 0x5d
+ IFT_X25 = 0x5
+ IFT_X25DDN = 0x4
+ IFT_X25HUNTGROUP = 0x7a
+ IFT_X25MLP = 0x79
+ IFT_X25PLE = 0x28
+ IFT_XETHER = 0x1a
+
+ // missing constants on FreeBSD-11.1-RELEASE, copied from old values in ztypes_freebsd_arm.go
+ IFF_SMART = 0x20
+ IFT_FAITH = 0xf2
+ IFT_IPXIP = 0xf9
+ IPPROTO_MAXID = 0x34
+ IPV6_FAITH = 0x1d
+ IP_FAITH = 0x16
+ MAP_NORESERVE = 0x40
+ MAP_RENAME = 0x20
+ NET_RT_MAXID = 0x6
+ RTF_PRCLONING = 0x10000
+ RTM_OLDADD = 0x9
+ RTM_OLDDEL = 0xa
+ SIOCADDRT = 0x8030720a
+ SIOCALIFADDR = 0x8118691b
+ SIOCDELRT = 0x8030720b
+ SIOCDLIFADDR = 0x8118691d
+ SIOCGLIFADDR = 0xc118691c
+ SIOCGLIFPHYADDR = 0xc118694b
+ SIOCSLIFPHYADDR = 0x8118694a
+)
diff --git a/vendor/golang.org/x/sys/unix/fcntl.go b/vendor/golang.org/x/sys/unix/fcntl.go
new file mode 100644
index 0000000000..39c03f1ef1
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/fcntl.go
@@ -0,0 +1,32 @@
+// 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.
+
+// +build dragonfly freebsd linux netbsd openbsd
+
+package unix
+
+import "unsafe"
+
+// fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux
+// systems by flock_linux_32bit.go to be SYS_FCNTL64.
+var fcntl64Syscall uintptr = SYS_FCNTL
+
+// FcntlInt performs a fcntl syscall on fd with the provided command and argument.
+func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
+ valptr, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(arg))
+ var err error
+ if errno != 0 {
+ err = errno
+ }
+ return int(valptr), err
+}
+
+// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.
+func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
+ _, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk)))
+ if errno == 0 {
+ return nil
+ }
+ return errno
+}
diff --git a/vendor/golang.org/x/sys/unix/fcntl_darwin.go b/vendor/golang.org/x/sys/unix/fcntl_darwin.go
new file mode 100644
index 0000000000..5868a4a47b
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/fcntl_darwin.go
@@ -0,0 +1,18 @@
+// Copyright 2019 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 unix
+
+import "unsafe"
+
+// FcntlInt performs a fcntl syscall on fd with the provided command and argument.
+func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
+ return fcntl(int(fd), cmd, arg)
+}
+
+// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.
+func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
+ _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk))))
+ return err
+}
diff --git a/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go b/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go
new file mode 100644
index 0000000000..fc0e50e037
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go
@@ -0,0 +1,13 @@
+// +build linux,386 linux,arm linux,mips linux,mipsle
+
+// 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 unix
+
+func init() {
+ // On 32-bit Linux systems, the fcntl syscall that matches Go's
+ // Flock_t type is SYS_FCNTL64, not SYS_FCNTL.
+ fcntl64Syscall = SYS_FCNTL64
+}
diff --git a/vendor/golang.org/x/sys/unix/gccgo.go b/vendor/golang.org/x/sys/unix/gccgo.go
new file mode 100644
index 0000000000..cd6f5a6133
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/gccgo.go
@@ -0,0 +1,62 @@
+// 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 gccgo
+// +build !aix
+
+package unix
+
+import "syscall"
+
+// We can't use the gc-syntax .s files for gccgo. On the plus side
+// much of the functionality can be written directly in Go.
+
+//extern gccgoRealSyscallNoError
+func realSyscallNoError(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r uintptr)
+
+//extern gccgoRealSyscall
+func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr)
+
+func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) {
+ syscall.Entersyscall()
+ r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)
+ syscall.Exitsyscall()
+ return r, 0
+}
+
+func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
+ syscall.Entersyscall()
+ r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)
+ syscall.Exitsyscall()
+ return r, 0, syscall.Errno(errno)
+}
+
+func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {
+ syscall.Entersyscall()
+ r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0)
+ syscall.Exitsyscall()
+ return r, 0, syscall.Errno(errno)
+}
+
+func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) {
+ syscall.Entersyscall()
+ r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9)
+ syscall.Exitsyscall()
+ return r, 0, syscall.Errno(errno)
+}
+
+func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) {
+ r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)
+ return r, 0
+}
+
+func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
+ r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)
+ return r, 0, syscall.Errno(errno)
+}
+
+func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {
+ r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0)
+ return r, 0, syscall.Errno(errno)
+}
diff --git a/vendor/golang.org/x/sys/unix/gccgo_c.c b/vendor/golang.org/x/sys/unix/gccgo_c.c
new file mode 100644
index 0000000000..c44730c5e9
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/gccgo_c.c
@@ -0,0 +1,39 @@
+// 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 gccgo
+// +build !aix
+
+#include
+#include
+#include
+
+#define _STRINGIFY2_(x) #x
+#define _STRINGIFY_(x) _STRINGIFY2_(x)
+#define GOSYM_PREFIX _STRINGIFY_(__USER_LABEL_PREFIX__)
+
+// Call syscall from C code because the gccgo support for calling from
+// Go to C does not support varargs functions.
+
+struct ret {
+ uintptr_t r;
+ uintptr_t err;
+};
+
+struct ret
+gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)
+{
+ struct ret r;
+
+ errno = 0;
+ r.r = syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9);
+ r.err = errno;
+ return r;
+}
+
+uintptr_t
+gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)
+{
+ return syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9);
+}
diff --git a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go
new file mode 100644
index 0000000000..251a977a81
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go
@@ -0,0 +1,20 @@
+// 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 gccgo,linux,amd64
+
+package unix
+
+import "syscall"
+
+//extern gettimeofday
+func realGettimeofday(*Timeval, *byte) int32
+
+func gettimeofday(tv *Timeval) (err syscall.Errno) {
+ r := realGettimeofday(tv, nil)
+ if r < 0 {
+ return syscall.GetErrno()
+ }
+ return 0
+}
diff --git a/vendor/golang.org/x/sys/unix/ioctl.go b/vendor/golang.org/x/sys/unix/ioctl.go
new file mode 100644
index 0000000000..f121a8d64b
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ioctl.go
@@ -0,0 +1,30 @@
+// Copyright 2018 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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
+
+package unix
+
+import "runtime"
+
+// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.
+//
+// To change fd's window size, the req argument should be TIOCSWINSZ.
+func IoctlSetWinsize(fd int, req uint, value *Winsize) error {
+ // TODO: if we get the chance, remove the req parameter and
+ // hardcode TIOCSWINSZ.
+ err := ioctlSetWinsize(fd, req, value)
+ runtime.KeepAlive(value)
+ return err
+}
+
+// IoctlSetTermios performs an ioctl on fd with a *Termios.
+//
+// The req value will usually be TCSETA or TIOCSETA.
+func IoctlSetTermios(fd int, req uint, value *Termios) error {
+ // TODO: if we get the chance, remove the req parameter.
+ err := ioctlSetTermios(fd, req, value)
+ runtime.KeepAlive(value)
+ return err
+}
diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh
new file mode 100644
index 0000000000..75152f99b2
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/mkall.sh
@@ -0,0 +1,214 @@
+#!/usr/bin/env bash
+# Copyright 2009 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.
+
+# This script runs or (given -n) prints suggested commands to generate files for
+# the Architecture/OS specified by the GOARCH and GOOS environment variables.
+# See README.md for more information about how the build system works.
+
+GOOSARCH="${GOOS}_${GOARCH}"
+
+# defaults
+mksyscall="go run mksyscall.go"
+mkerrors="./mkerrors.sh"
+zerrors="zerrors_$GOOSARCH.go"
+mksysctl=""
+zsysctl="zsysctl_$GOOSARCH.go"
+mksysnum=
+mktypes=
+mkasm=
+run="sh"
+cmd=""
+
+case "$1" in
+-syscalls)
+ for i in zsyscall*go
+ do
+ # Run the command line that appears in the first line
+ # of the generated file to regenerate it.
+ sed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i
+ rm _$i
+ done
+ exit 0
+ ;;
+-n)
+ run="cat"
+ cmd="echo"
+ shift
+esac
+
+case "$#" in
+0)
+ ;;
+*)
+ echo 'usage: mkall.sh [-n]' 1>&2
+ exit 2
+esac
+
+if [[ "$GOOS" = "linux" ]]; then
+ # Use the Docker-based build system
+ # Files generated through docker (use $cmd so you can Ctl-C the build or run)
+ $cmd docker build --tag generate:$GOOS $GOOS
+ $cmd docker run --interactive --tty --volume $(dirname "$(readlink -f "$0")"):/build generate:$GOOS
+ exit
+fi
+
+GOOSARCH_in=syscall_$GOOSARCH.go
+case "$GOOSARCH" in
+_* | *_ | _)
+ echo 'undefined $GOOS_$GOARCH:' "$GOOSARCH" 1>&2
+ exit 1
+ ;;
+aix_ppc)
+ mkerrors="$mkerrors -maix32"
+ mksyscall="go run mksyscall_aix_ppc.go -aix"
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+ ;;
+aix_ppc64)
+ mkerrors="$mkerrors -maix64"
+ mksyscall="go run mksyscall_aix_ppc64.go -aix"
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+ ;;
+darwin_386)
+ mkerrors="$mkerrors -m32"
+ mksyscall="go run mksyscall.go -l32"
+ mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h"
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+ mkasm="go run mkasm_darwin.go"
+ ;;
+darwin_amd64)
+ mkerrors="$mkerrors -m64"
+ mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h"
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+ mkasm="go run mkasm_darwin.go"
+ ;;
+darwin_arm)
+ mkerrors="$mkerrors"
+ mksyscall="go run mksyscall.go -l32"
+ mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h"
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+ mkasm="go run mkasm_darwin.go"
+ ;;
+darwin_arm64)
+ mkerrors="$mkerrors -m64"
+ mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h"
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+ mkasm="go run mkasm_darwin.go"
+ ;;
+dragonfly_amd64)
+ mkerrors="$mkerrors -m64"
+ mksyscall="go run mksyscall.go -dragonfly"
+ mksysnum="go run mksysnum.go 'https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master'"
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+ ;;
+freebsd_386)
+ mkerrors="$mkerrors -m32"
+ mksyscall="go run mksyscall.go -l32"
+ mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'"
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+ ;;
+freebsd_amd64)
+ mkerrors="$mkerrors -m64"
+ mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'"
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+ ;;
+freebsd_arm)
+ mkerrors="$mkerrors"
+ mksyscall="go run mksyscall.go -l32 -arm"
+ mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'"
+ # Let the type of C char be signed for making the bare syscall
+ # API consistent across platforms.
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
+ ;;
+freebsd_arm64)
+ mkerrors="$mkerrors -m64"
+ mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'"
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+ ;;
+netbsd_386)
+ mkerrors="$mkerrors -m32"
+ mksyscall="go run mksyscall.go -l32 -netbsd"
+ mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'"
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+ ;;
+netbsd_amd64)
+ mkerrors="$mkerrors -m64"
+ mksyscall="go run mksyscall.go -netbsd"
+ mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'"
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+ ;;
+netbsd_arm)
+ mkerrors="$mkerrors"
+ mksyscall="go run mksyscall.go -l32 -netbsd -arm"
+ mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'"
+ # Let the type of C char be signed for making the bare syscall
+ # API consistent across platforms.
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
+ ;;
+openbsd_386)
+ mkerrors="$mkerrors -m32"
+ mksyscall="go run mksyscall.go -l32 -openbsd"
+ mksysctl="./mksysctl_openbsd.pl"
+ mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'"
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+ ;;
+openbsd_amd64)
+ mkerrors="$mkerrors -m64"
+ mksyscall="go run mksyscall.go -openbsd"
+ mksysctl="./mksysctl_openbsd.pl"
+ mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'"
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+ ;;
+openbsd_arm)
+ mkerrors="$mkerrors"
+ mksyscall="go run mksyscall.go -l32 -openbsd -arm"
+ mksysctl="./mksysctl_openbsd.pl"
+ mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'"
+ # Let the type of C char be signed for making the bare syscall
+ # API consistent across platforms.
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
+ ;;
+solaris_amd64)
+ mksyscall="go run mksyscall_solaris.go"
+ mkerrors="$mkerrors -m64"
+ mksysnum=
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+ ;;
+*)
+ echo 'unrecognized $GOOS_$GOARCH: ' "$GOOSARCH" 1>&2
+ exit 1
+ ;;
+esac
+
+(
+ if [ -n "$mkerrors" ]; then echo "$mkerrors |gofmt >$zerrors"; fi
+ case "$GOOS" in
+ *)
+ syscall_goos="syscall_$GOOS.go"
+ case "$GOOS" in
+ darwin | dragonfly | freebsd | netbsd | openbsd)
+ syscall_goos="syscall_bsd.go $syscall_goos"
+ ;;
+ esac
+ if [ -n "$mksyscall" ]; then
+ if [ "$GOOSARCH" == "aix_ppc64" ]; then
+ # aix/ppc64 script generates files instead of writing to stdin.
+ echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in && gofmt -w zsyscall_$GOOSARCH.go && gofmt -w zsyscall_"$GOOSARCH"_gccgo.go && gofmt -w zsyscall_"$GOOSARCH"_gc.go " ;
+ elif [ "$GOOS" == "darwin" ]; then
+ # pre-1.12, direct syscalls
+ echo "$mksyscall -tags $GOOS,$GOARCH,!go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.1_11.go";
+ # 1.12 and later, syscalls via libSystem
+ echo "$mksyscall -tags $GOOS,$GOARCH,go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go";
+ else
+ echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go";
+ fi
+ fi
+ esac
+ if [ -n "$mksysctl" ]; then echo "$mksysctl |gofmt >$zsysctl"; fi
+ if [ -n "$mksysnum" ]; then echo "$mksysnum |gofmt >zsysnum_$GOOSARCH.go"; fi
+ if [ -n "$mktypes" ]; then
+ echo "$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go";
+ if [ -n "$mkasm" ]; then echo "$mkasm $GOARCH"; fi
+ fi
+) | $run
diff --git a/vendor/golang.org/x/sys/unix/mkasm_darwin.go b/vendor/golang.org/x/sys/unix/mkasm_darwin.go
new file mode 100644
index 0000000000..4548b993db
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/mkasm_darwin.go
@@ -0,0 +1,61 @@
+// Copyright 2018 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
+
+// mkasm_darwin.go generates assembly trampolines to call libSystem routines from Go.
+//This program must be run after mksyscall.go.
+package main
+
+import (
+ "bytes"
+ "fmt"
+ "io/ioutil"
+ "log"
+ "os"
+ "strings"
+)
+
+func main() {
+ in1, err := ioutil.ReadFile("syscall_darwin.go")
+ if err != nil {
+ log.Fatalf("can't open syscall_darwin.go: %s", err)
+ }
+ arch := os.Args[1]
+ in2, err := ioutil.ReadFile(fmt.Sprintf("syscall_darwin_%s.go", arch))
+ if err != nil {
+ log.Fatalf("can't open syscall_darwin_%s.go: %s", arch, err)
+ }
+ in3, err := ioutil.ReadFile(fmt.Sprintf("zsyscall_darwin_%s.go", arch))
+ if err != nil {
+ log.Fatalf("can't open zsyscall_darwin_%s.go: %s", arch, err)
+ }
+ in := string(in1) + string(in2) + string(in3)
+
+ trampolines := map[string]bool{}
+
+ var out bytes.Buffer
+
+ fmt.Fprintf(&out, "// go run mkasm_darwin.go %s\n", strings.Join(os.Args[1:], " "))
+ fmt.Fprintf(&out, "// Code generated by the command above; DO NOT EDIT.\n")
+ fmt.Fprintf(&out, "\n")
+ fmt.Fprintf(&out, "// +build go1.12\n")
+ fmt.Fprintf(&out, "\n")
+ fmt.Fprintf(&out, "#include \"textflag.h\"\n")
+ for _, line := range strings.Split(in, "\n") {
+ if !strings.HasPrefix(line, "func ") || !strings.HasSuffix(line, "_trampoline()") {
+ continue
+ }
+ fn := line[5 : len(line)-13]
+ if !trampolines[fn] {
+ trampolines[fn] = true
+ fmt.Fprintf(&out, "TEXT ·%s_trampoline(SB),NOSPLIT,$0-0\n", fn)
+ fmt.Fprintf(&out, "\tJMP\t%s(SB)\n", fn)
+ }
+ }
+ err = ioutil.WriteFile(fmt.Sprintf("zsyscall_darwin_%s.s", arch), out.Bytes(), 0644)
+ if err != nil {
+ log.Fatalf("can't write zsyscall_darwin_%s.s: %s", arch, err)
+ }
+}
diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh
new file mode 100644
index 0000000000..6a23484e5b
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/mkerrors.sh
@@ -0,0 +1,657 @@
+#!/usr/bin/env bash
+# Copyright 2009 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.
+
+# Generate Go code listing errors and other #defined constant
+# values (ENAMETOOLONG etc.), by asking the preprocessor
+# about the definitions.
+
+unset LANG
+export LC_ALL=C
+export LC_CTYPE=C
+
+if test -z "$GOARCH" -o -z "$GOOS"; then
+ echo 1>&2 "GOARCH or GOOS not defined in environment"
+ exit 1
+fi
+
+# Check that we are using the new build system if we should
+if [[ "$GOOS" = "linux" ]] && [[ "$GOLANG_SYS_BUILD" != "docker" ]]; then
+ echo 1>&2 "In the Docker based build system, mkerrors should not be called directly."
+ echo 1>&2 "See README.md"
+ exit 1
+fi
+
+if [[ "$GOOS" = "aix" ]]; then
+ CC=${CC:-gcc}
+else
+ CC=${CC:-cc}
+fi
+
+if [[ "$GOOS" = "solaris" ]]; then
+ # Assumes GNU versions of utilities in PATH.
+ export PATH=/usr/gnu/bin:$PATH
+fi
+
+uname=$(uname)
+
+includes_AIX='
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#define AF_LOCAL AF_UNIX
+'
+
+includes_Darwin='
+#define _DARWIN_C_SOURCE
+#define KERNEL
+#define _DARWIN_USE_64_BIT_INODE
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+'
+
+includes_DragonFly='
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+'
+
+includes_FreeBSD='
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#if __FreeBSD__ >= 10
+#define IFT_CARP 0xf8 // IFT_CARP is deprecated in FreeBSD 10
+#undef SIOCAIFADDR
+#define SIOCAIFADDR _IOW(105, 26, struct oifaliasreq) // ifaliasreq contains if_data
+#undef SIOCSIFPHYADDR
+#define SIOCSIFPHYADDR _IOW(105, 70, struct oifaliasreq) // ifaliasreq contains if_data
+#endif
+'
+
+includes_Linux='
+#define _LARGEFILE_SOURCE
+#define _LARGEFILE64_SOURCE
+#ifndef __LP64__
+#define _FILE_OFFSET_BITS 64
+#endif
+#define _GNU_SOURCE
+
+// is broken on powerpc64, as it fails to include definitions of
+// these structures. We just include them copied from .
+#if defined(__powerpc__)
+struct sgttyb {
+ char sg_ispeed;
+ char sg_ospeed;
+ char sg_erase;
+ char sg_kill;
+ short sg_flags;
+};
+
+struct tchars {
+ char t_intrc;
+ char t_quitc;
+ char t_startc;
+ char t_stopc;
+ char t_eofc;
+ char t_brkc;
+};
+
+struct ltchars {
+ char t_suspc;
+ char t_dsuspc;
+ char t_rprntc;
+ char t_flushc;
+ char t_werasc;
+ char t_lnextc;
+};
+#endif
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#if defined(__sparc__)
+// On sparc{,64}, the kernel defines struct termios2 itself which clashes with the
+// definition in glibc. As only the error constants are needed here, include the
+// generic termibits.h (which is included by termbits.h on sparc).
+#include
+#else
+#include
+#endif
+
+#ifndef MSG_FASTOPEN
+#define MSG_FASTOPEN 0x20000000
+#endif
+
+#ifndef PTRACE_GETREGS
+#define PTRACE_GETREGS 0xc
+#endif
+
+#ifndef PTRACE_SETREGS
+#define PTRACE_SETREGS 0xd
+#endif
+
+#ifndef SOL_NETLINK
+#define SOL_NETLINK 270
+#endif
+
+#ifdef SOL_BLUETOOTH
+// SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h
+// but it is already in bluetooth_linux.go
+#undef SOL_BLUETOOTH
+#endif
+
+// Certain constants are missing from the fs/crypto UAPI
+#define FS_KEY_DESC_PREFIX "fscrypt:"
+#define FS_KEY_DESC_PREFIX_SIZE 8
+#define FS_MAX_KEY_SIZE 64
+'
+
+includes_NetBSD='
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+// Needed since refers to it...
+#define schedppq 1
+'
+
+includes_OpenBSD='
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+// We keep some constants not supported in OpenBSD 5.5 and beyond for
+// the promise of compatibility.
+#define EMUL_ENABLED 0x1
+#define EMUL_NATIVE 0x2
+#define IPV6_FAITH 0x1d
+#define IPV6_OPTIONS 0x1
+#define IPV6_RTHDR_STRICT 0x1
+#define IPV6_SOCKOPT_RESERVED1 0x3
+#define SIOCGIFGENERIC 0xc020693a
+#define SIOCSIFGENERIC 0x80206939
+#define WALTSIG 0x4
+'
+
+includes_SunOS='
+#include
+#include