New Upstream Release - golang-github-golang-snappy

Ready changes

Summary

Merged new upstream version: 0.0.4 (was: 0.0.2).

Resulting package

Built on 2023-01-11T11:15 (took 2m0s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-releases golang-github-golang-snappy-devapt install -t fresh-releases golang-snappy-go-dev

Lintian Result

Diff

diff --git a/AUTHORS b/AUTHORS
index 203e84e..52ccb5a 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -10,6 +10,7 @@
 
 Amazon.com, Inc
 Damian Gryski <dgryski@gmail.com>
+Eric Buth <eric@topos.com>
 Google Inc.
 Jan Mercl <0xjnml@gmail.com>
 Klaus Post <klauspost@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index d991473..ea6524d 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -26,7 +26,9 @@
 
 # Please keep the list sorted.
 
+Alex Legg <alexlegg@google.com>
 Damian Gryski <dgryski@gmail.com>
+Eric Buth <eric@topos.com>
 Jan Mercl <0xjnml@gmail.com>
 Jonathan Swinney <jswinney@amazon.com>
 Kai Backman <kaib@golang.org>
diff --git a/debian/changelog b/debian/changelog
index 92bbb04..1e80f7d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,11 @@
-golang-github-golang-snappy (0.0.2-4) UNRELEASED; urgency=medium
+golang-github-golang-snappy (0.0.4-1) UNRELEASED; urgency=medium
 
   * Set upstream metadata fields: Repository-Browse.
   * Update standards version to 4.6.2, no changes needed.
+  * New upstream release.
+  * Drop patch 0001-Backport-go1.16-fix-on-arm64.patch, present upstream.
 
- -- Debian Janitor <janitor@jelmer.uk>  Sun, 08 Jan 2023 23:17:12 -0000
+ -- Debian Janitor <janitor@jelmer.uk>  Wed, 11 Jan 2023 11:13:59 -0000
 
 golang-github-golang-snappy (0.0.2-3) unstable; urgency=medium
 
diff --git a/debian/patches/0001-Backport-go1.16-fix-on-arm64.patch b/debian/patches/0001-Backport-go1.16-fix-on-arm64.patch
deleted file mode 100644
index 94a7415..0000000
--- a/debian/patches/0001-Backport-go1.16-fix-on-arm64.patch
+++ /dev/null
@@ -1,267 +0,0 @@
-From: Shengjing Zhu <zhsj@debian.org>
-Date: Sun, 31 Jan 2021 22:33:53 +0800
-Subject: Backport go1.16 fix on arm64
-
-Origin: backport, https://github.com/golang/snappy/pull/56
----
- decode_arm64.s | 45 +++++++++++++-------------------
- encode_arm64.s | 81 +++++++++++++++++++++++++++-------------------------------
- 2 files changed, 55 insertions(+), 71 deletions(-)
-
-diff --git a/decode_arm64.s b/decode_arm64.s
-index bfafa0c..7a3ead1 100644
---- a/decode_arm64.s
-+++ b/decode_arm64.s
-@@ -70,7 +70,7 @@ loop:
- 	// x := uint32(src[s] >> 2)
- 	// switch
- 	MOVW $60, R1
--	ADD  R4>>2, ZR, R4
-+	LSRW $2, R4, R4
- 	CMPW R4, R1
- 	BLS  tagLit60Plus
- 
-@@ -111,13 +111,12 @@ doLit:
- 	// is contiguous in memory and so it needs to leave enough source bytes to
- 	// read the next tag without refilling buffers, but Go's Decode assumes
- 	// contiguousness (the src argument is a []byte).
--	MOVD $16, R1
--	CMP  R1, R4
--	BGT  callMemmove
--	CMP  R1, R2
--	BLT  callMemmove
--	CMP  R1, R3
--	BLT  callMemmove
-+	CMP $16, R4
-+	BGT callMemmove
-+	CMP $16, R2
-+	BLT callMemmove
-+	CMP $16, R3
-+	BLT callMemmove
- 
- 	// !!! Implement the copy from src to dst as a 16-byte load and store.
- 	// (Decode's documentation says that dst and src must not overlap.)
-@@ -130,9 +129,8 @@ doLit:
- 	// Note that on arm64, it is legal and cheap to issue unaligned 8-byte or
- 	// 16-byte loads and stores. This technique probably wouldn't be as
- 	// effective on architectures that are fussier about alignment.
--
--	VLD1 0(R6), [V0.B16]
--	VST1 [V0.B16], 0(R7)
-+	LDP 0(R6), (R14, R15)
-+	STP (R14, R15), 0(R7)
- 
- 	// d += length
- 	// s += length
-@@ -210,8 +208,7 @@ tagLit61:
- 	B     doLit
- 
- tagLit62Plus:
--	MOVW $62, R1
--	CMPW R1, R4
-+	CMPW $62, R4
- 	BHI  tagLit63
- 
- 	// case x == 62:
-@@ -273,10 +270,9 @@ tagCopy:
- 	// We have a copy tag. We assume that:
- 	//	- R3 == src[s] & 0x03
- 	//	- R4 == src[s]
--	MOVD $2, R1
--	CMP  R1, R3
--	BEQ  tagCopy2
--	BGT  tagCopy4
-+	CMP $2, R3
-+	BEQ tagCopy2
-+	BGT tagCopy4
- 
- 	// case tagCopy1:
- 	// s += 2
-@@ -346,13 +342,11 @@ doCopy:
- 	// }
- 	// copy 16 bytes
- 	// d += length
--	MOVD $16, R1
--	MOVD $8, R0
--	CMP  R1, R4
-+	CMP  $16, R4
- 	BGT  slowForwardCopy
--	CMP  R0, R5
-+	CMP  $8, R5
- 	BLT  slowForwardCopy
--	CMP  R1, R14
-+	CMP  $16, R14
- 	BLT  slowForwardCopy
- 	MOVD 0(R15), R2
- 	MOVD R2, 0(R7)
-@@ -426,8 +420,7 @@ makeOffsetAtLeast8:
- 	//   // The two previous lines together means that d-offset, and therefore
- 	//   // R15, is unchanged.
- 	// }
--	MOVD $8, R1
--	CMP  R1, R5
-+	CMP  $8, R5
- 	BGE  fixUpSlowForwardCopy
- 	MOVD (R15), R3
- 	MOVD R3, (R7)
-@@ -477,9 +470,7 @@ verySlowForwardCopy:
- 	ADD  $1, R15, R15
- 	ADD  $1, R7, R7
- 	SUB  $1, R4, R4
--	MOVD $0, R1
--	CMP  R1, R4
--	BNE  verySlowForwardCopy
-+	CBNZ R4, verySlowForwardCopy
- 	B    loop
- 
- 	// The code above handles copy tags.
-diff --git a/encode_arm64.s b/encode_arm64.s
-index 1f565ee..bf83667 100644
---- a/encode_arm64.s
-+++ b/encode_arm64.s
-@@ -35,11 +35,9 @@ TEXT ·emitLiteral(SB), NOSPLIT, $32-56
- 	MOVW R3, R4
- 	SUBW $1, R4, R4
- 
--	MOVW $60, R2
--	CMPW R2, R4
-+	CMPW $60, R4
- 	BLT  oneByte
--	MOVW $256, R2
--	CMPW R2, R4
-+	CMPW $256, R4
- 	BLT  twoBytes
- 
- threeBytes:
-@@ -98,8 +96,7 @@ TEXT ·emitCopy(SB), NOSPLIT, $0-48
- 
- loop0:
- 	// for length >= 68 { etc }
--	MOVW $68, R2
--	CMPW R2, R3
-+	CMPW $68, R3
- 	BLT  step1
- 
- 	// Emit a length 64 copy, encoded as 3 bytes.
-@@ -112,9 +109,8 @@ loop0:
- 
- step1:
- 	// if length > 64 { etc }
--	MOVD $64, R2
--	CMP  R2, R3
--	BLE  step2
-+	CMP $64, R3
-+	BLE step2
- 
- 	// Emit a length 60 copy, encoded as 3 bytes.
- 	MOVD $0xee, R2
-@@ -125,11 +121,9 @@ step1:
- 
- step2:
- 	// if length >= 12 || offset >= 2048 { goto step3 }
--	MOVD $12, R2
--	CMP  R2, R3
-+	CMP  $12, R3
- 	BGE  step3
--	MOVW $2048, R2
--	CMPW R2, R11
-+	CMPW $2048, R11
- 	BGE  step3
- 
- 	// Emit the remaining copy, encoded as 2 bytes.
-@@ -295,27 +289,24 @@ varTable:
- 	// var table [maxTableSize]uint16
- 	//
- 	// In the asm code, unlike the Go code, we can zero-initialize only the
--	// first tableSize elements. Each uint16 element is 2 bytes and each VST1
--	// writes 64 bytes, so we can do only tableSize/32 writes instead of the
--	// 2048 writes that would zero-initialize all of table's 32768 bytes.
--	// This clear could overrun the first tableSize elements, but it won't
--	// overrun the allocated stack size.
-+	// first tableSize elements. Each uint16 element is 2 bytes and each
-+	// iterations writes 64 bytes, so we can do only tableSize/32 writes
-+	// instead of the 2048 writes that would zero-initialize all of table's
-+	// 32768 bytes. This clear could overrun the first tableSize elements, but
-+	// it won't overrun the allocated stack size.
- 	ADD  $128, RSP, R17
- 	MOVD R17, R4
- 
- 	// !!! R6 = &src[tableSize]
- 	ADD R6<<1, R17, R6
- 
--	// zero the SIMD registers
--	VEOR V0.B16, V0.B16, V0.B16
--	VEOR V1.B16, V1.B16, V1.B16
--	VEOR V2.B16, V2.B16, V2.B16
--	VEOR V3.B16, V3.B16, V3.B16
--
- memclr:
--	VST1.P [V0.B16, V1.B16, V2.B16, V3.B16], 64(R4)
--	CMP    R4, R6
--	BHI    memclr
-+	STP.P (ZR, ZR), 64(R4)
-+	STP   (ZR, ZR), -48(R4)
-+	STP   (ZR, ZR), -32(R4)
-+	STP   (ZR, ZR), -16(R4)
-+	CMP   R4, R6
-+	BHI   memclr
- 
- 	// !!! R6 = &src[0]
- 	MOVD R7, R6
-@@ -404,8 +395,7 @@ fourByteMatch:
- 	// on inputMargin in encode.go.
- 	MOVD R7, R3
- 	SUB  R10, R3, R3
--	MOVD $16, R2
--	CMP  R2, R3
-+	CMP  $16, R3
- 	BLE  emitLiteralFastPath
- 
- 	// ----------------------------------------
-@@ -454,18 +444,21 @@ inlineEmitLiteralMemmove:
- 	MOVD R3, 24(RSP)
- 
- 	// Finish the "d +=" part of "d += emitLiteral(etc)".
--	ADD  R3, R8, R8
--	MOVD R7, 80(RSP)
--	MOVD R8, 88(RSP)
--	MOVD R15, 120(RSP)
--	CALL runtime·memmove(SB)
--	MOVD 64(RSP), R5
--	MOVD 72(RSP), R6
--	MOVD 80(RSP), R7
--	MOVD 88(RSP), R8
--	MOVD 96(RSP), R9
--	MOVD 120(RSP), R15
--	B    inner1
-+	ADD   R3, R8, R8
-+	MOVD  R7, 80(RSP)
-+	MOVD  R8, 88(RSP)
-+	MOVD  R15, 120(RSP)
-+	CALL  runtime·memmove(SB)
-+	MOVD  64(RSP), R5
-+	MOVD  72(RSP), R6
-+	MOVD  80(RSP), R7
-+	MOVD  88(RSP), R8
-+	MOVD  96(RSP), R9
-+	MOVD  120(RSP), R15
-+	ADD   $128, RSP, R17
-+	MOVW  $0xa7bd, R16
-+	MOVKW $(0x1e35<<16), R16
-+	B     inner1
- 
- inlineEmitLiteralEnd:
- 	// End inline of the emitLiteral call.
-@@ -489,9 +482,9 @@ emitLiteralFastPath:
- 	// Note that on arm64, it is legal and cheap to issue unaligned 8-byte or
- 	// 16-byte loads and stores. This technique probably wouldn't be as
- 	// effective on architectures that are fussier about alignment.
--	VLD1 0(R10), [V0.B16]
--	VST1 [V0.B16], 0(R8)
--	ADD  R3, R8, R8
-+	LDP 0(R10), (R0, R1)
-+	STP (R0, R1), 0(R8)
-+	ADD R3, R8, R8
- 
- inner1:
- 	// for { etc }
diff --git a/debian/patches/0002-Skip-failed-test-on-32bit-system.patch b/debian/patches/0002-Skip-failed-test-on-32bit-system.patch
index 665a897..2eeaf40 100644
--- a/debian/patches/0002-Skip-failed-test-on-32bit-system.patch
+++ b/debian/patches/0002-Skip-failed-test-on-32bit-system.patch
@@ -9,10 +9,10 @@ Bug: https://github.com/golang/snappy/issues/58
  snappy_test.go | 20 +++++++++++++++-----
  1 file changed, 15 insertions(+), 5 deletions(-)
 
-diff --git a/snappy_test.go b/snappy_test.go
-index d7c3ea6..c310ba1 100644
---- a/snappy_test.go
-+++ b/snappy_test.go
+Index: golang-github-golang-snappy.git/snappy_test.go
+===================================================================
+--- golang-github-golang-snappy.git.orig/snappy_test.go
++++ golang-github-golang-snappy.git/snappy_test.go
 @@ -19,6 +19,7 @@ import (
  	"runtime"
  	"strings"
diff --git a/debian/patches/series b/debian/patches/series
index 9fdc9f4..c137f53 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1 @@
-0001-Backport-go1.16-fix-on-arm64.patch
 0002-Skip-failed-test-on-32bit-system.patch
diff --git a/decode.go b/decode.go
index f1e04b1..23c6e26 100644
--- a/decode.go
+++ b/decode.go
@@ -118,32 +118,23 @@ func (r *Reader) readFull(p []byte, allowEOF bool) (ok bool) {
 	return true
 }
 
-// Read satisfies the io.Reader interface.
-func (r *Reader) Read(p []byte) (int, error) {
-	if r.err != nil {
-		return 0, r.err
-	}
-	for {
-		if r.i < r.j {
-			n := copy(p, r.decoded[r.i:r.j])
-			r.i += n
-			return n, nil
-		}
+func (r *Reader) fill() error {
+	for r.i >= r.j {
 		if !r.readFull(r.buf[:4], true) {
-			return 0, r.err
+			return r.err
 		}
 		chunkType := r.buf[0]
 		if !r.readHeader {
 			if chunkType != chunkTypeStreamIdentifier {
 				r.err = ErrCorrupt
-				return 0, r.err
+				return r.err
 			}
 			r.readHeader = true
 		}
 		chunkLen := int(r.buf[1]) | int(r.buf[2])<<8 | int(r.buf[3])<<16
 		if chunkLen > len(r.buf) {
 			r.err = ErrUnsupported
-			return 0, r.err
+			return r.err
 		}
 
 		// The chunk types are specified at
@@ -153,11 +144,11 @@ func (r *Reader) Read(p []byte) (int, error) {
 			// Section 4.2. Compressed data (chunk type 0x00).
 			if chunkLen < checksumSize {
 				r.err = ErrCorrupt
-				return 0, r.err
+				return r.err
 			}
 			buf := r.buf[:chunkLen]
 			if !r.readFull(buf, false) {
-				return 0, r.err
+				return r.err
 			}
 			checksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24
 			buf = buf[checksumSize:]
@@ -165,19 +156,19 @@ func (r *Reader) Read(p []byte) (int, error) {
 			n, err := DecodedLen(buf)
 			if err != nil {
 				r.err = err
-				return 0, r.err
+				return r.err
 			}
 			if n > len(r.decoded) {
 				r.err = ErrCorrupt
-				return 0, r.err
+				return r.err
 			}
 			if _, err := Decode(r.decoded, buf); err != nil {
 				r.err = err
-				return 0, r.err
+				return r.err
 			}
 			if crc(r.decoded[:n]) != checksum {
 				r.err = ErrCorrupt
-				return 0, r.err
+				return r.err
 			}
 			r.i, r.j = 0, n
 			continue
@@ -186,25 +177,25 @@ func (r *Reader) Read(p []byte) (int, error) {
 			// Section 4.3. Uncompressed data (chunk type 0x01).
 			if chunkLen < checksumSize {
 				r.err = ErrCorrupt
-				return 0, r.err
+				return r.err
 			}
 			buf := r.buf[:checksumSize]
 			if !r.readFull(buf, false) {
-				return 0, r.err
+				return r.err
 			}
 			checksum := uint32(buf[0]) | uint32(buf[1])<<8 | uint32(buf[2])<<16 | uint32(buf[3])<<24
 			// Read directly into r.decoded instead of via r.buf.
 			n := chunkLen - checksumSize
 			if n > len(r.decoded) {
 				r.err = ErrCorrupt
-				return 0, r.err
+				return r.err
 			}
 			if !r.readFull(r.decoded[:n], false) {
-				return 0, r.err
+				return r.err
 			}
 			if crc(r.decoded[:n]) != checksum {
 				r.err = ErrCorrupt
-				return 0, r.err
+				return r.err
 			}
 			r.i, r.j = 0, n
 			continue
@@ -213,15 +204,15 @@ func (r *Reader) Read(p []byte) (int, error) {
 			// Section 4.1. Stream identifier (chunk type 0xff).
 			if chunkLen != len(magicBody) {
 				r.err = ErrCorrupt
-				return 0, r.err
+				return r.err
 			}
 			if !r.readFull(r.buf[:len(magicBody)], false) {
-				return 0, r.err
+				return r.err
 			}
 			for i := 0; i < len(magicBody); i++ {
 				if r.buf[i] != magicBody[i] {
 					r.err = ErrCorrupt
-					return 0, r.err
+					return r.err
 				}
 			}
 			continue
@@ -230,12 +221,44 @@ func (r *Reader) Read(p []byte) (int, error) {
 		if chunkType <= 0x7f {
 			// Section 4.5. Reserved unskippable chunks (chunk types 0x02-0x7f).
 			r.err = ErrUnsupported
-			return 0, r.err
+			return r.err
 		}
 		// Section 4.4 Padding (chunk type 0xfe).
 		// Section 4.6. Reserved skippable chunks (chunk types 0x80-0xfd).
 		if !r.readFull(r.buf[:chunkLen], false) {
-			return 0, r.err
+			return r.err
 		}
 	}
+
+	return nil
+}
+
+// Read satisfies the io.Reader interface.
+func (r *Reader) Read(p []byte) (int, error) {
+	if r.err != nil {
+		return 0, r.err
+	}
+
+	if err := r.fill(); err != nil {
+		return 0, err
+	}
+
+	n := copy(p, r.decoded[r.i:r.j])
+	r.i += n
+	return n, nil
+}
+
+// ReadByte satisfies the io.ByteReader interface.
+func (r *Reader) ReadByte() (byte, error) {
+	if r.err != nil {
+		return 0, r.err
+	}
+
+	if err := r.fill(); err != nil {
+		return 0, err
+	}
+
+	c := r.decoded[r.i]
+	r.i++
+	return c, nil
 }
diff --git a/decode_arm64.s b/decode_arm64.s
index bfafa0c..7a3ead1 100644
--- a/decode_arm64.s
+++ b/decode_arm64.s
@@ -70,7 +70,7 @@ loop:
 	// x := uint32(src[s] >> 2)
 	// switch
 	MOVW $60, R1
-	ADD  R4>>2, ZR, R4
+	LSRW $2, R4, R4
 	CMPW R4, R1
 	BLS  tagLit60Plus
 
@@ -111,13 +111,12 @@ doLit:
 	// is contiguous in memory and so it needs to leave enough source bytes to
 	// read the next tag without refilling buffers, but Go's Decode assumes
 	// contiguousness (the src argument is a []byte).
-	MOVD $16, R1
-	CMP  R1, R4
-	BGT  callMemmove
-	CMP  R1, R2
-	BLT  callMemmove
-	CMP  R1, R3
-	BLT  callMemmove
+	CMP $16, R4
+	BGT callMemmove
+	CMP $16, R2
+	BLT callMemmove
+	CMP $16, R3
+	BLT callMemmove
 
 	// !!! Implement the copy from src to dst as a 16-byte load and store.
 	// (Decode's documentation says that dst and src must not overlap.)
@@ -130,9 +129,8 @@ doLit:
 	// Note that on arm64, it is legal and cheap to issue unaligned 8-byte or
 	// 16-byte loads and stores. This technique probably wouldn't be as
 	// effective on architectures that are fussier about alignment.
-
-	VLD1 0(R6), [V0.B16]
-	VST1 [V0.B16], 0(R7)
+	LDP 0(R6), (R14, R15)
+	STP (R14, R15), 0(R7)
 
 	// d += length
 	// s += length
@@ -210,8 +208,7 @@ tagLit61:
 	B     doLit
 
 tagLit62Plus:
-	MOVW $62, R1
-	CMPW R1, R4
+	CMPW $62, R4
 	BHI  tagLit63
 
 	// case x == 62:
@@ -273,10 +270,9 @@ tagCopy:
 	// We have a copy tag. We assume that:
 	//	- R3 == src[s] & 0x03
 	//	- R4 == src[s]
-	MOVD $2, R1
-	CMP  R1, R3
-	BEQ  tagCopy2
-	BGT  tagCopy4
+	CMP $2, R3
+	BEQ tagCopy2
+	BGT tagCopy4
 
 	// case tagCopy1:
 	// s += 2
@@ -346,13 +342,11 @@ doCopy:
 	// }
 	// copy 16 bytes
 	// d += length
-	MOVD $16, R1
-	MOVD $8, R0
-	CMP  R1, R4
+	CMP  $16, R4
 	BGT  slowForwardCopy
-	CMP  R0, R5
+	CMP  $8, R5
 	BLT  slowForwardCopy
-	CMP  R1, R14
+	CMP  $16, R14
 	BLT  slowForwardCopy
 	MOVD 0(R15), R2
 	MOVD R2, 0(R7)
@@ -426,8 +420,7 @@ makeOffsetAtLeast8:
 	//   // The two previous lines together means that d-offset, and therefore
 	//   // R15, is unchanged.
 	// }
-	MOVD $8, R1
-	CMP  R1, R5
+	CMP  $8, R5
 	BGE  fixUpSlowForwardCopy
 	MOVD (R15), R3
 	MOVD R3, (R7)
@@ -477,9 +470,7 @@ verySlowForwardCopy:
 	ADD  $1, R15, R15
 	ADD  $1, R7, R7
 	SUB  $1, R4, R4
-	MOVD $0, R1
-	CMP  R1, R4
-	BNE  verySlowForwardCopy
+	CBNZ R4, verySlowForwardCopy
 	B    loop
 
 	// The code above handles copy tags.
diff --git a/encode_arm64.s b/encode_arm64.s
index 1f565ee..f8d54ad 100644
--- a/encode_arm64.s
+++ b/encode_arm64.s
@@ -35,11 +35,9 @@ TEXT ·emitLiteral(SB), NOSPLIT, $32-56
 	MOVW R3, R4
 	SUBW $1, R4, R4
 
-	MOVW $60, R2
-	CMPW R2, R4
+	CMPW $60, R4
 	BLT  oneByte
-	MOVW $256, R2
-	CMPW R2, R4
+	CMPW $256, R4
 	BLT  twoBytes
 
 threeBytes:
@@ -98,8 +96,7 @@ TEXT ·emitCopy(SB), NOSPLIT, $0-48
 
 loop0:
 	// for length >= 68 { etc }
-	MOVW $68, R2
-	CMPW R2, R3
+	CMPW $68, R3
 	BLT  step1
 
 	// Emit a length 64 copy, encoded as 3 bytes.
@@ -112,9 +109,8 @@ loop0:
 
 step1:
 	// if length > 64 { etc }
-	MOVD $64, R2
-	CMP  R2, R3
-	BLE  step2
+	CMP $64, R3
+	BLE step2
 
 	// Emit a length 60 copy, encoded as 3 bytes.
 	MOVD $0xee, R2
@@ -125,11 +121,9 @@ step1:
 
 step2:
 	// if length >= 12 || offset >= 2048 { goto step3 }
-	MOVD $12, R2
-	CMP  R2, R3
+	CMP  $12, R3
 	BGE  step3
-	MOVW $2048, R2
-	CMPW R2, R11
+	CMPW $2048, R11
 	BGE  step3
 
 	// Emit the remaining copy, encoded as 2 bytes.
@@ -295,27 +289,24 @@ varTable:
 	// var table [maxTableSize]uint16
 	//
 	// In the asm code, unlike the Go code, we can zero-initialize only the
-	// first tableSize elements. Each uint16 element is 2 bytes and each VST1
-	// writes 64 bytes, so we can do only tableSize/32 writes instead of the
-	// 2048 writes that would zero-initialize all of table's 32768 bytes.
-	// This clear could overrun the first tableSize elements, but it won't
-	// overrun the allocated stack size.
+	// first tableSize elements. Each uint16 element is 2 bytes and each
+	// iterations writes 64 bytes, so we can do only tableSize/32 writes
+	// instead of the 2048 writes that would zero-initialize all of table's
+	// 32768 bytes. This clear could overrun the first tableSize elements, but
+	// it won't overrun the allocated stack size.
 	ADD  $128, RSP, R17
 	MOVD R17, R4
 
 	// !!! R6 = &src[tableSize]
 	ADD R6<<1, R17, R6
 
-	// zero the SIMD registers
-	VEOR V0.B16, V0.B16, V0.B16
-	VEOR V1.B16, V1.B16, V1.B16
-	VEOR V2.B16, V2.B16, V2.B16
-	VEOR V3.B16, V3.B16, V3.B16
-
 memclr:
-	VST1.P [V0.B16, V1.B16, V2.B16, V3.B16], 64(R4)
-	CMP    R4, R6
-	BHI    memclr
+	STP.P (ZR, ZR), 64(R4)
+	STP   (ZR, ZR), -48(R4)
+	STP   (ZR, ZR), -32(R4)
+	STP   (ZR, ZR), -16(R4)
+	CMP   R4, R6
+	BHI   memclr
 
 	// !!! R6 = &src[0]
 	MOVD R7, R6
@@ -391,7 +382,7 @@ inner0:
 
 	// if load32(src, s) != load32(src, candidate) { continue } break
 	MOVW 0(R7), R3
-	MOVW (R6)(R15*1), R4
+	MOVW (R6)(R15), R4
 	CMPW R4, R3
 	BNE  inner0
 
@@ -404,8 +395,7 @@ fourByteMatch:
 	// on inputMargin in encode.go.
 	MOVD R7, R3
 	SUB  R10, R3, R3
-	MOVD $16, R2
-	CMP  R2, R3
+	CMP  $16, R3
 	BLE  emitLiteralFastPath
 
 	// ----------------------------------------
@@ -454,18 +444,21 @@ inlineEmitLiteralMemmove:
 	MOVD R3, 24(RSP)
 
 	// Finish the "d +=" part of "d += emitLiteral(etc)".
-	ADD  R3, R8, R8
-	MOVD R7, 80(RSP)
-	MOVD R8, 88(RSP)
-	MOVD R15, 120(RSP)
-	CALL runtime·memmove(SB)
-	MOVD 64(RSP), R5
-	MOVD 72(RSP), R6
-	MOVD 80(RSP), R7
-	MOVD 88(RSP), R8
-	MOVD 96(RSP), R9
-	MOVD 120(RSP), R15
-	B    inner1
+	ADD   R3, R8, R8
+	MOVD  R7, 80(RSP)
+	MOVD  R8, 88(RSP)
+	MOVD  R15, 120(RSP)
+	CALL  runtime·memmove(SB)
+	MOVD  64(RSP), R5
+	MOVD  72(RSP), R6
+	MOVD  80(RSP), R7
+	MOVD  88(RSP), R8
+	MOVD  96(RSP), R9
+	MOVD  120(RSP), R15
+	ADD   $128, RSP, R17
+	MOVW  $0xa7bd, R16
+	MOVKW $(0x1e35<<16), R16
+	B     inner1
 
 inlineEmitLiteralEnd:
 	// End inline of the emitLiteral call.
@@ -489,9 +482,9 @@ emitLiteralFastPath:
 	// Note that on arm64, it is legal and cheap to issue unaligned 8-byte or
 	// 16-byte loads and stores. This technique probably wouldn't be as
 	// effective on architectures that are fussier about alignment.
-	VLD1 0(R10), [V0.B16]
-	VST1 [V0.B16], 0(R8)
-	ADD  R3, R8, R8
+	LDP 0(R10), (R0, R1)
+	STP (R0, R1), 0(R8)
+	ADD R3, R8, R8
 
 inner1:
 	// for { etc }
@@ -679,7 +672,7 @@ inlineEmitCopyEnd:
 	MOVHU R3, 0(R17)(R11<<1)
 
 	// if uint32(x>>8) == load32(src, candidate) { continue }
-	MOVW (R6)(R15*1), R4
+	MOVW (R6)(R15), R4
 	CMPW R4, R14
 	BEQ  inner1
 
diff --git a/golden_test.go b/golden_test.go
index e4496f9..08d0dcd 100644
--- a/golden_test.go
+++ b/golden_test.go
@@ -6,1960 +6,2023 @@ package snappy
 
 // extendMatchGoldenTestCases is the i and j arguments, and the returned value,
 // for every extendMatch call issued when encoding the
-// testdata/Mark.Twain-Tom.Sawyer.txt file. It is used to benchmark the
+// testdata/Isaac.Newton-Opticks.txt file. It is used to benchmark the
 // extendMatch implementation.
 //
 // It was generated manually by adding some print statements to the (pure Go)
-// extendMatch implementation:
+// encodeBlock implementation (in encode_other.go) to replace the inlined
+// version of extendMatch.
 //
-//	func extendMatch(src []byte, i, j int) int {
-//		i0, j0 := i, j
-//		for ; j < len(src) && src[i] == src[j]; i, j = i+1, j+1 {
-//		}
-//		println("{", i0, ",", j0, ",", j, "},")
-//		return j
-//	}
+//      s += 4
+//      s0 := s
+//      for i := candidate + 4; s < len(src) && src[i] == src[s]; i, s = i+1, s+1 {
+//      }
+//      println("{", candidate + 4, ",", s0, ",", s, "},")
 //
 // and running "go test -test.run=EncodeGoldenInput -tags=noasm".
 var extendMatchGoldenTestCases = []struct {
 	i, j, want int
 }{
-	{11, 61, 62},
-	{80, 81, 82},
-	{86, 87, 101},
-	{85, 133, 149},
-	{152, 153, 162},
-	{133, 168, 193},
-	{168, 207, 225},
-	{81, 255, 275},
-	{278, 279, 283},
-	{306, 417, 417},
-	{373, 428, 430},
-	{389, 444, 447},
-	{474, 510, 512},
-	{465, 533, 533},
-	{47, 547, 547},
-	{307, 551, 554},
-	{420, 582, 587},
-	{309, 604, 604},
-	{604, 625, 625},
-	{538, 629, 629},
-	{328, 640, 640},
-	{573, 645, 645},
-	{319, 657, 657},
-	{30, 664, 664},
-	{45, 679, 680},
-	{621, 684, 684},
-	{376, 700, 700},
-	{33, 707, 708},
-	{601, 733, 733},
-	{334, 744, 745},
-	{625, 758, 759},
-	{382, 763, 763},
-	{550, 769, 771},
-	{533, 789, 789},
-	{804, 813, 813},
-	{342, 841, 842},
-	{742, 847, 847},
-	{74, 852, 852},
-	{810, 864, 864},
-	{758, 868, 869},
-	{714, 883, 883},
-	{582, 889, 891},
-	{61, 934, 935},
-	{894, 942, 942},
-	{939, 949, 949},
-	{785, 956, 957},
-	{886, 978, 978},
-	{792, 998, 998},
-	{998, 1005, 1005},
-	{572, 1032, 1032},
-	{698, 1051, 1053},
-	{599, 1067, 1069},
-	{1056, 1079, 1079},
-	{942, 1089, 1090},
-	{831, 1094, 1096},
-	{1088, 1100, 1103},
-	{732, 1113, 1114},
-	{1037, 1118, 1118},
-	{872, 1128, 1130},
-	{1079, 1140, 1142},
-	{332, 1162, 1162},
-	{207, 1168, 1186},
-	{1189, 1190, 1225},
-	{105, 1229, 1230},
-	{79, 1256, 1257},
-	{1190, 1261, 1283},
-	{255, 1306, 1306},
-	{1319, 1339, 1358},
-	{364, 1370, 1370},
-	{955, 1378, 1380},
-	{122, 1403, 1403},
-	{1325, 1407, 1419},
-	{664, 1423, 1424},
-	{941, 1461, 1463},
-	{867, 1477, 1478},
-	{757, 1488, 1489},
-	{1140, 1499, 1499},
-	{31, 1506, 1506},
-	{1487, 1510, 1512},
-	{1089, 1520, 1521},
-	{1467, 1525, 1529},
-	{1394, 1537, 1537},
-	{1499, 1541, 1541},
-	{367, 1558, 1558},
-	{1475, 1564, 1564},
-	{1525, 1568, 1571},
-	{1541, 1582, 1583},
-	{864, 1587, 1588},
-	{704, 1597, 1597},
-	{336, 1602, 1602},
-	{1383, 1613, 1613},
-	{1498, 1617, 1618},
-	{1051, 1623, 1625},
-	{401, 1643, 1645},
-	{1072, 1654, 1655},
-	{1067, 1667, 1669},
-	{699, 1673, 1674},
-	{1587, 1683, 1684},
-	{920, 1696, 1696},
-	{1505, 1710, 1710},
-	{1550, 1723, 1723},
-	{996, 1727, 1727},
-	{833, 1733, 1734},
-	{1638, 1739, 1740},
-	{1654, 1744, 1744},
-	{753, 1761, 1761},
-	{1548, 1773, 1773},
-	{1568, 1777, 1780},
-	{1683, 1793, 1794},
-	{948, 1801, 1801},
-	{1666, 1805, 1808},
-	{1502, 1814, 1814},
-	{1696, 1822, 1822},
-	{502, 1836, 1837},
-	{917, 1843, 1843},
-	{1733, 1854, 1855},
-	{970, 1859, 1859},
-	{310, 1863, 1863},
-	{657, 1872, 1872},
-	{1005, 1876, 1876},
-	{1662, 1880, 1880},
-	{904, 1892, 1892},
-	{1427, 1910, 1910},
-	{1772, 1929, 1930},
-	{1822, 1937, 1940},
-	{1858, 1949, 1950},
-	{1602, 1956, 1956},
-	{1150, 1962, 1962},
-	{1504, 1966, 1967},
-	{51, 1971, 1971},
-	{1605, 1979, 1979},
-	{1458, 1983, 1988},
-	{1536, 2001, 2006},
-	{1373, 2014, 2018},
-	{1494, 2025, 2025},
-	{1667, 2029, 2031},
-	{1592, 2035, 2035},
-	{330, 2045, 2045},
-	{1376, 2053, 2053},
-	{1991, 2058, 2059},
-	{1635, 2065, 2065},
-	{1992, 2073, 2074},
-	{2014, 2080, 2081},
-	{1546, 2085, 2087},
-	{59, 2099, 2099},
-	{1996, 2106, 2106},
-	{1836, 2110, 2110},
-	{2068, 2114, 2114},
-	{1338, 2122, 2122},
-	{1562, 2128, 2130},
-	{1934, 2134, 2134},
-	{2114, 2141, 2142},
-	{977, 2149, 2150},
-	{956, 2154, 2155},
-	{1407, 2162, 2162},
-	{1773, 2166, 2166},
-	{883, 2171, 2171},
-	{623, 2175, 2178},
-	{1520, 2191, 2192},
-	{1162, 2200, 2200},
-	{912, 2204, 2204},
-	{733, 2208, 2208},
-	{1777, 2212, 2215},
-	{1532, 2219, 2219},
-	{718, 2223, 2225},
-	{2069, 2229, 2229},
-	{2207, 2245, 2246},
-	{1139, 2264, 2264},
-	{677, 2274, 2274},
-	{2099, 2279, 2279},
-	{1863, 2283, 2283},
-	{1966, 2305, 2306},
-	{2279, 2313, 2313},
-	{1628, 2319, 2319},
-	{755, 2329, 2329},
-	{1461, 2334, 2334},
-	{2117, 2340, 2340},
-	{2313, 2349, 2349},
-	{1859, 2353, 2353},
-	{1048, 2362, 2362},
-	{895, 2366, 2366},
-	{2278, 2373, 2373},
-	{1884, 2377, 2377},
-	{1402, 2387, 2392},
-	{700, 2398, 2398},
-	{1971, 2402, 2402},
-	{2009, 2419, 2419},
-	{1441, 2426, 2428},
-	{2208, 2432, 2432},
-	{2038, 2436, 2436},
-	{932, 2443, 2443},
-	{1759, 2447, 2448},
-	{744, 2452, 2452},
-	{1875, 2458, 2458},
-	{2405, 2468, 2468},
-	{1596, 2472, 2473},
-	{1953, 2480, 2482},
-	{736, 2487, 2487},
-	{1913, 2493, 2493},
-	{774, 2497, 2497},
-	{1484, 2506, 2508},
-	{2432, 2512, 2512},
-	{752, 2519, 2519},
-	{2497, 2523, 2523},
-	{2409, 2528, 2529},
-	{2122, 2533, 2533},
-	{2396, 2537, 2538},
-	{2410, 2547, 2548},
-	{1093, 2555, 2560},
-	{551, 2564, 2565},
-	{2268, 2569, 2569},
-	{1362, 2580, 2580},
-	{1916, 2584, 2585},
-	{994, 2589, 2590},
-	{1979, 2596, 2596},
-	{1041, 2602, 2602},
-	{2104, 2614, 2616},
-	{2609, 2621, 2628},
-	{2329, 2638, 2638},
-	{2211, 2657, 2658},
-	{2638, 2662, 2667},
-	{2578, 2676, 2679},
-	{2153, 2685, 2686},
-	{2608, 2696, 2697},
-	{598, 2712, 2712},
-	{2620, 2719, 2720},
-	{1888, 2724, 2728},
-	{2709, 2732, 2732},
-	{1365, 2739, 2739},
-	{784, 2747, 2748},
-	{424, 2753, 2753},
-	{2204, 2759, 2759},
-	{812, 2768, 2769},
-	{2455, 2773, 2773},
-	{1722, 2781, 2781},
-	{1917, 2792, 2792},
-	{2705, 2799, 2799},
-	{2685, 2806, 2807},
-	{2742, 2811, 2811},
-	{1370, 2818, 2818},
-	{2641, 2830, 2830},
-	{2512, 2837, 2837},
-	{2457, 2841, 2841},
-	{2756, 2845, 2845},
-	{2719, 2855, 2855},
-	{1423, 2859, 2859},
-	{2849, 2863, 2865},
-	{1474, 2871, 2871},
-	{1161, 2875, 2876},
-	{2282, 2880, 2881},
-	{2746, 2888, 2888},
-	{1783, 2893, 2893},
-	{2401, 2899, 2900},
-	{2632, 2920, 2923},
-	{2422, 2928, 2930},
-	{2715, 2939, 2939},
-	{2162, 2943, 2943},
-	{2859, 2947, 2947},
-	{1910, 2951, 2951},
-	{1431, 2955, 2956},
-	{1439, 2964, 2964},
-	{2501, 2968, 2969},
-	{2029, 2973, 2976},
-	{689, 2983, 2984},
-	{1658, 2988, 2988},
-	{1031, 2996, 2996},
-	{2149, 3001, 3002},
-	{25, 3009, 3013},
-	{2964, 3023, 3023},
-	{953, 3027, 3028},
-	{2359, 3036, 3036},
-	{3023, 3049, 3049},
-	{2880, 3055, 3056},
-	{2973, 3076, 3077},
-	{2874, 3090, 3090},
-	{2871, 3094, 3094},
-	{2532, 3100, 3100},
-	{2938, 3107, 3108},
-	{350, 3115, 3115},
-	{2196, 3119, 3121},
-	{1133, 3127, 3129},
-	{1797, 3134, 3150},
-	{3032, 3158, 3158},
-	{3016, 3172, 3172},
-	{2533, 3179, 3179},
-	{3055, 3187, 3188},
-	{1384, 3192, 3193},
-	{2799, 3199, 3199},
-	{2126, 3203, 3207},
-	{2334, 3215, 3215},
-	{2105, 3220, 3221},
-	{3199, 3229, 3229},
-	{2891, 3233, 3233},
-	{855, 3240, 3240},
-	{1852, 3253, 3256},
-	{2140, 3263, 3263},
-	{1682, 3268, 3270},
-	{3243, 3274, 3274},
-	{924, 3279, 3279},
-	{2212, 3283, 3283},
-	{2596, 3287, 3287},
-	{2999, 3291, 3291},
-	{2353, 3295, 3295},
-	{2480, 3302, 3304},
-	{1959, 3308, 3311},
-	{3000, 3318, 3318},
-	{845, 3330, 3330},
-	{2283, 3334, 3334},
-	{2519, 3342, 3342},
-	{3325, 3346, 3348},
-	{2397, 3353, 3354},
-	{2763, 3358, 3358},
-	{3198, 3363, 3364},
-	{3211, 3368, 3372},
-	{2950, 3376, 3377},
-	{3245, 3388, 3391},
-	{2264, 3398, 3398},
-	{795, 3403, 3403},
-	{3287, 3407, 3407},
-	{3358, 3411, 3411},
-	{3317, 3415, 3415},
-	{3232, 3431, 3431},
-	{2128, 3435, 3437},
-	{3236, 3441, 3441},
-	{3398, 3445, 3446},
-	{2814, 3450, 3450},
-	{3394, 3466, 3466},
-	{2425, 3470, 3470},
-	{3330, 3476, 3476},
-	{1612, 3480, 3480},
-	{1004, 3485, 3486},
-	{2732, 3490, 3490},
-	{1117, 3494, 3495},
-	{629, 3501, 3501},
-	{3087, 3514, 3514},
-	{684, 3518, 3518},
-	{3489, 3522, 3524},
-	{1760, 3529, 3529},
-	{617, 3537, 3537},
-	{3431, 3541, 3541},
-	{997, 3547, 3547},
-	{882, 3552, 3553},
-	{2419, 3558, 3558},
-	{610, 3562, 3563},
-	{1903, 3567, 3569},
-	{3005, 3575, 3575},
-	{3076, 3585, 3586},
-	{3541, 3590, 3590},
-	{3490, 3594, 3594},
-	{1899, 3599, 3599},
-	{3545, 3606, 3606},
-	{3290, 3614, 3615},
-	{2056, 3619, 3620},
-	{3556, 3625, 3625},
-	{3294, 3632, 3633},
-	{637, 3643, 3644},
-	{3609, 3648, 3650},
-	{3175, 3658, 3658},
-	{3498, 3665, 3665},
-	{1597, 3669, 3669},
-	{1983, 3673, 3673},
-	{3215, 3682, 3682},
-	{3544, 3689, 3689},
-	{3694, 3698, 3698},
-	{3228, 3715, 3716},
-	{2594, 3720, 3722},
-	{3573, 3726, 3726},
-	{2479, 3732, 3735},
-	{3191, 3741, 3742},
-	{1113, 3746, 3747},
-	{2844, 3751, 3751},
-	{3445, 3756, 3757},
-	{3755, 3766, 3766},
-	{3421, 3775, 3780},
-	{3593, 3784, 3786},
-	{3263, 3796, 3796},
-	{3469, 3806, 3806},
-	{2602, 3815, 3815},
-	{723, 3819, 3821},
-	{1608, 3826, 3826},
-	{3334, 3830, 3830},
-	{2198, 3835, 3835},
-	{2635, 3840, 3840},
-	{3702, 3852, 3853},
-	{3406, 3858, 3859},
-	{3681, 3867, 3870},
-	{3407, 3880, 3880},
-	{340, 3889, 3889},
-	{3772, 3893, 3893},
-	{593, 3897, 3897},
-	{2563, 3914, 3916},
-	{2981, 3929, 3929},
-	{1835, 3933, 3934},
-	{3906, 3951, 3951},
-	{1459, 3958, 3958},
-	{3889, 3974, 3974},
-	{2188, 3982, 3982},
-	{3220, 3986, 3987},
-	{3585, 3991, 3993},
-	{3712, 3997, 4001},
-	{2805, 4007, 4007},
-	{1879, 4012, 4013},
-	{3618, 4018, 4018},
-	{1145, 4031, 4032},
-	{3901, 4037, 4037},
-	{2772, 4046, 4047},
-	{2802, 4053, 4054},
-	{3299, 4058, 4058},
-	{3725, 4066, 4066},
-	{2271, 4070, 4070},
-	{385, 4075, 4076},
-	{3624, 4089, 4090},
-	{3745, 4096, 4098},
-	{1563, 4102, 4102},
-	{4045, 4106, 4111},
-	{3696, 4115, 4119},
-	{3376, 4125, 4126},
-	{1880, 4130, 4130},
-	{2048, 4140, 4141},
-	{2724, 4149, 4149},
-	{1767, 4156, 4156},
-	{2601, 4164, 4164},
-	{2757, 4168, 4168},
-	{3974, 4172, 4172},
-	{3914, 4178, 4178},
-	{516, 4185, 4185},
-	{1032, 4189, 4190},
-	{3462, 4197, 4198},
-	{3805, 4202, 4203},
-	{3910, 4207, 4212},
-	{3075, 4221, 4221},
-	{3756, 4225, 4226},
-	{1872, 4236, 4237},
-	{3844, 4241, 4241},
-	{3991, 4245, 4249},
-	{2203, 4258, 4258},
-	{3903, 4267, 4268},
-	{705, 4272, 4272},
-	{1896, 4276, 4276},
-	{1955, 4285, 4288},
-	{3746, 4302, 4303},
-	{2672, 4311, 4311},
-	{3969, 4317, 4317},
-	{3883, 4322, 4322},
-	{1920, 4339, 4340},
-	{3527, 4344, 4346},
-	{1160, 4358, 4358},
-	{3648, 4364, 4366},
-	{2711, 4387, 4387},
-	{3619, 4391, 4392},
-	{1944, 4396, 4396},
-	{4369, 4400, 4400},
-	{2736, 4404, 4407},
-	{2546, 4411, 4412},
-	{4390, 4422, 4422},
-	{3610, 4426, 4427},
-	{4058, 4431, 4431},
-	{4374, 4435, 4435},
-	{3463, 4445, 4446},
-	{1813, 4452, 4452},
-	{3669, 4456, 4456},
-	{3830, 4460, 4460},
-	{421, 4464, 4465},
-	{1719, 4471, 4471},
-	{3880, 4475, 4475},
-	{1834, 4485, 4487},
-	{3590, 4491, 4491},
-	{442, 4496, 4497},
-	{4435, 4501, 4501},
-	{3814, 4509, 4509},
-	{987, 4513, 4513},
-	{4494, 4518, 4521},
-	{3218, 4526, 4529},
-	{4221, 4537, 4537},
-	{2778, 4543, 4545},
-	{4422, 4552, 4552},
-	{4031, 4558, 4559},
-	{4178, 4563, 4563},
-	{3726, 4567, 4574},
-	{4027, 4578, 4578},
-	{4339, 4585, 4587},
-	{3796, 4592, 4595},
-	{543, 4600, 4613},
-	{2855, 4620, 4621},
-	{2795, 4627, 4627},
-	{3440, 4631, 4632},
-	{4279, 4636, 4639},
-	{4245, 4643, 4645},
-	{4516, 4649, 4650},
-	{3133, 4654, 4654},
-	{4042, 4658, 4659},
-	{3422, 4663, 4663},
-	{4046, 4667, 4668},
-	{4267, 4672, 4672},
-	{4004, 4676, 4677},
-	{2490, 4682, 4682},
-	{2451, 4697, 4697},
-	{3027, 4705, 4705},
-	{4028, 4717, 4717},
-	{4460, 4721, 4721},
-	{2471, 4725, 4727},
-	{3090, 4735, 4735},
-	{3192, 4739, 4740},
-	{3835, 4760, 4760},
-	{4540, 4764, 4764},
-	{4007, 4772, 4774},
-	{619, 4784, 4784},
-	{3561, 4789, 4791},
-	{3367, 4805, 4805},
-	{4490, 4810, 4811},
-	{2402, 4815, 4815},
-	{3352, 4819, 4822},
-	{2773, 4828, 4828},
-	{4552, 4832, 4832},
-	{2522, 4840, 4841},
-	{316, 4847, 4852},
-	{4715, 4858, 4858},
-	{2959, 4862, 4862},
-	{4858, 4868, 4869},
-	{2134, 4873, 4873},
-	{578, 4878, 4878},
-	{4189, 4889, 4890},
-	{2229, 4894, 4894},
-	{4501, 4898, 4898},
-	{2297, 4903, 4903},
-	{2933, 4909, 4909},
-	{3008, 4913, 4913},
-	{3153, 4917, 4917},
-	{4819, 4921, 4921},
-	{4921, 4932, 4933},
-	{4920, 4944, 4945},
-	{4814, 4954, 4955},
-	{576, 4966, 4966},
-	{1854, 4970, 4971},
-	{1374, 4975, 4976},
-	{3307, 4980, 4980},
-	{974, 4984, 4988},
-	{4721, 4992, 4992},
-	{4898, 4996, 4996},
-	{4475, 5006, 5006},
-	{3819, 5012, 5012},
-	{1948, 5019, 5021},
-	{4954, 5027, 5029},
-	{3740, 5038, 5040},
-	{4763, 5044, 5045},
-	{1936, 5051, 5051},
-	{4844, 5055, 5060},
-	{4215, 5069, 5072},
-	{1146, 5076, 5076},
-	{3845, 5082, 5082},
-	{4865, 5090, 5090},
-	{4624, 5094, 5094},
-	{4815, 5098, 5098},
-	{5006, 5105, 5105},
-	{4980, 5109, 5109},
-	{4795, 5113, 5115},
-	{5043, 5119, 5121},
-	{4782, 5129, 5129},
-	{3826, 5139, 5139},
-	{3876, 5156, 5156},
-	{3111, 5167, 5171},
-	{1470, 5177, 5177},
-	{4431, 5181, 5181},
-	{546, 5189, 5189},
-	{4225, 5193, 5193},
-	{1672, 5199, 5201},
-	{4207, 5205, 5209},
-	{4220, 5216, 5217},
-	{4658, 5224, 5225},
-	{3295, 5235, 5235},
-	{2436, 5239, 5239},
-	{2349, 5246, 5246},
-	{2175, 5250, 5250},
-	{5180, 5257, 5258},
-	{3161, 5263, 5263},
-	{5105, 5272, 5272},
-	{3552, 5282, 5282},
-	{4944, 5299, 5300},
-	{4130, 5312, 5313},
-	{902, 5323, 5323},
-	{913, 5327, 5327},
-	{2987, 5333, 5334},
-	{5150, 5344, 5344},
-	{5249, 5348, 5348},
-	{1965, 5358, 5359},
-	{5330, 5364, 5364},
-	{2012, 5373, 5377},
-	{712, 5384, 5386},
-	{5235, 5390, 5390},
-	{5044, 5398, 5399},
-	{564, 5406, 5406},
-	{39, 5410, 5410},
-	{4642, 5422, 5425},
-	{4421, 5437, 5438},
-	{2347, 5449, 5449},
-	{5333, 5453, 5454},
-	{4136, 5458, 5459},
-	{3793, 5468, 5468},
-	{2243, 5480, 5480},
-	{4889, 5492, 5493},
-	{4295, 5504, 5504},
-	{2785, 5511, 5511},
-	{2377, 5518, 5518},
-	{3662, 5525, 5525},
-	{5097, 5529, 5530},
-	{4781, 5537, 5538},
-	{4697, 5547, 5548},
-	{436, 5552, 5553},
-	{5542, 5558, 5558},
-	{3692, 5562, 5562},
-	{2696, 5568, 5569},
-	{4620, 5578, 5578},
-	{2898, 5590, 5590},
-	{5557, 5596, 5618},
-	{2797, 5623, 5625},
-	{2792, 5629, 5629},
-	{5243, 5633, 5633},
-	{5348, 5637, 5637},
-	{5547, 5643, 5643},
-	{4296, 5654, 5655},
-	{5568, 5662, 5662},
-	{3001, 5670, 5671},
-	{3794, 5679, 5679},
-	{4006, 5685, 5686},
-	{4969, 5690, 5692},
-	{687, 5704, 5704},
-	{4563, 5708, 5708},
-	{1723, 5738, 5738},
-	{649, 5742, 5742},
-	{5163, 5748, 5755},
-	{3907, 5759, 5759},
-	{3074, 5764, 5764},
-	{5326, 5771, 5771},
-	{2951, 5776, 5776},
-	{5181, 5780, 5780},
-	{2614, 5785, 5788},
-	{4709, 5794, 5794},
-	{2784, 5799, 5799},
-	{5518, 5803, 5803},
-	{4155, 5812, 5815},
-	{921, 5819, 5819},
-	{5224, 5823, 5824},
-	{2853, 5830, 5836},
-	{5776, 5840, 5840},
-	{2955, 5844, 5845},
-	{5745, 5853, 5853},
-	{3291, 5857, 5857},
-	{2988, 5861, 5861},
-	{2647, 5865, 5865},
-	{5398, 5869, 5870},
-	{1085, 5874, 5875},
-	{4906, 5881, 5881},
-	{802, 5886, 5886},
-	{5119, 5890, 5893},
-	{5802, 5899, 5900},
-	{3415, 5904, 5904},
-	{5629, 5908, 5908},
-	{3714, 5912, 5914},
-	{5558, 5921, 5921},
-	{2710, 5927, 5928},
-	{1094, 5932, 5934},
-	{2653, 5940, 5941},
-	{4735, 5954, 5954},
-	{5861, 5958, 5958},
-	{1040, 5971, 5971},
-	{5514, 5977, 5977},
-	{5048, 5981, 5982},
-	{5953, 5992, 5993},
-	{3751, 5997, 5997},
-	{4991, 6001, 6002},
-	{5885, 6006, 6007},
-	{5529, 6011, 6012},
-	{4974, 6019, 6020},
-	{5857, 6024, 6024},
-	{3483, 6032, 6032},
-	{3594, 6036, 6036},
-	{1997, 6040, 6040},
-	{5997, 6044, 6047},
-	{5197, 6051, 6051},
-	{1764, 6055, 6055},
-	{6050, 6059, 6059},
-	{5239, 6063, 6063},
-	{5049, 6067, 6067},
-	{5957, 6073, 6074},
-	{1022, 6078, 6078},
-	{3414, 6083, 6084},
-	{3809, 6090, 6090},
-	{4562, 6095, 6096},
-	{5878, 6104, 6104},
-	{594, 6108, 6109},
-	{3353, 6115, 6116},
-	{4992, 6120, 6121},
-	{2424, 6125, 6125},
-	{4484, 6130, 6130},
-	{3900, 6134, 6135},
-	{5793, 6139, 6141},
-	{3562, 6145, 6145},
-	{1438, 6152, 6153},
-	{6058, 6157, 6158},
-	{4411, 6162, 6163},
-	{4590, 6167, 6171},
-	{4748, 6175, 6175},
-	{5517, 6183, 6184},
-	{6095, 6191, 6192},
-	{1471, 6203, 6203},
-	{2643, 6209, 6210},
-	{450, 6220, 6220},
-	{5266, 6226, 6226},
-	{2576, 6233, 6233},
-	{2607, 6239, 6240},
-	{5164, 6244, 6251},
-	{6054, 6255, 6255},
-	{1789, 6260, 6261},
-	{5250, 6265, 6265},
-	{6062, 6273, 6278},
-	{5990, 6282, 6282},
-	{3283, 6286, 6286},
-	{5436, 6290, 6290},
-	{6059, 6294, 6294},
-	{5668, 6298, 6300},
-	{3072, 6324, 6329},
-	{3132, 6338, 6339},
-	{3246, 6343, 6344},
-	{28, 6348, 6349},
-	{1503, 6353, 6355},
-	{6067, 6359, 6359},
-	{3384, 6364, 6364},
-	{545, 6375, 6376},
-	{5803, 6380, 6380},
-	{5522, 6384, 6385},
-	{5908, 6389, 6389},
-	{2796, 6393, 6396},
-	{4831, 6403, 6404},
-	{6388, 6412, 6412},
-	{6005, 6417, 6420},
-	{4450, 6430, 6430},
-	{4050, 6435, 6435},
-	{5372, 6441, 6441},
-	{4378, 6447, 6447},
-	{6199, 6452, 6452},
-	{3026, 6456, 6456},
-	{2642, 6460, 6462},
-	{6392, 6470, 6470},
-	{6459, 6474, 6474},
-	{2829, 6487, 6488},
-	{2942, 6499, 6504},
-	{5069, 6508, 6511},
-	{5341, 6515, 6516},
-	{5853, 6521, 6525},
-	{6104, 6531, 6531},
-	{5759, 6535, 6538},
-	{4672, 6542, 6543},
-	{2443, 6550, 6550},
-	{5109, 6554, 6554},
-	{6494, 6558, 6560},
-	{6006, 6570, 6572},
-	{6424, 6576, 6580},
-	{4693, 6591, 6592},
-	{6439, 6596, 6597},
-	{3179, 6601, 6601},
-	{5299, 6606, 6607},
-	{4148, 6612, 6613},
-	{3774, 6617, 6617},
-	{3537, 6623, 6624},
-	{4975, 6628, 6629},
-	{3848, 6636, 6636},
-	{856, 6640, 6640},
-	{5724, 6645, 6645},
-	{6632, 6651, 6651},
-	{4630, 6656, 6658},
-	{1440, 6662, 6662},
-	{4281, 6666, 6667},
-	{4302, 6671, 6672},
-	{2589, 6676, 6677},
-	{5647, 6681, 6687},
-	{6082, 6691, 6693},
-	{6144, 6698, 6698},
-	{6103, 6709, 6710},
-	{3710, 6714, 6714},
-	{4253, 6718, 6721},
-	{2467, 6730, 6730},
-	{4778, 6734, 6734},
-	{6528, 6738, 6738},
-	{4358, 6747, 6747},
-	{5889, 6753, 6753},
-	{5193, 6757, 6757},
-	{5797, 6761, 6761},
-	{3858, 6765, 6766},
-	{5951, 6776, 6776},
-	{6487, 6781, 6782},
-	{3282, 6786, 6787},
-	{4667, 6797, 6799},
-	{1927, 6803, 6806},
-	{6583, 6810, 6810},
-	{4937, 6814, 6814},
-	{6099, 6824, 6824},
-	{4415, 6835, 6836},
-	{6332, 6840, 6841},
-	{5160, 6850, 6850},
-	{4764, 6854, 6854},
-	{6814, 6858, 6859},
-	{3018, 6864, 6864},
-	{6293, 6868, 6869},
-	{6359, 6877, 6877},
-	{3047, 6884, 6886},
-	{5262, 6890, 6891},
-	{5471, 6900, 6900},
-	{3268, 6910, 6912},
-	{1047, 6916, 6916},
-	{5904, 6923, 6923},
-	{5798, 6933, 6938},
-	{4149, 6942, 6942},
-	{1821, 6946, 6946},
-	{3599, 6952, 6952},
-	{6470, 6957, 6957},
-	{5562, 6961, 6961},
-	{6268, 6965, 6967},
-	{6389, 6971, 6971},
-	{6596, 6975, 6976},
-	{6553, 6980, 6981},
-	{6576, 6985, 6989},
-	{1375, 6993, 6993},
-	{652, 6998, 6998},
-	{4876, 7002, 7003},
-	{5768, 7011, 7013},
-	{3973, 7017, 7017},
-	{6802, 7025, 7025},
-	{6955, 7034, 7036},
-	{6974, 7040, 7040},
-	{5944, 7044, 7044},
-	{6992, 7048, 7054},
-	{6872, 7059, 7059},
-	{2943, 7063, 7063},
-	{6923, 7067, 7067},
-	{5094, 7071, 7071},
-	{4873, 7075, 7075},
-	{5819, 7079, 7079},
-	{5945, 7085, 7085},
-	{1540, 7090, 7091},
-	{2090, 7095, 7095},
-	{5024, 7104, 7105},
-	{6900, 7109, 7109},
-	{6024, 7113, 7114},
-	{6000, 7118, 7120},
-	{2187, 7124, 7125},
-	{6760, 7129, 7130},
-	{5898, 7134, 7136},
-	{7032, 7144, 7144},
-	{4271, 7148, 7148},
-	{3706, 7152, 7152},
-	{6970, 7156, 7157},
-	{7088, 7161, 7163},
-	{2718, 7168, 7169},
-	{5674, 7175, 7175},
-	{4631, 7182, 7182},
-	{7070, 7188, 7189},
-	{6220, 7196, 7196},
-	{3458, 7201, 7202},
-	{2041, 7211, 7212},
-	{1454, 7216, 7216},
-	{5199, 7225, 7227},
-	{3529, 7234, 7234},
-	{6890, 7238, 7238},
-	{3815, 7242, 7243},
-	{5490, 7250, 7253},
-	{6554, 7257, 7263},
-	{5890, 7267, 7269},
-	{6877, 7273, 7273},
-	{4877, 7277, 7277},
-	{2502, 7285, 7285},
-	{1483, 7289, 7295},
-	{7210, 7304, 7308},
-	{6845, 7313, 7316},
-	{7219, 7320, 7320},
-	{7001, 7325, 7329},
-	{6853, 7333, 7334},
-	{6120, 7338, 7338},
-	{6606, 7342, 7343},
-	{7020, 7348, 7350},
-	{3509, 7354, 7354},
-	{7133, 7359, 7363},
-	{3434, 7371, 7374},
-	{2787, 7384, 7384},
-	{7044, 7388, 7388},
-	{6960, 7394, 7395},
-	{6676, 7399, 7400},
-	{7161, 7404, 7404},
-	{7285, 7417, 7418},
-	{4558, 7425, 7426},
-	{4828, 7430, 7430},
-	{6063, 7436, 7436},
-	{3597, 7442, 7442},
-	{914, 7446, 7446},
-	{7320, 7452, 7454},
-	{7267, 7458, 7460},
-	{5076, 7464, 7464},
-	{7430, 7468, 7469},
-	{6273, 7473, 7474},
-	{7440, 7478, 7487},
-	{7348, 7491, 7494},
-	{1021, 7510, 7510},
-	{7473, 7515, 7515},
-	{2823, 7519, 7519},
-	{6264, 7527, 7527},
-	{7302, 7531, 7531},
-	{7089, 7535, 7535},
-	{7342, 7540, 7541},
-	{3688, 7547, 7551},
-	{3054, 7558, 7560},
-	{4177, 7566, 7567},
-	{6691, 7574, 7575},
-	{7156, 7585, 7586},
-	{7147, 7590, 7592},
-	{7407, 7598, 7598},
-	{7403, 7602, 7603},
-	{6868, 7607, 7607},
-	{6636, 7611, 7611},
-	{4805, 7617, 7617},
-	{5779, 7623, 7623},
-	{7063, 7627, 7627},
-	{5079, 7632, 7632},
-	{7377, 7637, 7637},
-	{7337, 7641, 7642},
-	{6738, 7655, 7655},
-	{7338, 7659, 7659},
-	{6541, 7669, 7671},
-	{595, 7675, 7675},
-	{7658, 7679, 7680},
-	{7647, 7685, 7686},
-	{2477, 7690, 7690},
-	{5823, 7694, 7694},
-	{4156, 7699, 7699},
-	{5931, 7703, 7706},
-	{6854, 7712, 7712},
-	{4931, 7718, 7718},
-	{6979, 7722, 7722},
-	{5085, 7727, 7727},
-	{6965, 7732, 7732},
-	{7201, 7736, 7737},
-	{3639, 7741, 7743},
-	{7534, 7749, 7749},
-	{4292, 7753, 7753},
-	{3427, 7759, 7763},
-	{7273, 7767, 7767},
-	{940, 7778, 7778},
-	{4838, 7782, 7785},
-	{4216, 7790, 7792},
-	{922, 7800, 7801},
-	{7256, 7810, 7811},
-	{7789, 7815, 7819},
-	{7225, 7823, 7825},
-	{7531, 7829, 7829},
-	{6997, 7833, 7833},
-	{7757, 7837, 7838},
-	{4129, 7842, 7842},
-	{7333, 7848, 7849},
-	{6776, 7855, 7855},
-	{7527, 7859, 7859},
-	{4370, 7863, 7863},
-	{4512, 7868, 7868},
-	{5679, 7880, 7880},
-	{3162, 7884, 7885},
-	{3933, 7892, 7894},
-	{7804, 7899, 7902},
-	{6363, 7906, 7907},
-	{7848, 7911, 7912},
-	{5584, 7917, 7921},
-	{874, 7926, 7926},
-	{3342, 7930, 7930},
-	{4507, 7935, 7937},
-	{3672, 7943, 7944},
-	{7911, 7948, 7949},
-	{6402, 7956, 7956},
-	{7940, 7960, 7960},
-	{7113, 7964, 7964},
-	{1073, 7968, 7968},
-	{7740, 7974, 7974},
-	{7601, 7978, 7982},
-	{6797, 7987, 7988},
-	{3528, 7994, 7995},
-	{5483, 7999, 7999},
-	{5717, 8011, 8011},
-	{5480, 8017, 8017},
-	{7770, 8023, 8030},
-	{2452, 8034, 8034},
-	{5282, 8047, 8047},
-	{7967, 8051, 8051},
-	{1128, 8058, 8066},
-	{6348, 8070, 8070},
-	{8055, 8077, 8077},
-	{7925, 8081, 8086},
-	{6810, 8090, 8090},
-	{5051, 8101, 8101},
-	{4696, 8109, 8110},
-	{5129, 8119, 8119},
-	{4449, 8123, 8123},
-	{7222, 8127, 8127},
-	{4649, 8131, 8134},
-	{7994, 8138, 8138},
-	{5954, 8148, 8148},
-	{475, 8152, 8153},
-	{7906, 8157, 8157},
-	{7458, 8164, 8166},
-	{7632, 8171, 8173},
-	{3874, 8177, 8183},
-	{4391, 8187, 8187},
-	{561, 8191, 8191},
-	{2417, 8195, 8195},
-	{2357, 8204, 8204},
-	{2269, 8216, 8218},
-	{3968, 8222, 8222},
-	{2200, 8226, 8227},
-	{3453, 8247, 8247},
-	{2439, 8251, 8252},
-	{7175, 8257, 8257},
-	{976, 8262, 8264},
-	{4953, 8273, 8273},
-	{4219, 8278, 8278},
-	{6, 8285, 8291},
-	{5703, 8295, 8296},
-	{5272, 8300, 8300},
-	{8037, 8304, 8304},
-	{8186, 8314, 8314},
-	{8304, 8318, 8318},
-	{8051, 8326, 8326},
-	{8318, 8330, 8330},
-	{2671, 8334, 8335},
-	{2662, 8339, 8339},
-	{8081, 8349, 8350},
-	{3328, 8356, 8356},
-	{2879, 8360, 8362},
-	{8050, 8370, 8371},
-	{8330, 8375, 8376},
-	{8375, 8386, 8386},
-	{4961, 8390, 8390},
-	{1017, 8403, 8405},
-	{3533, 8416, 8416},
-	{4555, 8422, 8422},
-	{6445, 8426, 8426},
-	{8169, 8432, 8432},
-	{990, 8436, 8436},
-	{4102, 8440, 8440},
-	{7398, 8444, 8446},
-	{3480, 8450, 8450},
-	{6324, 8462, 8462},
-	{7948, 8466, 8467},
-	{5950, 8471, 8471},
-	{5189, 8476, 8476},
-	{4026, 8490, 8490},
-	{8374, 8494, 8495},
-	{4682, 8501, 8501},
-	{7387, 8506, 8506},
-	{8164, 8510, 8515},
-	{4079, 8524, 8524},
-	{8360, 8529, 8531},
-	{7446, 8540, 8543},
-	{7971, 8547, 8548},
-	{4311, 8552, 8552},
-	{5204, 8556, 8557},
-	{7968, 8562, 8562},
-	{7847, 8571, 8573},
-	{8547, 8577, 8577},
-	{5320, 8581, 8581},
-	{8556, 8585, 8586},
-	{8504, 8590, 8590},
-	{7669, 8602, 8604},
-	{5874, 8608, 8609},
-	{5828, 8613, 8613},
-	{7998, 8617, 8617},
-	{8519, 8625, 8625},
-	{7250, 8637, 8637},
-	{426, 8641, 8641},
-	{8436, 8645, 8645},
-	{5986, 8649, 8656},
-	{8157, 8660, 8660},
-	{7182, 8665, 8665},
-	{8421, 8675, 8675},
-	{8509, 8681, 8681},
-	{5137, 8688, 8689},
-	{8625, 8694, 8695},
-	{5228, 8701, 8702},
-	{6661, 8714, 8714},
-	{1010, 8719, 8719},
-	{6648, 8723, 8723},
-	{3500, 8728, 8728},
-	{2442, 8735, 8735},
-	{8494, 8740, 8741},
-	{8171, 8753, 8755},
-	{7242, 8763, 8764},
-	{4739, 8768, 8769},
-	{7079, 8773, 8773},
-	{8386, 8777, 8777},
-	{8624, 8781, 8787},
-	{661, 8791, 8794},
-	{8631, 8801, 8801},
-	{7753, 8805, 8805},
-	{4783, 8809, 8810},
-	{1673, 8814, 8815},
-	{6623, 8819, 8819},
-	{4404, 8823, 8823},
-	{8089, 8827, 8828},
-	{8773, 8832, 8832},
-	{5394, 8836, 8836},
-	{6231, 8841, 8843},
-	{1015, 8852, 8853},
-	{6873, 8857, 8857},
-	{6289, 8865, 8865},
-	{8577, 8869, 8869},
-	{8114, 8873, 8875},
-	{8534, 8883, 8883},
-	{3007, 8887, 8888},
-	{8827, 8892, 8893},
-	{4788, 8897, 8900},
-	{5698, 8906, 8907},
-	{7690, 8911, 8911},
-	{6643, 8919, 8919},
-	{7206, 8923, 8924},
-	{7866, 8929, 8931},
-	{8880, 8942, 8942},
-	{8630, 8951, 8952},
-	{6027, 8958, 8958},
-	{7749, 8966, 8967},
-	{4932, 8972, 8973},
-	{8892, 8980, 8981},
-	{634, 9003, 9003},
-	{8109, 9007, 9008},
-	{8777, 9012, 9012},
-	{3981, 9016, 9017},
-	{5723, 9025, 9025},
-	{7662, 9034, 9038},
-	{8955, 9042, 9042},
-	{8070, 9060, 9062},
-	{8910, 9066, 9066},
-	{5363, 9070, 9071},
-	{7699, 9075, 9076},
-	{8991, 9081, 9081},
-	{6850, 9085, 9085},
-	{5811, 9092, 9094},
-	{9079, 9098, 9102},
-	{6456, 9106, 9106},
-	{2259, 9111, 9111},
-	{4752, 9116, 9116},
-	{9060, 9120, 9123},
-	{8090, 9127, 9127},
-	{5305, 9131, 9132},
-	{8623, 9137, 9137},
-	{7417, 9141, 9141},
-	{6564, 9148, 9149},
-	{9126, 9157, 9158},
-	{4285, 9169, 9170},
-	{8698, 9174, 9174},
-	{8869, 9178, 9178},
-	{2572, 9182, 9183},
-	{6482, 9188, 9190},
-	{9181, 9201, 9201},
-	{2968, 9208, 9209},
-	{2506, 9213, 9215},
-	{9127, 9219, 9219},
-	{7910, 9225, 9227},
-	{5422, 9235, 9239},
-	{8813, 9244, 9246},
-	{9178, 9250, 9250},
-	{8748, 9255, 9255},
-	{7354, 9265, 9265},
-	{7767, 9269, 9269},
-	{7710, 9281, 9283},
-	{8826, 9288, 9290},
-	{861, 9295, 9295},
-	{4482, 9301, 9301},
-	{9264, 9305, 9306},
-	{8805, 9310, 9310},
-	{4995, 9314, 9314},
-	{6730, 9318, 9318},
-	{7457, 9328, 9328},
-	{2547, 9335, 9336},
-	{6298, 9340, 9343},
-	{9305, 9353, 9354},
-	{9269, 9358, 9358},
-	{6338, 9370, 9370},
-	{7289, 9376, 9379},
-	{5780, 9383, 9383},
-	{7607, 9387, 9387},
-	{2065, 9392, 9392},
-	{7238, 9396, 9396},
-	{8856, 9400, 9400},
-	{8069, 9412, 9413},
-	{611, 9420, 9420},
-	{7071, 9424, 9424},
-	{3089, 9430, 9431},
-	{7117, 9435, 9438},
-	{1976, 9445, 9445},
-	{6640, 9449, 9449},
-	{5488, 9453, 9453},
-	{8739, 9457, 9459},
-	{5958, 9466, 9466},
-	{7985, 9470, 9470},
-	{8735, 9475, 9475},
-	{5009, 9479, 9479},
-	{8073, 9483, 9484},
-	{2328, 9490, 9491},
-	{9250, 9495, 9495},
-	{4043, 9502, 9502},
-	{7712, 9506, 9506},
-	{9012, 9510, 9510},
-	{9028, 9514, 9515},
-	{2190, 9521, 9524},
-	{9029, 9528, 9528},
-	{9519, 9532, 9532},
-	{9495, 9536, 9536},
-	{8527, 9540, 9540},
-	{2137, 9550, 9550},
-	{8419, 9557, 9557},
-	{9383, 9561, 9562},
-	{8970, 9575, 9578},
-	{8911, 9582, 9582},
-	{7828, 9595, 9596},
-	{6180, 9600, 9600},
-	{8738, 9604, 9607},
-	{7540, 9611, 9612},
-	{9599, 9616, 9618},
-	{9187, 9623, 9623},
-	{9294, 9628, 9629},
-	{4536, 9639, 9639},
-	{3867, 9643, 9643},
-	{6305, 9648, 9648},
-	{1617, 9654, 9657},
-	{5762, 9666, 9666},
-	{8314, 9670, 9670},
-	{9666, 9674, 9675},
-	{9506, 9679, 9679},
-	{9669, 9685, 9686},
-	{9683, 9690, 9690},
-	{8763, 9697, 9698},
-	{7468, 9702, 9702},
-	{460, 9707, 9707},
-	{3115, 9712, 9712},
-	{9424, 9716, 9717},
-	{7359, 9721, 9724},
-	{7547, 9728, 9729},
-	{7151, 9733, 9738},
-	{7627, 9742, 9742},
-	{2822, 9747, 9747},
-	{8247, 9751, 9753},
-	{9550, 9758, 9758},
-	{7585, 9762, 9763},
-	{1002, 9767, 9767},
-	{7168, 9772, 9773},
-	{6941, 9777, 9780},
-	{9728, 9784, 9786},
-	{9770, 9792, 9796},
-	{6411, 9801, 9802},
-	{3689, 9806, 9808},
-	{9575, 9814, 9816},
-	{7025, 9820, 9821},
-	{2776, 9826, 9826},
-	{9806, 9830, 9830},
-	{9820, 9834, 9835},
-	{9800, 9839, 9847},
-	{9834, 9851, 9852},
-	{9829, 9856, 9862},
-	{1400, 9866, 9866},
-	{3197, 9870, 9871},
-	{9851, 9875, 9876},
-	{9742, 9883, 9884},
-	{3362, 9888, 9889},
-	{9883, 9893, 9893},
-	{5711, 9899, 9910},
-	{7806, 9915, 9915},
-	{9120, 9919, 9919},
-	{9715, 9925, 9934},
-	{2580, 9938, 9938},
-	{4907, 9942, 9944},
-	{6239, 9953, 9954},
-	{6961, 9963, 9963},
-	{5295, 9967, 9968},
-	{1915, 9972, 9973},
-	{3426, 9983, 9985},
-	{9875, 9994, 9995},
-	{6942, 9999, 9999},
-	{6621, 10005, 10005},
-	{7589, 10010, 10012},
-	{9286, 10020, 10020},
-	{838, 10024, 10024},
-	{9980, 10028, 10031},
-	{9994, 10035, 10041},
-	{2702, 10048, 10051},
-	{2621, 10059, 10059},
-	{10054, 10065, 10065},
-	{8612, 10073, 10074},
-	{7033, 10078, 10078},
-	{916, 10082, 10082},
-	{10035, 10086, 10087},
-	{8613, 10097, 10097},
-	{9919, 10107, 10108},
-	{6133, 10114, 10115},
-	{10059, 10119, 10119},
-	{10065, 10126, 10127},
-	{7732, 10131, 10131},
-	{7155, 10135, 10136},
-	{6728, 10140, 10140},
-	{6162, 10144, 10145},
-	{4724, 10150, 10150},
-	{1665, 10154, 10154},
-	{10126, 10163, 10163},
-	{9783, 10168, 10168},
-	{1715, 10172, 10173},
-	{7152, 10177, 10182},
-	{8760, 10187, 10187},
-	{7829, 10191, 10191},
-	{9679, 10196, 10196},
-	{9369, 10201, 10201},
-	{2928, 10206, 10208},
-	{6951, 10214, 10217},
-	{5633, 10221, 10221},
-	{7199, 10225, 10225},
-	{10118, 10230, 10231},
-	{9999, 10235, 10236},
-	{10045, 10240, 10249},
-	{5565, 10256, 10256},
-	{9866, 10261, 10261},
-	{10163, 10268, 10268},
-	{9869, 10272, 10272},
-	{9789, 10276, 10283},
-	{10235, 10287, 10288},
-	{10214, 10298, 10299},
-	{6971, 10303, 10303},
-	{3346, 10307, 10307},
-	{10185, 10311, 10312},
-	{9993, 10318, 10320},
-	{2779, 10332, 10334},
-	{1726, 10338, 10338},
-	{741, 10354, 10360},
-	{10230, 10372, 10373},
-	{10260, 10384, 10385},
-	{10131, 10389, 10398},
-	{6946, 10406, 10409},
-	{10158, 10413, 10420},
-	{10123, 10424, 10424},
-	{6157, 10428, 10429},
-	{4518, 10434, 10434},
-	{9893, 10438, 10438},
-	{9865, 10442, 10446},
-	{7558, 10454, 10454},
-	{10434, 10460, 10460},
-	{10064, 10466, 10468},
-	{2703, 10472, 10474},
-	{9751, 10478, 10479},
-	{6714, 10485, 10485},
-	{8020, 10490, 10490},
-	{10303, 10494, 10494},
-	{3521, 10499, 10500},
-	{9281, 10513, 10515},
-	{6028, 10519, 10523},
-	{9387, 10527, 10527},
-	{7614, 10531, 10531},
-	{3611, 10536, 10536},
-	{9162, 10540, 10540},
-	{10081, 10546, 10547},
-	{10034, 10560, 10562},
-	{6726, 10567, 10571},
-	{8237, 10575, 10575},
-	{10438, 10579, 10583},
-	{10140, 10587, 10587},
-	{5784, 10592, 10592},
-	{9819, 10597, 10600},
-	{10567, 10604, 10608},
-	{9335, 10613, 10613},
-	{8300, 10617, 10617},
-	{10575, 10621, 10621},
-	{9678, 10625, 10626},
-	{9962, 10632, 10633},
-	{10535, 10637, 10638},
-	{8199, 10642, 10642},
-	{10372, 10647, 10648},
-	{10637, 10656, 10657},
-	{10579, 10667, 10668},
-	{10465, 10677, 10680},
-	{6702, 10684, 10685},
-	{10073, 10691, 10692},
-	{4505, 10696, 10697},
-	{9042, 10701, 10701},
-	{6460, 10705, 10706},
-	{10010, 10714, 10716},
-	{10656, 10720, 10722},
-	{7282, 10727, 10729},
-	{2327, 10733, 10733},
-	{2491, 10740, 10741},
-	{10704, 10748, 10750},
-	{6465, 10754, 10754},
-	{10647, 10758, 10759},
-	{10424, 10763, 10763},
-	{10748, 10776, 10776},
-	{10546, 10780, 10781},
-	{10758, 10785, 10786},
-	{10287, 10790, 10797},
-	{10785, 10801, 10807},
-	{10240, 10811, 10826},
-	{9509, 10830, 10830},
-	{2579, 10836, 10838},
-	{9801, 10843, 10845},
-	{7555, 10849, 10850},
-	{10776, 10860, 10865},
-	{8023, 10869, 10869},
-	{10046, 10876, 10884},
-	{10253, 10888, 10892},
-	{9941, 10897, 10897},
-	{7898, 10901, 10905},
-	{6725, 10909, 10913},
-	{10757, 10921, 10923},
-	{10160, 10931, 10931},
-	{10916, 10935, 10942},
-	{10261, 10946, 10946},
-	{10318, 10952, 10954},
-	{5911, 10959, 10961},
-	{10801, 10965, 10966},
-	{10946, 10970, 10977},
-	{10592, 10982, 10984},
-	{9913, 10988, 10990},
-	{8510, 10994, 10996},
-	{9419, 11000, 11001},
-	{6765, 11006, 11007},
-	{10725, 11011, 11011},
-	{5537, 11017, 11019},
-	{9208, 11024, 11025},
-	{5850, 11030, 11030},
-	{9610, 11034, 11036},
-	{8846, 11041, 11047},
-	{9697, 11051, 11051},
-	{1622, 11055, 11058},
-	{2370, 11062, 11062},
-	{8393, 11067, 11067},
-	{9756, 11071, 11071},
-	{10172, 11076, 11076},
-	{27, 11081, 11081},
-	{7357, 11087, 11092},
-	{8151, 11104, 11106},
-	{6115, 11110, 11110},
-	{10667, 11114, 11115},
-	{11099, 11121, 11123},
-	{10705, 11127, 11127},
-	{8938, 11131, 11131},
-	{11114, 11135, 11136},
-	{1390, 11140, 11141},
-	{10964, 11146, 11148},
-	{11140, 11152, 11155},
-	{9813, 11159, 11166},
-	{624, 11171, 11172},
-	{3118, 11177, 11179},
-	{11029, 11184, 11186},
-	{10186, 11190, 11190},
-	{10306, 11196, 11196},
-	{8665, 11201, 11201},
-	{7382, 11205, 11205},
-	{1100, 11210, 11210},
-	{2337, 11216, 11217},
-	{1609, 11221, 11223},
-	{5763, 11228, 11229},
-	{5220, 11233, 11233},
-	{11061, 11241, 11241},
-	{10617, 11246, 11246},
-	{11190, 11250, 11251},
-	{10144, 11255, 11256},
-	{11232, 11260, 11260},
-	{857, 11264, 11265},
-	{10994, 11269, 11271},
-	{3879, 11280, 11281},
-	{11184, 11287, 11289},
-	{9611, 11293, 11295},
-	{11250, 11299, 11299},
-	{4495, 11304, 11304},
-	{7574, 11308, 11309},
-	{9814, 11315, 11317},
-	{1713, 11321, 11324},
-	{1905, 11328, 11328},
-	{8745, 11335, 11340},
-	{8883, 11351, 11351},
-	{8119, 11358, 11358},
-	{1842, 11363, 11364},
-	{11237, 11368, 11368},
-	{8814, 11373, 11374},
-	{5684, 11378, 11378},
-	{11011, 11382, 11382},
-	{6520, 11389, 11389},
-	{11183, 11393, 11396},
-	{1790, 11404, 11404},
-	{9536, 11408, 11408},
-	{11298, 11418, 11419},
-	{3929, 11425, 11425},
-	{5588, 11429, 11429},
-	{8476, 11436, 11436},
-	{4096, 11440, 11442},
-	{11084, 11446, 11454},
-	{10603, 11458, 11463},
-	{7332, 11472, 11474},
-	{7611, 11483, 11486},
-	{4836, 11490, 11491},
-	{10024, 11495, 11495},
-	{4917, 11501, 11506},
-	{6486, 11510, 11512},
-	{11269, 11516, 11518},
-	{3603, 11522, 11525},
-	{11126, 11535, 11535},
-	{11418, 11539, 11541},
-	{11408, 11545, 11545},
-	{9021, 11549, 11552},
-	{6745, 11557, 11557},
-	{5118, 11561, 11564},
-	{7590, 11568, 11569},
-	{4426, 11573, 11578},
-	{9790, 11582, 11583},
-	{6447, 11587, 11587},
-	{10229, 11591, 11594},
-	{10457, 11598, 11598},
-	{10168, 11604, 11604},
-	{10543, 11608, 11608},
-	{7404, 11612, 11612},
-	{11127, 11616, 11616},
-	{3337, 11620, 11620},
-	{11501, 11624, 11628},
-	{4543, 11633, 11635},
-	{8449, 11642, 11642},
-	{4943, 11646, 11648},
-	{10526, 11652, 11654},
-	{11620, 11659, 11659},
-	{8927, 11664, 11669},
-	{532, 11673, 11673},
-	{10513, 11677, 11679},
-	{10428, 11683, 11683},
-	{10999, 11689, 11690},
-	{9469, 11695, 11695},
-	{3606, 11699, 11699},
-	{9560, 11708, 11709},
-	{1564, 11714, 11714},
-	{10527, 11718, 11718},
-	{3071, 11723, 11726},
-	{11590, 11731, 11732},
-	{6605, 11737, 11737},
-	{11624, 11741, 11745},
-	{7822, 11749, 11752},
-	{5269, 11757, 11758},
-	{1339, 11767, 11767},
-	{1363, 11771, 11773},
-	{3704, 11777, 11777},
-	{10952, 11781, 11783},
-	{6764, 11793, 11795},
-	{8675, 11800, 11800},
-	{9963, 11804, 11804},
-	{11573, 11808, 11809},
-	{9548, 11813, 11813},
-	{11591, 11817, 11818},
-	{11446, 11822, 11822},
-	{9224, 11828, 11828},
-	{3158, 11836, 11836},
-	{10830, 11840, 11840},
-	{7234, 11846, 11846},
-	{11299, 11850, 11850},
-	{11544, 11854, 11855},
-	{11498, 11859, 11859},
-	{10993, 11865, 11868},
-	{9720, 11872, 11878},
-	{10489, 11882, 11890},
-	{11712, 11898, 11904},
-	{11516, 11908, 11910},
-	{11568, 11914, 11915},
-	{10177, 11919, 11924},
-	{11363, 11928, 11929},
-	{10494, 11933, 11933},
-	{9870, 11937, 11938},
-	{9427, 11942, 11942},
-	{11481, 11949, 11949},
-	{6030, 11955, 11957},
-	{11718, 11961, 11961},
-	{10531, 11965, 11983},
-	{5126, 11987, 11987},
-	{7515, 11991, 11991},
-	{10646, 11996, 11997},
-	{2947, 12001, 12001},
-	{9582, 12009, 12010},
-	{6202, 12017, 12018},
-	{11714, 12022, 12022},
-	{9235, 12033, 12037},
-	{9721, 12041, 12044},
-	{11932, 12051, 12052},
-	{12040, 12056, 12056},
-	{12051, 12060, 12060},
-	{11601, 12066, 12066},
-	{8426, 12070, 12070},
-	{4053, 12077, 12077},
-	{4262, 12081, 12081},
-	{9761, 12086, 12088},
-	{11582, 12092, 12093},
-	{10965, 12097, 12098},
-	{11803, 12103, 12104},
-	{11933, 12108, 12109},
-	{10688, 12117, 12117},
-	{12107, 12125, 12126},
-	{6774, 12130, 12132},
-	{6286, 12137, 12137},
-	{9543, 12141, 12141},
-	{12097, 12145, 12146},
-	{10790, 12150, 12150},
-	{10125, 12154, 12156},
-	{12125, 12164, 12164},
-	{12064, 12168, 12172},
-	{10811, 12178, 12188},
-	{12092, 12192, 12193},
-	{10058, 12197, 12198},
-	{11611, 12211, 12212},
-	{3459, 12216, 12216},
-	{10291, 12225, 12228},
-	{12191, 12232, 12234},
-	{12145, 12238, 12238},
-	{12001, 12242, 12250},
-	{3840, 12255, 12255},
-	{12216, 12259, 12259},
-	{674, 12272, 12272},
-	{12141, 12276, 12276},
-	{10766, 12280, 12280},
-	{11545, 12284, 12284},
-	{6496, 12290, 12290},
-	{11381, 12294, 12295},
-	{603, 12302, 12303},
-	{12276, 12308, 12308},
-	{11850, 12313, 12314},
-	{565, 12319, 12319},
-	{9351, 12324, 12324},
-	{11822, 12328, 12328},
-	{2691, 12333, 12334},
-	{11840, 12338, 12338},
-	{11070, 12343, 12343},
-	{9510, 12347, 12347},
-	{11024, 12352, 12353},
-	{7173, 12359, 12359},
-	{517, 12363, 12363},
-	{6311, 12367, 12368},
-	{11367, 12372, 12373},
-	{12008, 12377, 12377},
-	{11372, 12382, 12384},
-	{11358, 12391, 12392},
-	{11382, 12396, 12396},
-	{6882, 12400, 12401},
-	{11246, 12405, 12405},
-	{8359, 12409, 12412},
-	{10154, 12418, 12418},
-	{12016, 12425, 12426},
-	{8972, 12434, 12435},
-	{10478, 12439, 12440},
-	{12395, 12449, 12449},
-	{11612, 12454, 12454},
-	{12347, 12458, 12458},
-	{10700, 12466, 12467},
-	{3637, 12471, 12476},
-	{1042, 12480, 12481},
-	{6747, 12488, 12488},
-	{12396, 12492, 12493},
-	{9420, 12497, 12497},
-	{11285, 12501, 12510},
-	{4470, 12515, 12515},
-	{9374, 12519, 12519},
-	{11293, 12528, 12528},
-	{2058, 12534, 12535},
-	{6521, 12539, 12539},
-	{12492, 12543, 12543},
-	{3043, 12547, 12547},
-	{2982, 12551, 12553},
-	{11030, 12557, 12563},
-	{7636, 12568, 12568},
-	{9639, 12572, 12572},
-	{12543, 12576, 12576},
-	{5989, 12580, 12583},
-	{11051, 12587, 12587},
-	{1061, 12592, 12594},
-	{12313, 12599, 12601},
-	{11846, 12605, 12605},
-	{12576, 12609, 12609},
-	{11040, 12618, 12625},
-	{12479, 12629, 12629},
-	{6903, 12633, 12633},
-	{12322, 12639, 12639},
-	{12253, 12643, 12645},
-	{5594, 12651, 12651},
-	{12522, 12655, 12655},
-	{11703, 12659, 12659},
-	{1377, 12665, 12665},
-	{8022, 12669, 12669},
-	{12280, 12674, 12674},
-	{9023, 12680, 12681},
-	{12328, 12685, 12685},
-	{3085, 12689, 12693},
-	{4700, 12698, 12698},
-	{10224, 12702, 12702},
-	{8781, 12706, 12706},
-	{1651, 12710, 12710},
-	{12458, 12714, 12714},
-	{12005, 12718, 12721},
-	{11908, 12725, 12726},
-	{8202, 12733, 12733},
-	{11708, 12739, 12740},
-	{12599, 12744, 12745},
-	{12284, 12749, 12749},
-	{5285, 12756, 12756},
-	{12055, 12775, 12777},
-	{6919, 12782, 12782},
-	{12242, 12786, 12786},
-	{12009, 12790, 12790},
-	{9628, 12794, 12796},
-	{11354, 12801, 12802},
-	{10225, 12806, 12807},
-	{579, 12813, 12813},
-	{8935, 12817, 12822},
-	{8753, 12827, 12829},
-	{11006, 12835, 12835},
-	{858, 12841, 12845},
-	{476, 12849, 12849},
-	{7667, 12854, 12854},
-	{12760, 12860, 12871},
-	{11677, 12875, 12877},
-	{12714, 12881, 12881},
-	{12731, 12885, 12890},
-	{7108, 12894, 12896},
-	{1165, 12900, 12900},
-	{4021, 12906, 12906},
-	{10829, 12910, 12911},
-	{12331, 12915, 12915},
-	{8887, 12919, 12921},
-	{11639, 12925, 12925},
-	{7964, 12929, 12929},
-	{12528, 12937, 12937},
-	{8148, 12941, 12941},
-	{12770, 12948, 12950},
-	{12609, 12954, 12954},
-	{12685, 12958, 12958},
-	{2803, 12962, 12962},
-	{9561, 12966, 12966},
-	{6671, 12972, 12973},
-	{12056, 12977, 12977},
-	{6380, 12981, 12981},
-	{12048, 12985, 12985},
-	{11961, 12989, 12993},
-	{3368, 12997, 12999},
-	{6634, 13004, 13004},
-	{6775, 13009, 13010},
-	{12136, 13014, 13019},
-	{10341, 13023, 13023},
-	{13002, 13027, 13027},
-	{10587, 13031, 13031},
-	{10307, 13035, 13035},
-	{12736, 13039, 13039},
-	{12744, 13043, 13044},
-	{6175, 13048, 13048},
-	{9702, 13053, 13054},
-	{662, 13059, 13061},
-	{12718, 13065, 13068},
-	{12893, 13072, 13075},
-	{8299, 13086, 13091},
-	{12604, 13095, 13096},
-	{12848, 13100, 13101},
-	{12749, 13105, 13105},
-	{12526, 13109, 13114},
-	{9173, 13122, 13122},
-	{12769, 13128, 13128},
-	{13038, 13132, 13132},
-	{12725, 13136, 13137},
-	{12639, 13146, 13146},
-	{9711, 13150, 13151},
-	{12137, 13155, 13155},
-	{13039, 13159, 13159},
-	{4681, 13163, 13164},
-	{12954, 13168, 13168},
-	{13158, 13175, 13176},
-	{13105, 13180, 13180},
-	{10754, 13184, 13184},
-	{13167, 13188, 13188},
-	{12658, 13192, 13192},
-	{4294, 13199, 13200},
-	{11682, 13204, 13205},
-	{11695, 13209, 13209},
-	{11076, 13214, 13214},
-	{12232, 13218, 13218},
-	{9399, 13223, 13224},
-	{12880, 13228, 13229},
-	{13048, 13234, 13234},
-	{9701, 13238, 13239},
-	{13209, 13243, 13243},
-	{3658, 13248, 13248},
-	{3698, 13252, 13254},
-	{12237, 13260, 13260},
-	{8872, 13266, 13266},
-	{12957, 13272, 13273},
-	{1393, 13281, 13281},
-	{2013, 13285, 13288},
-	{4244, 13296, 13299},
-	{9428, 13303, 13303},
-	{12702, 13307, 13307},
-	{13078, 13311, 13311},
-	{6071, 13315, 13315},
-	{3061, 13319, 13319},
-	{2051, 13324, 13324},
-	{11560, 13328, 13331},
-	{6584, 13336, 13336},
-	{8482, 13340, 13340},
-	{5331, 13344, 13344},
-	{4171, 13348, 13348},
-	{8501, 13352, 13352},
-	{9219, 13356, 13356},
-	{9473, 13360, 13363},
-	{12881, 13367, 13367},
-	{13065, 13371, 13375},
-	{2979, 13379, 13384},
-	{1518, 13388, 13388},
-	{11177, 13392, 13392},
-	{9457, 13398, 13398},
-	{12293, 13407, 13410},
-	{3697, 13414, 13417},
-	{10338, 13425, 13425},
-	{13367, 13429, 13429},
-	{11074, 13433, 13437},
-	{4201, 13441, 13443},
-	{1812, 13447, 13448},
-	{13360, 13452, 13456},
-	{13188, 13463, 13463},
-	{9732, 13470, 13470},
-	{11332, 13477, 13477},
-	{9918, 13487, 13487},
-	{6337, 13497, 13497},
-	{13429, 13501, 13501},
-	{11413, 13505, 13505},
-	{4685, 13512, 13513},
-	{13136, 13517, 13519},
-	{7416, 13528, 13530},
-	{12929, 13534, 13534},
-	{11110, 13539, 13539},
-	{11521, 13543, 13543},
-	{12825, 13553, 13553},
-	{13447, 13557, 13558},
-	{12299, 13562, 13563},
-	{9003, 13570, 13570},
-	{12500, 13577, 13577},
-	{13501, 13581, 13581},
-	{9392, 13586, 13586},
-	{12454, 13590, 13590},
-	{6189, 13595, 13595},
-	{13053, 13599, 13599},
-	{11881, 13604, 13604},
-	{13159, 13608, 13608},
-	{4894, 13612, 13612},
-	{13221, 13621, 13621},
-	{8950, 13625, 13625},
-	{13533, 13629, 13629},
-	{9633, 13633, 13633},
-	{7892, 13637, 13639},
-	{13581, 13643, 13643},
-	{13616, 13647, 13649},
-	{12794, 13653, 13654},
-	{8919, 13659, 13659},
-	{9674, 13663, 13663},
-	{13577, 13668, 13668},
-	{12966, 13672, 13672},
-	{12659, 13676, 13683},
-	{6124, 13688, 13688},
-	{9225, 13693, 13695},
-	{11833, 13702, 13702},
-	{12904, 13709, 13717},
-	{13647, 13721, 13722},
-	{11687, 13726, 13727},
-	{12434, 13731, 13732},
-	{12689, 13736, 13742},
-	{13168, 13746, 13746},
-	{6151, 13751, 13752},
-	{11821, 13756, 13757},
-	{6467, 13764, 13764},
-	{5730, 13769, 13769},
-	{5136, 13780, 13780},
-	{724, 13784, 13785},
-	{13517, 13789, 13791},
-	{640, 13795, 13796},
-	{7721, 13800, 13802},
-	{11121, 13806, 13807},
-	{5791, 13811, 13815},
-	{12894, 13819, 13819},
-	{11100, 13824, 13824},
-	{7011, 13830, 13830},
-	{7129, 13834, 13837},
-	{13833, 13841, 13841},
-	{11276, 13847, 13847},
-	{13621, 13853, 13853},
-	{13589, 13862, 13863},
-	{12989, 13867, 13867},
-	{12789, 13871, 13871},
-	{1239, 13875, 13875},
-	{4675, 13879, 13881},
-	{4686, 13885, 13885},
-	{707, 13889, 13889},
-	{5449, 13897, 13898},
-	{13867, 13902, 13903},
-	{10613, 13908, 13908},
-	{13789, 13912, 13914},
-	{4451, 13918, 13919},
-	{9200, 13924, 13924},
-	{2011, 13930, 13930},
-	{11433, 13934, 13936},
-	{4695, 13942, 13943},
-	{9435, 13948, 13951},
-	{13688, 13955, 13957},
-	{11694, 13961, 13962},
-	{5712, 13966, 13966},
-	{5991, 13970, 13972},
-	{13477, 13976, 13976},
-	{10213, 13987, 13987},
-	{11839, 13991, 13993},
-	{12272, 13997, 13997},
-	{6206, 14001, 14001},
-	{13179, 14006, 14007},
-	{2939, 14011, 14011},
-	{12972, 14016, 14017},
-	{13918, 14021, 14022},
-	{7436, 14026, 14027},
-	{7678, 14032, 14034},
-	{13586, 14040, 14040},
-	{13347, 14044, 14044},
-	{13109, 14048, 14051},
-	{9244, 14055, 14057},
-	{13315, 14061, 14061},
-	{13276, 14067, 14067},
-	{11435, 14073, 14074},
-	{13853, 14078, 14078},
-	{13452, 14082, 14082},
-	{14044, 14087, 14087},
-	{4440, 14091, 14095},
-	{4479, 14100, 14103},
-	{9395, 14107, 14109},
-	{6834, 14119, 14119},
-	{10458, 14123, 14124},
-	{1429, 14129, 14129},
-	{8443, 14135, 14135},
-	{10365, 14140, 14140},
-	{5267, 14145, 14145},
-	{11834, 14151, 14153},
+	{571, 627, 627},
+	{220, 644, 645},
+	{99, 649, 649},
+	{536, 653, 656},
+	{643, 671, 673},
+	{676, 732, 733},
+	{732, 751, 752},
+	{67, 768, 772},
+	{93, 780, 780},
+	{199, 788, 788},
+	{487, 792, 796},
+	{699, 826, 826},
+	{698, 838, 838},
+	{697, 899, 901},
+	{847, 911, 912},
+	{37, 923, 923},
+	{833, 928, 928},
+	{69, 941, 943},
+	{323, 948, 948},
+	{671, 955, 957},
+	{920, 973, 974},
+	{935, 979, 983},
+	{750, 997, 999},
+	{841, 1014, 1014},
+	{928, 1053, 1053},
+	{854, 1057, 1060},
+	{755, 1072, 1072},
+	{838, 1094, 1097},
+	{1022, 1106, 1106},
+	{1085, 1114, 1114},
+	{955, 1128, 1130},
+	{814, 1134, 1135},
+	{1063, 1145, 1147},
+	{918, 1161, 1162},
+	{815, 1195, 1196},
+	{1128, 1207, 1209},
+	{1170, 1225, 1225},
+	{897, 1236, 1242},
+	{193, 1255, 1262},
+	{644, 1266, 1267},
+	{784, 1274, 1282},
+	{227, 1287, 1289},
+	{1161, 1294, 1295},
+	{923, 1299, 1299},
+	{1195, 1303, 1303},
+	{718, 1334, 1339},
+	{805, 1350, 1350},
+	{874, 1357, 1357},
+	{1318, 1362, 1362},
+	{994, 1372, 1373},
+	{90, 1387, 1387},
+	{1053, 1399, 1400},
+	{1094, 1417, 1417},
+	{1250, 1445, 1445},
+	{1285, 1449, 1453},
+	{806, 1457, 1461},
+	{895, 1472, 1472},
+	{1236, 1481, 1488},
+	{1266, 1495, 1496},
+	{921, 1508, 1509},
+	{940, 1522, 1522},
+	{1541, 1558, 1559},
+	{788, 1582, 1582},
+	{1298, 1590, 1590},
+	{1361, 1594, 1595},
+	{910, 1599, 1601},
+	{720, 1605, 1605},
+	{1399, 1615, 1616},
+	{736, 1629, 1629},
+	{1078, 1634, 1638},
+	{677, 1645, 1645},
+	{757, 1650, 1655},
+	{1294, 1659, 1663},
+	{1119, 1677, 1684},
+	{995, 1688, 1688},
+	{1357, 1695, 1696},
+	{1169, 1700, 1721},
+	{808, 1725, 1727},
+	{1390, 1732, 1732},
+	{1513, 1736, 1736},
+	{1315, 1740, 1740},
+	{685, 1748, 1750},
+	{899, 1754, 1760},
+	{1598, 1764, 1767},
+	{1386, 1782, 1783},
+	{1465, 1787, 1787},
+	{1014, 1791, 1791},
+	{1724, 1800, 1805},
+	{1166, 1811, 1811},
+	{1659, 1823, 1824},
+	{1218, 1829, 1843},
+	{695, 1847, 1850},
+	{1175, 1855, 1857},
+	{860, 1876, 1878},
+	{1799, 1892, 1892},
+	{1319, 1896, 1896},
+	{1691, 1900, 1900},
+	{1378, 1904, 1904},
+	{1495, 1912, 1912},
+	{1588, 1917, 1921},
+	{679, 1925, 1928},
+	{1398, 1935, 1936},
+	{1551, 1941, 1942},
+	{1612, 1946, 1950},
+	{1814, 1959, 1959},
+	{1853, 1965, 1966},
+	{1307, 1983, 1986},
+	{1695, 1990, 1991},
+	{905, 1995, 1995},
+	{1057, 1999, 2002},
+	{1431, 2006, 2007},
+	{848, 2018, 2018},
+	{1064, 2022, 2023},
+	{1151, 2027, 2027},
+	{1071, 2050, 2050},
+	{1478, 2057, 2057},
+	{1911, 2065, 2066},
+	{1306, 2070, 2074},
+	{2035, 2085, 2085},
+	{1188, 2100, 2100},
+	{11, 2117, 2118},
+	{1725, 2122, 2126},
+	{991, 2130, 2130},
+	{1786, 2139, 2141},
+	{737, 2153, 2154},
+	{1481, 2161, 2164},
+	{1990, 2173, 2173},
+	{2057, 2185, 2185},
+	{1881, 2200, 2200},
+	{2171, 2205, 2207},
+	{1412, 2215, 2216},
+	{2210, 2220, 2220},
+	{799, 2230, 2230},
+	{2103, 2234, 2234},
+	{2195, 2238, 2240},
+	{1935, 2244, 2245},
+	{2220, 2249, 2249},
+	{726, 2256, 2256},
+	{2188, 2262, 2266},
+	{2215, 2270, 2272},
+	{2122, 2276, 2278},
+	{1110, 2282, 2283},
+	{1369, 2287, 2287},
+	{724, 2294, 2294},
+	{1626, 2300, 2300},
+	{2138, 2306, 2309},
+	{709, 2313, 2316},
+	{1558, 2327, 2327},
+	{2109, 2333, 2333},
+	{2173, 2354, 2354},
+	{2152, 2362, 2367},
+	{2065, 2371, 2373},
+	{1692, 2377, 2380},
+	{819, 2384, 2386},
+	{2270, 2393, 2395},
+	{1787, 2399, 2400},
+	{1989, 2405, 2405},
+	{1225, 2414, 2414},
+	{2330, 2418, 2418},
+	{986, 2424, 2425},
+	{1899, 2429, 2431},
+	{1070, 2436, 2440},
+	{1038, 2450, 2450},
+	{1365, 2457, 2457},
+	{1983, 2461, 2462},
+	{1025, 2469, 2469},
+	{2354, 2476, 2476},
+	{2457, 2482, 2482},
+	{5, 2493, 2494},
+	{2234, 2498, 2498},
+	{2352, 2514, 2516},
+	{2353, 2539, 2540},
+	{1594, 2544, 2546},
+	{2113, 2550, 2551},
+	{2303, 2556, 2557},
+	{2429, 2561, 2563},
+	{2512, 2568, 2568},
+	{1739, 2572, 2572},
+	{1396, 2583, 2587},
+	{1854, 2593, 2593},
+	{2345, 2601, 2602},
+	{2536, 2606, 2612},
+	{2176, 2617, 2633},
+	{2421, 2637, 2637},
+	{1645, 2641, 2641},
+	{800, 2645, 2647},
+	{804, 2654, 2661},
+	{687, 2665, 2665},
+	{1668, 2669, 2669},
+	{1065, 2673, 2673},
+	{2027, 2677, 2677},
+	{2312, 2685, 2691},
+	{2371, 2695, 2697},
+	{2453, 2701, 2702},
+	{2479, 2711, 2711},
+	{2399, 2715, 2715},
+	{1018, 2720, 2723},
+	{1457, 2727, 2727},
+	{2376, 2732, 2732},
+	{1387, 2744, 2744},
+	{2641, 2748, 2748},
+	{2476, 2755, 2755},
+	{2460, 2761, 2765},
+	{2006, 2769, 2769},
+	{2773, 2774, 2809},
+	{2769, 2818, 2818},
+	{134, 2835, 2835},
+	{472, 2847, 2850},
+	{206, 2856, 2856},
+	{1072, 2860, 2863},
+	{801, 2867, 2868},
+	{787, 2875, 2883},
+	{2560, 2897, 2901},
+	{2744, 2909, 2913},
+	{2211, 2919, 2919},
+	{2150, 2927, 2927},
+	{2598, 2931, 2931},
+	{2761, 2936, 2938},
+	{1312, 2942, 2943},
+	{997, 2948, 2950},
+	{2637, 2957, 2961},
+	{2872, 2971, 2975},
+	{1687, 2983, 2984},
+	{2755, 2994, 2994},
+	{1644, 3000, 3001},
+	{1634, 3005, 3008},
+	{2555, 3012, 3014},
+	{2947, 3018, 3032},
+	{1649, 3036, 3051},
+	{691, 3055, 3055},
+	{2714, 3059, 3061},
+	{2498, 3069, 3069},
+	{3012, 3074, 3076},
+	{2543, 3087, 3089},
+	{2983, 3097, 3098},
+	{1011, 3111, 3111},
+	{1552, 3115, 3115},
+	{1427, 3124, 3124},
+	{1331, 3133, 3134},
+	{1012, 3138, 3140},
+	{2194, 3148, 3148},
+	{2561, 3152, 3155},
+	{3054, 3159, 3161},
+	{3065, 3169, 3173},
+	{2346, 3177, 3177},
+	{2606, 3181, 3185},
+	{2994, 3204, 3206},
+	{1329, 3210, 3211},
+	{1797, 3215, 3215},
+	{12, 3221, 3221},
+	{1013, 3227, 3228},
+	{3168, 3233, 3238},
+	{3194, 3247, 3247},
+	{3097, 3256, 3257},
+	{1219, 3265, 3271},
+	{1753, 3275, 3277},
+	{1550, 3282, 3292},
+	{1182, 3296, 3303},
+	{2818, 3307, 3307},
+	{2774, 3311, 3346},
+	{2812, 3350, 3356},
+	{2829, 3367, 3367},
+	{2835, 3373, 3387},
+	{2860, 3393, 3395},
+	{2971, 3405, 3409},
+	{1433, 3413, 3414},
+	{3405, 3424, 3428},
+	{2957, 3432, 3432},
+	{2889, 3455, 3460},
+	{1213, 3472, 3474},
+	{947, 3478, 3479},
+	{2747, 3490, 3491},
+	{3036, 3495, 3497},
+	{2873, 3501, 3504},
+	{2979, 3508, 3509},
+	{684, 3514, 3516},
+	{275, 3524, 3525},
+	{3221, 3529, 3529},
+	{2748, 3533, 3533},
+	{2708, 3546, 3546},
+	{1104, 3550, 3550},
+	{766, 3554, 3556},
+	{1672, 3560, 3561},
+	{1155, 3565, 3568},
+	{3417, 3572, 3572},
+	{2393, 3581, 3583},
+	{3533, 3587, 3587},
+	{762, 3591, 3591},
+	{820, 3604, 3605},
+	{3436, 3609, 3615},
+	{2497, 3624, 3625},
+	{3454, 3630, 3633},
+	{2276, 3642, 3644},
+	{823, 3649, 3649},
+	{648, 3660, 3662},
+	{2049, 3666, 3669},
+	{3111, 3680, 3680},
+	{2048, 3698, 3702},
+	{2313, 3706, 3708},
+	{2060, 3717, 3717},
+	{2695, 3722, 3724},
+	{1114, 3733, 3733},
+	{1385, 3738, 3738},
+	{3477, 3744, 3748},
+	{3512, 3753, 3753},
+	{2859, 3764, 3764},
+	{3210, 3773, 3774},
+	{1334, 3778, 3780},
+	{3103, 3785, 3785},
+	{3018, 3789, 3792},
+	{3432, 3802, 3802},
+	{3587, 3806, 3806},
+	{2148, 3819, 3819},
+	{1581, 3827, 3829},
+	{3485, 3833, 3838},
+	{2727, 3845, 3845},
+	{1303, 3849, 3849},
+	{2287, 3853, 3855},
+	{2133, 3859, 3862},
+	{3806, 3866, 3866},
+	{3827, 3878, 3880},
+	{3845, 3884, 3884},
+	{810, 3888, 3888},
+	{3866, 3892, 3892},
+	{3537, 3896, 3898},
+	{2905, 3903, 3907},
+	{3666, 3911, 3913},
+	{3455, 3920, 3924},
+	{3310, 3930, 3934},
+	{3311, 3939, 3942},
+	{3938, 3946, 3967},
+	{2340, 3977, 3977},
+	{3542, 3983, 3983},
+	{1629, 3992, 3992},
+	{3733, 3998, 3999},
+	{3816, 4003, 4007},
+	{2017, 4018, 4019},
+	{883, 4027, 4029},
+	{1178, 4033, 4033},
+	{3977, 4039, 4039},
+	{3069, 4044, 4045},
+	{3802, 4049, 4053},
+	{3875, 4061, 4066},
+	{1628, 4070, 4071},
+	{1113, 4075, 4076},
+	{1975, 4081, 4081},
+	{2414, 4087, 4087},
+	{4012, 4096, 4096},
+	{4017, 4102, 4104},
+	{2169, 4112, 4112},
+	{3998, 4123, 4124},
+	{2909, 4130, 4130},
+	{4032, 4136, 4136},
+	{4016, 4140, 4145},
+	{3565, 4154, 4157},
+	{3892, 4161, 4161},
+	{3878, 4168, 4169},
+	{3928, 4173, 4215},
+	{144, 4238, 4239},
+	{4243, 4244, 4244},
+	{3307, 4255, 4255},
+	{1971, 4261, 4268},
+	{3393, 4272, 4274},
+	{3591, 4278, 4278},
+	{1962, 4282, 4282},
+	{1688, 4286, 4286},
+	{3911, 4298, 4300},
+	{780, 4304, 4305},
+	{2842, 4309, 4309},
+	{4048, 4314, 4315},
+	{3770, 4321, 4321},
+	{2244, 4331, 4331},
+	{3148, 4336, 4336},
+	{1548, 4340, 4340},
+	{3209, 4345, 4351},
+	{768, 4355, 4355},
+	{1903, 4362, 4362},
+	{2212, 4366, 4366},
+	{1494, 4378, 4380},
+	{1183, 4385, 4391},
+	{3778, 4403, 4405},
+	{3642, 4409, 4411},
+	{2593, 4419, 4419},
+	{4160, 4430, 4431},
+	{3204, 4441, 4441},
+	{2875, 4450, 4451},
+	{1265, 4455, 4457},
+	{3927, 4466, 4466},
+	{416, 4479, 4480},
+	{4474, 4489, 4490},
+	{4135, 4502, 4504},
+	{4314, 4511, 4518},
+	{1870, 4529, 4529},
+	{3188, 4534, 4535},
+	{777, 4541, 4542},
+	{2370, 4549, 4552},
+	{1795, 4556, 4558},
+	{1529, 4577, 4577},
+	{4298, 4581, 4584},
+	{4336, 4596, 4596},
+	{1423, 4602, 4602},
+	{1004, 4608, 4608},
+	{4580, 4615, 4615},
+	{4003, 4619, 4623},
+	{4593, 4627, 4628},
+	{2680, 4644, 4644},
+	{2259, 4650, 4650},
+	{2544, 4654, 4655},
+	{4320, 4660, 4661},
+	{4511, 4672, 4673},
+	{4545, 4677, 4680},
+	{4570, 4689, 4696},
+	{2505, 4700, 4700},
+	{4605, 4706, 4712},
+	{3243, 4717, 4722},
+	{4581, 4726, 4734},
+	{3852, 4747, 4748},
+	{4653, 4756, 4758},
+	{4409, 4762, 4764},
+	{3165, 4774, 4774},
+	{2100, 4780, 4780},
+	{3722, 4784, 4786},
+	{4756, 4798, 4811},
+	{4422, 4815, 4815},
+	{3124, 4819, 4819},
+	{714, 4825, 4827},
+	{4699, 4832, 4832},
+	{4725, 4836, 4839},
+	{4588, 4844, 4845},
+	{1469, 4849, 4849},
+	{4743, 4853, 4863},
+	{4836, 4869, 4869},
+	{2682, 4873, 4873},
+	{4774, 4877, 4877},
+	{4738, 4881, 4882},
+	{4784, 4886, 4892},
+	{2759, 4896, 4896},
+	{4795, 4900, 4900},
+	{4378, 4905, 4905},
+	{1050, 4909, 4912},
+	{4634, 4917, 4918},
+	{4654, 4922, 4923},
+	{1542, 4930, 4930},
+	{4658, 4934, 4937},
+	{4762, 4941, 4943},
+	{4751, 4949, 4950},
+	{4286, 4961, 4961},
+	{1377, 4965, 4965},
+	{4587, 4971, 4973},
+	{2575, 4977, 4978},
+	{4922, 4982, 4983},
+	{4941, 4987, 4992},
+	{4790, 4996, 5000},
+	{4070, 5004, 5005},
+	{4538, 5009, 5012},
+	{4659, 5016, 5018},
+	{4926, 5024, 5034},
+	{3884, 5038, 5042},
+	{3853, 5046, 5048},
+	{4752, 5053, 5053},
+	{4954, 5057, 5057},
+	{4877, 5063, 5063},
+	{4977, 5067, 5067},
+	{2418, 5071, 5071},
+	{4968, 5075, 5075},
+	{681, 5079, 5080},
+	{5074, 5086, 5087},
+	{5016, 5091, 5092},
+	{2196, 5096, 5097},
+	{1782, 5107, 5108},
+	{5061, 5112, 5113},
+	{5096, 5117, 5118},
+	{1563, 5127, 5128},
+	{4872, 5134, 5135},
+	{1324, 5139, 5139},
+	{5111, 5144, 5148},
+	{4987, 5152, 5154},
+	{5075, 5158, 5175},
+	{4685, 5181, 5181},
+	{4961, 5185, 5185},
+	{1564, 5192, 5192},
+	{2982, 5198, 5199},
+	{917, 5203, 5203},
+	{4419, 5208, 5208},
+	{4507, 5213, 5213},
+	{5083, 5217, 5217},
+	{5091, 5221, 5222},
+	{3373, 5226, 5226},
+	{4475, 5231, 5231},
+	{4496, 5238, 5239},
+	{1255, 5243, 5244},
+	{3680, 5254, 5256},
+	{5157, 5260, 5261},
+	{4508, 5265, 5274},
+	{4946, 5279, 5279},
+	{1860, 5285, 5285},
+	{889, 5289, 5289},
+	{785, 5293, 5297},
+	{2290, 5303, 5303},
+	{2931, 5310, 5310},
+	{5021, 5316, 5316},
+	{2571, 5323, 5323},
+	{5071, 5327, 5327},
+	{5084, 5331, 5333},
+	{4614, 5342, 5343},
+	{4899, 5347, 5347},
+	{4441, 5351, 5351},
+	{5327, 5355, 5358},
+	{5063, 5362, 5362},
+	{3974, 5367, 5367},
+	{5316, 5382, 5382},
+	{2528, 5389, 5389},
+	{1391, 5393, 5393},
+	{2582, 5397, 5401},
+	{3074, 5405, 5407},
+	{4010, 5412, 5412},
+	{5382, 5420, 5420},
+	{5243, 5429, 5442},
+	{5265, 5447, 5447},
+	{5278, 5451, 5475},
+	{5319, 5479, 5483},
+	{1158, 5488, 5488},
+	{5423, 5494, 5496},
+	{5355, 5500, 5503},
+	{5283, 5507, 5509},
+	{5340, 5513, 5515},
+	{3841, 5530, 5530},
+	{1069, 5535, 5537},
+	{4970, 5541, 5544},
+	{5386, 5548, 5550},
+	{2916, 5556, 5563},
+	{4023, 5570, 5570},
+	{1215, 5576, 5576},
+	{4665, 5580, 5581},
+	{4402, 5585, 5586},
+	{5446, 5592, 5593},
+	{5330, 5597, 5597},
+	{5221, 5601, 5602},
+	{5300, 5606, 5608},
+	{4626, 5612, 5614},
+	{3660, 5618, 5618},
+	{2405, 5623, 5623},
+	{3486, 5628, 5633},
+	{3143, 5645, 5645},
+	{5606, 5650, 5650},
+	{5158, 5654, 5654},
+	{5378, 5658, 5658},
+	{4057, 5663, 5663},
+	{5107, 5670, 5670},
+	{4886, 5674, 5676},
+	{5654, 5680, 5680},
+	{5307, 5684, 5687},
+	{2449, 5691, 5691},
+	{5331, 5695, 5696},
+	{3215, 5700, 5700},
+	{5447, 5704, 5704},
+	{5650, 5708, 5708},
+	{4965, 5712, 5715},
+	{102, 5722, 5723},
+	{2753, 5733, 5735},
+	{5695, 5739, 5744},
+	{2182, 5748, 5748},
+	{4903, 5753, 5753},
+	{5507, 5757, 5759},
+	{5347, 5763, 5778},
+	{5548, 5782, 5784},
+	{5392, 5788, 5798},
+	{2304, 5803, 5803},
+	{4643, 5810, 5810},
+	{5703, 5815, 5817},
+	{4355, 5821, 5821},
+	{5429, 5825, 5826},
+	{3624, 5830, 5831},
+	{5711, 5836, 5836},
+	{5580, 5840, 5844},
+	{1909, 5848, 5848},
+	{4933, 5853, 5857},
+	{5100, 5863, 5870},
+	{4904, 5875, 5876},
+	{4529, 5883, 5883},
+	{3220, 5892, 5893},
+	{1533, 5897, 5897},
+	{4780, 5904, 5904},
+	{3101, 5908, 5909},
+	{5627, 5914, 5920},
+	{4166, 5926, 5929},
+	{5596, 5933, 5934},
+	{5680, 5938, 5938},
+	{4849, 5942, 5942},
+	{5739, 5948, 5949},
+	{5533, 5961, 5961},
+	{849, 5972, 5972},
+	{3752, 5989, 5990},
+	{2158, 5996, 5996},
+	{4982, 6000, 6001},
+	{5601, 6005, 6007},
+	{5101, 6014, 6021},
+	{4726, 6025, 6025},
+	{5720, 6036, 6039},
+	{4534, 6045, 6046},
+	{5763, 6050, 6050},
+	{5914, 6057, 6063},
+	{1492, 6067, 6067},
+	{2160, 6075, 6078},
+	{4619, 6083, 6083},
+	{893, 6092, 6093},
+	{5948, 6097, 6097},
+	{2556, 6105, 6106},
+	{1615, 6110, 6110},
+	{1156, 6114, 6120},
+	{5699, 6128, 6128},
+	{2710, 6132, 6133},
+	{4446, 6138, 6138},
+	{5815, 6143, 6148},
+	{1254, 6152, 6161},
+	{2357, 6167, 6168},
+	{2144, 6172, 6176},
+	{2159, 6184, 6184},
+	{5810, 6188, 6190},
+	{4011, 6195, 6195},
+	{6070, 6199, 6199},
+	{6005, 6203, 6206},
+	{4683, 6211, 6213},
+	{4466, 6221, 6222},
+	{5230, 6226, 6231},
+	{5238, 6235, 6239},
+	{5250, 6246, 6253},
+	{5704, 6257, 6257},
+	{5451, 6261, 6286},
+	{181, 6293, 6293},
+	{5314, 6297, 6305},
+	{5788, 6314, 6316},
+	{5938, 6320, 6320},
+	{4844, 6324, 6325},
+	{5782, 6329, 6332},
+	{5628, 6336, 6337},
+	{4873, 6341, 6342},
+	{6110, 6346, 6346},
+	{6328, 6350, 6354},
+	{1036, 6358, 6359},
+	{6128, 6364, 6364},
+	{4740, 6373, 6373},
+	{2282, 6377, 6377},
+	{5405, 6386, 6388},
+	{6257, 6392, 6392},
+	{4123, 6396, 6397},
+	{5487, 6401, 6410},
+	{6290, 6414, 6415},
+	{3844, 6423, 6424},
+	{3888, 6428, 6428},
+	{1086, 6432, 6432},
+	{5320, 6436, 6439},
+	{6310, 6443, 6444},
+	{6401, 6448, 6448},
+	{5124, 6452, 6452},
+	{5424, 6456, 6457},
+	{5851, 6472, 6478},
+	{6050, 6482, 6482},
+	{5499, 6486, 6490},
+	{4900, 6498, 6500},
+	{5674, 6510, 6512},
+	{871, 6518, 6520},
+	{5748, 6528, 6528},
+	{6447, 6533, 6534},
+	{5820, 6538, 6539},
+	{6448, 6543, 6543},
+	{6199, 6547, 6547},
+	{6320, 6551, 6551},
+	{1882, 6555, 6555},
+	{6368, 6561, 6566},
+	{6097, 6570, 6570},
+	{6495, 6576, 6579},
+	{5821, 6583, 6583},
+	{6507, 6587, 6587},
+	{4454, 6596, 6596},
+	{2324, 6601, 6601},
+	{6547, 6608, 6608},
+	{5712, 6612, 6612},
+	{5575, 6618, 6619},
+	{6414, 6623, 6624},
+	{6296, 6629, 6629},
+	{4134, 6633, 6634},
+	{6561, 6640, 6644},
+	{4555, 6649, 6652},
+	{4671, 6659, 6660},
+	{5592, 6664, 6666},
+	{5152, 6670, 6672},
+	{6599, 6676, 6676},
+	{5521, 6680, 6691},
+	{6432, 6695, 6695},
+	{6623, 6699, 6705},
+	{2601, 6712, 6712},
+	{5117, 6723, 6724},
+	{6524, 6730, 6733},
+	{5351, 6737, 6737},
+	{6573, 6741, 6741},
+	{6392, 6745, 6746},
+	{6592, 6750, 6751},
+	{4650, 6760, 6761},
+	{5302, 6765, 6765},
+	{6615, 6770, 6783},
+	{3732, 6787, 6789},
+	{6709, 6793, 6793},
+	{5306, 6797, 6797},
+	{6243, 6801, 6802},
+	{5226, 6808, 6816},
+	{4497, 6821, 6821},
+	{1436, 6825, 6825},
+	{1790, 6833, 6834},
+	{5525, 6838, 6843},
+	{5279, 6847, 6849},
+	{6828, 6855, 6857},
+	{5038, 6861, 6865},
+	{6741, 6869, 6869},
+	{4627, 6873, 6873},
+	{4037, 6878, 6880},
+	{10, 6885, 6887},
+	{6730, 6894, 6894},
+	{5528, 6898, 6898},
+	{6744, 6903, 6903},
+	{5839, 6907, 6907},
+	{2350, 6911, 6911},
+	{2269, 6915, 6918},
+	{6869, 6922, 6922},
+	{6035, 6929, 6930},
+	{1604, 6938, 6939},
+	{6922, 6943, 6943},
+	{6699, 6947, 6950},
+	{6737, 6954, 6954},
+	{1775, 6958, 6959},
+	{5309, 6963, 6964},
+	{6954, 6968, 6968},
+	{6369, 6972, 6976},
+	{3789, 6980, 6983},
+	{2327, 6990, 6990},
+	{6837, 6995, 7001},
+	{4485, 7006, 7013},
+	{6820, 7017, 7031},
+	{6291, 7036, 7036},
+	{5691, 7041, 7042},
+	{7034, 7047, 7047},
+	{5310, 7051, 7051},
+	{1502, 7056, 7056},
+	{4797, 7061, 7061},
+	{6855, 7066, 7068},
+	{6669, 7072, 7075},
+	{6943, 7079, 7079},
+	{6528, 7083, 7083},
+	{4036, 7087, 7090},
+	{6884, 7094, 7100},
+	{6946, 7104, 7108},
+	{6297, 7112, 7114},
+	{5684, 7118, 7121},
+	{6903, 7127, 7135},
+	{3580, 7141, 7147},
+	{6926, 7152, 7182},
+	{7117, 7186, 7190},
+	{6968, 7194, 7217},
+	{6838, 7222, 7227},
+	{7005, 7231, 7240},
+	{6235, 7244, 7245},
+	{6825, 7249, 7249},
+	{4594, 7254, 7254},
+	{6569, 7258, 7258},
+	{7222, 7262, 7267},
+	{7047, 7272, 7272},
+	{6801, 7276, 7276},
+	{7056, 7280, 7280},
+	{6583, 7284, 7284},
+	{5825, 7288, 7294},
+	{6787, 7298, 7300},
+	{7079, 7304, 7304},
+	{7253, 7308, 7313},
+	{6891, 7317, 7317},
+	{6829, 7321, 7322},
+	{7257, 7326, 7363},
+	{7231, 7367, 7377},
+	{2854, 7381, 7381},
+	{7249, 7385, 7385},
+	{6203, 7389, 7391},
+	{6363, 7395, 7397},
+	{6745, 7401, 7402},
+	{6695, 7406, 7406},
+	{5208, 7410, 7411},
+	{6679, 7415, 7416},
+	{7288, 7420, 7421},
+	{5248, 7425, 7425},
+	{6422, 7429, 7429},
+	{5206, 7434, 7436},
+	{2255, 7441, 7442},
+	{2145, 7452, 7452},
+	{7283, 7458, 7459},
+	{4830, 7469, 7472},
+	{6000, 7476, 7477},
+	{7395, 7481, 7492},
+	{2715, 7496, 7496},
+	{6542, 7500, 7502},
+	{7420, 7506, 7513},
+	{4981, 7517, 7517},
+	{2243, 7522, 7524},
+	{916, 7528, 7529},
+	{5207, 7533, 7534},
+	{1271, 7538, 7539},
+	{2654, 7544, 7544},
+	{7451, 7553, 7561},
+	{7464, 7569, 7571},
+	{3992, 7577, 7577},
+	{3114, 7581, 7581},
+	{7389, 7589, 7591},
+	{7433, 7595, 7598},
+	{7448, 7602, 7608},
+	{1772, 7612, 7612},
+	{4152, 7616, 7616},
+	{3247, 7621, 7624},
+	{963, 7629, 7630},
+	{4895, 7640, 7640},
+	{6164, 7646, 7646},
+	{4339, 7663, 7664},
+	{3244, 7668, 7672},
+	{7304, 7676, 7676},
+	{7401, 7680, 7681},
+	{6670, 7685, 7688},
+	{6195, 7692, 7693},
+	{7505, 7699, 7705},
+	{5252, 7709, 7710},
+	{6193, 7715, 7718},
+	{1916, 7724, 7724},
+	{4868, 7729, 7731},
+	{1176, 7736, 7736},
+	{5700, 7740, 7740},
+	{5757, 7744, 7746},
+	{6345, 7750, 7752},
+	{3132, 7756, 7759},
+	{4312, 7763, 7763},
+	{7685, 7767, 7769},
+	{6907, 7774, 7774},
+	{5584, 7779, 7780},
+	{6025, 7784, 7784},
+	{4435, 7791, 7798},
+	{6807, 7809, 7817},
+	{6234, 7823, 7825},
+	{7385, 7829, 7829},
+	{1286, 7833, 7836},
+	{7258, 7840, 7840},
+	{7602, 7844, 7850},
+	{7388, 7854, 7856},
+	{7528, 7860, 7866},
+	{640, 7874, 7875},
+	{7844, 7879, 7886},
+	{4700, 7890, 7890},
+	{7440, 7894, 7896},
+	{4831, 7900, 7902},
+	{4556, 7906, 7908},
+	{7547, 7914, 7924},
+	{7589, 7928, 7929},
+	{7914, 7935, 7945},
+	{7284, 7949, 7949},
+	{7538, 7953, 7957},
+	{4635, 7964, 7964},
+	{1994, 7968, 7970},
+	{7406, 7974, 7976},
+	{2409, 7983, 7983},
+	{7542, 7989, 7989},
+	{7112, 7993, 7993},
+	{5259, 7997, 7999},
+	{1287, 8004, 8006},
+	{7911, 8010, 8011},
+	{7449, 8015, 8021},
+	{7928, 8025, 8027},
+	{1476, 8042, 8044},
+	{7784, 8048, 8050},
+	{4434, 8054, 8062},
+	{7802, 8066, 8074},
+	{7367, 8087, 8088},
+	{4494, 8094, 8097},
+	{7829, 8101, 8101},
+	{7321, 8105, 8111},
+	{7035, 8115, 8121},
+	{7949, 8125, 8125},
+	{7506, 8129, 8130},
+	{5830, 8134, 8135},
+	{8047, 8144, 8144},
+	{5362, 8148, 8148},
+	{8125, 8152, 8152},
+	{7676, 8156, 8156},
+	{6324, 8160, 8161},
+	{6606, 8173, 8173},
+	{7064, 8177, 8182},
+	{6993, 8186, 8199},
+	{8092, 8203, 8204},
+	{7244, 8208, 8213},
+	{8105, 8217, 8218},
+	{8185, 8222, 8222},
+	{8115, 8226, 8232},
+	{4164, 8238, 8239},
+	{6608, 8244, 8244},
+	{8176, 8248, 8277},
+	{8208, 8281, 8282},
+	{7997, 8287, 8289},
+	{7118, 8293, 8303},
+	{7103, 8308, 8308},
+	{6436, 8312, 8315},
+	{3523, 8321, 8321},
+	{6442, 8327, 8329},
+	{3391, 8333, 8334},
+	{6986, 8339, 8344},
+	{7221, 8348, 8354},
+	{5989, 8358, 8360},
+	{4418, 8364, 8365},
+	{8307, 8369, 8370},
+	{7051, 8375, 8375},
+	{4027, 8379, 8380},
+	{8333, 8384, 8387},
+	{6873, 8391, 8392},
+	{4154, 8396, 8399},
+	{6878, 8403, 8428},
+	{8087, 8432, 8438},
+	{7017, 8442, 8443},
+	{8129, 8447, 8453},
+	{6486, 8457, 8461},
+	{8248, 8465, 8465},
+	{6349, 8473, 8478},
+	{5393, 8482, 8483},
+	{8465, 8487, 8487},
+	{30, 8495, 8495},
+	{4642, 8499, 8500},
+	{6768, 8505, 8505},
+	{7061, 8513, 8514},
+	{7151, 8518, 8528},
+	{6648, 8532, 8532},
+	{2093, 8539, 8539},
+	{3392, 8544, 8544},
+	{6980, 8548, 8551},
+	{8217, 8555, 8563},
+	{8375, 8567, 8567},
+	{7041, 8571, 8571},
+	{5008, 8576, 8576},
+	{4796, 8580, 8582},
+	{4271, 8586, 8586},
+	{7320, 8591, 8593},
+	{8222, 8597, 8597},
+	{7262, 8601, 8606},
+	{8432, 8610, 8615},
+	{8442, 8619, 8620},
+	{8101, 8624, 8624},
+	{7308, 8628, 8628},
+	{8597, 8632, 8641},
+	{8498, 8645, 8645},
+	{927, 8650, 8651},
+	{5979, 8661, 8661},
+	{5381, 8665, 8666},
+	{2184, 8675, 8675},
+	{5342, 8680, 8681},
+	{1527, 8686, 8687},
+	{4168, 8694, 8694},
+	{8332, 8698, 8702},
+	{8628, 8706, 8710},
+	{8447, 8714, 8720},
+	{8610, 8724, 8724},
+	{5530, 8730, 8730},
+	{6472, 8734, 8734},
+	{7476, 8738, 8739},
+	{7756, 8743, 8743},
+	{8570, 8749, 8753},
+	{2706, 8757, 8759},
+	{5875, 8763, 8764},
+	{8147, 8769, 8770},
+	{6526, 8775, 8776},
+	{8694, 8780, 8780},
+	{3431, 8784, 8785},
+	{7787, 8789, 8789},
+	{5526, 8794, 8796},
+	{6902, 8800, 8801},
+	{8756, 8811, 8818},
+	{7735, 8822, 8823},
+	{5523, 8827, 8828},
+	{5668, 8833, 8833},
+	{2237, 8839, 8839},
+	{8152, 8843, 8846},
+	{6633, 8852, 8853},
+	{6152, 8858, 8865},
+	{8762, 8869, 8870},
+	{6216, 8876, 8878},
+	{8632, 8882, 8892},
+	{2436, 8896, 8897},
+	{5541, 8901, 8904},
+	{8293, 8908, 8911},
+	{7194, 8915, 8915},
+	{5658, 8919, 8919},
+	{5045, 8923, 8927},
+	{7549, 8932, 8932},
+	{1623, 8936, 8941},
+	{6471, 8946, 8947},
+	{8487, 8951, 8951},
+	{8714, 8955, 8961},
+	{8574, 8965, 8965},
+	{2701, 8969, 8970},
+	{5500, 8974, 8977},
+	{8481, 8984, 8986},
+	{5416, 8991, 8991},
+	{8950, 8996, 8996},
+	{8706, 9001, 9005},
+	{8601, 9009, 9014},
+	{8882, 9018, 9018},
+	{8951, 9022, 9022},
+	{1521, 9026, 9026},
+	{8025, 9030, 9031},
+	{8645, 9035, 9035},
+	{8384, 9039, 9042},
+	{9001, 9046, 9050},
+	{3189, 9054, 9054},
+	{8955, 9058, 9065},
+	{1043, 9078, 9079},
+	{8974, 9083, 9095},
+	{6496, 9099, 9100},
+	{8995, 9104, 9105},
+	{9045, 9109, 9110},
+	{6395, 9114, 9116},
+	{9038, 9125, 9125},
+	{9029, 9135, 9138},
+	{1051, 9144, 9147},
+	{7833, 9151, 9155},
+	{9022, 9159, 9159},
+	{9046, 9163, 9163},
+	{2732, 9168, 9170},
+	{7750, 9174, 9180},
+	{8747, 9184, 9186},
+	{7663, 9192, 9193},
+	{9159, 9197, 9197},
+	{8730, 9207, 9209},
+	{4429, 9223, 9223},
+	{8536, 9227, 9227},
+	{1231, 9237, 9237},
+	{8965, 9244, 9244},
+	{5840, 9248, 9254},
+	{4058, 9263, 9270},
+	{3214, 9288, 9289},
+	{6346, 9293, 9293},
+	{6114, 9297, 9298},
+	{9104, 9302, 9302},
+	{4818, 9331, 9332},
+	{8513, 9336, 9337},
+	{6971, 9341, 9346},
+	{8779, 9357, 9357},
+	{8989, 9363, 9367},
+	{8843, 9371, 9373},
+	{9035, 9381, 9382},
+	{3648, 9386, 9386},
+	{6988, 9390, 9403},
+	{8869, 9407, 9407},
+	{7767, 9411, 9413},
+	{6341, 9417, 9417},
+	{2293, 9424, 9424},
+	{9360, 9428, 9428},
+	{8048, 9432, 9435},
+	{8981, 9439, 9439},
+	{6336, 9443, 9444},
+	{9431, 9449, 9453},
+	{8391, 9457, 9458},
+	{9380, 9463, 9464},
+	{6947, 9468, 9471},
+	{7993, 9475, 9475},
+	{7185, 9479, 9484},
+	{5848, 9488, 9488},
+	{9371, 9492, 9492},
+	{7628, 9498, 9500},
+	{8757, 9504, 9504},
+	{9410, 9508, 9508},
+	{9293, 9512, 9512},
+	{5138, 9516, 9516},
+	{9420, 9521, 9521},
+	{4416, 9525, 9528},
+	{4825, 9534, 9536},
+	{9057, 9540, 9540},
+	{7276, 9544, 9546},
+	{5491, 9550, 9550},
+	{9058, 9554, 9560},
+	{8321, 9569, 9569},
+	{6357, 9573, 9575},
+	{9385, 9579, 9579},
+	{6972, 9583, 9587},
+	{7996, 9591, 9594},
+	{8990, 9598, 9599},
+	{9442, 9603, 9605},
+	{9579, 9609, 9609},
+	{9389, 9613, 9628},
+	{8789, 9632, 9632},
+	{7152, 9636, 9646},
+	{9491, 9652, 9653},
+	{2493, 9658, 9659},
+	{2456, 9663, 9664},
+	{8509, 9672, 9675},
+	{6510, 9682, 9684},
+	{2533, 9688, 9688},
+	{6632, 9696, 9698},
+	{4460, 9709, 9711},
+	{9302, 9715, 9718},
+	{9609, 9722, 9722},
+	{4824, 9728, 9731},
+	{9553, 9735, 9735},
+	{9544, 9739, 9742},
+	{9492, 9746, 9746},
+	{9554, 9750, 9756},
+	{9525, 9761, 9764},
+	{7789, 9769, 9769},
+	{2136, 9773, 9777},
+	{3848, 9782, 9783},
+	{9432, 9787, 9790},
+	{8165, 9794, 9795},
+	{9590, 9799, 9803},
+	{8555, 9807, 9812},
+	{9009, 9816, 9822},
+	{9656, 9829, 9833},
+	{4101, 9841, 9841},
+	{6382, 9846, 9846},
+	{9721, 9850, 9850},
+	{9296, 9854, 9856},
+	{9573, 9860, 9866},
+	{9636, 9870, 9883},
+	{9722, 9887, 9887},
+	{9163, 9891, 9891},
+	{9799, 9895, 9895},
+	{9816, 9899, 9906},
+	{767, 9912, 9913},
+	{8287, 9918, 9923},
+	{6293, 9927, 9930},
+	{9726, 9934, 9934},
+	{6876, 9939, 9940},
+	{5847, 9945, 9946},
+	{9829, 9951, 9955},
+	{9125, 9962, 9962},
+	{8542, 9967, 9972},
+	{9767, 9978, 9978},
+	{4165, 9982, 9982},
+	{8243, 9986, 9987},
+	{9682, 9993, 9995},
+	{4916, 10006, 10010},
+	{9456, 10016, 10018},
+	{9761, 10024, 10029},
+	{9886, 10033, 10034},
+	{9468, 10038, 10044},
+	{3000, 10052, 10053},
+	{9807, 10057, 10062},
+	{8226, 10066, 10072},
+	{9650, 10077, 10080},
+	{9054, 10084, 10084},
+	{9891, 10088, 10089},
+	{6518, 10095, 10097},
+	{8238, 10101, 10117},
+	{7890, 10121, 10123},
+	{9894, 10128, 10138},
+	{3508, 10142, 10143},
+	{6377, 10147, 10147},
+	{3768, 10152, 10154},
+	{6764, 10158, 10160},
+	{8852, 10164, 10166},
+	{2867, 10172, 10174},
+	{4461, 10178, 10179},
+	{5889, 10184, 10185},
+	{9917, 10189, 10191},
+	{6797, 10195, 10195},
+	{8567, 10199, 10199},
+	{7125, 10203, 10206},
+	{9938, 10210, 10234},
+	{9967, 10240, 10246},
+	{8923, 10251, 10254},
+	{10157, 10258, 10258},
+	{8032, 10264, 10264},
+	{9887, 10268, 10276},
+	{9750, 10280, 10286},
+	{10258, 10290, 10290},
+	{10268, 10294, 10302},
+	{9899, 10306, 10311},
+	{9715, 10315, 10318},
+	{8539, 10322, 10322},
+	{10189, 10327, 10329},
+	{9135, 10333, 10335},
+	{8369, 10340, 10341},
+	{9119, 10347, 10347},
+	{10290, 10352, 10352},
+	{7900, 10357, 10359},
+	{3275, 10363, 10365},
+	{10294, 10369, 10369},
+	{5417, 10376, 10376},
+	{10120, 10381, 10381},
+	{9786, 10385, 10395},
+	{9826, 10399, 10399},
+	{8171, 10403, 10407},
+	{8402, 10421, 10425},
+	{9428, 10429, 10429},
+	{1863, 10434, 10435},
+	{3092, 10446, 10446},
+	{10000, 10450, 10450},
+	{9986, 10463, 10464},
+	{9632, 10468, 10484},
+	{10315, 10489, 10489},
+	{10332, 10493, 10493},
+	{8914, 10506, 10507},
+	{10369, 10511, 10512},
+	{1865, 10516, 10517},
+	{9204, 10521, 10526},
+	{9993, 10533, 10534},
+	{2568, 10539, 10539},
+	{10429, 10543, 10543},
+	{10489, 10549, 10549},
+	{10014, 10553, 10558},
+	{10024, 10563, 10573},
+	{9457, 10577, 10578},
+	{9591, 10582, 10585},
+	{8908, 10589, 10592},
+	{10203, 10596, 10598},
+	{10006, 10602, 10604},
+	{10209, 10613, 10613},
+	{4996, 10617, 10617},
+	{9846, 10621, 10622},
+	{6927, 10627, 10635},
+	{8664, 10639, 10639},
+	{8586, 10643, 10644},
+	{10576, 10648, 10650},
+	{10487, 10654, 10656},
+	{10553, 10660, 10664},
+	{10563, 10670, 10679},
+	{9000, 10683, 10688},
+	{10280, 10692, 10699},
+	{10582, 10703, 10706},
+	{9934, 10710, 10710},
+	{10547, 10714, 10716},
+	{7065, 10720, 10724},
+	{10691, 10730, 10738},
+	{872, 10742, 10744},
+	{10357, 10751, 10752},
+	{1323, 10756, 10756},
+	{10087, 10761, 10763},
+	{9381, 10769, 10769},
+	{9982, 10773, 10778},
+	{10533, 10784, 10785},
+	{9687, 10789, 10789},
+	{8324, 10799, 10799},
+	{8742, 10805, 10813},
+	{9039, 10817, 10824},
+	{5947, 10828, 10828},
+	{10306, 10832, 10837},
+	{10261, 10841, 10843},
+	{10350, 10847, 10850},
+	{7415, 10860, 10861},
+	{19, 10866, 10866},
+	{10188, 10872, 10875},
+	{10613, 10881, 10881},
+	{7869, 10886, 10886},
+	{3801, 10891, 10892},
+	{9099, 10896, 10897},
+	{8738, 10903, 10904},
+	{10322, 10908, 10908},
+	{6494, 10912, 10916},
+	{9772, 10921, 10921},
+	{8170, 10927, 10930},
+	{7456, 10940, 10943},
+	{10457, 10948, 10952},
+	{1405, 10959, 10959},
+	{6936, 10963, 10963},
+	{4549, 10970, 10975},
+	{4880, 10982, 10982},
+	{8763, 10986, 10987},
+	{4565, 10993, 10994},
+	{1310, 11000, 11000},
+	{4596, 11010, 11010},
+	{6427, 11015, 11016},
+	{7729, 11023, 11024},
+	{10978, 11029, 11030},
+	{10947, 11034, 11039},
+	{10577, 11043, 11043},
+	{10542, 11052, 11053},
+	{9443, 11057, 11058},
+	{10468, 11062, 11062},
+	{11028, 11066, 11068},
+	{10057, 11072, 11073},
+	{8881, 11077, 11078},
+	{8148, 11082, 11082},
+	{10816, 11089, 11093},
+	{11066, 11097, 11109},
+	{10511, 11113, 11113},
+	{9174, 11117, 11119},
+	{10345, 11125, 11125},
+	{4532, 11129, 11129},
+	{9918, 11133, 11134},
+	{8858, 11138, 11146},
+	{10703, 11150, 11153},
+	{9030, 11157, 11160},
+	{6481, 11165, 11166},
+	{10543, 11170, 11170},
+	{8580, 11177, 11178},
+	{10886, 11184, 11187},
+	{10210, 11191, 11197},
+	{2015, 11202, 11202},
+	{9312, 11211, 11218},
+	{9324, 11223, 11231},
+	{10884, 11235, 11235},
+	{8166, 11239, 11239},
+	{10502, 11243, 11250},
+	{11182, 11254, 11259},
+	{5366, 11263, 11264},
+	{3676, 11268, 11268},
+	{5649, 11273, 11274},
+	{11065, 11281, 11284},
+	{11034, 11288, 11293},
+	{7083, 11297, 11297},
+	{9550, 11302, 11302},
+	{9336, 11310, 11311},
+	{7071, 11316, 11316},
+	{11314, 11320, 11320},
+	{11113, 11324, 11324},
+	{11157, 11328, 11330},
+	{6482, 11334, 11334},
+	{7139, 11338, 11338},
+	{10152, 11345, 11345},
+	{3554, 11352, 11356},
+	{11190, 11364, 11364},
+	{11324, 11368, 11368},
+	{10710, 11372, 11372},
+	{8793, 11376, 11381},
+	{6358, 11385, 11386},
+	{11368, 11390, 11390},
+	{9704, 11394, 11396},
+	{7778, 11400, 11400},
+	{11149, 11404, 11408},
+	{10889, 11414, 11414},
+	{9781, 11421, 11422},
+	{10267, 11426, 11427},
+	{11328, 11431, 11433},
+	{5751, 11439, 11440},
+	{10817, 11444, 11447},
+	{10896, 11451, 11452},
+	{10751, 11456, 11457},
+	{10163, 11461, 11461},
+	{10504, 11466, 11473},
+	{8743, 11477, 11484},
+	{11150, 11488, 11491},
+	{10088, 11495, 11495},
+	{10828, 11499, 11509},
+	{11444, 11513, 11516},
+	{11495, 11520, 11520},
+	{11487, 11524, 11524},
+	{10692, 11528, 11535},
+	{9121, 11540, 11546},
+	{11389, 11558, 11564},
+	{10195, 11568, 11578},
+	{5004, 11582, 11583},
+	{5908, 11588, 11588},
+	{11170, 11592, 11592},
+	{11253, 11597, 11597},
+	{11372, 11601, 11601},
+	{3115, 11605, 11605},
+	{11390, 11609, 11609},
+	{10832, 11613, 11616},
+	{8800, 11620, 11621},
+	{11384, 11625, 11631},
+	{10171, 11635, 11637},
+	{11400, 11642, 11650},
+	{11451, 11654, 11655},
+	{11419, 11661, 11664},
+	{11608, 11668, 11669},
+	{11431, 11673, 11680},
+	{11550, 11688, 11690},
+	{11609, 11694, 11694},
+	{10588, 11702, 11708},
+	{6664, 11712, 11712},
+	{11461, 11719, 11753},
+	{11524, 11757, 11757},
+	{11613, 11761, 11764},
+	{10257, 11769, 11770},
+	{11694, 11774, 11774},
+	{11520, 11778, 11781},
+	{11138, 11785, 11793},
+	{11539, 11797, 11797},
+	{11512, 11802, 11802},
+	{10602, 11808, 11812},
+	{11773, 11816, 11824},
+	{11760, 11828, 11835},
+	{9083, 11839, 11850},
+	{11654, 11855, 11857},
+	{6612, 11861, 11862},
+	{11816, 11866, 11875},
+	{11528, 11879, 11897},
+	{10549, 11901, 11901},
+	{9108, 11905, 11907},
+	{11757, 11911, 11920},
+	{837, 11924, 11928},
+	{11855, 11932, 11934},
+	{8482, 11938, 11939},
+	{9439, 11943, 11943},
+	{1068, 11950, 11953},
+	{10789, 11958, 11958},
+	{4611, 11963, 11964},
+	{11861, 11968, 11992},
+	{11797, 11997, 12004},
+	{11719, 12009, 12009},
+	{11774, 12013, 12013},
+	{756, 12017, 12019},
+	{10178, 12023, 12024},
+	{9258, 12028, 12047},
+	{9534, 12060, 12063},
+	{12013, 12067, 12067},
+	{8160, 12071, 12072},
+	{10865, 12076, 12083},
+	{9311, 12091, 12099},
+	{11223, 12104, 12115},
+	{11932, 12119, 12120},
+	{2925, 12130, 12130},
+	{6906, 12135, 12136},
+	{8895, 12143, 12143},
+	{4684, 12147, 12148},
+	{11642, 12152, 12152},
+	{5573, 12160, 12164},
+	{10459, 12168, 12168},
+	{2108, 12172, 12172},
+	{187, 12179, 12180},
+	{2358, 12184, 12184},
+	{11796, 12188, 12188},
+	{1963, 12192, 12192},
+	{2538, 12199, 12200},
+	{6497, 12206, 12206},
+	{6723, 12210, 12211},
+	{7657, 12216, 12216},
+	{12204, 12224, 12231},
+	{1080, 12239, 12240},
+	{12224, 12244, 12246},
+	{11911, 12250, 12250},
+	{9912, 12266, 12268},
+	{7616, 12272, 12272},
+	{1956, 12279, 12279},
+	{1522, 12283, 12285},
+	{9504, 12289, 12290},
+	{11672, 12297, 12300},
+	{10621, 12304, 12304},
+	{11592, 12308, 12308},
+	{11385, 12312, 12313},
+	{3281, 12317, 12317},
+	{3487, 12321, 12321},
+	{9417, 12325, 12325},
+	{9613, 12335, 12337},
+	{10670, 12342, 12348},
+	{10589, 12352, 12357},
+	{10616, 12362, 12363},
+	{9326, 12369, 12375},
+	{5211, 12379, 12382},
+	{12304, 12386, 12395},
+	{1048, 12399, 12399},
+	{12335, 12403, 12405},
+	{12250, 12410, 12410},
+	{10084, 12414, 12414},
+	{11394, 12418, 12421},
+	{12126, 12425, 12429},
+	{9582, 12433, 12438},
+	{10784, 12445, 12447},
+	{9568, 12454, 12455},
+	{12308, 12459, 12459},
+	{9635, 12464, 12475},
+	{11513, 12479, 12482},
+	{12119, 12486, 12487},
+	{12066, 12494, 12495},
+	{12403, 12499, 12502},
+	{11687, 12506, 12513},
+	{12418, 12517, 12519},
+	{12352, 12523, 12528},
+	{11600, 12532, 12532},
+	{12450, 12539, 12539},
+	{12067, 12543, 12543},
+	{11477, 12547, 12565},
+	{11540, 12569, 12575},
+	{11202, 12580, 12581},
+	{10903, 12585, 12586},
+	{11601, 12590, 12590},
+	{12459, 12599, 12599},
+	{11839, 12603, 12605},
+	{11426, 12609, 12610},
+	{12486, 12614, 12616},
+	{9406, 12621, 12621},
+	{6897, 12625, 12628},
+	{12312, 12632, 12633},
+	{12445, 12638, 12640},
+	{1743, 12645, 12645},
+	{11551, 12649, 12650},
+	{12543, 12654, 12654},
+	{11635, 12658, 12660},
+	{12522, 12664, 12675},
+	{12539, 12683, 12712},
+	{11801, 12716, 12721},
+	{5803, 12725, 12725},
+	{716, 12730, 12732},
+	{8900, 12736, 12740},
+	{12076, 12744, 12746},
+	{5046, 12751, 12751},
+	{12735, 12755, 12755},
+	{11879, 12759, 12766},
+	{1609, 12770, 12770},
+	{10921, 12774, 12774},
+	{11420, 12778, 12778},
+	{12754, 12783, 12784},
+	{12177, 12788, 12788},
+	{12191, 12792, 12792},
+	{12139, 12798, 12802},
+	{11082, 12806, 12806},
+	{12152, 12810, 12810},
+	{10381, 12814, 12814},
+	{11239, 12820, 12821},
+	{2198, 12825, 12826},
+	{6123, 12832, 12832},
+	{10642, 12836, 12839},
+	{11117, 12843, 12844},
+	{12210, 12848, 12849},
+	{9688, 12853, 12853},
+	{12832, 12857, 12860},
+	{12147, 12864, 12870},
+	{12028, 12874, 12893},
+	{12052, 12898, 12898},
+	{8202, 12902, 12903},
+	{7243, 12907, 12909},
+	{8014, 12913, 12920},
+	{7680, 12924, 12931},
+	{11056, 12939, 12941},
+	{3817, 12946, 12949},
+	{9390, 12954, 12954},
+	{12249, 12958, 12960},
+	{12237, 12966, 12969},
+	{12638, 12973, 12975},
+	{12386, 12979, 12979},
+	{10626, 12984, 12997},
+	{6793, 13005, 13005},
+	{10625, 13009, 13025},
+	{12963, 13029, 13029},
+	{10038, 13033, 13036},
+	{12599, 13040, 13041},
+	{11568, 13046, 13050},
+	{13040, 13054, 13054},
+	{11238, 13058, 13060},
+	{5125, 13064, 13064},
+	{12425, 13068, 13080},
+	{9760, 13084, 13088},
+	{12729, 13092, 13093},
+	{9672, 13097, 13099},
+	{3675, 13104, 13104},
+	{6055, 13108, 13112},
+	{2681, 13119, 13120},
+	{12843, 13124, 13125},
+	{12952, 13129, 13132},
+	{13063, 13137, 13137},
+	{5861, 13141, 13141},
+	{10948, 13145, 13149},
+	{3080, 13153, 13153},
+	{12743, 13158, 13158},
+	{13123, 13163, 13166},
+	{11043, 13170, 13171},
+	{13136, 13175, 13176},
+	{12796, 13180, 13181},
+	{13107, 13185, 13185},
+	{13156, 13192, 13202},
+	{12954, 13207, 13208},
+	{8648, 13213, 13231},
+	{10403, 13235, 13235},
+	{12603, 13239, 13239},
+	{13029, 13243, 13243},
+	{6420, 13251, 13251},
+	{5801, 13261, 13265},
+	{8901, 13269, 13272},
+	{5139, 13276, 13278},
+	{8036, 13282, 13283},
+	{8041, 13288, 13288},
+	{10871, 13293, 13297},
+	{12923, 13301, 13303},
+	{10340, 13307, 13308},
+	{9926, 13312, 13316},
+	{9478, 13320, 13328},
+	{4571, 13334, 13339},
+	{8325, 13343, 13343},
+	{10933, 13349, 13349},
+	{9515, 13354, 13354},
+	{10979, 13358, 13358},
+	{7500, 13364, 13366},
+	{12820, 13371, 13375},
+	{13068, 13380, 13392},
+	{8724, 13397, 13397},
+	{8624, 13401, 13401},
+	{13206, 13405, 13406},
+	{12939, 13410, 13412},
+	{11015, 13417, 13418},
+	{12924, 13422, 13423},
+	{13103, 13427, 13431},
+	{13353, 13435, 13435},
+	{13415, 13440, 13443},
+	{10147, 13447, 13448},
+	{13180, 13452, 13457},
+	{12751, 13461, 13461},
+	{2291, 13465, 13465},
+	{12168, 13469, 13471},
+	{7744, 13475, 13477},
+	{6386, 13488, 13490},
+	{12755, 13494, 13494},
+	{13482, 13498, 13499},
+	{12410, 13503, 13503},
+	{13494, 13507, 13507},
+	{11376, 13511, 13516},
+	{13422, 13520, 13521},
+	{10742, 13525, 13527},
+	{1528, 13531, 13531},
+	{7517, 13537, 13537},
+	{4930, 13541, 13542},
+	{13507, 13546, 13546},
+	{13033, 13550, 13553},
+	{9475, 13557, 13568},
+	{12805, 13572, 13572},
+	{6188, 13576, 13578},
+	{12770, 13582, 13587},
+	{12648, 13593, 13594},
+	{13054, 13598, 13598},
+	{8856, 13603, 13613},
+	{1046, 13618, 13619},
+	{13348, 13623, 13624},
+	{13520, 13628, 13628},
+	{10142, 13632, 13633},
+	{13434, 13643, 13643},
+	{5488, 13648, 13648},
+	{649, 13652, 13652},
+	{11272, 13657, 13657},
+	{12873, 13663, 13663},
+	{4631, 13670, 13670},
+	{12578, 13674, 13677},
+	{12091, 13684, 13692},
+	{13581, 13699, 13699},
+	{13549, 13704, 13708},
+	{13598, 13712, 13712},
+	{13320, 13716, 13722},
+	{13712, 13726, 13726},
+	{13370, 13730, 13731},
+	{11352, 13735, 13737},
+	{13601, 13742, 13742},
+	{13497, 13746, 13769},
+	{12973, 13773, 13775},
+	{11235, 13784, 13784},
+	{10627, 13788, 13796},
+	{13152, 13800, 13800},
+	{12585, 13804, 13804},
+	{13730, 13809, 13810},
+	{13488, 13814, 13816},
+	{11815, 13821, 13821},
+	{11254, 13825, 13825},
+	{13788, 13829, 13838},
+	{13141, 13842, 13842},
+	{9658, 13846, 13848},
+	{11088, 13852, 13853},
+	{10239, 13860, 13866},
+	{13780, 13870, 13871},
+	{9981, 13877, 13883},
+	{11901, 13889, 13891},
+	{13405, 13895, 13897},
+	{12680, 13901, 13901},
+	{8363, 13905, 13910},
+	{13546, 13914, 13914},
+	{13498, 13918, 13927},
+	{13550, 13931, 13937},
+	{13628, 13941, 13941},
+	{13900, 13952, 13952},
+	{13841, 13957, 13957},
+	{3102, 13961, 13961},
+	{12835, 13966, 13970},
+	{12071, 13974, 13975},
+	{12810, 13979, 13980},
+	{11488, 13984, 13987},
+	{13809, 13991, 13992},
+	{13234, 13996, 13997},
+	{13886, 14001, 14002},
+	{11128, 14006, 14007},
+	{6013, 14012, 14013},
+	{8748, 14018, 14020},
+	{9678, 14024, 14024},
+	{12188, 14029, 14029},
+	{13914, 14033, 14033},
+	{11778, 14037, 14040},
+	{11828, 14044, 14051},
+	{12479, 14055, 14058},
+	{14037, 14062, 14066},
+	{12759, 14070, 14076},
+	{13889, 14080, 14081},
+	{13895, 14086, 14121},
+	{10199, 14125, 14131},
+	{13663, 14135, 14135},
+	{9261, 14139, 14155},
+	{12898, 14160, 14160},
+	{13667, 14164, 14167},
+	{12579, 14172, 14174},
+	{13681, 14178, 14189},
+	{13697, 14194, 14196},
+	{14033, 14200, 14200},
+	{13931, 14204, 14207},
+	{13726, 14211, 14211},
+	{9583, 14215, 14222},
+	{13243, 14226, 14226},
+	{13379, 14230, 14231},
+	{7481, 14237, 14239},
+	{10373, 14243, 14243},
+	{8644, 14248, 14249},
+	{1082, 14259, 14260},
+	{5814, 14265, 14265},
+	{10414, 14269, 14270},
+	{9512, 14274, 14274},
+	{9286, 14285, 14288},
+	{12593, 14295, 14295},
+	{13773, 14300, 14302},
+	{5874, 14308, 14308},
+	{13804, 14312, 14312},
+	{10412, 14317, 14320},
+	{12836, 14324, 14327},
+	{13974, 14331, 14337},
+	{14200, 14341, 14341},
+	{14086, 14345, 14347},
+	{4853, 14352, 14353},
+	{13961, 14357, 14357},
+	{14340, 14361, 14367},
+	{14005, 14374, 14374},
+	{13857, 14379, 14388},
+	{10532, 14397, 14399},
+	{14379, 14405, 14406},
+	{11957, 14411, 14413},
+	{10939, 14419, 14419},
+	{12547, 14423, 14429},
+	{13772, 14435, 14438},
+	{14341, 14442, 14447},
+	{14409, 14453, 14453},
+	{14442, 14457, 14457},
+	{13918, 14461, 14470},
+	{13511, 14474, 14483},
+	{14080, 14487, 14488},
+	{14344, 14492, 14495},
+	{13901, 14499, 14520},
+	{12609, 14524, 14525},
+	{14204, 14529, 14532},
+	{13557, 14536, 14536},
+	{6220, 14541, 14542},
+	{14139, 14546, 14562},
+	{14160, 14567, 14574},
+	{14172, 14579, 14596},
+	{14194, 14601, 14610},
+	{14125, 14614, 14614},
+	{14211, 14618, 14659},
+	{2011, 14663, 14663},
+	{14264, 14667, 14680},
+	{9951, 14687, 14691},
+	{12863, 14696, 14698},
+	{7980, 14702, 14703},
+	{14357, 14707, 14708},
+	{12266, 14714, 14715},
+	{10772, 14723, 14729},
+	{12806, 14733, 14733},
+	{2583, 14737, 14741},
+	{14006, 14745, 14745},
+	{12945, 14749, 14752},
+	{8679, 14756, 14758},
+	{12184, 14762, 14763},
+	{14423, 14767, 14773},
+	{14054, 14777, 14779},
+	{10411, 14785, 14789},
+	{11310, 14794, 14795},
+	{6455, 14799, 14800},
+	{5418, 14804, 14804},
+	{13821, 14808, 14808},
+	{11905, 14812, 14814},
+	{13502, 14818, 14819},
+	{11761, 14823, 14829},
+	{14745, 14833, 14833},
+	{14070, 14837, 14843},
+	{8173, 14850, 14850},
+	{2999, 14854, 14856},
+	{9201, 14860, 14867},
+	{14807, 14871, 14872},
+	{14812, 14878, 14881},
+	{13814, 14885, 14887},
+	{12644, 14891, 14892},
+	{14295, 14898, 14898},
+	{14457, 14902, 14902},
+	{14331, 14906, 14907},
+	{13170, 14911, 14911},
+	{14352, 14915, 14916},
+	{12649, 14920, 14921},
+	{12399, 14925, 14925},
+	{13349, 14929, 14929},
+	{13207, 14934, 14935},
+	{14372, 14939, 14941},
+	{14498, 14945, 14945},
+	{13860, 14949, 14955},
+	{14452, 14960, 14962},
+	{14792, 14970, 14970},
+	{14720, 14975, 14975},
+	{13858, 14984, 14984},
+	{5733, 14989, 14991},
+	{14982, 14995, 14995},
+	{14524, 14999, 15000},
+	{2347, 15004, 15004},
+	{4612, 15009, 15009},
+	{3225, 15013, 15013},
+	{12320, 15017, 15018},
+	{14975, 15022, 15022},
+	{13416, 15026, 15028},
+	{8140, 15034, 15034},
+	{15016, 15040, 15042},
+	{14299, 15046, 15051},
+	{14901, 15055, 15056},
+	{14933, 15060, 15061},
+	{14960, 15066, 15066},
+	{14999, 15070, 15071},
+	{14461, 15075, 15080},
+	{14666, 15084, 15084},
+	{14474, 15088, 15134},
+	{15055, 15138, 15138},
+	{13046, 15142, 15146},
+	{14536, 15150, 15176},
+	{14567, 15181, 15181},
+	{12725, 15185, 15185},
+	{13346, 15189, 15189},
+	{13268, 15193, 15197},
+	{5568, 15203, 15203},
+	{15192, 15207, 15207},
+	{15075, 15211, 15216},
+	{15207, 15220, 15220},
+	{13941, 15224, 15224},
+	{13091, 15228, 15230},
+	{13623, 15234, 15235},
+	{13362, 15239, 15243},
+	{10066, 15247, 15252},
+	{6452, 15257, 15257},
+	{14837, 15261, 15267},
+	{13576, 15271, 15281},
+	{12874, 15285, 15304},
+	{15181, 15309, 15309},
+	{14164, 15313, 15316},
+	{14579, 15321, 15326},
+	{12090, 15330, 15339},
+	{14601, 15344, 15346},
+	{15084, 15350, 15350},
+	{12523, 15354, 15357},
+	{14618, 15361, 15361},
+	{12788, 15365, 15365},
+	{6032, 15369, 15369},
+	{12127, 15373, 15378},
+	{4703, 15382, 15382},
+	{12140, 15386, 15387},
+	{4602, 15392, 15392},
+	{12856, 15396, 15398},
+	{13990, 15403, 15406},
+	{13213, 15412, 15416},
+	{13979, 15420, 15420},
+	{14300, 15424, 15426},
+	{10617, 15430, 15430},
+	{10094, 15435, 15435},
+	{12413, 15439, 15440},
+	{10900, 15447, 15450},
+	{10908, 15455, 15455},
+	{15220, 15459, 15459},
+	{14911, 15463, 15464},
+	{15026, 15468, 15470},
+	{14696, 15478, 15480},
+	{12414, 15484, 15484},
+	{14215, 15488, 15491},
+	{13009, 15496, 15508},
+	{15424, 15512, 15514},
+	{11334, 15518, 15519},
+	{11280, 15523, 15524},
+	{11345, 15528, 15529},
+	{15459, 15533, 15533},
+	{14243, 15537, 15539},
+	{14818, 15543, 15544},
+	{15533, 15548, 15548},
+	{14230, 15552, 15554},
+	{14832, 15561, 15562},
+	{9787, 15566, 15567},
+	{15443, 15573, 15575},
+	{13845, 15579, 15584},
+	{15430, 15588, 15588},
+	{15561, 15593, 15593},
+	{14453, 15601, 15608},
+	{14870, 15613, 15615},
+	{12275, 15619, 15619},
+	{14613, 15623, 15624},
+	{10596, 15628, 15630},
+	{1940, 15634, 15634},
+	{9773, 15638, 15638},
+	{2665, 15642, 15642},
+	{13638, 15646, 15646},
+	{6861, 15650, 15650},
+	{12781, 15654, 15657},
+	{15088, 15661, 15665},
+	{11712, 15669, 15669},
+	{5534, 15673, 15674},
+	{12864, 15678, 15684},
+	{15547, 15688, 15689},
+	{15365, 15693, 15693},
+	{7973, 15697, 15698},
+	{13144, 15702, 15710},
+	{15548, 15714, 15714},
+	{14906, 15718, 15719},
+	{15444, 15723, 15723},
+	{11456, 15727, 15729},
+	{12632, 15733, 15734},
+	{13602, 15738, 15738},
+	{8932, 15746, 15746},
+	{15598, 15752, 15753},
+	{14257, 15757, 15758},
+	{8379, 15762, 15763},
+	{10531, 15767, 15767},
+	{8403, 15771, 15775},
+	{10432, 15779, 15784},
+	{14285, 15791, 15794},
+	{3086, 15800, 15803},
+	{14925, 15807, 15807},
+	{14934, 15812, 15812},
+	{15065, 15816, 15817},
+	{15737, 15821, 15821},
+	{15210, 15825, 15831},
+	{15350, 15835, 15835},
+	{15661, 15839, 15843},
+	{15223, 15847, 15848},
+	{10450, 15855, 15855},
+	{10501, 15860, 15870},
+	{10515, 15879, 15879},
+	{12621, 15884, 15884},
+	{15593, 15890, 15890},
+	{15021, 15894, 15894},
+	{15512, 15898, 15900},
+	{14274, 15904, 15905},
+	{15566, 15909, 15909},
+	{3785, 15913, 15913},
+	{14995, 15917, 15917},
+	{15565, 15921, 15921},
+	{14762, 15925, 15926},
+	{14016, 15933, 15940},
+	{10264, 15948, 15948},
+	{15944, 15952, 15953},
+	{14847, 15962, 15966},
+	{15321, 15973, 15975},
+	{15917, 15979, 15980},
+	{8141, 15984, 15984},
+	{15714, 15988, 15988},
+	{15004, 15992, 16018},
+	{5180, 16023, 16024},
+	{15017, 16028, 16029},
+	{15046, 16033, 16036},
+	{14499, 16040, 16061},
+	{15987, 16065, 16066},
+	{15354, 16070, 16073},
+	{15628, 16077, 16081},
+	{13235, 16085, 16088},
+	{15835, 16093, 16093},
+	{13247, 16097, 16107},
+	{15929, 16112, 16112},
+	{7992, 16118, 16118},
+	{15988, 16122, 16122},
+	{15811, 16126, 16133},
+	{5185, 16137, 16137},
+	{6056, 16149, 16156},
+	{15723, 16160, 16160},
+	{13435, 16167, 16167},
+	{15692, 16173, 16175},
+	{1346, 16182, 16183},
+	{15641, 16187, 16187},
+	{13157, 16192, 16192},
+	{12813, 16197, 16197},
+	{5216, 16201, 16202},
+	{16170, 16206, 16206},
+	{15224, 16210, 16211},
+	{12979, 16215, 16215},
+	{13342, 16230, 16230},
+	{15070, 16236, 16237},
+	{16070, 16241, 16244},
+	{15361, 16248, 16248},
+	{15488, 16252, 16256},
+	{15184, 16265, 16273},
+	{10860, 16277, 16278},
+	{8780, 16286, 16287},
+	{15271, 16291, 16293},
+	{16206, 16297, 16297},
+	{14529, 16301, 16304},
+	{16248, 16308, 16308},
+	{13716, 16312, 16322},
+	{16252, 16326, 16330},
+	{13874, 16334, 16334},
+	{12773, 16338, 16349},
+	{14929, 16353, 16353},
+	{15697, 16361, 16362},
+	{13531, 16366, 16368},
+	{14833, 16373, 16373},
+	{15904, 16377, 16378},
+	{16173, 16386, 16388},
+	{13582, 16392, 16393},
+	{9488, 16399, 16399},
+	{15468, 16403, 16404},
+	{13905, 16409, 16411},
+	{3784, 16415, 16416},
+	{16297, 16420, 16420},
+	{16210, 16424, 16426},
+	{12936, 16430, 16430},
+	{8508, 16435, 16438},
+	{9602, 16443, 16446},
+	{1317, 16450, 16451},
+	{4739, 16456, 16461},
 }
diff --git a/snappy_test.go b/snappy_test.go
index d7c3ea6..d022948 100644
--- a/snappy_test.go
+++ b/snappy_test.go
@@ -502,7 +502,7 @@ func TestDecodeLengthOffset(t *testing.T) {
 }
 
 const (
-	goldenText       = "Mark.Twain-Tom.Sawyer.txt"
+	goldenText       = "Isaac.Newton-Opticks.txt"
 	goldenCompressed = goldenText + ".rawsnappy"
 )
 
@@ -642,7 +642,7 @@ func TestSameEncodingAsCppLongFiles(t *testing.T) {
 	}
 	if failed {
 		t.Errorf("was the snappytool program built against the C++ snappy library version " +
-			"d53de187 or later, commited on 2016-04-05? See " +
+			"d53de187 or later, committed on 2016-04-05? See " +
 			"https://github.com/google/snappy/commit/d53de18799418e113e44444252a39b12a0e4e0cc")
 	}
 }
@@ -1037,6 +1037,71 @@ func TestReaderReset(t *testing.T) {
 	}
 }
 
+func TestReaderReadByte(t *testing.T) {
+	// Test all 32 possible sub-sequences of these 5 input slices prefixed by
+	// their size encoded as a uvarint.
+	//
+	// Their lengths sum to 400,000, which is over 6 times the Writer ibuf
+	// capacity: 6 * maxBlockSize is 393,216.
+	inputs := [][]byte{
+		bytes.Repeat([]byte{'a'}, 40000),
+		bytes.Repeat([]byte{'b'}, 150000),
+		bytes.Repeat([]byte{'c'}, 60000),
+		bytes.Repeat([]byte{'d'}, 120000),
+		bytes.Repeat([]byte{'e'}, 30000),
+	}
+loop:
+	for i := 0; i < 1<<uint(len(inputs)); i++ {
+		var want []int
+		buf := new(bytes.Buffer)
+		w := NewBufferedWriter(buf)
+		p := make([]byte, binary.MaxVarintLen64)
+		for j, input := range inputs {
+			if i&(1<<uint(j)) == 0 {
+				continue
+			}
+			n := binary.PutUvarint(p, uint64(len(input)))
+			if _, err := w.Write(p[:n]); err != nil {
+				t.Errorf("i=%#02x: j=%d: Write Uvarint: %v", i, j, err)
+				continue loop
+			}
+			if _, err := w.Write(input); err != nil {
+				t.Errorf("i=%#02x: j=%d: Write: %v", i, j, err)
+				continue loop
+			}
+			want = append(want, j)
+		}
+		if err := w.Close(); err != nil {
+			t.Errorf("i=%#02x: Close: %v", i, err)
+			continue
+		}
+		r := NewReader(buf)
+		for _, j := range want {
+			size, err := binary.ReadUvarint(r)
+			if err != nil {
+				t.Errorf("i=%#02x: ReadUvarint: %v", i, err)
+				continue loop
+			}
+			if wantedSize := uint64(len(inputs[j])); size != wantedSize {
+				t.Errorf("i=%#02x: expected size %d, got %d", i, wantedSize, size)
+				continue loop
+			}
+			got := make([]byte, size)
+			if _, err := io.ReadFull(r, got); err != nil {
+				t.Errorf("i=%#02x: ReadFull: %v", i, err)
+				continue loop
+			}
+			if err := cmp(got, inputs[j]); err != nil {
+				t.Errorf("i=%#02x: %v", i, err)
+				continue
+			}
+		}
+		if _, err := r.ReadByte(); err != io.EOF {
+			t.Errorf("i=%#02x: expected size EOF, got %v", i, err)
+		}
+	}
+}
+
 func TestWriterReset(t *testing.T) {
 	gold := bytes.Repeat([]byte("Not all those who wander are lost;\n"), 10000)
 	const n = 20
diff --git a/testdata/Isaac.Newton-Opticks.txt b/testdata/Isaac.Newton-Opticks.txt
new file mode 100644
index 0000000..bdc2d9e
--- /dev/null
+++ b/testdata/Isaac.Newton-Opticks.txt
@@ -0,0 +1,400 @@
+Produced by Suzanne Lybarger, steve harris, Josephine
+Paolucci and the Online Distributed Proofreading Team at
+http://www.pgdp.net.
+
+
+
+
+
+
+OPTICKS:
+
+OR, A
+
+TREATISE
+
+OF THE
+
+_Reflections_, _Refractions_,
+_Inflections_ and _Colours_
+
+OF
+
+LIGHT.
+
+_The_ FOURTH EDITION, _corrected_.
+
+By Sir _ISAAC NEWTON_, Knt.
+
+LONDON:
+
+Printed for WILLIAM INNYS at the West-End of St. _Paul's_. MDCCXXX.
+
+TITLE PAGE OF THE 1730 EDITION
+
+
+
+
+SIR ISAAC NEWTON'S ADVERTISEMENTS
+
+
+
+
+Advertisement I
+
+
+_Part of the ensuing Discourse about Light was written at the Desire of
+some Gentlemen of the_ Royal-Society, _in the Year 1675, and then sent
+to their Secretary, and read at their Meetings, and the rest was added
+about twelve Years after to complete the Theory; except the third Book,
+and the last Proposition of the Second, which were since put together
+out of scatter'd Papers. To avoid being engaged in Disputes about these
+Matters, I have hitherto delayed the printing, and should still have
+delayed it, had not the Importunity of Friends prevailed upon me. If any
+other Papers writ on this Subject are got out of my Hands they are
+imperfect, and were perhaps written before I had tried all the
+Experiments here set down, and fully satisfied my self about the Laws of
+Refractions and Composition of Colours. I have here publish'd what I
+think proper to come abroad, wishing that it may not be translated into
+another Language without my Consent._
+
+_The Crowns of Colours, which sometimes appear about the Sun and Moon, I
+have endeavoured to give an Account of; but for want of sufficient
+Observations leave that Matter to be farther examined. The Subject of
+the Third Book I have also left imperfect, not having tried all the
+Experiments which I intended when I was about these Matters, nor
+repeated some of those which I did try, until I had satisfied my self
+about all their Circumstances. To communicate what I have tried, and
+leave the rest to others for farther Enquiry, is all my Design in
+publishing these Papers._
+
+_In a Letter written to Mr._ Leibnitz _in the year 1679, and published
+by Dr._ Wallis, _I mention'd a Method by which I had found some general
+Theorems about squaring Curvilinear Figures, or comparing them with the
+Conic Sections, or other the simplest Figures with which they may be
+compared. And some Years ago I lent out a Manuscript containing such
+Theorems, and having since met with some Things copied out of it, I have
+on this Occasion made it publick, prefixing to it an_ Introduction, _and
+subjoining a_ Scholium _concerning that Method. And I have joined with
+it another small Tract concerning the Curvilinear Figures of the Second
+Kind, which was also written many Years ago, and made known to some
+Friends, who have solicited the making it publick._
+
+                                        _I. N._
+
+April 1, 1704.
+
+
+Advertisement II
+
+_In this Second Edition of these Opticks I have omitted the Mathematical
+Tracts publish'd at the End of the former Edition, as not belonging to
+the Subject. And at the End of the Third Book I have added some
+Questions. And to shew that I do not take Gravity for an essential
+Property of Bodies, I have added one Question concerning its Cause,
+chusing to propose it by way of a Question, because I am not yet
+satisfied about it for want of Experiments._
+
+                                        _I. N._
+
+July 16, 1717.
+
+
+Advertisement to this Fourth Edition
+
+_This new Edition of Sir_ Isaac Newton's Opticks _is carefully printed
+from the Third Edition, as it was corrected by the Author's own Hand,
+and left before his Death with the Bookseller. Since Sir_ Isaac's
+Lectiones Opticæ, _which he publickly read in the University of_
+Cambridge _in the Years 1669, 1670, and 1671, are lately printed, it has
+been thought proper to make at the bottom of the Pages several Citations
+from thence, where may be found the Demonstrations, which the Author
+omitted in these_ Opticks.
+
+       *       *       *       *       *
+
+Transcriber's Note: There are several greek letters used in the
+descriptions of the illustrations. They are signified by [Greek:
+letter]. Square roots are noted by the letters sqrt before the equation.
+
+       *       *       *       *       *
+
+THE FIRST BOOK OF OPTICKS
+
+
+
+
+_PART I._
+
+
+My Design in this Book is not to explain the Properties of Light by
+Hypotheses, but to propose and prove them by Reason and Experiments: In
+order to which I shall premise the following Definitions and Axioms.
+
+
+
+
+_DEFINITIONS_
+
+
+DEFIN. I.
+
+_By the Rays of Light I understand its least Parts, and those as well
+Successive in the same Lines, as Contemporary in several Lines._ For it
+is manifest that Light consists of Parts, both Successive and
+Contemporary; because in the same place you may stop that which comes
+one moment, and let pass that which comes presently after; and in the
+same time you may stop it in any one place, and let it pass in any
+other. For that part of Light which is stopp'd cannot be the same with
+that which is let pass. The least Light or part of Light, which may be
+stopp'd alone without the rest of the Light, or propagated alone, or do
+or suffer any thing alone, which the rest of the Light doth not or
+suffers not, I call a Ray of Light.
+
+
+DEFIN. II.
+
+_Refrangibility of the Rays of Light, is their Disposition to be
+refracted or turned out of their Way in passing out of one transparent
+Body or Medium into another. And a greater or less Refrangibility of
+Rays, is their Disposition to be turned more or less out of their Way in
+like Incidences on the same Medium._ Mathematicians usually consider the
+Rays of Light to be Lines reaching from the luminous Body to the Body
+illuminated, and the refraction of those Rays to be the bending or
+breaking of those lines in their passing out of one Medium into another.
+And thus may Rays and Refractions be considered, if Light be propagated
+in an instant. But by an Argument taken from the Æquations of the times
+of the Eclipses of _Jupiter's Satellites_, it seems that Light is
+propagated in time, spending in its passage from the Sun to us about
+seven Minutes of time: And therefore I have chosen to define Rays and
+Refractions in such general terms as may agree to Light in both cases.
+
+
+DEFIN. III.
+
+_Reflexibility of Rays, is their Disposition to be reflected or turned
+back into the same Medium from any other Medium upon whose Surface they
+fall. And Rays are more or less reflexible, which are turned back more
+or less easily._ As if Light pass out of a Glass into Air, and by being
+inclined more and more to the common Surface of the Glass and Air,
+begins at length to be totally reflected by that Surface; those sorts of
+Rays which at like Incidences are reflected most copiously, or by
+inclining the Rays begin soonest to be totally reflected, are most
+reflexible.
+
+
+DEFIN. IV.
+
+_The Angle of Incidence is that Angle, which the Line described by the
+incident Ray contains with the Perpendicular to the reflecting or
+refracting Surface at the Point of Incidence._
+
+
+DEFIN. V.
+
+_The Angle of Reflexion or Refraction, is the Angle which the line
+described by the reflected or refracted Ray containeth with the
+Perpendicular to the reflecting or refracting Surface at the Point of
+Incidence._
+
+
+DEFIN. VI.
+
+_The Sines of Incidence, Reflexion, and Refraction, are the Sines of the
+Angles of Incidence, Reflexion, and Refraction._
+
+
+DEFIN. VII
+
+_The Light whose Rays are all alike Refrangible, I call Simple,
+Homogeneal and Similar; and that whose Rays are some more Refrangible
+than others, I call Compound, Heterogeneal and Dissimilar._ The former
+Light I call Homogeneal, not because I would affirm it so in all
+respects, but because the Rays which agree in Refrangibility, agree at
+least in all those their other Properties which I consider in the
+following Discourse.
+
+
+DEFIN. VIII.
+
+_The Colours of Homogeneal Lights, I call Primary, Homogeneal and
+Simple; and those of Heterogeneal Lights, Heterogeneal and Compound._
+For these are always compounded of the colours of Homogeneal Lights; as
+will appear in the following Discourse.
+
+
+
+
+_AXIOMS._
+
+
+AX. I.
+
+_The Angles of Reflexion and Refraction, lie in one and the same Plane
+with the Angle of Incidence._
+
+
+AX. II.
+
+_The Angle of Reflexion is equal to the Angle of Incidence._
+
+
+AX. III.
+
+_If the refracted Ray be returned directly back to the Point of
+Incidence, it shall be refracted into the Line before described by the
+incident Ray._
+
+
+AX. IV.
+
+_Refraction out of the rarer Medium into the denser, is made towards the
+Perpendicular; that is, so that the Angle of Refraction be less than the
+Angle of Incidence._
+
+
+AX. V.
+
+_The Sine of Incidence is either accurately or very nearly in a given
+Ratio to the Sine of Refraction._
+
+Whence if that Proportion be known in any one Inclination of the
+incident Ray, 'tis known in all the Inclinations, and thereby the
+Refraction in all cases of Incidence on the same refracting Body may be
+determined. Thus if the Refraction be made out of Air into Water, the
+Sine of Incidence of the red Light is to the Sine of its Refraction as 4
+to 3. If out of Air into Glass, the Sines are as 17 to 11. In Light of
+other Colours the Sines have other Proportions: but the difference is so
+little that it need seldom be considered.
+
+[Illustration: FIG. 1]
+
+Suppose therefore, that RS [in _Fig._ 1.] represents the Surface of
+stagnating Water, and that C is the point of Incidence in which any Ray
+coming in the Air from A in the Line AC is reflected or refracted, and I
+would know whither this Ray shall go after Reflexion or Refraction: I
+erect upon the Surface of the Water from the point of Incidence the
+Perpendicular CP and produce it downwards to Q, and conclude by the
+first Axiom, that the Ray after Reflexion and Refraction, shall be
+found somewhere in the Plane of the Angle of Incidence ACP produced. I
+let fall therefore upon the Perpendicular CP the Sine of Incidence AD;
+and if the reflected Ray be desired, I produce AD to B so that DB be
+equal to AD, and draw CB. For this Line CB shall be the reflected Ray;
+the Angle of Reflexion BCP and its Sine BD being equal to the Angle and
+Sine of Incidence, as they ought to be by the second Axiom, But if the
+refracted Ray be desired, I produce AD to H, so that DH may be to AD as
+the Sine of Refraction to the Sine of Incidence, that is, (if the Light
+be red) as 3 to 4; and about the Center C and in the Plane ACP with the
+Radius CA describing a Circle ABE, I draw a parallel to the
+Perpendicular CPQ, the Line HE cutting the Circumference in E, and
+joining CE, this Line CE shall be the Line of the refracted Ray. For if
+EF be let fall perpendicularly on the Line PQ, this Line EF shall be the
+Sine of Refraction of the Ray CE, the Angle of Refraction being ECQ; and
+this Sine EF is equal to DH, and consequently in Proportion to the Sine
+of Incidence AD as 3 to 4.
+
+In like manner, if there be a Prism of Glass (that is, a Glass bounded
+with two Equal and Parallel Triangular ends, and three plain and well
+polished Sides, which meet in three Parallel Lines running from the
+three Angles of one end to the three Angles of the other end) and if the
+Refraction of the Light in passing cross this Prism be desired: Let ACB
+[in _Fig._ 2.] represent a Plane cutting this Prism transversly to its
+three Parallel lines or edges there where the Light passeth through it,
+and let DE be the Ray incident upon the first side of the Prism AC where
+the Light goes into the Glass; and by putting the Proportion of the Sine
+of Incidence to the Sine of Refraction as 17 to 11 find EF the first
+refracted Ray. Then taking this Ray for the Incident Ray upon the second
+side of the Glass BC where the Light goes out, find the next refracted
+Ray FG by putting the Proportion of the Sine of Incidence to the Sine of
+Refraction as 11 to 17. For if the Sine of Incidence out of Air into
+Glass be to the Sine of Refraction as 17 to 11, the Sine of Incidence
+out of Glass into Air must on the contrary be to the Sine of Refraction
+as 11 to 17, by the third Axiom.
+
+[Illustration: FIG. 2.]
+
+Much after the same manner, if ACBD [in _Fig._ 3.] represent a Glass
+spherically convex on both sides (usually called a _Lens_, such as is a
+Burning-glass, or Spectacle-glass, or an Object-glass of a Telescope)
+and it be required to know how Light falling upon it from any lucid
+point Q shall be refracted, let QM represent a Ray falling upon any
+point M of its first spherical Surface ACB, and by erecting a
+Perpendicular to the Glass at the point M, find the first refracted Ray
+MN by the Proportion of the Sines 17 to 11. Let that Ray in going out of
+the Glass be incident upon N, and then find the second refracted Ray
+N_q_ by the Proportion of the Sines 11 to 17. And after the same manner
+may the Refraction be found when the Lens is convex on one side and
+plane or concave on the other, or concave on both sides.
+
+[Illustration: FIG. 3.]
+
+
+AX. VI.
+
+_Homogeneal Rays which flow from several Points of any Object, and fall
+perpendicularly or almost perpendicularly on any reflecting or
+refracting Plane or spherical Surface, shall afterwards diverge from so
+many other Points, or be parallel to so many other Lines, or converge to
+so many other Points, either accurately or without any sensible Error.
+And the same thing will happen, if the Rays be reflected or refracted
+successively by two or three or more Plane or Spherical Surfaces._
+
+The Point from which Rays diverge or to which they converge may be
+called their _Focus_. And the Focus of the incident Rays being given,
+that of the reflected or refracted ones may be found by finding the
+Refraction of any two Rays, as above; or more readily thus.
+
+_Cas._ 1. Let ACB [in _Fig._ 4.] be a reflecting or refracting Plane,
+and Q the Focus of the incident Rays, and Q_q_C a Perpendicular to that
+Plane. And if this Perpendicular be produced to _q_, so that _q_C be
+equal to QC, the Point _q_ shall be the Focus of the reflected Rays: Or
+if _q_C be taken on the same side of the Plane with QC, and in
+proportion to QC as the Sine of Incidence to the Sine of Refraction, the
+Point _q_ shall be the Focus of the refracted Rays.
+
+[Illustration: FIG. 4.]
+
+_Cas._ 2. Let ACB [in _Fig._ 5.] be the reflecting Surface of any Sphere
+whose Centre is E. Bisect any Radius thereof, (suppose EC) in T, and if
+in that Radius on the same side the Point T you take the Points Q and
+_q_, so that TQ, TE, and T_q_, be continual Proportionals, and the Point
+Q be the Focus of the incident Rays, the Point _q_ shall be the Focus of
+the reflected ones.
+
+[Illustration: FIG. 5.]
+
+_Cas._ 3. Let ACB [in _Fig._ 6.] be the refracting Surface of any Sphere
+whose Centre is E. In any Radius thereof EC produced both ways take ET
+and C_t_ equal to one another and severally in such Proportion to that
+Radius as the lesser of the Sines of Incidence and Refraction hath to
+the difference of those Sines. And then if in the same Line you find any
+two Points Q and _q_, so that TQ be to ET as E_t_ to _tq_, taking _tq_
+the contrary way from _t_ which TQ lieth from T, and if the Point Q be
+the Focus of any incident Rays, the Point _q_ shall be the Focus of the
+refracted ones.
+
+[Illustration: FIG. 6.]
+
+And by the same means the Focus of the Rays after two or more Reflexions
+or Refractions may be found.
+
+[Illustration: FIG. 7.]
+
+_Cas._ 4. Let ACBD [in _Fig._ 7.] be any refracting Lens, spherically
+Convex or Concave or Plane on either side, and let CD be its Axis (that
+is, the Line which cuts both its Surfaces perpendicularly, and passes
+through the Centres of the Spheres,) and in this Axis produced let F and
+_f_ be the Foci of the refracted Rays found as above, when the incident
+Rays on both sides the Lens are parallel to the same Axis; and upon the
+Diameter F_f_ bisected in E, describe a Circle. Suppose now that any
+Point Q be the Focus of any incident Rays. Draw QE cutting the said
+Circle in T and _t_, and therein take _tq_ in such proportion to _t_E as
+_t_E or TE hath to TQ. Let _tq_ lie the contrary way from _t_ which TQ
+doth from T, and _q_ shall be the Focus of the refracted Rays without
+any sensible Error, provided the Point Q be not so remote from the Axis,
+nor the Lens so broad as to make any of the Rays fall too obliquely on
+the refracting Surfaces.[A]
+
+And by the like Operations may the reflecting or refracting Surfaces be
+found when the two Foci are given, and thereby a Lens be formed, which
+shall make the Rays flow towards or from what Place you please.[B]
diff --git a/testdata/Isaac.Newton-Opticks.txt.rawsnappy b/testdata/Isaac.Newton-Opticks.txt.rawsnappy
new file mode 100644
index 0000000..ef02a1e
Binary files /dev/null and b/testdata/Isaac.Newton-Opticks.txt.rawsnappy differ
diff --git a/testdata/Mark.Twain-Tom.Sawyer.txt b/testdata/Mark.Twain-Tom.Sawyer.txt
deleted file mode 100644
index 86a1875..0000000
--- a/testdata/Mark.Twain-Tom.Sawyer.txt
+++ /dev/null
@@ -1,396 +0,0 @@
-Produced by David Widger. The previous edition was updated by Jose
-Menendez.
-
-
-
-
-
-                   THE ADVENTURES OF TOM SAWYER
-                                BY
-                            MARK TWAIN
-                     (Samuel Langhorne Clemens)
-
-
-
-
-                           P R E F A C E
-
-MOST of the adventures recorded in this book really occurred; one or
-two were experiences of my own, the rest those of boys who were
-schoolmates of mine. Huck Finn is drawn from life; Tom Sawyer also, but
-not from an individual--he is a combination of the characteristics of
-three boys whom I knew, and therefore belongs to the composite order of
-architecture.
-
-The odd superstitions touched upon were all prevalent among children
-and slaves in the West at the period of this story--that is to say,
-thirty or forty years ago.
-
-Although my book is intended mainly for the entertainment of boys and
-girls, I hope it will not be shunned by men and women on that account,
-for part of my plan has been to try to pleasantly remind adults of what
-they once were themselves, and of how they felt and thought and talked,
-and what queer enterprises they sometimes engaged in.
-
-                                                            THE AUTHOR.
-
-HARTFORD, 1876.
-
-
-
-                          T O M   S A W Y E R
-
-
-
-CHAPTER I
-
-"TOM!"
-
-No answer.
-
-"TOM!"
-
-No answer.
-
-"What's gone with that boy,  I wonder? You TOM!"
-
-No answer.
-
-The old lady pulled her spectacles down and looked over them about the
-room; then she put them up and looked out under them. She seldom or
-never looked THROUGH them for so small a thing as a boy; they were her
-state pair, the pride of her heart, and were built for "style," not
-service--she could have seen through a pair of stove-lids just as well.
-She looked perplexed for a moment, and then said, not fiercely, but
-still loud enough for the furniture to hear:
-
-"Well, I lay if I get hold of you I'll--"
-
-She did not finish, for by this time she was bending down and punching
-under the bed with the broom, and so she needed breath to punctuate the
-punches with. She resurrected nothing but the cat.
-
-"I never did see the beat of that boy!"
-
-She went to the open door and stood in it and looked out among the
-tomato vines and "jimpson" weeds that constituted the garden. No Tom.
-So she lifted up her voice at an angle calculated for distance and
-shouted:
-
-"Y-o-u-u TOM!"
-
-There was a slight noise behind her and she turned just in time to
-seize a small boy by the slack of his roundabout and arrest his flight.
-
-"There! I might 'a' thought of that closet. What you been doing in
-there?"
-
-"Nothing."
-
-"Nothing! Look at your hands. And look at your mouth. What IS that
-truck?"
-
-"I don't know, aunt."
-
-"Well, I know. It's jam--that's what it is. Forty times I've said if
-you didn't let that jam alone I'd skin you. Hand me that switch."
-
-The switch hovered in the air--the peril was desperate--
-
-"My! Look behind you, aunt!"
-
-The old lady whirled round, and snatched her skirts out of danger. The
-lad fled on the instant, scrambled up the high board-fence, and
-disappeared over it.
-
-His aunt Polly stood surprised a moment, and then broke into a gentle
-laugh.
-
-"Hang the boy, can't I never learn anything? Ain't he played me tricks
-enough like that for me to be looking out for him by this time? But old
-fools is the biggest fools there is. Can't learn an old dog new tricks,
-as the saying is. But my goodness, he never plays them alike, two days,
-and how is a body to know what's coming? He 'pears to know just how
-long he can torment me before I get my dander up, and he knows if he
-can make out to put me off for a minute or make me laugh, it's all down
-again and I can't hit him a lick. I ain't doing my duty by that boy,
-and that's the Lord's truth, goodness knows. Spare the rod and spile
-the child, as the Good Book says. I'm a laying up sin and suffering for
-us both, I know. He's full of the Old Scratch, but laws-a-me! he's my
-own dead sister's boy, poor thing, and I ain't got the heart to lash
-him, somehow. Every time I let him off, my conscience does hurt me so,
-and every time I hit him my old heart most breaks. Well-a-well, man
-that is born of woman is of few days and full of trouble, as the
-Scripture says, and I reckon it's so. He'll play hookey this evening, *
-and [* Southwestern for "afternoon"] I'll just be obleeged to make him
-work, to-morrow, to punish him. It's mighty hard to make him work
-Saturdays, when all the boys is having holiday, but he hates work more
-than he hates anything else, and I've GOT to do some of my duty by him,
-or I'll be the ruination of the child."
-
-Tom did play hookey, and he had a very good time. He got back home
-barely in season to help Jim, the small colored boy, saw next-day's
-wood and split the kindlings before supper--at least he was there in
-time to tell his adventures to Jim while Jim did three-fourths of the
-work. Tom's younger brother (or rather half-brother) Sid was already
-through with his part of the work (picking up chips), for he was a
-quiet boy, and had no adventurous, troublesome ways.
-
-While Tom was eating his supper, and stealing sugar as opportunity
-offered, Aunt Polly asked him questions that were full of guile, and
-very deep--for she wanted to trap him into damaging revealments. Like
-many other simple-hearted souls, it was her pet vanity to believe she
-was endowed with a talent for dark and mysterious diplomacy, and she
-loved to contemplate her most transparent devices as marvels of low
-cunning. Said she:
-
-"Tom, it was middling warm in school, warn't it?"
-
-"Yes'm."
-
-"Powerful warm, warn't it?"
-
-"Yes'm."
-
-"Didn't you want to go in a-swimming, Tom?"
-
-A bit of a scare shot through Tom--a touch of uncomfortable suspicion.
-He searched Aunt Polly's face, but it told him nothing. So he said:
-
-"No'm--well, not very much."
-
-The old lady reached out her hand and felt Tom's shirt, and said:
-
-"But you ain't too warm now, though." And it flattered her to reflect
-that she had discovered that the shirt was dry without anybody knowing
-that that was what she had in her mind. But in spite of her, Tom knew
-where the wind lay, now. So he forestalled what might be the next move:
-
-"Some of us pumped on our heads--mine's damp yet. See?"
-
-Aunt Polly was vexed to think she had overlooked that bit of
-circumstantial evidence, and missed a trick. Then she had a new
-inspiration:
-
-"Tom, you didn't have to undo your shirt collar where I sewed it, to
-pump on your head, did you? Unbutton your jacket!"
-
-The trouble vanished out of Tom's face. He opened his jacket. His
-shirt collar was securely sewed.
-
-"Bother! Well, go 'long with you. I'd made sure you'd played hookey
-and been a-swimming. But I forgive ye, Tom. I reckon you're a kind of a
-singed cat, as the saying is--better'n you look. THIS time."
-
-She was half sorry her sagacity had miscarried, and half glad that Tom
-had stumbled into obedient conduct for once.
-
-But Sidney said:
-
-"Well, now, if I didn't think you sewed his collar with white thread,
-but it's black."
-
-"Why, I did sew it with white! Tom!"
-
-But Tom did not wait for the rest. As he went out at the door he said:
-
-"Siddy, I'll lick you for that."
-
-In a safe place Tom examined two large needles which were thrust into
-the lapels of his jacket, and had thread bound about them--one needle
-carried white thread and the other black. He said:
-
-"She'd never noticed if it hadn't been for Sid. Confound it! sometimes
-she sews it with white, and sometimes she sews it with black. I wish to
-geeminy she'd stick to one or t'other--I can't keep the run of 'em. But
-I bet you I'll lam Sid for that. I'll learn him!"
-
-He was not the Model Boy of the village. He knew the model boy very
-well though--and loathed him.
-
-Within two minutes, or even less, he had forgotten all his troubles.
-Not because his troubles were one whit less heavy and bitter to him
-than a man's are to a man, but because a new and powerful interest bore
-them down and drove them out of his mind for the time--just as men's
-misfortunes are forgotten in the excitement of new enterprises. This
-new interest was a valued novelty in whistling, which he had just
-acquired from a negro, and he was suffering to practise it undisturbed.
-It consisted in a peculiar bird-like turn, a sort of liquid warble,
-produced by touching the tongue to the roof of the mouth at short
-intervals in the midst of the music--the reader probably remembers how
-to do it, if he has ever been a boy. Diligence and attention soon gave
-him the knack of it, and he strode down the street with his mouth full
-of harmony and his soul full of gratitude. He felt much as an
-astronomer feels who has discovered a new planet--no doubt, as far as
-strong, deep, unalloyed pleasure is concerned, the advantage was with
-the boy, not the astronomer.
-
-The summer evenings were long. It was not dark, yet. Presently Tom
-checked his whistle. A stranger was before him--a boy a shade larger
-than himself. A new-comer of any age or either sex was an impressive
-curiosity in the poor little shabby village of St. Petersburg. This boy
-was well dressed, too--well dressed on a week-day. This was simply
-astounding. His cap was a dainty thing, his close-buttoned blue cloth
-roundabout was new and natty, and so were his pantaloons. He had shoes
-on--and it was only Friday. He even wore a necktie, a bright bit of
-ribbon. He had a citified air about him that ate into Tom's vitals. The
-more Tom stared at the splendid marvel, the higher he turned up his
-nose at his finery and the shabbier and shabbier his own outfit seemed
-to him to grow. Neither boy spoke. If one moved, the other moved--but
-only sidewise, in a circle; they kept face to face and eye to eye all
-the time. Finally Tom said:
-
-"I can lick you!"
-
-"I'd like to see you try it."
-
-"Well, I can do it."
-
-"No you can't, either."
-
-"Yes I can."
-
-"No you can't."
-
-"I can."
-
-"You can't."
-
-"Can!"
-
-"Can't!"
-
-An uncomfortable pause. Then Tom said:
-
-"What's your name?"
-
-"'Tisn't any of your business, maybe."
-
-"Well I 'low I'll MAKE it my business."
-
-"Well why don't you?"
-
-"If you say much, I will."
-
-"Much--much--MUCH. There now."
-
-"Oh, you think you're mighty smart, DON'T you? I could lick you with
-one hand tied behind me, if I wanted to."
-
-"Well why don't you DO it? You SAY you can do it."
-
-"Well I WILL, if you fool with me."
-
-"Oh yes--I've seen whole families in the same fix."
-
-"Smarty! You think you're SOME, now, DON'T you? Oh, what a hat!"
-
-"You can lump that hat if you don't like it. I dare you to knock it
-off--and anybody that'll take a dare will suck eggs."
-
-"You're a liar!"
-
-"You're another."
-
-"You're a fighting liar and dasn't take it up."
-
-"Aw--take a walk!"
-
-"Say--if you give me much more of your sass I'll take and bounce a
-rock off'n your head."
-
-"Oh, of COURSE you will."
-
-"Well I WILL."
-
-"Well why don't you DO it then? What do you keep SAYING you will for?
-Why don't you DO it? It's because you're afraid."
-
-"I AIN'T afraid."
-
-"You are."
-
-"I ain't."
-
-"You are."
-
-Another pause, and more eying and sidling around each other. Presently
-they were shoulder to shoulder. Tom said:
-
-"Get away from here!"
-
-"Go away yourself!"
-
-"I won't."
-
-"I won't either."
-
-So they stood, each with a foot placed at an angle as a brace, and
-both shoving with might and main, and glowering at each other with
-hate. But neither could get an advantage. After struggling till both
-were hot and flushed, each relaxed his strain with watchful caution,
-and Tom said:
-
-"You're a coward and a pup. I'll tell my big brother on you, and he
-can thrash you with his little finger, and I'll make him do it, too."
-
-"What do I care for your big brother? I've got a brother that's bigger
-than he is--and what's more, he can throw him over that fence, too."
-[Both brothers were imaginary.]
-
-"That's a lie."
-
-"YOUR saying so don't make it so."
-
-Tom drew a line in the dust with his big toe, and said:
-
-"I dare you to step over that, and I'll lick you till you can't stand
-up. Anybody that'll take a dare will steal sheep."
-
-The new boy stepped over promptly, and said:
-
-"Now you said you'd do it, now let's see you do it."
-
-"Don't you crowd me now; you better look out."
-
-"Well, you SAID you'd do it--why don't you do it?"
-
-"By jingo! for two cents I WILL do it."
-
-The new boy took two broad coppers out of his pocket and held them out
-with derision. Tom struck them to the ground. In an instant both boys
-were rolling and tumbling in the dirt, gripped together like cats; and
-for the space of a minute they tugged and tore at each other's hair and
-clothes, punched and scratched each other's nose, and covered
-themselves with dust and glory. Presently the confusion took form, and
-through the fog of battle Tom appeared, seated astride the new boy, and
-pounding him with his fists. "Holler 'nuff!" said he.
-
-The boy only struggled to free himself. He was crying--mainly from rage.
-
-"Holler 'nuff!"--and the pounding went on.
-
-At last the stranger got out a smothered "'Nuff!" and Tom let him up
-and said:
-
-"Now that'll learn you. Better look out who you're fooling with next
-time."
-
-The new boy went off brushing the dust from his clothes, sobbing,
-snuffling, and occasionally looking back and shaking his head and
-threatening what he would do to Tom the "next time he caught him out."
-To which Tom responded with jeers, and started off in high feather, and
-as soon as his back was turned the new boy snatched up a stone, threw
-it and hit him between the shoulders and then turned tail and ran like
-an antelope. Tom chased the traitor home, and thus found out where he
-lived. He then held a position at the gate for some time, daring the
-enemy to come outside, but the enemy only made faces at him through the
-window and declined. At last the enemy's mother appeared, and called
-Tom a bad, vicious, vulgar child, and ordered him away. So he went
-away; but he said he "'lowed" to "lay" for that boy.
-
-He got home pretty late that night, and when he climbed cautiously in
-at the window, he uncovered an ambuscade, in the person of his aunt;
-and when she saw the state his clothes were in her resolution to turn
-his Saturday holiday into captivity at hard labor became adamantine in
-its firmness.
diff --git a/testdata/Mark.Twain-Tom.Sawyer.txt.rawsnappy b/testdata/Mark.Twain-Tom.Sawyer.txt.rawsnappy
deleted file mode 100644
index 9c56d98..0000000
Binary files a/testdata/Mark.Twain-Tom.Sawyer.txt.rawsnappy and /dev/null differ

Debdiff

[The following lists of changes regard files as different if they have different names, permissions or owners.]

Files in second set of .debs but not in first

-rw-r--r--  root/root   /usr/share/gocode/src/github.com/golang/snappy/testdata/Isaac.Newton-Opticks.txt
-rw-r--r--  root/root   /usr/share/gocode/src/github.com/golang/snappy/testdata/Isaac.Newton-Opticks.txt.rawsnappy

Files in first set of .debs but not in second

-rw-r--r--  root/root   /usr/share/gocode/src/github.com/golang/snappy/testdata/Mark.Twain-Tom.Sawyer.txt
-rw-r--r--  root/root   /usr/share/gocode/src/github.com/golang/snappy/testdata/Mark.Twain-Tom.Sawyer.txt.rawsnappy

No differences were encountered between the control files of package golang-github-golang-snappy-dev

No differences were encountered between the control files of package golang-snappy-go-dev

More details

Full run details