“wwangchuanjin 5 years ago
parent
commit
ef4288173b
100 changed files with 15259 additions and 0 deletions
  1. 1 0
      README.md
  2. 92 0
      src/api/api.go
  3. 6 0
      src/endless/doc.go
  4. 574 0
      src/endless/endless.go
  5. 16 0
      src/endless/serve.go
  6. 19 0
      src/github.com/dchest/captcha/LICENSE
  7. 275 0
      src/github.com/dchest/captcha/README.md
  8. 232 0
      src/github.com/dchest/captcha/audio.go
  9. 32 0
      src/github.com/dchest/captcha/audio_test.go
  10. 107 0
      src/github.com/dchest/captcha/capexample/main.go
  11. BIN
      src/github.com/dchest/captcha/capgen/example.png
  12. BIN
      src/github.com/dchest/captcha/capgen/example.wav
  13. 56 0
      src/github.com/dchest/captcha/capgen/main.go
  14. 25 0
      src/github.com/dchest/captcha/capgensounds/README.markdown
  15. BIN
      src/github.com/dchest/captcha/capgensounds/beep.wav
  16. BIN
      src/github.com/dchest/captcha/capgensounds/en/0.wav
  17. BIN
      src/github.com/dchest/captcha/capgensounds/en/1.wav
  18. BIN
      src/github.com/dchest/captcha/capgensounds/en/2.wav
  19. BIN
      src/github.com/dchest/captcha/capgensounds/en/3.wav
  20. BIN
      src/github.com/dchest/captcha/capgensounds/en/4.wav
  21. BIN
      src/github.com/dchest/captcha/capgensounds/en/5.wav
  22. BIN
      src/github.com/dchest/captcha/capgensounds/en/6.wav
  23. BIN
      src/github.com/dchest/captcha/capgensounds/en/7.wav
  24. BIN
      src/github.com/dchest/captcha/capgensounds/en/8.wav
  25. BIN
      src/github.com/dchest/captcha/capgensounds/en/9.wav
  26. 95 0
      src/github.com/dchest/captcha/capgensounds/main.go
  27. BIN
      src/github.com/dchest/captcha/capgensounds/ru/0.wav
  28. BIN
      src/github.com/dchest/captcha/capgensounds/ru/1.wav
  29. BIN
      src/github.com/dchest/captcha/capgensounds/ru/2.wav
  30. BIN
      src/github.com/dchest/captcha/capgensounds/ru/3.wav
  31. BIN
      src/github.com/dchest/captcha/capgensounds/ru/4.wav
  32. BIN
      src/github.com/dchest/captcha/capgensounds/ru/5.wav
  33. BIN
      src/github.com/dchest/captcha/capgensounds/ru/6.wav
  34. BIN
      src/github.com/dchest/captcha/capgensounds/ru/7.wav
  35. BIN
      src/github.com/dchest/captcha/capgensounds/ru/8.wav
  36. BIN
      src/github.com/dchest/captcha/capgensounds/ru/9.wav
  37. BIN
      src/github.com/dchest/captcha/capgensounds/zh/0.wav
  38. BIN
      src/github.com/dchest/captcha/capgensounds/zh/1.wav
  39. BIN
      src/github.com/dchest/captcha/capgensounds/zh/2.wav
  40. BIN
      src/github.com/dchest/captcha/capgensounds/zh/3.wav
  41. BIN
      src/github.com/dchest/captcha/capgensounds/zh/4.wav
  42. BIN
      src/github.com/dchest/captcha/capgensounds/zh/5.wav
  43. BIN
      src/github.com/dchest/captcha/capgensounds/zh/6.wav
  44. BIN
      src/github.com/dchest/captcha/capgensounds/zh/7.wav
  45. BIN
      src/github.com/dchest/captcha/capgensounds/zh/8.wav
  46. BIN
      src/github.com/dchest/captcha/capgensounds/zh/9.wav
  47. 165 0
      src/github.com/dchest/captcha/captcha.go
  48. 61 0
      src/github.com/dchest/captcha/captcha_test.go
  49. 214 0
      src/github.com/dchest/captcha/font.go
  50. 282 0
      src/github.com/dchest/captcha/image.go
  51. 40 0
      src/github.com/dchest/captcha/image_test.go
  52. 101 0
      src/github.com/dchest/captcha/random.go
  53. 94 0
      src/github.com/dchest/captcha/server.go
  54. 278 0
      src/github.com/dchest/captcha/siprng.go
  55. 54 0
      src/github.com/dchest/captcha/siprng_test.go
  56. 7390 0
      src/github.com/dchest/captcha/sounds.go
  57. 117 0
      src/github.com/dchest/captcha/store.go
  58. 79 0
      src/github.com/dchest/captcha/store_test.go
  59. 0 0
      src/github.com/go-gomail/gomail/5s5s.txt
  60. 20 0
      src/github.com/go-gomail/gomail/CHANGELOG.md
  61. 20 0
      src/github.com/go-gomail/gomail/CONTRIBUTING.md
  62. 20 0
      src/github.com/go-gomail/gomail/LICENSE
  63. 92 0
      src/github.com/go-gomail/gomail/README.md
  64. 49 0
      src/github.com/go-gomail/gomail/auth.go
  65. 100 0
      src/github.com/go-gomail/gomail/auth_test.go
  66. 5 0
      src/github.com/go-gomail/gomail/doc.go
  67. 223 0
      src/github.com/go-gomail/gomail/example_test.go
  68. 350 0
      src/github.com/go-gomail/gomail/message.go
  69. 745 0
      src/github.com/go-gomail/gomail/message_test.go
  70. 21 0
      src/github.com/go-gomail/gomail/mime.go
  71. 25 0
      src/github.com/go-gomail/gomail/mime_go14.go
  72. 116 0
      src/github.com/go-gomail/gomail/send.go
  73. 80 0
      src/github.com/go-gomail/gomail/send_test.go
  74. 203 0
      src/github.com/go-gomail/gomail/smtp.go
  75. 292 0
      src/github.com/go-gomail/gomail/smtp_test.go
  76. 306 0
      src/github.com/go-gomail/gomail/writeto.go
  77. 4 0
      src/github.com/go-xweb/httpsession/IsRedisStore.go
  78. 2 0
      src/github.com/go-xweb/httpsession/README.md
  79. 52 0
      src/github.com/go-xweb/httpsession/generator.go
  80. 35 0
      src/github.com/go-xweb/httpsession/listener.go
  81. 120 0
      src/github.com/go-xweb/httpsession/manager.go
  82. 199 0
      src/github.com/go-xweb/httpsession/memorystore.go
  83. 126 0
      src/github.com/go-xweb/httpsession/redissessionstore.go
  84. 52 0
      src/github.com/go-xweb/httpsession/session.go
  85. 17 0
      src/github.com/go-xweb/httpsession/store.go
  86. 147 0
      src/github.com/go-xweb/httpsession/transfer.go
  87. 11 0
      src/github.com/go-xweb/log/README.md
  88. 32 0
      src/github.com/go-xweb/log/dbwriter.go
  89. 636 0
      src/github.com/go-xweb/log/logext.go
  90. 84 0
      src/github.com/go-xweb/uuid/dce.go
  91. 8 0
      src/github.com/go-xweb/uuid/doc.go
  92. 53 0
      src/github.com/go-xweb/uuid/hash.go
  93. 101 0
      src/github.com/go-xweb/uuid/node.go
  94. 132 0
      src/github.com/go-xweb/uuid/time.go
  95. 43 0
      src/github.com/go-xweb/uuid/util.go
  96. 163 0
      src/github.com/go-xweb/uuid/uuid.go
  97. 41 0
      src/github.com/go-xweb/uuid/version1.go
  98. 25 0
      src/github.com/go-xweb/uuid/version4.go
  99. 58 0
      src/github.com/go-xweb/xweb/README.md
  100. 46 0
      src/github.com/go-xweb/xweb/README_EN.md

+ 1 - 0
README.md

@@ -0,0 +1 @@
+ケォモテオトケ、セ゚タ�

+ 92 - 0
src/api/api.go

@@ -0,0 +1,92 @@
+package api
+
+import (
+	"encoding/json"
+	"log"
+	"net/http"
+	"strconv"
+	"strings"
+)
+
+const (
+	Error_code      = 0
+	Error_code_1001 = 1001
+	Error_msg_1001  = "需要登录"
+	Error_code_1002 = 1002
+	Error_msg_1002  = "缺失参数"
+	Error_code_1003 = 1003
+	Error_msg_1003  = "无效参数"
+	Error_code_1004 = 1004
+	Error_msg_1004  = "没有权限"
+)
+
+var R = &r{}
+
+type M map[string]interface{}
+type r struct{}
+
+//校验是否缺少请求参数
+func (r *r) CheckReqParam(w http.ResponseWriter, req *http.Request, keys ...string) bool {
+	msg := Error_msg_1002
+	array := []string{}
+	for _, v := range keys {
+		if len(req.Form[v]) > 0 {
+			continue
+		}
+		array = append(array, v)
+	}
+	if len(array) > 0 {
+		msg += strings.Join(array, ",")
+		log.Println(msg)
+		r.ServeJson(w, req, &Result{
+			Error_code: Error_code_1002,
+			Error_msg:  msg,
+		})
+		return false
+	}
+	return true
+}
+
+//无效参数
+func (r *r) InvalidReqParam(w http.ResponseWriter, req *http.Request, args ...string) string {
+	msg := Error_msg_1003 + strings.Join(args, ",")
+	r.ServeJson(w, req, &Result{
+		Error_code: Error_code_1003,
+		Error_msg:  msg,
+	})
+	log.Println(msg)
+	return msg
+}
+
+//没有权限
+func (r *r) NoPermissionReq(w http.ResponseWriter, req *http.Request, args ...string) string {
+	msg := Error_msg_1004
+	if len(args) >= 0 {
+		msg += ","
+	}
+	msg += strings.Join(args, ",")
+	r.ServeJson(w, req, &Result{
+		Error_code: Error_code_1004,
+		Error_msg:  msg,
+	})
+	log.Println(msg)
+	return msg
+}
+
+func (r *r) ServeJson(w http.ResponseWriter, req *http.Request, result *Result) {
+	content, err := json.MarshalIndent(result, "", "  ")
+	if err != nil {
+		http.Error(w, err.Error(), http.StatusInternalServerError)
+		return
+	}
+	w.Header().Set("Content-Length", strconv.Itoa(len(content)))
+	w.Header().Set("Content-Type", "application/json")
+	w.Write(content)
+}
+
+//接口统一返回值
+type Result struct {
+	Error_code int         `json:"error_code"`
+	Error_msg  string      `json:"error_msg"`
+	Data       interface{} `json:"data"`
+}

+ 6 - 0
src/endless/doc.go

@@ -0,0 +1,6 @@
+/*
+endless provides a drop in  replacement for the `net/http` stl functions `ListenAndServe` and `ListenAndServeTLS` to achieve zero downtime restarts and code upgrades.
+
+The code is based on the excellent post [Graceful Restart in Golang](http://grisha.org/blog/2014/06/03/graceful-restart-in-golang/) by [Grisha Trubetskoy](https://github.com/grisha). I took his code as a start. So a lot of credit to Grisha!
+*/
+package endless

+ 574 - 0
src/endless/endless.go

@@ -0,0 +1,574 @@
+// +build linux
+
+package endless
+
+import (
+	"crypto/tls"
+	"errors"
+	"flag"
+	"fmt"
+	"log"
+	"net"
+	"net/http"
+	"os"
+	"os/exec"
+	"os/signal"
+	"runtime"
+	"strings"
+	"sync"
+	"syscall"
+	"time"
+
+	// "github.com/fvbock/uds-go/introspect"
+)
+
+const (
+	PRE_SIGNAL = iota
+	POST_SIGNAL
+
+	STATE_INIT
+	STATE_RUNNING
+	STATE_SHUTTING_DOWN
+	STATE_TERMINATE
+)
+
+var (
+	runningServerReg     sync.RWMutex
+	runningServers       map[string]*endlessServer
+	runningServersOrder  []string
+	socketPtrOffsetMap   map[string]uint
+	runningServersForked bool
+
+	DefaultReadTimeOut    time.Duration
+	DefaultWriteTimeOut   time.Duration
+	DefaultMaxHeaderBytes int
+	DefaultHammerTime     time.Duration
+
+	isChild     bool
+	socketOrder string
+
+	hookableSignals []os.Signal
+)
+
+func init() {
+	flag.BoolVar(&isChild, "continue", false, "listen on open fd (after forking)")
+	flag.StringVar(&socketOrder, "socketorder", "", "previous initialization order - used when more than one listener was started")
+
+	runningServerReg = sync.RWMutex{}
+	runningServers = make(map[string]*endlessServer)
+	runningServersOrder = []string{}
+	socketPtrOffsetMap = make(map[string]uint)
+
+	DefaultMaxHeaderBytes = 0 // use http.DefaultMaxHeaderBytes - which currently is 1 << 20 (1MB)
+
+	// after a restart the parent will finish ongoing requests before
+	// shutting down. set to a negative value to disable
+	DefaultHammerTime = 60 * time.Second
+
+	hookableSignals = []os.Signal{
+		syscall.SIGHUP,
+		syscall.SIGUSR1,
+		syscall.SIGUSR2,
+		syscall.SIGINT,
+		syscall.SIGTERM,
+		syscall.SIGTSTP,
+	}
+}
+
+type endlessServer struct {
+	http.Server
+	EndlessListener  net.Listener
+	SignalHooks      map[int]map[os.Signal][]func()
+	tlsInnerListener *endlessListener
+	wg               sync.WaitGroup
+	sigChan          chan os.Signal
+	isChild          bool
+	state            uint8
+	lock             *sync.RWMutex
+}
+
+/*
+NewServer returns an intialized endlessServer Object. Calling Serve on it will
+actually "start" the server.
+*/
+func NewServer(addr string, handler http.Handler, fn func()) (srv *endlessServer) {
+	runningServerReg.Lock()
+	defer runningServerReg.Unlock()
+	if !flag.Parsed() {
+		flag.Parse()
+	}
+	if len(socketOrder) > 0 {
+		for i, addr := range strings.Split(socketOrder, ",") {
+			socketPtrOffsetMap[addr] = uint(i)
+		}
+	} else {
+		socketPtrOffsetMap[addr] = uint(len(runningServersOrder))
+	}
+
+	srv = &endlessServer{
+		wg:      sync.WaitGroup{},
+		sigChan: make(chan os.Signal),
+		isChild: isChild,
+		SignalHooks: map[int]map[os.Signal][]func(){
+			PRE_SIGNAL: map[os.Signal][]func(){
+				syscall.SIGHUP: []func(){
+					fn,
+				},
+				syscall.SIGUSR1: []func(){},
+				syscall.SIGUSR2: []func(){},
+				syscall.SIGINT:  []func(){},
+				syscall.SIGTERM: []func(){},
+				syscall.SIGTSTP: []func(){},
+			},
+			POST_SIGNAL: map[os.Signal][]func(){
+				syscall.SIGHUP:  []func(){},
+				syscall.SIGUSR1: []func(){},
+				syscall.SIGUSR2: []func(){},
+				syscall.SIGINT:  []func(){},
+				syscall.SIGTERM: []func(){},
+				syscall.SIGTSTP: []func(){},
+			},
+		},
+		state: STATE_INIT,
+		lock:  &sync.RWMutex{},
+	}
+
+	srv.Server.Addr = addr
+	srv.Server.ReadTimeout = DefaultReadTimeOut
+	srv.Server.WriteTimeout = DefaultWriteTimeOut
+	srv.Server.MaxHeaderBytes = DefaultMaxHeaderBytes
+	srv.Server.Handler = handler
+
+	runningServersOrder = append(runningServersOrder, addr)
+	runningServers[addr] = srv
+
+	return
+}
+
+func NetListen(addr string, handler http.Handler, fn func()) (net.Listener, error) {
+	server := NewServer(addr, handler, fn)
+	return server.ListenAndServe(false)
+}
+
+/*
+ListenAndServe listens on the TCP network address addr and then calls Serve
+with handler to handle requests on incoming connections. Handler is typically
+nil, in which case the DefaultServeMux is used.
+*/
+func ListenAndServe(addr string, handler http.Handler, fn func()) error {
+	server := NewServer(addr, handler, fn)
+	_, err := server.ListenAndServe(true)
+	return err
+}
+
+/*
+ListenAndServeTLS acts identically to ListenAndServe, except that it expects
+HTTPS connections. Additionally, files containing a certificate and matching
+private key for the server must be provided. If the certificate is signed by a
+certificate authority, the certFile should be the concatenation of the server's
+certificate followed by the CA's certificate.
+*/
+func ListenAndServeTLS(addr string, certFile string, keyFile string, handler http.Handler, destoryfn func()) error {
+	server := NewServer(addr, handler, destoryfn)
+	return server.ListenAndServeTLS(certFile, keyFile, true)
+}
+
+func (srv *endlessServer) getState() uint8 {
+	srv.lock.RLock()
+	defer srv.lock.RUnlock()
+
+	return srv.state
+}
+
+func (srv *endlessServer) setState(st uint8) {
+	srv.lock.Lock()
+	defer srv.lock.Unlock()
+
+	srv.state = st
+}
+
+/*
+Serve accepts incoming HTTP connections on the listener l, creating a new
+service goroutine for each. The service goroutines read requests and then call
+handler to reply to them. Handler is typically nil, in which case the
+DefaultServeMux is used.
+
+In addition to the stl Serve behaviour each connection is added to a
+sync.Waitgroup so that all outstanding connections can be served before shutting
+down the server.
+*/
+func (srv *endlessServer) Serve() (err error) {
+	defer log.Println(syscall.Getpid(), "Serve() returning...")
+	srv.setState(STATE_RUNNING)
+	err = srv.Server.Serve(srv.EndlessListener)
+	log.Println(syscall.Getpid(), "Waiting for connections to finish...")
+	srv.wg.Wait()
+	srv.setState(STATE_TERMINATE)
+	return
+}
+
+/*
+ListenAndServe listens on the TCP network address srv.Addr and then calls Serve
+to handle requests on incoming connections. If srv.Addr is blank, ":http" is
+used.
+*/
+func (srv *endlessServer) ListenAndServe(isServer bool) (l net.Listener, err error) {
+	addr := srv.Addr
+	if addr == "" {
+		addr = ":http"
+	}
+
+	go srv.handleSignals(isServer)
+
+	l, err = srv.getListener(addr)
+	if err != nil {
+		log.Println(err)
+		return
+	}
+
+	srv.EndlessListener = newEndlessListener(l, srv)
+
+	if srv.isChild {
+		syscall.Kill(syscall.Getppid(), syscall.SIGTERM)
+	}
+
+	log.Println(syscall.Getpid(), srv.Addr)
+	if isServer {
+		return l, srv.Serve()
+	} else {
+		return l, err
+	}
+}
+
+/*
+ListenAndServeTLS listens on the TCP network address srv.Addr and then calls
+Serve to handle requests on incoming TLS connections.
+
+Filenames containing a certificate and matching private key for the server must
+be provided. If the certificate is signed by a certificate authority, the
+certFile should be the concatenation of the server's certificate followed by the
+CA's certificate.
+
+If srv.Addr is blank, ":https" is used.
+*/
+func (srv *endlessServer) ListenAndServeTLS(certFile, keyFile string, isServer bool) (err error) {
+	addr := srv.Addr
+	if addr == "" {
+		addr = ":https"
+	}
+
+	config := &tls.Config{}
+	if srv.TLSConfig != nil {
+		*config = *srv.TLSConfig
+	}
+	if config.NextProtos == nil {
+		config.NextProtos = []string{"http/1.1"}
+	}
+
+	config.Certificates = make([]tls.Certificate, 1)
+	config.Certificates[0], err = tls.LoadX509KeyPair(certFile, keyFile)
+	if err != nil {
+		return
+	}
+
+	go srv.handleSignals(isServer)
+
+	l, err := srv.getListener(addr)
+	if err != nil {
+		log.Println(err)
+		return
+	}
+
+	srv.tlsInnerListener = newEndlessListener(l, srv)
+	srv.EndlessListener = tls.NewListener(srv.tlsInnerListener, config)
+
+	if srv.isChild {
+		syscall.Kill(syscall.Getppid(), syscall.SIGTERM)
+	}
+
+	log.Println(syscall.Getpid(), srv.Addr)
+	return srv.Serve()
+}
+
+/*
+getListener either opens a new socket to listen on, or takes the acceptor socket
+it got passed when restarted.
+*/
+func (srv *endlessServer) getListener(laddr string) (l net.Listener, err error) {
+	if srv.isChild {
+		var ptrOffset uint = 0
+		runningServerReg.RLock()
+		defer runningServerReg.RUnlock()
+		if len(socketPtrOffsetMap) > 0 {
+			ptrOffset = socketPtrOffsetMap[laddr]
+			// log.Println("laddr", laddr, "ptr offset", socketPtrOffsetMap[laddr])
+		}
+
+		f := os.NewFile(uintptr(3+ptrOffset), "")
+		l, err = net.FileListener(f)
+		if err != nil {
+			err = fmt.Errorf("net.FileListener error: %v", err)
+			return
+		}
+	} else {
+		l, err = net.Listen("tcp", laddr)
+		if err != nil {
+			err = fmt.Errorf("net.Listen error: %v", err)
+			return
+		}
+	}
+	return
+}
+
+/*
+handleSignals listens for os Signals and calls any hooked in function that the
+user had registered with the signal.
+*/
+func (srv *endlessServer) handleSignals(isServer bool) {
+	var sig os.Signal
+
+	signal.Notify(
+		srv.sigChan,
+		hookableSignals...,
+	)
+
+	pid := syscall.Getpid()
+	for {
+		sig = <-srv.sigChan
+		srv.signalHooks(PRE_SIGNAL, sig)
+		switch sig {
+		case syscall.SIGHUP:
+			log.Println(pid, "Received SIGHUP. forking.")
+			err := srv.fork()
+			if err != nil {
+				log.Println("Fork err:", err)
+			}
+		case syscall.SIGUSR1:
+			log.Println(pid, "Received SIGUSR1.")
+		case syscall.SIGUSR2:
+			log.Println(pid, "Received SIGUSR2.")
+			srv.hammerTime(0 * time.Second)
+		case syscall.SIGINT:
+			log.Println(pid, "Received SIGINT.")
+			srv.shutdown(isServer)
+		case syscall.SIGTERM:
+			log.Println(pid, "Received SIGTERM.")
+			srv.shutdown(isServer)
+		case syscall.SIGTSTP:
+			log.Println(pid, "Received SIGTSTP.")
+		default:
+			log.Printf("Received %v: nothing i care about...\n", sig)
+		}
+		srv.signalHooks(POST_SIGNAL, sig)
+	}
+}
+
+func (srv *endlessServer) signalHooks(ppFlag int, sig os.Signal) {
+	if _, notSet := srv.SignalHooks[ppFlag][sig]; !notSet {
+		return
+	}
+	for _, f := range srv.SignalHooks[ppFlag][sig] {
+		f()
+	}
+	return
+}
+
+/*
+shutdown closes the listener so that no new connections are accepted. it also
+starts a goroutine that will hammer (stop all running requests) the server
+after DefaultHammerTime.
+*/
+func (srv *endlessServer) shutdown(isServer bool) {
+	if isServer && srv.getState() != STATE_RUNNING {
+		return
+	}
+
+	srv.setState(STATE_SHUTTING_DOWN)
+	if DefaultHammerTime >= 0 {
+		go srv.hammerTime(DefaultHammerTime)
+	}
+	// disable keep-alives on existing connections
+	srv.SetKeepAlivesEnabled(false)
+	err := srv.EndlessListener.Close()
+	if err != nil {
+		log.Println(syscall.Getpid(), "Listener.Close() error:", err)
+	} else {
+		log.Println(syscall.Getpid(), srv.EndlessListener.Addr(), "Listener closed.")
+	}
+}
+
+/*
+hammerTime forces the server to shutdown in a given timeout - whether it
+finished outstanding requests or not. if Read/WriteTimeout are not set or the
+max header size is very big a connection could hang...
+
+srv.Serve() will not return until all connections are served. this will
+unblock the srv.wg.Wait() in Serve() thus causing ListenAndServe(TLS) to
+return.
+*/
+func (srv *endlessServer) hammerTime(d time.Duration) {
+	defer func() {
+		// we are calling srv.wg.Done() until it panics which means we called
+		// Done() when the counter was already at 0 and we're done.
+		// (and thus Serve() will return and the parent will exit)
+		if r := recover(); r != nil {
+			log.Println("WaitGroup at 0", r)
+		}
+	}()
+	if srv.getState() != STATE_SHUTTING_DOWN {
+		return
+	}
+	time.Sleep(d)
+	log.Println("[STOP - Hammer Time] Forcefully shutting down parent")
+	for {
+		if srv.getState() == STATE_TERMINATE {
+			break
+		}
+		srv.wg.Done()
+		runtime.Gosched()
+	}
+}
+
+func (srv *endlessServer) fork() (err error) {
+	runningServerReg.Lock()
+	defer runningServerReg.Unlock()
+
+	// only one server isntance should fork!
+	if runningServersForked {
+		return errors.New("Another process already forked. Ignoring this one.")
+	}
+
+	runningServersForked = true
+
+	var files = make([]*os.File, len(runningServers))
+	var orderArgs = make([]string, len(runningServers))
+	// get the accessor socket fds for _all_ server instances
+	for _, srvPtr := range runningServers {
+		// introspect.PrintTypeDump(srvPtr.EndlessListener)
+		switch srvPtr.EndlessListener.(type) {
+		case *endlessListener:
+			// normal listener
+			files[socketPtrOffsetMap[srvPtr.Server.Addr]] = srvPtr.EndlessListener.(*endlessListener).File()
+		default:
+			// tls listener
+			files[socketPtrOffsetMap[srvPtr.Server.Addr]] = srvPtr.tlsInnerListener.File()
+		}
+		orderArgs[socketPtrOffsetMap[srvPtr.Server.Addr]] = srvPtr.Server.Addr
+	}
+
+	// log.Println(files)
+	path := os.Args[0]
+	var args []string
+	if len(os.Args) > 1 {
+		for _, arg := range os.Args[1:] {
+			if arg == "-continue" {
+				break
+			}
+			args = append(args, arg)
+		}
+	}
+	args = append(args, "-continue")
+	if len(runningServers) > 1 {
+		args = append(args, fmt.Sprintf(`-socketorder=%s`, strings.Join(orderArgs, ",")))
+		// log.Println(args)
+	}
+
+	cmd := exec.Command(path, args...)
+	cmd.Stdout = os.Stdout
+	cmd.Stderr = os.Stderr
+	cmd.ExtraFiles = files
+	// cmd.SysProcAttr = &syscall.SysProcAttr{
+	// 	Setsid:  true,
+	// 	Setctty: true,
+	// 	Ctty:    ,
+	// }
+
+	err = cmd.Start()
+	if err != nil {
+		log.Fatalf("Restart: Failed to launch, error: %v", err)
+	}
+
+	return
+}
+
+type endlessListener struct {
+	net.Listener
+	stopped bool
+	server  *endlessServer
+}
+
+func (el *endlessListener) Accept() (c net.Conn, err error) {
+	tc, err := el.Listener.(*net.TCPListener).AcceptTCP()
+	if err != nil {
+		return
+	}
+
+	tc.SetKeepAlive(true)                  // see http.tcpKeepAliveListener
+	tc.SetKeepAlivePeriod(3 * time.Minute) // see http.tcpKeepAliveListener
+
+	c = endlessConn{
+		Conn:   tc,
+		server: el.server,
+	}
+
+	el.server.wg.Add(1)
+	return
+}
+
+func newEndlessListener(l net.Listener, srv *endlessServer) (el *endlessListener) {
+	el = &endlessListener{
+		Listener: l,
+		server:   srv,
+	}
+
+	return
+}
+
+func (el *endlessListener) Close() error {
+	if el.stopped {
+		return syscall.EINVAL
+	}
+
+	el.stopped = true
+	return el.Listener.Close()
+}
+
+func (el *endlessListener) File() *os.File {
+	// returns a dup(2) - FD_CLOEXEC flag *not* set
+	tl := el.Listener.(*net.TCPListener)
+	fl, _ := tl.File()
+	return fl
+}
+
+type endlessConn struct {
+	net.Conn
+	server *endlessServer
+}
+
+func (w endlessConn) Close() error {
+	err := w.Conn.Close()
+	if err == nil {
+		w.server.wg.Done()
+	}
+	return err
+}
+
+/*
+RegisterSignalHook registers a function to be run PRE_SIGNAL or POST_SIGNAL for
+a given signal. PRE or POST in this case means before or after the signal
+related code endless itself runs
+*/
+func (srv *endlessServer) RegisterSignalHook(prePost int, sig os.Signal, f func()) (err error) {
+	if prePost != PRE_SIGNAL && prePost != POST_SIGNAL {
+		err = fmt.Errorf("Cannot use %v for prePost arg. Must be endless.PRE_SIGNAL or endless.POST_SIGNAL.")
+		return
+	}
+	for _, s := range hookableSignals {
+		if s == sig {
+			srv.SignalHooks[prePost][sig] = append(srv.SignalHooks[prePost][sig], f)
+			return
+		}
+	}
+	err = fmt.Errorf("Signal %v is not supported.")
+	return
+}

+ 16 - 0
src/endless/serve.go

@@ -0,0 +1,16 @@
+// +build !linux
+
+package endless
+
+import (
+	"net"
+	"net/http"
+)
+
+func ListenAndServe(addr string, handler http.Handler, fn func()) error {
+	return http.ListenAndServe(addr, handler)
+}
+
+func NetListen(address string, handler http.Handler, fn func()) (net.Listener, error) {
+	return net.Listen("tcp", address)
+}

+ 19 - 0
src/github.com/dchest/captcha/LICENSE

@@ -0,0 +1,19 @@
+Copyright (c) 2011-2014 Dmitry Chestnykh <dmitry@codingrobots.com>
+
+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.

+ 275 - 0
src/github.com/dchest/captcha/README.md

@@ -0,0 +1,275 @@
+Package captcha
+=====================
+
+	import "github.com/dchest/captcha"
+
+Package captcha implements generation and verification of image and audio
+CAPTCHAs.
+
+A captcha solution is the sequence of digits 0-9 with the defined length.
+There are two captcha representations: image and audio.
+
+An image representation is a PNG-encoded image with the solution printed on
+it in such a way that makes it hard for computers to solve it using OCR.
+
+An audio representation is a WAVE-encoded (8 kHz unsigned 8-bit) sound with the
+spoken solution (currently in English, Russian, and Chinese). To make it hard
+for computers to solve audio captcha, the voice that pronounces numbers has
+random speed and pitch, and there is a randomly generated background noise
+mixed into the sound.
+
+This package doesn't require external files or libraries to generate captcha
+representations; it is self-contained.
+
+To make captchas one-time, the package includes a memory storage that stores
+captcha ids, their solutions, and expiration time. Used captchas are removed
+from the store immediately after calling Verify or VerifyString, while
+unused captchas (user loaded a page with captcha, but didn't submit the
+form) are collected automatically after the predefined expiration time.
+Developers can also provide custom store (for example, which saves captcha
+ids and solutions in database) by implementing Store interface and
+registering the object with SetCustomStore.
+
+Captchas are created by calling New, which returns the captcha id.  Their
+representations, though, are created on-the-fly by calling WriteImage or
+WriteAudio functions. Created representations are not stored anywhere, but
+subsequent calls to these functions with the same id will write the same
+captcha solution. Reload function will create a new different solution for the
+provided captcha, allowing users to "reload" captcha if they can't solve the
+displayed one without reloading the whole page.  Verify and VerifyString are
+used to verify that the given solution is the right one for the given captcha
+id.
+
+Server provides an http.Handler which can serve image and audio
+representations of captchas automatically from the URL. It can also be used
+to reload captchas.  Refer to Server function documentation for details, or
+take a look at the example in "capexample" subdirectory.
+
+
+Examples
+--------
+
+![Image](https://github.com/dchest/captcha/raw/master/capgen/example.png)
+
+[Audio](https://github.com/dchest/captcha/raw/master/capgen/example.wav)
+
+
+Constants
+---------
+
+``` go
+const (
+    // Default number of digits in captcha solution.
+    DefaultLen = 6
+    // The number of captchas created that triggers garbage collection used
+    // by default store.
+    CollectNum = 100
+    // Expiration time of captchas used by default store.
+    Expiration = 10 * time.Minutes
+)
+```
+
+``` go
+const (
+    // Standard width and height of a captcha image.
+    StdWidth  = 240
+    StdHeight = 80
+)
+```
+
+
+Variables
+---------
+
+``` go
+var (
+    ErrNotFound = errors.New("captcha: id not found")
+)
+```
+
+
+
+Functions
+---------
+
+### func New
+
+	func New() string
+	
+New creates a new captcha with the standard length, saves it in the internal
+storage and returns its id.
+
+### func NewLen
+
+	func NewLen(length int) (id string)
+	
+NewLen is just like New, but accepts length of a captcha solution as the
+argument.
+
+### func RandomDigits
+
+	func RandomDigits(length int) (b []byte)
+	
+RandomDigits returns a byte slice of the given length containing
+pseudorandom numbers in range 0-9. The slice can be used as a captcha
+solution.
+
+### func Reload
+
+	func Reload(id string) bool
+	
+Reload generates and remembers new digits for the given captcha id.  This
+function returns false if there is no captcha with the given id.
+
+After calling this function, the image or audio presented to a user must be
+refreshed to show the new captcha representation (WriteImage and WriteAudio
+will write the new one).
+
+### func Server
+
+	func Server(imgWidth, imgHeight int) http.Handler
+	
+Server returns a handler that serves HTTP requests with image or
+audio representations of captchas. Image dimensions are accepted as
+arguments. The server decides which captcha to serve based on the last URL
+path component: file name part must contain a captcha id, file extension —
+its format (PNG or WAV).
+
+For example, for file name "LBm5vMjHDtdUfaWYXiQX.png" it serves an image captcha
+with id "LBm5vMjHDtdUfaWYXiQX", and for "LBm5vMjHDtdUfaWYXiQX.wav" it serves the
+same captcha in audio format.
+
+To serve a captcha as a downloadable file, the URL must be constructed in
+such a way as if the file to serve is in the "download" subdirectory:
+"/download/LBm5vMjHDtdUfaWYXiQX.wav".
+
+To reload captcha (get a different solution for the same captcha id), append
+"?reload=x" to URL, where x may be anything (for example, current time or a
+random number to make browsers refetch an image instead of loading it from
+cache).
+
+By default, the Server serves audio in English language. To serve audio
+captcha in one of the other supported languages, append "lang" value, for
+example, "?lang=ru".
+
+### func SetCustomStore
+
+	func SetCustomStore(s Store)
+	
+SetCustomStore sets custom storage for captchas, replacing the default
+memory store. This function must be called before generating any captchas.
+
+### func Verify
+
+	func Verify(id string, digits []byte) bool
+	
+Verify returns true if the given digits are the ones that were used to
+create the given captcha id.
+
+The function deletes the captcha with the given id from the internal
+storage, so that the same captcha can't be verified anymore.
+
+### func VerifyString
+
+	func VerifyString(id string, digits string) bool
+	
+VerifyString is like Verify, but accepts a string of digits.  It removes
+spaces and commas from the string, but any other characters, apart from
+digits and listed above, will cause the function to return false.
+
+### func WriteAudio
+
+	func WriteAudio(w io.Writer, id string, lang string) error
+	
+WriteAudio writes WAV-encoded audio representation of the captcha with the
+given id and the given language. If there are no sounds for the given
+language, English is used.
+
+### func WriteImage
+
+	func WriteImage(w io.Writer, id string, width, height int) error
+	
+WriteImage writes PNG-encoded image representation of the captcha with the
+given id. The image will have the given width and height.
+
+
+Types
+-----
+
+``` go
+type Audio struct {
+    // contains unexported fields
+}
+```
+
+
+### func NewAudio
+
+	func NewAudio(id string, digits []byte, lang string) *Audio
+	
+NewAudio returns a new audio captcha with the given digits, where each digit
+must be in range 0-9. Digits are pronounced in the given language. If there
+are no sounds for the given language, English is used.
+
+Possible values for lang are "en", "ru", "zh".
+
+### func (*Audio) EncodedLen
+
+	func (a *Audio) EncodedLen() int
+	
+EncodedLen returns the length of WAV-encoded audio captcha.
+
+### func (*Audio) WriteTo
+
+	func (a *Audio) WriteTo(w io.Writer) (n int64, err error)
+	
+WriteTo writes captcha audio in WAVE format into the given io.Writer, and
+returns the number of bytes written and an error if any.
+
+``` go
+type Image struct {
+    *image.Paletted
+    // contains unexported fields
+}
+```
+
+
+### func NewImage
+
+	func NewImage(id string, digits []byte, width, height int) *Image
+	
+NewImage returns a new captcha image of the given width and height with the
+given digits, where each digit must be in range 0-9.
+
+### func (*Image) WriteTo
+
+	func (m *Image) WriteTo(w io.Writer) (int64, error)
+	
+WriteTo writes captcha image in PNG format into the given writer.
+
+``` go
+type Store interface {
+    // Set sets the digits for the captcha id.
+    Set(id string, digits []byte)
+
+    // Get returns stored digits for the captcha id. Clear indicates
+    // whether the captcha must be deleted from the store.
+    Get(id string, clear bool) (digits []byte)
+}
+```
+
+An object implementing Store interface can be registered with SetCustomStore
+function to handle storage and retrieval of captcha ids and solutions for
+them, replacing the default memory store.
+
+It is the responsibility of an object to delete expired and used captchas
+when necessary (for example, the default memory store collects them in Set
+method after the certain amount of captchas has been stored.)
+
+### func NewMemoryStore
+
+	func NewMemoryStore(collectNum int, expiration time.Duration) Store
+	
+NewMemoryStore returns a new standard memory store for captchas with the
+given collection threshold and expiration time in seconds. The returned
+store must be registered with SetCustomStore to replace the default one.

+ 232 - 0
src/github.com/dchest/captcha/audio.go

@@ -0,0 +1,232 @@
+// Copyright 2011-2014 Dmitry Chestnykh. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package captcha
+
+import (
+	"bytes"
+	"encoding/binary"
+	"io"
+	"math"
+)
+
+const sampleRate = 8000 // Hz
+
+var endingBeepSound []byte
+
+func init() {
+	endingBeepSound = changeSpeed(beepSound, 1.4)
+}
+
+type Audio struct {
+	body        *bytes.Buffer
+	digitSounds [][]byte
+	rng         siprng
+}
+
+// NewAudio returns a new audio captcha with the given digits, where each digit
+// must be in range 0-9. Digits are pronounced in the given language. If there
+// are no sounds for the given language, English is used.
+//
+// Possible values for lang are "en", "ru", "zh".
+func NewAudio(id string, digits []byte, lang string) *Audio {
+	a := new(Audio)
+
+	// Initialize PRNG.
+	a.rng.Seed(deriveSeed(audioSeedPurpose, id, digits))
+
+	if sounds, ok := digitSounds[lang]; ok {
+		a.digitSounds = sounds
+	} else {
+		a.digitSounds = digitSounds["en"]
+	}
+	numsnd := make([][]byte, len(digits))
+	nsdur := 0
+	for i, n := range digits {
+		snd := a.randomizedDigitSound(n)
+		nsdur += len(snd)
+		numsnd[i] = snd
+	}
+	// Random intervals between digits (including beginning).
+	intervals := make([]int, len(digits)+1)
+	intdur := 0
+	for i := range intervals {
+		dur := a.rng.Int(sampleRate, sampleRate*3) // 1 to 3 seconds
+		intdur += dur
+		intervals[i] = dur
+	}
+	// Generate background sound.
+	bg := a.makeBackgroundSound(a.longestDigitSndLen()*len(digits) + intdur)
+	// Create buffer and write audio to it.
+	sil := makeSilence(sampleRate / 5)
+	bufcap := 3*len(beepSound) + 2*len(sil) + len(bg) + len(endingBeepSound)
+	a.body = bytes.NewBuffer(make([]byte, 0, bufcap))
+	// Write prelude, three beeps.
+	a.body.Write(beepSound)
+	a.body.Write(sil)
+	a.body.Write(beepSound)
+	a.body.Write(sil)
+	a.body.Write(beepSound)
+	// Write digits.
+	pos := intervals[0]
+	for i, v := range numsnd {
+		mixSound(bg[pos:], v)
+		pos += len(v) + intervals[i+1]
+	}
+	a.body.Write(bg)
+	// Write ending (one beep).
+	a.body.Write(endingBeepSound)
+	return a
+}
+
+// WriteTo writes captcha audio in WAVE format into the given io.Writer, and
+// returns the number of bytes written and an error if any.
+func (a *Audio) WriteTo(w io.Writer) (n int64, err error) {
+	// Calculate padded length of PCM chunk data.
+	bodyLen := uint32(a.body.Len())
+	paddedBodyLen := bodyLen
+	if bodyLen%2 != 0 {
+		paddedBodyLen++
+	}
+	totalLen := uint32(len(waveHeader)) - 4 + paddedBodyLen
+	// Header.
+	header := make([]byte, len(waveHeader)+4) // includes 4 bytes for chunk size
+	copy(header, waveHeader)
+	// Put the length of whole RIFF chunk.
+	binary.LittleEndian.PutUint32(header[4:], totalLen)
+	// Put the length of WAVE chunk.
+	binary.LittleEndian.PutUint32(header[len(waveHeader):], bodyLen)
+	// Write header.
+	nn, err := w.Write(header)
+	n = int64(nn)
+	if err != nil {
+		return
+	}
+	// Write data.
+	n, err = a.body.WriteTo(w)
+	n += int64(nn)
+	if err != nil {
+		return
+	}
+	// Pad byte if chunk length is odd.
+	// (As header has even length, we can check if n is odd, not chunk).
+	if bodyLen != paddedBodyLen {
+		w.Write([]byte{0})
+		n++
+	}
+	return
+}
+
+// EncodedLen returns the length of WAV-encoded audio captcha.
+func (a *Audio) EncodedLen() int {
+	return len(waveHeader) + 4 + a.body.Len()
+}
+
+func (a *Audio) makeBackgroundSound(length int) []byte {
+	b := a.makeWhiteNoise(length, 4)
+	for i := 0; i < length/(sampleRate/10); i++ {
+		snd := reversedSound(a.digitSounds[a.rng.Intn(10)])
+		snd = changeSpeed(snd, a.rng.Float(0.8, 1.4))
+		place := a.rng.Intn(len(b) - len(snd))
+		setSoundLevel(snd, a.rng.Float(0.2, 0.5))
+		mixSound(b[place:], snd)
+	}
+	return b
+}
+
+func (a *Audio) randomizedDigitSound(n byte) []byte {
+	s := a.randomSpeed(a.digitSounds[n])
+	setSoundLevel(s, a.rng.Float(0.75, 1.2))
+	return s
+}
+
+func (a *Audio) longestDigitSndLen() int {
+	n := 0
+	for _, v := range a.digitSounds {
+		if n < len(v) {
+			n = len(v)
+		}
+	}
+	return n
+}
+
+func (a *Audio) randomSpeed(b []byte) []byte {
+	pitch := a.rng.Float(0.9, 1.2)
+	return changeSpeed(b, pitch)
+}
+
+func (a *Audio) makeWhiteNoise(length int, level uint8) []byte {
+	noise := a.rng.Bytes(length)
+	adj := 128 - level/2
+	for i, v := range noise {
+		v %= level
+		v += adj
+		noise[i] = v
+	}
+	return noise
+}
+
+// mixSound mixes src into dst. Dst must have length equal to or greater than
+// src length.
+func mixSound(dst, src []byte) {
+	for i, v := range src {
+		av := int(v)
+		bv := int(dst[i])
+		if av < 128 && bv < 128 {
+			dst[i] = byte(av * bv / 128)
+		} else {
+			dst[i] = byte(2*(av+bv) - av*bv/128 - 256)
+		}
+	}
+}
+
+func setSoundLevel(a []byte, level float64) {
+	for i, v := range a {
+		av := float64(v)
+		switch {
+		case av > 128:
+			if av = (av-128)*level + 128; av < 128 {
+				av = 128
+			}
+		case av < 128:
+			if av = 128 - (128-av)*level; av > 128 {
+				av = 128
+			}
+		default:
+			continue
+		}
+		a[i] = byte(av)
+	}
+}
+
+// changeSpeed returns new PCM bytes from the bytes with the speed and pitch
+// changed to the given value that must be in range [0, x].
+func changeSpeed(a []byte, speed float64) []byte {
+	b := make([]byte, int(math.Floor(float64(len(a))*speed)))
+	var p float64
+	for _, v := range a {
+		for i := int(p); i < int(p+speed); i++ {
+			b[i] = v
+		}
+		p += speed
+	}
+	return b
+}
+
+func makeSilence(length int) []byte {
+	b := make([]byte, length)
+	for i := range b {
+		b[i] = 128
+	}
+	return b
+}
+
+func reversedSound(a []byte) []byte {
+	n := len(a)
+	b := make([]byte, n)
+	for i, v := range a {
+		b[n-1-i] = v
+	}
+	return b
+}

+ 32 - 0
src/github.com/dchest/captcha/audio_test.go

@@ -0,0 +1,32 @@
+// Copyright 2011 Dmitry Chestnykh. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package captcha
+
+import (
+	"io/ioutil"
+	"testing"
+)
+
+func BenchmarkNewAudio(b *testing.B) {
+	b.StopTimer()
+	d := RandomDigits(DefaultLen)
+	id := randomId()
+	b.StartTimer()
+	for i := 0; i < b.N; i++ {
+		NewAudio(id, d, "")
+	}
+}
+
+func BenchmarkAudioWriteTo(b *testing.B) {
+	b.StopTimer()
+	d := RandomDigits(DefaultLen)
+	id := randomId()
+	b.StartTimer()
+	for i := 0; i < b.N; i++ {
+		a := NewAudio(id, d, "")
+		n, _ := a.WriteTo(ioutil.Discard)
+		b.SetBytes(n)
+	}
+}

+ 107 - 0
src/github.com/dchest/captcha/capexample/main.go

@@ -0,0 +1,107 @@
+// Copyright 2011 Dmitry Chestnykh. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+// example of HTTP server that uses the captcha package.
+package main
+
+import (
+	"fmt"
+	"github.com/dchest/captcha"
+	"io"
+	"log"
+	"net/http"
+	"text/template"
+)
+
+var formTemplate = template.Must(template.New("example").Parse(formTemplateSrc))
+
+func showFormHandler(w http.ResponseWriter, r *http.Request) {
+	if r.URL.Path != "/" {
+		http.NotFound(w, r)
+		return
+	}
+	d := struct {
+		CaptchaId string
+	}{
+		captcha.New(),
+	}
+	if err := formTemplate.Execute(w, &d); err != nil {
+		http.Error(w, err.Error(), http.StatusInternalServerError)
+	}
+}
+
+func processFormHandler(w http.ResponseWriter, r *http.Request) {
+	w.Header().Set("Content-Type", "text/html; charset=utf-8")
+	if !captcha.VerifyString(r.FormValue("captchaId"), r.FormValue("captchaSolution")) {
+		io.WriteString(w, "Wrong captcha solution! No robots allowed!\n")
+	} else {
+		io.WriteString(w, "Great job, human! You solved the captcha.\n")
+	}
+	io.WriteString(w, "<br><a href='/'>Try another one</a>")
+}
+
+func main() {
+	http.HandleFunc("/", showFormHandler)
+	http.HandleFunc("/process", processFormHandler)
+	http.Handle("/captcha/", captcha.Server(captcha.StdWidth, captcha.StdHeight))
+	fmt.Println("Server is at localhost:8666")
+	if err := http.ListenAndServe(":8666", nil); err != nil {
+		log.Fatal(err)
+	}
+}
+
+const formTemplateSrc = `<!doctype html>
+<head><title>Captcha Example</title></head>
+<body>
+<script>
+function setSrcQuery(e, q) {
+	var src  = e.src;
+	var p = src.indexOf('?');
+	if (p >= 0) {
+		src = src.substr(0, p);
+	}
+	e.src = src + "?" + q
+}
+
+function playAudio() {
+	var le = document.getElementById("lang");
+	var lang = le.options[le.selectedIndex].value;
+	var e = document.getElementById('audio')
+	setSrcQuery(e, "lang=" + lang)
+	e.style.display = 'block';
+	e.autoplay = 'true';
+	return false;
+}
+
+function changeLang() {
+	var e = document.getElementById('audio')
+	if (e.style.display == 'block') {
+		playAudio();
+	}
+}
+
+function reload() {
+	setSrcQuery(document.getElementById('image'), "reload=" + (new Date()).getTime());
+	setSrcQuery(document.getElementById('audio'), (new Date()).getTime());
+	return false;
+}
+</script>
+<select id="lang" onchange="changeLang()">
+	<option value="en">English</option>
+	<option value="ru">Russian</option>
+	<option value="zh">Chinese</option>
+</select>
+<form action="/process" method=post>
+<p>Type the numbers you see in the picture below:</p>
+<p><img id=image src="/captcha/{{.CaptchaId}}.png" alt="Captcha image"></p>
+<a href="#" onclick="reload()">Reload</a> | <a href="#" onclick="playAudio()">Play Audio</a>
+<audio id=audio controls style="display:none" src="/captcha/{{.CaptchaId}}.wav" preload=none>
+  You browser doesn't support audio.
+  <a href="/captcha/download/{{.CaptchaId}}.wav">Download file</a> to play it in the external player.
+</audio>
+<input type=hidden name=captchaId value="{{.CaptchaId}}"><br>
+<input name=captchaSolution>
+<input type=submit value=Submit>
+</form>
+`

BIN
src/github.com/dchest/captcha/capgen/example.png


BIN
src/github.com/dchest/captcha/capgen/example.wav


+ 56 - 0
src/github.com/dchest/captcha/capgen/main.go

@@ -0,0 +1,56 @@
+// Copyright 2011 Dmitry Chestnykh. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+// capgen is an utility to test captcha generation.
+package main
+
+import (
+	"flag"
+	"fmt"
+	"github.com/dchest/captcha"
+	"io"
+	"log"
+	"os"
+)
+
+var (
+	flagImage = flag.Bool("i", true, "output image captcha")
+	flagAudio = flag.Bool("a", false, "output audio captcha")
+	flagLang  = flag.String("lang", "en", "language for audio captcha")
+	flagLen   = flag.Int("len", captcha.DefaultLen, "length of captcha")
+	flagImgW  = flag.Int("width", captcha.StdWidth, "image captcha width")
+	flagImgH  = flag.Int("height", captcha.StdHeight, "image captcha height")
+)
+
+func usage() {
+	fmt.Fprintf(os.Stderr, "usage: captcha [flags] filename\n")
+	flag.PrintDefaults()
+}
+
+func main() {
+	flag.Parse()
+	fname := flag.Arg(0)
+	if fname == "" {
+		usage()
+		os.Exit(1)
+	}
+	f, err := os.Create(fname)
+	if err != nil {
+		log.Fatalf("%s", err)
+	}
+	defer f.Close()
+	var w io.WriterTo
+	d := captcha.RandomDigits(*flagLen)
+	switch {
+	case *flagAudio:
+		w = captcha.NewAudio("", d, *flagLang)
+	case *flagImage:
+		w = captcha.NewImage("", d, *flagImgW, *flagImgH)
+	}
+	_, err = w.WriteTo(f)
+	if err != nil {
+		log.Fatalf("%s", err)
+	}
+	fmt.Println(d)
+}

+ 25 - 0
src/github.com/dchest/captcha/capgensounds/README.markdown

@@ -0,0 +1,25 @@
+How to create sounds for other languages
+========================================
+
+* Record sounds for 0-9.
+  Speak fast enough to make sound files small.  Make sure the level of sound is
+  the same as in the provided samples for English (this is important for making
+  captchas harder to break). Save files in 8 KHz 8-bit PCM WAV format.  (To do
+  this in Audacity, set "Project Rate (Hz)" at the lower left corner to 8000,
+  then click File > Export, select "Other uncompressed files", click
+  Options..., select "WAV (Microsoft)" for Header, and "Unsigned 8 bit PCM" for
+  Encoding.)
+
+  If you're not sure if your sounds are okay or how to save them properly, just
+  save one of them into any format (MP3 is okay), and send it to me
+  <dmitry@codingrobots.com>. I'll check it, and if it's okay, I'll ask you for
+  other sounds, and process them myself (in this case, you can stop reading.)
+
+* Put `0.wav` - `9.wav` into the subdirectory with language name (e.g. "ua").
+
+* Open main.go and edit "var langs" on line 21 to include the new directory
+  name.
+
+* go install && $GOROOT/bin/capgensounds
+
+If all goes well, fork this repository, commit your changes, and send me a pull request.

BIN
src/github.com/dchest/captcha/capgensounds/beep.wav


BIN
src/github.com/dchest/captcha/capgensounds/en/0.wav


BIN
src/github.com/dchest/captcha/capgensounds/en/1.wav


BIN
src/github.com/dchest/captcha/capgensounds/en/2.wav


BIN
src/github.com/dchest/captcha/capgensounds/en/3.wav


BIN
src/github.com/dchest/captcha/capgensounds/en/4.wav


BIN
src/github.com/dchest/captcha/capgensounds/en/5.wav


BIN
src/github.com/dchest/captcha/capgensounds/en/6.wav


BIN
src/github.com/dchest/captcha/capgensounds/en/7.wav


BIN
src/github.com/dchest/captcha/capgensounds/en/8.wav


BIN
src/github.com/dchest/captcha/capgensounds/en/9.wav


+ 95 - 0
src/github.com/dchest/captcha/capgensounds/main.go

@@ -0,0 +1,95 @@
+// Copyright 2011 Dmitry Chestnykh. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+// generate is a tool to generate sounds.go from WAVE files.
+//
+// It creates (or rewrites) sounds.go in the parent directory.
+package main
+
+import (
+	"fmt"
+	"os"
+	"io"
+	"io/ioutil"
+	"log"
+	"path/filepath"
+)
+
+const headerLen = 44
+
+var langs = []string{"en", "ru"}
+
+func writeVar(w io.Writer, b []byte, prefix string) {
+	i := 0
+	for j, v := range b {
+		fmt.Fprintf(w, "0x%02x,", v)
+		i++
+		if i == 11 {
+			fmt.Fprintf(w, "\n")
+			if j != len(b)-1 {
+				fmt.Fprintf(w, prefix)
+			}
+			i = 0
+		} else {
+			if j != len(b)-1 {
+				fmt.Fprintf(w, " ")
+			}
+		}
+	}
+	if i > 0 {
+		fmt.Fprintf(w, "\n")
+	}
+}
+
+func writeFileRep(pcm io.Writer, name, prefix string) {
+	b, err := ioutil.ReadFile(name)
+	if err != nil {
+		log.Fatalf("%s", err)
+	}
+	writeVar(pcm, b[headerLen:], prefix)
+}
+
+func writeSingle(pcm io.Writer, name string) {
+	fmt.Fprintf(pcm, "\nvar %sSound = []byte{\n\t", name)
+	writeFileRep(pcm, name+".wav", "\t")
+	fmt.Fprintf(pcm, "}\n")
+}
+
+func writeDigitSounds(pcm io.Writer, lang string) {
+	fmt.Fprintf(pcm, "\t\"%s\": [][]byte{\n", lang)
+	for i := 0; i <= 9; i++ {
+		fmt.Fprintf(pcm, "\t\t{ // %d\n\t\t\t", i)
+		writeFileRep(pcm, filepath.Join(lang, fmt.Sprintf("%d.wav", i)), "\t\t\t")
+		fmt.Fprintf(pcm, "\t\t},\n")
+	}
+	fmt.Fprintf(pcm, "\t},\n")
+}
+
+func main() {
+	pcm, err := os.Create(filepath.Join("..", "sounds.go"))
+	if err != nil {
+		log.Fatalf("%s", err)
+	}
+	defer pcm.Close()
+	fmt.Fprintf(pcm, `package captcha
+
+// This file has been generated from .wav files using generate.go.
+
+var waveHeader = []byte{
+	0x52, 0x49, 0x46, 0x46, 0x00, 0x00, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45,
+	0x66, 0x6d, 0x74, 0x20, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
+	0x40, 0x1f, 0x00, 0x00, 0x40, 0x1f, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00,
+	0x64, 0x61, 0x74, 0x61,
+}
+
+// Byte slices contain raw 8 kHz unsigned 8-bit PCM data (without wav header).
+
+`)
+	fmt.Fprintf(pcm, "var digitSounds = map[string][][]byte{\n")
+	for _, lang := range langs {
+		writeDigitSounds(pcm, lang)
+	}
+	fmt.Fprintf(pcm, "}\n")
+	writeSingle(pcm, "beep")
+}

BIN
src/github.com/dchest/captcha/capgensounds/ru/0.wav


BIN
src/github.com/dchest/captcha/capgensounds/ru/1.wav


BIN
src/github.com/dchest/captcha/capgensounds/ru/2.wav


BIN
src/github.com/dchest/captcha/capgensounds/ru/3.wav


BIN
src/github.com/dchest/captcha/capgensounds/ru/4.wav


BIN
src/github.com/dchest/captcha/capgensounds/ru/5.wav


BIN
src/github.com/dchest/captcha/capgensounds/ru/6.wav


BIN
src/github.com/dchest/captcha/capgensounds/ru/7.wav


BIN
src/github.com/dchest/captcha/capgensounds/ru/8.wav


BIN
src/github.com/dchest/captcha/capgensounds/ru/9.wav


BIN
src/github.com/dchest/captcha/capgensounds/zh/0.wav


BIN
src/github.com/dchest/captcha/capgensounds/zh/1.wav


BIN
src/github.com/dchest/captcha/capgensounds/zh/2.wav


BIN
src/github.com/dchest/captcha/capgensounds/zh/3.wav


BIN
src/github.com/dchest/captcha/capgensounds/zh/4.wav


BIN
src/github.com/dchest/captcha/capgensounds/zh/5.wav


BIN
src/github.com/dchest/captcha/capgensounds/zh/6.wav


BIN
src/github.com/dchest/captcha/capgensounds/zh/7.wav


BIN
src/github.com/dchest/captcha/capgensounds/zh/8.wav


BIN
src/github.com/dchest/captcha/capgensounds/zh/9.wav


+ 165 - 0
src/github.com/dchest/captcha/captcha.go

@@ -0,0 +1,165 @@
+// Copyright 2011 Dmitry Chestnykh. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+// Package captcha implements generation and verification of image and audio
+// CAPTCHAs.
+//
+// A captcha solution is the sequence of digits 0-9 with the defined length.
+// There are two captcha representations: image and audio.
+//
+// An image representation is a PNG-encoded image with the solution printed on
+// it in such a way that makes it hard for computers to solve it using OCR.
+//
+// An audio representation is a WAVE-encoded (8 kHz unsigned 8-bit) sound with
+// the spoken solution (currently in English, Russian, and Chinese). To make it
+// hard for computers to solve audio captcha, the voice that pronounces numbers
+// has random speed and pitch, and there is a randomly generated background
+// noise mixed into the sound.
+//
+// This package doesn't require external files or libraries to generate captcha
+// representations; it is self-contained.
+//
+// To make captchas one-time, the package includes a memory storage that stores
+// captcha ids, their solutions, and expiration time. Used captchas are removed
+// from the store immediately after calling Verify or VerifyString, while
+// unused captchas (user loaded a page with captcha, but didn't submit the
+// form) are collected automatically after the predefined expiration time.
+// Developers can also provide custom store (for example, which saves captcha
+// ids and solutions in database) by implementing Store interface and
+// registering the object with SetCustomStore.
+//
+// Captchas are created by calling New, which returns the captcha id.  Their
+// representations, though, are created on-the-fly by calling WriteImage or
+// WriteAudio functions. Created representations are not stored anywhere, but
+// subsequent calls to these functions with the same id will write the same
+// captcha solution. Reload function will create a new different solution for
+// the provided captcha, allowing users to "reload" captcha if they can't solve
+// the displayed one without reloading the whole page.  Verify and VerifyString
+// are used to verify that the given solution is the right one for the given
+// captcha id.
+//
+// Server provides an http.Handler which can serve image and audio
+// representations of captchas automatically from the URL. It can also be used
+// to reload captchas.  Refer to Server function documentation for details, or
+// take a look at the example in "capexample" subdirectory.
+package captcha
+
+import (
+	"bytes"
+	"errors"
+	"io"
+	"time"
+)
+
+const (
+	// Default number of digits in captcha solution.
+	DefaultLen = 6
+	// The number of captchas created that triggers garbage collection used
+	// by default store.
+	CollectNum = 100
+	// Expiration time of captchas used by default store.
+	Expiration = 10 * time.Minute
+)
+
+var (
+	ErrNotFound = errors.New("captcha: id not found")
+	// globalStore is a shared storage for captchas, generated by New function.
+	globalStore = NewMemoryStore(CollectNum, Expiration)
+)
+
+// SetCustomStore sets custom storage for captchas, replacing the default
+// memory store. This function must be called before generating any captchas.
+func SetCustomStore(s Store) {
+	globalStore = s
+}
+
+// New creates a new captcha with the standard length, saves it in the internal
+// storage and returns its id.
+func New() string {
+	return NewLen(DefaultLen)
+}
+
+// NewLen is just like New, but accepts length of a captcha solution as the
+// argument.
+func NewLen(length int) (id string) {
+	id = randomId()
+	globalStore.Set(id, RandomDigits(length))
+	return
+}
+
+// Reload generates and remembers new digits for the given captcha id.  This
+// function returns false if there is no captcha with the given id.
+//
+// After calling this function, the image or audio presented to a user must be
+// refreshed to show the new captcha representation (WriteImage and WriteAudio
+// will write the new one).
+func Reload(id string) bool {
+	old := globalStore.Get(id, false)
+	if old == nil {
+		return false
+	}
+	globalStore.Set(id, RandomDigits(len(old)))
+	return true
+}
+
+// WriteImage writes PNG-encoded image representation of the captcha with the
+// given id. The image will have the given width and height.
+func WriteImage(w io.Writer, id string, width, height int) error {
+	d := globalStore.Get(id, false)
+	if d == nil {
+		return ErrNotFound
+	}
+	_, err := NewImage(id, d, width, height).WriteTo(w)
+	return err
+}
+
+// WriteAudio writes WAV-encoded audio representation of the captcha with the
+// given id and the given language. If there are no sounds for the given
+// language, English is used.
+func WriteAudio(w io.Writer, id string, lang string) error {
+	d := globalStore.Get(id, false)
+	if d == nil {
+		return ErrNotFound
+	}
+	_, err := NewAudio(id, d, lang).WriteTo(w)
+	return err
+}
+
+// Verify returns true if the given digits are the ones that were used to
+// create the given captcha id.
+//
+// The function deletes the captcha with the given id from the internal
+// storage, so that the same captcha can't be verified anymore.
+func Verify(id string, digits []byte) bool {
+	if digits == nil || len(digits) == 0 {
+		return false
+	}
+	reald := globalStore.Get(id, true)
+	if reald == nil {
+		return false
+	}
+	return bytes.Equal(digits, reald)
+}
+
+// VerifyString is like Verify, but accepts a string of digits.  It removes
+// spaces and commas from the string, but any other characters, apart from
+// digits and listed above, will cause the function to return false.
+func VerifyString(id string, digits string) bool {
+	if digits == "" {
+		return false
+	}
+	ns := make([]byte, len(digits))
+	for i := range ns {
+		d := digits[i]
+		switch {
+		case '0' <= d && d <= '9':
+			ns[i] = d - '0'
+		case d == ' ' || d == ',':
+			// ignore
+		default:
+			return false
+		}
+	}
+	return Verify(id, ns)
+}

+ 61 - 0
src/github.com/dchest/captcha/captcha_test.go

@@ -0,0 +1,61 @@
+// Copyright 2011 Dmitry Chestnykh. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package captcha
+
+import (
+	"bytes"
+	"os"
+	"testing"
+)
+
+func TestNew(t *testing.T) {
+	c := New()
+	if c == "" {
+		t.Errorf("expected id, got empty string")
+	}
+}
+
+func TestVerify(t *testing.T) {
+	id := New()
+	if Verify(id, []byte{0, 0}) {
+		t.Errorf("verified wrong captcha")
+	}
+	id = New()
+	d := globalStore.Get(id, false) // cheating
+	if !Verify(id, d) {
+		t.Errorf("proper captcha not verified")
+	}
+}
+
+func TestReload(t *testing.T) {
+	id := New()
+	d1 := globalStore.Get(id, false) // cheating
+	Reload(id)
+	d2 := globalStore.Get(id, false) // cheating again
+	if bytes.Equal(d1, d2) {
+		t.Errorf("reload didn't work: %v = %v", d1, d2)
+	}
+}
+
+//
+func TestCap(t *testing.T) {
+	id := NewLen(4)
+
+	fi, _ := os.OpenFile("C:\\Users\\admin\\Desktop\\12.png", os.O_CREATE|os.O_SYNC|os.O_RDWR, 0x666)
+	WriteImage(fi, id, 90, 30)
+}
+
+func TestRandomDigits(t *testing.T) {
+	d1 := RandomDigits(10)
+	for _, v := range d1 {
+		if v > 9 {
+			t.Errorf("digits not in range 0-9: %v", d1)
+		}
+	}
+	d2 := RandomDigits(10)
+	if bytes.Equal(d1, d2) {
+		t.Errorf("digits seem to be not random")
+	}
+}

+ 214 - 0
src/github.com/dchest/captcha/font.go

@@ -0,0 +1,214 @@
+// Copyright 2011 Dmitry Chestnykh. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package captcha
+
+const (
+	fontWidth  = 11
+	fontHeight = 18
+	blackChar  = 1
+)
+
+var font = [][]byte{
+	{ // 0
+		0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0,
+		0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0,
+		0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0,
+		0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+		1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+		1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1,
+		0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+		0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0,
+		0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0,
+		0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0,
+	},
+	{ // 1
+		0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
+		0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0,
+		0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
+		0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0,
+		0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0,
+		0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0,
+		0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
+		0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
+		0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
+		0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
+		0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
+		0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
+		0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
+		0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
+		0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
+		0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
+		0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+		0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+	},
+	{ // 2
+		0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0,
+		0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
+		1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0,
+		0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0,
+		0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
+		0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
+		0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
+		0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
+		0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
+		0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+		0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
+		0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0,
+		0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+		0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0,
+		0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
+		0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+		1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+		1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+	},
+	{ // 3
+		0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
+		1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
+		1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+		0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
+		0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
+		0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
+		0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0,
+		0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0,
+		0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0,
+		0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+		0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
+		0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
+		1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+		1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
+		0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0,
+	},
+	{ // 4
+		0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
+		0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0,
+		0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0,
+		0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0,
+		0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0,
+		0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0,
+		0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0,
+		0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0,
+		0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0,
+		0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0,
+		1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0,
+		1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
+		1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+		1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+		0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
+		0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
+		0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
+		0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
+	},
+	{ // 5
+		0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
+		0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
+		0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+		0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+		0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+		0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+		0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0,
+		0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
+		0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+		0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
+		0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+		1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
+		0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
+	},
+	{ // 6
+		0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0,
+		0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0,
+		0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0,
+		0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+		0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+		0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+		1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0,
+		1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0,
+		1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0,
+		1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1,
+		0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0,
+		0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0,
+		0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0,
+	},
+	{ // 7
+		1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+		1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+		1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0,
+		0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
+		0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+		0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
+		0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
+		0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+		0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
+		0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
+		0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
+		0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0,
+		0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
+		0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
+		0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0,
+		0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,
+		0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0,
+	},
+	{ // 8
+		0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0,
+		0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0,
+		0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1,
+		0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1,
+		0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1,
+		0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1,
+		0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0,
+		0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0,
+		0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0,
+		0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0,
+		0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0,
+		1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0,
+		0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
+		0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0,
+	},
+	{ // 9
+		0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0,
+		0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
+		0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0,
+		1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0,
+		1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1,
+		0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1,
+		0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
+		0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1,
+		0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+		0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
+		0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,
+		0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
+		0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0,
+		0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0,
+		0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+	},
+}

+ 282 - 0
src/github.com/dchest/captcha/image.go

@@ -0,0 +1,282 @@
+// Copyright 2011-2014 Dmitry Chestnykh. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package captcha
+
+import (
+	"bytes"
+	"image"
+	"image/color"
+	"image/png"
+	"io"
+	"math"
+)
+
+const (
+	// Standard width and height of a captcha image.
+	StdWidth  = 240
+	StdHeight = 80
+	// Maximum absolute skew factor of a single digit.
+	maxSkew = 0.3
+	// Number of background circles.
+	circleCount = 20
+)
+
+type Image struct {
+	*image.Paletted
+	numWidth  int
+	numHeight int
+	dotSize   int
+	rng       siprng
+}
+
+// NewImage returns a new captcha image of the given width and height with the
+// given digits, where each digit must be in range 0-9.
+func NewImage(id string, digits []byte, width, height int) *Image {
+	m := new(Image)
+
+	// Initialize PRNG.
+	m.rng.Seed(deriveSeed(imageSeedPurpose, id, digits))
+
+	m.Paletted = image.NewPaletted(image.Rect(0, 0, width, height), m.getRandomPalette())
+	m.calculateSizes(width, height, len(digits))
+	// Randomly position captcha inside the image.
+	maxx := width - (m.numWidth+m.dotSize)*len(digits) - m.dotSize
+	maxy := height - m.numHeight - m.dotSize*2
+	var border int
+	if width > height {
+		border = height / 5
+	} else {
+		border = width / 5
+	}
+	x := m.rng.Int(border, maxx-border)
+	y := m.rng.Int(border, maxy-border)
+	m.numWidth = m.numWidth + 4 //补值
+	// Draw digits.
+	for _, n := range digits {
+		m.drawDigit(font[n], x, y)
+		x += m.numWidth + m.dotSize
+	}
+	// Draw strike-through line.
+
+	m.strikeThrough()
+
+	// Apply wave distortion.
+	m.distort(m.rng.Float(5, 10), m.rng.Float(100, 200))
+	// Fill image with random circles.
+	m.fillWithCircles(circleCount, m.dotSize)
+	return m
+}
+
+func (m *Image) getRandomPalette() color.Palette {
+	p := make([]color.Color, circleCount+2)
+	// Transparent color.
+	p[0] = color.RGBA{0xFF, 0xFF, 0xFF, 0x00}
+	// Primary color.
+	prim := color.RGBA{
+		uint8(m.rng.Intn(129)),
+		uint8(m.rng.Intn(129)),
+		uint8(m.rng.Intn(129)),
+		0xFF,
+	}
+	p[1] = prim
+	// Circle colors.
+	for i := 2; i <= circleCount; i++ {
+		p[i] = m.randomBrightness(prim, 255)
+	}
+	tmp := 90 + m.rng.Intn(30)
+	p[circleCount+1] = color.RGBA{
+		uint8(int(prim.R) + tmp),
+		uint8(int(prim.G) + tmp),
+		uint8(int(prim.B) + tmp),
+		uint8(prim.A),
+	}
+	return p
+}
+
+// encodedPNG encodes an image to PNG and returns
+// the result as a byte slice.
+func (m *Image) encodedPNG() []byte {
+	var buf bytes.Buffer
+	if err := png.Encode(&buf, m.Paletted); err != nil {
+		panic(err.Error())
+	}
+	return buf.Bytes()
+}
+
+// WriteTo writes captcha image in PNG format into the given writer.
+func (m *Image) WriteTo(w io.Writer) (int64, error) {
+	n, err := w.Write(m.encodedPNG())
+	return int64(n), err
+}
+
+func (m *Image) calculateSizes(width, height, ncount int) {
+	// Goal: fit all digits inside the image.
+	var border int
+	if width > height {
+		border = height / 4
+	} else {
+		border = width / 4
+	}
+	// Convert everything to floats for calculations.
+	w := float64(width - border*2)
+	h := float64(height - border*2)
+	// fw takes into account 1-dot spacing between digits.
+	fw := float64(fontWidth + 1)
+	fh := float64(fontHeight)
+	nc := float64(ncount)
+	// Calculate the width of a single digit taking into account only the
+	// width of the image.
+	nw := w / nc
+	// Calculate the height of a digit from this width.
+	nh := nw * fh / fw
+	// Digit too high?
+	if nh > h {
+		// Fit digits based on height.
+		nh = h
+		nw = fw / fh * nh
+	}
+	// Calculate dot size.
+	m.dotSize = int(nh / fh)
+	if m.dotSize < 1 {
+		m.dotSize = 1
+	}
+	// Save everything, making the actual width smaller by 1 dot to account
+	// for spacing between digits.
+	m.numWidth = int(nw) - m.dotSize
+	m.numHeight = int(nh)
+}
+
+func (m *Image) drawHorizLine(fromX, toX, y int, colorIdx uint8) {
+	for x := fromX; x <= toX; x++ {
+		m.SetColorIndex(x, y, colorIdx)
+	}
+}
+
+func (m *Image) drawCircle(x, y, radius int, colorIdx uint8) {
+	f := 1 - radius
+	dfx := 1
+	dfy := -2 * radius
+	xo := 0
+	yo := radius
+
+	m.SetColorIndex(x, y+radius, colorIdx)
+	m.SetColorIndex(x, y-radius, colorIdx)
+	m.drawHorizLine(x-radius, x+radius, y, colorIdx)
+
+	for xo < yo {
+		if f >= 0 {
+			yo--
+			dfy += 2
+			f += dfy
+		}
+		xo++
+		dfx += 2
+		f += dfx
+		m.drawHorizLine(x-xo, x+xo, y+yo, colorIdx)
+		m.drawHorizLine(x-xo, x+xo, y-yo, colorIdx)
+		m.drawHorizLine(x-yo, x+yo, y+xo, colorIdx)
+		m.drawHorizLine(x-yo, x+yo, y-xo, colorIdx)
+	}
+}
+
+func (m *Image) fillWithCircles(n, maxradius int) {
+	maxx := m.Bounds().Max.X
+	maxy := m.Bounds().Max.Y
+	for i := 0; i < n; i++ {
+		colorIdx := uint8(m.rng.Int(1, circleCount-1))
+		r := m.rng.Int(1, maxradius)
+		m.drawCircle(m.rng.Int(r, maxx-r), m.rng.Int(r, maxy-r), r, colorIdx)
+	}
+}
+
+func (m *Image) strikeThrough() {
+	maxx := m.Bounds().Max.X
+	maxy := m.Bounds().Max.Y
+	y := m.rng.Int(maxy/3, maxy-maxy/3)
+	amplitude := m.rng.Float(5, 20)
+	period := m.rng.Float(80, 180)
+	dx := 2.0 * math.Pi / period
+	//使用颜色
+	for x := 0; x < maxx; x++ {
+		xo := amplitude * math.Cos(float64(y)*dx)
+		yo := amplitude * math.Sin(float64(x)*dx)
+		for yn := 0; yn < m.dotSize; yn++ {
+			r := m.rng.Int(0, m.dotSize)
+			m.drawCircle(x+int(xo), y+int(yo)+(yn*m.dotSize), r/2, circleCount+1)
+		}
+	}
+}
+
+func (m *Image) drawDigit(digit []byte, x, y int) {
+	skf := m.rng.Float(-maxSkew, maxSkew)
+	xs := float64(x)
+	r := m.dotSize / 2
+	y += m.rng.Int(-r, r)
+	for yo := 0; yo < fontHeight; yo++ {
+		for xo := 0; xo < fontWidth; xo++ {
+			if digit[yo*fontWidth+xo] != blackChar {
+				continue
+			}
+			m.drawCircle(x+xo*m.dotSize, y+yo*m.dotSize, r, 1)
+		}
+		xs += skf
+		x = int(xs)
+	}
+}
+
+func (m *Image) distort(amplude float64, period float64) {
+	w := m.Bounds().Max.X
+	h := m.Bounds().Max.Y
+
+	oldm := m.Paletted
+	newm := image.NewPaletted(image.Rect(0, 0, w, h), oldm.Palette)
+
+	dx := 2.0 * math.Pi / period
+	for x := 0; x < w; x++ {
+		for y := 0; y < h; y++ {
+			xo := amplude * math.Sin(float64(y)*dx)
+			yo := amplude * math.Cos(float64(x)*dx)
+			newm.SetColorIndex(x, y, oldm.ColorIndexAt(x+int(xo), y+int(yo)))
+		}
+	}
+	m.Paletted = newm
+}
+
+func (m *Image) randomBrightness(c color.RGBA, max uint8) color.RGBA {
+	minc := min3(c.R, c.G, c.B)
+	maxc := max3(c.R, c.G, c.B)
+	if maxc > max {
+		return c
+	}
+	n := m.rng.Intn(int(max-maxc)) - int(minc)
+	return color.RGBA{
+		uint8(int(c.R) + n),
+		uint8(int(c.G) + n),
+		uint8(int(c.B) + n),
+		uint8(c.A),
+	}
+}
+
+func min3(x, y, z uint8) (m uint8) {
+	m = x
+	if y < m {
+		m = y
+	}
+	if z < m {
+		m = z
+	}
+	return
+}
+
+func max3(x, y, z uint8) (m uint8) {
+	m = x
+	if y > m {
+		m = y
+	}
+	if z > m {
+		m = z
+	}
+	return
+}

+ 40 - 0
src/github.com/dchest/captcha/image_test.go

@@ -0,0 +1,40 @@
+// Copyright 2011 Dmitry Chestnykh. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package captcha
+
+import "testing"
+
+type byteCounter struct {
+	n int64
+}
+
+func (bc *byteCounter) Write(b []byte) (int, error) {
+	bc.n += int64(len(b))
+	return len(b), nil
+}
+
+func BenchmarkNewImage(b *testing.B) {
+	b.StopTimer()
+	d := RandomDigits(DefaultLen)
+	id := randomId()
+	b.StartTimer()
+	for i := 0; i < b.N; i++ {
+		NewImage(id, d, StdWidth, StdHeight)
+	}
+}
+
+func BenchmarkImageWriteTo(b *testing.B) {
+	b.StopTimer()
+	d := RandomDigits(DefaultLen)
+	id := randomId()
+	b.StartTimer()
+	counter := &byteCounter{}
+	for i := 0; i < b.N; i++ {
+		img := NewImage(id, d, StdWidth, StdHeight)
+		img.WriteTo(counter)
+		b.SetBytes(counter.n)
+		counter.n = 0
+	}
+}

+ 101 - 0
src/github.com/dchest/captcha/random.go

@@ -0,0 +1,101 @@
+// Copyright 2011-2014 Dmitry Chestnykh. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package captcha
+
+import (
+	"crypto/hmac"
+	"crypto/rand"
+	"crypto/sha256"
+	"io"
+)
+
+// idLen is a length of captcha id string.
+// (20 bytes of 62-letter alphabet give ~119 bits.)
+const idLen = 20
+
+// idChars are characters allowed in captcha id.
+var idChars = []byte("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")
+
+// rngKey is a secret key used to deterministically derive seeds for
+// PRNGs used in image and audio. Generated once during initialization.
+var rngKey [32]byte
+
+func init() {
+	if _, err := io.ReadFull(rand.Reader, rngKey[:]); err != nil {
+		panic("captcha: error reading random source: " + err.Error())
+	}
+}
+
+// Purposes for seed derivation. The goal is to make deterministic PRNG produce
+// different outputs for images and audio by using different derived seeds.
+const (
+	imageSeedPurpose = 0x01
+	audioSeedPurpose = 0x02
+)
+
+// deriveSeed returns a 16-byte PRNG seed from rngKey, purpose, id and digits.
+// Same purpose, id and digits will result in the same derived seed for this
+// instance of running application.
+//
+//   out = HMAC(rngKey, purpose || id || 0x00 || digits)  (cut to 16 bytes)
+//
+func deriveSeed(purpose byte, id string, digits []byte) (out [16]byte) {
+	var buf [sha256.Size]byte
+	h := hmac.New(sha256.New, rngKey[:])
+	h.Write([]byte{purpose})
+	io.WriteString(h, id)
+	h.Write([]byte{0})
+	h.Write(digits)
+	sum := h.Sum(buf[:0])
+	copy(out[:], sum)
+	return
+}
+
+// RandomDigits returns a byte slice of the given length containing
+// pseudorandom numbers in range 0-9. The slice can be used as a captcha
+// solution.
+func RandomDigits(length int) []byte {
+	return randomBytesMod(length, 10)
+}
+
+// randomBytes returns a byte slice of the given length read from CSPRNG.
+func randomBytes(length int) (b []byte) {
+	b = make([]byte, length)
+	if _, err := io.ReadFull(rand.Reader, b); err != nil {
+		panic("captcha: error reading random source: " + err.Error())
+	}
+	return
+}
+
+// randomBytesMod returns a byte slice of the given length, where each byte is
+// a random number modulo mod.
+func randomBytesMod(length int, mod byte) (b []byte) {
+	b = make([]byte, length)
+	maxrb := byte(256 - (256 % int(mod)))
+	i := 0
+	for {
+		r := randomBytes(length + (length / 4))
+		for _, c := range r {
+			if c > maxrb {
+				// Skip this number to avoid modulo bias.
+				continue
+			}
+			b[i] = c % mod
+			i++
+			if i == length {
+				return
+			}
+		}
+	}
+}
+
+// randomId returns a new random id string.
+func randomId() string {
+	b := randomBytesMod(idLen, byte(len(idChars)))
+	for i, c := range b {
+		b[i] = idChars[c]
+	}
+	return string(b)
+}

+ 94 - 0
src/github.com/dchest/captcha/server.go

@@ -0,0 +1,94 @@
+// Copyright 2011 Dmitry Chestnykh. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package captcha
+
+import (
+	"net/http"
+	"path"
+	"strconv"
+	"strings"
+)
+
+type captchaHandler struct {
+	imgWidth  int
+	imgHeight int
+}
+
+// Server returns a handler that serves HTTP requests with image or
+// audio representations of captchas. Image dimensions are accepted as
+// arguments. The server decides which captcha to serve based on the last URL
+// path component: file name part must contain a captcha id, file extension —
+// its format (PNG or WAV).
+//
+// For example, for file name "LBm5vMjHDtdUfaWYXiQX.png" it serves an image captcha
+// with id "LBm5vMjHDtdUfaWYXiQX", and for "LBm5vMjHDtdUfaWYXiQX.wav" it serves the
+// same captcha in audio format.
+//
+// To serve a captcha as a downloadable file, the URL must be constructed in
+// such a way as if the file to serve is in the "download" subdirectory:
+// "/download/LBm5vMjHDtdUfaWYXiQX.wav".
+//
+// To reload captcha (get a different solution for the same captcha id), append
+// "?reload=x" to URL, where x may be anything (for example, current time or a
+// random number to make browsers refetch an image instead of loading it from
+// cache).
+//
+// By default, the Server serves audio in English language. To serve audio
+// captcha in one of the other supported languages, append "lang" value, for
+// example, "?lang=ru".
+func Server(imgWidth, imgHeight int) http.Handler {
+	return &captchaHandler{imgWidth, imgHeight}
+}
+
+func (h *captchaHandler) serve(w http.ResponseWriter, id, ext string, lang string, download bool) error {
+	w.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
+	w.Header().Set("Pragma", "no-cache")
+	w.Header().Set("Expires", "0")
+	if download {
+		w.Header().Set("Content-Type", "application/octet-stream")
+	}
+	switch ext {
+	case ".png":
+		if !download {
+			w.Header().Set("Content-Type", "image/png")
+		}
+		return WriteImage(w, id, h.imgWidth, h.imgHeight)
+	case ".wav":
+		//XXX(dchest) Workaround for Chrome: it wants content-length,
+		//or else will start playing NOT from the beginning.
+		//Filed issue: http://code.google.com/p/chromium/issues/detail?id=80565
+		d := globalStore.Get(id, false)
+		if d == nil {
+			return ErrNotFound
+		}
+		a := NewAudio(id, d, lang)
+		if !download {
+			w.Header().Set("Content-Type", "audio/x-wav")
+		}
+		w.Header().Set("Content-Length", strconv.Itoa(a.EncodedLen()))
+		_, err := a.WriteTo(w)
+		return err
+	}
+	return ErrNotFound
+}
+
+func (h *captchaHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
+	dir, file := path.Split(r.URL.Path)
+	ext := path.Ext(file)
+	id := file[:len(file)-len(ext)]
+	if ext == "" || id == "" {
+		http.NotFound(w, r)
+		return
+	}
+	if r.FormValue("reload") != "" {
+		Reload(id)
+	}
+	lang := strings.ToLower(r.FormValue("lang"))
+	download := path.Base(dir) == "download"
+	if h.serve(w, id, ext, lang, download) == ErrNotFound {
+		http.NotFound(w, r)
+	}
+	// Ignore other errors.
+}

+ 278 - 0
src/github.com/dchest/captcha/siprng.go

@@ -0,0 +1,278 @@
+// Copyright 2014 Dmitry Chestnykh. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package captcha
+
+import "encoding/binary"
+
+// siprng is PRNG based on SipHash-2-4.
+// (Note: it's not safe to use a single siprng from multiple goroutines.)
+type siprng struct {
+	k0, k1, ctr uint64
+}
+
+// siphash implements SipHash-2-4, accepting a uint64 as a message.
+func siphash(k0, k1, m uint64) uint64 {
+	// Initialization.
+	v0 := k0 ^ 0x736f6d6570736575
+	v1 := k1 ^ 0x646f72616e646f6d
+	v2 := k0 ^ 0x6c7967656e657261
+	v3 := k1 ^ 0x7465646279746573
+	t := uint64(8) << 56
+
+	// Compression.
+	v3 ^= m
+
+	// Round 1.
+	v0 += v1
+	v1 = v1<<13 | v1>>(64-13)
+	v1 ^= v0
+	v0 = v0<<32 | v0>>(64-32)
+
+	v2 += v3
+	v3 = v3<<16 | v3>>(64-16)
+	v3 ^= v2
+
+	v0 += v3
+	v3 = v3<<21 | v3>>(64-21)
+	v3 ^= v0
+
+	v2 += v1
+	v1 = v1<<17 | v1>>(64-17)
+	v1 ^= v2
+	v2 = v2<<32 | v2>>(64-32)
+
+	// Round 2.
+	v0 += v1
+	v1 = v1<<13 | v1>>(64-13)
+	v1 ^= v0
+	v0 = v0<<32 | v0>>(64-32)
+
+	v2 += v3
+	v3 = v3<<16 | v3>>(64-16)
+	v3 ^= v2
+
+	v0 += v3
+	v3 = v3<<21 | v3>>(64-21)
+	v3 ^= v0
+
+	v2 += v1
+	v1 = v1<<17 | v1>>(64-17)
+	v1 ^= v2
+	v2 = v2<<32 | v2>>(64-32)
+
+	v0 ^= m
+
+	// Compress last block.
+	v3 ^= t
+
+	// Round 1.
+	v0 += v1
+	v1 = v1<<13 | v1>>(64-13)
+	v1 ^= v0
+	v0 = v0<<32 | v0>>(64-32)
+
+	v2 += v3
+	v3 = v3<<16 | v3>>(64-16)
+	v3 ^= v2
+
+	v0 += v3
+	v3 = v3<<21 | v3>>(64-21)
+	v3 ^= v0
+
+	v2 += v1
+	v1 = v1<<17 | v1>>(64-17)
+	v1 ^= v2
+	v2 = v2<<32 | v2>>(64-32)
+
+	// Round 2.
+	v0 += v1
+	v1 = v1<<13 | v1>>(64-13)
+	v1 ^= v0
+	v0 = v0<<32 | v0>>(64-32)
+
+	v2 += v3
+	v3 = v3<<16 | v3>>(64-16)
+	v3 ^= v2
+
+	v0 += v3
+	v3 = v3<<21 | v3>>(64-21)
+	v3 ^= v0
+
+	v2 += v1
+	v1 = v1<<17 | v1>>(64-17)
+	v1 ^= v2
+	v2 = v2<<32 | v2>>(64-32)
+
+	v0 ^= t
+
+	// Finalization.
+	v2 ^= 0xff
+
+	// Round 1.
+	v0 += v1
+	v1 = v1<<13 | v1>>(64-13)
+	v1 ^= v0
+	v0 = v0<<32 | v0>>(64-32)
+
+	v2 += v3
+	v3 = v3<<16 | v3>>(64-16)
+	v3 ^= v2
+
+	v0 += v3
+	v3 = v3<<21 | v3>>(64-21)
+	v3 ^= v0
+
+	v2 += v1
+	v1 = v1<<17 | v1>>(64-17)
+	v1 ^= v2
+	v2 = v2<<32 | v2>>(64-32)
+
+	// Round 2.
+	v0 += v1
+	v1 = v1<<13 | v1>>(64-13)
+	v1 ^= v0
+	v0 = v0<<32 | v0>>(64-32)
+
+	v2 += v3
+	v3 = v3<<16 | v3>>(64-16)
+	v3 ^= v2
+
+	v0 += v3
+	v3 = v3<<21 | v3>>(64-21)
+	v3 ^= v0
+
+	v2 += v1
+	v1 = v1<<17 | v1>>(64-17)
+	v1 ^= v2
+	v2 = v2<<32 | v2>>(64-32)
+
+	// Round 3.
+	v0 += v1
+	v1 = v1<<13 | v1>>(64-13)
+	v1 ^= v0
+	v0 = v0<<32 | v0>>(64-32)
+
+	v2 += v3
+	v3 = v3<<16 | v3>>(64-16)
+	v3 ^= v2
+
+	v0 += v3
+	v3 = v3<<21 | v3>>(64-21)
+	v3 ^= v0
+
+	v2 += v1
+	v1 = v1<<17 | v1>>(64-17)
+	v1 ^= v2
+	v2 = v2<<32 | v2>>(64-32)
+
+	// Round 4.
+	v0 += v1
+	v1 = v1<<13 | v1>>(64-13)
+	v1 ^= v0
+	v0 = v0<<32 | v0>>(64-32)
+
+	v2 += v3
+	v3 = v3<<16 | v3>>(64-16)
+	v3 ^= v2
+
+	v0 += v3
+	v3 = v3<<21 | v3>>(64-21)
+	v3 ^= v0
+
+	v2 += v1
+	v1 = v1<<17 | v1>>(64-17)
+	v1 ^= v2
+	v2 = v2<<32 | v2>>(64-32)
+
+	return v0 ^ v1 ^ v2 ^ v3
+}
+
+// SetSeed sets a new secret seed for PRNG.
+func (p *siprng) Seed(k [16]byte) {
+	p.k0 = binary.LittleEndian.Uint64(k[0:8])
+	p.k1 = binary.LittleEndian.Uint64(k[8:16])
+	p.ctr = 1
+}
+
+// Uint64 returns a new pseudorandom uint64.
+func (p *siprng) Uint64() uint64 {
+	v := siphash(p.k0, p.k1, p.ctr)
+	p.ctr++
+	return v
+}
+
+func (p *siprng) Bytes(n int) []byte {
+	// Since we don't have a buffer for generated bytes in siprng state,
+	// we just generate enough 8-byte blocks and then cut the result to the
+	// required length. Doing it this way, we lose generated bytes, and we
+	// don't get the strictly sequential deterministic output from PRNG:
+	// calling Uint64() and then Bytes(3) produces different output than
+	// when calling them in the reverse order, but for our applications
+	// this is OK.
+	numBlocks := (n + 8 - 1) / 8
+	b := make([]byte, numBlocks*8)
+	for i := 0; i < len(b); i += 8 {
+		binary.LittleEndian.PutUint64(b[i:], p.Uint64())
+	}
+	return b[:n]
+}
+
+func (p *siprng) Int63() int64 {
+	return int64(p.Uint64() & 0x7fffffffffffffff)
+}
+
+func (p *siprng) Uint32() uint32 {
+	return uint32(p.Uint64())
+}
+
+func (p *siprng) Int31() int32 {
+	return int32(p.Uint32() & 0x7fffffff)
+}
+
+func (p *siprng) Intn(n int) int {
+	if n <= 0 {
+		panic("invalid argument to Intn")
+	}
+	if n <= 1<<31-1 {
+		return int(p.Int31n(int32(n)))
+	}
+	return int(p.Int63n(int64(n)))
+}
+
+func (p *siprng) Int63n(n int64) int64 {
+	if n <= 0 {
+		panic("invalid argument to Int63n")
+	}
+	max := int64((1 << 63) - 1 - (1<<63)%uint64(n))
+	v := p.Int63()
+	for v > max {
+		v = p.Int63()
+	}
+	return v % n
+}
+
+func (p *siprng) Int31n(n int32) int32 {
+	if n <= 0 {
+		panic("invalid argument to Int31n")
+	}
+	max := int32((1 << 31) - 1 - (1<<31)%uint32(n))
+	v := p.Int31()
+	for v > max {
+		v = p.Int31()
+	}
+	return v % n
+}
+
+func (p *siprng) Float64() float64 { return float64(p.Int63()) / (1 << 63) }
+
+// Int returns a pseudorandom int in range [from, to].
+func (p *siprng) Int(from, to int) int {
+	return p.Intn(to+1-from) + from
+}
+
+// Float returns a pseudorandom float64 in range [from, to].
+func (p *siprng) Float(from, to float64) float64 {
+	return (to-from)*p.Float64() + from
+}

+ 54 - 0
src/github.com/dchest/captcha/siprng_test.go

@@ -0,0 +1,54 @@
+package captcha
+
+import (
+	"bytes"
+	"testing"
+)
+
+func TestSiphash(t *testing.T) {
+	good := uint64(0xe849e8bb6ffe2567)
+	cur := siphash(0, 0, 0)
+	if cur != good {
+		t.Fatalf("siphash: expected %x, got %x", good, cur)
+	}
+}
+
+func TestSiprng(t *testing.T) {
+	m := make(map[uint64]interface{})
+	var yes interface{}
+	r := siprng{}
+	r.Seed([16]byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15})
+	for i := 0; i < 100000; i++ {
+		v := r.Uint64()
+		if _, ok := m[v]; ok {
+			t.Errorf("siphash: collision on %d: %x", i, v)
+		}
+		m[v] = yes
+	}
+}
+
+func TestSiprngBytes(t *testing.T) {
+	r := siprng{}
+	r.Seed([16]byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15})
+	x := r.Bytes(32)
+	if len(x) != 32 {
+		t.Fatalf("siphash: wrong length: expected 32, got %d", len(x))
+	}
+	y := r.Bytes(32)
+	if bytes.Equal(x, y) {
+		t.Fatalf("siphash: stream repeats: %x = %x", x, y)
+	}
+	r.Seed([16]byte{})
+	z := r.Bytes(32)
+	if bytes.Equal(z, x) {
+		t.Fatalf("siphash: outputs under different keys repeat: %x = %x", z, x)
+	}
+}
+
+func BenchmarkSiprng(b *testing.B) {
+	b.SetBytes(8)
+	p := &siprng{}
+	for i := 0; i < b.N; i++ {
+		p.Uint64()
+	}
+}

+ 7390 - 0
src/github.com/dchest/captcha/sounds.go

@@ -0,0 +1,7390 @@
+package captcha
+
+// This file has been generated from .wav files using generate.go.
+
+var waveHeader = []byte{
+	0x52, 0x49, 0x46, 0x46, 0x00, 0x00, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45,
+	0x66, 0x6d, 0x74, 0x20, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
+	0x40, 0x1f, 0x00, 0x00, 0x40, 0x1f, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00,
+	0x64, 0x61, 0x74, 0x61,
+}
+
+// Byte slices contain raw 8 kHz unsigned 8-bit PCM data (without wav header).
+
+var digitSounds = map[string][][]byte{
+	"en": [][]byte{
+		{ // 0
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7e, 0x7d,
+			0x7e, 0x7c, 0x7e, 0x7e, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x82, 0x81,
+			0x83, 0x82, 0x84, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8a,
+			0x8c, 0x8a, 0x8b, 0x8b, 0x8a, 0x8a, 0x88, 0x88, 0x86, 0x84, 0x82,
+			0x80, 0x7e, 0x7c, 0x7c, 0x7b, 0x7c, 0x79, 0x77, 0x78, 0x76, 0x75,
+			0x73, 0x75, 0x75, 0x75, 0x73, 0x72, 0x71, 0x73, 0x76, 0x70, 0x76,
+			0x71, 0x77, 0x75, 0x74, 0x78, 0x73, 0x79, 0x76, 0x76, 0x75, 0x75,
+			0x75, 0x79, 0x7f, 0x80, 0x81, 0x83, 0x88, 0x8d, 0x90, 0x91, 0x91,
+			0x94, 0x98, 0x97, 0x97, 0x95, 0x94, 0x93, 0x92, 0x8d, 0x8a, 0x86,
+			0x84, 0x81, 0x81, 0x7f, 0x7f, 0x80, 0x7f, 0x81, 0x81, 0x85, 0x81,
+			0x85, 0x85, 0x86, 0x88, 0x84, 0x83, 0x7d, 0x79, 0x77, 0x77, 0x77,
+			0x75, 0x72, 0x75, 0x75, 0x75, 0x72, 0x73, 0x72, 0x76, 0x76, 0x74,
+			0x74, 0x75, 0x77, 0x78, 0x79, 0x76, 0x79, 0x78, 0x7c, 0x7c, 0x7c,
+			0x7d, 0x7e, 0x7e, 0x7f, 0x7b, 0x7e, 0x7c, 0x7e, 0x7f, 0x80, 0x80,
+			0x7f, 0x85, 0x84, 0x89, 0x85, 0x89, 0x8c, 0x8e, 0x8e, 0x8d, 0x90,
+			0x90, 0x91, 0x8c, 0x8d, 0x89, 0x8c, 0x8a, 0x88, 0x89, 0x84, 0x87,
+			0x85, 0x86, 0x83, 0x84, 0x82, 0x7f, 0x85, 0x81, 0x81, 0x7e, 0x80,
+			0x7d, 0x7e, 0x7e, 0x79, 0x7c, 0x7a, 0x7a, 0x79, 0x79, 0x77, 0x78,
+			0x79, 0x77, 0x76, 0x79, 0x78, 0x79, 0x77, 0x79, 0x79, 0x79, 0x78,
+			0x78, 0x7a, 0x78, 0x7b, 0x79, 0x7a, 0x79, 0x7b, 0x7b, 0x79, 0x7c,
+			0x79, 0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x7e, 0x7d, 0x7f, 0x7c, 0x7f,
+			0x7c, 0x7f, 0x7f, 0x82, 0x81, 0x82, 0x84, 0x82, 0x89, 0x82, 0x8a,
+			0x83, 0x8b, 0x88, 0x86, 0x8b, 0x85, 0x8d, 0x86, 0x89, 0x84, 0x89,
+			0x88, 0x84, 0x84, 0x83, 0x85, 0x83, 0x82, 0x80, 0x84, 0x81, 0x83,
+			0x7f, 0x80, 0x82, 0x7e, 0x81, 0x7c, 0x7f, 0x7d, 0x7c, 0x7c, 0x7b,
+			0x7d, 0x7a, 0x7d, 0x79, 0x7c, 0x7b, 0x7a, 0x7d, 0x79, 0x7d, 0x7d,
+			0x7b, 0x7d, 0x79, 0x7e, 0x7d, 0x79, 0x7d, 0x7a, 0x7d, 0x7f, 0x7b,
+			0x7d, 0x7c, 0x7d, 0x7d, 0x7a, 0x7e, 0x7c, 0x7e, 0x7e, 0x7c, 0x7e,
+			0x7f, 0x81, 0x7f, 0x7d, 0x81, 0x80, 0x82, 0x80, 0x81, 0x84, 0x85,
+			0x87, 0x84, 0x85, 0x86, 0x8a, 0x85, 0x88, 0x85, 0x8b, 0x87, 0x88,
+			0x87, 0x84, 0x89, 0x84, 0x86, 0x81, 0x84, 0x84, 0x82, 0x83, 0x81,
+			0x81, 0x83, 0x81, 0x80, 0x7e, 0x82, 0x7c, 0x80, 0x7e, 0x7b, 0x82,
+			0x78, 0x7f, 0x7c, 0x79, 0x7e, 0x77, 0x7c, 0x7e, 0x7a, 0x7b, 0x7a,
+			0x7c, 0x7d, 0x77, 0x7b, 0x7a, 0x7e, 0x7e, 0x7a, 0x7e, 0x7a, 0x7d,
+			0x7a, 0x7b, 0x7c, 0x7b, 0x7e, 0x7b, 0x7a, 0x7f, 0x7c, 0x7c, 0x7d,
+			0x7b, 0x7f, 0x7e, 0x7f, 0x7c, 0x80, 0x80, 0x80, 0x80, 0x81, 0x82,
+			0x82, 0x85, 0x82, 0x88, 0x83, 0x88, 0x84, 0x88, 0x89, 0x85, 0x88,
+			0x85, 0x8a, 0x85, 0x86, 0x85, 0x86, 0x86, 0x83, 0x81, 0x84, 0x85,
+			0x81, 0x7f, 0x80, 0x81, 0x81, 0x7e, 0x7c, 0x7e, 0x85, 0x7c, 0x7b,
+			0x7d, 0x81, 0x7f, 0x77, 0x7d, 0x77, 0x85, 0x79, 0x78, 0x7e, 0x78,
+			0x82, 0x72, 0x7e, 0x7c, 0x7b, 0x80, 0x76, 0x7f, 0x7e, 0x7a, 0x76,
+			0x7d, 0x7c, 0x76, 0x7b, 0x75, 0x7b, 0x7a, 0x77, 0x77, 0x77, 0x7e,
+			0x7c, 0x7a, 0x7a, 0x83, 0x87, 0x7d, 0x86, 0x84, 0x8c, 0x8a, 0x87,
+			0x89, 0x8b, 0x90, 0x87, 0x88, 0x86, 0x8f, 0x89, 0x83, 0x89, 0x86,
+			0x89, 0x89, 0x7c, 0x87, 0x88, 0x80, 0x81, 0x7f, 0x87, 0x82, 0x81,
+			0x7d, 0x85, 0x84, 0x7a, 0x7e, 0x7f, 0x7b, 0x83, 0x78, 0x79, 0x82,
+			0x78, 0x7c, 0x76, 0x7b, 0x78, 0x7b, 0x78, 0x72, 0x7e, 0x76, 0x6f,
+			0x78, 0x74, 0x6a, 0x77, 0x6b, 0x6a, 0x6c, 0x6d, 0x64, 0x6a, 0x71,
+			0x6b, 0x77, 0x79, 0x7d, 0x84, 0x8d, 0x88, 0x90, 0x9a, 0x96, 0x98,
+			0x9c, 0x9d, 0x9a, 0x9a, 0x95, 0x94, 0x93, 0x8b, 0x87, 0x87, 0x83,
+			0x82, 0x84, 0x7f, 0x82, 0x84, 0x84, 0x82, 0x89, 0x8b, 0x86, 0x8e,
+			0x8b, 0x87, 0x86, 0x85, 0x80, 0x7b, 0x7e, 0x78, 0x76, 0x71, 0x6e,
+			0x6d, 0x64, 0x69, 0x66, 0x66, 0x61, 0x62, 0x61, 0x59, 0x62, 0x54,
+			0x5e, 0x62, 0x5d, 0x6f, 0x71, 0x7e, 0x82, 0x8d, 0x94, 0x9d, 0xa5,
+			0xa1, 0xaf, 0xad, 0xad, 0xa8, 0xa8, 0xa3, 0x9b, 0x96, 0x89, 0x88,
+			0x81, 0x78, 0x75, 0x75, 0x75, 0x74, 0x77, 0x7c, 0x83, 0x88, 0x90,
+			0x95, 0x9a, 0xa0, 0x9d, 0x9f, 0x9c, 0x93, 0x8b, 0x83, 0x7c, 0x74,
+			0x6c, 0x65, 0x60, 0x5d, 0x59, 0x57, 0x56, 0x56, 0x55, 0x55, 0x50,
+			0x51, 0x4f, 0x51, 0x57, 0x5e, 0x7a, 0x81, 0x82, 0x93, 0xa3, 0xaa,
+			0xa6, 0xae, 0xb7, 0xb5, 0xae, 0xa4, 0xa5, 0x9f, 0x8e, 0x84, 0x80,
+			0x7d, 0x72, 0x6c, 0x70, 0x73, 0x72, 0x75, 0x7e, 0x88, 0x8f, 0x96,
+			0x9e, 0xa8, 0xad, 0xa7, 0xa5, 0xa1, 0x97, 0x8c, 0x82, 0x7b, 0x72,
+			0x6b, 0x65, 0x61, 0x5d, 0x58, 0x59, 0x59, 0x55, 0x54, 0x54, 0x4e,
+			0x4b, 0x4a, 0x4b, 0x52, 0x5d, 0x77, 0x87, 0x84, 0x91, 0xaa, 0xb0,
+			0xa6, 0xae, 0xb8, 0xb2, 0xaa, 0xa2, 0x9b, 0x96, 0x8b, 0x7d, 0x77,
+			0x79, 0x70, 0x69, 0x70, 0x76, 0x76, 0x7b, 0x83, 0x8f, 0x97, 0x9d,
+			0xa5, 0xa9, 0xaf, 0xa9, 0xa0, 0x9e, 0x94, 0x85, 0x7b, 0x76, 0x6e,
+			0x66, 0x64, 0x61, 0x60, 0x5f, 0x5e, 0x5e, 0x5f, 0x5c, 0x58, 0x57,
+			0x50, 0x4a, 0x47, 0x4e, 0x53, 0x64, 0x86, 0x7f, 0x81, 0xa4, 0xb1,
+			0xa8, 0xa8, 0xb8, 0xb7, 0xaa, 0xa4, 0x9d, 0x97, 0x8c, 0x7e, 0x74,
+			0x73, 0x73, 0x69, 0x69, 0x74, 0x7a, 0x7d, 0x84, 0x90, 0x9a, 0xa0,
+			0xa6, 0xa8, 0xab, 0xab, 0x9e, 0x96, 0x90, 0x85, 0x78, 0x70, 0x6f,
+			0x69, 0x65, 0x65, 0x67, 0x67, 0x66, 0x67, 0x66, 0x66, 0x61, 0x5b,
+			0x56, 0x4d, 0x48, 0x47, 0x4e, 0x55, 0x6a, 0x86, 0x82, 0x8a, 0xa6,
+			0xb4, 0xad, 0xa9, 0xb5, 0xb5, 0xa9, 0x9d, 0x93, 0x8b, 0x7f, 0x74,
+			0x6a, 0x66, 0x6b, 0x6d, 0x6d, 0x74, 0x82, 0x8d, 0x91, 0x99, 0xa4,
+			0xab, 0xab, 0xaa, 0xa7, 0xa0, 0x97, 0x89, 0x7c, 0x75, 0x6e, 0x65,
+			0x62, 0x68, 0x69, 0x68, 0x6d, 0x72, 0x73, 0x71, 0x73, 0x71, 0x6e,
+			0x68, 0x5f, 0x55, 0x4b, 0x47, 0x45, 0x4a, 0x52, 0x64, 0x80, 0x87,
+			0x8a, 0xa0, 0xb3, 0xb4, 0xaa, 0xae, 0xb3, 0xa9, 0x9a, 0x8c, 0x83,
+			0x79, 0x71, 0x6a, 0x63, 0x68, 0x72, 0x76, 0x7a, 0x86, 0x95, 0x9b,
+			0x9d, 0xa2, 0xa6, 0xa5, 0xa0, 0x99, 0x8e, 0x86, 0x7e, 0x73, 0x6c,
+			0x6a, 0x6d, 0x6d, 0x71, 0x78, 0x7d, 0x84, 0x84, 0x81, 0x7f, 0x7a,
+			0x73, 0x68, 0x5e, 0x55, 0x4b, 0x46, 0x42, 0x40, 0x3f, 0x44, 0x4d,
+			0x62, 0x84, 0x98, 0xa0, 0xa9, 0xbc, 0xc3, 0xb7, 0xab, 0xa3, 0x9b,
+			0x8e, 0x7b, 0x6b, 0x5f, 0x5d, 0x62, 0x63, 0x66, 0x6e, 0x7f, 0x91,
+			0x98, 0x99, 0xa0, 0xa8, 0xa8, 0xa2, 0x9a, 0x92, 0x8b, 0x84, 0x7a,
+			0x72, 0x6e, 0x6c, 0x71, 0x74, 0x75, 0x7a, 0x82, 0x89, 0x8b, 0x8b,
+			0x8b, 0x88, 0x83, 0x7b, 0x71, 0x6a, 0x63, 0x5c, 0x55, 0x51, 0x4f,
+			0x4e, 0x4e, 0x4d, 0x4b, 0x4f, 0x5e, 0x75, 0x93, 0xa7, 0xa7, 0xa7,
+			0xb1, 0xbb, 0xaf, 0x95, 0x87, 0x82, 0x7c, 0x73, 0x68, 0x62, 0x63,
+			0x6d, 0x7c, 0x83, 0x86, 0x8c, 0x97, 0xa1, 0xa1, 0x9a, 0x94, 0x91,
+			0x8e, 0x88, 0x7e, 0x76, 0x74, 0x75, 0x76, 0x76, 0x78, 0x7b, 0x82,
+			0x87, 0x8a, 0x8c, 0x8d, 0x8e, 0x8d, 0x89, 0x80, 0x77, 0x71, 0x6b,
+			0x65, 0x5e, 0x59, 0x58, 0x58, 0x57, 0x55, 0x55, 0x58, 0x57, 0x55,
+			0x53, 0x56, 0x66, 0x7c, 0x99, 0xab, 0xa9, 0xa2, 0xa5, 0xac, 0xa7,
+			0x94, 0x84, 0x7d, 0x79, 0x77, 0x75, 0x6e, 0x69, 0x6e, 0x7c, 0x8a,
+			0x8e, 0x8e, 0x90, 0x98, 0x9f, 0x9d, 0x93, 0x89, 0x85, 0x86, 0x83,
+			0x7d, 0x76, 0x74, 0x77, 0x7c, 0x7f, 0x7e, 0x7f, 0x84, 0x8c, 0x8f,
+			0x8c, 0x88, 0x85, 0x84, 0x82, 0x7b, 0x72, 0x6b, 0x67, 0x67, 0x67,
+			0x65, 0x62, 0x61, 0x61, 0x61, 0x62, 0x60, 0x60, 0x62, 0x61, 0x60,
+			0x5d, 0x5b, 0x5e, 0x6a, 0x88, 0xa8, 0xb0, 0xa3, 0x97, 0x9d, 0xab,
+			0xa8, 0x93, 0x81, 0x7a, 0x7b, 0x7b, 0x78, 0x75, 0x75, 0x76, 0x7e,
+			0x8b, 0x95, 0x97, 0x93, 0x91, 0x95, 0x95, 0x8f, 0x85, 0x7e, 0x7b,
+			0x78, 0x77, 0x78, 0x77, 0x76, 0x77, 0x7d, 0x85, 0x89, 0x89, 0x8c,
+			0x92, 0x93, 0x8f, 0x88, 0x83, 0x7f, 0x79, 0x73, 0x6e, 0x6b, 0x69,
+			0x67, 0x65, 0x65, 0x64, 0x64, 0x64, 0x61, 0x60, 0x60, 0x61, 0x62,
+			0x62, 0x60, 0x5e, 0x5e, 0x64, 0x6c, 0x73, 0x77, 0x80, 0x96, 0xae,
+			0xb2, 0xa3, 0x94, 0x93, 0x97, 0x91, 0x82, 0x79, 0x79, 0x7a, 0x7a,
+			0x7b, 0x81, 0x89, 0x8d, 0x8e, 0x90, 0x93, 0x93, 0x8f, 0x88, 0x83,
+			0x7d, 0x76, 0x70, 0x70, 0x74, 0x77, 0x77, 0x78, 0x7e, 0x88, 0x91,
+			0x95, 0x94, 0x91, 0x8d, 0x8b, 0x88, 0x84, 0x7f, 0x79, 0x74, 0x71,
+			0x71, 0x73, 0x75, 0x75, 0x76, 0x79, 0x7c, 0x7b, 0x77, 0x73, 0x70,
+			0x6b, 0x65, 0x5f, 0x5b, 0x5a, 0x5d, 0x61, 0x64, 0x62, 0x5d, 0x59,
+			0x56, 0x54, 0x52, 0x53, 0x5d, 0x76, 0x9c, 0xbb, 0xc1, 0xb4, 0xa6,
+			0xa4, 0xa8, 0xa1, 0x91, 0x81, 0x77, 0x73, 0x72, 0x72, 0x74, 0x79,
+			0x7f, 0x84, 0x8a, 0x93, 0x9b, 0x9c, 0x95, 0x8d, 0x89, 0x85, 0x7f,
+			0x77, 0x70, 0x6c, 0x6b, 0x6c, 0x70, 0x75, 0x7a, 0x7f, 0x85, 0x8c,
+			0x92, 0x95, 0x93, 0x8f, 0x8a, 0x86, 0x83, 0x80, 0x7c, 0x79, 0x78,
+			0x79, 0x7b, 0x7c, 0x7a, 0x7a, 0x7c, 0x7e, 0x7d, 0x79, 0x76, 0x76,
+			0x74, 0x72, 0x6e, 0x6c, 0x6d, 0x6d, 0x6b, 0x68, 0x66, 0x68, 0x6a,
+			0x6a, 0x66, 0x65, 0x69, 0x6b, 0x67, 0x62, 0x61, 0x6a, 0x87, 0xaf,
+			0xc2, 0xb7, 0xa0, 0x94, 0x9e, 0xa5, 0x98, 0x83, 0x74, 0x6e, 0x6e,
+			0x73, 0x7d, 0x87, 0x85, 0x82, 0x89, 0x93, 0x95, 0x8e, 0x86, 0x87,
+			0x8b, 0x86, 0x7d, 0x77, 0x72, 0x6d, 0x6a, 0x6c, 0x76, 0x7e, 0x7f,
+			0x7f, 0x83, 0x8b, 0x90, 0x8f, 0x8b, 0x89, 0x88, 0x86, 0x85, 0x82,
+			0x80, 0x7e, 0x7c, 0x7c, 0x7e, 0x81, 0x82, 0x81, 0x82, 0x84, 0x82,
+			0x7d, 0x78, 0x75, 0x74, 0x74, 0x73, 0x74, 0x75, 0x74, 0x74, 0x73,
+			0x73, 0x73, 0x71, 0x6f, 0x6e, 0x6b, 0x68, 0x66, 0x68, 0x6a, 0x68,
+			0x68, 0x6a, 0x69, 0x67, 0x6a, 0x78, 0x9b, 0xc0, 0xc5, 0xb1, 0x9b,
+			0x93, 0x92, 0x89, 0x7e, 0x76, 0x6f, 0x6a, 0x71, 0x7f, 0x8c, 0x8f,
+			0x8b, 0x8e, 0x97, 0x98, 0x92, 0x8a, 0x81, 0x78, 0x73, 0x74, 0x75,
+			0x73, 0x75, 0x7b, 0x81, 0x84, 0x85, 0x85, 0x84, 0x82, 0x7f, 0x7f,
+			0x80, 0x81, 0x81, 0x7f, 0x7d, 0x7e, 0x83, 0x8c, 0x91, 0x8d, 0x89,
+			0x86, 0x83, 0x81, 0x7f, 0x7e, 0x7c, 0x79, 0x79, 0x7b, 0x7c, 0x7c,
+			0x7a, 0x7a, 0x79, 0x77, 0x75, 0x75, 0x75, 0x74, 0x75, 0x79, 0x7a,
+			0x77, 0x74, 0x73, 0x72, 0x6e, 0x6c, 0x6c, 0x6b, 0x6b, 0x6c, 0x6d,
+			0x6d, 0x6e, 0x71, 0x73, 0x76, 0x8a, 0xab, 0xbd, 0xb5, 0xa2, 0x95,
+			0x8d, 0x84, 0x7c, 0x77, 0x6f, 0x6b, 0x74, 0x84, 0x8d, 0x8d, 0x8f,
+			0x94, 0x94, 0x8f, 0x8d, 0x87, 0x7b, 0x73, 0x75, 0x79, 0x79, 0x78,
+			0x7b, 0x7e, 0x81, 0x83, 0x84, 0x82, 0x80, 0x80, 0x81, 0x7f, 0x7c,
+			0x7c, 0x7c, 0x7a, 0x7c, 0x81, 0x85, 0x88, 0x8f, 0x90, 0x8a, 0x88,
+			0x86, 0x82, 0x7d, 0x7a, 0x7a, 0x79, 0x79, 0x7d, 0x7d, 0x7b, 0x7a,
+			0x7b, 0x7c, 0x7b, 0x7c, 0x7d, 0x7c, 0x7a, 0x79, 0x77, 0x75, 0x72,
+			0x71, 0x71, 0x70, 0x70, 0x71, 0x71, 0x6f, 0x6d, 0x6c, 0x6c, 0x6b,
+			0x6d, 0x6e, 0x6f, 0x72, 0x73, 0x7b, 0x91, 0xb0, 0xbd, 0xb1, 0x9e,
+			0x8b, 0x7f, 0x7d, 0x7f, 0x7a, 0x70, 0x74, 0x80, 0x8c, 0x95, 0x97,
+			0x94, 0x8e, 0x89, 0x89, 0x84, 0x7e, 0x78, 0x73, 0x75, 0x7c, 0x84,
+			0x86, 0x84, 0x86, 0x89, 0x87, 0x83, 0x7f, 0x7a, 0x73, 0x74, 0x77,
+			0x79, 0x7b, 0x7c, 0x7e, 0x85, 0x8b, 0x8c, 0x88, 0x84, 0x80, 0x7e,
+			0x7e, 0x81, 0x88, 0x89, 0x84, 0x86, 0x86, 0x84, 0x81, 0x7c, 0x77,
+			0x74, 0x77, 0x7c, 0x7f, 0x80, 0x7e, 0x7c, 0x7b, 0x7c, 0x7b, 0x78,
+			0x75, 0x70, 0x6f, 0x73, 0x75, 0x76, 0x75, 0x75, 0x74, 0x72, 0x73,
+			0x6f, 0x6b, 0x6c, 0x6b, 0x6c, 0x6c, 0x6c, 0x6e, 0x6f, 0x7e, 0xa1,
+			0xbc, 0xbe, 0xad, 0x95, 0x7e, 0x75, 0x7b, 0x7f, 0x79, 0x77, 0x7d,
+			0x86, 0x93, 0x9c, 0x97, 0x8d, 0x87, 0x84, 0x7f, 0x7f, 0x7e, 0x78,
+			0x76, 0x7b, 0x81, 0x86, 0x8a, 0x8b, 0x85, 0x7e, 0x7d, 0x7b, 0x79,
+			0x78, 0x76, 0x73, 0x73, 0x7c, 0x86, 0x8a, 0x89, 0x87, 0x83, 0x81,
+			0x80, 0x7d, 0x77, 0x78, 0x80, 0x86, 0x8b, 0x90, 0x8d, 0x84, 0x7f,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7b, 0x78, 0x7a, 0x7e, 0x7e, 0x7e, 0x7b,
+			0x75, 0x75, 0x78, 0x7a, 0x7c, 0x7a, 0x77, 0x75, 0x76, 0x76, 0x75,
+			0x75, 0x75, 0x75, 0x76, 0x75, 0x73, 0x72, 0x72, 0x72, 0x70, 0x6c,
+			0x69, 0x6a, 0x6f, 0x7f, 0x9c, 0xb6, 0xb9, 0xac, 0x96, 0x83, 0x7a,
+			0x7a, 0x7f, 0x7e, 0x7d, 0x7f, 0x85, 0x8f, 0x96, 0x94, 0x8e, 0x87,
+			0x81, 0x7f, 0x80, 0x7f, 0x7b, 0x7a, 0x79, 0x7a, 0x80, 0x86, 0x88,
+			0x89, 0x86, 0x80, 0x7b, 0x7a, 0x7a, 0x79, 0x79, 0x79, 0x7a, 0x80,
+			0x86, 0x86, 0x82, 0x7f, 0x7d, 0x7e, 0x83, 0x8a, 0x8c, 0x8b, 0x8a,
+			0x87, 0x81, 0x7d, 0x7b, 0x7b, 0x7c, 0x7e, 0x80, 0x7f, 0x80, 0x7e,
+			0x7a, 0x77, 0x73, 0x72, 0x73, 0x75, 0x79, 0x7c, 0x7c, 0x79, 0x77,
+			0x76, 0x76, 0x78, 0x79, 0x79, 0x77, 0x75, 0x75, 0x75, 0x76, 0x77,
+			0x75, 0x74, 0x74, 0x75, 0x74, 0x73, 0x71, 0x6d, 0x6a, 0x6b, 0x7a,
+			0x99, 0xb0, 0xb6, 0xb1, 0x9c, 0x85, 0x7b, 0x7e, 0x86, 0x89, 0x86,
+			0x81, 0x7b, 0x7f, 0x8a, 0x92, 0x96, 0x8f, 0x84, 0x7d, 0x7d, 0x83,
+			0x88, 0x88, 0x81, 0x79, 0x75, 0x79, 0x81, 0x87, 0x88, 0x82, 0x7c,
+			0x78, 0x79, 0x7d, 0x80, 0x7f, 0x7c, 0x7a, 0x7a, 0x7c, 0x7f, 0x82,
+			0x81, 0x80, 0x82, 0x84, 0x87, 0x89, 0x87, 0x82, 0x7d, 0x7b, 0x7b,
+			0x7d, 0x80, 0x80, 0x7f, 0x7c, 0x79, 0x77, 0x77, 0x79, 0x79, 0x79,
+			0x79, 0x79, 0x78, 0x79, 0x7a, 0x7a, 0x7a, 0x7a, 0x79, 0x77, 0x77,
+			0x77, 0x77, 0x77, 0x79, 0x7c, 0x7c, 0x7d, 0x7e, 0x7b, 0x79, 0x78,
+			0x79, 0x79, 0x78, 0x77, 0x72, 0x6b, 0x66, 0x65, 0x76, 0x94, 0xa9,
+			0xb6, 0xb3, 0x9e, 0x88, 0x7d, 0x7e, 0x85, 0x8b, 0x8e, 0x88, 0x81,
+			0x7f, 0x81, 0x87, 0x8e, 0x92, 0x90, 0x87, 0x7f, 0x7c, 0x7f, 0x84,
+			0x88, 0x86, 0x82, 0x7c, 0x78, 0x78, 0x7b, 0x7e, 0x80, 0x80, 0x7d,
+			0x7a, 0x7a, 0x7b, 0x7e, 0x83, 0x84, 0x83, 0x80, 0x7d, 0x7e, 0x80,
+			0x84, 0x86, 0x86, 0x83, 0x7e, 0x7c, 0x7c, 0x80, 0x84, 0x84, 0x80,
+			0x7a, 0x74, 0x72, 0x75, 0x7a, 0x7d, 0x7e, 0x7b, 0x76, 0x73, 0x74,
+			0x76, 0x79, 0x7c, 0x7c, 0x79, 0x76, 0x76, 0x78, 0x7b, 0x7d, 0x7f,
+			0x7d, 0x7a, 0x79, 0x79, 0x79, 0x7b, 0x7c, 0x7b, 0x7a, 0x79, 0x78,
+			0x77, 0x76, 0x74, 0x72, 0x6f, 0x6c, 0x6e, 0x7a, 0x8b, 0x9a, 0xa5,
+			0xa7, 0x9f, 0x94, 0x8b, 0x87, 0x87, 0x8c, 0x8e, 0x8c, 0x86, 0x80,
+			0x7c, 0x7e, 0x84, 0x8b, 0x8e, 0x8d, 0x89, 0x83, 0x81, 0x80, 0x81,
+			0x83, 0x83, 0x81, 0x7d, 0x79, 0x76, 0x75, 0x78, 0x7b, 0x7e, 0x80,
+			0x80, 0x7f, 0x7e, 0x7d, 0x7d, 0x7e, 0x7f, 0x7f, 0x7e, 0x7d, 0x7a,
+			0x79, 0x7b, 0x7f, 0x84, 0x88, 0x8a, 0x89, 0x86, 0x83, 0x80, 0x7e,
+			0x7e, 0x7f, 0x7d, 0x7c, 0x7a, 0x78, 0x77, 0x79, 0x7a, 0x7b, 0x7b,
+			0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x7d, 0x7b, 0x79, 0x78, 0x77, 0x77,
+			0x79, 0x7a, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b,
+			0x7a, 0x79, 0x77, 0x76, 0x75, 0x75, 0x76, 0x77, 0x7e, 0x86, 0x8c,
+			0x93, 0x95, 0x93, 0x91, 0x8e, 0x8c, 0x8c, 0x8e, 0x90, 0x8e, 0x8b,
+			0x87, 0x82, 0x81, 0x81, 0x83, 0x86, 0x87, 0x87, 0x86, 0x85, 0x85,
+			0x84, 0x84, 0x85, 0x84, 0x82, 0x7f, 0x7c, 0x79, 0x78, 0x78, 0x79,
+			0x7b, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7f, 0x80, 0x7f, 0x7f,
+			0x7d, 0x7b, 0x7b, 0x7c, 0x7c, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x81, 0x82, 0x82, 0x82, 0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7d, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c,
+			0x7b, 0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c,
+			0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e,
+			0x80, 0x83, 0x85, 0x86, 0x86, 0x86, 0x86, 0x86, 0x88, 0x89, 0x8a,
+			0x8b, 0x8b, 0x8b, 0x8a, 0x89, 0x88, 0x88, 0x88, 0x89, 0x88, 0x87,
+			0x86, 0x85, 0x84, 0x83, 0x83, 0x82, 0x82, 0x81, 0x81, 0x80, 0x80,
+			0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x7f, 0x7f, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7b, 0x7a, 0x79, 0x79, 0x79, 0x79,
+			0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b,
+			0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x7a, 0x7a, 0x79,
+			0x79, 0x79, 0x7a, 0x79, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+			0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, 0x7d,
+			0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x80, 0x81, 0x80,
+			0x80, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80,
+			0x80, 0x81, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x82, 0x83, 0x83,
+			0x83, 0x84, 0x84, 0x83, 0x84, 0x84, 0x84, 0x85, 0x85, 0x84, 0x84,
+			0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x83, 0x82, 0x81, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d,
+			0x7d, 0x7c, 0x7b, 0x7b, 0x7a, 0x7b, 0x7c, 0x7d, 0x7d, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c,
+			0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81,
+			0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81,
+			0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
+			0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x7e, 0x7f,
+			0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f,
+			0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7f,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x7f, 0x7f,
+			0x7f, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80,
+			0x81, 0x81, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+		},
+		{ // 1
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x84,
+			0x8a, 0x8f, 0x93, 0x94, 0x95, 0x95, 0x94, 0x91, 0x8f, 0x8d, 0x8c,
+			0x8b, 0x8a, 0x8a, 0x89, 0x87, 0x85, 0x83, 0x82, 0x80, 0x80, 0x81,
+			0x82, 0x82, 0x81, 0x7f, 0x7e, 0x7d, 0x7c, 0x7a, 0x79, 0x79, 0x78,
+			0x77, 0x77, 0x79, 0x7b, 0x7d, 0x7e, 0x7f, 0x7e, 0x7e, 0x7d, 0x7d,
+			0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7a, 0x79, 0x79, 0x78, 0x77, 0x77,
+			0x77, 0x78, 0x77, 0x76, 0x75, 0x75, 0x75, 0x76, 0x75, 0x75, 0x74,
+			0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x75, 0x77, 0x7a, 0x7e, 0x84,
+			0x8a, 0x91, 0x98, 0x9c, 0x9e, 0x9f, 0x9d, 0x9a, 0x97, 0x94, 0x93,
+			0x92, 0x91, 0x90, 0x8e, 0x8a, 0x85, 0x80, 0x7d, 0x7a, 0x7a, 0x7a,
+			0x7c, 0x7f, 0x81, 0x83, 0x83, 0x83, 0x82, 0x81, 0x7f, 0x7d, 0x7c,
+			0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e,
+			0x7d, 0x7c, 0x7b, 0x7a, 0x79, 0x77, 0x74, 0x72, 0x71, 0x70, 0x70,
+			0x70, 0x71, 0x70, 0x6e, 0x6c, 0x6a, 0x6a, 0x6b, 0x6c, 0x6d, 0x6d,
+			0x6a, 0x68, 0x6a, 0x6f, 0x78, 0x85, 0x92, 0x9f, 0xa7, 0xab, 0xac,
+			0xaa, 0xa7, 0xa2, 0x9c, 0x98, 0x94, 0x92, 0x91, 0x8f, 0x8c, 0x87,
+			0x81, 0x7b, 0x76, 0x74, 0x74, 0x77, 0x7a, 0x7e, 0x81, 0x84, 0x85,
+			0x84, 0x84, 0x82, 0x81, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7d, 0x7b, 0x7a, 0x79, 0x77,
+			0x76, 0x75, 0x73, 0x72, 0x71, 0x6f, 0x6d, 0x6b, 0x69, 0x69, 0x6a,
+			0x6a, 0x6a, 0x6b, 0x6b, 0x69, 0x67, 0x69, 0x6d, 0x75, 0x81, 0x8f,
+			0x9c, 0xa6, 0xab, 0xad, 0xac, 0xa9, 0xa4, 0x9d, 0x97, 0x92, 0x8f,
+			0x8d, 0x8c, 0x8a, 0x88, 0x85, 0x81, 0x7e, 0x7c, 0x7d, 0x7f, 0x81,
+			0x83, 0x84, 0x84, 0x82, 0x80, 0x7e, 0x7d, 0x7e, 0x7f, 0x82, 0x85,
+			0x87, 0x87, 0x86, 0x84, 0x81, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x7d, 0x77, 0x71, 0x69, 0x62, 0x5b, 0x56, 0x53, 0x52, 0x52, 0x52,
+			0x52, 0x52, 0x51, 0x4f, 0x50, 0x59, 0x66, 0x7b, 0x92, 0xa8, 0xb9,
+			0xbe, 0xbb, 0xb1, 0x9f, 0x8c, 0x7a, 0x6e, 0x69, 0x6c, 0x77, 0x85,
+			0x94, 0xa1, 0xa7, 0xa7, 0xa0, 0x97, 0x8b, 0x82, 0x7c, 0x78, 0x78,
+			0x79, 0x7c, 0x80, 0x82, 0x84, 0x86, 0x87, 0x87, 0x87, 0x85, 0x84,
+			0x82, 0x81, 0x80, 0x82, 0x83, 0x86, 0x87, 0x85, 0x82, 0x7c, 0x73,
+			0x6a, 0x62, 0x5d, 0x5a, 0x59, 0x5b, 0x5c, 0x5d, 0x5c, 0x5c, 0x5b,
+			0x57, 0x50, 0x4e, 0x54, 0x63, 0x7b, 0x95, 0xaf, 0xbe, 0xbe, 0xb9,
+			0xa8, 0x92, 0x7d, 0x6c, 0x64, 0x66, 0x71, 0x81, 0x94, 0xa3, 0xac,
+			0xab, 0xa3, 0x96, 0x87, 0x7a, 0x74, 0x72, 0x76, 0x7c, 0x81, 0x86,
+			0x88, 0x86, 0x83, 0x80, 0x7f, 0x80, 0x82, 0x85, 0x89, 0x8b, 0x8b,
+			0x8a, 0x88, 0x85, 0x82, 0x7f, 0x7c, 0x79, 0x76, 0x72, 0x6f, 0x6c,
+			0x6a, 0x67, 0x63, 0x61, 0x5e, 0x5c, 0x5b, 0x5a, 0x57, 0x55, 0x52,
+			0x51, 0x5b, 0x6a, 0x83, 0x9e, 0xb3, 0xbf, 0xbd, 0xae, 0x96, 0x7d,
+			0x69, 0x5f, 0x63, 0x72, 0x87, 0x9c, 0xaa, 0xaf, 0xaa, 0x9c, 0x8d,
+			0x7d, 0x74, 0x71, 0x76, 0x7f, 0x87, 0x8d, 0x8d, 0x8a, 0x83, 0x7a,
+			0x75, 0x72, 0x75, 0x7c, 0x84, 0x8e, 0x93, 0x95, 0x93, 0x8e, 0x88,
+			0x81, 0x7d, 0x7a, 0x79, 0x7a, 0x7a, 0x7a, 0x78, 0x76, 0x72, 0x6d,
+			0x67, 0x62, 0x5e, 0x5c, 0x5b, 0x59, 0x58, 0x57, 0x55, 0x54, 0x56,
+			0x61, 0x71, 0x89, 0xa3, 0xb4, 0xbc, 0xb5, 0xa3, 0x8b, 0x74, 0x66,
+			0x64, 0x70, 0x83, 0x97, 0xa6, 0xab, 0xa7, 0x9a, 0x8b, 0x7e, 0x76,
+			0x76, 0x7b, 0x83, 0x8a, 0x8c, 0x8a, 0x85, 0x7e, 0x79, 0x76, 0x78,
+			0x7a, 0x7e, 0x82, 0x85, 0x89, 0x8a, 0x8a, 0x8a, 0x89, 0x88, 0x87,
+			0x87, 0x87, 0x86, 0x85, 0x81, 0x7c, 0x77, 0x73, 0x71, 0x71, 0x72,
+			0x73, 0x71, 0x6c, 0x66, 0x5d, 0x56, 0x51, 0x4d, 0x4b, 0x4c, 0x4f,
+			0x5f, 0x75, 0x8c, 0xa9, 0xb7, 0xb9, 0xaf, 0x96, 0x7e, 0x68, 0x61,
+			0x68, 0x7c, 0x95, 0xa7, 0xb1, 0xad, 0x9e, 0x8c, 0x7a, 0x70, 0x70,
+			0x78, 0x85, 0x8f, 0x93, 0x8f, 0x85, 0x7b, 0x73, 0x73, 0x78, 0x80,
+			0x86, 0x87, 0x83, 0x7d, 0x79, 0x7c, 0x83, 0x8e, 0x96, 0x9a, 0x97,
+			0x8d, 0x82, 0x79, 0x74, 0x76, 0x7b, 0x81, 0x85, 0x85, 0x81, 0x79,
+			0x71, 0x69, 0x64, 0x61, 0x61, 0x62, 0x62, 0x60, 0x5d, 0x58, 0x54,
+			0x4f, 0x54, 0x66, 0x7b, 0x95, 0xac, 0xb8, 0xb5, 0xa3, 0x8b, 0x75,
+			0x6a, 0x6e, 0x7d, 0x93, 0xa2, 0xa7, 0xa1, 0x93, 0x85, 0x7b, 0x7b,
+			0x80, 0x87, 0x8e, 0x8e, 0x89, 0x82, 0x7a, 0x78, 0x7a, 0x80, 0x87,
+			0x8b, 0x8a, 0x82, 0x77, 0x6d, 0x67, 0x68, 0x72, 0x84, 0x96, 0xa3,
+			0xa7, 0x9e, 0x8f, 0x7e, 0x72, 0x71, 0x79, 0x85, 0x90, 0x94, 0x90,
+			0x85, 0x77, 0x6b, 0x65, 0x65, 0x67, 0x6c, 0x6f, 0x6f, 0x6b, 0x65,
+			0x5f, 0x5a, 0x58, 0x57, 0x57, 0x5c, 0x68, 0x78, 0x89, 0xa2, 0xb2,
+			0xae, 0xa6, 0x94, 0x81, 0x78, 0x77, 0x7f, 0x8c, 0x95, 0x99, 0x97,
+			0x90, 0x88, 0x85, 0x83, 0x83, 0x83, 0x81, 0x7f, 0x7e, 0x7e, 0x82,
+			0x87, 0x8a, 0x89, 0x82, 0x78, 0x6f, 0x6a, 0x6d, 0x76, 0x81, 0x8a,
+			0x8d, 0x8a, 0x83, 0x7c, 0x7d, 0x83, 0x8d, 0x96, 0x96, 0x90, 0x88,
+			0x81, 0x7f, 0x81, 0x83, 0x83, 0x80, 0x7b, 0x76, 0x74, 0x75, 0x77,
+			0x77, 0x75, 0x73, 0x6f, 0x6d, 0x6e, 0x6c, 0x6b, 0x68, 0x68, 0x67,
+			0x65, 0x65, 0x60, 0x5e, 0x5e, 0x76, 0x9b, 0xaf, 0xbf, 0xb7, 0x9d,
+			0x7f, 0x65, 0x62, 0x70, 0x8a, 0x9c, 0xa0, 0x9d, 0x8a, 0x7f, 0x7f,
+			0x81, 0x8c, 0x91, 0x91, 0x8a, 0x7d, 0x73, 0x6f, 0x76, 0x80, 0x88,
+			0x8e, 0x8c, 0x85, 0x7b, 0x72, 0x6e, 0x6e, 0x74, 0x7d, 0x85, 0x8b,
+			0x89, 0x85, 0x81, 0x7d, 0x7e, 0x83, 0x8a, 0x8f, 0x92, 0x8c, 0x82,
+			0x7b, 0x78, 0x7b, 0x81, 0x87, 0x87, 0x83, 0x7b, 0x75, 0x72, 0x73,
+			0x76, 0x78, 0x78, 0x76, 0x75, 0x74, 0x72, 0x72, 0x72, 0x70, 0x6f,
+			0x6f, 0x6d, 0x6d, 0x6b, 0x68, 0x62, 0x5c, 0x6c, 0x92, 0xb4, 0xc4,
+			0xbf, 0xa3, 0x7c, 0x63, 0x62, 0x76, 0x90, 0x9f, 0x9c, 0x92, 0x85,
+			0x7e, 0x84, 0x8d, 0x90, 0x8a, 0x7e, 0x72, 0x6e, 0x75, 0x81, 0x8e,
+			0x93, 0x8e, 0x83, 0x7a, 0x77, 0x79, 0x7c, 0x7e, 0x7c, 0x79, 0x77,
+			0x7a, 0x7e, 0x83, 0x86, 0x86, 0x83, 0x7e, 0x7a, 0x7a, 0x7d, 0x84,
+			0x8c, 0x90, 0x91, 0x8d, 0x84, 0x7d, 0x79, 0x7a, 0x7e, 0x83, 0x86,
+			0x85, 0x81, 0x7e, 0x7b, 0x79, 0x78, 0x78, 0x76, 0x74, 0x73, 0x72,
+			0x71, 0x71, 0x72, 0x74, 0x75, 0x76, 0x74, 0x70, 0x6c, 0x68, 0x66,
+			0x64, 0x64, 0x64, 0x6a, 0x84, 0xa7, 0xbf, 0xc1, 0xac, 0x89, 0x6d,
+			0x64, 0x6e, 0x83, 0x91, 0x91, 0x88, 0x82, 0x83, 0x8a, 0x91, 0x92,
+			0x8a, 0x7e, 0x77, 0x77, 0x7d, 0x84, 0x88, 0x88, 0x85, 0x82, 0x82,
+			0x84, 0x82, 0x7c, 0x75, 0x70, 0x71, 0x79, 0x80, 0x85, 0x87, 0x87,
+			0x85, 0x85, 0x84, 0x80, 0x7b, 0x78, 0x7b, 0x84, 0x8d, 0x92, 0x90,
+			0x87, 0x80, 0x7d, 0x7e, 0x80, 0x81, 0x80, 0x7e, 0x7b, 0x7b, 0x7d,
+			0x7d, 0x79, 0x75, 0x72, 0x71, 0x72, 0x73, 0x73, 0x72, 0x73, 0x73,
+			0x74, 0x75, 0x73, 0x70, 0x6e, 0x6d, 0x6d, 0x6d, 0x6e, 0x6d, 0x6d,
+			0x70, 0x70, 0x6d, 0x72, 0x88, 0xa5, 0xb6, 0xaf, 0x9a, 0x86, 0x7d,
+			0x83, 0x8b, 0x8d, 0x87, 0x81, 0x83, 0x8c, 0x94, 0x92, 0x8a, 0x83,
+			0x80, 0x81, 0x81, 0x7d, 0x77, 0x75, 0x7d, 0x86, 0x8a, 0x88, 0x84,
+			0x81, 0x81, 0x80, 0x7d, 0x78, 0x74, 0x74, 0x78, 0x7c, 0x80, 0x84,
+			0x85, 0x86, 0x88, 0x87, 0x84, 0x81, 0x83, 0x8a, 0x90, 0x8d, 0x84,
+			0x7f, 0x7f, 0x80, 0x82, 0x82, 0x80, 0x7f, 0x7f, 0x7e, 0x7d, 0x79,
+			0x76, 0x75, 0x76, 0x75, 0x74, 0x72, 0x70, 0x71, 0x72, 0x72, 0x72,
+			0x72, 0x72, 0x72, 0x73, 0x74, 0x71, 0x6d, 0x6c, 0x6d, 0x72, 0x74,
+			0x72, 0x6f, 0x6f, 0x74, 0x7b, 0x83, 0x8b, 0x8d, 0x91, 0x9b, 0xa0,
+			0x9e, 0x99, 0x93, 0x90, 0x8d, 0x8a, 0x87, 0x86, 0x87, 0x89, 0x89,
+			0x88, 0x84, 0x80, 0x80, 0x7f, 0x80, 0x82, 0x84, 0x83, 0x80, 0x7e,
+			0x7e, 0x7f, 0x7d, 0x7a, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x7b,
+			0x7d, 0x7e, 0x7f, 0x81, 0x81, 0x81, 0x85, 0x89, 0x8a, 0x87, 0x86,
+			0x89, 0x8b, 0x8a, 0x87, 0x86, 0x85, 0x82, 0x81, 0x7f, 0x7f, 0x80,
+			0x80, 0x7e, 0x7a, 0x77, 0x76, 0x73, 0x73, 0x74, 0x75, 0x75, 0x74,
+			0x73, 0x73, 0x74, 0x74, 0x72, 0x71, 0x70, 0x6f, 0x6f, 0x6f, 0x6f,
+			0x6f, 0x6f, 0x72, 0x72, 0x72, 0x70, 0x6f, 0x72, 0x74, 0x74, 0x75,
+			0x75, 0x77, 0x80, 0x86, 0x83, 0x88, 0x93, 0x97, 0x96, 0x97, 0x99,
+			0x9e, 0x9e, 0x9b, 0x9b, 0x9c, 0x9a, 0x99, 0x96, 0x90, 0x8b, 0x89,
+			0x85, 0x82, 0x80, 0x7e, 0x7f, 0x7e, 0x7b, 0x79, 0x7a, 0x7a, 0x78,
+			0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x79, 0x78, 0x78,
+			0x7b, 0x7d, 0x80, 0x85, 0x88, 0x86, 0x89, 0x91, 0x90, 0x8b, 0x8a,
+			0x8e, 0x8f, 0x8c, 0x87, 0x85, 0x86, 0x84, 0x7e, 0x7a, 0x75, 0x73,
+			0x73, 0x70, 0x6c, 0x6b, 0x6b, 0x6b, 0x6b, 0x6b, 0x6c, 0x6c, 0x6c,
+			0x6e, 0x6f, 0x70, 0x70, 0x71, 0x72, 0x72, 0x73, 0x75, 0x74, 0x72,
+			0x73, 0x73, 0x73, 0x74, 0x74, 0x73, 0x74, 0x72, 0x72, 0x74, 0x77,
+			0x80, 0x85, 0x82, 0x89, 0x98, 0x98, 0x94, 0x99, 0x9d, 0x9f, 0xa2,
+			0x9f, 0x9d, 0xa0, 0x9e, 0x9a, 0x97, 0x91, 0x8d, 0x8d, 0x89, 0x84,
+			0x83, 0x83, 0x80, 0x80, 0x7e, 0x7b, 0x7b, 0x7a, 0x77, 0x77, 0x77,
+			0x75, 0x76, 0x75, 0x74, 0x75, 0x76, 0x75, 0x76, 0x78, 0x79, 0x7b,
+			0x7c, 0x7d, 0x80, 0x84, 0x87, 0x89, 0x8a, 0x8d, 0x91, 0x91, 0x8e,
+			0x8e, 0x8f, 0x8e, 0x8b, 0x88, 0x85, 0x83, 0x80, 0x7c, 0x78, 0x75,
+			0x73, 0x71, 0x6e, 0x6c, 0x6d, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6f,
+			0x6e, 0x6e, 0x6e, 0x6f, 0x6f, 0x70, 0x71, 0x73, 0x74, 0x75, 0x75,
+			0x77, 0x79, 0x77, 0x76, 0x77, 0x79, 0x79, 0x77, 0x77, 0x79, 0x7b,
+			0x81, 0x84, 0x85, 0x8b, 0x93, 0x94, 0x94, 0x97, 0x9a, 0x9e, 0x9f,
+			0x9d, 0x9e, 0xa1, 0xa0, 0x9d, 0x9b, 0x97, 0x93, 0x92, 0x8d, 0x87,
+			0x86, 0x85, 0x83, 0x81, 0x7f, 0x7d, 0x7d, 0x7b, 0x79, 0x79, 0x78,
+			0x75, 0x75, 0x75, 0x73, 0x72, 0x73, 0x72, 0x73, 0x76, 0x77, 0x78,
+			0x79, 0x7a, 0x7c, 0x7e, 0x81, 0x83, 0x85, 0x86, 0x8b, 0x8f, 0x8d,
+			0x8c, 0x8e, 0x8f, 0x8d, 0x8a, 0x87, 0x86, 0x86, 0x83, 0x7f, 0x7c,
+			0x79, 0x78, 0x76, 0x73, 0x71, 0x71, 0x70, 0x6f, 0x6e, 0x6e, 0x6e,
+			0x6e, 0x6e, 0x6d, 0x6e, 0x6e, 0x6d, 0x6e, 0x70, 0x70, 0x70, 0x72,
+			0x72, 0x74, 0x76, 0x77, 0x78, 0x7a, 0x7a, 0x7a, 0x7b, 0x7a, 0x7b,
+			0x7c, 0x7a, 0x7a, 0x80, 0x81, 0x7d, 0x7d, 0x86, 0x8b, 0x86, 0x84,
+			0x8c, 0x94, 0x92, 0x8f, 0x92, 0x97, 0x9a, 0x99, 0x97, 0x98, 0x9a,
+			0x99, 0x96, 0x93, 0x91, 0x8f, 0x8d, 0x8b, 0x87, 0x85, 0x85, 0x83,
+			0x7f, 0x7d, 0x7d, 0x7b, 0x79, 0x78, 0x77, 0x78, 0x77, 0x76, 0x75,
+			0x76, 0x76, 0x76, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7b, 0x7c,
+			0x7e, 0x80, 0x80, 0x81, 0x85, 0x86, 0x84, 0x85, 0x88, 0x88, 0x86,
+			0x86, 0x86, 0x86, 0x86, 0x84, 0x82, 0x82, 0x82, 0x80, 0x7e, 0x7d,
+			0x7c, 0x7c, 0x7b, 0x79, 0x78, 0x79, 0x78, 0x77, 0x77, 0x77, 0x76,
+			0x77, 0x77, 0x76, 0x76, 0x76, 0x77, 0x77, 0x76, 0x77, 0x78, 0x78,
+			0x78, 0x79, 0x79, 0x79, 0x7b, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x7e,
+			0x7f, 0x80, 0x82, 0x84, 0x83, 0x83, 0x85, 0x86, 0x86, 0x86, 0x86,
+			0x86, 0x85, 0x85, 0x84, 0x83, 0x81, 0x80, 0x7e, 0x7d, 0x7c, 0x7b,
+			0x7a, 0x79, 0x78, 0x78, 0x78, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78,
+			0x78, 0x78, 0x79, 0x7a, 0x7a, 0x7a, 0x7b, 0x7c, 0x7c, 0x7b, 0x7b,
+			0x7d, 0x7d, 0x7d, 0x7c, 0x7e, 0x7f, 0x7e, 0x7d, 0x7f, 0x80, 0x80,
+			0x81, 0x83, 0x84, 0x84, 0x85, 0x87, 0x88, 0x88, 0x8a, 0x8b, 0x8c,
+			0x8c, 0x8d, 0x8e, 0x8e, 0x8e, 0x8d, 0x8c, 0x8c, 0x8b, 0x8a, 0x89,
+			0x88, 0x87, 0x85, 0x84, 0x83, 0x82, 0x80, 0x7f, 0x7e, 0x7d, 0x7c,
+			0x7c, 0x7b, 0x7a, 0x7a, 0x7a, 0x7a, 0x79, 0x79, 0x79, 0x79, 0x79,
+			0x79, 0x79, 0x79, 0x7a, 0x7a, 0x7a, 0x7a, 0x7b, 0x7a, 0x7b, 0x7b,
+			0x7a, 0x7a, 0x7b, 0x7b, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7a, 0x7b,
+			0x7b, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x7e, 0x7d, 0x7e, 0x7f, 0x7f,
+			0x80, 0x80, 0x81, 0x81, 0x82, 0x82, 0x81, 0x81, 0x80, 0x80, 0x7e,
+			0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
+			0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81,
+			0x81, 0x82, 0x82, 0x83, 0x84, 0x84, 0x85, 0x85, 0x85, 0x85, 0x86,
+			0x86, 0x86, 0x85, 0x86, 0x86, 0x85, 0x84, 0x83, 0x83, 0x83, 0x82,
+			0x81, 0x81, 0x81, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x81, 0x81, 0x81, 0x82, 0x82,
+			0x83, 0x84, 0x83, 0x84, 0x85, 0x85, 0x85, 0x86, 0x85, 0x85, 0x86,
+			0x86, 0x85, 0x85, 0x85, 0x85, 0x84, 0x83, 0x83, 0x83, 0x83, 0x81,
+			0x81, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c,
+			0x7c, 0x7b, 0x7b, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7a, 0x7a, 0x7b,
+			0x7b, 0x7a, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d,
+			0x7d, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f,
+		},
+		{ // 2
+			0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x7f, 0x81, 0x80, 0x81, 0x80, 0x7f, 0x80, 0x7e, 0x7d,
+			0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x80, 0x7f, 0x80, 0x80, 0x83, 0x7f,
+			0x82, 0x7e, 0x83, 0x7e, 0x80, 0x80, 0x7d, 0x83, 0x7b, 0x81, 0x7d,
+			0x81, 0x7b, 0x83, 0x7d, 0x7f, 0x83, 0x7b, 0x83, 0x7e, 0x7f, 0x82,
+			0x7e, 0x7d, 0x83, 0x7c, 0x83, 0x82, 0x7a, 0x84, 0x80, 0x80, 0x80,
+			0x80, 0x7e, 0x7a, 0x84, 0x7a, 0x7f, 0x86, 0x78, 0x80, 0x81, 0x7f,
+			0x81, 0x81, 0x84, 0x76, 0x89, 0x7d, 0x7d, 0x8f, 0x7c, 0x87, 0x7f,
+			0x82, 0x7a, 0x79, 0x7c, 0x73, 0x7e, 0x7e, 0x7a, 0x81, 0x7f, 0x81,
+			0x80, 0x87, 0x81, 0x7f, 0x84, 0x7e, 0x83, 0x7d, 0x84, 0x77, 0x87,
+			0x79, 0x7d, 0x82, 0x7c, 0x80, 0x7c, 0x82, 0x7c, 0x82, 0x7e, 0x83,
+			0x81, 0x7f, 0x7b, 0x85, 0x7a, 0x85, 0x80, 0x7b, 0x84, 0x7a, 0x81,
+			0x7b, 0x83, 0x80, 0x82, 0x7a, 0x82, 0x84, 0x7b, 0x84, 0x7e, 0x82,
+			0x84, 0x7d, 0x88, 0x7c, 0x85, 0x81, 0x7e, 0x7f, 0x7e, 0x83, 0x7a,
+			0x7e, 0x7d, 0x7d, 0x7d, 0x81, 0x7d, 0x89, 0x7a, 0x82, 0x80, 0x85,
+			0x7f, 0x7b, 0x8a, 0x74, 0x85, 0x78, 0x81, 0x7d, 0x81, 0x80, 0x7a,
+			0x85, 0x7e, 0x81, 0x7e, 0x83, 0x7d, 0x83, 0x77, 0x81, 0x82, 0x79,
+			0x82, 0x83, 0x85, 0x7e, 0x87, 0x7e, 0x82, 0x83, 0x79, 0x80, 0x85,
+			0x78, 0x79, 0x8d, 0x7e, 0x7e, 0x87, 0x7e, 0x7a, 0x81, 0x76, 0x7e,
+			0x8a, 0x7b, 0x7f, 0x83, 0x7f, 0x7e, 0x84, 0x7a, 0x7d, 0x83, 0x7f,
+			0x7d, 0x7e, 0x85, 0x7d, 0x80, 0x7e, 0x7d, 0x80, 0x81, 0x7d, 0x7b,
+			0x84, 0x83, 0x7f, 0x7e, 0x81, 0x7e, 0x80, 0x7e, 0x7c, 0x82, 0x7e,
+			0x7c, 0x80, 0x84, 0x81, 0x7d, 0x83, 0x80, 0x7d, 0x85, 0x79, 0x7a,
+			0x87, 0x7d, 0x79, 0x86, 0x80, 0x7b, 0x86, 0x7f, 0x7f, 0x86, 0x80,
+			0x7b, 0x82, 0x7f, 0x79, 0x7c, 0x79, 0x7c, 0x7c, 0x7f, 0x7d, 0x7e,
+			0x85, 0x7c, 0x7f, 0x83, 0x83, 0x81, 0x81, 0x82, 0x84, 0x87, 0x81,
+			0x7c, 0x83, 0x83, 0x7c, 0x7d, 0x7f, 0x82, 0x7f, 0x7e, 0x7f, 0x80,
+			0x80, 0x7f, 0x83, 0x82, 0x82, 0x84, 0x84, 0x83, 0x85, 0x84, 0x80,
+			0x80, 0x7f, 0x7a, 0x7a, 0x79, 0x74, 0x77, 0x76, 0x72, 0x74, 0x78,
+			0x76, 0x73, 0x7b, 0x7b, 0x76, 0x77, 0x75, 0x6f, 0x6a, 0x6b, 0x69,
+			0x63, 0x63, 0x5f, 0x62, 0x60, 0x6e, 0x82, 0x7f, 0x89, 0x99, 0xa2,
+			0xa4, 0xa8, 0xa9, 0xa6, 0xa7, 0xa2, 0x9a, 0x92, 0x90, 0x86, 0x7d,
+			0x80, 0x7d, 0x7a, 0x7a, 0x7e, 0x85, 0x8e, 0x91, 0x91, 0x99, 0x9e,
+			0x9b, 0x97, 0x9b, 0x98, 0x8d, 0x8c, 0x88, 0x7d, 0x7b, 0x7c, 0x78,
+			0x75, 0x7a, 0x7a, 0x78, 0x78, 0x75, 0x73, 0x70, 0x6a, 0x64, 0x62,
+			0x60, 0x5d, 0x5a, 0x58, 0x59, 0x58, 0x53, 0x55, 0x5d, 0x58, 0x59,
+			0x59, 0x6a, 0x8a, 0x87, 0x8a, 0xa1, 0xb3, 0xb3, 0xb1, 0xb8, 0xb1,
+			0xb3, 0xaa, 0x9b, 0x94, 0x90, 0x86, 0x76, 0x78, 0x7c, 0x79, 0x77,
+			0x7e, 0x88, 0x8d, 0x94, 0x97, 0x9a, 0x9e, 0x9b, 0x95, 0x8e, 0x8c,
+			0x8a, 0x83, 0x7f, 0x80, 0x80, 0x7e, 0x7d, 0x82, 0x85, 0x87, 0x86,
+			0x84, 0x81, 0x7d, 0x78, 0x71, 0x6a, 0x63, 0x5d, 0x58, 0x55, 0x54,
+			0x52, 0x54, 0x57, 0x58, 0x58, 0x59, 0x5e, 0x5c, 0x59, 0x55, 0x73,
+			0x8e, 0x89, 0x96, 0xa8, 0xb8, 0xb8, 0xb9, 0xb6, 0xaf, 0xb2, 0xa3,
+			0x92, 0x88, 0x86, 0x7b, 0x6d, 0x72, 0x72, 0x72, 0x77, 0x7b, 0x85,
+			0x90, 0x9b, 0x9b, 0x9d, 0xa2, 0xa1, 0x98, 0x8f, 0x89, 0x82, 0x7d,
+			0x78, 0x75, 0x7a, 0x7e, 0x7f, 0x81, 0x88, 0x8c, 0x8d, 0x8d, 0x89,
+			0x84, 0x80, 0x79, 0x72, 0x6d, 0x66, 0x61, 0x5d, 0x5a, 0x58, 0x58,
+			0x57, 0x57, 0x5c, 0x5e, 0x5c, 0x58, 0x5c, 0x5c, 0x57, 0x5b, 0x6d,
+			0x88, 0x90, 0x99, 0xa9, 0xb5, 0xbb, 0xb8, 0xb4, 0xae, 0xaa, 0xa0,
+			0x8e, 0x81, 0x7b, 0x75, 0x6f, 0x6d, 0x70, 0x75, 0x7b, 0x84, 0x8e,
+			0x99, 0x9f, 0xa2, 0xa2, 0x9e, 0x97, 0x8e, 0x84, 0x79, 0x73, 0x6f,
+			0x65, 0x64, 0x6d, 0x78, 0x81, 0x89, 0x93, 0x9b, 0xa0, 0x9e, 0x99,
+			0x95, 0x90, 0x86, 0x7b, 0x71, 0x6d, 0x69, 0x66, 0x63, 0x5f, 0x60,
+			0x61, 0x61, 0x61, 0x64, 0x66, 0x65, 0x66, 0x67, 0x65, 0x61, 0x5d,
+			0x58, 0x57, 0x55, 0x5a, 0x73, 0x87, 0x92, 0x9e, 0xaa, 0xb6, 0xb7,
+			0xb5, 0xad, 0xa4, 0xa4, 0x9a, 0x89, 0x7d, 0x78, 0x73, 0x6d, 0x6e,
+			0x6f, 0x75, 0x81, 0x8b, 0x92, 0x98, 0xa1, 0xa4, 0xa0, 0x9d, 0x97,
+			0x8d, 0x81, 0x77, 0x6d, 0x65, 0x62, 0x64, 0x68, 0x70, 0x7a, 0x86,
+			0x8f, 0x97, 0x9f, 0xa1, 0x9f, 0x99, 0x8f, 0x84, 0x7e, 0x76, 0x6d,
+			0x66, 0x66, 0x69, 0x68, 0x6b, 0x6e, 0x71, 0x73, 0x72, 0x71, 0x6c,
+			0x6a, 0x66, 0x5e, 0x5b, 0x56, 0x51, 0x50, 0x4f, 0x4b, 0x49, 0x4c,
+			0x59, 0x79, 0x95, 0x9d, 0xa3, 0xb1, 0xbd, 0xc0, 0xbc, 0xad, 0xa1,
+			0x9c, 0x93, 0x82, 0x6e, 0x67, 0x6b, 0x6c, 0x6a, 0x6e, 0x77, 0x83,
+			0x8f, 0x9b, 0x9e, 0x9d, 0xa2, 0xa1, 0x9a, 0x91, 0x87, 0x7b, 0x72,
+			0x6c, 0x66, 0x61, 0x64, 0x6c, 0x73, 0x7a, 0x84, 0x8e, 0x97, 0x9c,
+			0x9f, 0x9e, 0x9a, 0x91, 0x86, 0x7d, 0x77, 0x73, 0x6f, 0x6b, 0x6b,
+			0x70, 0x75, 0x77, 0x75, 0x77, 0x7a, 0x7a, 0x78, 0x73, 0x70, 0x6a,
+			0x65, 0x62, 0x5a, 0x53, 0x53, 0x57, 0x57, 0x52, 0x54, 0x59, 0x56,
+			0x56, 0x58, 0x7a, 0xaa, 0xad, 0xa3, 0xa5, 0xb8, 0xc0, 0xb9, 0xb2,
+			0x91, 0x80, 0x8f, 0x8e, 0x76, 0x5e, 0x63, 0x6c, 0x76, 0x82, 0x7c,
+			0x7b, 0x89, 0xa3, 0xac, 0x9b, 0x95, 0x92, 0x92, 0x95, 0x8a, 0x74,
+			0x64, 0x6d, 0x76, 0x6f, 0x6a, 0x68, 0x71, 0x7f, 0x89, 0x88, 0x82,
+			0x8b, 0x96, 0x98, 0x94, 0x8b, 0x87, 0x84, 0x82, 0x7e, 0x76, 0x74,
+			0x74, 0x77, 0x7a, 0x7a, 0x79, 0x7a, 0x7f, 0x83, 0x80, 0x7e, 0x7c,
+			0x7a, 0x77, 0x74, 0x6e, 0x66, 0x65, 0x68, 0x66, 0x63, 0x63, 0x62,
+			0x65, 0x6b, 0x6c, 0x68, 0x67, 0x6a, 0x6b, 0x67, 0x61, 0x60, 0x73,
+			0x94, 0xa3, 0x9f, 0x9b, 0xa1, 0xab, 0xb6, 0xb6, 0xa2, 0x8e, 0x8d,
+			0x90, 0x8a, 0x7d, 0x70, 0x68, 0x70, 0x81, 0x82, 0x79, 0x79, 0x85,
+			0x95, 0x9e, 0xa0, 0x99, 0x90, 0x91, 0x95, 0x90, 0x83, 0x78, 0x70,
+			0x69, 0x6d, 0x71, 0x6d, 0x69, 0x6f, 0x7a, 0x82, 0x87, 0x86, 0x82,
+			0x86, 0x91, 0x95, 0x90, 0x85, 0x7e, 0x7d, 0x81, 0x82, 0x7d, 0x78,
+			0x74, 0x77, 0x7c, 0x7f, 0x7d, 0x79, 0x7a, 0x7e, 0x7f, 0x7b, 0x77,
+			0x73, 0x71, 0x73, 0x72, 0x6f, 0x6d, 0x6d, 0x6e, 0x6d, 0x6b, 0x6a,
+			0x6b, 0x6b, 0x6c, 0x6d, 0x6c, 0x6a, 0x69, 0x69, 0x67, 0x66, 0x64,
+			0x67, 0x79, 0x8f, 0x9f, 0xa6, 0xa7, 0xa6, 0xa9, 0xb4, 0xb8, 0xae,
+			0x9e, 0x91, 0x89, 0x85, 0x85, 0x7d, 0x70, 0x6b, 0x6e, 0x76, 0x7d,
+			0x83, 0x86, 0x88, 0x8f, 0x97, 0x9c, 0x9b, 0x96, 0x8e, 0x84, 0x7d,
+			0x79, 0x72, 0x6c, 0x67, 0x64, 0x65, 0x6c, 0x76, 0x7b, 0x7f, 0x84,
+			0x8a, 0x8f, 0x95, 0x97, 0x94, 0x92, 0x8e, 0x87, 0x83, 0x80, 0x7c,
+			0x77, 0x72, 0x6e, 0x6c, 0x71, 0x79, 0x7d, 0x7d, 0x7c, 0x7b, 0x7d,
+			0x81, 0x81, 0x7c, 0x75, 0x70, 0x6d, 0x6c, 0x6c, 0x6c, 0x69, 0x68,
+			0x69, 0x6a, 0x6d, 0x6f, 0x72, 0x72, 0x71, 0x72, 0x74, 0x75, 0x73,
+			0x71, 0x70, 0x6d, 0x6b, 0x6d, 0x7c, 0x92, 0x9f, 0xa7, 0xa8, 0xa5,
+			0xa4, 0xa9, 0xb3, 0xb2, 0xa9, 0x9d, 0x8d, 0x81, 0x7d, 0x7e, 0x7c,
+			0x79, 0x77, 0x73, 0x74, 0x7c, 0x86, 0x8f, 0x94, 0x97, 0x93, 0x8e,
+			0x8c, 0x8b, 0x88, 0x82, 0x7b, 0x70, 0x68, 0x67, 0x67, 0x6b, 0x71,
+			0x77, 0x7b, 0x80, 0x86, 0x8c, 0x91, 0x95, 0x94, 0x90, 0x8b, 0x86,
+			0x81, 0x7d, 0x79, 0x74, 0x6f, 0x6d, 0x6e, 0x6f, 0x71, 0x75, 0x78,
+			0x79, 0x7b, 0x7d, 0x7f, 0x7f, 0x7e, 0x7a, 0x75, 0x73, 0x71, 0x71,
+			0x71, 0x6f, 0x6d, 0x6b, 0x6c, 0x6d, 0x6e, 0x70, 0x73, 0x76, 0x78,
+			0x79, 0x79, 0x77, 0x75, 0x75, 0x74, 0x74, 0x73, 0x72, 0x72, 0x73,
+			0x7d, 0x90, 0x9e, 0xa8, 0xac, 0xaa, 0xa6, 0xa5, 0xaa, 0xac, 0xab,
+			0xa5, 0x99, 0x8a, 0x7d, 0x77, 0x75, 0x77, 0x7a, 0x79, 0x76, 0x74,
+			0x77, 0x7e, 0x86, 0x8f, 0x93, 0x93, 0x8f, 0x89, 0x83, 0x7e, 0x7c,
+			0x7a, 0x78, 0x74, 0x6f, 0x6c, 0x6d, 0x71, 0x78, 0x80, 0x87, 0x8a,
+			0x8b, 0x8b, 0x89, 0x88, 0x87, 0x87, 0x85, 0x81, 0x7c, 0x75, 0x70,
+			0x6f, 0x70, 0x72, 0x74, 0x77, 0x77, 0x77, 0x77, 0x79, 0x7b, 0x7c,
+			0x7d, 0x7c, 0x7a, 0x76, 0x72, 0x70, 0x70, 0x71, 0x72, 0x72, 0x72,
+			0x73, 0x74, 0x75, 0x78, 0x7c, 0x7e, 0x7f, 0x7e, 0x7d, 0x7c, 0x79,
+			0x79, 0x78, 0x76, 0x75, 0x74, 0x74, 0x73, 0x72, 0x74, 0x7c, 0x89,
+			0x97, 0xa3, 0xab, 0xac, 0xa8, 0xa3, 0xa0, 0x9e, 0x9f, 0x9e, 0x9b,
+			0x93, 0x88, 0x7f, 0x79, 0x78, 0x7b, 0x7f, 0x83, 0x83, 0x81, 0x80,
+			0x80, 0x81, 0x84, 0x85, 0x84, 0x81, 0x7b, 0x75, 0x71, 0x71, 0x73,
+			0x77, 0x7a, 0x7b, 0x7b, 0x7b, 0x7c, 0x80, 0x82, 0x84, 0x84, 0x82,
+			0x80, 0x7e, 0x7c, 0x7b, 0x7b, 0x7c, 0x7b, 0x7a, 0x79, 0x78, 0x78,
+			0x78, 0x78, 0x78, 0x79, 0x79, 0x78, 0x77, 0x76, 0x75, 0x75, 0x76,
+			0x76, 0x77, 0x77, 0x77, 0x76, 0x77, 0x77, 0x77, 0x77, 0x77, 0x76,
+			0x74, 0x74, 0x75, 0x76, 0x78, 0x79, 0x7a, 0x7a, 0x7b, 0x7b, 0x7c,
+			0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x79, 0x78, 0x7c, 0x85,
+			0x8f, 0x99, 0xa0, 0xa4, 0xa2, 0x9f, 0x9c, 0x9b, 0x9b, 0x9d, 0x9e,
+			0x9b, 0x96, 0x90, 0x89, 0x84, 0x83, 0x83, 0x85, 0x85, 0x85, 0x83,
+			0x81, 0x7f, 0x7e, 0x7e, 0x7f, 0x7f, 0x7c, 0x79, 0x75, 0x72, 0x72,
+			0x74, 0x76, 0x7a, 0x7c, 0x7c, 0x7b, 0x7a, 0x7a, 0x7a, 0x7c, 0x7e,
+			0x7f, 0x7f, 0x7f, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c,
+			0x7a, 0x79, 0x78, 0x78, 0x79, 0x79, 0x79, 0x78, 0x78, 0x77, 0x77,
+			0x77, 0x77, 0x77, 0x77, 0x78, 0x78, 0x78, 0x79, 0x79, 0x79, 0x78,
+			0x78, 0x78, 0x78, 0x79, 0x79, 0x7a, 0x7a, 0x79, 0x79, 0x79, 0x7a,
+			0x7a, 0x79, 0x79, 0x79, 0x79, 0x79, 0x7a, 0x7b, 0x7c, 0x7c, 0x7c,
+			0x7c, 0x7e, 0x7f, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x81,
+			0x82, 0x84, 0x85, 0x87, 0x89, 0x8a, 0x8b, 0x8d, 0x8e, 0x8e, 0x8e,
+			0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8d, 0x8c, 0x8b, 0x8a, 0x89,
+			0x88, 0x87, 0x86, 0x86, 0x85, 0x84, 0x83, 0x82, 0x81, 0x80, 0x80,
+			0x7f, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7b, 0x7a, 0x7a, 0x79, 0x79,
+			0x78, 0x78, 0x77, 0x77, 0x77, 0x77, 0x78, 0x79, 0x7a, 0x7a, 0x7a,
+			0x7a, 0x7a, 0x7a, 0x79, 0x79, 0x78, 0x78, 0x77, 0x77, 0x77, 0x78,
+			0x78, 0x78, 0x78, 0x77, 0x77, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7b,
+			0x7b, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7f,
+			0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80,
+			0x80, 0x81, 0x80, 0x7f, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x81, 0x81, 0x81, 0x82, 0x82, 0x83, 0x83, 0x84, 0x84, 0x84,
+			0x84, 0x83, 0x83, 0x83, 0x84, 0x85, 0x85, 0x86, 0x86, 0x85, 0x84,
+			0x84, 0x84, 0x83, 0x83, 0x83, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+		},
+		{ // 3
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x7e, 0x7f, 0x7f, 0x80, 0x81, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7e, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x80,
+			0x80, 0x81, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x81, 0x80, 0x7e, 0x80,
+			0x7f, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f,
+			0x81, 0x80, 0x7d, 0x7e, 0x80, 0x7e, 0x80, 0x81, 0x7f, 0x80, 0x7f,
+			0x7d, 0x81, 0x83, 0x7f, 0x7e, 0x80, 0x7f, 0x7e, 0x81, 0x7e, 0x7e,
+			0x80, 0x7f, 0x81, 0x80, 0x7f, 0x7f, 0x7e, 0x82, 0x81, 0x7e, 0x80,
+			0x7f, 0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x81, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x81, 0x7e, 0x7e, 0x80,
+			0x80, 0x82, 0x81, 0x7e, 0x80, 0x81, 0x80, 0x80, 0x7e, 0x7d, 0x7f,
+			0x7e, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x82, 0x7f, 0x80,
+			0x80, 0x7e, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x80, 0x7f, 0x7e, 0x7f, 0x81, 0x7f,
+			0x81, 0x80, 0x80, 0x81, 0x7e, 0x80, 0x7d, 0x7e, 0x7f, 0x7b, 0x7f,
+			0x7e, 0x7f, 0x80, 0x7f, 0x82, 0x7e, 0x7e, 0x82, 0x7f, 0x81, 0x83,
+			0x81, 0x82, 0x84, 0x85, 0x80, 0x80, 0x7e, 0x7b, 0x7d, 0x7d, 0x7e,
+			0x80, 0x83, 0x81, 0x7e, 0x81, 0x81, 0x7e, 0x7f, 0x81, 0x7e, 0x80,
+			0x82, 0x7e, 0x7f, 0x80, 0x7c, 0x7d, 0x7e, 0x7f, 0x7d, 0x84, 0x89,
+			0x7f, 0x7e, 0x82, 0x80, 0x81, 0x80, 0x84, 0x82, 0x7e, 0x7d, 0x75,
+			0x78, 0x80, 0x7b, 0x7c, 0x82, 0x83, 0x7e, 0x7d, 0x83, 0x81, 0x83,
+			0x86, 0x85, 0x84, 0x83, 0x85, 0x86, 0x84, 0x84, 0x88, 0x8b, 0x8a,
+			0x89, 0x88, 0x84, 0x83, 0x84, 0x84, 0x80, 0x80, 0x82, 0x87, 0x86,
+			0x82, 0x87, 0x84, 0x7e, 0x78, 0x74, 0x70, 0x69, 0x67, 0x6c, 0x70,
+			0x70, 0x6f, 0x6e, 0x71, 0x73, 0x6e, 0x6f, 0x71, 0x6d, 0x6f, 0x71,
+			0x6f, 0x6a, 0x6d, 0x77, 0x82, 0x8a, 0x90, 0x97, 0x98, 0x99, 0x9c,
+			0x9c, 0x9a, 0x97, 0x97, 0x97, 0x94, 0x93, 0x92, 0x90, 0x91, 0x8f,
+			0x90, 0x8f, 0x8b, 0x88, 0x85, 0x83, 0x80, 0x7e, 0x79, 0x76, 0x74,
+			0x70, 0x6d, 0x6b, 0x69, 0x66, 0x63, 0x65, 0x66, 0x66, 0x62, 0x5e,
+			0x5d, 0x5c, 0x59, 0x57, 0x5b, 0x66, 0x77, 0x89, 0x92, 0x92, 0x93,
+			0x99, 0xa0, 0xa3, 0x9f, 0x99, 0x95, 0x93, 0x91, 0x8c, 0x85, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x82, 0x86, 0x89, 0x8a, 0x8d, 0x91, 0x97,
+			0x9b, 0x9b, 0x97, 0x90, 0x8a, 0x88, 0x87, 0x81, 0x7b, 0x77, 0x76,
+			0x75, 0x74, 0x75, 0x74, 0x71, 0x6c, 0x69, 0x6a, 0x6c, 0x68, 0x62,
+			0x5d, 0x5a, 0x5a, 0x58, 0x56, 0x5b, 0x69, 0x7b, 0x8b, 0x93, 0x92,
+			0x91, 0x94, 0x9b, 0xa1, 0xa0, 0x9d, 0x99, 0x94, 0x8f, 0x88, 0x82,
+			0x80, 0x80, 0x81, 0x7e, 0x7d, 0x7f, 0x84, 0x88, 0x8d, 0x90, 0x93,
+			0x96, 0x97, 0x95, 0x91, 0x8e, 0x8b, 0x87, 0x82, 0x7d, 0x79, 0x75,
+			0x73, 0x72, 0x6f, 0x6c, 0x6a, 0x69, 0x6a, 0x6b, 0x6b, 0x69, 0x66,
+			0x63, 0x61, 0x5e, 0x59, 0x55, 0x56, 0x62, 0x76, 0x8b, 0x99, 0x9a,
+			0x93, 0x8c, 0x8d, 0x98, 0xa5, 0xaa, 0xa6, 0x9a, 0x8d, 0x84, 0x80,
+			0x80, 0x82, 0x84, 0x82, 0x7e, 0x7b, 0x7a, 0x7d, 0x82, 0x89, 0x91,
+			0x97, 0x9b, 0x9b, 0x96, 0x91, 0x8d, 0x8b, 0x89, 0x85, 0x7e, 0x76,
+			0x70, 0x70, 0x72, 0x72, 0x6f, 0x6c, 0x6a, 0x69, 0x68, 0x65, 0x61,
+			0x5f, 0x5d, 0x5b, 0x59, 0x55, 0x53, 0x55, 0x60, 0x75, 0x8c, 0x9c,
+			0x9f, 0x98, 0x8e, 0x8d, 0x98, 0xa5, 0xac, 0xa8, 0x9b, 0x8b, 0x7f,
+			0x7c, 0x7f, 0x83, 0x84, 0x81, 0x7a, 0x74, 0x74, 0x7a, 0x85, 0x8f,
+			0x96, 0x9a, 0x9c, 0x9b, 0x98, 0x95, 0x91, 0x8e, 0x8a, 0x84, 0x7c,
+			0x75, 0x70, 0x70, 0x70, 0x6f, 0x6b, 0x67, 0x63, 0x62, 0x62, 0x60,
+			0x5d, 0x5c, 0x5b, 0x59, 0x56, 0x51, 0x50, 0x56, 0x64, 0x7a, 0x90,
+			0x9e, 0x9f, 0x98, 0x90, 0x90, 0x9a, 0xa6, 0xac, 0xa7, 0x98, 0x87,
+			0x7b, 0x78, 0x7b, 0x80, 0x83, 0x7f, 0x79, 0x75, 0x76, 0x7f, 0x8a,
+			0x94, 0x9b, 0x9e, 0x9e, 0x9d, 0x9d, 0x9b, 0x97, 0x91, 0x88, 0x7f,
+			0x76, 0x70, 0x6c, 0x69, 0x66, 0x63, 0x61, 0x5f, 0x5d, 0x5b, 0x59,
+			0x57, 0x56, 0x56, 0x56, 0x56, 0x54, 0x51, 0x50, 0x57, 0x69, 0x85,
+			0x9e, 0xa9, 0xa3, 0x94, 0x8a, 0x8d, 0x9c, 0xaa, 0xad, 0xa2, 0x8d,
+			0x7a, 0x71, 0x74, 0x7d, 0x83, 0x83, 0x7d, 0x77, 0x77, 0x7d, 0x89,
+			0x96, 0xa1, 0xa8, 0xa8, 0xa4, 0x9e, 0x9a, 0x97, 0x94, 0x8e, 0x83,
+			0x76, 0x6c, 0x66, 0x64, 0x64, 0x63, 0x5f, 0x59, 0x54, 0x52, 0x56,
+			0x5b, 0x5a, 0x55, 0x52, 0x53, 0x56, 0x59, 0x54, 0x4e, 0x4e, 0x5b,
+			0x76, 0x94, 0xa8, 0xa8, 0x9b, 0x8e, 0x8d, 0x98, 0xa6, 0xac, 0xa5,
+			0x93, 0x80, 0x74, 0x73, 0x79, 0x7f, 0x80, 0x7d, 0x79, 0x78, 0x7d,
+			0x87, 0x93, 0x9e, 0xa5, 0xa7, 0xa4, 0x9e, 0x98, 0x92, 0x8e, 0x89,
+			0x81, 0x77, 0x6e, 0x67, 0x65, 0x64, 0x62, 0x5e, 0x5a, 0x58, 0x59,
+			0x5c, 0x5e, 0x5f, 0x5e, 0x5c, 0x5a, 0x59, 0x58, 0x55, 0x4f, 0x4b,
+			0x4f, 0x61, 0x7f, 0x9b, 0xa7, 0x9f, 0x91, 0x8c, 0x99, 0xad, 0xb3,
+			0xa6, 0x8d, 0x7c, 0x7b, 0x85, 0x8a, 0x83, 0x75, 0x6a, 0x6c, 0x79,
+			0x87, 0x8e, 0x8c, 0x89, 0x8d, 0x9b, 0xab, 0xb3, 0xae, 0x9e, 0x8f,
+			0x86, 0x85, 0x83, 0x7d, 0x73, 0x69, 0x62, 0x5f, 0x60, 0x62, 0x64,
+			0x62, 0x5d, 0x5b, 0x5b, 0x5a, 0x5c, 0x5f, 0x63, 0x63, 0x61, 0x5c,
+			0x57, 0x54, 0x50, 0x4c, 0x4c, 0x57, 0x70, 0x8f, 0xa3, 0xa3, 0x96,
+			0x8d, 0x93, 0xa6, 0xb3, 0xab, 0x95, 0x81, 0x7c, 0x83, 0x88, 0x83,
+			0x77, 0x6d, 0x6e, 0x78, 0x84, 0x8a, 0x8b, 0x8b, 0x90, 0x9a, 0xa6,
+			0xab, 0xa7, 0x9d, 0x94, 0x8e, 0x89, 0x82, 0x79, 0x72, 0x6f, 0x6c,
+			0x68, 0x61, 0x5d, 0x5e, 0x61, 0x62, 0x5f, 0x5c, 0x5f, 0x66, 0x6a,
+			0x64, 0x5c, 0x5a, 0x5f, 0x64, 0x62, 0x5b, 0x55, 0x53, 0x51, 0x50,
+			0x55, 0x69, 0x87, 0x9c, 0x9a, 0x8a, 0x87, 0x9b, 0xb5, 0xb9, 0xa3,
+			0x89, 0x81, 0x90, 0x9c, 0x92, 0x78, 0x66, 0x6c, 0x7e, 0x85, 0x7c,
+			0x73, 0x7a, 0x8d, 0x9a, 0x9a, 0x96, 0x9a, 0xa4, 0xa7, 0x9d, 0x8f,
+			0x88, 0x87, 0x85, 0x7d, 0x73, 0x6d, 0x6d, 0x6d, 0x6b, 0x68, 0x67,
+			0x69, 0x6a, 0x68, 0x65, 0x62, 0x62, 0x63, 0x68, 0x6b, 0x67, 0x62,
+			0x61, 0x61, 0x5d, 0x58, 0x57, 0x5d, 0x66, 0x68, 0x65, 0x69, 0x7c,
+			0x97, 0xa3, 0x9c, 0x94, 0x98, 0xa3, 0xa5, 0x99, 0x8b, 0x85, 0x84,
+			0x80, 0x7b, 0x79, 0x77, 0x74, 0x76, 0x7c, 0x84, 0x8b, 0x8c, 0x8d,
+			0x91, 0x96, 0x99, 0x97, 0x93, 0x8e, 0x8c, 0x8c, 0x87, 0x7e, 0x78,
+			0x7c, 0x83, 0x82, 0x7b, 0x77, 0x7d, 0x81, 0x7b, 0x72, 0x6e, 0x6d,
+			0x66, 0x5c, 0x5c, 0x62, 0x6a, 0x71, 0x77, 0x77, 0x79, 0x80, 0x80,
+			0x77, 0x6f, 0x6e, 0x6a, 0x60, 0x59, 0x59, 0x5a, 0x52, 0x47, 0x45,
+			0x4b, 0x5e, 0x79, 0x89, 0x88, 0x8c, 0xa3, 0xb7, 0xb1, 0x9c, 0x9b,
+			0xab, 0xa9, 0x8e, 0x7b, 0x83, 0x88, 0x79, 0x69, 0x6f, 0x7f, 0x80,
+			0x79, 0x7d, 0x8d, 0x94, 0x90, 0x8e, 0x92, 0x94, 0x8f, 0x87, 0x84,
+			0x86, 0x86, 0x7f, 0x78, 0x7a, 0x7f, 0x82, 0x83, 0x87, 0x8e, 0x90,
+			0x8e, 0x8e, 0x8d, 0x87, 0x81, 0x7b, 0x73, 0x6c, 0x65, 0x5e, 0x5a,
+			0x59, 0x59, 0x57, 0x5b, 0x65, 0x6e, 0x76, 0x7a, 0x79, 0x74, 0x6d,
+			0x65, 0x5d, 0x59, 0x59, 0x58, 0x56, 0x57, 0x5b, 0x5a, 0x58, 0x5a,
+			0x56, 0x54, 0x74, 0x95, 0x88, 0x7e, 0x9e, 0xbe, 0xa6, 0x8b, 0xa6,
+			0xbc, 0xa0, 0x82, 0x93, 0xa1, 0x85, 0x6f, 0x7a, 0x85, 0x79, 0x72,
+			0x7c, 0x85, 0x86, 0x84, 0x88, 0x8d, 0x91, 0x92, 0x8a, 0x87, 0x88,
+			0x84, 0x79, 0x75, 0x7a, 0x77, 0x6f, 0x72, 0x7d, 0x82, 0x82, 0x8a,
+			0x96, 0x9b, 0x98, 0x97, 0x9b, 0x97, 0x8c, 0x86, 0x83, 0x7d, 0x74,
+			0x6f, 0x6e, 0x6b, 0x66, 0x63, 0x64, 0x62, 0x60, 0x61, 0x65, 0x63,
+			0x61, 0x63, 0x66, 0x69, 0x68, 0x63, 0x63, 0x65, 0x62, 0x61, 0x65,
+			0x66, 0x62, 0x62, 0x64, 0x66, 0x64, 0x60, 0x52, 0x67, 0x9a, 0x84,
+			0x70, 0xa0, 0xba, 0x9d, 0x91, 0xb8, 0xb9, 0x96, 0x94, 0xa5, 0x9d,
+			0x82, 0x80, 0x85, 0x7d, 0x74, 0x73, 0x7b, 0x78, 0x76, 0x7b, 0x80,
+			0x84, 0x84, 0x8a, 0x8d, 0x8c, 0x8a, 0x87, 0x86, 0x7f, 0x79, 0x76,
+			0x73, 0x71, 0x71, 0x74, 0x77, 0x7b, 0x7f, 0x83, 0x86, 0x88, 0x8b,
+			0x8d, 0x8f, 0x90, 0x8e, 0x8d, 0x8d, 0x8a, 0x84, 0x82, 0x82, 0x7d,
+			0x7a, 0x7d, 0x7c, 0x77, 0x78, 0x7a, 0x78, 0x76, 0x75, 0x74, 0x75,
+			0x71, 0x6c, 0x6d, 0x6e, 0x6b, 0x68, 0x6b, 0x6c, 0x6a, 0x6d, 0x6d,
+			0x69, 0x6c, 0x6f, 0x6a, 0x6b, 0x6f, 0x6c, 0x65, 0x66, 0x5f, 0x5f,
+			0x83, 0x7c, 0x6f, 0x93, 0xa0, 0x94, 0x96, 0xac, 0xaa, 0x9d, 0xa0,
+			0xa1, 0x9c, 0x8c, 0x84, 0x88, 0x7e, 0x71, 0x74, 0x79, 0x73, 0x70,
+			0x7b, 0x81, 0x7e, 0x85, 0x8c, 0x8a, 0x8b, 0x8d, 0x8e, 0x89, 0x82,
+			0x85, 0x82, 0x7a, 0x76, 0x77, 0x77, 0x73, 0x72, 0x76, 0x7b, 0x7a,
+			0x7d, 0x87, 0x85, 0x85, 0x8b, 0x89, 0x87, 0x87, 0x87, 0x85, 0x85,
+			0x85, 0x85, 0x87, 0x83, 0x81, 0x82, 0x7f, 0x7d, 0x7e, 0x7f, 0x7b,
+			0x78, 0x79, 0x79, 0x75, 0x75, 0x75, 0x75, 0x75, 0x72, 0x72, 0x73,
+			0x70, 0x6e, 0x6f, 0x6e, 0x6c, 0x6c, 0x6b, 0x6a, 0x6c, 0x6d, 0x6e,
+			0x6c, 0x6b, 0x68, 0x66, 0x63, 0x5e, 0x7e, 0x7a, 0x6a, 0x8f, 0x9a,
+			0x8c, 0x95, 0xa9, 0xa0, 0x9a, 0xa2, 0xa1, 0x9b, 0x92, 0x92, 0x91,
+			0x85, 0x7c, 0x80, 0x7f, 0x73, 0x76, 0x7c, 0x7a, 0x79, 0x81, 0x85,
+			0x81, 0x86, 0x8b, 0x8b, 0x89, 0x88, 0x89, 0x86, 0x7f, 0x80, 0x7f,
+			0x77, 0x79, 0x79, 0x77, 0x77, 0x78, 0x7a, 0x7c, 0x7e, 0x80, 0x82,
+			0x83, 0x85, 0x86, 0x87, 0x88, 0x87, 0x88, 0x87, 0x84, 0x84, 0x84,
+			0x80, 0x7d, 0x7f, 0x7a, 0x76, 0x78, 0x76, 0x74, 0x74, 0x75, 0x75,
+			0x74, 0x76, 0x75, 0x77, 0x77, 0x78, 0x7a, 0x77, 0x78, 0x7a, 0x77,
+			0x76, 0x75, 0x74, 0x72, 0x71, 0x74, 0x72, 0x74, 0x73, 0x71, 0x71,
+			0x6d, 0x6c, 0x68, 0x71, 0x7a, 0x71, 0x7d, 0x8a, 0x87, 0x89, 0x96,
+			0x98, 0x95, 0x9b, 0x9f, 0x9c, 0x98, 0x99, 0x98, 0x90, 0x8c, 0x8d,
+			0x88, 0x80, 0x81, 0x82, 0x7b, 0x7b, 0x7f, 0x7e, 0x7d, 0x7f, 0x83,
+			0x81, 0x81, 0x84, 0x83, 0x83, 0x82, 0x82, 0x81, 0x7f, 0x7e, 0x7e,
+			0x7c, 0x7a, 0x7c, 0x7b, 0x7a, 0x7c, 0x7d, 0x7d, 0x7e, 0x81, 0x82,
+			0x82, 0x84, 0x85, 0x84, 0x84, 0x83, 0x82, 0x80, 0x7e, 0x7d, 0x7b,
+			0x79, 0x79, 0x76, 0x75, 0x75, 0x74, 0x73, 0x73, 0x75, 0x74, 0x74,
+			0x77, 0x77, 0x75, 0x77, 0x77, 0x76, 0x76, 0x76, 0x75, 0x74, 0x72,
+			0x78, 0x77, 0x77, 0x7d, 0x7e, 0x7d, 0x79, 0x78, 0x75, 0x71, 0x6f,
+			0x71, 0x7c, 0x75, 0x78, 0x87, 0x83, 0x84, 0x8d, 0x90, 0x8e, 0x93,
+			0x96, 0x95, 0x95, 0x95, 0x95, 0x91, 0x90, 0x8f, 0x8b, 0x88, 0x87,
+			0x86, 0x83, 0x82, 0x83, 0x82, 0x81, 0x82, 0x81, 0x80, 0x80, 0x81,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7c, 0x7c, 0x7c, 0x7a, 0x7a, 0x7a, 0x7a,
+			0x7a, 0x7a, 0x7b, 0x7c, 0x7c, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x7d,
+			0x7d, 0x7c, 0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c,
+			0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d,
+			0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e,
+			0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c,
+			0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x7f, 0x80, 0x80, 0x80,
+			0x82, 0x82, 0x82, 0x83, 0x84, 0x84, 0x84, 0x86, 0x85, 0x86, 0x87,
+			0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x87, 0x87, 0x86,
+			0x84, 0x84, 0x82, 0x80, 0x7f, 0x7d, 0x7c, 0x7a, 0x79, 0x79, 0x78,
+			0x77, 0x77, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x77, 0x77, 0x78,
+			0x78, 0x79, 0x7a, 0x79, 0x7b, 0x7b, 0x7a, 0x7c, 0x7b, 0x7b, 0x7d,
+			0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x7e, 0x7d, 0x7c, 0x7e, 0x7e, 0x7c,
+			0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d,
+			0x7e, 0x7d, 0x7e, 0x7f, 0x7e, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x81, 0x82, 0x83, 0x85, 0x86, 0x86, 0x88, 0x89, 0x8a,
+			0x8b, 0x8c, 0x8c, 0x8d, 0x8d, 0x8d, 0x8d, 0x8d, 0x8b, 0x8b, 0x8a,
+			0x89, 0x88, 0x87, 0x86, 0x85, 0x85, 0x83, 0x82, 0x81, 0x80, 0x7e,
+			0x7d, 0x7c, 0x7b, 0x79, 0x79, 0x78, 0x77, 0x77, 0x77, 0x77, 0x77,
+			0x77, 0x77, 0x77, 0x78, 0x78, 0x78, 0x79, 0x79, 0x7a, 0x7a, 0x7a,
+			0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7c, 0x7d, 0x7c, 0x7e, 0x7f, 0x7e,
+			0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7c,
+			0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x7f,
+			0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x81, 0x81, 0x82, 0x82,
+			0x83, 0x83, 0x83, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
+			0x84, 0x84, 0x84, 0x84, 0x83, 0x83, 0x83, 0x82, 0x82, 0x81, 0x81,
+			0x81, 0x80, 0x80, 0x80, 0x7f, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d,
+			0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x80, 0x80,
+		},
+		{ // 4
+			0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x80, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x82, 0x80, 0x7f,
+			0x7f, 0x7e, 0x7e, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7e, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x7f, 0x80, 0x81, 0x80, 0x7f, 0x7f, 0x80, 0x80,
+			0x80, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x7e, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x81, 0x80, 0x7f, 0x7f, 0x80,
+			0x81, 0x80, 0x7f, 0x80, 0x81, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x7e, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x82, 0x7f, 0x7e,
+			0x80, 0x80, 0x80, 0x7f, 0x7d, 0x7f, 0x7f, 0x80, 0x81, 0x80, 0x80,
+			0x7f, 0x80, 0x81, 0x7e, 0x80, 0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x81,
+			0x7e, 0x80, 0x81, 0x7d, 0x80, 0x7f, 0x80, 0x81, 0x7e, 0x80, 0x81,
+			0x81, 0x82, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7e, 0x80, 0x80, 0x7f,
+			0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x81, 0x7d, 0x7c, 0x7e, 0x82, 0x82, 0x80, 0x7f, 0x7e, 0x80,
+			0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x82, 0x81, 0x7f, 0x7e, 0x80, 0x7f,
+			0x80, 0x81, 0x7f, 0x7e, 0x7f, 0x81, 0x80, 0x7d, 0x7e, 0x80, 0x80,
+			0x82, 0x80, 0x7c, 0x80, 0x81, 0x7f, 0x7f, 0x7f, 0x7e, 0x80, 0x80,
+			0x80, 0x7e, 0x7e, 0x80, 0x7f, 0x80, 0x7e, 0x7e, 0x80, 0x82, 0x81,
+			0x7f, 0x81, 0x82, 0x7f, 0x7f, 0x82, 0x7f, 0x7e, 0x7f, 0x7e, 0x7e,
+			0x80, 0x83, 0x81, 0x80, 0x7f, 0x7d, 0x80, 0x81, 0x7f, 0x80, 0x80,
+			0x7e, 0x7e, 0x7e, 0x80, 0x81, 0x7f, 0x7e, 0x7e, 0x7f, 0x83, 0x82,
+			0x81, 0x80, 0x7f, 0x80, 0x7e, 0x7d, 0x80, 0x82, 0x81, 0x7d, 0x7e,
+			0x7e, 0x7d, 0x7d, 0x80, 0x82, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7e,
+			0x80, 0x83, 0x81, 0x80, 0x80, 0x80, 0x81, 0x7f, 0x80, 0x80, 0x7e,
+			0x7e, 0x7f, 0x7f, 0x7e, 0x7e, 0x80, 0x83, 0x81, 0x7e, 0x80, 0x81,
+			0x81, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x7e, 0x7e, 0x82, 0x80,
+			0x7d, 0x7f, 0x83, 0x81, 0x7f, 0x7c, 0x7e, 0x83, 0x80, 0x80, 0x80,
+			0x81, 0x80, 0x7b, 0x7a, 0x7f, 0x82, 0x83, 0x82, 0x7d, 0x7e, 0x7f,
+			0x7f, 0x80, 0x7e, 0x7f, 0x81, 0x81, 0x80, 0x7f, 0x7d, 0x7d, 0x7d,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x81, 0x80, 0x7f, 0x7f, 0x7e, 0x7d,
+			0x7f, 0x7e, 0x7e, 0x7d, 0x7b, 0x7b, 0x7c, 0x80, 0x81, 0x81, 0x82,
+			0x83, 0x86, 0x88, 0x8a, 0x8d, 0x8e, 0x8c, 0x8b, 0x8a, 0x87, 0x86,
+			0x85, 0x85, 0x85, 0x85, 0x85, 0x82, 0x7f, 0x7d, 0x7d, 0x7d, 0x7f,
+			0x83, 0x82, 0x7d, 0x79, 0x76, 0x72, 0x6f, 0x6c, 0x6a, 0x6b, 0x6c,
+			0x6c, 0x6c, 0x6a, 0x65, 0x62, 0x63, 0x62, 0x60, 0x5e, 0x5e, 0x63,
+			0x6b, 0x7a, 0x8e, 0xa1, 0xac, 0xad, 0xae, 0xa9, 0xa0, 0x97, 0x8d,
+			0x87, 0x84, 0x82, 0x83, 0x83, 0x83, 0x81, 0x7f, 0x7d, 0x7b, 0x7d,
+			0x80, 0x83, 0x89, 0x8c, 0x90, 0x92, 0x93, 0x91, 0x8c, 0x89, 0x86,
+			0x84, 0x84, 0x84, 0x83, 0x80, 0x7e, 0x7a, 0x76, 0x74, 0x71, 0x70,
+			0x6f, 0x6d, 0x6a, 0x66, 0x63, 0x5f, 0x5c, 0x5a, 0x58, 0x57, 0x55,
+			0x55, 0x5e, 0x6c, 0x80, 0x98, 0xad, 0xb8, 0xb9, 0xb4, 0xa9, 0x99,
+			0x8a, 0x7d, 0x75, 0x74, 0x75, 0x79, 0x7e, 0x80, 0x81, 0x80, 0x7f,
+			0x80, 0x83, 0x88, 0x8f, 0x96, 0x9a, 0x9b, 0x97, 0x8f, 0x86, 0x7d,
+			0x76, 0x74, 0x76, 0x7b, 0x80, 0x85, 0x87, 0x85, 0x83, 0x80, 0x7d,
+			0x7c, 0x7b, 0x7a, 0x78, 0x74, 0x6f, 0x69, 0x64, 0x60, 0x5d, 0x5b,
+			0x5c, 0x5d, 0x5f, 0x62, 0x67, 0x71, 0x7e, 0x8f, 0xa0, 0xae, 0xb8,
+			0xb9, 0xb2, 0xa5, 0x95, 0x86, 0x79, 0x72, 0x6f, 0x71, 0x75, 0x7a,
+			0x7d, 0x80, 0x81, 0x81, 0x83, 0x86, 0x8b, 0x91, 0x98, 0x9c, 0x9c,
+			0x99, 0x91, 0x86, 0x7c, 0x73, 0x6f, 0x6f, 0x73, 0x78, 0x7e, 0x83,
+			0x85, 0x85, 0x83, 0x80, 0x7e, 0x7d, 0x7e, 0x7d, 0x7c, 0x79, 0x74,
+			0x6e, 0x67, 0x61, 0x5d, 0x5b, 0x5b, 0x5c, 0x5f, 0x62, 0x66, 0x6e,
+			0x79, 0x87, 0x98, 0xa6, 0xb2, 0xb7, 0xb5, 0xad, 0xa0, 0x91, 0x81,
+			0x76, 0x6e, 0x6a, 0x6c, 0x70, 0x74, 0x79, 0x7d, 0x81, 0x84, 0x88,
+			0x8c, 0x90, 0x95, 0x98, 0x99, 0x98, 0x93, 0x8b, 0x81, 0x78, 0x71,
+			0x6d, 0x70, 0x75, 0x7c, 0x84, 0x89, 0x8b, 0x8a, 0x88, 0x85, 0x81,
+			0x7e, 0x7c, 0x7a, 0x79, 0x77, 0x75, 0x70, 0x6b, 0x66, 0x61, 0x5e,
+			0x5d, 0x5c, 0x5e, 0x60, 0x63, 0x68, 0x71, 0x7d, 0x8c, 0x9a, 0xa8,
+			0xb1, 0xb3, 0xb0, 0xa7, 0x9a, 0x8c, 0x7f, 0x75, 0x6f, 0x6e, 0x70,
+			0x74, 0x79, 0x7e, 0x82, 0x86, 0x88, 0x8c, 0x8f, 0x92, 0x95, 0x95,
+			0x93, 0x8e, 0x87, 0x7f, 0x77, 0x73, 0x71, 0x73, 0x79, 0x7f, 0x85,
+			0x8a, 0x8c, 0x8b, 0x88, 0x84, 0x80, 0x7c, 0x79, 0x77, 0x75, 0x74,
+			0x73, 0x71, 0x6e, 0x6b, 0x69, 0x67, 0x67, 0x67, 0x65, 0x65, 0x64,
+			0x63, 0x63, 0x69, 0x72, 0x7e, 0x90, 0xa0, 0xae, 0xb9, 0xba, 0xb5,
+			0xaa, 0x9b, 0x8b, 0x7d, 0x74, 0x6e, 0x6c, 0x6e, 0x70, 0x74, 0x78,
+			0x7a, 0x7e, 0x82, 0x87, 0x8c, 0x92, 0x98, 0x9a, 0x9a, 0x96, 0x8d,
+			0x84, 0x78, 0x6f, 0x69, 0x67, 0x6b, 0x74, 0x7f, 0x8a, 0x93, 0x98,
+			0x96, 0x91, 0x8a, 0x82, 0x7c, 0x77, 0x74, 0x74, 0x74, 0x74, 0x74,
+			0x73, 0x72, 0x70, 0x6e, 0x6c, 0x6b, 0x6a, 0x69, 0x68, 0x66, 0x65,
+			0x64, 0x63, 0x67, 0x6e, 0x7b, 0x8b, 0x9b, 0xab, 0xb6, 0xba, 0xb7,
+			0xad, 0x9f, 0x90, 0x82, 0x77, 0x70, 0x6d, 0x6d, 0x6f, 0x72, 0x76,
+			0x79, 0x7d, 0x81, 0x86, 0x8b, 0x91, 0x96, 0x99, 0x9a, 0x95, 0x8e,
+			0x84, 0x78, 0x6d, 0x65, 0x62, 0x63, 0x6a, 0x76, 0x82, 0x8e, 0x98,
+			0x9d, 0x9e, 0x9a, 0x93, 0x8b, 0x82, 0x7a, 0x73, 0x6f, 0x6b, 0x6a,
+			0x6a, 0x6b, 0x6e, 0x72, 0x77, 0x7c, 0x7f, 0x80, 0x7f, 0x7b, 0x75,
+			0x6d, 0x65, 0x5e, 0x58, 0x57, 0x5a, 0x63, 0x72, 0x84, 0x99, 0xab,
+			0xb8, 0xbd, 0xbb, 0xb3, 0xa6, 0x96, 0x87, 0x79, 0x70, 0x6a, 0x68,
+			0x69, 0x6c, 0x71, 0x76, 0x7c, 0x82, 0x88, 0x8e, 0x93, 0x98, 0x9b,
+			0x9a, 0x96, 0x8f, 0x84, 0x78, 0x6d, 0x64, 0x60, 0x60, 0x65, 0x6f,
+			0x7b, 0x88, 0x93, 0x9b, 0x9f, 0x9f, 0x9a, 0x94, 0x8c, 0x84, 0x7c,
+			0x75, 0x6f, 0x6b, 0x69, 0x68, 0x6a, 0x6d, 0x71, 0x77, 0x7d, 0x81,
+			0x84, 0x82, 0x7e, 0x78, 0x70, 0x69, 0x63, 0x5e, 0x5d, 0x5d, 0x60,
+			0x64, 0x6b, 0x76, 0x83, 0x92, 0xa1, 0xae, 0xb7, 0xb8, 0xb4, 0xac,
+			0x9f, 0x91, 0x82, 0x77, 0x70, 0x6b, 0x6c, 0x6e, 0x71, 0x76, 0x79,
+			0x7e, 0x82, 0x87, 0x8c, 0x90, 0x93, 0x93, 0x91, 0x8d, 0x86, 0x7e,
+			0x76, 0x70, 0x6c, 0x6b, 0x6e, 0x73, 0x79, 0x82, 0x8a, 0x90, 0x95,
+			0x96, 0x94, 0x8f, 0x89, 0x82, 0x7c, 0x78, 0x75, 0x74, 0x75, 0x76,
+			0x77, 0x78, 0x79, 0x79, 0x79, 0x7a, 0x7a, 0x79, 0x78, 0x76, 0x74,
+			0x71, 0x6e, 0x6c, 0x6a, 0x68, 0x67, 0x67, 0x67, 0x67, 0x68, 0x68,
+			0x70, 0x7d, 0x8a, 0x9d, 0xad, 0xb6, 0xba, 0xb4, 0xa7, 0x96, 0x84,
+			0x76, 0x6b, 0x69, 0x6c, 0x70, 0x78, 0x7d, 0x7e, 0x7f, 0x80, 0x81,
+			0x84, 0x8a, 0x90, 0x94, 0x97, 0x97, 0x8f, 0x87, 0x7c, 0x70, 0x68,
+			0x63, 0x64, 0x69, 0x73, 0x7d, 0x84, 0x8a, 0x8d, 0x8b, 0x8b, 0x8a,
+			0x88, 0x89, 0x88, 0x87, 0x86, 0x84, 0x80, 0x7d, 0x7c, 0x7e, 0x7f,
+			0x83, 0x86, 0x86, 0x85, 0x82, 0x7e, 0x79, 0x75, 0x73, 0x72, 0x73,
+			0x74, 0x75, 0x75, 0x75, 0x74, 0x72, 0x71, 0x70, 0x6e, 0x6d, 0x6c,
+			0x6b, 0x6a, 0x6a, 0x69, 0x67, 0x66, 0x65, 0x6a, 0x7a, 0x8a, 0x9c,
+			0xb0, 0xb8, 0xb7, 0xaf, 0xa0, 0x8c, 0x7a, 0x70, 0x6b, 0x6c, 0x74,
+			0x7b, 0x7e, 0x81, 0x80, 0x7c, 0x7c, 0x81, 0x89, 0x92, 0x9c, 0xa0,
+			0x9b, 0x92, 0x85, 0x75, 0x6a, 0x64, 0x63, 0x69, 0x72, 0x7c, 0x83,
+			0x87, 0x89, 0x88, 0x86, 0x86, 0x87, 0x88, 0x8a, 0x89, 0x87, 0x81,
+			0x7a, 0x74, 0x71, 0x72, 0x77, 0x7e, 0x87, 0x8f, 0x95, 0x97, 0x95,
+			0x91, 0x8a, 0x81, 0x7a, 0x73, 0x6f, 0x6e, 0x6f, 0x73, 0x76, 0x7a,
+			0x7c, 0x7d, 0x7e, 0x7c, 0x78, 0x76, 0x72, 0x70, 0x6f, 0x6e, 0x6d,
+			0x6b, 0x69, 0x68, 0x67, 0x67, 0x66, 0x64, 0x65, 0x68, 0x76, 0x8a,
+			0x9e, 0xaf, 0xba, 0xb9, 0xad, 0x9a, 0x86, 0x77, 0x6d, 0x6e, 0x76,
+			0x7e, 0x84, 0x86, 0x83, 0x7f, 0x7c, 0x7e, 0x86, 0x90, 0x99, 0x9f,
+			0x9b, 0x8e, 0x80, 0x72, 0x69, 0x66, 0x6b, 0x75, 0x7c, 0x80, 0x82,
+			0x80, 0x7d, 0x7d, 0x80, 0x84, 0x88, 0x8a, 0x88, 0x84, 0x7f, 0x7b,
+			0x78, 0x78, 0x7b, 0x7e, 0x80, 0x85, 0x87, 0x89, 0x8b, 0x8c, 0x8a,
+			0x89, 0x86, 0x83, 0x7e, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d,
+			0x7b, 0x7b, 0x7b, 0x79, 0x77, 0x75, 0x73, 0x71, 0x6f, 0x70, 0x70,
+			0x71, 0x72, 0x72, 0x72, 0x72, 0x71, 0x70, 0x6e, 0x6c, 0x6c, 0x70,
+			0x73, 0x75, 0x7c, 0x91, 0xa7, 0xb2, 0xb1, 0xa8, 0x9a, 0x88, 0x79,
+			0x78, 0x7e, 0x82, 0x82, 0x81, 0x80, 0x7e, 0x7f, 0x87, 0x91, 0x96,
+			0x95, 0x8f, 0x89, 0x82, 0x7a, 0x78, 0x7a, 0x7b, 0x7b, 0x7a, 0x7b,
+			0x7d, 0x7c, 0x7d, 0x80, 0x82, 0x83, 0x82, 0x81, 0x81, 0x81, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7d, 0x7c, 0x7d, 0x7d, 0x7e, 0x80, 0x85, 0x8a,
+			0x8d, 0x8e, 0x8d, 0x8a, 0x85, 0x7f, 0x7c, 0x7b, 0x7b, 0x7c, 0x7c,
+			0x7e, 0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x7c, 0x7a, 0x78, 0x75, 0x72,
+			0x70, 0x70, 0x71, 0x72, 0x72, 0x72, 0x73, 0x74, 0x74, 0x75, 0x74,
+			0x71, 0x6f, 0x6d, 0x6b, 0x6a, 0x6a, 0x6d, 0x71, 0x78, 0x8f, 0xad,
+			0xba, 0xb2, 0x9f, 0x92, 0x89, 0x80, 0x7e, 0x85, 0x89, 0x87, 0x7e,
+			0x79, 0x7f, 0x88, 0x8c, 0x8d, 0x8d, 0x8d, 0x8a, 0x84, 0x81, 0x81,
+			0x7f, 0x79, 0x75, 0x78, 0x7e, 0x81, 0x7f, 0x7f, 0x80, 0x80, 0x7f,
+			0x7e, 0x82, 0x85, 0x82, 0x7e, 0x7c, 0x7d, 0x7f, 0x7f, 0x7e, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7f, 0x83, 0x89, 0x8d, 0x8e, 0x8c, 0x89, 0x84,
+			0x7f, 0x7c, 0x7b, 0x7d, 0x7e, 0x7f, 0x7e, 0x7d, 0x7b, 0x7b, 0x7c,
+			0x7c, 0x7b, 0x7a, 0x79, 0x79, 0x79, 0x76, 0x73, 0x72, 0x73, 0x75,
+			0x76, 0x76, 0x77, 0x77, 0x75, 0x72, 0x71, 0x71, 0x72, 0x71, 0x70,
+			0x70, 0x71, 0x70, 0x6d, 0x6f, 0x80, 0x9e, 0xb5, 0xb4, 0xa0, 0x8d,
+			0x8a, 0x8d, 0x8c, 0x87, 0x83, 0x81, 0x80, 0x7e, 0x7e, 0x86, 0x8e,
+			0x8e, 0x88, 0x84, 0x88, 0x8e, 0x8c, 0x83, 0x7c, 0x7a, 0x7d, 0x7e,
+			0x7c, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7f, 0x81, 0x80, 0x7c, 0x7a,
+			0x7c, 0x82, 0x85, 0x81, 0x7c, 0x7a, 0x7c, 0x7f, 0x80, 0x7f, 0x81,
+			0x84, 0x84, 0x82, 0x83, 0x87, 0x8a, 0x86, 0x7f, 0x7b, 0x7e, 0x80,
+			0x7e, 0x79, 0x79, 0x7d, 0x81, 0x81, 0x7d, 0x78, 0x75, 0x74, 0x75,
+			0x78, 0x7a, 0x7a, 0x77, 0x76, 0x77, 0x78, 0x78, 0x76, 0x76, 0x76,
+			0x77, 0x78, 0x79, 0x79, 0x78, 0x78, 0x78, 0x77, 0x76, 0x74, 0x74,
+			0x73, 0x71, 0x72, 0x7e, 0x93, 0xa4, 0xa5, 0x97, 0x89, 0x88, 0x91,
+			0x95, 0x8e, 0x83, 0x7e, 0x82, 0x87, 0x88, 0x86, 0x86, 0x86, 0x86,
+			0x85, 0x87, 0x8a, 0x8c, 0x87, 0x7f, 0x7b, 0x7d, 0x81, 0x82, 0x80,
+			0x7d, 0x7b, 0x7c, 0x7e, 0x81, 0x82, 0x81, 0x7e, 0x7d, 0x7d, 0x7f,
+			0x82, 0x84, 0x85, 0x83, 0x80, 0x7d, 0x7e, 0x81, 0x82, 0x80, 0x7d,
+			0x7d, 0x81, 0x83, 0x81, 0x7d, 0x7c, 0x7c, 0x7c, 0x7a, 0x79, 0x79,
+			0x7b, 0x7a, 0x79, 0x78, 0x79, 0x79, 0x78, 0x79, 0x7b, 0x7b, 0x79,
+			0x77, 0x77, 0x79, 0x7a, 0x7a, 0x7a, 0x7b, 0x7d, 0x7c, 0x7b, 0x79,
+			0x7a, 0x7b, 0x7b, 0x7b, 0x7a, 0x7a, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b,
+			0x79, 0x78, 0x7a, 0x80, 0x89, 0x8e, 0x8d, 0x87, 0x83, 0x85, 0x8a,
+			0x8c, 0x8a, 0x88, 0x88, 0x8a, 0x8a, 0x8a, 0x89, 0x89, 0x89, 0x89,
+			0x89, 0x8a, 0x8c, 0x8b, 0x89, 0x86, 0x84, 0x83, 0x84, 0x85, 0x86,
+			0x86, 0x84, 0x82, 0x81, 0x82, 0x83, 0x82, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7e, 0x7c, 0x7c, 0x7d, 0x7f, 0x7f, 0x7f, 0x7e,
+			0x7d, 0x7d, 0x7d, 0x7c, 0x7b, 0x7a, 0x79, 0x7a, 0x7b, 0x7b, 0x7a,
+			0x79, 0x77, 0x78, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x78, 0x79,
+			0x7a, 0x7a, 0x79, 0x78, 0x7a, 0x7d, 0x7d, 0x7a, 0x79, 0x7a, 0x7b,
+			0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x7f, 0x7d, 0x7d,
+			0x80, 0x83, 0x82, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x7f, 0x80, 0x81, 0x81, 0x80, 0x81, 0x83, 0x85, 0x84, 0x84, 0x85,
+			0x86, 0x85, 0x85, 0x85, 0x87, 0x88, 0x88, 0x88, 0x87, 0x87, 0x87,
+			0x87, 0x87, 0x87, 0x88, 0x89, 0x89, 0x88, 0x87, 0x88, 0x89, 0x88,
+			0x86, 0x86, 0x87, 0x88, 0x86, 0x84, 0x83, 0x83, 0x82, 0x81, 0x81,
+			0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7d, 0x7b, 0x7a, 0x7a, 0x7a, 0x7a,
+			0x79, 0x79, 0x7a, 0x7a, 0x79, 0x78, 0x77, 0x79, 0x7a, 0x7a, 0x7a,
+			0x79, 0x79, 0x79, 0x79, 0x7a, 0x7b, 0x7c, 0x7c, 0x7b, 0x7a, 0x7a,
+			0x7c, 0x7d, 0x7b, 0x7a, 0x7b, 0x7e, 0x7f, 0x7d, 0x7b, 0x7c, 0x7d,
+			0x7d, 0x7c, 0x7c, 0x7e, 0x7e, 0x7c, 0x7b, 0x7d, 0x7f, 0x7e, 0x7c,
+			0x7c, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x82, 0x83, 0x82, 0x81, 0x81,
+			0x82, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x84, 0x84, 0x84,
+			0x85, 0x85, 0x85, 0x85, 0x85, 0x84, 0x84, 0x84, 0x85, 0x84, 0x85,
+			0x85, 0x85, 0x84, 0x83, 0x83, 0x83, 0x82, 0x80, 0x81, 0x82, 0x82,
+			0x81, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d,
+			0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c,
+			0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c,
+			0x7c, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7c, 0x7c,
+			0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x81, 0x80, 0x80, 0x80,
+			0x82, 0x82, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81,
+			0x82, 0x83, 0x83, 0x83, 0x82, 0x82, 0x82, 0x82, 0x83, 0x83, 0x83,
+			0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x7e, 0x7f, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d,
+			0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e,
+			0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e,
+			0x7e, 0x7e, 0x7f, 0x7f, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+		},
+		{ // 5
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x7e, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x80,
+			0x80, 0x7f, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e,
+			0x80, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x80,
+			0x82, 0x82, 0x80, 0x7f, 0x7f, 0x80, 0x81, 0x80, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x7f, 0x7e, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x81, 0x80,
+			0x7f, 0x7e, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x81, 0x80, 0x7f,
+			0x7f, 0x7e, 0x7e, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x81, 0x80, 0x81,
+			0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7d, 0x7f, 0x7f, 0x7e, 0x80,
+			0x80, 0x7e, 0x7f, 0x81, 0x81, 0x80, 0x81, 0x80, 0x7e, 0x7e, 0x7f,
+			0x80, 0x80, 0x7f, 0x7f, 0x80, 0x81, 0x7f, 0x80, 0x81, 0x7f, 0x7e,
+			0x7f, 0x7f, 0x80, 0x84, 0x83, 0x7f, 0x7e, 0x80, 0x80, 0x80, 0x7f,
+			0x81, 0x80, 0x7c, 0x7e, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x82, 0x81,
+			0x80, 0x81, 0x7e, 0x7e, 0x7f, 0x80, 0x81, 0x81, 0x7f, 0x7e, 0x7e,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7d, 0x7e, 0x81, 0x80, 0x7d, 0x80, 0x80,
+			0x81, 0x7f, 0x7d, 0x80, 0x80, 0x81, 0x7f, 0x7e, 0x80, 0x7f, 0x80,
+			0x7f, 0x7e, 0x82, 0x81, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x81, 0x7f,
+			0x7f, 0x81, 0x80, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x7e, 0x81, 0x81,
+			0x7d, 0x81, 0x83, 0x80, 0x80, 0x7f, 0x7e, 0x80, 0x80, 0x7f, 0x7e,
+			0x7e, 0x81, 0x83, 0x80, 0x7f, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x7f,
+			0x82, 0x80, 0x7d, 0x81, 0x7f, 0x7d, 0x7d, 0x86, 0x80, 0x78, 0x7e,
+			0x82, 0x82, 0x7f, 0x7b, 0x80, 0x84, 0x7f, 0x7d, 0x7c, 0x80, 0x80,
+			0x81, 0x80, 0x7c, 0x82, 0x81, 0x80, 0x7e, 0x7d, 0x82, 0x80, 0x7d,
+			0x81, 0x81, 0x81, 0x7f, 0x7c, 0x84, 0x81, 0x7b, 0x7d, 0x84, 0x85,
+			0x7b, 0x7d, 0x83, 0x81, 0x7d, 0x7e, 0x80, 0x7f, 0x81, 0x80, 0x7e,
+			0x7f, 0x81, 0x80, 0x7e, 0x81, 0x7e, 0x81, 0x82, 0x7e, 0x7f, 0x7e,
+			0x7f, 0x7f, 0x79, 0x7a, 0x7f, 0x81, 0x81, 0x7f, 0x81, 0x80, 0x7a,
+			0x7e, 0x81, 0x80, 0x80, 0x80, 0x82, 0x80, 0x80, 0x7e, 0x7d, 0x80,
+			0x80, 0x7e, 0x81, 0x80, 0x7f, 0x81, 0x7f, 0x82, 0x80, 0x81, 0x81,
+			0x83, 0x86, 0x80, 0x7f, 0x7f, 0x7e, 0x7f, 0x82, 0x83, 0x81, 0x80,
+			0x84, 0x84, 0x83, 0x83, 0x84, 0x83, 0x7d, 0x7e, 0x7b, 0x79, 0x7c,
+			0x7a, 0x74, 0x7b, 0x7f, 0x7c, 0x7b, 0x7c, 0x7e, 0x7a, 0x7a, 0x7a,
+			0x7a, 0x78, 0x75, 0x77, 0x81, 0x86, 0x85, 0x85, 0x82, 0x7b, 0x73,
+			0x71, 0x73, 0x77, 0x7a, 0x83, 0x86, 0x82, 0x84, 0x88, 0x88, 0x87,
+			0x8b, 0x8b, 0x88, 0x8c, 0x90, 0x90, 0x92, 0x97, 0x95, 0x8f, 0x90,
+			0x91, 0x8e, 0x8d, 0x8c, 0x85, 0x7d, 0x7a, 0x79, 0x7b, 0x7d, 0x7d,
+			0x7a, 0x78, 0x72, 0x69, 0x65, 0x66, 0x68, 0x6c, 0x72, 0x6b, 0x61,
+			0x5a, 0x55, 0x4e, 0x4e, 0x76, 0xae, 0xc7, 0xc3, 0xb4, 0x89, 0x59,
+			0x4d, 0x58, 0x6d, 0x86, 0xa2, 0xa7, 0x95, 0x89, 0x86, 0x82, 0x81,
+			0x87, 0x84, 0x7b, 0x7b, 0x82, 0x83, 0x88, 0x90, 0x90, 0x8a, 0x85,
+			0x85, 0x84, 0x86, 0x8c, 0x8e, 0x88, 0x80, 0x7c, 0x79, 0x7c, 0x81,
+			0x85, 0x85, 0x81, 0x78, 0x6d, 0x67, 0x68, 0x6e, 0x73, 0x73, 0x6f,
+			0x67, 0x5e, 0x5a, 0x53, 0x58, 0x83, 0xb2, 0xc4, 0xbe, 0xa5, 0x74,
+			0x4c, 0x4a, 0x5f, 0x7a, 0x97, 0xac, 0xa3, 0x8d, 0x82, 0x7c, 0x7a,
+			0x84, 0x8d, 0x84, 0x7c, 0x7e, 0x80, 0x86, 0x94, 0x95, 0x8a, 0x83,
+			0x80, 0x7e, 0x84, 0x8d, 0x8f, 0x8b, 0x85, 0x7b, 0x76, 0x7a, 0x81,
+			0x87, 0x86, 0x81, 0x7c, 0x77, 0x70, 0x69, 0x6a, 0x6f, 0x72, 0x73,
+			0x6d, 0x69, 0x62, 0x5f, 0x5d, 0x5b, 0x80, 0xb1, 0xc6, 0xc0, 0xa2,
+			0x6f, 0x45, 0x45, 0x5f, 0x7f, 0x9f, 0xb0, 0x9f, 0x87, 0x7b, 0x78,
+			0x7d, 0x8b, 0x92, 0x87, 0x7b, 0x7a, 0x7f, 0x88, 0x94, 0x95, 0x88,
+			0x7c, 0x78, 0x7d, 0x89, 0x92, 0x91, 0x8e, 0x86, 0x7c, 0x75, 0x77,
+			0x7c, 0x80, 0x86, 0x86, 0x81, 0x7e, 0x77, 0x6b, 0x66, 0x6d, 0x75,
+			0x77, 0x77, 0x70, 0x68, 0x60, 0x5e, 0x56, 0x5b, 0x8b, 0xb7, 0xc4,
+			0xb9, 0x98, 0x65, 0x46, 0x4f, 0x69, 0x89, 0xa5, 0xaa, 0x96, 0x84,
+			0x7c, 0x79, 0x82, 0x8d, 0x8b, 0x80, 0x7a, 0x7b, 0x80, 0x8d, 0x9a,
+			0x97, 0x88, 0x7a, 0x73, 0x78, 0x89, 0x94, 0x92, 0x8d, 0x84, 0x77,
+			0x70, 0x78, 0x80, 0x83, 0x89, 0x8a, 0x82, 0x7b, 0x75, 0x6a, 0x64,
+			0x6c, 0x70, 0x70, 0x73, 0x70, 0x6a, 0x66, 0x66, 0x5d, 0x69, 0x98,
+			0xb8, 0xbb, 0xaa, 0x85, 0x57, 0x48, 0x5c, 0x7a, 0x99, 0xaa, 0xa2,
+			0x89, 0x78, 0x74, 0x7c, 0x8a, 0x90, 0x8a, 0x81, 0x7c, 0x7d, 0x85,
+			0x8e, 0x8e, 0x87, 0x7f, 0x7c, 0x80, 0x8b, 0x92, 0x91, 0x8a, 0x80,
+			0x78, 0x77, 0x7d, 0x84, 0x87, 0x85, 0x81, 0x7b, 0x77, 0x72, 0x6d,
+			0x6e, 0x72, 0x74, 0x71, 0x6c, 0x67, 0x64, 0x61, 0x65, 0x66, 0x61,
+			0x82, 0xaf, 0xbd, 0xb3, 0x98, 0x69, 0x49, 0x54, 0x70, 0x8b, 0xa2,
+			0xa8, 0x93, 0x81, 0x7c, 0x7a, 0x82, 0x8c, 0x8a, 0x7e, 0x78, 0x7c,
+			0x85, 0x91, 0x9b, 0x93, 0x7e, 0x74, 0x76, 0x7a, 0x89, 0x97, 0x98,
+			0x90, 0x85, 0x78, 0x72, 0x78, 0x80, 0x88, 0x8d, 0x88, 0x7f, 0x78,
+			0x72, 0x6b, 0x67, 0x6c, 0x72, 0x72, 0x71, 0x6c, 0x65, 0x62, 0x62,
+			0x60, 0x60, 0x62, 0x7b, 0xa7, 0xbc, 0xb4, 0x98, 0x70, 0x54, 0x59,
+			0x71, 0x8c, 0x9f, 0xa2, 0x95, 0x84, 0x7c, 0x7b, 0x7f, 0x87, 0x88,
+			0x7f, 0x7d, 0x81, 0x86, 0x8b, 0x8e, 0x89, 0x81, 0x7f, 0x82, 0x85,
+			0x8a, 0x8e, 0x8a, 0x83, 0x80, 0x7f, 0x7f, 0x81, 0x87, 0x88, 0x87,
+			0x86, 0x7f, 0x73, 0x6b, 0x6b, 0x6d, 0x72, 0x76, 0x73, 0x6c, 0x6a,
+			0x6a, 0x68, 0x67, 0x66, 0x63, 0x61, 0x52, 0x5b, 0x92, 0xba, 0xc4,
+			0xb3, 0x87, 0x52, 0x45, 0x5f, 0x80, 0x9f, 0xaf, 0xa1, 0x86, 0x7b,
+			0x7c, 0x83, 0x8c, 0x8b, 0x84, 0x7b, 0x78, 0x81, 0x8b, 0x8e, 0x8c,
+			0x86, 0x7e, 0x7e, 0x83, 0x86, 0x8a, 0x8a, 0x88, 0x85, 0x84, 0x81,
+			0x7c, 0x7b, 0x7f, 0x84, 0x88, 0x89, 0x87, 0x81, 0x79, 0x72, 0x6c,
+			0x6c, 0x70, 0x70, 0x6e, 0x6d, 0x6e, 0x6c, 0x67, 0x68, 0x65, 0x62,
+			0x60, 0x59, 0x68, 0x88, 0xa9, 0xb6, 0xa7, 0x86, 0x61, 0x56, 0x65,
+			0x81, 0x99, 0xa5, 0x99, 0x88, 0x7e, 0x7c, 0x84, 0x8c, 0x8b, 0x86,
+			0x82, 0x80, 0x86, 0x89, 0x89, 0x86, 0x82, 0x82, 0x81, 0x80, 0x82,
+			0x7f, 0x7b, 0x79, 0x7c, 0x84, 0x90, 0x95, 0x8f, 0x85, 0x7a, 0x76,
+			0x7d, 0x86, 0x88, 0x84, 0x7f, 0x77, 0x72, 0x77, 0x7c, 0x7b, 0x7b,
+			0x77, 0x6d, 0x65, 0x63, 0x64, 0x61, 0x61, 0x63, 0x65, 0x62, 0x60,
+			0x5f, 0x5d, 0x85, 0xb5, 0xc1, 0xb4, 0x8f, 0x5a, 0x44, 0x5a, 0x7c,
+			0x9f, 0xaf, 0xa0, 0x84, 0x76, 0x7b, 0x87, 0x91, 0x8f, 0x81, 0x75,
+			0x79, 0x84, 0x8e, 0x92, 0x8d, 0x7f, 0x74, 0x73, 0x7a, 0x85, 0x88,
+			0x84, 0x7d, 0x79, 0x7a, 0x7f, 0x87, 0x92, 0x98, 0x95, 0x86, 0x77,
+			0x71, 0x76, 0x80, 0x89, 0x8c, 0x88, 0x7f, 0x77, 0x73, 0x72, 0x75,
+			0x79, 0x76, 0x6f, 0x6a, 0x6c, 0x6e, 0x70, 0x70, 0x69, 0x69, 0x69,
+			0x66, 0x63, 0x61, 0x57, 0x5a, 0x8f, 0xc3, 0xce, 0xb6, 0x89, 0x58,
+			0x45, 0x61, 0x87, 0xa2, 0xac, 0xa0, 0x87, 0x7a, 0x7e, 0x83, 0x89,
+			0x8a, 0x83, 0x7c, 0x7e, 0x85, 0x89, 0x88, 0x82, 0x79, 0x78, 0x80,
+			0x88, 0x8a, 0x83, 0x78, 0x6f, 0x70, 0x79, 0x81, 0x85, 0x86, 0x85,
+			0x83, 0x81, 0x7d, 0x7a, 0x7c, 0x82, 0x8a, 0x90, 0x94, 0x91, 0x85,
+			0x79, 0x72, 0x73, 0x7e, 0x89, 0x8c, 0x85, 0x7b, 0x75, 0x72, 0x74,
+			0x77, 0x77, 0x75, 0x71, 0x6e, 0x6f, 0x71, 0x74, 0x75, 0x74, 0x71,
+			0x71, 0x72, 0x71, 0x6d, 0x66, 0x60, 0x5f, 0x79, 0xa9, 0xc5, 0xba,
+			0x96, 0x6c, 0x52, 0x59, 0x78, 0x96, 0xa4, 0xa5, 0x96, 0x85, 0x7f,
+			0x7e, 0x7c, 0x7a, 0x7c, 0x7e, 0x83, 0x8c, 0x8e, 0x89, 0x82, 0x7c,
+			0x7c, 0x7e, 0x80, 0x80, 0x7e, 0x7c, 0x7c, 0x7d, 0x7e, 0x7d, 0x7c,
+			0x81, 0x85, 0x85, 0x83, 0x80, 0x7d, 0x7c, 0x7d, 0x7e, 0x7e, 0x82,
+			0x86, 0x8c, 0x96, 0x96, 0x87, 0x77, 0x71, 0x73, 0x7a, 0x83, 0x88,
+			0x88, 0x83, 0x7b, 0x73, 0x71, 0x75, 0x7a, 0x7d, 0x7b, 0x75, 0x72,
+			0x74, 0x77, 0x78, 0x74, 0x71, 0x6f, 0x71, 0x74, 0x73, 0x6f, 0x6f,
+			0x73, 0x74, 0x71, 0x6c, 0x65, 0x6a, 0x86, 0xaa, 0xbd, 0xb0, 0x8e,
+			0x6b, 0x5e, 0x68, 0x7d, 0x90, 0x9a, 0x9b, 0x96, 0x91, 0x89, 0x7e,
+			0x74, 0x70, 0x75, 0x82, 0x8f, 0x92, 0x8e, 0x88, 0x7f, 0x7a, 0x7b,
+			0x7e, 0x7f, 0x80, 0x81, 0x7f, 0x7b, 0x7a, 0x7a, 0x7c, 0x80, 0x81,
+			0x81, 0x84, 0x86, 0x83, 0x7f, 0x7c, 0x7c, 0x7e, 0x82, 0x84, 0x83,
+			0x8a, 0x94, 0x93, 0x85, 0x76, 0x71, 0x75, 0x80, 0x8a, 0x8b, 0x85,
+			0x80, 0x7b, 0x76, 0x74, 0x77, 0x7a, 0x7c, 0x7d, 0x79, 0x75, 0x72,
+			0x73, 0x75, 0x76, 0x75, 0x75, 0x74, 0x73, 0x74, 0x74, 0x71, 0x70,
+			0x72, 0x73, 0x73, 0x71, 0x70, 0x70, 0x6f, 0x77, 0x8a, 0x9c, 0xa7,
+			0xa8, 0x98, 0x80, 0x70, 0x6c, 0x73, 0x82, 0x94, 0x9e, 0x9e, 0x96,
+			0x89, 0x7e, 0x79, 0x78, 0x78, 0x7d, 0x84, 0x8a, 0x8f, 0x90, 0x8c,
+			0x84, 0x7c, 0x74, 0x72, 0x76, 0x7c, 0x83, 0x87, 0x85, 0x80, 0x7c,
+			0x7c, 0x7e, 0x7f, 0x7f, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x82,
+			0x86, 0x89, 0x8a, 0x8a, 0x89, 0x85, 0x7f, 0x7b, 0x7b, 0x7c, 0x7e,
+			0x80, 0x83, 0x84, 0x82, 0x7e, 0x78, 0x75, 0x74, 0x72, 0x73, 0x75,
+			0x79, 0x7e, 0x7f, 0x7b, 0x75, 0x70, 0x6f, 0x70, 0x72, 0x74, 0x74,
+			0x75, 0x76, 0x76, 0x73, 0x71, 0x74, 0x75, 0x73, 0x6e, 0x6d, 0x6c,
+			0x72, 0x85, 0x9b, 0xac, 0xaa, 0x9e, 0x8e, 0x80, 0x77, 0x73, 0x78,
+			0x83, 0x94, 0x9d, 0x9b, 0x93, 0x8d, 0x86, 0x7e, 0x76, 0x72, 0x77,
+			0x81, 0x8a, 0x8d, 0x8d, 0x8c, 0x87, 0x80, 0x79, 0x76, 0x76, 0x79,
+			0x7d, 0x7f, 0x80, 0x82, 0x82, 0x7f, 0x7c, 0x7d, 0x80, 0x7f, 0x7c,
+			0x80, 0x82, 0x84, 0x87, 0x88, 0x83, 0x82, 0x85, 0x87, 0x83, 0x80,
+			0x7e, 0x7e, 0x7e, 0x81, 0x81, 0x7e, 0x7e, 0x7e, 0x7c, 0x7a, 0x79,
+			0x78, 0x76, 0x78, 0x77, 0x76, 0x77, 0x78, 0x78, 0x77, 0x76, 0x75,
+			0x73, 0x72, 0x71, 0x6f, 0x6f, 0x70, 0x6f, 0x71, 0x75, 0x76, 0x72,
+			0x6f, 0x71, 0x72, 0x70, 0x6e, 0x6f, 0x7a, 0x8d, 0xa1, 0xae, 0xa9,
+			0x9c, 0x93, 0x8a, 0x7c, 0x71, 0x75, 0x81, 0x8c, 0x92, 0x96, 0x99,
+			0x98, 0x90, 0x84, 0x7b, 0x76, 0x76, 0x78, 0x7d, 0x84, 0x89, 0x8b,
+			0x8a, 0x87, 0x83, 0x7f, 0x7b, 0x76, 0x75, 0x76, 0x77, 0x79, 0x7e,
+			0x83, 0x86, 0x85, 0x85, 0x84, 0x81, 0x7d, 0x7a, 0x7b, 0x7d, 0x7f,
+			0x83, 0x85, 0x88, 0x8b, 0x87, 0x83, 0x84, 0x84, 0x81, 0x7e, 0x7c,
+			0x7c, 0x7e, 0x7e, 0x7b, 0x7c, 0x7c, 0x79, 0x76, 0x75, 0x76, 0x78,
+			0x77, 0x74, 0x76, 0x78, 0x75, 0x72, 0x72, 0x74, 0x70, 0x6e, 0x71,
+			0x72, 0x74, 0x74, 0x72, 0x71, 0x74, 0x75, 0x72, 0x75, 0x78, 0x74,
+			0x78, 0x7f, 0x81, 0x85, 0x8b, 0x98, 0xa6, 0xa8, 0x9b, 0x93, 0x91,
+			0x8b, 0x82, 0x7d, 0x80, 0x88, 0x8c, 0x8e, 0x8e, 0x8f, 0x90, 0x8e,
+			0x89, 0x83, 0x81, 0x7f, 0x7c, 0x7b, 0x7c, 0x7d, 0x7e, 0x81, 0x82,
+			0x80, 0x7f, 0x7e, 0x7e, 0x7b, 0x7b, 0x7b, 0x7b, 0x7d, 0x7e, 0x80,
+			0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x7d, 0x7e, 0x81, 0x85, 0x8d, 0x87,
+			0x83, 0x88, 0x8b, 0x82, 0x78, 0x7d, 0x7e, 0x80, 0x7f, 0x7a, 0x7b,
+			0x7e, 0x81, 0x79, 0x77, 0x79, 0x77, 0x75, 0x75, 0x77, 0x77, 0x7a,
+			0x78, 0x73, 0x73, 0x74, 0x73, 0x70, 0x70, 0x70, 0x72, 0x75, 0x75,
+			0x73, 0x72, 0x75, 0x73, 0x6e, 0x6d, 0x70, 0x74, 0x75, 0x75, 0x76,
+			0x77, 0x7e, 0x8a, 0x9c, 0xa4, 0x9b, 0x99, 0xa0, 0xa5, 0x9b, 0x8e,
+			0x8b, 0x8d, 0x90, 0x8b, 0x84, 0x81, 0x86, 0x8e, 0x8a, 0x83, 0x82,
+			0x87, 0x8b, 0x88, 0x85, 0x83, 0x86, 0x87, 0x84, 0x80, 0x7c, 0x7f,
+			0x7f, 0x7b, 0x78, 0x78, 0x7b, 0x7c, 0x7d, 0x7e, 0x7e, 0x80, 0x82,
+			0x83, 0x82, 0x81, 0x82, 0x82, 0x83, 0x83, 0x82, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7e, 0x7f, 0x81, 0x82, 0x82, 0x82, 0x80, 0x7f, 0x7d, 0x7c,
+			0x7b, 0x79, 0x78, 0x78, 0x78, 0x78, 0x77, 0x78, 0x79, 0x78, 0x79,
+			0x7b, 0x7c, 0x7b, 0x7b, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b,
+			0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7c, 0x7a, 0x7a, 0x7b, 0x7d, 0x7d,
+			0x7b, 0x7c, 0x7d, 0x7f, 0x7f, 0x80, 0x81, 0x81, 0x81, 0x82, 0x83,
+			0x82, 0x82, 0x82, 0x83, 0x84, 0x86, 0x88, 0x89, 0x89, 0x89, 0x89,
+			0x89, 0x88, 0x87, 0x86, 0x85, 0x85, 0x84, 0x83, 0x82, 0x80, 0x80,
+			0x7f, 0x7e, 0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d,
+			0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80,
+			0x7f, 0x7e, 0x7e, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d,
+			0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c, 0x7c, 0x7b, 0x7a,
+			0x7a, 0x7b, 0x7c, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b,
+			0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d,
+			0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7d, 0x7e, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x81, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x89, 0x88,
+			0x88, 0x88, 0x88, 0x88, 0x87, 0x88, 0x88, 0x87, 0x86, 0x85, 0x85,
+			0x84, 0x84, 0x84, 0x84, 0x84, 0x82, 0x82, 0x82, 0x82, 0x80, 0x81,
+			0x80, 0x7e, 0x7f, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7f, 0x7d,
+			0x7c, 0x7d, 0x7b, 0x7c, 0x7c, 0x7a, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+			0x7c, 0x7b, 0x7b, 0x7d, 0x7c, 0x79, 0x7d, 0x7d, 0x7a, 0x7a, 0x7a,
+			0x7c, 0x7c, 0x7c, 0x7c, 0x7e, 0x81, 0x7e, 0x7d, 0x7d, 0x7f, 0x80,
+			0x7e, 0x7e, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x81, 0x81,
+			0x81, 0x82, 0x81, 0x82, 0x81, 0x80, 0x82, 0x82, 0x82, 0x81, 0x81,
+			0x82, 0x82, 0x81, 0x81, 0x81, 0x83, 0x82, 0x80, 0x82, 0x82, 0x82,
+			0x81, 0x81, 0x81, 0x82, 0x83, 0x82, 0x81, 0x82, 0x80, 0x82, 0x83,
+			0x80, 0x80, 0x82, 0x81, 0x80, 0x81, 0x81, 0x82, 0x81, 0x80, 0x82,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7d, 0x80, 0x7e, 0x7b,
+			0x7d, 0x7f, 0x7e, 0x7e, 0x7c, 0x7d, 0x80, 0x7e, 0x7e, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7d, 0x7e, 0x7e, 0x7f,
+			0x7f, 0x7e, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x80,
+			0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x7f, 0x80, 0x81, 0x81,
+			0x82, 0x7f, 0x7f, 0x81, 0x81, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f,
+			0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x80, 0x80, 0x81, 0x81,
+			0x7f, 0x7e, 0x81, 0x80, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x7e, 0x7e,
+			0x80, 0x82, 0x80, 0x7f, 0x7f, 0x81, 0x80, 0x7f, 0x81, 0x7e, 0x7e,
+			0x81, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x82, 0x7f, 0x7e, 0x82, 0x7f,
+			0x7e, 0x7f, 0x7e, 0x81, 0x80, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e,
+			0x80, 0x82, 0x7f, 0x7e, 0x80, 0x7f, 0x81, 0x7f, 0x7d, 0x80, 0x83,
+			0x83, 0x7c, 0x81, 0x82, 0x7e, 0x82, 0x7d, 0x7f, 0x80, 0x80, 0x80,
+			0x7f, 0x82, 0x7f, 0x81, 0x7e, 0x80, 0x81, 0x7c, 0x80, 0x81, 0x7f,
+			0x80, 0x81, 0x7f, 0x7f, 0x80, 0x80, 0x7e, 0x7f, 0x7f, 0x7f, 0x81,
+			0x81, 0x7e, 0x7c, 0x81, 0x7f, 0x7f, 0x7f, 0x7e, 0x80, 0x81, 0x7f,
+			0x7d, 0x80, 0x80, 0x7f, 0x81, 0x80, 0x80, 0x7f, 0x7e, 0x80, 0x81,
+			0x7e, 0x7f, 0x80, 0x7e, 0x7f, 0x7f, 0x7d, 0x7e, 0x7e, 0x7d, 0x80,
+			0x80, 0x81, 0x82, 0x80, 0x7f, 0x81, 0x81, 0x7e, 0x81, 0x81, 0x7e,
+			0x81, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x81, 0x80,
+			0x7f, 0x81, 0x81, 0x7e, 0x7f, 0x81, 0x7f, 0x7f, 0x7e, 0x80, 0x80,
+			0x7f, 0x7f, 0x80, 0x81, 0x80, 0x81, 0x7f, 0x7e, 0x7f, 0x80, 0x7f,
+			0x7d, 0x7e, 0x80, 0x80, 0x7e, 0x81, 0x7f, 0x7f, 0x81, 0x7f, 0x81,
+			0x81, 0x80, 0x80, 0x81, 0x80, 0x7e, 0x7f, 0x7f, 0x7e, 0x80, 0x80,
+			0x7d, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x81,
+			0x7f, 0x7e, 0x7f, 0x7e, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x7f, 0x7f, 0x7d, 0x7e, 0x81,
+			0x7f, 0x7e, 0x7f, 0x81, 0x80, 0x7f, 0x7f, 0x7f, 0x81, 0x82, 0x80,
+			0x80, 0x80, 0x81, 0x80, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7e,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7e, 0x7f, 0x80, 0x81, 0x7f, 0x81,
+			0x81, 0x7f, 0x80, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x81, 0x80, 0x80,
+			0x81, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7f, 0x81,
+			0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7e, 0x80, 0x7f, 0x81, 0x80, 0x7f, 0x81, 0x81,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x81, 0x7f, 0x7f, 0x80, 0x81, 0x80, 0x7e,
+			0x7e, 0x80, 0x81, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f,
+			0x80, 0x81, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80,
+			0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80,
+		},
+		{ // 6
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7e, 0x80,
+			0x7f, 0x80, 0x81, 0x7e, 0x80, 0x7f, 0x81, 0x7e, 0x80, 0x7f, 0x7f,
+			0x81, 0x7e, 0x7f, 0x7f, 0x81, 0x7e, 0x80, 0x7f, 0x81, 0x7e, 0x80,
+			0x80, 0x7e, 0x82, 0x7e, 0x81, 0x7f, 0x81, 0x7f, 0x81, 0x7e, 0x80,
+			0x7f, 0x7f, 0x80, 0x7e, 0x83, 0x7f, 0x83, 0x7c, 0x81, 0x7e, 0x81,
+			0x7e, 0x80, 0x80, 0x7e, 0x81, 0x7c, 0x84, 0x7b, 0x83, 0x7c, 0x82,
+			0x80, 0x80, 0x80, 0x7e, 0x81, 0x7d, 0x81, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x81, 0x7e, 0x81, 0x7d, 0x81, 0x7d, 0x81, 0x7d, 0x82, 0x7e,
+			0x80, 0x81, 0x7f, 0x80, 0x7f, 0x81, 0x7d, 0x81, 0x7d, 0x82, 0x7f,
+			0x81, 0x7e, 0x81, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7e, 0x7f, 0x7f,
+			0x80, 0x7f, 0x7e, 0x81, 0x7f, 0x80, 0x7f, 0x81, 0x81, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x80, 0x7f, 0x7f, 0x80, 0x7e, 0x81,
+			0x80, 0x7f, 0x82, 0x7e, 0x83, 0x7e, 0x80, 0x7e, 0x82, 0x80, 0x7f,
+			0x7e, 0x7f, 0x81, 0x7e, 0x81, 0x7d, 0x82, 0x7c, 0x82, 0x7d, 0x80,
+			0x83, 0x7c, 0x82, 0x7d, 0x84, 0x80, 0x7f, 0x81, 0x7e, 0x81, 0x7d,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7d, 0x80, 0x7e,
+			0x85, 0x7e, 0x81, 0x7f, 0x7d, 0x83, 0x7b, 0x83, 0x7d, 0x80, 0x7f,
+			0x7e, 0x81, 0x7e, 0x83, 0x7d, 0x82, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x7e, 0x81, 0x7c, 0x83, 0x7e, 0x80, 0x81, 0x7f, 0x81, 0x7e, 0x82,
+			0x7c, 0x82, 0x7f, 0x7d, 0x83, 0x7d, 0x82, 0x7e, 0x7f, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7e, 0x81, 0x7f, 0x82, 0x7e, 0x80,
+			0x81, 0x7e, 0x82, 0x7e, 0x7f, 0x81, 0x7e, 0x7f, 0x7f, 0x80, 0x82,
+			0x7e, 0x7f, 0x7f, 0x7f, 0x81, 0x7e, 0x81, 0x80, 0x80, 0x80, 0x7e,
+			0x7f, 0x81, 0x81, 0x7f, 0x80, 0x7f, 0x81, 0x7e, 0x81, 0x7f, 0x80,
+			0x81, 0x7e, 0x81, 0x7d, 0x81, 0x7e, 0x80, 0x81, 0x7d, 0x84, 0x7e,
+			0x80, 0x7f, 0x7e, 0x82, 0x7e, 0x81, 0x7f, 0x7e, 0x81, 0x81, 0x7c,
+			0x80, 0x81, 0x7f, 0x82, 0x7d, 0x81, 0x7f, 0x81, 0x7f, 0x7e, 0x81,
+			0x7f, 0x80, 0x7d, 0x81, 0x7f, 0x7f, 0x7f, 0x7e, 0x80, 0x80, 0x81,
+			0x80, 0x7f, 0x80, 0x81, 0x7d, 0x7f, 0x80, 0x7e, 0x81, 0x7e, 0x80,
+			0x80, 0x81, 0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x7f, 0x81, 0x7f, 0x81,
+			0x7e, 0x80, 0x7e, 0x7d, 0x82, 0x7d, 0x82, 0x7f, 0x7d, 0x83, 0x7f,
+			0x7d, 0x82, 0x7e, 0x81, 0x81, 0x7b, 0x82, 0x80, 0x7e, 0x81, 0x7c,
+			0x82, 0x82, 0x7c, 0x80, 0x7f, 0x81, 0x80, 0x7f, 0x7f, 0x7f, 0x81,
+			0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x82, 0x80, 0x80,
+			0x7e, 0x80, 0x80, 0x7d, 0x82, 0x7e, 0x81, 0x82, 0x7c, 0x81, 0x7e,
+			0x80, 0x81, 0x7d, 0x83, 0x80, 0x7f, 0x7f, 0x81, 0x7e, 0x81, 0x7f,
+			0x7f, 0x82, 0x7d, 0x80, 0x7f, 0x7d, 0x82, 0x7e, 0x7f, 0x81, 0x7e,
+			0x83, 0x7c, 0x80, 0x80, 0x81, 0x80, 0x7e, 0x80, 0x7e, 0x82, 0x7d,
+			0x81, 0x7f, 0x81, 0x80, 0x7b, 0x81, 0x7e, 0x83, 0x7d, 0x7e, 0x80,
+			0x7f, 0x81, 0x7c, 0x7d, 0x82, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x80,
+			0x82, 0x7c, 0x82, 0x80, 0x7c, 0x82, 0x7d, 0x7f, 0x7e, 0x82, 0x80,
+			0x7b, 0x84, 0x82, 0x82, 0x84, 0x7d, 0x7e, 0x85, 0x7f, 0x7f, 0x7c,
+			0x80, 0x82, 0x7a, 0x84, 0x7a, 0x82, 0x84, 0x7c, 0x82, 0x7c, 0x85,
+			0x7f, 0x83, 0x80, 0x7f, 0x85, 0x81, 0x82, 0x7c, 0x82, 0x80, 0x80,
+			0x80, 0x7c, 0x84, 0x7f, 0x80, 0x81, 0x7d, 0x81, 0x80, 0x7e, 0x7f,
+			0x7e, 0x7e, 0x7c, 0x7b, 0x7a, 0x76, 0x79, 0x75, 0x74, 0x75, 0x6f,
+			0x70, 0x6e, 0x6a, 0x68, 0x68, 0x70, 0x79, 0x81, 0x82, 0x8d, 0x95,
+			0x99, 0xa0, 0x9e, 0x9d, 0xa1, 0xa0, 0x99, 0x92, 0x8a, 0x84, 0x80,
+			0x75, 0x6e, 0x6f, 0x71, 0x72, 0x74, 0x7a, 0x86, 0x92, 0x9c, 0xa1,
+			0xa9, 0xaf, 0xac, 0xa5, 0x9c, 0x96, 0x89, 0x7d, 0x70, 0x65, 0x62,
+			0x5b, 0x55, 0x52, 0x55, 0x58, 0x5a, 0x5b, 0x5c, 0x60, 0x5d, 0x59,
+			0x54, 0x52, 0x4d, 0x4d, 0x51, 0x56, 0x7c, 0x92, 0x8c, 0x98, 0xae,
+			0xb5, 0xb3, 0xb2, 0xaa, 0xaa, 0xab, 0x97, 0x85, 0x81, 0x77, 0x6e,
+			0x6b, 0x66, 0x69, 0x75, 0x7d, 0x80, 0x8d, 0x99, 0x9d, 0xa2, 0xa3,
+			0x9f, 0x9b, 0x94, 0x89, 0x82, 0x7a, 0x71, 0x6e, 0x6f, 0x70, 0x76,
+			0x7e, 0x84, 0x8b, 0x8e, 0x8d, 0x8b, 0x87, 0x7f, 0x79, 0x71, 0x68,
+			0x62, 0x5e, 0x5b, 0x57, 0x57, 0x57, 0x55, 0x53, 0x4f, 0x57, 0x89,
+			0xa0, 0x8a, 0x93, 0xb1, 0xb7, 0xaf, 0xa3, 0x95, 0x9e, 0x9f, 0x81,
+			0x6e, 0x75, 0x75, 0x70, 0x6d, 0x66, 0x74, 0x89, 0x87, 0x82, 0x96,
+			0xa4, 0x9f, 0x9b, 0x96, 0x94, 0x94, 0x88, 0x75, 0x71, 0x74, 0x6e,
+			0x6b, 0x6c, 0x71, 0x7b, 0x82, 0x84, 0x8b, 0x91, 0x91, 0x8f, 0x86,
+			0x80, 0x7b, 0x73, 0x71, 0x6f, 0x6b, 0x73, 0x77, 0x71, 0x75, 0x71,
+			0x6e, 0x6d, 0x61, 0x55, 0x54, 0x4b, 0x41, 0x76, 0x9c, 0x85, 0x8f,
+			0xb2, 0xbc, 0xb9, 0xb2, 0x9f, 0xa0, 0xa4, 0x84, 0x68, 0x6b, 0x69,
+			0x5f, 0x60, 0x63, 0x71, 0x8c, 0x96, 0x8d, 0x9a, 0xad, 0xa5, 0x9a,
+			0x91, 0x8a, 0x84, 0x77, 0x64, 0x60, 0x6b, 0x6b, 0x66, 0x71, 0x80,
+			0x88, 0x92, 0x96, 0x97, 0x9d, 0x99, 0x8a, 0x7f, 0x7d, 0x7b, 0x73,
+			0x71, 0x72, 0x73, 0x78, 0x7d, 0x7b, 0x7e, 0x87, 0x86, 0x80, 0x7c,
+			0x75, 0x71, 0x70, 0x65, 0x5e, 0x61, 0x62, 0x5c, 0x5a, 0x58, 0x5e,
+			0x92, 0xab, 0x91, 0x92, 0xb2, 0xb6, 0xa1, 0x98, 0x87, 0x86, 0x8d,
+			0x6f, 0x5c, 0x74, 0x80, 0x76, 0x7a, 0x88, 0x93, 0x9d, 0x97, 0x8b,
+			0x96, 0x9a, 0x87, 0x79, 0x7b, 0x7c, 0x76, 0x6d, 0x6b, 0x78, 0x81,
+			0x7a, 0x78, 0x80, 0x85, 0x86, 0x81, 0x7e, 0x84, 0x8b, 0x86, 0x83,
+			0x88, 0x88, 0x84, 0x82, 0x81, 0x80, 0x82, 0x81, 0x7b, 0x7c, 0x7f,
+			0x7c, 0x79, 0x78, 0x78, 0x78, 0x77, 0x75, 0x75, 0x78, 0x75, 0x6f,
+			0x71, 0x71, 0x6b, 0x6b, 0x6b, 0x68, 0x67, 0x67, 0x6b, 0x92, 0xb0,
+			0x9d, 0x94, 0xae, 0xb2, 0x97, 0x8b, 0x7d, 0x78, 0x83, 0x73, 0x61,
+			0x73, 0x85, 0x81, 0x7e, 0x89, 0x93, 0x9c, 0x98, 0x86, 0x86, 0x8f,
+			0x84, 0x72, 0x75, 0x7d, 0x78, 0x76, 0x76, 0x7d, 0x86, 0x83, 0x7b,
+			0x81, 0x8a, 0x85, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7a, 0x7f, 0x83,
+			0x81, 0x81, 0x88, 0x8a, 0x85, 0x83, 0x84, 0x85, 0x83, 0x7f, 0x7d,
+			0x7d, 0x7c, 0x7a, 0x7a, 0x7a, 0x79, 0x78, 0x79, 0x79, 0x78, 0x78,
+			0x78, 0x76, 0x75, 0x75, 0x76, 0x75, 0x76, 0x76, 0x70, 0x71, 0x75,
+			0x6e, 0x6b, 0x6c, 0x6d, 0x64, 0x77, 0xab, 0xa7, 0x8b, 0x97, 0xba,
+			0xa7, 0x84, 0x89, 0x90, 0x88, 0x7a, 0x7c, 0x78, 0x7f, 0x88, 0x81,
+			0x7e, 0x8c, 0x95, 0x8b, 0x83, 0x86, 0x8f, 0x88, 0x7e, 0x7c, 0x83,
+			0x82, 0x78, 0x75, 0x7a, 0x82, 0x7c, 0x74, 0x77, 0x7f, 0x7f, 0x7b,
+			0x7f, 0x84, 0x84, 0x7f, 0x7d, 0x80, 0x81, 0x81, 0x81, 0x82, 0x84,
+			0x87, 0x86, 0x84, 0x83, 0x83, 0x81, 0x7d, 0x7e, 0x7f, 0x7e, 0x7c,
+			0x7b, 0x7a, 0x7b, 0x7b, 0x7a, 0x79, 0x79, 0x79, 0x78, 0x78, 0x78,
+			0x77, 0x78, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x78, 0x78, 0x77,
+			0x75, 0x77, 0x76, 0x73, 0x6f, 0x75, 0x81, 0x7d, 0x77, 0x87, 0x9b,
+			0x93, 0x88, 0x92, 0x9e, 0x93, 0x85, 0x8c, 0x92, 0x87, 0x7e, 0x82,
+			0x85, 0x81, 0x7e, 0x81, 0x83, 0x85, 0x87, 0x86, 0x85, 0x86, 0x89,
+			0x83, 0x7f, 0x81, 0x83, 0x7c, 0x78, 0x7b, 0x7c, 0x78, 0x76, 0x7a,
+			0x7d, 0x7e, 0x7e, 0x7f, 0x82, 0x83, 0x81, 0x7e, 0x7e, 0x7e, 0x7d,
+			0x7b, 0x7c, 0x7e, 0x7c, 0x7b, 0x7c, 0x7e, 0x7e, 0x7e, 0x7f, 0x80,
+			0x7f, 0x7f, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d,
+			0x7d, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80,
+			0x80, 0x7f, 0x7e, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80,
+			0x7f, 0x80, 0x80, 0x81, 0x82, 0x82, 0x81, 0x7f, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7f, 0x80, 0x81, 0x82, 0x82, 0x7f, 0x83, 0x85, 0x82, 0x7c,
+			0x7a, 0x7d, 0x80, 0x7e, 0x7c, 0x7c, 0x7e, 0x7f, 0x7f, 0x7f, 0x7e,
+			0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x7e, 0x81, 0x81, 0x80, 0x7d, 0x7e,
+			0x81, 0x82, 0x7f, 0x7b, 0x7e, 0x80, 0x82, 0x7f, 0x7d, 0x7f, 0x82,
+			0x84, 0x81, 0x81, 0x7d, 0x82, 0x83, 0x7f, 0x81, 0x80, 0x84, 0x83,
+			0x82, 0x83, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7e, 0x80, 0x81, 0x7e,
+			0x7b, 0x7d, 0x83, 0x80, 0x7f, 0x7d, 0x81, 0x83, 0x80, 0x80, 0x7e,
+			0x7d, 0x82, 0x81, 0x7d, 0x7c, 0x80, 0x83, 0x7f, 0x7f, 0x7a, 0x81,
+			0x81, 0x82, 0x7f, 0x7c, 0x80, 0x81, 0x85, 0x7b, 0x7d, 0x81, 0x82,
+			0x80, 0x7c, 0x7e, 0x80, 0x86, 0x80, 0x7d, 0x7c, 0x82, 0x88, 0x7c,
+			0x7c, 0x7d, 0x82, 0x83, 0x7e, 0x7c, 0x7e, 0x80, 0x83, 0x80, 0x7a,
+			0x7f, 0x81, 0x85, 0x7f, 0x7b, 0x7e, 0x7f, 0x82, 0x81, 0x7b, 0x7e,
+			0x82, 0x81, 0x81, 0x79, 0x81, 0x81, 0x83, 0x7f, 0x7d, 0x80, 0x80,
+			0x84, 0x78, 0x7f, 0x7e, 0x83, 0x7e, 0x7c, 0x7f, 0x81, 0x85, 0x7c,
+			0x7c, 0x7e, 0x85, 0x81, 0x7f, 0x7a, 0x85, 0x82, 0x80, 0x7f, 0x77,
+			0x81, 0x81, 0x81, 0x7d, 0x7c, 0x81, 0x83, 0x81, 0x7a, 0x81, 0x82,
+			0x83, 0x7d, 0x7c, 0x82, 0x80, 0x81, 0x7a, 0x80, 0x80, 0x80, 0x7e,
+			0x7c, 0x82, 0x7f, 0x82, 0x7c, 0x7f, 0x81, 0x81, 0x80, 0x7b, 0x81,
+			0x81, 0x81, 0x7d, 0x80, 0x7e, 0x82, 0x80, 0x7c, 0x80, 0x7d, 0x84,
+			0x7f, 0x7f, 0x7f, 0x80, 0x81, 0x7f, 0x80, 0x7d, 0x82, 0x7e, 0x82,
+			0x7d, 0x7e, 0x82, 0x7f, 0x80, 0x7d, 0x7f, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x83, 0x80, 0x80, 0x7e, 0x7f, 0x82, 0x7e, 0x80, 0x7f, 0x80,
+			0x81, 0x7e, 0x7e, 0x7f, 0x7f, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x83,
+			0x7f, 0x7e, 0x7e, 0x7e, 0x84, 0x7b, 0x7f, 0x80, 0x7e, 0x83, 0x7e,
+			0x80, 0x7e, 0x83, 0x81, 0x7e, 0x7f, 0x7e, 0x84, 0x7e, 0x7d, 0x80,
+			0x7f, 0x81, 0x7e, 0x7e, 0x7f, 0x82, 0x81, 0x7f, 0x7f, 0x7f, 0x82,
+			0x7e, 0x80, 0x7e, 0x80, 0x81, 0x7e, 0x7f, 0x80, 0x7e, 0x80, 0x81,
+			0x7d, 0x81, 0x7e, 0x83, 0x7f, 0x7f, 0x81, 0x7c, 0x82, 0x7e, 0x81,
+			0x7d, 0x81, 0x81, 0x80, 0x7f, 0x7d, 0x82, 0x7e, 0x81, 0x7e, 0x7f,
+			0x82, 0x7e, 0x81, 0x7d, 0x80, 0x81, 0x7e, 0x82, 0x7f, 0x7f, 0x7f,
+			0x81, 0x80, 0x7e, 0x81, 0x7f, 0x7e, 0x80, 0x82, 0x7e, 0x7d, 0x80,
+			0x82, 0x7d, 0x7c, 0x82, 0x7f, 0x81, 0x7e, 0x80, 0x81, 0x7c, 0x80,
+			0x7f, 0x80, 0x80, 0x7d, 0x83, 0x7f, 0x80, 0x7f, 0x7d, 0x82, 0x7d,
+			0x81, 0x80, 0x7f, 0x7f, 0x80, 0x81, 0x7e, 0x80, 0x80, 0x7e, 0x80,
+			0x81, 0x80, 0x7d, 0x7f, 0x82, 0x7e, 0x7d, 0x81, 0x80, 0x81, 0x7e,
+			0x80, 0x81, 0x7e, 0x81, 0x7f, 0x7f, 0x82, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x80, 0x7e, 0x7e, 0x82, 0x7e, 0x80, 0x7e, 0x80, 0x81, 0x7f,
+			0x80, 0x7d, 0x80, 0x81, 0x7f, 0x7f, 0x7f, 0x81, 0x81, 0x7e, 0x80,
+			0x7d, 0x82, 0x7f, 0x7f, 0x7f, 0x7e, 0x81, 0x7f, 0x7f, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x81, 0x7f, 0x7e, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x7d, 0x80, 0x7f, 0x80, 0x7f, 0x81, 0x7f, 0x7f, 0x7e, 0x81,
+			0x7d, 0x82, 0x7e, 0x7e, 0x81, 0x7e, 0x83, 0x7c, 0x81, 0x7f, 0x80,
+			0x80, 0x7e, 0x81, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x80, 0x7f, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x7f, 0x81, 0x7f, 0x7f, 0x81, 0x7e, 0x82,
+			0x7d, 0x80, 0x80, 0x7f, 0x81, 0x7e, 0x80, 0x7f, 0x80, 0x80, 0x7e,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x81, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x7e, 0x81, 0x7e,
+			0x80, 0x7f, 0x7f, 0x81, 0x7e, 0x81, 0x7f, 0x81, 0x7f, 0x80, 0x7f,
+			0x81, 0x7f, 0x7f, 0x80, 0x7e, 0x81, 0x7f, 0x80, 0x7e, 0x80, 0x7f,
+			0x7f, 0x7f, 0x80, 0x81, 0x7e, 0x80, 0x7f, 0x80, 0x80, 0x7e, 0x81,
+			0x7f, 0x80, 0x80, 0x7e, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x81, 0x7f, 0x80, 0x7f, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x80, 0x7e, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f,
+			0x7e, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x80, 0x7f, 0x7f, 0x80, 0x7e,
+			0x80, 0x81, 0x80, 0x81, 0x81, 0x82, 0x81, 0x80, 0x80, 0x81, 0x81,
+			0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x7f,
+			0x7e, 0x7e, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d,
+			0x7d, 0x7e, 0x7d, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x80, 0x80, 0x81, 0x81, 0x81, 0x82, 0x81, 0x81, 0x81,
+			0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, 0x80, 0x7f, 0x7f,
+			0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+		},
+		{ // 7
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7e, 0x80,
+			0x7f, 0x80, 0x81, 0x7e, 0x80, 0x7f, 0x81, 0x7e, 0x80, 0x7f, 0x7f,
+			0x81, 0x7e, 0x7f, 0x7f, 0x81, 0x7e, 0x80, 0x7f, 0x81, 0x7e, 0x80,
+			0x80, 0x7e, 0x82, 0x7e, 0x81, 0x7f, 0x81, 0x7f, 0x81, 0x7e, 0x80,
+			0x7f, 0x7f, 0x80, 0x7e, 0x83, 0x7f, 0x83, 0x7c, 0x81, 0x7e, 0x81,
+			0x7e, 0x80, 0x80, 0x7e, 0x81, 0x7c, 0x84, 0x7b, 0x83, 0x7c, 0x82,
+			0x80, 0x80, 0x80, 0x7e, 0x81, 0x7d, 0x81, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x81, 0x7e, 0x81, 0x7d, 0x81, 0x7d, 0x81, 0x7d, 0x82, 0x7e,
+			0x80, 0x81, 0x7f, 0x80, 0x7f, 0x81, 0x7d, 0x81, 0x7d, 0x82, 0x7f,
+			0x81, 0x7e, 0x81, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7e, 0x7f, 0x7f,
+			0x80, 0x7f, 0x7e, 0x81, 0x7f, 0x80, 0x7f, 0x81, 0x81, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x80, 0x7f, 0x7f, 0x80, 0x7e, 0x81,
+			0x80, 0x7f, 0x82, 0x7e, 0x83, 0x7e, 0x80, 0x7e, 0x82, 0x80, 0x7f,
+			0x7e, 0x7f, 0x81, 0x7e, 0x81, 0x7d, 0x82, 0x7c, 0x82, 0x7d, 0x80,
+			0x83, 0x7c, 0x82, 0x7d, 0x84, 0x80, 0x7f, 0x81, 0x7e, 0x81, 0x7d,
+			0x7f, 0x80, 0x7f, 0x80, 0x81, 0x7f, 0x80, 0x7f, 0x7d, 0x80, 0x7e,
+			0x85, 0x7d, 0x81, 0x7f, 0x7e, 0x83, 0x7b, 0x83, 0x7d, 0x81, 0x7e,
+			0x7e, 0x80, 0x7e, 0x83, 0x7d, 0x83, 0x7e, 0x80, 0x7f, 0x7f, 0x81,
+			0x7d, 0x82, 0x7b, 0x83, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x81,
+			0x7c, 0x82, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7e, 0x80,
+			0x80, 0x81, 0x7e, 0x7f, 0x81, 0x80, 0x7e, 0x81, 0x80, 0x7f, 0x81,
+			0x7c, 0x81, 0x7f, 0x81, 0x81, 0x7f, 0x80, 0x7e, 0x81, 0x7d, 0x7e,
+			0x81, 0x7f, 0x81, 0x81, 0x7c, 0x81, 0x7f, 0x7e, 0x82, 0x7e, 0x81,
+			0x81, 0x7e, 0x81, 0x7e, 0x81, 0x80, 0x7e, 0x7f, 0x7f, 0x7f, 0x7d,
+			0x82, 0x7f, 0x80, 0x81, 0x80, 0x7f, 0x7e, 0x7f, 0x80, 0x7f, 0x80,
+			0x81, 0x7f, 0x7f, 0x80, 0x7e, 0x7e, 0x81, 0x7e, 0x81, 0x81, 0x7f,
+			0x7f, 0x7d, 0x82, 0x7e, 0x7f, 0x81, 0x7f, 0x7f, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x7e, 0x80, 0x81, 0x7d, 0x80, 0x80, 0x7e, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x82, 0x7e, 0x7f, 0x81, 0x7d, 0x82, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7e, 0x7f,
+			0x80, 0x7f, 0x80, 0x82, 0x7f, 0x7f, 0x81, 0x7f, 0x7f, 0x7e, 0x80,
+			0x7f, 0x7f, 0x81, 0x7e, 0x81, 0x80, 0x7e, 0x80, 0x7f, 0x7f, 0x80,
+			0x81, 0x7d, 0x7f, 0x82, 0x81, 0x80, 0x7d, 0x7f, 0x82, 0x7f, 0x7f,
+			0x80, 0x7e, 0x82, 0x7e, 0x7e, 0x80, 0x80, 0x7f, 0x81, 0x7e, 0x7d,
+			0x82, 0x7b, 0x83, 0x7e, 0x7f, 0x83, 0x7f, 0x82, 0x7d, 0x80, 0x80,
+			0x7f, 0x7f, 0x7d, 0x82, 0x7e, 0x80, 0x81, 0x7e, 0x81, 0x7e, 0x7f,
+			0x81, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7e, 0x80, 0x81,
+			0x81, 0x7e, 0x7e, 0x81, 0x7e, 0x7f, 0x81, 0x7e, 0x80, 0x81, 0x7e,
+			0x7f, 0x80, 0x81, 0x7c, 0x82, 0x7e, 0x7f, 0x7f, 0x7e, 0x80, 0x7f,
+			0x84, 0x7e, 0x82, 0x80, 0x7d, 0x83, 0x7e, 0x7e, 0x7f, 0x80, 0x81,
+			0x7d, 0x83, 0x81, 0x7e, 0x81, 0x7d, 0x7e, 0x82, 0x7d, 0x7d, 0x80,
+			0x7e, 0x7e, 0x82, 0x7f, 0x7e, 0x80, 0x80, 0x80, 0x7f, 0x7d, 0x80,
+			0x80, 0x81, 0x7f, 0x7e, 0x83, 0x81, 0x80, 0x81, 0x7f, 0x81, 0x7f,
+			0x7f, 0x7f, 0x7d, 0x7f, 0x7e, 0x7c, 0x7c, 0x7e, 0x7e, 0x81, 0x7f,
+			0x80, 0x81, 0x80, 0x7f, 0x83, 0x82, 0x7f, 0x81, 0x80, 0x80, 0x7f,
+			0x7f, 0x82, 0x82, 0x84, 0x85, 0x85, 0x86, 0x85, 0x86, 0x85, 0x85,
+			0x85, 0x82, 0x83, 0x82, 0x7f, 0x7e, 0x80, 0x7f, 0x7e, 0x7e, 0x7b,
+			0x79, 0x7b, 0x79, 0x76, 0x72, 0x6f, 0x6c, 0x69, 0x67, 0x60, 0x5e,
+			0x5f, 0x5c, 0x58, 0x57, 0x56, 0x57, 0x7a, 0xa0, 0xa2, 0xa0, 0xac,
+			0xb6, 0xb7, 0xb1, 0xa0, 0x93, 0x97, 0x95, 0x82, 0x72, 0x68, 0x64,
+			0x69, 0x6e, 0x68, 0x6b, 0x7c, 0x89, 0x90, 0x96, 0x93, 0x95, 0xa1,
+			0x9f, 0x91, 0x89, 0x84, 0x80, 0x7b, 0x73, 0x71, 0x76, 0x7a, 0x7a,
+			0x7c, 0x81, 0x83, 0x83, 0x83, 0x83, 0x84, 0x84, 0x7e, 0x77, 0x74,
+			0x6f, 0x6c, 0x66, 0x60, 0x59, 0x57, 0x53, 0x4b, 0x4c, 0x4a, 0x4e,
+			0x54, 0x73, 0xa7, 0xb1, 0xaa, 0xb7, 0xc1, 0xbc, 0xb7, 0x9f, 0x83,
+			0x7b, 0x80, 0x6c, 0x56, 0x58, 0x60, 0x70, 0x83, 0x87, 0x88, 0xa0,
+			0xb3, 0xad, 0xa3, 0x98, 0x88, 0x83, 0x7c, 0x68, 0x5c, 0x60, 0x68,
+			0x6e, 0x75, 0x79, 0x83, 0x98, 0xa3, 0x9f, 0x96, 0x91, 0x8b, 0x85,
+			0x7c, 0x74, 0x76, 0x7c, 0x7d, 0x7e, 0x81, 0x7d, 0x7a, 0x7b, 0x78,
+			0x74, 0x70, 0x6c, 0x67, 0x63, 0x5f, 0x59, 0x55, 0x51, 0x58, 0x5e,
+			0x70, 0xa2, 0xbd, 0xb4, 0xaa, 0xb3, 0xb1, 0xa3, 0x8f, 0x6e, 0x63,
+			0x6c, 0x69, 0x5f, 0x66, 0x75, 0x8b, 0xa2, 0xa5, 0x9c, 0xa1, 0xa7,
+			0x9d, 0x8a, 0x78, 0x6b, 0x6d, 0x70, 0x6c, 0x6a, 0x74, 0x82, 0x8a,
+			0x8b, 0x85, 0x85, 0x8c, 0x8f, 0x87, 0x80, 0x81, 0x84, 0x85, 0x83,
+			0x82, 0x83, 0x85, 0x82, 0x7e, 0x7b, 0x79, 0x78, 0x78, 0x77, 0x76,
+			0x74, 0x71, 0x6c, 0x67, 0x61, 0x5b, 0x59, 0x56, 0x54, 0x5b, 0x6a,
+			0x7f, 0x9c, 0xb8, 0xbe, 0xb3, 0xa4, 0x9c, 0x8c, 0x78, 0x67, 0x5b,
+			0x5c, 0x6c, 0x7f, 0x88, 0x8f, 0x9b, 0xa8, 0xab, 0xa3, 0x93, 0x83,
+			0x78, 0x73, 0x6c, 0x64, 0x66, 0x72, 0x84, 0x8f, 0x93, 0x91, 0x90,
+			0x91, 0x8c, 0x81, 0x74, 0x70, 0x73, 0x78, 0x79, 0x7c, 0x85, 0x8d,
+			0x8f, 0x8d, 0x8c, 0x8a, 0x86, 0x80, 0x7a, 0x77, 0x76, 0x76, 0x76,
+			0x77, 0x77, 0x76, 0x73, 0x70, 0x6b, 0x65, 0x5e, 0x5a, 0x59, 0x57,
+			0x5a, 0x66, 0x74, 0x85, 0xa7, 0xc1, 0xbc, 0xa8, 0x99, 0x8e, 0x7f,
+			0x72, 0x64, 0x5c, 0x68, 0x80, 0x90, 0x95, 0x99, 0x9f, 0xa1, 0x9c,
+			0x8c, 0x79, 0x6c, 0x6b, 0x70, 0x74, 0x7a, 0x83, 0x8e, 0x99, 0x9a,
+			0x91, 0x83, 0x7b, 0x75, 0x6e, 0x6a, 0x69, 0x6e, 0x7c, 0x8e, 0x98,
+			0x98, 0x96, 0x93, 0x8a, 0x81, 0x7b, 0x78, 0x7a, 0x7f, 0x81, 0x80,
+			0x7d, 0x7b, 0x78, 0x77, 0x75, 0x73, 0x71, 0x71, 0x70, 0x6d, 0x68,
+			0x65, 0x66, 0x68, 0x68, 0x66, 0x64, 0x6a, 0x76, 0x84, 0x9e, 0xba,
+			0xbf, 0xab, 0x95, 0x84, 0x75, 0x6c, 0x69, 0x6d, 0x76, 0x87, 0x97,
+			0x9e, 0x9f, 0x9c, 0x95, 0x8d, 0x84, 0x78, 0x6c, 0x6b, 0x72, 0x7a,
+			0x80, 0x87, 0x8d, 0x91, 0x92, 0x8d, 0x83, 0x78, 0x70, 0x6d, 0x6e,
+			0x73, 0x7b, 0x84, 0x8d, 0x94, 0x94, 0x8f, 0x88, 0x83, 0x81, 0x82,
+			0x84, 0x84, 0x85, 0x83, 0x7f, 0x7a, 0x76, 0x74, 0x75, 0x77, 0x77,
+			0x76, 0x74, 0x73, 0x72, 0x70, 0x6e, 0x6e, 0x6d, 0x69, 0x65, 0x65,
+			0x68, 0x69, 0x67, 0x6e, 0x82, 0x93, 0xa2, 0xac, 0xab, 0xa1, 0x95,
+			0x88, 0x7a, 0x71, 0x71, 0x78, 0x80, 0x85, 0x8a, 0x91, 0x96, 0x98,
+			0x95, 0x8d, 0x85, 0x7f, 0x7a, 0x75, 0x74, 0x78, 0x81, 0x88, 0x8b,
+			0x89, 0x88, 0x86, 0x7f, 0x74, 0x6d, 0x6c, 0x71, 0x7a, 0x81, 0x85,
+			0x86, 0x8c, 0x94, 0x94, 0x8d, 0x86, 0x82, 0x80, 0x80, 0x80, 0x7e,
+			0x7c, 0x7d, 0x7f, 0x7e, 0x7d, 0x7b, 0x7a, 0x78, 0x76, 0x73, 0x71,
+			0x6e, 0x6c, 0x6d, 0x6f, 0x6f, 0x6f, 0x71, 0x72, 0x71, 0x70, 0x6e,
+			0x69, 0x67, 0x70, 0x7f, 0x96, 0xac, 0xb2, 0xa8, 0x9c, 0x93, 0x89,
+			0x81, 0x79, 0x73, 0x75, 0x80, 0x8d, 0x95, 0x96, 0x94, 0x91, 0x8d,
+			0x87, 0x7e, 0x74, 0x6f, 0x73, 0x7a, 0x80, 0x85, 0x88, 0x87, 0x86,
+			0x84, 0x81, 0x7c, 0x77, 0x75, 0x74, 0x75, 0x79, 0x7e, 0x82, 0x88,
+			0x91, 0x96, 0x92, 0x8b, 0x85, 0x81, 0x7e, 0x7d, 0x7f, 0x81, 0x83,
+			0x85, 0x85, 0x80, 0x7c, 0x7b, 0x7b, 0x78, 0x76, 0x74, 0x72, 0x72,
+			0x74, 0x75, 0x74, 0x74, 0x75, 0x72, 0x6d, 0x6d, 0x6f, 0x6d, 0x6b,
+			0x70, 0x75, 0x76, 0x78, 0x78, 0x73, 0x6d, 0x6d, 0x70, 0x7b, 0x8d,
+			0x94, 0x91, 0x8e, 0x8d, 0x83, 0x7a, 0x79, 0x70, 0x6a, 0x7e, 0x9c,
+			0xa8, 0xa4, 0xa2, 0x9e, 0x94, 0x8f, 0x8c, 0x7f, 0x6f, 0x70, 0x7a,
+			0x7f, 0x83, 0x8a, 0x8e, 0x8c, 0x90, 0x94, 0x8f, 0x83, 0x7e, 0x7d,
+			0x77, 0x74, 0x77, 0x7a, 0x7a, 0x7e, 0x84, 0x84, 0x82, 0x83, 0x85,
+			0x83, 0x80, 0x7f, 0x7b, 0x77, 0x77, 0x7c, 0x82, 0x86, 0x8a, 0x8c,
+			0x8b, 0x89, 0x89, 0x89, 0x86, 0x81, 0x7c, 0x79, 0x79, 0x7a, 0x7b,
+			0x7b, 0x7c, 0x7b, 0x7a, 0x79, 0x78, 0x76, 0x75, 0x73, 0x72, 0x72,
+			0x72, 0x73, 0x74, 0x75, 0x75, 0x76, 0x78, 0x7a, 0x7b, 0x7b, 0x7d,
+			0x7d, 0x7c, 0x7b, 0x7d, 0x7d, 0x7c, 0x7b, 0x7b, 0x7c, 0x7b, 0x7a,
+			0x79, 0x77, 0x75, 0x7a, 0x86, 0x8d, 0x8e, 0x8e, 0x91, 0x91, 0x8e,
+			0x8d, 0x8b, 0x88, 0x85, 0x87, 0x89, 0x88, 0x87, 0x87, 0x86, 0x84,
+			0x84, 0x84, 0x82, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x7f, 0x7d,
+			0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d,
+			0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x82, 0x84, 0x83, 0x80, 0x7e, 0x7c,
+			0x7d, 0x7e, 0x81, 0x83, 0x85, 0x86, 0x86, 0x85, 0x83, 0x81, 0x7f,
+			0x7e, 0x7c, 0x7b, 0x7a, 0x7a, 0x7a, 0x7b, 0x7b, 0x7a, 0x7a, 0x7b,
+			0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x7a, 0x7a, 0x7c, 0x7d, 0x7e, 0x7e,
+			0x7d, 0x7c, 0x7d, 0x7f, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
+			0x82, 0x82, 0x82, 0x82, 0x84, 0x85, 0x86, 0x86, 0x85, 0x84, 0x85,
+			0x85, 0x85, 0x83, 0x83, 0x83, 0x83, 0x84, 0x84, 0x83, 0x81, 0x80,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d,
+			0x7e, 0x7f, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7e,
+			0x7e, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7d,
+			0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x7e, 0x7f, 0x7e, 0x7e,
+			0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7c,
+			0x7c, 0x7c, 0x7b, 0x7c, 0x7d, 0x7f, 0x80, 0x82, 0x84, 0x87, 0x89,
+			0x88, 0x87, 0x88, 0x8a, 0x8b, 0x8a, 0x88, 0x85, 0x85, 0x86, 0x85,
+			0x84, 0x82, 0x81, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7e, 0x7f, 0x80,
+			0x82, 0x81, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d,
+			0x7b, 0x7c, 0x7e, 0x80, 0x80, 0x7f, 0x80, 0x82, 0x83, 0x84, 0x83,
+			0x80, 0x7e, 0x80, 0x7f, 0x7b, 0x79, 0x78, 0x78, 0x79, 0x79, 0x79,
+			0x77, 0x74, 0x77, 0x78, 0x77, 0x77, 0x77, 0x76, 0x73, 0x73, 0x72,
+			0x6f, 0x6f, 0x6e, 0x6e, 0x6f, 0x70, 0x70, 0x72, 0x70, 0x6d, 0x6a,
+			0x69, 0x67, 0x6d, 0x7e, 0x80, 0x83, 0x9a, 0xab, 0xaa, 0xa3, 0xa2,
+			0x9a, 0x95, 0x94, 0x8c, 0x7e, 0x78, 0x7c, 0x7c, 0x7f, 0x84, 0x86,
+			0x86, 0x8c, 0x93, 0x8f, 0x89, 0x86, 0x84, 0x80, 0x7f, 0x7b, 0x72,
+			0x73, 0x77, 0x79, 0x79, 0x7b, 0x7c, 0x7e, 0x84, 0x85, 0x82, 0x80,
+			0x82, 0x82, 0x80, 0x7e, 0x7b, 0x7f, 0x85, 0x84, 0x81, 0x84, 0x8a,
+			0x8b, 0x8a, 0x88, 0x85, 0x87, 0x89, 0x86, 0x81, 0x7e, 0x7e, 0x7d,
+			0x7c, 0x78, 0x75, 0x76, 0x76, 0x70, 0x6c, 0x6e, 0x71, 0x74, 0x73,
+			0x71, 0x71, 0x74, 0x74, 0x73, 0x72, 0x72, 0x71, 0x6e, 0x6b, 0x69,
+			0x6b, 0x6b, 0x68, 0x67, 0x69, 0x6a, 0x67, 0x64, 0x62, 0x61, 0x72,
+			0x96, 0xab, 0xac, 0xaa, 0xaf, 0xaf, 0xaa, 0x9e, 0x8d, 0x85, 0x86,
+			0x88, 0x82, 0x7f, 0x82, 0x88, 0x90, 0x91, 0x8f, 0x8c, 0x8d, 0x8c,
+			0x87, 0x81, 0x7d, 0x7c, 0x7b, 0x7b, 0x76, 0x75, 0x77, 0x78, 0x77,
+			0x76, 0x76, 0x79, 0x7d, 0x7e, 0x80, 0x82, 0x85, 0x87, 0x86, 0x84,
+			0x81, 0x81, 0x84, 0x86, 0x82, 0x80, 0x83, 0x85, 0x85, 0x82, 0x82,
+			0x85, 0x88, 0x88, 0x84, 0x81, 0x81, 0x7e, 0x7a, 0x77, 0x73, 0x72,
+			0x74, 0x73, 0x6f, 0x6d, 0x6e, 0x70, 0x72, 0x73, 0x72, 0x74, 0x76,
+			0x75, 0x73, 0x72, 0x73, 0x72, 0x72, 0x70, 0x6f, 0x70, 0x71, 0x6f,
+			0x6e, 0x70, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x75, 0x78, 0x79, 0x80,
+			0x8a, 0x94, 0xa3, 0xab, 0xa9, 0xa4, 0xa3, 0x9f, 0x98, 0x93, 0x8e,
+			0x8d, 0x8e, 0x8d, 0x89, 0x89, 0x8a, 0x8a, 0x89, 0x87, 0x85, 0x82,
+			0x82, 0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7b, 0x79, 0x78, 0x78,
+			0x78, 0x76, 0x76, 0x79, 0x7a, 0x7c, 0x7f, 0x82, 0x87, 0x8b, 0x8d,
+			0x8d, 0x8d, 0x8e, 0x8e, 0x89, 0x85, 0x83, 0x81, 0x81, 0x80, 0x7c,
+			0x7b, 0x7b, 0x7c, 0x7b, 0x7a, 0x78, 0x76, 0x75, 0x73, 0x70, 0x6e,
+			0x6e, 0x6d, 0x6c, 0x6d, 0x6f, 0x71, 0x72, 0x73, 0x75, 0x76, 0x75,
+			0x75, 0x78, 0x79, 0x77, 0x77, 0x77, 0x78, 0x78, 0x7a, 0x79, 0x77,
+			0x79, 0x7a, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x7e, 0x7a, 0x78, 0x78,
+			0x7d, 0x85, 0x8c, 0x92, 0x95, 0x9b, 0xa4, 0xa4, 0xa0, 0x9f, 0xa0,
+			0x9e, 0x9b, 0x97, 0x92, 0x90, 0x8f, 0x8c, 0x87, 0x85, 0x84, 0x82,
+			0x81, 0x7f, 0x7e, 0x7f, 0x80, 0x7e, 0x7b, 0x7a, 0x79, 0x76, 0x75,
+			0x74, 0x73, 0x73, 0x75, 0x77, 0x77, 0x79, 0x7c, 0x81, 0x84, 0x85,
+			0x86, 0x89, 0x8b, 0x8c, 0x8b, 0x8a, 0x8b, 0x8b, 0x88, 0x83, 0x81,
+			0x80, 0x7d, 0x7a, 0x77, 0x75, 0x76, 0x75, 0x73, 0x72, 0x72, 0x72,
+			0x70, 0x6f, 0x6e, 0x6d, 0x6d, 0x6d, 0x6d, 0x6e, 0x70, 0x71, 0x72,
+			0x75, 0x76, 0x77, 0x79, 0x79, 0x7a, 0x7b, 0x7c, 0x7c, 0x7d, 0x7f,
+			0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7e, 0x7e,
+			0x7b, 0x7b, 0x7e, 0x7f, 0x7f, 0x80, 0x84, 0x89, 0x90, 0x94, 0x94,
+			0x99, 0x9f, 0xa1, 0x9f, 0x9f, 0xa0, 0xa1, 0xa1, 0x9d, 0x99, 0x98,
+			0x94, 0x90, 0x8c, 0x88, 0x84, 0x82, 0x7f, 0x7b, 0x7a, 0x7a, 0x79,
+			0x76, 0x75, 0x73, 0x71, 0x71, 0x71, 0x70, 0x71, 0x74, 0x76, 0x77,
+			0x79, 0x7c, 0x7f, 0x81, 0x83, 0x85, 0x87, 0x8a, 0x89, 0x89, 0x89,
+			0x8a, 0x88, 0x85, 0x82, 0x81, 0x7e, 0x7c, 0x79, 0x76, 0x74, 0x73,
+			0x70, 0x6e, 0x6d, 0x6c, 0x6c, 0x6b, 0x6b, 0x6b, 0x6c, 0x6e, 0x6e,
+			0x6f, 0x70, 0x73, 0x73, 0x74, 0x76, 0x78, 0x7a, 0x7b, 0x7c, 0x7d,
+			0x7f, 0x80, 0x7f, 0x80, 0x81, 0x81, 0x7f, 0x81, 0x81, 0x7f, 0x7e,
+			0x7f, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7b, 0x7a, 0x7a, 0x79, 0x78,
+			0x79, 0x7c, 0x81, 0x85, 0x88, 0x8b, 0x92, 0x97, 0x98, 0x9a, 0x9d,
+			0xa0, 0xa1, 0xa0, 0x9f, 0x9e, 0x9d, 0x9b, 0x99, 0x94, 0x90, 0x8e,
+			0x8a, 0x86, 0x83, 0x80, 0x7e, 0x7c, 0x7b, 0x78, 0x76, 0x75, 0x73,
+			0x72, 0x70, 0x6f, 0x6f, 0x6f, 0x6f, 0x71, 0x72, 0x73, 0x76, 0x79,
+			0x7b, 0x7d, 0x7f, 0x83, 0x85, 0x86, 0x86, 0x87, 0x87, 0x86, 0x84,
+			0x83, 0x82, 0x81, 0x7f, 0x7d, 0x7b, 0x79, 0x78, 0x75, 0x74, 0x73,
+			0x73, 0x71, 0x71, 0x72, 0x71, 0x71, 0x72, 0x72, 0x73, 0x73, 0x74,
+			0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7c, 0x7c, 0x7d,
+			0x7e, 0x7f, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7e, 0x7d, 0x7d, 0x7e,
+			0x7e, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x81, 0x86, 0x85,
+			0x87, 0x8d, 0x91, 0x93, 0x94, 0x96, 0x9a, 0x9d, 0x9d, 0x9c, 0x9c,
+			0x9c, 0x9b, 0x99, 0x96, 0x92, 0x90, 0x8e, 0x8a, 0x86, 0x84, 0x82,
+			0x80, 0x7e, 0x7c, 0x7a, 0x79, 0x77, 0x75, 0x75, 0x75, 0x74, 0x73,
+			0x73, 0x73, 0x74, 0x75, 0x75, 0x77, 0x79, 0x7b, 0x7d, 0x7e, 0x81,
+			0x83, 0x83, 0x85, 0x86, 0x86, 0x86, 0x87, 0x86, 0x84, 0x83, 0x82,
+			0x81, 0x7f, 0x7d, 0x7c, 0x7a, 0x79, 0x77, 0x76, 0x76, 0x76, 0x75,
+			0x75, 0x75, 0x75, 0x75, 0x75, 0x76, 0x76, 0x77, 0x77, 0x78, 0x78,
+			0x7a, 0x7b, 0x7a, 0x7a, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x80, 0x81, 0x83, 0x84, 0x84, 0x86, 0x88, 0x89,
+			0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8d, 0x8e, 0x8e, 0x8e, 0x8d, 0x8d,
+			0x8c, 0x8b, 0x8a, 0x89, 0x87, 0x86, 0x85, 0x84, 0x82, 0x81, 0x7f,
+			0x7e, 0x7e, 0x7d, 0x7c, 0x7b, 0x7a, 0x79, 0x79, 0x79, 0x78, 0x77,
+			0x78, 0x78, 0x78, 0x77, 0x78, 0x78, 0x79, 0x79, 0x79, 0x79, 0x7a,
+			0x7a, 0x7a, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+			0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7b,
+			0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7e,
+			0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x81, 0x82, 0x82, 0x82,
+			0x82, 0x82, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x84, 0x84, 0x84,
+			0x84, 0x85, 0x85, 0x86, 0x86, 0x87, 0x87, 0x88, 0x88, 0x89, 0x89,
+			0x89, 0x88, 0x88, 0x87, 0x87, 0x87, 0x86, 0x85, 0x84, 0x83, 0x83,
+			0x82, 0x81, 0x80, 0x80, 0x7f, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7b,
+			0x7b, 0x7a, 0x7a, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
+			0x79, 0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c,
+			0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d,
+			0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x81, 0x81, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81,
+			0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x82,
+			0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x82, 0x81,
+			0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d,
+			0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d,
+			0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7f, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+		},
+		{ // 8
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x81,
+			0x81, 0x89, 0x91, 0x84, 0x81, 0x88, 0x79, 0x6b, 0x71, 0x74, 0x77,
+			0x81, 0x84, 0x87, 0x87, 0x7b, 0x6f, 0x6e, 0x6a, 0x64, 0x65, 0x63,
+			0x62, 0x67, 0x73, 0x71, 0x69, 0x84, 0x88, 0x70, 0x76, 0x81, 0x71,
+			0x63, 0x6f, 0x6b, 0x69, 0x80, 0x91, 0x95, 0xa0, 0xa8, 0xa3, 0xa1,
+			0x9c, 0x90, 0x86, 0x82, 0x79, 0x78, 0x7f, 0x81, 0x89, 0x92, 0x9c,
+			0xa4, 0xa5, 0x9e, 0x96, 0x8e, 0x83, 0x79, 0x72, 0x6d, 0x6a, 0x6f,
+			0x6e, 0x71, 0x7b, 0x7a, 0x7e, 0x7e, 0x7b, 0x79, 0x6e, 0x67, 0x62,
+			0x66, 0x5e, 0x56, 0x51, 0x4f, 0x95, 0xa8, 0x7f, 0x9b, 0xc6, 0xa6,
+			0x81, 0x93, 0x89, 0x6f, 0x69, 0x68, 0x72, 0x71, 0x6e, 0x84, 0x92,
+			0x8c, 0x97, 0xa1, 0x9c, 0x91, 0x8a, 0x88, 0x80, 0x73, 0x6d, 0x74,
+			0x74, 0x72, 0x7c, 0x90, 0x9a, 0x95, 0x99, 0x9b, 0x8c, 0x7f, 0x7c,
+			0x74, 0x6f, 0x6c, 0x73, 0x7e, 0x7c, 0x7d, 0x83, 0x7f, 0x7b, 0x77,
+			0x73, 0x70, 0x66, 0x62, 0x5f, 0x5a, 0x51, 0x74, 0xa6, 0x91, 0x90,
+			0xba, 0xb9, 0x94, 0x8f, 0x99, 0x7f, 0x65, 0x65, 0x6e, 0x6c, 0x65,
+			0x74, 0x91, 0x90, 0x8e, 0xa0, 0xa5, 0x93, 0x8b, 0x8b, 0x7d, 0x72,
+			0x6f, 0x6f, 0x73, 0x76, 0x81, 0x90, 0x93, 0x95, 0x9d, 0x96, 0x8d,
+			0x8b, 0x82, 0x76, 0x73, 0x72, 0x6e, 0x71, 0x6f, 0x6c, 0x6e, 0x6a,
+			0x6a, 0x6c, 0x6a, 0x67, 0x65, 0x64, 0x5f, 0x5b, 0x58, 0x71, 0x9a,
+			0x8d, 0x90, 0xb7, 0xb1, 0x95, 0x95, 0x9a, 0x82, 0x6e, 0x6a, 0x6b,
+			0x68, 0x64, 0x72, 0x86, 0x8f, 0x91, 0x9e, 0xa7, 0x9b, 0x94, 0x92,
+			0x84, 0x77, 0x74, 0x6e, 0x6c, 0x74, 0x7c, 0x85, 0x8c, 0x93, 0x9a,
+			0x99, 0x93, 0x8d, 0x87, 0x80, 0x7b, 0x77, 0x71, 0x6f, 0x6f, 0x6a,
+			0x69, 0x66, 0x63, 0x67, 0x64, 0x61, 0x62, 0x5f, 0x60, 0x5e, 0x5a,
+			0x59, 0x74, 0x9f, 0x92, 0x98, 0xc1, 0xaf, 0x8e, 0x95, 0x90, 0x73,
+			0x6a, 0x69, 0x6b, 0x6c, 0x69, 0x77, 0x8b, 0x8e, 0x92, 0xa7, 0xa8,
+			0x97, 0x97, 0x95, 0x83, 0x7a, 0x77, 0x71, 0x70, 0x76, 0x7d, 0x87,
+			0x89, 0x8b, 0x94, 0x92, 0x8e, 0x8d, 0x88, 0x81, 0x80, 0x7c, 0x6f,
+			0x71, 0x73, 0x68, 0x65, 0x68, 0x63, 0x65, 0x65, 0x5f, 0x5f, 0x62,
+			0x60, 0x5e, 0x5b, 0x57, 0x56, 0x82, 0xa3, 0x86, 0xa0, 0xc7, 0xa6,
+			0x8d, 0x9d, 0x92, 0x72, 0x6c, 0x6f, 0x6d, 0x65, 0x6a, 0x7c, 0x85,
+			0x83, 0x95, 0xa6, 0x9f, 0x9c, 0x9c, 0x94, 0x84, 0x7b, 0x78, 0x6f,
+			0x6f, 0x76, 0x7c, 0x83, 0x89, 0x90, 0x98, 0x94, 0x91, 0x93, 0x87,
+			0x7e, 0x81, 0x7c, 0x71, 0x73, 0x73, 0x6b, 0x69, 0x68, 0x65, 0x61,
+			0x5d, 0x5e, 0x60, 0x5d, 0x5a, 0x5e, 0x5d, 0x57, 0x50, 0x68, 0x9d,
+			0x92, 0x8a, 0xbe, 0xbe, 0x95, 0x9c, 0xa4, 0x84, 0x71, 0x71, 0x71,
+			0x66, 0x5d, 0x6e, 0x80, 0x7e, 0x88, 0xa4, 0xa5, 0x99, 0x9c, 0xa3,
+			0x93, 0x81, 0x84, 0x7a, 0x6c, 0x6d, 0x70, 0x75, 0x79, 0x80, 0x8d,
+			0x96, 0x94, 0x98, 0x9a, 0x90, 0x86, 0x7e, 0x7c, 0x78, 0x71, 0x6d,
+			0x6f, 0x6c, 0x68, 0x67, 0x65, 0x63, 0x61, 0x63, 0x60, 0x5c, 0x5d,
+			0x61, 0x66, 0x61, 0x61, 0x69, 0x8a, 0xa0, 0x8d, 0xa3, 0xba, 0x9f,
+			0x8e, 0x98, 0x90, 0x74, 0x72, 0x77, 0x6e, 0x67, 0x74, 0x7e, 0x83,
+			0x8b, 0x9a, 0xa1, 0x9d, 0x9d, 0x97, 0x8e, 0x84, 0x7a, 0x75, 0x6d,
+			0x69, 0x6e, 0x72, 0x7a, 0x89, 0x8e, 0x8f, 0x9c, 0x9e, 0x95, 0x95,
+			0x92, 0x85, 0x7a, 0x78, 0x74, 0x6c, 0x6a, 0x68, 0x61, 0x61, 0x68,
+			0x67, 0x63, 0x68, 0x6b, 0x66, 0x60, 0x64, 0x68, 0x64, 0x5b, 0x5b,
+			0x5b, 0x70, 0x8d, 0x81, 0x90, 0xaf, 0xa8, 0x9c, 0xa9, 0xab, 0x93,
+			0x89, 0x88, 0x7f, 0x70, 0x6b, 0x6f, 0x70, 0x6e, 0x7b, 0x89, 0x8c,
+			0x92, 0x9b, 0xa1, 0x9b, 0x97, 0x97, 0x8b, 0x7f, 0x7b, 0x76, 0x6c,
+			0x6a, 0x6d, 0x70, 0x75, 0x7d, 0x87, 0x8d, 0x94, 0x9d, 0x9e, 0x98,
+			0x8f, 0x89, 0x81, 0x75, 0x72, 0x72, 0x6c, 0x68, 0x69, 0x6c, 0x6d,
+			0x6d, 0x72, 0x73, 0x6c, 0x68, 0x66, 0x65, 0x62, 0x60, 0x61, 0x5d,
+			0x56, 0x57, 0x60, 0x70, 0x76, 0x86, 0x9d, 0x9f, 0xa5, 0xb2, 0xb2,
+			0xa7, 0xa5, 0x9d, 0x8e, 0x82, 0x76, 0x70, 0x69, 0x66, 0x6a, 0x73,
+			0x78, 0x80, 0x8e, 0x93, 0x99, 0xa0, 0xa2, 0xa0, 0x9a, 0x95, 0x8b,
+			0x7e, 0x74, 0x6d, 0x65, 0x61, 0x61, 0x63, 0x6d, 0x76, 0x7f, 0x8c,
+			0x96, 0xa0, 0xa4, 0xa7, 0xa6, 0x9f, 0x98, 0x8c, 0x82, 0x7a, 0x6f,
+			0x6a, 0x65, 0x62, 0x60, 0x61, 0x63, 0x63, 0x68, 0x6b, 0x6c, 0x6e,
+			0x6b, 0x6c, 0x68, 0x63, 0x65, 0x66, 0x68, 0x63, 0x5f, 0x5e, 0x5f,
+			0x64, 0x71, 0x82, 0x85, 0x94, 0xa6, 0xa9, 0xab, 0xb2, 0xb4, 0xaa,
+			0xa5, 0x9f, 0x91, 0x85, 0x7d, 0x75, 0x6c, 0x6b, 0x6b, 0x6c, 0x70,
+			0x78, 0x81, 0x87, 0x8e, 0x93, 0x95, 0x96, 0x94, 0x91, 0x8b, 0x84,
+			0x7e, 0x77, 0x71, 0x6f, 0x6d, 0x6e, 0x73, 0x79, 0x80, 0x86, 0x8f,
+			0x97, 0x97, 0x9c, 0x9d, 0x98, 0x93, 0x8f, 0x89, 0x7e, 0x78, 0x73,
+			0x6a, 0x63, 0x62, 0x5d, 0x5a, 0x5b, 0x5b, 0x5d, 0x5f, 0x5f, 0x62,
+			0x64, 0x62, 0x5f, 0x60, 0x60, 0x60, 0x63, 0x64, 0x61, 0x60, 0x66,
+			0x66, 0x6e, 0x80, 0x81, 0x8a, 0x9b, 0x9f, 0xa2, 0xab, 0xb4, 0xad,
+			0xad, 0xae, 0xa2, 0x9a, 0x93, 0x89, 0x7d, 0x77, 0x73, 0x6d, 0x6b,
+			0x6d, 0x72, 0x73, 0x7a, 0x80, 0x84, 0x8b, 0x8e, 0x92, 0x92, 0x91,
+			0x8f, 0x8c, 0x86, 0x81, 0x7f, 0x7a, 0x79, 0x7b, 0x77, 0x7b, 0x80,
+			0x7f, 0x84, 0x89, 0x88, 0x89, 0x8c, 0x89, 0x87, 0x86, 0x82, 0x7d,
+			0x79, 0x75, 0x70, 0x6a, 0x67, 0x61, 0x5d, 0x5b, 0x57, 0x56, 0x57,
+			0x5a, 0x63, 0x68, 0x67, 0x66, 0x60, 0x5c, 0x5a, 0x56, 0x56, 0x55,
+			0x51, 0x54, 0x57, 0x5a, 0x65, 0x75, 0x79, 0x84, 0x9a, 0x9c, 0xa1,
+			0xb2, 0xb5, 0xb3, 0xb8, 0xba, 0xb0, 0xa9, 0xa7, 0x99, 0x8e, 0x88,
+			0x7e, 0x75, 0x70, 0x6f, 0x69, 0x69, 0x6d, 0x6d, 0x71, 0x76, 0x7b,
+			0x7f, 0x83, 0x88, 0x89, 0x8b, 0x8c, 0x8d, 0x8b, 0x8b, 0x8b, 0x86,
+			0x89, 0x88, 0x82, 0x85, 0x85, 0x81, 0x82, 0x82, 0x7f, 0x7e, 0x7e,
+			0x7b, 0x78, 0x77, 0x73, 0x71, 0x6e, 0x6b, 0x6a, 0x69, 0x6a, 0x6d,
+			0x6f, 0x6f, 0x73, 0x74, 0x74, 0x76, 0x75, 0x73, 0x71, 0x6e, 0x6c,
+			0x69, 0x67, 0x65, 0x63, 0x5f, 0x5e, 0x5e, 0x5b, 0x59, 0x5b, 0x65,
+			0x65, 0x66, 0x7a, 0x7f, 0x7e, 0x90, 0x99, 0x98, 0xa3, 0xad, 0xab,
+			0xac, 0xb2, 0xac, 0xa7, 0xa5, 0x9e, 0x95, 0x8e, 0x89, 0x80, 0x7a,
+			0x78, 0x72, 0x6f, 0x70, 0x70, 0x70, 0x73, 0x77, 0x79, 0x7b, 0x7f,
+			0x82, 0x83, 0x85, 0x87, 0x88, 0x8a, 0x8b, 0x8a, 0x8c, 0x8b, 0x89,
+			0x8a, 0x89, 0x86, 0x85, 0x84, 0x80, 0x7e, 0x7d, 0x79, 0x77, 0x75,
+			0x73, 0x72, 0x71, 0x72, 0x71, 0x71, 0x76, 0x78, 0x7a, 0x7f, 0x82,
+			0x83, 0x86, 0x88, 0x87, 0x86, 0x86, 0x83, 0x81, 0x80, 0x7d, 0x7a,
+			0x79, 0x76, 0x74, 0x72, 0x71, 0x6f, 0x6d, 0x6d, 0x6b, 0x68, 0x6a,
+			0x68, 0x66, 0x67, 0x66, 0x64, 0x68, 0x71, 0x6c, 0x71, 0x7f, 0x7a,
+			0x80, 0x8d, 0x8a, 0x90, 0x97, 0x99, 0x9b, 0x9d, 0x9f, 0x9c, 0x9b,
+			0x9a, 0x98, 0x92, 0x8e, 0x8d, 0x86, 0x83, 0x83, 0x7c, 0x7c, 0x7c,
+			0x78, 0x78, 0x7a, 0x7a, 0x79, 0x7b, 0x7c, 0x7c, 0x7c, 0x7e, 0x7f,
+			0x7e, 0x80, 0x81, 0x81, 0x83, 0x84, 0x84, 0x85, 0x84, 0x86, 0x84,
+			0x84, 0x85, 0x82, 0x82, 0x81, 0x7e, 0x7e, 0x7c, 0x7b, 0x79, 0x76,
+			0x77, 0x76, 0x74, 0x76, 0x74, 0x73, 0x75, 0x74, 0x74, 0x76, 0x76,
+			0x77, 0x78, 0x7a, 0x7c, 0x7d, 0x7e, 0x80, 0x81, 0x82, 0x83, 0x84,
+			0x84, 0x85, 0x86, 0x85, 0x85, 0x85, 0x85, 0x84, 0x83, 0x82, 0x81,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x82, 0x82, 0x81,
+			0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7e, 0x81, 0x7c, 0x8b,
+			0x86, 0x7a, 0x85, 0x7f, 0x88, 0x7c, 0x77, 0x87, 0x83, 0x89, 0x8a,
+			0x84, 0x82, 0x79, 0x81, 0x8b, 0x86, 0x82, 0x7e, 0x7e, 0x7c, 0x75,
+			0x79, 0x7c, 0x7e, 0x7b, 0x78, 0x7e, 0x7d, 0x80, 0x7e, 0x7d, 0x7f,
+			0x7e, 0x7d, 0x7d, 0x82, 0x81, 0x80, 0x7c, 0x81, 0x81, 0x7e, 0x7c,
+			0x80, 0x85, 0x7f, 0x80, 0x82, 0x85, 0x81, 0x7d, 0x83, 0x83, 0x83,
+			0x7e, 0x7f, 0x82, 0x81, 0x7e, 0x7d, 0x82, 0x80, 0x7d, 0x7d, 0x81,
+			0x81, 0x7f, 0x7d, 0x81, 0x84, 0x7f, 0x7f, 0x83, 0x82, 0x80, 0x7f,
+			0x7f, 0x81, 0x7f, 0x7d, 0x82, 0x82, 0x7b, 0x7d, 0x80, 0x7d, 0x7d,
+			0x7f, 0x82, 0x81, 0x80, 0x7e, 0x80, 0x7f, 0x7c, 0x7e, 0x80, 0x82,
+			0x82, 0x81, 0x81, 0x80, 0x7f, 0x7d, 0x7e, 0x80, 0x80, 0x7f, 0x7f,
+			0x80, 0x7f, 0x7f, 0x7e, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81,
+			0x80, 0x7f, 0x80, 0x80, 0x7e, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x81, 0x81,
+			0x80, 0x80, 0x81, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x81, 0x80, 0x80, 0x80, 0x81,
+			0x81, 0x80, 0x80, 0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x80,
+			0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x7e, 0x7f,
+			0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x7f,
+		},
+		{ // 9
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7c, 0x7a,
+			0x79, 0x7a, 0x7b, 0x7e, 0x80, 0x83, 0x86, 0x8a, 0x8e, 0x91, 0x95,
+			0x98, 0x9a, 0x9c, 0x9e, 0x9f, 0x9f, 0x9e, 0x9c, 0x9b, 0x99, 0x96,
+			0x93, 0x91, 0x8e, 0x8a, 0x88, 0x86, 0x83, 0x82, 0x80, 0x7f, 0x7e,
+			0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7f, 0x81, 0x81, 0x81, 0x82,
+			0x81, 0x81, 0x80, 0x7f, 0x7d, 0x7b, 0x79, 0x76, 0x74, 0x71, 0x6e,
+			0x6b, 0x69, 0x67, 0x65, 0x64, 0x63, 0x62, 0x62, 0x62, 0x62, 0x62,
+			0x64, 0x64, 0x64, 0x66, 0x67, 0x67, 0x68, 0x6a, 0x6e, 0x71, 0x75,
+			0x7a, 0x7f, 0x84, 0x8a, 0x8f, 0x94, 0x99, 0x9e, 0xa1, 0xa4, 0xa6,
+			0xa6, 0xa7, 0xa7, 0xa6, 0xa4, 0xa2, 0x9e, 0x99, 0x96, 0x91, 0x8d,
+			0x89, 0x85, 0x81, 0x7e, 0x7d, 0x7b, 0x78, 0x78, 0x78, 0x78, 0x78,
+			0x79, 0x7a, 0x7b, 0x7e, 0x80, 0x82, 0x85, 0x86, 0x87, 0x89, 0x88,
+			0x87, 0x86, 0x84, 0x80, 0x7d, 0x7a, 0x76, 0x73, 0x6f, 0x6b, 0x69,
+			0x66, 0x62, 0x5f, 0x5d, 0x5b, 0x59, 0x58, 0x58, 0x58, 0x59, 0x5b,
+			0x5d, 0x5e, 0x5f, 0x62, 0x64, 0x66, 0x6b, 0x73, 0x79, 0x80, 0x8c,
+			0x95, 0x97, 0x9e, 0xa8, 0xab, 0xab, 0xaf, 0xaf, 0xac, 0xad, 0xac,
+			0xa6, 0xa4, 0xa3, 0x9c, 0x97, 0x95, 0x90, 0x88, 0x86, 0x83, 0x7d,
+			0x7b, 0x7a, 0x77, 0x75, 0x76, 0x75, 0x74, 0x77, 0x77, 0x78, 0x7b,
+			0x7d, 0x7d, 0x80, 0x83, 0x84, 0x85, 0x88, 0x88, 0x87, 0x88, 0x87,
+			0x85, 0x84, 0x81, 0x7d, 0x7a, 0x76, 0x72, 0x6f, 0x6b, 0x66, 0x63,
+			0x61, 0x5e, 0x5c, 0x5c, 0x5b, 0x5b, 0x5c, 0x5e, 0x5e, 0x61, 0x63,
+			0x65, 0x67, 0x6c, 0x75, 0x79, 0x7d, 0x87, 0x8f, 0x93, 0x9a, 0xa4,
+			0xa8, 0xad, 0xb2, 0xb3, 0xb3, 0xb4, 0xb3, 0xaf, 0xac, 0xa9, 0xa3,
+			0x9d, 0x98, 0x91, 0x8b, 0x87, 0x83, 0x7d, 0x78, 0x75, 0x71, 0x70,
+			0x6f, 0x6d, 0x6d, 0x70, 0x74, 0x76, 0x79, 0x7c, 0x7d, 0x80, 0x83,
+			0x85, 0x85, 0x87, 0x8c, 0x8f, 0x91, 0x8c, 0x84, 0x7d, 0x77, 0x74,
+			0x6b, 0x63, 0x60, 0x5b, 0x55, 0x4f, 0x4d, 0x4c, 0x4d, 0x4b, 0x4b,
+			0x4b, 0x49, 0x48, 0x47, 0x53, 0x73, 0x8f, 0x97, 0x99, 0x9f, 0xa8,
+			0xaa, 0xa1, 0x93, 0x8e, 0x95, 0x9c, 0x99, 0x8f, 0x8b, 0x93, 0x9c,
+			0x98, 0x8b, 0x86, 0x8a, 0x8d, 0x8a, 0x84, 0x82, 0x86, 0x88, 0x85,
+			0x7d, 0x78, 0x7d, 0x82, 0x80, 0x7c, 0x82, 0x8b, 0x8a, 0x88, 0x88,
+			0x88, 0x8a, 0x8a, 0x86, 0x86, 0x88, 0x86, 0x82, 0x7a, 0x75, 0x72,
+			0x6b, 0x63, 0x61, 0x5f, 0x5f, 0x5f, 0x5c, 0x58, 0x55, 0x50, 0x52,
+			0x55, 0x4f, 0x51, 0x55, 0x4f, 0x44, 0x5c, 0x9c, 0xbb, 0xb0, 0x99,
+			0x8d, 0x96, 0x9a, 0x88, 0x73, 0x7c, 0x95, 0x9e, 0x97, 0x90, 0x8f,
+			0x98, 0x9e, 0x95, 0x89, 0x85, 0x87, 0x87, 0x84, 0x81, 0x83, 0x86,
+			0x87, 0x84, 0x7f, 0x7d, 0x7f, 0x80, 0x7f, 0x81, 0x85, 0x86, 0x87,
+			0x89, 0x8b, 0x8c, 0x8c, 0x88, 0x85, 0x83, 0x84, 0x82, 0x7c, 0x76,
+			0x75, 0x73, 0x6d, 0x65, 0x63, 0x65, 0x63, 0x5d, 0x5b, 0x5a, 0x57,
+			0x57, 0x56, 0x53, 0x54, 0x4f, 0x4d, 0x48, 0x57, 0x98, 0xc3, 0xb7,
+			0x94, 0x81, 0x85, 0x8c, 0x81, 0x6c, 0x74, 0x95, 0xa4, 0x9e, 0x90,
+			0x86, 0x8c, 0x94, 0x8a, 0x7d, 0x7b, 0x80, 0x89, 0x8d, 0x88, 0x83,
+			0x84, 0x89, 0x87, 0x80, 0x79, 0x79, 0x80, 0x83, 0x81, 0x84, 0x85,
+			0x86, 0x89, 0x8b, 0x89, 0x85, 0x83, 0x82, 0x80, 0x7d, 0x7c, 0x7c,
+			0x7a, 0x78, 0x75, 0x71, 0x6f, 0x6e, 0x6c, 0x67, 0x63, 0x61, 0x5f,
+			0x5e, 0x5e, 0x5c, 0x5a, 0x5c, 0x5d, 0x6a, 0x88, 0xa7, 0xb4, 0xa5,
+			0x8c, 0x77, 0x70, 0x75, 0x7e, 0x88, 0x91, 0x95, 0x94, 0x8e, 0x8c,
+			0x8a, 0x84, 0x81, 0x84, 0x88, 0x89, 0x86, 0x86, 0x88, 0x8a, 0x8b,
+			0x86, 0x80, 0x7d, 0x7d, 0x80, 0x83, 0x80, 0x80, 0x84, 0x82, 0x7f,
+			0x82, 0x87, 0x8a, 0x89, 0x84, 0x7e, 0x7a, 0x78, 0x79, 0x7b, 0x7c,
+			0x77, 0x73, 0x74, 0x72, 0x6e, 0x68, 0x64, 0x66, 0x67, 0x66, 0x65,
+			0x65, 0x62, 0x5d, 0x60, 0x7d, 0xab, 0xbe, 0xaa, 0x86, 0x68, 0x5f,
+			0x6f, 0x86, 0x90, 0x8d, 0x89, 0x8c, 0x95, 0x98, 0x8f, 0x82, 0x7c,
+			0x7e, 0x84, 0x86, 0x86, 0x87, 0x87, 0x85, 0x84, 0x84, 0x84, 0x82,
+			0x82, 0x84, 0x83, 0x82, 0x85, 0x84, 0x83, 0x86, 0x86, 0x85, 0x86,
+			0x86, 0x7f, 0x79, 0x76, 0x77, 0x7e, 0x81, 0x7a, 0x6e, 0x66, 0x69,
+			0x72, 0x74, 0x6c, 0x63, 0x61, 0x60, 0x5e, 0x5f, 0x5c, 0x5f, 0x7e,
+			0xaa, 0xbe, 0xae, 0x8a, 0x66, 0x5a, 0x6a, 0x81, 0x8f, 0x93, 0x8d,
+			0x87, 0x89, 0x8e, 0x90, 0x8c, 0x84, 0x7c, 0x7e, 0x86, 0x89, 0x88,
+			0x86, 0x85, 0x87, 0x88, 0x85, 0x80, 0x7f, 0x80, 0x83, 0x86, 0x85,
+			0x85, 0x87, 0x88, 0x87, 0x85, 0x84, 0x82, 0x7e, 0x79, 0x78, 0x7a,
+			0x7a, 0x78, 0x75, 0x73, 0x6f, 0x6d, 0x6b, 0x68, 0x66, 0x64, 0x62,
+			0x5f, 0x5a, 0x58, 0x65, 0x88, 0xaf, 0xbe, 0xaa, 0x81, 0x5e, 0x56,
+			0x6a, 0x88, 0x99, 0x95, 0x88, 0x81, 0x85, 0x8e, 0x92, 0x8c, 0x82,
+			0x7e, 0x80, 0x82, 0x82, 0x82, 0x84, 0x87, 0x8a, 0x8b, 0x8a, 0x8a,
+			0x87, 0x81, 0x7b, 0x79, 0x7c, 0x82, 0x8a, 0x8e, 0x8e, 0x8b, 0x85,
+			0x7d, 0x77, 0x75, 0x77, 0x7b, 0x7c, 0x78, 0x73, 0x6f, 0x6c, 0x6c,
+			0x6e, 0x6c, 0x67, 0x66, 0x62, 0x5a, 0x54, 0x59, 0x77, 0xa8, 0xc4,
+			0xb8, 0x94, 0x68, 0x50, 0x59, 0x79, 0x97, 0xa0, 0x92, 0x80, 0x7a,
+			0x84, 0x93, 0x96, 0x8c, 0x7f, 0x7b, 0x7c, 0x80, 0x83, 0x85, 0x87,
+			0x8a, 0x8c, 0x8c, 0x8b, 0x88, 0x81, 0x7a, 0x78, 0x7b, 0x80, 0x89,
+			0x8f, 0x8f, 0x8a, 0x85, 0x81, 0x7e, 0x79, 0x78, 0x79, 0x78, 0x76,
+			0x75, 0x73, 0x71, 0x6e, 0x68, 0x65, 0x64, 0x61, 0x61, 0x5e, 0x56,
+			0x50, 0x5c, 0x89, 0xb9, 0xc7, 0xb1, 0x81, 0x57, 0x4f, 0x68, 0x8c,
+			0xa2, 0x9a, 0x83, 0x79, 0x7e, 0x8b, 0x94, 0x93, 0x89, 0x81, 0x7d,
+			0x7d, 0x80, 0x82, 0x82, 0x85, 0x89, 0x8c, 0x8d, 0x8c, 0x86, 0x7f,
+			0x7c, 0x7c, 0x7d, 0x7f, 0x86, 0x8b, 0x8d, 0x8c, 0x86, 0x7f, 0x7a,
+			0x78, 0x78, 0x7b, 0x7c, 0x79, 0x74, 0x71, 0x6f, 0x6d, 0x6b, 0x68,
+			0x66, 0x64, 0x64, 0x64, 0x5d, 0x54, 0x53, 0x68, 0x9a, 0xc0, 0xc0,
+			0xa0, 0x6e, 0x4f, 0x56, 0x76, 0x98, 0xa6, 0x96, 0x7f, 0x79, 0x80,
+			0x8c, 0x93, 0x8f, 0x87, 0x82, 0x7e, 0x7d, 0x80, 0x82, 0x84, 0x87,
+			0x88, 0x89, 0x89, 0x87, 0x81, 0x7b, 0x7b, 0x7f, 0x86, 0x8b, 0x8c,
+			0x89, 0x84, 0x80, 0x7d, 0x7b, 0x7a, 0x7c, 0x7d, 0x7c, 0x78, 0x74,
+			0x71, 0x6f, 0x70, 0x70, 0x6e, 0x6a, 0x68, 0x6b, 0x6e, 0x6a, 0x64,
+			0x5e, 0x57, 0x5b, 0x78, 0xa2, 0xb9, 0xb0, 0x8f, 0x69, 0x5a, 0x64,
+			0x7e, 0x96, 0x9d, 0x90, 0x7f, 0x7e, 0x88, 0x90, 0x90, 0x8a, 0x84,
+			0x81, 0x82, 0x84, 0x83, 0x81, 0x83, 0x87, 0x8a, 0x89, 0x85, 0x7f,
+			0x7b, 0x7c, 0x7d, 0x81, 0x88, 0x8b, 0x8c, 0x8c, 0x87, 0x83, 0x81,
+			0x7f, 0x7c, 0x79, 0x77, 0x7a, 0x7e, 0x7b, 0x76, 0x75, 0x75, 0x73,
+			0x70, 0x6a, 0x62, 0x62, 0x67, 0x6b, 0x69, 0x61, 0x5d, 0x5e, 0x60,
+			0x66, 0x6f, 0x82, 0xa1, 0xae, 0xa2, 0x87, 0x6b, 0x63, 0x72, 0x8a,
+			0x9a, 0x9b, 0x8e, 0x85, 0x85, 0x89, 0x8b, 0x88, 0x81, 0x7e, 0x7e,
+			0x83, 0x88, 0x87, 0x84, 0x84, 0x86, 0x88, 0x86, 0x80, 0x7a, 0x76,
+			0x75, 0x79, 0x81, 0x8b, 0x92, 0x95, 0x91, 0x89, 0x82, 0x7f, 0x80,
+			0x84, 0x86, 0x83, 0x7f, 0x7c, 0x79, 0x77, 0x78, 0x78, 0x75, 0x72,
+			0x6e, 0x6b, 0x69, 0x6a, 0x69, 0x66, 0x65, 0x64, 0x67, 0x69, 0x66,
+			0x63, 0x5f, 0x5d, 0x5c, 0x5e, 0x83, 0xaf, 0xb7, 0xa9, 0x89, 0x67,
+			0x62, 0x75, 0x8d, 0xa1, 0x9d, 0x8a, 0x82, 0x84, 0x87, 0x8d, 0x8c,
+			0x88, 0x88, 0x86, 0x82, 0x81, 0x7f, 0x80, 0x83, 0x82, 0x80, 0x81,
+			0x80, 0x81, 0x81, 0x80, 0x7c, 0x79, 0x7c, 0x85, 0x8d, 0x90, 0x8e,
+			0x89, 0x82, 0x7e, 0x7f, 0x82, 0x85, 0x87, 0x85, 0x80, 0x80, 0x7f,
+			0x7b, 0x76, 0x74, 0x76, 0x78, 0x78, 0x73, 0x6d, 0x69, 0x68, 0x6a,
+			0x6c, 0x6d, 0x69, 0x64, 0x65, 0x67, 0x6d, 0x69, 0x65, 0x61, 0x5d,
+			0x5e, 0x63, 0x92, 0xbf, 0xbf, 0xaf, 0x89, 0x63, 0x5d, 0x74, 0x90,
+			0xa5, 0x9f, 0x8b, 0x83, 0x83, 0x8b, 0x92, 0x8e, 0x84, 0x80, 0x7e,
+			0x84, 0x8b, 0x86, 0x7f, 0x7e, 0x81, 0x85, 0x89, 0x83, 0x7a, 0x74,
+			0x6f, 0x71, 0x77, 0x7c, 0x82, 0x88, 0x88, 0x87, 0x87, 0x88, 0x8b,
+			0x8b, 0x86, 0x81, 0x7e, 0x7f, 0x83, 0x87, 0x88, 0x84, 0x7c, 0x79,
+			0x79, 0x7a, 0x7b, 0x79, 0x76, 0x74, 0x72, 0x71, 0x70, 0x70, 0x6e,
+			0x6d, 0x6e, 0x6f, 0x6e, 0x6b, 0x67, 0x66, 0x6a, 0x6e, 0x6f, 0x6d,
+			0x69, 0x63, 0x5f, 0x64, 0x66, 0x7a, 0xa9, 0xbe, 0xb6, 0x9e, 0x78,
+			0x64, 0x71, 0x88, 0x9a, 0x9f, 0x8e, 0x84, 0x89, 0x8c, 0x8f, 0x8c,
+			0x82, 0x80, 0x82, 0x83, 0x82, 0x81, 0x7a, 0x7c, 0x85, 0x89, 0x8d,
+			0x8a, 0x7e, 0x78, 0x76, 0x76, 0x79, 0x7a, 0x7d, 0x7f, 0x7f, 0x7f,
+			0x81, 0x86, 0x87, 0x85, 0x82, 0x7f, 0x7e, 0x82, 0x88, 0x87, 0x85,
+			0x86, 0x88, 0x86, 0x83, 0x7f, 0x7d, 0x81, 0x80, 0x7d, 0x7c, 0x7b,
+			0x7b, 0x7b, 0x7a, 0x78, 0x75, 0x73, 0x71, 0x71, 0x75, 0x78, 0x77,
+			0x75, 0x72, 0x71, 0x72, 0x72, 0x70, 0x6d, 0x6b, 0x6b, 0x6c, 0x6f,
+			0x70, 0x6f, 0x6d, 0x69, 0x69, 0x68, 0x6b, 0x6a, 0x76, 0xa7, 0xbc,
+			0xad, 0x93, 0x77, 0x70, 0x7e, 0x8c, 0x91, 0x91, 0x8a, 0x89, 0x90,
+			0x90, 0x88, 0x83, 0x81, 0x85, 0x8c, 0x89, 0x7f, 0x78, 0x79, 0x82,
+			0x8a, 0x88, 0x84, 0x83, 0x82, 0x81, 0x7d, 0x76, 0x70, 0x70, 0x76,
+			0x7d, 0x84, 0x86, 0x88, 0x88, 0x85, 0x7e, 0x78, 0x79, 0x80, 0x87,
+			0x88, 0x86, 0x84, 0x86, 0x87, 0x87, 0x85, 0x83, 0x80, 0x80, 0x83,
+			0x80, 0x7d, 0x7d, 0x7e, 0x7c, 0x78, 0x76, 0x78, 0x79, 0x78, 0x76,
+			0x75, 0x74, 0x74, 0x75, 0x74, 0x72, 0x74, 0x74, 0x71, 0x71, 0x72,
+			0x72, 0x72, 0x72, 0x6e, 0x70, 0x73, 0x72, 0x70, 0x6e, 0x6e, 0x73,
+			0x72, 0x6d, 0x6e, 0x81, 0xaa, 0xb5, 0x9e, 0x8b, 0x86, 0x8b, 0x90,
+			0x85, 0x7c, 0x87, 0x92, 0x98, 0x94, 0x86, 0x82, 0x8a, 0x8a, 0x83,
+			0x7e, 0x7b, 0x7f, 0x84, 0x84, 0x81, 0x81, 0x84, 0x86, 0x81, 0x7b,
+			0x7e, 0x80, 0x7e, 0x7a, 0x77, 0x78, 0x7a, 0x7e, 0x81, 0x83, 0x86,
+			0x87, 0x86, 0x82, 0x85, 0x88, 0x88, 0x88, 0x86, 0x83, 0x83, 0x82,
+			0x82, 0x84, 0x81, 0x80, 0x81, 0x7b, 0x78, 0x78, 0x77, 0x78, 0x79,
+			0x77, 0x76, 0x77, 0x73, 0x72, 0x72, 0x71, 0x75, 0x77, 0x73, 0x72,
+			0x73, 0x74, 0x73, 0x71, 0x73, 0x73, 0x71, 0x74, 0x77, 0x75, 0x75,
+			0x75, 0x74, 0x75, 0x76, 0x74, 0x75, 0x77, 0x77, 0x77, 0x77, 0x7b,
+			0x8f, 0xa1, 0x9f, 0x98, 0x97, 0x96, 0x93, 0x8b, 0x84, 0x88, 0x91,
+			0x92, 0x8c, 0x8a, 0x8a, 0x8d, 0x8b, 0x84, 0x82, 0x84, 0x82, 0x7d,
+			0x7d, 0x7f, 0x82, 0x85, 0x81, 0x7f, 0x80, 0x81, 0x80, 0x7e, 0x7b,
+			0x7b, 0x7a, 0x74, 0x74, 0x7a, 0x80, 0x81, 0x81, 0x87, 0x89, 0x8a,
+			0x87, 0x86, 0x86, 0x85, 0x82, 0x7e, 0x80, 0x81, 0x7f, 0x82, 0x84,
+			0x81, 0x7d, 0x7b, 0x79, 0x79, 0x7a, 0x79, 0x78, 0x78, 0x79, 0x79,
+			0x77, 0x75, 0x75, 0x75, 0x74, 0x72, 0x72, 0x75, 0x74, 0x70, 0x70,
+			0x74, 0x75, 0x73, 0x72, 0x73, 0x74, 0x74, 0x75, 0x73, 0x73, 0x74,
+			0x74, 0x73, 0x74, 0x75, 0x76, 0x74, 0x6f, 0x74, 0x75, 0x7d, 0x8b,
+			0x84, 0x82, 0x8c, 0x94, 0x96, 0x8d, 0x91, 0x9a, 0x98, 0x90, 0x8d,
+			0x90, 0x91, 0x8e, 0x89, 0x8b, 0x8e, 0x89, 0x86, 0x88, 0x88, 0x85,
+			0x81, 0x81, 0x84, 0x83, 0x7f, 0x7d, 0x81, 0x84, 0x7f, 0x7c, 0x80,
+			0x81, 0x7c, 0x79, 0x7b, 0x7a, 0x78, 0x7a, 0x7c, 0x7c, 0x7d, 0x81,
+			0x85, 0x83, 0x84, 0x87, 0x85, 0x83, 0x84, 0x86, 0x87, 0x84, 0x84,
+			0x89, 0x85, 0x7f, 0x81, 0x81, 0x7f, 0x7c, 0x7b, 0x7e, 0x7f, 0x79,
+			0x78, 0x7c, 0x7b, 0x77, 0x76, 0x78, 0x76, 0x72, 0x73, 0x73, 0x71,
+			0x71, 0x72, 0x72, 0x71, 0x74, 0x72, 0x6f, 0x73, 0x75, 0x72, 0x74,
+			0x76, 0x74, 0x73, 0x73, 0x73, 0x72, 0x74, 0x76, 0x74, 0x73, 0x71,
+			0x70, 0x70, 0x6f, 0x72, 0x82, 0x84, 0x7b, 0x80, 0x85, 0x80, 0x8e,
+			0x99, 0x8e, 0x96, 0xa5, 0x9d, 0x96, 0x96, 0x96, 0x96, 0x94, 0x90,
+			0x91, 0x91, 0x8a, 0x86, 0x89, 0x88, 0x81, 0x7e, 0x80, 0x82, 0x82,
+			0x7f, 0x82, 0x87, 0x84, 0x7e, 0x7f, 0x7f, 0x7c, 0x7a, 0x78, 0x79,
+			0x7a, 0x78, 0x77, 0x7a, 0x7c, 0x7b, 0x7d, 0x82, 0x85, 0x84, 0x86,
+			0x89, 0x8a, 0x88, 0x87, 0x87, 0x86, 0x84, 0x81, 0x80, 0x80, 0x7f,
+			0x7e, 0x7e, 0x7d, 0x7b, 0x79, 0x78, 0x77, 0x76, 0x75, 0x74, 0x75,
+			0x73, 0x72, 0x73, 0x73, 0x71, 0x70, 0x72, 0x73, 0x73, 0x73, 0x73,
+			0x75, 0x74, 0x74, 0x76, 0x74, 0x74, 0x74, 0x75, 0x76, 0x76, 0x78,
+			0x78, 0x77, 0x79, 0x79, 0x78, 0x78, 0x79, 0x78, 0x78, 0x77, 0x77,
+			0x75, 0x7a, 0x81, 0x7f, 0x7d, 0x81, 0x84, 0x80, 0x7e, 0x7d, 0x83,
+			0x8b, 0x89, 0x8a, 0x91, 0x95, 0x94, 0x97, 0x99, 0x9b, 0x9e, 0x9e,
+			0x9c, 0x9b, 0x9b, 0x98, 0x94, 0x92, 0x8f, 0x8b, 0x88, 0x84, 0x81,
+			0x80, 0x7f, 0x7e, 0x7c, 0x7c, 0x7c, 0x7c, 0x7a, 0x78, 0x79, 0x7a,
+			0x79, 0x78, 0x79, 0x7b, 0x7c, 0x7b, 0x7c, 0x7d, 0x7e, 0x80, 0x82,
+			0x83, 0x84, 0x85, 0x86, 0x86, 0x86, 0x86, 0x84, 0x84, 0x83, 0x80,
+			0x7f, 0x7e, 0x7d, 0x7b, 0x7a, 0x79, 0x78, 0x77, 0x76, 0x75, 0x75,
+			0x74, 0x73, 0x73, 0x73, 0x72, 0x72, 0x72, 0x72, 0x72, 0x73, 0x72,
+			0x71, 0x73, 0x74, 0x72, 0x72, 0x73, 0x75, 0x76, 0x76, 0x77, 0x79,
+			0x7a, 0x7a, 0x7a, 0x7d, 0x7c, 0x7b, 0x7d, 0x7e, 0x7d, 0x7d, 0x7d,
+			0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7b, 0x7a,
+			0x79, 0x79, 0x7f, 0x82, 0x80, 0x84, 0x8d, 0x8e, 0x8d, 0x92, 0x96,
+			0x99, 0x9c, 0x9e, 0x9c, 0x9c, 0x9f, 0x9e, 0x9b, 0x98, 0x95, 0x95,
+			0x91, 0x8c, 0x89, 0x8a, 0x89, 0x84, 0x81, 0x81, 0x7f, 0x7d, 0x7c,
+			0x7a, 0x7a, 0x7a, 0x78, 0x77, 0x78, 0x77, 0x77, 0x79, 0x79, 0x79,
+			0x7b, 0x7d, 0x7d, 0x7e, 0x80, 0x7f, 0x7f, 0x80, 0x81, 0x80, 0x7f,
+			0x80, 0x81, 0x80, 0x7f, 0x7f, 0x7f, 0x7e, 0x7d, 0x7c, 0x7c, 0x7b,
+			0x7a, 0x7a, 0x79, 0x78, 0x77, 0x76, 0x75, 0x74, 0x74, 0x73, 0x73,
+			0x72, 0x71, 0x72, 0x72, 0x70, 0x71, 0x72, 0x73, 0x72, 0x73, 0x74,
+			0x74, 0x75, 0x75, 0x76, 0x77, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7f,
+			0x80, 0x7f, 0x81, 0x82, 0x82, 0x81, 0x82, 0x81, 0x80, 0x81, 0x81,
+			0x81, 0x82, 0x81, 0x80, 0x80, 0x7f, 0x7d, 0x7e, 0x80, 0x81, 0x82,
+			0x84, 0x86, 0x89, 0x8b, 0x8b, 0x8d, 0x90, 0x91, 0x93, 0x93, 0x93,
+			0x94, 0x94, 0x92, 0x90, 0x8f, 0x8e, 0x8d, 0x8c, 0x8a, 0x89, 0x89,
+			0x88, 0x86, 0x85, 0x85, 0x84, 0x83, 0x82, 0x81, 0x81, 0x80, 0x7f,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7b, 0x7b,
+			0x7a, 0x7a, 0x79, 0x78, 0x77, 0x77, 0x75, 0x75, 0x74, 0x73, 0x73,
+			0x73, 0x73, 0x73, 0x73, 0x73, 0x74, 0x75, 0x75, 0x76, 0x77, 0x78,
+			0x79, 0x7a, 0x7a, 0x7b, 0x7d, 0x7e, 0x7e, 0x7e, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x81, 0x81, 0x82, 0x83, 0x85,
+			0x86, 0x87, 0x87, 0x89, 0x8a, 0x8b, 0x8b, 0x8d, 0x8d, 0x8d, 0x8e,
+			0x8d, 0x8d, 0x8c, 0x8c, 0x8b, 0x8a, 0x89, 0x88, 0x87, 0x86, 0x85,
+			0x85, 0x83, 0x82, 0x81, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d,
+			0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7a, 0x7a,
+			0x79, 0x78, 0x78, 0x78, 0x77, 0x77, 0x76, 0x76, 0x76, 0x76, 0x76,
+			0x76, 0x77, 0x77, 0x78, 0x78, 0x79, 0x7a, 0x7b, 0x7b, 0x7c, 0x7d,
+			0x7d, 0x7d, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+		},
+	},
+	"ru": [][]byte{
+		{ // 0
+			0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e,
+			0x7f, 0x7e, 0x7f, 0x7d, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e,
+			0x7e, 0x7d, 0x7f, 0x7e, 0x7f, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x80,
+			0x82, 0x81, 0x82, 0x82, 0x83, 0x82, 0x83, 0x83, 0x82, 0x83, 0x81,
+			0x82, 0x81, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7d, 0x7e, 0x7c,
+			0x7d, 0x7d, 0x7e, 0x7d, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7e, 0x7f, 0x7e, 0x7e, 0x7d,
+			0x7c, 0x7b, 0x7b, 0x7a, 0x7a, 0x79, 0x7b, 0x7b, 0x7d, 0x7e, 0x7f,
+			0x81, 0x82, 0x84, 0x85, 0x85, 0x87, 0x87, 0x86, 0x87, 0x86, 0x84,
+			0x84, 0x83, 0x81, 0x81, 0x7f, 0x7f, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c,
+			0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7e, 0x7d, 0x7f, 0x7e, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x7e, 0x7f, 0x7d, 0x7d, 0x7b, 0x7b, 0x7a, 0x78, 0x79, 0x79, 0x79,
+			0x7a, 0x7b, 0x7d, 0x7f, 0x81, 0x84, 0x85, 0x86, 0x87, 0x87, 0x89,
+			0x89, 0x88, 0x88, 0x85, 0x85, 0x83, 0x82, 0x81, 0x80, 0x7f, 0x7e,
+			0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7d, 0x7e, 0x7d,
+			0x7f, 0x7e, 0x7f, 0x7e, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7e, 0x7c, 0x7c, 0x7b,
+			0x7a, 0x79, 0x78, 0x79, 0x79, 0x79, 0x7b, 0x7b, 0x7e, 0x7f, 0x83,
+			0x84, 0x86, 0x86, 0x88, 0x88, 0x89, 0x89, 0x88, 0x87, 0x86, 0x84,
+			0x82, 0x82, 0x80, 0x7f, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7c,
+			0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x80,
+			0x81, 0x80, 0x81, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7d, 0x7b, 0x7a, 0x78, 0x79, 0x77, 0x78, 0x78,
+			0x7a, 0x79, 0x7c, 0x7d, 0x81, 0x82, 0x8a, 0x8a, 0x8c, 0x8c, 0x8e,
+			0x8d, 0x8b, 0x8a, 0x86, 0x85, 0x81, 0x81, 0x7f, 0x7d, 0x7b, 0x79,
+			0x79, 0x78, 0x7a, 0x79, 0x7b, 0x7a, 0x7c, 0x7c, 0x7e, 0x7e, 0x7f,
+			0x80, 0x7f, 0x81, 0x81, 0x82, 0x82, 0x82, 0x81, 0x81, 0x80, 0x80,
+			0x7f, 0x7f, 0x7e, 0x7e, 0x7c, 0x7d, 0x7c, 0x7d, 0x7c, 0x7d, 0x7a,
+			0x78, 0x76, 0x77, 0x76, 0x74, 0x76, 0x77, 0x77, 0x78, 0x7d, 0x81,
+			0x84, 0x87, 0x89, 0x8b, 0x8a, 0x8d, 0x8f, 0x8f, 0x8d, 0x8b, 0x88,
+			0x86, 0x82, 0x81, 0x80, 0x7d, 0x7b, 0x79, 0x7a, 0x78, 0x78, 0x7a,
+			0x79, 0x7a, 0x79, 0x7c, 0x7c, 0x7d, 0x7f, 0x7f, 0x80, 0x80, 0x82,
+			0x81, 0x83, 0x83, 0x82, 0x82, 0x80, 0x81, 0x80, 0x7f, 0x7f, 0x7d,
+			0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d, 0x7b, 0x78, 0x75, 0x77, 0x75,
+			0x74, 0x74, 0x77, 0x77, 0x76, 0x7a, 0x7e, 0x82, 0x84, 0x89, 0x8a,
+			0x8b, 0x8c, 0x8f, 0x8f, 0x8f, 0x8d, 0x8a, 0x88, 0x84, 0x83, 0x80,
+			0x7f, 0x7c, 0x79, 0x79, 0x77, 0x78, 0x79, 0x79, 0x79, 0x78, 0x7a,
+			0x7b, 0x7d, 0x7d, 0x80, 0x81, 0x80, 0x82, 0x82, 0x83, 0x84, 0x84,
+			0x83, 0x83, 0x82, 0x82, 0x81, 0x80, 0x7f, 0x7e, 0x7d, 0x7c, 0x7c,
+			0x7d, 0x7c, 0x7c, 0x7a, 0x76, 0x75, 0x76, 0x75, 0x72, 0x75, 0x76,
+			0x76, 0x76, 0x7c, 0x80, 0x83, 0x85, 0x8a, 0x8a, 0x8c, 0x8e, 0x90,
+			0x90, 0x8e, 0x8d, 0x89, 0x87, 0x83, 0x82, 0x80, 0x7e, 0x7b, 0x7a,
+			0x78, 0x78, 0x78, 0x78, 0x7a, 0x78, 0x7a, 0x7a, 0x7b, 0x7d, 0x7e,
+			0x81, 0x80, 0x81, 0x81, 0x83, 0x83, 0x85, 0x84, 0x84, 0x82, 0x82,
+			0x82, 0x80, 0x80, 0x7f, 0x7f, 0x7d, 0x7c, 0x7d, 0x7c, 0x7d, 0x7a,
+			0x76, 0x73, 0x75, 0x74, 0x71, 0x74, 0x76, 0x74, 0x75, 0x7a, 0x7f,
+			0x81, 0x86, 0x89, 0x8b, 0x8c, 0x8e, 0x91, 0x90, 0x90, 0x8e, 0x8c,
+			0x89, 0x84, 0x84, 0x81, 0x7f, 0x7d, 0x7a, 0x79, 0x76, 0x77, 0x78,
+			0x79, 0x78, 0x79, 0x7a, 0x7a, 0x7c, 0x7d, 0x80, 0x80, 0x80, 0x82,
+			0x82, 0x84, 0x84, 0x85, 0x83, 0x83, 0x82, 0x83, 0x82, 0x80, 0x80,
+			0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7a, 0x76, 0x72, 0x74, 0x72, 0x6f,
+			0x72, 0x74, 0x73, 0x72, 0x79, 0x7e, 0x80, 0x85, 0x89, 0x8c, 0x8b,
+			0x8e, 0x92, 0x91, 0x92, 0x91, 0x8e, 0x8a, 0x87, 0x84, 0x84, 0x81,
+			0x7c, 0x7c, 0x79, 0x75, 0x76, 0x78, 0x77, 0x77, 0x77, 0x79, 0x78,
+			0x7a, 0x7c, 0x7f, 0x7e, 0x80, 0x81, 0x83, 0x83, 0x86, 0x85, 0x86,
+			0x84, 0x85, 0x83, 0x83, 0x81, 0x82, 0x81, 0x7e, 0x7e, 0x7c, 0x7b,
+			0x76, 0x73, 0x74, 0x72, 0x6d, 0x6e, 0x72, 0x70, 0x70, 0x74, 0x7b,
+			0x7e, 0x83, 0x89, 0x8b, 0x8c, 0x8e, 0x93, 0x92, 0x93, 0x93, 0x92,
+			0x8d, 0x89, 0x86, 0x85, 0x80, 0x7e, 0x7d, 0x79, 0x76, 0x75, 0x76,
+			0x77, 0x74, 0x77, 0x78, 0x76, 0x78, 0x7a, 0x7e, 0x7e, 0x7f, 0x83,
+			0x82, 0x83, 0x84, 0x87, 0x86, 0x86, 0x85, 0x85, 0x83, 0x83, 0x82,
+			0x82, 0x7f, 0x7e, 0x7b, 0x75, 0x72, 0x72, 0x70, 0x6a, 0x6d, 0x6e,
+			0x6c, 0x6d, 0x74, 0x78, 0x7c, 0x82, 0x87, 0x8b, 0x8b, 0x91, 0x94,
+			0x94, 0x94, 0x95, 0x92, 0x8f, 0x8a, 0x89, 0x86, 0x83, 0x7f, 0x7d,
+			0x7a, 0x75, 0x74, 0x75, 0x75, 0x73, 0x76, 0x77, 0x74, 0x76, 0x79,
+			0x7d, 0x7d, 0x81, 0x83, 0x83, 0x85, 0x87, 0x88, 0x88, 0x87, 0x88,
+			0x86, 0x86, 0x85, 0x82, 0x7f, 0x7a, 0x75, 0x6d, 0x6c, 0x6e, 0x6d,
+			0x6c, 0x6e, 0x70, 0x69, 0x69, 0x71, 0x7a, 0x80, 0x8c, 0x92, 0x8e,
+			0x8e, 0x92, 0x99, 0x9a, 0x9c, 0x9a, 0x90, 0x85, 0x7e, 0x7e, 0x7c,
+			0x7a, 0x78, 0x71, 0x6a, 0x6a, 0x72, 0x79, 0x7d, 0x7f, 0x7e, 0x7d,
+			0x80, 0x88, 0x8e, 0x8c, 0x8b, 0x88, 0x85, 0x84, 0x88, 0x86, 0x80,
+			0x7c, 0x7b, 0x7d, 0x7e, 0x80, 0x7d, 0x7a, 0x75, 0x5c, 0x42, 0x4b,
+			0x5b, 0x66, 0x78, 0x81, 0x85, 0x84, 0x92, 0xac, 0xb0, 0xa5, 0x9f,
+			0x8b, 0x77, 0x78, 0x7e, 0x7e, 0x75, 0x71, 0x78, 0x79, 0x7f, 0x8f,
+			0x8e, 0x86, 0x81, 0x80, 0x7e, 0x7b, 0x7f, 0x7d, 0x78, 0x79, 0x81,
+			0x86, 0x88, 0x88, 0x86, 0x7f, 0x7f, 0x80, 0x81, 0x7e, 0x7e, 0x7d,
+			0x7f, 0x81, 0x83, 0x86, 0x84, 0x85, 0x88, 0x86, 0x84, 0x7e, 0x76,
+			0x57, 0x34, 0x3c, 0x4f, 0x5c, 0x78, 0x88, 0x88, 0x8a, 0x96, 0xaf,
+			0xb4, 0xac, 0xa1, 0x86, 0x6e, 0x6e, 0x78, 0x7a, 0x7c, 0x7a, 0x7b,
+			0x7d, 0x82, 0x91, 0x8f, 0x86, 0x7e, 0x74, 0x6f, 0x6f, 0x79, 0x7e,
+			0x7d, 0x83, 0x88, 0x8a, 0x8e, 0x8d, 0x89, 0x7f, 0x7b, 0x7c, 0x7e,
+			0x7f, 0x82, 0x81, 0x81, 0x81, 0x85, 0x89, 0x8a, 0x8b, 0x85, 0x7e,
+			0x77, 0x70, 0x3b, 0x50, 0x66, 0x8f, 0x97, 0x97, 0x8f, 0x8b, 0xad,
+			0xa9, 0x9d, 0x96, 0x71, 0x5c, 0x5c, 0x6b, 0x88, 0x89, 0x8b, 0x93,
+			0x85, 0x87, 0x92, 0x91, 0x89, 0x75, 0x68, 0x63, 0x62, 0x6e, 0x86,
+			0x88, 0x84, 0x86, 0x86, 0x8c, 0x8b, 0x8d, 0x87, 0x79, 0x77, 0x7d,
+			0x81, 0x85, 0x85, 0x89, 0x87, 0x88, 0x8c, 0x8e, 0x89, 0x84, 0x7f,
+			0x7c, 0x77, 0x58, 0x2b, 0x3a, 0x57, 0x6a, 0x8f, 0x95, 0x98, 0x92,
+			0x8a, 0xab, 0xaf, 0x95, 0x89, 0x69, 0x5d, 0x61, 0x71, 0x8e, 0x8a,
+			0x82, 0x8d, 0x8d, 0x92, 0x97, 0x91, 0x80, 0x6a, 0x5f, 0x6b, 0x71,
+			0x73, 0x82, 0x84, 0x87, 0x87, 0x8b, 0x92, 0x84, 0x78, 0x79, 0x76,
+			0x7e, 0x7f, 0x81, 0x80, 0x7b, 0x87, 0x90, 0x8f, 0x91, 0x8c, 0x85,
+			0x82, 0x82, 0x85, 0x82, 0x7b, 0x79, 0x6a, 0x38, 0x34, 0x64, 0x74,
+			0x82, 0x8a, 0x83, 0x92, 0x89, 0xa0, 0xbb, 0x92, 0x7a, 0x6d, 0x69,
+			0x7a, 0x77, 0x80, 0x84, 0x70, 0x81, 0x9c, 0xa2, 0x9a, 0x83, 0x77,
+			0x78, 0x6e, 0x76, 0x7e, 0x6b, 0x69, 0x76, 0x8c, 0x99, 0x8f, 0x8a,
+			0x7f, 0x6f, 0x7d, 0x7e, 0x76, 0x71, 0x71, 0x84, 0x88, 0x8a, 0x8c,
+			0x81, 0x7c, 0x86, 0x8d, 0x92, 0x88, 0x81, 0x7f, 0x80, 0x89, 0x8c,
+			0x85, 0x7f, 0x76, 0x5d, 0x30, 0x47, 0x71, 0x6d, 0x75, 0x72, 0x82,
+			0x9d, 0x98, 0xb3, 0xab, 0x7d, 0x7b, 0x7c, 0x84, 0x7f, 0x62, 0x6d,
+			0x77, 0x7a, 0x9b, 0x9e, 0x92, 0x85, 0x80, 0x94, 0x90, 0x77, 0x6d,
+			0x65, 0x65, 0x77, 0x82, 0x83, 0x7c, 0x79, 0x8d, 0x98, 0x8a, 0x7b,
+			0x70, 0x71, 0x78, 0x79, 0x79, 0x71, 0x76, 0x8a, 0x8f, 0x8d, 0x8a,
+			0x8a, 0x8f, 0x8f, 0x8d, 0x8d, 0x82, 0x81, 0x7f, 0x7e, 0x7d, 0x7c,
+			0x7d, 0x7f, 0x78, 0x76, 0x56, 0x2d, 0x63, 0x7d, 0x66, 0x6e, 0x69,
+			0x88, 0xa5, 0x99, 0xb5, 0x9c, 0x7e, 0x9f, 0x98, 0x8a, 0x72, 0x59,
+			0x74, 0x74, 0x72, 0x83, 0x76, 0x79, 0x93, 0x9e, 0x9e, 0x85, 0x7d,
+			0x88, 0x83, 0x74, 0x73, 0x69, 0x61, 0x72, 0x7c, 0x7f, 0x7d, 0x7d,
+			0x91, 0x94, 0x8a, 0x88, 0x81, 0x7e, 0x81, 0x78, 0x72, 0x70, 0x75,
+			0x7e, 0x79, 0x7b, 0x85, 0x8b, 0x8c, 0x8d, 0x89, 0x89, 0x8a, 0x8b,
+			0x85, 0x83, 0x81, 0x80, 0x7d, 0x7d, 0x7f, 0x7a, 0x7a, 0x62, 0x41,
+			0x6d, 0x80, 0x4d, 0x63, 0x79, 0x70, 0x8a, 0x9e, 0x8f, 0x8a, 0x9b,
+			0xa9, 0xa2, 0x8c, 0x86, 0x88, 0x81, 0x7a, 0x7e, 0x6c, 0x62, 0x78,
+			0x80, 0x71, 0x7a, 0x86, 0x86, 0x88, 0x8e, 0x89, 0x88, 0x8e, 0x8d,
+			0x81, 0x79, 0x79, 0x81, 0x7a, 0x74, 0x74, 0x71, 0x73, 0x7a, 0x76,
+			0x70, 0x77, 0x81, 0x81, 0x84, 0x83, 0x85, 0x8d, 0x8d, 0x89, 0x89,
+			0x87, 0x87, 0x83, 0x7c, 0x7c, 0x82, 0x83, 0x82, 0x82, 0x82, 0x86,
+			0x89, 0x84, 0x86, 0x85, 0x84, 0x7d, 0x7b, 0x76, 0x50, 0x5f, 0x7d,
+			0x56, 0x55, 0x6f, 0x66, 0x6e, 0x89, 0x88, 0x76, 0x9e, 0xb0, 0x8f,
+			0x9d, 0xa5, 0x94, 0x99, 0x97, 0x86, 0x76, 0x82, 0x83, 0x69, 0x6b,
+			0x72, 0x6e, 0x73, 0x77, 0x70, 0x6f, 0x81, 0x8f, 0x7f, 0x85, 0x91,
+			0x8c, 0x91, 0x8f, 0x81, 0x7f, 0x86, 0x7f, 0x71, 0x75, 0x77, 0x70,
+			0x74, 0x72, 0x6a, 0x73, 0x7f, 0x7b, 0x7a, 0x87, 0x8a, 0x85, 0x8d,
+			0x8e, 0x8d, 0x95, 0x8e, 0x83, 0x86, 0x86, 0x7f, 0x7d, 0x7c, 0x76,
+			0x7b, 0x7c, 0x78, 0x7f, 0x84, 0x81, 0x83, 0x83, 0x82, 0x81, 0x7e,
+			0x62, 0x6b, 0x7e, 0x61, 0x5e, 0x69, 0x63, 0x70, 0x7d, 0x79, 0x75,
+			0x91, 0x9d, 0x89, 0x9b, 0xa1, 0x98, 0xa2, 0x98, 0x8a, 0x8b, 0x91,
+			0x88, 0x74, 0x75, 0x75, 0x6b, 0x73, 0x6b, 0x67, 0x75, 0x78, 0x76,
+			0x77, 0x81, 0x87, 0x87, 0x8e, 0x86, 0x87, 0x91, 0x8a, 0x80, 0x83,
+			0x83, 0x82, 0x7b, 0x7a, 0x76, 0x77, 0x75, 0x72, 0x71, 0x74, 0x76,
+			0x77, 0x78, 0x80, 0x83, 0x87, 0x89, 0x8b, 0x8d, 0x8f, 0x8b, 0x8a,
+			0x89, 0x85, 0x7e, 0x7e, 0x7d, 0x7d, 0x7b, 0x7a, 0x7f, 0x7f, 0x7d,
+			0x80, 0x82, 0x81, 0x82, 0x7d, 0x7d, 0x7c, 0x69, 0x71, 0x7b, 0x63,
+			0x69, 0x6b, 0x68, 0x73, 0x75, 0x79, 0x75, 0x8d, 0x93, 0x84, 0x98,
+			0x9b, 0x94, 0xa1, 0x94, 0x91, 0x97, 0x8f, 0x88, 0x7f, 0x85, 0x7b,
+			0x73, 0x76, 0x6a, 0x6d, 0x74, 0x69, 0x6d, 0x74, 0x7b, 0x7c, 0x7e,
+			0x84, 0x84, 0x89, 0x8a, 0x80, 0x88, 0x86, 0x84, 0x82, 0x82, 0x83,
+			0x82, 0x7e, 0x7c, 0x7b, 0x7a, 0x75, 0x73, 0x75, 0x76, 0x78, 0x76,
+			0x79, 0x82, 0x83, 0x84, 0x89, 0x8d, 0x8e, 0x8c, 0x8b, 0x88, 0x87,
+			0x85, 0x80, 0x80, 0x7f, 0x7c, 0x7a, 0x7a, 0x79, 0x7c, 0x7e, 0x7c,
+			0x7e, 0x7f, 0x81, 0x7c, 0x82, 0x73, 0x6c, 0x80, 0x70, 0x6c, 0x71,
+			0x6e, 0x77, 0x71, 0x78, 0x72, 0x7f, 0x89, 0x7b, 0x8b, 0x91, 0x90,
+			0x96, 0x95, 0x94, 0x97, 0x94, 0x8e, 0x87, 0x89, 0x81, 0x7b, 0x79,
+			0x72, 0x73, 0x72, 0x6d, 0x71, 0x75, 0x77, 0x75, 0x7b, 0x7d, 0x7f,
+			0x82, 0x83, 0x82, 0x86, 0x84, 0x83, 0x82, 0x83, 0x83, 0x82, 0x81,
+			0x7e, 0x7f, 0x7a, 0x75, 0x7a, 0x78, 0x77, 0x76, 0x79, 0x7c, 0x7e,
+			0x7e, 0x84, 0x88, 0x88, 0x88, 0x89, 0x89, 0x87, 0x86, 0x82, 0x81,
+			0x80, 0x7e, 0x7b, 0x7d, 0x7b, 0x7b, 0x7b, 0x7c, 0x7b, 0x7d, 0x7d,
+			0x7d, 0x80, 0x7f, 0x81, 0x82, 0x88, 0x73, 0x79, 0x83, 0x6f, 0x73,
+			0x6a, 0x70, 0x72, 0x6c, 0x74, 0x6d, 0x84, 0x7e, 0x7e, 0x8d, 0x8e,
+			0x94, 0x90, 0x93, 0x91, 0x92, 0x8f, 0x87, 0x8a, 0x88, 0x85, 0x82,
+			0x81, 0x80, 0x7c, 0x79, 0x75, 0x77, 0x76, 0x71, 0x72, 0x74, 0x77,
+			0x79, 0x7b, 0x7e, 0x81, 0x83, 0x80, 0x84, 0x84, 0x82, 0x82, 0x80,
+			0x81, 0x7d, 0x7f, 0x7c, 0x7b, 0x7c, 0x7c, 0x7b, 0x7c, 0x7c, 0x7b,
+			0x7d, 0x7e, 0x80, 0x82, 0x82, 0x84, 0x85, 0x85, 0x86, 0x83, 0x84,
+			0x82, 0x84, 0x80, 0x80, 0x7e, 0x7f, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c,
+			0x7d, 0x7b, 0x7d, 0x7d, 0x7e, 0x81, 0x7e, 0x7f, 0x7e, 0x7e, 0x7e,
+			0x71, 0x7d, 0x78, 0x74, 0x76, 0x73, 0x7d, 0x74, 0x7b, 0x78, 0x7e,
+			0x85, 0x7e, 0x84, 0x86, 0x8c, 0x88, 0x8c, 0x8f, 0x8e, 0x8f, 0x89,
+			0x8a, 0x87, 0x85, 0x81, 0x7e, 0x7e, 0x7b, 0x78, 0x77, 0x78, 0x79,
+			0x77, 0x78, 0x79, 0x7d, 0x7a, 0x7d, 0x7d, 0x7f, 0x7f, 0x7f, 0x81,
+			0x83, 0x83, 0x84, 0x84, 0x84, 0x84, 0x81, 0x7d, 0x7d, 0x7c, 0x7d,
+			0x79, 0x7a, 0x7a, 0x7a, 0x7a, 0x7b, 0x7e, 0x7d, 0x80, 0x80, 0x81,
+			0x81, 0x84, 0x84, 0x82, 0x84, 0x81, 0x82, 0x83, 0x82, 0x83, 0x81,
+			0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7b, 0x7e, 0x7d, 0x7e, 0x7d,
+			0x7c, 0x7e, 0x7a, 0x7d, 0x7d, 0x7e, 0x7f, 0x7e, 0x80, 0x81, 0x82,
+			0x83, 0x7f, 0x80, 0x80, 0x7d, 0x7e, 0x79, 0x7c, 0x79, 0x7a, 0x79,
+			0x7c, 0x7e, 0x80, 0x82, 0x83, 0x84, 0x85, 0x85, 0x86, 0x85, 0x85,
+			0x82, 0x83, 0x83, 0x82, 0x81, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7f,
+			0x80, 0x7d, 0x7e, 0x7d, 0x81, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x7d,
+			0x7e, 0x7d, 0x7d, 0x7d, 0x7b, 0x7b, 0x7d, 0x7e, 0x7e, 0x7f, 0x7e,
+			0x7f, 0x7f, 0x81, 0x83, 0x81, 0x82, 0x81, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7d, 0x7e, 0x7e, 0x7e, 0x7f, 0x80, 0x7e, 0x80, 0x80, 0x81, 0x80,
+			0x81, 0x82, 0x7e, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7e, 0x7f,
+			0x7f, 0x7d, 0x7d, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x80,
+			0x7f, 0x80, 0x7f, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f,
+			0x7e, 0x80, 0x80, 0x82, 0x82, 0x82, 0x81, 0x81, 0x81, 0x80, 0x80,
+			0x80, 0x7f, 0x7e, 0x7e, 0x7c, 0x7f, 0x7f, 0x81, 0x81, 0x80, 0x7f,
+			0x82, 0x82, 0x80, 0x7d, 0x7e, 0x7f, 0x7e, 0x7e, 0x7f, 0x7e, 0x7f,
+			0x7e, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7e,
+			0x7f, 0x7d, 0x80, 0x7d, 0x7f, 0x7e, 0x7f, 0x80, 0x7e, 0x80, 0x82,
+			0x81, 0x80, 0x80, 0x7e, 0x80, 0x7f, 0x80, 0x81, 0x7f, 0x7e, 0x7f,
+			0x7f, 0x81, 0x7f, 0x7f, 0x7c, 0x7e, 0x7d, 0x7b, 0x7e, 0x7c, 0x7e,
+			0x7e, 0x7f, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x7d, 0x7e, 0x7d,
+			0x7e, 0x7f, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x83, 0x80, 0x81, 0x80,
+			0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7e, 0x7e, 0x7f, 0x7e,
+			0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x80, 0x7f, 0x7f, 0x81, 0x7f,
+			0x81, 0x80, 0x81, 0x80, 0x81, 0x80, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f,
+			0x7d, 0x7f, 0x80, 0x80, 0x7e, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80,
+			0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x80, 0x80,
+			0x80, 0x7f, 0x7e, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7d, 0x7e,
+			0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x81, 0x7f, 0x80, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7e, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f,
+		},
+		{ // 1
+			0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7d, 0x7d,
+			0x7d, 0x7d, 0x7f, 0x80, 0x80, 0x81, 0x81, 0x82, 0x82, 0x82, 0x80,
+			0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80,
+			0x80, 0x81, 0x81, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x81, 0x81, 0x80, 0x7f, 0x7e,
+			0x7f, 0x80, 0x81, 0x82, 0x82, 0x81, 0x80, 0x7f, 0x7e, 0x79, 0x50,
+			0x36, 0x71, 0x90, 0x8d, 0xa6, 0x8b, 0x7b, 0x99, 0x8f, 0x7c, 0x6b,
+			0x65, 0x78, 0x88, 0x9b, 0x97, 0x85, 0x8c, 0x8f, 0x86, 0x7f, 0x6f,
+			0x66, 0x74, 0x84, 0x8a, 0x8b, 0x86, 0x83, 0x83, 0x81, 0x7e, 0x72,
+			0x6f, 0x79, 0x7d, 0x84, 0x87, 0x7f, 0x80, 0x81, 0x7e, 0x7b, 0x77,
+			0x7b, 0x81, 0x85, 0x85, 0x7e, 0x7c, 0x7d, 0x7f, 0x83, 0x84, 0x86,
+			0x87, 0x85, 0x82, 0x7c, 0x7a, 0x7c, 0x7e, 0x83, 0x87, 0x88, 0x87,
+			0x82, 0x7e, 0x7d, 0x7d, 0x7f, 0x80, 0x7f, 0x7f, 0x75, 0x4d, 0x41,
+			0x7c, 0x8a, 0x85, 0xa3, 0x81, 0x7e, 0xa2, 0x89, 0x78, 0x6f, 0x6a,
+			0x7a, 0x87, 0x95, 0x8b, 0x83, 0x94, 0x90, 0x86, 0x81, 0x6d, 0x69,
+			0x7c, 0x81, 0x82, 0x88, 0x84, 0x88, 0x89, 0x84, 0x7e, 0x73, 0x74,
+			0x78, 0x78, 0x81, 0x81, 0x81, 0x85, 0x80, 0x7e, 0x7d, 0x7c, 0x7d,
+			0x80, 0x81, 0x80, 0x81, 0x80, 0x7e, 0x80, 0x82, 0x84, 0x87, 0x85,
+			0x84, 0x81, 0x7e, 0x7c, 0x7d, 0x80, 0x84, 0x86, 0x85, 0x84, 0x83,
+			0x81, 0x80, 0x81, 0x7f, 0x7c, 0x5e, 0x2b, 0x56, 0x93, 0x7b, 0x9f,
+			0x9c, 0x6f, 0xa5, 0xa1, 0x78, 0x72, 0x61, 0x6e, 0x7f, 0x90, 0x90,
+			0x7e, 0x94, 0x9e, 0x8d, 0x89, 0x76, 0x61, 0x74, 0x7f, 0x77, 0x82,
+			0x83, 0x89, 0x93, 0x8a, 0x85, 0x76, 0x73, 0x77, 0x71, 0x79, 0x7d,
+			0x7d, 0x87, 0x88, 0x82, 0x7f, 0x7f, 0x79, 0x78, 0x7e, 0x7f, 0x83,
+			0x85, 0x80, 0x7f, 0x81, 0x82, 0x84, 0x87, 0x87, 0x86, 0x85, 0x7f,
+			0x7b, 0x7c, 0x7d, 0x82, 0x85, 0x86, 0x88, 0x86, 0x84, 0x81, 0x7d,
+			0x7b, 0x6c, 0x30, 0x3d, 0x8c, 0x78, 0x8d, 0xaa, 0x74, 0x9f, 0xb2,
+			0x81, 0x73, 0x63, 0x6d, 0x76, 0x81, 0x8b, 0x7a, 0x92, 0xab, 0x95,
+			0x8b, 0x82, 0x67, 0x72, 0x7b, 0x6a, 0x75, 0x7e, 0x8b, 0x96, 0x8d,
+			0x8d, 0x80, 0x7f, 0x7e, 0x6a, 0x6c, 0x72, 0x77, 0x84, 0x84, 0x82,
+			0x87, 0x88, 0x80, 0x7e, 0x7d, 0x7a, 0x7f, 0x7f, 0x7d, 0x80, 0x81,
+			0x83, 0x86, 0x87, 0x85, 0x86, 0x87, 0x81, 0x80, 0x7d, 0x7b, 0x7f,
+			0x81, 0x84, 0x88, 0x88, 0x86, 0x85, 0x7f, 0x79, 0x4c, 0x23, 0x6e,
+			0x81, 0x67, 0x9d, 0x86, 0x8d, 0xc3, 0x9c, 0x7e, 0x6f, 0x75, 0x7a,
+			0x69, 0x76, 0x70, 0x7d, 0xab, 0xa0, 0x8b, 0x97, 0x88, 0x82, 0x80,
+			0x63, 0x62, 0x6d, 0x7d, 0x85, 0x7c, 0x8f, 0x96, 0x95, 0x93, 0x76,
+			0x6f, 0x73, 0x71, 0x6f, 0x67, 0x71, 0x85, 0x8c, 0x8d, 0x8a, 0x8a,
+			0x8a, 0x84, 0x78, 0x71, 0x78, 0x7e, 0x7e, 0x81, 0x87, 0x8b, 0x8e,
+			0x89, 0x82, 0x83, 0x83, 0x7e, 0x7b, 0x7e, 0x80, 0x84, 0x87, 0x84,
+			0x86, 0x87, 0x7b, 0x3a, 0x34, 0x88, 0x60, 0x61, 0x91, 0x6f, 0xaa,
+			0xc0, 0x92, 0x8a, 0x88, 0x98, 0x75, 0x5f, 0x6c, 0x60, 0x82, 0x95,
+			0x76, 0x90, 0xa9, 0x9b, 0x99, 0x81, 0x78, 0x7c, 0x72, 0x6d, 0x59,
+			0x6e, 0x88, 0x85, 0x90, 0x89, 0x8d, 0x99, 0x89, 0x7a, 0x69, 0x69,
+			0x70, 0x6b, 0x6e, 0x7b, 0x8d, 0x91, 0x8d, 0x8b, 0x89, 0x89, 0x7f,
+			0x76, 0x79, 0x80, 0x82, 0x7f, 0x83, 0x87, 0x88, 0x85, 0x82, 0x84,
+			0x87, 0x85, 0x80, 0x84, 0x83, 0x83, 0x80, 0x81, 0x56, 0x28, 0x7b,
+			0x6d, 0x3e, 0x83, 0x6b, 0x8b, 0xbc, 0x94, 0x98, 0xa6, 0xb3, 0x8f,
+			0x6d, 0x7e, 0x66, 0x6c, 0x74, 0x52, 0x79, 0x9b, 0x89, 0x93, 0x93,
+			0x9d, 0xa4, 0x8d, 0x7d, 0x70, 0x7b, 0x73, 0x5e, 0x6b, 0x6d, 0x7d,
+			0x84, 0x74, 0x7f, 0x92, 0x8e, 0x83, 0x83, 0x84, 0x88, 0x84, 0x77,
+			0x7d, 0x84, 0x7c, 0x76, 0x7c, 0x82, 0x82, 0x81, 0x82, 0x8b, 0x90,
+			0x88, 0x83, 0x87, 0x87, 0x80, 0x7c, 0x7c, 0x81, 0x7f, 0x7b, 0x7d,
+			0x8a, 0x71, 0x3d, 0x76, 0x76, 0x44, 0x78, 0x58, 0x6a, 0xa4, 0x77,
+			0x88, 0xa5, 0xb0, 0xa8, 0x96, 0x9f, 0x8c, 0x96, 0x82, 0x56, 0x7a,
+			0x75, 0x63, 0x73, 0x67, 0x7e, 0x92, 0x85, 0x85, 0x94, 0x9d, 0x8c,
+			0x8c, 0x85, 0x7c, 0x87, 0x73, 0x69, 0x75, 0x6e, 0x69, 0x71, 0x73,
+			0x7d, 0x87, 0x82, 0x89, 0x96, 0x90, 0x8d, 0x8f, 0x8b, 0x8a, 0x83,
+			0x79, 0x7c, 0x7e, 0x75, 0x72, 0x78, 0x7e, 0x81, 0x7f, 0x82, 0x8b,
+			0x8c, 0x8a, 0x84, 0x89, 0x80, 0x5d, 0x74, 0x75, 0x56, 0x6d, 0x5f,
+			0x5e, 0x7b, 0x6e, 0x6f, 0x83, 0x8f, 0x8e, 0x93, 0x9a, 0x95, 0xa6,
+			0x9e, 0x8e, 0x9a, 0x90, 0x8a, 0x86, 0x7c, 0x7c, 0x7e, 0x79, 0x72,
+			0x79, 0x79, 0x74, 0x79, 0x77, 0x78, 0x7c, 0x77, 0x78, 0x80, 0x7f,
+			0x7f, 0x82, 0x83, 0x86, 0x88, 0x85, 0x87, 0x8a, 0x87, 0x82, 0x81,
+			0x80, 0x80, 0x7f, 0x79, 0x7a, 0x7e, 0x7b, 0x7b, 0x7b, 0x7b, 0x7e,
+			0x7f, 0x7e, 0x7d, 0x7f, 0x81, 0x80, 0x80, 0x7e, 0x7f, 0x82, 0x7e,
+			0x7d, 0x7d, 0x7c, 0x7d, 0x7a, 0x7a, 0x7c, 0x7c, 0x7c, 0x7b, 0x7c,
+			0x7f, 0x81, 0x80, 0x7e, 0x82, 0x85, 0x83, 0x86, 0x85, 0x85, 0x89,
+			0x88, 0x86, 0x87, 0x88, 0x88, 0x87, 0x86, 0x85, 0x85, 0x84, 0x81,
+			0x7f, 0x7d, 0x7c, 0x7b, 0x79, 0x79, 0x7b, 0x7c, 0x7d, 0x7b, 0x7c,
+			0x7e, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7f,
+			0x80, 0x81, 0x7f, 0x80, 0x82, 0x82, 0x81, 0x7e, 0x7d, 0x7d, 0x7a,
+			0x77, 0x76, 0x78, 0x79, 0x78, 0x7b, 0x7e, 0x80, 0x83, 0x81, 0x82,
+			0x84, 0x83, 0x83, 0x83, 0x84, 0x86, 0x87, 0x87, 0x89, 0x8a, 0x88,
+			0x88, 0x88, 0x86, 0x86, 0x83, 0x80, 0x80, 0x7f, 0x7e, 0x7d, 0x7c,
+			0x7c, 0x7c, 0x7c, 0x7a, 0x7b, 0x7b, 0x7a, 0x7b, 0x7b, 0x7c, 0x7d,
+			0x7d, 0x7e, 0x7f, 0x80, 0x80, 0x81, 0x82, 0x83, 0x84, 0x84, 0x83,
+			0x83, 0x80, 0x7e, 0x7d, 0x7a, 0x78, 0x77, 0x77, 0x79, 0x79, 0x7b,
+			0x7d, 0x7f, 0x81, 0x80, 0x81, 0x82, 0x81, 0x81, 0x80, 0x81, 0x82,
+			0x82, 0x84, 0x87, 0x88, 0x8a, 0x89, 0x87, 0x87, 0x86, 0x84, 0x83,
+			0x81, 0x7f, 0x80, 0x7f, 0x7c, 0x7d, 0x7c, 0x7c, 0x7c, 0x7a, 0x7b,
+			0x7c, 0x7b, 0x7c, 0x7c, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x80,
+			0x7f, 0x7f, 0x7e, 0x7e, 0x7f, 0x7e, 0x80, 0x82, 0x81, 0x81, 0x7f,
+			0x7d, 0x7e, 0x7b, 0x7a, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e,
+			0x7f, 0x7e, 0x7f, 0x81, 0x83, 0x85, 0x85, 0x86, 0x87, 0x89, 0x87,
+			0x86, 0x85, 0x84, 0x83, 0x82, 0x80, 0x7f, 0x81, 0x81, 0x81, 0x80,
+			0x7f, 0x80, 0x80, 0x7e, 0x7d, 0x7c, 0x7b, 0x7a, 0x79, 0x79, 0x79,
+			0x7c, 0x7c, 0x7c, 0x7e, 0x7f, 0x81, 0x81, 0x80, 0x81, 0x83, 0x82,
+			0x81, 0x81, 0x81, 0x81, 0x82, 0x7f, 0x7e, 0x7e, 0x7c, 0x79, 0x78,
+			0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7f, 0x81, 0x80, 0x80, 0x82, 0x83,
+			0x83, 0x82, 0x81, 0x83, 0x85, 0x85, 0x85, 0x85, 0x84, 0x86, 0x85,
+			0x83, 0x83, 0x83, 0x82, 0x81, 0x7f, 0x7f, 0x7e, 0x7c, 0x7d, 0x7c,
+			0x7b, 0x7c, 0x7b, 0x7b, 0x7c, 0x7d, 0x7d, 0x7e, 0x7f, 0x80, 0x81,
+			0x81, 0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x80,
+			0x81, 0x82, 0x81, 0x80, 0x7f, 0x7e, 0x7c, 0x7c, 0x7a, 0x7a, 0x7b,
+			0x7c, 0x7c, 0x7c, 0x7c, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x82, 0x84,
+			0x85, 0x85, 0x85, 0x86, 0x86, 0x85, 0x84, 0x82, 0x82, 0x82, 0x7f,
+			0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x7f, 0x7e, 0x7d, 0x7d,
+			0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7e, 0x7e, 0x7e, 0x7f, 0x7e, 0x7f,
+			0x7f, 0x7f, 0x80, 0x80, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x7e,
+			0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e,
+			0x7f, 0x7e, 0x7d, 0x7c, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x81,
+			0x80, 0x81, 0x82, 0x83, 0x84, 0x83, 0x83, 0x84, 0x85, 0x84, 0x83,
+			0x83, 0x83, 0x82, 0x81, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x7c, 0x7c, 0x7e,
+			0x7e, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x81,
+			0x81, 0x82, 0x82, 0x80, 0x7f, 0x7f, 0x7f, 0x7d, 0x7d, 0x7c, 0x7c,
+			0x7c, 0x7a, 0x7b, 0x7c, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x82, 0x81,
+			0x82, 0x83, 0x83, 0x83, 0x82, 0x82, 0x81, 0x81, 0x81, 0x82, 0x82,
+			0x82, 0x82, 0x82, 0x82, 0x81, 0x82, 0x82, 0x7f, 0x80, 0x80, 0x7f,
+			0x7f, 0x7c, 0x7c, 0x7d, 0x7e, 0x7d, 0x7e, 0x7f, 0x7f, 0x7f, 0x7e,
+			0x80, 0x7d, 0x7e, 0x7f, 0x7d, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80,
+			0x80, 0x80, 0x7f, 0x7f, 0x7d, 0x7d, 0x7f, 0x7d, 0x7c, 0x7e, 0x7c,
+			0x7e, 0x7d, 0x7b, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x80, 0x81, 0x80,
+			0x80, 0x82, 0x82, 0x82, 0x82, 0x82, 0x83, 0x83, 0x81, 0x81, 0x81,
+			0x82, 0x82, 0x82, 0x82, 0x80, 0x81, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d,
+			0x80, 0x7e, 0x7e, 0x81, 0x7d, 0x7f, 0x80, 0x7d, 0x7f, 0x7f, 0x7d,
+			0x80, 0x7f, 0x80, 0x82, 0x7e, 0x7f, 0x83, 0x7e, 0x7e, 0x80, 0x79,
+			0x7e, 0x7b, 0x76, 0x7d, 0x79, 0x7b, 0x7f, 0x7c, 0x83, 0x82, 0x80,
+			0x85, 0x83, 0x84, 0x83, 0x81, 0x83, 0x83, 0x82, 0x81, 0x83, 0x82,
+			0x82, 0x83, 0x7f, 0x84, 0x81, 0x7f, 0x82, 0x7f, 0x81, 0x7e, 0x7e,
+			0x7f, 0x80, 0x7c, 0x7f, 0x7e, 0x7d, 0x80, 0x7d, 0x81, 0x80, 0x7e,
+			0x80, 0x81, 0x7c, 0x83, 0x7b, 0x7e, 0x80, 0x7c, 0x7f, 0x7d, 0x81,
+			0x7e, 0x85, 0x80, 0x7b, 0x83, 0x80, 0x76, 0x7f, 0x78, 0x77, 0x80,
+			0x70, 0x7d, 0x7f, 0x78, 0x84, 0x7d, 0x7f, 0x89, 0x7f, 0x81, 0x85,
+			0x82, 0x85, 0x81, 0x82, 0x86, 0x86, 0x83, 0x82, 0x87, 0x83, 0x82,
+			0x80, 0x7f, 0x82, 0x80, 0x7b, 0x7e, 0x81, 0x7d, 0x7c, 0x7c, 0x7f,
+			0x7c, 0x7c, 0x7f, 0x7f, 0x81, 0x82, 0x7f, 0x83, 0x83, 0x7e, 0x83,
+			0x7f, 0x81, 0x7f, 0x7f, 0x81, 0x81, 0x7f, 0x81, 0x84, 0x80, 0x86,
+			0x73, 0x7c, 0x84, 0x6f, 0x7b, 0x77, 0x70, 0x82, 0x72, 0x70, 0x86,
+			0x75, 0x7f, 0x7e, 0x77, 0x89, 0x81, 0x7e, 0x87, 0x87, 0x8b, 0x89,
+			0x86, 0x8d, 0x8b, 0x88, 0x84, 0x85, 0x85, 0x82, 0x7f, 0x7a, 0x83,
+			0x7d, 0x7b, 0x7e, 0x7a, 0x7d, 0x79, 0x77, 0x7b, 0x7b, 0x79, 0x7c,
+			0x7f, 0x81, 0x81, 0x82, 0x83, 0x87, 0x86, 0x81, 0x87, 0x85, 0x81,
+			0x84, 0x82, 0x7f, 0x85, 0x7f, 0x7e, 0x81, 0x71, 0x7e, 0x7b, 0x6c,
+			0x7d, 0x70, 0x73, 0x7d, 0x68, 0x78, 0x7b, 0x70, 0x81, 0x75, 0x7d,
+			0x8a, 0x7d, 0x89, 0x8b, 0x8c, 0x93, 0x8d, 0x8f, 0x92, 0x8f, 0x8a,
+			0x86, 0x87, 0x83, 0x80, 0x7c, 0x7b, 0x7e, 0x78, 0x77, 0x78, 0x78,
+			0x78, 0x76, 0x76, 0x7a, 0x79, 0x7b, 0x7f, 0x7f, 0x85, 0x82, 0x84,
+			0x88, 0x84, 0x87, 0x88, 0x89, 0x87, 0x8a, 0x85, 0x86, 0x87, 0x7e,
+			0x85, 0x73, 0x76, 0x81, 0x67, 0x70, 0x72, 0x62, 0x76, 0x68, 0x63,
+			0x7e, 0x6b, 0x76, 0x7e, 0x76, 0x8d, 0x85, 0x85, 0x93, 0x90, 0x96,
+			0x93, 0x92, 0x98, 0x94, 0x92, 0x8d, 0x8d, 0x8d, 0x82, 0x83, 0x7c,
+			0x7b, 0x7a, 0x6e, 0x72, 0x72, 0x6d, 0x6e, 0x6d, 0x71, 0x75, 0x75,
+			0x7a, 0x83, 0x84, 0x8b, 0x8e, 0x8e, 0x94, 0x8d, 0x8c, 0x8e, 0x8b,
+			0x87, 0x85, 0x83, 0x80, 0x81, 0x70, 0x71, 0x7f, 0x66, 0x6c, 0x71,
+			0x5e, 0x75, 0x67, 0x5e, 0x7e, 0x6c, 0x74, 0x80, 0x76, 0x90, 0x8a,
+			0x85, 0x97, 0x95, 0x99, 0x98, 0x94, 0x9c, 0x99, 0x95, 0x8e, 0x91,
+			0x92, 0x83, 0x82, 0x7b, 0x7a, 0x76, 0x67, 0x6e, 0x6e, 0x6a, 0x6a,
+			0x6b, 0x73, 0x76, 0x76, 0x7b, 0x89, 0x89, 0x8b, 0x90, 0x93, 0x96,
+			0x8f, 0x90, 0x8f, 0x8d, 0x87, 0x84, 0x83, 0x81, 0x76, 0x6b, 0x7e,
+			0x6c, 0x63, 0x71, 0x5c, 0x6d, 0x6c, 0x56, 0x71, 0x70, 0x6d, 0x7c,
+			0x76, 0x87, 0x92, 0x87, 0x95, 0x9a, 0x9f, 0x9e, 0x9a, 0xa2, 0x9e,
+			0x9d, 0x94, 0x8f, 0x96, 0x87, 0x7e, 0x7d, 0x7a, 0x74, 0x69, 0x69,
+			0x6b, 0x6b, 0x66, 0x69, 0x72, 0x74, 0x76, 0x7b, 0x87, 0x8a, 0x8c,
+			0x90, 0x95, 0x97, 0x93, 0x92, 0x92, 0x91, 0x8a, 0x86, 0x84, 0x83,
+			0x75, 0x68, 0x7c, 0x69, 0x5e, 0x6f, 0x56, 0x67, 0x6a, 0x53, 0x6f,
+			0x71, 0x6b, 0x7c, 0x7a, 0x8a, 0x95, 0x8f, 0x99, 0xa1, 0xa8, 0xa2,
+			0x9e, 0xa8, 0x9e, 0x9d, 0x96, 0x8a, 0x92, 0x83, 0x74, 0x79, 0x70,
+			0x67, 0x66, 0x61, 0x63, 0x68, 0x64, 0x6b, 0x78, 0x78, 0x7e, 0x8a,
+			0x90, 0x95, 0x98, 0x98, 0x9d, 0x9c, 0x95, 0x95, 0x94, 0x8b, 0x85,
+			0x82, 0x7b, 0x7b, 0x66, 0x5f, 0x72, 0x55, 0x54, 0x64, 0x50, 0x63,
+			0x61, 0x59, 0x75, 0x75, 0x7a, 0x85, 0x8f, 0x9e, 0x9b, 0xa2, 0xa9,
+			0xa9, 0xb3, 0xa2, 0xa1, 0xab, 0x96, 0x91, 0x8a, 0x7f, 0x81, 0x70,
+			0x65, 0x67, 0x67, 0x5b, 0x58, 0x64, 0x65, 0x67, 0x6e, 0x78, 0x84,
+			0x88, 0x8b, 0x95, 0x9f, 0x9c, 0x9e, 0xa2, 0xa0, 0x9b, 0x92, 0x90,
+			0x8c, 0x85, 0x7d, 0x7b, 0x78, 0x73, 0x70, 0x55, 0x60, 0x6f, 0x48,
+			0x53, 0x63, 0x51, 0x62, 0x61, 0x62, 0x7c, 0x81, 0x83, 0x8b, 0xa2,
+			0xa9, 0x9c, 0xae, 0xb1, 0xab, 0xb2, 0x9f, 0x9e, 0xa3, 0x8d, 0x83,
+			0x7e, 0x7b, 0x72, 0x64, 0x65, 0x62, 0x63, 0x5d, 0x5a, 0x69, 0x6e,
+			0x6c, 0x74, 0x83, 0x88, 0x8a, 0x91, 0x98, 0x9f, 0x9d, 0x9b, 0x9e,
+			0x9e, 0x94, 0x8e, 0x8f, 0x89, 0x81, 0x7e, 0x7c, 0x79, 0x75, 0x74,
+			0x6b, 0x56, 0x67, 0x68, 0x44, 0x5a, 0x62, 0x51, 0x5f, 0x63, 0x6c,
+			0x7a, 0x84, 0x8b, 0x91, 0xab, 0xab, 0x9e, 0xb4, 0xb4, 0xa9, 0xad,
+			0xa1, 0x9c, 0x95, 0x88, 0x7f, 0x76, 0x7a, 0x6e, 0x61, 0x6a, 0x65,
+			0x60, 0x64, 0x63, 0x67, 0x70, 0x71, 0x72, 0x80, 0x88, 0x87, 0x8e,
+			0x98, 0x9a, 0x99, 0x9d, 0x9c, 0x9b, 0x99, 0x90, 0x8d, 0x8b, 0x84,
+			0x7d, 0x7f, 0x7c, 0x77, 0x75, 0x75, 0x6f, 0x58, 0x60, 0x68, 0x4c,
+			0x52, 0x5f, 0x56, 0x5b, 0x63, 0x6e, 0x76, 0x84, 0x93, 0x91, 0xa5,
+			0xb2, 0xa5, 0xad, 0xb4, 0xaf, 0xaa, 0xa0, 0x9c, 0x91, 0x88, 0x83,
+			0x74, 0x75, 0x72, 0x65, 0x65, 0x66, 0x67, 0x62, 0x63, 0x6a, 0x6a,
+			0x6d, 0x71, 0x77, 0x80, 0x86, 0x89, 0x8f, 0x97, 0x99, 0x9a, 0x9b,
+			0x9d, 0x9a, 0x96, 0x93, 0x8d, 0x89, 0x83, 0x7e, 0x7c, 0x7a, 0x76,
+			0x73, 0x73, 0x73, 0x72, 0x61, 0x58, 0x65, 0x5d, 0x50, 0x59, 0x5f,
+			0x61, 0x61, 0x6b, 0x79, 0x7f, 0x8e, 0x97, 0x9d, 0xaa, 0xac, 0xab,
+			0xab, 0xad, 0xaf, 0xa0, 0x97, 0x93, 0x89, 0x82, 0x78, 0x72, 0x71,
+			0x6b, 0x67, 0x63, 0x64, 0x6a, 0x69, 0x68, 0x6a, 0x6f, 0x72, 0x74,
+			0x7a, 0x82, 0x87, 0x8b, 0x8e, 0x92, 0x97, 0x97, 0x97, 0x95, 0x94,
+			0x92, 0x8c, 0x88, 0x85, 0x82, 0x7c, 0x77, 0x76, 0x74, 0x73, 0x73,
+			0x73, 0x74, 0x75, 0x74, 0x6b, 0x66, 0x6b, 0x6b, 0x65, 0x62, 0x67,
+			0x6d, 0x6b, 0x71, 0x7c, 0x81, 0x89, 0x94, 0x99, 0x99, 0x9c, 0xa1,
+			0x9d, 0x9a, 0x9c, 0x96, 0x8e, 0x8a, 0x87, 0x82, 0x7d, 0x7d, 0x79,
+			0x74, 0x74, 0x73, 0x72, 0x74, 0x75, 0x75, 0x76, 0x76, 0x77, 0x78,
+			0x78, 0x79, 0x7b, 0x7e, 0x7f, 0x81, 0x84, 0x86, 0x88, 0x89, 0x89,
+			0x88, 0x87, 0x88, 0x85, 0x83, 0x82, 0x81, 0x7f, 0x7f, 0x7e, 0x7f,
+			0x80, 0x82, 0x82, 0x82, 0x83, 0x82, 0x81, 0x7a, 0x6f, 0x6c, 0x6f,
+			0x68, 0x60, 0x65, 0x68, 0x64, 0x69, 0x72, 0x74, 0x77, 0x83, 0x8a,
+			0x88, 0x8e, 0x95, 0x96, 0x99, 0x9c, 0x9b, 0x96, 0x95, 0x94, 0x90,
+			0x8d, 0x8a, 0x86, 0x85, 0x81, 0x7d, 0x7c, 0x79, 0x73, 0x71, 0x71,
+			0x6d, 0x6a, 0x6c, 0x6d, 0x6c, 0x6f, 0x72, 0x74, 0x77, 0x7c, 0x80,
+			0x82, 0x85, 0x88, 0x8b, 0x8d, 0x8e, 0x8f, 0x8f, 0x8e, 0x8e, 0x8d,
+			0x8b, 0x89, 0x87, 0x85, 0x82, 0x80, 0x7f, 0x7c, 0x7a, 0x79, 0x78,
+			0x78, 0x75, 0x6f, 0x69, 0x6c, 0x6d, 0x64, 0x65, 0x6b, 0x68, 0x69,
+			0x73, 0x78, 0x79, 0x82, 0x8a, 0x88, 0x8d, 0x94, 0x95, 0x96, 0x99,
+			0x99, 0x98, 0x96, 0x93, 0x90, 0x8f, 0x8b, 0x86, 0x85, 0x81, 0x7c,
+			0x7b, 0x7a, 0x76, 0x73, 0x74, 0x72, 0x6f, 0x71, 0x71, 0x70, 0x70,
+			0x73, 0x73, 0x74, 0x78, 0x7b, 0x7d, 0x7f, 0x82, 0x84, 0x86, 0x88,
+			0x89, 0x8a, 0x8a, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8a, 0x88, 0x87,
+			0x87, 0x85, 0x83, 0x82, 0x81, 0x80, 0x7e, 0x7b, 0x78, 0x76, 0x70,
+			0x66, 0x67, 0x68, 0x5f, 0x60, 0x66, 0x64, 0x65, 0x6f, 0x76, 0x78,
+			0x82, 0x8b, 0x8c, 0x91, 0x98, 0x9a, 0x9c, 0x9d, 0x9c, 0x9c, 0x9a,
+			0x95, 0x92, 0x90, 0x8a, 0x86, 0x84, 0x7f, 0x79, 0x76, 0x74, 0x70,
+			0x6d, 0x6c, 0x6b, 0x6b, 0x6c, 0x6c, 0x6e, 0x70, 0x74, 0x77, 0x7a,
+			0x7e, 0x83, 0x86, 0x87, 0x89, 0x8c, 0x8d, 0x8d, 0x8d, 0x8d, 0x8b,
+			0x8a, 0x89, 0x86, 0x85, 0x83, 0x80, 0x7f, 0x7d, 0x7b, 0x7b, 0x7b,
+			0x79, 0x7a, 0x7b, 0x7a, 0x7c, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e,
+			0x7c, 0x75, 0x75, 0x79, 0x72, 0x6f, 0x73, 0x73, 0x70, 0x75, 0x7a,
+			0x7a, 0x7e, 0x84, 0x85, 0x87, 0x8b, 0x8d, 0x8f, 0x90, 0x8f, 0x90,
+			0x90, 0x8c, 0x8b, 0x8c, 0x89, 0x85, 0x86, 0x84, 0x80, 0x7e, 0x7e,
+			0x7c, 0x79, 0x78, 0x77, 0x75, 0x74, 0x75, 0x76, 0x74, 0x74, 0x78,
+			0x78, 0x78, 0x7b, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x83, 0x84, 0x84,
+			0x85, 0x85, 0x85, 0x87, 0x86, 0x86, 0x86, 0x86, 0x84, 0x84, 0x83,
+			0x82, 0x81, 0x80, 0x7e, 0x7f, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d,
+			0x7e, 0x7e, 0x7c, 0x7b, 0x7b, 0x77, 0x70, 0x71, 0x73, 0x6f, 0x6d,
+			0x72, 0x73, 0x74, 0x79, 0x7e, 0x81, 0x86, 0x8a, 0x8b, 0x8e, 0x8f,
+			0x91, 0x92, 0x91, 0x8f, 0x8f, 0x8d, 0x89, 0x88, 0x87, 0x82, 0x80,
+			0x7f, 0x7d, 0x7b, 0x79, 0x78, 0x77, 0x76, 0x75, 0x75, 0x76, 0x76,
+			0x77, 0x78, 0x79, 0x7c, 0x7d, 0x7e, 0x81, 0x82, 0x83, 0x84, 0x85,
+			0x84, 0x84, 0x84, 0x82, 0x81, 0x81, 0x80, 0x80, 0x7f, 0x7e, 0x7e,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x80, 0x80,
+			0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81,
+			0x80, 0x7e, 0x7c, 0x77, 0x74, 0x74, 0x71, 0x6f, 0x70, 0x70, 0x71,
+			0x74, 0x78, 0x7c, 0x7f, 0x84, 0x87, 0x8a, 0x8c, 0x8e, 0x90, 0x90,
+			0x90, 0x8f, 0x8e, 0x8c, 0x8a, 0x89, 0x87, 0x84, 0x82, 0x7f, 0x7e,
+			0x7b, 0x79, 0x78, 0x76, 0x74, 0x73, 0x73, 0x73, 0x75, 0x76, 0x76,
+			0x79, 0x7c, 0x7c, 0x7f, 0x81, 0x83, 0x85, 0x85, 0x85, 0x87, 0x86,
+			0x86, 0x86, 0x84, 0x83, 0x83, 0x81, 0x80, 0x7f, 0x7e, 0x7d, 0x7c,
+			0x7d, 0x7d, 0x7c, 0x7d, 0x7e, 0x7f, 0x7f, 0x80, 0x81, 0x81, 0x82,
+			0x83, 0x84, 0x84, 0x83, 0x82, 0x82, 0x81, 0x7e, 0x7c, 0x77, 0x73,
+			0x74, 0x71, 0x6e, 0x6f, 0x70, 0x71, 0x75, 0x79, 0x7c, 0x80, 0x85,
+			0x88, 0x8b, 0x8c, 0x8e, 0x90, 0x8f, 0x8f, 0x8e, 0x8c, 0x8a, 0x88,
+			0x87, 0x84, 0x82, 0x80, 0x7e, 0x7d, 0x7a, 0x79, 0x79, 0x77, 0x76,
+			0x76, 0x76, 0x76, 0x78, 0x79, 0x79, 0x7b, 0x7e, 0x7f, 0x80, 0x81,
+			0x82, 0x84, 0x84, 0x84, 0x85, 0x84, 0x84, 0x84, 0x81, 0x81, 0x81,
+			0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7f, 0x7f, 0x7f, 0x81, 0x82, 0x82, 0x82, 0x83, 0x84, 0x84, 0x83,
+			0x83, 0x83, 0x82, 0x80, 0x7d, 0x7b, 0x79, 0x75, 0x73, 0x72, 0x70,
+			0x6f, 0x6f, 0x71, 0x72, 0x75, 0x79, 0x7c, 0x81, 0x84, 0x87, 0x8a,
+			0x8d, 0x8f, 0x91, 0x91, 0x91, 0x91, 0x90, 0x8e, 0x8c, 0x8a, 0x87,
+			0x85, 0x82, 0x7f, 0x7c, 0x7a, 0x78, 0x77, 0x75, 0x75, 0x74, 0x74,
+			0x74, 0x76, 0x77, 0x78, 0x7a, 0x7b, 0x7d, 0x80, 0x81, 0x83, 0x85,
+			0x86, 0x86, 0x86, 0x86, 0x85, 0x85, 0x84, 0x83, 0x82, 0x81, 0x80,
+			0x7f, 0x7e, 0x7d, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80,
+			0x81, 0x81, 0x82, 0x82, 0x82, 0x81, 0x81, 0x81, 0x80, 0x7f, 0x7d,
+			0x7b, 0x7b, 0x79, 0x75, 0x74, 0x74, 0x72, 0x71, 0x72, 0x74, 0x75,
+			0x79, 0x7d, 0x80, 0x84, 0x87, 0x8b, 0x8e, 0x8f, 0x91, 0x92, 0x91,
+			0x90, 0x8f, 0x8d, 0x8b, 0x88, 0x86, 0x82, 0x80, 0x7e, 0x7b, 0x7a,
+			0x78, 0x77, 0x76, 0x75, 0x75, 0x76, 0x76, 0x77, 0x78, 0x79, 0x7a,
+			0x7c, 0x7e, 0x7f, 0x81, 0x83, 0x84, 0x85, 0x86, 0x87, 0x86, 0x86,
+			0x85, 0x84, 0x82, 0x81, 0x80, 0x7f, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d,
+			0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x81, 0x82, 0x82, 0x82,
+			0x83, 0x83, 0x82, 0x83, 0x82, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x7c,
+			0x7b, 0x78, 0x73, 0x72, 0x73, 0x70, 0x6e, 0x70, 0x72, 0x73, 0x77,
+			0x7c, 0x7f, 0x83, 0x88, 0x8c, 0x8f, 0x90, 0x92, 0x94, 0x93, 0x92,
+			0x91, 0x8f, 0x8d, 0x8a, 0x88, 0x85, 0x82, 0x7f, 0x7e, 0x7c, 0x79,
+			0x78, 0x77, 0x75, 0x74, 0x74, 0x74, 0x74, 0x75, 0x76, 0x77, 0x78,
+			0x7a, 0x7d, 0x7e, 0x80, 0x82, 0x84, 0x85, 0x85, 0x86, 0x86, 0x86,
+			0x85, 0x85, 0x84, 0x83, 0x83, 0x82, 0x81, 0x81, 0x80, 0x80, 0x7f,
+			0x7f, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7f, 0x7e, 0x7e, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7d, 0x7d, 0x7e, 0x7e, 0x7c, 0x7a, 0x7a, 0x7b, 0x79, 0x79, 0x7a,
+			0x7a, 0x7a, 0x7c, 0x7e, 0x7f, 0x81, 0x83, 0x86, 0x88, 0x89, 0x8b,
+			0x8c, 0x8c, 0x8c, 0x8b, 0x8b, 0x89, 0x87, 0x86, 0x84, 0x82, 0x80,
+			0x7f, 0x7d, 0x7b, 0x7a, 0x79, 0x78, 0x77, 0x77, 0x77, 0x78, 0x79,
+			0x79, 0x7b, 0x7c, 0x7e, 0x80, 0x81, 0x82, 0x83, 0x84, 0x84, 0x84,
+			0x84, 0x84, 0x83, 0x82, 0x81, 0x81, 0x7f, 0x7f, 0x7e, 0x7d, 0x7c,
+			0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x7e, 0x7f,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d,
+			0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x81, 0x81,
+			0x82, 0x83, 0x83, 0x84, 0x84, 0x84, 0x84, 0x84, 0x83, 0x83, 0x83,
+			0x82, 0x81, 0x80, 0x80, 0x7f, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d,
+			0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80,
+		},
+		{ // 2
+			0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x7f, 0x7d, 0x7c, 0x80, 0x81, 0x7e, 0x7c, 0x7c, 0x7f,
+			0x83, 0x85, 0x86, 0x88, 0x88, 0x85, 0x81, 0x7e, 0x7d, 0x7d, 0x7c,
+			0x7a, 0x7a, 0x7b, 0x7c, 0x7e, 0x7f, 0x80, 0x81, 0x81, 0x81, 0x80,
+			0x82, 0x81, 0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x7f, 0x7e, 0x7e, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x81, 0x82, 0x81, 0x80, 0x80, 0x80,
+			0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7f, 0x80, 0x80,
+			0x80, 0x81, 0x81, 0x82, 0x81, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7e,
+			0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x81, 0x82, 0x82, 0x80, 0x7f, 0x81,
+			0x82, 0x81, 0x7f, 0x7e, 0x7f, 0x81, 0x80, 0x7f, 0x7e, 0x7f, 0x80,
+			0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x81, 0x82, 0x81, 0x81, 0x80, 0x80, 0x7f, 0x7e, 0x7c, 0x7b,
+			0x7b, 0x79, 0x78, 0x6d, 0x69, 0x76, 0x76, 0x75, 0x7b, 0x7d, 0x85,
+			0x8c, 0x94, 0x92, 0x8d, 0x95, 0x95, 0x8d, 0x89, 0x81, 0x7a, 0x78,
+			0x76, 0x75, 0x6f, 0x71, 0x75, 0x78, 0x80, 0x82, 0x85, 0x89, 0x8e,
+			0x8e, 0x8a, 0x89, 0x84, 0x81, 0x7e, 0x7a, 0x77, 0x77, 0x7a, 0x7a,
+			0x7d, 0x80, 0x82, 0x86, 0x88, 0x8a, 0x87, 0x86, 0x87, 0x84, 0x82,
+			0x80, 0x7e, 0x7e, 0x7f, 0x7e, 0x57, 0x2e, 0x5c, 0x6e, 0x54, 0x65,
+			0x64, 0x6e, 0x8c, 0xac, 0xb6, 0x94, 0xa1, 0xbf, 0xac, 0x9d, 0x94,
+			0x75, 0x65, 0x71, 0x74, 0x60, 0x4d, 0x66, 0x78, 0x7a, 0x95, 0x94,
+			0x8a, 0x97, 0xa8, 0xa5, 0x8c, 0x84, 0x7c, 0x6c, 0x6b, 0x65, 0x57,
+			0x55, 0x67, 0x75, 0x7b, 0x88, 0x90, 0x93, 0x9e, 0xa3, 0x98, 0x8d,
+			0x89, 0x81, 0x79, 0x77, 0x6f, 0x68, 0x6e, 0x78, 0x79, 0x7e, 0x86,
+			0x8a, 0x8e, 0x96, 0x95, 0x8f, 0x8d, 0x8b, 0x6a, 0x32, 0x44, 0x5e,
+			0x45, 0x56, 0x5e, 0x5a, 0x76, 0x9a, 0xc0, 0xaf, 0xa5, 0xbf, 0xb4,
+			0xa8, 0xa9, 0x8b, 0x64, 0x5b, 0x64, 0x66, 0x53, 0x55, 0x68, 0x65,
+			0x85, 0xa5, 0x9b, 0x9a, 0x9c, 0xa7, 0xa4, 0x94, 0x8d, 0x6c, 0x59,
+			0x61, 0x5c, 0x56, 0x55, 0x61, 0x6c, 0x82, 0x9f, 0x9d, 0x99, 0xa0,
+			0xa0, 0x9b, 0x95, 0x8b, 0x73, 0x6c, 0x71, 0x6d, 0x6c, 0x6d, 0x6f,
+			0x74, 0x82, 0x92, 0x91, 0x93, 0x97, 0x93, 0x93, 0x90, 0x84, 0x53,
+			0x2b, 0x4d, 0x52, 0x49, 0x63, 0x5b, 0x5e, 0x7b, 0xa5, 0xc4, 0xb0,
+			0xb0, 0xba, 0xa4, 0xa4, 0xa9, 0x87, 0x62, 0x56, 0x5a, 0x5f, 0x59,
+			0x67, 0x6c, 0x61, 0x86, 0xa2, 0xa3, 0xa6, 0x9f, 0x9d, 0x93, 0x8f,
+			0x94, 0x71, 0x58, 0x56, 0x4e, 0x55, 0x63, 0x70, 0x6e, 0x7a, 0x97,
+			0x9c, 0xa4, 0xa8, 0x99, 0x8c, 0x8a, 0x8a, 0x7c, 0x72, 0x6e, 0x62,
+			0x67, 0x75, 0x7b, 0x7c, 0x82, 0x8a, 0x8c, 0x97, 0x9f, 0x95, 0x8f,
+			0x86, 0x7b, 0x54, 0x35, 0x4e, 0x47, 0x45, 0x65, 0x62, 0x67, 0x7c,
+			0x9c, 0xb9, 0xb3, 0xbc, 0xbc, 0x9e, 0x98, 0x9d, 0x87, 0x6e, 0x62,
+			0x58, 0x53, 0x54, 0x6b, 0x79, 0x6f, 0x87, 0x97, 0x95, 0xa5, 0xa8,
+			0xa2, 0x91, 0x85, 0x85, 0x71, 0x63, 0x64, 0x54, 0x4b, 0x58, 0x68,
+			0x73, 0x84, 0x97, 0x95, 0x96, 0xa4, 0x9e, 0x94, 0x90, 0x85, 0x75,
+			0x72, 0x76, 0x6e, 0x6d, 0x75, 0x73, 0x77, 0x85, 0x8c, 0x8d, 0x91,
+			0x96, 0x8f, 0x8d, 0x8b, 0x80, 0x62, 0x3b, 0x42, 0x48, 0x42, 0x64,
+			0x6c, 0x66, 0x77, 0x89, 0xa7, 0xb4, 0xbf, 0xc7, 0xa9, 0x95, 0x95,
+			0x86, 0x78, 0x74, 0x66, 0x54, 0x4f, 0x5b, 0x6f, 0x77, 0x8a, 0x9a,
+			0x8d, 0x94, 0xa0, 0x9d, 0x9e, 0x96, 0x8a, 0x74, 0x60, 0x62, 0x5b,
+			0x59, 0x61, 0x60, 0x66, 0x75, 0x8a, 0x97, 0x9c, 0xa3, 0x99, 0x8f,
+			0x90, 0x89, 0x83, 0x7f, 0x77, 0x6e, 0x6b, 0x73, 0x77, 0x7d, 0x86,
+			0x85, 0x87, 0x8c, 0x91, 0x93, 0x93, 0x8d, 0x80, 0x67, 0x42, 0x40,
+			0x48, 0x43, 0x60, 0x6d, 0x68, 0x77, 0x83, 0x9d, 0xb0, 0xbc, 0xc8,
+			0xb1, 0x9a, 0x95, 0x84, 0x78, 0x79, 0x6f, 0x5e, 0x56, 0x58, 0x64,
+			0x70, 0x86, 0x9b, 0x94, 0x96, 0x9d, 0x92, 0x96, 0x98, 0x8f, 0x80,
+			0x6b, 0x62, 0x57, 0x53, 0x62, 0x65, 0x6b, 0x79, 0x80, 0x8a, 0x97,
+			0xa3, 0xa3, 0x99, 0x94, 0x86, 0x7d, 0x80, 0x7b, 0x78, 0x76, 0x72,
+			0x71, 0x78, 0x82, 0x87, 0x8b, 0x8f, 0x8d, 0x8d, 0x8f, 0x8b, 0x84,
+			0x71, 0x4d, 0x41, 0x42, 0x3d, 0x58, 0x6f, 0x73, 0x80, 0x86, 0x92,
+			0xa3, 0xb1, 0xc5, 0xbe, 0xa8, 0x9b, 0x81, 0x6e, 0x70, 0x70, 0x69,
+			0x67, 0x62, 0x60, 0x66, 0x78, 0x91, 0x9a, 0xa0, 0xa4, 0x93, 0x8c,
+			0x8e, 0x86, 0x83, 0x7d, 0x71, 0x61, 0x54, 0x58, 0x5c, 0x69, 0x80,
+			0x89, 0x8f, 0x96, 0x94, 0x96, 0x97, 0x97, 0x8f, 0x85, 0x7f, 0x74,
+			0x72, 0x77, 0x77, 0x7c, 0x80, 0x7f, 0x81, 0x85, 0x8b, 0x8f, 0x92,
+			0x93, 0x8a, 0x7b, 0x5f, 0x44, 0x44, 0x41, 0x4a, 0x69, 0x70, 0x78,
+			0x86, 0x8a, 0x98, 0xa6, 0xb6, 0xbe, 0xb2, 0xa6, 0x92, 0x75, 0x6a,
+			0x6c, 0x67, 0x69, 0x6f, 0x67, 0x67, 0x70, 0x7f, 0x8f, 0x9b, 0xa7,
+			0xa2, 0x93, 0x90, 0x85, 0x7a, 0x7c, 0x77, 0x6d, 0x66, 0x5f, 0x59,
+			0x5d, 0x6c, 0x7d, 0x8b, 0x9b, 0x9c, 0x97, 0x95, 0x8f, 0x8a, 0x8a,
+			0x86, 0x7f, 0x79, 0x76, 0x73, 0x75, 0x7f, 0x83, 0x86, 0x8b, 0x8a,
+			0x8a, 0x8e, 0x8f, 0x8c, 0x82, 0x68, 0x4c, 0x43, 0x3c, 0x41, 0x60,
+			0x71, 0x7c, 0x8d, 0x8f, 0x94, 0x9d, 0xab, 0xb6, 0xb2, 0xae, 0x9f,
+			0x80, 0x6e, 0x66, 0x5e, 0x63, 0x71, 0x72, 0x72, 0x78, 0x7a, 0x83,
+			0x90, 0x9f, 0xa4, 0x9e, 0x9b, 0x8c, 0x79, 0x76, 0x6e, 0x67, 0x6a,
+			0x67, 0x61, 0x63, 0x6a, 0x72, 0x81, 0x95, 0x9e, 0x9f, 0x9e, 0x93,
+			0x88, 0x85, 0x81, 0x7e, 0x80, 0x7f, 0x7b, 0x79, 0x7b, 0x7c, 0x81,
+			0x8a, 0x8e, 0x91, 0x93, 0x8d, 0x84, 0x71, 0x53, 0x49, 0x44, 0x3f,
+			0x57, 0x6b, 0x74, 0x89, 0x90, 0x92, 0x9c, 0xa4, 0xae, 0xb0, 0xab,
+			0xa3, 0x8c, 0x76, 0x6b, 0x60, 0x5e, 0x6a, 0x6f, 0x72, 0x7d, 0x7f,
+			0x83, 0x8d, 0x95, 0x9c, 0x9e, 0x9d, 0x96, 0x84, 0x78, 0x6f, 0x62,
+			0x62, 0x64, 0x63, 0x68, 0x6f, 0x78, 0x83, 0x90, 0x9b, 0x9f, 0x9e,
+			0x97, 0x8b, 0x84, 0x7d, 0x78, 0x7c, 0x7e, 0x7d, 0x7f, 0x7d, 0x7c,
+			0x80, 0x86, 0x8d, 0x92, 0x93, 0x8d, 0x7a, 0x5b, 0x4c, 0x43, 0x3c,
+			0x54, 0x6b, 0x74, 0x8c, 0x95, 0x92, 0x9a, 0x9f, 0xa5, 0xaa, 0xac,
+			0xa6, 0x91, 0x7c, 0x6c, 0x5b, 0x56, 0x62, 0x6a, 0x72, 0x83, 0x86,
+			0x85, 0x8e, 0x91, 0x94, 0x9b, 0x9d, 0x9a, 0x8e, 0x82, 0x72, 0x5f,
+			0x59, 0x5a, 0x5c, 0x68, 0x75, 0x7f, 0x8a, 0x93, 0x99, 0x9c, 0x9d,
+			0x9a, 0x91, 0x89, 0x80, 0x78, 0x76, 0x76, 0x77, 0x7a, 0x7c, 0x7d,
+			0x81, 0x85, 0x8b, 0x8d, 0x8c, 0x7d, 0x63, 0x58, 0x4c, 0x43, 0x58,
+			0x69, 0x75, 0x8d, 0x96, 0x94, 0x99, 0x9d, 0xa0, 0xa4, 0xa8, 0xa3,
+			0x93, 0x82, 0x70, 0x5d, 0x55, 0x5d, 0x62, 0x6c, 0x7e, 0x84, 0x89,
+			0x92, 0x92, 0x93, 0x98, 0x9b, 0x98, 0x91, 0x86, 0x75, 0x64, 0x5b,
+			0x57, 0x59, 0x67, 0x77, 0x84, 0x90, 0x97, 0x98, 0x9a, 0x98, 0x94,
+			0x90, 0x8c, 0x85, 0x7f, 0x7a, 0x75, 0x71, 0x73, 0x74, 0x78, 0x81,
+			0x88, 0x8a, 0x83, 0x6d, 0x5e, 0x55, 0x4b, 0x5b, 0x6e, 0x77, 0x8e,
+			0x96, 0x90, 0x94, 0x95, 0x95, 0x9c, 0xa1, 0xa0, 0x97, 0x88, 0x79,
+			0x69, 0x5e, 0x62, 0x65, 0x6b, 0x7c, 0x82, 0x83, 0x8b, 0x8a, 0x89,
+			0x8f, 0x92, 0x93, 0x91, 0x8a, 0x7e, 0x6e, 0x64, 0x5f, 0x5f, 0x6b,
+			0x79, 0x84, 0x91, 0x93, 0x91, 0x92, 0x8f, 0x8e, 0x8e, 0x8c, 0x89,
+			0x85, 0x80, 0x7b, 0x77, 0x76, 0x75, 0x79, 0x7e, 0x7f, 0x77, 0x61,
+			0x58, 0x52, 0x49, 0x60, 0x77, 0x81, 0x9c, 0xa4, 0x99, 0x9a, 0x97,
+			0x91, 0x94, 0x99, 0x95, 0x8a, 0x7d, 0x6e, 0x60, 0x5b, 0x67, 0x70,
+			0x7a, 0x8e, 0x91, 0x8e, 0x93, 0x8b, 0x85, 0x89, 0x88, 0x86, 0x81,
+			0x7a, 0x6d, 0x61, 0x60, 0x61, 0x6a, 0x7e, 0x8c, 0x96, 0x9e, 0x9a,
+			0x92, 0x8e, 0x88, 0x86, 0x85, 0x84, 0x82, 0x7d, 0x7a, 0x77, 0x76,
+			0x7b, 0x80, 0x84, 0x85, 0x7a, 0x5e, 0x52, 0x4c, 0x42, 0x5e, 0x79,
+			0x83, 0x9d, 0xa5, 0x99, 0x9a, 0x99, 0x97, 0x98, 0x9a, 0x94, 0x82,
+			0x6f, 0x62, 0x55, 0x55, 0x6b, 0x7a, 0x84, 0x98, 0x96, 0x8e, 0x90,
+			0x8b, 0x88, 0x8c, 0x8c, 0x86, 0x7a, 0x6e, 0x60, 0x57, 0x5e, 0x69,
+			0x76, 0x8a, 0x93, 0x94, 0x96, 0x90, 0x8b, 0x8c, 0x8b, 0x8a, 0x86,
+			0x84, 0x7f, 0x79, 0x7a, 0x7b, 0x7b, 0x82, 0x84, 0x82, 0x7b, 0x5d,
+			0x49, 0x4a, 0x41, 0x59, 0x81, 0x89, 0x9d, 0xa9, 0x9a, 0x98, 0x9b,
+			0x99, 0x9b, 0x97, 0x8b, 0x76, 0x5e, 0x55, 0x55, 0x5c, 0x78, 0x8f,
+			0x93, 0x9e, 0x9b, 0x8c, 0x8e, 0x8c, 0x86, 0x86, 0x7e, 0x71, 0x63,
+			0x5b, 0x5a, 0x5d, 0x71, 0x85, 0x8e, 0x9c, 0x9e, 0x97, 0x94, 0x8e,
+			0x88, 0x84, 0x7d, 0x78, 0x73, 0x75, 0x7b, 0x7c, 0x83, 0x87, 0x86,
+			0x8c, 0x8c, 0x87, 0x7b, 0x56, 0x45, 0x44, 0x38, 0x5a, 0x82, 0x87,
+			0xa0, 0xa9, 0x99, 0x9d, 0xa2, 0x9f, 0x9c, 0x91, 0x7e, 0x63, 0x50,
+			0x54, 0x5f, 0x6e, 0x90, 0x9c, 0x94, 0x9b, 0x93, 0x88, 0x91, 0x8e,
+			0x82, 0x76, 0x68, 0x5b, 0x58, 0x66, 0x74, 0x7e, 0x8e, 0x8d, 0x87,
+			0x8a, 0x88, 0x87, 0x8b, 0x88, 0x81, 0x7c, 0x7c, 0x7d, 0x83, 0x90,
+			0x92, 0x8d, 0x8a, 0x82, 0x7c, 0x80, 0x7e, 0x79, 0x5f, 0x37, 0x37,
+			0x3d, 0x4b, 0x8c, 0xa9, 0xa8, 0xb7, 0xa4, 0x90, 0x99, 0x9a, 0x93,
+			0x81, 0x68, 0x4f, 0x3d, 0x4c, 0x73, 0x8e, 0xa8, 0xbb, 0xa5, 0x95,
+			0x97, 0x8a, 0x89, 0x89, 0x70, 0x55, 0x44, 0x4a, 0x5e, 0x7e, 0xa0,
+			0xa1, 0x96, 0x8d, 0x7c, 0x7d, 0x89, 0x87, 0x80, 0x75, 0x6b, 0x6a,
+			0x78, 0x8b, 0x92, 0x92, 0x8e, 0x84, 0x86, 0x8d, 0x8e, 0x8f, 0x87,
+			0x78, 0x6b, 0x61, 0x47, 0x3c, 0x57, 0x5e, 0x73, 0x9f, 0x9c, 0x9a,
+			0xa3, 0x97, 0x92, 0x90, 0x89, 0x74, 0x5f, 0x5e, 0x60, 0x69, 0x88,
+			0x9e, 0x9b, 0xa1, 0x9f, 0x89, 0x87, 0x86, 0x75, 0x6c, 0x64, 0x5e,
+			0x60, 0x77, 0x92, 0x99, 0x9f, 0x97, 0x7e, 0x77, 0x75, 0x70, 0x72,
+			0x74, 0x71, 0x72, 0x80, 0x8c, 0x90, 0x94, 0x8c, 0x80, 0x7f, 0x83,
+			0x8a, 0x90, 0x8a, 0x7d, 0x75, 0x75, 0x7b, 0x80, 0x82, 0x65, 0x36,
+			0x41, 0x59, 0x6b, 0xa8, 0xb7, 0x97, 0x94, 0x8d, 0x87, 0x92, 0x92,
+			0x7b, 0x55, 0x4c, 0x5d, 0x70, 0x95, 0xb2, 0xa0, 0x8f, 0x92, 0x85,
+			0x84, 0x8d, 0x79, 0x62, 0x5c, 0x63, 0x71, 0x8a, 0x9f, 0x97, 0x8c,
+			0x88, 0x79, 0x73, 0x76, 0x6f, 0x68, 0x70, 0x7e, 0x88, 0x93, 0x97,
+			0x88, 0x7e, 0x7d, 0x79, 0x7b, 0x81, 0x7f, 0x7f, 0x88, 0x8d, 0x89,
+			0x87, 0x86, 0x82, 0x83, 0x80, 0x77, 0x58, 0x32, 0x42, 0x65, 0x79,
+			0xab, 0xb2, 0x90, 0x92, 0x90, 0x88, 0x8a, 0x7c, 0x64, 0x52, 0x61,
+			0x83, 0x96, 0xa5, 0xa7, 0x8b, 0x80, 0x89, 0x7f, 0x76, 0x71, 0x60,
+			0x60, 0x77, 0x91, 0x9d, 0x98, 0x94, 0x84, 0x79, 0x81, 0x77, 0x65,
+			0x61, 0x63, 0x71, 0x89, 0x9b, 0x96, 0x8a, 0x87, 0x7f, 0x7f, 0x84,
+			0x7a, 0x72, 0x77, 0x7e, 0x86, 0x8c, 0x8a, 0x83, 0x85, 0x8b, 0x8b,
+			0x87, 0x80, 0x73, 0x6b, 0x6e, 0x60, 0x43, 0x57, 0x77, 0x7f, 0xa6,
+			0xac, 0x88, 0x87, 0x84, 0x79, 0x79, 0x74, 0x6b, 0x66, 0x7d, 0x9c,
+			0xa1, 0xa1, 0x9b, 0x7f, 0x75, 0x7e, 0x73, 0x6c, 0x70, 0x70, 0x7b,
+			0x90, 0x9a, 0x94, 0x83, 0x7a, 0x77, 0x75, 0x78, 0x78, 0x71, 0x77,
+			0x83, 0x87, 0x8a, 0x86, 0x79, 0x74, 0x7a, 0x80, 0x80, 0x82, 0x80,
+			0x7f, 0x87, 0x8a, 0x86, 0x82, 0x7c, 0x7c, 0x80, 0x85, 0x85, 0x81,
+			0x7f, 0x7f, 0x82, 0x88, 0x87, 0x80, 0x79, 0x6b, 0x4c, 0x41, 0x65,
+			0x7b, 0x8d, 0xa8, 0x92, 0x83, 0x8f, 0x87, 0x81, 0x7a, 0x6f, 0x6d,
+			0x7b, 0x94, 0x9b, 0x91, 0x8c, 0x80, 0x76, 0x7e, 0x7a, 0x6e, 0x73,
+			0x7c, 0x87, 0x96, 0x96, 0x89, 0x7b, 0x74, 0x76, 0x76, 0x75, 0x74,
+			0x76, 0x7e, 0x8a, 0x8c, 0x84, 0x7d, 0x78, 0x7b, 0x83, 0x86, 0x82,
+			0x7f, 0x7f, 0x7d, 0x7d, 0x7c, 0x78, 0x7a, 0x81, 0x88, 0x8c, 0x8a,
+			0x84, 0x7c, 0x79, 0x7c, 0x7e, 0x83, 0x87, 0x88, 0x8a, 0x88, 0x82,
+			0x7b, 0x72, 0x6e, 0x66, 0x4e, 0x4c, 0x74, 0x8b, 0x9b, 0xaa, 0x8c,
+			0x78, 0x7f, 0x77, 0x75, 0x74, 0x70, 0x79, 0x8c, 0xa0, 0x9e, 0x8d,
+			0x82, 0x77, 0x75, 0x7d, 0x79, 0x73, 0x7c, 0x88, 0x92, 0x98, 0x8a,
+			0x77, 0x6d, 0x6f, 0x7a, 0x7d, 0x7e, 0x81, 0x81, 0x88, 0x8a, 0x7d,
+			0x77, 0x74, 0x74, 0x7f, 0x83, 0x82, 0x80, 0x7b, 0x79, 0x76, 0x77,
+			0x7c, 0x80, 0x89, 0x8c, 0x8b, 0x8a, 0x81, 0x7c, 0x7b, 0x7c, 0x81,
+			0x83, 0x84, 0x84, 0x83, 0x82, 0x80, 0x7f, 0x80, 0x81, 0x84, 0x84,
+			0x81, 0x7a, 0x70, 0x68, 0x63, 0x5e, 0x5a, 0x68, 0x83, 0x8f, 0x98,
+			0x99, 0x87, 0x82, 0x82, 0x79, 0x76, 0x77, 0x7f, 0x8a, 0x94, 0x98,
+			0x8c, 0x81, 0x7d, 0x79, 0x79, 0x7c, 0x7a, 0x7d, 0x88, 0x8d, 0x8b,
+			0x84, 0x77, 0x6f, 0x70, 0x77, 0x7e, 0x80, 0x83, 0x85, 0x85, 0x86,
+			0x81, 0x7a, 0x78, 0x75, 0x78, 0x82, 0x86, 0x84, 0x83, 0x7d, 0x79,
+			0x7a, 0x7a, 0x7b, 0x81, 0x88, 0x89, 0x85, 0x7f, 0x77, 0x75, 0x79,
+			0x7d, 0x83, 0x87, 0x87, 0x85, 0x80, 0x7d, 0x7b, 0x7d, 0x80, 0x81,
+			0x83, 0x85, 0x84, 0x85, 0x84, 0x81, 0x7f, 0x7d, 0x78, 0x71, 0x6a,
+			0x64, 0x5f, 0x61, 0x7b, 0x8d, 0x8e, 0x93, 0x88, 0x7a, 0x80, 0x7d,
+			0x76, 0x78, 0x7e, 0x88, 0x91, 0x97, 0x91, 0x82, 0x7d, 0x7d, 0x7b,
+			0x7f, 0x80, 0x80, 0x87, 0x8d, 0x89, 0x83, 0x7b, 0x74, 0x75, 0x79,
+			0x7d, 0x7f, 0x7f, 0x82, 0x81, 0x7f, 0x7b, 0x74, 0x73, 0x79, 0x80,
+			0x86, 0x87, 0x82, 0x7d, 0x7b, 0x78, 0x7a, 0x7d, 0x7d, 0x7e, 0x82,
+			0x82, 0x81, 0x82, 0x82, 0x7f, 0x7f, 0x81, 0x84, 0x87, 0x87, 0x84,
+			0x7f, 0x7b, 0x79, 0x7c, 0x7e, 0x80, 0x82, 0x81, 0x80, 0x80, 0x7f,
+			0x7f, 0x80, 0x81, 0x81, 0x83, 0x84, 0x82, 0x7e, 0x7b, 0x7a, 0x7a,
+			0x77, 0x6d, 0x68, 0x68, 0x64, 0x71, 0x89, 0x8d, 0x8e, 0x8e, 0x81,
+			0x7d, 0x80, 0x7b, 0x79, 0x7f, 0x88, 0x8e, 0x91, 0x8f, 0x84, 0x7f,
+			0x7f, 0x7c, 0x7e, 0x7e, 0x7e, 0x82, 0x85, 0x85, 0x82, 0x7d, 0x7b,
+			0x7c, 0x7e, 0x81, 0x82, 0x80, 0x7e, 0x7e, 0x7e, 0x7b, 0x78, 0x79,
+			0x7b, 0x81, 0x85, 0x83, 0x7e, 0x7b, 0x78, 0x76, 0x7b, 0x7d, 0x7d,
+			0x80, 0x7f, 0x80, 0x84, 0x83, 0x84, 0x83, 0x83, 0x83, 0x80, 0x80,
+			0x7e, 0x7f, 0x82, 0x81, 0x80, 0x81, 0x7f, 0x80, 0x81, 0x80, 0x7f,
+			0x7f, 0x7f, 0x80, 0x7f, 0x7e, 0x7c, 0x7b, 0x7c, 0x7d, 0x7f, 0x80,
+			0x82, 0x81, 0x7f, 0x82, 0x81, 0x7f, 0x7f, 0x7e, 0x77, 0x71, 0x69,
+			0x55, 0x5b, 0x7e, 0x8b, 0x91, 0x95, 0x84, 0x81, 0x84, 0x7d, 0x7a,
+			0x7f, 0x89, 0x8d, 0x90, 0x8e, 0x83, 0x80, 0x82, 0x7e, 0x81, 0x85,
+			0x84, 0x88, 0x87, 0x82, 0x7d, 0x78, 0x76, 0x77, 0x7a, 0x7f, 0x80,
+			0x81, 0x7f, 0x7d, 0x7d, 0x7a, 0x76, 0x79, 0x84, 0x8b, 0x88, 0x80,
+			0x78, 0x76, 0x78, 0x7a, 0x7b, 0x7e, 0x86, 0x89, 0x87, 0x81, 0x7c,
+			0x7a, 0x7b, 0x7d, 0x81, 0x83, 0x84, 0x81, 0x7d, 0x7c, 0x7b, 0x7d,
+			0x7f, 0x81, 0x82, 0x82, 0x80, 0x7d, 0x7b, 0x7d, 0x81, 0x83, 0x83,
+			0x81, 0x7e, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x81, 0x81, 0x7f,
+			0x7d, 0x7c, 0x7d, 0x7f, 0x7e, 0x7e, 0x81, 0x82, 0x82, 0x80, 0x74,
+			0x68, 0x6a, 0x75, 0x7d, 0x84, 0x88, 0x8a, 0x8a, 0x83, 0x7b, 0x7b,
+			0x81, 0x89, 0x8c, 0x8a, 0x88, 0x87, 0x80, 0x7a, 0x79, 0x7c, 0x82,
+			0x88, 0x87, 0x83, 0x82, 0x7f, 0x7b, 0x7b, 0x7d, 0x7f, 0x83, 0x82,
+			0x7e, 0x7b, 0x7a, 0x79, 0x7a, 0x7a, 0x7d, 0x84, 0x88, 0x85, 0x82,
+			0x80, 0x7c, 0x7a, 0x79, 0x79, 0x7d, 0x7f, 0x7e, 0x7c, 0x7d, 0x7e,
+			0x80, 0x82, 0x83, 0x83, 0x84, 0x82, 0x7f, 0x7d, 0x7d, 0x7d, 0x7e,
+			0x7f, 0x7f, 0x80, 0x7f, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x82, 0x82,
+			0x81, 0x7f, 0x7e, 0x7c, 0x7c, 0x7e, 0x80, 0x80, 0x7f, 0x7e, 0x7e,
+			0x7f, 0x7f, 0x7e, 0x7f, 0x80, 0x80, 0x7e, 0x7e, 0x7f, 0x7e, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7e, 0x7f, 0x80, 0x7f, 0x7e, 0x7f,
+		},
+		{ // 3
+			0x7f, 0x80, 0x81, 0x7e, 0x7a, 0x7c, 0x84, 0x85, 0x7d, 0x7c, 0x81,
+			0x82, 0x80, 0x7f, 0x81, 0x81, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x80,
+			0x7d, 0x7c, 0x80, 0x81, 0x80, 0x7f, 0x7d, 0x82, 0x7c, 0x7d, 0x80,
+			0x7b, 0x7e, 0x81, 0x84, 0x83, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x81, 0x82, 0x80, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7e, 0x7d, 0x80,
+			0x7f, 0x7e, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x80,
+			0x80, 0x7f, 0x7f, 0x80, 0x79, 0x7a, 0x7f, 0x7e, 0x82, 0x82, 0x80,
+			0x83, 0x84, 0x83, 0x85, 0x86, 0x82, 0x7f, 0x80, 0x7f, 0x7b, 0x7c,
+			0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x80, 0x81, 0x7e, 0x7f, 0x82, 0x82,
+			0x80, 0x7f, 0x7f, 0x7f, 0x81, 0x7f, 0x7e, 0x7f, 0x80, 0x80, 0x7f,
+			0x7f, 0x80, 0x81, 0x81, 0x80, 0x80, 0x82, 0x82, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x81, 0x80,
+			0x80, 0x80, 0x80, 0x81, 0x82, 0x81, 0x80, 0x82, 0x82, 0x80, 0x7f,
+			0x7e, 0x7e, 0x7d, 0x7b, 0x79, 0x73, 0x73, 0x78, 0x74, 0x73, 0x78,
+			0x7a, 0x7f, 0x83, 0x87, 0x88, 0x8c, 0x92, 0x8f, 0x8d, 0x8f, 0x8c,
+			0x87, 0x82, 0x7e, 0x7a, 0x77, 0x73, 0x72, 0x72, 0x76, 0x7b, 0x7e,
+			0x82, 0x87, 0x8b, 0x8d, 0x8f, 0x8e, 0x8c, 0x8b, 0x88, 0x83, 0x80,
+			0x7f, 0x7d, 0x7b, 0x7b, 0x7b, 0x7f, 0x82, 0x80, 0x83, 0x87, 0x8a,
+			0x83, 0x82, 0x63, 0x45, 0x76, 0x68, 0x3c, 0x56, 0x5f, 0x6c, 0x74,
+			0x80, 0x8a, 0x91, 0xc1, 0xb6, 0x95, 0xb7, 0xbc, 0xa0, 0x92, 0x85,
+			0x80, 0x72, 0x70, 0x61, 0x49, 0x6f, 0x74, 0x5e, 0x71, 0x84, 0x90,
+			0x8f, 0x99, 0x9b, 0x92, 0xa3, 0x8f, 0x75, 0x7f, 0x7a, 0x64, 0x5c,
+			0x65, 0x62, 0x6a, 0x78, 0x79, 0x8a, 0x9c, 0x9c, 0x97, 0xa3, 0xa4,
+			0x96, 0x92, 0x8b, 0x84, 0x7e, 0x77, 0x6f, 0x73, 0x7c, 0x7b, 0x78,
+			0x79, 0x7e, 0x4c, 0x40, 0x84, 0x58, 0x38, 0x66, 0x68, 0x75, 0x7c,
+			0x8c, 0x93, 0xa1, 0xcc, 0xa5, 0x95, 0xc2, 0xaa, 0x88, 0x86, 0x7f,
+			0x77, 0x64, 0x65, 0x5b, 0x5a, 0x81, 0x6f, 0x6a, 0x90, 0x96, 0x96,
+			0x93, 0xa1, 0x9e, 0x8f, 0x94, 0x77, 0x6e, 0x76, 0x63, 0x50, 0x58,
+			0x6a, 0x65, 0x70, 0x83, 0x8f, 0x9e, 0xa1, 0x9f, 0xa1, 0xa8, 0x99,
+			0x89, 0x8b, 0x83, 0x78, 0x70, 0x71, 0x70, 0x77, 0x7d, 0x7b, 0x87,
+			0x89, 0x81, 0x48, 0x51, 0x93, 0x4a, 0x35, 0x69, 0x66, 0x70, 0x6c,
+			0x83, 0x96, 0xa4, 0xbd, 0x97, 0xa7, 0xcf, 0x9e, 0x87, 0x91, 0x87,
+			0x7a, 0x5f, 0x62, 0x61, 0x62, 0x76, 0x5e, 0x73, 0x98, 0x8a, 0x8d,
+			0x97, 0xaa, 0x9f, 0x8b, 0x94, 0x82, 0x7b, 0x6f, 0x59, 0x5e, 0x62,
+			0x59, 0x5a, 0x77, 0x83, 0x86, 0x97, 0x9e, 0xa5, 0xa3, 0x9f, 0x96,
+			0x95, 0x8f, 0x7c, 0x79, 0x77, 0x71, 0x6e, 0x72, 0x7a, 0x7f, 0x86,
+			0x87, 0x8b, 0x54, 0x4b, 0x98, 0x57, 0x30, 0x6a, 0x69, 0x69, 0x62,
+			0x80, 0x98, 0x94, 0xb3, 0x9e, 0xa5, 0xcc, 0xa0, 0x8d, 0x99, 0x8e,
+			0x7f, 0x60, 0x68, 0x6b, 0x59, 0x6b, 0x61, 0x70, 0x8c, 0x7d, 0x8a,
+			0x97, 0xa6, 0x9d, 0x8b, 0x9f, 0x8c, 0x78, 0x76, 0x6a, 0x64, 0x5f,
+			0x5e, 0x61, 0x75, 0x7e, 0x7f, 0x91, 0x9b, 0x9c, 0x9b, 0x9f, 0x9a,
+			0x92, 0x8f, 0x83, 0x7e, 0x79, 0x74, 0x74, 0x76, 0x7b, 0x7d, 0x80,
+			0x84, 0x4e, 0x48, 0x98, 0x58, 0x2f, 0x73, 0x71, 0x69, 0x61, 0x87,
+			0x9e, 0x8b, 0xac, 0x9f, 0xa5, 0xc2, 0x98, 0x8e, 0x9d, 0x8e, 0x7b,
+			0x64, 0x71, 0x72, 0x56, 0x68, 0x69, 0x73, 0x82, 0x75, 0x8c, 0x95,
+			0x9b, 0x95, 0x8d, 0xa0, 0x8a, 0x7a, 0x79, 0x75, 0x69, 0x5d, 0x69,
+			0x6b, 0x72, 0x77, 0x82, 0x90, 0x90, 0x95, 0x97, 0x9f, 0x97, 0x8e,
+			0x90, 0x88, 0x80, 0x77, 0x79, 0x79, 0x74, 0x7a, 0x7b, 0x81, 0x54,
+			0x40, 0x93, 0x64, 0x29, 0x74, 0x78, 0x66, 0x5f, 0x81, 0xa3, 0x83,
+			0x9f, 0xa5, 0xa1, 0xbe, 0x98, 0x92, 0xa5, 0x92, 0x80, 0x6b, 0x78,
+			0x7a, 0x53, 0x65, 0x6e, 0x6b, 0x75, 0x6c, 0x84, 0x8b, 0x8b, 0x91,
+			0x8e, 0x9c, 0x8b, 0x83, 0x89, 0x81, 0x71, 0x6e, 0x7b, 0x6e, 0x6e,
+			0x79, 0x7f, 0x82, 0x82, 0x8e, 0x8e, 0x91, 0x8e, 0x8d, 0x90, 0x87,
+			0x83, 0x80, 0x81, 0x7a, 0x7d, 0x7c, 0x7e, 0x69, 0x3b, 0x85, 0x77,
+			0x27, 0x6b, 0x76, 0x68, 0x5f, 0x71, 0xa0, 0x7f, 0x91, 0xa4, 0x9b,
+			0xb8, 0x9e, 0x94, 0xae, 0x9a, 0x8a, 0x7b, 0x7f, 0x87, 0x59, 0x65,
+			0x75, 0x63, 0x6a, 0x60, 0x7a, 0x7d, 0x74, 0x87, 0x85, 0x92, 0x88,
+			0x8a, 0x93, 0x89, 0x86, 0x80, 0x8a, 0x7d, 0x7a, 0x80, 0x7d, 0x80,
+			0x7a, 0x84, 0x84, 0x84, 0x84, 0x83, 0x8a, 0x83, 0x82, 0x84, 0x84,
+			0x82, 0x7d, 0x85, 0x66, 0x4e, 0x88, 0x75, 0x37, 0x6c, 0x7d, 0x63,
+			0x5a, 0x75, 0x94, 0x71, 0x84, 0x99, 0x8e, 0xa2, 0x99, 0x95, 0x9f,
+			0xa0, 0x9a, 0x85, 0x8b, 0x95, 0x7a, 0x73, 0x7e, 0x76, 0x72, 0x6b,
+			0x70, 0x76, 0x73, 0x78, 0x75, 0x7c, 0x82, 0x7e, 0x81, 0x84, 0x86,
+			0x83, 0x81, 0x81, 0x82, 0x82, 0x7f, 0x81, 0x82, 0x82, 0x82, 0x81,
+			0x83, 0x83, 0x81, 0x80, 0x80, 0x7f, 0x7e, 0x7b, 0x7b, 0x7d, 0x7c,
+			0x7c, 0x7e, 0x7d, 0x7a, 0x7e, 0x82, 0x7e, 0x7d, 0x80, 0x7f, 0x7e,
+			0x7c, 0x7c, 0x7b, 0x7a, 0x7c, 0x7b, 0x7c, 0x7c, 0x7d, 0x80, 0x80,
+			0x82, 0x83, 0x83, 0x84, 0x85, 0x84, 0x83, 0x84, 0x86, 0x84, 0x83,
+			0x84, 0x86, 0x85, 0x84, 0x84, 0x82, 0x82, 0x81, 0x7d, 0x7c, 0x7c,
+			0x7b, 0x79, 0x78, 0x7a, 0x7a, 0x7a, 0x7d, 0x7e, 0x7f, 0x82, 0x84,
+			0x83, 0x84, 0x85, 0x83, 0x82, 0x82, 0x80, 0x7e, 0x7e, 0x80, 0x79,
+			0x7a, 0x81, 0x79, 0x78, 0x7c, 0x7d, 0x7e, 0x7a, 0x7e, 0x7e, 0x7b,
+			0x7f, 0x7e, 0x7c, 0x7d, 0x7e, 0x82, 0x80, 0x80, 0x86, 0x82, 0x84,
+			0x86, 0x85, 0x86, 0x83, 0x86, 0x84, 0x7f, 0x82, 0x81, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x81, 0x80, 0x7e, 0x7f, 0x7f, 0x7e, 0x7d, 0x7d,
+			0x7c, 0x7b, 0x7c, 0x7d, 0x7c, 0x7d, 0x80, 0x7e, 0x81, 0x82, 0x83,
+			0x82, 0x82, 0x84, 0x82, 0x82, 0x83, 0x7d, 0x78, 0x80, 0x7f, 0x76,
+			0x77, 0x7a, 0x7d, 0x77, 0x76, 0x7d, 0x7c, 0x7e, 0x7e, 0x7e, 0x81,
+			0x81, 0x84, 0x82, 0x81, 0x88, 0x86, 0x81, 0x84, 0x86, 0x85, 0x82,
+			0x83, 0x86, 0x80, 0x7f, 0x81, 0x7f, 0x7c, 0x7c, 0x80, 0x7c, 0x7b,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x7f, 0x7f, 0x80,
+			0x80, 0x7d, 0x80, 0x82, 0x7e, 0x7f, 0x81, 0x80, 0x80, 0x82, 0x82,
+			0x80, 0x81, 0x82, 0x81, 0x75, 0x7c, 0x86, 0x74, 0x72, 0x7c, 0x7d,
+			0x76, 0x6f, 0x7f, 0x7e, 0x75, 0x7f, 0x81, 0x81, 0x82, 0x85, 0x87,
+			0x83, 0x8a, 0x8c, 0x80, 0x86, 0x8a, 0x82, 0x7f, 0x7f, 0x87, 0x7f,
+			0x79, 0x82, 0x7e, 0x7e, 0x7a, 0x7c, 0x7e, 0x79, 0x7b, 0x7b, 0x7e,
+			0x7d, 0x7e, 0x7d, 0x7d, 0x85, 0x7c, 0x81, 0x87, 0x84, 0x83, 0x84,
+			0x88, 0x7f, 0x80, 0x82, 0x7f, 0x81, 0x7f, 0x83, 0x81, 0x82, 0x84,
+			0x81, 0x6d, 0x7d, 0x8f, 0x5d, 0x6c, 0x88, 0x6e, 0x66, 0x6e, 0x86,
+			0x72, 0x6c, 0x8c, 0x80, 0x81, 0x8a, 0x88, 0x90, 0x8f, 0x8b, 0x8d,
+			0x8f, 0x91, 0x83, 0x85, 0x93, 0x7e, 0x7c, 0x84, 0x7f, 0x78, 0x71,
+			0x7d, 0x75, 0x6d, 0x73, 0x76, 0x75, 0x6e, 0x7b, 0x7f, 0x7b, 0x7f,
+			0x87, 0x8e, 0x85, 0x8c, 0x93, 0x8e, 0x8a, 0x8b, 0x8f, 0x82, 0x80,
+			0x85, 0x7e, 0x7b, 0x7b, 0x7f, 0x7b, 0x7d, 0x6e, 0x67, 0x8d, 0x64,
+			0x55, 0x8a, 0x69, 0x5e, 0x72, 0x76, 0x79, 0x6d, 0x85, 0x87, 0x86,
+			0x92, 0x88, 0x9d, 0x9c, 0x87, 0x9c, 0x9c, 0x8b, 0x8b, 0x8c, 0x8f,
+			0x7e, 0x7b, 0x85, 0x77, 0x75, 0x6f, 0x76, 0x77, 0x66, 0x71, 0x74,
+			0x71, 0x6d, 0x77, 0x7e, 0x74, 0x80, 0x87, 0x89, 0x88, 0x8e, 0x98,
+			0x8f, 0x92, 0x95, 0x93, 0x8a, 0x86, 0x8a, 0x80, 0x7b, 0x7b, 0x7c,
+			0x76, 0x78, 0x6c, 0x61, 0x89, 0x5f, 0x53, 0x8d, 0x5b, 0x63, 0x77,
+			0x67, 0x7c, 0x6d, 0x7d, 0x89, 0x83, 0x8d, 0x8c, 0x9f, 0x96, 0x8f,
+			0xa7, 0x99, 0x92, 0x99, 0x8e, 0x92, 0x84, 0x7c, 0x88, 0x76, 0x71,
+			0x70, 0x73, 0x6f, 0x62, 0x75, 0x6e, 0x69, 0x75, 0x75, 0x79, 0x78,
+			0x81, 0x85, 0x85, 0x89, 0x8e, 0x94, 0x8c, 0x93, 0x95, 0x8e, 0x90,
+			0x8d, 0x8c, 0x83, 0x83, 0x81, 0x7a, 0x7c, 0x77, 0x77, 0x62, 0x68,
+			0x7f, 0x50, 0x67, 0x79, 0x56, 0x76, 0x67, 0x70, 0x83, 0x6a, 0x89,
+			0x89, 0x84, 0x90, 0x8f, 0x9b, 0x90, 0x94, 0xa0, 0x94, 0x95, 0x93,
+			0x92, 0x92, 0x83, 0x88, 0x86, 0x78, 0x78, 0x73, 0x75, 0x6b, 0x68,
+			0x6e, 0x6c, 0x6b, 0x6a, 0x78, 0x74, 0x76, 0x84, 0x82, 0x88, 0x8a,
+			0x92, 0x8f, 0x8d, 0x96, 0x91, 0x8e, 0x8c, 0x8f, 0x89, 0x83, 0x86,
+			0x82, 0x7e, 0x7d, 0x7e, 0x7a, 0x71, 0x64, 0x7a, 0x6b, 0x53, 0x7a,
+			0x61, 0x63, 0x71, 0x60, 0x83, 0x6c, 0x75, 0x90, 0x7d, 0x8d, 0x8f,
+			0x95, 0x9a, 0x8f, 0x9d, 0x9c, 0x92, 0x95, 0x93, 0x93, 0x8b, 0x83,
+			0x8b, 0x7f, 0x78, 0x78, 0x76, 0x74, 0x68, 0x6f, 0x6f, 0x68, 0x6b,
+			0x6e, 0x73, 0x70, 0x78, 0x82, 0x81, 0x84, 0x8d, 0x91, 0x8e, 0x91,
+			0x95, 0x91, 0x8f, 0x8f, 0x8e, 0x88, 0x86, 0x86, 0x80, 0x7e, 0x80,
+			0x7d, 0x7b, 0x7b, 0x73, 0x67, 0x7e, 0x6a, 0x59, 0x7f, 0x5e, 0x69,
+			0x70, 0x60, 0x85, 0x66, 0x79, 0x8f, 0x76, 0x92, 0x8a, 0x94, 0x9a,
+			0x8b, 0x9f, 0x99, 0x91, 0x98, 0x8f, 0x91, 0x8b, 0x84, 0x8a, 0x7e,
+			0x7b, 0x7c, 0x76, 0x75, 0x6e, 0x73, 0x71, 0x6b, 0x71, 0x70, 0x74,
+			0x71, 0x76, 0x7e, 0x79, 0x80, 0x86, 0x88, 0x88, 0x8d, 0x91, 0x8c,
+			0x8e, 0x91, 0x8e, 0x8a, 0x8b, 0x8b, 0x84, 0x82, 0x83, 0x7f, 0x7b,
+			0x7d, 0x7e, 0x7a, 0x78, 0x74, 0x6f, 0x7b, 0x69, 0x67, 0x7a, 0x60,
+			0x70, 0x6e, 0x69, 0x7f, 0x68, 0x82, 0x84, 0x79, 0x91, 0x86, 0x94,
+			0x92, 0x8e, 0x9e, 0x92, 0x93, 0x96, 0x8f, 0x92, 0x8a, 0x86, 0x8a,
+			0x7c, 0x7d, 0x7c, 0x75, 0x75, 0x70, 0x74, 0x70, 0x6f, 0x75, 0x74,
+			0x75, 0x77, 0x79, 0x7b, 0x7e, 0x7d, 0x82, 0x85, 0x82, 0x89, 0x87,
+			0x8a, 0x8a, 0x89, 0x8b, 0x87, 0x8a, 0x87, 0x86, 0x85, 0x84, 0x83,
+			0x7f, 0x82, 0x80, 0x7d, 0x81, 0x7e, 0x7d, 0x7a, 0x70, 0x7c, 0x73,
+			0x65, 0x7b, 0x67, 0x6d, 0x71, 0x66, 0x7f, 0x69, 0x7a, 0x85, 0x77,
+			0x8c, 0x83, 0x8e, 0x92, 0x89, 0x98, 0x93, 0x90, 0x94, 0x8e, 0x91,
+			0x8b, 0x85, 0x8d, 0x81, 0x7e, 0x80, 0x7a, 0x7c, 0x73, 0x77, 0x78,
+			0x70, 0x75, 0x75, 0x76, 0x76, 0x77, 0x7c, 0x7b, 0x7b, 0x7d, 0x81,
+			0x7e, 0x80, 0x85, 0x80, 0x82, 0x84, 0x84, 0x84, 0x84, 0x88, 0x86,
+			0x84, 0x88, 0x88, 0x85, 0x86, 0x88, 0x85, 0x83, 0x84, 0x84, 0x82,
+			0x83, 0x80, 0x7f, 0x7b, 0x71, 0x7f, 0x6b, 0x69, 0x78, 0x5f, 0x71,
+			0x66, 0x68, 0x78, 0x61, 0x7d, 0x78, 0x78, 0x89, 0x81, 0x93, 0x8d,
+			0x8e, 0x9d, 0x95, 0x98, 0x99, 0x95, 0x99, 0x8f, 0x8e, 0x90, 0x82,
+			0x83, 0x7f, 0x7a, 0x77, 0x70, 0x75, 0x70, 0x6b, 0x70, 0x71, 0x6f,
+			0x70, 0x75, 0x78, 0x77, 0x7b, 0x80, 0x80, 0x7f, 0x83, 0x87, 0x82,
+			0x86, 0x87, 0x86, 0x87, 0x85, 0x89, 0x85, 0x85, 0x89, 0x84, 0x87,
+			0x86, 0x87, 0x84, 0x83, 0x87, 0x82, 0x81, 0x82, 0x82, 0x7e, 0x7e,
+			0x7f, 0x79, 0x7d, 0x6b, 0x75, 0x79, 0x5a, 0x78, 0x65, 0x66, 0x75,
+			0x5c, 0x83, 0x6b, 0x75, 0x8d, 0x77, 0x92, 0x88, 0x92, 0x9b, 0x8c,
+			0x9e, 0x9a, 0x92, 0x98, 0x91, 0x92, 0x8d, 0x84, 0x8b, 0x7f, 0x7b,
+			0x7b, 0x75, 0x77, 0x6d, 0x70, 0x72, 0x6c, 0x70, 0x71, 0x74, 0x74,
+			0x77, 0x7f, 0x7f, 0x81, 0x87, 0x88, 0x89, 0x89, 0x8a, 0x8a, 0x83,
+			0x87, 0x84, 0x7e, 0x81, 0x7d, 0x7e, 0x7a, 0x7b, 0x7e, 0x79, 0x7d,
+			0x7e, 0x7f, 0x81, 0x82, 0x85, 0x85, 0x86, 0x88, 0x87, 0x86, 0x88,
+			0x87, 0x85, 0x85, 0x86, 0x80, 0x82, 0x7c, 0x6b, 0x84, 0x68, 0x64,
+			0x7b, 0x58, 0x75, 0x5f, 0x68, 0x7d, 0x5c, 0x85, 0x78, 0x80, 0x8d,
+			0x82, 0x9c, 0x8f, 0x94, 0x9f, 0x95, 0x99, 0x98, 0x94, 0x96, 0x8c,
+			0x8d, 0x8a, 0x80, 0x81, 0x7a, 0x79, 0x72, 0x70, 0x72, 0x6c, 0x6d,
+			0x6e, 0x70, 0x70, 0x73, 0x78, 0x7a, 0x7d, 0x81, 0x84, 0x86, 0x87,
+			0x89, 0x8b, 0x88, 0x8a, 0x86, 0x82, 0x84, 0x7d, 0x7e, 0x7c, 0x7b,
+			0x7c, 0x7a, 0x7e, 0x7d, 0x7f, 0x81, 0x81, 0x84, 0x84, 0x86, 0x85,
+			0x87, 0x86, 0x85, 0x85, 0x83, 0x84, 0x81, 0x82, 0x81, 0x81, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7b, 0x69, 0x81, 0x71, 0x61, 0x7d, 0x61, 0x75,
+			0x67, 0x6d, 0x81, 0x64, 0x86, 0x7d, 0x83, 0x8c, 0x87, 0x9b, 0x8d,
+			0x95, 0x9b, 0x94, 0x95, 0x93, 0x94, 0x8e, 0x88, 0x89, 0x83, 0x7e,
+			0x7a, 0x7a, 0x76, 0x72, 0x73, 0x72, 0x72, 0x72, 0x75, 0x77, 0x77,
+			0x7b, 0x7f, 0x7e, 0x81, 0x85, 0x84, 0x85, 0x84, 0x86, 0x85, 0x80,
+			0x83, 0x82, 0x7d, 0x7d, 0x7f, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7d,
+			0x80, 0x7f, 0x80, 0x84, 0x84, 0x84, 0x86, 0x88, 0x86, 0x86, 0x87,
+			0x86, 0x83, 0x83, 0x83, 0x7f, 0x7f, 0x7e, 0x7c, 0x7a, 0x7a, 0x7c,
+			0x7a, 0x7b, 0x7d, 0x7d, 0x7c, 0x80, 0x7c, 0x77, 0x80, 0x76, 0x76,
+			0x77, 0x75, 0x79, 0x72, 0x7b, 0x7a, 0x7a, 0x82, 0x82, 0x87, 0x87,
+			0x8c, 0x8f, 0x8c, 0x8f, 0x90, 0x8d, 0x8b, 0x8a, 0x88, 0x83, 0x81,
+			0x81, 0x7d, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7e, 0x7c, 0x7c, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x81, 0x7f, 0x80, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x7d, 0x7f, 0x7d, 0x7d, 0x7d, 0x7d, 0x7f,
+			0x7c, 0x7f, 0x81, 0x7f, 0x81, 0x81, 0x83, 0x81, 0x81, 0x84, 0x82,
+			0x81, 0x82, 0x82, 0x80, 0x7f, 0x81, 0x80, 0x7e, 0x81, 0x81, 0x7f,
+			0x81, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7d, 0x7e, 0x7e, 0x7e, 0x7c,
+			0x7d, 0x7e, 0x7d, 0x7e, 0x7d, 0x7e, 0x80, 0x7e, 0x7f, 0x7e, 0x7f,
+			0x7e, 0x7d, 0x7f, 0x7d, 0x7e, 0x7f, 0x7f, 0x81, 0x81, 0x82, 0x84,
+			0x84, 0x85, 0x85, 0x85, 0x85, 0x83, 0x84, 0x82, 0x80, 0x82, 0x80,
+			0x80, 0x80, 0x7f, 0x80, 0x80, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x80, 0x81, 0x81, 0x81, 0x81,
+			0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d,
+			0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x7e, 0x7f, 0x81,
+			0x7f, 0x80, 0x80, 0x80, 0x82, 0x80, 0x81, 0x83, 0x80, 0x81, 0x81,
+			0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7f, 0x7e,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x81, 0x7f, 0x81, 0x81, 0x7f, 0x82,
+			0x80, 0x81, 0x81, 0x80, 0x82, 0x80, 0x80, 0x81, 0x7f, 0x80, 0x80,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x81,
+			0x80, 0x81, 0x81, 0x7f, 0x81, 0x7f, 0x7f, 0x80, 0x7e, 0x7e, 0x7f,
+			0x7f, 0x7e, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x81, 0x7f, 0x80, 0x81,
+			0x80, 0x82, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x80, 0x81,
+			0x7f, 0x7f, 0x80, 0x7e, 0x7f, 0x7d, 0x7d, 0x7f, 0x7c, 0x7e, 0x7f,
+			0x7e, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x82, 0x80, 0x80, 0x82, 0x80,
+			0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x81, 0x80, 0x7e, 0x81, 0x7f,
+			0x7e, 0x7f, 0x7d, 0x7f, 0x7e, 0x7d, 0x80, 0x7c, 0x7e, 0x80, 0x7e,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x81, 0x7f,
+			0x81, 0x82, 0x81, 0x81, 0x82, 0x81, 0x82, 0x82, 0x81, 0x81, 0x80,
+			0x7f, 0x7e, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7d, 0x7e, 0x7e, 0x7f,
+			0x81, 0x80, 0x81, 0x83, 0x82, 0x80, 0x81, 0x81, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7e, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x80, 0x7f, 0x80,
+			0x7f, 0x7e, 0x7f, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x81,
+			0x81, 0x82, 0x82, 0x81, 0x81, 0x80, 0x80, 0x7f, 0x7e, 0x7e, 0x7d,
+			0x7c, 0x7d, 0x7c, 0x7d, 0x7d, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x82, 0x81, 0x81, 0x81, 0x82, 0x81, 0x81, 0x82, 0x80, 0x82, 0x81,
+			0x81, 0x82, 0x80, 0x82, 0x81, 0x7f, 0x80, 0x7e, 0x7d, 0x7d, 0x7b,
+			0x7b, 0x7c, 0x7b, 0x7c, 0x7d, 0x7d, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x81, 0x80, 0x81, 0x81, 0x7f, 0x81, 0x80, 0x80, 0x82, 0x80, 0x82,
+			0x81, 0x7f, 0x81, 0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x81, 0x7f, 0x80, 0x81, 0x7f, 0x81, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f,
+		},
+		{ // 4
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7e, 0x7f, 0x80, 0x7d, 0x7f, 0x80, 0x7e, 0x7f, 0x7e, 0x81, 0x7f,
+			0x81, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x7e, 0x7f, 0x7f,
+			0x7e, 0x7f, 0x80, 0x7e, 0x7f, 0x7f, 0x7f, 0x7e, 0x80, 0x81, 0x7d,
+			0x80, 0x7f, 0x79, 0x81, 0x7c, 0x7c, 0x84, 0x80, 0x81, 0x81, 0x80,
+			0x85, 0x7a, 0x82, 0x80, 0x7d, 0x81, 0x7a, 0x80, 0x7d, 0x7e, 0x7e,
+			0x80, 0x7e, 0x7f, 0x7f, 0x7c, 0x86, 0x7d, 0x7e, 0x85, 0x7b, 0x81,
+			0x83, 0x76, 0x88, 0x78, 0x82, 0x83, 0x76, 0x88, 0x7a, 0x7f, 0x83,
+			0x7a, 0x84, 0x7a, 0x80, 0x85, 0x73, 0x8b, 0x79, 0x7e, 0x85, 0x75,
+			0x8b, 0x75, 0x83, 0x84, 0x75, 0x8a, 0x78, 0x80, 0x86, 0x75, 0x83,
+			0x7d, 0x7d, 0x84, 0x7b, 0x85, 0x7f, 0x7d, 0x7e, 0x7f, 0x84, 0x77,
+			0x88, 0x7d, 0x79, 0x8b, 0x71, 0x87, 0x84, 0x6e, 0x8f, 0x77, 0x7a,
+			0x89, 0x78, 0x84, 0x7d, 0x7e, 0x82, 0x80, 0x79, 0x7f, 0x89, 0x75,
+			0x85, 0x81, 0x74, 0x8f, 0x71, 0x7e, 0x8e, 0x6f, 0x84, 0x86, 0x76,
+			0x82, 0x80, 0x80, 0x7d, 0x77, 0x8c, 0x7c, 0x7c, 0x80, 0x80, 0x7d,
+			0x7d, 0x84, 0x77, 0x89, 0x7e, 0x76, 0x8d, 0x76, 0x7a, 0x8d, 0x70,
+			0x85, 0x8a, 0x6d, 0x8b, 0x81, 0x6f, 0x8c, 0x7f, 0x73, 0x8e, 0x7e,
+			0x74, 0x8c, 0x79, 0x7a, 0x8c, 0x71, 0x85, 0x85, 0x74, 0x84, 0x83,
+			0x79, 0x7d, 0x8a, 0x74, 0x84, 0x7e, 0x7d, 0x86, 0x77, 0x8a, 0x77,
+			0x7e, 0x85, 0x78, 0x81, 0x81, 0x7e, 0x84, 0x7a, 0x7d, 0x83, 0x7b,
+			0x83, 0x77, 0x8d, 0x76, 0x80, 0x8a, 0x6d, 0x91, 0x78, 0x76, 0x8b,
+			0x7c, 0x78, 0x87, 0x7b, 0x80, 0x7f, 0x7c, 0x83, 0x75, 0x8a, 0x7c,
+			0x7b, 0x87, 0x79, 0x7f, 0x81, 0x7d, 0x7f, 0x83, 0x7a, 0x84, 0x7e,
+			0x7d, 0x84, 0x77, 0x84, 0x7d, 0x81, 0x81, 0x7b, 0x8b, 0x72, 0x78,
+			0x94, 0x6f, 0x7b, 0x98, 0x6d, 0x7b, 0x94, 0x65, 0x87, 0x8e, 0x6c,
+			0x8c, 0x7b, 0x80, 0x82, 0x74, 0x8d, 0x79, 0x78, 0x8c, 0x79, 0x7e,
+			0x7e, 0x86, 0x7d, 0x77, 0x8d, 0x76, 0x77, 0x91, 0x77, 0x75, 0x93,
+			0x76, 0x78, 0x8c, 0x74, 0x83, 0x7b, 0x7e, 0x87, 0x77, 0x86, 0x7c,
+			0x78, 0x8c, 0x7c, 0x76, 0x8d, 0x74, 0x7f, 0x8f, 0x6d, 0x8a, 0x7f,
+			0x74, 0x8f, 0x71, 0x84, 0x86, 0x78, 0x87, 0x75, 0x88, 0x7d, 0x75,
+			0x86, 0x7e, 0x7e, 0x82, 0x7a, 0x85, 0x83, 0x72, 0x89, 0x80, 0x73,
+			0x8b, 0x7d, 0x7a, 0x8c, 0x76, 0x81, 0x7f, 0x7e, 0x83, 0x7a, 0x80,
+			0x82, 0x7e, 0x7d, 0x83, 0x7e, 0x7c, 0x84, 0x7c, 0x7e, 0x84, 0x7a,
+			0x80, 0x83, 0x7e, 0x80, 0x7f, 0x7a, 0x84, 0x7f, 0x77, 0x88, 0x7b,
+			0x7d, 0x82, 0x7d, 0x7f, 0x7f, 0x80, 0x79, 0x87, 0x81, 0x71, 0x8d,
+			0x80, 0x75, 0x89, 0x7e, 0x79, 0x8a, 0x7a, 0x7b, 0x8a, 0x73, 0x7f,
+			0x87, 0x76, 0x81, 0x86, 0x7b, 0x7d, 0x89, 0x78, 0x7c, 0x8a, 0x79,
+			0x7e, 0x88, 0x79, 0x7b, 0x88, 0x73, 0x82, 0x8a, 0x72, 0x88, 0x82,
+			0x74, 0x83, 0x80, 0x7e, 0x84, 0x7e, 0x7e, 0x82, 0x7c, 0x82, 0x7b,
+			0x7f, 0x88, 0x74, 0x87, 0x86, 0x6f, 0x8e, 0x7f, 0x74, 0x8a, 0x7a,
+			0x7b, 0x87, 0x7c, 0x7b, 0x85, 0x7f, 0x7e, 0x82, 0x7f, 0x81, 0x7e,
+			0x80, 0x83, 0x7e, 0x7e, 0x7e, 0x7f, 0x7a, 0x82, 0x7f, 0x7a, 0x88,
+			0x7d, 0x81, 0x83, 0x7e, 0x83, 0x7a, 0x82, 0x7b, 0x7e, 0x80, 0x7b,
+			0x83, 0x81, 0x80, 0x7f, 0x86, 0x78, 0x84, 0x84, 0x75, 0x88, 0x7f,
+			0x7b, 0x84, 0x7c, 0x7f, 0x81, 0x7c, 0x7c, 0x85, 0x79, 0x80, 0x84,
+			0x7a, 0x83, 0x83, 0x7d, 0x81, 0x7f, 0x83, 0x76, 0x87, 0x81, 0x73,
+			0x89, 0x7f, 0x78, 0x86, 0x81, 0x78, 0x88, 0x81, 0x75, 0x8d, 0x7d,
+			0x7a, 0x86, 0x7a, 0x81, 0x7d, 0x7d, 0x7e, 0x7f, 0x7d, 0x7c, 0x7f,
+			0x7b, 0x81, 0x7a, 0x7c, 0x81, 0x7d, 0x7b, 0x82, 0x81, 0x7c, 0x86,
+			0x85, 0x7e, 0x8a, 0x85, 0x82, 0x89, 0x85, 0x83, 0x8b, 0x83, 0x83,
+			0x86, 0x80, 0x81, 0x80, 0x7b, 0x81, 0x82, 0x78, 0x85, 0x7e, 0x79,
+			0x81, 0x7a, 0x7c, 0x81, 0x80, 0x7d, 0x83, 0x7e, 0x80, 0x84, 0x7b,
+			0x88, 0x81, 0x84, 0x61, 0x68, 0x91, 0x52, 0x64, 0x75, 0x61, 0x77,
+			0x66, 0x74, 0x81, 0x89, 0x87, 0x87, 0xa5, 0x99, 0x9b, 0x9e, 0x9e,
+			0xa0, 0x97, 0x8f, 0x8a, 0x8d, 0x80, 0x72, 0x77, 0x76, 0x6a, 0x68,
+			0x6c, 0x6d, 0x70, 0x70, 0x78, 0x80, 0x81, 0x81, 0x8b, 0x8d, 0x8a,
+			0x8c, 0x8e, 0x8c, 0x88, 0x85, 0x84, 0x85, 0x7d, 0x7a, 0x7e, 0x7b,
+			0x79, 0x79, 0x7c, 0x7e, 0x7c, 0x81, 0x7f, 0x84, 0x88, 0x84, 0x83,
+			0x53, 0x6b, 0x95, 0x3e, 0x53, 0x79, 0x57, 0x69, 0x61, 0x6f, 0x7f,
+			0x8c, 0x8a, 0x83, 0xb1, 0xaa, 0x96, 0xa5, 0xac, 0xa3, 0x9c, 0x93,
+			0x8a, 0x91, 0x82, 0x72, 0x72, 0x78, 0x6b, 0x63, 0x69, 0x6c, 0x6e,
+			0x65, 0x72, 0x79, 0x79, 0x7d, 0x84, 0x8c, 0x89, 0x8d, 0x8e, 0x90,
+			0x90, 0x8a, 0x8b, 0x8b, 0x85, 0x7f, 0x80, 0x83, 0x77, 0x7b, 0x7c,
+			0x7a, 0x79, 0x7d, 0x7d, 0x7e, 0x85, 0x7d, 0x86, 0x84, 0x86, 0x62,
+			0x4d, 0x98, 0x58, 0x37, 0x7b, 0x5b, 0x60, 0x64, 0x6c, 0x77, 0x86,
+			0x98, 0x7d, 0xa0, 0xbb, 0x9c, 0x9d, 0xb1, 0xa9, 0x9c, 0x9b, 0x8a,
+			0x8d, 0x89, 0x7a, 0x6b, 0x71, 0x78, 0x5f, 0x63, 0x6c, 0x70, 0x67,
+			0x66, 0x7a, 0x79, 0x7b, 0x7b, 0x89, 0x8f, 0x89, 0x8d, 0x8f, 0x98,
+			0x8c, 0x89, 0x8e, 0x8a, 0x83, 0x7c, 0x82, 0x7f, 0x79, 0x77, 0x7a,
+			0x7c, 0x78, 0x7b, 0x7e, 0x81, 0x82, 0x7d, 0x85, 0x85, 0x87, 0x7e,
+			0x41, 0x70, 0x95, 0x33, 0x50, 0x73, 0x5e, 0x61, 0x5e, 0x78, 0x77,
+			0x98, 0x90, 0x7d, 0xb4, 0xb8, 0x98, 0x9e, 0xb5, 0xa7, 0x9b, 0x92,
+			0x8c, 0x89, 0x86, 0x75, 0x63, 0x77, 0x74, 0x5b, 0x61, 0x6f, 0x75,
+			0x68, 0x69, 0x75, 0x84, 0x7e, 0x78, 0x88, 0x94, 0x8d, 0x86, 0x90,
+			0x95, 0x8d, 0x87, 0x84, 0x88, 0x85, 0x7b, 0x78, 0x80, 0x7d, 0x75,
+			0x78, 0x79, 0x7b, 0x7b, 0x79, 0x7e, 0x80, 0x81, 0x7d, 0x85, 0x87,
+			0x8b, 0x7d, 0x42, 0x79, 0x8c, 0x3c, 0x57, 0x6b, 0x68, 0x5e, 0x63,
+			0x76, 0x72, 0x9a, 0x8c, 0x81, 0xa8, 0xb3, 0x9e, 0x96, 0xae, 0xa8,
+			0x99, 0x94, 0x8c, 0x87, 0x89, 0x7b, 0x6a, 0x72, 0x76, 0x6b, 0x63,
+			0x6f, 0x75, 0x6e, 0x71, 0x72, 0x7c, 0x81, 0x7e, 0x7d, 0x88, 0x91,
+			0x86, 0x84, 0x8a, 0x8c, 0x87, 0x81, 0x82, 0x84, 0x81, 0x79, 0x78,
+			0x7a, 0x7e, 0x78, 0x76, 0x7c, 0x7e, 0x7b, 0x7b, 0x7c, 0x83, 0x81,
+			0x7d, 0x80, 0x84, 0x87, 0x83, 0x8c, 0x69, 0x5c, 0x8f, 0x6f, 0x54,
+			0x67, 0x6e, 0x6b, 0x60, 0x73, 0x6a, 0x79, 0x8e, 0x80, 0x85, 0x98,
+			0xa6, 0x96, 0x97, 0xa6, 0x9f, 0x9b, 0x98, 0x8e, 0x87, 0x8c, 0x85,
+			0x72, 0x75, 0x7c, 0x70, 0x6a, 0x72, 0x73, 0x70, 0x72, 0x74, 0x74,
+			0x7e, 0x7e, 0x79, 0x7d, 0x87, 0x84, 0x7f, 0x81, 0x85, 0x83, 0x83,
+			0x81, 0x7f, 0x84, 0x81, 0x7d, 0x7c, 0x81, 0x7f, 0x7a, 0x7c, 0x7d,
+			0x7d, 0x7d, 0x7c, 0x7d, 0x7f, 0x7e, 0x7e, 0x7d, 0x81, 0x80, 0x7f,
+			0x80, 0x82, 0x82, 0x80, 0x76, 0x77, 0x7c, 0x77, 0x75, 0x72, 0x75,
+			0x75, 0x75, 0x79, 0x77, 0x7c, 0x82, 0x84, 0x86, 0x89, 0x8d, 0x8c,
+			0x8d, 0x8b, 0x8b, 0x89, 0x8a, 0x86, 0x84, 0x83, 0x82, 0x82, 0x7e,
+			0x7f, 0x7c, 0x7d, 0x7e, 0x7c, 0x7a, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c,
+			0x7c, 0x7d, 0x7e, 0x7d, 0x7e, 0x7f, 0x81, 0x80, 0x80, 0x80, 0x82,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7d, 0x7e, 0x7e, 0x7e, 0x7c,
+			0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e,
+			0x7f, 0x7e, 0x7f, 0x7f, 0x81, 0x80, 0x81, 0x81, 0x81, 0x82, 0x81,
+			0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x7d, 0x7f, 0x7e, 0x7d, 0x7e,
+			0x7d, 0x7f, 0x7e, 0x7f, 0x80, 0x81, 0x80, 0x81, 0x81, 0x83, 0x82,
+			0x83, 0x82, 0x84, 0x82, 0x82, 0x82, 0x81, 0x82, 0x81, 0x81, 0x7f,
+			0x81, 0x7f, 0x7e, 0x80, 0x7e, 0x7e, 0x7c, 0x7d, 0x7d, 0x7c, 0x7d,
+			0x7b, 0x7c, 0x7d, 0x7d, 0x7c, 0x7e, 0x7d, 0x80, 0x7d, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x7f, 0x81, 0x7f, 0x80, 0x7f, 0x80, 0x7e, 0x7f,
+			0x7e, 0x7d, 0x7e, 0x7d, 0x7e, 0x7d, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f,
+			0x7e, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x81, 0x81, 0x7f, 0x81, 0x81,
+			0x82, 0x81, 0x80, 0x81, 0x80, 0x81, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7e, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7e, 0x7f, 0x7e, 0x7d, 0x7f, 0x7d, 0x7f, 0x7e, 0x7f, 0x7f, 0x80,
+			0x7f, 0x81, 0x80, 0x80, 0x81, 0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x7d,
+			0x7e, 0x7d, 0x7d, 0x7d, 0x7f, 0x7d, 0x7d, 0x7f, 0x7e, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x81, 0x7f, 0x81, 0x80, 0x81, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x7d, 0x7f, 0x7d, 0x7e, 0x7d, 0x7f, 0x7e, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x7f,
+			0x80, 0x7f, 0x81, 0x81, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7d, 0x7d,
+			0x7d, 0x7c, 0x7d, 0x7c, 0x7d, 0x7e, 0x7d, 0x7f, 0x7e, 0x80, 0x80,
+			0x81, 0x82, 0x81, 0x81, 0x80, 0x81, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x7d, 0x7e, 0x7f, 0x7f, 0x7d, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e,
+			0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x7e, 0x7f, 0x7f,
+			0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7e, 0x80, 0x7e, 0x80, 0x7e, 0x7f, 0x7e, 0x7e, 0x7e,
+			0x7f, 0x7d, 0x7e, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81,
+			0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7e, 0x7f,
+			0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x80,
+			0x7e, 0x80, 0x7e, 0x7e, 0x81, 0x7e, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x80, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7e,
+			0x7f, 0x7e, 0x7f, 0x7d, 0x7f, 0x7e, 0x7d, 0x7c, 0x77, 0x82, 0x82,
+			0x7e, 0x80, 0x7e, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x83, 0x7f, 0x7c,
+			0x86, 0x75, 0x7c, 0x85, 0x81, 0x85, 0x84, 0x82, 0x7b, 0x7e, 0x81,
+			0x80, 0x7f, 0x7b, 0x7d, 0x7e, 0x7d, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e,
+			0x7f, 0x81, 0x80, 0x7f, 0x80, 0x7e, 0x80, 0x7f, 0x81, 0x7e, 0x7e,
+			0x7f, 0x7e, 0x7e, 0x80, 0x7c, 0x7d, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f,
+			0x79, 0x7c, 0x82, 0x82, 0x82, 0x84, 0x81, 0x80, 0x81, 0x78, 0x7f,
+			0x7e, 0x7f, 0x7c, 0x79, 0x7e, 0x7d, 0x7f, 0x75, 0x7f, 0x85, 0x82,
+			0x85, 0x86, 0x85, 0x83, 0x7f, 0x7c, 0x82, 0x83, 0x81, 0x80, 0x7e,
+			0x80, 0x7d, 0x7b, 0x7c, 0x7c, 0x7d, 0x7c, 0x78, 0x7b, 0x7c, 0x7e,
+			0x7e, 0x7d, 0x80, 0x81, 0x81, 0x80, 0x83, 0x84, 0x82, 0x81, 0x7f,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7c, 0x7f, 0x7d, 0x7f, 0x7d, 0x7e, 0x7f,
+			0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7d, 0x7e,
+			0x7f, 0x7c, 0x7e, 0x7f, 0x80, 0x80, 0x7d, 0x81, 0x7f, 0x7d, 0x81,
+			0x7e, 0x80, 0x81, 0x7f, 0x80, 0x81, 0x82, 0x7e, 0x81, 0x83, 0x80,
+			0x81, 0x81, 0x80, 0x80, 0x81, 0x80, 0x7f, 0x7f, 0x7f, 0x7d, 0x7c,
+			0x81, 0x7c, 0x7d, 0x7f, 0x7a, 0x80, 0x81, 0x7c, 0x7e, 0x83, 0x80,
+			0x7d, 0x7f, 0x83, 0x81, 0x81, 0x7f, 0x7f, 0x7f, 0x81, 0x7a, 0x7e,
+			0x81, 0x7d, 0x7d, 0x7c, 0x7e, 0x7f, 0x7d, 0x7d, 0x81, 0x7d, 0x7f,
+			0x7d, 0x7b, 0x7c, 0x7a, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7f, 0x7e,
+			0x82, 0x84, 0x85, 0x87, 0x89, 0x8a, 0x8b, 0x8d, 0x88, 0x8a, 0x8a,
+			0x85, 0x84, 0x83, 0x83, 0x7f, 0x80, 0x7e, 0x81, 0x7e, 0x7b, 0x7d,
+			0x7e, 0x7d, 0x7d, 0x7d, 0x7f, 0x7d, 0x7f, 0x80, 0x7f, 0x80, 0x6d,
+			0x58, 0x70, 0x77, 0x59, 0x5e, 0x65, 0x6f, 0x71, 0x75, 0x7e, 0x7b,
+			0x93, 0xa3, 0x94, 0x92, 0xa3, 0xab, 0x9e, 0x94, 0x98, 0x92, 0x8e,
+			0x89, 0x79, 0x72, 0x76, 0x6d, 0x64, 0x69, 0x6b, 0x6e, 0x72, 0x7c,
+			0x7e, 0x82, 0x8f, 0x8d, 0x90, 0x92, 0x96, 0x93, 0x8e, 0x90, 0x89,
+			0x87, 0x82, 0x7d, 0x7a, 0x7a, 0x7d, 0x78, 0x7e, 0x7d, 0x7c, 0x6c,
+			0x40, 0x65, 0x7c, 0x45, 0x4b, 0x58, 0x67, 0x6c, 0x64, 0x82, 0x7a,
+			0x8f, 0xb6, 0x9d, 0x96, 0xb3, 0xbf, 0xac, 0x96, 0x9d, 0xa2, 0x89,
+			0x84, 0x7f, 0x63, 0x72, 0x77, 0x61, 0x58, 0x60, 0x74, 0x60, 0x62,
+			0x7d, 0x76, 0x82, 0x89, 0x8f, 0x8e, 0x96, 0xa3, 0x8d, 0x93, 0x9d,
+			0x94, 0x8a, 0x8b, 0x91, 0x7f, 0x7e, 0x87, 0x7d, 0x7e, 0x82, 0x81,
+			0x7d, 0x6c, 0x44, 0x5c, 0x7d, 0x3e, 0x3f, 0x55, 0x5e, 0x69, 0x52,
+			0x7a, 0x7e, 0x89, 0xb5, 0x98, 0x9c, 0xbd, 0xc5, 0xb3, 0x98, 0xab,
+			0xb1, 0x8e, 0x80, 0x81, 0x6d, 0x71, 0x6e, 0x54, 0x59, 0x5e, 0x73,
+			0x64, 0x57, 0x77, 0x77, 0x7e, 0x81, 0x83, 0x94, 0x91, 0x9c, 0x8d,
+			0x8f, 0xa0, 0x94, 0x8c, 0x8a, 0x93, 0x90, 0x80, 0x84, 0x83, 0x86,
+			0x85, 0x80, 0x84, 0x7e, 0x81, 0x58, 0x40, 0x78, 0x64, 0x31, 0x48,
+			0x57, 0x66, 0x57, 0x5d, 0x81, 0x7d, 0x9c, 0xab, 0x90, 0xad, 0xc8,
+			0xbb, 0xa6, 0x9e, 0xb9, 0xa8, 0x7f, 0x84, 0x7e, 0x6f, 0x73, 0x5d,
+			0x56, 0x5e, 0x65, 0x6b, 0x53, 0x6a, 0x87, 0x75, 0x78, 0x81, 0x90,
+			0x92, 0x87, 0x92, 0x8c, 0x96, 0x95, 0x83, 0x89, 0x90, 0x8f, 0x7f,
+			0x81, 0x91, 0x84, 0x80, 0x84, 0x88, 0x89, 0x85, 0x89, 0x80, 0x71,
+			0x56, 0x60, 0x73, 0x42, 0x41, 0x58, 0x57, 0x5a, 0x54, 0x6f, 0x7e,
+			0x83, 0x9e, 0x99, 0x9f, 0xbd, 0xbb, 0xab, 0xa7, 0xb4, 0xb0, 0x91,
+			0x85, 0x8d, 0x7b, 0x71, 0x6a, 0x59, 0x62, 0x61, 0x61, 0x5c, 0x60,
+			0x7b, 0x76, 0x6f, 0x81, 0x8a, 0x89, 0x86, 0x8f, 0x8e, 0x8c, 0x93,
+			0x89, 0x86, 0x8b, 0x8b, 0x82, 0x7f, 0x8b, 0x87, 0x84, 0x83, 0x87,
+			0x8b, 0x87, 0x88, 0x89, 0x88, 0x84, 0x76, 0x5a, 0x57, 0x74, 0x54,
+			0x35, 0x53, 0x5c, 0x5b, 0x51, 0x62, 0x80, 0x8e, 0x93, 0xab, 0xaa,
+			0x9c, 0xb3, 0xb5, 0xa2, 0x9e, 0x9d, 0x95, 0x8a, 0x7a, 0x79, 0x70,
+			0x6d, 0x67, 0x59, 0x69, 0x6b, 0x60, 0x68, 0x72, 0x7e, 0x7d, 0x7f,
+			0x8a, 0x8d, 0x93, 0x8c, 0x8c, 0x95, 0x89, 0x83, 0x82, 0x82, 0x78,
+			0x74, 0x78, 0x73, 0x76, 0x75, 0x79, 0x80, 0x83, 0x84, 0x89, 0x90,
+			0x91, 0x90, 0x95, 0x93, 0x93, 0x91, 0x8d, 0x82, 0x70, 0x61, 0x6b,
+			0x64, 0x3c, 0x51, 0x5a, 0x49, 0x54, 0x57, 0x69, 0x77, 0x7e, 0x8a,
+			0x93, 0xad, 0xae, 0xa2, 0xb7, 0xba, 0xaa, 0xa7, 0xa0, 0x9a, 0x92,
+			0x7f, 0x79, 0x72, 0x6e, 0x66, 0x58, 0x65, 0x67, 0x5f, 0x66, 0x6d,
+			0x79, 0x79, 0x7c, 0x85, 0x89, 0x8e, 0x8c, 0x85, 0x93, 0x8d, 0x7f,
+			0x83, 0x87, 0x7c, 0x75, 0x7d, 0x7b, 0x79, 0x7d, 0x7e, 0x82, 0x87,
+			0x86, 0x8a, 0x91, 0x90, 0x8a, 0x91, 0x90, 0x8a, 0x89, 0x87, 0x87,
+			0x7d, 0x73, 0x60, 0x5a, 0x71, 0x4e, 0x3d, 0x60, 0x56, 0x51, 0x5b,
+			0x66, 0x79, 0x7c, 0x8a, 0x91, 0xa0, 0xb5, 0xa8, 0xa5, 0xbf, 0xb5,
+			0xa5, 0xa3, 0x9e, 0x9a, 0x87, 0x7d, 0x77, 0x6c, 0x6f, 0x5c, 0x58,
+			0x68, 0x63, 0x5d, 0x64, 0x6e, 0x76, 0x73, 0x7c, 0x85, 0x89, 0x8e,
+			0x8b, 0x90, 0x95, 0x8c, 0x8c, 0x8a, 0x89, 0x82, 0x7f, 0x7f, 0x7d,
+			0x7e, 0x79, 0x7d, 0x7e, 0x7f, 0x7c, 0x80, 0x84, 0x7f, 0x81, 0x7f,
+			0x7f, 0x80, 0x80, 0x7d, 0x7f, 0x81, 0x7f, 0x7e, 0x7f, 0x7d, 0x77,
+			0x73, 0x7d, 0x72, 0x6c, 0x73, 0x70, 0x70, 0x71, 0x74, 0x78, 0x79,
+			0x81, 0x82, 0x82, 0x8d, 0x8e, 0x8b, 0x92, 0x92, 0x91, 0x8f, 0x8f,
+			0x8f, 0x89, 0x8a, 0x87, 0x7f, 0x82, 0x7f, 0x7b, 0x79, 0x7b, 0x79,
+			0x75, 0x77, 0x79, 0x78, 0x77, 0x7b, 0x79, 0x7b, 0x7d, 0x7b, 0x7d,
+			0x7e, 0x81, 0x7d, 0x7d, 0x82, 0x7d, 0x7e, 0x80, 0x81, 0x80, 0x80,
+			0x81, 0x7f, 0x82, 0x81, 0x81, 0x82, 0x84, 0x81, 0x81, 0x82, 0x82,
+			0x80, 0x83, 0x81, 0x81, 0x80, 0x82, 0x81, 0x81, 0x81, 0x80, 0x7f,
+			0x80, 0x7d, 0x7d, 0x7d, 0x78, 0x77, 0x7b, 0x76, 0x6f, 0x76, 0x72,
+			0x72, 0x74, 0x75, 0x76, 0x79, 0x7e, 0x7f, 0x7f, 0x89, 0x89, 0x88,
+			0x8f, 0x91, 0x8e, 0x90, 0x8e, 0x8e, 0x89, 0x8a, 0x87, 0x80, 0x83,
+			0x7f, 0x7a, 0x7b, 0x7c, 0x77, 0x77, 0x78, 0x7a, 0x77, 0x79, 0x7a,
+			0x78, 0x7b, 0x7a, 0x7a, 0x7e, 0x7d, 0x7d, 0x7d, 0x81, 0x81, 0x7d,
+			0x82, 0x85, 0x7d, 0x82, 0x81, 0x80, 0x7e, 0x81, 0x80, 0x7d, 0x82,
+			0x7e, 0x80, 0x82, 0x7f, 0x80, 0x81, 0x83, 0x7f, 0x83, 0x83, 0x83,
+			0x81, 0x84, 0x82, 0x83, 0x82, 0x80, 0x82, 0x82, 0x80, 0x80, 0x80,
+			0x7d, 0x7b, 0x73, 0x70, 0x7a, 0x6c, 0x67, 0x74, 0x6c, 0x6e, 0x71,
+			0x74, 0x79, 0x7d, 0x81, 0x84, 0x8c, 0x91, 0x8d, 0x92, 0x9b, 0x92,
+			0x92, 0x94, 0x8f, 0x8d, 0x87, 0x82, 0x81, 0x7c, 0x78, 0x73, 0x75,
+			0x75, 0x6e, 0x72, 0x74, 0x75, 0x76, 0x77, 0x7b, 0x80, 0x7e, 0x81,
+			0x82, 0x86, 0x84, 0x83, 0x85, 0x85, 0x82, 0x80, 0x81, 0x7d, 0x7c,
+			0x7a, 0x78, 0x78, 0x77, 0x78, 0x79, 0x7b, 0x7c, 0x81, 0x84, 0x84,
+			0x87, 0x8a, 0x8b, 0x8b, 0x8a, 0x8b, 0x8a, 0x86, 0x85, 0x82, 0x83,
+			0x80, 0x7f, 0x80, 0x7d, 0x7d, 0x7f, 0x78, 0x7a, 0x6c, 0x5b, 0x81,
+			0x64, 0x4a, 0x7c, 0x61, 0x60, 0x71, 0x6c, 0x82, 0x80, 0x85, 0x90,
+			0x99, 0xa4, 0x92, 0x9f, 0xae, 0x95, 0x98, 0x9c, 0x8c, 0x90, 0x7e,
+			0x7a, 0x81, 0x6f, 0x6d, 0x6a, 0x70, 0x69, 0x64, 0x73, 0x71, 0x71,
+			0x79, 0x78, 0x85, 0x85, 0x80, 0x8e, 0x8e, 0x8b, 0x89, 0x8c, 0x8f,
+			0x84, 0x84, 0x81, 0x7c, 0x7b, 0x72, 0x70, 0x73, 0x6b, 0x6d, 0x6f,
+			0x73, 0x75, 0x7a, 0x80, 0x85, 0x8a, 0x8d, 0x92, 0x93, 0x92, 0x93,
+			0x93, 0x8e, 0x89, 0x88, 0x84, 0x7e, 0x7a, 0x79, 0x78, 0x75, 0x76,
+			0x78, 0x7e, 0x7a, 0x7c, 0x7c, 0x83, 0x68, 0x5c, 0x95, 0x55, 0x4e,
+			0x8b, 0x57, 0x69, 0x73, 0x6a, 0x8d, 0x7f, 0x84, 0x97, 0x9f, 0x9e,
+			0x90, 0xa7, 0xab, 0x89, 0x9c, 0x95, 0x86, 0x8d, 0x6f, 0x7e, 0x7c,
+			0x64, 0x6d, 0x6f, 0x6f, 0x69, 0x6d, 0x7d, 0x75, 0x79, 0x80, 0x83,
+			0x8e, 0x83, 0x86, 0x99, 0x8a, 0x86, 0x8c, 0x8b, 0x86, 0x7a, 0x7f,
+			0x7b, 0x74, 0x71, 0x69, 0x73, 0x70, 0x62, 0x71, 0x7b, 0x6e, 0x76,
+			0x85, 0x84, 0x82, 0x8b, 0x91, 0x92, 0x8d, 0x91, 0x97, 0x90, 0x85,
+			0x8c, 0x8d, 0x80, 0x7d, 0x82, 0x7e, 0x78, 0x77, 0x7c, 0x7a, 0x77,
+			0x79, 0x81, 0x7f, 0x79, 0x80, 0x7e, 0x7c, 0x6a, 0x61, 0x7f, 0x60,
+			0x4e, 0x75, 0x62, 0x65, 0x6e, 0x6e, 0x89, 0x82, 0x86, 0x9b, 0xa1,
+			0xa2, 0x9b, 0xaa, 0xac, 0x95, 0x9b, 0x99, 0x8c, 0x87, 0x75, 0x7b,
+			0x75, 0x63, 0x68, 0x69, 0x6a, 0x63, 0x69, 0x77, 0x75, 0x77, 0x82,
+			0x87, 0x8e, 0x87, 0x8f, 0x98, 0x8c, 0x8b, 0x8c, 0x8c, 0x84, 0x79,
+			0x7d, 0x78, 0x72, 0x6e, 0x6f, 0x6f, 0x6c, 0x6f, 0x70, 0x77, 0x78,
+			0x79, 0x82, 0x84, 0x85, 0x86, 0x90, 0x8b, 0x88, 0x8e, 0x8c, 0x89,
+			0x85, 0x87, 0x86, 0x80, 0x81, 0x80, 0x82, 0x7c, 0x7f, 0x83, 0x7f,
+			0x7e, 0x80, 0x83, 0x82, 0x7f, 0x85, 0x83, 0x81, 0x7c, 0x7c, 0x71,
+			0x56, 0x7c, 0x63, 0x42, 0x75, 0x5d, 0x5c, 0x6f, 0x6b, 0x83, 0x82,
+			0x8b, 0x9a, 0xa3, 0xa7, 0x9e, 0xae, 0xb0, 0x97, 0xa0, 0x9a, 0x8a,
+			0x88, 0x73, 0x79, 0x73, 0x62, 0x65, 0x68, 0x6a, 0x61, 0x6b, 0x78,
+			0x73, 0x79, 0x83, 0x86, 0x8f, 0x87, 0x8d, 0x95, 0x8c, 0x88, 0x89,
+			0x88, 0x80, 0x79, 0x7d, 0x75, 0x73, 0x6f, 0x71, 0x74, 0x71, 0x6c,
+			0x7a, 0x7c, 0x74, 0x7e, 0x86, 0x86, 0x85, 0x88, 0x90, 0x89, 0x88,
+			0x89, 0x8b, 0x85, 0x7f, 0x86, 0x82, 0x7e, 0x7e, 0x81, 0x80, 0x7c,
+			0x81, 0x83, 0x81, 0x7f, 0x83, 0x83, 0x7e, 0x81, 0x81, 0x81, 0x7d,
+			0x80, 0x7e, 0x80, 0x75, 0x72, 0x6b, 0x63, 0x73, 0x55, 0x5f, 0x73,
+			0x5f, 0x70, 0x75, 0x80, 0x87, 0x89, 0x9a, 0x9e, 0xa2, 0xa1, 0xa0,
+			0xa7, 0x9a, 0x91, 0x93, 0x85, 0x80, 0x75, 0x70, 0x73, 0x65, 0x66,
+			0x6d, 0x6e, 0x6e, 0x72, 0x80, 0x7f, 0x82, 0x89, 0x8f, 0x90, 0x8b,
+			0x8e, 0x8f, 0x88, 0x83, 0x81, 0x81, 0x7a, 0x73, 0x76, 0x75, 0x72,
+			0x70, 0x74, 0x76, 0x73, 0x75, 0x7c, 0x7d, 0x79, 0x7e, 0x85, 0x81,
+			0x81, 0x86, 0x89, 0x85, 0x87, 0x89, 0x89, 0x85, 0x86, 0x87, 0x85,
+			0x81, 0x81, 0x82, 0x7c, 0x7c, 0x7e, 0x7e, 0x7b, 0x7b, 0x7e, 0x7c,
+			0x7c, 0x7e, 0x80, 0x80, 0x7f, 0x82, 0x82, 0x81, 0x80, 0x82, 0x82,
+			0x78, 0x65, 0x78, 0x6f, 0x58, 0x6b, 0x6f, 0x68, 0x6e, 0x7a, 0x81,
+			0x84, 0x8c, 0x92, 0x9e, 0x9a, 0x97, 0x9f, 0x98, 0x90, 0x8d, 0x8c,
+			0x81, 0x7b, 0x78, 0x76, 0x74, 0x70, 0x72, 0x79, 0x77, 0x78, 0x7f,
+			0x83, 0x80, 0x84, 0x88, 0x87, 0x85, 0x83, 0x84, 0x82, 0x7e, 0x7b,
+			0x7f, 0x7b, 0x76, 0x7b, 0x79, 0x77, 0x77, 0x78, 0x78, 0x76, 0x78,
+			0x7c, 0x7b, 0x7a, 0x7f, 0x82, 0x82, 0x84, 0x88, 0x8a, 0x88, 0x8a,
+			0x8b, 0x8a, 0x86, 0x84, 0x85, 0x80, 0x7d, 0x7c, 0x7d, 0x79, 0x79,
+			0x7a, 0x7d, 0x7b, 0x7d, 0x80, 0x80, 0x81, 0x81, 0x83, 0x84, 0x80,
+			0x83, 0x80, 0x7f, 0x7e, 0x7d, 0x7d, 0x7a, 0x7f, 0x71, 0x66, 0x7f,
+			0x68, 0x62, 0x73, 0x71, 0x6f, 0x75, 0x80, 0x7f, 0x8a, 0x89, 0x8f,
+			0x99, 0x90, 0x92, 0x96, 0x91, 0x89, 0x8d, 0x88, 0x82, 0x82, 0x7d,
+			0x7e, 0x7d, 0x78, 0x7c, 0x7c, 0x78, 0x78, 0x7e, 0x7a, 0x79, 0x7c,
+			0x7d, 0x7e, 0x7c, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x83, 0x7f, 0x80,
+			0x81, 0x7d, 0x7c, 0x7b, 0x7c, 0x79, 0x7a, 0x7a, 0x7d, 0x7c, 0x7e,
+			0x80, 0x82, 0x82, 0x84, 0x84, 0x85, 0x84, 0x83, 0x84, 0x82, 0x81,
+			0x7f, 0x7f, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7e, 0x7e, 0x7f, 0x80,
+			0x7e, 0x80, 0x81, 0x80, 0x7f, 0x80, 0x7e, 0x7f, 0x7e, 0x7c, 0x7d,
+			0x7d, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7f, 0x7e, 0x7f, 0x80, 0x81,
+			0x81, 0x7e, 0x7e, 0x80, 0x7e, 0x7d, 0x7f, 0x80, 0x7d, 0x80, 0x80,
+			0x7f, 0x7f, 0x80, 0x7f, 0x81, 0x7f, 0x81, 0x81, 0x82, 0x82, 0x84,
+			0x83, 0x83, 0x83, 0x83, 0x83, 0x82, 0x81, 0x81, 0x80, 0x7f, 0x7d,
+			0x80, 0x7e, 0x7d, 0x7c, 0x7f, 0x7d, 0x7d, 0x7f, 0x7e, 0x7f, 0x7f,
+			0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7f, 0x7d, 0x7e,
+			0x7f, 0x80, 0x7e, 0x80, 0x7f, 0x80, 0x81, 0x80, 0x81, 0x81, 0x81,
+			0x80, 0x81, 0x81, 0x7f, 0x81, 0x7f, 0x7f, 0x80, 0x7e, 0x7f, 0x7e,
+			0x7d, 0x7d, 0x7e, 0x7b, 0x7b, 0x7d, 0x7b, 0x7a, 0x7c, 0x7b, 0x7c,
+			0x7c, 0x7e, 0x7d, 0x80, 0x7f, 0x81, 0x81, 0x82, 0x81, 0x83, 0x82,
+			0x80, 0x82, 0x81, 0x81, 0x80, 0x81, 0x81, 0x82, 0x80, 0x81, 0x82,
+			0x80, 0x81, 0x80, 0x82, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x81, 0x80, 0x81, 0x80, 0x81, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7c, 0x7e, 0x7e, 0x7d,
+			0x7e, 0x7c, 0x7e, 0x7f, 0x7e, 0x7d, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80,
+			0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7d,
+			0x7e, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7d, 0x7d, 0x7f, 0x7e, 0x80,
+			0x81, 0x82, 0x81, 0x83, 0x83, 0x83, 0x83, 0x83, 0x82, 0x83, 0x81,
+			0x82, 0x80, 0x80, 0x7e, 0x7f, 0x7e, 0x7c, 0x7e, 0x7d, 0x7e, 0x7d,
+			0x7e, 0x7f, 0x7f, 0x80, 0x81, 0x80, 0x81, 0x81, 0x82, 0x81, 0x81,
+			0x80,
+		},
+		{ // 5
+			0x7f, 0x7f, 0x7f, 0x7c, 0x7a, 0x7c, 0x7d, 0x7a, 0x7b, 0x81, 0x83,
+			0x82, 0x85, 0x87, 0x87, 0x88, 0x87, 0x84, 0x83, 0x84, 0x81, 0x7c,
+			0x7c, 0x7f, 0x7d, 0x7a, 0x7c, 0x7f, 0x7e, 0x7e, 0x81, 0x82, 0x82,
+			0x83, 0x82, 0x82, 0x83, 0x81, 0x7e, 0x7e, 0x7f, 0x7c, 0x7b, 0x7c,
+			0x7c, 0x7b, 0x7c, 0x7d, 0x7d, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x81, 0x82, 0x81, 0x82, 0x81, 0x82, 0x82, 0x82, 0x82,
+			0x81, 0x82, 0x81, 0x83, 0x83, 0x83, 0x83, 0x83, 0x85, 0x84, 0x84,
+			0x85, 0x85, 0x83, 0x78, 0x5c, 0x68, 0x7a, 0x57, 0x5d, 0x6f, 0x69,
+			0x7e, 0x81, 0x7e, 0x96, 0xa6, 0x9f, 0x99, 0xa1, 0xa2, 0x94, 0x89,
+			0x7e, 0x74, 0x79, 0x6c, 0x5b, 0x69, 0x70, 0x6f, 0x73, 0x7e, 0x8b,
+			0x92, 0x90, 0x91, 0x9a, 0x95, 0x89, 0x84, 0x82, 0x7b, 0x74, 0x6e,
+			0x71, 0x7a, 0x77, 0x7d, 0x8a, 0x8d, 0x91, 0x98, 0x99, 0x98, 0x92,
+			0x54, 0x4f, 0x83, 0x49, 0x34, 0x5b, 0x52, 0x70, 0x82, 0x74, 0x95,
+			0xbe, 0xb8, 0xa4, 0xa3, 0xaf, 0xa2, 0x7b, 0x6d, 0x62, 0x64, 0x67,
+			0x46, 0x56, 0x7c, 0x81, 0x89, 0x8d, 0xa2, 0xb5, 0xa7, 0x94, 0x89,
+			0x8f, 0x7f, 0x5b, 0x56, 0x60, 0x62, 0x59, 0x66, 0x80, 0x90, 0x95,
+			0x96, 0xa5, 0xaa, 0x9c, 0x8a, 0x87, 0x87, 0x78, 0x6d, 0x6d, 0x76,
+			0x7a, 0x7e, 0x85, 0x8b, 0x81, 0x50, 0x6a, 0x8b, 0x53, 0x5d, 0x72,
+			0x6d, 0x8b, 0x8b, 0x7f, 0x99, 0xb0, 0x9f, 0x88, 0x87, 0x92, 0x81,
+			0x66, 0x68, 0x67, 0x77, 0x7d, 0x68, 0x80, 0x9d, 0x98, 0x94, 0x8e,
+			0x95, 0x96, 0x7e, 0x70, 0x6c, 0x72, 0x69, 0x59, 0x68, 0x7e, 0x81,
+			0x7f, 0x8a, 0x98, 0x97, 0x8f, 0x87, 0x8b, 0x89, 0x7a, 0x74, 0x7b,
+			0x81, 0x7e, 0x7f, 0x87, 0x8e, 0x91, 0x91, 0x92, 0x8f, 0x7f, 0x40,
+			0x38, 0x78, 0x52, 0x3b, 0x72, 0x7c, 0x96, 0xb3, 0x98, 0x9d, 0xc4,
+			0xa8, 0x75, 0x70, 0x6e, 0x67, 0x59, 0x4f, 0x65, 0x86, 0x9a, 0x90,
+			0x94, 0xb5, 0xaf, 0x94, 0x82, 0x71, 0x73, 0x68, 0x50, 0x58, 0x71,
+			0x7e, 0x82, 0x8c, 0x99, 0xa1, 0x97, 0x83, 0x7d, 0x7d, 0x6b, 0x61,
+			0x6c, 0x7c, 0x84, 0x85, 0x8e, 0x97, 0x97, 0x8b, 0x81, 0x85, 0x85,
+			0x7b, 0x79, 0x83, 0x89, 0x83, 0x81, 0x70, 0x41, 0x5c, 0x86, 0x53,
+			0x5d, 0x89, 0x86, 0x9a, 0xa3, 0x8d, 0x92, 0xa8, 0x8a, 0x65, 0x70,
+			0x72, 0x6d, 0x6f, 0x6f, 0x80, 0x96, 0x9d, 0x90, 0x8c, 0x9a, 0x8e,
+			0x78, 0x6f, 0x69, 0x72, 0x75, 0x6f, 0x7b, 0x8b, 0x93, 0x8e, 0x85,
+			0x86, 0x83, 0x6f, 0x65, 0x6d, 0x74, 0x77, 0x7e, 0x8b, 0x97, 0x9a,
+			0x8e, 0x85, 0x89, 0x7f, 0x72, 0x72, 0x7a, 0x82, 0x84, 0x86, 0x8d,
+			0x95, 0x92, 0x8d, 0x84, 0x7e, 0x56, 0x22, 0x5c, 0x79, 0x53, 0x78,
+			0x96, 0x9f, 0xb9, 0xac, 0x85, 0x86, 0x96, 0x6b, 0x4b, 0x5f, 0x6c,
+			0x7d, 0x88, 0x89, 0x9e, 0xb0, 0xa7, 0x86, 0x73, 0x7c, 0x6f, 0x5e,
+			0x5d, 0x67, 0x84, 0x92, 0x90, 0x96, 0x9c, 0x99, 0x84, 0x69, 0x64,
+			0x6c, 0x66, 0x62, 0x75, 0x8d, 0x96, 0x96, 0x93, 0x93, 0x91, 0x7c,
+			0x6d, 0x74, 0x79, 0x76, 0x79, 0x84, 0x91, 0x8f, 0x8b, 0x87, 0x89,
+			0x8f, 0x84, 0x7f, 0x7a, 0x75, 0x4d, 0x2b, 0x6f, 0x8a, 0x67, 0x87,
+			0x9c, 0x9f, 0xb0, 0x99, 0x70, 0x78, 0x8b, 0x66, 0x54, 0x6d, 0x80,
+			0x90, 0x8f, 0x8d, 0x99, 0xa2, 0x97, 0x73, 0x68, 0x79, 0x73, 0x6b,
+			0x6e, 0x78, 0x93, 0x97, 0x8d, 0x8b, 0x8c, 0x89, 0x76, 0x64, 0x67,
+			0x74, 0x7a, 0x7a, 0x81, 0x90, 0x94, 0x8c, 0x7f, 0x7d, 0x7f, 0x75,
+			0x72, 0x7a, 0x86, 0x89, 0x86, 0x89, 0x8d, 0x89, 0x81, 0x7c, 0x81,
+			0x86, 0x81, 0x82, 0x89, 0x8c, 0x84, 0x7c, 0x54, 0x2b, 0x70, 0x85,
+			0x53, 0x7b, 0x9f, 0x9f, 0xaf, 0xa0, 0x7a, 0x87, 0x92, 0x63, 0x50,
+			0x67, 0x7c, 0x83, 0x82, 0x90, 0x9e, 0xa8, 0x9f, 0x78, 0x75, 0x81,
+			0x6e, 0x65, 0x67, 0x79, 0x8f, 0x8e, 0x8c, 0x8e, 0x93, 0x8b, 0x74,
+			0x67, 0x6b, 0x6f, 0x6f, 0x78, 0x87, 0x90, 0x96, 0x90, 0x86, 0x83,
+			0x7a, 0x70, 0x6e, 0x77, 0x7f, 0x81, 0x87, 0x8d, 0x90, 0x8c, 0x84,
+			0x81, 0x80, 0x7e, 0x7c, 0x7c, 0x7f, 0x86, 0x89, 0x89, 0x89, 0x86,
+			0x75, 0x38, 0x3f, 0x8a, 0x6a, 0x5b, 0x92, 0x9b, 0xa6, 0xb1, 0x88,
+			0x7d, 0x96, 0x79, 0x55, 0x56, 0x72, 0x82, 0x7a, 0x8a, 0x99, 0xa6,
+			0xad, 0x86, 0x77, 0x84, 0x75, 0x65, 0x5d, 0x6b, 0x85, 0x87, 0x88,
+			0x93, 0x9d, 0x9c, 0x85, 0x72, 0x74, 0x71, 0x67, 0x63, 0x68, 0x80,
+			0x91, 0x8c, 0x8b, 0x96, 0x91, 0x7d, 0x72, 0x71, 0x74, 0x73, 0x74,
+			0x7e, 0x8f, 0x8f, 0x88, 0x8c, 0x8f, 0x86, 0x7c, 0x7b, 0x7d, 0x7f,
+			0x7b, 0x7d, 0x86, 0x8c, 0x8c, 0x8c, 0x8b, 0x86, 0x6f, 0x32, 0x44,
+			0x81, 0x55, 0x56, 0x90, 0x96, 0xac, 0xad, 0x8c, 0x99, 0xa0, 0x7a,
+			0x58, 0x5c, 0x77, 0x6c, 0x6a, 0x83, 0x93, 0xae, 0xa3, 0x8a, 0x98,
+			0x95, 0x79, 0x66, 0x60, 0x6f, 0x72, 0x6c, 0x78, 0x8c, 0x9c, 0x91,
+			0x85, 0x8d, 0x88, 0x79, 0x68, 0x63, 0x72, 0x6c, 0x6f, 0x87, 0x8c,
+			0x91, 0x93, 0x8d, 0x89, 0x84, 0x75, 0x70, 0x75, 0x73, 0x76, 0x81,
+			0x87, 0x8a, 0x8e, 0x8d, 0x8b, 0x86, 0x7d, 0x79, 0x7a, 0x78, 0x77,
+			0x7c, 0x80, 0x84, 0x86, 0x88, 0x8b, 0x8c, 0x89, 0x80, 0x75, 0x4b,
+			0x48, 0x7d, 0x5c, 0x53, 0x8a, 0x8b, 0x99, 0xa3, 0x92, 0xa4, 0xa5,
+			0x88, 0x70, 0x72, 0x7c, 0x63, 0x5f, 0x73, 0x7c, 0x8e, 0x8a, 0x88,
+			0xa2, 0x9d, 0x8c, 0x86, 0x81, 0x7e, 0x6d, 0x63, 0x6a, 0x74, 0x78,
+			0x74, 0x84, 0x94, 0x90, 0x8e, 0x8d, 0x8c, 0x87, 0x76, 0x6f, 0x74,
+			0x6f, 0x64, 0x74, 0x7e, 0x7d, 0x86, 0x89, 0x8c, 0x8f, 0x88, 0x82,
+			0x81, 0x7b, 0x76, 0x79, 0x79, 0x7b, 0x80, 0x84, 0x86, 0x85, 0x87,
+			0x89, 0x86, 0x80, 0x7f, 0x80, 0x7f, 0x7c, 0x7c, 0x7f, 0x80, 0x7f,
+			0x83, 0x85, 0x87, 0x83, 0x7f, 0x6e, 0x51, 0x75, 0x73, 0x4d, 0x74,
+			0x7b, 0x80, 0x94, 0x85, 0x9b, 0xa8, 0x96, 0x91, 0x8d, 0x8e, 0x7c,
+			0x6d, 0x70, 0x6d, 0x73, 0x6d, 0x72, 0x89, 0x86, 0x8a, 0x95, 0x96,
+			0x98, 0x8c, 0x84, 0x83, 0x7b, 0x6f, 0x66, 0x6e, 0x71, 0x6d, 0x74,
+			0x7d, 0x89, 0x8c, 0x89, 0x90, 0x93, 0x8d, 0x84, 0x80, 0x7a, 0x75,
+			0x73, 0x6d, 0x72, 0x76, 0x77, 0x7b, 0x80, 0x83, 0x87, 0x88, 0x88,
+			0x8a, 0x8a, 0x88, 0x84, 0x80, 0x7f, 0x7c, 0x76, 0x76, 0x78, 0x7a,
+			0x7e, 0x80, 0x87, 0x8b, 0x8b, 0x8a, 0x8a, 0x88, 0x83, 0x7e, 0x7c,
+			0x7a, 0x78, 0x79, 0x77, 0x77, 0x60, 0x70, 0x83, 0x5b, 0x73, 0x7e,
+			0x6f, 0x8a, 0x7a, 0x86, 0x9f, 0x8e, 0x91, 0x96, 0x97, 0x8d, 0x83,
+			0x83, 0x7c, 0x7e, 0x70, 0x6f, 0x7f, 0x74, 0x78, 0x7d, 0x80, 0x88,
+			0x80, 0x83, 0x8a, 0x8a, 0x86, 0x83, 0x8a, 0x85, 0x81, 0x7d, 0x79,
+			0x7a, 0x71, 0x6f, 0x74, 0x74, 0x77, 0x79, 0x81, 0x88, 0x87, 0x88,
+			0x8d, 0x8a, 0x86, 0x81, 0x7e, 0x7d, 0x76, 0x75, 0x79, 0x7a, 0x7a,
+			0x7e, 0x81, 0x83, 0x84, 0x85, 0x85, 0x83, 0x83, 0x84, 0x82, 0x81,
+			0x83, 0x83, 0x82, 0x80, 0x7f, 0x82, 0x7f, 0x7b, 0x7c, 0x7d, 0x7c,
+			0x7a, 0x7e, 0x82, 0x83, 0x83, 0x86, 0x86, 0x85, 0x7d, 0x73, 0x7d,
+			0x74, 0x69, 0x72, 0x6d, 0x71, 0x76, 0x75, 0x80, 0x85, 0x84, 0x8b,
+			0x8f, 0x8d, 0x8e, 0x8b, 0x8a, 0x8c, 0x86, 0x85, 0x88, 0x84, 0x83,
+			0x84, 0x82, 0x81, 0x7e, 0x7b, 0x7a, 0x79, 0x77, 0x78, 0x79, 0x7a,
+			0x7c, 0x7c, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x80, 0x81, 0x81, 0x81,
+			0x82, 0x82, 0x82, 0x81, 0x82, 0x80, 0x7e, 0x7e, 0x7c, 0x7b, 0x7c,
+			0x7c, 0x7e, 0x80, 0x82, 0x82, 0x82, 0x82, 0x80, 0x80, 0x7e, 0x7d,
+			0x7e, 0x7e, 0x7f, 0x82, 0x83, 0x83, 0x84, 0x83, 0x82, 0x82, 0x80,
+			0x7e, 0x7f, 0x7e, 0x7c, 0x7c, 0x7d, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f,
+			0x7e, 0x7e, 0x7d, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x82, 0x81, 0x7f,
+			0x7f, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x80, 0x7f, 0x81, 0x7f, 0x7f,
+			0x84, 0x81, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x80, 0x80, 0x83, 0x82,
+			0x81, 0x82, 0x82, 0x82, 0x81, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80,
+			0x80, 0x80, 0x81, 0x82, 0x81, 0x80, 0x7f, 0x7e, 0x7d, 0x7b, 0x7a,
+			0x7b, 0x7c, 0x7c, 0x7d, 0x7f, 0x81, 0x81, 0x82, 0x81, 0x81, 0x81,
+			0x7f, 0x7d, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x82, 0x82, 0x82, 0x82,
+			0x82, 0x82, 0x80, 0x80, 0x81, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e,
+			0x7e, 0x7c, 0x7d, 0x7e, 0x7d, 0x7f, 0x7f, 0x80, 0x82, 0x82, 0x82,
+			0x81, 0x7f, 0x80, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x80, 0x82,
+			0x83, 0x82, 0x81, 0x80, 0x80, 0x81, 0x7f, 0x7d, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x81, 0x82, 0x82, 0x82, 0x81, 0x81, 0x80, 0x7e, 0x7d, 0x7d, 0x7d,
+			0x7d, 0x7e, 0x7f, 0x81, 0x84, 0x84, 0x84, 0x83, 0x83, 0x80, 0x7d,
+			0x7b, 0x7b, 0x7a, 0x7a, 0x7c, 0x7f, 0x81, 0x82, 0x82, 0x83, 0x83,
+			0x82, 0x80, 0x7f, 0x7d, 0x7d, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x81,
+			0x81, 0x81, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x81, 0x81,
+			0x81, 0x80, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7f, 0x80, 0x81,
+			0x82, 0x82, 0x81, 0x80, 0x7f, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x80,
+			0x82, 0x82, 0x82, 0x82, 0x81, 0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x7f,
+			0x7f, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7e, 0x7e, 0x7e,
+			0x7f, 0x7f, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x7f, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7f, 0x7e, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81,
+			0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x82, 0x81, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x7e, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x80, 0x80, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x7e, 0x7f, 0x80, 0x80, 0x7e, 0x7f, 0x80, 0x81,
+			0x80, 0x80, 0x80, 0x81, 0x80, 0x7e, 0x7f, 0x80, 0x7f, 0x7f, 0x7f,
+			0x80, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, 0x7e, 0x7d, 0x7d, 0x7d,
+			0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x82, 0x82, 0x80, 0x7f,
+			0x7f, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x81, 0x81, 0x81,
+			0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x81, 0x80, 0x80,
+			0x81, 0x81, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x80, 0x81,
+			0x81, 0x82, 0x82, 0x82, 0x80, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x81, 0x81, 0x81, 0x81,
+			0x81, 0x80, 0x7f, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7f, 0x81,
+			0x81, 0x82, 0x83, 0x84, 0x83, 0x81, 0x80, 0x7f, 0x7e, 0x7c, 0x7c,
+			0x7d, 0x7e, 0x7f, 0x7f, 0x81, 0x82, 0x82, 0x81, 0x80, 0x80, 0x7f,
+			0x7e, 0x7d, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x81, 0x81, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x81, 0x81,
+			0x80, 0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x81, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80,
+			0x80, 0x7f, 0x7e, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7e, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x82,
+			0x81, 0x80, 0x80, 0x80, 0x7f, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x80, 0x81, 0x82, 0x81, 0x80, 0x81, 0x81, 0x7f, 0x7e, 0x7e, 0x7f,
+			0x7e, 0x7f, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x81, 0x7d, 0x7c,
+			0x7f, 0x80, 0x81, 0x80, 0x81, 0x80, 0x80, 0x81, 0x81, 0x7f, 0x7f,
+			0x7f, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x81, 0x81, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x81,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x80, 0x80, 0x81, 0x81, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80,
+			0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7f, 0x7e, 0x7d, 0x7d,
+			0x7e, 0x7f, 0x80, 0x80, 0x81, 0x81, 0x82, 0x81, 0x81, 0x80, 0x7f,
+			0x7e, 0x7e, 0x7e, 0x7d, 0x7f, 0x7f, 0x80, 0x81, 0x80, 0x82, 0x81,
+			0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x80, 0x7f, 0x80, 0x81,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x81, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x81, 0x7f, 0x7e, 0x80, 0x7e, 0x7f, 0x80, 0x7e, 0x80, 0x7f, 0x80,
+			0x80, 0x80, 0x7f, 0x80, 0x7e, 0x7f, 0x7f, 0x7e, 0x80, 0x80, 0x7f,
+			0x81, 0x7f, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7e,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7e, 0x7e, 0x7e, 0x81, 0x80, 0x80, 0x80, 0x80, 0x81, 0x7f,
+			0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x80, 0x81, 0x7f, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7e, 0x80, 0x81, 0x7e, 0x82,
+			0x7e, 0x7e, 0x82, 0x7c, 0x80, 0x82, 0x7f, 0x80, 0x80, 0x7d, 0x7f,
+			0x80, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x7f, 0x80, 0x81, 0x7e, 0x7f,
+			0x7f, 0x7d, 0x80, 0x7e, 0x7f, 0x80, 0x7f, 0x81, 0x7f, 0x7f, 0x82,
+			0x80, 0x7f, 0x82, 0x7e, 0x7f, 0x7f, 0x7e, 0x80, 0x7f, 0x7f, 0x80,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x7f, 0x80, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x81, 0x7f, 0x80,
+			0x80, 0x80, 0x81, 0x7e, 0x80, 0x7f, 0x7f, 0x7f, 0x7e, 0x80, 0x7f,
+			0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x7e,
+			0x81, 0x7f, 0x7e, 0x81, 0x7f, 0x7e, 0x81, 0x7e, 0x7f, 0x81, 0x7d,
+			0x80, 0x82, 0x7e, 0x81, 0x81, 0x7c, 0x83, 0x7f, 0x7e, 0x7f, 0x7e,
+			0x80, 0x7e, 0x7f, 0x81, 0x80, 0x81, 0x81, 0x7f, 0x81, 0x7f, 0x7f,
+			0x7e, 0x80, 0x7d, 0x81, 0x7f, 0x7f, 0x83, 0x7d, 0x80, 0x81, 0x7e,
+			0x7f, 0x80, 0x7c, 0x81, 0x7f, 0x7f, 0x81, 0x7f, 0x81, 0x7f, 0x80,
+			0x7f, 0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x80, 0x81, 0x80, 0x7f, 0x81,
+			0x82, 0x7d, 0x80, 0x80, 0x7d, 0x82, 0x7e, 0x7e, 0x81, 0x7f, 0x80,
+			0x80, 0x7f, 0x81, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7e, 0x81,
+			0x7f, 0x7f, 0x81, 0x7e, 0x82, 0x80, 0x80, 0x81, 0x7f, 0x7f, 0x7f,
+			0x80, 0x7e, 0x7f, 0x80, 0x7e, 0x81, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x7f, 0x81, 0x7f, 0x80, 0x7f, 0x7e, 0x81, 0x7e, 0x80, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x81, 0x7f, 0x80, 0x81, 0x7f, 0x80, 0x7f, 0x7e,
+			0x7f, 0x80, 0x7d, 0x81, 0x7f, 0x7f, 0x82, 0x7f, 0x80, 0x82, 0x7e,
+			0x7f, 0x80, 0x7d, 0x80, 0x7f, 0x7e, 0x81, 0x81, 0x7f, 0x82, 0x7f,
+			0x80, 0x81, 0x7d, 0x80, 0x7d, 0x80, 0x80, 0x7e, 0x81, 0x81, 0x7f,
+			0x80, 0x80, 0x7f, 0x81, 0x7d, 0x7e, 0x82, 0x7e, 0x7f, 0x81, 0x7f,
+			0x82, 0x81, 0x7d, 0x82, 0x7f, 0x7f, 0x80, 0x7d, 0x80, 0x82, 0x7e,
+			0x81, 0x80, 0x7f, 0x81, 0x7e, 0x80, 0x7f, 0x7e, 0x81, 0x7e, 0x7f,
+			0x81, 0x7e, 0x80, 0x81, 0x7d, 0x80, 0x7f, 0x7e, 0x80, 0x80, 0x80,
+			0x7f, 0x81, 0x80, 0x80, 0x81, 0x7f, 0x80, 0x81, 0x7f, 0x7f, 0x80,
+			0x7d, 0x80, 0x7e, 0x7e, 0x81, 0x7e, 0x81, 0x7f, 0x80, 0x81, 0x80,
+			0x80, 0x80, 0x7f, 0x7e, 0x81, 0x7e, 0x80, 0x7f, 0x81, 0x80, 0x7f,
+			0x82, 0x7d, 0x80, 0x80, 0x7d, 0x7f, 0x80, 0x7d, 0x81, 0x81, 0x7e,
+			0x82, 0x80, 0x80, 0x81, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x7e, 0x80,
+			0x80, 0x7e, 0x80, 0x81, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x80, 0x80, 0x7e, 0x81, 0x7f, 0x7f, 0x81, 0x7e, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x81, 0x7e, 0x80, 0x81, 0x7f, 0x80,
+			0x80, 0x80, 0x7f, 0x81, 0x7d, 0x7f, 0x80, 0x7e, 0x80, 0x7f, 0x81,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x80, 0x7f,
+			0x80, 0x81, 0x80, 0x80, 0x80, 0x7f, 0x7e, 0x80, 0x7e, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x81, 0x7f, 0x80, 0x80, 0x7f, 0x81,
+			0x7f, 0x7f, 0x80, 0x80, 0x7e, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+		},
+		{ // 6
+			0x80, 0x80, 0x80, 0x7f, 0x7e, 0x80, 0x81, 0x80, 0x7f, 0x7e, 0x7f,
+			0x81, 0x80, 0x7f, 0x7e, 0x7f, 0x81, 0x80, 0x7f, 0x7e, 0x7f, 0x81,
+			0x81, 0x7f, 0x7e, 0x7f, 0x81, 0x81, 0x7f, 0x7e, 0x7e, 0x81, 0x81,
+			0x80, 0x7e, 0x7d, 0x80, 0x82, 0x81, 0x7d, 0x7d, 0x80, 0x83, 0x80,
+			0x7d, 0x7d, 0x81, 0x82, 0x7f, 0x7d, 0x7f, 0x82, 0x81, 0x7e, 0x7e,
+			0x80, 0x82, 0x80, 0x7d, 0x7e, 0x82, 0x82, 0x7f, 0x7c, 0x7f, 0x82,
+			0x81, 0x7e, 0x7d, 0x80, 0x82, 0x80, 0x7e, 0x7e, 0x80, 0x81, 0x80,
+			0x7f, 0x7f, 0x7f, 0x80, 0x81, 0x7f, 0x7e, 0x80, 0x81, 0x80, 0x7e,
+			0x7e, 0x80, 0x81, 0x80, 0x7e, 0x7e, 0x81, 0x81, 0x7f, 0x7d, 0x7e,
+			0x81, 0x82, 0x80, 0x7c, 0x7d, 0x82, 0x83, 0x7e, 0x7c, 0x7f, 0x83,
+			0x81, 0x7d, 0x7e, 0x80, 0x81, 0x80, 0x7f, 0x7f, 0x80, 0x81, 0x80,
+			0x7f, 0x7e, 0x80, 0x82, 0x7f, 0x7d, 0x7f, 0x81, 0x80, 0x80, 0x7e,
+			0x7e, 0x80, 0x82, 0x7f, 0x7e, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80,
+			0x7e, 0x7f, 0x82, 0x81, 0x7c, 0x7e, 0x82, 0x80, 0x7d, 0x80, 0x81,
+			0x7d, 0x7f, 0x83, 0x80, 0x7d, 0x7d, 0x82, 0x84, 0x7e, 0x7b, 0x80,
+			0x82, 0x80, 0x7e, 0x80, 0x7f, 0x7e, 0x80, 0x83, 0x81, 0x7a, 0x7d,
+			0x85, 0x82, 0x7c, 0x7c, 0x81, 0x82, 0x7e, 0x80, 0x80, 0x7d, 0x7e,
+			0x83, 0x83, 0x7a, 0x7b, 0x84, 0x85, 0x7c, 0x7b, 0x81, 0x82, 0x80,
+			0x7e, 0x7f, 0x80, 0x7e, 0x82, 0x83, 0x7b, 0x7c, 0x84, 0x82, 0x7d,
+			0x7e, 0x7e, 0x83, 0x81, 0x7e, 0x7d, 0x7f, 0x84, 0x82, 0x7c, 0x79,
+			0x82, 0x86, 0x7f, 0x7a, 0x7c, 0x85, 0x85, 0x7c, 0x7c, 0x7e, 0x81,
+			0x84, 0x81, 0x7b, 0x79, 0x84, 0x86, 0x7d, 0x7b, 0x7d, 0x81, 0x84,
+			0x81, 0x79, 0x7b, 0x87, 0x84, 0x78, 0x7e, 0x83, 0x81, 0x7f, 0x80,
+			0x7d, 0x7d, 0x87, 0x84, 0x77, 0x78, 0x88, 0x87, 0x7a, 0x78, 0x82,
+			0x87, 0x7f, 0x7c, 0x7d, 0x83, 0x82, 0x7e, 0x7e, 0x7f, 0x80, 0x82,
+			0x7f, 0x7b, 0x7f, 0x86, 0x80, 0x76, 0x7f, 0x89, 0x83, 0x77, 0x79,
+			0x85, 0x85, 0x7e, 0x7c, 0x80, 0x80, 0x80, 0x82, 0x80, 0x7a, 0x80,
+			0x84, 0x7e, 0x7b, 0x80, 0x89, 0x7a, 0x75, 0x88, 0x86, 0x7b, 0x7c,
+			0x7e, 0x84, 0x82, 0x7e, 0x80, 0x7c, 0x7e, 0x85, 0x83, 0x7a, 0x7d,
+			0x81, 0x83, 0x81, 0x7c, 0x7e, 0x7f, 0x80, 0x83, 0x7f, 0x7b, 0x82,
+			0x81, 0x7e, 0x7d, 0x82, 0x83, 0x7c, 0x7e, 0x7e, 0x81, 0x85, 0x7f,
+			0x78, 0x7e, 0x84, 0x84, 0x7f, 0x79, 0x7c, 0x87, 0x84, 0x7c, 0x7d,
+			0x7c, 0x81, 0x86, 0x81, 0x79, 0x7c, 0x84, 0x83, 0x81, 0x7a, 0x7c,
+			0x84, 0x83, 0x7c, 0x80, 0x7d, 0x7d, 0x85, 0x84, 0x7e, 0x76, 0x7e,
+			0x86, 0x87, 0x7d, 0x75, 0x81, 0x85, 0x83, 0x7f, 0x7d, 0x7b, 0x80,
+			0x84, 0x7f, 0x80, 0x7f, 0x7d, 0x80, 0x83, 0x7e, 0x80, 0x81, 0x7c,
+			0x7b, 0x86, 0x85, 0x7a, 0x7d, 0x7b, 0x81, 0x8a, 0x7d, 0x76, 0x7f,
+			0x87, 0x84, 0x7a, 0x7a, 0x82, 0x88, 0x7e, 0x73, 0x85, 0x88, 0x7d,
+			0x7a, 0x7c, 0x85, 0x82, 0x7e, 0x7c, 0x7e, 0x83, 0x7f, 0x83, 0x7b,
+			0x7a, 0x86, 0x81, 0x7d, 0x79, 0x83, 0x86, 0x7b, 0x7c, 0x81, 0x80,
+			0x7c, 0x84, 0x83, 0x7f, 0x78, 0x79, 0x8d, 0x86, 0x77, 0x78, 0x7f,
+			0x8b, 0x80, 0x78, 0x7f, 0x7e, 0x84, 0x87, 0x7c, 0x71, 0x84, 0x8b,
+			0x80, 0x79, 0x76, 0x87, 0x86, 0x7e, 0x7b, 0x7e, 0x83, 0x7f, 0x82,
+			0x80, 0x77, 0x82, 0x87, 0x7e, 0x7d, 0x7b, 0x84, 0x80, 0x7e, 0x84,
+			0x76, 0x82, 0x88, 0x79, 0x80, 0x80, 0x7e, 0x83, 0x7c, 0x7f, 0x86,
+			0x7f, 0x76, 0x7f, 0x86, 0x82, 0x85, 0x79, 0x77, 0x83, 0x85, 0x84,
+			0x7e, 0x79, 0x7c, 0x81, 0x87, 0x82, 0x77, 0x83, 0x7f, 0x79, 0x86,
+			0x85, 0x7a, 0x7a, 0x83, 0x83, 0x7e, 0x80, 0x7f, 0x7b, 0x83, 0x83,
+			0x7b, 0x7c, 0x80, 0x86, 0x85, 0x78, 0x78, 0x80, 0x87, 0x81, 0x7f,
+			0x85, 0x76, 0x78, 0x89, 0x85, 0x80, 0x7d, 0x74, 0x84, 0x8e, 0x79,
+			0x7a, 0x80, 0x7f, 0x7d, 0x8c, 0x7f, 0x71, 0x87, 0x7a, 0x80, 0x8a,
+			0x7e, 0x7b, 0x77, 0x85, 0x83, 0x7f, 0x7d, 0x7a, 0x8a, 0x81, 0x73,
+			0x82, 0x85, 0x80, 0x7d, 0x7e, 0x81, 0x80, 0x81, 0x7d, 0x83, 0x80,
+			0x79, 0x86, 0x7e, 0x7a, 0x89, 0x7e, 0x7a, 0x81, 0x7f, 0x7f, 0x81,
+			0x86, 0x79, 0x78, 0x86, 0x84, 0x81, 0x7d, 0x75, 0x84, 0x8e, 0x75,
+			0x79, 0x82, 0x86, 0x81, 0x79, 0x81, 0x7a, 0x85, 0x85, 0x7b, 0x7d,
+			0x7d, 0x86, 0x7f, 0x7c, 0x83, 0x78, 0x7f, 0x8f, 0x7b, 0x6f, 0x84,
+			0x8d, 0x7b, 0x79, 0x88, 0x7a, 0x79, 0x84, 0x8c, 0x7a, 0x73, 0x87,
+			0x7b, 0x83, 0x8a, 0x7b, 0x75, 0x7c, 0x8c, 0x80, 0x7a, 0x86, 0x7d,
+			0x75, 0x84, 0x8d, 0x7c, 0x75, 0x80, 0x85, 0x81, 0x80, 0x81, 0x7b,
+			0x7a, 0x87, 0x83, 0x78, 0x81, 0x86, 0x76, 0x80, 0x8a, 0x75, 0x82,
+			0x80, 0x7a, 0x8a, 0x80, 0x79, 0x7b, 0x84, 0x83, 0x7b, 0x87, 0x7e,
+			0x72, 0x87, 0x86, 0x7f, 0x7b, 0x7e, 0x80, 0x82, 0x84, 0x7a, 0x7e,
+			0x85, 0x7f, 0x7b, 0x87, 0x7a, 0x7b, 0x86, 0x7f, 0x83, 0x82, 0x78,
+			0x79, 0x89, 0x83, 0x7b, 0x7d, 0x83, 0x83, 0x74, 0x81, 0x8a, 0x7f,
+			0x78, 0x7c, 0x85, 0x84, 0x7a, 0x7e, 0x84, 0x7c, 0x82, 0x7a, 0x7c,
+			0x8a, 0x86, 0x74, 0x75, 0x8e, 0x83, 0x79, 0x7b, 0x83, 0x84, 0x7e,
+			0x7e, 0x7f, 0x78, 0x87, 0x89, 0x74, 0x82, 0x7b, 0x7f, 0x95, 0x77,
+			0x69, 0x8d, 0x85, 0x7e, 0x81, 0x72, 0x8a, 0x82, 0x7c, 0x82, 0x76,
+			0x85, 0x84, 0x84, 0x74, 0x7f, 0x83, 0x84, 0x82, 0x72, 0x8b, 0x71,
+			0x8d, 0x91, 0x61, 0x7f, 0x8e, 0x83, 0x7f, 0x77, 0x7a, 0x87, 0x81,
+			0x83, 0x84, 0x6f, 0x79, 0x95, 0x88, 0x67, 0x7b, 0x96, 0x7c, 0x75,
+			0x85, 0x7d, 0x81, 0x88, 0x77, 0x7c, 0x89, 0x77, 0x83, 0x8d, 0x6e,
+			0x7c, 0x89, 0x7f, 0x84, 0x7d, 0x7e, 0x7b, 0x7b, 0x8a, 0x8a, 0x80,
+			0x61, 0x80, 0x9c, 0x7b, 0x7d, 0x78, 0x7f, 0x7f, 0x7c, 0x95, 0x84,
+			0x61, 0x75, 0x99, 0x8d, 0x71, 0x73, 0x8a, 0x79, 0x79, 0x9f, 0x7e,
+			0x5a, 0x85, 0x9d, 0x7b, 0x72, 0x82, 0x84, 0x7d, 0x77, 0x8a, 0x8f,
+			0x69, 0x76, 0x94, 0x79, 0x76, 0x94, 0x82, 0x65, 0x7f, 0x96, 0x82,
+			0x74, 0x7a, 0x81, 0x7f, 0x8d, 0x87, 0x6a, 0x74, 0x90, 0x94, 0x76,
+			0x6e, 0x7b, 0x8a, 0x90, 0x7c, 0x6b, 0x7d, 0x92, 0x87, 0x6d, 0x7d,
+			0x8f, 0x7a, 0x7b, 0x83, 0x7d, 0x7c, 0x8a, 0x7c, 0x78, 0x84, 0x7e,
+			0x80, 0x85, 0x7d, 0x74, 0x84, 0x94, 0x78, 0x65, 0x84, 0x98, 0x85,
+			0x67, 0x7a, 0x8f, 0x7f, 0x81, 0x83, 0x74, 0x75, 0x91, 0x8d, 0x72,
+			0x80, 0x7b, 0x78, 0x91, 0x83, 0x76, 0x7f, 0x79, 0x85, 0x87, 0x80,
+			0x76, 0x73, 0x8a, 0x88, 0x86, 0x76, 0x75, 0x82, 0x83, 0x88, 0x81,
+			0x78, 0x7a, 0x84, 0x83, 0x7d, 0x7d, 0x82, 0x85, 0x7d, 0x76, 0x82,
+			0x85, 0x81, 0x80, 0x7a, 0x81, 0x7f, 0x82, 0x85, 0x7d, 0x78, 0x83,
+			0x85, 0x7a, 0x7f, 0x83, 0x7e, 0x81, 0x83, 0x7b, 0x7e, 0x86, 0x84,
+			0x75, 0x7b, 0x88, 0x82, 0x7b, 0x78, 0x85, 0x85, 0x7d, 0x7d, 0x7f,
+			0x83, 0x7f, 0x7d, 0x7d, 0x84, 0x7c, 0x82, 0x84, 0x77, 0x7f, 0x81,
+			0x86, 0x7b, 0x7b, 0x85, 0x7d, 0x82, 0x83, 0x7b, 0x7d, 0x7f, 0x89,
+			0x7e, 0x7a, 0x83, 0x7f, 0x7d, 0x80, 0x84, 0x7c, 0x7d, 0x83, 0x80,
+			0x7a, 0x80, 0x82, 0x81, 0x89, 0x77, 0x73, 0x89, 0x88, 0x7c, 0x7c,
+			0x7d, 0x7e, 0x83, 0x82, 0x81, 0x7a, 0x7d, 0x8a, 0x81, 0x73, 0x81,
+			0x8b, 0x7d, 0x79, 0x7f, 0x84, 0x7d, 0x7e, 0x86, 0x79, 0x7a, 0x87,
+			0x86, 0x7b, 0x79, 0x84, 0x81, 0x7c, 0x87, 0x81, 0x73, 0x81, 0x89,
+			0x7a, 0x7c, 0x87, 0x7c, 0x7a, 0x85, 0x82, 0x79, 0x82, 0x86, 0x77,
+			0x7f, 0x87, 0x7c, 0x7e, 0x7f, 0x80, 0x7f, 0x7d, 0x85, 0x80, 0x7b,
+			0x7d, 0x7f, 0x85, 0x80, 0x7e, 0x81, 0x7d, 0x82, 0x7f, 0x80, 0x81,
+			0x79, 0x81, 0x85, 0x81, 0x7c, 0x7a, 0x86, 0x84, 0x77, 0x82, 0x82,
+			0x79, 0x84, 0x84, 0x7d, 0x7c, 0x85, 0x81, 0x75, 0x83, 0x8a, 0x7c,
+			0x7a, 0x82, 0x7e, 0x7e, 0x84, 0x7f, 0x7b, 0x81, 0x84, 0x7c, 0x7b,
+			0x83, 0x84, 0x7e, 0x7a, 0x80, 0x83, 0x82, 0x7d, 0x7d, 0x81, 0x82,
+			0x80, 0x7c, 0x81, 0x83, 0x80, 0x81, 0x82, 0x7d, 0x81, 0x89, 0x80,
+			0x7b, 0x83, 0x85, 0x7c, 0x7d, 0x81, 0x7f, 0x7f, 0x7d, 0x7c, 0x7d,
+			0x7d, 0x7c, 0x72, 0x6d, 0x76, 0x7a, 0x75, 0x73, 0x7a, 0x85, 0x86,
+			0x84, 0x89, 0x8e, 0x8f, 0x8c, 0x88, 0x85, 0x84, 0x82, 0x7f, 0x7b,
+			0x79, 0x7d, 0x81, 0x7e, 0x7f, 0x86, 0x89, 0x88, 0x86, 0x88, 0x8d,
+			0x8b, 0x85, 0x80, 0x80, 0x85, 0x80, 0x7b, 0x7d, 0x81, 0x84, 0x82,
+			0x73, 0x42, 0x46, 0x89, 0x71, 0x39, 0x52, 0x82, 0x92, 0x77, 0x75,
+			0xa1, 0xad, 0xa1, 0xa1, 0x9a, 0x91, 0x97, 0x96, 0x7a, 0x64, 0x71,
+			0x82, 0x72, 0x59, 0x6a, 0x8c, 0x89, 0x7c, 0x82, 0x93, 0x99, 0x8c,
+			0x85, 0x82, 0x7b, 0x7b, 0x75, 0x68, 0x6a, 0x7a, 0x7f, 0x77, 0x7d,
+			0x92, 0x98, 0x8d, 0x8f, 0x99, 0x96, 0x8c, 0x87, 0x88, 0x86, 0x83,
+			0x82, 0x7a, 0x61, 0x32, 0x48, 0x81, 0x4d, 0x2e, 0x61, 0x89, 0x91,
+			0x76, 0x8e, 0xbe, 0xb2, 0xac, 0xa9, 0x96, 0x98, 0x92, 0x7c, 0x5e,
+			0x57, 0x73, 0x6f, 0x53, 0x5e, 0x82, 0x96, 0x88, 0x89, 0xa1, 0xa8,
+			0x9f, 0x91, 0x8a, 0x86, 0x7a, 0x6a, 0x56, 0x53, 0x63, 0x65, 0x63,
+			0x75, 0x92, 0x9b, 0x95, 0x9c, 0xa9, 0xa4, 0x95, 0x8d, 0x8c, 0x87,
+			0x7d, 0x76, 0x73, 0x77, 0x7c, 0x76, 0x6f, 0x44, 0x43, 0x8b, 0x69,
+			0x39, 0x64, 0x8b, 0x96, 0x76, 0x80, 0xb6, 0xaa, 0x9d, 0x9e, 0x8b,
+			0x95, 0x92, 0x74, 0x65, 0x62, 0x7e, 0x78, 0x55, 0x70, 0x8e, 0x92,
+			0x88, 0x84, 0x9e, 0xa2, 0x8f, 0x86, 0x81, 0x85, 0x7c, 0x68, 0x61,
+			0x64, 0x6e, 0x65, 0x5f, 0x77, 0x8b, 0x8c, 0x8b, 0x9b, 0xa5, 0x9d,
+			0x91, 0x8f, 0x91, 0x8a, 0x7e, 0x78, 0x7c, 0x82, 0x7d, 0x79, 0x80,
+			0x84, 0x7d, 0x48, 0x47, 0x89, 0x60, 0x3b, 0x61, 0x7e, 0x8c, 0x74,
+			0x82, 0xb1, 0xa9, 0xa1, 0xa1, 0x8f, 0x9c, 0x97, 0x6e, 0x66, 0x6d,
+			0x7b, 0x69, 0x53, 0x78, 0x8c, 0x85, 0x83, 0x8b, 0xa5, 0xa1, 0x8b,
+			0x8a, 0x8c, 0x8c, 0x79, 0x61, 0x68, 0x73, 0x68, 0x5a, 0x63, 0x79,
+			0x82, 0x7d, 0x84, 0x9b, 0xa1, 0x95, 0x90, 0x98, 0x95, 0x85, 0x80,
+			0x82, 0x81, 0x7b, 0x7b, 0x83, 0x85, 0x85, 0x84, 0x83, 0x75, 0x44,
+			0x62, 0x7e, 0x42, 0x4d, 0x6d, 0x73, 0x7f, 0x79, 0x8f, 0xb0, 0xa4,
+			0x9e, 0xa2, 0x9c, 0xa0, 0x84, 0x74, 0x77, 0x70, 0x71, 0x5c, 0x64,
+			0x80, 0x78, 0x7c, 0x88, 0x94, 0x9f, 0x92, 0x8e, 0x97, 0x92, 0x83,
+			0x73, 0x71, 0x76, 0x67, 0x61, 0x64, 0x6a, 0x79, 0x73, 0x74, 0x8e,
+			0x98, 0x8e, 0x91, 0x9d, 0x98, 0x8e, 0x87, 0x86, 0x84, 0x80, 0x79,
+			0x7c, 0x81, 0x80, 0x83, 0x84, 0x8b, 0x85, 0x87, 0x61, 0x4a, 0x88,
+			0x5e, 0x37, 0x70, 0x67, 0x6a, 0x80, 0x75, 0x95, 0xaa, 0x9c, 0x9f,
+			0xa2, 0xb1, 0x96, 0x7e, 0x90, 0x78, 0x75, 0x6a, 0x58, 0x74, 0x6f,
+			0x66, 0x79, 0x83, 0x8e, 0x8d, 0x8e, 0x9c, 0x97, 0x93, 0x86, 0x81,
+			0x87, 0x71, 0x6c, 0x6d, 0x6c, 0x6b, 0x68, 0x72, 0x77, 0x7e, 0x83,
+			0x8c, 0x93, 0x91, 0x94, 0x95, 0x90, 0x88, 0x88, 0x85, 0x7f, 0x7a,
+			0x7b, 0x7e, 0x7d, 0x80, 0x85, 0x89, 0x8d, 0x88, 0x8e, 0x62, 0x58,
+			0x95, 0x49, 0x46, 0x79, 0x4b, 0x72, 0x71, 0x61, 0xa0, 0x95, 0x92,
+			0xa3, 0xa9, 0xb4, 0x93, 0x9d, 0x96, 0x84, 0x88, 0x63, 0x72, 0x75,
+			0x58, 0x6a, 0x6c, 0x74, 0x7a, 0x79, 0x8e, 0x90, 0x98, 0x91, 0x95,
+			0x9f, 0x87, 0x85, 0x7c, 0x7a, 0x74, 0x63, 0x6a, 0x6c, 0x67, 0x6e,
+			0x7d, 0x81, 0x86, 0x8e, 0x97, 0x96, 0x91, 0x93, 0x93, 0x89, 0x81,
+			0x82, 0x7e, 0x77, 0x75, 0x7b, 0x7b, 0x7f, 0x80, 0x89, 0x8a, 0x96,
+			0x83, 0x48, 0x92, 0x73, 0x3a, 0x78, 0x59, 0x65, 0x69, 0x61, 0x84,
+			0x8c, 0x7f, 0x95, 0xae, 0x96, 0xa0, 0xa1, 0x9e, 0x99, 0x86, 0x88,
+			0x86, 0x77, 0x6d, 0x73, 0x71, 0x6f, 0x6f, 0x78, 0x77, 0x76, 0x82,
+			0x86, 0x85, 0x86, 0x8d, 0x8d, 0x89, 0x84, 0x86, 0x84, 0x7d, 0x7a,
+			0x7b, 0x79, 0x77, 0x7a, 0x7c, 0x7e, 0x7e, 0x84, 0x85, 0x84, 0x85,
+			0x87, 0x86, 0x82, 0x82, 0x82, 0x7f, 0x7e, 0x7e, 0x7c, 0x7d, 0x7d,
+			0x80, 0x81, 0x80, 0x88, 0x88, 0x8d, 0x7f, 0x74, 0x83, 0x6d, 0x66,
+			0x6e, 0x67, 0x67, 0x65, 0x6a, 0x74, 0x73, 0x7c, 0x8a, 0x8a, 0x90,
+			0x97, 0x9b, 0x9a, 0x95, 0x98, 0x95, 0x8a, 0x88, 0x84, 0x7f, 0x7a,
+			0x75, 0x78, 0x78, 0x74, 0x78, 0x7e, 0x7f, 0x81, 0x86, 0x86, 0x86,
+			0x85, 0x85, 0x82, 0x7e, 0x7e, 0x7a, 0x76, 0x76, 0x76, 0x76, 0x77,
+			0x79, 0x7e, 0x7f, 0x81, 0x85, 0x86, 0x87, 0x88, 0x88, 0x88, 0x83,
+			0x83, 0x82, 0x7d, 0x7b, 0x7c, 0x7b, 0x7a, 0x7a, 0x7d, 0x7e, 0x7e,
+			0x82, 0x7e, 0x82, 0x82, 0x7f, 0x82, 0x7a, 0x7e, 0x7a, 0x73, 0x77,
+			0x77, 0x74, 0x74, 0x77, 0x7a, 0x7b, 0x7b, 0x81, 0x83, 0x84, 0x89,
+			0x8b, 0x8a, 0x8c, 0x8c, 0x8c, 0x89, 0x86, 0x87, 0x84, 0x81, 0x7f,
+			0x7d, 0x7d, 0x7d, 0x7b, 0x7a, 0x7d, 0x7f, 0x7f, 0x7e, 0x80, 0x82,
+			0x81, 0x80, 0x81, 0x82, 0x7f, 0x80, 0x7e, 0x7c, 0x81, 0x7d, 0x7c,
+			0x80, 0x7d, 0x7e, 0x81, 0x7c, 0x80, 0x83, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7c, 0x7d, 0x7e, 0x7f, 0x80,
+			0x7f, 0x7f, 0x82, 0x81, 0x7f, 0x81, 0x7f, 0x7e, 0x81, 0x7f, 0x7f,
+			0x80, 0x7f, 0x82, 0x80, 0x7d, 0x81, 0x80, 0x7e, 0x7d, 0x7d, 0x80,
+			0x7e, 0x7d, 0x80, 0x7e, 0x80, 0x81, 0x7f, 0x80, 0x81, 0x82, 0x83,
+			0x80, 0x82, 0x83, 0x81, 0x83, 0x81, 0x82, 0x82, 0x81, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x80, 0x7e, 0x7e, 0x82, 0x7e, 0x7b, 0x7f, 0x7e,
+			0x7d, 0x7e, 0x7c, 0x80, 0x80, 0x7f, 0x81, 0x80, 0x83, 0x82, 0x80,
+			0x81, 0x81, 0x7f, 0x80, 0x7f, 0x7c, 0x81, 0x7b, 0x7b, 0x7f, 0x7a,
+			0x7f, 0x7c, 0x7c, 0x83, 0x7b, 0x81, 0x83, 0x7d, 0x82, 0x81, 0x7e,
+			0x81, 0x7c, 0x81, 0x7d, 0x7b, 0x82, 0x7b, 0x80, 0x7f, 0x81, 0x83,
+			0x81, 0x84, 0x82, 0x81, 0x82, 0x7f, 0x7f, 0x81, 0x7a, 0x7c, 0x7e,
+			0x7a, 0x7e, 0x7d, 0x80, 0x81, 0x7e, 0x85, 0x83, 0x80, 0x84, 0x82,
+			0x81, 0x83, 0x7b, 0x81, 0x7c, 0x7a, 0x80, 0x7a, 0x80, 0x7f, 0x7c,
+			0x85, 0x80, 0x81, 0x86, 0x7d, 0x84, 0x82, 0x7a, 0x82, 0x79, 0x7c,
+			0x80, 0x77, 0x81, 0x7d, 0x7e, 0x84, 0x7f, 0x84, 0x83, 0x80, 0x86,
+			0x7c, 0x80, 0x82, 0x78, 0x82, 0x7a, 0x7b, 0x80, 0x7b, 0x7e, 0x82,
+			0x7d, 0x84, 0x81, 0x80, 0x87, 0x7e, 0x83, 0x84, 0x7c, 0x81, 0x81,
+			0x7c, 0x80, 0x7d, 0x7b, 0x7f, 0x7d, 0x7c, 0x7e, 0x80, 0x80, 0x80,
+			0x81, 0x81, 0x7f, 0x82, 0x81, 0x7f, 0x80, 0x81, 0x80, 0x7e, 0x7f,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7e, 0x81, 0x7e, 0x80, 0x7e, 0x7e, 0x81,
+			0x7d, 0x80, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x81,
+			0x7f, 0x81, 0x80, 0x7e, 0x83, 0x7f, 0x7d, 0x81, 0x7e, 0x7d, 0x7f,
+			0x7e, 0x81, 0x7f, 0x82, 0x80, 0x80, 0x84, 0x7c, 0x82, 0x82, 0x7c,
+			0x81, 0x7e, 0x7e, 0x7f, 0x7d, 0x7e, 0x7f, 0x7e, 0x81, 0x7e, 0x80,
+			0x82, 0x80, 0x80, 0x82, 0x7f, 0x80, 0x82, 0x7f, 0x7f, 0x81, 0x7f,
+			0x80, 0x7f, 0x7f, 0x80, 0x7e, 0x81, 0x7f, 0x7d, 0x81, 0x7e, 0x7e,
+			0x81, 0x7d, 0x81, 0x7f, 0x7f, 0x7f, 0x81, 0x7e, 0x81, 0x7f, 0x7f,
+			0x81, 0x7a, 0x83, 0x7f, 0x7d, 0x81, 0x81, 0x80, 0x80, 0x82, 0x80,
+			0x82, 0x7e, 0x81, 0x7f, 0x7e, 0x7f, 0x7c, 0x7f, 0x7d, 0x7e, 0x7e,
+			0x7f, 0x80, 0x80, 0x83, 0x83, 0x81, 0x84, 0x83, 0x80, 0x7f, 0x7f,
+			0x7e, 0x7d, 0x7d, 0x7b, 0x7e, 0x7c, 0x7f, 0x7f, 0x7f, 0x83, 0x82,
+			0x81, 0x84, 0x81, 0x81, 0x81, 0x7f, 0x81, 0x7f, 0x7e, 0x80, 0x7d,
+			0x7f, 0x81, 0x7e, 0x7f, 0x81, 0x7f, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e,
+			0x7d, 0x7e, 0x7f, 0x80, 0x82, 0x81, 0x81, 0x83, 0x82, 0x84, 0x80,
+			0x80, 0x82, 0x7d, 0x7e, 0x7d, 0x7d, 0x7c, 0x7e, 0x7f, 0x7f, 0x7f,
+			0x81, 0x80, 0x83, 0x82, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x7f, 0x7f,
+			0x80, 0x7d, 0x7e, 0x7f, 0x7e, 0x81, 0x7e, 0x7f, 0x81, 0x80, 0x7f,
+			0x81, 0x80, 0x80, 0x81, 0x7e, 0x81, 0x7f, 0x80, 0x81, 0x7f, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7d, 0x7f,
+			0x7f, 0x7e, 0x80, 0x7f, 0x80, 0x81, 0x80, 0x7f, 0x82, 0x81, 0x80,
+			0x80, 0x80, 0x81, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7e, 0x7f, 0x7e,
+			0x80, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x7f, 0x80, 0x80, 0x7e, 0x7d,
+			0x7e, 0x7e, 0x7e, 0x7f, 0x7e, 0x81, 0x81, 0x81, 0x82, 0x80, 0x81,
+			0x81, 0x7e, 0x7f, 0x7f, 0x7d, 0x7f, 0x7e, 0x7f, 0x81, 0x7f, 0x82,
+			0x82, 0x82, 0x82, 0x81, 0x80, 0x81, 0x7f, 0x7e, 0x7d, 0x7c, 0x7d,
+			0x7c, 0x7c, 0x7e, 0x7f, 0x7e, 0x81, 0x82, 0x82, 0x82, 0x82, 0x81,
+			0x81, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x80, 0x81,
+			0x80, 0x81, 0x82, 0x80, 0x81, 0x80, 0x7e, 0x7f, 0x7f, 0x7e, 0x7c,
+			0x7d, 0x7f, 0x7e, 0x7f, 0x7f, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82,
+			0x81, 0x80, 0x80, 0x7f, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7f,
+			0x7f, 0x80, 0x81, 0x81, 0x82, 0x81, 0x81, 0x81, 0x80, 0x7f, 0x7f,
+			0x7e, 0x7e, 0x7e, 0x7d, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x81,
+			0x81, 0x81, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7f, 0x7e,
+			0x7f, 0x7f, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80,
+			0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x7f, 0x7f,
+			0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7e,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81,
+			0x81, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7e, 0x7f, 0x7e, 0x7e, 0x7e,
+			0x7f, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f,
+			0x7e, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x7e, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x81, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x81, 0x7d, 0x81, 0x80,
+			0x7f, 0x80, 0x7f, 0x7e, 0x81, 0x7e, 0x7f, 0x81, 0x7e, 0x81, 0x80,
+			0x7e, 0x81, 0x7f, 0x7e, 0x82, 0x7e, 0x80, 0x81, 0x7d, 0x81, 0x80,
+			0x7d, 0x81, 0x7f, 0x7e, 0x83, 0x7d, 0x80, 0x81, 0x7c, 0x81, 0x81,
+			0x7d, 0x81, 0x80, 0x7d, 0x82, 0x7e, 0x7f, 0x82, 0x7e, 0x81, 0x81,
+			0x7e, 0x81, 0x80, 0x7e, 0x82, 0x7e, 0x7f, 0x80, 0x7e, 0x7f, 0x80,
+			0x7e, 0x80, 0x80, 0x7e, 0x81, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x81,
+			0x7e, 0x80, 0x80, 0x7f, 0x81, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7e, 0x82, 0x7e,
+			0x80, 0x81, 0x7d, 0x81, 0x80, 0x7f, 0x81, 0x7f, 0x7e, 0x82, 0x7e,
+			0x80, 0x80, 0x7e, 0x80, 0x7f, 0x7e, 0x81, 0x7f, 0x7f, 0x81, 0x7e,
+			0x81, 0x7f, 0x7f, 0x80, 0x80, 0x7e, 0x81, 0x7e, 0x80, 0x81, 0x7e,
+			0x81, 0x7f, 0x7f, 0x80, 0x80, 0x7e, 0x82, 0x7d, 0x80, 0x80, 0x7f,
+			0x80, 0x80, 0x7f, 0x7f, 0x82, 0x7c, 0x82, 0x7d, 0x80, 0x80, 0x7e,
+			0x80, 0x7f, 0x80, 0x7f, 0x81, 0x7e, 0x82, 0x7e, 0x81, 0x7f, 0x7f,
+			0x7f, 0x81, 0x7f, 0x7f, 0x81, 0x7d, 0x82, 0x7e, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x7f, 0x80, 0x7f, 0x81,
+			0x7f, 0x7f, 0x81, 0x7e, 0x81, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x81,
+			0x7f, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x7f, 0x80, 0x7e, 0x81,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x81,
+			0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7e, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x81, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7e, 0x80, 0x7f,
+			0x7f, 0x81, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7e, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80,
+			0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x7e, 0x80, 0x80, 0x7e, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f,
+			0x80, 0x7f, 0x80,
+		},
+		{ // 7
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x7f, 0x7f,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x7f, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x81, 0x7e, 0x81, 0x7f, 0x7f,
+			0x80, 0x7e, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7e, 0x80,
+			0x7f, 0x7f, 0x81, 0x7e, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80,
+			0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x7f, 0x81, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7e, 0x81, 0x7f, 0x7f,
+			0x81, 0x7e, 0x80, 0x80, 0x7e, 0x81, 0x7f, 0x7f, 0x82, 0x7d, 0x80,
+			0x81, 0x7d, 0x82, 0x7e, 0x7f, 0x81, 0x7e, 0x80, 0x7f, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7e, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80,
+			0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x7e, 0x81, 0x7e, 0x80, 0x80, 0x7e, 0x81, 0x7e,
+			0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7e,
+			0x81, 0x7f, 0x7f, 0x81, 0x7e, 0x81, 0x7f, 0x7f, 0x80, 0x7f, 0x7f,
+			0x80, 0x7f, 0x7f, 0x81, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80,
+			0x7e, 0x81, 0x7f, 0x7f, 0x81, 0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7e, 0x81, 0x7f, 0x7f, 0x81, 0x7f,
+			0x7f, 0x81, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x81, 0x7e, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x80, 0x7e, 0x81, 0x7f, 0x7f, 0x81, 0x7e, 0x80, 0x80, 0x7e, 0x81,
+			0x80, 0x7e, 0x82, 0x7e, 0x80, 0x80, 0x7e, 0x81, 0x7f, 0x7f, 0x81,
+			0x7e, 0x80, 0x81, 0x7e, 0x81, 0x7f, 0x7e, 0x81, 0x7e, 0x81, 0x7f,
+			0x7e, 0x81, 0x7e, 0x7f, 0x81, 0x7e, 0x80, 0x80, 0x7e, 0x81, 0x7f,
+			0x7f, 0x81, 0x7e, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x81, 0x7e, 0x80, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x7e,
+			0x81, 0x7e, 0x81, 0x7f, 0x7f, 0x81, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x81, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x81,
+			0x7e, 0x80, 0x80, 0x7e, 0x81, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x80, 0x7e, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7e, 0x81, 0x7f, 0x7f,
+			0x81, 0x7e, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x81, 0x7e, 0x80,
+			0x80, 0x7f, 0x81, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x7f, 0x81, 0x7e, 0x81, 0x7f, 0x7f, 0x81, 0x7f, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x7e, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x81,
+			0x7f, 0x7f, 0x81, 0x7e, 0x81, 0x7f, 0x7e, 0x82, 0x7e, 0x80, 0x80,
+			0x7e, 0x81, 0x7e, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7e, 0x81, 0x7f,
+			0x7f, 0x81, 0x7e, 0x81, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7e, 0x81, 0x7e, 0x80, 0x81, 0x7d, 0x82, 0x7f, 0x7f,
+			0x81, 0x7e, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7e, 0x81, 0x7e,
+			0x80, 0x7f, 0x80, 0x7f, 0x81, 0x7e, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x81, 0x7f, 0x80, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x7e,
+			0x81, 0x7f, 0x7d, 0x83, 0x7e, 0x7f, 0x82, 0x7c, 0x81, 0x7f, 0x7f,
+			0x81, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x82, 0x7c, 0x81, 0x80, 0x7e,
+			0x82, 0x7e, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x81, 0x7e, 0x80, 0x81, 0x7e, 0x81, 0x80, 0x7e, 0x81, 0x7d, 0x80,
+			0x81, 0x7d, 0x82, 0x7e, 0x7f, 0x82, 0x7d, 0x80, 0x80, 0x7e, 0x81,
+			0x7f, 0x7e, 0x83, 0x7c, 0x80, 0x81, 0x7e, 0x81, 0x7f, 0x80, 0x7f,
+			0x7f, 0x81, 0x7f, 0x7f, 0x81, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80,
+			0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x81, 0x7d, 0x81, 0x80, 0x7f,
+			0x80, 0x7e, 0x81, 0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x82,
+			0x7e, 0x7e, 0x82, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x7f, 0x7f, 0x81,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x7f, 0x81,
+			0x7e, 0x81, 0x7e, 0x7f, 0x82, 0x7e, 0x7f, 0x81, 0x7e, 0x7f, 0x81,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x81, 0x7e, 0x7f, 0x81, 0x7e, 0x80, 0x7f, 0x80, 0x80, 0x7e,
+			0x81, 0x7f, 0x7e, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x81, 0x7f,
+			0x80, 0x7f, 0x7f, 0x81, 0x7d, 0x81, 0x80, 0x7e, 0x80, 0x7f, 0x7f,
+			0x80, 0x7e, 0x81, 0x7e, 0x7f, 0x82, 0x7d, 0x81, 0x80, 0x7d, 0x82,
+			0x7e, 0x7f, 0x82, 0x7c, 0x81, 0x80, 0x7d, 0x83, 0x7d, 0x80, 0x82,
+			0x7d, 0x82, 0x7f, 0x7e, 0x82, 0x7e, 0x7f, 0x80, 0x7e, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7e, 0x81, 0x7e,
+			0x7f, 0x81, 0x7e, 0x81, 0x7f, 0x7e, 0x81, 0x7f, 0x7f, 0x81, 0x7e,
+			0x80, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x81, 0x7f, 0x7f, 0x81, 0x7e,
+			0x80, 0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x81, 0x7f, 0x80, 0x80, 0x7e, 0x81,
+			0x80, 0x7e, 0x81, 0x7e, 0x7f, 0x80, 0x7e, 0x80, 0x7f, 0x7f, 0x81,
+			0x7e, 0x80, 0x81, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x7f, 0x81,
+			0x7e, 0x81, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7e, 0x81, 0x7e,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x81, 0x7e,
+			0x7f, 0x81, 0x7e, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7e, 0x80, 0x80, 0x7f, 0x81, 0x7f, 0x80, 0x81, 0x7e,
+			0x80, 0x80, 0x7e, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7e,
+			0x80, 0x80, 0x7d, 0x82, 0x7f, 0x7e, 0x82, 0x7f, 0x7f, 0x81, 0x7e,
+			0x80, 0x80, 0x7d, 0x82, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x81, 0x7e, 0x80, 0x80, 0x7d, 0x81,
+			0x80, 0x7e, 0x82, 0x7e, 0x80, 0x80, 0x7e, 0x81, 0x80, 0x7d, 0x81,
+			0x7f, 0x7e, 0x81, 0x7e, 0x80, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x80,
+			0x81, 0x7e, 0x81, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7e, 0x80, 0x7f, 0x7f, 0x81, 0x7e, 0x80, 0x80, 0x7e, 0x81,
+			0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x81, 0x7e, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7e, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x7e,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x81, 0x82, 0x81, 0x82, 0x84,
+			0x82, 0x83, 0x83, 0x81, 0x83, 0x81, 0x81, 0x83, 0x7f, 0x81, 0x81,
+			0x7d, 0x81, 0x7f, 0x7d, 0x82, 0x7d, 0x82, 0x79, 0x72, 0x87, 0x70,
+			0x74, 0x7e, 0x6d, 0x80, 0x72, 0x74, 0x87, 0x77, 0x81, 0x84, 0x84,
+			0x8b, 0x86, 0x89, 0x8d, 0x8c, 0x83, 0x8a, 0x87, 0x82, 0x84, 0x7a,
+			0x83, 0x7f, 0x75, 0x7f, 0x7a, 0x7b, 0x7c, 0x7a, 0x80, 0x7f, 0x7c,
+			0x7f, 0x83, 0x7f, 0x81, 0x81, 0x81, 0x83, 0x7a, 0x7f, 0x81, 0x7a,
+			0x7c, 0x7d, 0x7d, 0x7d, 0x7b, 0x81, 0x83, 0x7f, 0x84, 0x87, 0x86,
+			0x86, 0x86, 0x8a, 0x87, 0x84, 0x89, 0x84, 0x85, 0x82, 0x87, 0x76,
+			0x65, 0x8f, 0x61, 0x66, 0x7d, 0x58, 0x82, 0x64, 0x69, 0x8e, 0x6f,
+			0x84, 0x8a, 0x8b, 0x95, 0x8f, 0x90, 0x99, 0x96, 0x83, 0x92, 0x88,
+			0x7d, 0x82, 0x70, 0x7f, 0x75, 0x69, 0x79, 0x73, 0x74, 0x78, 0x7b,
+			0x81, 0x85, 0x7f, 0x89, 0x90, 0x80, 0x8b, 0x89, 0x80, 0x84, 0x78,
+			0x7b, 0x7c, 0x70, 0x79, 0x7c, 0x77, 0x80, 0x81, 0x86, 0x8a, 0x86,
+			0x8f, 0x90, 0x87, 0x90, 0x88, 0x8b, 0x86, 0x8a, 0x80, 0x47, 0x96,
+			0x62, 0x3d, 0x8a, 0x43, 0x7a, 0x6b, 0x58, 0xa0, 0x7b, 0x85, 0x9e,
+			0xa0, 0x9b, 0x9d, 0x95, 0x96, 0x99, 0x70, 0x83, 0x82, 0x64, 0x72,
+			0x68, 0x74, 0x75, 0x6a, 0x81, 0x89, 0x7f, 0x87, 0x94, 0x8c, 0x8e,
+			0x85, 0x86, 0x8b, 0x75, 0x72, 0x7d, 0x76, 0x6b, 0x75, 0x7c, 0x79,
+			0x77, 0x82, 0x8c, 0x82, 0x84, 0x8f, 0x8c, 0x83, 0x84, 0x89, 0x84,
+			0x7c, 0x81, 0x86, 0x82, 0x7e, 0x8d, 0x88, 0x92, 0x62, 0x67, 0xa6,
+			0x3c, 0x67, 0x7f, 0x52, 0x81, 0x57, 0x7f, 0x94, 0x76, 0x89, 0xa1,
+			0x9b, 0x8b, 0x99, 0x8f, 0x92, 0x82, 0x74, 0x8b, 0x77, 0x6a, 0x7a,
+			0x7b, 0x7a, 0x77, 0x7e, 0x89, 0x82, 0x7d, 0x89, 0x8a, 0x7d, 0x7f,
+			0x81, 0x80, 0x7b, 0x73, 0x81, 0x84, 0x72, 0x80, 0x87, 0x7e, 0x81,
+			0x81, 0x82, 0x7f, 0x77, 0x7f, 0x80, 0x78, 0x7e, 0x85, 0x83, 0x82,
+			0x88, 0x89, 0x89, 0x84, 0x88, 0x89, 0x82, 0x88, 0x84, 0x93, 0x4d,
+			0x70, 0x9a, 0x2c, 0x7e, 0x73, 0x5d, 0x88, 0x62, 0x8f, 0x90, 0x82,
+			0x8d, 0xa1, 0x8d, 0x85, 0x94, 0x80, 0x87, 0x7b, 0x77, 0x85, 0x76,
+			0x76, 0x84, 0x81, 0x7e, 0x82, 0x84, 0x83, 0x7c, 0x7c, 0x85, 0x7b,
+			0x79, 0x80, 0x7e, 0x7e, 0x7d, 0x80, 0x87, 0x80, 0x7f, 0x87, 0x82,
+			0x7d, 0x80, 0x7d, 0x79, 0x7a, 0x75, 0x7b, 0x7d, 0x7a, 0x83, 0x86,
+			0x84, 0x88, 0x8a, 0x87, 0x87, 0x85, 0x85, 0x81, 0x83, 0x7f, 0x87,
+			0x80, 0x8b, 0x7b, 0x4b, 0x9e, 0x61, 0x4b, 0x91, 0x5e, 0x77, 0x76,
+			0x79, 0x8c, 0x88, 0x81, 0x95, 0x95, 0x7f, 0x93, 0x86, 0x83, 0x84,
+			0x7d, 0x80, 0x81, 0x79, 0x7f, 0x84, 0x7c, 0x82, 0x81, 0x80, 0x7f,
+			0x7c, 0x7f, 0x7f, 0x7a, 0x7e, 0x81, 0x7e, 0x7a, 0x83, 0x85, 0x7c,
+			0x85, 0x83, 0x81, 0x80, 0x7d, 0x7e, 0x7a, 0x78, 0x7a, 0x7c, 0x7a,
+			0x80, 0x82, 0x84, 0x86, 0x87, 0x88, 0x86, 0x86, 0x85, 0x84, 0x81,
+			0x82, 0x82, 0x7f, 0x87, 0x81, 0x91, 0x63, 0x65, 0x9a, 0x49, 0x6a,
+			0x81, 0x63, 0x77, 0x74, 0x7f, 0x87, 0x86, 0x80, 0x9b, 0x8a, 0x84,
+			0x92, 0x86, 0x86, 0x84, 0x83, 0x81, 0x84, 0x7b, 0x81, 0x83, 0x7b,
+			0x7f, 0x80, 0x7c, 0x7a, 0x7c, 0x7c, 0x7d, 0x78, 0x83, 0x7f, 0x7e,
+			0x88, 0x83, 0x84, 0x86, 0x83, 0x80, 0x81, 0x7b, 0x7b, 0x7b, 0x75,
+			0x78, 0x7a, 0x7a, 0x7e, 0x82, 0x83, 0x87, 0x86, 0x85, 0x88, 0x84,
+			0x84, 0x85, 0x81, 0x82, 0x81, 0x82, 0x80, 0x87, 0x82, 0x91, 0x6f,
+			0x5a, 0x99, 0x4e, 0x5c, 0x8b, 0x5a, 0x76, 0x7a, 0x7c, 0x84, 0x8c,
+			0x83, 0x95, 0x94, 0x81, 0x94, 0x8a, 0x82, 0x85, 0x85, 0x7f, 0x81,
+			0x7e, 0x7d, 0x83, 0x7b, 0x7c, 0x81, 0x7c, 0x77, 0x7e, 0x7c, 0x7d,
+			0x7c, 0x7c, 0x84, 0x7e, 0x81, 0x88, 0x82, 0x84, 0x84, 0x80, 0x80,
+			0x7e, 0x7b, 0x7d, 0x7a, 0x78, 0x7c, 0x7c, 0x7d, 0x80, 0x83, 0x84,
+			0x84, 0x84, 0x86, 0x85, 0x82, 0x85, 0x83, 0x81, 0x82, 0x83, 0x83,
+			0x82, 0x87, 0x84, 0x8c, 0x62, 0x66, 0x8f, 0x4c, 0x64, 0x82, 0x66,
+			0x71, 0x79, 0x84, 0x82, 0x8c, 0x85, 0x93, 0x95, 0x80, 0x8f, 0x8f,
+			0x83, 0x83, 0x8a, 0x81, 0x80, 0x83, 0x7c, 0x82, 0x7d, 0x77, 0x7e,
+			0x7c, 0x73, 0x7a, 0x7f, 0x7b, 0x7e, 0x82, 0x82, 0x83, 0x7f, 0x86,
+			0x87, 0x7f, 0x83, 0x83, 0x80, 0x7c, 0x7e, 0x7e, 0x7b, 0x79, 0x79,
+			0x7e, 0x7c, 0x7c, 0x82, 0x84, 0x81, 0x83, 0x86, 0x85, 0x83, 0x82,
+			0x85, 0x83, 0x82, 0x83, 0x84, 0x83, 0x82, 0x88, 0x85, 0x87, 0x68,
+			0x66, 0x8a, 0x5b, 0x5d, 0x7c, 0x6e, 0x70, 0x6f, 0x85, 0x83, 0x84,
+			0x87, 0x89, 0x9a, 0x87, 0x85, 0x93, 0x8f, 0x85, 0x85, 0x8b, 0x82,
+			0x80, 0x80, 0x7c, 0x7f, 0x7a, 0x76, 0x7a, 0x7a, 0x78, 0x7a, 0x80,
+			0x7f, 0x80, 0x81, 0x80, 0x87, 0x84, 0x80, 0x84, 0x84, 0x80, 0x7f,
+			0x80, 0x7f, 0x7e, 0x7c, 0x7b, 0x7c, 0x7a, 0x79, 0x7c, 0x7e, 0x7f,
+			0x7e, 0x82, 0x84, 0x83, 0x85, 0x85, 0x87, 0x86, 0x84, 0x86, 0x85,
+			0x85, 0x83, 0x84, 0x84, 0x83, 0x81, 0x82, 0x75, 0x61, 0x75, 0x76,
+			0x62, 0x68, 0x6f, 0x7c, 0x73, 0x71, 0x84, 0x86, 0x8a, 0x86, 0x8c,
+			0x91, 0x8d, 0x8f, 0x8a, 0x8a, 0x8c, 0x8a, 0x84, 0x7e, 0x84, 0x85,
+			0x7c, 0x7b, 0x7c, 0x7c, 0x7b, 0x78, 0x79, 0x7c, 0x7c, 0x7c, 0x7c,
+			0x7d, 0x80, 0x81, 0x81, 0x7f, 0x80, 0x82, 0x82, 0x82, 0x80, 0x81,
+			0x81, 0x80, 0x7e, 0x7e, 0x7c, 0x7c, 0x7e, 0x7d, 0x7f, 0x7e, 0x80,
+			0x84, 0x81, 0x83, 0x83, 0x82, 0x82, 0x80, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x81, 0x83, 0x81, 0x83, 0x83, 0x81, 0x7c, 0x79, 0x7d,
+			0x7c, 0x72, 0x72, 0x7a, 0x73, 0x71, 0x79, 0x78, 0x78, 0x7d, 0x84,
+			0x82, 0x81, 0x89, 0x8c, 0x89, 0x8a, 0x8f, 0x8b, 0x87, 0x8b, 0x88,
+			0x85, 0x85, 0x85, 0x82, 0x7f, 0x7f, 0x7e, 0x7e, 0x7b, 0x7a, 0x7a,
+			0x7a, 0x79, 0x78, 0x7a, 0x7a, 0x79, 0x7c, 0x7d, 0x7b, 0x7d, 0x81,
+			0x80, 0x80, 0x81, 0x83, 0x83, 0x83, 0x84, 0x83, 0x83, 0x83, 0x83,
+			0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x81, 0x7f, 0x80, 0x81,
+			0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x81, 0x83, 0x82, 0x83, 0x7e,
+			0x78, 0x7e, 0x7d, 0x75, 0x71, 0x78, 0x77, 0x70, 0x76, 0x7a, 0x79,
+			0x7b, 0x83, 0x84, 0x80, 0x87, 0x8c, 0x89, 0x88, 0x8c, 0x8d, 0x88,
+			0x89, 0x89, 0x86, 0x85, 0x84, 0x82, 0x82, 0x80, 0x7e, 0x7f, 0x7d,
+			0x7b, 0x7a, 0x7b, 0x79, 0x78, 0x79, 0x7a, 0x7a, 0x7b, 0x7d, 0x7e,
+			0x7e, 0x80, 0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x80, 0x7f, 0x80,
+			0x82, 0x80, 0x80, 0x81, 0x81, 0x80, 0x82, 0x81, 0x80, 0x81, 0x82,
+			0x82, 0x80, 0x81, 0x82, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x81, 0x82, 0x82, 0x83, 0x83, 0x82, 0x82, 0x80, 0x79, 0x79, 0x7d,
+			0x76, 0x6e, 0x74, 0x77, 0x70, 0x73, 0x79, 0x79, 0x7a, 0x81, 0x86,
+			0x82, 0x85, 0x8d, 0x8c, 0x8a, 0x8c, 0x8e, 0x8b, 0x89, 0x8a, 0x88,
+			0x86, 0x85, 0x84, 0x82, 0x80, 0x7d, 0x7d, 0x7b, 0x79, 0x78, 0x77,
+			0x78, 0x76, 0x76, 0x79, 0x79, 0x7a, 0x7d, 0x7f, 0x7f, 0x81, 0x83,
+			0x83, 0x84, 0x84, 0x84, 0x83, 0x82, 0x83, 0x81, 0x7f, 0x80, 0x7f,
+			0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7e, 0x7f, 0x7f,
+			0x80, 0x81, 0x83, 0x83, 0x83, 0x84, 0x85, 0x84, 0x84, 0x83, 0x83,
+			0x82, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7d,
+			0x79, 0x7a, 0x7d, 0x78, 0x71, 0x75, 0x79, 0x73, 0x74, 0x7a, 0x7a,
+			0x7b, 0x81, 0x84, 0x82, 0x86, 0x8c, 0x8c, 0x8a, 0x8b, 0x8d, 0x8a,
+			0x89, 0x88, 0x86, 0x84, 0x84, 0x83, 0x80, 0x80, 0x7e, 0x7e, 0x7d,
+			0x7b, 0x7a, 0x7a, 0x7a, 0x78, 0x79, 0x7a, 0x79, 0x79, 0x7c, 0x7d,
+			0x7d, 0x7f, 0x81, 0x82, 0x82, 0x83, 0x84, 0x84, 0x83, 0x83, 0x82,
+			0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d,
+			0x7e, 0x7f, 0x80, 0x80, 0x82, 0x84, 0x83, 0x83, 0x85, 0x84, 0x84,
+			0x83, 0x83, 0x83, 0x81, 0x81, 0x81, 0x80, 0x7f, 0x7f, 0x7e, 0x7d,
+			0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x79, 0x78,
+			0x7b, 0x79, 0x75, 0x77, 0x7a, 0x78, 0x79, 0x7d, 0x7e, 0x7f, 0x83,
+			0x86, 0x85, 0x87, 0x8b, 0x8b, 0x8a, 0x8b, 0x8b, 0x89, 0x88, 0x87,
+			0x86, 0x83, 0x82, 0x81, 0x7e, 0x7c, 0x7c, 0x7b, 0x7a, 0x79, 0x78,
+			0x79, 0x79, 0x78, 0x7a, 0x7b, 0x7b, 0x7c, 0x7e, 0x7f, 0x80, 0x82,
+			0x82, 0x83, 0x83, 0x82, 0x82, 0x82, 0x81, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7e, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x80, 0x80, 0x80,
+			0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x82, 0x81, 0x82,
+			0x81, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d,
+			0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x81, 0x81, 0x81,
+			0x82, 0x82, 0x81, 0x7e, 0x7e, 0x7e, 0x7c, 0x7a, 0x7b, 0x7c, 0x7b,
+			0x7b, 0x7d, 0x7e, 0x7e, 0x81, 0x82, 0x81, 0x82, 0x84, 0x84, 0x83,
+			0x84, 0x84, 0x83, 0x83, 0x83, 0x82, 0x82, 0x81, 0x81, 0x80, 0x7f,
+			0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7f, 0x7f, 0x7f,
+		},
+		{ // 8
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e,
+			0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x80,
+			0x80, 0x80, 0x81, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81,
+			0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81,
+			0x81, 0x80, 0x80, 0x7f, 0x7d, 0x7c, 0x79, 0x78, 0x78, 0x78, 0x7a,
+			0x7d, 0x7f, 0x81, 0x83, 0x83, 0x84, 0x84, 0x85, 0x85, 0x86, 0x85,
+			0x84, 0x83, 0x81, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7c, 0x7c,
+			0x7b, 0x7c, 0x7d, 0x80, 0x82, 0x83, 0x84, 0x84, 0x82, 0x81, 0x81,
+			0x80, 0x81, 0x82, 0x82, 0x83, 0x83, 0x84, 0x84, 0x83, 0x85, 0x87,
+			0x88, 0x8a, 0x84, 0x73, 0x6c, 0x61, 0x53, 0x5d, 0x66, 0x6e, 0x81,
+			0x8b, 0x8e, 0x8e, 0x8d, 0x8f, 0x8e, 0x93, 0x9a, 0x96, 0x8f, 0x8a,
+			0x7b, 0x6e, 0x6d, 0x6a, 0x6e, 0x79, 0x82, 0x87, 0x88, 0x89, 0x86,
+			0x80, 0x85, 0x88, 0x87, 0x8a, 0x89, 0x7f, 0x78, 0x72, 0x6c, 0x6b,
+			0x70, 0x76, 0x7a, 0x7f, 0x83, 0x83, 0x86, 0x8a, 0x8c, 0x8f, 0x8f,
+			0x8b, 0x86, 0x81, 0x7f, 0x7e, 0x81, 0x85, 0x86, 0x8a, 0x8c, 0x8b,
+			0x8a, 0x8a, 0x78, 0x5f, 0x59, 0x48, 0x42, 0x5a, 0x68, 0x78, 0x8e,
+			0x96, 0x98, 0x97, 0x9c, 0x9f, 0x9d, 0xa2, 0x9f, 0x8a, 0x7b, 0x6f,
+			0x5a, 0x58, 0x63, 0x6b, 0x7a, 0x87, 0x90, 0x90, 0x8d, 0x93, 0x90,
+			0x8f, 0x97, 0x91, 0x85, 0x7e, 0x6e, 0x5f, 0x5a, 0x5c, 0x62, 0x6c,
+			0x7d, 0x88, 0x8f, 0x99, 0x9a, 0x98, 0x99, 0x93, 0x8b, 0x84, 0x7f,
+			0x79, 0x77, 0x7b, 0x7e, 0x82, 0x89, 0x8d, 0x8d, 0x91, 0x7b, 0x59,
+			0x56, 0x43, 0x3f, 0x60, 0x6f, 0x7e, 0x8f, 0x92, 0x94, 0x93, 0x9f,
+			0xab, 0xa5, 0xa5, 0x9c, 0x7a, 0x66, 0x5f, 0x54, 0x5f, 0x71, 0x7d,
+			0x84, 0x84, 0x8c, 0x8a, 0x8c, 0xa0, 0xa0, 0x99, 0x96, 0x82, 0x6c,
+			0x62, 0x5f, 0x60, 0x64, 0x6e, 0x72, 0x72, 0x7f, 0x8a, 0x95, 0xa3,
+			0xa6, 0x9e, 0x90, 0x84, 0x7a, 0x74, 0x7c, 0x80, 0x81, 0x82, 0x80,
+			0x7e, 0x86, 0x8f, 0x99, 0x96, 0x66, 0x4f, 0x44, 0x2b, 0x4d, 0x73,
+			0x7f, 0x8f, 0x8e, 0x8f, 0x8e, 0x99, 0xba, 0xba, 0xaa, 0xa0, 0x77,
+			0x53, 0x55, 0x5b, 0x6b, 0x78, 0x7e, 0x7e, 0x6e, 0x7d, 0x96, 0x9d,
+			0xb2, 0xb2, 0x96, 0x7a, 0x63, 0x60, 0x62, 0x6f, 0x7c, 0x6e, 0x65,
+			0x66, 0x6f, 0x87, 0xa0, 0xb0, 0xa5, 0x92, 0x86, 0x79, 0x7f, 0x8a,
+			0x8b, 0x82, 0x75, 0x6e, 0x6e, 0x7f, 0x94, 0x9d, 0x9d, 0x9f, 0x71,
+			0x35, 0x42, 0x45, 0x49, 0x74, 0x7b, 0x72, 0x68, 0x7d, 0xa5, 0xaf,
+			0xca, 0xd1, 0x9d, 0x7b, 0x76, 0x6d, 0x6f, 0x72, 0x73, 0x5d, 0x47,
+			0x68, 0x80, 0x91, 0xae, 0xab, 0x95, 0x85, 0x8d, 0x92, 0x89, 0x8b,
+			0x76, 0x58, 0x54, 0x5f, 0x6b, 0x75, 0x84, 0x84, 0x80, 0x91, 0x9f,
+			0xa0, 0x9c, 0x93, 0x81, 0x74, 0x7b, 0x7f, 0x7a, 0x79, 0x76, 0x74,
+			0x7c, 0x8c, 0x95, 0x92, 0x9c, 0x7a, 0x3b, 0x42, 0x51, 0x5a, 0x6d,
+			0x72, 0x70, 0x68, 0x8b, 0xb1, 0xb0, 0xb3, 0xa7, 0x91, 0x87, 0x8b,
+			0x8e, 0x75, 0x5e, 0x5a, 0x5c, 0x6c, 0x82, 0x8a, 0x83, 0x86, 0x95,
+			0x9e, 0xa1, 0x9a, 0x86, 0x74, 0x74, 0x7a, 0x77, 0x6c, 0x61, 0x5f,
+			0x6d, 0x83, 0x91, 0x90, 0x8b, 0x8d, 0x92, 0x98, 0x95, 0x87, 0x77,
+			0x73, 0x7a, 0x7f, 0x7d, 0x78, 0x74, 0x7b, 0x8a, 0x99, 0x96, 0x72,
+			0x4c, 0x4f, 0x62, 0x6c, 0x6b, 0x62, 0x5f, 0x70, 0x94, 0xa4, 0x9a,
+			0x91, 0x94, 0x9c, 0x9f, 0x9a, 0x88, 0x73, 0x74, 0x7c, 0x79, 0x73,
+			0x70, 0x73, 0x7d, 0x8d, 0x91, 0x88, 0x86, 0x8a, 0x8a, 0x87, 0x82,
+			0x7a, 0x74, 0x78, 0x7a, 0x75, 0x73, 0x78, 0x7d, 0x81, 0x86, 0x88,
+			0x89, 0x8d, 0x8f, 0x8a, 0x84, 0x83, 0x80, 0x7c, 0x7b, 0x79, 0x7a,
+			0x7e, 0x87, 0x84, 0x75, 0x6b, 0x64, 0x67, 0x67, 0x65, 0x64, 0x68,
+			0x75, 0x7e, 0x85, 0x89, 0x90, 0x98, 0x9a, 0x96, 0x91, 0x90, 0x8d,
+			0x88, 0x84, 0x7e, 0x7b, 0x7c, 0x7c, 0x7b, 0x7d, 0x82, 0x85, 0x85,
+			0x84, 0x84, 0x84, 0x84, 0x85, 0x80, 0x7c, 0x7a, 0x79, 0x77, 0x77,
+			0x7b, 0x7b, 0x7d, 0x7e, 0x80, 0x85, 0x89, 0x8a, 0x88, 0x85, 0x83,
+			0x81, 0x80, 0x7e, 0x7c, 0x7b, 0x79, 0x7b, 0x7a, 0x76, 0x77, 0x73,
+			0x71, 0x6f, 0x6f, 0x70, 0x70, 0x75, 0x78, 0x7b, 0x80, 0x84, 0x87,
+			0x8a, 0x8f, 0x90, 0x8f, 0x8e, 0x8c, 0x88, 0x86, 0x85, 0x84, 0x81,
+			0x7f, 0x7f, 0x7f, 0x80, 0x81, 0x81, 0x82, 0x84, 0x85, 0x84, 0x82,
+			0x81, 0x7f, 0x7d, 0x7d, 0x7c, 0x7b, 0x7a, 0x7a, 0x7b, 0x7d, 0x80,
+			0x82, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7d,
+			0x80, 0x7e, 0x7e, 0x80, 0x7e, 0x7f, 0x7f, 0x7f, 0x81, 0x81, 0x83,
+			0x80, 0x7f, 0x7f, 0x7d, 0x80, 0x7f, 0x7d, 0x80, 0x7e, 0x7e, 0x81,
+			0x7f, 0x81, 0x7f, 0x7f, 0x7e, 0x7e, 0x7d, 0x7e, 0x7f, 0x7f, 0x7f,
+			0x7e, 0x80, 0x7d, 0x84, 0x82, 0x82, 0x82, 0x7f, 0x81, 0x80, 0x80,
+			0x7f, 0x81, 0x7b, 0x7f, 0x7f, 0x80, 0x81, 0x7f, 0x80, 0x7e, 0x7f,
+			0x81, 0x7f, 0x82, 0x7f, 0x7e, 0x80, 0x7c, 0x81, 0x7f, 0x7f, 0x7f,
+			0x80, 0x7e, 0x7f, 0x82, 0x7f, 0x84, 0x80, 0x81, 0x81, 0x7e, 0x81,
+			0x81, 0x7f, 0x80, 0x80, 0x7e, 0x82, 0x7d, 0x80, 0x7e, 0x7c, 0x81,
+			0x7c, 0x7f, 0x80, 0x7e, 0x7e, 0x81, 0x7e, 0x81, 0x82, 0x81, 0x80,
+			0x82, 0x80, 0x82, 0x81, 0x80, 0x80, 0x7d, 0x81, 0x7d, 0x81, 0x7f,
+			0x82, 0x7e, 0x7e, 0x7f, 0x7e, 0x7e, 0x7e, 0x7f, 0x7e, 0x7e, 0x7d,
+			0x7f, 0x80, 0x80, 0x7f, 0x84, 0x7e, 0x82, 0x82, 0x7f, 0x80, 0x82,
+			0x7d, 0x82, 0x7f, 0x7d, 0x83, 0x7d, 0x81, 0x82, 0x7f, 0x82, 0x81,
+			0x7f, 0x80, 0x7f, 0x7d, 0x7f, 0x7c, 0x7e, 0x7c, 0x7d, 0x7f, 0x7e,
+			0x83, 0x81, 0x83, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x7c,
+			0x80, 0x7c, 0x7f, 0x83, 0x7e, 0x82, 0x82, 0x7e, 0x80, 0x80, 0x7d,
+			0x81, 0x7c, 0x7c, 0x80, 0x79, 0x7f, 0x7e, 0x7e, 0x82, 0x7f, 0x82,
+			0x81, 0x80, 0x82, 0x81, 0x7f, 0x82, 0x7e, 0x7f, 0x7f, 0x7e, 0x80,
+			0x80, 0x7f, 0x80, 0x82, 0x80, 0x81, 0x7f, 0x80, 0x7f, 0x7e, 0x80,
+			0x7c, 0x7e, 0x7d, 0x7c, 0x80, 0x80, 0x7e, 0x82, 0x82, 0x80, 0x84,
+			0x80, 0x82, 0x81, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x81,
+			0x7e, 0x83, 0x7e, 0x7f, 0x80, 0x7b, 0x80, 0x7d, 0x7e, 0x7f, 0x7f,
+			0x7c, 0x81, 0x7e, 0x81, 0x83, 0x7f, 0x82, 0x7f, 0x80, 0x7f, 0x7f,
+			0x7f, 0x81, 0x7e, 0x80, 0x7e, 0x7c, 0x83, 0x7f, 0x83, 0x80, 0x83,
+			0x7d, 0x80, 0x82, 0x7c, 0x82, 0x7d, 0x7c, 0x7d, 0x7d, 0x7c, 0x81,
+			0x80, 0x7f, 0x84, 0x7e, 0x82, 0x80, 0x80, 0x81, 0x80, 0x81, 0x7d,
+			0x82, 0x7e, 0x7e, 0x83, 0x80, 0x81, 0x80, 0x80, 0x80, 0x7e, 0x81,
+			0x7d, 0x7f, 0x7d, 0x7e, 0x7e, 0x7d, 0x7f, 0x83, 0x7f, 0x81, 0x83,
+			0x7c, 0x83, 0x7e, 0x7d, 0x82, 0x7e, 0x80, 0x7f, 0x7d, 0x80, 0x7e,
+			0x7f, 0x82, 0x80, 0x80, 0x84, 0x7d, 0x83, 0x80, 0x7f, 0x81, 0x7c,
+			0x7e, 0x7d, 0x7d, 0x7f, 0x7f, 0x80, 0x81, 0x7e, 0x82, 0x80, 0x80,
+			0x82, 0x80, 0x7e, 0x80, 0x81, 0x7d, 0x81, 0x81, 0x7e, 0x82, 0x7f,
+			0x83, 0x80, 0x81, 0x7f, 0x7f, 0x7d, 0x7d, 0x7e, 0x7d, 0x7e, 0x7e,
+			0x81, 0x80, 0x82, 0x80, 0x84, 0x80, 0x81, 0x80, 0x7f, 0x7f, 0x7e,
+			0x7f, 0x7e, 0x7e, 0x7e, 0x80, 0x7f, 0x80, 0x82, 0x81, 0x83, 0x81,
+			0x81, 0x81, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x7e, 0x7d, 0x80, 0x7e,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7c,
+			0x82, 0x7e, 0x80, 0x82, 0x80, 0x81, 0x82, 0x7e, 0x80, 0x7f, 0x7d,
+			0x81, 0x7d, 0x7f, 0x80, 0x7b, 0x7e, 0x84, 0x7c, 0x82, 0x82, 0x7d,
+			0x84, 0x7f, 0x80, 0x80, 0x7b, 0x80, 0x7f, 0x7f, 0x82, 0x7f, 0x7f,
+			0x81, 0x7d, 0x82, 0x81, 0x7f, 0x81, 0x80, 0x7f, 0x80, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7d, 0x80, 0x82, 0x80, 0x7f, 0x7f,
+			0x7d, 0x7f, 0x80, 0x80, 0x81, 0x80, 0x7f, 0x81, 0x7e, 0x82, 0x82,
+			0x7d, 0x83, 0x7c, 0x81, 0x7d, 0x7f, 0x7f, 0x7d, 0x7f, 0x7e, 0x81,
+			0x7f, 0x81, 0x80, 0x82, 0x80, 0x83, 0x7f, 0x7f, 0x80, 0x7d, 0x80,
+			0x7f, 0x7d, 0x7e, 0x7f, 0x7e, 0x82, 0x81, 0x80, 0x82, 0x7e, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7e, 0x80, 0x7d, 0x82, 0x7e, 0x82,
+			0x80, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7e, 0x7f,
+			0x82, 0x80, 0x81, 0x82, 0x7d, 0x82, 0x7b, 0x82, 0x7e, 0x7f, 0x80,
+			0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x83, 0x7c, 0x81, 0x80, 0x7d, 0x83,
+			0x7e, 0x83, 0x80, 0x7e, 0x81, 0x7f, 0x7f, 0x7f, 0x81, 0x7c, 0x83,
+			0x7d, 0x81, 0x80, 0x7f, 0x80, 0x81, 0x7e, 0x7f, 0x80, 0x7c, 0x82,
+			0x7d, 0x81, 0x7f, 0x7f, 0x7f, 0x81, 0x7f, 0x80, 0x7f, 0x7d, 0x81,
+			0x7c, 0x80, 0x81, 0x7d, 0x82, 0x81, 0x7f, 0x84, 0x7d, 0x81, 0x80,
+			0x7d, 0x81, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7e, 0x81, 0x7f,
+			0x7e, 0x82, 0x7e, 0x7f, 0x81, 0x7a, 0x82, 0x81, 0x7d, 0x83, 0x7e,
+			0x7f, 0x80, 0x7f, 0x7e, 0x81, 0x7d, 0x81, 0x81, 0x7f, 0x80, 0x80,
+			0x82, 0x7d, 0x82, 0x7e, 0x7e, 0x81, 0x7f, 0x80, 0x82, 0x7e, 0x7d,
+			0x81, 0x7c, 0x81, 0x7f, 0x7d, 0x81, 0x7c, 0x80, 0x80, 0x80, 0x81,
+			0x81, 0x7d, 0x81, 0x81, 0x7c, 0x84, 0x80, 0x7e, 0x81, 0x7f, 0x7c,
+			0x83, 0x7d, 0x81, 0x80, 0x7d, 0x80, 0x7e, 0x7e, 0x7f, 0x81, 0x7d,
+			0x80, 0x7f, 0x80, 0x81, 0x7f, 0x82, 0x80, 0x81, 0x80, 0x7d, 0x82,
+			0x7e, 0x7f, 0x83, 0x7e, 0x82, 0x81, 0x7f, 0x82, 0x7f, 0x7d, 0x7f,
+			0x7d, 0x7c, 0x81, 0x7c, 0x7e, 0x80, 0x7d, 0x7f, 0x80, 0x7f, 0x81,
+			0x80, 0x7f, 0x82, 0x7f, 0x80, 0x82, 0x7f, 0x7f, 0x81, 0x7c, 0x7f,
+			0x80, 0x7e, 0x81, 0x80, 0x7d, 0x80, 0x80, 0x7c, 0x83, 0x7e, 0x81,
+			0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7e, 0x80, 0x7e, 0x81, 0x7e, 0x81,
+			0x7d, 0x81, 0x80, 0x7e, 0x81, 0x7e, 0x7d, 0x7f, 0x7f, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x82, 0x80, 0x81, 0x80, 0x7f, 0x7d, 0x7f, 0x7f,
+			0x7e, 0x81, 0x7d, 0x81, 0x7d, 0x7e, 0x80, 0x7f, 0x81, 0x7f, 0x80,
+			0x80, 0x80, 0x7f, 0x81, 0x7d, 0x80, 0x7f, 0x7e, 0x81, 0x7e, 0x80,
+			0x81, 0x80, 0x80, 0x82, 0x7e, 0x80, 0x7f, 0x7e, 0x80, 0x7e, 0x7d,
+			0x7f, 0x7d, 0x7e, 0x81, 0x7f, 0x81, 0x81, 0x7f, 0x80, 0x80, 0x7f,
+			0x81, 0x7e, 0x80, 0x80, 0x7d, 0x81, 0x7f, 0x7e, 0x81, 0x7e, 0x7e,
+			0x82, 0x7e, 0x81, 0x80, 0x7e, 0x81, 0x7e, 0x7f, 0x80, 0x7e, 0x80,
+			0x7f, 0x7e, 0x81, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x81, 0x7e, 0x81,
+			0x7f, 0x7e, 0x82, 0x7e, 0x80, 0x81, 0x7f, 0x81, 0x80, 0x7e, 0x80,
+			0x7e, 0x7b, 0x7b, 0x7a, 0x77, 0x79, 0x79, 0x79, 0x7c, 0x7c, 0x7d,
+			0x80, 0x81, 0x83, 0x86, 0x86, 0x88, 0x88, 0x87, 0x87, 0x86, 0x86,
+			0x84, 0x83, 0x81, 0x80, 0x7e, 0x7e, 0x7c, 0x7c, 0x7b, 0x7a, 0x7a,
+			0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x82, 0x82, 0x83, 0x84,
+			0x84, 0x84, 0x84, 0x85, 0x82, 0x83, 0x81, 0x81, 0x81, 0x80, 0x7f,
+			0x80, 0x7e, 0x81, 0x7f, 0x83, 0x77, 0x6d, 0x88, 0x69, 0x6a, 0x7a,
+			0x65, 0x77, 0x6e, 0x6d, 0x80, 0x7a, 0x7c, 0x88, 0x8c, 0x8d, 0x90,
+			0x91, 0x93, 0x98, 0x8e, 0x8e, 0x93, 0x86, 0x85, 0x83, 0x7e, 0x7e,
+			0x77, 0x76, 0x79, 0x76, 0x74, 0x77, 0x78, 0x79, 0x7a, 0x7a, 0x7f,
+			0x80, 0x7e, 0x82, 0x84, 0x82, 0x84, 0x83, 0x83, 0x85, 0x80, 0x7d,
+			0x80, 0x7e, 0x76, 0x7b, 0x7b, 0x79, 0x7a, 0x7b, 0x7f, 0x7f, 0x80,
+			0x85, 0x87, 0x85, 0x88, 0x89, 0x89, 0x87, 0x86, 0x87, 0x85, 0x82,
+			0x82, 0x84, 0x7f, 0x80, 0x80, 0x81, 0x83, 0x7d, 0x7f, 0x63, 0x7c,
+			0x78, 0x49, 0x7f, 0x64, 0x5a, 0x7a, 0x5d, 0x7c, 0x7f, 0x75, 0x8b,
+			0x92, 0x95, 0x8f, 0x9e, 0x9a, 0x94, 0x9e, 0x8b, 0x96, 0x94, 0x7a,
+			0x8a, 0x83, 0x76, 0x7b, 0x75, 0x78, 0x74, 0x73, 0x72, 0x77, 0x7a,
+			0x71, 0x7f, 0x7f, 0x7b, 0x83, 0x7f, 0x86, 0x86, 0x81, 0x88, 0x86,
+			0x83, 0x7f, 0x80, 0x82, 0x79, 0x7a, 0x7d, 0x78, 0x77, 0x79, 0x7c,
+			0x7b, 0x7c, 0x7f, 0x83, 0x84, 0x83, 0x89, 0x8a, 0x88, 0x89, 0x8a,
+			0x89, 0x87, 0x86, 0x86, 0x83, 0x80, 0x7f, 0x80, 0x7f, 0x7c, 0x81,
+			0x7f, 0x81, 0x6b, 0x66, 0x8d, 0x51, 0x57, 0x8a, 0x4d, 0x68, 0x74,
+			0x65, 0x84, 0x77, 0x88, 0x8d, 0x9a, 0xa1, 0x85, 0xaa, 0xa4, 0x8a,
+			0xa2, 0x95, 0x8c, 0x8b, 0x7e, 0x81, 0x7f, 0x77, 0x74, 0x73, 0x7a,
+			0x6e, 0x6c, 0x7d, 0x75, 0x75, 0x7b, 0x7a, 0x82, 0x7d, 0x7f, 0x86,
+			0x84, 0x87, 0x83, 0x86, 0x8a, 0x83, 0x83, 0x83, 0x83, 0x7c, 0x76,
+			0x7d, 0x79, 0x72, 0x76, 0x77, 0x77, 0x76, 0x7b, 0x81, 0x80, 0x84,
+			0x86, 0x89, 0x8c, 0x89, 0x8b, 0x8c, 0x8b, 0x88, 0x86, 0x86, 0x83,
+			0x80, 0x80, 0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x7f, 0x80, 0x7e, 0x80,
+			0x74, 0x69, 0x79, 0x72, 0x65, 0x67, 0x6b, 0x76, 0x6a, 0x6a, 0x82,
+			0x83, 0x81, 0x89, 0x92, 0x94, 0x8f, 0x96, 0x9a, 0x92, 0x92, 0x94,
+			0x8e, 0x86, 0x86, 0x86, 0x81, 0x7d, 0x7d, 0x7c, 0x79, 0x78, 0x79,
+			0x7a, 0x78, 0x76, 0x78, 0x7b, 0x79, 0x79, 0x7c, 0x7e, 0x7c, 0x7d,
+			0x81, 0x82, 0x80, 0x83, 0x84, 0x82, 0x82, 0x83, 0x82, 0x7f, 0x7e,
+			0x80, 0x7d, 0x79, 0x7a, 0x7c, 0x7a, 0x7b, 0x7e, 0x7e, 0x7e, 0x81,
+			0x82, 0x83, 0x84, 0x86, 0x87, 0x86, 0x86, 0x87, 0x87, 0x86, 0x85,
+			0x84, 0x83, 0x81, 0x81, 0x7f, 0x7f, 0x7e, 0x7e, 0x7f, 0x7f, 0x80,
+			0x7f, 0x80, 0x7e, 0x71, 0x71, 0x79, 0x71, 0x64, 0x69, 0x74, 0x6d,
+			0x68, 0x77, 0x7c, 0x79, 0x83, 0x8e, 0x8b, 0x88, 0x94, 0x9a, 0x94,
+			0x92, 0x96, 0x94, 0x8d, 0x8c, 0x8c, 0x88, 0x83, 0x82, 0x81, 0x7e,
+			0x7a, 0x79, 0x7a, 0x78, 0x72, 0x74, 0x77, 0x74, 0x72, 0x77, 0x79,
+			0x76, 0x79, 0x7e, 0x7e, 0x7e, 0x81, 0x85, 0x83, 0x83, 0x85, 0x86,
+			0x84, 0x84, 0x84, 0x81, 0x80, 0x7f, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c,
+			0x7c, 0x7c, 0x7e, 0x80, 0x80, 0x82, 0x84, 0x84, 0x85, 0x86, 0x86,
+			0x86, 0x85, 0x86, 0x85, 0x82, 0x81, 0x81, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7e, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x75, 0x6c, 0x74, 0x76,
+			0x68, 0x64, 0x71, 0x73, 0x6a, 0x73, 0x7f, 0x7d, 0x82, 0x8c, 0x90,
+			0x8b, 0x90, 0x9a, 0x97, 0x92, 0x94, 0x96, 0x91, 0x8e, 0x8c, 0x89,
+			0x86, 0x82, 0x7f, 0x7d, 0x78, 0x74, 0x75, 0x74, 0x70, 0x6f, 0x73,
+			0x74, 0x72, 0x75, 0x7a, 0x7a, 0x7b, 0x80, 0x83, 0x82, 0x85, 0x88,
+			0x87, 0x86, 0x87, 0x86, 0x85, 0x83, 0x81, 0x7f, 0x7d, 0x7d, 0x7c,
+			0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x7b, 0x7d, 0x7f, 0x80, 0x82, 0x83,
+			0x85, 0x86, 0x87, 0x87, 0x88, 0x87, 0x86, 0x86, 0x84, 0x83, 0x83,
+			0x81, 0x7f, 0x7e, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7d,
+			0x7d, 0x7e, 0x7e, 0x7f, 0x7b, 0x72, 0x75, 0x7b, 0x73, 0x6b, 0x72,
+			0x7a, 0x73, 0x74, 0x7f, 0x82, 0x81, 0x89, 0x8e, 0x89, 0x8b, 0x93,
+			0x93, 0x8f, 0x8e, 0x90, 0x8d, 0x89, 0x89, 0x86, 0x84, 0x81, 0x7e,
+			0x7c, 0x7a, 0x77, 0x77, 0x78, 0x76, 0x73, 0x76, 0x78, 0x77, 0x78,
+			0x7b, 0x7d, 0x7d, 0x7f, 0x81, 0x81, 0x81, 0x83, 0x83, 0x82, 0x81,
+			0x80, 0x80, 0x81, 0x7f, 0x7e, 0x7f, 0x80, 0x7d, 0x7d, 0x7f, 0x7e,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x83, 0x82, 0x82, 0x84, 0x84, 0x83,
+			0x83, 0x83, 0x83, 0x82, 0x81, 0x81, 0x7f, 0x7e, 0x7e, 0x7e, 0x7d,
+			0x7c, 0x7c, 0x7e, 0x7d, 0x7d, 0x7e, 0x7f, 0x80, 0x80, 0x81, 0x81,
+			0x82, 0x81, 0x80, 0x80, 0x7d, 0x77, 0x75, 0x78, 0x76, 0x70, 0x72,
+			0x78, 0x76, 0x76, 0x7d, 0x81, 0x81, 0x85, 0x8a, 0x89, 0x8a, 0x8e,
+			0x90, 0x8d, 0x8c, 0x8d, 0x8c, 0x89, 0x87, 0x86, 0x84, 0x83, 0x80,
+			0x7f, 0x7d, 0x7a, 0x79, 0x78, 0x77, 0x75, 0x75, 0x76, 0x76, 0x77,
+			0x79, 0x7b, 0x7c, 0x7e, 0x80, 0x81, 0x82, 0x84, 0x84, 0x82, 0x82,
+			0x82, 0x81, 0x7e, 0x7d, 0x7f, 0x7e, 0x7d, 0x7e, 0x80, 0x7f, 0x7f,
+			0x81, 0x81, 0x80, 0x81, 0x83, 0x82, 0x82, 0x83, 0x83, 0x83, 0x83,
+			0x84, 0x83, 0x82, 0x82, 0x81, 0x80, 0x7f, 0x7f, 0x7e, 0x7c, 0x7b,
+			0x7b, 0x7b, 0x7a, 0x7b, 0x7c, 0x7c, 0x7d, 0x7e, 0x7e, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7d, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x81, 0x82, 0x82,
+			0x83, 0x83, 0x83, 0x84, 0x84, 0x83, 0x84, 0x83, 0x81, 0x81, 0x80,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c, 0x7d, 0x7e,
+			0x7e, 0x7f, 0x80, 0x80, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82,
+			0x82, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f,
+			0x7e, 0x7e, 0x7d, 0x7e, 0x7d, 0x79, 0x78, 0x7a, 0x78, 0x76, 0x76,
+			0x79, 0x79, 0x79, 0x7d, 0x7f, 0x81, 0x83, 0x87, 0x88, 0x88, 0x8b,
+			0x8c, 0x8b, 0x8b, 0x8b, 0x8a, 0x88, 0x86, 0x85, 0x83, 0x81, 0x7f,
+			0x7e, 0x7c, 0x7a, 0x7a, 0x79, 0x79, 0x78, 0x78, 0x7a, 0x7a, 0x7a,
+			0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x80, 0x81, 0x82, 0x82, 0x82, 0x82,
+			0x82, 0x82, 0x81, 0x81, 0x80, 0x7f, 0x7f, 0x7d, 0x7c, 0x7d, 0x7c,
+			0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x7e, 0x7f, 0x80, 0x81, 0x81, 0x82,
+			0x83, 0x83, 0x83, 0x83, 0x84, 0x83, 0x83, 0x82, 0x81, 0x80, 0x7f,
+			0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d,
+			0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81,
+			0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x80, 0x80,
+			0x81, 0x81, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x81, 0x80, 0x7f,
+			0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f,
+		},
+		{ // 9
+			0x7f, 0x7e, 0x81, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80,
+			0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x81, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x7f, 0x81, 0x7f, 0x81, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80,
+			0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x7f, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x7e, 0x81, 0x7d, 0x7f, 0x7f, 0x7e, 0x7e, 0x7f,
+			0x7d, 0x7f, 0x7f, 0x7d, 0x80, 0x7e, 0x7f, 0x80, 0x7f, 0x81, 0x80,
+			0x81, 0x81, 0x81, 0x81, 0x81, 0x82, 0x81, 0x82, 0x81, 0x81, 0x81,
+			0x81, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7f, 0x7d, 0x7e, 0x7d, 0x7e, 0x7e, 0x80, 0x7e, 0x7f,
+			0x7e, 0x7e, 0x7e, 0x83, 0x84, 0x82, 0x81, 0x82, 0x80, 0x7e, 0x84,
+			0x7e, 0x81, 0x81, 0x7d, 0x7f, 0x7f, 0x7d, 0x81, 0x7f, 0x7e, 0x82,
+			0x7c, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x7d, 0x7f, 0x7c, 0x7f,
+			0x7c, 0x7c, 0x7e, 0x7c, 0x7d, 0x7d, 0x7c, 0x7f, 0x7f, 0x7d, 0x81,
+			0x80, 0x81, 0x82, 0x80, 0x84, 0x82, 0x82, 0x85, 0x81, 0x84, 0x83,
+			0x81, 0x82, 0x82, 0x81, 0x81, 0x82, 0x80, 0x80, 0x7f, 0x7d, 0x80,
+			0x7e, 0x7c, 0x7f, 0x7b, 0x7d, 0x7b, 0x7c, 0x7d, 0x7c, 0x7d, 0x7f,
+			0x7e, 0x7f, 0x80, 0x7f, 0x83, 0x80, 0x83, 0x83, 0x80, 0x83, 0x81,
+			0x81, 0x84, 0x81, 0x7f, 0x83, 0x7e, 0x7f, 0x81, 0x7e, 0x80, 0x7e,
+			0x7e, 0x80, 0x7d, 0x7f, 0x7f, 0x80, 0x82, 0x7f, 0x82, 0x76, 0x7c,
+			0x85, 0x6f, 0x7e, 0x7b, 0x72, 0x82, 0x6e, 0x7a, 0x84, 0x74, 0x83,
+			0x7f, 0x83, 0x88, 0x82, 0x88, 0x8a, 0x8a, 0x84, 0x8a, 0x87, 0x84,
+			0x87, 0x7e, 0x87, 0x82, 0x7a, 0x84, 0x7c, 0x7d, 0x7f, 0x77, 0x80,
+			0x7c, 0x79, 0x7d, 0x7e, 0x7c, 0x7a, 0x7b, 0x7e, 0x7a, 0x7b, 0x7f,
+			0x7e, 0x7e, 0x7f, 0x82, 0x83, 0x81, 0x84, 0x86, 0x84, 0x84, 0x84,
+			0x86, 0x82, 0x80, 0x83, 0x81, 0x7e, 0x7f, 0x7e, 0x7f, 0x7d, 0x7b,
+			0x80, 0x7f, 0x7d, 0x80, 0x80, 0x84, 0x80, 0x87, 0x77, 0x72, 0x90,
+			0x67, 0x74, 0x81, 0x62, 0x85, 0x6b, 0x6c, 0x8d, 0x6e, 0x80, 0x88,
+			0x81, 0x91, 0x88, 0x8b, 0x95, 0x90, 0x86, 0x91, 0x8c, 0x83, 0x8a,
+			0x7a, 0x85, 0x80, 0x70, 0x84, 0x76, 0x77, 0x7d, 0x72, 0x81, 0x7c,
+			0x75, 0x82, 0x80, 0x7a, 0x83, 0x7e, 0x81, 0x81, 0x79, 0x84, 0x7d,
+			0x7b, 0x82, 0x7e, 0x81, 0x80, 0x7f, 0x87, 0x81, 0x81, 0x8a, 0x82,
+			0x85, 0x84, 0x83, 0x85, 0x7f, 0x81, 0x82, 0x7d, 0x7e, 0x7e, 0x7c,
+			0x80, 0x7b, 0x81, 0x81, 0x82, 0x82, 0x89, 0x7b, 0x60, 0x9b, 0x65,
+			0x5e, 0x8f, 0x4f, 0x86, 0x6c, 0x59, 0x9d, 0x68, 0x7c, 0x94, 0x81,
+			0x9b, 0x8e, 0x8f, 0xa1, 0x97, 0x86, 0x99, 0x92, 0x7e, 0x8c, 0x73,
+			0x83, 0x7c, 0x60, 0x82, 0x6f, 0x6c, 0x78, 0x70, 0x7f, 0x7c, 0x75,
+			0x89, 0x89, 0x7a, 0x8c, 0x88, 0x85, 0x87, 0x7c, 0x89, 0x7c, 0x75,
+			0x80, 0x79, 0x78, 0x7b, 0x7c, 0x83, 0x7d, 0x81, 0x8d, 0x84, 0x87,
+			0x8b, 0x88, 0x88, 0x82, 0x84, 0x84, 0x7a, 0x7b, 0x7f, 0x77, 0x7a,
+			0x7a, 0x7d, 0x86, 0x7b, 0x8e, 0x56, 0x80, 0x9e, 0x30, 0x96, 0x70,
+			0x58, 0x98, 0x44, 0x93, 0x8e, 0x60, 0x9d, 0x8f, 0x90, 0x97, 0x90,
+			0x9a, 0x9e, 0x84, 0x86, 0x9e, 0x74, 0x7b, 0x7f, 0x6e, 0x83, 0x5f,
+			0x74, 0x82, 0x66, 0x78, 0x80, 0x81, 0x7f, 0x82, 0x89, 0x8f, 0x81,
+			0x85, 0x8f, 0x81, 0x7f, 0x7e, 0x80, 0x77, 0x6f, 0x79, 0x7a, 0x72,
+			0x78, 0x82, 0x82, 0x81, 0x86, 0x8f, 0x8a, 0x85, 0x8e, 0x8c, 0x83,
+			0x82, 0x82, 0x81, 0x78, 0x79, 0x7f, 0x77, 0x79, 0x76, 0x89, 0x7e,
+			0x90, 0x6c, 0x53, 0xbf, 0x42, 0x5e, 0xa0, 0x3f, 0x98, 0x5b, 0x68,
+			0xb0, 0x62, 0x86, 0xa2, 0x92, 0x94, 0x92, 0x97, 0x9c, 0x8e, 0x75,
+			0x95, 0x86, 0x62, 0x7f, 0x6e, 0x79, 0x6e, 0x65, 0x8b, 0x78, 0x73,
+			0x86, 0x91, 0x82, 0x86, 0x8c, 0x8d, 0x8a, 0x77, 0x88, 0x82, 0x72,
+			0x75, 0x77, 0x76, 0x70, 0x70, 0x7e, 0x7e, 0x76, 0x88, 0x8d, 0x88,
+			0x88, 0x8e, 0x90, 0x85, 0x82, 0x89, 0x82, 0x79, 0x7c, 0x7d, 0x7b,
+			0x74, 0x7d, 0x80, 0x7b, 0x7d, 0x85, 0x8c, 0x89, 0x93, 0x4b, 0x89,
+			0x9f, 0x1d, 0x93, 0x71, 0x4f, 0x93, 0x49, 0x92, 0x98, 0x67, 0x9d,
+			0xa5, 0x96, 0x91, 0x9c, 0x99, 0x91, 0x83, 0x72, 0x91, 0x6f, 0x5c,
+			0x7d, 0x6c, 0x74, 0x6a, 0x7a, 0x8d, 0x7c, 0x81, 0x94, 0x98, 0x81,
+			0x8c, 0x8e, 0x88, 0x7c, 0x73, 0x80, 0x73, 0x69, 0x6e, 0x79, 0x71,
+			0x70, 0x80, 0x86, 0x83, 0x85, 0x93, 0x92, 0x88, 0x89, 0x8f, 0x85,
+			0x79, 0x7f, 0x7f, 0x76, 0x74, 0x7a, 0x7f, 0x79, 0x7b, 0x88, 0x83,
+			0x84, 0x84, 0x8e, 0x8b, 0x90, 0x78, 0x48, 0xa4, 0x60, 0x31, 0x98,
+			0x50, 0x6e, 0x79, 0x62, 0xa5, 0x8b, 0x83, 0xa6, 0xad, 0x95, 0x91,
+			0x9f, 0x8c, 0x84, 0x75, 0x6e, 0x82, 0x5f, 0x60, 0x79, 0x73, 0x73,
+			0x79, 0x8d, 0x8e, 0x89, 0x8b, 0x9b, 0x92, 0x81, 0x88, 0x84, 0x7b,
+			0x6e, 0x70, 0x73, 0x6c, 0x64, 0x75, 0x7e, 0x74, 0x82, 0x8d, 0x8e,
+			0x8c, 0x8e, 0x93, 0x8e, 0x80, 0x83, 0x85, 0x75, 0x75, 0x7a, 0x79,
+			0x76, 0x79, 0x81, 0x83, 0x7f, 0x86, 0x8b, 0x86, 0x85, 0x85, 0x8e,
+			0x83, 0x84, 0x5b, 0x66, 0x91, 0x3a, 0x62, 0x7f, 0x5a, 0x7c, 0x74,
+			0x89, 0x9c, 0x8f, 0x96, 0xaa, 0xa1, 0x8e, 0x94, 0x90, 0x7e, 0x77,
+			0x6f, 0x6f, 0x71, 0x62, 0x6e, 0x7c, 0x79, 0x7b, 0x8b, 0x92, 0x8e,
+			0x90, 0x8e, 0x96, 0x87, 0x7d, 0x82, 0x79, 0x70, 0x6d, 0x70, 0x6f,
+			0x6c, 0x72, 0x7f, 0x7e, 0x80, 0x8d, 0x8f, 0x8d, 0x8d, 0x8d, 0x8b,
+			0x82, 0x7d, 0x80, 0x79, 0x74, 0x78, 0x7a, 0x79, 0x7b, 0x81, 0x85,
+			0x83, 0x86, 0x8b, 0x85, 0x86, 0x82, 0x86, 0x84, 0x83, 0x7a, 0x46,
+			0x83, 0x79, 0x3a, 0x7c, 0x75, 0x6b, 0x7b, 0x81, 0x90, 0x9b, 0x93,
+			0x92, 0xab, 0x97, 0x87, 0x91, 0x89, 0x77, 0x77, 0x70, 0x71, 0x73,
+			0x68, 0x74, 0x81, 0x7b, 0x80, 0x90, 0x8c, 0x8b, 0x90, 0x8e, 0x8a,
+			0x83, 0x7f, 0x7d, 0x78, 0x70, 0x71, 0x70, 0x70, 0x72, 0x76, 0x7f,
+			0x82, 0x85, 0x8b, 0x8e, 0x8c, 0x8b, 0x89, 0x87, 0x82, 0x7d, 0x7c,
+			0x7a, 0x78, 0x78, 0x7b, 0x7b, 0x7d, 0x81, 0x82, 0x84, 0x86, 0x85,
+			0x85, 0x86, 0x83, 0x89, 0x81, 0x88, 0x68, 0x56, 0x90, 0x5f, 0x4d,
+			0x7d, 0x74, 0x6b, 0x79, 0x8b, 0x89, 0x99, 0x92, 0x95, 0xa7, 0x95,
+			0x89, 0x91, 0x8c, 0x78, 0x7a, 0x76, 0x71, 0x72, 0x6e, 0x70, 0x7c,
+			0x7c, 0x7a, 0x89, 0x8a, 0x88, 0x8e, 0x8e, 0x89, 0x89, 0x84, 0x7f,
+			0x7e, 0x75, 0x72, 0x75, 0x72, 0x6f, 0x77, 0x7c, 0x7b, 0x83, 0x87,
+			0x88, 0x8a, 0x89, 0x88, 0x87, 0x84, 0x7f, 0x7f, 0x7e, 0x7a, 0x7b,
+			0x7c, 0x7b, 0x7e, 0x7e, 0x7d, 0x82, 0x82, 0x80, 0x83, 0x83, 0x82,
+			0x88, 0x84, 0x89, 0x74, 0x5f, 0x8b, 0x75, 0x56, 0x73, 0x7e, 0x6e,
+			0x6e, 0x86, 0x82, 0x8a, 0x91, 0x8b, 0x97, 0x9a, 0x8f, 0x89, 0x92,
+			0x8a, 0x7f, 0x7d, 0x7d, 0x79, 0x74, 0x74, 0x75, 0x78, 0x78, 0x7a,
+			0x7e, 0x82, 0x84, 0x86, 0x88, 0x87, 0x87, 0x85, 0x83, 0x80, 0x7d,
+			0x7b, 0x79, 0x78, 0x78, 0x79, 0x7b, 0x7e, 0x7e, 0x80, 0x81, 0x83,
+			0x83, 0x82, 0x83, 0x82, 0x81, 0x82, 0x81, 0x80, 0x7e, 0x7e, 0x7f,
+			0x7d, 0x7d, 0x7f, 0x7e, 0x7e, 0x80, 0x81, 0x82, 0x84, 0x85, 0x84,
+			0x8a, 0x71, 0x6d, 0x8b, 0x76, 0x65, 0x73, 0x7f, 0x75, 0x6e, 0x7f,
+			0x81, 0x83, 0x88, 0x89, 0x8a, 0x93, 0x91, 0x84, 0x8a, 0x8f, 0x84,
+			0x7c, 0x81, 0x80, 0x7a, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7c, 0x7e,
+			0x84, 0x81, 0x7e, 0x82, 0x84, 0x7f, 0x7d, 0x80, 0x7d, 0x7b, 0x7d,
+			0x7c, 0x7b, 0x7e, 0x7e, 0x7d, 0x81, 0x81, 0x81, 0x81, 0x83, 0x83,
+			0x80, 0x82, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7f,
+			0x7f, 0x7f, 0x81, 0x81, 0x81, 0x83, 0x81, 0x82, 0x84, 0x81, 0x84,
+			0x72, 0x72, 0x88, 0x74, 0x6b, 0x79, 0x7f, 0x76, 0x75, 0x81, 0x7f,
+			0x83, 0x86, 0x86, 0x87, 0x8c, 0x8d, 0x85, 0x85, 0x8a, 0x85, 0x7d,
+			0x81, 0x82, 0x7e, 0x7e, 0x7f, 0x7e, 0x80, 0x81, 0x7e, 0x7f, 0x82,
+			0x7f, 0x7d, 0x7d, 0x7f, 0x7c, 0x79, 0x7d, 0x7d, 0x7b, 0x7d, 0x7e,
+			0x7e, 0x7f, 0x80, 0x81, 0x82, 0x82, 0x83, 0x83, 0x81, 0x81, 0x80,
+			0x80, 0x7f, 0x7e, 0x7f, 0x7e, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x81,
+			0x81, 0x81, 0x82, 0x80, 0x82, 0x80, 0x7e, 0x80, 0x80, 0x80, 0x81,
+			0x82, 0x72, 0x76, 0x88, 0x76, 0x70, 0x7b, 0x81, 0x78, 0x73, 0x81,
+			0x7e, 0x7e, 0x84, 0x83, 0x84, 0x8b, 0x8a, 0x83, 0x87, 0x8b, 0x86,
+			0x80, 0x83, 0x84, 0x81, 0x7e, 0x80, 0x81, 0x7e, 0x7e, 0x7c, 0x7d,
+			0x80, 0x7d, 0x7a, 0x7e, 0x7e, 0x7c, 0x7c, 0x7e, 0x7e, 0x7c, 0x7e,
+			0x80, 0x80, 0x7f, 0x81, 0x80, 0x80, 0x7f, 0x80, 0x81, 0x7f, 0x7f,
+			0x80, 0x80, 0x81, 0x7f, 0x81, 0x81, 0x81, 0x82, 0x81, 0x82, 0x81,
+			0x80, 0x81, 0x80, 0x7e, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x80, 0x81,
+			0x80, 0x83, 0x83, 0x85, 0x7a, 0x70, 0x8a, 0x7c, 0x68, 0x79, 0x7e,
+			0x75, 0x6d, 0x7f, 0x7f, 0x7a, 0x85, 0x84, 0x88, 0x8f, 0x8c, 0x87,
+			0x8d, 0x8e, 0x85, 0x82, 0x85, 0x82, 0x7a, 0x7c, 0x7e, 0x7a, 0x79,
+			0x7c, 0x7b, 0x7c, 0x7f, 0x7e, 0x7f, 0x80, 0x81, 0x7f, 0x80, 0x81,
+			0x7f, 0x7e, 0x80, 0x7d, 0x7d, 0x7e, 0x7b, 0x7f, 0x7d, 0x7d, 0x7f,
+			0x7e, 0x7f, 0x80, 0x81, 0x81, 0x82, 0x83, 0x81, 0x82, 0x82, 0x81,
+			0x80, 0x81, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x81,
+			0x80, 0x81, 0x81, 0x81, 0x81, 0x7f, 0x84, 0x81, 0x82, 0x72, 0x70,
+			0x8e, 0x6c, 0x67, 0x83, 0x75, 0x70, 0x74, 0x80, 0x7b, 0x81, 0x85,
+			0x82, 0x93, 0x8d, 0x86, 0x92, 0x92, 0x86, 0x89, 0x89, 0x83, 0x80,
+			0x7d, 0x7b, 0x7d, 0x79, 0x74, 0x7c, 0x7b, 0x77, 0x7d, 0x80, 0x7d,
+			0x7f, 0x83, 0x81, 0x84, 0x82, 0x7f, 0x84, 0x82, 0x7d, 0x80, 0x81,
+			0x7b, 0x7b, 0x80, 0x7b, 0x79, 0x7d, 0x7c, 0x7c, 0x7b, 0x7f, 0x82,
+			0x80, 0x80, 0x85, 0x86, 0x83, 0x86, 0x86, 0x86, 0x84, 0x83, 0x84,
+			0x81, 0x7f, 0x7f, 0x7f, 0x7d, 0x7c, 0x7d, 0x7f, 0x7e, 0x7f, 0x81,
+			0x87, 0x81, 0x86, 0x77, 0x6d, 0x91, 0x63, 0x6a, 0x82, 0x63, 0x77,
+			0x6f, 0x74, 0x81, 0x7d, 0x7f, 0x8e, 0x92, 0x88, 0x97, 0x94, 0x92,
+			0x93, 0x8a, 0x8c, 0x8a, 0x7d, 0x7e, 0x7e, 0x76, 0x74, 0x74, 0x75,
+			0x74, 0x74, 0x78, 0x7e, 0x7b, 0x7f, 0x84, 0x84, 0x86, 0x85, 0x88,
+			0x88, 0x84, 0x82, 0x85, 0x80, 0x7e, 0x7c, 0x79, 0x7c, 0x77, 0x77,
+			0x7a, 0x78, 0x78, 0x7b, 0x7d, 0x7e, 0x80, 0x83, 0x86, 0x84, 0x86,
+			0x8a, 0x88, 0x85, 0x86, 0x87, 0x84, 0x82, 0x83, 0x82, 0x7f, 0x7e,
+			0x7f, 0x7e, 0x7e, 0x7d, 0x7f, 0x7f, 0x80, 0x82, 0x81, 0x83, 0x69,
+			0x81, 0x7f, 0x5f, 0x7e, 0x6b, 0x72, 0x74, 0x6a, 0x81, 0x7c, 0x7a,
+			0x89, 0x8c, 0x8a, 0x92, 0x8e, 0x96, 0x93, 0x89, 0x91, 0x8b, 0x84,
+			0x84, 0x7e, 0x7f, 0x7a, 0x74, 0x7a, 0x77, 0x73, 0x78, 0x79, 0x7a,
+			0x7a, 0x7c, 0x81, 0x80, 0x80, 0x85, 0x85, 0x85, 0x85, 0x84, 0x87,
+			0x83, 0x82, 0x84, 0x81, 0x7e, 0x7b, 0x7c, 0x7b, 0x76, 0x78, 0x79,
+			0x78, 0x77, 0x7b, 0x7e, 0x7d, 0x80, 0x85, 0x85, 0x85, 0x87, 0x89,
+			0x88, 0x87, 0x88, 0x87, 0x83, 0x83, 0x82, 0x80, 0x7e, 0x7e, 0x7e,
+			0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x80, 0x7e, 0x83, 0x76, 0x75, 0x85,
+			0x6e, 0x77, 0x78, 0x72, 0x79, 0x70, 0x79, 0x7f, 0x78, 0x81, 0x85,
+			0x84, 0x8b, 0x87, 0x8e, 0x8e, 0x88, 0x8e, 0x8c, 0x88, 0x88, 0x84,
+			0x84, 0x82, 0x7d, 0x7f, 0x7d, 0x7a, 0x7a, 0x79, 0x7a, 0x79, 0x7a,
+			0x7c, 0x7c, 0x7c, 0x7e, 0x7f, 0x80, 0x80, 0x81, 0x83, 0x82, 0x82,
+			0x83, 0x83, 0x81, 0x80, 0x81, 0x7f, 0x7d, 0x7d, 0x7d, 0x7c, 0x7b,
+			0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x80, 0x80, 0x81, 0x83, 0x82, 0x82,
+			0x83, 0x84, 0x83, 0x82, 0x82, 0x82, 0x80, 0x80, 0x81, 0x80, 0x7f,
+			0x7f, 0x7e, 0x7f, 0x7e, 0x7d, 0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x80, 0x7c, 0x7c, 0x80, 0x7b, 0x7c, 0x7d, 0x7c, 0x7d, 0x7c,
+			0x7c, 0x7f, 0x7c, 0x7f, 0x81, 0x80, 0x83, 0x82, 0x83, 0x85, 0x83,
+			0x85, 0x85, 0x83, 0x85, 0x83, 0x83, 0x84, 0x82, 0x83, 0x82, 0x81,
+			0x80, 0x80, 0x7f, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c,
+			0x7d, 0x7e, 0x7e, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80,
+			0x7f, 0x7f, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f,
+			0x7f, 0x7f, 0x80, 0x81, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81,
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x80, 0x81, 0x81, 0x80, 0x80,
+			0x80, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x80,
+			0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x7f,
+			0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x81,
+			0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x7f, 0x81, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7e, 0x81,
+			0x80, 0x7e, 0x81, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f,
+			0x80, 0x7e, 0x7f, 0x80, 0x7e, 0x7f, 0x80, 0x80, 0x7f, 0x81, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7e,
+			0x7f, 0x81, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x80, 0x7e, 0x80, 0x7e, 0x80, 0x7e, 0x7f, 0x81, 0x7e, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x82, 0x7f, 0x7f, 0x82, 0x7f, 0x7f, 0x81,
+			0x7f, 0x7e, 0x80, 0x7e, 0x80, 0x80, 0x7d, 0x81, 0x7f, 0x7f, 0x81,
+			0x7f, 0x80, 0x81, 0x7e, 0x81, 0x80, 0x7e, 0x81, 0x7f, 0x7f, 0x81,
+			0x7e, 0x80, 0x81, 0x7d, 0x82, 0x7f, 0x7f, 0x82, 0x7e, 0x81, 0x80,
+			0x7d, 0x81, 0x7f, 0x7e, 0x81, 0x7e, 0x80, 0x7e, 0x7f, 0x80, 0x7e,
+			0x80, 0x80, 0x7f, 0x81, 0x80, 0x7e, 0x82, 0x7f, 0x7e, 0x81, 0x7e,
+			0x7e, 0x80, 0x7d, 0x80, 0x80, 0x7c, 0x83, 0x7e, 0x7f, 0x82, 0x7e,
+			0x82, 0x80, 0x7f, 0x82, 0x7f, 0x7f, 0x81, 0x7e, 0x80, 0x80, 0x7d,
+			0x82, 0x7d, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x81, 0x7f, 0x7f, 0x7f,
+			0x80, 0x7f, 0x80, 0x7e, 0x80, 0x7f, 0x7e, 0x82, 0x7e, 0x7f, 0x82,
+			0x7e, 0x81, 0x80, 0x7e, 0x81, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x80, 0x7e, 0x7f, 0x81, 0x7e, 0x81, 0x80, 0x7f, 0x81,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x7e, 0x81, 0x7f, 0x7f, 0x80, 0x7f,
+			0x80, 0x7e, 0x80, 0x7f, 0x7f, 0x81, 0x7e, 0x80, 0x81, 0x7d, 0x82,
+			0x80, 0x7e, 0x82, 0x7d, 0x81, 0x80, 0x7d, 0x83, 0x7e, 0x7e, 0x82,
+			0x7d, 0x81, 0x7f, 0x7f, 0x82, 0x7e, 0x81, 0x80, 0x7f, 0x81, 0x80,
+			0x7f, 0x82, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7e, 0x80, 0x7f,
+			0x7e, 0x81, 0x7f, 0x7e, 0x81, 0x7f, 0x7f, 0x81, 0x7e, 0x80, 0x81,
+			0x7e, 0x81, 0x7f, 0x80, 0x80, 0x7e, 0x82, 0x7e, 0x7f, 0x81, 0x7c,
+			0x81, 0x7f, 0x7d, 0x82, 0x7d, 0x7f, 0x82, 0x7c, 0x82, 0x81, 0x7d,
+			0x83, 0x80, 0x7d, 0x82, 0x7f, 0x7e, 0x82, 0x7d, 0x7f, 0x82, 0x7c,
+			0x81, 0x81, 0x7d, 0x81, 0x7e, 0x7f, 0x81, 0x7d, 0x81, 0x81, 0x7e,
+			0x7f, 0x81, 0x81, 0x7e, 0x81, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x7e, 0x7f, 0x80, 0x7e, 0x80, 0x7e, 0x81, 0x80, 0x7e, 0x81, 0x80,
+			0x80, 0x80, 0x80, 0x81, 0x80, 0x7e, 0x80, 0x80, 0x7e, 0x7f, 0x7e,
+			0x80, 0x80, 0x7d, 0x81, 0x81, 0x7d, 0x81, 0x81, 0x7f, 0x81, 0x7f,
+			0x80, 0x80, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x7e, 0x82, 0x7f, 0x7e, 0x82, 0x7e, 0x7e, 0x81,
+			0x7e, 0x80, 0x80, 0x7c, 0x82, 0x7f, 0x7c, 0x82, 0x7f, 0x7f, 0x80,
+			0x7f, 0x81, 0x80, 0x7e, 0x81, 0x81, 0x7e, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x81, 0x7f, 0x7f, 0x82, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x7e, 0x81, 0x7f, 0x7e, 0x80, 0x7f, 0x80, 0x7f, 0x7e, 0x81,
+			0x7f, 0x7d, 0x82, 0x7f, 0x7f, 0x81, 0x7d, 0x82, 0x7f, 0x7e, 0x81,
+			0x80, 0x7e, 0x7f, 0x80, 0x7f, 0x7f, 0x7e, 0x80, 0x80, 0x7f, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x81, 0x81, 0x7e, 0x80, 0x7f, 0x7f, 0x80,
+			0x7e, 0x7f, 0x80, 0x7e, 0x80, 0x81, 0x7f, 0x81, 0x80, 0x7f, 0x80,
+			0x7f, 0x7e, 0x80, 0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x80, 0x7f, 0x80,
+			0x80, 0x80, 0x81, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x7e, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+		},
+	},
+	"zh": [][]byte{
+		{ // 0
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x81,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x81, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7f, 0x80,
+			0x80, 0x80, 0x82, 0x81, 0x82, 0x82, 0x83, 0x83, 0x83, 0x83, 0x83,
+			0x83, 0x83, 0x83, 0x81, 0x81, 0x7f, 0x80, 0x7e, 0x7d, 0x7d, 0x7a,
+			0x7a, 0x78, 0x78, 0x77, 0x76, 0x76, 0x77, 0x78, 0x78, 0x7a, 0x7b,
+			0x7f, 0x82, 0x83, 0x88, 0x8a, 0x8c, 0x90, 0x8f, 0x94, 0x92, 0x93,
+			0x93, 0x90, 0x90, 0x8b, 0x88, 0x84, 0x81, 0x7d, 0x77, 0x73, 0x6e,
+			0x69, 0x65, 0x65, 0x61, 0x64, 0x61, 0x66, 0x65, 0x6a, 0x69, 0x71,
+			0x73, 0x7b, 0x87, 0x86, 0x97, 0x92, 0xa5, 0x9f, 0xa5, 0xab, 0xa3,
+			0xab, 0x9f, 0xa0, 0x98, 0x90, 0x8b, 0x83, 0x7d, 0x76, 0x70, 0x6d,
+			0x68, 0x64, 0x62, 0x60, 0x5f, 0x60, 0x5e, 0x5e, 0x60, 0x60, 0x64,
+			0x64, 0x70, 0x76, 0x7c, 0x87, 0x8b, 0x99, 0x9a, 0xa5, 0xa9, 0xaa,
+			0xae, 0xaa, 0xaa, 0xa2, 0x9e, 0x97, 0x8f, 0x89, 0x81, 0x7d, 0x77,
+			0x74, 0x6f, 0x6d, 0x69, 0x66, 0x65, 0x62, 0x61, 0x60, 0x5f, 0x5d,
+			0x60, 0x60, 0x64, 0x67, 0x71, 0x74, 0x7f, 0x85, 0x8e, 0x98, 0x9a,
+			0xa7, 0xa6, 0xac, 0xab, 0xaa, 0xa9, 0xa3, 0x9f, 0x99, 0x93, 0x8b,
+			0x84, 0x7d, 0x77, 0x71, 0x6c, 0x6a, 0x63, 0x63, 0x60, 0x5f, 0x60,
+			0x5e, 0x61, 0x60, 0x63, 0x65, 0x69, 0x6e, 0x72, 0x77, 0x7e, 0x83,
+			0x8c, 0x91, 0x98, 0x9c, 0xa2, 0xa4, 0xa7, 0xa5, 0xa5, 0xa2, 0xa2,
+			0x9d, 0x95, 0x96, 0x88, 0x85, 0x7f, 0x7a, 0x73, 0x73, 0x6d, 0x6a,
+			0x66, 0x61, 0x62, 0x5f, 0x61, 0x5f, 0x5f, 0x5f, 0x5e, 0x5c, 0x63,
+			0x6b, 0x70, 0x78, 0x83, 0x8a, 0x95, 0x9b, 0xa6, 0xaa, 0xad, 0xb2,
+			0xad, 0xad, 0xa6, 0xa0, 0x9b, 0x91, 0x8e, 0x83, 0x7e, 0x79, 0x73,
+			0x72, 0x6c, 0x6f, 0x6a, 0x6b, 0x6b, 0x67, 0x63, 0x62, 0x5f, 0x5e,
+			0x59, 0x5b, 0x58, 0x54, 0x5b, 0x62, 0x71, 0x79, 0x8d, 0x99, 0xa1,
+			0xad, 0xb5, 0xb6, 0xbc, 0xb8, 0xb3, 0xaf, 0xa7, 0x9e, 0x95, 0x8f,
+			0x84, 0x7e, 0x77, 0x73, 0x6f, 0x6d, 0x6d, 0x6c, 0x6e, 0x6e, 0x6e,
+			0x6e, 0x69, 0x66, 0x63, 0x5d, 0x5e, 0x57, 0x57, 0x51, 0x53, 0x57,
+			0x5d, 0x73, 0x76, 0x8e, 0x99, 0xa4, 0xaf, 0xb6, 0xbc, 0xba, 0xbe,
+			0xb5, 0xaf, 0xab, 0x9c, 0x95, 0x8f, 0x82, 0x7f, 0x76, 0x72, 0x70,
+			0x6b, 0x6e, 0x6c, 0x6e, 0x6f, 0x6f, 0x73, 0x6e, 0x6e, 0x69, 0x66,
+			0x62, 0x5d, 0x5e, 0x55, 0x5a, 0x51, 0x5a, 0x5c, 0x67, 0x77, 0x7f,
+			0x97, 0x9a, 0xab, 0xb1, 0xb8, 0xbb, 0xba, 0xbb, 0xb4, 0xad, 0xa7,
+			0x9c, 0x94, 0x8c, 0x83, 0x7d, 0x77, 0x72, 0x6f, 0x6c, 0x6d, 0x6b,
+			0x6d, 0x6f, 0x6e, 0x70, 0x6e, 0x6f, 0x6b, 0x6b, 0x65, 0x65, 0x5f,
+			0x5d, 0x5c, 0x56, 0x59, 0x5a, 0x5d, 0x6c, 0x74, 0x81, 0x94, 0x98,
+			0xaa, 0xad, 0xb7, 0xbb, 0xbb, 0xbd, 0xb5, 0xb2, 0xa8, 0xa2, 0x98,
+			0x8f, 0x88, 0x7b, 0x7a, 0x72, 0x6d, 0x6d, 0x69, 0x6b, 0x6a, 0x6d,
+			0x6e, 0x6f, 0x71, 0x70, 0x70, 0x6d, 0x6b, 0x68, 0x66, 0x62, 0x61,
+			0x5e, 0x5d, 0x5e, 0x5d, 0x63, 0x69, 0x75, 0x7b, 0x8e, 0x93, 0x9e,
+			0xaa, 0xac, 0xb7, 0xb6, 0xb9, 0xb7, 0xb1, 0xad, 0xa4, 0x9b, 0x94,
+			0x87, 0x82, 0x79, 0x73, 0x70, 0x6b, 0x6d, 0x69, 0x6b, 0x6f, 0x6d,
+			0x73, 0x71, 0x72, 0x72, 0x70, 0x6e, 0x6c, 0x68, 0x64, 0x63, 0x5f,
+			0x60, 0x5d, 0x5f, 0x62, 0x64, 0x6e, 0x78, 0x7f, 0x90, 0x95, 0x9f,
+			0xa9, 0xac, 0xb3, 0xb6, 0xb6, 0xb5, 0xb1, 0xaa, 0xa5, 0x99, 0x92,
+			0x89, 0x80, 0x7a, 0x73, 0x6f, 0x6c, 0x6b, 0x6b, 0x6c, 0x6e, 0x6e,
+			0x72, 0x73, 0x71, 0x75, 0x70, 0x70, 0x6d, 0x69, 0x69, 0x64, 0x65,
+			0x62, 0x64, 0x64, 0x65, 0x69, 0x6c, 0x72, 0x7d, 0x80, 0x8f, 0x95,
+			0x9a, 0xa7, 0xa5, 0xaf, 0xb0, 0xb0, 0xb0, 0xab, 0xa6, 0xa2, 0x97,
+			0x92, 0x88, 0x7f, 0x7a, 0x73, 0x70, 0x6e, 0x6c, 0x6e, 0x6d, 0x6f,
+			0x72, 0x71, 0x76, 0x73, 0x76, 0x74, 0x72, 0x72, 0x6d, 0x6c, 0x69,
+			0x66, 0x67, 0x66, 0x69, 0x6a, 0x6b, 0x6e, 0x73, 0x74, 0x7e, 0x84,
+			0x87, 0x96, 0x94, 0x9e, 0xa2, 0xa3, 0xab, 0xa8, 0xab, 0xa8, 0xa4,
+			0x9f, 0x99, 0x91, 0x8b, 0x83, 0x7b, 0x76, 0x72, 0x6f, 0x6e, 0x6e,
+			0x6f, 0x6f, 0x71, 0x73, 0x75, 0x76, 0x76, 0x77, 0x75, 0x74, 0x73,
+			0x70, 0x70, 0x6d, 0x6c, 0x6b, 0x6b, 0x6e, 0x6e, 0x70, 0x72, 0x75,
+			0x77, 0x7c, 0x82, 0x86, 0x8d, 0x93, 0x94, 0x9e, 0x9d, 0xa2, 0xa6,
+			0xa1, 0xa7, 0x9e, 0x9e, 0x99, 0x90, 0x8d, 0x84, 0x7e, 0x79, 0x76,
+			0x71, 0x72, 0x6f, 0x71, 0x72, 0x72, 0x76, 0x75, 0x78, 0x76, 0x77,
+			0x77, 0x76, 0x76, 0x74, 0x73, 0x72, 0x71, 0x71, 0x70, 0x72, 0x72,
+			0x74, 0x76, 0x77, 0x79, 0x79, 0x7d, 0x7b, 0x81, 0x82, 0x88, 0x8c,
+			0x8f, 0x95, 0x96, 0x9b, 0x9d, 0x9e, 0x9f, 0x9d, 0x9b, 0x97, 0x93,
+			0x8d, 0x87, 0x82, 0x7d, 0x79, 0x76, 0x74, 0x73, 0x73, 0x73, 0x74,
+			0x75, 0x77, 0x77, 0x78, 0x78, 0x77, 0x77, 0x75, 0x74, 0x74, 0x73,
+			0x73, 0x73, 0x73, 0x74, 0x73, 0x76, 0x75, 0x78, 0x78, 0x7a, 0x78,
+			0x7e, 0x79, 0x81, 0x82, 0x84, 0x8f, 0x89, 0x98, 0x93, 0x9a, 0x9d,
+			0x9b, 0xa1, 0x9a, 0x9c, 0x97, 0x90, 0x8f, 0x86, 0x82, 0x7f, 0x78,
+			0x78, 0x74, 0x73, 0x75, 0x73, 0x76, 0x76, 0x77, 0x79, 0x77, 0x7a,
+			0x77, 0x78, 0x77, 0x75, 0x77, 0x74, 0x75, 0x75, 0x75, 0x77, 0x75,
+			0x77, 0x78, 0x79, 0x7a, 0x7a, 0x7b, 0x78, 0x7d, 0x76, 0x81, 0x7d,
+			0x84, 0x8a, 0x87, 0x96, 0x8e, 0x9b, 0x99, 0x9b, 0x9f, 0x9a, 0x9b,
+			0x96, 0x91, 0x8d, 0x87, 0x82, 0x7f, 0x79, 0x79, 0x75, 0x74, 0x75,
+			0x75, 0x75, 0x79, 0x75, 0x7a, 0x78, 0x78, 0x7a, 0x77, 0x7a, 0x78,
+			0x78, 0x78, 0x76, 0x77, 0x76, 0x75, 0x76, 0x75, 0x77, 0x76, 0x78,
+			0x78, 0x78, 0x78, 0x7b, 0x78, 0x81, 0x7e, 0x84, 0x8b, 0x88, 0x95,
+			0x92, 0x99, 0x9b, 0x9a, 0x9e, 0x9b, 0x98, 0x97, 0x8f, 0x8e, 0x88,
+			0x83, 0x82, 0x7b, 0x7b, 0x78, 0x77, 0x77, 0x76, 0x77, 0x76, 0x78,
+			0x76, 0x78, 0x78, 0x77, 0x79, 0x76, 0x79, 0x77, 0x78, 0x78, 0x77,
+			0x78, 0x77, 0x78, 0x78, 0x78, 0x79, 0x79, 0x79, 0x79, 0x7c, 0x7a,
+			0x81, 0x80, 0x86, 0x8b, 0x8a, 0x94, 0x93, 0x97, 0x9a, 0x99, 0x9b,
+			0x99, 0x95, 0x94, 0x8e, 0x8b, 0x87, 0x82, 0x81, 0x7c, 0x7b, 0x7a,
+			0x77, 0x77, 0x75, 0x74, 0x74, 0x73, 0x75, 0x73, 0x77, 0x76, 0x75,
+			0x7a, 0x76, 0x7b, 0x7b, 0x7b, 0x7f, 0x7a, 0x7f, 0x7b, 0x7c, 0x7d,
+			0x7b, 0x7d, 0x7c, 0x7d, 0x7f, 0x84, 0x83, 0x8c, 0x8b, 0x90, 0x94,
+			0x92, 0x99, 0x94, 0x97, 0x95, 0x91, 0x92, 0x8a, 0x8a, 0x85, 0x81,
+			0x80, 0x7b, 0x7a, 0x77, 0x76, 0x76, 0x75, 0x75, 0x76, 0x73, 0x76,
+			0x74, 0x75, 0x78, 0x76, 0x79, 0x79, 0x79, 0x7c, 0x7b, 0x7c, 0x7e,
+			0x7d, 0x7f, 0x7d, 0x7f, 0x7f, 0x7f, 0x82, 0x82, 0x86, 0x87, 0x8c,
+			0x8c, 0x90, 0x92, 0x91, 0x97, 0x91, 0x95, 0x91, 0x8e, 0x8d, 0x88,
+			0x87, 0x82, 0x81, 0x7d, 0x7b, 0x7a, 0x77, 0x77, 0x75, 0x76, 0x75,
+			0x76, 0x76, 0x76, 0x77, 0x77, 0x77, 0x78, 0x7a, 0x78, 0x7c, 0x79,
+			0x7b, 0x7b, 0x7a, 0x7d, 0x7a, 0x7f, 0x7d, 0x7e, 0x80, 0x7e, 0x82,
+			0x85, 0x85, 0x8d, 0x8c, 0x8f, 0x95, 0x90, 0x97, 0x94, 0x93, 0x93,
+			0x8f, 0x8d, 0x8a, 0x87, 0x84, 0x80, 0x7d, 0x7a, 0x79, 0x76, 0x76,
+			0x75, 0x74, 0x74, 0x72, 0x74, 0x73, 0x75, 0x76, 0x75, 0x78, 0x77,
+			0x7a, 0x79, 0x7a, 0x7a, 0x7a, 0x7b, 0x7d, 0x7e, 0x7f, 0x80, 0x7b,
+			0x7f, 0x7b, 0x80, 0x83, 0x84, 0x8c, 0x8b, 0x8f, 0x93, 0x94, 0x98,
+			0x97, 0x96, 0x96, 0x93, 0x8f, 0x8e, 0x88, 0x85, 0x80, 0x7d, 0x7b,
+			0x78, 0x76, 0x75, 0x74, 0x74, 0x74, 0x73, 0x75, 0x72, 0x74, 0x73,
+			0x73, 0x75, 0x74, 0x75, 0x75, 0x77, 0x75, 0x78, 0x78, 0x78, 0x7a,
+			0x78, 0x7a, 0x7a, 0x7d, 0x7c, 0x84, 0x85, 0x8b, 0x94, 0x93, 0x9c,
+			0x9b, 0x9d, 0x9e, 0x9c, 0x9b, 0x98, 0x95, 0x8f, 0x8d, 0x88, 0x83,
+			0x81, 0x7d, 0x7a, 0x79, 0x76, 0x74, 0x74, 0x71, 0x71, 0x6f, 0x6f,
+			0x6e, 0x6c, 0x6d, 0x6c, 0x6d, 0x6e, 0x6f, 0x71, 0x72, 0x74, 0x74,
+			0x76, 0x76, 0x79, 0x7a, 0x7a, 0x7d, 0x7c, 0x84, 0x88, 0x91, 0x97,
+			0x9b, 0xa0, 0xa0, 0xa3, 0xa3, 0xa3, 0xa1, 0x9c, 0x99, 0x93, 0x8f,
+			0x8a, 0x86, 0x82, 0x7e, 0x7d, 0x7a, 0x79, 0x76, 0x74, 0x73, 0x6f,
+			0x6f, 0x6c, 0x6b, 0x6b, 0x6a, 0x6b, 0x6a, 0x6b, 0x6b, 0x6e, 0x6f,
+			0x72, 0x74, 0x75, 0x77, 0x77, 0x78, 0x78, 0x79, 0x79, 0x7c, 0x82,
+			0x87, 0x8f, 0x96, 0x9a, 0xa0, 0xa1, 0xa4, 0xa4, 0xa5, 0xa2, 0xa0,
+			0x9b, 0x96, 0x91, 0x8c, 0x88, 0x83, 0x80, 0x7c, 0x7b, 0x79, 0x78,
+			0x76, 0x73, 0x71, 0x6f, 0x6e, 0x6c, 0x6b, 0x6b, 0x6a, 0x6a, 0x6a,
+			0x6a, 0x6c, 0x6e, 0x70, 0x73, 0x74, 0x76, 0x76, 0x79, 0x79, 0x7a,
+			0x7a, 0x79, 0x7b, 0x7f, 0x86, 0x8d, 0x95, 0x98, 0x9d, 0x9f, 0xa2,
+			0xa3, 0xa5, 0xa2, 0xa0, 0x9d, 0x98, 0x94, 0x8f, 0x8a, 0x86, 0x82,
+			0x7e, 0x7c, 0x7a, 0x78, 0x76, 0x75, 0x72, 0x71, 0x6e, 0x6c, 0x6c,
+			0x6a, 0x6b, 0x6a, 0x6a, 0x6b, 0x6b, 0x6d, 0x6f, 0x71, 0x73, 0x74,
+			0x76, 0x78, 0x79, 0x7a, 0x7a, 0x7a, 0x7b, 0x7c, 0x80, 0x85, 0x8b,
+			0x91, 0x96, 0x9a, 0x9d, 0x9f, 0xa1, 0xa1, 0xa0, 0x9e, 0x9b, 0x97,
+			0x94, 0x90, 0x8b, 0x87, 0x83, 0x80, 0x7e, 0x7b, 0x7a, 0x79, 0x77,
+			0x75, 0x73, 0x70, 0x6e, 0x6c, 0x6b, 0x6a, 0x6a, 0x6a, 0x6a, 0x6b,
+			0x6b, 0x6d, 0x6f, 0x71, 0x73, 0x75, 0x77, 0x78, 0x79, 0x7a, 0x7b,
+			0x7b, 0x7c, 0x7d, 0x7f, 0x83, 0x88, 0x8e, 0x93, 0x96, 0x99, 0x9c,
+			0x9e, 0xa0, 0xa0, 0x9f, 0x9d, 0x9a, 0x97, 0x94, 0x8f, 0x8b, 0x87,
+			0x84, 0x80, 0x7e, 0x7c, 0x7a, 0x78, 0x76, 0x74, 0x72, 0x70, 0x6e,
+			0x6c, 0x6b, 0x6b, 0x6b, 0x6a, 0x6a, 0x6b, 0x6b, 0x6d, 0x6f, 0x70,
+			0x72, 0x74, 0x75, 0x77, 0x78, 0x79, 0x7a, 0x7a, 0x7b, 0x7b, 0x7c,
+			0x7f, 0x84, 0x89, 0x8f, 0x92, 0x96, 0x98, 0x9c, 0x9e, 0xa0, 0xa0,
+			0x9f, 0x9d, 0x9a, 0x97, 0x93, 0x90, 0x8b, 0x88, 0x83, 0x81, 0x7e,
+			0x7c, 0x7a, 0x78, 0x76, 0x74, 0x73, 0x70, 0x6e, 0x6c, 0x6b, 0x6a,
+			0x6a, 0x69, 0x69, 0x69, 0x6a, 0x6b, 0x6d, 0x6e, 0x71, 0x73, 0x74,
+			0x76, 0x77, 0x79, 0x7a, 0x7b, 0x7b, 0x7b, 0x7c, 0x80, 0x85, 0x8a,
+			0x90, 0x93, 0x96, 0x9a, 0x9d, 0xa0, 0xa2, 0xa2, 0x9f, 0x9e, 0x9b,
+			0x98, 0x94, 0x90, 0x8b, 0x87, 0x83, 0x80, 0x7e, 0x7b, 0x79, 0x76,
+			0x75, 0x73, 0x71, 0x6e, 0x6d, 0x6a, 0x6a, 0x6a, 0x69, 0x68, 0x68,
+			0x69, 0x6a, 0x6c, 0x6d, 0x6e, 0x70, 0x73, 0x75, 0x77, 0x77, 0x79,
+			0x7a, 0x7c, 0x7c, 0x7d, 0x7d, 0x80, 0x85, 0x8b, 0x91, 0x94, 0x97,
+			0x9a, 0x9e, 0xa1, 0xa2, 0xa2, 0xa0, 0x9d, 0x9b, 0x98, 0x94, 0x8f,
+			0x8b, 0x87, 0x83, 0x80, 0x7d, 0x7a, 0x78, 0x76, 0x75, 0x72, 0x70,
+			0x6d, 0x6b, 0x6a, 0x69, 0x69, 0x67, 0x67, 0x67, 0x68, 0x69, 0x6b,
+			0x6c, 0x6e, 0x71, 0x73, 0x75, 0x77, 0x79, 0x7b, 0x7b, 0x7c, 0x7c,
+			0x7d, 0x81, 0x86, 0x8c, 0x91, 0x95, 0x98, 0x9c, 0x9f, 0xa2, 0xa3,
+			0xa2, 0xa0, 0x9e, 0x9b, 0x98, 0x94, 0x90, 0x8a, 0x87, 0x83, 0x80,
+			0x7d, 0x7a, 0x78, 0x75, 0x74, 0x72, 0x6f, 0x6d, 0x6c, 0x6b, 0x69,
+			0x68, 0x67, 0x66, 0x66, 0x68, 0x69, 0x6a, 0x6c, 0x6f, 0x71, 0x74,
+			0x75, 0x77, 0x79, 0x7b, 0x7b, 0x7b, 0x7c, 0x7e, 0x84, 0x88, 0x90,
+			0x93, 0x97, 0x9a, 0x9e, 0xa1, 0xa3, 0xa4, 0xa1, 0xa0, 0x9c, 0x9a,
+			0x95, 0x92, 0x8d, 0x89, 0x84, 0x82, 0x7e, 0x7b, 0x79, 0x77, 0x74,
+			0x72, 0x70, 0x6e, 0x6c, 0x6b, 0x69, 0x67, 0x66, 0x65, 0x65, 0x67,
+			0x68, 0x69, 0x6b, 0x6e, 0x70, 0x73, 0x75, 0x77, 0x79, 0x7a, 0x7b,
+			0x7c, 0x7c, 0x7e, 0x84, 0x88, 0x90, 0x93, 0x98, 0x9a, 0x9f, 0xa1,
+			0xa3, 0xa5, 0xa2, 0xa1, 0x9d, 0x9a, 0x96, 0x92, 0x8d, 0x89, 0x84,
+			0x81, 0x7e, 0x7c, 0x79, 0x76, 0x74, 0x71, 0x6f, 0x6d, 0x6c, 0x69,
+			0x68, 0x66, 0x65, 0x65, 0x65, 0x65, 0x67, 0x69, 0x6b, 0x6e, 0x71,
+			0x73, 0x76, 0x77, 0x79, 0x7a, 0x7b, 0x7d, 0x7f, 0x84, 0x88, 0x90,
+			0x94, 0x99, 0x9b, 0x9f, 0xa2, 0xa4, 0xa5, 0xa3, 0xa1, 0x9e, 0x9c,
+			0x96, 0x93, 0x8d, 0x8a, 0x85, 0x82, 0x7e, 0x7c, 0x79, 0x76, 0x74,
+			0x72, 0x70, 0x6d, 0x6b, 0x67, 0x67, 0x64, 0x65, 0x63, 0x64, 0x63,
+			0x65, 0x68, 0x6b, 0x6d, 0x70, 0x73, 0x75, 0x77, 0x79, 0x79, 0x7c,
+			0x7e, 0x82, 0x88, 0x8d, 0x93, 0x97, 0x9c, 0x9e, 0xa3, 0xa4, 0xa6,
+			0xa4, 0xa3, 0x9f, 0x9d, 0x98, 0x94, 0x8f, 0x8a, 0x86, 0x82, 0x80,
+			0x7c, 0x7b, 0x78, 0x77, 0x74, 0x72, 0x6f, 0x6c, 0x69, 0x67, 0x65,
+			0x64, 0x63, 0x63, 0x63, 0x64, 0x66, 0x69, 0x6d, 0x70, 0x72, 0x74,
+			0x76, 0x78, 0x7a, 0x7d, 0x7f, 0x84, 0x89, 0x90, 0x95, 0x99, 0x9e,
+			0xa0, 0xa4, 0xa4, 0xa6, 0xa3, 0xa2, 0x9e, 0x9a, 0x96, 0x92, 0x8e,
+			0x88, 0x86, 0x81, 0x7f, 0x7b, 0x7a, 0x77, 0x76, 0x73, 0x71, 0x6d,
+			0x6b, 0x68, 0x67, 0x65, 0x64, 0x64, 0x63, 0x64, 0x66, 0x69, 0x6b,
+			0x6f, 0x70, 0x73, 0x74, 0x77, 0x78, 0x7b, 0x7d, 0x83, 0x87, 0x8e,
+			0x93, 0x98, 0x9c, 0x9f, 0xa2, 0xa4, 0xa5, 0xa3, 0xa2, 0x9e, 0x9c,
+			0x96, 0x93, 0x8e, 0x8a, 0x86, 0x83, 0x80, 0x7d, 0x7b, 0x78, 0x77,
+			0x74, 0x71, 0x6e, 0x6c, 0x6a, 0x68, 0x66, 0x66, 0x64, 0x64, 0x65,
+			0x67, 0x68, 0x6b, 0x6e, 0x70, 0x72, 0x74, 0x75, 0x78, 0x7a, 0x7e,
+			0x84, 0x8a, 0x8f, 0x93, 0x98, 0x9b, 0xa0, 0xa2, 0xa4, 0xa3, 0xa2,
+			0xa0, 0x9d, 0x99, 0x95, 0x91, 0x8c, 0x89, 0x85, 0x82, 0x7f, 0x7d,
+			0x7a, 0x78, 0x76, 0x73, 0x70, 0x6e, 0x6c, 0x6a, 0x69, 0x67, 0x67,
+			0x67, 0x67, 0x68, 0x6a, 0x6c, 0x6e, 0x70, 0x72, 0x73, 0x75, 0x77,
+			0x7a, 0x7c, 0x80, 0x86, 0x8c, 0x8f, 0x95, 0x98, 0x9b, 0x9f, 0xa0,
+			0xa1, 0xa0, 0x9f, 0x9c, 0x9a, 0x96, 0x93, 0x8f, 0x8b, 0x87, 0x83,
+			0x80, 0x7e, 0x7b, 0x78, 0x75, 0x73, 0x71, 0x6e, 0x6c, 0x6b, 0x6a,
+			0x69, 0x6a, 0x69, 0x6a, 0x6a, 0x6d, 0x6e, 0x70, 0x72, 0x73, 0x75,
+			0x77, 0x79, 0x7b, 0x7e, 0x82, 0x88, 0x8d, 0x91, 0x95, 0x98, 0x9a,
+			0x9d, 0x9e, 0x9d, 0x9b, 0x9a, 0x97, 0x94, 0x91, 0x8e, 0x8a, 0x87,
+			0x84, 0x81, 0x7f, 0x7d, 0x7a, 0x78, 0x76, 0x74, 0x72, 0x70, 0x6f,
+			0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x73, 0x74,
+			0x75, 0x77, 0x78, 0x7b, 0x7c, 0x81, 0x84, 0x89, 0x8d, 0x91, 0x94,
+			0x96, 0x98, 0x99, 0x9a, 0x99, 0x98, 0x95, 0x93, 0x90, 0x8d, 0x8a,
+			0x88, 0x85, 0x82, 0x80, 0x7e, 0x7c, 0x7a, 0x78, 0x76, 0x74, 0x72,
+			0x70, 0x6f, 0x6f, 0x6e, 0x6f, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74,
+			0x75, 0x76, 0x78, 0x78, 0x79, 0x7a, 0x7c, 0x80, 0x83, 0x87, 0x8b,
+			0x8e, 0x91, 0x94, 0x96, 0x97, 0x97, 0x96, 0x95, 0x93, 0x91, 0x8e,
+			0x8b, 0x88, 0x86, 0x83, 0x82, 0x80, 0x7e, 0x7d, 0x7b, 0x79, 0x77,
+			0x75, 0x74, 0x73, 0x71, 0x71, 0x71, 0x71, 0x72, 0x74, 0x75, 0x78,
+			0x7a, 0x7c, 0x7e, 0x7f, 0x81, 0x82, 0x83, 0x83, 0x82, 0x81, 0x80,
+			0x7e, 0x7e, 0x7c, 0x7c, 0x7a, 0x7a, 0x7b, 0x7d, 0x80, 0x83, 0x86,
+			0x87, 0x8a, 0x8c, 0x8e, 0x8f, 0x90, 0x8f, 0x8e, 0x8d, 0x8b, 0x89,
+			0x86, 0x85, 0x82, 0x80, 0x7e, 0x7e, 0x7c, 0x7b, 0x79, 0x79, 0x76,
+			0x76, 0x74, 0x73, 0x72, 0x72, 0x72, 0x73, 0x74, 0x75, 0x77, 0x79,
+			0x7c, 0x7e, 0x81, 0x82, 0x85, 0x86, 0x88, 0x89, 0x8a, 0x89, 0x89,
+			0x89, 0x87, 0x86, 0x84, 0x83, 0x81, 0x80, 0x7e, 0x7e, 0x7c, 0x7c,
+			0x7b, 0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x7b, 0x7b, 0x7c, 0x7c, 0x7d,
+			0x7e, 0x7f, 0x7f, 0x81, 0x82, 0x84, 0x85, 0x86, 0x88, 0x89, 0x8b,
+			0x8b, 0x8c, 0x8b, 0x8b, 0x89, 0x88, 0x86, 0x84, 0x82, 0x7f, 0x7d,
+			0x7b, 0x7a, 0x78, 0x77, 0x76, 0x76, 0x75, 0x75, 0x75, 0x75, 0x75,
+			0x75, 0x76, 0x76, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7c, 0x7d, 0x7f,
+			0x82, 0x84, 0x86, 0x89, 0x8b, 0x8c, 0x8d, 0x8e, 0x8e, 0x8e, 0x8d,
+			0x8b, 0x8a, 0x88, 0x86, 0x83, 0x81, 0x7f, 0x7e, 0x7c, 0x7b, 0x7a,
+			0x79, 0x78, 0x78, 0x77, 0x77, 0x77, 0x76, 0x76, 0x77, 0x77, 0x78,
+			0x79, 0x7a, 0x7b, 0x7d, 0x7e, 0x80, 0x81, 0x83, 0x85, 0x87, 0x89,
+			0x8a, 0x8a, 0x8b, 0x8b, 0x8a, 0x89, 0x88, 0x86, 0x84, 0x82, 0x81,
+			0x7f, 0x7e, 0x7c, 0x7b, 0x7a, 0x7a, 0x79, 0x79, 0x79, 0x79, 0x79,
+			0x79, 0x79, 0x79, 0x7a, 0x7a, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x80,
+			0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x87, 0x87, 0x87, 0x87,
+			0x86, 0x85, 0x84, 0x83, 0x82, 0x80, 0x7f, 0x7e, 0x7e, 0x7d, 0x7c,
+			0x7c, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c,
+			0x7d, 0x7d, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x81, 0x81, 0x82, 0x82,
+			0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x82, 0x82, 0x81, 0x81, 0x80,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80,
+			0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x7f,
+		},
+		{ // 1
+			0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x80, 0x81, 0x81, 0x81,
+			0x81, 0x81, 0x81, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7b, 0x7d,
+			0x7b, 0x7e, 0x7c, 0x7e, 0x7f, 0x7e, 0x82, 0x82, 0x83, 0x85, 0x86,
+			0x87, 0x89, 0x88, 0x8a, 0x89, 0x89, 0x87, 0x88, 0x84, 0x84, 0x7f,
+			0x7e, 0x7a, 0x77, 0x74, 0x71, 0x6e, 0x6c, 0x6a, 0x6a, 0x6b, 0x6b,
+			0x71, 0x70, 0x78, 0x79, 0x80, 0x84, 0x8a, 0x8e, 0x94, 0x97, 0x9c,
+			0x9e, 0x9e, 0xa2, 0x9d, 0x9e, 0x9a, 0x95, 0x92, 0x8c, 0x85, 0x80,
+			0x77, 0x73, 0x6a, 0x66, 0x60, 0x5c, 0x58, 0x58, 0x55, 0x59, 0x5b,
+			0x5d, 0x67, 0x69, 0x72, 0x79, 0x80, 0x88, 0x91, 0x95, 0x9d, 0xa1,
+			0xa5, 0xa8, 0xa9, 0xa8, 0xa9, 0xa3, 0xa2, 0x9b, 0x96, 0x90, 0x89,
+			0x82, 0x7a, 0x72, 0x6a, 0x65, 0x5d, 0x5a, 0x53, 0x55, 0x4f, 0x56,
+			0x55, 0x5c, 0x62, 0x67, 0x6f, 0x77, 0x7f, 0x88, 0x90, 0x96, 0xa0,
+			0xa1, 0xaa, 0xa8, 0xad, 0xab, 0xaa, 0xa6, 0xa2, 0x9c, 0x97, 0x8e,
+			0x89, 0x80, 0x78, 0x70, 0x67, 0x61, 0x5a, 0x56, 0x52, 0x52, 0x4f,
+			0x55, 0x53, 0x5d, 0x61, 0x68, 0x71, 0x78, 0x80, 0x8b, 0x90, 0x9b,
+			0xa0, 0xa5, 0xab, 0xab, 0xae, 0xac, 0xab, 0xa6, 0xa3, 0x9a, 0x97,
+			0x8d, 0x87, 0x7d, 0x76, 0x6c, 0x65, 0x5d, 0x58, 0x53, 0x50, 0x50,
+			0x4e, 0x56, 0x53, 0x5f, 0x61, 0x6a, 0x73, 0x7a, 0x83, 0x8d, 0x93,
+			0x9e, 0xa2, 0xa8, 0xad, 0xae, 0xb0, 0xae, 0xad, 0xa7, 0xa4, 0x9b,
+			0x96, 0x8d, 0x86, 0x7b, 0x74, 0x68, 0x63, 0x5a, 0x56, 0x4f, 0x50,
+			0x4b, 0x4e, 0x53, 0x52, 0x5f, 0x60, 0x6b, 0x74, 0x7c, 0x86, 0x91,
+			0x96, 0xa2, 0xa5, 0xae, 0xaf, 0xb3, 0xb2, 0xb3, 0xad, 0xaa, 0xa2,
+			0x9d, 0x94, 0x8c, 0x82, 0x79, 0x70, 0x64, 0x5f, 0x55, 0x53, 0x4c,
+			0x4e, 0x49, 0x52, 0x4d, 0x5d, 0x59, 0x6a, 0x6d, 0x75, 0x85, 0x85,
+			0x95, 0x9b, 0x9f, 0xaa, 0xab, 0xac, 0xb5, 0xa8, 0xb3, 0xa4, 0xa6,
+			0x9e, 0x96, 0x92, 0x88, 0x7f, 0x7b, 0x6c, 0x68, 0x61, 0x57, 0x59,
+			0x4f, 0x53, 0x50, 0x52, 0x55, 0x5a, 0x60, 0x66, 0x6f, 0x76, 0x80,
+			0x88, 0x92, 0x99, 0xa2, 0xa6, 0xac, 0xb0, 0xaf, 0xb3, 0xad, 0xaa,
+			0xa6, 0x9d, 0x98, 0x8f, 0x86, 0x7e, 0x74, 0x6b, 0x62, 0x5c, 0x56,
+			0x50, 0x50, 0x4d, 0x4d, 0x54, 0x52, 0x5e, 0x61, 0x68, 0x75, 0x79,
+			0x84, 0x8f, 0x94, 0x9e, 0xa4, 0xa8, 0xaf, 0xb0, 0xb1, 0xb2, 0xad,
+			0xaa, 0xa4, 0x9b, 0x98, 0x8b, 0x86, 0x7a, 0x72, 0x68, 0x61, 0x58,
+			0x55, 0x4d, 0x4f, 0x4a, 0x4e, 0x52, 0x53, 0x5e, 0x61, 0x6c, 0x74,
+			0x7e, 0x86, 0x93, 0x96, 0xa4, 0xa4, 0xae, 0xaf, 0xb1, 0xb5, 0xae,
+			0xb1, 0xa7, 0xa2, 0x9d, 0x91, 0x8c, 0x81, 0x76, 0x71, 0x61, 0x5f,
+			0x55, 0x51, 0x4e, 0x4c, 0x49, 0x51, 0x4e, 0x59, 0x5f, 0x63, 0x70,
+			0x76, 0x81, 0x8b, 0x93, 0x9b, 0xa4, 0xa7, 0xaf, 0xaf, 0xb4, 0xb0,
+			0xb2, 0xab, 0xa8, 0xa0, 0x9a, 0x90, 0x88, 0x7e, 0x75, 0x6b, 0x62,
+			0x5b, 0x54, 0x4f, 0x4d, 0x4c, 0x49, 0x52, 0x4e, 0x5c, 0x5e, 0x68,
+			0x71, 0x7a, 0x83, 0x8f, 0x96, 0x9f, 0xa7, 0xa9, 0xb3, 0xaf, 0xb7,
+			0xb2, 0xb0, 0xae, 0xa4, 0xa0, 0x97, 0x8d, 0x87, 0x79, 0x74, 0x67,
+			0x60, 0x58, 0x51, 0x4d, 0x4c, 0x49, 0x4e, 0x4e, 0x53, 0x5d, 0x5e,
+			0x6d, 0x71, 0x7d, 0x86, 0x90, 0x98, 0xa2, 0xa6, 0xae, 0xb0, 0xb2,
+			0xb5, 0xb1, 0xb0, 0xab, 0xa4, 0x9f, 0x95, 0x8d, 0x85, 0x78, 0x73,
+			0x64, 0x5f, 0x55, 0x50, 0x4b, 0x4a, 0x47, 0x4d, 0x4e, 0x52, 0x5e,
+			0x5f, 0x6e, 0x74, 0x7f, 0x8a, 0x93, 0x9b, 0xa6, 0xa8, 0xb1, 0xb2,
+			0xb4, 0xb7, 0xb1, 0xb2, 0xa8, 0xa3, 0x9c, 0x92, 0x8b, 0x81, 0x77,
+			0x6f, 0x62, 0x5d, 0x53, 0x4e, 0x4a, 0x49, 0x48, 0x4d, 0x4c, 0x57,
+			0x5b, 0x63, 0x70, 0x75, 0x84, 0x8b, 0x96, 0xa0, 0xa8, 0xac, 0xb5,
+			0xb3, 0xb9, 0xb6, 0xb3, 0xb1, 0xa8, 0xa2, 0x9a, 0x8f, 0x8a, 0x7d,
+			0x75, 0x6b, 0x60, 0x5a, 0x51, 0x4d, 0x48, 0x49, 0x46, 0x4e, 0x4b,
+			0x59, 0x5a, 0x66, 0x6f, 0x77, 0x84, 0x8c, 0x97, 0xa1, 0xa8, 0xad,
+			0xb6, 0xb4, 0xbb, 0xb5, 0xb5, 0xaf, 0xa7, 0xa2, 0x99, 0x90, 0x89,
+			0x7b, 0x75, 0x68, 0x60, 0x57, 0x50, 0x4b, 0x49, 0x47, 0x48, 0x4c,
+			0x4e, 0x59, 0x5b, 0x68, 0x6e, 0x7a, 0x84, 0x8f, 0x98, 0xa3, 0xa9,
+			0xb0, 0xb4, 0xb7, 0xb8, 0xb6, 0xb3, 0xae, 0xa7, 0xa0, 0x97, 0x8e,
+			0x86, 0x7a, 0x72, 0x65, 0x5f, 0x54, 0x50, 0x48, 0x4a, 0x44, 0x4b,
+			0x4a, 0x51, 0x5a, 0x5d, 0x6c, 0x70, 0x7f, 0x88, 0x93, 0x9c, 0xa7,
+			0xab, 0xb3, 0xb6, 0xb7, 0xb8, 0xb5, 0xb1, 0xac, 0xa3, 0x9e, 0x92,
+			0x8c, 0x81, 0x78, 0x6e, 0x63, 0x5b, 0x53, 0x4d, 0x49, 0x48, 0x45,
+			0x4c, 0x4a, 0x56, 0x58, 0x63, 0x6c, 0x75, 0x82, 0x8c, 0x96, 0xa1,
+			0xa8, 0xaf, 0xb5, 0xb6, 0xba, 0xb7, 0xb5, 0xb0, 0xaa, 0xa2, 0x9b,
+			0x91, 0x8a, 0x7d, 0x77, 0x69, 0x62, 0x57, 0x52, 0x4b, 0x49, 0x46,
+			0x48, 0x4b, 0x4c, 0x59, 0x59, 0x69, 0x6e, 0x7a, 0x85, 0x8f, 0x99,
+			0xa4, 0xaa, 0xb2, 0xb6, 0xb7, 0xba, 0xb5, 0xb4, 0xae, 0xa7, 0xa0,
+			0x97, 0x8f, 0x85, 0x7b, 0x73, 0x66, 0x60, 0x55, 0x50, 0x4a, 0x48,
+			0x46, 0x49, 0x4a, 0x50, 0x58, 0x5d, 0x6a, 0x71, 0x7d, 0x88, 0x92,
+			0x9c, 0xa6, 0xac, 0xb3, 0xb6, 0xb8, 0xb9, 0xb5, 0xb2, 0xac, 0xa5,
+			0x9e, 0x93, 0x8d, 0x81, 0x79, 0x6e, 0x63, 0x5d, 0x52, 0x4f, 0x48,
+			0x48, 0x45, 0x4b, 0x4a, 0x53, 0x59, 0x60, 0x6d, 0x73, 0x80, 0x8a,
+			0x94, 0x9e, 0xa8, 0xac, 0xb5, 0xb5, 0xb9, 0xb8, 0xb5, 0xb1, 0xab,
+			0xa3, 0x9d, 0x92, 0x8b, 0x7f, 0x76, 0x6c, 0x62, 0x5a, 0x52, 0x4d,
+			0x48, 0x48, 0x45, 0x4d, 0x49, 0x58, 0x58, 0x65, 0x6d, 0x76, 0x83,
+			0x8b, 0x97, 0xa0, 0xa9, 0xae, 0xb6, 0xb5, 0xb9, 0xb6, 0xb4, 0xae,
+			0xa8, 0xa1, 0x99, 0x8f, 0x88, 0x7c, 0x76, 0x68, 0x62, 0x58, 0x52,
+			0x4d, 0x49, 0x47, 0x47, 0x4c, 0x4d, 0x59, 0x5a, 0x69, 0x6d, 0x7a,
+			0x84, 0x8e, 0x99, 0xa2, 0xa9, 0xb1, 0xb4, 0xb7, 0xb7, 0xb5, 0xb3,
+			0xac, 0xa7, 0x9f, 0x97, 0x8e, 0x85, 0x7b, 0x73, 0x68, 0x61, 0x57,
+			0x54, 0x4b, 0x4c, 0x46, 0x4b, 0x4c, 0x50, 0x59, 0x5e, 0x68, 0x71,
+			0x7a, 0x86, 0x90, 0x99, 0xa5, 0xa9, 0xb2, 0xb4, 0xb8, 0xb7, 0xb6,
+			0xb1, 0xad, 0xa5, 0x9e, 0x96, 0x8d, 0x84, 0x7b, 0x71, 0x67, 0x5f,
+			0x55, 0x52, 0x4a, 0x4b, 0x45, 0x4c, 0x4a, 0x53, 0x58, 0x5f, 0x69,
+			0x72, 0x7c, 0x87, 0x92, 0x9b, 0xa6, 0xab, 0xb4, 0xb4, 0xb8, 0xb6,
+			0xb5, 0xaf, 0xab, 0xa2, 0x9c, 0x92, 0x8b, 0x80, 0x78, 0x6c, 0x64,
+			0x5b, 0x55, 0x4e, 0x4c, 0x49, 0x4a, 0x4d, 0x4e, 0x59, 0x5b, 0x68,
+			0x6f, 0x79, 0x84, 0x8f, 0x97, 0xa4, 0xa8, 0xb1, 0xb3, 0xb7, 0xb6,
+			0xb5, 0xb0, 0xab, 0xa4, 0x9d, 0x95, 0x8c, 0x84, 0x7a, 0x71, 0x67,
+			0x5f, 0x56, 0x52, 0x4b, 0x4d, 0x47, 0x50, 0x4c, 0x57, 0x5a, 0x63,
+			0x6d, 0x75, 0x81, 0x8b, 0x94, 0x9e, 0xa6, 0xab, 0xb2, 0xb3, 0xb6,
+			0xb3, 0xb2, 0xab, 0xa7, 0x9f, 0x98, 0x90, 0x89, 0x7e, 0x78, 0x6b,
+			0x65, 0x59, 0x55, 0x4d, 0x4e, 0x48, 0x4d, 0x4d, 0x52, 0x5a, 0x5e,
+			0x6b, 0x70, 0x7e, 0x85, 0x92, 0x98, 0xa4, 0xa7, 0xb1, 0xb0, 0xb6,
+			0xb2, 0xb3, 0xad, 0xa8, 0xa1, 0x9a, 0x93, 0x8b, 0x82, 0x79, 0x70,
+			0x67, 0x5e, 0x57, 0x51, 0x4d, 0x4c, 0x4a, 0x50, 0x4f, 0x59, 0x5b,
+			0x67, 0x6e, 0x79, 0x82, 0x8e, 0x94, 0xa0, 0xa4, 0xac, 0xaf, 0xb2,
+			0xb3, 0xb2, 0xaf, 0xaa, 0xa3, 0x9d, 0x95, 0x8d, 0x86, 0x7b, 0x75,
+			0x69, 0x63, 0x5a, 0x55, 0x4f, 0x50, 0x49, 0x51, 0x4d, 0x57, 0x5b,
+			0x62, 0x6d, 0x73, 0x80, 0x88, 0x92, 0x9b, 0xa3, 0xa8, 0xaf, 0xb0,
+			0xb5, 0xb0, 0xb2, 0xa9, 0xa7, 0x9e, 0x98, 0x90, 0x89, 0x7f, 0x78,
+			0x6d, 0x67, 0x5d, 0x58, 0x52, 0x4e, 0x4e, 0x4a, 0x51, 0x4e, 0x5a,
+			0x5b, 0x67, 0x6d, 0x78, 0x81, 0x8c, 0x93, 0x9e, 0xa3, 0xaa, 0xaf,
+			0xb1, 0xb4, 0xb1, 0xb0, 0xaa, 0xa6, 0x9d, 0x98, 0x8f, 0x89, 0x7e,
+			0x77, 0x6c, 0x66, 0x5c, 0x58, 0x50, 0x4f, 0x4c, 0x4d, 0x50, 0x52,
+			0x5b, 0x5e, 0x6a, 0x6f, 0x7a, 0x84, 0x8d, 0x95, 0x9e, 0xa3, 0xab,
+			0xac, 0xb1, 0xb0, 0xb0, 0xac, 0xa8, 0xa2, 0x9c, 0x95, 0x8e, 0x86,
+			0x7d, 0x76, 0x6c, 0x65, 0x5b, 0x59, 0x50, 0x51, 0x4b, 0x50, 0x4f,
+			0x55, 0x5b, 0x60, 0x6b, 0x71, 0x7c, 0x85, 0x8f, 0x96, 0xa0, 0xa4,
+			0xac, 0xac, 0xb1, 0xaf, 0xb0, 0xaa, 0xa7, 0xa1, 0x99, 0x94, 0x8b,
+			0x85, 0x7c, 0x74, 0x6c, 0x64, 0x5d, 0x59, 0x51, 0x53, 0x4b, 0x53,
+			0x50, 0x57, 0x5e, 0x61, 0x6d, 0x71, 0x7e, 0x85, 0x8f, 0x97, 0xa0,
+			0xa4, 0xac, 0xab, 0xb0, 0xae, 0xae, 0xab, 0xa5, 0xa1, 0x98, 0x93,
+			0x8b, 0x84, 0x7c, 0x73, 0x6c, 0x64, 0x5c, 0x59, 0x51, 0x53, 0x4d,
+			0x53, 0x52, 0x57, 0x5f, 0x62, 0x6e, 0x73, 0x7d, 0x86, 0x8f, 0x97,
+			0x9f, 0xa3, 0xaa, 0xaa, 0xaf, 0xab, 0xad, 0xa7, 0xa3, 0x9e, 0x96,
+			0x92, 0x89, 0x83, 0x7c, 0x73, 0x6c, 0x64, 0x5e, 0x59, 0x53, 0x55,
+			0x4e, 0x56, 0x53, 0x5b, 0x60, 0x64, 0x6f, 0x75, 0x7e, 0x88, 0x8f,
+			0x98, 0xa0, 0xa3, 0xab, 0xa9, 0xae, 0xaa, 0xab, 0xa5, 0xa3, 0x9b,
+			0x96, 0x8f, 0x88, 0x82, 0x7a, 0x72, 0x6c, 0x64, 0x5e, 0x59, 0x54,
+			0x55, 0x4f, 0x57, 0x53, 0x5d, 0x60, 0x67, 0x70, 0x76, 0x80, 0x89,
+			0x90, 0x9a, 0x9f, 0xa4, 0xaa, 0xa9, 0xae, 0xa8, 0xaa, 0xa4, 0xa2,
+			0x9b, 0x95, 0x90, 0x88, 0x83, 0x7b, 0x74, 0x6d, 0x66, 0x5f, 0x5c,
+			0x54, 0x57, 0x50, 0x56, 0x56, 0x5a, 0x62, 0x64, 0x70, 0x74, 0x7e,
+			0x87, 0x8e, 0x96, 0x9e, 0xa1, 0xa8, 0xa8, 0xab, 0xaa, 0xa8, 0xa4,
+			0xa1, 0x9b, 0x95, 0x90, 0x88, 0x83, 0x7b, 0x75, 0x6e, 0x69, 0x60,
+			0x5f, 0x57, 0x58, 0x54, 0x56, 0x59, 0x5a, 0x62, 0x64, 0x6e, 0x73,
+			0x7c, 0x84, 0x8c, 0x93, 0x9b, 0x9e, 0xa5, 0xa6, 0xa7, 0xa9, 0xa5,
+			0xa5, 0x9e, 0x9b, 0x95, 0x8f, 0x89, 0x83, 0x7b, 0x77, 0x6e, 0x6a,
+			0x63, 0x5f, 0x5c, 0x59, 0x59, 0x58, 0x5c, 0x5c, 0x65, 0x64, 0x71,
+			0x73, 0x7c, 0x84, 0x8a, 0x91, 0x99, 0x9c, 0xa3, 0xa4, 0xa5, 0xa9,
+			0xa2, 0xa5, 0x9d, 0x9b, 0x94, 0x90, 0x88, 0x84, 0x7a, 0x78, 0x6e,
+			0x6b, 0x63, 0x61, 0x5c, 0x5b, 0x5a, 0x59, 0x5e, 0x5d, 0x66, 0x67,
+			0x71, 0x74, 0x7e, 0x83, 0x8c, 0x90, 0x9a, 0x9b, 0xa3, 0xa3, 0xa5,
+			0xa6, 0xa1, 0xa2, 0x9b, 0x99, 0x92, 0x8d, 0x87, 0x81, 0x7a, 0x75,
+			0x6c, 0x6b, 0x62, 0x62, 0x5d, 0x5d, 0x5c, 0x5c, 0x61, 0x60, 0x6a,
+			0x69, 0x75, 0x77, 0x80, 0x86, 0x8d, 0x93, 0x9a, 0x9d, 0xa1, 0xa3,
+			0xa2, 0xa4, 0xa0, 0x9f, 0x9a, 0x95, 0x90, 0x8a, 0x83, 0x7f, 0x76,
+			0x74, 0x6a, 0x69, 0x62, 0x61, 0x5e, 0x5e, 0x5c, 0x60, 0x62, 0x66,
+			0x6c, 0x6f, 0x78, 0x7b, 0x84, 0x89, 0x90, 0x95, 0x9c, 0x9c, 0xa3,
+			0x9f, 0xa4, 0xa0, 0x9e, 0x9b, 0x95, 0x91, 0x8b, 0x85, 0x80, 0x79,
+			0x73, 0x6e, 0x68, 0x65, 0x61, 0x61, 0x5d, 0x60, 0x5f, 0x64, 0x65,
+			0x6c, 0x6f, 0x76, 0x7c, 0x82, 0x89, 0x8e, 0x94, 0x99, 0x9c, 0xa0,
+			0xa0, 0xa0, 0xa2, 0x9c, 0x9d, 0x95, 0x93, 0x8d, 0x86, 0x82, 0x7b,
+			0x75, 0x71, 0x6a, 0x68, 0x63, 0x61, 0x5f, 0x5f, 0x60, 0x62, 0x65,
+			0x69, 0x6e, 0x73, 0x7a, 0x7e, 0x85, 0x8a, 0x90, 0x95, 0x99, 0x9c,
+			0x9f, 0x9f, 0xa2, 0x9d, 0x9e, 0x99, 0x95, 0x90, 0x8a, 0x85, 0x7f,
+			0x79, 0x75, 0x6d, 0x6b, 0x65, 0x63, 0x62, 0x5f, 0x61, 0x60, 0x65,
+			0x66, 0x6d, 0x6f, 0x77, 0x7a, 0x81, 0x86, 0x8c, 0x91, 0x96, 0x99,
+			0x9c, 0x9d, 0x9f, 0x9e, 0x9d, 0x9b, 0x95, 0x94, 0x8c, 0x89, 0x81,
+			0x7d, 0x77, 0x73, 0x6d, 0x6b, 0x65, 0x65, 0x61, 0x63, 0x61, 0x64,
+			0x66, 0x69, 0x6f, 0x71, 0x79, 0x7b, 0x84, 0x86, 0x8e, 0x91, 0x95,
+			0x99, 0x9b, 0x9d, 0x9e, 0x9c, 0x9c, 0x97, 0x95, 0x8f, 0x8b, 0x86,
+			0x80, 0x7c, 0x76, 0x71, 0x6d, 0x69, 0x66, 0x65, 0x62, 0x64, 0x63,
+			0x67, 0x68, 0x6d, 0x70, 0x76, 0x7b, 0x7f, 0x85, 0x88, 0x8e, 0x91,
+			0x95, 0x97, 0x99, 0x9a, 0x9a, 0x9a, 0x97, 0x95, 0x91, 0x8d, 0x89,
+			0x84, 0x80, 0x7a, 0x76, 0x70, 0x6d, 0x6a, 0x67, 0x66, 0x65, 0x65,
+			0x67, 0x69, 0x6b, 0x71, 0x74, 0x79, 0x7d, 0x82, 0x86, 0x8b, 0x8f,
+			0x92, 0x95, 0x98, 0x99, 0x99, 0x9a, 0x97, 0x96, 0x92, 0x8f, 0x8a,
+			0x86, 0x81, 0x7c, 0x77, 0x73, 0x6e, 0x6b, 0x69, 0x67, 0x66, 0x66,
+			0x67, 0x69, 0x6c, 0x70, 0x73, 0x78, 0x7c, 0x81, 0x84, 0x8a, 0x8e,
+			0x91, 0x95, 0x96, 0x98, 0x98, 0x99, 0x95, 0x95, 0x90, 0x8e, 0x87,
+			0x84, 0x7e, 0x79, 0x74, 0x70, 0x6d, 0x69, 0x69, 0x67, 0x68, 0x68,
+			0x6b, 0x6c, 0x71, 0x73, 0x79, 0x7b, 0x81, 0x83, 0x89, 0x8b, 0x8f,
+			0x92, 0x94, 0x96, 0x96, 0x97, 0x95, 0x95, 0x91, 0x8f, 0x8a, 0x86,
+			0x82, 0x7d, 0x77, 0x75, 0x70, 0x6d, 0x6b, 0x69, 0x69, 0x69, 0x6a,
+			0x6c, 0x6e, 0x70, 0x73, 0x77, 0x7a, 0x7f, 0x82, 0x86, 0x8a, 0x8b,
+			0x8f, 0x90, 0x93, 0x93, 0x94, 0x93, 0x93, 0x91, 0x8e, 0x8c, 0x87,
+			0x84, 0x80, 0x7c, 0x79, 0x75, 0x72, 0x71, 0x6e, 0x6d, 0x6d, 0x6d,
+			0x6e, 0x70, 0x72, 0x74, 0x77, 0x7a, 0x7d, 0x81, 0x83, 0x87, 0x89,
+			0x8b, 0x8d, 0x8f, 0x90, 0x8f, 0x90, 0x8f, 0x8e, 0x8c, 0x8a, 0x87,
+			0x85, 0x81, 0x7e, 0x7c, 0x78, 0x77, 0x74, 0x73, 0x71, 0x71, 0x70,
+			0x71, 0x72, 0x74, 0x75, 0x78, 0x79, 0x7d, 0x7e, 0x81, 0x84, 0x85,
+			0x88, 0x88, 0x8a, 0x8a, 0x8b, 0x8b, 0x8b, 0x8a, 0x8a, 0x88, 0x86,
+			0x85, 0x82, 0x80, 0x7e, 0x7c, 0x7a, 0x79, 0x76, 0x77, 0x75, 0x75,
+			0x75, 0x76, 0x76, 0x78, 0x79, 0x7b, 0x7c, 0x7e, 0x80, 0x81, 0x83,
+			0x84, 0x86, 0x86, 0x87, 0x87, 0x88, 0x87, 0x87, 0x86, 0x86, 0x84,
+			0x84, 0x82, 0x81, 0x7f, 0x7e, 0x7d, 0x7b, 0x7b, 0x79, 0x79, 0x78,
+			0x78, 0x78, 0x7a, 0x79, 0x7c, 0x7b, 0x7e, 0x7e, 0x7f, 0x81, 0x82,
+			0x83, 0x83, 0x84, 0x83, 0x85, 0x84, 0x85, 0x84, 0x84, 0x83, 0x83,
+			0x81, 0x81, 0x80, 0x7f, 0x7f, 0x7d, 0x7d, 0x7c, 0x7c, 0x7b, 0x7c,
+			0x7b, 0x7c, 0x7c, 0x7d, 0x7d, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x81,
+			0x82, 0x82, 0x81, 0x82, 0x81, 0x82, 0x81, 0x81, 0x81, 0x81, 0x80,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81,
+			0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+		},
+		{ // 2
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e,
+			0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7e, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x7e, 0x80, 0x7e, 0x81, 0x7f, 0x89, 0x87,
+			0x7d, 0x78, 0x76, 0x7c, 0x87, 0x88, 0x82, 0x7a, 0x72, 0x73, 0x79,
+			0x80, 0x81, 0x7d, 0x74, 0x73, 0x77, 0x81, 0x7c, 0x7f, 0x75, 0x90,
+			0x9f, 0x92, 0x81, 0x6b, 0x6a, 0x83, 0x97, 0x94, 0x8c, 0x7c, 0x78,
+			0x80, 0x88, 0x81, 0x82, 0x7c, 0x81, 0x84, 0x7e, 0x77, 0x76, 0x7b,
+			0x81, 0x81, 0x73, 0x6b, 0x65, 0x6b, 0x70, 0x7d, 0x84, 0x8f, 0xa8,
+			0x91, 0x73, 0x65, 0x66, 0x7f, 0x95, 0x97, 0x93, 0x89, 0x7d, 0x7a,
+			0x79, 0x7e, 0x83, 0x84, 0x85, 0x84, 0x7d, 0x7a, 0x73, 0x77, 0x7e,
+			0x83, 0x82, 0x80, 0x73, 0x6b, 0x69, 0x69, 0x6e, 0x7b, 0x82, 0x88,
+			0xa4, 0x9b, 0x83, 0x70, 0x66, 0x76, 0x8f, 0x9b, 0x9f, 0x94, 0x83,
+			0x7a, 0x76, 0x7d, 0x83, 0x85, 0x87, 0x80, 0x79, 0x73, 0x6f, 0x74,
+			0x7c, 0x7d, 0x75, 0x68, 0x62, 0x60, 0x77, 0x86, 0x90, 0xad, 0x99,
+			0x80, 0x6b, 0x63, 0x7e, 0x9a, 0xa0, 0xa3, 0x92, 0x83, 0x7c, 0x77,
+			0x7f, 0x83, 0x89, 0x86, 0x7b, 0x71, 0x6f, 0x6d, 0x76, 0x7a, 0x76,
+			0x6d, 0x64, 0x55, 0x6c, 0x82, 0x93, 0xba, 0xa5, 0x7e, 0x64, 0x5d,
+			0x78, 0x9e, 0xa8, 0xa4, 0x93, 0x83, 0x79, 0x75, 0x7c, 0x84, 0x89,
+			0x89, 0x7b, 0x6e, 0x64, 0x6e, 0x79, 0x75, 0x6f, 0x68, 0x56, 0x5e,
+			0x7a, 0x7f, 0xb2, 0xb8, 0x8e, 0x6c, 0x57, 0x6a, 0x95, 0xae, 0xaa,
+			0xa0, 0x8a, 0x7c, 0x77, 0x7c, 0x83, 0x89, 0x8d, 0x81, 0x6f, 0x63,
+			0x63, 0x6e, 0x71, 0x6f, 0x6a, 0x56, 0x60, 0x7d, 0x77, 0xa3, 0xb3,
+			0x92, 0x7a, 0x5e, 0x66, 0x8c, 0xab, 0xaa, 0x9f, 0x8a, 0x7d, 0x77,
+			0x7c, 0x7f, 0x87, 0x8b, 0x7d, 0x6c, 0x60, 0x65, 0x6d, 0x73, 0x6d,
+			0x5e, 0x56, 0x78, 0x76, 0x8f, 0xb8, 0x9c, 0x88, 0x6a, 0x61, 0x81,
+			0xa4, 0xa9, 0x9f, 0x94, 0x85, 0x7f, 0x7e, 0x7c, 0x81, 0x8b, 0x86,
+			0x72, 0x64, 0x65, 0x6d, 0x6d, 0x68, 0x61, 0x5a, 0x77, 0x7f, 0x77,
+			0xac, 0xaa, 0x89, 0x74, 0x59, 0x77, 0xa2, 0xac, 0xa0, 0x97, 0x87,
+			0x85, 0x7c, 0x74, 0x83, 0x90, 0x87, 0x73, 0x60, 0x62, 0x6a, 0x64,
+			0x69, 0x65, 0x5f, 0x7d, 0x74, 0x75, 0xb1, 0xa4, 0x8b, 0x75, 0x64,
+			0x7a, 0xa3, 0xa7, 0x9c, 0x99, 0x87, 0x85, 0x7c, 0x79, 0x84, 0x8f,
+			0x81, 0x71, 0x63, 0x65, 0x6d, 0x62, 0x64, 0x60, 0x6b, 0x81, 0x6b,
+			0x7b, 0xb3, 0xa0, 0x89, 0x72, 0x67, 0x8a, 0xa5, 0x9e, 0x97, 0x98,
+			0x8d, 0x87, 0x79, 0x77, 0x84, 0x8e, 0x7d, 0x6a, 0x60, 0x66, 0x6b,
+			0x63, 0x64, 0x61, 0x6d, 0x7c, 0x6b, 0x81, 0xaf, 0x9f, 0x86, 0x71,
+			0x6f, 0x8b, 0xa6, 0x9b, 0x98, 0x9e, 0x8a, 0x81, 0x76, 0x7c, 0x90,
+			0x86, 0x73, 0x6c, 0x68, 0x68, 0x5f, 0x63, 0x6a, 0x6b, 0x77, 0x6a,
+			0x66, 0x99, 0xab, 0x9c, 0x7c, 0x67, 0x7e, 0x9d, 0xa1, 0x97, 0x9b,
+			0x94, 0x88, 0x7e, 0x73, 0x88, 0x90, 0x7e, 0x71, 0x68, 0x6b, 0x63,
+			0x5d, 0x61, 0x6a, 0x76, 0x79, 0x59, 0x72, 0xad, 0xa5, 0x87, 0x6d,
+			0x71, 0x95, 0xa9, 0x94, 0x97, 0x9e, 0x8d, 0x86, 0x75, 0x80, 0x99,
+			0x89, 0x71, 0x67, 0x6e, 0x70, 0x62, 0x61, 0x66, 0x67, 0x78, 0x6d,
+			0x5a, 0x8f, 0xa8, 0x8f, 0x80, 0x72, 0x7f, 0x98, 0x9a, 0x94, 0xa2,
+			0x99, 0x84, 0x81, 0x78, 0x8d, 0x8f, 0x82, 0x73, 0x6c, 0x6b, 0x67,
+			0x60, 0x6b, 0x6d, 0x68, 0x73, 0x5f, 0x6d, 0x9a, 0xa4, 0x82, 0x7b,
+			0x77, 0x87, 0x98, 0x92, 0x98, 0xa5, 0x96, 0x7c, 0x80, 0x79, 0x91,
+			0x8b, 0x7b, 0x75, 0x73, 0x6c, 0x65, 0x67, 0x69, 0x6b, 0x64, 0x7b,
+			0x6b, 0x60, 0x96, 0xa5, 0x86, 0x7d, 0x76, 0x85, 0x9a, 0x94, 0x93,
+			0xa4, 0x96, 0x7c, 0x81, 0x81, 0x8c, 0x88, 0x7a, 0x74, 0x74, 0x6b,
+			0x67, 0x6d, 0x69, 0x61, 0x6b, 0x7a, 0x64, 0x67, 0x98, 0xa1, 0x85,
+			0x7d, 0x7a, 0x8d, 0x9e, 0x91, 0x90, 0xa3, 0x96, 0x7e, 0x80, 0x81,
+			0x8d, 0x89, 0x77, 0x76, 0x77, 0x6a, 0x61, 0x63, 0x6f, 0x74, 0x61,
+			0x6e, 0x6e, 0x61, 0x84, 0x9d, 0x9a, 0x87, 0x77, 0x80, 0x8a, 0x92,
+			0x9c, 0xa3, 0x9b, 0x82, 0x7a, 0x81, 0x8b, 0x8b, 0x82, 0x77, 0x76,
+			0x6e, 0x62, 0x69, 0x72, 0x69, 0x62, 0x6c, 0x71, 0x69, 0x7d, 0x92,
+			0x8e, 0x8f, 0x7d, 0x7e, 0x90, 0x93, 0x95, 0x97, 0x9b, 0x90, 0x7f,
+			0x7f, 0x84, 0x89, 0x88, 0x7c, 0x78, 0x74, 0x6c, 0x67, 0x67, 0x6c,
+			0x63, 0x65, 0x76, 0x6b, 0x60, 0x8b, 0x9e, 0x88, 0x86, 0x84, 0x88,
+			0x89, 0x93, 0x98, 0x98, 0x98, 0x8e, 0x87, 0x85, 0x81, 0x82, 0x86,
+			0x82, 0x7b, 0x71, 0x69, 0x69, 0x67, 0x67, 0x66, 0x6e, 0x7c, 0x63,
+			0x56, 0x8e, 0x9f, 0x8a, 0x85, 0x7c, 0x88, 0x91, 0x8e, 0x8b, 0x9c,
+			0x9e, 0x8d, 0x83, 0x82, 0x83, 0x84, 0x7f, 0x81, 0x7e, 0x73, 0x6c,
+			0x68, 0x6d, 0x6c, 0x65, 0x62, 0x6f, 0x77, 0x64, 0x72, 0x9b, 0x8d,
+			0x82, 0x8c, 0x87, 0x83, 0x90, 0x95, 0x92, 0x97, 0x95, 0x8d, 0x84,
+			0x82, 0x87, 0x82, 0x7f, 0x7e, 0x77, 0x75, 0x70, 0x69, 0x67, 0x6d,
+			0x65, 0x5e, 0x74, 0x78, 0x6a, 0x85, 0x95, 0x84, 0x82, 0x85, 0x86,
+			0x92, 0x97, 0x90, 0x92, 0x95, 0x91, 0x8a, 0x87, 0x86, 0x82, 0x7f,
+			0x80, 0x83, 0x7a, 0x73, 0x6d, 0x68, 0x6a, 0x68, 0x64, 0x63, 0x6f,
+			0x76, 0x67, 0x7a, 0x97, 0x85, 0x7c, 0x8b, 0x8f, 0x89, 0x8f, 0x95,
+			0x93, 0x95, 0x91, 0x8c, 0x8c, 0x8a, 0x83, 0x7f, 0x80, 0x80, 0x7b,
+			0x7b, 0x7a, 0x6b, 0x63, 0x6a, 0x68, 0x5f, 0x62, 0x75, 0x78, 0x6b,
+			0x7b, 0x91, 0x89, 0x84, 0x8b, 0x89, 0x8b, 0x95, 0x97, 0x90, 0x93,
+			0x91, 0x8f, 0x8c, 0x89, 0x85, 0x80, 0x7d, 0x7b, 0x7d, 0x7d, 0x7a,
+			0x6d, 0x60, 0x63, 0x69, 0x66, 0x63, 0x6b, 0x79, 0x74, 0x6d, 0x85,
+			0x93, 0x89, 0x8a, 0x8c, 0x8b, 0x8c, 0x95, 0x93, 0x8f, 0x94, 0x91,
+			0x8e, 0x89, 0x88, 0x84, 0x7d, 0x7d, 0x7c, 0x7e, 0x79, 0x75, 0x72,
+			0x69, 0x64, 0x65, 0x69, 0x69, 0x6a, 0x70, 0x76, 0x74, 0x84, 0x95,
+			0x84, 0x81, 0x92, 0x91, 0x86, 0x8c, 0x99, 0x95, 0x91, 0x91, 0x8b,
+			0x89, 0x8b, 0x8a, 0x83, 0x7c, 0x7a, 0x79, 0x7a, 0x7a, 0x77, 0x71,
+			0x6d, 0x69, 0x60, 0x60, 0x6e, 0x73, 0x6c, 0x6d, 0x74, 0x7b, 0x8b,
+			0x90, 0x85, 0x88, 0x93, 0x90, 0x88, 0x8e, 0x98, 0x95, 0x92, 0x8f,
+			0x89, 0x89, 0x8b, 0x87, 0x7f, 0x7d, 0x7c, 0x7b, 0x78, 0x79, 0x77,
+			0x72, 0x70, 0x6d, 0x67, 0x64, 0x6f, 0x70, 0x6b, 0x70, 0x71, 0x79,
+			0x78, 0x86, 0x9c, 0x94, 0x89, 0x8a, 0x8f, 0x8b, 0x8d, 0x95, 0x95,
+			0x92, 0x8f, 0x89, 0x83, 0x86, 0x86, 0x83, 0x7e, 0x7a, 0x79, 0x78,
+			0x78, 0x74, 0x79, 0x7c, 0x70, 0x64, 0x65, 0x6d, 0x6e, 0x6c, 0x75,
+			0x7b, 0x6c, 0x6d, 0x7a, 0x8c, 0x9c, 0x8f, 0x8b, 0x92, 0x93, 0x88,
+			0x86, 0x96, 0x99, 0x90, 0x8e, 0x8d, 0x88, 0x80, 0x80, 0x82, 0x82,
+			0x7d, 0x78, 0x79, 0x7e, 0x78, 0x72, 0x78, 0x79, 0x71, 0x6c, 0x6f,
+			0x71, 0x70, 0x6b, 0x6c, 0x75, 0x79, 0x72, 0x6e, 0x78, 0x84, 0x93,
+			0x95, 0x89, 0x8e, 0x98, 0x91, 0x86, 0x8f, 0x98, 0x90, 0x8b, 0x8d,
+			0x8a, 0x84, 0x83, 0x82, 0x80, 0x80, 0x80, 0x7a, 0x78, 0x7b, 0x79,
+			0x72, 0x74, 0x79, 0x75, 0x70, 0x73, 0x74, 0x6f, 0x6f, 0x73, 0x6f,
+			0x70, 0x74, 0x79, 0x74, 0x73, 0x80, 0x8a, 0x97, 0x97, 0x8c, 0x8a,
+			0x91, 0x91, 0x89, 0x8c, 0x92, 0x92, 0x8e, 0x8a, 0x87, 0x81, 0x80,
+			0x80, 0x81, 0x7f, 0x7c, 0x80, 0x7c, 0x78, 0x77, 0x7a, 0x76, 0x71,
+			0x79, 0x78, 0x74, 0x74, 0x77, 0x75, 0x73, 0x71, 0x71, 0x78, 0x77,
+			0x76, 0x7a, 0x7d, 0x73, 0x71, 0x86, 0x9a, 0x94, 0x8e, 0x99, 0x94,
+			0x88, 0x85, 0x90, 0x90, 0x88, 0x8f, 0x90, 0x8c, 0x84, 0x83, 0x82,
+			0x7f, 0x7f, 0x7b, 0x79, 0x7b, 0x7e, 0x7b, 0x7a, 0x7b, 0x76, 0x74,
+			0x75, 0x78, 0x76, 0x75, 0x76, 0x79, 0x7a, 0x75, 0x6e, 0x70, 0x77,
+			0x78, 0x72, 0x77, 0x82, 0x7e, 0x76, 0x7a, 0x7c, 0x7b, 0x91, 0x9e,
+			0x90, 0x8f, 0x98, 0x8e, 0x7f, 0x89, 0x91, 0x8b, 0x8b, 0x8e, 0x8c,
+			0x84, 0x84, 0x85, 0x7f, 0x7c, 0x7e, 0x7e, 0x7c, 0x7c, 0x7c, 0x7a,
+			0x77, 0x75, 0x78, 0x7c, 0x77, 0x76, 0x79, 0x78, 0x75, 0x78, 0x7e,
+			0x7a, 0x76, 0x76, 0x7a, 0x78, 0x72, 0x75, 0x7e, 0x7e, 0x79, 0x7c,
+			0x7e, 0x7b, 0x76, 0x77, 0x80, 0x92, 0x9a, 0x92, 0x92, 0x94, 0x8f,
+			0x88, 0x89, 0x8c, 0x8a, 0x8e, 0x8e, 0x89, 0x85, 0x84, 0x81, 0x7d,
+			0x7d, 0x7e, 0x7d, 0x7c, 0x7b, 0x7a, 0x79, 0x78, 0x77, 0x78, 0x7a,
+			0x7a, 0x7e, 0x79, 0x76, 0x7a, 0x78, 0x72, 0x74, 0x82, 0x7d, 0x72,
+			0x76, 0x7d, 0x77, 0x6e, 0x78, 0x7f, 0x7b, 0x78, 0x7d, 0x7f, 0x79,
+			0x77, 0x7a, 0x80, 0x8b, 0x97, 0x98, 0x94, 0x94, 0x91, 0x8b, 0x87,
+			0x8a, 0x8c, 0x8a, 0x8c, 0x8c, 0x8a, 0x84, 0x81, 0x81, 0x7f, 0x7c,
+			0x7c, 0x7c, 0x7a, 0x7b, 0x7b, 0x7b, 0x7a, 0x76, 0x79, 0x7a, 0x7c,
+			0x7a, 0x79, 0x79, 0x77, 0x76, 0x76, 0x78, 0x7a, 0x7a, 0x77, 0x76,
+			0x76, 0x73, 0x75, 0x7a, 0x79, 0x75, 0x7c, 0x7e, 0x78, 0x76, 0x79,
+			0x7b, 0x81, 0x8e, 0x96, 0x99, 0x96, 0x93, 0x90, 0x8b, 0x87, 0x88,
+			0x8f, 0x8e, 0x8c, 0x8a, 0x89, 0x86, 0x80, 0x7f, 0x80, 0x7e, 0x7c,
+			0x7a, 0x7b, 0x79, 0x79, 0x79, 0x76, 0x77, 0x78, 0x78, 0x79, 0x7a,
+			0x7b, 0x7a, 0x7c, 0x7d, 0x7e, 0x7f, 0x85, 0x83, 0x7b, 0x7e, 0x80,
+			0x7a, 0x76, 0x7e, 0x80, 0x79, 0x78, 0x7b, 0x78, 0x73, 0x75, 0x77,
+			0x77, 0x77, 0x78, 0x7a, 0x7b, 0x79, 0x79, 0x82, 0x8e, 0x92, 0x91,
+			0x95, 0x98, 0x90, 0x89, 0x8b, 0x8b, 0x87, 0x87, 0x8a, 0x88, 0x85,
+			0x83, 0x81, 0x80, 0x7e, 0x7b, 0x7a, 0x7b, 0x79, 0x77, 0x78, 0x77,
+			0x78, 0x76, 0x77, 0x77, 0x77, 0x79, 0x79, 0x7a, 0x7b, 0x7d, 0x7d,
+			0x7c, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x82, 0x81,
+			0x82, 0x81, 0x82, 0x80, 0x84, 0x88, 0x82, 0x82, 0x85, 0x83, 0x7c,
+			0x7e, 0x82, 0x7d, 0x7e, 0x7f, 0x80, 0x7c, 0x7c, 0x7e, 0x7c, 0x7c,
+			0x7c, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7d, 0x7d, 0x7f, 0x80,
+			0x7c, 0x7b, 0x7e, 0x7c, 0x7a, 0x7b, 0x7f, 0x7f, 0x7f, 0x81, 0x80,
+			0x83, 0x85, 0x84, 0x83, 0x85, 0x87, 0x83, 0x86, 0x88, 0x85, 0x83,
+			0x84, 0x85, 0x80, 0x80, 0x80, 0x80, 0x7c, 0x7c, 0x7f, 0x7c, 0x7a,
+			0x7b, 0x7c, 0x7a, 0x78, 0x7a, 0x7a, 0x78, 0x78, 0x7a, 0x7a, 0x78,
+			0x7a, 0x7b, 0x7c, 0x7a, 0x7c, 0x7e, 0x7d, 0x7d, 0x7e, 0x80, 0x7f,
+			0x7e, 0x81, 0x81, 0x7f, 0x80, 0x83, 0x81, 0x80, 0x82, 0x83, 0x81,
+			0x81, 0x83, 0x82, 0x80, 0x82, 0x82, 0x81, 0x81, 0x82, 0x81, 0x80,
+			0x81, 0x81, 0x7f, 0x80, 0x81, 0x80, 0x7e, 0x7f, 0x7f, 0x7f, 0x7d,
+			0x7e, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e,
+			0x7d, 0x7e, 0x7d, 0x7f, 0x7e, 0x7d, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f,
+			0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x81, 0x80, 0x7e, 0x80, 0x81, 0x7e, 0x7e, 0x80, 0x7e, 0x7d, 0x7e,
+			0x7f, 0x7e, 0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7c, 0x7d, 0x7e,
+			0x7d, 0x7e, 0x7f, 0x7e, 0x7f, 0x80, 0x80, 0x7f, 0x81, 0x81, 0x80,
+			0x81, 0x82, 0x81, 0x80, 0x81, 0x82, 0x81, 0x81, 0x82, 0x81, 0x80,
+			0x81, 0x80, 0x80, 0x81, 0x7f, 0x7e, 0x7f, 0x7f, 0x7d, 0x7d, 0x7e,
+			0x7d, 0x7c, 0x7d, 0x7e, 0x7d, 0x7c, 0x7d, 0x7d, 0x7e, 0x7d, 0x7c,
+			0x7d, 0x7e, 0x7d, 0x7d, 0x7e, 0x7d, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f,
+			0x7f, 0x80, 0x81, 0x80, 0x81, 0x80, 0x81, 0x80, 0x80, 0x80, 0x81,
+			0x80, 0x81, 0x80, 0x81, 0x80, 0x81, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7e, 0x7e, 0x7f,
+			0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e,
+			0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f,
+			0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x80, 0x7f, 0x7f,
+			0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f,
+			0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7e, 0x7f, 0x7e, 0x7f,
+			0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7e, 0x7f, 0x7e,
+			0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x80, 0x7e, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x80, 0x7f, 0x7f, 0x7f, 0x7e,
+			0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e,
+			0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f,
+			0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f,
+			0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f,
+			0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f,
+			0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f,
+			0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7e,
+			0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e,
+			0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f,
+			0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f,
+			0x7e, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x7e,
+			0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e,
+			0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f,
+			0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7e,
+			0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f,
+			0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x80,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e,
+			0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x80,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x7f,
+		},
+		{ // 3
+			0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80,
+			0x81, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x81, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x81, 0x80, 0x7f, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x81, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x81, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x81, 0x7f, 0x7f, 0x80, 0x81, 0x80,
+			0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x81, 0x81, 0x80, 0x7f, 0x7f, 0x81, 0x80, 0x81, 0x80, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x81, 0x81, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x80, 0x7f,
+			0x80, 0x7e, 0x7e, 0x80, 0x7f, 0x7f, 0x7f, 0x81, 0x80, 0x7e, 0x7e,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x82, 0x82, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x7e, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7e, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x81, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x7e, 0x7f, 0x7f,
+			0x7f, 0x7d, 0x7d, 0x80, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x81, 0x80,
+			0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x81, 0x80, 0x7f, 0x7f, 0x7e,
+			0x80, 0x80, 0x82, 0x81, 0x80, 0x80, 0x80, 0x81, 0x7f, 0x80, 0x80,
+			0x7f, 0x7e, 0x7e, 0x80, 0x80, 0x80, 0x7f, 0x81, 0x7f, 0x80, 0x7f,
+			0x81, 0x80, 0x7e, 0x7d, 0x7f, 0x80, 0x81, 0x82, 0x81, 0x80, 0x80,
+			0x82, 0x83, 0x81, 0x80, 0x82, 0x80, 0x81, 0x7f, 0x80, 0x80, 0x7f,
+			0x7f, 0x80, 0x80, 0x7e, 0x7c, 0x7d, 0x7d, 0x7b, 0x7c, 0x7e, 0x7c,
+			0x7c, 0x7c, 0x7d, 0x7c, 0x7c, 0x7f, 0x7e, 0x7c, 0x7c, 0x7f, 0x7e,
+			0x7f, 0x7e, 0x80, 0x7f, 0x80, 0x81, 0x81, 0x80, 0x80, 0x81, 0x80,
+			0x80, 0x81, 0x83, 0x83, 0x83, 0x82, 0x81, 0x81, 0x82, 0x83, 0x83,
+			0x81, 0x81, 0x80, 0x80, 0x80, 0x81, 0x82, 0x81, 0x81, 0x81, 0x80,
+			0x80, 0x81, 0x82, 0x82, 0x82, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80,
+			0x82, 0x80, 0x7e, 0x7f, 0x82, 0x80, 0x81, 0x82, 0x82, 0x81, 0x80,
+			0x82, 0x82, 0x81, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x80, 0x7f, 0x80, 0x81, 0x81, 0x80, 0x7f, 0x80, 0x82, 0x7f, 0x7f,
+			0x82, 0x82, 0x7f, 0x7e, 0x81, 0x82, 0x7f, 0x7f, 0x81, 0x81, 0x7f,
+			0x7e, 0x7f, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x81, 0x81,
+			0x81, 0x81, 0x7f, 0x7e, 0x81, 0x80, 0x7e, 0x7e, 0x80, 0x80, 0x7e,
+			0x7f, 0x81, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x82, 0x81, 0x7e, 0x7e,
+			0x80, 0x7f, 0x7f, 0x81, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x81, 0x82,
+			0x81, 0x80, 0x80, 0x7f, 0x7f, 0x81, 0x81, 0x80, 0x7f, 0x7f, 0x7e,
+			0x7f, 0x7e, 0x7f, 0x80, 0x80, 0x7e, 0x7d, 0x80, 0x81, 0x7f, 0x80,
+			0x81, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x81, 0x7f, 0x7f, 0x7f,
+			0x7e, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7f,
+			0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x7d, 0x80, 0x80, 0x7e, 0x7f, 0x7f,
+			0x7d, 0x7d, 0x7e, 0x7f, 0x7e, 0x7f, 0x80, 0x7d, 0x7d, 0x7e, 0x7f,
+			0x7e, 0x7e, 0x80, 0x7e, 0x7d, 0x7e, 0x7f, 0x80, 0x80, 0x7e, 0x7e,
+			0x80, 0x80, 0x7d, 0x7e, 0x80, 0x7f, 0x7d, 0x7e, 0x80, 0x7f, 0x7e,
+			0x80, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7e, 0x7f, 0x7f, 0x81,
+			0x80, 0x7e, 0x7e, 0x7f, 0x7e, 0x7d, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x7d, 0x7d, 0x7f, 0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x7d, 0x7f, 0x7f,
+			0x7d, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7e,
+			0x80, 0x81, 0x7f, 0x7d, 0x7f, 0x7f, 0x7e, 0x80, 0x7f, 0x7f, 0x80,
+			0x7e, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x82, 0x81, 0x7f, 0x7f, 0x80,
+			0x80, 0x80, 0x80, 0x82, 0x81, 0x80, 0x7e, 0x81, 0x80, 0x7f, 0x81,
+			0x7f, 0x7d, 0x7f, 0x7f, 0x7f, 0x82, 0x7f, 0x7f, 0x80, 0x80, 0x7f,
+			0x7f, 0x7e, 0x80, 0x7e, 0x7f, 0x7d, 0x7d, 0x80, 0x7f, 0x7f, 0x80,
+			0x80, 0x7e, 0x80, 0x7f, 0x7f, 0x7e, 0x80, 0x7f, 0x81, 0x7e, 0x7e,
+			0x7f, 0x7e, 0x7e, 0x7e, 0x7f, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7f,
+			0x7f, 0x80, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7f,
+			0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x81, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x81, 0x82, 0x80, 0x7e, 0x80, 0x83, 0x80, 0x81,
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x81, 0x81, 0x81, 0x82, 0x80, 0x83,
+			0x7f, 0x82, 0x82, 0x82, 0x81, 0x80, 0x7f, 0x80, 0x80, 0x7e, 0x80,
+			0x80, 0x7e, 0x7f, 0x7e, 0x7f, 0x82, 0x80, 0x80, 0x82, 0x82, 0x81,
+			0x80, 0x80, 0x80, 0x7e, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x81, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x81, 0x7c, 0x7d, 0x7f, 0x7c, 0x7e,
+			0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x80, 0x7e, 0x80, 0x80,
+			0x7f, 0x80, 0x81, 0x80, 0x80, 0x7f, 0x7f, 0x81, 0x80, 0x81, 0x7f,
+			0x80, 0x7f, 0x81, 0x81, 0x81, 0x80, 0x82, 0x7f, 0x7f, 0x82, 0x82,
+			0x80, 0x7f, 0x82, 0x7f, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x7e, 0x81,
+			0x7f, 0x7f, 0x81, 0x80, 0x7f, 0x7d, 0x80, 0x7e, 0x7f, 0x80, 0x81,
+			0x7f, 0x80, 0x81, 0x7e, 0x80, 0x7e, 0x81, 0x80, 0x81, 0x81, 0x82,
+			0x81, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x81, 0x80, 0x81, 0x80, 0x80,
+			0x81, 0x7e, 0x80, 0x81, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x80, 0x7f,
+			0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7d, 0x7f, 0x81,
+			0x80, 0x80, 0x81, 0x82, 0x81, 0x81, 0x7f, 0x7e, 0x80, 0x80, 0x7e,
+			0x80, 0x80, 0x7f, 0x7f, 0x7d, 0x7f, 0x7f, 0x7d, 0x7c, 0x80, 0x7f,
+			0x7d, 0x7c, 0x7e, 0x7e, 0x7d, 0x80, 0x7d, 0x81, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x7f, 0x7f, 0x82, 0x81, 0x7e, 0x7d, 0x82, 0x80,
+			0x7f, 0x81, 0x82, 0x80, 0x7f, 0x7f, 0x81, 0x80, 0x81, 0x80, 0x82,
+			0x82, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x83, 0x81, 0x7f, 0x82, 0x81,
+			0x80, 0x7f, 0x81, 0x7e, 0x7e, 0x7f, 0x81, 0x81, 0x7f, 0x7e, 0x7e,
+			0x81, 0x7d, 0x80, 0x80, 0x7d, 0x7e, 0x7e, 0x7d, 0x7c, 0x7e, 0x80,
+			0x7d, 0x80, 0x80, 0x80, 0x7e, 0x7a, 0x80, 0x81, 0x7c, 0x7d, 0x7f,
+			0x83, 0x7f, 0x80, 0x83, 0x7f, 0x81, 0x80, 0x81, 0x80, 0x81, 0x80,
+			0x82, 0x83, 0x7f, 0x80, 0x7f, 0x7f, 0x7e, 0x82, 0x83, 0x82, 0x80,
+			0x80, 0x81, 0x7d, 0x7c, 0x7f, 0x82, 0x7e, 0x83, 0x7f, 0x80, 0x80,
+			0x80, 0x83, 0x83, 0x84, 0x7a, 0x7f, 0x7d, 0x7f, 0x7e, 0x7d, 0x84,
+			0x7c, 0x7b, 0x79, 0x7e, 0x81, 0x7c, 0x80, 0x7f, 0x81, 0x81, 0x7d,
+			0x7f, 0x7d, 0x7f, 0x7c, 0x7a, 0x7e, 0x7d, 0x7b, 0x7d, 0x7e, 0x80,
+			0x7e, 0x7d, 0x7e, 0x7f, 0x81, 0x7f, 0x7f, 0x81, 0x81, 0x83, 0x83,
+			0x81, 0x87, 0x84, 0x84, 0x80, 0x83, 0x83, 0x7e, 0x83, 0x86, 0x86,
+			0x84, 0x87, 0x89, 0x87, 0x86, 0x82, 0x7c, 0x80, 0x7f, 0x7b, 0x7e,
+			0x83, 0x80, 0x7f, 0x7d, 0x7f, 0x82, 0x80, 0x7b, 0x79, 0x7d, 0x7c,
+			0x76, 0x78, 0x7d, 0x7e, 0x7c, 0x79, 0x7e, 0x7b, 0x7c, 0x7c, 0x7f,
+			0x7f, 0x7a, 0x7b, 0x7e, 0x7d, 0x7a, 0x7f, 0x7b, 0x7c, 0x7b, 0x7c,
+			0x7c, 0x79, 0x7b, 0x7d, 0x79, 0x78, 0x7a, 0x7c, 0x7b, 0x7d, 0x80,
+			0x82, 0x86, 0x84, 0x89, 0x8c, 0x92, 0x93, 0x95, 0x97, 0x98, 0x97,
+			0x92, 0x92, 0x8f, 0x85, 0x7b, 0x70, 0x62, 0x60, 0x64, 0x65, 0x5d,
+			0x5d, 0x5d, 0x5e, 0x60, 0x73, 0x92, 0xa5, 0xab, 0xaa, 0xad, 0xae,
+			0xa4, 0x96, 0x93, 0x9a, 0x9a, 0x92, 0x8c, 0x85, 0x7d, 0x6c, 0x60,
+			0x56, 0x4d, 0x45, 0x4b, 0x4a, 0x4c, 0x4f, 0x62, 0x9a, 0xa9, 0xa5,
+			0xa2, 0x9c, 0x98, 0x80, 0x78, 0x84, 0x92, 0x98, 0x98, 0x9c, 0x9d,
+			0x8f, 0x79, 0x79, 0x6f, 0x5a, 0x56, 0x51, 0x4a, 0x4e, 0x56, 0x70,
+			0x7b, 0x83, 0xb0, 0xae, 0xa4, 0x94, 0x85, 0x8c, 0x82, 0x82, 0x91,
+			0xa2, 0xa9, 0xa6, 0x9e, 0x98, 0x8a, 0x79, 0x72, 0x72, 0x71, 0x65,
+			0x59, 0x53, 0x4a, 0x4e, 0x5c, 0x77, 0x75, 0x86, 0xb4, 0xa5, 0x99,
+			0x84, 0x7e, 0x83, 0x7c, 0x88, 0x98, 0xad, 0xab, 0x9b, 0x95, 0x85,
+			0x78, 0x6e, 0x6f, 0x78, 0x6e, 0x5e, 0x54, 0x50, 0x45, 0x4c, 0x62,
+			0x86, 0x71, 0x9c, 0xbc, 0xa0, 0x92, 0x74, 0x88, 0x7d, 0x83, 0x93,
+			0xa8, 0xb9, 0xa5, 0x96, 0x8d, 0x7c, 0x73, 0x73, 0x7b, 0x7b, 0x68,
+			0x60, 0x5a, 0x49, 0x45, 0x54, 0x7f, 0x82, 0x75, 0xbd, 0xb3, 0x96,
+			0x7b, 0x71, 0x84, 0x7d, 0x89, 0xa5, 0xb9, 0xad, 0x97, 0x88, 0x7c,
+			0x75, 0x71, 0x78, 0x8a, 0x74, 0x66, 0x59, 0x56, 0x49, 0x47, 0x58,
+			0x8a, 0x7c, 0x8c, 0xc7, 0xa4, 0x8f, 0x6d, 0x74, 0x7c, 0x7c, 0x91,
+			0xab, 0xb4, 0xa6, 0x8e, 0x7a, 0x75, 0x75, 0x73, 0x82, 0x82, 0x73,
+			0x62, 0x51, 0x50, 0x49, 0x4b, 0x64, 0x90, 0x81, 0xb4, 0xb8, 0x93,
+			0x81, 0x62, 0x74, 0x79, 0x8c, 0xa3, 0xb6, 0xb0, 0x9a, 0x83, 0x74,
+			0x70, 0x76, 0x7b, 0x8d, 0x7e, 0x6d, 0x60, 0x56, 0x4d, 0x50, 0x52,
+			0x6e, 0x96, 0x8b, 0xc0, 0xaf, 0x89, 0x70, 0x66, 0x76, 0x80, 0x94,
+			0xa8, 0xb8, 0xa3, 0x8d, 0x75, 0x71, 0x75, 0x7d, 0x83, 0x8f, 0x7c,
+			0x6a, 0x58, 0x58, 0x5c, 0x59, 0x4a, 0x74, 0x8f, 0x91, 0xc7, 0xa2,
+			0x8c, 0x6c, 0x60, 0x76, 0x82, 0x9c, 0xb3, 0xb6, 0x9e, 0x82, 0x70,
+			0x72, 0x79, 0x81, 0x8f, 0x8c, 0x75, 0x64, 0x5b, 0x5c, 0x56, 0x50,
+			0x57, 0x91, 0x8e, 0xac, 0xbf, 0x8d, 0x79, 0x56, 0x66, 0x7d, 0x94,
+			0xae, 0xba, 0xaa, 0x8d, 0x73, 0x6d, 0x74, 0x83, 0x8b, 0x90, 0x7f,
+			0x6a, 0x5d, 0x5b, 0x5d, 0x60, 0x4e, 0x5f, 0x95, 0x8f, 0xc0, 0xad,
+			0x87, 0x6d, 0x57, 0x70, 0x83, 0x9d, 0xb8, 0xb6, 0xa4, 0x83, 0x6d,
+			0x6f, 0x76, 0x86, 0x89, 0x8b, 0x73, 0x67, 0x5d, 0x5c, 0x5a, 0x66,
+			0x4d, 0x73, 0x91, 0xa6, 0xc8, 0x91, 0x7f, 0x67, 0x61, 0x75, 0x8d,
+			0xac, 0xb5, 0xa5, 0x96, 0x76, 0x6c, 0x71, 0x82, 0x87, 0x8e, 0x84,
+			0x71, 0x65, 0x5f, 0x5c, 0x5c, 0x5a, 0x50, 0x8b, 0x93, 0xc0, 0xb1,
+			0x7f, 0x72, 0x5b, 0x6a, 0x7c, 0x9e, 0xb8, 0xb4, 0x9b, 0x87, 0x6e,
+			0x72, 0x75, 0x87, 0x90, 0x8f, 0x79, 0x6d, 0x61, 0x60, 0x5e, 0x67,
+			0x4f, 0x5e, 0x95, 0x97, 0xc5, 0x97, 0x78, 0x6e, 0x5b, 0x71, 0x88,
+			0xa4, 0xb8, 0xa1, 0x96, 0x7d, 0x6e, 0x74, 0x7a, 0x8d, 0x8b, 0x8a,
+			0x76, 0x6a, 0x5f, 0x5a, 0x63, 0x60, 0x4a, 0x88, 0x97, 0xaf, 0xb0,
+			0x80, 0x77, 0x5e, 0x63, 0x83, 0x9c, 0xb3, 0xa9, 0x99, 0x84, 0x6b,
+			0x75, 0x78, 0x8f, 0x8a, 0x84, 0x78, 0x69, 0x5e, 0x5e, 0x5f, 0x67,
+			0x4c, 0x79, 0x97, 0xac, 0xbb, 0x80, 0x77, 0x64, 0x64, 0x7b, 0x97,
+			0xb5, 0xa9, 0x97, 0x84, 0x70, 0x72, 0x73, 0x8e, 0x8c, 0x86, 0x74,
+			0x69, 0x65, 0x5e, 0x5d, 0x63, 0x51, 0x7d, 0x96, 0xad, 0xb4, 0x7f,
+			0x79, 0x61, 0x6b, 0x7e, 0x99, 0xb3, 0xaa, 0x96, 0x83, 0x70, 0x74,
+			0x77, 0x89, 0x8c, 0x81, 0x76, 0x69, 0x60, 0x5e, 0x65, 0x64, 0x53,
+			0x7c, 0x93, 0xa9, 0xb2, 0x81, 0x7b, 0x63, 0x69, 0x84, 0x99, 0xb3,
+			0xa8, 0x99, 0x83, 0x71, 0x73, 0x7a, 0x8b, 0x8a, 0x84, 0x75, 0x66,
+			0x5f, 0x5a, 0x64, 0x5e, 0x51, 0x85, 0x94, 0xab, 0xad, 0x80, 0x7b,
+			0x63, 0x6e, 0x8b, 0x9c, 0xb1, 0xa2, 0x95, 0x83, 0x75, 0x78, 0x82,
+			0x8a, 0x86, 0x7d, 0x71, 0x65, 0x61, 0x5d, 0x61, 0x61, 0x58, 0x8f,
+			0x8d, 0xa9, 0x9e, 0x76, 0x75, 0x61, 0x83, 0x92, 0xa2, 0xaa, 0x9b,
+			0x91, 0x7c, 0x7c, 0x85, 0x8b, 0x8b, 0x84, 0x7c, 0x70, 0x67, 0x64,
+			0x62, 0x64, 0x52, 0x5d, 0x8d, 0x8f, 0xa8, 0x89, 0x76, 0x70, 0x67,
+			0x86, 0x92, 0xa3, 0xa2, 0x9d, 0x8e, 0x80, 0x80, 0x85, 0x8e, 0x89,
+			0x87, 0x80, 0x75, 0x68, 0x5f, 0x5b, 0x67, 0x51, 0x6a, 0x8e, 0x88,
+			0xa5, 0x80, 0x75, 0x67, 0x69, 0x8f, 0x95, 0xa4, 0x9f, 0x9a, 0x8c,
+			0x80, 0x80, 0x89, 0x8d, 0x8c, 0x88, 0x83, 0x72, 0x66, 0x5e, 0x5d,
+			0x62, 0x51, 0x80, 0x8b, 0x8d, 0x9c, 0x7b, 0x73, 0x61, 0x71, 0x90,
+			0x95, 0xa4, 0x9d, 0x99, 0x89, 0x7e, 0x82, 0x89, 0x8d, 0x89, 0x8a,
+			0x80, 0x70, 0x66, 0x62, 0x60, 0x61, 0x56, 0x87, 0x83, 0x95, 0x9b,
+			0x78, 0x70, 0x5e, 0x7f, 0x8e, 0x98, 0xa0, 0x9d, 0x97, 0x84, 0x81,
+			0x83, 0x8a, 0x90, 0x8c, 0x8b, 0x7b, 0x6e, 0x68, 0x5d, 0x5f, 0x58,
+			0x5e, 0x89, 0x7c, 0x9a, 0x93, 0x78, 0x6f, 0x63, 0x82, 0x8c, 0x98,
+			0x9f, 0xa0, 0x95, 0x85, 0x81, 0x86, 0x89, 0x89, 0x8e, 0x8b, 0x7c,
+			0x6a, 0x66, 0x5f, 0x5f, 0x53, 0x64, 0x93, 0x7c, 0x9b, 0x8a, 0x7c,
+			0x6b, 0x5e, 0x8a, 0x8a, 0x9c, 0x9e, 0xa0, 0x96, 0x81, 0x7f, 0x84,
+			0x8b, 0x89, 0x8a, 0x8c, 0x7c, 0x68, 0x62, 0x5b, 0x63, 0x50, 0x72,
+			0x8a, 0x84, 0xa0, 0x82, 0x7c, 0x69, 0x6e, 0x8a, 0x8e, 0x9d, 0xa1,
+			0x9f, 0x91, 0x81, 0x82, 0x84, 0x88, 0x8c, 0x8e, 0x86, 0x77, 0x69,
+			0x60, 0x59, 0x60, 0x59, 0x79, 0x82, 0x81, 0xa0, 0x7f, 0x79, 0x64,
+			0x78, 0x8a, 0x89, 0x9d, 0xa1, 0x9f, 0x90, 0x85, 0x84, 0x84, 0x86,
+			0x8c, 0x8d, 0x87, 0x75, 0x6b, 0x62, 0x5a, 0x59, 0x55, 0x7d, 0x7e,
+			0x82, 0x9a, 0x81, 0x79, 0x64, 0x77, 0x86, 0x89, 0x9d, 0xa4, 0xa2,
+			0x91, 0x83, 0x83, 0x84, 0x87, 0x8d, 0x91, 0x88, 0x77, 0x6b, 0x5e,
+			0x58, 0x55, 0x5a, 0x7e, 0x76, 0x8a, 0x9b, 0x80, 0x77, 0x66, 0x7d,
+			0x80, 0x8c, 0x9d, 0xa8, 0xa1, 0x91, 0x87, 0x85, 0x84, 0x84, 0x8f,
+			0x8f, 0x83, 0x74, 0x6c, 0x60, 0x57, 0x51, 0x63, 0x81, 0x71, 0x8d,
+			0x96, 0x80, 0x78, 0x69, 0x81, 0x7f, 0x8f, 0x9f, 0xa5, 0x9e, 0x8d,
+			0x89, 0x88, 0x83, 0x85, 0x93, 0x8e, 0x80, 0x72, 0x6b, 0x5f, 0x58,
+			0x53, 0x69, 0x7b, 0x70, 0x8a, 0x90, 0x82, 0x76, 0x6d, 0x82, 0x80,
+			0x89, 0x9c, 0xa6, 0x9e, 0x91, 0x8b, 0x8a, 0x82, 0x86, 0x8f, 0x8e,
+			0x83, 0x72, 0x6c, 0x5e, 0x55, 0x52, 0x6e, 0x74, 0x70, 0x8e, 0x8c,
+			0x7f, 0x72, 0x73, 0x7e, 0x7e, 0x8a, 0xa2, 0xa7, 0x9c, 0x96, 0x8e,
+			0x8a, 0x80, 0x86, 0x91, 0x8a, 0x80, 0x74, 0x6b, 0x5e, 0x53, 0x57,
+			0x72, 0x6f, 0x70, 0x8d, 0x8b, 0x80, 0x72, 0x7b, 0x83, 0x7f, 0x8e,
+			0x9f, 0xa4, 0x9b, 0x94, 0x8f, 0x8b, 0x82, 0x87, 0x8f, 0x88, 0x7d,
+			0x73, 0x6a, 0x5d, 0x53, 0x5d, 0x71, 0x69, 0x72, 0x8d, 0x86, 0x7e,
+			0x76, 0x7e, 0x83, 0x7e, 0x8c, 0x9f, 0xa2, 0x9b, 0x97, 0x95, 0x8e,
+			0x82, 0x89, 0x8b, 0x83, 0x7b, 0x76, 0x6a, 0x5c, 0x54, 0x62, 0x6c,
+			0x60, 0x77, 0x8a, 0x83, 0x7b, 0x79, 0x84, 0x82, 0x80, 0x91, 0x9f,
+			0x9e, 0x98, 0x99, 0x99, 0x8c, 0x85, 0x8c, 0x8a, 0x81, 0x78, 0x73,
+			0x69, 0x5a, 0x57, 0x65, 0x69, 0x66, 0x7a, 0x83, 0x81, 0x7a, 0x7c,
+			0x83, 0x81, 0x85, 0x91, 0x9d, 0x9b, 0x97, 0x99, 0x97, 0x8d, 0x8a,
+			0x8d, 0x89, 0x80, 0x76, 0x71, 0x68, 0x5d, 0x5f, 0x67, 0x68, 0x66,
+			0x74, 0x7b, 0x7a, 0x79, 0x7e, 0x86, 0x83, 0x87, 0x91, 0x98, 0x98,
+			0x97, 0x99, 0x98, 0x90, 0x8e, 0x8d, 0x8a, 0x83, 0x7b, 0x75, 0x6d,
+			0x65, 0x65, 0x67, 0x65, 0x66, 0x6f, 0x72, 0x72, 0x74, 0x7c, 0x81,
+			0x83, 0x88, 0x8f, 0x93, 0x93, 0x95, 0x97, 0x99, 0x94, 0x93, 0x92,
+			0x8e, 0x89, 0x82, 0x7e, 0x77, 0x70, 0x6c, 0x6b, 0x65, 0x63, 0x66,
+			0x67, 0x68, 0x6b, 0x71, 0x77, 0x7c, 0x81, 0x88, 0x8e, 0x92, 0x95,
+			0x99, 0x9c, 0x9b, 0x9d, 0x9a, 0x99, 0x94, 0x8e, 0x87, 0x81, 0x78,
+			0x71, 0x6b, 0x63, 0x60, 0x5d, 0x5d, 0x5f, 0x62, 0x67, 0x6c, 0x74,
+			0x7b, 0x83, 0x8a, 0x91, 0x97, 0x9c, 0x9f, 0xa2, 0xa2, 0xa0, 0x9e,
+			0x9a, 0x93, 0x8c, 0x86, 0x7c, 0x73, 0x6d, 0x66, 0x5f, 0x5b, 0x5c,
+			0x5c, 0x5e, 0x61, 0x68, 0x6e, 0x75, 0x7e, 0x85, 0x8e, 0x95, 0x99,
+			0x9e, 0xa2, 0xa2, 0xa1, 0xa1, 0x9e, 0x98, 0x92, 0x8a, 0x82, 0x78,
+			0x70, 0x69, 0x62, 0x5c, 0x5b, 0x5c, 0x5c, 0x5f, 0x64, 0x6b, 0x72,
+			0x7a, 0x82, 0x8a, 0x91, 0x96, 0x9b, 0xa0, 0xa2, 0xa2, 0xa1, 0xa0,
+			0x9b, 0x95, 0x8f, 0x86, 0x7d, 0x73, 0x6c, 0x64, 0x5e, 0x5b, 0x5c,
+			0x5b, 0x5d, 0x62, 0x68, 0x6f, 0x76, 0x7e, 0x86, 0x8e, 0x93, 0x98,
+			0x9d, 0xa1, 0xa2, 0xa2, 0xa1, 0x9d, 0x97, 0x91, 0x89, 0x81, 0x77,
+			0x6f, 0x68, 0x62, 0x5d, 0x5d, 0x5d, 0x5d, 0x61, 0x66, 0x6c, 0x73,
+			0x7b, 0x83, 0x8a, 0x91, 0x96, 0x9b, 0x9f, 0xa1, 0xa1, 0xa1, 0x9e,
+			0x99, 0x94, 0x8c, 0x84, 0x7b, 0x73, 0x6c, 0x64, 0x5f, 0x5d, 0x5d,
+			0x5d, 0x60, 0x65, 0x6b, 0x71, 0x78, 0x80, 0x88, 0x8e, 0x93, 0x98,
+			0x9d, 0x9f, 0xa0, 0xa1, 0x9f, 0x9b, 0x96, 0x90, 0x88, 0x7f, 0x76,
+			0x70, 0x69, 0x62, 0x5f, 0x5e, 0x5d, 0x5e, 0x62, 0x67, 0x6d, 0x73,
+			0x7b, 0x83, 0x89, 0x8f, 0x95, 0x9a, 0x9d, 0x9f, 0x9f, 0xa0, 0x9d,
+			0x98, 0x93, 0x8d, 0x84, 0x7b, 0x74, 0x6e, 0x67, 0x61, 0x60, 0x5f,
+			0x5e, 0x61, 0x65, 0x6b, 0x70, 0x77, 0x7f, 0x86, 0x8c, 0x91, 0x97,
+			0x9b, 0x9d, 0x9e, 0x9f, 0x9e, 0x9b, 0x95, 0x90, 0x89, 0x80, 0x77,
+			0x72, 0x6b, 0x64, 0x61, 0x60, 0x5f, 0x60, 0x64, 0x69, 0x6f, 0x74,
+			0x7b, 0x82, 0x89, 0x8f, 0x93, 0x98, 0x9b, 0x9d, 0x9d, 0x9d, 0x9b,
+			0x96, 0x91, 0x8b, 0x83, 0x7a, 0x74, 0x6e, 0x67, 0x63, 0x61, 0x61,
+			0x60, 0x63, 0x68, 0x6d, 0x72, 0x79, 0x80, 0x86, 0x8c, 0x91, 0x96,
+			0x9a, 0x9b, 0x9c, 0x9d, 0x9b, 0x97, 0x93, 0x8d, 0x85, 0x7d, 0x76,
+			0x70, 0x6a, 0x65, 0x63, 0x62, 0x62, 0x64, 0x68, 0x6c, 0x71, 0x78,
+			0x7e, 0x85, 0x8a, 0x8f, 0x94, 0x98, 0x9a, 0x9b, 0x9c, 0x9b, 0x97,
+			0x93, 0x8d, 0x87, 0x7f, 0x77, 0x72, 0x6c, 0x66, 0x64, 0x64, 0x63,
+			0x64, 0x68, 0x6d, 0x71, 0x77, 0x7e, 0x84, 0x89, 0x8e, 0x93, 0x96,
+			0x99, 0x9a, 0x9b, 0x9a, 0x97, 0x93, 0x8e, 0x88, 0x80, 0x79, 0x73,
+			0x6d, 0x68, 0x65, 0x65, 0x63, 0x64, 0x68, 0x6d, 0x71, 0x76, 0x7d,
+			0x83, 0x88, 0x8c, 0x92, 0x95, 0x97, 0x99, 0x9a, 0x9a, 0x96, 0x93,
+			0x8e, 0x87, 0x80, 0x79, 0x74, 0x6e, 0x69, 0x66, 0x66, 0x64, 0x65,
+			0x69, 0x6d, 0x72, 0x77, 0x7d, 0x83, 0x88, 0x8d, 0x92, 0x95, 0x97,
+			0x98, 0x99, 0x98, 0x95, 0x92, 0x8c, 0x86, 0x7e, 0x78, 0x73, 0x6d,
+			0x69, 0x67, 0x66, 0x65, 0x67, 0x6b, 0x6f, 0x73, 0x79, 0x7f, 0x84,
+			0x89, 0x8d, 0x92, 0x95, 0x96, 0x98, 0x98, 0x97, 0x94, 0x90, 0x8b,
+			0x85, 0x7e, 0x78, 0x73, 0x6e, 0x69, 0x67, 0x67, 0x66, 0x67, 0x6b,
+			0x6f, 0x73, 0x78, 0x7e, 0x84, 0x88, 0x8c, 0x90, 0x94, 0x96, 0x97,
+			0x98, 0x97, 0x94, 0x90, 0x8b, 0x86, 0x7f, 0x79, 0x75, 0x70, 0x6b,
+			0x68, 0x68, 0x67, 0x68, 0x6c, 0x70, 0x73, 0x78, 0x7d, 0x82, 0x87,
+			0x8b, 0x90, 0x92, 0x94, 0x96, 0x96, 0x96, 0x93, 0x90, 0x8b, 0x86,
+			0x7f, 0x79, 0x75, 0x70, 0x6c, 0x6a, 0x69, 0x69, 0x6a, 0x6d, 0x71,
+			0x74, 0x79, 0x7e, 0x82, 0x87, 0x8b, 0x8f, 0x91, 0x93, 0x95, 0x95,
+			0x94, 0x92, 0x8f, 0x8a, 0x85, 0x7e, 0x79, 0x75, 0x70, 0x6d, 0x6a,
+			0x6a, 0x69, 0x6a, 0x6e, 0x71, 0x75, 0x79, 0x7f, 0x83, 0x87, 0x8b,
+			0x8f, 0x91, 0x93, 0x94, 0x95, 0x94, 0x91, 0x8d, 0x89, 0x84, 0x7d,
+			0x79, 0x74, 0x70, 0x6d, 0x6b, 0x6b, 0x6a, 0x6c, 0x6f, 0x73, 0x76,
+			0x7b, 0x80, 0x84, 0x88, 0x8b, 0x8f, 0x91, 0x92, 0x93, 0x94, 0x93,
+			0x90, 0x8c, 0x88, 0x82, 0x7d, 0x79, 0x74, 0x70, 0x6d, 0x6b, 0x6b,
+			0x6b, 0x6d, 0x70, 0x73, 0x77, 0x7b, 0x80, 0x84, 0x88, 0x8c, 0x8f,
+			0x90, 0x92, 0x93, 0x93, 0x91, 0x8f, 0x8b, 0x87, 0x81, 0x7c, 0x78,
+			0x74, 0x70, 0x6e, 0x6d, 0x6c, 0x6c, 0x6e, 0x71, 0x74, 0x78, 0x7c,
+			0x81, 0x85, 0x88, 0x8c, 0x8f, 0x91, 0x91, 0x92, 0x92, 0x90, 0x8d,
+			0x89, 0x85, 0x7f, 0x7b, 0x77, 0x73, 0x70, 0x6e, 0x6d, 0x6d, 0x6e,
+			0x70, 0x73, 0x76, 0x79, 0x7e, 0x82, 0x85, 0x89, 0x8c, 0x8e, 0x90,
+			0x91, 0x91, 0x91, 0x8e, 0x8c, 0x88, 0x83, 0x7e, 0x7b, 0x77, 0x74,
+			0x70, 0x6f, 0x6e, 0x6e, 0x6f, 0x72, 0x75, 0x77, 0x7b, 0x7f, 0x83,
+			0x86, 0x8a, 0x8c, 0x8e, 0x8f, 0x90, 0x91, 0x8f, 0x8d, 0x89, 0x86,
+			0x81, 0x7d, 0x79, 0x76, 0x72, 0x70, 0x6f, 0x6f, 0x70, 0x71, 0x74,
+			0x76, 0x79, 0x7d, 0x81, 0x85, 0x88, 0x8a, 0x8d, 0x8e, 0x8f, 0x90,
+			0x8f, 0x8e, 0x8a, 0x87, 0x83, 0x7e, 0x7b, 0x77, 0x74, 0x72, 0x70,
+			0x70, 0x70, 0x71, 0x73, 0x75, 0x78, 0x7c, 0x7f, 0x83, 0x86, 0x89,
+			0x8b, 0x8d, 0x8e, 0x8f, 0x8f, 0x8d, 0x8b, 0x88, 0x84, 0x80, 0x7d,
+			0x79, 0x76, 0x73, 0x71, 0x71, 0x70, 0x71, 0x73, 0x75, 0x77, 0x7b,
+			0x7e, 0x82, 0x85, 0x88, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x8e, 0x8c,
+			0x89, 0x86, 0x82, 0x7e, 0x7b, 0x78, 0x75, 0x72, 0x71, 0x71, 0x71,
+			0x72, 0x74, 0x76, 0x78, 0x7c, 0x7f, 0x82, 0x85, 0x88, 0x8b, 0x8c,
+			0x8d, 0x8e, 0x8e, 0x8d, 0x8a, 0x87, 0x84, 0x80, 0x7d, 0x7a, 0x77,
+			0x74, 0x72, 0x71, 0x71, 0x72, 0x74, 0x76, 0x77, 0x7a, 0x7d, 0x81,
+			0x84, 0x87, 0x89, 0x8b, 0x8c, 0x8d, 0x8d, 0x8c, 0x8b, 0x88, 0x85,
+			0x82, 0x7f, 0x7c, 0x79, 0x76, 0x74, 0x73, 0x72, 0x72, 0x74, 0x75,
+			0x76, 0x79, 0x7c, 0x7f, 0x82, 0x85, 0x87, 0x89, 0x8a, 0x8c, 0x8c,
+			0x8c, 0x8b, 0x89, 0x87, 0x84, 0x81, 0x7e, 0x7b, 0x79, 0x76, 0x74,
+			0x73, 0x73, 0x74, 0x75, 0x76, 0x78, 0x7a, 0x7d, 0x80, 0x83, 0x86,
+			0x87, 0x89, 0x8a, 0x8b, 0x8c, 0x8b, 0x8a, 0x88, 0x85, 0x83, 0x80,
+			0x7e, 0x7b, 0x78, 0x76, 0x75, 0x74, 0x74, 0x75, 0x77, 0x78, 0x7a,
+			0x7c, 0x7f, 0x81, 0x83, 0x85, 0x87, 0x88, 0x89, 0x89, 0x88, 0x87,
+			0x86, 0x84, 0x82, 0x80, 0x7e, 0x7c, 0x7a, 0x78, 0x77, 0x77, 0x77,
+			0x78, 0x79, 0x7a, 0x7c, 0x7e, 0x80, 0x82, 0x84, 0x85, 0x86, 0x87,
+			0x88, 0x88, 0x88, 0x87, 0x85, 0x84, 0x82, 0x81, 0x7e, 0x7c, 0x7a,
+			0x78, 0x77, 0x77, 0x77, 0x77, 0x78, 0x79, 0x7a, 0x7c, 0x7e, 0x80,
+			0x82, 0x84, 0x85, 0x86, 0x87, 0x87, 0x87, 0x86, 0x86, 0x85, 0x83,
+			0x82, 0x80, 0x7e, 0x7c, 0x7a, 0x79, 0x79, 0x78, 0x78, 0x78, 0x79,
+			0x7a, 0x7c, 0x7d, 0x7f, 0x80, 0x82, 0x83, 0x84, 0x85, 0x86, 0x86,
+			0x86, 0x85, 0x85, 0x84, 0x83, 0x82, 0x80, 0x7e, 0x7d, 0x7c, 0x7b,
+			0x7a, 0x7a, 0x7a, 0x7a, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x80, 0x81,
+			0x82, 0x83, 0x84, 0x84, 0x85, 0x85, 0x84, 0x84, 0x83, 0x82, 0x81,
+			0x80, 0x7f, 0x7e, 0x7d, 0x7c, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c,
+			0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x82, 0x83, 0x83, 0x83,
+			0x83, 0x83, 0x82, 0x82, 0x81, 0x81, 0x80, 0x7f, 0x7f, 0x7e, 0x7d,
+			0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7f, 0x7f, 0x80,
+			0x80, 0x81, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x81,
+			0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81,
+			0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f,
+			0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80,
+			0x7f, 0x80,
+		},
+		{ // 4
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x81, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x7e,
+			0x7f, 0x7f, 0x80, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x81, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x81, 0x80, 0x80, 0x7f, 0x81, 0x80,
+			0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x82, 0x81,
+			0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x82, 0x81, 0x82, 0x82, 0x81,
+			0x80, 0x81, 0x82, 0x82, 0x81, 0x82, 0x81, 0x81, 0x80, 0x80, 0x82,
+			0x82, 0x80, 0x81, 0x80, 0x81, 0x81, 0x81, 0x82, 0x81, 0x80, 0x80,
+			0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x7f, 0x80, 0x81, 0x80,
+			0x80, 0x81, 0x82, 0x83, 0x82, 0x81, 0x82, 0x81, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e,
+			0x7e, 0x7f, 0x7f, 0x7d, 0x7d, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e, 0x7f,
+			0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x81,
+			0x81, 0x80, 0x80, 0x7f, 0x7e, 0x7e, 0x7f, 0x7d, 0x7e, 0x7f, 0x80,
+			0x80, 0x80, 0x81, 0x81, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x7f, 0x7e, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7e, 0x7d, 0x7f,
+			0x7e, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7e, 0x7f, 0x7d, 0x7e,
+			0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7f, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c,
+			0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7f, 0x7f, 0x7e,
+			0x7f, 0x7d, 0x7d, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7e, 0x7c, 0x7e,
+			0x80, 0x80, 0x7e, 0x7d, 0x7e, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80,
+			0x7f, 0x7d, 0x81, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7e, 0x7e, 0x7e,
+			0x7f, 0x7f, 0x80, 0x80, 0x7d, 0x7d, 0x80, 0x7f, 0x7f, 0x7d, 0x7e,
+			0x7e, 0x7d, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7d, 0x7e, 0x7f, 0x81,
+			0x7f, 0x7d, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x7e, 0x7e,
+			0x7e, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7d, 0x7d, 0x7f, 0x7f, 0x7e,
+			0x80, 0x81, 0x7f, 0x81, 0x7e, 0x80, 0x7f, 0x81, 0x81, 0x7f, 0x7f,
+			0x7e, 0x81, 0x7f, 0x81, 0x81, 0x80, 0x80, 0x81, 0x84, 0x80, 0x7f,
+			0x80, 0x7e, 0x7e, 0x80, 0x82, 0x80, 0x7f, 0x81, 0x81, 0x7f, 0x7e,
+			0x80, 0x7f, 0x81, 0x81, 0x7e, 0x7f, 0x80, 0x81, 0x81, 0x80, 0x7e,
+			0x81, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x80, 0x7e, 0x7f, 0x7f,
+			0x80, 0x7e, 0x7d, 0x80, 0x7f, 0x80, 0x81, 0x80, 0x80, 0x7e, 0x7f,
+			0x7e, 0x81, 0x80, 0x7d, 0x7f, 0x80, 0x80, 0x7c, 0x7d, 0x7b, 0x7b,
+			0x7d, 0x7c, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7d, 0x7f, 0x81, 0x7f,
+			0x7e, 0x7c, 0x7e, 0x7d, 0x7d, 0x80, 0x81, 0x7e, 0x7f, 0x80, 0x80,
+			0x83, 0x85, 0x81, 0x83, 0x84, 0x83, 0x7f, 0x80, 0x80, 0x81, 0x84,
+			0x7f, 0x7f, 0x7f, 0x82, 0x7f, 0x7f, 0x7f, 0x7c, 0x81, 0x80, 0x7e,
+			0x7d, 0x7f, 0x7f, 0x81, 0x82, 0x81, 0x80, 0x7e, 0x7c, 0x7d, 0x80,
+			0x81, 0x80, 0x7f, 0x82, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x82, 0x7f,
+			0x7d, 0x7e, 0x7e, 0x80, 0x80, 0x7b, 0x7b, 0x7f, 0x81, 0x82, 0x7f,
+			0x7e, 0x7e, 0x80, 0x80, 0x80, 0x80, 0x82, 0x7e, 0x7a, 0x80, 0x82,
+			0x81, 0x81, 0x83, 0x83, 0x80, 0x7f, 0x7f, 0x7f, 0x81, 0x83, 0x85,
+			0x86, 0x81, 0x7b, 0x7c, 0x7e, 0x80, 0x82, 0x83, 0x80, 0x81, 0x80,
+			0x7f, 0x83, 0x81, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7a, 0x7d, 0x80,
+			0x7e, 0x7c, 0x7e, 0x82, 0x7e, 0x7c, 0x80, 0x7f, 0x7c, 0x7d, 0x7e,
+			0x7e, 0x7c, 0x7a, 0x7d, 0x80, 0x7e, 0x7f, 0x80, 0x7f, 0x7f, 0x82,
+			0x83, 0x82, 0x7f, 0x80, 0x81, 0x83, 0x80, 0x81, 0x82, 0x81, 0x81,
+			0x7f, 0x80, 0x7c, 0x81, 0x81, 0x80, 0x81, 0x81, 0x7f, 0x7f, 0x82,
+			0x7f, 0x82, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x80, 0x7d,
+			0x7f, 0x7e, 0x7c, 0x7c, 0x7d, 0x80, 0x7e, 0x7d, 0x7e, 0x7e, 0x7e,
+			0x7d, 0x81, 0x82, 0x7d, 0x79, 0x7c, 0x7f, 0x7b, 0x7d, 0x7d, 0x7f,
+			0x7d, 0x7e, 0x7e, 0x7d, 0x7f, 0x7f, 0x81, 0x80, 0x7e, 0x7d, 0x82,
+			0x82, 0x7e, 0x7e, 0x83, 0x7e, 0x7d, 0x81, 0x7f, 0x7e, 0x7e, 0x80,
+			0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x80, 0x81, 0x81, 0x82, 0x7b, 0x79,
+			0x81, 0x81, 0x80, 0x7f, 0x82, 0x7f, 0x7c, 0x7e, 0x81, 0x7e, 0x7e,
+			0x80, 0x7f, 0x7e, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7e,
+			0x7d, 0x7d, 0x7f, 0x80, 0x82, 0x82, 0x7c, 0x77, 0x7d, 0x7f, 0x7d,
+			0x7f, 0x7e, 0x7d, 0x7e, 0x7f, 0x7f, 0x7d, 0x7c, 0x80, 0x7f, 0x7c,
+			0x7b, 0x7c, 0x7e, 0x7d, 0x7d, 0x81, 0x80, 0x7d, 0x7d, 0x7f, 0x81,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x82, 0x81, 0x7e, 0x81, 0x83, 0x80,
+			0x80, 0x7e, 0x81, 0x80, 0x7f, 0x80, 0x7f, 0x7b, 0x7c, 0x81, 0x82,
+			0x7f, 0x7e, 0x7e, 0x7f, 0x7c, 0x7c, 0x7e, 0x7e, 0x81, 0x7d, 0x7e,
+			0x7e, 0x81, 0x82, 0x7f, 0x7c, 0x80, 0x82, 0x80, 0x7f, 0x80, 0x80,
+			0x83, 0x83, 0x81, 0x7f, 0x7e, 0x83, 0x82, 0x7f, 0x7f, 0x80, 0x7f,
+			0x80, 0x83, 0x84, 0x82, 0x82, 0x81, 0x81, 0x80, 0x81, 0x81, 0x7f,
+			0x7d, 0x7d, 0x82, 0x82, 0x7c, 0x7e, 0x7e, 0x7c, 0x7e, 0x7f, 0x7d,
+			0x7c, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7e, 0x7b, 0x7d, 0x7f, 0x7e,
+			0x80, 0x80, 0x80, 0x7d, 0x7d, 0x81, 0x80, 0x7f, 0x80, 0x82, 0x82,
+			0x7f, 0x80, 0x83, 0x83, 0x80, 0x81, 0x82, 0x7e, 0x7f, 0x7e, 0x7d,
+			0x7d, 0x7c, 0x7e, 0x7f, 0x7c, 0x7e, 0x80, 0x81, 0x81, 0x83, 0x84,
+			0x83, 0x83, 0x82, 0x82, 0x80, 0x81, 0x82, 0x82, 0x80, 0x7b, 0x79,
+			0x7a, 0x7b, 0x7d, 0x7e, 0x7e, 0x7c, 0x7b, 0x7f, 0x82, 0x7f, 0x7f,
+			0x84, 0x87, 0x86, 0x87, 0x84, 0x84, 0x84, 0x80, 0x7d, 0x7a, 0x77,
+			0x75, 0x74, 0x6f, 0x6c, 0x6e, 0x74, 0x76, 0x7c, 0x85, 0x8b, 0x8f,
+			0x97, 0x9d, 0xa1, 0xa3, 0xa0, 0x9a, 0x8d, 0x80, 0x75, 0x6c, 0x68,
+			0x61, 0x56, 0x53, 0x5c, 0x63, 0x68, 0x6f, 0x7b, 0x88, 0x91, 0x96,
+			0xa3, 0xb3, 0xb6, 0xb5, 0xb1, 0xa9, 0x96, 0x7e, 0x6c, 0x5f, 0x58,
+			0x54, 0x51, 0x51, 0x50, 0x54, 0x5f, 0x6a, 0x74, 0x7e, 0x89, 0x92,
+			0x99, 0x9d, 0xa3, 0xaa, 0xa9, 0xa6, 0xa1, 0x9b, 0x98, 0x93, 0x90,
+			0x8c, 0x88, 0x82, 0x78, 0x6c, 0x5f, 0x58, 0x52, 0x4c, 0x4e, 0x52,
+			0x57, 0x5d, 0x67, 0x75, 0x81, 0x8b, 0x94, 0x9b, 0xa3, 0xa7, 0xaa,
+			0xad, 0xac, 0xa6, 0xa3, 0x9d, 0x98, 0x93, 0x8c, 0x87, 0x7f, 0x75,
+			0x6a, 0x5e, 0x53, 0x4b, 0x45, 0x4b, 0x50, 0x59, 0x5d, 0x69, 0x77,
+			0x82, 0x8f, 0x96, 0xa0, 0xa5, 0xa9, 0xac, 0xac, 0xab, 0xa6, 0xa0,
+			0x9b, 0x95, 0x90, 0x89, 0x81, 0x78, 0x6c, 0x61, 0x55, 0x4f, 0x45,
+			0x41, 0x47, 0x50, 0x5e, 0x63, 0x71, 0x7e, 0x8d, 0x95, 0x9e, 0xa8,
+			0xad, 0xaf, 0xad, 0xaf, 0xab, 0xa5, 0x9e, 0x9a, 0x92, 0x89, 0x7f,
+			0x77, 0x69, 0x60, 0x56, 0x4e, 0x44, 0x3a, 0x45, 0x4d, 0x5d, 0x60,
+			0x71, 0x82, 0x8f, 0x98, 0x9e, 0xa9, 0xad, 0xae, 0xaf, 0xaf, 0xab,
+			0xa6, 0x9f, 0x9b, 0x91, 0x88, 0x7c, 0x76, 0x66, 0x5d, 0x53, 0x4d,
+			0x41, 0x39, 0x42, 0x4e, 0x5e, 0x61, 0x73, 0x85, 0x95, 0x9a, 0xa0,
+			0xad, 0xb2, 0xb2, 0xaf, 0xb1, 0xad, 0xa4, 0x9e, 0x96, 0x8c, 0x7f,
+			0x78, 0x6d, 0x5f, 0x53, 0x4c, 0x45, 0x38, 0x3c, 0x4a, 0x5f, 0x61,
+			0x6c, 0x80, 0x93, 0x9b, 0x9d, 0xab, 0xb3, 0xb4, 0xb0, 0xb1, 0xb0,
+			0xa7, 0x9e, 0x97, 0x8b, 0x7f, 0x77, 0x6e, 0x62, 0x55, 0x50, 0x4b,
+			0x3b, 0x3a, 0x49, 0x5c, 0x63, 0x69, 0x80, 0x92, 0x9b, 0x9c, 0xa8,
+			0xb3, 0xb7, 0xb2, 0xb1, 0xaf, 0xa8, 0xa1, 0x93, 0x87, 0x7d, 0x75,
+			0x6b, 0x5f, 0x55, 0x52, 0x47, 0x38, 0x3c, 0x50, 0x60, 0x63, 0x6c,
+			0x83, 0x96, 0x9a, 0x9d, 0xa9, 0xb4, 0xb6, 0xb1, 0xae, 0xad, 0xa8,
+			0x9d, 0x8d, 0x81, 0x7c, 0x73, 0x64, 0x59, 0x56, 0x53, 0x44, 0x36,
+			0x43, 0x5a, 0x63, 0x64, 0x73, 0x8e, 0x9c, 0x9b, 0x9e, 0xb0, 0xb9,
+			0xb4, 0xad, 0xad, 0xae, 0xa2, 0x92, 0x85, 0x7e, 0x75, 0x67, 0x5d,
+			0x5c, 0x59, 0x4b, 0x39, 0x3c, 0x55, 0x5f, 0x61, 0x6b, 0x86, 0x97,
+			0x96, 0x9a, 0xab, 0xb9, 0xb5, 0xac, 0xaf, 0xaf, 0xa5, 0x96, 0x8c,
+			0x88, 0x7b, 0x6c, 0x64, 0x62, 0x5e, 0x53, 0x47, 0x3c, 0x48, 0x57,
+			0x5e, 0x65, 0x74, 0x8a, 0x93, 0x97, 0x9e, 0xae, 0xb6, 0xb2, 0xb0,
+			0xb0, 0xac, 0x9d, 0x94, 0x8b, 0x82, 0x75, 0x6b, 0x68, 0x65, 0x5c,
+			0x55, 0x4c, 0x3f, 0x4a, 0x58, 0x62, 0x65, 0x72, 0x86, 0x91, 0x95,
+			0x9b, 0xac, 0xb2, 0xb0, 0xad, 0xaf, 0xa9, 0x9b, 0x92, 0x8b, 0x80,
+			0x73, 0x6e, 0x6b, 0x68, 0x5e, 0x59, 0x4f, 0x43, 0x4d, 0x5b, 0x62,
+			0x64, 0x72, 0x85, 0x90, 0x92, 0x9c, 0xad, 0xb3, 0xb1, 0xad, 0xb0,
+			0xaa, 0x9e, 0x93, 0x8c, 0x83, 0x74, 0x72, 0x6e, 0x6b, 0x64, 0x5f,
+			0x54, 0x42, 0x48, 0x58, 0x5f, 0x5d, 0x68, 0x7f, 0x8b, 0x8e, 0x97,
+			0xa9, 0xb4, 0xb1, 0xae, 0xaf, 0xae, 0xa2, 0x98, 0x90, 0x86, 0x7c,
+			0x74, 0x74, 0x6f, 0x6c, 0x6a, 0x63, 0x4f, 0x3d, 0x4a, 0x59, 0x58,
+			0x56, 0x68, 0x80, 0x86, 0x8b, 0x97, 0xb1, 0xb7, 0xb2, 0xb2, 0xb2,
+			0xae, 0xa1, 0x98, 0x8d, 0x83, 0x7c, 0x78, 0x74, 0x6f, 0x70, 0x6f,
+			0x62, 0x4d, 0x42, 0x50, 0x56, 0x51, 0x53, 0x66, 0x7e, 0x82, 0x88,
+			0x9d, 0xb3, 0xb9, 0xb6, 0xb7, 0xb8, 0xb2, 0xa4, 0x98, 0x8f, 0x86,
+			0x7f, 0x77, 0x72, 0x73, 0x75, 0x72, 0x6a, 0x5e, 0x54, 0x47, 0x49,
+			0x50, 0x53, 0x59, 0x62, 0x77, 0x82, 0x8f, 0x9c, 0xaf, 0xba, 0xba,
+			0xb8, 0xb6, 0xb0, 0xa4, 0x97, 0x8c, 0x83, 0x7e, 0x79, 0x73, 0x76,
+			0x77, 0x75, 0x70, 0x6a, 0x5d, 0x4f, 0x46, 0x50, 0x56, 0x58, 0x59,
+			0x6b, 0x83, 0x8a, 0x95, 0xa6, 0xbb, 0xbd, 0xb8, 0xb4, 0xb4, 0xac,
+			0x98, 0x8b, 0x86, 0x83, 0x77, 0x71, 0x76, 0x7b, 0x75, 0x71, 0x70,
+			0x71, 0x64, 0x51, 0x4a, 0x52, 0x58, 0x57, 0x5c, 0x6d, 0x84, 0x8a,
+			0x95, 0xa3, 0xb8, 0xba, 0xb3, 0xb5, 0xb4, 0xa8, 0x92, 0x8b, 0x87,
+			0x81, 0x75, 0x75, 0x79, 0x7a, 0x77, 0x77, 0x7b, 0x78, 0x6c, 0x60,
+			0x57, 0x50, 0x4e, 0x57, 0x5a, 0x63, 0x6a, 0x7c, 0x8c, 0x99, 0xa9,
+			0xb4, 0xbd, 0xba, 0xb8, 0xb1, 0xaa, 0x99, 0x8d, 0x83, 0x81, 0x7e,
+			0x77, 0x76, 0x79, 0x81, 0x7e, 0x7e, 0x7e, 0x7d, 0x72, 0x61, 0x54,
+			0x4b, 0x4b, 0x50, 0x50, 0x5a, 0x66, 0x79, 0x89, 0x96, 0xa7, 0xb4,
+			0xbd, 0xbc, 0xb9, 0xb2, 0xa8, 0x9c, 0x92, 0x86, 0x81, 0x7d, 0x7d,
+			0x7a, 0x7d, 0x83, 0x84, 0x84, 0x81, 0x82, 0x7c, 0x6f, 0x62, 0x54,
+			0x4b, 0x40, 0x40, 0x4d, 0x56, 0x62, 0x6f, 0x86, 0x97, 0xa5, 0xb0,
+			0xbb, 0xc1, 0xbd, 0xb6, 0xac, 0xa3, 0x96, 0x89, 0x81, 0x7c, 0x7e,
+			0x7d, 0x7f, 0x82, 0x89, 0x8a, 0x87, 0x86, 0x82, 0x7c, 0x6b, 0x60,
+			0x51, 0x4a, 0x3b, 0x37, 0x3a, 0x4e, 0x5a, 0x65, 0x78, 0x8e, 0xa7,
+			0xac, 0xb8, 0xc0, 0xc9, 0xc0, 0xb3, 0xab, 0xa3, 0x97, 0x87, 0x81,
+			0x7e, 0x7c, 0x77, 0x7b, 0x86, 0x8b, 0x8a, 0x88, 0x8a, 0x86, 0x7a,
+			0x70, 0x6a, 0x64, 0x57, 0x4c, 0x48, 0x47, 0x42, 0x40, 0x49, 0x63,
+			0x71, 0x80, 0x8c, 0xa4, 0xb6, 0xb8, 0xc1, 0xc6, 0xcf, 0xbf, 0xb1,
+			0xa8, 0xa0, 0x90, 0x79, 0x71, 0x6a, 0x63, 0x59, 0x5b, 0x64, 0x69,
+			0x6d, 0x74, 0x83, 0x8b, 0x8e, 0x8f, 0x93, 0x96, 0x91, 0x8e, 0x89,
+			0x88, 0x80, 0x79, 0x76, 0x72, 0x6d, 0x66, 0x67, 0x64, 0x5f, 0x57,
+			0x58, 0x54, 0x50, 0x4f, 0x5f, 0x72, 0x77, 0x80, 0x8f, 0xa6, 0xaa,
+			0xaf, 0xb9, 0xc3, 0xc0, 0xb2, 0xac, 0xa7, 0x9c, 0x86, 0x7a, 0x75,
+			0x6f, 0x65, 0x5f, 0x65, 0x6a, 0x6d, 0x6e, 0x79, 0x82, 0x85, 0x87,
+			0x8a, 0x90, 0x8c, 0x86, 0x80, 0x7f, 0x7a, 0x73, 0x72, 0x75, 0x77,
+			0x71, 0x73, 0x78, 0x7e, 0x7a, 0x79, 0x7d, 0x7c, 0x74, 0x69, 0x68,
+			0x61, 0x56, 0x4f, 0x58, 0x68, 0x6e, 0x70, 0x7e, 0x94, 0xa1, 0xa5,
+			0xae, 0xbd, 0xc2, 0xba, 0xb2, 0xae, 0xa6, 0x94, 0x84, 0x7c, 0x74,
+			0x69, 0x5e, 0x60, 0x65, 0x68, 0x6a, 0x72, 0x7d, 0x81, 0x82, 0x86,
+			0x8c, 0x8e, 0x87, 0x84, 0x83, 0x7f, 0x76, 0x6e, 0x6d, 0x6e, 0x6d,
+			0x68, 0x6c, 0x74, 0x7f, 0x81, 0x84, 0x8c, 0x94, 0x95, 0x8e, 0x90,
+			0x8f, 0x89, 0x79, 0x71, 0x6b, 0x63, 0x58, 0x4f, 0x4f, 0x4c, 0x52,
+			0x5a, 0x6d, 0x7b, 0x89, 0x99, 0xa7, 0xb7, 0xba, 0xc0, 0xbf, 0xbe,
+			0xb5, 0xa6, 0x9b, 0x8c, 0x7f, 0x6e, 0x66, 0x61, 0x5e, 0x5d, 0x5f,
+			0x69, 0x6f, 0x78, 0x7e, 0x88, 0x8e, 0x8f, 0x8f, 0x8d, 0x8c, 0x84,
+			0x7f, 0x78, 0x73, 0x6e, 0x67, 0x67, 0x67, 0x6b, 0x6c, 0x71, 0x79,
+			0x7f, 0x84, 0x88, 0x8d, 0x90, 0x91, 0x8e, 0x8d, 0x89, 0x89, 0x86,
+			0x81, 0x7f, 0x7b, 0x7d, 0x79, 0x7a, 0x79, 0x7a, 0x79, 0x76, 0x74,
+			0x71, 0x71, 0x6c, 0x68, 0x62, 0x68, 0x71, 0x77, 0x7e, 0x85, 0x95,
+			0x9d, 0xa1, 0xa6, 0xac, 0xb0, 0xa8, 0xa1, 0x99, 0x94, 0x88, 0x7c,
+			0x73, 0x6e, 0x6b, 0x65, 0x66, 0x6a, 0x70, 0x73, 0x77, 0x80, 0x86,
+			0x88, 0x87, 0x89, 0x89, 0x84, 0x7f, 0x7b, 0x79, 0x72, 0x6e, 0x6c,
+			0x6e, 0x6f, 0x6f, 0x72, 0x77, 0x7d, 0x7f, 0x83, 0x88, 0x8b, 0x8b,
+			0x8a, 0x8b, 0x8a, 0x86, 0x81, 0x7f, 0x7c, 0x7a, 0x77, 0x76, 0x78,
+			0x78, 0x7b, 0x7c, 0x80, 0x83, 0x85, 0x87, 0x8a, 0x8c, 0x8b, 0x89,
+			0x88, 0x87, 0x84, 0x81, 0x7e, 0x7e, 0x7c, 0x7b, 0x7b, 0x7c, 0x7c,
+			0x7d, 0x7d, 0x80, 0x81, 0x82, 0x82, 0x82, 0x84, 0x82, 0x81, 0x7f,
+			0x7f, 0x7e, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7f, 0x80,
+			0x89, 0x8f, 0x8d, 0x88, 0x85, 0x85, 0x7b, 0x73, 0x6d, 0x6d, 0x65,
+			0x5d, 0x5c, 0x66, 0x6f, 0x71, 0x7b, 0x86, 0x96, 0x99, 0x9d, 0xa2,
+			0xa6, 0xa4, 0x98, 0x93, 0x8e, 0x86, 0x78, 0x70, 0x6f, 0x6e, 0x6c,
+			0x6a, 0x71, 0x79, 0x7d, 0x80, 0x86, 0x8e, 0x8e, 0x8c, 0x8a, 0x8a,
+			0x86, 0x7e, 0x79, 0x76, 0x74, 0x6f, 0x6d, 0x6f, 0x73, 0x75, 0x76,
+			0x7c, 0x82, 0x86, 0x87, 0x89, 0x8c, 0x8c, 0x89, 0x86, 0x85, 0x82,
+			0x7e, 0x79, 0x78, 0x78, 0x77, 0x76, 0x77, 0x7b, 0x7e, 0x7f, 0x82,
+			0x85, 0x88, 0x87, 0x87, 0x87, 0x87, 0x84, 0x81, 0x7f, 0x7e, 0x7d,
+			0x7a, 0x7a, 0x7b, 0x7c, 0x7c, 0x7d, 0x80, 0x82, 0x83, 0x83, 0x84,
+			0x84, 0x83, 0x82, 0x80, 0x80, 0x7e, 0x7d, 0x7c, 0x7c, 0x7c, 0x7b,
+			0x7c, 0x7d, 0x7f, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x82, 0x82, 0x82,
+			0x81, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c, 0x7d, 0x7d, 0x7e, 0x7e,
+			0x7f, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80,
+			0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f,
+		},
+		{ // 5
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c,
+			0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7f, 0x7f, 0x80,
+			0x80, 0x80, 0x81, 0x81, 0x81, 0x82, 0x82, 0x83, 0x83, 0x83, 0x83,
+			0x83, 0x83, 0x83, 0x83, 0x82, 0x81, 0x80, 0x7f, 0x7e, 0x7c, 0x7b,
+			0x7a, 0x78, 0x78, 0x77, 0x77, 0x77, 0x77, 0x77, 0x78, 0x78, 0x79,
+			0x7b, 0x7c, 0x7d, 0x7f, 0x80, 0x81, 0x83, 0x83, 0x84, 0x85, 0x85,
+			0x86, 0x86, 0x87, 0x88, 0x88, 0x89, 0x8a, 0x8a, 0x8a, 0x8a, 0x89,
+			0x87, 0x84, 0x81, 0x7d, 0x79, 0x75, 0x71, 0x6f, 0x6f, 0x6f, 0x6f,
+			0x6f, 0x70, 0x70, 0x71, 0x73, 0x75, 0x77, 0x79, 0x7b, 0x7d, 0x7f,
+			0x81, 0x83, 0x84, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8c, 0x8d, 0x8f,
+			0x90, 0x90, 0x91, 0x90, 0x8f, 0x8e, 0x8c, 0x89, 0x86, 0x83, 0x7f,
+			0x7c, 0x78, 0x75, 0x72, 0x6f, 0x6e, 0x6d, 0x6e, 0x6e, 0x6f, 0x6f,
+			0x6f, 0x6f, 0x6f, 0x6f, 0x70, 0x72, 0x74, 0x76, 0x79, 0x7b, 0x7e,
+			0x81, 0x83, 0x86, 0x88, 0x8a, 0x8d, 0x8f, 0x91, 0x93, 0x94, 0x95,
+			0x95, 0x94, 0x93, 0x91, 0x8f, 0x8c, 0x88, 0x85, 0x81, 0x7e, 0x7b,
+			0x78, 0x75, 0x73, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x71,
+			0x70, 0x6f, 0x6f, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x75, 0x77, 0x7a,
+			0x7c, 0x7f, 0x82, 0x84, 0x87, 0x8a, 0x8d, 0x90, 0x92, 0x95, 0x96,
+			0x97, 0x97, 0x97, 0x95, 0x93, 0x90, 0x8c, 0x89, 0x85, 0x80, 0x7d,
+			0x79, 0x76, 0x74, 0x73, 0x72, 0x73, 0x73, 0x73, 0x72, 0x71, 0x70,
+			0x6f, 0x6e, 0x6e, 0x6e, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x74, 0x76,
+			0x79, 0x7c, 0x7e, 0x81, 0x85, 0x88, 0x8b, 0x8f, 0x92, 0x95, 0x98,
+			0x99, 0x9a, 0x9a, 0x99, 0x97, 0x94, 0x90, 0x8c, 0x87, 0x83, 0x7e,
+			0x7a, 0x77, 0x75, 0x74, 0x73, 0x74, 0x74, 0x74, 0x73, 0x71, 0x70,
+			0x6f, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6e, 0x6f, 0x70, 0x71, 0x73,
+			0x75, 0x78, 0x7a, 0x7d, 0x80, 0x84, 0x87, 0x8b, 0x8e, 0x92, 0x96,
+			0x99, 0x9b, 0x9c, 0x9d, 0x9c, 0x9a, 0x97, 0x93, 0x8e, 0x89, 0x84,
+			0x7f, 0x7a, 0x77, 0x75, 0x75, 0x75, 0x75, 0x75, 0x74, 0x72, 0x70,
+			0x6f, 0x6e, 0x6e, 0x6e, 0x6e, 0x6d, 0x6d, 0x6d, 0x6d, 0x6e, 0x70,
+			0x71, 0x73, 0x75, 0x78, 0x7b, 0x7e, 0x81, 0x84, 0x88, 0x8c, 0x90,
+			0x94, 0x98, 0x9b, 0x9d, 0x9f, 0x9f, 0x9d, 0x9b, 0x97, 0x93, 0x8d,
+			0x87, 0x81, 0x7c, 0x78, 0x76, 0x76, 0x76, 0x76, 0x75, 0x74, 0x72,
+			0x70, 0x6f, 0x6f, 0x6f, 0x6e, 0x6e, 0x6d, 0x6c, 0x6c, 0x6c, 0x6c,
+			0x6d, 0x6e, 0x70, 0x73, 0x75, 0x78, 0x7b, 0x7e, 0x81, 0x84, 0x88,
+			0x8c, 0x90, 0x95, 0x99, 0x9c, 0x9f, 0xa0, 0xa1, 0x9f, 0x9d, 0x98,
+			0x93, 0x8c, 0x86, 0x80, 0x7b, 0x78, 0x78, 0x77, 0x77, 0x76, 0x74,
+			0x73, 0x71, 0x70, 0x70, 0x70, 0x6f, 0x6e, 0x6d, 0x6c, 0x6b, 0x6b,
+			0x6b, 0x6b, 0x6c, 0x6d, 0x6f, 0x71, 0x74, 0x77, 0x7a, 0x7d, 0x80,
+			0x84, 0x87, 0x8b, 0x8f, 0x94, 0x98, 0x9d, 0xa0, 0xa2, 0xa4, 0xa3,
+			0xa0, 0x9c, 0x96, 0x8f, 0x88, 0x81, 0x7d, 0x7a, 0x79, 0x78, 0x78,
+			0x76, 0x74, 0x72, 0x71, 0x70, 0x70, 0x6f, 0x6e, 0x6d, 0x6c, 0x6b,
+			0x6a, 0x69, 0x69, 0x69, 0x69, 0x6b, 0x6d, 0x6f, 0x72, 0x76, 0x79,
+			0x7c, 0x7f, 0x82, 0x85, 0x89, 0x8d, 0x92, 0x97, 0x9c, 0xa1, 0xa5,
+			0xa7, 0xa7, 0xa5, 0xa0, 0x9a, 0x93, 0x8c, 0x84, 0x7f, 0x7b, 0x7a,
+			0x7a, 0x78, 0x76, 0x73, 0x71, 0x70, 0x70, 0x70, 0x70, 0x6f, 0x6e,
+			0x6c, 0x6b, 0x69, 0x68, 0x67, 0x67, 0x67, 0x68, 0x6a, 0x6d, 0x70,
+			0x74, 0x78, 0x7a, 0x7e, 0x80, 0x83, 0x87, 0x8c, 0x90, 0x96, 0x9d,
+			0xa3, 0xa7, 0xaa, 0xaa, 0xa8, 0xa3, 0x9d, 0x95, 0x8d, 0x85, 0x7e,
+			0x7b, 0x7a, 0x79, 0x78, 0x76, 0x73, 0x71, 0x70, 0x71, 0x71, 0x71,
+			0x71, 0x70, 0x6e, 0x6c, 0x6a, 0x67, 0x66, 0x66, 0x66, 0x67, 0x69,
+			0x6b, 0x6f, 0x72, 0x75, 0x78, 0x7b, 0x7e, 0x81, 0x84, 0x89, 0x8f,
+			0x95, 0x9c, 0xa3, 0xa9, 0xac, 0xad, 0xac, 0xa7, 0xa0, 0x98, 0x8f,
+			0x86, 0x7f, 0x7b, 0x79, 0x78, 0x77, 0x75, 0x72, 0x70, 0x70, 0x70,
+			0x72, 0x73, 0x74, 0x73, 0x71, 0x6e, 0x6a, 0x67, 0x65, 0x64, 0x65,
+			0x66, 0x68, 0x6b, 0x6e, 0x71, 0x75, 0x78, 0x7a, 0x7d, 0x7f, 0x82,
+			0x86, 0x8c, 0x93, 0x9b, 0xa2, 0xa9, 0xad, 0xaf, 0xae, 0xa9, 0xa2,
+			0x9a, 0x91, 0x88, 0x80, 0x7b, 0x78, 0x77, 0x76, 0x74, 0x72, 0x70,
+			0x6f, 0x71, 0x73, 0x76, 0x78, 0x77, 0x75, 0x70, 0x6c, 0x68, 0x65,
+			0x64, 0x64, 0x64, 0x66, 0x68, 0x6b, 0x6e, 0x72, 0x75, 0x78, 0x7a,
+			0x7d, 0x80, 0x85, 0x8a, 0x92, 0x9a, 0xa3, 0xaa, 0xaf, 0xb1, 0xb0,
+			0xac, 0xa5, 0x9c, 0x92, 0x89, 0x81, 0x7b, 0x77, 0x75, 0x74, 0x73,
+			0x71, 0x70, 0x6f, 0x71, 0x74, 0x78, 0x7a, 0x7b, 0x78, 0x73, 0x6d,
+			0x68, 0x65, 0x64, 0x63, 0x64, 0x65, 0x68, 0x6b, 0x6e, 0x71, 0x73,
+			0x76, 0x79, 0x7b, 0x7f, 0x83, 0x89, 0x90, 0x99, 0xa2, 0xaa, 0xb0,
+			0xb3, 0xb2, 0xae, 0xa7, 0x9f, 0x95, 0x8c, 0x83, 0x7b, 0x76, 0x72,
+			0x70, 0x6f, 0x6e, 0x6e, 0x6f, 0x72, 0x76, 0x7a, 0x7d, 0x7f, 0x7d,
+			0x78, 0x71, 0x6b, 0x66, 0x64, 0x63, 0x63, 0x64, 0x66, 0x69, 0x6c,
+			0x6f, 0x72, 0x75, 0x78, 0x7b, 0x7e, 0x82, 0x87, 0x8e, 0x97, 0xa0,
+			0xa8, 0xae, 0xb2, 0xb2, 0xaf, 0xa9, 0xa2, 0x98, 0x8f, 0x85, 0x7d,
+			0x76, 0x71, 0x6e, 0x6c, 0x6b, 0x6b, 0x6e, 0x71, 0x76, 0x7b, 0x80,
+			0x82, 0x81, 0x7d, 0x76, 0x6d, 0x67, 0x63, 0x62, 0x63, 0x64, 0x65,
+			0x67, 0x69, 0x6d, 0x70, 0x74, 0x78, 0x7c, 0x7f, 0x83, 0x88, 0x8e,
+			0x95, 0x9d, 0xa5, 0xac, 0xb0, 0xb1, 0xb0, 0xab, 0xa3, 0x9a, 0x91,
+			0x87, 0x7e, 0x76, 0x71, 0x6c, 0x6a, 0x69, 0x6a, 0x6d, 0x71, 0x77,
+			0x7c, 0x81, 0x84, 0x84, 0x80, 0x79, 0x70, 0x68, 0x63, 0x61, 0x62,
+			0x64, 0x66, 0x68, 0x6a, 0x6d, 0x70, 0x74, 0x78, 0x7c, 0x80, 0x84,
+			0x88, 0x8e, 0x94, 0x9b, 0xa3, 0xa9, 0xae, 0xb0, 0xaf, 0xab, 0xa4,
+			0x9c, 0x92, 0x88, 0x7f, 0x76, 0x70, 0x6b, 0x68, 0x68, 0x69, 0x6c,
+			0x71, 0x77, 0x7e, 0x84, 0x87, 0x87, 0x83, 0x7c, 0x71, 0x68, 0x61,
+			0x5f, 0x60, 0x63, 0x65, 0x66, 0x68, 0x6b, 0x6f, 0x73, 0x78, 0x7d,
+			0x82, 0x86, 0x8b, 0x8f, 0x95, 0x9b, 0xa1, 0xa7, 0xac, 0xaf, 0xaf,
+			0xac, 0xa6, 0x9e, 0x95, 0x8a, 0x80, 0x77, 0x70, 0x6b, 0x67, 0x66,
+			0x67, 0x6b, 0x70, 0x76, 0x7d, 0x83, 0x88, 0x89, 0x86, 0x7f, 0x76,
+			0x6b, 0x63, 0x5d, 0x5d, 0x60, 0x63, 0x66, 0x69, 0x6b, 0x6e, 0x72,
+			0x77, 0x7c, 0x81, 0x86, 0x8a, 0x8e, 0x93, 0x98, 0x9e, 0xa3, 0xa8,
+			0xac, 0xad, 0xac, 0xa8, 0xa2, 0x99, 0x90, 0x85, 0x7c, 0x73, 0x6d,
+			0x69, 0x67, 0x67, 0x6a, 0x6e, 0x74, 0x7a, 0x81, 0x87, 0x8a, 0x89,
+			0x85, 0x7c, 0x72, 0x67, 0x5f, 0x5a, 0x5b, 0x5e, 0x63, 0x68, 0x6c,
+			0x70, 0x73, 0x77, 0x7a, 0x7e, 0x82, 0x86, 0x8b, 0x8f, 0x94, 0x9a,
+			0x9f, 0xa4, 0xa7, 0xaa, 0xab, 0xa9, 0xa5, 0x9f, 0x97, 0x8e, 0x84,
+			0x7b, 0x73, 0x6d, 0x69, 0x67, 0x68, 0x6b, 0x6f, 0x75, 0x7c, 0x82,
+			0x87, 0x89, 0x88, 0x83, 0x7b, 0x71, 0x67, 0x60, 0x5c, 0x5c, 0x5f,
+			0x63, 0x68, 0x6c, 0x70, 0x73, 0x77, 0x7c, 0x81, 0x86, 0x8a, 0x8d,
+			0x91, 0x94, 0x98, 0x9c, 0xa0, 0xa3, 0xa6, 0xa7, 0xa6, 0xa2, 0x9d,
+			0x95, 0x8c, 0x84, 0x7c, 0x74, 0x6e, 0x6b, 0x6a, 0x6b, 0x6e, 0x72,
+			0x77, 0x7d, 0x83, 0x87, 0x88, 0x85, 0x7f, 0x77, 0x6e, 0x66, 0x60,
+			0x5e, 0x60, 0x64, 0x68, 0x6c, 0x70, 0x72, 0x75, 0x78, 0x7c, 0x80,
+			0x85, 0x89, 0x8d, 0x90, 0x93, 0x98, 0x9c, 0x9f, 0xa3, 0xa5, 0xa6,
+			0xa5, 0xa1, 0x9b, 0x94, 0x8c, 0x83, 0x7a, 0x73, 0x6e, 0x6b, 0x6a,
+			0x6c, 0x6f, 0x73, 0x78, 0x7d, 0x82, 0x85, 0x86, 0x84, 0x7e, 0x77,
+			0x6f, 0x68, 0x63, 0x61, 0x62, 0x65, 0x69, 0x6c, 0x70, 0x73, 0x76,
+			0x7a, 0x7e, 0x83, 0x86, 0x8a, 0x8d, 0x90, 0x94, 0x97, 0x9b, 0x9e,
+			0xa1, 0xa3, 0xa3, 0xa1, 0x9d, 0x98, 0x91, 0x89, 0x81, 0x7a, 0x74,
+			0x6f, 0x6d, 0x6c, 0x6d, 0x70, 0x74, 0x78, 0x7d, 0x81, 0x83, 0x84,
+			0x82, 0x7f, 0x79, 0x72, 0x6b, 0x66, 0x63, 0x63, 0x66, 0x6a, 0x6e,
+			0x72, 0x76, 0x79, 0x7c, 0x7e, 0x81, 0x84, 0x88, 0x8b, 0x8f, 0x92,
+			0x96, 0x99, 0x9d, 0xa0, 0xa2, 0xa2, 0xa0, 0x9c, 0x97, 0x90, 0x89,
+			0x82, 0x7b, 0x75, 0x71, 0x6f, 0x6e, 0x6f, 0x71, 0x74, 0x78, 0x7b,
+			0x7f, 0x82, 0x83, 0x83, 0x80, 0x7c, 0x75, 0x6f, 0x69, 0x65, 0x64,
+			0x65, 0x68, 0x6d, 0x71, 0x75, 0x79, 0x7c, 0x7e, 0x80, 0x83, 0x86,
+			0x8a, 0x8e, 0x92, 0x96, 0x9a, 0x9d, 0xa0, 0xa1, 0xa0, 0x9e, 0x99,
+			0x94, 0x8e, 0x87, 0x81, 0x7b, 0x76, 0x73, 0x71, 0x70, 0x71, 0x72,
+			0x74, 0x77, 0x7a, 0x7d, 0x7f, 0x81, 0x82, 0x81, 0x7e, 0x79, 0x74,
+			0x6e, 0x6a, 0x67, 0x67, 0x69, 0x6d, 0x71, 0x75, 0x78, 0x7b, 0x7d,
+			0x7f, 0x81, 0x84, 0x88, 0x8c, 0x90, 0x95, 0x9a, 0x9d, 0xa0, 0xa0,
+			0x9f, 0x9c, 0x98, 0x92, 0x8c, 0x86, 0x80, 0x7b, 0x77, 0x74, 0x73,
+			0x72, 0x73, 0x74, 0x76, 0x78, 0x7a, 0x7c, 0x7e, 0x80, 0x80, 0x80,
+			0x7e, 0x7b, 0x76, 0x72, 0x6d, 0x6a, 0x6a, 0x6b, 0x6e, 0x71, 0x75,
+			0x78, 0x7b, 0x7d, 0x7f, 0x81, 0x84, 0x87, 0x8b, 0x8f, 0x94, 0x98,
+			0x9c, 0x9e, 0x9f, 0x9e, 0x9a, 0x96, 0x90, 0x8a, 0x84, 0x7e, 0x7a,
+			0x76, 0x75, 0x74, 0x74, 0x75, 0x76, 0x77, 0x79, 0x7a, 0x7c, 0x7d,
+			0x7e, 0x7f, 0x7e, 0x7d, 0x7b, 0x77, 0x74, 0x70, 0x6e, 0x6d, 0x6e,
+			0x70, 0x73, 0x76, 0x79, 0x7b, 0x7d, 0x7f, 0x80, 0x82, 0x85, 0x89,
+			0x8e, 0x94, 0x98, 0x9d, 0x9f, 0x9f, 0x9d, 0x98, 0x93, 0x8c, 0x86,
+			0x80, 0x7b, 0x78, 0x76, 0x75, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a,
+			0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7a, 0x78, 0x76, 0x73, 0x71,
+			0x70, 0x70, 0x71, 0x73, 0x76, 0x79, 0x7c, 0x7e, 0x80, 0x82, 0x84,
+			0x86, 0x89, 0x8c, 0x90, 0x94, 0x98, 0x9a, 0x9b, 0x9a, 0x97, 0x93,
+			0x8d, 0x87, 0x82, 0x7d, 0x79, 0x77, 0x76, 0x76, 0x77, 0x78, 0x7a,
+			0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7a, 0x79, 0x77, 0x76, 0x74,
+			0x73, 0x72, 0x72, 0x72, 0x74, 0x76, 0x78, 0x7b, 0x7d, 0x7f, 0x81,
+			0x83, 0x85, 0x88, 0x8b, 0x8f, 0x92, 0x95, 0x97, 0x98, 0x98, 0x95,
+			0x92, 0x8d, 0x88, 0x83, 0x7f, 0x7b, 0x79, 0x78, 0x77, 0x78, 0x79,
+			0x7a, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7a, 0x78, 0x76, 0x75,
+			0x73, 0x72, 0x72, 0x72, 0x73, 0x75, 0x77, 0x79, 0x7b, 0x7d, 0x7f,
+			0x81, 0x84, 0x87, 0x8a, 0x8d, 0x90, 0x94, 0x96, 0x97, 0x97, 0x96,
+			0x93, 0x90, 0x8b, 0x87, 0x82, 0x7f, 0x7c, 0x7a, 0x79, 0x79, 0x79,
+			0x7a, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c, 0x7b, 0x7a, 0x78, 0x77, 0x75,
+			0x73, 0x72, 0x72, 0x72, 0x73, 0x74, 0x75, 0x77, 0x79, 0x7b, 0x7d,
+			0x80, 0x83, 0x86, 0x8a, 0x8d, 0x91, 0x94, 0x97, 0x98, 0x98, 0x97,
+			0x94, 0x91, 0x8c, 0x88, 0x84, 0x80, 0x7d, 0x7b, 0x7a, 0x79, 0x7a,
+			0x7a, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7b, 0x7a, 0x78, 0x77, 0x75,
+			0x73, 0x72, 0x71, 0x71, 0x72, 0x72, 0x74, 0x75, 0x77, 0x79, 0x7c,
+			0x7f, 0x82, 0x86, 0x8a, 0x8f, 0x93, 0x96, 0x99, 0x9a, 0x9a, 0x99,
+			0x96, 0x93, 0x8e, 0x89, 0x84, 0x81, 0x7d, 0x7b, 0x7a, 0x79, 0x79,
+			0x7a, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7b, 0x7a, 0x78, 0x76, 0x74,
+			0x72, 0x70, 0x70, 0x70, 0x70, 0x71, 0x72, 0x74, 0x75, 0x78, 0x7a,
+			0x7d, 0x81, 0x85, 0x8b, 0x90, 0x95, 0x9a, 0x9d, 0x9f, 0x9f, 0x9d,
+			0x99, 0x95, 0x8f, 0x89, 0x84, 0x7f, 0x7c, 0x79, 0x78, 0x78, 0x79,
+			0x7a, 0x7b, 0x7c, 0x7c, 0x7d, 0x7c, 0x7b, 0x79, 0x77, 0x74, 0x72,
+			0x6f, 0x6e, 0x6d, 0x6d, 0x6e, 0x6f, 0x71, 0x72, 0x74, 0x76, 0x78,
+			0x7a, 0x7e, 0x82, 0x88, 0x8e, 0x95, 0x9b, 0xa0, 0xa3, 0xa3, 0xa2,
+			0x9e, 0x9a, 0x94, 0x8d, 0x87, 0x81, 0x7c, 0x79, 0x77, 0x77, 0x78,
+			0x79, 0x7a, 0x7c, 0x7d, 0x7e, 0x7d, 0x7c, 0x7b, 0x78, 0x75, 0x72,
+			0x6f, 0x6c, 0x6b, 0x6b, 0x6c, 0x6d, 0x6f, 0x71, 0x73, 0x74, 0x75,
+			0x77, 0x7a, 0x7f, 0x85, 0x8c, 0x94, 0x9c, 0xa2, 0xa7, 0xa9, 0xa7,
+			0xa3, 0x9d, 0x97, 0x8f, 0x87, 0x81, 0x7c, 0x78, 0x76, 0x76, 0x77,
+			0x78, 0x7a, 0x7c, 0x7e, 0x7f, 0x7f, 0x7e, 0x7c, 0x79, 0x75, 0x70,
+			0x6c, 0x69, 0x67, 0x67, 0x68, 0x6b, 0x6e, 0x70, 0x71, 0x73, 0x74,
+			0x76, 0x7a, 0x80, 0x88, 0x90, 0x9a, 0xa2, 0xa9, 0xad, 0xad, 0xaa,
+			0xa4, 0x9c, 0x94, 0x8b, 0x83, 0x7c, 0x78, 0x75, 0x74, 0x75, 0x77,
+			0x79, 0x7c, 0x7f, 0x80, 0x81, 0x80, 0x7e, 0x7a, 0x75, 0x6f, 0x6a,
+			0x66, 0x63, 0x63, 0x65, 0x69, 0x6d, 0x71, 0x73, 0x74, 0x75, 0x76,
+			0x78, 0x7d, 0x84, 0x8e, 0x99, 0xa3, 0xab, 0xb1, 0xb3, 0xb0, 0xaa,
+			0xa1, 0x97, 0x8d, 0x84, 0x7c, 0x77, 0x74, 0x73, 0x74, 0x76, 0x79,
+			0x7d, 0x80, 0x82, 0x83, 0x82, 0x7f, 0x7b, 0x75, 0x6e, 0x67, 0x62,
+			0x5f, 0x5f, 0x62, 0x68, 0x6d, 0x71, 0x73, 0x74, 0x73, 0x74, 0x77,
+			0x7c, 0x84, 0x8f, 0x9b, 0xa6, 0xaf, 0xb5, 0xb6, 0xb2, 0xab, 0xa1,
+			0x96, 0x8b, 0x81, 0x7a, 0x75, 0x72, 0x72, 0x74, 0x77, 0x7b, 0x7f,
+			0x83, 0x85, 0x86, 0x85, 0x81, 0x7b, 0x72, 0x68, 0x5f, 0x59, 0x56,
+			0x58, 0x5e, 0x66, 0x6e, 0x72, 0x74, 0x73, 0x73, 0x74, 0x78, 0x80,
+			0x8b, 0x98, 0xa5, 0xb1, 0xb8, 0xbc, 0xba, 0xb3, 0xa8, 0x9b, 0x8f,
+			0x83, 0x7a, 0x74, 0x71, 0x70, 0x71, 0x74, 0x78, 0x7c, 0x81, 0x85,
+			0x89, 0x8b, 0x88, 0x83, 0x79, 0x6d, 0x60, 0x56, 0x50, 0x4f, 0x55,
+			0x5e, 0x69, 0x71, 0x74, 0x76, 0x75, 0x75, 0x76, 0x7c, 0x85, 0x93,
+			0xa2, 0xb0, 0xba, 0xc0, 0xc0, 0xb9, 0xaf, 0xa1, 0x94, 0x86, 0x7c,
+			0x75, 0x72, 0x70, 0x70, 0x72, 0x76, 0x7b, 0x80, 0x86, 0x8a, 0x8d,
+			0x8b, 0x86, 0x7c, 0x6e, 0x60, 0x53, 0x4b, 0x4a, 0x50, 0x5b, 0x66,
+			0x6f, 0x73, 0x76, 0x75, 0x75, 0x77, 0x7d, 0x86, 0x94, 0xa4, 0xb2,
+			0xbd, 0xc2, 0xc2, 0xba, 0xaf, 0xa1, 0x93, 0x85, 0x7b, 0x74, 0x70,
+			0x6f, 0x6f, 0x72, 0x75, 0x7a, 0x80, 0x87, 0x8c, 0x8f, 0x8e, 0x86,
+			0x7a, 0x6a, 0x5b, 0x4d, 0x46, 0x46, 0x4f, 0x5b, 0x67, 0x70, 0x75,
+			0x77, 0x76, 0x77, 0x7a, 0x82, 0x8d, 0x9c, 0xab, 0xb9, 0xc1, 0xc4,
+			0xc1, 0xb7, 0xab, 0x9a, 0x8c, 0x7e, 0x76, 0x70, 0x6e, 0x6e, 0x6f,
+			0x72, 0x76, 0x7c, 0x82, 0x8a, 0x8f, 0x91, 0x8e, 0x85, 0x75, 0x63,
+			0x52, 0x47, 0x44, 0x4a, 0x54, 0x5e, 0x67, 0x6d, 0x72, 0x73, 0x75,
+			0x79, 0x81, 0x8b, 0x9a, 0xa9, 0xb7, 0xc1, 0xc5, 0xc3, 0xba, 0xad,
+			0x9d, 0x8e, 0x80, 0x76, 0x70, 0x6d, 0x6d, 0x6e, 0x70, 0x74, 0x79,
+			0x82, 0x8b, 0x93, 0x97, 0x95, 0x8b, 0x7b, 0x67, 0x54, 0x47, 0x41,
+			0x45, 0x4e, 0x59, 0x63, 0x6a, 0x6d, 0x6f, 0x72, 0x77, 0x80, 0x8d,
+			0x9c, 0xac, 0xbb, 0xc4, 0xc7, 0xc3, 0xb8, 0xaa, 0x99, 0x89, 0x7d,
+			0x74, 0x70, 0x6d, 0x6d, 0x6f, 0x72, 0x77, 0x7e, 0x87, 0x8f, 0x95,
+			0x96, 0x91, 0x84, 0x72, 0x5e, 0x4c, 0x43, 0x43, 0x4a, 0x52, 0x5c,
+			0x63, 0x69, 0x6c, 0x71, 0x77, 0x82, 0x90, 0x9f, 0xaf, 0xbb, 0xc4,
+			0xc6, 0xc1, 0xb5, 0xa7, 0x96, 0x87, 0x7b, 0x74, 0x6f, 0x6e, 0x6e,
+			0x70, 0x74, 0x79, 0x80, 0x88, 0x90, 0x94, 0x93, 0x8c, 0x7e, 0x6b,
+			0x59, 0x4b, 0x43, 0x43, 0x49, 0x51, 0x5a, 0x61, 0x68, 0x70, 0x7a,
+			0x86, 0x95, 0xa4, 0xb3, 0xbf, 0xc6, 0xc7, 0xc1, 0xb5, 0xa5, 0x93,
+			0x83, 0x77, 0x6f, 0x6b, 0x6b, 0x6d, 0x70, 0x75, 0x7b, 0x82, 0x88,
+			0x8e, 0x91, 0x90, 0x89, 0x7c, 0x6c, 0x5b, 0x4e, 0x46, 0x45, 0x4a,
+			0x51, 0x59, 0x62, 0x6b, 0x76, 0x84, 0x93, 0xa2, 0xb0, 0xba, 0xc1,
+			0xc2, 0xbd, 0xb3, 0xa5, 0x96, 0x87, 0x7a, 0x71, 0x6c, 0x6b, 0x6d,
+			0x71, 0x75, 0x7b, 0x82, 0x87, 0x8c, 0x8d, 0x8b, 0x82, 0x77, 0x68,
+			0x5a, 0x4f, 0x4a, 0x4a, 0x4d, 0x54, 0x5c, 0x67, 0x74, 0x83, 0x92,
+			0xa2, 0xb0, 0xbb, 0xc0, 0xc0, 0xba, 0xb0, 0xa2, 0x93, 0x85, 0x79,
+			0x70, 0x6b, 0x69, 0x6a, 0x6e, 0x73, 0x7a, 0x80, 0x86, 0x8a, 0x8b,
+			0x89, 0x83, 0x78, 0x6b, 0x5e, 0x52, 0x4d, 0x4b, 0x4f, 0x56, 0x61,
+			0x6d, 0x7d, 0x8e, 0x9f, 0xaf, 0xb9, 0xbf, 0xbe, 0xb9, 0xae, 0xa2,
+			0x93, 0x86, 0x7a, 0x71, 0x6a, 0x67, 0x67, 0x69, 0x6e, 0x75, 0x7e,
+			0x85, 0x8b, 0x8d, 0x8b, 0x84, 0x7a, 0x6d, 0x60, 0x54, 0x4d, 0x4a,
+			0x4d, 0x57, 0x64, 0x76, 0x88, 0x9a, 0xa9, 0xb6, 0xbc, 0xbd, 0xb9,
+			0xb0, 0xa4, 0x96, 0x89, 0x7d, 0x73, 0x6b, 0x66, 0x64, 0x65, 0x69,
+			0x70, 0x79, 0x82, 0x8a, 0x8f, 0x8e, 0x89, 0x81, 0x75, 0x68, 0x5b,
+			0x51, 0x4c, 0x4b, 0x51, 0x5c, 0x6e, 0x80, 0x93, 0xa5, 0xb2, 0xbb,
+			0xbd, 0xbb, 0xb2, 0xa8, 0x9a, 0x8d, 0x7f, 0x72, 0x69, 0x61, 0x5e,
+			0x5e, 0x64, 0x6b, 0x76, 0x82, 0x8c, 0x93, 0x95, 0x94, 0x8c, 0x83,
+			0x76, 0x6a, 0x5f, 0x56, 0x50, 0x4d, 0x4e, 0x54, 0x5f, 0x6f, 0x81,
+			0x96, 0xa9, 0xb9, 0xc2, 0xc5, 0xc0, 0xb6, 0xa7, 0x96, 0x87, 0x79,
+			0x6e, 0x65, 0x60, 0x5d, 0x5c, 0x5f, 0x65, 0x6e, 0x7b, 0x8a, 0x98,
+			0xa2, 0xa8, 0xa6, 0x9d, 0x8f, 0x7d, 0x6c, 0x5d, 0x53, 0x4d, 0x4c,
+			0x4c, 0x4e, 0x50, 0x54, 0x5c, 0x69, 0x7d, 0x93, 0xab, 0xbe, 0xcc,
+			0xcf, 0xca, 0xbb, 0xa8, 0x93, 0x7f, 0x71, 0x67, 0x62, 0x60, 0x60,
+			0x61, 0x63, 0x67, 0x6d, 0x76, 0x82, 0x8f, 0x9a, 0xa2, 0xa4, 0xa0,
+			0x96, 0x88, 0x79, 0x6c, 0x63, 0x5f, 0x5f, 0x63, 0x69, 0x70, 0x78,
+			0x80, 0x87, 0x8e, 0x92, 0x95, 0x93, 0x90, 0x87, 0x7e, 0x72, 0x67,
+			0x5b, 0x53, 0x4f, 0x52, 0x5d, 0x6c, 0x80, 0x92, 0xa4, 0xaf, 0xb6,
+			0xb6, 0xb1, 0xaa, 0xa0, 0x97, 0x8c, 0x83, 0x78, 0x6f, 0x65, 0x5e,
+			0x5a, 0x59, 0x5e, 0x66, 0x73, 0x7f, 0x8c, 0x95, 0x9b, 0x9b, 0x98,
+			0x91, 0x89, 0x81, 0x79, 0x73, 0x6e, 0x6c, 0x69, 0x68, 0x68, 0x69,
+			0x6c, 0x71, 0x78, 0x80, 0x89, 0x90, 0x95, 0x96, 0x95, 0x91, 0x8b,
+			0x85, 0x7f, 0x7b, 0x77, 0x75, 0x73, 0x73, 0x73, 0x73, 0x75, 0x77,
+			0x7b, 0x80, 0x85, 0x8a, 0x8e, 0x90, 0x90, 0x8d, 0x89, 0x84, 0x7f,
+			0x7b, 0x78, 0x76, 0x75, 0x75, 0x76, 0x77, 0x78, 0x7a, 0x7d, 0x7f,
+			0x82, 0x85, 0x88, 0x89, 0x89, 0x88, 0x85, 0x81, 0x7d, 0x7a, 0x78,
+			0x77, 0x77, 0x78, 0x79, 0x7a, 0x7c, 0x7d, 0x7e, 0x80, 0x82, 0x83,
+			0x85, 0x85, 0x85, 0x85, 0x83, 0x81, 0x7e, 0x7c, 0x7a, 0x79, 0x79,
+			0x7a, 0x7b, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x81, 0x82, 0x83, 0x83,
+			0x83, 0x82, 0x84, 0x84, 0x87, 0x86, 0x84, 0x7e, 0x77, 0x6f, 0x68,
+			0x65, 0x65, 0x6b, 0x73, 0x7e, 0x87, 0x8f, 0x92, 0x94, 0x92, 0x90,
+			0x8e, 0x8b, 0x8a, 0x88, 0x85, 0x80, 0x7b, 0x73, 0x6e, 0x6a, 0x6a,
+			0x6e, 0x74, 0x7c, 0x84, 0x8a, 0x8d, 0x8e, 0x8b, 0x88, 0x85, 0x82,
+			0x80, 0x7d, 0x7c, 0x7a, 0x78, 0x75, 0x73, 0x72, 0x73, 0x76, 0x7a,
+			0x80, 0x85, 0x89, 0x8a, 0x8a, 0x88, 0x85, 0x82, 0x7f, 0x7e, 0x7d,
+			0x7d, 0x7c, 0x7c, 0x7b, 0x7a, 0x79, 0x79, 0x7a, 0x7d, 0x80, 0x83,
+			0x85, 0x86, 0x86, 0x85, 0x83, 0x80, 0x7f, 0x7d, 0x7c, 0x7c, 0x7c,
+			0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7e, 0x80, 0x82, 0x83, 0x84,
+			0x84, 0x83, 0x81, 0x7f, 0x7d, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d,
+			0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x82, 0x82, 0x82, 0x81,
+			0x80, 0x7e, 0x7d, 0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x7e, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7f,
+			0x7e, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80,
+			0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f,
+			0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+		},
+		{ // 6
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x81, 0x82, 0x81, 0x82,
+			0x81, 0x81, 0x80, 0x7f, 0x7f, 0x7e, 0x7e, 0x7c, 0x7d, 0x7c, 0x7c,
+			0x7c, 0x7c, 0x7e, 0x7d, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x84,
+			0x85, 0x84, 0x85, 0x82, 0x82, 0x7f, 0x7e, 0x7c, 0x7a, 0x79, 0x77,
+			0x77, 0x75, 0x77, 0x76, 0x7a, 0x7a, 0x7f, 0x81, 0x84, 0x87, 0x89,
+			0x8b, 0x8c, 0x8c, 0x8c, 0x8b, 0x88, 0x86, 0x81, 0x7e, 0x79, 0x76,
+			0x71, 0x71, 0x6b, 0x6d, 0x6d, 0x6e, 0x74, 0x74, 0x7f, 0x80, 0x87,
+			0x8c, 0x90, 0x95, 0x96, 0x97, 0x96, 0x95, 0x8f, 0x8a, 0x81, 0x7d,
+			0x76, 0x70, 0x6b, 0x65, 0x64, 0x63, 0x64, 0x69, 0x6d, 0x73, 0x7d,
+			0x83, 0x8c, 0x91, 0x98, 0x9c, 0x9e, 0x9e, 0x9d, 0x97, 0x90, 0x87,
+			0x80, 0x79, 0x71, 0x6a, 0x62, 0x61, 0x5a, 0x61, 0x60, 0x6b, 0x6e,
+			0x78, 0x82, 0x88, 0x92, 0x96, 0x9f, 0x9f, 0xa2, 0x9e, 0x9e, 0x96,
+			0x8f, 0x84, 0x7e, 0x73, 0x6d, 0x65, 0x61, 0x5d, 0x5b, 0x61, 0x62,
+			0x6d, 0x6e, 0x7e, 0x83, 0x8c, 0x92, 0x99, 0x9f, 0x9f, 0xa0, 0x9e,
+			0x9c, 0x92, 0x8c, 0x81, 0x7b, 0x70, 0x6c, 0x64, 0x62, 0x5b, 0x60,
+			0x62, 0x68, 0x6d, 0x73, 0x82, 0x83, 0x8f, 0x90, 0x9b, 0x9d, 0x9e,
+			0x9e, 0x9c, 0x98, 0x91, 0x88, 0x81, 0x78, 0x70, 0x6a, 0x65, 0x62,
+			0x5e, 0x65, 0x62, 0x6d, 0x6d, 0x79, 0x82, 0x84, 0x90, 0x90, 0x9b,
+			0x9b, 0x9c, 0x9d, 0x9a, 0x96, 0x8f, 0x84, 0x7f, 0x74, 0x71, 0x6b,
+			0x66, 0x63, 0x62, 0x64, 0x67, 0x6d, 0x6e, 0x7e, 0x7e, 0x88, 0x8d,
+			0x94, 0x9b, 0x99, 0x9d, 0x9c, 0x99, 0x93, 0x8a, 0x82, 0x7f, 0x75,
+			0x73, 0x6a, 0x66, 0x61, 0x66, 0x66, 0x68, 0x6d, 0x70, 0x7c, 0x7b,
+			0x87, 0x8b, 0x94, 0x97, 0x97, 0x9c, 0x9e, 0x9a, 0x96, 0x8e, 0x89,
+			0x82, 0x78, 0x74, 0x69, 0x65, 0x5f, 0x62, 0x61, 0x66, 0x67, 0x70,
+			0x78, 0x7b, 0x87, 0x8c, 0x95, 0x98, 0x9a, 0x9f, 0x9f, 0x9d, 0x98,
+			0x90, 0x8a, 0x80, 0x7a, 0x71, 0x69, 0x62, 0x60, 0x60, 0x60, 0x66,
+			0x67, 0x71, 0x79, 0x7e, 0x88, 0x8e, 0x96, 0x98, 0x9d, 0xa0, 0x9e,
+			0x9d, 0x95, 0x8f, 0x88, 0x80, 0x75, 0x70, 0x66, 0x62, 0x5f, 0x60,
+			0x63, 0x65, 0x6b, 0x72, 0x7b, 0x80, 0x8a, 0x8d, 0x98, 0x99, 0x9c,
+			0x9e, 0x9c, 0x9a, 0x93, 0x8e, 0x87, 0x7e, 0x76, 0x6f, 0x65, 0x62,
+			0x60, 0x61, 0x64, 0x67, 0x6c, 0x75, 0x79, 0x80, 0x8b, 0x8f, 0x98,
+			0x98, 0x9d, 0x9f, 0x9b, 0x9b, 0x93, 0x8d, 0x85, 0x7d, 0x75, 0x6e,
+			0x65, 0x64, 0x60, 0x5f, 0x63, 0x68, 0x6e, 0x77, 0x7c, 0x83, 0x8b,
+			0x8e, 0x97, 0x98, 0x9b, 0x9d, 0x9b, 0x9a, 0x92, 0x8c, 0x88, 0x7d,
+			0x75, 0x6e, 0x66, 0x64, 0x61, 0x60, 0x63, 0x66, 0x6b, 0x75, 0x78,
+			0x81, 0x8a, 0x8f, 0x97, 0x97, 0x9d, 0x9f, 0x9d, 0x9a, 0x93, 0x8d,
+			0x87, 0x7c, 0x76, 0x6e, 0x66, 0x65, 0x5f, 0x61, 0x61, 0x67, 0x6c,
+			0x74, 0x79, 0x83, 0x89, 0x8e, 0x96, 0x96, 0x9e, 0x9c, 0x9d, 0x99,
+			0x94, 0x8d, 0x86, 0x7e, 0x76, 0x6d, 0x67, 0x64, 0x60, 0x62, 0x62,
+			0x69, 0x6c, 0x75, 0x79, 0x80, 0x87, 0x8c, 0x94, 0x94, 0x9a, 0x9d,
+			0x9a, 0x9a, 0x97, 0x90, 0x8a, 0x81, 0x7b, 0x74, 0x69, 0x69, 0x63,
+			0x5e, 0x5d, 0x61, 0x63, 0x6c, 0x79, 0x81, 0x8e, 0x94, 0x9f, 0xa1,
+			0xa4, 0xa8, 0xa1, 0x9c, 0x8e, 0x84, 0x7a, 0x70, 0x66, 0x62, 0x5d,
+			0x4d, 0x57, 0x5f, 0x5b, 0x67, 0x82, 0x88, 0x8e, 0x9e, 0xa8, 0xa1,
+			0xa1, 0xa7, 0xa2, 0x92, 0x93, 0x8d, 0x7c, 0x79, 0x76, 0x6f, 0x64,
+			0x5e, 0x58, 0x4d, 0x5c, 0x61, 0x61, 0x80, 0x86, 0x93, 0x9b, 0xa6,
+			0xa4, 0xa0, 0xa3, 0xa2, 0x96, 0x92, 0x8f, 0x82, 0x7a, 0x77, 0x70,
+			0x68, 0x5f, 0x58, 0x4f, 0x51, 0x68, 0x59, 0x7f, 0x84, 0x91, 0x9d,
+			0xa1, 0xa9, 0x9d, 0xa1, 0x9b, 0x95, 0x8a, 0x8b, 0x83, 0x7b, 0x77,
+			0x74, 0x69, 0x65, 0x59, 0x51, 0x51, 0x67, 0x59, 0x78, 0x89, 0x88,
+			0x9f, 0x9f, 0xa8, 0x9b, 0xa3, 0x9b, 0x97, 0x91, 0x8c, 0x87, 0x7c,
+			0x79, 0x73, 0x69, 0x67, 0x5b, 0x53, 0x4d, 0x63, 0x58, 0x6e, 0x8c,
+			0x82, 0xa1, 0x9f, 0xa7, 0x9e, 0x9f, 0x9a, 0x94, 0x94, 0x88, 0x8a,
+			0x7f, 0x7b, 0x75, 0x6b, 0x6b, 0x5b, 0x58, 0x4a, 0x62, 0x5b, 0x65,
+			0x8d, 0x81, 0x9c, 0x9e, 0xa5, 0x9f, 0x9f, 0x9c, 0x94, 0x94, 0x8d,
+			0x87, 0x83, 0x7b, 0x7a, 0x6e, 0x6e, 0x66, 0x59, 0x52, 0x54, 0x66,
+			0x51, 0x82, 0x83, 0x89, 0xa4, 0xa0, 0xa5, 0x9f, 0xa5, 0x94, 0x94,
+			0x93, 0x86, 0x86, 0x7e, 0x79, 0x75, 0x6c, 0x6c, 0x5c, 0x59, 0x4c,
+			0x63, 0x5a, 0x65, 0x8d, 0x7c, 0x9a, 0xa0, 0x9f, 0x9f, 0xa2, 0x9d,
+			0x90, 0x97, 0x8d, 0x84, 0x86, 0x79, 0x77, 0x6f, 0x6d, 0x65, 0x58,
+			0x55, 0x4e, 0x68, 0x54, 0x7b, 0x8b, 0x82, 0xa3, 0x9d, 0xa2, 0x9d,
+			0xa1, 0x98, 0x92, 0x92, 0x8b, 0x84, 0x84, 0x79, 0x7c, 0x6e, 0x6d,
+			0x66, 0x56, 0x55, 0x4f, 0x67, 0x52, 0x7c, 0x83, 0x81, 0xa2, 0x9a,
+			0xa3, 0xa0, 0xa2, 0x99, 0x99, 0x93, 0x8d, 0x88, 0x83, 0x7a, 0x7a,
+			0x6e, 0x6a, 0x64, 0x56, 0x53, 0x54, 0x63, 0x56, 0x7d, 0x84, 0x84,
+			0xa0, 0x9e, 0xa4, 0x9f, 0xa2, 0x9a, 0x96, 0x93, 0x8b, 0x89, 0x83,
+			0x7b, 0x79, 0x6f, 0x68, 0x64, 0x59, 0x50, 0x52, 0x62, 0x59, 0x76,
+			0x89, 0x86, 0x9e, 0x9e, 0xa2, 0xa2, 0xa0, 0x9a, 0x97, 0x92, 0x8e,
+			0x8a, 0x83, 0x7f, 0x76, 0x76, 0x6d, 0x66, 0x5c, 0x5a, 0x4d, 0x5d,
+			0x5e, 0x62, 0x89, 0x81, 0x95, 0x9f, 0x9f, 0xa0, 0xa1, 0x9b, 0x97,
+			0x96, 0x8f, 0x8c, 0x84, 0x84, 0x78, 0x76, 0x74, 0x6b, 0x63, 0x5a,
+			0x54, 0x4d, 0x66, 0x57, 0x74, 0x8a, 0x85, 0xa1, 0x9d, 0xa5, 0x9e,
+			0xa1, 0x98, 0x98, 0x93, 0x8d, 0x88, 0x81, 0x81, 0x75, 0x76, 0x6e,
+			0x6d, 0x5d, 0x5a, 0x4f, 0x50, 0x66, 0x55, 0x81, 0x86, 0x8b, 0xa3,
+			0x9d, 0xa4, 0x9e, 0x9f, 0x9a, 0x98, 0x91, 0x8e, 0x86, 0x83, 0x7d,
+			0x78, 0x77, 0x6e, 0x6c, 0x63, 0x5a, 0x53, 0x4d, 0x66, 0x5a, 0x79,
+			0x8b, 0x85, 0xa0, 0x9d, 0x9f, 0x9e, 0xa0, 0x97, 0x98, 0x91, 0x90,
+			0x88, 0x82, 0x83, 0x77, 0x78, 0x70, 0x6e, 0x65, 0x5c, 0x55, 0x49,
+			0x64, 0x59, 0x6f, 0x8b, 0x84, 0x9e, 0x9b, 0xa3, 0xa0, 0x9e, 0x99,
+			0x99, 0x95, 0x8b, 0x8f, 0x82, 0x81, 0x7b, 0x77, 0x73, 0x6e, 0x6e,
+			0x60, 0x5e, 0x51, 0x4f, 0x67, 0x56, 0x7a, 0x8a, 0x89, 0xa2, 0xa1,
+			0xa3, 0x9c, 0xa0, 0x96, 0x96, 0x91, 0x8e, 0x8a, 0x83, 0x82, 0x79,
+			0x78, 0x6e, 0x6e, 0x68, 0x5f, 0x5d, 0x4c, 0x60, 0x5e, 0x61, 0x88,
+			0x80, 0x96, 0x9f, 0xa0, 0xa1, 0x9f, 0x9e, 0x92, 0x96, 0x8c, 0x8b,
+			0x85, 0x84, 0x81, 0x7a, 0x7a, 0x71, 0x6f, 0x67, 0x5f, 0x58, 0x4d,
+			0x60, 0x5e, 0x5e, 0x89, 0x85, 0x93, 0xa4, 0xa0, 0xa2, 0x9f, 0x9e,
+			0x94, 0x96, 0x8f, 0x89, 0x86, 0x80, 0x7f, 0x7b, 0x77, 0x75, 0x72,
+			0x6c, 0x5f, 0x5e, 0x4c, 0x5b, 0x64, 0x57, 0x82, 0x86, 0x8c, 0xa0,
+			0xa3, 0xa0, 0xa0, 0xa3, 0x91, 0x97, 0x90, 0x89, 0x8a, 0x81, 0x81,
+			0x7d, 0x79, 0x72, 0x72, 0x6e, 0x64, 0x5c, 0x53, 0x51, 0x63, 0x58,
+			0x73, 0x8c, 0x87, 0x9f, 0x9e, 0xa5, 0x9c, 0xa0, 0x97, 0x93, 0x95,
+			0x8b, 0x8e, 0x84, 0x86, 0x7e, 0x7d, 0x75, 0x73, 0x72, 0x68, 0x64,
+			0x59, 0x4e, 0x54, 0x62, 0x5b, 0x80, 0x8d, 0x8d, 0xa5, 0xa0, 0xa5,
+			0x9e, 0x9e, 0x96, 0x92, 0x91, 0x89, 0x8a, 0x7f, 0x83, 0x7b, 0x78,
+			0x76, 0x76, 0x72, 0x6a, 0x64, 0x58, 0x4b, 0x59, 0x60, 0x5e, 0x87,
+			0x8a, 0x96, 0xa5, 0xa5, 0xa1, 0x9a, 0x9d, 0x91, 0x93, 0x8d, 0x88,
+			0x85, 0x7e, 0x82, 0x78, 0x7d, 0x75, 0x78, 0x74, 0x6d, 0x66, 0x58,
+			0x4d, 0x57, 0x63, 0x5c, 0x82, 0x8d, 0x92, 0xa6, 0xa7, 0xa3, 0x9c,
+			0x9a, 0x92, 0x8d, 0x8a, 0x83, 0x8a, 0x7e, 0x82, 0x80, 0x7d, 0x7a,
+			0x78, 0x79, 0x6f, 0x6b, 0x5c, 0x52, 0x4b, 0x68, 0x58, 0x70, 0x93,
+			0x8b, 0xa2, 0xa2, 0xa6, 0x9a, 0x96, 0x96, 0x88, 0x8e, 0x86, 0x85,
+			0x83, 0x81, 0x85, 0x7d, 0x80, 0x79, 0x7d, 0x72, 0x72, 0x64, 0x5b,
+			0x4a, 0x51, 0x64, 0x54, 0x85, 0x92, 0x9c, 0xa7, 0xa8, 0xa8, 0x98,
+			0x95, 0x8a, 0x88, 0x85, 0x83, 0x85, 0x81, 0x84, 0x80, 0x81, 0x7e,
+			0x7c, 0x81, 0x74, 0x73, 0x60, 0x58, 0x45, 0x51, 0x64, 0x5c, 0x89,
+			0x92, 0x9b, 0xa4, 0xa7, 0xa8, 0x94, 0x93, 0x86, 0x88, 0x81, 0x84,
+			0x87, 0x84, 0x88, 0x82, 0x83, 0x7d, 0x7e, 0x80, 0x77, 0x72, 0x68,
+			0x59, 0x4c, 0x45, 0x5c, 0x5b, 0x7c, 0x97, 0x9f, 0xaa, 0xa5, 0xa8,
+			0x95, 0x90, 0x87, 0x7f, 0x83, 0x80, 0x81, 0x82, 0x88, 0x8a, 0x8a,
+			0x89, 0x83, 0x81, 0x79, 0x76, 0x6b, 0x5c, 0x54, 0x42, 0x4b, 0x66,
+			0x66, 0x8c, 0x9e, 0xa7, 0xa9, 0xa2, 0xa4, 0x8c, 0x8a, 0x7c, 0x7f,
+			0x7a, 0x7f, 0x85, 0x85, 0x8b, 0x8b, 0x92, 0x8c, 0x85, 0x84, 0x78,
+			0x72, 0x6b, 0x65, 0x56, 0x4d, 0x46, 0x58, 0x71, 0x78, 0x9d, 0xa4,
+			0xab, 0xa6, 0x9d, 0x8f, 0x82, 0x82, 0x7b, 0x7d, 0x84, 0x83, 0x89,
+			0x8e, 0x90, 0x95, 0x89, 0x85, 0x7d, 0x79, 0x71, 0x69, 0x64, 0x62,
+			0x59, 0x50, 0x45, 0x61, 0x76, 0x81, 0x9f, 0xa5, 0xad, 0x99, 0x98,
+			0x8e, 0x80, 0x7e, 0x7b, 0x81, 0x85, 0x8f, 0x8f, 0x96, 0x93, 0x90,
+			0x8d, 0x83, 0x7c, 0x78, 0x71, 0x67, 0x66, 0x66, 0x5f, 0x59, 0x53,
+			0x52, 0x6d, 0x7b, 0x92, 0x9c, 0xa4, 0xa5, 0x90, 0x91, 0x80, 0x80,
+			0x7d, 0x80, 0x89, 0x8e, 0x94, 0x93, 0x98, 0x8e, 0x8c, 0x81, 0x78,
+			0x74, 0x6e, 0x70, 0x6c, 0x6d, 0x6b, 0x6b, 0x62, 0x61, 0x50, 0x60,
+			0x72, 0x80, 0x99, 0x9a, 0xa9, 0x9b, 0x95, 0x88, 0x84, 0x85, 0x7f,
+			0x88, 0x8a, 0x93, 0x92, 0x94, 0x92, 0x89, 0x87, 0x79, 0x75, 0x70,
+			0x6e, 0x70, 0x72, 0x71, 0x6e, 0x68, 0x61, 0x59, 0x4e, 0x62, 0x73,
+			0x8e, 0x9a, 0xa3, 0xa8, 0x9b, 0x91, 0x84, 0x83, 0x80, 0x83, 0x88,
+			0x89, 0x94, 0x93, 0x94, 0x90, 0x88, 0x82, 0x79, 0x76, 0x6f, 0x71,
+			0x70, 0x75, 0x77, 0x71, 0x6d, 0x63, 0x60, 0x4f, 0x51, 0x62, 0x7d,
+			0x9c, 0xa1, 0xa9, 0xa2, 0x9c, 0x89, 0x80, 0x7e, 0x80, 0x87, 0x87,
+			0x91, 0x96, 0x97, 0x92, 0x8e, 0x86, 0x7e, 0x74, 0x73, 0x70, 0x71,
+			0x74, 0x76, 0x7a, 0x75, 0x6b, 0x63, 0x5c, 0x50, 0x4f, 0x63, 0x87,
+			0xa3, 0xa8, 0xa6, 0xa0, 0x96, 0x86, 0x76, 0x77, 0x80, 0x8d, 0x93,
+			0x91, 0x97, 0x97, 0x92, 0x86, 0x7c, 0x77, 0x74, 0x73, 0x73, 0x73,
+			0x78, 0x7d, 0x7a, 0x76, 0x69, 0x65, 0x5d, 0x55, 0x51, 0x60, 0x86,
+			0xa3, 0xac, 0xa2, 0x9a, 0x92, 0x82, 0x74, 0x71, 0x85, 0x96, 0x9c,
+			0x97, 0x8f, 0x96, 0x90, 0x86, 0x75, 0x73, 0x77, 0x7a, 0x7d, 0x75,
+			0x7a, 0x7a, 0x7d, 0x70, 0x61, 0x5f, 0x59, 0x52, 0x4e, 0x68, 0x97,
+			0xb6, 0xb5, 0x9c, 0x8d, 0x84, 0x7c, 0x6d, 0x6e, 0x8b, 0xa3, 0xa9,
+			0x95, 0x8a, 0x89, 0x8a, 0x80, 0x71, 0x71, 0x7b, 0x80, 0x7c, 0x76,
+			0x77, 0x7d, 0x7c, 0x72, 0x62, 0x60, 0x5a, 0x54, 0x4c, 0x65, 0x9b,
+			0xbd, 0xb9, 0x96, 0x86, 0x80, 0x7c, 0x70, 0x6f, 0x87, 0xa6, 0xaf,
+			0x9b, 0x86, 0x80, 0x87, 0x82, 0x76, 0x74, 0x7d, 0x87, 0x80, 0x75,
+			0x71, 0x77, 0x7f, 0x77, 0x66, 0x5d, 0x5d, 0x5c, 0x54, 0x55, 0x7d,
+			0xab, 0xc4, 0xac, 0x8a, 0x7b, 0x7a, 0x7a, 0x73, 0x7a, 0x91, 0xa9,
+			0xa5, 0x92, 0x7e, 0x7d, 0x81, 0x7c, 0x74, 0x76, 0x80, 0x83, 0x7b,
+			0x74, 0x77, 0x7f, 0x7d, 0x72, 0x60, 0x5a, 0x5c, 0x5c, 0x56, 0x60,
+			0x8c, 0xb9, 0xc4, 0xa4, 0x82, 0x71, 0x78, 0x7d, 0x7d, 0x86, 0x95,
+			0xa8, 0xa1, 0x8e, 0x7e, 0x76, 0x79, 0x74, 0x7a, 0x83, 0x8b, 0x85,
+			0x76, 0x71, 0x78, 0x80, 0x7a, 0x71, 0x66, 0x63, 0x5f, 0x5a, 0x59,
+			0x60, 0x85, 0xae, 0xc1, 0xab, 0x86, 0x70, 0x6f, 0x7a, 0x82, 0x8c,
+			0x90, 0x99, 0x98, 0x94, 0x85, 0x7d, 0x76, 0x79, 0x7c, 0x85, 0x8a,
+			0x88, 0x7f, 0x74, 0x75, 0x76, 0x79, 0x71, 0x6f, 0x66, 0x67, 0x62,
+			0x62, 0x5e, 0x61, 0x81, 0xa7, 0xbd, 0xab, 0x87, 0x71, 0x6f, 0x7a,
+			0x87, 0x8e, 0x93, 0x96, 0x96, 0x90, 0x89, 0x7f, 0x7e, 0x7c, 0x82,
+			0x87, 0x87, 0x87, 0x7f, 0x7d, 0x77, 0x77, 0x73, 0x72, 0x6c, 0x6a,
+			0x66, 0x6a, 0x65, 0x62, 0x57, 0x70, 0x9a, 0xbd, 0xbc, 0x93, 0x76,
+			0x62, 0x77, 0x81, 0x95, 0x8d, 0x94, 0x91, 0x95, 0x8d, 0x82, 0x7c,
+			0x7d, 0x88, 0x85, 0x85, 0x7b, 0x83, 0x80, 0x81, 0x78, 0x73, 0x6e,
+			0x70, 0x71, 0x70, 0x69, 0x68, 0x62, 0x61, 0x55, 0x74, 0x97, 0xc1,
+			0xbe, 0x98, 0x77, 0x61, 0x74, 0x80, 0x92, 0x8d, 0x94, 0x8f, 0x98,
+			0x90, 0x88, 0x7b, 0x77, 0x7b, 0x88, 0x8b, 0x88, 0x7c, 0x75, 0x7a,
+			0x7f, 0x83, 0x78, 0x71, 0x6e, 0x79, 0x75, 0x70, 0x65, 0x60, 0x5d,
+			0x58, 0x6f, 0x9c, 0xc2, 0xc4, 0x9d, 0x76, 0x60, 0x6b, 0x7d, 0x92,
+			0x90, 0x8f, 0x8e, 0x91, 0x93, 0x88, 0x7d, 0x75, 0x7a, 0x80, 0x88,
+			0x81, 0x7d, 0x77, 0x7e, 0x87, 0x88, 0x7e, 0x72, 0x6b, 0x6e, 0x75,
+			0x7c, 0x7a, 0x6f, 0x64, 0x5e, 0x60, 0x62, 0x82, 0xa2, 0xc3, 0xb9,
+			0x98, 0x73, 0x5e, 0x68, 0x7c, 0x91, 0x91, 0x93, 0x8e, 0x95, 0x90,
+			0x8b, 0x7b, 0x75, 0x73, 0x7f, 0x84, 0x85, 0x82, 0x7b, 0x7e, 0x7a,
+			0x82, 0x7f, 0x7f, 0x77, 0x76, 0x6f, 0x76, 0x74, 0x76, 0x6c, 0x68,
+			0x62, 0x61, 0x60, 0x75, 0x9d, 0xbd, 0xc3, 0xa1, 0x7a, 0x59, 0x5f,
+			0x74, 0x96, 0x9b, 0x9e, 0x93, 0x92, 0x8e, 0x88, 0x7c, 0x6f, 0x69,
+			0x72, 0x83, 0x8d, 0x90, 0x86, 0x81, 0x7b, 0x7f, 0x7b, 0x7a, 0x71,
+			0x78, 0x82, 0x90, 0x8f, 0x81, 0x70, 0x6b, 0x72, 0x80, 0x85, 0x7c,
+			0x73, 0x6c, 0x72, 0x72, 0x6f, 0x67, 0x63, 0x61, 0x63, 0x76, 0x96,
+			0xb6, 0xbe, 0xa8, 0x85, 0x65, 0x60, 0x71, 0x8a, 0x9b, 0x9a, 0x99,
+			0x92, 0x90, 0x87, 0x7d, 0x71, 0x6b, 0x71, 0x7f, 0x8c, 0x91, 0x8a,
+			0x80, 0x77, 0x76, 0x78, 0x76, 0x77, 0x77, 0x7d, 0x83, 0x8d, 0x90,
+			0x8c, 0x7d, 0x74, 0x70, 0x75, 0x7b, 0x80, 0x7e, 0x78, 0x74, 0x73,
+			0x70, 0x6a, 0x68, 0x67, 0x69, 0x65, 0x6e, 0x7d, 0xa1, 0xb8, 0xbe,
+			0x9f, 0x77, 0x5b, 0x5d, 0x78, 0x94, 0xa5, 0xa0, 0x97, 0x8c, 0x8c,
+			0x86, 0x80, 0x70, 0x6d, 0x6f, 0x81, 0x90, 0x94, 0x8d, 0x7e, 0x77,
+			0x75, 0x7c, 0x79, 0x78, 0x72, 0x76, 0x7e, 0x8b, 0x90, 0x8c, 0x7f,
+			0x77, 0x74, 0x77, 0x79, 0x79, 0x77, 0x76, 0x79, 0x7a, 0x78, 0x6d,
+			0x67, 0x62, 0x69, 0x6a, 0x68, 0x64, 0x77, 0x9c, 0xbe, 0xc6, 0xa7,
+			0x7e, 0x5b, 0x5d, 0x75, 0x96, 0xa6, 0xa3, 0x95, 0x8a, 0x86, 0x87,
+			0x84, 0x7b, 0x71, 0x6e, 0x77, 0x85, 0x92, 0x93, 0x8d, 0x7d, 0x74,
+			0x6f, 0x74, 0x78, 0x7d, 0x7a, 0x79, 0x76, 0x77, 0x76, 0x72, 0x6d,
+			0x68, 0x6b, 0x69, 0x69, 0x63, 0x79, 0x98, 0xbf, 0xc6, 0xb1, 0x84,
+			0x60, 0x5a, 0x6f, 0x92, 0xa5, 0xa8, 0x99, 0x8b, 0x83, 0x85, 0x85,
+			0x80, 0x75, 0x71, 0x75, 0x83, 0x8f, 0x93, 0x8a, 0x7d, 0x72, 0x6e,
+			0x73, 0x7a, 0x7e, 0x7b, 0x76, 0x72, 0x72, 0x71, 0x73, 0x70, 0x71,
+			0x6d, 0x6b, 0x63, 0x67, 0x80, 0xa4, 0xc4, 0xc1, 0xa6, 0x78, 0x5e,
+			0x5e, 0x7a, 0x99, 0xa7, 0xa2, 0x91, 0x86, 0x82, 0x86, 0x85, 0x80,
+			0x75, 0x72, 0x77, 0x85, 0x8f, 0x91, 0x86, 0x79, 0x70, 0x6f, 0x77,
+			0x7e, 0x81, 0x7b, 0x76, 0x71, 0x71, 0x71, 0x74, 0x72, 0x73, 0x6e,
+			0x69, 0x63, 0x6f, 0x8d, 0xb1, 0xc3, 0xb5, 0x95, 0x6d, 0x60, 0x66,
+			0x86, 0x9c, 0xa7, 0x9b, 0x8d, 0x82, 0x81, 0x84, 0x83, 0x7e, 0x76,
+			0x76, 0x7c, 0x89, 0x8d, 0x8a, 0x7c, 0x74, 0x6f, 0x75, 0x7a, 0x80,
+			0x7c, 0x77, 0x71, 0x71, 0x70, 0x72, 0x72, 0x73, 0x72, 0x6d, 0x67,
+			0x67, 0x7e, 0x9e, 0xc0, 0xc0, 0xac, 0x82, 0x68, 0x62, 0x77, 0x91,
+			0xa2, 0xa0, 0x92, 0x86, 0x80, 0x85, 0x85, 0x83, 0x7a, 0x77, 0x77,
+			0x82, 0x88, 0x8c, 0x85, 0x7c, 0x73, 0x72, 0x74, 0x79, 0x7b, 0x7b,
+			0x78, 0x76, 0x74, 0x74, 0x74, 0x73, 0x72, 0x71, 0x72, 0x6d, 0x6c,
+			0x71, 0x87, 0xa2, 0xba, 0xba, 0xa7, 0x86, 0x6f, 0x6b, 0x7a, 0x8f,
+			0x9d, 0x9d, 0x92, 0x88, 0x82, 0x84, 0x84, 0x83, 0x7e, 0x7d, 0x7f,
+			0x83, 0x84, 0x7f, 0x78, 0x71, 0x72, 0x77, 0x7f, 0x7f, 0x7b, 0x72,
+			0x6d, 0x6d, 0x71, 0x75, 0x76, 0x77, 0x72, 0x6d, 0x68, 0x71, 0x88,
+			0xa8, 0xbd, 0xb9, 0xa1, 0x80, 0x6d, 0x6c, 0x80, 0x94, 0xa0, 0x9a,
+			0x8f, 0x84, 0x81, 0x84, 0x85, 0x84, 0x7f, 0x7e, 0x7f, 0x83, 0x82,
+			0x7e, 0x76, 0x72, 0x73, 0x7a, 0x80, 0x81, 0x7b, 0x73, 0x6c, 0x6d,
+			0x72, 0x77, 0x78, 0x76, 0x73, 0x6f, 0x6e, 0x70, 0x7f, 0x97, 0xb0,
+			0xb8, 0xae, 0x94, 0x7c, 0x6f, 0x75, 0x86, 0x96, 0x9d, 0x98, 0x8d,
+			0x83, 0x80, 0x81, 0x83, 0x81, 0x7f, 0x7d, 0x7f, 0x81, 0x81, 0x7d,
+			0x77, 0x73, 0x74, 0x7a, 0x80, 0x80, 0x7a, 0x71, 0x6b, 0x6c, 0x72,
+			0x79, 0x7c, 0x7a, 0x76, 0x6e, 0x6a, 0x6d, 0x7e, 0x97, 0xae, 0xb7,
+			0xad, 0x96, 0x7d, 0x71, 0x76, 0x87, 0x97, 0x9d, 0x97, 0x8c, 0x82,
+			0x7e, 0x80, 0x82, 0x82, 0x7d, 0x7a, 0x7c, 0x82, 0x87, 0x87, 0x80,
+			0x76, 0x6f, 0x6f, 0x77, 0x7f, 0x83, 0x80, 0x76, 0x6d, 0x6a, 0x6e,
+			0x75, 0x7b, 0x7b, 0x79, 0x73, 0x6f, 0x6d, 0x72, 0x80, 0x94, 0xa9,
+			0xb1, 0xac, 0x99, 0x85, 0x77, 0x78, 0x83, 0x91, 0x98, 0x97, 0x8e,
+			0x85, 0x80, 0x7f, 0x81, 0x81, 0x7f, 0x7b, 0x7b, 0x7d, 0x82, 0x84,
+			0x84, 0x7e, 0x77, 0x71, 0x72, 0x77, 0x7d, 0x7f, 0x7d, 0x76, 0x70,
+			0x6f, 0x70, 0x75, 0x77, 0x79, 0x77, 0x76, 0x72, 0x71, 0x72, 0x7d,
+			0x8d, 0xa0, 0xac, 0xac, 0x9f, 0x8d, 0x7e, 0x78, 0x7e, 0x88, 0x93,
+			0x95, 0x92, 0x88, 0x82, 0x7f, 0x80, 0x81, 0x81, 0x7e, 0x7b, 0x7a,
+			0x7a, 0x7f, 0x83, 0x86, 0x83, 0x7d, 0x75, 0x72, 0x71, 0x77, 0x7c,
+			0x7f, 0x7d, 0x79, 0x74, 0x71, 0x72, 0x76, 0x79, 0x79, 0x77, 0x75,
+			0x74, 0x75, 0x78, 0x7b, 0x84, 0x8e, 0x9c, 0xa3, 0xa4, 0x99, 0x8c,
+			0x7f, 0x7b, 0x7e, 0x88, 0x90, 0x92, 0x8f, 0x87, 0x82, 0x7d, 0x7e,
+			0x7e, 0x81, 0x7f, 0x7e, 0x7a, 0x7a, 0x7b, 0x7f, 0x82, 0x83, 0x81,
+			0x7c, 0x78, 0x74, 0x76, 0x78, 0x7d, 0x7f, 0x7f, 0x7d, 0x7a, 0x78,
+			0x79, 0x7a, 0x7c, 0x7c, 0x7a, 0x77, 0x76, 0x77, 0x7a, 0x7d, 0x7e,
+			0x7f, 0x7f, 0x7e, 0x7f, 0x83, 0x8b, 0x93, 0x9b, 0x9b, 0x97, 0x8d,
+			0x84, 0x7f, 0x7f, 0x83, 0x88, 0x8a, 0x88, 0x85, 0x80, 0x7e, 0x7d,
+			0x7e, 0x7d, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7c, 0x7c, 0x7c, 0x7c,
+			0x7c, 0x7b, 0x7b, 0x7b, 0x7b, 0x7a, 0x7a, 0x7a, 0x7b, 0x7c, 0x7c,
+			0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7f, 0x7f, 0x80, 0x81, 0x83,
+			0x83, 0x83, 0x84, 0x85, 0x88, 0x8c, 0x8f, 0x90, 0x8e, 0x89, 0x85,
+			0x82, 0x80, 0x81, 0x83, 0x84, 0x83, 0x82, 0x7f, 0x7e, 0x7c, 0x7b,
+			0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x79, 0x78, 0x76, 0x75, 0x75, 0x76,
+			0x78, 0x79, 0x7a, 0x79, 0x78, 0x79, 0x7e, 0x86, 0x90, 0x97, 0x99,
+			0x93, 0x8a, 0x82, 0x7f, 0x81, 0x87, 0x8c, 0x8e, 0x8b, 0x85, 0x81,
+			0x7f, 0x80, 0x82, 0x84, 0x81, 0x7e, 0x7a, 0x78, 0x79, 0x7c, 0x7f,
+			0x80, 0x7e, 0x7a, 0x77, 0x76, 0x77, 0x7a, 0x7d, 0x7e, 0x7d, 0x7b,
+			0x7a, 0x7a, 0x7c, 0x7e, 0x7f, 0x80, 0x7f, 0x7e, 0x7d, 0x7d, 0x7e,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x81, 0x80,
+			0x81, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x81, 0x81, 0x81,
+			0x81, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e,
+			0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x81, 0x82, 0x82,
+			0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
+			0x81, 0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7d, 0x7c,
+			0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7c, 0x7c, 0x7b, 0x7b, 0x7c,
+			0x7e, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7e, 0x7f, 0x80, 0x81, 0x81,
+			0x81, 0x81, 0x81, 0x80, 0x81, 0x81, 0x82, 0x82, 0x83, 0x82, 0x81,
+			0x81, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7c,
+			0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x83, 0x83,
+			0x82, 0x82, 0x82, 0x82, 0x83, 0x83, 0x83, 0x83, 0x82, 0x81, 0x81,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7e, 0x7e, 0x7d, 0x7d, 0x7e,
+			0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7d, 0x7d, 0x7d,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81,
+			0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+		},
+		{ // 7
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80,
+			0x81, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7e, 0x80, 0x7e, 0x82, 0x7d,
+			0x85, 0x80, 0x7e, 0x82, 0x7f, 0x82, 0x80, 0x81, 0x82, 0x82, 0x7e,
+			0x81, 0x7e, 0x80, 0x80, 0x7e, 0x7c, 0x7f, 0x7f, 0x7d, 0x82, 0x7d,
+			0x81, 0x7e, 0x80, 0x7e, 0x7e, 0x7e, 0x7d, 0x81, 0x7d, 0x84, 0x7d,
+			0x80, 0x80, 0x7f, 0x7f, 0x80, 0x81, 0x7d, 0x82, 0x7d, 0x81, 0x7e,
+			0x7f, 0x80, 0x7f, 0x80, 0x82, 0x81, 0x82, 0x81, 0x84, 0x7e, 0x7f,
+			0x82, 0x7f, 0x80, 0x7f, 0x81, 0x7c, 0x81, 0x7d, 0x81, 0x7f, 0x7e,
+			0x83, 0x81, 0x7e, 0x81, 0x7b, 0x80, 0x7f, 0x81, 0x83, 0x80, 0x7f,
+			0x7c, 0x83, 0x7b, 0x82, 0x7d, 0x80, 0x7c, 0x81, 0x7f, 0x7f, 0x7e,
+			0x7f, 0x7f, 0x80, 0x82, 0x7d, 0x7f, 0x7f, 0x7d, 0x7c, 0x81, 0x7a,
+			0x81, 0x7e, 0x81, 0x7e, 0x80, 0x80, 0x80, 0x81, 0x81, 0x80, 0x80,
+			0x7b, 0x82, 0x7f, 0x7f, 0x83, 0x7e, 0x7f, 0x7f, 0x81, 0x7f, 0x80,
+			0x84, 0x80, 0x79, 0x82, 0x7c, 0x7d, 0x80, 0x83, 0x7a, 0x7e, 0x7f,
+			0x7d, 0x81, 0x80, 0x7e, 0x7f, 0x7e, 0x7e, 0x82, 0x81, 0x81, 0x7f,
+			0x81, 0x81, 0x80, 0x80, 0x84, 0x7c, 0x84, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x83, 0x83, 0x80, 0x81, 0x81, 0x7e, 0x80, 0x80, 0x79, 0x80,
+			0x7c, 0x7f, 0x81, 0x81, 0x7b, 0x7d, 0x7f, 0x7d, 0x80, 0x82, 0x80,
+			0x7d, 0x7d, 0x7d, 0x7d, 0x7b, 0x82, 0x7f, 0x7b, 0x83, 0x7a, 0x7f,
+			0x7f, 0x81, 0x7c, 0x83, 0x80, 0x80, 0x81, 0x85, 0x7f, 0x7d, 0x84,
+			0x7f, 0x7f, 0x80, 0x86, 0x79, 0x85, 0x7d, 0x83, 0x7e, 0x82, 0x80,
+			0x86, 0x81, 0x83, 0x81, 0x80, 0x7e, 0x82, 0x82, 0x7c, 0x84, 0x7e,
+			0x83, 0x7f, 0x87, 0x7d, 0x83, 0x82, 0x83, 0x7f, 0x86, 0x7e, 0x82,
+			0x7f, 0x84, 0x7e, 0x82, 0x80, 0x83, 0x84, 0x80, 0x84, 0x7e, 0x82,
+			0x7e, 0x85, 0x7c, 0x85, 0x7b, 0x7f, 0x80, 0x80, 0x7d, 0x84, 0x7e,
+			0x80, 0x7f, 0x80, 0x7e, 0x7c, 0x82, 0x7a, 0x82, 0x7a, 0x80, 0x7b,
+			0x7d, 0x7d, 0x7a, 0x84, 0x79, 0x7f, 0x7f, 0x7c, 0x7b, 0x82, 0x82,
+			0x7e, 0x85, 0x7d, 0x7f, 0x7f, 0x86, 0x7d, 0x86, 0x83, 0x7d, 0x7f,
+			0x85, 0x7a, 0x82, 0x83, 0x78, 0x83, 0x7f, 0x7c, 0x7f, 0x80, 0x77,
+			0x81, 0x7e, 0x7c, 0x7c, 0x7f, 0x75, 0x7f, 0x78, 0x7b, 0x7c, 0x79,
+			0x7b, 0x77, 0x81, 0x79, 0x81, 0x82, 0x7c, 0x7e, 0x81, 0x79, 0x86,
+			0x79, 0x82, 0x7b, 0x7b, 0x7c, 0x79, 0x84, 0x77, 0x85, 0x7e, 0x7e,
+			0x83, 0x80, 0x81, 0x83, 0x80, 0x83, 0x80, 0x7f, 0x81, 0x7b, 0x82,
+			0x7d, 0x81, 0x80, 0x7e, 0x82, 0x7a, 0x82, 0x7f, 0x80, 0x82, 0x7d,
+			0x82, 0x7a, 0x7e, 0x82, 0x79, 0x85, 0x7b, 0x7b, 0x81, 0x76, 0x86,
+			0x7a, 0x82, 0x7e, 0x7e, 0x7f, 0x7e, 0x84, 0x7e, 0x87, 0x7d, 0x85,
+			0x7e, 0x81, 0x84, 0x7c, 0x82, 0x7f, 0x7b, 0x80, 0x7d, 0x7e, 0x7c,
+			0x81, 0x7f, 0x7f, 0x84, 0x7b, 0x85, 0x78, 0x87, 0x7e, 0x82, 0x83,
+			0x7b, 0x82, 0x79, 0x82, 0x7f, 0x80, 0x7f, 0x82, 0x7a, 0x83, 0x81,
+			0x81, 0x86, 0x7e, 0x84, 0x7c, 0x82, 0x7e, 0x81, 0x7e, 0x7e, 0x81,
+			0x79, 0x84, 0x7b, 0x7f, 0x7c, 0x80, 0x7f, 0x7f, 0x84, 0x79, 0x85,
+			0x79, 0x80, 0x85, 0x79, 0x83, 0x7e, 0x78, 0x80, 0x82, 0x7d, 0x7e,
+			0x84, 0x79, 0x7c, 0x83, 0x7c, 0x7c, 0x7e, 0x80, 0x75, 0x87, 0x7d,
+			0x81, 0x7e, 0x84, 0x7b, 0x81, 0x84, 0x7a, 0x86, 0x79, 0x87, 0x7a,
+			0x87, 0x7f, 0x80, 0x7e, 0x84, 0x7d, 0x83, 0x82, 0x7b, 0x84, 0x7a,
+			0x83, 0x80, 0x80, 0x7d, 0x7f, 0x7a, 0x7e, 0x7d, 0x80, 0x7f, 0x82,
+			0x80, 0x7f, 0x81, 0x7f, 0x7b, 0x81, 0x7d, 0x7f, 0x82, 0x7e, 0x81,
+			0x7f, 0x82, 0x82, 0x81, 0x7f, 0x80, 0x78, 0x7c, 0x7d, 0x77, 0x81,
+			0x7c, 0x7e, 0x7f, 0x81, 0x7f, 0x80, 0x85, 0x7e, 0x8a, 0x80, 0x87,
+			0x83, 0x7a, 0x85, 0x7a, 0x80, 0x83, 0x7b, 0x7f, 0x7c, 0x80, 0x80,
+			0x85, 0x84, 0x84, 0x84, 0x7f, 0x81, 0x7c, 0x7c, 0x7b, 0x80, 0x7c,
+			0x7f, 0x88, 0x70, 0x88, 0x7b, 0x7b, 0x8a, 0x80, 0x81, 0x7e, 0x86,
+			0x71, 0x8b, 0x7f, 0x7b, 0x85, 0x7d, 0x72, 0x86, 0x74, 0x7d, 0x7e,
+			0x82, 0x7b, 0x83, 0x83, 0x73, 0x89, 0x75, 0x89, 0x7c, 0x8c, 0x80,
+			0x80, 0x83, 0x81, 0x7f, 0x86, 0x81, 0x7d, 0x7b, 0x80, 0x7a, 0x7d,
+			0x86, 0x80, 0x7e, 0x8a, 0x7e, 0x7d, 0x83, 0x7a, 0x80, 0x7c, 0x8b,
+			0x76, 0x85, 0x7f, 0x7b, 0x7f, 0x87, 0x7e, 0x82, 0x82, 0x7b, 0x7e,
+			0x81, 0x7c, 0x85, 0x7b, 0x7f, 0x81, 0x77, 0x7e, 0x81, 0x77, 0x80,
+			0x85, 0x7b, 0x84, 0x7e, 0x7f, 0x77, 0x84, 0x7c, 0x7d, 0x83, 0x7e,
+			0x7d, 0x83, 0x86, 0x84, 0x83, 0x8e, 0x78, 0x86, 0x82, 0x7a, 0x7e,
+			0x82, 0x74, 0x83, 0x7c, 0x79, 0x85, 0x75, 0x87, 0x79, 0x88, 0x81,
+			0x81, 0x83, 0x80, 0x7d, 0x88, 0x7c, 0x86, 0x7f, 0x7f, 0x83, 0x7d,
+			0x88, 0x7a, 0x85, 0x7b, 0x80, 0x7c, 0x7f, 0x7c, 0x7d, 0x7e, 0x7b,
+			0x84, 0x7a, 0x82, 0x7f, 0x77, 0x80, 0x7e, 0x73, 0x84, 0x78, 0x7a,
+			0x87, 0x7e, 0x87, 0x82, 0x88, 0x7e, 0x87, 0x83, 0x7f, 0x87, 0x7b,
+			0x86, 0x7b, 0x82, 0x85, 0x7a, 0x85, 0x80, 0x79, 0x82, 0x7e, 0x76,
+			0x86, 0x78, 0x81, 0x81, 0x80, 0x80, 0x81, 0x81, 0x7c, 0x88, 0x7a,
+			0x87, 0x7b, 0x82, 0x7d, 0x81, 0x81, 0x7f, 0x80, 0x7c, 0x80, 0x78,
+			0x81, 0x79, 0x7f, 0x7b, 0x84, 0x76, 0x87, 0x7d, 0x7b, 0x85, 0x7d,
+			0x82, 0x7f, 0x88, 0x75, 0x87, 0x80, 0x7a, 0x87, 0x81, 0x7c, 0x85,
+			0x7f, 0x7e, 0x84, 0x7e, 0x85, 0x7f, 0x83, 0x82, 0x81, 0x7e, 0x84,
+			0x7c, 0x7e, 0x83, 0x79, 0x81, 0x79, 0x83, 0x79, 0x84, 0x7e, 0x85,
+			0x79, 0x8b, 0x78, 0x7f, 0x87, 0x71, 0x8b, 0x73, 0x84, 0x7a, 0x80,
+			0x7b, 0x85, 0x77, 0x82, 0x81, 0x76, 0x81, 0x80, 0x76, 0x85, 0x81,
+			0x7a, 0x8d, 0x7d, 0x88, 0x86, 0x81, 0x87, 0x82, 0x7d, 0x83, 0x80,
+			0x76, 0x88, 0x7d, 0x75, 0x90, 0x76, 0x7f, 0x86, 0x7e, 0x75, 0x8d,
+			0x71, 0x82, 0x7f, 0x7c, 0x7e, 0x84, 0x7c, 0x83, 0x84, 0x79, 0x8a,
+			0x75, 0x85, 0x79, 0x84, 0x75, 0x8b, 0x73, 0x8a, 0x79, 0x88, 0x7b,
+			0x84, 0x80, 0x78, 0x87, 0x6f, 0x8a, 0x6e, 0x88, 0x76, 0x84, 0x7a,
+			0x89, 0x7a, 0x88, 0x80, 0x81, 0x84, 0x81, 0x83, 0x81, 0x85, 0x7d,
+			0x8c, 0x77, 0x8e, 0x77, 0x8b, 0x76, 0x8d, 0x71, 0x88, 0x79, 0x7c,
+			0x7e, 0x7c, 0x7d, 0x77, 0x88, 0x6f, 0x8b, 0x75, 0x86, 0x79, 0x8a,
+			0x75, 0x8d, 0x77, 0x88, 0x7a, 0x84, 0x7a, 0x82, 0x7a, 0x80, 0x7e,
+			0x7a, 0x89, 0x73, 0x8c, 0x79, 0x85, 0x7d, 0x88, 0x76, 0x8a, 0x78,
+			0x84, 0x77, 0x8c, 0x6f, 0x8f, 0x77, 0x82, 0x82, 0x80, 0x82, 0x7e,
+			0x88, 0x77, 0x8e, 0x76, 0x8b, 0x7a, 0x88, 0x78, 0x88, 0x77, 0x84,
+			0x7b, 0x7f, 0x7b, 0x82, 0x78, 0x82, 0x7e, 0x7e, 0x82, 0x7f, 0x80,
+			0x81, 0x7e, 0x80, 0x7e, 0x7e, 0x81, 0x78, 0x85, 0x76, 0x86, 0x76,
+			0x85, 0x78, 0x83, 0x7b, 0x80, 0x7e, 0x81, 0x7e, 0x82, 0x82, 0x7e,
+			0x89, 0x7d, 0x84, 0x86, 0x7d, 0x86, 0x82, 0x81, 0x81, 0x82, 0x82,
+			0x7e, 0x83, 0x80, 0x7c, 0x83, 0x7e, 0x7d, 0x82, 0x7d, 0x7d, 0x81,
+			0x7d, 0x7b, 0x81, 0x78, 0x81, 0x76, 0x83, 0x73, 0x86, 0x75, 0x82,
+			0x7d, 0x7e, 0x80, 0x7f, 0x7f, 0x81, 0x80, 0x7e, 0x84, 0x7b, 0x85,
+			0x7c, 0x84, 0x7b, 0x87, 0x7b, 0x89, 0x7f, 0x89, 0x80, 0x8c, 0x81,
+			0x85, 0x88, 0x7d, 0x86, 0x7e, 0x7c, 0x7c, 0x7a, 0x74, 0x79, 0x72,
+			0x73, 0x71, 0x71, 0x6f, 0x75, 0x71, 0x79, 0x79, 0x7c, 0x84, 0x83,
+			0x8d, 0x91, 0x95, 0x9c, 0x9f, 0xa0, 0xa3, 0xa2, 0x9c, 0x9c, 0x92,
+			0x8b, 0x83, 0x77, 0x6f, 0x66, 0x5b, 0x5a, 0x50, 0x4d, 0x4f, 0x4b,
+			0x50, 0x58, 0x59, 0x68, 0x72, 0x79, 0x8b, 0x92, 0x9b, 0xa9, 0xac,
+			0xb5, 0xb8, 0xba, 0xbb, 0xb7, 0xb3, 0xad, 0xa3, 0x9a, 0x91, 0x81,
+			0x7a, 0x6c, 0x62, 0x58, 0x55, 0x45, 0x4c, 0x3f, 0x41, 0x45, 0x41,
+			0x4e, 0x52, 0x5f, 0x6c, 0x78, 0x88, 0x92, 0x9f, 0xaa, 0xb3, 0xb6,
+			0xc1, 0xbc, 0xbe, 0xbb, 0xb2, 0xb0, 0xa2, 0x9d, 0x8e, 0x87, 0x79,
+			0x73, 0x65, 0x63, 0x54, 0x55, 0x49, 0x47, 0x40, 0x43, 0x3d, 0x47,
+			0x4f, 0x4f, 0x6a, 0x68, 0x82, 0x89, 0x9c, 0xa4, 0xb5, 0xb6, 0xc3,
+			0xc4, 0xc4, 0xc3, 0xbe, 0xb6, 0xad, 0xa5, 0x96, 0x8e, 0x7f, 0x77,
+			0x69, 0x63, 0x57, 0x53, 0x47, 0x44, 0x3c, 0x3b, 0x39, 0x3e, 0x47,
+			0x4c, 0x5f, 0x67, 0x79, 0x86, 0x96, 0xa3, 0xb0, 0xb9, 0xc2, 0xc5,
+			0xc7, 0xc6, 0xc1, 0xbb, 0xb0, 0xa9, 0x9a, 0x90, 0x83, 0x78, 0x6b,
+			0x64, 0x5a, 0x54, 0x4a, 0x44, 0x3d, 0x3a, 0x38, 0x3e, 0x44, 0x4c,
+			0x5b, 0x66, 0x73, 0x84, 0x91, 0xa0, 0xae, 0xb6, 0xc2, 0xc4, 0xca,
+			0xc5, 0xc6, 0xba, 0xb5, 0xa7, 0x9e, 0x90, 0x85, 0x7a, 0x6e, 0x67,
+			0x5c, 0x56, 0x4c, 0x46, 0x3c, 0x3e, 0x34, 0x40, 0x42, 0x48, 0x59,
+			0x61, 0x6f, 0x83, 0x8c, 0x9f, 0xae, 0xb6, 0xc3, 0xc7, 0xcb, 0xc9,
+			0xc8, 0xbc, 0xb6, 0xa9, 0x9e, 0x90, 0x86, 0x77, 0x6e, 0x63, 0x5c,
+			0x51, 0x4c, 0x42, 0x3c, 0x3b, 0x34, 0x40, 0x41, 0x4b, 0x5a, 0x65,
+			0x71, 0x87, 0x8e, 0xa4, 0xaf, 0xba, 0xc4, 0xc8, 0xcc, 0xc9, 0xc7,
+			0xbc, 0xb5, 0xa7, 0x9d, 0x8d, 0x83, 0x75, 0x6c, 0x61, 0x5b, 0x50,
+			0x4b, 0x42, 0x3c, 0x39, 0x35, 0x41, 0x3e, 0x4e, 0x58, 0x64, 0x73,
+			0x85, 0x8f, 0xa4, 0xaf, 0xbb, 0xc6, 0xc8, 0xcf, 0xc9, 0xc8, 0xbc,
+			0xb5, 0xa6, 0x9b, 0x8d, 0x82, 0x74, 0x6b, 0x5f, 0x59, 0x4f, 0x48,
+			0x41, 0x3b, 0x36, 0x36, 0x41, 0x3e, 0x53, 0x58, 0x67, 0x77, 0x86,
+			0x92, 0xa6, 0xb0, 0xbd, 0xc6, 0xc9, 0xce, 0xca, 0xc7, 0xbd, 0xb4,
+			0xa7, 0x9b, 0x8c, 0x84, 0x73, 0x6d, 0x5f, 0x5a, 0x4e, 0x4b, 0x3d,
+			0x3d, 0x32, 0x38, 0x40, 0x3b, 0x55, 0x56, 0x67, 0x77, 0x85, 0x91,
+			0xaa, 0xaf, 0xc0, 0xc8, 0xca, 0xcf, 0xcc, 0xc6, 0xbe, 0xb3, 0xa5,
+			0x99, 0x8c, 0x7f, 0x73, 0x69, 0x5d, 0x58, 0x4c, 0x47, 0x3d, 0x3b,
+			0x2f, 0x41, 0x3a, 0x46, 0x58, 0x59, 0x6f, 0x7b, 0x87, 0x9a, 0xab,
+			0xb2, 0xc4, 0xc4, 0xcc, 0xcb, 0xc9, 0xc3, 0xbb, 0xae, 0xa3, 0x94,
+			0x8a, 0x7a, 0x72, 0x64, 0x5c, 0x54, 0x49, 0x43, 0x3b, 0x36, 0x32,
+			0x42, 0x37, 0x50, 0x55, 0x5f, 0x73, 0x7e, 0x8a, 0xa1, 0xab, 0xb6,
+			0xc4, 0xc4, 0xcc, 0xc9, 0xc8, 0xc0, 0xb8, 0xa9, 0xa0, 0x90, 0x86,
+			0x77, 0x70, 0x60, 0x5c, 0x4f, 0x48, 0x3f, 0x3b, 0x33, 0x39, 0x41,
+			0x3c, 0x56, 0x55, 0x67, 0x76, 0x83, 0x90, 0xa8, 0xac, 0xbd, 0xc5,
+			0xc7, 0xce, 0xc9, 0xc7, 0xbd, 0xb4, 0xa5, 0x9b, 0x8c, 0x80, 0x74,
+			0x6a, 0x5e, 0x58, 0x4c, 0x45, 0x3f, 0x38, 0x36, 0x40, 0x3c, 0x4a,
+			0x56, 0x5b, 0x71, 0x7b, 0x8a, 0x9c, 0xa9, 0xb3, 0xc3, 0xc3, 0xcc,
+			0xcb, 0xc7, 0xc3, 0xb8, 0xad, 0xa0, 0x94, 0x86, 0x7a, 0x70, 0x63,
+			0x5b, 0x51, 0x48, 0x40, 0x3c, 0x33, 0x3b, 0x3d, 0x40, 0x52, 0x54,
+			0x67, 0x74, 0x82, 0x91, 0xa3, 0xab, 0xbb, 0xc2, 0xc6, 0xcc, 0xc8,
+			0xc6, 0xbd, 0xb4, 0xa8, 0x9b, 0x8e, 0x82, 0x75, 0x6c, 0x61, 0x57,
+			0x4f, 0x45, 0x3e, 0x39, 0x34, 0x3e, 0x3b, 0x48, 0x52, 0x59, 0x6d,
+			0x79, 0x87, 0x9b, 0xa7, 0xb3, 0xc0, 0xc3, 0xcb, 0xcb, 0xc8, 0xc4,
+			0xba, 0xae, 0xa4, 0x95, 0x8b, 0x7c, 0x72, 0x67, 0x5e, 0x54, 0x4c,
+			0x43, 0x3c, 0x38, 0x3a, 0x3f, 0x40, 0x50, 0x54, 0x62, 0x72, 0x7f,
+			0x90, 0xa1, 0xab, 0xba, 0xc1, 0xc5, 0xcb, 0xc8, 0xc6, 0xbe, 0xb3,
+			0xa8, 0x9c, 0x8e, 0x83, 0x75, 0x6b, 0x60, 0x57, 0x4d, 0x45, 0x3d,
+			0x38, 0x38, 0x3d, 0x3f, 0x49, 0x54, 0x5c, 0x6e, 0x7a, 0x8b, 0x9c,
+			0xa9, 0xb5, 0xc0, 0xc4, 0xc9, 0xca, 0xc5, 0xc2, 0xb5, 0xac, 0x9f,
+			0x93, 0x86, 0x7a, 0x6f, 0x65, 0x5a, 0x53, 0x49, 0x40, 0x3d, 0x36,
+			0x3f, 0x3d, 0x46, 0x51, 0x57, 0x67, 0x75, 0x83, 0x96, 0xa3, 0xb0,
+			0xbc, 0xc2, 0xc7, 0xca, 0xc7, 0xc3, 0xbc, 0xaf, 0xa5, 0x97, 0x8a,
+			0x7f, 0x72, 0x68, 0x5f, 0x53, 0x4c, 0x43, 0x3c, 0x38, 0x3b, 0x3e,
+			0x42, 0x4f, 0x55, 0x62, 0x71, 0x7d, 0x8f, 0x9d, 0xab, 0xb6, 0xc1,
+			0xc3, 0xc9, 0xc7, 0xc4, 0xbf, 0xb1, 0xa9, 0x9c, 0x8e, 0x83, 0x78,
+			0x6b, 0x64, 0x58, 0x51, 0x47, 0x40, 0x3a, 0x39, 0x3e, 0x3f, 0x49,
+			0x53, 0x5a, 0x6d, 0x78, 0x88, 0x99, 0xa6, 0xb2, 0xbe, 0xc2, 0xc8,
+			0xc9, 0xc3, 0xc4, 0xb2, 0xae, 0x9e, 0x91, 0x86, 0x79, 0x6d, 0x67,
+			0x58, 0x51, 0x4a, 0x3d, 0x3d, 0x38, 0x3c, 0x40, 0x48, 0x51, 0x5e,
+			0x68, 0x7a, 0x87, 0x96, 0xa5, 0xb2, 0xbb, 0xc4, 0xc6, 0xc8, 0xc6,
+			0xc0, 0xb7, 0xab, 0xa0, 0x92, 0x87, 0x79, 0x6f, 0x65, 0x5b, 0x51,
+			0x4a, 0x40, 0x3c, 0x3a, 0x3d, 0x41, 0x49, 0x53, 0x5c, 0x6d, 0x78,
+			0x88, 0x98, 0xa3, 0xb2, 0xbc, 0xc1, 0xc8, 0xc6, 0xc4, 0xc1, 0xb3,
+			0xae, 0x9e, 0x93, 0x88, 0x79, 0x6e, 0x66, 0x58, 0x52, 0x49, 0x3f,
+			0x3d, 0x38, 0x3d, 0x41, 0x49, 0x53, 0x5d, 0x6c, 0x7a, 0x88, 0x98,
+			0xa6, 0xb2, 0xbc, 0xc4, 0xc4, 0xca, 0xc2, 0xc1, 0xb6, 0xab, 0xa0,
+			0x91, 0x86, 0x79, 0x6d, 0x63, 0x5a, 0x4e, 0x49, 0x3d, 0x3b, 0x3a,
+			0x3d, 0x42, 0x4d, 0x54, 0x61, 0x70, 0x7b, 0x8e, 0x9b, 0xa9, 0xb7,
+			0xbe, 0xc6, 0xc8, 0xc7, 0xc6, 0xbc, 0xb5, 0xa9, 0x9b, 0x8f, 0x82,
+			0x74, 0x6b, 0x60, 0x56, 0x4d, 0x43, 0x3d, 0x39, 0x3a, 0x40, 0x43,
+			0x4f, 0x57, 0x63, 0x73, 0x80, 0x90, 0x9f, 0xac, 0xb8, 0xc1, 0xc6,
+			0xc7, 0xc6, 0xc2, 0xb8, 0xb0, 0xa1, 0x95, 0x89, 0x7b, 0x71, 0x66,
+			0x5c, 0x53, 0x49, 0x41, 0x3b, 0x3a, 0x3d, 0x40, 0x49, 0x53, 0x5d,
+			0x6c, 0x7a, 0x88, 0x98, 0xa5, 0xb4, 0xbc, 0xc3, 0xc8, 0xc6, 0xc5,
+			0xbe, 0xb2, 0xa9, 0x99, 0x8d, 0x82, 0x75, 0x6c, 0x61, 0x56, 0x4e,
+			0x44, 0x3d, 0x3b, 0x3b, 0x40, 0x45, 0x4f, 0x57, 0x66, 0x74, 0x82,
+			0x93, 0xa0, 0xae, 0xb9, 0xc0, 0xc7, 0xc7, 0xc5, 0xc2, 0xb5, 0xae,
+			0x9e, 0x91, 0x87, 0x78, 0x6f, 0x67, 0x58, 0x53, 0x48, 0x40, 0x3e,
+			0x3b, 0x40, 0x44, 0x4c, 0x56, 0x60, 0x6f, 0x7d, 0x8d, 0x9b, 0xa9,
+			0xb4, 0xbc, 0xc4, 0xc4, 0xc6, 0xc2, 0xb8, 0xb0, 0xa2, 0x94, 0x8a,
+			0x7b, 0x73, 0x66, 0x5d, 0x53, 0x4a, 0x43, 0x3d, 0x3d, 0x41, 0x44,
+			0x4e, 0x57, 0x60, 0x71, 0x7d, 0x8d, 0x9c, 0xa9, 0xb4, 0xbd, 0xc1,
+			0xc7, 0xc1, 0xc1, 0xb7, 0xab, 0xa3, 0x91, 0x88, 0x7c, 0x6f, 0x68,
+			0x5d, 0x53, 0x4e, 0x43, 0x40, 0x3f, 0x41, 0x47, 0x4f, 0x58, 0x63,
+			0x70, 0x7e, 0x8d, 0x9b, 0xa8, 0xb4, 0xbb, 0xc2, 0xc4, 0xc2, 0xbf,
+			0xb8, 0xab, 0xa3, 0x92, 0x88, 0x7d, 0x71, 0x6a, 0x5f, 0x56, 0x4e,
+			0x47, 0x3f, 0x40, 0x3f, 0x46, 0x4b, 0x56, 0x5e, 0x6c, 0x7a, 0x89,
+			0x98, 0xa4, 0xb2, 0xb7, 0xc0, 0xc2, 0xc2, 0xbe, 0xbb, 0xae, 0xa7,
+			0x98, 0x8c, 0x83, 0x76, 0x6e, 0x65, 0x5b, 0x53, 0x4c, 0x41, 0x43,
+			0x3f, 0x45, 0x4a, 0x50, 0x5c, 0x64, 0x75, 0x80, 0x92, 0x9c, 0xab,
+			0xb2, 0xba, 0xc0, 0xbf, 0xc0, 0xbc, 0xb2, 0xa9, 0x9f, 0x90, 0x89,
+			0x7a, 0x72, 0x68, 0x5f, 0x56, 0x50, 0x46, 0x43, 0x44, 0x41, 0x4d,
+			0x4c, 0x5a, 0x61, 0x6f, 0x7c, 0x8b, 0x98, 0xa4, 0xb0, 0xb5, 0xbf,
+			0xbe, 0xbf, 0xbb, 0xb5, 0xaa, 0xa2, 0x93, 0x8a, 0x7d, 0x73, 0x6b,
+			0x61, 0x5a, 0x53, 0x4c, 0x44, 0x48, 0x41, 0x4d, 0x4e, 0x57, 0x61,
+			0x6a, 0x7a, 0x85, 0x95, 0x9e, 0xad, 0xaf, 0xbc, 0xba, 0xbe, 0xb9,
+			0xb4, 0xad, 0xa1, 0x98, 0x8a, 0x82, 0x74, 0x6f, 0x62, 0x5f, 0x53,
+			0x51, 0x45, 0x4a, 0x43, 0x4b, 0x51, 0x53, 0x64, 0x65, 0x7b, 0x80,
+			0x93, 0x9a, 0xaa, 0xad, 0xb8, 0xb9, 0xb9, 0xbb, 0xb1, 0xaf, 0xa0,
+			0x9a, 0x8b, 0x84, 0x76, 0x72, 0x64, 0x62, 0x57, 0x53, 0x4b, 0x49,
+			0x4a, 0x48, 0x56, 0x52, 0x65, 0x66, 0x77, 0x80, 0x8e, 0x98, 0xa5,
+			0xac, 0xb4, 0xb9, 0xb7, 0xbc, 0xb1, 0xb1, 0xa2, 0x9e, 0x8d, 0x87,
+			0x79, 0x73, 0x68, 0x63, 0x58, 0x56, 0x4d, 0x4a, 0x4e, 0x47, 0x58,
+			0x52, 0x63, 0x66, 0x74, 0x7c, 0x8d, 0x91, 0xa3, 0xa7, 0xaf, 0xb6,
+			0xb3, 0xb8, 0xaf, 0xaf, 0xa1, 0x9d, 0x8c, 0x89, 0x78, 0x76, 0x69,
+			0x65, 0x5a, 0x58, 0x4f, 0x4e, 0x4f, 0x4a, 0x58, 0x54, 0x64, 0x68,
+			0x75, 0x7d, 0x8d, 0x91, 0xa3, 0xa4, 0xaf, 0xb2, 0xb2, 0xb7, 0xad,
+			0xae, 0xa0, 0x9b, 0x8d, 0x87, 0x79, 0x76, 0x68, 0x66, 0x5a, 0x58,
+			0x51, 0x4f, 0x52, 0x4d, 0x5b, 0x57, 0x65, 0x6b, 0x74, 0x7f, 0x8c,
+			0x91, 0xa1, 0xa3, 0xad, 0xb0, 0xb1, 0xb1, 0xad, 0xaa, 0x9f, 0x9b,
+			0x8c, 0x87, 0x7a, 0x74, 0x6a, 0x66, 0x5a, 0x5b, 0x51, 0x53, 0x53,
+			0x50, 0x5c, 0x5a, 0x66, 0x6e, 0x75, 0x81, 0x8c, 0x92, 0xa1, 0xa3,
+			0xab, 0xad, 0xb0, 0xab, 0xac, 0xa4, 0x9b, 0x98, 0x88, 0x85, 0x78,
+			0x72, 0x6a, 0x64, 0x5c, 0x5c, 0x53, 0x57, 0x55, 0x55, 0x60, 0x5d,
+			0x6a, 0x71, 0x77, 0x84, 0x8d, 0x92, 0xa0, 0xa2, 0xa7, 0xad, 0xa9,
+			0xaa, 0xa8, 0x9e, 0x9c, 0x91, 0x88, 0x84, 0x76, 0x73, 0x6b, 0x62,
+			0x61, 0x5a, 0x56, 0x5b, 0x54, 0x5c, 0x61, 0x60, 0x70, 0x72, 0x7b,
+			0x87, 0x8c, 0x95, 0x9f, 0x9f, 0xa7, 0xa9, 0xa5, 0xa9, 0xa0, 0x9c,
+			0x97, 0x8c, 0x86, 0x80, 0x75, 0x73, 0x68, 0x65, 0x61, 0x5b, 0x5a,
+			0x5b, 0x5a, 0x5f, 0x65, 0x66, 0x74, 0x74, 0x80, 0x87, 0x8e, 0x96,
+			0x9d, 0x9e, 0xa6, 0xa3, 0xa4, 0xa4, 0x9c, 0x9b, 0x92, 0x8b, 0x85,
+			0x7e, 0x75, 0x74, 0x68, 0x68, 0x60, 0x60, 0x5d, 0x5f, 0x5d, 0x64,
+			0x66, 0x6b, 0x74, 0x77, 0x81, 0x86, 0x8f, 0x93, 0x9b, 0x9b, 0xa3,
+			0x9f, 0xa3, 0x9f, 0x9b, 0x98, 0x90, 0x8a, 0x84, 0x7d, 0x77, 0x72,
+			0x6b, 0x69, 0x62, 0x62, 0x5f, 0x61, 0x61, 0x65, 0x69, 0x6d, 0x74,
+			0x7a, 0x7f, 0x88, 0x8c, 0x92, 0x98, 0x9a, 0x9e, 0x9e, 0x9f, 0x9c,
+			0x9a, 0x94, 0x90, 0x89, 0x84, 0x7d, 0x78, 0x72, 0x6e, 0x69, 0x66,
+			0x65, 0x62, 0x64, 0x65, 0x67, 0x6c, 0x6f, 0x74, 0x7c, 0x7e, 0x88,
+			0x8b, 0x90, 0x95, 0x98, 0x9a, 0x9d, 0x9b, 0x9a, 0x98, 0x92, 0x8f,
+			0x89, 0x84, 0x7e, 0x78, 0x73, 0x70, 0x69, 0x69, 0x65, 0x65, 0x66,
+			0x67, 0x69, 0x6d, 0x71, 0x76, 0x7c, 0x80, 0x86, 0x8b, 0x8f, 0x93,
+			0x96, 0x97, 0x9a, 0x98, 0x97, 0x95, 0x91, 0x8d, 0x89, 0x83, 0x7f,
+			0x79, 0x75, 0x71, 0x6d, 0x6b, 0x69, 0x68, 0x69, 0x69, 0x6b, 0x70,
+			0x71, 0x77, 0x7b, 0x80, 0x85, 0x8a, 0x8e, 0x92, 0x94, 0x96, 0x97,
+			0x96, 0x95, 0x92, 0x8f, 0x8a, 0x86, 0x81, 0x7d, 0x78, 0x74, 0x70,
+			0x6e, 0x6c, 0x6b, 0x6b, 0x6b, 0x6d, 0x70, 0x72, 0x77, 0x7a, 0x7f,
+			0x84, 0x88, 0x8c, 0x8f, 0x92, 0x94, 0x94, 0x94, 0x93, 0x91, 0x8e,
+			0x8b, 0x86, 0x82, 0x7e, 0x7a, 0x77, 0x73, 0x71, 0x6f, 0x6f, 0x6d,
+			0x6e, 0x6f, 0x71, 0x73, 0x76, 0x78, 0x7c, 0x7f, 0x82, 0x86, 0x88,
+			0x8b, 0x8d, 0x8f, 0x8f, 0x90, 0x8f, 0x8e, 0x8c, 0x89, 0x87, 0x83,
+			0x80, 0x7d, 0x7a, 0x77, 0x76, 0x73, 0x73, 0x72, 0x72, 0x73, 0x74,
+			0x75, 0x78, 0x7a, 0x7c, 0x7f, 0x81, 0x84, 0x85, 0x88, 0x89, 0x8b,
+			0x8c, 0x8c, 0x8c, 0x8a, 0x89, 0x87, 0x85, 0x82, 0x80, 0x7e, 0x7c,
+			0x7a, 0x78, 0x77, 0x76, 0x76, 0x76, 0x76, 0x77, 0x79, 0x7a, 0x7c,
+			0x7d, 0x7f, 0x81, 0x82, 0x83, 0x85, 0x85, 0x86, 0x86, 0x86, 0x86,
+			0x86, 0x85, 0x84, 0x83, 0x81, 0x81, 0x7f, 0x7e, 0x7d, 0x7c, 0x7c,
+			0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7c, 0x7d, 0x7d, 0x7e, 0x7f, 0x7f,
+			0x81, 0x81, 0x82, 0x82, 0x83, 0x83, 0x83, 0x83, 0x83, 0x82, 0x82,
+			0x81, 0x81, 0x80, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80,
+		},
+		{ // 8
+			0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f,
+			0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f,
+			0x80, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x80, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7f, 0x80, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7e,
+			0x80, 0x80, 0x7f, 0x81, 0x80, 0x80, 0x81, 0x81, 0x80, 0x81, 0x81,
+			0x81, 0x81, 0x82, 0x83, 0x91, 0x9c, 0x7a, 0x74, 0x82, 0x82, 0x97,
+			0x94, 0x83, 0x74, 0x6d, 0x72, 0x7c, 0x80, 0x7a, 0x71, 0x6d, 0x6a,
+			0x69, 0x72, 0x79, 0x7f, 0x82, 0x82, 0x7e, 0x7f, 0x82, 0x83, 0x82,
+			0x84, 0x81, 0x83, 0x86, 0x86, 0x89, 0x89, 0x8a, 0x8a, 0x88, 0x85,
+			0x80, 0x7b, 0x78, 0x71, 0x71, 0x6e, 0x6f, 0x70, 0x70, 0x71, 0x75,
+			0x78, 0x78, 0x7d, 0x8a, 0xa1, 0xa7, 0xa7, 0x9a, 0x92, 0x8e, 0x91,
+			0x95, 0x97, 0x94, 0x8b, 0x80, 0x71, 0x6a, 0x60, 0x5d, 0x59, 0x58,
+			0x54, 0x56, 0x58, 0x6c, 0x83, 0xa0, 0xb8, 0xa7, 0x8f, 0x72, 0x6b,
+			0x78, 0x88, 0x9b, 0xad, 0xa9, 0x98, 0x85, 0x79, 0x76, 0x78, 0x7e,
+			0x81, 0x81, 0x77, 0x6e, 0x66, 0x62, 0x64, 0x60, 0x5c, 0x5a, 0x6e,
+			0x7e, 0xa0, 0xb2, 0xa1, 0x91, 0x6f, 0x69, 0x78, 0x89, 0xa2, 0xaa,
+			0xa9, 0x9d, 0x8c, 0x7c, 0x70, 0x77, 0x84, 0x90, 0x89, 0x7e, 0x6e,
+			0x66, 0x5c, 0x5f, 0x62, 0x65, 0x5a, 0x66, 0x79, 0x90, 0xbf, 0xa9,
+			0x95, 0x72, 0x5e, 0x73, 0x85, 0x9c, 0xb1, 0xa8, 0xa3, 0x8a, 0x7a,
+			0x73, 0x71, 0x84, 0x8a, 0x8e, 0x7f, 0x72, 0x69, 0x61, 0x62, 0x66,
+			0x60, 0x62, 0x4e, 0x66, 0x7e, 0x9f, 0xc8, 0xa3, 0x89, 0x68, 0x5c,
+			0x77, 0x89, 0xa5, 0xb6, 0xa8, 0x9b, 0x7d, 0x74, 0x77, 0x7a, 0x8b,
+			0x8c, 0x88, 0x77, 0x6f, 0x68, 0x69, 0x6e, 0x69, 0x62, 0x5b, 0x4b,
+			0x67, 0x7f, 0xa0, 0xc7, 0xa2, 0x86, 0x60, 0x56, 0x7a, 0x90, 0xac,
+			0xb5, 0xa4, 0x93, 0x76, 0x74, 0x7b, 0x80, 0x8e, 0x8d, 0x87, 0x75,
+			0x6a, 0x6c, 0x70, 0x71, 0x6c, 0x5d, 0x5a, 0x4c, 0x63, 0x85, 0xa0,
+			0xc6, 0xa9, 0x81, 0x5f, 0x57, 0x79, 0x98, 0xaf, 0xb4, 0x9f, 0x88,
+			0x6f, 0x72, 0x80, 0x89, 0x92, 0x8a, 0x80, 0x6c, 0x69, 0x6b, 0x74,
+			0x79, 0x72, 0x5e, 0x52, 0x44, 0x60, 0x88, 0xa0, 0xc9, 0xab, 0x84,
+			0x5c, 0x51, 0x79, 0x9b, 0xb4, 0xb7, 0xa0, 0x86, 0x6f, 0x70, 0x82,
+			0x8b, 0x92, 0x87, 0x7e, 0x6b, 0x68, 0x72, 0x79, 0x7d, 0x71, 0x5c,
+			0x53, 0x4b, 0x5b, 0x8a, 0x9a, 0xc5, 0xb3, 0x80, 0x62, 0x4c, 0x74,
+			0x9b, 0xb2, 0xb4, 0x9d, 0x85, 0x71, 0x71, 0x89, 0x90, 0x95, 0x88,
+			0x78, 0x6d, 0x6a, 0x76, 0x7c, 0x7e, 0x72, 0x5e, 0x52, 0x52, 0x55,
+			0x7f, 0x92, 0xb9, 0xc1, 0x89, 0x67, 0x4a, 0x6b, 0x9b, 0xb1, 0xb6,
+			0x9f, 0x86, 0x76, 0x73, 0x88, 0x8f, 0x95, 0x88, 0x74, 0x6c, 0x68,
+			0x79, 0x7d, 0x7e, 0x6f, 0x5c, 0x54, 0x4f, 0x52, 0x78, 0x91, 0xaf,
+			0xc6, 0x92, 0x6c, 0x4f, 0x60, 0x94, 0xaf, 0xb9, 0xa2, 0x86, 0x75,
+			0x73, 0x89, 0x95, 0x94, 0x89, 0x75, 0x6e, 0x6a, 0x7a, 0x82, 0x81,
+			0x71, 0x5a, 0x51, 0x53, 0x56, 0x6c, 0x8a, 0x9e, 0xc6, 0xa1, 0x71,
+			0x54, 0x54, 0x8d, 0xad, 0xb8, 0xa6, 0x88, 0x79, 0x73, 0x84, 0x96,
+			0x94, 0x8d, 0x73, 0x6d, 0x6a, 0x77, 0x80, 0x80, 0x79, 0x63, 0x50,
+			0x4b, 0x52, 0x65, 0x8d, 0x96, 0xbe, 0xae, 0x77, 0x5a, 0x4c, 0x81,
+			0xac, 0xba, 0xad, 0x8a, 0x79, 0x73, 0x83, 0x9b, 0x94, 0x8d, 0x77,
+			0x6e, 0x6e, 0x75, 0x84, 0x80, 0x78, 0x60, 0x56, 0x57, 0x5b, 0x57,
+			0x7a, 0x8e, 0xb1, 0xc0, 0x83, 0x66, 0x4d, 0x71, 0xa0, 0xaf, 0xb1,
+			0x95, 0x7c, 0x74, 0x7a, 0x93, 0x97, 0x8f, 0x7e, 0x6d, 0x71, 0x71,
+			0x84, 0x7f, 0x78, 0x66, 0x59, 0x53, 0x59, 0x59, 0x76, 0x8c, 0xa1,
+			0xc5, 0x91, 0x6e, 0x53, 0x65, 0x9b, 0xaf, 0xb2, 0x9c, 0x81, 0x7a,
+			0x7a, 0x90, 0x99, 0x8f, 0x82, 0x6e, 0x71, 0x71, 0x82, 0x83, 0x79,
+			0x6a, 0x58, 0x57, 0x5d, 0x59, 0x68, 0x84, 0x95, 0xbf, 0xa4, 0x75,
+			0x5a, 0x5a, 0x8d, 0xaa, 0xb1, 0xa2, 0x88, 0x7b, 0x79, 0x89, 0x9b,
+			0x94, 0x87, 0x73, 0x72, 0x72, 0x7c, 0x86, 0x7b, 0x6f, 0x5a, 0x5b,
+			0x5d, 0x5b, 0x60, 0x7d, 0x8d, 0xba, 0xb0, 0x7e, 0x63, 0x52, 0x83,
+			0xa3, 0xb5, 0xa8, 0x8d, 0x7c, 0x76, 0x85, 0x9a, 0x97, 0x8c, 0x75,
+			0x6f, 0x71, 0x76, 0x88, 0x7e, 0x73, 0x5d, 0x5a, 0x58, 0x5c, 0x58,
+			0x74, 0x89, 0xaa, 0xbb, 0x87, 0x6a, 0x50, 0x75, 0x9d, 0xb0, 0xab,
+			0x90, 0x81, 0x77, 0x81, 0x9a, 0x99, 0x8d, 0x76, 0x6f, 0x76, 0x79,
+			0x84, 0x7c, 0x70, 0x5c, 0x5a, 0x5d, 0x5f, 0x5d, 0x7a, 0x86, 0xb4,
+			0xb5, 0x80, 0x63, 0x4e, 0x80, 0xa3, 0xb3, 0xa7, 0x8d, 0x7f, 0x78,
+			0x87, 0x9b, 0x9a, 0x8b, 0x72, 0x70, 0x73, 0x7f, 0x82, 0x79, 0x6c,
+			0x5e, 0x5c, 0x5b, 0x5a, 0x5b, 0x82, 0x91, 0xbb, 0xa6, 0x72, 0x5e,
+			0x59, 0x8a, 0xa8, 0xb1, 0xa1, 0x87, 0x7a, 0x7a, 0x8e, 0x9d, 0x94,
+			0x84, 0x6f, 0x73, 0x77, 0x86, 0x7f, 0x77, 0x64, 0x5a, 0x5d, 0x63,
+			0x5d, 0x61, 0x7f, 0x99, 0xc1, 0x99, 0x72, 0x56, 0x69, 0x96, 0xa9,
+			0xad, 0x97, 0x85, 0x7a, 0x81, 0x92, 0x9e, 0x92, 0x7b, 0x6c, 0x74,
+			0x7d, 0x89, 0x83, 0x75, 0x5f, 0x5a, 0x5a, 0x65, 0x5b, 0x6c, 0x88,
+			0xa1, 0xbf, 0x88, 0x69, 0x53, 0x74, 0x9d, 0xac, 0xa8, 0x8e, 0x81,
+			0x7a, 0x83, 0x97, 0x9c, 0x8d, 0x76, 0x6c, 0x75, 0x7f, 0x88, 0x7b,
+			0x70, 0x5f, 0x5e, 0x5d, 0x62, 0x59, 0x72, 0x88, 0xae, 0xb9, 0x85,
+			0x64, 0x53, 0x7f, 0xa1, 0xb1, 0xa5, 0x8d, 0x7f, 0x78, 0x86, 0x99,
+			0x9a, 0x89, 0x70, 0x6d, 0x77, 0x85, 0x85, 0x78, 0x6c, 0x5f, 0x5f,
+			0x5c, 0x5d, 0x5b, 0x7f, 0x91, 0xb4, 0xa6, 0x76, 0x61, 0x5b, 0x8c,
+			0xa3, 0xae, 0x9b, 0x86, 0x7d, 0x7b, 0x8d, 0x9c, 0x98, 0x81, 0x6c,
+			0x6f, 0x7a, 0x87, 0x82, 0x76, 0x63, 0x5b, 0x5d, 0x64, 0x5d, 0x62,
+			0x80, 0x92, 0xbe, 0x98, 0x77, 0x5a, 0x67, 0x96, 0xa7, 0xae, 0x96,
+			0x86, 0x7c, 0x7e, 0x90, 0x9d, 0x93, 0x7e, 0x6e, 0x74, 0x7c, 0x87,
+			0x7e, 0x77, 0x67, 0x5e, 0x58, 0x5f, 0x59, 0x6a, 0x89, 0x9f, 0xbb,
+			0x8d, 0x6c, 0x55, 0x71, 0x9e, 0xaf, 0xaa, 0x8f, 0x80, 0x7a, 0x85,
+			0x95, 0x9b, 0x8f, 0x77, 0x6d, 0x73, 0x7e, 0x85, 0x7c, 0x73, 0x62,
+			0x60, 0x5c, 0x62, 0x58, 0x6b, 0x83, 0x9e, 0xb9, 0x8c, 0x6c, 0x56,
+			0x75, 0x9d, 0xad, 0xa6, 0x8d, 0x82, 0x7c, 0x84, 0x95, 0x9a, 0x8e,
+			0x79, 0x6f, 0x74, 0x7f, 0x86, 0x7b, 0x6e, 0x62, 0x61, 0x60, 0x65,
+			0x55, 0x6a, 0x85, 0xa0, 0xb9, 0x89, 0x6c, 0x5a, 0x77, 0x9f, 0xab,
+			0xa6, 0x8e, 0x83, 0x7b, 0x87, 0x95, 0x9c, 0x8d, 0x77, 0x71, 0x76,
+			0x81, 0x84, 0x7b, 0x6f, 0x61, 0x63, 0x60, 0x65, 0x57, 0x65, 0x81,
+			0x9e, 0xbb, 0x8e, 0x6f, 0x57, 0x73, 0x9b, 0xac, 0xab, 0x8e, 0x84,
+			0x7a, 0x86, 0x94, 0x9b, 0x8e, 0x78, 0x70, 0x76, 0x83, 0x86, 0x7b,
+			0x6c, 0x60, 0x63, 0x61, 0x65, 0x58, 0x64, 0x82, 0x9c, 0xba, 0x8d,
+			0x70, 0x5b, 0x74, 0x9b, 0xa7, 0xa8, 0x8f, 0x87, 0x7c, 0x85, 0x94,
+			0x9a, 0x8f, 0x77, 0x70, 0x75, 0x80, 0x85, 0x78, 0x6e, 0x64, 0x65,
+			0x61, 0x63, 0x56, 0x63, 0x80, 0x98, 0xb6, 0x91, 0x75, 0x5b, 0x71,
+			0x96, 0xa9, 0xab, 0x92, 0x86, 0x7b, 0x85, 0x93, 0x9c, 0x90, 0x79,
+			0x70, 0x76, 0x7f, 0x83, 0x79, 0x70, 0x65, 0x62, 0x5f, 0x62, 0x5c,
+			0x62, 0x7c, 0x92, 0xb4, 0x95, 0x76, 0x5d, 0x6f, 0x96, 0xa8, 0xab,
+			0x92, 0x88, 0x7d, 0x86, 0x92, 0x9b, 0x91, 0x7b, 0x70, 0x74, 0x7f,
+			0x84, 0x7b, 0x6f, 0x64, 0x64, 0x60, 0x64, 0x5b, 0x65, 0x7f, 0x91,
+			0xb2, 0x92, 0x78, 0x60, 0x71, 0x97, 0xa8, 0xaa, 0x91, 0x86, 0x7d,
+			0x89, 0x94, 0x9a, 0x8c, 0x79, 0x72, 0x76, 0x7f, 0x80, 0x78, 0x6d,
+			0x63, 0x65, 0x61, 0x64, 0x59, 0x67, 0x7f, 0x97, 0xaf, 0x8e, 0x77,
+			0x61, 0x79, 0x98, 0xa9, 0xa7, 0x90, 0x87, 0x80, 0x8b, 0x95, 0x97,
+			0x8a, 0x78, 0x74, 0x79, 0x81, 0x7f, 0x75, 0x6b, 0x62, 0x64, 0x60,
+			0x65, 0x59, 0x6f, 0x80, 0x9d, 0xab, 0x85, 0x72, 0x5f, 0x83, 0x9b,
+			0xa9, 0x9e, 0x8c, 0x85, 0x81, 0x8e, 0x95, 0x97, 0x85, 0x75, 0x73,
+			0x7b, 0x82, 0x7d, 0x72, 0x69, 0x64, 0x64, 0x63, 0x62, 0x5d, 0x76,
+			0x7f, 0xa2, 0x9e, 0x85, 0x70, 0x66, 0x89, 0x9c, 0xa9, 0x98, 0x8b,
+			0x82, 0x85, 0x8f, 0x97, 0x95, 0x82, 0x74, 0x75, 0x7b, 0x82, 0x79,
+			0x6f, 0x66, 0x66, 0x61, 0x64, 0x5b, 0x67, 0x7c, 0x88, 0xa5, 0x8e,
+			0x81, 0x68, 0x76, 0x91, 0xa2, 0xa5, 0x92, 0x8a, 0x83, 0x8b, 0x93,
+			0x99, 0x8e, 0x7c, 0x75, 0x79, 0x81, 0x80, 0x75, 0x6c, 0x66, 0x66,
+			0x62, 0x62, 0x5b, 0x72, 0x7d, 0x98, 0x9f, 0x84, 0x75, 0x67, 0x85,
+			0x98, 0xa4, 0x9a, 0x8d, 0x88, 0x86, 0x90, 0x96, 0x94, 0x85, 0x77,
+			0x76, 0x7a, 0x81, 0x7b, 0x76, 0x68, 0x63, 0x5f, 0x63, 0x61, 0x6a,
+			0x79, 0x87, 0xa0, 0x8d, 0x7d, 0x69, 0x78, 0x91, 0xa0, 0x9d, 0x8e,
+			0x89, 0x87, 0x8e, 0x95, 0x95, 0x8b, 0x7c, 0x76, 0x79, 0x7f, 0x7e,
+			0x75, 0x6b, 0x67, 0x61, 0x61, 0x60, 0x65, 0x7a, 0x7f, 0x9c, 0x8f,
+			0x85, 0x70, 0x73, 0x8c, 0x9a, 0xa2, 0x91, 0x8a, 0x84, 0x8c, 0x93,
+			0x96, 0x8e, 0x7f, 0x77, 0x77, 0x7d, 0x7e, 0x79, 0x6f, 0x69, 0x63,
+			0x60, 0x63, 0x64, 0x79, 0x7c, 0x96, 0x92, 0x84, 0x74, 0x70, 0x8a,
+			0x99, 0xa4, 0x94, 0x8d, 0x85, 0x8b, 0x93, 0x93, 0x8f, 0x80, 0x79,
+			0x78, 0x7c, 0x7c, 0x79, 0x6e, 0x65, 0x62, 0x64, 0x69, 0x67, 0x75,
+			0x7b, 0x94, 0x93, 0x84, 0x74, 0x74, 0x8a, 0x97, 0x9e, 0x92, 0x8d,
+			0x88, 0x8a, 0x90, 0x92, 0x8c, 0x81, 0x79, 0x79, 0x7d, 0x7a, 0x77,
+			0x6f, 0x67, 0x61, 0x63, 0x64, 0x6d, 0x76, 0x7d, 0x93, 0x8d, 0x84,
+			0x71, 0x77, 0x8b, 0x99, 0x9d, 0x93, 0x8c, 0x89, 0x8b, 0x90, 0x94,
+			0x8a, 0x81, 0x7a, 0x7a, 0x7d, 0x7a, 0x76, 0x6e, 0x67, 0x60, 0x64,
+			0x64, 0x6f, 0x79, 0x82, 0x93, 0x86, 0x80, 0x72, 0x7f, 0x8e, 0x9a,
+			0x98, 0x90, 0x8c, 0x89, 0x90, 0x90, 0x93, 0x87, 0x80, 0x7a, 0x7c,
+			0x7f, 0x7a, 0x74, 0x6c, 0x69, 0x64, 0x65, 0x66, 0x71, 0x7b, 0x85,
+			0x8f, 0x85, 0x7c, 0x76, 0x80, 0x91, 0x9a, 0x98, 0x8f, 0x8a, 0x8a,
+			0x91, 0x91, 0x8d, 0x83, 0x7f, 0x7c, 0x7d, 0x7d, 0x78, 0x71, 0x69,
+			0x69, 0x66, 0x69, 0x68, 0x77, 0x7d, 0x89, 0x89, 0x80, 0x79, 0x78,
+			0x89, 0x91, 0x97, 0x90, 0x8f, 0x8b, 0x8e, 0x8f, 0x8f, 0x8a, 0x84,
+			0x82, 0x7f, 0x80, 0x78, 0x75, 0x6e, 0x6e, 0x69, 0x69, 0x66, 0x6a,
+			0x77, 0x7e, 0x88, 0x80, 0x7d, 0x78, 0x7e, 0x8a, 0x91, 0x95, 0x8f,
+			0x8c, 0x8c, 0x93, 0x93, 0x8f, 0x86, 0x86, 0x84, 0x82, 0x7e, 0x77,
+			0x75, 0x71, 0x70, 0x69, 0x66, 0x65, 0x6f, 0x79, 0x80, 0x83, 0x7c,
+			0x79, 0x77, 0x83, 0x8b, 0x8f, 0x90, 0x8d, 0x8d, 0x8e, 0x93, 0x90,
+			0x8b, 0x88, 0x88, 0x85, 0x81, 0x7b, 0x77, 0x74, 0x71, 0x6d, 0x69,
+			0x69, 0x6a, 0x74, 0x79, 0x80, 0x7f, 0x7c, 0x79, 0x7b, 0x87, 0x8d,
+			0x91, 0x8d, 0x8d, 0x8c, 0x92, 0x94, 0x8f, 0x8b, 0x87, 0x89, 0x85,
+			0x80, 0x78, 0x76, 0x75, 0x72, 0x6a, 0x69, 0x6c, 0x70, 0x75, 0x76,
+			0x7d, 0x7c, 0x7b, 0x78, 0x7e, 0x88, 0x8f, 0x90, 0x8c, 0x8c, 0x8f,
+			0x94, 0x91, 0x8c, 0x89, 0x89, 0x87, 0x82, 0x7d, 0x78, 0x75, 0x72,
+			0x6e, 0x6b, 0x6e, 0x6f, 0x73, 0x75, 0x78, 0x7d, 0x7b, 0x7c, 0x7b,
+			0x83, 0x8a, 0x90, 0x8e, 0x8c, 0x8f, 0x92, 0x91, 0x8a, 0x8a, 0x8a,
+			0x8a, 0x82, 0x7c, 0x79, 0x77, 0x74, 0x6e, 0x6b, 0x6f, 0x73, 0x72,
+			0x72, 0x72, 0x7a, 0x7d, 0x7e, 0x7b, 0x7f, 0x86, 0x8c, 0x8f, 0x8d,
+			0x8e, 0x91, 0x93, 0x8c, 0x8a, 0x8a, 0x8b, 0x86, 0x80, 0x7b, 0x7a,
+			0x77, 0x73, 0x6d, 0x6e, 0x72, 0x72, 0x72, 0x73, 0x77, 0x7b, 0x7d,
+			0x7b, 0x7d, 0x83, 0x8b, 0x8b, 0x8c, 0x8e, 0x90, 0x8e, 0x8b, 0x8c,
+			0x8d, 0x8b, 0x84, 0x81, 0x7d, 0x7c, 0x76, 0x74, 0x70, 0x72, 0x73,
+			0x72, 0x6f, 0x70, 0x75, 0x7d, 0x81, 0x7d, 0x7b, 0x7f, 0x88, 0x8c,
+			0x8f, 0x8c, 0x8c, 0x8c, 0x8e, 0x8c, 0x8a, 0x86, 0x85, 0x83, 0x80,
+			0x7b, 0x76, 0x75, 0x74, 0x74, 0x72, 0x72, 0x70, 0x73, 0x76, 0x7c,
+			0x7f, 0x7e, 0x7d, 0x81, 0x87, 0x8b, 0x8c, 0x8b, 0x8a, 0x8b, 0x8c,
+			0x8a, 0x88, 0x85, 0x83, 0x80, 0x7d, 0x7c, 0x79, 0x76, 0x73, 0x72,
+			0x72, 0x72, 0x75, 0x79, 0x7e, 0x7e, 0x7c, 0x7c, 0x82, 0x87, 0x8a,
+			0x88, 0x88, 0x8b, 0x8c, 0x8b, 0x88, 0x87, 0x87, 0x85, 0x81, 0x7e,
+			0x7d, 0x7b, 0x78, 0x75, 0x74, 0x74, 0x74, 0x74, 0x77, 0x7b, 0x7c,
+			0x7c, 0x7c, 0x80, 0x83, 0x85, 0x87, 0x89, 0x89, 0x8a, 0x89, 0x88,
+			0x88, 0x88, 0x84, 0x81, 0x7f, 0x7f, 0x7e, 0x7b, 0x78, 0x76, 0x76,
+			0x77, 0x77, 0x77, 0x79, 0x7a, 0x7b, 0x7d, 0x80, 0x80, 0x82, 0x84,
+			0x87, 0x87, 0x88, 0x87, 0x87, 0x88, 0x87, 0x85, 0x82, 0x81, 0x80,
+			0x80, 0x7e, 0x7b, 0x79, 0x79, 0x79, 0x78, 0x78, 0x79, 0x7b, 0x7c,
+			0x7c, 0x7c, 0x7e, 0x81, 0x83, 0x83, 0x84, 0x85, 0x86, 0x86, 0x86,
+			0x85, 0x85, 0x84, 0x82, 0x80, 0x80, 0x80, 0x7f, 0x7c, 0x7a, 0x7a,
+			0x7b, 0x7b, 0x7a, 0x7a, 0x7b, 0x7d, 0x7d, 0x7d, 0x7f, 0x81, 0x82,
+			0x82, 0x83, 0x84, 0x85, 0x85, 0x84, 0x83, 0x84, 0x84, 0x82, 0x80,
+			0x7f, 0x80, 0x80, 0x7e, 0x7c, 0x7b, 0x7c, 0x7c, 0x7c, 0x7b, 0x7c,
+			0x7d, 0x7d, 0x7d, 0x7e, 0x80, 0x81, 0x81, 0x81, 0x82, 0x83, 0x84,
+			0x83, 0x82, 0x82, 0x82, 0x82, 0x81, 0x80, 0x80, 0x7f, 0x7e, 0x7d,
+			0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7f,
+			0x80, 0x80, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x81, 0x81, 0x81,
+			0x81, 0x81, 0x80, 0x80, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x81, 0x81,
+			0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7f, 0x7e, 0x7e, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x7f, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+		},
+		{ // 9
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80,
+			0x81, 0x81, 0x81, 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81,
+			0x81, 0x80, 0x7f, 0x7f, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7b, 0x7b,
+			0x7b, 0x7b, 0x7c, 0x7c, 0x7d, 0x7d, 0x7e, 0x7f, 0x7f, 0x80, 0x81,
+			0x82, 0x82, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x82, 0x82, 0x81,
+			0x80, 0x7f, 0x7e, 0x7e, 0x7d, 0x7d, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c,
+			0x7c, 0x7d, 0x7e, 0x7e, 0x7f, 0x80, 0x80, 0x81, 0x81, 0x82, 0x82,
+			0x82, 0x82, 0x82, 0x82, 0x82, 0x81, 0x81, 0x80, 0x80, 0x7f, 0x7f,
+			0x7e, 0x7e, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7e, 0x7e,
+			0x7e, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7e,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+			0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x7f, 0x80, 0x7f,
+			0x80, 0x80, 0x80, 0x81, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x81,
+			0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x80, 0x7f, 0x7f, 0x7f, 0x7d,
+			0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7d, 0x7e, 0x7e, 0x7f, 0x80,
+			0x7f, 0x81, 0x7d, 0x7f, 0x7e, 0x7f, 0x81, 0x80, 0x81, 0x80, 0x80,
+			0x7f, 0x80, 0x82, 0x81, 0x82, 0x82, 0x80, 0x81, 0x7f, 0x81, 0x7f,
+			0x82, 0x7f, 0x80, 0x7f, 0x7c, 0x7e, 0x7e, 0x7e, 0x7d, 0x7e, 0x7c,
+			0x7c, 0x7c, 0x7d, 0x7b, 0x80, 0x7c, 0x7e, 0x7d, 0x7e, 0x7c, 0x7f,
+			0x7f, 0x7f, 0x81, 0x7f, 0x7f, 0x80, 0x80, 0x7f, 0x82, 0x80, 0x80,
+			0x80, 0x81, 0x7e, 0x81, 0x80, 0x7f, 0x80, 0x80, 0x7e, 0x7f, 0x80,
+			0x7e, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x81, 0x80, 0x81,
+			0x80, 0x81, 0x80, 0x81, 0x80, 0x80, 0x81, 0x80, 0x7f, 0x82, 0x7e,
+			0x80, 0x80, 0x7e, 0x80, 0x7e, 0x80, 0x7d, 0x80, 0x7d, 0x80, 0x7e,
+			0x80, 0x7d, 0x81, 0x7e, 0x7d, 0x81, 0x7c, 0x80, 0x7f, 0x7e, 0x80,
+			0x7d, 0x81, 0x7e, 0x7d, 0x82, 0x7b, 0x81, 0x7f, 0x7f, 0x7d, 0x83,
+			0x7e, 0x7d, 0x85, 0x7b, 0x82, 0x81, 0x7f, 0x7f, 0x81, 0x82, 0x7a,
+			0x87, 0x7c, 0x82, 0x80, 0x82, 0x7d, 0x80, 0x85, 0x76, 0x8a, 0x79,
+			0x83, 0x7d, 0x81, 0x80, 0x7a, 0x87, 0x78, 0x80, 0x83, 0x7a, 0x7f,
+			0x82, 0x7b, 0x7d, 0x83, 0x7c, 0x7b, 0x86, 0x78, 0x7f, 0x81, 0x7d,
+			0x7b, 0x83, 0x7c, 0x7c, 0x83, 0x7d, 0x7c, 0x83, 0x7e, 0x7c, 0x84,
+			0x7b, 0x82, 0x7e, 0x83, 0x7c, 0x84, 0x7e, 0x82, 0x7e, 0x82, 0x82,
+			0x7b, 0x87, 0x7c, 0x80, 0x82, 0x7f, 0x7e, 0x84, 0x7e, 0x7f, 0x80,
+			0x83, 0x79, 0x84, 0x80, 0x79, 0x86, 0x7c, 0x7d, 0x83, 0x7d, 0x7d,
+			0x80, 0x80, 0x79, 0x84, 0x7b, 0x7e, 0x80, 0x7c, 0x7f, 0x7e, 0x80,
+			0x7b, 0x82, 0x7b, 0x81, 0x7d, 0x81, 0x7c, 0x81, 0x7c, 0x7f, 0x81,
+			0x7c, 0x80, 0x82, 0x7b, 0x83, 0x7e, 0x7e, 0x82, 0x7c, 0x83, 0x7c,
+			0x85, 0x7a, 0x85, 0x7e, 0x81, 0x81, 0x81, 0x82, 0x7d, 0x86, 0x7a,
+			0x85, 0x7f, 0x80, 0x84, 0x7b, 0x83, 0x7e, 0x7e, 0x81, 0x7b, 0x82,
+			0x7c, 0x7f, 0x7f, 0x7b, 0x81, 0x79, 0x84, 0x78, 0x84, 0x7a, 0x7e,
+			0x80, 0x7a, 0x84, 0x7a, 0x84, 0x7d, 0x7c, 0x81, 0x7c, 0x7c, 0x82,
+			0x7b, 0x82, 0x7b, 0x84, 0x78, 0x86, 0x79, 0x82, 0x81, 0x7f, 0x80,
+			0x7f, 0x86, 0x75, 0x8c, 0x7b, 0x81, 0x84, 0x7d, 0x81, 0x81, 0x7b,
+			0x83, 0x7d, 0x82, 0x7d, 0x83, 0x82, 0x7c, 0x84, 0x7e, 0x80, 0x82,
+			0x7b, 0x89, 0x78, 0x83, 0x7f, 0x7e, 0x80, 0x7b, 0x87, 0x75, 0x88,
+			0x75, 0x82, 0x7d, 0x7c, 0x80, 0x82, 0x7e, 0x7f, 0x84, 0x7b, 0x81,
+			0x7f, 0x80, 0x7f, 0x81, 0x80, 0x7b, 0x86, 0x76, 0x85, 0x7b, 0x7f,
+			0x83, 0x77, 0x84, 0x7a, 0x80, 0x7a, 0x88, 0x78, 0x88, 0x7c, 0x86,
+			0x7c, 0x84, 0x80, 0x83, 0x82, 0x7f, 0x88, 0x7a, 0x8a, 0x7c, 0x85,
+			0x80, 0x84, 0x78, 0x88, 0x7a, 0x7e, 0x84, 0x7b, 0x81, 0x7c, 0x80,
+			0x7c, 0x7c, 0x80, 0x7b, 0x80, 0x7a, 0x7f, 0x7c, 0x7c, 0x84, 0x7b,
+			0x85, 0x7f, 0x81, 0x7c, 0x85, 0x7a, 0x86, 0x7f, 0x82, 0x82, 0x7f,
+			0x81, 0x7f, 0x80, 0x7e, 0x84, 0x7b, 0x81, 0x7f, 0x7a, 0x80, 0x80,
+			0x7a, 0x88, 0x7a, 0x7f, 0x81, 0x7a, 0x7c, 0x82, 0x78, 0x80, 0x7f,
+			0x7a, 0x7f, 0x7a, 0x7c, 0x81, 0x75, 0x80, 0x82, 0x73, 0x82, 0x7d,
+			0x7a, 0x7d, 0x84, 0x77, 0x84, 0x7a, 0x7e, 0x81, 0x7a, 0x7c, 0x84,
+			0x7a, 0x80, 0x86, 0x7a, 0x84, 0x82, 0x7b, 0x84, 0x82, 0x78, 0x8a,
+			0x78, 0x7e, 0x85, 0x76, 0x82, 0x80, 0x7c, 0x7f, 0x85, 0x76, 0x82,
+			0x83, 0x73, 0x8d, 0x7a, 0x7d, 0x89, 0x76, 0x81, 0x7d, 0x7e, 0x7c,
+			0x7d, 0x83, 0x76, 0x85, 0x75, 0x89, 0x77, 0x81, 0x88, 0x76, 0x87,
+			0x7d, 0x80, 0x7f, 0x85, 0x7a, 0x84, 0x84, 0x72, 0x89, 0x7f, 0x6f,
+			0x8e, 0x73, 0x7a, 0x82, 0x79, 0x78, 0x87, 0x76, 0x80, 0x86, 0x77,
+			0x85, 0x82, 0x7c, 0x86, 0x81, 0x7b, 0x8c, 0x74, 0x89, 0x7b, 0x81,
+			0x81, 0x7d, 0x81, 0x7c, 0x84, 0x75, 0x8b, 0x7b, 0x7c, 0x8b, 0x7c,
+			0x7e, 0x87, 0x80, 0x7c, 0x8b, 0x78, 0x84, 0x80, 0x78, 0x84, 0x73,
+			0x83, 0x73, 0x80, 0x76, 0x7b, 0x78, 0x79, 0x80, 0x75, 0x87, 0x78,
+			0x83, 0x7c, 0x85, 0x77, 0x87, 0x7a, 0x80, 0x81, 0x7e, 0x7f, 0x7f,
+			0x82, 0x7b, 0x8b, 0x76, 0x8e, 0x7c, 0x83, 0x84, 0x82, 0x7e, 0x85,
+			0x7e, 0x7c, 0x85, 0x77, 0x83, 0x7d, 0x80, 0x7a, 0x87, 0x77, 0x86,
+			0x7f, 0x7c, 0x89, 0x73, 0x8c, 0x74, 0x84, 0x7e, 0x7a, 0x85, 0x76,
+			0x88, 0x76, 0x88, 0x7b, 0x81, 0x86, 0x79, 0x89, 0x7d, 0x82, 0x80,
+			0x84, 0x7a, 0x81, 0x81, 0x74, 0x84, 0x77, 0x79, 0x7c, 0x77, 0x77,
+			0x78, 0x77, 0x76, 0x77, 0x77, 0x78, 0x76, 0x79, 0x7c, 0x77, 0x82,
+			0x82, 0x80, 0x8e, 0x88, 0x91, 0x91, 0x97, 0x98, 0x98, 0xa0, 0x98,
+			0x9b, 0x9a, 0x93, 0x8f, 0x8b, 0x80, 0x7c, 0x72, 0x6e, 0x62, 0x5f,
+			0x5b, 0x50, 0x57, 0x4c, 0x54, 0x51, 0x56, 0x58, 0x60, 0x66, 0x6e,
+			0x7c, 0x7d, 0x94, 0x91, 0xa3, 0xa8, 0xae, 0xb9, 0xb6, 0xbe, 0xb8,
+			0xb7, 0xb1, 0xab, 0x9e, 0x98, 0x90, 0x80, 0x80, 0x71, 0x70, 0x69,
+			0x66, 0x64, 0x5c, 0x5f, 0x57, 0x56, 0x4f, 0x54, 0x47, 0x4e, 0x4d,
+			0x49, 0x55, 0x58, 0x62, 0x6d, 0x84, 0x87, 0xa2, 0xaa, 0xb4, 0xc3,
+			0xc3, 0xc9, 0xc4, 0xc3, 0xb4, 0xb0, 0x9e, 0x97, 0x88, 0x7c, 0x7a,
+			0x6d, 0x6d, 0x6e, 0x6b, 0x6c, 0x74, 0x6c, 0x72, 0x6d, 0x68, 0x66,
+			0x5d, 0x59, 0x55, 0x4e, 0x48, 0x4f, 0x47, 0x52, 0x63, 0x60, 0x82,
+			0x86, 0x98, 0xaf, 0xaf, 0xc5, 0xc4, 0xc8, 0xc8, 0xbf, 0xb4, 0xa9,
+			0x99, 0x89, 0x82, 0x70, 0x6f, 0x67, 0x66, 0x65, 0x6f, 0x70, 0x72,
+			0x86, 0x71, 0x87, 0x7b, 0x73, 0x77, 0x65, 0x61, 0x5a, 0x50, 0x46,
+			0x4b, 0x44, 0x4a, 0x61, 0x61, 0x77, 0x94, 0x8d, 0xb4, 0xb7, 0xbd,
+			0xce, 0xc5, 0xc4, 0xbf, 0xb3, 0xa1, 0x9e, 0x83, 0x80, 0x76, 0x66,
+			0x6a, 0x62, 0x64, 0x6e, 0x71, 0x7e, 0x83, 0x86, 0x89, 0x82, 0x80,
+			0x76, 0x6e, 0x66, 0x5e, 0x51, 0x50, 0x47, 0x3d, 0x49, 0x48, 0x4e,
+			0x6d, 0x73, 0x84, 0xa4, 0xa4, 0xb9, 0xc4, 0xc4, 0xc8, 0xc7, 0xbb,
+			0xb6, 0xa6, 0x97, 0x8b, 0x7a, 0x72, 0x6c, 0x66, 0x66, 0x69, 0x69,
+			0x75, 0x7a, 0x81, 0x8c, 0x8b, 0x8c, 0x90, 0x81, 0x7f, 0x74, 0x67,
+			0x63, 0x57, 0x52, 0x4c, 0x49, 0x43, 0x47, 0x4e, 0x52, 0x61, 0x7f,
+			0x78, 0x9f, 0xae, 0xa6, 0xc9, 0xbc, 0xbf, 0xc3, 0xb8, 0xad, 0xa8,
+			0x97, 0x89, 0x82, 0x73, 0x71, 0x6b, 0x69, 0x71, 0x71, 0x77, 0x80,
+			0x82, 0x89, 0x8f, 0x8e, 0x8d, 0x8b, 0x7d, 0x76, 0x6f, 0x5e, 0x5d,
+			0x55, 0x53, 0x51, 0x4b, 0x52, 0x4d, 0x4e, 0x63, 0x56, 0x75, 0x89,
+			0x75, 0xb1, 0xa1, 0xad, 0xc7, 0xb5, 0xc1, 0xbc, 0xb5, 0xa5, 0xa5,
+			0x90, 0x82, 0x82, 0x6f, 0x72, 0x70, 0x70, 0x75, 0x78, 0x7f, 0x85,
+			0x87, 0x8c, 0x8f, 0x8b, 0x88, 0x87, 0x79, 0x75, 0x6e, 0x63, 0x62,
+			0x5e, 0x5b, 0x5e, 0x5d, 0x59, 0x5e, 0x58, 0x54, 0x5c, 0x59, 0x64,
+			0x89, 0x74, 0x9b, 0xb0, 0x99, 0xc4, 0xb8, 0xb7, 0xc0, 0xae, 0xa5,
+			0x9f, 0x93, 0x81, 0x7e, 0x77, 0x6c, 0x72, 0x71, 0x76, 0x7c, 0x81,
+			0x88, 0x8b, 0x8d, 0x8a, 0x85, 0x83, 0x79, 0x76, 0x74, 0x71, 0x6b,
+			0x69, 0x6c, 0x67, 0x6c, 0x65, 0x68, 0x66, 0x63, 0x5e, 0x57, 0x5a,
+			0x5c, 0x4f, 0x7d, 0x7a, 0x81, 0xb7, 0x9e, 0xb8, 0xc3, 0xbc, 0xbe,
+			0xb5, 0xab, 0x97, 0x91, 0x7d, 0x70, 0x76, 0x6a, 0x6e, 0x77, 0x7a,
+			0x84, 0x86, 0x8e, 0x90, 0x8d, 0x8e, 0x83, 0x79, 0x74, 0x6e, 0x69,
+			0x6f, 0x6c, 0x71, 0x77, 0x71, 0x79, 0x74, 0x71, 0x71, 0x65, 0x66,
+			0x54, 0x5a, 0x4a, 0x50, 0x59, 0x5d, 0x92, 0x7a, 0xb0, 0xbb, 0xad,
+			0xca, 0xb7, 0xbb, 0xae, 0x9f, 0x93, 0x7e, 0x7e, 0x6e, 0x6f, 0x78,
+			0x78, 0x85, 0x89, 0x91, 0x93, 0x91, 0x92, 0x8a, 0x82, 0x79, 0x71,
+			0x69, 0x64, 0x6c, 0x6b, 0x78, 0x7a, 0x80, 0x7f, 0x7f, 0x7d, 0x73,
+			0x6e, 0x62, 0x5a, 0x5b, 0x50, 0x51, 0x49, 0x50, 0x64, 0x6f, 0x9c,
+			0x97, 0xbc, 0xc3, 0xb6, 0xc2, 0xab, 0xa6, 0x99, 0x8a, 0x83, 0x74,
+			0x7c, 0x79, 0x7a, 0x89, 0x87, 0x92, 0x93, 0x93, 0x8d, 0x85, 0x80,
+			0x78, 0x71, 0x71, 0x69, 0x6c, 0x6f, 0x75, 0x7b, 0x80, 0x89, 0x82,
+			0x80, 0x7d, 0x73, 0x6c, 0x6b, 0x64, 0x60, 0x57, 0x64, 0x5b, 0x61,
+			0x5f, 0x5b, 0x6a, 0x7b, 0x9e, 0x96, 0xb3, 0xb3, 0xae, 0xaf, 0xa0,
+			0x9d, 0x8e, 0x8c, 0x88, 0x82, 0x8a, 0x87, 0x8c, 0x8d, 0x8c, 0x8e,
+			0x86, 0x8b, 0x80, 0x7c, 0x7c, 0x74, 0x74, 0x73, 0x78, 0x79, 0x76,
+			0x7c, 0x7e, 0x80, 0x7e, 0x77, 0x78, 0x73, 0x6e, 0x69, 0x68, 0x6b,
+			0x6a, 0x6e, 0x67, 0x66, 0x66, 0x65, 0x5a, 0x53, 0x65, 0x8b, 0x96,
+			0x9a, 0xb7, 0xb5, 0xaf, 0xa4, 0xa3, 0x98, 0x89, 0x89, 0x88, 0x85,
+			0x84, 0x8b, 0x91, 0x8f, 0x90, 0x8b, 0x86, 0x85, 0x7b, 0x79, 0x76,
+			0x78, 0x77, 0x79, 0x78, 0x7c, 0x7e, 0x7d, 0x7a, 0x7b, 0x75, 0x76,
+			0x70, 0x6f, 0x72, 0x70, 0x71, 0x71, 0x73, 0x6f, 0x6f, 0x68, 0x63,
+			0x62, 0x61, 0x5f, 0x5d, 0x57, 0x92, 0xa1, 0xa6, 0xb8, 0xb9, 0xbc,
+			0x97, 0x97, 0x90, 0x88, 0x81, 0x82, 0x91, 0x89, 0x92, 0x93, 0x94,
+			0x96, 0x85, 0x86, 0x7a, 0x74, 0x73, 0x71, 0x74, 0x77, 0x7e, 0x7d,
+			0x80, 0x7d, 0x7c, 0x78, 0x70, 0x7a, 0x79, 0x7a, 0x76, 0x75, 0x78,
+			0x73, 0x73, 0x70, 0x70, 0x6b, 0x65, 0x5f, 0x5f, 0x61, 0x5a, 0x55,
+			0x5e, 0x8a, 0xae, 0xa8, 0xaf, 0xb3, 0xb2, 0x98, 0x82, 0x86, 0x82,
+			0x89, 0x85, 0x92, 0x9a, 0x98, 0x98, 0x91, 0x90, 0x84, 0x79, 0x73,
+			0x73, 0x78, 0x79, 0x7d, 0x81, 0x83, 0x80, 0x7b, 0x77, 0x72, 0x73,
+			0x73, 0x7b, 0x79, 0x7d, 0x83, 0x81, 0x84, 0x7a, 0x7c, 0x75, 0x71,
+			0x70, 0x6d, 0x70, 0x6f, 0x6a, 0x69, 0x6b, 0x6e, 0x6f, 0x6c, 0x66,
+			0x6e, 0x81, 0x91, 0xa5, 0xa8, 0xab, 0xa5, 0x9b, 0x91, 0x88, 0x8a,
+			0x8a, 0x8e, 0x8f, 0x92, 0x94, 0x8f, 0x8a, 0x84, 0x82, 0x7b, 0x74,
+			0x77, 0x7b, 0x7f, 0x7e, 0x7f, 0x7e, 0x7c, 0x78, 0x77, 0x74, 0x76,
+			0x77, 0x81, 0x87, 0x88, 0x82, 0x77, 0x75, 0x6f, 0x70, 0x6c, 0x6f,
+			0x71, 0x6f, 0x66, 0x62, 0x66, 0x6a, 0x64, 0x5a, 0x60, 0x74, 0xa3,
+			0xb4, 0xb1, 0xa4, 0x9f, 0x9d, 0x85, 0x79, 0x7b, 0x90, 0x9a, 0x99,
+			0x93, 0x96, 0x98, 0x90, 0x83, 0x77, 0x77, 0x79, 0x79, 0x79, 0x7c,
+			0x82, 0x82, 0x7c, 0x79, 0x76, 0x75, 0x74, 0x76, 0x76, 0x7a, 0x7c,
+			0x7f, 0x82, 0x7f, 0x84, 0x7f, 0x82, 0x81, 0x7e, 0x7b, 0x71, 0x75,
+			0x74, 0x7a, 0x78, 0x74, 0x77, 0x71, 0x6e, 0x65, 0x66, 0x6b, 0x6e,
+			0x6f, 0x6e, 0x7c, 0x90, 0xa8, 0xb1, 0xaa, 0x9d, 0x8f, 0x89, 0x83,
+			0x82, 0x88, 0x92, 0x99, 0x99, 0x92, 0x8c, 0x85, 0x80, 0x7d, 0x7b,
+			0x7c, 0x7b, 0x7e, 0x7f, 0x7f, 0x7c, 0x7a, 0x79, 0x79, 0x77, 0x74,
+			0x76, 0x78, 0x7c, 0x7b, 0x7c, 0x81, 0x86, 0x88, 0x82, 0x7c, 0x75,
+			0x73, 0x70, 0x72, 0x77, 0x79, 0x79, 0x71, 0x6e, 0x68, 0x69, 0x6b,
+			0x69, 0x64, 0x60, 0x75, 0x9a, 0xb8, 0xba, 0xa5, 0x8f, 0x86, 0x83,
+			0x7f, 0x7d, 0x85, 0x95, 0xa1, 0x9f, 0x93, 0x88, 0x84, 0x83, 0x7d,
+			0x77, 0x76, 0x7d, 0x83, 0x83, 0x7f, 0x7c, 0x7b, 0x7c, 0x7a, 0x76,
+			0x73, 0x74, 0x7b, 0x7d, 0x7c, 0x77, 0x77, 0x79, 0x7a, 0x7a, 0x79,
+			0x7b, 0x7d, 0x83, 0x87, 0x8c, 0x8a, 0x84, 0x7c, 0x74, 0x73, 0x74,
+			0x7b, 0x7e, 0x7f, 0x7c, 0x76, 0x6f, 0x69, 0x6a, 0x6f, 0x72, 0x72,
+			0x6e, 0x75, 0x87, 0xa5, 0xb4, 0xac, 0x95, 0x7e, 0x7c, 0x7d, 0x84,
+			0x83, 0x8a, 0x94, 0x9b, 0x99, 0x8b, 0x7f, 0x76, 0x79, 0x7b, 0x7c,
+			0x7c, 0x7c, 0x80, 0x82, 0x81, 0x7c, 0x78, 0x77, 0x78, 0x79, 0x78,
+			0x77, 0x78, 0x79, 0x7d, 0x7d, 0x7b, 0x7a, 0x7d, 0x80, 0x80, 0x7c,
+			0x7c, 0x7e, 0x81, 0x82, 0x83, 0x8b, 0x8e, 0x8c, 0x7a, 0x6f, 0x6c,
+			0x7a, 0x86, 0x89, 0x84, 0x7c, 0x7b, 0x77, 0x75, 0x6d, 0x6c, 0x6e,
+			0x76, 0x78, 0x72, 0x69, 0x6f, 0x8d, 0xae, 0xbc, 0xa6, 0x85, 0x6f,
+			0x73, 0x82, 0x89, 0x8a, 0x86, 0x8d, 0x94, 0x95, 0x8a, 0x7a, 0x75,
+			0x76, 0x7e, 0x7f, 0x7c, 0x7a, 0x7a, 0x7f, 0x82, 0x81, 0x7c, 0x76,
+			0x76, 0x79, 0x7c, 0x7a, 0x78, 0x78, 0x7b, 0x7f, 0x80, 0x7f, 0x7b,
+			0x7a, 0x7c, 0x7e, 0x7f, 0x7f, 0x80, 0x81, 0x82, 0x82, 0x80, 0x7f,
+			0x7f, 0x81, 0x81, 0x80, 0x7f, 0x80, 0x83, 0x83, 0x83, 0x82, 0x81,
+			0x82, 0x82, 0x83, 0x81, 0x81, 0x80, 0x85, 0x8a, 0x8a, 0x89, 0x82,
+			0x7e, 0x76, 0x76, 0x75, 0x7a, 0x7e, 0x7f, 0x7e, 0x79, 0x75, 0x70,
+			0x6f, 0x6e, 0x6f, 0x71, 0x75, 0x76, 0x75, 0x71, 0x78, 0x87, 0x9d,
+			0xa7, 0xa1, 0x8f, 0x7a, 0x74, 0x79, 0x85, 0x8c, 0x8c, 0x8a, 0x8a,
+			0x8d, 0x8b, 0x85, 0x7a, 0x74, 0x74, 0x7a, 0x81, 0x83, 0x83, 0x80,
+			0x7f, 0x7f, 0x7e, 0x7b, 0x76, 0x71, 0x74, 0x79, 0x7f, 0x81, 0x7f,
+			0x7d, 0x7a, 0x7a, 0x7c, 0x7c, 0x7d, 0x7b, 0x7d, 0x7f, 0x82, 0x83,
+			0x81, 0x7f, 0x7d, 0x7e, 0x80, 0x82, 0x81, 0x7f, 0x7e, 0x80, 0x82,
+			0x84, 0x82, 0x81, 0x7f, 0x7f, 0x7f, 0x82, 0x80, 0x81, 0x7e, 0x81,
+			0x80, 0x81, 0x7e, 0x83, 0x80, 0x83, 0x7f, 0x87, 0x93, 0x94, 0x92,
+			0x76, 0x6e, 0x64, 0x77, 0x7f, 0x89, 0x82, 0x78, 0x6e, 0x66, 0x6d,
+			0x6c, 0x73, 0x71, 0x70, 0x6e, 0x69, 0x76, 0x8c, 0xa8, 0xb7, 0xa8,
+			0x8f, 0x6f, 0x69, 0x6e, 0x86, 0x93, 0x99, 0x91, 0x88, 0x88, 0x87,
+			0x89, 0x7e, 0x76, 0x6d, 0x70, 0x79, 0x85, 0x8b, 0x87, 0x80, 0x79,
+			0x79, 0x7a, 0x7a, 0x75, 0x72, 0x73, 0x7a, 0x82, 0x86, 0x84, 0x7d,
+			0x77, 0x76, 0x78, 0x7c, 0x7e, 0x7d, 0x7d, 0x7d, 0x80, 0x83, 0x84,
+			0x81, 0x7e, 0x7b, 0x7c, 0x7f, 0x81, 0x81, 0x80, 0x7e, 0x7e, 0x7f,
+			0x81, 0x82, 0x81, 0x81, 0x80, 0x81, 0x80, 0x82, 0x82, 0x82, 0x82,
+			0x80, 0x81, 0x81, 0x82, 0x82, 0x81, 0x7f, 0x7e, 0x7f, 0x80, 0x82,
+			0x82, 0x80, 0x7f, 0x7e, 0x7f, 0x80, 0x81, 0x80, 0x7e, 0x7e, 0x7f,
+			0x84, 0x86, 0x89, 0x86, 0x81, 0x7b, 0x78, 0x7b, 0x7d, 0x82, 0x81,
+			0x80, 0x7b, 0x79, 0x76, 0x75, 0x76, 0x75, 0x76, 0x75, 0x76, 0x75,
+			0x77, 0x76, 0x76, 0x74, 0x74, 0x79, 0x84, 0x95, 0xa2, 0xa8, 0x9c,
+			0x8c, 0x78, 0x72, 0x75, 0x82, 0x8e, 0x92, 0x8f, 0x88, 0x85, 0x83,
+			0x83, 0x80, 0x7c, 0x76, 0x73, 0x74, 0x7a, 0x81, 0x86, 0x84, 0x80,
+			0x79, 0x75, 0x74, 0x76, 0x79, 0x7b, 0x7c, 0x7c, 0x7e, 0x7f, 0x81,
+			0x7f, 0x7e, 0x7d, 0x7d, 0x7d, 0x7f, 0x80, 0x82, 0x81, 0x81, 0x7f,
+			0x80, 0x81, 0x81, 0x82, 0x81, 0x86, 0x87, 0x8b, 0x84, 0x7f, 0x77,
+			0x76, 0x78, 0x7d, 0x84, 0x84, 0x82, 0x7a, 0x77, 0x74, 0x77, 0x79,
+			0x79, 0x78, 0x76, 0x76, 0x76, 0x79, 0x78, 0x76, 0x72, 0x72, 0x7d,
+			0x8f, 0xa4, 0xab, 0xa6, 0x91, 0x7c, 0x6f, 0x70, 0x7c, 0x89, 0x92,
+			0x8f, 0x88, 0x7f, 0x7d, 0x7f, 0x83, 0x81, 0x7c, 0x75, 0x72, 0x74,
+			0x7b, 0x83, 0x87, 0x86, 0x80, 0x79, 0x75, 0x75, 0x78, 0x7d, 0x7f,
+			0x80, 0x7e, 0x7e, 0x7f, 0x80, 0x82, 0x81, 0x80, 0x7c, 0x7f, 0x82,
+			0x88, 0x89, 0x86, 0x80, 0x79, 0x78, 0x79, 0x80, 0x83, 0x85, 0x80,
+			0x7b, 0x76, 0x76, 0x77, 0x79, 0x7a, 0x78, 0x76, 0x73, 0x73, 0x76,
+			0x77, 0x78, 0x74, 0x76, 0x80, 0x93, 0xa7, 0xaf, 0xaa, 0x94, 0x7e,
+			0x6d, 0x6e, 0x78, 0x88, 0x93, 0x93, 0x8c, 0x82, 0x7e, 0x7d, 0x80,
+			0x81, 0x7e, 0x79, 0x72, 0x72, 0x75, 0x7e, 0x85, 0x88, 0x84, 0x7d,
+			0x77, 0x75, 0x76, 0x7a, 0x7d, 0x80, 0x80, 0x7f, 0x7e, 0x7d, 0x80,
+			0x81, 0x88, 0x89, 0x8c, 0x85, 0x7f, 0x76, 0x72, 0x76, 0x7b, 0x85,
+			0x86, 0x87, 0x7c, 0x77, 0x71, 0x71, 0x73, 0x73, 0x76, 0x73, 0x76,
+			0x72, 0x72, 0x6f, 0x75, 0x84, 0x98, 0xad, 0xb2, 0xac, 0x94, 0x7f,
+			0x6d, 0x6d, 0x7a, 0x88, 0x94, 0x94, 0x8f, 0x84, 0x80, 0x7e, 0x81,
+			0x82, 0x7f, 0x79, 0x72, 0x70, 0x74, 0x7d, 0x85, 0x89, 0x86, 0x80,
+			0x77, 0x73, 0x74, 0x78, 0x7e, 0x81, 0x84, 0x84, 0x86, 0x85, 0x84,
+			0x80, 0x7c, 0x78, 0x77, 0x7a, 0x7d, 0x81, 0x82, 0x81, 0x7d, 0x7a,
+			0x77, 0x75, 0x74, 0x72, 0x71, 0x72, 0x72, 0x76, 0x75, 0x74, 0x70,
+			0x77, 0x85, 0x9d, 0xb0, 0xb7, 0xaf, 0x96, 0x7f, 0x6c, 0x6d, 0x75,
+			0x86, 0x91, 0x96, 0x92, 0x89, 0x84, 0x80, 0x80, 0x7f, 0x7d, 0x78,
+			0x74, 0x70, 0x73, 0x78, 0x80, 0x86, 0x87, 0x85, 0x7f, 0x7b, 0x78,
+			0x7b, 0x7d, 0x81, 0x82, 0x80, 0x7d, 0x7a, 0x7b, 0x7c, 0x7f, 0x7f,
+			0x7e, 0x7b, 0x78, 0x74, 0x72, 0x72, 0x71, 0x73, 0x74, 0x76, 0x76,
+			0x73, 0x70, 0x6f, 0x7a, 0x8d, 0xa8, 0xb9, 0xbe, 0xae, 0x94, 0x7a,
+			0x69, 0x6b, 0x76, 0x88, 0x93, 0x96, 0x8f, 0x87, 0x7f, 0x7c, 0x7d,
+			0x7e, 0x7e, 0x7b, 0x76, 0x72, 0x73, 0x78, 0x80, 0x89, 0x8f, 0x8f,
+			0x88, 0x7d, 0x72, 0x6c, 0x6d, 0x74, 0x7e, 0x84, 0x86, 0x80, 0x79,
+			0x72, 0x6e, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x6d, 0x6c, 0x6c, 0x78,
+			0x8c, 0xa9, 0xbe, 0xc6, 0xb9, 0x9d, 0x81, 0x6b, 0x69, 0x71, 0x83,
+			0x90, 0x98, 0x95, 0x8f, 0x87, 0x82, 0x7f, 0x7e, 0x7c, 0x79, 0x75,
+			0x73, 0x77, 0x7e, 0x88, 0x8c, 0x8c, 0x84, 0x79, 0x6f, 0x6b, 0x6d,
+			0x72, 0x78, 0x79, 0x77, 0x71, 0x6d, 0x6a, 0x6c, 0x6e, 0x6f, 0x6b,
+			0x67, 0x6b, 0x7d, 0x9c, 0xbb, 0xcd, 0xc8, 0xb1, 0x8f, 0x74, 0x68,
+			0x6d, 0x7b, 0x89, 0x93, 0x93, 0x8f, 0x8b, 0x89, 0x88, 0x87, 0x83,
+			0x7d, 0x77, 0x72, 0x73, 0x79, 0x82, 0x88, 0x89, 0x84, 0x7c, 0x75,
+			0x70, 0x71, 0x72, 0x74, 0x73, 0x71, 0x6d, 0x6a, 0x6a, 0x6b, 0x6c,
+			0x69, 0x66, 0x69, 0x77, 0x91, 0xaf, 0xc6, 0xca, 0xb9, 0x9c, 0x7e,
+			0x6e, 0x6d, 0x79, 0x85, 0x8e, 0x90, 0x8d, 0x8a, 0x8a, 0x8d, 0x8e,
+			0x8a, 0x82, 0x79, 0x71, 0x6f, 0x70, 0x7a, 0x82, 0x8c, 0x8c, 0x89,
+			0x7d, 0x72, 0x6c, 0x68, 0x6d, 0x6e, 0x74, 0x71, 0x70, 0x69, 0x67,
+			0x65, 0x64, 0x63, 0x66, 0x73, 0x8a, 0xa9, 0xc0, 0xca, 0xbe, 0xa7,
+			0x89, 0x76, 0x6e, 0x75, 0x7f, 0x8a, 0x8d, 0x8c, 0x89, 0x89, 0x8e,
+			0x91, 0x91, 0x8a, 0x7f, 0x73, 0x6d, 0x6d, 0x77, 0x80, 0x8a, 0x89,
+			0x87, 0x7b, 0x74, 0x6e, 0x6f, 0x70, 0x71, 0x71, 0x6c, 0x6a, 0x64,
+			0x65, 0x61, 0x63, 0x60, 0x69, 0x78, 0x96, 0xb3, 0xc9, 0xcc, 0xba,
+			0x9f, 0x80, 0x72, 0x70, 0x7c, 0x86, 0x8d, 0x8b, 0x86, 0x83, 0x85,
+			0x8d, 0x93, 0x96, 0x8d, 0x82, 0x72, 0x6c, 0x6a, 0x75, 0x80, 0x8a,
+			0x8c, 0x86, 0x7d, 0x71, 0x6f, 0x6c, 0x73, 0x72, 0x74, 0x6d, 0x68,
+			0x63, 0x61, 0x61, 0x61, 0x62, 0x66, 0x78, 0x92, 0xb1, 0xc7, 0xcd,
+			0xbe, 0xa4, 0x86, 0x74, 0x70, 0x79, 0x85, 0x8d, 0x8c, 0x87, 0x81,
+			0x81, 0x87, 0x90, 0x95, 0x92, 0x87, 0x79, 0x6e, 0x6d, 0x74, 0x7f,
+			0x88, 0x88, 0x82, 0x77, 0x6f, 0x6d, 0x72, 0x78, 0x7b, 0x78, 0x6f,
+			0x65, 0x5f, 0x5d, 0x5f, 0x61, 0x61, 0x65, 0x71, 0x8b, 0xa8, 0xc3,
+			0xce, 0xc5, 0xad, 0x8e, 0x79, 0x70, 0x77, 0x82, 0x8d, 0x8f, 0x8a,
+			0x82, 0x7e, 0x82, 0x8a, 0x92, 0x93, 0x8c, 0x80, 0x74, 0x6f, 0x73,
+			0x7d, 0x87, 0x8b, 0x85, 0x79, 0x6d, 0x67, 0x6a, 0x73, 0x7a, 0x7b,
+			0x73, 0x69, 0x5f, 0x5b, 0x5b, 0x5e, 0x61, 0x65, 0x72, 0x85, 0xa4,
+			0xbb, 0xcc, 0xc7, 0xb6, 0x9b, 0x84, 0x78, 0x77, 0x80, 0x88, 0x8e,
+			0x8c, 0x87, 0x81, 0x82, 0x85, 0x8b, 0x8c, 0x8a, 0x83, 0x7a, 0x73,
+			0x70, 0x77, 0x82, 0x8e, 0x91, 0x87, 0x76, 0x63, 0x5e, 0x61, 0x71,
+			0x7a, 0x7f, 0x76, 0x69, 0x5d, 0x56, 0x5a, 0x5d, 0x66, 0x6b, 0x79,
+			0x87, 0xa0, 0xb5, 0xc4, 0xc4, 0xb7, 0xa2, 0x8a, 0x7e, 0x79, 0x81,
+			0x87, 0x8e, 0x8d, 0x8a, 0x85, 0x82, 0x84, 0x86, 0x88, 0x86, 0x82,
+			0x7b, 0x76, 0x73, 0x78, 0x81, 0x8c, 0x90, 0x87, 0x78, 0x65, 0x5e,
+			0x5d, 0x6a, 0x73, 0x79, 0x73, 0x69, 0x5e, 0x58, 0x5b, 0x60, 0x6a,
+			0x70, 0x7c, 0x88, 0x9d, 0xae, 0xbc, 0xbe, 0xb5, 0xa4, 0x91, 0x86,
+			0x81, 0x85, 0x89, 0x8e, 0x8d, 0x8a, 0x87, 0x85, 0x84, 0x85, 0x85,
+			0x83, 0x80, 0x7a, 0x78, 0x75, 0x79, 0x80, 0x88, 0x8c, 0x86, 0x7b,
+			0x6c, 0x64, 0x61, 0x67, 0x6e, 0x73, 0x6e, 0x66, 0x5d, 0x5a, 0x5d,
+			0x64, 0x6d, 0x74, 0x79, 0x83, 0x91, 0xa4, 0xb3, 0xbb, 0xb8, 0xab,
+			0x9a, 0x8b, 0x85, 0x85, 0x8a, 0x8c, 0x8e, 0x8a, 0x88, 0x85, 0x85,
+			0x85, 0x85, 0x84, 0x80, 0x7d, 0x78, 0x77, 0x75, 0x7c, 0x81, 0x88,
+			0x87, 0x82, 0x76, 0x6a, 0x64, 0x63, 0x69, 0x6b, 0x6e, 0x66, 0x61,
+			0x5b, 0x5d, 0x62, 0x6c, 0x75, 0x7b, 0x83, 0x8c, 0x9a, 0xa8, 0xb2,
+			0xb4, 0xad, 0xa0, 0x92, 0x8a, 0x87, 0x89, 0x8d, 0x8d, 0x8c, 0x88,
+			0x85, 0x84, 0x85, 0x86, 0x85, 0x82, 0x7e, 0x79, 0x77, 0x76, 0x79,
+			0x7d, 0x81, 0x83, 0x83, 0x7e, 0x77, 0x6f, 0x6a, 0x68, 0x6a, 0x6b,
+			0x6a, 0x65, 0x60, 0x5d, 0x60, 0x65, 0x6d, 0x74, 0x7b, 0x7e, 0x86,
+			0x90, 0x9d, 0xaa, 0xaf, 0xae, 0xa2, 0x98, 0x8c, 0x89, 0x89, 0x8d,
+			0x8e, 0x8d, 0x88, 0x84, 0x83, 0x84, 0x86, 0x87, 0x86, 0x80, 0x7d,
+			0x78, 0x78, 0x78, 0x7b, 0x7c, 0x7d, 0x7c, 0x7b, 0x7a, 0x78, 0x76,
+			0x73, 0x71, 0x6d, 0x6c, 0x6a, 0x69, 0x68, 0x66, 0x66, 0x67, 0x6a,
+			0x6e, 0x73, 0x7a, 0x81, 0x8a, 0x93, 0x9e, 0xa5, 0xa7, 0xa4, 0x9d,
+			0x96, 0x8e, 0x8c, 0x8a, 0x8c, 0x8a, 0x88, 0x85, 0x83, 0x82, 0x83,
+			0x85, 0x85, 0x85, 0x82, 0x7f, 0x7b, 0x7a, 0x78, 0x78, 0x78, 0x77,
+			0x77, 0x77, 0x77, 0x78, 0x77, 0x77, 0x76, 0x75, 0x74, 0x73, 0x72,
+			0x72, 0x72, 0x71, 0x72, 0x72, 0x73, 0x74, 0x76, 0x78, 0x7b, 0x7d,
+			0x80, 0x82, 0x88, 0x8f, 0x97, 0x9e, 0xa0, 0x9f, 0x99, 0x93, 0x8d,
+			0x8b, 0x8a, 0x8a, 0x89, 0x86, 0x82, 0x7e, 0x7d, 0x7e, 0x80, 0x81,
+			0x81, 0x7f, 0x7c, 0x79, 0x78, 0x77, 0x77, 0x77, 0x76, 0x75, 0x74,
+			0x74, 0x75, 0x76, 0x76, 0x76, 0x75, 0x74, 0x74, 0x74, 0x74, 0x75,
+			0x76, 0x77, 0x78, 0x7b, 0x7e, 0x80, 0x82, 0x84, 0x86, 0x8b, 0x90,
+			0x95, 0x97, 0x97, 0x93, 0x8e, 0x8a, 0x88, 0x87, 0x87, 0x88, 0x86,
+			0x84, 0x80, 0x7e, 0x7c, 0x7d, 0x7d, 0x7e, 0x7e, 0x7d, 0x7b, 0x79,
+			0x79, 0x78, 0x79, 0x78, 0x78, 0x77, 0x76, 0x76, 0x76, 0x77, 0x78,
+			0x79, 0x79, 0x79, 0x78, 0x78, 0x79, 0x7a, 0x7b, 0x7d, 0x7f, 0x80,
+			0x81, 0x82, 0x82, 0x83, 0x85, 0x87, 0x89, 0x8c, 0x8d, 0x8d, 0x8d,
+			0x8c, 0x8a, 0x89, 0x88, 0x86, 0x85, 0x84, 0x83, 0x81, 0x80, 0x7f,
+			0x7e, 0x7c, 0x7b, 0x7b, 0x7a, 0x79, 0x78, 0x76, 0x75, 0x73, 0x71,
+			0x70, 0x6f, 0x70, 0x72, 0x74, 0x76, 0x78, 0x7a, 0x7c, 0x7f, 0x81,
+			0x84, 0x88, 0x8c, 0x8f, 0x91, 0x91, 0x8f, 0x8c, 0x89, 0x87, 0x85,
+			0x85, 0x84, 0x83, 0x81, 0x7f, 0x7d, 0x7c, 0x7d, 0x7d, 0x7e, 0x7e,
+			0x7e, 0x7d, 0x7c, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b,
+			0x7b, 0x7c, 0x7d, 0x7d, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81,
+			0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e,
+			0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x80, 0x80, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+			0x7f, 0x7f, 0x7f,
+		},
+	},
+}
+
+var beepSound = []byte{
+	0x80, 0x80, 0x81, 0x81, 0x7f, 0x7e, 0x7e, 0x80, 0x7e, 0x79, 0x76,
+	0x78, 0x81, 0x8c, 0x8f, 0x88, 0x7d, 0x78, 0x7b, 0x80, 0x7d, 0x73,
+	0x6c, 0x73, 0x88, 0x9b, 0x9d, 0x8c, 0x76, 0x6d, 0x74, 0x7e, 0x7c,
+	0x70, 0x68, 0x75, 0x8f, 0xa4, 0xa2, 0x89, 0x6f, 0x66, 0x70, 0x7d,
+	0x7e, 0x74, 0x6e, 0x7b, 0x93, 0xa5, 0x9f, 0x84, 0x6a, 0x62, 0x6e,
+	0x7e, 0x81, 0x79, 0x73, 0x7e, 0x95, 0xa4, 0x9a, 0x7e, 0x64, 0x5f,
+	0x6e, 0x81, 0x86, 0x7e, 0x78, 0x82, 0x96, 0xa1, 0x95, 0x78, 0x5f,
+	0x5d, 0x70, 0x84, 0x8a, 0x83, 0x7c, 0x84, 0x94, 0x9d, 0x8f, 0x72,
+	0x5c, 0x5c, 0x72, 0x89, 0x90, 0x87, 0x7f, 0x84, 0x92, 0x98, 0x89,
+	0x6d, 0x59, 0x5e, 0x77, 0x8f, 0x95, 0x8a, 0x80, 0x82, 0x8e, 0x93,
+	0x84, 0x6a, 0x58, 0x61, 0x7c, 0x94, 0x9a, 0x8d, 0x80, 0x80, 0x8a,
+	0x8d, 0x7f, 0x67, 0x5a, 0x65, 0x82, 0x9a, 0x9d, 0x8e, 0x7d, 0x7c,
+	0x84, 0x88, 0x7b, 0x66, 0x5c, 0x6a, 0x88, 0x9f, 0x9f, 0x8d, 0x7b,
+	0x77, 0x7f, 0x84, 0x79, 0x67, 0x60, 0x70, 0x8e, 0xa3, 0xa0, 0x8a,
+	0x76, 0x72, 0x7b, 0x81, 0x78, 0x69, 0x65, 0x76, 0x93, 0xa5, 0x9f,
+	0x86, 0x70, 0x6c, 0x77, 0x7f, 0x79, 0x6c, 0x6a, 0x7c, 0x97, 0xa7,
+	0x9d, 0x81, 0x6b, 0x68, 0x74, 0x7f, 0x7c, 0x71, 0x70, 0x81, 0x9a,
+	0xa6, 0x99, 0x7c, 0x65, 0x64, 0x73, 0x81, 0x80, 0x76, 0x75, 0x84,
+	0x9b, 0xa4, 0x94, 0x76, 0x60, 0x61, 0x74, 0x84, 0x84, 0x7b, 0x79,
+	0x87, 0x9a, 0xa0, 0x8e, 0x70, 0x5c, 0x61, 0x76, 0x88, 0x89, 0x80,
+	0x7d, 0x88, 0x98, 0x9c, 0x88, 0x6a, 0x59, 0x61, 0x79, 0x8d, 0x8e,
+	0x84, 0x7e, 0x88, 0x95, 0x96, 0x82, 0x66, 0x58, 0x63, 0x7e, 0x93,
+	0x93, 0x87, 0x7f, 0x86, 0x91, 0x91, 0x7d, 0x63, 0x58, 0x67, 0x84,
+	0x98, 0x97, 0x89, 0x7e, 0x82, 0x8c, 0x8b, 0x78, 0x61, 0x5a, 0x6c,
+	0x8a, 0x9e, 0x9a, 0x88, 0x7c, 0x7e, 0x87, 0x86, 0x76, 0x61, 0x5d,
+	0x71, 0x8f, 0xa2, 0x9c, 0x87, 0x78, 0x79, 0x82, 0x82, 0x74, 0x63,
+	0x62, 0x77, 0x95, 0xa5, 0x9b, 0x84, 0x73, 0x73, 0x7d, 0x80, 0x74,
+	0x66, 0x67, 0x7d, 0x9a, 0xa7, 0x9a, 0x80, 0x6d, 0x6e, 0x7b, 0x7f,
+	0x76, 0x6a, 0x6c, 0x83, 0x9d, 0xa7, 0x96, 0x7a, 0x68, 0x6b, 0x78,
+	0x80, 0x79, 0x6f, 0x72, 0x88, 0x9f, 0xa5, 0x92, 0x74, 0x62, 0x67,
+	0x78, 0x82, 0x7d, 0x74, 0x77, 0x8a, 0x9f, 0xa2, 0x8c, 0x6e, 0x5e,
+	0x66, 0x79, 0x86, 0x82, 0x79, 0x7c, 0x8d, 0x9e, 0x9e, 0x86, 0x68,
+	0x5b, 0x66, 0x7c, 0x8a, 0x87, 0x7e, 0x7e, 0x8d, 0x9c, 0x98, 0x80,
+	0x63, 0x59, 0x67, 0x80, 0x8f, 0x8c, 0x81, 0x80, 0x8c, 0x98, 0x93,
+	0x7b, 0x60, 0x58, 0x6a, 0x85, 0x94, 0x91, 0x84, 0x80, 0x89, 0x93,
+	0x8d, 0x76, 0x5d, 0x5a, 0x6e, 0x8b, 0x9a, 0x94, 0x84, 0x7e, 0x85,
+	0x8e, 0x88, 0x72, 0x5d, 0x5c, 0x73, 0x91, 0x9f, 0x96, 0x84, 0x7b,
+	0x80, 0x88, 0x83, 0x70, 0x5e, 0x61, 0x79, 0x97, 0xa2, 0x97, 0x81,
+	0x77, 0x7b, 0x84, 0x80, 0x6f, 0x60, 0x66, 0x80, 0x9c, 0xa4, 0x95,
+	0x7d, 0x71, 0x76, 0x80, 0x7e, 0x70, 0x64, 0x6b, 0x86, 0xa0, 0xa5,
+	0x93, 0x79, 0x6c, 0x72, 0x7d, 0x7e, 0x72, 0x68, 0x71, 0x8a, 0xa2,
+	0xa4, 0x8f, 0x73, 0x67, 0x6e, 0x7c, 0x7f, 0x76, 0x6e, 0x77, 0x8e,
+	0xa3, 0xa2, 0x89, 0x6d, 0x62, 0x6c, 0x7c, 0x82, 0x7b, 0x73, 0x7b,
+	0x91, 0xa3, 0x9e, 0x84, 0x67, 0x5e, 0x6b, 0x7e, 0x86, 0x80, 0x78,
+	0x7f, 0x92, 0xa0, 0x99, 0x7d, 0x62, 0x5c, 0x6b, 0x81, 0x8b, 0x84,
+	0x7c, 0x81, 0x92, 0x9d, 0x93, 0x78, 0x5e, 0x5a, 0x6e, 0x86, 0x90,
+	0x89, 0x80, 0x82, 0x90, 0x98, 0x8e, 0x72, 0x5b, 0x5b, 0x72, 0x8c,
+	0x95, 0x8d, 0x81, 0x81, 0x8d, 0x93, 0x88, 0x6e, 0x5a, 0x5d, 0x76,
+	0x91, 0x9a, 0x8f, 0x81, 0x7e, 0x88, 0x8e, 0x83, 0x6b, 0x5a, 0x61,
+	0x7c, 0x97, 0x9e, 0x91, 0x80, 0x7b, 0x83, 0x89, 0x7e, 0x6a, 0x5c,
+	0x66, 0x82, 0x9b, 0x9f, 0x8f, 0x7d, 0x78, 0x7e, 0x83, 0x7d, 0x70,
+	0x6a, 0x72, 0x85, 0x93, 0x93, 0x88, 0x7c, 0x79, 0x7d, 0x80, 0x7d,
+	0x78, 0x77, 0x7b, 0x83, 0x87, 0x86, 0x81, 0x7e, 0x7d, 0x7e, 0x7f,
+	0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+	0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80,
+	0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+	0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80,
+	0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+	0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f,
+	0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f,
+	0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+	0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+	0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80,
+	0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+	0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+	0x7f, 0x80, 0x80, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f,
+	0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f,
+	0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+	0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f,
+	0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80,
+	0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f,
+	0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f,
+	0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f,
+	0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+	0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f,
+	0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+	0x7f, 0x80, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f,
+	0x80, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80,
+	0x7f, 0x80, 0x7f, 0x80, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f,
+	0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x80, 0x7f, 0x7f, 0x7f, 0x7f, 0x80,
+	0x7f, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x7f, 0x80, 0x80, 0x80,
+	0x7f, 0x80, 0x7f, 0x7f, 0x80,
+}

+ 117 - 0
src/github.com/dchest/captcha/store.go

@@ -0,0 +1,117 @@
+// Copyright 2011 Dmitry Chestnykh. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package captcha
+
+import (
+	"container/list"
+	"sync"
+	"time"
+)
+
+// An object implementing Store interface can be registered with SetCustomStore
+// function to handle storage and retrieval of captcha ids and solutions for
+// them, replacing the default memory store.
+//
+// It is the responsibility of an object to delete expired and used captchas
+// when necessary (for example, the default memory store collects them in Set
+// method after the certain amount of captchas has been stored.)
+type Store interface {
+	// Set sets the digits for the captcha id.
+	Set(id string, digits []byte)
+
+	// Get returns stored digits for the captcha id. Clear indicates
+	// whether the captcha must be deleted from the store.
+	Get(id string, clear bool) (digits []byte)
+}
+
+// expValue stores timestamp and id of captchas. It is used in the list inside
+// memoryStore for indexing generated captchas by timestamp to enable garbage
+// collection of expired captchas.
+type idByTimeValue struct {
+	timestamp time.Time
+	id        string
+}
+
+// memoryStore is an internal store for captcha ids and their values.
+type memoryStore struct {
+	sync.RWMutex
+	digitsById map[string][]byte
+	idByTime   *list.List
+	// Number of items stored since last collection.
+	numStored int
+	// Number of saved items that triggers collection.
+	collectNum int
+	// Expiration time of captchas.
+	expiration time.Duration
+}
+
+// NewMemoryStore returns a new standard memory store for captchas with the
+// given collection threshold and expiration time (duration). The returned
+// store must be registered with SetCustomStore to replace the default one.
+func NewMemoryStore(collectNum int, expiration time.Duration) Store {
+	s := new(memoryStore)
+	s.digitsById = make(map[string][]byte)
+	s.idByTime = list.New()
+	s.collectNum = collectNum
+	s.expiration = expiration
+	return s
+}
+
+func (s *memoryStore) Set(id string, digits []byte) {
+	s.Lock()
+	s.digitsById[id] = digits
+	s.idByTime.PushBack(idByTimeValue{time.Now(), id})
+	s.numStored++
+	if s.numStored <= s.collectNum {
+		s.Unlock()
+		return
+	}
+	s.Unlock()
+	go s.collect()
+}
+
+func (s *memoryStore) Get(id string, clear bool) (digits []byte) {
+	if !clear {
+		// When we don't need to clear captcha, acquire read lock.
+		s.RLock()
+		defer s.RUnlock()
+	} else {
+		s.Lock()
+		defer s.Unlock()
+	}
+	digits, ok := s.digitsById[id]
+	if !ok {
+		return
+	}
+	if clear {
+		delete(s.digitsById, id)
+		// XXX(dchest) Index (s.idByTime) will be cleaned when
+		// collecting expired captchas.  Can't clean it here, because
+		// we don't store reference to expValue in the map.
+		// Maybe store it?
+	}
+	return
+}
+
+func (s *memoryStore) collect() {
+	now := time.Now()
+	s.Lock()
+	defer s.Unlock()
+	s.numStored = 0
+	for e := s.idByTime.Front(); e != nil; {
+		ev, ok := e.Value.(idByTimeValue)
+		if !ok {
+			return
+		}
+		if ev.timestamp.Add(s.expiration).Before(now) {
+			delete(s.digitsById, ev.id)
+			next := e.Next()
+			s.idByTime.Remove(e)
+			e = next
+		} else {
+			return
+		}
+	}
+}

+ 79 - 0
src/github.com/dchest/captcha/store_test.go

@@ -0,0 +1,79 @@
+// Copyright 2011 Dmitry Chestnykh. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package captcha
+
+import (
+	"bytes"
+	"testing"
+)
+
+func TestSetGet(t *testing.T) {
+	s := NewMemoryStore(CollectNum, Expiration)
+	id := "captcha id"
+	d := RandomDigits(10)
+	s.Set(id, d)
+	d2 := s.Get(id, false)
+	if d2 == nil || !bytes.Equal(d, d2) {
+		t.Errorf("saved %v, getDigits returned got %v", d, d2)
+	}
+}
+
+func TestGetClear(t *testing.T) {
+	s := NewMemoryStore(CollectNum, Expiration)
+	id := "captcha id"
+	d := RandomDigits(10)
+	s.Set(id, d)
+	d2 := s.Get(id, true)
+	if d2 == nil || !bytes.Equal(d, d2) {
+		t.Errorf("saved %v, getDigitsClear returned got %v", d, d2)
+	}
+	d2 = s.Get(id, false)
+	if d2 != nil {
+		t.Errorf("getDigitClear didn't clear (%q=%v)", id, d2)
+	}
+}
+
+func TestCollect(t *testing.T) {
+	//TODO(dchest): can't test automatic collection when saving, because
+	//it's currently launched in a different goroutine.
+	s := NewMemoryStore(10, -1)
+	// create 10 ids
+	ids := make([]string, 10)
+	d := RandomDigits(10)
+	for i := range ids {
+		ids[i] = randomId()
+		s.Set(ids[i], d)
+	}
+	s.(*memoryStore).collect()
+	// Must be already collected
+	nc := 0
+	for i := range ids {
+		d2 := s.Get(ids[i], false)
+		if d2 != nil {
+			t.Errorf("%d: not collected", i)
+			nc++
+		}
+	}
+	if nc > 0 {
+		t.Errorf("= not collected %d out of %d captchas", nc, len(ids))
+	}
+}
+
+func BenchmarkSetCollect(b *testing.B) {
+	b.StopTimer()
+	d := RandomDigits(10)
+	s := NewMemoryStore(9999, -1)
+	ids := make([]string, 1000)
+	for i := range ids {
+		ids[i] = randomId()
+	}
+	b.StartTimer()
+	for i := 0; i < b.N; i++ {
+		for j := 0; j < 1000; j++ {
+			s.Set(ids[j], d)
+		}
+		s.(*memoryStore).collect()
+	}
+}

+ 0 - 0
src/github.com/go-gomail/gomail/5s5s.txt


+ 20 - 0
src/github.com/go-gomail/gomail/CHANGELOG.md

@@ -0,0 +1,20 @@
+# Change Log
+All notable changes to this project will be documented in this file.
+This project adheres to [Semantic Versioning](http://semver.org/).
+
+## [2.0.0] - 2015-09-02
+
+- Mailer has been removed. It has been replaced by Dialer and Sender.
+- `File` type and the `CreateFile` and `OpenFile` functions have been removed.
+- `Message.Attach` and `Message.Embed` have a new signature.
+- `Message.GetBodyWriter` has been removed. Use `Message.AddAlternativeWriter`
+instead.
+- `Message.Export` has been removed. `Message.WriteTo` can be used instead.
+- `Message.DelHeader` has been removed.
+- The `Bcc` header field is no longer sent. It is far more simpler and
+efficient: the same message is sent to all recipients instead of sending a
+different email to each Bcc address.
+- LoginAuth has been removed. `NewPlainDialer` now implements the LOGIN
+authentication mechanism when needed.
+- Go 1.2 is now required instead of Go 1.3. No external dependency are used when
+using Go 1.5.

+ 20 - 0
src/github.com/go-gomail/gomail/CONTRIBUTING.md

@@ -0,0 +1,20 @@
+Thank you for contributing to Gomail! Here are a few guidelines:
+
+## Bugs
+
+If you think you found a bug, create an issue and supply the minimum amount
+of code triggering the bug so it can be reproduced.
+
+
+## Fixing a bug
+
+If you want to fix a bug, you can send a pull request. It should contains a
+new test or update an existing one to cover that bug.
+
+
+## New feature proposal
+
+If you think Gomail lacks a feature, you can open an issue or send a pull
+request. I want to keep Gomail code and API as simple as possible so please
+describe your needs so we can discuss whether this feature should be added to
+Gomail or not.

+ 20 - 0
src/github.com/go-gomail/gomail/LICENSE

@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Alexandre Cesaro
+
+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.

+ 92 - 0
src/github.com/go-gomail/gomail/README.md

@@ -0,0 +1,92 @@
+# Gomail
+[![Build Status](https://travis-ci.org/go-gomail/gomail.svg?branch=v2)](https://travis-ci.org/go-gomail/gomail) [![Code Coverage](http://gocover.io/_badge/gopkg.in/gomail.v2)](http://gocover.io/gopkg.in/gomail.v2) [![Documentation](https://godoc.org/gopkg.in/gomail.v2?status.svg)](https://godoc.org/gopkg.in/gomail.v2)
+
+## Introduction
+
+Gomail is a simple and efficient package to send emails. It is well tested and
+documented.
+
+Gomail can only send emails using an SMTP server. But the API is flexible and it
+is easy to implement other methods for sending emails using a local Postfix, an
+API, etc.
+
+It is versioned using [gopkg.in](https://gopkg.in) so I promise
+there will never be backward incompatible changes within each version.
+
+It requires Go 1.2 or newer. With Go 1.5, no external dependencies are used.
+
+
+## Features
+
+Gomail supports:
+- Attachments
+- Embedded images
+- HTML and text templates
+- Automatic encoding of special characters
+- SSL and TLS
+- Sending multiple emails with the same SMTP connection
+
+
+## Documentation
+
+https://godoc.org/gopkg.in/gomail.v2
+
+
+## Download
+
+    go get gopkg.in/gomail.v2
+
+
+## Examples
+
+See the [examples in the documentation](https://godoc.org/gopkg.in/gomail.v2#example-package).
+
+
+## FAQ
+
+### x509: certificate signed by unknown authority
+
+If you get this error it means the certificate used by the SMTP server is not
+considered valid by the client running Gomail. As a quick workaround you can
+bypass the verification of the server's certificate chain and host name by using
+`SetTLSConfig`:
+
+    package main
+
+    import (
+    	"crypto/tls"
+
+    	"gopkg.in/gomail.v2"
+    )
+
+    func main() {
+    	d := gomail.NewDialer("smtp.example.com", 587, "user", "123456")
+    	d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
+
+        // Send emails using d.
+    }
+
+Note, however, that this is insecure and should not be used in production.
+
+
+## Contribute
+
+Contributions are more than welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for
+more info.
+
+
+## Change log
+
+See [CHANGELOG.md](CHANGELOG.md).
+
+
+## License
+
+[MIT](LICENSE)
+
+
+## Contact
+
+You can ask questions on the [Gomail
+thread](https://groups.google.com/d/topic/golang-nuts/jMxZHzvvEVg/discussion)
+in the Go mailing-list.

+ 49 - 0
src/github.com/go-gomail/gomail/auth.go

@@ -0,0 +1,49 @@
+package gomail
+
+import (
+	"bytes"
+	"errors"
+	"fmt"
+	"net/smtp"
+)
+
+// loginAuth is an smtp.Auth that implements the LOGIN authentication mechanism.
+type loginAuth struct {
+	username string
+	password string
+	host     string
+}
+
+func (a *loginAuth) Start(server *smtp.ServerInfo) (string, []byte, error) {
+	if !server.TLS {
+		advertised := false
+		for _, mechanism := range server.Auth {
+			if mechanism == "LOGIN" {
+				advertised = true
+				break
+			}
+		}
+		if !advertised {
+			return "", nil, errors.New("gomail: unencrypted connection")
+		}
+	}
+	if server.Name != a.host {
+		return "", nil, errors.New("gomail: wrong host name")
+	}
+	return "LOGIN", nil, nil
+}
+
+func (a *loginAuth) Next(fromServer []byte, more bool) ([]byte, error) {
+	if !more {
+		return nil, nil
+	}
+
+	switch {
+	case bytes.Equal(fromServer, []byte("Username:")):
+		return []byte(a.username), nil
+	case bytes.Equal(fromServer, []byte("Password:")):
+		return []byte(a.password), nil
+	default:
+		return nil, fmt.Errorf("gomail: unexpected server challenge: %s", fromServer)
+	}
+}

+ 100 - 0
src/github.com/go-gomail/gomail/auth_test.go

@@ -0,0 +1,100 @@
+package gomail
+
+import (
+	"net/smtp"
+	"testing"
+)
+
+const (
+	testUser = "user"
+	testPwd  = "pwd"
+	testHost = "smtp.example.com"
+)
+
+type authTest struct {
+	auths      []string
+	challenges []string
+	tls        bool
+	wantData   []string
+	wantError  bool
+}
+
+func TestNoAdvertisement(t *testing.T) {
+	testLoginAuth(t, &authTest{
+		auths:     []string{},
+		tls:       false,
+		wantError: true,
+	})
+}
+
+func TestNoAdvertisementTLS(t *testing.T) {
+	testLoginAuth(t, &authTest{
+		auths:      []string{},
+		challenges: []string{"Username:", "Password:"},
+		tls:        true,
+		wantData:   []string{"", testUser, testPwd},
+	})
+}
+
+func TestLogin(t *testing.T) {
+	testLoginAuth(t, &authTest{
+		auths:      []string{"PLAIN", "LOGIN"},
+		challenges: []string{"Username:", "Password:"},
+		tls:        false,
+		wantData:   []string{"", testUser, testPwd},
+	})
+}
+
+func TestLoginTLS(t *testing.T) {
+	testLoginAuth(t, &authTest{
+		auths:      []string{"LOGIN"},
+		challenges: []string{"Username:", "Password:"},
+		tls:        true,
+		wantData:   []string{"", testUser, testPwd},
+	})
+}
+
+func testLoginAuth(t *testing.T, test *authTest) {
+	auth := &loginAuth{
+		username: testUser,
+		password: testPwd,
+		host:     testHost,
+	}
+	server := &smtp.ServerInfo{
+		Name: testHost,
+		TLS:  test.tls,
+		Auth: test.auths,
+	}
+	proto, toServer, err := auth.Start(server)
+	if err != nil && !test.wantError {
+		t.Fatalf("loginAuth.Start(): %v", err)
+	}
+	if err != nil && test.wantError {
+		return
+	}
+	if proto != "LOGIN" {
+		t.Errorf("invalid protocol, got %q, want LOGIN", proto)
+	}
+
+	i := 0
+	got := string(toServer)
+	if got != test.wantData[i] {
+		t.Errorf("Invalid response, got %q, want %q", got, test.wantData[i])
+	}
+
+	for _, challenge := range test.challenges {
+		i++
+		if i >= len(test.wantData) {
+			t.Fatalf("unexpected challenge: %q", challenge)
+		}
+
+		toServer, err = auth.Next([]byte(challenge), true)
+		if err != nil {
+			t.Fatalf("loginAuth.Auth(): %v", err)
+		}
+		got = string(toServer)
+		if got != test.wantData[i] {
+			t.Errorf("Invalid response, got %q, want %q", got, test.wantData[i])
+		}
+	}
+}

+ 5 - 0
src/github.com/go-gomail/gomail/doc.go

@@ -0,0 +1,5 @@
+// Package gomail provides a simple interface to compose emails and to mail them
+// efficiently.
+//
+// More info on Github: https://github.com/go-gomail/gomail
+package gomail

+ 223 - 0
src/github.com/go-gomail/gomail/example_test.go

@@ -0,0 +1,223 @@
+package gomail_test
+
+import (
+	"fmt"
+	"html/template"
+	"io"
+	"log"
+	"time"
+
+	"gopkg.in/gomail.v2"
+)
+
+func Example() {
+	m := gomail.NewMessage()
+	m.SetHeader("From", "alex@example.com")
+	m.SetHeader("To", "bob@example.com", "cora@example.com")
+	m.SetAddressHeader("Cc", "dan@example.com", "Dan")
+	m.SetHeader("Subject", "Hello!")
+	m.SetBody("text/html", "Hello <b>Bob</b> and <i>Cora</i>!")
+	m.Attach("/home/Alex/lolcat.jpg")
+
+	d := gomail.NewDialer("smtp.example.com", 587, "user", "123456")
+
+	// Send the email to Bob, Cora and Dan.
+	if err := d.DialAndSend(m); err != nil {
+		panic(err)
+	}
+}
+
+// A daemon that listens to a channel and sends all incoming messages.
+func Example_daemon() {
+	ch := make(chan *gomail.Message)
+
+	go func() {
+		d := gomail.NewDialer("smtp.example.com", 587, "user", "123456")
+
+		var s gomail.SendCloser
+		var err error
+		open := false
+		for {
+			select {
+			case m, ok := <-ch:
+				if !ok {
+					return
+				}
+				if !open {
+					if s, err = d.Dial(); err != nil {
+						panic(err)
+					}
+					open = true
+				}
+				if err := gomail.Send(s, m); err != nil {
+					log.Print(err)
+				}
+			// Close the connection to the SMTP server if no email was sent in
+			// the last 30 seconds.
+			case <-time.After(30 * time.Second):
+				if open {
+					if err := s.Close(); err != nil {
+						panic(err)
+					}
+					open = false
+				}
+			}
+		}
+	}()
+
+	// Use the channel in your program to send emails.
+
+	// Close the channel to stop the mail daemon.
+	close(ch)
+}
+
+// Efficiently send a customized newsletter to a list of recipients.
+func Example_newsletter() {
+	// The list of recipients.
+	var list []struct {
+		Name    string
+		Address string
+	}
+
+	d := gomail.NewDialer("smtp.example.com", 587, "user", "123456")
+	s, err := d.Dial()
+	if err != nil {
+		panic(err)
+	}
+
+	m := gomail.NewMessage()
+	for _, r := range list {
+		m.SetHeader("From", "no-reply@example.com")
+		m.SetAddressHeader("To", r.Address, r.Name)
+		m.SetHeader("Subject", "Newsletter #1")
+		m.SetBody("text/html", fmt.Sprintf("Hello %s!", r.Name))
+
+		if err := gomail.Send(s, m); err != nil {
+			log.Printf("Could not send email to %q: %v", r.Address, err)
+		}
+		m.Reset()
+	}
+}
+
+// Send an email using a local SMTP server.
+func Example_noAuth() {
+	m := gomail.NewMessage()
+	m.SetHeader("From", "from@example.com")
+	m.SetHeader("To", "to@example.com")
+	m.SetHeader("Subject", "Hello!")
+	m.SetBody("text/plain", "Hello!")
+
+	d := gomail.Dialer{Host: "localhost", Port: 587}
+	if err := d.DialAndSend(m); err != nil {
+		panic(err)
+	}
+}
+
+// Send an email using an API or postfix.
+func Example_noSMTP() {
+	m := gomail.NewMessage()
+	m.SetHeader("From", "from@example.com")
+	m.SetHeader("To", "to@example.com")
+	m.SetHeader("Subject", "Hello!")
+	m.SetBody("text/plain", "Hello!")
+
+	s := gomail.SendFunc(func(from string, to []string, msg io.WriterTo) error {
+		// Implements you email-sending function, for example by calling
+		// an API, or running postfix, etc.
+		fmt.Println("From:", from)
+		fmt.Println("To:", to)
+		return nil
+	})
+
+	if err := gomail.Send(s, m); err != nil {
+		panic(err)
+	}
+	// Output:
+	// From: from@example.com
+	// To: [to@example.com]
+}
+
+var m *gomail.Message
+
+func ExampleSetCopyFunc() {
+	m.Attach("foo.txt", gomail.SetCopyFunc(func(w io.Writer) error {
+		_, err := w.Write([]byte("Content of foo.txt"))
+		return err
+	}))
+}
+
+func ExampleSetHeader() {
+	h := map[string][]string{"Content-ID": {"<foo@bar.mail>"}}
+	m.Attach("foo.jpg", gomail.SetHeader(h))
+}
+
+func ExampleRename() {
+	m.Attach("/tmp/0000146.jpg", gomail.Rename("picture.jpg"))
+}
+
+func ExampleMessage_AddAlternative() {
+	m.SetBody("text/plain", "Hello!")
+	m.AddAlternative("text/html", "<p>Hello!</p>")
+}
+
+func ExampleMessage_AddAlternativeWriter() {
+	t := template.Must(template.New("example").Parse("Hello {{.}}!"))
+	m.AddAlternativeWriter("text/plain", func(w io.Writer) error {
+		return t.Execute(w, "Bob")
+	})
+}
+
+func ExampleMessage_Attach() {
+	m.Attach("/tmp/image.jpg")
+}
+
+func ExampleMessage_Embed() {
+	m.Embed("/tmp/image.jpg")
+	m.SetBody("text/html", `<img src="cid:image.jpg" alt="My image" />`)
+}
+
+func ExampleMessage_FormatAddress() {
+	m.SetHeader("To", m.FormatAddress("bob@example.com", "Bob"), m.FormatAddress("cora@example.com", "Cora"))
+}
+
+func ExampleMessage_FormatDate() {
+	m.SetHeaders(map[string][]string{
+		"X-Date": {m.FormatDate(time.Now())},
+	})
+}
+
+func ExampleMessage_SetAddressHeader() {
+	m.SetAddressHeader("To", "bob@example.com", "Bob")
+}
+
+func ExampleMessage_SetBody() {
+	m.SetBody("text/plain", "Hello!")
+}
+
+func ExampleMessage_SetDateHeader() {
+	m.SetDateHeader("X-Date", time.Now())
+}
+
+func ExampleMessage_SetHeader() {
+	m.SetHeader("Subject", "Hello!")
+}
+
+func ExampleMessage_SetHeaders() {
+	m.SetHeaders(map[string][]string{
+		"From":    {m.FormatAddress("alex@example.com", "Alex")},
+		"To":      {"bob@example.com", "cora@example.com"},
+		"Subject": {"Hello"},
+	})
+}
+
+func ExampleSetCharset() {
+	m = gomail.NewMessage(gomail.SetCharset("ISO-8859-1"))
+}
+
+func ExampleSetEncoding() {
+	m = gomail.NewMessage(gomail.SetEncoding(gomail.Base64))
+}
+
+func ExampleSetPartEncoding() {
+	m.SetBody("text/plain", "Hello!", gomail.SetPartEncoding(gomail.Unencoded))
+}

+ 350 - 0
src/github.com/go-gomail/gomail/message.go

@@ -0,0 +1,350 @@
+package gomail
+
+import (
+	"bytes"
+	"io"
+	"os"
+	"path/filepath"
+	"time"
+)
+
+// Message represents an email.
+type Message struct {
+	header      header
+	parts       []*part
+	attachments []*file
+	embedded    []*file
+	charset     string
+	encoding    Encoding
+	hEncoder    mimeEncoder
+	buf         bytes.Buffer
+}
+
+type header map[string][]string
+
+type part struct {
+	contentType string
+	copier      func(io.Writer) error
+	encoding    Encoding
+}
+
+// NewMessage creates a new message. It uses UTF-8 and quoted-printable encoding
+// by default.
+func NewMessage(settings ...MessageSetting) *Message {
+	m := &Message{
+		header:   make(header),
+		charset:  "UTF-8",
+		encoding: QuotedPrintable,
+	}
+
+	m.applySettings(settings)
+
+	if m.encoding == Base64 {
+		m.hEncoder = bEncoding
+	} else {
+		m.hEncoder = qEncoding
+	}
+
+	return m
+}
+
+// Reset resets the message so it can be reused. The message keeps its previous
+// settings so it is in the same state that after a call to NewMessage.
+func (m *Message) Reset() {
+	for k := range m.header {
+		delete(m.header, k)
+	}
+	m.parts = nil
+	m.attachments = nil
+	m.embedded = nil
+}
+
+func (m *Message) applySettings(settings []MessageSetting) {
+	for _, s := range settings {
+		s(m)
+	}
+}
+
+// A MessageSetting can be used as an argument in NewMessage to configure an
+// email.
+type MessageSetting func(m *Message)
+
+// SetCharset is a message setting to set the charset of the email.
+func SetCharset(charset string) MessageSetting {
+	return func(m *Message) {
+		m.charset = charset
+	}
+}
+
+// SetEncoding is a message setting to set the encoding of the email.
+func SetEncoding(enc Encoding) MessageSetting {
+	return func(m *Message) {
+		m.encoding = enc
+	}
+}
+
+// Encoding represents a MIME encoding scheme like quoted-printable or base64.
+type Encoding string
+
+const (
+	// QuotedPrintable represents the quoted-printable encoding as defined in
+	// RFC 2045.
+	QuotedPrintable Encoding = "quoted-printable"
+	// Base64 represents the base64 encoding as defined in RFC 2045.
+	Base64 Encoding = "base64"
+	// Unencoded can be used to avoid encoding the body of an email. The headers
+	// will still be encoded using quoted-printable encoding.
+	Unencoded Encoding = "8bit"
+)
+
+// SetHeader sets a value to the given header field.
+func (m *Message) SetHeader(field string, value ...string) {
+	m.encodeHeader(value)
+	m.header[field] = value
+}
+
+func (m *Message) encodeHeader(values []string) {
+	for i := range values {
+		values[i] = m.encodeString(values[i])
+	}
+}
+
+func (m *Message) encodeString(value string) string {
+	return m.hEncoder.Encode(m.charset, value)
+}
+
+// SetHeaders sets the message headers.
+func (m *Message) SetHeaders(h map[string][]string) {
+	for k, v := range h {
+		m.SetHeader(k, v...)
+	}
+}
+
+// SetAddressHeader sets an address to the given header field.
+func (m *Message) SetAddressHeader(field, address, name string) {
+	m.header[field] = []string{m.FormatAddress(address, name)}
+}
+
+// FormatAddress formats an address and a name as a valid RFC 5322 address.
+func (m *Message) FormatAddress(address, name string) string {
+	if name == "" {
+		return address
+	}
+
+	enc := m.encodeString(name)
+	if enc == name {
+		m.buf.WriteByte('"')
+		for i := 0; i < len(name); i++ {
+			b := name[i]
+			if b == '\\' || b == '"' {
+				m.buf.WriteByte('\\')
+			}
+			m.buf.WriteByte(b)
+		}
+		m.buf.WriteByte('"')
+	} else if hasSpecials(name) {
+		m.buf.WriteString(bEncoding.Encode(m.charset, name))
+	} else {
+		m.buf.WriteString(enc)
+	}
+	m.buf.WriteString(" <")
+	m.buf.WriteString(address)
+	m.buf.WriteByte('>')
+
+	addr := m.buf.String()
+	m.buf.Reset()
+	return addr
+}
+
+func hasSpecials(text string) bool {
+	for i := 0; i < len(text); i++ {
+		switch c := text[i]; c {
+		case '(', ')', '<', '>', '[', ']', ':', ';', '@', '\\', ',', '.', '"':
+			return true
+		}
+	}
+
+	return false
+}
+
+// SetDateHeader sets a date to the given header field.
+func (m *Message) SetDateHeader(field string, date time.Time) {
+	m.header[field] = []string{m.FormatDate(date)}
+}
+
+// FormatDate formats a date as a valid RFC 5322 date.
+func (m *Message) FormatDate(date time.Time) string {
+	return date.Format(time.RFC1123Z)
+}
+
+// GetHeader gets a header field.
+func (m *Message) GetHeader(field string) []string {
+	return m.header[field]
+}
+
+// SetBody sets the body of the message. It replaces any content previously set
+// by SetBody, AddAlternative or AddAlternativeWriter.
+func (m *Message) SetBody(contentType, body string, settings ...PartSetting) {
+	m.parts = []*part{m.newPart(contentType, newCopier(body), settings)}
+}
+
+// AddAlternative adds an alternative part to the message.
+//
+// It is commonly used to send HTML emails that default to the plain text
+// version for backward compatibility. AddAlternative appends the new part to
+// the end of the message. So the plain text part should be added before the
+// HTML part. See http://en.wikipedia.org/wiki/MIME#Alternative
+func (m *Message) AddAlternative(contentType, body string, settings ...PartSetting) {
+	m.AddAlternativeWriter(contentType, newCopier(body), settings...)
+}
+
+func newCopier(s string) func(io.Writer) error {
+	return func(w io.Writer) error {
+		_, err := io.WriteString(w, s)
+		return err
+	}
+}
+
+// AddAlternativeWriter adds an alternative part to the message. It can be
+// useful with the text/template or html/template packages.
+func (m *Message) AddAlternativeWriter(contentType string, f func(io.Writer) error, settings ...PartSetting) {
+	m.parts = append(m.parts, m.newPart(contentType, f, settings))
+}
+
+func (m *Message) newPart(contentType string, f func(io.Writer) error, settings []PartSetting) *part {
+	p := &part{
+		contentType: contentType,
+		copier:      f,
+		encoding:    m.encoding,
+	}
+
+	for _, s := range settings {
+		s(p)
+	}
+
+	return p
+}
+
+// A PartSetting can be used as an argument in Message.SetBody,
+// Message.AddAlternative or Message.AddAlternativeWriter to configure the part
+// added to a message.
+type PartSetting func(*part)
+
+// SetPartEncoding sets the encoding of the part added to the message. By
+// default, parts use the same encoding than the message.
+func SetPartEncoding(e Encoding) PartSetting {
+	return PartSetting(func(p *part) {
+		p.encoding = e
+	})
+}
+
+type file struct {
+	Name     string
+	Header   map[string][]string
+	CopyFunc func(w io.Writer) error
+}
+
+func (f *file) setHeader(field, value string) {
+	f.Header[field] = []string{value}
+}
+
+// A FileSetting can be used as an argument in Message.Attach or Message.Embed.
+type FileSetting func(*file)
+
+// SetHeader is a file setting to set the MIME header of the message part that
+// contains the file content.
+//
+// Mandatory headers are automatically added if they are not set when sending
+// the email.
+func SetHeader(h map[string][]string) FileSetting {
+	return func(f *file) {
+		for k, v := range h {
+			f.Header[k] = v
+		}
+	}
+}
+
+// Rename is a file setting to set the name of the attachment if the name is
+// different than the filename on disk.
+func Rename(name string) FileSetting {
+	return func(f *file) {
+		f.Name = name
+	}
+}
+
+// SetCopyFunc is a file setting to replace the function that runs when the
+// message is sent. It should copy the content of the file to the io.Writer.
+//
+// The default copy function opens the file with the given filename, and copy
+// its content to the io.Writer.
+func SetCopyFunc(f func(io.Writer) error) FileSetting {
+	return func(fi *file) {
+		fi.CopyFunc = f
+	}
+}
+
+func (m *Message) appendFile(list []*file, name string, settings []FileSetting) []*file {
+	f := &file{
+		Name:   filepath.Base(name),
+		Header: make(map[string][]string),
+		CopyFunc: func(w io.Writer) error {
+			h, err := os.Open(name)
+			if err != nil {
+				return err
+			}
+			if _, err := io.Copy(w, h); err != nil {
+				h.Close()
+				return err
+			}
+			return h.Close()
+		},
+	}
+
+	for _, s := range settings {
+		s(f)
+	}
+
+	if list == nil {
+		return []*file{f}
+	}
+
+	return append(list, f)
+}
+
+func (m *Message) appendFile_new(list []*file, fb []byte, settings []FileSetting) []*file {
+	f := &file{
+		Name:   filepath.Base(""),
+		Header: make(map[string][]string),
+		CopyFunc: func(w io.Writer) error {
+			h := bytes.NewReader(fb)
+			if _, err := io.Copy(w, h); err != nil {
+				return err
+			}
+			return nil
+		},
+	}
+
+	for _, s := range settings {
+		s(f)
+	}
+
+	if list == nil {
+		return []*file{f}
+	}
+
+	return append(list, f)
+}
+
+// Attach attaches the files to the email.
+func (m *Message) Attach(filename string, settings ...FileSetting) {
+	m.attachments = m.appendFile(m.attachments, filename, settings)
+}
+
+func (m *Message) Attach_new(fb []byte, settings ...FileSetting) {
+	m.attachments = m.appendFile_new(m.attachments, fb, settings)
+}
+
+// Embed embeds the images to the email.
+func (m *Message) Embed(filename string, settings ...FileSetting) {
+	m.embedded = m.appendFile(m.embedded, filename, settings)
+}

+ 745 - 0
src/github.com/go-gomail/gomail/message_test.go

@@ -0,0 +1,745 @@
+package gomail
+
+import (
+	"bytes"
+	"encoding/base64"
+	"io"
+	"io/ioutil"
+	"path/filepath"
+	"regexp"
+	"strconv"
+	"strings"
+	"testing"
+	"time"
+)
+
+func init() {
+	now = func() time.Time {
+		return time.Date(2014, 06, 25, 17, 46, 0, 0, time.UTC)
+	}
+}
+
+type message struct {
+	from    string
+	to      []string
+	content string
+}
+
+func TestMessage(t *testing.T) {
+	m := NewMessage()
+	m.SetAddressHeader("From", "from@example.com", "Señor From")
+	m.SetHeader("To", m.FormatAddress("to@example.com", "Señor To"), "tobis@example.com")
+	m.SetAddressHeader("Cc", "cc@example.com", "A, B")
+	m.SetAddressHeader("X-To", "ccbis@example.com", "à, b")
+	m.SetDateHeader("X-Date", now())
+	m.SetHeader("X-Date-2", m.FormatDate(now()))
+	m.SetHeader("Subject", "¡Hola, señor!")
+	m.SetHeaders(map[string][]string{
+		"X-Headers": {"Test", "Café"},
+	})
+	m.SetBody("text/plain", "¡Hola, señor!")
+
+	want := &message{
+		from: "from@example.com",
+		to: []string{
+			"to@example.com",
+			"tobis@example.com",
+			"cc@example.com",
+		},
+		content: "From: =?UTF-8?q?Se=C3=B1or_From?= <from@example.com>\r\n" +
+			"To: =?UTF-8?q?Se=C3=B1or_To?= <to@example.com>, tobis@example.com\r\n" +
+			"Cc: \"A, B\" <cc@example.com>\r\n" +
+			"X-To: =?UTF-8?b?w6AsIGI=?= <ccbis@example.com>\r\n" +
+			"X-Date: Wed, 25 Jun 2014 17:46:00 +0000\r\n" +
+			"X-Date-2: Wed, 25 Jun 2014 17:46:00 +0000\r\n" +
+			"X-Headers: Test, =?UTF-8?q?Caf=C3=A9?=\r\n" +
+			"Subject: =?UTF-8?q?=C2=A1Hola,_se=C3=B1or!?=\r\n" +
+			"Content-Type: text/plain; charset=UTF-8\r\n" +
+			"Content-Transfer-Encoding: quoted-printable\r\n" +
+			"\r\n" +
+			"=C2=A1Hola, se=C3=B1or!",
+	}
+
+	testMessage(t, m, 0, want)
+}
+
+func TestCustomMessage(t *testing.T) {
+	m := NewMessage(SetCharset("ISO-8859-1"), SetEncoding(Base64))
+	m.SetHeaders(map[string][]string{
+		"From":    {"from@example.com"},
+		"To":      {"to@example.com"},
+		"Subject": {"Café"},
+	})
+	m.SetBody("text/html", "¡Hola, señor!")
+
+	want := &message{
+		from: "from@example.com",
+		to:   []string{"to@example.com"},
+		content: "From: from@example.com\r\n" +
+			"To: to@example.com\r\n" +
+			"Subject: =?ISO-8859-1?b?Q2Fmw6k=?=\r\n" +
+			"Content-Type: text/html; charset=ISO-8859-1\r\n" +
+			"Content-Transfer-Encoding: base64\r\n" +
+			"\r\n" +
+			"wqFIb2xhLCBzZcOxb3Ih",
+	}
+
+	testMessage(t, m, 0, want)
+}
+
+func TestUnencodedMessage(t *testing.T) {
+	m := NewMessage(SetEncoding(Unencoded))
+	m.SetHeaders(map[string][]string{
+		"From":    {"from@example.com"},
+		"To":      {"to@example.com"},
+		"Subject": {"Café"},
+	})
+	m.SetBody("text/html", "¡Hola, señor!")
+
+	want := &message{
+		from: "from@example.com",
+		to:   []string{"to@example.com"},
+		content: "From: from@example.com\r\n" +
+			"To: to@example.com\r\n" +
+			"Subject: =?UTF-8?q?Caf=C3=A9?=\r\n" +
+			"Content-Type: text/html; charset=UTF-8\r\n" +
+			"Content-Transfer-Encoding: 8bit\r\n" +
+			"\r\n" +
+			"¡Hola, señor!",
+	}
+
+	testMessage(t, m, 0, want)
+}
+
+func TestRecipients(t *testing.T) {
+	m := NewMessage()
+	m.SetHeaders(map[string][]string{
+		"From":    {"from@example.com"},
+		"To":      {"to@example.com"},
+		"Cc":      {"cc@example.com"},
+		"Bcc":     {"bcc1@example.com", "bcc2@example.com"},
+		"Subject": {"Hello!"},
+	})
+	m.SetBody("text/plain", "Test message")
+
+	want := &message{
+		from: "from@example.com",
+		to:   []string{"to@example.com", "cc@example.com", "bcc1@example.com", "bcc2@example.com"},
+		content: "From: from@example.com\r\n" +
+			"To: to@example.com\r\n" +
+			"Cc: cc@example.com\r\n" +
+			"Subject: Hello!\r\n" +
+			"Content-Type: text/plain; charset=UTF-8\r\n" +
+			"Content-Transfer-Encoding: quoted-printable\r\n" +
+			"\r\n" +
+			"Test message",
+	}
+
+	testMessage(t, m, 0, want)
+}
+
+func TestAlternative(t *testing.T) {
+	m := NewMessage()
+	m.SetHeader("From", "from@example.com")
+	m.SetHeader("To", "to@example.com")
+	m.SetBody("text/plain", "¡Hola, señor!")
+	m.AddAlternative("text/html", "¡<b>Hola</b>, <i>señor</i>!</h1>")
+
+	want := &message{
+		from: "from@example.com",
+		to:   []string{"to@example.com"},
+		content: "From: from@example.com\r\n" +
+			"To: to@example.com\r\n" +
+			"Content-Type: multipart/alternative;\r\n" +
+			" boundary=_BOUNDARY_1_\r\n" +
+			"\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: text/plain; charset=UTF-8\r\n" +
+			"Content-Transfer-Encoding: quoted-printable\r\n" +
+			"\r\n" +
+			"=C2=A1Hola, se=C3=B1or!\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: text/html; charset=UTF-8\r\n" +
+			"Content-Transfer-Encoding: quoted-printable\r\n" +
+			"\r\n" +
+			"=C2=A1<b>Hola</b>, <i>se=C3=B1or</i>!</h1>\r\n" +
+			"--_BOUNDARY_1_--\r\n",
+	}
+
+	testMessage(t, m, 1, want)
+}
+
+func TestPartSetting(t *testing.T) {
+	m := NewMessage()
+	m.SetHeader("From", "from@example.com")
+	m.SetHeader("To", "to@example.com")
+	m.SetBody("text/plain; format=flowed", "¡Hola, señor!", SetPartEncoding(Unencoded))
+	m.AddAlternative("text/html", "¡<b>Hola</b>, <i>señor</i>!</h1>")
+
+	want := &message{
+		from: "from@example.com",
+		to:   []string{"to@example.com"},
+		content: "From: from@example.com\r\n" +
+			"To: to@example.com\r\n" +
+			"Content-Type: multipart/alternative;\r\n" +
+			" boundary=_BOUNDARY_1_\r\n" +
+			"\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: text/plain; format=flowed; charset=UTF-8\r\n" +
+			"Content-Transfer-Encoding: 8bit\r\n" +
+			"\r\n" +
+			"¡Hola, señor!\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: text/html; charset=UTF-8\r\n" +
+			"Content-Transfer-Encoding: quoted-printable\r\n" +
+			"\r\n" +
+			"=C2=A1<b>Hola</b>, <i>se=C3=B1or</i>!</h1>\r\n" +
+			"--_BOUNDARY_1_--\r\n",
+	}
+
+	testMessage(t, m, 1, want)
+}
+
+func TestBodyWriter(t *testing.T) {
+	m := NewMessage()
+	m.SetHeader("From", "from@example.com")
+	m.SetHeader("To", "to@example.com")
+	m.AddAlternativeWriter("text/plain", func(w io.Writer) error {
+		_, err := w.Write([]byte("Test message"))
+		return err
+	})
+	m.AddAlternativeWriter("text/html", func(w io.Writer) error {
+		_, err := w.Write([]byte("Test HTML"))
+		return err
+	})
+
+	want := &message{
+		from: "from@example.com",
+		to:   []string{"to@example.com"},
+		content: "From: from@example.com\r\n" +
+			"To: to@example.com\r\n" +
+			"Content-Type: multipart/alternative;\r\n" +
+			" boundary=_BOUNDARY_1_\r\n" +
+			"\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: text/plain; charset=UTF-8\r\n" +
+			"Content-Transfer-Encoding: quoted-printable\r\n" +
+			"\r\n" +
+			"Test message\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: text/html; charset=UTF-8\r\n" +
+			"Content-Transfer-Encoding: quoted-printable\r\n" +
+			"\r\n" +
+			"Test HTML\r\n" +
+			"--_BOUNDARY_1_--\r\n",
+	}
+
+	testMessage(t, m, 1, want)
+}
+
+func TestAttachmentOnly(t *testing.T) {
+	m := NewMessage()
+	m.SetHeader("From", "from@example.com")
+	m.SetHeader("To", "to@example.com")
+	m.Attach(mockCopyFile("/tmp/test.pdf"))
+
+	want := &message{
+		from: "from@example.com",
+		to:   []string{"to@example.com"},
+		content: "From: from@example.com\r\n" +
+			"To: to@example.com\r\n" +
+			"Content-Type: application/pdf; name=\"test.pdf\"\r\n" +
+			"Content-Disposition: attachment; filename=\"test.pdf\"\r\n" +
+			"Content-Transfer-Encoding: base64\r\n" +
+			"\r\n" +
+			base64.StdEncoding.EncodeToString([]byte("Content of test.pdf")),
+	}
+
+	testMessage(t, m, 0, want)
+}
+
+func TestAttachment(t *testing.T) {
+	m := NewMessage()
+	m.SetHeader("From", "from@example.com")
+	m.SetHeader("To", "to@example.com")
+	m.SetBody("text/plain", "Test")
+	m.Attach(mockCopyFile("/tmp/test.pdf"))
+
+	want := &message{
+		from: "from@example.com",
+		to:   []string{"to@example.com"},
+		content: "From: from@example.com\r\n" +
+			"To: to@example.com\r\n" +
+			"Content-Type: multipart/mixed;\r\n" +
+			" boundary=_BOUNDARY_1_\r\n" +
+			"\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: text/plain; charset=UTF-8\r\n" +
+			"Content-Transfer-Encoding: quoted-printable\r\n" +
+			"\r\n" +
+			"Test\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: application/pdf; name=\"test.pdf\"\r\n" +
+			"Content-Disposition: attachment; filename=\"test.pdf\"\r\n" +
+			"Content-Transfer-Encoding: base64\r\n" +
+			"\r\n" +
+			base64.StdEncoding.EncodeToString([]byte("Content of test.pdf")) + "\r\n" +
+			"--_BOUNDARY_1_--\r\n",
+	}
+
+	testMessage(t, m, 1, want)
+}
+
+func TestRename(t *testing.T) {
+	m := NewMessage()
+	m.SetHeader("From", "from@example.com")
+	m.SetHeader("To", "to@example.com")
+	m.SetBody("text/plain", "Test")
+	name, copy := mockCopyFile("/tmp/test.pdf")
+	rename := Rename("another.pdf")
+	m.Attach(name, copy, rename)
+
+	want := &message{
+		from: "from@example.com",
+		to:   []string{"to@example.com"},
+		content: "From: from@example.com\r\n" +
+			"To: to@example.com\r\n" +
+			"Content-Type: multipart/mixed;\r\n" +
+			" boundary=_BOUNDARY_1_\r\n" +
+			"\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: text/plain; charset=UTF-8\r\n" +
+			"Content-Transfer-Encoding: quoted-printable\r\n" +
+			"\r\n" +
+			"Test\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: application/pdf; name=\"another.pdf\"\r\n" +
+			"Content-Disposition: attachment; filename=\"another.pdf\"\r\n" +
+			"Content-Transfer-Encoding: base64\r\n" +
+			"\r\n" +
+			base64.StdEncoding.EncodeToString([]byte("Content of test.pdf")) + "\r\n" +
+			"--_BOUNDARY_1_--\r\n",
+	}
+
+	testMessage(t, m, 1, want)
+}
+
+func TestAttachmentsOnly(t *testing.T) {
+	m := NewMessage()
+	m.SetHeader("From", "from@example.com")
+	m.SetHeader("To", "to@example.com")
+	m.Attach(mockCopyFile("/tmp/test.pdf"))
+	m.Attach(mockCopyFile("/tmp/test.zip"))
+
+	want := &message{
+		from: "from@example.com",
+		to:   []string{"to@example.com"},
+		content: "From: from@example.com\r\n" +
+			"To: to@example.com\r\n" +
+			"Content-Type: multipart/mixed;\r\n" +
+			" boundary=_BOUNDARY_1_\r\n" +
+			"\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: application/pdf; name=\"test.pdf\"\r\n" +
+			"Content-Disposition: attachment; filename=\"test.pdf\"\r\n" +
+			"Content-Transfer-Encoding: base64\r\n" +
+			"\r\n" +
+			base64.StdEncoding.EncodeToString([]byte("Content of test.pdf")) + "\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: application/zip; name=\"test.zip\"\r\n" +
+			"Content-Disposition: attachment; filename=\"test.zip\"\r\n" +
+			"Content-Transfer-Encoding: base64\r\n" +
+			"\r\n" +
+			base64.StdEncoding.EncodeToString([]byte("Content of test.zip")) + "\r\n" +
+			"--_BOUNDARY_1_--\r\n",
+	}
+
+	testMessage(t, m, 1, want)
+}
+
+func TestAttachments(t *testing.T) {
+	m := NewMessage()
+	m.SetHeader("From", "from@example.com")
+	m.SetHeader("To", "to@example.com")
+	m.SetBody("text/plain", "Test")
+	m.Attach(mockCopyFile("/tmp/test.pdf"))
+	m.Attach(mockCopyFile("/tmp/test.zip"))
+
+	want := &message{
+		from: "from@example.com",
+		to:   []string{"to@example.com"},
+		content: "From: from@example.com\r\n" +
+			"To: to@example.com\r\n" +
+			"Content-Type: multipart/mixed;\r\n" +
+			" boundary=_BOUNDARY_1_\r\n" +
+			"\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: text/plain; charset=UTF-8\r\n" +
+			"Content-Transfer-Encoding: quoted-printable\r\n" +
+			"\r\n" +
+			"Test\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: application/pdf; name=\"test.pdf\"\r\n" +
+			"Content-Disposition: attachment; filename=\"test.pdf\"\r\n" +
+			"Content-Transfer-Encoding: base64\r\n" +
+			"\r\n" +
+			base64.StdEncoding.EncodeToString([]byte("Content of test.pdf")) + "\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: application/zip; name=\"test.zip\"\r\n" +
+			"Content-Disposition: attachment; filename=\"test.zip\"\r\n" +
+			"Content-Transfer-Encoding: base64\r\n" +
+			"\r\n" +
+			base64.StdEncoding.EncodeToString([]byte("Content of test.zip")) + "\r\n" +
+			"--_BOUNDARY_1_--\r\n",
+	}
+
+	testMessage(t, m, 1, want)
+}
+
+func TestEmbedded(t *testing.T) {
+	m := NewMessage()
+	m.SetHeader("From", "from@example.com")
+	m.SetHeader("To", "to@example.com")
+	m.Embed(mockCopyFileWithHeader(m, "image1.jpg", map[string][]string{"Content-ID": {"<test-content-id>"}}))
+	m.Embed(mockCopyFile("image2.jpg"))
+	m.SetBody("text/plain", "Test")
+
+	want := &message{
+		from: "from@example.com",
+		to:   []string{"to@example.com"},
+		content: "From: from@example.com\r\n" +
+			"To: to@example.com\r\n" +
+			"Content-Type: multipart/related;\r\n" +
+			" boundary=_BOUNDARY_1_\r\n" +
+			"\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: text/plain; charset=UTF-8\r\n" +
+			"Content-Transfer-Encoding: quoted-printable\r\n" +
+			"\r\n" +
+			"Test\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: image/jpeg; name=\"image1.jpg\"\r\n" +
+			"Content-Disposition: inline; filename=\"image1.jpg\"\r\n" +
+			"Content-ID: <test-content-id>\r\n" +
+			"Content-Transfer-Encoding: base64\r\n" +
+			"\r\n" +
+			base64.StdEncoding.EncodeToString([]byte("Content of image1.jpg")) + "\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: image/jpeg; name=\"image2.jpg\"\r\n" +
+			"Content-Disposition: inline; filename=\"image2.jpg\"\r\n" +
+			"Content-ID: <image2.jpg>\r\n" +
+			"Content-Transfer-Encoding: base64\r\n" +
+			"\r\n" +
+			base64.StdEncoding.EncodeToString([]byte("Content of image2.jpg")) + "\r\n" +
+			"--_BOUNDARY_1_--\r\n",
+	}
+
+	testMessage(t, m, 1, want)
+}
+
+func TestFullMessage(t *testing.T) {
+	m := NewMessage()
+	m.SetHeader("From", "from@example.com")
+	m.SetHeader("To", "to@example.com")
+	m.SetBody("text/plain", "¡Hola, señor!")
+	m.AddAlternative("text/html", "¡<b>Hola</b>, <i>señor</i>!</h1>")
+	m.Attach(mockCopyFile("test.pdf"))
+	m.Embed(mockCopyFile("image.jpg"))
+
+	want := &message{
+		from: "from@example.com",
+		to:   []string{"to@example.com"},
+		content: "From: from@example.com\r\n" +
+			"To: to@example.com\r\n" +
+			"Content-Type: multipart/mixed;\r\n" +
+			" boundary=_BOUNDARY_1_\r\n" +
+			"\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: multipart/related;\r\n" +
+			" boundary=_BOUNDARY_2_\r\n" +
+			"\r\n" +
+			"--_BOUNDARY_2_\r\n" +
+			"Content-Type: multipart/alternative;\r\n" +
+			" boundary=_BOUNDARY_3_\r\n" +
+			"\r\n" +
+			"--_BOUNDARY_3_\r\n" +
+			"Content-Type: text/plain; charset=UTF-8\r\n" +
+			"Content-Transfer-Encoding: quoted-printable\r\n" +
+			"\r\n" +
+			"=C2=A1Hola, se=C3=B1or!\r\n" +
+			"--_BOUNDARY_3_\r\n" +
+			"Content-Type: text/html; charset=UTF-8\r\n" +
+			"Content-Transfer-Encoding: quoted-printable\r\n" +
+			"\r\n" +
+			"=C2=A1<b>Hola</b>, <i>se=C3=B1or</i>!</h1>\r\n" +
+			"--_BOUNDARY_3_--\r\n" +
+			"\r\n" +
+			"--_BOUNDARY_2_\r\n" +
+			"Content-Type: image/jpeg; name=\"image.jpg\"\r\n" +
+			"Content-Disposition: inline; filename=\"image.jpg\"\r\n" +
+			"Content-ID: <image.jpg>\r\n" +
+			"Content-Transfer-Encoding: base64\r\n" +
+			"\r\n" +
+			base64.StdEncoding.EncodeToString([]byte("Content of image.jpg")) + "\r\n" +
+			"--_BOUNDARY_2_--\r\n" +
+			"\r\n" +
+			"--_BOUNDARY_1_\r\n" +
+			"Content-Type: application/pdf; name=\"test.pdf\"\r\n" +
+			"Content-Disposition: attachment; filename=\"test.pdf\"\r\n" +
+			"Content-Transfer-Encoding: base64\r\n" +
+			"\r\n" +
+			base64.StdEncoding.EncodeToString([]byte("Content of test.pdf")) + "\r\n" +
+			"--_BOUNDARY_1_--\r\n",
+	}
+
+	testMessage(t, m, 3, want)
+
+	want = &message{
+		from: "from@example.com",
+		to:   []string{"to@example.com"},
+		content: "From: from@example.com\r\n" +
+			"To: to@example.com\r\n" +
+			"Content-Type: text/plain; charset=UTF-8\r\n" +
+			"Content-Transfer-Encoding: quoted-printable\r\n" +
+			"\r\n" +
+			"Test reset",
+	}
+	m.Reset()
+	m.SetHeader("From", "from@example.com")
+	m.SetHeader("To", "to@example.com")
+	m.SetBody("text/plain", "Test reset")
+	testMessage(t, m, 0, want)
+}
+
+func TestQpLineLength(t *testing.T) {
+	m := NewMessage()
+	m.SetHeader("From", "from@example.com")
+	m.SetHeader("To", "to@example.com")
+	m.SetBody("text/plain",
+		strings.Repeat("0", 76)+"\r\n"+
+			strings.Repeat("0", 75)+"à\r\n"+
+			strings.Repeat("0", 74)+"à\r\n"+
+			strings.Repeat("0", 73)+"à\r\n"+
+			strings.Repeat("0", 72)+"à\r\n"+
+			strings.Repeat("0", 75)+"\r\n"+
+			strings.Repeat("0", 76)+"\n")
+
+	want := &message{
+		from: "from@example.com",
+		to:   []string{"to@example.com"},
+		content: "From: from@example.com\r\n" +
+			"To: to@example.com\r\n" +
+			"Content-Type: text/plain; charset=UTF-8\r\n" +
+			"Content-Transfer-Encoding: quoted-printable\r\n" +
+			"\r\n" +
+			strings.Repeat("0", 75) + "=\r\n0\r\n" +
+			strings.Repeat("0", 75) + "=\r\n=C3=A0\r\n" +
+			strings.Repeat("0", 74) + "=\r\n=C3=A0\r\n" +
+			strings.Repeat("0", 73) + "=\r\n=C3=A0\r\n" +
+			strings.Repeat("0", 72) + "=C3=\r\n=A0\r\n" +
+			strings.Repeat("0", 75) + "\r\n" +
+			strings.Repeat("0", 75) + "=\r\n0\r\n",
+	}
+
+	testMessage(t, m, 0, want)
+}
+
+func TestBase64LineLength(t *testing.T) {
+	m := NewMessage(SetCharset("UTF-8"), SetEncoding(Base64))
+	m.SetHeader("From", "from@example.com")
+	m.SetHeader("To", "to@example.com")
+	m.SetBody("text/plain", strings.Repeat("0", 58))
+
+	want := &message{
+		from: "from@example.com",
+		to:   []string{"to@example.com"},
+		content: "From: from@example.com\r\n" +
+			"To: to@example.com\r\n" +
+			"Content-Type: text/plain; charset=UTF-8\r\n" +
+			"Content-Transfer-Encoding: base64\r\n" +
+			"\r\n" +
+			strings.Repeat("MDAw", 19) + "\r\nMA==",
+	}
+
+	testMessage(t, m, 0, want)
+}
+
+func TestEmptyName(t *testing.T) {
+	m := NewMessage()
+	m.SetAddressHeader("From", "from@example.com", "")
+
+	want := &message{
+		from:    "from@example.com",
+		content: "From: from@example.com\r\n",
+	}
+
+	testMessage(t, m, 0, want)
+}
+
+func TestEmptyHeader(t *testing.T) {
+	m := NewMessage()
+	m.SetHeaders(map[string][]string{
+		"From":    {"from@example.com"},
+		"X-Empty": nil,
+	})
+
+	want := &message{
+		from: "from@example.com",
+		content: "From: from@example.com\r\n" +
+			"X-Empty:\r\n",
+	}
+
+	testMessage(t, m, 0, want)
+}
+
+func testMessage(t *testing.T, m *Message, bCount int, want *message) {
+	err := Send(stubSendMail(t, bCount, want), m)
+	if err != nil {
+		t.Error(err)
+	}
+}
+
+func stubSendMail(t *testing.T, bCount int, want *message) SendFunc {
+	return func(from string, to []string, m io.WriterTo) error {
+		if from != want.from {
+			t.Fatalf("Invalid from, got %q, want %q", from, want.from)
+		}
+
+		if len(to) != len(want.to) {
+			t.Fatalf("Invalid recipient count, \ngot %d: %q\nwant %d: %q",
+				len(to), to,
+				len(want.to), want.to,
+			)
+		}
+		for i := range want.to {
+			if to[i] != want.to[i] {
+				t.Fatalf("Invalid recipient, got %q, want %q",
+					to[i], want.to[i],
+				)
+			}
+		}
+
+		buf := new(bytes.Buffer)
+		_, err := m.WriteTo(buf)
+		if err != nil {
+			t.Error(err)
+		}
+		got := buf.String()
+		wantMsg := string("Mime-Version: 1.0\r\n" +
+			"Date: Wed, 25 Jun 2014 17:46:00 +0000\r\n" +
+			want.content)
+		if bCount > 0 {
+			boundaries := getBoundaries(t, bCount, got)
+			for i, b := range boundaries {
+				wantMsg = strings.Replace(wantMsg, "_BOUNDARY_"+strconv.Itoa(i+1)+"_", b, -1)
+			}
+		}
+
+		compareBodies(t, got, wantMsg)
+
+		return nil
+	}
+}
+
+func compareBodies(t *testing.T, got, want string) {
+	// We cannot do a simple comparison since the ordering of headers' fields
+	// is random.
+	gotLines := strings.Split(got, "\r\n")
+	wantLines := strings.Split(want, "\r\n")
+
+	// We only test for too many lines, missing lines are tested after
+	if len(gotLines) > len(wantLines) {
+		t.Fatalf("Message has too many lines, \ngot %d:\n%s\nwant %d:\n%s", len(gotLines), got, len(wantLines), want)
+	}
+
+	isInHeader := true
+	headerStart := 0
+	for i, line := range wantLines {
+		if line == gotLines[i] {
+			if line == "" {
+				isInHeader = false
+			} else if !isInHeader && len(line) > 2 && line[:2] == "--" {
+				isInHeader = true
+				headerStart = i + 1
+			}
+			continue
+		}
+
+		if !isInHeader {
+			missingLine(t, line, got, want)
+		}
+
+		isMissing := true
+		for j := headerStart; j < len(gotLines); j++ {
+			if gotLines[j] == "" {
+				break
+			}
+			if gotLines[j] == line {
+				isMissing = false
+				break
+			}
+		}
+		if isMissing {
+			missingLine(t, line, got, want)
+		}
+	}
+}
+
+func missingLine(t *testing.T, line, got, want string) {
+	t.Fatalf("Missing line %q\ngot:\n%s\nwant:\n%s", line, got, want)
+}
+
+func getBoundaries(t *testing.T, count int, m string) []string {
+	if matches := boundaryRegExp.FindAllStringSubmatch(m, count); matches != nil {
+		boundaries := make([]string, count)
+		for i, match := range matches {
+			boundaries[i] = match[1]
+		}
+		return boundaries
+	}
+
+	t.Fatal("Boundary not found in body")
+	return []string{""}
+}
+
+var boundaryRegExp = regexp.MustCompile("boundary=(\\w+)")
+
+func mockCopyFile(name string) (string, FileSetting) {
+	return name, SetCopyFunc(func(w io.Writer) error {
+		_, err := w.Write([]byte("Content of " + filepath.Base(name)))
+		return err
+	})
+}
+
+func mockCopyFileWithHeader(m *Message, name string, h map[string][]string) (string, FileSetting, FileSetting) {
+	name, f := mockCopyFile(name)
+	return name, f, SetHeader(h)
+}
+
+func BenchmarkFull(b *testing.B) {
+	discardFunc := SendFunc(func(from string, to []string, m io.WriterTo) error {
+		_, err := m.WriteTo(ioutil.Discard)
+		return err
+	})
+
+	m := NewMessage()
+	b.ResetTimer()
+	for n := 0; n < b.N; n++ {
+		m.SetAddressHeader("From", "from@example.com", "Señor From")
+		m.SetHeaders(map[string][]string{
+			"To":      {"to@example.com"},
+			"Cc":      {"cc@example.com"},
+			"Bcc":     {"bcc1@example.com", "bcc2@example.com"},
+			"Subject": {"¡Hola, señor!"},
+		})
+		m.SetBody("text/plain", "¡Hola, señor!")
+		m.AddAlternative("text/html", "<p>¡Hola, señor!</p>")
+		m.Attach(mockCopyFile("benchmark.txt"))
+		m.Embed(mockCopyFile("benchmark.jpg"))
+
+		if err := Send(discardFunc, m); err != nil {
+			panic(err)
+		}
+		m.Reset()
+	}
+}

+ 21 - 0
src/github.com/go-gomail/gomail/mime.go

@@ -0,0 +1,21 @@
+// +build go1.5
+
+package gomail
+
+import (
+	"mime"
+	"mime/quotedprintable"
+	"strings"
+)
+
+var newQPWriter = quotedprintable.NewWriter
+
+type mimeEncoder struct {
+	mime.WordEncoder
+}
+
+var (
+	bEncoding     = mimeEncoder{mime.BEncoding}
+	qEncoding     = mimeEncoder{mime.QEncoding}
+	lastIndexByte = strings.LastIndexByte
+)

+ 25 - 0
src/github.com/go-gomail/gomail/mime_go14.go

@@ -0,0 +1,25 @@
+// +build !go1.5
+
+package gomail
+
+import "gopkg.in/alexcesaro/quotedprintable.v3"
+
+var newQPWriter = quotedprintable.NewWriter
+
+type mimeEncoder struct {
+	quotedprintable.WordEncoder
+}
+
+var (
+	bEncoding     = mimeEncoder{quotedprintable.BEncoding}
+	qEncoding     = mimeEncoder{quotedprintable.QEncoding}
+	lastIndexByte = func(s string, c byte) int {
+		for i := len(s) - 1; i >= 0; i-- {
+
+			if s[i] == c {
+				return i
+			}
+		}
+		return -1
+	}
+)

+ 116 - 0
src/github.com/go-gomail/gomail/send.go

@@ -0,0 +1,116 @@
+package gomail
+
+import (
+	"errors"
+	"fmt"
+	"io"
+	"net/mail"
+)
+
+// Sender is the interface that wraps the Send method.
+//
+// Send sends an email to the given addresses.
+type Sender interface {
+	Send(from string, to []string, msg io.WriterTo) error
+}
+
+// SendCloser is the interface that groups the Send and Close methods.
+type SendCloser interface {
+	Sender
+	Close() error
+}
+
+// A SendFunc is a function that sends emails to the given addresses.
+//
+// The SendFunc type is an adapter to allow the use of ordinary functions as
+// email senders. If f is a function with the appropriate signature, SendFunc(f)
+// is a Sender object that calls f.
+type SendFunc func(from string, to []string, msg io.WriterTo) error
+
+// Send calls f(from, to, msg).
+func (f SendFunc) Send(from string, to []string, msg io.WriterTo) error {
+	return f(from, to, msg)
+}
+
+// Send sends emails using the given Sender.
+func Send(s Sender, msg ...*Message) error {
+	for i, m := range msg {
+		if err := send(s, m); err != nil {
+			return fmt.Errorf("gomail: could not send email %d: %v", i+1, err)
+		}
+	}
+
+	return nil
+}
+
+func send(s Sender, m *Message) error {
+	from, err := m.getFrom()
+	if err != nil {
+		return err
+	}
+
+	to, err := m.getRecipients()
+	if err != nil {
+		return err
+	}
+
+	if err := s.Send(from, to, m); err != nil {
+		return err
+	}
+
+	return nil
+}
+
+func (m *Message) getFrom() (string, error) {
+	from := m.header["Sender"]
+	if len(from) == 0 {
+		from = m.header["From"]
+		if len(from) == 0 {
+			return "", errors.New(`gomail: invalid message, "From" field is absent`)
+		}
+	}
+
+	return parseAddress(from[0])
+}
+
+func (m *Message) getRecipients() ([]string, error) {
+	n := 0
+	for _, field := range []string{"To", "Cc", "Bcc"} {
+		if addresses, ok := m.header[field]; ok {
+			n += len(addresses)
+		}
+	}
+	list := make([]string, 0, n)
+
+	for _, field := range []string{"To", "Cc", "Bcc"} {
+		if addresses, ok := m.header[field]; ok {
+			for _, a := range addresses {
+				addr, err := parseAddress(a)
+				if err != nil {
+					return nil, err
+				}
+				list = addAddress(list, addr)
+			}
+		}
+	}
+
+	return list, nil
+}
+
+func addAddress(list []string, addr string) []string {
+	for _, a := range list {
+		if addr == a {
+			return list
+		}
+	}
+
+	return append(list, addr)
+}
+
+func parseAddress(field string) (string, error) {
+	addr, err := mail.ParseAddress(field)
+	if err != nil {
+		return "", fmt.Errorf("gomail: invalid address %q: %v", field, err)
+	}
+	return addr.Address, nil
+}

+ 80 - 0
src/github.com/go-gomail/gomail/send_test.go

@@ -0,0 +1,80 @@
+package gomail
+
+import (
+	"bytes"
+	"io"
+	"reflect"
+	"testing"
+)
+
+const (
+	testTo1  = "to1@example.com"
+	testTo2  = "to2@example.com"
+	testFrom = "from@example.com"
+	testBody = "Test message"
+	testMsg  = "To: " + testTo1 + ", " + testTo2 + "\r\n" +
+		"From: " + testFrom + "\r\n" +
+		"Mime-Version: 1.0\r\n" +
+		"Date: Wed, 25 Jun 2014 17:46:00 +0000\r\n" +
+		"Content-Type: text/plain; charset=UTF-8\r\n" +
+		"Content-Transfer-Encoding: quoted-printable\r\n" +
+		"\r\n" +
+		testBody
+)
+
+type mockSender SendFunc
+
+func (s mockSender) Send(from string, to []string, msg io.WriterTo) error {
+	return s(from, to, msg)
+}
+
+type mockSendCloser struct {
+	mockSender
+	close func() error
+}
+
+func (s *mockSendCloser) Close() error {
+	return s.close()
+}
+
+func TestSend(t *testing.T) {
+	s := &mockSendCloser{
+		mockSender: stubSend(t, testFrom, []string{testTo1, testTo2}, testMsg),
+		close: func() error {
+			t.Error("Close() should not be called in Send()")
+			return nil
+		},
+	}
+	if err := Send(s, getTestMessage()); err != nil {
+		t.Errorf("Send(): %v", err)
+	}
+}
+
+func getTestMessage() *Message {
+	m := NewMessage()
+	m.SetHeader("From", testFrom)
+	m.SetHeader("To", testTo1, testTo2)
+	m.SetBody("text/plain", testBody)
+
+	return m
+}
+
+func stubSend(t *testing.T, wantFrom string, wantTo []string, wantBody string) mockSender {
+	return func(from string, to []string, msg io.WriterTo) error {
+		if from != wantFrom {
+			t.Errorf("invalid from, got %q, want %q", from, wantFrom)
+		}
+		if !reflect.DeepEqual(to, wantTo) {
+			t.Errorf("invalid to, got %v, want %v", to, wantTo)
+		}
+
+		buf := new(bytes.Buffer)
+		_, err := msg.WriteTo(buf)
+		if err != nil {
+			t.Fatal(err)
+		}
+		compareBodies(t, buf.String(), wantBody)
+
+		return nil
+	}
+}

+ 203 - 0
src/github.com/go-gomail/gomail/smtp.go

@@ -0,0 +1,203 @@
+package gomail
+
+import (
+	"crypto/tls"
+	"fmt"
+	"io"
+	"net"
+	"net/smtp"
+	"strings"
+	"time"
+)
+
+// A Dialer is a dialer to an SMTP server.
+type Dialer struct {
+	// Host represents the host of the SMTP server.
+	Host string
+	// Port represents the port of the SMTP server.
+	Port int
+	// Username is the username to use to authenticate to the SMTP server.
+	Username string
+	// Password is the password to use to authenticate to the SMTP server.
+	Password string
+	// Auth represents the authentication mechanism used to authenticate to the
+	// SMTP server.
+	Auth smtp.Auth
+	// SSL defines whether an SSL connection is used. It should be false in
+	// most cases since the authentication mechanism should use the STARTTLS
+	// extension instead.
+	SSL bool
+	// TSLConfig represents the TLS configuration used for the TLS (when the
+	// STARTTLS extension is used) or SSL connection.
+	TLSConfig *tls.Config
+	// LocalName is the hostname sent to the SMTP server with the HELO command.
+	// By default, "localhost" is sent.
+	LocalName string
+}
+
+// NewDialer returns a new SMTP Dialer. The given parameters are used to connect
+// to the SMTP server.
+func NewDialer(host string, port int, username, password string) *Dialer {
+	return &Dialer{
+		Host:     host,
+		Port:     port,
+		Username: username,
+		Password: password,
+		SSL:      port == 465,
+	}
+}
+
+// NewPlainDialer returns a new SMTP Dialer. The given parameters are used to
+// connect to the SMTP server.
+//
+// Deprecated: Use NewDialer instead.
+func NewPlainDialer(host string, port int, username, password string) *Dialer {
+	return NewDialer(host, port, username, password)
+}
+
+// Dial dials and authenticates to an SMTP server. The returned SendCloser
+// should be closed when done using it.
+func (d *Dialer) Dial() (SendCloser, error) {
+	conn, err := netDialTimeout("tcp", addr(d.Host, d.Port), 10*time.Second)
+	if err != nil {
+		return nil, err
+	}
+
+	if d.SSL {
+		conn = tlsClient(conn, d.tlsConfig())
+	}
+
+	conn.SetDeadline(time.Now().Add(20 * time.Second))
+	c, err := smtpNewClient(conn, d.Host)
+	if err != nil {
+		return nil, err
+	}
+
+	if d.LocalName != "" {
+		if err := c.Hello(d.LocalName); err != nil {
+			return nil, err
+		}
+	}
+
+	if !d.SSL {
+		if ok, _ := c.Extension("STARTTLS"); ok {
+			if err := c.StartTLS(d.tlsConfig()); err != nil {
+				c.Close()
+				return nil, err
+			}
+		}
+	}
+
+	if d.Auth == nil && d.Username != "" {
+		if ok, auths := c.Extension("AUTH"); ok {
+			if strings.Contains(auths, "CRAM-MD5") {
+				d.Auth = smtp.CRAMMD5Auth(d.Username, d.Password)
+			} else if strings.Contains(auths, "LOGIN") &&
+				!strings.Contains(auths, "PLAIN") {
+				d.Auth = &loginAuth{
+					username: d.Username,
+					password: d.Password,
+					host:     d.Host,
+				}
+			} else {
+				d.Auth = smtp.PlainAuth("", d.Username, d.Password, d.Host)
+			}
+		}
+	}
+
+	if d.Auth != nil {
+		if err = c.Auth(d.Auth); err != nil {
+			c.Close()
+			return nil, err
+		}
+	}
+
+	return &smtpSender{c, d}, nil
+}
+
+func (d *Dialer) tlsConfig() *tls.Config {
+	if d.TLSConfig == nil {
+		return &tls.Config{ServerName: d.Host}
+	}
+	return d.TLSConfig
+}
+
+func addr(host string, port int) string {
+	return fmt.Sprintf("%s:%d", host, port)
+}
+
+// DialAndSend opens a connection to the SMTP server, sends the given emails and
+// closes the connection.
+func (d *Dialer) DialAndSend(m ...*Message) error {
+	s, err := d.Dial()
+	if err != nil {
+		return err
+	}
+	defer s.Close()
+
+	return Send(s, m...)
+}
+
+type smtpSender struct {
+	smtpClient
+	d *Dialer
+}
+
+func (c *smtpSender) Send(from string, to []string, msg io.WriterTo) error {
+	if err := c.Mail(from); err != nil {
+		if err == io.EOF {
+			// This is probably due to a timeout, so reconnect and try again.
+			sc, derr := c.d.Dial()
+			if derr == nil {
+				if s, ok := sc.(*smtpSender); ok {
+					*c = *s
+					return c.Send(from, to, msg)
+				}
+			}
+		}
+		return err
+	}
+
+	for _, addr := range to {
+		if err := c.Rcpt(addr); err != nil {
+			return err
+		}
+	}
+
+	w, err := c.Data()
+	if err != nil {
+		return err
+	}
+
+	if _, err = msg.WriteTo(w); err != nil {
+		w.Close()
+		return err
+	}
+
+	return w.Close()
+}
+
+func (c *smtpSender) Close() error {
+	return c.Quit()
+}
+
+// Stubbed out for tests.
+var (
+	netDialTimeout = net.DialTimeout
+	tlsClient      = tls.Client
+	smtpNewClient  = func(conn net.Conn, host string) (smtpClient, error) {
+		return smtp.NewClient(conn, host)
+	}
+)
+
+type smtpClient interface {
+	Hello(string) error
+	Extension(string) (bool, string)
+	StartTLS(*tls.Config) error
+	Auth(smtp.Auth) error
+	Mail(string) error
+	Rcpt(string) error
+	Data() (io.WriteCloser, error)
+	Quit() error
+	Close() error
+}

+ 292 - 0
src/github.com/go-gomail/gomail/smtp_test.go

@@ -0,0 +1,292 @@
+package gomail
+
+import (
+	"bytes"
+	"crypto/tls"
+	"io"
+	"net"
+	"net/smtp"
+	"reflect"
+	"testing"
+	"time"
+)
+
+const (
+	testPort    = 587
+	testSSLPort = 465
+)
+
+var (
+	testConn    = &net.TCPConn{}
+	testTLSConn = &tls.Conn{}
+	testConfig  = &tls.Config{InsecureSkipVerify: true}
+	testAuth    = smtp.PlainAuth("", testUser, testPwd, testHost)
+)
+
+func TestDialer(t *testing.T) {
+	d := NewDialer(testHost, testPort, "user", "pwd")
+	testSendMail(t, d, []string{
+		"Extension STARTTLS",
+		"StartTLS",
+		"Extension AUTH",
+		"Auth",
+		"Mail " + testFrom,
+		"Rcpt " + testTo1,
+		"Rcpt " + testTo2,
+		"Data",
+		"Write message",
+		"Close writer",
+		"Quit",
+		"Close",
+	})
+}
+
+func TestDialerSSL(t *testing.T) {
+	d := NewDialer(testHost, testSSLPort, "user", "pwd")
+	testSendMail(t, d, []string{
+		"Extension AUTH",
+		"Auth",
+		"Mail " + testFrom,
+		"Rcpt " + testTo1,
+		"Rcpt " + testTo2,
+		"Data",
+		"Write message",
+		"Close writer",
+		"Quit",
+		"Close",
+	})
+}
+
+func TestDialerConfig(t *testing.T) {
+	d := NewDialer(testHost, testPort, "user", "pwd")
+	d.LocalName = "test"
+	d.TLSConfig = testConfig
+	testSendMail(t, d, []string{
+		"Hello test",
+		"Extension STARTTLS",
+		"StartTLS",
+		"Extension AUTH",
+		"Auth",
+		"Mail " + testFrom,
+		"Rcpt " + testTo1,
+		"Rcpt " + testTo2,
+		"Data",
+		"Write message",
+		"Close writer",
+		"Quit",
+		"Close",
+	})
+}
+
+func TestDialerSSLConfig(t *testing.T) {
+	d := NewDialer(testHost, testSSLPort, "user", "pwd")
+	d.LocalName = "test"
+	d.TLSConfig = testConfig
+	testSendMail(t, d, []string{
+		"Hello test",
+		"Extension AUTH",
+		"Auth",
+		"Mail " + testFrom,
+		"Rcpt " + testTo1,
+		"Rcpt " + testTo2,
+		"Data",
+		"Write message",
+		"Close writer",
+		"Quit",
+		"Close",
+	})
+}
+
+func TestDialerNoAuth(t *testing.T) {
+	d := &Dialer{
+		Host: testHost,
+		Port: testPort,
+	}
+	testSendMail(t, d, []string{
+		"Extension STARTTLS",
+		"StartTLS",
+		"Mail " + testFrom,
+		"Rcpt " + testTo1,
+		"Rcpt " + testTo2,
+		"Data",
+		"Write message",
+		"Close writer",
+		"Quit",
+		"Close",
+	})
+}
+
+func TestDialerTimeout(t *testing.T) {
+	d := &Dialer{
+		Host: testHost,
+		Port: testPort,
+	}
+	testSendMailTimeout(t, d, []string{
+		"Extension STARTTLS",
+		"StartTLS",
+		"Mail " + testFrom,
+		"Extension STARTTLS",
+		"StartTLS",
+		"Mail " + testFrom,
+		"Rcpt " + testTo1,
+		"Rcpt " + testTo2,
+		"Data",
+		"Write message",
+		"Close writer",
+		"Quit",
+		"Close",
+	})
+}
+
+type mockClient struct {
+	t       *testing.T
+	i       int
+	want    []string
+	addr    string
+	config  *tls.Config
+	timeout bool
+}
+
+func (c *mockClient) Hello(localName string) error {
+	c.do("Hello " + localName)
+	return nil
+}
+
+func (c *mockClient) Extension(ext string) (bool, string) {
+	c.do("Extension " + ext)
+	return true, ""
+}
+
+func (c *mockClient) StartTLS(config *tls.Config) error {
+	assertConfig(c.t, config, c.config)
+	c.do("StartTLS")
+	return nil
+}
+
+func (c *mockClient) Auth(a smtp.Auth) error {
+	if !reflect.DeepEqual(a, testAuth) {
+		c.t.Errorf("Invalid auth, got %#v, want %#v", a, testAuth)
+	}
+	c.do("Auth")
+	return nil
+}
+
+func (c *mockClient) Mail(from string) error {
+	c.do("Mail " + from)
+	if c.timeout {
+		c.timeout = false
+		return io.EOF
+	}
+	return nil
+}
+
+func (c *mockClient) Rcpt(to string) error {
+	c.do("Rcpt " + to)
+	return nil
+}
+
+func (c *mockClient) Data() (io.WriteCloser, error) {
+	c.do("Data")
+	return &mockWriter{c: c, want: testMsg}, nil
+}
+
+func (c *mockClient) Quit() error {
+	c.do("Quit")
+	return nil
+}
+
+func (c *mockClient) Close() error {
+	c.do("Close")
+	return nil
+}
+
+func (c *mockClient) do(cmd string) {
+	if c.i >= len(c.want) {
+		c.t.Fatalf("Invalid command %q", cmd)
+	}
+
+	if cmd != c.want[c.i] {
+		c.t.Fatalf("Invalid command, got %q, want %q", cmd, c.want[c.i])
+	}
+	c.i++
+}
+
+type mockWriter struct {
+	want string
+	c    *mockClient
+	buf  bytes.Buffer
+}
+
+func (w *mockWriter) Write(p []byte) (int, error) {
+	if w.buf.Len() == 0 {
+		w.c.do("Write message")
+	}
+	w.buf.Write(p)
+	return len(p), nil
+}
+
+func (w *mockWriter) Close() error {
+	compareBodies(w.c.t, w.buf.String(), w.want)
+	w.c.do("Close writer")
+	return nil
+}
+
+func testSendMail(t *testing.T, d *Dialer, want []string) {
+	doTestSendMail(t, d, want, false)
+}
+
+func testSendMailTimeout(t *testing.T, d *Dialer, want []string) {
+	doTestSendMail(t, d, want, true)
+}
+
+func doTestSendMail(t *testing.T, d *Dialer, want []string, timeout bool) {
+	testClient := &mockClient{
+		t:       t,
+		want:    want,
+		addr:    addr(d.Host, d.Port),
+		config:  d.TLSConfig,
+		timeout: timeout,
+	}
+
+	netDialTimeout = func(network, address string, d time.Duration) (net.Conn, error) {
+		if network != "tcp" {
+			t.Errorf("Invalid network, got %q, want tcp", network)
+		}
+		if address != testClient.addr {
+			t.Errorf("Invalid address, got %q, want %q",
+				address, testClient.addr)
+		}
+		return testConn, nil
+	}
+
+	tlsClient = func(conn net.Conn, config *tls.Config) *tls.Conn {
+		if conn != testConn {
+			t.Errorf("Invalid conn, got %#v, want %#v", conn, testConn)
+		}
+		assertConfig(t, config, testClient.config)
+		return testTLSConn
+	}
+
+	smtpNewClient = func(conn net.Conn, host string) (smtpClient, error) {
+		if host != testHost {
+			t.Errorf("Invalid host, got %q, want %q", host, testHost)
+		}
+		return testClient, nil
+	}
+
+	if err := d.DialAndSend(getTestMessage()); err != nil {
+		t.Error(err)
+	}
+}
+
+func assertConfig(t *testing.T, got, want *tls.Config) {
+	if want == nil {
+		want = &tls.Config{ServerName: testHost}
+	}
+	if got.ServerName != want.ServerName {
+		t.Errorf("Invalid field ServerName in config, got %q, want %q", got.ServerName, want.ServerName)
+	}
+	if got.InsecureSkipVerify != want.InsecureSkipVerify {
+		t.Errorf("Invalid field InsecureSkipVerify in config, got %v, want %v", got.InsecureSkipVerify, want.InsecureSkipVerify)
+	}
+}

+ 306 - 0
src/github.com/go-gomail/gomail/writeto.go

@@ -0,0 +1,306 @@
+package gomail
+
+import (
+	"encoding/base64"
+	"errors"
+	"io"
+	"mime"
+	"mime/multipart"
+	"path/filepath"
+	"strings"
+	"time"
+)
+
+// WriteTo implements io.WriterTo. It dumps the whole message into w.
+func (m *Message) WriteTo(w io.Writer) (int64, error) {
+	mw := &messageWriter{w: w}
+	mw.writeMessage(m)
+	return mw.n, mw.err
+}
+
+func (w *messageWriter) writeMessage(m *Message) {
+	if _, ok := m.header["Mime-Version"]; !ok {
+		w.writeString("Mime-Version: 1.0\r\n")
+	}
+	if _, ok := m.header["Date"]; !ok {
+		w.writeHeader("Date", m.FormatDate(now()))
+	}
+	w.writeHeaders(m.header)
+
+	if m.hasMixedPart() {
+		w.openMultipart("mixed")
+	}
+
+	if m.hasRelatedPart() {
+		w.openMultipart("related")
+	}
+
+	if m.hasAlternativePart() {
+		w.openMultipart("alternative")
+	}
+	for _, part := range m.parts {
+		w.writePart(part, m.charset)
+	}
+	if m.hasAlternativePart() {
+		w.closeMultipart()
+	}
+
+	w.addFiles(m.embedded, false)
+	if m.hasRelatedPart() {
+		w.closeMultipart()
+	}
+
+	w.addFiles(m.attachments, true)
+	if m.hasMixedPart() {
+		w.closeMultipart()
+	}
+}
+
+func (m *Message) hasMixedPart() bool {
+	return (len(m.parts) > 0 && len(m.attachments) > 0) || len(m.attachments) > 1
+}
+
+func (m *Message) hasRelatedPart() bool {
+	return (len(m.parts) > 0 && len(m.embedded) > 0) || len(m.embedded) > 1
+}
+
+func (m *Message) hasAlternativePart() bool {
+	return len(m.parts) > 1
+}
+
+type messageWriter struct {
+	w          io.Writer
+	n          int64
+	writers    [3]*multipart.Writer
+	partWriter io.Writer
+	depth      uint8
+	err        error
+}
+
+func (w *messageWriter) openMultipart(mimeType string) {
+	mw := multipart.NewWriter(w)
+	contentType := "multipart/" + mimeType + ";\r\n boundary=" + mw.Boundary()
+	w.writers[w.depth] = mw
+
+	if w.depth == 0 {
+		w.writeHeader("Content-Type", contentType)
+		w.writeString("\r\n")
+	} else {
+		w.createPart(map[string][]string{
+			"Content-Type": {contentType},
+		})
+	}
+	w.depth++
+}
+
+func (w *messageWriter) createPart(h map[string][]string) {
+	w.partWriter, w.err = w.writers[w.depth-1].CreatePart(h)
+}
+
+func (w *messageWriter) closeMultipart() {
+	if w.depth > 0 {
+		w.writers[w.depth-1].Close()
+		w.depth--
+	}
+}
+
+func (w *messageWriter) writePart(p *part, charset string) {
+	w.writeHeaders(map[string][]string{
+		"Content-Type":              {p.contentType + "; charset=" + charset},
+		"Content-Transfer-Encoding": {string(p.encoding)},
+	})
+	w.writeBody(p.copier, p.encoding)
+}
+
+func (w *messageWriter) addFiles(files []*file, isAttachment bool) {
+	for _, f := range files {
+		if _, ok := f.Header["Content-Type"]; !ok {
+			mediaType := mime.TypeByExtension(filepath.Ext(f.Name))
+			if mediaType == "" {
+				mediaType = "application/octet-stream"
+			}
+			f.setHeader("Content-Type", mediaType+`; name="`+f.Name+`"`)
+		}
+
+		if _, ok := f.Header["Content-Transfer-Encoding"]; !ok {
+			f.setHeader("Content-Transfer-Encoding", string(Base64))
+		}
+
+		if _, ok := f.Header["Content-Disposition"]; !ok {
+			var disp string
+			if isAttachment {
+				disp = "attachment"
+			} else {
+				disp = "inline"
+			}
+			f.setHeader("Content-Disposition", disp+`; filename="`+f.Name+`"`)
+		}
+
+		if !isAttachment {
+			if _, ok := f.Header["Content-ID"]; !ok {
+				f.setHeader("Content-ID", "<"+f.Name+">")
+			}
+		}
+		w.writeHeaders(f.Header)
+		w.writeBody(f.CopyFunc, Base64)
+	}
+}
+
+func (w *messageWriter) Write(p []byte) (int, error) {
+	if w.err != nil {
+		return 0, errors.New("gomail: cannot write as writer is in error")
+	}
+
+	var n int
+	n, w.err = w.w.Write(p)
+	w.n += int64(n)
+	return n, w.err
+}
+
+func (w *messageWriter) writeString(s string) {
+	n, _ := io.WriteString(w.w, s)
+	w.n += int64(n)
+}
+
+func (w *messageWriter) writeHeader(k string, v ...string) {
+	w.writeString(k)
+	if len(v) == 0 {
+		w.writeString(":\r\n")
+		return
+	}
+	w.writeString(": ")
+
+	// Max header line length is 78 characters in RFC 5322 and 76 characters
+	// in RFC 2047. So for the sake of simplicity we use the 76 characters
+	// limit.
+	charsLeft := 76 - len(k) - len(": ")
+
+	for i, s := range v {
+		// If the line is already too long, insert a newline right away.
+		if charsLeft < 1 {
+			if i == 0 {
+				w.writeString("\r\n ")
+			} else {
+				w.writeString(",\r\n ")
+			}
+			charsLeft = 75
+		} else if i != 0 {
+			w.writeString(", ")
+			charsLeft -= 2
+		}
+
+		// While the header content is too long, fold it by inserting a newline.
+		for len(s) > charsLeft {
+			s = w.writeLine(s, charsLeft)
+			charsLeft = 75
+		}
+		w.writeString(s)
+		if i := lastIndexByte(s, '\n'); i != -1 {
+			charsLeft = 75 - (len(s) - i - 1)
+		} else {
+			charsLeft -= len(s)
+		}
+	}
+	w.writeString("\r\n")
+}
+
+func (w *messageWriter) writeLine(s string, charsLeft int) string {
+	// If there is already a newline before the limit. Write the line.
+	if i := strings.IndexByte(s, '\n'); i != -1 && i < charsLeft {
+		w.writeString(s[:i+1])
+		return s[i+1:]
+	}
+
+	for i := charsLeft - 1; i >= 0; i-- {
+		if s[i] == ' ' {
+			w.writeString(s[:i])
+			w.writeString("\r\n ")
+			return s[i+1:]
+		}
+	}
+
+	// We could not insert a newline cleanly so look for a space or a newline
+	// even if it is after the limit.
+	for i := 75; i < len(s); i++ {
+		if s[i] == ' ' {
+			w.writeString(s[:i])
+			w.writeString("\r\n ")
+			return s[i+1:]
+		}
+		if s[i] == '\n' {
+			w.writeString(s[:i+1])
+			return s[i+1:]
+		}
+	}
+
+	// Too bad, no space or newline in the whole string. Just write everything.
+	w.writeString(s)
+	return ""
+}
+
+func (w *messageWriter) writeHeaders(h map[string][]string) {
+	if w.depth == 0 {
+		for k, v := range h {
+			if k != "Bcc" {
+				w.writeHeader(k, v...)
+			}
+		}
+	} else {
+		w.createPart(h)
+	}
+}
+
+func (w *messageWriter) writeBody(f func(io.Writer) error, enc Encoding) {
+	var subWriter io.Writer
+	if w.depth == 0 {
+		w.writeString("\r\n")
+		subWriter = w.w
+	} else {
+		subWriter = w.partWriter
+	}
+
+	if enc == Base64 {
+		wc := base64.NewEncoder(base64.StdEncoding, newBase64LineWriter(subWriter))
+		w.err = f(wc)
+		wc.Close()
+	} else if enc == Unencoded {
+		w.err = f(subWriter)
+	} else {
+		wc := newQPWriter(subWriter)
+		w.err = f(wc)
+		wc.Close()
+	}
+}
+
+// As required by RFC 2045, 6.7. (page 21) for quoted-printable, and
+// RFC 2045, 6.8. (page 25) for base64.
+const maxLineLen = 76
+
+// base64LineWriter limits text encoded in base64 to 76 characters per line
+type base64LineWriter struct {
+	w       io.Writer
+	lineLen int
+}
+
+func newBase64LineWriter(w io.Writer) *base64LineWriter {
+	return &base64LineWriter{w: w}
+}
+
+func (w *base64LineWriter) Write(p []byte) (int, error) {
+	n := 0
+	for len(p)+w.lineLen > maxLineLen {
+		w.w.Write(p[:maxLineLen-w.lineLen])
+		w.w.Write([]byte("\r\n"))
+		p = p[maxLineLen-w.lineLen:]
+		n += maxLineLen - w.lineLen
+		w.lineLen = 0
+	}
+
+	w.w.Write(p)
+	w.lineLen += len(p)
+
+	return n + len(p), nil
+}
+
+// Stubbed out for testing.
+var now = time.Now

+ 4 - 0
src/github.com/go-xweb/httpsession/IsRedisStore.go

@@ -0,0 +1,4 @@
+// IsRedisStore
+package httpsession
+
+var IsRedisSessionStore = false

+ 2 - 0
src/github.com/go-xweb/httpsession/README.md

@@ -0,0 +1,2 @@
+Httpsession is an implementation of HTTP session for Go.
+

+ 52 - 0
src/github.com/go-xweb/httpsession/generator.go

@@ -0,0 +1,52 @@
+package httpsession
+
+import (
+	"crypto/hmac"
+	"crypto/rand"
+	"crypto/sha1"
+	"encoding/hex"
+	"fmt"
+	"io"
+	"net/http"
+	"time"
+)
+
+type IdGenerator interface {
+	Gen(req *http.Request) Id
+	IsValid(id Id) bool
+}
+
+type Sha1Generator struct {
+	hashKey string
+}
+
+func NewSha1Generator(hashKey string) *Sha1Generator {
+	return &Sha1Generator{hashKey}
+}
+
+var _ IdGenerator = NewSha1Generator("test")
+
+func GenRandKey(strength int) []byte {
+	k := make([]byte, strength)
+	if _, err := io.ReadFull(rand.Reader, k); err != nil {
+		return nil
+	}
+	return k
+}
+
+func (gen *Sha1Generator) Gen(req *http.Request) Id {
+	bs := GenRandKey(24)
+	if len(bs) == 0 {
+		return Id("")
+	}
+
+	sig := fmt.Sprintf("%s%d%s", req.RemoteAddr, time.Now().UnixNano(), string(bs))
+
+	h := hmac.New(sha1.New, []byte(gen.hashKey))
+	fmt.Fprintf(h, "%s", sig)
+	return Id(hex.EncodeToString(h.Sum(nil)))
+}
+
+func (gen *Sha1Generator) IsValid(id Id) bool {
+	return string(id) != ""
+}

+ 35 - 0
src/github.com/go-xweb/httpsession/listener.go

@@ -0,0 +1,35 @@
+package httpsession
+
+import "errors"
+
+type AfterCreatedListener interface {
+	OnAfterCreated(*Session)
+}
+
+type BeforeReleaseListener interface {
+	OnBeforeRelease(*Session)
+}
+
+func (manager *Manager) AddListener(listener interface{}) error {
+	switch listener.(type) {
+	case AfterCreatedListener:
+		manager.afterCreatedListeners[listener.(AfterCreatedListener)] = true
+	case BeforeReleaseListener:
+		manager.beforeReleaseListeners[listener.(BeforeReleaseListener)] = true
+	default:
+		return errors.New("Unknow listener type")
+	}
+	return nil
+}
+
+func (manager *Manager) RemoveListener(listener interface{}) error {
+	switch listener.(type) {
+	case AfterCreatedListener:
+		delete(manager.afterCreatedListeners, listener.(AfterCreatedListener))
+	case BeforeReleaseListener:
+		delete(manager.beforeReleaseListeners, listener.(BeforeReleaseListener))
+	default:
+		return errors.New("Unknow listener type")
+	}
+	return nil
+}

+ 120 - 0
src/github.com/go-xweb/httpsession/manager.go

@@ -0,0 +1,120 @@
+package httpsession
+
+import (
+	"log"
+	"net/http"
+	"sync"
+	"time"
+)
+
+const (
+	DefaultMaxAge = 30 * time.Minute
+)
+
+var Domain string = ""
+
+type Manager struct {
+	store                  Store
+	maxAge                 time.Duration
+	Path                   string
+	generator              IdGenerator
+	transfer               Transfer
+	beforeReleaseListeners map[BeforeReleaseListener]bool
+	afterCreatedListeners  map[AfterCreatedListener]bool
+	lock                   sync.Mutex
+}
+
+func Default() *Manager {
+	log.Println("IsRedisSessionStore", IsRedisSessionStore)
+	if IsRedisSessionStore {
+		store := NewRedisStore(DefaultMaxAge)
+		key := string(GenRandKey(16))
+		return NewManager(store,
+			NewSha1Generator(key),
+			NewCookieTransfer("SESSIONID", DefaultMaxAge, false, "/", Domain))
+
+	} else {
+		store := NewMemoryStore(DefaultMaxAge)
+		key := string(GenRandKey(16))
+		return NewManager(store,
+			NewSha1Generator(key),
+			NewCookieTransfer("SESSIONID", DefaultMaxAge, false, "/", Domain))
+
+	}
+}
+
+func NewManager(store Store, gen IdGenerator, transfer Transfer) *Manager {
+	return &Manager{
+		store:     store,
+		generator: gen,
+		transfer:  transfer,
+	}
+}
+
+func (manager *Manager) SetMaxAge(maxAge time.Duration) {
+	manager.maxAge = maxAge
+	manager.transfer.SetMaxAge(maxAge)
+	manager.store.SetMaxAge(maxAge)
+}
+
+func (manager *Manager) Session(req *http.Request, rw http.ResponseWriter) *Session {
+	manager.lock.Lock()
+	defer manager.lock.Unlock()
+
+	id, err := manager.transfer.Get(req)
+	if err != nil {
+		// TODO:
+		println("error:", err.Error())
+		return nil
+	}
+
+	if !manager.generator.IsValid(id) {
+		id = manager.generator.Gen(req)
+		manager.transfer.Set(req, rw, id)
+		manager.store.Add(id)
+
+		session := NewSession(id, manager.maxAge, manager)
+		session.Set("Lock", &sync.Mutex{})
+		// is exist?
+		manager.afterCreated(session)
+		return session
+	} else {
+		cookie, _ := req.Cookie(manager.transfer.(*CookieTransfer).Name)
+		cookie.Path = "/"
+		cookie.Secure = false
+		cookie.MaxAge = int(manager.transfer.(*CookieTransfer).MaxAge / time.Second)
+		http.SetCookie(rw, cookie)
+	}
+	session := NewSession(id, manager.maxAge, manager)
+	//	if session.Get("Lock") == nil {
+	//		session.Set("Lock", &sync.Mutex{})
+	//	}
+	return session
+}
+
+func (manager *Manager) Invalidate(rw http.ResponseWriter, session *Session) {
+	manager.beforeReleased(session)
+	manager.store.Clear(session.id)
+	manager.transfer.Clear(rw)
+}
+
+//add 2017-7-30
+func (manager *Manager) IsValidSession(id string) bool {
+	return manager.store.Exist(Id(id))
+}
+
+func (manager *Manager) afterCreated(session *Session) {
+	for listener, _ := range manager.afterCreatedListeners {
+		listener.OnAfterCreated(session)
+	}
+}
+
+func (manager *Manager) beforeReleased(session *Session) {
+	for listener, _ := range manager.beforeReleaseListeners {
+		listener.OnBeforeRelease(session)
+	}
+}
+
+func (manager *Manager) Run() error {
+	return manager.store.Run()
+}

+ 199 - 0
src/github.com/go-xweb/httpsession/memorystore.go

@@ -0,0 +1,199 @@
+package httpsession
+
+import (
+	"sync"
+	"time"
+)
+
+var _ Store = NewMemoryStore(30)
+
+type sessionNode struct {
+	lock   sync.RWMutex
+	kvs    map[string]interface{}
+	last   time.Time
+	maxAge time.Duration
+}
+
+func (node *sessionNode) Get(key string) interface{} {
+	node.lock.RLock()
+	v := node.kvs[key]
+	node.lock.RUnlock()
+	node.lock.Lock()
+	node.last = time.Now()
+	node.lock.Unlock()
+	return v
+}
+
+func (node *sessionNode) Set(key string, v interface{}) {
+	node.lock.Lock()
+	node.kvs[key] = v
+	node.last = time.Now()
+	node.lock.Unlock()
+}
+
+func (node *sessionNode) Del(key string) {
+	node.lock.Lock()
+	delete(node.kvs, key)
+	node.last = time.Now()
+	node.lock.Unlock()
+}
+
+//根据自定义字段,更新
+func (node *sessionNode) UpdateByCustomField(findkey string, findvalue interface{}, setkey string, setvalue interface{}) bool {
+	node.lock.Lock()
+	if v2, ok := node.kvs[findkey]; ok && v2 == findvalue {
+		//存在
+		if setkey != "" {
+			flag := setkey[:1]
+			switch flag {
+			case "+":
+				nkey := setkey[1:]
+				node.kvs[nkey] = node.kvs[nkey].(int) + setvalue.(int)
+			case "-":
+				nkey := setkey[1:]
+				node.kvs[nkey] = node.kvs[nkey].(int) - setvalue.(int)
+			default:
+				node.kvs[setkey] = setvalue
+			}
+			node.last = time.Now()
+		} else {
+			mapVal := setvalue.(*map[string]interface{})
+			for k, v := range *mapVal {
+				node.kvs[k] = v
+			}
+			node.last = time.Now()
+		}
+	}
+	node.lock.Unlock()
+	return true
+}
+
+type MemoryStore struct {
+	lock       sync.RWMutex
+	nodes      map[Id]*sessionNode
+	GcInterval time.Duration
+	maxAge     time.Duration
+}
+
+func NewMemoryStore(maxAge time.Duration) *MemoryStore {
+	return &MemoryStore{nodes: make(map[Id]*sessionNode),
+		maxAge: maxAge, GcInterval: 10 * time.Second}
+}
+
+func (store *MemoryStore) SetMaxAge(maxAge time.Duration) {
+	store.lock.Lock()
+	store.maxAge = maxAge
+	store.lock.Unlock()
+}
+
+func (store *MemoryStore) Get(id Id, key string) interface{} {
+	store.lock.RLock()
+	node, ok := store.nodes[id]
+	store.lock.RUnlock()
+	if !ok {
+		return nil
+	}
+
+	if store.maxAge > 0 && time.Now().Sub(node.last) > node.maxAge {
+		// lazy DELETE expire
+		store.lock.Lock()
+		delete(store.nodes, id)
+		store.lock.Unlock()
+		return nil
+	}
+
+	return node.Get(key)
+}
+
+func (store *MemoryStore) Set(id Id, key string, value interface{}) {
+	store.lock.RLock()
+	node, ok := store.nodes[id]
+	store.lock.RUnlock()
+	if !ok {
+		store.lock.Lock()
+		node = store.newNode()
+		node.kvs[key] = value
+		store.nodes[id] = node
+		store.lock.Unlock()
+	}
+
+	node.Set(key, value)
+}
+
+func (store *MemoryStore) newNode() *sessionNode {
+	return &sessionNode{
+		kvs:    make(map[string]interface{}),
+		last:   time.Now(),
+		maxAge: store.maxAge,
+	}
+}
+
+func (store *MemoryStore) Add(id Id) {
+	node := store.newNode()
+	store.lock.Lock()
+	store.nodes[id] = node
+	store.lock.Unlock()
+}
+
+func (store *MemoryStore) Del(id Id, key string) bool {
+	store.lock.RLock()
+	node, ok := store.nodes[id]
+	store.lock.RUnlock()
+	if ok {
+		node.Del(key)
+	}
+	return true
+}
+
+func (store *MemoryStore) Exist(id Id) bool {
+	store.lock.RLock()
+	defer store.lock.RUnlock()
+	_, ok := store.nodes[id]
+	return ok
+}
+
+func (store *MemoryStore) Clear(id Id) bool {
+	store.lock.Lock()
+	defer store.lock.Unlock()
+	delete(store.nodes, id)
+	return true
+}
+
+func (store *MemoryStore) Run() error {
+	time.AfterFunc(store.GcInterval, func() {
+		store.Run()
+		store.GC()
+	})
+	return nil
+}
+
+//根据指定字段更新Session
+func (store *MemoryStore) UpdateByCustomField(findkey string, findvalue interface{}, setkey string, setvalue interface{}) bool {
+	store.lock.RLock()
+	for _, v := range store.nodes {
+		v.UpdateByCustomField(findkey, findvalue, setkey, setvalue)
+	}
+	store.lock.RUnlock()
+	return true
+}
+
+//
+func (store *MemoryStore) GC() {
+	store.lock.Lock()
+	defer store.lock.Unlock()
+	if store.maxAge == 0 {
+		return
+	}
+	var i, j int
+	for k, v := range store.nodes {
+		if j > 20 || i > 5 {
+			break
+		}
+		if time.Now().Sub(v.last) > v.maxAge {
+			delete(store.nodes, k)
+			i = i + 1
+		}
+		j = j + 1
+	}
+
+}

+ 126 - 0
src/github.com/go-xweb/httpsession/redissessionstore.go

@@ -0,0 +1,126 @@
+//session存放在redis中
+//多节点部署时,可以session不受内存存放的影响
+package httpsession
+
+import (
+	"encoding/json"
+	"redis"
+	"sync"
+	"time"
+)
+
+type redisStore struct {
+	lock       sync.Mutex
+	last       time.Time
+	maxAge     time.Duration
+	GcInterval time.Duration
+}
+
+func NewRedisStore(maxAge time.Duration) *redisStore {
+	return &redisStore{
+		maxAge: maxAge, GcInterval: 10 * time.Second}
+}
+
+//设置超时
+func (store *redisStore) SetMaxAge(maxAge time.Duration) {
+	store.lock.Lock()
+	store.maxAge = maxAge
+	store.lock.Unlock()
+}
+
+//取数据,使用redis的超时,来控制session超时
+func (store *redisStore) Get(id Id, key string) interface{} {
+	store.lock.Lock()
+	bs, err := redis.GetBytes("session", string(id))
+	if err != nil {
+		store.lock.Unlock()
+		return nil
+	}
+	redis.SetExpire("session", string(id), int(store.maxAge.Seconds()))
+	var userdata map[string]interface{}
+	json.Unmarshal(*bs, &userdata)
+	if v, ok := userdata[key]; ok {
+		store.lock.Unlock()
+		store.last = time.Now()
+		return v
+	} else {
+		store.lock.Unlock()
+		return nil
+	}
+}
+
+//设置数据
+func (store *redisStore) Set(id Id, key string, value interface{}) {
+	store.lock.Lock()
+	var userdata map[string]interface{}
+	bs, err := redis.GetBytes("session", string(id))
+	if err != nil {
+		userdata = make(map[string]interface{})
+	} else {
+		json.Unmarshal(*bs, &userdata)
+	}
+	userdata[key] = value
+	putdata, _ := json.Marshal(userdata)
+	redis.PutBytes("session", string(id), &putdata, int(store.maxAge.Seconds()))
+	store.lock.Unlock()
+}
+
+func (store *redisStore) Add(id Id) {
+
+}
+
+func (store *redisStore) Del(id Id, key string) bool {
+	store.lock.Lock()
+	bs, err := redis.GetBytes("session", string(id))
+	if err != nil {
+		store.lock.Unlock()
+		return true
+	}
+	var userdata map[string]interface{}
+	json.Unmarshal(*bs, &userdata)
+	delete(userdata, key)
+	putdata, _ := json.Marshal(userdata)
+	redis.PutBytes("session", string(id), &putdata, int(store.maxAge.Seconds()))
+	store.lock.Unlock()
+	return true
+}
+
+//根据自定义字段,更新
+func (store *redisStore) UpdateByCustomField(findkey string, findvalue interface{}, setkey string, setvalue interface{}) bool {
+	store.lock.Lock()
+	bs, err := redis.GetBytes("session", findkey)
+	if err != nil {
+		store.lock.Unlock()
+		return false
+	}
+	var data map[string]interface{}
+	json.Unmarshal(*bs, &data)
+	data[setkey] = setvalue
+	putdata, _ := json.Marshal(data)
+	redis.PutBytes("session", findkey, &putdata, int(store.maxAge.Seconds()))
+	store.lock.Unlock()
+	return true
+}
+
+func (store *redisStore) Exist(id Id) bool {
+	store.lock.Lock()
+	defer store.lock.Unlock()
+	ret, err := redis.Exists("session", string(id))
+	return err == nil && ret
+}
+
+func (store *redisStore) Clear(id Id) bool {
+	store.lock.Lock()
+	defer store.lock.Unlock()
+	redis.Del("session", string(id))
+	return true
+}
+
+func (store *redisStore) Run() error {
+	return nil
+}
+
+//TODO 加缓冲
+func (store *redisStore) GC() {
+	//log.Println("Gc")
+}

+ 52 - 0
src/github.com/go-xweb/httpsession/session.go

@@ -0,0 +1,52 @@
+package httpsession
+
+import (
+	"net/http"
+	"time"
+)
+
+type Session struct {
+	id      Id
+	maxAge  time.Duration
+	manager *Manager
+}
+
+func (session *Session) Id() Id {
+	return session.id
+}
+
+func (session *Session) SetId(id Id) {
+	session.id = id
+}
+
+func (session *Session) Get(key string) interface{} {
+	return session.manager.store.Get(session.id, key)
+}
+
+func (session *Session) Set(key string, value interface{}) {
+	session.manager.store.Set(session.id, key, value)
+}
+
+func (session *Session) Del(key string) bool {
+	return session.manager.store.Del(session.id, key)
+}
+
+func (session *Session) Invalidate(rw http.ResponseWriter) {
+	session.manager.Invalidate(rw, session)
+}
+
+func (session *Session) IsValid() bool {
+	return session.manager.generator.IsValid(session.id)
+}
+
+func (session *Session) SetMaxAge(maxAge time.Duration) {
+	session.maxAge = maxAge
+}
+
+func (session *Session) UpdateByCustomField(findkey string, findvalue interface{}, setkey string, setvalue interface{}) bool {
+	return session.manager.store.UpdateByCustomField(findkey, findvalue, setkey, setvalue)
+}
+
+func NewSession(id Id, maxAge time.Duration, manager *Manager) *Session {
+	return &Session{id: id, maxAge: manager.maxAge, manager: manager}
+}

+ 17 - 0
src/github.com/go-xweb/httpsession/store.go

@@ -0,0 +1,17 @@
+package httpsession
+
+import "time"
+
+type Id string
+
+type Store interface {
+	Get(id Id, key string) interface{}
+	Set(id Id, key string, value interface{})
+	Del(id Id, key string) bool
+	Clear(id Id) bool
+	Add(id Id)
+	Exist(id Id) bool
+	SetMaxAge(maxAge time.Duration)
+	Run() error
+	UpdateByCustomField(findkey string, findvalue interface{}, setkey string, setvalue interface{}) bool
+}

+ 147 - 0
src/github.com/go-xweb/httpsession/transfer.go

@@ -0,0 +1,147 @@
+package httpsession
+
+import (
+	"net/http"
+	"net/url"
+	"sync"
+	"time"
+)
+
+// Transfer provide and set sessionid
+type Transfer interface {
+	SetMaxAge(maxAge time.Duration)
+	Get(req *http.Request) (Id, error)
+	Set(req *http.Request, rw http.ResponseWriter, id Id)
+	Clear(rw http.ResponseWriter)
+}
+
+// CookieRetriever provide sessionid from cookie
+type CookieTransfer struct {
+	Name     string
+	MaxAge   time.Duration
+	Lock     sync.Mutex
+	Secure   bool
+	RootPath string
+	Domain   string
+}
+
+func NewCookieTransfer(name string, maxAge time.Duration, secure bool, rootPath, domain string) *CookieTransfer {
+	return &CookieTransfer{
+		Name:     name,
+		MaxAge:   maxAge,
+		Secure:   secure,
+		RootPath: rootPath,
+		Domain:   domain,
+	}
+}
+
+func (transfer *CookieTransfer) SetMaxAge(maxAge time.Duration) {
+	transfer.MaxAge = maxAge
+}
+
+func (transfer *CookieTransfer) Get(req *http.Request) (Id, error) {
+	cookie, err := req.Cookie(transfer.Name)
+	if err != nil {
+		if err == http.ErrNoCookie {
+			return "", nil
+		}
+		return "", err
+	}
+	if cookie.Value == "" {
+		return Id(""), nil
+	}
+	id, _ := url.QueryUnescape(cookie.Value)
+	return Id(id), nil
+}
+
+func (transfer *CookieTransfer) Set(req *http.Request, rw http.ResponseWriter, id Id) {
+	sid := url.QueryEscape(string(id))
+	transfer.Lock.Lock()
+	defer transfer.Lock.Unlock()
+	cookie, _ := req.Cookie(transfer.Name)
+	if cookie == nil {
+		cookie = &http.Cookie{
+			Name:     transfer.Name,
+			Value:    sid,
+			Path:     transfer.RootPath,
+			Domain:   transfer.Domain,
+			HttpOnly: true,
+			Secure:   transfer.Secure,
+		}
+		if transfer.MaxAge > 0 {
+			cookie.MaxAge = int(transfer.MaxAge / time.Second)
+			//cookie.Expires = time.Now().Add(transfer.maxAge).UTC()
+		}
+
+		req.AddCookie(cookie)
+	} else {
+		cookie.Value = sid
+		if transfer.MaxAge > 0 {
+			cookie.MaxAge = int(transfer.MaxAge / time.Second)
+			//cookie.Expires = time.Now().Add(transfer.maxAge)
+		}
+	}
+	http.SetCookie(rw, cookie)
+}
+
+func (transfer *CookieTransfer) Clear(rw http.ResponseWriter) {
+	cookie := http.Cookie{
+		Name:     transfer.Name,
+		Path:     transfer.RootPath,
+		Domain:   transfer.Domain,
+		HttpOnly: true,
+		Secure:   transfer.Secure,
+		Expires:  time.Date(0, 1, 1, 0, 0, 0, 0, time.Local),
+		MaxAge:   -1,
+	}
+	http.SetCookie(rw, &cookie)
+}
+
+var _ Transfer = NewCookieTransfer("test", 0, false, "/", Domain)
+
+// CookieRetriever provide sessionid from url
+/*type UrlTransfer struct {
+}
+
+func NewUrlTransfer() *UrlTransfer {
+	return &UrlTransfer{}
+}
+
+func (transfer *UrlTransfer) Get(req *http.Request) (string, error) {
+	return "", nil
+}
+
+func (transfer *UrlTransfer) Set(rw http.ResponseWriter, id Id) {
+
+}
+
+var (
+	_ Transfer = NewUrlTransfer()
+)
+*/
+
+//for SWFUpload ...
+func NewCookieUrlTransfer(name string, maxAge time.Duration, secure bool, rootPath string) *CookieUrlTransfer {
+	return &CookieUrlTransfer{
+		CookieTransfer: CookieTransfer{
+			Name:     name,
+			MaxAge:   maxAge,
+			Secure:   secure,
+			RootPath: rootPath,
+		},
+	}
+}
+
+type CookieUrlTransfer struct {
+	CookieTransfer
+}
+
+func (transfer *CookieUrlTransfer) Get(req *http.Request) (Id, error) {
+	sessionId := req.URL.Query().Get(transfer.Name)
+	if sessionId != "" {
+		sessionId, _ = url.QueryUnescape(sessionId)
+		return Id(sessionId), nil
+	}
+
+	return transfer.CookieTransfer.Get(req)
+}

+ 11 - 0
src/github.com/go-xweb/log/README.md

@@ -0,0 +1,11 @@
+## log
+[![GoDoc](https://godoc.org/github.com/go-xweb/log?status.png)](https://godoc.org/github.com/go-xweb/log)
+
+Extension module of Golang log, 
+
+Most code came from [qiniu/log](https://github.com/qiniu/log)
+
+Improments:
+
+1. Add color support for unix console
+2. Implemented dbwriter to save log to database

+ 32 - 0
src/github.com/go-xweb/log/dbwriter.go

@@ -0,0 +1,32 @@
+package log
+
+import (
+	"database/sql"
+	"time"
+)
+
+type DBWriter struct {
+	db      *sql.DB
+	stmt    *sql.Stmt
+	content chan []byte
+}
+
+func NewDBWriter(db *sql.DB) (*DBWriter, error) {
+	_, err := db.Exec("CREATE TABLE IF NOT EXISTS log (id int, content text, created datetime)")
+	if err != nil {
+		return nil, err
+	}
+	stmt, err := db.Prepare("INSERT INTO log (content, created) values (?, ?)")
+	if err != nil {
+		return nil, err
+	}
+	return &DBWriter{db, stmt, make(chan []byte, 1000)}, nil
+}
+
+func (w *DBWriter) Write(p []byte) (n int, err error) {
+	_, err = w.stmt.Exec(string(p), time.Now())
+	if err == nil {
+		n = len(p)
+	}
+	return
+}

+ 636 - 0
src/github.com/go-xweb/log/logext.go

@@ -0,0 +1,636 @@
+package log
+
+import (
+	"bytes"
+	"fmt"
+	"io"
+	"os"
+	"runtime"
+	"strings"
+	"sync"
+	"time"
+)
+
+// These flags define which text to prefix to each log entry generated by the Logger.
+const (
+	// Bits or'ed together to control what's printed. There is no control over the
+	// order they appear (the order listed here) or the format they present (as
+	// described in the comments).  A colon appears after these items:
+	//	2009/0123 01:23:23.123123 /a/b/c/d.go:23: message
+	Ldate         = 1 << iota     // the date: 2009/0123
+	Ltime                         // the time: 01:23:23
+	Lmicroseconds                 // microsecond resolution: 01:23:23.123123.  assumes Ltime.
+	Llongfile                     // full file name and line number: /a/b/c/d.go:23
+	Lshortfile                    // final file name element and line number: d.go:23. overrides Llongfile
+	Lmodule                       // module name
+	Llevel                        // level: 0(Debug), 1(Info), 2(Warn), 3(Error), 4(Panic), 5(Fatal)
+	Llongcolor                    // color will start [info] end of line
+	Lshortcolor                   // color only include [info]
+	LstdFlags     = Ldate | Ltime // initial values for the standard logger
+	//Ldefault      = Llevel | LstdFlags | Lshortfile | Llongcolor
+) // [prefix][time][level][module][shortfile|longfile]
+
+func Ldefault() int {
+	if runtime.GOOS == "windows" {
+		return Llevel | LstdFlags | Lshortfile
+	}
+	return Llevel | LstdFlags | Lshortfile | Llongcolor
+}
+
+const (
+	Lall = iota
+)
+const (
+	Ldebug = iota
+	Linfo
+	Lwarn
+	Lerror
+	Lpanic
+	Lfatal
+	Lnone
+)
+
+const (
+	ForeBlack  = iota + 30 //30
+	ForeRed                //31
+	ForeGreen              //32
+	ForeYellow             //33
+	ForeBlue               //34
+	ForePurple             //35
+	ForeCyan               //36
+	ForeWhite              //37
+)
+
+const (
+	BackBlack  = iota + 40 //40
+	BackRed                //41
+	BackGreen              //42
+	BackYellow             //43
+	BackBlue               //44
+	BackPurple             //45
+	BackCyan               //46
+	BackWhite              //47
+)
+
+var levels = []string{
+	"[Debug]",
+	"[Info]",
+	"[Warn]",
+	"[Error]",
+	"[Panic]",
+	"[Fatal]",
+}
+
+// MUST called before all logs
+func SetLevels(lvs []string) {
+	levels = lvs
+}
+
+var colors = []int{
+	ForeCyan,
+	ForeGreen,
+	ForeYellow,
+	ForeRed,
+	ForePurple,
+	ForeBlue,
+}
+
+// MUST called before all logs
+func SetColors(cls []int) {
+	colors = cls
+}
+
+// A Logger represents an active logging object that generates lines of
+// output to an io.Writer.  Each logging operation makes a single call to
+// the Writer's Write method.  A Logger can be used simultaneously from
+// multiple goroutines; it guarantees to serialize access to the Writer.
+type Logger struct {
+	mu         sync.Mutex // ensures atomic writes; protects the following fields
+	prefix     string     // prefix to write at beginning of each line
+	flag       int        // properties
+	Level      int
+	out        io.Writer    // destination for output
+	buf        bytes.Buffer // for accumulating text to write
+	levelStats [6]int64
+}
+
+// New creates a new Logger.   The out variable sets the
+// destination to which log data will be written.
+// The prefix appears at the beginning of each generated log line.
+// The flag argument defines the logging properties.
+func New(out io.Writer, prefix string, flag int) *Logger {
+	return &Logger{out: out, prefix: prefix, Level: 1, flag: flag}
+}
+
+var Std = New(os.Stderr, "", Ldefault())
+
+// Cheap integer to fixed-width decimal ASCII.  Give a negative width to avoid zero-padding.
+// Knows the buffer has capacity.
+func itoa(buf *bytes.Buffer, i int, wid int) {
+	var u uint = uint(i)
+	if u == 0 && wid <= 1 {
+		buf.WriteByte('0')
+		return
+	}
+
+	// Assemble decimal in reverse order.
+	var b [32]byte
+	bp := len(b)
+	for ; u > 0 || wid > 0; u /= 10 {
+		bp--
+		wid--
+		b[bp] = byte(u%10) + '0'
+	}
+
+	// avoid slicing b to avoid an allocation.
+	for bp < len(b) {
+		buf.WriteByte(b[bp])
+		bp++
+	}
+}
+
+func moduleOf(file string) string {
+	pos := strings.LastIndex(file, "/")
+	if pos != -1 {
+		pos1 := strings.LastIndex(file[:pos], "/src/")
+		if pos1 != -1 {
+			return file[pos1+5 : pos]
+		}
+	}
+	return "UNKNOWN"
+}
+
+func (l *Logger) formatHeader(buf *bytes.Buffer, t time.Time,
+	file string, line int, lvl int, reqId string) {
+	if l.prefix != "" {
+		buf.WriteString(l.prefix)
+	}
+	if l.flag&(Ldate|Ltime|Lmicroseconds) != 0 {
+		if l.flag&Ldate != 0 {
+			year, month, day := t.Date()
+			itoa(buf, year, 4)
+			buf.WriteByte('/')
+			itoa(buf, int(month), 2)
+			buf.WriteByte('/')
+			itoa(buf, day, 2)
+			buf.WriteByte(' ')
+		}
+		if l.flag&(Ltime|Lmicroseconds) != 0 {
+			hour, min, sec := t.Clock()
+			itoa(buf, hour, 2)
+			buf.WriteByte(':')
+			itoa(buf, min, 2)
+			buf.WriteByte(':')
+			itoa(buf, sec, 2)
+			if l.flag&Lmicroseconds != 0 {
+				buf.WriteByte('.')
+				itoa(buf, t.Nanosecond()/1e3, 6)
+			}
+			buf.WriteByte(' ')
+		}
+	}
+	if reqId != "" {
+		buf.WriteByte('[')
+		buf.WriteString(reqId)
+		buf.WriteByte(']')
+		buf.WriteByte(' ')
+	}
+
+	if l.flag&(Lshortcolor|Llongcolor) != 0 {
+		buf.WriteString(fmt.Sprintf("\033[1;%dm", colors[lvl]))
+	}
+	if l.flag&Llevel != 0 {
+		buf.WriteString(levels[lvl])
+		buf.WriteByte(' ')
+	}
+	if l.flag&Lshortcolor != 0 {
+		buf.WriteString("\033[0m")
+	}
+
+	if l.flag&Lmodule != 0 {
+		buf.WriteByte('[')
+		buf.WriteString(moduleOf(file))
+		buf.WriteByte(']')
+		buf.WriteByte(' ')
+	}
+	if l.flag&(Lshortfile|Llongfile) != 0 {
+		if l.flag&Lshortfile != 0 {
+			short := file
+			for i := len(file) - 1; i > 0; i-- {
+				if file[i] == '/' {
+					short = file[i+1:]
+					break
+				}
+			}
+			file = short
+		}
+		buf.WriteString(file)
+		buf.WriteByte(':')
+		itoa(buf, line, -1)
+		buf.WriteByte(' ')
+	}
+}
+
+// Output writes the output for a logging event.  The string s contains
+// the text to print after the prefix specified by the flags of the
+// Logger.  A newline is appended if the last character of s is not
+// already a newline.  Calldepth is used to recover the PC and is
+// provided for generality, although at the moment on all pre-defined
+// paths it will be 2.
+func (l *Logger) Output(reqId string, lvl int, calldepth int, s string) error {
+	if lvl < l.Level {
+		return nil
+	}
+	now := time.Now() // get this early.
+	var file string
+	var line int
+	l.mu.Lock()
+	defer l.mu.Unlock()
+	if l.flag&(Lshortfile|Llongfile|Lmodule) != 0 {
+		// release lock while getting caller info - it's expensive.
+		l.mu.Unlock()
+		var ok bool
+		_, file, line, ok = runtime.Caller(calldepth)
+		if !ok {
+			file = "???"
+			line = 0
+		}
+		l.mu.Lock()
+	}
+	l.levelStats[lvl]++
+	l.buf.Reset()
+	l.formatHeader(&l.buf, now, file, line, lvl, reqId)
+	l.buf.WriteString(s)
+	if l.flag&Llongcolor != 0 {
+		l.buf.WriteString("\033[0m")
+	}
+	if len(s) > 0 && s[len(s)-1] != '\n' {
+		l.buf.WriteByte('\n')
+	}
+	_, err := l.out.Write(l.buf.Bytes())
+	return err
+}
+
+// -----------------------------------------
+
+// Printf calls l.Output to print to the logger.
+// Arguments are handled in the manner of fmt.Printf.
+func (l *Logger) Printf(format string, v ...interface{}) {
+	l.Output("", Linfo, 2, fmt.Sprintf(format, v...))
+}
+
+// Print calls l.Output to print to the logger.
+// Arguments are handled in the manner of fmt.Print.
+func (l *Logger) Print(v ...interface{}) {
+	l.Output("", Linfo, 2, fmt.Sprint(v...))
+}
+
+// Println calls l.Output to print to the logger.
+// Arguments are handled in the manner of fmt.Println.
+func (l *Logger) Println(v ...interface{}) {
+	l.Output("", Linfo, 2, fmt.Sprintln(v...))
+}
+
+// -----------------------------------------
+
+func (l *Logger) Debugf(format string, v ...interface{}) {
+	if Ldebug < l.Level {
+		return
+	}
+	l.Output("", Ldebug, 2, fmt.Sprintf(format, v...))
+}
+
+func (l *Logger) Debug(v ...interface{}) {
+	if Ldebug < l.Level {
+		return
+	}
+	l.Output("", Ldebug, 2, fmt.Sprintln(v...))
+}
+
+// -----------------------------------------
+func (l *Logger) Infof(format string, v ...interface{}) {
+	if Linfo < l.Level {
+		return
+	}
+	l.Output("", Linfo, 2, fmt.Sprintf(format, v...))
+}
+
+func (l *Logger) Info(v ...interface{}) {
+	if Linfo < l.Level {
+		return
+	}
+	l.Output("", Linfo, 2, fmt.Sprintln(v...))
+}
+
+// -----------------------------------------
+func (l *Logger) Warnf(format string, v ...interface{}) {
+	if Lwarn < l.Level {
+		return
+	}
+	l.Output("", Lwarn, 2, fmt.Sprintf(format, v...))
+}
+
+func (l *Logger) Warn(v ...interface{}) {
+	if Lwarn < l.Level {
+		return
+	}
+	l.Output("", Lwarn, 2, fmt.Sprintln(v...))
+}
+
+// -----------------------------------------
+
+func (l *Logger) Errorf(format string, v ...interface{}) {
+	if Lerror < l.Level {
+		return
+	}
+	l.Output("", Lerror, 2, fmt.Sprintf(format, v...))
+}
+
+func (l *Logger) Error(v ...interface{}) {
+	if Lerror < l.Level {
+		return
+	}
+	l.Output("", Lerror, 2, fmt.Sprintln(v...))
+}
+
+// -----------------------------------------
+
+func (l *Logger) Fatal(v ...interface{}) {
+	if Lfatal < l.Level {
+		return
+	}
+	l.Output("", Lfatal, 2, fmt.Sprintln(v...))
+	os.Exit(1)
+}
+
+// Fatalf is equivalent to l.Printf() followed by a call to os.Exit(1).
+func (l *Logger) Fatalf(format string, v ...interface{}) {
+	if Lfatal < l.Level {
+		return
+	}
+	l.Output("", Lfatal, 2, fmt.Sprintf(format, v...))
+	os.Exit(1)
+}
+
+// -----------------------------------------
+// Panic is equivalent to l.Print() followed by a call to panic().
+func (l *Logger) Panic(v ...interface{}) {
+	if Lpanic < l.Level {
+		return
+	}
+	s := fmt.Sprintln(v...)
+	l.Output("", Lpanic, 2, s)
+	panic(s)
+}
+
+// Panicf is equivalent to l.Printf() followed by a call to panic().
+func (l *Logger) Panicf(format string, v ...interface{}) {
+	if Lpanic < l.Level {
+		return
+	}
+	s := fmt.Sprintf(format, v...)
+	l.Output("", Lpanic, 2, s)
+	panic(s)
+}
+
+// -----------------------------------------
+func (l *Logger) Stack(v ...interface{}) {
+	s := fmt.Sprint(v...)
+	s += "\n"
+	buf := make([]byte, 1024*1024)
+	n := runtime.Stack(buf, true)
+	s += string(buf[:n])
+	s += "\n"
+	l.Output("", Lerror, 2, s)
+}
+
+// -----------------------------------------
+func (l *Logger) Stat() (stats []int64) {
+	l.mu.Lock()
+	v := l.levelStats
+	l.mu.Unlock()
+	return v[:]
+}
+
+// Flags returns the output flags for the logger.
+func (l *Logger) Flags() int {
+	l.mu.Lock()
+	defer l.mu.Unlock()
+	return l.flag
+}
+
+func RmColorFlags(flag int) int {
+	// for un std out, it should not show color since almost them don't support
+	if flag&Llongcolor != 0 {
+		flag = flag ^ Llongcolor
+	}
+	if flag&Lshortcolor != 0 {
+		flag = flag ^ Lshortcolor
+	}
+	return flag
+}
+
+// SetFlags sets the output flags for the logger.
+func (l *Logger) SetFlags(flag int) {
+	l.mu.Lock()
+	defer l.mu.Unlock()
+	l.flag = flag
+}
+
+// Prefix returns the output prefix for the logger.
+func (l *Logger) Prefix() string {
+	l.mu.Lock()
+	defer l.mu.Unlock()
+	return l.prefix
+}
+
+// SetPrefix sets the output prefix for the logger.
+func (l *Logger) SetPrefix(prefix string) {
+	l.mu.Lock()
+	defer l.mu.Unlock()
+	l.prefix = prefix
+}
+
+// SetOutputLevel sets the output level for the logger.
+func (l *Logger) SetOutputLevel(lvl int) {
+	l.mu.Lock()
+	defer l.mu.Unlock()
+	l.Level = lvl
+}
+
+func (l *Logger) OutputLevel() int {
+	return l.Level
+}
+
+func (l *Logger) SetOutput(w io.Writer) {
+	l.mu.Lock()
+	defer l.mu.Unlock()
+	l.out = w
+}
+
+// SetOutput sets the output destination for the standard logger.
+func SetOutput(w io.Writer) {
+	Std.SetOutput(w)
+}
+
+// Flags returns the output flags for the standard logger.
+func Flags() int {
+	return Std.Flags()
+}
+
+// SetFlags sets the output flags for the standard logger.
+func SetFlags(flag int) {
+	Std.SetFlags(flag)
+}
+
+// Prefix returns the output prefix for the standard logger.
+func Prefix() string {
+	return Std.Prefix()
+}
+
+// SetPrefix sets the output prefix for the standard logger.
+func SetPrefix(prefix string) {
+	Std.SetPrefix(prefix)
+}
+
+func SetOutputLevel(lvl int) {
+	Std.SetOutputLevel(lvl)
+}
+
+func OutputLevel() int {
+	return Std.OutputLevel()
+}
+
+// -----------------------------------------
+
+// Print calls Output to print to the standard logger.
+// Arguments are handled in the manner of fmt.Print.
+func Print(v ...interface{}) {
+	Std.Output("", Linfo, 2, fmt.Sprintln(v...))
+}
+
+// Printf calls Output to print to the standard logger.
+// Arguments are handled in the manner of fmt.Printf.
+func Printf(format string, v ...interface{}) {
+	Std.Output("", Linfo, 2, fmt.Sprintf(format, v...))
+}
+
+// Println calls Output to print to the standard logger.
+// Arguments are handled in the manner of fmt.Println.
+func Println(v ...interface{}) {
+	Std.Output("", Linfo, 2, fmt.Sprintln(v...))
+}
+
+// -----------------------------------------
+
+func Debugf(format string, v ...interface{}) {
+	if Ldebug < Std.Level {
+		return
+	}
+	Std.Output("", Ldebug, 2, fmt.Sprintf(format, v...))
+}
+
+func Debug(v ...interface{}) {
+	if Ldebug < Std.Level {
+		return
+	}
+	Std.Output("", Ldebug, 2, fmt.Sprintln(v...))
+}
+
+// -----------------------------------------
+
+func Infof(format string, v ...interface{}) {
+	if Linfo < Std.Level {
+		return
+	}
+	Std.Output("", Linfo, 2, fmt.Sprintf(format, v...))
+}
+
+func Info(v ...interface{}) {
+	if Linfo < Std.Level {
+		return
+	}
+	Std.Output("", Linfo, 2, fmt.Sprintln(v...))
+}
+
+// -----------------------------------------
+
+func Warnf(format string, v ...interface{}) {
+	if Lwarn < Std.Level {
+		return
+	}
+	Std.Output("", Lwarn, 2, fmt.Sprintf(format, v...))
+}
+
+func Warn(v ...interface{}) {
+	if Lwarn < Std.Level {
+		return
+	}
+	Std.Output("", Lwarn, 2, fmt.Sprintln(v...))
+}
+
+// -----------------------------------------
+
+func Errorf(format string, v ...interface{}) {
+	if Lerror < Std.Level {
+		return
+	}
+	Std.Output("", Lerror, 2, fmt.Sprintf(format, v...))
+}
+
+func Error(v ...interface{}) {
+	if Lerror < Std.Level {
+		return
+	}
+	Std.Output("", Lerror, 2, fmt.Sprintln(v...))
+}
+
+// -----------------------------------------
+
+// Fatal is equivalent to Print() followed by a call to os.Exit(1).
+func Fatal(v ...interface{}) {
+	if Lfatal < Std.Level {
+		return
+	}
+	Std.Output("", Lfatal, 2, fmt.Sprintln(v...))
+}
+
+// Fatalf is equivalent to Printf() followed by a call to os.Exit(1).
+func Fatalf(format string, v ...interface{}) {
+	if Lfatal < Std.Level {
+		return
+	}
+	Std.Output("", Lfatal, 2, fmt.Sprintf(format, v...))
+}
+
+// -----------------------------------------
+
+// Panic is equivalent to Print() followed by a call to panic().
+func Panic(v ...interface{}) {
+	if Lpanic < Std.Level {
+		return
+	}
+	Std.Output("", Lpanic, 2, fmt.Sprintln(v...))
+}
+
+// Panicf is equivalent to Printf() followed by a call to panic().
+func Panicf(format string, v ...interface{}) {
+	if Lpanic < Std.Level {
+		return
+	}
+	Std.Output("", Lpanic, 2, fmt.Sprintf(format, v...))
+}
+
+// -----------------------------------------
+
+func Stack(v ...interface{}) {
+	s := fmt.Sprint(v...)
+	s += "\n"
+	buf := make([]byte, 1024*1024)
+	n := runtime.Stack(buf, true)
+	s += string(buf[:n])
+	s += "\n"
+	Std.Output("", Lerror, 2, s)
+}
+
+// -----------------------------------------

+ 84 - 0
src/github.com/go-xweb/uuid/dce.go

@@ -0,0 +1,84 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package uuid
+
+import (
+	"encoding/binary"
+	"fmt"
+	"os"
+)
+
+// A Domain represents a Version 2 domain
+type Domain byte
+
+// Domain constants for DCE Security (Version 2) UUIDs.
+const (
+	Person = Domain(0)
+	Group  = Domain(1)
+	Org    = Domain(2)
+)
+
+// NewDCESecurity returns a DCE Security (Version 2) UUID.
+//
+// The domain should be one of Person, Group or Org.
+// On a POSIX system the id should be the users UID for the Person
+// domain and the users GID for the Group.  The meaning of id for
+// the domain Org or on non-POSIX systems is site defined.
+//
+// For a given domain/id pair the same token may be returned for up to
+// 7 minutes and 10 seconds.
+func NewDCESecurity(domain Domain, id uint32) UUID {
+	uuid := NewUUID()
+	if uuid != nil {
+		uuid[6] = (uuid[6] & 0x0f) | 0x20 // Version 2
+		uuid[9] = byte(domain)
+		binary.BigEndian.PutUint32(uuid[0:], id)
+	}
+	return uuid
+}
+
+// NewDCEPerson returns a DCE Security (Version 2) UUID in the person
+// domain with the id returned by os.Getuid.
+//
+//  NewDCEPerson(Person, uint32(os.Getuid()))
+func NewDCEPerson() UUID {
+	return NewDCESecurity(Person, uint32(os.Getuid()))
+}
+
+// NewDCEGroup returns a DCE Security (Version 2) UUID in the group
+// domain with the id returned by os.Getgid.
+//
+//  NewDCEGroup(Group, uint32(os.Getgid()))
+func NewDCEGroup() UUID {
+	return NewDCESecurity(Group, uint32(os.Getgid()))
+}
+
+// Domain returns the domain for a Version 2 UUID or false.
+func (uuid UUID) Domain() (Domain, bool) {
+	if v, _ := uuid.Version(); v != 2 {
+		return 0, false
+	}
+	return Domain(uuid[9]), true
+}
+
+// Id returns the id for a Version 2 UUID or false.
+func (uuid UUID) Id() (uint32, bool) {
+	if v, _ := uuid.Version(); v != 2 {
+		return 0, false
+	}
+	return binary.BigEndian.Uint32(uuid[0:4]), true
+}
+
+func (d Domain) String() string {
+	switch d {
+	case Person:
+		return "Person"
+	case Group:
+		return "Group"
+	case Org:
+		return "Org"
+	}
+	return fmt.Sprintf("Domain%d", int(d))
+}

+ 8 - 0
src/github.com/go-xweb/uuid/doc.go

@@ -0,0 +1,8 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// The uuid package generates and inspects UUIDs.
+//
+// UUIDs are based on RFC 4122 and DCE 1.1: Authentication and Security Services.
+package uuid

+ 53 - 0
src/github.com/go-xweb/uuid/hash.go

@@ -0,0 +1,53 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package uuid
+
+import (
+	"crypto/md5"
+	"crypto/sha1"
+	"hash"
+)
+
+// Well known Name Space IDs and UUIDs
+var (
+	NameSpace_DNS  = Parse("6ba7b810-9dad-11d1-80b4-00c04fd430c8")
+	NameSpace_URL  = Parse("6ba7b811-9dad-11d1-80b4-00c04fd430c8")
+	NameSpace_OID  = Parse("6ba7b812-9dad-11d1-80b4-00c04fd430c8")
+	NameSpace_X500 = Parse("6ba7b814-9dad-11d1-80b4-00c04fd430c8")
+	NIL            = Parse("00000000-0000-0000-0000-000000000000")
+)
+
+// NewHash returns a new UUID dervied from the hash of space concatenated with
+// data generated by h.  The hash should be at least 16 byte in length.  The
+// first 16 bytes of the hash are used to form the UUID.  The version of the
+// UUID will be the lower 4 bits of version.  NewHash is used to implement
+// NewMD5 and NewSHA1.
+func NewHash(h hash.Hash, space UUID, data []byte, version int) UUID {
+	h.Reset()
+	h.Write(space)
+	h.Write([]byte(data))
+	s := h.Sum(nil)
+	uuid := make([]byte, 16)
+	copy(uuid, s)
+	uuid[6] = (uuid[6] & 0x0f) | uint8((version&0xf)<<4)
+	uuid[8] = (uuid[8] & 0x3f) | 0x80 // RFC 4122 variant
+	return uuid
+}
+
+// NewMD5 returns a new MD5 (Version 3) UUID based on the
+// supplied name space and data.
+//
+//  NewHash(md5.New(), space, data, 3)
+func NewMD5(space UUID, data []byte) UUID {
+	return NewHash(md5.New(), space, data, 3)
+}
+
+// NewSHA1 returns a new SHA1 (Version 5) UUID based on the
+// supplied name space and data.
+//
+//  NewHash(sha1.New(), space, data, 5)
+func NewSHA1(space UUID, data []byte) UUID {
+	return NewHash(sha1.New(), space, data, 5)
+}

+ 101 - 0
src/github.com/go-xweb/uuid/node.go

@@ -0,0 +1,101 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package uuid
+
+import "net"
+
+var (
+	interfaces []net.Interface // cached list of interfaces
+	ifname     string          // name of interface being used
+	nodeID     []byte          // hardware for version 1 UUIDs
+)
+
+// NodeInterface returns the name of the interface from which the NodeID was
+// derived.  The interface "user" is returned if the NodeID was set by
+// SetNodeID.
+func NodeInterface() string {
+	return ifname
+}
+
+// SetNodeInterface selects the hardware address to be used for Version 1 UUIDs.
+// If name is "" then the first usable interface found will be used or a random
+// Node ID will be generated.  If a named interface cannot be found then false
+// is returned.
+//
+// SetNodeInterface never fails when name is "".
+func SetNodeInterface(name string) bool {
+	if interfaces == nil {
+		var err error
+		interfaces, err = net.Interfaces()
+		if err != nil && name != "" {
+			return false
+		}
+	}
+
+	for _, ifs := range interfaces {
+		if len(ifs.HardwareAddr) >= 6 && (name == "" || name == ifs.Name) {
+			if setNodeID(ifs.HardwareAddr) {
+				ifname = ifs.Name
+				return true
+			}
+		}
+	}
+
+	// We found no interfaces with a valid hardware address.  If name
+	// does not specify a specific interface generate a random Node ID
+	// (section 4.1.6)
+	if name == "" {
+		if nodeID == nil {
+			nodeID = make([]byte, 6)
+		}
+		randomBits(nodeID)
+		return true
+	}
+	return false
+}
+
+// NodeID returns a slice of a copy of the current Node ID, setting the Node ID
+// if not already set.
+func NodeID() []byte {
+	if nodeID == nil {
+		SetNodeInterface("")
+	}
+	nid := make([]byte, 6)
+	copy(nid, nodeID)
+	return nid
+}
+
+// SetNodeID sets the Node ID to be used for Version 1 UUIDs.  The first 6 bytes
+// of id are used.  If id is less than 6 bytes then false is returned and the
+// Node ID is not set.
+func SetNodeID(id []byte) bool {
+	if setNodeID(id) {
+		ifname = "user"
+		return true
+	}
+	return false
+}
+
+func setNodeID(id []byte) bool {
+	if len(id) < 6 {
+		return false
+	}
+	if nodeID == nil {
+		nodeID = make([]byte, 6)
+	}
+	copy(nodeID, id)
+	return true
+}
+
+// NodeID returns the 6 byte node id encoded in uuid.  It returns nil if uuid is
+// not valid.  The NodeID is only well defined for version 1 and 2 UUIDs.
+func (uuid UUID) NodeID() []byte {
+	if len(uuid) != 16 {
+		return nil
+	}
+	node := make([]byte, 6)
+	copy(node, uuid[10:])
+	return node
+}

+ 132 - 0
src/github.com/go-xweb/uuid/time.go

@@ -0,0 +1,132 @@
+// Copyright 2014 Google Inc.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package uuid
+
+import (
+	"encoding/binary"
+	"sync"
+	"time"
+)
+
+// A Time represents a time as the number of 100's of nanoseconds since 15 Oct
+// 1582.
+type Time int64
+
+const (
+	lillian    = 2299160          // Julian day of 15 Oct 1582
+	unix       = 2440587          // Julian day of 1 Jan 1970
+	epoch      = unix - lillian   // Days between epochs
+	g1582      = epoch * 86400    // seconds between epochs
+	g1582ns100 = g1582 * 10000000 // 100s of a nanoseconds between epochs
+)
+
+var (
+	mu        sync.Mutex
+	lasttime  uint64 // last time we returned
+	clock_seq uint16 // clock sequence for this run
+
+	timeNow = time.Now // for testing
+)
+
+// UnixTime converts t the number of seconds and nanoseconds using the Unix
+// epoch of 1 Jan 1970.
+func (t Time) UnixTime() (sec, nsec int64) {
+	sec = int64(t - g1582ns100)
+	nsec = (sec % 10000000) * 100
+	sec /= 10000000
+	return sec, nsec
+}
+
+// GetTime returns the current Time (100s of nanoseconds since 15 Oct 1582) and
+// adjusts the clock sequence as needed.  An error is returned if the current
+// time cannot be determined.
+func GetTime() (Time, error) {
+	defer mu.Unlock()
+	mu.Lock()
+	return getTime()
+}
+
+func getTime() (Time, error) {
+	t := timeNow()
+
+	// If we don't have a clock sequence already, set one.
+	if clock_seq == 0 {
+		setClockSequence(-1)
+	}
+	now := uint64(t.UnixNano()/100) + g1582ns100
+
+	// If time has gone backwards with this clock sequence then we
+	// increment the clock sequence
+	if now <= lasttime {
+		clock_seq = ((clock_seq + 1) & 0x3fff) | 0x8000
+	}
+	lasttime = now
+	return Time(now), nil
+}
+
+// ClockSequence returns the current clock sequence, generating one if not
+// already set.  The clock sequence is only used for Version 1 UUIDs.
+//
+// The uuid package does not use global static storage for the clock sequence or
+// the last time a UUID was generated.  Unless SetClockSequence a new random
+// clock sequence is generated the first time a clock sequence is requested by
+// ClockSequence, GetTime, or NewUUID.  (section 4.2.1.1) sequence is generated
+// for
+func ClockSequence() int {
+	defer mu.Unlock()
+	mu.Lock()
+	return clockSequence()
+}
+
+func clockSequence() int {
+	if clock_seq == 0 {
+		setClockSequence(-1)
+	}
+	return int(clock_seq & 0x3fff)
+}
+
+// SetClockSeq sets the clock sequence to the lower 14 bits of seq.  Setting to
+// -1 causes a new sequence to be generated.
+func SetClockSequence(seq int) {
+	defer mu.Unlock()
+	mu.Lock()
+	setClockSequence(seq)
+}
+
+func setClockSequence(seq int) {
+	if seq == -1 {
+		var b [2]byte
+		randomBits(b[:]) // clock sequence
+		seq = int(b[0])<<8 | int(b[1])
+	}
+	old_seq := clock_seq
+	clock_seq = uint16(seq&0x3fff) | 0x8000 // Set our variant
+	if old_seq != clock_seq {
+		lasttime = 0
+	}
+}
+
+// Time returns the time in 100s of nanoseconds since 15 Oct 1582 encoded in
+// uuid.  It returns false if uuid is not valid.  The time is only well defined
+// for version 1 and 2 UUIDs.
+func (uuid UUID) Time() (Time, bool) {
+	if len(uuid) != 16 {
+		return 0, false
+	}
+	time := int64(binary.BigEndian.Uint32(uuid[0:4]))
+	time |= int64(binary.BigEndian.Uint16(uuid[4:6])) << 32
+	time |= int64(binary.BigEndian.Uint16(uuid[6:8])&0xfff) << 48
+	return Time(time), true
+}
+
+// ClockSequence returns the clock sequence encoded in uuid.  It returns false
+// if uuid is not valid.  The clock sequence is only well defined for version 1
+// and 2 UUIDs.
+func (uuid UUID) ClockSequence() (int, bool) {
+	if len(uuid) != 16 {
+		return 0, false
+	}
+	return int(binary.BigEndian.Uint16(uuid[8:10])) & 0x3fff, true
+}

+ 43 - 0
src/github.com/go-xweb/uuid/util.go

@@ -0,0 +1,43 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package uuid
+
+import (
+	"io"
+)
+
+// randomBits completely fills slice b with random data.
+func randomBits(b []byte) {
+	if _, err := io.ReadFull(rander, b); err != nil {
+		panic(err.Error()) // rand should never fail
+	}
+}
+
+// xvalues returns the value of a byte as a hexadecimal digit or 255.
+var xvalues = []byte{
+	255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+	255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+	255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+	0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 255, 255, 255, 255, 255, 255,
+	255, 10, 11, 12, 13, 14, 15, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+	255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+	255, 10, 11, 12, 13, 14, 15, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+	255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+	255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+	255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+	255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+	255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+	255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+	255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+	255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+	255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+}
+
+// xtob converts the the first two hex bytes of x into a byte.
+func xtob(x string) (byte, bool) {
+	b1 := xvalues[x[0]]
+	b2 := xvalues[x[1]]
+	return (b1 << 4) | b2, b1 != 255 && b2 != 255
+}

+ 163 - 0
src/github.com/go-xweb/uuid/uuid.go

@@ -0,0 +1,163 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package uuid
+
+import (
+	"bytes"
+	"crypto/rand"
+	"fmt"
+	"io"
+	"strings"
+)
+
+// A UUID is a 128 bit (16 byte) Universal Unique IDentifier as defined in RFC
+// 4122.
+type UUID []byte
+
+// A Version represents a UUIDs version.
+type Version byte
+
+// A Variant represents a UUIDs variant.
+type Variant byte
+
+// Constants returned by Variant.
+const (
+	Invalid   = Variant(iota) // Invalid UUID
+	RFC4122                   // The variant specified in RFC4122
+	Reserved                  // Reserved, NCS backward compatibility.
+	Microsoft                 // Reserved, Microsoft Corporation backward compatibility.
+	Future                    // Reserved for future definition.
+)
+
+var rander = rand.Reader // random function
+
+// New returns a new random (version 4) UUID as a string.  It is a convenience
+// function for NewRandom().String().
+func New() string {
+	return NewRandom().String()
+}
+
+// Parse decodes s into a UUID or returns nil.  Both the UUID form of
+// xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx and
+// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx are decoded.
+func Parse(s string) UUID {
+	if len(s) == 36+9 {
+		if strings.ToLower(s[:9]) != "urn:uuid:" {
+			return nil
+		}
+		s = s[9:]
+	} else if len(s) != 36 {
+		return nil
+	}
+	if s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' {
+		return nil
+	}
+	uuid := make([]byte, 16)
+	for i, x := range []int{
+		0, 2, 4, 6,
+		9, 11,
+		14, 16,
+		19, 21,
+		24, 26, 28, 30, 32, 34} {
+		if v, ok := xtob(s[x:]); !ok {
+			return nil
+		} else {
+			uuid[i] = v
+		}
+	}
+	return uuid
+}
+
+// Equal returns true if uuid1 and uuid2 are equal.
+func Equal(uuid1, uuid2 UUID) bool {
+	return bytes.Equal(uuid1, uuid2)
+}
+
+// String returns the string form of uuid, xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+// , or "" if uuid is invalid.
+func (uuid UUID) String() string {
+	if uuid == nil || len(uuid) != 16 {
+		return ""
+	}
+	b := []byte(uuid)
+	return fmt.Sprintf("%08x-%04x-%04x-%04x-%012x",
+		b[:4], b[4:6], b[6:8], b[8:10], b[10:])
+}
+
+// URN returns the RFC 2141 URN form of uuid,
+// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,  or "" if uuid is invalid.
+func (uuid UUID) URN() string {
+	if uuid == nil || len(uuid) != 16 {
+		return ""
+	}
+	b := []byte(uuid)
+	return fmt.Sprintf("urn:uuid:%08x-%04x-%04x-%04x-%012x",
+		b[:4], b[4:6], b[6:8], b[8:10], b[10:])
+}
+
+// Variant returns the variant encoded in uuid.  It returns Invalid if
+// uuid is invalid.
+func (uuid UUID) Variant() Variant {
+	if len(uuid) != 16 {
+		return Invalid
+	}
+	switch {
+	case (uuid[8] & 0xc0) == 0x80:
+		return RFC4122
+	case (uuid[8] & 0xe0) == 0xc0:
+		return Microsoft
+	case (uuid[8] & 0xe0) == 0xe0:
+		return Future
+	default:
+		return Reserved
+	}
+	panic("unreachable")
+}
+
+// Version returns the verison of uuid.  It returns false if uuid is not
+// valid.
+func (uuid UUID) Version() (Version, bool) {
+	if len(uuid) != 16 {
+		return 0, false
+	}
+	return Version(uuid[6] >> 4), true
+}
+
+func (v Version) String() string {
+	if v > 15 {
+		return fmt.Sprintf("BAD_VERSION_%d", v)
+	}
+	return fmt.Sprintf("VERSION_%d", v)
+}
+
+func (v Variant) String() string {
+	switch v {
+	case RFC4122:
+		return "RFC4122"
+	case Reserved:
+		return "Reserved"
+	case Microsoft:
+		return "Microsoft"
+	case Future:
+		return "Future"
+	case Invalid:
+		return "Invalid"
+	}
+	return fmt.Sprintf("BadVariant%d", int(v))
+}
+
+// SetRand sets the random number generator to r, which implents io.Reader.
+// If r.Read returns an error when the package requests random data then
+// a panic will be issued.
+//
+// Calling SetRand with nil sets the random number generator to the default
+// generator.
+func SetRand(r io.Reader) {
+	if r == nil {
+		rander = rand.Reader
+		return
+	}
+	rander = r
+}

+ 41 - 0
src/github.com/go-xweb/uuid/version1.go

@@ -0,0 +1,41 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package uuid
+
+import (
+	"encoding/binary"
+)
+
+// NewUUID returns a Version 1 UUID based on the current NodeID and clock
+// sequence, and the current time.  If the NodeID has not been set by SetNodeID
+// or SetNodeInterface then it will be set automatically.  If the NodeID cannot
+// be set NewUUID returns nil.  If clock sequence has not been set by
+// SetClockSequence then it will be set automatically.  If GetTime fails to
+// return the current NewUUID returns nil.
+func NewUUID() UUID {
+	if nodeID == nil {
+		SetNodeInterface("")
+	}
+
+	now, err := GetTime()
+	if err != nil {
+		return nil
+	}
+
+	uuid := make([]byte, 16)
+
+	time_low := uint32(now & 0xffffffff)
+	time_mid := uint16((now >> 32) & 0xffff)
+	time_hi := uint16((now >> 48) & 0x0fff)
+	time_hi |= 0x1000 // Version 1
+
+	binary.BigEndian.PutUint32(uuid[0:], time_low)
+	binary.BigEndian.PutUint16(uuid[4:], time_mid)
+	binary.BigEndian.PutUint16(uuid[6:], time_hi)
+	binary.BigEndian.PutUint16(uuid[8:], clock_seq)
+	copy(uuid[10:], nodeID)
+
+	return uuid
+}

+ 25 - 0
src/github.com/go-xweb/uuid/version4.go

@@ -0,0 +1,25 @@
+// Copyright 2011 Google Inc.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package uuid
+
+// Random returns a Random (Version 4) UUID or panics.
+//
+// The strength of the UUIDs is based on the strength of the crypto/rand
+// package.
+//
+// A note about uniqueness derived from from the UUID Wikipedia entry:
+//
+//  Randomly generated UUIDs have 122 random bits.  One's annual risk of being
+//  hit by a meteorite is estimated to be one chance in 17 billion, that
+//  means the probability is about 0.00000000006 (6 × 10−11),
+//  equivalent to the odds of creating a few tens of trillions of UUIDs in a
+//  year and having one duplicate.
+func NewRandom() UUID {
+	uuid := make([]byte, 16)
+	randomBits([]byte(uuid))
+	uuid[6] = (uuid[6] & 0x0f) | 0x40 // Version 4
+	uuid[8] = (uuid[8] & 0x3f) | 0x80 // Variant is 10
+	return uuid
+}

+ 58 - 0
src/github.com/go-xweb/xweb/README.md

@@ -0,0 +1,58 @@
+# xweb
+
+xweb是一个强大的Go语言web框架。
+
+[English](https://github.com/go-xweb/xweb/blob/master/README_EN.md)
+
+[![Build Status](https://drone.io/github.com/go-xweb/xweb/status.png)](https://drone.io/github.com/go-xweb/xweb/latest)  [![Go Walker](http://gowalker.org/api/v1/badge)](http://gowalker.org/github.com/go-xweb/xweb) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/go-xweb/xweb/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
+
+## 技术支持
+
+QQ群:369240307
+
+## 更新日志
+
+* **v0.2.1** : 自动Binding新增对jquery对象,map和array的支持。
+* **v0.2** : 新增 validation 子包,从 [https://github.com/astaxie/beego/tree/master/validation](http://https://github.com/astaxie/beego/tree/master/validation) 拷贝过来。
+* **v0.1.2** : 采用 [github.com/go-xweb/httpsession](http://github.com/go-xweb/httpsession) 作为session组件,API保持兼容;Action现在必须从*Action继承,这个改变与以前的版本不兼容,必须更改代码;新增两个模板函数{{session "key"}} 和 {{cookie "key"}};Action新增函数`MapForm`
+* **v0.1.1** : App新增AutoAction方法;Action新增AddTmplVar方法;Render方法的模版渲染方法中可以通过T混合传入函数和变量,更新了[快速入门](https://github.com/go-xweb/xweb/tree/master/docs/intro.md)。
+* **v0.1.0** : 初始版本
+
+## 特性
+
+* 在一个可执行程序中多Server(http,tls,scgi,fcgi),多App的支持
+* 简单好用的路由映射方式
+* 静态文件及版本支持,并支持自动加载,默认开启
+* 改进的模版支持,并支持自动加载,动态新增模板函数
+* session支持
+* validation支持
+
+## 安装
+
+在安装之前确认你已经安装了Go语言. Go语言安装请访问 [install instructions](http://golang.org/doc/install.html). 
+
+安装 xweb:
+
+    go get github.com/go-xweb/xweb
+
+## Examples
+
+请访问 [examples](https://github.com/go-xweb/xweb/tree/master/examples) folder
+
+## 案例
+
+* [xorm.io](http://xorm.io) - [github.com/go-xorm/website](http://github.com/go-xorm/website)
+* [Godaily.org](http://godaily.org) - [github.com/govc/godaily](http://github.com/govc/godaily)
+
+## 文档
+
+[快速入门](https://github.com/go-xweb/xweb/tree/master/docs/intro.md)
+
+源码文档请访问 [GoWalker](http://gowalker.org/github.com/go-xweb/xweb)
+
+## License
+BSD License
+[http://creativecommons.org/licenses/BSD/](http://creativecommons.org/licenses/BSD/)
+
+
+

+ 46 - 0
src/github.com/go-xweb/xweb/README_EN.md

@@ -0,0 +1,46 @@
+# xweb
+
+xweb is a web framework for Go which is based on web.go. It just like Struts for Java. 
+
+[中文](https://github.com/go-xweb/xweb/blob/master/README.md)
+
+[![Build Status](https://drone.io/github.com/go-xweb/xweb/status.png)](https://drone.io/github.com/go-xweb/xweb/latest)  [![Go Walker](http://gowalker.org/api/v1/badge)](http://gowalker.org/github.com/go-xweb/xweb)
+
+## Changelog
+
+* **v0.1.1** : App added method AutoAction;Action added method AddTmplVar;Action's method Render's T param now supports variable, function or method。
+* **v0.1.0** : Inital release.
+
+## Features
+
+* multiple server and multiple application in one executable application
+* simple and helpful url route mapping
+
+## Installation
+
+Make sure you have the a working Go environment. See the [install instructions](http://golang.org/doc/install.html). 
+
+To install xweb, simply run:
+
+    go get github.com/lunny/xweb
+
+## Examples
+
+Please visit [examples](https://github.com/go-xweb/xweb/tree/master/examples) folder
+
+## Case
+
+* [xorm.io](http://xorm.io)
+* [Godaily.org](http://godaily.org)
+
+## Documentation
+
+API, Please visit [GoWalker](http://gowalker.org/github.com/go-xweb/xweb)
+
+
+## License
+BSD License
+[http://creativecommons.org/licenses/BSD/](http://creativecommons.org/licenses/BSD/)
+
+
+

Some files were not shown because too many files changed in this diff