summaryrefslogtreecommitdiff
path: root/vendor/golang.org/x/text/encoding
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2018-07-24 14:35:44 +0200
committerDimitri Sokolyuk <demon@dim13.org>2018-07-24 14:35:44 +0200
commit621e49bb465f500cc46d47e39e828cf76d6381d7 (patch)
treee9d6ed54cfae73209f2b0d9a016ef0b64adf45a6 /vendor/golang.org/x/text/encoding
parent5b9a4a158b81aa6e94a5a56d0851bea938b87bef (diff)
update vendor
Diffstat (limited to 'vendor/golang.org/x/text/encoding')
-rw-r--r--vendor/golang.org/x/text/encoding/ianaindex/example_test.go27
-rw-r--r--vendor/golang.org/x/text/encoding/ianaindex/gen.go192
-rw-r--r--vendor/golang.org/x/text/encoding/ianaindex/ianaindex.go209
-rw-r--r--vendor/golang.org/x/text/encoding/ianaindex/ianaindex_test.go192
-rw-r--r--vendor/golang.org/x/text/encoding/ianaindex/tables.go2348
-rw-r--r--vendor/golang.org/x/text/encoding/internal/enctest/enctest.go180
-rw-r--r--vendor/golang.org/x/text/encoding/testdata/candide-gb18030.txt510
-rw-r--r--vendor/golang.org/x/text/encoding/testdata/candide-utf-16le.txtbin0 -> 51932 bytes
-rw-r--r--vendor/golang.org/x/text/encoding/testdata/candide-utf-32be.txtbin0 -> 103864 bytes
-rw-r--r--vendor/golang.org/x/text/encoding/testdata/candide-utf-8.txt510
-rw-r--r--vendor/golang.org/x/text/encoding/testdata/candide-windows-1252.txt510
-rw-r--r--vendor/golang.org/x/text/encoding/testdata/rashomon-euc-jp.txt178
-rw-r--r--vendor/golang.org/x/text/encoding/testdata/rashomon-iso-2022-jp.txt178
-rw-r--r--vendor/golang.org/x/text/encoding/testdata/rashomon-shift-jis.txt178
-rw-r--r--vendor/golang.org/x/text/encoding/testdata/rashomon-utf-8.txt178
-rw-r--r--vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-hz-gb2312.txt107
-rw-r--r--vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-utf-8.txt107
-rw-r--r--vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-gbk.txt107
-rw-r--r--vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-utf-8.txt107
-rw-r--r--vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-big5.txt106
-rw-r--r--vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-utf-8.txt106
-rw-r--r--vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-euc-kr.txt175
-rw-r--r--vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-utf-8.txt175
-rw-r--r--vendor/golang.org/x/text/encoding/unicode/utf32/utf32.go296
-rw-r--r--vendor/golang.org/x/text/encoding/unicode/utf32/utf32_test.go248
25 files changed, 6924 insertions, 0 deletions
diff --git a/vendor/golang.org/x/text/encoding/ianaindex/example_test.go b/vendor/golang.org/x/text/encoding/ianaindex/example_test.go
new file mode 100644
index 0000000..e2a3a7e
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/ianaindex/example_test.go
@@ -0,0 +1,27 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package ianaindex_test
+
+import (
+ "fmt"
+
+ "golang.org/x/text/encoding/charmap"
+ "golang.org/x/text/encoding/ianaindex"
+)
+
+func ExampleIndex() {
+ fmt.Println(ianaindex.MIME.Name(charmap.ISO8859_7))
+ fmt.Println(ianaindex.IANA.Name(charmap.ISO8859_7))
+ fmt.Println(ianaindex.MIB.Name(charmap.ISO8859_7))
+
+ e, _ := ianaindex.IANA.Encoding("cp437")
+ fmt.Println(ianaindex.IANA.Name(e))
+
+ // Output:
+ // ISO-8859-7 <nil>
+ // ISO_8859-7:1987 <nil>
+ // ISOLatinGreek <nil>
+ // IBM437 <nil>
+}
diff --git a/vendor/golang.org/x/text/encoding/ianaindex/gen.go b/vendor/golang.org/x/text/encoding/ianaindex/gen.go
new file mode 100644
index 0000000..1b61b82
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/ianaindex/gen.go
@@ -0,0 +1,192 @@
+// Copyright 2017 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build ignore
+
+package main
+
+import (
+ "encoding/xml"
+ "fmt"
+ "io"
+ "log"
+ "sort"
+ "strconv"
+ "strings"
+
+ "golang.org/x/text/encoding/internal/identifier"
+ "golang.org/x/text/internal/gen"
+)
+
+type registry struct {
+ XMLName xml.Name `xml:"registry"`
+ Updated string `xml:"updated"`
+ Registry []struct {
+ ID string `xml:"id,attr"`
+ Record []struct {
+ Name string `xml:"name"`
+ Xref []struct {
+ Type string `xml:"type,attr"`
+ Data string `xml:"data,attr"`
+ } `xml:"xref"`
+ Desc struct {
+ Data string `xml:",innerxml"`
+ } `xml:"description,"`
+ MIB string `xml:"value"`
+ Alias []string `xml:"alias"`
+ MIME string `xml:"preferred_alias"`
+ } `xml:"record"`
+ } `xml:"registry"`
+}
+
+func main() {
+ r := gen.OpenIANAFile("assignments/character-sets/character-sets.xml")
+ reg := &registry{}
+ if err := xml.NewDecoder(r).Decode(&reg); err != nil && err != io.EOF {
+ log.Fatalf("Error decoding charset registry: %v", err)
+ }
+ if len(reg.Registry) == 0 || reg.Registry[0].ID != "character-sets-1" {
+ log.Fatalf("Unexpected ID %s", reg.Registry[0].ID)
+ }
+
+ x := &indexInfo{}
+
+ for _, rec := range reg.Registry[0].Record {
+ mib := identifier.MIB(parseInt(rec.MIB))
+ x.addEntry(mib, rec.Name)
+ for _, a := range rec.Alias {
+ a = strings.Split(a, " ")[0] // strip comments.
+ x.addAlias(a, mib)
+ // MIB name aliases are prefixed with a "cs" (character set) in the
+ // registry to identify them as display names and to ensure that
+ // the name starts with a lowercase letter in case it is used as
+ // an identifier. We remove it to be left with a nice clean name.
+ if strings.HasPrefix(a, "cs") {
+ x.setName(2, a[2:])
+ }
+ }
+ if rec.MIME != "" {
+ x.addAlias(rec.MIME, mib)
+ x.setName(1, rec.MIME)
+ }
+ }
+
+ w := gen.NewCodeWriter()
+
+ fmt.Fprintln(w, `import "golang.org/x/text/encoding/internal/identifier"`)
+
+ writeIndex(w, x)
+
+ w.WriteGoFile("tables.go", "ianaindex")
+}
+
+type alias struct {
+ name string
+ mib identifier.MIB
+}
+
+type indexInfo struct {
+ // compacted index from code to MIB
+ codeToMIB []identifier.MIB
+ alias []alias
+ names [][3]string
+}
+
+func (ii *indexInfo) Len() int {
+ return len(ii.codeToMIB)
+}
+
+func (ii *indexInfo) Less(a, b int) bool {
+ return ii.codeToMIB[a] < ii.codeToMIB[b]
+}
+
+func (ii *indexInfo) Swap(a, b int) {
+ ii.codeToMIB[a], ii.codeToMIB[b] = ii.codeToMIB[b], ii.codeToMIB[a]
+ // Co-sort the names.
+ ii.names[a], ii.names[b] = ii.names[b], ii.names[a]
+}
+
+func (ii *indexInfo) setName(i int, name string) {
+ ii.names[len(ii.names)-1][i] = name
+}
+
+func (ii *indexInfo) addEntry(mib identifier.MIB, name string) {
+ ii.names = append(ii.names, [3]string{name, name, name})
+ ii.addAlias(name, mib)
+ ii.codeToMIB = append(ii.codeToMIB, mib)
+}
+
+func (ii *indexInfo) addAlias(name string, mib identifier.MIB) {
+ // Don't add duplicates for the same mib. Adding duplicate aliases for
+ // different MIBs will cause the compiler to barf on an invalid map: great!.
+ for i := len(ii.alias) - 1; i >= 0 && ii.alias[i].mib == mib; i-- {
+ if ii.alias[i].name == name {
+ return
+ }
+ }
+ ii.alias = append(ii.alias, alias{name, mib})
+ lower := strings.ToLower(name)
+ if lower != name {
+ ii.addAlias(lower, mib)
+ }
+}
+
+const maxMIMENameLen = '0' - 1 // officially 40, but we leave some buffer.
+
+func writeIndex(w *gen.CodeWriter, x *indexInfo) {
+ sort.Stable(x)
+
+ // Write constants.
+ fmt.Fprintln(w, "const (")
+ for i, m := range x.codeToMIB {
+ if i == 0 {
+ fmt.Fprintf(w, "enc%d = iota\n", m)
+ } else {
+ fmt.Fprintf(w, "enc%d\n", m)
+ }
+ }
+ fmt.Fprintln(w, "numIANA")
+ fmt.Fprintln(w, ")")
+
+ w.WriteVar("ianaToMIB", x.codeToMIB)
+
+ var ianaNames, mibNames []string
+ for _, names := range x.names {
+ n := names[0]
+ if names[0] != names[1] {
+ // MIME names are mostly identical to IANA names. We share the
+ // tables by setting the first byte of the string to an index into
+ // the string itself (< maxMIMENameLen) to the IANA name. The MIME
+ // name immediately follows the index.
+ x := len(names[1]) + 1
+ if x > maxMIMENameLen {
+ log.Fatalf("MIME name length (%d) > %d", x, maxMIMENameLen)
+ }
+ n = string(x) + names[1] + names[0]
+ }
+ ianaNames = append(ianaNames, n)
+ mibNames = append(mibNames, names[2])
+ }
+
+ w.WriteVar("ianaNames", ianaNames)
+ w.WriteVar("mibNames", mibNames)
+
+ w.WriteComment(`
+ TODO: Instead of using a map, we could use binary search strings doing
+ on-the fly lower-casing per character. This allows to always avoid
+ allocation and will be considerably more compact.`)
+ fmt.Fprintln(w, "var ianaAliases = map[string]int{")
+ for _, a := range x.alias {
+ fmt.Fprintf(w, "%q: enc%d,\n", a.name, a.mib)
+ }
+ fmt.Fprintln(w, "}")
+}
+
+func parseInt(s string) int {
+ x, err := strconv.ParseInt(s, 10, 64)
+ if err != nil {
+ log.Fatalf("Could not parse integer: %v", err)
+ }
+ return int(x)
+}
diff --git a/vendor/golang.org/x/text/encoding/ianaindex/ianaindex.go b/vendor/golang.org/x/text/encoding/ianaindex/ianaindex.go
new file mode 100644
index 0000000..49b3070
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/ianaindex/ianaindex.go
@@ -0,0 +1,209 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:generate go run gen.go
+
+// Package ianaindex maps names to Encodings as specified by the IANA registry.
+// This includes both the MIME and IANA names.
+//
+// See http://www.iana.org/assignments/character-sets/character-sets.xhtml for
+// more details.
+package ianaindex
+
+import (
+ "errors"
+ "sort"
+ "strings"
+
+ "golang.org/x/text/encoding"
+ "golang.org/x/text/encoding/charmap"
+ "golang.org/x/text/encoding/internal/identifier"
+ "golang.org/x/text/encoding/japanese"
+ "golang.org/x/text/encoding/korean"
+ "golang.org/x/text/encoding/simplifiedchinese"
+ "golang.org/x/text/encoding/traditionalchinese"
+ "golang.org/x/text/encoding/unicode"
+)
+
+// TODO: remove the "Status... incomplete" in the package doc comment.
+// TODO: allow users to specify their own aliases?
+// TODO: allow users to specify their own indexes?
+// TODO: allow canonicalizing names
+
+// NOTE: only use these top-level variables if we can get the linker to drop
+// the indexes when they are not used. Make them a function or perhaps only
+// support MIME otherwise.
+
+var (
+ // MIME is an index to map MIME names.
+ MIME *Index = mime
+
+ // IANA is an index that supports all names and aliases using IANA names as
+ // the canonical identifier.
+ IANA *Index = iana
+
+ // MIB is an index that associates the MIB display name with an Encoding.
+ MIB *Index = mib
+
+ mime = &Index{mimeName, ianaToMIB, ianaAliases, encodings[:]}
+ iana = &Index{ianaName, ianaToMIB, ianaAliases, encodings[:]}
+ mib = &Index{mibName, ianaToMIB, ianaAliases, encodings[:]}
+)
+
+// Index maps names registered by IANA to Encodings.
+// Currently different Indexes only differ in the names they return for
+// encodings. In the future they may also differ in supported aliases.
+type Index struct {
+ names func(i int) string
+ toMIB []identifier.MIB // Sorted slice of supported MIBs
+ alias map[string]int
+ enc []encoding.Encoding
+}
+
+var (
+ errInvalidName = errors.New("ianaindex: invalid encoding name")
+ errUnknown = errors.New("ianaindex: unknown Encoding")
+ errUnsupported = errors.New("ianaindex: unsupported Encoding")
+)
+
+// Encoding returns an Encoding for IANA-registered names. Matching is
+// case-insensitive.
+func (x *Index) Encoding(name string) (encoding.Encoding, error) {
+ name = strings.TrimSpace(name)
+ // First try without lowercasing (possibly creating an allocation).
+ i, ok := x.alias[name]
+ if !ok {
+ i, ok = x.alias[strings.ToLower(name)]
+ if !ok {
+ return nil, errInvalidName
+ }
+ }
+ return x.enc[i], nil
+}
+
+// Name reports the canonical name of the given Encoding. It will return an
+// error if the e is not associated with a known encoding scheme.
+func (x *Index) Name(e encoding.Encoding) (string, error) {
+ id, ok := e.(identifier.Interface)
+ if !ok {
+ return "", errUnknown
+ }
+ mib, _ := id.ID()
+ if mib == 0 {
+ return "", errUnknown
+ }
+ v := findMIB(x.toMIB, mib)
+ if v == -1 {
+ return "", errUnsupported
+ }
+ return x.names(v), nil
+}
+
+// TODO: the coverage of this index is rather spotty. Allowing users to set
+// encodings would allow:
+// - users to increase coverage
+// - allow a partially loaded set of encodings in case the user doesn't need to
+// them all.
+// - write an OS-specific wrapper for supported encodings and set them.
+// The exact definition of Set depends a bit on if and how we want to let users
+// write their own Encoding implementations. Also, it is not possible yet to
+// only partially load the encodings without doing some refactoring. Until this
+// is solved, we might as well not support Set.
+// // Set sets the e to be used for the encoding scheme identified by name. Only
+// // canonical names may be used. An empty name assigns e to its internally
+// // associated encoding scheme.
+// func (x *Index) Set(name string, e encoding.Encoding) error {
+// panic("TODO: implement")
+// }
+
+func findMIB(x []identifier.MIB, mib identifier.MIB) int {
+ i := sort.Search(len(x), func(i int) bool { return x[i] >= mib })
+ if i < len(x) && x[i] == mib {
+ return i
+ }
+ return -1
+}
+
+const maxMIMENameLen = '0' - 1 // officially 40, but we leave some buffer.
+
+func mimeName(x int) string {
+ n := ianaNames[x]
+ // See gen.go for a description of the encoding.
+ if n[0] <= maxMIMENameLen {
+ return n[1:n[0]]
+ }
+ return n
+}
+
+func ianaName(x int) string {
+ n := ianaNames[x]
+ // See gen.go for a description of the encoding.
+ if n[0] <= maxMIMENameLen {
+ return n[n[0]:]
+ }
+ return n
+}
+
+func mibName(x int) string {
+ return mibNames[x]
+}
+
+var encodings = [numIANA]encoding.Encoding{
+ enc106: unicode.UTF8,
+ enc1015: unicode.UTF16(unicode.BigEndian, unicode.UseBOM),
+ enc1013: unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM),
+ enc1014: unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM),
+ enc2028: charmap.CodePage037,
+ enc2011: charmap.CodePage437,
+ enc2009: charmap.CodePage850,
+ enc2010: charmap.CodePage852,
+ enc2046: charmap.CodePage855,
+ enc2089: charmap.CodePage858,
+ enc2048: charmap.CodePage860,
+ enc2013: charmap.CodePage862,
+ enc2050: charmap.CodePage863,
+ enc2052: charmap.CodePage865,
+ enc2086: charmap.CodePage866,
+ enc2102: charmap.CodePage1047,
+ enc2091: charmap.CodePage1140,
+ enc4: charmap.ISO8859_1,
+ enc5: charmap.ISO8859_2,
+ enc6: charmap.ISO8859_3,
+ enc7: charmap.ISO8859_4,
+ enc8: charmap.ISO8859_5,
+ enc9: charmap.ISO8859_6,
+ enc81: charmap.ISO8859_6E,
+ enc82: charmap.ISO8859_6I,
+ enc10: charmap.ISO8859_7,
+ enc11: charmap.ISO8859_8,
+ enc84: charmap.ISO8859_8E,
+ enc85: charmap.ISO8859_8I,
+ enc12: charmap.ISO8859_9,
+ enc13: charmap.ISO8859_10,
+ enc109: charmap.ISO8859_13,
+ enc110: charmap.ISO8859_14,
+ enc111: charmap.ISO8859_15,
+ enc112: charmap.ISO8859_16,
+ enc2084: charmap.KOI8R,
+ enc2088: charmap.KOI8U,
+ enc2027: charmap.Macintosh,
+ enc2109: charmap.Windows874,
+ enc2250: charmap.Windows1250,
+ enc2251: charmap.Windows1251,
+ enc2252: charmap.Windows1252,
+ enc2253: charmap.Windows1253,
+ enc2254: charmap.Windows1254,
+ enc2255: charmap.Windows1255,
+ enc2256: charmap.Windows1256,
+ enc2257: charmap.Windows1257,
+ enc2258: charmap.Windows1258,
+ enc18: japanese.EUCJP,
+ enc39: japanese.ISO2022JP,
+ enc17: japanese.ShiftJIS,
+ enc38: korean.EUCKR,
+ enc114: simplifiedchinese.GB18030,
+ enc113: simplifiedchinese.GBK,
+ enc2085: simplifiedchinese.HZGB2312,
+ enc2026: traditionalchinese.Big5,
+}
diff --git a/vendor/golang.org/x/text/encoding/ianaindex/ianaindex_test.go b/vendor/golang.org/x/text/encoding/ianaindex/ianaindex_test.go
new file mode 100644
index 0000000..20a2131
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/ianaindex/ianaindex_test.go
@@ -0,0 +1,192 @@
+// Copyright 2017 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package ianaindex
+
+import (
+ "testing"
+
+ "golang.org/x/text/encoding"
+ "golang.org/x/text/encoding/charmap"
+ "golang.org/x/text/encoding/internal/identifier"
+ "golang.org/x/text/encoding/japanese"
+ "golang.org/x/text/encoding/korean"
+ "golang.org/x/text/encoding/simplifiedchinese"
+ "golang.org/x/text/encoding/traditionalchinese"
+ "golang.org/x/text/encoding/unicode"
+)
+
+var All = [][]encoding.Encoding{
+ unicode.All,
+ charmap.All,
+ japanese.All,
+ korean.All,
+ simplifiedchinese.All,
+ traditionalchinese.All,
+}
+
+// TestAllIANA tests whether an Encoding supported in x/text is defined by IANA but
+// not supported by this package.
+func TestAllIANA(t *testing.T) {
+ for _, ea := range All {
+ for _, e := range ea {
+ mib, _ := e.(identifier.Interface).ID()
+ if x := findMIB(ianaToMIB, mib); x != -1 && encodings[x] == nil {
+ t.Errorf("supported MIB %v (%v) not in index", mib, e)
+ }
+ }
+ }
+}
+
+// TestNotSupported reports the encodings in IANA, but not by x/text.
+func TestNotSupported(t *testing.T) {
+ mibs := map[identifier.MIB]bool{}
+ for _, ea := range All {
+ for _, e := range ea {
+ mib, _ := e.(identifier.Interface).ID()
+ mibs[mib] = true
+ }
+ }
+
+ // Many encodings in the IANA index will likely not be suppored by the
+ // Go encodings. That is fine.
+ // TODO: consider wheter we should add this test.
+ // for code, mib := range ianaToMIB {
+ // t.Run(fmt.Sprint("IANA:", mib), func(t *testing.T) {
+ // if !mibs[mib] {
+ // t.Skipf("IANA encoding %s (MIB %v) not supported",
+ // ianaNames[code], mib)
+ // }
+ // })
+ // }
+}
+
+func TestEncoding(t *testing.T) {
+ testCases := []struct {
+ index *Index
+ name string
+ canonical string
+ err error
+ }{
+ {MIME, "utf-8", "UTF-8", nil},
+ {MIME, " utf-8 ", "UTF-8", nil},
+ {MIME, " l5 ", "ISO-8859-9", nil},
+ {MIME, "latin5 ", "ISO-8859-9", nil},
+ {MIME, "LATIN5 ", "ISO-8859-9", nil},
+ {MIME, "latin 5", "", errInvalidName},
+ {MIME, "latin-5", "", errInvalidName},
+
+ {IANA, "utf-8", "UTF-8", nil},
+ {IANA, " utf-8 ", "UTF-8", nil},
+ {IANA, " l5 ", "ISO_8859-9:1989", nil},
+ {IANA, "latin5 ", "ISO_8859-9:1989", nil},
+ {IANA, "LATIN5 ", "ISO_8859-9:1989", nil},
+ {IANA, "latin 5", "", errInvalidName},
+ {IANA, "latin-5", "", errInvalidName},
+
+ {MIB, "utf-8", "UTF8", nil},
+ {MIB, " utf-8 ", "UTF8", nil},
+ {MIB, " l5 ", "ISOLatin5", nil},
+ {MIB, "latin5 ", "ISOLatin5", nil},
+ {MIB, "LATIN5 ", "ISOLatin5", nil},
+ {MIB, "latin 5", "", errInvalidName},
+ {MIB, "latin-5", "", errInvalidName},
+ }
+ for i, tc := range testCases {
+ enc, err := tc.index.Encoding(tc.name)
+ if err != tc.err {
+ t.Errorf("%d: error was %v; want %v", i, err, tc.err)
+ }
+ if err != nil {
+ continue
+ }
+ if got, err := tc.index.Name(enc); got != tc.canonical {
+ t.Errorf("%d: Name(Encoding(%q)) = %q; want %q (%v)", i, tc.name, got, tc.canonical, err)
+ }
+ }
+}
+
+func TestTables(t *testing.T) {
+ for i, x := range []*Index{MIME, IANA} {
+ for name, index := range x.alias {
+ got, err := x.Encoding(name)
+ if err != nil {
+ t.Errorf("%d%s:err: unexpected error %v", i, name, err)
+ }
+ if want := x.enc[index]; got != want {
+ t.Errorf("%d%s:encoding: got %v; want %v", i, name, got, want)
+ }
+ if got != nil {
+ mib, _ := got.(identifier.Interface).ID()
+ if i := findMIB(x.toMIB, mib); i != index {
+ t.Errorf("%d%s:mib: got %d; want %d", i, name, i, index)
+ }
+ }
+ }
+ }
+}
+
+type unsupported struct {
+ encoding.Encoding
+}
+
+func (unsupported) ID() (identifier.MIB, string) { return 9999, "" }
+
+func TestName(t *testing.T) {
+ testCases := []struct {
+ desc string
+ enc encoding.Encoding
+ f func(e encoding.Encoding) (string, error)
+ name string
+ err error
+ }{{
+ "defined encoding",
+ charmap.ISO8859_2,
+ MIME.Name,
+ "ISO-8859-2",
+ nil,
+ }, {
+ "defined Unicode encoding",
+ unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM),
+ IANA.Name,
+ "UTF-16BE",
+ nil,
+ }, {
+ "another defined Unicode encoding",
+ unicode.UTF16(unicode.BigEndian, unicode.UseBOM),
+ MIME.Name,
+ "UTF-16",
+ nil,
+ }, {
+ "unknown Unicode encoding",
+ unicode.UTF16(unicode.BigEndian, unicode.ExpectBOM),
+ MIME.Name,
+ "",
+ errUnknown,
+ }, {
+ "undefined encoding",
+ unsupported{},
+ MIME.Name,
+ "",
+ errUnsupported,
+ }, {
+ "undefined other encoding in HTML standard",
+ charmap.CodePage437,
+ IANA.Name,
+ "IBM437",
+ nil,
+ }, {
+ "unknown encoding",
+ encoding.Nop,
+ IANA.Name,
+ "",
+ errUnknown,
+ }}
+ for i, tc := range testCases {
+ name, err := tc.f(tc.enc)
+ if name != tc.name || err != tc.err {
+ t.Errorf("%d:%s: got %q, %v; want %q, %v", i, tc.desc, name, err, tc.name, tc.err)
+ }
+ }
+}
diff --git a/vendor/golang.org/x/text/encoding/ianaindex/tables.go b/vendor/golang.org/x/text/encoding/ianaindex/tables.go
new file mode 100644
index 0000000..98a1d77
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/ianaindex/tables.go
@@ -0,0 +1,2348 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+package ianaindex
+
+import "golang.org/x/text/encoding/internal/identifier"
+
+const (
+ enc3 = iota
+ enc4
+ enc5
+ enc6
+ enc7
+ enc8
+ enc9
+ enc10
+ enc11
+ enc12
+ enc13
+ enc14
+ enc15
+ enc16
+ enc17
+ enc18
+ enc19
+ enc20
+ enc21
+ enc22
+ enc23
+ enc24
+ enc25
+ enc26
+ enc27
+ enc28
+ enc29
+ enc30
+ enc31
+ enc32
+ enc33
+ enc34
+ enc35
+ enc36
+ enc37
+ enc38
+ enc39
+ enc40
+ enc41
+ enc42
+ enc43
+ enc44
+ enc45
+ enc46
+ enc47
+ enc48
+ enc49
+ enc50
+ enc51
+ enc52
+ enc53
+ enc54
+ enc55
+ enc56
+ enc57
+ enc58
+ enc59
+ enc60
+ enc61
+ enc62
+ enc63
+ enc64
+ enc65
+ enc66
+ enc67
+ enc68
+ enc69
+ enc70
+ enc71
+ enc72
+ enc73
+ enc74
+ enc75
+ enc76
+ enc77
+ enc78
+ enc79
+ enc80
+ enc81
+ enc82
+ enc83
+ enc84
+ enc85
+ enc86
+ enc87
+ enc88
+ enc89
+ enc90
+ enc91
+ enc92
+ enc93
+ enc94
+ enc95
+ enc96
+ enc97
+ enc98
+ enc99
+ enc100
+ enc101
+ enc102
+ enc103
+ enc104
+ enc105
+ enc106
+ enc109
+ enc110
+ enc111
+ enc112
+ enc113
+ enc114
+ enc115
+ enc116
+ enc117
+ enc118
+ enc119
+ enc1000
+ enc1001
+ enc1002
+ enc1003
+ enc1004
+ enc1005
+ enc1006
+ enc1007
+ enc1008
+ enc1009
+ enc1010
+ enc1011
+ enc1012
+ enc1013
+ enc1014
+ enc1015
+ enc1016
+ enc1017
+ enc1018
+ enc1019
+ enc1020
+ enc2000
+ enc2001
+ enc2002
+ enc2003
+ enc2004
+ enc2005
+ enc2006
+ enc2007
+ enc2008
+ enc2009
+ enc2010
+ enc2011
+ enc2012
+ enc2013
+ enc2014
+ enc2015
+ enc2016
+ enc2017
+ enc2018
+ enc2019
+ enc2020
+ enc2021
+ enc2022
+ enc2023
+ enc2024
+ enc2025
+ enc2026
+ enc2027
+ enc2028
+ enc2029
+ enc2030
+ enc2031
+ enc2032
+ enc2033
+ enc2034
+ enc2035
+ enc2036
+ enc2037
+ enc2038
+ enc2039
+ enc2040
+ enc2041
+ enc2042
+ enc2043
+ enc2044
+ enc2045
+ enc2046
+ enc2047
+ enc2048
+ enc2049
+ enc2050
+ enc2051
+ enc2052
+ enc2053
+ enc2054
+ enc2055
+ enc2056
+ enc2057
+ enc2058
+ enc2059
+ enc2060
+ enc2061
+ enc2062
+ enc2063
+ enc2064
+ enc2065
+ enc2066
+ enc2067
+ enc2068
+ enc2069
+ enc2070
+ enc2071
+ enc2072
+ enc2073
+ enc2074
+ enc2075
+ enc2076
+ enc2077
+ enc2078
+ enc2079
+ enc2080
+ enc2081
+ enc2082
+ enc2083
+ enc2084
+ enc2085
+ enc2086
+ enc2087
+ enc2088
+ enc2089
+ enc2090
+ enc2091
+ enc2092
+ enc2093
+ enc2094
+ enc2095
+ enc2096
+ enc2097
+ enc2098
+ enc2099
+ enc2100
+ enc2101
+ enc2102
+ enc2103
+ enc2104
+ enc2105
+ enc2106
+ enc2107
+ enc2108
+ enc2109
+ enc2250
+ enc2251
+ enc2252
+ enc2253
+ enc2254
+ enc2255
+ enc2256
+ enc2257
+ enc2258
+ enc2259
+ enc2260
+ numIANA
+)
+
+var ianaToMIB = []identifier.MIB{ // 257 elements
+ // Entry 0 - 3F
+ 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a,
+ 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012,
+ 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a,
+ 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022,
+ 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a,
+ 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032,
+ 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a,
+ 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042,
+ // Entry 40 - 7F
+ 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a,
+ 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052,
+ 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a,
+ 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062,
+ 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a,
+ 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074,
+ 0x0075, 0x0076, 0x0077, 0x03e8, 0x03e9, 0x03ea, 0x03eb, 0x03ec,
+ 0x03ed, 0x03ee, 0x03ef, 0x03f0, 0x03f1, 0x03f2, 0x03f3, 0x03f4,
+ // Entry 80 - BF
+ 0x03f5, 0x03f6, 0x03f7, 0x03f8, 0x03f9, 0x03fa, 0x03fb, 0x03fc,
+ 0x07d0, 0x07d1, 0x07d2, 0x07d3, 0x07d4, 0x07d5, 0x07d6, 0x07d7,
+ 0x07d8, 0x07d9, 0x07da, 0x07db, 0x07dc, 0x07dd, 0x07de, 0x07df,
+ 0x07e0, 0x07e1, 0x07e2, 0x07e3, 0x07e4, 0x07e5, 0x07e6, 0x07e7,
+ 0x07e8, 0x07e9, 0x07ea, 0x07eb, 0x07ec, 0x07ed, 0x07ee, 0x07ef,
+ 0x07f0, 0x07f1, 0x07f2, 0x07f3, 0x07f4, 0x07f5, 0x07f6, 0x07f7,
+ 0x07f8, 0x07f9, 0x07fa, 0x07fb, 0x07fc, 0x07fd, 0x07fe, 0x07ff,
+ 0x0800, 0x0801, 0x0802, 0x0803, 0x0804, 0x0805, 0x0806, 0x0807,
+ // Entry C0 - FF
+ 0x0808, 0x0809, 0x080a, 0x080b, 0x080c, 0x080d, 0x080e, 0x080f,
+ 0x0810, 0x0811, 0x0812, 0x0813, 0x0814, 0x0815, 0x0816, 0x0817,
+ 0x0818, 0x0819, 0x081a, 0x081b, 0x081c, 0x081d, 0x081e, 0x081f,
+ 0x0820, 0x0821, 0x0822, 0x0823, 0x0824, 0x0825, 0x0826, 0x0827,
+ 0x0828, 0x0829, 0x082a, 0x082b, 0x082c, 0x082d, 0x082e, 0x082f,
+ 0x0830, 0x0831, 0x0832, 0x0833, 0x0834, 0x0835, 0x0836, 0x0837,
+ 0x0838, 0x0839, 0x083a, 0x083b, 0x083c, 0x083d, 0x08ca, 0x08cb,
+ 0x08cc, 0x08cd, 0x08ce, 0x08cf, 0x08d0, 0x08d1, 0x08d2, 0x08d3,
+ // Entry 100 - 13F
+ 0x08d4,
+} // Size: 538 bytes
+
+var ianaNames = []string{ // 257 elements
+ "US-ASCII",
+ "\vISO-8859-1ISO_8859-1:1987",
+ "\vISO-8859-2ISO_8859-2:1987",
+ "\vISO-8859-3ISO_8859-3:1988",
+ "\vISO-8859-4ISO_8859-4:1988",
+ "\vISO-8859-5ISO_8859-5:1988",
+ "\vISO-8859-6ISO_8859-6:1987",
+ "\vISO-8859-7ISO_8859-7:1987",
+ "\vISO-8859-8ISO_8859-8:1988",
+ "\vISO-8859-9ISO_8859-9:1989",
+ "ISO-8859-10",
+ "ISO_6937-2-add",
+ "JIS_X0201",
+ "JIS_Encoding",
+ "Shift_JIS",
+ "\x07EUC-JPExtended_UNIX_Code_Packed_Format_for_Japanese",
+ "Extended_UNIX_Code_Fixed_Width_for_Japanese",
+ "BS_4730",
+ "SEN_850200_C",
+ "IT",
+ "ES",
+ "DIN_66003",
+ "NS_4551-1",
+ "NF_Z_62-010",
+ "ISO-10646-UTF-1",
+ "ISO_646.basic:1983",
+ "INVARIANT",
+ "ISO_646.irv:1983",
+ "NATS-SEFI",
+ "NATS-SEFI-ADD",
+ "NATS-DANO",
+ "NATS-DANO-ADD",
+ "SEN_850200_B",
+ "KS_C_5601-1987",
+ "ISO-2022-KR",
+ "EUC-KR",
+ "ISO-2022-JP",
+ "ISO-2022-JP-2",
+ "JIS_C6220-1969-jp",
+ "JIS_C6220-1969-ro",
+ "PT",
+ "greek7-old",
+ "latin-greek",
+ "NF_Z_62-010_(1973)",
+ "Latin-greek-1",
+ "ISO_5427",
+ "JIS_C6226-1978",
+ "BS_viewdata",
+ "INIS",
+ "INIS-8",
+ "INIS-cyrillic",
+ "ISO_5427:1981",
+ "ISO_5428:1980",
+ "GB_1988-80",
+ "GB_2312-80",
+ "NS_4551-2",
+ "videotex-suppl",
+ "PT2",
+ "ES2",
+ "MSZ_7795.3",
+ "JIS_C6226-1983",
+ "greek7",
+ "ASMO_449",
+ "iso-ir-90",
+ "JIS_C6229-1984-a",
+ "JIS_C6229-1984-b",
+ "JIS_C6229-1984-b-add",
+ "JIS_C6229-1984-hand",
+ "JIS_C6229-1984-hand-add",
+ "JIS_C6229-1984-kana",
+ "ISO_2033-1983",
+ "ANSI_X3.110-1983",
+ "T.61-7bit",
+ "T.61-8bit",
+ "ECMA-cyrillic",
+ "CSA_Z243.4-1985-1",
+ "CSA_Z243.4-1985-2",
+ "CSA_Z243.4-1985-gr",
+ "\rISO-8859-6-EISO_8859-6-E",
+ "\rISO-8859-6-IISO_8859-6-I",
+ "T.101-G2",
+ "\rISO-8859-8-EISO_8859-8-E",
+ "\rISO-8859-8-IISO_8859-8-I",
+ "CSN_369103",
+ "JUS_I.B1.002",
+ "IEC_P27-1",
+ "JUS_I.B1.003-serb",
+ "JUS_I.B1.003-mac",
+ "greek-ccitt",
+ "NC_NC00-10:81",
+ "ISO_6937-2-25",
+ "GOST_19768-74",
+ "ISO_8859-supp",
+ "ISO_10367-box",
+ "latin-lap",
+ "JIS_X0212-1990",
+ "DS_2089",
+ "us-dk",
+ "dk-us",
+ "KSC5636",
+ "UNICODE-1-1-UTF-7",
+ "ISO-2022-CN",
+ "ISO-2022-CN-EXT",
+ "UTF-8",
+ "ISO-8859-13",
+ "ISO-8859-14",
+ "ISO-8859-15",
+ "ISO-8859-16",
+ "GBK",
+ "GB18030",
+ "OSD_EBCDIC_DF04_15",
+ "OSD_EBCDIC_DF03_IRV",
+ "OSD_EBCDIC_DF04_1",
+ "ISO-11548-1",
+ "KZ-1048",
+ "ISO-10646-UCS-2",
+ "ISO-10646-UCS-4",
+ "ISO-10646-UCS-Basic",
+ "ISO-10646-Unicode-Latin1",
+ "ISO-10646-J-1",
+ "ISO-Unicode-IBM-1261",
+ "ISO-Unicode-IBM-1268",
+ "ISO-Unicode-IBM-1276",
+ "ISO-Unicode-IBM-1264",
+ "ISO-Unicode-IBM-1265",
+ "UNICODE-1-1",
+ "SCSU",
+ "UTF-7",
+ "UTF-16BE",
+ "UTF-16LE",
+ "UTF-16",
+ "CESU-8",
+ "UTF-32",
+ "UTF-32BE",
+ "UTF-32LE",
+ "BOCU-1",
+ "ISO-8859-1-Windows-3.0-Latin-1",
+ "ISO-8859-1-Windows-3.1-Latin-1",
+ "ISO-8859-2-Windows-Latin-2",
+ "ISO-8859-9-Windows-Latin-5",
+ "hp-roman8",
+ "Adobe-Standard-Encoding",
+ "Ventura-US",
+ "Ventura-International",
+ "DEC-MCS",
+ "IBM850",
+ "IBM852",
+ "IBM437",
+ "PC8-Danish-Norwegian",
+ "IBM862",
+ "PC8-Turkish",
+ "IBM-Symbols",
+ "IBM-Thai",
+ "HP-Legal",
+ "HP-Pi-font",
+ "HP-Math8",
+ "Adobe-Symbol-Encoding",
+ "HP-DeskTop",
+ "Ventura-Math",
+ "Microsoft-Publishing",
+ "Windows-31J",
+ "GB2312",
+ "Big5",
+ "macintosh",
+ "IBM037",
+ "IBM038",
+ "IBM273",
+ "IBM274",
+ "IBM275",
+ "IBM277",
+ "IBM278",
+ "IBM280",
+ "IBM281",
+ "IBM284",
+ "IBM285",
+ "IBM290",
+ "IBM297",
+ "IBM420",
+ "IBM423",
+ "IBM424",
+ "IBM500",
+ "IBM851",
+ "IBM855",
+ "IBM857",
+ "IBM860",
+ "IBM861",
+ "IBM863",
+ "IBM864",
+ "IBM865",
+ "IBM868",
+ "IBM869",
+ "IBM870",
+ "IBM871",
+ "IBM880",
+ "IBM891",
+ "IBM903",
+ "IBM904",
+ "IBM905",
+ "IBM918",
+ "IBM1026",
+ "EBCDIC-AT-DE",
+ "EBCDIC-AT-DE-A",
+ "EBCDIC-CA-FR",
+ "EBCDIC-DK-NO",
+ "EBCDIC-DK-NO-A",
+ "EBCDIC-FI-SE",
+ "EBCDIC-FI-SE-A",
+ "EBCDIC-FR",
+ "EBCDIC-IT",
+ "EBCDIC-PT",
+ "EBCDIC-ES",
+ "EBCDIC-ES-A",
+ "EBCDIC-ES-S",
+ "EBCDIC-UK",
+ "EBCDIC-US",
+ "UNKNOWN-8BIT",
+ "MNEMONIC",
+ "MNEM",
+ "VISCII",
+ "VIQR",
+ "KOI8-R",
+ "HZ-GB-2312",
+ "IBM866",
+ "IBM775",
+ "KOI8-U",
+ "IBM00858",
+ "IBM00924",
+ "IBM01140",
+ "IBM01141",
+ "IBM01142",
+ "IBM01143",
+ "IBM01144",
+ "IBM01145",
+ "IBM01146",
+ "IBM01147",
+ "IBM01148",
+ "IBM01149",
+ "Big5-HKSCS",
+ "IBM1047",
+ "PTCP154",
+ "Amiga-1251",
+ "KOI7-switched",
+ "BRF",
+ "TSCII",
+ "CP51932",
+ "windows-874",
+ "windows-1250",
+ "windows-1251",
+ "windows-1252",
+ "windows-1253",
+ "windows-1254",
+ "windows-1255",
+ "windows-1256",
+ "windows-1257",
+ "windows-1258",
+ "TIS-620",
+ "CP50220",
+} // Size: 7088 bytes
+
+var mibNames = []string{ // 257 elements
+ "ASCII",
+ "ISOLatin1",
+ "ISOLatin2",
+ "ISOLatin3",
+ "ISOLatin4",
+ "ISOLatinCyrillic",
+ "ISOLatinArabic",
+ "ISOLatinGreek",
+ "ISOLatinHebrew",
+ "ISOLatin5",
+ "ISOLatin6",
+ "ISOTextComm",
+ "HalfWidthKatakana",
+ "JISEncoding",
+ "ShiftJIS",
+ "EUCPkdFmtJapanese",
+ "EUCFixWidJapanese",
+ "ISO4UnitedKingdom",
+ "ISO11SwedishForNames",
+ "ISO15Italian",
+ "ISO17Spanish",
+ "ISO21German",
+ "ISO60Norwegian1",
+ "ISO69French",
+ "ISO10646UTF1",
+ "ISO646basic1983",
+ "INVARIANT",
+ "ISO2IntlRefVersion",
+ "NATSSEFI",
+ "NATSSEFIADD",
+ "NATSDANO",
+ "NATSDANOADD",
+ "ISO10Swedish",
+ "KSC56011987",
+ "ISO2022KR",
+ "EUCKR",
+ "ISO2022JP",
+ "ISO2022JP2",
+ "ISO13JISC6220jp",
+ "ISO14JISC6220ro",
+ "ISO16Portuguese",
+ "ISO18Greek7Old",
+ "ISO19LatinGreek",
+ "ISO25French",
+ "ISO27LatinGreek1",
+ "ISO5427Cyrillic",
+ "ISO42JISC62261978",
+ "ISO47BSViewdata",
+ "ISO49INIS",
+ "ISO50INIS8",
+ "ISO51INISCyrillic",
+ "ISO54271981",
+ "ISO5428Greek",
+ "ISO57GB1988",
+ "ISO58GB231280",
+ "ISO61Norwegian2",
+ "ISO70VideotexSupp1",
+ "ISO84Portuguese2",
+ "ISO85Spanish2",
+ "ISO86Hungarian",
+ "ISO87JISX0208",
+ "ISO88Greek7",
+ "ISO89ASMO449",
+ "ISO90",
+ "ISO91JISC62291984a",
+ "ISO92JISC62991984b",
+ "ISO93JIS62291984badd",
+ "ISO94JIS62291984hand",
+ "ISO95JIS62291984handadd",
+ "ISO96JISC62291984kana",
+ "ISO2033",
+ "ISO99NAPLPS",
+ "ISO102T617bit",
+ "ISO103T618bit",
+ "ISO111ECMACyrillic",
+ "ISO121Canadian1",
+ "ISO122Canadian2",
+ "ISO123CSAZ24341985gr",
+ "ISO88596E",
+ "ISO88596I",
+ "ISO128T101G2",
+ "ISO88598E",
+ "ISO88598I",
+ "ISO139CSN369103",
+ "ISO141JUSIB1002",
+ "ISO143IECP271",
+ "ISO146Serbian",
+ "ISO147Macedonian",
+ "ISO150GreekCCITT",
+ "ISO151Cuba",
+ "ISO6937Add",
+ "ISO153GOST1976874",
+ "ISO8859Supp",
+ "ISO10367Box",
+ "ISO158Lap",
+ "ISO159JISX02121990",
+ "ISO646Danish",
+ "USDK",
+ "DKUS",
+ "KSC5636",
+ "Unicode11UTF7",
+ "ISO2022CN",
+ "ISO2022CNEXT",
+ "UTF8",
+ "ISO885913",
+ "ISO885914",
+ "ISO885915",
+ "ISO885916",
+ "GBK",
+ "GB18030",
+ "OSDEBCDICDF0415",
+ "OSDEBCDICDF03IRV",
+ "OSDEBCDICDF041",
+ "ISO115481",
+ "KZ1048",
+ "Unicode",
+ "UCS4",
+ "UnicodeASCII",
+ "UnicodeLatin1",
+ "UnicodeJapanese",
+ "UnicodeIBM1261",
+ "UnicodeIBM1268",
+ "UnicodeIBM1276",
+ "UnicodeIBM1264",
+ "UnicodeIBM1265",
+ "Unicode11",
+ "SCSU",
+ "UTF7",
+ "UTF16BE",
+ "UTF16LE",
+ "UTF16",
+ "CESU-8",
+ "UTF32",
+ "UTF32BE",
+ "UTF32LE",
+ "BOCU-1",
+ "Windows30Latin1",
+ "Windows31Latin1",
+ "Windows31Latin2",
+ "Windows31Latin5",
+ "HPRoman8",
+ "AdobeStandardEncoding",
+ "VenturaUS",
+ "VenturaInternational",
+ "DECMCS",
+ "PC850Multilingual",
+ "PCp852",
+ "PC8CodePage437",
+ "PC8DanishNorwegian",
+ "PC862LatinHebrew",
+ "PC8Turkish",
+ "IBMSymbols",
+ "IBMThai",
+ "HPLegal",
+ "HPPiFont",
+ "HPMath8",
+ "HPPSMath",
+ "HPDesktop",
+ "VenturaMath",
+ "MicrosoftPublishing",
+ "Windows31J",
+ "GB2312",
+ "Big5",
+ "Macintosh",
+ "IBM037",
+ "IBM038",
+ "IBM273",
+ "IBM274",
+ "IBM275",
+ "IBM277",
+ "IBM278",
+ "IBM280",
+ "IBM281",
+ "IBM284",
+ "IBM285",
+ "IBM290",
+ "IBM297",
+ "IBM420",
+ "IBM423",
+ "IBM424",
+ "IBM500",
+ "IBM851",
+ "IBM855",
+ "IBM857",
+ "IBM860",
+ "IBM861",
+ "IBM863",
+ "IBM864",
+ "IBM865",
+ "IBM868",
+ "IBM869",
+ "IBM870",
+ "IBM871",
+ "IBM880",
+ "IBM891",
+ "IBM903",
+ "IBBM904",
+ "IBM905",
+ "IBM918",
+ "IBM1026",
+ "IBMEBCDICATDE",
+ "EBCDICATDEA",
+ "EBCDICCAFR",
+ "EBCDICDKNO",
+ "EBCDICDKNOA",
+ "EBCDICFISE",
+ "EBCDICFISEA",
+ "EBCDICFR",
+ "EBCDICIT",
+ "EBCDICPT",
+ "EBCDICES",
+ "EBCDICESA",
+ "EBCDICESS",
+ "EBCDICUK",
+ "EBCDICUS",
+ "Unknown8BiT",
+ "Mnemonic",
+ "Mnem",
+ "VISCII",
+ "VIQR",
+ "KOI8R",
+ "HZ-GB-2312",
+ "IBM866",
+ "PC775Baltic",
+ "KOI8U",
+ "IBM00858",
+ "IBM00924",
+ "IBM01140",
+ "IBM01141",
+ "IBM01142",
+ "IBM01143",
+ "IBM01144",
+ "IBM01145",
+ "IBM01146",
+ "IBM01147",
+ "IBM01148",
+ "IBM01149",
+ "Big5HKSCS",
+ "IBM1047",
+ "PTCP154",
+ "Amiga1251\n(Aliases",
+ "KOI7switched",
+ "BRF",
+ "TSCII",
+ "CP51932",
+ "windows874",
+ "windows1250",
+ "windows1251",
+ "windows1252",
+ "windows1253",
+ "windows1254",
+ "windows1255",
+ "windows1256",
+ "windows1257",
+ "windows1258",
+ "TIS620",
+ "CP50220",
+} // Size: 6776 bytes
+
+// TODO: Instead of using a map, we could use binary search strings doing
+// on-the fly lower-casing per character. This allows to always avoid
+// allocation and will be considerably more compact.
+var ianaAliases = map[string]int{
+ "US-ASCII": enc3,
+ "us-ascii": enc3,
+ "iso-ir-6": enc3,
+ "ANSI_X3.4-1968": enc3,
+ "ansi_x3.4-1968": enc3,
+ "ANSI_X3.4-1986": enc3,
+ "ansi_x3.4-1986": enc3,
+ "ISO_646.irv:1991": enc3,
+ "iso_646.irv:1991": enc3,
+ "ISO646-US": enc3,
+ "iso646-us": enc3,
+ "us": enc3,
+ "IBM367": enc3,
+ "ibm367": enc3,
+ "cp367": enc3,
+ "csASCII": enc3,
+ "csascii": enc3,
+ "ISO_8859-1:1987": enc4,
+ "iso_8859-1:1987": enc4,
+ "iso-ir-100": enc4,
+ "ISO_8859-1": enc4,
+ "iso_8859-1": enc4,
+ "ISO-8859-1": enc4,
+ "iso-8859-1": enc4,
+ "latin1": enc4,
+ "l1": enc4,
+ "IBM819": enc4,
+ "ibm819": enc4,
+ "CP819": enc4,
+ "cp819": enc4,
+ "csISOLatin1": enc4,
+ "csisolatin1": enc4,
+ "ISO_8859-2:1987": enc5,
+ "iso_8859-2:1987": enc5,
+ "iso-ir-101": enc5,
+ "ISO_8859-2": enc5,
+ "iso_8859-2": enc5,
+ "ISO-8859-2": enc5,
+ "iso-8859-2": enc5,
+ "latin2": enc5,
+ "l2": enc5,
+ "csISOLatin2": enc5,
+ "csisolatin2": enc5,
+ "ISO_8859-3:1988": enc6,
+ "iso_8859-3:1988": enc6,
+ "iso-ir-109": enc6,
+ "ISO_8859-3": enc6,
+ "iso_8859-3": enc6,
+ "ISO-8859-3": enc6,
+ "iso-8859-3": enc6,
+ "latin3": enc6,
+ "l3": enc6,
+ "csISOLatin3": enc6,
+ "csisolatin3": enc6,
+ "ISO_8859-4:1988": enc7,
+ "iso_8859-4:1988": enc7,
+ "iso-ir-110": enc7,
+ "ISO_8859-4": enc7,
+ "iso_8859-4": enc7,
+ "ISO-8859-4": enc7,
+ "iso-8859-4": enc7,
+ "latin4": enc7,
+ "l4": enc7,
+ "csISOLatin4": enc7,
+ "csisolatin4": enc7,
+ "ISO_8859-5:1988": enc8,
+ "iso_8859-5:1988": enc8,
+ "iso-ir-144": enc8,
+ "ISO_8859-5": enc8,
+ "iso_8859-5": enc8,
+ "ISO-8859-5": enc8,
+ "iso-8859-5": enc8,
+ "cyrillic": enc8,
+ "csISOLatinCyrillic": enc8,
+ "csisolatincyrillic": enc8,
+ "ISO_8859-6:1987": enc9,
+ "iso_8859-6:1987": enc9,
+ "iso-ir-127": enc9,
+ "ISO_8859-6": enc9,
+ "iso_8859-6": enc9,
+ "ISO-8859-6": enc9,
+ "iso-8859-6": enc9,
+ "ECMA-114": enc9,
+ "ecma-114": enc9,
+ "ASMO-708": enc9,
+ "asmo-708": enc9,
+ "arabic": enc9,
+ "csISOLatinArabic": enc9,
+ "csisolatinarabic": enc9,
+ "ISO_8859-7:1987": enc10,
+ "iso_8859-7:1987": enc10,
+ "iso-ir-126": enc10,
+ "ISO_8859-7": enc10,
+ "iso_8859-7": enc10,
+ "ISO-8859-7": enc10,
+ "iso-8859-7": enc10,
+ "ELOT_928": enc10,
+ "elot_928": enc10,
+ "ECMA-118": enc10,
+ "ecma-118": enc10,
+ "greek": enc10,
+ "greek8": enc10,
+ "csISOLatinGreek": enc10,
+ "csisolatingreek": enc10,
+ "ISO_8859-8:1988": enc11,
+ "iso_8859-8:1988": enc11,
+ "iso-ir-138": enc11,
+ "ISO_8859-8": enc11,
+ "iso_8859-8": enc11,
+ "ISO-8859-8": enc11,
+ "iso-8859-8": enc11,
+ "hebrew": enc11,
+ "csISOLatinHebrew": enc11,
+ "csisolatinhebrew": enc11,
+ "ISO_8859-9:1989": enc12,
+ "iso_8859-9:1989": enc12,
+ "iso-ir-148": enc12,
+ "ISO_8859-9": enc12,
+ "iso_8859-9": enc12,
+ "ISO-8859-9": enc12,
+ "iso-8859-9": enc12,
+ "latin5": enc12,
+ "l5": enc12,
+ "csISOLatin5": enc12,
+ "csisolatin5": enc12,
+ "ISO-8859-10": enc13,
+ "iso-8859-10": enc13,
+ "iso-ir-157": enc13,
+ "l6": enc13,
+ "ISO_8859-10:1992": enc13,
+ "iso_8859-10:1992": enc13,
+ "csISOLatin6": enc13,
+ "csisolatin6": enc13,
+ "latin6": enc13,
+ "ISO_6937-2-add": enc14,
+ "iso_6937-2-add": enc14,
+ "iso-ir-142": enc14,
+ "csISOTextComm": enc14,
+ "csisotextcomm": enc14,
+ "JIS_X0201": enc15,
+ "jis_x0201": enc15,
+ "X0201": enc15,
+ "x0201": enc15,
+ "csHalfWidthKatakana": enc15,
+ "cshalfwidthkatakana": enc15,
+ "JIS_Encoding": enc16,
+ "jis_encoding": enc16,
+ "csJISEncoding": enc16,
+ "csjisencoding": enc16,
+ "Shift_JIS": enc17,
+ "shift_jis": enc17,
+ "MS_Kanji": enc17,
+ "ms_kanji": enc17,
+ "csShiftJIS": enc17,
+ "csshiftjis": enc17,
+ "Extended_UNIX_Code_Packed_Format_for_Japanese": enc18,
+ "extended_unix_code_packed_format_for_japanese": enc18,
+ "csEUCPkdFmtJapanese": enc18,
+ "cseucpkdfmtjapanese": enc18,
+ "EUC-JP": enc18,
+ "euc-jp": enc18,
+ "Extended_UNIX_Code_Fixed_Width_for_Japanese": enc19,
+ "extended_unix_code_fixed_width_for_japanese": enc19,
+ "csEUCFixWidJapanese": enc19,
+ "cseucfixwidjapanese": enc19,
+ "BS_4730": enc20,
+ "bs_4730": enc20,
+ "iso-ir-4": enc20,
+ "ISO646-GB": enc20,
+ "iso646-gb": enc20,
+ "gb": enc20,
+ "uk": enc20,
+ "csISO4UnitedKingdom": enc20,
+ "csiso4unitedkingdom": enc20,
+ "SEN_850200_C": enc21,
+ "sen_850200_c": enc21,
+ "iso-ir-11": enc21,
+ "ISO646-SE2": enc21,
+ "iso646-se2": enc21,
+ "se2": enc21,
+ "csISO11SwedishForNames": enc21,
+ "csiso11swedishfornames": enc21,
+ "IT": enc22,
+ "it": enc22,
+ "iso-ir-15": enc22,
+ "ISO646-IT": enc22,
+ "iso646-it": enc22,
+ "csISO15Italian": enc22,
+ "csiso15italian": enc22,
+ "ES": enc23,
+ "es": enc23,
+ "iso-ir-17": enc23,
+ "ISO646-ES": enc23,
+ "iso646-es": enc23,
+ "csISO17Spanish": enc23,
+ "csiso17spanish": enc23,
+ "DIN_66003": enc24,
+ "din_66003": enc24,
+ "iso-ir-21": enc24,
+ "de": enc24,
+ "ISO646-DE": enc24,
+ "iso646-de": enc24,
+ "csISO21German": enc24,
+ "csiso21german": enc24,
+ "NS_4551-1": enc25,
+ "ns_4551-1": enc25,
+ "iso-ir-60": enc25,
+ "ISO646-NO": enc25,
+ "iso646-no": enc25,
+ "no": enc25,
+ "csISO60DanishNorwegian": enc25,
+ "csiso60danishnorwegian": enc25,
+ "csISO60Norwegian1": enc25,
+ "csiso60norwegian1": enc25,
+ "NF_Z_62-010": enc26,
+ "nf_z_62-010": enc26,
+ "iso-ir-69": enc26,
+ "ISO646-FR": enc26,
+ "iso646-fr": enc26,
+ "fr": enc26,
+ "csISO69French": enc26,
+ "csiso69french": enc26,
+ "ISO-10646-UTF-1": enc27,
+ "iso-10646-utf-1": enc27,
+ "csISO10646UTF1": enc27,
+ "csiso10646utf1": enc27,
+ "ISO_646.basic:1983": enc28,
+ "iso_646.basic:1983": enc28,
+ "ref": enc28,
+ "csISO646basic1983": enc28,
+ "csiso646basic1983": enc28,
+ "INVARIANT": enc29,
+ "invariant": enc29,
+ "csINVARIANT": enc29,
+ "csinvariant": enc29,
+ "ISO_646.irv:1983": enc30,
+ "iso_646.irv:1983": enc30,
+ "iso-ir-2": enc30,
+ "irv": enc30,
+ "csISO2IntlRefVersion": enc30,
+ "csiso2intlrefversion": enc30,
+ "NATS-SEFI": enc31,
+ "nats-sefi": enc31,
+ "iso-ir-8-1": enc31,
+ "csNATSSEFI": enc31,
+ "csnatssefi": enc31,
+ "NATS-SEFI-ADD": enc32,
+ "nats-sefi-add": enc32,
+ "iso-ir-8-2": enc32,
+ "csNATSSEFIADD": enc32,
+ "csnatssefiadd": enc32,
+ "NATS-DANO": enc33,
+ "nats-dano": enc33,
+ "iso-ir-9-1": enc33,
+ "csNATSDANO": enc33,
+ "csnatsdano": enc33,
+ "NATS-DANO-ADD": enc34,
+ "nats-dano-add": enc34,
+ "iso-ir-9-2": enc34,
+ "csNATSDANOADD": enc34,
+ "csnatsdanoadd": enc34,
+ "SEN_850200_B": enc35,
+ "sen_850200_b": enc35,
+ "iso-ir-10": enc35,
+ "FI": enc35,
+ "fi": enc35,
+ "ISO646-FI": enc35,
+ "iso646-fi": enc35,
+ "ISO646-SE": enc35,
+ "iso646-se": enc35,
+ "se": enc35,
+ "csISO10Swedish": enc35,
+ "csiso10swedish": enc35,
+ "KS_C_5601-1987": enc36,
+ "ks_c_5601-1987": enc36,
+ "iso-ir-149": enc36,
+ "KS_C_5601-1989": enc36,
+ "ks_c_5601-1989": enc36,
+ "KSC_5601": enc36,
+ "ksc_5601": enc36,
+ "korean": enc36,
+ "csKSC56011987": enc36,
+ "csksc56011987": enc36,
+ "ISO-2022-KR": enc37,
+ "iso-2022-kr": enc37,
+ "csISO2022KR": enc37,
+ "csiso2022kr": enc37,
+ "EUC-KR": enc38,
+ "euc-kr": enc38,
+ "csEUCKR": enc38,
+ "cseuckr": enc38,
+ "ISO-2022-JP": enc39,
+ "iso-2022-jp": enc39,
+ "csISO2022JP": enc39,
+ "csiso2022jp": enc39,
+ "ISO-2022-JP-2": enc40,
+ "iso-2022-jp-2": enc40,
+ "csISO2022JP2": enc40,
+ "csiso2022jp2": enc40,
+ "JIS_C6220-1969-jp": enc41,
+ "jis_c6220-1969-jp": enc41,
+ "JIS_C6220-1969": enc41,
+ "jis_c6220-1969": enc41,
+ "iso-ir-13": enc41,
+ "katakana": enc41,
+ "x0201-7": enc41,
+ "csISO13JISC6220jp": enc41,
+ "csiso13jisc6220jp": enc41,
+ "JIS_C6220-1969-ro": enc42,
+ "jis_c6220-1969-ro": enc42,
+ "iso-ir-14": enc42,
+ "jp": enc42,
+ "ISO646-JP": enc42,
+ "iso646-jp": enc42,
+ "csISO14JISC6220ro": enc42,
+ "csiso14jisc6220ro": enc42,
+ "PT": enc43,
+ "pt": enc43,
+ "iso-ir-16": enc43,
+ "ISO646-PT": enc43,
+ "iso646-pt": enc43,
+ "csISO16Portuguese": enc43,
+ "csiso16portuguese": enc43,
+ "greek7-old": enc44,
+ "iso-ir-18": enc44,
+ "csISO18Greek7Old": enc44,
+ "csiso18greek7old": enc44,
+ "latin-greek": enc45,
+ "iso-ir-19": enc45,
+ "csISO19LatinGreek": enc45,
+ "csiso19latingreek": enc45,
+ "NF_Z_62-010_(1973)": enc46,
+ "nf_z_62-010_(1973)": enc46,
+ "iso-ir-25": enc46,
+ "ISO646-FR1": enc46,
+ "iso646-fr1": enc46,
+ "csISO25French": enc46,
+ "csiso25french": enc46,
+ "Latin-greek-1": enc47,
+ "latin-greek-1": enc47,
+ "iso-ir-27": enc47,
+ "csISO27LatinGreek1": enc47,
+ "csiso27latingreek1": enc47,
+ "ISO_5427": enc48,
+ "iso_5427": enc48,
+ "iso-ir-37": enc48,
+ "csISO5427Cyrillic": enc48,
+ "csiso5427cyrillic": enc48,
+ "JIS_C6226-1978": enc49,
+ "jis_c6226-1978": enc49,
+ "iso-ir-42": enc49,
+ "csISO42JISC62261978": enc49,
+ "csiso42jisc62261978": enc49,
+ "BS_viewdata": enc50,
+ "bs_viewdata": enc50,
+ "iso-ir-47": enc50,
+ "csISO47BSViewdata": enc50,
+ "csiso47bsviewdata": enc50,
+ "INIS": enc51,
+ "inis": enc51,
+ "iso-ir-49": enc51,
+ "csISO49INIS": enc51,
+ "csiso49inis": enc51,
+ "INIS-8": enc52,
+ "inis-8": enc52,
+ "iso-ir-50": enc52,
+ "csISO50INIS8": enc52,
+ "csiso50inis8": enc52,
+ "INIS-cyrillic": enc53,
+ "inis-cyrillic": enc53,
+ "iso-ir-51": enc53,
+ "csISO51INISCyrillic": enc53,
+ "csiso51iniscyrillic": enc53,
+ "ISO_5427:1981": enc54,
+ "iso_5427:1981": enc54,
+ "iso-ir-54": enc54,
+ "ISO5427Cyrillic1981": enc54,
+ "iso5427cyrillic1981": enc54,
+ "csISO54271981": enc54,
+ "csiso54271981": enc54,
+ "ISO_5428:1980": enc55,
+ "iso_5428:1980": enc55,
+ "iso-ir-55": enc55,
+ "csISO5428Greek": enc55,
+ "csiso5428greek": enc55,
+ "GB_1988-80": enc56,
+ "gb_1988-80": enc56,
+ "iso-ir-57": enc56,
+ "cn": enc56,
+ "ISO646-CN": enc56,
+ "iso646-cn": enc56,
+ "csISO57GB1988": enc56,
+ "csiso57gb1988": enc56,
+ "GB_2312-80": enc57,
+ "gb_2312-80": enc57,
+ "iso-ir-58": enc57,
+ "chinese": enc57,
+ "csISO58GB231280": enc57,
+ "csiso58gb231280": enc57,
+ "NS_4551-2": enc58,
+ "ns_4551-2": enc58,
+ "ISO646-NO2": enc58,
+ "iso646-no2": enc58,
+ "iso-ir-61": enc58,
+ "no2": enc58,
+ "csISO61Norwegian2": enc58,
+ "csiso61norwegian2": enc58,
+ "videotex-suppl": enc59,
+ "iso-ir-70": enc59,
+ "csISO70VideotexSupp1": enc59,
+ "csiso70videotexsupp1": enc59,
+ "PT2": enc60,
+ "pt2": enc60,
+ "iso-ir-84": enc60,
+ "ISO646-PT2": enc60,
+ "iso646-pt2": enc60,
+ "csISO84Portuguese2": enc60,
+ "csiso84portuguese2": enc60,
+ "ES2": enc61,
+ "es2": enc61,
+ "iso-ir-85": enc61,
+ "ISO646-ES2": enc61,
+ "iso646-es2": enc61,
+ "csISO85Spanish2": enc61,
+ "csiso85spanish2": enc61,
+ "MSZ_7795.3": enc62,
+ "msz_7795.3": enc62,
+ "iso-ir-86": enc62,
+ "ISO646-HU": enc62,
+ "iso646-hu": enc62,
+ "hu": enc62,
+ "csISO86Hungarian": enc62,
+ "csiso86hungarian": enc62,
+ "JIS_C6226-1983": enc63,
+ "jis_c6226-1983": enc63,
+ "iso-ir-87": enc63,
+ "x0208": enc63,
+ "JIS_X0208-1983": enc63,
+ "jis_x0208-1983": enc63,
+ "csISO87JISX0208": enc63,
+ "csiso87jisx0208": enc63,
+ "greek7": enc64,
+ "iso-ir-88": enc64,
+ "csISO88Greek7": enc64,
+ "csiso88greek7": enc64,
+ "ASMO_449": enc65,
+ "asmo_449": enc65,
+ "ISO_9036": enc65,
+ "iso_9036": enc65,
+ "arabic7": enc65,
+ "iso-ir-89": enc65,
+ "csISO89ASMO449": enc65,
+ "csiso89asmo449": enc65,
+ "iso-ir-90": enc66,
+ "csISO90": enc66,
+ "csiso90": enc66,
+ "JIS_C6229-1984-a": enc67,
+ "jis_c6229-1984-a": enc67,
+ "iso-ir-91": enc67,
+ "jp-ocr-a": enc67,
+ "csISO91JISC62291984a": enc67,
+ "csiso91jisc62291984a": enc67,
+ "JIS_C6229-1984-b": enc68,
+ "jis_c6229-1984-b": enc68,
+ "iso-ir-92": enc68,
+ "ISO646-JP-OCR-B": enc68,
+ "iso646-jp-ocr-b": enc68,
+ "jp-ocr-b": enc68,
+ "csISO92JISC62991984b": enc68,
+ "csiso92jisc62991984b": enc68,
+ "JIS_C6229-1984-b-add": enc69,
+ "jis_c6229-1984-b-add": enc69,
+ "iso-ir-93": enc69,
+ "jp-ocr-b-add": enc69,
+ "csISO93JIS62291984badd": enc69,
+ "csiso93jis62291984badd": enc69,
+ "JIS_C6229-1984-hand": enc70,
+ "jis_c6229-1984-hand": enc70,
+ "iso-ir-94": enc70,
+ "jp-ocr-hand": enc70,
+ "csISO94JIS62291984hand": enc70,
+ "csiso94jis62291984hand": enc70,
+ "JIS_C6229-1984-hand-add": enc71,
+ "jis_c6229-1984-hand-add": enc71,
+ "iso-ir-95": enc71,
+ "jp-ocr-hand-add": enc71,
+ "csISO95JIS62291984handadd": enc71,
+ "csiso95jis62291984handadd": enc71,
+ "JIS_C6229-1984-kana": enc72,
+ "jis_c6229-1984-kana": enc72,
+ "iso-ir-96": enc72,
+ "csISO96JISC62291984kana": enc72,
+ "csiso96jisc62291984kana": enc72,
+ "ISO_2033-1983": enc73,
+ "iso_2033-1983": enc73,
+ "iso-ir-98": enc73,
+ "e13b": enc73,
+ "csISO2033": enc73,
+ "csiso2033": enc73,
+ "ANSI_X3.110-1983": enc74,
+ "ansi_x3.110-1983": enc74,
+ "iso-ir-99": enc74,
+ "CSA_T500-1983": enc74,
+ "csa_t500-1983": enc74,
+ "NAPLPS": enc74,
+ "naplps": enc74,
+ "csISO99NAPLPS": enc74,
+ "csiso99naplps": enc74,
+ "T.61-7bit": enc75,
+ "t.61-7bit": enc75,
+ "iso-ir-102": enc75,
+ "csISO102T617bit": enc75,
+ "csiso102t617bit": enc75,
+ "T.61-8bit": enc76,
+ "t.61-8bit": enc76,
+ "T.61": enc76,
+ "t.61": enc76,
+ "iso-ir-103": enc76,
+ "csISO103T618bit": enc76,
+ "csiso103t618bit": enc76,
+ "ECMA-cyrillic": enc77,
+ "ecma-cyrillic": enc77,
+ "iso-ir-111": enc77,
+ "KOI8-E": enc77,
+ "koi8-e": enc77,
+ "csISO111ECMACyrillic": enc77,
+ "csiso111ecmacyrillic": enc77,
+ "CSA_Z243.4-1985-1": enc78,
+ "csa_z243.4-1985-1": enc78,
+ "iso-ir-121": enc78,
+ "ISO646-CA": enc78,
+ "iso646-ca": enc78,
+ "csa7-1": enc78,
+ "csa71": enc78,
+ "ca": enc78,
+ "csISO121Canadian1": enc78,
+ "csiso121canadian1": enc78,
+ "CSA_Z243.4-1985-2": enc79,
+ "csa_z243.4-1985-2": enc79,
+ "iso-ir-122": enc79,
+ "ISO646-CA2": enc79,
+ "iso646-ca2": enc79,
+ "csa7-2": enc79,
+ "csa72": enc79,
+ "csISO122Canadian2": enc79,
+ "csiso122canadian2": enc79,
+ "CSA_Z243.4-1985-gr": enc80,
+ "csa_z243.4-1985-gr": enc80,
+ "iso-ir-123": enc80,
+ "csISO123CSAZ24341985gr": enc80,
+ "csiso123csaz24341985gr": enc80,
+ "ISO_8859-6-E": enc81,
+ "iso_8859-6-e": enc81,
+ "csISO88596E": enc81,
+ "csiso88596e": enc81,
+ "ISO-8859-6-E": enc81,
+ "iso-8859-6-e": enc81,
+ "ISO_8859-6-I": enc82,
+ "iso_8859-6-i": enc82,
+ "csISO88596I": enc82,
+ "csiso88596i": enc82,
+ "ISO-8859-6-I": enc82,
+ "iso-8859-6-i": enc82,
+ "T.101-G2": enc83,
+ "t.101-g2": enc83,
+ "iso-ir-128": enc83,
+ "csISO128T101G2": enc83,
+ "csiso128t101g2": enc83,
+ "ISO_8859-8-E": enc84,
+ "iso_8859-8-e": enc84,
+ "csISO88598E": enc84,
+ "csiso88598e": enc84,
+ "ISO-8859-8-E": enc84,
+ "iso-8859-8-e": enc84,
+ "ISO_8859-8-I": enc85,
+ "iso_8859-8-i": enc85,
+ "csISO88598I": enc85,
+ "csiso88598i": enc85,
+ "ISO-8859-8-I": enc85,
+ "iso-8859-8-i": enc85,
+ "CSN_369103": enc86,
+ "csn_369103": enc86,
+ "iso-ir-139": enc86,
+ "csISO139CSN369103": enc86,
+ "csiso139csn369103": enc86,
+ "JUS_I.B1.002": enc87,
+ "jus_i.b1.002": enc87,
+ "iso-ir-141": enc87,
+ "ISO646-YU": enc87,
+ "iso646-yu": enc87,
+ "js": enc87,
+ "yu": enc87,
+ "csISO141JUSIB1002": enc87,
+ "csiso141jusib1002": enc87,
+ "IEC_P27-1": enc88,
+ "iec_p27-1": enc88,
+ "iso-ir-143": enc88,
+ "csISO143IECP271": enc88,
+ "csiso143iecp271": enc88,
+ "JUS_I.B1.003-serb": enc89,
+ "jus_i.b1.003-serb": enc89,
+ "iso-ir-146": enc89,
+ "serbian": enc89,
+ "csISO146Serbian": enc89,
+ "csiso146serbian": enc89,
+ "JUS_I.B1.003-mac": enc90,
+ "jus_i.b1.003-mac": enc90,
+ "macedonian": enc90,
+ "iso-ir-147": enc90,
+ "csISO147Macedonian": enc90,
+ "csiso147macedonian": enc90,
+ "greek-ccitt": enc91,
+ "iso-ir-150": enc91,
+ "csISO150": enc91,
+ "csiso150": enc91,
+ "csISO150GreekCCITT": enc91,
+ "csiso150greekccitt": enc91,
+ "NC_NC00-10:81": enc92,
+ "nc_nc00-10:81": enc92,
+ "cuba": enc92,
+ "iso-ir-151": enc92,
+ "ISO646-CU": enc92,
+ "iso646-cu": enc92,
+ "csISO151Cuba": enc92,
+ "csiso151cuba": enc92,
+ "ISO_6937-2-25": enc93,
+ "iso_6937-2-25": enc93,
+ "iso-ir-152": enc93,
+ "csISO6937Add": enc93,
+ "csiso6937add": enc93,
+ "GOST_19768-74": enc94,
+ "gost_19768-74": enc94,
+ "ST_SEV_358-88": enc94,
+ "st_sev_358-88": enc94,
+ "iso-ir-153": enc94,
+ "csISO153GOST1976874": enc94,
+ "csiso153gost1976874": enc94,
+ "ISO_8859-supp": enc95,
+ "iso_8859-supp": enc95,
+ "iso-ir-154": enc95,
+ "latin1-2-5": enc95,
+ "csISO8859Supp": enc95,
+ "csiso8859supp": enc95,
+ "ISO_10367-box": enc96,
+ "iso_10367-box": enc96,
+ "iso-ir-155": enc96,
+ "csISO10367Box": enc96,
+ "csiso10367box": enc96,
+ "latin-lap": enc97,
+ "lap": enc97,
+ "iso-ir-158": enc97,
+ "csISO158Lap": enc97,
+ "csiso158lap": enc97,
+ "JIS_X0212-1990": enc98,
+ "jis_x0212-1990": enc98,
+ "x0212": enc98,
+ "iso-ir-159": enc98,
+ "csISO159JISX02121990": enc98,
+ "csiso159jisx02121990": enc98,
+ "DS_2089": enc99,
+ "ds_2089": enc99,
+ "DS2089": enc99,
+ "ds2089": enc99,
+ "ISO646-DK": enc99,
+ "iso646-dk": enc99,
+ "dk": enc99,
+ "csISO646Danish": enc99,
+ "csiso646danish": enc99,
+ "us-dk": enc100,
+ "csUSDK": enc100,
+ "csusdk": enc100,
+ "dk-us": enc101,
+ "csDKUS": enc101,
+ "csdkus": enc101,
+ "KSC5636": enc102,
+ "ksc5636": enc102,
+ "ISO646-KR": enc102,
+ "iso646-kr": enc102,
+ "csKSC5636": enc102,
+ "csksc5636": enc102,
+ "UNICODE-1-1-UTF-7": enc103,
+ "unicode-1-1-utf-7": enc103,
+ "csUnicode11UTF7": enc103,
+ "csunicode11utf7": enc103,
+ "ISO-2022-CN": enc104,
+ "iso-2022-cn": enc104,
+ "csISO2022CN": enc104,
+ "csiso2022cn": enc104,
+ "ISO-2022-CN-EXT": enc105,
+ "iso-2022-cn-ext": enc105,
+ "csISO2022CNEXT": enc105,
+ "csiso2022cnext": enc105,
+ "UTF-8": enc106,
+ "utf-8": enc106,
+ "csUTF8": enc106,
+ "csutf8": enc106,
+ "ISO-8859-13": enc109,
+ "iso-8859-13": enc109,
+ "csISO885913": enc109,
+ "csiso885913": enc109,
+ "ISO-8859-14": enc110,
+ "iso-8859-14": enc110,
+ "iso-ir-199": enc110,
+ "ISO_8859-14:1998": enc110,
+ "iso_8859-14:1998": enc110,
+ "ISO_8859-14": enc110,
+ "iso_8859-14": enc110,
+ "latin8": enc110,
+ "iso-celtic": enc110,
+ "l8": enc110,
+ "csISO885914": enc110,
+ "csiso885914": enc110,
+ "ISO-8859-15": enc111,
+ "iso-8859-15": enc111,
+ "ISO_8859-15": enc111,
+ "iso_8859-15": enc111,
+ "Latin-9": enc111,
+ "latin-9": enc111,
+ "csISO885915": enc111,
+ "csiso885915": enc111,
+ "ISO-8859-16": enc112,
+ "iso-8859-16": enc112,
+ "iso-ir-226": enc112,
+ "ISO_8859-16:2001": enc112,
+ "iso_8859-16:2001": enc112,
+ "ISO_8859-16": enc112,
+ "iso_8859-16": enc112,
+ "latin10": enc112,
+ "l10": enc112,
+ "csISO885916": enc112,
+ "csiso885916": enc112,
+ "GBK": enc113,
+ "gbk": enc113,
+ "CP936": enc113,
+ "cp936": enc113,
+ "MS936": enc113,
+ "ms936": enc113,
+ "windows-936": enc113,
+ "csGBK": enc113,
+ "csgbk": enc113,
+ "GB18030": enc114,
+ "gb18030": enc114,
+ "csGB18030": enc114,
+ "csgb18030": enc114,
+ "OSD_EBCDIC_DF04_15": enc115,
+ "osd_ebcdic_df04_15": enc115,
+ "csOSDEBCDICDF0415": enc115,
+ "csosdebcdicdf0415": enc115,
+ "OSD_EBCDIC_DF03_IRV": enc116,
+ "osd_ebcdic_df03_irv": enc116,
+ "csOSDEBCDICDF03IRV": enc116,
+ "csosdebcdicdf03irv": enc116,
+ "OSD_EBCDIC_DF04_1": enc117,
+ "osd_ebcdic_df04_1": enc117,
+ "csOSDEBCDICDF041": enc117,
+ "csosdebcdicdf041": enc117,
+ "ISO-11548-1": enc118,
+ "iso-11548-1": enc118,
+ "ISO_11548-1": enc118,
+ "iso_11548-1": enc118,
+ "ISO_TR_11548-1": enc118,
+ "iso_tr_11548-1": enc118,
+ "csISO115481": enc118,
+ "csiso115481": enc118,
+ "KZ-1048": enc119,
+ "kz-1048": enc119,
+ "STRK1048-2002": enc119,
+ "strk1048-2002": enc119,
+ "RK1048": enc119,
+ "rk1048": enc119,
+ "csKZ1048": enc119,
+ "cskz1048": enc119,
+ "ISO-10646-UCS-2": enc1000,
+ "iso-10646-ucs-2": enc1000,
+ "csUnicode": enc1000,
+ "csunicode": enc1000,
+ "ISO-10646-UCS-4": enc1001,
+ "iso-10646-ucs-4": enc1001,
+ "csUCS4": enc1001,
+ "csucs4": enc1001,
+ "ISO-10646-UCS-Basic": enc1002,
+ "iso-10646-ucs-basic": enc1002,
+ "csUnicodeASCII": enc1002,
+ "csunicodeascii": enc1002,
+ "ISO-10646-Unicode-Latin1": enc1003,
+ "iso-10646-unicode-latin1": enc1003,
+ "csUnicodeLatin1": enc1003,
+ "csunicodelatin1": enc1003,
+ "ISO-10646": enc1003,
+ "iso-10646": enc1003,
+ "ISO-10646-J-1": enc1004,
+ "iso-10646-j-1": enc1004,
+ "csUnicodeJapanese": enc1004,
+ "csunicodejapanese": enc1004,
+ "ISO-Unicode-IBM-1261": enc1005,
+ "iso-unicode-ibm-1261": enc1005,
+ "csUnicodeIBM1261": enc1005,
+ "csunicodeibm1261": enc1005,
+ "ISO-Unicode-IBM-1268": enc1006,
+ "iso-unicode-ibm-1268": enc1006,
+ "csUnicodeIBM1268": enc1006,
+ "csunicodeibm1268": enc1006,
+ "ISO-Unicode-IBM-1276": enc1007,
+ "iso-unicode-ibm-1276": enc1007,
+ "csUnicodeIBM1276": enc1007,
+ "csunicodeibm1276": enc1007,
+ "ISO-Unicode-IBM-1264": enc1008,
+ "iso-unicode-ibm-1264": enc1008,
+ "csUnicodeIBM1264": enc1008,
+ "csunicodeibm1264": enc1008,
+ "ISO-Unicode-IBM-1265": enc1009,
+ "iso-unicode-ibm-1265": enc1009,
+ "csUnicodeIBM1265": enc1009,
+ "csunicodeibm1265": enc1009,
+ "UNICODE-1-1": enc1010,
+ "unicode-1-1": enc1010,
+ "csUnicode11": enc1010,
+ "csunicode11": enc1010,
+ "SCSU": enc1011,
+ "scsu": enc1011,
+ "csSCSU": enc1011,
+ "csscsu": enc1011,
+ "UTF-7": enc1012,
+ "utf-7": enc1012,
+ "csUTF7": enc1012,
+ "csutf7": enc1012,
+ "UTF-16BE": enc1013,
+ "utf-16be": enc1013,
+ "csUTF16BE": enc1013,
+ "csutf16be": enc1013,
+ "UTF-16LE": enc1014,
+ "utf-16le": enc1014,
+ "csUTF16LE": enc1014,
+ "csutf16le": enc1014,
+ "UTF-16": enc1015,
+ "utf-16": enc1015,
+ "csUTF16": enc1015,
+ "csutf16": enc1015,
+ "CESU-8": enc1016,
+ "cesu-8": enc1016,
+ "csCESU8": enc1016,
+ "cscesu8": enc1016,
+ "csCESU-8": enc1016,
+ "cscesu-8": enc1016,
+ "UTF-32": enc1017,
+ "utf-32": enc1017,
+ "csUTF32": enc1017,
+ "csutf32": enc1017,
+ "UTF-32BE": enc1018,
+ "utf-32be": enc1018,
+ "csUTF32BE": enc1018,
+ "csutf32be": enc1018,
+ "UTF-32LE": enc1019,
+ "utf-32le": enc1019,
+ "csUTF32LE": enc1019,
+ "csutf32le": enc1019,
+ "BOCU-1": enc1020,
+ "bocu-1": enc1020,
+ "csBOCU1": enc1020,
+ "csbocu1": enc1020,
+ "csBOCU-1": enc1020,
+ "csbocu-1": enc1020,
+ "ISO-8859-1-Windows-3.0-Latin-1": enc2000,
+ "iso-8859-1-windows-3.0-latin-1": enc2000,
+ "csWindows30Latin1": enc2000,
+ "cswindows30latin1": enc2000,
+ "ISO-8859-1-Windows-3.1-Latin-1": enc2001,
+ "iso-8859-1-windows-3.1-latin-1": enc2001,
+ "csWindows31Latin1": enc2001,
+ "cswindows31latin1": enc2001,
+ "ISO-8859-2-Windows-Latin-2": enc2002,
+ "iso-8859-2-windows-latin-2": enc2002,
+ "csWindows31Latin2": enc2002,
+ "cswindows31latin2": enc2002,
+ "ISO-8859-9-Windows-Latin-5": enc2003,
+ "iso-8859-9-windows-latin-5": enc2003,
+ "csWindows31Latin5": enc2003,
+ "cswindows31latin5": enc2003,
+ "hp-roman8": enc2004,
+ "roman8": enc2004,
+ "r8": enc2004,
+ "csHPRoman8": enc2004,
+ "cshproman8": enc2004,
+ "Adobe-Standard-Encoding": enc2005,
+ "adobe-standard-encoding": enc2005,
+ "csAdobeStandardEncoding": enc2005,
+ "csadobestandardencoding": enc2005,
+ "Ventura-US": enc2006,
+ "ventura-us": enc2006,
+ "csVenturaUS": enc2006,
+ "csventuraus": enc2006,
+ "Ventura-International": enc2007,
+ "ventura-international": enc2007,
+ "csVenturaInternational": enc2007,
+ "csventurainternational": enc2007,
+ "DEC-MCS": enc2008,
+ "dec-mcs": enc2008,
+ "dec": enc2008,
+ "csDECMCS": enc2008,
+ "csdecmcs": enc2008,
+ "IBM850": enc2009,
+ "ibm850": enc2009,
+ "cp850": enc2009,
+ "850": enc2009,
+ "csPC850Multilingual": enc2009,
+ "cspc850multilingual": enc2009,
+ "PC8-Danish-Norwegian": enc2012,
+ "pc8-danish-norwegian": enc2012,
+ "csPC8DanishNorwegian": enc2012,
+ "cspc8danishnorwegian": enc2012,
+ "IBM862": enc2013,
+ "ibm862": enc2013,
+ "cp862": enc2013,
+ "862": enc2013,
+ "csPC862LatinHebrew": enc2013,
+ "cspc862latinhebrew": enc2013,
+ "PC8-Turkish": enc2014,
+ "pc8-turkish": enc2014,
+ "csPC8Turkish": enc2014,
+ "cspc8turkish": enc2014,
+ "IBM-Symbols": enc2015,
+ "ibm-symbols": enc2015,
+ "csIBMSymbols": enc2015,
+ "csibmsymbols": enc2015,
+ "IBM-Thai": enc2016,
+ "ibm-thai": enc2016,
+ "csIBMThai": enc2016,
+ "csibmthai": enc2016,
+ "HP-Legal": enc2017,
+ "hp-legal": enc2017,
+ "csHPLegal": enc2017,
+ "cshplegal": enc2017,
+ "HP-Pi-font": enc2018,
+ "hp-pi-font": enc2018,
+ "csHPPiFont": enc2018,
+ "cshppifont": enc2018,
+ "HP-Math8": enc2019,
+ "hp-math8": enc2019,
+ "csHPMath8": enc2019,
+ "cshpmath8": enc2019,
+ "Adobe-Symbol-Encoding": enc2020,
+ "adobe-symbol-encoding": enc2020,
+ "csHPPSMath": enc2020,
+ "cshppsmath": enc2020,
+ "HP-DeskTop": enc2021,
+ "hp-desktop": enc2021,
+ "csHPDesktop": enc2021,
+ "cshpdesktop": enc2021,
+ "Ventura-Math": enc2022,
+ "ventura-math": enc2022,
+ "csVenturaMath": enc2022,
+ "csventuramath": enc2022,
+ "Microsoft-Publishing": enc2023,
+ "microsoft-publishing": enc2023,
+ "csMicrosoftPublishing": enc2023,
+ "csmicrosoftpublishing": enc2023,
+ "Windows-31J": enc2024,
+ "windows-31j": enc2024,
+ "csWindows31J": enc2024,
+ "cswindows31j": enc2024,
+ "GB2312": enc2025,
+ "gb2312": enc2025,
+ "csGB2312": enc2025,
+ "csgb2312": enc2025,
+ "Big5": enc2026,
+ "big5": enc2026,
+ "csBig5": enc2026,
+ "csbig5": enc2026,
+ "macintosh": enc2027,
+ "mac": enc2027,
+ "csMacintosh": enc2027,
+ "csmacintosh": enc2027,
+ "IBM037": enc2028,
+ "ibm037": enc2028,
+ "cp037": enc2028,
+ "ebcdic-cp-us": enc2028,
+ "ebcdic-cp-ca": enc2028,
+ "ebcdic-cp-wt": enc2028,
+ "ebcdic-cp-nl": enc2028,
+ "csIBM037": enc2028,
+ "csibm037": enc2028,
+ "IBM038": enc2029,
+ "ibm038": enc2029,
+ "EBCDIC-INT": enc2029,
+ "ebcdic-int": enc2029,
+ "cp038": enc2029,
+ "csIBM038": enc2029,
+ "csibm038": enc2029,
+ "IBM273": enc2030,
+ "ibm273": enc2030,
+ "CP273": enc2030,
+ "cp273": enc2030,
+ "csIBM273": enc2030,
+ "csibm273": enc2030,
+ "IBM274": enc2031,
+ "ibm274": enc2031,
+ "EBCDIC-BE": enc2031,
+ "ebcdic-be": enc2031,
+ "CP274": enc2031,
+ "cp274": enc2031,
+ "csIBM274": enc2031,
+ "csibm274": enc2031,
+ "IBM275": enc2032,
+ "ibm275": enc2032,
+ "EBCDIC-BR": enc2032,
+ "ebcdic-br": enc2032,
+ "cp275": enc2032,
+ "csIBM275": enc2032,
+ "csibm275": enc2032,
+ "IBM277": enc2033,
+ "ibm277": enc2033,
+ "EBCDIC-CP-DK": enc2033,
+ "ebcdic-cp-dk": enc2033,
+ "EBCDIC-CP-NO": enc2033,
+ "ebcdic-cp-no": enc2033,
+ "csIBM277": enc2033,
+ "csibm277": enc2033,
+ "IBM278": enc2034,
+ "ibm278": enc2034,
+ "CP278": enc2034,
+ "cp278": enc2034,
+ "ebcdic-cp-fi": enc2034,
+ "ebcdic-cp-se": enc2034,
+ "csIBM278": enc2034,
+ "csibm278": enc2034,
+ "IBM280": enc2035,
+ "ibm280": enc2035,
+ "CP280": enc2035,
+ "cp280": enc2035,
+ "ebcdic-cp-it": enc2035,
+ "csIBM280": enc2035,
+ "csibm280": enc2035,
+ "IBM281": enc2036,
+ "ibm281": enc2036,
+ "EBCDIC-JP-E": enc2036,
+ "ebcdic-jp-e": enc2036,
+ "cp281": enc2036,
+ "csIBM281": enc2036,
+ "csibm281": enc2036,
+ "IBM284": enc2037,
+ "ibm284": enc2037,
+ "CP284": enc2037,
+ "cp284": enc2037,
+ "ebcdic-cp-es": enc2037,
+ "csIBM284": enc2037,
+ "csibm284": enc2037,
+ "IBM285": enc2038,
+ "ibm285": enc2038,
+ "CP285": enc2038,
+ "cp285": enc2038,
+ "ebcdic-cp-gb": enc2038,
+ "csIBM285": enc2038,
+ "csibm285": enc2038,
+ "IBM290": enc2039,
+ "ibm290": enc2039,
+ "cp290": enc2039,
+ "EBCDIC-JP-kana": enc2039,
+ "ebcdic-jp-kana": enc2039,
+ "csIBM290": enc2039,
+ "csibm290": enc2039,
+ "IBM297": enc2040,
+ "ibm297": enc2040,
+ "cp297": enc2040,
+ "ebcdic-cp-fr": enc2040,
+ "csIBM297": enc2040,
+ "csibm297": enc2040,
+ "IBM420": enc2041,
+ "ibm420": enc2041,
+ "cp420": enc2041,
+ "ebcdic-cp-ar1": enc2041,
+ "csIBM420": enc2041,
+ "csibm420": enc2041,
+ "IBM423": enc2042,
+ "ibm423": enc2042,
+ "cp423": enc2042,
+ "ebcdic-cp-gr": enc2042,
+ "csIBM423": enc2042,
+ "csibm423": enc2042,
+ "IBM424": enc2043,
+ "ibm424": enc2043,
+ "cp424": enc2043,
+ "ebcdic-cp-he": enc2043,
+ "csIBM424": enc2043,
+ "csibm424": enc2043,
+ "IBM437": enc2011,
+ "ibm437": enc2011,
+ "cp437": enc2011,
+ "437": enc2011,
+ "csPC8CodePage437": enc2011,
+ "cspc8codepage437": enc2011,
+ "IBM500": enc2044,
+ "ibm500": enc2044,
+ "CP500": enc2044,
+ "cp500": enc2044,
+ "ebcdic-cp-be": enc2044,
+ "ebcdic-cp-ch": enc2044,
+ "csIBM500": enc2044,
+ "csibm500": enc2044,
+ "IBM851": enc2045,
+ "ibm851": enc2045,
+ "cp851": enc2045,
+ "851": enc2045,
+ "csIBM851": enc2045,
+ "csibm851": enc2045,
+ "IBM852": enc2010,
+ "ibm852": enc2010,
+ "cp852": enc2010,
+ "852": enc2010,
+ "csPCp852": enc2010,
+ "cspcp852": enc2010,
+ "IBM855": enc2046,
+ "ibm855": enc2046,
+ "cp855": enc2046,
+ "855": enc2046,
+ "csIBM855": enc2046,
+ "csibm855": enc2046,
+ "IBM857": enc2047,
+ "ibm857": enc2047,
+ "cp857": enc2047,
+ "857": enc2047,
+ "csIBM857": enc2047,
+ "csibm857": enc2047,
+ "IBM860": enc2048,
+ "ibm860": enc2048,
+ "cp860": enc2048,
+ "860": enc2048,
+ "csIBM860": enc2048,
+ "csibm860": enc2048,
+ "IBM861": enc2049,
+ "ibm861": enc2049,
+ "cp861": enc2049,
+ "861": enc2049,
+ "cp-is": enc2049,
+ "csIBM861": enc2049,
+ "csibm861": enc2049,
+ "IBM863": enc2050,
+ "ibm863": enc2050,
+ "cp863": enc2050,
+ "863": enc2050,
+ "csIBM863": enc2050,
+ "csibm863": enc2050,
+ "IBM864": enc2051,
+ "ibm864": enc2051,
+ "cp864": enc2051,
+ "csIBM864": enc2051,
+ "csibm864": enc2051,
+ "IBM865": enc2052,
+ "ibm865": enc2052,
+ "cp865": enc2052,
+ "865": enc2052,
+ "csIBM865": enc2052,
+ "csibm865": enc2052,
+ "IBM868": enc2053,
+ "ibm868": enc2053,
+ "CP868": enc2053,
+ "cp868": enc2053,
+ "cp-ar": enc2053,
+ "csIBM868": enc2053,
+ "csibm868": enc2053,
+ "IBM869": enc2054,
+ "ibm869": enc2054,
+ "cp869": enc2054,
+ "869": enc2054,
+ "cp-gr": enc2054,
+ "csIBM869": enc2054,
+ "csibm869": enc2054,
+ "IBM870": enc2055,
+ "ibm870": enc2055,
+ "CP870": enc2055,
+ "cp870": enc2055,
+ "ebcdic-cp-roece": enc2055,
+ "ebcdic-cp-yu": enc2055,
+ "csIBM870": enc2055,
+ "csibm870": enc2055,
+ "IBM871": enc2056,
+ "ibm871": enc2056,
+ "CP871": enc2056,
+ "cp871": enc2056,
+ "ebcdic-cp-is": enc2056,
+ "csIBM871": enc2056,
+ "csibm871": enc2056,
+ "IBM880": enc2057,
+ "ibm880": enc2057,
+ "cp880": enc2057,
+ "EBCDIC-Cyrillic": enc2057,
+ "ebcdic-cyrillic": enc2057,
+ "csIBM880": enc2057,
+ "csibm880": enc2057,
+ "IBM891": enc2058,
+ "ibm891": enc2058,
+ "cp891": enc2058,
+ "csIBM891": enc2058,
+ "csibm891": enc2058,
+ "IBM903": enc2059,
+ "ibm903": enc2059,
+ "cp903": enc2059,
+ "csIBM903": enc2059,
+ "csibm903": enc2059,
+ "IBM904": enc2060,
+ "ibm904": enc2060,
+ "cp904": enc2060,
+ "904": enc2060,
+ "csIBBM904": enc2060,
+ "csibbm904": enc2060,
+ "IBM905": enc2061,
+ "ibm905": enc2061,
+ "CP905": enc2061,
+ "cp905": enc2061,
+ "ebcdic-cp-tr": enc2061,
+ "csIBM905": enc2061,
+ "csibm905": enc2061,
+ "IBM918": enc2062,
+ "ibm918": enc2062,
+ "CP918": enc2062,
+ "cp918": enc2062,
+ "ebcdic-cp-ar2": enc2062,
+ "csIBM918": enc2062,
+ "csibm918": enc2062,
+ "IBM1026": enc2063,
+ "ibm1026": enc2063,
+ "CP1026": enc2063,
+ "cp1026": enc2063,
+ "csIBM1026": enc2063,
+ "csibm1026": enc2063,
+ "EBCDIC-AT-DE": enc2064,
+ "ebcdic-at-de": enc2064,
+ "csIBMEBCDICATDE": enc2064,
+ "csibmebcdicatde": enc2064,
+ "EBCDIC-AT-DE-A": enc2065,
+ "ebcdic-at-de-a": enc2065,
+ "csEBCDICATDEA": enc2065,
+ "csebcdicatdea": enc2065,
+ "EBCDIC-CA-FR": enc2066,
+ "ebcdic-ca-fr": enc2066,
+ "csEBCDICCAFR": enc2066,
+ "csebcdiccafr": enc2066,
+ "EBCDIC-DK-NO": enc2067,
+ "ebcdic-dk-no": enc2067,
+ "csEBCDICDKNO": enc2067,
+ "csebcdicdkno": enc2067,
+ "EBCDIC-DK-NO-A": enc2068,
+ "ebcdic-dk-no-a": enc2068,
+ "csEBCDICDKNOA": enc2068,
+ "csebcdicdknoa": enc2068,
+ "EBCDIC-FI-SE": enc2069,
+ "ebcdic-fi-se": enc2069,
+ "csEBCDICFISE": enc2069,
+ "csebcdicfise": enc2069,
+ "EBCDIC-FI-SE-A": enc2070,
+ "ebcdic-fi-se-a": enc2070,
+ "csEBCDICFISEA": enc2070,
+ "csebcdicfisea": enc2070,
+ "EBCDIC-FR": enc2071,
+ "ebcdic-fr": enc2071,
+ "csEBCDICFR": enc2071,
+ "csebcdicfr": enc2071,
+ "EBCDIC-IT": enc2072,
+ "ebcdic-it": enc2072,
+ "csEBCDICIT": enc2072,
+ "csebcdicit": enc2072,
+ "EBCDIC-PT": enc2073,
+ "ebcdic-pt": enc2073,
+ "csEBCDICPT": enc2073,
+ "csebcdicpt": enc2073,
+ "EBCDIC-ES": enc2074,
+ "ebcdic-es": enc2074,
+ "csEBCDICES": enc2074,
+ "csebcdices": enc2074,
+ "EBCDIC-ES-A": enc2075,
+ "ebcdic-es-a": enc2075,
+ "csEBCDICESA": enc2075,
+ "csebcdicesa": enc2075,
+ "EBCDIC-ES-S": enc2076,
+ "ebcdic-es-s": enc2076,
+ "csEBCDICESS": enc2076,
+ "csebcdicess": enc2076,
+ "EBCDIC-UK": enc2077,
+ "ebcdic-uk": enc2077,
+ "csEBCDICUK": enc2077,
+ "csebcdicuk": enc2077,
+ "EBCDIC-US": enc2078,
+ "ebcdic-us": enc2078,
+ "csEBCDICUS": enc2078,
+ "csebcdicus": enc2078,
+ "UNKNOWN-8BIT": enc2079,
+ "unknown-8bit": enc2079,
+ "csUnknown8BiT": enc2079,
+ "csunknown8bit": enc2079,
+ "MNEMONIC": enc2080,
+ "mnemonic": enc2080,
+ "csMnemonic": enc2080,
+ "csmnemonic": enc2080,
+ "MNEM": enc2081,
+ "mnem": enc2081,
+ "csMnem": enc2081,
+ "csmnem": enc2081,
+ "VISCII": enc2082,
+ "viscii": enc2082,
+ "csVISCII": enc2082,
+ "csviscii": enc2082,
+ "VIQR": enc2083,
+ "viqr": enc2083,
+ "csVIQR": enc2083,
+ "csviqr": enc2083,
+ "KOI8-R": enc2084,
+ "koi8-r": enc2084,
+ "csKOI8R": enc2084,
+ "cskoi8r": enc2084,
+ "HZ-GB-2312": enc2085,
+ "hz-gb-2312": enc2085,
+ "IBM866": enc2086,
+ "ibm866": enc2086,
+ "cp866": enc2086,
+ "866": enc2086,
+ "csIBM866": enc2086,
+ "csibm866": enc2086,
+ "IBM775": enc2087,
+ "ibm775": enc2087,
+ "cp775": enc2087,
+ "csPC775Baltic": enc2087,
+ "cspc775baltic": enc2087,
+ "KOI8-U": enc2088,
+ "koi8-u": enc2088,
+ "csKOI8U": enc2088,
+ "cskoi8u": enc2088,
+ "IBM00858": enc2089,
+ "ibm00858": enc2089,
+ "CCSID00858": enc2089,
+ "ccsid00858": enc2089,
+ "CP00858": enc2089,
+ "cp00858": enc2089,
+ "PC-Multilingual-850+euro": enc2089,
+ "pc-multilingual-850+euro": enc2089,
+ "csIBM00858": enc2089,
+ "csibm00858": enc2089,
+ "IBM00924": enc2090,
+ "ibm00924": enc2090,
+ "CCSID00924": enc2090,
+ "ccsid00924": enc2090,
+ "CP00924": enc2090,
+ "cp00924": enc2090,
+ "ebcdic-Latin9--euro": enc2090,
+ "ebcdic-latin9--euro": enc2090,
+ "csIBM00924": enc2090,
+ "csibm00924": enc2090,
+ "IBM01140": enc2091,
+ "ibm01140": enc2091,
+ "CCSID01140": enc2091,
+ "ccsid01140": enc2091,
+ "CP01140": enc2091,
+ "cp01140": enc2091,
+ "ebcdic-us-37+euro": enc2091,
+ "csIBM01140": enc2091,
+ "csibm01140": enc2091,
+ "IBM01141": enc2092,
+ "ibm01141": enc2092,
+ "CCSID01141": enc2092,
+ "ccsid01141": enc2092,
+ "CP01141": enc2092,
+ "cp01141": enc2092,
+ "ebcdic-de-273+euro": enc2092,
+ "csIBM01141": enc2092,
+ "csibm01141": enc2092,
+ "IBM01142": enc2093,
+ "ibm01142": enc2093,
+ "CCSID01142": enc2093,
+ "ccsid01142": enc2093,
+ "CP01142": enc2093,
+ "cp01142": enc2093,
+ "ebcdic-dk-277+euro": enc2093,
+ "ebcdic-no-277+euro": enc2093,
+ "csIBM01142": enc2093,
+ "csibm01142": enc2093,
+ "IBM01143": enc2094,
+ "ibm01143": enc2094,
+ "CCSID01143": enc2094,
+ "ccsid01143": enc2094,
+ "CP01143": enc2094,
+ "cp01143": enc2094,
+ "ebcdic-fi-278+euro": enc2094,
+ "ebcdic-se-278+euro": enc2094,
+ "csIBM01143": enc2094,
+ "csibm01143": enc2094,
+ "IBM01144": enc2095,
+ "ibm01144": enc2095,
+ "CCSID01144": enc2095,
+ "ccsid01144": enc2095,
+ "CP01144": enc2095,
+ "cp01144": enc2095,
+ "ebcdic-it-280+euro": enc2095,
+ "csIBM01144": enc2095,
+ "csibm01144": enc2095,
+ "IBM01145": enc2096,
+ "ibm01145": enc2096,
+ "CCSID01145": enc2096,
+ "ccsid01145": enc2096,
+ "CP01145": enc2096,
+ "cp01145": enc2096,
+ "ebcdic-es-284+euro": enc2096,
+ "csIBM01145": enc2096,
+ "csibm01145": enc2096,
+ "IBM01146": enc2097,
+ "ibm01146": enc2097,
+ "CCSID01146": enc2097,
+ "ccsid01146": enc2097,
+ "CP01146": enc2097,
+ "cp01146": enc2097,
+ "ebcdic-gb-285+euro": enc2097,
+ "csIBM01146": enc2097,
+ "csibm01146": enc2097,
+ "IBM01147": enc2098,
+ "ibm01147": enc2098,
+ "CCSID01147": enc2098,
+ "ccsid01147": enc2098,
+ "CP01147": enc2098,
+ "cp01147": enc2098,
+ "ebcdic-fr-297+euro": enc2098,
+ "csIBM01147": enc2098,
+ "csibm01147": enc2098,
+ "IBM01148": enc2099,
+ "ibm01148": enc2099,
+ "CCSID01148": enc2099,
+ "ccsid01148": enc2099,
+ "CP01148": enc2099,
+ "cp01148": enc2099,
+ "ebcdic-international-500+euro": enc2099,
+ "csIBM01148": enc2099,
+ "csibm01148": enc2099,
+ "IBM01149": enc2100,
+ "ibm01149": enc2100,
+ "CCSID01149": enc2100,
+ "ccsid01149": enc2100,
+ "CP01149": enc2100,
+ "cp01149": enc2100,
+ "ebcdic-is-871+euro": enc2100,
+ "csIBM01149": enc2100,
+ "csibm01149": enc2100,
+ "Big5-HKSCS": enc2101,
+ "big5-hkscs": enc2101,
+ "csBig5HKSCS": enc2101,
+ "csbig5hkscs": enc2101,
+ "IBM1047": enc2102,
+ "ibm1047": enc2102,
+ "IBM-1047": enc2102,
+ "ibm-1047": enc2102,
+ "csIBM1047": enc2102,
+ "csibm1047": enc2102,
+ "PTCP154": enc2103,
+ "ptcp154": enc2103,
+ "csPTCP154": enc2103,
+ "csptcp154": enc2103,
+ "PT154": enc2103,
+ "pt154": enc2103,
+ "CP154": enc2103,
+ "cp154": enc2103,
+ "Cyrillic-Asian": enc2103,
+ "cyrillic-asian": enc2103,
+ "Amiga-1251": enc2104,
+ "amiga-1251": enc2104,
+ "Ami1251": enc2104,
+ "ami1251": enc2104,
+ "Amiga1251": enc2104,
+ "amiga1251": enc2104,
+ "Ami-1251": enc2104,
+ "ami-1251": enc2104,
+ "csAmiga1251\n(Aliases": enc2104,
+ "csamiga1251\n(aliases": enc2104,
+ "KOI7-switched": enc2105,
+ "koi7-switched": enc2105,
+ "csKOI7switched": enc2105,
+ "cskoi7switched": enc2105,
+ "BRF": enc2106,
+ "brf": enc2106,
+ "csBRF": enc2106,
+ "csbrf": enc2106,
+ "TSCII": enc2107,
+ "tscii": enc2107,
+ "csTSCII": enc2107,
+ "cstscii": enc2107,
+ "CP51932": enc2108,
+ "cp51932": enc2108,
+ "csCP51932": enc2108,
+ "cscp51932": enc2108,
+ "windows-874": enc2109,
+ "cswindows874": enc2109,
+ "windows-1250": enc2250,
+ "cswindows1250": enc2250,
+ "windows-1251": enc2251,
+ "cswindows1251": enc2251,
+ "windows-1252": enc2252,
+ "cswindows1252": enc2252,
+ "windows-1253": enc2253,
+ "cswindows1253": enc2253,
+ "windows-1254": enc2254,
+ "cswindows1254": enc2254,
+ "windows-1255": enc2255,
+ "cswindows1255": enc2255,
+ "windows-1256": enc2256,
+ "cswindows1256": enc2256,
+ "windows-1257": enc2257,
+ "cswindows1257": enc2257,
+ "windows-1258": enc2258,
+ "cswindows1258": enc2258,
+ "TIS-620": enc2259,
+ "tis-620": enc2259,
+ "csTIS620": enc2259,
+ "cstis620": enc2259,
+ "ISO-8859-11": enc2259,
+ "iso-8859-11": enc2259,
+ "CP50220": enc2260,
+ "cp50220": enc2260,
+ "csCP50220": enc2260,
+ "cscp50220": enc2260,
+}
+
+// Total table size 14402 bytes (14KiB); checksum: CEBAA10C
diff --git a/vendor/golang.org/x/text/encoding/internal/enctest/enctest.go b/vendor/golang.org/x/text/encoding/internal/enctest/enctest.go
new file mode 100644
index 0000000..0cccae0
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/internal/enctest/enctest.go
@@ -0,0 +1,180 @@
+// Copyright 2017 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package enctest
+
+import (
+ "bytes"
+ "fmt"
+ "io"
+ "io/ioutil"
+ "strings"
+ "testing"
+
+ "golang.org/x/text/encoding"
+ "golang.org/x/text/encoding/internal/identifier"
+ "golang.org/x/text/transform"
+)
+
+// Encoder or Decoder
+type Transcoder interface {
+ transform.Transformer
+ Bytes([]byte) ([]byte, error)
+ String(string) (string, error)
+}
+
+func TestEncoding(t *testing.T, e encoding.Encoding, encoded, utf8, prefix, suffix string) {
+ for _, direction := range []string{"Decode", "Encode"} {
+ t.Run(fmt.Sprintf("%v/%s", e, direction), func(t *testing.T) {
+
+ var coder Transcoder
+ var want, src, wPrefix, sPrefix, wSuffix, sSuffix string
+ if direction == "Decode" {
+ coder, want, src = e.NewDecoder(), utf8, encoded
+ wPrefix, sPrefix, wSuffix, sSuffix = "", prefix, "", suffix
+ } else {
+ coder, want, src = e.NewEncoder(), encoded, utf8
+ wPrefix, sPrefix, wSuffix, sSuffix = prefix, "", suffix, ""
+ }
+
+ dst := make([]byte, len(wPrefix)+len(want)+len(wSuffix))
+ nDst, nSrc, err := coder.Transform(dst, []byte(sPrefix+src+sSuffix), true)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if nDst != len(wPrefix)+len(want)+len(wSuffix) {
+ t.Fatalf("nDst got %d, want %d",
+ nDst, len(wPrefix)+len(want)+len(wSuffix))
+ }
+ if nSrc != len(sPrefix)+len(src)+len(sSuffix) {
+ t.Fatalf("nSrc got %d, want %d",
+ nSrc, len(sPrefix)+len(src)+len(sSuffix))
+ }
+ if got := string(dst); got != wPrefix+want+wSuffix {
+ t.Fatalf("\ngot %q\nwant %q", got, wPrefix+want+wSuffix)
+ }
+
+ for _, n := range []int{0, 1, 2, 10, 123, 4567} {
+ input := sPrefix + strings.Repeat(src, n) + sSuffix
+ g, err := coder.String(input)
+ if err != nil {
+ t.Fatalf("Bytes: n=%d: %v", n, err)
+ }
+ if len(g) == 0 && len(input) == 0 {
+ // If the input is empty then the output can be empty,
+ // regardless of whatever wPrefix is.
+ continue
+ }
+ got1, want1 := string(g), wPrefix+strings.Repeat(want, n)+wSuffix
+ if got1 != want1 {
+ t.Fatalf("ReadAll: n=%d\ngot %q\nwant %q",
+ n, trim(got1), trim(want1))
+ }
+ }
+ })
+ }
+}
+
+func TestFile(t *testing.T, e encoding.Encoding) {
+ for _, dir := range []string{"Decode", "Encode"} {
+ t.Run(fmt.Sprintf("%s/%s", e, dir), func(t *testing.T) {
+ dst, src, transformer, err := load(dir, e)
+ if err != nil {
+ t.Fatalf("load: %v", err)
+ }
+ buf, err := transformer.Bytes(src)
+ if err != nil {
+ t.Fatalf("transform: %v", err)
+ }
+ if !bytes.Equal(buf, dst) {
+ t.Error("transformed bytes did not match golden file")
+ }
+ })
+ }
+}
+
+func Benchmark(b *testing.B, enc encoding.Encoding) {
+ for _, direction := range []string{"Decode", "Encode"} {
+ b.Run(fmt.Sprintf("%s/%s", enc, direction), func(b *testing.B) {
+ _, src, transformer, err := load(direction, enc)
+ if err != nil {
+ b.Fatal(err)
+ }
+ b.SetBytes(int64(len(src)))
+ b.ResetTimer()
+ for i := 0; i < b.N; i++ {
+ r := transform.NewReader(bytes.NewReader(src), transformer)
+ io.Copy(ioutil.Discard, r)
+ }
+ })
+ }
+}
+
+// testdataFiles are files in testdata/*.txt.
+var testdataFiles = []struct {
+ mib identifier.MIB
+ basename, ext string
+}{
+ {identifier.Windows1252, "candide", "windows-1252"},
+ {identifier.EUCPkdFmtJapanese, "rashomon", "euc-jp"},
+ {identifier.ISO2022JP, "rashomon", "iso-2022-jp"},
+ {identifier.ShiftJIS, "rashomon", "shift-jis"},
+ {identifier.EUCKR, "unsu-joh-eun-nal", "euc-kr"},
+ {identifier.GBK, "sunzi-bingfa-simplified", "gbk"},
+ {identifier.HZGB2312, "sunzi-bingfa-gb-levels-1-and-2", "hz-gb2312"},
+ {identifier.Big5, "sunzi-bingfa-traditional", "big5"},
+ {identifier.UTF16LE, "candide", "utf-16le"},
+ {identifier.UTF8, "candide", "utf-8"},
+ {identifier.UTF32BE, "candide", "utf-32be"},
+
+ // GB18030 is a superset of GBK and is nominally a Simplified Chinese
+ // encoding, but it can also represent the entire Basic Multilingual
+ // Plane, including codepoints like 'â' that aren't encodable by GBK.
+ // GB18030 on Simplified Chinese should perform similarly to GBK on
+ // Simplified Chinese. GB18030 on "candide" is more interesting.
+ {identifier.GB18030, "candide", "gb18030"},
+}
+
+func load(direction string, enc encoding.Encoding) ([]byte, []byte, Transcoder, error) {
+ basename, ext, count := "", "", 0
+ for _, tf := range testdataFiles {
+ if mib, _ := enc.(identifier.Interface).ID(); tf.mib == mib {
+ basename, ext = tf.basename, tf.ext
+ count++
+ }
+ }
+ if count != 1 {
+ if count == 0 {
+ return nil, nil, nil, fmt.Errorf("no testdataFiles for %s", enc)
+ }
+ return nil, nil, nil, fmt.Errorf("too many testdataFiles for %s", enc)
+ }
+ dstFile := fmt.Sprintf("../testdata/%s-%s.txt", basename, ext)
+ srcFile := fmt.Sprintf("../testdata/%s-utf-8.txt", basename)
+ var coder Transcoder = encoding.ReplaceUnsupported(enc.NewEncoder())
+ if direction == "Decode" {
+ dstFile, srcFile = srcFile, dstFile
+ coder = enc.NewDecoder()
+ }
+ dst, err := ioutil.ReadFile(dstFile)
+ if err != nil {
+ if dst, err = ioutil.ReadFile("../" + dstFile); err != nil {
+ return nil, nil, nil, err
+ }
+ }
+ src, err := ioutil.ReadFile(srcFile)
+ if err != nil {
+ if src, err = ioutil.ReadFile("../" + srcFile); err != nil {
+ return nil, nil, nil, err
+ }
+ }
+ return dst, src, coder, nil
+}
+
+func trim(s string) string {
+ if len(s) < 120 {
+ return s
+ }
+ return s[:50] + "..." + s[len(s)-50:]
+}
diff --git a/vendor/golang.org/x/text/encoding/testdata/candide-gb18030.txt b/vendor/golang.org/x/text/encoding/testdata/candide-gb18030.txt
new file mode 100644
index 0000000..bd7a572
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/testdata/candide-gb18030.txt
@@ -0,0 +1,510 @@
+This file was derived from
+http://www.gutenberg.org/cache/epub/4650/pg4650.txt
+--------
+
+ CANDIDE,
+
+ ou
+
+ L'OPTIMISME,
+
+ TRADUIT DE L'ALLEMAND
+
+ DE M. LE DOCTEUR RALPH,
+
+ AVEC LES ADDITIONS
+
+ QU'ON A TROUV07ES DANS LA POCHE DU DOCTEUR, LORSQU'IL MOURUT
+
+ 08 MINDEN, L'AN DE GR00CE 1759
+
+ 1759
+
+
+
+CHAPITRE I.
+
+Comment Candide fut lev dans un beau ch09teau, et comment il fut
+chass d'icelui.
+
+Il y avait en Vestphalie, dans le ch09teau de M. le baron de
+Thunder-ten-tronckh, un jeune gar04on qui la nature avait donn
+les moeurs les plus douces. Sa physionomie annon04ait son 09me.
+Il avait le jugement assez droit, avec l'esprit le plus simple;
+c'est, je crois, pour cette raison qu'on le nommait Candide. Les
+anciens domestiques de la maison soup04onnaient qu'il tait fils
+de la soeur de monsieur le baron et d'un bon et honnte
+gentilhomme du voisinage, que cette demoiselle ne voulut jamais
+pouser parce qu'il n'avait pu prouver que soixante et onze
+quartiers, et que le reste de son arbre gnalogique avait t
+perdu par l'injure du temps.
+
+Monsieur le baron tait un des plus puissants seigneurs de la
+Westphalie, car son ch09teau avait une porte et des fentres. Sa
+grande salle mme tait orne d'une tapisserie. Tous les chiens
+de ses basses-cours composaient une meute dans le besoin; ses
+palefreniers taient ses piqueurs; le vicaire du village tait
+son grand-aum00nier. Ils l'appelaient tous monseigneur, et ils
+riaient quand il fesait des contes.
+
+Madame la baronne, qui pesait environ trois cent cinquante
+livres, s'attirait par l une trs grande considration, et
+fesait les honneurs de la maison avec une dignit qui la rendait
+encore plus respectable. Sa fille Cungonde, 09ge de dix-sept
+ans, tait haute en couleur, fra06che, grasse, apptissante. Le
+fils du baron paraissait en tout digne de son pre. Le
+prcepteur Pangloss[1] tait l'oracle de la maison, et le petit
+Candide coutait ses le04ons avec toute la bonne foi de son 09ge et
+de son caractre.
+
+ [1] De _pan_, tout, et _glossa_, langue. B.
+
+
+Pangloss enseignait la mtaphysico-thologo-cosmolonigologie. Il
+prouvait admirablement qu'il n'y a point d'effet sans cause, et
+que, dans ce meilleur des mondes possibles, le ch09teau de
+monseigneur le baron tait le plus beau des ch09teaux, et madame
+la meilleure des baronnes possibles.
+
+Il est dmontr, disait-il, que les choses ne peuvent tre
+autrement; car tout tant fait pour une fin, tout est
+ncessairement pour la meilleure fin. Remarquez bien que les nez
+ont t faits pour porter des lunettes; aussi avons-nous des
+lunettes[2]. Les jambes sont visiblement institues pour tre
+chausses, et nous avons des chausses. Les pierres ont t
+formes pour tre tailles et pour en faire des ch09teaux; aussi
+monseigneur a un trs beau ch09teau: le plus grand baron de la
+province doit tre le mieux log; et les cochons tant faits pour
+tre mangs, nous mangeons du porc toute l'anne: par consquent,
+ceux qui ont avanc que tout est bien ont dit une sottise; il
+fallait dire que tout est au mieux.
+
+ [2] Voyez tome XXVII, page 528; et dans les _Mlanges_, anne
+ 1738, le chapitre XI de la troisime partie des _07lments de la
+ philosophie de Newton_; et anne 1768, le chapitre X des
+ _Singularits de la nature_. B.
+
+
+Candide coutait attentivement, et croyait innocemment; car il
+trouvait mademoiselle Cungonde extrmement belle, quoiqu'il ne
+pr06t jamais la hardiesse de le lui dire. Il concluait qu'aprs
+le bonheur d'tre n baron de Thunder-ten-tronckh, le second
+degr de bonheur tait d'tre mademoiselle Cungonde; le
+troisime, de la voir tous les jours; et le quatrime, d'entendre
+ma06tre Pangloss, le plus grand philosophe de la province, et par
+consquent de toute la terre.
+
+Un jour Cungonde, en se promenant auprs du ch09teau, dans le
+petit bois qu'on appelait parc, vit entre des broussailles le
+docteur Pangloss qui donnait une le04on de physique exprimentale
+ la femme de chambre de sa mre, petite brune trs jolie et trs
+docile. Comme mademoiselle Cungonde avait beaucoup de
+disposition pour les sciences, elle observa, sans souffler, les
+expriences ritres dont elle fut tmoin; elle vit clairement
+la raison suffisante du docteur, les effets et les causes, et
+s'en retourna tout agite, toute pensive, toute remplie du dsir
+d'tre savante, songeant qu'elle pourrait bien tre la raison
+suffisante du jeune Candide, qui pouvait aussi tre la sienne.
+
+Elle rencontra Candide en revenant au ch09teau, et rougit: Candide
+rougit aussi . Elle lui dit bonjour d'une voix entrecoupe; et
+Candide lui parla sans savoir ce qu'il disait. Le lendemain,
+aprs le d06ner, comme on sortait de table, Cungonde et Candide
+se trouvrent derrire un paravent; Cungonde laissa tomber son
+mouchoir, Candide le ramassa; elle lui prit innocemment la main;
+le jeune homme baisa innocemment la main de la jeune demoiselle
+avec une vivacit, une sensibilit, une gr09ce toute particulire;
+leurs bouches se rencontrrent, leurs yeux s'enflammrent, leurs
+genoux tremblrent, leurs mains s'garrent. M. le baron de
+Thunder-ten-tronckh passa auprs du paravent, et voyant cette
+cause et cet effet, chassa Candide du ch09teau grands coups de
+pied dans le derrire. Cungonde s'vanouit: elle fut soufflete
+par madame la baronne ds qu'elle fut revenue elle-mme; et
+tout fut constern dans le plus beau et le plus agrable des
+ch09teaux possibles.
+
+
+
+CHAPITRE II
+
+Ce que devint Candide parmi les Bulgares.
+
+
+Candide, chass du paradis terrestre, marcha longtemps sans
+savoir o, pleurant, levant les yeux au ciel, les tournant
+souvent vers le plus beau des ch09teaux qui renfermait la plus
+belle des baronnettes; il se coucha sans souper au milieu des
+champs entre deux sillons; la neige tombait gros flocons.
+Candide, tout transi, se tra06na le lendemain vers la ville
+voisine, qui s'appelle _Valdberghoff-trarbk-dikdorff_, n'ayant
+point d'argent, mourant de faim et de lassitude. Il s'arrta
+tristement la porte d'un cabaret. Deux hommes habills de bleu
+le remarqurent: Camarade, dit l'un, voil un jeune homme trs
+bien fait, et qui a la taille requise; ils s'avancrent vers
+Candide et le prirent d06ner trs civilement.--Messieurs, leur
+dit Candide avec une modestie charmante, vous me faites beaucoup
+d'honneur, mais je n'ai pas de quoi payer mon cot.--Ah!
+monsieur, lui dit un des bleus, les personnes de votre figure et
+de votre mrite ne paient jamais rien: n'avez-vous pas cinq pieds
+cinq pouces de haut?--Oui, messieurs, c'est ma taille, dit-il en
+fesant la rvrence.--Ah! monsieur, mettez-vous table; non
+seulement nous vous dfraierons, mais nous ne souffrirons jamais
+qu'un homme comme vous manque d'argent; les hommes ne sont faits
+que pour se secourir les uns les autres.--Vous avez raison, dit
+Candide; c'est ce que M. Pangloss m'a toujours dit, et je vois
+bien que tout est au mieux. On le prie d'accepter quelques cus,
+il les prend et veut faire son billet; on n'en veut point, on se
+met table. N'aimez-vous pas tendrement?....--Oh! oui,
+rpond-il, j'aime tendrement mademoiselle Cungonde.--Non, dit
+l'un de ces messieurs, nous vous demandons si vous n'aimez pas
+tendrement le roi des Bulgares?--Point du tout, dit-il, car je ne
+l'ai jamais vu.--Comment! c'est le plus charmant des rois, et il
+faut boire sa sant.--Oh! trs volontiers, messieurs. Et il
+boit. C'en est assez, lui dit-on, vous voil l'appui, le
+soutien, le dfenseur, le hros des Bulgares; votre fortune est
+faite, et votre gloire est assure. On lui met sur-le-champ les
+fers aux pieds, et on le mne au rgiment. On le fait tourner
+droite, gauche, hausser la baguette, remettre la baguette,
+coucher en joue, tirer, doubler le pas, et on lui donne trente
+coups de b09ton; le lendemain, il fait l'exercice un peu moins
+mal, et il ne re04oit que vingt coups; le surlendemain, on ne lui
+en donne que dix, et il est regard par ses camarades comme un
+prodige.
+
+Candide, tout stupfait, ne dmlait pas encore trop bien comment
+il tait un hros. Il s'avisa un beau jour de printemps de
+s'aller promener, marchant tout droit devant lui, croyant que
+c'tait un privilge de l'espce humaine, comme de l'espce
+animale, de se servir de ses jambes son plaisir. Il n'eut pas
+fait deux lieues que voil quatre autres hros de six pieds qui
+l'atteignent, qui le lient, qui le mnent dans un cachot. On lui
+demanda juridiquement ce qu'il aimait le mieux d'tre fustig
+trente-six fois par tout le rgiment, ou de recevoir -la-fois
+douze balles de plomb dans la cervelle. Il eut beau dire que les
+volonts sont libres, et qu'il ne voulait ni l'un ni l'autre, il
+fallut faire un choix; il se dtermina, en vertu du don de Dieu
+qu'on nomme _libert_, passer trente-six fois par les
+baguettes; il essuya deux promenades. Le rgiment tait compos
+de deux mille hommes; cela lui composa quatre mille coups de
+baguette, qui, depuis la nuque du cou jusqu'au cul, lui
+dcouvrirent les muscles et les nerfs. Comme on allait procder
+ la troisime course, Candide, n'en pouvant plus, demanda en
+gr09ce qu'on voul04t bien avoir la bont de lui casser la tte; il
+obtint cette faveur; on lui bande les yeux; on le fait mettre
+genoux. Le roi des Bulgares passe dans ce moment, s'informe du
+crime du patient; et comme ce roi avait un grand gnie, il
+comprit, par tout ce qu'il apprit de Candide, que c'tait un
+jeune mtaphysicien fort ignorant des choses de ce monde, et il
+lui accorda sa gr09ce avec une clmence qui sera loue dans tous
+les journaux et dans tous les sicles. Un brave chirurgien
+gurit Candide en trois semaines avec les mollients enseigns
+par Dioscoride. Il avait dj un peu de peau et pouvait marcher,
+quand le roi des Bulgares livra bataille au roi des Abares.
+
+
+
+CHAPITRE III.
+
+Comment Candide se sauva d'entre les Bulgares, et ce qu'il
+devint.
+
+
+Rien n'tait si beau, si leste, si brillant, si bien ordonn que
+les deux armes. Les trompettes, les fifres, les hautbois, les
+tambours, les canons; formaient une harmonie telle qu'il n'y en
+eut jamais en enfer. Les canons renversrent d'abord peu prs
+six mille hommes de chaque c00t; ensuite la mousqueterie 00ta du
+meilleur des mondes environ neuf dix mille coquins qui en
+infectaient la surface. La ba07onnette fut aussi la raison
+suffisante de la mort de quelques milliers d'hommes. Le tout
+pouvait bien se monter une trentaine de mille 09mes. Candide,
+qui tremblait comme un philosophe, se cacha du mieux qu'il put
+pendant cette boucherie hro07que.
+
+Enfin, tandis que les deux rois fesaient chanter des _Te Deum_,
+chacun dans son camp, il prit le parti d'aller raisonner ailleurs
+des effets et des causes. Il passa par-dessus des tas de morts
+et de mourants, et gagna d'abord un village voisin; il tait en
+cendres: c'tait un village abare que les Bulgares avaient br04l,
+selon les lois du droit public. Ici des vieillards cribls de
+coups regardaient mourir leurs femmes gorges, qui tenaient
+leurs enfants leurs mamelles sanglantes; l des filles
+ventres aprs avoir assouvi les besoins naturels de quelques
+hros, rendaient les derniers soupirs; d'autres demi br04les
+criaient qu'on achev09t de leur donner la mort. Des cervelles
+taient rpandues sur la terre c00t de bras et de jambes
+coups.
+
+Candide s'enfuit au plus vite dans un autre village: il
+appartenait des Bulgares, et les hros abares l'avaient trait
+de mme. Candide, toujours marchant sur des membres palpitants
+ou travers des ruines, arriva enfin hors du th09tre de la
+guerre, portant quelques petites provisions dans son bissac, et
+n'oubliant jamais mademoiselle Cungonde. Ses provisions lui
+manqurent quand il fut en Hollande; mais ayant entendu dire que
+tout le monde tait riche dans ce pays-l, et qu'on y tait
+chrtien, il ne douta pas qu'on ne le trait09t aussi bien qu'il
+l'avait t dans le ch09teau de M. le baron, avant qu'il en e04t
+t chass pour les beaux yeux de mademoiselle Cungonde.
+
+Il demanda l'aum00ne plusieurs graves personnages, qui lui
+rpondirent tous que, s'il continuait faire ce mtier, on
+l'enfermerait dans une maison de correction pour lui apprendre
+vivre.
+
+Il s'adressa ensuite un homme qui venait de parler tout seul
+une heure de suite sur la charit dans une grande assemble. Cet
+orateur le regardant de travers lui dit: Que venez-vous faire
+ici? y tes-vous pour la bonne cause? Il n'y a point d'effet sans
+cause, rpondit modestement Candide; tout est encha06n
+ncessairement et arrang pour le mieux. Il a fallu que je fusse
+chass d'auprs de mademoiselle Cungonde, que j'aie pass par
+les baguettes, et il faut que je demande mon pain, jusqu' ce que
+je puisse en gagner; tout cela ne pouvait tre autrement. Mon
+ami, lui dit l'orateur, croyez-vous que le pape soit
+l'antechrist? Je ne l'avais pas encore entendu dire, rpondit
+Candide: mais qu'il le soit, ou qu'il ne le soit pas, je manque
+de pain. Tu ne mrites pas d'en manger, dit l'autre: va, coquin,
+va, misrable, ne m'approche de ta vie. La femme de l'orateur
+ayant mis la tte la fentre, et avisant un homme qui doutait
+que le pape f04t antechrist, lui rpandit sur le chef un
+plein..... O ciel! quel excs se porte le zle de la religion
+dans les dames!
+
+Un homme qui n'avait point t baptis, un bon anabaptiste, nomm
+Jacques, vit la manire cruelle et ignominieuse dont on traitait
+ainsi un de ses frres, un tre deux pieds sans plumes, qui
+avait une 09me; il l'amena chez lui, le nettoya, lui donna du pain
+et de la bire, lui fit prsent de deux florins, et voulut mme
+lui apprendre travailler dans ses manufactures aux toffes de
+Perse qu'on fabrique en Hollande. Candide se prosternant presque
+devant lui, s'criait: Ma06tre Pangloss me l'avait bien dit que
+tout est au mieux dans ce monde, car je suis infiniment plus
+touch de votre extrme gnrosit que de la duret de ce
+monsieur manteau noir, et de madame son pouse.
+
+Le lendemain, en se promenant, il rencontra un gueux tout couvert
+de pustules, les yeux morts, le bout du nez rong, la bouche de
+travers, les dents noires, et parlant de la gorge, tourment
+d'une toux violente, et crachant une dent chaque effort.
+
+
+
+CHAPITRE IV.
+
+Comment Candide rencontra son ancien ma06tre de philosophie, le
+docteur Pangloss, et ce qui en advint.
+
+
+Candide, plus mu encore de compassion que d'horreur, donna cet
+pouvantable gueux les deux florins qu'il avait re04us de son
+honnte anabaptiste Jacques. Le fant00me le regarda fixement,
+versa des larmes, et sauta son cou. Candide effray recule.
+Hlas! dit le misrable l'autre misrable, ne reconnaissez-vous
+plus votre cher Pangloss? Qu'entends-je? vous, mon cher ma06tre!
+vous, dans cet tat horrible! quel malheur vous est-il donc
+arriv? pourquoi n'tes-vous plus dans le plus beau des ch09teaux?
+qu'est devenue mademoiselle Cungonde, la perle des filles, le
+chef-d'oeuvre de la nature? Je n'en peux plus, dit Pangloss.
+Aussit00t Candide le mena dans l'table de l'anabaptiste, o il
+lui fit manger un peu de pain; et quand Pangloss fut refait: Eh
+bien! lui dit-il, Cungonde? Elle est morte, reprit l'autre.
+Candide s'vanouit ce mot: son ami rappela ses sens avec un peu
+de mauvais vinaigre qui se trouva par hasard dans l'table.
+Candide rouvre les yeux. Cungonde est morte! Ah! meilleur des
+mondes, o tes-vous? Mais de quelle maladie est-elle morte? ne
+serait-ce point de m'avoir vu chasser du beau ch09teau de monsieur
+son pre grands coups de pied? Non, dit Pangloss, elle a t
+ventre par des soldats bulgares, aprs avoir t viole autant
+qu'on peut l'tre; ils ont cass la tte monsieur le baron qui
+voulait la dfendre; madame la baronne a t coupe en morceaux;
+mon pauvre pupille trait prcisment comme sa soeur; et quant au
+ch09teau, il n'est pas rest pierre sur pierre, pas une grange,
+pas un mouton, pas un canard, pas un arbre; mais nous avons t
+bien vengs, car les Abares en ont fait autant dans une baronnie
+voisine qui appartenait un seigneur bulgare.
+
+A ce discours, Candide s'vanouit encore; mais revenu soi, et
+ayant dit tout ce qu'il devait dire, il s'enquit de la cause et
+de l'effet, et de la raison suffisante qui avait mis Pangloss
+dans un si piteux tat. Hlas! dit l'autre, c'est l'amour:
+l'amour, le consolateur du genre humain, le conservateur de
+l'univers, l'09me de tous les tres sensibles, le tendre amour.
+Hlas! dit Candide, je l'ai connu cet amour, ce souverain des
+coeurs, cette 09me de notre 09me; il ne m'a jamais valu qu'un
+baiser et vingt coups de pied au cul. Comment cette belle cause
+a-t-elle pu produire en vous un effet si abominable?
+
+Pangloss rpondit en ces termes: O mon cher Candide! vous avez
+connu Paquette, cette jolie suivante de notre auguste baronne:
+j'ai go04t dans ses bras les dlices du paradis, qui ont produit
+ces tourments d'enfer dont vous me voyez dvor; elle en tait
+infecte, elle en est peut-tre morte. Paquette tenait ce
+prsent d'un cordelier trs savant qui avait remont la source,
+car il l'avait eu d'une vieille comtesse, qui l'avait re04u d'un
+capitaine de cavalerie, qui le devait une marquise, qui le
+tenait d'un page, qui l'avait re04u d'un jsuite, qui, tant
+novice, l'avait eu en droite ligne d'un des compagnons de
+Christophe Colomb. Pour moi, je ne le donnerai personne, car
+je me meurs.
+
+O Pangloss! s'cria Candide, voil une trange gnalogie!
+n'est-ce pas le diable qui en fut la souche? Point du tout,
+rpliqua ce grand homme; c'tait une chose indispensable dans le
+meilleur des mondes, un ingrdient ncessaire; car si Colomb
+n'avait pas attrap dans une 06le de l'Amrique cette maladie[1]
+qui empoisonne la source de la gnration, qui souvent mme
+empche la gnration, et qui est videmment l'oppos du grand
+but de la nature, nous n'aurions ni le chocolat ni la cochenille;
+il faut encore observer que jusqu'aujourd'hui, dans notre
+continent, cette maladie nous est particulire, comme la
+controverse. Les Turcs, les Indiens, les Persans, les Chinois,
+les Siamois, les Japonais, ne la connaissent pas encore; mais il
+y a une raison suffisante pour qu'ils la connaissent leur tour
+dans quelques sicles. En attendant elle a fait un merveilleux
+progrs parmi nous, et surtout dans ces grandes armes composes
+d'honntes stipendiaires bien levs, qui dcident du destin des
+tats; on peut assurer que, quand trente mille hommes combattent
+en bataille range contre des troupes gales en nombre, il y a
+environ vingt mille vrols de chaque c00t.
+
+ [1] Voyez tome XXXI, page 7. B.
+
+
+Voil qui est admirable, dit Candide; mais il faut vous faire
+gurir. Et comment le puis-je? dit Pangloss; je n'ai pas le sou,
+mon ami, et dans toute l'tendue de ce globe on ne peut ni se
+faire saigner, ni prendre un lavement sans payer, ou sans qu'il y
+ait quelqu'un qui paie pour nous.
+
+Ce dernier discours dtermina Candide; il alla se jeter aux pieds
+de son charitable anabaptiste Jacques, et lui fit une peinture si
+touchante de l'tat o son ami tait rduit, que le bon-homme
+n'hsita pas recueillir le docteur Pangloss; il le fit gurir
+ses dpens. Pangloss, dans la cure, ne perdit qu'un oeil et une
+oreille. Il crivait bien, et savait parfaitement
+l'arithmtique. L'anabaptiste Jacques en fit son teneur de
+livres. Au bout de deux mois, tant oblig d'aller Lisbonne
+pour les affaires de son commerce, il mena dans son vaisseau ses
+deux philosophes. Pangloss lui expliqua comment tout tait on ne
+peut mieux. Jacques n'tait pas de cet avis. Il faut bien,
+disait-il, que les hommes aient un peu corrompu la nature, car
+ils ne sont point ns loups, et ils sont devenus loups. Dieu ne
+leur a donn ni canons de vingt-quatre, ni ba07onnettes, et ils se
+sont fait des ba07onnettes et des canons pour se dtruire. Je
+pourrais mettre en ligne de compte les banqueroutes, et la
+justice qui s'empare des biens des banqueroutiers pour en
+frustrer les cranciers. Tout cela tait indispensable,
+rpliquait le docteur borgne, et les malheurs particuliers font
+le bien gnral; de sorte que plus il y a de malheurs
+particuliers, et plus tout est bien. Tandis qu'il raisonnait,
+l'air s'obscurcit, les vents soufflrent des quatre coins du
+monde, et le vaisseau fut assailli de la plus horrible tempte,
+la vue du port de Lisbonne.
+
+
+CHAPITRE V.
+
+Tempte, naufrage, tremblement de terre, et ce qui advint du
+docteur Pangloss, de Candide, et de l'anabaptiste Jacques.
+
+La moiti des passagers affaiblis, expirants de ces angoisses
+inconcevables que le roulis d'un vaisseau porte dans les nerfs et
+dans toutes les humeurs du corps agites en sens contraires,
+n'avait pas mme la force de s'inquiter du danger. L'autre
+moiti jetait des cris et fesait des prires; les voiles taient
+dchires, les m09ts briss, le vaisseau entr'ouvert. Travaillait
+qui pouvait, personne ne s'entendait, personne ne commandait.
+L'anabaptiste aidait un peu la manoeuvre; il tait sur le
+tillac; un matelot furieux le frappe rudement et l'tend sur les
+planches; mais du coup qu'il lui donna, il eut lui-mme une si
+violente secousse, qu'il tomba hors du vaisseau, la tte la
+premire. Il restait suspendu et accroch une partie de m09t
+rompu. Le bon Jacques court son secours, l'aide remonter, et
+de l'effort qu'il fait, il est prcipit dans la mer la vue du
+matelot, qui le laissa prir sans daigner seulement le regarder.
+Candide approche, voit son bienfaiteur qui repara06t un moment, et
+qui est englouti pour jamais. Il veut se jeter aprs lui dans la
+mer: le philosophe Pangloss l'en empche, en lui prouvant que la
+rade de Lisbonne avait t forme exprs pour que cet anabaptiste
+s'y noy09t. Tandis qu'il le prouvait _ priori_, le vaisseau
+s'entr'ouvre, tout prit la rserve de Pangloss, de Candide, et
+de ce brutal de matelot qui avait noy le vertueux anabaptiste;
+le coquin nagea heureusement jusqu'au rivage, o Pangloss et
+Candide furent ports sur une planche.
+
+Quand ils furent revenus un peu eux, ils marchrent vers
+Lisbonne; il leur restait quelque argent, avec lequel ils
+espraient se sauver de la faim aprs avoir chapp la tempte.
+
+A peine ont-ils mis le pied dans la ville, en pleurant la mort de
+leur bienfaiteur, qu'ils sentent la terre trembler sous leurs
+pas[1]; la mer s'lve en bouillonnant dans le port, et brise les
+vaisseaux qui sont l'ancre. Des tourbillons de flammes et de
+cendres couvrent les rues et les places publiques; les maisons
+s'croulent, les toits sont renverss sur les fondements, et les
+fondements se dispersent; trente mille habitants de tout 09ge et
+de tout sexe sont crass sous des ruines. Le matelot disait en
+sifflant et en jurant: il y aura quelque chose gagner ici.
+Quelle peut tre la raison suffisante de ce phnomne? disait
+Pangloss. Voici le dernier jour du monde! s'criait Candide.
+Le matelot court incontinent au milieu des dbris, affronte la
+mort pour trouver de l'argent, en trouve, s'en empare, s'enivre,
+et ayant cuv son vin, achte les faveurs de la premire fille de
+bonne volont qu'il rencontre sur les ruines des maisons
+dtruites, et au milieu des mourants et des morts. Pangloss le
+tirait cependant par la manche: Mon ami, lui disait-il, cela
+n'est pas bien, vous manquez la raison universelle, vous prenez
+mal votre temps. Tte et sang, rpondit l'autre, je suis matelot
+et n Batavia; j'ai march quatre fois sur le crucifix dans
+quatre voyages au Japon[2]; tu as bien trouv ton homme avec ta
+raison universelle!
+
+
+ [1] Le tremblement de terre de Lisbonne est du 1er novembre 1755.
+ B.
+
+ [2] Voyez tome XVIII, page 470. B.
+
+
+Quelques clats de pierre avaient bless Candide; il tait tendu
+dans la rue et couvert de dbris. Il disait Pangloss: Hlas!
+procure-moi un peu de vin et d'huile; je me meurs. Ce
+tremblement de terre n'est pas une chose nouvelle, rpondit
+Pangloss; la ville de Lima prouva les mmes secousses en
+Amrique l'anne passe; mmes causes, mmes effets; il y a
+certainement une tra06ne de soufre sous terre depuis Lima jusqu'
+Lisbonne. Rien n'est plus probable, dit Candide; mais, pour
+Dieu, un peu d'huile et de vin. Comment probable? rpliqua le
+philosophe, je soutiens que la chose est dmontre. Candide
+perdit connaissance, et Pangloss lui apporta un peu d'eau d'une
+fontaine voisine.
+
+Le lendemain, ayant trouv quelques provisions de bouche en se
+glissant travers des dcombres, ils rparrent un peu leurs
+forces. Ensuite ils travaillrent comme les autres soulager
+les habitants chapps la mort. Quelques citoyens, secourus
+par eux, leur donnrent un aussi bon d06ner qu'on le pouvait dans
+un tel dsastre: il est vrai que le repas tait triste; les
+convives arrosaient leur pain de leurs larmes; mais Pangloss les
+consola, en les assurant que les choses ne pouvaient tre
+autrement: Car, dit-il, tout ceci est ce qu'il y a de mieux; car
+s'il y a un volcan Lisbonne, il ne pouvait tre ailleurs; car
+il est impossible que les choses ne soient pas o elles sont, car
+tout est bien.
+
+Un petit homme noir, familier de l'inquisition, lequel tait
+c00t de lui, prit poliment la parole et dit: Apparemment que
+monsieur ne croit pas au pch originel; car si tout est au
+mieux, il n'y a donc eu ni chute ni punition.
+
+Je demande trs humblement pardon votre excellence, rpondit
+Pangloss encore plus poliment, car la chute de l'homme et la
+maldiction entraient ncessairement dans le meilleur des mondes
+possibles. Monsieur ne croit donc pas la libert? dit le
+familier. Votre excellence m'excusera, dit Pangloss; la libert
+peut subsister avec la ncessit absolue; car il tait ncessaire
+que nous fussions libres; car enfin la volont dtermine......
+Pangloss tait au milieu de sa phrase, quand Je familier fit un
+signe de tte son estafier qui lui servait boire du vin de
+Porto ou d'Oporto.
diff --git a/vendor/golang.org/x/text/encoding/testdata/candide-utf-16le.txt b/vendor/golang.org/x/text/encoding/testdata/candide-utf-16le.txt
new file mode 100644
index 0000000..820608b
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/testdata/candide-utf-16le.txt
Binary files differ
diff --git a/vendor/golang.org/x/text/encoding/testdata/candide-utf-32be.txt b/vendor/golang.org/x/text/encoding/testdata/candide-utf-32be.txt
new file mode 100644
index 0000000..c540e20
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/testdata/candide-utf-32be.txt
Binary files differ
diff --git a/vendor/golang.org/x/text/encoding/testdata/candide-utf-8.txt b/vendor/golang.org/x/text/encoding/testdata/candide-utf-8.txt
new file mode 100644
index 0000000..a4fd629
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/testdata/candide-utf-8.txt
@@ -0,0 +1,510 @@
+This file was derived from
+http://www.gutenberg.org/cache/epub/4650/pg4650.txt
+--------
+
+ CANDIDE,
+
+ ou
+
+ L'OPTIMISME,
+
+ TRADUIT DE L'ALLEMAND
+
+ DE M. LE DOCTEUR RALPH,
+
+ AVEC LES ADDITIONS
+
+ QU'ON A TROUVÉES DANS LA POCHE DU DOCTEUR, LORSQU'IL MOURUT
+
+ À MINDEN, L'AN DE GRÂCE 1759
+
+ 1759
+
+
+
+CHAPITRE I.
+
+Comment Candide fut élevé dans un beau château, et comment il fut
+chassé d'icelui.
+
+Il y avait en Vestphalie, dans le château de M. le baron de
+Thunder-ten-tronckh, un jeune garçon à qui la nature avait donné
+les moeurs les plus douces. Sa physionomie annonçait son âme.
+Il avait le jugement assez droit, avec l'esprit le plus simple;
+c'est, je crois, pour cette raison qu'on le nommait Candide. Les
+anciens domestiques de la maison soupçonnaient qu'il était fils
+de la soeur de monsieur le baron et d'un bon et honnête
+gentilhomme du voisinage, que cette demoiselle ne voulut jamais
+épouser parce qu'il n'avait pu prouver que soixante et onze
+quartiers, et que le reste de son arbre généalogique avait été
+perdu par l'injure du temps.
+
+Monsieur le baron était un des plus puissants seigneurs de la
+Westphalie, car son château avait une porte et des fenêtres. Sa
+grande salle même était ornée d'une tapisserie. Tous les chiens
+de ses basses-cours composaient une meute dans le besoin; ses
+palefreniers étaient ses piqueurs; le vicaire du village était
+son grand-aumônier. Ils l'appelaient tous monseigneur, et ils
+riaient quand il fesait des contes.
+
+Madame la baronne, qui pesait environ trois cent cinquante
+livres, s'attirait par là une très grande considération, et
+fesait les honneurs de la maison avec une dignité qui la rendait
+encore plus respectable. Sa fille Cunégonde, âgée de dix-sept
+ans, était haute en couleur, fraîche, grasse, appétissante. Le
+fils du baron paraissait en tout digne de son père. Le
+précepteur Pangloss[1] était l'oracle de la maison, et le petit
+Candide écoutait ses leçons avec toute la bonne foi de son âge et
+de son caractère.
+
+ [1] De _pan_, tout, et _glossa_, langue. B.
+
+
+Pangloss enseignait la métaphysico-théologo-cosmolonigologie. Il
+prouvait admirablement qu'il n'y a point d'effet sans cause, et
+que, dans ce meilleur des mondes possibles, le château de
+monseigneur le baron était le plus beau des châteaux, et madame
+la meilleure des baronnes possibles.
+
+Il est démontré, disait-il, que les choses ne peuvent être
+autrement; car tout étant fait pour une fin, tout est
+nécessairement pour la meilleure fin. Remarquez bien que les nez
+ont été faits pour porter des lunettes; aussi avons-nous des
+lunettes[2]. Les jambes sont visiblement instituées pour être
+chaussées, et nous avons des chausses. Les pierres ont été
+formées pour être taillées et pour en faire des châteaux; aussi
+monseigneur a un très beau château: le plus grand baron de la
+province doit être le mieux logé; et les cochons étant faits pour
+être mangés, nous mangeons du porc toute l'année: par conséquent,
+ceux qui ont avancé que tout est bien ont dit une sottise; il
+fallait dire que tout est au mieux.
+
+ [2] Voyez tome XXVII, page 528; et dans les _Mélanges_, année
+ 1738, le chapitre XI de la troisième partie des _Éléments de la
+ philosophie de Newton_; et année 1768, le chapitre X des
+ _Singularités de la nature_. B.
+
+
+Candide écoutait attentivement, et croyait innocemment; car il
+trouvait mademoiselle Cunégonde extrêmement belle, quoiqu'il ne
+prît jamais la hardiesse de le lui dire. Il concluait qu'après
+le bonheur d'être né baron de Thunder-ten-tronckh, le second
+degré de bonheur était d'être mademoiselle Cunégonde; le
+troisième, de la voir tous les jours; et le quatrième, d'entendre
+maître Pangloss, le plus grand philosophe de la province, et par
+conséquent de toute la terre.
+
+Un jour Cunégonde, en se promenant auprès du château, dans le
+petit bois qu'on appelait parc, vit entre des broussailles le
+docteur Pangloss qui donnait une leçon de physique expérimentale
+à la femme de chambre de sa mère, petite brune très jolie et très
+docile. Comme mademoiselle Cunégonde avait beaucoup de
+disposition pour les sciences, elle observa, sans souffler, les
+expériences réitérées dont elle fut témoin; elle vit clairement
+la raison suffisante du docteur, les effets et les causes, et
+s'en retourna tout agitée, toute pensive, toute remplie du désir
+d'être savante, songeant qu'elle pourrait bien être la raison
+suffisante du jeune Candide, qui pouvait aussi être la sienne.
+
+Elle rencontra Candide en revenant au château, et rougit: Candide
+rougit aussi . Elle lui dit bonjour d'une voix entrecoupée; et
+Candide lui parla sans savoir ce qu'il disait. Le lendemain,
+après le dîner, comme on sortait de table, Cunégonde et Candide
+se trouvèrent derrière un paravent; Cunégonde laissa tomber son
+mouchoir, Candide le ramassa; elle lui prit innocemment la main;
+le jeune homme baisa innocemment la main de la jeune demoiselle
+avec une vivacité, une sensibilité, une grâce toute particulière;
+leurs bouches se rencontrèrent, leurs yeux s'enflammèrent, leurs
+genoux tremblèrent, leurs mains s'égarèrent. M. le baron de
+Thunder-ten-tronckh passa auprès du paravent, et voyant cette
+cause et cet effet, chassa Candide du château à grands coups de
+pied dans le derrière. Cunégonde s'évanouit: elle fut souffletée
+par madame la baronne dès qu'elle fut revenue à elle-même; et
+tout fut consterné dans le plus beau et le plus agréable des
+châteaux possibles.
+
+
+
+CHAPITRE II
+
+Ce que devint Candide parmi les Bulgares.
+
+
+Candide, chassé du paradis terrestre, marcha longtemps sans
+savoir où, pleurant, levant les yeux au ciel, les tournant
+souvent vers le plus beau des châteaux qui renfermait la plus
+belle des baronnettes; il se coucha sans souper au milieu des
+champs entre deux sillons; la neige tombait à gros flocons.
+Candide, tout transi, se traîna le lendemain vers la ville
+voisine, qui s'appelle _Valdberghoff-trarbk-dikdorff_, n'ayant
+point d'argent, mourant de faim et de lassitude. Il s'arrêta
+tristement à la porte d'un cabaret. Deux hommes habillés de bleu
+le remarquèrent: Camarade, dit l'un, voilà un jeune homme très
+bien fait, et qui a la taille requise; ils s'avancèrent vers
+Candide et le prièrent à dîner très civilement.--Messieurs, leur
+dit Candide avec une modestie charmante, vous me faites beaucoup
+d'honneur, mais je n'ai pas de quoi payer mon écot.--Ah!
+monsieur, lui dit un des bleus, les personnes de votre figure et
+de votre mérite ne paient jamais rien: n'avez-vous pas cinq pieds
+cinq pouces de haut?--Oui, messieurs, c'est ma taille, dit-il en
+fesant la révérence.--Ah! monsieur, mettez-vous à table; non
+seulement nous vous défraierons, mais nous ne souffrirons jamais
+qu'un homme comme vous manque d'argent; les hommes ne sont faits
+que pour se secourir les uns les autres.--Vous avez raison, dit
+Candide; c'est ce que M. Pangloss m'a toujours dit, et je vois
+bien que tout est au mieux. On le prie d'accepter quelques écus,
+il les prend et veut faire son billet; on n'en veut point, on se
+met à table. N'aimez-vous pas tendrement?....--Oh! oui,
+répond-il, j'aime tendrement mademoiselle Cunégonde.--Non, dit
+l'un de ces messieurs, nous vous demandons si vous n'aimez pas
+tendrement le roi des Bulgares?--Point du tout, dit-il, car je ne
+l'ai jamais vu.--Comment! c'est le plus charmant des rois, et il
+faut boire à sa santé.--Oh! très volontiers, messieurs. Et il
+boit. C'en est assez, lui dit-on, vous voilà l'appui, le
+soutien, le défenseur, le héros des Bulgares; votre fortune est
+faite, et votre gloire est assurée. On lui met sur-le-champ les
+fers aux pieds, et on le mène au régiment. On le fait tourner à
+droite, à gauche, hausser la baguette, remettre la baguette,
+coucher en joue, tirer, doubler le pas, et on lui donne trente
+coups de bâton; le lendemain, il fait l'exercice un peu moins
+mal, et il ne reçoit que vingt coups; le surlendemain, on ne lui
+en donne que dix, et il est regardé par ses camarades comme un
+prodige.
+
+Candide, tout stupéfait, ne démêlait pas encore trop bien comment
+il était un héros. Il s'avisa un beau jour de printemps de
+s'aller promener, marchant tout droit devant lui, croyant que
+c'était un privilège de l'espèce humaine, comme de l'espèce
+animale, de se servir de ses jambes à son plaisir. Il n'eut pas
+fait deux lieues que voilà quatre autres héros de six pieds qui
+l'atteignent, qui le lient, qui le mènent dans un cachot. On lui
+demanda juridiquement ce qu'il aimait le mieux d'être fustigé
+trente-six fois par tout le régiment, ou de recevoir à-la-fois
+douze balles de plomb dans la cervelle. Il eut beau dire que les
+volontés sont libres, et qu'il ne voulait ni l'un ni l'autre, il
+fallut faire un choix; il se détermina, en vertu du don de Dieu
+qu'on nomme _liberté_, à passer trente-six fois par les
+baguettes; il essuya deux promenades. Le régiment était composé
+de deux mille hommes; cela lui composa quatre mille coups de
+baguette, qui, depuis la nuque du cou jusqu'au cul, lui
+découvrirent les muscles et les nerfs. Comme on allait procéder
+à la troisième course, Candide, n'en pouvant plus, demanda en
+grâce qu'on voulût bien avoir la bonté de lui casser la tête; il
+obtint cette faveur; on lui bande les yeux; on le fait mettre à
+genoux. Le roi des Bulgares passe dans ce moment, s'informe du
+crime du patient; et comme ce roi avait un grand génie, il
+comprit, par tout ce qu'il apprit de Candide, que c'était un
+jeune métaphysicien fort ignorant des choses de ce monde, et il
+lui accorda sa grâce avec une clémence qui sera louée dans tous
+les journaux et dans tous les siècles. Un brave chirurgien
+guérit Candide en trois semaines avec les émollients enseignés
+par Dioscoride. Il avait déjà un peu de peau et pouvait marcher,
+quand le roi des Bulgares livra bataille au roi des Abares.
+
+
+
+CHAPITRE III.
+
+Comment Candide se sauva d'entre les Bulgares, et ce qu'il
+devint.
+
+
+Rien n'était si beau, si leste, si brillant, si bien ordonné que
+les deux armées. Les trompettes, les fifres, les hautbois, les
+tambours, les canons; formaient une harmonie telle qu'il n'y en
+eut jamais en enfer. Les canons renversèrent d'abord à peu près
+six mille hommes de chaque côté; ensuite la mousqueterie ôta du
+meilleur des mondes environ neuf à dix mille coquins qui en
+infectaient la surface. La baïonnette fut aussi la raison
+suffisante de la mort de quelques milliers d'hommes. Le tout
+pouvait bien se monter à une trentaine de mille âmes. Candide,
+qui tremblait comme un philosophe, se cacha du mieux qu'il put
+pendant cette boucherie héroïque.
+
+Enfin, tandis que les deux rois fesaient chanter des _Te Deum_,
+chacun dans son camp, il prit le parti d'aller raisonner ailleurs
+des effets et des causes. Il passa par-dessus des tas de morts
+et de mourants, et gagna d'abord un village voisin; il était en
+cendres: c'était un village abare que les Bulgares avaient brûlé,
+selon les lois du droit public. Ici des vieillards criblés de
+coups regardaient mourir leurs femmes égorgées, qui tenaient
+leurs enfants à leurs mamelles sanglantes; là des filles
+éventrées après avoir assouvi les besoins naturels de quelques
+héros, rendaient les derniers soupirs; d'autres à demi brûlées
+criaient qu'on achevât de leur donner la mort. Des cervelles
+étaient répandues sur la terre à côté de bras et de jambes
+coupés.
+
+Candide s'enfuit au plus vite dans un autre village: il
+appartenait à des Bulgares, et les héros abares l'avaient traité
+de même. Candide, toujours marchant sur des membres palpitants
+ou à travers des ruines, arriva enfin hors du théâtre de la
+guerre, portant quelques petites provisions dans son bissac, et
+n'oubliant jamais mademoiselle Cunégonde. Ses provisions lui
+manquèrent quand il fut en Hollande; mais ayant entendu dire que
+tout le monde était riche dans ce pays-là, et qu'on y était
+chrétien, il ne douta pas qu'on ne le traitât aussi bien qu'il
+l'avait été dans le château de M. le baron, avant qu'il en eût
+été chassé pour les beaux yeux de mademoiselle Cunégonde.
+
+Il demanda l'aumône à plusieurs graves personnages, qui lui
+répondirent tous que, s'il continuait à faire ce métier, on
+l'enfermerait dans une maison de correction pour lui apprendre à
+vivre.
+
+Il s'adressa ensuite à un homme qui venait de parler tout seul
+une heure de suite sur la charité dans une grande assemblée. Cet
+orateur le regardant de travers lui dit: Que venez-vous faire
+ici? y êtes-vous pour la bonne cause? Il n'y a point d'effet sans
+cause, répondit modestement Candide; tout est enchaîné
+nécessairement et arrangé pour le mieux. Il a fallu que je fusse
+chassé d'auprès de mademoiselle Cunégonde, que j'aie passé par
+les baguettes, et il faut que je demande mon pain, jusqu'à ce que
+je puisse en gagner; tout cela ne pouvait être autrement. Mon
+ami, lui dit l'orateur, croyez-vous que le pape soit
+l'antechrist? Je ne l'avais pas encore entendu dire, répondit
+Candide: mais qu'il le soit, ou qu'il ne le soit pas, je manque
+de pain. Tu ne mérites pas d'en manger, dit l'autre: va, coquin,
+va, misérable, ne m'approche de ta vie. La femme de l'orateur
+ayant mis la tête à la fenêtre, et avisant un homme qui doutait
+que le pape fût antechrist, lui répandit sur le chef un
+plein..... O ciel! à quel excès se porte le zèle de la religion
+dans les dames!
+
+Un homme qui n'avait point été baptisé, un bon anabaptiste, nommé
+Jacques, vit la manière cruelle et ignominieuse dont on traitait
+ainsi un de ses frères, un être à deux pieds sans plumes, qui
+avait une âme; il l'amena chez lui, le nettoya, lui donna du pain
+et de la bière, lui fit présent de deux florins, et voulut même
+lui apprendre à travailler dans ses manufactures aux étoffes de
+Perse qu'on fabrique en Hollande. Candide se prosternant presque
+devant lui, s'écriait: Maître Pangloss me l'avait bien dit que
+tout est au mieux dans ce monde, car je suis infiniment plus
+touché de votre extrême générosité que de la dureté de ce
+monsieur à manteau noir, et de madame son épouse.
+
+Le lendemain, en se promenant, il rencontra un gueux tout couvert
+de pustules, les yeux morts, le bout du nez rongé, la bouche de
+travers, les dents noires, et parlant de la gorge, tourmenté
+d'une toux violente, et crachant une dent à chaque effort.
+
+
+
+CHAPITRE IV.
+
+Comment Candide rencontra son ancien maître de philosophie, le
+docteur Pangloss, et ce qui en advint.
+
+
+Candide, plus ému encore de compassion que d'horreur, donna à cet
+épouvantable gueux les deux florins qu'il avait reçus de son
+honnête anabaptiste Jacques. Le fantôme le regarda fixement,
+versa des larmes, et sauta à son cou. Candide effrayé recule.
+Hélas! dit le misérable à l'autre misérable, ne reconnaissez-vous
+plus votre cher Pangloss? Qu'entends-je? vous, mon cher maître!
+vous, dans cet état horrible! quel malheur vous est-il donc
+arrivé? pourquoi n'êtes-vous plus dans le plus beau des châteaux?
+qu'est devenue mademoiselle Cunégonde, la perle des filles, le
+chef-d'oeuvre de la nature? Je n'en peux plus, dit Pangloss.
+Aussitôt Candide le mena dans l'étable de l'anabaptiste, où il
+lui fit manger un peu de pain; et quand Pangloss fut refait: Eh
+bien! lui dit-il, Cunégonde? Elle est morte, reprit l'autre.
+Candide s'évanouit à ce mot: son ami rappela ses sens avec un peu
+de mauvais vinaigre qui se trouva par hasard dans l'étable.
+Candide rouvre les yeux. Cunégonde est morte! Ah! meilleur des
+mondes, où êtes-vous? Mais de quelle maladie est-elle morte? ne
+serait-ce point de m'avoir vu chasser du beau château de monsieur
+son père à grands coups de pied? Non, dit Pangloss, elle a été
+éventrée par des soldats bulgares, après avoir été violée autant
+qu'on peut l'être; ils ont cassé la tête à monsieur le baron qui
+voulait la défendre; madame la baronne a été coupée en morceaux;
+mon pauvre pupille traité précisément comme sa soeur; et quant au
+château, il n'est pas resté pierre sur pierre, pas une grange,
+pas un mouton, pas un canard, pas un arbre; mais nous avons été
+bien vengés, car les Abares en ont fait autant dans une baronnie
+voisine qui appartenait à un seigneur bulgare.
+
+A ce discours, Candide s'évanouit encore; mais revenu à soi, et
+ayant dit tout ce qu'il devait dire, il s'enquit de la cause et
+de l'effet, et de la raison suffisante qui avait mis Pangloss
+dans un si piteux état. Hélas! dit l'autre, c'est l'amour:
+l'amour, le consolateur du genre humain, le conservateur de
+l'univers, l'âme de tous les êtres sensibles, le tendre amour.
+Hélas! dit Candide, je l'ai connu cet amour, ce souverain des
+coeurs, cette âme de notre âme; il ne m'a jamais valu qu'un
+baiser et vingt coups de pied au cul. Comment cette belle cause
+a-t-elle pu produire en vous un effet si abominable?
+
+Pangloss répondit en ces termes: O mon cher Candide! vous avez
+connu Paquette, cette jolie suivante de notre auguste baronne:
+j'ai goûté dans ses bras les délices du paradis, qui ont produit
+ces tourments d'enfer dont vous me voyez dévoré; elle en était
+infectée, elle en est peut-être morte. Paquette tenait ce
+présent d'un cordelier très savant qui avait remonté à la source,
+car il l'avait eu d'une vieille comtesse, qui l'avait reçu d'un
+capitaine de cavalerie, qui le devait à une marquise, qui le
+tenait d'un page, qui l'avait reçu d'un jésuite, qui, étant
+novice, l'avait eu en droite ligne d'un des compagnons de
+Christophe Colomb. Pour moi, je ne le donnerai à personne, car
+je me meurs.
+
+O Pangloss! s'écria Candide, voilà une étrange généalogie!
+n'est-ce pas le diable qui en fut la souche? Point du tout,
+répliqua ce grand homme; c'était une chose indispensable dans le
+meilleur des mondes, un ingrédient nécessaire; car si Colomb
+n'avait pas attrapé dans une île de l'Amérique cette maladie[1]
+qui empoisonne la source de la génération, qui souvent même
+empêche la génération, et qui est évidemment l'opposé du grand
+but de la nature, nous n'aurions ni le chocolat ni la cochenille;
+il faut encore observer que jusqu'aujourd'hui, dans notre
+continent, cette maladie nous est particulière, comme la
+controverse. Les Turcs, les Indiens, les Persans, les Chinois,
+les Siamois, les Japonais, ne la connaissent pas encore; mais il
+y a une raison suffisante pour qu'ils la connaissent à leur tour
+dans quelques siècles. En attendant elle a fait un merveilleux
+progrès parmi nous, et surtout dans ces grandes armées composées
+d'honnêtes stipendiaires bien élevés, qui décident du destin des
+états; on peut assurer que, quand trente mille hommes combattent
+en bataille rangée contre des troupes égales en nombre, il y a
+environ vingt mille vérolés de chaque côté.
+
+ [1] Voyez tome XXXI, page 7. B.
+
+
+Voilà qui est admirable, dit Candide; mais il faut vous faire
+guérir. Et comment le puis-je? dit Pangloss; je n'ai pas le sou,
+mon ami, et dans toute l'étendue de ce globe on ne peut ni se
+faire saigner, ni prendre un lavement sans payer, ou sans qu'il y
+ait quelqu'un qui paie pour nous.
+
+Ce dernier discours détermina Candide; il alla se jeter aux pieds
+de son charitable anabaptiste Jacques, et lui fit une peinture si
+touchante de l'état où son ami était réduit, que le bon-homme
+n'hésita pas à recueillir le docteur Pangloss; il le fit guérir à
+ses dépens. Pangloss, dans la cure, ne perdit qu'un oeil et une
+oreille. Il écrivait bien, et savait parfaitement
+l'arithmétique. L'anabaptiste Jacques en fit son teneur de
+livres. Au bout de deux mois, étant obligé d'aller à Lisbonne
+pour les affaires de son commerce, il mena dans son vaisseau ses
+deux philosophes. Pangloss lui expliqua comment tout était on ne
+peut mieux. Jacques n'était pas de cet avis. Il faut bien,
+disait-il, que les hommes aient un peu corrompu la nature, car
+ils ne sont point nés loups, et ils sont devenus loups. Dieu ne
+leur a donné ni canons de vingt-quatre, ni baïonnettes, et ils se
+sont fait des baïonnettes et des canons pour se détruire. Je
+pourrais mettre en ligne de compte les banqueroutes, et la
+justice qui s'empare des biens des banqueroutiers pour en
+frustrer les créanciers. Tout cela était indispensable,
+répliquait le docteur borgne, et les malheurs particuliers font
+le bien général; de sorte que plus il y a de malheurs
+particuliers, et plus tout est bien. Tandis qu'il raisonnait,
+l'air s'obscurcit, les vents soufflèrent des quatre coins du
+monde, et le vaisseau fut assailli de la plus horrible tempête, à
+la vue du port de Lisbonne.
+
+
+CHAPITRE V.
+
+Tempête, naufrage, tremblement de terre, et ce qui advint du
+docteur Pangloss, de Candide, et de l'anabaptiste Jacques.
+
+La moitié des passagers affaiblis, expirants de ces angoisses
+inconcevables que le roulis d'un vaisseau porte dans les nerfs et
+dans toutes les humeurs du corps agitées en sens contraires,
+n'avait pas même la force de s'inquiéter du danger. L'autre
+moitié jetait des cris et fesait des prières; les voiles étaient
+déchirées, les mâts brisés, le vaisseau entr'ouvert. Travaillait
+qui pouvait, personne ne s'entendait, personne ne commandait.
+L'anabaptiste aidait un peu à la manoeuvre; il était sur le
+tillac; un matelot furieux le frappe rudement et l'étend sur les
+planches; mais du coup qu'il lui donna, il eut lui-même une si
+violente secousse, qu'il tomba hors du vaisseau, la tête la
+première. Il restait suspendu et accroché à une partie de mât
+rompu. Le bon Jacques court à son secours, l'aide à remonter, et
+de l'effort qu'il fait, il est précipité dans la mer à la vue du
+matelot, qui le laissa périr sans daigner seulement le regarder.
+Candide approche, voit son bienfaiteur qui reparaît un moment, et
+qui est englouti pour jamais. Il veut se jeter après lui dans la
+mer: le philosophe Pangloss l'en empêche, en lui prouvant que la
+rade de Lisbonne avait été formée exprès pour que cet anabaptiste
+s'y noyât. Tandis qu'il le prouvait _à priori_, le vaisseau
+s'entr'ouvre, tout périt à la réserve de Pangloss, de Candide, et
+de ce brutal de matelot qui avait noyé le vertueux anabaptiste;
+le coquin nagea heureusement jusqu'au rivage, où Pangloss et
+Candide furent portés sur une planche.
+
+Quand ils furent revenus un peu à eux, ils marchèrent vers
+Lisbonne; il leur restait quelque argent, avec lequel ils
+espéraient se sauver de la faim après avoir échappé à la tempête.
+
+A peine ont-ils mis le pied dans la ville, en pleurant la mort de
+leur bienfaiteur, qu'ils sentent la terre trembler sous leurs
+pas[1]; la mer s'élève en bouillonnant dans le port, et brise les
+vaisseaux qui sont à l'ancre. Des tourbillons de flammes et de
+cendres couvrent les rues et les places publiques; les maisons
+s'écroulent, les toits sont renversés sur les fondements, et les
+fondements se dispersent; trente mille habitants de tout âge et
+de tout sexe sont écrasés sous des ruines. Le matelot disait en
+sifflant et en jurant: il y aura quelque chose à gagner ici.
+Quelle peut être la raison suffisante de ce phénomène? disait
+Pangloss. Voici le dernier jour du monde! s'écriait Candide.
+Le matelot court incontinent au milieu des débris, affronte la
+mort pour trouver de l'argent, en trouve, s'en empare, s'enivre,
+et ayant cuvé son vin, achète les faveurs de la première fille de
+bonne volonté qu'il rencontre sur les ruines des maisons
+détruites, et au milieu des mourants et des morts. Pangloss le
+tirait cependant par la manche: Mon ami, lui disait-il, cela
+n'est pas bien, vous manquez à la raison universelle, vous prenez
+mal votre temps. Tête et sang, répondit l'autre, je suis matelot
+et né à Batavia; j'ai marché quatre fois sur le crucifix dans
+quatre voyages au Japon[2]; tu as bien trouvé ton homme avec ta
+raison universelle!
+
+
+ [1] Le tremblement de terre de Lisbonne est du 1er novembre 1755.
+ B.
+
+ [2] Voyez tome XVIII, page 470. B.
+
+
+Quelques éclats de pierre avaient blessé Candide; il était étendu
+dans la rue et couvert de débris. Il disait à Pangloss: Hélas!
+procure-moi un peu de vin et d'huile; je me meurs. Ce
+tremblement de terre n'est pas une chose nouvelle, répondit
+Pangloss; la ville de Lima éprouva les mêmes secousses en
+Amérique l'année passée; mêmes causes, mêmes effets; il y a
+certainement une traînée de soufre sous terre depuis Lima jusqu'à
+Lisbonne. Rien n'est plus probable, dit Candide; mais, pour
+Dieu, un peu d'huile et de vin. Comment probable? répliqua le
+philosophe, je soutiens que la chose est démontrée. Candide
+perdit connaissance, et Pangloss lui apporta un peu d'eau d'une
+fontaine voisine.
+
+Le lendemain, ayant trouvé quelques provisions de bouche en se
+glissant à travers des décombres, ils réparèrent un peu leurs
+forces. Ensuite ils travaillèrent comme les autres à soulager
+les habitants échappés à la mort. Quelques citoyens, secourus
+par eux, leur donnèrent un aussi bon dîner qu'on le pouvait dans
+un tel désastre: il est vrai que le repas était triste; les
+convives arrosaient leur pain de leurs larmes; mais Pangloss les
+consola, en les assurant que les choses ne pouvaient être
+autrement: Car, dit-il, tout ceci est ce qu'il y a de mieux; car
+s'il y a un volcan à Lisbonne, il ne pouvait être ailleurs; car
+il est impossible que les choses ne soient pas où elles sont, car
+tout est bien.
+
+Un petit homme noir, familier de l'inquisition, lequel était à
+côté de lui, prit poliment la parole et dit: Apparemment que
+monsieur ne croit pas au péché originel; car si tout est au
+mieux, il n'y a donc eu ni chute ni punition.
+
+Je demande très humblement pardon à votre excellence, répondit
+Pangloss encore plus poliment, car la chute de l'homme et la
+malédiction entraient nécessairement dans le meilleur des mondes
+possibles. Monsieur ne croit donc pas à la liberté? dit le
+familier. Votre excellence m'excusera, dit Pangloss; la liberté
+peut subsister avec la nécessité absolue; car il était nécessaire
+que nous fussions libres; car enfin la volonté déterminée......
+Pangloss était au milieu de sa phrase, quand Je familier fit un
+signe de tête à son estafier qui lui servait à boire du vin de
+Porto ou d'Oporto.
diff --git a/vendor/golang.org/x/text/encoding/testdata/candide-windows-1252.txt b/vendor/golang.org/x/text/encoding/testdata/candide-windows-1252.txt
new file mode 100644
index 0000000..1f8f9ea
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/testdata/candide-windows-1252.txt
@@ -0,0 +1,510 @@
+This file was derived from
+http://www.gutenberg.org/cache/epub/4650/pg4650.txt
+--------
+
+ CANDIDE,
+
+ ou
+
+ L'OPTIMISME,
+
+ TRADUIT DE L'ALLEMAND
+
+ DE M. LE DOCTEUR RALPH,
+
+ AVEC LES ADDITIONS
+
+ QU'ON A TROUVES DANS LA POCHE DU DOCTEUR, LORSQU'IL MOURUT
+
+ MINDEN, L'AN DE GRCE 1759
+
+ 1759
+
+
+
+CHAPITRE I.
+
+Comment Candide fut lev dans un beau chteau, et comment il fut
+chass d'icelui.
+
+Il y avait en Vestphalie, dans le chteau de M. le baron de
+Thunder-ten-tronckh, un jeune garon qui la nature avait donn
+les moeurs les plus douces. Sa physionomie annonait son me.
+Il avait le jugement assez droit, avec l'esprit le plus simple;
+c'est, je crois, pour cette raison qu'on le nommait Candide. Les
+anciens domestiques de la maison souponnaient qu'il tait fils
+de la soeur de monsieur le baron et d'un bon et honnte
+gentilhomme du voisinage, que cette demoiselle ne voulut jamais
+pouser parce qu'il n'avait pu prouver que soixante et onze
+quartiers, et que le reste de son arbre gnalogique avait t
+perdu par l'injure du temps.
+
+Monsieur le baron tait un des plus puissants seigneurs de la
+Westphalie, car son chteau avait une porte et des fentres. Sa
+grande salle mme tait orne d'une tapisserie. Tous les chiens
+de ses basses-cours composaient une meute dans le besoin; ses
+palefreniers taient ses piqueurs; le vicaire du village tait
+son grand-aumnier. Ils l'appelaient tous monseigneur, et ils
+riaient quand il fesait des contes.
+
+Madame la baronne, qui pesait environ trois cent cinquante
+livres, s'attirait par l une trs grande considration, et
+fesait les honneurs de la maison avec une dignit qui la rendait
+encore plus respectable. Sa fille Cungonde, ge de dix-sept
+ans, tait haute en couleur, frache, grasse, apptissante. Le
+fils du baron paraissait en tout digne de son pre. Le
+prcepteur Pangloss[1] tait l'oracle de la maison, et le petit
+Candide coutait ses leons avec toute la bonne foi de son ge et
+de son caractre.
+
+ [1] De _pan_, tout, et _glossa_, langue. B.
+
+
+Pangloss enseignait la mtaphysico-thologo-cosmolonigologie. Il
+prouvait admirablement qu'il n'y a point d'effet sans cause, et
+que, dans ce meilleur des mondes possibles, le chteau de
+monseigneur le baron tait le plus beau des chteaux, et madame
+la meilleure des baronnes possibles.
+
+Il est dmontr, disait-il, que les choses ne peuvent tre
+autrement; car tout tant fait pour une fin, tout est
+ncessairement pour la meilleure fin. Remarquez bien que les nez
+ont t faits pour porter des lunettes; aussi avons-nous des
+lunettes[2]. Les jambes sont visiblement institues pour tre
+chausses, et nous avons des chausses. Les pierres ont t
+formes pour tre tailles et pour en faire des chteaux; aussi
+monseigneur a un trs beau chteau: le plus grand baron de la
+province doit tre le mieux log; et les cochons tant faits pour
+tre mangs, nous mangeons du porc toute l'anne: par consquent,
+ceux qui ont avanc que tout est bien ont dit une sottise; il
+fallait dire que tout est au mieux.
+
+ [2] Voyez tome XXVII, page 528; et dans les _Mlanges_, anne
+ 1738, le chapitre XI de la troisime partie des _lments de la
+ philosophie de Newton_; et anne 1768, le chapitre X des
+ _Singularits de la nature_. B.
+
+
+Candide coutait attentivement, et croyait innocemment; car il
+trouvait mademoiselle Cungonde extrmement belle, quoiqu'il ne
+prt jamais la hardiesse de le lui dire. Il concluait qu'aprs
+le bonheur d'tre n baron de Thunder-ten-tronckh, le second
+degr de bonheur tait d'tre mademoiselle Cungonde; le
+troisime, de la voir tous les jours; et le quatrime, d'entendre
+matre Pangloss, le plus grand philosophe de la province, et par
+consquent de toute la terre.
+
+Un jour Cungonde, en se promenant auprs du chteau, dans le
+petit bois qu'on appelait parc, vit entre des broussailles le
+docteur Pangloss qui donnait une leon de physique exprimentale
+ la femme de chambre de sa mre, petite brune trs jolie et trs
+docile. Comme mademoiselle Cungonde avait beaucoup de
+disposition pour les sciences, elle observa, sans souffler, les
+expriences ritres dont elle fut tmoin; elle vit clairement
+la raison suffisante du docteur, les effets et les causes, et
+s'en retourna tout agite, toute pensive, toute remplie du dsir
+d'tre savante, songeant qu'elle pourrait bien tre la raison
+suffisante du jeune Candide, qui pouvait aussi tre la sienne.
+
+Elle rencontra Candide en revenant au chteau, et rougit: Candide
+rougit aussi . Elle lui dit bonjour d'une voix entrecoupe; et
+Candide lui parla sans savoir ce qu'il disait. Le lendemain,
+aprs le dner, comme on sortait de table, Cungonde et Candide
+se trouvrent derrire un paravent; Cungonde laissa tomber son
+mouchoir, Candide le ramassa; elle lui prit innocemment la main;
+le jeune homme baisa innocemment la main de la jeune demoiselle
+avec une vivacit, une sensibilit, une grce toute particulire;
+leurs bouches se rencontrrent, leurs yeux s'enflammrent, leurs
+genoux tremblrent, leurs mains s'garrent. M. le baron de
+Thunder-ten-tronckh passa auprs du paravent, et voyant cette
+cause et cet effet, chassa Candide du chteau grands coups de
+pied dans le derrire. Cungonde s'vanouit: elle fut soufflete
+par madame la baronne ds qu'elle fut revenue elle-mme; et
+tout fut constern dans le plus beau et le plus agrable des
+chteaux possibles.
+
+
+
+CHAPITRE II
+
+Ce que devint Candide parmi les Bulgares.
+
+
+Candide, chass du paradis terrestre, marcha longtemps sans
+savoir o, pleurant, levant les yeux au ciel, les tournant
+souvent vers le plus beau des chteaux qui renfermait la plus
+belle des baronnettes; il se coucha sans souper au milieu des
+champs entre deux sillons; la neige tombait gros flocons.
+Candide, tout transi, se trana le lendemain vers la ville
+voisine, qui s'appelle _Valdberghoff-trarbk-dikdorff_, n'ayant
+point d'argent, mourant de faim et de lassitude. Il s'arrta
+tristement la porte d'un cabaret. Deux hommes habills de bleu
+le remarqurent: Camarade, dit l'un, voil un jeune homme trs
+bien fait, et qui a la taille requise; ils s'avancrent vers
+Candide et le prirent dner trs civilement.--Messieurs, leur
+dit Candide avec une modestie charmante, vous me faites beaucoup
+d'honneur, mais je n'ai pas de quoi payer mon cot.--Ah!
+monsieur, lui dit un des bleus, les personnes de votre figure et
+de votre mrite ne paient jamais rien: n'avez-vous pas cinq pieds
+cinq pouces de haut?--Oui, messieurs, c'est ma taille, dit-il en
+fesant la rvrence.--Ah! monsieur, mettez-vous table; non
+seulement nous vous dfraierons, mais nous ne souffrirons jamais
+qu'un homme comme vous manque d'argent; les hommes ne sont faits
+que pour se secourir les uns les autres.--Vous avez raison, dit
+Candide; c'est ce que M. Pangloss m'a toujours dit, et je vois
+bien que tout est au mieux. On le prie d'accepter quelques cus,
+il les prend et veut faire son billet; on n'en veut point, on se
+met table. N'aimez-vous pas tendrement?....--Oh! oui,
+rpond-il, j'aime tendrement mademoiselle Cungonde.--Non, dit
+l'un de ces messieurs, nous vous demandons si vous n'aimez pas
+tendrement le roi des Bulgares?--Point du tout, dit-il, car je ne
+l'ai jamais vu.--Comment! c'est le plus charmant des rois, et il
+faut boire sa sant.--Oh! trs volontiers, messieurs. Et il
+boit. C'en est assez, lui dit-on, vous voil l'appui, le
+soutien, le dfenseur, le hros des Bulgares; votre fortune est
+faite, et votre gloire est assure. On lui met sur-le-champ les
+fers aux pieds, et on le mne au rgiment. On le fait tourner
+droite, gauche, hausser la baguette, remettre la baguette,
+coucher en joue, tirer, doubler le pas, et on lui donne trente
+coups de bton; le lendemain, il fait l'exercice un peu moins
+mal, et il ne reoit que vingt coups; le surlendemain, on ne lui
+en donne que dix, et il est regard par ses camarades comme un
+prodige.
+
+Candide, tout stupfait, ne dmlait pas encore trop bien comment
+il tait un hros. Il s'avisa un beau jour de printemps de
+s'aller promener, marchant tout droit devant lui, croyant que
+c'tait un privilge de l'espce humaine, comme de l'espce
+animale, de se servir de ses jambes son plaisir. Il n'eut pas
+fait deux lieues que voil quatre autres hros de six pieds qui
+l'atteignent, qui le lient, qui le mnent dans un cachot. On lui
+demanda juridiquement ce qu'il aimait le mieux d'tre fustig
+trente-six fois par tout le rgiment, ou de recevoir -la-fois
+douze balles de plomb dans la cervelle. Il eut beau dire que les
+volonts sont libres, et qu'il ne voulait ni l'un ni l'autre, il
+fallut faire un choix; il se dtermina, en vertu du don de Dieu
+qu'on nomme _libert_, passer trente-six fois par les
+baguettes; il essuya deux promenades. Le rgiment tait compos
+de deux mille hommes; cela lui composa quatre mille coups de
+baguette, qui, depuis la nuque du cou jusqu'au cul, lui
+dcouvrirent les muscles et les nerfs. Comme on allait procder
+ la troisime course, Candide, n'en pouvant plus, demanda en
+grce qu'on voult bien avoir la bont de lui casser la tte; il
+obtint cette faveur; on lui bande les yeux; on le fait mettre
+genoux. Le roi des Bulgares passe dans ce moment, s'informe du
+crime du patient; et comme ce roi avait un grand gnie, il
+comprit, par tout ce qu'il apprit de Candide, que c'tait un
+jeune mtaphysicien fort ignorant des choses de ce monde, et il
+lui accorda sa grce avec une clmence qui sera loue dans tous
+les journaux et dans tous les sicles. Un brave chirurgien
+gurit Candide en trois semaines avec les mollients enseigns
+par Dioscoride. Il avait dj un peu de peau et pouvait marcher,
+quand le roi des Bulgares livra bataille au roi des Abares.
+
+
+
+CHAPITRE III.
+
+Comment Candide se sauva d'entre les Bulgares, et ce qu'il
+devint.
+
+
+Rien n'tait si beau, si leste, si brillant, si bien ordonn que
+les deux armes. Les trompettes, les fifres, les hautbois, les
+tambours, les canons; formaient une harmonie telle qu'il n'y en
+eut jamais en enfer. Les canons renversrent d'abord peu prs
+six mille hommes de chaque ct; ensuite la mousqueterie ta du
+meilleur des mondes environ neuf dix mille coquins qui en
+infectaient la surface. La baonnette fut aussi la raison
+suffisante de la mort de quelques milliers d'hommes. Le tout
+pouvait bien se monter une trentaine de mille mes. Candide,
+qui tremblait comme un philosophe, se cacha du mieux qu'il put
+pendant cette boucherie hroque.
+
+Enfin, tandis que les deux rois fesaient chanter des _Te Deum_,
+chacun dans son camp, il prit le parti d'aller raisonner ailleurs
+des effets et des causes. Il passa par-dessus des tas de morts
+et de mourants, et gagna d'abord un village voisin; il tait en
+cendres: c'tait un village abare que les Bulgares avaient brl,
+selon les lois du droit public. Ici des vieillards cribls de
+coups regardaient mourir leurs femmes gorges, qui tenaient
+leurs enfants leurs mamelles sanglantes; l des filles
+ventres aprs avoir assouvi les besoins naturels de quelques
+hros, rendaient les derniers soupirs; d'autres demi brles
+criaient qu'on achevt de leur donner la mort. Des cervelles
+taient rpandues sur la terre ct de bras et de jambes
+coups.
+
+Candide s'enfuit au plus vite dans un autre village: il
+appartenait des Bulgares, et les hros abares l'avaient trait
+de mme. Candide, toujours marchant sur des membres palpitants
+ou travers des ruines, arriva enfin hors du thtre de la
+guerre, portant quelques petites provisions dans son bissac, et
+n'oubliant jamais mademoiselle Cungonde. Ses provisions lui
+manqurent quand il fut en Hollande; mais ayant entendu dire que
+tout le monde tait riche dans ce pays-l, et qu'on y tait
+chrtien, il ne douta pas qu'on ne le traitt aussi bien qu'il
+l'avait t dans le chteau de M. le baron, avant qu'il en et
+t chass pour les beaux yeux de mademoiselle Cungonde.
+
+Il demanda l'aumne plusieurs graves personnages, qui lui
+rpondirent tous que, s'il continuait faire ce mtier, on
+l'enfermerait dans une maison de correction pour lui apprendre
+vivre.
+
+Il s'adressa ensuite un homme qui venait de parler tout seul
+une heure de suite sur la charit dans une grande assemble. Cet
+orateur le regardant de travers lui dit: Que venez-vous faire
+ici? y tes-vous pour la bonne cause? Il n'y a point d'effet sans
+cause, rpondit modestement Candide; tout est enchan
+ncessairement et arrang pour le mieux. Il a fallu que je fusse
+chass d'auprs de mademoiselle Cungonde, que j'aie pass par
+les baguettes, et il faut que je demande mon pain, jusqu' ce que
+je puisse en gagner; tout cela ne pouvait tre autrement. Mon
+ami, lui dit l'orateur, croyez-vous que le pape soit
+l'antechrist? Je ne l'avais pas encore entendu dire, rpondit
+Candide: mais qu'il le soit, ou qu'il ne le soit pas, je manque
+de pain. Tu ne mrites pas d'en manger, dit l'autre: va, coquin,
+va, misrable, ne m'approche de ta vie. La femme de l'orateur
+ayant mis la tte la fentre, et avisant un homme qui doutait
+que le pape ft antechrist, lui rpandit sur le chef un
+plein..... O ciel! quel excs se porte le zle de la religion
+dans les dames!
+
+Un homme qui n'avait point t baptis, un bon anabaptiste, nomm
+Jacques, vit la manire cruelle et ignominieuse dont on traitait
+ainsi un de ses frres, un tre deux pieds sans plumes, qui
+avait une me; il l'amena chez lui, le nettoya, lui donna du pain
+et de la bire, lui fit prsent de deux florins, et voulut mme
+lui apprendre travailler dans ses manufactures aux toffes de
+Perse qu'on fabrique en Hollande. Candide se prosternant presque
+devant lui, s'criait: Matre Pangloss me l'avait bien dit que
+tout est au mieux dans ce monde, car je suis infiniment plus
+touch de votre extrme gnrosit que de la duret de ce
+monsieur manteau noir, et de madame son pouse.
+
+Le lendemain, en se promenant, il rencontra un gueux tout couvert
+de pustules, les yeux morts, le bout du nez rong, la bouche de
+travers, les dents noires, et parlant de la gorge, tourment
+d'une toux violente, et crachant une dent chaque effort.
+
+
+
+CHAPITRE IV.
+
+Comment Candide rencontra son ancien matre de philosophie, le
+docteur Pangloss, et ce qui en advint.
+
+
+Candide, plus mu encore de compassion que d'horreur, donna cet
+pouvantable gueux les deux florins qu'il avait reus de son
+honnte anabaptiste Jacques. Le fantme le regarda fixement,
+versa des larmes, et sauta son cou. Candide effray recule.
+Hlas! dit le misrable l'autre misrable, ne reconnaissez-vous
+plus votre cher Pangloss? Qu'entends-je? vous, mon cher matre!
+vous, dans cet tat horrible! quel malheur vous est-il donc
+arriv? pourquoi n'tes-vous plus dans le plus beau des chteaux?
+qu'est devenue mademoiselle Cungonde, la perle des filles, le
+chef-d'oeuvre de la nature? Je n'en peux plus, dit Pangloss.
+Aussitt Candide le mena dans l'table de l'anabaptiste, o il
+lui fit manger un peu de pain; et quand Pangloss fut refait: Eh
+bien! lui dit-il, Cungonde? Elle est morte, reprit l'autre.
+Candide s'vanouit ce mot: son ami rappela ses sens avec un peu
+de mauvais vinaigre qui se trouva par hasard dans l'table.
+Candide rouvre les yeux. Cungonde est morte! Ah! meilleur des
+mondes, o tes-vous? Mais de quelle maladie est-elle morte? ne
+serait-ce point de m'avoir vu chasser du beau chteau de monsieur
+son pre grands coups de pied? Non, dit Pangloss, elle a t
+ventre par des soldats bulgares, aprs avoir t viole autant
+qu'on peut l'tre; ils ont cass la tte monsieur le baron qui
+voulait la dfendre; madame la baronne a t coupe en morceaux;
+mon pauvre pupille trait prcisment comme sa soeur; et quant au
+chteau, il n'est pas rest pierre sur pierre, pas une grange,
+pas un mouton, pas un canard, pas un arbre; mais nous avons t
+bien vengs, car les Abares en ont fait autant dans une baronnie
+voisine qui appartenait un seigneur bulgare.
+
+A ce discours, Candide s'vanouit encore; mais revenu soi, et
+ayant dit tout ce qu'il devait dire, il s'enquit de la cause et
+de l'effet, et de la raison suffisante qui avait mis Pangloss
+dans un si piteux tat. Hlas! dit l'autre, c'est l'amour:
+l'amour, le consolateur du genre humain, le conservateur de
+l'univers, l'me de tous les tres sensibles, le tendre amour.
+Hlas! dit Candide, je l'ai connu cet amour, ce souverain des
+coeurs, cette me de notre me; il ne m'a jamais valu qu'un
+baiser et vingt coups de pied au cul. Comment cette belle cause
+a-t-elle pu produire en vous un effet si abominable?
+
+Pangloss rpondit en ces termes: O mon cher Candide! vous avez
+connu Paquette, cette jolie suivante de notre auguste baronne:
+j'ai got dans ses bras les dlices du paradis, qui ont produit
+ces tourments d'enfer dont vous me voyez dvor; elle en tait
+infecte, elle en est peut-tre morte. Paquette tenait ce
+prsent d'un cordelier trs savant qui avait remont la source,
+car il l'avait eu d'une vieille comtesse, qui l'avait reu d'un
+capitaine de cavalerie, qui le devait une marquise, qui le
+tenait d'un page, qui l'avait reu d'un jsuite, qui, tant
+novice, l'avait eu en droite ligne d'un des compagnons de
+Christophe Colomb. Pour moi, je ne le donnerai personne, car
+je me meurs.
+
+O Pangloss! s'cria Candide, voil une trange gnalogie!
+n'est-ce pas le diable qui en fut la souche? Point du tout,
+rpliqua ce grand homme; c'tait une chose indispensable dans le
+meilleur des mondes, un ingrdient ncessaire; car si Colomb
+n'avait pas attrap dans une le de l'Amrique cette maladie[1]
+qui empoisonne la source de la gnration, qui souvent mme
+empche la gnration, et qui est videmment l'oppos du grand
+but de la nature, nous n'aurions ni le chocolat ni la cochenille;
+il faut encore observer que jusqu'aujourd'hui, dans notre
+continent, cette maladie nous est particulire, comme la
+controverse. Les Turcs, les Indiens, les Persans, les Chinois,
+les Siamois, les Japonais, ne la connaissent pas encore; mais il
+y a une raison suffisante pour qu'ils la connaissent leur tour
+dans quelques sicles. En attendant elle a fait un merveilleux
+progrs parmi nous, et surtout dans ces grandes armes composes
+d'honntes stipendiaires bien levs, qui dcident du destin des
+tats; on peut assurer que, quand trente mille hommes combattent
+en bataille range contre des troupes gales en nombre, il y a
+environ vingt mille vrols de chaque ct.
+
+ [1] Voyez tome XXXI, page 7. B.
+
+
+Voil qui est admirable, dit Candide; mais il faut vous faire
+gurir. Et comment le puis-je? dit Pangloss; je n'ai pas le sou,
+mon ami, et dans toute l'tendue de ce globe on ne peut ni se
+faire saigner, ni prendre un lavement sans payer, ou sans qu'il y
+ait quelqu'un qui paie pour nous.
+
+Ce dernier discours dtermina Candide; il alla se jeter aux pieds
+de son charitable anabaptiste Jacques, et lui fit une peinture si
+touchante de l'tat o son ami tait rduit, que le bon-homme
+n'hsita pas recueillir le docteur Pangloss; il le fit gurir
+ses dpens. Pangloss, dans la cure, ne perdit qu'un oeil et une
+oreille. Il crivait bien, et savait parfaitement
+l'arithmtique. L'anabaptiste Jacques en fit son teneur de
+livres. Au bout de deux mois, tant oblig d'aller Lisbonne
+pour les affaires de son commerce, il mena dans son vaisseau ses
+deux philosophes. Pangloss lui expliqua comment tout tait on ne
+peut mieux. Jacques n'tait pas de cet avis. Il faut bien,
+disait-il, que les hommes aient un peu corrompu la nature, car
+ils ne sont point ns loups, et ils sont devenus loups. Dieu ne
+leur a donn ni canons de vingt-quatre, ni baonnettes, et ils se
+sont fait des baonnettes et des canons pour se dtruire. Je
+pourrais mettre en ligne de compte les banqueroutes, et la
+justice qui s'empare des biens des banqueroutiers pour en
+frustrer les cranciers. Tout cela tait indispensable,
+rpliquait le docteur borgne, et les malheurs particuliers font
+le bien gnral; de sorte que plus il y a de malheurs
+particuliers, et plus tout est bien. Tandis qu'il raisonnait,
+l'air s'obscurcit, les vents soufflrent des quatre coins du
+monde, et le vaisseau fut assailli de la plus horrible tempte,
+la vue du port de Lisbonne.
+
+
+CHAPITRE V.
+
+Tempte, naufrage, tremblement de terre, et ce qui advint du
+docteur Pangloss, de Candide, et de l'anabaptiste Jacques.
+
+La moiti des passagers affaiblis, expirants de ces angoisses
+inconcevables que le roulis d'un vaisseau porte dans les nerfs et
+dans toutes les humeurs du corps agites en sens contraires,
+n'avait pas mme la force de s'inquiter du danger. L'autre
+moiti jetait des cris et fesait des prires; les voiles taient
+dchires, les mts briss, le vaisseau entr'ouvert. Travaillait
+qui pouvait, personne ne s'entendait, personne ne commandait.
+L'anabaptiste aidait un peu la manoeuvre; il tait sur le
+tillac; un matelot furieux le frappe rudement et l'tend sur les
+planches; mais du coup qu'il lui donna, il eut lui-mme une si
+violente secousse, qu'il tomba hors du vaisseau, la tte la
+premire. Il restait suspendu et accroch une partie de mt
+rompu. Le bon Jacques court son secours, l'aide remonter, et
+de l'effort qu'il fait, il est prcipit dans la mer la vue du
+matelot, qui le laissa prir sans daigner seulement le regarder.
+Candide approche, voit son bienfaiteur qui reparat un moment, et
+qui est englouti pour jamais. Il veut se jeter aprs lui dans la
+mer: le philosophe Pangloss l'en empche, en lui prouvant que la
+rade de Lisbonne avait t forme exprs pour que cet anabaptiste
+s'y noyt. Tandis qu'il le prouvait _ priori_, le vaisseau
+s'entr'ouvre, tout prit la rserve de Pangloss, de Candide, et
+de ce brutal de matelot qui avait noy le vertueux anabaptiste;
+le coquin nagea heureusement jusqu'au rivage, o Pangloss et
+Candide furent ports sur une planche.
+
+Quand ils furent revenus un peu eux, ils marchrent vers
+Lisbonne; il leur restait quelque argent, avec lequel ils
+espraient se sauver de la faim aprs avoir chapp la tempte.
+
+A peine ont-ils mis le pied dans la ville, en pleurant la mort de
+leur bienfaiteur, qu'ils sentent la terre trembler sous leurs
+pas[1]; la mer s'lve en bouillonnant dans le port, et brise les
+vaisseaux qui sont l'ancre. Des tourbillons de flammes et de
+cendres couvrent les rues et les places publiques; les maisons
+s'croulent, les toits sont renverss sur les fondements, et les
+fondements se dispersent; trente mille habitants de tout ge et
+de tout sexe sont crass sous des ruines. Le matelot disait en
+sifflant et en jurant: il y aura quelque chose gagner ici.
+Quelle peut tre la raison suffisante de ce phnomne? disait
+Pangloss. Voici le dernier jour du monde! s'criait Candide.
+Le matelot court incontinent au milieu des dbris, affronte la
+mort pour trouver de l'argent, en trouve, s'en empare, s'enivre,
+et ayant cuv son vin, achte les faveurs de la premire fille de
+bonne volont qu'il rencontre sur les ruines des maisons
+dtruites, et au milieu des mourants et des morts. Pangloss le
+tirait cependant par la manche: Mon ami, lui disait-il, cela
+n'est pas bien, vous manquez la raison universelle, vous prenez
+mal votre temps. Tte et sang, rpondit l'autre, je suis matelot
+et n Batavia; j'ai march quatre fois sur le crucifix dans
+quatre voyages au Japon[2]; tu as bien trouv ton homme avec ta
+raison universelle!
+
+
+ [1] Le tremblement de terre de Lisbonne est du 1er novembre 1755.
+ B.
+
+ [2] Voyez tome XVIII, page 470. B.
+
+
+Quelques clats de pierre avaient bless Candide; il tait tendu
+dans la rue et couvert de dbris. Il disait Pangloss: Hlas!
+procure-moi un peu de vin et d'huile; je me meurs. Ce
+tremblement de terre n'est pas une chose nouvelle, rpondit
+Pangloss; la ville de Lima prouva les mmes secousses en
+Amrique l'anne passe; mmes causes, mmes effets; il y a
+certainement une trane de soufre sous terre depuis Lima jusqu'
+Lisbonne. Rien n'est plus probable, dit Candide; mais, pour
+Dieu, un peu d'huile et de vin. Comment probable? rpliqua le
+philosophe, je soutiens que la chose est dmontre. Candide
+perdit connaissance, et Pangloss lui apporta un peu d'eau d'une
+fontaine voisine.
+
+Le lendemain, ayant trouv quelques provisions de bouche en se
+glissant travers des dcombres, ils rparrent un peu leurs
+forces. Ensuite ils travaillrent comme les autres soulager
+les habitants chapps la mort. Quelques citoyens, secourus
+par eux, leur donnrent un aussi bon dner qu'on le pouvait dans
+un tel dsastre: il est vrai que le repas tait triste; les
+convives arrosaient leur pain de leurs larmes; mais Pangloss les
+consola, en les assurant que les choses ne pouvaient tre
+autrement: Car, dit-il, tout ceci est ce qu'il y a de mieux; car
+s'il y a un volcan Lisbonne, il ne pouvait tre ailleurs; car
+il est impossible que les choses ne soient pas o elles sont, car
+tout est bien.
+
+Un petit homme noir, familier de l'inquisition, lequel tait
+ct de lui, prit poliment la parole et dit: Apparemment que
+monsieur ne croit pas au pch originel; car si tout est au
+mieux, il n'y a donc eu ni chute ni punition.
+
+Je demande trs humblement pardon votre excellence, rpondit
+Pangloss encore plus poliment, car la chute de l'homme et la
+maldiction entraient ncessairement dans le meilleur des mondes
+possibles. Monsieur ne croit donc pas la libert? dit le
+familier. Votre excellence m'excusera, dit Pangloss; la libert
+peut subsister avec la ncessit absolue; car il tait ncessaire
+que nous fussions libres; car enfin la volont dtermine......
+Pangloss tait au milieu de sa phrase, quand Je familier fit un
+signe de tte son estafier qui lui servait boire du vin de
+Porto ou d'Oporto.
diff --git a/vendor/golang.org/x/text/encoding/testdata/rashomon-euc-jp.txt b/vendor/golang.org/x/text/encoding/testdata/rashomon-euc-jp.txt
new file mode 100644
index 0000000..7b03a99
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/testdata/rashomon-euc-jp.txt
@@ -0,0 +1,178 @@
+This file was derived from
+http://www.gutenberg.org/cache/epub/1982/pg1982.txt
+--------
+
+
+ζǷ
+
+λǤ롣ͤβͤβDZߤԤäƤ
+βˤϡˤγï⤤ʤ꡹ðɤ礭ʱˡ꤮
+ꤹɤȤޤäƤ롣礬ϩˤʾϡˤγˤ⡢
+򤹤Խޤ汨˹Ҥ⤦󻰿ͤϤꤽʤΤǤ롣줬ˤγ
+ï⤤ʤ
+ΤȱȡǯԤˤϡϿ̤ȤȤлȤȤ
+ĤŤƵäΤӤϰ̤Ǥʤ쵭ˤȡʩ
+ʩǺդơðĤꡢʤϤˤĤꤷڤϩФ
+Ĥ߽ŤͤƿŤʤˤäƤȱȤǤ롣椬λǤ뤫顢
+νʤɤϡïΤƤƸܤߤԤʤäȤιӤ̤Ƥ
+褤ˤơìʤˤࡣͤࡣȤȤޤˤϡ
+ʤͤ򡢤ػäơΤƤƹԤȱ褿ǡ
+ʤʤȡïǤⵤ̣򰭤äơζؤ­֤ߤ򤷤ʤˤʤ
+ƤޤäΤǤ롣
+褫餫󽸤ޤä褿ָȡȤ
+ؤơ⤤ʤӡˤΤޤƤʤ顢ӤޤäƤ롣
+ζͼƤǤʤˤϡ줬ޤ褦ˤϤä긫
+ϡξˤͤߤΤǤ롣⺣ϡ¤
+챩⸫ʤͣ꡹줫äƤܤĹ
+Ϥʤξˡʵʤˤ򤯤ӤĤƤΤ롣
+ϼʤʤΰ־ʤ餷βʤˤοơˤ˽
+褿礭⮡ʤˤӡˤ򵤤ˤʤ顢ܤꡢΤդΤįƤΤ
+롣
+ԤϤäֲͤߤԤäƤפȽ񤤤ͤϡ
+Ǥ̤ɤ褦ȱƤϤʤդʤ顢ͤβȤصĤȦǤ
+롣꤬μͤϡ͸˲ˤФ줿ˤ񤤤褦ˡԤ
+Įϰ̤ʤ餺ƤβͤǯȤƤͤˤФ
+줿Τ⡢οξ;Ȥ˳ʤʤ顢ֲͤߤԤäƤ
+ȱ⡢ֱˤդꤳ줿ͤԤ꤬ʤơˤƤפ
+ŬǤ롣ξ塢ζͤ⾯ʤ餺ʿīβͤ
+Sentimentalisme˱ƶʤˤιﲼ꤫դФϡ̤˾
+뤱ʤǡͤϡƤ⺹뤷ɤˤ
+ȤơФɤˤʤʤ򡢤ɤˤ褦ȤơȤȤʤ
+򤿤ɤʤ顢äϩˤդ뱫βʹȤʤʹƤ
+ĤĤǡ󤯤顢äȱ򤢤ĤƤ롣ͼǤϼ˶
+㤯ơ夲ȡβФˤĤФᰡʤ餫ˤˡŤ
+Ť٤Ƥ롣
+ɤˤʤʤ򡢤ɤˤ٤ˤϡʤǤʤȤޡˤϤʤ
+ǤСϡʤĤˤβƻФڤξǡʤˡˤ򤹤
+Ǥ롣ơξػäơΤ褦˼ΤƤƤޤФ
+Ǥ롣ФʤȤСͤιͤϡ٤Ʊƻˤȶˡä
+ζɽذ夷Ρ֤СפϡĤǤäƤ⡢ɡ֤Сפ
+äͤϡʤФʤȤꤷʤ⡢Ρ֤СפΤ
+Ĥ٤ˡθĤͤˤʤ곰˻ʤפȱ
+ѶŪ˹ꤹΡͦФˤΤǤ롣
+ͤ礭ʤˤ򤷤ơ줫顢絷Ω夬äͼ䤨Τ
+Ԥϡ⤦вߤδǤ롣Ȥδ֤ͼǤȶ˱θ
+ʤ᤭̤롣ðɤˤȤޤäƤ꤮ꤹ⡢⤦ɤعԤäƤޤ
+
+ͤϡ¤ʤ顢δΡʤߡˤ˽Ťͤβθ⤯
+Τޤ򸫤ޤ路δΤʤܤˤΤʤճڤˤͤ줽
+ʽ꤬СǤȤ⤫⡢ȻפäǤ롣ȡ
+ξϰؾ롢ιǷðɤäҤˤĤʤ顢ͤˤ
+Ƥ⡢ɤͤФǤ롣ͤϡǹˤʤҤŤˤ
+ʤ褦˵Ĥʤ顢Ϥ­򡢤Ҥΰֲʤؤ
+줫顢ʬθǤ롣ϰξؽФ롢ιҤʤˡ
+ˤǭΤ褦˿Ȥ¤ơ©򻦤ʤ顢ƻҤ򱮤äƤϰξ夫
+餵Фθˡˤαˤ̤餷Ƥ롣ûʤҤˤˡ
+֤ǿä⮤ΤˤǤ롣ͤϡϤᤫ顢ξˤԤϡͤФ
+ȹäƤ줬ҤʾäƸȡǤïФȤܤơ
+⤽βФ¶躡ưƤ餷ϡä
+򤫤ŷ΢ˡʤǤäΤǡˤΤ줿ΤǤ
+롣αˡξǡФȤ⤷Ƥ뤫ϡɤͣμԤǤϤ
+
+ͤϡܼʤˤΤ褦­̤ǡäȵޤҤ򡢰־ʤ
+礦褦ˤƾĤ᤿Τʿˤʤ顢
+ؽФơ붲롢ϰƸ
+ȡϰˤϡʹ̤ꡢĤλӳʤˤ̵¤˴Ƥ
+뤬ФθεڤϰϤפä궹ΤǡϴĤȤ狼ʤͣ
+ܤʤ顢ΤΤϡλӳȡʪ夿ӳȤȱ
+롣ˤϽˤޤäƤ餷ơλӳϳ줬
+ʤĤơˡƤʹ֤ȱ¤ڤԤͤ¤äͷ
+褦ˡ򳫤ꡢФꤷơξˤäƤ
+⡢ȤȤι⤯ʤäƤʬˡܤꤷФθ򤦤ơ㤯ʤä
+ʬαƤذŤʤ顢ʵפ˰ʤˤǡۤäƤ
+ͤϡλӳ।˻פ鷺ɡäʤäˡ
+μϡνִ֤ˤϡ⤦ɡ椦˺Ƥ붯ؼʤۤȤ
+ɤȤȤˤˤ̳ФåäƤޤäǤ롣
+ͤδϡλϤơ¶ӳäƤʤޤäƤ˿ʹ
+򸫤ȩʤҤϤˤʪؤ㤤餻ȱƬΡΤ褦
+Ϸ̤Ǥ롣Ϸ̤ϡμ˲ФȤ⤷Ҥäơλӳΰ
+δ褦įƤȱӤĹ򸫤ȡ¿ʬλӳǤ
+ͤϡϻʬζݤȻʬι񿴤ȤươûϸƵۡʤˤ򤹤Τ
+˺Ƥ쵭εԤθڤСƬȡʤȤˤӤפ褦˴
+ΤǤ롣ȡϷ̤ϡҤ򡢾Ĥδ֤ޤơ줫顢ޤį
+Ƥӳμξ򤫤ȡ١οƤλҤ͡ʤߡˤȤ褦
+ˡĹȱӤܤȴϤ᤿ȱϼ˽äȴ餷
+ȱӤܤȴΤ˽äƲͤοϡݤľäƹԤ
+ơƱˡϷ̤ФϤư褿
+䡢Ϸ̤ФȱäƤϡ뤫Τʤǫʤषˡ
+밭Фȿʬ˶褿ΤǤ롣λïβͤˡ
+äβǤˤͤƤʤˡˤ򤹤뤫ͤˤʤ뤫ȱ
+򡢲ƻФ顢餯ͤϡ̤ʤǤ
+ۤɡˤΰ࿴ϡϷ̤ξޤҤΤ褦ˡ褯dz
+ƤΤǤ롣
+ͤˤϡϷ̤ͤȱӤȴ狼ʤääơŪ
+ˤϡβҤŤƤ褤ΤʤäͤˤȤäƤϡ
+ˡξǡͤȱӤȴȱǴ˵
+餶밭Ǥäͤϡäʬͤˤʤ뵤Ǥʤϡ
+˺ƤΤǤ롣
+ǡͤϡξ­ϤơʤꡢҤӾ夬ä
+ʤҤŤˤ˼򤫤ʤ顢ԤϷ̤ߤäϷ̤
+äΤϡʤ
+Ϸ̤ϡܲͤ򸫤ȡޤ׸ʤߡˤˤǤƤ줿褦ˡӾ夬
+
+֤Τ졢ɤعԤ
+ͤϡϷ̤ӳˤĤޤŤʤ顢Ƥդᤤƨ褦ȤԼɤǡ
+ͤäϷ̤ϡǤⲼͤĤΤƹԤȤ롣ͤԤ
+ޤȤơɤͤϻӳǡá̵ΤޤޡĤ߹ä
+ϡϤᤫ顢狼äƤ롣ͤϤȤȤϷ̤ӤĤǡ̵
+ؤͤݤ١ܡʤȤˤεӤΤ褦ʡФӤǤ롣
+ֲ򤷤Ƥ򤷤Ƥ̤ȡ衣
+ͤϡϷ̤Ĥȡʤꡢξʧäơ򤤹ݡʤϤ͡ˤο
+δؤĤĤɤ⡢Ϸ̤ۤäƤ롣ξʤʤդ碌ơ
+©ڤʤ顢򡢴夬ޤ֤γؽФˤʤơΤ褦
+˼ٹʤ夦͡ˤۤäƤ롣򸫤ȡͤϻϤˤϷ̤
+ʬΰջ֤˻ۤƤȱռơΰռϡ
+ޤǤϤdzƤο򲿻ʤġˤδ֤ˤޤƤޤä˻Ĥ
+ΤϡͣŻ򤷤ơ줬Ρ¤餫դ­Ȥ
+ФǤ롣ǡͤϡϷ̤򡢸ʤ顢Ƥä
+ָʤϸȡʤӤˤģͤʤɤǤϤʤβ̤꤫
+ιμԤ餪򤫤ơɤ褦ȱ褦ʻϤʤͣʬ
+ξǡ򤷤ƤΤʤäФΤ
+ȡϷ̤ϡ򡢰礭ơäȤβͤδ򸫼ä
+ޤ֤֤ʤäĻΤ褦ʡԤǸΤǤ롣줫顢Ⲥǡء
+ɡȰĤˤʤä򲿤ʪǤǤ褦ư٤ǡäʩ
+ưƤΤ롣λι顢ʤ餹ˤƤ褦ä
+ͤμä褿
+֤ȱȴƤʡνȱȴƤʡʤĤˤˤ褦Ȼפ
+㡣
+ͤϡϷ̤¸ʿޤʤΤ˼˾Ƽ˾Ʊˡ
+ΤȰ줷ˡؤϤä褿ȡεʤˤ
+ؤ̤ΤǤϷ̤ϡҼˡޤӳƬåʤȡˤäĹȴ
+Ӥäʤꡢ걡ʤҤˤΤĤ֤䤯褦ǡʤ顢ʻ򱾤
+
+ͤȱӤȴȱϡΤ̡ͤ
+¿ϡΰ̤ʻ򡢤Ƥ⤤ʹ֤ФǤ롣ˡʬȱȴ
+ʤɤϡؤФꤺĤڤäƴΤ򡢴ʤۤˤȱäơ
+ӡʤϤˤοؤ˹Ԥä¤ˤäƻʤʤäʤ顢Ǥ
+˹ԤäƤ⤷ʤ⡢ν봳ϡ̣褤ȱΤǡ
+Ӥ礫äƤΤǤ롣ʬϡνΤȤ
+פʤʤСʤˡˤ򤹤ΤǡʤǤ롣
+顢ʬΤƤⰭȤϻפʤϤꤷʤС
+򤹤ΤǡʤǤ롣ơλʤ򡢤褯
+ΤäƤνϡʬΤƤΤˤʤȻפǤ
+롣Ϸ̤ϡΤʰ̣λ򱾤ä
+ͤϡˤơ򺸤μǤʤ顢Ȥơ
+äʹƤμǤϡ֤ˤǿ礭⮡ʤˤӡˤ
+ˤʤ顢ʹƤΤǤ롣ǷʹƤˡͤοˤϡ
+ͦޤ褿ϡäβǤˤ˷礱ƤͦǤ롣
+ơäξؾʤˤäơϷ̤ᤨͦȤϡ
+ȿФưȤͦǤ롣ͤϡ򤹤뤫ͤˤʤ뤫¤ʤ
+ФǤϤʤλΤˤο鱾Сʤɤȱϡء
+ʤռγɤФƤ
+֤äȡ
+Ϸ̤äȡͤޡʤˤ褦ǰ򲡤ơ­
+ؽФȡ԰դˡμ⮤ΥơϷ̤ζ߾ʤ꤬ߡˤĤߤʤ顢
+֤ǤϡʤʤҤϤˤ򤷤褦Ⱥޤʡʤ⤽ʤС
+ΤʤΤ
+ͤϡФ䤯Ϸ̤ʪȤä줫顢­ˤߤĤȤϷ
+̤򡢼ӤӳξؽݤҤθޤǤϡϤ˸ФǤ롣
+ͤϡȤäɰȩʪ來ˤơޤ֤˵ޤҤ
+ꤿ
+á褦ݤƤϷ̤ӳ椫顢Τ򵯤Τϡ
+줫֤ʤλǤ롣Ϸ̤ϡĤ֤䤯褦ʡ᤯褦ΩƤʤ顢
+ޤdzƤФθ򤿤ˡҤθޤǡäƹԤäơ顢
+ûȱݡʤޡˤˤơβˤϡͣƶʤ
+Ȥˤ뤬ФǤ롣
+ͤϡˡơԤĮضƯ˵ޤǤ
diff --git a/vendor/golang.org/x/text/encoding/testdata/rashomon-iso-2022-jp.txt b/vendor/golang.org/x/text/encoding/testdata/rashomon-iso-2022-jp.txt
new file mode 100644
index 0000000..0bc24bc
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/testdata/rashomon-iso-2022-jp.txt
@@ -0,0 +1,178 @@
+This file was derived from
+http://www.gutenberg.org/cache/epub/1982/pg1982.txt
+--------
+$BMe@8Lg(B
+
+$B3)@nN6G72p(B
+
+$B!!0?F|$NJkJ}$N;v$G$"$k!#0l?M$N2<?M$,!"Me@8Lg$N2<$G1+$d$_$rBT$C$F$$$?!#!!9-$$Lg(B
+$B$N2<$K$O!"$3$NCK$N30$KC/$b$$$J$$!#$?$@!"=j!9C0EI$NGm$2$?!"Bg$-$J1_Cl$K!"$-$j$.(B
+$B$j$9$,0lI$$H$^$C$F$$$k!#Me@8Lg$,!"<k?}BgO)$K$"$k0J>e$O!"$3$NCK$N30$K$b!"1+$d$_(B
+$B$r$9$k;T=w3^$dYf1(K9;R$,!"$b$&Fs;0?M$O$"$j$=$&$J$b$N$G$"$k!#$=$l$,!"$3$NCK$N30(B
+$B$KC/$b$$$J$$!#(B
+$B!!2?8N$+$H1>$&$H!"$3$NFs;0G/!"5~ET$K$O!"CO?L$H$+DTIw$H$+2P;v$H$+q@q<$H$+1>$&:R(B
+$B$$$,$D$E$$$F5/$3$C$?!#$=$3$GMlCf$N$5$S$lJ}$O0lDL$j$G$J$$!#5l5-$K$h$k$H!"J)A|$d(B
+$BJ)6q$rBG:U$$$F!"$=$NC0$,$D$$$?$j!"6b6d$NGs!J$O$/!K$,$D$$$?$j$7$?LZ$r!"O)$P$?$K(B
+$B$D$_=E$M$F?E$NNA!J$7$m!K$KGd$C$F$$$?$H1>$&$3$H$G$"$k!#MlCf$,$=$N;OKv$G$"$k$+$i!"(B
+$BMe@8Lg$N=$M}$J$I$O!"85$h$jC/$b<N$F$F8\$_$k<T$,$J$+$C$?!#$9$k$H$=$N9S$l2L$F$?$N(B
+$B$r$h$$;v$K$7$F!"8QC,!J$3$j!K$,@3$`!#Ep?M$,@3$`!#$H$&$H$&$7$^$$$K$O!"0z<h$j<j$N(B
+$B$J$$;`?M$r!"$3$NLg$X;}$C$FMh$F!"<N$F$F9T$/$H1>$&=,47$5$(=PMh$?!#$=$3$G!"F|$NL\(B
+$B$,8+$($J$/$J$k$H!"C/$G$b5$L#$r0-$,$C$F!"$3$NLg$N6a=j$X$OB-$V$_$r$7$J$$;v$K$J$C(B
+$B$F$7$^$C$?$N$G$"$k!#(B
+$B!!$=$NBe$jKtrm$,2?=h$+$i$+!"$?$/$5$s=8$^$C$FMh$?!#Ck4V8+$k$H!"$=$Nrm$,2?1)$H$J(B
+$B$/NX$rIA$$$F!"9b$$rvHx!J$7$S!K$N$^$o$j$rSF$-$J$,$i!"Ht$S$^$o$C$F$$$k!#<l$KLg$N(B
+$B>e$N6u$,!"M<>F$1$G$"$+$/$J$k;~$K$O!"$=$l$,8UKc$r$^$$$?$h$&$K$O$C$-$j8+$($?!#rm(B
+$B$O!"L^O@!"Lg$N>e$K$"$k;`?M$NFy$r!"Bo$_$KMh$k$N$G$"$k!#!<!<L`$b:#F|$O!"9o8B$,CY(B
+$B$$$;$$$+!"0l1)$b8+$($J$$!#M#!"=j!9!"Jx$l$+$+$C$?!"$=$&$7$F$=$NJx$lL\$KD9$$Ap$N(B
+$B$O$($?@PCJ$N>e$K!"rm$NJ5!J$/$=!K$,!"E@!9$HGr$/$3$S$j$D$$$F$$$k$N$,8+$($k!#2<?M(B
+$B$O<7CJ$"$k@PCJ$N0lHV>e$NCJ$K@v$$$6$i$7$?:0$N2(!J$"$*!K$N?,$r?x$($F!"1&$NKK$K=P(B
+$BMh$?!"Bg$-$JLLb.!J$K$-$S!K$r5$$K$7$J$,$i!"$\$s$d$j!"1+$N$U$k$N$rD/$a$F$$$k$N$G(B
+$B$"$k!#(B
+$B!!:n<T$O$5$C$-!"!V2<?M$,1+$d$_$rBT$C$F$$$?!W$H=q$$$?!#$7$+$7!"2<?M$O!"1+$,$d$s(B
+$B$G$b3JJL$I$&$7$h$&$H1>$&Ev$F$O$J$$!#$U$@$s$J$i!"L^O@!"<g?M$N2H$X5"$k2D$-H&$G$"(B
+$B$k!#=j$,$=$N<g?M$+$i$O!";M8^F|A0$K2K$r=P$5$l$?!#A0$K$b=q$$$?$h$&$K!"Ev;~5~ET$N(B
+$BD.$O0lDL$j$J$i$:?jHy$7$F$$$?!#:#$3$N2<?M$,!"1JG/!";H$o$l$F$$$?<g?M$+$i2K$r=P$5(B
+$B$l$?$N$b!"$3$N?jHy$N>.$5$JM>GH$K30$J$i$J$$!#$@$+$i!"!V2<?M$,1+$d$_$rBT$C$F$$$?!W(B
+$B$H1>$&$h$j$b!"!V1+$K$U$j$3$a$i$l$?2<?M$,!"9T$-=j$,$J$/$F!"ESJ}$K$/$l$F$$$?!W$H(B
+$B1>$&J}$,!"E,Ev$G$"$k!#$=$N>e!":#F|$N6uLOMM$b>/$J$+$i$:$3$NJ?0BD+$N2<?M$N(B
+Sentimentalisme$B$K1F6A$7$?!#?=!J$5$k!K$N9o2<$,$j$+$i$U$j=P$7$?1+$O!"L$$@$K>e(B
+$B$,$k$1$7$-$,$J$$!#$=$3$G!"2<?M$O!"2?$rA<$$$F$b:9Ev$?$jL@F|$NJk$7$r$I$&$K$+$7$h(B
+$B$&$H$7$F!<!<1>$o$P$I$&$K$b$J$i$J$$;v$r!"$I$&$K$+$7$h$&$H$7$F!"$H$j$H$a$b$J$$9M(B
+$B$($r$?$I$j$J$,$i!"$5$C$-$+$i<k?}BgO)$K$U$k1+$N2;$rJ9$/$H$b$J$/J9$$$F$$$?!#(B
+$B!!1+$OMe@8Lg$r$D$D$s$G!"1s$/$+$i!"$6$"$C$H1>$&2;$r$"$D$a$F$/$k!#M<0G$O<!Bh$K6u(B
+$B$rDc$/$7$F!"8+>e$2$k$H!"Lg$N20:,$,!"<P$a$K$D$-=P$7$?a0!J$$$i$+!K$N@h$K!"=E$?$/(B
+$B$&$90E$$1@$r;Y$($F$$$k!#(B
+$B!!$I$&$K$b$J$i$J$$;v$r!"$I$&$K$+$9$k0Y$K$O!"<jCJ$rA*$s$G$$$kn#!J$$$H$^!K$O$J$$!#(B
+$BA*$s$G$$$l$P!"C[CO!J$D$$$8!K$N2<$+!"F;$P$?$NEZ$N>e$G!"q@;`!J$&$($8$K!K$r$9$k$P(B
+$B$+$j$G$"$k!#$=$&$7$F!"$3$NLg$N>e$X;}$C$FMh$F!"8$$N$h$&$K<N$F$i$l$F$7$^$&$P$+$j(B
+$B$G$"$k!#A*$P$J$$$H$9$l$P!<!<2<?M$N9M$($O!"2?EY$bF1$8F;$rDcWK$7$?MH6g$K!"$d$C$H(B
+$B$3$N6I=j$X0)Ce$7$?!#$7$+$7$3$N!V$9$l$P!W$O!"$$$D$b$G$?$C$F$b!"7k6I!V$9$l$P!W$G(B
+$B$"$C$?!#2<?M$O!"<jCJ$rA*$P$J$$$H$$$&;v$r9NDj$7$J$,$i$b!"$3$N!V$9$l$P!W$N$+$?$r(B
+$B$D$1$k0Y$K!"EvA3!"$3$N8e$KMh$k2D$-!VEp?M$K$J$k$h$j30$K;EJ}$,$J$$!W$H1>$&;v$r!"(B
+$B@Q6KE*$K9NDj$9$k$@$1$N!"M&5$$,=P$:$K$$$?$N$G$"$k!#(B
+$B!!2<?M$OBg$-$JSj!J$/$5$a!K$r$7$F!"$=$l$+$i!"Bg57$=$&$KN)>e$,$C$?!#M<Nd$($N$9$k(B
+$B5~ET$O!"$b$&2P23$,M_$7$$Dx$N4($5$G$"$k!#Iw$OLg$NCl$HCl$H$N4V$r!"M<0G$H6&$K1sN8(B
+$B$J$/!"?a$-$L$1$k!#C0EI$NCl$K$H$^$C$F$$$?$-$j$.$j$9$b!"$b$&$I$3$+$X9T$C$F$7$^$C(B
+$B$?!#(B
+$B!!2<?M$O!"pt$r$A$B$a$J$,$i!";3?a$N4@jN!J$+$6$_!K$K=E$M$?!":0$N2($N8*$r9b$/$7$F(B
+$BLg$N$^$o$j$r8+$^$o$7$?!#1+Iw$N45$N$J$$!"?ML\$K$+$+$kW|$N$J$$!"0lHU3Z$K$M$i$l$=(B
+$B$&$J=j$,$"$l$P!"$=$3$G$H$b$+$/$b!"Lk$rL@$+$=$&$H;W$C$?$+$i$G$"$k!#$9$k$H!"9,Lg(B
+$B$N>e$NO0$X>e$k!"I}$N9-$$!"G7$bC0$rEI$C$?Dt;R$,4c$K$D$$$?!#>e$J$i!"?M$,$$$?$K$7(B
+$B$F$b!"$I$&$;;`?M$P$+$j$G$"$k!#2<?M$O!"$=$3$G9x$K$5$2$?@;JA!J$R$8$j$E$+!K$NB@Ea(B
+$B$,>dAv$i$J$$$h$&$K5$$r$D$1$J$,$i!"ONApMz$r$O$$$?B-$r!"$=$NDt;R$N0lHV2<$NCJ$X$U(B
+$B$_$+$1$?!#(B
+$B!!$=$l$+$i!"2?J,$+$N8e$G$"$k!#Me@8Lg$NO0$N>e$X=P$k!"I}$N9-$$Dt;R$NCfCJ$K!"0l?M(B
+$B$NCK$,!"G-$N$h$&$K?H$r$A$B$a$F!"B)$r;&$7$J$,$i!">e$NMF;R$r1.$C$F$$$?!#O0$N>e$+(B
+$B$i$5$92P$N8w$,!"$+$9$+$K!"$=$NCK$N1&$NKK$r$L$i$7$F$$$k!#C;$$r$!J$R$2!K$NCf$K!"(B
+$B@V$/G?$r;}$C$?LLb.$N$"$kKK$G$"$k!#2<?M$O!";O$a$+$i!"$3$N>e$K$$$k<T$O!";`?M$P$+(B
+$B$j$@$H9b$r3g$C$F$$$?!#$=$l$,!"Dt;R$rFs;0CJ>e$C$F8+$k$H!">e$G$OC/$+2P$r$H$\$7$F!"(B
+$B$7$+$b$=$N2P$rB6=h:!=h$HF0$+$7$F$$$k$i$7$$!#$3$l$O!"$=$NBy$C$?!"2+$$$m$$8w$,!"(B
+$B6y!9$KCXia$NAc$r$+$1$?E70fN"$K!"$f$l$J$,$i1G$C$?$N$G!"$9$0$K$=$l$HCN$l$?$N$G$"(B
+$B$k!#$3$N1+$NLk$K!"$3$NMe@8Lg$N>e$G!"2P$r$H$b$7$F$$$k$+$i$O!"$I$&$;M#$N<T$G$O$J(B
+$B$$!#(B
+$B!!2<?M$O!"5\<i!J$d$b$j!K$N$h$&$KB-2;$r$L$9$s$G!"$d$C$H5^$JDt;R$r!"0lHV>e$NCJ$^(B
+$B$GGg$&$h$&$K$7$F>e$j$D$a$?!#$=$&$7$FBN$r=PMh$k$@$1!"J?$K$7$J$,$i!"pt$r=PMh$k$@(B
+$B$1!"A0$X=P$7$F!"62$k62$k!"O0$NFb$rGA$$$F8+$?!#(B
+$B!!8+$k$H!"O0$NFb$K$O!"1=$KJ9$$$?DL$j!"4v$D$+$N;S3<!J$7$,$$!K$,!"L5B$:n$K4~$F$F(B
+$B$"$k$,!"2P$N8w$N5Z$VHO0O$,!";W$C$?$h$j69$$$N$G!"?t$O4v$D$H$b$o$+$i$J$$!#M#!"$*(B
+$B$\$m$2$J$,$i!"CN$l$k$N$O!"$=$NCf$KMg$N;S3<$H!"CeJ*$rCe$?;S3<$H$,$"$k$H1>$&;v$G(B
+$B$"$k!#L^O@!"Cf$K$O=w$bCK$b$^$8$C$F$$$k$i$7$$!#$=$&$7$F!"$=$N;S3<$O3'!"$=$l$,!"(B
+$B>(!J$+$D$F!K!"@8$-$F$$$??M4V$@$H1>$&;v<B$5$(5?$o$l$kDx!"EZ$rYT$M$FB$$C$??M7A$N(B
+$B$h$&$K!"8}$r3+$$$?$j!"<j$r1d$P$7$?$j$7$F!"$4$m$4$m>2$N>e$K$3$m$,$C$F$$$?!#$7$+(B
+$B$b!"8*$H$+6;$H$+$N9b$/$J$C$F$$$kItJ,$K!"$\$s$d$j$7$?2P$N8w$r$&$1$F!"Dc$/$J$C$F(B
+$B$$$kItJ,$N1F$r0lAX0E$/$7$J$,$i!"1J5W$K0"!J$*$7!K$NG!$/L[$C$F$$$?!#(B
+$B!!2<?M$O!"$=$l$i$N;S3<$NIe`%$7$?=-5$$K;W$o$:!"I!$r1f$C$?!J$*$*$C$?!K!#$7$+$7!"(B
+$B$=$N<j$O!"<!$N=V4V$K$O!"$b$&I!$r1f$&;v$rK:$l$F$$$?!#0?$k6/$$46>p$,KX<=!J$[$H$s(B
+$B$I$3$H$4$H$/!K$3$NCK$NSL3P$rC%$C$F$7$^$C$?$+$i$G$"$k!#(B
+$B!!2<?M$N4c$O!"$=$N;~!"$O$8$a$F!"B6;S3<$NCf$Km-$C$F$$$k!J$&$:$/$^$C$F$$$k!K?M4V(B
+$B$r8+$?!#[XH)?'!J$R$O$@$$$m!K$NCeJ*$rCx$?!"GX$NDc$$!"Ai$;$?!"GrH1F,$N!"1n$N$h$&(B
+$B$JO7GL$G$"$k!#$=$NO7GL$O!"1&$N<j$K2P$r$H$b$7$?>>$NLZJR$r;}$C$F!"$=$N;S3<$N0l$D(B
+$B$N4i$rGA$-$3$`$h$&$KD/$a$F$$$?!#H1$NLS$ND9$$=j$r8+$k$H!"B?J,=w$N;S3<$G$"$m$&!#(B
+$B!!2<?M$O!"O;J,$N62I]$H;MJ,$N9%4q?4$H$KF0$+$5$l$F!";C;~$O8F5[!J$$$-!K$r$9$k$N$5(B
+$B$(K:$l$F$$$?!#5l5-$N5-<T$N8l$r<Z$j$l$P!"!VF,?H!J$H$&$7$s!K$NLS$bB@$k!W$h$&$K46(B
+$B$8$?$N$G$"$k!#$9$k$H!"O7GL$O!">>$NLZJR$r!">2HD$N4V$KA^$7$F!"$=$l$+$i!":#$^$GD/(B
+$B$a$F$$$?;S3<$N<s$KN><j$r$+$1$k$H!"CzEY!"1n$N?F$,1n$N;R$NiM!J$7$i$_!K$r$H$k$h$&(B
+$B$K!"$=$ND9$$H1$NLS$r0lK\$:$DH4$-$O$8$a$?!#H1$O<j$K=>$C$FH4$1$k$i$7$$!#(B
+$B!!$=$NH1$NLS$,!"0lK\$:$DH4$1$k$N$K=>$C$F2<?M$N?4$+$i$O!"62I]$,>/$7$:$D>C$($F9T$C(B
+$B$?!#$=$&$7$F!"$=$l$HF1;~$K!"$=$NO7GL$KBP$9$k$O$2$7$$A~0-$,!">/$7$:$DF0$$$FMh$?!#(B
+$B$$$d!"$3$NO7GL$KBP$9$k$H1>$C$F$O!"8lJ@$,$"$k$+$bCN$l$J$$!#G+!J$`$7$m!K!"$"$i$f(B
+$B$k0-$KBP$9$kH?46$,!"0lJ,Kh$K6/$5$rA}$7$FMh$?$N$G$"$k!#$3$N;~!"C/$+$,$3$N2<?M$K!"(B
+$B$5$C$-Lg$N2<$G$3$NCK$,9M$($F$$$?!"q@;`!J$&$($8$K!K$r$9$k$+Ep?M$K$J$k$+$H1>$&Ld(B
+$BBj$r!"2~$a$F;}=P$7$?$i!"62$i$/2<?M$O!"2?$NL$N}$b$J$/!"q@;`$rA*$s$@;v$G$"$m$&!#(B
+$B$=$l$[$I!"$3$NCK$N0-$rA~$`?4$O!"O7GL$N>2$KA^$7$?>>$NLZJR$N$h$&$K!"@*$h$/G3$(>e(B
+$B$,$j$@$7$F$$$?$N$G$"$k!#(B
+$B!!2<?M$K$O!"L^O@!"2?8NO7GL$,;`?M$NH1$NLS$rH4$/$+$o$+$i$J$+$C$?!#=>$C$F!"9gM}E*(B
+$B$K$O!"$=$l$rA10-$N2?$l$KJR$E$1$F$h$$$+CN$i$J$+$C$?!#$7$+$72<?M$K$H$C$F$O!"$3$N(B
+$B1+$NLk$K!"$3$NMe@8Lg$N>e$G!";`?M$NH1$NLS$rH4$/$H1>$&;v$,!"$=$l$@$1$G4{$K5v$92D(B
+$B$i$6$k0-$G$"$C$?!#L^O@!!2<?M$O!!$5$C$-Kx<+J,$,!"Ep?M$K$J$k5$$G$$$?;v$J$>$O!!$H(B
+$B$&$KK:$l$F$$$k$N$G$"$k!#(B
+$B!!$=$3$G!"2<?M$O!"N>B-$KNO$rF~$l$F!"$$$+$J$j!"Dt;R$+$i>e$XHt$S>e$,$C$?!!$=$&$7(B
+$B$F@;JA!J$R$8$j$E$+!K$NB@Ea$K<j$r$+$1$J$,$i!"Bg8T$KO7GL$NA0$XJb$_$h$C$?!#O7GL$,(B
+$B6C$$$?$N$O!!1>$&Kx$b$J$$!#(B
+$B!!O7GL$O!"0lL\2<?M$r8+$k$H!"$^$k$GW8!J$$$7$f$_!K$K$G$bCF$+$l$?$h$&$K!!Ht$S>e$,$C(B
+$B$?!#(B
+$B!!!V$*$N$l!"$I$3$X9T$/!#!W(B
+$B!!2<?M$O!"O7GL$,;S3<$K$D$^$E$-$J$,$i!"92$F$U$?$a$$$FF($2$h$&$H$9$k9T<j$r:I$$$G!"(B
+$B$3$&GM$C$?!#O7GL$O!"$=$l$G$b2<?M$r$D$-$N$1$F9T$3$&$H$9$k!#2<?M$OKt!"$=$l$r9T$+(B
+$B$9$^$$$H$7$F!"2!$7$b$I$9!#Fs?M$O;S3<$NCf$G!";C!"L58@$N$^$^!"$D$+$_9g$C$?!#$7$+(B
+$B$7>!Ii$O!"$O$8$a$+$i!"$o$+$C$F$$$k!#2<?M$O$H$&$H$&!"O7GL$NOS$r$D$+$s$G!"L5M}$K(B
+$B$=$3$X$M$8E]$7$?!#CzEY!"7\!J$H$j!K$N5S$N$h$&$J!"9|$HHi$P$+$j$NOS$G$"$k!#(B
+$B!!!V2?$r$7$F$$$?!#$5$"2?$r$7$F$$$?!#1>$(!#1>$o$L$H!!$3$l$@$>$h!#!W(B
+$B!!2<?M$O!"O7GL$r$D$-J|$9$H!"$$$-$J$j!"B@Ea$N>d$rJ'$C$F!"Gr$$9]!J$O$,$M!K$N?'$r(B
+$B$=$N4c$NA0$X$D$-$D$1$?!#$1$l$I$b!"O7GL$OL[$C$F$$$k!#N><j$r$o$J$o$J$U$k$o$;$F!"(B
+$B8*$GB)$r@Z$j$J$,$i!"4c$r!"4c5e$,$^$V$?$N30$X=P$=$&$K$J$kDx!"8+3+$$$F!"0"$N$h$&(B
+$B$K<9Y9!J$7$e$&$M!K$/L[$C$F$$$k!#$3$l$r8+$k$H!"2<?M$O;O$a$FL@Gr$K$3$NO7GL$N@8;`(B
+$B$,!"A4A3!"<+J,$N0U;V$K;YG[$5$l$F$$$k$H1>$&;v$r0U<1$7$?!#$=$&$7$F!"$3$N0U<1$O!"(B
+$B:#$^$G$O$2$7$/G3$($F$$$?A~0-$N?4$r2?;~!J$$$D!K$N4V$K$+Nd$^$7$F$7$^$C$?!#8e$K;D$C(B
+$B$?$N$O!"M#!"0?;E;v$r$7$F!"$=$l$,1_K~$K@.="$7$?;~$N!"0B$i$+$JF@0U$HK~B-$H$,$"$k(B
+$B$P$+$j$G$"$k!#$=$3$G!"2<?M$O!"O7GL$r!"8+2<$2$J$,$i!">/$7@<$r=@$2$F$3$&1>$C$?!#(B
+$B!!!V8J$O8!Hs0c;H!J$1$S$$$7!K$ND#$NLr?M$J$I$G$O$J$$!#:#$7J}$3$NLg$N2<$rDL$j$+$+$C(B
+$B$?N9$N<T$@!#$@$+$i$*A0$KFl$r$+$1$F!"$I$&$7$h$&$H1>$&$h$&$J;v$O$J$$!#M#:#;~J,!"(B
+$B$3$NLg$N>e$G!"2?$r$7$F$$$?$N$@$+!"$=$l$r8J$KOC$5$($9$l$P$$$$$N$@!#!W(B
+$B!!$9$k$H!"O7GL$O!"8+3+$$$?4c$r!"0lAXBg$-$/$7$F!"$8$C$H$=$N2<?M$N4i$r8+<i$C$?!#(B
+$B$^$V$?$N@V$/$J$C$?!"Fy?)D;$N$h$&$J!"1T$$4c$G8+$?$N$G$"$k!#$=$l$+$i!"b2$G!"KX!"(B
+$BI!$H0l$D$K$J$C$??0$r2?$+J*$G$b3z$s$G$$$k$h$&$KF0$+$7$?!#:Y$$9"$G!"@m$C$?9"J)$N(B
+$BF0$$$F$$$k$N$,8+$($k!#$=$N;~!"$=$N9"$+$i!"rm!J$+$i$9!K$NSF$/$h$&$J@<$,!"SC$.SC(B
+$B$.!"2<?M$N<*$XEA$o$C$FMh$?!#(B
+$B!!!V$3$NH1$rH4$$$F$J!"$3$N=w$NH1$rH4$$$F$J!"r#!J$+$D$i!K$K$7$h$&$H;W$&$?$N(B
+$B$8$c!#!W(B
+$B!!2<?M$O!"O7GL$NEz$,B830!"J?K^$J$N$K<:K>$7$?!#$=$&$7$F<:K>$9$k$HF1;~$K!"KtA0$N(B
+$BA~0-$,!"Nd$JInJN$H0l$7$g$K!"?4$NCf$X$O$$$C$FMh$?!#$9$k$H!!$=$N5$?'!J$1$7$-!K$,!"(B
+$B@hJ}$X$bDL$8$?$N$G$"$m$&!#O7GL$O!"JR<j$K!"$^$@;S3<$NF,$+$iC%!J$H!K$C$?D9$$H4$1(B
+$BLS$r;}$C$?$J$j!"j1!J$R$-!K$N$D$V$d$/$h$&$J@<$G!"8}$4$b$j$J$,$i!"$3$s$J;v$r1>$C(B
+$B$?!#(B
+$B!!@.Dx!";`?M$NH1$NLS$rH4$/$H1>$&;v$O!"0-$$;v$+$MCN$l$L!#$7$+$7!"$3$&1>$&;`?M$N(B
+$BB?$/$O!"3'!!$=$N0L$J;v$r!"$5$l$F$b$$$$?M4V$P$+$j$G$"$k!#8=$K!"<+J,$,:#!"H1$rH4(B
+$B$$$?=w$J$I$O!"<X$r;M@#$P$+$j$:$D$K@Z$C$F43$7$?$N$r!"435{!J$[$7$&$*!K$@$H1>$C$F!"(B
+$BB@EaBS!J$?$A$O$-!K$N?X$XGd$j$K9T$C$?!#1VIB$K$+$+$C$F;`$J$J$+$C$?$J$i!":#$G$bGd(B
+$B$j$K9T$C$F$$$?$+$b$7$l$J$$!#$7$+$b!"$3$N=w$NGd$k435{$O!"L#$,$h$$$H1>$&$N$G!"B@(B
+$BEaBS$?$A$,!"7g$+$5$::ZNA$KGc$C$F$$$?$N$G$"$k!#<+J,$O!"$3$N=w$N$7$?;v$,0-$$$H$O(B
+$B;W$o$J$$!#$7$J$1$l$P!"q@;`!J$($&$8$K!K$r$9$k$N$G!";EJ}$,$J$/$7$?;v$@$+$i$G$"$k!#(B
+$B$@$+$i!"Kt:#!"<+J,$N$7$F$$$?;v$b0-$$;v$H$O;W$o$J$$!#$3$l$b$d$O$j$7$J$1$l$P!"q@(B
+$B;`$r$9$k$N$G!";EJ}$,$J$/$9$k;v$@$+$i$G$"$k!#$=$&$7$F!"$=$N;EJ}$,$J$$;v$r!"$h$/(B
+$BCN$C$F$$$?$3$N=w$O!"<+J,$N$9$k;v$r5v$7$F$/$l$k$N$K$A$,$$$J$$$H;W$&$+$i$G$"(B
+$B$k!#!<!<O7GL$O!"BgBN$3$s$J0UL#$N;v$r1>$C$?!#(B
+$B!!2<?M$O!"B@Ea$r>d$K$*$5$a$F!"$=$NB@Ea$NJA$r:8$N<j$G$*$5$($J$,$i!"NdA3$H$7$F!"(B
+$B$3$NOC$rJ9$$$F$$$?!#L^O@!"!!1&$N<j$G$O!"@V$/KK$KG?$r;}$?Bg$-$JLLb.!J$K$-$S!K$r(B
+$B5$$K$7$J$,$i!"J9$$$F$$$k$N$G$"$k!#$7$+$7!"G7$rJ9$$$F$$$kCf$K!"2<?M$N?4$K$O!"0?(B
+$BM&5$$,@8$^$l$FMh$?!#$=$l$O!!$5$C$-!"Lg$N2<$G$3$NCK$K7g$1$F$$$?M&5$$G$"$k!#$=$&(B
+$B$7$F!"Kt$5$C$-!"$3$NLg$N>e$X>e!J$"$,!K$C$F!"$=$NO7GL$rJa$($?;~$NM&5$$H$O!"A4A3!"(B
+$BH?BP$JJ}8~$KF0$3$&$H$9$kM&5$$G$"$k!#2<?M$O!"q@;`$r$9$k$+Ep?M$K$J$k$+$KLB$o$J$+$C(B
+$B$?$P$+$j$G$O$J$$!#$=$N;~$N$3$NCK$N?4$b$A$+$i1>$($P!"q@;`$J$I$H1>$&;v$O!"KX!"9M(B
+$B$($k;v$5$(=PMh$J$$Dx!"0U<1$N30$KDI$$=P$5$l$F$$$?!#(B
+$B!!!V$-$C$H!"$=$&$+!#!W(B
+$B!!O7GL$NOC$,40$k$H!"2<?M$OS^!J$"$6$1!K$k$h$&$J@<$GG0$r2!$7$?!#$=$&$7$F!"0lB-A0(B
+$B$X=P$k$H!"IT0U$K!"1&$N<j$rLLb.$+$iN%$7$F!"O7GL$N6_>e!J$($j$,$_!K$r$D$+$_$J$,$i!"(B
+$B$3$&1>$C$?!#(B
+$B!!!V$G$O!"8J$,0zGm!J$R$O$.!K$r$7$h$&$H:($`$^$$$J!#8J$b$=$&$7$J$1$l$P!"q@;`$r$9(B
+$B$kBN$J$N$@!#!W(B
+$B!!2<?M$O!"$9$P$d$/!"O7GL$NCeJ*$rGm$.$H$C$?!#$=$l$+$i!"B-$K$7$,$_$D$3$&$H$9$kO7(B
+$BGL$r!"<j9S$/;S3<$N>e$X=3E]$7$?!#Dt;R$N8}$^$G$O!"6O$K8^Jb$r?t$($k$P$+$j$G$"$k!#(B
+$B2<?M$O!"Gm$.$H$C$?I0H)?'$NCeJ*$r$o$-$K$+$+$($F!"$^$?$?$/4V$K5^$JDt;R$rLk$NDl$X(B
+$B$+$12<$j$?!#(B
+$B!!;C!";`$s$@$h$&$KE]$l$F$$$?O7GL$,!";S3<$NCf$+$i!"$=$NMg$NBN$r5/$3$7$?$N$O!"$=(B
+$B$l$+$i4V$b$J$/$N;v$G$"$k!#O7GL$O!"$D$V$d$/$h$&$J!"$&$a$/$h$&$J@<$rN)$F$J$,$i!"(B
+$B$^$@G3$($F$$$k2P$N8w$r$?$h$j$K!"Dt;R$N8}$^$G!"Gg$C$F9T$C$?!#$=$&$7$F!"$=$3$+$i!"(B
+$BC;$$GrH1$rE]!J$5$+$5$^!K$K$7$F!"Lg$N2<$rGA$-$3$s$@!#30$K$O!"M#!"9uF6!9!J$3$/$H(B
+$B$&$H$&!K$?$kLk$,$"$k$P$+$j$G$"$k!#(B
+$B!!2<?M$O!"4{$K!"1+$rKA$7$F!"5~ET$ND.$X6/Ep$rF/$-$K5^$$$G$$$?!#(B
diff --git a/vendor/golang.org/x/text/encoding/testdata/rashomon-shift-jis.txt b/vendor/golang.org/x/text/encoding/testdata/rashomon-shift-jis.txt
new file mode 100644
index 0000000..7a54b95
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/testdata/rashomon-shift-jis.txt
@@ -0,0 +1,178 @@
+This file was derived from
+http://www.gutenberg.org/cache/epub/1982/pg1982.txt
+--------
+
+
+H열V
+
+@̎̕łBl̉lẢʼnJ݂҂ĂB@L
+̉ɂ́A̒j̊OɒNȂBAXOh̔A傫ȉ~ɁA肬
+肷CƂ܂ĂB傪A鐝Hɂȏ́A̒j̊OɂAJ
+s}❆GXqAOl͂肻Ȃ̂łBꂪA̒j̊O
+ɒNȂB
+@̂Ɖ]ƁA̓ONAsɂ́AnkƂҕƂΎƂ_[Ƃ]
+‚ÂċNBŗ̂т͈ʂłȂBLɂƁA
+ōӂāA̒O‚A̔i͂j‚肵؂AH΂
+‚ݏd˂Đd̗ijɔĂƉ]ƂłB̎nł邩A
+̏CȂǂ́AN̂ĂČڂ݂҂ȂBƂ̍rʂĂ
+悢ɂāAϒKijށBlށBƂƂ܂ɂ́A
+ȂlA̖֎ėāÂĂčsƉ]KoBŁA̖
+ȂȂƁANłCāA̖̋ߏւ͑Ԃ݂ȂɂȂ
+Ă܂̂łB
+@̑薔낪炩AW܂ėBԌƁA낪HƂ
+ւ`āAiсĵ܂eȂAт܂ĂBɖ
+̋󂪁A[ĂłȂ鎞ɂ́AꂪӖ܂悤ɂ͂茩B
+́Aܘ_Ȁɂ鎀l̓A݂ɗ̂łB[[ނ́Ax
+AHȂBBAXAꂩAĂ̕ڂɒ
+͂ΒȉɁA̕ijA_XƔт‚Ă̂Bl
+͎iΒïԏ̒iɐ􂢂炵̉ij̐K𐘂āAE̖jɏo
+A傫ȖᬁiɂсjCɂȂAڂAĴӂ̂𒭂߂Ă̂
+B
+@҂͂AulJ݂҂ĂvƏBAĺAJ
+łiʂǂ悤Ɖ]Ă͂ȂBӂȂAܘ_Al̉Ƃ֋A‚ł
+B̎ĺAlܓOɉɂoꂽBOɂ悤ɁAs
+͈ʂȂ炸ĂB̉lAiNAgĂlɂo
+ꂽ̂A̐̏ȗ]gɊOȂȂBAulJ݂҂Ăv
+Ɖ]AuJɂӂ肱߂ꂽlAsȂāArɂĂv
+]AKłB̏A̋͗lȂ炸̉̕l
+SentimentalismeɉeB\ij̍肩ӂoJ́Aɏ
+邯ȂBŁAĺA[Ă薾̕邵ǂɂ
+Ƃā[[]΂ǂɂȂȂAǂɂ悤ƂāAƂƂ߂Ȃl
+ǂȂA鐝HɂӂJ̉𕷂ƂȂĂB
+@J͗‚‚ŁAAƉ]‚߂ĂB[ł͎ɋ
+ႭāAグƁẢA΂߂ɂ‚oOi炩j̐ɁAd
+Â_xĂB
+@ǂɂȂȂAǂɂׂɂ́AiIł硁iƂ܁j͂ȂB
+Ił΁Azni‚j̉A΂̓y̏ŁA_iɁj
+łBāȀ̖֎ėāÂ悤Ɏ̂ĂĂ܂΂
+łBI΂ȂƂ΁[[l̍ĺAxjgɁA
+̋ǏֈB́u΁v́A‚łĂAǁu΁v
+BĺAiI΂ȂƂm肵ȂÁu΁v̂
+‚ׂɁARǍɗ‚ulɂȂOɎdȂvƉ]A
+ϋɓIɍm肷邾́AECoɂ̂łB
+@l͑傫Ți߁jāAꂩAVɗオB[₦̂
+śAΉ~̊łB͖̒ƒƂ̊ԂA[łƋɉ
+ȂAʂBOh̒ɂƂ܂Ă肬肷Aǂ֍sĂ܂
+B
+@ĺA߂ȂAR̊́i݁jɏd˂Ả̌
+̂܂܂킵BJ̊̂ȂAlڂɂ霜̂ȂAӊyɂ˂ꂻ
+ȏ΁AłƂA𖾂ƎvłBƁAK
+̘̏O֏A̍LAVOhqɂ‚BȂAlɂ
+ĂAǂl΂łBĺAōɂiЂÂj̑
+⑖Ȃ悤ɋC‚ȂAm͂A̒q̈ԉ̒iւ
+݂B
+@ꂩǍłB̘Ȍ֏oA̍Lq̒iɁAl
+̒jAL̂悤ɐg߂āAEȂA̗eqMĂBȌォ
+炳΂̌AɁA̒j̉E̖jʂ炵ĂBZ颁iЂj̒ɁA
+Ԃ^ᬂ̂jłBĺAn߂Ȁɂ҂́Al΂
+肾ƍĂBꂪAqOiČƁAł͒N΂ƂڂāA
+̉΂𑴏ƓĂ炵B́ȂA낢A
+Xɒw偂̑V䗠ɁAȂf̂ŁAɂƒmꂽ̂ł
+B̉J̖ɁȀ̗ŁA΂ƂĂ邩́AǂB̎҂ł͂
+B
+@ĺA{iĵ悤ɑʂŁAƋ}ȒqAԏ̒i
+Ŕ悤ɂď‚߂Bđ̂o邾AɂȂAo邾
+AO֏oāA鋰AO̓`ČB
+@ƁAO̓ɂ́A\ɕʂA‚̎r[ijAɊĂ
+邪A΂̌̋yԔ͈͂Av苷̂ŁA͊‚Ƃ킩ȂBBA
+ڂ낰ȂAm̂́A̒ɗ̎r[ƁA𒅂r[ƂƉ]
+Bܘ_Aɂ͏j܂Ă炵BāA̎r[͊FAꂪA
+i‚ājAĂlԂƉ]^Ays˂đl`
+悤ɁAJA΂肵āA낲돰̏ɂ낪ĂB
+AƂƂ̍ȂĂ镔ɁAڂ肵΂̌āAႭȂ
+镔̉ewÂȂAivɈij̔@قĂB
+@ĺA̎r[̕ࣂLCɎv킸A@ijBA
+̎́ȀuԂɂ́A@YĂB鋭wiقƂ
+ǂƂƂj̒j̚koDĂ܂łB
+@l̊́A̎A͂߂āAr[̒LĂi܂Ăjl
+BwFiЂ͂j̒𒘂Aw̒ႢAÁÂ悤
+ȘVkłB̘VḱAE̎ɉ΂Ƃ̖ؕЂāA̎r[̈
+̊`ނ悤ɒ߂ĂB̖т̒ƁA̎r[ł낤B
+@ĺAZ̋|Ǝl̍DSƂɓāAb͌ċziĵ
+YĂBL̋L҂̌؂΁AugiƂj̖тv悤Ɋ
+̂łBƁAVḱA̖ؕЂA‚̊Ԃɑ}āAꂩA܂Œ
+߂Ăr[̎ɗƁAxA̐e̎qli݁jƂ悤
+ɁA̖̒т{”͂߂B͎ɏ]Ĕ炵B
+@̖̔тA{”̂ɏ]ĉl̐ŚA|čs
+BāAƓɁA̘Vkɑ΂͂A“ėB
+A̘Vkɑ΂Ɖ]ẮAꕾ邩mȂBJiނjA
+鈫ɑ΂锽Aꕪɋ𑝂ė̂łB̎AN̉lɁA
+̉ł̒jlĂA_iɁj邩lɂȂ邩Ɖ]
+A߂ĎoA炭ĺA̖ȂA_I񂾎ł낤B
+قǁA̒j̈𑞂ސŚAVk̏ɑ}̖ؕЂ̂悤ɁA悭R
+肾Ă̂łB
+@lɂ́Aܘ_A̘Vkl̖̔т𔲂킩ȂB]āAI
+ɂ́AP̉ɕЂÂĂ悢mȂBlɂƂẮA
+J̖ɁȀ̗ŁAl̖̔т𔲂Ɖ]AꂾŊɋ
+炴鈫łBܘ_@ĺ@AlɂȂCłȂ́@
+ɖYĂ̂łB
+@ŁAĺAɗ͂āAȂAq֔яオ@
+ĐiЂÂj̑ɎȂA҂ɘVk̑O݂֕BVk
+̂́@]ȂB
+@VḱAډlƁA܂ŜWi݁jɂłeꂽ悤Ɂ@яオ
+B
+@ûAǂ֍sBv
+@ĺAVkr[ɂ‚܂ÂȂAQĂӂ߂ē悤ƂsǂŁA
+lBVḱAłl‚̂čsƂBl͖As
+܂ƂāAǂBl͎r[̒ŁAbÂ܂܁A‚ݍB
+́A͂߂A킩ĂBl͂ƂƂAVk̘r‚ŁA
+ւ˂|BxA{iƂj̋r̂悤ȁAƔ΂̘rłB
+@uĂBĂB]B]ʂƁ@ꂾBv
+@ĺAVk‚ƁAȂȀ𕥂āA|i͂ˁj̐F
+̊̑Oւ‚‚BǂAVk͖قĂBȂȂӂ킹āA
+ő؂ȂAAዅ܂Ԃ̊O֏oɂȂAJāÂ悤
+ɎXiイˁjقĂBƁAl͎n߂Ėɂ̘Vk̐
+ASRÄӎuɎxzĂƉ]ӎBāÄӎ́A
+܂ł͂RĂ̐Sij̊Ԃɂ܂Ă܂BɎc
+̂́ABAdāAꂪ~ɐÁA炩ȓӂƖƂ
+΂łBŁAĺAVkAȂA_Ă]B
+@uȂ͌giтj̖̒lȂǂł͂ȂB̖̉ʂ肩
+̎҂B炨OɓāAǂ悤Ɖ]悤Ȏ͂ȂBBA
+̖̏ŁAĂ̂AȂɘb΂̂Bv
+@ƁAVḱAJAw傫āAƂ̉l̊B
+܂Ԃ̐ԂȂAĤ悤ȁAsŌ̂łBꂩAᰂŁAwA
+@ƈ‚ɂȂOłł悤ɓBׂAŁAA
+Ă̂B̎A̍AAi炷j̚e悤ȐAbb
+Al̎֓`ėB
+@u̔𔲂ĂȁȀ̔𔲂ĂȁA顁i‚jɂ悤Ǝv
+Bv
+@ĺAVk̓OA}Ȃ̂Ɏ]BĎ]ƓɁAO
+Aȕ̂ƈꂵɁAS̒ւ͂ėBƁ@̋CFijA
+ւʂ̂ł낤BVḱAЎɁA܂r[̓DiƁj
+тȂA寁iЂĵ‚Ԃ₭悤ȐŁAȂAȎ]
+B
+@Al̖̔т𔲂Ɖ]́A˒mʁBA]l
+́AF@̈ʂȎAĂlԂ΂łBɁAA
+Ȃǂ́Aւl΂肸‚ɐ؂Ċ̂AiقjƉ]āA
+сi͂j̐w֔ɍsBuaɂĎȂȂȂAł
+ɍsĂȂBȀ̔銱́A悢Ɖ]̂ŁA
+тAؗɔĂ̂łB́Ȁ̂Ƃ
+vȂBȂ΁A_iɁĵŁAdȂłB
+AÂĂƂ͎vȂB͂肵Ȃ΁A_
+̂ŁAdȂ鎖łBāA̎dȂA悭
+mĂ̏́Â鎖Ă̂ɂȂƎvł
+B[[VḱÂȈӖ̎]B
+@ĺAɂ߂āȂ̎̕łȂARƂāA
+̘b𕷂ĂBܘ_A@E̎ł́AԂjɔ^傫Ȗᬁiɂсj
+CɂȂAĂ̂łBAV𕷂Ă钆ɁAl̐Sɂ́A
+EC܂ėB́@Ảł̒jɌĂECłB
+āAȀ̖֏ijāA̘Vk߂̗ECƂ́ASRA
+΂ȕɓƂECłBĺA_邩lɂȂ邩ɖȂ
+΂ł͂ȂB̎̂̒j̐S]΁A_ȂǂƉ]́AwAl
+鎖oȂAӎ̊OɒǂoĂB
+@uƁABv
+@Vk̘bƁAl͚}ij悤ȐŔOBāAꑫO
+֏oƁAsӂɁAE̎ᬂ痣āAVk̋ݏi肪݁j‚݂ȂA
+]B
+@uł́AȂiЂ͂j悤ƍނ܂ȁBȂȂ΁A_
+̂Ȃ̂Bv
+@ĺA΂₭AVk̒𔍂ƂBꂩAɂ݂‚ƂV
+kArr[̏֏R|Bq̌܂ł́A͂Ɍܕ𐔂΂łB
+ĺAƂOF̒킫ɂāA܂Ԃɋ}Ȓq̒
+肽B
+@bA񂾂悤ɓ|ĂVkAr[̒Ȃ̗̂N̂́A
+ꂩԂȂ̎łBVḱA‚Ԃ₭悤ȁA߂悤Ȑ𗧂ĂȂA
+܂RĂ΂̌ɁAq̌܂ŁAčsBāAA
+Z|i܁jɂāẢ`񂾁BOɂ́ABAXi
+Ƃj邪΂łB
+@ĺAɁAJ`āAs̒֋𓭂ɋ}łB
diff --git a/vendor/golang.org/x/text/encoding/testdata/rashomon-utf-8.txt b/vendor/golang.org/x/text/encoding/testdata/rashomon-utf-8.txt
new file mode 100644
index 0000000..a890328
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/testdata/rashomon-utf-8.txt
@@ -0,0 +1,178 @@
+This file was derived from
+http://www.gutenberg.org/cache/epub/1982/pg1982.txt
+--------
+羅生門
+
+芥川龍之介
+
+ 或日の暮方の事である。一人の下人が、羅生門の下で雨やみを待っていた。 広い門
+の下には、この男の外に誰もいない。ただ、所々丹塗の剥げた、大きな円柱に、きりぎ
+りすが一匹とまっている。羅生門が、朱雀大路にある以上は、この男の外にも、雨やみ
+をする市女笠や揉烏帽子が、もう二三人はありそうなものである。それが、この男の外
+に誰もいない。
+ 何故かと云うと、この二三年、京都には、地震とか辻風とか火事とか饑饉とか云う災
+いがつづいて起こった。そこで洛中のさびれ方は一通りでない。旧記によると、仏像や
+仏具を打砕いて、その丹がついたり、金銀の箔(はく)がついたりした木を、路ばたに
+つみ重ねて薪の料(しろ)に売っていたと云うことである。洛中がその始末であるから、
+羅生門の修理などは、元より誰も捨てて顧みる者がなかった。するとその荒れ果てたの
+をよい事にして、狐狸(こり)が棲む。盗人が棲む。とうとうしまいには、引取り手の
+ない死人を、この門へ持って来て、捨てて行くと云う習慣さえ出来た。そこで、日の目
+が見えなくなると、誰でも気味を悪がって、この門の近所へは足ぶみをしない事になっ
+てしまったのである。
+ その代り又鴉が何処からか、たくさん集まって来た。昼間見ると、その鴉が何羽とな
+く輪を描いて、高い鴟尾(しび)のまわりを啼きながら、飛びまわっている。殊に門の
+上の空が、夕焼けであかくなる時には、それが胡麻をまいたようにはっきり見えた。鴉
+は、勿論、門の上にある死人の肉を、啄みに来るのである。ーー尤も今日は、刻限が遅
+いせいか、一羽も見えない。唯、所々、崩れかかった、そうしてその崩れ目に長い草の
+はえた石段の上に、鴉の糞(くそ)が、点々と白くこびりついているのが見える。下人
+は七段ある石段の一番上の段に洗いざらした紺の襖(あお)の尻を据えて、右の頬に出
+来た、大きな面皰(にきび)を気にしながら、ぼんやり、雨のふるのを眺めているので
+ある。
+ 作者はさっき、「下人が雨やみを待っていた」と書いた。しかし、下人は、雨がやん
+でも格別どうしようと云う当てはない。ふだんなら、勿論、主人の家へ帰る可き筈であ
+る。所がその主人からは、四五日前に暇を出された。前にも書いたように、当時京都の
+町は一通りならず衰微していた。今この下人が、永年、使われていた主人から暇を出さ
+れたのも、この衰微の小さな余波に外ならない。だから、「下人が雨やみを待っていた」
+と云うよりも、「雨にふりこめられた下人が、行き所がなくて、途方にくれていた」と
+云う方が、適当である。その上、今日の空模様も少なからずこの平安朝の下人の
+Sentimentalismeに影響した。申(さる)の刻下がりからふり出した雨は、未だに上
+がるけしきがない。そこで、下人は、何を措いても差当たり明日の暮しをどうにかしよ
+うとしてーー云わばどうにもならない事を、どうにかしようとして、とりとめもない考
+えをたどりながら、さっきから朱雀大路にふる雨の音を聞くともなく聞いていた。
+ 雨は羅生門をつつんで、遠くから、ざあっと云う音をあつめてくる。夕闇は次第に空
+を低くして、見上げると、門の屋根が、斜めにつき出した甍(いらか)の先に、重たく
+うす暗い雲を支えている。
+ どうにもならない事を、どうにかする為には、手段を選んでいる遑(いとま)はない。
+選んでいれば、築地(ついじ)の下か、道ばたの土の上で、饑死(うえじに)をするば
+かりである。そうして、この門の上へ持って来て、犬のように捨てられてしまうばかり
+である。選ばないとすればーー下人の考えは、何度も同じ道を低徊した揚句に、やっと
+この局所へ逢着した。しかしこの「すれば」は、いつもでたっても、結局「すれば」で
+あった。下人は、手段を選ばないという事を肯定しながらも、この「すれば」のかたを
+つける為に、当然、この後に来る可き「盗人になるより外に仕方がない」と云う事を、
+積極的に肯定するだけの、勇気が出ずにいたのである。
+ 下人は大きな嚏(くさめ)をして、それから、大儀そうに立上がった。夕冷えのする
+京都は、もう火桶が欲しい程の寒さである。風は門の柱と柱との間を、夕闇と共に遠慮
+なく、吹きぬける。丹塗の柱にとまっていたきりぎりすも、もうどこかへ行ってしまっ
+た。
+ 下人は、頸をちぢめながら、山吹の汗衫(かざみ)に重ねた、紺の襖の肩を高くして
+門のまわりを見まわした。雨風の患のない、人目にかかる惧のない、一晩楽にねられそ
+うな所があれば、そこでともかくも、夜を明かそうと思ったからである。すると、幸門
+の上の楼へ上る、幅の広い、之も丹を塗った梯子が眼についた。上なら、人がいたにし
+ても、どうせ死人ばかりである。下人は、そこで腰にさげた聖柄(ひじりづか)の太刀
+が鞘走らないように気をつけながら、藁草履をはいた足を、その梯子の一番下の段へふ
+みかけた。
+ それから、何分かの後である。羅生門の楼の上へ出る、幅の広い梯子の中段に、一人
+の男が、猫のように身をちぢめて、息を殺しながら、上の容子を窺っていた。楼の上か
+らさす火の光が、かすかに、その男の右の頬をぬらしている。短い鬚(ひげ)の中に、
+赤く膿を持った面皰のある頬である。下人は、始めから、この上にいる者は、死人ばか
+りだと高を括っていた。それが、梯子を二三段上って見ると、上では誰か火をとぼして、
+しかもその火を其処此処と動かしているらしい。これは、その濁った、黄いろい光が、
+隅々に蜘蛛の巣をかけた天井裏に、ゆれながら映ったので、すぐにそれと知れたのであ
+る。この雨の夜に、この羅生門の上で、火をともしているからは、どうせ唯の者ではな
+い。
+ 下人は、宮守(やもり)のように足音をぬすんで、やっと急な梯子を、一番上の段ま
+で這うようにして上りつめた。そうして体を出来るだけ、平にしながら、頸を出来るだ
+け、前へ出して、恐る恐る、楼の内を覗いて見た。
+ 見ると、楼の内には、噂に聞いた通り、幾つかの屍骸(しがい)が、無造作に棄てて
+あるが、火の光の及ぶ範囲が、思ったより狭いので、数は幾つともわからない。唯、お
+ぼろげながら、知れるのは、その中に裸の屍骸と、着物を着た屍骸とがあると云う事で
+ある。勿論、中には女も男もまじっているらしい。そうして、その屍骸は皆、それが、
+嘗(かつて)、生きていた人間だと云う事実さえ疑われる程、土を捏ねて造った人形の
+ように、口を開いたり、手を延ばしたりして、ごろごろ床の上にころがっていた。しか
+も、肩とか胸とかの高くなっている部分に、ぼんやりした火の光をうけて、低くなって
+いる部分の影を一層暗くしながら、永久に唖(おし)の如く黙っていた。
+ 下人は、それらの屍骸の腐爛した臭気に思わず、鼻を掩った(おおった)。しかし、
+その手は、次の瞬間には、もう鼻を掩う事を忘れていた。或る強い感情が殆悉(ほとん
+どことごとく)この男の嗅覚を奪ってしまったからである。
+ 下人の眼は、その時、はじめて、其屍骸の中に蹲っている(うずくまっている)人間
+を見た。檜肌色(ひはだいろ)の着物を著た、背の低い、痩せた、白髪頭の、猿のよう
+な老婆である。その老婆は、右の手に火をともした松の木片を持って、その屍骸の一つ
+の顔を覗きこむように眺めていた。髪の毛の長い所を見ると、多分女の屍骸であろう。
+ 下人は、六分の恐怖と四分の好奇心とに動かされて、暫時は呼吸(いき)をするのさ
+え忘れていた。旧記の記者の語を借りれば、「頭身(とうしん)の毛も太る」ように感
+じたのである。すると、老婆は、松の木片を、床板の間に挿して、それから、今まで眺
+めていた屍骸の首に両手をかけると、丁度、猿の親が猿の子の虱(しらみ)をとるよう
+に、その長い髪の毛を一本ずつ抜きはじめた。髪は手に従って抜けるらしい。
+ その髪の毛が、一本ずつ抜けるのに従って下人の心からは、恐怖が少しずつ消えて行っ
+た。そうして、それと同時に、その老婆に対するはげしい憎悪が、少しずつ動いて来た。
+いや、この老婆に対すると云っては、語弊があるかも知れない。寧(むしろ)、あらゆ
+る悪に対する反感が、一分毎に強さを増して来たのである。この時、誰かがこの下人に、
+さっき門の下でこの男が考えていた、饑死(うえじに)をするか盗人になるかと云う問
+題を、改めて持出したら、恐らく下人は、何の未練もなく、饑死を選んだ事であろう。
+それほど、この男の悪を憎む心は、老婆の床に挿した松の木片のように、勢よく燃え上
+がりだしていたのである。
+ 下人には、勿論、何故老婆が死人の髪の毛を抜くかわからなかった。従って、合理的
+には、それを善悪の何れに片づけてよいか知らなかった。しかし下人にとっては、この
+雨の夜に、この羅生門の上で、死人の髪の毛を抜くと云う事が、それだけで既に許す可
+らざる悪であった。勿論 下人は さっき迄自分が、盗人になる気でいた事なぞは と
+うに忘れているのである。
+ そこで、下人は、両足に力を入れて、いかなり、梯子から上へ飛び上がった そうし
+て聖柄(ひじりづか)の太刀に手をかけながら、大股に老婆の前へ歩みよった。老婆が
+驚いたのは 云う迄もない。
+ 老婆は、一目下人を見ると、まるで弩(いしゆみ)にでも弾かれたように 飛び上がっ
+た。
+ 「おのれ、どこへ行く。」
+ 下人は、老婆が屍骸につまづきながら、慌てふためいて逃げようとする行手を塞いで、
+こう罵った。老婆は、それでも下人をつきのけて行こうとする。下人は又、それを行か
+すまいとして、押しもどす。二人は屍骸の中で、暫、無言のまま、つかみ合った。しか
+し勝負は、はじめから、わかっている。下人はとうとう、老婆の腕をつかんで、無理に
+そこへねじ倒した。丁度、鶏(とり)の脚のような、骨と皮ばかりの腕である。
+ 「何をしていた。さあ何をしていた。云え。云わぬと これだぞよ。」
+ 下人は、老婆をつき放すと、いきなり、太刀の鞘を払って、白い鋼(はがね)の色を
+その眼の前へつきつけた。けれども、老婆は黙っている。両手をわなわなふるわせて、
+肩で息を切りながら、眼を、眼球がまぶたの外へ出そうになる程、見開いて、唖のよう
+に執拗(しゅうね)く黙っている。これを見ると、下人は始めて明白にこの老婆の生死
+が、全然、自分の意志に支配されていると云う事を意識した。そうして、この意識は、
+今まではげしく燃えていた憎悪の心を何時(いつ)の間にか冷ましてしまった。後に残っ
+たのは、唯、或仕事をして、それが円満に成就した時の、安らかな得意と満足とがある
+ばかりである。そこで、下人は、老婆を、見下げながら、少し声を柔げてこう云った。
+ 「己は検非違使(けびいし)の庁の役人などではない。今し方この門の下を通りかかっ
+た旅の者だ。だからお前に縄をかけて、どうしようと云うような事はない。唯今時分、
+この門の上で、何をしていたのだか、それを己に話さえすればいいのだ。」
+ すると、老婆は、見開いた眼を、一層大きくして、じっとその下人の顔を見守った。
+まぶたの赤くなった、肉食鳥のような、鋭い眼で見たのである。それから、皺で、殆、
+鼻と一つになった唇を何か物でも噛んでいるように動かした。細い喉で、尖った喉仏の
+動いているのが見える。その時、その喉から、鴉(からす)の啼くような声が、喘ぎ喘
+ぎ、下人の耳へ伝わって来た。
+ 「この髪を抜いてな、この女の髪を抜いてな、鬘(かつら)にしようと思うたの
+じゃ。」
+ 下人は、老婆の答が存外、平凡なのに失望した。そうして失望すると同時に、又前の
+憎悪が、冷な侮蔑と一しょに、心の中へはいって来た。すると その気色(けしき)が、
+先方へも通じたのであろう。老婆は、片手に、まだ屍骸の頭から奪(と)った長い抜け
+毛を持ったなり、蟇(ひき)のつぶやくような声で、口ごもりながら、こんな事を云っ
+た。
+ 成程、死人の髪の毛を抜くと云う事は、悪い事かね知れぬ。しかし、こう云う死人の
+多くは、皆 その位な事を、されてもいい人間ばかりである。現に、自分が今、髪を抜
+いた女などは、蛇を四寸ばかりずつに切って干したのを、干魚(ほしうお)だと云って、
+太刀帯(たちはき)の陣へ売りに行った。疫病にかかって死ななかったなら、今でも売
+りに行っていたかもしれない。しかも、この女の売る干魚は、味がよいと云うので、太
+刀帯たちが、欠かさず菜料に買っていたのである。自分は、この女のした事が悪いとは
+思わない。しなければ、饑死(えうじに)をするので、仕方がなくした事だからである。
+だから、又今、自分のしていた事も悪い事とは思わない。これもやはりしなければ、饑
+死をするので、仕方がなくする事だからである。そうして、その仕方がない事を、よく
+知っていたこの女は、自分のする事を許してくれるのにちがいないと思うからであ
+る。ーー老婆は、大体こんな意味の事を云った。
+ 下人は、太刀を鞘におさめて、その太刀の柄を左の手でおさえながら、冷然として、
+この話を聞いていた。勿論、 右の手では、赤く頬に膿を持た大きな面皰(にきび)を
+気にしながら、聞いているのである。しかし、之を聞いている中に、下人の心には、或
+勇気が生まれて来た。それは さっき、門の下でこの男に欠けていた勇気である。そう
+して、又さっき、この門の上へ上(あが)って、その老婆を捕えた時の勇気とは、全然、
+反対な方向に動こうとする勇気である。下人は、饑死をするか盗人になるかに迷わなかっ
+たばかりではない。その時のこの男の心もちから云えば、饑死などと云う事は、殆、考
+える事さえ出来ない程、意識の外に追い出されていた。
+ 「きっと、そうか。」
+ 老婆の話が完ると、下人は嘲(あざけ)るような声で念を押した。そうして、一足前
+へ出ると、不意に、右の手を面皰から離して、老婆の襟上(えりがみ)をつかみながら、
+こう云った。
+ 「では、己が引剥(ひはぎ)をしようと恨むまいな。己もそうしなければ、饑死をす
+る体なのだ。」
+ 下人は、すばやく、老婆の着物を剥ぎとった。それから、足にしがみつこうとする老
+婆を、手荒く屍骸の上へ蹴倒した。梯子の口までは、僅に五歩を数えるばかりである。
+下人は、剥ぎとった桧肌色の着物をわきにかかえて、またたく間に急な梯子を夜の底へ
+かけ下りた。
+ 暫、死んだように倒れていた老婆が、屍骸の中から、その裸の体を起こしたのは、そ
+れから間もなくの事である。老婆は、つぶやくような、うめくような声を立てながら、
+まだ燃えている火の光をたよりに、梯子の口まで、這って行った。そうして、そこから、
+短い白髪を倒(さかさま)にして、門の下を覗きこんだ。外には、唯、黒洞々(こくと
+うとう)たる夜があるばかりである。
+ 下人は、既に、雨を冒して、京都の町へ強盗を働きに急いでいた。
diff --git a/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-hz-gb2312.txt b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-hz-gb2312.txt
new file mode 100644
index 0000000..5a142ce
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-hz-gb2312.txt
@@ -0,0 +1,107 @@
+This file was derived from
+http://www.gutenberg.org/files/23864/23864-0.txt
+after converting from Traditional Chinese to Simplified Chinese.
+--------
+~{J<<F5ZR;~}
+
+~{KoWST;#:1xU_#,9zV.4sJB#,K@IzV.5X#,4fMvV.5@#,2;?I2;2lR2!#~}
+
+~{9J>-V.RTNeJB#,P#V.RT<F#,6xKwFdGi#:R;T;5@#,6~T;Ll#,H}T;5X#,KDT;=+#,NeT;7(!#~}
+
+~{5@U_#,AnCqSkIOM,Rb#,?ISkV.K@#,?ISkV.Iz#,6x2;N7N#R2#;LlU_#,RuQt!":.Jn!"J1VFR2#;5XU_#,T6=|!"OURW!"9cOA!"K@IzR2#;=+U_#,VG!"PE!"HJ!"SB!"QOR2#;7(U_#,GzVF!"9Y5@!"VwSCR2!#724KNeU_#,=+D*2;NE#,V*V.U_J$#,2;V*U_2;J$!#~}
+
+~{9JP#V.RT<F#,6xKwFdGi#,T;#:VwJkSP5@#?=+JkSPD\#?Ll5XJk5C#?7(AnJkPP#?1x~}?~{JkG?#?J?WdJkA7#?IM7#JkCw#?NaRT4KV*J$8:RS!#~}
+
+~{=+L}Na<F#,SCV.1XJ$#,AtV.#;=+2;L}Na<F#,SCV.1X0\#,H%V.!#~}
+
+~{<F@{RTL}#,DK~}?~{V.JF#,RTWtFdMb!#JFU_#,Rr@{6xVFH(R2!#~}
+
+~{1xU_#,9n5@R2!#9JD\6xJ>V.2;D\#,SC6xJ>V.2;SC#,=|6xJ>V.T6#,T66xJ>V.=|!#@{6xSUV.#,BR6xH!V.#,J56x18V.#,G?6x1\V.#,E-6xDSV.#,106x=>V.#,X}6x@MV.#,GW6x@kV.#,9%FdN^18#,3vFd2;Rb!#4K1x<RV.J$#,2;?IOH4+R2!#~}
+
+~{7rN4U=6xCmKcJ$U_#,5CKc6`R2#;N4U=6xCmKc2;J$U_#,5CKcIYR2!#6`KcJ$#,IYKc2;J$#,6x?vN^Kc:u#!NaRT4K9[V.#,J$8:<{RS!#~}
+
+~{WwU=5Z6~~}
+
+~{KoWST;#:72SC1xV.7(#,3[35G'~}?~{#,8o35G'3K#,4x<WJ.Mr#,G'@o@!A8!#TrDZMbV.7Q#,1v?MV.SC#,=:FaV.2D#,35<WV.7n#,HU7QG'=p#,H;:sJ.MrV.J&>YRS!#~}
+
+~{FdSCU=R2#,9sJ$#,>CTr6[1x4lHq#,9%3GTrA&G|#,>C1)J&Tr9zSC2;Wc!#7r6[1x4lHq#,G|A&~}?~{;u#,TrVn:n3KFd1W6xFp#,KdSPVGU_#,2;D\IFFd:sRS!#9J1xNEW>KY#,N46CGIV.>CR2!#7r1x>C6x9z@{U_#,N4V.SPR2!#9J2;>!V*SC1xV.:&U_#,Tr2;D\>!V*SC1xV.@{R2!#~}
+
+~{IFSC1xU_#,R[2;TY<.#,A82;H}TX#,H!SCl69z#,RrA8l65P#,9J>|J3?IWcR2!#9zV.F6l6J&U_T6Jd#,T6JdTr0YPUF6#;=|l6J&U_9sBt#,9sBtTr0YPU=_#,2F=_Tr<1l6GpR[!#A&G|2F~}?~{#,VPT-DZPil6<R#,0YPUV.7Q#,J.H%FdF_#;9+<RV.7Q#,FF>|0UBm#,<WkPJ8es#,j*~}?~{C,~}?~{#,GpE#4s35#,J.H%FdAy!#~}
+
+~{9JVG=+NqJ3l65P#,J35PR;VS#,51Na6~J.VS#;]=8QR;J/#,51Na6~J.J/!#9JI15PU_#,E-R2#;H!5PV.@{U_#,;uR2!#9J35U=#,5C35J.3KRTIO#,IMFdOH5CU_#,6x8|Fdl:Fl!#35TS6x3KV.#,WdIF6xQxV.#,JGN=J$5P6xRfG?!#~}
+
+~{9J1x9sJ$#,2;9s>C!#9JV*1xV.=+#,CqV.K>C|!#9z<R02N#V.VwR2!#~}
+
+~{D19%5ZH}~}
+
+~{KoWST;#:72SC1xV.7(#,H+9z~}?~{IO#,FF9z4NV.#;H+>|~}?~{IO#,FF>|4NV.#;H+BC~}?~{IO#,FFBC4NV.#;H+Wd~}?~{IO#,FFWd4NV.#;H+Ni~}?~{IO#,FFNi4NV.!#JG9J0YU=0YJ$#,7GIFV.IFU_R2#;2;U=6xG|HKV.1x#,IFV.IFU_R2!#~}
+
+~{9JIO1x7%D1#,Fd4N7%=;#,Fd4N7%1x#,FdOB9%3G!#9%3GV.7(#,~}?~{2;5CRQ!#P^~}???~{#,>_FwP5#,H}TB6x:s3I#;>`~}?~{#,SVH}TB6x:sRQ!#=+2;J$Fd7^#,6xRO8=V.#,I1J?H}7VV.R;#,6x3G2;0NU_#,4K9%V.TVR2!#~}
+
+~{9JIFSC1xU_#,G|HKV.1x#,6x7GU=R2#,0NHKV.3G6x7G9%R2#,;YHKV.9z6x7G>CR2#,1XRTH+Uyl6LlOB#,9J1x2;6Y6x@{?IH+#,4KD19%V.7(R2!#~}
+
+~{9JSC1xV.7(#,J.TrN'V.#,NeTr9%V.#,16Tr7VV.#,5PTrD\U=V.#,IYTrD\LSV.#,2;HtTrD\1\V.!#9JP!5PV.<a#,4s5PV.G\R2!#~}
+
+~{7r=+U_#,9zV.8(R2!#8(V\Tr9z1XG?#,8(O6Tr9z1XHu!#9J>}V.KyRT;<l6>|U_H}#:2;V*>|V.2;?IRT=x6xN=V.=x#,2;V*>|V.2;?IRTMK6xN=V.MK#,JGN=wc>|#;2;V*H}>|V.JB#,6xM,H}>|V.U~#,Tr>|J?;sRS#;2;V*H}>|V.H(#,6xM,H}>|V.HN#,Tr>|J?RIRS!#H}>|<H;sGRRI#,TrVn:nV.DQVARS!#JGN=BR>|R}J$!#~}
+
+~{9JV*J$SPNe#:V*?IRTU=Sk2;?IRTU=U_#,J$!#J6~}?~{9QV.SCU_#,J$!#IOOBM,S{U_#,J$!#RTS]4}2;S]U_#,J$!#=+D\6x>}2;SyU_#,J$!#4KNeU_#,V*J$V.5@R2!#~}
+
+~{9JT;#:V*<:V*1K#,0YU=2;~}?~{#;2;V*1K6xV*<:#,R;J$R;8:#;2;V*1K2;V*<:#,C?U=1X0\!#~}
+
+~{>|PN5ZKD~}
+
+~{KoWST;#:NtV.IFU=U_#,OH~}?~{2;?IJ$#,RT4}5PV.?IJ$!#2;?IJ$TZ<:#,?IJ$TZ5P!#9JIFU=U_#,D\~}?~{2;?IJ$#,2;D\J95P1X?IJ$!#9JT;#:J$?IV*#,6x2;?I~}?~{!#~}
+
+~{2;?IJ$U_#,JXR2#;?IJ$U_#,9%R2!#JXTr2;Wc#,9%TrSP~}?~{!#IFJXU_#,2Xl6>E5XV.OB#,IF9%U_#,6/l6>ELlV.IO#,9JD\WT1#6xH+J$R2!#~}
+
+~{<{J$2;9}~}?~{HKV.KyV*#,7GIFV.IFU_R2#;U=J$6xLlOBT;IF#,7GIFV.IFU_R2!#9J>YGo:A2;~}?~{6`A&#,<{HUTB2;~}?~{CwD?#,NE@Wv*2;~}?~{4O6z!#9EV.IFU=U_#,J$l6RWJ$U_R2!#9JIFU=U_V.J$R2#,N^VGC{#,N^SB9&#,9JFdU=J$2;_/!#2;_/U_#,FdKy4k1XJ$#,J$RQ0\U_R2!#9JIFU=U_#,OHA"l62;0\V.5X#,6x2;J'5PV.0\R2!#JG9JJ$1xOHJ$#,6x:sGsU=#,0\1xOHU=6x:sGsJ$!#IFSC1xU_#,P^5@6x1#7(#,9JD\~}?~{J$0\V.U~!#~}
+
+~{1x7(#:R;T;6H#,6~T;A?#,H}T;J}#,KDT;3F#,NeT;J$!#5XIz6H#,6HIzA?#,A?IzJ}#,J}Iz3F#,3FIzJ$!#9JJ$1xHtRT~}?~{3F~}?~{#,0\1xHtRT~}?~{3F~}?~{!#J$U_V.U=#,Ht>v;}K.l6G'XpV.~}?~{U_#,PNR2!#~}
+
+~{1xJF5ZNe~}
+
+~{KoWST;#:72VN~}?~{HgVN9Q#,7VJ}JGR2#;67~}?~{Hg679Q#,PNC{JGR2#;H}>|V.~}?~{#,?IJ91XJ\5P6xN^0\U_#,FfU}JGR2#;1xV.Ky<S#,HgRT~}?~{M6BQU_#,PiJ5JGR2!#~}
+
+~{72U=U_#,RTU}:O#,RTFfJ$!#9JIF3vFfU_#,N^GnHgLl5X#,2;=_Hg=-:#!#VU6x84J<#,HUTBJGR2!#K@6x~}?~{Iz#,KDJ1JGR2!#Iy2;9}Ne#,NeIyV.1d#,2;?IJ$L}R2#;I+2;9}Ne#,NeI+V.1d#,2;?IJ$9[R2#;N62;9}Ne#,NeN6V.1d#,2;?IJ$3"R2#;U=JF#,2;9}FfU}#,FfU}V.1d#,2;?IJ$GnR2!#FfU}O`Iz#,HgQ-;7V.N^6K#,JlD\GnV.TU#?~}
+
+~{<$K.V.<2#,VAl6F/J/U_#,JFR2#;~}?~{DqV.<2#,VAl6;YU[U_#,=ZR2!#JG9JIFU=U_#,FdJFOU#,Fd=Z6L!#JFHgUEes#,=ZHg7";z!#~}
+
+~{7W7W~}??~{#,67BR6x2;?IBRR2#;;k;kcgcg#,PNT26x2;?I0\R2!#BRIzl6VN#,GSIzl6SB#,HuIzl6G?!#VNBR#,J}R2#;SBGS#,JFR2#;G?Hu#,PNR2!#9JIF6/5PU_#,PNV.#,5P1X4SV.#;ShV.#,5P1XH!V.!#RT@{6/V.#,RTWd4}V.!#~}
+
+~{9JIFU=U_#,GsV.l6JF#,2;Tpl6HK#;9JD\TqHK6xHNJF!#HNJFU_#,FdU=HKR2#,HgW*D>J/!#D>J/V.PT#,02Tr>2#,N#Tr6/#,7=TrV9#,T2TrPP!#9JIFU=HKV.JF#,HgW*T2J/l6G'XpV.I=U_#,JFR2!#~}
+
+~{PiJ55ZAy~}
+
+~{KoWST;#:72OH4&U=5X6x4}5PU_X}#,:s4&U=5X6xGwU=U_@M!#~}
+
+~{9JIFU=U_#,VBHK6x2;VBl6HK!#D\J95PHKWTVAU_#,@{V.R2#;D\J95PHK2;5CVAU_#,:&V.R2!#9J5PX}D\@MV.#,1%D\<"V.#,02D\6/V.!#3vFdKy1XGw#,GwFdKy2;Rb!#PPG'@o6x2;@MU_#,PPl6N^HKV.5XR2#;9%6x1XH!U_#,9%FdKy2;JXR2!#JX6x1X9LU_#,JXFdKy2;9%R2!#~}
+
+~{9JIF9%U_#,5P2;V*FdKyJX#;IFJXU_#,5P2;V*FdKy9%!#N":uN":u#,VAl6N^PN#;Iq:uIq:u#,VAl6N^Iy#,9JD\~}?~{5PV.K>C|!#=x6x2;?ISyU_#,3eFdPiR2#;MK6x2;?IW7U_#,KY6x2;?I<0R2!#9JNRS{U=#,5PKd8_@]In95#,2;5C2;SkNRU=U_#,9%FdKy1X>HR2#;NR2;S{U=#,Kd;-5X6xJXV.#,5P2;5CSkNRU=U_#,9TFdKyV.R2!#9JPNHK6xNRN^PN#,TrNRW(6x5P7V!#NRW(~}?~{R;#,5P7V~}?~{J.#,JGRTJ.9%FdR;R2!#TrNR~}?~{5P9Q#,D\RT~}?~{;w9QU_#,TrNaV.KySkU=U_T<RS!#NaKySkU=V.5X2;?IV*#,2;?IV*Tr5PKy18U_6`#,5PKy18U_6`#,TrNaKySkU=U_9QRS!#9J18G0Tr:s9Q#,18:sTrG09Q#,18WsTrSR9Q#,18SRTrWs9Q#,N^Ky2;18#,TrN^Ky2;9Q!#9QU_#,18HKU_R2#;~}?~{U_#,J9HK18<:U_R2!#9JV*U=V.5X#,V*U=V.HU#,Tr?IG'@o6x;aU=#;2;V*U=V.5X#,2;V*U=HU#,TrWs2;D\>HSR#,SR2;D\>HWs#,G02;D\>H:s#,:s2;D\>HG0#,6x?vT6U_J}J.@o#,=|U_J}@o:u#!RTNa6HV.#,T=HKV.1xKd6`#,R`^IRfl6J$TU#!9JT;#:J$?I~}?~{R2!#5PKd~}?~{#,?IJ9N^67!#9J2_V.6xV*5CJ'V.<F#,:rV.6xV*6/>2V.@m#,PNV.6xV*K@IzV.5X#,=GV.6xV*SP~}?~{2;WcV.4&!#9JPN1xV.<+#,VAl6N^PN!#N^PNTrIn<d2;D\?z#,VGU_2;D\D1!#RrPN6x4kJ$l6~}?~{#,~}?~{2;D\V*!#HK=TV*NRKyRTJ$V.PN#,6xD*V*NaKyRTVFJ$V.PN!#9JFdU=J$2;~}?~{#,6xS&PNl6N^Gn!#7r1xPNOsK.#,K.V.PP1\8_6xGwOB#,1xV.PN1\J56x;wPi#;K.Rr5X6xVFAw#,1xRr5P6xVFJ$!#9J1xN^3#JF#,K.N^3#PN!#D\Rr5P1d;/6xH!J$U_#,N=V.Iq!#9JNePPN^3#J$#,KDJ1N^3#N;#,HUSP6L3$#,TBSPK@Iz!#~}
+
+~{>|Uy5ZF_~}
+
+~{KoWST;#:~} ~{72SC1xV.7(#,=+J\C|l6>}#,:O>|>[~}?~{#,=;:M6xIa#,D*DQl6>|Uy!#>|UyV.DQU_#,RTSX~}?~{V1#,RT;<~}?~{@{!#9JSXFdM>#,6xSUV.RT@{#,:sHK7"#,OHHKVA#,4KV*SXV1V.<FU_R2!#>|Uy~}?~{@{#,>|Uy~}?~{N#!#>Y>|6xUy@{Tr2;<0#,N/>|6xUy@{Tr~}?~{VX>h!#JG9J~}?~{<W6xGw#,HUR92;4&#,165@<fPP#,0Y~}?~{6xUy@{#,TrG\H}=+>|#,>"U_OH#,F#U_:s#,Fd7(J.R;6xVA#;NeJ.@o6xUy@{#,TrujIO=+>|#,Fd7(0kVA#;H}J.@o6xUy@{#,TrH}7VV.6~VA!#JG9J>|N^~}?~{VXTrMv#,N^A8J3TrMv#,N^N/;}TrMv!#9J2;V*Vn:nV.D1U_#,2;D\T%=;#;2;V*I=AV!"OUWh!">ZTsV.PNU_#,2;D\PP>|#;2;SCOg5<U_#,2;D\5C5X@{!#9J1xRTU)A"#,RT@{6/#,RT7V:M~}?~{1dU_R2!#9JFd<2Hg7g#,FdPlHgAV#,GVBSHg;p#,2;6/HgI=#,DQV*HgRu#,6/Hg@WUp!#BSOg7V~}?~{#,@*5X7V@{#,P|H(6x6/!#OHV*SXV1V.<FU_J$#,4K>|UyV.7(R2!#!6>|U~!7T;#:!0QT2;O`NE#,9J~}?~{V.=p9D#;JS2;O`<{#,9J~}?~{V.l:Fl!#!17r=p9Dl:FlU_#,KyRTR;CqV.6zD?R2!#Cq<HW(R;#,TrSBU_2;5C6@=x#,GSU_2;5C6@MK#,4KSC~}?~{V.7(R2!#9JR9U=6`=p9D#,VgU=6`l:Fl#,KyRT1dHKV.6zD?R2!#H}>|?I6aFx#,=+>|?I6aPD!#JG9J3/FxHq#,VgFx6h#,D:Fx9i!#IFSC1xU_#,1\FdHqFx#,;wFd6h9i#,4KVNFxU_R2!#RTVN4}BR#,RT>24};)#,4KVNPDU_R2!#RT=|4}T6#,RTX}4}@M#,RT1%4}<"#,4KVNA&U_R2!#N^Q{U}U}V.Fl#,N^;wLCLCV.3B#,4KVN1dU_R2!#9JSC1xV.7(#,8_AjNpOr#,13GpNpDf#,Qp11Np4S#,HqWdNp9%#,6|1xNpJ3#,9iJ&Np6t#,N'J&RE~}?~{#,Gn?\NpFH#,4KSC1xV.7(R2!#~}
+
+~{>E1d5Z0K~}
+
+~{KoWST;#:~} ~{72SC1xV.7(#,=+J\C|l6>}#,:O>|>[:O!#7:5XN^Ia#,ai5X:O=;#,>x5XN^At#,N'5XTrD1#,K@5XTrU=#,M>SPKy2;SI#,>|SPKy2;;w#,3GSPKy2;9%#,5XSPKy2;Uy#,>}C|SPKy2;J\!#9J=+M(l6>E1dV.@{U_#,V*SC1xRS#;=+2;M(>E1dV.@{#,KdV*5XPN#,2;D\5C5XV.@{RS#;VN1x2;V*>E1dV.Ju#,KdV*Ne@{#,2;D\5CHKV.SCRS!#JG9JVGU_V.BG#,1XTSl6@{:&#,TSl6@{6xNq?IPER2#,TSl6:&6x;<?I=bR2!#JG9JG|Vn:nU_RT:&#,R[Vn:nU_RTR5#,GwVn:nU_RT@{!#9JSC1xV.7(#,N^JQFd2;@4#,JQNaSPRT4}V.#;N^JQFd2;9%#,JQNaSPKy2;?I9%R2!#9J=+SPNeN##,1XK@?II1#,1XIz?IB2#,7^KY?INj#,A.=`?IHh#,0.Cq?I73!#724KNeU_#,=+V.9}R2#,SC1xV.TVR2!#82>|I1=+#,1XRTNeN##,2;?I2;2lR2!#~}
+
+~{PP>|5Z>E~}
+
+~{KoWST;#:724&>|O`5P#,>xI=R@~}?~{#,JSIz4&8_#,U=B!N^5G#,4K4&I=V.>|R2!#>xK.1XT6K.#,?M>xK.6x@4#,NpS-V.l6K.DZ#,An0k6I6x;wV.@{#,S{U=U_#,N^8=l6K.6xS-?M#,JSIz4&8_#,N^S-K.Aw#,4K4&K.IOV.>|R2!#>x3bTs#,N(X=H%N^At#,Ht=;>|l63bTsV.VP#,1XR@K.2]6x13~}?~{Jw#,4K4&3bTsV.>|R2!#F=B=4&RW#,SR138_#,G0K@:sIz#,4K4&F=B=V.>|R2!#724KKD>|V.@{#,;F5[V.KyRTJ$KD5[R2!#72>|:C8_6x6qOB#,9sQt6x<zRu#,QxIz6x4&J5#,>|N^0Y<2#,JGN=1XJ$!#GpAj5L7@#,1X4&FdQt6xSR13V.#,4K1xV.@{#,5XV.VzR2!#IOSjK.AwVA#,S{IfU_#,4}Fd6(R2!#725XSP>x='!"Ll>.!"Ll@N!"LlB^!"LlO]!"LlO6#,1XX=H%V.#,Np=|R2!#NaT6V.#,5P=|V.#;NaS-V.#,5P13V.!#>|ETSPOUWh!"dj>.!"]s]g!"P!AV!"~}??~{U_#,1X=w82KwV.#,4K7|~}?~{V.Ky4&R2!#5P=|6x>2U_#,JQFdOUR2#;T66xLtU=U_#,S{HKV.=xR2#;FdKy>SRWU_#,@{R2#;~}?~{Jw6/U_#,@4R2#;~}?~{2]6`UOU_#,RIR2#;DqFpU_#,7|R2#;J^:'U_#,82R2#;3>8_6xHqU_#,35@4R2#;106x9cU_#,M=@4R2#;I"6xLu4oU_#,iT~}?~{R2#;IY6xMy@4U_#,S*>|R2#;4G106x18U_#,=xR2#;4GG?6x=xG}U_#,MKR2#;Ga35OH3v>SFd2`U_#,3BR2#;N^T<6xGk:MU_#,D1R2#;1<W_6x3B1xU_#,FZR2#;0k=x0kMKU_#,SUR2#;UH6xA"U_#,<"R2#;<36xOHR{U_#,?JR2#;<{@{6x2;=xU_#,@MR2#;Dq</U_#,PiR2#;R9:tU_#,?VR2#;>|HEU_#,=+2;VXR2#;l:Fl6/U_#,BRR2#;@tE-U_#,>kR2#;I1BmHbJ3U_#,>|N^A8R2#;P|~}?~{2;75FdIaU_#,Gn?\R2#;W;W;tbtb#,PlSkHKQTU_#,J'~}?~{R2#;J}IMU_#,>=R2#;J}7#U_#,@'R2#;OH1)6x:sN7Fd~}?~{U_#,2;>+V.VAR2#;@4N/P;U_#,S{P]O"R2!#1xE-6xO`S-#,>C6x2;:O#,SV2;O`H%#,1X=w2lV.!#1x7G9sRf6`R2#,N)N^Nd=x#,WcRT2"A&AO5PH!HK6xRQ!#7rN)N^BG6xRW5PU_#,1XG\l6HK!#WdN4GW6x7#V.#,Tr2;7~#,2;7~TrDQSC!#WdRQGW8=6x7#2;PP#,Tr2;?ISC!#9J:OV.RTND#,FkV.RTNd#,JGN=1XH!!#AnKXPPRT=LFdCq#,TrCq7~#;AnKX2;PPRT=LFdCq#,TrCq2;7~!#AnKXPPU_#,Sk~}?~{O`5CR2!#~}
+
+~{5XPN5ZJ.~}
+
+~{KoWST;#:5XPNSPM(U_!"SP~}?~{U_!"SPV'U_!"SP0/U_!"SPOUU_!"SPT6U_!#NR?IRTMy#,1K?IRT@4#,T;M(!#M(PNU_#,OH>S8_Qt#,@{A85@#,RTU=Tr@{!#?IRTMy#,DQRT75#,T;~}?~{!#~}?~{PNU_#,5PN^18#,3v6xJ$V.#,5PHtSP18#,3v6x2;J$#,DQRT75#,2;@{!#NR3v6x2;@{#,1K3v6x2;@{#,T;V'!#V'PNU_#,5PKd@{NR#,NRN^3vR2#,R}6xH%V.#,An5P0k3v6x;wV.@{!#0/PNU_#,NROH>SV.#,1XS/V.RT4}5P!#Ht5POH>SV.#,S/6xNp4S#,2;S/6x4SV.!#OUPNU_#,NROH>SV.#,1X>S8_QtRT4}5P#;Ht5POH>SV.#,R}6xH%V.#,Np4SR2!#T6PNU_#,JF>yDQRTLtU=#,U=6x2;@{!#724KAyU_#,5XV.5@R2#,=+V.VAHN#,2;?I2;2lR2!#721xSPW_U_!"SP3[U_!"SPO]U_!"SP1@U_!"SPBRU_!"SP11U_!#724KAyU_#,7GLl5XV.TV#,=+V.9}R2!#7rJF>y#,RTR;;wJ.#,T;W_#;WdG?@tHu#,T;3[#;@tG?WdHu#,T;O]#;4s@tE-6x2;7~#,Sv5P~}?~{6xWTU=#,=+2;V*FdD\#,T;1@#;=+Hu2;QO#,=L5@2;Cw#,@tWdN^3##,3B1xW]:a#,T;BR#;=+2;D\AO5P#,RTIY:O~}?~{#,RTHu;wG?#,1xN^Q!7f#,T;11!#724KAyU_#,0\V.5@R2#,=+V.VAHN#,2;?I2;2lR2!#7r5XPNU_#,1xV.VzR2!#AO5PVFJ$#,<FOU0/T6=|#,IO=+V.5@R2!#V*4K6xSCU=U_1XJ$#,2;V*4K6xSCU=U_1X0\!#9JU=5@1XJ$#,VwT;N^U=#,1XU=?IR2#;U=5@2;J$#,VwT;1XU=#,N^U=?IR2!#9J=x2;GsC{#,MK2;1\Wo#,N(CqJG1##,6x@{l6Vw#,9zV.1&R2!#JSWdHgS$6y#,9J?IRTSkV.80InO*#;JSWdHg0.WS#,9J?ISkV.>cK@!#:q6x2;D\J9#,0.6x2;D\An#,BR6x2;D\VN#,F)Ht=>WS#,2;?ISCR2!#V*NaWdV.?IRT;w#,6x2;V*5PV.2;?I;w#,J$V.0kR2#;V*5PV.?I;w#,6x2;V*NaWdV.2;?IRT;w#,J$V.0kR2#;V*5PV.?I;w#,V*NaWdV.?IRT;w#,6x2;V*5XPNV.2;?IRTU=#,J$V.0kR2!#9JV*1xU_#,6/6x2;CT#,>Y6x2;Gn!#9JT;#:V*1KV*<:#,J$DK2;4y#;V*LlV*5X#,J$DK?IH+!#~}
+
+~{>E5X5ZJ.R;~}
+
+~{KoWST;#:SC1xV.7(#,SPI"5X#,SPGa5X#,SPUy5X#,SP=;5X#,SPai5X#,SPVX5X#,SP7:5X#,SPN'5X#,SPK@5X!#Vn:nWTU=Fd5XU_#,~}?~{I"5X#;HkHKV.5X2;InU_#,~}?~{Ga5X#;NR5CR`@{#,1K5CR`@{U_#,~}?~{Uy5X#;NR?IRTMy#,1K?IRT@4U_#,~}?~{=;5X#;Vn:nV.5XH}Jt#,OHVA6x5CLlOB~}?~{U_#,~}?~{ai5X#;HkHKV.5XIn#,133GRX6`U_#,~}?~{VX5X#;I=AV!"OUWh!">ZTs#,72DQPPV.5@U_#,~}?~{7:5X#;KySIHkU_0/#,Ky4S9iU_SX#,1K9Q?IRT;wNaV.~}?~{U_#,~}?~{N'5X#;<2U=Tr4f#,2;<2U=TrMvU_#,~}?~{K@5X!#JG9JI"5XTrN^U=#,Ga5XTrN^V9#,Uy5XTrN^9%#,=;5XTrN^>x#,ai5XTr:O=;#,VX5XTrBS#,7:5XTrPP#,N'5XTrD1#,K@5XTrU=!#9EV.IFSC1xU_#,D\J95PHKG0:s2;O`<0#,~}?~{9Q2;O`JQ#,9s<z2;O`>H#,IOOB2;O`JU#,Wd@k6x2;</#,1x:O6x2;Fk!#:Ol6@{6x6/#,2;:Ol6@{6xV9!#8RNJ5P~}?~{6xU{=+@4#,4}V.Ht:NT;#:OH6aFdKy0.TrL}RS!#1xV.GiVwKY#,3KHKV.2;<0!#SI2;S]V.5@#,9%FdKy2;=dR2!#72~}?~{?MV.5@#,InHkTrW(!#VwHK2;?K#,BSl6HDR0#,H}>|WcJ3!#=wQx6xNp@M#,2"Fx;}A&#,TK1x<FD1#,~}?~{2;?I2b!#M6V.N^KyMy#,K@GR2;11!#K@QI2;5C#,J?HK>!A&!#1xJ?IuO]Tr2;>e#,N^KyMyTr9L#,InHkTr>P#,2;5CRQTr67!#JG9JFd1x2;P^6x=d#,2;Gs6x5C#,2;T<6xGW#,2;An6xPE#,={OiH%RI#,VAK@N^KyV.!#NaJ?N^~}?~{2F#,7G6q;uR2#;N^~}?~{C|#,7G6qJYR2!#An7"V.HU#,J?WdWxU_LiU4=s#,YHNTU_Li=;RC#,M6V.N^KyMy#,Vn!"~}?~{V.SBR2!#9JIFSC1xU_#,F)HgBJH;!#BJH;U_#,3#I=V.I_R2!#;wFdJWTrN2VA#,;wFdN2TrJWVA#,;wFdVPTrJWN2>cVA!#8RNJ1x?IJ9HgBJH;:u#?T;?I!#7rNbHKSkT=HKO`6qR2#,51FdM,V[6x<C6xSv7g#,FdO`>HR2HgWsSRJV!#JG9J7=BmBqBV#,N4WcJQR2#;FkSBHgR;#,U~V.5@R2#;8UHa=T5C#,5XV.@mR2!#9JIFSC1xU_#,P/JVHtJ9R;HK#,2;5CRQR2!#=+>|V.JB#,>2RTSD#,U}RTVN#,D\S^J?WdV.6zD?#,J9V.N^V*#;RWFdJB#,8oFdD1#,J9HKN^J6#;RWFd>S#,SXFdM>#,J9Cq2;5CBG!#K'SkV.FZ#,Hg5G8_6xH%FdL]#;K'SkV.InHkVn:nV.5X#,6x7"Fd;z!#HtG}H:Qr#,G}6xMy#,G}6x@4#,D*V*KyV.!#>[H}>|V.~}?~{#,M6V.l6OU#,4KN==+>|V.JBR2!#>E5XV.1d#,G|IlV.A&#,HKGiV.@m#,2;?I2;2lR2!#72~}?~{?MV.5@#,InTrW(#,G3TrI"!#H%9zT=>36xJ&U_#,>x5XR2#;KD39U_#,ai5XR2#;HkInU_#,VX5XR2#;HkG3U_#,Ga5XR2#;139LG00/U_#,N'5XR2#;N^KyMyU_#,K@5XR2!#JG9JI"5XNa=+R;FdV>#,Ga5XNa=+J9V.Jt#,Uy5XNa=+GwFd:s#,=;5XNa=+=wFdJX#,=;5XNa=+9LFd=a#,ai5XNa=+=wFdJQ#,VX5XNa=+<LFdJ3#,7:5XNa=+=xFdM>#,N'5XNa=+H{Fd~}?~{#,K@5XNa=+J>V.RT2;;n!#9J1xV.Gi#:N'TrSy#,2;5CRQTr67#,9}Tr4S!#JG9J2;V*Vn:nV.D1U_#,2;D\T$=;#;2;V*I=AV!"OUWh!">ZTsV.PNU_#,2;D\PP>|#;2;SCOg5<#,2;D\5C5X@{!#KDNeU_#,R;2;V*#,7G0TMuV.1xR2!#7r0TMuV.1x#,7%4s9z#,TrFd~}?~{2;5C>[#;M~<Sl65P#,TrFd=;2;5C:O!#JG9J2;UyLlOBV.=;#,2;QxLlOBV.H(#,PE<:V.K=#,M~<Sl65P#,TrFd3G?I0N#,Fd9z?IcD!#J)N^7(V.IM#,P|N^U~V.An!#78H}>|V.~}?~{#,HtJ9R;HK!#78V.RTJB#,Np8fRTQT#;78V.RT:&#,Np8fRT@{!#M6V.Mv5XH;:s4f#,O]V.K@5XH;:sIz!#7r~}?~{O]l6:&#,H;:sD\~}?~{J$0\!#9J~}?~{1xV.JB#,TZK3Oj5PV.Rb#,2"5PR;Or#,G'@oI1=+#,JGN=GID\3IJB!#JG9JU~>YV.HU#,RD9XU[7{#,N^M(FdJ9#,@wl6@HCmV.IO#,RTVoFdJB!#5PHK?*~}?~{#,1XX=HkV.#,OHFdKy0.#,N"SkV.FZ#,<yD+Kf5P#,RT>vU=JB!#JG9JJ<Hg4&E.#,5PHK?*;'#;:sHgMQMC#,5P2;<0>\!#~}
+
+~{;p9%5ZJ.6~~}
+
+~{KoWST;#:72;p9%SPNe#:R;T;;pHK#,6~T;;p;}#,H}T;;p~}?~{#,KDT;;p?b#,NeT;;p6S!#PP;p1XSPRr#,Rr1XKX>_!#7";pSPJ1#,Fp;pSPHU!#J1U_#,LlV.ToR2!#HUU_#,TBTZ;~!"1Z!"Rm!"~}?~{R2!#724KKDK^U_#,7gFpV.HUR2!#72;p9%#,1XRrNe;pV.1d6xS&V.#:;p7"l6DZ#,TrTgS&V.l6Mb#;;p7"6xFd1x>2U_#,4}6xNp9%#,<+Fd;pA&#,?I4S6x4SV.#,2;?I4STrIO!#;p?I7"l6Mb#,N^4}l6DZ#,RTJ17"V.#,;p7"IO7g#,N^9%OB7g#,Vg7g>C#,R97gV9!#72>|1XV*Ne;pV.1d#,RTJ}JXV.!#9JRT;pWt9%U_Cw#,RTK.Wt9%U_G?!#K.?IRT>x#,2;?IRT6a!#7rU=J$9%H!6x2;6hFd9&U_PW#,C|T;!07QAt!1!#9JT;#:CwVwBGV.#,A<=+6hV.#,7G@{2;6/#,7G5C2;SC#,7GN#2;U=!#Vw2;?IRTE-6xPKJ&#,=+2;?IRT~}?~{6x9%U=!#:Ol6@{6x6/#,2;:Ol6@{6xIO!#E-?IRT84O2#,~}?~{?IRT84K5#,Mv9z2;?IRT844f#,K@U_2;?IRT84Iz!#9JCwVwIwV.#,A<=+>/V.!#4K029zH+>|V.5@R2!#~}
+
+~{SC<d5ZJ.H}~}
+
+~{KoWST;#:~} ~{72PKJ&J.Mr#,3vUwG'@o#,0YPUV.7Q#,9+<RV.7n#,HU7QG'=p#,DZMbI'6/#,5!l65@B7#,2;5C2YJBU_#,F_J.Mr<R!#O`JXJ}Dj#,RTUyR;HUV.J$#,6x0.>tB;0Y=p#,2;V*5PV.GiU_#,2;HJV.VAR2#,7GCqV.=+R2#,7GVwV.WtR2#,7GJ$V.VwR2!#9JCw>}OM=+KyRT6/6xJ$HK#,3I9&3vl6~}?~{U_#,OHV*R2!#OHV*U_#,2;?IH!l69mIq#,2;?IOsl6JB#,2;?IQil66H#,1XH!l6HK#,V*5PV.GiU_R2!#9JSC<dSPNe#:SPRr<d#,SPDZ<d#,SP74<d#,SPK@<d#,SPIz<d!#Ne<d>cFp#,D*V*Fd5@#,JGN=Iq<M#,HK>}V.1&R2!#Og<dU_#,RrFdOgHK6xSCV.#;DZ<dU_#,RrFd9YHK6xSCV.#;74<dU_#,RrFd5P<d6xSCV.#;K@<dU_#,~}??~{JBl6Mb#,AnNaNEV*V.6x4+l65P<dR2#;Iz<dU_#,741(R2!#9JH}>|V.JB#,D*GWl6<d#,IMD*:ql6<d#,JBD*C\l6<d#,7GJ%OM2;D\SC<d#,7GHJRe2;D\J9<d#,7GN"Cn2;D\5C<dV.J5!#N"TUN"TU#!N^Ky2;SC<dR2!#<dJBN47"6xOHNEU_#,<dSkKy8fU_<fK@!#72>|V.KyS{;w#,3GV.KyS{9%#,HKV.KyS{I1#,1XOHV*FdJX=+!"WsSR!"~}?~{U_!"CEU_!"IaHKV.PUC{#,AnNa<d1XKwV*V.!#5P<dV.@4<dNRU_#,Rr6x@{V.#,5<6xIaV.#,9J74<d?I5C6xSCR2#;RrJG6xV*V.#,9JOg<d!"DZ<d?I5C6xJ9R2#;RrJG6xV*V.#,9JK@<d~}??~{JB#,?IJ98f5P#;RrJG6xV*V.#,9JIz<d?IJ9HgFZ!#Ne<dV.JB#,Vw1XV*V.#,V*V.1XTZl674<d#,9J74<d2;?I2;:qR2!#NtRsV.PKR2#,RAV?TZOD#;V\V.PKR2#,B@Q@TZRs!#9JCw>}OM=+#,D\RTIOVG~}?~{<dU_#,1X3I4s9&!#4K1xV.R*#,H}>|V.KyJQ6x6/R2!#~}
diff --git a/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-utf-8.txt b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-utf-8.txt
new file mode 100644
index 0000000..e15fe5c
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-gb-levels-1-and-2-utf-8.txt
@@ -0,0 +1,107 @@
+This file was derived from
+http://www.gutenberg.org/files/23864/23864-0.txt
+after converting from Traditional Chinese to Simplified Chinese.
+--------
+始计第一
+
+孙子曰:兵者,国之大事,死生之地,存亡之道,不可不察也。
+
+故经之以五事,校之以计,而索其情:一曰道,二曰天,三曰地,四曰将,五曰法。
+
+道者,令民与上同意,可与之死,可与之生,而不畏危也;天者,阴阳、寒暑、时制也;地者,远近、险易、广狭、死生也;将者,智、信、仁、勇、严也;法者,曲制、官道、主用也。凡此五者,将莫不闻,知之者胜,不知者不胜。
+
+故校之以计,而索其情,曰:主孰有道?将孰有能?天地孰得?法令孰行?兵?孰强?士卒孰练?赏罚孰明?吾以此知胜负矣。
+
+将听吾计,用之必胜,留之;将不听吾计,用之必败,去之。
+
+计利以听,乃?之势,以佐其外。势者,因利而制权也。
+
+兵者,诡道也。故能而示之不能,用而示之不用,近而示之远,远而示之近。利而诱之,乱而取之,实而备之,强而避之,怒而挠之,卑而骄之,佚而劳之,亲而离之,攻其无备,出其不意。此兵家之胜,不可先传也。
+
+夫未战而庙算胜者,得算多也;未战而庙算不胜者,得算少也。多算胜,少算不胜,而况无算乎!吾以此观之,胜负见矣。
+
+作战第二
+
+孙子曰:凡用兵之法,驰车千?,革车千乘,带甲十万,千里馈粮。则内外之费,宾客之用,胶漆之材,车甲之奉,日费千金,然后十万之师举矣。
+
+其用战也,贵胜,久则钝兵挫锐,攻城则力屈,久暴师则国用不足。夫钝兵挫锐,屈力?货,则诸侯乘其弊而起,虽有智者,不能善其后矣。故兵闻拙速,未睹巧之久也。夫兵久而国利者,未之有也。故不尽知用兵之害者,则不能尽知用兵之利也。
+
+善用兵者,役不再籍,粮不三载,取用於国,因粮於敌,故军食可足也。国之贫於师者远输,远输则百姓贫;近於师者贵卖,贵卖则百姓竭,财竭则急於丘役。力屈财?,中原内虚於家,百姓之费,十去其七;公家之费,破军罢马,甲胄矢弩,戟?矛?,丘牛大车,十去其六。
+
+故智将务食於敌,食敌一钟,当吾二十钟;萁秆一石,当吾二十石。故杀敌者,怒也;取敌之利者,货也。故车战,得车十乘以上,赏其先得者,而更其旌旗。车杂而乘之,卒善而养之,是谓胜敌而益强。
+
+故兵贵胜,不贵久。故知兵之将,民之司命。国家安危之主也。
+
+谋攻第三
+
+孙子曰:凡用兵之法,全国?上,破国次之;全军?上,破军次之;全旅?上,破旅次之;全卒?上,破卒次之;全伍?上,破伍次之。是故百战百胜,非善之善者也;不战而屈人之兵,善之善者也。
+
+故上兵伐谋,其次伐交,其次伐兵,其下攻城。攻城之法,?不得已。修???,具器械,三月而后成;距?,又三月而后已。将不胜其忿,而蚁附之,杀士三分之一,而城不拔者,此攻之灾也。
+
+故善用兵者,屈人之兵,而非战也,拔人之城而非攻也,毁人之国而非久也,必以全争於天下,故兵不顿而利可全,此谋攻之法也。
+
+故用兵之法,十则围之,五则攻之,倍则分之,敌则能战之,少则能逃之,不若则能避之。故小敌之坚,大敌之擒也。
+
+夫将者,国之辅也。辅周则国必强,辅隙则国必弱。故君之所以患於军者三:不知军之不可以进而谓之进,不知军之不可以退而谓之退,是谓縻军;不知三军之事,而同三军之政,则军士惑矣;不知三军之权,而同三军之任,则军士疑矣。三军既惑且疑,则诸侯之难至矣。是谓乱军引胜。
+
+故知胜有五:知可以战与不可以战者,胜。识?寡之用者,胜。上下同欲者,胜。以虞待不虞者,胜。将能而君不御者,胜。此五者,知胜之道也。
+
+故曰:知己知彼,百战不?;不知彼而知己,一胜一负;不知彼不知己,每战必败。
+
+军形第四
+
+孙子曰:昔之善战者,先?不可胜,以待敌之可胜。不可胜在己,可胜在敌。故善战者,能?不可胜,不能使敌必可胜。故曰:胜可知,而不可?。
+
+不可胜者,守也;可胜者,攻也。守则不足,攻则有?。善守者,藏於九地之下,善攻者,动於九天之上,故能自保而全胜也。
+
+见胜不过?人之所知,非善之善者也;战胜而天下曰善,非善之善者也。故举秋毫不?多力,见日月不?明目,闻雷霆不?聪耳。古之善战者,胜於易胜者也。故善战者之胜也,无智名,无勇功,故其战胜不忒。不忒者,其所措必胜,胜已败者也。故善战者,先立於不败之地,而不失敌之败也。是故胜兵先胜,而后求战,败兵先战而后求胜。善用兵者,修道而保法,故能?胜败之政。
+
+兵法:一曰度,二曰量,三曰数,四曰称,五曰胜。地生度,度生量,量生数,数生称,称生胜。故胜兵若以?称?,败兵若以?称?。胜者之战,若决积水於千仞之?者,形也。
+
+兵势第五
+
+孙子曰:凡治?如治寡,分数是也;斗?如斗寡,形名是也;三军之?,可使必受敌而无败者,奇正是也;兵之所加,如以?投卵者,虚实是也。
+
+凡战者,以正合,以奇胜。故善出奇者,无穷如天地,不竭如江海。终而复始,日月是也。死而?生,四时是也。声不过五,五声之变,不可胜听也;色不过五,五色之变,不可胜观也;味不过五,五味之变,不可胜尝也;战势,不过奇正,奇正之变,不可胜穷也。奇正相生,如循环之无端,熟能穷之哉?
+
+激水之疾,至於漂石者,势也;?鸟之疾,至於毁折者,节也。是故善战者,其势险,其节短。势如张弩,节如发机。
+
+纷纷??,斗乱而不可乱也;浑浑沌沌,形圆而不可败也。乱生於治,怯生於勇,弱生於强。治乱,数也;勇怯,势也;强弱,形也。故善动敌者,形之,敌必从之;予之,敌必取之。以利动之,以卒待之。
+
+故善战者,求之於势,不责於人;故能择人而任势。任势者,其战人也,如转木石。木石之性,安则静,危则动,方则止,圆则行。故善战人之势,如转圆石於千仞之山者,势也。
+
+虚实第六
+
+孙子曰:凡先处战地而待敌者佚,后处战地而趋战者劳。
+
+故善战者,致人而不致於人。能使敌人自至者,利之也;能使敌人不得至者,害之也。故敌佚能劳之,饱能饥之,安能动之。出其所必趋,趋其所不意。行千里而不劳者,行於无人之地也;攻而必取者,攻其所不守也。守而必固者,守其所不攻也。
+
+故善攻者,敌不知其所守;善守者,敌不知其所攻。微乎微乎,至於无形;神乎神乎,至於无声,故能?敌之司命。进而不可御者,冲其虚也;退而不可追者,速而不可及也。故我欲战,敌虽高垒深沟,不得不与我战者,攻其所必救也;我不欲战,虽画地而守之,敌不得与我战者,乖其所之也。故形人而我无形,则我专而敌分。我专?一,敌分?十,是以十攻其一也。则我?敌寡,能以?击寡者,则吾之所与战者约矣。吾所与战之地不可知,不可知则敌所备者多,敌所备者多,则吾所与战者寡矣。故备前则后寡,备后则前寡,备左则右寡,备右则左寡,无所不备,则无所不寡。寡者,备人者也;?者,使人备己者也。故知战之地,知战之日,则可千里而会战;不知战之地,不知战日,则左不能救右,右不能救左,前不能救后,后不能救前,而况远者数十里,近者数里乎!以吾度之,越人之兵虽多,亦奚益於胜哉!故曰:胜可?也。敌虽?,可使无斗。故策之而知得失之计,候之而知动静之理,形之而知死生之地,角之而知有?不足之处。故形兵之极,至於无形。无形则深间不能窥,智者不能谋。因形而措胜於?,?不能知。人皆知我所以胜之形,而莫知吾所以制胜之形。故其战胜不?,而应形於无穷。夫兵形象水,水之行避高而趋下,兵之形避实而击虚;水因地而制流,兵因敌而制胜。故兵无常势,水无常形。能因敌变化而取胜者,谓之神。故五行无常胜,四时无常位,日有短长,月有死生。
+
+军争第七
+
+孙子曰: 凡用兵之法,将受命於君,合军聚?,交和而舍,莫难於军争。军争之难者,以迂?直,以患?利。故迂其途,而诱之以利,后人发,先人至,此知迂直之计者也。军争?利,军争?危。举军而争利则不及,委军而争利则?重捐。是故?甲而趋,日夜不处,倍道兼行,百?而争利,则擒三将军,劲者先,疲者后,其法十一而至;五十里而争利,则蹶上将军,其法半至;三十里而争利,则三分之二至。是故军无?重则亡,无粮食则亡,无委积则亡。故不知诸侯之谋者,不能豫交;不知山林、险阻、沮泽之形者,不能行军;不用乡导者,不能得地利。故兵以诈立,以利动,以分和?变者也。故其疾如风,其徐如林,侵掠如火,不动如山,难知如阴,动如雷震。掠乡分?,廓地分利,悬权而动。先知迂直之计者胜,此军争之法也。《军政》曰:“言不相闻,故?之金鼓;视不相见,故?之旌旗。”夫金鼓旌旗者,所以一民之耳目也。民既专一,则勇者不得独进,怯者不得独退,此用?之法也。故夜战多金鼓,昼战多旌旗,所以变人之耳目也。三军可夺气,将军可夺心。是故朝气锐,昼气惰,暮气归。善用兵者,避其锐气,击其惰归,此治气者也。以治待乱,以静待哗,此治心者也。以近待远,以佚待劳,以饱待饥,此治力者也。无邀正正之旗,无击堂堂之陈,此治变者也。故用兵之法,高陵勿向,背丘勿逆,佯北勿从,锐卒勿攻,饵兵勿食,归师勿遏,围师遗?,穷寇勿迫,此用兵之法也。
+
+九变第八
+
+孙子曰: 凡用兵之法,将受命於君,合军聚合。泛地无舍,衢地合交,绝地无留,围地则谋,死地则战,途有所不由,军有所不击,城有所不攻,地有所不争,君命有所不受。故将通於九变之利者,知用兵矣;将不通九变之利,虽知地形,不能得地之利矣;治兵不知九变之术,虽知五利,不能得人之用矣。是故智者之虑,必杂於利害,杂於利而务可信也,杂於害而患可解也。是故屈诸侯者以害,役诸侯者以业,趋诸侯者以利。故用兵之法,无恃其不来,恃吾有以待之;无恃其不攻,恃吾有所不可攻也。故将有五危,必死可杀,必生可虏,忿速可侮,廉洁可辱,爱民可烦。凡此五者,将之过也,用兵之灾也。覆军杀将,必以五危,不可不察也。
+
+行军第九
+
+孙子曰:凡处军相敌,绝山依?,视生处高,战隆无登,此处山之军也。绝水必远水,客绝水而来,勿迎之於水内,令半渡而击之利,欲战者,无附於水而迎客,视生处高,无迎水流,此处水上之军也。绝斥泽,唯亟去无留,若交军於斥泽之中,必依水草而背?树,此处斥泽之军也。平陆处易,右背高,前死后生,此处平陆之军也。凡此四军之利,黄帝之所以胜四帝也。凡军好高而恶下,贵阳而贱阴,养生而处实,军无百疾,是谓必胜。丘陵堤防,必处其阳而右背之,此兵之利,地之助也。上雨水流至,欲涉者,待其定也。凡地有绝涧、天井、天牢、天罗、天陷、天隙,必亟去之,勿近也。吾远之,敌近之;吾迎之,敌背之。军旁有险阻、潢井、蒹葭、小林、??者,必谨覆索之,此伏?之所处也。敌近而静者,恃其险也;远而挑战者,欲人之进也;其所居易者,利也;?树动者,来也;?草多障者,疑也;鸟起者,伏也;兽骇者,覆也;尘高而锐者,车来也;卑而广者,徒来也;散而条达者,樵?也;少而往来者,营军也;辞卑而备者,进也;辞强而进驱者,退也;轻车先出居其侧者,陈也;无约而请和者,谋也;奔走而陈兵者,期也;半进半退者,诱也;杖而立者,饥也;汲而先饮者,渴也;见利而不进者,劳也;鸟集者,虚也;夜呼者,恐也;军扰者,将不重也;旌旗动者,乱也;吏怒者,倦也;杀马肉食者,军无粮也;悬?不返其舍者,穷寇也;谆谆翕翕,徐与人言者,失?也;数赏者,窘也;数罚者,困也;先暴而后畏其?者,不精之至也;来委谢者,欲休息也。兵怒而相迎,久而不合,又不相去,必谨察之。兵非贵益多也,惟无武进,足以并力料敌取人而已。夫惟无虑而易敌者,必擒於人。卒未亲而罚之,则不服,不服则难用。卒已亲附而罚不行,则不可用。故合之以文,齐之以武,是谓必取。令素行以教其民,则民服;令素不行以教其民,则民不服。令素行者,与?相得也。
+
+地形第十
+
+孙子曰:地形有通者、有?者、有支者、有隘者、有险者、有远者。我可以往,彼可以来,曰通。通形者,先居高阳,利粮道,以战则利。可以往,难以返,曰?。?形者,敌无备,出而胜之,敌若有备,出而不胜,难以返,不利。我出而不利,彼出而不利,曰支。支形者,敌虽利我,我无出也,引而去之,令敌半出而击之利。隘形者,我先居之,必盈之以待敌。若敌先居之,盈而勿从,不盈而从之。险形者,我先居之,必居高阳以待敌;若敌先居之,引而去之,勿从也。远形者,势均难以挑战,战而不利。凡此六者,地之道也,将之至任,不可不察也。凡兵有走者、有驰者、有陷者、有崩者、有乱者、有北者。凡此六者,非天地之灾,将之过也。夫势均,以一击十,曰走;卒强吏弱,曰驰;吏强卒弱,曰陷;大吏怒而不服,遇敌?而自战,将不知其能,曰崩;将弱不严,教道不明,吏卒无常,陈兵纵横,曰乱;将不能料敌,以少合?,以弱击强,兵无选锋,曰北。凡此六者,败之道也,将之至任,不可不察也。夫地形者,兵之助也。料敌制胜,计险隘远近,上将之道也。知此而用战者必胜,不知此而用战者必败。故战道必胜,主曰无战,必战可也;战道不胜,主曰必战,无战可也。故进不求名,退不避罪,唯民是保,而利於主,国之宝也。视卒如婴儿,故可以与之赴深溪;视卒如爱子,故可与之俱死。厚而不能使,爱而不能令,乱而不能治,譬若骄子,不可用也。知吾卒之可以击,而不知敌之不可击,胜之半也;知敌之可击,而不知吾卒之不可以击,胜之半也;知敌之可击,知吾卒之可以击,而不知地形之不可以战,胜之半也。故知兵者,动而不迷,举而不穷。故曰:知彼知己,胜乃不殆;知天知地,胜乃可全。
+
+九地第十一
+
+孙子曰:用兵之法,有散地,有轻地,有争地,有交地,有衢地,有重地,有泛地,有围地,有死地。诸侯自战其地者,?散地;入人之地不深者,?轻地;我得亦利,彼得亦利者,?争地;我可以往,彼可以来者,?交地;诸侯之地三属,先至而得天下?者,?衢地;入人之地深,背城邑多者,?重地;山林、险阻、沮泽,凡难行之道者,?泛地;所由入者隘,所从归者迂,彼寡可以击吾之?者,?围地;疾战则存,不疾战则亡者,?死地。是故散地则无战,轻地则无止,争地则无攻,交地则无绝,衢地则合交,重地则掠,泛地则行,围地则谋,死地则战。古之善用兵者,能使敌人前后不相及,?寡不相恃,贵贱不相救,上下不相收,卒离而不集,兵合而不齐。合於利而动,不合於利而止。敢问敌?而整将来,待之若何曰:先夺其所爱则听矣。兵之情主速,乘人之不及。由不虞之道,攻其所不戒也。凡?客之道,深入则专。主人不克,掠於饶野,三军足食。谨养而勿劳,并气积力,运兵计谋,?不可测。投之无所往,死且不北。死焉不得,士人尽力。兵士甚陷则不惧,无所往则固,深入则拘,不得已则斗。是故其兵不修而戒,不求而得,不约而亲,不令而信,禁祥去疑,至死无所之。吾士无?财,非恶货也;无?命,非恶寿也。令发之日,士卒坐者涕沾襟,偃卧者涕交颐,投之无所往,诸、?之勇也。故善用兵者,譬如率然。率然者,常山之蛇也。击其首则尾至,击其尾则首至,击其中则首尾俱至。敢问兵可使如率然乎?曰可。夫吴人与越人相恶也,当其同舟而济而遇风,其相救也如左右手。是故方马埋轮,未足恃也;齐勇如一,政之道也;刚柔皆得,地之理也。故善用兵者,携手若使一人,不得已也。将军之事,静以幽,正以治,能愚士卒之耳目,使之无知;易其事,革其谋,使人无识;易其居,迂其途,使民不得虑。帅与之期,如登高而去其梯;帅与之深入诸侯之地,而发其机。若驱群羊,驱而往,驱而来,莫知所之。聚三军之?,投之於险,此谓将军之事也。九地之变,屈伸之力,人情之理,不可不察也。凡?客之道,深则专,浅则散。去国越境而师者,绝地也;四彻者,衢地也;入深者,重地也;入浅者,轻地也;背固前隘者,围地也;无所往者,死地也。是故散地吾将一其志,轻地吾将使之属,争地吾将趋其后,交地吾将谨其守,交地吾将固其结,衢地吾将谨其恃,重地吾将继其食,泛地吾将进其途,围地吾将塞其?,死地吾将示之以不活。故兵之情:围则御,不得已则斗,过则从。是故不知诸侯之谋者,不能预交;不知山林、险阻、沮泽之形者,不能行军;不用乡导,不能得地利。四五者,一不知,非霸王之兵也。夫霸王之兵,伐大国,则其?不得聚;威加於敌,则其交不得合。是故不争天下之交,不养天下之权,信己之私,威加於敌,则其城可拔,其国可隳。施无法之赏,悬无政之令。犯三军之?,若使一人。犯之以事,勿告以言;犯之以害,勿告以利。投之亡地然后存,陷之死地然后生。夫?陷於害,然后能?胜败。故?兵之事,在顺详敌之意,并敌一向,千里杀将,是谓巧能成事。是故政举之日,夷关折符,无通其使,厉於廊庙之上,以诛其事。敌人开?,必亟入之,先其所爱,微与之期,践墨随敌,以决战事。是故始如处女,敌人开户;后如脱兔,敌不及拒。
+
+火攻第十二
+
+孙子曰:凡火攻有五:一曰火人,二曰火积,三曰火?,四曰火库,五曰火队。行火必有因,因必素具。发火有时,起火有日。时者,天之燥也。日者,月在箕、壁、翼、?也。凡此四宿者,风起之日也。凡火攻,必因五火之变而应之:火发於内,则早应之於外;火发而其兵静者,待而勿攻,极其火力,可从而从之,不可从则上。火可发於外,无待於内,以时发之,火发上风,无攻下风,昼风久,夜风止。凡军必知五火之变,以数守之。故以火佐攻者明,以水佐攻者强。水可以绝,不可以夺。夫战胜攻取而不惰其功者凶,命曰“费留”。故曰:明主虑之,良将惰之,非利不动,非得不用,非危不战。主不可以怒而兴师,将不可以?而攻战。合於利而动,不合於利而上。怒可以复喜,?可以复说,亡国不可以复存,死者不可以复生。故明主慎之,良将警之。此安国全军之道也。
+
+用间第十三
+
+孙子曰: 凡兴师十万,出征千里,百姓之费,公家之奉,日费千金,内外骚动,怠於道路,不得操事者,七十万家。相守数年,以争一日之胜,而爱爵禄百金,不知敌之情者,不仁之至也,非民之将也,非主之佐也,非胜之主也。故明君贤将所以动而胜人,成功出於?者,先知也。先知者,不可取於鬼神,不可象於事,不可验於度,必取於人,知敌之情者也。故用间有五:有因间,有内间,有反间,有死间,有生间。五间俱起,莫知其道,是谓神纪,人君之宝也。乡间者,因其乡人而用之;内间者,因其官人而用之;反间者,因其敌间而用之;死间者,??事於外,令吾闻知之而传於敌间也;生间者,反报也。故三军之事,莫亲於间,赏莫厚於间,事莫密於间,非圣贤不能用间,非仁义不能使间,非微妙不能得间之实。微哉微哉!无所不用间也。间事未发而先闻者,间与所告者兼死。凡军之所欲击,城之所欲攻,人之所欲杀,必先知其守将、左右、?者、门者、舍人之姓名,令吾间必索知之。敌间之来间我者,因而利之,导而舍之,故反间可得而用也;因是而知之,故乡间、内间可得而使也;因是而知之,故死间??事,可使告敌;因是而知之,故生间可使如期。五间之事,主必知之,知之必在於反间,故反间不可不厚也。昔殷之兴也,伊挚在夏;周之兴也,吕牙在殷。故明君贤将,能以上智?间者,必成大功。此兵之要,三军之所恃而动也。
diff --git a/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-gbk.txt b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-gbk.txt
new file mode 100644
index 0000000..ef38e4b
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-gbk.txt
@@ -0,0 +1,107 @@
+This file was derived from
+http://www.gutenberg.org/files/23864/23864-0.txt
+after converting from Traditional Chinese to Simplified Chinese.
+--------
+ʼƵһ
+
+Իߣ֮£֮أ֮ɲҲ
+
+ʾ֮£У֮Լƣ飺һԻԻ죬ԻأԻԻ
+
+ߣͬ⣬֮֮ηΣҲߣʱҲߣԶסҲߣǡšʡ¡ҲߣơٵҲߣĪţ֪֮ʤ֪߲ʤ
+
+У֮Լƣ飬ԻеܣãУǿʿͷԴ֪ʤӡ
+
+ƣ֮ʤ֮ƣ֮ذܣȥ֮
+
+˞֮ƣ⡣ߣȨҲ
+
+ߣҲܶʾ֮ܣöʾ֮ãʾ֮ԶԶʾ֮֮Ҷȡ֮ʵ֮ǿ֮ŭ֮֮֮׶֮ޱ䲻⡣˱֮ʤȴҲ
+
+δսʤߣҲδս㲻ʤߣҲʤ㲻ʤԴ˹֮ʤӡ
+
+սڶ
+
+Իñ֮۳ǧ񆣬ﳵǧˣʮǧ֮ѣ֮ã֮ģ֮շǧȻʮ֮ʦӡ
+
+սҲʤ۱񣬹ñʦò㡣۱׶ߣӡʱ׾٣δ֮Ҳöߣδ֮Ҳʲ֪ñ֮ߣܾ֪ñ֮Ҳ
+
+ñߣ۲ټأȡ춹춵УʾʳҲ֮ƶʦԶ䣬Զƶʦ߹սߣƽۡƚԭ춼ң֮ѣʮȥߣ֮ѣƾʸꪘJìţ󳵣ʮȥ
+
+ǽʳ춵УʳһӣʮӣݽһʯʮʯɱߣŭҲȡ֮ߣҲʳսóʮϣȵߣ졣Ӷ֮ƶ֮νʤжǿ
+
+ʱʤá֪֮֮˾ҰΣ֮Ҳ
+
+
+Իñ֮ȫϣƹ֮ȫϣƾ֮ȫÞϣô֮ȫϣ֮ȫϣ֮ǹʰսʤ֮Ҳս֮֮Ҳ
+
+ϱıηη¹ǡ֮鲻ѡޙMݜе¶ɣ鞣¶ѡʤޣϸ֮ɱʿ֮һDzߣ˹֮Ҳ
+
+ñߣ֮սҲ֮ǶǹҲ֮ǾҲȫ£ʱٶȫı֮Ҳ
+
+ñ֮ʮΧ֮֮֮սܱ֮֮֮С֮ᣬ֮Ҳ
+
+ߣ֮Ҳǿ϶ʾ֮Ի춾֪֮Խν֪֮֮˶ν֮ˣν֪֮£֮ͬʿӣ֪֮Ȩ֮ͬΣʿӡȻɣ֮ӡνҾʤ
+
+֪ʤ壺֪ս벻սߣʤʶ֮ߣʤͬߣʤݴߣʤܶߣʤߣ֪ʤ֮Ҳ
+
+Ի֪֪ˣսO֪˶֪һʤһ֪˲֪ÿսذܡ
+
+
+Ի֮սߣȞ鲻ʤԴ֮ʤʤڼʤڵСսߣܞ鲻ʤʹбؿʤԻʤ֪ɞ顣
+
+ʤߣҲʤߣҲ㣬Nߣ춾ŵ֮£ƹߣ춾֮ϣԱȫʤҲ
+
+ʤ֪֮֮ҲսʤԻƣ֮Ҳʾ²Ŀ϶֮սߣʤʤҲս֮ʤҲ¹սʤ߯߯ߣʤʤѰҲսߣ춲֮أʧ֮Ҳǹʤʤսܱսʤñߣ޵ܞʤ֮
+
+һԻȣԻԻԻƣԻʤȣƣʤʤ愳㏣ܱ㏳愡ʤ֮սˮǧ֮GߣҲ
+
+
+ԻαιѣҲ綷ѣҲ֮ʹܵжްߣҲ֮ӣԴVͶߣʵҲ
+
+սߣϣʤƳߣأ罭նʼҲʱҲ壬֮䣬ʤҲɫ壬ɫ֮䣬ʤҲζ壬ζ֮䣬ʤҲսƣ֮䣬ʤҲѭ֮޶ˣ֮գ
+
+ˮ֮ƯʯߣҲv֮춻ߣҲǹսߣգڶ̡󣬽緢
+
+׷׼ҶҲ磬ԲɰҲΣ£ǿңҲӣҲǿҲƶߣ֮бش֮֮бȡ֮֮֮
+
+սߣ֮ƣˣ˶ơߣսҲתľʯľʯ֮ԣ򾲣Σ򶯣ֹԲСս֮ƣתԲʯǧ֮ɽߣҲ
+
+
+Իȴսضսضս͡
+
+սߣ˶ˡʹߣ֮Ҳʹ˲ߣ֮Ҳʵܼ֮֮֮ܶ⡣ǧߣ֮ҲȡߣҲضعߣҲ
+
+ƹߣв֪أߣв֪΢΢Σܞ֮˾ߣҲ˶׷ߣٶɼҲսòսߣؾҲҲս仭ض֮вսߣ֮Ҳ˶Σרз֡רһз֞ʮʮһҲұйѣԱߣ֮սԼӡս֮ز֪֪߶࣬߶࣬ս߹ӡʱǰѣǰѣҹѣѣѡߣҲߣʹ˱Ҳ֪ս֮أ֪ս֮գǧս֪ս֮أ֪սգܾңҲܾǰܾȺ󣬺ܾǰԶʮ֮Խ֮࣬ʤգԻʤɞҲ䱊ʹ޶ʲ֪֮ʧ֮ƣ֪֪֮֮֮֮أ֪֮N֮α֮Ρ䲻߲ܿıζʤ춱֪˽֪ʤ֮ΣĪ֪ʤ֮ΡսʤͣӦˮˮ֮бܸ߶£֮αʵ飻ˮضжʤʱ޳ƣˮ޳Ρб仯ȡʤߣν֮񡣹޳ʤʱ޳λж̳
+
+
+
+Ի ñ֮춾Ͼ۱ͶᣬĪ춾֮ߣ؞ֱԻ;֮˷ֱ֪֮ҲΣپ򲻼ίwؾ衣ǹʒԼ׶ҹУeȣƣߺ䷨ʮһʮϽ䷨ʮ֮ǹʾwʳίʲ֪֮ıߣԥ֪ɽ֡衢֮ߣо絼ߣܵõʱթԷֺ͞Ҳ伲磬֣𣬲ɽֱ֪طȨֱ֪֮ʤ˾֮ҲԻԲţʞ֮ģӲʞ֮졣ߣһ֮ĿҲרһ߲ö߲öˣñ֮Ҳҹսģս죬Ա֮ĿҲɶɶġǹʳ裬ĺ顣ñߣ飬ҲδңԾҲԽԶͣԱҲ֮죬޻֮£αҲñ֮򣬱棬ӣ𹥣ʳʦΧʦIȣñ֮Ҳ
+
+űڰ
+
+Ի ñ֮춾ϾۺϡᣬغϽΧıս;ɣܡʽͨ춾ű֮ߣ֪ñӣͨű֪֮Σܵõ֮ӣα֪ű֪֮֮ܵӡǹ֮ǣҲ춺ɽҲǹԺҵñ֮䲻Դ֮䲻ɹҲʽΣɱ²ٿ꣬裬ɷߣ֮Ҳñ֮ҲɱΣɲҲ
+
+оھ
+
+ԻУɽYߣս¡޵ǣ˴ɽ֮ҲˮԶˮ;ˮӭ֮ˮڣɶ֮սߣ޸ˮӭͣߣӭˮ˴ˮ֮ҲΨؽȥ춳֮Уˮݶ˴֮Ҳƽ½ףұߣǰ˴ƽ½֮Ҳľ֮Ƶ֮ʤĵҲø߶£ʵްټνʤ̷شұ֮˱֮֮Ҳˮߣ䶨Ҳо쾮Ρޡݡ϶ؽȥ֮ҲԶ֮н֮ӭ֮б֮衢꾮硢С֡[Cߣؽ֮˷֮ҲнߣҲԶսߣ֮ҲߣҲߣҲݶߣҲߣҲ޺ߣҲ߶ߣҲߣͽҲɢߣԒҲٶߣӪҲDZߣҲǿߣҲᳵȳߣҲԼߣıҲ߶±ߣҲߣҲȶߣҲߣҲߣҲߣҲҹߣҲߣҲ춯ߣҲŭߣҲɱʳߣҲIߣҲ׻׻⣬ߣʧҲߣҲߣҲȱη䱊ߣ֮ҲίлߣϢҲŭӭöϣֲȥؽ֮ǹҲΩԲϵȡ˶ѡΩǶ׵ߣˡδ׶֮򲻷á׸У򲻿áʺ֮ģ֮䣬νȡԽزԽ񲻷ߣ뱊Ҳ
+
+εʮ
+
+ԻͨߡВߡ֧ߡаߡߡԶߡҿ˿ԻͨͨߣȾӸսԷԻ졣ߣޱʤ֮бʤԷҳ˳Ի֧֧ߣң޳Ҳȥ֮а֮ߣȾ֮ӯ֮ԴСȾ֮ӯӣӯ֮ߣȾ֮ؾӸԴУȾ֮ȥ֮ҲԶߣƾսսߣ֮Ҳ֮ΣɲҲߡгߡߡбߡߡбߡߣ֣֮֮ҲƾһʮԻߣǿԻۣǿԻݣŭБս֪ܣԻϣ̵޳±ݺᣬԻңϵУٺϱǿѡ棬Իߣ֮Ҳ֮ΣɲҲߣ֮ҲϵʤհԶϽ֮Ҳ֪˶ս߱ʤ֪˶ս߱ذܡսʤԻսսҲսʤԻսսҲʽ˲ΨDZ֮ҲӤʿ֮Ϫ簮ӣʿ֮ʹҶΣƩӣҲ֪֮Ի֪֮ɻʤ֮Ҳ֪֮ɻ֪֮Իʤ֮Ҳ֪֮ɻ֪֮Ի֪֮սʤ֮Ҳ֪ߣԣٶԻ֪֪ʤ˲֪֪أʤ˿ȫ
+
+ŵصʮһ
+
+Իñ֮ɢأأأнأأصأзأΧأءսߣɢأ֮زߣأҵ˵ߣأҿ˿ߣ齻أ֮±ߣأ֮ضߣصأɽ֡衢󣬷֮ߣ鷺أ߰ӹأ˹ѿԻ֮ߣΧأս棬սߣءǹɢսֹ޹޾ϽصӣУΧıս֮ñߣʹǰ༰Ѳѣȣ²գ϶롣ֹʵб֮Իȶӡ֮٣֮ɲ֮Ҳ֮ר˲ˣҰʳͣ˱ı鲻ɲ⡣Ͷ֮Ҳɲãʿ˾ʿ򲻾壬̣У򶷡ǹ޶䣬ãԼףţȥɣ֮ʿNƣǶҲNǶҲ֮գʿմ齻ãͶ֮֮ҲñߣƩȻȻߣɽ֮ҲβββʱʹȻԻɡԽҲͬ۶ö磬Ҳ֡ǹʷ֣δҲһ֮ҲԵã֮ҲñߣЯʹһˣҲ֮£ģΣʿ֮Ŀʹ֪֮£ıʹʶӣ;ʹ񲻵ǡ˧֮ڣǸ߶ȥݣ˧֮֮أȺĪ֪֮֮Ͷ֮գν֮Ҳŵ֮䣬֮֮ɲҲ֮רdzɢȥԽʦߣҲijߣҲߣصҲdzߣҲǰߣΧҲߣҲǹɢὫһ־Ὣʹ֮Ὣ󣬽ὫأὫᣬὫѣصὫʳὫ;ΧὫIὫʾ֮Բʱ֮飺Χ򶷣ӡǹʲ֪֮ıߣԤ֪ɽ֡衢֮ߣо絼ܵõߣһ֪ǰ֮Ҳ֮䱊þۣ춵У佻úϡǹʲ֮֮Ȩż֮˽춵УǿɰΣġʩ޷֮֮ͣ֮ʹһˡ֮£ԣ֮ԺͶ֮Ȼ棬֮Ȼ춺Ȼܞʤܡʞ֮£˳֮⣬һǧɱνܳ¡ǹ֮գĹ۷ͨʹ֮ϣ¡˿Hؽ֮΢֮ڣīУԾս¡ǹʼ紦Ů˿ãвܡ
+
+𹥵ʮ
+
+Ի壺һԻˣԻԻwԻ⣬Իӡлؾߡʱաʱߣ֮ҲߣڻڡFҲߣ֮Ҳ𹥣֮Ӧ֮ڣӦ֮⣻𷢶ߣ𹥣ɴӶ֮ɴϡɷ⣬޴ڣʱ֮Ϸ磬޹·磬ãҹֹ֪֮䣬֮ԻˮǿˮԾԶᡣսʤȡ书ףԻԻ֮֮ǵòãΣսŭʦԑCսϡŭԸϲCԸ˵Ը棬߲Ը֮֮˰ȫ֮Ҳ
+
+üʮ
+
+Ի ʦʮ򣬳ǧ֮ѣ֮շǧɧ춵·òߣʮҡ꣬һ֮ʤ»ٽ𣬲֪֮ߣ֮Ҳ֮Ҳ֮Ҳʤ֮ҲͽԶʤˣɹ춱ߣ֪Ҳ֪ߣȡ춹񣬲£춶ȣȡˣ֪֮Ҳü壺䣬ڼ䣬з䣬䣬䡣Ī֪νͣ˾֮Ҳߣ˶֮ڼߣ˶֮ߣм֮ߣN⣬֪֮춵мҲߣҲ֮£Ī춼䣬Ī춼䣬Ī춼䣬ʥͲü䣬岻ʹ䣬΢ܵü֮ʵ΢΢գüҲδߣ߼֮֮֮ɱ֪ؽҡ]ߡߡ֪֮֮м֮ߣ֮֮ʷɵöҲǶ֪֮䡢ڼɵöʹҲǶ֪֮N£ʹУǶ֪֮ʹڡ֮£֪֪֮֮춷䣬ʷ䲻ɲҲ֮Ҳֿģ֮Ҳ󡣹ͽǞߣسɴ󹦡˱֮Ҫ֮ѶҲ
diff --git a/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-utf-8.txt b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-utf-8.txt
new file mode 100644
index 0000000..375e1ad
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-simplified-utf-8.txt
@@ -0,0 +1,107 @@
+This file was derived from
+http://www.gutenberg.org/files/23864/23864-0.txt
+after converting from Traditional Chinese to Simplified Chinese.
+--------
+始计第一
+
+孙子曰:兵者,国之大事,死生之地,存亡之道,不可不察也。
+
+故经之以五事,校之以计,而索其情:一曰道,二曰天,三曰地,四曰将,五曰法。
+
+道者,令民与上同意,可与之死,可与之生,而不畏危也;天者,阴阳、寒暑、时制也;地者,远近、险易、广狭、死生也;将者,智、信、仁、勇、严也;法者,曲制、官道、主用也。凡此五者,将莫不闻,知之者胜,不知者不胜。
+
+故校之以计,而索其情,曰:主孰有道?将孰有能?天地孰得?法令孰行?兵眾孰强?士卒孰练?赏罚孰明?吾以此知胜负矣。
+
+将听吾计,用之必胜,留之;将不听吾计,用之必败,去之。
+
+计利以听,乃為之势,以佐其外。势者,因利而制权也。
+
+兵者,诡道也。故能而示之不能,用而示之不用,近而示之远,远而示之近。利而诱之,乱而取之,实而备之,强而避之,怒而挠之,卑而骄之,佚而劳之,亲而离之,攻其无备,出其不意。此兵家之胜,不可先传也。
+
+夫未战而庙算胜者,得算多也;未战而庙算不胜者,得算少也。多算胜,少算不胜,而况无算乎!吾以此观之,胜负见矣。
+
+作战第二
+
+孙子曰:凡用兵之法,驰车千駟,革车千乘,带甲十万,千里馈粮。则内外之费,宾客之用,胶漆之材,车甲之奉,日费千金,然后十万之师举矣。
+
+其用战也,贵胜,久则钝兵挫锐,攻城则力屈,久暴师则国用不足。夫钝兵挫锐,屈力殫货,则诸侯乘其弊而起,虽有智者,不能善其后矣。故兵闻拙速,未睹巧之久也。夫兵久而国利者,未之有也。故不尽知用兵之害者,则不能尽知用兵之利也。
+
+善用兵者,役不再籍,粮不三载,取用於国,因粮於敌,故军食可足也。国之贫於师者远输,远输则百姓贫;近於师者贵卖,贵卖则百姓竭,财竭则急於丘役。力屈财殫,中原内虚於家,百姓之费,十去其七;公家之费,破军罢马,甲胄矢弩,戟楯矛櫓,丘牛大车,十去其六。
+
+故智将务食於敌,食敌一钟,当吾二十钟;萁秆一石,当吾二十石。故杀敌者,怒也;取敌之利者,货也。故车战,得车十乘以上,赏其先得者,而更其旌旗。车杂而乘之,卒善而养之,是谓胜敌而益强。
+
+故兵贵胜,不贵久。故知兵之将,民之司命。国家安危之主也。
+
+谋攻第三
+
+孙子曰:凡用兵之法,全国為上,破国次之;全军為上,破军次之;全旅為上,破旅次之;全卒為上,破卒次之;全伍為上,破伍次之。是故百战百胜,非善之善者也;不战而屈人之兵,善之善者也。
+
+故上兵伐谋,其次伐交,其次伐兵,其下攻城。攻城之法,為不得已。修櫓轒轀,具器械,三月而后成;距闉,又三月而后已。将不胜其忿,而蚁附之,杀士三分之一,而城不拔者,此攻之灾也。
+
+故善用兵者,屈人之兵,而非战也,拔人之城而非攻也,毁人之国而非久也,必以全争於天下,故兵不顿而利可全,此谋攻之法也。
+
+故用兵之法,十则围之,五则攻之,倍则分之,敌则能战之,少则能逃之,不若则能避之。故小敌之坚,大敌之擒也。
+
+夫将者,国之辅也。辅周则国必强,辅隙则国必弱。故君之所以患於军者三:不知军之不可以进而谓之进,不知军之不可以退而谓之退,是谓縻军;不知三军之事,而同三军之政,则军士惑矣;不知三军之权,而同三军之任,则军士疑矣。三军既惑且疑,则诸侯之难至矣。是谓乱军引胜。
+
+故知胜有五:知可以战与不可以战者,胜。识眾寡之用者,胜。上下同欲者,胜。以虞待不虞者,胜。将能而君不御者,胜。此五者,知胜之道也。
+
+故曰:知己知彼,百战不貽;不知彼而知己,一胜一负;不知彼不知己,每战必败。
+
+军形第四
+
+孙子曰:昔之善战者,先為不可胜,以待敌之可胜。不可胜在己,可胜在敌。故善战者,能為不可胜,不能使敌必可胜。故曰:胜可知,而不可為。
+
+不可胜者,守也;可胜者,攻也。守则不足,攻则有餘。善守者,藏於九地之下,善攻者,动於九天之上,故能自保而全胜也。
+
+见胜不过眾人之所知,非善之善者也;战胜而天下曰善,非善之善者也。故举秋毫不為多力,见日月不為明目,闻雷霆不為聪耳。古之善战者,胜於易胜者也。故善战者之胜也,无智名,无勇功,故其战胜不忒。不忒者,其所措必胜,胜已败者也。故善战者,先立於不败之地,而不失敌之败也。是故胜兵先胜,而后求战,败兵先战而后求胜。善用兵者,修道而保法,故能為胜败之政。
+
+兵法:一曰度,二曰量,三曰数,四曰称,五曰胜。地生度,度生量,量生数,数生称,称生胜。故胜兵若以鎰称銖,败兵若以銖称鎰。胜者之战,若决积水於千仞之谿者,形也。
+
+兵势第五
+
+孙子曰:凡治眾如治寡,分数是也;斗眾如斗寡,形名是也;三军之眾,可使必受敌而无败者,奇正是也;兵之所加,如以碫投卵者,虚实是也。
+
+凡战者,以正合,以奇胜。故善出奇者,无穷如天地,不竭如江海。终而复始,日月是也。死而復生,四时是也。声不过五,五声之变,不可胜听也;色不过五,五色之变,不可胜观也;味不过五,五味之变,不可胜尝也;战势,不过奇正,奇正之变,不可胜穷也。奇正相生,如循环之无端,熟能穷之哉?
+
+激水之疾,至於漂石者,势也;鷙鸟之疾,至於毁折者,节也。是故善战者,其势险,其节短。势如张弩,节如发机。
+
+纷纷紜紜,斗乱而不可乱也;浑浑沌沌,形圆而不可败也。乱生於治,怯生於勇,弱生於强。治乱,数也;勇怯,势也;强弱,形也。故善动敌者,形之,敌必从之;予之,敌必取之。以利动之,以卒待之。
+
+故善战者,求之於势,不责於人;故能择人而任势。任势者,其战人也,如转木石。木石之性,安则静,危则动,方则止,圆则行。故善战人之势,如转圆石於千仞之山者,势也。
+
+虚实第六
+
+孙子曰:凡先处战地而待敌者佚,后处战地而趋战者劳。
+
+故善战者,致人而不致於人。能使敌人自至者,利之也;能使敌人不得至者,害之也。故敌佚能劳之,饱能饥之,安能动之。出其所必趋,趋其所不意。行千里而不劳者,行於无人之地也;攻而必取者,攻其所不守也。守而必固者,守其所不攻也。
+
+故善攻者,敌不知其所守;善守者,敌不知其所攻。微乎微乎,至於无形;神乎神乎,至於无声,故能為敌之司命。进而不可御者,冲其虚也;退而不可追者,速而不可及也。故我欲战,敌虽高垒深沟,不得不与我战者,攻其所必救也;我不欲战,虽画地而守之,敌不得与我战者,乖其所之也。故形人而我无形,则我专而敌分。我专為一,敌分為十,是以十攻其一也。则我眾敌寡,能以眾击寡者,则吾之所与战者约矣。吾所与战之地不可知,不可知则敌所备者多,敌所备者多,则吾所与战者寡矣。故备前则后寡,备后则前寡,备左则右寡,备右则左寡,无所不备,则无所不寡。寡者,备人者也;眾者,使人备己者也。故知战之地,知战之日,则可千里而会战;不知战之地,不知战日,则左不能救右,右不能救左,前不能救后,后不能救前,而况远者数十里,近者数里乎!以吾度之,越人之兵虽多,亦奚益於胜哉!故曰:胜可為也。敌虽眾,可使无斗。故策之而知得失之计,候之而知动静之理,形之而知死生之地,角之而知有餘不足之处。故形兵之极,至於无形。无形则深间不能窥,智者不能谋。因形而措胜於眾,眾不能知。人皆知我所以胜之形,而莫知吾所以制胜之形。故其战胜不復,而应形於无穷。夫兵形象水,水之行避高而趋下,兵之形避实而击虚;水因地而制流,兵因敌而制胜。故兵无常势,水无常形。能因敌变化而取胜者,谓之神。故五行无常胜,四时无常位,日有短长,月有死生。
+
+军争第七
+
+孙子曰: 凡用兵之法,将受命於君,合军聚眾,交和而舍,莫难於军争。军争之难者,以迂為直,以患為利。故迂其途,而诱之以利,后人发,先人至,此知迂直之计者也。军争為利,军争為危。举军而争利则不及,委军而争利则輜重捐。是故捲甲而趋,日夜不处,倍道兼行,百裡而争利,则擒三将军,劲者先,疲者后,其法十一而至;五十里而争利,则蹶上将军,其法半至;三十里而争利,则三分之二至。是故军无輜重则亡,无粮食则亡,无委积则亡。故不知诸侯之谋者,不能豫交;不知山林、险阻、沮泽之形者,不能行军;不用乡导者,不能得地利。故兵以诈立,以利动,以分和為变者也。故其疾如风,其徐如林,侵掠如火,不动如山,难知如阴,动如雷震。掠乡分眾,廓地分利,悬权而动。先知迂直之计者胜,此军争之法也。《军政》曰:“言不相闻,故為之金鼓;视不相见,故為之旌旗。”夫金鼓旌旗者,所以一民之耳目也。民既专一,则勇者不得独进,怯者不得独退,此用眾之法也。故夜战多金鼓,昼战多旌旗,所以变人之耳目也。三军可夺气,将军可夺心。是故朝气锐,昼气惰,暮气归。善用兵者,避其锐气,击其惰归,此治气者也。以治待乱,以静待哗,此治心者也。以近待远,以佚待劳,以饱待饥,此治力者也。无邀正正之旗,无击堂堂之陈,此治变者也。故用兵之法,高陵勿向,背丘勿逆,佯北勿从,锐卒勿攻,饵兵勿食,归师勿遏,围师遗闕,穷寇勿迫,此用兵之法也。
+
+九变第八
+
+孙子曰: 凡用兵之法,将受命於君,合军聚合。泛地无舍,衢地合交,绝地无留,围地则谋,死地则战,途有所不由,军有所不击,城有所不攻,地有所不争,君命有所不受。故将通於九变之利者,知用兵矣;将不通九变之利,虽知地形,不能得地之利矣;治兵不知九变之术,虽知五利,不能得人之用矣。是故智者之虑,必杂於利害,杂於利而务可信也,杂於害而患可解也。是故屈诸侯者以害,役诸侯者以业,趋诸侯者以利。故用兵之法,无恃其不来,恃吾有以待之;无恃其不攻,恃吾有所不可攻也。故将有五危,必死可杀,必生可虏,忿速可侮,廉洁可辱,爱民可烦。凡此五者,将之过也,用兵之灾也。覆军杀将,必以五危,不可不察也。
+
+行军第九
+
+孙子曰:凡处军相敌,绝山依穀,视生处高,战隆无登,此处山之军也。绝水必远水,客绝水而来,勿迎之於水内,令半渡而击之利,欲战者,无附於水而迎客,视生处高,无迎水流,此处水上之军也。绝斥泽,唯亟去无留,若交军於斥泽之中,必依水草而背眾树,此处斥泽之军也。平陆处易,右背高,前死后生,此处平陆之军也。凡此四军之利,黄帝之所以胜四帝也。凡军好高而恶下,贵阳而贱阴,养生而处实,军无百疾,是谓必胜。丘陵堤防,必处其阳而右背之,此兵之利,地之助也。上雨水流至,欲涉者,待其定也。凡地有绝涧、天井、天牢、天罗、天陷、天隙,必亟去之,勿近也。吾远之,敌近之;吾迎之,敌背之。军旁有险阻、潢井、蒹葭、小林、蘙薈者,必谨覆索之,此伏姦之所处也。敌近而静者,恃其险也;远而挑战者,欲人之进也;其所居易者,利也;眾树动者,来也;眾草多障者,疑也;鸟起者,伏也;兽骇者,覆也;尘高而锐者,车来也;卑而广者,徒来也;散而条达者,樵採也;少而往来者,营军也;辞卑而备者,进也;辞强而进驱者,退也;轻车先出居其侧者,陈也;无约而请和者,谋也;奔走而陈兵者,期也;半进半退者,诱也;杖而立者,饥也;汲而先饮者,渴也;见利而不进者,劳也;鸟集者,虚也;夜呼者,恐也;军扰者,将不重也;旌旗动者,乱也;吏怒者,倦也;杀马肉食者,军无粮也;悬甀不返其舍者,穷寇也;谆谆翕翕,徐与人言者,失眾也;数赏者,窘也;数罚者,困也;先暴而后畏其眾者,不精之至也;来委谢者,欲休息也。兵怒而相迎,久而不合,又不相去,必谨察之。兵非贵益多也,惟无武进,足以并力料敌取人而已。夫惟无虑而易敌者,必擒於人。卒未亲而罚之,则不服,不服则难用。卒已亲附而罚不行,则不可用。故合之以文,齐之以武,是谓必取。令素行以教其民,则民服;令素不行以教其民,则民不服。令素行者,与眾相得也。
+
+地形第十
+
+孙子曰:地形有通者、有掛者、有支者、有隘者、有险者、有远者。我可以往,彼可以来,曰通。通形者,先居高阳,利粮道,以战则利。可以往,难以返,曰掛。掛形者,敌无备,出而胜之,敌若有备,出而不胜,难以返,不利。我出而不利,彼出而不利,曰支。支形者,敌虽利我,我无出也,引而去之,令敌半出而击之利。隘形者,我先居之,必盈之以待敌。若敌先居之,盈而勿从,不盈而从之。险形者,我先居之,必居高阳以待敌;若敌先居之,引而去之,勿从也。远形者,势均难以挑战,战而不利。凡此六者,地之道也,将之至任,不可不察也。凡兵有走者、有驰者、有陷者、有崩者、有乱者、有北者。凡此六者,非天地之灾,将之过也。夫势均,以一击十,曰走;卒强吏弱,曰驰;吏强卒弱,曰陷;大吏怒而不服,遇敌懟而自战,将不知其能,曰崩;将弱不严,教道不明,吏卒无常,陈兵纵横,曰乱;将不能料敌,以少合眾,以弱击强,兵无选锋,曰北。凡此六者,败之道也,将之至任,不可不察也。夫地形者,兵之助也。料敌制胜,计险隘远近,上将之道也。知此而用战者必胜,不知此而用战者必败。故战道必胜,主曰无战,必战可也;战道不胜,主曰必战,无战可也。故进不求名,退不避罪,唯民是保,而利於主,国之宝也。视卒如婴儿,故可以与之赴深溪;视卒如爱子,故可与之俱死。厚而不能使,爱而不能令,乱而不能治,譬若骄子,不可用也。知吾卒之可以击,而不知敌之不可击,胜之半也;知敌之可击,而不知吾卒之不可以击,胜之半也;知敌之可击,知吾卒之可以击,而不知地形之不可以战,胜之半也。故知兵者,动而不迷,举而不穷。故曰:知彼知己,胜乃不殆;知天知地,胜乃可全。
+
+九地第十一
+
+孙子曰:用兵之法,有散地,有轻地,有争地,有交地,有衢地,有重地,有泛地,有围地,有死地。诸侯自战其地者,為散地;入人之地不深者,為轻地;我得亦利,彼得亦利者,為争地;我可以往,彼可以来者,為交地;诸侯之地三属,先至而得天下眾者,為衢地;入人之地深,背城邑多者,為重地;山林、险阻、沮泽,凡难行之道者,為泛地;所由入者隘,所从归者迂,彼寡可以击吾之眾者,為围地;疾战则存,不疾战则亡者,為死地。是故散地则无战,轻地则无止,争地则无攻,交地则无绝,衢地则合交,重地则掠,泛地则行,围地则谋,死地则战。古之善用兵者,能使敌人前后不相及,眾寡不相恃,贵贱不相救,上下不相收,卒离而不集,兵合而不齐。合於利而动,不合於利而止。敢问敌眾而整将来,待之若何曰:先夺其所爱则听矣。兵之情主速,乘人之不及。由不虞之道,攻其所不戒也。凡為客之道,深入则专。主人不克,掠於饶野,三军足食。谨养而勿劳,并气积力,运兵计谋,為不可测。投之无所往,死且不北。死焉不得,士人尽力。兵士甚陷则不惧,无所往则固,深入则拘,不得已则斗。是故其兵不修而戒,不求而得,不约而亲,不令而信,禁祥去疑,至死无所之。吾士无餘财,非恶货也;无餘命,非恶寿也。令发之日,士卒坐者涕沾襟,偃卧者涕交颐,投之无所往,诸、劌之勇也。故善用兵者,譬如率然。率然者,常山之蛇也。击其首则尾至,击其尾则首至,击其中则首尾俱至。敢问兵可使如率然乎?曰可。夫吴人与越人相恶也,当其同舟而济而遇风,其相救也如左右手。是故方马埋轮,未足恃也;齐勇如一,政之道也;刚柔皆得,地之理也。故善用兵者,携手若使一人,不得已也。将军之事,静以幽,正以治,能愚士卒之耳目,使之无知;易其事,革其谋,使人无识;易其居,迂其途,使民不得虑。帅与之期,如登高而去其梯;帅与之深入诸侯之地,而发其机。若驱群羊,驱而往,驱而来,莫知所之。聚三军之眾,投之於险,此谓将军之事也。九地之变,屈伸之力,人情之理,不可不察也。凡為客之道,深则专,浅则散。去国越境而师者,绝地也;四彻者,衢地也;入深者,重地也;入浅者,轻地也;背固前隘者,围地也;无所往者,死地也。是故散地吾将一其志,轻地吾将使之属,争地吾将趋其后,交地吾将谨其守,交地吾将固其结,衢地吾将谨其恃,重地吾将继其食,泛地吾将进其途,围地吾将塞其闕,死地吾将示之以不活。故兵之情:围则御,不得已则斗,过则从。是故不知诸侯之谋者,不能预交;不知山林、险阻、沮泽之形者,不能行军;不用乡导,不能得地利。四五者,一不知,非霸王之兵也。夫霸王之兵,伐大国,则其眾不得聚;威加於敌,则其交不得合。是故不争天下之交,不养天下之权,信己之私,威加於敌,则其城可拔,其国可隳。施无法之赏,悬无政之令。犯三军之眾,若使一人。犯之以事,勿告以言;犯之以害,勿告以利。投之亡地然后存,陷之死地然后生。夫眾陷於害,然后能為胜败。故為兵之事,在顺详敌之意,并敌一向,千里杀将,是谓巧能成事。是故政举之日,夷关折符,无通其使,厉於廊庙之上,以诛其事。敌人开闔,必亟入之,先其所爱,微与之期,践墨随敌,以决战事。是故始如处女,敌人开户;后如脱兔,敌不及拒。
+
+火攻第十二
+
+孙子曰:凡火攻有五:一曰火人,二曰火积,三曰火輜,四曰火库,五曰火队。行火必有因,因必素具。发火有时,起火有日。时者,天之燥也。日者,月在箕、壁、翼、軫也。凡此四宿者,风起之日也。凡火攻,必因五火之变而应之:火发於内,则早应之於外;火发而其兵静者,待而勿攻,极其火力,可从而从之,不可从则上。火可发於外,无待於内,以时发之,火发上风,无攻下风,昼风久,夜风止。凡军必知五火之变,以数守之。故以火佐攻者明,以水佐攻者强。水可以绝,不可以夺。夫战胜攻取而不惰其功者凶,命曰“费留”。故曰:明主虑之,良将惰之,非利不动,非得不用,非危不战。主不可以怒而兴师,将不可以慍而攻战。合於利而动,不合於利而上。怒可以复喜,慍可以复说,亡国不可以复存,死者不可以复生。故明主慎之,良将警之。此安国全军之道也。
+
+用间第十三
+
+孙子曰: 凡兴师十万,出征千里,百姓之费,公家之奉,日费千金,内外骚动,怠於道路,不得操事者,七十万家。相守数年,以争一日之胜,而爱爵禄百金,不知敌之情者,不仁之至也,非民之将也,非主之佐也,非胜之主也。故明君贤将所以动而胜人,成功出於眾者,先知也。先知者,不可取於鬼神,不可象於事,不可验於度,必取於人,知敌之情者也。故用间有五:有因间,有内间,有反间,有死间,有生间。五间俱起,莫知其道,是谓神纪,人君之宝也。乡间者,因其乡人而用之;内间者,因其官人而用之;反间者,因其敌间而用之;死间者,為誑事於外,令吾闻知之而传於敌间也;生间者,反报也。故三军之事,莫亲於间,赏莫厚於间,事莫密於间,非圣贤不能用间,非仁义不能使间,非微妙不能得间之实。微哉微哉!无所不用间也。间事未发而先闻者,间与所告者兼死。凡军之所欲击,城之所欲攻,人之所欲杀,必先知其守将、左右、謁者、门者、舍人之姓名,令吾间必索知之。敌间之来间我者,因而利之,导而舍之,故反间可得而用也;因是而知之,故乡间、内间可得而使也;因是而知之,故死间為誑事,可使告敌;因是而知之,故生间可使如期。五间之事,主必知之,知之必在於反间,故反间不可不厚也。昔殷之兴也,伊挚在夏;周之兴也,吕牙在殷。故明君贤将,能以上智為间者,必成大功。此兵之要,三军之所恃而动也。
diff --git a/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-big5.txt b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-big5.txt
new file mode 100644
index 0000000..1918c8f
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-big5.txt
@@ -0,0 +1,106 @@
+This file was derived from
+http://www.gutenberg.org/files/23864/23864-0.txt
+--------
+lpĤ@
+
+]lGL̡AꤧjơAͤaAs`DAi]C
+
+GgHơAդHpAӯ䱡G@DAGѡATaA|NAkC
+
+D̡AOPWPNAiPAiP͡AӤȦM]FѪ̡ABHBɨ]Fa̡ABIBsUBͤ]FN̡ABHBBiBY]Fk̡ABxDBDΤ]CZ̡ANDA̳ӡA̤ӡC
+
+GդHpAӯ䱡AGDEDHNEHѦaEoHkOEHLEjHhEmH@EH^HӭtoC
+
+Nť^pAΤӡAdFNť^pAΤѡAhC
+
+pQHťADաAH~Cժ̡A]QӨv]C
+
+L̡A޹D]CGӥܤAΦӥܤΡAӥܤAӥܤCQӻAæӨAӳƤAjפAӼAźAHӳҤA˦ALơAX䤣NCLaӡAiǤ]C
+
+ҥԦӼqӪ̡Aoh]FԦӼq⤣Ӫ̡Ao֤]ChӡAֺ⤣ӡAӪpLGI^H[AӭtoC
+
+@ԲĤG
+
+]lGZΧLkAdoAdAaҤQUAdX³Ch~OAȤΡAAҤ^AOdAMQUv|oC
+
+ξԤ]AQӡA[hwLUA𫰫hO}A[ɮvhΤCҶwLUA}OfAhѫJӰ_A̡AൽoCGLDtA@[]CҧL[ӰQ̡A]CGɪΧL`̡AhɪΧLQ]C
+
+ΧL̡AФAyA³TAΩA]³ġAGxi]Cꤧhv̻AhʩmhFv̶QAQhʩmܡA]ܫhCСCO}]A줺aAʩmOAQhCFaOA}x}AҭHکAurACjAQh䤻C
+
+GNȭġAĤ@A^GQFmz@ۡA^GQۡCGĪ̡A]FĤQ̡Af]CGԡAoQHWAo̡AӧܺXCӭA򵽦ӾiAO׳ӼĦӯqjC
+
+GLQӡAQ[CGLNAqRCawMD]C
+
+ѧĤT
+
+]lGZΧLkAꬰWA}ꦸFxWA}xFȬWA}ȦF򬰤WA}򦸤FWA}COGʾԦʳӡAD̤]FԦө}HLA̤]C
+
+GWLѡA䦸A䦸LAU𫰡C𫰤kAowCrVA㾹ATӫᦨFZASTӫwCNӨAƪAhT@Aӫު̡A𤧨a]C
+
+GΧL̡A}HLAӫDԤ]AޤHӫD]AHӫD[]AHѤUAGLyӧQiAѧ𤧪k]C
+
+GΧLkAQh򤧡Ah𤧡AhAīhԤA֫hkAYhפCGpĤAjĤ]C
+
+ұN̡Aꤧ]CPhꥲjAثhꥲzCGgҥHwx̤TGxiHiӿפiAxiHhӿפhAOݭxFTxơAӦPTxFAhxhboFTxvAӦPTxAhxhèoCTxJbBáAhѫJܨoCO׶íx޳ӡC
+
+GӦGiHԻPiHԪ̡AӡCѲ褧Ϊ̡AӡCWUP̡AӡCHݤ̡AӡCNӧgs̡AӡC̡AӤD]C
+
+GGvAʾԤMFӪvA@Ӥ@tFvACԥѡC
+
+xβĥ|
+
+]lGԪ̡AiӡAHݼĤiӡCiӦbvAiӦbġCGԪ̡AରiӡAϼĥiӡCGGӥiAӤiC
+
+iӪ̡Au]FiӪ̡A]CuhAhlCu̡AéEaUA̡AʩEѤWAG۫OӥӤ]C
+
+ӤLHҪAD̤]FԳӦӤѤU굽AD̤]CG|@hOA뤣ءADp^oաCjԪ̡AөӪ̤]CGԪ̤Ӥ]ALWALi\AGԳӤ֡C̡֪AұӡAӤwѪ̤]CGԪ̡Aߩ󤣱ѤaAӤĤѤ]COGӧLӡAӫDԡAѧLԦӫDӡCΧL̡A׹DӫOkAGରӱѤFC
+
+LkG@סAGqATơA|١AӡCaͫסAץͶqAqͼơAƥͺ١A٥ͳӡCGӧLYHٻˡAѧLYH˺CӪ̤ԡAYMndQƪ̡AΤ]C
+
+LղĤ
+
+]lGZvpvAƬO]FpAΦWO]FTxAiϥĦӵLѪ̡A_O]FLҥ[ApHZ̡AO]C
+
+ZԪ̡AHXAH_ӡCGX_̡ALapѦaAܦpCצӽƩlAO]CӴ_͡A|ɬO]CnLAnܡAiť]F⤣LA⤧ܡAi[]FLAܡAiӹ]FԶաAL_A_ܡAiӽa]C_ۥ͡Ap`LݡAavH
+
+EeAܩ}̡۪Aդ]FeAܩ󷴧̡A`]COGԪ̡AIA`uCզpiA`poC
+
+ɯɯƯơAæӤiä]FPPAζӤiѤ]CåͩvAĥͩiAzͩjCváAƤ]FiġAդ]FjzAΤ]CGʼĪ̡AΤAĥqFAĥCHQʤAHݤC
+
+GԪ̡ADաAdHFGܤHӥաCժ̡AԤH]ApۡCۤʡAwhRAMhʡAhAhCGԤHաAp۩dQs̡Aդ]C
+
+
+]lGZBԦaӫݼĪ̧HABԦa;Ԫ̳ҡC
+
+GԪ̡APHӤPHCϼĤHۦܪ̡AQ]FϼĤHoܪ̡A`]CGħHҤAȤAwʤCXҥ͡AͨҤNCdӤҪ̡ALHa]Fӥ̡AҤu]CuӥT̡AuҤ]C
+
+G̡AĤҦuFu̡AĤҧCLGLGAܩLΡFGGAܩLnAGରĤqRCiӤim̡AR]FhӤil̡AtӤiΤ]CGڱԡAS`AoPھԪ̡AҥϤ]FڤԡAeaӦuAĤoPھԪ̡AĨҤ]CGΤHӧڵLΡAhڱMӼĤCڱM@AĤQAOHQ@]ChڲĹAH̡Ah^һPԪ̬oC^һPԤaiAihĩҳƪ̦hAĩҳƪ̦hAh^һPԪ̹oCGƫehAƫheAƥhkAƥkhALҤơAhLҤC̡AƤH̤]F̡AϤHƤv̤]CGԤaAԤAhidӷ|ԡFԤaAԤAhϥkAkϥAeϫAᤣϫeAӪp̼ƤQءA̼إGIH^פAVHLhAOqӫvIGGӥi]CAiϵLCGӪopAԤӪRzAΤӪͤaAӪlBCGΧLAܩLΡCLΫh`sA̤ѡC]Φӱө󲳡AાCHҪکҥHӤΡAӲ^ҥHӤΡCGԳӤ_AΩLaCҧLζHAװͤUAL׹F]aӨyAL]ĦӨӡCGLL`աAL`ΡC]ܤƦӨӪ̡AפCGL`ӡA|ɵL`A馳uA릳͡C
+
+xĤC
+
+]lG ZΧLkANRgAXxEAMӪ١AxCx̡AHAHwQCG~AӻHQAHoAHܡAp̤]CxQAxMC|xӪQhΡAexӪQhCOGҦ͡A]BADݦAʸ̦ӪQAhTNxAl̥Ah̫AkQ@ӦܡFQئӪQAhݤWNxAkbܡFTQئӪQAhTGܡCOGxLh`AL³h`ALenh`CGѫJѪ̡AݥFsLBIBqAΪ̡AxFζmɪ̡AoaQCGLHBߡAHQʡAHMܪ̤]CGepA}pLAIpAʦpsApAʦpp_CmAaQAavӰʡCp̳ӡAxk]CmxFnGۻDAGFۨAGܺXCҪܺX̡AҥH@եؤ]CJM@Ahi̤oWiAĪ̤oWhAβk]CG]ԦhA޾ԦhܺXAҥHܤHեؤ]CTxiܮANxiܤߡCOG®UAޮkAǮkCΧL̡AרUAkkAv̤]CHvݶáAHRݼMAvߪ̤]CHݻAHHݳҡAHȡAvO̤]CLܥXAL󤧳Avܪ̤]CGΧLkAŦVAICŰfA˥_űqAUŧALŭAkvŹKAvAaFŭAΧLk]C
+
+EܲĤK
+
+]lG ZΧLkANRgAXxEXCxaL١AaXAaLdAahѡAahԡA~ҤѡAxҤAҤAaҤAgRҤCGNqEܤQ̡AΧLoFNqEܤQAaΡAoaQoFvLEܤNAQAoHΨoCOG̤{AQ`AQӰȥiH]A`ӱwiѤ]COG}ѫJ̥H`AнѫJ̥H~AͽѫJ̥HQCGΧLkAL䤣ӡA^HݤFL䤣A^Ҥi]CGNMAiAͥiAtiVAGidARiСCZ̡ANL]AΧLa]CЭxNAHMAi]C
+
+xĤE
+
+]lGZBxۼġAs̽\AͳBAԶLnABsx]CAȵӨӡAŪ蠟AObQAԪ̡ALӪȡAͳBALyABWx]CAA߫EhLdAYx󥸿AA̤ӭIABAx]CBAkIAe͡ABx]CZ|xQAҤҥHӥ|Ҥ]CZxnӴcUAQӽ⳱AiͦӳBAxLʯeAOץӡCCAB䶧ӥkIALQAaU]CWByܡAA̡Aݨw]CZaBѤBѨcBùBѳBѻءAEhAŪ]C^AĪ񤧡F^蠟AĭICxǦIBCB㶸BpLBP̡AЯAҳB]CĪR̡AI]FӬDԪ̡AHi]Fҩ~̡AQ]Fʪ̡AӤ]Fh٪̡Aä]F_̡A]F~b̡AФ]FаӾU̡AӤ]FӼs̡A{Ӥ]FӱF̡AĤ]F֦өӪ̡Ax]Fӳƪ̡Ai]FjӶiX̡Ah]FX~䰼̡A]FLӽЩM̡AѤ]FbӳL̡A]Fbibh̡A]Fӥߪ̡AȤ]FVӥ̡A]FQӤi̡AҤ]F̡A]F]I̡A]FxZ̡AN]FܺXʪ̡Aä]FO̡A¤]F׭̡AxL³]Faդ٪̡AaF]FνεA}PH̡A]Fƽ̡A~]Fƻ@̡Ax]FɦӫȨ䲳̡A뤧ܤ]Fөeª̡A𮧤]CLӬ۪A[ӤXASۥhAԹCLDQqh]ALZiAHäOƼĨHӤwCұL{өĪ̡AHC򥼿˦ӻ@AhAAAhΡCw˪ӻ@AhiΡCGXHAHZAOץCOHШAhAFOHШAhACO̡AP۱o]C
+
+aβĤQ
+
+]lGaΦq̡B̡B̡Bi̡BI̡B̡CڥiHAiHӡAqCqΪ̡A~AQ³DAHԫhQCiHAHA걾CΪ̡AĵLơAXӳӤAĭYơAXӤӡAHAQCڥXӤQAXӤQACΪ̡AQڡAڵLX]AަӥhAOĥbXQCiΪ̡Aڥ~AդHݼġCYĥ~AզӤűqAզӱqCIΪ̡Aڥ~A~HݼġFYĥ~AަӥhAűq]CΪ̡AէHDԡAԦӤQCZ̡AaD]ANܥAi]CZL̡B̡B̡BY̡Bê̡B_̡CZ̡ADѦaaANL]CҶէAH@QAꨫFjOzA깣FOjzA곴FjOӤAAJȦӦ۾ԡANAYFNzYAйDAOL`ALaAáFNƼġAH֦XAHzjALLWA_CZ̡AѤD]ANܥAi]CҦaΪ̡ALU]CƼĨӡApIiAWND]CӥξԪ̥ӡAӥξԪ̥ѡCGԹDӡADLԡAԥi]FԹDӡADꥲԡALԥi]CGiDWAh׸oAߥOOAӧQDAꤧ_]CpAGiHPu`ˡFpRlAGiPѦCpӤϡARӤOAæӤvAĴYźlAiΤ]C^򤧥iHAӤĤiAӤb]FĤiAӤ^򤧤iHAӤb]FĤiA^򤧥iHAӤaΤiHԡAӤb]CGL̡AʦӤgA|ӤaCGGvAӤDpFѪaAӤDiC
+
+EaĤQ@
+
+]lGΧLkAaAaAaAaAaAaAxaAaAaCѫJ۾Ԩa̡AaFJHa`̡AaFڱoQAoQ̡AaFڥiHAiHӪ̡AaFѫJaTݡAܦӱoѤU̡AaFJHa`AIh̡AaFsLBIBqAAZ椧D̡AxaFҥѤJ̹iAұqk̨AiH^̡AaFeԫhsAeԫh`̡AaCOGahLԡAahLAahLAahLAahXAahAxahAahѡAahԡCjΧL̡AϼĤHeᤣۤΡA褣۫AQ⤣۱ϡAWUۦAӤALXӤCXQӰʡAXQӤCݼIJӾNӡAݤYGܨҷRhťoCLDtAHΡCѤDAҤ٤]CZȤDA`JhMCDHJAdzATxCԾiӤųҡAînOABLpѡAiC뤧LҩAB_CjoAhHɤOCLhƳhߡALҩhTA`JhAowhCOGLצӧ١ADӱoAӿˡAOӫHATháAܦLҤC^hLl]ADcf]FLlRADcؤ]COoAh򧤪̮g̡Aת̮[A뤧LҩAѡB󤧫i]CGΧL̡AĴpvMCvM̡A`sD]C䭺hܡAhܡA䤤hѦܡCݧLiϦpvMGHiCҧdHPVH۴c]AP٦ӹJA۱Ϥ]pkCOG谨IA]Fip@AFD]FXұoAaz]CGΧL̡AYϤ@HAow]CNxơARHաAHvAMh򤧦եءAϤLFơAѡAϤHLѡF~A~Aϥo{CӻPApnӥhFӻP`JѫJaAӵoCYXsϡAXөAXӨӡAҤCETxA뤧IAױNxƤ]CEaܡA}OAHzAi]CZȤDA`hMALhChVҦӮv̡Aa]F|̡Aa]FJ`̡Aa]FJL̡Aa]FITei̡Aa]FLҩ̡Aa]COGa^N@ӡAa^NϤݡAa^NͨAa^NԨuAa^NT䵲Aa^NԨAa^N~䭹Axa^Ni~Aa^NAa^NܤHCGLGhmAowhALhqCOGѫJѪ̡AwFsLBIBqAΪ̡AxFζmɡAoaQC|̡A@ADQL]CQLAjAh䲳oEF¥[ġAh椣oXCOGѤUAiѤUvAHvpA¥[ġAh䫰iޡAioCILkAaLFOCǤTxAYϤ@HCǤHơAŧiHFǤH`AŧiHQC뤧`aMsAaM͡CҲ`AMରӱѡCGLơAbԼĤNAüĤ@VAdNAOץনơCOGF|AišALqϡAFYqWAHݨơCĤH}AEJAҷRALPAHġAHMԨơCOGlpBkAĤH}FpߡAĤΩڡC
+
+ĤQG
+
+]lGZ𦳤G@HAGnATA|wAC]A]CoɡA_Cɪ̡AѤ]C̡AbߡBBlBH]CZ|J̡A_]CZA]ܦGo󤺡Ah~FoӨLR̡AݦӤŧAOAiqӱqAiqhWCio~ALݩ󤺡AHɵoAoWALUAޭ[A]CZxܡAHƦuCGH̩AH̱jCiHAiHܡCҾԳӧӤk\̤ARꡧOdCGGD{A}NkADQʡADoΡADMԡCDiHӿvANiHYӧԡCXQӰʡAXQӤWCiHƳߡAYiHƻA`ꤣiHƦsA̤iHƥ͡CGDVA}NĵCwxD]C
+
+ζĤQT
+
+]lG ZvQUAXdAʩmOAa^AOdA~̰ʡADAoިƪ̡ACQUaCۦuƦ~AH@餧ӡAӷRSʪAĤ̡Aܤ]ADN]ADD]ADӤD]CGgNҥHʦӳӤHA\X󲳪̡A]C̡Ai󰭯AiHơAiסAHAĤ̤]CGζG]AA϶AAͶCѰ_ADAOׯAHg_]Cm̡A]mHӥΤF̡A]xHӥΤF϶̡A]ĶӥΤF̡AƩ~AO^DӶǩĶ]FͶ̡Aϳ]CGTxơA˩󶡡Ap󶡡AƲK󶡡ADt夣ζADq϶ADLoCLvLvILҤζ]CƥoӥD̡APҧi̭ݦCZxұAұAHұAuNBkB̡֪B̡B٤HmWAO^CĶӶڪ̡A]ӧQAɦӪ٤AG϶ioӥΤ]F]OӪAGmBioӨϤ]F]OӪAGơAiϧiġF]OӪAGͶiϦpCơADAb϶AG϶ip]C蠟]A켰bLFP]AfbCGgNAHW̡Aj\CLnATxҫӰʤ]C
diff --git a/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-utf-8.txt b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-utf-8.txt
new file mode 100644
index 0000000..5797b37
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/testdata/sunzi-bingfa-traditional-utf-8.txt
@@ -0,0 +1,106 @@
+This file was derived from
+http://www.gutenberg.org/files/23864/23864-0.txt
+--------
+始計第一
+
+孫子曰:兵者,國之大事,死生之地,存亡之道,不可不察也。
+
+故經之以五事,校之以計,而索其情:一曰道,二曰天,三曰地,四曰將,五曰法。
+
+道者,令民與上同意,可與之死,可與之生,而不畏危也;天者,陰陽、寒暑、時制也;地者,遠近、險易、廣狹、死生也;將者,智、信、仁、勇、嚴也;法者,曲制、官道、主用也。凡此五者,將莫不聞,知之者勝,不知者不勝。
+
+故校之以計,而索其情,曰:主孰有道?將孰有能?天地孰得?法令孰行?兵眾孰強?士卒孰練?賞罰孰明?吾以此知勝負矣。
+
+將聽吾計,用之必勝,留之;將不聽吾計,用之必敗,去之。
+
+計利以聽,乃為之勢,以佐其外。勢者,因利而制權也。
+
+兵者,詭道也。故能而示之不能,用而示之不用,近而示之遠,遠而示之近。利而誘之,亂而取之,實而備之,強而避之,怒而撓之,卑而驕之,佚而勞之,親而離之,攻其無備,出其不意。此兵家之勝,不可先傳也。
+
+夫未戰而廟算勝者,得算多也;未戰而廟算不勝者,得算少也。多算勝,少算不勝,而況無算乎!吾以此觀之,勝負見矣。
+
+作戰第二
+
+孫子曰:凡用兵之法,馳車千駟,革車千乘,帶甲十萬,千里饋糧。則內外之費,賓客之用,膠漆之材,車甲之奉,日費千金,然後十萬之師舉矣。
+
+其用戰也,貴勝,久則鈍兵挫銳,攻城則力屈,久暴師則國用不足。夫鈍兵挫銳,屈力殫貨,則諸侯乘其弊而起,雖有智者,不能善其後矣。故兵聞拙速,未睹巧之久也。夫兵久而國利者,未之有也。故不盡知用兵之害者,則不能盡知用兵之利也。
+
+善用兵者,役不再籍,糧不三載,取用於國,因糧於敵,故軍食可足也。國之貧於師者遠輸,遠輸則百姓貧;近於師者貴賣,貴賣則百姓竭,財竭則急於丘役。力屈財殫,中原內虛於家,百姓之費,十去其七;公家之費,破軍罷馬,甲胄矢弩,戟楯矛櫓,丘牛大車,十去其六。
+
+故智將務食於敵,食敵一鍾,當吾二十鍾;萁稈一石,當吾二十石。故殺敵者,怒也;取敵之利者,貨也。故車戰,得車十乘以上,賞其先得者,而更其旌旗。車雜而乘之,卒善而養之,是謂勝敵而益強。
+
+故兵貴勝,不貴久。故知兵之將,民之司命。國家安危之主也。
+
+謀攻第三
+
+孫子曰:凡用兵之法,全國為上,破國次之;全軍為上,破軍次之;全旅為上,破旅次之;全卒為上,破卒次之;全伍為上,破伍次之。是故百戰百勝,非善之善者也;不戰而屈人之兵,善之善者也。
+
+故上兵伐謀,其次伐交,其次伐兵,其下攻城。攻城之法,為不得已。修櫓轒轀,具器械,三月而後成;距闉,又三月而後已。將不勝其忿,而蟻附之,殺士三分之一,而城不拔者,此攻之災也。
+
+故善用兵者,屈人之兵,而非戰也,拔人之城而非攻也,毀人之國而非久也,必以全爭於天下,故兵不頓而利可全,此謀攻之法也。
+
+故用兵之法,十則圍之,五則攻之,倍則分之,敵則能戰之,少則能逃之,不若則能避之。故小敵之堅,大敵之擒也。
+
+夫將者,國之輔也。輔周則國必強,輔隙則國必弱。故君之所以患於軍者三:不知軍之不可以進而謂之進,不知軍之不可以退而謂之退,是謂縻軍;不知三軍之事,而同三軍之政,則軍士惑矣;不知三軍之權,而同三軍之任,則軍士疑矣。三軍既惑且疑,則諸侯之難至矣。是謂亂軍引勝。
+
+故知勝有五:知可以戰與不可以戰者,勝。識眾寡之用者,勝。上下同欲者,勝。以虞待不虞者,勝。將能而君不御者,勝。此五者,知勝之道也。
+
+故曰:知己知彼,百戰不貽;不知彼而知己,一勝一負;不知彼不知己,每戰必敗。
+
+軍形第四
+
+孫子曰:昔之善戰者,先為不可勝,以待敵之可勝。不可勝在己,可勝在敵。故善戰者,能為不可勝,不能使敵必可勝。故曰:勝可知,而不可為。
+
+不可勝者,守也;可勝者,攻也。守則不足,攻則有餘。善守者,藏於九地之下,善攻者,動於九天之上,故能自保而全勝也。
+
+見勝不過眾人之所知,非善之善者也;戰勝而天下曰善,非善之善者也。故舉秋毫不為多力,見日月不為明目,聞雷霆不為聰耳。古之善戰者,勝於易勝者也。故善戰者之勝也,無智名,無勇功,故其戰勝不忒。不忒者,其所措必勝,勝已敗者也。故善戰者,先立於不敗之地,而不失敵之敗也。是故勝兵先勝,而後求戰,敗兵先戰而後求勝。善用兵者,修道而保法,故能為勝敗之政。
+
+兵法:一曰度,二曰量,三曰數,四曰稱,五曰勝。地生度,度生量,量生數,數生稱,稱生勝。故勝兵若以鎰稱銖,敗兵若以銖稱鎰。勝者之戰,若決積水於千仞之谿者,形也。
+
+兵勢第五
+
+孫子曰:凡治眾如治寡,分數是也;鬥眾如鬥寡,形名是也;三軍之眾,可使必受敵而無敗者,奇正是也;兵之所加,如以碫投卵者,虛實是也。
+
+凡戰者,以正合,以奇勝。故善出奇者,無窮如天地,不竭如江海。終而複始,日月是也。死而復生,四時是也。聲不過五,五聲之變,不可勝聽也;色不過五,五色之變,不可勝觀也;味不過五,五味之變,不可勝嘗也;戰勢,不過奇正,奇正之變,不可勝窮也。奇正相生,如循環之無端,熟能窮之哉?
+
+激水之疾,至於漂石者,勢也;鷙鳥之疾,至於毀折者,節也。是故善戰者,其勢險,其節短。勢如張弩,節如發機。
+
+紛紛紜紜,鬥亂而不可亂也;渾渾沌沌,形圓而不可敗也。亂生於治,怯生於勇,弱生於強。治亂,數也;勇怯,勢也;強弱,形也。故善動敵者,形之,敵必從之;予之,敵必取之。以利動之,以卒待之。
+
+故善戰者,求之於勢,不責於人;故能擇人而任勢。任勢者,其戰人也,如轉木石。木石之性,安則靜,危則動,方則止,圓則行。故善戰人之勢,如轉圓石於千仞之山者,勢也。
+
+虛實第六
+
+孫子曰:凡先處戰地而待敵者佚,後處戰地而趨戰者勞。
+
+故善戰者,致人而不致於人。能使敵人自至者,利之也;能使敵人不得至者,害之也。故敵佚能勞之,飽能饑之,安能動之。出其所必趨,趨其所不意。行千里而不勞者,行於無人之地也;攻而必取者,攻其所不守也。守而必固者,守其所不攻也。
+
+故善攻者,敵不知其所守;善守者,敵不知其所攻。微乎微乎,至於無形;神乎神乎,至於無聲,故能為敵之司命。進而不可禦者,沖其虛也;退而不可追者,速而不可及也。故我欲戰,敵雖高壘深溝,不得不與我戰者,攻其所必救也;我不欲戰,雖畫地而守之,敵不得與我戰者,乖其所之也。故形人而我無形,則我專而敵分。我專為一,敵分為十,是以十攻其一也。則我眾敵寡,能以眾擊寡者,則吾之所與戰者約矣。吾所與戰之地不可知,不可知則敵所備者多,敵所備者多,則吾所與戰者寡矣。故備前則後寡,備後則前寡,備左則右寡,備右則左寡,無所不備,則無所不寡。寡者,備人者也;眾者,使人備己者也。故知戰之地,知戰之日,則可千里而會戰;不知戰之地,不知戰日,則左不能救右,右不能救左,前不能救後,後不能救前,而況遠者數十裏,近者數裏乎!以吾度之,越人之兵雖多,亦奚益於勝哉!故曰:勝可為也。敵雖眾,可使無鬥。故策之而知得失之計,候之而知動靜之理,形之而知死生之地,角之而知有餘不足之處。故形兵之極,至於無形。無形則深間不能窺,智者不能謀。因形而措勝於眾,眾不能知。人皆知我所以勝之形,而莫知吾所以制勝之形。故其戰勝不復,而應形於無窮。夫兵形象水,水之行避高而趨下,兵之形避實而擊虛;水因地而制流,兵因敵而制勝。故兵無常勢,水無常形。能因敵變化而取勝者,謂之神。故五行無常勝,四時無常位,日有短長,月有死生。
+
+軍爭第七
+
+孫子曰: 凡用兵之法,將受命於君,合軍聚眾,交和而舍,莫難於軍爭。軍爭之難者,以迂為直,以患為利。故迂其途,而誘之以利,後人發,先人至,此知迂直之計者也。軍爭為利,軍爭為危。舉軍而爭利則不及,委軍而爭利則輜重捐。是故捲甲而趨,日夜不處,倍道兼行,百裡而爭利,則擒三將軍,勁者先,疲者後,其法十一而至;五十裏而爭利,則蹶上將軍,其法半至;三十裏而爭利,則三分之二至。是故軍無輜重則亡,無糧食則亡,無委積則亡。故不知諸侯之謀者,不能豫交;不知山林、險阻、沮澤之形者,不能行軍;不用鄉導者,不能得地利。故兵以詐立,以利動,以分和為變者也。故其疾如風,其徐如林,侵掠如火,不動如山,難知如陰,動如雷震。掠鄉分眾,廓地分利,懸權而動。先知迂直之計者勝,此軍爭之法也。《軍政》曰:“言不相聞,故為之金鼓;視不相見,故為之旌旗。”夫金鼓旌旗者,所以一民之耳目也。民既專一,則勇者不得獨進,怯者不得獨退,此用眾之法也。故夜戰多金鼓,晝戰多旌旗,所以變人之耳目也。三軍可奪氣,將軍可奪心。是故朝氣銳,晝氣惰,暮氣歸。善用兵者,避其銳氣,擊其惰歸,此治氣者也。以治待亂,以靜待嘩,此治心者也。以近待遠,以佚待勞,以飽待饑,此治力者也。無邀正正之旗,無擊堂堂之陳,此治變者也。故用兵之法,高陵勿向,背丘勿逆,佯北勿從,銳卒勿攻,餌兵勿食,歸師勿遏,圍師遺闕,窮寇勿迫,此用兵之法也。
+
+九變第八
+
+孫子曰: 凡用兵之法,將受命於君,合軍聚合。泛地無舍,衢地合交,絕地無留,圍地則謀,死地則戰,途有所不由,軍有所不擊,城有所不攻,地有所不爭,君命有所不受。故將通於九變之利者,知用兵矣;將不通九變之利,雖知地形,不能得地之利矣;治兵不知九變之術,雖知五利,不能得人之用矣。是故智者之慮,必雜於利害,雜於利而務可信也,雜於害而患可解也。是故屈諸侯者以害,役諸侯者以業,趨諸侯者以利。故用兵之法,無恃其不來,恃吾有以待之;無恃其不攻,恃吾有所不可攻也。故將有五危,必死可殺,必生可虜,忿速可侮,廉潔可辱,愛民可煩。凡此五者,將之過也,用兵之災也。覆軍殺將,必以五危,不可不察也。
+
+行軍第九
+
+孫子曰:凡處軍相敵,絕山依穀,視生處高,戰隆無登,此處山之軍也。絕水必遠水,客絕水而來,勿迎之於水內,令半渡而擊之利,欲戰者,無附於水而迎客,視生處高,無迎水流,此處水上之軍也。絕斥澤,唯亟去無留,若交軍於斥澤之中,必依水草而背眾樹,此處斥澤之軍也。平陸處易,右背高,前死後生,此處平陸之軍也。凡此四軍之利,黃帝之所以勝四帝也。凡軍好高而惡下,貴陽而賤陰,養生而處實,軍無百疾,是謂必勝。丘陵堤防,必處其陽而右背之,此兵之利,地之助也。上雨水流至,欲涉者,待其定也。凡地有絕澗、天井、天牢、天羅、天陷、天隙,必亟去之,勿近也。吾遠之,敵近之;吾迎之,敵背之。軍旁有險阻、潢井、蒹葭、小林、蘙薈者,必謹覆索之,此伏姦之所處也。敵近而靜者,恃其險也;遠而挑戰者,欲人之進也;其所居易者,利也;眾樹動者,來也;眾草多障者,疑也;鳥起者,伏也;獸駭者,覆也;塵高而銳者,車來也;卑而廣者,徒來也;散而條達者,樵採也;少而往來者,營軍也;辭卑而備者,進也;辭強而進驅者,退也;輕車先出居其側者,陳也;無約而請和者,謀也;奔走而陳兵者,期也;半進半退者,誘也;杖而立者,饑也;汲而先飲者,渴也;見利而不進者,勞也;鳥集者,虛也;夜呼者,恐也;軍擾者,將不重也;旌旗動者,亂也;吏怒者,倦也;殺馬肉食者,軍無糧也;懸甀不返其舍者,窮寇也;諄諄翕翕,徐與人言者,失眾也;數賞者,窘也;數罰者,困也;先暴而後畏其眾者,不精之至也;來委謝者,欲休息也。兵怒而相迎,久而不合,又不相去,必謹察之。兵非貴益多也,惟無武進,足以並力料敵取人而已。夫惟無慮而易敵者,必擒於人。卒未親而罰之,則不服,不服則難用。卒已親附而罰不行,則不可用。故合之以文,齊之以武,是謂必取。令素行以教其民,則民服;令素不行以教其民,則民不服。令素行者,與眾相得也。
+
+地形第十
+
+孫子曰:地形有通者、有掛者、有支者、有隘者、有險者、有遠者。我可以往,彼可以來,曰通。通形者,先居高陽,利糧道,以戰則利。可以往,難以返,曰掛。掛形者,敵無備,出而勝之,敵若有備,出而不勝,難以返,不利。我出而不利,彼出而不利,曰支。支形者,敵雖利我,我無出也,引而去之,令敵半出而擊之利。隘形者,我先居之,必盈之以待敵。若敵先居之,盈而勿從,不盈而從之。險形者,我先居之,必居高陽以待敵;若敵先居之,引而去之,勿從也。遠形者,勢均難以挑戰,戰而不利。凡此六者,地之道也,將之至任,不可不察也。凡兵有走者、有馳者、有陷者、有崩者、有亂者、有北者。凡此六者,非天地之災,將之過也。夫勢均,以一擊十,曰走;卒強吏弱,曰馳;吏強卒弱,曰陷;大吏怒而不服,遇敵懟而自戰,將不知其能,曰崩;將弱不嚴,教道不明,吏卒無常,陳兵縱橫,曰亂;將不能料敵,以少合眾,以弱擊強,兵無選鋒,曰北。凡此六者,敗之道也,將之至任,不可不察也。夫地形者,兵之助也。料敵制勝,計險隘遠近,上將之道也。知此而用戰者必勝,不知此而用戰者必敗。故戰道必勝,主曰無戰,必戰可也;戰道不勝,主曰必戰,無戰可也。故進不求名,退不避罪,唯民是保,而利於主,國之寶也。視卒如嬰兒,故可以與之赴深溪;視卒如愛子,故可與之俱死。厚而不能使,愛而不能令,亂而不能治,譬若驕子,不可用也。知吾卒之可以擊,而不知敵之不可擊,勝之半也;知敵之可擊,而不知吾卒之不可以擊,勝之半也;知敵之可擊,知吾卒之可以擊,而不知地形之不可以戰,勝之半也。故知兵者,動而不迷,舉而不窮。故曰:知彼知己,勝乃不殆;知天知地,勝乃可全。
+
+九地第十一
+
+孫子曰:用兵之法,有散地,有輕地,有爭地,有交地,有衢地,有重地,有泛地,有圍地,有死地。諸侯自戰其地者,為散地;入人之地不深者,為輕地;我得亦利,彼得亦利者,為爭地;我可以往,彼可以來者,為交地;諸侯之地三屬,先至而得天下眾者,為衢地;入人之地深,背城邑多者,為重地;山林、險阻、沮澤,凡難行之道者,為泛地;所由入者隘,所從歸者迂,彼寡可以擊吾之眾者,為圍地;疾戰則存,不疾戰則亡者,為死地。是故散地則無戰,輕地則無止,爭地則無攻,交地則無絕,衢地則合交,重地則掠,泛地則行,圍地則謀,死地則戰。古之善用兵者,能使敵人前後不相及,眾寡不相恃,貴賤不相救,上下不相收,卒離而不集,兵合而不齊。合於利而動,不合於利而止。敢問敵眾而整將來,待之若何曰:先奪其所愛則聽矣。兵之情主速,乘人之不及。由不虞之道,攻其所不戒也。凡為客之道,深入則專。主人不克,掠於饒野,三軍足食。謹養而勿勞,並氣積力,運兵計謀,為不可測。投之無所往,死且不北。死焉不得,士人盡力。兵士甚陷則不懼,無所往則固,深入則拘,不得已則鬥。是故其兵不修而戒,不求而得,不約而親,不令而信,禁祥去疑,至死無所之。吾士無餘財,非惡貨也;無餘命,非惡壽也。令發之日,士卒坐者涕沾襟,偃臥者涕交頤,投之無所往,諸、劌之勇也。故善用兵者,譬如率然。率然者,常山之蛇也。擊其首則尾至,擊其尾則首至,擊其中則首尾俱至。敢問兵可使如率然乎?曰可。夫吳人與越人相惡也,當其同舟而濟而遇風,其相救也如左右手。是故方馬埋輪,未足恃也;齊勇如一,政之道也;剛柔皆得,地之理也。故善用兵者,攜手若使一人,不得已也。將軍之事,靜以幽,正以治,能愚士卒之耳目,使之無知;易其事,革其謀,使人無識;易其居,迂其途,使民不得慮。帥與之期,如登高而去其梯;帥與之深入諸侯之地,而發其機。若驅群羊,驅而往,驅而來,莫知所之。聚三軍之眾,投之於險,此謂將軍之事也。九地之變,屈伸之力,人情之理,不可不察也。凡為客之道,深則專,淺則散。去國越境而師者,絕地也;四徹者,衢地也;入深者,重地也;入淺者,輕地也;背固前隘者,圍地也;無所往者,死地也。是故散地吾將一其志,輕地吾將使之屬,爭地吾將趨其後,交地吾將謹其守,交地吾將固其結,衢地吾將謹其恃,重地吾將繼其食,泛地吾將進其途,圍地吾將塞其闕,死地吾將示之以不活。故兵之情:圍則禦,不得已則鬥,過則從。是故不知諸侯之謀者,不能預交;不知山林、險阻、沮澤之形者,不能行軍;不用鄉導,不能得地利。四五者,一不知,非霸王之兵也。夫霸王之兵,伐大國,則其眾不得聚;威加於敵,則其交不得合。是故不爭天下之交,不養天下之權,信己之私,威加於敵,則其城可拔,其國可隳。施無法之賞,懸無政之令。犯三軍之眾,若使一人。犯之以事,勿告以言;犯之以害,勿告以利。投之亡地然後存,陷之死地然後生。夫眾陷於害,然後能為勝敗。故為兵之事,在順詳敵之意,並敵一向,千里殺將,是謂巧能成事。是故政舉之日,夷關折符,無通其使,厲於廊廟之上,以誅其事。敵人開闔,必亟入之,先其所愛,微與之期,踐墨隨敵,以決戰事。是故始如處女,敵人開戶;後如脫兔,敵不及拒。
+
+火攻第十二
+
+孫子曰:凡火攻有五:一曰火人,二曰火積,三曰火輜,四曰火庫,五曰火隊。行火必有因,因必素具。發火有時,起火有日。時者,天之燥也。日者,月在箕、壁、翼、軫也。凡此四宿者,風起之日也。凡火攻,必因五火之變而應之:火發於內,則早應之於外;火發而其兵靜者,待而勿攻,極其火力,可從而從之,不可從則上。火可發於外,無待於內,以時發之,火發上風,無攻下風,晝風久,夜風止。凡軍必知五火之變,以數守之。故以火佐攻者明,以水佐攻者強。水可以絕,不可以奪。夫戰勝攻取而不惰其功者凶,命曰“費留”。故曰:明主慮之,良將惰之,非利不動,非得不用,非危不戰。主不可以怒而興師,將不可以慍而攻戰。合於利而動,不合於利而上。怒可以複喜,慍可以複說,亡國不可以複存,死者不可以複生。故明主慎之,良將警之。此安國全軍之道也。
+
+用間第十三
+
+孫子曰: 凡興師十萬,出征千里,百姓之費,公家之奉,日費千金,內外騷動,怠於道路,不得操事者,七十萬家。相守數年,以爭一日之勝,而愛爵祿百金,不知敵之情者,不仁之至也,非民之將也,非主之佐也,非勝之主也。故明君賢將所以動而勝人,成功出於眾者,先知也。先知者,不可取於鬼神,不可象於事,不可驗於度,必取於人,知敵之情者也。故用間有五:有因間,有內間,有反間,有死間,有生間。五間俱起,莫知其道,是謂神紀,人君之寶也。鄉間者,因其鄉人而用之;內間者,因其官人而用之;反間者,因其敵間而用之;死間者,為誑事於外,令吾聞知之而傳於敵間也;生間者,反報也。故三軍之事,莫親於間,賞莫厚於間,事莫密於間,非聖賢不能用間,非仁義不能使間,非微妙不能得間之實。微哉微哉!無所不用間也。間事未發而先聞者,間與所告者兼死。凡軍之所欲擊,城之所欲攻,人之所欲殺,必先知其守將、左右、謁者、門者、舍人之姓名,令吾間必索知之。敵間之來間我者,因而利之,導而舍之,故反間可得而用也;因是而知之,故鄉間、內間可得而使也;因是而知之,故死間為誑事,可使告敵;因是而知之,故生間可使如期。五間之事,主必知之,知之必在於反間,故反間不可不厚也。昔殷之興也,伊摯在夏;周之興也,呂牙在殷。故明君賢將,能以上智為間者,必成大功。此兵之要,三軍之所恃而動也。
diff --git a/vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-euc-kr.txt b/vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-euc-kr.txt
new file mode 100644
index 0000000..c9ba04c
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-euc-kr.txt
@@ -0,0 +1,175 @@
+This file was derived from
+http://www.ibrary.co.kr/index.php/book-list/short-stories/34-short-stories-korean/150-2008-04-20-13-22-32
+--------
+[Ұ]
+ ̷ ΰ ϰ Ѵ. 츮 ִ ̶ 巯 . ϱ ̷ , ¦ 츮 ķ ̷ 츮 տ 𸥴. յ 鿡Դ ڽ ü ٽ δٴ ׷ ⵵ ִ...
+
+ٽ о . Ĺ ô Ͽ , . 21⸦ 츮鿡 ׷ ƿ ο ó ̴. ׷ ׷? ̷ 𸣰 ְ, ƴ ̴. 쿬 ̴. Ƴ ڴϴ ÷ ... Ƣ ڰ, ׷ ִ.
+
+[۰ Ұ]
+ (, 1900-1943) : Ҽ. ѱ Ҽ Ʋ ۰̴. (). ȣ (޻). 1920 ݱ⿡ Ұ üҼ <ó> < ϴ ȸ>, () ٷ <B簨 극> < > 1920 ߹ Ŀ <ǾƳ> <> <> <> ¿ ɰ Ĺ Ȳ ν ε巯 ǰ ǥߴ. < > ̷ 迭 ϴ ǰ̴. 1930 Ŀ ǽİ а ٰ Ҽ ߽ <ž> <ġ()> <ȭ> Ҽ ǥߴ.
+
+ħϰ 帰 ǰ ϴ ƴ ٰ .
+
+̳̾߸ ҹ ȿ η°Ų 븩 ϴ ÷Դ ģ ̾. ȿ(ű⵵ ƴ) ô Ŵ 帰 ࿩ մ ϰ 忡 ϸ ϳϳ ִٰ ħ 纹̸ б() ¿ ֱ Ǿ.
+
+ù , ° - ħ ٶ ׸ ġ ̾. ׾߸ Ⱥپ 浵 ÷ ¥ ȭ Ǭ, Ǵ ټ Ǭ ϰ չٴڿ 긱 ŭ ⻼. ̳ ̶ Ƚ ̶ ׿ 󸶳 . ܵ ְŴϿ ׺ٵ δ Ƴ ׸ ̴.
+
+ Ƴ ħ 𷰰Ÿ Ѿ. 䵵 ⸦ Դٽ ϴ ̴ ø . ¿ ٵ ƴϷε ״ ̶ 𿡰 ־ ̸ ٿ ڲ ´ٴ ڱ () Ͽ. ǻ翡 ݵ , Ͼ ε ° . ̴뵵 ԰ ü ̴.
+
+׶ ÷  ǿ ¥ ־ ÷ ϸ õ(۰) . ϰ ұ ʾ ä ΰ Ѽ ָԵ Ȥ Ұ ó ϴϸ ׳ , 谡 бٰ ȩ߰ Ͽ. ׶ ÷ ȭ ,
+
+, , պ , Ծ , Ծ , ¼ ̾! ٷ !ϰ ÷ δ ķ. ȩ ٷǸ ̽ . ÷ ÿﵵ ߲߲Ͽ.
+
+ ȯڰ ׷ Դ ʾҴ. ð ʹٰ .
+
+̷ ! 䵵 Դ , ó԰ ϰ., ߴ ĺҰǸ, ִ ÿġ ʾҴ.
+
+ ִ. δ 翡 ä ( ) ִ. - Ƚ տ ÷ ǬǬϿ. ׷ װɷ ġ ʾҴ. 帣 ̸ ⸧ָӴϰ ָ , б Ƴ . ڿ <η°!> ϰ θ Ҹ . ڱ⸦ ҷ б л ÷ ־. л ¥¥, 빮 󸶿?, .
+
+Ƹ б 翡 ִ ̷ ̿Ͽ Ϸ ̸. ϿǸ , ְ ؼ 𸣴ٰ ħ ÷ پ̸. ׷ θ ä ؼ , <> 纹ϸ ̷ ÷ Ѿ .
+
+빮 Դϱ.ϰ ÷ Ͽ. ״ ߿ 嵵 öŸ Ⱑ Ⱦϱ? ó , ° ׸ Ͽϱ? ƴϴ, ƴϴ. ̻ϰԵ ¹ տ ̴.׸ Ƴ Ź б. - ׼ θ 󱼿 ޸ ũ ְϴ , ƿ. п پ־. ̷ µ, Ҹ ߾Ÿ ɱ׷ɱ׷ Ͽ.
+
+׶ ÷ , д, , Ҹ ϳ. ºٵ ɾ Կ 츱 ˾.ϰ, ½ پϱ ȯڴ , ׷, ׷ Ϳ.ϰ, Ҹ ڸ .
+
+ , ޸ ŭ , Ƴ ÷ տ Ͽ. ׷ 빮 󸶶 ̿?ϰ л η°Ų ٶ󺸸 ȥ㸻, õ ְ, ̵簡., ߾Ÿ.
+
+ ݽÿ. ̿ Ҿ ÷ Կ . θ û ׼ . Ѳ ̷ ݾ ҷ 󸶸ΰ! ׷ Ⱑ ڿ 縣 Ҵ.  ;. ִ ģ ͺٵ ĥ Ͽ.
+
+ ʹ ѵ. ̷ ϸ л Ͽ.
+
+ƴϿýô. ռ ġ ⼭ űⰡ ÿ Ѵ´ϴ. ̷ ּž.ϰ ۺ 󱼿 귶.
+
+׷ ޶ ̴ .  մ ׷ ʵ ԰ ìⷯ .
+
+ л ¿ ÷ ٸ ̻ϰ ŻϿ. ѴٴϺ Ͽ.  ٴϺ ġ ij <Ʈ> ̲ Ͽ. ̲⵵ Ͽ.
+
+ ٸ ſ. ڱ ٴٸ ̴. コ . < ƿ. ̷ µ!> ̷ Ϳ ȴ. ׸  ϴ ڱ⸦ 븮 Ͽ. ׷ ϰ  ʹ. ϰ Ҹ ʹ. ̸, ġڱ.ϰ ź θ¢ Ϳ Դ. ÷ η°Ÿ ä Ѻǿ .
+
+, .ϰ, ÷ Ǵٽ Ͽ. ־ ÷ ٽñ Ͽ. ٸ ߸ ڱ Ӹ ٽɰ .
+
+ ְ ¦ տ 翡, Ǵ ¾ ܰŸ ƴϰ, Դ. γ ⻼. ڽ ۿ ȵǴ  մԿ 㸮 , ȳ ٳɽÿ. ƴ.
+
+׷ η°Ÿ аŸ ߿ ư ޹̾. 뵿 Ͽ 帥 ľ ָ âڿ, 帣 ʿ  ѱⰡ ھƳ ϸ ̶ 󸶳 ο . ߱ ϳ . ¸ ˼۱׷ ڸ Ͼ Ҵ.
+
+ ! η°Ÿ аŸ Ƹ . ̷ , ҹ̸ !
+
+״ ȱ ̳ ϴ ԰ɰŷȴ. ׷ Ӹ ο Ƴ װ <̷ ƴ϶ ó ⸦ ٸ մ ¿ ɴ > ̾. ϰԵ ϱ ׷ ѹ Ϸ. ڱ⸦ ٸ ִٰ ⸦ ص Ǿ. ׷ٰ η°Ų տ .
+
+׷ ״ غ ̶ ٷ 忡 , ٴϴ ƴ η°Ÿ ڱ ó ϱ Ͽ. 󸶸 ԰, ̳ Ǵ Դ. ߿ մ ϴ ÷ Ӹ θ Ű <> θ , л . ״ ٽ ٰ.
+
+ƾ, η° ƴ Ÿöÿ?
+
+ л ſ Ȱ Լ ٹ ä ÷ ŵ鶰 ʾҴ. ÷ ϴ ؿ Ǹ, ƾ, ֵ麸 ΰ Ŵ 帮ϴ. Ű.ϰ, ߱߱ϰԵ ִ Ϻ ¦ .
+
+ ̷, ġʰ. Ҹ ° Ƽ. ÷ ÿ ϰ .
+
+ Դ. ÷ Ÿ ̸ 븮 ־. ׷ () Ʋ ʾҴ. ϰ ư ̱ Ͽ Ÿ ϳ ־. ϰ ū ִ° Ƹ պ ȿ ũ Ͽ 忡 з ġ. ÷ .
+
+η°Ÿ Ÿöÿ.
+
+ѵ °̸ ϴٰ λ絿 ¿ֱ Ͽ. η°Ű ſ ̻ϰԵ ׸ η°Ű ٽñ ſǸ ̹ ´. ڲ տ Ÿ ٶ . ̳ ٸ ¢ ٴ ۿ .
+
+ η°ű ذ , ϸŭ ȲϿ. 帮 ϴ ħħϰ Ȳȥ ϴ. â ձ ٴ޾Ƽ ״ ο Ҵ. Ϳü ϰ ׷. ׷ ׷ Ƚɿ ƴϿ, ڱ⸦ ģ ƴ ˰ ڵ ηϴ ̴.
+
+״ ࿡ ٴġ ð ̶ ø ŷȴ. () ̸ Ͽٴ ϰ ;. ״ θθ Ǿ. ġ ڱ - ϰ ޷ ٸ δ ٰ, ٰ ϴ Ͽ.
+
+׷ ħ 氡 ģ ġ̰ ´. ۿ 󱼿 ȫ , ΰ Ŀݰ Ŵ, 븣 ¦ а, ִ ιؿ ġ ̸ Ųٷ ٿ ÷ dzäϰ ־.
+
+ ÷, ڳ  ϼ׷. ״ .
+
+׶׺ ̸ ÿ θ¢. Ҹ ϰ ϽϿ. ÷ ģ  ݰ . ڱ⸦ ̳ ⵵ Ͽ.
+
+ڳ״ ϼ׷. ڳ׵ ̰ ƺ.ϰ, ÷ 켭 .
+
+д, ٰ . ׷ , ڳ ޸ ° ?  ̸ .
+
+ ϰ ߶Ͽ. ߾ ̴ ܶѲ Թ , 迡 ʺƴ ̸ ̸ ̸ ̸ Ͼ 붱 ϰ þ Źڿ ÷ ڱ ߵ . ̸ ű ִ ̸ ׸ ѵ ÿġ ʾҴ. ϵ ̴ з 붱 ̱⵵ ϰ ߾ ׸ ûϿ.
+
+ָ âڴ ĸ ڲڲ ̶̶ Ͽ. İ κο ̲ٸ ׸ ׳ Ű Ҵ. ° ׸ ޾Ƶ . ġ̿ ̶ ϰ âڿ ȭϿ. ̴.
+
+ ÷ Ǯ Ͽ. 迡  ҷŸ ξ Ͽ.
+
+ġ Ǿ ÷ , ״ٴ, 츮 ܾ Ծ, ϼ. ǽ״.
+
+Ƶ ̳, ׸ ϳ. . Ҵ.
+
+׷ 󸶸 ΰ?
+
+ , ! ̷ Ⱥξ , Ծ . ̰ µ.
+
+, ߱, ׸μ.
+
+̳, ̰ ԰ ,  Ծ.ϰ ġ ͸ ä ̴ θ¢. ׸ ״ ټ ߴ밡Է ޷, ̳, , ʾ. ߴ ƴ. ߴ밡 ġ ϴ Ͽ. ġ ˾ƺ ȭ , ̸ , ̳ ˰.ڸ 㸮 ĩĩ ϴ ¥ ߴ밡 տ ½ . ǰ Ǭ ߱׶ ϸ .
+
+ , . ̷ ϸ Ϻ ݴ´. ÷ ߿ ó Ǵ ũ ٺٰ ҽÿ ϴ ʹ ٴ ҽġ , ! , , ٸٱ .ϰ ġ ִֿ ޾, ! ø !ϸ鼭, Ǯ ģ. ¾ ٽ ̴ Ǭ Ÿ ´´ٴ ¸ϰ .
+
+ ξ ܸ Ҵ. ÷ Լ Ƶ̰ ſ ٵ, ξ, ξ., ƴ.
+
+ ԰ ÷ ġ ġ ´. Ҹ  Ǵ ִ ÷Է . ̴ , ġ, 콺 ̾߱ ϳ ұ. ° 忡 ʾҰڳ.
+
+׷.
+
+ٰ Ⱑ Ƶ׷. ׷ 忡 ϸ մ ϳ ¿ ø ʾҳ. ű ħ ̽ л̽ - ٴϿ ư ִ - <> θ ° ְ. ٽ η° Ÿöÿ ϰ հ ϱ Ź Ѹġ ȴ Ƽϸ < ̷ !> Ҹ߸ Ҳ Ҹ, !
+
+ ÷ ϰԵ Ҳ Ҹ . Ͻÿ .
+
+ , ¼, < !> ̱ Ҹ óŵ , .
+
+ Ҹ . ׷ Ҹ ÷ ½½ Ͽ.
+
+ġ ̾ ̸ ٶ󺸸, ݹ ϴ ΰ.
+
+ ÷ ڸ 鿩ø, 츮 ׾ٳ.
+
+, ״ٴ, ?
+
+̳ . .
+
+ ģ , .
+
+ , ׾, ... ü ij Դٴ, ̾, ̾.ϰ ÷ Ҹ .
+
+ġ 󱼷, , ϳ ϳ. ׷ , .ϰ ƴ.
+
+ġ Ѹġ ÷ ۽۽ ̱׷ ´.
+
+ױ ׾.ϰ ǰ .
+
+ױ ׾, Ƹ ִܴ. . ӾҴ.ϰ  ջ ġ ´.
+
+ ƴ ΰ. ָճװ δ´ µ.ϰ, ġ̵ Ҿ ÷ ư Ͽ.
+
+ ׾, ׾뵵׷.
+
+ ÷ ȱ Ȯְ Ҹ Ҹ ־ ־. ġ ä ܾ ԰ Դ. ǿ .
+
+ ÷ ߿ 簡 ٴ޾Ҵ. ̶ ص ̿, ü ƴ϶ Ȱ Ҷ ε ޿ ̴. ÷ ֱ⸦ ʾҴ 빮 鿩 װ ϴ ù () - dz찡 ٴ ٸ .
+
+Ÿ ħ Ҹ . ׸Ÿ Ҹ . ٸ ħ ߸ - ߸ٴϺ ħ ϰ ұϰ ϴ ϴ Ҹ,  Ҹ ̴. û() Ҹ ̿, ܶܶ ϰ Ѿ Ҹ ٴ ͵ Ҵ 𸣸.
+
+Ȥ ÷ ұ ħ ߴ 𸥴. ׷ 빮 ڸ , , µ ͺ ʾ, .̶ ģ ϴ. ̾߸ ؿ ù Ѿƹ 强() ̴.
+
+Ͽ ÷ 湮 Ĭ . ϴ ߱ - ڸ ؿ , Ϳ ˳ ܳ, ʳ, ߱Ⱑ ÷ ڸ 񷶴.
+
+ȿ  ѱ ̵ û ִ ȣ ƴ.
+
+̷ , ־õ() ̾! ͵ Ͼ . Ҹ Բ ߱ ٸ á. ׷ ߱濡 ä̴ ƴϰ ɰ ־. ̶ Ҹ Ҹ Ͽ. ̰ . 뵵 ׷ ٿ, ٴ ǥ ̴. Ҹ Կ ƴϰ ġ ӿ Ͽ. ٰ ٰ .
+
+߷ Ƴ Ӹ ޷ ׾߸ ġ ȯ Ӹ , , , ! پ, !
+
+
+
+, ̰ , ƹ .
+
+
+̳, ׾ ̳, .
+
+
+
+. , ׾.
+
+̷ٰ â , ġ ˾ƺڸ, ! ! ٶ ϰ õ , .ϴ ޾. ׷ þ. ÷ ĥ 󱼿 ߾ŷȴ.
+
+ ٳҴµ ϴ, ϴ... ϰԵ ! ϸ...
diff --git a/vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-utf-8.txt b/vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-utf-8.txt
new file mode 100644
index 0000000..e10a3d4
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/testdata/unsu-joh-eun-nal-utf-8.txt
@@ -0,0 +1,175 @@
+This file was derived from
+http://www.ibrary.co.kr/index.php/book-list/short-stories/34-short-stories-korean/150-2008-04-20-13-22-32
+--------
+[소개]
+잔인한 운명은 이렇게 인간을 조롱하곤 한다. 우리가 평소 마음 속 저 깊은 곳에 움켜쥐고 있던 자존심 따위는 어느 한 순간 전혀 무용지물이란 것이 드러나고 만다. 하기야 이렇게 삶의 한 순간, 눈 깜짝할 새에 우리를 후려 갈기고 지나가는 그 진실이 미래의 어느날에는 또 남김없이 우리 눈 앞에 펼쳐질지도 모른다. 죽음을 앞둔 사람들에게는 자신의 삶 전체가 한 순간에 다시 보인다는 그런 얘기도 있던데...
+
+다시 읽어보니 끔찍한 생각도 든다. 식민지 시대의 암울한 삶, 그 끈끈한 냄새를 피할 수 없다. 21세기를 사는 우리들에겐 그런 냄새는 아예 인연이 없는 것처럼 느껴질 수도 있을 것이다. 그러나 과연 그럴까? 이런 냄새를 모르고 평생 사는 사람도 있겠지만, 전혀 관련이 없는 것은 아닐 것이다. 그저 우연일 뿐이다. 아내를 박대하는 김 첨지의 모습... 요새 같으면 간이 배 밖으로 튀어나온 남자겠지만, 그래도 그 애정은 더 진한 것일 수도 있다.
+
+[작가 소개]
+현 진 건(玄鎭健, 1900-1943) : 소설가. 한국 사실주의 단편소설의 기틀을 다진 작가이다. 본관은 연주(延州). 아호는 빙허(憑虛). 1920년대 전반기에는 자전적 요소가 강한 개인적 체험소설인 <빈처> <술 권하는 사회>, 성(性)의 문제와 애정문제를 다룬 <B사감과 러브레터> <새빨간 웃음> 등이 있으며 1920년대 중반 이후에는 <피아노> <우편국에서> <불> <고향> 등 세태에의 관심과 식민지 상황하의 현실인식이 두드러진 작품을 많이 발표했다. <운수 좋은 날>도 이러한 계열에 속하는 작품이다. 1930년대 이후에는 역사의식과 예언주의적 문학관에 근거한 역사소설 중심의 <무영탑> <흑치상지(黑齒常之)> <선화공주> 등 장편소설을 발표했다.
+
+새침하게 흐린 품이 눈이 올 듯하더니 눈은 아니 오고 얼다가 만 비가 추적추적 내리었다.
+
+이날이야말로 동소문 안에서 인력거꾼 노릇을 하는 김 첨지에게는 오래간만에도 닥친 운수 좋은 날이었다. 문안에(거기도 문밖은 아니지만) 들어간답시는 앞집 마나님을 전찻길까지 모셔다 드린 것을 비롯으로 행여나 손님이 있을까 하고 정류장에서 어정어정하며 내리는 사람 하나하나에게 거의 비는 듯한 눈결을 보내고 있다가 마침내 교원인 듯한 양복장이를 동광학교(東光學校)까지 태워다 주기로 되었다.
+
+첫번에 삼십 전, 둘째 번에 오십 전 - 아침 댓바람에 그리 흔치 않은 일이었다. 그야말로 재수가 옴붙어서 근 열흘 동안 돈 구경도 못한 김 첨지는 십 전짜리 백통화 서 푼, 또는 다섯 푼이 찰깍하고 손바닥에 떨어질 제 거의 눈물을 흘릴 만큼 기뻤었다. 더구나 이날 이때에 이 팔십 전이라는 돈이 그에게 얼마나 유용한지 몰랐다. 컬컬한 목에 모주 한 잔도 적실 수 있거니와 그보다도 앓는 아내에게 설렁탕 한 그릇도 사다줄 수 있음이다.
+
+그의 아내가 기침으로 쿨럭거리기는 벌써 달포가 넘었다. 조밥도 굶기를 먹다시피 하는 형편이니 물론 약 한 첩 써 본 일이 없다. 구태여 쓰려면 못 쓸 바도 아니로되 그는 병이란 놈에게 약을 주어 보내면 재미를 붙여서 자꾸 온다는 자기의 신조(信條)에 어디까지 충실하였다. 따라서 의사에게 보인 적이 없으니 무슨 병인지는 알 수 없으되 반듯이 누워 가지고, 일어나기는 새로 모로도 못 눕는걸 보면 중증은 중증인 듯. 병이 이대도록 심해지기는 열흘 전에 조밥을 먹고 체한 때문이다.
+
+그때도 김 첨지가 오래간만에 돈을 얻어서 좁쌀 한 되와 십 전짜리 나무 한 단을 사다 주었더니 김 첨지의 말에 의지하면 그 오라질 년이 천방지축(天方地軸)으로 남비에 대고 끓였다. 마음은 급하고 불길은 달지 않아 채 익지도 않은 것을 그 오라질 년이 숟가락은 고만두고 손으로 움켜서 두 뺨에 주먹덩이 같은 혹이 불거지도록 누가 빼앗을 듯이 처박질 하더니만 그날 저녁부터 가슴이 땅긴다, 배가 켕긴다고 눈을 홉뜨고 지랄병을 하였다. 그때 김 첨지는 열화와 같이 성을 내며,
+
+“에이, 오라질 년, 조롱복은 할 수가 없어, 못 먹어 병, 먹어서 병, 어쩌란 말이야! 왜 눈을 바루 뜨지 못해!”하고 김 첨지는 앓는 이의 뺨을 한 번 후려갈겼다. 홉뜬 눈은 조금 바루어졌건만 이슬이 맺히었다. 김 첨지의 눈시울도 뜨끈뜨끈하였다.
+
+이 환자가 그러고도 먹는 데는 물리지 않았다. 사흘 전부터 설렁탕 국물이 마시고 싶다고 남편을 졸랐다.
+
+“이런 오라질 년! 조밥도 못 먹는 년이 설렁탕은, 또 처먹고 지랄병을 하게.”라고, 야단을 쳐보았건만, 못 사주는 마음이 시원치는 않았다.
+
+인제 설렁탕을 사줄 수도 있다. 앓는 어미 곁에서 배고파 보채는 개똥이(세 살먹이)에게 죽을 사줄 수도 있다. - 팔십 전을 손에 쥔 김 첨지의 마음은 푼푼하였다. 그러나 그의 행운은 그걸로 그치지 않았다. 땀과 빗물이 섞여 흐르는 목덜미를 기름주머니가 다 된 왜목 수건으로 닦으며, 그 학교 문을 돌아나올 때였다. 뒤에서 <인력거!> 하고 부르는 소리가 난다. 자기를 불러 멈춘 사람이 그 학교 학생인 줄 김 첨지는 한 번 보고 짐작할 수 있었다. 그 학생은 다짜고짜로, “남대문 정거장까지 얼마요?”라고, 물었다.
+
+아마도 그 학교 기숙사에 있는 이로 동기방학을 이용하여 귀향하려 함이리라. 오늘 가기로 작정은 하였건만 비는 오고, 짐은 있고 해서 어찌할 줄 모르다가 마침 김 첨지를 보고 뛰어나왔음이리라. 그렇지 않으면 왜 구두를 채 신지 못해서 질질 끌고, 비록 <고구라> 양복일망정 노박이로 비를 맞으며 김첨지를 뒤쫓아 나왔으랴.
+
+“남대문 정거장까지 말씀입니까.”하고 김 첨지는 잠깐 주저하였다. 그는 이 우중에 우장도 없이 그 먼 곳을 철벅거리고 가기가 싫었음일까? 처음 것, 둘째 것으로 그만 만족하였음일까? 아니다, 결코 아니다. 이상하게도 꼬리를 맞물고 덤비는 이 행운 앞에 조금 겁이 났음이다.그리고 집을 나올 제 아내의 부탁이 마음에 켕기었다. - 앞집 마나님한테서 부르러 왔을 제 병인은 그 뼈만 남은 얼굴에 유일의 생물 같은 유달리 크고 움폭한 눈에 애걸하는 빛을 띠우며, “오늘은 나가지 말아요. 제발 덕분에 집에 붙어있어요. 내가 이렇게 아픈데……”라고, 모기 소리같이 중얼거리고 숨을 걸그렁걸그렁 하였다.
+
+그때에 김 첨지는 대수롭지 않은 듯이, “압다, 젠장맞을 년, 별 빌어먹을 소리를 다 하네. 맞붙들고 앉았으면 누가 먹여 살릴 줄 알아.”하고, 훌쩍 뛰어나오려니까 환자는 붙잡을 듯이 팔을 내저으며, “나가지 말라도 그래, 그러면 일찌기 들어와요.”하고, 목메인 소리가 뒤를 따랐다.
+
+정거장까지 가잔 말을 들은 순간에 경련적으로 떠는 손, 유달리 큼직한 눈, 울 듯한 아내의 얼굴이 김 첨지의 눈앞에 어른어른하였다. “그래 남대문 정거장까지 얼마란 말이요?”하고 학생은 초조한 듯이 인력거꾼의 얼굴을 바라보며 혼잣말같이, “인천 차가 열 한 점에 있고, 그 다음에는 새로 두 점이든가.”라고, 중얼거린다.
+
+“일 원 오십 전만 줍시요.” 이 말이 저도 모를 사이에 불쑥 김 첨지의 입에서 떨어졌다. 제 입으로 부르고도 스스로 그 엄청난 돈 액수에 놀래었다. 한꺼번에 이런 금액을 불러라도 본 지가 그 얼마만인가! 그러자 그 돈 벌 용기가 병자에 대한 염려를 사르고 말았다. 설마 오늘 내로 어떠랴 싶었다. 무슨 일이 있더라도 제일 제이의 행운을 곱친 것보다도 오히려 갑절이 많은 이 행운을 놓칠 수 없다 하였다.
+
+“일 원 오십 전은 너무 과한데.” 이런 말을 하며 학생은 고개를 기웃하였다.
+
+“아니올시다. 잇수로 치면 여기서 거기가 시오리가 넘는답니다. 또 이런 진 날에 좀더 주셔야지요.”하고 빙글빙글 웃는 차부의 얼굴에는 숨길 수 없는 기쁨이 넘쳐 흘렀다.
+
+“그러면 달라는 대로 줄 터이니 빨리 가요.” 관대한 어린 손님은 그런 말을 남기고 총총히 옷도 입고 짐도 챙기러 갈 데로 갔다.
+
+그 학생을 태우고 나선 김 첨지의 다리는 이상하게 거뿐하였다. 달음질을 한다느니보다 거의 나는 듯하였다. 바퀴도 어떻게 속히 도는지 군다느니보다 마치 얼음을 지쳐나가는 <스케이트> 모양으로 미끄러져 가는 듯하였다. 얼은 땅에 비가 내려 미끄럽기도 하였지만.
+
+이윽고 끄는 이의 다리는 무거워졌다. 자기 집 가까이 다다른 까닭이다. 새삼스러운 염려가 그의 가슴을 눌렀다. <오늘은 나가지 말아요. 내가 이렇게 아픈데!> 이런 말이 잉잉 그의 귀에 울렸다. 그리고 병자의 움쑥 들어간 눈이 원망하는 듯이 자기를 노리는 듯하였다. 그러자 엉엉하고 우는 개똥이의 곡성을 들은 듯싶다. 딸국딸국 하고 숨 모으는 소리도 나는 듯싶다.“왜 이리우, 기차 놓치겠구먼.”하고 탄 이의 초조한 부르짖음이 간신히 그의 귀에 들어왔다. 언뜻 깨달으니 김 첨지는 인력거를 쥔 채 길 한복판에 엉거주춤 멈춰있지 않은가.
+
+“예, 예.”하고, 김 첨지는 또다시 달음질하였다. 집이 차차 멀어갈수록 김 첨지의 걸음에는 다시금 신이 나기 시작하였다. 다리를 재게 놀려야만 쉴새없이 자기의 머리에 떠오르는 모든 근심과 걱정을 잊을 듯이.
+
+정거장까지 끌어다주고 그 깜짝 놀란 일 원 오십 전을 정말 제 손에 쥠에, 제 말마따나 십 리나 되는 길을 비를 맞아 가며 질퍽거리고 온 생각은 아니하고, 거저나 얻은 듯이 고마왔다. 졸부나 된 듯이 기뻤다. 제자식 뻘밖에 안되는 어린 손님에게 몇 번 허리를 굽히며, “안녕히 다녀옵시요.”라고 깍듯이 재우쳤다.
+
+그러나 빈 인력거를 털털거리며 이 우중에 돌아갈 일이 꿈밖이었다. 노동으로 하여 흐른 땀이 식어지자 굶주린 창자에서, 물 흐르는 옷에서 어슬어슬 한기가 솟아나기 비롯하매 일 원 오십 전이란 돈이 얼마나 괜찮고 괴로운 것인 줄 절절히 느끼었다. 정거장을 떠나는 그의 발길은 힘 하나 없었다. 온몸이 옹송그려지며 당장 그 자리에 엎어져 못 일어날 것 같았다.
+
+“젠장맞을 것! 이 비를 맞으며 빈 인력거를 털털거리고 돌아를 간담. 이런 빌어먹을, 제 할미를 붙을 비가 왜 남의 상판을 딱딱 때려!”
+
+그는 몹시 홧증을 내며 누구에게 반항이나 하는 듯이 게걸거렸다. 그럴 즈음에 그의 머리엔 또 새로운 광명이 비쳤나니 그것은 <이러구 갈 게 아니라 이 근처를 빙빙 돌며 차 오기를 기다리면 또 손님을 태우게 될는지도 몰라>란 생각이었다. 오늘 운수가 괴상하게도 좋으니까 그런 요행이 또한번 없으리라고 누가 보증하랴. 꼬리를 굴리는 행운이 꼭 자기를 기다리고 있다고 내기를 해도 좋을 만한 믿음을 얻게 되었다. 그렇다고 정거장 인력거꾼의 등살이 무서우니 정거장 앞에 섰을 수는 없었다.
+
+그래 그는 이전에도 여러 번 해본 일이라 바로 정거장 앞 전차 정류장에서 조금 떨어지게, 사람 다니는 길과 전찻길 틈에 인력거를 세워놓고 자기는 그 근처를 빙빙 돌며 형세를 관망하기로 하였다. 얼마만에 기차는 왔고, 수십 명이나 되는 손이 정류장으로 쏟아져 나왔다. 그 중에서 손님을 물색하는 김 첨지의 눈엔 양머리에 뒤축 높은 구두를 신고 <망토>까지 두른 기생 퇴물인 듯, 난봉 여학생인 듯한 여편네의 모양이 띄었다. 그는 슬근슬근 그 여자의 곁으로 다가들었다.
+
+“아씨, 인력거 아니 타시랍시요?”
+
+그 여학생인지 뭔지가 한참은 매우 탯갈을 빼며 입술을 꼭 다문 채 김 첨지를 거들떠보지도 않았다. 김 첨지는 구걸하는 거지나 무엇같이 연해연방 그의 기색을 살피며, “아씨, 정거장 애들보담 아주 싸게 모셔다 드리겠읍니다. 댁이 어디신가요.”하고, 추근추근하게도 그 여자의 들고 있는 일본식 버들고리짝에 제 손을 대었다.
+
+“왜 이래, 남 귀치않게.” 소리를 벽력같이 지르고는 돌아선다. 김 첨지는 어랍시요 하고 물러섰다.
+
+전차는 왔다. 김 첨지는 원망스럽게 전차 타는 이를 노리고 있었다. 그러나 그의 예감(豫感)은 틀리지 않았다. 전차가 빡빡하게 사람을 싣고 움직이기 시작하였을 때 타고 남은 손 하나이 있었다. 굉장하게 큰 가방을 들고 있는걸 보면 아마 붐비는 차 안에 짐이 크다 하여 차장에게 밀려내려온 눈치였다. 김 첨지는 대어섰다.
+
+“인력거를 타시랍시요.”
+
+한동안 값으로 승강이를 하다가 육십 전에 인사동까지 태워다주기로 하였다. 인력거가 무거워지매 그의 몸은 이상하게도 가벼워졌고 그리고 또 인력거가 가벼워지니 몸은 다시금 무거워졌건만 이번에는 마음조차 초조해 온다. 집의 광경이 자꾸 눈앞에 어른거리어 인제 요행을 바랄 여유도 없었다. 나무 등걸이나 무엇 같고 제 것 같지도 않은 다리를 연해 꾸짖으며 갈팡질팡 뛰는 수밖에 없었다.
+
+저놈의 인력거군이 저렇게 술이 취해가지고 이 진 땅에 어찌 가노, 라고 길 가는 사람이 걱정을 하리만큼 그의 걸음은 황급하였다. 흐리고 비오는 하늘은 어둠침침하게 벌써 황혼에 가까운 듯하다. 창경원 앞까지 다달아서야 그는 턱에 닿은 숨을 돌리고 걸음도 늦추잡았다. 한 걸음 두 걸음 집이 가까와올수록 그의 마음조차 괴상하게 누그러웠다. 그런데 이 누그러움은 안심에서 오는 게 아니요, 자기를 덮친 무서운 불행을 빈틈없이 알게 될 때가 박두한 것을 두려워하는 마음에서 오는 것이다.
+
+그는 불행에 다닥치기 전 시간을 얼마쯤이라도 늘리려고 버르적거렸다. 기적(奇蹟)에 가까운 벌이를 하였다는 기쁨을 할 수 있으면 오래 지니고 싶었다. 그는 두리번두리번 사면을 살피었다. 그 모양은 마치 자기 집 - 곧 불행을 향하고 달려가는 제 다리를 제 힘으로는 도저히 어찌할 수 없으니 누구든지 나를 좀 잡아 다고, 구해 다고 하는 듯하였다.
+
+그럴 즈음에 마침 길가 선술집에서 그의 친구 치삼이가 나온다. 그의 우글우글 살찐 얼굴에 주홍이 돋는 듯, 온 턱과 뺨을 시커멓게 구레나룻이 덮였거늘, 노르탱탱한 얼굴이 바짝 말라서 여기저기 고랑이 패고, 수염도 있대야 턱밑에만 마치 솔잎 송이를 거꾸로 붙여놓은 듯한 김 첨지의 풍채하고는 기이한 대상을 짓고 있었다.
+
+“여보게 김 첨지, 자네 문안 들어갔다 오는 모양일세그려. 돈 많이 벌었을 테니 한 잔 빨리게.”
+
+뚱뚱보는 말라깽이를 보든 맡에 부르짖었다. 그 목소리는 몸짓과 딴판으로 연하고 싹싹하였다. 김 첨지는 이 친구를 만난 게 어떻게 반가운지 몰랐다. 자기를 살려준 은인이나 무엇같이 고맙기도 하였다.
+
+“자네는 벌써 한잔 한 모양일세그려. 자네도 오늘 재미가 좋아보이.”하고, 김 첨지는 얼굴을 펴서 웃었다.
+
+“압다, 재미 안 좋다고 술 못 먹을 낸가. 그런데 여보게, 자네 왼몸이 어째 물독에 빠진 새앙쥐 같은가? 어서 이리 들어와 말리게.”
+
+선술집은 훈훈하고 뜨뜻하였다. 추어탕을 끓이는 솥뚜껑을 열 적마다 뭉게뭉게 떠오르는 흰 김, 석쇠에서 뻐지짓뻐지짓 구워지는 너비아니 구이며 제육이며 간이며 콩팥이며 북어며 빈대떡……이 너저분하게 늘어놓인 안주 탁자에 김 첨지는 갑자기 속이 쓰려서 견딜 수 없었다. 마음대로 할 양이면 거기 있는 모든 먹음 먹이를 모조리 깡그리 집어삼켜도 시원치 않았다. 하되 배고픈 이는 위선 분량 많은 빈대떡 두 개를 쪼이기도 하고 추어탕을 한 그릇 청하였다.
+
+주린 창자는 음식맛을 보더니 더욱더욱 비어지며 자꾸자꾸 들이라들이라 하였다. 순식간에 두부와 미꾸리 든 국 한 그릇을 그냥 물같이 들이키고 말았다. 세째 그릇을 받아들었을 제 데우던 막걸이 곱배기 두 잔이 더웠다. 치삼이와 같이 마시자 원원히 비었던 속이라 찌르르하고 창자에 퍼지며 얼굴이 화끈하였다. 눌러 곱배기 한 잔을 또 마셨다.
+
+김 첨지의 눈은 벌써 개개 풀리기 시작하였다. 석쇠에 얹힌 떡 두 개를 숭덩숭덩 썰어서 볼을 불룩거리며 또 곱배기 두 잔을 부어라 하였다.
+
+치삼은 의아한 듯이 김 첨지를 보며, “여보게 또 붓다니, 벌써 우리가 넉 잔씩 먹었네, 돈이 사십 전일세.”라고 주의시켰다.
+
+“아따 이놈아, 사십 전이 그리 끔찍하냐. 오늘 내가 돈을 막 벌었어. 참 오늘 운수가 좋았느니.”
+
+“그래 얼마를 벌었단 말인가?”
+
+“삼십 원을 벌었어, 삼십 원을! 이런 젠장맞을 술을 왜 안부어……괜찮다 괜찮다, 막 먹어도 상관이 없어. 오늘 돈 산더미같이 벌었는데.”
+
+“어, 이 사람 취했군, 그만두세.”
+
+“이놈아, 이걸 먹고 취할 내냐, 어서 더 먹어.”하고는 치삼의 귀를 잡아채며 취한 이는 부르짖었다. 그리고 술을 붓는 열 다섯 살 됨직한 중대가리에게로 달려들며, “이놈, 오라질 놈, 왜 술을 붓지 않어.”라고 야단을 쳤다. 중대가리는 히히 웃고 치삼을 보며 문의하는 듯이 눈짓을 하였다. 주정꾼이 눈치를 알아보고 화를 버럭내며, “에미를 붙을 이 오라질 놈들 같으니, 이놈 내가 돈이 없을 줄 알고.”하자마자 허리춤을 훔칫훔칫 하더니 일 원짜리 한 장을 꺼내어 중대가리 앞에 펄쩍 집어던졌다. 그 사품에 몇 푼 은전이 잘그랑 하며 떨어진다.
+
+“여보게 돈 떨어졌네, 왜 돈을 막 끼얹나.” 이런 말을 하며 일변 돈을 줍는다. 김 첨지는 취한 중에도 돈의 거처를 살피는 듯이 눈을 크게 떠서 땅을 내려다보다가 불시에 제 하는 짓이 너무 더럽다는 듯이 고개를 소스라치자 더욱 성을 내며, “봐라 봐! 이 더러운 놈들아, 내가 돈이 없나, 다리뼉다구를 꺾어놓을 놈들 같으니.”하고 치삼의 주워주는 돈을 받아, “이 원수엣 돈! 이 육시를 할 돈!”하면서, 풀매질을 친다. 벽에 맞아 떨어진 돈은 다시 술 끓이는 양푼에 떨어지며 정당한 매를 맞는다는 듯이 쨍하고 울었다.
+
+곱배기 두 잔은 또 부어질 겨를도 없이 말려가고 말았다. 김 첨지는 입술과 수염에 붙은 술을 빨아들이고 나서 매우 만족한 듯이 그 솔잎 송이 수염을 쓰다듬으며, “또 부어, 또 부어.”라고, 외쳤다.
+
+또 한 잔 먹고 나서 김 첨지는 치삼의 어깨를 치며 문득 껄껄 웃는다. 그 웃음 소리가 어떻게 컸는지 술집에 있는 이의 눈은 모두 김 첨지에게로 몰리었다. 웃는 이는 더욱 웃으며, “여보게 치삼이, 내 우스운 이야기 하나 할까. 오늘 손을 태고 정거장에까지 가지 않았겠나.”
+
+“그래서.”
+
+“갔다가 그저 오기가 안 됐데그려. 그래 전차 정류장에서 어름어름하며 손님 하나를 태울 궁리를 하지 않았나. 거기 마침 마나님이신지 여학생님이신지 - 요새야 어디 논다니와 아가씨를 구별할 수가 있던가 - <망토>를 두르고 비를 맞고 서 있겠지. 슬근슬근 가까이 가서 인력거 타시랍시요 하고 손가방을 받으랴니까 내 손을 탁 뿌리치고 홱 돌아서더니만 <왜 남을 이렇게 귀찮게 굴어!> 그 소리야말로 꾀꼬리 소리지, 허허!”
+
+김 첨지는 교묘하게도 정말 꾀꼬리 같은 소리를 내었다. 모든 사람은 일시에 웃었다.
+
+“빌어먹을 깍쟁이 같은 년, 누가 저를 어쩌나, <왜 남을 귀찮게 굴어!> 어이구 소리가 처신도 없지, 허허.”
+
+웃음 소리들은 높아졌다. 그러나 그 웃음 소리들이 사라지기 전에 김 첨지는 훌쩍훌쩍 울기 시작하였다.
+
+치삼은 어이없이 주정뱅이를 바라보며, “금방 웃고 지랄을 하더니 우는 건 또 무슨 일인가.”
+
+김 첨지는 연해 코를 들여마시며, “우리 마누라가 죽었다네.”
+
+“뭐, 마누라가 죽다니, 언제?”
+
+“이놈아 언제는. 오늘이지.”
+
+“엑기 미친 놈, 거짓말 말아.”
+
+“거짓말은 왜, 참말로 죽었어, 참말로... 마누라 시체를 집어 뻐들쳐놓고 내가 술을 먹다니, 내가 죽일 놈이야, 죽일 놈이야.”하고 김 첨지는 엉엉 소리를 내어 운다.
+
+치삼은 흥이 조금 깨어지는 얼굴로, “원 이 사람이, 참말을 하나 거짓말을 하나. 그러면 집으로 가세, 가.”하고 우는 이의 팔을 잡아당기었다.
+
+치삼의 끄는 손을 뿌리치더니 김 첨지는 눈물이 글썽글썽한 눈으로 싱그레 웃는다.
+
+“죽기는 누가 죽어.”하고 득의가 양양.
+
+“죽기는 왜 죽어, 생때같이 살아만 있단다. 그 오라질 년이 밥을 죽이지. 인제 나한테 속았다.”하고 어린애 모양으로 손뼉을 치며 웃는다.
+
+“이 사람이 정말 미쳤단 말인가. 나도 아주먼네가 앓는단 말은 들었는데.”하고, 치삼이도 어느 불안을 느끼는 듯이 김 첨지에게 또 돌아가라고 권하였다.
+
+“안 죽었어, 안 죽었대도그래.”
+
+김 첨지는 홧증을 내며 확신있게 소리를 질렀으되 그 소리엔 안 죽은 것을 믿으려고 애쓰는 가락이 있었다. 기어이 일 원어치를 채워서 곱배기 한 잔씩 더 먹고 나왔다. 궂은 비는 의연히 추적추적 내린다.
+
+김 첨지는 취중에도 설렁탕을 사가지고 집에 다달았다. 집이라 해도 물론 셋집이요, 또 집 전체를 세든 게 아니라 안과 뚝떨어진 행랑방 한 간을 빌려 든 것인데 물을 길어대고 한 달에 일 원씩 내는 터이다. 만일 김 첨지가 주기를 띠지 않았던들 한 발을 대문에 들여놓았을 제 그곳을 지배하는 무시무시한 정적(靜寂) - 폭풍우가 지나간 뒤의 바다 같은 정적에 다리가 떨렸으리라.
+
+쿨룩거리는 기침 소리도 들을 수 없다. 그르렁거리는 숨소리조차 들을 수 없다. 다만 이 무덤같은 침묵을 깨뜨리는 - 깨뜨린다느니보다 한층 더 침묵을 깊게 하고 불길하게 하는 빡빡하는 그윽한 소리, 어린애의 젖 빠는 소리가 날 뿐이다. 만일 청각(聽覺)이 예민한 이 같으면 그 빡빡 소리는 빨 따름이요, 꿀떡꿀떡 하고 젖 넘어가는 소리가 없으니 빈 젖을 빤다는 것도 짐작할는지 모르리라.
+
+혹은 김 첨지도 이 불길한 침묵을 짐작했는지도 모른다. 그렇지 않으면 대문에 들어서자마자 전에 없이, “이 난장 맞을 년, 남편이 들어오는데 나와보지도 않아, 이 오라질 년.”이라고 고함을 친 게 수상하다. 이 고함이야말로 제 몸을 엄습해오는 무시무시한 증을 쫓아버리려는 허장성세(虛張聲勢)인 까닭이다.
+
+하여간 김 첨지는 방문을 왈칵 열었다. 구역을 나게 하는 추기 - 떨어진 삿자리 밑에서 나온 먼지내, 빨지 않은 기저귀에서 나는 똥내와 오줌내, 가지각색 때가 케케히 앉은 옷내, 병인의 땀 썩은 내가 섞인 추기가 무딘 김 첨지의 코를 찔렀다.
+
+방안에 들어서며 설렁탕을 한구석에 놓을 사이도 없이 주정군은 목청을 있는 대로 다 내어 호통을 쳤다.
+
+“이런 오라질 년, 주야장천(晝夜長川) 누워만 있으면 제일이야! 남편이 와도 일어나지를 못해.”라는 소리와 함께 발길로 누운 이의 다리를 몹시 찼다. 그러나 발길에 채이는 건 사람의 살이 아니고 나무등걸과 같은 느낌이 있었다. 이때에 빽빽 소리가 응아 소리로 변하였다. 개똥이가 물었던 젖을 빼어놓고 운다. 운대도 온 얼굴을 찡그려 붙여서, 운다는 표정을 할 뿐이다. 응아 소리도 입에서 나는 게 아니고 마치 뱃속에서 나는 듯하였다. 울다가 울다가 목도 잠겼고 또 울 기운조차 시진한 것 같다.
+
+발로 차도 그 보람이 없는 걸 보자 남편은 아내의 머리맡으로 달려들어 그야말로 까치집 같은 환자의 머리를 꺼들어 흔들며, “이 년아, 말을 해, 말을! 입이 붙었어, 이 오라질 년!”
+
+“…”
+
+“으응, 이것 봐, 아무 말이 없네.”
+“…”
+
+“이년아, 죽었단 말이냐, 왜 말이 없어.”
+
+“…”
+
+“으응. 또 대답이 없네, 정말 죽었나버이.”
+
+이러다가 누운 이의 흰 창을 덮은, 위로 치뜬 눈을 알아보자마자, “이 눈깔! 이 눈깔! 왜 나를 바라보지 못하고 천정만 보느냐, 응.”하는 말 끝엔 목이 메었다. 그러자 산 사람의 눈에서 떨어진 닭의 똥 같은 눈물이 죽은 이의 뻣뻣한 얼굴을 어룽어룽 적시었다. 문득 김 첨지는 미칠 듯이 제 얼굴을 죽은 이의 얼굴에 한테 비비대며 중얼거렸다.
+
+“설렁탕을 사다놓았는데 왜 먹지를 못하니, 왜 먹지를 못하니... 괴상하게도 오늘은! 운수가 좋더니만... ”
diff --git a/vendor/golang.org/x/text/encoding/unicode/utf32/utf32.go b/vendor/golang.org/x/text/encoding/unicode/utf32/utf32.go
new file mode 100644
index 0000000..48b2152
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/unicode/utf32/utf32.go
@@ -0,0 +1,296 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package utf32 provides the UTF-32 Unicode encoding.
+//
+// Please note that support for UTF-32 is discouraged as it is a rare and
+// inefficient encoding, unfit for use as an interchange format. For use
+// on the web, the W3C strongly discourages its use
+// (https://www.w3.org/TR/html5/document-metadata.html#charset)
+// while WHATWG directly prohibits supporting it
+// (https://html.spec.whatwg.org/multipage/syntax.html#character-encodings).
+package utf32 // import "golang.org/x/text/encoding/unicode/utf32"
+
+import (
+ "errors"
+ "unicode/utf8"
+
+ "golang.org/x/text/encoding"
+ "golang.org/x/text/encoding/internal/identifier"
+ "golang.org/x/text/transform"
+)
+
+// All lists a configuration for each IANA-defined UTF-32 variant.
+var All = []encoding.Encoding{
+ UTF32(BigEndian, UseBOM),
+ UTF32(BigEndian, IgnoreBOM),
+ UTF32(LittleEndian, IgnoreBOM),
+}
+
+// ErrMissingBOM means that decoding UTF-32 input with ExpectBOM did not
+// find a starting byte order mark.
+var ErrMissingBOM = errors.New("encoding: missing byte order mark")
+
+// UTF32 returns a UTF-32 Encoding for the given default endianness and
+// byte order mark (BOM) policy.
+//
+// When decoding from UTF-32 to UTF-8, if the BOMPolicy is IgnoreBOM then
+// neither BOMs U+FEFF nor ill-formed code units 0xFFFE0000 in the input
+// stream will affect the endianness used for decoding. Instead BOMs will
+// be output as their standard UTF-8 encoding "\xef\xbb\xbf" while
+// 0xFFFE0000 code units will be output as "\xef\xbf\xbd", the standard
+// UTF-8 encoding for the Unicode replacement character. If the BOMPolicy
+// is UseBOM or ExpectBOM a starting BOM is not written to the UTF-8
+// output. Instead, it overrides the default endianness e for the remainder
+// of the transformation. Any subsequent BOMs U+FEFF or ill-formed code
+// units 0xFFFE0000 will not affect the endianness used, and will instead
+// be output as their standard UTF-8 (replacement) encodings. For UseBOM,
+// if there is no starting BOM, it will proceed with the default
+// Endianness. For ExpectBOM, in that case, the transformation will return
+// early with an ErrMissingBOM error.
+//
+// When encoding from UTF-8 to UTF-32, a BOM will be inserted at the start
+// of the output if the BOMPolicy is UseBOM or ExpectBOM. Otherwise, a BOM
+// will not be inserted. The UTF-8 input does not need to contain a BOM.
+//
+// There is no concept of a 'native' endianness. If the UTF-32 data is
+// produced and consumed in a greater context that implies a certain
+// endianness, use IgnoreBOM. Otherwise, use ExpectBOM and always produce
+// and consume a BOM.
+//
+// In the language of http://www.unicode.org/faq/utf_bom.html#bom10,
+// IgnoreBOM corresponds to "Where the precise type of the data stream is
+// known... the BOM should not be used" and ExpectBOM corresponds to "A
+// particular protocol... may require use of the BOM".
+func UTF32(e Endianness, b BOMPolicy) encoding.Encoding {
+ return utf32Encoding{config{e, b}, mibValue[e][b&bomMask]}
+}
+
+// mibValue maps Endianness and BOMPolicy settings to MIB constants for UTF-32.
+// Note that some configurations map to the same MIB identifier.
+var mibValue = map[Endianness][numBOMValues]identifier.MIB{
+ BigEndian: [numBOMValues]identifier.MIB{
+ IgnoreBOM: identifier.UTF32BE,
+ UseBOM: identifier.UTF32,
+ },
+ LittleEndian: [numBOMValues]identifier.MIB{
+ IgnoreBOM: identifier.UTF32LE,
+ UseBOM: identifier.UTF32,
+ },
+ // ExpectBOM is not widely used and has no valid MIB identifier.
+}
+
+// BOMPolicy is a UTF-32 encodings's byte order mark policy.
+type BOMPolicy uint8
+
+const (
+ writeBOM BOMPolicy = 0x01
+ acceptBOM BOMPolicy = 0x02
+ requireBOM BOMPolicy = 0x04
+ bomMask BOMPolicy = 0x07
+
+ // HACK: numBOMValues == 8 triggers a bug in the 1.4 compiler (cannot have a
+ // map of an array of length 8 of a type that is also used as a key or value
+ // in another map). See golang.org/issue/11354.
+ // TODO: consider changing this value back to 8 if the use of 1.4.* has
+ // been minimized.
+ numBOMValues = 8 + 1
+
+ // IgnoreBOM means to ignore any byte order marks.
+ IgnoreBOM BOMPolicy = 0
+ // Unicode-compliant interpretation for UTF-32BE/LE.
+
+ // UseBOM means that the UTF-32 form may start with a byte order mark,
+ // which will be used to override the default encoding.
+ UseBOM BOMPolicy = writeBOM | acceptBOM
+ // Unicode-compliant interpretation for UTF-32.
+
+ // ExpectBOM means that the UTF-32 form must start with a byte order mark,
+ // which will be used to override the default encoding.
+ ExpectBOM BOMPolicy = writeBOM | acceptBOM | requireBOM
+ // Consistent with BOMPolicy definition in golang.org/x/text/encoding/unicode
+)
+
+// Endianness is a UTF-32 encoding's default endianness.
+type Endianness bool
+
+const (
+ // BigEndian is UTF-32BE.
+ BigEndian Endianness = false
+ // LittleEndian is UTF-32LE.
+ LittleEndian Endianness = true
+)
+
+type config struct {
+ endianness Endianness
+ bomPolicy BOMPolicy
+}
+
+type utf32Encoding struct {
+ config
+ mib identifier.MIB
+}
+
+func (u utf32Encoding) NewDecoder() *encoding.Decoder {
+ return &encoding.Decoder{Transformer: &utf32Decoder{
+ initial: u.config,
+ current: u.config,
+ }}
+}
+
+func (u utf32Encoding) NewEncoder() *encoding.Encoder {
+ return &encoding.Encoder{Transformer: &utf32Encoder{
+ endianness: u.endianness,
+ initialBOMPolicy: u.bomPolicy,
+ currentBOMPolicy: u.bomPolicy,
+ }}
+}
+
+func (u utf32Encoding) ID() (mib identifier.MIB, other string) {
+ return u.mib, ""
+}
+
+func (u utf32Encoding) String() string {
+ e, b := "B", ""
+ if u.endianness == LittleEndian {
+ e = "L"
+ }
+ switch u.bomPolicy {
+ case ExpectBOM:
+ b = "Expect"
+ case UseBOM:
+ b = "Use"
+ case IgnoreBOM:
+ b = "Ignore"
+ }
+ return "UTF-32" + e + "E (" + b + " BOM)"
+}
+
+type utf32Decoder struct {
+ initial config
+ current config
+}
+
+func (u *utf32Decoder) Reset() {
+ u.current = u.initial
+}
+
+func (u *utf32Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ if len(src) == 0 {
+ if atEOF && u.current.bomPolicy&requireBOM != 0 {
+ return 0, 0, ErrMissingBOM
+ }
+ return 0, 0, nil
+ }
+ if u.current.bomPolicy&acceptBOM != 0 {
+ if len(src) < 4 {
+ return 0, 0, transform.ErrShortSrc
+ }
+ switch {
+ case src[0] == 0x00 && src[1] == 0x00 && src[2] == 0xfe && src[3] == 0xff:
+ u.current.endianness = BigEndian
+ nSrc = 4
+ case src[0] == 0xff && src[1] == 0xfe && src[2] == 0x00 && src[3] == 0x00:
+ u.current.endianness = LittleEndian
+ nSrc = 4
+ default:
+ if u.current.bomPolicy&requireBOM != 0 {
+ return 0, 0, ErrMissingBOM
+ }
+ }
+ u.current.bomPolicy = IgnoreBOM
+ }
+
+ var r rune
+ var dSize, sSize int
+ for nSrc < len(src) {
+ if nSrc+3 < len(src) {
+ x := uint32(src[nSrc+0])<<24 | uint32(src[nSrc+1])<<16 |
+ uint32(src[nSrc+2])<<8 | uint32(src[nSrc+3])
+ if u.current.endianness == LittleEndian {
+ x = x>>24 | (x >> 8 & 0x0000FF00) | (x << 8 & 0x00FF0000) | x<<24
+ }
+ r, sSize = rune(x), 4
+ if dSize = utf8.RuneLen(r); dSize < 0 {
+ r, dSize = utf8.RuneError, 3
+ }
+ } else if atEOF {
+ // 1..3 trailing bytes.
+ r, dSize, sSize = utf8.RuneError, 3, len(src)-nSrc
+ } else {
+ err = transform.ErrShortSrc
+ break
+ }
+ if nDst+dSize > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ nDst += utf8.EncodeRune(dst[nDst:], r)
+ nSrc += sSize
+ }
+ return nDst, nSrc, err
+}
+
+type utf32Encoder struct {
+ endianness Endianness
+ initialBOMPolicy BOMPolicy
+ currentBOMPolicy BOMPolicy
+}
+
+func (u *utf32Encoder) Reset() {
+ u.currentBOMPolicy = u.initialBOMPolicy
+}
+
+func (u *utf32Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ if u.currentBOMPolicy&writeBOM != 0 {
+ if len(dst) < 4 {
+ return 0, 0, transform.ErrShortDst
+ }
+ dst[0], dst[1], dst[2], dst[3] = 0x00, 0x00, 0xfe, 0xff
+ u.currentBOMPolicy = IgnoreBOM
+ nDst = 4
+ }
+
+ r, size := rune(0), 0
+ for nSrc < len(src) {
+ r = rune(src[nSrc])
+
+ // Decode a 1-byte rune.
+ if r < utf8.RuneSelf {
+ size = 1
+
+ } else {
+ // Decode a multi-byte rune.
+ r, size = utf8.DecodeRune(src[nSrc:])
+ if size == 1 {
+ // All valid runes of size 1 (those below utf8.RuneSelf) were
+ // handled above. We have invalid UTF-8 or we haven't seen the
+ // full character yet.
+ if !atEOF && !utf8.FullRune(src[nSrc:]) {
+ err = transform.ErrShortSrc
+ break
+ }
+ }
+ }
+
+ if nDst+4 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+
+ dst[nDst+0] = uint8(r >> 24)
+ dst[nDst+1] = uint8(r >> 16)
+ dst[nDst+2] = uint8(r >> 8)
+ dst[nDst+3] = uint8(r)
+ nDst += 4
+ nSrc += size
+ }
+
+ if u.endianness == LittleEndian {
+ for i := 0; i < nDst; i += 4 {
+ dst[i], dst[i+1], dst[i+2], dst[i+3] = dst[i+3], dst[i+2], dst[i+1], dst[i]
+ }
+ }
+ return nDst, nSrc, err
+}
diff --git a/vendor/golang.org/x/text/encoding/unicode/utf32/utf32_test.go b/vendor/golang.org/x/text/encoding/unicode/utf32/utf32_test.go
new file mode 100644
index 0000000..cd6158e
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/unicode/utf32/utf32_test.go
@@ -0,0 +1,248 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package utf32
+
+import (
+ "testing"
+
+ "golang.org/x/text/encoding"
+ "golang.org/x/text/encoding/internal/enctest"
+ "golang.org/x/text/transform"
+)
+
+var (
+ utf32LEIB = UTF32(LittleEndian, IgnoreBOM) // UTF-32LE (atypical interpretation)
+ utf32LEUB = UTF32(LittleEndian, UseBOM) // UTF-32, LE
+ // utf32LEEB = UTF32(LittleEndian, ExpectBOM) // UTF-32, LE, Expect - covered in encoding_test.go
+ utf32BEIB = UTF32(BigEndian, IgnoreBOM) // UTF-32BE (atypical interpretation)
+ utf32BEUB = UTF32(BigEndian, UseBOM) // UTF-32 default
+ utf32BEEB = UTF32(BigEndian, ExpectBOM) // UTF-32 Expect
+)
+
+func TestBasics(t *testing.T) {
+ testCases := []struct {
+ e encoding.Encoding
+ encPrefix string
+ encSuffix string
+ encoded string
+ utf8 string
+ }{{
+ e: utf32BEIB,
+ encoded: "\x00\x00\x00\x57\x00\x00\x00\xe4\x00\x01\xd5\x65",
+ utf8: "\x57\u00e4\U0001d565",
+ }, {
+ e: UTF32(BigEndian, ExpectBOM),
+ encPrefix: "\x00\x00\xfe\xff",
+ encoded: "\x00\x00\x00\x57\x00\x00\x00\xe4\x00\x01\xd5\x65",
+ utf8: "\x57\u00e4\U0001d565",
+ }, {
+ e: UTF32(LittleEndian, IgnoreBOM),
+ encoded: "\x57\x00\x00\x00\xe4\x00\x00\x00\x65\xd5\x01\x00",
+ utf8: "\x57\u00e4\U0001d565",
+ }, {
+ e: UTF32(LittleEndian, ExpectBOM),
+ encPrefix: "\xff\xfe\x00\x00",
+ encoded: "\x57\x00\x00\x00\xe4\x00\x00\x00\x65\xd5\x01\x00",
+ utf8: "\x57\u00e4\U0001d565",
+ }}
+
+ for _, tc := range testCases {
+ enctest.TestEncoding(t, tc.e, tc.encoded, tc.utf8, tc.encPrefix, tc.encSuffix)
+ }
+}
+
+func TestFiles(t *testing.T) { enctest.TestFile(t, utf32BEIB) }
+
+func BenchmarkEncoding(b *testing.B) { enctest.Benchmark(b, utf32BEIB) }
+
+func TestUTF32(t *testing.T) {
+ testCases := []struct {
+ desc string
+ src string
+ notEOF bool // the inverse of atEOF
+ sizeDst int
+ want string
+ nSrc int
+ err error
+ t transform.Transformer
+ }{{
+ desc: "utf-32 IgnoreBOM dec: empty string",
+ t: utf32BEIB.NewDecoder(),
+ }, {
+ desc: "utf-32 UseBOM dec: empty string",
+ t: utf32BEUB.NewDecoder(),
+ }, {
+ desc: "utf-32 ExpectBOM dec: empty string",
+ err: ErrMissingBOM,
+ t: utf32BEEB.NewDecoder(),
+ }, {
+ desc: "utf-32be dec: Doesn't interpret U+FEFF as BOM",
+ src: "\x00\x00\xFE\xFF\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61",
+ sizeDst: 100,
+ want: "\uFEFF\U00012345=Ra",
+ nSrc: 20,
+ t: utf32BEIB.NewDecoder(),
+ }, {
+ desc: "utf-32be dec: Interprets little endian U+FEFF as invalid",
+ src: "\xFF\xFE\x00\x00\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61",
+ sizeDst: 100,
+ want: "\uFFFD\U00012345=Ra",
+ nSrc: 20,
+ t: utf32BEIB.NewDecoder(),
+ }, {
+ desc: "utf-32le dec: Doesn't interpret U+FEFF as BOM",
+ src: "\xFF\xFE\x00\x00\x45\x23\x01\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00",
+ sizeDst: 100,
+ want: "\uFEFF\U00012345=Ra",
+ nSrc: 20,
+ t: utf32LEIB.NewDecoder(),
+ }, {
+ desc: "utf-32le dec: Interprets big endian U+FEFF as invalid",
+ src: "\x00\x00\xFE\xFF\x45\x23\x01\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00",
+ sizeDst: 100,
+ want: "\uFFFD\U00012345=Ra",
+ nSrc: 20,
+ t: utf32LEIB.NewDecoder(),
+ }, {
+ desc: "utf-32 enc: Writes big-endian BOM",
+ src: "\U00012345=Ra",
+ sizeDst: 100,
+ want: "\x00\x00\xFE\xFF\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61",
+ nSrc: 7,
+ t: utf32BEUB.NewEncoder(),
+ }, {
+ desc: "utf-32 enc: Writes little-endian BOM",
+ src: "\U00012345=Ra",
+ sizeDst: 100,
+ want: "\xFF\xFE\x00\x00\x45\x23\x01\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00",
+ nSrc: 7,
+ t: utf32LEUB.NewEncoder(),
+ }, {
+ desc: "utf-32 dec: Interprets text using big-endian default when BOM not present",
+ src: "\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61",
+ sizeDst: 100,
+ want: "\U00012345=Ra",
+ nSrc: 16,
+ t: utf32BEUB.NewDecoder(),
+ }, {
+ desc: "utf-32 dec: Interprets text using little-endian default when BOM not present",
+ src: "\x45\x23\x01\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00",
+ sizeDst: 100,
+ want: "\U00012345=Ra",
+ nSrc: 16,
+ t: utf32LEUB.NewDecoder(),
+ }, {
+ desc: "utf-32 dec: BOM determines encoding BE",
+ src: "\x00\x00\xFE\xFF\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61",
+ sizeDst: 100,
+ want: "\U00012345=Ra",
+ nSrc: 20,
+ t: utf32BEUB.NewDecoder(),
+ }, {
+ desc: "utf-32 dec: BOM determines encoding LE",
+ src: "\xFF\xFE\x00\x00\x45\x23\x01\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00",
+ sizeDst: 100,
+ want: "\U00012345=Ra",
+ nSrc: 20,
+ t: utf32LEUB.NewDecoder(),
+ }, {
+ desc: "utf-32 dec: BOM determines encoding LE, change default",
+ src: "\xFF\xFE\x00\x00\x45\x23\x01\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00",
+ sizeDst: 100,
+ want: "\U00012345=Ra",
+ nSrc: 20,
+ t: utf32BEUB.NewDecoder(),
+ }, {
+ desc: "utf-32 dec: BOM determines encoding BE, change default",
+ src: "\x00\x00\xFE\xFF\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61",
+ sizeDst: 100,
+ want: "\U00012345=Ra",
+ nSrc: 20,
+ t: utf32LEUB.NewDecoder(),
+ }, {
+ desc: "utf-32 dec: Don't change big-endian byte order mid-stream",
+ src: "\x00\x01\x23\x45\x00\x00\x00\x3D\xFF\xFE\x00\x00\x00\x00\xFE\xFF\x00\x00\x00\x52\x00\x00\x00\x61",
+ sizeDst: 100,
+ want: "\U00012345=\uFFFD\uFEFFRa",
+ nSrc: 24,
+ t: utf32BEUB.NewDecoder(),
+ }, {
+ desc: "utf-32 dec: Don't change little-endian byte order mid-stream",
+ src: "\x45\x23\x01\x00\x3D\x00\x00\x00\x00\x00\xFE\xFF\xFF\xFE\x00\x00\x52\x00\x00\x00\x61\x00\x00\x00",
+ sizeDst: 100,
+ want: "\U00012345=\uFFFD\uFEFFRa",
+ nSrc: 24,
+ t: utf32LEUB.NewDecoder(),
+ }, {
+ desc: "utf-32 dec: Fail on missing BOM when required",
+ src: "\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61",
+ sizeDst: 100,
+ want: "",
+ nSrc: 0,
+ err: ErrMissingBOM,
+ t: utf32BEEB.NewDecoder(),
+ }, {
+ desc: "utf-32 enc: Short dst",
+ src: "\U00012345=Ra",
+ sizeDst: 15,
+ want: "\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52",
+ nSrc: 6,
+ err: transform.ErrShortDst,
+ t: utf32BEIB.NewEncoder(),
+ }, {
+ desc: "utf-32 enc: Short src",
+ src: "\U00012345=Ra\xC2",
+ notEOF: true,
+ sizeDst: 100,
+ want: "\x00\x01\x23\x45\x00\x00\x00\x3D\x00\x00\x00\x52\x00\x00\x00\x61",
+ nSrc: 7,
+ err: transform.ErrShortSrc,
+ t: utf32BEIB.NewEncoder(),
+ }, {
+ desc: "utf-32 enc: Invalid input",
+ src: "\x80\xC1\xC2\x7F\xC2",
+ sizeDst: 100,
+ want: "\x00\x00\xFF\xFD\x00\x00\xFF\xFD\x00\x00\xFF\xFD\x00\x00\x00\x7F\x00\x00\xFF\xFD",
+ nSrc: 5,
+ t: utf32BEIB.NewEncoder(),
+ }, {
+ desc: "utf-32 dec: Short dst",
+ src: "\x00\x00\x00\x41",
+ sizeDst: 0,
+ want: "",
+ nSrc: 0,
+ err: transform.ErrShortDst,
+ t: utf32BEIB.NewDecoder(),
+ }, {
+ desc: "utf-32 dec: Short src",
+ src: "\x00\x00\x00",
+ notEOF: true,
+ sizeDst: 4,
+ want: "",
+ nSrc: 0,
+ err: transform.ErrShortSrc,
+ t: utf32BEIB.NewDecoder(),
+ }, {
+ desc: "utf-32 dec: Invalid input",
+ src: "\x00\x00\xD8\x00\x00\x00\xDF\xFF\x00\x11\x00\x00\x00\x00\x00",
+ sizeDst: 100,
+ want: "\uFFFD\uFFFD\uFFFD\uFFFD",
+ nSrc: 15,
+ t: utf32BEIB.NewDecoder(),
+ }}
+ for i, tc := range testCases {
+ b := make([]byte, tc.sizeDst)
+ nDst, nSrc, err := tc.t.Transform(b, []byte(tc.src), !tc.notEOF)
+ if err != tc.err {
+ t.Errorf("%d:%s: error was %v; want %v", i, tc.desc, err, tc.err)
+ }
+ if got := string(b[:nDst]); got != tc.want {
+ t.Errorf("%d:%s: result was %q: want %q", i, tc.desc, got, tc.want)
+ }
+ if nSrc != tc.nSrc {
+ t.Errorf("%d:%s: nSrc was %d; want %d", i, tc.desc, nSrc, tc.nSrc)
+ }
+ }
+}