Update to current Go testsuite.
authorIan Lance Taylor <iant@google.com>
Wed, 25 Jan 2012 00:04:13 +0000 (00:04 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Wed, 25 Jan 2012 00:04:13 +0000 (00:04 +0000)
* go.test/go-test.exp (filecmp): New procedure.
(errchk): Handle quoted square brackets.
(go-gc-tests): Set go_compile_args. Handle various new test
lines.  Skip a few new tests.
* lib/go-torture.exp (go-torture-execute): Use go_compile_args.

From-SVN: r183502

292 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/go.test/go-test.exp
gcc/testsuite/go.test/test/alias.go [new file with mode: 0644]
gcc/testsuite/go.test/test/alias1.go [new file with mode: 0644]
gcc/testsuite/go.test/test/append.go
gcc/testsuite/go.test/test/bench/Makefile [deleted file]
gcc/testsuite/go.test/test/bench/binary-tree-freelist.go [deleted file]
gcc/testsuite/go.test/test/bench/binary-tree-freelist.txt [deleted file]
gcc/testsuite/go.test/test/bench/binary-tree.c [deleted file]
gcc/testsuite/go.test/test/bench/binary-tree.go [deleted file]
gcc/testsuite/go.test/test/bench/binary-tree.txt [deleted file]
gcc/testsuite/go.test/test/bench/chameneosredux.c [deleted file]
gcc/testsuite/go.test/test/bench/chameneosredux.go [deleted file]
gcc/testsuite/go.test/test/bench/chameneosredux.txt [deleted file]
gcc/testsuite/go.test/test/bench/fannkuch-parallel.go [deleted file]
gcc/testsuite/go.test/test/bench/fannkuch-parallel.txt [deleted file]
gcc/testsuite/go.test/test/bench/fannkuch.c [deleted file]
gcc/testsuite/go.test/test/bench/fannkuch.go [deleted file]
gcc/testsuite/go.test/test/bench/fannkuch.txt [deleted file]
gcc/testsuite/go.test/test/bench/fasta-1000.out [deleted file]
gcc/testsuite/go.test/test/bench/fasta.c [deleted file]
gcc/testsuite/go.test/test/bench/fasta.go [deleted file]
gcc/testsuite/go.test/test/bench/fasta.txt [deleted file]
gcc/testsuite/go.test/test/bench/garbage/Makefile [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/garbage/parser.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/garbage/peano.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/garbage/stats.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/garbage/tree.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/garbage/tree2.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/go1/Makefile [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/go1/_gotest_.6 [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/go1/_testmain.6 [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/go1/_testmain.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/go1/binarytree_test.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/go1/dummy.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/go1/fannkuch_test.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/go1/fasta_test.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/go1/gob_test.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/go1/gzip_test.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/go1/json_test.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/go1/jsondata_test.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/go1/revcomp_test.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/go1/template_test.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/k-nucleotide-parallel.go [deleted file]
gcc/testsuite/go.test/test/bench/k-nucleotide-parallel.txt [deleted file]
gcc/testsuite/go.test/test/bench/k-nucleotide.c [deleted file]
gcc/testsuite/go.test/test/bench/k-nucleotide.go [deleted file]
gcc/testsuite/go.test/test/bench/k-nucleotide.txt [deleted file]
gcc/testsuite/go.test/test/bench/mandelbrot.c [deleted file]
gcc/testsuite/go.test/test/bench/mandelbrot.go [deleted file]
gcc/testsuite/go.test/test/bench/mandelbrot.txt [deleted file]
gcc/testsuite/go.test/test/bench/meteor-contest.c [deleted file]
gcc/testsuite/go.test/test/bench/meteor-contest.go [deleted file]
gcc/testsuite/go.test/test/bench/meteor-contest.txt [deleted file]
gcc/testsuite/go.test/test/bench/nbody.c [deleted file]
gcc/testsuite/go.test/test/bench/nbody.go [deleted file]
gcc/testsuite/go.test/test/bench/nbody.txt [deleted file]
gcc/testsuite/go.test/test/bench/pidigits.c [deleted file]
gcc/testsuite/go.test/test/bench/pidigits.go [deleted file]
gcc/testsuite/go.test/test/bench/pidigits.txt [deleted file]
gcc/testsuite/go.test/test/bench/regex-dna-parallel.go [deleted file]
gcc/testsuite/go.test/test/bench/regex-dna-parallel.txt [deleted file]
gcc/testsuite/go.test/test/bench/regex-dna.c [deleted file]
gcc/testsuite/go.test/test/bench/regex-dna.go [deleted file]
gcc/testsuite/go.test/test/bench/regex-dna.txt [deleted file]
gcc/testsuite/go.test/test/bench/reverse-complement.c [deleted file]
gcc/testsuite/go.test/test/bench/reverse-complement.go [deleted file]
gcc/testsuite/go.test/test/bench/reverse-complement.txt [deleted file]
gcc/testsuite/go.test/test/bench/shootout/Makefile [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/binary-tree-freelist.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/binary-tree-freelist.txt [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/binary-tree.c [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/binary-tree.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/binary-tree.txt [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/chameneosredux.c [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/chameneosredux.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/chameneosredux.txt [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/fannkuch-parallel.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/fannkuch-parallel.txt [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/fannkuch.c [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/fannkuch.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/fannkuch.txt [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/fasta-1000.out [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/fasta.c [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/fasta.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/fasta.txt [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/k-nucleotide-parallel.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/k-nucleotide-parallel.txt [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/k-nucleotide.c [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/k-nucleotide.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/k-nucleotide.txt [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/mandelbrot.c [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/mandelbrot.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/mandelbrot.txt [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/meteor-contest.c [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/meteor-contest.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/meteor-contest.txt [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/nbody.c [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/nbody.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/nbody.txt [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/pidigits.c [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/pidigits.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/pidigits.txt [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/regex-dna-parallel.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/regex-dna-parallel.txt [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/regex-dna.c [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/regex-dna.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/regex-dna.txt [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/reverse-complement.c [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/reverse-complement.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/reverse-complement.txt [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/spectral-norm-parallel.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/spectral-norm.c [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/spectral-norm.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/spectral-norm.txt [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/threadring.c [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/threadring.go [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/threadring.txt [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/timing.log [new file with mode: 0644]
gcc/testsuite/go.test/test/bench/shootout/timing.sh [new file with mode: 0755]
gcc/testsuite/go.test/test/bench/spectral-norm-parallel.go [deleted file]
gcc/testsuite/go.test/test/bench/spectral-norm.c [deleted file]
gcc/testsuite/go.test/test/bench/spectral-norm.go [deleted file]
gcc/testsuite/go.test/test/bench/spectral-norm.txt [deleted file]
gcc/testsuite/go.test/test/bench/threadring.c [deleted file]
gcc/testsuite/go.test/test/bench/threadring.go [deleted file]
gcc/testsuite/go.test/test/bench/threadring.txt [deleted file]
gcc/testsuite/go.test/test/bench/timing.log [deleted file]
gcc/testsuite/go.test/test/bench/timing.sh [deleted file]
gcc/testsuite/go.test/test/blank.go
gcc/testsuite/go.test/test/bugs/bug395.go [new file with mode: 0644]
gcc/testsuite/go.test/test/chan/doubleselect.go
gcc/testsuite/go.test/test/chan/nonblock.go
gcc/testsuite/go.test/test/chan/perm.go
gcc/testsuite/go.test/test/chan/select7.go [new file with mode: 0644]
gcc/testsuite/go.test/test/closure.go
gcc/testsuite/go.test/test/cmp.go [new file with mode: 0644]
gcc/testsuite/go.test/test/cmp2.go [deleted file]
gcc/testsuite/go.test/test/cmp3.go [deleted file]
gcc/testsuite/go.test/test/cmp4.go [deleted file]
gcc/testsuite/go.test/test/cmp5.go [deleted file]
gcc/testsuite/go.test/test/complit.go
gcc/testsuite/go.test/test/complit1.go [new file with mode: 0644]
gcc/testsuite/go.test/test/convert1.go [new file with mode: 0644]
gcc/testsuite/go.test/test/crlf.go [new file with mode: 0644]
gcc/testsuite/go.test/test/ddd1.go
gcc/testsuite/go.test/test/deferprint.go
gcc/testsuite/go.test/test/deferprint.out [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/linedirectives.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/main.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z1.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z10.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z11.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z12.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z13.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z14.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z15.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z16.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z17.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z18.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z19.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z2.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z20.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z3.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z4.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z5.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z6.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z7.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z8.go [new file with mode: 0644]
gcc/testsuite/go.test/test/dwarf/z9.go [new file with mode: 0644]
gcc/testsuite/go.test/test/escape2.go [new file with mode: 0644]
gcc/testsuite/go.test/test/escape3.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug027.go
gcc/testsuite/go.test/test/fixedbugs/bug067.go
gcc/testsuite/go.test/test/fixedbugs/bug070.go
gcc/testsuite/go.test/test/fixedbugs/bug093.go
gcc/testsuite/go.test/test/fixedbugs/bug113.go
gcc/testsuite/go.test/test/fixedbugs/bug148.go
gcc/testsuite/go.test/test/fixedbugs/bug220.go [deleted file]
gcc/testsuite/go.test/test/fixedbugs/bug242.go
gcc/testsuite/go.test/test/fixedbugs/bug270.go [deleted file]
gcc/testsuite/go.test/test/fixedbugs/bug286.go
gcc/testsuite/go.test/test/fixedbugs/bug328.go
gcc/testsuite/go.test/test/fixedbugs/bug328.out [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug340.go
gcc/testsuite/go.test/test/fixedbugs/bug365.go
gcc/testsuite/go.test/test/fixedbugs/bug366.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug367.dir/main.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug367.dir/p.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug367.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug368.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug369.dir/pkg.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug369.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug370.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug371.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug372.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug373.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug374.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug375.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug376.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug377.dir/one.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug377.dir/two.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug377.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug378.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug379.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug380.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug381.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug382.dir/pkg.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug382.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug383.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug384.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug385_32.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug385_64.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug386.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug387.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug388.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug389.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug390.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug391.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug392.dir/one.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug392.dir/two.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug392.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug393.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug394.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug396.dir/one.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug396.dir/two.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug396.go [new file with mode: 0644]
gcc/testsuite/go.test/test/fixedbugs/bug397.go [new file with mode: 0644]
gcc/testsuite/go.test/test/garbage/Makefile [deleted file]
gcc/testsuite/go.test/test/garbage/parser.go [deleted file]
gcc/testsuite/go.test/test/garbage/peano.go [deleted file]
gcc/testsuite/go.test/test/garbage/stats.go [deleted file]
gcc/testsuite/go.test/test/garbage/tree.go [deleted file]
gcc/testsuite/go.test/test/golden.out
gcc/testsuite/go.test/test/goprint.go
gcc/testsuite/go.test/test/goprint.out [new file with mode: 0644]
gcc/testsuite/go.test/test/helloworld.go
gcc/testsuite/go.test/test/helloworld.out [new file with mode: 0644]
gcc/testsuite/go.test/test/init1.go [new file with mode: 0644]
gcc/testsuite/go.test/test/interface/fail.go
gcc/testsuite/go.test/test/interface/noeq.go [new file with mode: 0644]
gcc/testsuite/go.test/test/interface/recursive1.go [new file with mode: 0644]
gcc/testsuite/go.test/test/interface/recursive2.go [new file with mode: 0644]
gcc/testsuite/go.test/test/interface/returntype.go
gcc/testsuite/go.test/test/ken/cplx0.go
gcc/testsuite/go.test/test/ken/cplx0.out [new file with mode: 0644]
gcc/testsuite/go.test/test/ken/cplx2.go
gcc/testsuite/go.test/test/ken/cplx3.go
gcc/testsuite/go.test/test/ken/cplx4.go
gcc/testsuite/go.test/test/ken/cplx5.go
gcc/testsuite/go.test/test/ken/intervar.go
gcc/testsuite/go.test/test/ken/label.go
gcc/testsuite/go.test/test/ken/rob1.go
gcc/testsuite/go.test/test/ken/rob2.go
gcc/testsuite/go.test/test/ken/simpprint.go [deleted file]
gcc/testsuite/go.test/test/ken/simpswitch.go
gcc/testsuite/go.test/test/ken/string.go
gcc/testsuite/go.test/test/ken/string.out [new file with mode: 0644]
gcc/testsuite/go.test/test/mallocfin.go
gcc/testsuite/go.test/test/mallocrep.go
gcc/testsuite/go.test/test/map1.go [new file with mode: 0644]
gcc/testsuite/go.test/test/nil.go
gcc/testsuite/go.test/test/nilptr.go [new file with mode: 0644]
gcc/testsuite/go.test/test/nilptr/arrayindex.go [deleted file]
gcc/testsuite/go.test/test/nilptr/arrayindex1.go [deleted file]
gcc/testsuite/go.test/test/nilptr/arraytoslice.go [deleted file]
gcc/testsuite/go.test/test/nilptr/arraytoslice1.go [deleted file]
gcc/testsuite/go.test/test/nilptr/arraytoslice2.go [deleted file]
gcc/testsuite/go.test/test/nilptr/slicearray.go [deleted file]
gcc/testsuite/go.test/test/nilptr/structfield.go [deleted file]
gcc/testsuite/go.test/test/nilptr/structfield1.go [deleted file]
gcc/testsuite/go.test/test/nilptr/structfield2.go [deleted file]
gcc/testsuite/go.test/test/nilptr/structfieldaddr.go [deleted file]
gcc/testsuite/go.test/test/peano.go
gcc/testsuite/go.test/test/printbig.go
gcc/testsuite/go.test/test/printbig.out [new file with mode: 0644]
gcc/testsuite/go.test/test/reorder.go [new file with mode: 0644]
gcc/testsuite/go.test/test/run
gcc/testsuite/go.test/test/rune.go [new file with mode: 0644]
gcc/testsuite/go.test/test/sigchld.go
gcc/testsuite/go.test/test/sigchld.out [new file with mode: 0644]
gcc/testsuite/go.test/test/sinit.go
gcc/testsuite/go.test/test/struct0.go [new file with mode: 0644]
gcc/testsuite/go.test/test/switch.go
gcc/testsuite/go.test/test/switch3.go [new file with mode: 0644]
gcc/testsuite/go.test/test/syntax/else.go [new file with mode: 0644]
gcc/testsuite/go.test/test/times.out [new file with mode: 0644]
gcc/testsuite/go.test/test/turing.go
gcc/testsuite/go.test/test/typeswitch2.go
gcc/testsuite/go.test/test/typeswitch3.go [new file with mode: 0644]
gcc/testsuite/go.test/test/zerodivide.go
gcc/testsuite/lib/go-torture.exp

index 645002b74377c88e518546d579466739bb8023b0..9f5677375ee80db67d158fbb92896e712b17ed08 100644 (file)
@@ -1,3 +1,11 @@
+2012-01-24  Ian Lance Taylor  <iant@google.com>
+
+       * go.test/go-test.exp (filecmp): New procedure.
+       (errchk): Handle quoted square brackets.
+       (go-gc-tests): Set go_compile_args. Handle various new test
+       lines.  Skip a few new tests.
+       * lib/go-torture.exp (go-torture-execute): Use go_compile_args.
+
 2012-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
 
        * lib/target-supports.exp (proc check_effective_target_vect_perm)
index 28b7e40deb51bbc126ee9329152a5303a426b150..c9ba41ae38f477ff35af6c87f5670bdb6f1354c9 100644 (file)
 load_lib go-dg.exp
 load_lib go-torture.exp
 
+# Compare two files
+proc filecmp { file1 file2 testname } {
+    set f1 [open $file1 r]
+    set f2 [open $file2 r]
+    set ok 1
+    while { [gets $f1 line1] >= 0 } {
+       if { [gets $f2 line2] < 0 } {
+           verbose -log "output mismatch: $file2 shorter than $file1"
+           set ok 0
+           break
+       }
+       if { $line1 != $line2 } {
+           verbose -log "output mismatch comparing $file1 and $file2"
+           verbose -log "expected \"$line1\""
+           verbose -log "got      \"$line2\""
+           set ok 0
+           break
+       }
+    }
+    if { [gets $f2 line2] >= 0 } {
+       verbose -log "output mismatch: $file1 shorter than $file2"
+       set ok 0
+    }
+    close $f1
+    close $f2
+    if { ! $ok } {
+       fail $testname
+    } else {
+       pass $testname
+    }
+}
+
 # Implement errchk
 proc errchk { test opts } {
     global dg-do-what-default
@@ -56,6 +88,14 @@ proc errchk { test opts } {
            continue
        }
        regsub "// \(GCCGO_\)?ERROR \"\(\[^\"\]*\)\".*$" $copy_line "// \{ dg-error \"\\2\" \}" out_line
+       if [string match "*dg-error*\\\[*" $out_line] {
+           set index [string first "dg-error" $out_line]
+           regsub -start $index -all "\\\\\\\[" $out_line "\\\\\\\\\\\[" out_line
+       }
+       if [string match "*dg-error*\\\]*" $out_line] {
+           set index [string first "dg-error" $out_line]
+           regsub -start $index -all "\\\\\\\]" $out_line "\\\\\\\\\\\]" out_line
+       }
        if [string match "*dg-error*.\**" $out_line] {
            # I worked out the right number of backslashes by
            # experimentation, not analysis.
@@ -199,6 +239,7 @@ proc go-gc-tests { } {
     global TOOL_OPTIONS
     global TORTURE_OPTIONS
     global dg-do-what-default
+    global go_compile_args
     global go_execute_args
     global target_triplet
 
@@ -230,13 +271,10 @@ proc go-gc-tests { } {
            continue
        }
 
-       # Skip the files in bench and garbage; they are not tests.
+       # Skip the files in bench; they are not tests.
        if [string match "*go.test/test/bench/*" $test] {
            continue
        }
-       if [string match "*go.test/test/garbage/*" $test] {
-           continue
-       }
 
        # Skip files in sub-subdirectories: they are components of
        # other tests.
@@ -274,6 +312,20 @@ proc go-gc-tests { } {
            continue
        }
 
+       if { [file tail $test] == "init1.go" } {
+           # This tests whether GC runs during init, which for gccgo
+           # it currently does not.
+           untested $name
+           continue
+       }
+
+       if { [file tail $test] == "closure.go" } {
+           # This tests whether function closures do any memory
+           # allocation, which for gccgo they currently do.
+           untested $name
+           continue
+       }
+
        set fd [open $test r]
 
        set lines_ok 1
@@ -290,7 +342,8 @@ proc go-gc-tests { } {
            if { [ string match "*nacl*exit 0*" $test_line ] \
                     || [ string match "*exit 0*nacl*" $test_line ] \
                     || [ string match "*Android*exit 0*" $test_line ] \
-                    || [ string match "*exit 0*Android*" $test_line ] } {
+                    || [ string match "*exit 0*Android*" $test_line ] \
+                    || [ string match "*\"\$GOOS\" == windows*" $test_line ] } {
                continue
            }
 
@@ -320,8 +373,9 @@ proc go-gc-tests { } {
 
        close $fd
 
+       set go_compile_args ""
        set go_execute_args ""
-       if { [regexp ".*\\\$A.out (\[^|&>\].*)\$" $test_line match progargs] } {
+       if { [regexp ".*\\\$A.out (\[^|&>2\].*)\$" $test_line match progargs] } {
            set go_execute_args $progargs
            verbose -log "$test: go_execute_args is $go_execute_args"
            set index [string last " $progargs" $test_line]
@@ -393,6 +447,33 @@ proc go-gc-tests { } {
            # This is a vanilla execution test.
            go-torture-execute $test
            file delete core [glob -nocomplain core.*]
+       } elseif { $test_line == "// \$G \$D/\$F.go && \$L \$F.\$A && ./\$A.out 2>&1 | cmp - \$D/\$F.out" \
+                      || $test_line == "// (\$G \$D/\$F.go && \$L \$F.\$A && ./\$A.out 2>&1 | cmp - \$D/\$F.out)" } {
+           # This is an execution test for which we need to check the
+           # program output.
+           set hold_runtests $runtests
+           set runtests "go-test.exp"
+           set dg-do-what-default "link"
+           dg-test -keep-output $test "-O" "-w $DEFAULT_GOCFLAGS"
+           set output_file "./[file rootname [file tail $test]].exe"
+           set base "[file rootname [file tail $test]]"
+           if [isnative] {
+               verbose -log "$output_file >$base.p 2>&1"
+               if { [catch "exec $output_file 2>$base.p" catcherr] != 0 } {
+                   verbose -log $catcherr
+                   fail "$name execution"
+                   untested "$name compare"
+               } else {
+                   pass "$name execution"
+                   regsub "\\.go$" $test ".out" expect
+                   filecmp $expect $base.p "$name compare"
+               }
+               #file delete $base.p
+           } else {
+               untested "$name execution"
+               untested "$name compare"
+           }
+           set runtests $hold_runtests
        } elseif { [string match \
                        "// \$G \$D/\$F.go && \$L \$F.\$A || echo BUG*" \
                        $test_line] \
@@ -405,6 +486,10 @@ proc go-gc-tests { } {
        } elseif { [string match "// \$G \$D/\$F.go" $test_line] \
                   || [string match "// \$G \$D/\$F.go || echo BUG*" \
                           $test_line] \
+                  || [string match "// \$G \$D/\$F.go || echo \"Bug*" \
+                          $test_line] \
+                  || [string match "// \$G \$D/\$F.go || echo \"Issue*" \
+                          $test_line] \
                   || [string match "// \$G \$F.go || echo BUG*" \
                           $test_line] \
                   || [string match "// ! \$G \$D/\$F.go && echo BUG*" \
@@ -452,13 +537,27 @@ proc go-gc-tests { } {
            errchk $test ""
        } elseif { [string match \
                        "// \$G \$D/\$F.dir/bug0.go && \$G \$D/\$F.dir/bug1.go || echo BUG*" \
-                       $test_line] } {
+                       $test_line] \
+                      || [string match \
+                              "// \$G \$D/\$F.dir/one.go && \$G \$D/\$F.dir/two.go" \
+                              $test_line] } {
+           if { [string match \
+                     "// \$G \$D/\$F.dir/bug0.go && \$G \$D/\$F.dir/bug1.go || echo BUG*" \
+                     $test_line] } {
+               set name1 "bug0.go"
+               set name2 "bug1.go"
+           } elseif { [string match \
+                           "// \$G \$D/\$F.dir/one.go && \$G \$D/\$F.dir/two.go" \
+                           $test_line] } {
+               set name1 "one.go"
+               set name2 "two.go"
+           }
            set hold_runtests $runtests
            set runtests "go-test.exp"
            set dg-do-what-default "assemble"
-           regsub "\\.go$" $test ".dir/bug0.go" file1
+           regsub "\\.go$" $test ".dir/$name1" file1
            dg-test -keep-output $file1 "-O" "-w $DEFAULT_GOCFLAGS"
-           regsub "\\.go$" $test ".dir/bug1.go" file2
+           regsub "\\.go$" $test ".dir/$name2" file2
            dg-test $file2 "-O" "-w $DEFAULT_GOCFLAGS"
            file delete "[file rootname [file tail $file1]].o"
            set runtests $hold_runtests
@@ -650,14 +749,28 @@ proc go-gc-tests { } {
            set runtests $hold_runtests
        } elseif { [string match \
                        "// \$G \$D/\$F.dir/lib.go && \$G \$D/\$F.dir/main.go && \$L main.\$A && ./\$A.out || echo BUG*" \
-                       $test_line ] } {
+                       $test_line ] || \
+                      [string match \
+                           "// \$G \$D/\$F.dir/p.go && \$G \$D/\$F.dir/main.go && \$L main.\$A && ./\$A.out || echo BUG*" \
+                           $test_line ] } {
+           if { [string match \
+                     "// \$G \$D/\$F.dir/lib.go && \$G \$D/\$F.dir/main.go && \$L main.\$A && ./\$A.out || echo BUG*" \
+                     $test_line ] } {
+               set name1 "lib.go"
+               set name2 "main.go"
+           } elseif { [string match \
+                           "// \$G \$D/\$F.dir/p.go && \$G \$D/\$F.dir/main.go && \$L main.\$A && ./\$A.out || echo BUG*" \
+                           $test_line ] } {
+               set name1 "p.go"
+               set name2 "main.go"
+           }
            set hold_runtests $runtests
            set runtests "go-test.exp"
            set dg-do-what-default "assemble"
-           regsub "\\.go$" $test ".dir/lib.go" file1
+           regsub "\\.go$" $test ".dir/$name1" file1
            dg-test -keep-output $file1 "-O" "-w $DEFAULT_GOCFLAGS"
            set ofile1 "[file rootname [file tail $file1]].o"
-           regsub "\\.go$" $test ".dir/main.go" file2
+           regsub "\\.go$" $test ".dir/$name2" file2
            dg-test -keep-output $file2 "-O" "-w $DEFAULT_GOCFLAGS"
            set ofile2 "[file rootname [file tail $file2]].o"
            set dg-do-what-default "link"
@@ -705,7 +818,7 @@ proc go-gc-tests { } {
            errchk $file2 ""
            file delete "[file rootname [file tail $file1]].o"
            set runtests $hold_runtests
-       } elseif { [string match "// true*" $test_line] } {
+       } elseif { "$test_line" == "" || [string match "// true*" $test_line] } {
            # Not a real test, just ignore.
        } elseif { $test_line == "// \$G \$D/\$F.dir/bug0.go &&" \
                       && $test_line2 == "// \$G \$D/\$F.dir/bug1.go &&" \
@@ -886,7 +999,7 @@ proc go-gc-tests { } {
                    file delete $base-out.x
                    go-torture-execute "./$base-out.go"
                }
-               file delete $base-out.go
+               file delete $base-out.go
            }
            file delete $output_file
            set runtests $hold_runtests
@@ -894,23 +1007,96 @@ proc go-gc-tests { } {
            regsub "\\.go$" $test ".dir/a.go" file1
            regsub "\\.go$" $test ".dir/b.go" file2
            errchk "$file1" "$file2"
+       } elseif { $test_line == "// \$G \$D/\$F.go \$D/z*.go && \$L \$F.\$A && ./\$A.out" } {
+           set dir [file dirname $test]
+           set go_compile_args [glob $dir/z*.go]
+           go-torture-execute $test
+       } elseif { $test_line == "// \$G -N -o slow.\$A \$D/bug369.dir/pkg.go &&" \
+                      && $test_line2 == "// \$G -o fast.\$A \$D/bug369.dir/pkg.go &&" \
+                      && $test_line3 == "// \$G \$D/\$F.go && \$L \$F.\$A && ./\$A.out" } {
+           set hold_runtests $runtests
+           set runtests "go-test.exp"
+           set dg-do-what-default "assemble"
+           regsub "\\.go$" $test ".dir/pkg.go" file1
+           dg-test -keep-output $file1 "" "-fgo-prefix=slow -w $DEFAULT_GOCFLAGS"
+           set ofile1 "[file rootname [file tail $file1]].o"
+           file rename -force $ofile1 slow.o
+           dg-test -keep-output $file1 "-O2" "-fgo-prefix=fast -w $DEFAULT_GOCFLAGS"
+           file rename -force $ofile1 fast.o
+           set ofile2 "[file rootname [file tail $test]].o"
+           dg-test -keep-output $test "-O" "-w $DEFAULT_GOCFLAGS"
+           set output_file "./[file rootname [file tail $test]].exe"
+           set comp_output [go_target_compile "$ofile2 slow.o fast.o" \
+                                $output_file "executable" "$options"]
+           set comp_output [go-dg-prune $target_triplet $comp_output]
+           if [string match "" $comp_output] {
+               set result [go_load "$output_file" "" ""]
+               set status [lindex $result 0]
+               $status $name
+           } else {
+               verbose -log $comp_output
+               fail $name
+           }
+           file delete slow.o fast.o $ofile2 $output_file
+           set runtests $hold_runtests
+       } elseif { [string match \
+                       "// \$G \$D/\$F.dir/pkg.go && \$G \$D/\$F.go || echo *" \
+                       $test_line ] } {
+           set hold_runtests $runtests
+           set runtests "go-test.exp"
+           set dg-do-what-default "assemble"
+           regsub "\\.go$" $test ".dir/pkg.go" file1
+           dg-test -keep-output $file1 "-O" "-w $DEFAULT_GOCFLAGS"
+           dg-test $test "-O" "-w $DEFAULT_GOCFLAGS"
+           file delete "[file rootname [file tail $file1]].o"
+           set runtests $hold_runtests
+       } elseif { $test_line == "// \$G \$D/\$F.go && \$L \$F.\$A && ./\$A.out >tmp.go &&"
+                  && $test_line2 == "// \$G tmp.go && \$L tmp.\$A && ./\$A.out" } {
+           set go_execute_args ""
+           set hold_runtests $runtests
+           set runtests "go-test.exp"
+           set dg-do-what-default "link"
+           dg-test -keep-output $test "-O" "-w $DEFAULT_GOCFLAGS"
+           set output_file "./[file rootname [file tail $test]].exe"
+           set base "[file rootname [file tail $test]]"
+           if [isnative] {
+               if { [catch "exec $output_file >$base-out.go"] != 0 } {
+                   fail "$name execution"
+               } else {
+                   pass "$name execution"
+                   file delete $base-out.x
+                   go-torture-execute "./$base-out.go"
+               }
+               file delete $base-out.go
+           }
+           file delete $output_file
+           set runtests $hold_runtests
        } elseif { $test_line == "// # generated by cmplxdivide.c" } {
            # Ignore.
        } elseif { $test_line == "// \$G \$D/bug302.dir/p.go && gopack grc pp.a p.\$A && \$G \$D/bug302.dir/main.go" \
                   || $test_line == "// \$G \$D/empty.go && errchk \$G \$D/\$F.go" } {
            # These tests import the same package under two different
            # names, which gccgo does not support.
-       } elseif { $test_line == "// \$G -S \$D/\$F.go | egrep initdone >/dev/null && echo FAIL || true" } {
+       } elseif { $test_line == "// \$G -S \$D/\$F.go | egrep initdone >/dev/null && echo BUG sinit || true" } {
            # This tests whether initializers are written out
            # statically.  gccgo does not provide a way to test that,
            # as an initializer will be generated for any code which
            # has global variables which need to be registered as GC
            # roots.
+       } elseif { $test_line == "// errchk -0 \$G -m -l \$D/\$F.go" } {
+           # This tests debug output of the gc compiler, which is
+           # meaningless for gccgo.
+       } elseif { $test_line == "// \[ \$O == 6 \] || errchk \$G -e \$D/\$F.go" \
+                      || $test_line == "// \[ \$O != 6 \]  || errchk \$G -e \$D/\$F.go" } {
+           # This tests specific handling of the gc compiler on types
+           # that are too large.  It is target specific in a way I
+           # haven't bothered to check for here.
        } else {
            clone_output "$name: unrecognized test line: $test_line"
            unsupported $name
        }
 
+       set go_compile_args ""
        set go_execute_args ""
     }
 
diff --git a/gcc/testsuite/go.test/test/alias.go b/gcc/testsuite/go.test/test/alias.go
new file mode 100644 (file)
index 0000000..639a9ca
--- /dev/null
@@ -0,0 +1,32 @@
+// errchk $G -e $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+// Test that error messages say what the source file says
+// (uint8 vs byte, int32 vs. rune).
+
+import (
+       "fmt"
+       "unicode/utf8"
+)
+
+func f(byte)  {}
+func g(uint8) {}
+
+func main() {
+       var x float64
+       f(x) // ERROR "byte"
+       g(x) // ERROR "uint8"
+
+       // Test across imports.
+
+       var ff fmt.Formatter
+       var fs fmt.State
+       ff.Format(fs, x) // ERROR "rune"
+
+       utf8.RuneStart(x) // ERROR "byte"
+}
diff --git a/gcc/testsuite/go.test/test/alias1.go b/gcc/testsuite/go.test/test/alias1.go
new file mode 100644 (file)
index 0000000..e8ef8a2
--- /dev/null
@@ -0,0 +1,54 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+// Test that dynamic interface checks treat byte=uint8
+// and rune=int or rune=int32.
+
+func main() {
+       var x interface{}
+
+       x = byte(1)
+       switch x.(type) {
+       case uint8:
+               // ok
+       default:
+               println("byte != uint8")
+       }
+
+       x = uint8(2)
+       switch x.(type) {
+       case byte:
+               // ok
+       default:
+               println("uint8 != byte")
+       }
+
+       rune32 := false
+       x = rune(3)
+       switch x.(type) {
+       case int:
+               // ok
+       case int32:
+               // must be new code
+               rune32 = true
+       default:
+               println("rune != int and rune != int32")
+       }
+
+       if rune32 {
+               x = int32(4)
+       } else {
+               x = int(5)
+       }
+       switch x.(type) {
+       case rune:
+               // ok
+       default:
+               println("int (or int32) != rune")
+       }
+}
index 96421c36b8909bc498210dffb4d87078598ae761..e178f46990d62b613133b17b0f7b56571c9a1228 100644 (file)
@@ -63,6 +63,11 @@ var tests = []struct {
        {"byte i", append([]byte{0, 1, 2}, []byte{3}...), []byte{0, 1, 2, 3}},
        {"byte j", append([]byte{0, 1, 2}, []byte{3, 4, 5}...), []byte{0, 1, 2, 3, 4, 5}},
 
+       {"bytestr a", append([]byte{}, "0"...), []byte("0")},
+       {"bytestr b", append([]byte{}, "0123"...), []byte("0123")},
+
+       {"bytestr c", append([]byte("012"), "3"...), []byte("0123")},
+       {"bytestr d", append([]byte("012"), "345"...), []byte("012345")},
 
        {"int16 a", append([]int16{}), []int16{}},
        {"int16 b", append([]int16{}, 0), []int16{0}},
diff --git a/gcc/testsuite/go.test/test/bench/Makefile b/gcc/testsuite/go.test/test/bench/Makefile
deleted file mode 100644 (file)
index 145fe0c..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright 2011 The Go Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file.
-
-include ../../src/Make.inc
-
-all:
-       @echo "make clean or timing"
-
-timing:
-       ./timing.sh
-
-clean:
-       rm -f [568].out *.[568]
diff --git a/gcc/testsuite/go.test/test/bench/binary-tree-freelist.go b/gcc/testsuite/go.test/test/bench/binary-tree-freelist.go
deleted file mode 100644 (file)
index 071a4e0..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by The Go Authors.
- * based on C program by Kevin Carson
- */
-
-package main
-
-import (
-       "flag"
-       "fmt"
-)
-
-var n = flag.Int("n", 15, "depth")
-
-type Node struct {
-       item        int
-       left, right *Node
-}
-
-type Arena struct {
-       head *Node
-}
-
-var arena Arena
-
-func (n *Node) free() {
-       if n.left != nil {
-               n.left.free()
-       }
-       if n.right != nil {
-               n.right.free()
-       }
-       n.left = arena.head
-       arena.head = n
-}
-
-func (a *Arena) New(item int, left, right *Node) *Node {
-       if a.head == nil {
-               nodes := make([]Node, 3<<uint(*n))
-               for i := 0; i < len(nodes)-1; i++ {
-                       nodes[i].left = &nodes[i+1]
-               }
-               a.head = &nodes[0]
-       }
-       n := a.head
-       a.head = a.head.left
-       n.item = item
-       n.left = left
-       n.right = right
-       return n
-}
-
-func bottomUpTree(item, depth int) *Node {
-       if depth <= 0 {
-               return arena.New(item, nil, nil)
-       }
-       return arena.New(item, bottomUpTree(2*item-1, depth-1), bottomUpTree(2*item, depth-1))
-}
-
-func (n *Node) itemCheck() int {
-       if n.left == nil {
-               return n.item
-       }
-       return n.item + n.left.itemCheck() - n.right.itemCheck()
-}
-
-const minDepth = 4
-
-func main() {
-       flag.Parse()
-
-       maxDepth := *n
-       if minDepth+2 > *n {
-               maxDepth = minDepth + 2
-       }
-       stretchDepth := maxDepth + 1
-
-       check := bottomUpTree(0, stretchDepth).itemCheck()
-       fmt.Printf("stretch tree of depth %d\t check: %d\n", stretchDepth, check)
-
-       longLivedTree := bottomUpTree(0, maxDepth)
-
-       for depth := minDepth; depth <= maxDepth; depth += 2 {
-               iterations := 1 << uint(maxDepth-depth+minDepth)
-               check = 0
-
-               for i := 1; i <= iterations; i++ {
-                       t := bottomUpTree(i, depth)
-                       check += t.itemCheck()
-                       t.free()
-                       t = bottomUpTree(-i, depth)
-                       check += t.itemCheck()
-                       t.free()
-               }
-               fmt.Printf("%d\t trees of depth %d\t check: %d\n", iterations*2, depth, check)
-       }
-       fmt.Printf("long lived tree of depth %d\t check: %d\n", maxDepth, longLivedTree.itemCheck())
-}
diff --git a/gcc/testsuite/go.test/test/bench/binary-tree-freelist.txt b/gcc/testsuite/go.test/test/bench/binary-tree-freelist.txt
deleted file mode 100644 (file)
index f8286dd..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-stretch tree of depth 16        check: -1
-65536   trees of depth 4        check: -65536
-16384   trees of depth 6        check: -16384
-4096    trees of depth 8        check: -4096
-1024    trees of depth 10       check: -1024
-256     trees of depth 12       check: -256
-64      trees of depth 14       check: -64
-long lived tree of depth 15     check: -1
diff --git a/gcc/testsuite/go.test/test/bench/binary-tree.c b/gcc/testsuite/go.test/test/bench/binary-tree.c
deleted file mode 100644 (file)
index 1b40704..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Shootout Benchmarks
-   http://shootout.alioth.debian.org/
-
-   contributed by Kevin Carson
-   compilation:
-       gcc -O3 -fomit-frame-pointer -funroll-loops -static binary-trees.c -lm
-       icc -O3 -ip -unroll -static binary-trees.c -lm
-*/
-
-#include <malloc.h>
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-typedef struct tn {
-    struct tn*    left;
-    struct tn*    right;
-    long          item;
-} treeNode;
-
-
-treeNode* NewTreeNode(treeNode* left, treeNode* right, long item)
-{
-    treeNode*    new;
-
-    new = (treeNode*)malloc(sizeof(treeNode));
-
-    new->left = left;
-    new->right = right;
-    new->item = item;
-
-    return new;
-} /* NewTreeNode() */
-
-
-long ItemCheck(treeNode* tree)
-{
-    if (tree->left == NULL)
-        return tree->item;
-    else
-        return tree->item + ItemCheck(tree->left) - ItemCheck(tree->right);
-} /* ItemCheck() */
-
-
-treeNode* BottomUpTree(long item, unsigned depth)
-{
-    if (depth > 0)
-        return NewTreeNode
-        (
-            BottomUpTree(2 * item - 1, depth - 1),
-            BottomUpTree(2 * item, depth - 1),
-            item
-        );
-    else
-        return NewTreeNode(NULL, NULL, item);
-} /* BottomUpTree() */
-
-
-void DeleteTree(treeNode* tree)
-{
-    if (tree->left != NULL)
-    {
-        DeleteTree(tree->left);
-        DeleteTree(tree->right);
-    }
-
-    free(tree);
-} /* DeleteTree() */
-
-
-int main(int argc, char* argv[])
-{
-    unsigned   N, depth, minDepth, maxDepth, stretchDepth;
-    treeNode   *stretchTree, *longLivedTree, *tempTree;
-
-    N = atol(argv[1]);
-
-    minDepth = 4;
-
-    if ((minDepth + 2) > N)
-        maxDepth = minDepth + 2;
-    else
-        maxDepth = N;
-
-    stretchDepth = maxDepth + 1;
-
-    stretchTree = BottomUpTree(0, stretchDepth);
-    printf
-    (
-        "stretch tree of depth %u\t check: %li\n",
-        stretchDepth,
-        ItemCheck(stretchTree)
-    );
-
-    DeleteTree(stretchTree);
-
-    longLivedTree = BottomUpTree(0, maxDepth);
-
-    for (depth = minDepth; depth <= maxDepth; depth += 2)
-    {
-        long    i, iterations, check;
-
-        iterations = pow(2, maxDepth - depth + minDepth);
-
-        check = 0;
-
-        for (i = 1; i <= iterations; i++)
-        {
-            tempTree = BottomUpTree(i, depth);
-            check += ItemCheck(tempTree);
-            DeleteTree(tempTree);
-
-            tempTree = BottomUpTree(-i, depth);
-            check += ItemCheck(tempTree);
-            DeleteTree(tempTree);
-        } /* for(i = 1...) */
-
-        printf
-        (
-            "%li\t trees of depth %u\t check: %li\n",
-            iterations * 2,
-            depth,
-            check
-        );
-    } /* for(depth = minDepth...) */
-
-    printf
-    (
-        "long lived tree of depth %u\t check: %li\n",
-        maxDepth,
-        ItemCheck(longLivedTree)
-    );
-
-    return 0;
-} /* main() */
diff --git a/gcc/testsuite/go.test/test/bench/binary-tree.go b/gcc/testsuite/go.test/test/bench/binary-tree.go
deleted file mode 100644 (file)
index 9f867d1..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by The Go Authors.
- * based on C program by Kevin Carson
- */
-
-package main
-
-import (
-       "flag"
-       "fmt"
-)
-
-var n = flag.Int("n", 15, "depth")
-
-type Node struct {
-       item        int
-       left, right *Node
-}
-
-func bottomUpTree(item, depth int) *Node {
-       if depth <= 0 {
-               return &Node{item: item}
-       }
-       return &Node{item, bottomUpTree(2*item-1, depth-1), bottomUpTree(2*item, depth-1)}
-}
-
-func (n *Node) itemCheck() int {
-       if n.left == nil {
-               return n.item
-       }
-       return n.item + n.left.itemCheck() - n.right.itemCheck()
-}
-
-const minDepth = 4
-
-func main() {
-       flag.Parse()
-
-       maxDepth := *n
-       if minDepth+2 > *n {
-               maxDepth = minDepth + 2
-       }
-       stretchDepth := maxDepth + 1
-
-       check := bottomUpTree(0, stretchDepth).itemCheck()
-       fmt.Printf("stretch tree of depth %d\t check: %d\n", stretchDepth, check)
-
-       longLivedTree := bottomUpTree(0, maxDepth)
-
-       for depth := minDepth; depth <= maxDepth; depth += 2 {
-               iterations := 1 << uint(maxDepth-depth+minDepth)
-               check = 0
-
-               for i := 1; i <= iterations; i++ {
-                       check += bottomUpTree(i, depth).itemCheck()
-                       check += bottomUpTree(-i, depth).itemCheck()
-               }
-               fmt.Printf("%d\t trees of depth %d\t check: %d\n", iterations*2, depth, check)
-       }
-       fmt.Printf("long lived tree of depth %d\t check: %d\n", maxDepth, longLivedTree.itemCheck())
-}
diff --git a/gcc/testsuite/go.test/test/bench/binary-tree.txt b/gcc/testsuite/go.test/test/bench/binary-tree.txt
deleted file mode 100644 (file)
index f8286dd..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-stretch tree of depth 16        check: -1
-65536   trees of depth 4        check: -65536
-16384   trees of depth 6        check: -16384
-4096    trees of depth 8        check: -4096
-1024    trees of depth 10       check: -1024
-256     trees of depth 12       check: -256
-64      trees of depth 14       check: -64
-long lived tree of depth 15     check: -1
diff --git a/gcc/testsuite/go.test/test/bench/chameneosredux.c b/gcc/testsuite/go.test/test/bench/chameneosredux.c
deleted file mode 100644 (file)
index ed78c31..0000000
+++ /dev/null
@@ -1,330 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
-   http://shootout.alioth.debian.org/
-
-   contributed by Michael Barker
-   based on a Java contribution by Luzius Meisser
-
-   convert to C by dualamd
-*/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <pthread.h>
-
-
-enum Colour
-{
-   blue      = 0,
-   red      = 1,
-   yellow   = 2,
-   Invalid   = 3
-};
-
-const char* ColourName[] = {"blue", "red", "yellow"};
-const int STACK_SIZE   = 32*1024;
-
-typedef unsigned int BOOL;
-const BOOL TRUE = 1;
-const BOOL FALSE = 0;
-
-int CreatureID = 0;
-
-
-enum Colour doCompliment(enum Colour c1, enum Colour c2)
-{
-   switch (c1)
-   {
-   case blue:
-      switch (c2)
-      {
-      case blue:
-         return blue;
-      case red:
-         return yellow;
-      case yellow:
-         return red;
-      default:
-         goto errlb;
-      }
-   case red:
-      switch (c2)
-      {
-      case blue:
-         return yellow;
-      case red:
-         return red;
-      case yellow:
-         return blue;
-      default:
-         goto errlb;
-      }
-   case yellow:
-      switch (c2)
-      {
-      case blue:
-         return red;
-      case red:
-         return blue;
-      case yellow:
-         return yellow;
-      default:
-         goto errlb;
-      }
-   default:
-      break;
-   }
-
-errlb:
-   printf("Invalid colour\n");
-   exit( 1 );
-}
-
-/* convert integer to number string: 1234 -> "one two three four" */
-char* formatNumber(int n, char* outbuf)
-{
-   int ochar = 0, ichar = 0;
-   int i;
-   char tmp[64];
-
-   const char* NUMBERS[] =
-   {
-      "zero", "one", "two", "three", "four", "five",
-      "six", "seven", "eight", "nine"
-   };
-
-   ichar = sprintf(tmp, "%d", n);
-
-   for (i = 0; i < ichar; i++)
-      ochar += sprintf( outbuf + ochar, " %s", NUMBERS[ tmp[i] - '0' ] );
-
-   return outbuf;
-}
-
-
-struct MeetingPlace
-{
-   pthread_mutex_t   mutex;
-   int             meetingsLeft;
-   struct Creature*   firstCreature;
-};
-
-struct Creature
-{
-   pthread_t         ht;
-   pthread_attr_t      stack_att;
-
-   struct MeetingPlace* place;
-   int         count;
-   int         sameCount;
-
-   enum Colour   colour;
-   int          id;
-
-   BOOL      two_met;
-   BOOL      sameid;
-};
-
-
-void MeetingPlace_Init(struct MeetingPlace* m, int meetings )
-{
-   pthread_mutex_init( &m->mutex, 0 );
-   m->meetingsLeft = meetings;
-   m->firstCreature = 0;
-}
-
-
-BOOL Meet( struct Creature* cr)
-{
-   BOOL retval = TRUE;
-
-   struct MeetingPlace* mp = cr->place;
-   pthread_mutex_lock( &(mp->mutex) );
-
-   if ( mp->meetingsLeft > 0 )
-   {
-      if ( mp->firstCreature == 0 )
-      {
-         cr->two_met = FALSE;
-         mp->firstCreature = cr;
-      }
-      else
-      {
-         struct Creature* first;
-         enum Colour newColour;
-
-         first = mp->firstCreature;
-         newColour = doCompliment( cr->colour, first->colour );
-
-         cr->sameid = cr->id == first->id;
-         cr->colour = newColour;
-         cr->two_met = TRUE;
-
-         first->sameid = cr->sameid;
-         first->colour = newColour;
-         first->two_met = TRUE;
-
-         mp->firstCreature = 0;
-         mp->meetingsLeft--;
-      }
-   }
-   else
-      retval = FALSE;
-
-   pthread_mutex_unlock( &(mp->mutex) );
-   return retval;
-}
-
-
-void* CreatureThreadRun(void* param)
-{
-   struct Creature* cr = (struct Creature*)param;
-
-   while (TRUE)
-   {
-      if ( Meet(cr) )
-      {
-         while (cr->two_met == FALSE)
-            sched_yield();
-
-         if (cr->sameid)
-            cr->sameCount++;
-         cr->count++;
-      }
-      else
-         break;
-   }
-
-   return 0;
-}
-
-void Creature_Init( struct Creature *cr, struct MeetingPlace* place, enum Colour colour )
-{
-   cr->place = place;
-   cr->count = cr->sameCount = 0;
-
-   cr->id = ++CreatureID;
-   cr->colour = colour;
-   cr->two_met = FALSE;
-
-   pthread_attr_init( &cr->stack_att );
-   pthread_attr_setstacksize( &cr->stack_att, STACK_SIZE );
-   pthread_create( &cr->ht, &cr->stack_att, &CreatureThreadRun, (void*)(cr) );
-}
-
-/* format meeting times of each creature to string */
-char* Creature_getResult(struct Creature* cr, char* str)
-{
-   char numstr[256];
-   formatNumber(cr->sameCount, numstr);
-
-   sprintf( str, "%u%s", cr->count, numstr );
-   return str;
-}
-
-
-void runGame( int n_meeting, int ncolor, const enum Colour* colours )
-{
-   int i;
-   int total = 0;
-   char str[256];
-
-   struct MeetingPlace place;
-   struct Creature *creatures = (struct Creature*) calloc( ncolor, sizeof(struct Creature) );
-
-   MeetingPlace_Init( &place, n_meeting );
-
-   /* print initial color of each creature */
-   for (i = 0; i < ncolor; i++)
-   {
-      printf( "%s ", ColourName[ colours[i] ] );
-      Creature_Init( &(creatures[i]), &place, colours[i] );
-   }
-   printf("\n");
-
-   /* wait for them to meet */
-   for (i = 0; i < ncolor; i++)
-      pthread_join( creatures[i].ht, 0 );
-
-   /* print meeting times of each creature */
-   for (i = 0; i < ncolor; i++)
-   {
-      printf( "%s\n", Creature_getResult(&(creatures[i]), str) );
-      total += creatures[i].count;
-   }
-
-   /* print total meeting times, should equal n_meeting */
-   printf( "%s\n\n", formatNumber(total, str) );
-
-   /* cleaup & quit */
-   pthread_mutex_destroy( &place.mutex );
-   free( creatures );
-}
-
-
-void printColours( enum Colour c1, enum Colour c2 )
-{
-   printf( "%s + %s -> %s\n",
-      ColourName[c1],
-      ColourName[c2],
-      ColourName[doCompliment(c1, c2)]   );
-}
-
-void printColoursTable(void)
-{
-   printColours(blue, blue);
-   printColours(blue, red);
-   printColours(blue, yellow);
-   printColours(red, blue);
-   printColours(red, red);
-   printColours(red, yellow);
-   printColours(yellow, blue);
-   printColours(yellow, red);
-   printColours(yellow, yellow);
-}
-
-int main(int argc, char** argv)
-{
-   int n = (argc == 2) ? atoi(argv[1]) : 600;
-
-   printColoursTable();
-   printf("\n");
-
-   const enum Colour r1[] = {   blue, red, yellow   };
-   const enum Colour r2[] = {   blue, red, yellow,
-               red, yellow, blue,
-               red, yellow, red, blue   };
-
-   runGame( n, sizeof(r1) / sizeof(r1[0]), r1 );
-   runGame( n, sizeof(r2) / sizeof(r2[0]), r2 );
-
-   return 0;
-}
diff --git a/gcc/testsuite/go.test/test/bench/chameneosredux.go b/gcc/testsuite/go.test/test/bench/chameneosredux.go
deleted file mode 100644 (file)
index 2cb1440..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by The Go Authors.
- */
-
-package main
-
-import (
-       "flag"
-       "fmt"
-       "strconv"
-)
-
-const (
-       blue = iota
-       red
-       yellow
-       ncol
-)
-
-var complement = [...]int{
-       red | red<<2: red,
-       red | yellow<<2: blue,
-       red | blue<<2: yellow,
-       yellow | red<<2: blue,
-       yellow | yellow<<2: yellow,
-       yellow | blue<<2: red,
-       blue | red<<2: yellow,
-       blue | yellow<<2: red,
-       blue | blue<<2: blue,
-}
-
-var colname = [...]string{
-       blue: "blue",
-       red: "red",
-       yellow: "yellow",
-}
-
-// information about the current state of a creature.
-type info struct {
-       colour int // creature's current colour.
-       name   int // creature's name.
-}
-
-// exclusive access data-structure kept inside meetingplace.
-// if mate is nil, it indicates there's no creature currently waiting;
-// otherwise the creature's info is stored in info, and
-// it is waiting to receive its mate's information on the mate channel.
-type rendez struct {
-       n    int         // current number of encounters.
-       mate chan<- info // creature waiting when non-nil.
-       info info        // info about creature waiting.
-}
-
-// result sent by each creature at the end of processing.
-type result struct {
-       met  int
-       same int
-}
-
-var n = 600
-
-func main() {
-       flag.Parse()
-       if flag.NArg() > 0 {
-               n, _ = strconv.Atoi(flag.Arg(0))
-       }
-
-       for c0 := 0; c0 < ncol; c0++ {
-               for c1 := 0; c1 < ncol; c1++ {
-                       fmt.Printf("%s + %s -> %s\n", colname[c0], colname[c1], colname[complement[c0|c1<<2]])
-               }
-       }
-       fmt.Print("\n")
-
-       pallmall([]int{blue, red, yellow})
-       pallmall([]int{blue, red, yellow, red, yellow, blue, red, yellow, red, blue})
-}
-
-func pallmall(cols []int) {
-
-       // invariant: meetingplace always contains a value unless a creature
-       // is currently dealing with it (whereupon it must put it back).
-       meetingplace := make(chan rendez, 1)
-       meetingplace <- rendez{n: 0}
-
-       ended := make(chan result)
-       msg := ""
-       for i, col := range cols {
-               go creature(info{col, i}, meetingplace, ended)
-               msg += " " + colname[col]
-       }
-       fmt.Println(msg)
-       tot := 0
-       // wait for all results
-       for _ = range cols {
-               result := <-ended
-               tot += result.met
-               fmt.Printf("%v%v\n", result.met, spell(result.same, true))
-       }
-       fmt.Printf("%v\n\n", spell(tot, true))
-}
-
-// in this function, variables ending in 0 refer to the local creature,
-// variables ending in 1 to the creature we've met.
-func creature(info0 info, meetingplace chan rendez, ended chan result) {
-       c0 := make(chan info)
-       met := 0
-       same := 0
-       for {
-               var othername int
-               // get access to rendez data and decide what to do.
-               switch r := <-meetingplace; {
-               case r.n >= n:
-                       // if no more meetings left, then send our result data and exit.
-                       meetingplace <- rendez{n: r.n}
-                       ended <- result{met, same}
-                       return
-               case r.mate == nil:
-                       // no creature waiting; wait for someone to meet us,
-                       // get their info and send our info in reply.
-                       meetingplace <- rendez{n: r.n, info: info0, mate: c0}
-                       info1 := <-c0
-                       othername = info1.name
-                       info0.colour = complement[info0.colour|info1.colour<<2]
-               default:
-                       // another creature is waiting for us with its info;
-                       // increment meeting count,
-                       // send them our info in reply.
-                       r.n++
-                       meetingplace <- rendez{n: r.n, mate: nil}
-                       r.mate <- info0
-                       othername = r.info.name
-                       info0.colour = complement[info0.colour|r.info.colour<<2]
-               }
-               if othername == info0.name {
-                       same++
-               }
-               met++
-       }
-}
-
-var digits = [...]string{"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}
-
-func spell(n int, required bool) string {
-       if n == 0 && !required {
-               return ""
-       }
-       return spell(n/10, false) + " " + digits[n%10]
-}
diff --git a/gcc/testsuite/go.test/test/bench/chameneosredux.txt b/gcc/testsuite/go.test/test/bench/chameneosredux.txt
deleted file mode 100644 (file)
index 6016d59..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-blue + blue -> blue
-blue + red -> yellow
-blue + yellow -> red
-red + blue -> yellow
-red + red -> red
-red + yellow -> blue
-yellow + blue -> red
-yellow + red -> blue
-yellow + yellow -> yellow
-
- blue red yellow
-400 zero
-400 zero
-400 zero
- one two zero zero
-
- blue red yellow red yellow blue red yellow red blue
-120 zero
-120 zero
-120 zero
-120 zero
-120 zero
-120 zero
-120 zero
-120 zero
-120 zero
-120 zero
- one two zero zero
-
diff --git a/gcc/testsuite/go.test/test/bench/fannkuch-parallel.go b/gcc/testsuite/go.test/test/bench/fannkuch-parallel.go
deleted file mode 100644 (file)
index 7e9b98d..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
- * The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by The Go Authors.
- * Based on fannkuch.scala by Rex Kerr
- */
-
-package main
-
-import (
-       "flag"
-       "fmt"
-       "runtime"
-)
-
-var n = flag.Int("n", 7, "count")
-var nCPU = flag.Int("ncpu", 4, "number of cpus")
-
-type Job struct {
-       start []int
-       n     int
-}
-
-type Found struct {
-       who *Kucher
-       k   int
-}
-
-type Kucher struct {
-       perm []int
-       temp []int
-       flip []int
-       in   chan Job
-}
-
-func NewKucher(length int) *Kucher {
-       return &Kucher{
-               perm: make([]int, length),
-               temp: make([]int, length),
-               flip: make([]int, length),
-               in:   make(chan Job),
-       }
-}
-
-func (k *Kucher) permute(n int) bool {
-       i := 0
-       for ; i < n-1 && k.flip[i] == 0; i++ {
-               t := k.perm[0]
-               j := 0
-               for ; j <= i; j++ {
-                       k.perm[j] = k.perm[j+1]
-               }
-               k.perm[j] = t
-       }
-       k.flip[i]--
-       for i > 0 {
-               i--
-               k.flip[i] = i
-       }
-       return k.flip[n-1] >= 0
-}
-
-func (k *Kucher) count() int {
-       K := 0
-       copy(k.temp, k.perm)
-       for k.temp[0] != 0 {
-               m := k.temp[0]
-               for i := 0; i < m; i++ {
-                       k.temp[i], k.temp[m] = k.temp[m], k.temp[i]
-                       m--
-               }
-               K++
-       }
-       return K
-}
-
-func (k *Kucher) Run(foreman chan<- Found) {
-       for job := range k.in {
-               verbose := 30
-               copy(k.perm, job.start)
-               for i, v := range k.perm {
-                       if v != i {
-                               verbose = 0
-                       }
-                       k.flip[i] = i
-               }
-               K := 0
-               for {
-                       if verbose > 0 {
-                               for _, p := range k.perm {
-                                       fmt.Print(p + 1)
-                               }
-                               fmt.Println()
-                               verbose--
-                       }
-                       count := k.count()
-                       if count > K {
-                               K = count
-                       }
-                       if !k.permute(job.n) {
-                               break
-                       }
-               }
-               foreman <- Found{k, K}
-       }
-}
-
-type Fanner struct {
-       jobind   int
-       jobsdone int
-       k        int
-       jobs     []Job
-       workers  []*Kucher
-       in       chan Found
-       result   chan int
-}
-
-func NewFanner(jobs []Job, workers []*Kucher) *Fanner {
-       return &Fanner{
-               jobs: jobs, workers: workers,
-               in:     make(chan Found),
-               result: make(chan int),
-       }
-}
-
-func (f *Fanner) Run(N int) {
-       for msg := range f.in {
-               if msg.k > f.k {
-                       f.k = msg.k
-               }
-               if msg.k >= 0 {
-                       f.jobsdone++
-               }
-               if f.jobind < len(f.jobs) {
-                       msg.who.in <- f.jobs[f.jobind]
-                       f.jobind++
-               } else if f.jobsdone == len(f.jobs) {
-                       f.result <- f.k
-                       return
-               }
-       }
-}
-
-func swapped(a []int, i, j int) []int {
-       b := make([]int, len(a))
-       copy(b, a)
-       b[i], b[j] = a[j], a[i]
-       return b
-}
-
-func main() {
-       flag.Parse()
-       runtime.GOMAXPROCS(*nCPU)
-       N := *n
-       base := make([]int, N)
-       for i := range base {
-               base[i] = i
-       }
-
-       njobs := 1
-       if N > 8 {
-               njobs += (N*(N-1))/2 - 28 // njobs = 1 + sum(8..N-1) = 1 + sum(1..N-1) - sum(1..7)
-       }
-       jobs := make([]Job, njobs)
-       jobsind := 0
-
-       firstN := N
-       if firstN > 8 {
-               firstN = 8
-       }
-       jobs[jobsind] = Job{base, firstN}
-       jobsind++
-       for i := N - 1; i >= 8; i-- {
-               for j := 0; j < i; j++ {
-                       jobs[jobsind] = Job{swapped(base, i, j), i}
-                       jobsind++
-               }
-       }
-
-       nworkers := *nCPU
-       if njobs < nworkers {
-               nworkers = njobs
-       }
-       workers := make([]*Kucher, nworkers)
-       foreman := NewFanner(jobs, workers)
-       go foreman.Run(N)
-       for i := range workers {
-               k := NewKucher(N)
-               workers[i] = k
-               go k.Run(foreman.in)
-               foreman.in <- Found{k, -1}
-       }
-       fmt.Printf("Pfannkuchen(%d) = %d\n", N, <-foreman.result)
-}
diff --git a/gcc/testsuite/go.test/test/bench/fannkuch-parallel.txt b/gcc/testsuite/go.test/test/bench/fannkuch-parallel.txt
deleted file mode 100644 (file)
index e66f779..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-1234567
-2134567
-2314567
-3214567
-3124567
-1324567
-2341567
-3241567
-3421567
-4321567
-4231567
-2431567
-3412567
-4312567
-4132567
-1432567
-1342567
-3142567
-4123567
-1423567
-1243567
-2143567
-2413567
-4213567
-2345167
-3245167
-3425167
-4325167
-4235167
-2435167
-Pfannkuchen(7) = 16
diff --git a/gcc/testsuite/go.test/test/bench/fannkuch.c b/gcc/testsuite/go.test/test/bench/fannkuch.c
deleted file mode 100644 (file)
index e576b54..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
- * The Computer Language Shootout
- * http://shootout.alioth.debian.org/
- * Contributed by Heiner Marxen
- *
- * "fannkuch"  for C gcc
- *
- * $Id: fannkuch.1.gcc.code,v 1.15 2009-04-28 15:39:31 igouy-guest Exp $
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#define Int    int
-#define Aint   int
-
-    static long
-fannkuch( int n )
-{
-    Aint*      perm;
-    Aint*      perm1;
-    Aint*      count;
-    long       flips;
-    long       flipsMax;
-    Int                r;
-    Int                i;
-    Int                k;
-    Int                didpr;
-    const Int  n1      = n - 1;
-
-    if( n < 1 ) return 0;
-
-    perm  = calloc(n, sizeof(*perm ));
-    perm1 = calloc(n, sizeof(*perm1));
-    count = calloc(n, sizeof(*count));
-
-    for( i=0 ; i<n ; ++i ) perm1[i] = i;       /* initial (trivial) permu */
-
-    r = n; didpr = 0; flipsMax = 0;
-    for(;;) {
-       if( didpr < 30 ) {
-           for( i=0 ; i<n ; ++i ) printf("%d", (int)(1+perm1[i]));
-           printf("\n");
-           ++didpr;
-       }
-       for( ; r!=1 ; --r ) {
-           count[r-1] = r;
-       }
-
-#define XCH(x,y)       { Aint t_mp; t_mp=(x); (x)=(y); (y)=t_mp; }
-
-       if( ! (perm1[0]==0 || perm1[n1]==n1) ) {
-           flips = 0;
-           for( i=1 ; i<n ; ++i ) {    /* perm = perm1 */
-               perm[i] = perm1[i];
-           }
-           k = perm1[0];               /* cache perm[0] in k */
-           do {                        /* k!=0 ==> k>0 */
-               Int     j;
-               for( i=1, j=k-1 ; i<j ; ++i, --j ) {
-                   XCH(perm[i], perm[j])
-               }
-               ++flips;
-               /*
-                * Now exchange k (caching perm[0]) and perm[k]... with care!
-                * XCH(k, perm[k]) does NOT work!
-                */
-               j=perm[k]; perm[k]=k ; k=j;
-           }while( k );
-           if( flipsMax < flips ) {
-               flipsMax = flips;
-           }
-       }
-
-       for(;;) {
-           if( r == n ) {
-               return flipsMax;
-           }
-           /* rotate down perm[0..r] by one */
-           {
-               Int     perm0 = perm1[0];
-               i = 0;
-               while( i < r ) {
-                   k = i+1;
-                   perm1[i] = perm1[k];
-                   i = k;
-               }
-               perm1[r] = perm0;
-           }
-           if( (count[r] -= 1) > 0 ) {
-               break;
-           }
-           ++r;
-       }
-    }
-}
-
-    int
-main( int argc, char* argv[] )
-{
-    int                n = (argc>1) ? atoi(argv[1]) : 0;
-
-    printf("Pfannkuchen(%d) = %ld\n", n, fannkuch(n));
-    return 0;
-}
diff --git a/gcc/testsuite/go.test/test/bench/fannkuch.go b/gcc/testsuite/go.test/test/bench/fannkuch.go
deleted file mode 100644 (file)
index b554c77..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
- * The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by The Go Authors.
- * Based on fannkuch.c by Heiner Marxen
- */
-
-package main
-
-import (
-       "flag"
-       "fmt"
-)
-
-var n = flag.Int("n", 7, "count")
-
-func fannkuch(n int) int {
-       if n < 1 {
-               return 0
-       }
-
-       n1 := n - 1
-       perm := make([]int, n)
-       perm1 := make([]int, n)
-       count := make([]int, n)
-
-       for i := 0; i < n; i++ {
-               perm1[i] = i // initial (trivial) permutation
-       }
-
-       r := n
-       didpr := 0
-       flipsMax := 0
-       for {
-               if didpr < 30 {
-                       for i := 0; i < n; i++ {
-                               fmt.Printf("%d", 1+perm1[i])
-                       }
-                       fmt.Printf("\n")
-                       didpr++
-               }
-               for ; r != 1; r-- {
-                       count[r-1] = r
-               }
-
-               if perm1[0] != 0 && perm1[n1] != n1 {
-                       flips := 0
-                       for i := 1; i < n; i++ { // perm = perm1
-                               perm[i] = perm1[i]
-                       }
-                       k := perm1[0] // cache perm[0] in k
-                       for {         // k!=0 ==> k>0
-                               for i, j := 1, k-1; i < j; i, j = i+1, j-1 {
-                                       perm[i], perm[j] = perm[j], perm[i]
-                               }
-                               flips++
-                               // Now exchange k (caching perm[0]) and perm[k]... with care!
-                               j := perm[k]
-                               perm[k] = k
-                               k = j
-                               if k == 0 {
-                                       break
-                               }
-                       }
-                       if flipsMax < flips {
-                               flipsMax = flips
-                       }
-               }
-
-               for ; r < n; r++ {
-                       // rotate down perm[0..r] by one
-                       perm0 := perm1[0]
-                       for i := 0; i < r; i++ {
-                               perm1[i] = perm1[i+1]
-                       }
-                       perm1[r] = perm0
-                       count[r]--
-                       if count[r] > 0 {
-                               break
-                       }
-               }
-               if r == n {
-                       return flipsMax
-               }
-       }
-       return 0
-}
-
-func main() {
-       flag.Parse()
-       fmt.Printf("Pfannkuchen(%d) = %d\n", *n, fannkuch(*n))
-}
diff --git a/gcc/testsuite/go.test/test/bench/fannkuch.txt b/gcc/testsuite/go.test/test/bench/fannkuch.txt
deleted file mode 100644 (file)
index e66f779..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-1234567
-2134567
-2314567
-3214567
-3124567
-1324567
-2341567
-3241567
-3421567
-4321567
-4231567
-2431567
-3412567
-4312567
-4132567
-1432567
-1342567
-3142567
-4123567
-1423567
-1243567
-2143567
-2413567
-4213567
-2345167
-3245167
-3425167
-4325167
-4235167
-2435167
-Pfannkuchen(7) = 16
diff --git a/gcc/testsuite/go.test/test/bench/fasta-1000.out b/gcc/testsuite/go.test/test/bench/fasta-1000.out
deleted file mode 100644 (file)
index f1caba0..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
->ONE Homo sapiens alu
-GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA
-TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT
-AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG
-GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG
-CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT
-GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA
-GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA
-TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG
-AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA
-GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT
-AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC
-AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG
-GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC
-CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG
-AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT
-TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA
-TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT
-GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG
-TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT
-CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG
-CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG
-TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA
-CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG
-AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG
-GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC
-TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA
-TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA
-GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT
-GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC
-ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT
-TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC
-CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG
-CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG
-GGCGACAGAGCGAGACTCCG
->TWO IUB ambiguity codes
-cttBtatcatatgctaKggNcataaaSatgtaaaDcDRtBggDtctttataattcBgtcg
-tactDtDagcctatttSVHtHttKtgtHMaSattgWaHKHttttagacatWatgtRgaaa
-NtactMcSMtYtcMgRtacttctWBacgaaatatagScDtttgaagacacatagtVgYgt
-cattHWtMMWcStgttaggKtSgaYaaccWStcgBttgcgaMttBYatcWtgacaYcaga
-gtaBDtRacttttcWatMttDBcatWtatcttactaBgaYtcttgttttttttYaaScYa
-HgtgttNtSatcMtcVaaaStccRcctDaataataStcYtRDSaMtDttgttSagtRRca
-tttHatSttMtWgtcgtatSSagactYaaattcaMtWatttaSgYttaRgKaRtccactt
-tattRggaMcDaWaWagttttgacatgttctacaaaRaatataataaMttcgDacgaSSt
-acaStYRctVaNMtMgtaggcKatcttttattaaaaagVWaHKYagtttttatttaacct
-tacgtVtcVaattVMBcttaMtttaStgacttagattWWacVtgWYagWVRctDattBYt
-gtttaagaagattattgacVatMaacattVctgtBSgaVtgWWggaKHaatKWcBScSWa
-accRVacacaaactaccScattRatatKVtactatatttHttaagtttSKtRtacaaagt
-RDttcaaaaWgcacatWaDgtDKacgaacaattacaRNWaatHtttStgttattaaMtgt
-tgDcgtMgcatBtgcttcgcgaDWgagctgcgaggggVtaaScNatttacttaatgacag
-cccccacatYScaMgtaggtYaNgttctgaMaacNaMRaacaaacaKctacatagYWctg
-ttWaaataaaataRattagHacacaagcgKatacBttRttaagtatttccgatctHSaat
-actcNttMaagtattMtgRtgaMgcataatHcMtaBSaRattagttgatHtMttaaKagg
-YtaaBataSaVatactWtataVWgKgttaaaacagtgcgRatatacatVtHRtVYataSa
-KtWaStVcNKHKttactatccctcatgWHatWaRcttactaggatctataDtDHBttata
-aaaHgtacVtagaYttYaKcctattcttcttaataNDaaggaaaDYgcggctaaWSctBa
-aNtgctggMBaKctaMVKagBaactaWaDaMaccYVtNtaHtVWtKgRtcaaNtYaNacg
-gtttNattgVtttctgtBaWgtaattcaagtcaVWtactNggattctttaYtaaagccgc
-tcttagHVggaYtgtNcDaVagctctctKgacgtatagYcctRYHDtgBattDaaDgccK
-tcHaaStttMcctagtattgcRgWBaVatHaaaataYtgtttagMDMRtaataaggatMt
-ttctWgtNtgtgaaaaMaatatRtttMtDgHHtgtcattttcWattRSHcVagaagtacg
-ggtaKVattKYagactNaatgtttgKMMgYNtcccgSKttctaStatatNVataYHgtNa
-BKRgNacaactgatttcctttaNcgatttctctataScaHtataRagtcRVttacDSDtt
-aRtSatacHgtSKacYagttMHtWataggatgactNtatSaNctataVtttRNKtgRacc
-tttYtatgttactttttcctttaaacatacaHactMacacggtWataMtBVacRaSaatc
-cgtaBVttccagccBcttaRKtgtgcctttttRtgtcagcRttKtaaacKtaaatctcac
-aattgcaNtSBaaccgggttattaaBcKatDagttactcttcattVtttHaaggctKKga
-tacatcBggScagtVcacattttgaHaDSgHatRMaHWggtatatRgccDttcgtatcga
-aacaHtaagttaRatgaVacttagattVKtaaYttaaatcaNatccRttRRaMScNaaaD
-gttVHWgtcHaaHgacVaWtgttScactaagSgttatcttagggDtaccagWattWtRtg
-ttHWHacgattBtgVcaYatcggttgagKcWtKKcaVtgaYgWctgYggVctgtHgaNcV
-taBtWaaYatcDRaaRtSctgaHaYRttagatMatgcatttNattaDttaattgttctaa
-ccctcccctagaWBtttHtBccttagaVaatMcBHagaVcWcagBVttcBtaYMccagat
-gaaaaHctctaacgttagNWRtcggattNatcRaNHttcagtKttttgWatWttcSaNgg
-gaWtactKKMaacatKatacNattgctWtatctaVgagctatgtRaHtYcWcttagccaa
-tYttWttaWSSttaHcaaaaagVacVgtaVaRMgattaVcDactttcHHggHRtgNcctt
-tYatcatKgctcctctatVcaaaaKaaaagtatatctgMtWtaaaacaStttMtcgactt
-taSatcgDataaactaaacaagtaaVctaggaSccaatMVtaaSKNVattttgHccatca
-cBVctgcaVatVttRtactgtVcaattHgtaaattaaattttYtatattaaRSgYtgBag
-aHSBDgtagcacRHtYcBgtcacttacactaYcgctWtattgSHtSatcataaatataHt
-cgtYaaMNgBaatttaRgaMaatatttBtttaaaHHKaatctgatWatYaacttMctctt
-ttVctagctDaaagtaVaKaKRtaacBgtatccaaccactHHaagaagaaggaNaaatBW
-attccgStaMSaMatBttgcatgRSacgttVVtaaDMtcSgVatWcaSatcttttVatag
-ttactttacgatcaccNtaDVgSRcgVcgtgaacgaNtaNatatagtHtMgtHcMtagaa
-attBgtataRaaaacaYKgtRccYtatgaagtaataKgtaaMttgaaRVatgcagaKStc
-tHNaaatctBBtcttaYaBWHgtVtgacagcaRcataWctcaBcYacYgatDgtDHccta
->THREE Homo sapiens frequency
-aacacttcaccaggtatcgtgaaggctcaagattacccagagaacctttgcaatataaga
-atatgtatgcagcattaccctaagtaattatattctttttctgactcaaagtgacaagcc
-ctagtgtatattaaatcggtatatttgggaaattcctcaaactatcctaatcaggtagcc
-atgaaagtgatcaaaaaagttcgtacttataccatacatgaattctggccaagtaaaaaa
-tagattgcgcaaaattcgtaccttaagtctctcgccaagatattaggatcctattactca
-tatcgtgtttttctttattgccgccatccccggagtatctcacccatccttctcttaaag
-gcctaatattacctatgcaaataaacatatattgttgaaaattgagaacctgatcgtgat
-tcttatgtgtaccatatgtatagtaatcacgcgactatatagtgctttagtatcgcccgt
-gggtgagtgaatattctgggctagcgtgagatagtttcttgtcctaatatttttcagatc
-gaatagcttctatttttgtgtttattgacatatgtcgaaactccttactcagtgaaagtc
-atgaccagatccacgaacaatcttcggaatcagtctcgttttacggcggaatcttgagtc
-taacttatatcccgtcgcttactttctaacaccccttatgtatttttaaaattacgttta
-ttcgaacgtacttggcggaagcgttattttttgaagtaagttacattgggcagactcttg
-acattttcgatacgactttctttcatccatcacaggactcgttcgtattgatatcagaag
-ctcgtgatgattagttgtcttctttaccaatactttgaggcctattctgcgaaatttttg
-ttgccctgcgaacttcacataccaaggaacacctcgcaacatgccttcatatccatcgtt
-cattgtaattcttacacaatgaatcctaagtaattacatccctgcgtaaaagatggtagg
-ggcactgaggatatattaccaagcatttagttatgagtaatcagcaatgtttcttgtatt
-aagttctctaaaatagttacatcgtaatgttatctcgggttccgcgaataaacgagatag
-attcattatatatggccctaagcaaaaacctcctcgtattctgttggtaattagaatcac
-acaatacgggttgagatattaattatttgtagtacgaagagatataaaaagatgaacaat
-tactcaagtcaagatgtatacgggatttataataaaaatcgggtagagatctgctttgca
-attcagacgtgccactaaatcgtaatatgtcgcgttacatcagaaagggtaactattatt
-aattaataaagggcttaatcactacatattagatcttatccgatagtcttatctattcgt
-tgtatttttaagcggttctaattcagtcattatatcagtgctccgagttctttattattg
-ttttaaggatgacaaaatgcctcttgttataacgctgggagaagcagactaagagtcgga
-gcagttggtagaatgaggctgcaaaagacggtctcgacgaatggacagactttactaaac
-caatgaaagacagaagtagagcaaagtctgaagtggtatcagcttaattatgacaaccct
-taatacttccctttcgccgaatactggcgtggaaaggttttaaaagtcgaagtagttaga
-ggcatctctcgctcataaataggtagactactcgcaatccaatgtgactatgtaatactg
-ggaacatcagtccgcgatgcagcgtgtttatcaaccgtccccactcgcctggggagacat
-gagaccacccccgtggggattattagtccgcagtaatcgactcttgacaatccttttcga
-ttatgtcatagcaatttacgacagttcagcgaagtgactactcggcgaaatggtattact
-aaagcattcgaacccacatgaatgtgattcttggcaatttctaatccactaaagcttttc
-cgttgaatctggttgtagatatttatataagttcactaattaagatcacggtagtatatt
-gatagtgatgtctttgcaagaggttggccgaggaatttacggattctctattgatacaat
-ttgtctggcttataactcttaaggctgaaccaggcgtttttagacgacttgatcagctgt
-tagaatggtttggactccctctttcatgtcagtaacatttcagccgttattgttacgata
-tgcttgaacaatattgatctaccacacacccatagtatattttataggtcatgctgttac
-ctacgagcatggtattccacttcccattcaatgagtattcaacatcactagcctcagaga
-tgatgacccacctctaataacgtcacgttgcggccatgtgaaacctgaacttgagtagac
-gatatcaagcgctttaaattgcatataacatttgagggtaaagctaagcggatgctttat
-ataatcaatactcaataataagatttgattgcattttagagttatgacacgacatagttc
-actaacgagttactattcccagatctagactgaagtactgatcgagacgatccttacgtc
-gatgatcgttagttatcgacttaggtcgggtctctagcggtattggtacttaaccggaca
-ctatactaataacccatgatcaaagcataacagaatacagacgataatttcgccaacata
-tatgtacagaccccaagcatgagaagctcattgaaagctatcattgaagtcccgctcaca
-atgtgtcttttccagacggtttaactggttcccgggagtcctggagtttcgacttacata
-aatggaaacaatgtattttgctaatttatctatagcgtcatttggaccaatacagaatat
-tatgttgcctagtaatccactataacccgcaagtgctgatagaaaatttttagacgattt
-ataaatgccccaagtatccctcccgtgaatcctccgttatactaattagtattcgttcat
-acgtataccgcgcatatatgaacatttggcgataaggcgcgtgaattgttacgtgacaga
-gatagcagtttcttgtgatatggttaacagacgtacatgaagggaaactttatatctata
-gtgatgcttccgtagaaataccgccactggtctgccaatgatgaagtatgtagctttagg
-tttgtactatgaggctttcgtttgtttgcagagtataacagttgcgagtgaaaaaccgac
-gaatttatactaatacgctttcactattggctacaaaatagggaagagtttcaatcatga
-gagggagtatatggatgctttgtagctaaaggtagaacgtatgtatatgctgccgttcat
-tcttgaaagatacataagcgataagttacgacaattataagcaacatccctaccttcgta
-acgatttcactgttactgcgcttgaaatacactatggggctattggcggagagaagcaga
-tcgcgccgagcatatacgagacctataatgttgatgatagagaaggcgtctgaattgata
-catcgaagtacactttctttcgtagtatctctcgtcctctttctatctccggacacaaga
-attaagttatatatatagagtcttaccaatcatgttgaatcctgattctcagagttcttt
-ggcgggccttgtgatgactgagaaacaatgcaatattgctccaaatttcctaagcaaatt
-ctcggttatgttatgttatcagcaaagcgttacgttatgttatttaaatctggaatgacg
-gagcgaagttcttatgtcggtgtgggaataattcttttgaagacagcactccttaaataa
-tatcgctccgtgtttgtatttatcgaatgggtctgtaaccttgcacaagcaaatcggtgg
-tgtatatatcggataacaattaatacgatgttcatagtgacagtatactgatcgagtcct
-ctaaagtcaattacctcacttaacaatctcattgatgttgtgtcattcccggtatcgccc
-gtagtatgtgctctgattgaccgagtgtgaaccaaggaacatctactaatgcctttgtta
-ggtaagatctctctgaattccttcgtgccaacttaaaacattatcaaaatttcttctact
-tggattaactacttttacgagcatggcaaattcccctgtggaagacggttcattattatc
-ggaaaccttatagaaattgcgtgttgactgaaattagatttttattgtaagagttgcatc
-tttgcgattcctctggtctagcttccaatgaacagtcctcccttctattcgacatcgggt
-ccttcgtacatgtctttgcgatgtaataattaggttcggagtgtggccttaatgggtgca
-actaggaatacaacgcaaatttgctgacatgatagcaaatcggtatgccggcaccaaaac
-gtgctccttgcttagcttgtgaatgagactcagtagttaaataaatccatatctgcaatc
-gattccacaggtattgtccactatctttgaactactctaagagatacaagcttagctgag
-accgaggtgtatatgactacgctgatatctgtaaggtaccaatgcaggcaaagtatgcga
-gaagctaataccggctgtttccagctttataagattaaaatttggctgtcctggcggcct
-cagaattgttctatcgtaatcagttggttcattaattagctaagtacgaggtacaactta
-tctgtcccagaacagctccacaagtttttttacagccgaaacccctgtgtgaatcttaat
-atccaagcgcgttatctgattagagtttacaactcagtattttatcagtacgttttgttt
-ccaacattacccggtatgacaaaatgacgccacgtgtcgaataatggtctgaccaatgta
-ggaagtgaaaagataaatat
diff --git a/gcc/testsuite/go.test/test/bench/fasta.c b/gcc/testsuite/go.test/test/bench/fasta.c
deleted file mode 100644 (file)
index 64c1c52..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
- * http://shootout.alioth.debian.org/u32/program.php?test=fasta&lang=gcc&id=3
- */
-
-/*  The Computer Language Benchmarks Game
- *  http://shootout.alioth.debian.org/
- *
- *  contributed by Petr Prokhorenkov
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifndef fwrite_unlocked
-// not available on OS X 
-#define fwrite_unlocked fwrite
-#define fputc_unlocked fputc
-#define fputs_unlocked fputs
-#endif
-
-#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))
-#define unlikely(x) __builtin_expect((x), 0)
-
-#define IM 139968
-#define IA 3877
-#define IC 29573
-
-#define LINE_LEN 60
-#define LOOKUP_SIZE 4096
-#define LOOKUP_SCALE ((float)(LOOKUP_SIZE - 1))
-
-typedef unsigned random_t;
-
-void
-random_init(random_t *random) {
-    *random = 42;
-}
-
-// Special version with result rescaled to LOOKUP_SCALE.
-static inline
-float
-random_next_lookup(random_t *random) {
-    *random = (*random*IA + IC)%IM;
-
-    return (*random)*(LOOKUP_SCALE/IM);
-}
-
-struct amino_acid {
-   char sym;
-   float prob;
-   float cprob_lookup;
-};
-
-void
-repeat(const char *alu, const char *title, int n) {
-    int len = strlen(alu);
-    char buffer[len + LINE_LEN];
-    int pos = 0;
-
-    memcpy(buffer, alu, len);
-    memcpy(buffer + len, alu, LINE_LEN);
-
-    fputs_unlocked(title, stdout);
-    while (n > 0) {
-        int bytes = n > LINE_LEN ? LINE_LEN : n;
-
-        fwrite_unlocked(buffer + pos, bytes, 1, stdout);
-        pos += bytes;
-        if (pos > len) {
-            pos -= len;
-        }
-        fputc_unlocked('\n', stdout);
-        n -= bytes;
-    }
-}
-
-/*
- * Lookup table contains mapping from real values to cumulative
- * probabilities. Careful selection of table size allows lookup
- * virtually in constant time.
- *
- * All cumulative probabilities are rescaled to LOOKUP_SCALE,
- * this allows to save one multiplication operation on each iteration
- * in randomize().
- */
-
-void *
-fill_lookup(struct amino_acid **lookup, struct amino_acid *amino_acid, int amino_acid_size) {
-    float p = 0;
-    int i, j;
-
-    for (i = 0; i < amino_acid_size; i++) {
-        p += amino_acid[i].prob;
-        amino_acid[i].cprob_lookup = p*LOOKUP_SCALE;
-    }
-
-    // Prevent rounding error.
-    amino_acid[amino_acid_size - 1].cprob_lookup = LOOKUP_SIZE - 1;
-
-    for (i = 0, j = 0; i < LOOKUP_SIZE; i++) {
-        while (amino_acid[j].cprob_lookup < i) {
-            j++;
-        }
-        lookup[i] = &amino_acid[j];
-    }
-
-    return 0;
-}
-
-void
-randomize(struct amino_acid *amino_acid, int amino_acid_size,
-        const char *title, int n, random_t *rand) {
-    struct amino_acid *lookup[LOOKUP_SIZE];
-    char line_buffer[LINE_LEN + 1];
-    int i, j;
-
-    line_buffer[LINE_LEN] = '\n';
-
-    fill_lookup(lookup, amino_acid, amino_acid_size);
-
-    fputs_unlocked(title, stdout);
-
-    for (i = 0, j = 0; i < n; i++, j++) {
-        if (j == LINE_LEN) {
-            fwrite_unlocked(line_buffer, LINE_LEN + 1, 1, stdout);
-            j = 0;
-        }
-
-        float r = random_next_lookup(rand);
-        struct amino_acid *u = lookup[(short)r];
-        while (unlikely(u->cprob_lookup < r)) {
-            ++u;
-        }
-        line_buffer[j] = u->sym;
-    }
-    line_buffer[j] = '\n';
-    fwrite_unlocked(line_buffer, j + 1, 1, stdout);
-}
-
-struct amino_acid amino_acid[] = {
-   { 'a', 0.27 },
-   { 'c', 0.12 },
-   { 'g', 0.12 },
-   { 't', 0.27 },
-
-   { 'B', 0.02 },
-   { 'D', 0.02 },
-   { 'H', 0.02 },
-   { 'K', 0.02 },
-   { 'M', 0.02 },
-   { 'N', 0.02 },
-   { 'R', 0.02 },
-   { 'S', 0.02 },
-   { 'V', 0.02 },
-   { 'W', 0.02 },
-   { 'Y', 0.02 },
-};
-
-struct amino_acid homo_sapiens[] = {
-   { 'a', 0.3029549426680 },
-   { 'c', 0.1979883004921 },
-   { 'g', 0.1975473066391 },
-   { 't', 0.3015094502008 },
-};
-
-static const char alu[] =
-   "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTG"
-   "GGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGA"
-   "GACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAA"
-   "AATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT"
-   "CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAAC"
-   "CCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTG"
-   "CACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA";
-
-int
-main(int argc, const char **argv) {
-    int n = argc > 1 ? atoi( argv[1] ) : 512;
-    random_t rand;
-
-    random_init(&rand);
-
-    repeat(alu, ">ONE Homo sapiens alu\n", n*2);
-    randomize(amino_acid, ARRAY_SIZE(amino_acid),
-            ">TWO IUB ambiguity codes\n", n*3, &rand);
-    randomize(homo_sapiens, ARRAY_SIZE(homo_sapiens),
-            ">THREE Homo sapiens frequency\n", n*5, &rand);
-
-    return 0;
-}
diff --git a/gcc/testsuite/go.test/test/bench/fasta.go b/gcc/testsuite/go.test/test/bench/fasta.go
deleted file mode 100644 (file)
index d13edd5..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by The Go Authors.
- * Based on C program by by Petr Prokhorenkov.
- */
-
-package main
-
-import (
-       "flag"
-       "os"
-)
-
-var out = make(buffer, 0, 32768)
-
-var n = flag.Int("n", 1000, "length of result")
-
-const Line = 60
-
-func Repeat(alu []byte, n int) {
-       buf := append(alu, alu...)
-       off := 0
-       for n > 0 {
-               m := n
-               if m > Line {
-                       m = Line
-               }
-               buf1 := out.NextWrite(m + 1)
-               copy(buf1, buf[off:])
-               buf1[m] = '\n'
-               if off += m; off >= len(alu) {
-                       off -= len(alu)
-               }
-               n -= m
-       }
-}
-
-const (
-       IM = 139968
-       IA = 3877
-       IC = 29573
-
-       LookupSize  = 4096
-       LookupScale float64 = LookupSize - 1
-)
-
-var rand uint32 = 42
-
-type Acid struct {
-       sym   byte
-       prob  float64
-       cprob float64
-       next  *Acid
-}
-
-func computeLookup(acid []Acid) *[LookupSize]*Acid {
-       var lookup [LookupSize]*Acid
-       var p float64
-       for i := range acid {
-               p += acid[i].prob
-               acid[i].cprob = p * LookupScale
-               if i > 0 {
-                       acid[i-1].next = &acid[i]
-               }
-       }
-       acid[len(acid)-1].cprob = 1.0 * LookupScale
-
-       j := 0
-       for i := range lookup {
-               for acid[j].cprob < float64(i) {
-                       j++
-               }
-               lookup[i] = &acid[j]
-       }
-
-       return &lookup
-}
-
-func Random(acid []Acid, n int) {
-       lookup := computeLookup(acid)
-       for n > 0 {
-               m := n
-               if m > Line {
-                       m = Line
-               }
-               buf := out.NextWrite(m + 1)
-               f := LookupScale / IM
-               myrand := rand
-               for i := 0; i < m; i++ {
-                       myrand = (myrand*IA + IC) % IM
-                       r := float64(int(myrand)) * f
-                       a := lookup[int(r)]
-                       for a.cprob < r {
-                               a = a.next
-                       }
-                       buf[i] = a.sym
-               }
-               rand = myrand
-               buf[m] = '\n'
-               n -= m
-       }
-}
-
-func main() {
-       defer out.Flush()
-
-       flag.Parse()
-
-       iub := []Acid{
-               {prob: 0.27, sym: 'a'},
-               {prob: 0.12, sym: 'c'},
-               {prob: 0.12, sym: 'g'},
-               {prob: 0.27, sym: 't'},
-               {prob: 0.02, sym: 'B'},
-               {prob: 0.02, sym: 'D'},
-               {prob: 0.02, sym: 'H'},
-               {prob: 0.02, sym: 'K'},
-               {prob: 0.02, sym: 'M'},
-               {prob: 0.02, sym: 'N'},
-               {prob: 0.02, sym: 'R'},
-               {prob: 0.02, sym: 'S'},
-               {prob: 0.02, sym: 'V'},
-               {prob: 0.02, sym: 'W'},
-               {prob: 0.02, sym: 'Y'},
-       }
-
-       homosapiens := []Acid{
-               {prob: 0.3029549426680, sym: 'a'},
-               {prob: 0.1979883004921, sym: 'c'},
-               {prob: 0.1975473066391, sym: 'g'},
-               {prob: 0.3015094502008, sym: 't'},
-       }
-
-       alu := []byte(
-               "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG" +
-                       "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA" +
-                       "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT" +
-                       "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA" +
-                       "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG" +
-                       "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC" +
-                       "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA")
-
-       out.WriteString(">ONE Homo sapiens alu\n")
-       Repeat(alu, 2**n)
-       out.WriteString(">TWO IUB ambiguity codes\n")
-       Random(iub, 3**n)
-       out.WriteString(">THREE Homo sapiens frequency\n")
-       Random(homosapiens, 5**n)
-}
-
-
-type buffer []byte
-
-func (b *buffer) Flush() {
-       p := *b
-       if len(p) > 0 {
-               os.Stdout.Write(p)
-       }
-       *b = p[0:0]
-}
-
-func (b *buffer) WriteString(s string) {
-       p := b.NextWrite(len(s))
-       copy(p, s)
-}
-
-func (b *buffer) NextWrite(n int) []byte {
-       p := *b
-       if len(p)+n > cap(p) {
-               b.Flush()
-               p = *b
-       }
-       out := p[len(p) : len(p)+n]
-       *b = p[:len(p)+n]
-       return out
-}
diff --git a/gcc/testsuite/go.test/test/bench/fasta.txt b/gcc/testsuite/go.test/test/bench/fasta.txt
deleted file mode 100644 (file)
index f1caba0..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
->ONE Homo sapiens alu
-GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA
-TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT
-AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG
-GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG
-CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT
-GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA
-GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA
-TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG
-AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA
-GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT
-AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC
-AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG
-GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC
-CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG
-AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT
-TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA
-TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT
-GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG
-TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT
-CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG
-CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG
-TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA
-CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG
-AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG
-GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC
-TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA
-TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA
-GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT
-GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC
-ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT
-TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC
-CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG
-CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG
-GGCGACAGAGCGAGACTCCG
->TWO IUB ambiguity codes
-cttBtatcatatgctaKggNcataaaSatgtaaaDcDRtBggDtctttataattcBgtcg
-tactDtDagcctatttSVHtHttKtgtHMaSattgWaHKHttttagacatWatgtRgaaa
-NtactMcSMtYtcMgRtacttctWBacgaaatatagScDtttgaagacacatagtVgYgt
-cattHWtMMWcStgttaggKtSgaYaaccWStcgBttgcgaMttBYatcWtgacaYcaga
-gtaBDtRacttttcWatMttDBcatWtatcttactaBgaYtcttgttttttttYaaScYa
-HgtgttNtSatcMtcVaaaStccRcctDaataataStcYtRDSaMtDttgttSagtRRca
-tttHatSttMtWgtcgtatSSagactYaaattcaMtWatttaSgYttaRgKaRtccactt
-tattRggaMcDaWaWagttttgacatgttctacaaaRaatataataaMttcgDacgaSSt
-acaStYRctVaNMtMgtaggcKatcttttattaaaaagVWaHKYagtttttatttaacct
-tacgtVtcVaattVMBcttaMtttaStgacttagattWWacVtgWYagWVRctDattBYt
-gtttaagaagattattgacVatMaacattVctgtBSgaVtgWWggaKHaatKWcBScSWa
-accRVacacaaactaccScattRatatKVtactatatttHttaagtttSKtRtacaaagt
-RDttcaaaaWgcacatWaDgtDKacgaacaattacaRNWaatHtttStgttattaaMtgt
-tgDcgtMgcatBtgcttcgcgaDWgagctgcgaggggVtaaScNatttacttaatgacag
-cccccacatYScaMgtaggtYaNgttctgaMaacNaMRaacaaacaKctacatagYWctg
-ttWaaataaaataRattagHacacaagcgKatacBttRttaagtatttccgatctHSaat
-actcNttMaagtattMtgRtgaMgcataatHcMtaBSaRattagttgatHtMttaaKagg
-YtaaBataSaVatactWtataVWgKgttaaaacagtgcgRatatacatVtHRtVYataSa
-KtWaStVcNKHKttactatccctcatgWHatWaRcttactaggatctataDtDHBttata
-aaaHgtacVtagaYttYaKcctattcttcttaataNDaaggaaaDYgcggctaaWSctBa
-aNtgctggMBaKctaMVKagBaactaWaDaMaccYVtNtaHtVWtKgRtcaaNtYaNacg
-gtttNattgVtttctgtBaWgtaattcaagtcaVWtactNggattctttaYtaaagccgc
-tcttagHVggaYtgtNcDaVagctctctKgacgtatagYcctRYHDtgBattDaaDgccK
-tcHaaStttMcctagtattgcRgWBaVatHaaaataYtgtttagMDMRtaataaggatMt
-ttctWgtNtgtgaaaaMaatatRtttMtDgHHtgtcattttcWattRSHcVagaagtacg
-ggtaKVattKYagactNaatgtttgKMMgYNtcccgSKttctaStatatNVataYHgtNa
-BKRgNacaactgatttcctttaNcgatttctctataScaHtataRagtcRVttacDSDtt
-aRtSatacHgtSKacYagttMHtWataggatgactNtatSaNctataVtttRNKtgRacc
-tttYtatgttactttttcctttaaacatacaHactMacacggtWataMtBVacRaSaatc
-cgtaBVttccagccBcttaRKtgtgcctttttRtgtcagcRttKtaaacKtaaatctcac
-aattgcaNtSBaaccgggttattaaBcKatDagttactcttcattVtttHaaggctKKga
-tacatcBggScagtVcacattttgaHaDSgHatRMaHWggtatatRgccDttcgtatcga
-aacaHtaagttaRatgaVacttagattVKtaaYttaaatcaNatccRttRRaMScNaaaD
-gttVHWgtcHaaHgacVaWtgttScactaagSgttatcttagggDtaccagWattWtRtg
-ttHWHacgattBtgVcaYatcggttgagKcWtKKcaVtgaYgWctgYggVctgtHgaNcV
-taBtWaaYatcDRaaRtSctgaHaYRttagatMatgcatttNattaDttaattgttctaa
-ccctcccctagaWBtttHtBccttagaVaatMcBHagaVcWcagBVttcBtaYMccagat
-gaaaaHctctaacgttagNWRtcggattNatcRaNHttcagtKttttgWatWttcSaNgg
-gaWtactKKMaacatKatacNattgctWtatctaVgagctatgtRaHtYcWcttagccaa
-tYttWttaWSSttaHcaaaaagVacVgtaVaRMgattaVcDactttcHHggHRtgNcctt
-tYatcatKgctcctctatVcaaaaKaaaagtatatctgMtWtaaaacaStttMtcgactt
-taSatcgDataaactaaacaagtaaVctaggaSccaatMVtaaSKNVattttgHccatca
-cBVctgcaVatVttRtactgtVcaattHgtaaattaaattttYtatattaaRSgYtgBag
-aHSBDgtagcacRHtYcBgtcacttacactaYcgctWtattgSHtSatcataaatataHt
-cgtYaaMNgBaatttaRgaMaatatttBtttaaaHHKaatctgatWatYaacttMctctt
-ttVctagctDaaagtaVaKaKRtaacBgtatccaaccactHHaagaagaaggaNaaatBW
-attccgStaMSaMatBttgcatgRSacgttVVtaaDMtcSgVatWcaSatcttttVatag
-ttactttacgatcaccNtaDVgSRcgVcgtgaacgaNtaNatatagtHtMgtHcMtagaa
-attBgtataRaaaacaYKgtRccYtatgaagtaataKgtaaMttgaaRVatgcagaKStc
-tHNaaatctBBtcttaYaBWHgtVtgacagcaRcataWctcaBcYacYgatDgtDHccta
->THREE Homo sapiens frequency
-aacacttcaccaggtatcgtgaaggctcaagattacccagagaacctttgcaatataaga
-atatgtatgcagcattaccctaagtaattatattctttttctgactcaaagtgacaagcc
-ctagtgtatattaaatcggtatatttgggaaattcctcaaactatcctaatcaggtagcc
-atgaaagtgatcaaaaaagttcgtacttataccatacatgaattctggccaagtaaaaaa
-tagattgcgcaaaattcgtaccttaagtctctcgccaagatattaggatcctattactca
-tatcgtgtttttctttattgccgccatccccggagtatctcacccatccttctcttaaag
-gcctaatattacctatgcaaataaacatatattgttgaaaattgagaacctgatcgtgat
-tcttatgtgtaccatatgtatagtaatcacgcgactatatagtgctttagtatcgcccgt
-gggtgagtgaatattctgggctagcgtgagatagtttcttgtcctaatatttttcagatc
-gaatagcttctatttttgtgtttattgacatatgtcgaaactccttactcagtgaaagtc
-atgaccagatccacgaacaatcttcggaatcagtctcgttttacggcggaatcttgagtc
-taacttatatcccgtcgcttactttctaacaccccttatgtatttttaaaattacgttta
-ttcgaacgtacttggcggaagcgttattttttgaagtaagttacattgggcagactcttg
-acattttcgatacgactttctttcatccatcacaggactcgttcgtattgatatcagaag
-ctcgtgatgattagttgtcttctttaccaatactttgaggcctattctgcgaaatttttg
-ttgccctgcgaacttcacataccaaggaacacctcgcaacatgccttcatatccatcgtt
-cattgtaattcttacacaatgaatcctaagtaattacatccctgcgtaaaagatggtagg
-ggcactgaggatatattaccaagcatttagttatgagtaatcagcaatgtttcttgtatt
-aagttctctaaaatagttacatcgtaatgttatctcgggttccgcgaataaacgagatag
-attcattatatatggccctaagcaaaaacctcctcgtattctgttggtaattagaatcac
-acaatacgggttgagatattaattatttgtagtacgaagagatataaaaagatgaacaat
-tactcaagtcaagatgtatacgggatttataataaaaatcgggtagagatctgctttgca
-attcagacgtgccactaaatcgtaatatgtcgcgttacatcagaaagggtaactattatt
-aattaataaagggcttaatcactacatattagatcttatccgatagtcttatctattcgt
-tgtatttttaagcggttctaattcagtcattatatcagtgctccgagttctttattattg
-ttttaaggatgacaaaatgcctcttgttataacgctgggagaagcagactaagagtcgga
-gcagttggtagaatgaggctgcaaaagacggtctcgacgaatggacagactttactaaac
-caatgaaagacagaagtagagcaaagtctgaagtggtatcagcttaattatgacaaccct
-taatacttccctttcgccgaatactggcgtggaaaggttttaaaagtcgaagtagttaga
-ggcatctctcgctcataaataggtagactactcgcaatccaatgtgactatgtaatactg
-ggaacatcagtccgcgatgcagcgtgtttatcaaccgtccccactcgcctggggagacat
-gagaccacccccgtggggattattagtccgcagtaatcgactcttgacaatccttttcga
-ttatgtcatagcaatttacgacagttcagcgaagtgactactcggcgaaatggtattact
-aaagcattcgaacccacatgaatgtgattcttggcaatttctaatccactaaagcttttc
-cgttgaatctggttgtagatatttatataagttcactaattaagatcacggtagtatatt
-gatagtgatgtctttgcaagaggttggccgaggaatttacggattctctattgatacaat
-ttgtctggcttataactcttaaggctgaaccaggcgtttttagacgacttgatcagctgt
-tagaatggtttggactccctctttcatgtcagtaacatttcagccgttattgttacgata
-tgcttgaacaatattgatctaccacacacccatagtatattttataggtcatgctgttac
-ctacgagcatggtattccacttcccattcaatgagtattcaacatcactagcctcagaga
-tgatgacccacctctaataacgtcacgttgcggccatgtgaaacctgaacttgagtagac
-gatatcaagcgctttaaattgcatataacatttgagggtaaagctaagcggatgctttat
-ataatcaatactcaataataagatttgattgcattttagagttatgacacgacatagttc
-actaacgagttactattcccagatctagactgaagtactgatcgagacgatccttacgtc
-gatgatcgttagttatcgacttaggtcgggtctctagcggtattggtacttaaccggaca
-ctatactaataacccatgatcaaagcataacagaatacagacgataatttcgccaacata
-tatgtacagaccccaagcatgagaagctcattgaaagctatcattgaagtcccgctcaca
-atgtgtcttttccagacggtttaactggttcccgggagtcctggagtttcgacttacata
-aatggaaacaatgtattttgctaatttatctatagcgtcatttggaccaatacagaatat
-tatgttgcctagtaatccactataacccgcaagtgctgatagaaaatttttagacgattt
-ataaatgccccaagtatccctcccgtgaatcctccgttatactaattagtattcgttcat
-acgtataccgcgcatatatgaacatttggcgataaggcgcgtgaattgttacgtgacaga
-gatagcagtttcttgtgatatggttaacagacgtacatgaagggaaactttatatctata
-gtgatgcttccgtagaaataccgccactggtctgccaatgatgaagtatgtagctttagg
-tttgtactatgaggctttcgtttgtttgcagagtataacagttgcgagtgaaaaaccgac
-gaatttatactaatacgctttcactattggctacaaaatagggaagagtttcaatcatga
-gagggagtatatggatgctttgtagctaaaggtagaacgtatgtatatgctgccgttcat
-tcttgaaagatacataagcgataagttacgacaattataagcaacatccctaccttcgta
-acgatttcactgttactgcgcttgaaatacactatggggctattggcggagagaagcaga
-tcgcgccgagcatatacgagacctataatgttgatgatagagaaggcgtctgaattgata
-catcgaagtacactttctttcgtagtatctctcgtcctctttctatctccggacacaaga
-attaagttatatatatagagtcttaccaatcatgttgaatcctgattctcagagttcttt
-ggcgggccttgtgatgactgagaaacaatgcaatattgctccaaatttcctaagcaaatt
-ctcggttatgttatgttatcagcaaagcgttacgttatgttatttaaatctggaatgacg
-gagcgaagttcttatgtcggtgtgggaataattcttttgaagacagcactccttaaataa
-tatcgctccgtgtttgtatttatcgaatgggtctgtaaccttgcacaagcaaatcggtgg
-tgtatatatcggataacaattaatacgatgttcatagtgacagtatactgatcgagtcct
-ctaaagtcaattacctcacttaacaatctcattgatgttgtgtcattcccggtatcgccc
-gtagtatgtgctctgattgaccgagtgtgaaccaaggaacatctactaatgcctttgtta
-ggtaagatctctctgaattccttcgtgccaacttaaaacattatcaaaatttcttctact
-tggattaactacttttacgagcatggcaaattcccctgtggaagacggttcattattatc
-ggaaaccttatagaaattgcgtgttgactgaaattagatttttattgtaagagttgcatc
-tttgcgattcctctggtctagcttccaatgaacagtcctcccttctattcgacatcgggt
-ccttcgtacatgtctttgcgatgtaataattaggttcggagtgtggccttaatgggtgca
-actaggaatacaacgcaaatttgctgacatgatagcaaatcggtatgccggcaccaaaac
-gtgctccttgcttagcttgtgaatgagactcagtagttaaataaatccatatctgcaatc
-gattccacaggtattgtccactatctttgaactactctaagagatacaagcttagctgag
-accgaggtgtatatgactacgctgatatctgtaaggtaccaatgcaggcaaagtatgcga
-gaagctaataccggctgtttccagctttataagattaaaatttggctgtcctggcggcct
-cagaattgttctatcgtaatcagttggttcattaattagctaagtacgaggtacaactta
-tctgtcccagaacagctccacaagtttttttacagccgaaacccctgtgtgaatcttaat
-atccaagcgcgttatctgattagagtttacaactcagtattttatcagtacgttttgttt
-ccaacattacccggtatgacaaaatgacgccacgtgtcgaataatggtctgaccaatgta
-ggaagtgaaaagataaatat
diff --git a/gcc/testsuite/go.test/test/bench/garbage/Makefile b/gcc/testsuite/go.test/test/bench/garbage/Makefile
new file mode 100644 (file)
index 0000000..8002a20
--- /dev/null
@@ -0,0 +1,28 @@
+# Copyright 2010 The Go Authors.  All rights reserved.
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file.
+
+include ../../../src/Make.inc
+
+ALL=\
+       parser\
+       peano\
+       tree\
+       tree2\
+
+all: $(addsuffix .out, $(ALL))
+
+%.$O: %.go stats.go
+       $(GC) $(GCFLAGS) $(GCIMPORTS) $*.go stats.go
+
+%.out: %.$O
+       $(LD) -o $@ $*.$O
+
+%.bench: %.out
+       time ./$*.out
+
+bench: $(addsuffix .bench, $(ALL))
+
+clean:
+       rm -f *.[$(OS)] $(addsuffix .out, $(ALL))
+
diff --git a/gcc/testsuite/go.test/test/bench/garbage/parser.go b/gcc/testsuite/go.test/test/bench/garbage/parser.go
new file mode 100644 (file)
index 0000000..9e15f6c
--- /dev/null
@@ -0,0 +1,224 @@
+// Copyright 2010 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Garbage collection benchmark: parse Go packages repeatedly.
+
+package main
+
+import (
+       "flag"
+       "fmt"
+       "go/ast"
+       "go/parser"
+       "go/token"
+       "log"
+       "net/http"
+       _ "net/http/pprof"
+       "os"
+       "path"
+       "runtime"
+       "strings"
+       "time"
+)
+
+var serve = flag.String("serve", "", "serve http on this address at end")
+
+func isGoFile(dir os.FileInfo) bool {
+       return !dir.IsDir() &&
+               !strings.HasPrefix(dir.Name(), ".") && // ignore .files
+               path.Ext(dir.Name()) == ".go"
+}
+
+func isPkgFile(dir os.FileInfo) bool {
+       return isGoFile(dir) &&
+               !strings.HasSuffix(dir.Name(), "_test.go") // ignore test files
+}
+
+func pkgName(filename string) string {
+       file, err := parser.ParseFile(token.NewFileSet(), filename, nil, parser.PackageClauseOnly)
+       if err != nil || file == nil {
+               return ""
+       }
+       return file.Name.Name
+}
+
+func parseDir(dirpath string) map[string]*ast.Package {
+       // the package name is the directory name within its parent
+       // (use dirname instead of path because dirname is clean; i.e. has no trailing '/')
+       _, pkgname := path.Split(dirpath)
+
+       // filter function to select the desired .go files
+       filter := func(d os.FileInfo) bool {
+               if isPkgFile(d) {
+                       // Some directories contain main packages: Only accept
+                       // files that belong to the expected package so that
+                       // parser.ParsePackage doesn't return "multiple packages
+                       // found" errors.
+                       // Additionally, accept the special package name
+                       // fakePkgName if we are looking at cmd documentation.
+                       name := pkgName(dirpath + "/" + d.Name())
+                       return name == pkgname
+               }
+               return false
+       }
+
+       // get package AST
+       pkgs, err := parser.ParseDir(token.NewFileSet(), dirpath, filter, parser.ParseComments)
+       if err != nil {
+               println("parse", dirpath, err.Error())
+               panic("fail")
+       }
+       return pkgs
+}
+
+func main() {
+       st := &runtime.MemStats
+       packages = append(packages, packages...)
+       packages = append(packages, packages...)
+       n := flag.Int("n", 4, "iterations")
+       p := flag.Int("p", len(packages), "# of packages to keep in memory")
+       flag.BoolVar(&st.DebugGC, "d", st.DebugGC, "print GC debugging info (pause times)")
+       flag.Parse()
+
+       var lastParsed []map[string]*ast.Package
+       var t0 time.Time
+       pkgroot := runtime.GOROOT() + "/src/pkg/"
+       for pass := 0; pass < 2; pass++ {
+               // Once the heap is grown to full size, reset counters.
+               // This hides the start-up pauses, which are much smaller
+               // than the normal pauses and would otherwise make
+               // the average look much better than it actually is.
+               st.NumGC = 0
+               st.PauseTotalNs = 0
+               t0 = time.Now()
+
+               for i := 0; i < *n; i++ {
+                       parsed := make([]map[string]*ast.Package, *p)
+                       for j := range parsed {
+                               parsed[j] = parseDir(pkgroot + packages[j%len(packages)])
+                       }
+                       if i+1 == *n && *serve != "" {
+                               lastParsed = parsed
+                       }
+               }
+               runtime.GC()
+               runtime.GC()
+       }
+       t1 := time.Now()
+
+       fmt.Printf("Alloc=%d/%d Heap=%d Mallocs=%d PauseTime=%.3f/%d = %.3f\n",
+               st.Alloc, st.TotalAlloc,
+               st.Sys,
+               st.Mallocs, float64(st.PauseTotalNs)/1e9,
+               st.NumGC, float64(st.PauseTotalNs)/1e9/float64(st.NumGC))
+
+       /*
+               fmt.Printf("%10s %10s %10s\n", "size", "#alloc", "#free")
+               for _, s := range st.BySize {
+                       fmt.Printf("%10d %10d %10d\n", s.Size, s.Mallocs, s.Frees)
+               }
+       */
+       // Standard gotest benchmark output, collected by build dashboard.
+       gcstats("BenchmarkParser", *n, t1.Sub(t0))
+
+       if *serve != "" {
+               log.Fatal(http.ListenAndServe(*serve, nil))
+               println(lastParsed)
+       }
+}
+
+var packages = []string{
+       "archive/tar",
+       "encoding/asn1",
+       "math/big",
+       "bufio",
+       "bytes",
+       "math/cmplx",
+       "compress/flate",
+       "compress/gzip",
+       "compress/zlib",
+       "container/heap",
+       "container/list",
+       "container/ring",
+       "crypto/aes",
+       "crypto/blowfish",
+       "crypto/hmac",
+       "crypto/md4",
+       "crypto/md5",
+       "crypto/rand",
+       "crypto/rc4",
+       "crypto/rsa",
+       "crypto/sha1",
+       "crypto/sha256",
+       "crypto/sha512",
+       "crypto/subtle",
+       "crypto/tls",
+       "crypto/x509",
+       "crypto/xtea",
+       "debug/dwarf",
+       "debug/macho",
+       "debug/elf",
+       "debug/gosym",
+       "exp/ebnf",
+       "encoding/ascii85",
+       "encoding/base64",
+       "encoding/binary",
+       "encoding/git85",
+       "encoding/hex",
+       "encoding/pem",
+       "os/exec",
+       "flag",
+       "fmt",
+       "go/ast",
+       "go/doc",
+       "go/parser",
+       "go/printer",
+       "go/scanner",
+       "go/token",
+       "encoding/gob",
+       "hash",
+       "hash/adler32",
+       "hash/crc32",
+       "hash/crc64",
+       "net/http",
+       "image",
+       "image/jpeg",
+       "image/png",
+       "io",
+       "io/ioutil",
+       "encoding/json",
+       "log",
+       "math",
+       "mime",
+       "net",
+       "os",
+       "os/signal",
+       "patch",
+       "path",
+       "math/rand",
+       "reflect",
+       "regexp",
+       "net/rpc",
+       "runtime",
+       "text/scanner",
+       "sort",
+       "net/smtp",
+       "strconv",
+       "strings",
+       "sync",
+       "syscall",
+       "log/syslog",
+       "text/tabwriter",
+       "text/template",
+       "testing",
+       "testing/iotest",
+       "testing/quick",
+       "testing/script",
+       "time",
+       "unicode",
+       "unicode/utf8",
+       "unicode/utf16",
+       "websocket",
+       "encoding/xml",
+}
diff --git a/gcc/testsuite/go.test/test/bench/garbage/peano.go b/gcc/testsuite/go.test/test/bench/garbage/peano.go
new file mode 100644 (file)
index 0000000..f1ad6ed
--- /dev/null
@@ -0,0 +1,121 @@
+// $G $F.go && $L $F.$A && ./$A.out
+
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import (
+       "fmt"
+       "runtime"
+       "time"
+)
+
+type Number struct {
+       next *Number
+}
+
+// -------------------------------------
+// Peano primitives
+
+func zero() *Number { return nil }
+
+func is_zero(x *Number) bool { return x == nil }
+
+func add1(x *Number) *Number {
+       e := new(Number)
+       e.next = x
+       return e
+}
+
+func sub1(x *Number) *Number { return x.next }
+
+func add(x, y *Number) *Number {
+       if is_zero(y) {
+               return x
+       }
+
+       return add(add1(x), sub1(y))
+}
+
+func mul(x, y *Number) *Number {
+       if is_zero(x) || is_zero(y) {
+               return zero()
+       }
+
+       return add(mul(x, sub1(y)), x)
+}
+
+func fact(n *Number) *Number {
+       if is_zero(n) {
+               return add1(zero())
+       }
+
+       return mul(fact(sub1(n)), n)
+}
+
+// -------------------------------------
+// Helpers to generate/count Peano integers
+
+func gen(n int) *Number {
+       if n > 0 {
+               return add1(gen(n - 1))
+       }
+
+       return zero()
+}
+
+func count(x *Number) int {
+       if is_zero(x) {
+               return 0
+       }
+
+       return count(sub1(x)) + 1
+}
+
+func check(x *Number, expected int) {
+       var c = count(x)
+       if c != expected {
+               panic(fmt.Sprintf("error: found %d; expected %d", c, expected))
+       }
+}
+
+// -------------------------------------
+// Test basic functionality
+
+func verify() {
+       check(zero(), 0)
+       check(add1(zero()), 1)
+       check(gen(10), 10)
+
+       check(add(gen(3), zero()), 3)
+       check(add(zero(), gen(4)), 4)
+       check(add(gen(3), gen(4)), 7)
+
+       check(mul(zero(), zero()), 0)
+       check(mul(gen(3), zero()), 0)
+       check(mul(zero(), gen(4)), 0)
+       check(mul(gen(3), add1(zero())), 3)
+       check(mul(add1(zero()), gen(4)), 4)
+       check(mul(gen(3), gen(4)), 12)
+
+       check(fact(zero()), 1)
+       check(fact(add1(zero())), 1)
+       check(fact(gen(5)), 120)
+}
+
+// -------------------------------------
+// Factorial
+
+func main() {
+       t0 := time.Now()
+       verify()
+       for i := 0; i <= 9; i++ {
+               print(i, "! = ", count(fact(gen(i))), "\n")
+       }
+       runtime.GC()
+       t1 := time.Now()
+
+       gcstats("BenchmarkPeano", 1, t1.Sub(t0))
+}
diff --git a/gcc/testsuite/go.test/test/bench/garbage/stats.go b/gcc/testsuite/go.test/test/bench/garbage/stats.go
new file mode 100644 (file)
index 0000000..985e7ea
--- /dev/null
@@ -0,0 +1,46 @@
+// Copyright 2010 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import (
+       "fmt"
+       "runtime"
+       "sort"
+       "time"
+)
+
+func gcstats(name string, n int, t time.Duration) {
+       st := &runtime.MemStats
+       fmt.Printf("garbage.%sMem Alloc=%d/%d Heap=%d NextGC=%d Mallocs=%d\n", name, st.Alloc, st.TotalAlloc, st.Sys, st.NextGC, st.Mallocs)
+       fmt.Printf("garbage.%s %d %d ns/op\n", name, n, t.Nanoseconds()/int64(n))
+       fmt.Printf("garbage.%sLastPause 1 %d ns/op\n", name, st.PauseNs[(st.NumGC-1)%uint32(len(st.PauseNs))])
+       fmt.Printf("garbage.%sPause %d %d ns/op\n", name, st.NumGC, int64(st.PauseTotalNs)/int64(st.NumGC))
+       nn := int(st.NumGC)
+       if nn >= len(st.PauseNs) {
+               nn = len(st.PauseNs)
+       }
+       t1, t2, t3, t4, t5 := tukey5(st.PauseNs[0:nn])
+       fmt.Printf("garbage.%sPause5: %d %d %d %d %d\n", name, t1, t2, t3, t4, t5)
+
+       //      fmt.Printf("garbage.%sScan: %v\n", name, st.ScanDist)
+}
+
+type T []uint64
+
+func (t T) Len() int           { return len(t) }
+func (t T) Swap(i, j int)      { t[i], t[j] = t[j], t[i] }
+func (t T) Less(i, j int) bool { return t[i] < t[j] }
+
+func tukey5(raw []uint64) (lo, q1, q2, q3, hi uint64) {
+       x := make(T, len(raw))
+       copy(x, raw)
+       sort.Sort(T(x))
+       lo = x[0]
+       q1 = x[len(x)/4]
+       q2 = x[len(x)/2]
+       q3 = x[len(x)*3/4]
+       hi = x[len(x)-1]
+       return
+}
diff --git a/gcc/testsuite/go.test/test/bench/garbage/tree.go b/gcc/testsuite/go.test/test/bench/garbage/tree.go
new file mode 100644 (file)
index 0000000..0a3ec23
--- /dev/null
@@ -0,0 +1,100 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by The Go Authors.
+ * based on C program by Kevin Carson
+ */
+
+package main
+
+import (
+       "flag"
+       "fmt"
+       "time"
+)
+
+var n = flag.Int("n", 16, "depth")
+
+type Node struct {
+       item        int
+       left, right *Node
+}
+
+func bottomUpTree(item, depth int) *Node {
+       if depth <= 0 {
+               return &Node{item: item}
+       }
+       return &Node{item, bottomUpTree(2*item-1, depth-1), bottomUpTree(2*item, depth-1)}
+}
+
+func (n *Node) itemCheck() int {
+       if n.left == nil {
+               return n.item
+       }
+       return n.item + n.left.itemCheck() - n.right.itemCheck()
+}
+
+const minDepth = 4
+
+func main() {
+       flag.Parse()
+
+       t0 := time.Now()
+
+       maxDepth := *n
+       if minDepth+2 > *n {
+               maxDepth = minDepth + 2
+       }
+       stretchDepth := maxDepth + 1
+
+       check := bottomUpTree(0, stretchDepth).itemCheck()
+       fmt.Printf("stretch tree of depth %d\t check: %d\n", stretchDepth, check)
+
+       longLivedTree := bottomUpTree(0, maxDepth)
+
+       for depth := minDepth; depth <= maxDepth; depth += 2 {
+               iterations := 1 << uint(maxDepth-depth+minDepth)
+               check = 0
+
+               for i := 1; i <= iterations; i++ {
+                       check += bottomUpTree(i, depth).itemCheck()
+                       check += bottomUpTree(-i, depth).itemCheck()
+               }
+               fmt.Printf("%d\t trees of depth %d\t check: %d\n", iterations*2, depth, check)
+       }
+       fmt.Printf("long lived tree of depth %d\t check: %d\n", maxDepth, longLivedTree.itemCheck())
+
+       t1 := time.Now()
+
+       // Standard gotest benchmark output, collected by build dashboard.
+       gcstats("BenchmarkTree", *n, t1.Sub(t0))
+}
diff --git a/gcc/testsuite/go.test/test/bench/garbage/tree2.go b/gcc/testsuite/go.test/test/bench/garbage/tree2.go
new file mode 100644 (file)
index 0000000..6d78f72
--- /dev/null
@@ -0,0 +1,88 @@
+// Copyright 2012 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import (
+       "flag"
+       "fmt"
+       "log"
+       "os"
+       "runtime"
+       "runtime/pprof"
+       "unsafe"
+)
+
+const BranchingFactor = 4
+
+type Object struct {
+       child [BranchingFactor]*Object
+}
+
+var (
+       cpus       = flag.Int("cpus", 1, "number of cpus to use")
+       heapsize   = flag.Int64("heapsize", 100*1024*1024, "size of the heap in bytes")
+       cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file")
+
+       lastPauseNs uint64 = 0
+       lastFree    uint64 = 0
+       heap        *Object
+       calls       [20]int
+       numobjects  int64
+)
+
+func buildHeap() {
+       objsize := int64(unsafe.Sizeof(Object{}))
+       heap, _ = buildTree(float64(objsize), float64(*heapsize), 0)
+       fmt.Printf("*** built heap: %.0f MB; (%d objects * %d bytes)\n",
+               float64(*heapsize)/1048576, numobjects, objsize)
+}
+
+func buildTree(objsize, size float64, depth int) (*Object, float64) {
+       calls[depth]++
+       x := &Object{}
+       numobjects++
+       subtreeSize := (size - objsize) / BranchingFactor
+       alloc := objsize
+       for i := 0; i < BranchingFactor && alloc < size; i++ {
+               c, n := buildTree(objsize, subtreeSize, depth+1)
+               x.child[i] = c
+               alloc += n
+       }
+       return x, alloc
+}
+
+func gc() {
+       runtime.GC()
+       runtime.UpdateMemStats()
+       pause := runtime.MemStats.PauseTotalNs
+       inuse := runtime.MemStats.Alloc
+       free := runtime.MemStats.TotalAlloc - inuse
+       fmt.Printf("gc pause: %8.3f ms; collect: %8.0f MB; heapsize: %8.0f MB\n",
+               float64(pause-lastPauseNs)/1e6,
+               float64(free-lastFree)/1048576,
+               float64(inuse)/1048576)
+       lastPauseNs = pause
+       lastFree = free
+}
+
+func main() {
+       flag.Parse()
+       buildHeap()
+       runtime.GOMAXPROCS(*cpus)
+       runtime.UpdateMemStats()
+       lastPauseNs = runtime.MemStats.PauseTotalNs
+       lastFree = runtime.MemStats.TotalAlloc - runtime.MemStats.Alloc
+       if *cpuprofile != "" {
+               f, err := os.Create(*cpuprofile)
+               if err != nil {
+                       log.Fatal(err)
+               }
+               pprof.StartCPUProfile(f)
+               defer pprof.StopCPUProfile()
+       }
+       for i := 0; i < 10; i++ {
+               gc()
+       }
+}
diff --git a/gcc/testsuite/go.test/test/bench/go1/Makefile b/gcc/testsuite/go.test/test/bench/go1/Makefile
new file mode 100644 (file)
index 0000000..9484743
--- /dev/null
@@ -0,0 +1,7 @@
+include $(GOROOT)/src/Make.inc
+
+TARG=go1
+GOFILES=\
+       dummy.go\
+
+include $(GOROOT)/src/Make.pkg
diff --git a/gcc/testsuite/go.test/test/bench/go1/_gotest_.6 b/gcc/testsuite/go.test/test/bench/go1/_gotest_.6
new file mode 100644 (file)
index 0000000..9fa1baa
--- /dev/null
@@ -0,0 +1,885 @@
+go object linux amd64 weekly.2012-01-15 11312+ X:none
+  exports automatically generated from
+  template_test.go in package "go1"
+
+$$  // exports
+    package go1
+       import log "log"
+       import ioutil "io/ioutil"
+       import runtime "runtime"
+       import bufio "bufio"
+       import bzip2 "compress/bzip2"
+       import io "io"
+       import gzip "compress/gzip"
+       import testing "testing"
+       import base64 "encoding/base64"
+       import strings "strings"
+       import gob "encoding/gob"
+       import reflect "reflect"
+       import template "text/template"
+       import json "encoding/json"
+       import bytes "bytes"
+       type @"".binaryNode struct { @"".item int; @"".left *@"".binaryNode; @"".right *@"".binaryNode }
+       func (@"".n *@"".binaryNode "noescape") @"".itemCheck() (? int)
+       func @"".bottomUpTree(@"".item int, @"".depth int) (? *@"".binaryNode)
+       const @"".minDepth = 4
+       func @"".binarytree(@"".n int)
+       import time "time" // indirect
+       type @"time".zone struct { @"time".name string; @"time".offset int; @"time".isDST bool }
+       type @"time".zoneTrans struct { @"time".when int64; @"time".index uint8; @"time".isstd bool; @"time".isutc bool }
+       type @"time".Location struct { @"time".name string; @"time".zone []@"time".zone; @"time".tx []@"time".zoneTrans; @"time".cacheStart int64; @"time".cacheEnd int64; @"time".cacheZone *@"time".zone }
+       func (@"time".l *@"time".Location) String() (? string)
+       func (@"time".l *@"time".Location) @"time".get() (? *@"time".Location)
+       func (@"time".l *@"time".Location) @"time".lookup(@"time".sec int64) (@"time".name string, @"time".offset int, @"time".isDST bool, @"time".start int64, @"time".end int64)
+       func (@"time".l *@"time".Location) @"time".lookupName(@"time".name string "noescape") (@"time".offset int, @"time".isDST bool, @"time".ok bool)
+       func (@"time".l *@"time".Location) @"time".lookupOffset(@"time".offset int) (@"time".name string, @"time".isDST bool, @"time".ok bool)
+       type @"time".Duration int64
+       func (@"time".d @"time".Duration) Hours() (? float64)
+       func (@"time".d @"time".Duration) Minutes() (? float64)
+       func (@"time".d @"time".Duration) Nanoseconds() (? int64) { return int64(@"time".d) }
+       func (@"time".d @"time".Duration) Seconds() (? float64)
+       func (@"time".d @"time".Duration) String() (? string)
+       type @"time".Month int
+       func (@"time".m @"time".Month) String() (? string) { return @"time".months[@"time".m - @"time".Month(1)] }
+       type @"time".Weekday int
+       func (@"time".d @"time".Weekday) String() (? string) { return @"time".days[@"time".d] }
+       type @"time".Time struct { @"time".sec int64; @"time".nsec int32; @"time".loc *@"time".Location }
+       func (@"time".t @"time".Time) Add(@"time".d @"time".Duration) (? @"time".Time)
+       func (@"time".t @"time".Time) AddDate(@"time".years int, @"time".months int, @"time".days int) (? @"time".Time)
+       func (@"time".t @"time".Time "noescape") After(@"time".u @"time".Time "noescape") (? bool) { return @"time".t.@"time".sec > @"time".u.@"time".sec || @"time".t.@"time".sec == @"time".u.@"time".sec && @"time".t.@"time".nsec > @"time".u.@"time".nsec }
+       func (@"time".t @"time".Time "noescape") Before(@"time".u @"time".Time "noescape") (? bool) { return @"time".t.@"time".sec < @"time".u.@"time".sec || @"time".t.@"time".sec == @"time".u.@"time".sec && @"time".t.@"time".nsec < @"time".u.@"time".nsec }
+       func (@"time".t @"time".Time) Clock() (@"time".hour int, @"time".min int, @"time".sec int)
+       func (@"time".t @"time".Time) Date() (@"time".year int, @"time".month @"time".Month, @"time".day int)
+       func (@"time".t @"time".Time) Day() (? int)
+       func (@"time".t @"time".Time "noescape") Equal(@"time".u @"time".Time "noescape") (? bool) { return @"time".t.@"time".sec == @"time".u.@"time".sec && @"time".t.@"time".nsec == @"time".u.@"time".nsec }
+       func (@"time".t @"time".Time) Format(@"time".layout string) (? string)
+       func (@"time".t *@"time".Time "noescape") GobDecode(@"time".buf []byte "noescape") (? error)
+       func (@"time".t @"time".Time) GobEncode() (? []byte, ? error)
+       func (@"time".t @"time".Time) Hour() (? int)
+       func (@"time".t @"time".Time) ISOWeek() (@"time".year int, @"time".week int)
+       func (@"time".t @"time".Time) In(@"time".loc *@"time".Location) (? @"time".Time)
+       func (@"time".t @"time".Time "noescape") IsZero() (? bool) { return @"time".t.@"time".sec == 0 && @"time".t.@"time".nsec == 0 }
+       func (@"time".t @"time".Time) Local() (? @"time".Time)
+       func (@"time".t @"time".Time) Location() (? *@"time".Location)
+       func (@"time".t @"time".Time) MarshalJSON() (? []byte, ? error)
+       func (@"time".t @"time".Time) Minute() (? int)
+       func (@"time".t @"time".Time) Month() (? @"time".Month)
+       func (@"time".t @"time".Time "noescape") Nanosecond() (? int) { return int(@"time".t.@"time".nsec) }
+       func (@"time".t @"time".Time) Second() (? int)
+       func (@"time".t @"time".Time) String() (? string)
+       func (@"time".t @"time".Time "noescape") Sub(@"time".u @"time".Time "noescape") (? @"time".Duration) { return @"time".Duration(@"time".t.@"time".sec - @"time".u.@"time".sec) * @"time".Duration(1000000000) + @"time".Duration(@"time".t.@"time".nsec - @"time".u.@"time".nsec) }
+       func (@"time".t @"time".Time) UTC() (? @"time".Time)
+       func (@"time".t @"time".Time "noescape") Unix() (? int64) { return @"time".t.@"time".sec + -62135596800 }
+       func (@"time".t @"time".Time "noescape") UnixNano() (? int64) { return (@"time".t.@"time".sec + -62135596800) * 1000000000 + int64(@"time".t.@"time".nsec) }
+       func (@"time".t *@"time".Time "noescape") UnmarshalJSON(@"time".data []byte "noescape") (@"time".err error)
+       func (@"time".t @"time".Time) Weekday() (? @"time".Weekday)
+       func (@"time".t @"time".Time) Year() (? int)
+       func (@"time".t @"time".Time) Zone() (@"time".name string, @"time".offset int)
+       func (@"time".t @"time".Time) @"time".abs() (? uint64)
+       func (@"time".t @"time".Time) @"time".date(@"time".full bool) (@"time".year int, @"time".month @"time".Month, @"time".day int, @"time".yday int)
+       type @"testing".common struct { @"testing".output []byte; @"testing".failed bool; @"testing".start @"time".Time; @"testing".duration @"time".Duration; @"testing".self interface {}; @"testing".signal chan interface {} }
+       func (@"testing".c *@"testing".common "noescape") Error(@"testing".args ...interface {} "noescape")
+       func (@"testing".c *@"testing".common "noescape") Errorf(@"testing".format string "noescape", @"testing".args ...interface {} "noescape")
+       func (@"testing".c *@"testing".common "noescape") Fail() { @"testing".c.@"testing".failed = true }
+       func (@"testing".c *@"testing".common "noescape") FailNow()
+       func (@"testing".c *@"testing".common "noescape") Failed() (? bool) { return @"testing".c.@"testing".failed }
+       func (@"testing".c *@"testing".common "noescape") Fatal(@"testing".args ...interface {} "noescape")
+       func (@"testing".c *@"testing".common "noescape") Fatalf(@"testing".format string "noescape", @"testing".args ...interface {} "noescape")
+       func (@"testing".c *@"testing".common "noescape") Log(@"testing".args ...interface {} "noescape")
+       func (@"testing".c *@"testing".common "noescape") Logf(@"testing".format string "noescape", @"testing".args ...interface {} "noescape")
+       func (@"testing".c *@"testing".common "noescape") @"testing".log(@"testing".s string)
+       type @"testing".InternalBenchmark struct { Name string; F func(@"testing".b *@"testing".B) }
+       type @"testing".BenchmarkResult struct { N int; T @"time".Duration; Bytes int64 }
+       func (@"testing".r @"testing".BenchmarkResult) NsPerOp() (? int64)
+       func (@"testing".r @"testing".BenchmarkResult) String() (? string)
+       func (@"testing".r @"testing".BenchmarkResult) @"testing".mbPerSec() (? float64)
+       type @"testing".B struct { ? @"testing".common; N int; @"testing".benchmark @"testing".InternalBenchmark; @"testing".bytes int64; @"testing".timerOn bool; @"testing".result @"testing".BenchmarkResult }
+       func (@"testing".b *@"testing".B "noescape") ResetTimer()
+       func (@"testing".b *@"testing".B "noescape") SetBytes(@"testing".n int64) { @"testing".b.@"testing".bytes = @"testing".n }
+       func (@"testing".b *@"testing".B "noescape") StartTimer()
+       func (@"testing".b *@"testing".B "noescape") StopTimer()
+       func (@"testing".b *@"testing".B) @"testing".launch()
+       func (@"testing".b *@"testing".B "noescape") @"testing".nsPerOp() (? int64)
+       func (@"testing".b *@"testing".B) @"testing".run() (? @"testing".BenchmarkResult)
+       func (@"testing".b *@"testing".B) @"testing".runN(@"testing".n int)
+       func (@"testing".b *@"testing".B "noescape") @"testing".trimOutput()
+       func @"".BenchmarkBinaryTree17(@"".b *@"testing".B "noescape")
+       func @"".fannkuch(@"".n int) (? int)
+       func @"".BenchmarkFannkuch11(@"".b *@"testing".B "noescape")
+       var @"".fasta25m []byte
+       func @"".fasta(@"".n int) (? []byte)
+       type @"".fastaBuffer []byte
+       func (@"".b *@"".fastaBuffer "noescape") Flush()
+       func (@"".b *@"".fastaBuffer "noescape") NextWrite(@"".n int) (? []byte)
+       func (@"".b *@"".fastaBuffer "noescape") WriteString(@"".s string "noescape")
+       const @"".fastaLine = 60
+       func @"".fastaRepeat(@"".out *@"".fastaBuffer "noescape", @"".alu []byte "noescape", @"".n int)
+       const @"".fastaLookupSize = 4096
+       const @"".fastaLookupScale float64 = 4095p+0
+       var @"".fastaRand uint32
+       type @"".fastaAcid struct { @"".sym byte; @"".prob float64; @"".cprob float64; @"".next *@"".fastaAcid }
+       func @"".fastaComputeLookup(@"".acid []@"".fastaAcid) (? *[4096]*@"".fastaAcid)
+       func @"".fastaRandom(@"".out *@"".fastaBuffer "noescape", @"".acid []@"".fastaAcid, @"".n int)
+       var @"".gobbytes []byte
+       type @"".JSONNode struct { Name string "json:\"name\""; Kids []*@"".JSONNode "json:\"kids\""; CLWeight float64 "json:\"cl_weight\""; Touches int "json:\"touches\""; MinT int64 "json:\"min_t\""; MaxT int64 "json:\"max_t\""; MeanT int64 "json:\"mean_t\"" }
+       type @"".JSONResponse struct { Tree *@"".JSONNode "json:\"tree\""; Username string "json:\"username\"" }
+       var @"".gobdata *@"".JSONResponse
+       func @"".gobinit()
+       func @"".gobResponse(@"".r *@"".JSONResponse) (? *@"".JSONResponse)
+       func @"".gobNode(@"".n *@"".JSONNode "noescape") (? *@"".JSONNode)
+       func @"".gobdec()
+       func @"".gobenc()
+       func @"".BenchmarkGobDecode(@"".b *@"testing".B "noescape")
+       func @"".BenchmarkGobEncode(@"".b *@"testing".B "noescape")
+       var @"".jsongunz []byte
+       var @"".jsongz []byte
+       func @"".init·1()
+       func @"".gzip()
+       func @"".gunzip()
+       func @"".BenchmarkGzip(@"".b *@"testing".B "noescape")
+       func @"".BenchmarkGunzip(@"".b *@"testing".B "noescape")
+       var @"".jsonbytes []byte
+       var @"".jsondata @"".JSONResponse
+       func @"".init·2()
+       func @"".jsondec()
+       func @"".jsonenc()
+       func @"".BenchmarkJSONEncode(@"".b *@"testing".B "noescape")
+       func @"".BenchmarkJSONDecode(@"".b *@"testing".B "noescape")
+       var @"".jsonbz2_base64 string
+       var @"".revCompTable [256]uint8
+       func @"".revcomp(@"".data []byte)
+       func @"".BenchmarkRevcomp25M(@"".b *@"testing".B "noescape")
+       const @"".tmplText = "\n{\n\t\"tree\":{{template \"node\" .Tree}},\n\t\"username\":\"{{.Username}}\"\n}\n{{define \"node\"}}\n{\n\t\"name\":\"{{.Name}}\",\n\t\"kids\":[\n\t{{range $i, $k := .Kids}}\n\t\t{{if $i}}\n\t\t\t,\n\t\t{{end}}\n\t\t{{template \"node\" $k}}\n\t{{end}}\n\t],\n\t\"cl_weight\":{{.CLWeight}},\n\t\"touches\":{{.Touches}},\n\t\"min_t\":{{.MinT}},\n\t\"max_t\":{{.MaxT}},\n\t\"mean_t\":{{.MeanT}}\n}\n{{end}}\n"
+       func @"".stripTabNL(@"".r rune) (? rune)
+       import parse "text/template/parse" // indirect
+       type @"text/template/parse".NodeType int
+       func (@"text/template/parse".t @"text/template/parse".NodeType) Type() (? @"text/template/parse".NodeType) { return @"text/template/parse".t }
+       type @"text/template/parse".Node interface { Type() (? @"text/template/parse".NodeType); String() (? string) }
+       type @"text/template/parse".ListNode struct { ? @"text/template/parse".NodeType; Nodes []@"text/template/parse".Node }
+       func (@"text/template/parse".l *@"text/template/parse".ListNode "noescape") String() (? string)
+       func (@"text/template/parse".l *@"text/template/parse".ListNode "noescape") @"text/template/parse".append(@"text/template/parse".n @"text/template/parse".Node) { @"text/template/parse".l.Nodes = append(@"text/template/parse".l.Nodes, @"text/template/parse".n) }
+       type @"text/template/parse".stateFn func(? *@"text/template/parse".lexer) (? @"text/template/parse".stateFn)
+       type @"text/template/parse".itemType int
+       func (@"text/template/parse".i @"text/template/parse".itemType) String() (? string)
+       type @"text/template/parse".item struct { @"text/template/parse".typ @"text/template/parse".itemType; @"text/template/parse".val string }
+       func (@"text/template/parse".i @"text/template/parse".item) String() (? string)
+       type @"text/template/parse".lexer struct { @"text/template/parse".name string; @"text/template/parse".input string; @"text/template/parse".leftDelim string; @"text/template/parse".rightDelim string; @"text/template/parse".state @"text/template/parse".stateFn; @"text/template/parse".pos int; @"text/template/parse".start int; @"text/template/parse".width int; @"text/template/parse".items chan @"text/template/parse".item }
+       func (@"text/template/parse".l *@"text/template/parse".lexer "noescape") @"text/template/parse".accept(@"text/template/parse".valid string "noescape") (? bool)
+       func (@"text/template/parse".l *@"text/template/parse".lexer "noescape") @"text/template/parse".acceptRun(@"text/template/parse".valid string "noescape")
+       func (@"text/template/parse".l *@"text/template/parse".lexer "noescape") @"text/template/parse".backup()
+       func (@"text/template/parse".l *@"text/template/parse".lexer "noescape") @"text/template/parse".emit(@"text/template/parse".t @"text/template/parse".itemType)
+       func (@"text/template/parse".l *@"text/template/parse".lexer "noescape") @"text/template/parse".errorf(@"text/template/parse".format string "noescape", @"text/template/parse".args ...interface {} "noescape") (? @"text/template/parse".stateFn)
+       func (@"text/template/parse".l *@"text/template/parse".lexer "noescape") @"text/template/parse".ignore() { @"text/template/parse".l.@"text/template/parse".start = @"text/template/parse".l.@"text/template/parse".pos }
+       func (@"text/template/parse".l *@"text/template/parse".lexer "noescape") @"text/template/parse".lineNumber() (? int)
+       func (@"text/template/parse".l *@"text/template/parse".lexer "noescape") @"text/template/parse".next() (@"text/template/parse".r rune)
+       func (@"text/template/parse".l *@"text/template/parse".lexer) @"text/template/parse".nextItem() (? @"text/template/parse".item)
+       func (@"text/template/parse".l *@"text/template/parse".lexer "noescape") @"text/template/parse".peek() (? rune)
+       func (@"text/template/parse".l *@"text/template/parse".lexer "noescape") @"text/template/parse".scanNumber() (? bool)
+       type @"text/template/parse".CommandNode struct { ? @"text/template/parse".NodeType; Args []@"text/template/parse".Node }
+       func (@"text/template/parse".c *@"text/template/parse".CommandNode "noescape") String() (? string)
+       func (@"text/template/parse".c *@"text/template/parse".CommandNode "noescape") @"text/template/parse".append(@"text/template/parse".arg @"text/template/parse".Node) { @"text/template/parse".c.Args = append(@"text/template/parse".c.Args, @"text/template/parse".arg) }
+       type @"text/template/parse".VariableNode struct { ? @"text/template/parse".NodeType; Ident []string }
+       func (@"text/template/parse".v *@"text/template/parse".VariableNode "noescape") String() (? string)
+       type @"text/template/parse".PipeNode struct { ? @"text/template/parse".NodeType; Line int; Decl []*@"text/template/parse".VariableNode; Cmds []*@"text/template/parse".CommandNode }
+       func (@"text/template/parse".p *@"text/template/parse".PipeNode "noescape") String() (? string)
+       func (@"text/template/parse".p *@"text/template/parse".PipeNode "noescape") @"text/template/parse".append(@"text/template/parse".command *@"text/template/parse".CommandNode) { @"text/template/parse".p.Cmds = append(@"text/template/parse".p.Cmds, @"text/template/parse".command) }
+       type @"text/template/parse".Tree struct { Name string; Root *@"text/template/parse".ListNode; @"text/template/parse".funcs []map[string]interface {}; @"text/template/parse".lex *@"text/template/parse".lexer; @"text/template/parse".token [2]@"text/template/parse".item; @"text/template/parse".peekCount int; @"text/template/parse".vars []string }
+       func (@"text/template/parse".t *@"text/template/parse".Tree) Parse(@"text/template/parse".s string, @"text/template/parse".leftDelim string, @"text/template/parse".rightDelim string, @"text/template/parse".treeSet map[string]*@"text/template/parse".Tree "noescape", @"text/template/parse".funcs ...map[string]interface {}) (@"text/template/parse".tree *@"text/template/parse".Tree, @"text/template/parse".err error)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".action() (@"text/template/parse".n @"text/template/parse".Node)
+       func (@"text/template/parse".t *@"text/template/parse".Tree) @"text/template/parse".add(@"text/template/parse".treeSet map[string]*@"text/template/parse".Tree "noescape")
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".atEOF() (? bool)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".backup()
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".backup2(@"text/template/parse".t1 @"text/template/parse".item)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".command() (? *@"text/template/parse".CommandNode)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".elseControl() (? @"text/template/parse".Node)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".endControl() (? @"text/template/parse".Node)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".error(@"text/template/parse".err error)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".errorf(@"text/template/parse".format string, @"text/template/parse".args ...interface {} "noescape")
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".expect(@"text/template/parse".expected @"text/template/parse".itemType, @"text/template/parse".context string) (? @"text/template/parse".item)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".expectOneOf(@"text/template/parse".expected1 @"text/template/parse".itemType, @"text/template/parse".expected2 @"text/template/parse".itemType, @"text/template/parse".context string) (? @"text/template/parse".item)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".hasFunction(@"text/template/parse".name string "noescape") (? bool)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".ifControl() (? @"text/template/parse".Node)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".itemList() (@"text/template/parse".list *@"text/template/parse".ListNode, @"text/template/parse".next @"text/template/parse".Node)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".next() (? @"text/template/parse".item)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".parse(@"text/template/parse".treeSet map[string]*@"text/template/parse".Tree "noescape") (@"text/template/parse".next @"text/template/parse".Node)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".parseControl(@"text/template/parse".context string) (@"text/template/parse".lineNum int, @"text/template/parse".pipe *@"text/template/parse".PipeNode, @"text/template/parse".list *@"text/template/parse".ListNode, @"text/template/parse".elseList *@"text/template/parse".ListNode)
+       func (@"text/template/parse".t *@"text/template/parse".Tree) @"text/template/parse".parseDefinition(@"text/template/parse".treeSet map[string]*@"text/template/parse".Tree "noescape")
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".peek() (? @"text/template/parse".item)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".pipeline(@"text/template/parse".context string) (@"text/template/parse".pipe *@"text/template/parse".PipeNode)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".popVars(@"text/template/parse".n int) { @"text/template/parse".t.@"text/template/parse".vars = @"text/template/parse".t.@"text/template/parse".vars[:@"text/template/parse".n] }
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".rangeControl() (? @"text/template/parse".Node)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".recover(@"text/template/parse".errp *error "noescape")
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".startParse(@"text/template/parse".funcs []map[string]interface {}, @"text/template/parse".lex *@"text/template/parse".lexer)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".stopParse()
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".templateControl() (? @"text/template/parse".Node)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".textOrAction() (? @"text/template/parse".Node)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".unexpected(@"text/template/parse".token @"text/template/parse".item, @"text/template/parse".context string)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".useVar(@"text/template/parse".name string "noescape") (? @"text/template/parse".Node)
+       func (@"text/template/parse".t *@"text/template/parse".Tree "noescape") @"text/template/parse".withControl() (? @"text/template/parse".Node)
+       type @"text/template".FuncMap map[string]interface {}
+       type @"runtime".Type interface {}
+       type @"reflect".method struct { @"reflect".name *string; @"reflect".pkgPath *string; @"reflect".mtyp *@"runtime".Type; @"reflect".typ *@"runtime".Type; @"reflect".ifn @"unsafe".Pointer; @"reflect".tfn @"unsafe".Pointer }
+       type @"reflect".ChanDir int
+       func (@"reflect".d @"reflect".ChanDir) String() (? string)
+       type @"reflect".StructTag string
+       func (@"reflect".tag @"reflect".StructTag "noescape") Get(@"reflect".key string "noescape") (? string)
+       type @"reflect".StructField struct { PkgPath string; Name string; Type @"reflect".Type; Tag @"reflect".StructTag; Offset uintptr; Index []int; Anonymous bool }
+       type @"reflect".Kind uint
+       func (@"reflect".k @"reflect".Kind) String() (? string)
+       type @"reflect".Type interface { Align() (? int); FieldAlign() (? int); Method(? int) (? @"reflect".Method); MethodByName(? string) (? @"reflect".Method, ? bool); NumMethod() (? int); Name() (? string); PkgPath() (? string); Size() (? uintptr); String() (? string); Kind() (? @"reflect".Kind); Implements(@"reflect".u @"reflect".Type) (? bool); AssignableTo(@"reflect".u @"reflect".Type) (? bool); Bits() (? int); ChanDir() (? @"reflect".ChanDir); IsVariadic() (? bool); Elem() (? @"reflect".Type); Field(@"reflect".i int) (? @"reflect".StructField); FieldByIndex(@"reflect".index []int) (? @"reflect".StructField); FieldByName(@"reflect".name string) (? @"reflect".StructField, ? bool); FieldByNameFunc(@"reflect".match func(? string) (? bool)) (? @"reflect".StructField, ? bool); In(@"reflect".i int) (? @"reflect".Type); Key() (? @"reflect".Type); Len() (? int); NumField() (? int); NumIn() (? int); NumOut() (? int); Out(@"reflect".i int) (? @"reflect".Type); @"reflect".runtimeType() (? *@"runtime".Type); @"reflect".common() (? *@"reflect".commonType); @"reflect".uncommon() (? *@"reflect".uncommonType) }
+       type @"reflect".Method struct { PkgPath string; Name string; Type @"reflect".Type; Func @"reflect".Value; Index int }
+       type @"reflect".uncommonType struct { @"reflect".name *string; @"reflect".pkgPath *string; @"reflect".methods []@"reflect".method }
+       func (@"reflect".t *@"reflect".uncommonType "noescape") Method(@"reflect".i int) (@"reflect".m @"reflect".Method)
+       func (@"reflect".t *@"reflect".uncommonType "noescape") MethodByName(@"reflect".name string "noescape") (@"reflect".m @"reflect".Method, @"reflect".ok bool)
+       func (@"reflect".t *@"reflect".uncommonType "noescape") Name() (? string)
+       func (@"reflect".t *@"reflect".uncommonType "noescape") NumMethod() (? int)
+       func (@"reflect".t *@"reflect".uncommonType "noescape") PkgPath() (? string)
+       func (@"reflect".t *@"reflect".uncommonType) @"reflect".uncommon() (? *@"reflect".uncommonType) { return @"reflect".t }
+       type @"reflect".commonType struct { @"reflect".size uintptr; @"reflect".hash uint32; _ uint8; @"reflect".align uint8; @"reflect".fieldAlign uint8; @"reflect".kind uint8; @"reflect".alg *uintptr; @"reflect".string *string; ? *@"reflect".uncommonType; @"reflect".ptrToThis *@"runtime".Type }
+       func (@"reflect".t *@"reflect".commonType "noescape") Align() (? int) { return int(@"reflect".t.@"reflect".align) }
+       func (@"reflect".t *@"reflect".commonType "noescape") AssignableTo(@"reflect".u @"reflect".Type "noescape") (? bool)
+       func (@"reflect".t *@"reflect".commonType "noescape") Bits() (? int)
+       func (@"reflect".t *@"reflect".commonType "noescape") ChanDir() (? @"reflect".ChanDir)
+       func (@"reflect".t *@"reflect".commonType "noescape") Elem() (? @"reflect".Type)
+       func (@"reflect".t *@"reflect".commonType "noescape") Field(@"reflect".i int) (? @"reflect".StructField)
+       func (@"reflect".t *@"reflect".commonType "noescape") FieldAlign() (? int) { return int(@"reflect".t.@"reflect".fieldAlign) }
+       func (@"reflect".t *@"reflect".commonType) FieldByIndex(@"reflect".index []int "noescape") (? @"reflect".StructField)
+       func (@"reflect".t *@"reflect".commonType) FieldByName(@"reflect".name string "noescape") (? @"reflect".StructField, ? bool)
+       func (@"reflect".t *@"reflect".commonType) FieldByNameFunc(@"reflect".match func(? string) (? bool) "noescape") (? @"reflect".StructField, ? bool)
+       func (@"reflect".t *@"reflect".commonType "noescape") Implements(@"reflect".u @"reflect".Type) (? bool)
+       func (@"reflect".t *@"reflect".commonType "noescape") In(@"reflect".i int) (? @"reflect".Type)
+       func (@"reflect".t *@"reflect".commonType "noescape") IsVariadic() (? bool)
+       func (@"reflect".t *@"reflect".commonType "noescape") Key() (? @"reflect".Type)
+       func (@"reflect".t *@"reflect".commonType "noescape") Kind() (? @"reflect".Kind) { return @"reflect".Kind(@"reflect".t.@"reflect".kind & 127) }
+       func (@"reflect".t *@"reflect".commonType "noescape") Len() (? int)
+       func (@"reflect".t *@"reflect".commonType "noescape") Method(@"reflect".i int) (@"reflect".m @"reflect".Method)
+       func (@"reflect".t *@"reflect".commonType "noescape") MethodByName(@"reflect".name string "noescape") (@"reflect".m @"reflect".Method, @"reflect".ok bool)
+       func (@"reflect".t *@"reflect".commonType "noescape") Name() (? string)
+       func (@"reflect".t *@"reflect".commonType "noescape") NumField() (? int)
+       func (@"reflect".t *@"reflect".commonType "noescape") NumIn() (? int)
+       func (@"reflect".t *@"reflect".commonType "noescape") NumMethod() (? int)
+       func (@"reflect".t *@"reflect".commonType "noescape") NumOut() (? int)
+       func (@"reflect".t *@"reflect".commonType "noescape") Out(@"reflect".i int) (? @"reflect".Type)
+       func (@"reflect".t *@"reflect".commonType "noescape") PkgPath() (? string)
+       func (@"reflect".t *@"reflect".commonType "noescape") Size() (? uintptr) { return @"reflect".t.@"reflect".size }
+       func (@"reflect".t *@"reflect".commonType "noescape") String() (? string) { return *@"reflect".t.@"reflect".string }
+       func (@"reflect".t *@"reflect".commonType) @"reflect".common() (? *@"reflect".commonType) { return @"reflect".t }
+       func (@"reflect".ct *@"reflect".commonType) @"reflect".ptrTo() (? *@"reflect".commonType)
+       func (@"reflect".t *@"reflect".commonType) @"reflect".runtimeType() (? *@"runtime".Type)
+       func (@"reflect".t *@"reflect".commonType) @"reflect".toType() (? @"reflect".Type)
+       type @"reflect".flag uintptr
+       func (@"reflect".f @"reflect".flag) @"reflect".kind() (? @"reflect".Kind) { return @"reflect".Kind(@"reflect".f >> 4 & @"reflect".flag(31)) }
+       func (@"reflect".f @"reflect".flag) @"reflect".mustBe(@"reflect".expected @"reflect".Kind)
+       func (@"reflect".f @"reflect".flag) @"reflect".mustBeAssignable()
+       func (@"reflect".f @"reflect".flag) @"reflect".mustBeExported()
+       type @"reflect".iword @"unsafe".Pointer
+       type @"reflect".Value struct { @"reflect".typ *@"reflect".commonType; @"reflect".val @"unsafe".Pointer; ? @"reflect".flag }
+       func (@"reflect".v @"reflect".Value) Addr() (? @"reflect".Value)
+       func (@"reflect".v @"reflect".Value "noescape") Bool() (? bool)
+       func (@"reflect".v @"reflect".Value "noescape") Bytes() (? []byte)
+       func (@"reflect".v @"reflect".Value) Call(@"reflect".in []@"reflect".Value "noescape") (? []@"reflect".Value)
+       func (@"reflect".v @"reflect".Value) CallSlice(@"reflect".in []@"reflect".Value "noescape") (? []@"reflect".Value)
+       func (@"reflect".v @"reflect".Value "noescape") CanAddr() (? bool) { return @"reflect".v.@"reflect".flag & @"reflect".flag(4) != @"reflect".flag(0) }
+       func (@"reflect".v @"reflect".Value "noescape") CanInterface() (? bool)
+       func (@"reflect".v @"reflect".Value "noescape") CanSet() (? bool) { return @"reflect".v.@"reflect".flag & @"reflect".flag(5) == @"reflect".flag(4) }
+       func (@"reflect".v @"reflect".Value) Cap() (? int)
+       func (@"reflect".v @"reflect".Value) Close()
+       func (@"reflect".v @"reflect".Value "noescape") Complex() (? complex128)
+       func (@"reflect".v @"reflect".Value) Elem() (? @"reflect".Value)
+       func (@"reflect".v @"reflect".Value) Field(@"reflect".i int) (? @"reflect".Value)
+       func (@"reflect".v @"reflect".Value) FieldByIndex(@"reflect".index []int "noescape") (? @"reflect".Value)
+       func (@"reflect".v @"reflect".Value) FieldByName(@"reflect".name string "noescape") (? @"reflect".Value)
+       func (@"reflect".v @"reflect".Value) FieldByNameFunc(@"reflect".match func(? string) (? bool) "noescape") (? @"reflect".Value)
+       func (@"reflect".v @"reflect".Value "noescape") Float() (? float64)
+       func (@"reflect".v @"reflect".Value) Index(@"reflect".i int) (? @"reflect".Value)
+       func (@"reflect".v @"reflect".Value "noescape") Int() (? int64)
+       func (@"reflect".v @"reflect".Value) Interface() (? interface {})
+       func (@"reflect".v @"reflect".Value "noescape") InterfaceData() (? [2]uintptr)
+       func (@"reflect".v @"reflect".Value "noescape") IsNil() (? bool)
+       func (@"reflect".v @"reflect".Value "noescape") IsValid() (? bool) { return @"reflect".v.@"reflect".flag != @"reflect".flag(0) }
+       func (@"reflect".v @"reflect".Value "noescape") Kind() (? @"reflect".Kind)
+       func (@"reflect".v @"reflect".Value) Len() (? int)
+       func (@"reflect".v @"reflect".Value) MapIndex(@"reflect".key @"reflect".Value) (? @"reflect".Value)
+       func (@"reflect".v @"reflect".Value) MapKeys() (? []@"reflect".Value)
+       func (@"reflect".v @"reflect".Value) Method(@"reflect".i int) (? @"reflect".Value)
+       func (@"reflect".v @"reflect".Value) MethodByName(@"reflect".name string "noescape") (? @"reflect".Value)
+       func (@"reflect".v @"reflect".Value "noescape") NumField() (? int)
+       func (@"reflect".v @"reflect".Value "noescape") NumMethod() (? int)
+       func (@"reflect".v @"reflect".Value "noescape") OverflowComplex(@"reflect".x complex128 "noescape") (? bool)
+       func (@"reflect".v @"reflect".Value "noescape") OverflowFloat(@"reflect".x float64) (? bool)
+       func (@"reflect".v @"reflect".Value "noescape") OverflowInt(@"reflect".x int64) (? bool)
+       func (@"reflect".v @"reflect".Value "noescape") OverflowUint(@"reflect".x uint64) (? bool)
+       func (@"reflect".v @"reflect".Value) Pointer() (? uintptr)
+       func (@"reflect".v @"reflect".Value) Recv() (@"reflect".x @"reflect".Value, @"reflect".ok bool)
+       func (@"reflect".v @"reflect".Value) Send(@"reflect".x @"reflect".Value)
+       func (@"reflect".v @"reflect".Value) Set(@"reflect".x @"reflect".Value)
+       func (@"reflect".v @"reflect".Value "noescape") SetBool(@"reflect".x bool)
+       func (@"reflect".v @"reflect".Value "noescape") SetBytes(@"reflect".x []byte)
+       func (@"reflect".v @"reflect".Value "noescape") SetComplex(@"reflect".x complex128)
+       func (@"reflect".v @"reflect".Value "noescape") SetFloat(@"reflect".x float64)
+       func (@"reflect".v @"reflect".Value "noescape") SetInt(@"reflect".x int64)
+       func (@"reflect".v @"reflect".Value "noescape") SetLen(@"reflect".n int)
+       func (@"reflect".v @"reflect".Value) SetMapIndex(@"reflect".key @"reflect".Value, @"reflect".val @"reflect".Value)
+       func (@"reflect".v @"reflect".Value "noescape") SetPointer(@"reflect".x @"unsafe".Pointer)
+       func (@"reflect".v @"reflect".Value "noescape") SetString(@"reflect".x string)
+       func (@"reflect".v @"reflect".Value "noescape") SetUint(@"reflect".x uint64)
+       func (@"reflect".v @"reflect".Value) Slice(@"reflect".beg int, @"reflect".end int) (? @"reflect".Value)
+       func (@"reflect".v @"reflect".Value "noescape") String() (? string)
+       func (@"reflect".v @"reflect".Value) TryRecv() (@"reflect".x @"reflect".Value, @"reflect".ok bool)
+       func (@"reflect".v @"reflect".Value) TrySend(@"reflect".x @"reflect".Value) (? bool)
+       func (@"reflect".v @"reflect".Value) Type() (? @"reflect".Type)
+       func (@"reflect".v @"reflect".Value "noescape") Uint() (? uint64)
+       func (@"reflect".v @"reflect".Value) UnsafeAddr() (? uintptr)
+       func (@"reflect".v @"reflect".Value) @"reflect".assignTo(@"reflect".context string "noescape", @"reflect".dst *@"reflect".commonType, @"reflect".target *interface {}) (? @"reflect".Value)
+       func (@"reflect".v @"reflect".Value) @"reflect".call(@"reflect".method string "noescape", @"reflect".in []@"reflect".Value "noescape") (? []@"reflect".Value)
+       func (@"reflect".v @"reflect".Value) @"reflect".iword() (? @"reflect".iword)
+       func (@"reflect".v @"reflect".Value) @"reflect".recv(@"reflect".nb bool) (@"reflect".val @"reflect".Value, @"reflect".ok bool)
+       func (@"reflect".v @"reflect".Value) @"reflect".send(@"reflect".x @"reflect".Value, @"reflect".nb bool) (@"reflect".selected bool)
+       type @"text/template".common struct { @"text/template".tmpl map[string]*@"text/template".Template; @"text/template".parseFuncs @"text/template".FuncMap; @"text/template".execFuncs map[string]@"reflect".Value }
+       type @"io".Writer interface { Write(@"io".p []byte) (@"io".n int, @"io".err error) }
+       type @"text/template".Template struct { @"text/template".name string; ? *@"text/template/parse".Tree; ? *@"text/template".common; @"text/template".leftDelim string; @"text/template".rightDelim string }
+       func (@"text/template".t *@"text/template".Template) AddParseTree(@"text/template".name string, @"text/template".tree *@"text/template/parse".Tree) (? *@"text/template".Template, ? error)
+       func (@"text/template".t *@"text/template".Template) Clone() (? *@"text/template".Template)
+       func (@"text/template".t *@"text/template".Template) Delims(@"text/template".left string, @"text/template".right string) (? *@"text/template".Template)
+       func (@"text/template".t *@"text/template".Template) Execute(@"text/template".wr @"io".Writer, @"text/template".data interface {}) (@"text/template".err error)
+       func (@"text/template".t *@"text/template".Template "noescape") ExecuteTemplate(@"text/template".wr @"io".Writer, @"text/template".name string, @"text/template".data interface {}) (? error)
+       func (@"text/template".t *@"text/template".Template) Funcs(@"text/template".funcMap @"text/template".FuncMap "noescape") (? *@"text/template".Template)
+       func (@"text/template".t *@"text/template".Template "noescape") Lookup(@"text/template".name string "noescape") (? *@"text/template".Template)
+       func (@"text/template".t *@"text/template".Template "noescape") Name() (? string) { return @"text/template".t.@"text/template".name }
+       func (@"text/template".t *@"text/template".Template) New(@"text/template".name string) (? *@"text/template".Template)
+       func (@"text/template".t *@"text/template".Template) Parse(@"text/template".text string) (? *@"text/template".Template, ? error)
+       func (@"text/template".t *@"text/template".Template) ParseFiles(@"text/template".filenames ...string "noescape") (? *@"text/template".Template, ? error)
+       func (@"text/template".t *@"text/template".Template) ParseGlob(@"text/template".pattern string) (? *@"text/template".Template, ? error)
+       func (@"text/template".t *@"text/template".Template "noescape") Templates() (? []*@"text/template".Template)
+       func (@"text/template".t *@"text/template".Template "noescape") @"text/template".associate(@"text/template".new *@"text/template".Template) (? error)
+       func (@"text/template".t *@"text/template".Template) @"text/template".copy(@"text/template".c *@"text/template".common) (? *@"text/template".Template)
+       func (@"text/template".t *@"text/template".Template "noescape") @"text/template".init()
+       var @"".tmpl *@"text/template".Template
+       func @"".init·3()
+       func @"".tmplexec()
+       func @"".BenchmarkTemplate(@"".b *@"testing".B "noescape")
+       var @"".initdone· uint8
+       func @"".init()
+       var @"time".months [12]string
+       var @"time".days [7]string
+
+$$  // local types
+
+$$
+
+!
+\84\0y\ 1</\0\84\0y\ 1<home\0\84\0y\ 1<iant\0\84\0y\ 1<go\0\84\0y\ 1<test\0\84\0y\ 1<bench\0\84\0y\ 1<go1\0\84\0y\ 1<dummy.go\08\0\ 1\0\0\0\0\08\0\ 5\0\0\0\0\0\84\0y\ 1</\0\84\0y\ 1<home\0\84\0y\ 1<iant\0\84\0y\ 1<go\0\84\0y\ 1<test\0\84\0y\ 1<bench\0\84\0y\ 1<go1\0\84\0y\ 1<binarytree_test.go\08\0\ 5\0\0\0\0\0\84\0y\ 1<testing.a\08\0\ e\0\0\0\0\ 5ÿÿÿÿu8\0D\0\0\0\0\0\84\0y\ 1</\0\84\0y\ 1<home\0\84\0y\ 1<iant\0\84\0y\ 1<go\0\84\0y\ 1<test\0\84\0y\ 1<bench\0\84\0y\ 1<go1\0\84\0y\ 1<fannkuch_test.go\08\0D\0\0\0\0\0\84\0y\ 1<testing.a\08\0M\0\0\0\0\ 5ÿÿÿÿu8\0\98\0\0\0\0\0\84\0y\ 1</\0\84\0y\ 1<home\0\84\0y\ 1<iant\0\84\0y\ 1<go\0\84\0y\ 1<test\0\84\0y\ 1<bench\0\84\0y\ 1<go1\0\84\0y\ 1<fasta_test.go\08\0\98\0\0\0\0\08\0<\ 1\0\0\0\0\84\0y\ 1</\0\84\0y\ 1<home\0\84\0y\ 1<iant\0\84\0y\ 1<go\0\84\0y\ 1<test\0\84\0y\ 1<bench\0\84\0y\ 1<go1\0\84\0y\ 1<gob_test.go\08\0<\ 1\0\0\0\0\84\0y\ 1<bytes.a\08\0E\ 1\0\0\0\ 5ÿÿÿÿu\84\0y\ 1<encoding\0\84\0y\ 1<gob.a\08\0F\ 1\0\0\0\ 5ÿÿÿÿu\84\0y\ 1<encoding\0\84\0y\ 1<json.a\08\0G\ 1\0\0\0\ 5ÿÿÿÿu\84\0y\ 1<io\0\84\0y\ 1<ioutil.a\08\0H\ 1\0\0\0\ 5ÿÿÿÿu\84\0y\ 1<log.a\08\0I\ 1\0\0\0\ 5ÿÿÿÿu\84\0y\ 1<reflect.a\08\0J\ 1\0\0\0\ 5ÿÿÿÿu\84\0y\ 1<testing.a\08\0K\ 1\0\0\0\ 5ÿÿÿÿu8\0\9b\ 1\0\0\0\0\84\0y\ 1</\0\84\0y\ 1<home\0\84\0y\ 1<iant\0\84\0y\ 1<go\0\84\0y\ 1<test\0\84\0y\ 1<bench\0\84\0y\ 1<go1\0\84\0y\ 1<gzip_test.go\08\0\9b\ 1\0\0\0\0\84\0y\ 1<bytes.a\08\0¤\ 1\0\0\0\ 5ÿÿÿÿu\84\0y\ 1<compress\0\84\0y\ 1<gzip.a\08\0¥\ 1\0\0\0\ 5ÿÿÿÿu\84\0y\ 1<io.a\08\0¦\ 1\0\0\0\ 5ÿÿÿÿu\84\0y\ 1<io\0\84\0y\ 1<ioutil.a\08\0§\ 1\0\0\0\ 5ÿÿÿÿu\84\0y\ 1<testing.a\08\0¨\ 1\0\0\0\ 5ÿÿÿÿu8\0à\ 1\0\0\0\0\84\0y\ 1</\0\84\0y\ 1<home\0\84\0y\ 1<iant\0\84\0y\ 1<go\0\84\0y\ 1<test\0\84\0y\ 1<bench\0\84\0y\ 1<go1\0\84\0y\ 1<json_test.go\08\0à\ 1\0\0\0\0\84\0y\ 1<compress\0\84\0y\ 1<bzip2.a\08\0é\ 1\0\0\0\ 5ÿÿÿÿu\84\0y\ 1<encoding\0\84\0y\ 1<base64.a\08\0ê\ 1\0\0\0\ 5ÿÿÿÿu\84\0y\ 1<encoding\0\84\0y\ 1<json.a\08\0ë\ 1\0\0\0\ 5ÿÿÿÿu\84\0y\ 1<io.a\08\0ì\ 1\0\0\0\ 5ÿÿÿÿu\84\0y\ 1<io\0\84\0y\ 1<ioutil.a\08\0í\ 1\0\0\0\ 5ÿÿÿÿu\84\0y\ 1<strings.a\08\0î\ 1\0\0\0\ 5ÿÿÿÿu\84\0y\ 1<testing.a\08\0ï\ 1\0\0\0\ 5ÿÿÿÿu8\04\ 2\0\0\0\0\84\0y\ 1</\0\84\0y\ 1<home\0\84\0y\ 1<iant\0\84\0y\ 1<go\0\84\0y\ 1<test\0\84\0y\ 1<bench\0\84\0y\ 1<go1\0\84\0y\ 1<jsondata_test.go\08\04\ 2\0\0\0\08\0N       \0\0\0\0\84\0y\ 1</\0\84\0y\ 1<home\0\84\0y\ 1<iant\0\84\0y\ 1<go\0\84\0y\ 1<test\0\84\0y\ 1<bench\0\84\0y\ 1<go1\0\84\0y\ 1<revcomp_test.go\08\0N   \0\0\0\0\84\0y\ 1<bufio.a\08\0X    \0\0\0\ 5ÿÿÿÿu\84\0y\ 1<bytes.a\08\0Y       \0\0\0\ 5ÿÿÿÿu\84\0y\ 1<io\0\84\0y\ 1<ioutil.a\08\0Z      \0\0\0\ 5ÿÿÿÿu\84\0y\ 1<testing.a\08\0[     \0\0\0\ 5ÿÿÿÿu8\0£    \0\0\0\0\84\0y\ 1</\0\84\0y\ 1<home\0\84\0y\ 1<iant\0\84\0y\ 1<go\0\84\0y\ 1<test\0\84\0y\ 1<bench\0\84\0y\ 1<go1\0\84\0y\ 1<template_test.go\08\0£  \0\0\0\0\84\0y\ 1<bytes.a\08\0­    \0\0\0\ 5ÿÿÿÿu\84\0y\ 1<io\0\84\0y\ 1<ioutil.a\08\0®      \0\0\0\ 5ÿÿÿÿu\84\0y\ 1<strings.a\08\0¯     \0\0\0\ 5ÿÿÿÿu\84\0y\ 1<testing.a\08\0°     \0\0\0\ 5ÿÿÿÿu\84\0y\ 1<text\0\84\0y\ 1<template.a\08\0±  \0\0\0\ 5ÿÿÿÿu8\0ï    \0\0\0\0\84\0q\ 1"".bottomUpTree\0\84\0q\ 2type.func(int, int) *"".binaryNode\0ã\0\15\0\0\0\91\ 1q\ 2E\18\0\0\0\10\0\0\0u\84\0t\ 3"".depth\0\84\0q\ 4type.int\0r\0\16\0\0\0\95\ 4\0\0\0\ 3t\ 4\ 1\13&\0\16\0\0\0\ 1\13\ 1uS\0\16\0\0\0\0\ 5\10\0\0\0p\84\0q\ 5type."".binaryNode\0\84\0q\ 6type.uint8\0\84\0\8f\aruntime.typ\0®\ 1\17\0\0\0\93q\0\ 5x\ 6\11\a\8f\84\0q\bruntime.new\0\84\0q    type.func(*uint8) *"".binaryNode\0\1f\0\17\0\0\0\0\91\bq     ®\ 1\17\0\0\0\ 5\b\0\0\0\8f\ 1\11®\ 1\17\0\0\0\ 1\11\ 1\17®\ 1\17\0\0\0\ 1u\ 1\10Æ\ 1\17\0\0\0\0\0Æ\ 1\17\0\0\0\0\0Æ\ 1\17\0\0\0\0\0\84\0t
+"".item\0r\0\17\0\0\0\91
+t\ 4\ 1\15r\0\17\0\0\0\ 1\15\ 1\8c\84\0t\v""..noname\0®\ 1\17\0\0\0\ 1\11\15\b\0\0\0\v\0\17\0\0\0\0\0®\ 1\19\0\0\0\93q\0\ 5x\ 6\11\a\8f\1f\0\19\0\0\0\0\91\bq  r\0\19\0\0\0\91
+t\ 4\ 1\11®\ 1\19\0\0\0\ 5\b\0\0\0\8f\ 1\10\84\0s\f"".autotmp_0008\0®\ 1\19\0\0\0\ 1\10\15øÿÿÿ\fsr\0\19\0\0\0\ 1\11\ 1\8br\0\19\0\0\0\ 5\ 2\0\0\0u\ 1\15>\0\19\0\0\0\ 1\11\ 1\15/\0\19\0\0\0\0\ 1\15\84\0\8f\r"".item\0r\0\19\0\0\0\ 1\15\11\r\8fr\0\19\0\0\0\95\ 4\0\0\0\ 3t\ 4\ 1\15/\0\19\0\0\0\0\ 1\15\84\0\8f\ e"".depth\0r\0\19\0\0\0\ 1\15\15\ 4\0\0\0\ e\8f\1f\0\19\0\0\0\0\91\ 1q\ 2®\ 1\19\0\0\0\ 5\b\0\0\0\8f\ 1\13®\ 1\19\0\0\0\15øÿÿÿ\fs\ 1\15®\ 1\19\0\0\0\ 1\13\ 5\b\0\0\0\90r\0\19\0\0\0\ 5\ 2\0\0\0u\ 1\15\84\0t\ f"".item\0r\0\19\0\0\0\91\ ft\ 4\ 1\18>\0\19\0\0\0\ 1\18\ 1\15\84\0\8f\10"".item\0r\0\19\0\0\0\ 1\15\11\10\8f\84\0t\11"".depth\0r\0\19\0\0\0\95\ 4\0\0\0\11t\ 4\ 1\15/\0\19\0\0\0\0\ 1\15\84\0\8f\12"".depth\0r\0\19\0\0\0\ 1\15\15\ 4\0\0\0\12\8f\1f\0\19\0\0\0\0\91\ 1q\ 2®\ 1\19\0\0\0\15øÿÿÿ\fs\ 1\10®\ 1\19\0\0\0\ 5\b\0\0\0\8f\ 1\13®\ 1\19\0\0\0\ 1\13\ 5\10\0\0\0\8b®\ 1\19\0\0\0\ 1\10\15\b\0\0\0\v\0\19\0\0\0\0\0\84\0q\13"".(*binaryNode).itemCheck\0\84\0q\14type.method(*"".binaryNode) func() int\0ã\0\1c\0\0\0\91\13q\14E\18\0\0\0\10\0\0\0u\84\0t\15"".n\0\84\0q\16type.*"".binaryNode\0®\ 1\1c\0\0\0\91\15t\16\ 1\10®\ 1\1d\0\0\0\ 5\b\0\0\0\8b\ 1\13®\ 1\1d\0\0\0\ 1u\ 1\15¢\ 1\1d\0\0\0\ 1\13\ 1\15Z\0\1d\0\0\0\0\ 57\0\0\0pr\0\1e\0\0\0\ 1\8b\ 1\15r\0\1e\0\0\0\ 1\15\15\b\0\0\0\v\0\1e\0\0\0\0\0®\ 1 \0\0\0\ 5\b\0\0\0\8b\ 1\18\84\0\8f\17"".n\0®\ 1 \0\0\0\ 1\18\11\17\8f\1f\0 \0\0\0\0\11\13q\84\0t\18"".n\0®\ 1 \0\0\0\91\18t\16\ 1\10r\0 \0\0\0\ 5\b\0\0\0\8f\ 1\13     \0 \0\0\0\ 1\8b\ 1\13\84\0s\19"".autotmp_0009\0r\0 \0\0\0\ 1\13\15üÿÿÿ\19\ 1 \0\0\0\ 5\10\0\0\0\8b\ 1\18\84\0\8f\1a"".n\0®\ 1 \0\0\0\ 1\18\11\1a\8f\1f\0 \0\0\0\0\11\13qr\0 \0\0\0\ 5\b\0\0\0\8f\ 1\13r\0 \0\0\0\15üÿÿÿ\19s\ 1\15Ý\0 \0\0\0\ 1\13\ 1\15r\0 \0\0\0\ 1\15\15\b\0\0\0\v\0 \0\0\0\0\0\84\0q\e"".binarytree\0\84\0q\1ctype.func(int)\0ã\0%\0\0\0\91\eq\1cE0\0\0\0\b\0\0\0u\84\0t\1d"".n\0r\0%\0\0\0\91\1dt\ 4\ 1\10&\0'\0\0\0\ 1\10\ 5\ 6\0\0\0uR\0'\0\0\0\0\ 5K\0\0\0pr\0(\0\0\0\ 5\ 6\0\0\0u\81\10\ 4r\0*\0\0\0\81\10\ 4\ 1\13\84\0s\1e"".maxDepth\0r\0*\0\0\0\ 1\10\95ìÿÿÿ\1es\ 4D\0*\0\0\0\0\ 1\13r\0,\0\0\0\ 1u\11\10\8fr\0,\0\0\0\ 1\13\15\ 4\0\0\0\12\8f\1f\0,\0\0\0\0\91\ 1q\ 2®\ 1,\0\0\0\ 5\b\0\0\0\8f\ 1\13\84\0\8f\1f"".n\0®\ 1,\0\0\0\ 1\13\11\1f\8f\1f\0,\0\0\0\0\11\13qr\0,\0\0\0\ 5\b\0\0\0\8f\ 1\13r\0/\0\0\0\ 1u\11\10\8fr\0/\0\0\0\95ìÿÿÿ\1es\ 4\ 1\13r\0/\0\0\0\ 1\13\15\ 4\0\0\0\12\8f\1f\0/\0\0\0\0\91\ 1q\ 2®\ 1/\0\0\0\ 5\b\0\0\0\8f\ 1\13\84\0s "".longLivedTree\0®\ 1/\0\0\0\ 1\13\95øÿÿÿ s\16r\01\0\0\0\ 5\ 4\0\0\0u\81\12\ 4Y\01\0\0\0\0\ 5^\0\0\0p   \01\0\0\0\ 5\ 2\0\0\0u\81\12\ 4r\01\0\0\0\95ìÿÿÿ\1es\ 4\ 1\15&\01\0\0\0\ 1\12\ 1\15S\01\0\0\0\0\ 5\8b\0\0\0\ 12\0\0\0\ 1\11\ 1\13r\02\0\0\0\95ìÿÿÿ\1es\ 4\ 1\11Ý\02\0\0\0\ 1\12\ 1\11       \02\0\0\0\ 5\ 4\0\0\0u\ 1\11r\02\0\0\0\ 5\ 1\0\0\0u\ 1\15&\02\0\0\0\ 1\11\ 5 \0\0\0uO\02\0\0\0\0\ 5i\0\0\0pr\02\0\0\0\ 1u\ 1\15Ñ\02\0\0\0\ 1\11\ 1\15®\ 12\0\0\0\ 1\13\ 1\11\84\0s!"".iterations\0r\02\0\0\0\ 1\15\95äÿÿÿ!s\ 4\84\0s""".check\0r\03\0\0\0\ 1u\95ôÿÿÿ"s\ 4r\05\0\0\0\ 5\ 1\0\0\0u\81\10\ 4Y\05\0\0\0\0\ 5p\0\0\0pD\05\0\0\0\0\81\10\ 4r\05\0\0\0\95äÿÿÿ!s\ 4\ 1\15&\05\0\0\0\ 1\10\ 1\15S\05\0\0\0\0\ 5]\0\0\0p\84\0s#"".i\0r\06\0\0\0\ 1\10\95ðÿÿÿ#s\ 4r\06\0\0\0\ 1\10\11\10\8f\84\0s$"".depth\0r\06\0\0\0\ 1\12\95èÿÿÿ$s\ 4\84\0\8f%"".depth\0r\06\0\0\0\ 1\12\15\ 4\0\0\0%\8f\1f\06\0\0\0\0\91\ 1q\ 2®\ 16\0\0\0\ 5\b\0\0\0\8f\ 1\15®\ 16\0\0\0\ 1\15\11\1f\8f\1f\06\0\0\0\0\11\13qr\06\0\0\0\ 5\b\0\0\0\8f\ 1\13       \06\0\0\0\ 1\13\95ôÿÿÿ"s\ 4r\07\0\0\0\95ðÿÿÿ#s\ 4\ 1\15\86\07\0\0\0\0\ 1\15r\07\0\0\0\ 1\15\11\10\8f\84\0s&"".depth\0r\07\0\0\0\95èÿÿÿ&s\ 4\ 1\15\84\0\8f'"".depth\0r\07\0\0\0\ 1\15\15\ 4\0\0\0'\8f\1f\07\0\0\0\0\91\ 1q\ 2®\ 17\0\0\0\ 5\b\0\0\0\8f\ 1\15®\ 17\0\0\0\ 1\15\11\1f\8f\1f\07\0\0\0\0\11\13q\84\0s("".depth\0r\07\0\0\0\95èÿÿÿ(s\ 4\ 1\12r\07\0\0\0\95ðÿÿÿ#s\ 4\ 1\10r\07\0\0\0\ 5\b\0\0\0\8f\ 1\13   \07\0\0\0\ 1\13\95ôÿÿÿ"s\ 4Y\05\0\0\0\0\ 5o\0\0\0\ 1;\0\0\0\95øÿÿÿ s\16\ 1\13®\ 1;\0\0\0\ 1\13\11\1f\8f\1f\0;\0\0\0\0\11\13\0=\0\0\0\0\0\84\0q)"".BenchmarkBinaryTree17\0\84\0q*type.func(*testing.B)\0ã\0?\0\0\0\91)q*E\10\0\0\0\b\0\0\0ur\0@\0\0\0\ 1u\81\10\ 4Y\0@\0\0\0\0\ 5\93\0\0\0pD\0@\0\0\0\0\81\10\ 4\84\0t+"".b\0\84\0q,type.*testing.B\0®\ 1@\0\0\0\91+t,\ 1\15r\0@\0\0\0\ 5P\0\0\0\90\ 1\13r\0@\0\0\0\ 1\10\95üÿÿÿ#s\ 4&\0@\0\0\0\ 1\13\ 1\10U\0@\0\0\0\0\ 5\9c\0\0\0pr\0A\0\0\0\ 5\11\0\0\0u\11\1f\8f\1f\0A\0\0\0\0\91\eq\1cr\0A\0\0\0\95üÿÿÿ#s\ 4\ 1\10Y\0@\0\0\0\0\ 5\92\0\0\0\0C\0\0\0\0\0\84\0q-"".fannkuch\0\84\0q.type.func(int) int\0ã\0O\0\0\0\91-q.E`\0\0\0\10\0\0\0u\84\0t/"".n\0r\0O\0\0\0\91/t\ 4\ 1\10&\0P\0\0\0\ 1\10\ 5\ 1\0\0\0uR\0P\0\0\0\0\ 5£\0\0\0pr\0Q\0\0\0\ 1u\15\b\0\0\0\v\0Q\0\0\0\0\0r\0T\0\0\0\81\10\ 4\ 1\13/\0T\0\0\0\0\ 1\13\84\0s0"".n1\0r\0T\0\0\0\ 1\13\95Ôÿÿÿ0s\ 4\84\0q1type.[]int\0®\ 1U\0\0\0\93q\01x\ 6\11\a\8f¯\ 1U\0\0\0\ 1\10\ 1\13\84\0\8f\ 1runtime.nel\0®\ 1U\0\0\0\ 1\13\15\b\0\0\0\ 1\8f¯\ 1U\0\0\0\ 1\10\ 1\13\84\0\8f\ 2runtime.cap\0®\ 1U\0\0\0\ 1\13\15\10\0\0\0\ 2\8f\84\0q\ 3runtime.makeslice\0\84\0q\ 4type.func(*uint8, int64, int64) []int\0\1f\0U\0\0\0\0\91\ 3q\ 4\84\0q\ 5type.int\0r\0U\0\0\0\91/t\ 5\ 1\10®\ 1U\0\0\0\ 5\18\0\0\0\8f\ 1\13\84\0s\ 6"".perm\0®\ 1U\0\0\0\ 1\13\95àÿÿÿ\ 6s1r\0U\0\0\0\ 5 \0\0\0\8f\ 1\13r\0U\0\0\0\ 1\13\95èÿÿÿ\ 6s1r\0U\0\0\0\ 5$\0\0\0\8f\ 1\13\84\0q\atype.uint8\0\84\0\8f\bruntime.typ\0®\ 1V\0\0\0\93q\01x\a\11\b\8f¯\ 1V\0\0\0\ 1\10\ 1\13®\ 1V\0\0\0\ 1\13\15\b\0\0\0\ 1\8f¯\ 1V\0\0\0\ 1\10\ 1\13®\ 1V\0\0\0\ 1\13\15\10\0\0\0\ 2\8f\1f\0V\0\0\0\0\91\ 3q\ 4r\0V\0\0\0\91/t\ 5\ 1\10®\ 1V\0\0\0\ 5\18\0\0\0\8f\ 1\13\84\0s   "".perm1\0®\ 1V\0\0\0\ 1\13\95ðÿÿÿ  s1r\0V\0\0\0\ 5 \0\0\0\8f\ 1\13r\0V\0\0\0\ 1\13\95øÿÿÿ   s1r\0V\0\0\0\ 5$\0\0\0\8f\ 1\13r\0V\0\0\0\ 1\13\95üÿÿÿ   s1®\ 1W\0\0\0\93q\01x\a\11\b\8f¯\ 1W\0\0\0\ 1\10\ 1\13®\ 1W\0\0\0\ 1\13\15\b\0\0\0\ 1\8f¯\ 1W\0\0\0\ 1\10\ 1\13®\ 1W\0\0\0\ 1\13\15\10\0\0\0\ 2\8f\1f\0W\0\0\0\0\91\ 3q\ 4®\ 1W\0\0\0\95àÿÿÿ\ 6s1\ 1\12r\0W\0\0\0\95èÿÿÿ\ 6s1\ 1\11®\ 1W\0\0\0\ 5\18\0\0\0\8f\ 1\1dr\0W\0\0\0\ 5 \0\0\0\8f\ 1\1cr\0W\0\0\0\ 5$\0\0\0\8f\ 1\13r\0Y\0\0\0\ 1u\81\10\ 5Y\0Y\0\0\0\0\ 5Í\0\0\0pD\0Y\0\0\0\0\81\10\ 5r\0Y\0\0\0\91/t\ 5\ 1\15&\0Y\0\0\0\ 1\10\ 1\15R\0Y\0\0\0\0\ 5×\0\0\0\ 1Z\0\0\0\ 1\10\ 1\13&\0Z\0\0\0\ 1\13\95øÿÿÿ    s1O\0Z\0\0\0\0\ 5Ô\0\0\0p\84\0q
+runtime.panicindex\0\1f\0Z\0\0\0\0\11
+q®\ 1Z\0\0\0\95ðÿÿÿ   s1\ 1\15r\0Z\0\0\0\ 1\10\ 3\13\ 4\90Y\0Y\0\0\0\0\ 5Ì\0\0\0pr\0]\0\0\0\91/t\ 5\ 1\10\84\0s\v"".didpr\0r\0^\0\0\0\ 1u\95Ìÿÿÿ\vs\ 5\84\0s\f"".flipsMax\0r\0_\0\0\0\ 1u\95Ðÿÿÿ\fs\ 5r\0a\0\0\0\95Ìÿÿÿ\vs\ 5\ 1\13&\0a\0\0\0\ 1\13\ 5\1e\0\0\0uR\0a\0\0\0\0\ 5à\0\0\0pD\0b\0\0\0\0\95Ìÿÿÿ\vs\ 5Y\0a\0\0\0\0\ 5à\0\0\0p/\0d\0\0\0\0\81\10\ 5&\0d\0\0\0\ 1\10\ 5\ 1\0\0\0uQ\0d\0\0\0\0\ 5ë\0\0\0pr\0e\0\0\0\81\10\ 5\ 1\13/\0e\0\0\0\0\ 1\13¯\ 1e\0\0\0\ 1\13\ 1\13&\0e\0\0\0\ 1\13\81\1c1O\0e\0\0\0\0\ 5è\0\0\0p\1f\0e\0\0\0\0\11
+q®\ 1e\0\0\0\81\1d1\ 1\15r\0e\0\0\0\ 1\10\ 3\13\ 4\90Y\0d\0\0\0\0\ 5ß\0\0\0\ 1h\0\0\0\95ðÿÿÿ       s1\ 1\15&\0h\0\0\0\ 5\b\0\0\0\90\ 1uT\0h\0\0\0\0\ 5ï\0\0\0p\1f\0h\0\0\0\0\11
+q®\ 1h\0\0\0\ 1\90\ 1\15r\0h\0\0\0\ 1\90\ 1\13&\0h\0\0\0\ 1\13\ 1uQ\0h\0\0\0\0\ 5M\ 1\0\0pr\0h\0\0\0\95Ôÿÿÿ0s\ 5\ 1\15¯\ 1h\0\0\0\ 1\15\ 1\15&\0h\0\0\0\ 1\15\95øÿÿÿ    s1O\0h\0\0\0\0\ 5ø\0\0\0p\1f\0h\0\0\0\0\11
+q®\ 1h\0\0\0\95ðÿÿÿ   s1\ 1\18r\0h\0\0\0\ 3\15\ 4\93\ 1\13r\0h\0\0\0\95Ôÿÿÿ0s\ 5\ 1\15&\0h\0\0\0\ 1\13\ 1\15Q\0h\0\0\0\0\ 5M\ 1\0\0p\84\0s\r"".flips\0r\0i\0\0\0\ 1u\95Øÿÿÿ\rs\ 5r\0j\0\0\0\ 5\ 1\0\0\0u\81\16\ 5Y\0j\0\0\0\0\ 5\ 1\ 1\0\0pD\0j\0\0\0\0\81\16\ 5r\0j\0\0\0\91/t\ 5\ 1\15&\0j\0\0\0\ 1\16\ 1\15R\0j\0\0\0\0\ 5\11\ 1\0\0\ 1k\0\0\0\ 1\16\ 1\13&\0k\0\0\0\ 1\13\81\111O\0k\0\0\0\0\ 5\b\ 1\0\0p\1f\0k\0\0\0\0\11
+q®\ 1k\0\0\0\81\121\ 1\15¯\ 1k\0\0\0\ 1\16\ 1\19&\0k\0\0\0\ 1\19\95øÿÿÿ    s1O\0k\0\0\0\0\ 5\r\ 1\0\0p\1f\0k\0\0\0\0\11
+q®\ 1k\0\0\0\95ðÿÿÿ   s1\ 1\1ar\0k\0\0\0\ 3\19\ 4\95\ 1\18r\0k\0\0\0\ 1\18\ 3\13\ 4\90Y\0j\0\0\0\0\ 5\0\ 1\0\0\ 1m\0\0\0\95ðÿÿÿ    s1\ 1\13&\0m\0\0\0\ 5\b\0\0\0\8e\ 1uT\0m\0\0\0\0\ 5\15\ 1\0\0p\1f\0m\0\0\0\0\11
+q®\ 1m\0\0\0\ 1\8e\ 1\13r\0m\0\0\0\ 1\8e\ 1\er\0o\0\0\0\81\e\ 5\ 1\16/\0o\0\0\0\0\ 1\16r\0o\0\0\0\ 5\ 1\0\0\0u\81\17\ 5Y\0o\0\0\0\0\ 5\1d\ 1\0\0pD\0o\0\0\0\0\ 1\17/\0o\0\0\0\0\ 1\16&\0o\0\0\0\ 1\17\ 1\16R\0o\0\0\0\0\ 57\ 1\0\0\ 1p\0\0\0\ 1\17\ 1\13&\0p\0\0\0\ 1\13\81\111O\0p\0\0\0\0\ 5#\ 1\0\0p\1f\0p\0\0\0\0\11
+qr\0p\0\0\0\ 3\13\ 4\8d\ 1\18\84\0s\ e"".autotmp_0014\0r\0p\0\0\0\ 1\18\15Üÿÿÿ\ e\ 1p\0\0\0\ 1\17\ 1\13&\0p\0\0\0\ 1\13\81\111O\0p\0\0\0\0\ 5)\ 1\0\0p\1f\0p\0\0\0\0\11
+q®\ 1p\0\0\0\81\121\ 1\15¯\ 1p\0\0\0\ 1\16\ 1\19&\0p\0\0\0\ 1\19\81\111O\0p\0\0\0\0\ 5.\ 1\0\0p\1f\0p\0\0\0\0\11
+qr\0p\0\0\0\ 3\19\ 4\8d\ 1\18r\0p\0\0\0\ 1\18\ 3\13\ 4\90¯\ 1p\0\0\0\ 1\16\ 1\13&\0p\0\0\0\ 1\13\81\111O\0p\0\0\0\0\ 54\ 1\0\0p\1f\0p\0\0\0\0\11
+qr\0p\0\0\0\15Üÿÿÿ\ es\ 1\18r\0p\0\0\0\ 1\18\ 3\13\ 4\8dY\0o\0\0\0\0\ 5\e\ 1\0\0pD\0r\0\0\0\0\95Øÿÿÿ\rs\ 5¯\ 1t\0\0\0\ 1\e\ 1\13&\0t\0\0\0\ 1\13\81\111O\0t\0\0\0\0\ 5<\ 1\0\0p\1f\0t\0\0\0\0\11
+qr\0t\0\0\0\ 3\13\ 4\8d\ 1\16¯\ 1u\0\0\0\ 1\e\ 1\13&\0u\0\0\0\ 1\13\81\111O\0u\0\0\0\0\ 5A\ 1\0\0p\1f\0u\0\0\0\0\11
+qr\0u\0\0\0\ 1\e\ 3\13\ 4\8dr\0v\0\0\0\ 1\16\81\e\ 5&\0w\0\0\0\ 1\16\ 1uZ\0w\0\0\0\0\ 5\17\ 1\0\0pr\0{\0\0\0\95Ðÿÿÿ\fs\ 5\ 1\13r\0{\0\0\0\95Øÿÿÿ\rs\ 5\ 1\15&\0{\0\0\0\ 1\13\ 1\15R\0{\0\0\0\0\ 5M\ 1\0\0pr\0|\0\0\0\95Øÿÿÿ\rs\ 5\ 1\13r\0|\0\0\0\ 1\13\95Ðÿÿÿ\fs\ 5Y\0{\0\0\0\0\ 5M\ 1\0\0pD\0\80\0\0\0\0\81\10\ 5r\0\80\0\0\0\91/t\ 5\ 1\15&\0\80\0\0\0\ 1\10\ 1\15R\0\80\0\0\0\0\ 5~\ 1\0\0\ 1\82\0\0\0\95ðÿÿÿ    s1\ 1\13&\0\82\0\0\0\ 5\b\0\0\0\8e\ 1uT\0\82\0\0\0\0\ 5T\ 1\0\0p\1f\0\82\0\0\0\0\11
+q®\ 1\82\0\0\0\ 1\8e\ 1\13r\0\82\0\0\0\ 1\8e\ 1\17r\0\83\0\0\0\ 1u\81\16\ 5Y\0\83\0\0\0\0\ 5Y\ 1\0\0pD\0\83\0\0\0\0\81\16\ 5&\0\83\0\0\0\ 1\16\ 1\10R\0\83\0\0\0\0\ 5j\ 1\0\0\ 1\84\0\0\0\ 1\16\ 1\13&\0\84\0\0\0\ 1\13\95øÿÿÿ  s1O\0\84\0\0\0\0\ 5_\ 1\0\0p\1f\0\84\0\0\0\0\11
+q®\ 1\84\0\0\0\95ðÿÿÿ   s1\ 1\15r\0\84\0\0\0\81\16\ 5\ 1\19D\0\84\0\0\0\0\ 1\19¯\ 1\84\0\0\0\ 1\19\ 1\19&\0\84\0\0\0\ 1\19\95øÿÿÿ s1O\0\84\0\0\0\0\ 5f\ 1\0\0p\1f\0\84\0\0\0\0\11
+q®\ 1\84\0\0\0\95ðÿÿÿ   s1\ 1\1ar\0\84\0\0\0\ 3\19\ 4\95\ 1\18r\0\84\0\0\0\ 1\18\ 3\13\ 4\90Y\0\83\0\0\0\0\ 5X\ 1\0\0\ 1\86\0\0\0\ 1\10\ 1\13&\0\86\0\0\0\ 1\13\95øÿÿÿ        s1O\0\86\0\0\0\0\ 5n\ 1\0\0p\1f\0\86\0\0\0\0\11
+q®\ 1\86\0\0\0\95ðÿÿÿ   s1\ 1\15r\0\86\0\0\0\ 1\17\ 3\13\ 4\90¯\ 1\87\0\0\0\ 1\10\ 1\13&\0\87\0\0\0\ 1\13\81\1c1O\0\87\0\0\0\0\ 5t\ 1\0\0p\1f\0\87\0\0\0\0\11
+q®\ 1\87\0\0\0\81\1d1\ 1\15/\0\87\0\0\0\0\ 3\13\ 4\90¯\ 1\88\0\0\0\ 1\10\ 1\15&\0\88\0\0\0\ 1\15\81\1c1O\0\88\0\0\0\0\ 5z\ 1\0\0p\1f\0\88\0\0\0\0\11
+q®\ 1\88\0\0\0\81\1d1\ 1\18r\0\88\0\0\0\ 3\15\ 4\93\ 1\13&\0\88\0\0\0\ 1\13\ 1uU\0\88\0\0\0\0\ 5L\ 1\0\0pr\0\8c\0\0\0\91/t\ 5\ 1\15&\0\8c\0\0\0\ 1\10\ 1\15Z\0\8c\0\0\0\0\ 5Ú\0\0\0pr\0\8d\0\0\0\95Ðÿÿÿ\fs\ 5\ 1\13\84\0t\ f""..noname\0r\0\8d\0\0\0\ 1\13\15\b\0\0\0\ f\0\8d\0\0\0\0\0\84\0q\10"".BenchmarkFannkuch11\0ã\0\93\0\0\0\91\10q*E\18\0\0\0\b\0\0\0ur\0\94\0\0\0\ 1u\81\10\ 5Y\0\94\0\0\0\0\ 5\88\ 1\0\0pD\0\94\0\0\0\0\81\10\ 5®\ 1\94\0\0\0\91+t,\ 1\15r\0\94\0\0\0\ 5P\0\0\0\90\ 1\13r\0\94\0\0\0\ 1\10\95üÿÿÿ#s\ 5&\0\94\0\0\0\ 1\13\ 1\10U\0\94\0\0\0\0\ 5\91\ 1\0\0p\84\0\8f\11"".n\0r\0\95\0\0\0\ 5\v\0\0\0u\11\11\8f\1f\0\95\0\0\0\0\91-q.r\0\95\0\0\0\95üÿÿÿ#s\ 5\ 1\10Y\0\94\0\0\0\0\ 5\87\ 1\0\0\0\97\0\0\0\0\0\84\0q\12"".fasta\0\84\0q\13type.func(int) []uint8\0ã\0¢\0\0\0\91\12q\13E\88\ 1\0\0\18\0\0\0u\84\0q\14type."".fastaBuffer\0®\ 1£\0\0\0\93q\0\14x\a\11\b\8f®\ 1£\0\0\0\ 1u\15\b\0\0\0\ 1\8fr\0£\0\0\0\ 5\v\0\0\0u\ 1\13\84\0t\15"".n\0r\0£\0\0\0\91\15t\ 5\ 1\15>\0£\0\0\0\ 1\15\ 1\13¯\ 1£\0\0\0\ 1\13\ 1\13®\ 1£\0\0\0\ 1\13\15\10\0\0\0\ 2\8f\84\0q\16type.func(*uint8, int64, int64) []uint8\0\1f\0£\0\0\0\0\91\ 3q\16®\ 1£\0\0\0\ 5\18\0\0\0\8f\ 1\13\84\0s\17"".out\0®\ 1£\0\0\0\ 1\13\95Àÿÿÿ\17s\14r\0£\0\0\0\ 5 \0\0\0\8f\ 1\13r\0£\0\0\0\ 1\13\95Èÿÿÿ\17s\14r\0£\0\0\0\ 5$\0\0\0\8f\ 1\13r\0£\0\0\0\ 1\13\95Ìÿÿÿ\17s\14\84\0q\18type.[15]"".fastaAcid\0®\ 1µ\0\0\0\93q\0\18x\a\11\b\8f\84\0q\19runtime.new\0\84\0q\1atype.func(*uint8) *[15]"".fastaAcid\0\1f\0µ\0\0\0\0\91\19q\1a®\ 1µ\0\0\0\ 5\b\0\0\0\8f\ 1\13®\ 1µ\0\0\0\ 1\13\ 1\17\84\0q\e"".statictmp_0015\0«\ 1µ\0\0\0\11\eq\ 1\16®\ 1µ\0\0\0\ 5<\0\0\0u\ 1\11¨\0µ\0\0\0\0\0²\ 1µ\0\0\0\0\0\84\0s\1c"".iub\0\84\0q\1dtype.[]"".fastaAcid\0r\0µ\0\0\0\ 5\ f\0\0\0u\95èÿÿÿ\1cs\1dr\0µ\0\0\0\ 5\ f\0\0\0u\95ìÿÿÿ\1cs\1d®\ 1µ\0\0\0\ 1\13\95àÿÿÿ\1cs\1d\84\0q\1etype.[4]"".fastaAcid\0®\ 1¼\0\0\0\93q\0\1ex\a\11\b\8f\84\0q\1ftype.func(*uint8) *[4]"".fastaAcid\0\1f\0¼\0\0\0\0\91\19q\1f®\ 1¼\0\0\0\ 5\b\0\0\0\8f\ 1\13®\ 1¼\0\0\0\ 1\13\ 1\17\84\0q "".statictmp_0017\0«\ 1¼\0\0\0\11 q\ 1\16®\ 1¼\0\0\0\ 5\10\0\0\0u\ 1\11¨\0¼\0\0\0\0\0²\ 1¼\0\0\0\0\0\84\0s!"".homosapiens\0r\0¼\0\0\0\ 5\ 4\0\0\0u\95Øÿÿÿ!s\1dr\0¼\0\0\0\ 5\ 4\0\0\0u\95Üÿÿÿ!s\1d®\ 1¼\0\0\0\ 1\13\95Ðÿÿÿ!s\1d\84\0s""".autotmp_0021\0«\ 1Å\0\0\0\15¡þÿÿ"s\ 1\17®\ 1Å\0\0\0\ 1u\ 1\10®\ 1Å\0\0\0\ 5#\0\0\0u\ 1\11¨\0Å\0\0\0\0\0Æ\ 1Å\0\0\0\0\0®\ 1Å\0\0\0\ 5\a\0\0\0u\ 1\11¨\0Å\0\0\0\0\0Ù\0Å\0\0\0\0\0«\ 1Å\0\0\0\15¡þÿÿ"s\ 1\13®\ 1Å\0\0\0\ 1\13\ 1\17\84\0q#"".statictmp_0019\0«\ 1Å\0\0\0\11#q\ 1\16®\ 1Å\0\0\0\ 5#\0\0\0u\ 1\11¨\0Å\0\0\0\0\0²\ 1Å\0\0\0\0\0\7f\0Å\0\0\0\0\0~\0Å\0\0\0\0\0~\0Å\0\0\0\0\0~\0Å\0\0\0\0\0\84\0s$"".alu\0\84\0q%type.[]uint8\0r\0Å\0\0\0\ 5\1f\ 1\0\0u\95øÿÿÿ$s%r\0Å\0\0\0\ 5\1f\ 1\0\0u\95üÿÿÿ$s%®\ 1Å\0\0\0\ 1\13\95ðÿÿÿ$s%«\ 1Ç\0\0\0\95Àÿÿÿ\17s\14\ 1\13\84\0\8f&"".b\0®\ 1Ç\0\0\0\ 1\13\11&\8f\84\0q'go.string.">ONE Homo sapiens alu\n"\0«\ 1Ç\0\0\0\11'q\ 1\16\84\0\8f("".s\0«\ 1Ç\0\0\0\15\b\0\0\0(\8f\ 1\17²\ 1Ç\0\0\0\0\0²\ 1Ç\0\0\0\0\0\84\0q)"".(*fastaBuffer).WriteString\0\1f\0Ç\0\0\0\0\11)q«\ 1È\0\0\0\95Àÿÿÿ\17s\14\ 1\13\84\0\8f*"".out\0®\ 1È\0\0\0\ 1\13\11*\8f\84\0\8f+"".alu\0«\ 1È\0\0\0\15\b\0\0\0+\8f\ 1\13\84\0s,"".alu\0®\ 1È\0\0\0\95ðÿÿÿ,s%\ 1\15®\ 1È\0\0\0\ 1\15\ 1\8er\0È\0\0\0\95øÿÿÿ,s%\ 1\15r\0È\0\0\0\ 1\15\ 5\b\0\0\0\8er\0È\0\0\0\95üÿÿÿ,s%\ 1\15r\0È\0\0\0\ 1\15\ 5\f\0\0\0\8er\0È\0\0\0\ 5\ 2\0\0\0u\ 1\13r\0È\0\0\0\91\15t\ 5\ 1\15>\0È\0\0\0\ 1\15\ 1\13\84\0\8f-"".n\0r\0È\0\0\0\ 1\13\15\18\0\0\0-\8f\84\0q."".fastaRepeat\0\84\0q/type.func(*"".fastaBuffer, []uint8, int)\0\1f\0È\0\0\0\0\91.q/\84\0s0"".out\0«\ 1É\0\0\0\95Àÿÿÿ0s\14\ 1\13®\ 1É\0\0\0\ 1\13\11&\8f\84\0q1go.string.">TWO IUB ambiguity codes\n"\0«\ 1É\0\0\0\111q\ 1\16«\ 1É\0\0\0\15\b\0\0\0(\8f\ 1\17²\ 1É\0\0\0\0\0²\ 1É\0\0\0\0\0\1f\0É\0\0\0\0\11)q«\ 1Ê\0\0\0\95Àÿÿÿ0s\14\ 1\13\84\0\8f\ 1"".out\0®\ 1Ê\0\0\0\ 1\13\11\ 1\8f\84\0\8f\ 2"".acid\0«\ 1Ê\0\0\0\15\b\0\0\0\ 2\8f\ 1\13®\ 1Ê\0\0\0\95àÿÿÿ\1cs\1d\ 1\15®\ 1Ê\0\0\0\ 1\15\ 1\8er\0Ê\0\0\0\95èÿÿÿ\1cs\1d\ 1\15r\0Ê\0\0\0\ 1\15\ 5\b\0\0\0\8er\0Ê\0\0\0\95ìÿÿÿ\1cs\1d\ 1\15r\0Ê\0\0\0\ 1\15\ 5\f\0\0\0\8er\0Ê\0\0\0\ 5\ 3\0\0\0u\ 1\13\84\0t\ 3"".n\0r\0Ê\0\0\0\91\ 3t\ 5\ 1\15>\0Ê\0\0\0\ 1\15\ 1\13\84\0\8f\ 4"".n\0r\0Ê\0\0\0\ 1\13\15\18\0\0\0\ 4\8f\84\0q\ 5"".fastaRandom\0\84\0q\ 6type.func(*"".fastaBuffer, []"".fastaAcid, int)\0\1f\0Ê\0\0\0\0\91\ 5q\ 6\84\0s\a"".out\0«\ 1Ë\0\0\0\95Àÿÿÿ\as\14\ 1\13®\ 1Ë\0\0\0\ 1\13\11&\8f\84\0q\bgo.string.">THREE Homo sapiens frequency\n"\0«\ 1Ë\0\0\0\11\bq\ 1\16«\ 1Ë\0\0\0\15\b\0\0\0(\8f\ 1\17²\ 1Ë\0\0\0\0\0²\ 1Ë\0\0\0\0\0\1f\0Ë\0\0\0\0\11)q«\ 1Ì\0\0\0\95Àÿÿÿ\as\14\ 1\13\84\0\8f       "".out\0®\ 1Ì\0\0\0\ 1\13\11        \8f«\ 1Ì\0\0\0\15\b\0\0\0\ 2\8f\ 1\13®\ 1Ì\0\0\0\95Ðÿÿÿ!s\1d\ 1\15®\ 1Ì\0\0\0\ 1\15\ 1\8er\0Ì\0\0\0\95Øÿÿÿ!s\1d\ 1\15r\0Ì\0\0\0\ 1\15\ 5\b\0\0\0\8er\0Ì\0\0\0\95Üÿÿÿ!s\1d\ 1\15r\0Ì\0\0\0\ 1\15\ 5\f\0\0\0\8er\0Ì\0\0\0\ 5\ 5\0\0\0u\ 1\13\84\0t
+"".n\0\84\0q\vtype.int\0r\0Ì\0\0\0\91
+t\v\ 1\15>\0Ì\0\0\0\ 1\15\ 1\13\84\0\8f\f"".n\0r\0Ì\0\0\0\ 1\13\15\18\0\0\0\f\8f\1f\0Ì\0\0\0\0\91\ 5q\ 6\84\0s\r"".out\0®\ 1Í\0\0\0\95Àÿÿÿ\rs\14\ 1\13®\ 1Í\0\0\0\ 1\13\15\b\0\0\0\ ftr\0Í\0\0\0\95Èÿÿÿ\rs\14\ 1\13r\0Í\0\0\0\ 1\13\15\10\0\0\0\ ftr\0Í\0\0\0\95Ìÿÿÿ\rs\14\ 1\13r\0Í\0\0\0\ 1\13\15\14\0\0\0\ f\0Í\0\0\0\0\0\84\0q\ e"".(*fastaBuffer).Flush\0\84\0q\ ftype.method(*"".fastaBuffer) func()\0ã\0Ò\0\0\0\91\ eq\ fE(\0\0\0\b\0\0\0u\84\0q\10type.string\0\84\0q\11type.uint8\0\84\0\8f\12runtime.typ\0®\ 1Ó\0\0\0\93q\0\10x\11\11\12\8f\84\0q\13go.string."flush"\0«\ 1Ó\0\0\0\11\13q\ 1\16\84\0\8f\14runtime.elem\0«\ 1Ó\0\0\0\15\b\0\0\0\14\8f\ 1\17²\ 1Ó\0\0\0\0\0²\ 1Ó\0\0\0\0\0\84\0q\15runtime.convT2E\0\84\0q\16type.func(*uint8, string) interface {}\0\1f\0Ó\0\0\0\0\91\15q\16«\ 1Ó\0\0\0\ 5\18\0\0\0\8f\ 1\16«\ 1Ó\0\0\0\ 1\8f\ 1\17²\ 1Ó\0\0\0\0\0²\ 1Ó\0\0\0\0\0\84\0q\17runtime.panic\0\84\0q\18type.func(interface {})\0\1f\0Ó\0\0\0\0\91\17q\18ª\0Ô\0\0\0\0\0\84\0q\19type.method(*"".fastaBuffer) func(string)\0ã\0Ö\0\0\0\91)q\19E(\0\0\0\18\0\0\0u\84\0t\1a"".b\0\84\0q\etype.*"".fastaBuffer\0®\ 1×\0\0\0\91\1at\e\ 1\15\84\0\8f\1c"".b\0®\ 1×\0\0\0\ 1\15\11\1c\8f\84\0t\1d"".s\0r\0×\0\0\0\95\10\0\0\0\1dt\10\ 1\15r\0×\0\0\0\ 1\15\15\b\0\0\0\f\8f\84\0q\1e"".(*fastaBuffer).NextWrite\0\1f\0×\0\0\0\0\11\1e\ 1×\0\0\0\ 5\10\0\0\0\8f\ 1\13®\ 1×\0\0\0\ 1\8e\ 1\12r\0×\0\0\0\ 5\b\0\0\0\8e\ 1\11r\0×\0\0\0\ 5\f\0\0\0\8e\ 1\10\84\0\8f\1fruntime.to\0«\ 1Ø\0\0\0\11\1f\8f\ 1\13®\ 1Ø\0\0\0\ 1\12\ 1\8er\0Ø\0\0\0\ 1\11\ 5\b\0\0\0\8er\0Ø\0\0\0\ 1\10\ 5\f\0\0\0\8e\84\0\8f runtime.fr\0«\ 1Ø\0\0\0\15\10\0\0\0 \8f\ 1\13®\ 1Ø\0\0\0\95\b\0\0\0\1dt\10\ 1\15®\ 1Ø\0\0\0\ 1\15\ 1\8er\0Ø\0\0\0\95\10\0\0\0\1dt\10\ 1\15r\0Ø\0\0\0\ 1\15\ 5\b\0\0\0\8e\84\0q!runtime.slicestringcopy\0\84\0q"type.func([]uint8, string) int\0\1f\0Ø\0\0\0\0\91!q"ª\0Ù\0\0\0\0\0\84\0q#type.method(*"".fastaBuffer) func(int) []uint8\0ã\0Û\0\0\0\91\1eq#E\b\0\0\0 \0\0\0u\84\0t$"".n\0r\0Û\0\0\0\95\b\0\0\0$t\v\ 1\e\84\0t%"".b\0®\ 1Û\0\0\0\91%t\e\ 1\1a®\ 1Ü\0\0\0\ 1\95\ 1\12r\0Ü\0\0\0\ 5\b\0\0\0\95\ 1\13r\0Ü\0\0\0\ 5\f\0\0\0\95\ 1\11\84\0q&type."".fastaBuffer\0r\0Ý\0\0\0\81\13&\ 1\10    \0Ý\0\0\0\ 1\e\ 1\13&\0Ý\0\0\0\ 1\13\ 1\11U\0Ý\0\0\0\0\ 5E\ 2\0\0p\84\0\8f'"".b\0®\ 1Þ\0\0\0\ 1\1a\11'\8f\1f\0Þ\0\0\0\0\11\ eqr\0Þ\0\0\0\95\b\0\0\0$t\v\ 1\e\84\0t("".b\0®\ 1Þ\0\0\0\91(t\e\ 1\1a®\ 1ß\0\0\0\ 1\95\ 1\12r\0ß\0\0\0\ 5\b\0\0\0\95\ 1\10r\0ß\0\0\0\ 5\f\0\0\0\95\ 1\11r\0á\0\0\0\81\10&\ 1\17    \0á\0\0\0\ 1\e\ 1\17®\ 1á\0\0\0\ 1\12\ 1\19r\0á\0\0\0\ 1\11\ 1\16¯\ 1á\0\0\0\ 1\10\ 1\13¯\ 1á\0\0\0\ 1\17\ 1\15°\ 1á\0\0\0\ 1\11\ 1\18¢\ 1á\0\0\0\ 1\15\ 1\18V\0á\0\0\0\0\ 5O\ 2\0\0p\84\0q)runtime.panicslice\0\1f\0á\0\0\0\0\11)q¢\ 1á\0\0\0\ 1\13\ 1\15T\0á\0\0\0\0\ 5N\ 2\0\0\0á\0\0\0\ 1\13\ 1\15r\0á\0\0\0\ 1\15\81\18&r\0á\0\0\0\ 1\16\ 1\17Ý\0á\0\0\0\ 1\13\ 1\17\9a\ 1á\0\0\0\ 1\19\ 1\13®\ 1á\0\0\0\ 1\13\81\16&r\0â\0\0\0\81\10&\ 1\15     \0â\0\0\0\ 1\e\ 1\15r\0â\0\0\0\ 1\11\ 1\10¯\ 1â\0\0\0\ 1\15\ 1\13°\ 1â\0\0\0\ 1\11\ 1\15¢\ 1â\0\0\0\ 1\13\ 1\15V\0â\0\0\0\0\ 5_\ 2\0\0p\1f\0â\0\0\0\0\11)q®\ 1â\0\0\0\ 1\12\ 1\95r\0â\0\0\0\ 1\13\ 5\b\0\0\0\95r\0â\0\0\0\ 1\10\ 5\f\0\0\0\95\84\0t*""..noname\0®\ 1ã\0\0\0\ 1\16\15\10\0\0\0*tr\0ã\0\0\0\ 1\18\15\18\0\0\0*tr\0ã\0\0\0\ 1\17\15\1c\0\0\0*tª\0ã\0\0\0\0\0ã\0è\0\0\0\91.q/E`\0\0\0 \0\0\0u\84\0t+"".alu\0\84\0q,type.[]uint8\0®\ 1è\0\0\0\95\b\0\0\0+t,\ 1\12r\0è\0\0\0\95\10\0\0\0+t,\ 1\11r\0è\0\0\0\95\14\0\0\0+t,\ 1\10®\ 1é\0\0\0\93q\0,x\11\11\12\8f\84\0\8f-runtime.x\0«\ 1é\0\0\0\15\b\0\0\0-\8f\ 1\13®\ 1é\0\0\0\ 1\12\ 1\8er\0é\0\0\0\ 1\11\ 5\b\0\0\0\8er\0é\0\0\0\ 1\10\ 5\f\0\0\0\8e\84\0\8f.runtime.y\0«\ 1é\0\0\0\15\18\0\0\0.\8f\ 1\13®\ 1é\0\0\0\ 1\12\ 1\8er\0é\0\0\0\ 1\11\ 5\b\0\0\0\8er\0é\0\0\0\ 1\10\ 5\f\0\0\0\8e\84\0q/runtime.appendslice\0\84\0q0type.func(*uint8, []uint8, []uint8) []uint8\0\1f\0é\0\0\0\0\91/q0r\0é\0\0\0\95\18\0\0\0$t\v\ 1\12®\ 1é\0\0\0\ 5(\0\0\0\8f\ 1\13\84\0s1"".buf\0®\ 1é\0\0\0\ 1\13\95àÿÿÿ1s,r\0é\0\0\0\ 50\0\0\0\8f\ 1\13r\0é\0\0\0\ 1\13\95èÿÿÿ1s,r\0é\0\0\0\ 54\0\0\0\8f\ 1\13r\0é\0\0\0\ 1\13\95ìÿÿÿ1s,\84\0s\ 1"".off\0r\0ê\0\0\0\ 1u\95Øÿÿÿ\ 1s\v&\0ë\0\0\0\ 1\12\ 1uU\0ë\0\0\0\0\ 5·\ 2\0\0pr\0ì\0\0\0\ 1\12\95\18\0\0\0$t\vr\0ì\0\0\0\ 1\12\81\10\v&\0í\0\0\0\ 1\12\ 5<\0\0\0uU\0í\0\0\0\0\ 5\83\ 2\0\0pr\0î\0\0\0\ 5<\0\0\0u\81\10\v\84\0t\ 2"".out\0®\ 1ð\0\0\0\91\ 2t\e\ 1\15\84\0\8f\ 3"".b\0®\ 1ð\0\0\0\ 1\15\11\ 3\8fr\0ð\0\0\0\81\10\v\ 1\15\84\0s\ 4"".m\0r\0ð\0\0\0\ 1\10\95Üÿÿÿ\ 4s\vD\0ð\0\0\0\0\ 1\15\84\0\8f\ 5"".n\0r\0ð\0\0\0\ 1\15\15\b\0\0\0\ 5\8f\1f\0ð\0\0\0\0\11\1eqr\0ð\0\0\0\95èÿÿÿ1s,\ 1\10«\ 1ð\0\0\0\ 5\10\0\0\0\8f\ 1\13®\ 1ð\0\0\0\ 1\8e\ 1\18r\0ð\0\0\0\ 5\b\0\0\0\8e\ 1\17r\0ð\0\0\0\ 5\f\0\0\0\8e\ 1\16r\0ñ\0\0\0\95Øÿÿÿ\ 1s\v\ 1\13¯\ 1ñ\0\0\0\ 1\13\ 1\13°\ 1ñ\0\0\0\81\10,\ 1\15¢\ 1ñ\0\0\0\ 1\13\ 1\15V\0ñ\0\0\0\0\ 5\95\ 2\0\0p\1f\0ñ\0\0\0\0\11)qr\0ñ\0\0\0\81\10,\ 1\12Ý\0ñ\0\0\0\ 1\13\ 1\12r\0ñ\0\0\0\95ìÿÿÿ1s,\ 1\11Ý\0ñ\0\0\0\ 1\13\ 1\11\9a\ 1ñ\0\0\0\95àÿÿÿ1s,\ 1\13®\ 1ñ\0\0\0\ 1\13\ 1\10«\ 1ñ\0\0\0\15\10\0\0\0 \8f\ 1\13®\ 1ñ\0\0\0\ 1\10\ 1\8er\0ñ\0\0\0\ 1\12\ 5\b\0\0\0\8er\0ñ\0\0\0\ 1\11\ 5\f\0\0\0\8e«\ 1ñ\0\0\0\11\1f\8f\ 1\13\84\0s\ 6"".buf1\0®\ 1ñ\0\0\0\ 1\18\95ðÿÿÿ\ 6s,®\ 1ñ\0\0\0\ 1\18\ 1\8er\0ñ\0\0\0\ 1\17\95øÿÿÿ\ 6s,r\0ñ\0\0\0\ 1\17\ 5\b\0\0\0\8er\0ñ\0\0\0\ 1\16\ 5\f\0\0\0\8e\84\0\8f\aruntime.wid\0r\0ñ\0\0\0\ 5\ 1\0\0\0u\15 \0\0\0\a\8f\84\0q\bruntime.copy\0\84\0q    type.func([]uint8, []uint8, uint32) int\0\1f\0ñ\0\0\0\0\91\bq      \84\0t
+"".n\0r\0ñ\0\0\0\95\18\0\0\0
+t\v\ 1\12r\0ñ\0\0\0\95\10\0\0\0+t,\ 1\11r\0ñ\0\0\0\95Üÿÿÿ\ 4s\v\ 1\10¯\ 1ò\0\0\0\ 1\10\ 1\13&\0ò\0\0\0\ 1\13\95øÿÿÿ\ 6s,O\0ò\0\0\0\0\ 5®\ 2\0\0p\84\0q\vruntime.panicindex\0\1f\0ò\0\0\0\0\11\v\ 1ò\0\0\0\95ðÿÿÿ\ 6s,\ 1\15q\0ò\0\0\0\ 5
+\0\0\0u\ 3\13\ 1\90\84\0q\ftype.int\0  \0ó\0\0\0\ 1\10\95Øÿÿÿ\ 1s\fr\0ó\0\0\0\95Øÿÿÿ\ 1s\f\ 1\15&\0ó\0\0\0\ 1\11\ 1\15S\0ó\0\0\0\0\ 5µ\ 2\0\0\0ô\0\0\0\ 1\11\95Øÿÿÿ\ 1s\fÝ\0ö\0\0\0\ 1\10\81\12\fY\0ë\0\0\0\0\ 5|\ 2\0\0\0ø\0\0\0\0\0\84\0q\r"".fastaComputeLookup\0\84\0q\ etype.func([]"".fastaAcid) *[4096]*"".fastaAcid\0ã\0\b\ 1\0\0\91\rq\ eE\10\0\0\0\18\0\0\0u\84\0q\ ftype.[4096]*"".fastaAcid\0®\ 1  \ 1\0\0\93q\0\ fx\11\11\12\8f\84\0q\10runtime.new\0\84\0q\11type.func(*uint8) *[4096]*"".fastaAcid\0\1f\0       \ 1\0\0\0\91\10q\11®\ 1      \ 1\0\0\ 5\b\0\0\0\8f\ 1\16\15\ 2
+\ 1\0\0\b\0\0\0\0\0\0\0\0\ 14\84\0q\12type.float64\0\15\ 2
+\ 1\0\0\ 14\819\12r\0\v\ 1\0\0\ 1u\ 1\11\84\0t\13"".acid\0\84\0q\14type.[]"".fastaAcid\0r\0\v\ 1\0\0\95\b\0\0\0\13t\14\ 1\17Y\0\v\ 1\0\0\0\ 5Â\ 2\0\0pD\0\v\ 1\0\0\0\ 1\11&\0\v\ 1\0\0\ 1\11\ 1\17R\0\v\ 1\0\0\0\ 5ó\ 2\0\0pr\0\v\ 1\0\0\ 1\11\81\10\f«\ 1\f\ 1\0\0\91\13t\14\ 1\13¯\ 1\f\ 1\0\0\ 1\11\ 1\15&\0\f\ 1\0\0\ 1\15\ 5\b\0\0\0\8eO\0\f\ 1\0\0\0\ 5Ê\ 2\0\0p\1f\0\f\ 1\0\0\0\11\v\ 1\f\ 1\0\0\ 1\8e\ 1\13>\0\f\ 1\0\0\ 5 \0\0\0u\ 1\15\9a\ 1\f\ 1\0\0\ 1\15\ 1\13\15\ 2\f\ 1\0\0\ 5\b\0\0\0\8e\ 14\15\ 2\f\ 1\0\0\819\12\ 1\ 1\f\ 1\0\0\ 14\ 15\15\ 2\f\ 1\0\0\ 15\819\12«\ 1\r\ 1\0\0\91\13t\14\ 1\13¯\ 1\r\ 1\0\0\ 1\10\ 1\15&\0\r\ 1\0\0\ 1\15\ 5\b\0\0\0\8eO\0\r\ 1\0\0\0\ 5Ö\ 2\0\0p\1f\0\r\ 1\0\0\0\11\v\ 1\r\ 1\0\0\ 1\8e\ 1\13>\0\r\ 1\0\0\ 5 \0\0\0u\ 1\15\9a\ 1\r\ 1\0\0\ 1\15\ 1\13\15\ 2\r\ 1\0\0\819\12\ 14\15\ 2\r\ 1\0\0\b\0\0\0\0\0þ¯@\ 15\e\ 2\r\ 1\0\0\ 15\ 14\15\ 2\r\ 1\0\0\ 14\ 5\10\0\0\0\8e&\0\ e\ 1\0\0\ 1\10\ 1uU\0\ e\ 1\0\0\0\ 5Á\ 2\0\0pr\0\ f\ 1\0\0\81\10\f\ 1\12/\0\ f\ 1\0\0\0\ 1\12«\ 1\ f\ 1\0\0\91\13t\14\ 1\13¯\ 1\ f\ 1\0\0\ 1\12\ 1\15&\0\ f\ 1\0\0\ 1\15\ 5\b\0\0\0\8eO\0\ f\ 1\0\0\0\ 5æ\ 2\0\0p\1f\0\ f\ 1\0\0\0\11\v\ 1\ f\ 1\0\0\ 1\8e\ 1\13>\0\ f\ 1\0\0\ 5 \0\0\0u\ 1\15\9a\ 1\ f\ 1\0\0\ 1\15\ 1\13«\ 1\ f\ 1\0\0\91\13t\14\ 1\15¯\ 1\ f\ 1\0\0\ 1\10\ 1\18&\0\ f\ 1\0\0\ 1\18\ 5\b\0\0\0\90O\0\ f\ 1\0\0\0\ 5î\ 2\0\0p\1f\0\ f\ 1\0\0\0\11\v\ 1\ f\ 1\0\0\ 1\90\ 1\15>\0\ f\ 1\0\0\ 5 \0\0\0u\ 1\18\9a\ 1\ f\ 1\0\0\ 1\18\ 1\15®\ 1\ f\ 1\0\0\ 1\15\ 5\18\0\0\0\8eY\0\ e\ 1\0\0\0\ 5Á\ 2\0\0pr\0\12\ 1\0\0\95\b\0\0\0\13t\14\ 1\10/\0\12\ 1\0\0\0\ 1\10«\ 1\12\ 1\0\0\91\13t\14\ 1\13¯\ 1\12\ 1\0\0\ 1\10\ 1\15&\0\12\ 1\0\0\ 1\15\ 5\b\0\0\0\8eO\0\12\ 1\0\0\0\ 5ú\ 2\0\0p\1f\0\12\ 1\0\0\0\11\v\ 1\12\ 1\0\0\ 1\8e\ 1\13>\0\12\ 1\0\0\ 5 \0\0\0u\ 1\15\9a\ 1\12\ 1\0\0\ 1\15\ 1\13\15\ 2\12\ 1\0\0\b\0\0\0\0\0þ¯@\ 14\15\ 2\12\ 1\0\0\ 14\ 5\10\0\0\0\8er\0\14\ 1\0\0\ 1u\81\10\fr\0\15\ 1\0\0\ 1u\ 1\12r\0\15\ 1\0\0\ 5\0\10\0\0u\ 1\17Y\0\15\ 1\0\0\0\ 5\ 4\ 3\0\0pD\0\15\ 1\0\0\0\ 1\12&\0\15\ 1\0\0\ 1\12\ 1\17R\0\15\ 1\0\0\0\ 5%\ 3\0\0pr\0\15\ 1\0\0\ 1\12\81\11\f«\ 1\16\ 1\0\0\91\13t\14\ 1\13¯\ 1\16\ 1\0\0\ 1\10\ 1\15&\0\16\ 1\0\0\ 1\15\ 5\b\0\0\0\8eO\0\16\ 1\0\0\0\ 5\f\ 3\0\0p\1f\0\16\ 1\0\0\0\11\v\ 1\16\ 1\0\0\ 1\8e\ 1\13>\0\16\ 1\0\0\ 5 \0\0\0u\ 1\15\9a\ 1\16\ 1\0\0\ 1\15\ 1\13\15\ 2\16\ 1\0\0\ 5\10\0\0\0\8e\ 1\ 1\16\ 1\0\0\ 1\11\ 16\8a\ 2\16\ 1\0\0\ 14\ 16T\0\16\ 1\0\0\0\ 5\14\ 3\0\0pY\0\16\ 1\0\0\0\ 5\16\ 3\0\0pD\0\17\ 1\0\0\0\81\10\fY\0\16\ 1\0\0\0\ 5\a\ 3\0\0\ 1\19\ 1\0\0\ 1\16\ 1\13¯\ 1\19\ 1\0\0\ 1\11\ 1\15&\0\19\ 1\0\0\ 1\15\ 5\0\10\0\0uO\0\19\ 1\0\0\0\ 5\e\ 3\0\0p\1f\0\19\ 1\0\0\0\11\v\ 1\19\ 1\0\0\91\13t\14\ 1\18¯\ 1\19\ 1\0\0\ 1\10\ 1\19&\0\19\ 1\0\0\ 1\19\ 5\b\0\0\0\93O\0\19\ 1\0\0\0\ 5 \ 3\0\0p\1f\0\19\ 1\0\0\0\11\v\ 1\19\ 1\0\0\ 1\93\ 1\18>\0\19\ 1\0\0\ 5 \0\0\0u\ 1\19\9a\ 1\19\ 1\0\0\ 1\19\ 1\18®\ 1\19\ 1\0\0\ 1\18\ 3\15\b\8eY\0\15\ 1\0\0\0\ 5\ 3\ 3\0\0\ 1\1c\ 1\0\0\ 1\16\15\10\0\0\0*tª\0\1c\ 1\0\0\0\0\84\0q\15"".fastaRandom\0\84\0q\16type.func(*"".fastaBuffer, []"".fastaAcid, int)\0ã\0\1f\ 1\0\0\91\15q\16E0\0\0\0 \0\0\0u\84\0\8f\17"".acid\0«\ 1%\ 1\0\0\11\17\8f\ 1\13\84\0t\18"".acid\0®\ 1%\ 1\0\0\95\b\0\0\0\18t\14\ 1\15®\ 1%\ 1\0\0\ 1\15\ 1\8er\0%\ 1\0\0\95\10\0\0\0\18t\14\ 1\15r\0%\ 1\0\0\ 1\15\ 5\b\0\0\0\8er\0%\ 1\0\0\95\14\0\0\0\18t\14\ 1\15r\0%\ 1\0\0\ 1\15\ 5\f\0\0\0\8e\1f\0%\ 1\0\0\0\91\rq\ er\0%\ 1\0\0\95\18\0\0\0
+t\f\ 1\1c®\ 1%\ 1\0\0\ 5\10\0\0\0\8f\ 1\13\84\0s\19"".lookup\0\84\0q\1atype.*[4096]*"".fastaAcid\0®\ 1%\ 1\0\0\ 1\13\95øÿÿÿ\19s\1a&\0&\ 1\0\0\ 1\1c\ 1uU\0&\ 1\0\0\0\ 5\80\ 3\0\0pr\0'\ 1\0\0\ 1\1c\95\18\0\0\0
+t\fr\0'\ 1\0\0\ 1\1c\81\10\f&\0(\ 1\0\0\ 1\1c\ 5<\0\0\0uU\0(\ 1\0\0\0\ 5:\ 3\0\0pr\0)\ 1\0\0\ 5<\0\0\0u\81\10\f®\ 1+\ 1\0\0\91\ 2t\e\ 1\15®\ 1+\ 1\0\0\ 1\15\11\ 3\8fr\0+\ 1\0\0\81\10\f\ 1\15r\0+\ 1\0\0\ 1\10\95ôÿÿÿ\ 4s\fD\0+\ 1\0\0\0\ 1\15\84\0\8f\e"".n\0r\0+\ 1\0\0\ 1\15\15\b\0\0\0\e\8f\1f\0+\ 1\0\0\0\11\1e\ 1+\ 1\0\0\95øÿÿÿ\19s\1a\ 1\1d\84\0t\1c"".n\0r\0+\ 1\0\0\95\18\0\0\0\1ct\f\ 1\1cr\0+\ 1\0\0\95ôÿÿÿ\ 4s\f\ 1\e«\ 1+\ 1\0\0\ 5\10\0\0\0\8f\ 1\13®\ 1+\ 1\0\0\ 1\8e\ 1\1ar\0+\ 1\0\0\ 5\b\0\0\0\8e\ 1\17r\0+\ 1\0\0\ 5\f\0\0\0\8e\ 1\15\15\ 2,\ 1\0\0\b\96\v\9d?\ 14\15\ 2,\ 1\0\0\ 14\81:\12\84\0q\1d"".fastaRand\0\84\0q\1etype.uint32\0r\0-\ 1\0\0\91\1dq\1e\ 1\11r\0.\ 1\0\0\ 1u\81\16\fY\0.\ 1\0\0\0\ 5N\ 3\0\0pD\0.\ 1\0\0\0\81\16\f&\0.\ 1\0\0\ 1\16\ 1\eR\0.\ 1\0\0\0\ 5x\ 3\0\0pr\0/\ 1\0\0\81\11\1e\ 1\13r\0/\ 1\0\0\ 5%\ f\0\0u\ 1\15>\0/\ 1\0\0\ 1\15\ 1\13 \0/\ 1\0\0\ 5\85s\0\0u\ 1\13r\0/\ 1\0\0\ 1\13\ 1\18r\0/\ 1\0\0\ 5\81\1du\ 1\10\82\0/\ 1\0\0\ 1\13\0Ô\0/\ 1\0\0\ 5\ e\0\0\0u\ 1\12r\0/\ 1\0\0\ 1\12\ 1\15>\0/\ 1\0\0\ 5À"\ 2\0u\ 1\15Ý\0/\ 1\0\0\ 1\15\ 1\13r\0/\ 1\0\0\ 1\13\81\11\1eã\ 10\ 1\0\0\ 1\13\ 15\15\ 20\ 1\0\0\ 15\ 14\15\ 20\ 1\0\0\81:\12\ 15\e\ 20\ 1\0\0\ 1:\ 14\15\ 20\ 1\0\0\ 14\819\12ì\ 11\ 1\0\0\ 14\ 1\15¯\ 11\ 1\0\0\ 1\15\ 1\13®\ 11\ 1\0\0\81\1d\1a\ 1\15à\01\ 1\0\0\ 1u\ 1\90&\01\ 1\0\0\ 1\13\ 5\0\10\0\0uO\01\ 1\0\0\0\ 5h\ 3\0\0p\1f\01\ 1\0\0\0\11\v\ 11\ 1\0\0\ 3\13\b\90\ 1\18\84\0q\1ftype.*"".fastaAcid\0®\ 11\ 1\0\0\ 1\18\81\10\1f\15\ 22\ 1\0\0\ 5\10\0\0\0\8b\ 14\8a\ 22\ 1\0\0\ 14\ 19T\02\ 1\0\0\0\ 5n\ 3\0\0pY\02\ 1\0\0\0\ 5p\ 3\0\0\ 13\ 1\0\0\ 5\18\0\0\0\8b\ 1\10Y\02\ 1\0\0\0\ 5j\ 3\0\0\ 15\ 1\0\0\ 1\16\ 1\13&\05\ 1\0\0\ 1\13\81\17,O\05\ 1\0\0\0\ 5t\ 3\0\0p\1f\05\ 1\0\0\0\11\v\ 15\ 1\0\0\81\10\1f\ 1\19q\05\ 1\0\0\ 1\8b\ 1\18q\05\ 1\0\0\ 1\18\ 3\13\ 1\95Y\0.\ 1\0\0\0\ 5M\ 3\0\0pr\07\ 1\0\0\ 1\11\91\1dq\1e¯\ 18\ 1\0\0\ 1\e\ 1\13&\08\ 1\0\0\ 1\13\81\17,O\08\ 1\0\0\0\ 5}\ 3\0\0p\1f\08\ 1\0\0\0\11\vqq\08\ 1\0\0\ 5
+\0\0\0u\ 3\13\ 1\95Ý\09\ 1\0\0\ 1\e\81\1c\fY\0&\ 1\0\0\0\ 53\ 3\0\0\0;\ 1\0\0\0\0\84\0q "".gobinit\0\84\0q!type.func()\0ã\0S\ 1\0\0\91 q!\ 5(\ 1\0\0u\84\0q""".jsondata\0\84\0q#type."".JSONResponse\0«\ 1V\ 1\0\0\91"q#\ 1\13\84\0\8f$"".r\0®\ 1V\ 1\0\0\ 1\13\11$\8f\84\0q%"".gobResponse\0\84\0q&type.func(*"".JSONResponse) *"".JSONResponse\0\1f\0V\ 1\0\0\0\91%q&®\ 1V\ 1\0\0\ 5\b\0\0\0\8f\ 1\13\84\0q'"".gobdata\0\84\0q(type.*"".JSONResponse\0®\ 1V\ 1\0\0\ 1\13\91'q(\84\0q)type.bytes.Buffer\0\84\0q*type.uint8\0\84\0\8f+runtime.typ\0®\ 1X\ 1\0\0\93q\0)x*\11+\8f\84\0q,type.func(*uint8) *bytes.Buffer\0\1f\0X\ 1\0\0\0\91\10q,®\ 1X\ 1\0\0\ 5\b\0\0\0\8f\ 1\13\84\0q-type.*bytes.Buffer\0®\ 1Y\ 1\0\0\93q\0-x*\11+\8f\84\0q.type.io.Writer\0\84\0\8f/runtime.typ2\0®\ 1Y\ 1\0\0\93q\0.x*\15\b\0\0\0/\8f\84\0s0"".&buf\0®\ 1Y\ 1\0\0\ 1\13\15\18ÿÿÿ0s\84\0\8f1runtime.elem\0®\ 1Y\ 1\0\0\ 1\13\15\10\0\0\01\8f\84\0q\ 1runtime.convT2I\0\84\0q\ 2type.func(*uint8, *uint8, *bytes.Buffer) io.Writer\0\1f\0Y\ 1\0\0\0\91\ 1q\ 2«\ 1Y\ 1\0\0\ 5\18\0\0\0\8f\ 1\16\84\0\8f\ 3encoding/gob.w\0«\ 1Y\ 1\0\0\11\ 3\8f\ 1\17²\ 1Y\ 1\0\0\0\0²\ 1Y\ 1\0\0\0\0\84\0q\ 4encoding/gob.NewEncoder\0\84\0q\ 5type.func(io.Writer) *encoding/gob.Encoder\0\1f\0Y\ 1\0\0\0\91\ 4q\ 5®\ 1Y\ 1\0\0\ 5\10\0\0\0\8f\ 1\15\84\0s\ 6"".autotmp_0034\0®\ 1Y\ 1\0\0\ 1\15\15Øÿÿÿ\ 6\ 1Y\ 1\0\0\93q\0(x*\11+\8f®\ 1Y\ 1\0\0\91'q(\ 1\15®\ 1Y\ 1\0\0\ 1\15\15\b\0\0\01\8f\84\0q\aruntime.convT2E\0\84\0q\btype.func(*uint8, *"".JSONResponse) interface {}\0\1f\0Y\ 1\0\0\0\91\aq\b«\ 1Y\ 1\0\0\ 5\10\0\0\0\8f\ 1\16\84\0\8f    encoding/gob.e\0«\ 1Y\ 1\0\0\15\b\0\0\0      \8f\ 1\17²\ 1Y\ 1\0\0\0\0²\ 1Y\ 1\0\0\0\0®\ 1Y\ 1\0\0\15Øÿÿÿ\ 6s\ 1\15\84\0\8f
+encoding/gob.enc\0®\ 1Y\ 1\0\0\ 1\15\11
+\8f\84\0q\vencoding/gob.(*Encoder).Encode\0\1f\0Y\ 1\0\0\0\11\v\ 1Y\ 1\0\0\ 5\18\0\0\0\8f\ 1\13®\ 1Y\ 1\0\0\ 1\8e\ 1\15\84\0s\f"".err\0\84\0q\rtype.error\0®\ 1Y\ 1\0\0\ 1\15\95 ÿÿÿ\fs\r®\ 1Y\ 1\0\0\ 5\b\0\0\0\8e\ 1\15®\ 1Y\ 1\0\0\ 1\15\95(ÿÿÿ\fs\r«\ 1Y\ 1\0\0\95 ÿÿÿ\fs\r\ 1\13¢\ 1Y\ 1\0\0\ 1\8e\ 1uQ\0Y\ 1\0\0\0\ 5´\ 3\0\0\ 1Z\ 1\0\0\111\8f\ 1\13®\ 1Z\ 1\0\0\95 ÿÿÿ\fs\r\ 1\15®\ 1Z\ 1\0\0\ 1\15\ 1\8e®\ 1Z\ 1\0\0\95(ÿÿÿ\fs\r\ 1\15®\ 1Z\ 1\0\0\ 1\15\ 5\b\0\0\0\8e\84\0q\ eruntime.convI2E\0\84\0q\ ftype.func(error) interface {}\0\1f\0Z\ 1\0\0\0\91\ eq\ f«\ 1Z\ 1\0\0\ 5\10\0\0\0\8f\ 1\16«\ 1Z\ 1\0\0\ 1\8f\ 1\17²\ 1Z\ 1\0\0\0\0²\ 1Z\ 1\0\0\0\0\84\0q\10runtime.panic\0\84\0q\11type.func(interface {})\0\1f\0Z\ 1\0\0\0\91\10q\11®\ 1\\ 1\0\0\15\18ÿÿÿ0s\ 1\11\84\0s\12""..r0\0\84\0q\13type.[]uint8\0®\ 1\\ 1\0\0\ 1u\95\bÿÿÿ\12s\13r\0\\ 1\0\0\ 1u\95\10ÿÿÿ\12s\13r\0\\ 1\0\0\ 1u\95\14ÿÿÿ\12s\13®\ 1\\ 1\0\0\ 1\8c\ 1\17r\0\\ 1\0\0\ 5\b\0\0\0\8c\ 1\10r\0\\ 1\0\0\ 5\f\0\0\0\8c\ 1\16r\0\\ 1\0\0\ 5\10\0\0\0\8c\ 1\13¯\ 1\\ 1\0\0\ 1\13\ 1\13°\ 1\\ 1\0\0\ 1\10\ 1\15¢\ 1\\ 1\0\0\ 1\13\ 1\15V\0\\ 1\0\0\0\ 5Á\ 3\0\0p\84\0q\14runtime.panicslice\0\1f\0\\ 1\0\0\0\11\14qr\0\\ 1\0\0\ 1\10\ 1\12Ý\0\\ 1\0\0\ 1\13\ 1\12r\0\\ 1\0\0\ 1\16\ 1\15Ý\0\\ 1\0\0\ 1\13\ 1\15\9a\ 1\\ 1\0\0\ 1\17\ 1\13®\ 1\\ 1\0\0\ 1\13\95\bÿÿÿ\12s\13r\0\\ 1\0\0\ 1\12\95\10ÿÿÿ\12s\13r\0\\ 1\0\0\ 1\15\95\14ÿÿÿ\12s\13®\ 1\\ 1\0\0\95\bÿÿÿ\12s\13\ 1\13\84\0q\15"".gobbytes\0®\ 1\\ 1\0\0\ 1\13\91\15q\13r\0\\ 1\0\0\95\10ÿÿÿ\12s\13\ 1\13r\0\\ 1\0\0\ 1\13\95\b\0\0\0\15q\13r\0\\ 1\0\0\95\14ÿÿÿ\12s\13\ 1\13r\0\\ 1\0\0\ 1\13\95\f\0\0\0\15q\13®\ 1^\ 1\0\0\93q\0#x*\11+\8f\84\0q\16runtime.new\0\84\0q\17type.func(*uint8) *"".JSONResponse\0\1f\0^\ 1\0\0\0\91\16q\17®\ 1^\ 1\0\0\ 5\b\0\0\0\8f\ 1\13\84\0s\18"".&r\0®\ 1^\ 1\0\0\ 1\13\15Xÿÿÿ\18\ 1_\ 1\0\0\91\15q\13\ 1\13\84\0s\19bytes.buf\0®\ 1_\ 1\0\0\ 1\13\950ÿÿÿ\19s\13r\0_\ 1\0\0\95\b\0\0\0\15q\13\ 1\13r\0_\ 1\0\0\ 1\13\958ÿÿÿ\19s\13r\0_\ 1\0\0\95\f\0\0\0\15q\13\ 1\13r\0_\ 1\0\0\ 1\13\95<ÿÿÿ\19s\13®\ 1_\ 1\0\0\ 1u\95 ÿÿÿ\12s-®\ 1_\ 1\0\0\93q\0)x*\11+\8f\1f\0_\ 1\0\0\0\91\16q,®\ 1_\ 1\0\0\ 5\b\0\0\0\8f\ 1\12®\ 1_\ 1\0\0\ 1\12\ 1\17®\ 1_\ 1\0\0\ 1u\ 1\10®\ 1_\ 1\0\0\ 5\f\0\0\0u\ 1\11¨\0_\ 1\0\0\0\0Æ\ 1_\ 1\0\0\0\0®\ 1_\ 1\0\0\950ÿÿÿ\19s\13\ 1\15®\ 1_\ 1\0\0\ 1\15\ 1\8dr\0_\ 1\0\0\958ÿÿÿ\19s\13\ 1\15r\0_\ 1\0\0\ 1\15\ 5\b\0\0\0\8dr\0_\ 1\0\0\95<ÿÿÿ\19s\13\ 1\15r\0_\ 1\0\0\ 1\15\ 5\f\0\0\0\8d®\ 1_\ 1\0\0\ 1\12\95 ÿÿÿ\12s-®\ 1_\ 1\0\0\93q\0-x*\11+\8f\84\0q\1atype.io.Reader\0®\ 1_\ 1\0\0\93q\0\1ax*\15\b\0\0\0/\8f®\ 1_\ 1\0\0\95 ÿÿÿ\12s-\ 1\15®\ 1_\ 1\0\0\ 1\15\15\10\0\0\01\8f\84\0q\etype.func(*uint8, *uint8, *bytes.Buffer) io.Reader\0\1f\0_\ 1\0\0\0\91\ 1q\e«\ 1_\ 1\0\0\ 5\18\0\0\0\8f\ 1\16\84\0\8f\1cencoding/gob.r\0«\ 1_\ 1\0\0\11\1c\8f\ 1\17²\ 1_\ 1\0\0\0\0²\ 1_\ 1\0\0\0\0\84\0q\1dencoding/gob.NewDecoder\0\84\0q\1etype.func(io.Reader) *encoding/gob.Decoder\0\1f\0_\ 1\0\0\0\91\1dq\1e®\ 1_\ 1\0\0\ 5\10\0\0\0\8f\ 1\15\84\0s\1f"".autotmp_0038\0®\ 1_\ 1\0\0\ 1\15\15Pÿÿÿ\1f\ 1_\ 1\0\0\93q\0(x*\11+\8f®\ 1_\ 1\0\0\15Xÿÿÿ\18s\ 1\15®\ 1_\ 1\0\0\ 1\15\15\b\0\0\01\8f\1f\0_\ 1\0\0\0\91\aq\b«\ 1_\ 1\0\0\ 5\10\0\0\0\8f\ 1\16«\ 1_\ 1\0\0\15\b\0\0\0        \8f\ 1\17²\ 1_\ 1\0\0\0\0²\ 1_\ 1\0\0\0\0®\ 1_\ 1\0\0\15Pÿÿÿ\1fs\ 1\15\84\0\8f encoding/gob.dec\0®\ 1_\ 1\0\0\ 1\15\11 \8f\84\0q!encoding/gob.(*Decoder).Decode\0\1f\0_\ 1\0\0\0\11!q«\ 1_\ 1\0\0\ 5\18\0\0\0\8f\ 1\13®\ 1_\ 1\0\0\ 1\8e\ 1\15®\ 1_\ 1\0\0\ 1\15\95\80ÿÿÿ\fs\r®\ 1_\ 1\0\0\ 5\b\0\0\0\8e\ 1\15®\ 1_\ 1\0\0\ 1\15\95\88ÿÿÿ\fs\r«\ 1_\ 1\0\0\95\80ÿÿÿ\fs\r\ 1\13¢\ 1_\ 1\0\0\ 1\8e\ 1uQ\0_\ 1\0\0\0\ 5\13\ 4\0\0\ 1`\ 1\0\0\111\8f\ 1\13®\ 1`\ 1\0\0\95\80ÿÿÿ\fs\r\ 1\15®\ 1`\ 1\0\0\ 1\15\ 1\8e®\ 1`\ 1\0\0\95\88ÿÿÿ\fs\r\ 1\15®\ 1`\ 1\0\0\ 1\15\ 5\b\0\0\0\8e\1f\0`\ 1\0\0\0\91\ eq\ f«\ 1`\ 1\0\0\ 5\10\0\0\0\8f\ 1\16«\ 1`\ 1\0\0\ 1\8f\ 1\17²\ 1`\ 1\0\0\0\0²\ 1`\ 1\0\0\0\0\1f\0`\ 1\0\0\0\91\10q\11®\ 1b\ 1\0\0\93q\0(x*\11+\8f®\ 1b\ 1\0\0\91'q(\ 1\15®\ 1b\ 1\0\0\ 1\15\15\b\0\0\01\8f\1f\0b\ 1\0\0\0\91\aq\b®\ 1b\ 1\0\0\ 5\10\0\0\0\8f\ 1\15\84\0s""".autotmp_0039\0®\ 1b\ 1\0\0\ 1\15\15\90ÿÿÿ"s®\ 1b\ 1\0\0\ 5\18\0\0\0\8f\ 1\15®\ 1b\ 1\0\0\ 1\15\15\98ÿÿÿ"s®\ 1b\ 1\0\0\93q\0(x*\11+\8f®\ 1b\ 1\0\0\15Xÿÿÿ\18s\ 1\15®\ 1b\ 1\0\0\ 1\15\15\b\0\0\01\8f\1f\0b\ 1\0\0\0\91\aq\b«\ 1b\ 1\0\0\ 5\10\0\0\0\8f\ 1\16\84\0\8f#reflect.a2\0«\ 1b\ 1\0\0\15\10\0\0\0#\8f\ 1\17²\ 1b\ 1\0\0\0\0²\ 1b\ 1\0\0\0\0\84\0\8f$reflect.a1\0«\ 1b\ 1\0\0\11$\8f\ 1\15®\ 1b\ 1\0\0\15\90ÿÿÿ"s\ 1\18®\ 1b\ 1\0\0\ 1\18\ 1\90®\ 1b\ 1\0\0\15\98ÿÿÿ"s\ 1\18®\ 1b\ 1\0\0\ 1\18\ 5\b\0\0\0\90\84\0q%reflect.DeepEqual\0\84\0q&type.func(interface {}, interface {}) bool\0\1f\0b\ 1\0\0\0\91%q&q\0b\ 1\0\0\ 5 \0\0\0\8f\ 1\13%\0b\ 1\0\0\ 1\13\ 1uZ\0b\ 1\0\0\0\ 5·\ 4\0\0p\84\0s'"".autotmp_0042\0«\ 1c\ 1\0\0\15`ÿÿÿ's\ 1\17®\ 1c\ 1\0\0\ 1u\ 1\10®\ 1c\ 1\0\0\ 5\ 4\0\0\0u\ 1\11¨\0c\ 1\0\0\0\0Æ\ 1c\ 1\0\0\0\0«\ 1c\ 1\0\0\15`ÿÿÿ's\ 1\13\84\0s("".autotmp_0040\0r\0c\ 1\0\0\ 5\ 2\0\0\0u\15Ðÿÿÿ(sr\0c\ 1\0\0\ 5\ 2\0\0\0u\15Ôÿÿÿ(s®\ 1c\ 1\0\0\ 1\13\15Èÿÿÿ(s\84\0q)type."".JSONResponse\0®\ 1c\ 1\0\0\93q\0)x*\11+\8f\84\0q*"".jsondata\0«\ 1c\ 1\0\0\91*q)\ 1\16«\ 1c\ 1\0\0\15\b\0\0\01\8f\ 1\17²\ 1c\ 1\0\0\0\0²\ 1c\ 1\0\0\0\0²\ 1c\ 1\0\0\0\0\84\0q+type.func(*uint8, "".JSONResponse) interface {}\0\1f\0c\ 1\0\0\0\91\aq+«\ 1c\ 1\0\0\ 5 \0\0\0\8f\ 1\16«\ 1c\ 1\0\0\15Èÿÿÿ(s\ 1\17®\ 1c\ 1\0\0\ 1\92\ 1\17²\ 1c\ 1\0\0\0\0²\ 1c\ 1\0\0\0\0\84\0q,type.uint8\0\84\0\8f-runtime.typ\0®\ 1c\ 1\0\0\93q\0)x,\11-\8f®\ 1c\ 1\0\0\15Xÿÿÿ\18s\ 1\16«\ 1c\ 1\0\0\15\b\0\0\01\8f\ 1\17²\ 1c\ 1\0\0\0\0²\ 1c\ 1\0\0\0\0²\ 1c\ 1\0\0\0\0\1f\0c\ 1\0\0\0\91\aq+«\ 1c\ 1\0\0\ 5 \0\0\0\8f\ 1\16«\ 1c\ 1\0\0\15Èÿÿÿ(s\ 1\17®\ 1c\ 1\0\0\ 1\92\ 1\17\9a\ 1c\ 1\0\0\ 5\10\0\0\0u\ 1\17²\ 1c\ 1\0\0\0\0²\ 1c\ 1\0\0\0\0\84\0q.go.string."%v\n%v"\0«\ 1c\ 1\0\0\11.q\ 1\16\84\0\8f/log.format\0«\ 1c\ 1\0\0\11/\8f\ 1\17²\ 1c\ 1\0\0\0\0²\ 1c\ 1\0\0\0\0\84\0\8f0log.v\0«\ 1c\ 1\0\0\15\10\0\0\00\8f\ 1\13®\ 1c\ 1\0\0\15Èÿÿÿ(s\ 1\15®\ 1c\ 1\0\0\ 1\15\ 1\8er\0c\ 1\0\0\15Ðÿÿÿ(s\ 1\15r\0c\ 1\0\0\ 1\15\ 5\b\0\0\0\8er\0c\ 1\0\0\15Ôÿÿÿ(s\ 1\15r\0c\ 1\0\0\ 1\15\ 5\f\0\0\0\8e\84\0q1log.Printf\0\84\0q\ 1type.func(string, ...interface {})\0\1f\0c\ 1\0\0\0\911q\ 1\84\0q\ 2type.*"".JSONResponse\0®\ 1d\ 1\0\0\93q\0\ 2x,\11-\8f«\ 1d\ 1\0\0\91*q)\ 1\13\84\0\8f\ 3runtime.elem\0®\ 1d\ 1\0\0\ 1\13\15\b\0\0\0\ 3\8f\1f\0d\ 1\0\0\0\91\aq\b«\ 1d\ 1\0\0\ 5\10\0\0\0\8f\ 1\16\84\0\8f\ 4encoding/json.v\0«\ 1d\ 1\0\0\11\ 4\8f\ 1\17²\ 1d\ 1\0\0\0\0²\ 1d\ 1\0\0\0\0\84\0q\ 5encoding/json.Marshal\0\84\0q\ 6type.func(interface {}) ([]uint8, error)\0\1f\0d\ 1\0\0\0\91\ 5q\ 6«\ 1d\ 1\0\0\ 5\10\0\0\0\8f\ 1\13®\ 1d\ 1\0\0\ 1\8e\ 1\15\84\0s\a"".b\0®\ 1d\ 1\0\0\ 1\15\95@ÿÿÿ\as\13r\0d\ 1\0\0\ 5\b\0\0\0\8e\ 1\15r\0d\ 1\0\0\ 1\15\95Hÿÿÿ\as\13r\0d\ 1\0\0\ 5\f\0\0\0\8e\ 1\15r\0d\ 1\0\0\ 1\15\95Lÿÿÿ\as\13®\ 1e\ 1\0\0\93q\0\ 2x,\11-\8f®\ 1e\ 1\0\0\15Xÿÿÿ\18s\ 1\13®\ 1e\ 1\0\0\ 1\13\15\b\0\0\0\ 3\8f\84\0q\bruntime.convT2E\0\84\0q      type.func(*uint8, *"".JSONResponse) interface {}\0\1f\0e\ 1\0\0\0\91\bq     «\ 1e\ 1\0\0\ 5\10\0\0\0\8f\ 1\16«\ 1e\ 1\0\0\11\ 4\8f\ 1\17²\ 1e\ 1\0\0\0\0²\ 1e\ 1\0\0\0\0\1f\0e\ 1\0\0\0\91\ 5q\ 6«\ 1e\ 1\0\0\ 5\10\0\0\0\8f\ 1\13®\ 1e\ 1\0\0\ 1\8e\ 1\15\84\0s
+"".br\0®\ 1e\ 1\0\0\ 1\15\95¸ÿÿÿ
+s\13r\0e\ 1\0\0\ 5\b\0\0\0\8e\ 1\15r\0e\ 1\0\0\ 1\15\95Àÿÿÿ
+s\13r\0e\ 1\0\0\ 5\f\0\0\0\8e\ 1\15r\0e\ 1\0\0\ 1\15\95Äÿÿÿ
+s\13\84\0s\v"".autotmp_0045\0«\ 1f\ 1\0\0\15àÿÿÿ\vs\ 1\17®\ 1f\ 1\0\0\ 1u\ 1\10®\ 1f\ 1\0\0\ 5\ 4\0\0\0u\ 1\11¨\0f\ 1\0\0\0\0Æ\ 1f\ 1\0\0\0\0«\ 1f\ 1\0\0\15àÿÿÿ\vs\ 1\13\84\0s\f"".autotmp_0043\0r\0f\ 1\0\0\ 5\ 2\0\0\0u\15°ÿÿÿ\fsr\0f\ 1\0\0\ 5\ 2\0\0\0u\15´ÿÿÿ\f\ 1f\ 1\0\0\ 1\13\15¨ÿÿÿ\f\ 1f\ 1\0\0\93q\0\13x,\11-\8f«\ 1f\ 1\0\0\15\b\0\0\0\ 3\8f\ 1\13®\ 1f\ 1\0\0\95@ÿÿÿ\as\13\ 1\15®\ 1f\ 1\0\0\ 1\15\ 1\8er\0f\ 1\0\0\95Hÿÿÿ\as\13\ 1\15r\0f\ 1\0\0\ 1\15\ 5\b\0\0\0\8er\0f\ 1\0\0\95Lÿÿÿ\as\13\ 1\15r\0f\ 1\0\0\ 1\15\ 5\f\0\0\0\8e\84\0q\rtype.func(*uint8, []uint8) interface {}\0\1f\0f\ 1\0\0\0\91\bq\r«\ 1f\ 1\0\0\ 5\18\0\0\0\8f\ 1\16«\ 1f\ 1\0\0\15¨ÿÿÿ\fs\ 1\17®\ 1f\ 1\0\0\ 1\92\ 1\17²\ 1f\ 1\0\0\0\0²\ 1f\ 1\0\0\0\0®\ 1f\ 1\0\0\93q\0\13x,\11-\8f«\ 1f\ 1\0\0\15\b\0\0\0\ 3\8f\ 1\13®\ 1f\ 1\0\0\95¸ÿÿÿ
+s\13\ 1\15®\ 1f\ 1\0\0\ 1\15\ 1\8er\0f\ 1\0\0\95Àÿÿÿ
+s\13\ 1\15r\0f\ 1\0\0\ 1\15\ 5\b\0\0\0\8er\0f\ 1\0\0\95Äÿÿÿ
+s\13\ 1\15r\0f\ 1\0\0\ 1\15\ 5\f\0\0\0\8e\1f\0f\ 1\0\0\0\91\bq\r«\ 1f\ 1\0\0\ 5\18\0\0\0\8f\ 1\16«\ 1f\ 1\0\0\15¨ÿÿÿ\fs\ 1\17®\ 1f\ 1\0\0\ 1\92\ 1\17\9a\ 1f\ 1\0\0\ 5\10\0\0\0u\ 1\17²\ 1f\ 1\0\0\0\0²\ 1f\ 1\0\0\0\0\84\0q\ ego.string."%s\n%s\n"\0«\ 1f\ 1\0\0\11\ eq\ 1\16«\ 1f\ 1\0\0\11/\8f\ 1\17²\ 1f\ 1\0\0\0\0²\ 1f\ 1\0\0\0\0«\ 1f\ 1\0\0\15\10\0\0\00\8f\ 1\13®\ 1f\ 1\0\0\15¨ÿÿÿ\fs\ 1\15®\ 1f\ 1\0\0\ 1\15\ 1\8er\0f\ 1\0\0\15°ÿÿÿ\fs\ 1\15r\0f\ 1\0\0\ 1\15\ 5\b\0\0\0\8er\0f\ 1\0\0\15´ÿÿÿ\fs\ 1\15r\0f\ 1\0\0\ 1\15\ 5\f\0\0\0\8e\1f\0f\ 1\0\0\0\911q\ 1\84\0q\ ftype.string\0®\ 1g\ 1\0\0\93q\0\ fx,\11-\8f\84\0q\10go.string."gob: encode+decode lost data"\0«\ 1g\ 1\0\0\11\10q\ 1\16«\ 1g\ 1\0\0\15\b\0\0\0\ 3\8f\ 1\17²\ 1g\ 1\0\0\0\0²\ 1g\ 1\0\0\0\0\84\0q\11type.func(*uint8, string) interface {}\0\1f\0g\ 1\0\0\0\91\bq\11«\ 1g\ 1\0\0\ 5\18\0\0\0\8f\ 1\16«\ 1g\ 1\0\0\ 1\8f\ 1\17²\ 1g\ 1\0\0\0\0²\ 1g\ 1\0\0\0\0\84\0q\12runtime.panic\0\84\0q\13type.func(interface {})\0\1f\0g\ 1\0\0\0\91\12q\13ª\0i\ 1\0\0\0\0\84\0q\14"".gobResponse\0\84\0q\15type.func(*"".JSONResponse) *"".JSONResponse\0ã\0l\ 1\0\0\91\14q\15E\18\0\0\0\10\0\0\0\ 1m\ 1\0\0\93q\0)x,\11-\8f\1f\0m\ 1\0\0\0\91\16q\17®\ 1m\ 1\0\0\ 5\b\0\0\0\8f\ 1\13\84\0s\16"".autotmp_0047\0®\ 1m\ 1\0\0\ 1\13\15øÿÿÿ\16s\84\0t\17"".r\0®\ 1m\ 1\0\0\91\17t\ 2\ 1\15®\ 1m\ 1\0\0\ 1\90\ 1\18\84\0\8f\18"".n\0®\ 1m\ 1\0\0\ 1\18\11\18\8f\84\0q\19"".gobNode\0\84\0q\1atype.func(*"".JSONNode) *"".JSONNode\0\1f\0m\ 1\0\0\0\91\19q\1a®\ 1m\ 1\0\0\15øÿÿÿ\16s\ 1\10®\ 1m\ 1\0\0\ 5\b\0\0\0\8f\ 1\13®\ 1m\ 1\0\0\ 1\13\ 1\8b®\ 1m\ 1\0\0\91\17t\ 2\ 1\16\9a\ 1m\ 1\0\0\ 5\b\0\0\0u\ 1\16®\ 1m\ 1\0\0\ 1\10\ 1\17\9a\ 1m\ 1\0\0\ 5\b\0\0\0u\ 1\17²\ 1m\ 1\0\0\0\0²\ 1m\ 1\0\0\0\0\84\0t\e""..noname\0®\ 1m\ 1\0\0\ 1\10\15\b\0\0\0\e\0m\ 1\0\0\0\0ã\0p\ 1\0\0\91\19q\1aE@\0\0\0\10\0\0\0u\84\0q\1ctype."".JSONNode\0®\ 1q\ 1\0\0\93q\0\1cx,\11-\8f\84\0q\1druntime.new\0\84\0q\1etype.func(*uint8) *"".JSONNode\0\1f\0q\ 1\0\0\0\91\1dq\1e®\ 1q\ 1\0\0\ 5\b\0\0\0\8f\ 1\12\84\0t\1f"".n\0\84\0q type.*"".JSONNode\0®\ 1r\ 1\0\0\91\1f\ 1\16®\ 1r\ 1\0\0\81\12 \ 1\17®\ 1r\ 1\0\0\ 5   \0\0\0u\ 1\11¨\0r\ 1\0\0\0\0²\ 1r\ 1\0\0\0\0®\ 1s\ 1\0\0\81\12 \ 1\13\9a\ 1s\ 1\0\0\ 5\10\0\0\0u\ 1\13r\0s\ 1\0\0\ 5\b\0\0\0\8e\ 1\13&\0s\ 1\0\0\ 1\13\ 1uZ\0s\ 1\0\0\0\ 5à\ 4\0\0\ 1t\ 1\0\0\81\12 \ 1\17\9a\ 1t\ 1\0\0\ 5\10\0\0\0u\ 1\17®\ 1t\ 1\0\0\ 1u\ 1\10Æ\ 1t\ 1\0\0\0\0Æ\ 1t\ 1\0\0\0\0Y\0s\ 1\0\0\0\ 5 \ 5\0\0\ 1v\ 1\0\0\81\12 \ 1\13\84\0s!"".n1\0®\ 1v\ 1\0\0\ 1\12\95ðÿÿÿ!s \9a\ 1v\ 1\0\0\ 5\10\0\0\0u\ 1\13®\ 1v\ 1\0\0\ 1\8e\ 1\15\84\0s""".autotmp_0048\0®\ 1v\ 1\0\0\ 1\15\15àÿÿÿ"sr\0v\ 1\0\0\ 5\b\0\0\0\8e\ 1\15r\0v\ 1\0\0\ 1\15\15èÿÿÿ"sr\0v\ 1\0\0\ 5\f\0\0\0\8e\ 1\15r\0v\ 1\0\0\ 1\15\15ìÿÿÿ"sr\0v\ 1\0\0\ 1u\ 1\10r\0v\ 1\0\0\15èÿÿÿ"s\ 1\13\84\0s#"".autotmp_0050\0r\0v\ 1\0\0\ 1\13\15Øÿÿÿ#s«\ 1v\ 1\0\0\15àÿÿÿ"s\ 1\13®\ 1v\ 1\0\0\ 1\8e\ 1\11Y\0v\ 1\0\0\0\ 5ð\ 4\0\0pD\0v\ 1\0\0\0\ 1\10r\0v\ 1\0\0\15Øÿÿÿ#s\ 1\15&\0v\ 1\0\0\ 1\10\ 1\15R\0v\ 1\0\0\0\ 5      \ 5\0\0p\84\0s$"".autotmp_0049\0r\0v\ 1\0\0\ 1\10\15Ôÿÿÿ$s\84\0s%"".i\0\84\0q&type.int\0r\0v\ 1\0\0\ 1\10\95Üÿÿÿ%s&®\ 1v\ 1\0\0\ 1\8c\ 1\15®\ 1v\ 1\0\0\ 1\11\ 1\13\9a\ 1v\ 1\0\0\ 5\b\0\0\0u\ 1\13\84\0s'"".autotmp_0051\0®\ 1v\ 1\0\0\ 1\13\15øÿÿÿ's\84\0\8f("".n\0®\ 1w\ 1\0\0\ 1\15\11(\8f\1f\0w\ 1\0\0\0\91\19q\1a®\ 1w\ 1\0\0\95ðÿÿÿ!s \ 1\12®\ 1w\ 1\0\0\15øÿÿÿ's\ 1\11r\0w\ 1\0\0\15Ôÿÿÿ$s\ 1\10®\ 1w\ 1\0\0\ 5\b\0\0\0\8f\ 1\13®\ 1w\ 1\0\0\81\12 \ 1\15\9a\ 1w\ 1\0\0\ 5\10\0\0\0u\ 1\15r\0w\ 1\0\0\95Üÿÿÿ%s&\ 1\18¯\ 1w\ 1\0\0\ 1\18\ 1\18&\0w\ 1\0\0\ 1\18\ 5\b\0\0\0\90O\0w\ 1\0\0\0\ 5\ 6\ 5\0\0p\84\0q)runtime.panicindex\0\1f\0w\ 1\0\0\0\11)q®\ 1w\ 1\0\0\ 1\90\ 1\15®\ 1w\ 1\0\0\ 1\13\ 3\18\b\90Y\0v\ 1\0\0\0\ 5ï\ 4\0\0\ 1z\ 1\0\0\ 1\12\15\b\0\0\0\e\0z\ 1\0\0\0\0\84\0q*"".gobdec\0\84\0q+type.func()\0ã\0}\ 1\0\0\91*q+\ 5`\0\0\0u\84\0q,"".gobbytes\0\84\0q-type.[]uint8\0«\ 1~\ 1\0\0\91,q-\ 1\13¢\ 1~\ 1\0\0\ 1\8e\ 1uZ\0~\ 1\0\0\0\ 5\1a\ 5\0\0p\84\0q.type.uint8\0\84\0\8f/runtime.typ\0®\ 1\7f\ 1\0\0\93q\0\ fx.\11/\8f\84\0q0go.string."gobdata not initialized"\0«\ 1\7f\ 1\0\0\110q\ 1\16«\ 1\7f\ 1\0\0\15\b\0\0\0\ 3\8f\ 1\17²\ 1\7f\ 1\0\0\0\0²\ 1\7f\ 1\0\0\0\0\1f\0\7f\ 1\0\0\0\91\bq\11«\ 1\7f\ 1\0\0\ 5\18\0\0\0\8f\ 1\16«\ 1\7f\ 1\0\0\ 1\8f\ 1\17²\ 1\7f\ 1\0\0\0\0²\ 1\7f\ 1\0\0\0\0\1f\0\7f\ 1\0\0\0\91\12q\13\84\0q1type."".JSONResponse\0®\ 1\81\ 1\0\0\93q\01x.\11/\8f\84\0q\ 1type.func(*uint8) *"".JSONResponse\0\1f\0\81\ 1\0\0\0\91\1dq\ 1®\ 1\81\ 1\0\0\ 5\b\0\0\0\8f\ 1\13\84\0s\ 2"".&r\0®\ 1\81\ 1\0\0\ 1\13\15èÿÿÿ\ 2\ 1\82\ 1\0\0\91,q-\ 1\13\84\0s\ 3bytes.buf\0®\ 1\82\ 1\0\0\ 1\13\95Èÿÿÿ\ 3s-r\0\82\ 1\0\0\95\b\0\0\0,q-\ 1\13r\0\82\ 1\0\0\ 1\13\95Ðÿÿÿ\ 3s-r\0\82\ 1\0\0\95\f\0\0\0,q-\ 1\13r\0\82\ 1\0\0\ 1\13\95Ôÿÿÿ\ 3s-\84\0s\ 4""..r0\0\84\0q\ 5type.*bytes.Buffer\0®\ 1\82\ 1\0\0\ 1u\95ðÿÿÿ\ 4s\ 5\84\0q\ 6type.bytes.Buffer\0®\ 1\82\ 1\0\0\93q\0\ 6x.\11/\8f\84\0q\atype.func(*uint8) *bytes.Buffer\0\1f\0\82\ 1\0\0\0\91\1dq\a®\ 1\82\ 1\0\0\ 5\b\0\0\0\8f\ 1\12®\ 1\82\ 1\0\0\ 1\12\ 1\17®\ 1\82\ 1\0\0\ 1u\ 1\10®\ 1\82\ 1\0\0\ 5\f\0\0\0u\ 1\11¨\0\82\ 1\0\0\0\0Æ\ 1\82\ 1\0\0\0\0®\ 1\82\ 1\0\0\95Èÿÿÿ\ 3s-\ 1\15®\ 1\82\ 1\0\0\ 1\15\ 1\8dr\0\82\ 1\0\0\95Ðÿÿÿ\ 3s-\ 1\15r\0\82\ 1\0\0\ 1\15\ 5\b\0\0\0\8dr\0\82\ 1\0\0\95Ôÿÿÿ\ 3s-\ 1\15r\0\82\ 1\0\0\ 1\15\ 5\f\0\0\0\8d®\ 1\82\ 1\0\0\ 1\12\95ðÿÿÿ\ 4s\ 5®\ 1\82\ 1\0\0\93q\0\ 5x.\11/\8f\84\0q\btype.io.Reader\0\84\0\8f      runtime.typ2\0®\ 1\82\ 1\0\0\93q\0\bx.\15\b\0\0\0  \8f®\ 1\82\ 1\0\0\95ðÿÿÿ\ 4s\ 5\ 1\15\84\0\8f
+runtime.elem\0®\ 1\82\ 1\0\0\ 1\15\15\10\0\0\0
+\8f\84\0q\vruntime.convT2I\0\84\0q\ftype.func(*uint8, *uint8, *bytes.Buffer) io.Reader\0\1f\0\82\ 1\0\0\0\91\vq\f«\ 1\82\ 1\0\0\ 5\18\0\0\0\8f\ 1\16\84\0\8f\rencoding/gob.r\0«\ 1\82\ 1\0\0\11\r\8f\ 1\17²\ 1\82\ 1\0\0\0\0²\ 1\82\ 1\0\0\0\0\84\0q\ eencoding/gob.NewDecoder\0\84\0q\ ftype.func(io.Reader) *encoding/gob.Decoder\0\1f\0\82\ 1\0\0\0\91\ eq\ f®\ 1\82\ 1\0\0\ 5\10\0\0\0\8f\ 1\15\84\0s\10"".autotmp_0054\0®\ 1\82\ 1\0\0\ 1\15\15øÿÿÿ\10s\84\0q\11type.*"".JSONResponse\0®\ 1\82\ 1\0\0\93q\0\11x.\11/\8f®\ 1\82\ 1\0\0\15èÿÿÿ\ 2s\ 1\15®\ 1\82\ 1\0\0\ 1\15\15\b\0\0\0
+\8f\84\0q\12runtime.convT2E\0\84\0q\13type.func(*uint8, *"".JSONResponse) interface {}\0\1f\0\82\ 1\0\0\0\91\12q\13«\ 1\82\ 1\0\0\ 5\10\0\0\0\8f\ 1\16\84\0\8f\14encoding/gob.e\0«\ 1\82\ 1\0\0\15\b\0\0\0\14\8f\ 1\17²\ 1\82\ 1\0\0\0\0²\ 1\82\ 1\0\0\0\0®\ 1\82\ 1\0\0\15øÿÿÿ\10s\ 1\15\84\0\8f\15encoding/gob.dec\0®\ 1\82\ 1\0\0\ 1\15\11\15\8f\84\0q\16encoding/gob.(*Decoder).Decode\0\1f\0\82\ 1\0\0\0\11\16\ 1\82\ 1\0\0\ 5\18\0\0\0\8f\ 1\13®\ 1\82\ 1\0\0\ 1\8e\ 1\15\84\0s\17"".err\0\84\0q\18type.error\0®\ 1\82\ 1\0\0\ 1\15\95Øÿÿÿ\17s\18®\ 1\82\ 1\0\0\ 5\b\0\0\0\8e\ 1\15®\ 1\82\ 1\0\0\ 1\15\95àÿÿÿ\17s\18«\ 1\82\ 1\0\0\95Øÿÿÿ\17s\18\ 1\13¢\ 1\82\ 1\0\0\ 1\8e\ 1uQ\0\82\ 1\0\0\0\ 5^\ 5\0\0\ 1\83\ 1\0\0\11
+\8f\ 1\13®\ 1\83\ 1\0\0\95Øÿÿÿ\17s\18\ 1\15®\ 1\83\ 1\0\0\ 1\15\ 1\8e®\ 1\83\ 1\0\0\95àÿÿÿ\17s\18\ 1\15®\ 1\83\ 1\0\0\ 1\15\ 5\b\0\0\0\8e\84\0q\19runtime.convI2E\0\84\0q\1atype.func(error) interface {}\0\1f\0\83\ 1\0\0\0\91\19q\1a«\ 1\83\ 1\0\0\ 5\10\0\0\0\8f\ 1\16«\ 1\83\ 1\0\0\ 1\8f\ 1\17²\ 1\83\ 1\0\0\0\0²\ 1\83\ 1\0\0\0\0\84\0q\eruntime.panic\0\84\0q\1ctype.func(interface {})\0\1f\0\83\ 1\0\0\0\91\eq\1cª\0\86\ 1\0\0\0\0\84\0q\1d"".gobenc\0ã\0\88\ 1\0\0\91\1dq+\ 5@\0\0\0u\84\0\8f\1eencoding/gob.w\0«\ 1\89\ 1\0\0\11\1e\8f\ 1\15\84\0q\1fio/ioutil.Discard\0\84\0q type.io.Writer\0®\ 1\89\ 1\0\0\91\1f\ 1\18®\ 1\89\ 1\0\0\ 1\18\ 1\90®\ 1\89\ 1\0\0\95\b\0\0\0\1f\ 1\18®\ 1\89\ 1\0\0\ 1\18\ 5\b\0\0\0\90\84\0q!encoding/gob.NewEncoder\0\84\0q"type.func(io.Writer) *encoding/gob.Encoder\0\1f\0\89\ 1\0\0\0\91!q"®\ 1\89\ 1\0\0\ 5\10\0\0\0\8f\ 1\15\84\0s#"".autotmp_0055\0®\ 1\89\ 1\0\0\ 1\15\15øÿÿÿ#s\84\0q$type.**"".JSONResponse\0®\ 1\89\ 1\0\0\93q\0$x.\11/\8f\84\0q%"".gobdata\0«\ 1\89\ 1\0\0\91%q\11\ 1\15®\ 1\89\ 1\0\0\ 1\15\15\b\0\0\0
+\8f\84\0q&type.func(*uint8, **"".JSONResponse) interface {}\0\1f\0\89\ 1\0\0\0\91\12q&«\ 1\89\ 1\0\0\ 5\10\0\0\0\8f\ 1\16«\ 1\89\ 1\0\0\15\b\0\0\0\14\8f\ 1\17²\ 1\89\ 1\0\0\0\0²\ 1\89\ 1\0\0\0\0®\ 1\89\ 1\0\0\15øÿÿÿ#s\ 1\15\84\0\8f'encoding/gob.enc\0®\ 1\89\ 1\0\0\ 1\15\11'\8f\84\0q(encoding/gob.(*Encoder).Encode\0\1f\0\89\ 1\0\0\0\11(q«\ 1\89\ 1\0\0\ 5\18\0\0\0\8f\ 1\13®\ 1\89\ 1\0\0\ 1\8e\ 1\15®\ 1\89\ 1\0\0\ 1\15\95èÿÿÿ\17s\18®\ 1\89\ 1\0\0\ 5\b\0\0\0\8e\ 1\15®\ 1\89\ 1\0\0\ 1\15\95ðÿÿÿ\17s\18«\ 1\89\ 1\0\0\95èÿÿÿ\17s\18\ 1\13¢\ 1\89\ 1\0\0\ 1\8e\ 1uQ\0\89\ 1\0\0\0\ 5\86\ 5\0\0\ 1\8a\ 1\0\0\11
+\8f\ 1\13®\ 1\8a\ 1\0\0\95èÿÿÿ\17s\18\ 1\15®\ 1\8a\ 1\0\0\ 1\15\ 1\8e®\ 1\8a\ 1\0\0\95ðÿÿÿ\17s\18\ 1\15®\ 1\8a\ 1\0\0\ 1\15\ 5\b\0\0\0\8e\1f\0\8a\ 1\0\0\0\91\19q\1a«\ 1\8a\ 1\0\0\ 5\10\0\0\0\8f\ 1\16«\ 1\8a\ 1\0\0\ 1\8f\ 1\17²\ 1\8a\ 1\0\0\0\0²\ 1\8a\ 1\0\0\0\0\1f\0\8a\ 1\0\0\0\91\eq\1cª\0\8c\ 1\0\0\0\0\84\0q)"".BenchmarkGobDecode\0\84\0q*type.func(*testing.B)\0ã\0\8e\ 1\0\0\91)q*E\b\0\0\0\b\0\0\0u\84\0t+"".b\0\84\0q,type.*testing.B\0®\ 1\8f\ 1\0\0\91+t,\ 1\11\84\0q-"".gobbytes\0\84\0q.type.[]uint8\0r\0\8f\ 1\0\0\95\b\0\0\0-q.\ 1\10¯\ 1\8f\ 1\0\0\ 1\10\ 1\10®\ 1\8f\ 1\0\0\ 1\10\ 5p\0\0\0\8c\84\0q/type.int\0r\0\90\ 1\0\0\ 1u\81\10/Y\0\90\ 1\0\0\0\ 5\8f\ 5\0\0pD\0\90\ 1\0\0\0\81\10\ 1\90\ 1\0\0\91+t,\ 1\15r\0\90\ 1\0\0\ 5P\0\0\0\90\ 1\13\84\0s0"".i\0r\0\90\ 1\0\0\ 1\10\95üÿÿÿ0s/&\0\90\ 1\0\0\ 1\13\ 1\10U\0\90\ 1\0\0\0\ 5\97\ 5\0\0p\84\0q1"".gobdec\0\84\0q\ 1type.func()\0\1f\0\91\ 1\0\0\0\911q\ 1r\0\91\ 1\0\0\95üÿÿÿ0s/\ 1\10Y\0\90\ 1\0\0\0\ 5\8e\ 5\0\0\0\93\ 1\0\0\0\0\84\0q\ 2"".BenchmarkGobEncode\0ã\0\95\ 1\0\0\91\ 2q*E\b\0\0\0\b\0\0\0\ 1\96\ 1\0\0\91+t,\ 1\11r\0\96\ 1\0\0\95\b\0\0\0-q.\ 1\10¯\ 1\96\ 1\0\0\ 1\10\ 1\10®\ 1\96\ 1\0\0\ 1\10\ 5p\0\0\0\8cr\0\97\ 1\0\0\ 1u\81\10/Y\0\97\ 1\0\0\0\ 5 \ 5\0\0pD\0\97\ 1\0\0\0\81\10\ 1\97\ 1\0\0\91+t,\ 1\15r\0\97\ 1\0\0\ 5P\0\0\0\90\ 1\13r\0\97\ 1\0\0\ 1\10\95üÿÿÿ0s/&\0\97\ 1\0\0\ 1\13\ 1\10U\0\97\ 1\0\0\0\ 5¨\ 5\0\0p\1f\0\98\ 1\0\0\0\91\1dq\ 1r\0\98\ 1\0\0\95üÿÿÿ0s/\ 1\10Y\0\97\ 1\0\0\0\ 5\9f\ 5\0\0\0\9a\ 1\0\0\0\0\84\0q\ 3"".init·1\0ã\0°\ 1\0\0\91\ 3q\ 1\ 5`\0\0\0u\84\0q\ 4type.uint8\0\84\0\8f\ 5runtime.typ\0®\ 1±\ 1\0\0\93q\0\ 6x\ 4\11\ 5\8f\84\0q\ 6runtime.new\0\1f\0±\ 1\0\0\0\91\ 6q\a®\ 1±\ 1\0\0\ 5\b\0\0\0\8f\ 1\10\84\0q\atype.*bytes.Buffer\0®\ 1²\ 1\0\0\93q\0\ax\ 4\11\ 5\8f®\ 1²\ 1\0\0\93q\0 x\ 4\15\b\0\0\0   \8f\84\0s\b"".&buf\0®\ 1²\ 1\0\0\ 1\10\15øÿÿÿ\b\ 1²\ 1\0\0\ 1\10\15\10\0\0\0
+\8f\84\0q   type.func(*uint8, *uint8, *bytes.Buffer) io.Writer\0\1f\0²\ 1\0\0\0\91\vq   «\ 1²\ 1\0\0\ 5\18\0\0\0\8f\ 1\16\84\0\8f
+compress/gzip.w\0«\ 1²\ 1\0\0\11
+\8f\ 1\17²\ 1²\ 1\0\0\0\0²\ 1²\ 1\0\0\0\0\84\0q\vcompress/gzip.NewWriter\0\84\0q\ftype.func(io.Writer) (*compress/gzip.Compressor, error)\0\1f\0²\ 1\0\0\0\91\vq\f®\ 1²\ 1\0\0\ 5\10\0\0\0\8f\ 1\13\84\0s\r"".c\0\84\0q\ etype.*compress/gzip.Compressor\0®\ 1²\ 1\0\0\ 1\13\95Ðÿÿÿ\rs\ e«\ 1²\ 1\0\0\ 5\18\0\0\0\8f\ 1\13®\ 1²\ 1\0\0\ 1\8e\ 1\15®\ 1²\ 1\0\0\ 1\15\95èÿÿÿ\17s\18®\ 1²\ 1\0\0\ 5\b\0\0\0\8e\ 1\15®\ 1²\ 1\0\0\ 1\15\95ðÿÿÿ\17s\18«\ 1³\ 1\0\0\95èÿÿÿ\17s\18\ 1\13¢\ 1³\ 1\0\0\ 1\8e\ 1uQ\0³\ 1\0\0\0\ 5Ì\ 5\0\0p\84\0\8f\ fruntime.elem\0«\ 1´\ 1\0\0\11\ f\8f\ 1\13®\ 1´\ 1\0\0\95èÿÿÿ\17s\18\ 1\15®\ 1´\ 1\0\0\ 1\15\ 1\8e®\ 1´\ 1\0\0\95ðÿÿÿ\17s\18\ 1\15®\ 1´\ 1\0\0\ 1\15\ 5\b\0\0\0\8e\1f\0´\ 1\0\0\0\91\19q\1a«\ 1´\ 1\0\0\ 5\10\0\0\0\8f\ 1\16«\ 1´\ 1\0\0\ 1\8f\ 1\17²\ 1´\ 1\0\0\0\0²\ 1´\ 1\0\0\0\0\1f\0´\ 1\0\0\0\91\eq\1c®\ 1\ 1\0\0\95Ðÿÿÿ\rs\ e\ 1\13\84\0\8f\10compress/gzip.z\0®\ 1\ 1\0\0\ 1\13\11\10\8f\84\0\8f\11compress/gzip.p\0«\ 1\ 1\0\0\15\b\0\0\0\11\8f\ 1\13\84\0q\12"".jsongunz\0®\ 1\ 1\0\0\91\12q.\ 1\15®\ 1\ 1\0\0\ 1\15\ 1\8er\0\ 1\0\0\95\b\0\0\0\12q.\ 1\15r\0\ 1\0\0\ 1\15\ 5\b\0\0\0\8er\0\ 1\0\0\95\f\0\0\0\12q.\ 1\15r\0\ 1\0\0\ 1\15\ 5\f\0\0\0\8e\84\0q\13compress/gzip.(*Compressor).Write\0\1f\0\ 1\0\0\0\11\13\ 1·\ 1\0\0\95Ðÿÿÿ\rs\ e\ 1\13®\ 1·\ 1\0\0\ 1\13\11\10\8f\84\0q\14compress/gzip.(*Compressor).Close\0\1f\0·\ 1\0\0\0\11\14\ 1¸\ 1\0\0\15øÿÿÿ\bs\ 1\11\84\0s\15""..r0\0®\ 1¸\ 1\0\0\ 1u\95Øÿÿÿ\15s.r\0¸\ 1\0\0\ 1u\95àÿÿÿ\15s.r\0¸\ 1\0\0\ 1u\95äÿÿÿ\15s.®\ 1¸\ 1\0\0\ 1\8c\ 1\17r\0¸\ 1\0\0\ 5\b\0\0\0\8c\ 1\10r\0¸\ 1\0\0\ 5\f\0\0\0\8c\ 1\16r\0¸\ 1\0\0\ 5\10\0\0\0\8c\ 1\13¯\ 1¸\ 1\0\0\ 1\13\ 1\13°\ 1¸\ 1\0\0\ 1\10\ 1\15¢\ 1¸\ 1\0\0\ 1\13\ 1\15V\0¸\ 1\0\0\0\ 5æ\ 5\0\0p\84\0q\16runtime.panicslice\0\1f\0¸\ 1\0\0\0\11\16qr\0¸\ 1\0\0\ 1\10\ 1\12Ý\0¸\ 1\0\0\ 1\13\ 1\12r\0¸\ 1\0\0\ 1\16\ 1\15Ý\0¸\ 1\0\0\ 1\13\ 1\15\9a\ 1¸\ 1\0\0\ 1\17\ 1\13®\ 1¸\ 1\0\0\ 1\13\ 1\10®\ 1¸\ 1\0\0\ 1\13\95Øÿÿÿ\15s.r\0¸\ 1\0\0\ 1\12\95àÿÿÿ\15s.r\0¸\ 1\0\0\ 1\15\95äÿÿÿ\15s.®\ 1¸\ 1\0\0\95Øÿÿÿ\15s.\ 1\13\84\0q\17"".jsongz\0®\ 1¸\ 1\0\0\ 1\13\91\17q.r\0¸\ 1\0\0\95àÿÿÿ\15s.\ 1\13r\0¸\ 1\0\0\ 1\13\95\b\0\0\0\17q.r\0¸\ 1\0\0\95äÿÿÿ\15s.\ 1\13r\0¸\ 1\0\0\ 1\13\95\f\0\0\0\17q.ª\0¹\ 1\0\0\0\0\84\0q\18"".gzip\0ã\0»\ 1\0\0\91\18q\ 1\ 5h\0\0\0\ 1¼\ 1\0\0\11
+\8f\ 1\13®\ 1¼\ 1\0\0\91\1f\ 1\15®\ 1¼\ 1\0\0\ 1\15\ 1\8e®\ 1¼\ 1\0\0\95\b\0\0\0\1f\ 1\15®\ 1¼\ 1\0\0\ 1\15\ 5\b\0\0\0\8e\1f\0¼\ 1\0\0\0\91\vq\f®\ 1¼\ 1\0\0\ 5\10\0\0\0\8f\ 1\13®\ 1¼\ 1\0\0\ 1\13\95Èÿÿÿ\rs\ e«\ 1¼\ 1\0\0\ 5\18\0\0\0\8f\ 1\13®\ 1¼\ 1\0\0\ 1\8e\ 1\15\84\0s\19"".err\0\84\0q\1atype.error\0®\ 1¼\ 1\0\0\ 1\15\95àÿÿÿ\19s\1a®\ 1¼\ 1\0\0\ 5\b\0\0\0\8e\ 1\15®\ 1¼\ 1\0\0\ 1\15\95èÿÿÿ\19s\1a«\ 1½\ 1\0\0\95àÿÿÿ\19s\1a\ 1\13¢\ 1½\ 1\0\0\ 1\8e\ 1uQ\0½\ 1\0\0\0\ 5\12\ 6\0\0\ 1¾\ 1\0\0\11\ f\8f\ 1\13®\ 1¾\ 1\0\0\95àÿÿÿ\19s\1a\ 1\15®\ 1¾\ 1\0\0\ 1\15\ 1\8e®\ 1¾\ 1\0\0\95èÿÿÿ\19s\1a\ 1\15®\ 1¾\ 1\0\0\ 1\15\ 5\b\0\0\0\8e\84\0q\eruntime.convI2E\0\84\0q\1ctype.func(error) interface {}\0\1f\0¾\ 1\0\0\0\91\eq\1c«\ 1¾\ 1\0\0\ 5\10\0\0\0\8f\ 1\16«\ 1¾\ 1\0\0\ 1\8f\ 1\17²\ 1¾\ 1\0\0\0\0²\ 1¾\ 1\0\0\0\0\84\0q\1druntime.panic\0\84\0q\1etype.func(interface {})\0\1f\0¾\ 1\0\0\0\91\1dq\1e®\ 1À\ 1\0\0\95Èÿÿÿ\rs\ e\ 1\13®\ 1À\ 1\0\0\ 1\13\11\10\8f«\ 1À\ 1\0\0\15\b\0\0\0\11\8f\ 1\13®\ 1À\ 1\0\0\91\12q.\ 1\15®\ 1À\ 1\0\0\ 1\15\ 1\8er\0À\ 1\0\0\95\b\0\0\0\12q.\ 1\15r\0À\ 1\0\0\ 1\15\ 5\b\0\0\0\8er\0À\ 1\0\0\95\f\0\0\0\12q.\ 1\15r\0À\ 1\0\0\ 1\15\ 5\f\0\0\0\8e\1f\0À\ 1\0\0\0\11\13\ 1À\ 1\0\0\ 5 \0\0\0\8f\ 1\13®\ 1À\ 1\0\0\ 1\8e\ 1\15®\ 1À\ 1\0\0\ 1\15\95Ðÿÿÿ\19s\1a®\ 1À\ 1\0\0\ 5\b\0\0\0\8e\ 1\15®\ 1À\ 1\0\0\ 1\15\95Øÿÿÿ\19s\1a«\ 1À\ 1\0\0\95Ðÿÿÿ\19s\1a\ 1\13¢\ 1À\ 1\0\0\ 1\8e\ 1uQ\0À\ 1\0\0\0\ 5/\ 6\0\0\ 1Á\ 1\0\0\11\ f\8f\ 1\13®\ 1Á\ 1\0\0\95Ðÿÿÿ\19s\1a\ 1\15®\ 1Á\ 1\0\0\ 1\15\ 1\8e®\ 1Á\ 1\0\0\95Øÿÿÿ\19s\1a\ 1\15®\ 1Á\ 1\0\0\ 1\15\ 5\b\0\0\0\8e\1f\0Á\ 1\0\0\0\91\eq\1c«\ 1Á\ 1\0\0\ 5\10\0\0\0\8f\ 1\16«\ 1Á\ 1\0\0\ 1\8f\ 1\17²\ 1Á\ 1\0\0\0\0²\ 1Á\ 1\0\0\0\0\1f\0Á\ 1\0\0\0\91\1dq\1e®\ 1Ã\ 1\0\0\95Èÿÿÿ\rs\ e\ 1\15®\ 1Ã\ 1\0\0\ 1\15\11\10\8f\1f\0Ã\ 1\0\0\0\11\14\ 1Ã\ 1\0\0\ 5\b\0\0\0\8f\ 1\13®\ 1Ã\ 1\0\0\ 1\8e\ 1\15®\ 1Ã\ 1\0\0\ 1\15\95ðÿÿÿ\19s\1a®\ 1Ã\ 1\0\0\ 5\b\0\0\0\8e\ 1\15®\ 1Ã\ 1\0\0\ 1\15\95øÿÿÿ\19s\1a«\ 1Ã\ 1\0\0\95ðÿÿÿ\19s\1a\ 1\13¢\ 1Ã\ 1\0\0\ 1\8e\ 1uQ\0Ã\ 1\0\0\0\ 5E\ 6\0\0\ 1Ä\ 1\0\0\11\ f\8f\ 1\13®\ 1Ä\ 1\0\0\95ðÿÿÿ\19s\1a\ 1\15®\ 1Ä\ 1\0\0\ 1\15\ 1\8e®\ 1Ä\ 1\0\0\95øÿÿÿ\19s\1a\ 1\15®\ 1Ä\ 1\0\0\ 1\15\ 5\b\0\0\0\8e\1f\0Ä\ 1\0\0\0\91\eq\1c«\ 1Ä\ 1\0\0\ 5\10\0\0\0\8f\ 1\16«\ 1Ä\ 1\0\0\ 1\8f\ 1\17²\ 1Ä\ 1\0\0\0\0²\ 1Ä\ 1\0\0\0\0\1f\0Ä\ 1\0\0\0\91\1dq\1eª\0Æ\ 1\0\0\0\0\84\0q\1f"".gunzip\0ã\0È\ 1\0\0\91\1fq\ 1\ 5x\0\0\0\ 1É\ 1\0\0\91\17q.\ 1\13\84\0s bytes.buf\0®\ 1É\ 1\0\0\ 1\13\95èÿÿÿ s.r\0É\ 1\0\0\95\b\0\0\0\17q.\ 1\13r\0É\ 1\0\0\ 1\13\95ðÿÿÿ s.r\0É\ 1\0\0\95\f\0\0\0\17q.\ 1\13r\0É\ 1\0\0\ 1\13\95ôÿÿÿ s.®\ 1É\ 1\0\0\ 1u\95øÿÿÿ\15s\a\84\0q!type.bytes.Buffer\0®\ 1É\ 1\0\0\93q\0!x\ 4\11\ 5\8f\84\0q"type.func(*uint8) *bytes.Buffer\0\1f\0É\ 1\0\0\0\91\ 6q"®\ 1É\ 1\0\0\ 5\b\0\0\0\8f\ 1\12®\ 1É\ 1\0\0\ 1\12\ 1\17®\ 1É\ 1\0\0\ 1u\ 1\10®\ 1É\ 1\0\0\ 5\f\0\0\0u\ 1\11¨\0É\ 1\0\0\0\0Æ\ 1É\ 1\0\0\0\0®\ 1É\ 1\0\0\95èÿÿÿ s.\ 1\15®\ 1É\ 1\0\0\ 1\15\ 1\8dr\0É\ 1\0\0\95ðÿÿÿ s.\ 1\15r\0É\ 1\0\0\ 1\15\ 5\b\0\0\0\8dr\0É\ 1\0\0\95ôÿÿÿ s.\ 1\15r\0É\ 1\0\0\ 1\15\ 5\f\0\0\0\8d®\ 1É\ 1\0\0\ 1\12\95øÿÿÿ\15s\a®\ 1É\ 1\0\0\93q\0\ax\ 4\11\ 5\8f\84\0q#type.io.Reader\0\84\0\8f$runtime.typ2\0®\ 1É\ 1\0\0\93q\0#x\ 4\15\b\0\0\0$\8f®\ 1É\ 1\0\0\95øÿÿÿ\15s\a\ 1\13®\ 1É\ 1\0\0\ 1\13\15\10\0\0\0\ f\8f\84\0q%runtime.convT2I\0\84\0q&type.func(*uint8, *uint8, *bytes.Buffer) io.Reader\0\1f\0É\ 1\0\0\0\91%q&«\ 1É\ 1\0\0\ 5\18\0\0\0\8f\ 1\16\84\0\8f'compress/gzip.r\0«\ 1É\ 1\0\0\11'\8f\ 1\17²\ 1É\ 1\0\0\0\0²\ 1É\ 1\0\0\0\0\84\0q(compress/gzip.NewReader\0\84\0q)type.func(io.Reader) (*compress/gzip.Decompressor, error)\0\1f\0É\ 1\0\0\0\91(q)®\ 1É\ 1\0\0\ 5\10\0\0\0\8f\ 1\13\84\0s*"".r\0\84\0q+type.*compress/gzip.Decompressor\0®\ 1É\ 1\0\0\ 1\13\95Àÿÿÿ*s+«\ 1É\ 1\0\0\ 5\18\0\0\0\8f\ 1\13®\ 1É\ 1\0\0\ 1\8e\ 1\15®\ 1É\ 1\0\0\ 1\15\95Øÿÿÿ\19s\1a®\ 1É\ 1\0\0\ 5\b\0\0\0\8e\ 1\15®\ 1É\ 1\0\0\ 1\15\95àÿÿÿ\19s\1a«\ 1Ê\ 1\0\0\95Øÿÿÿ\19s\1a\ 1\13¢\ 1Ê\ 1\0\0\ 1\8e\ 1uQ\0Ê\ 1\0\0\0\ 5|\ 6\0\0\ 1Ë\ 1\0\0\11\ f\8f\ 1\13®\ 1Ë\ 1\0\0\95Øÿÿÿ\19s\1a\ 1\15®\ 1Ë\ 1\0\0\ 1\15\ 1\8e®\ 1Ë\ 1\0\0\95àÿÿÿ\19s\1a\ 1\15®\ 1Ë\ 1\0\0\ 1\15\ 5\b\0\0\0\8e\1f\0Ë\ 1\0\0\0\91\eq\1c«\ 1Ë\ 1\0\0\ 5\10\0\0\0\8f\ 1\16«\ 1Ë\ 1\0\0\ 1\8f\ 1\17²\ 1Ë\ 1\0\0\0\0²\ 1Ë\ 1\0\0\0\0\1f\0Ë\ 1\0\0\0\91\1dq\1e®\ 1Í\ 1\0\0\93q\0+x\ 4\11\ 5\8f®\ 1Í\ 1\0\0\93q\0#x\ 4\15\b\0\0\0$\8f®\ 1Í\ 1\0\0\95Àÿÿÿ*s+\ 1\13®\ 1Í\ 1\0\0\ 1\13\15\10\0\0\0\ f\8f\84\0q,type.func(*uint8, *uint8, *compress/gzip.Decompressor) io.Reader\0\1f\0Í\ 1\0\0\0\91%q,«\ 1Í\ 1\0\0\ 5\18\0\0\0\8f\ 1\16\84\0\8f-io.src\0«\ 1Í\ 1\0\0\15\10\0\0\0-\8f\ 1\17²\ 1Í\ 1\0\0\0\0²\ 1Í\ 1\0\0\0\0\84\0\8f.io.dst\0«\ 1Í\ 1\0\0\11.\8f\ 1\13\84\0q/io/ioutil.Discard\0\84\0q0type.io.Writer\0®\ 1Í\ 1\0\0\91/q0\ 1\15®\ 1Í\ 1\0\0\ 1\15\ 1\8e®\ 1Í\ 1\0\0\95\b\0\0\0/q0\ 1\15®\ 1Í\ 1\0\0\ 1\15\ 5\b\0\0\0\8e\84\0q1io.Copy\0\84\0q\ 1type.func(io.Writer, io.Reader) (int64, error)\0\1f\0Í\ 1\0\0\0\911q\ 1\84\0\8f\ 2io.err\0«\ 1Í\ 1\0\0\15(\0\0\0\ 2\8f\ 1\13®\ 1Í\ 1\0\0\ 1\8e\ 1\15®\ 1Í\ 1\0\0\ 1\15\95Èÿÿÿ\19s\1a®\ 1Í\ 1\0\0\ 5\b\0\0\0\8e\ 1\15®\ 1Í\ 1\0\0\ 1\15\95Ðÿÿÿ\19s\1a«\ 1Í\ 1\0\0\95Èÿÿÿ\19s\1a\ 1\13¢\ 1Í\ 1\0\0\ 1\8e\ 1uQ\0Í\ 1\0\0\0\ 5\9e\ 6\0\0\ 1Î\ 1\0\0\11\ f\8f\ 1\13®\ 1Î\ 1\0\0\95Èÿÿÿ\19s\1a\ 1\15®\ 1Î\ 1\0\0\ 1\15\ 1\8e®\ 1Î\ 1\0\0\95Ðÿÿÿ\19s\1a\ 1\15®\ 1Î\ 1\0\0\ 1\15\ 5\b\0\0\0\8e\1f\0Î\ 1\0\0\0\91\eq\1c«\ 1Î\ 1\0\0\ 5\10\0\0\0\8f\ 1\16«\ 1Î\ 1\0\0\ 1\8f\ 1\17²\ 1Î\ 1\0\0\0\0²\ 1Î\ 1\0\0\0\0\1f\0Î\ 1\0\0\0\91\1dq\1e®\ 1Ð\ 1\0\0\95Àÿÿÿ*s+\ 1\13®\ 1Ð\ 1\0\0\ 1\13\11\10\8f\84\0q\ 3compress/gzip.(*Decompressor).Close\0\1f\0Ð\ 1\0\0\0\11\ 3\0Ñ\ 1\0\0\0\0\84\0q\ 4"".BenchmarkGzip\0\84\0q\ 5type.func(*testing.B)\0ã\0Ó\ 1\0\0\91\ 4q\ 5E\b\0\0\0\b\0\0\0u\84\0t\ 6"".b\0\84\0q\atype.*testing.B\0®\ 1Ô\ 1\0\0\91\ 6t\a\ 1\11\84\0q\btype.[]uint8\0r\0Ô\ 1\0\0\95\b\0\0\0\12q\b\ 1\10¯\ 1Ô\ 1\0\0\ 1\10\ 1\10®\ 1Ô\ 1\0\0\ 1\10\ 5p\0\0\0\8c\84\0q      type.int\0r\0Õ\ 1\0\0\ 1u\81\10     Y\0Õ\ 1\0\0\0\ 5ª\ 6\0\0pD\0Õ\ 1\0\0\0\81\10  ®\ 1Õ\ 1\0\0\91\ 6t\a\ 1\15r\0Õ\ 1\0\0\ 5P\0\0\0\90\ 1\13\84\0s
+"".i\0r\0Õ\ 1\0\0\ 1\10\95üÿÿÿ
+s      &\0Õ\ 1\0\0\ 1\13\ 1\10U\0Õ\ 1\0\0\0\ 5²\ 6\0\0p\84\0q\vtype.func()\0\1f\0Ö\ 1\0\0\0\91\18q\vr\0Ö\ 1\0\0\95üÿÿÿ
+s      \ 1\10Y\0Õ\ 1\0\0\0\ 5©\ 6\0\0\0Ø\ 1\0\0\0\0\84\0q\f"".BenchmarkGunzip\0ã\0Ú\ 1\0\0\91\fq\ 5E\b\0\0\0\b\0\0\0\ 1Û\ 1\0\0\91\ 6t\a\ 1\11r\0Û\ 1\0\0\95\b\0\0\0\12q\b\ 1\10¯\ 1Û\ 1\0\0\ 1\10\ 1\10®\ 1Û\ 1\0\0\ 1\10\ 5p\0\0\0\8cr\0Ü\ 1\0\0\ 1u\81\10        Y\0Ü\ 1\0\0\0\ 5»\ 6\0\0pD\0Ü\ 1\0\0\0\81\10  ®\ 1Ü\ 1\0\0\91\ 6t\a\ 1\15r\0Ü\ 1\0\0\ 5P\0\0\0\90\ 1\13r\0Ü\ 1\0\0\ 1\10\95üÿÿÿ
+s      &\0Ü\ 1\0\0\ 1\13\ 1\10U\0Ü\ 1\0\0\0\ 5Ã\ 6\0\0p\1f\0Ý\ 1\0\0\0\91\1fq\vr\0Ý\ 1\0\0\95üÿÿÿ
+s      \ 1\10Y\0Ü\ 1\0\0\0\ 5º\ 6\0\0\0ß\ 1\0\0\0\0\84\0q\r"".init·2\0ã\0÷\ 1\0\0\91\rq\v\ 5 \0\0\0u\84\0q\ e"".jsonbz2_base64\0\84\0q\ ftype.string\0®\ 1ù\ 1\0\0\91\ eq\ f\ 1\13\84\0s\10strings.s\0®\ 1ù\ 1\0\0\ 1\13\95 ÿÿÿ\10s\ fr\0ù\ 1\0\0\95\b\0\0\0\ eq\ f\ 1\13r\0ù\ 1\0\0\ 1\13\95¨ÿÿÿ\10s\ f\84\0q\11type.*strings.Reader\0®\ 1ù\ 1\0\0\ 1u\95Àÿÿÿ\15s\11\84\0q\12type.strings.Reader\0\84\0q\13type.uint8\0\84\0\8f\14runtime.typ\0®\ 1ù\ 1\0\0\93q\0\12x\13\11\14\8f\84\0q\15runtime.new\0\84\0q\16type.func(*uint8) *strings.Reader\0\1f\0ù\ 1\0\0\0\91\15q\16®\ 1ù\ 1\0\0\ 5\b\0\0\0\8f\ 1\10®\ 1ù\ 1\0\0\95 ÿÿÿ\10s\ f\ 1\15®\ 1ù\ 1\0\0\ 1\15\ 1\8br\0ù\ 1\0\0\95¨ÿÿÿ\10s\ f\ 1\15r\0ù\ 1\0\0\ 1\15\ 5\b\0\0\0\8br\0ù\ 1\0\0\ 1u\ 5\10\0\0\0\8br\0ù\ 1\0\0\ 5ÿÿÿÿu\ 5\14\0\0\0\8b\84\0s\17""..r0\0®\ 1ù\ 1\0\0\ 1\10\95Àÿÿÿ\17s\11®\ 1ù\ 1\0\0\93q\0\11x\13\11\14\8f®\ 1ù\ 1\0\0\93q\0#x\13\15\b\0\0\0$\8f®\ 1ù\ 1\0\0\95Àÿÿÿ\17s\11\ 1\13\84\0\8f\18runtime.elem\0®\ 1ù\ 1\0\0\ 1\13\15\10\0\0\0\18\8f\84\0q\19type.func(*uint8, *uint8, *strings.Reader) io.Reader\0\1f\0ù\ 1\0\0\0\91%q\19®\ 1ù\ 1\0\0\ 5\18\0\0\0\8f\ 1\11®\ 1ù\ 1\0\0\ 5 \0\0\0\8f\ 1\10\84\0q\1aencoding/base64.StdEncoding\0\84\0q\etype.*encoding/base64.Encoding\0®\ 1ú\ 1\0\0\91\1aq\e\ 1\13\84\0s\1cencoding/base64.enc\0®\ 1ú\ 1\0\0\ 1\13\95èÿÿÿ\1cs\e\84\0s\1dencoding/base64.r\0®\ 1ú\ 1\0\0\ 1\11\95Øÿÿÿ\1ds#®\ 1ú\ 1\0\0\ 1\10\95àÿÿÿ\1ds#®\ 1ú\ 1\0\0\ 1u\95ðÿÿÿ\17s#®\ 1ú\ 1\0\0\ 1u\95øÿÿÿ\17s#\84\0q\1etype.encoding/base64.decoder\0®\ 1ú\ 1\0\0\93q\0\1ex\13\11\14\8f\84\0q\1ftype.func(*uint8) *encoding/base64.decoder\0\1f\0ú\ 1\0\0\0\91\15q\1f®\ 1ú\ 1\0\0\ 5\b\0\0\0\8f\ 1\12®\ 1ú\ 1\0\0\ 1\12\ 1\17®\ 1ú\ 1\0\0\ 1u\ 1\10®\ 1ú\ 1\0\0\ 5è\0\0\0u\ 1\11¨\0ú\ 1\0\0\0\0Æ\ 1ú\ 1\0\0\0\0®\ 1ú\ 1\0\0\95èÿÿÿ\1cs\e\ 1\15®\ 1ú\ 1\0\0\ 1\15\ 5\10\0\0\0\8d®\ 1ú\ 1\0\0\ 1\12\ 1\13\9a\ 1ú\ 1\0\0\ 5\18\0\0\0u\ 1\13®\ 1ú\ 1\0\0\95Øÿÿÿ\1ds#\ 1\15®\ 1ú\ 1\0\0\ 1\15\ 1\8e®\ 1ú\ 1\0\0\95àÿÿÿ\1ds#\ 1\15®\ 1ú\ 1\0\0\ 1\15\ 5\b\0\0\0\8e\84\0q type.*encoding/base64.decoder\0®\ 1ú\ 1\0\0\93q\0 x\13\11\14\8f®\ 1ú\ 1\0\0\93q\0#x\13\15\b\0\0\0$\8f®\ 1ú\ 1\0\0\ 1\12\15\10\0\0\0\18\8f\84\0q!type.func(*uint8, *uint8, *encoding/base64.decoder) io.Reader\0\1f\0ú\ 1\0\0\0\91%q!®\ 1ú\ 1\0\0\ 5\18\0\0\0\8f\ 1\11®\ 1ú\ 1\0\0\ 5 \0\0\0\8f\ 1\10®\ 1ú\ 1\0\0\ 1\11\95ðÿÿÿ\17s#®\ 1ú\ 1\0\0\ 1\10\95øÿÿÿ\17s#®\ 1ú\ 1\0\0\95ðÿÿÿ\17s#\ 1\11®\ 1ú\ 1\0\0\95øÿÿÿ\17s#\ 1\10\84\0\8f"compress/bzip2.r\0«\ 1û\ 1\0\0\11"\8f\ 1\13®\ 1û\ 1\0\0\ 1\11\ 1\8e®\ 1û\ 1\0\0\ 1\10\ 5\b\0\0\0\8e\84\0q#compress/bzip2.NewReader\0\84\0q$type.func(io.Reader) io.Reader\0\1f\0û\ 1\0\0\0\91#q$®\ 1û\ 1\0\0\ 5\10\0\0\0\8f\ 1\11®\ 1û\ 1\0\0\ 5\18\0\0\0\8f\ 1\10\84\0\8f%io/ioutil.r\0«\ 1ü\ 1\0\0\11%\8f\ 1\13®\ 1ü\ 1\0\0\ 1\11\ 1\8e®\ 1ü\ 1\0\0\ 1\10\ 5\b\0\0\0\8e\84\0q&io/ioutil.ReadAll\0\84\0q'type.func(io.Reader) ([]uint8, error)\0\1f\0ü\ 1\0\0\0\91&q'«\ 1ü\ 1\0\0\ 5\10\0\0\0\8f\ 1\13®\ 1ü\ 1\0\0\ 1\8e\ 1\15\84\0s("".b\0®\ 1ü\ 1\0\0\ 1\15\95°ÿÿÿ(s\br\0ü\ 1\0\0\ 5\b\0\0\0\8e\ 1\15r\0ü\ 1\0\0\ 1\15\95¸ÿÿÿ(s\br\0ü\ 1\0\0\ 5\f\0\0\0\8e\ 1\15r\0ü\ 1\0\0\ 1\15\95¼ÿÿÿ(s\b«\ 1ü\ 1\0\0\ 5 \0\0\0\8f\ 1\13®\ 1ü\ 1\0\0\ 1\8e\ 1\15\84\0s)"".err\0\84\0q*type.error\0®\ 1ü\ 1\0\0\ 1\15\95\90ÿÿÿ)s*®\ 1ü\ 1\0\0\ 5\b\0\0\0\8e\ 1\15®\ 1ü\ 1\0\0\ 1\15\95\98ÿÿÿ)s*«\ 1ý\ 1\0\0\95\90ÿÿÿ)s*\ 1\13¢\ 1ý\ 1\0\0\ 1\8e\ 1uQ\0ý\ 1\0\0\0\ 5\1f\a\0\0\ 1þ\ 1\0\0\11\18\8f\ 1\13®\ 1þ\ 1\0\0\95\90ÿÿÿ)s*\ 1\15®\ 1þ\ 1\0\0\ 1\15\ 1\8e®\ 1þ\ 1\0\0\95\98ÿÿÿ)s*\ 1\15®\ 1þ\ 1\0\0\ 1\15\ 5\b\0\0\0\8e\84\0q+runtime.convI2E\0\84\0q,type.func(error) interface {}\0\1f\0þ\ 1\0\0\0\91+q,«\ 1þ\ 1\0\0\ 5\10\0\0\0\8f\ 1\16«\ 1þ\ 1\0\0\ 1\8f\ 1\17²\ 1þ\ 1\0\0\0\0²\ 1þ\ 1\0\0\0\0\84\0q-runtime.panic\0\84\0q.type.func(interface {})\0\1f\0þ\ 1\0\0\0\91-q.®\ 1\0\ 2\0\0\95°ÿÿÿ(s\b\ 1\13\84\0q/"".jsonbytes\0®\ 1\0\ 2\0\0\ 1\13\91/q\br\0\0\ 2\0\0\95¸ÿÿÿ(s\b\ 1\13r\0\0\ 2\0\0\ 1\13\95\b\0\0\0/q\br\0\0\ 2\0\0\95¼ÿÿÿ(s\b\ 1\13r\0\0\ 2\0\0\ 1\13\95\f\0\0\0/q\b\84\0q0type.*"".JSONResponse\0®\ 1\ 2\ 2\0\0\93q\00x\13\11\14\8f\84\0q1"".jsondata\0\84\0q\ 1type."".JSONResponse\0«\ 1\ 2\ 2\0\0\911q\ 1\ 1\13®\ 1\ 2\ 2\0\0\ 1\13\15\b\0\0\0\18\8f\84\0q\ 2runtime.convT2E\0\84\0q\ 3type.func(*uint8, *"".JSONResponse) interface {}\0\1f\0\ 2\ 2\0\0\0\91\ 2q\ 3«\ 1\ 2\ 2\0\0\ 5\10\0\0\0\8f\ 1\16\84\0\8f\ 4encoding/json.v\0«\ 1\ 2\ 2\0\0\15\10\0\0\0\ 4\8f\ 1\17²\ 1\ 2\ 2\0\0\0\0²\ 1\ 2\ 2\0\0\0\0\84\0\8f\ 5encoding/json.data\0«\ 1\ 2\ 2\0\0\11\ 5\8f\ 1\13®\ 1\ 2\ 2\0\0\91/q\b\ 1\15®\ 1\ 2\ 2\0\0\ 1\15\ 1\8er\0\ 2\ 2\0\0\95\b\0\0\0/q\b\ 1\15r\0\ 2\ 2\0\0\ 1\15\ 5\b\0\0\0\8er\0\ 2\ 2\0\0\95\f\0\0\0/q\b\ 1\15r\0\ 2\ 2\0\0\ 1\15\ 5\f\0\0\0\8e\84\0q\ 6encoding/json.Unmarshal\0\84\0q\atype.func([]uint8, interface {}) error\0\1f\0\ 2\ 2\0\0\0\91\ 6q\a®\ 1\ 2\ 2\0\0\ 5 \0\0\0\8f\ 1\13®\ 1\ 2\ 2\0\0\ 1\13\95Èÿÿÿ)s*®\ 1\ 2\ 2\0\0\ 5(\0\0\0\8f\ 1\13®\ 1\ 2\ 2\0\0\ 1\13\95Ðÿÿÿ)s*«\ 1\ 2\ 2\0\0\95Èÿÿÿ)s*\ 1\13¢\ 1\ 2\ 2\0\0\ 1\8e\ 1uQ\0\ 2\ 2\0\0\0\ 5G\a\0\0\ 1\ 3\ 2\0\0\11\18\8f\ 1\13®\ 1\ 3\ 2\0\0\95Èÿÿÿ)s*\ 1\15®\ 1\ 3\ 2\0\0\ 1\15\ 1\8e®\ 1\ 3\ 2\0\0\95Ðÿÿÿ)s*\ 1\15®\ 1\ 3\ 2\0\0\ 1\15\ 5\b\0\0\0\8e\1f\0\ 3\ 2\0\0\0\91+q,«\ 1\ 3\ 2\0\0\ 5\10\0\0\0\8f\ 1\16«\ 1\ 3\ 2\0\0\ 1\8f\ 1\17²\ 1\ 3\ 2\0\0\0\0²\ 1\ 3\ 2\0\0\0\0\1f\0\ 3\ 2\0\0\0\91-q.\84\0q\b"".gobinit\0\1f\0\ 5\ 2\0\0\0\91\bq\vª\0\ 6\ 2\0\0\0\0\84\0q  "".jsondec\0ã\0\17\ 2\0\0\91      q\v\ 5@\0\0\0\ 1\18\ 2\0\0\93q\0\ 1x\13\11\14\8f\84\0q
+type.func(*uint8) *"".JSONResponse\0\1f\0\18\ 2\0\0\0\91\15q
\ 1\18\ 2\0\0\ 5\b\0\0\0\8f\ 1\13®\ 1\19\ 2\0\0\93q\00x\13\11\14\8f®\ 1\19\ 2\0\0\ 1\13\15\b\0\0\0\18\8f\1f\0\19\ 2\0\0\0\91\ 2q\ 3«\ 1\19\ 2\0\0\ 5\10\0\0\0\8f\ 1\16«\ 1\19\ 2\0\0\15\10\0\0\0\ 4\8f\ 1\17²\ 1\19\ 2\0\0\0\0²\ 1\19\ 2\0\0\0\0«\ 1\19\ 2\0\0\11\ 5\8f\ 1\13\84\0q\vtype.[]uint8\0®\ 1\19\ 2\0\0\91/q\v\ 1\15®\ 1\19\ 2\0\0\ 1\15\ 1\8er\0\19\ 2\0\0\95\b\0\0\0/q\v\ 1\15r\0\19\ 2\0\0\ 1\15\ 5\b\0\0\0\8er\0\19\ 2\0\0\95\f\0\0\0/q\v\ 1\15r\0\19\ 2\0\0\ 1\15\ 5\f\0\0\0\8e\1f\0\19\ 2\0\0\0\91\ 6q\a®\ 1\19\ 2\0\0\ 5 \0\0\0\8f\ 1\13®\ 1\19\ 2\0\0\ 1\13\95ðÿÿÿ)s*®\ 1\19\ 2\0\0\ 5(\0\0\0\8f\ 1\13®\ 1\19\ 2\0\0\ 1\13\95øÿÿÿ)s*«\ 1\19\ 2\0\0\95ðÿÿÿ)s*\ 1\13¢\ 1\19\ 2\0\0\ 1\8e\ 1uQ\0\19\ 2\0\0\0\ 5n\a\0\0\ 1\1a\ 2\0\0\11\18\8f\ 1\13®\ 1\1a\ 2\0\0\95ðÿÿÿ)s*\ 1\15®\ 1\1a\ 2\0\0\ 1\15\ 1\8e®\ 1\1a\ 2\0\0\95øÿÿÿ)s*\ 1\15®\ 1\1a\ 2\0\0\ 1\15\ 5\b\0\0\0\8e\1f\0\1a\ 2\0\0\0\91+q,«\ 1\1a\ 2\0\0\ 5\10\0\0\0\8f\ 1\16«\ 1\1a\ 2\0\0\ 1\8f\ 1\17²\ 1\1a\ 2\0\0\0\0²\ 1\1a\ 2\0\0\0\0\1f\0\1a\ 2\0\0\0\91-q.ª\0\1d\ 2\0\0\0\0\84\0q\f"".jsonenc\0\84\0q\rtype.func()\0ã\0\1f\ 2\0\0\91\fq\r\ 5P\0\0\0\ 1 \ 2\0\0\93q\00x\13\11\14\8f«\ 1 \ 2\0\0\911q\ 1\ 1\13®\ 1 \ 2\0\0\ 1\13\15\b\0\0\0\18\8f\1f\0 \ 2\0\0\0\91\ 2q\ 3«\ 1 \ 2\0\0\ 5\10\0\0\0\8f\ 1\16«\ 1 \ 2\0\0\11\ 4\8f\ 1\17²\ 1 \ 2\0\0\0\0²\ 1 \ 2\0\0\0\0\84\0q\ eencoding/json.Marshal\0\84\0q\ ftype.func(interface {}) ([]uint8, error)\0\1f\0 \ 2\0\0\0\91\ eq\ f«\ 1 \ 2\0\0\ 5\10\0\0\0\8f\ 1\13®\ 1 \ 2\0\0\ 1\8e\ 1\15\84\0s\10"".buf\0®\ 1 \ 2\0\0\ 1\15\95àÿÿÿ\10s\vr\0 \ 2\0\0\ 5\b\0\0\0\8e\ 1\15r\0 \ 2\0\0\ 1\15\95èÿÿÿ\10s\vr\0 \ 2\0\0\ 5\f\0\0\0\8e\ 1\15r\0 \ 2\0\0\ 1\15\95ìÿÿÿ\10s\v«\ 1 \ 2\0\0\ 5 \0\0\0\8f\ 1\13®\ 1 \ 2\0\0\ 1\8e\ 1\15®\ 1 \ 2\0\0\ 1\15\95ðÿÿÿ)s*®\ 1 \ 2\0\0\ 5\b\0\0\0\8e\ 1\15®\ 1 \ 2\0\0\ 1\15\95øÿÿÿ)s*«\ 1!\ 2\0\0\95ðÿÿÿ)s*\ 1\13¢\ 1!\ 2\0\0\ 1\8e\ 1uQ\0!\ 2\0\0\0\ 5\93\a\0\0\ 1"\ 2\0\0\11\18\8f\ 1\13®\ 1"\ 2\0\0\95ðÿÿÿ)s*\ 1\15®\ 1"\ 2\0\0\ 1\15\ 1\8e®\ 1"\ 2\0\0\95øÿÿÿ)s*\ 1\15®\ 1"\ 2\0\0\ 1\15\ 5\b\0\0\0\8e\1f\0"\ 2\0\0\0\91+q,«\ 1"\ 2\0\0\ 5\10\0\0\0\8f\ 1\16«\ 1"\ 2\0\0\ 1\8f\ 1\17²\ 1"\ 2\0\0\0\0²\ 1"\ 2\0\0\0\0\1f\0"\ 2\0\0\0\91-q.ª\0%\ 2\0\0\0\0\84\0q\11"".BenchmarkJSONEncode\0\84\0q\12type.func(*testing.B)\0ã\0'\ 2\0\0\91\11q\12E\b\0\0\0\b\0\0\0u\84\0t\13"".b\0\84\0q\14type.*testing.B\0®\ 1(\ 2\0\0\91\13t\14\ 1\11r\0(\ 2\0\0\95\b\0\0\0/q\v\ 1\10¯\ 1(\ 2\0\0\ 1\10\ 1\10®\ 1(\ 2\0\0\ 1\10\ 5p\0\0\0\8c\84\0q\15type.int\0r\0)\ 2\0\0\ 1u\81\10\15Y\0)\ 2\0\0\0\ 5\9c\a\0\0pD\0)\ 2\0\0\0\81\10\15®\ 1)\ 2\0\0\91\13t\14\ 1\15r\0)\ 2\0\0\ 5P\0\0\0\90\ 1\13\84\0s\16"".i\0r\0)\ 2\0\0\ 1\10\95üÿÿÿ\16s\15&\0)\ 2\0\0\ 1\13\ 1\10U\0)\ 2\0\0\0\ 5¤\a\0\0p\1f\0*\ 2\0\0\0\91\fq\rr\0*\ 2\0\0\95üÿÿÿ\16s\15\ 1\10Y\0)\ 2\0\0\0\ 5\9b\a\0\0\0,\ 2\0\0\0\0\84\0q\17"".BenchmarkJSONDecode\0ã\0.\ 2\0\0\91\17q\12E\b\0\0\0\b\0\0\0\ 1/\ 2\0\0\91\13t\14\ 1\11r\0/\ 2\0\0\95\b\0\0\0/q\v\ 1\10¯\ 1/\ 2\0\0\ 1\10\ 1\10®\ 1/\ 2\0\0\ 1\10\ 5p\0\0\0\8cr\00\ 2\0\0\ 1u\81\10\15Y\00\ 2\0\0\0\ 5­\a\0\0pD\00\ 2\0\0\0\81\10\15®\ 10\ 2\0\0\91\13t\14\ 1\15r\00\ 2\0\0\ 5P\0\0\0\90\ 1\13r\00\ 2\0\0\ 1\10\95üÿÿÿ\16s\15&\00\ 2\0\0\ 1\13\ 1\10U\00\ 2\0\0\0\ 5µ\a\0\0p\1f\01\ 2\0\0\0\91 q\rr\01\ 2\0\0\95üÿÿÿ\16s\15\ 1\10Y\00\ 2\0\0\0\ 5¬\a\0\0\03\ 2\0\0\0\0\84\0q\18"".revcomp\0\84\0q\19type.func([]uint8)\0ã\0q        \0\0\91\18q\19\0\0\0\10\0\0\0u\84\0t\1a"".data\0®\ 1\0\0\91\1at\v\ 1\13\84\0s\ebytes.buf\0®\ 1r       \0\0\ 1\13\95¨ÿÿÿ\es\vr\0\0\0\95\b\0\0\0\1at\v\ 1\13r\0\0\0\ 1\13\95°ÿÿÿ\es\vr\0\0\0\95\f\0\0\0\1at\v\ 1\13r\0\0\0\ 1\13\95´ÿÿÿ\es\v\84\0s\1c""..r0\0\84\0q\1dtype.*bytes.Buffer\0®\ 1r       \0\0\ 1u\95èÿÿÿ\1cs\1d\84\0q\1etype.bytes.Buffer\0\84\0q\1ftype.uint8\0\84\0\8f runtime.typ\0®\ 1r    \0\0\93q\0\1ex\1f\11 \8f\84\0q!runtime.new\0\84\0q"type.func(*uint8) *bytes.Buffer\0\1f\0r      \0\0\0\91!q"®\ 1r      \0\0\ 5\b\0\0\0\8f\ 1\17®\ 1r   \0\0\ 1\17\ 1\12®\ 1r       \0\0\ 1u\ 1\10®\ 1r       \0\0\ 5\f\0\0\0u\ 1\11¨\0r   \0\0\0\0Æ\ 1\0\0\0\0®\ 1\0\0\95¨ÿÿÿ\es\v\ 1\15®\ 1\0\0\ 1\15\ 1\8dr\0r       \0\0\95°ÿÿÿ\es\v\ 1\15r\0\0\0\ 1\15\ 5\b\0\0\0\8dr\0r   \0\0\95´ÿÿÿ\es\v\ 1\15r\0\0\0\ 1\15\ 5\f\0\0\0\8d®\ 1r   \0\0\ 1\12\95èÿÿÿ\1cs\1d®\ 1\0\0\93q\0\1dx\1f\11 \8f\84\0q#type.io.Reader\0\84\0\8f$runtime.typ2\0®\ 1r      \0\0\93q\0#x\1f\15\b\0\0\0$\8f®\ 1r      \0\0\95èÿÿÿ\1cs\1d\ 1\13\84\0\8f%runtime.elem\0®\ 1r        \0\0\ 1\13\15\10\0\0\0%\8f\84\0q&runtime.convT2I\0\84\0q'type.func(*uint8, *uint8, *bytes.Buffer) io.Reader\0\1f\0r       \0\0\0\91&q'«\ 1r      \0\0\ 5\18\0\0\0\8f\ 1\16\84\0\8f(bufio.rd\0«\ 1r      \0\0\11(\8f\ 1\17²\ 1r      \0\0\0\0²\ 1\0\0\0\0\84\0q)bufio.NewReader\0\84\0q*type.func(io.Reader) *bufio.Reader\0\1f\0r      \0\0\0\91)q*®\ 1r      \0\0\ 5\10\0\0\0\8f\ 1\13\84\0s+"".in\0\84\0q,type.*bufio.Reader\0®\ 1r  \0\0\ 1\13\95\90ÿÿÿ+s,\84\0q-io/ioutil.Discard\0\84\0q.type.io.Writer\0®\ 1s        \0\0\91-q.\ 1\13\84\0s/"".out\0®\ 1s  \0\0\ 1\13\95\80ÿÿÿ/s.®\ 1\0\0\95\b\0\0\0-q.\ 1\13®\ 1\0\0\ 1\13\95\88ÿÿÿ/s.®\ 1\0\0\93q\0\vx\1f\11 \8f\84\0\8f0runtime.nel\0®\ 1t  \0\0\ 5\0\0\10\0u\15\b\0\0\00\8f\84\0\8f1runtime.cap\0®\ 1t      \0\0\ 5\0\0\10\0u\15\10\0\0\01\8f\84\0q\ 1runtime.makeslice\0\84\0q\ 2type.func(*uint8, int64, int64) []uint8\0\1f\0t    \0\0\0\91\ 1q\ 2®\ 1t      \0\0\ 5\18\0\0\0\8f\ 1\13®\ 1t   \0\0\ 1\13\95¸ÿÿÿ\10s\vr\0\0\0\ 5 \0\0\0\8f\ 1\13r\0t   \0\0\ 1\13\95Àÿÿÿ\10s\vr\0\0\0\ 5$\0\0\0\8f\ 1\13r\0t   \0\0\ 1\13\95Äÿÿÿ\10s\v®\ 1\0\0\95\90ÿÿÿ+s,\ 1\13\84\0\8f\ 3bufio.b\0®\ 1u     \0\0\ 1\13\11\ 3\8f\84\0\8f\ 4bufio.delim\0q\0u      \0\0\ 5
+\0\0\0u\15\b\0\0\0\ 4\8f\84\0q\ 5bufio.(*Reader).ReadSlice\0\1f\0u   \0\0\0\11\ 5q\84\0\8f\ 6bufio.line\0«\ 1u        \0\0\15\10\0\0\0\ 6\8f\ 1\13®\ 1u  \0\0\ 1\8e\ 1\15\84\0s\a"".line\0®\ 1u   \0\0\ 1\15\95\98ÿÿÿ\as\vr\0\0\0\ 5\b\0\0\0\8e\ 1\15r\0u   \0\0\ 1\15\95 ÿÿÿ\as\vr\0\0\0\ 5\f\0\0\0\8e\ 1\15r\0u   \0\0\ 1\15\95¤ÿÿÿ\as\v\84\0\8f\bbufio.err\0«\ 1u   \0\0\15 \0\0\0\b\8f\ 1\13®\ 1u  \0\0\ 1\8e\ 1\15\84\0s       "".err\0\84\0q
+type.error\0®\ 1\0\0\ 1\15\95Øÿÿÿ       s
\ 1u    \0\0\ 5\b\0\0\0\8e\ 1\15®\ 1u   \0\0\ 1\15\95àÿÿÿ       s
\ 1v    \0\0\95Øÿÿÿ s
+\ 1\13¢\ 1v  \0\0\ 1\8e\ 1uZ\0v       \0\0\0\ 5ä\b\0\0p\84\0\8f\vio.p\0«\ 1w   \0\0\15\b\0\0\0\v\8f\ 1\13\84\0q\ftype.[]uint8\0®\ 1\0\0\95\98ÿÿÿ\as\f\ 1\15®\ 1\0\0\ 1\15\ 1\8er\0w       \0\0\95 ÿÿÿ\as\f\ 1\15r\0\0\0\ 1\15\ 5\b\0\0\0\8er\0w   \0\0\95¤ÿÿÿ\as\f\ 1\15r\0\0\0\ 1\15\ 5\f\0\0\0\8e«\ 1w   \0\0\95\80ÿÿÿ/s.\ 1\13®\ 1\0\0\ 5\b\0\0\0\8e\ 1\15®\ 1w   \0\0\ 1\15\ 1\8f®\ 1w       \0\0\ 1\8e\ 1\13®\ 1w       \0\0\ 5 \0\0\0\8e\ 1\13\1f\0w   \0\0\0\ 1\13\84\0s\r"".nchar\0r\0z   \0\0\ 1u\95pÿÿÿ\rs\15r\0\0\0\95Àÿÿÿ\10s\f\ 1\13\84\0s\ e"".w\0r\0{        \0\0\ 1\13\95xÿÿÿ\ es\15®\ 1\0\0\95\90ÿÿÿ+s,\ 1\13®\ 1\0\0\ 1\13\11\ 3\8fq\0}      \0\0\ 5
+\0\0\0u\15\b\0\0\0\ 4\8f\1f\0\0\0\0\11\ 5qr\0}       \0\0\95xÿÿÿ\ es\15\ 1\1cr\0\0\0\95Äÿÿÿ\10s\f\ 1\19®\ 1\0\0\95¸ÿÿÿ\10s\f\ 1\17r\0\0\0\95Àÿÿÿ\10s\f\ 1\16«\ 1\0\0\15\10\0\0\0\ 6\8f\ 1\13®\ 1}  \0\0\ 1\8e\ 1\15®\ 1}       \0\0\ 1\15\95\98ÿÿÿ\as\fr\0\0\0\ 5\b\0\0\0\8e\ 1\15r\0}   \0\0\ 1\15\95 ÿÿÿ\as\fr\0\0\0\ 5\f\0\0\0\8e\ 1\15r\0}   \0\0\ 1\15\95¤ÿÿÿ\as\f«\ 1\0\0\15 \0\0\0\b\8f\ 1\13®\ 1}  \0\0\ 1\8e\ 1\15®\ 1}       \0\0\ 1\15\95Øÿÿÿ       s
\ 1}    \0\0\ 5\b\0\0\0\8e\ 1\15®\ 1}   \0\0\ 1\15\95àÿÿÿ       s
\ 1~    \0\0\95Øÿÿÿ s
+\ 1\13¢\ 1~  \0\0\ 1\8e\ 1uZ\0~       \0\0\0\ 5\96\b\0\0\ 1~    \0\0\95\98ÿÿÿ\as\f\ 1\15&\0\0\0\ 5\b\0\0\0\90\ 1uT\0~   \0\0\0\ 5%\b\0\0p\84\0q\ fruntime.panicindex\0\1f\0~     \0\0\0\11\ f\ 1~       \0\0\ 1\90\ 1\15q\0~       \0\0\ 1\90\ 1\13%\0~       \0\0\ 1\13\ 5>\0\0\0uQ\0~   \0\0\0\ 5\96\b\0\0pr\0\81    \0\0\95 ÿÿÿ\as\f\ 1\13/\0\81 \0\0\0\ 1\13¯\ 1\81        \0\0\ 1\13\ 1\13°\ 1\81       \0\0\95¤ÿÿÿ\as\f\ 1\15¢\ 1\81 \0\0\ 1\13\ 1\15V\0\81       \0\0\0\ 50\b\0\0p\84\0q\10runtime.panicslice\0\1f\0\81     \0\0\0\11\10qr\0\81       \0\0\ 1\13\95 ÿÿÿ\as\fr\0\81 \0\0\95¤ÿÿÿ\as\f\ 1\13r\0\81 \0\0\ 1\13\95¤ÿÿÿ\as\f®\ 1\81 \0\0\95\98ÿÿÿ\as\f\ 1\15®\ 1\81 \0\0\ 1\15\95\98ÿÿÿ\as\fr\0\82 \0\0\95 ÿÿÿ\as\f\ 1\13    \0\82      \0\0\ 1\13\95pÿÿÿ\rs\15r\0\83 \0\0\95 ÿÿÿ\as\f\ 1\13r\0\83 \0\0\95pÿÿÿ\rs\15\ 1\18r\0\83 \0\0\ 5\89\88\88\88u\ 1\10>\0\83   \0\0\ 1\18\0   \0\83      \0\0\ 1\18\ 1\12\0\83       \0\0\ 5\ 5\0\0\0u\ 1\12\0\83   \0\0\ 5\1f\0\0\0u\ 1\18Ý\0\83   \0\0\ 1\18\ 1\12  \0\83      \0\0\ 1\12\ 1\13  \0\83      \0\0\ 5\80\0\0\0u\ 1\13&\0\83   \0\0\ 1\13\ 1\1cW\0\83       \0\0\0\ 5x\b\0\0pr\0\84    \0\0\81\16\f\ 1\10r\0\84      \0\0\ 5\ 5\0\0\0u\ 1\15>\0\84   \0\0\ 1\15\ 1\10®\ 1\84       \0\0\93q\0\fx\1f\11 \8f¯\ 1\84  \0\0\ 1\10\ 1\13®\ 1\84       \0\0\ 1\13\15\b\0\0\00\8f¯\ 1\84  \0\0\ 1\10\ 1\13®\ 1\84       \0\0\ 1\13\15\10\0\0\01\8f\1f\0\84  \0\0\0\91\ 1q\ 2\84\0s\11"".buf\0r\0\84   \0\0\95Àÿÿÿ\11s\f\ 1\18®\ 1\84 \0\0\ 5\18\0\0\0\8f\ 1\17r\0\84   \0\0\ 5 \0\0\0\8f\ 1\13r\0\84   \0\0\ 5$\0\0\0\8f\ 1\16r\0\85   \0\0\81\13\f\ 1\10Ý\0\85      \0\0\ 1\18\ 1\13¯\ 1\85       \0\0\ 1\13\ 1\13°\ 1\85       \0\0\81\10\f\ 1\15¢\ 1\85      \0\0\ 1\13\ 1\15V\0\85       \0\0\0\ 5W\b\0\0p\1f\0\85    \0\0\0\11\10qr\0\85       \0\0\81\10\f\ 1\12\84\0s\12"".nbuf\0r\0\85  \0\0\ 1\10\95Ðÿÿÿ\12s\fÝ\0\85 \0\0\ 1\13\ 1\12r\0\85       \0\0\81\16\f\ 1\11r\0\85      \0\0\ 1\16\95Ôÿÿÿ\12s\fÝ\0\85 \0\0\ 1\13\ 1\11\9a\ 1\85       \0\0\81\17\f\ 1\13®\ 1\85      \0\0\ 1\17\95Èÿÿÿ\12s\f®\ 1\85 \0\0\ 1\13\ 1\10\84\0\8f\13runtime.to\0«\ 1\85        \0\0\11\13\8f\ 1\13®\ 1\85      \0\0\ 1\10\ 1\8er\0\85       \0\0\ 1\12\ 5\b\0\0\0\8er\0\85   \0\0\ 1\11\ 5\f\0\0\0\8e\84\0\8f\14runtime.fr\0«\ 1\85    \0\0\15\10\0\0\0\14\8f\ 1\13®\ 1\85  \0\0\95¸ÿÿÿ\11s\f\ 1\15®\ 1\85 \0\0\ 1\15\ 1\8er\0\85       \0\0\ 1\18\ 5\b\0\0\0\8er\0\85   \0\0\95Äÿÿÿ\11s\f\ 1\15r\0\85 \0\0\ 1\15\ 5\f\0\0\0\8e\84\0\8f\15runtime.wid\0r\0\85   \0\0\ 5\ 1\0\0\0u\15 \0\0\0\15\8f\84\0q\16runtime.copy\0\84\0q\17type.func([]uint8, []uint8, uint32) int\0\1f\0\85 \0\0\0\91\16q\17\84\0q\18type.int\0r\0\85 \0\0\95xÿÿÿ\ es\18\ 1\1cr\0\85 \0\0\95Ðÿÿÿ\12s\f\ 1\13r\0\86 \0\0\81\13\f\ 1\16r\0\86      \0\0\95Àÿÿÿ\11s\f\ 1\15Ý\0\86 \0\0\ 1\15\ 1\13  \0\86      \0\0\ 1\13\81\1c\18r\0\86      \0\0\ 1\1c\95xÿÿÿ\ es\18®\ 1\87 \0\0\95Èÿÿÿ\12s\f\ 1\17®\ 1\87 \0\0\ 1\17\95¸ÿÿÿ\11s\fr\0\87 \0\0\ 1\16\95Àÿÿÿ\11s\fr\0\87 \0\0\95Ôÿÿÿ\12s\f\ 1\13r\0\87 \0\0\ 1\13\95Äÿÿÿ\11s\f®\ 1\8b \0\0\95\98ÿÿÿ\as\f\ 1\13\84\0s\19"".autotmp_0075\0®\ 1\8b     \0\0\ 1\13\15ðÿÿÿ\19sr\0\8b  \0\0\95 ÿÿÿ\as\f\ 1\13r\0\8b \0\0\ 1\13\15øÿÿÿ\19sr\0\8b  \0\0\95¤ÿÿÿ\as\f\ 1\13r\0\8b \0\0\ 1\13\15üÿÿÿ\19sr\0\8b  \0\0\ 1u\ 1\10r\0\8b       \0\0\15øÿÿÿ\19s\ 1\e«\ 1\8b  \0\0\15ðÿÿÿ\19s\ 1\13®\ 1\8b  \0\0\ 1\8e\ 1\11Y\0\8b       \0\0\0\ 5\84\b\0\0pD\0\8b    \0\0\0\ 1\10r\0\8b        \0\0\ 1\e\ 1\15&\0\8b       \0\0\ 1\10\ 1\eR\0\8b       \0\0\0\ 5
+\b\0\0pq\0\8b        \0\0\ 1\8c\ 1\15q\0\8b       \0\0\ 1\15\81\12\1fE\0\8b      \0\0\0\ 1\11/\0\8c        \0\0\0\81\1c\18r\0\8d       \0\0\ 1\1c\95xÿÿÿ\ es\18¯\ 1\8d \0\0\ 1\1c\ 1\13&\0\8d       \0\0\ 1\13\81\16\fO\0\8d      \0\0\0\ 5\90\b\0\0p\1f\0\8d    \0\0\0\11\ fqq\0\8d       \0\0\81\12\1f\ 1\19w\0\8d      \0\0\ 1\19\ 1\19\84\0q\1a"".revCompTable\0\84\0q\etype.[256]uint8\0«\ 1\8d       \0\0\91\1aq\e\ 1\1aq\0\8d     \0\0\ 3\19\ 1\95\ 1\18q\0\8d     \0\0\ 1\18\ 3\13\ 1\92Y\0\8b     \0\0\0\ 5\83\b\0\0pr\0\93    \0\0\ 1u\81\10\18Y\0\94      \0\0\0\ 5\99\b\0\0p       \0\94      \0\0\ 5<\0\0\0u\81\1c\18&\0\94  \0\0\ 1\16\ 1\1cU\0\94       \0\0\0\ 5Ó\b\0\0pr\0\95    \0\0\81\10\18\ 1\11 \0\95      \0\0\ 5<\0\0\0u\ 1\11\84\0s\1c"".i\0r\0\95  \0\0\ 1\10\95tÿÿÿ\1cs\18¯\ 1\95 \0\0\ 1\10\ 1\13¯\ 1\95       \0\0\ 1\11\ 1\15°\ 1\95       \0\0\81\19\f\ 1\18¢\ 1\95      \0\0\ 1\15\ 1\18V\0\95       \0\0\0\ 5¤\b\0\0p\1f\0\95    \0\0\0\11\10\ 1\95       \0\0\ 1\13\ 1\15T\0\95       \0\0\0\ 5£\b\0\0\0\95    \0\0\ 1\13\ 1\15r\0\95       \0\0\ 1\15\ 1\er\0\95       \0\0\81\19\f\ 1\1aÝ\0\95      \0\0\ 1\13\ 1\1a\9a\ 1\95       \0\0\81\17\f\ 1\13®\ 1\95      \0\0\ 1\13\ 1\18\84\0s\1d"".j\0r\0\95      \0\0\ 1\1c\95|ÿÿÿ\1ds\18¯\ 1\95 \0\0\ 1\1c\ 1\13°\ 1\95       \0\0\81\16\f\ 1\15¢\ 1\95      \0\0\ 1\13\ 1\15V\0\95       \0\0\0\ 5²\b\0\0p\1f\0\95    \0\0\0\11\10qr\0\95       \0\0\81\16\f\ 1\12Ý\0\95      \0\0\ 1\13\ 1\12r\0\95       \0\0\81\19\f\ 1\11Ý\0\95      \0\0\ 1\13\ 1\11\9a\ 1\95       \0\0\81\17\f\ 1\13®\ 1\95      \0\0\ 1\13\ 1\10«\ 1\95       \0\0\15\10\0\0\0\14\8f\ 1\13®\ 1\95  \0\0\ 1\10\ 1\8er\0\95       \0\0\ 1\12\ 5\b\0\0\0\8er\0\95   \0\0\ 1\11\ 5\f\0\0\0\8e«\ 1\95   \0\0\11\13\8f\ 1\13®\ 1\95      \0\0\ 1\18\ 1\8er\0\95       \0\0\ 1\e\ 5\b\0\0\0\8er\0\95   \0\0\ 1\1a\ 5\f\0\0\0\8er\0\95   \0\0\ 5\ 1\0\0\0u\15 \0\0\0\15\8f\1f\0\95      \0\0\0\91\16q\17r\0\95      \0\0\95|ÿÿÿ\1ds\18\ 1\1cr\0\95 \0\0\95Äÿÿÿ\11s\f\ 1\19®\ 1\95 \0\0\95¸ÿÿÿ\11s\f\ 1\17r\0\95 \0\0\95tÿÿÿ\1cs\18\ 1\13r\0\95 \0\0\95Àÿÿÿ\11s\f\ 1\16r\0\95 \0\0\ 5(\0\0\0\8f\ 1\11r\0\96   \0\0\81\13\18\ 1\10 \0\96      \0\0\ 1\11\ 1\13¯\ 1\96       \0\0\ 1\13\ 1\13&\0\96       \0\0\ 1\13\81\16\fO\0\96      \0\0\0\ 5Î\b\0\0p\1f\0\96    \0\0\0\11\ fqq\0\96       \0\0\ 5
+\0\0\0u\ 3\13\ 1\92r\0\97    \0\0\81\11\18\ 1\13D\0\97      \0\0\0\ 1\13   \0\97      \0\0\ 1\13\81\10\18Y\0\94      \0\0\0\ 5\98\b\0\0\ 1\99    \0\0\ 1\10\ 1\13°\ 1\99       \0\0\81\19\f\ 1\15¢\ 1\99      \0\0\ 1\13\ 1\15V\0\99       \0\0\0\ 5Ø\b\0\0p\1f\0\99    \0\0\0\11\10qr\0\99       \0\0\ 1\13\ 1\12«\ 1\99       \0\0\15\b\0\0\0\v\8f\ 1\13®\ 1\99  \0\0\ 1\17\ 1\8er\0\99       \0\0\ 1\12\ 5\b\0\0\0\8er\0\99   \0\0\ 1\19\ 5\f\0\0\0\8e«\ 1\99   \0\0\95\80ÿÿÿ/s.\ 1\13®\ 1\99 \0\0\ 5\b\0\0\0\8e\ 1\15®\ 1\99   \0\0\ 1\15\ 1\8f®\ 1\99       \0\0\ 1\8e\ 1\13®\ 1\99       \0\0\ 5 \0\0\0\8e\ 1\13\1f\0\99   \0\0\0\ 1\13Y\0v        \0\0\0\ 5÷\a\0\0\0\9b    \0\0\0\0\84\0q\1e"".BenchmarkRevcomp25M\0\84\0q\1ftype.func(*testing.B)\0ã\0\9d    \0\0\91\1eq\1fE\18\0\0\0\b\0\0\0u\84\0t "".b\0\84\0q!type.*testing.B\0®\ 1\9e        \0\0\91 t!\ 1\11\84\0q""".fasta25m\0r\0\9e     \0\0\95\b\0\0\0"q\f\ 1\10¯\ 1\9e \0\0\ 1\10\ 1\10®\ 1\9e       \0\0\ 1\10\ 5p\0\0\0\8cr\0\9f   \0\0\ 1u\81\10\18Y\0\9f      \0\0\0\ 5í\b\0\0pD\0\9f    \0\0\0\81\10\18®\ 1\9f       \0\0\91 t!\ 1\15r\0\9f     \0\0\ 5P\0\0\0\90\ 1\13r\0\9f   \0\0\ 1\10\95üÿÿÿ\1cs\18&\0\9f \0\0\ 1\13\ 1\10U\0\9f       \0\0\0\ 5ü\b\0\0p\84\0\8f#"".data\0«\ 1         \0\0\11#\8f\ 1\13®\ 1       \0\0\91"q\f\ 1\15®\ 1      \0\0\ 1\15\ 1\8er\0        \0\0\95\b\0\0\0"q\f\ 1\15r\0  \0\0\ 1\15\ 5\b\0\0\0\8er\0    \0\0\95\f\0\0\0"q\f\ 1\15r\0  \0\0\ 1\15\ 5\f\0\0\0\8e\84\0q$"".revcomp\0\84\0q%type.func([]uint8)\0\1f\0      \0\0\0\91$q%r\0       \0\0\95üÿÿÿ\1cs\18\ 1\10Y\0\9f \0\0\0\ 5ì\b\0\0\0¢    \0\0\0\0\84\0q&"".stripTabNL\0\84\0q'type.func(int32) int32\0ã\0Ï    \0\0\91&q'E\0\0\0\0\10\0\0\0u\84\0t("".r\0\84\0q)type.int32\0r\0Ï     \0\0\91(t)\ 1\10&\0Р    \0\0\ 1\10\ 5   \0\0\0uQ\0Р\0\0\0\ 5\ 4   \0\0p&\0Р \0\0\ 1\10\ 5
+\0\0\0uQ\0Р       \0\0\0\ 5\ 4   \0\0pY\0Р \0\0\0\ 5\ 6   \0\0p\84\0t*""..noname\0r\0Ñ   \0\0\ 5ÿÿÿÿu\15\b\0\0\0*tª\0Ñ      \0\0\0\0r\0Ó \0\0\ 1\10\15\b\0\0\0*tª\0Ó  \0\0\0\0\84\0q+"".init·3\0\84\0q,type.func()\0ã\0Ø  \0\0\91+q,\ 5x\0\0\0u\84\0q-type.bytes.Buffer\0\84\0q.type.uint8\0\84\0\8f/runtime.typ\0®\ 1Ù    \0\0\93q\0-x.\11/\8f\84\0q0runtime.new\0\84\0q1type.func(*uint8) *bytes.Buffer\0\1f\0Ù      \0\0\0\910q1®\ 1Ù      \0\0\ 5\b\0\0\0\8f\ 1\13\84\0q\ 1type.*bytes.Buffer\0®\ 1Ú    \0\0\93q\0\ 1x.\11/\8f\84\0q\ 2type.io.Writer\0\84\0\8f\ 3runtime.typ2\0®\ 1Ú      \0\0\93q\0\ 2x.\15\b\0\0\0\ 3\8f\84\0s\ 4"".&buf\0®\ 1Ú  \0\0\ 1\13\15Øÿÿÿ\ 4s\84\0\8f\ 5runtime.elem\0®\ 1Ú \0\0\ 1\13\15\10\0\0\0\ 5\8f\84\0q\ 6runtime.convT2I\0\84\0q\atype.func(*uint8, *uint8, *bytes.Buffer) io.Writer\0\1f\0Ú       \0\0\0\91\ 6q\a®\ 1Ú      \0\0\ 5\18\0\0\0\8f\ 1\15\84\0s\b"".autotmp_0086\0®\ 1Ú       \0\0\ 1\15\15ðÿÿÿ\b\ 1Ú  \0\0\ 5 \0\0\0\8f\ 1\15®\ 1Ú   \0\0\ 1\15\15øÿÿÿ\bs\84\0q  type.*"".JSONResponse\0®\ 1Ú       \0\0\93q\0   x.\11/\8f\84\0q
+"".jsondata\0\84\0q\vtype."".JSONResponse\0«\ 1Ú       \0\0\91
+q\v\ 1\15®\ 1Ú        \0\0\ 1\15\15\b\0\0\0\ 5\8f\84\0q\fruntime.convT2E\0\84\0q\rtype.func(*uint8, *"".JSONResponse) interface {}\0\1f\0Ú \0\0\0\91\fq\r«\ 1Ú      \0\0\ 5\10\0\0\0\8f\ 1\16\84\0\8f\ etext/template.data\0«\ 1Ú    \0\0\15\18\0\0\0\ e\8f\ 1\17×\0Ú  \0\0\0\0\9a\ 1Ú \0\0\ 5\b\0\0\0u\ 1\16\9a\ 1Ú   \0\0\ 5\b\0\0\0u\ 1\17®\ 1Ú   \0\0\ 5\ 2\0\0\0u\ 1\11¨\0Ú   \0\0\0\0²\ 1Ú \0\0\0\0!\0Ú \0\0\0\0\84\0q\ f"".tmpl\0\84\0q\10type.*text/template.Template\0®\ 1Ú    \0\0\91\ fq\10\ 1\15\84\0\8f\11text/template.t\0®\ 1Ú \0\0\ 1\15\11\11\8f\84\0\8f\12text/template.wr\0«\ 1Ú \0\0\15\b\0\0\0\12\8f\ 1\15®\ 1Ú  \0\0\15ðÿÿÿ\bs\ 1\18®\ 1Ú  \0\0\ 1\18\ 1\90®\ 1Ú       \0\0\15øÿÿÿ\bs\ 1\18®\ 1Ú  \0\0\ 1\18\ 5\b\0\0\0\90\84\0q\13text/template.(*Template).Execute\0\1f\0Ú     \0\0\0\11\13\ 1Ú       \0\0\ 5(\0\0\0\8f\ 1\13®\ 1Ú   \0\0\ 1\8e\ 1\15\84\0s\14"".err\0\84\0q\15type.error\0®\ 1Ú     \0\0\ 1\15\95Èÿÿÿ\14s\15®\ 1Ú \0\0\ 5\b\0\0\0\8e\ 1\15®\ 1Ú   \0\0\ 1\15\95Ðÿÿÿ\14s\15«\ 1Ú \0\0\95Èÿÿÿ\14s\15\ 1\13¢\ 1Ú \0\0\ 1\8e\ 1uQ\0Ú       \0\0\0\ 5=   \0\0\ 1Û  \0\0\11\ 5\8f\ 1\13®\ 1Û      \0\0\95Èÿÿÿ\14s\15\ 1\15®\ 1Û \0\0\ 1\15\ 1\8e®\ 1Û       \0\0\95Ðÿÿÿ\14s\15\ 1\15®\ 1Û \0\0\ 1\15\ 5\b\0\0\0\8e\84\0q\16runtime.convI2E\0\84\0q\17type.func(error) interface {}\0\1f\0Û     \0\0\0\91\16q\17«\ 1Û      \0\0\ 5\10\0\0\0\8f\ 1\16«\ 1Û   \0\0\ 1\8f\ 1\17²\ 1Û       \0\0\0\0²\ 1Û \0\0\0\0\84\0q\18runtime.panic\0\84\0q\19type.func(interface {})\0\1f\0Û   \0\0\0\91\18q\19®\ 1Ý      \0\0\15Øÿÿÿ\ 4s\ 1\11\84\0s\1a""..r0\0\84\0q\etype.[]uint8\0®\ 1Ý      \0\0\ 1u\95àÿÿÿ\1as\er\0Ý \0\0\ 1u\95èÿÿÿ\1as\er\0Ý \0\0\ 1u\95ìÿÿÿ\1as\e®\ 1Ý \0\0\ 1\8c\ 1\17r\0Ý       \0\0\ 5\b\0\0\0\8c\ 1\10r\0Ý   \0\0\ 5\f\0\0\0\8c\ 1\16r\0Ý   \0\0\ 5\10\0\0\0\8c\ 1\13¯\ 1Ý   \0\0\ 1\13\ 1\13°\ 1Ý       \0\0\ 1\10\ 1\15¢\ 1Ý       \0\0\ 1\13\ 1\15V\0Ý       \0\0\0\ 5J   \0\0p\84\0q\1cruntime.panicslice\0\1f\0Ý   \0\0\0\11\1cqr\0Ý       \0\0\ 1\10\ 1\12Ý\0Ý       \0\0\ 1\13\ 1\12r\0Ý       \0\0\ 1\16\ 1\15Ý\0Ý       \0\0\ 1\13\ 1\15\9a\ 1Ý       \0\0\ 1\17\ 1\13®\ 1Ý       \0\0\ 1\13\95àÿÿÿ\1as\er\0Ý \0\0\ 1\12\95èÿÿÿ\1as\er\0Ý \0\0\ 1\15\95ìÿÿÿ\1as\e\84\0\8f\1dbytes.a\0«\ 1Ý     \0\0\11\1d\8f\ 1\15®\ 1Ý      \0\0\95àÿÿÿ\1as\e\ 1\18®\ 1Ý \0\0\ 1\18\ 1\90r\0Ý       \0\0\95èÿÿÿ\1as\e\ 1\18r\0Ý \0\0\ 1\18\ 5\b\0\0\0\90r\0Ý   \0\0\95ìÿÿÿ\1as\e\ 1\18r\0Ý \0\0\ 1\18\ 5\f\0\0\0\90\84\0\8f\1ebytes.b\0«\ 1Ý       \0\0\15\10\0\0\0\1e\8f\ 1\15\84\0q\1f"".jsonbytes\0®\ 1Ý \0\0\91\1fq\e\ 1\18®\ 1Ý     \0\0\ 1\18\ 1\90r\0Ý       \0\0\95\b\0\0\0\1fq\e\ 1\18r\0Ý \0\0\ 1\18\ 5\b\0\0\0\90r\0Ý   \0\0\95\f\0\0\0\1fq\e\ 1\18r\0Ý \0\0\ 1\18\ 5\f\0\0\0\90\84\0q bytes.Equal\0\84\0q!type.func([]uint8, []uint8) bool\0\1f\0Ý      \0\0\0\91 q!q\0Ý      \0\0\ 5 \0\0\0\8f\ 1\13%\0Ý   \0\0\ 1\13\ 1uZ\0Ý       \0\0\0\ 5~   \0\0\ 1Þ  \0\0\15Øÿÿÿ\ 4s\ 1\10\84\0q"type.int\0r\0Þ     \0\0\ 1u\95Äÿÿÿ\1as"r\0Þ \0\0\ 5\b\0\0\0\8b\ 1\13Ý\0Þ   \0\0\ 5\10\0\0\0\8b\ 1\13r\0Þ   \0\0\ 1\13\95Äÿÿÿ\1as"r\0Þ \0\0\95Äÿÿÿ\1as"\ 1\13¯\ 1Þ \0\0\ 1\13\ 1\13®\ 1Þ       \0\0\ 1\13\ 1\8f\84\0q#runtime.printint\0\84\0q$type.func(int64)\0\1f\0Þ     \0\0\0\91#q$\84\0q%runtime.printsp\0\1f\0Þ  \0\0\0\91%q,r\0Þ      \0\0\95\b\0\0\0\1fq\e\ 1\13¯\ 1Þ \0\0\ 1\13\ 1\13®\ 1Þ       \0\0\ 1\13\ 1\8f\1f\0Þ       \0\0\0\91#q$\84\0q&runtime.printnl\0\1f\0Þ  \0\0\0\91&q,\84\0q'type.string\0®\ 1ß      \0\0\93q\0'x.\11/\8f\84\0q(go.string."wrong output"\0«\ 1ß     \0\0\11(q\ 1\16«\ 1ß      \0\0\15\b\0\0\0\ 5\8f\ 1\17²\ 1ß  \0\0\0\0²\ 1ß \0\0\0\0\84\0q)type.func(*uint8, string) interface {}\0\1f\0ß      \0\0\0\91\fq)«\ 1ß      \0\0\ 5\18\0\0\0\8f\ 1\16«\ 1ß   \0\0\ 1\8f\ 1\17²\ 1ß       \0\0\0\0²\ 1ß \0\0\0\0\1f\0ß \0\0\0\91\18q\19ª\0á      \0\0\0\0\84\0q*"".tmplexec\0ã\0ã \0\0\91*q,\ 5H\0\0\0\ 1ä \0\0\93q\0   x.\11/\8f«\ 1ä        \0\0\91
+q\v\ 1\15®\ 1ä        \0\0\ 1\15\15\b\0\0\0\ 5\8f\1f\0ä  \0\0\0\91\fq\r«\ 1ä      \0\0\ 5\10\0\0\0\8f\ 1\16«\ 1ä   \0\0\15\18\0\0\0\ e\8f\ 1\17×\0ä  \0\0\0\0\9a\ 1ä \0\0\ 5\b\0\0\0u\ 1\16\9a\ 1ä   \0\0\ 5\b\0\0\0u\ 1\17®\ 1ä   \0\0\ 5\ 2\0\0\0u\ 1\11¨\0ä   \0\0\0\0²\ 1ä \0\0\0\0!\0ä \0\0\0\0®\ 1ä \0\0\91\ fq\10\ 1\15®\ 1ä     \0\0\ 1\15\11\11\8f«\ 1ä      \0\0\15\b\0\0\0\12\8f\ 1\15\84\0q+io/ioutil.Discard\0®\ 1ä    \0\0\91+q\ 2\ 1\18®\ 1ä     \0\0\ 1\18\ 1\90®\ 1ä       \0\0\95\b\0\0\0+q\ 2\ 1\18®\ 1ä \0\0\ 1\18\ 5\b\0\0\0\90\1f\0ä   \0\0\0\11\13\ 1ä       \0\0\ 5(\0\0\0\8f\ 1\13®\ 1ä   \0\0\ 1\8e\ 1\15®\ 1ä       \0\0\ 1\15\95ðÿÿÿ\14s\15®\ 1ä \0\0\ 5\b\0\0\0\8e\ 1\15®\ 1ä   \0\0\ 1\15\95øÿÿÿ\14s\15«\ 1ä \0\0\95ðÿÿÿ\14s\15\ 1\13¢\ 1ä \0\0\ 1\8e\ 1uQ\0ä       \0\0\0\ 5¨   \0\0\ 1å  \0\0\11\ 5\8f\ 1\13®\ 1å      \0\0\95ðÿÿÿ\14s\15\ 1\15®\ 1å \0\0\ 1\15\ 1\8e®\ 1å       \0\0\95øÿÿÿ\14s\15\ 1\15®\ 1å \0\0\ 1\15\ 5\b\0\0\0\8e\1f\0å   \0\0\0\91\16q\17«\ 1å      \0\0\ 5\10\0\0\0\8f\ 1\16«\ 1å   \0\0\ 1\8f\ 1\17²\ 1å       \0\0\0\0²\ 1å \0\0\0\0\1f\0å \0\0\0\91\18q\19ª\0ç      \0\0\0\0\84\0q,"".BenchmarkTemplate\0\84\0q-type.func(*testing.B)\0ã\0é      \0\0\91,q-E\b\0\0\0\b\0\0\0u\84\0t."".b\0\84\0q/type.*testing.B\0®\ 1ê        \0\0\91.t/\ 1\11r\0ê     \0\0\95\b\0\0\0\1fq\e\ 1\10¯\ 1ê \0\0\ 1\10\ 1\10®\ 1ê       \0\0\ 1\10\ 5p\0\0\0\8cr\0ë   \0\0\ 1u\81\10"Y\0ë      \0\0\0\ 5±   \0\0pD\0ë  \0\0\0\81\10\ 1ë       \0\0\91.t/\ 1\15r\0ë     \0\0\ 5P\0\0\0\90\ 1\13\84\0s0"".i\0r\0ë  \0\0\ 1\10\95üÿÿÿ0s"&\0ë \0\0\ 1\13\ 1\10U\0ë       \0\0\0\ 5¹   \0\0p\84\0q1type.func()\0\1f\0ì  \0\0\0\91*q1r\0ì      \0\0\95üÿÿÿ0s"\ 1\10Y\0ë \0\0\0\ 5°   \0\0\0î  \0\0\0\0\84\0q\ 1"".init\0ã\0î     \0\0\91\ 1q1\ 58\0\0\0u\84\0q\ 2"".initdone·\0\84\0q\ 3type.uint8\0q\0î        \0\0\91\ 2q\ 3\ 1\10q\0î     \0\0\81\10\ 3\ 1\13%\0î      \0\0\ 1\13\ 1uQ\0î       \0\0\0\ 5Ä   \0\0pq\0î  \0\0\81\10\ 3\ 1\13%\0î      \0\0\ 1\13\ 5\ 2\0\0\0uZ\0î   \0\0\0\ 5à  \0\0\0î  \0\0\0\0\84\0q\ 4runtime.throwinit\0\1f\0î   \0\0\0\91\ 4q1q\0î      \0\0\ 5\ 1\0\0\0u\91\ 2q\ 3\84\0q\ 5text/template.init\0\1f\0î  \0\0\0\91\ 5q1\84\0q\ 6bufio.init\0\1f\0î       \0\0\0\91\ 6q1\84\0q\astrings.init\0\1f\0î     \0\0\0\91\aq1\84\0q\bencoding/base64.init\0\1f\0î     \0\0\0\91\bq1\84\0q      compress/bzip2.init\0\1f\0î \0\0\0\91    q1\84\0q
+io.init\0\1f\0î    \0\0\0\91
+q1\84\0q\vcompress/gzip.init\0\1f\0î   \0\0\0\91\vq1\84\0q\freflect.init\0\1f\0î     \0\0\0\91\fq1\84\0q\rlog.init\0\1f\0î \0\0\0\91\rq1\84\0q\ eio/ioutil.init\0\1f\0î   \0\0\0\91\ eq1\84\0q\ fencoding/json.init\0\1f\0î       \0\0\0\91\ fq1\84\0q\10encoding/gob.init\0\1f\0î        \0\0\0\91\10q1\84\0q\11bytes.init\0\1f\0î       \0\0\0\91\11q1\84\0q\12testing.init\0\1f\0î     \0\0\0\91\12q1\84\0\8f\13"".n\0r\0 \0\0\0\ 5@x}\ 1u\11\13\8f\84\0q\14"".fasta\0\84\0q\15type.func(int) []uint8\0\1f\0 \0\0\0\0\91\14q\15®\ 1 \0\0\0\ 5\b\0\0\0\8f\ 1\13\84\0q\16"".fasta25m\0®\ 1 \0\0\0\ 1\13\91\16q\er\0 \0\0\0\ 5\10\0\0\0\8f\ 1\13r\0 \0\0\0\ 1\13\95\b\0\0\0\16q\er\0 \0\0\0\ 5\14\0\0\0\8f\ 1\13r\0 \0\0\0\ 1\13\95\f\0\0\0\16q\e«\ 1¬\ 1\0\0\11\1e\8f\ 1\13®\ 1¬\ 1\0\0\91\1fq\e\ 1\15®\ 1¬\ 1\0\0\ 1\15\ 1\8er\0¬\ 1\0\0\95\b\0\0\0\1fq\e\ 1\15r\0¬\ 1\0\0\ 1\15\ 5\b\0\0\0\8er\0¬\ 1\0\0\95\f\0\0\0\1fq\e\ 1\15r\0¬\ 1\0\0\ 1\15\ 5\f\0\0\0\8e\84\0\8f\17bytes.count\0r\0¬\ 1\0\0\ 5
+\0\0\0u\15\10\0\0\0\17\8f\84\0q\18bytes.Repeat\0\84\0q\19type.func([]uint8, int) []uint8\0\1f\0¬\ 1\0\0\0\91\18q\19®\ 1¬\ 1\0\0\ 5\18\0\0\0\8f\ 1\13\84\0q\1a"".jsongunz\0®\ 1¬\ 1\0\0\ 1\13\91\1aq\er\0¬\ 1\0\0\ 5 \0\0\0\8f\ 1\13r\0¬\ 1\0\0\ 1\13\95\b\0\0\0\1aq\er\0¬\ 1\0\0\ 5$\0\0\0\8f\ 1\13r\0¬\ 1\0\0\ 1\13\95\f\0\0\0\1aq\e\84\0q\ego.string."main"\0«\ 1Ö      \0\0\11\eq\ 1\16\84\0\8f\1ctext/template.name\0«\ 1Ö       \0\0\11\1c\8f\ 1\17²\ 1Ö      \0\0\0\0²\ 1Ö \0\0\0\0\84\0q\1dtext/template.New\0\84\0q\1etype.func(string) *text/template.Template\0\1f\0Ö     \0\0\0\91\1dq\1e®\ 1Ö      \0\0\ 5\10\0\0\0\8f\ 1\13\84\0s\1f"".autotmp_0091\0®\ 1Ö       \0\0\ 1\13\15øÿÿÿ\1fs\84\0q "".stripTabNL\0\84\0q!type.func(int32) int32\0®\ 1Ö     \0\0\93q\0 x!\ 1\13\84\0\8f"strings.mapping\0®\ 1Ö       \0\0\ 1\13\11"\8f\84\0q#""..gostring.2\0«\ 1Ö   \0\0\11#q\ 1\16\84\0\8f$strings.s\0«\ 1Ö        \0\0\15\b\0\0\0$\8f\ 1\17²\ 1Ö  \0\0\0\0²\ 1Ö \0\0\0\0\84\0q%strings.Map\0\84\0q&type.func(func(int32) int32, string) string\0\1f\0Ö \0\0\0\91%q&«\ 1Ö      \0\0\ 5\18\0\0\0\8f\ 1\16\84\0\8f'text/template.text\0«\ 1Ö    \0\0\15\b\0\0\0'\8f\ 1\17²\ 1Ö  \0\0\0\0²\ 1Ö \0\0\0\0®\ 1Ö \0\0\15øÿÿÿ\1fs\ 1\13\84\0\8f(text/template.t\0®\ 1Ö      \0\0\ 1\13\11(\8f\84\0q)text/template.(*Template).Parse\0\1f\0Ö  \0\0\0\11)q®\ 1Ö       \0\0\ 5\18\0\0\0\8f\ 1\12«\ 1Ö   \0\0\ 5 \0\0\0\8f\ 1\13®\ 1Ö   \0\0\ 1\8e\ 1\11®\ 1Ö       \0\0\ 5\b\0\0\0\8e\ 1\10®\ 1Ö   \0\0\ 1\12\11(\8f\84\0\8f*text/template.err\0«\ 1Ö        \0\0\15\b\0\0\0*\8f\ 1\13®\ 1Ö  \0\0\ 1\11\ 1\8e®\ 1Ö       \0\0\ 1\10\ 5\b\0\0\0\8e\84\0q+text/template.Must\0\84\0q,type.func(*text/template.Template, error) *text/template.Template\0\1f\0Ö      \0\0\0\91+q,®\ 1Ö      \0\0\ 5\18\0\0\0\8f\ 1\13\84\0q-"".tmpl\0\84\0q.type.*text/template.Template\0®\ 1Ö      \0\0\ 1\13\91-q.\84\0q/"".init·1\0\1f\0î      \0\0\0\91/q1\84\0q0"".init·2\0\1f\0î       \0\0\0\910q1\84\0q1"".init·3\0\84\0q\ 1type.func()\0\1f\0î       \0\0\0\911q\ 1q\0î      \0\0\ 5\ 2\0\0\0u\91\ 2q\ 3ª\0î \0\0\0\0\84\0q\ 2type..hash."".JSONResponse\0\84\0q\ 3type.func(*uintptr, uintptr, *"".JSONResponse)\0ã\0\ 1\0\0\0\93o\ 2\ 2q\ 3E\18\0\0\0\18\0\0\0u\84\0t\ 4"".h\0\84\0q\ 5type.*uintptr\0®\ 1\ 1\0\0\0\91\ 4t\ 5\ 1\13®\ 1\ 1\0\0\0\ 1\13\ 1\8f®\ 1\ 1\0\0\0\ 5\b\0\0\0u\ 5\b\0\0\0\8f\84\0t\ 6"".p\0\84\0q\atype.*"".JSONResponse\0®\ 1\ 1\0\0\0\95\10\0\0\0\ 6t\a\ 1\13®\ 1\ 1\0\0\0\ 1\13\ 5\10\0\0\0\8f\84\0q\bruntime.memhash\0\84\0q type.func(*uintptr, uintptr, **"".JSONNode)\0\1f\0\ 1\0\0\0\0\91\bq  ®\ 1\ 1\0\0\0\91\ 4t\ 5\ 1\13®\ 1\ 1\0\0\0\ 1\13\ 1\8f®\ 1\ 1\0\0\0\ 5\10\0\0\0u\ 5\b\0\0\0\8f®\ 1\ 1\0\0\0\95\10\0\0\0\ 6t\a\ 1\13®\ 1\ 1\0\0\0\ 1\13\ 5\10\0\0\0\8f\9a\ 1\ 1\0\0\0\ 5\b\0\0\0u\ 5\10\0\0\0\8f\84\0q
+runtime.strhash\0\84\0q\vtype.func(*uintptr, uintptr, *string)\0\1f\0\ 1\0\0\0\0\91
+q\vª\0\ 1\0\0\0\0\0\84\0q\ftype..eq."".JSONResponse\0\84\0q\rtype.func(*bool, uintptr, *"".JSONResponse, *"".JSONResponse)\0ã\0\ 1\0\0\0\93o\ 2\fq\rE(\0\0\0 \0\0\0\ 1\ 1\0\0\0\95\10\0\0\0\ 6t\a\ 1\11\84\0t\ e"".q\0®\ 1\ 1\0\0\0\95\18\0\0\0\ et\a\ 1\10\84\0t\ f"".eq\0\84\0q\10type.*bool\0®\ 1\ 1\0\0\0\91\ ft\10\ 1\17®\ 1\ 1\0\0\0\ 1\8c\ 1\13®\ 1\ 1\0\0\0\ 1\8b\ 1\15¢\ 1\ 1\0\0\0\ 1\13\ 1\15Q\0\ 1\0\0\0\0\ 5(
+\0\0pq\0\ 1\0\0\0\ 1u\ 1\92ª\0\ 1\0\0\0\0\0®\ 1\ 1\0\0\0\81\11\a\ 1\13\9a\ 1\ 1\0\0\0\ 5\b\0\0\0u\ 1\13®\ 1\ 1\0\0\0\ 1\8e\ 1\16r\0\ 1\0\0\0\ 5\b\0\0\0\8e\ 1\11®\ 1\ 1\0\0\0\81\10\a\ 1\13\9a\ 1\ 1\0\0\0\ 5\b\0\0\0u\ 1\13®\ 1\ 1\0\0\0\ 1\8e\ 1\12r\0\ 1\0\0\0\ 5\b\0\0\0\8e\ 1\10&\0\ 1\0\0\0\ 1\11\ 1\10Z\0\ 1\0\0\0\0\ 5>
+\0\0\ 1\ 1\0\0\0\ 1\8f\ 1\15®\ 1\ 1\0\0\0\ 1\16\ 1\90r\0\ 1\0\0\0\ 1\11\ 5\b\0\0\0\90«\ 1\ 1\0\0\0\ 5\10\0\0\0\8f\ 1\15®\ 1\ 1\0\0\0\ 1\12\ 1\90r\0\ 1\0\0\0\ 1\10\ 5\b\0\0\0\90\84\0q\11runtime.cmpstring\0\84\0q\12type.func(string, string) int\0\1f\0\ 1\0\0\0\0\91\11q\12®\ 1\ 1\0\0\0\91\ ft\10\ 1\17r\0\ 1\0\0\0\ 5 \0\0\0\8f\ 1\13&\0\ 1\0\0\0\ 1\13\ 1uZ\0\ 1\0\0\0\0\ 5>
+\0\0pY\0\ 1\0\0\0\0\ 5@
+\0\0pq\0\ 1\0\0\0\ 1u\ 1\92ª\0\ 1\0\0\0\0\0q\0\ 1\0\0\0\ 5\ 1\0\0\0u\ 1\92ª\0\ 1\0\0\0\0\0\84\0q\13"".statictmp_0015\0-\0µ\0\0\0\17o\b\b\0\0\0\13q\bHáz\14®GÑ?-\0µ\0\0\0\13o\ 1\13q\ 5a\0\0\0u-\0µ\0\0\0\17o\b(\0\0\0\13q\b¸\1e\85ëQ¸¾?-\0µ\0\0\0\17o\ 1 \0\0\0\13q\ 5c\0\0\0u-\0µ\0\0\0\17o\bH\0\0\0\13q\b¸\1e\85ëQ¸¾?-\0µ\0\0\0\17o\ 1@\0\0\0\13q\ 5g\0\0\0u-\0µ\0\0\0\17o\bh\0\0\0\13q\bHáz\14®GÑ?-\0µ\0\0\0\17o\ 1`\0\0\0\13q\ 5t\0\0\0u-\0µ\0\0\0\17o\b\88\0\0\0\13q\b{\14®Gáz\94?-\0µ\0\0\0\17o\ 1\80\0\0\0\13q\ 5B\0\0\0u-\0µ\0\0\0\17o\b¨\0\0\0\13q\b{\14®Gáz\94?-\0µ\0\0\0\17o\ 1 \0\0\0\13q\ 5D\0\0\0u-\0µ\0\0\0\17o\bÈ\0\0\0\13q\b{\14®Gáz\94?-\0µ\0\0\0\17o\ 1À\0\0\0\13q\ 5H\0\0\0u-\0µ\0\0\0\17o\bè\0\0\0\13q\b{\14®Gáz\94?-\0µ\0\0\0\17o\ 1à\0\0\0\13q\ 5K\0\0\0u-\0µ\0\0\0\17o\b\b\ 1\0\0\13q\b{\14®Gáz\94?-\0µ\0\0\0\17o\ 1\0\ 1\0\0\13q\ 5M\0\0\0u-\0µ\0\0\0\17o\b(\ 1\0\0\13q\b{\14®Gáz\94?-\0µ\0\0\0\17o\ 1 \ 1\0\0\13q\ 5N\0\0\0u-\0µ\0\0\0\17o\bH\ 1\0\0\13q\b{\14®Gáz\94?-\0µ\0\0\0\17o\ 1@\ 1\0\0\13q\ 5R\0\0\0u-\0µ\0\0\0\17o\bh\ 1\0\0\13q\b{\14®Gáz\94?-\0µ\0\0\0\17o\ 1`\ 1\0\0\13q\ 5S\0\0\0u-\0µ\0\0\0\17o\b\88\ 1\0\0\13q\b{\14®Gáz\94?-\0µ\0\0\0\17o\ 1\80\ 1\0\0\13q\ 5V\0\0\0u-\0µ\0\0\0\17o\b¨\ 1\0\0\13q\b{\14®Gáz\94?-\0µ\0\0\0\17o\ 1 \ 1\0\0\13q\ 5W\0\0\0u-\0µ\0\0\0\17o\bÈ\ 1\0\0\13q\b{\14®Gáz\94?-\0µ\0\0\0\17o\ 1À\ 1\0\0\13q\ 5Y\0\0\0u\84\0q\14"".statictmp_0017\0-\0¼\0\0\0\17o\b\b\0\0\0\14q\b[뺠\9dcÓ?-\0¼\0\0\0\13o\ 1\14q\ 5a\0\0\0u-\0¼\0\0\0\17o\b(\0\0\0\14q\b\eVÍ=®WÉ?-\0¼\0\0\0\17o\ 1 \0\0\0\14q\ 5c\0\0\0u-\0¼\0\0\0\17o\bH\0\0\0\14q\b¿Â¶ê:IÉ?-\0¼\0\0\0\17o\ 1@\0\0\0\14q\ 5g\0\0\0u-\0¼\0\0\0\17o\bh\0\0\0\14q\b8\b\ 3KîKÓ?-\0¼\0\0\0\17o\ 1`\0\0\0\14q\ 5t\0\0\0u\84\0q\15"".statictmp_0019\0-\0Å\0\0\0\13o\ 1\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\ 1\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\ 2\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\ 3\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\ 4\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\ 5\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\ 6\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\a\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\b\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1 \0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1
+\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\v\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\f\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1\r\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\ e\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\ f\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\10\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1\11\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\12\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1\13\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\14\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\15\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\16\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\17\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1\18\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\19\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1\1a\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1\e\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1\1c\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1\1d\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\1e\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\1f\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1 \0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1!\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1"\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1#\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1$\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1%\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1&\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1'\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1(\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1)\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1*\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1+\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1,\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1-\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1.\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1/\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 10\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 11\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 12\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 13\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 14\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 15\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 16\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 17\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 18\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 19\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1:\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1;\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1<\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1=\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1>\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1?\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1@\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1A\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1B\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1C\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1D\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1E\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1F\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1G\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1H\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1I\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1J\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1K\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1L\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1M\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1N\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1O\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1P\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1Q\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1R\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1S\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1T\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1U\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1V\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1W\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1X\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1Y\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1Z\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1[\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1]\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1^\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1_\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1`\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1a\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1b\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1c\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1d\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1e\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1f\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1g\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1h\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1i\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1j\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1k\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1l\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1m\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1n\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1o\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1p\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1q\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1r\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1s\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1t\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1u\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1v\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1w\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1x\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1y\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1z\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1{\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1|\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1}\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1~\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1\7f\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\80\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1\81\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1\82\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1\83\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1\84\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1\85\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1\86\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1\87\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1\88\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\89\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\8a\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\8b\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\8c\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\8d\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\8e\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\8f\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\90\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1\91\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\92\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\93\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1\94\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\95\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\96\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\97\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\98\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\99\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\9a\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\9b\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\9c\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\9d\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\9e\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1\9f\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1 \0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1¡\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1¢\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1£\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1¤\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1¥\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1¦\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1§\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1¨\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1©\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1ª\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1«\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1¬\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1­\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1®\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1¯\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1°\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1±\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1²\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1³\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1´\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1µ\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1·\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1¸\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1¹\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1º\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1»\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1¼\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1½\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1¾\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1¿\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1À\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1Á\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1Â\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1Ã\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1Ä\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1Å\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1Æ\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1Ç\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1È\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1É\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1Ê\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1Ë\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1Ì\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1Í\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1Î\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1Ï\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1Ð\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1Ñ\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1Ò\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1Ó\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1Ô\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1Õ\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1Ö\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1×\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1Ø\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1Ù\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1Ú\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1Û\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1Ü\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1Ý\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1Þ\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1ß\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1à\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1á\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1â\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1ã\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1ä\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1å\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1æ\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1ç\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1è\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1é\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1ê\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1ë\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1ì\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1í\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1î\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1ï\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1ð\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1ñ\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1ò\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1ó\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1ô\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1õ\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1ö\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1÷\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1ø\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1ù\0\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1ú\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1û\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1ü\0\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1ý\0\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1þ\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1ÿ\0\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\0\ 1\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1\ 1\ 1\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\ 2\ 1\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\ 3\ 1\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\ 4\ 1\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\ 5\ 1\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\ 6\ 1\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1\a\ 1\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\b\ 1\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1     \ 1\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1
+\ 1\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1\v\ 1\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\f\ 1\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\r\ 1\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\ e\ 1\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1\ f\ 1\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\10\ 1\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1\11\ 1\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\12\ 1\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1\13\ 1\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\14\ 1\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\15\ 1\0\0\15q\ 5G\0\0\0u-\0Å\0\0\0\17o\ 1\16\ 1\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1\17\ 1\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\18\ 1\0\0\15q\ 5T\0\0\0u-\0Å\0\0\0\17o\ 1\19\ 1\0\0\15q\ 5C\0\0\0u-\0Å\0\0\0\17o\ 1\1a\ 1\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1\e\ 1\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1\1c\ 1\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1\1d\ 1\0\0\15q\ 5A\0\0\0u-\0Å\0\0\0\17o\ 1\1e\ 1\0\0\15q\ 5A\0\0\0u\84\0q\16go.string.">ONE Homo sapiens alu\n"\0-\0Ç\0\0\0\13o\b\16q\17q\0\f\0\0\0\16x-\0Ç\0\0\0\17o\ 4\b\0\0\0\16q\ 5\16\0\0\0u-\0Ç\0\0\0\17o\b\f\0\0\0\16q >ONE Hom-\0Ç\0\0\0\17o\b\14\0\0\0\16q o sapien-\0Ç\0\0\0\17o\ 6\1c\0\0\0\16q s alu
+\0\0-\0Ç\0\0\0\17o\ 1"\0\0\0\16q\ 1u6\0Ç\0\0\0\13o
+\16q\ 5(\0\0\0u\84\0q\17go.string.">TWO IUB ambiguity codes\n"\0-\0É\0\0\0\13o\b\17q\17q\0\f\0\0\0\17x-\0É\0\0\0\17o\ 4\b\0\0\0\17q\ 5\19\0\0\0u-\0É\0\0\0\17o\b\f\0\0\0\17q >TWO IUB-\0É\0\0\0\17o\b\14\0\0\0\17q  ambigui-\0É\0\0\0\17o\b\1c\0\0\0\17q ty codes-\0É\0\0\0\17o\ 1$\0\0\0\17
+\0\0\0\0\0\0\0-\0É\0\0\0\17o\ 1%\0\0\0\17q\ 1u6\0É\0\0\0\13o
+\17q\ 5(\0\0\0u\84\0q\18go.string.">THREE Homo sapiens frequency\n"\0-\0Ë\0\0\0\13o\b\18q\17q\0\f\0\0\0\18x-\0Ë\0\0\0\17o\ 4\b\0\0\0\18q\ 5\1e\0\0\0u-\0Ë\0\0\0\17o\b\f\0\0\0\18q >THREE H-\0Ë\0\0\0\17o\b\14\0\0\0\18q omo sapi-\0Ë\0\0\0\17o\b\1c\0\0\0\18q ens freq-\0Ë\0\0\0\17o\ 6$\0\0\0\18q uency
+\0\0-\0Ë\0\0\0\17o\ 1*\0\0\0\18q\ 1u6\0Ë\0\0\0\13o
+\18q\ 50\0\0\0u\84\0q\19go.string."flush"\0-\0Ó\0\0\0\13o\b\19q\17q\0\f\0\0\0\19x-\0Ó\0\0\0\17o\ 4\b\0\0\0\19q\ 5\ 5\0\0\0u-\0Ó\0\0\0\17o\ 5\f\0\0\0\19q flush\0\0\0-\0Ó\0\0\0\17o\ 1\11\0\0\0\19q\ 1u6\0Ó\0\0\0\13o
+\19q\ 5\18\0\0\0u\84\0q\1ago.string."%v\n%v"\0-\0c\ 1\0\0\13o\b\1aq\17q\0\f\0\0\0\1ax-\0c\ 1\0\0\17o\ 4\b\0\0\0\1aq\ 5\ 5\0\0\0u-\0c\ 1\0\0\17o\ 5\f\0\0\0\1aq %v
+%v\0\0\0-\0c\ 1\0\0\17o\ 1\11\0\0\0\1aq\ 1u6\0c\ 1\0\0\13o
+\1aq\ 5\18\0\0\0u\84\0q\ego.string."%s\n%s\n"\0-\0f\ 1\0\0\13o\b\eq\17q\0\f\0\0\0\ex-\0f\ 1\0\0\17o\ 4\b\0\0\0\eq\ 5\ 6\0\0\0u-\0f\ 1\0\0\17o\ 6\f\0\0\0\eq %s
+%s
+\0\0-\0f\ 1\0\0\17o\ 1\12\0\0\0\eq\ 1u6\0f\ 1\0\0\13o
+\eq\ 5\18\0\0\0u\84\0q\1cgo.string."gob: encode+decode lost data"\0-\0g\ 1\0\0\13o\b\1cq\17q\0\f\0\0\0\1cx-\0g\ 1\0\0\17o\ 4\b\0\0\0\1cq\ 5\1c\0\0\0u-\0g\ 1\0\0\17o\b\f\0\0\0\1cq gob: enc-\0g\ 1\0\0\17o\b\14\0\0\0\1cq ode+deco-\0g\ 1\0\0\17o\b\1c\0\0\0\1cq de lost -\0g\ 1\0\0\17o\ 4$\0\0\0\1cq data\0\0\0\0-\0g\ 1\0\0\17o\ 1(\0\0\0\1cq\ 1u6\0g\ 1\0\0\13o
+\1cq\ 50\0\0\0u\84\0q\1dgo.string."gobdata not initialized"\0-\0\7f\ 1\0\0\13o\b\1dq\17q\0\f\0\0\0\1dx-\0\7f\ 1\0\0\17o\ 4\b\0\0\0\1dq\ 5\17\0\0\0u-\0\7f\ 1\0\0\17o\b\f\0\0\0\1dq gobdata -\0\7f\ 1\0\0\17o\b\14\0\0\0\1dq not init-\0\7f\ 1\0\0\17o\a\1c\0\0\0\1dq ialized\0-\0\7f\ 1\0\0\17o\ 1#\0\0\0\1dq\ 1u6\0\7f\ 1\0\0\13o
+\1dq\ 5(\0\0\0u\84\0q\1ego.string."wrong output"\0-\0ß       \0\0\13o\b\1eq\17q\0\f\0\0\0\1ex-\0ß     \0\0\17o\ 4\b\0\0\0\1eq\ 5\f\0\0\0u-\0ß    \0\0\17o\b\f\0\0\0\1eq wrong ou-\0ß \0\0\17o\ 4\14\0\0\0\1eq tput\0\0\0\0-\0ß \0\0\17o\ 1\18\0\0\0\1eq\ 1u6\0ß        \0\0\13o
+\1eq\ 5 \0\0\0u\84\0q\1f"".fastaRand\0\84\0q type.uint32\0-\0ÿ\0\0\0\93o\ 4\1f\ 5*\0\0\0u\84\0q!"".jsonbz2_base64\0\84\0q"type.string\0\84\0q#""..gostring.1\0-\0M        \0\0\93o\b!q"\17q\0\f\0\0\0#x-\0M    \0\0\13o\b#q\17q\0\f\0\0\0#x-\0M     \0\0\17o\ 4\b\0\0\0#q\ 5´Â\ 1\0u-\0M    \0\0\17o\b\f\0\0\0#q QlpoOTFB-\0\0\0\17o\b\14\0\0\0#q WSZTWZ0H-\0\0\0\17o\b\1c\0\0\0#q 0LkG0bxf-\0\0\0\17o\b$\0\0\0#q gFH8UAf/-\0\0\0\17o\b,\0\0\0#q 8D////q/-\0\0\0\17o\b4\0\0\0#q ///6YSvJ-\0\0\0\17o\b<\0\0\0#q veAAAAAH-\0\0\0\17o\bD\0\0\0#q 3ddt7gAN-\0\0\0\17o\bL\0\0\0#q FrKppN9g-\0\0\0\17o\bT\0\0\0#q w0gA++fG-\0\0\0\17o\b\\0\0\0#q B9xKkUpX-\0\0\0\17o\bd\0\0\0#q 0YWTENCg-\0\0\0\17o\bl\0\0\0#q qzUW1tls-\0\0\0\17o\bt\0\0\0#q yMB2w9nn-\0\0\0\17o\b|\0\0\0#q vNSigNyS-\0\0\0\17o\b\84\0\0\0#q +3cui5zA-\0\0\0\17o\b\8c\0\0\0#q AAAAAAAA-\0\0\0\17o\b\94\0\0\0#q AI4kILu6-\0\0\0\17o\b\9c\0\0\0#q ytuWTLBb-\0\0\0\17o\b¤\0\0\0#q aPXfc+A+-\0\0\0\17o\b¬\0\0\0#q PQEgNAG1-\0\0\0\17o\b´\0\0\0#q ZMBYWnWw-\0\0\0\17o\b¼\0\0\0#q PoFrGjoB-\0\0\0\17o\bÄ\0\0\0#q nYMumlUF-\0\0\0\17o\bÌ\0\0\0#q UKA7NVBQ-\0\0\0\17o\bÔ\0\0\0#q gut30zzu-\0\0\0\17o\bÜ\0\0\0#q 8eM2tsoa-\0\0\0\17o\bä\0\0\0#q pJ7u41dj-\0\0\0\17o\bì\0\0\0#q LsxZarpl-\0\0\0\17o\bô\0\0\0#q SoJouxrd-\0\0\0\17o\bü\0\0\0#q fHrHPSiq-\0\0\0\17o\b\ 4\ 1\0\0#q AGgkAD6D-\0\0\0\17o\b\f\ 1\0\0#q QfT0ABu7-\0\0\0\17o\b\14\ 1\0\0#q gG1qDtdV-\0\0\0\17o\b\1c\ 1\0\0#q HVXp7vWu-\0\0\0\17o\b$\ 1\0\0#q BoBk2wEO-\0\0\0\17o\b,\ 1\0\0#q jKChQ5bv-\0\0\0\17o\b4\ 1\0\0#q bh3riupX-\0\0\0\17o\b<\ 1\0\0#q ZycASbai-\0\0\0\17o\bD\ 1\0\0#q QEECRKib-\0\0\0\17o\bL\ 1\0\0#q ZFJFtqWj-\0\0\0\17o\bT\ 1\0\0#q R7bsGoaa-\0\0\0\17o\b\\ 1\0\0#q 1lIFPRoK-\0\0\0\17o\bd\ 1\0\0#q VQKoJFyq-\0\0\0\17o\bl\ 1\0\0#q bWr5OB1A-\0\0\0\17o\bt\ 1\0\0#q ie2pobm1-\0\0\0\17o\b|\ 1\0\0#q EJKqVBU1-\0\0\0\17o\b\84\ 1\0\0#q EE2lCg6a-\0\0\0\17o\b\8c\ 1\0\0#q AUBV9hqL-\0\0\0\17o\b\94\ 1\0\0#q 00q9btQ0-\0\0\0\17o\b\9c\ 1\0\0#q J9hqu2za-\0\0\0\17o\b¤\ 1\0\0#q vWVdjI6a-\0\0\0\17o\b¬\ 1\0\0#q AusU22tN-\0\0\0\17o\b´\ 1\0\0#q a+8m70Gj-\0\0\0\17o\b¼\ 1\0\0#q RqarKRWt-\0\0\0\17o\bÄ\ 1\0\0#q UDW2yFBI-\0\0\0\17o\bÌ\ 1\0\0#q 1kBrrqrx-\0\0\0\17o\bÔ\ 1\0\0#q eX3AyB9A-\0\0\0\17o\bÜ\ 1\0\0#q D0wAAAeZ-\0\0\0\17o\bä\ 1\0\0#q 6weqV1rV-\0\0\0\17o\bì\ 1\0\0#q u8UVICgA-\0\0\0\17o\bô\ 1\0\0#q AABeDn2c-\0\0\0\17o\bü\ 1\0\0#q AAd9gAAC-\0\0\0\17o\b\ 4\ 2\0\0#q I+7DvjHo-\0\0\0\17o\b\f\ 2\0\0#q j73u8X2d-\0\0\0\17o\b\14\ 2\0\0#q DXT2x6ad-\0\0\0\17o\b\1c\ 2\0\0#q eFOTNe7B-\0\0\0\17o\b$\ 2\0\0#q vavozFez-\0\0\0\17o\b,\ 2\0\0#q kV1xXtJz-\0\0\0\17o\b4\ 2\0\0#q u8H0983Q-\0\0\0\17o\b<\ 2\0\0#q AHr5aPT4-\0\0\0\17o\bD\ 2\0\0#q 2iem53fX-\0\0\0\17o\bL\ 2\0\0#q 23IDr7Ye-\0\0\0\17o\bT\ 2\0\0#q jQNtVVZr-\0\0\0\17o\b\\ 2\0\0#q 24gGgB0V-\0\0\0\17o\bd\ 2\0\0#q QffPXH18-\0\0\0\17o\bl\ 2\0\0#q g9DoaDW8-\0\0\0\17o\bt\ 2\0\0#q vt729h9b-\0\0\0\17o\b|\ 2\0\0#q t72XsKth-\0\0\0\17o\b\84\ 2\0\0#q 0ANxgodG-\0\0\0\17o\b\8c\ 2\0\0#q iRxvYclA-\0\0\0\17o\b\94\ 2\0\0#q AAAAnpqR-\0\0\0\17o\b\9c\ 2\0\0#q tgGvcbo9-\0\0\0\17o\b¤\ 2\0\0#q ABpy6aPQ-\0\0\0\17o\b¬\ 2\0\0#q ADRZ3aAC-\0\0\0\17o\b´\ 2\0\0#q jyox4Naw-\0\0\0\17o\b¼\ 2\0\0#q KCqNdA6o-\0\0\0\17o\bÄ\ 2\0\0#q ffa1WtPc-\0\0\0\17o\bÌ\ 2\0\0#q fdjQUPva-\0\0\0\17o\bÔ\ 2\0\0#q uprcLoPe-\0\0\0\17o\bÜ\ 2\0\0#q 2oaplp2w-\0\0\0\17o\bä\ 2\0\0#q 7cnOHdlF-\0\0\0\17o\bì\ 2\0\0#q 27xvPY1Q-\0\0\0\17o\bô\ 2\0\0#q U67vc8go-\0\0\0\17o\bü\ 2\0\0#q BRttLYKa-\0\0\0\17o\b\ 4\ 3\0\0#q HXkPAAAA-\0\0\0\17o\b\f\ 3\0\0#q AAdyFFaY-\0\0\0\17o\b\14\ 3\0\0#q CVClAVSl-\0\0\0\17o\b\1c\ 3\0\0#q CqVSilFU-\0\0\0\17o\b$\ 3\0\0#q KEgoNT0C-\0\0\0\17o\b,\ 3\0\0#q AQCBAk00-\0\0\0\17o\b4\ 3\0\0#q g1T0jQNN-\0\0\0\17o\b<\ 3\0\0#q PSbKADQx-\0\0\0\17o\bD\ 3\0\0#q AJEBESIg-\0\0\0\17o\bL\ 3\0\0#q Seomk9EB-\0\0\0\17o\bT\ 3\0\0#q 6mjQ0NNG-\0\0\0\17o\b\\ 3\0\0#q gAAAAkEg-\0\0\0\17o\bd\ 3\0\0#q kiGk0CR6-\0\0\0\17o\bl\ 3\0\0#q U9CNNNNN-\0\0\0\17o\bt\ 3\0\0#q PQRo0ANA-\0\0\0\17o\b|\ 3\0\0#q aAAk9UpE-\0\0\0\17o\b\84\ 3\0\0#q QmoNNRqe-\0\0\0\17o\b\8c\ 3\0\0#q U02o00AA-\0\0\0\17o\b\94\ 3\0\0#q ADQABoAC-\0\0\0\17o\b\9c\ 3\0\0#q JEAlKamU-\0\0\0\17o\b¤\ 3\0\0#q CjZT9UGn-\0\0\0\17o\b¬\ 3\0\0#q qAAG1AGg-\0\0\0\17o\b´\ 3\0\0#q AAAFRJCA-\0\0\0\17o\b¼\ 3\0\0#q QCBA0SYj-\0\0\0\17o\bÄ\ 3\0\0#q TKbQmqea-\0\0\0\17o\bÌ\ 3\0\0#q p6YU2o09-\0\0\0\17o\bÔ\ 3\0\0#q Q9TT00nA-\0\0\0\17o\bÜ\ 3\0\0#q lwPEuSel-\0\0\0\17o\bä\ 3\0\0#q CeXl28B3-\0\0\0\17o\bì\ 3\0\0#q IYIQHEwX-\0\0\0\17o\bô\ 3\0\0#q UMSCvlAY-\0\0\0\17o\bü\ 3\0\0#q S5LkrZn+-\0\0\0\17o\b\ 4\ 4\0\0#q XhHHAXZz-\0\0\0\17o\b\f\ 4\0\0#q FTJHAzrK-\0\0\0\17o\b\14\ 4\0\0#q ZzYWC0pt-\0\0\0\17o\b\1c\ 4\0\0#q hA9SCmbk-\0\0\0\17o\b$\ 4\0\0#q yVzoHbSU-\0\0\0\17o\b,\ 4\0\0#q jhnAfBrY-\0\0\0\17o\b4\ 4\0\0#q pwWYIB7G-\0\0\0\17o\b<\ 4\0\0#q RjOjDQqo-\0\0\0\17o\bD\ 4\0\0#q kMbJENSO-\0\0\0\17o\bL\ 4\0\0#q SBCN0Wha-\0\0\0\17o\bT\ 4\0\0#q RhQWpVuo-\0\0\0\17o\b\\ 4\0\0#q OLN0NPRe-\0\0\0\17o\bd\ 4\0\0#q d7eO5eW2-\0\0\0\17o\bl\ 4\0\0#q lv5L+X/j-\0\0\0\17o\bt\ 4\0\0#q f7EpJkEU-\0\0\0\17o\b|\ 4\0\0#q NMJKZREo-\0\0\0\17o\b\84\ 4\0\0#q gmkjMgZJ-\0\0\0\17o\b\8c\ 4\0\0#q BiEEEliR-\0\0\0\17o\b\94\ 4\0\0#q IUKAoiaS-\0\0\0\17o\b\9c\ 4\0\0#q EoDQZJBh-\0\0\0\17o\b¤\ 4\0\0#q KEZEQySQ-\0\0\0\17o\b¬\ 4\0\0#q CAIIFNIM-\0\0\0\17o\b´\ 4\0\0#q wCiSYRSY-\0\0\0\17o\b¼\ 4\0\0#q zKMkSSlI-\0\0\0\17o\bÄ\ 4\0\0#q 0xZMZKko-\0\0\0\17o\bÌ\ 4\0\0#q RKlRtkmW-\0\0\0\17o\bÔ\ 4\0\0#q JIrNNIBE-\0\0\0\17o\bÜ\ 4\0\0#q JEYiJBhG-\0\0\0\17o\bä\ 4\0\0#q MMkWYxRq-\0\0\0\17o\bì\ 4\0\0#q UsmjKJMm-\0\0\0\17o\bô\ 4\0\0#q CFJMaSmi-\0\0\0\17o\bü\ 4\0\0#q yDSaEJtB-\0\0\0\17o\b\ 4\ 5\0\0#q IJpANKMN-\0\0\0\17o\b\f\ 5\0\0#q JEkpGQAY-\0\0\0\17o\b\14\ 5\0\0#q jLNETGUB-\0\0\0\17o\b\1c\ 5\0\0#q RAlBKURg-\0\0\0\17o\b$\ 5\0\0#q sC0wzKZh-\0\0\0\17o\b,\ 5\0\0#q RmhiYIQZ-\0\0\0\17o\b4\ 5\0\0#q IsZCIIMi-\0\0\0\17o\b<\ 5\0\0#q iNmFCCiS-\0\0\0\17o\bD\ 5\0\0#q ZNjI0khE-\0\0\0\17o\bL\ 5\0\0#q AYSEUkjT-\0\0\0\17o\bT\ 5\0\0#q MSZskZKR-\0\0\0\17o\b\\ 5\0\0#q QWJoRNBI-\0\0\0\17o\bd\ 5\0\0#q 2IojZmMh-\0\0\0\17o\bl\ 5\0\0#q TIkQEgyR-\0\0\0\17o\bt\ 5\0\0#q EEMoomDS-\0\0\0\17o\b|\ 5\0\0#q iYxAZMEC-\0\0\0\17o\b\84\ 5\0\0#q FCSKIkGg-\0\0\0\17o\b\8c\ 5\0\0#q kIDIw2MN-\0\0\0\17o\b\94\ 5\0\0#q AlgyA0Sm-\0\0\0\17o\b\9c\ 5\0\0#q KWSSyIaR-\0\0\0\17o\b¤\ 5\0\0#q CSDDIkZm-\0\0\0\17o\b¬\ 5\0\0#q NGghgyAE-\0\0\0\17o\b´\ 5\0\0#q oERokkWT-\0\0\0\17o\b¼\ 5\0\0#q A0xZBEQh-\0\0\0\17o\bÄ\ 5\0\0#q mUSBGmaQ-\0\0\0\17o\bÌ\ 5\0\0#q aQBFmRJM-\0\0\0\17o\bÔ\ 5\0\0#q okwxIyRS-\0\0\0\17o\bÜ\ 5\0\0#q WbAkbCUF-\0\0\0\17o\bä\ 5\0\0#q lAhgUISJ-\0\0\0\17o\bì\ 5\0\0#q IRkySYhA-\0\0\0\17o\bô\ 5\0\0#q xoUARCSa-\0\0\0\17o\bü\ 5\0\0#q IJMkyiZJ-\0\0\0\17o\b\ 4\ 6\0\0#q NBMyGRIh-\0\0\0\17o\b\f\ 6\0\0#q Y0komKIm-\0\0\0\17o\b\14\ 6\0\0#q gMDI/038-\0\0\0\17o\b\1c\ 6\0\0#q qLf/av/b-\0\0\0\17o\b$\ 6\0\0#q WSNVEtmF-\0\0\0\17o\b,\ 6\0\0#q Rx/2aaDV-\0\0\0\17o\b4\ 6\0\0#q mKkY0NkI-\0\0\0\17o\b<\ 6\0\0#q RDGJEWoE-\0\0\0\17o\bD\ 6\0\0#q GLf9g9MV-\0\0\0\17o\bL\ 6\0\0#q UJWGSu0p-\0\0\0\17o\bT\ 6\0\0#q WVpSOdWD-\0\0\0\17o\b\\ 6\0\0#q VjQJGRSC-\0\0\0\17o\bd\ 6\0\0#q hGBGDGhN-\0\0\0\17o\bl\ 6\0\0#q NMYYwjEs-\0\0\0\17o\bt\ 6\0\0#q aFISGPT3-\0\0\0\17o\b|\ 6\0\0#q TbFXk873-\0\0\0\17o\b\84\ 6\0\0#q Xq8vPa9b-\0\0\0\17o\b\8c\ 6\0\0#q 0dcco0UE-\0\0\0\17o\b\94\ 6\0\0#q PXIl/+em-\0\0\0\17o\b\9c\ 6\0\0#q 0IMHNYJa-\0\0\0\17o\b¤\ 6\0\0#q XBEsiKQh-\0\0\0\17o\b¬\ 6\0\0#q /7QwsC9g-\0\0\0\17o\b´\ 6\0\0#q AauDvWtM-\0\0\0\17o\b¼\ 6\0\0#q EBWhGBIB-\0\0\0\17o\bÄ\ 6\0\0#q AerIYlBU-\0\0\0\17o\bÌ\ 6\0\0#q SzPasze1-\0\0\0\17o\bÔ\ 6\0\0#q 5BfAyGrr-\0\0\0\17o\bÜ\ 6\0\0#q 284QNjGN-\0\0\0\17o\bä\ 6\0\0#q EmaUphiM-\0\0\0\17o\bì\ 6\0\0#q xEMwCZjA-\0\0\0\17o\bô\ 6\0\0#q YRpMiZBM-\0\0\0\17o\bü\ 6\0\0#q pEMkkQzI-\0\0\0\17o\b\ 4\a\0\0#q wTDu5zru-\0\0\0\17o\b\f\a\0\0#q Xd1xdQ6A-\0\0\0\17o\b\14\a\0\0#q 6E7m7d03-\0\0\0\17o\b\1c\a\0\0#q OLnXOxd3-\0\0\0\17o\b$\a\0\0#q HBu50dl0-\0\0\0\17o\b,\a\0\0#q JOhxS4Hd-\0\0\0\17o\b4\a\0\0#q HczuO647-\0\0\0\17o\b<\a\0\0#q uuLu6650-\0\0\0\17o\bD\a\0\0#q O67t3Duu-\0\0\0\17o\bL\a\0\0#q 3DucukzR-\0\0\0\17o\bT\a\0\0#q KIMhsUjS-\0\0\0\17o\b\\a\0\0#q QQxDIzQJ-\0\0\0\17o\bd\a\0\0#q gxohEkYT-\0\0\0\17o\bl\a\0\0#q YkZsAxSD-\0\0\0\17o\bt\a\0\0#q GCJJERhp-\0\0\0\17o\b|\a\0\0#q EAygoZRE-\0\0\0\17o\b\84\a\0\0#q SSEjMpFE-\0\0\0\17o\b\8c\a\0\0#q 0UpJlBkI-\0\0\0\17o\b\94\a\0\0#q YwoyQ7/2-\0\0\0\17o\b\9c\a\0\0#q f9H/Py8r-\0\0\0\17o\b¤\a\0\0#q oY3wEn8n-\0\0\0\17o\b¬\a\0\0#q r7+72ybZ-\0\0\0\17o\b´\a\0\0#q tybdqY06-\0\0\0\17o\b¼\a\0\0#q yp1tjGVm-\0\0\0\17o\bÄ\a\0\0#q smJvG48y-\0\0\0\17o\bÌ\a\0\0#q 89EXnvy9-\0\0\0\17o\bÔ\a\0\0#q F6OvX0vp-\0\0\0\17o\bÜ\a\0\0#q BSIEiSRA-\0\0\0\17o\bä\a\0\0#q mgSASYSk-\0\0\0\17o\bì\a\0\0#q CGBkyc5J-\0\0\0\17o\bô\a\0\0#q 63pgiRBN-\0\0\0\17o\bü\a\0\0#q sJW2xjGm-\0\0\0\17o\b\ 4\b\0\0#q mNsf9v7R-\0\0\0\17o\b\f\b\0\0#q z1rueFmZ-\0\0\0\17o\b\14\b\0\0#q cfXzw/zT-\0\0\0\17o\b\1c\b\0\0#q GRYxsYm2-\0\0\0\17o\b$\b\0\0#q NjbbfXD6-\0\0\0\17o\b,\b\0\0#q 4GtivKx5-\0\0\0\17o\b4\b\0\0#q t9eubzms-\0\0\0\17o\b<\b\0\0#q MTbf9rTf-\0\0\0\17o\bD\b\0\0#q KRsYx7YR-\0\0\0\17o\bL\b\0\0#q jHWL7OoA-\0\0\0\17o\bT\b\0\0#q JpsFBJgy-\0\0\0\17o\b\\b\0\0#q AEzSJiLH-\0\0\0\17o\bd\b\0\0#q xfJKWQgS-\0\0\0\17o\bl\b\0\0#q lJjGduRq-\0\0\0\17o\bt\b\0\0#q RxDIoETG-\0\0\0\17o\b|\b\0\0#q 4wj+VgUj-\0\0\0\17o\b\84\b\0\0#q nMt5PXnm-\0\0\0\17o\b\8c\b\0\0#q vEQwO7oj-\0\0\0\17o\b\94\b\0\0#q zu7lxu7u-\0\0\0\17o\b\9c\b\0\0#q asg9T00z-\0\0\0\17o\b¤\b\0\0#q jrtcaG2R-\0\0\0\17o\b¬\b\0\0#q KIwyHx2v-\0\0\0\17o\b´\b\0\0#q Ucbjd0OX-\0\0\0\17o\b¼\b\0\0#q XvfNafFE-\0\0\0\17o\bÄ\b\0\0#q 3u3t7bu9-\0\0\0\17o\bÌ\b\0\0#q TpJ1t6SK-\0\0\0\17o\bÔ\b\0\0#q h9vi13hQ-\0\0\0\17o\bÜ\b\0\0#q UX4d307p-\0\0\0\17o\bä\b\0\0#q PHt553zx-\0\0\0\17o\bì\b\0\0#q xHMGb4Kr-\0\0\0\17o\bô\b\0\0#q bbvJGTCc-\0\0\0\17o\bü\b\0\0#q Ns3WmOyG-\0\0\0\17o\b\ 4  \0\0#q 2fg5vsuZ-\0M        \0\0\17o\b\f  \0\0#q jMi+lacp-\0M        \0\0\17o\b\14  \0\0#q Ncvr0XeK-\0M        \0\0\17o\b\1c  \0\0#q DnafDcIv-\0M        \0\0\17o\b$  \0\0#q hyL7927r-\0M        \0\0\17o\b,  \0\0#q r7/Pzfj7-\0M        \0\0\17o\b4  \0\0#q qLVW5dFK-\0M        \0\0\17o\b<  \0\0#q Ig8+fKpu-\0M        \0\0\17o\bD  \0\0#q xf+vfhB+-\0M        \0\0\17o\bL  \0\0#q 73vWXz3q-\0M        \0\0\17o\bT  \0\0#q CPPfw32M-\0M        \0\0\17o\b\  \0\0#q n4c/9mtO-\0M        \0\0\17o\bd  \0\0#q NctW/fc1-\0M        \0\0\17o\bl  \0\0#q sYad9JYn-\0M        \0\0\17o\bt  \0\0#q /D1DlDPo-\0M        \0\0\17o\b|  \0\0#q yyc7D5bS-\0M        \0\0\17o\b\84  \0\0#q i3ncMPNH-\0M        \0\0\17o\b\8c  \0\0#q bWmvm42e-\0M        \0\0\17o\b\94  \0\0#q ODHImqoo-\0M        \0\0\17o\b\9c  \0\0#q iuXwn95X-\0M        \0\0\17o\b¤  \0\0#q ZlmKYKGK-\0M        \0\0\17o\b¬  \0\0#q 7KdA6lrg-\0M        \0\0\17o\b´  \0\0#q zZpEiUcc-\0M        \0\0\17o\b¼  \0\0#q ypzKofPy-\0M        \0\0\17o\bÄ  \0\0#q 4kbjq6Nh-\0M        \0\0\17o\bÌ  \0\0#q o/ou++j5-\0M        \0\0\17o\bÔ  \0\0#q g2i5alDG-\0M        \0\0\17o\bÜ  \0\0#q /G3Cb0ya-\0M        \0\0\17o\bä  \0\0#q OY3lH7wd-\0M        \0\0\17o\bì  \0\0#q 83fLG1uQ-\0M        \0\0\17o\bô  \0\0#q 0nDG18UH-\0M        \0\0\17o\bü  \0\0#q nnOOsy+Y-\0M        \0\0\17o\b\ 4
+\0\0#q 4u2Nv5Hl-\0M       \0\0\17o\b\f
+\0\0#q jTCKmSJY-\0M       \0\0\17o\b\14
+\0\0#q yBhnB1Lb-\0M       \0\0\17o\b\1c
+\0\0#q bafjgaat-\0M       \0\0\17o\b$
+\0\0#q 8zzctvDj-\0M       \0\0\17o\b,
+\0\0#q PPy7e5Id-\0M       \0\0\17o\b4
+\0\0#q yZHPSTxq-\0M       \0\0\17o\b<
+\0\0#q /zkHjinr-\0M       \0\0\17o\bD
+\0\0#q I5v0/nmG-\0M       \0\0\17o\bL
+\0\0#q Pp+JUz4o-\0M       \0\0\17o\bT
+\0\0#q dkc9b4/c-\0M       \0\0\17o\b\
+\0\0#q ze19oRNO-\0M       \0\0\17o\bd
+\0\0#q jG2wb+Pk-\0M       \0\0\17o\bl
+\0\0#q Wtt4RRjb-\0M       \0\0\17o\bt
+\0\0#q BsfupHPO-\0M       \0\0\17o\b|
+\0\0#q 3Mmgc18a-\0M       \0\0\17o\b\84
+\0\0#q z57U+TM7-\0M       \0\0\17o\b\8c
+\0\0#q gQsH90UP-\0M       \0\0\17o\b\94
+\0\0#q HJCZN4Ws-\0M       \0\0\17o\b\9c
+\0\0#q aY383qkb-\0M       \0\0\17o\b¤
+\0\0#q xxO20pI2-\0M       \0\0\17o\b¬
+\0\0#q 3JHbCr3s-\0M       \0\0\17o\b´
+\0\0#q snqkVFJG-\0M       \0\0\17o\b¼
+\0\0#q /lN5x6yQ-\0M       \0\0\17o\bÄ
+\0\0#q ydwiaSA6-\0M       \0\0\17o\bÌ
+\0\0#q rcgBoSxE-\0M       \0\0\17o\bÔ
+\0\0#q DRKIuS1s-\0M       \0\0\17o\bÜ
+\0\0#q lJsq1MtS-\0M       \0\0\17o\bä
+\0\0#q 6koA5+jF-\0M       \0\0\17o\bì
+\0\0#q Gb17XFu0-\0M       \0\0\17o\bô
+\0\0#q owrTZZSq-\0M       \0\0\17o\bü
+\0\0#q sjrkmLVo-\0M       \0\0\17o\b\ 4\v\0\0#q 2tSN44ac-\0\0\0\17o\b\f\v\0\0#q fvD3aWfO-\0\0\0\17o\b\14\v\0\0#q erth5lG/-\0\0\0\17o\b\1c\v\0\0#q Jlkfp6bq-\0\0\0\17o\b$\v\0\0#q UbOZs2Fp-\0\0\0\17o\b,\v\0\0#q VptDIwCu-\0\0\0\17o\b4\v\0\0#q WVgqIgkg-\0\0\0\17o\b<\v\0\0#q JMtDBFi+-\0\0\0\17o\bD\v\0\0#q 2FpRDhEI-\0\0\0\17o\bL\v\0\0#q JAKJtPXl-\0\0\0\17o\bT\v\0\0#q oMoKGWpU-\0\0\0\17o\b\\v\0\0#q 0YvH9h2n-\0\0\0\17o\bd\v\0\0#q x/hxra8/-\0\0\0\17o\bl\v\0\0#q 8UoaoWbi-\0\0\0\17o\bt\v\0\0#q a9EeoTlN-\0\0\0\17o\b|\v\0\0#q 7Bd5PNdc-\0\0\0\17o\b\84\v\0\0#q CDKemn+L-\0\0\0\17o\b\8c\v\0\0#q cY2qMUXG-\0\0\0\17o\b\94\v\0\0#q ibc0a33/-\0\0\0\17o\b\9c\v\0\0#q wjqMN0s8-\0\0\0\17o\b¤\v\0\0#q PmTeeup7-\0\0\0\17o\b¬\v\0\0#q 6JA7aKr1-\0\0\0\17o\b´\v\0\0#q nMbhIkn1-\0\0\0\17o\b¼\v\0\0#q aX4m5rTP-\0\0\0\17o\bÄ\v\0\0#q H4aOBlTQ-\0\0\0\17o\bÌ\v\0\0#q I35HXHwt-\0\0\0\17o\bÔ\v\0\0#q J9z1XuF9-\0\0\0\17o\bÜ\v\0\0#q EQDwDnCS-\0\0\0\17o\bä\v\0\0#q 3S9W358a-\0\0\0\17o\bì\v\0\0#q /E4pTeTS-\0\0\0\17o\bô\v\0\0#q VvyKGWTK-\0\0\0\17o\bü\v\0\0#q /n4Xp7V4-\0\0\0\17o\b\ 4\f\0\0#q dB64Ua3Q-\0\0\0\17o\b\f\f\0\0#q BIaDtzTs-\0\0\0\17o\b\14\f\0\0#q XpXV1k9E-\0\0\0\17o\b\1c\f\0\0#q 54ousxG/-\0\0\0\17o\b$\f\0\0#q XtEhuaGm-\0\0\0\17o\b,\f\0\0#q yCefTL/r-\0\0\0\17o\b4\f\0\0#q 3478anc7-\0\0\0\17o\b<\f\0\0#q 8deNRjg9-\0\0\0\17o\bD\f\0\0#q uchGVxVD-\0\0\0\17o\bL\f\0\0#q Fq6cMZqI-\0\0\0\17o\bT\f\0\0#q dp0ihq0x-\0\0\0\17o\b\\f\0\0#q oIf1zldy-\0\0\0\17o\bd\f\0\0#q BS011SFz-\0\0\0\17o\bl\f\0\0#q q08qfSxV-\0\0\0\17o\bt\f\0\0#q 8u0cT70d-\0\0\0\17o\b|\f\0\0#q Zgp8ebjk-\0\0\0\17o\b\84\f\0\0#q 800pU8m2-\0\0\0\17o\b\8c\f\0\0#q s1kKdj+z-\0\0\0\17o\b\94\f\0\0#q vmBEEU+P-\0\0\0\17o\b\9c\f\0\0#q 0+FlzrhO-\0\0\0\17o\b¤\f\0\0#q f/ifG2tO-\0\0\0\17o\b¬\f\0\0#q smrlp7B8-\0\0\0\17o\b´\f\0\0#q 8bbCY9u1-\0\0\0\17o\b¼\f\0\0#q VFK7Yavj-\0\0\0\17o\bÄ\f\0\0#q SQ7xtE94-\0\0\0\17o\bÌ\f\0\0#q 3aiJb59/-\0\0\0\17o\bÔ\f\0\0#q et60wn2v-\0\0\0\17o\bÜ\f\0\0#q rgeV/jeN-\0\0\0\17o\bä\f\0\0#q d+O/Wt/f-\0\0\0\17o\bì\f\0\0#q p6dNf7iJ-\0\0\0\17o\bô\f\0\0#q A5QICcGy-\0\0\0\17o\bü\f\0\0#q iKgpFEFQ-\0\0\0\17o\b\ 4\r\0\0#q iCjEGEQC-\0\0\0\17o\b\f\r\0\0#q LBIioACS-\0\0\0\17o\b\14\r\0\0#q IqiCxSCq-\0\0\0\17o\b\1c\r\0\0#q IxJIw1GQ-\0\0\0\17o\b$\r\0\0#q 0Ua1Vam2-\0\0\0\17o\b,\r\0\0#q qYsmg1rV-\0\0\0\17o\b4\r\0\0#q TbQlmjVb-\0\0\0\17o\b<\r\0\0#q WbaGLbU1-\0\0\0\17o\bD\r\0\0#q kWtlqWrN-\0\0\0\17o\bL\r\0\0#q LVNNaaQI-\0\0\0\17o\bT\r\0\0#q CZqIhD/Q-\0\0\0\17o\b\\r\0\0#q iASyQCUE-\0\0\0\17o\bd\r\0\0#q BKiRKRAJ-\0\0\0\17o\bl\r\0\0#q SUiASySK-\0\0\0\17o\bt\r\0\0#q RAJSD/zA-\0\0\0\17o\b|\r\0\0#q gJUghMIg-\0\0\0\17o\b\84\r\0\0#q EojKiCf+-\0\0\0\17o\b\8c\r\0\0#q CIBP9wIC-\0\0\0\17o\b\94\r\0\0#q fq+/889/-\0\0\0\17o\b\9c\r\0\0#q 0uxkuba/-\0\0\0\17o\b¤\r\0\0#q pJdybzbJ-\0\0\0\17o\b¬\r\0\0#q vEsZ/CpE-\0\0\0\17o\b´\r\0\0#q x89uGn3O-\0\0\0\17o\b¼\r\0\0#q ONVtyYDH-\0\0\0\17o\bÄ\r\0\0#q CGIxNyIx-\0\0\0\17o\bÌ\r\0\0#q JsYgJYbH-\0\0\0\17o\bÔ\r\0\0#q +I5RK73D-\0\0\0\17o\bÜ\r\0\0#q uMZminld-\0\0\0\17o\bä\r\0\0#q jp3e8QpD-\0\0\0\17o\bì\r\0\0#q Jju1QToo-\0\0\0\17o\bô\r\0\0#q 7pQFEpAB-\0\0\0\17o\bü\r\0\0#q pEV4CLQo-\0\0\0\17o\b\ 4\ e\0\0#q 2QicBAbo-\0\0\0\17o\b\f\ e\0\0#q SEINjsMs-\0\0\0\17o\b\14\ e\0\0#q Dt9BO4nJ-\0\0\0\17o\b\1c\ e\0\0#q zGstqAmg-\0\0\0\17o\b$\ e\0\0#q EJwhRygg-\0\0\0\17o\b,\ e\0\0#q JYoMJE0s-\0\0\0\17o\b4\ e\0\0#q Joa0zOdE-\0\0\0\17o\b<\ e\0\0#q gXdwiQss-\0\0\0\17o\bD\ e\0\0#q y4L3pzbM-\0\0\0\17o\bL\ e\0\0#q CwOaLEYF-\0\0\0\17o\bT\ e\0\0#q DBQKzaJC-\0\0\0\17o\b\\ e\0\0#q jFh2yhQO-\0\0\0\17o\bd\ e\0\0#q HbgLVMHX-\0\0\0\17o\bl\ e\0\0#q FUf7jhKT-\0\0\0\17o\bt\ e\0\0#q XPWsNDuE-\0\0\0\17o\b|\ e\0\0#q PXRHfJuL-\0\0\0\17o\b\84\ e\0\0#q lKqls5Tx-\0\0\0\17o\b\8c\ e\0\0#q pCC1IgIH-\0\0\0\17o\b\94\ e\0\0#q nTm5PeWk-\0\0\0\17o\b\9c\ e\0\0#q wwjobODc-\0\0\0\17o\b¤\ e\0\0#q CdTCa0Yo-\0\0\0\17o\b¬\ e\0\0#q DvMlcZwv-\0\0\0\17o\b´\ e\0\0#q mQTkg8KC-\0\0\0\17o\b¼\ e\0\0#q 06oALrhz-\0\0\0\17o\bÄ\ e\0\0#q ZqrQmQq6-\0\0\0\17o\bÌ\ e\0\0#q E28rdrSU-\0\0\0\17o\bÔ\ e\0\0#q xBeLkBsh-\0\0\0\17o\bÜ\ e\0\0#q IKRh04g4-\0\0\0\17o\bä\ e\0\0#q LDdsmTCp-\0\0\0\17o\bì\ e\0\0#q NKSszbu9-\0\0\0\17o\bô\ e\0\0#q lHOoAwkm-\0\0\0\17o\bü\ e\0\0#q TDrOKCmS-\0\0\0\17o\b\ 4\ f\0\0#q qExdOsOV-\0\0\0\17o\b\f\ f\0\0#q D1XsAQpF-\0\0\0\17o\b\14\ f\0\0#q VMukLCcG-\0\0\0\17o\b\1c\ f\0\0#q YGVFpAp4-\0\0\0\17o\b$\ f\0\0#q Bg0VnXFF-\0\0\0\17o\b,\ f\0\0#q jjdC8avB-\0\0\0\17o\b4\ f\0\0#q E6BepA3q-\0\0\0\17o\b<\ f\0\0#q 6bOgot8L-\0\0\0\17o\bD\ f\0\0#q tHTiIlkb-\0\0\0\17o\bL\ f\0\0#q ARVEcldJ-\0\0\0\17o\bT\ f\0\0#q oYt4Piml-\0\0\0\17o\b\\ f\0\0#q s9rpBzDN-\0\0\0\17o\bd\ f\0\0#q zeMwOdNA-\0\0\0\17o\bl\ f\0\0#q dSkWo4Cr-\0\0\0\17o\bt\ f\0\0#q sTZ065yP-\0\0\0\17o\b|\ f\0\0#q aODXMCkc-\0\0\0\17o\b\84\ f\0\0#q ZCarR0LU-\0\0\0\17o\b\8c\ f\0\0#q voX1R3nD-\0\0\0\17o\b\94\ f\0\0#q EsLtlykl-\0\0\0\17o\b\9c\ f\0\0#q Mo3qrYHI-\0\0\0\17o\b¤\ f\0\0#q guO1Ci7x-\0\0\0\17o\b¬\ f\0\0#q RXFwJZjf-\0\0\0\17o\b´\ f\0\0#q TrtZfAyz-\0\0\0\17o\b¼\ f\0\0#q UKhgJcLO-\0\0\0\17o\bÄ\ f\0\0#q IzeTvWjG-\0\0\0\17o\bÌ\ f\0\0#q zDE27OYM-\0\0\0\17o\bÔ\ f\0\0#q E6dM3Z2k-\0\0\0\17o\bÜ\ f\0\0#q VeKcV1I4-\0\0\0\17o\bä\ f\0\0#q jKga0x3v-\0\0\0\17o\bì\ f\0\0#q CKlcUmkj-\0\0\0\17o\bô\ f\0\0#q RE1Zzsmx-\0\0\0\17o\bü\ f\0\0#q sq7L3zOn-\0\0\0\17o\b\ 4\10\0\0#q Q8wzeGDZ-\0\0\0\17o\b\f\10\0\0#q pQO0uN0N-\0\0\0\17o\b\14\10\0\0#q pZhcQSuV-\0\0\0\17o\b\1c\10\0\0#q ETbLL2zv-\0\0\0\17o\b$\10\0\0#q KTzqjtBh-\0\0\0\17o\b,\10\0\0#q wIXGaksi-\0\0\0\17o\b4\10\0\0#q 8rYKx2Wi-\0\0\0\17o\b<\10\0\0#q 6C1J3Ulb-\0\0\0\17o\bD\10\0\0#q 1dwqkjat-\0\0\0\17o\bL\10\0\0#q FU6mO1F5-\0\0\0\17o\bT\10\0\0#q Ii+bGnOM-\0\0\0\17o\b\\10\0\0#q aOlc5EKe-\0\0\0\17o\bd\10\0\0#q kFDaQ9tj-\0\0\0\17o\bl\10\0\0#q CU1yqcE6-\0\0\0\17o\bt\10\0\0#q 6xRVh1nd-\0\0\0\17o\b|\10\0\0#q LcBt7ThN-\0\0\0\17o\b\84\10\0\0#q I8LbowKP-\0\0\0\17o\b\8c\10\0\0#q Md0AHRNh-\0\0\0\17o\b\94\10\0\0#q dYOJksYI-\0\0\0\17o\b\9c\10\0\0#q QETYuK3y-\0\0\0\17o\b¤\10\0\0#q tX1UEkFH-\0\0\0\17o\b¬\10\0\0#q ZLCghijo-\0\0\0\17o\b´\10\0\0#q BdFzCgKJ-\0\0\0\17o\b¼\10\0\0#q mlJSADdF-\0\0\0\17o\bÄ\10\0\0#q 5CnsMoIp-\0\0\0\17o\bÌ\10\0\0#q pMjeqUgB-\0\0\0\17o\bÔ\10\0\0#q rXACCcsh-\0\0\0\17o\bÜ\10\0\0#q XWsqyAge-\0\0\0\17o\bä\10\0\0#q nB7IMoT6-\0\0\0\17o\bì\10\0\0#q ZghKl5lj-\0\0\0\17o\bô\10\0\0#q wkJTUVQu-\0\0\0\17o\bü\10\0\0#q hTp3YIWg-\0\0\0\17o\b\ 4\11\0\0#q QCl8eBO7-\0\0\0\17o\b\f\11\0\0#q FTzwWGBE-\0\0\0\17o\b\14\11\0\0#q w8BDaLuS-\0\0\0\17o\b\1c\11\0\0#q qMmM0wWE-\0\0\0\17o\b$\11\0\0#q 6QVsFIpR-\0\0\0\17o\b,\11\0\0#q wmCRA128-\0\0\0\17o\b4\11\0\0#q BCKpdaVu-\0\0\0\17o\b<\11\0\0#q nHbkyuSc-\0\0\0\17o\bD\11\0\0#q BsqeFjLJ-\0\0\0\17o\bL\11\0\0#q qAw0WUUI-\0\0\0\17o\bT\11\0\0#q hMN3S5Ke-\0\0\0\17o\b\\11\0\0#q ua7Wynjn-\0\0\0\17o\bd\11\0\0#q ew31G8je-\0\0\0\17o\bl\11\0\0#q cPcVIYxG-\0\0\0\17o\bt\11\0\0#q w3trGziG-\0\0\0\17o\b|\11\0\0#q oCdTHKPO-\0\0\0\17o\b\84\11\0\0#q EpO5732V-\0\0\0\17o\b\8c\11\0\0#q 4lnVA4Vv-\0\0\0\17o\b\94\11\0\0#q Ksc+R4OH-\0\0\0\17o\b\9c\11\0\0#q HQz2JkHF-\0\0\0\17o\b¤\11\0\0#q dwSzeiDB-\0\0\0\17o\b¬\11\0\0#q UGBiQAJc-\0\0\0\17o\b´\11\0\0#q znd7Z0oC-\0\0\0\17o\b¼\11\0\0#q mMykE5Kj-\0\0\0\17o\bÄ\11\0\0#q ZuKCyKhd-\0\0\0\17o\bÌ\11\0\0#q 5nTSBBtu-\0\0\0\17o\bÔ\11\0\0#q 1sj6s2JC-\0\0\0\17o\bÜ\11\0\0#q iZBgpYdO-\0\0\0\17o\bä\11\0\0#q IM4luy6e-\0\0\0\17o\bì\11\0\0#q vBlYUYld-\0\0\0\17o\bô\11\0\0#q UQQZKOoA-\0\0\0\17o\bü\11\0\0#q iZL4d7fe-\0\0\0\17o\b\ 4\12\0\0#q 003l07CD-\0\0\0\17o\b\f\12\0\0#q omKNzZgX-\0\0\0\17o\b\14\12\0\0#q iveIrzXj-\0\0\0\17o\b\1c\12\0\0#q CZel4Bcy-\0\0\0\17o\b$\12\0\0#q Y752rec3-\0\0\0\17o\b,\12\0\0#q eRoT6jAG-\0\0\0\17o\b4\12\0\0#q ZAGEc3kk-\0\0\0\17o\b<\12\0\0#q ZQhLcVNC-\0\0\0\17o\bD\12\0\0#q q+qVFSim-\0\0\0\17o\bL\12\0\0#q BuCKZeQr-\0\0\0\17o\bT\12\0\0#q 5FF85WTJ-\0\0\0\17o\b\\12\0\0#q ZzIXXwto-\0\0\0\17o\bd\12\0\0#q 0cB2Cpnt-\0\0\0\17o\bl\12\0\0#q lWr0xWTf-\0\0\0\17o\bt\12\0\0#q Lt1yrDg8-\0\0\0\17o\b|\12\0\0#q 503VJAdH-\0\0\0\17o\b\84\12\0\0#q 0uqes4bJ-\0\0\0\17o\b\8c\12\0\0#q d5wsYFak-\0\0\0\17o\b\94\12\0\0#q MZlVS7ls-\0\0\0\17o\b\9c\12\0\0#q Eko6gj0L-\0\0\0\17o\b¤\12\0\0#q qyENh3rv-\0\0\0\17o\b¬\12\0\0#q G7qYJiQ9-\0\0\0\17o\b´\12\0\0#q xoY33Uth-\0\0\0\17o\b¼\12\0\0#q sUwRtEF6-\0\0\0\17o\bÄ\12\0\0#q HUjtHWGA-\0\0\0\17o\bÌ\12\0\0#q 1q5N1HNg-\0\0\0\17o\bÔ\12\0\0#q iI7rFa5Q-\0\0\0\17o\bÜ\12\0\0#q iEzuCDZ0-\0\0\0\17o\bä\12\0\0#q 3KzKswfM-\0\0\0\17o\bì\12\0\0#q 7185zaRU-\0\0\0\17o\bô\12\0\0#q kRyiUUss-\0\0\0\17o\bü\12\0\0#q QSPAwlc6-\0\0\0\17o\b\ 4\13\0\0#q CAaa2KwB-\0\0\0\17o\b\f\13\0\0#q CwsOVTUr-\0\0\0\17o\b\14\13\0\0#q pamy4uS+-\0\0\0\17o\b\1c\13\0\0#q mkF2pVMr-\0\0\0\17o\b$\13\0\0#q pWpG7eYk-\0\0\0\17o\b,\13\0\0#q YjcqSMY+-\0\0\0\17o\b4\13\0\0#q pyDKhDIL-\0\0\0\17o\b<\13\0\0#q MmR5HGGc-\0\0\0\17o\bD\13\0\0#q 5ml4LJEa-\0\0\0\17o\bL\13\0\0#q A2sxQOlw-\0\0\0\17o\bT\13\0\0#q RDZ0WyiD-\0\0\0\17o\b\\13\0\0#q jMTFnLRK-\0\0\0\17o\bd\13\0\0#q Rw6sK02p-\0\0\0\17o\bl\13\0\0#q h9cZnMe8-\0\0\0\17o\bt\13\0\0#q fZrmsJ07-\0\0\0\17o\b|\13\0\0#q 10vNY0uY-\0\0\0\17o\b\84\13\0\0#q 4QFbSrzd-\0\0\0\17o\b\8c\13\0\0#q WY7FvR2o-\0\0\0\17o\b\94\13\0\0#q W0ZI0zyU-\0\0\0\17o\b\9c\13\0\0#q KMETaoJF-\0\0\0\17o\b¤\13\0\0#q AUTUyWua-\0\0\0\17o\b¬\13\0\0#q SjAQt4Db-\0\0\0\17o\b´\13\0\0#q xyqAYcj2-\0\0\0\17o\b¼\13\0\0#q ysQneAWK-\0\0\0\17o\bÄ\13\0\0#q MQAWMoBB-\0\0\0\17o\bÌ\13\0\0#q hIT0HPY5-\0\0\0\17o\bÔ\13\0\0#q ne8L49gq-\0\0\0\17o\bÜ\13\0\0#q YBFQhCXl-\0\0\0\17o\bä\13\0\0#q CmzuzQIm-\0\0\0\17o\bì\13\0\0#q hRcjCApq-\0\0\0\17o\bô\13\0\0#q iwAmbWJb-\0\0\0\17o\bü\13\0\0#q zsY5reBB-\0\0\0\17o\b\ 4\14\0\0#q 1xT5l5T1-\0\0\0\17o\b\f\14\0\0#q ybWy6V0t-\0\0\0\17o\b\14\14\0\0#q nJKrLM5W-\0\0\0\17o\b\1c\14\0\0#q HNy+RpkM-\0\0\0\17o\b$\14\0\0#q 2cyZ5heb-\0\0\0\17o\b,\14\0\0#q Ccdg7aCc-\0\0\0\17o\b4\14\0\0#q 7IdY80lC-\0\0\0\17o\b<\14\0\0#q FwSGCAXN-\0\0\0\17o\bD\14\0\0#q mQXb2QRQ-\0\0\0\17o\bL\14\0\0#q x7k3NRDG-\0\0\0\17o\bT\14\0\0#q XELYQ1gs-\0\0\0\17o\b\\14\0\0#q QhhUDum3-\0\0\0\17o\bd\14\0\0#q ZE72ughH-\0\0\0\17o\bl\14\0\0#q RdRDe5Te-\0\0\0\17o\bt\14\0\0#q 6qw1u1LB-\0\0\0\17o\b|\14\0\0#q 7lbNrJow-\0\0\0\17o\b\84\14\0\0#q 7QT1uAV3-\0\0\0\17o\b\8c\14\0\0#q LMgyxdGj-\0\0\0\17o\b\94\14\0\0#q CMORl8Gn-\0\0\0\17o\b\9c\14\0\0#q 2BQuwIUz-\0\0\0\17o\b¤\14\0\0#q m8BtHWJn-\0\0\0\17o\b¬\14\0\0#q ZGBtieoI-\0\0\0\17o\b´\14\0\0#q CDTvKJbI-\0\0\0\17o\b¼\14\0\0#q MisQ2U1B-\0\0\0\17o\bÄ\14\0\0#q CZoZlhQX-\0\0\0\17o\bÌ\14\0\0#q ygQBW0jt-\0\0\0\17o\bÔ\14\0\0#q gQdslCYN-\0\0\0\17o\bÜ\14\0\0#q crXVNnBA-\0\0\0\17o\bä\14\0\0#q +zLTmqmq-\0\0\0\17o\bì\14\0\0#q YeS9YapA-\0\0\0\17o\bô\14\0\0#q 12zNGgCP-\0\0\0\17o\bü\14\0\0#q sUFmdoio-\0\0\0\17o\b\ 4\15\0\0#q 3ByWaNXs-\0\0\0\17o\b\f\15\0\0#q 7NrZuGMr-\0\0\0\17o\b\14\15\0\0#q SZWRJA0v-\0\0\0\17o\b\1c\15\0\0#q OHdOWzMw-\0\0\0\17o\b$\15\0\0#q 8kjKrskd-\0\0\0\17o\b,\15\0\0#q tyHLanDt-\0\0\0\17o\b4\15\0\0#q iyJzpWVg-\0\0\0\17o\b<\15\0\0#q jo+aaaAk-\0\0\0\17o\bD\15\0\0#q qTKWLcdw-\0\0\0\17o\bL\15\0\0#q xANHQyoZ-\0\0\0\17o\bT\15\0\0#q 1XdCK2bi-\0\0\0\17o\b\\15\0\0#q AxFgjnDM-\0\0\0\17o\bd\15\0\0#q sxEk4wrW-\0\0\0\17o\bl\15\0\0#q TKgmoae5-\0\0\0\17o\bt\15\0\0#q DQbpESpt-\0\0\0\17o\b|\15\0\0#q b1u3Dbpe-\0\0\0\17o\b\84\15\0\0#q 6qOAZBKa-\0\0\0\17o\b\8c\15\0\0#q UBJKBZei-\0\0\0\17o\b\94\15\0\0#q CwEJ0Wgj-\0\0\0\17o\b\9c\15\0\0#q FAInS4JG-\0\0\0\17o\b¤\15\0\0#q F6SCWBfA-\0\0\0\17o\b¬\15\0\0#q 6F3ud3Yt-\0\0\0\17o\b´\15\0\0#q JTVontzK-\0\0\0\17o\b¼\15\0\0#q vsRDk5li-\0\0\0\17o\bÄ\15\0\0#q puE0+KVI-\0\0\0\17o\bÌ\15\0\0#q KnHbGmhh-\0\0\0\17o\bÔ\15\0\0#q DdShYAZ2-\0\0\0\17o\bÜ\15\0\0#q 0BJi8hNs-\0\0\0\17o\bä\15\0\0#q 22nd3MxN-\0\0\0\17o\bì\15\0\0#q WKTyqlNV-\0\0\0\17o\bô\15\0\0#q dr1vFs1k-\0\0\0\17o\bü\15\0\0#q iRRBRoZY-\0\0\0\17o\b\ 4\16\0\0#q Jt1SAw2W-\0\0\0\17o\b\f\16\0\0#q IVY7gXmt-\0\0\0\17o\b\14\16\0\0#q BFNaclgF-\0\0\0\17o\b\1c\16\0\0#q QFjwnNh/-\0\0\0\17o\b$\16\0\0#q g2AZt0p2-\0\0\0\17o\b,\16\0\0#q YbFHgZ1Z-\0\0\0\17o\b4\16\0\0#q kUHIuCAE-\0\0\0\17o\b<\16\0\0#q MTDITBEM-\0\0\0\17o\bD\16\0\0#q Bgx4Ecgg-\0\0\0\17o\bL\16\0\0#q OwyuETQ7-\0\0\0\17o\bT\16\0\0#q GUQsGRFZ-\0\0\0\17o\b\\16\0\0#q ENlWXORD-\0\0\0\17o\bd\16\0\0#q AZBg5I2Q-\0\0\0\17o\bl\16\0\0#q g0CU0NEc-\0\0\0\17o\bt\16\0\0#q uCVhf8E4-\0\0\0\17o\b|\16\0\0#q pyCmHivN-\0\0\0\17o\b\84\16\0\0#q aJAP8Dg6-\0\0\0\17o\b\8c\16\0\0#q HMU/BCCc-\0\0\0\17o\b\94\16\0\0#q RX/CAZi3-\0\0\0\17o\b\9c\16\0\0#q FTsR+gqa-\0\0\0\17o\b¤\16\0\0#q gg7gfXVQ-\0\0\0\17o\b¬\16\0\0#q F3AFS45i-\0\0\0\17o\b´\16\0\0#q g+iMnICO-\0\0\0\17o\b¼\16\0\0#q KROLlQG9-\0\0\0\17o\bÄ\16\0\0#q QyjKyxqt-\0\0\0\17o\bÌ\16\0\0#q rL7DL2NW-\0\0\0\17o\bÔ\16\0\0#q EoOARpsJ-\0\0\0\17o\bÜ\16\0\0#q ENtjCQig-\0\0\0\17o\bä\16\0\0#q yaiVbD8R-\0\0\0\17o\bì\16\0\0#q cRpvD0dJ-\0\0\0\17o\bô\16\0\0#q Yxh4KmIN-\0\0\0\17o\bü\16\0\0#q WGAOAshC-\0\0\0\17o\b\ 4\17\0\0#q D2ihhCBU-\0\0\0\17o\b\f\17\0\0#q w7Rz2iEe-\0\0\0\17o\b\14\17\0\0#q FpgIN0kK-\0\0\0\17o\b\1c\17\0\0#q qUcbsJC1-\0\0\0\17o\b$\17\0\0#q I9OQR1AR-\0\0\0\17o\b,\17\0\0#q qIJlDBA9-\0\0\0\17o\b4\17\0\0#q OIaiEhhK-\0\0\0\17o\b<\17\0\0#q 4RqJxpaG-\0\0\0\17o\bD\17\0\0#q 4HNX26+L-\0\0\0\17o\bL\17\0\0#q L2uVbzYr-\0\0\0\17o\bT\17\0\0#q 6uxSpDYD-\0\0\0\17o\b\\17\0\0#q ItapRNSD-\0\0\0\17o\bd\17\0\0#q SPMC40zS-\0\0\0\17o\bl\17\0\0#q hplaragE-\0\0\0\17o\bt\17\0\0#q HVTTzmCY-\0\0\0\17o\b|\17\0\0#q zRWDaG4b-\0\0\0\17o\b\84\17\0\0#q oqxNVpQe-\0\0\0\17o\b\8c\17\0\0#q /U/8feVF-\0\0\0\17o\b\94\17\0\0#q +H1z3Iy2-\0\0\0\17o\b\9c\17\0\0#q hnvDyeOt-\0\0\0\17o\b¤\17\0\0#q 5n1QI23z-\0\0\0\17o\b¬\17\0\0#q arZHe9m7-\0\0\0\17o\b´\17\0\0#q tUTEm75v-\0\0\0\17o\b¼\17\0\0#q IImeGztc-\0\0\0\17o\bÄ\17\0\0#q Nqf8/DK0-\0\0\0\17o\bÌ\17\0\0#q 7AS3hyuu-\0\0\0\17o\bÔ\17\0\0#q jbWlvld0-\0\0\0\17o\bÜ\17\0\0#q RqQIdaW8-\0\0\0\17o\bä\17\0\0#q VAyyAqKp-\0\0\0\17o\bì\17\0\0#q JUEU5BBq-\0\0\0\17o\bô\17\0\0#q ICLiixEH-\0\0\0\17o\bü\17\0\0#q 2fZwoinT-\0\0\0\17o\b\ 4\18\0\0#q hP1ruaww-\0\0\0\17o\b\f\18\0\0#q Wxs79RpI-\0\0\0\17o\b\14\18\0\0#q WIc1I6Vk-\0\0\0\17o\b\1c\18\0\0#q HrWTkb36-\0\0\0\17o\b$\18\0\0#q HKsT8aCE-\0\0\0\17o\b,\18\0\0#q dYQp8dyc-\0\0\0\17o\b4\18\0\0#q 8nHc5Tn1-\0\0\0\17o\b<\18\0\0#q GZ9DqfXs-\0\0\0\17o\bD\18\0\0#q +w6jU5vi-\0\0\0\17o\bL\18\0\0#q 5KOwjHVB-\0\0\0\17o\bT\18\0\0#q 4s9RJbGx-\0\0\0\17o\b\\18\0\0#q esXpEnue-\0\0\0\17o\bd\18\0\0#q ovCTuXRS-\0\0\0\17o\bl\18\0\0#q XfPMqMjx-\0\0\0\17o\bt\18\0\0#q q9le4We7-\0\0\0\17o\b|\18\0\0#q 4avJg7nr-\0\0\0\17o\b\84\18\0\0#q h8fkY4r3-\0\0\0\17o\b\8c\18\0\0#q uTybuqrI-\0\0\0\17o\b\94\18\0\0#q 5WCNRuBi-\0\0\0\17o\b\9c\18\0\0#q LUVuMAR0-\0\0\0\17o\b¤\18\0\0#q 2HDRwNFm-\0\0\0\17o\b¬\18\0\0#q hVQC0wOx-\0\0\0\17o\b´\18\0\0#q tAjoECQd-\0\0\0\17o\b¼\18\0\0#q IAuc+Zfa-\0\0\0\17o\bÄ\18\0\0#q Lo6O0IVM-\0\0\0\17o\bÌ\18\0\0#q EV4FEtlx-\0\0\0\17o\bÔ\18\0\0#q 4W2FCCd0-\0\0\0\17o\bÜ\18\0\0#q Phvqkylm-\0\0\0\17o\bä\18\0\0#q +T5VSzgZ-\0\0\0\17o\bì\18\0\0#q CqK7UNZc-\0\0\0\17o\bô\18\0\0#q +X11LEfD-\0\0\0\17o\bü\18\0\0#q 369NnPNn-\0\0\0\17o\b\ 4\19\0\0#q 684h236W-\0\0\0\17o\b\f\19\0\0#q bTiIcgob-\0\0\0\17o\b\14\19\0\0#q iiYguzQo-\0\0\0\17o\b\1c\19\0\0#q Gj4YxXj+-\0\0\0\17o\b$\19\0\0#q +cs4Tz0q-\0\0\0\17o\b,\19\0\0#q dHkwXXYu-\0\0\0\17o\b4\19\0\0#q qOxh4RlK-\0\0\0\17o\b<\19\0\0#q lgXcTb+Z-\0\0\0\17o\bD\19\0\0#q T58LL54/-\0\0\0\17o\bL\19\0\0#q X5UkWd6U-\0\0\0\17o\bT\19\0\0#q wSUtKWg8-\0\0\0\17o\b\\19\0\0#q ezAgn3Ll-\0\0\0\17o\bd\19\0\0#q VGy99KvH-\0\0\0\17o\bl\19\0\0#q ea5jdcQU-\0\0\0\17o\bt\19\0\0#q uTpOwzdq-\0\0\0\17o\b|\19\0\0#q e2VOu9t1-\0\0\0\17o\b\84\19\0\0#q 2gz7+79S-\0\0\0\17o\b\8c\19\0\0#q tp9hZGnb-\0\0\0\17o\b\94\19\0\0#q 9KZ0+UWV-\0\0\0\17o\b\9c\19\0\0#q GOfa8PL8-\0\0\0\17o\b¤\19\0\0#q MePzZ2jp-\0\0\0\17o\b¬\19\0\0#q XPc6c8Sz-\0\0\0\17o\b´\19\0\0#q 56UZnuR7-\0\0\0\17o\b¼\19\0\0#q VyqryWOd-\0\0\0\17o\bÄ\19\0\0#q ve7uxH+f-\0\0\0\17o\bÌ\19\0\0#q 7i9zTaJu-\0\0\0\17o\bÔ\19\0\0#q akt23DIb-\0\0\0\17o\bÜ\19\0\0#q PPKW3Wvw-\0\0\0\17o\bä\19\0\0#q vI5hyr5W-\0\0\0\17o\bì\19\0\0#q OMzSpMgc-\0\0\0\17o\bô\19\0\0#q Rs3ZkcLr-\0\0\0\17o\bü\19\0\0#q NrzmzOP/-\0\0\0\17o\b\ 4\1a\0\0#q kkQSPs/c-\0\0\0\17o\b\f\1a\0\0#q fx/623+6-\0\0\0\17o\b\14\1a\0\0#q 2xX7H7t/-\0\0\0\17o\b\1c\1a\0\0#q 15ZmW2yT-\0\0\0\17o\b$\1a\0\0#q /C26fxC/-\0\0\0\17o\b,\1a\0\0#q 1B/Nm/4v-\0\0\0\17o\b4\1a\0\0#q Hf4Y/W83-\0\0\0\17o\b<\1a\0\0#q vZdxnDDN-\0\0\0\17o\bD\1a\0\0#q atLLf4zJ-\0\0\0\17o\bL\1a\0\0#q 2SOOSTXt-\0\0\0\17o\bT\1a\0\0#q mh6bgfkM-\0\0\0\17o\b\\1a\0\0#q /aUg/9rY-\0\0\0\17o\bd\1a\0\0#q z+ROs5f0-\0\0\0\17o\bl\1a\0\0#q f7Np83tX-\0\0\0\17o\bt\1a\0\0#q E0ON27yn-\0\0\0\17o\b|\1a\0\0#q Of4eduzH-\0\0\0\17o\b\84\1a\0\0#q ucnkr/bP-\0\0\0\17o\b\8c\1a\0\0#q /xPo+Tm1-\0\0\0\17o\b\94\1a\0\0#q N30cm7RX-\0\0\0\17o\b\9c\1a\0\0#q Z2cox/U5-\0\0\0\17o\b¤\1a\0\0#q Js3cZ8ct-\0\0\0\17o\b¬\1a\0\0#q GrXWkfP6-\0\0\0\17o\b´\1a\0\0#q /AuC4YHo-\0\0\0\17o\b¼\1a\0\0#q +wmtGj+j-\0\0\0\17o\bÄ\1a\0\0#q DpRjOnhC-\0\0\0\17o\bÌ\1a\0\0#q Rui6MS/o-\0\0\0\17o\bÔ\1a\0\0#q i+aX3Nt6-\0\0\0\17o\bÜ\1a\0\0#q cccYzh37-\0\0\0\17o\bä\1a\0\0#q RNxmjpw8-\0\0\0\17o\bì\1a\0\0#q 54P83H24-\0\0\0\17o\bô\1a\0\0#q dWtaabtn-\0\0\0\17o\bü\1a\0\0#q mK/F6q09-\0\0\0\17o\b\ 4\e\0\0#q XRzP6HOT-\0\0\0\17o\b\f\e\0\0#q UEd6oETQ-\0\0\0\17o\b\14\e\0\0#q UHmXUt2t-\0\0\0\17o\b\1c\e\0\0#q oYLMjFiM-\0\0\0\17o\b$\e\0\0#q iAgDhaE2-\0\0\0\17o\b,\e\0\0#q Dii0fPTc-\0\0\0\17o\b4\e\0\0#q NGH7p5jf-\0\0\0\17o\b<\e\0\0#q 0kPg3fXk-\0\0\0\17o\bD\e\0\0#q ttKDMGej-\0\0\0\17o\bL\e\0\0#q 3IKP2KJO-\0\0\0\17o\bT\e\0\0#q lt/R+CT7-\0\0\0\17o\b\\e\0\0#q PcY3AZxs-\0\0\0\17o\bd\e\0\0#q oa+WREFD-\0\0\0\17o\bl\e\0\0#q 5vk4TdXR-\0\0\0\17o\bt\e\0\0#q 6uRq+MzK-\0\0\0\17o\b|\e\0\0#q xSvDrq2a-\0\0\0\17o\b\84\e\0\0#q k+c2275m-\0\0\0\17o\b\8c\e\0\0#q d5ettnJp-\0\0\0\17o\b\94\e\0\0#q +4/Y+HV6-\0\0\0\17o\b\9c\e\0\0#q qxudXLde-\0\0\0\17o\b¤\e\0\0#q dt6uSdTK-\0\0\0\17o\b¬\e\0\0#q GaMJP6jN-\0\0\0\17o\b´\e\0\0#q bZZww68/-\0\0\0\17o\b¼\e\0\0#q M8PzplDq-\0\0\0\17o\bÄ\e\0\0#q Yusu8ZQB-\0\0\0\17o\bÌ\e\0\0#q AFQUJ8y9-\0\0\0\17o\bÔ\e\0\0#q CB2DjMri-\0\0\0\17o\bÜ\e\0\0#q YXiyEoiF-\0\0\0\17o\bä\e\0\0#q RoNAmCWW-\0\0\0\17o\bì\e\0\0#q SMuP4EvG-\0\0\0\17o\bô\e\0\0#q SYUfk7ut-\0\0\0\17o\bü\e\0\0#q 8CD78n+j-\0\0\0\17o\b\ 4\1c\0\0#q +iqqihWU-\0\0\0\17o\b\f\1c\0\0#q fmZb8RVj-\0\0\0\17o\b\14\1c\0\0#q X9LiIokX-\0\0\0\17o\b\1c\1c\0\0#q hgfqc+hj-\0\0\0\17o\b$\1c\0\0#q bZR8xHTS-\0\0\0\17o\b,\1c\0\0#q G2Nvltye-\0\0\0\17o\b4\1c\0\0#q EkBoz+i+-\0\0\0\17o\b<\1c\0\0#q EBqwZMS3-\0\0\0\17o\bD\1c\0\0#q bqJsEaIa-\0\0\0\17o\bL\1c\0\0#q GhUYwpTg-\0\0\0\17o\bT\1c\0\0#q GQIwCHFS-\0\0\0\17o\b\\1c\0\0#q PHf9PH5s-\0\0\0\17o\bd\1c\0\0#q oVQwNtyu-\0\0\0\17o\bl\1c\0\0#q 3LdB4H7h-\0\0\0\17o\bt\1c\0\0#q 7qHvPtJP-\0\0\0\17o\b|\1c\0\0#q gw2vhhBm-\0\0\0\17o\b\84\1c\0\0#q wPscrZ9i-\0\0\0\17o\b\8c\1c\0\0#q B0ofZ8/K-\0\0\0\17o\b\94\1c\0\0#q 22LZTR+R-\0\0\0\17o\b\9c\1c\0\0#q 6NBmMbWj-\0\0\0\17o\b¤\1c\0\0#q +o8N5NK4-\0\0\0\17o\b¬\1c\0\0#q btPxmPo3-\0\0\0\17o\b´\1c\0\0#q Yvl53M08-\0\0\0\17o\b¼\1c\0\0#q zTwps2Ux-\0\0\0\17o\bÄ\1c\0\0#q 8n29W7or-\0\0\0\17o\bÌ\1c\0\0#q ecnOTH4L-\0\0\0\17o\bÔ\1c\0\0#q DyKfk9ee-\0\0\0\17o\bÜ\1c\0\0#q nmurrptb-\0\0\0\17o\bä\1c\0\0#q 6EDAylMS-\0\0\0\17o\bì\1c\0\0#q yCFoPt68-\0\0\0\17o\bô\1c\0\0#q A+P2W2rx-\0\0\0\17o\bü\1c\0\0#q pvgRO7eO-\0\0\0\17o\b\ 4\1d\0\0#q TE06p78T-\0\0\0\17o\b\f\1d\0\0#q pM095szd-\0\0\0\17o\b\14\1d\0\0#q T5dJNkqV-\0\0\0\17o\b\1c\1d\0\0#q 9yvdk2Kj-\0\0\0\17o\b$\1d\0\0#q Rq7ZNv2M-\0\0\0\17o\b,\1d\0\0#q /zD1uISN-\0\0\0\17o\b4\1d\0\0#q H5LRt2dP-\0\0\0\17o\b<\1d\0\0#q bXxwgg+a-\0\0\0\17o\bD\1d\0\0#q STdJarr4-\0\0\0\17o\bL\1d\0\0#q +t4IO5+i-\0\0\0\17o\bT\1d\0\0#q saqdYSfl-\0\0\0\17o\b\\1d\0\0#q 2IOJ0ntA-\0\0\0\17o\bd\1d\0\0#q 756tsBY3-\0\0\0\17o\bl\1d\0\0#q I66SOBHl-\0\0\0\17o\bt\1d\0\0#q U+0+8bWU-\0\0\0\17o\b|\1d\0\0#q bHdtxa1P-\0\0\0\17o\b\84\1d\0\0#q 2y83z5Pv-\0\0\0\17o\b\8c\1d\0\0#q NqJ29h6y-\0\0\0\17o\b\94\1d\0\0#q mz5tztPN-\0\0\0\17o\b\9c\1d\0\0#q 04yw5+Os-\0\0\0\17o\b¤\1d\0\0#q Ux767u+t-\0\0\0\17o\b¬\1d\0\0#q 4Wb68vvz-\0\0\0\17o\b´\1d\0\0#q tvPsCb27-\0\0\0\17o\b¼\1d\0\0#q OnbrgHff-\0\0\0\17o\bÄ\1d\0\0#q egij8Dbt-\0\0\0\17o\bÌ\1d\0\0#q R+cpqFnr-\0\0\0\17o\bÔ\1d\0\0#q poO2jCj+-\0\0\0\17o\bÜ\1d\0\0#q dtrCBfwt-\0\0\0\17o\bä\1d\0\0#q FtxfNrZd-\0\0\0\17o\bì\1d\0\0#q 9ZcQzVPa-\0\0\0\17o\bô\1d\0\0#q 9qbeq8du-\0\0\0\17o\bü\1d\0\0#q MYmVfF+2-\0\0\0\17o\b\ 4\1e\0\0#q cTONb3u2-\0\0\0\17o\b\f\1e\0\0#q m+N7LwZw-\0\0\0\17o\b\14\1e\0\0#q K24TMUPA-\0\0\0\17o\b\1c\1e\0\0#q /s1xS2PJ-\0\0\0\17o\b$\1e\0\0#q 211vg1Jf-\0\0\0\17o\b,\1e\0\0#q BUXQLO2t-\0\0\0\17o\b4\1e\0\0#q MacGtLJm-\0\0\0\17o\b<\1e\0\0#q ttPE59YW-\0\0\0\17o\bD\1e\0\0#q nForCNrr-\0\0\0\17o\bL\1e\0\0#q vbv4+/xy-\0\0\0\17o\bT\1e\0\0#q 7+NG7BfX-\0\0\0\17o\b\\1e\0\0#q bnqKVTuo-\0\0\0\17o\bd\1e\0\0#q 0DMuFW6c-\0\0\0\17o\bl\1e\0\0#q /DBvb4i5-\0\0\0\17o\bt\1e\0\0#q +crr56qL-\0\0\0\17o\b|\1e\0\0#q SmCHWi13-\0\0\0\17o\b\84\1e\0\0#q 1w0DRNem-\0\0\0\17o\b\8c\1e\0\0#q G8J8mWF6-\0\0\0\17o\b\94\1e\0\0#q /BavOE5Y-\0\0\0\17o\b\9c\1e\0\0#q JruAqh/e-\0\0\0\17o\b¤\1e\0\0#q 19oRd79a-\0\0\0\17o\b¬\1e\0\0#q 8j2xXHhV-\0\0\0\17o\b´\1e\0\0#q teYnEW9a-\0\0\0\17o\b¼\1e\0\0#q 1AvE2WHF-\0\0\0\17o\bÄ\1e\0\0#q Hnr7Wf43-\0\0\0\17o\bÌ\1e\0\0#q p9q/GjSG-\0\0\0\17o\bÔ\1e\0\0#q tZb51XBD-\0\0\0\17o\bÜ\1e\0\0#q R5fZe/af-\0\0\0\17o\bä\1e\0\0#q Xwzt1jTi-\0\0\0\17o\bì\1e\0\0#q 0aTqd5pQ-\0\0\0\17o\bô\1e\0\0#q 9xPS9+tf-\0\0\0\17o\bü\1e\0\0#q lc68V3+R-\0\0\0\17o\b\ 4\1f\0\0#q 30RS3anM-\0\0\0\17o\b\f\1f\0\0#q Z7/OYoK8-\0\0\0\17o\b\14\1f\0\0#q 3au2vY96-\0\0\0\17o\b\1c\1f\0\0#q 2u/Pmnmv-\0\0\0\17o\b$\1f\0\0#q WmcymeWx-\0\0\0\17o\b,\1f\0\0#q xPne1H49-\0\0\0\17o\b4\1f\0\0#q bc+va/KV-\0\0\0\17o\b<\1f\0\0#q HaqJxTgr-\0\0\0\17o\bD\1f\0\0#q qcN7zDZ2-\0\0\0\17o\bL\1f\0\0#q TweudXva-\0\0\0\17o\bT\1f\0\0#q vlknvqps-\0\0\0\17o\b\\1f\0\0#q g6zC6+Ia-\0\0\0\17o\bd\1f\0\0#q vvB2enbr-\0\0\0\17o\bl\1f\0\0#q x754TjNR-\0\0\0\17o\bt\1f\0\0#q ir97rpG6-\0\0\0\17o\b|\1f\0\0#q 2S7VPnth-\0\0\0\17o\b\84\1f\0\0#q +nn9KvmF-\0\0\0\17o\b\8c\1f\0\0#q thTinXkT-\0\0\0\17o\b\94\1f\0\0#q rfbYcr54-\0\0\0\17o\b\9c\1f\0\0#q eVPbFQRF-\0\0\0\17o\b¤\1f\0\0#q 11vTW9+C-\0\0\0\17o\b¬\1f\0\0#q cB+4r3XR-\0\0\0\17o\b´\1f\0\0#q pMtsKWHn-\0\0\0\17o\b¼\1f\0\0#q hn3dFDF7-\0\0\0\17o\bÄ\1f\0\0#q PYpQoLeU-\0\0\0\17o\bÌ\1f\0\0#q zh639UyD-\0\0\0\17o\bÔ\1f\0\0#q F5ouhQer-\0\0\0\17o\bÜ\1f\0\0#q fW+FKROl-\0\0\0\17o\bä\1f\0\0#q O2lJwm+U-\0\0\0\17o\bì\1f\0\0#q DcwvkjwQ-\0\0\0\17o\bô\1f\0\0#q 51nx2aQ+-\0\0\0\17o\bü\1f\0\0#q iINt/lkD-\0\0\0\17o\b\ 4 \0\0#q DTrmb2vr-\0\0\0\17o\b\f \0\0#q xryHii64-\0\0\0\17o\b\14 \0\0#q 8Xu/tF6Q-\0\0\0\17o\b\1c \0\0#q HbUcIFxg-\0\0\0\17o\b\0\0#q YRp4+V7e-\0\0\0\17o\b\0\0#q aLG64b2s-\0\0\0\17o\b\0\0#q u+ONNxKE-\0\0\0\17o\b\0\0#q DlYjMR1F-\0\0\0\17o\b\0\0#q uhvauj8z-\0\0\0\17o\b\0\0#q eus/aeYa-\0\0\0\17o\b\0\0#q 2iB/Va1t-\0\0\0\17o\b\0\0#q uuH2zjOv-\0\0\0\17o\b\0\0#q xxxonwsb-\0\0\0\17o\b\0\0#q YInfrnTP-\0\0\0\17o\b\0\0#q Ns504yed-\0\0\0\17o\b\0\0#q SRkJR0je-\0\0\0\17o\b\84 \0\0#q aBvNr5mG-\0\0\0\17o\b\8c \0\0#q nFr5TFHN-\0\0\0\17o\b\94 \0\0#q ub0FVE30-\0\0\0\17o\b\9c \0\0#q 34E+q7tf-\0\0\0\17o\b¤ \0\0#q F5n54uuT-\0\0\0\17o\b¬ \0\0#q 4o+28bYp-\0\0\0\17o\b´ \0\0#q zjhtI6mf-\0\0\0\17o\b¼ \0\0#q B4jbVMEd-\0\0\0\17o\bÄ \0\0#q 31VAR4vi-\0\0\0\17o\bÌ \0\0#q GN8Tu4um-\0\0\0\17o\bÔ \0\0#q aeq9qLGL-\0\0\0\17o\bÜ \0\0#q NUsvpQu/-\0\0\0\17o\bä \0\0#q 8faJd34U-\0\0\0\17o\bì \0\0#q W2pXhjva-\0\0\0\17o\bô \0\0#q q0NFmKDN-\0\0\0\17o\bü \0\0#q Z7UjVrNM-\0\0\0\17o\b\ 4!\0\0#q 4aXvd5pS-\0\0\0\17o\b\f!\0\0#q g7LW/5p7-\0\0\0\17o\b\14!\0\0#q 955Vtvf6-\0\0\0\17o\b\1c!\0\0#q tsMfFl9r-\0\0\0\17o\b$!\0\0#q s3VvkKnf-\0\0\0\17o\b,!\0\0#q vemaXnFP-\0\0\0\17o\b4!\0\0#q Gd4je+Y3-\0\0\0\17o\b<!\0\0#q iU3nXv37-\0\0\0\17o\bD!\0\0#q xz8/Ot5b-\0\0\0\17o\bL!\0\0#q nc6a2J+d-\0\0\0\17o\bT!\0\0#q PSXnLYpv-\0\0\0\17o\b\!\0\0#q qfBk7Zif-\0\0\0\17o\bd!\0\0#q A8RiUeNN-\0\0\0\17o\bl!\0\0#q auSKONwZ-\0\0\0\17o\bt!\0\0#q WKpMDsKh-\0\0\0\17o\b|!\0\0#q Pt+f5X25-\0\0\0\17o\b\84!\0\0#q +dAjco/6-\0\0\0\17o\b\8c!\0\0#q X52E/Ys3-\0\0\0\17o\b\94!\0\0#q 128FfCeI-\0\0\0\17o\b\9c!\0\0#q +sV1Ngs+-\0\0\0\17o\b¤!\0\0#q 8/j7+sqr-\0\0\0\17o\b¬!\0\0#q WwKe/0yd-\0\0\0\17o\b´!\0\0#q fK2xlW++-\0\0\0\17o\b¼!\0\0#q +7Sx8Nr0-\0\0\0\17o\bÄ!\0\0#q 9NQEOaq5-\0\0\0\17o\bÌ!\0\0#q Z21TVe+3-\0\0\0\17o\bÔ!\0\0#q euawND9L-\0\0\0\17o\bÜ!\0\0#q Pk1eaTWO-\0\0\0\17o\bä!\0\0#q D2M1bXSf-\0\0\0\17o\bì!\0\0#q q32fH5Wr-\0\0\0\17o\bô!\0\0#q qCSRodPH-\0\0\0\17o\bü!\0\0#q mm85a3Gq-\0\0\0\17o\b\ 4"\0\0#q 8/ldR8zn-\0\0\0\17o\b\f"\0\0#q NtO6s/E5-\0\0\0\17o\b\14"\0\0#q oRyyZ1pX-\0\0\0\17o\b\1c"\0\0#q 09q7BTxk-\0\0\0\17o\b$"\0\0#q /n5j1O8Y-\0\0\0\17o\b,"\0\0#q r8nSj+qe-\0\0\0\17o\b4"\0\0#q zJTO/bzu-\0\0\0\17o\b<"\0\0#q Io9vLwYb-\0\0\0\17o\bD"\0\0#q xnRYVVut-\0\0\0\17o\bL"\0\0#q OL7dQJYP-\0\0\0\17o\bT"\0\0#q FNnRyNDL-\0\0\0\17o\b\"\0\0#q jWmONtQB-\0\0\0\17o\bd"\0\0#q d1AxDZA3-\0\0\0\17o\bl"\0\0#q 9o0QEps8-\0\0\0\17o\bt"\0\0#q eiBrSOQO-\0\0\0\17o\b|"\0\0#q +M2yN/b3-\0\0\0\17o\b\84"\0\0#q A0Mr9bVG-\0\0\0\17o\b\8c"\0\0#q 5A42A3Lc-\0\0\0\17o\b\94"\0\0#q I0uBvqcx-\0\0\0\17o\b\9c"\0\0#q zal1tziF-\0\0\0\17o\b¤"\0\0#q TfaXakSn-\0\0\0\17o\b¬"\0\0#q UaaNpTxp-\0\0\0\17o\b´"\0\0#q S+3avWO1-\0\0\0\17o\b¼"\0\0#q hvyyUtPU-\0\0\0\17o\bÄ"\0\0#q e+uu45yi-\0\0\0\17o\bÌ"\0\0#q 4aeNNM2G-\0\0\0\17o\bÔ"\0\0#q nS0nrucv-\0\0\0\17o\bÜ"\0\0#q jF/OGhoO-\0\0\0\17o\bä"\0\0#q nW1aB+Lx-\0\0\0\17o\bì"\0\0#q nmzq3Gyz-\0\0\0\17o\bô"\0\0#q taXeuQpo-\0\0\0\17o\bü"\0\0#q mp1FUXt7-\0\0\0\17o\b\ 4#\0\0#q Rffavj8e-\0\0\0\17o\b\f#\0\0#q Jxqux8ey-\0\0\0\17o\b\14#\0\0#q ex3ftOU4-\0\0\0\17o\b\1c#\0\0#q rXxtxMYw-\0\0\0\17o\b$#\0\0#q PRqwXX3R-\0\0\0\17o\b,#\0\0#q cbx8dn9s-\0\0\0\17o\b4#\0\0#q 3YtPa1Xr-\0\0\0\17o\b<#\0\0#q nZx3dqik-\0\0\0\17o\bD#\0\0#q I3E1b3fP-\0\0\0\17o\bL#\0\0#q b83aGWPm-\0\0\0\17o\bT#\0\0#q e0CcoGvA-\0\0\0\17o\b\#\0\0#q 1o2PWLs1-\0\0\0\17o\bd#\0\0#q K+ceH4fT-\0\0\0\17o\bl#\0\0#q FuVHzrGW-\0\0\0\17o\bt#\0\0#q GpHci+da-\0\0\0\17o\b|#\0\0#q beFi0V6m-\0\0\0\17o\b\84#\0\0#q 3aE68H73-\0\0\0\17o\b\8c#\0\0#q Zw10nviG-\0\0\0\17o\b\94#\0\0#q OyJI6Dzq-\0\0\0\17o\b\9c#\0\0#q zFDysrN7-\0\0\0\17o\b¤#\0\0#q Vt3elS/j-\0\0\0\17o\b¬#\0\0#q FreqKx+U-\0\0\0\17o\b´#\0\0#q pRu/mfHb-\0\0\0\17o\b¼#\0\0#q O2Jz7663-\0\0\0\17o\bÄ#\0\0#q zp9WvTov-\0\0\0\17o\bÌ#\0\0#q vvvi14Hr-\0\0\0\17o\bÔ#\0\0#q 7KrTbRdu-\0\0\0\17o\bÜ#\0\0#q DN4R+UTm-\0\0\0\17o\bä#\0\0#q qrtsy2L5-\0\0\0\17o\bì#\0\0#q ZVHyb3Y6-\0\0\0\17o\bô#\0\0#q t0R06bVX-\0\0\0\17o\bü#\0\0#q uuJsOJpv-\0\0\0\17o\b\ 4$\0\0#q 5TdGqPBn-\0\0\0\17o\b\f$\0\0#q vjuRp2u8-\0\0\0\17o\b\14$\0\0#q z2WyNdKc-\0\0\0\17o\b\1c$\0\0#q ny5v9uOf-\0\0\0\17o\b$$\0\0#q k2vv7aae-\0\0\0\17o\b,$\0\0#q etW8z7wt-\0\0\0\17o\b4$\0\0#q z15nB6We-\0\0\0\17o\b<$\0\0#q nehxSnft-\0\0\0\17o\bD$\0\0#q gbkj3tWd-\0\0\0\17o\bL$\0\0#q Mah+7rRb-\0\0\0\17o\bT$\0\0#q rONx6m49-\0\0\0\17o\b\$\0\0#q l1arhpoQ-\0\0\0\17o\bd$\0\0#q IQzabRKa-\0\0\0\17o\bl$\0\0#q TwFVPoKP-\0\0\0\17o\bt$\0\0#q OmlsaT9t-\0\0\0\17o\b|$\0\0#q WeFUp8/X-\0\0\0\17o\b\84$\0\0#q rDuFrtXT-\0\0\0\17o\b\8c$\0\0#q 1Ap74Ub+-\0\0\0\17o\b\94$\0\0#q kFY8KMkm-\0\0\0\17o\b\9c$\0\0#q Q4I7OOw1-\0\0\0\17o\b¤$\0\0#q 7bYmTedi-\0\0\0\17o\b¬$\0\0#q Z0ZtqXZa-\0\0\0\17o\b´$\0\0#q koO7cey6-\0\0\0\17o\b¼$\0\0#q d0rpPrCr-\0\0\0\17o\bÄ$\0\0#q pmfgHM/b-\0\0\0\17o\bÌ$\0\0#q a7hjUcJ7-\0\0\0\17o\bÔ$\0\0#q c3OM2GCC-\0\0\0\17o\bÜ$\0\0#q HLLJ9KNH-\0\0\0\17o\bä$\0\0#q Ob1c199t-\0\0\0\17o\bì$\0\0#q bZc8EKX0-\0\0\0\17o\bô$\0\0#q o9vETvYa-\0\0\0\17o\bü$\0\0#q zOKX1tnT-\0\0\0\17o\b\ 4%\0\0#q N9u/0fij-\0\0\0\17o\b\f%\0\0#q 7WpVRTrm-\0\0\0\17o\b\14%\0\0#q mb7c73x2-\0\0\0\17o\b\1c%\0\0#q zlpOsWq3-\0\0\0\17o\b$%\0\0#q PBNjMryy-\0\0\0\17o\b,%\0\0#q Vim+k6qI-\0\0\0\17o\b4%\0\0#q HV8cZzrm-\0\0\0\17o\b<%\0\0#q 1NNNtGG3-\0\0\0\17o\bD%\0\0#q WiU222+q-\0\0\0\17o\bL%\0\0#q WvilXLVP-\0\0\0\17o\bT%\0\0#q DTtuujYq-\0\0\0\17o\b\%\0\0#q nq92Hkjt-\0\0\0\17o\bd%\0\0#q Prnhn8wf-\0\0\0\17o\bl%\0\0#q FVRtPKbM-\0\0\0\17o\bt%\0\0#q lam+ja2n-\0\0\0\17o\b|%\0\0#q ZNWzVGx4-\0\0\0\17o\b\84%\0\0#q 0FOJoI1m-\0\0\0\17o\b\8c%\0\0#q jzX8RMGu-\0\0\0\17o\b\94%\0\0#q vpd/eu+l-\0\0\0\17o\b\9c%\0\0#q F81TFb00-\0\0\0\17o\b¤%\0\0#q pDIz9nRK-\0\0\0\17o\b¬%\0\0#q Td6RSnvt-\0\0\0\17o\b´%\0\0#q 2s+s7+qq-\0\0\0\17o\b¼%\0\0#q t/jhaRHw-\0\0\0\17o\bÄ%\0\0#q yffKQ/z0-\0\0\0\17o\bÌ%\0\0#q /tG3K+dU-\0\0\0\17o\bÔ%\0\0#q Xivrmu3j-\0\0\0\17o\bÜ%\0\0#q C03fjSsN-\0\0\0\17o\bä%\0\0#q vPfd9sob-\0\0\0\17o\bì%\0\0#q +3xr8iPB-\0\0\0\17o\bô%\0\0#q lBljpK63-\0\0\0\17o\bü%\0\0#q v6fnbHtx-\0\0\0\17o\b\ 4&\0\0#q KpDNFNx4-\0\0\0\17o\b\f&\0\0#q fWXi+m1X-\0\0\0\17o\b\14&\0\0#q LycVHAWw-\0\0\0\17o\b\1c&\0\0#q I7iooCKf-\0\0\0\17o\b$&\0\0#q X4XX8vjq-\0\0\0\17o\b,&\0\0#q gNOk/E9u-\0\0\0\17o\b4&\0\0#q dJqie7fM-\0\0\0\17o\b<&\0\0#q u3gr4Snj-\0\0\0\17o\bD&\0\0#q 7XtqUiPX-\0\0\0\17o\bL&\0\0#q k/dmGsfH-\0\0\0\17o\bT&\0\0#q vAp85erx-\0\0\0\17o\b\&\0\0#q qS/xs1bw-\0\0\0\17o\bd&\0\0#q lgkOcUNz-\0\0\0\17o\bl&\0\0#q 9VxavzsJ-\0\0\0\17o\bt&\0\0#q 6RvKmczE-\0\0\0\17o\b|&\0\0#q 3Qfa3x8N-\0\0\0\17o\b\84&\0\0#q 7dfP19fV-\0\0\0\17o\b\8c&\0\0#q 5zBafd0+-\0\0\0\17o\b\94&\0\0#q t4Gv1r9d-\0\0\0\17o\b\9c&\0\0#q Sf3T6+af-\0\0\0\17o\b¤&\0\0#q WJ0nyP0Y-\0\0\0\17o\b¬&\0\0#q agjzqAok-\0\0\0\17o\b´&\0\0#q AsvA5HMv-\0\0\0\17o\b¼&\0\0#q ICycScGR-\0\0\0\17o\bÄ&\0\0#q H5DZSUA+-\0\0\0\17o\bÌ&\0\0#q 4yHCgQfx-\0\0\0\17o\bÔ&\0\0#q OdfUK0Si-\0\0\0\17o\bÜ&\0\0#q I3A5uCNv-\0\0\0\17o\bä&\0\0#q ta9mxHyt-\0\0\0\17o\bì&\0\0#q vJydnbe2-\0\0\0\17o\bô&\0\0#q vh3ekY7R-\0\0\0\17o\bü&\0\0#q p0aKfJeT-\0\0\0\17o\b\ 4'\0\0#q kcPDZ8Nm-\0\0\0\17o\b\f'\0\0#q PB3NTaen-\0\0\0\17o\b\14'\0\0#q 67W1s5nL-\0\0\0\17o\b\1c'\0\0#q DjLOzJpd-\0\0\0\17o\b$'\0\0#q ra8zzbuJ-\0\0\0\17o\b,'\0\0#q p5Pt6W7c-\0\0\0\17o\b4'\0\0#q nZU5vM2/-\0\0\0\17o\b<'\0\0#q Y6dMPz9e-\0\0\0\17o\bD'\0\0#q 5Tcsdwed-\0\0\0\17o\bL'\0\0#q g3dJ1jb2-\0\0\0\17o\bT'\0\0#q DdpxJIz0-\0\0\0\17o\b\'\0\0#q Z0kNPqBs-\0\0\0\17o\bd'\0\0#q n92/s4FF-\0\0\0\17o\bl'\0\0#q +N/glGnY-\0\0\0\17o\bt'\0\0#q gij0wPhQ-\0\0\0\17o\b|'\0\0#q uH0EH5P7-\0\0\0\17o\b\84'\0\0#q jwhh/JyC-\0\0\0\17o\b\8c'\0\0#q zw+Z3IMd-\0\0\0\17o\b\94'\0\0#q OXTp3K3Z-\0\0\0\17o\b\9c'\0\0#q OHCvyezH-\0\0\0\17o\b¤'\0\0#q Js5atrTS-\0\0\0\17o\b¬'\0\0#q jQcMZLMt-\0\0\0\17o\b´'\0\0#q xWHd4dXK-\0\0\0\17o\b¼'\0\0#q Ngxw4aZq-\0\0\0\17o\bÄ'\0\0#q 3nzb+1vu-\0\0\0\17o\bÌ'\0\0#q cjpvN/b6-\0\0\0\17o\bÔ'\0\0#q mqqpFQxW-\0\0\0\17o\bÜ'\0\0#q MPRn6H4L-\0\0\0\17o\bä'\0\0#q FK8ID7PD-\0\0\0\17o\bì'\0\0#q 0s4SMs9K-\0\0\0\17o\bô'\0\0#q L0KMPT9C-\0\0\0\17o\bü'\0\0#q xUqLPxoS-\0\0\0\17o\b\ 4(\0\0#q UfQf0KPy-\0\0\0\17o\b\f(\0\0#q Lhh9D1vz-\0\0\0\17o\b\14(\0\0#q 6H9jW/B0-\0\0\0\17o\b\1c(\0\0#q emjPs4eC-\0\0\0\17o\b$(\0\0#q R1R8HP7M-\0\0\0\17o\b,(\0\0#q bkZSDnGy-\0\0\0\17o\b4(\0\0#q W2fQzpoF-\0\0\0\17o\b<(\0\0#q HCz0g/k0-\0\0\0\17o\bD(\0\0#q /c8XzYzM-\0\0\0\17o\bL(\0\0#q Xg5v2dmm-\0\0\0\17o\bT(\0\0#q necnavJv-\0\0\0\17o\b\(\0\0#q G6+L5VVN-\0\0\0\17o\bd(\0\0#q Pmrir5NP-\0\0\0\17o\bl(\0\0#q /86vZ5HJ-\0\0\0\17o\bt(\0\0#q 8Nnbq3mj-\0\0\0\17o\b|(\0\0#q 04tjyV4Y-\0\0\0\17o\b\84(\0\0#q 9nm2eh0f-\0\0\0\17o\b\8c(\0\0#q qafNu7Pn-\0\0\0\17o\b\94(\0\0#q s6K05Gnm-\0\0\0\17o\b\9c(\0\0#q +zfa1ps3-\0\0\0\17o\b¤(\0\0#q fD43tuO7-\0\0\0\17o\b¬(\0\0#q 6Gt3pHDu-\0\0\0\17o\b´(\0\0#q 2Z4fN0c3-\0\0\0\17o\b¼(\0\0#q eclcM5W4-\0\0\0\17o\bÄ(\0\0#q 6KqvgrfL-\0\0\0\17o\bÌ(\0\0#q ZZ8Ozk5z-\0\0\0\17o\bÔ(\0\0#q j2t+GJ1O-\0\0\0\17o\bÜ(\0\0#q Zux01LfB-\0\0\0\17o\bä(\0\0#q Lof2MVLI-\0\0\0\17o\bì(\0\0#q b+iTTw/Q-\0\0\0\17o\bô(\0\0#q ko8MWFEI-\0\0\0\17o\bü(\0\0#q 2oiP1WGG-\0\0\0\17o\b\ 4)\0\0#q jYyKLrbb-\0\0\0\17o\b\f)\0\0#q fh6PuDD7-\0\0\0\17o\b\14)\0\0#q yk3srttD-\0\0\0\17o\b\1c)\0\0#q 0dPqECgg-\0\0\0\17o\b$)\0\0#q sURwgcKH-\0\0\0\17o\b,)\0\0#q FYVt9Z+a-\0\0\0\17o\b4)\0\0#q 1C4nm6Up-\0\0\0\17o\b<)\0\0#q a9L3uLtW-\0\0\0\17o\bD)\0\0#q 7mx0YcK4-\0\0\0\17o\bL)\0\0#q Kx0dfZa/-\0\0\0\17o\bT)\0\0#q Ltw8n9hX-\0\0\0\17o\b\)\0\0#q Z89reu1q-\0\0\0\17o\bd)\0\0#q DcLLcHUQ-\0\0\0\17o\bl)\0\0#q NwHtoWoG-\0\0\0\17o\bt)\0\0#q tuURwwrI-\0\0\0\17o\b|)\0\0#q GERCPzCr-\0\0\0\17o\b\84)\0\0#q 0EbZJDNy-\0\0\0\17o\b\8c)\0\0#q QYwp37N0-\0\0\0\17o\b\94)\0\0#q hT9ZQ2fo-\0\0\0\17o\b\9c)\0\0#q Lh0PmQ4b-\0\0\0\17o\b¤)\0\0#q KfLwekfR-\0\0\0\17o\b¬)\0\0#q ti0fBA/Y-\0\0\0\17o\b´)\0\0#q fU4d3Prb-\0\0\0\17o\b¼)\0\0#q bDZ6xtdC-\0\0\0\17o\bÄ)\0\0#q y8gjwLiJ-\0\0\0\17o\bÌ)\0\0#q ERJhI2+1-\0\0\0\17o\bÔ)\0\0#q B1WIF0Fd-\0\0\0\17o\bÜ)\0\0#q F1DCwjKk-\0\0\0\17o\bä)\0\0#q l0UI4z0M-\0\0\0\17o\bì)\0\0#q 6fVMf6ve-\0\0\0\17o\bô)\0\0#q nWbllsbt-\0\0\0\17o\bü)\0\0#q gcPvILqx-\0\0\0\17o\b\ 4*\0\0#q Nlq6efK2-\0\0\0\17o\b\f*\0\0#q Sq6vRw6K-\0\0\0\17o\b\14*\0\0#q 51ebu01V-\0\0\0\17o\b\1c*\0\0#q 9Z5ui4IU-\0\0\0\17o\b$*\0\0#q OJjUBhQU-\0\0\0\17o\b,*\0\0#q eqIhoDPB-\0\0\0\17o\b4*\0\0#q JAf0TLYP-\0\0\0\17o\b<*\0\0#q oToLip4W-\0\0\0\17o\bD*\0\0#q dGkzxt/Z-\0\0\0\17o\bL*\0\0#q 762yzA4Q-\0\0\0\17o\bT*\0\0#q hhh4oHIv-\0\0\0\17o\b\*\0\0#q 3KIDT5Km-\0\0\0\17o\bd*\0\0#q ZlTKwtaW-\0\0\0\17o\bl*\0\0#q OeREM862-\0\0\0\17o\bt*\0\0#q 3/B6elo8-\0\0\0\17o\b|*\0\0#q Q1JxiWAg-\0\0\0\17o\b\84*\0\0#q QncQECgM-\0\0\0\17o\b\8c*\0\0#q LAiWAQRU-\0\0\0\17o\b\94*\0\0#q xWNHd3dx-\0\0\0\17o\b\9c*\0\0#q djkaybr2-\0\0\0\17o\b¤*\0\0#q VslNjq7N-\0\0\0\17o\b¬*\0\0#q lVT2j4cJ-\0\0\0\17o\b´*\0\0#q 2ejho/Rk-\0\0\0\17o\b¼*\0\0#q 05YtfCzu-\0\0\0\17o\bÄ*\0\0#q 1xat+Hdu-\0\0\0\17o\bÌ*\0\0#q 91cvNxDs-\0\0\0\17o\bÔ*\0\0#q pIbRFIVU-\0\0\0\17o\bÜ*\0\0#q RFCyHQYe-\0\0\0\17o\bä*\0\0#q wlUKLjAg-\0\0\0\17o\bì*\0\0#q dUHOqqFX-\0\0\0\17o\bô*\0\0#q QdDAGooO-\0\0\0\17o\bü*\0\0#q ZKIyENwS-\0\0\0\17o\b\ 4+\0\0#q UKq4sEFR-\0\0\0\17o\b\f+\0\0#q yNRMUadp-\0\0\0\17o\b\14+\0\0#q 0PLpEZlE-\0\0\0\17o\b\1c+\0\0#q 3GfqYaDK-\0\0\0\17o\b$+\0\0#q GQcHDf7n-\0\0\0\17o\b,+\0\0#q D8kmHDRh-\0\0\0\17o\b4+\0\0#q 4fwWWYff-\0\0\0\17o\b<+\0\0#q jxw24caY-\0\0\0\17o\bD+\0\0#q Wfk0mkeN-\0\0\0\17o\bL+\0\0#q D4SFGhHi-\0\0\0\17o\bT+\0\0#q VFbu2Ekg-\0\0\0\17o\b\+\0\0#q tHFezxIq-\0\0\0\17o\bd+\0\0#q aWnaEdzJ-\0\0\0\17o\bl+\0\0#q FsqSNEFK-\0\0\0\17o\bt+\0\0#q pZXphid2-\0\0\0\17o\b|+\0\0#q 50aNmnZo-\0\0\0\17o\b\84+\0\0#q 7ZMVlx7m-\0\0\0\17o\b\8c+\0\0#q zFVXDo03-\0\0\0\17o\b\94+\0\0#q KvK3TTdq-\0\0\0\17o\b\9c+\0\0#q ZZZ0j34L-\0\0\0\17o\b¤+\0\0#q qeGyvh6K-\0\0\0\17o\b¬+\0\0#q 8ns4bdre-\0\0\0\17o\b´+\0\0#q quzHYrNt-\0\0\0\17o\b¼+\0\0#q 5jMmO7tq-\0\0\0\17o\bÄ+\0\0#q 3Hk9GTU6-\0\0\0\17o\bÌ+\0\0#q GMOGnzTT-\0\0\0\17o\bÔ+\0\0#q gbO08zq5-\0\0\0\17o\bÜ+\0\0#q PJjdy74z-\0\0\0\17o\bä+\0\0#q Obhx6M8n-\0\0\0\17o\bì+\0\0#q Ju5Vc+Lb-\0\0\0\17o\bô+\0\0#q m9uVj1ez-\0\0\0\17o\bü+\0\0#q k3q17t3D-\0\0\0\17o\b\ 4,\0\0#q 0exwYMKB-\0\0\0\17o\b\f,\0\0#q pTOURDWR-\0\0\0\17o\b\14,\0\0#q GaXREECY-\0\0\0\17o\b\1c,\0\0#q uJhxzxhE-\0\0\0\17o\b$,\0\0#q TUu8mXv9-\0\0\0\17o\b,,\0\0#q Vjp48d1l-\0\0\0\17o\b4,\0\0#q C0/f0WGg-\0\0\0\17o\b<,\0\0#q xkH1HjiP-\0\0\0\17o\bD,\0\0#q yUUeFBGO-\0\0\0\17o\bL,\0\0#q am8bm7o0-\0\0\0\17o\bT,\0\0#q 7t3Vu5la-\0\0\0\17o\b\,\0\0#q h4OzS302-\0\0\0\17o\bd,\0\0#q 0qqBK4IC-\0\0\0\17o\bl,\0\0#q gQPb8h8f-\0\0\0\17o\bt,\0\0#q j69n+3hl-\0\0\0\17o\b|,\0\0#q eET5+1Kk-\0\0\0\17o\b\84,\0\0#q 1maNSlav-\0\0\0\17o\b\8c,\0\0#q R9c8+++/-\0\0\0\17o\b\94,\0\0#q Pnenwej1-\0\0\0\17o\b\9c,\0\0#q erxtb6HV-\0\0\0\17o\b¤,\0\0#q 2SCSSdrJ-\0\0\0\17o\b¬,\0\0#q HVYHikZU-\0\0\0\17o\b´,\0\0#q g1ZVkDtU-\0\0\0\17o\b¼,\0\0#q EypDVQZT-\0\0\0\17o\bÄ,\0\0#q N8kDSwll-\0\0\0\17o\bÌ,\0\0#q keMwS78a-\0\0\0\17o\bÔ,\0\0#q kNOMiJQQ-\0\0\0\17o\bÜ,\0\0#q c3dihLlK-\0\0\0\17o\bä,\0\0#q j+oCG7aE-\0\0\0\17o\bì,\0\0#q M7oG4kZW-\0\0\0\17o\bô,\0\0#q 1NVLsxIV-\0\0\0\17o\bü,\0\0#q jJxmQMVB-\0\0\0\17o\b\ 4-\0\0#q iUTaWsgY-\0\0\0\17o\b\f-\0\0#q DYxiQYyP-\0\0\0\17o\b\14-\0\0#q uBXhdUKW-\0\0\0\17o\b\1c-\0\0#q rZb79D15-\0\0\0\17o\b$-\0\0#q ra7uMfLW-\0\0\0\17o\b,-\0\0#q 1eW8dXOa-\0\0\0\17o\b4-\0\0#q iNhdxQsl-\0\0\0\17o\b<-\0\0#q kuUzMFKg-\0\0\0\17o\bD-\0\0#q agC1Ehom-\0\0\0\17o\bL-\0\0#q iOOZC4Ay-\0\0\0\17o\bT-\0\0#q O5qNxXMV-\0\0\0\17o\b\-\0\0#q ogEhIpqS-\0\0\0\17o\bd-\0\0#q NRe4grNt-\0\0\0\17o\bl-\0\0#q R7emHctE-\0\0\0\17o\bt-\0\0#q hpNtsXLS-\0\0\0\17o\b|-\0\0#q m9xOTBmO-\0\0\0\17o\b\84-\0\0#q SDYeNILY-\0\0\0\17o\b\8c-\0\0#q 2DG2ibk3-\0\0\0\17o\b\94-\0\0#q hUFnKtvT-\0\0\0\17o\b\9c-\0\0#q MXYBFsiI-\0\0\0\17o\b¤-\0\0#q 1xxoHjiB-\0\0\0\17o\b¬-\0\0#q Jg0ZhC2V-\0\0\0\17o\b´-\0\0#q ig602I1P-\0\0\0\17o\b¼-\0\0#q KTNWvbUb-\0\0\0\17o\bÄ-\0\0#q Ym/JAG0U-\0\0\0\17o\bÌ-\0\0#q aUsNNFaf-\0\0\0\17o\bÔ-\0\0#q JHs1SpG5-\0\0\0\17o\bÜ-\0\0#q rY8UsGwe-\0\0\0\17o\bä-\0\0#q 7VRhp+PJ-\0\0\0\17o\bì-\0\0#q Fmpjr15a-\0\0\0\17o\bô-\0\0#q htvTFpqh-\0\0\0\17o\bü-\0\0#q uKWCg24W-\0\0\0\17o\b\ 4.\0\0#q Kj7kpybZ-\0\0\0\17o\b\f.\0\0#q c6V5CsG9-\0\0\0\17o\b\14.\0\0#q 6jMayx1G-\0\0\0\17o\b\1c.\0\0#q WUOgDVCI-\0\0\0\17o\b$.\0\0#q ZKqhixI3-\0\0\0\17o\b,.\0\0#q lLuejpuw-\0\0\0\17o\b4.\0\0#q X0E8/UR6-\0\0\0\17o\b<.\0\0#q +vsvzdYq-\0\0\0\17o\bD.\0\0#q EqnmqYPr-\0\0\0\17o\bL.\0\0#q ynyiMGXW-\0\0\0\17o\bT.\0\0#q 2W+XV42w-\0\0\0\17o\b\.\0\0#q NasYmujH-\0\0\0\17o\bd.\0\0#q R/B20ne7-\0\0\0\17o\bl.\0\0#q B8uftj52-\0\0\0\17o\bt.\0\0#q a23ykGf0-\0\0\0\17o\b|.\0\0#q r2Fya3xE-\0\0\0\17o\b\84.\0\0#q EDcibiTQ-\0\0\0\17o\b\8c.\0\0#q 0lZLgyC2-\0\0\0\17o\b\94.\0\0#q ePfZkNiK-\0\0\0\17o\b\9c.\0\0#q 8bqa+t/u-\0\0\0\17o\b¤.\0\0#q N5kVHlxN-\0\0\0\17o\b¬.\0\0#q 3dckC7FJ-\0\0\0\17o\b´.\0\0#q ia9ve/Uu-\0\0\0\17o\b¼.\0\0#q gg2wm6UB-\0\0\0\17o\bÄ.\0\0#q kqXOGuys-\0\0\0\17o\bÌ.\0\0#q qBJmITKh-\0\0\0\17o\bÔ.\0\0#q YQIImk5o-\0\0\0\17o\bÜ.\0\0#q 5EECZQKp-\0\0\0\17o\bä.\0\0#q HrRxXGOT-\0\0\0\17o\bì.\0\0#q i2LXQmqW-\0\0\0\17o\bô.\0\0#q h6LhdyTi-\0\0\0\17o\bü.\0\0#q 01SqSQ3V-\0\0\0\17o\b\ 4/\0\0#q OEDXmHyx-\0\0\0\17o\b\f/\0\0#q eGS7oe6m-\0\0\0\17o\b\14/\0\0#q zQZ5CDD0-\0\0\0\17o\b\1c/\0\0#q 0rOtqeKJ-\0\0\0\17o\b$/\0\0#q jKBw+ee+-\0\0\0\17o\b,/\0\0#q cWoiUVDV-\0\0\0\17o\b4/\0\0#q LJ/FhK0i-\0\0\0\17o\b</\0\0#q Gh1VeKiE-\0\0\0\17o\bD/\0\0#q S0TeYm9Y-\0\0\0\17o\bL/\0\0#q aEWwQmDQ-\0\0\0\17o\bT/\0\0#q oQiRwvF1-\0\0\0\17o\b\/\0\0#q pOMzCkqw-\0\0\0\17o\bd/\0\0#q S5CmptDq-\0\0\0\17o\bl/\0\0#q zik403jS-\0\0\0\17o\bt/\0\0#q hJgqi2Ua-\0\0\0\17o\b|/\0\0#q BbWZmCIl-\0\0\0\17o\b\84/\0\0#q grKzuoHE-\0\0\0\17o\b\8c/\0\0#q I80UvVUM-\0\0\0\17o\b\94/\0\0#q TR9bJIWy-\0\0\0\17o\b\9c/\0\0#q 6iiIAxXu-\0\0\0\17o\b¤/\0\0#q kg2P4TDx-\0\0\0\17o\b¬/\0\0#q 8uds7uzm-\0\0\0\17o\b´/\0\0#q TTj2cu9+-\0\0\0\17o\b¼/\0\0#q 82j892bL-\0\0\0\17o\bÄ/\0\0#q O1fYjuV1-\0\0\0\17o\bÌ/\0\0#q nOX+0ET1-\0\0\0\17o\bÔ/\0\0#q +9s/q59/-\0\0\0\17o\bÜ/\0\0#q SSQJI/0p-\0\0\0\17o\bä/\0\0#q ffnnpk32-\0\0\0\17o\bì/\0\0#q yWNNLZIy-\0\0\0\17o\bô/\0\0#q LEInER1S-\0\0\0\17o\bü/\0\0#q 3+6lv+L1-\0\0\0\17o\b\ 40\0\0#q te04VnqI-\0\0\0\17o\b\f0\0\0#q JI1eRIDo-\0\0\0\17o\b\140\0\0#q s0ygqI/u-\0\0\0\17o\b\1c0\0\0#q 84V/ySnv-\0\0\0\17o\b$0\0\0#q Ufr5/o6a-\0\0\0\17o\b,0\0\0#q vXhuP26/-\0\0\0\17o\b40\0\0#q +dG413/y-\0\0\0\17o\b<0\0\0#q fDY/hOza-\0\0\0\17o\bD0\0\0#q /3m6353D-\0\0\0\17o\bL0\0\0#q FQf4gPLy-\0\0\0\17o\bT0\0\0#q ckmNf0/Z-\0\0\0\17o\b\0\0\0#q +79v75+C-\0\0\0\17o\bd0\0\0#q aSQkY8In-\0\0\0\17o\bl0\0\0#q 6aqSH03W-\0\0\0\17o\bt0\0\0#q X6Z0X9VQ-\0\0\0\17o\b|0\0\0#q B/vFWq6C-\0\0\0\17o\b\840\0\0#q 5csRuvBZ-\0\0\0\17o\b\8c0\0\0#q nX9ytV12-\0\0\0\17o\b\940\0\0#q MkIm7FR+-\0\0\0\17o\b\9c0\0\0#q DLJ9H6IB-\0\0\0\17o\b¤0\0\0#q OuiLogQG-\0\0\0\17o\b¬0\0\0#q Q/eRgyJJ-\0\0\0\17o\b´0\0\0#q Ax+aYLFF-\0\0\0\17o\b¼0\0\0#q oFE+nXZE-\0\0\0\17o\bÄ0\0\0#q mdeEk51K-\0\0\0\17o\bÌ0\0\0#q K8zR4ejl-\0\0\0\17o\bÔ0\0\0#q k1Rjyd9O-\0\0\0\17o\bÜ0\0\0#q lGOU1IHR-\0\0\0\17o\bä0\0\0#q C4Twt1lj-\0\0\0\17o\bì0\0\0#q 8fuDSl+t-\0\0\0\17o\bô0\0\0#q oyn7KlPB-\0\0\0\17o\bü0\0\0#q dN9Gfhbd-\0\0\0\17o\b\ 41\0\0#q lfyOpi2j-\0\0\0\17o\b\f1\0\0#q 7n1z3jf4-\0\0\0\17o\b\141\0\0#q hxzT5xvp-\0\0\0\17o\b\1c1\0\0#q enii/OQ9-\0\0\0\17o\b$1\0\0#q atPRJOV8-\0\0\0\17o\b,1\0\0#q YpWSsyBk-\0\0\0\17o\b41\0\0#q CMSKpoqN-\0\0\0\17o\b<1\0\0#q VJ4qi6kb-\0\0\0\17o\bD1\0\0#q GS0oTp5U-\0\0\0\17o\bL1\0\0#q Ze+1/H5L-\0\0\0\17o\bT1\0\0#q YmU6Uu36-\0\0\0\17o\b\1\0\0#q 2dTHpJsy-\0\0\0\17o\bd1\0\0#q InEO5DvT-\0\0\0\17o\bl1\0\0#q RhC0noXD-\0\0\0\17o\bt1\0\0#q bUrY0aAq-\0\0\0\17o\b|1\0\0#q h/N252CZ-\0\0\0\17o\b\841\0\0#q JLYxRLww-\0\0\0\17o\b\8c1\0\0#q eDIgJvhT-\0\0\0\17o\b\941\0\0#q pSsrEJ4S-\0\0\0\17o\b\9c1\0\0#q VDvd9S6B-\0\0\0\17o\b¤1\0\0#q wlgfShNM-\0\0\0\17o\b¬1\0\0#q d9KmGrWk-\0\0\0\17o\b´1\0\0#q 3I52ZEqk-\0\0\0\17o\b¼1\0\0#q IKJiiDZg-\0\0\0\17o\bÄ1\0\0#q pwVrTuGm-\0\0\0\17o\bÌ1\0\0#q 0Uo/ZLXM-\0\0\0\17o\bÔ1\0\0#q 3bFdFTPS-\0\0\0\17o\bÜ1\0\0#q QCOxHSpD-\0\0\0\17o\bä1\0\0#q GrWnDhd5-\0\0\0\17o\bì1\0\0#q Y05Lm5qt-\0\0\0\17o\bô1\0\0#q LILG02ER-\0\0\0\17o\bü1\0\0#q oixRXRka-\0\0\0\17o\b\ 42\0\0#q boZjM9Fm-\0\0\0\17o\b\f2\0\0#q XShtFC7O-\0\0\0\17o\b\142\0\0#q coJwLVrb-\0\0\0\17o\b\1c2\0\0#q J2vpmlco-\0\0\0\17o\b$2\0\0#q 5wxxJm17-\0\0\0\17o\b,2\0\0#q X2pWtUow-\0\0\0\17o\b42\0\0#q XbS88Via-\0\0\0\17o\b<2\0\0#q Vfl1mbDd-\0\0\0\17o\bD2\0\0#q KMZhHFFV-\0\0\0\17o\bL2\0\0#q CHEiCc2e-\0\0\0\17o\bT2\0\0#q d3C08Xm0-\0\0\0\17o\b\2\0\0#q T2nd6Uv1-\0\0\0\17o\bd2\0\0#q K0yITQlB-\0\0\0\17o\bl2\0\0#q sslUGWxQ-\0\0\0\17o\bt2\0\0#q P4OXJVEf-\0\0\0\17o\b|2\0\0#q YPWUXA+k-\0\0\0\17o\b\842\0\0#q dcuh/+HP-\0\0\0\17o\b\8c2\0\0#q wWUH7diy-\0\0\0\17o\b\942\0\0#q uFPB1lyF-\0\0\0\17o\b\9c2\0\0#q 6ZrDIprJ-\0\0\0\17o\b¤2\0\0#q E4SEZ7ms-\0\0\0\17o\b¬2\0\0#q K+k6P1h5-\0\0\0\17o\b´2\0\0#q hh3qskj4-\0\0\0\17o\b¼2\0\0#q roZNzZTZ-\0\0\0\17o\bÄ2\0\0#q jCbg2ePa-\0\0\0\17o\bÌ2\0\0#q UWtQoyUu-\0\0\0\17o\bÔ2\0\0#q Gzm+j26e-\0\0\0\17o\bÜ2\0\0#q 5Sjd6d8b-\0\0\0\17o\bä2\0\0#q Pnh8J/3o-\0\0\0\17o\bì2\0\0#q PU17aMyl-\0\0\0\17o\bô2\0\0#q jAcLyiBh-\0\0\0\17o\bü2\0\0#q r8j7ZOg/-\0\0\0\17o\b\ 43\0\0#q Q3IF/0Ta-\0\0\0\17o\b\f3\0\0#q f6XwNY0R-\0\0\0\17o\b\143\0\0#q dbAzegLT-\0\0\0\17o\b\1c3\0\0#q 47336Ne7-\0\0\0\17o\b$3\0\0#q qtUughSk-\0\0\0\17o\b,3\0\0#q 2m77D7Kk-\0\0\0\17o\b43\0\0#q /viknCAA-\0\0\0\17o\b<3\0\0#q DCufnfnm-\0\0\0\17o\bD3\0\0#q fRa+PuZ8-\0\0\0\17o\bL3\0\0#q GbDsi+jR-\0\0\0\17o\bT3\0\0#q Frzw3ixP-\0\0\0\17o\b\3\0\0#q HSw07DIX-\0\0\0\17o\bd3\0\0#q ufXiw4eH-\0\0\0\17o\bl3\0\0#q q9LyQfWZ-\0\0\0\17o\bt3\0\0#q nFx+S0TQ-\0\0\0\17o\b|3\0\0#q XRM1QT6Q-\0\0\0\17o\b\843\0\0#q bNSZJj8m-\0\0\0\17o\b\8c3\0\0#q 7UMbjp4V-\0\0\0\17o\b\943\0\0#q /ZPnp3lb-\0\0\0\17o\b\9c3\0\0#q J4dvxkSf-\0\0\0\17o\b¤3\0\0#q H+zJaG1+-\0\0\0\17o\b¬3\0\0#q r41D+t7j-\0\0\0\17o\b´3\0\0#q CD0giVFE-\0\0\0\17o\b¼3\0\0#q saiSGe8y-\0\0\0\17o\bÄ3\0\0#q zuQcIPsg-\0\0\0\17o\bÌ3\0\0#q 7JTIOFnT-\0\0\0\17o\bÔ3\0\0#q 68Mlm/Xt-\0\0\0\17o\bÜ3\0\0#q HO4/DVbo-\0\0\0\17o\bä3\0\0#q ellFEFwp-\0\0\0\17o\bì3\0\0#q f9tkkmQR-\0\0\0\17o\bô3\0\0#q Hs6yXoRC-\0\0\0\17o\bü3\0\0#q kuKPxU4Z-\0\0\0\17o\b\ 44\0\0#q 4SueGdIi-\0\0\0\17o\b\f4\0\0#q CB3cE9RK-\0\0\0\17o\b\144\0\0#q uhrCdlwc-\0\0\0\17o\b\1c4\0\0#q yTChsiIX-\0\0\0\17o\b$4\0\0#q rJwrTvs9-\0\0\0\17o\b,4\0\0#q M61zkDIs-\0\0\0\17o\b44\0\0#q OaTPnYck-\0\0\0\17o\b<4\0\0#q uRlvrVGx-\0\0\0\17o\bD4\0\0#q Zx0zpzzt-\0\0\0\17o\bL4\0\0#q 8L7s4Wtd-\0\0\0\17o\bT4\0\0#q LbRACW2F-\0\0\0\17o\b\4\0\0#q aHvN2uU7-\0\0\0\17o\bd4\0\0#q i5n0qt00-\0\0\0\17o\bl4\0\0#q Kgy9iK7J-\0\0\0\17o\bt4\0\0#q ba3/3pNi-\0\0\0\17o\b|4\0\0#q LNMrM1Xh-\0\0\0\17o\b\844\0\0#q IIBPZHET-\0\0\0\17o\b\8c4\0\0#q RypdGC5p-\0\0\0\17o\b\944\0\0#q Zhk1rtje-\0\0\0\17o\b\9c4\0\0#q 4i3zM6TW-\0\0\0\17o\b¤4\0\0#q PeYQEE2I-\0\0\0\17o\b¬4\0\0#q Cad2RgNn-\0\0\0\17o\b´4\0\0#q BwoZOXY1-\0\0\0\17o\b¼4\0\0#q T9NwigxK-\0\0\0\17o\bÄ4\0\0#q QAH9P9Hz-\0\0\0\17o\bÌ4\0\0#q 7gx+I7Cg-\0\0\0\17o\bÔ4\0\0#q /gWYSkB3-\0\0\0\17o\bÜ4\0\0#q Ml8YRVoO-\0\0\0\17o\bä4\0\0#q +7qZcd04-\0\0\0\17o\bì4\0\0#q 606nOv7+-\0\0\0\17o\bô4\0\0#q wkB9/5D9-\0\0\0\17o\bü4\0\0#q dwJKJD9w-\0\0\0\17o\b\ 45\0\0#q /pOUxtmf-\0\0\0\17o\b\f5\0\0#q p+39YZxm-\0\0\0\17o\b\145\0\0#q /5BaSsnQ-\0\0\0\17o\b\1c5\0\0#q xtYbRsXr-\0\0\0\17o\b$5\0\0#q aiFwqdRN-\0\0\0\17o\b,5\0\0#q WIdK5L46-\0\0\0\17o\b45\0\0#q DjXUSMMK-\0\0\0\17o\b<5\0\0#q SKJGX16p-\0\0\0\17o\bD5\0\0#q uhl1MLFs-\0\0\0\17o\bL5\0\0#q NjnoaUBM-\0\0\0\17o\bT5\0\0#q XnCJ+Kus-\0\0\0\17o\b\5\0\0#q 2EV8F1F0-\0\0\0\17o\bd5\0\0#q KGG54Hes-\0\0\0\17o\bl5\0\0#q hTQt8laF-\0\0\0\17o\bt5\0\0#q CKcUvV0V-\0\0\0\17o\b|5\0\0#q SQaPOy1K-\0\0\0\17o\b\845\0\0#q ydMvj2Ez-\0\0\0\17o\b\8c5\0\0#q AewDB4P7-\0\0\0\17o\b\945\0\0#q DzDchsca-\0\0\0\17o\b\9c5\0\0#q fa/a6vq6-\0\0\0\17o\b¤5\0\0#q 2dZRm3G2-\0\0\0\17o\b¬5\0\0#q jIrBxhr3-\0\0\0\17o\b´5\0\0#q MevBrYhs-\0\0\0\17o\b¼5\0\0#q kfQQhIEa-\0\0\0\17o\bÄ5\0\0#q 0BTQhzBU-\0\0\0\17o\bÌ5\0\0#q xFWQUuAI-\0\0\0\17o\bÔ5\0\0#q PIiFQc+2-\0\0\0\17o\bÜ5\0\0#q IfQGI/Bw-\0\0\0\17o\bä5\0\0#q LEPA90bT-\0\0\0\17o\bì5\0\0#q /w9O6Hlg-\0\0\0\17o\bô5\0\0#q j+ABZZYI-\0\0\0\17o\bü5\0\0#q k4UKMgIv-\0\0\0\17o\b\ 46\0\0#q 5BFETg9o-\0\0\0\17o\b\f6\0\0#q QqCd/YV/-\0\0\0\17o\b\146\0\0#q CKsIEgWi-\0\0\0\17o\b\1c6\0\0#q K+Iqgr+Q-\0\0\0\17o\b$6\0\0#q aKBHSWPI-\0\0\0\17o\b,6\0\0#q IpYAYOlq-\0\0\0\17o\b46\0\0#q JTAzWgXc-\0\0\0\17o\b<6\0\0#q JAWQkSQf-\0\0\0\17o\bD6\0\0#q BkVzkTkt-\0\0\0\17o\bL6\0\0#q EBuCK441-\0\0\0\17o\bT6\0\0#q 2dduYOlR-\0\0\0\17o\b\6\0\0#q LbTkd6BO-\0\0\0\17o\bd6\0\0#q G9mJ3lkO-\0\0\0\17o\bl6\0\0#q MIivftOj-\0\0\0\17o\bt6\0\0#q RKpUQ1n8-\0\0\0\17o\b|6\0\0#q N8AXRv85-\0\0\0\17o\b\846\0\0#q sESi9I3B-\0\0\0\17o\b\8c6\0\0#q wqNAL+Sb-\0\0\0\17o\b\946\0\0#q EH87kA4Q-\0\0\0\17o\b\9c6\0\0#q 0iLxfAXQ-\0\0\0\17o\b¤6\0\0#q zIiiJA+D-\0\0\0\17o\b¬6\0\0#q io0PfHBF-\0\0\0\17o\b´6\0\0#q ET4KwoGE-\0\0\0\17o\b¼6\0\0#q uhuF0X0+-\0\0\0\17o\bÄ6\0\0#q Od6iPDZB-\0\0\0\17o\bÌ6\0\0#q vqe2ZbNm-\0\0\0\17o\bÔ6\0\0#q wwwQNnbl-\0\0\0\17o\bÜ6\0\0#q G4ZREfEA-\0\0\0\17o\bä6\0\0#q DnQldENc-\0\0\0\17o\bì6\0\0#q +vyD2hPF-\0\0\0\17o\bô6\0\0#q PDVaTmO6-\0\0\0\17o\bü6\0\0#q ErcB2CSr-\0\0\0\17o\b\ 47\0\0#q JHawjBeT-\0\0\0\17o\b\f7\0\0#q Lu1HHXec-\0\0\0\17o\b\147\0\0#q OXpfFifa-\0\0\0\17o\b\1c7\0\0#q jXzf803t-\0\0\0\17o\b$7\0\0#q o/li3IQr-\0\0\0\17o\b,7\0\0#q aCMnXE7a-\0\0\0\17o\b47\0\0#q NaF+UhNC-\0\0\0\17o\b<7\0\0#q JJ6bST1y-\0\0\0\17o\bD7\0\0#q CMSEkvrk-\0\0\0\17o\bL7\0\0#q EZsiJnq9-\0\0\0\17o\bT7\0\0#q YnIRyfoE-\0\0\0\17o\b\7\0\0#q 3qs1+5g4-\0\0\0\17o\bd7\0\0#q qCjgAB/d-\0\0\0\17o\bl7\0\0#q 3LXII3r+-\0\0\0\17o\bt7\0\0#q NecgG/A/-\0\0\0\17o\b|7\0\0#q EBhNc2cE-\0\0\0\17o\b\847\0\0#q hOijxJO0-\0\0\0\17o\b\8c7\0\0#q FJewHGBz-\0\0\0\17o\b\947\0\0#q K1YnNiLk-\0\0\0\17o\b\9c7\0\0#q APBkUztU-\0\0\0\17o\b¤7\0\0#q 2GMpL0j3-\0\0\0\17o\b¬7\0\0#q 1B6VEaAu-\0\0\0\17o\b´7\0\0#q iEtObw0V-\0\0\0\17o\b¼7\0\0#q iA2Qo2CQ-\0\0\0\17o\bÄ7\0\0#q rPgdgapv-\0\0\0\17o\bÌ7\0\0#q FCGKU5zw-\0\0\0\17o\bÔ7\0\0#q AX48rSmS-\0\0\0\17o\bÜ7\0\0#q GfCh0sBA-\0\0\0\17o\bä7\0\0#q p5Vw+mHY-\0\0\0\17o\bì7\0\0#q BmgyfBvQ-\0\0\0\17o\bô7\0\0#q 2gE9Qiw2-\0\0\0\17o\bü7\0\0#q eCK950Ur-\0\0\0\17o\b\ 48\0\0#q em/KrOD7-\0\0\0\17o\b\f8\0\0#q tAApA2iL-\0\0\0\17o\b\148\0\0#q xtGRmFUG-\0\0\0\17o\b\1c8\0\0#q VZgNFMIQ-\0\0\0\17o\b$8\0\0#q i7APICVt-\0\0\0\17o\b,8\0\0#q lUdVP5fq-\0\0\0\17o\b48\0\0#q GLX9TEJB-\0\0\0\17o\b<8\0\0#q SYcWuJiE-\0\0\0\17o\bD8\0\0#q gyD+whr8-\0\0\0\17o\bL8\0\0#q Qt4j0BCv-\0\0\0\17o\bT8\0\0#q hFy3AUJA-\0\0\0\17o\b\8\0\0#q HpE2ATCf-\0\0\0\17o\bd8\0\0#q Y/XP0YM6-\0\0\0\17o\bl8\0\0#q 8EHwJaHT-\0\0\0\17o\bt8\0\0#q WChL8gPd-\0\0\0\17o\b|8\0\0#q CT9IoJW0-\0\0\0\17o\b\848\0\0#q 4ShPtj4h-\0\0\0\17o\b\8c8\0\0#q rXUO1N+9-\0\0\0\17o\b\948\0\0#q eNBzh958-\0\0\0\17o\b\9c8\0\0#q PwJ3onum-\0\0\0\17o\b¤8\0\0#q 3eftLwTI-\0\0\0\17o\b¬8\0\0#q IDagDw+o-\0\0\0\17o\b´8\0\0#q 2Baej5qT-\0\0\0\17o\b¼8\0\0#q 77qlol7l-\0\0\0\17o\bÄ8\0\0#q fPlQODAr-\0\0\0\17o\bÌ8\0\0#q 7Qiue8Er-\0\0\0\17o\bÔ8\0\0#q GKQIVtOQ-\0\0\0\17o\bÜ8\0\0#q +yuebQ9j-\0\0\0\17o\bä8\0\0#q z0QHR0XS-\0\0\0\17o\bì8\0\0#q F1f1oB0w-\0\0\0\17o\bô8\0\0#q m+nhBsV5-\0\0\0\17o\bü8\0\0#q Dgxx5TjC-\0\0\0\17o\b\ 49\0\0#q 7ifRJgWQ-\0\0\0\17o\b\f9\0\0#q JQKDKZ5Q-\0\0\0\17o\b\149\0\0#q cF8aA+2F-\0\0\0\17o\b\1c9\0\0#q RB9siyFb-\0\0\0\17o\b$9\0\0#q QEtXEFsi-\0\0\0\17o\b,9\0\0#q yD1KeYp4-\0\0\0\17o\b49\0\0#q vn1kdk65-\0\0\0\17o\b<9\0\0#q sBN3fx5t-\0\0\0\17o\bD9\0\0#q 3nO/Y59A-\0\0\0\17o\bL9\0\0#q R189AT77-\0\0\0\17o\bT9\0\0#q u6pOAXgc-\0\0\0\17o\b\9\0\0#q INOFPg0r-\0\0\0\17o\bd9\0\0#q AnT4ODvD-\0\0\0\17o\bl9\0\0#q pDvB+Q6A-\0\0\0\17o\bt9\0\0#q jhNjrJ2a-\0\0\0\17o\b|9\0\0#q 9VBRzOAG-\0\0\0\17o\b\849\0\0#q Z6eDgd4b-\0\0\0\17o\b\8c9\0\0#q NoM0UeBx-\0\0\0\17o\b\949\0\0#q PD5FreuG-\0\0\0\17o\b\9c9\0\0#q t6Dwo9RF-\0\0\0\17o\b¤9\0\0#q db8nAiAa-\0\0\0\17o\b¬9\0\0#q 2R1p49xi-\0\0\0\17o\b´9\0\0#q f5Sm4cGG-\0\0\0\17o\b¼9\0\0#q g5x+6Zre-\0\0\0\17o\bÄ9\0\0#q F2MUxiIK-\0\0\0\17o\bÌ9\0\0#q +gryR/Pf-\0\0\0\17o\bÔ9\0\0#q nDI6Q9Gn-\0\0\0\17o\bÜ9\0\0#q 57KlMJ57-\0\0\0\17o\bä9\0\0#q 66E3pkiW-\0\0\0\17o\bì9\0\0#q tHqD0Eed-\0\0\0\17o\bô9\0\0#q IKlAC3Qa-\0\0\0\17o\bü9\0\0#q Bfbl/j82-\0\0\0\17o\b\ 4:\0\0#q SCLdu7yW-\0\0\0\17o\b\f:\0\0#q v6Hmk/T9-\0\0\0\17o\b\14:\0\0#q Y/qXglgi-\0\0\0\17o\b\1c:\0\0#q Q/aIREU3-\0\0\0\17o\b$:\0\0#q sfkhFsOh-\0\0\0\17o\b,:\0\0#q ToBSbFaU-\0\0\0\17o\b4:\0\0#q QBrYeBo7-\0\0\0\17o\b<:\0\0#q 8wWrCIiT-\0\0\0\17o\bD:\0\0#q 9D1wcVo4-\0\0\0\17o\bL:\0\0#q GjuBz3jo-\0\0\0\17o\bT:\0\0#q xqZU7bQD-\0\0\0\17o\b\:\0\0#q FwmjB5e7-\0\0\0\17o\bd:\0\0#q 4MBLoK0P-\0\0\0\17o\bl:\0\0#q A4Qkclbw-\0\0\0\17o\bt:\0\0#q ijNF7qEE-\0\0\0\17o\b|:\0\0#q oFkFRROi-\0\0\0\17o\b\84:\0\0#q 0IZfN0sI-\0\0\0\17o\b\8c:\0\0#q zwihRtDz-\0\0\0\17o\b\94:\0\0#q 4T7ibJnx-\0\0\0\17o\b\9c:\0\0#q ZdmKq4qO-\0\0\0\17o\b¤:\0\0#q eIUAbh8K-\0\0\0\17o\b¬:\0\0#q mERXb9nK-\0\0\0\17o\b´:\0\0#q Q+5QdzgD-\0\0\0\17o\b¼:\0\0#q PcJjvxw6-\0\0\0\17o\bÄ:\0\0#q bZ3TBIWY-\0\0\0\17o\bÌ:\0\0#q SSeN4U3E-\0\0\0\17o\bÔ:\0\0#q ZkhKxct8-\0\0\0\17o\bÜ:\0\0#q oIiTDi7l-\0\0\0\17o\bä:\0\0#q qOt3Kvi/-\0\0\0\17o\bì:\0\0#q tFCQEsIm-\0\0\0\17o\bô:\0\0#q hN98ZBnW-\0\0\0\17o\bü:\0\0#q jLEBK6dw-\0\0\0\17o\b\ 4;\0\0#q +FxgB1I+-\0\0\0\17o\b\f;\0\0#q dDUAkMR8-\0\0\0\17o\b\14;\0\0#q mm+NWReO-\0\0\0\17o\b\1c;\0\0#q PvBhDZjk-\0\0\0\17o\b$;\0\0#q 4boMpjxo-\0\0\0\17o\b,;\0\0#q BGF5Lqkt-\0\0\0\17o\b4;\0\0#q 7tL3kyTU-\0\0\0\17o\b<;\0\0#q NCK+PoZx-\0\0\0\17o\bD;\0\0#q 3oUqB7h4-\0\0\0\17o\bL;\0\0#q 5wEXO/ld-\0\0\0\17o\bT;\0\0#q uTg4NfIq-\0\0\0\17o\b\;\0\0#q Ah8ZfJSA-\0\0\0\17o\bd;\0\0#q cG/jGkuH-\0\0\0\17o\bl;\0\0#q A8qr7Ro1-\0\0\0\17o\bt;\0\0#q 3OwIJLia-\0\0\0\17o\b|;\0\0#q 9u+yBZ0d-\0\0\0\17o\b\84;\0\0#q icUAxwCA-\0\0\0\17o\b\8c;\0\0#q kEDreMjH-\0\0\0\17o\b\94;\0\0#q sNGLghIQ-\0\0\0\17o\b\9c;\0\0#q jFyrYc98-\0\0\0\17o\b¤;\0\0#q oQaGSKed-\0\0\0\17o\b¬;\0\0#q iKrHfueb-\0\0\0\17o\b´;\0\0#q Y7DkhSaK-\0\0\0\17o\b¼;\0\0#q vv+X/oH7-\0\0\0\17o\bÄ;\0\0#q Ij+oKSLw-\0\0\0\17o\bÌ;\0\0#q 2kgfoPv0-\0\0\0\17o\bÔ;\0\0#q +vpfWeMj-\0\0\0\17o\bÜ;\0\0#q RqQk6L7Q-\0\0\0\17o\bä;\0\0#q tAATi0oN-\0\0\0\17o\bì;\0\0#q ZJzgYxP1-\0\0\0\17o\bô;\0\0#q w4HgU8+o-\0\0\0\17o\bü;\0\0#q YPhFESAj-\0\0\0\17o\b\ 4<\0\0#q Ayvt302e-\0\0\0\17o\b\f<\0\0#q CDaAWgGA-\0\0\0\17o\b\14<\0\0#q h7Xub6oU-\0\0\0\17o\b\1c<\0\0#q Y6dMeNnQ-\0\0\0\17o\b$<\0\0#q h4yl+Nm1-\0\0\0\17o\b,<\0\0#q AA19panR-\0\0\0\17o\b4<\0\0#q 4CYHnOGi-\0\0\0\17o\b<<\0\0#q idVdfdsd-\0\0\0\17o\bD<\0\0#q Gvhv6Zx0-\0\0\0\17o\bL<\0\0#q jjJBqQaw-\0\0\0\17o\bT<\0\0#q cqukBR4U-\0\0\0\17o\b\<\0\0#q x34pXobq-\0\0\0\17o\bd<\0\0#q CIL3lHdg-\0\0\0\17o\bl<\0\0#q Oad5nLqY-\0\0\0\17o\bt<\0\0#q jUZgE4Qv-\0\0\0\17o\b|<\0\0#q tAltbhvP-\0\0\0\17o\b\84<\0\0#q RFES+goc-\0\0\0\17o\b\8c<\0\0#q QfyAkiF/-\0\0\0\17o\b\94<\0\0#q e4WiKYNU-\0\0\0\17o\b\9c<\0\0#q IFjKWJZA-\0\0\0\17o\b¤<\0\0#q 5fwJczRR-\0\0\0\17o\b¬<\0\0#q ibFGT6zC-\0\0\0\17o\b´<\0\0#q HofhgW8e-\0\0\0\17o\b¼<\0\0#q ydxvZ1UF-\0\0\0\17o\bÄ<\0\0#q Hu97Toow-\0\0\0\17o\bÌ<\0\0#q 8FguNJpi-\0\0\0\17o\bÔ<\0\0#q KoCc0GQA-\0\0\0\17o\bÜ<\0\0#q n4ceHt3K-\0\0\0\17o\bä<\0\0#q 0i1feYVc-\0\0\0\17o\bì<\0\0#q ihrJaNBC-\0\0\0\17o\bô<\0\0#q ZJgh3FO6-\0\0\0\17o\bü<\0\0#q ENqkEW9e-\0\0\0\17o\b\ 4=\0\0#q LD7vi6wf-\0\0\0\17o\b\f=\0\0#q fT7OU2J7-\0\0\0\17o\b\14=\0\0#q Zn4VPfXd-\0\0\0\17o\b\1c=\0\0#q nohaADg6-\0\0\0\17o\b$=\0\0#q HCzQSKlL-\0\0\0\17o\b,=\0\0#q KttUpsb9-\0\0\0\17o\b4=\0\0#q HGGYyM1k-\0\0\0\17o\b<=\0\0#q dbG3LRyK-\0\0\0\17o\bD=\0\0#q BaAlAEQi-\0\0\0\17o\bL=\0\0#q 6K3SwEpX-\0\0\0\17o\bT=\0\0#q NuY3BAQX-\0\0\0\17o\b\=\0\0#q +wSMOhQK-\0\0\0\17o\bd=\0\0#q 6JuJ9Bbi-\0\0\0\17o\bl=\0\0#q QxBRmAui-\0\0\0\17o\bt=\0\0#q m0FUeeYU-\0\0\0\17o\b|=\0\0#q LAUKioFQ-\0\0\0\17o\b\84=\0\0#q Bh8aR3Mo-\0\0\0\17o\b\8c=\0\0#q 71V1gxBy-\0\0\0\17o\b\94=\0\0#q A7oX2gGD-\0\0\0\17o\b\9c=\0\0#q Qe8klFNQ-\0\0\0\17o\b¤=\0\0#q QNSjx5kW-\0\0\0\17o\b¬=\0\0#q PD8XwbJr-\0\0\0\17o\b´=\0\0#q OHhrmPG1-\0\0\0\17o\b¼=\0\0#q eVz2hyCe-\0\0\0\17o\bÄ=\0\0#q Czw70QRm-\0\0\0\17o\bÌ=\0\0#q PBaXfmHp-\0\0\0\17o\bÔ=\0\0#q q4d6Cj30-\0\0\0\17o\bÜ=\0\0#q CwL4FmzR-\0\0\0\17o\bä=\0\0#q hVE1Z3PX-\0\0\0\17o\bì=\0\0#q Gd4oUT3R-\0\0\0\17o\bô=\0\0#q T2fXIk3T-\0\0\0\17o\bü=\0\0#q n6hAxuw6-\0\0\0\17o\b\ 4>\0\0#q R4ZKzAfB-\0\0\0\17o\b\f>\0\0#q E2O4JIhA-\0\0\0\17o\b\14>\0\0#q k0YDAlY3-\0\0\0\17o\b\1c>\0\0#q e4AHkEgA-\0\0\0\17o\b$>\0\0#q r74ycQwA-\0\0\0\17o\b,>\0\0#q nQW7rtlc-\0\0\0\17o\b4>\0\0#q pF6JZA7V-\0\0\0\17o\b<>\0\0#q Nu66JrCc-\0\0\0\17o\bD>\0\0#q gjUCEFCE-\0\0\0\17o\bL>\0\0#q RpghIiGj-\0\0\0\17o\bT>\0\0#q 2TWA7EMd-\0\0\0\17o\b\>\0\0#q 0aiCjpcI-\0\0\0\17o\bd>\0\0#q QOLL43hk-\0\0\0\17o\bl>\0\0#q AKrIRD57-\0\0\0\17o\bt>\0\0#q bdINOGQ0-\0\0\0\17o\b|>\0\0#q 1LwiQc32-\0\0\0\17o\b\84>\0\0#q iwDYCMaA-\0\0\0\17o\b\8c>\0\0#q kHwImA5v-\0\0\0\17o\b\94>\0\0#q u3GtiupP-\0\0\0\17o\b\9c>\0\0#q Vup02YPe-\0\0\0\17o\b¤>\0\0#q 4G+iICJJ-\0\0\0\17o\b¬>\0\0#q zomO2gry-\0\0\0\17o\b´>\0\0#q Y5W3M5zx-\0\0\0\17o\b¼>\0\0#q 7DfU8YCD-\0\0\0\17o\bÄ>\0\0#q sEXiG6zV-\0\0\0\17o\bÌ>\0\0#q +xuOJIG8-\0\0\0\17o\bÔ>\0\0#q KOYoQjJH-\0\0\0\17o\bÜ>\0\0#q HsGD13J0-\0\0\0\17o\bä>\0\0#q uAvNmGVf-\0\0\0\17o\bì>\0\0#q Cbv+KJrz-\0\0\0\17o\bô>\0\0#q yu7cZk07-\0\0\0\17o\bü>\0\0#q DszWZjii-\0\0\0\17o\b\ 4?\0\0#q 34Z5Oq4J-\0\0\0\17o\b\f?\0\0#q YoGxovON-\0\0\0\17o\b\14?\0\0#q SVdyqdDa-\0\0\0\17o\b\1c?\0\0#q iI5o1E9g-\0\0\0\17o\b$?\0\0#q ZEO+MOkn-\0\0\0\17o\b,?\0\0#q bKrd3vCG-\0\0\0\17o\b4?\0\0#q jWOSCrnI-\0\0\0\17o\b<?\0\0#q 7Ux2qgrF-\0\0\0\17o\bD?\0\0#q 1ozkJ12i-\0\0\0\17o\bL?\0\0#q qiB+Qq2i-\0\0\0\17o\bT?\0\0#q Ql6eKyIK-\0\0\0\17o\b\?\0\0#q evnnG4vy-\0\0\0\17o\bd?\0\0#q 6vIfKJt1-\0\0\0\17o\bl?\0\0#q EpCX9n+P-\0\0\0\17o\bt?\0\0#q 6PQpAeBR-\0\0\0\17o\b|?\0\0#q KJQ1sOYC-\0\0\0\17o\b\84?\0\0#q WlkXAgV6-\0\0\0\17o\b\8c?\0\0#q zM7YJl8s-\0\0\0\17o\b\94?\0\0#q a21D2vb7-\0\0\0\17o\b\9c?\0\0#q geeO2Spm-\0\0\0\17o\b¤?\0\0#q kzN+KTwl-\0\0\0\17o\b¬?\0\0#q zt0iohA2-\0\0\0\17o\b´?\0\0#q AcDPLw1F-\0\0\0\17o\b¼?\0\0#q WDBUJvFW-\0\0\0\17o\bÄ?\0\0#q 9ggVk6Dx-\0\0\0\17o\bÌ?\0\0#q nW8ShTWw-\0\0\0\17o\bÔ?\0\0#q RlT1sHHJ-\0\0\0\17o\bÜ?\0\0#q yMsXFDhN-\0\0\0\17o\bä?\0\0#q L6q7kI6W-\0\0\0\17o\bì?\0\0#q JJzpELbU-\0\0\0\17o\bô?\0\0#q QNVIhmsR-\0\0\0\17o\bü?\0\0#q Vy0ajWqq-\0\0\0\17o\b\ 4@\0\0#q iK9NrXLa-\0\0\0\17o\b\f@\0\0#q rEhagikV-\0\0\0\17o\b\14@\0\0#q JEOvbHSF-\0\0\0\17o\b\1c@\0\0#q h2axoim1-\0\0\0\17o\b$@\0\0#q j1bJkioW-\0\0\0\17o\b,@\0\0#q VpJnTIwo-\0\0\0\17o\b4@\0\0#q tJdInhXv-\0\0\0\17o\b<@\0\0#q flf6SU/P-\0\0\0\17o\bD@\0\0#q PQX0bTPh-\0\0\0\17o\bL@\0\0#q CdsP29yw-\0\0\0\17o\bT@\0\0#q EL0SWUfT-\0\0\0\17o\b\@\0\0#q CD7EJL6E-\0\0\0\17o\bd@\0\0#q TkKMZq+X-\0\0\0\17o\bl@\0\0#q fvOV9/V1-\0\0\0\17o\bt@\0\0#q w3yP6vw8-\0\0\0\17o\b|@\0\0#q Bs00Num+-\0\0\0\17o\b\84@\0\0#q z8M7mbcc-\0\0\0\17o\b\8c@\0\0#q Nyaf49zD-\0\0\0\17o\b\94@\0\0#q IxUaQ2Ev-\0\0\0\17o\b\9c@\0\0#q qlaeEBsx-\0\0\0\17o\b¤@\0\0#q pWMXnJV3-\0\0\0\17o\b¬@\0\0#q xw2Tk85C-\0\0\0\17o\b´@\0\0#q vjXKxcvj-\0\0\0\17o\b¼@\0\0#q 69eMUfMr-\0\0\0\17o\bÄ@\0\0#q 8bW8bRbU-\0\0\0\17o\bÌ@\0\0#q onKyW5YZ-\0\0\0\17o\bÔ@\0\0#q YTLbI2sO-\0\0\0\17o\bÜ@\0\0#q +23t750N-\0\0\0\17o\bä@\0\0#q k8klcxbg-\0\0\0\17o\bì@\0\0#q YLeIcQe/-\0\0\0\17o\bô@\0\0#q QCQJFkWj-\0\0\0\17o\bü@\0\0#q +oMfqaTh-\0\0\0\17o\b\ 4A\0\0#q zaIrMI2P-\0\0\0\17o\b\fA\0\0#q 7OfFp/Tv-\0\0\0\17o\b\14A\0\0#q ReP9gGjS-\0\0\0\17o\b\1cA\0\0#q GXxEeEVF-\0\0\0\17o\b$A\0\0#q AmDkEvv9-\0\0\0\17o\b,A\0\0#q VUZSkBPb-\0\0\0\17o\b4A\0\0#q MF8w/60D-\0\0\0\17o\b<A\0\0#q 9GpeH1QC-\0\0\0\17o\bDA\0\0#q Fw55QkLu-\0\0\0\17o\bLA\0\0#q z9IAXDqK-\0\0\0\17o\bTA\0\0#q nNMEC9zi-\0\0\0\17o\b\A\0\0#q BCmelf4w-\0\0\0\17o\bdA\0\0#q fDqr8bOB-\0\0\0\17o\blA\0\0#q hgIc0RJI-\0\0\0\17o\btA\0\0#q I4qPuV5N-\0\0\0\17o\b|A\0\0#q z9AAJ6AR-\0\0\0\17o\b\84A\0\0#q U+oPi6hT-\0\0\0\17o\b\8cA\0\0#q +q8gwvYg-\0\0\0\17o\b\94A\0\0#q oidW+M0f-\0\0\0\17o\b\9cA\0\0#q bI8rtLFt-\0\0\0\17o\b¤A\0\0#q XO8iTUFl-\0\0\0\17o\b¬A\0\0#q JvXeyFxm-\0\0\0\17o\b´A\0\0#q JtnkC7zu-\0\0\0\17o\b¼A\0\0#q iaT8nGzt-\0\0\0\17o\bÄA\0\0#q zQSqBLOU-\0\0\0\17o\bÌA\0\0#q ovW3gp+v-\0\0\0\17o\bÔA\0\0#q zfBxm7Ph-\0\0\0\17o\bÜA\0\0#q lVblQM2b-\0\0\0\17o\bäA\0\0#q d+/Rh4dP-\0\0\0\17o\bìA\0\0#q RBvEDSXn-\0\0\0\17o\bôA\0\0#q gueiAwyD-\0\0\0\17o\büA\0\0#q AY7g52aB-\0\0\0\17o\b\ 4B\0\0#q 58+eG+XC-\0\0\0\17o\b\fB\0\0#q rEW8lGS1-\0\0\0\17o\b\14B\0\0#q QUeWOAT3-\0\0\0\17o\b\1cB\0\0#q cakjvwRH-\0\0\0\17o\b$B\0\0#q NevLrWRG-\0\0\0\17o\b,B\0\0#q xOBmTNeU-\0\0\0\17o\b4B\0\0#q Hz5BNT4o-\0\0\0\17o\b<B\0\0#q +AkxZAgM-\0\0\0\17o\bDB\0\0#q 8CgQuYt7-\0\0\0\17o\bLB\0\0#q U5ikqOco-\0\0\0\17o\bTB\0\0#q 13h+zN5A-\0\0\0\17o\b\B\0\0#q 3dAfUbWA-\0\0\0\17o\bdB\0\0#q pJdeQtkM-\0\0\0\17o\blB\0\0#q kEkG1iAU-\0\0\0\17o\btB\0\0#q lofiG95d-\0\0\0\17o\b|B\0\0#q axu0Xul4-\0\0\0\17o\b\84B\0\0#q UwF56lZ8-\0\0\0\17o\b\8cB\0\0#q 3m8LyQBi-\0\0\0\17o\b\94B\0\0#q oWOMnxAZ-\0\0\0\17o\b\9cB\0\0#q w8H19FHn-\0\0\0\17o\b¤B\0\0#q TZSfCQ8U-\0\0\0\17o\b¬B\0\0#q KukI6IKb-\0\0\0\17o\b´B\0\0#q gi2EROEV-\0\0\0\17o\b¼B\0\0#q BFDkVQRm-\0\0\0\17o\bÄB\0\0#q NCWiK5gK-\0\0\0\17o\bÌB\0\0#q gjqIqofR-\0\0\0\17o\bÔB\0\0#q AygkWCEQ-\0\0\0\17o\bÜB\0\0#q QOEBE3AU-\0\0\0\17o\bäB\0\0#q BUywFE+i-\0\0\0\17o\bìB\0\0#q CoPxHKo4-\0\0\0\17o\bôB\0\0#q qQYSR0uW-\0\0\0\17o\büB\0\0#q SDgsC3LB-\0\0\0\17o\b\ 4C\0\0#q C2FUgIbA-\0\0\0\17o\b\fC\0\0#q gEIgr0IF-\0\0\0\17o\b\14C\0\0#q BFEV2beE-\0\0\0\17o\b\1cC\0\0#q GgOV2VCE-\0\0\0\17o\b$C\0\0#q kasTeUI3-\0\0\0\17o\b,C\0\0#q 5YWoqjQQ-\0\0\0\17o\b4C\0\0#q JBJsaVFs-\0\0\0\17o\b<C\0\0#q gnIIYIeg-\0\0\0\17o\bDC\0\0#q AZiYinAC-\0\0\0\17o\bLC\0\0#q KCHIB8L9-\0\0\0\17o\bTC\0\0#q aSU2jqpg-\0\0\0\17o\b\C\0\0#q HDRm0jio-\0\0\0\17o\bdC\0\0#q EdaHayC8-\0\0\0\17o\blC\0\0#q iYiN6RSg-\0\0\0\17o\btC\0\0#q qyRLYbpY-\0\0\0\17o\b|C\0\0#q JZUhzsQd-\0\0\0\17o\b\84C\0\0#q YEVBA3EU-\0\0\0\17o\b\8cC\0\0#q HoIwQQ3B-\0\0\0\17o\b\94C\0\0#q FaiKBRPa-\0\0\0\17o\b\9cC\0\0#q gNKp4YAb-\0\0\0\17o\b¤C\0\0#q iYCICDII-\0\0\0\17o\b¬C\0\0#q OliTxeOO-\0\0\0\17o\b´C\0\0#q GnL2EcaO-\0\0\0\17o\b¼C\0\0#q MNDMGJjK-\0\0\0\17o\bÄC\0\0#q NGgchDj/-\0\0\0\17o\bÌC\0\0#q BKwYSZqR-\0\0\0\17o\bÔC\0\0#q lgLQR7nz-\0\0\0\17o\bÜC\0\0#q cAWpLACU-\0\0\0\17o\bäC\0\0#q RHNK7oqA-\0\0\0\17o\bìC\0\0#q sUjajiiY-\0\0\0\17o\bôC\0\0#q MTUESEVX-\0\0\0\17o\büC\0\0#q 6ICF+TFg-\0\0\0\17o\b\ 4D\0\0#q wSIL3tKF-\0\0\0\17o\b\fD\0\0#q +9aliQFd-\0\0\0\17o\b\14D\0\0#q BBB/IK0A-\0\0\0\17o\b\1cD\0\0#q ryCL37nj-\0\0\0\17o\b$D\0\0#q uaj74l8y-\0\0\0\17o\b,D\0\0#q ZNHN1lSj-\0\0\0\17o\b4D\0\0#q gfcTgmPs-\0\0\0\17o\b<D\0\0#q JRZVGcrS-\0\0\0\17o\bDD\0\0#q r8IEjldQ-\0\0\0\17o\bLD\0\0#q KtmKapHX-\0\0\0\17o\bTD\0\0#q 0QlsIki0-\0\0\0\17o\b\D\0\0#q IuSRcABg-\0\0\0\17o\bdD\0\0#q N0Gs+4Hb-\0\0\0\17o\blD\0\0#q DqPIFBxJ-\0\0\0\17o\btD\0\0#q iVh3OSuk-\0\0\0\17o\b|D\0\0#q GiQvd5no-\0\0\0\17o\b\84D\0\0#q gLDQRteh-\0\0\0\17o\b\8cD\0\0#q 2MyW2SI9-\0\0\0\17o\b\94D\0\0#q oRhikH4T-\0\0\0\17o\b\9cD\0\0#q 0jXdxNxJ-\0\0\0\17o\b¤D\0\0#q F2Xnskl3-\0\0\0\17o\b¬D\0\0#q AVffHjA6-\0\0\0\17o\b´D\0\0#q 7x2y8y73-\0\0\0\17o\b¼D\0\0#q Yo5mAE1D-\0\0\0\17o\bÄD\0\0#q hsMmXJEc-\0\0\0\17o\bÌD\0\0#q XQigaZco-\0\0\0\17o\bÔD\0\0#q gCwOAJSm-\0\0\0\17o\bÜD\0\0#q vkK59/AZ-\0\0\0\17o\bäD\0\0#q t5r6CHoK-\0\0\0\17o\bìD\0\0#q YtZF6XRW-\0\0\0\17o\bôD\0\0#q BxO/0HFi-\0\0\0\17o\büD\0\0#q G/lmwBS0-\0\0\0\17o\b\ 4E\0\0#q IXvAvwXw-\0\0\0\17o\b\fE\0\0#q uNK56cJC-\0\0\0\17o\b\14E\0\0#q uiEUIhAn-\0\0\0\17o\b\1cE\0\0#q VsVC0oQ/-\0\0\0\17o\b$E\0\0#q LDomFtpZ-\0\0\0\17o\b,E\0\0#q XfIu324p-\0\0\0\17o\b4E\0\0#q Rnto5FdN-\0\0\0\17o\b<E\0\0#q UA7OBqem-\0\0\0\17o\bDE\0\0#q CvdxU76w-\0\0\0\17o\bLE\0\0#q rnterFGP-\0\0\0\17o\bTE\0\0#q G+6Q45tX-\0\0\0\17o\b\E\0\0#q nD6WRacT-\0\0\0\17o\bdE\0\0#q +nbNIk1J-\0\0\0\17o\blE\0\0#q CPpi9vz6-\0\0\0\17o\btE\0\0#q KPo0aWTY-\0\0\0\17o\b|E\0\0#q VCFR78pP-\0\0\0\17o\b\84E\0\0#q NQgpwlQo-\0\0\0\17o\b\8cE\0\0#q 7nZl96ld-\0\0\0\17o\b\94E\0\0#q o0qhd6oA-\0\0\0\17o\b\9cE\0\0#q riD7PYX3-\0\0\0\17o\b¤E\0\0#q YjYi6+Kt-\0\0\0\17o\b¬E\0\0#q yURx0Dh5-\0\0\0\17o\b´E\0\0#q o389ggNb-\0\0\0\17o\b¼E\0\0#q U0B+KOiB-\0\0\0\17o\bÄE\0\0#q JNO/YO34-\0\0\0\17o\bÌE\0\0#q 6a7wfKK5-\0\0\0\17o\bÔE\0\0#q PBjVqgoz-\0\0\0\17o\bÜE\0\0#q X5yrvYe4-\0\0\0\17o\bäE\0\0#q b+g/eQES-\0\0\0\17o\bìE\0\0#q yAJYADkx-\0\0\0\17o\bôE\0\0#q 6QeCQZ6h-\0\0\0\17o\büE\0\0#q HDToVxoz-\0\0\0\17o\b\ 4F\0\0#q 61c19ymI-\0\0\0\17o\b\fF\0\0#q QUB4ySSE-\0\0\0\17o\b\14F\0\0#q GSTHhMs0-\0\0\0\17o\b\1cF\0\0#q Tr7Of7v5-\0\0\0\17o\b$F\0\0#q ZHrYzWRq-\0\0\0\17o\b,F\0\0#q mxy/D2PV-\0\0\0\17o\b4F\0\0#q nfrHr7nm-\0\0\0\17o\b<F\0\0#q k6vMiLt6-\0\0\0\17o\bDF\0\0#q Pfbbft76-\0\0\0\17o\bLF\0\0#q NqFfrnnc-\0\0\0\17o\bTF\0\0#q wD0EdL8q-\0\0\0\17o\b\F\0\0#q WqmCRcAG-\0\0\0\17o\bdF\0\0#q drsAgwQV-\0\0\0\17o\blF\0\0#q 6XyemW3c-\0\0\0\17o\btF\0\0#q sQRzF17h-\0\0\0\17o\b|F\0\0#q RM8sNaA5-\0\0\0\17o\b\84F\0\0#q u41TovvJ-\0\0\0\17o\b\8cF\0\0#q lL6Jmj0Q-\0\0\0\17o\b\94F\0\0#q dj3rXVUP-\0\0\0\17o\b\9cF\0\0#q YlIJEIbM-\0\0\0\17o\b¤F\0\0#q cN6Qo+y6-\0\0\0\17o\b¬F\0\0#q +Gy6V0pk-\0\0\0\17o\b´F\0\0#q 2Gw6o2eX-\0\0\0\17o\b¼F\0\0#q yfFnBOzA-\0\0\0\17o\bÄF\0\0#q XCDYADzR-\0\0\0\17o\bÌF\0\0#q CSnRaQYZ-\0\0\0\17o\bÔF\0\0#q +hwQZ0h7-\0\0\0\17o\bÜF\0\0#q sXXIQK0D-\0\0\0\17o\bäF\0\0#q QwbFchiJ-\0\0\0\17o\bìF\0\0#q 7Akq/buu-\0\0\0\17o\bôF\0\0#q qEJT+Fvw-\0\0\0\17o\büF\0\0#q SPhCs1JX-\0\0\0\17o\b\ 4G\0\0#q 34emWkc1-\0\0\0\17o\b\fG\0\0#q +0JlH7mg-\0\0\0\17o\b\14G\0\0#q V6fdrze3-\0\0\0\17o\b\1cG\0\0#q n1BaU/HP-\0\0\0\17o\b$G\0\0#q 0Ip6Az60-\0\0\0\17o\b,G\0\0#q FlmH0F+F-\0\0\0\17o\b4G\0\0#q DieRNSps-\0\0\0\17o\b<G\0\0#q h3JnZieg-\0\0\0\17o\bDG\0\0#q 899kMapx-\0\0\0\17o\bLG\0\0#q A2Agedvb-\0\0\0\17o\bTG\0\0#q fYhjt7fw-\0\0\0\17o\b\G\0\0#q dfgTf5O/-\0\0\0\17o\bdG\0\0#q lUCeRAZE-\0\0\0\17o\blG\0\0#q pJHwvsvi-\0\0\0\17o\btG\0\0#q +d3wMBEn-\0\0\0\17o\b|G\0\0#q a+Z6+GGG-\0\0\0\17o\b\84G\0\0#q gCoek/BW-\0\0\0\17o\b\8cG\0\0#q dQo/JYry-\0\0\0\17o\b\94G\0\0#q YiLihedI-\0\0\0\17o\b\9cG\0\0#q ULrmV2fA-\0\0\0\17o\b¤G\0\0#q YIU15yOA-\0\0\0\17o\b¬G\0\0#q fqwHuI8E-\0\0\0\17o\b´G\0\0#q wYI7aM8k-\0\0\0\17o\b¼G\0\0#q O0X6aYyg-\0\0\0\17o\bÄG\0\0#q iiUvGaA5-\0\0\0\17o\bÌG\0\0#q AqKrb3bL-\0\0\0\17o\bÔG\0\0#q K3Bu/ws6-\0\0\0\17o\bÜG\0\0#q awNQMldR-\0\0\0\17o\bäG\0\0#q V/OihvSG-\0\0\0\17o\bìG\0\0#q eGuLuQ5z-\0\0\0\17o\bôG\0\0#q hdKQyvBb-\0\0\0\17o\büG\0\0#q unGHiqbS-\0\0\0\17o\b\ 4H\0\0#q VBLCBBR3-\0\0\0\17o\b\fH\0\0#q sJmkCunD-\0\0\0\17o\b\14H\0\0#q AXHHd4eQ-\0\0\0\17o\b\1cH\0\0#q xhEGRYdB-\0\0\0\17o\b$H\0\0#q zZu7UXXM-\0\0\0\17o\b,H\0\0#q iBb3M0jR-\0\0\0\17o\b4H\0\0#q VaMN1xw0-\0\0\0\17o\b<H\0\0#q 4qyJ8G6D-\0\0\0\17o\bDH\0\0#q CyAXnHwZ-\0\0\0\17o\bLH\0\0#q RDcJFX32-\0\0\0\17o\bTH\0\0#q jyXoosS3-\0\0\0\17o\b\H\0\0#q eitAOfuZ-\0\0\0\17o\bdH\0\0#q FfqdLyQB-\0\0\0\17o\blH\0\0#q CCB3aIfY-\0\0\0\17o\btH\0\0#q 2OMhjfbV-\0\0\0\17o\b|H\0\0#q A5gUvI4N-\0\0\0\17o\b\84H\0\0#q I0ulOm0b-\0\0\0\17o\b\8cH\0\0#q 1FDfrFHR-\0\0\0\17o\b\94H\0\0#q 10hZU+OD-\0\0\0\17o\b\9cH\0\0#q KMCViSSt-\0\0\0\17o\b¤H\0\0#q xuklLxyr-\0\0\0\17o\b¬H\0\0#q OzBrvpkT-\0\0\0\17o\b´H\0\0#q D7nncH/Y-\0\0\0\17o\b¼H\0\0#q WN/xZ/cW-\0\0\0\17o\bÄH\0\0#q B4MEWMjo-\0\0\0\17o\bÌH\0\0#q uNq+pDjI-\0\0\0\17o\bÔH\0\0#q NyCJIMft-\0\0\0\17o\bÜH\0\0#q 7GzDNPmQ-\0\0\0\17o\bäH\0\0#q MmfKO8C3-\0\0\0\17o\bìH\0\0#q BCupq3ah-\0\0\0\17o\bôH\0\0#q 8aC+3PLy-\0\0\0\17o\büH\0\0#q daANlYxb-\0\0\0\17o\b\ 4I\0\0#q ybhnNhxC-\0\0\0\17o\b\fI\0\0#q RTyS5wfe-\0\0\0\17o\b\14I\0\0#q 8lJ5C60b-\0\0\0\17o\b\1cI\0\0#q 3pGVdQBE-\0\0\0\17o\b$I\0\0#q F12XTIjM-\0\0\0\17o\b,I\0\0#q tk1B3sJL-\0\0\0\17o\b4I\0\0#q jW843JTV-\0\0\0\17o\b<I\0\0#q 6tmmB3sz-\0\0\0\17o\bDI\0\0#q zW8PCNWR-\0\0\0\17o\bLI\0\0#q 3yd28o27-\0\0\0\17o\bTI\0\0#q CnITe6LT-\0\0\0\17o\b\I\0\0#q d1rriEPv-\0\0\0\17o\bdI\0\0#q +r+W/Lr2-\0\0\0\17o\blI\0\0#q jtO7uzN3-\0\0\0\17o\btI\0\0#q c4O+Tfc0-\0\0\0\17o\b|I\0\0#q 2jcUkrJR-\0\0\0\17o\b\84I\0\0#q 8QctADA0-\0\0\0\17o\b\8cI\0\0#q gXSiA676-\0\0\0\17o\b\94I\0\0#q RwOkRHUR-\0\0\0\17o\b\9cI\0\0#q dCHLXIqe-\0\0\0\17o\b¤I\0\0#q lq5LOSTV-\0\0\0\17o\b¬I\0\0#q lo0mrcKs-\0\0\0\17o\b´I\0\0#q bgjhEjAp-\0\0\0\17o\b¼I\0\0#q zpaorkBL-\0\0\0\17o\bÄI\0\0#q DgWikaMD-\0\0\0\17o\bÌI\0\0#q WBmkEQLF-\0\0\0\17o\bÔI\0\0#q 3ZzJGd55-\0\0\0\17o\bÜI\0\0#q Vbo6iJbS-\0\0\0\17o\bäI\0\0#q XTzOm0HE-\0\0\0\17o\bìI\0\0#q agBiaN6S-\0\0\0\17o\bôI\0\0#q rGSjgMe8-\0\0\0\17o\büI\0\0#q kJ1BRvID-\0\0\0\17o\b\ 4J\0\0#q Kb2rTVuv-\0\0\0\17o\b\fJ\0\0#q UjayCQnF-\0\0\0\17o\b\14J\0\0#q gki2WkEJ-\0\0\0\17o\b\1cJ\0\0#q GRQCMRew-\0\0\0\17o\b$J\0\0#q EqK/x1GD-\0\0\0\17o\b,J\0\0#q BcgGSKNr-\0\0\0\17o\b4J\0\0#q CGtI59ly-\0\0\0\17o\b<J\0\0#q NKkdOrQ0-\0\0\0\17o\bDJ\0\0#q UCJT/tYC-\0\0\0\17o\bLJ\0\0#q QsXuKTEr-\0\0\0\17o\bTJ\0\0#q gmB/L7qW-\0\0\0\17o\b\J\0\0#q QAgjObGx-\0\0\0\17o\bdJ\0\0#q tYRpoNAh-\0\0\0\17o\blJ\0\0#q ObSe0Yb8-\0\0\0\17o\btJ\0\0#q 6I/8koc5-\0\0\0\17o\b|J\0\0#q eNsi+mHW-\0\0\0\17o\b\84J\0\0#q zWtVmg20-\0\0\0\17o\b\8cJ\0\0#q +QHoAlFm-\0\0\0\17o\b\94J\0\0#q GJHkyHlQ-\0\0\0\17o\b\9cJ\0\0#q 13uGhptH-\0\0\0\17o\b¤J\0\0#q j5jDJQi8-\0\0\0\17o\b¬J\0\0#q LDIbkOBv-\0\0\0\17o\b´J\0\0#q Kk72hX8s-\0\0\0\17o\b¼J\0\0#q J7ueW16G-\0\0\0\17o\bÄJ\0\0#q HGq4y9iI-\0\0\0\17o\bÌJ\0\0#q j3yMYtSI-\0\0\0\17o\bÔJ\0\0#q bDhrWwlm-\0\0\0\17o\bÜJ\0\0#q qZXVJRCq-\0\0\0\17o\bäJ\0\0#q ouUAUhKK-\0\0\0\17o\bìJ\0\0#q oGCwqjpq-\0\0\0\17o\bôJ\0\0#q 43WTfM2q-\0\0\0\17o\büJ\0\0#q ub+jk2T4-\0\0\0\17o\b\ 4K\0\0#q GKHeyOVj-\0\0\0\17o\b\fK\0\0#q tYdlk++2-\0\0\0\17o\b\14K\0\0#q vs+/+x5N-\0\0\0\17o\b\1cK\0\0#q vlJOLPYm-\0\0\0\17o\b$K\0\0#q GRLWSHhD-\0\0\0\17o\b,K\0\0#q rPt8vLxj-\0\0\0\17o\b4K\0\0#q o69Xl+W2-\0\0\0\17o\b<K\0\0#q ESbJz6o+-\0\0\0\17o\bDK\0\0#q epO91qFW-\0\0\0\17o\bLK\0\0#q HfEcnfU/-\0\0\0\17o\bTK\0\0#q 36UAcqgb-\0\0\0\17o\b\K\0\0#q Z7xi7DdK-\0\0\0\17o\bdK\0\0#q jmP6OdAd-\0\0\0\17o\blK\0\0#q 8+vBt/Qt-\0\0\0\17o\btK\0\0#q BnxhQ5Y5-\0\0\0\17o\b|K\0\0#q 5yjps21V-\0\0\0\17o\b\84K\0\0#q oCjTyYLL-\0\0\0\17o\b\8cK\0\0#q 1CSAQTQg-\0\0\0\17o\b\94K\0\0#q B7K2FHCv-\0\0\0\17o\b\9cK\0\0#q BzdvNMXN-\0\0\0\17o\b¤K\0\0#q bRQpcZKH-\0\0\0\17o\b¬K\0\0#q abwUfuGc-\0\0\0\17o\b´K\0\0#q 374PhwMY-\0\0\0\17o\b¼K\0\0#q pCQXoDnJ-\0\0\0\17o\bÄK\0\0#q Zi+6wEgi-\0\0\0\17o\bÌK\0\0#q AiX71dMR-\0\0\0\17o\bÔK\0\0#q dTfvYRIw-\0\0\0\17o\bÜK\0\0#q t14Tk5HP-\0\0\0\17o\bäK\0\0#q rJ9sRIYw-\0\0\0\17o\bìK\0\0#q CUOkZlDd-\0\0\0\17o\bôK\0\0#q 4TvtfPdg-\0\0\0\17o\büK\0\0#q HxB1w21p-\0\0\0\17o\b\ 4L\0\0#q zT08CJyh-\0\0\0\17o\b\fL\0\0#q 7Xc8oYd9-\0\0\0\17o\b\14L\0\0#q ZaSpdBvq-\0\0\0\17o\b\1cL\0\0#q DRYUDhA4-\0\0\0\17o\b$L\0\0#q KO7b0HDw-\0\0\0\17o\b,L\0\0#q 6Hwa7Xtt-\0\0\0\17o\b4L\0\0#q FLJvwUID-\0\0\0\17o\b<L\0\0#q pRXAcDIR-\0\0\0\17o\bDL\0\0#q WHS+aUSz-\0\0\0\17o\bLL\0\0#q xocp5qow-\0\0\0\17o\bTL\0\0#q JUFyIVcK-\0\0\0\17o\b\L\0\0#q Hx7WHevE-\0\0\0\17o\bdL\0\0#q 5XHZxO+4-\0\0\0\17o\blL\0\0#q peTzkkly-\0\0\0\17o\btL\0\0#q u0YuiXbL-\0\0\0\17o\b|L\0\0#q EIJQUcsg-\0\0\0\17o\b\84L\0\0#q 9pabkI/h-\0\0\0\17o\b\8cL\0\0#q od3gISwZ-\0\0\0\17o\b\94L\0\0#q 4fwv1Xzc-\0\0\0\17o\b\9cL\0\0#q /OeFHgwt-\0\0\0\17o\b¤L\0\0#q N7OIIX02-\0\0\0\17o\b¬L\0\0#q fD0/FYKl-\0\0\0\17o\b´L\0\0#q oiIWHTB7-\0\0\0\17o\b¼L\0\0#q PYJwBsz1-\0\0\0\17o\bÄL\0\0#q ERDlrZJE-\0\0\0\17o\bÌL\0\0#q YDEhYass-\0\0\0\17o\bÔL\0\0#q KO0Hhjno-\0\0\0\17o\bÜL\0\0#q W2l4pHuK-\0\0\0\17o\bäL\0\0#q oFBPAi0I-\0\0\0\17o\bìL\0\0#q HcnEsMNI-\0\0\0\17o\bôL\0\0#q UlBMw4wq-\0\0\0\17o\büL\0\0#q CkAz69wR-\0\0\0\17o\b\ 4M\0\0#q dbCpCqYV-\0\0\0\17o\b\fM\0\0#q IiZOnuCR-\0\0\0\17o\b\14M\0\0#q 9k4a5ZjW-\0\0\0\17o\b\1cM\0\0#q NKYUSxiF-\0\0\0\17o\b$M\0\0#q zpNQQUVw-\0\0\0\17o\b,M\0\0#q U0iIm9Gb-\0\0\0\17o\b4M\0\0#q ESmCr3RF-\0\0\0\17o\b<M\0\0#q Qr1Uigjc-\0\0\0\17o\bDM\0\0#q 4jisu4pJ-\0\0\0\17o\bLM\0\0#q puPoO5yO-\0\0\0\17o\bTM\0\0#q eZt1Lgzt-\0\0\0\17o\b\M\0\0#q DDSQtUkU-\0\0\0\17o\bdM\0\0#q +DXS9idD-\0\0\0\17o\blM\0\0#q pAhOhoTB-\0\0\0\17o\btM\0\0#q eU7AAikk-\0\0\0\17o\b|M\0\0#q j6CLUxCI-\0\0\0\17o\b\84M\0\0#q ImIIc+BM-\0\0\0\17o\b\8cM\0\0#q GVzqBtTl-\0\0\0\17o\b\94M\0\0#q qMISI1Sc-\0\0\0\17o\b\9cM\0\0#q 4AgyKiD4-\0\0\0\17o\b¤M\0\0#q gcWAivyJ-\0\0\0\17o\b¬M\0\0#q qEowpHET-\0\0\0\17o\b´M\0\0#q khIOIUiJ-\0\0\0\17o\b¼M\0\0#q Asq4g6in-\0\0\0\17o\bÄM\0\0#q SDsxKRWg-\0\0\0\17o\bÌM\0\0#q Yt+3owIG-\0\0\0\17o\bÔM\0\0#q gQI7FgKR-\0\0\0\17o\bÜM\0\0#q ip6JhDOM-\0\0\0\17o\bäM\0\0#q YUVRT0Tq-\0\0\0\17o\bìM\0\0#q gKJELhtS-\0\0\0\17o\bôM\0\0#q rt5BLVIq-\0\0\0\17o\büM\0\0#q tKhEQLgg-\0\0\0\17o\b\ 4N\0\0#q ZJ4QhiQR-\0\0\0\17o\b\fN\0\0#q Gq0Cqrht-\0\0\0\17o\b\14N\0\0#q k6wQnTdr-\0\0\0\17o\b\1cN\0\0#q ZdiQdLJb-\0\0\0\17o\b$N\0\0#q BMJNwoI5-\0\0\0\17o\b,N\0\0#q yOuHOpAb-\0\0\0\17o\b4N\0\0#q HCioJ0J6-\0\0\0\17o\b<N\0\0#q YhibSGY1-\0\0\0\17o\bDN\0\0#q HllCJmB4-\0\0\0\17o\bLN\0\0#q jcrMaFD0-\0\0\0\17o\bTN\0\0#q ewXkW4ej-\0\0\0\17o\b\N\0\0#q jFIZTGKo-\0\0\0\17o\bdN\0\0#q 4JHcpSBB-\0\0\0\17o\blN\0\0#q Ptd0Qxs1-\0\0\0\17o\btN\0\0#q vmR1w4jy-\0\0\0\17o\b|N\0\0#q A/Q8IHSl-\0\0\0\17o\b\84N\0\0#q HwHq+Ee/-\0\0\0\17o\b\8cN\0\0#q WKYiGSG4-\0\0\0\17o\b\94N\0\0#q HC6NiRUC-\0\0\0\17o\b\9cN\0\0#q LF32CGop-\0\0\0\17o\b¤N\0\0#q cnwE7g8W-\0\0\0\17o\b¬N\0\0#q C7D27ysT-\0\0\0\17o\b´N\0\0#q rEzHoRC9-\0\0\0\17o\b¼N\0\0#q BQyGYAhk-\0\0\0\17o\bÄN\0\0#q qhOQBwpF-\0\0\0\17o\bÌN\0\0#q wUlY3keY-\0\0\0\17o\bÔN\0\0#q QrRXorRF-\0\0\0\17o\bÜN\0\0#q PA+GhTj5-\0\0\0\17o\bäN\0\0#q pDpAE7BL-\0\0\0\17o\bìN\0\0#q gAlbrkDp-\0\0\0\17o\bôN\0\0#q k7XdBkMC-\0\0\0\17o\büN\0\0#q e7aC56yt-\0\0\0\17o\b\ 4O\0\0#q hMcLyB5M-\0\0\0\17o\b\fO\0\0#q qB1IiizV-\0\0\0\17o\b\14O\0\0#q K6jgSzmX-\0\0\0\17o\b\1cO\0\0#q FAgGIgqw-\0\0\0\17o\b$O\0\0#q IgA6EtEe-\0\0\0\17o\b,O\0\0#q wNxEDMEK-\0\0\0\17o\b4O\0\0#q svoUzTnl-\0\0\0\17o\b<O\0\0#q KA5iDnmt-\0\0\0\17o\bDO\0\0#q Y0XrFdi7-\0\0\0\17o\bLO\0\0#q oO1avSIz-\0\0\0\17o\bTO\0\0#q 4+XbDYhp-\0\0\0\17o\b\O\0\0#q YNbXls12-\0\0\0\17o\bdO\0\0#q lualldWW-\0\0\0\17o\blO\0\0#q 6Rmvp3Xi-\0\0\0\17o\btO\0\0#q Sn4tr7H2-\0\0\0\17o\b|O\0\0#q DBIdge2U-\0\0\0\17o\b\84O\0\0#q Hx5TmHNI-\0\0\0\17o\b\8cO\0\0#q B0iD6NlF-\0\0\0\17o\b\94O\0\0#q C9gO0A7S-\0\0\0\17o\b\9cO\0\0#q i+DLWvYU-\0\0\0\17o\b¤O\0\0#q sE7DYKO6-\0\0\0\17o\b¬O\0\0#q BRETeHLc-\0\0\0\17o\b´O\0\0#q g6SAFuaZ-\0\0\0\17o\b¼O\0\0#q 2hO+UAet-\0\0\0\17o\bÄO\0\0#q ihqZiOFA-\0\0\0\17o\bÌO\0\0#q GI9nCa1g-\0\0\0\17o\bÔO\0\0#q vgaJXoNN-\0\0\0\17o\bÜO\0\0#q ThLNEDOV-\0\0\0\17o\bäO\0\0#q QpTOKJxU-\0\0\0\17o\bìO\0\0#q xb7ouRUN-\0\0\0\17o\bôO\0\0#q 5KMOSuV3-\0\0\0\17o\büO\0\0#q bdQuokVE-\0\0\0\17o\b\ 4P\0\0#q dMKFDQPm-\0\0\0\17o\b\fP\0\0#q AmkMhmx1-\0\0\0\17o\b\14P\0\0#q /f2bHBC8-\0\0\0\17o\b\1cP\0\0#q ijYJk50C-\0\0\0\17o\b$P\0\0#q 6E0XqgwM-\0\0\0\17o\b,P\0\0#q J6K9wOKa-\0\0\0\17o\b4P\0\0#q AATyGEoa-\0\0\0\17o\b<P\0\0#q SjjPogj2-\0\0\0\17o\bDP\0\0#q CyAOQRZk-\0\0\0\17o\bLP\0\0#q JxFQViYR-\0\0\0\17o\bTP\0\0#q M0i+Ei8g-\0\0\0\17o\b\P\0\0#q AZiihW1W-\0\0\0\17o\bdP\0\0#q Ukg7JgoK-\0\0\0\17o\blP\0\0#q GBijbIMe-\0\0\0\17o\btP\0\0#q nRopoooF-\0\0\0\17o\b|P\0\0#q jRhdB5Eb-\0\0\0\17o\b\84P\0\0#q kD0B3K05-\0\0\0\17o\b\8cP\0\0#q 69Q6zqcb-\0\0\0\17o\b\94P\0\0#q kOM1Fpwn-\0\0\0\17o\b\9cP\0\0#q oGyJMqYs-\0\0\0\17o\b¤P\0\0#q uqUojv8c-\0\0\0\17o\b¬P\0\0#q Z1sKM4tO-\0\0\0\17o\b´P\0\0#q 5+rCm9ZZ-\0\0\0\17o\b¼P\0\0#q JCE6fbtt-\0\0\0\17o\bÄP\0\0#q A7APREM1-\0\0\0\17o\bÌP\0\0#q 9CSIPRp8-\0\0\0\17o\bÔP\0\0#q 16UCN9JJ-\0\0\0\17o\bÜP\0\0#q BPsHGQVv-\0\0\0\17o\bäP\0\0#q YZdivqFy-\0\0\0\17o\bìP\0\0#q +EDnwVAw-\0\0\0\17o\bôP\0\0#q p4cGED2K-\0\0\0\17o\büP\0\0#q JDVUXA7y-\0\0\0\17o\b\ 4Q\0\0#q rAlwDiMK-\0\0\0\17o\b\fQ\0\0#q 5xTOPCYr-\0\0\0\17o\b\14Q\0\0#q IplcSluc-\0\0\0\17o\b\1cQ\0\0#q CUpqSpZo-\0\0\0\17o\b$Q\0\0#q xggu32wz-\0\0\0\17o\b,Q\0\0#q jnF2FlIi-\0\0\0\17o\b4Q\0\0#q doAllPOF-\0\0\0\17o\b<Q\0\0#q bJzD2SIC-\0\0\0\17o\bDQ\0\0#q WniGwEiA-\0\0\0\17o\bLQ\0\0#q 3QNDcV1n-\0\0\0\17o\bTQ\0\0#q gXIKepNW-\0\0\0\17o\b\Q\0\0#q 41sRWLhv-\0\0\0\17o\bdQ\0\0#q PSg1vwFI-\0\0\0\17o\blQ\0\0#q hjFd0VnV-\0\0\0\17o\btQ\0\0#q LBR9WMhk-\0\0\0\17o\b|Q\0\0#q sUIIoiX6-\0\0\0\17o\b\84Q\0\0#q b6aI6gwm-\0\0\0\17o\b\8cQ\0\0#q eWGTazqF-\0\0\0\17o\b\94Q\0\0#q hRbYz6Bw-\0\0\0\17o\b\9cQ\0\0#q daC+k9L6-\0\0\0\17o\b¤Q\0\0#q lESGVK0K-\0\0\0\17o\b¬Q\0\0#q gKYufORB-\0\0\0\17o\b´Q\0\0#q 0fYYzTnB-\0\0\0\17o\b¼Q\0\0#q emj4BH2g-\0\0\0\17o\bÄQ\0\0#q EaHaaIrv-\0\0\0\17o\bÌQ\0\0#q fxwDWvTn-\0\0\0\17o\bÔQ\0\0#q qdY6WgKU-\0\0\0\17o\bÜQ\0\0#q pgSoZrcE-\0\0\0\17o\bäQ\0\0#q XkiQwPFh-\0\0\0\17o\bìQ\0\0#q y9jFIQUO-\0\0\0\17o\bôQ\0\0#q RTJpUAFr-\0\0\0\17o\büQ\0\0#q hENwKQV1-\0\0\0\17o\b\ 4R\0\0#q OLa5FQdh-\0\0\0\17o\b\fR\0\0#q FEEkFVhF-\0\0\0\17o\b\14R\0\0#q QCQVCRUl-\0\0\0\17o\b\1cR\0\0#q RhtibMFY-\0\0\0\17o\b$R\0\0#q g7DmjWQ0-\0\0\0\17o\b,R\0\0#q vBThVntD-\0\0\0\17o\b4R\0\0#q Vh0KBEg8-\0\0\0\17o\b<R\0\0#q z0VFZ1dn-\0\0\0\17o\bDR\0\0#q lwvOxCyV-\0\0\0\17o\bLR\0\0#q yFg6KORR-\0\0\0\17o\bTR\0\0#q zKtb9eVa-\0\0\0\17o\b\R\0\0#q U6PsPpQ6-\0\0\0\17o\bdR\0\0#q vqCxMQym-\0\0\0\17o\blR\0\0#q mlu1MoOo-\0\0\0\17o\btR\0\0#q fNGJrbSJ-\0\0\0\17o\b|R\0\0#q qCnCG0Zk-\0\0\0\17o\b\84R\0\0#q U3SmgEqj-\0\0\0\17o\b\8cR\0\0#q ljqxILxo-\0\0\0\17o\b\94R\0\0#q C0NXXqMY-\0\0\0\17o\b\9cR\0\0#q PKZsTNGg-\0\0\0\17o\b¤R\0\0#q seiQX1Um-\0\0\0\17o\b¬R\0\0#q +tDnWCzE-\0\0\0\17o\b´R\0\0#q FM5KYaQw-\0\0\0\17o\b¼R\0\0#q iK2hebBF-\0\0\0\17o\bÄR\0\0#q tFvWbIKl-\0\0\0\17o\bÌR\0\0#q A0gySQIK-\0\0\0\17o\bÔR\0\0#q EVUFY1qk-\0\0\0\17o\bÜR\0\0#q KQisEBDE-\0\0\0\17o\bäR\0\0#q YcpVOMqL-\0\0\0\17o\bìR\0\0#q jVHCwFV4-\0\0\0\17o\bôR\0\0#q coAKcGYV-\0\0\0\17o\büR\0\0#q aniPIi0I-\0\0\0\17o\b\ 4S\0\0#q DFCEO6py-\0\0\0\17o\b\fS\0\0#q iK3Sb5Qt-\0\0\0\17o\b\14S\0\0#q wUTkeVRq-\0\0\0\17o\b\1cS\0\0#q SZvgtiPR-\0\0\0\17o\b$S\0\0#q iC9YmOGp-\0\0\0\17o\b,S\0\0#q hARNmQ6k-\0\0\0\17o\b4S\0\0#q LF5Mm9RN-\0\0\0\17o\b<S\0\0#q 5UknKirN-\0\0\0\17o\bDS\0\0#q lCkLBMDw-\0\0\0\17o\bLS\0\0#q LZGwouEW-\0\0\0\17o\bTS\0\0#q mYel0VvP-\0\0\0\17o\b\S\0\0#q Jk0f9vqD-\0\0\0\17o\bdS\0\0#q gB1OMRmK-\0\0\0\17o\blS\0\0#q ZKIzWahO-\0\0\0\17o\btS\0\0#q Gd6NWRFA-\0\0\0\17o\b|S\0\0#q nCIXEL6B-\0\0\0\17o\b\84S\0\0#q 0Uc2fl5P-\0\0\0\17o\b\8cS\0\0#q sIeQC1Fo-\0\0\0\17o\b\94S\0\0#q bsyuXXTi-\0\0\0\17o\b\9cS\0\0#q CpCs4yTW-\0\0\0\17o\b¤S\0\0#q 8WkdGVi0-\0\0\0\17o\b¬S\0\0#q 2BNTSDmt-\0\0\0\17o\b´S\0\0#q nKPWeq9Y-\0\0\0\17o\b¼S\0\0#q 4twF4gEp-\0\0\0\17o\bÄS\0\0#q DgiKRGKA-\0\0\0\17o\bÌS\0\0#q rATvQoMR-\0\0\0\17o\bÔS\0\0#q EzE7FMRA-\0\0\0\17o\bÜS\0\0#q K9ixd+aT-\0\0\0\17o\bäS\0\0#q uQoIDMYQ-\0\0\0\17o\bìS\0\0#q ZSoQTcKE-\0\0\0\17o\bôS\0\0#q AaDgwLsS-\0\0\0\17o\büS\0\0#q RHUTmeBl-\0\0\0\17o\b\ 4T\0\0#q wAjqJW12-\0\0\0\17o\b\fT\0\0#q haMGnPdB-\0\0\0\17o\b\14T\0\0#q 7Rko8t7U-\0\0\0\17o\b\1cT\0\0#q YLQRAzDo-\0\0\0\17o\b$T\0\0#q HldEqn4z-\0\0\0\17o\b,T\0\0#q fIlR+ahT-\0\0\0\17o\b4T\0\0#q FDj40bkE-\0\0\0\17o\b<T\0\0#q s7N9ubb1-\0\0\0\17o\bDT\0\0#q r5Pkz4P7-\0\0\0\17o\bLT\0\0#q KmacMbzs-\0\0\0\17o\bTT\0\0#q Q60kjr28-\0\0\0\17o\b\T\0\0#q eWZT5fOl-\0\0\0\17o\bdT\0\0#q M3PVqKOM-\0\0\0\17o\blT\0\0#q RxDR3mUf-\0\0\0\17o\btT\0\0#q p54ZLqzc-\0\0\0\17o\b|T\0\0#q SJorg+9h-\0\0\0\17o\b\84T\0\0#q oxMGzVzk-\0\0\0\17o\b\8cT\0\0#q E32DW2Jt-\0\0\0\17o\b\94T\0\0#q bU2qrPLp-\0\0\0\17o\b\9cT\0\0#q N5Xpxamj-\0\0\0\17o\b¤T\0\0#q zu8wb1lW-\0\0\0\17o\b¬T\0\0#q 8jakUx6d-\0\0\0\17o\b´T\0\0#q IsLnCxQw-\0\0\0\17o\b¼T\0\0#q pEzLzYbS-\0\0\0\17o\bÄT\0\0#q CTWTEZrw-\0\0\0\17o\bÌT\0\0#q p0sG2G5E-\0\0\0\17o\bÔT\0\0#q vMnZyhFF-\0\0\0\17o\bÜT\0\0#q F5tTkG1A-\0\0\0\17o\bäT\0\0#q ZohFJvea-\0\0\0\17o\bìT\0\0#q YcvskKd5-\0\0\0\17o\bôT\0\0#q SozIJ5nC-\0\0\0\17o\büT\0\0#q lUEHKNtL-\0\0\0\17o\b\ 4U\0\0#q ZSLNdA29-\0\0\0\17o\b\fU\0\0#q uDYo7sXx-\0\0\0\17o\b\14U\0\0#q jC44bazL-\0\0\0\17o\b\1cU\0\0#q kkiHu8qr-\0\0\0\17o\b$U\0\0#q YzJnnJ2o-\0\0\0\17o\b,U\0\0#q Q08SqTZV-\0\0\0\17o\b4U\0\0#q lzXJN05f-\0\0\0\17o\b<U\0\0#q OLkVt9y4-\0\0\0\17o\bDU\0\0#q SAdhsUds-\0\0\0\17o\bLU\0\0#q ETItUioA-\0\0\0\17o\bTU\0\0#q 4xSCJRd2-\0\0\0\17o\b\U\0\0#q ihTicgxY-\0\0\0\17o\bdU\0\0#q cOnBhN2O-\0\0\0\17o\blU\0\0#q XCLbNOTB-\0\0\0\17o\btU\0\0#q hkqTgh2g-\0\0\0\17o\b|U\0\0#q 0U4XAdMY-\0\0\0\17o\b\84U\0\0#q maJDRnHR-\0\0\0\17o\b\8cU\0\0#q R4Lu3sBv-\0\0\0\17o\b\94U\0\0#q FYojVUFk-\0\0\0\17o\b\9cU\0\0#q FCHnDpF0-\0\0\0\17o\b¤U\0\0#q yh0wkgez-\0\0\0\17o\b¬U\0\0#q uLUwW6ma-\0\0\0\17o\b´U\0\0#q OnVNAne9-\0\0\0\17o\b¼U\0\0#q DRbH+AAH-\0\0\0\17o\bÄU\0\0#q ETar2+Ft-\0\0\0\17o\bÌU\0\0#q 41Wuaum2-\0\0\0\17o\bÔU\0\0#q jm5bd3WK-\0\0\0\17o\bÜU\0\0#q QkCQUMg9-\0\0\0\17o\bäU\0\0#q FB/ynAQT-\0\0\0\17o\bìU\0\0#q MVeIB8oh-\0\0\0\17o\bôU\0\0#q 6CKP0EAQ-\0\0\0\17o\büU\0\0#q xoFOUgEE-\0\0\0\17o\b\ 4V\0\0#q vm7+N6n5-\0\0\0\17o\b\fV\0\0#q WSrmuWds-\0\0\0\17o\b\14V\0\0#q diR+nu8p-\0\0\0\17o\b\1cV\0\0#q v3szvUcb-\0\0\0\17o\b$V\0\0#q eXbM8Y2r-\0\0\0\17o\b,V\0\0#q YHrC4l+z-\0\0\0\17o\b4V\0\0#q yLjDfmIM-\0\0\0\17o\b<V\0\0#q YVsENPkK-\0\0\0\17o\bDV\0\0#q 9m6v+lyT-\0\0\0\17o\bLV\0\0#q 5D1f3aEZ-\0\0\0\17o\bTV\0\0#q uONmS117-\0\0\0\17o\b\V\0\0#q lX6NWkjP-\0\0\0\17o\bdV\0\0#q Zo21sYFw-\0\0\0\17o\blV\0\0#q u55fns3W-\0\0\0\17o\btV\0\0#q ZHrU9bIX-\0\0\0\17o\b|V\0\0#q YmXLdyes-\0\0\0\17o\b\84V\0\0#q JJhtZsyP-\0\0\0\17o\b\8cV\0\0#q 8XuYeY2q-\0\0\0\17o\b\94V\0\0#q PLzk8i2e-\0\0\0\17o\b\9cV\0\0#q MXprLlTU-\0\0\0\17o\b¤V\0\0#q ee8pZwCQ-\0\0\0\17o\b¬V\0\0#q X5F0LaW8-\0\0\0\17o\b´V\0\0#q MCu2YWI+-\0\0\0\17o\b¼V\0\0#q FoVCAHBD-\0\0\0\17o\bÄV\0\0#q 2BOl9jQc-\0\0\0\17o\bÌV\0\0#q oGoiISmk-\0\0\0\17o\bÔV\0\0#q exUTRuFC-\0\0\0\17o\bÜV\0\0#q kqlW4ITO-\0\0\0\17o\bäV\0\0#q GyomsKYH-\0\0\0\17o\bìV\0\0#q BjZrY5wn-\0\0\0\17o\bôV\0\0#q cn7k8ejM-\0\0\0\17o\büV\0\0#q 3ET0XYlJ-\0\0\0\17o\b\ 4W\0\0#q U8VglCrh-\0\0\0\17o\b\fW\0\0#q D1mEVbUg-\0\0\0\17o\b\14W\0\0#q nLS6ENcM-\0\0\0\17o\b\1cW\0\0#q UAAwOwoo-\0\0\0\17o\b$W\0\0#q znxlE7lP-\0\0\0\17o\b,W\0\0#q uAKOBPjK-\0\0\0\17o\b4W\0\0#q FlnYC6AD-\0\0\0\17o\b<W\0\0#q qLSrEfFW-\0\0\0\17o\bDW\0\0#q gZgi07lQ-\0\0\0\17o\bLW\0\0#q JqzHsmsU-\0\0\0\17o\bTW\0\0#q g1ZBbG7l-\0\0\0\17o\b\W\0\0#q W9a5qOWx-\0\0\0\17o\bdW\0\0#q HURNRDgo-\0\0\0\17o\blW\0\0#q mOIhVc+e-\0\0\0\17o\btW\0\0#q 4RuBqAVW-\0\0\0\17o\b|W\0\0#q jExp9ZXg-\0\0\0\17o\b\84W\0\0#q MJ2l+KEV-\0\0\0\17o\b\8cW\0\0#q vOwwHQfp-\0\0\0\17o\b\94W\0\0#q lT6irimo-\0\0\0\17o\b\9cW\0\0#q Kktr1mTv-\0\0\0\17o\b¤W\0\0#q Mn1AI6Nj-\0\0\0\17o\b¬W\0\0#q 8IOjnF6d-\0\0\0\17o\b´W\0\0#q HXSm3bQx-\0\0\0\17o\b¼W\0\0#q 3SNAEqFi-\0\0\0\17o\bÄW\0\0#q gcKwa6F/-\0\0\0\17o\bÌW\0\0#q BubLQ9vc-\0\0\0\17o\bÔW\0\0#q q85KsS6A-\0\0\0\17o\bÜW\0\0#q ydGpaE6q-\0\0\0\17o\bäW\0\0#q tgkARpz1-\0\0\0\17o\bìW\0\0#q BKuNSoGB-\0\0\0\17o\bôW\0\0#q OgBQ5A1k-\0\0\0\17o\büW\0\0#q Ba73YHOd-\0\0\0\17o\b\ 4X\0\0#q tULNUiHq-\0\0\0\17o\b\fX\0\0#q pDygDESZ-\0\0\0\17o\b\14X\0\0#q ngsBXWfd-\0\0\0\17o\b\1cX\0\0#q QdUGGBnh-\0\0\0\17o\b$X\0\0#q tbsFzJEX-\0\0\0\17o\b,X\0\0#q O68eFC4N-\0\0\0\17o\b4X\0\0#q 2M3gCnwh-\0\0\0\17o\b<X\0\0#q Ljo2sgkK-\0\0\0\17o\bDX\0\0#q uQ/2GLWH-\0\0\0\17o\bLX\0\0#q g0I67776-\0\0\0\17o\bTX\0\0#q B8O/3enH-\0\0\0\17o\b\X\0\0#q ovnD5QgD-\0\0\0\17o\bdX\0\0#q 5SX19KJh-\0\0\0\17o\blX\0\0#q ml4fQjZ7-\0\0\0\17o\btX\0\0#q +0Q5JZrA-\0\0\0\17o\b|X\0\0#q 6YidgWYy-\0\0\0\17o\b\84X\0\0#q Y4jl8xSV-\0\0\0\17o\b\8cX\0\0#q sK0myHtg-\0\0\0\17o\b\94X\0\0#q 0AKidGTG-\0\0\0\17o\b\9cX\0\0#q 7nAv1K6y-\0\0\0\17o\b¤X\0\0#q 5UVikEpJ-\0\0\0\17o\b¬X\0\0#q JeVcrzdb-\0\0\0\17o\b´X\0\0#q 0hpFKVRz-\0\0\0\17o\b¼X\0\0#q LlSn17KM-\0\0\0\17o\bÄX\0\0#q aMkjCTLM-\0\0\0\17o\bÌX\0\0#q QQ0FPTr0-\0\0\0\17o\bÔX\0\0#q SQkXhEVo-\0\0\0\17o\bÜX\0\0#q yWhvoQ9y-\0\0\0\17o\bäX\0\0#q PsIB3yDP-\0\0\0\17o\bìX\0\0#q eHXPwPw9-\0\0\0\17o\bôX\0\0#q rkIoDOGz-\0\0\0\17o\büX\0\0#q 49jxbEtA-\0\0\0\17o\b\ 4Y\0\0#q Ll682Rhs-\0\0\0\17o\b\fY\0\0#q 0JwxZeyK-\0\0\0\17o\b\14Y\0\0#q gGTMoB+Y-\0\0\0\17o\b\1cY\0\0#q AhZz8Qa9-\0\0\0\17o\b$Y\0\0#q iOMdcWRB-\0\0\0\17o\b,Y\0\0#q 55QGYQwr-\0\0\0\17o\b4Y\0\0#q yLwiXDkQ-\0\0\0\17o\b<Y\0\0#q LgYR9ATD-\0\0\0\17o\bDY\0\0#q OHVU8lId-\0\0\0\17o\bLY\0\0#q eOvOCO8P-\0\0\0\17o\bTY\0\0#q htQKPJPa-\0\0\0\17o\b\Y\0\0#q SS5gH9u2-\0\0\0\17o\bdY\0\0#q h8QPjqFh-\0\0\0\17o\blY\0\0#q zWX1iUDk-\0\0\0\17o\btY\0\0#q BGGRdQFO-\0\0\0\17o\b|Y\0\0#q RGvidclj-\0\0\0\17o\b\84Y\0\0#q OQQDzVBl-\0\0\0\17o\b\8cY\0\0#q TGG2UR07-\0\0\0\17o\b\94Y\0\0#q istKQkPD-\0\0\0\17o\b\9cY\0\0#q ezFCw0PU-\0\0\0\17o\b¤Y\0\0#q RkJVk1fF-\0\0\0\17o\b¬Y\0\0#q tUDEY3Ct-\0\0\0\17o\b´Y\0\0#q DUhqIFYm-\0\0\0\17o\b¼Y\0\0#q bk+TNC9b-\0\0\0\17o\bÄY\0\0#q RLgC1B2Q-\0\0\0\17o\bÌY\0\0#q hmoGNNdE-\0\0\0\17o\bÔY\0\0#q XHTlVNGE-\0\0\0\17o\bÜY\0\0#q VIJL1zKJ-\0\0\0\17o\bäY\0\0#q JcvOiDo0-\0\0\0\17o\bìY\0\0#q nuITwMO7-\0\0\0\17o\bôY\0\0#q aogoMQul-\0\0\0\17o\büY\0\0#q p1Uzxq+a-\0\0\0\17o\b\ 4Z\0\0#q 5SU07uZm-\0\0\0\17o\b\fZ\0\0#q vE1CJnZZ-\0\0\0\17o\b\14Z\0\0#q 70OyN16a-\0\0\0\17o\b\1cZ\0\0#q Wcbe7Cfh-\0\0\0\17o\b$Z\0\0#q B0W5dv9C-\0\0\0\17o\b,Z\0\0#q 6SR3sHAF-\0\0\0\17o\b4Z\0\0#q MHzkGZVh-\0\0\0\17o\b<Z\0\0#q ljT9BtpA-\0\0\0\17o\bDZ\0\0#q ZFGb0IBh-\0\0\0\17o\bLZ\0\0#q iANn4yVt-\0\0\0\17o\bTZ\0\0#q UWWNjZlO-\0\0\0\17o\b\Z\0\0#q DZOyQgvv-\0\0\0\17o\bdZ\0\0#q s4J4XQtR-\0\0\0\17o\blZ\0\0#q 3HQo1zIK-\0\0\0\17o\btZ\0\0#q aCGoA3MH-\0\0\0\17o\b|Z\0\0#q DeDBQRyG-\0\0\0\17o\b\84Z\0\0#q SIusq+Iu-\0\0\0\17o\b\8cZ\0\0#q UOnPeNgB-\0\0\0\17o\b\94Z\0\0#q ZsMVdUK/-\0\0\0\17o\b\9cZ\0\0#q MA7M74eX-\0\0\0\17o\b¤Z\0\0#q N+cCMybr-\0\0\0\17o\b¬Z\0\0#q gKkJpI2A-\0\0\0\17o\b´Z\0\0#q ViGsH9t9-\0\0\0\17o\b¼Z\0\0#q NE2mTXEA-\0\0\0\17o\bÄZ\0\0#q H2u1lnrn-\0\0\0\17o\bÌZ\0\0#q 3EhxUTGq-\0\0\0\17o\bÔZ\0\0#q z2uqtiqA-\0\0\0\17o\bÜZ\0\0#q hUVEQ7IF-\0\0\0\17o\bäZ\0\0#q AI05ncwT-\0\0\0\17o\bìZ\0\0#q fKHWxRzw-\0\0\0\17o\bôZ\0\0#q OqtWiKzn-\0\0\0\17o\büZ\0\0#q M7zWPbVz-\0\0\0\17o\b\ 4[\0\0#q w4j5iIaD-\0\0\0\17o\b\f[\0\0#q SHW84UBR-\0\0\0\17o\b\14[\0\0#q M2Z3vmt3-\0\0\0\17o\b\1c[\0\0#q R7bnF9KA-\0\0\0\17o\b$[\0\0#q sRXK5MOI-\0\0\0\17o\b,[\0\0#q Wdxy1IhO-\0\0\0\17o\b4[\0\0#q 4yIpyYRj-\0\0\0\17o\b<[\0\0#q iTl6klPn-\0\0\0\17o\bD[\0\0#q dDcCERED-\0\0\0\17o\bL[\0\0#q fIAlT9Ge-\0\0\0\17o\bT[\0\0#q QO/FHYQ4-\0\0\0\17o\b\[\0\0#q IvbAcQGR-\0\0\0\17o\bd[\0\0#q xYyPYeZe-\0\0\0\17o\bl[\0\0#q wWBoEX3d-\0\0\0\17o\bt[\0\0#q zOxpl0F2-\0\0\0\17o\b|[\0\0#q A6Xk4Rpt-\0\0\0\17o\b\84[\0\0#q VObwVYvR-\0\0\0\17o\b\8c[\0\0#q JgUdJSoU-\0\0\0\17o\b\94[\0\0#q Bw0WAB93-\0\0\0\17o\b\9c[\0\0#q YAWGu4ui-\0\0\0\17o\b¤[\0\0#q aiu2D0oQ-\0\0\0\17o\b¬[\0\0#q 6CQqYz2s-\0\0\0\17o\b´[\0\0#q vjWxM5GL-\0\0\0\17o\b¼[\0\0#q ngT4hPu9-\0\0\0\17o\bÄ[\0\0#q PIny6IsR-\0\0\0\17o\bÌ[\0\0#q ZwrtKctQ-\0\0\0\17o\bÔ[\0\0#q EYHDXdoR-\0\0\0\17o\bÜ[\0\0#q qg5oQ2uS-\0\0\0\17o\bä[\0\0#q sX4bCJ3N-\0\0\0\17o\bì[\0\0#q GGNxFpY9-\0\0\0\17o\bô[\0\0#q K9jfyTMP-\0\0\0\17o\bü[\0\0#q t60P9tHl-\0\0\0\17o\b\ 4\\0\0#q UE941bvY-\0\0\0\17o\b\f\\0\0#q 0CWQSCsN-\0\0\0\17o\b\14\\0\0#q Udyq41St-\0\0\0\17o\b\1c\\0\0#q OyY05v6r-\0\0\0\17o\b$\\0\0#q yYNfhWLr-\0\0\0\17o\b,\\0\0#q uNAJjmG6-\0\0\0\17o\b4\\0\0#q yfUmfUsh-\0\0\0\17o\b<\\0\0#q kQw5BAYq-\0\0\0\17o\bD\\0\0#q lskE4XZZ-\0\0\0\17o\bL\\0\0#q 0rCcTJIR-\0\0\0\17o\bT\\0\0#q vQcxBsbo-\0\0\0\17o\b\\\0\0#q dFNqdCpM-\0\0\0\17o\bd\\0\0#q hmSYhrWB-\0\0\0\17o\bl\\0\0#q xkg7XIf3-\0\0\0\17o\bt\\0\0#q 71jehCbU-\0\0\0\17o\b|\\0\0#q wexm4dGg-\0\0\0\17o\b\84\\0\0#q VDsU5gmy-\0\0\0\17o\b\8c\\0\0#q ARYrMvjR-\0\0\0\17o\b\94\\0\0#q HnRAjrEi-\0\0\0\17o\b\9c\\0\0#q 0GYc5Y6O-\0\0\0\17o\b¤\\0\0#q iwRdCNAU-\0\0\0\17o\b¬\\0\0#q hDcJxjcB-\0\0\0\17o\b´\\0\0#q NIBhrUp2-\0\0\0\17o\b¼\\0\0#q G6ndXbO7-\0\0\0\17o\bÄ\\0\0#q n1V1kivl-\0\0\0\17o\bÌ\\0\0#q 8XxGjFDj-\0\0\0\17o\bÔ\\0\0#q 0HsLjFzt-\0\0\0\17o\bÜ\\0\0#q VYhL2gQA-\0\0\0\17o\bä\\0\0#q RiRjzTge-\0\0\0\17o\bì\\0\0#q THDnuVV3-\0\0\0\17o\bô\\0\0#q Z6EWdEVx-\0\0\0\17o\bü\\0\0#q 3o6ECjQ5-\0\0\0\17o\b\ 4]\0\0#q rCJk6KO7-\0\0\0\17o\b\f]\0\0#q JyyngW7F-\0\0\0\17o\b\14]\0\0#q aBI8Q0m9-\0\0\0\17o\b\1c]\0\0#q 0Hkz6/HS-\0\0\0\17o\b$]\0\0#q OXw7wPcG-\0\0\0\17o\b,]\0\0#q EkM3MXsy-\0\0\0\17o\b4]\0\0#q tQGxEqIO-\0\0\0\17o\b<]\0\0#q eR5s569+-\0\0\0\17o\bD]\0\0#q 9oW4M1qt-\0\0\0\17o\bL]\0\0#q CS6KKEew-\0\0\0\17o\bT]\0\0#q SrVVQ9Z2-\0\0\0\17o\b\]\0\0#q x1nmgZsV-\0\0\0\17o\bd]\0\0#q 5A2G0sh3-\0\0\0\17o\bl]\0\0#q RXUp64xy-\0\0\0\17o\bt]\0\0#q 5NrrMXvw-\0\0\0\17o\b|]\0\0#q /jH9rrG9-\0\0\0\17o\b\84]\0\0#q Vbajixah-\0\0\0\17o\b\8c]\0\0#q aXPO4PyE-\0\0\0\17o\b\94]\0\0#q x5aentlm-\0\0\0\17o\b\9c]\0\0#q gg3UzPNc-\0\0\0\17o\b¤]\0\0#q yQmn8jm7-\0\0\0\17o\b¬]\0\0#q WpaxrIJe-\0\0\0\17o\b´]\0\0#q GcWmiyb2-\0\0\0\17o\b¼]\0\0#q JVHMgUcg-\0\0\0\17o\bÄ]\0\0#q NYWQZ8qR-\0\0\0\17o\bÌ]\0\0#q l9nHMTRw-\0\0\0\17o\bÔ]\0\0#q 3MikGYWc-\0\0\0\17o\bÜ]\0\0#q a2t3Qhha-\0\0\0\17o\bä]\0\0#q YddzCOLk-\0\0\0\17o\bì]\0\0#q 1SxmG3ve-\0\0\0\17o\bô]\0\0#q c1U7jhza-\0\0\0\17o\bü]\0\0#q LKrbNpl7-\0\0\0\17o\b\ 4^\0\0#q cveuJ4GT-\0\0\0\17o\b\f^\0\0#q VKmHNOGI-\0\0\0\17o\b\14^\0\0#q KDJJCa1h-\0\0\0\17o\b\1c^\0\0#q ZpVTd9dd-\0\0\0\17o\b$^\0\0#q zdqXynyK-\0\0\0\17o\b,^\0\0#q 3LQF/1fv-\0\0\0\17o\b4^\0\0#q HvFwDEEA-\0\0\0\17o\b<^\0\0#q gG7s21nI-\0\0\0\17o\bD^\0\0#q U4+UAFqO-\0\0\0\17o\bL^\0\0#q BOzZXxva-\0\0\0\17o\bT^\0\0#q fGAJlsTL-\0\0\0\17o\b\^\0\0#q a0vUiRYN-\0\0\0\17o\bd^\0\0#q bsqb6jMC-\0\0\0\17o\bl^\0\0#q Vwky24Sy-\0\0\0\17o\bt^\0\0#q lLvbtzhy-\0\0\0\17o\b|^\0\0#q 4U047dzR-\0\0\0\17o\b\84^\0\0#q IGiqxGqI-\0\0\0\17o\b\8c^\0\0#q kIjQID2q-\0\0\0\17o\b\94^\0\0#q NEqudsyo-\0\0\0\17o\b\9c^\0\0#q ALL7Rxcl-\0\0\0\17o\b¤^\0\0#q L04W5tQJ-\0\0\0\17o\b¬^\0\0#q 5QDpK7RH-\0\0\0\17o\b´^\0\0#q XccMSIKz-\0\0\0\17o\b¼^\0\0#q BREj6ROm-\0\0\0\17o\bÄ^\0\0#q SpdaVrt4-\0\0\0\17o\bÌ^\0\0#q adqfw1EQ-\0\0\0\17o\bÔ^\0\0#q X0QzEHsC-\0\0\0\17o\bÜ^\0\0#q a660tktL-\0\0\0\17o\bä^\0\0#q xhOLIkn2-\0\0\0\17o\bì^\0\0#q OyUnq6l1-\0\0\0\17o\bô^\0\0#q ++dxH9/n-\0\0\0\17o\bü^\0\0#q 3L2c8+25-\0\0\0\17o\b\ 4_\0\0#q +V4ffTlL-\0\0\0\17o\b\f_\0\0#q WbIZ6mIo-\0\0\0\17o\b\14_\0\0#q WFkymTGc-\0\0\0\17o\b\1c_\0\0#q Ewjhh9wU-\0\0\0\17o\b$_\0\0#q dmPPecx/-\0\0\0\17o\b,_\0\0#q I04eIAX8-\0\0\0\17o\b4_\0\0#q Pfv3s8Jw-\0\0\0\17o\b<_\0\0#q 7Rz+F57P-\0\0\0\17o\bD_\0\0#q 356BfL1E-\0\0\0\17o\bL_\0\0#q 2R485lDJ-\0\0\0\17o\bT_\0\0#q Bs/Jx45H-\0\0\0\17o\b\_\0\0#q bNb+1znk-\0\0\0\17o\bd_\0\0#q LrlQVg2n-\0\0\0\17o\bl_\0\0#q 3Z3ePSJu-\0\0\0\17o\bt_\0\0#q R7bhMxd8-\0\0\0\17o\b|_\0\0#q mt5Ml7Cn-\0\0\0\17o\b\84_\0\0#q a2v47Av2-\0\0\0\17o\b\8c_\0\0#q ShobDchL-\0\0\0\17o\b\94_\0\0#q us/dr8YR-\0\0\0\17o\b\9c_\0\0#q ijOCfI/a-\0\0\0\17o\b¤_\0\0#q oS1CEk62-\0\0\0\17o\b¬_\0\0#q /SwaX0d+-\0\0\0\17o\b´_\0\0#q zqSS4TLc-\0\0\0\17o\b¼_\0\0#q KBNHf3WD-\0\0\0\17o\bÄ_\0\0#q oO6NgvqD-\0\0\0\17o\bÌ_\0\0#q AcAR82hL-\0\0\0\17o\bÔ_\0\0#q 32rdu4FR-\0\0\0\17o\bÜ_\0\0#q ZaPc4BSz-\0\0\0\17o\bä_\0\0#q InYiK90P-\0\0\0\17o\bì_\0\0#q siBLMdwB-\0\0\0\17o\bô_\0\0#q ZzGeZDD4-\0\0\0\17o\bü_\0\0#q g5u3gUBy-\0\0\0\17o\b\ 4`\0\0#q lQUbarAR-\0\0\0\17o\b\f`\0\0#q BUBIVnQq-\0\0\0\17o\b\14`\0\0#q bgplEWh9-\0\0\0\17o\b\1c`\0\0#q veEZod7p-\0\0\0\17o\b$`\0\0#q 4BlUkk5V-\0\0\0\17o\b,`\0\0#q EijGEoh0-\0\0\0\17o\b4`\0\0#q dAiX2FHN-\0\0\0\17o\b<`\0\0#q FOZcC5Ca-\0\0\0\17o\bD`\0\0#q W4XLEDTI-\0\0\0\17o\bL`\0\0#q SgogmLJA-\0\0\0\17o\bT`\0\0#q KIqAY78+-\0\0\0\17o\b\`\0\0#q xmDgxem8-\0\0\0\17o\bd`\0\0#q eRwYA+e+-\0\0\0\17o\bl`\0\0#q 7Gs7BLa5-\0\0\0\17o\bt`\0\0#q 9uFG8ZoV-\0\0\0\17o\b|`\0\0#q eVgy9USR-\0\0\0\17o\b\84`\0\0#q kUkhykQ2-\0\0\0\17o\b\8c`\0\0#q gdhQBuNL-\0\0\0\17o\b\94`\0\0#q AzEGQWz6-\0\0\0\17o\b\9c`\0\0#q uWiSqgkg-\0\0\0\17o\b¤`\0\0#q PFhL1X2+-\0\0\0\17o\b¬`\0\0#q 0eYLcIcj-\0\0\0\17o\b´`\0\0#q 3iZyxIJ5-\0\0\0\17o\b¼`\0\0#q vmkDHss1-\0\0\0\17o\bÄ`\0\0#q UAY9Kwmu-\0\0\0\17o\bÌ`\0\0#q cUvi7vEK-\0\0\0\17o\bÔ`\0\0#q uyu0GwhC-\0\0\0\17o\bÜ`\0\0#q TA/yoyJy-\0\0\0\17o\bä`\0\0#q KgfHT7x1-\0\0\0\17o\bì`\0\0#q mgrpxkN4-\0\0\0\17o\bô`\0\0#q KkOQXU5C-\0\0\0\17o\bü`\0\0#q 2Mg4GpNJ-\0\0\0\17o\b\ 4a\0\0#q atXYSKiD-\0\0\0\17o\b\fa\0\0#q qMyBxJCb-\0\0\0\17o\b\14a\0\0#q 3pESGxB3-\0\0\0\17o\b\1ca\0\0#q ecBzpYGN-\0\0\0\17o\b$a\0\0#q W/OquelO-\0\0\0\17o\b,a\0\0#q kMMQhLMN-\0\0\0\17o\b4a\0\0#q vp2CszyQ-\0\0\0\17o\b<a\0\0#q XClDLJFN-\0\0\0\17o\bDa\0\0#q asPABkrG-\0\0\0\17o\bLa\0\0#q Mqh3NC4P-\0\0\0\17o\bTa\0\0#q 2iBrGm2B-\0\0\0\17o\b\a\0\0#q OkclnvhV-\0\0\0\17o\bda\0\0#q haRISz3t-\0\0\0\17o\bla\0\0#q cWC4e3px-\0\0\0\17o\bta\0\0#q cma792Aa-\0\0\0\17o\b|a\0\0#q xCl7oESl-\0\0\0\17o\b\84a\0\0#q xfjoIKJ7-\0\0\0\17o\b\8ca\0\0#q a2FiDuAw-\0\0\0\17o\b\94a\0\0#q eHtnbwXS-\0\0\0\17o\b\9ca\0\0#q 5c7GQzEP-\0\0\0\17o\b¤a\0\0#q RFNwEFkC-\0\0\0\17o\b¬a\0\0#q QFcwLhdU-\0\0\0\17o\b´a\0\0#q KEAz2x8R-\0\0\0\17o\b¼a\0\0#q GVU4dMOH-\0\0\0\17o\bÄa\0\0#q fKVIFIhm-\0\0\0\17o\bÌa\0\0#q 2iWtGuVM-\0\0\0\17o\bÔa\0\0#q hENpjLWF-\0\0\0\17o\bÜa\0\0#q ciSZlotH-\0\0\0\17o\bäa\0\0#q Br+3aNL0-\0\0\0\17o\bìa\0\0#q JXa8XgqP-\0\0\0\17o\bôa\0\0#q AEd6EVpK-\0\0\0\17o\büa\0\0#q nkMUG11O-\0\0\0\17o\b\ 4b\0\0#q 6XJWr5Yd-\0\0\0\17o\b\fb\0\0#q e1Z9xlu5-\0\0\0\17o\b\14b\0\0#q eR7mJ0wH-\0\0\0\17o\b\1cb\0\0#q vDupi0w9-\0\0\0\17o\b$b\0\0#q qHg0Qgci-\0\0\0\17o\b,b\0\0#q AVh2IX6I-\0\0\0\17o\b4b\0\0#q XeOlrntO-\0\0\0\17o\b<b\0\0#q QTFZdBaw-\0\0\0\17o\bDb\0\0#q zrREld3j-\0\0\0\17o\bLb\0\0#q PlFqXVGJ-\0\0\0\17o\bTb\0\0#q kUYTNloh-\0\0\0\17o\b\b\0\0#q LiPDOszj-\0\0\0\17o\bdb\0\0#q jML0boQt-\0\0\0\17o\blb\0\0#q WicWm1LQ-\0\0\0\17o\btb\0\0#q fEJgpwVZ-\0\0\0\17o\b|b\0\0#q EwVAf1rp-\0\0\0\17o\b\84b\0\0#q wKDiWeW2-\0\0\0\17o\b\8cb\0\0#q T44FofGx-\0\0\0\17o\b\94b\0\0#q 9X7FflnT-\0\0\0\17o\b\9cb\0\0#q v57B7RWf-\0\0\0\17o\b¤b\0\0#q e+Ko/xh7-\0\0\0\17o\b¬b\0\0#q BrfbW16M-\0\0\0\17o\b´b\0\0#q dhYNV5Pv-\0\0\0\17o\b¼b\0\0#q lOkBqBZn-\0\0\0\17o\bÄb\0\0#q JhkCwWXb-\0\0\0\17o\bÌb\0\0#q ALoENInG-\0\0\0\17o\bÔb\0\0#q VVyEpJHr-\0\0\0\17o\bÜb\0\0#q MH1FM5yh-\0\0\0\17o\bäb\0\0#q FxZi6xvm-\0\0\0\17o\bìb\0\0#q HQaSOdy8-\0\0\0\17o\bôb\0\0#q vvLlDQ0c-\0\0\0\17o\büb\0\0#q ip0Q10A0-\0\0\0\17o\b\ 4c\0\0#q glmjphjg-\0\0\0\17o\b\fc\0\0#q AtXhh5sC-\0\0\0\17o\b\14c\0\0#q 2DuE7wOi-\0\0\0\17o\b\1cc\0\0#q 1ogHvNgo-\0\0\0\17o\b$c\0\0#q aKThOzB1-\0\0\0\17o\b,c\0\0#q lxriiGCe-\0\0\0\17o\b4c\0\0#q shTQvqL8-\0\0\0\17o\b<c\0\0#q 9HPQ+io6-\0\0\0\17o\bDc\0\0#q J1Omxss5-\0\0\0\17o\bLc\0\0#q Zv6kfi67-\0\0\0\17o\bTc\0\0#q wFWe2dNZ-\0\0\0\17o\b\c\0\0#q FCyzJZwr-\0\0\0\17o\bdc\0\0#q esuVNd9s-\0\0\0\17o\blc\0\0#q V2RTnE5N-\0\0\0\17o\btc\0\0#q 7GjnjtGh-\0\0\0\17o\b|c\0\0#q DOLCGejh-\0\0\0\17o\b\84c\0\0#q EM4VqEAY-\0\0\0\17o\b\8cc\0\0#q I4iKBkRF-\0\0\0\17o\b\94c\0\0#q L4BZuzJl-\0\0\0\17o\b\9cc\0\0#q fc28UAYv-\0\0\0\17o\b¤c\0\0#q BA0puE6Z-\0\0\0\17o\b¬c\0\0#q ecsRdO8V-\0\0\0\17o\b´c\0\0#q 2w3M1t4Y-\0\0\0\17o\b¼c\0\0#q GKaBMQ9g-\0\0\0\17o\bÄc\0\0#q zlCEQ22W-\0\0\0\17o\bÌc\0\0#q BSqbwKaR-\0\0\0\17o\bÔc\0\0#q djkQHC4i-\0\0\0\17o\bÜc\0\0#q xmWzxGIa-\0\0\0\17o\bäc\0\0#q JQxyRAxH-\0\0\0\17o\bìc\0\0#q r6FlXRHC-\0\0\0\17o\bôc\0\0#q tOM7Ur2K-\0\0\0\17o\büc\0\0#q SG17m5xI-\0\0\0\17o\b\ 4d\0\0#q KQuaUIjp-\0\0\0\17o\b\fd\0\0#q KPU4oul3-\0\0\0\17o\b\14d\0\0#q DGBPUe9X-\0\0\0\17o\b\1cd\0\0#q NE5SjJ7u-\0\0\0\17o\b$d\0\0#q sYsvJroD-\0\0\0\17o\b,d\0\0#q QcDTaLFr-\0\0\0\17o\b4d\0\0#q KnCLS1aq-\0\0\0\17o\b<d\0\0#q Hqo1vSGE-\0\0\0\17o\bDd\0\0#q ySRhymq1-\0\0\0\17o\bLd\0\0#q 0Ub2JdLj-\0\0\0\17o\bTd\0\0#q ui5Cg0Og-\0\0\0\17o\b\d\0\0#q AyFwRzuT-\0\0\0\17o\bdd\0\0#q trLIETne-\0\0\0\17o\bld\0\0#q k84awMtC-\0\0\0\17o\btd\0\0#q p9ESClI6-\0\0\0\17o\b|d\0\0#q GC70L6Vc-\0\0\0\17o\b\84d\0\0#q HG5I5VRM-\0\0\0\17o\b\8cd\0\0#q DxkDYaht-\0\0\0\17o\b\94d\0\0#q 0wnKaDRT-\0\0\0\17o\b\9cd\0\0#q pUruQQOh-\0\0\0\17o\b¤d\0\0#q rJt5eU9z-\0\0\0\17o\b¬d\0\0#q wnDZsQC8-\0\0\0\17o\b´d\0\0#q XLboLBCT-\0\0\0\17o\b¼d\0\0#q oaxiPIoi-\0\0\0\17o\bÄd\0\0#q xht299g1-\0\0\0\17o\bÌd\0\0#q eAN4RdbB-\0\0\0\17o\bÔd\0\0#q M3PFsKrg-\0\0\0\17o\bÜd\0\0#q 6ERTws9w-\0\0\0\17o\bäd\0\0#q PEE53AHu-\0\0\0\17o\bìd\0\0#q 9HnSjwnU-\0\0\0\17o\bôd\0\0#q OBSNrBA7-\0\0\0\17o\büd\0\0#q 0oCmilLY-\0\0\0\17o\b\ 4e\0\0#q Pe+DGDgh-\0\0\0\17o\b\fe\0\0#q 6AG94FT/-\0\0\0\17o\b\14e\0\0#q EZfpoKj3-\0\0\0\17o\b\1ce\0\0#q EISVg8Qp-\0\0\0\17o\b$e\0\0#q AngqM8vm-\0\0\0\17o\b,e\0\0#q A3SBJCvR-\0\0\0\17o\b4e\0\0#q Sw6yhCJN-\0\0\0\17o\b<e\0\0#q dyVUolCj-\0\0\0\17o\bDe\0\0#q ZPDeXsG9-\0\0\0\17o\bLe\0\0#q 6bxkCEDL-\0\0\0\17o\bTe\0\0#q 4kgQb0NH-\0\0\0\17o\b\e\0\0#q SghSvjbg-\0\0\0\17o\bde\0\0#q TCRImOgQ-\0\0\0\17o\ble\0\0#q X9g5YQnK-\0\0\0\17o\bte\0\0#q 1JnCHQir-\0\0\0\17o\b|e\0\0#q 06levMFK-\0\0\0\17o\b\84e\0\0#q VYkHy0hY-\0\0\0\17o\b\8ce\0\0#q Iko0oj33-\0\0\0\17o\b\94e\0\0#q Fl52C2vK-\0\0\0\17o\b\9ce\0\0#q sBIXYs0A-\0\0\0\17o\b¤e\0\0#q wtC0BAVs-\0\0\0\17o\b¬e\0\0#q qkEI2A51-\0\0\0\17o\b´e\0\0#q DCQ4czmz-\0\0\0\17o\b¼e\0\0#q pfPFmm+b-\0\0\0\17o\bÄe\0\0#q 8ANnSoK6-\0\0\0\17o\bÌe\0\0#q NuBO5JsE-\0\0\0\17o\bÔe\0\0#q 9wB54ZFk-\0\0\0\17o\bÜe\0\0#q Sd6awB68-\0\0\0\17o\bäe\0\0#q gOzx6BZk-\0\0\0\17o\bìe\0\0#q U0W41kPJ-\0\0\0\17o\bôe\0\0#q p0tdlQoN-\0\0\0\17o\büe\0\0#q WMl5ouXn-\0\0\0\17o\b\ 4f\0\0#q VwAAOBQV-\0\0\0\17o\b\ff\0\0#q QtmwACYS-\0\0\0\17o\b\14f\0\0#q MN8JJSXD-\0\0\0\17o\b\1cf\0\0#q EpDDXCxM-\0\0\0\17o\b$f\0\0#q zIoc1vtU-\0\0\0\17o\b,f\0\0#q CyI83wsQ-\0\0\0\17o\b4f\0\0#q owQmOdEQ-\0\0\0\17o\b<f\0\0#q eu+6wUTU-\0\0\0\17o\bDf\0\0#q VTUZ6V0G-\0\0\0\17o\bLf\0\0#q BjiUxQLw-\0\0\0\17o\bTf\0\0#q wVYDEAdo-\0\0\0\17o\b\f\0\0#q XZoZo9PK-\0\0\0\17o\bdf\0\0#q 2kLxhW04-\0\0\0\17o\blf\0\0#q FenMCowg-\0\0\0\17o\btf\0\0#q 8QhwJC6I-\0\0\0\17o\b|f\0\0#q SvJoZdAM-\0\0\0\17o\b\84f\0\0#q I4RxmXl9-\0\0\0\17o\b\8cf\0\0#q WGpq1m5Q-\0\0\0\17o\b\94f\0\0#q DogASIeg-\0\0\0\17o\b\9cf\0\0#q EgDIpUXc-\0\0\0\17o\b¤f\0\0#q DP6wOlBb-\0\0\0\17o\b¬f\0\0#q 2oB2J7FI-\0\0\0\17o\b´f\0\0#q YiZ3rGZX-\0\0\0\17o\b¼f\0\0#q NIJf2atR-\0\0\0\17o\bÄf\0\0#q cQbYVDkx-\0\0\0\17o\bÌf\0\0#q Cz1D0Gsd-\0\0\0\17o\bÔf\0\0#q MvIO8NzF-\0\0\0\17o\bÜf\0\0#q YSwtpbyZ-\0\0\0\17o\bäf\0\0#q 1nGAWoza-\0\0\0\17o\bìf\0\0#q QYNERCAe-\0\0\0\17o\bôf\0\0#q NIRK/KCx-\0\0\0\17o\büf\0\0#q iAvTnMSe-\0\0\0\17o\b\ 4g\0\0#q KBcSoITt-\0\0\0\17o\b\fg\0\0#q OIamG40x-\0\0\0\17o\b\14g\0\0#q IsICd7QG-\0\0\0\17o\b\1cg\0\0#q Yq7g5yMZ-\0\0\0\17o\b$g\0\0#q SfYIBjSC-\0\0\0\17o\b,g\0\0#q 8cIthVOm-\0\0\0\17o\b4g\0\0#q Emzl5cjR-\0\0\0\17o\b<g\0\0#q RQSFEKnI-\0\0\0\17o\bDg\0\0#q qSKUG2y0-\0\0\0\17o\bLg\0\0#q d4pDaUQk-\0\0\0\17o\bTg\0\0#q J5CMiAKr-\0\0\0\17o\b\g\0\0#q dvrMLFEI-\0\0\0\17o\bdg\0\0#q FbQrfWW0-\0\0\0\17o\blg\0\0#q hD7GB2Fr-\0\0\0\17o\btg\0\0#q FcwCpSRO-\0\0\0\17o\b|g\0\0#q wIDjxYYP-\0\0\0\17o\b\84g\0\0#q X3mjKzEA-\0\0\0\17o\b\8cg\0\0#q oiIESUYp-\0\0\0\17o\b\94g\0\0#q R3ygcvab-\0\0\0\17o\b\9cg\0\0#q gvYb5JsU-\0\0\0\17o\b¤g\0\0#q BDar6xA0-\0\0\0\17o\b¬g\0\0#q 8yYdnJ3d-\0\0\0\17o\b´g\0\0#q mc8KkH6u-\0\0\0\17o\b¼g\0\0#q n9F+sESc-\0\0\0\17o\bÄg\0\0#q tLBFkQGm-\0\0\0\17o\bÌg\0\0#q Ta0bPig+-\0\0\0\17o\bÔg\0\0#q sM/K4rcN-\0\0\0\17o\bÜg\0\0#q licUhXGv-\0\0\0\17o\bäg\0\0#q keO2yqSZ-\0\0\0\17o\bìg\0\0#q 5oKmK7mz-\0\0\0\17o\bôg\0\0#q QnIIpTd6-\0\0\0\17o\büg\0\0#q txohrPWx-\0\0\0\17o\b\ 4h\0\0#q C+w7O7Xd-\0\0\0\17o\b\fh\0\0#q 9LQtO6uq-\0\0\0\17o\b\14h\0\0#q ZLhzsHZp-\0\0\0\17o\b\1ch\0\0#q RcxYOi1C-\0\0\0\17o\b$h\0\0#q FignFLhw-\0\0\0\17o\b,h\0\0#q DuxorIb1-\0\0\0\17o\b4h\0\0#q rsUMRBHk-\0\0\0\17o\b<h\0\0#q UkH9+wAq-\0\0\0\17o\bDh\0\0#q L2aiyPoA-\0\0\0\17o\bLh\0\0#q lLwUclJO-\0\0\0\17o\bTh\0\0#q 0yK/pNNL-\0\0\0\17o\b\h\0\0#q RBkAgxgR-\0\0\0\17o\bdh\0\0#q JDowL+MD-\0\0\0\17o\blh\0\0#q bn7aFmDs-\0\0\0\17o\bth\0\0#q 3Zum7TMm-\0\0\0\17o\b|h\0\0#q pl6eNnnK-\0\0\0\17o\b\84h\0\0#q XjW+cIZL-\0\0\0\17o\b\8ch\0\0#q KTUDBhEK-\0\0\0\17o\b\94h\0\0#q 8ciqkQeV-\0\0\0\17o\b\9ch\0\0#q 7o9nO+Rd-\0\0\0\17o\b¤h\0\0#q jYhyConj-\0\0\0\17o\b¬h\0\0#q MQRTBWme-\0\0\0\17o\b´h\0\0#q Lu3GkKYb-\0\0\0\17o\b¼h\0\0#q SDZ+NFyt-\0\0\0\17o\bÄh\0\0#q hpRclB0u-\0\0\0\17o\bÌh\0\0#q +MM9hIPy-\0\0\0\17o\bÔh\0\0#q 379/P5Jv-\0\0\0\17o\bÜh\0\0#q Rp9K7Hh8-\0\0\0\17o\bäh\0\0#q rACxIThk-\0\0\0\17o\bìh\0\0#q R9bC/mjT-\0\0\0\17o\bôh\0\0#q 79r7kMrZ-\0\0\0\17o\büh\0\0#q fL3DsQq9-\0\0\0\17o\b\ 4i\0\0#q dPzd80jy-\0\0\0\17o\b\fi\0\0#q omUQ0MGQ-\0\0\0\17o\b\14i\0\0#q ccce3Fj7-\0\0\0\17o\b\1ci\0\0#q MWzP6VNx-\0\0\0\17o\b$i\0\0#q LUm/pBux-\0\0\0\17o\b,i\0\0#q mmyioIE4-\0\0\0\17o\b4i\0\0#q 5y9suzCq-\0\0\0\17o\b<i\0\0#q g25nIpkv-\0\0\0\17o\bDi\0\0#q Y49evNI1-\0\0\0\17o\bLi\0\0#q vdkD9EHH-\0\0\0\17o\bTi\0\0#q Y32D6/Wt-\0\0\0\17o\b\i\0\0#q 95wXiY14-\0\0\0\17o\bdi\0\0#q QGHv6Tup-\0\0\0\17o\bli\0\0#q r4QlovqZ-\0\0\0\17o\bti\0\0#q sUxN/gpp-\0\0\0\17o\b|i\0\0#q AOiLCJKK-\0\0\0\17o\b\84i\0\0#q RQoB3Tq7-\0\0\0\17o\b\8ci\0\0#q wOD2KVRz-\0\0\0\17o\b\94i\0\0#q t/RlCRyI-\0\0\0\17o\b\9ci\0\0#q OQHSOSr3-\0\0\0\17o\b¤i\0\0#q uh4krxkm-\0\0\0\17o\b¬i\0\0#q wT/BsrQ7-\0\0\0\17o\b´i\0\0#q 9YvUxmCB-\0\0\0\17o\b¼i\0\0#q saLPe3BE-\0\0\0\17o\bÄi\0\0#q 9rd44cRs-\0\0\0\17o\bÌi\0\0#q EtHttA6U-\0\0\0\17o\bÔi\0\0#q iBxgHNHM-\0\0\0\17o\bÜi\0\0#q Bs2t3Woq-\0\0\0\17o\bäi\0\0#q icOUCJ/p-\0\0\0\17o\bìi\0\0#q dOhWwXx0-\0\0\0\17o\bôi\0\0#q xzvjx3O0-\0\0\0\17o\büi\0\0#q KVN84or1-\0\0\0\17o\b\ 4j\0\0#q DOx3VbmY-\0\0\0\17o\b\fj\0\0#q XBKjiLHH-\0\0\0\17o\b\14j\0\0#q Q6cosigw-\0\0\0\17o\b\1cj\0\0#q db8KKicN-\0\0\0\17o\b$j\0\0#q L3O90EPY-\0\0\0\17o\b,j\0\0#q 3XkwoBs5-\0\0\0\17o\b4j\0\0#q FPf48Tw4-\0\0\0\17o\b<j\0\0#q m8Z4osEy-\0\0\0\17o\bDj\0\0#q HXmsb2fA-\0\0\0\17o\bLj\0\0#q Ok4HFRdQ-\0\0\0\17o\bTj\0\0#q RcU7OGXa-\0\0\0\17o\b\j\0\0#q HlQhmiCf-\0\0\0\17o\bdj\0\0#q cEzj2hQN-\0\0\0\17o\blj\0\0#q DNA6MRu4-\0\0\0\17o\btj\0\0#q t68O2Z1C-\0\0\0\17o\b|j\0\0#q jKZpojvI-\0\0\0\17o\b\84j\0\0#q Z6gSyZPH-\0\0\0\17o\b\8cj\0\0#q rL9rdnsg-\0\0\0\17o\b\94j\0\0#q o9LEDXNX-\0\0\0\17o\b\9cj\0\0#q d1Xbuepm-\0\0\0\17o\b¤j\0\0#q StaOYiD4-\0\0\0\17o\b¬j\0\0#q /r5zmElX-\0\0\0\17o\b´j\0\0#q 0N6F0Tz3-\0\0\0\17o\b¼j\0\0#q VCoRv4sI-\0\0\0\17o\bÄj\0\0#q sFhYUIgI-\0\0\0\17o\bÌj\0\0#q numbH4pN-\0\0\0\17o\bÔj\0\0#q 2G+IcL7A-\0\0\0\17o\bÜj\0\0#q BCaNu1mN-\0\0\0\17o\bäj\0\0#q j6QkUIMA-\0\0\0\17o\bìj\0\0#q htoR0MMP-\0\0\0\17o\bôj\0\0#q iEUwHvdw-\0\0\0\17o\büj\0\0#q MF50hG8Q-\0\0\0\17o\b\ 4k\0\0#q YCTnhfkt-\0\0\0\17o\b\fk\0\0#q UMX5FQVz-\0\0\0\17o\b\14k\0\0#q DOdATVLQ-\0\0\0\17o\b\1ck\0\0#q bTBOoetS-\0\0\0\17o\b$k\0\0#q GcCjNrjg-\0\0\0\17o\b,k\0\0#q N51GgITF-\0\0\0\17o\b4k\0\0#q doNWnL64-\0\0\0\17o\b<k\0\0#q lJHbNkln-\0\0\0\17o\bDk\0\0#q JKcjAsED-\0\0\0\17o\bLk\0\0#q 6LlEuu3z-\0\0\0\17o\bTk\0\0#q lPY6SEci-\0\0\0\17o\b\k\0\0#q bIy1pLUA-\0\0\0\17o\bdk\0\0#q d0IHMRZu-\0\0\0\17o\blk\0\0#q IwhRlzAX-\0\0\0\17o\btk\0\0#q sU1wRK4F-\0\0\0\17o\b|k\0\0#q 5NYIkTsb-\0\0\0\17o\b\84k\0\0#q gaGKAOrk-\0\0\0\17o\b\8ck\0\0#q 3mDdrs9o-\0\0\0\17o\b\94k\0\0#q HE5vbz3e-\0\0\0\17o\b\9ck\0\0#q O7IwqJxc-\0\0\0\17o\b¤k\0\0#q JxDru7DP-\0\0\0\17o\b¬k\0\0#q r5kZnfTp-\0\0\0\17o\b´k\0\0#q XLnLVEx7-\0\0\0\17o\b¼k\0\0#q eQEex5Vc-\0\0\0\17o\bÄk\0\0#q 10EW/bNS-\0\0\0\17o\bÌk\0\0#q /UN3fOWk-\0\0\0\17o\bÔk\0\0#q QhgOwHG8-\0\0\0\17o\bÜk\0\0#q e4Yi8HiG-\0\0\0\17o\bäk\0\0#q e47HhLNW-\0\0\0\17o\bìk\0\0#q wnMlMsrB-\0\0\0\17o\bôk\0\0#q Hoa5VyAy-\0\0\0\17o\bük\0\0#q XB8ny2xO-\0\0\0\17o\b\ 4l\0\0#q vMcOHDgH-\0\0\0\17o\b\fl\0\0#q b3EqkrzS-\0\0\0\17o\b\14l\0\0#q ChHUyZmL-\0\0\0\17o\b\1cl\0\0#q I+6hu7wI-\0\0\0\17o\b$l\0\0#q SKUqFFKT-\0\0\0\17o\b,l\0\0#q FWDllLro-\0\0\0\17o\b4l\0\0#q mzIiucDw-\0\0\0\17o\b<l\0\0#q BOQQ1kp6-\0\0\0\17o\bDl\0\0#q KGChwrGN-\0\0\0\17o\bLl\0\0#q IdiidKkg-\0\0\0\17o\bTl\0\0#q 6IolNojc-\0\0\0\17o\b\l\0\0#q rO0BeJ7r-\0\0\0\17o\bdl\0\0#q 7kxA8TUb-\0\0\0\17o\bll\0\0#q 1OsJ0DwX-\0\0\0\17o\btl\0\0#q lDQCiVkW-\0\0\0\17o\b|l\0\0#q TKjwgEQo-\0\0\0\17o\b\84l\0\0#q LqhDMXRo-\0\0\0\17o\b\8cl\0\0#q Qo9pGorE-\0\0\0\17o\b\94l\0\0#q 3XPYHlVc-\0\0\0\17o\b\9cl\0\0#q m/Fl0ZUN-\0\0\0\17o\b¤l\0\0#q WuXAbPgx-\0\0\0\17o\b¬l\0\0#q VowsObJt-\0\0\0\17o\b´l\0\0#q ykwDZmd3-\0\0\0\17o\b¼l\0\0#q Rs9kF7ov-\0\0\0\17o\bÄl\0\0#q tgP9gQ+4-\0\0\0\17o\bÌl\0\0#q ImoCUYDV-\0\0\0\17o\bÔl\0\0#q bTqWeNIf-\0\0\0\17o\bÜl\0\0#q HhQ3fcGS-\0\0\0\17o\bäl\0\0#q ykKPKGvz-\0\0\0\17o\bìl\0\0#q G0gw0ZET-\0\0\0\17o\bôl\0\0#q g97odgi+-\0\0\0\17o\bül\0\0#q CtWJvpYu-\0\0\0\17o\b\ 4m\0\0#q 2qwoTAIs-\0\0\0\17o\b\fm\0\0#q E9R6CGlA-\0\0\0\17o\b\14m\0\0#q cEl9tTTw-\0\0\0\17o\b\1cm\0\0#q ETIhk6KN-\0\0\0\17o\b$m\0\0#q V2KAPhQL-\0\0\0\17o\b,m\0\0#q imtCFryG-\0\0\0\17o\b4m\0\0#q /Hiw3nYg-\0\0\0\17o\b<m\0\0#q O3u3TfEJ-\0\0\0\17o\bDm\0\0#q HQuFVBHi-\0\0\0\17o\bLm\0\0#q QGsiLqgz-\0\0\0\17o\bTm\0\0#q s4bdm1MO-\0\0\0\17o\b\m\0\0#q 8CUwBqvD-\0\0\0\17o\bdm\0\0#q Vp0jQlTr-\0\0\0\17o\blm\0\0#q bg64FHW9-\0\0\0\17o\btm\0\0#q 7NcVIgio-\0\0\0\17o\b|m\0\0#q HQCAjzim-\0\0\0\17o\b\84m\0\0#q 4h2byc6c-\0\0\0\17o\b\8cm\0\0#q ANEWA7Wm-\0\0\0\17o\b\94m\0\0#q 3xWoYIRb-\0\0\0\17o\b\9cm\0\0#q EHeZqnzz-\0\0\0\17o\b¤m\0\0#q DMAxmjmt-\0\0\0\17o\b¬m\0\0#q CjoyJRko-\0\0\0\17o\b´m\0\0#q 4E6qJSoa-\0\0\0\17o\b¼m\0\0#q bUiR5UHY-\0\0\0\17o\bÄm\0\0#q 4rwkhjGi-\0\0\0\17o\bÌm\0\0#q 57nGCJQG-\0\0\0\17o\bÔm\0\0#q yYa6EIE1-\0\0\0\17o\bÜm\0\0#q ZkbQuFKK-\0\0\0\17o\bäm\0\0#q xvM0KGlA-\0\0\0\17o\bìm\0\0#q UTD2PCxz-\0\0\0\17o\bôm\0\0#q TTr3sa2o-\0\0\0\17o\büm\0\0#q AwP2Ie5M-\0\0\0\17o\b\ 4n\0\0#q 1JRb4eh8-\0\0\0\17o\b\fn\0\0#q NazCTDn7-\0\0\0\17o\b\14n\0\0#q w1nJjXI8-\0\0\0\17o\b\1cn\0\0#q EDCKsUAD-\0\0\0\17o\b$n\0\0#q gQVYSIv0-\0\0\0\17o\b,n\0\0#q oS9b+UA6-\0\0\0\17o\b4n\0\0#q gPIs1SOi-\0\0\0\17o\b<n\0\0#q IhCIbAer-\0\0\0\17o\bDn\0\0#q i0sZgp2q-\0\0\0\17o\bLn\0\0#q Cjt1qVoB-\0\0\0\17o\bTn\0\0#q inB93WUF-\0\0\0\17o\b\n\0\0#q d3i+GNTr-\0\0\0\17o\bdn\0\0#q 0BMoqCtD-\0\0\0\17o\bln\0\0#q Io66aNKI-\0\0\0\17o\btn\0\0#q kZtiCtBF-\0\0\0\17o\b|n\0\0#q YTxRAkbR-\0\0\0\17o\b\84n\0\0#q GHW4E2Qa-\0\0\0\17o\b\8cn\0\0#q wGELRMBS-\0\0\0\17o\b\94n\0\0#q lDORfaNH-\0\0\0\17o\b\9cn\0\0#q jJo8HetT-\0\0\0\17o\b¤n\0\0#q IRdgB0R/-\0\0\0\17o\b¬n\0\0#q fXAbO2dW-\0\0\0\17o\b´n\0\0#q Jb6DfUEs-\0\0\0\17o\b¼n\0\0#q ipYiw5A0-\0\0\0\17o\bÄn\0\0#q GnF8Ezhv-\0\0\0\17o\bÌn\0\0#q GlTxeCaE-\0\0\0\17o\bÔn\0\0#q A4SjJdyi-\0\0\0\17o\bÜn\0\0#q fLMm9GUI-\0\0\0\17o\bän\0\0#q qQiABhBN-\0\0\0\17o\bìn\0\0#q rSrnBJZw-\0\0\0\17o\bôn\0\0#q cLnsUPG8-\0\0\0\17o\bün\0\0#q AVmRARIa-\0\0\0\17o\b\ 4o\0\0#q JRIAl2Aq-\0\0\0\17o\b\fo\0\0#q vN8GsE1z-\0\0\0\17o\b\14o\0\0#q gnAAG4OQ-\0\0\0\17o\b\1co\0\0#q m/dxkQHK-\0\0\0\17o\b$o\0\0#q oewTW3Rs-\0\0\0\17o\b,o\0\0#q FeU7RIFD-\0\0\0\17o\b4o\0\0#q vSeKq6tm-\0\0\0\17o\b<o\0\0#q LIwK8gvY-\0\0\0\17o\bDo\0\0#q W2oipkRT-\0\0\0\17o\bLo\0\0#q wRjRc2uN-\0\0\0\17o\bTo\0\0#q OhMZYE5y-\0\0\0\17o\b\o\0\0#q w8o4PRld-\0\0\0\17o\bdo\0\0#q ld0CRW1D-\0\0\0\17o\blo\0\0#q o6zyeWGL-\0\0\0\17o\bto\0\0#q AfbpCqPT-\0\0\0\17o\b|o\0\0#q GDSqcoJX-\0\0\0\17o\b\84o\0\0#q E1eKBT20-\0\0\0\17o\b\8co\0\0#q VES/Gir1-\0\0\0\17o\b\94o\0\0#q g0EQCpg7-\0\0\0\17o\b\9co\0\0#q m5ZtoK5G-\0\0\0\17o\b¤o\0\0#q ATGOZsXK-\0\0\0\17o\b¬o\0\0#q cwCUdiYw-\0\0\0\17o\b´o\0\0#q 78huOate-\0\0\0\17o\b¼o\0\0#q 6CDObwFx-\0\0\0\17o\bÄo\0\0#q CKBgXHBB-\0\0\0\17o\bÌo\0\0#q V6vNFaO1-\0\0\0\17o\bÔo\0\0#q koc5AG7n-\0\0\0\17o\bÜo\0\0#q TRtcl9Sa-\0\0\0\17o\bäo\0\0#q tzUT+2es-\0\0\0\17o\bìo\0\0#q G3qOOQch-\0\0\0\17o\bôo\0\0#q oqjI0MZi-\0\0\0\17o\büo\0\0#q YEGiTyVZ-\0\0\0\17o\b\ 4p\0\0#q p67hPaez-\0\0\0\17o\b\fp\0\0#q 0Y0m6xKB-\0\0\0\17o\b\14p\0\0#q zy6R5ZAO-\0\0\0\17o\b\1cp\0\0#q 9vJiMqsh-\0\0\0\17o\b$p\0\0#q jhrIky5H-\0\0\0\17o\b,p\0\0#q VSaeZ5qE-\0\0\0\17o\b4p\0\0#q yNVLWOJt-\0\0\0\17o\b<p\0\0#q WG+4jGMG-\0\0\0\17o\bDp\0\0#q DZuXubu+-\0\0\0\17o\bLp\0\0#q 1BVxAySG-\0\0\0\17o\bTp\0\0#q WyePnaGc-\0\0\0\17o\b\p\0\0#q 7uXgXUFU-\0\0\0\17o\bdp\0\0#q o7J3BHWd-\0\0\0\17o\blp\0\0#q zfN0ndx9-\0\0\0\17o\btp\0\0#q 7DRHhMuD-\0\0\0\17o\b|p\0\0#q 3FIbtcmD-\0\0\0\17o\b\84p\0\0#q u9FIUiHM-\0\0\0\17o\b\8cp\0\0#q wvJzV1rl-\0\0\0\17o\b\94p\0\0#q 7V3DAElv-\0\0\0\17o\b\9cp\0\0#q IjuzuAN5-\0\0\0\17o\b¤p\0\0#q aVFegjAg-\0\0\0\17o\b¬p\0\0#q 8oRCh3gt-\0\0\0\17o\b´p\0\0#q Og4EUlSN-\0\0\0\17o\b¼p\0\0#q Q+g+YCsN-\0\0\0\17o\bÄp\0\0#q L0DFoWiB-\0\0\0\17o\bÌp\0\0#q 8GhSYOOE-\0\0\0\17o\bÔp\0\0#q 2b5zZHnF-\0\0\0\17o\bÜp\0\0#q EUAwcmIW-\0\0\0\17o\bäp\0\0#q CMHBxMSo-\0\0\0\17o\bìp\0\0#q JhWMWrtE-\0\0\0\17o\bôp\0\0#q 4EJmAmGL-\0\0\0\17o\büp\0\0#q hxoTvSHC-\0\0\0\17o\b\ 4q\0\0#q ijrgpjFw-\0\0\0\17o\b\fq\0\0#q YaJ00WnS-\0\0\0\17o\b\14q\0\0#q Jr+RmC5j-\0\0\0\17o\b\1cq\0\0#q FqtEbUiI-\0\0\0\17o\b$q\0\0#q 3kQFaXgg-\0\0\0\17o\b,q\0\0#q 7vKLYF/f-\0\0\0\17o\b4q\0\0#q BgwaV+En-\0\0\0\17o\b<q\0\0#q Rk9XQKQP-\0\0\0\17o\bDq\0\0#q OgkBdnA8-\0\0\0\17o\bLq\0\0#q kKDUtNQ2-\0\0\0\17o\bTq\0\0#q 8kWcA2LC-\0\0\0\17o\b\q\0\0#q iCujWK5n-\0\0\0\17o\bdq\0\0#q Ssg+u2au-\0\0\0\17o\blq\0\0#q 4siUCIIu-\0\0\0\17o\btq\0\0#q FgTFpAqi-\0\0\0\17o\b|q\0\0#q DAnZW7L6-\0\0\0\17o\b\84q\0\0#q 3Tx5sg/t-\0\0\0\17o\b\8cq\0\0#q IR5eMo5H-\0\0\0\17o\b\94q\0\0#q INaaOXDM-\0\0\0\17o\b\9cq\0\0#q rHyG8ytg-\0\0\0\17o\b¤q\0\0#q +NvLtlHB-\0\0\0\17o\b¬q\0\0#q kBo9kRnr-\0\0\0\17o\b´q\0\0#q KYt8/qyV-\0\0\0\17o\b¼q\0\0#q qWjj5VEq-\0\0\0\17o\bÄq\0\0#q Vy3GpUqV-\0\0\0\17o\bÌq\0\0#q hixKBqJG-\0\0\0\17o\bÔq\0\0#q zkfhHgoF-\0\0\0\17o\bÜq\0\0#q l/X1yrlE-\0\0\0\17o\bäq\0\0#q scB5vLEA-\0\0\0\17o\bìq\0\0#q KPAYyGQR-\0\0\0\17o\bôq\0\0#q irBKEZm6-\0\0\0\17o\büq\0\0#q RZfA9cJG-\0\0\0\17o\b\ 4r\0\0#q IMRHO5ca-\0\0\0\17o\b\fr\0\0#q CEW/DnIy-\0\0\0\17o\b\14r\0\0#q naC2XohJ-\0\0\0\17o\b\1cr\0\0#q QkB3yhFr-\0\0\0\17o\b$r\0\0#q MFq3qxHJ-\0\0\0\17o\b,r\0\0#q 4+QOtEUb-\0\0\0\17o\b4r\0\0#q 2wG1dJBD-\0\0\0\17o\b<r\0\0#q DTr2sZrv-\0\0\0\17o\bDr\0\0#q J4RcRMbT-\0\0\0\17o\bLr\0\0#q qH2Jdooa-\0\0\0\17o\bTr\0\0#q xt0NjDiS-\0\0\0\17o\b\r\0\0#q cucKju2Y-\0\0\0\17o\bdr\0\0#q zYaBBzvU-\0\0\0\17o\blr\0\0#q kkz7Rs5Q-\0\0\0\17o\btr\0\0#q xX2gwjkd-\0\0\0\17o\b|r\0\0#q YD4UtQub-\0\0\0\17o\b\84r\0\0#q OAigAFmX-\0\0\0\17o\b\8cr\0\0#q wNXZ4di5-\0\0\0\17o\b\94r\0\0#q 9KNNkgta-\0\0\0\17o\b\9cr\0\0#q pzDO5Ze1-\0\0\0\17o\b¤r\0\0#q RNDg3lGl-\0\0\0\17o\b¬r\0\0#q zmLiBgSs-\0\0\0\17o\b´r\0\0#q l48e7xxr-\0\0\0\17o\b¼r\0\0#q PEEVA8Di-\0\0\0\17o\bÄr\0\0#q gDOnCoWC-\0\0\0\17o\bÌr\0\0#q NyRTfSav-\0\0\0\17o\bÔr\0\0#q pnxLQ91R-\0\0\0\17o\bÜr\0\0#q qpqq7DJK-\0\0\0\17o\bär\0\0#q oyD2FuCL-\0\0\0\17o\bìr\0\0#q kgrmASAS-\0\0\0\17o\bôr\0\0#q JuqhEdiv-\0\0\0\17o\bür\0\0#q R0jzeV9C-\0\0\0\17o\b\ 4s\0\0#q ZNSuy7ox-\0\0\0\17o\b\fs\0\0#q U34bo3ZB-\0\0\0\17o\b\14s\0\0#q M43NBAmh-\0\0\0\17o\b\1cs\0\0#q DigDK71F-\0\0\0\17o\b$s\0\0#q QEKZjWNa-\0\0\0\17o\b,s\0\0#q enQQjAhU-\0\0\0\17o\b4s\0\0#q wtFmR3di-\0\0\0\17o\b<s\0\0#q UG9KvqSE-\0\0\0\17o\bDs\0\0#q ILrtcrnK-\0\0\0\17o\bLs\0\0#q JYMYsRyZ-\0\0\0\17o\bTs\0\0#q AMUMhxGC-\0\0\0\17o\b\s\0\0#q 3SmHeUdd-\0\0\0\17o\bds\0\0#q C8aQDaaj-\0\0\0\17o\bls\0\0#q NAGHbXfM-\0\0\0\17o\bts\0\0#q JnKQ3Io5-\0\0\0\17o\b|s\0\0#q u809jIeO-\0\0\0\17o\b\84s\0\0#q AiCmGwEc-\0\0\0\17o\b\8cs\0\0#q SGxFf2Mh-\0\0\0\17o\b\94s\0\0#q 3Ck7Q8Nm-\0\0\0\17o\b\9cs\0\0#q AQs8MQPG-\0\0\0\17o\b¤s\0\0#q wLfoDFgf-\0\0\0\17o\b¬s\0\0#q OCTl3U4o-\0\0\0\17o\b´s\0\0#q 3sLxM3kk-\0\0\0\17o\b¼s\0\0#q QktElpUO-\0\0\0\17o\bÄs\0\0#q IQi8KGes-\0\0\0\17o\bÌs\0\0#q JJoQV1lF-\0\0\0\17o\bÔs\0\0#q dBdVKBU8-\0\0\0\17o\bÜs\0\0#q i65cXjg3-\0\0\0\17o\bäs\0\0#q ziOG1RVy-\0\0\0\17o\bìs\0\0#q GUA5EA1B-\0\0\0\17o\bôs\0\0#q z2PdlZvX-\0\0\0\17o\büs\0\0#q iVd3sCFz-\0\0\0\17o\b\ 4t\0\0#q pi7ZkuuA-\0\0\0\17o\b\ft\0\0#q okzCH5e6-\0\0\0\17o\b\14t\0\0#q 0sadzfeQ-\0\0\0\17o\b\1ct\0\0#q CtFe9t3j-\0\0\0\17o\b$t\0\0#q HrFGwPRH-\0\0\0\17o\b,t\0\0#q JzHlWiIz-\0\0\0\17o\b4t\0\0#q EmgstR6I-\0\0\0\17o\b<t\0\0#q Y+MDjh98-\0\0\0\17o\bDt\0\0#q XwynDQJ9-\0\0\0\17o\bLt\0\0#q BcV2odee-\0\0\0\17o\bTt\0\0#q cqlvFnFC-\0\0\0\17o\b\t\0\0#q /t9u3NHj-\0\0\0\17o\bdt\0\0#q nIqGa7bY-\0\0\0\17o\blt\0\0#q ikVnM+yf-\0\0\0\17o\btt\0\0#q 5vO/or7f-\0\0\0\17o\b|t\0\0#q vUJSIr37-\0\0\0\17o\b\84t\0\0#q 9aG/2n64-\0\0\0\17o\b\8ct\0\0#q /p2BO0/o-\0\0\0\17o\b\94t\0\0#q 9sxrOt3v-\0\0\0\17o\b\9ct\0\0#q Ipd9x5yv-\0\0\0\17o\b¤t\0\0#q c+etFPve-\0\0\0\17o\b¬t\0\0#q VHuePsUB-\0\0\0\17o\b´t\0\0#q 3DIaidl4-\0\0\0\17o\b¼t\0\0#q CxRx010k-\0\0\0\17o\bÄt\0\0#q 46whEN0I-\0\0\0\17o\bÌt\0\0#q g9O0ug50-\0\0\0\17o\bÔt\0\0#q 6JYDlFzQ-\0\0\0\17o\bÜt\0\0#q buZEuMBA-\0\0\0\17o\bät\0\0#q WvO6IBV8-\0\0\0\17o\bìt\0\0#q LQl756E4-\0\0\0\17o\bôt\0\0#q B76UHCsG-\0\0\0\17o\büt\0\0#q LzEOHBSd-\0\0\0\17o\b\ 4u\0\0#q +XvXk9WI-\0\0\0\17o\b\fu\0\0#q YMbfg56n-\0\0\0\17o\b\14u\0\0#q dwHELY0v-\0\0\0\17o\b\1cu\0\0#q RDPXRQ99-\0\0\0\17o\b$u\0\0#q d6bL5OdJ-\0\0\0\17o\b,u\0\0#q IUUzbJDq-\0\0\0\17o\b4u\0\0#q WMfi11tQ-\0\0\0\17o\b<u\0\0#q ANmXKblI-\0\0\0\17o\bDu\0\0#q sgFamLRx-\0\0\0\17o\bLu\0\0#q GwxzOeJQ-\0\0\0\17o\bTu\0\0#q dSQi75cW-\0\0\0\17o\b\u\0\0#q KugYgDTZ-\0\0\0\17o\bdu\0\0#q 3sYwfDRy-\0\0\0\17o\blu\0\0#q oBTFJzhN-\0\0\0\17o\btu\0\0#q ZdKia3kO-\0\0\0\17o\b|u\0\0#q BcotQFEQ-\0\0\0\17o\b\84u\0\0#q CbS2nCSC-\0\0\0\17o\b\8cu\0\0#q TtEiEunc-\0\0\0\17o\b\94u\0\0#q q5ywL4jC-\0\0\0\17o\b\9cu\0\0#q uAjum3CY-\0\0\0\17o\b¤u\0\0#q QzZnvAEl-\0\0\0\17o\b¬u\0\0#q Vp2RRCOS-\0\0\0\17o\b´u\0\0#q GjCgOCgk-\0\0\0\17o\b¼u\0\0#q 5JdEY3Yq-\0\0\0\17o\bÄu\0\0#q tbGzSJKS-\0\0\0\17o\bÌu\0\0#q UdKYzo16-\0\0\0\17o\bÔu\0\0#q eoPENGLo-\0\0\0\17o\bÜu\0\0#q 0phETPJZ-\0\0\0\17o\bäu\0\0#q 6OIkAK9m-\0\0\0\17o\bìu\0\0#q +kPCOQTX-\0\0\0\17o\bôu\0\0#q KwGmFeO3-\0\0\0\17o\büu\0\0#q Qo9mYJjm-\0\0\0\17o\b\ 4v\0\0#q t47wpZ4n-\0\0\0\17o\b\fv\0\0#q OUCpkBXx-\0\0\0\17o\b\14v\0\0#q s5+EADfP-\0\0\0\17o\b\1cv\0\0#q u0KwMIEg-\0\0\0\17o\b$v\0\0#q yIE6Rn15-\0\0\0\17o\b,v\0\0#q vJ9n2j32-\0\0\0\17o\b4v\0\0#q MTvEFNRG-\0\0\0\17o\b<v\0\0#q +O5FKG2l-\0\0\0\17o\bDv\0\0#q rAqyh+Tf-\0\0\0\17o\bLv\0\0#q Rzh4eWFJ-\0\0\0\17o\bTv\0\0#q aDwsQTEa-\0\0\0\17o\b\v\0\0#q SEdaoYgZ-\0\0\0\17o\bdv\0\0#q 1LlWfjUA-\0\0\0\17o\blv\0\0#q eC8q2dWn-\0\0\0\17o\btv\0\0#q J0LQ8IrF-\0\0\0\17o\b|v\0\0#q g6vYcrdp-\0\0\0\17o\b\84v\0\0#q rGOfYLx4-\0\0\0\17o\b\8cv\0\0#q 1uAB00NB-\0\0\0\17o\b\94v\0\0#q rexzAOhx-\0\0\0\17o\b\9cv\0\0#q EV0hJgfd-\0\0\0\17o\b¤v\0\0#q nNpAR2ye-\0\0\0\17o\b¬v\0\0#q tGXXTyUK-\0\0\0\17o\b´v\0\0#q 7POeMFSw-\0\0\0\17o\b¼v\0\0#q UcyK0k54-\0\0\0\17o\bÄv\0\0#q TYZ3BFZc-\0\0\0\17o\bÌv\0\0#q 82vsHiaF-\0\0\0\17o\bÔv\0\0#q 0rspFEpT-\0\0\0\17o\bÜv\0\0#q TqjrGMoh-\0\0\0\17o\bäv\0\0#q OJwo131k-\0\0\0\17o\bìv\0\0#q TcrGNoxl-\0\0\0\17o\bôv\0\0#q 7VJWqRTY-\0\0\0\17o\büv\0\0#q NtAAJC7V-\0\0\0\17o\b\ 4w\0\0#q +xyyGxzg-\0\0\0\17o\b\fw\0\0#q D6IYN9Wt-\0\0\0\17o\b\14w\0\0#q IiQNBELy-\0\0\0\17o\b\1cw\0\0#q UK0RY7CB-\0\0\0\17o\b$w\0\0#q DsyDhV4e-\0\0\0\17o\b,w\0\0#q NdSOX7wM-\0\0\0\17o\b4w\0\0#q OkXgGQkR-\0\0\0\17o\b<w\0\0#q ysCNmAEP-\0\0\0\17o\bDw\0\0#q pdYUaOma-\0\0\0\17o\bLw\0\0#q XGtvRVaK-\0\0\0\17o\bTw\0\0#q BTpnHMGX-\0\0\0\17o\b\w\0\0#q sHRzNvcH-\0\0\0\17o\bdw\0\0#q trkV4qMS-\0\0\0\17o\blw\0\0#q 3LQYC7AF-\0\0\0\17o\btw\0\0#q DRgeIQXw-\0\0\0\17o\b|w\0\0#q 4+CQaigK-\0\0\0\17o\b\84w\0\0#q JZLolFEe-\0\0\0\17o\b\8cw\0\0#q ynETG9Vk-\0\0\0\17o\b\94w\0\0#q DEWb3PCL-\0\0\0\17o\b\9cw\0\0#q QWZvtb1u-\0\0\0\17o\b¤w\0\0#q yQ9OCb2l-\0\0\0\17o\b¬w\0\0#q jqdYeYVQ-\0\0\0\17o\b´w\0\0#q UVrlhSmZ-\0\0\0\17o\b¼w\0\0#q CCLoCzeq-\0\0\0\17o\bÄw\0\0#q 3qihdKlC-\0\0\0\17o\bÌw\0\0#q FCVu9Gdt-\0\0\0\17o\bÔw\0\0#q anaDaeoe-\0\0\0\17o\bÜw\0\0#q e8Gh0XfV-\0\0\0\17o\bäw\0\0#q 746AG0mF-\0\0\0\17o\bìw\0\0#q R3grOkNa-\0\0\0\17o\bôw\0\0#q EV4oAxcw-\0\0\0\17o\büw\0\0#q ugi+5mLa-\0\0\0\17o\b\ 4x\0\0#q vDgNyeab-\0\0\0\17o\b\fx\0\0#q aPNUAdaR-\0\0\0\17o\b\14x\0\0#q x6GueEE8-\0\0\0\17o\b\1cx\0\0#q UgBraaEP-\0\0\0\17o\b$x\0\0#q EBA90Hd0-\0\0\0\17o\b,x\0\0#q IoiYKzzL-\0\0\0\17o\b4x\0\0#q eyC+QP86-\0\0\0\17o\b<x\0\0#q S24oNGgP-\0\0\0\17o\bDx\0\0#q N7VEZLkc-\0\0\0\17o\bLx\0\0#q 3KKB9yaO-\0\0\0\17o\bTx\0\0#q 3suM7dsq-\0\0\0\17o\b\x\0\0#q IyXBAyaP-\0\0\0\17o\bdx\0\0#q JIVawzuy-\0\0\0\17o\blx\0\0#q Ny8Uis1T-\0\0\0\17o\btx\0\0#q N6MwDW+S-\0\0\0\17o\b|x\0\0#q c8Jp63uy-\0\0\0\17o\b\84x\0\0#q ww2NEo+W-\0\0\0\17o\b\8cx\0\0#q pXWbpGdz-\0\0\0\17o\b\94x\0\0#q mc2qkqcY-\0\0\0\17o\b\9cx\0\0#q 5CJNMqip-\0\0\0\17o\b¤x\0\0#q mJnZ7lPX-\0\0\0\17o\b¬x\0\0#q MBYk5A0C-\0\0\0\17o\b´x\0\0#q O8LEGgRC-\0\0\0\17o\b¼x\0\0#q LCyFEGqD-\0\0\0\17o\bÄx\0\0#q ni6GFwh4-\0\0\0\17o\bÌx\0\0#q ISrK96I0-\0\0\0\17o\bÔx\0\0#q lzDiiuVY-\0\0\0\17o\bÜx\0\0#q cpktYea5-\0\0\0\17o\bäx\0\0#q V0fSBQQ4-\0\0\0\17o\bìx\0\0#q HLSCYxVJ-\0\0\0\17o\bôx\0\0#q EIpIEG1i-\0\0\0\17o\büx\0\0#q vgPWGQ9z-\0\0\0\17o\b\ 4y\0\0#q RCT5pzks-\0\0\0\17o\b\fy\0\0#q lUdNyhMq-\0\0\0\17o\b\14y\0\0#q yFLVbXZ+-\0\0\0\17o\b\1cy\0\0#q dbaAL5Mo-\0\0\0\17o\b$y\0\0#q lnGQ0f2Y-\0\0\0\17o\b,y\0\0#q 0lbErTW9-\0\0\0\17o\b4y\0\0#q N9zvnf1P-\0\0\0\17o\b<y\0\0#q L7QhIQj5-\0\0\0\17o\bDy\0\0#q Qqg9+9Ze-\0\0\0\17o\bLy\0\0#q cP2k9FIf-\0\0\0\17o\bTy\0\0#q AnPPeCQE-\0\0\0\17o\b\y\0\0#q emCDu+Pp-\0\0\0\17o\bdy\0\0#q ovnNLGt2-\0\0\0\17o\bly\0\0#q xn12fm+7-\0\0\0\17o\bty\0\0#q k++eYUe5-\0\0\0\17o\b|y\0\0#q zI3I85qK-\0\0\0\17o\b\84y\0\0#q YoJjmjnl-\0\0\0\17o\b\8cy\0\0#q nmGtQxhZ-\0\0\0\17o\b\94y\0\0#q 8OrjWLs2-\0\0\0\17o\b\9cy\0\0#q 9chu705l-\0\0\0\17o\b¤y\0\0#q yXsj00pO-\0\0\0\17o\b¬y\0\0#q 0r01isVa-\0\0\0\17o\b´y\0\0#q NX6Hs8cR-\0\0\0\17o\b¼y\0\0#q tAzPRBUp-\0\0\0\17o\bÄy\0\0#q l8Xo2aUU-\0\0\0\17o\bÌy\0\0#q RMFSH1bM-\0\0\0\17o\bÔy\0\0#q AjgAzlpf-\0\0\0\17o\bÜy\0\0#q CL5AHePj-\0\0\0\17o\bäy\0\0#q DzgQW5sE-\0\0\0\17o\bìy\0\0#q zApAHGDa-\0\0\0\17o\bôy\0\0#q jlxaEJMR-\0\0\0\17o\büy\0\0#q ENKpBhNA-\0\0\0\17o\b\ 4z\0\0#q m92ON0Jo-\0\0\0\17o\b\fz\0\0#q cKOslyv1-\0\0\0\17o\b\14z\0\0#q CmpWvaQT-\0\0\0\17o\b\1cz\0\0#q Dp2e7sgw-\0\0\0\17o\b$z\0\0#q MWOxFETV-\0\0\0\17o\b,z\0\0#q edrRILOe-\0\0\0\17o\b4z\0\0#q cthi4+kH-\0\0\0\17o\b<z\0\0#q bXO7UCGY-\0\0\0\17o\bDz\0\0#q ShLGHMPL-\0\0\0\17o\bLz\0\0#q BFyJnkln-\0\0\0\17o\bTz\0\0#q bddyTMMg-\0\0\0\17o\b\z\0\0#q m68FBsVz-\0\0\0\17o\bdz\0\0#q HACN16/Q-\0\0\0\17o\blz\0\0#q BHAADr0h-\0\0\0\17o\btz\0\0#q yZ57ivEs-\0\0\0\17o\b|z\0\0#q ZjdscOB4-\0\0\0\17o\b\84z\0\0#q MukOoq75-\0\0\0\17o\b\8cz\0\0#q 3Sm6oznx-\0\0\0\17o\b\94z\0\0#q vBWSoYDs-\0\0\0\17o\b\9cz\0\0#q 0mM85hVF-\0\0\0\17o\b¤z\0\0#q 3AUJAQhI-\0\0\0\17o\b¬z\0\0#q C+IAnAQ0-\0\0\0\17o\b´z\0\0#q nYeBojTt-\0\0\0\17o\b¼z\0\0#q DDu9fb2Z-\0\0\0\17o\bÄz\0\0#q gfOvvEtI-\0\0\0\17o\bÌz\0\0#q Ir4U3SSA-\0\0\0\17o\bÔz\0\0#q bviqYgJS-\0\0\0\17o\bÜz\0\0#q p4BnTGwb-\0\0\0\17o\bäz\0\0#q atDG9A3m-\0\0\0\17o\bìz\0\0#q GF9hEO+h-\0\0\0\17o\bôz\0\0#q cZwvmsmK-\0\0\0\17o\büz\0\0#q w4IUUYSm-\0\0\0\17o\b\ 4{\0\0#q 04b969eJ-\0\0\0\17o\b\f{\0\0#q yhd9UFNe-\0\0\0\17o\b\14{\0\0#q 3iSa87zn-\0\0\0\17o\b\1c{\0\0#q SZ8uMCA9-\0\0\0\17o\b${\0\0#q unXVOthw-\0\0\0\17o\b,{\0\0#q gCtrI694-\0\0\0\17o\b4{\0\0#q ULz3RAeR-\0\0\0\17o\b<{\0\0#q PJ0dGGH4-\0\0\0\17o\bD{\0\0#q cQq8+E1k-\0\0\0\17o\bL{\0\0#q N2XKOIV8-\0\0\0\17o\bT{\0\0#q b7t0k3pI-\0\0\0\17o\b\{\0\0#q nQ2SYhUa-\0\0\0\17o\bd{\0\0#q CSxLkRMI-\0\0\0\17o\bl{\0\0#q bumyj4sT-\0\0\0\17o\bt{\0\0#q Vz8/OCjn-\0\0\0\17o\b|{\0\0#q FqV6iuYC-\0\0\0\17o\b\84{\0\0#q rEQETZhg-\0\0\0\17o\b\8c{\0\0#q aTaO1M91-\0\0\0\17o\b\94{\0\0#q eVU+0dN5-\0\0\0\17o\b\9c{\0\0#q lIKE0hY+-\0\0\0\17o\b¤{\0\0#q 6ZhdH8xP-\0\0\0\17o\b¬{\0\0#q atSu9IGj-\0\0\0\17o\b´{\0\0#q iSBRxdlY-\0\0\0\17o\b¼{\0\0#q hnVgx3DM-\0\0\0\17o\bÄ{\0\0#q 3OmAAPUh-\0\0\0\17o\bÌ{\0\0#q oivOGZEA-\0\0\0\17o\bÔ{\0\0#q 50UKDKlB-\0\0\0\17o\bÜ{\0\0#q GKmuKZHM-\0\0\0\17o\bä{\0\0#q 7ZnaIrey-\0\0\0\17o\bì{\0\0#q 9kZzbWmT-\0\0\0\17o\bô{\0\0#q Bux5hLri-\0\0\0\17o\bü{\0\0#q aXv3sCjh-\0\0\0\17o\b\ 4|\0\0#q 3RSQN2Km-\0\0\0\17o\b\f|\0\0#q seQirWUX-\0\0\0\17o\b\14|\0\0#q ffY2PUwR-\0\0\0\17o\b\1c|\0\0#q 4ix73JkV-\0\0\0\17o\b$|\0\0#q 2Xnrhe5w-\0\0\0\17o\b,|\0\0#q c7ATvBMN-\0\0\0\17o\b4|\0\0#q CGsQ9s1j-\0\0\0\17o\b<|\0\0#q t3XLtQAW-\0\0\0\17o\bD|\0\0#q 0gIAsK7i-\0\0\0\17o\bL|\0\0#q GYMN4XZo-\0\0\0\17o\bT|\0\0#q BFGRARR6-\0\0\0\17o\b\|\0\0#q qCjNIi9R-\0\0\0\17o\bd|\0\0#q gC+TuutU-\0\0\0\17o\bl|\0\0#q Gw5urUrW-\0\0\0\17o\bt|\0\0#q 9IBs3WmZ-\0\0\0\17o\b||\0\0#q h5j0JAQt-\0\0\0\17o\b\84|\0\0#q ReBHKKCw-\0\0\0\17o\b\8c|\0\0#q Ao1BYPjd-\0\0\0\17o\b\94|\0\0#q MlMyTuA3-\0\0\0\17o\b\9c|\0\0#q z3s5Hrzx-\0\0\0\17o\b¤|\0\0#q CD7DNUpI-\0\0\0\17o\b¬|\0\0#q 9NKK1QCb-\0\0\0\17o\b´|\0\0#q U3u6DYiK-\0\0\0\17o\b¼|\0\0#q aA7sOUSY-\0\0\0\17o\bÄ|\0\0#q FvgSL2GV-\0\0\0\17o\bÌ|\0\0#q 56raInCN-\0\0\0\17o\bÔ|\0\0#q ge3z1vok-\0\0\0\17o\bÜ|\0\0#q DQ4oBA7D-\0\0\0\17o\bä|\0\0#q VZChDpWQ-\0\0\0\17o\bì|\0\0#q 6HOcrY+5-\0\0\0\17o\bô|\0\0#q Qi5tmkDU-\0\0\0\17o\bü|\0\0#q UFPEQNwV-\0\0\0\17o\b\ 4}\0\0#q KiIBqChg-\0\0\0\17o\b\f}\0\0#q igm4JIiX-\0\0\0\17o\b\14}\0\0#q EAJEBKiK-\0\0\0\17o\b\1c}\0\0#q BIihiUjI-\0\0\0\17o\b$}\0\0#q dguH3Txt-\0\0\0\17o\b,}\0\0#q EV8CLnCZ-\0\0\0\17o\b4}\0\0#q ZJXuZrns-\0\0\0\17o\b<}\0\0#q 5yGzNcQq-\0\0\0\17o\bD}\0\0#q b5nRD8Kf-\0\0\0\17o\bL}\0\0#q Ejj1uLim-\0\0\0\17o\bT}\0\0#q HfFsXzlU-\0\0\0\17o\b\}\0\0#q Zzvk7zxY-\0\0\0\17o\bd}\0\0#q PeGzkRdg-\0\0\0\17o\bl}\0\0#q YzYoe7Nc-\0\0\0\17o\bt}\0\0#q 34mq1NfS-\0\0\0\17o\b|}\0\0#q 0+Tpc572-\0\0\0\17o\b\84}\0\0#q vBToIi+h-\0\0\0\17o\b\8c}\0\0#q NC8Ksk0w-\0\0\0\17o\b\94}\0\0#q ShGEgp3j-\0\0\0\17o\b\9c}\0\0#q Ot0s2159-\0\0\0\17o\b¤}\0\0#q erxfPx1e-\0\0\0\17o\b¬}\0\0#q Tb02DQXS-\0\0\0\17o\b´}\0\0#q uDB5AkTV-\0\0\0\17o\b¼}\0\0#q TpTmMjNg-\0\0\0\17o\bÄ}\0\0#q cOdrKEzr-\0\0\0\17o\bÌ}\0\0#q tc4aYgDJ-\0\0\0\17o\bÔ}\0\0#q qgdKhmhE-\0\0\0\17o\bÜ}\0\0#q 3HZulPmA-\0\0\0\17o\bä}\0\0#q HB7632oF-\0\0\0\17o\bì}\0\0#q lcTlmCvK-\0\0\0\17o\bô}\0\0#q gosDR7ft-\0\0\0\17o\bü}\0\0#q 7TOgZfTY-\0\0\0\17o\b\ 4~\0\0#q JwR7AXuW-\0\0\0\17o\b\f~\0\0#q /S8+gIFe-\0\0\0\17o\b\14~\0\0#q KNjkv3u7-\0\0\0\17o\b\1c~\0\0#q oLzAyBFi-\0\0\0\17o\b$~\0\0#q IY4bJOh4-\0\0\0\17o\b,~\0\0#q OuYdqgOI-\0\0\0\17o\b4~\0\0#q WvESJAdR-\0\0\0\17o\b<~\0\0#q UwkRH0TB-\0\0\0\17o\bD~\0\0#q zeSHfdN6-\0\0\0\17o\bL~\0\0#q Bz4E9oSS-\0\0\0\17o\bT~\0\0#q CWPhUXvD-\0\0\0\17o\b\~\0\0#q kFmbZ2uS-\0\0\0\17o\bd~\0\0#q LokHIEKe-\0\0\0\17o\bl~\0\0#q nMqeTFXg-\0\0\0\17o\bt~\0\0#q g3poKBEk-\0\0\0\17o\b|~\0\0#q 9zF2SbQh-\0\0\0\17o\b\84~\0\0#q Jap4uGJJ-\0\0\0\17o\b\8c~\0\0#q FC6V1rXo-\0\0\0\17o\b\94~\0\0#q CFhRw7Yc-\0\0\0\17o\b\9c~\0\0#q nMjkezOE-\0\0\0\17o\b¤~\0\0#q ULe98ME6-\0\0\0\17o\b¬~\0\0#q Ds0IYzER-\0\0\0\17o\b´~\0\0#q WbF33DHN-\0\0\0\17o\b¼~\0\0#q cyL7qBna-\0\0\0\17o\bÄ~\0\0#q eKKU8Wx9-\0\0\0\17o\bÌ~\0\0#q AYMaYwHM-\0\0\0\17o\bÔ~\0\0#q mO44OFPK-\0\0\0\17o\bÜ~\0\0#q 1nebx24P-\0\0\0\17o\bä~\0\0#q dpQEPFOI-\0\0\0\17o\bì~\0\0#q OCGGRgnf-\0\0\0\17o\bô~\0\0#q bPFFecB7-\0\0\0\17o\bü~\0\0#q CSMybA7N-\0\0\0\17o\b\ 4\7f\0\0#q NoCJdWkq-\0\0\0\17o\b\f\7f\0\0#q A6uxgQHT-\0\0\0\17o\b\14\7f\0\0#q SlzjN02j-\0\0\0\17o\b\1c\7f\0\0#q fYhsKEJK-\0\0\0\17o\b$\7f\0\0#q fK3grm8I-\0\0\0\17o\b,\7f\0\0#q X6/ZCr04-\0\0\0\17o\b4\7f\0\0#q RBTyJ2sb-\0\0\0\17o\b<\7f\0\0#q uCdybNeE-\0\0\0\17o\bD\7f\0\0#q ICJ26MbJ-\0\0\0\17o\bL\7f\0\0#q jeDS6wgq-\0\0\0\17o\bT\7f\0\0#q PaR9ormf-\0\0\0\17o\b\\7f\0\0#q dmFDLWdB-\0\0\0\17o\bd\7f\0\0#q F0bbY221-\0\0\0\17o\bl\7f\0\0#q 2EiKqJfX-\0\0\0\17o\bt\7f\0\0#q chQkdNNX-\0\0\0\17o\b|\7f\0\0#q rLktUifq-\0\0\0\17o\b\84\7f\0\0#q XfCq84+8-\0\0\0\17o\b\8c\7f\0\0#q Z6VhYN5i-\0\0\0\17o\b\94\7f\0\0#q 5hktLGeD-\0\0\0\17o\b\9c\7f\0\0#q vDyUvWWA-\0\0\0\17o\b¤\7f\0\0#q s27y4SHH-\0\0\0\17o\b¬\7f\0\0#q MOtg0Rag-\0\0\0\17o\b´\7f\0\0#q 4RHHJZJz-\0\0\0\17o\b¼\7f\0\0#q JpVzqEyp-\0\0\0\17o\bÄ\7f\0\0#q uBMu2xKI-\0\0\0\17o\bÌ\7f\0\0#q MQEgIgDM-\0\0\0\17o\bÔ\7f\0\0#q NB440aFx-\0\0\0\17o\bÜ\7f\0\0#q BiGgVIhd-\0\0\0\17o\bä\7f\0\0#q jaNkyK8R-\0\0\0\17o\bì\7f\0\0#q RKsepNlm-\0\0\0\17o\bô\7f\0\0#q wLGE3pI5-\0\0\0\17o\bü\7f\0\0#q dmBEqgxM-\0\0\0\17o\b\ 4\80\0\0#q dV0KaHO8-\0\0\0\17o\b\f\80\0\0#q HhyQ2xG2-\0\0\0\17o\b\14\80\0\0#q KGDGNoGz-\0\0\0\17o\b\1c\80\0\0#q Bt7biE+k-\0\0\0\17o\b$\80\0\0#q Q6Bod7WX-\0\0\0\17o\b,\80\0\0#q ByC2xtI4-\0\0\0\17o\b4\80\0\0#q zTaLsEoG-\0\0\0\17o\b<\80\0\0#q d3XlmZdy-\0\0\0\17o\bD\80\0\0#q lWF1alnb-\0\0\0\17o\bL\80\0\0#q M69mJMgn-\0\0\0\17o\bT\80\0\0#q kxqru4Oo-\0\0\0\17o\b\\80\0\0#q gy+Ri7zg-\0\0\0\17o\bd\80\0\0#q qVzMxct3-\0\0\0\17o\bl\80\0\0#q GGZgXGSd-\0\0\0\17o\bt\80\0\0#q kzJjhyAu-\0\0\0\17o\b|\80\0\0#q E2PZ723D-\0\0\0\17o\b\84\80\0\0#q JwTyMnjh-\0\0\0\17o\b\8c\80\0\0#q l3tHY5VD-\0\0\0\17o\b\94\80\0\0#q pUieCoJm-\0\0\0\17o\b\9c\80\0\0#q SC8uhRWO-\0\0\0\17o\b¤\80\0\0#q sIvHrs3I-\0\0\0\17o\b¬\80\0\0#q cXRWXW5d-\0\0\0\17o\b´\80\0\0#q Av7/778f-\0\0\0\17o\b¼\80\0\0#q UJpA9gUV-\0\0\0\17o\bÄ\80\0\0#q tiDse9fX-\0\0\0\17o\bÌ\80\0\0#q eLqjFjg9-\0\0\0\17o\bÔ\80\0\0#q tC9YHmeT-\0\0\0\17o\bÜ\80\0\0#q lFWicKAU-\0\0\0\17o\bä\80\0\0#q pOimCqgE-\0\0\0\17o\bì\80\0\0#q tGlSNGcp-\0\0\0\17o\bô\80\0\0#q e3u66YHC-\0\0\0\17o\bü\80\0\0#q 5aNSJLww-\0\0\0\17o\b\ 4\81\0\0#q 2kUhcBCo-\0\0\0\17o\b\f\81\0\0#q sQJBzkAY-\0\0\0\17o\b\14\81\0\0#q mK7l1EZT-\0\0\0\17o\b\1c\81\0\0#q iK2JEzDn-\0\0\0\17o\b$\81\0\0#q WILQWZzI-\0\0\0\17o\b,\81\0\0#q 5NHO5yHs-\0\0\0\17o\b4\81\0\0#q QScKeLA3-\0\0\0\17o\b<\81\0\0#q Y1UxANcW-\0\0\0\17o\bD\81\0\0#q cBcAXTZC-\0\0\0\17o\bL\81\0\0#q nG3WEshv-\0\0\0\17o\bT\81\0\0#q ETCEE/bP-\0\0\0\17o\b\\81\0\0#q auJ2LcYY-\0\0\0\17o\bd\81\0\0#q pkGUUtAj-\0\0\0\17o\bl\81\0\0#q 4AMoK/tv-\0\0\0\17o\bt\81\0\0#q 6dyS4In1-\0\0\0\17o\b|\81\0\0#q VQtIbiS0-\0\0\0\17o\b\84\81\0\0#q kHqwagwE-\0\0\0\17o\b\8c\81\0\0#q s2PM5itn-\0\0\0\17o\b\94\81\0\0#q uLiqWW68-\0\0\0\17o\b\9c\81\0\0#q 0Rhkknpn-\0\0\0\17o\b¤\81\0\0#q 2RxZA/Nq-\0\0\0\17o\b¬\81\0\0#q uFxL9qJ+-\0\0\0\17o\b´\81\0\0#q MWTj/aqb-\0\0\0\17o\b¼\81\0\0#q ZM1Eg28n-\0\0\0\17o\bÄ\81\0\0#q mVVm5HKs-\0\0\0\17o\bÌ\81\0\0#q lPLjlU2y-\0\0\0\17o\bÔ\81\0\0#q Zl+lLy2b-\0\0\0\17o\bÜ\81\0\0#q +bKSNUYS-\0\0\0\17o\bä\81\0\0#q ElldBP7y-\0\0\0\17o\bì\81\0\0#q b+gMMPeI-\0\0\0\17o\bô\81\0\0#q R9GJowRg-\0\0\0\17o\bü\81\0\0#q kgRoYVdq-\0\0\0\17o\b\ 4\82\0\0#q HQlwIDLQ-\0\0\0\17o\b\f\82\0\0#q aiI6H1Xm-\0\0\0\17o\b\14\82\0\0#q nDYFAee3-\0\0\0\17o\b\1c\82\0\0#q 04yulhRg-\0\0\0\17o\b$\82\0\0#q MIl8rODv-\0\0\0\17o\b,\82\0\0#q jPsYDh4F-\0\0\0\17o\b4\82\0\0#q RB4lS0XT-\0\0\0\17o\b<\82\0\0#q d85zYMBd-\0\0\0\17o\bD\82\0\0#q O9uA1XQj-\0\0\0\17o\bL\82\0\0#q EQiIrzFb-\0\0\0\17o\bT\82\0\0#q mDjy+83g-\0\0\0\17o\b\\82\0\0#q vNdxScSE-\0\0\0\17o\bd\82\0\0#q U2bnSmgA-\0\0\0\17o\bl\82\0\0#q jjhZ0eHK-\0\0\0\17o\bt\82\0\0#q QtVyg3vI-\0\0\0\17o\b|\82\0\0#q 5fSCEKUQ-\0\0\0\17o\b\84\82\0\0#q LGWCcN64-\0\0\0\17o\b\8c\82\0\0#q SoBE1gka-\0\0\0\17o\b\94\82\0\0#q 0aWw7IlY-\0\0\0\17o\b\9c\82\0\0#q UoJeMdqQ-\0\0\0\17o\b¤\82\0\0#q 5ytWEITj-\0\0\0\17o\b¬\82\0\0#q sqzKm8ZQ-\0\0\0\17o\b´\82\0\0#q ESwE6E2C-\0\0\0\17o\b¼\82\0\0#q N4IIUSEn-\0\0\0\17o\bÄ\82\0\0#q UYdM0vGl-\0\0\0\17o\bÌ\82\0\0#q bHppfLXO-\0\0\0\17o\bÔ\82\0\0#q IXBTSfWI-\0\0\0\17o\bÜ\82\0\0#q gFSl6ICh-\0\0\0\17o\bä\82\0\0#q y+B0e4/J-\0\0\0\17o\bì\82\0\0#q ZIPYtHBc-\0\0\0\17o\bô\82\0\0#q 8xqqNyEa-\0\0\0\17o\bü\82\0\0#q YZAWKNvf-\0\0\0\17o\b\ 4\83\0\0#q jpvJ6pXN-\0\0\0\17o\b\f\83\0\0#q iRCGxlbe-\0\0\0\17o\b\14\83\0\0#q PrTJreU3-\0\0\0\17o\b\1c\83\0\0#q HXYA2d8C-\0\0\0\17o\b$\83\0\0#q BSRKa51B-\0\0\0\17o\b,\83\0\0#q pHeF0vGi-\0\0\0\17o\b4\83\0\0#q 5yH3vMvA-\0\0\0\17o\b<\83\0\0#q 8hjcyHui-\0\0\0\17o\bD\83\0\0#q jgTurUuj-\0\0\0\17o\bL\83\0\0#q QcspGgZq-\0\0\0\17o\bT\83\0\0#q bDJsCwLl-\0\0\0\17o\b\\83\0\0#q jxYqwh0U-\0\0\0\17o\bd\83\0\0#q edgzggA1-\0\0\0\17o\bl\83\0\0#q oQPI1qSz-\0\0\0\17o\bt\83\0\0#q DKyyTLBu-\0\0\0\17o\b|\83\0\0#q sjazKdKb-\0\0\0\17o\b\84\83\0\0#q N8Mpiiht-\0\0\0\17o\b\8c\83\0\0#q tahHCFFJ-\0\0\0\17o\b\94\83\0\0#q FECD5lOa-\0\0\0\17o\b\9c\83\0\0#q LBoYNnSA-\0\0\0\17o\b¤\83\0\0#q 5Vo0uVRG-\0\0\0\17o\b¬\83\0\0#q un3s3jbM-\0\0\0\17o\b´\83\0\0#q CD8MAOHp-\0\0\0\17o\b¼\83\0\0#q iyBtrvGj-\0\0\0\17o\bÄ\83\0\0#q hr1I4Kam-\0\0\0\17o\bÌ\83\0\0#q hC90hDDg-\0\0\0\17o\bÔ\83\0\0#q rxsCgbMg-\0\0\0\17o\bÜ\83\0\0#q mSDrjyPJ-\0\0\0\17o\bä\83\0\0#q SVi0W46r-\0\0\0\17o\bì\83\0\0#q oi+Blde3-\0\0\0\17o\bô\83\0\0#q oaM85BCO-\0\0\0\17o\bü\83\0\0#q MlkvxXOB-\0\0\0\17o\b\ 4\84\0\0#q KzLEV9tx-\0\0\0\17o\b\f\84\0\0#q jdKcCx5V-\0\0\0\17o\b\14\84\0\0#q 102vHRvA-\0\0\0\17o\b\1c\84\0\0#q EBovGic6-\0\0\0\17o\b$\84\0\0#q QBeiErtE-\0\0\0\17o\b,\84\0\0#q TJWKgpIg-\0\0\0\17o\b4\84\0\0#q xvYmMdZt-\0\0\0\17o\b<\84\0\0#q +YQ8c1Cs-\0\0\0\17o\bD\84\0\0#q akICg2WZ-\0\0\0\17o\bL\84\0\0#q YJ1wKg5N-\0\0\0\17o\bT\84\0\0#q IYcsHI7T-\0\0\0\17o\b\\84\0\0#q KYIG9UiK-\0\0\0\17o\bd\84\0\0#q 5Dh3nMiY-\0\0\0\17o\bl\84\0\0#q QyjsFTAp-\0\0\0\17o\bt\84\0\0#q EA2cmsjh-\0\0\0\17o\b|\84\0\0#q UIqrYHeo-\0\0\0\17o\b\84\84\0\0#q S28gi1UT-\0\0\0\17o\b\8c\84\0\0#q O+eZXGRA-\0\0\0\17o\b\94\84\0\0#q HUG1Gwk3-\0\0\0\17o\b\9c\84\0\0#q 3qXWInhb-\0\0\0\17o\b¤\84\0\0#q yo5dSTqB-\0\0\0\17o\b¬\84\0\0#q DuQtgRSK-\0\0\0\17o\b´\84\0\0#q 2UpGW9OB-\0\0\0\17o\b¼\84\0\0#q 04oooTkj-\0\0\0\17o\bÄ\84\0\0#q 1I1XpEzE-\0\0\0\17o\bÌ\84\0\0#q sEzSF8gC-\0\0\0\17o\bÔ\84\0\0#q doVyiYDk-\0\0\0\17o\bÜ\84\0\0#q YCLfSn0S-\0\0\0\17o\bä\84\0\0#q yX2hCQQs-\0\0\0\17o\bì\84\0\0#q iaxSyGKp-\0\0\0\17o\bô\84\0\0#q CEVn+T+7-\0\0\0\17o\bü\84\0\0#q ACroi7X8-\0\0\0\17o\b\ 4\85\0\0#q aJopBWVZ-\0\0\0\17o\b\f\85\0\0#q ZWHIQaTx-\0\0\0\17o\b\14\85\0\0#q 4SNUeLDF-\0\0\0\17o\b\1c\85\0\0#q Sxevebd+-\0\0\0\17o\b$\85\0\0#q cHKoaR+U-\0\0\0\17o\b,\85\0\0#q ldj4hZiy-\0\0\0\17o\b4\85\0\0#q xAxiEJPs-\0\0\0\17o\b<\85\0\0#q 55pQEVzs-\0\0\0\17o\bD\85\0\0#q qkE5E3EK-\0\0\0\17o\bL\85\0\0#q C8Zrl12Z-\0\0\0\17o\bT\85\0\0#q 6ZyL3XJI-\0\0\0\17o\b\\85\0\0#q IiYtC1Ax-\0\0\0\17o\bd\85\0\0#q c5KDSj61-\0\0\0\17o\bl\85\0\0#q 2cHXeoDi-\0\0\0\17o\bt\85\0\0#q FrcpuKKB-\0\0\0\17o\b|\85\0\0#q 6LCLGCsg-\0\0\0\17o\b\84\85\0\0#q EWAcjIYi-\0\0\0\17o\b\8c\85\0\0#q 7hqF7Haj-\0\0\0\17o\b\94\85\0\0#q 4908uyiA-\0\0\0\17o\b\9c\85\0\0#q KrcawQQ5-\0\0\0\17o\b¤\85\0\0#q bsgLte4F-\0\0\0\17o\b¬\85\0\0#q vgR3kPuH-\0\0\0\17o\b´\85\0\0#q tlEgneUB-\0\0\0\17o\b¼\85\0\0#q i6RqG4Di-\0\0\0\17o\bÄ\85\0\0#q DmJiBIgS-\0\0\0\17o\bÌ\85\0\0#q VKzW6RQT-\0\0\0\17o\bÔ\85\0\0#q sDZDRB7v-\0\0\0\17o\bÜ\85\0\0#q FB/Npbn3-\0\0\0\17o\bä\85\0\0#q thjxnOfz-\0\0\0\17o\bì\85\0\0#q 03l8o4iP-\0\0\0\17o\bô\85\0\0#q r5vcTXay-\0\0\0\17o\bü\85\0\0#q Irevu4el-\0\0\0\17o\b\ 4\86\0\0#q RUVaMYKB-\0\0\0\17o\b\f\86\0\0#q TVWh4hpU-\0\0\0\17o\b\14\86\0\0#q 3OBfMUdp-\0\0\0\17o\b\1c\86\0\0#q qaMvN5Rf-\0\0\0\17o\b$\86\0\0#q QRHEA5SR-\0\0\0\17o\b,\86\0\0#q sCqgNvSa-\0\0\0\17o\b4\86\0\0#q SWAjxg2S-\0\0\0\17o\b<\86\0\0#q ce8tmpLw-\0\0\0\17o\bD\86\0\0#q QTzaEJKY-\0\0\0\17o\bL\86\0\0#q a7vw4DMq-\0\0\0\17o\bT\86\0\0#q 4BBwDCYq-\0\0\0\17o\b\\86\0\0#q TySZ5Y4q-\0\0\0\17o\bd\86\0\0#q UEBqrTyj-\0\0\0\17o\bl\86\0\0#q RBdDSeJI-\0\0\0\17o\bt\86\0\0#q R3x93G24-\0\0\0\17o\b|\86\0\0#q dW0Fsfb5-\0\0\0\17o\b\84\86\0\0#q 2b53LqcB-\0\0\0\17o\b\8c\86\0\0#q LxkrVu+j-\0\0\0\17o\b\94\86\0\0#q OgAOVeWK-\0\0\0\17o\b\9c\86\0\0#q SAPYajZn-\0\0\0\17o\b¤\86\0\0#q WDo8DQrw-\0\0\0\17o\b¬\86\0\0#q VXMRLreC-\0\0\0\17o\b´\86\0\0#q HM8HdKQ7-\0\0\0\17o\b¼\86\0\0#q MnILkIj3-\0\0\0\17o\bÄ\86\0\0#q MoONh0TW-\0\0\0\17o\bÌ\86\0\0#q CXGY8bOC-\0\0\0\17o\bÔ\86\0\0#q BgAXDflH-\0\0\0\17o\bÜ\86\0\0#q cvJbxkD4-\0\0\0\17o\bä\86\0\0#q icpcbMiA-\0\0\0\17o\bì\86\0\0#q 0ObDPeZM-\0\0\0\17o\bô\86\0\0#q m9qh4Tsx-\0\0\0\17o\bü\86\0\0#q eYSrNdsE-\0\0\0\17o\b\ 4\87\0\0#q RNogpnNA-\0\0\0\17o\b\f\87\0\0#q iWcLBMk3-\0\0\0\17o\b\14\87\0\0#q AFNaaFs8-\0\0\0\17o\b\1c\87\0\0#q 4CFDeDFX-\0\0\0\17o\b$\87\0\0#q xodhl7a9-\0\0\0\17o\b,\87\0\0#q MyVyMFFD-\0\0\0\17o\b4\87\0\0#q 0AIGiNGC-\0\0\0\17o\b<\87\0\0#q voSCLqpw-\0\0\0\17o\bD\87\0\0#q 0errcmtJ-\0\0\0\17o\bL\87\0\0#q ZMaVMLAk-\0\0\0\17o\bT\87\0\0#q EC6A0HNH-\0\0\0\17o\b\\87\0\0#q B9bcXzSD-\0\0\0\17o\bd\87\0\0#q liqUfebI-\0\0\0\17o\bl\87\0\0#q SAiIRkyh-\0\0\0\17o\bt\87\0\0#q vuGM41wC-\0\0\0\17o\b|\87\0\0#q 0GZ9e14N-\0\0\0\17o\b\84\87\0\0#q 0k1dvH2j-\0\0\0\17o\b\8c\87\0\0#q IIzL0HDg-\0\0\0\17o\b\94\87\0\0#q Ogo2Teq2-\0\0\0\17o\b\9c\87\0\0#q QOrLViXL-\0\0\0\17o\b¤\87\0\0#q anCQRVQk-\0\0\0\17o\b¬\87\0\0#q cYimjkTc-\0\0\0\17o\b´\87\0\0#q FagkgFwM-\0\0\0\17o\b¼\87\0\0#q QzjIhkES-\0\0\0\17o\bÄ\87\0\0#q KoRYDARO-\0\0\0\17o\bÌ\87\0\0#q OUM3MEMW-\0\0\0\17o\bÔ\87\0\0#q ezt6GgSu-\0\0\0\17o\bÜ\87\0\0#q FhS2HQXO-\0\0\0\17o\bä\87\0\0#q veJgcUGz-\0\0\0\17o\bì\87\0\0#q sH1FZhnV-\0\0\0\17o\bô\87\0\0#q aE8D1kRD-\0\0\0\17o\bü\87\0\0#q jrF+riAw-\0\0\0\17o\b\ 4\88\0\0#q E0VbuVvu-\0\0\0\17o\b\f\88\0\0#q Wx0Vo0Iv-\0\0\0\17o\b\14\88\0\0#q o3snYbRf-\0\0\0\17o\b\1c\88\0\0#q lxgcfJwR-\0\0\0\17o\b$\88\0\0#q 3m0ICx85-\0\0\0\17o\b,\88\0\0#q dsSDvT3c-\0\0\0\17o\b4\88\0\0#q Z29Q4CWG-\0\0\0\17o\b<\88\0\0#q BQLggyCK-\0\0\0\17o\bD\88\0\0#q EiARitqr-\0\0\0\17o\bL\88\0\0#q sNm0fTrW-\0\0\0\17o\bT\88\0\0#q 3Krxa102-\0\0\0\17o\b\\88\0\0#q dakYpVhq-\0\0\0\17o\bd\88\0\0#q whVCrC2S-\0\0\0\17o\bl\88\0\0#q GOlkRk1U-\0\0\0\17o\bt\88\0\0#q lqBaSVYV-\0\0\0\17o\b|\88\0\0#q JYN7ERi1-\0\0\0\17o\b\84\88\0\0#q FAbW+G3z-\0\0\0\17o\b\8c\88\0\0#q 51re5VjV-\0\0\0\17o\b\94\88\0\0#q bm5W5Ulb-\0\0\0\17o\b\9c\88\0\0#q mrUmM9t/-\0\0\0\17o\b¤\88\0\0#q 6/T6vv9P-\0\0\0\17o\b¬\88\0\0#q o7vhq+xJ-\0\0\0\17o\b´\88\0\0#q DxqrZJCS-\0\0\0\17o\b¼\88\0\0#q N4A9ebXx-\0\0\0\17o\bÄ\88\0\0#q yczXxmoN-\0\0\0\17o\bÌ\88\0\0#q 33VoVPS3-\0\0\0\17o\bÔ\88\0\0#q BLDLLHbi-\0\0\0\17o\bÜ\88\0\0#q 5spPNZK0-\0\0\0\17o\bä\88\0\0#q uCZvZgZz-\0\0\0\17o\bì\88\0\0#q c23MBvtL-\0\0\0\17o\bô\88\0\0#q dad1ruTZ-\0\0\0\17o\bü\88\0\0#q JGVJwael-\0\0\0\17o\b\ 4\89\0\0#q Jw113fR8-\0\0\0\17o\b\f\89\0\0#q rnExqR0P-\0\0\0\17o\b\14\89\0\0#q rSFjAyjj-\0\0\0\17o\b\1c\89\0\0#q VUETBCGw-\0\0\0\17o\b$\89\0\0#q kwwK3s28-\0\0\0\17o\b,\89\0\0#q 7kNjE+yu-\0\0\0\17o\b4\89\0\0#q 0Hbm242i-\0\0\0\17o\b<\89\0\0#q 5VRLlk0S-\0\0\0\17o\bD\89\0\0#q TTSgxaFK-\0\0\0\17o\bL\89\0\0#q RQ77zTcy-\0\0\0\17o\bT\89\0\0#q WsiGy8yI-\0\0\0\17o\b\\89\0\0#q rLiHHJjt-\0\0\0\17o\bd\89\0\0#q G1A2Yw3W-\0\0\0\17o\bl\89\0\0#q 9UlzdFd2-\0\0\0\17o\bt\89\0\0#q HcNCqkQg-\0\0\0\17o\b|\89\0\0#q yani4Bu3-\0\0\0\17o\b\84\89\0\0#q NroVFnYL-\0\0\0\17o\b\8c\89\0\0#q 2HzDRFdv-\0\0\0\17o\b\94\89\0\0#q Tmig2HcO-\0\0\0\17o\b\9c\89\0\0#q nFxATrA0-\0\0\0\17o\b¤\89\0\0#q TnGma3YZ-\0\0\0\17o\b¬\89\0\0#q z0ymbsQA-\0\0\0\17o\b´\89\0\0#q YJGBFbqw-\0\0\0\17o\b¼\89\0\0#q ZSEku3x2-\0\0\0\17o\bÄ\89\0\0#q 1FBfCArF-\0\0\0\17o\bÌ\89\0\0#q 0wi6MyRr-\0\0\0\17o\bÔ\89\0\0#q QQhzxXZC-\0\0\0\17o\bÜ\89\0\0#q ortLApgc-\0\0\0\17o\bä\89\0\0#q ocDruDxk-\0\0\0\17o\bì\89\0\0#q uASSjkkC-\0\0\0\17o\bô\89\0\0#q RHHVa1oV-\0\0\0\17o\bü\89\0\0#q lDu7SymY-\0\0\0\17o\b\ 4\8a\0\0#q TanF4+3W-\0\0\0\17o\b\f\8a\0\0#q eROwxPvS-\0\0\0\17o\b\14\8a\0\0#q Bh9NNJ8i-\0\0\0\17o\b\1c\8a\0\0#q k1JAnwJi-\0\0\0\17o\b$\8a\0\0#q vP2b/k6e-\0\0\0\17o\b,\8a\0\0#q XnnoQc+e-\0\0\0\17o\b4\8a\0\0#q 3REtcmUh-\0\0\0\17o\b<\8a\0\0#q KCgg9oIg-\0\0\0\17o\bD\8a\0\0#q j3cO94cZ-\0\0\0\17o\bL\8a\0\0#q 1/yZZPYX-\0\0\0\17o\bT\8a\0\0#q mLsEVzL9-\0\0\0\17o\b\\8a\0\0#q wyayYqdo-\0\0\0\17o\bd\8a\0\0#q Lf7u7cMa-\0\0\0\17o\bl\8a\0\0#q iHlnOXVc-\0\0\0\17o\bt\8a\0\0#q jK1tFvlV-\0\0\0\17o\b|\8a\0\0#q LZVUn6Ct-\0\0\0\17o\b\84\8a\0\0#q S/Dc2MGy-\0\0\0\17o\b\8c\8a\0\0#q jQgfhC2K-\0\0\0\17o\b\94\8a\0\0#q djr3P4oF-\0\0\0\17o\b\9c\8a\0\0#q 82DpTA7d-\0\0\0\17o\b¤\8a\0\0#q JI8fmoIQ-\0\0\0\17o\b¬\8a\0\0#q cC1skeRz-\0\0\0\17o\b´\8a\0\0#q KgLQfdKJ-\0\0\0\17o\b¼\8a\0\0#q KWsxDeDR-\0\0\0\17o\bÄ\8a\0\0#q AOkVD1Uj-\0\0\0\17o\bÌ\8a\0\0#q 6REe5pkk-\0\0\0\17o\bÔ\8a\0\0#q FtcBVDyB-\0\0\0\17o\bÜ\8a\0\0#q msYcJiDP-\0\0\0\17o\bä\8a\0\0#q KL4QYIAK-\0\0\0\17o\bì\8a\0\0#q g3pFBYsE-\0\0\0\17o\bô\8a\0\0#q heQysfqh-\0\0\0\17o\bü\8a\0\0#q Kb7Z5Wjm-\0\0\0\17o\b\ 4\8b\0\0#q 10jpNiZp-\0\0\0\17o\b\f\8b\0\0#q B5IyQBQM-\0\0\0\17o\b\14\8b\0\0#q UV05k5WF-\0\0\0\17o\b\1c\8b\0\0#q 025JblIl-\0\0\0\17o\b$\8b\0\0#q xOjYPTSQ-\0\0\0\17o\b,\8b\0\0#q S14ht99a-\0\0\0\17o\b4\8b\0\0#q 4g4RAIME-\0\0\0\17o\b<\8b\0\0#q XBQ9VYdU-\0\0\0\17o\bD\8b\0\0#q OnAHboCb-\0\0\0\17o\bL\8b\0\0#q AM8xBqUi-\0\0\0\17o\bT\8b\0\0#q dwUIqCaN-\0\0\0\17o\b\\8b\0\0#q uDndlLch-\0\0\0\17o\bd\8b\0\0#q eCQRzyDZ-\0\0\0\17o\bl\8b\0\0#q sza6jpcC-\0\0\0\17o\bt\8b\0\0#q 8J5t93uI-\0\0\0\17o\b|\8b\0\0#q 52DOCUmx-\0\0\0\17o\b\84\8b\0\0#q yBWG6xjU-\0\0\0\17o\b\8c\8b\0\0#q DfvcQN2R-\0\0\0\17o\b\94\8b\0\0#q 3loD2RQp-\0\0\0\17o\b\9c\8b\0\0#q UCyjb0Nn-\0\0\0\17o\b¤\8b\0\0#q j8jM44gO-\0\0\0\17o\b¬\8b\0\0#q I4HkYOhJ-\0\0\0\17o\b´\8b\0\0#q NFBUaBwi-\0\0\0\17o\b¼\8b\0\0#q iugHBtgm-\0\0\0\17o\bÄ\8b\0\0#q VWWcPJ2v-\0\0\0\17o\bÌ\8b\0\0#q AGlYg8pB-\0\0\0\17o\bÔ\8b\0\0#q 1knDeEQy-\0\0\0\17o\bÜ\8b\0\0#q YzoFW+nZ-\0\0\0\17o\bä\8b\0\0#q ieSuAOXH-\0\0\0\17o\bì\8b\0\0#q dpQnYHII-\0\0\0\17o\bô\8b\0\0#q vsnV62gW-\0\0\0\17o\bü\8b\0\0#q 62oGOQSq-\0\0\0\17o\b\ 4\8c\0\0#q 0ZHQmkz6-\0\0\0\17o\b\f\8c\0\0#q ve09eR6+-\0\0\0\17o\b\14\8c\0\0#q As6PaDEA-\0\0\0\17o\b\1c\8c\0\0#q PBAjCRxH-\0\0\0\17o\b$\8c\0\0#q iizSKSWE-\0\0\0\17o\b,\8c\0\0#q 3lI8fDOC-\0\0\0\17o\b4\8c\0\0#q DmGnmVpN-\0\0\0\17o\b<\8c\0\0#q bi8eUVoB-\0\0\0\17o\bD\8c\0\0#q cnjVYXJH-\0\0\0\17o\bL\8c\0\0#q Wy5Y+Ig8-\0\0\0\17o\bT\8c\0\0#q gsiDUDTA-\0\0\0\17o\b\\8c\0\0#q 6xDbTXjD-\0\0\0\17o\bd\8c\0\0#q HGKyNg20-\0\0\0\17o\bl\8c\0\0#q +8AoKRpU-\0\0\0\17o\bt\8c\0\0#q zjVgeIne-\0\0\0\17o\b|\8c\0\0#q yymHNIhl-\0\0\0\17o\b\84\8c\0\0#q OlRveBNb-\0\0\0\17o\b\8c\8c\0\0#q AyNu+YZy-\0\0\0\17o\b\94\8c\0\0#q 5q7JQKKS-\0\0\0\17o\b\9c\8c\0\0#q SPDgYkgO-\0\0\0\17o\b¤\8c\0\0#q Z54N9vTD-\0\0\0\17o\b¬\8c\0\0#q Vhqc6Uhu-\0\0\0\17o\b´\8c\0\0#q wvCADsV5-\0\0\0\17o\b¼\8c\0\0#q z0KRpEIT-\0\0\0\17o\bÄ\8c\0\0#q Xj4+mgml-\0\0\0\17o\bÌ\8c\0\0#q oIZg4a71-\0\0\0\17o\bÔ\8c\0\0#q Zlm7m0gk-\0\0\0\17o\bÜ\8c\0\0#q dp4U3zAn-\0\0\0\17o\bä\8c\0\0#q K2iHrqjs-\0\0\0\17o\bì\8c\0\0#q xi8S8sDd-\0\0\0\17o\bô\8c\0\0#q GDo9ucdG-\0\0\0\17o\bü\8c\0\0#q hjq81Jfa-\0\0\0\17o\b\ 4\8d\0\0#q 1MiJSKcB-\0\0\0\17o\b\f\8d\0\0#q A701FV6a-\0\0\0\17o\b\14\8d\0\0#q w8Hp7V9E-\0\0\0\17o\b\1c\8d\0\0#q URNiZNAD-\0\0\0\17o\b$\8d\0\0#q wG3dhrhp-\0\0\0\17o\b,\8d\0\0#q 2xsMQdoN-\0\0\0\17o\b4\8d\0\0#q aPWpg17F-\0\0\0\17o\b<\8d\0\0#q E8O8dR1V-\0\0\0\17o\bD\8d\0\0#q HRzpUzs4-\0\0\0\17o\bL\8d\0\0#q oW8uITBT-\0\0\0\17o\bT\8d\0\0#q DYPLynlw-\0\0\0\17o\b\\8d\0\0#q ZDIItG+C-\0\0\0\17o\bd\8d\0\0#q IpXe2AKu-\0\0\0\17o\bl\8d\0\0#q CI7Qs1rn-\0\0\0\17o\bt\8d\0\0#q C94AEyGb-\0\0\0\17o\b|\8d\0\0#q MuhIPF1H-\0\0\0\17o\b\84\8d\0\0#q gmbONCmS-\0\0\0\17o\b\8c\8d\0\0#q 5k7bSMjX-\0\0\0\17o\b\94\8d\0\0#q hXQp1OCj-\0\0\0\17o\b\9c\8d\0\0#q mkAGTvLO-\0\0\0\17o\b¤\8d\0\0#q mI0HOAt3-\0\0\0\17o\b¬\8d\0\0#q YzBQRFgq-\0\0\0\17o\b´\8d\0\0#q Fp2bepbO-\0\0\0\17o\b¼\8d\0\0#q C2EIwJLO-\0\0\0\17o\bÄ\8d\0\0#q pBSCVEHI-\0\0\0\17o\bÌ\8d\0\0#q kdNxHOkA-\0\0\0\17o\bÔ\8d\0\0#q Qs0VIpgJ-\0\0\0\17o\bÜ\8d\0\0#q l4XMHMjE-\0\0\0\17o\bä\8d\0\0#q gid0t3FO-\0\0\0\17o\bì\8d\0\0#q 8MJhYYXY-\0\0\0\17o\bô\8d\0\0#q 8sERIghd-\0\0\0\17o\bü\8d\0\0#q xq3vQKeC-\0\0\0\17o\b\ 4\8e\0\0#q 72BkdCeG-\0\0\0\17o\b\f\8e\0\0#q xRxAiGkD-\0\0\0\17o\b\14\8e\0\0#q GK5LYsCK-\0\0\0\17o\b\1c\8e\0\0#q 3AWW+AM5-\0\0\0\17o\b$\8e\0\0#q VQaWqrkJ-\0\0\0\17o\b,\8e\0\0#q 3NiK8HR0-\0\0\0\17o\b4\8e\0\0#q Oyaird7M-\0\0\0\17o\b<\8e\0\0#q 0013PrNY-\0\0\0\17o\bD\8e\0\0#q 4oA67ZPe-\0\0\0\17o\bL\8e\0\0#q zuDTrV0o-\0\0\0\17o\bT\8e\0\0#q ZMsRpR7Z-\0\0\0\17o\b\\8e\0\0#q ipzQ1jzg-\0\0\0\17o\bd\8e\0\0#q 4Ut53oN2-\0\0\0\17o\bl\8e\0\0#q DS2qHRF3-\0\0\0\17o\bt\8e\0\0#q Qms17VFo-\0\0\0\17o\b|\8e\0\0#q J5zQGLHn-\0\0\0\17o\b\84\8e\0\0#q TQ1WhcBQ-\0\0\0\17o\b\8c\8e\0\0#q uEUTQhQj-\0\0\0\17o\b\94\8e\0\0#q EQUHI85h-\0\0\0\17o\b\9c\8e\0\0#q T5R2UYC3-\0\0\0\17o\b¤\8e\0\0#q twsue/zO-\0\0\0\17o\b¬\8e\0\0#q INAzYK9M-\0\0\0\17o\b´\8e\0\0#q g24cwzR4-\0\0\0\17o\b¼\8e\0\0#q rXfuB43f-\0\0\0\17o\bÄ\8e\0\0#q 5g0wg+ma-\0\0\0\17o\bÌ\8e\0\0#q n54RRErd-\0\0\0\17o\bÔ\8e\0\0#q utOia0EP-\0\0\0\17o\bÜ\8e\0\0#q ZPBoCriZ-\0\0\0\17o\bä\8e\0\0#q 3WIjYiAi-\0\0\0\17o\bì\8e\0\0#q Y9ycBy8P-\0\0\0\17o\bô\8e\0\0#q vV0fdNCt-\0\0\0\17o\bü\8e\0\0#q r1kSkUTF-\0\0\0\17o\b\ 4\8f\0\0#q pWjZQ33A-\0\0\0\17o\b\f\8f\0\0#q Gh0a7ep6-\0\0\0\17o\b\14\8f\0\0#q g4nkWoAS-\0\0\0\17o\b\1c\8f\0\0#q DIDjZq/B-\0\0\0\17o\b$\8f\0\0#q gHfve9jg-\0\0\0\17o\b,\8f\0\0#q EEhzWCeQ-\0\0\0\17o\b4\8f\0\0#q R7Hli6A2-\0\0\0\17o\b<\8f\0\0#q 0uwCorkh-\0\0\0\17o\bD\8f\0\0#q nm7lK6hw-\0\0\0\17o\bL\8f\0\0#q 1GyiXCVz-\0\0\0\17o\bT\8f\0\0#q PlIK80Mp-\0\0\0\17o\b\\8f\0\0#q CjwRAoag-\0\0\0\17o\bd\8f\0\0#q LZOVxmZA-\0\0\0\17o\bl\8f\0\0#q +eBSGhCI-\0\0\0\17o\bt\8f\0\0#q L9tBXabr-\0\0\0\17o\b|\8f\0\0#q pw47c5zK-\0\0\0\17o\b\84\8f\0\0#q NaAKO4sL-\0\0\0\17o\b\8c\8f\0\0#q 7KvUaVGg-\0\0\0\17o\b\94\8f\0\0#q eYA4XSjs-\0\0\0\17o\b\9c\8f\0\0#q TXG+b3fB-\0\0\0\17o\b¤\8f\0\0#q FtoGLhoK-\0\0\0\17o\b¬\8f\0\0#q vIHohI5z-\0\0\0\17o\b´\8f\0\0#q zHSwDMUy-\0\0\0\17o\b¼\8f\0\0#q PCJ8Zjol-\0\0\0\17o\bÄ\8f\0\0#q sa6FJ1An-\0\0\0\17o\bÌ\8f\0\0#q 5EizYQKc-\0\0\0\17o\bÔ\8f\0\0#q por6HHhk-\0\0\0\17o\bÜ\8f\0\0#q 6GdulzXb-\0\0\0\17o\bä\8f\0\0#q HMekayul-\0\0\0\17o\bì\8f\0\0#q 6RlzuOIX-\0\0\0\17o\bô\8f\0\0#q QHGhtCOs-\0\0\0\17o\bü\8f\0\0#q Ordgh5yB-\0\0\0\17o\b\ 4\90\0\0#q UI4QD6cJ-\0\0\0\17o\b\f\90\0\0#q CNmU1QYJ-\0\0\0\17o\b\14\90\0\0#q oXJADgxa-\0\0\0\17o\b\1c\90\0\0#q ZvbMMEEk-\0\0\0\17o\b$\90\0\0#q HSPshs7O-\0\0\0\17o\b,\90\0\0#q GaJOF613-\0\0\0\17o\b4\90\0\0#q Nd0CBj2P-\0\0\0\17o\b<\90\0\0#q Ii+PXV5W-\0\0\0\17o\bD\90\0\0#q 90bvAECz-\0\0\0\17o\bL\90\0\0#q SV7CKiJi-\0\0\0\17o\bT\90\0\0#q GUeZErQb-\0\0\0\17o\b\\90\0\0#q fUGQNmjh-\0\0\0\17o\bd\90\0\0#q ny5vomzE-\0\0\0\17o\bl\90\0\0#q BFviHjwi-\0\0\0\17o\bt\90\0\0#q iJ0o1E52-\0\0\0\17o\b|\90\0\0#q tFzGaXbd-\0\0\0\17o\b\84\90\0\0#q CZ4hwwYE-\0\0\0\17o\b\8c\90\0\0#q QPQQkQZF-\0\0\0\17o\b\94\90\0\0#q RB5oqVQl-\0\0\0\17o\b\9c\90\0\0#q Vfs5E1NS-\0\0\0\17o\b¤\90\0\0#q Qq6LJmIh-\0\0\0\17o\b¬\90\0\0#q qJUJBkST-\0\0\0\17o\b´\90\0\0#q mKRwxxBG-\0\0\0\17o\b¼\90\0\0#q 4hmGYgYh-\0\0\0\17o\bÄ\90\0\0#q OlbgcIM3-\0\0\0\17o\bÌ\90\0\0#q Qhnd3c1B-\0\0\0\17o\bÔ\90\0\0#q bjEYvIhb-\0\0\0\17o\bÜ\90\0\0#q ZzEQRGBE-\0\0\0\17o\bä\90\0\0#q 2cgI5W4R-\0\0\0\17o\bì\90\0\0#q hHpgCsRs-\0\0\0\17o\bô\90\0\0#q jcdWFMN0-\0\0\0\17o\bü\90\0\0#q olQDA5nd-\0\0\0\17o\b\ 4\91\0\0#q 4AckRPbG-\0\0\0\17o\b\f\91\0\0#q 2+i25y8W-\0\0\0\17o\b\14\91\0\0#q qkxW8Wup-\0\0\0\17o\b\1c\91\0\0#q q+jB2ymQ-\0\0\0\17o\b$\91\0\0#q ckBbjqGG-\0\0\0\17o\b,\91\0\0#q J2AtMuBu-\0\0\0\17o\b4\91\0\0#q G4BrSNp5-\0\0\0\17o\b<\91\0\0#q MsuWwgXb-\0\0\0\17o\bD\91\0\0#q cCXcIAxo-\0\0\0\17o\bL\91\0\0#q J5BTSW05-\0\0\0\17o\bT\91\0\0#q do8jzcwV-\0\0\0\17o\b\\91\0\0#q XNZNxgxu-\0\0\0\17o\bd\91\0\0#q imapGRGR-\0\0\0\17o\bl\91\0\0#q MeE3Yqpo-\0\0\0\17o\bt\91\0\0#q RFQVEB1g-\0\0\0\17o\b|\91\0\0#q VMQgYxo7-\0\0\0\17o\b\84\91\0\0#q G7bmRDES-\0\0\0\17o\b\8c\91\0\0#q u71hcZac-\0\0\0\17o\b\94\91\0\0#q 1QBCRIHe-\0\0\0\17o\b\9c\91\0\0#q 0LZAbAbH-\0\0\0\17o\b¤\91\0\0#q xDwuLIhF-\0\0\0\17o\b¬\91\0\0#q lGQ311uR-\0\0\0\17o\b´\91\0\0#q lODv9YkC-\0\0\0\17o\b¼\91\0\0#q QRH+Eh/r-\0\0\0\17o\bÄ\91\0\0#q 6Q/7bT83-\0\0\0\17o\bÌ\91\0\0#q 9x/Fr+4/-\0\0\0\17o\bÔ\91\0\0#q N+xjJ/ef-\0\0\0\17o\bÜ\91\0\0#q +if6dubx-\0\0\0\17o\bä\91\0\0#q /+uT/af5-\0\0\0\17o\bì\91\0\0#q yl/qO7x5-\0\0\0\17o\bô\91\0\0#q v6rVWuWZ-\0\0\0\17o\bü\91\0\0#q lZjM5eZ/-\0\0\0\17o\b\ 4\92\0\0#q VustitjY-\0\0\0\17o\b\f\92\0\0#q 3HC0dHEx-\0\0\0\17o\b\14\92\0\0#q sx/qOenT-\0\0\0\17o\b\1c\92\0\0#q OnMdJLi6-\0\0\0\17o\b$\92\0\0#q X+gqTDD7-\0\0\0\17o\b,\92\0\0#q MX/BpCpm-\0\0\0\17o\b4\92\0\0#q Fwf/C6fg-\0\0\0\17o\b<\92\0\0#q 79fommh7-\0\0\0\17o\bD\92\0\0#q CkD5icKI-\0\0\0\17o\bL\92\0\0#q rVSTX/Uh-\0\0\0\17o\bT\92\0\0#q 8fGFGKs+-\0\0\0\17o\b\\92\0\0#q lPgrQH+b-\0\0\0\17o\bd\92\0\0#q z8pu235H-\0\0\0\17o\bl\92\0\0#q wdPyPCs0-\0\0\0\17o\bt\92\0\0#q aP60bPSY-\0\0\0\17o\b|\92\0\0#q wmirZ/oP-\0\0\0\17o\b\84\92\0\0#q 34xfQ1wP-\0\0\0\17o\b\8c\92\0\0#q pnDAX5KP-\0\0\0\17o\b\94\92\0\0#q S23/G6nZ-\0\0\0\17o\b\9c\92\0\0#q /TKCJiCN-\0\0\0\17o\b¤\92\0\0#q S5oIRTN0-\0\0\0\17o\b¬\92\0\0#q GCKEmhG9-\0\0\0\17o\b´\92\0\0#q kYgIrr/U-\0\0\0\17o\b¼\92\0\0#q H+fx/tEu-\0\0\0\17o\bÄ\92\0\0#q BL+6UPJP-\0\0\0\17o\bÌ\92\0\0#q b3bTrJph-\0\0\0\17o\bÔ\92\0\0#q J0Vu8PmO-\0\0\0\17o\bÜ\92\0\0#q nIeyvm4J-\0\0\0\17o\bä\92\0\0#q 8dKtpVV7-\0\0\0\17o\bì\92\0\0#q Nxk1Ldm7-\0\0\0\17o\bô\92\0\0#q r2f9z6Vb-\0\0\0\17o\bü\92\0\0#q D/lVr/jI-\0\0\0\17o\b\ 4\93\0\0#q a0/ZP2/6-\0\0\0\17o\b\f\93\0\0#q fsPJ4euM-\0\0\0\17o\b\14\93\0\0#q 7/l/w/Hb-\0\0\0\17o\b\1c\93\0\0#q e2qPmk4G-\0\0\0\17o\b$\93\0\0#q ye8+XFXS-\0\0\0\17o\b,\93\0\0#q sxt8HE/h-\0\0\0\17o\b4\93\0\0#q OObeMcPp-\0\0\0\17o\b<\93\0\0#q NPb7slXd-\0\0\0\17o\bD\93\0\0#q Tm6OZ/v/-\0\0\0\17o\bL\93\0\0#q 5dVzU58r-\0\0\0\17o\bT\93\0\0#q FtJ4e3yv-\0\0\0\17o\b\\93\0\0#q 9l6buQsj-\0\0\0\17o\bd\93\0\0#q iD1R2Np9-\0\0\0\17o\bl\93\0\0#q hTyeTt6+-\0\0\0\17o\bt\93\0\0#q 038W47SR-\0\0\0\17o\b|\93\0\0#q y6PY06E+-\0\0\0\17o\b\84\93\0\0#q P3JOgWaQ-\0\0\0\17o\b\8c\93\0\0#q hHAkkR/X-\0\0\0\17o\b\94\93\0\0#q h/2ncXif-\0\0\0\17o\b\9c\93\0\0#q 2afyf4Sv-\0\0\0\17o\b¤\93\0\0#q f5NvY3/U-\0\0\0\17o\b¬\93\0\0#q P3JXCqfa-\0\0\0\17o\b´\93\0\0#q xkZRL/J3-\0\0\0\17o\b¼\93\0\0#q CPDzFxNG-\0\0\0\17o\bÄ\93\0\0#q AzKcQTnd-\0\0\0\17o\bÌ\93\0\0#q cHPayzzb-\0\0\0\17o\bÔ\93\0\0#q vLxDd1Un-\0\0\0\17o\bÜ\93\0\0#q VvMbTw9B-\0\0\0\17o\bä\93\0\0#q ywcPDfsc-\0\0\0\17o\bì\93\0\0#q 2zm/nyMf-\0\0\0\17o\bô\93\0\0#q Dmf932T7-\0\0\0\17o\bü\93\0\0#q p87Krxgy-\0\0\0\17o\b\ 4\94\0\0#q eFftQ+tf-\0\0\0\17o\b\f\94\0\0#q Cfh7HZye-\0\0\0\17o\b\14\94\0\0#q E2aj8Ld3-\0\0\0\17o\b\1c\94\0\0#q bXw43xb8-\0\0\0\17o\b$\94\0\0#q 3/u3I6WS-\0\0\0\17o\b,\94\0\0#q ftIeD/xb-\0\0\0\17o\b4\94\0\0#q ZE/8bwT5-\0\0\0\17o\b<\94\0\0#q H1OjB9vD-\0\0\0\17o\bD\94\0\0#q c2fr8Q+u-\0\0\0\17o\bL\94\0\0#q 397X9Gf+-\0\0\0\17o\bT\94\0\0#q PSdnVOzp-\0\0\0\17o\b\\94\0\0#q P8PP+c7z-\0\0\0\17o\bd\94\0\0#q 52c3SP5G-\0\0\0\17o\bl\94\0\0#q tkn9kn/w-\0\0\0\17o\bt\94\0\0#q 7H1cp+5o-\0\0\0\17o\b|\94\0\0#q +HrPZPv7-\0\0\0\17o\b\84\94\0\0#q uTykTn4t-\0\0\0\17o\b\8c\94\0\0#q qMW5ktln-\0\0\0\17o\b\94\94\0\0#q N5X7r3/G-\0\0\0\17o\b\9c\94\0\0#q JDMMmGVM-\0\0\0\17o\b¤\94\0\0#q JN7siu/y-\0\0\0\17o\b¬\94\0\0#q fnqffmvS-\0\0\0\17o\b´\94\0\0#q XMu6ft6b-\0\0\0\17o\b¼\94\0\0#q OJlTaKqp-\0\0\0\17o\bÄ\94\0\0#q /L3k/g2n-\0\0\0\17o\bÌ\94\0\0#q c/7fv5SH-\0\0\0\17o\bÔ\94\0\0#q 4e7wSNdH-\0\0\0\17o\bÜ\94\0\0#q TnGSe7br-\0\0\0\17o\bä\94\0\0#q Kd9m2+rf-\0\0\0\17o\bì\94\0\0#q s+75c1sW-\0\0\0\17o\bô\94\0\0#q pbaXqOkk-\0\0\0\17o\bü\94\0\0#q pTo6LvZV-\0\0\0\17o\b\ 4\95\0\0#q DoKaaPJd-\0\0\0\17o\b\f\95\0\0#q rf6/wabf-\0\0\0\17o\b\14\95\0\0#q y//P+Ses-\0\0\0\17o\b\1c\95\0\0#q /dNe1Wv4-\0\0\0\17o\b$\95\0\0#q P05eaf0X-\0\0\0\17o\b,\95\0\0#q g/vluP7O-\0\0\0\17o\b4\95\0\0#q km/5eu4+-\0\0\0\17o\b<\95\0\0#q LJMnvJ6v-\0\0\0\17o\bD\95\0\0#q yfdiuNK0-\0\0\0\17o\bL\95\0\0#q Wbn2ZOW7-\0\0\0\17o\bT\95\0\0#q k/O5dVV1-\0\0\0\17o\b\\95\0\0#q S0twqcn6-\0\0\0\17o\bd\95\0\0#q SMKzp/2y-\0\0\0\17o\bl\95\0\0#q 3c5D8U7E-\0\0\0\17o\bt\95\0\0#q ssiWcxtq-\0\0\0\17o\b|\95\0\0#q ybtlfi2p-\0\0\0\17o\b\84\95\0\0#q 2J1xcn7G-\0\0\0\17o\b\8c\95\0\0#q nI/NwcrP-\0\0\0\17o\b\94\95\0\0#q +tfj8/sc-\0\0\0\17o\b\9c\95\0\0#q v7QZ8v3t-\0\0\0\17o\b¤\95\0\0#q jkfXsw7H-\0\0\0\17o\b¬\95\0\0#q k28PhyNk-\0\0\0\17o\b´\95\0\0#q cPY3e7To-\0\0\0\17o\b¼\95\0\0#q 4dLZXs52-\0\0\0\17o\bÄ\95\0\0#q SnOcp+0v-\0\0\0\17o\bÌ\95\0\0#q BzIaa0rM-\0\0\0\17o\bÔ\95\0\0#q ZV/r4j+X-\0\0\0\17o\bÜ\95\0\0#q 7dHd5Oqe-\0\0\0\17o\bä\95\0\0#q K/l2Ng6Z-\0\0\0\17o\bì\95\0\0#q Cf3R4Msi-\0\0\0\17o\bô\95\0\0#q MaozClqv-\0\0\0\17o\bü\95\0\0#q 621/Cfwf-\0\0\0\17o\b\ 4\96\0\0#q p/G2c4GO-\0\0\0\17o\b\f\96\0\0#q dLV9XSfL-\0\0\0\17o\b\14\96\0\0#q Mq1YzWax-\0\0\0\17o\b\1c\96\0\0#q rDFXxLOJ-\0\0\0\17o\b$\96\0\0#q 3YfCa+Wp-\0\0\0\17o\b,\96\0\0#q zeb8XWTm-\0\0\0\17o\b4\96\0\0#q +JzP+IIC-\0\0\0\17o\b<\96\0\0#q f93/kNaq-\0\0\0\17o\bD\96\0\0#q LaNrWSqi-\0\0\0\17o\bL\96\0\0#q ttajRqjb-\0\0\0\17o\bT\96\0\0#q apmqtpS2-\0\0\0\17o\b\\96\0\0#q qxVk1bUl-\0\0\0\17o\bd\96\0\0#q WpNqLRWp-\0\0\0\17o\bl\96\0\0#q ZqtJNKo1-\0\0\0\17o\bt\96\0\0#q U0ttRsy2-\0\0\0\17o\b|\96\0\0#q 0zVJqrG2-\0\0\0\17o\b\84\96\0\0#q wBY1sVoL-\0\0\0\17o\b\8c\96\0\0#q FUWJs1ik-\0\0\0\17o\b\94\96\0\0#q LFTK0am2-\0\0\0\17o\b\9c\96\0\0#q RVFYUrYN-\0\0\0\17o\b¤\96\0\0#q FpNtTCoN-\0\0\0\17o\b¬\96\0\0#q YjWpaFbG-\0\0\0\17o\b´\96\0\0#q 0TKLTDY1-\0\0\0\17o\b¼\96\0\0#q RrJSWwCV-\0\0\0\17o\bÄ\96\0\0#q U1K0mkrG-\0\0\0\17o\bÌ\96\0\0#q yUpUbZDV-\0\0\0\17o\bÔ\96\0\0#q ikMW0bZk-\0\0\0\17o\bÜ\96\0\0#q YotZMmZG-\0\0\0\17o\bä\96\0\0#q LRsY0KIV-\0\0\0\17o\bì\96\0\0#q iLGjRsUW-\0\0\0\17o\bô\96\0\0#q xtRUzFiT-\0\0\0\17o\bü\96\0\0#q QaisJEzI-\0\0\0\17o\b\ 4\97\0\0#q aWTNYIjU-\0\0\0\17o\b\f\97\0\0#q RhTZsyUW-\0\0\0\17o\b\14\97\0\0#q xsUUlY2o-\0\0\0\17o\b\1c\97\0\0#q yRsm1G1k-\0\0\0\17o\b$\97\0\0#q 1MhLM2Q2-\0\0\0\17o\b,\97\0\0#q gWRRMpDG-\0\0\0\17o\b4\97\0\0#q E0zA0ktF-\0\0\0\17o\b<\97\0\0#q BaZGyBET-\0\0\0\17o\bD\97\0\0#q CCMgSEaj-\0\0\0\17o\bL\97\0\0#q EWjaJKU2-\0\0\0\17o\bT\97\0\0#q NqZFooxi-\0\0\0\17o\b\\97\0\0#q okSIyMMU-\0\0\0\17o\bd\97\0\0#q IWEaiMhQ-\0\0\0\17o\bl\97\0\0#q oIiiqQmI-\0\0\0\17o\bt\97\0\0#q YEkRhFpE-\0\0\0\17o\b|\97\0\0#q hYqSGCLF-\0\0\0\17o\b\84\97\0\0#q CKEMEEGT-\0\0\0\17o\b\8c\97\0\0#q 9mvzf2fu-\0\0\0\17o\b\94\97\0\0#q M6SFZC4Q-\0\0\0\17o\b\9c\97\0\0#q d9fugRia-\0\0\0\17o\b¤\97\0\0#q 8BBCIvlh-\0\0\0\17o\b¬\97\0\0#q /UPmUoYB-\0\0\0\17o\b´\97\0\0#q ieRgSMiP-\0\0\0\17o\b¼\97\0\0#q A/zM5kG8-\0\0\0\17o\bÄ\97\0\0#q 0OwWXxVB-\0\0\0\17o\bÌ\97\0\0#q kDKCgX+v-\0\0\0\17o\bÔ\97\0\0#q VRm/7UQI-\0\0\0\17o\bÜ\97\0\0#q DInnOZ/v-\0\0\0\17o\bä\97\0\0#q uDq/4D8+-\0\0\0\17o\bì\97\0\0#q p51Kq1Jw-\0\0\0\17o\bô\97\0\0#q /kWTzvI4-\0\0\0\17o\bü\97\0\0#q d9a7SyLf-\0\0\0\17o\b\ 4\98\0\0#q WstuvCsR-\0\0\0\17o\b\f\98\0\0#q 8vO+Ve9W-\0\0\0\17o\b\14\98\0\0#q pNJv7s7+-\0\0\0\17o\b\1c\98\0\0#q fuL8JV+d-\0\0\0\17o\b$\98\0\0#q boUuDPzE-\0\0\0\17o\b,\98\0\0#q R7chJZ58-\0\0\0\17o\b4\98\0\0#q smGb6bfH-\0\0\0\17o\b<\98\0\0#q J+/wytuI-\0\0\0\17o\bD\98\0\0#q dr6d7a47-\0\0\0\17o\bL\98\0\0#q bq+tvU9u-\0\0\0\17o\bT\98\0\0#q bKTxSujp-\0\0\0\17o\b\\98\0\0#q WpbkOGAr-\0\0\0\17o\bd\98\0\0#q KSYHFiSS-\0\0\0\17o\bl\98\0\0#q fHgG2RPc-\0\0\0\17o\bt\98\0\0#q G5lSlkRG-\0\0\0\17o\b|\98\0\0#q brdlTVFV-\0\0\0\17o\b\84\98\0\0#q eA1pC41W-\0\0\0\17o\b\8c\98\0\0#q V8XE0QYW-\0\0\0\17o\b\94\98\0\0#q bMrorO7D-\0\0\0\17o\b\9c\98\0\0#q WTBoBRpg-\0\0\0\17o\b¤\98\0\0#q yaqKdSFI-\0\0\0\17o\b¬\98\0\0#q tuzQ+Qpm-\0\0\0\17o\b´\98\0\0#q RRpSUkgk-\0\0\0\17o\b¼\98\0\0#q AkgVhutQ-\0\0\0\17o\bÄ\98\0\0#q k5vCYVVC-\0\0\0\17o\bÌ\98\0\0#q 2pCBtTYc-\0\0\0\17o\bÔ\98\0\0#q nZA1HRmQ-\0\0\0\17o\bÜ\98\0\0#q 5KEKUJCj-\0\0\0\17o\bä\98\0\0#q E441UykK-\0\0\0\17o\bì\98\0\0#q rp04rW12-\0\0\0\17o\bô\98\0\0#q EaksMjEq-\0\0\0\17o\bü\98\0\0#q CmiOKKAi-\0\0\0\17o\b\ 4\99\0\0#q IoVAjHHG-\0\0\0\17o\b\f\99\0\0#q 4Oy2vMLF-\0\0\0\17o\b\14\99\0\0#q phr2skml-\0\0\0\17o\b\1c\99\0\0#q tbAj2yHt-\0\0\0\17o\b$\99\0\0#q o+/C1qRS-\0\0\0\17o\b,\99\0\0#q HQI0oYJy-\0\0\0\17o\b4\99\0\0#q 4xPAK0hB-\0\0\0\17o\b<\99\0\0#q hkBkzKGI-\0\0\0\17o\bD\99\0\0#q DKfqR5fu-\0\0\0\17o\bL\99\0\0#q 9Rb6jriP-\0\0\0\17o\bT\99\0\0#q wFfrT57/-\0\0\0\17o\b\\99\0\0#q BORRUS2u-\0\0\0\17o\bd\99\0\0#q xaWe/23v-\0\0\0\17o\bl\99\0\0#q w/VDRJUN-\0\0\0\17o\bt\99\0\0#q DKbcoql9-\0\0\0\17o\b|\99\0\0#q hR1STaoU-\0\0\0\17o\b\84\99\0\0#q KFJAhAE0-\0\0\0\17o\b\8c\99\0\0#q AZZLjCTR-\0\0\0\17o\b\94\99\0\0#q 5qxIgYLh-\0\0\0\17o\b\9c\99\0\0#q yUQktqwQ-\0\0\0\17o\b¤\99\0\0#q 0LakMUoD-\0\0\0\17o\b¬\99\0\0#q ZaYvf1dL-\0\0\0\17o\b´\99\0\0#q 7/UTZGZS-\0\0\0\17o\b¼\99\0\0#q t/h0bF8b-\0\0\0\17o\bÄ\99\0\0#q OrkShINm-\0\0\0\17o\bÌ\99\0\0#q UC5JVQoU-\0\0\0\17o\bÔ\99\0\0#q LQdWFmEx-\0\0\0\17o\bÜ\99\0\0#q ZOwxx6b/-\0\0\0\17o\bä\99\0\0#q nrJEIzcA-\0\0\0\17o\bì\99\0\0#q TXe9RX4u-\0\0\0\17o\bô\99\0\0#q AjQuZbT7-\0\0\0\17o\bü\99\0\0#q +8dvCcTe-\0\0\0\17o\b\ 4\9a\0\0#q 970nE51j-\0\0\0\17o\b\f\9a\0\0#q cmac2Wkt-\0\0\0\17o\b\14\9a\0\0#q rRIBr8KK-\0\0\0\17o\b\1c\9a\0\0#q qmFiShCh-\0\0\0\17o\b$\9a\0\0#q QWsTPnID-\0\0\0\17o\b,\9a\0\0#q 4M0CSyZe-\0\0\0\17o\b4\9a\0\0#q 7rltE0/b-\0\0\0\17o\b<\9a\0\0#q IvrM+YcP-\0\0\0\17o\bD\9a\0\0#q thAH85JJ-\0\0\0\17o\bL\9a\0\0#q 219mY5mj-\0\0\0\17o\bT\9a\0\0#q PQZhiZDY-\0\0\0\17o\b\\9a\0\0#q ZA1DzBlA-\0\0\0\17o\bd\9a\0\0#q jUcjXvLL-\0\0\0\17o\bl\9a\0\0#q 8BABMGVQ-\0\0\0\17o\bt\9a\0\0#q h/A/vPwU-\0\0\0\17o\b|\9a\0\0#q fqX/5kl6-\0\0\0\17o\b\84\9a\0\0#q UGGJn8FC-\0\0\0\17o\b\8c\9a\0\0#q P2GG+Qce-\0\0\0\17o\b\94\9a\0\0#q VRTNvxzt-\0\0\0\17o\b\9c\9a\0\0#q s75paBK7-\0\0\0\17o\b¤\9a\0\0#q NzM7TzVV-\0\0\0\17o\b¬\9a\0\0#q UzlIqqif-\0\0\0\17o\b´\9a\0\0#q 8NJKRImR-\0\0\0\17o\b¼\9a\0\0#q 08cg2cHr-\0\0\0\17o\bÄ\9a\0\0#q QWxKYcNh-\0\0\0\17o\bÌ\9a\0\0#q OjnHzz+Y-\0\0\0\17o\bÔ\9a\0\0#q PyaL9PWN-\0\0\0\17o\bÜ\9a\0\0#q rPR37fFa-\0\0\0\17o\bä\9a\0\0#q Hr23fpcy-\0\0\0\17o\bì\9a\0\0#q +YYGWlsu-\0\0\0\17o\bô\9a\0\0#q Qf4q7bXF-\0\0\0\17o\bü\9a\0\0#q jzjZ66t5-\0\0\0\17o\b\ 4\9b\0\0#q DEnZsqLU-\0\0\0\17o\b\f\9b\0\0#q ixYlKiy0-\0\0\0\17o\b\14\9b\0\0#q ibZsjalZ-\0\0\0\17o\b\1c\9b\0\0#q amaizKs1-\0\0\0\17o\b$\9b\0\0#q laSpmk2r-\0\0\0\17o\b,\9b\0\0#q atltZbWS-\0\0\0\17o\b4\9b\0\0#q ta0bazUr-\0\0\0\17o\b<\9b\0\0#q FJs0ttal-\0\0\0\17o\bD\9b\0\0#q azaQUhKg-\0\0\0\17o\bL\9b\0\0#q lSUAqyQo-\0\0\0\17o\bT\9b\0\0#q WSKtotVY-\0\0\0\17o\b\\9b\0\0#q tSmoyW22-\0\0\0\17o\bd\9b\0\0#q 0arUsoo1-\0\0\0\17o\bl\9b\0\0#q tpLaNtMs-\0\0\0\17o\bt\9b\0\0#q mtaaYsVT-\0\0\0\17o\b|\9b\0\0#q bS2UtJgr-\0\0\0\17o\b\84\9b\0\0#q am22rCkS-\0\0\0\17o\b\8c\9b\0\0#q qQSxISyQ-\0\0\0\17o\b\94\9b\0\0#q S0FSSyM1-\0\0\0\17o\b\9c\9b\0\0#q KaS2laa0-\0\0\0\17o\b¤\9b\0\0#q lhNFGhYW-\0\0\0\17o\b¬\9b\0\0#q igRULZFi-\0\0\0\17o\b´\9b\0\0#q yykqoCxF-\0\0\0\17o\b¼\9b\0\0#q BKRFSItC-\0\0\0\17o\bÄ\9b\0\0#q rIUWLKak-\0\0\0\17o\bÌ\9b\0\0#q ppY2WbY2-\0\0\0\17o\bÔ\9b\0\0#q tps1pm2y-\0\0\0\17o\bÜ\9b\0\0#q mqbabbLN-\0\0\0\17o\bä\9b\0\0#q iZojaZkr-\0\0\0\17o\bì\9b\0\0#q FMKZrKza-\0\0\0\17o\bô\9b\0\0#q WVptZtpp-\0\0\0\17o\bü\9b\0\0#q ijZNM2Sz-\0\0\0\17o\b\ 4\9c\0\0#q KmmxsRab-\0\0\0\17o\b\f\9c\0\0#q LZs2K1NV-\0\0\0\17o\b\14\9c\0\0#q qWqEzMlJ-\0\0\0\17o\b\1c\9c\0\0#q tmqVRjVN-\0\0\0\17o\b$\9c\0\0#q ZWllSVLM-\0\0\0\17o\b,\9c\0\0#q 0LNNZpal-\0\0\0\17o\b4\9c\0\0#q ZokSlltL-\0\0\0\17o\b<\9c\0\0#q asJRUqop-\0\0\0\17o\bD\9c\0\0#q UpZIElIE-\0\0\0\17o\bL\9c\0\0#q lkqrYjVi-\0\0\0\17o\bT\9c\0\0#q 0aSNqWmL-\0\0\0\17o\b\\9c\0\0#q KpslJtFR-\0\0\0\17o\bd\9c\0\0#q BbSbbMy1-\0\0\0\17o\bl\9c\0\0#q KoplRspa-\0\0\0\17o\bt\9c\0\0#q NlNUrNUa-\0\0\0\17o\b|\9c\0\0#q aak2mpVF-\0\0\0\17o\b\84\9c\0\0#q TZVGxk2a-\0\0\0\17o\b\8c\9c\0\0#q GTSWmzaC-\0\0\0\17o\b\94\9c\0\0#q pKbNJW2W-\0\0\0\17o\b\9c\9c\0\0#q qWqKMmNk-\0\0\0\17o\b¤\9c\0\0#q 1GkKUtk2-\0\0\0\17o\b¬\9c\0\0#q ysrLNs2W-\0\0\0\17o\b´\9c\0\0#q wyrMqKpq-\0\0\0\17o\b¼\9c\0\0#q ZmmmKxtm-\0\0\0\17o\bÄ\9c\0\0#q qayKZlUk-\0\0\0\17o\bÌ\9c\0\0#q qNltKlRS-\0\0\0\17o\bÔ\9c\0\0#q m2StUtbL-\0\0\0\17o\bÜ\9c\0\0#q WxTNUqls-\0\0\0\17o\bä\9c\0\0#q po1ZtltN-\0\0\0\17o\bì\9c\0\0#q KRIqGm0t-\0\0\0\17o\bô\9c\0\0#q lRtNmmal-\0\0\0\17o\bü\9c\0\0#q NGZYybMo-\0\0\0\17o\b\ 4\9d\0\0#q zNNKkxpI-\0\0\0\17o\b\f\9d\0\0#q 2i2ULJqU-\0\0\0\17o\b\14\9d\0\0#q rGyyxJsl-\0\0\0\17o\b\1c\9d\0\0#q NGpZmtNS-\0\0\0\17o\b$\9d\0\0#q srNWZY22-\0\0\0\17o\b,\9d\0\0#q 2yttmrVN-\0\0\0\17o\b4\9d\0\0#q TbWZZMms-\0\0\0\17o\b<\9d\0\0#q 2lllbKst-\0\0\0\17o\bD\9d\0\0#q pmrNMUmp-\0\0\0\17o\bL\9d\0\0#q KqUtptKy-\0\0\0\17o\bT\9d\0\0#q aplKbRSb-\0\0\0\17o\b\\9d\0\0#q JbLNplZt-\0\0\0\17o\bd\9d\0\0#q qM1KKbab-\0\0\0\17o\bl\9d\0\0#q U1ZSUAmU-\0\0\0\17o\bt\9d\0\0#q axpZjUkh-\0\0\0\17o\b|\9d\0\0#q UmyZmxbR-\0\0\0\17o\b\84\9d\0\0#q SltNsrMq-\0\0\0\17o\b\8c\9d\0\0#q qVbNtslS-\0\0\0\17o\b\94\9d\0\0#q ptEzVrMq-\0\0\0\17o\b\9c\9d\0\0#q aazNpmkq-\0\0\0\17o\b¤\9d\0\0#q ZsxExpJS-\0\0\0\17o\b¬\9d\0\0#q k1itlWqa-\0\0\0\17o\b´\9d\0\0#q y1KppYop-\0\0\0\17o\b¼\9d\0\0#q MUkkkmbL-\0\0\0\17o\bÄ\9d\0\0#q NlMymsxS-\0\0\0\17o\bÌ\9d\0\0#q 0TKlNjKb-\0\0\0\17o\bÔ\9d\0\0#q A1TLLLU0-\0\0\0\17o\bÜ\9d\0\0#q lTWalTNM-\0\0\0\17o\bä\9d\0\0#q ilKmys2Z-\0\0\0\17o\bì\9d\0\0#q Y2mqViUV-\0\0\0\17o\bô\9d\0\0#q KSyksmap-\0\0\0\17o\bü\9d\0\0#q VNqSJRqx-\0\0\0\17o\b\ 4\9e\0\0#q ZSyylMlS-\0\0\0\17o\b\f\9e\0\0#q yLFSWRUl-\0\0\0\17o\b\14\9e\0\0#q iWKLJPR4-\0\0\0\17o\b\1c\9e\0\0#q 87tzxPbv-\0\0\0\17o\b$\9e\0\0#q pf6y887/-\0\0\0\17o\b,\9e\0\0#q zT6h9Umf-\0\0\0\17o\b4\9e\0\0#q Sx2PLPXL-\0\0\0\17o\b<\9e\0\0#q E2t67TNb-\0\0\0\17o\bD\9e\0\0#q +d8616jt-\0\0\0\17o\bL\9e\0\0#q tPkeNmjO-\0\0\0\17o\bT\9e\0\0#q nd2bULjn-\0\0\0\17o\b\\9e\0\0#q N/5x19I3-\0\0\0\17o\bd\9e\0\0#q dES+7KaA-\0\0\0\17o\bl\9e\0\0#q HB8sg9Oa-\0\0\0\17o\bt\9e\0\0#q IHogcFmo-\0\0\0\17o\b|\9e\0\0#q wcPkd56v-\0\0\0\17o\b\84\9e\0\0#q 4UKiqJhg-\0\0\0\17o\b\8c\9e\0\0#q oAU9AHxY-\0\0\0\17o\b\94\9e\0\0#q iJSboAuO-\0\0\0\17o\b\9c\9e\0\0#q 2tYkauzY-\0\0\0\17o\b¤\9e\0\0#q owUsXVGV-\0\0\0\17o\b¬\9e\0\0#q lc0nYOpi-\0\0\0\17o\b´\9e\0\0#q hEKtGCEL-\0\0\0\17o\b¼\9e\0\0#q stXcQR40-\0\0\0\17o\bÄ\9e\0\0#q ZwxcKms+-\0\0\0\17o\bÌ\9e\0\0#q 7pFjCoGn-\0\0\0\17o\bÔ\9e\0\0#q lWDFSsND-\0\0\0\17o\bÜ\9e\0\0#q I2M37zbD-\0\0\0\17o\bä\9e\0\0#q fLv3avdl-\0\0\0\17o\bì\9e\0\0#q nZZ+BC52-\0\0\0\17o\bô\9e\0\0#q UzTjZKLt-\0\0\0\17o\bü\9e\0\0#q h+Xpejoa-\0\0\0\17o\b\ 4\9f\0\0#q OcVlvLIp-\0\0\0\17o\b\f\9f\0\0#q Bt0bICZG-\0\0\0\17o\b\14\9f\0\0#q x12W3Mem-\0\0\0\17o\b\1c\9f\0\0#q DI+BEABp-\0\0\0\17o\b$\9f\0\0#q XP87P4rJ-\0\0\0\17o\b,\9f\0\0#q iq/on3uc-\0\0\0\17o\b4\9f\0\0#q mKl3H2qk-\0\0\0\17o\b<\9f\0\0#q VoDOXeBV-\0\0\0\17o\bD\9f\0\0#q IHThRlRW-\0\0\0\17o\bL\9f\0\0#q oIeneSsF-\0\0\0\17o\bT\9f\0\0#q b5P81QBg-\0\0\0\17o\b\\9f\0\0#q JOLBARAX-\0\0\0\17o\bd\9f\0\0#q 3nH8/r/f-\0\0\0\17o\bl\9f\0\0#q 8w3ilqIG-\0\0\0\17o\bt\9f\0\0#q YIs2ETpW-\0\0\0\17o\b|\9f\0\0#q jUrVBz3a-\0\0\0\17o\b\84\9f\0\0#q p+abPKWH-\0\0\0\17o\b\8c\9f\0\0#q pLM3ltPx-\0\0\0\17o\b\94\9f\0\0#q /+N/Wbt1-\0\0\0\17o\b\9c\9f\0\0#q NbzHN6yn-\0\0\0\17o\b¤\9f\0\0#q 49NkVXLj-\0\0\0\17o\b¬\9f\0\0#q Hsi0YsxW-\0\0\0\17o\b´\9f\0\0#q Yxt0mpP5-\0\0\0\17o\b¼\9f\0\0#q liJ0D/BK-\0\0\0\17o\bÄ\9f\0\0#q 861JPxVJ-\0\0\0\17o\bÌ\9f\0\0#q KrrKd1DE-\0\0\0\17o\bÔ\9f\0\0#q sjkf2fd+-\0\0\0\17o\bÜ\9f\0\0#q E1sqc+0G-\0\0\0\17o\bä\9f\0\0#q 02nKaZP3-\0\0\0\17o\bì\9f\0\0#q /wWYV/JK-\0\0\0\17o\bô\9f\0\0#q hVSKU/9f-\0\0\0\17o\bü\9f\0\0#q 2kP+Es6z-\0\0\0\17o\b\ 4 \0\0#q 7k/gUksW-\0\0\0\17o\b\f \0\0#q JYe1an/9-\0\0\0\17o\b\14 \0\0#q 21pBsrUd-\0\0\0\17o\b\1c \0\0#q XyfSH+6h-\0\0\0\17o\b\0\0#q 3N4k/jE5-\0\0\0\17o\b\0\0#q ItS1VTka-\0\0\0\17o\b\0\0#q jSXnZgf5-\0\0\0\17o\b\0\0#q UtgpKk2j-\0\0\0\17o\b\0\0#q axZibyd4-\0\0\0\17o\b\0\0#q 83LeR6x6-\0\0\0\17o\b\0\0#q +RPw/T0l-\0\0\0\17o\b\0\0#q WWVLOy4k-\0\0\0\17o\b\0\0#q 54wllqVW-\0\0\0\17o\b\0\0#q tTTUvHd5-\0\0\0\17o\b\0\0#q G6VXZwcL-\0\0\0\17o\b\0\0#q VpZCyOyS-\0\0\0\17o\b\84 \0\0#q qT/VUqI2-\0\0\0\17o\b\8c \0\0#q a3OjB+BJ-\0\0\0\17o\b\94 \0\0#q /c5vJ17x-\0\0\0\17o\b\9c \0\0#q aYezrA2W-\0\0\0\17o\b¤ \0\0#q Tu8JipWJ-\0\0\0\17o\b¬ \0\0#q 34en5WST-\0\0\0\17o\b´ \0\0#q hOGGFkqs-\0\0\0\17o\b¼ \0\0#q lgxWw1Ri-\0\0\0\17o\bÄ \0\0#q yit2TjUk-\0\0\0\17o\bÌ \0\0#q 4m2SJs+3-\0\0\0\17o\bÔ \0\0#q WFSYNQcR-\0\0\0\17o\bÜ \0\0#q 9lN+j4j1-\0\0\0\17o\bä \0\0#q noP93VyH-\0\0\0\17o\bì \0\0#q CfI7cNMS-\0\0\0\17o\bô \0\0#q ZzH2ZNRT-\0\0\0\17o\bü \0\0#q hulseIk/-\0\0\0\17o\b\ 4¡\0\0#q yU5KdXt9-\0\0\0\17o\b\f¡\0\0#q v7zmbk+g-\0\0\0\17o\b\14¡\0\0#q jtO690cS-\0\0\0\17o\b\1c¡\0\0#q QSoFfmme-\0\0\0\17o\b\0\0#q BxfI+vqG-\0\0\0\17o\b\0\0#q sirzNH5C-\0\0\0\17o\b\0\0#q +xTw2WGG-\0\0\0\17o\b\0\0#q HE0X+u17-\0\0\0\17o\b\0\0#q 6U0uLoPT-\0\0\0\17o\b\0\0#q OEn+qsbD-\0\0\0\17o\b\0\0#q vaA4s+lX-\0\0\0\17o\b\0\0#q 8EqpJzPr-\0\0\0\17o\b\0\0#q H0sloeXR-\0\0\0\17o\b\0\0#q 1c9OiqmX-\0\0\0\17o\b\0\0#q er0zgSe5-\0\0\0\17o\b\0\0#q ZrT6ScTD-\0\0\0\17o\b\84¡\0\0#q ZPxHCbPN-\0\0\0\17o\b\8c¡\0\0#q 0R5uo6u0-\0\0\0\17o\b\94¡\0\0#q 7SaTyP+1-\0\0\0\17o\b\9c¡\0\0#q LS2qfont-\0\0\0\17o\b¤¡\0\0#q I4sTqU/n-\0\0\0\17o\b¬¡\0\0#q Onq3gQE3-\0\0\0\17o\b´¡\0\0#q PlZlmWZR-\0\0\0\17o\b¼¡\0\0#q JYUsqyJ2-\0\0\0\17o\bÄ¡\0\0#q P6PJ+L5/-\0\0\0\17o\bÌ¡\0\0#q D8Jssqnh-\0\0\0\17o\bÔ¡\0\0#q 8+u+2ca0-\0\0\0\17o\bÜ¡\0\0#q nxwRAJ32-\0\0\0\17o\bä¡\0\0#q knCcvhmY-\0\0\0\17o\bì¡\0\0#q ySY8DlHw-\0\0\0\17o\bô¡\0\0#q PRZOyxVS-\0\0\0\17o\bü¡\0\0#q qrmc5yn+-\0\0\0\17o\b\ 4¢\0\0#q vVN35FkO-\0\0\0\17o\b\f¢\0\0#q yvNZM/OR-\0\0\0\17o\b\14¢\0\0#q PMmjIkxN-\0\0\0\17o\b\1c¢\0\0#q tLVRf1qQ-\0\0\0\17o\b\0\0#q 3ksieqJL-\0\0\0\17o\b\0\0#q 38h25Pbe-\0\0\0\17o\b\0\0#q ROj0cV6G-\0\0\0\17o\b\0\0#q FHWIPN2q-\0\0\0\17o\b\0\0#q xXorv7Oc-\0\0\0\17o\b\0\0#q ifauTZXz-\0\0\0\17o\b\0\0#q YwjFM+LP-\0\0\0\17o\b\0\0#q NWr/a58p-\0\0\0\17o\b\0\0#q 5xuD9uXn-\0\0\0\17o\b\0\0#q 6b8HdXj7-\0\0\0\17o\b\0\0#q TiR9vZIw-\0\0\0\17o\b\0\0#q 7HVkmGI8-\0\0\0\17o\b\84¢\0\0#q 569eqqvk-\0\0\0\17o\b\8c¢\0\0#q P0vhi5cx-\0\0\0\17o\b\94¢\0\0#q U9euWvzV-\0\0\0\17o\b\9c¢\0\0#q 52lG6lLC-\0\0\0\17o\b¤¢\0\0#q SmYWK8co-\0\0\0\17o\b¬¢\0\0#q eiN0jxIm-\0\0\0\17o\b´¢\0\0#q MiT1bT9F-\0\0\0\17o\b¼¢\0\0#q ffylTz7S-\0\0\0\17o\bÄ¢\0\0#q Rs5vwq1O-\0\0\0\17o\bÌ¢\0\0#q E1BPxdk4-\0\0\0\17o\bÔ¢\0\0#q PSI/RJu9-\0\0\0\17o\bÜ¢\0\0#q WoSzsTH6-\0\0\0\17o\bä¢\0\0#q v0nJ8nrz-\0\0\0\17o\bì¢\0\0#q i+ITko3S-\0\0\0\17o\bô¢\0\0#q qSvxOJ2n-\0\0\0\17o\bü¢\0\0#q ukqKkpNL-\0\0\0\17o\b\ 4£\0\0#q Hec/hfS3-\0\0\0\17o\b\f£\0\0#q JEnzWJ39-\0\0\0\17o\b\14£\0\0#q PoktklpW-\0\0\0\17o\b\1c£\0\0#q MyyPh/0T-\0\0\0\17o\b\0\0#q c9E9Kdo5-\0\0\0\17o\b\0\0#q IemeY1NR-\0\0\0\17o\b\0\0#q +smI8T/d-\0\0\0\17o\b\0\0#q PNYrc5nX-\0\0\0\17o\b\0\0#q v9t9sHUa-\0\0\0\17o\b\0\0#q mQsqCq1P-\0\0\0\17o\b\0\0#q emmmTVTe-\0\0\0\17o\b\0\0#q R5UqqSop-\0\0\0\17o\b\0\0#q SlKWFOYa-\0\0\0\17o\b\0\0#q L87JVmxy-\0\0\0\17o\b\0\0#q cMd8wy5f-\0\0\0\17o\b\0\0#q M2Yw/RXl-\0\0\0\17o\b\84£\0\0#q 8vbb5SVb-\0\0\0\17o\b\8c£\0\0#q u3zORyjj-\0\0\0\17o\b\94£\0\0#q G3DhlMKM-\0\0\0\17o\b\9c£\0\0#q 111l6sSk-\0\0\0\17o\b¤£\0\0#q +BAMLpSj-\0\0\0\17o\b¬£\0\0#q qdn8I5U+-\0\0\0\17o\b´£\0\0#q moXwXX5p-\0\0\0\17o\b¼£\0\0#q 0Z+Ev8Zh-\0\0\0\17o\bÄ£\0\0#q 48/wLRnq-\0\0\0\17o\bÌ£\0\0#q sVOvKupu-\0\0\0\17o\bÔ£\0\0#q 7tEKFfaN-\0\0\0\17o\bÜ£\0\0#q wYH8/Ci1-\0\0\0\17o\bä£\0\0#q xHTYAbRE-\0\0\0\17o\bì£\0\0#q OEoEoBMb-\0\0\0\17o\bô£\0\0#q tSSnI7Qn-\0\0\0\17o\bü£\0\0#q HvPpNvIr-\0\0\0\17o\b\ 4¤\0\0#q SaUlVwno-\0\0\0\17o\b\f¤\0\0#q cA2T6JPx-\0\0\0\17o\b\14¤\0\0#q Oc9Hjj80-\0\0\0\17o\b\1c¤\0\0#q 5OqKqKTK-\0\0\0\17o\b\0\0#q Mtvz7PuS-\0\0\0\17o\b\0\0#q a/Ze7Y4T-\0\0\0\17o\b\0\0#q Xj0keaMV-\0\0\0\17o\b\0\0#q JIBO6TUt-\0\0\0\17o\b\0\0#q Nbu22/rK-\0\0\0\17o\b\0\0#q Ik20pV+z-\0\0\0\17o\b\0\0#q X62sR+LT-\0\0\0\17o\b\0\0#q YvA/nP8S-\0\0\0\17o\b\0\0#q /x/z/y/t-\0\0\0\17o\b\0\0#q /m/n/s/o-\0\0\0\17o\b\0\0#q zh/TTT0z-\0\0\0\17o\b\0\0#q NN8l832e-\0\0\0\17o\b\84¤\0\0#q eZrP1ft7-\0\0\0\17o\b\8c¤\0\0#q l855ZP0+-\0\0\0\17o\b\94¤\0\0#q 7P2fht+M-\0\0\0\17o\b\9c¤\0\0#q ct5xlvGp-\0\0\0\17o\b¤¤\0\0#q yPw3YySS-\0\0\0\17o\b¬¤\0\0#q q45XU1bS-\0\0\0\17o\b´¤\0\0#q yrab5ycr-\0\0\0\17o\b¼¤\0\0#q jjicbfT6-\0\0\0\17o\bĤ\0\0#q o/FPun2h-\0\0\0\17o\b̤\0\0#q kqLVQZw1-\0\0\0\17o\bÔ¤\0\0#q OrdGyq/A-\0\0\0\17o\bܤ\0\0#q mFG8iUYm-\0\0\0\17o\bä¤\0\0#q GjHDOy2Y-\0\0\0\17o\bì¤\0\0#q stLLBnKV-\0\0\0\17o\bô¤\0\0#q ZJvoZpv/-\0\0\0\17o\bü¤\0\0#q dskjgWfX-\0\0\0\17o\b\ 4¥\0\0#q 0jmmn+XT-\0\0\0\17o\b\f¥\0\0#q 9EpEKhcA-\0\0\0\17o\b\14¥\0\0#q UlB/eYz+-\0\0\0\17o\b\1c¥\0\0#q SbNu4qNS-\0\0\0\17o\b\0\0#q SEC7hItG-\0\0\0\17o\b\0\0#q yfhotsOA-\0\0\0\17o\b\0\0#q f9SwdHA8-\0\0\0\17o\b\0\0#q hOJqR/Dy-\0\0\0\17o\b\0\0#q aGA0EVqI-\0\0\0\17o\b\0\0#q SKD6AWMb-\0\0\0\17o\b\0\0#q IK+iFwiW-\0\0\0\17o\b\0\0#q ZNpCAwgF-\0\0\0\17o\b\0\0#q lSy1TRu/-\0\0\0\17o\b\0\0#q m2NnOmMX-\0\0\0\17o\b\0\0#q FK6UuExR-\0\0\0\17o\b\0\0#q VkRZMoar-\0\0\0\17o\b\84¥\0\0#q /6uXRP9P-\0\0\0\17o\b\8c¥\0\0#q 7ZP87LZw-\0\0\0\17o\b\94¥\0\0#q Yx0FWaYU-\0\0\0\17o\b\9c¥\0\0#q 5vlVTqmn-\0\0\0\17o\b¤¥\0\0#q h1eev7sz-\0\0\0\17o\b¬¥\0\0#q JOiq4lea-\0\0\0\17o\b´¥\0\0#q II1cL9t5-\0\0\0\17o\b¼¥\0\0#q 1vM2+LzX-\0\0\0\17o\bÄ¥\0\0#q lfVqKWyp-\0\0\0\17o\bÌ¥\0\0#q WvCVPQwS-\0\0\0\17o\bÔ¥\0\0#q cjU2St+k-\0\0\0\17o\bÜ¥\0\0#q Oba054lw-\0\0\0\17o\bä¥\0\0#q kpIqTJm2-\0\0\0\17o\bì¥\0\0#q mrtWuoYN-\0\0\0\17o\bô¥\0\0#q ioqjXh9Z-\0\0\0\17o\bü¥\0\0#q Ccg4fauR-\0\0\0\17o\b\ 4¦\0\0#q yifOQnf6-\0\0\0\17o\b\f¦\0\0#q SGRSfxqd-\0\0\0\17o\b\14¦\0\0#q VrKlWU2q-\0\0\0\17o\b\1c¦\0\0#q UzZplGsp-\0\0\0\17o\b\0\0#q rUmLRsRa-\0\0\0\17o\b\0\0#q jVG1FqI0-\0\0\0\17o\b\0\0#q mwhqNsVY-\0\0\0\17o\b\0\0#q 0VqNYxgA-\0\0\0\17o\b\0\0#q SIkzAhPb-\0\0\0\17o\b\0\0#q KKjCrJLV-\0\0\0\17o\b\0\0#q vcYYOJOH-\0\0\0\17o\b\0\0#q +vt9D6MO-\0\0\0\17o\b\0\0#q VhCbzFWO-\0\0\0\17o\b\0\0#q 4yRsEfXv-\0\0\0\17o\b\0\0#q zBp0P+0m-\0\0\0\17o\b\0\0#q 6q/l61TU-\0\0\0\17o\b\84¦\0\0#q NMPwDbP4-\0\0\0\17o\b\8c¦\0\0#q A4ZborpX-\0\0\0\17o\b\94¦\0\0#q A29kUhEL-\0\0\0\17o\b\9c¦\0\0#q Xpos8r3d-\0\0\0\17o\b¤¦\0\0#q rnud3G50-\0\0\0\17o\b¬¦\0\0#q Si5VJtef-\0\0\0\17o\b´¦\0\0#q j+9ZVvVR-\0\0\0\17o\b¼¦\0\0#q lXCz1Xg6-\0\0\0\17o\bĦ\0\0#q KThMk4mm-\0\0\0\17o\b̦\0\0#q /BxViVUb-\0\0\0\17o\bÔ¦\0\0#q KrUw0nSU-\0\0\0\17o\bܦ\0\0#q xVm8OjGc-\0\0\0\17o\bä¦\0\0#q hs/DpN49-\0\0\0\17o\bì¦\0\0#q 5AGe5+K5-\0\0\0\17o\bô¦\0\0#q OvXzvbUN-\0\0\0\17o\bü¦\0\0#q NMVStZlS-\0\0\0\17o\b\ 4§\0\0#q c5ucwd3W-\0\0\0\17o\b\f§\0\0#q l4u1dm3W-\0\0\0\17o\b\14§\0\0#q lJobdG41-\0\0\0\17o\b\1c§\0\0#q bAbKyodI-\0\0\0\17o\b\0\0#q BU0lRgRg-\0\0\0\17o\b\0\0#q W0aw1kwV-\0\0\0\17o\b\0\0#q rIutSyFW-\0\0\0\17o\b\0\0#q Nio1Fc3U-\0\0\0\17o\b\0\0#q KqqpRju5-\0\0\0\17o\b\0\0#q Aadp5fl5-\0\0\0\17o\b\0\0#q udRTjI1J-\0\0\0\17o\b\0\0#q PdwpAh5+-\0\0\0\17o\b\0\0#q pEn8lE/g-\0\0\0\17o\b\0\0#q wPC4SP7y-\0\0\0\17o\b\0\0#q Q/wfmhzK-\0\0\0\17o\b\0\0#q 6WLcLLBf-\0\0\0\17o\b\84§\0\0#q zaejXg5N-\0\0\0\17o\b\8c§\0\0#q ROtJbDGT-\0\0\0\17o\b\94§\0\0#q LY1NWSMQ-\0\0\0\17o\b\9c§\0\0#q 3kPP8tNl-\0\0\0\17o\b¤§\0\0#q bsFLO0kh-\0\0\0\17o\b¬§\0\0#q JHEnOD8i-\0\0\0\17o\b´§\0\0#q IBLHY5E5-\0\0\0\17o\b¼§\0\0#q Vaioqq6m-\0\0\0\17o\bħ\0\0#q HOzViRnO-\0\0\0\17o\b̧\0\0#q TJDV5noj-\0\0\0\17o\bÔ§\0\0#q 3lYCpbB/-\0\0\0\17o\bܧ\0\0#q UKCPiSPR-\0\0\0\17o\bä§\0\0#q FBjGEsHZ-\0\0\0\17o\bì§\0\0#q XWOmMUqq-\0\0\0\17o\bô§\0\0#q oqjVmVmo-\0\0\0\17o\bü§\0\0#q GFKNXF5U-\0\0\0\17o\b\ 4¨\0\0#q qRqditja-\0\0\0\17o\b\f¨\0\0#q VqjRtTTJ-\0\0\0\17o\b\14¨\0\0#q JCSNK2SI-\0\0\0\17o\b\1c¨\0\0#q BLIlcoL9-\0\0\0\17o\b\0\0#q 3JoaGmSY-\0\0\0\17o\b\0\0#q ppju7taV-\0\0\0\17o\b\0\0#q JZUVshVK-\0\0\0\17o\b\0\0#q nwaD0EH7-\0\0\0\17o\b\0\0#q hMmp/h+o-\0\0\0\17o\b\0\0#q Pbiejj/L-\0\0\0\17o\b\0\0#q CXLxi+sY-\0\0\0\17o\b\0\0#q 57t+Gq/c-\0\0\0\17o\b\0\0#q ILqWSklk-\0\0\0\17o\b\0\0#q sgVasVYd-\0\0\0\17o\b\0\0#q Ki3aLGlc-\0\0\0\17o\b\0\0#q q4fh/b/0-\0\0\0\17o\b\84¨\0\0#q JI17/hz9-\0\0\0\17o\b\8c¨\0\0#q I5p2kpb6-\0\0\0\17o\b\94¨\0\0#q oqMezcw1-\0\0\0\17o\b\9c¨\0\0#q GWkqUylk-\0\0\0\17o\b¤¨\0\0#q KqYsxkpU-\0\0\0\17o\b¬¨\0\0#q qrKj6ahm-\0\0\0\17o\b´¨\0\0#q lf3ytR/Q-\0\0\0\17o\b¼¨\0\0#q MwpaUHB8-\0\0\0\17o\bĨ\0\0#q iNiv9K/z-\0\0\0\17o\b̨\0\0#q 0K6HAP93-\0\0\0\17o\bÔ¨\0\0#q CkfDPEO0-\0\0\0\17o\bܨ\0\0#q tLILS0pZ-\0\0\0\17o\bä¨\0\0#q tCxDEo+s-\0\0\0\17o\bì¨\0\0#q mm6SnpFq-\0\0\0\17o\bô¨\0\0#q PN8mB8k8-\0\0\0\17o\bü¨\0\0#q 4m6eFkLP-\0\0\0\17o\b\ 4©\0\0#q r2/b9vvq-\0\0\0\17o\b\f©\0\0#q 30sMxTJb-\0\0\0\17o\b\14©\0\0#q KbV41vET-\0\0\0\17o\b\1c©\0\0#q NRjrYhAm-\0\0\0\17o\b\0\0#q 0Kmypb2o-\0\0\0\17o\b\0\0#q zMJGlqo0-\0\0\0\17o\b\0\0#q oyt7s1+Z-\0\0\0\17o\b\0\0#q qRGE5GDh-\0\0\0\17o\b\0\0#q x9HdIoQm-\0\0\0\17o\b\0\0#q hH5pdOT8-\0\0\0\17o\b\0\0#q GMwPVn9c-\0\0\0\17o\b\0\0#q d2LOKocJ-\0\0\0\17o\b\0\0#q YqpE2fJi-\0\0\0\17o\b\0\0#q bmxMRhVj-\0\0\0\17o\b\0\0#q dipjJLKx-\0\0\0\17o\b\0\0#q v8lUwhE3-\0\0\0\17o\b\84©\0\0#q F+9vM/Z+-\0\0\0\17o\b\8c©\0\0#q 96zDku8j-\0\0\0\17o\b\94©\0\0#q uRY8Zkyg-\0\0\0\17o\b\9c©\0\0#q VpQhCSGE-\0\0\0\17o\b¤©\0\0#q 5vWjeiSS-\0\0\0\17o\b¬©\0\0#q O8ZFx43q-\0\0\0\17o\b´©\0\0#q YwI0q4xe-\0\0\0\17o\b¼©\0\0#q FMojCEBo-\0\0\0\17o\bÄ©\0\0#q YwhDwpBe-\0\0\0\17o\bÌ©\0\0#q iHCkNkSi-\0\0\0\17o\bÔ©\0\0#q hsIJhUNu-\0\0\0\17o\bÜ©\0\0#q ES4aChQw-\0\0\0\17o\bä©\0\0#q WFNLDYrS-\0\0\0\17o\bì©\0\0#q qqVumBhK-\0\0\0\17o\bô©\0\0#q 0xiN2qw0-\0\0\0\17o\bü©\0\0#q 2aBvWoQR-\0\0\0\17o\b\ 4ª\0\0#q kbNJJAkj-\0\0\0\17o\b\fª\0\0#q HBk/f0jB-\0\0\0\17o\b\14ª\0\0#q i0Qj3tra-\0\0\0\17o\b\1cª\0\0#q sZSWJAAB-\0\0\0\17o\b\0\0#q GGhpyETY-\0\0\0\17o\b\0\0#q 2mx2GGOb-\0\0\0\17o\b\0\0#q pTObWrb3-\0\0\0\17o\b\0\0#q 51Vt6QUR-\0\0\0\17o\b\0\0#q N7vvOMuZ-\0\0\0\17o\b\0\0#q MryvV8es-\0\0\0\17o\b\0\0#q vd69S9JG-\0\0\0\17o\b\0\0#q xrTRiEw0-\0\0\0\17o\b\0\0#q k5hoCqjC-\0\0\0\17o\b\0\0#q Fy3INRaq-\0\0\0\17o\b\0\0#q NJwakaGE-\0\0\0\17o\b\0\0#q ikSrNSYR-\0\0\0\17o\b\84ª\0\0#q WTRj019T-\0\0\0\17o\b\8cª\0\0#q 4CORqY4u-\0\0\0\17o\b\94ª\0\0#q bfHfS36+-\0\0\0\17o\b\9cª\0\0#q r2c6tibQ-\0\0\0\17o\b¤ª\0\0#q pT7uqxK5-\0\0\0\17o\b¬ª\0\0#q TMRXftJ8-\0\0\0\17o\b´ª\0\0#q 3l0OEKb1-\0\0\0\17o\b¼ª\0\0#q aVXy8jZK-\0\0\0\17o\bĪ\0\0#q twphii1E-\0\0\0\17o\b̪\0\0#q 32XPN122-\0\0\0\17o\bÔª\0\0#q +997zbb3-\0\0\0\17o\bܪ\0\0#q qg2rFWEs-\0\0\0\17o\bäª\0\0#q pycmx5fi-\0\0\0\17o\bìª\0\0#q 63iHJ04N-\0\0\0\17o\bôª\0\0#q MLBsItv9-\0\0\0\17o\büª\0\0#q IBqEOmT9-\0\0\0\17o\b\ 4«\0\0#q g+SGvcbp-\0\0\0\17o\b\f«\0\0#q +/hdEfGR-\0\0\0\17o\b\14«\0\0#q ojRGhaIF-\0\0\0\17o\b\1c«\0\0#q KIYxkBlx-\0\0\0\17o\b\0\0#q KkgcNtjb-\0\0\0\17o\b\0\0#q aQ3UpIqY-\0\0\0\17o\b\0\0#q gYoKWc8G-\0\0\0\17o\b\0\0#q tGtpwV4r-\0\0\0\17o\b\0\0#q XQ74tWyW-\0\0\0\17o\b\0\0#q WrSqxFk4-\0\0\0\17o\b\0\0#q NRFSeaSc-\0\0\0\17o\b\0\0#q u5yP8VEx-\0\0\0\17o\b\0\0#q ZEm6XE4c-\0\0\0\17o\b\0\0#q hWxqNGXX-\0\0\0\17o\b\0\0#q VJkYnR2c-\0\0\0\17o\b\0\0#q dHk8WdGY-\0\0\0\17o\b\84«\0\0#q y2vCmNjq-\0\0\0\17o\b\8c«\0\0#q ybrMN1FO-\0\0\0\17o\b\94«\0\0#q OcToskqq-\0\0\0\17o\b\9c«\0\0#q I6hQJYpk-\0\0\0\17o\b¤«\0\0#q EaNCNn6F-\0\0\0\17o\b¬«\0\0#q TLldFQjI-\0\0\0\17o\b´«\0\0#q RVoB+utw-\0\0\0\17o\b¼«\0\0#q bXmdbmWE-\0\0\0\17o\bÄ«\0\0#q DBprGCfA-\0\0\0\17o\bÌ«\0\0#q JCZRpKqR-\0\0\0\17o\bÔ«\0\0#q Yfq2e+7C-\0\0\0\17o\bÜ«\0\0#q q5cNSfue-\0\0\0\17o\bä«\0\0#q E8nT0BAA-\0\0\0\17o\bì«\0\0#q mYe3/Q5/-\0\0\0\17o\bô«\0\0#q hbbwssFC-\0\0\0\17o\bü«\0\0#q Xp+OE9Ek-\0\0\0\17o\b\ 4¬\0\0#q GFrg00fG-\0\0\0\17o\b\f¬\0\0#q yXabHiy3-\0\0\0\17o\b\14¬\0\0#q EqpTo/Z9-\0\0\0\17o\b\1c¬\0\0#q bfo+ZtPr-\0\0\0\17o\b\0\0#q QAuNWcI9-\0\0\0\17o\b\0\0#q +eSwSa/n-\0\0\0\17o\b\0\0#q Yd7oXFad-\0\0\0\17o\b\0\0#q mUYi1ukq-\0\0\0\17o\b\0\0#q /ac5AAQE-\0\0\0\17o\b\0\0#q 7du1t6q7-\0\0\0\17o\b\0\0#q K4YbOHkb-\0\0\0\17o\b\0\0#q tuq8NNGM-\0\0\0\17o\b\0\0#q Zw/VibN2-\0\0\0\17o\b\0\0#q MKnJyZJz-\0\0\0\17o\b\0\0#q Vzbk8nni-\0\0\0\17o\b\0\0#q zzY8nI5P-\0\0\0\17o\b\84¬\0\0#q u2KrwXrL-\0\0\0\17o\b\8c¬\0\0#q dm6nQ57a-\0\0\0\17o\b\94¬\0\0#q XMY8TsVy-\0\0\0\17o\b\9c¬\0\0#q IDC5bX0W-\0\0\0\17o\b¤¬\0\0#q fDw+jTpp-\0\0\0\17o\b¬¬\0\0#q 6QuEj7W1-\0\0\0\17o\b´¬\0\0#q TMvq8Zyu-\0\0\0\17o\b¼¬\0\0#q 9vdXFD+n-\0\0\0\17o\bĬ\0\0#q VQXfaj5R-\0\0\0\17o\b̬\0\0#q BRz2fkfn-\0\0\0\17o\bÔ¬\0\0#q vWnhDIyY-\0\0\0\17o\bܬ\0\0#q KVitWiZZ-\0\0\0\17o\bä¬\0\0#q Us64DB3W-\0\0\0\17o\bì¬\0\0#q mYY2xUAX-\0\0\0\17o\bô¬\0\0#q s0Cakm2W-\0\0\0\17o\bü¬\0\0#q q5otBR1e-\0\0\0\17o\b\ 4­\0\0#q 9IE4xR6I-\0\0\0\17o\b\f­\0\0#q UQ1xETvE-\0\0\0\17o\b\14­\0\0#q mN8IlSLE-\0\0\0\17o\b\1c­\0\0#q h0Um6u2F-\0\0\0\17o\b\0\0#q SoE1m8LD-\0\0\0\17o\b\0\0#q pW1Hm4TF-\0\0\0\17o\b\0\0#q aGovlKmd-\0\0\0\17o\b\0\0#q EOVumVxa-\0\0\0\17o\b\0\0#q m7bCipxu-\0\0\0\17o\b\0\0#q T6y5i4+S-\0\0\0\17o\b\0\0#q RHYrzydy-\0\0\0\17o\b\0\0#q zSvjm0vM-\0\0\0\17o\b\0\0#q KixJqmXo-\0\0\0\17o\b\0\0#q TSKKjLRT-\0\0\0\17o\b\0\0#q RkxS7yrS-\0\0\0\17o\b\0\0#q DPFa3nQX-\0\0\0\17o\b\84­\0\0#q LkJi0PGz-\0\0\0\17o\b\8c­\0\0#q Ue3b6kGd-\0\0\0\17o\b\94­\0\0#q ih7KjMMN-\0\0\0\17o\b\9c­\0\0#q AjQzQTDB-\0\0\0\17o\b¤­\0\0#q /OKQ8KFu-\0\0\0\17o\b¬­\0\0#q O0yGQmIs-\0\0\0\17o\b´­\0\0#q JJJLKKGQ-\0\0\0\17o\b¼­\0\0#q AQmMosKA-\0\0\0\17o\bÄ­\0\0#q sZY1R0kL-\0\0\0\17o\bÌ­\0\0#q PhQaaKZW-\0\0\0\17o\bÔ­\0\0#q N45u7TtP-\0\0\0\17o\bÜ­\0\0#q s7uvVu7u-\0\0\0\17o\bä­\0\0#q qsd2mxpM-\0\0\0\17o\bì­\0\0#q js4adWm7-\0\0\0\17o\bô­\0\0#q k2YxhWGO-\0\0\0\17o\bü­\0\0#q TRjkw3Yp-\0\0\0\17o\b\ 4®\0\0#q pSco2dSD-\0\0\0\17o\b\f®\0\0#q nDT6F8LN-\0\0\0\17o\b\14®\0\0#q CzhHRwSH-\0\0\0\17o\b\1c®\0\0#q ThhZCw/J-\0\0\0\17o\b\0\0#q CkWC0Z4G-\0\0\0\17o\b\0\0#q lllmHQk0-\0\0\0\17o\b\0\0#q JGWItJae-\0\0\0\17o\b\0\0#q mBYmSUfC-\0\0\0\17o\b\0\0#q /CzGtdOZ-\0\0\0\17o\b\0\0#q glpafCCz-\0\0\0\17o\b\0\0#q TTeNljGY-\0\0\0\17o\b\0\0#q rTsbK77s-\0\0\0\17o\b\0\0#q rM0abuHR-\0\0\0\17o\b\0\0#q sdXENonR-\0\0\0\17o\b\0\0#q Vgs/Pvuq-\0\0\0\17o\b\0\0#q zvZPJURU-\0\0\0\17o\b\84®\0\0#q wfRVTFTL-\0\0\0\17o\b\8c®\0\0#q HP5c+u4d-\0\0\0\17o\b\94®\0\0#q T7LGDtNF-\0\0\0\17o\b\9c®\0\0#q EMwhcRar-\0\0\0\17o\b¤®\0\0#q iKthqTD1-\0\0\0\17o\b¬®\0\0#q vPM95zBV-\0\0\0\17o\b´®\0\0#q A62rlBLf-\0\0\0\17o\b¼®\0\0#q aioIouD1-\0\0\0\17o\bÄ®\0\0#q obsxmY4/-\0\0\0\17o\bÌ®\0\0#q SLbB1fe/-\0\0\0\17o\bÔ®\0\0#q WE5wvNs4-\0\0\0\17o\bÜ®\0\0#q XW/dM+pC-\0\0\0\17o\bä®\0\0#q uTReSLHk-\0\0\0\17o\bì®\0\0#q 06DGF0Wk-\0\0\0\17o\bô®\0\0#q GUHXGlrL-\0\0\0\17o\bü®\0\0#q Y4aDxn3f-\0\0\0\17o\b\ 4¯\0\0#q Ht8HuzrJ-\0\0\0\17o\b\f¯\0\0#q 2+aMDPlI-\0\0\0\17o\b\14¯\0\0#q 78q6bHxj-\0\0\0\17o\b\1c¯\0\0#q 5uF2TCFw-\0\0\0\17o\b\0\0#q bZMGRZ9Y-\0\0\0\17o\b\0\0#q DJhIWy5K-\0\0\0\17o\b\0\0#q gdxy7a9+-\0\0\0\17o\b\0\0#q tDiflePr-\0\0\0\17o\b\0\0#q abvyHDj9-\0\0\0\17o\b\0\0#q YiBjKMXY-\0\0\0\17o\b\0\0#q ZIRdTNJH-\0\0\0\17o\b\0\0#q AOT6taIR-\0\0\0\17o\b\0\0#q RhwL6k4W-\0\0\0\17o\b\0\0#q H8MdqdOH-\0\0\0\17o\b\0\0#q DZ5XET0k-\0\0\0\17o\b\0\0#q KmF2Bk/g-\0\0\0\17o\b\84¯\0\0#q CivPTwLD-\0\0\0\17o\b\8c¯\0\0#q D6OnV3Bt-\0\0\0\17o\b\94¯\0\0#q j6vA6NAo-\0\0\0\17o\b\9c¯\0\0#q RYdIDZ/G-\0\0\0\17o\b¤¯\0\0#q wT5X5/HR-\0\0\0\17o\b¬¯\0\0#q th0F6JgM-\0\0\0\17o\b´¯\0\0#q p8aAo/b8-\0\0\0\17o\b¼¯\0\0#q aP0dVD3b-\0\0\0\17o\bį\0\0#q WzoGD9jA-\0\0\0\17o\b̯\0\0#q IdGjWJpq-\0\0\0\17o\bÔ¯\0\0#q FEIwOEjh-\0\0\0\17o\bܯ\0\0#q +nBfY8Pv-\0\0\0\17o\bä¯\0\0#q 9ThAfIA+-\0\0\0\17o\bì¯\0\0#q v1W1zDh9-\0\0\0\17o\bô¯\0\0#q 8+IKpRNs-\0\0\0\17o\bü¯\0\0#q 2Kmxah79-\0\0\0\17o\b\ 4°\0\0#q W223bEUj-\0\0\0\17o\b\f°\0\0#q 8FgfYebz-\0\0\0\17o\b\14°\0\0#q bUyGl4S8-\0\0\0\17o\b\1c°\0\0#q AJvIixBO-\0\0\0\17o\b\0\0#q hDSmA2GY-\0\0\0\17o\b\0\0#q KhWeUS6A-\0\0\0\17o\b\0\0#q DRDvpmoC-\0\0\0\17o\b\0\0#q lc1nZxo2-\0\0\0\17o\b\0\0#q BcF8lMAq-\0\0\0\17o\b\0\0#q GbIksqAL-\0\0\0\17o\b\0\0#q JKpZprIe-\0\0\0\17o\b\0\0#q l0G/UM0/-\0\0\0\17o\b\0\0#q NROWO2EH-\0\0\0\17o\b\0\0#q dl8baxjf-\0\0\0\17o\b\0\0#q vVc1Dz9V-\0\0\0\17o\b\0\0#q KlRqHhPw-\0\0\0\17o\b\84°\0\0#q oX/hRooL-\0\0\0\17o\b\8c°\0\0#q hYtcLETv-\0\0\0\17o\b\94°\0\0#q FJPN1IgE-\0\0\0\17o\b\9c°\0\0#q 2b15FDZI-\0\0\0\17o\b¤°\0\0#q 8kftKHm2-\0\0\0\17o\b¬°\0\0#q 5vocSMiW-\0\0\0\17o\b´°\0\0#q e502fv/5-\0\0\0\17o\b¼°\0\0#q wLI7POST-\0\0\0\17o\bİ\0\0#q npHiVNkn-\0\0\0\17o\b̰\0\0#q KN0f5ylS-\0\0\0\17o\bÔ°\0\0#q llDaC8/E-\0\0\0\17o\bܰ\0\0#q nNMn8bMO-\0\0\0\17o\bä°\0\0#q XdHDBEki-\0\0\0\17o\bì°\0\0#q oNT/Kpjl-\0\0\0\17o\bô°\0\0#q 5T/FSNst-\0\0\0\17o\bü°\0\0#q pVTGKjCy-\0\0\0\17o\b\ 4±\0\0#q ZJilljk0-\0\0\0\17o\b\f±\0\0#q WCJtTbKt-\0\0\0\17o\b\14±\0\0#q tU1vQ16R-\0\0\0\17o\b\1c±\0\0#q REbZJVRV-\0\0\0\17o\b\0\0#q nrJY8Vbp-\0\0\0\17o\b\0\0#q fQ4jCfGE-\0\0\0\17o\b\0\0#q xUvOtzOc-\0\0\0\17o\b\0\0#q h1jTc+c6-\0\0\0\17o\b\0\0#q fhbzdJ+T-\0\0\0\17o\b\0\0#q ZjocHhp7-\0\0\0\17o\b\0\0#q tOTg0hqF-\0\0\0\17o\b\0\0#q HEdpzHf3-\0\0\0\17o\b\0\0#q mFU3tGUG-\0\0\0\17o\b\0\0#q nq9aOgRX-\0\0\0\17o\b\0\0#q wlMPc4oq-\0\0\0\17o\b\0\0#q ofnnzkev-\0\0\0\17o\b\84±\0\0#q Pke8ocXV-\0\0\0\17o\b\8c±\0\0#q cWn5KA/w-\0\0\0\17o\b\94±\0\0#q BIoOBRh4-\0\0\0\17o\b\9c±\0\0#q tKPhq0ow-\0\0\0\17o\b¤±\0\0#q g6MZB0JF-\0\0\0\17o\b¬±\0\0#q 0/BAeEjI-\0\0\0\17o\b´±\0\0#q Czw6dNpJ-\0\0\0\17o\b¼±\0\0#q CSLZwqAG-\0\0\0\17o\bı\0\0#q V7MVmZlz-\0\0\0\17o\ḇ\0\0#q FW3GuSbW-\0\0\0\17o\bÔ±\0\0#q rY1tbz6c-\0\0\0\17o\bܱ\0\0#q EBX5/031-\0\0\0\17o\bä±\0\0#q t5Xq26tD-\0\0\0\17o\bì±\0\0#q 0eeTKPan-\0\0\0\17o\bô±\0\0#q Zz5maen4-\0\0\0\17o\bü±\0\0#q 8Hmfm+rh-\0\0\0\17o\b\ 4²\0\0#q 8R/tsevt-\0\0\0\17o\b\f²\0\0#q 95vOVW8m-\0\0\0\17o\b\14²\0\0#q uQ0/dwn6-\0\0\0\17o\b\1c²\0\0#q qkVSPxsT-\0\0\0\17o\b\0\0#q ydUx6UtR-\0\0\0\17o\b\0\0#q VtlfoqMj-\0\0\0\17o\b\0\0#q se8kMZUj-\0\0\0\17o\b\0\0#q 0SSye7/K-\0\0\0\17o\b\0\0#q VZXR81mz-\0\0\0\17o\b\0\0#q STUJXk04-\0\0\0\17o\b\0\0#q fITUm7Y+-\0\0\0\17o\b\0\0#q EeH1SIBL-\0\0\0\17o\b\0\0#q CfsshViY-\0\0\0\17o\b\0\0#q pJybG/42-\0\0\0\17o\b\0\0#q 9HOeflhi-\0\0\0\17o\b\0\0#q yJoizZZJ-\0\0\0\17o\b\84²\0\0#q qnHAaUfl-\0\0\0\17o\b\8c²\0\0#q IkvOJH3S-\0\0\0\17o\b\94²\0\0#q KlVJFWbJ-\0\0\0\17o\b\9c²\0\0#q PqT6ux9p-\0\0\0\17o\b¤²\0\0#q skzdwrJy-\0\0\0\17o\b¬²\0\0#q 6NBxBPGk-\0\0\0\17o\b´²\0\0#q SiqK9nE/-\0\0\0\17o\b¼²\0\0#q 6yaHtOaO-\0\0\0\17o\bIJ\0\0#q IlPR5ned-\0\0\0\17o\b̲\0\0#q BwjqrLOV-\0\0\0\17o\bÔ²\0\0#q GfdvOzy8-\0\0\0\17o\bܲ\0\0#q zy6OTpB8-\0\0\0\17o\bä²\0\0#q JJ5O35aT-\0\0\0\17o\bì²\0\0#q vUnmpOHO-\0\0\0\17o\bô²\0\0#q TST7q5Tt-\0\0\0\17o\bü²\0\0#q 4SqsKqrK-\0\0\0\17o\b\ 4³\0\0#q U8ZMLO59-\0\0\0\17o\b\f³\0\0#q VefKuttZ-\0\0\0\17o\b\14³\0\0#q mLKmGsVu-\0\0\0\17o\b\1c³\0\0#q zxJ4xtmO-\0\0\0\17o\b\0\0#q sbzj7jrH-\0\0\0\17o\b\0\0#q OnDaObg2-\0\0\0\17o\b\0\0#q tvZVLY2b-\0\0\0\17o\b\0\0#q G06W4xJ2-\0\0\0\17o\b\0\0#q PRXowWn6-\0\0\0\17o\b\0\0#q Q2qskgjI-\0\0\0\17o\b\0\0#q GgwGL/Z/-\0\0\0\17o\b\0\0#q 7+qho/gP-\0\0\0\17o\b\0\0#q TXh36jmR-\0\0\0\17o\b\0\0#q 1w9demMo-\0\0\0\17o\b\0\0#q 4Y8k1Pnr-\0\0\0\17o\b\0\0#q L5bLq5qt-\0\0\0\17o\b\84³\0\0#q lHMrhcTx-\0\0\0\17o\b\8c³\0\0#q qkjHMqVQ-\0\0\0\17o\b\94³\0\0#q DGMFtMg0-\0\0\0\17o\b\9c³\0\0#q tkKYtmlj-\0\0\0\17o\b¤³\0\0#q aZTJIMj9-\0\0\0\17o\b¬³\0\0#q NFIipt2B-\0\0\0\17o\b´³\0\0#q tNmmpK5M-\0\0\0\17o\b¼³\0\0#q DFVUUwrJ-\0\0\0\17o\bij\0\0#q vjElbUrM-\0\0\0\17o\b̳\0\0#q i23kbNn7-\0\0\0\17o\bÔ³\0\0#q H7hCiP4Z-\0\0\0\17o\bܳ\0\0#q ebpITlFV-\0\0\0\17o\bä³\0\0#q 4hhqmRLE-\0\0\0\17o\bì³\0\0#q 7Z94lSPP-\0\0\0\17o\bô³\0\0#q mM6+HR5P-\0\0\0\17o\bü³\0\0#q Y6k0ntVq-\0\0\0\17o\b\ 4´\0\0#q 21Nlhixw-\0\0\0\17o\b\f´\0\0#q sJ52ZHpN-\0\0\0\17o\b\14´\0\0#q NQajs6c9-\0\0\0\17o\b\1c´\0\0#q vfpv6Znt-\0\0\0\17o\b\0\0#q OE9LGPhh-\0\0\0\17o\b\0\0#q 91dhtbjq-\0\0\0\17o\b\0\0#q 2MjZvtil-\0\0\0\17o\b\0\0#q 0zo6r+jL-\0\0\0\17o\b\0\0#q 2H8eLj18-\0\0\0\17o\b\0\0#q yGzWRNcm-\0\0\0\17o\b\0\0#q 9I5GokcO-\0\0\0\17o\b\0\0#q jGnDG7Sa-\0\0\0\17o\b\0\0#q aFYxVOit-\0\0\0\17o\b\0\0#q W1Wmzf9N-\0\0\0\17o\b\0\0#q OstsnBXs-\0\0\0\17o\b\0\0#q VhrLaczN-\0\0\0\17o\b\84´\0\0#q WymFZQmR-\0\0\0\17o\b\8c´\0\0#q BAR4hXFL-\0\0\0\17o\b\94´\0\0#q IMn8tE0K-\0\0\0\17o\b\9c´\0\0#q NiGlQnWd-\0\0\0\17o\b¤´\0\0#q m5TOjQdS-\0\0\0\17o\b¬´\0\0#q 2GXGiCBh-\0\0\0\17o\b´´\0\0#q AiR3+IuN-\0\0\0\17o\b¼´\0\0#q tczrWRxL-\0\0\0\17o\bÄ´\0\0#q egSYOFQ8-\0\0\0\17o\bÌ´\0\0#q aNwQ5pS1-\0\0\0\17o\bÔ´\0\0#q bOmZvMuM-\0\0\0\17o\bÜ´\0\0#q 2Titbss3-\0\0\0\17o\bä´\0\0#q zVUdd41y-\0\0\0\17o\bì´\0\0#q 8iQI3cC+-\0\0\0\17o\bô´\0\0#q BYszD3iy-\0\0\0\17o\bü´\0\0#q YZAxufkk-\0\0\0\17o\b\ 4µ\0\0#q +P8nXHL9-\0\0\0\17o\b\fµ\0\0#q uAF6kyiw-\0\0\0\17o\b\14µ\0\0#q 54eRvOBZ-\0\0\0\17o\b\1cµ\0\0#q OAlO2Jkk-\0\0\0\17o\b\0\0#q s3WNzvOH-\0\0\0\17o\b\0\0#q ZTF8wXjO-\0\0\0\17o\b\0\0#q nz157FNv-\0\0\0\17o\b\0\0#q 8IdeqWn4-\0\0\0\17o\b\0\0#q QqxyMzjd-\0\0\0\17o\b\0\0#q ovNzuHBn-\0\0\0\17o\b\0\0#q GNqB8Uyp-\0\0\0\17o\b\0\0#q LJspmo/P-\0\0\0\17o\b\0\0#q ZrnERR2P-\0\0\0\17o\b\0\0#q qVzauvfq-\0\0\0\17o\b\0\0#q DryP7Z+v-\0\0\0\17o\b\0\0#q QD7IISU+-\0\0\0\17o\b\84µ\0\0#q 56T4JDTE-\0\0\0\17o\b\8cµ\0\0#q q+pP9Klp-\0\0\0\17o\b\94µ\0\0#q I+PV4dT1-\0\0\0\17o\b\9cµ\0\0#q ixJrec50-\0\0\0\17o\b¤µ\0\0#q 4hI0p0ai-\0\0\0\17o\b¬µ\0\0#q nusxoch3-\0\0\0\17o\b´µ\0\0#q Rf1aTnA9-\0\0\0\17o\b¼µ\0\0#q yf8ixfuf-\0\0\0\17o\bĵ\0\0#q D/nGTaR+-\0\0\0\17o\b̵\0\0#q r9Yxn56q-\0\0\0\17o\bÔµ\0\0#q Bqi9vX5h-\0\0\0\17o\bܵ\0\0#q PpZKpLI3-\0\0\0\17o\bäµ\0\0#q 7GNPZmMf-\0\0\0\17o\bìµ\0\0#q bbfbh2nC-\0\0\0\17o\bôµ\0\0#q cj2D8Z5X-\0\0\0\17o\büµ\0\0#q fTA5tD/U-\0\0\0\17o\b\ 4\0\0#q rkhsSybh-\0\0\0\17o\b\f\0\0#q P3xy2n8v-\0\0\0\17o\b\14\0\0#q Xr3+fHF+-\0\0\0\17o\b\1c\0\0#q jbhrfffr-\0\0\0\17o\b\0\0#q gpMdwyKs-\0\0\0\17o\b\0\0#q EIABftZx-\0\0\0\17o\b\0\0#q WHn6eRPx-\0\0\0\17o\b\0\0#q 3H4Xyvkz-\0\0\0\17o\b\0\0#q MnSq9ves-\0\0\0\17o\b\0\0#q 52gWBe8W-\0\0\0\17o\b\0\0#q N0R5UW63-\0\0\0\17o\b\0\0#q ukJQWFQ4-\0\0\0\17o\b\0\0#q oKhAJyCJ-\0\0\0\17o\b\0\0#q nQEqDppQ-\0\0\0\17o\b\0\0#q lchLgECa-\0\0\0\17o\b\0\0#q szI1WAe5-\0\0\0\17o\b\84\0\0#q g4MUFyh0-\0\0\0\17o\b\8c\0\0#q anCQg4mS-\0\0\0\17o\b\94\0\0#q NdSo2xtq-\0\0\0\17o\b\9c\0\0#q gYJ+eC6e-\0\0\0\17o\b¤¶\0\0#q Yyu+bd9Q-\0\0\0\17o\b¬¶\0\0#q OSufIb1a-\0\0\0\17o\b´¶\0\0#q qsFPuqFW-\0\0\0\17o\b¼¶\0\0#q SpbKUpWl-\0\0\0\17o\bĶ\0\0#q KojFKpSj-\0\0\0\17o\b̶\0\0#q ujZZcdbO-\0\0\0\17o\bÔ¶\0\0#q TOI0xFWR-\0\0\0\17o\bܶ\0\0#q NkIpGoH4-\0\0\0\17o\bä¶\0\0#q pGFJpP3g-\0\0\0\17o\bì¶\0\0#q r/zxFkAW-\0\0\0\17o\bô¶\0\0#q oqElVYP4-\0\0\0\17o\bü¶\0\0#q Gt/X38U2-\0\0\0\17o\b\ 4·\0\0#q 71ZrEysV-\0\0\0\17o\b\f·\0\0#q o23KuyJZ-\0\0\0\17o\b\14·\0\0#q atOZ0Kp4-\0\0\0\17o\b\1c·\0\0#q TXVYhqbv-\0\0\0\17o\b\0\0#q rZeRB/cP-\0\0\0\17o\b\0\0#q mRH1kRtu-\0\0\0\17o\b\0\0#q ErUZW4Uh-\0\0\0\17o\b\0\0#q QwwgBj0N-\0\0\0\17o\b\0\0#q R/V3kMY7-\0\0\0\17o\b\0\0#q EobIBcOQ-\0\0\0\17o\b\0\0#q ukBiqbEG-\0\0\0\17o\b\0\0#q pMmJiq+W-\0\0\0\17o\b\0\0#q ZWm2LXZ6-\0\0\0\17o\b\0\0#q qn6+3RY7-\0\0\0\17o\b\0\0#q yG3Jww0z-\0\0\0\17o\b\0\0#q Z0a0T9xZ-\0\0\0\17o\b\84·\0\0#q o9U2SMjs-\0\0\0\17o\b\8c·\0\0#q PDENqfk7-\0\0\0\17o\b\94·\0\0#q N482T5PL-\0\0\0\17o\b\9c·\0\0#q SV+d2a1f-\0\0\0\17o\b¤·\0\0#q 1eexrCMf-\0\0\0\17o\b¬·\0\0#q ZXsuIkyj-\0\0\0\17o\b´·\0\0#q /nLJDF6p-\0\0\0\17o\b¼·\0\0#q Yr8eHJ6T-\0\0\0\17o\bÄ·\0\0#q BVV87tmm-\0\0\0\17o\bÌ·\0\0#q a7bz+ky6-\0\0\0\17o\bÔ·\0\0#q PN897u1C-\0\0\0\17o\bÜ·\0\0#q ATUrOcfr-\0\0\0\17o\bä·\0\0#q YT7WLUnZ-\0\0\0\17o\bì·\0\0#q UkfzoytV-\0\0\0\17o\bô·\0\0#q KsFSxI3T-\0\0\0\17o\bü·\0\0#q kSuWTSN9-\0\0\0\17o\b\ 4¸\0\0#q Jpp5QZrw-\0\0\0\17o\b\f¸\0\0#q J9vP1+nT-\0\0\0\17o\b\14¸\0\0#q bT6eldk/-\0\0\0\17o\b\1c¸\0\0#q oc3RMOhp-\0\0\0\17o\b\0\0#q 4yJZ4IUQ-\0\0\0\17o\b\0\0#q xBgmiHJj-\0\0\0\17o\b\0\0#q tlz2GvOH-\0\0\0\17o\b\0\0#q ReN9+iGp-\0\0\0\17o\b\0\0#q 4Jktksd2-\0\0\0\17o\b\0\0#q Fk4SV2/J-\0\0\0\17o\b\0\0#q atrxIFOH-\0\0\0\17o\b\0\0#q 9wap6FtH-\0\0\0\17o\b\0\0#q EfVGhB1s-\0\0\0\17o\b\0\0#q DwiGOwtc-\0\0\0\17o\b\0\0#q vTAgVkF6-\0\0\0\17o\b\0\0#q fh/XVVVU-\0\0\0\17o\b\84¸\0\0#q QaOqOQog-\0\0\0\17o\b\8c¸\0\0#q 5PKIzrA2-\0\0\0\17o\b\94¸\0\0#q mJiXdzzL-\0\0\0\17o\b\9c¸\0\0#q WRbIZCyU-\0\0\0\17o\b¤¸\0\0#q xgbN2zVN-\0\0\0\17o\b¬¸\0\0#q iK1HWZJu-\0\0\0\17o\b´¸\0\0#q qUsH34W6-\0\0\0\17o\b¼¸\0\0#q Tk5MbyVm-\0\0\0\17o\bĸ\0\0#q v9jI2aSL-\0\0\0\17o\b̸\0\0#q I2VKRQpz-\0\0\0\17o\bÔ¸\0\0#q mQyE8pC1-\0\0\0\17o\bܸ\0\0#q C1EUiox5-\0\0\0\17o\bä¸\0\0#q RWwS9UwZ-\0\0\0\17o\bì¸\0\0#q Ly63VpJN-\0\0\0\17o\bô¸\0\0#q JfEm63Wu-\0\0\0\17o\bü¸\0\0#q bJNNHJJO-\0\0\0\17o\b\ 4¹\0\0#q 5+RurZhi-\0\0\0\17o\b\f¹\0\0#q qlWMUlah-\0\0\0\17o\b\14¹\0\0#q +7hqpN26-\0\0\0\17o\b\1c¹\0\0#q aksmYnEl-\0\0\0\17o\b\0\0#q +2jDzy2s-\0\0\0\17o\b\0\0#q WVaxhxo0-\0\0\0\17o\b\0\0#q sy3GKzqg-\0\0\0\17o\b\0\0#q 4dVFnqiH-\0\0\0\17o\b\0\0#q /Afo6ZOB-\0\0\0\17o\b\0\0#q w6/25A/k-\0\0\0\17o\b\0\0#q KKi+ipEI-\0\0\0\17o\b\0\0#q iyL9rIz6-\0\0\0\17o\b\0\0#q 1tdfOz5b-\0\0\0\17o\b\0\0#q 9tOLlSqe-\0\0\0\17o\b\0\0#q 0SxNVPNT-\0\0\0\17o\b\0\0#q Fk/XTHSx-\0\0\0\17o\b\84¹\0\0#q ksktjnfv-\0\0\0\17o\b\8c¹\0\0#q TFaebEYV-\0\0\0\17o\b\94¹\0\0#q xUzjImU3-\0\0\0\17o\b\9c¹\0\0#q vFMtuuFx-\0\0\0\17o\b¤¹\0\0#q 2WDCnNvk-\0\0\0\17o\b¬¹\0\0#q JhZJpZDk-\0\0\0\17o\b´¹\0\0#q rlXW3eZt-\0\0\0\17o\b¼¹\0\0#q cuKZcvAe-\0\0\0\17o\bĹ\0\0#q dJhwsO8s-\0\0\0\17o\b̹\0\0#q JvKWfGcu-\0\0\0\17o\bÔ¹\0\0#q MmSVOdMu-\0\0\0\17o\bܹ\0\0#q PtO5iTO2-\0\0\0\17o\bä¹\0\0#q 5qE9ntOJ-\0\0\0\17o\bì¹\0\0#q 7c8nKZfw-\0\0\0\17o\bô¹\0\0#q xh1UZJba-\0\0\0\17o\bü¹\0\0#q turhTFgc-\0\0\0\17o\b\ 4º\0\0#q 4VklKumu-\0\0\0\17o\b\fº\0\0#q lWXlu5Ac-\0\0\0\17o\b\14º\0\0#q QCTBIkaK-\0\0\0\17o\b\1cº\0\0#q GFUrEV2U-\0\0\0\17o\b\0\0#q U/n8/Hpx-\0\0\0\17o\b\0\0#q HWKqpiLF-\0\0\0\17o\b\0\0#q VxDTtu0Z-\0\0\0\17o\b\0\0#q LFI6kEKT-\0\0\0\17o\b\0\0#q sGEUPGDF-\0\0\0\17o\b\0\0#q OyKFmi9f-\0\0\0\17o\b\0\0#q CJPgqu54-\0\0\0\17o\b\0\0#q sCIJ6uD6-\0\0\0\17o\b\0\0#q eDlOsdVO-\0\0\0\17o\b\0\0#q SppKzATw-\0\0\0\17o\b\0\0#q fi2t4CPH-\0\0\0\17o\b\0\0#q gfLsRZAI-\0\0\0\17o\b\84º\0\0#q TsgfqQ3S-\0\0\0\17o\b\8cº\0\0#q VryjsJs6-\0\0\0\17o\b\94º\0\0#q HWRGyuXS-\0\0\0\17o\b\9cº\0\0#q EjvQFceI-\0\0\0\17o\b¤º\0\0#q nojgi66B-\0\0\0\17o\b¬º\0\0#q /Jn9YGev-\0\0\0\17o\b´º\0\0#q 5OSROQPg-\0\0\0\17o\b¼º\0\0#q pDM311cz-\0\0\0\17o\bĺ\0\0#q h5pv7QH1-\0\0\0\17o\b̺\0\0#q mjYdG88T-\0\0\0\17o\bÔº\0\0#q 0Y6lKoky-\0\0\0\17o\bܺ\0\0#q /ahYfzsf-\0\0\0\17o\bäº\0\0#q 2FLP37iw-\0\0\0\17o\bìº\0\0#q 0iHVc4G1-\0\0\0\17o\bôº\0\0#q T+qGtRbb-\0\0\0\17o\büº\0\0#q YqpbLVXm-\0\0\0\17o\b\ 4»\0\0#q WjUYsWtd-\0\0\0\17o\b\f»\0\0#q 3blc3Nco-\0\0\0\17o\b\14»\0\0#q sbFotRq1-\0\0\0\17o\b\1c»\0\0#q lJaLZLMX-\0\0\0\17o\b\0\0#q +yeAaVGq-\0\0\0\17o\b\0\0#q xZhXrnN4-\0\0\0\17o\b\0\0#q O7p233eK-\0\0\0\17o\b\0\0#q V527HTl3-\0\0\0\17o\b\0\0#q dF67ngUT-\0\0\0\17o\b\0\0#q DIWkYklB-\0\0\0\17o\b\0\0#q hCDIYMo0-\0\0\0\17o\b\0\0#q DsbYvZpk-\0\0\0\17o\b\0\0#q T5KZKN0l-\0\0\0\17o\b\0\0#q GEqTdkzE-\0\0\0\17o\b\0\0#q sUySxKGy-\0\0\0\17o\b\0\0#q Atr23/mY-\0\0\0\17o\b\84»\0\0#q GEIYA2ic-\0\0\0\17o\b\8c»\0\0#q NDzgWF6B-\0\0\0\17o\b\94»\0\0#q TisD+sxS-\0\0\0\17o\b\9c»\0\0#q j0YjKCGU-\0\0\0\17o\b¤»\0\0#q BhaU0dbA-\0\0\0\17o\b¬»\0\0#q uSAVMAWd-\0\0\0\17o\b´»\0\0#q JKS0UVTI-\0\0\0\17o\b¼»\0\0#q yJw03tpP-\0\0\0\17o\bÄ»\0\0#q FQtSP5Zb-\0\0\0\17o\bÌ»\0\0#q pmLpJw4T-\0\0\0\17o\bÔ»\0\0#q +ko4c5H5-\0\0\0\17o\bÜ»\0\0#q d37d2YZY-\0\0\0\17o\bä»\0\0#q sw/VekqV-\0\0\0\17o\bì»\0\0#q Fiu6LIkA-\0\0\0\17o\bô»\0\0#q nOUupHbp-\0\0\0\17o\bü»\0\0#q VuhXVTeP-\0\0\0\17o\b\ 4¼\0\0#q KxVB0bps-\0\0\0\17o\b\f¼\0\0#q xhwtW3SV-\0\0\0\17o\b\14¼\0\0#q TpJP4oli-\0\0\0\17o\b\1c¼\0\0#q flH2jl+C-\0\0\0\17o\b\0\0#q LI6HIdid-\0\0\0\17o\b\0\0#q SOtEWxPw-\0\0\0\17o\b\0\0#q TYaOFsTD-\0\0\0\17o\b\0\0#q dMOO9lsh-\0\0\0\17o\b\0\0#q LUSxbIu5-\0\0\0\17o\b\0\0#q uldYJIE/-\0\0\0\17o\b\0\0#q CVEfQGnw-\0\0\0\17o\b\0\0#q 3KR8rEXX-\0\0\0\17o\b\0\0#q fhMiZYN1-\0\0\0\17o\b\0\0#q TKw6ox20-\0\0\0\17o\b\0\0#q 9eLH1yz6-\0\0\0\17o\b\0\0#q Qd55slpU-\0\0\0\17o\b\84¼\0\0#q wKmJGhpV-\0\0\0\17o\b\8c¼\0\0#q YEWZi/Z/-\0\0\0\17o\b\94¼\0\0#q B+/mfovm-\0\0\0\17o\b\9c¼\0\0#q doZ+b+KH-\0\0\0\17o\b¤¼\0\0#q 47xRdEr1-\0\0\0\17o\b¬¼\0\0#q MjJ+9ZGE-\0\0\0\17o\b´¼\0\0#q k8zDzXfo-\0\0\0\17o\b¼¼\0\0#q ia3VNrVu-\0\0\0\17o\bļ\0\0#q 2HqivcwY-\0\0\0\17o\b̼\0\0#q 3Cn7tM3u-\0\0\0\17o\bÔ¼\0\0#q jFGxSqYs-\0\0\0\17o\bܼ\0\0#q /dy22jfJ-\0\0\0\17o\bä¼\0\0#q LV3mNSTm-\0\0\0\17o\bì¼\0\0#q x6I9vwKi-\0\0\0\17o\bô¼\0\0#q fsrmelJX-\0\0\0\17o\bü¼\0\0#q D6zmOk4e-\0\0\0\17o\b\ 4½\0\0#q /y1x5u6N-\0\0\0\17o\b\f½\0\0#q kaNqieX1-\0\0\0\17o\b\14½\0\0#q 7yTTwyGt-\0\0\0\17o\b\1c½\0\0#q H46H4Fak-\0\0\0\17o\b\0\0#q 1c3Kk5z/-\0\0\0\17o\b\0\0#q ZZaK7PU4-\0\0\0\17o\b\0\0#q mLKJZX6y-\0\0\0\17o\b\0\0#q Sfl593p1-\0\0\0\17o\b\0\0#q JU4nVzP4-\0\0\0\17o\b\0\0#q uonn80Sf-\0\0\0\17o\b\0\0#q 8PxBATaS-\0\0\0\17o\b\0\0#q frZLZLbU-\0\0\0\17o\b\0\0#q FOifY8b/-\0\0\0\17o\b\0\0#q OQOkPKRJ-\0\0\0\17o\b\0\0#q YuHzE80n-\0\0\0\17o\b\0\0#q 8kWiVZVK-\0\0\0\17o\b\84½\0\0#q KsiPyj7f-\0\0\0\17o\b\8c½\0\0#q 1czhH4I6-\0\0\0\17o\b\94½\0\0#q GHur5ngf-\0\0\0\17o\b\9c½\0\0#q JsPHxaVD-\0\0\0\17o\b¤½\0\0#q wbH4JEAn-\0\0\0\17o\b¬½\0\0#q Rdt8Mbc2-\0\0\0\17o\b´½\0\0#q 5sbc26Wp-\0\0\0\17o\b¼½\0\0#q K369rsq2-\0\0\0\17o\bĽ\0\0#q Jk7ybJJ7-\0\0\0\17o\b̽\0\0#q nc7O76eH-\0\0\0\17o\bÔ½\0\0#q pxPLzn7O-\0\0\0\17o\bܽ\0\0#q kGqH8mmR-\0\0\0\17o\bä½\0\0#q +h6xJVRV-\0\0\0\17o\bì½\0\0#q TckP3rP/-\0\0\0\17o\bô½\0\0#q RST+xYn6-\0\0\0\17o\bü½\0\0#q JzHM8ErZ-\0\0\0\17o\b\ 4¾\0\0#q P8IJf7oK-\0\0\0\17o\b\f¾\0\0#q am6yrFq3-\0\0\0\17o\b\14¾\0\0#q COr+Gv1f-\0\0\0\17o\b\1c¾\0\0#q kE1ZskzB-\0\0\0\17o\b\0\0#q Ulfkrr8b-\0\0\0\17o\b\0\0#q 8hzk8yxE-\0\0\0\17o\b\0\0#q 2fNMfNrm-\0\0\0\17o\b\0\0#q i187J8z+-\0\0\0\17o\b\0\0#q Bmx2Wzuo-\0\0\0\17o\b\0\0#q upumHT83-\0\0\0\17o\b\0\0#q 4f0K/hL3-\0\0\0\17o\b\0\0#q SkSzQ2U8-\0\0\0\17o\b\0\0#q 5TkrZYbK-\0\0\0\17o\b\0\0#q MVKVsprf-\0\0\0\17o\b\0\0#q bMMsmUWy-\0\0\0\17o\b\0\0#q WP1W3DVj-\0\0\0\17o\b\84¾\0\0#q Wss1MNMa-\0\0\0\17o\b\8c¾\0\0#q H1WP6OTa-\0\0\0\17o\b\94¾\0\0#q GllrnZoi-\0\0\0\17o\b\9c¾\0\0#q AS6ssfNp-\0\0\0\17o\b¤¾\0\0#q 5sy3o6d+-\0\0\0\17o\b¬¾\0\0#q z1Phfsun-\0\0\0\17o\b´¾\0\0#q c9WPbpmX-\0\0\0\17o\b¼¾\0\0#q Pm3eqbeJ-\0\0\0\17o\bľ\0\0#q 3nCllcoS-\0\0\0\17o\b̾\0\0#q R9y0sQei-\0\0\0\17o\bÔ¾\0\0#q KPWxdMHS-\0\0\0\17o\bܾ\0\0#q L5yAm6DO-\0\0\0\17o\bä¾\0\0#q mnZx9/de-\0\0\0\17o\bì¾\0\0#q 80IwLgMA-\0\0\0\17o\bô¾\0\0#q wP8AgoIE-\0\0\0\17o\bü¾\0\0#q rJWSGzBh-\0\0\0\17o\b\ 4¿\0\0#q MaRbyCyG-\0\0\0\17o\b\f¿\0\0#q /KI3YnIr-\0\0\0\17o\b\14¿\0\0#q +zatN5zJ-\0\0\0\17o\b\1c¿\0\0#q m9iJx5Fl-\0\0\0\17o\b$¿\0\0#q EPllZszj-\0\0\0\17o\b,¿\0\0#q niMMODP1-\0\0\0\17o\b4¿\0\0#q NDhIdNGS-\0\0\0\17o\b<¿\0\0#q UoDpyr2M-\0\0\0\17o\bD¿\0\0#q FiNFAp7m-\0\0\0\17o\bL¿\0\0#q dhmsM3rn-\0\0\0\17o\bT¿\0\0#q 7xcKDPsQ-\0\0\0\17o\b\¿\0\0#q KdNOmEcq-\0\0\0\17o\bd¿\0\0#q RWE10Vn0-\0\0\0\17o\bl¿\0\0#q f5jdKeQd-\0\0\0\17o\bt¿\0\0#q D+sX9BD/-\0\0\0\17o\b|¿\0\0#q gPSY95Pt-\0\0\0\17o\b\84¿\0\0#q G5r5T0HY-\0\0\0\17o\b\8c¿\0\0#q ruV86045-\0\0\0\17o\b\94¿\0\0#q uEMRVSih-\0\0\0\17o\b\9c¿\0\0#q TsyZa8Me-\0\0\0\17o\b¤¿\0\0#q smkTJVlL-\0\0\0\17o\b¬¿\0\0#q KqkjBRhG-\0\0\0\17o\b´¿\0\0#q +JG9NNZ4-\0\0\0\17o\b¼¿\0\0#q h9alqTnN-\0\0\0\17o\bÄ¿\0\0#q fxllQNGA-\0\0\0\17o\bÌ¿\0\0#q 0GINwKMD-\0\0\0\17o\bÔ¿\0\0#q Y0ZDqh5V-\0\0\0\17o\bÜ¿\0\0#q +GFsqw2G-\0\0\0\17o\bä¿\0\0#q 6lfuxMZj-\0\0\0\17o\bì¿\0\0#q yPPPVzVO-\0\0\0\17o\bô¿\0\0#q +/y341ul-\0\0\0\17o\bü¿\0\0#q 3m+Nvxlt-\0\0\0\17o\b\ 4À\0\0#q Y2IqNsRY-\0\0\0\17o\b\fÀ\0\0#q 1tTEiANR-\0\0\0\17o\b\14À\0\0#q tZmKiypq-\0\0\0\17o\b\1cÀ\0\0#q JVJKtpSl-\0\0\0\17o\b\0\0#q tTk/sPm7-\0\0\0\17o\b\0\0#q /O/dRNKm-\0\0\0\17o\b\0\0#q 7YOQYxq6-\0\0\0\17o\b\0\0#q uWOcR7KE-\0\0\0\17o\b\0\0#q 3fYnBOUc-\0\0\0\17o\b\0\0#q rZ8tbxGp-\0\0\0\17o\b\0\0#q Qnw+T1h+-\0\0\0\17o\b\0\0#q E9UnrJ+6-\0\0\0\17o\b\0\0#q E4e77/fd-\0\0\0\17o\b\0\0#q EqziI7b4-\0\0\0\17o\b\0\0#q QxqWvgPV-\0\0\0\17o\b\0\0#q Y2JuUihv-\0\0\0\17o\b\84À\0\0#q CTzqWzax-\0\0\0\17o\b\8cÀ\0\0#q J8k0/ueZ-\0\0\0\17o\b\94À\0\0#q Nn2cHv/7-\0\0\0\17o\b\9cÀ\0\0#q 23l7vkvl-\0\0\0\17o\b¤À\0\0#q 321HbIYe-\0\0\0\17o\b¬À\0\0#q gUM+f6eV-\0\0\0\17o\b´À\0\0#q z7iFR6+P-\0\0\0\17o\b¼À\0\0#q 17uMwF+A-\0\0\0\17o\bÄÀ\0\0#q HuHwfOrG-\0\0\0\17o\bÌÀ\0\0#q 7J7tnlJL-\0\0\0\17o\bÔÀ\0\0#q oqxiJZp7-\0\0\0\17o\bÜÀ\0\0#q OkanzOMm-\0\0\0\17o\bäÀ\0\0#q 8/JPR9k3-\0\0\0\17o\bìÀ\0\0#q N9px0iV2-\0\0\0\17o\bôÀ\0\0#q kiN/2MZW-\0\0\0\17o\büÀ\0\0#q Op+Dmehw-\0\0\0\17o\b\ 4Á\0\0#q 93hD9FiR-\0\0\0\17o\b\fÁ\0\0#q 9EvPnH5s-\0\0\0\17o\b\14Á\0\0#q fKX5VzOW-\0\0\0\17o\b\1cÁ\0\0#q REnZyUU+-\0\0\0\17o\b\0\0#q va6YuauV-\0\0\0\17o\b\0\0#q pl1jSzGG-\0\0\0\17o\b\0\0#q KqpqKIOV-\0\0\0\17o\b\0\0#q A2BEIIMp-\0\0\0\17o\b\0\0#q S3xoVbiJ-\0\0\0\17o\b\0\0#q DZ+4+ep9-\0\0\0\17o\b\0\0#q reEaqbrq-\0\0\0\17o\b\0\0#q J9X9jOrr-\0\0\0\17o\b\0\0#q vJSr+/C3-\0\0\0\17o\b\0\0#q LCqZIomM-\0\0\0\17o\b\0\0#q TTGl5dro-\0\0\0\17o\b\0\0#q WwvUnqT7-\0\0\0\17o\b\84Á\0\0#q fVasJ7Q3-\0\0\0\17o\b\8cÁ\0\0#q Vdshbp9j-\0\0\0\17o\b\94Á\0\0#q H8pBJ6bD-\0\0\0\17o\b\9cÁ\0\0#q 2U+Cd/hZ-\0\0\0\17o\b¤Á\0\0#q bX9ay6kU-\0\0\0\17o\b¬Á\0\0#q 8KxTu8tt-\0\0\0\17o\b´Á\0\0#q bZlm1Zpp-\0\0\0\17o\b¼Á\0\0#q tjy1hjMV-\0\0\0\17o\bÄÁ\0\0#q abYxkKUR-\0\0\0\17o\bÌÁ\0\0#q gyjKMrbF-\0\0\0\17o\bÔÁ\0\0#q pVVpilVW-\0\0\0\17o\bÜÁ\0\0#q Fxd4lsXb-\0\0\0\17o\bäÁ\0\0#q 8MOW7fVi-\0\0\0\17o\bìÁ\0\0#q pDJxhwVy-\0\0\0\17o\bôÁ\0\0#q RmzTVLLx-\0\0\0\17o\büÁ\0\0#q kzco2dz5-\0\0\0\17o\b\ 4Â\0\0#q NnmsjnxG-\0\0\0\17o\b\fÂ\0\0#q SQ0xLOUG-\0\0\0\17o\b\14Â\0\0#q ItVGqYkj-\0\0\0\17o\b\1cÂ\0\0#q aPOd1ixX-\0\0\0\17o\b\0\0#q J8pvAbHr-\0\0\0\17o\b\0\0#q xPhNAgJ1-\0\0\0\17o\b\0\0#q 68Kvepi5-\0\0\0\17o\b\0\0#q THZi1Orm-\0\0\0\17o\b\0\0#q 5ld4ad8r-\0\0\0\17o\b\0\0#q 162e8Lnx-\0\0\0\17o\b\0\0#q 2rLKuWUX-\0\0\0\17o\b\0\0#q YSACKn+0-\0\0\0\17o\b\0\0#q Q+UPkiWk-\0\0\0\17o\b\0\0#q UT/jy4+m-\0\0\0\17o\b\0\0#q bc//nw1t-\0\0\0\17o\b\0\0#q lzru26a1-\0\0\0\17o\b\84Â\0\0#q 6nw/ipmj-\0\0\0\17o\b\8cÂ\0\0#q oukAwgMm-\0\0\0\17o\b\94Â\0\0#q ggdSKdGb-\0\0\0\17o\b\9cÂ\0\0#q GU/Iprgv-\0\0\0\17o\b¤Â\0\0#q jn77Ct2W-\0\0\0\17o\b¬Â\0\0#q hTTOcy5K-\0\0\0\17o\b´Â\0\0#q ZMORZMZR-\0\0\0\17o\b¼Â\0\0#q WwQ6QquG-\0\0\0\17o\bÄÂ\0\0#q ZW1JTVlg-\0\0\0\17o\bÌÂ\0\0#q QmM8osKK-\0\0\0\17o\bÔÂ\0\0#q GDGMJIGM-\0\0\0\17o\bÜÂ\0\0#q IBsiwhSh-\0\0\0\17o\bäÂ\0\0#q SkqxMPy+-\0\0\0\17o\bìÂ\0\0#q 3NPLDrbg-\0\0\0\17o\bôÂ\0\0#q VBbDqzyC-\0\0\0\17o\büÂ\0\0#q BgWZKJrE-\0\0\0\17o\b\ 4Ã\0\0#q QiRzR54q-\0\0\0\17o\b\fÃ\0\0#q wia4gUep-\0\0\0\17o\b\14Ã\0\0#q CJo2Szrc-\0\0\0\17o\b\1cÃ\0\0#q VXl3bH+s-\0\0\0\17o\b\0\0#q TOvr0qFH-\0\0\0\17o\b\0\0#q lmMYpGEQ-\0\0\0\17o\b\0\0#q aiFZjEgQ-\0\0\0\17o\b\0\0#q mdarIu7T-\0\0\0\17o\b\0\0#q 2kdmRlAF-\0\0\0\17o\b\0\0#q SkKsnCon-\0\0\0\17o\b\0\0#q JTZVYwmz-\0\0\0\17o\b\0\0#q OAdnDjWU-\0\0\0\17o\b\0\0#q lQbpLqEm-\0\0\0\17o\b\0\0#q zOttyWq4-\0\0\0\17o\b\0\0#q 29ehDBlM-\0\0\0\17o\b\0\0#q RRpyaUji-\0\0\0\17o\b\84Ã\0\0#q 5o2uW/LZ-\0\0\0\17o\b\8cÃ\0\0#q 8wQgAFSM-\0\0\0\17o\b\94Ã\0\0#q YB0Wdnuk-\0\0\0\17o\b\9cÃ\0\0#q 9X8nH0na-\0\0\0\17o\b¤Ã\0\0#q SH9JI+g9-\0\0\0\17o\b¬Ã\0\0#q o2Gzu5nU-\0\0\0\17o\b´Ã\0\0#q Vw9Vruje-\0\0\0\17o\b¼Ã\0\0#q RN048OjN-\0\0\0\17o\bÄÃ\0\0#q oP8LOjhS-\0\0\0\17o\bÌÃ\0\0#q uG/rTtFP-\0\0\0\17o\bÔÃ\0\0#q k8g307qh-\0\0\0\17o\bÜÃ\0\0#q pyc48W4w-\0\0\0\17o\bäÃ\0\0#q op6dLpbp-\0\0\0\17o\bìÃ\0\0#q G62VarE1-\0\0\0\17o\bôÃ\0\0#q XE8iOyVK-\0\0\0\17o\büÃ\0\0#q 9ztXvOYw-\0\0\0\17o\b\ 4Ä\0\0#q 0JoSwJZJ-\0\0\0\17o\b\fÄ\0\0#q Ftfft+V8-\0\0\0\17o\b\14Ä\0\0#q JibSreNo-\0\0\0\17o\b\1cÄ\0\0#q mUqaifeY-\0\0\0\17o\b\0\0#q C3fJ5fCn-\0\0\0\17o\b\0\0#q ZQIMR8DD-\0\0\0\17o\b\0\0#q QUIxtbZG-\0\0\0\17o\b\0\0#q zGjKKNDy-\0\0\0\17o\b\0\0#q RspoqZqZ-\0\0\0\17o\b\0\0#q ossZ6UUD-\0\0\0\17o\b\0\0#q MFZKUgwY-\0\0\0\17o\b\0\0#q wsMaaYqa-\0\0\0\17o\b\0\0#q YrCr66wt-\0\0\0\17o\b\0\0#q ypjY2abp-\0\0\0\17o\b\0\0#q VSX/mXeS-\0\0\0\17o\b\0\0#q NkaJPqgQ-\0\0\0\17o\b\84Ä\0\0#q hw2mmMjH-\0\0\0\17o\b\8cÄ\0\0#q EHymdzJL-\0\0\0\17o\b\94Ä\0\0#q zYsvmuuv-\0\0\0\17o\b\9cÄ\0\0#q Vbsqy6m7-\0\0\0\17o\b¤Ä\0\0#q aYqyZnGo-\0\0\0\17o\b¬Ä\0\0#q erqj3UeP-\0\0\0\17o\b´Ä\0\0#q iyIVZIoq-\0\0\0\17o\b¼Ä\0\0#q KthYOZ6v-\0\0\0\17o\bÄÄ\0\0#q GFsYpWJz-\0\0\0\17o\bÌÄ\0\0#q 5ns4SY/y-\0\0\0\17o\bÔÄ\0\0#q i4BSSykt-\0\0\0\17o\bÜÄ\0\0#q v0dXbf1b-\0\0\0\17o\bäÄ\0\0#q 1fl9fp9+-\0\0\0\17o\bìÄ\0\0#q 36YjGvdR-\0\0\0\17o\bôÄ\0\0#q RMDFkx6P-\0\0\0\17o\büÄ\0\0#q p9wzFt1H-\0\0\0\17o\b\ 4Å\0\0#q 2f0Y5CMb-\0\0\0\17o\b\fÅ\0\0#q VjGyUszE-\0\0\0\17o\b\14Å\0\0#q rxN3k9ks-\0\0\0\17o\b\1cÅ\0\0#q 0S1Zk8Ie-\0\0\0\17o\b\0\0#q itT1VrI3-\0\0\0\17o\b\0\0#q R37ye53T-\0\0\0\17o\b\0\0#q h502X+92-\0\0\0\17o\b\0\0#q 54a+co8o-\0\0\0\17o\b\0\0#q 7nMnWdCi-\0\0\0\17o\b\0\0#q wosHYmvk-\0\0\0\17o\b\0\0#q tSVSyC6P-\0\0\0\17o\b\0\0#q 4FSTb4ev-\0\0\0\17o\b\0\0#q j8e+aNQ/-\0\0\0\17o\b\0\0#q gr3by2tm-\0\0\0\17o\b\0\0#q lU3bI5Cj-\0\0\0\17o\b\0\0#q jaesCuuO-\0\0\0\17o\b\84Å\0\0#q TInFMxR6-\0\0\0\17o\b\8cÅ\0\0#q BGGiWW1N-\0\0\0\17o\b\94Å\0\0#q jQqsYxKU-\0\0\0\17o\b\9cÅ\0\0#q lU0qtak2-\0\0\0\17o\b¤Å\0\0#q QF9FdGkK-\0\0\0\17o\b¬Å\0\0#q OPTjiqoq-\0\0\0\17o\b´Å\0\0#q d6H0PuA+-\0\0\0\17o\b¼Å\0\0#q KaOAwX65-\0\0\0\17o\bÄÅ\0\0#q yfbt0Uu2-\0\0\0\17o\bÌÅ\0\0#q t+9+Ovxw-\0\0\0\17o\bÔÅ\0\0#q swtdK+Z6-\0\0\0\17o\bÜÅ\0\0#q T46z9ur6-\0\0\0\17o\bäÅ\0\0#q JavYqrVy-\0\0\0\17o\bìÅ\0\0#q SsYUxinb-\0\0\0\17o\bôÅ\0\0#q ay2mTZRV-\0\0\0\17o\büÅ\0\0#q K1bWMy8H-\0\0\0\17o\b\ 4Æ\0\0#q m/TRaetZ-\0\0\0\17o\b\fÆ\0\0#q W+L6HJ1G-\0\0\0\17o\b\14Æ\0\0#q I7KbTEno-\0\0\0\17o\b\1cÆ\0\0#q kj3nzVNV-\0\0\0\17o\b\0\0#q iyloqqry-\0\0\0\17o\b\0\0#q Y4aU20ms-\0\0\0\17o\b\0\0#q YtW5mTfB-\0\0\0\17o\b\0\0#q tWDH/fMF-\0\0\0\17o\b\0\0#q A6MUxGMR-\0\0\0\17o\b\0\0#q NFAuSNrZ-\0\0\0\17o\b\0\0#q k1GrtLMg-\0\0\0\17o\b\0\0#q 2RpFCqVU-\0\0\0\17o\b\0\0#q aUsYRZMi-\0\0\0\17o\b\0\0#q N2Nim9bn-\0\0\0\17o\b\0\0#q yPI1L5d7-\0\0\0\17o\b\0\0#q amo7nk14-\0\0\0\17o\b\84Æ\0\0#q 2ZMm73SJ-\0\0\0\17o\b\8cÆ\0\0#q /eoPU902-\0\0\0\17o\b\94Æ\0\0#q bpY5T5yQ-\0\0\0\17o\b\9cÆ\0\0#q 6ffJkrLb-\0\0\0\17o\b¤Æ\0\0#q Kvs844re-\0\0\0\17o\b¬Æ\0\0#q ynK6fNsr-\0\0\0\17o\b´Æ\0\0#q oOIGSOqT-\0\0\0\17o\b¼Æ\0\0#q dhDZO0Il-\0\0\0\17o\bÄÆ\0\0#q kpYiq6Oz-\0\0\0\17o\bÌÆ\0\0#q Fkc0U/fP-\0\0\0\17o\bÔÆ\0\0#q TYvU9bxW-\0\0\0\17o\bÜÆ\0\0#q XZeLi5F9-\0\0\0\17o\bäÆ\0\0#q 02sZZU2y-\0\0\0\17o\bìÆ\0\0#q sGSmlVu0-\0\0\0\17o\bôÆ\0\0#q qcXTGyX5-\0\0\0\17o\büÆ\0\0#q KS21VKrY-\0\0\0\17o\b\ 4Ç\0\0#q w87pVnOc-\0\0\0\17o\b\fÇ\0\0#q iN204sTw-\0\0\0\17o\b\14Ç\0\0#q OM8R5cJL-\0\0\0\17o\b\1cÇ\0\0#q XpE8sT3g-\0\0\0\17o\b\0\0#q dCaTqejS-\0\0\0\17o\b\0\0#q JPFnanub-\0\0\0\17o\b\0\0#q qkqvQ5+E-\0\0\0\17o\b\0\0#q kEjrFki/-\0\0\0\17o\b\0\0#q syRPSKqx-\0\0\0\17o\b\0\0#q ixHNf1x6-\0\0\0\17o\b\0\0#q 9+Xp6t6l-\0\0\0\17o\b\0\0#q 5LGF8d0x-\0\0\0\17o\b\0\0#q I7umlRgx-\0\0\0\17o\b\0\0#q kIYgsKQG-\0\0\0\17o\b\0\0#q ahBGMdwk-\0\0\0\17o\b\0\0#q bbIclCjg-\0\0\0\17o\b\84Ç\0\0#q 2oW00iZA-\0\0\0\17o\b\8cÇ\0\0#q hDSVAoDG-\0\0\0\17o\b\94Ç\0\0#q hqhIDTC4-\0\0\0\17o\b\9cÇ\0\0#q UGjDNVSw-\0\0\0\17o\b¤Ç\0\0#q INaWT7/c-\0\0\0\17o\b¬Ç\0\0#q +6B936RG-\0\0\0\17o\b´Ç\0\0#q V91beaH+-\0\0\0\17o\b¼Ç\0\0#q tFpClUqV-\0\0\0\17o\bÄÇ\0\0#q ar6a57xS-\0\0\0\17o\bÌÇ\0\0#q 1YsdOxwx-\0\0\0\17o\bÔÇ\0\0#q j98iTq3t-\0\0\0\17o\bÜÇ\0\0#q eHw5yT2N-\0\0\0\17o\bäÇ\0\0#q nV6Ms+s+-\0\0\0\17o\bìÇ\0\0#q NR8b24bK-\0\0\0\17o\bôÇ\0\0#q w/NWKKqq-\0\0\0\17o\büÇ\0\0#q ZhiqnM8Q-\0\0\0\17o\b\ 4È\0\0#q ftpfQb+C-\0\0\0\17o\b\fÈ\0\0#q Vs3lZLSS-\0\0\0\17o\b\14È\0\0#q ASqcfM7y-\0\0\0\17o\b\1cÈ\0\0#q VxGYledb-\0\0\0\17o\b\0\0#q nrN50XJB-\0\0\0\17o\b\0\0#q ATYaCsBt-\0\0\0\17o\b\0\0#q FYJlZR2S-\0\0\0\17o\b\0\0#q Kwb21+jq-\0\0\0\17o\b\0\0#q RiNFI0Sa-\0\0\0\17o\b\0\0#q rSjgiATZ-\0\0\0\17o\b\0\0#q nWelW7O0-\0\0\0\17o\b\0\0#q mbziCfju-\0\0\0\17o\b\0\0#q 7ylzo7WS-\0\0\0\17o\b\0\0#q qylsYp0J-\0\0\0\17o\b\0\0#q pjJU0qaM-\0\0\0\17o\b\0\0#q lJUUVhGi-\0\0\0\17o\b\84È\0\0#q lWTZudCx-\0\0\0\17o\b\8cÈ\0\0#q M+kc+l5u-\0\0\0\17o\b\94È\0\0#q TSG84qLY-\0\0\0\17o\b\9cÈ\0\0#q v2ZJMli2-\0\0\0\17o\b¤È\0\0#q qrILI2Tq-\0\0\0\17o\b¬È\0\0#q ln4cMqNh-\0\0\0\17o\b´È\0\0#q Aj4gogAn-\0\0\0\17o\b¼È\0\0#q cslWOiwa-\0\0\0\17o\bÄÈ\0\0#q V+BwnPnE-\0\0\0\17o\bÌÈ\0\0#q jdp7E6Ul-\0\0\0\17o\bÔÈ\0\0#q qPtYJYV9-\0\0\0\17o\bÜÈ\0\0#q Tg3WI95F-\0\0\0\17o\bäÈ\0\0#q kO6beZO8-\0\0\0\17o\bìÈ\0\0#q nlbeyYVc-\0\0\0\17o\bôÈ\0\0#q 7od2tLyl-\0\0\0\17o\büÈ\0\0#q ZPKLTp1I-\0\0\0\17o\b\ 4É\0\0#q 35t2iLsk-\0\0\0\17o\b\fÉ\0\0#q ipSBQqtb-\0\0\0\17o\b\14É\0\0#q UX19H2kW-\0\0\0\17o\b\1cÉ\0\0#q D8z2PyVP-\0\0\0\17o\b\0\0#q mh9rLUcr-\0\0\0\17o\b\0\0#q DSKQsTJI-\0\0\0\17o\b\0\0#q fukqY7Hl-\0\0\0\17o\b\0\0#q 5DzdPLdU-\0\0\0\17o\b\0\0#q qq1+LJp5-\0\0\0\17o\b\0\0#q emzvHWPL-\0\0\0\17o\b\0\0#q N9YtWeh+-\0\0\0\17o\b\0\0#q 2WzylkbF-\0\0\0\17o\b\0\0#q NlTCyVWK-\0\0\0\17o\b\0\0#q ZpKyQ4Yw-\0\0\0\17o\b\0\0#q qnWq3kKz-\0\0\0\17o\b\0\0#q Cwje4lWd-\0\0\0\17o\b\84É\0\0#q zTuDbTZx-\0\0\0\17o\b\8cÉ\0\0#q x4bJ8tzH-\0\0\0\17o\b\94É\0\0#q Gu7m3prW-\0\0\0\17o\b\9cÉ\0\0#q SakaVZnc-\0\0\0\17o\b¤É\0\0#q MwY02dcu-\0\0\0\17o\b¬É\0\0#q 7kznctvM-\0\0\0\17o\b´É\0\0#q 5MknBXCm-\0\0\0\17o\b¼É\0\0#q wVtKfU0x-\0\0\0\17o\bÄÉ\0\0#q Wphkowpi-\0\0\0\17o\bÌÉ\0\0#q VsxiVW7I-\0\0\0\17o\bÔÉ\0\0#q 2rWqtRhw-\0\0\0\17o\bÜÉ\0\0#q pcXDoaZN-\0\0\0\17o\bäÉ\0\0#q 1MN6tYlK-\0\0\0\17o\bìÉ\0\0#q rh3GpWUl-\0\0\0\17o\bôÉ\0\0#q JLvXd43O-\0\0\0\17o\büÉ\0\0#q uslSWQ0f-\0\0\0\17o\b\ 4Ê\0\0#q VcxqeL+B-\0\0\0\17o\b\fÊ\0\0#q Xv1rpQyB-\0\0\0\17o\b\14Ê\0\0#q qdm7e1Ra-\0\0\0\17o\b\1cÊ\0\0#q 8loulyub-\0\0\0\17o\b\0\0#q VzbXOGoN-\0\0\0\17o\b\0\0#q VpN1/mjc-\0\0\0\17o\b\0\0#q bxaAiUP6-\0\0\0\17o\b\0\0#q xnhT7z2I-\0\0\0\17o\b\0\0#q JaTCQVgt-\0\0\0\17o\b\0\0#q DpQcGFJg-\0\0\0\17o\b\0\0#q WSBTA5ba-\0\0\0\17o\b\0\0#q tqKV5l3r-\0\0\0\17o\b\0\0#q uu7XC3Ny-\0\0\0\17o\b\0\0#q ZRFeT486-\0\0\0\17o\b\0\0#q vWm68lRq-\0\0\0\17o\b\0\0#q MyRNpSzS-\0\0\0\17o\b\84Ê\0\0#q psi1KyzL-\0\0\0\17o\b\8cÊ\0\0#q GmTS2azS-\0\0\0\17o\b\94Ê\0\0#q VMZqtq2b-\0\0\0\17o\b\9cÊ\0\0#q ay1a0raV-\0\0\0\17o\b¤Ê\0\0#q mmyq2yqi-\0\0\0\17o\b¬Ê\0\0#q kIVCwBSI-\0\0\0\17o\b´Ê\0\0#q qSpJJKsV-\0\0\0\17o\b¼Ê\0\0#q BYgSKsBL-\0\0\0\17o\bÄÊ\0\0#q SopRkS2t-\0\0\0\17o\bÌÊ\0\0#q tKmrVKmA-\0\0\0\17o\bÔÊ\0\0#q 1rSpZU2J-\0\0\0\17o\bÜÊ\0\0#q TWWSGtUt-\0\0\0\17o\bäÊ\0\0#q msrMWKVL-\0\0\0\17o\bìÊ\0\0#q LVRCkSkE-\0\0\0\17o\bôÊ\0\0#q qQS0GpKl-\0\0\0\17o\büÊ\0\0#q KZllNtK0-\0\0\0\17o\b\ 4Ë\0\0#q WFGTNpZY-\0\0\0\17o\b\fË\0\0#q 2lmmZKZL-\0\0\0\17o\b\14Ë\0\0#q bWbabW0t-\0\0\0\17o\b\1cË\0\0#q tZTSTFMk-\0\0\0\17o\b\0\0#q lmzbbTaa-\0\0\0\17o\b\0\0#q jUNZaVNK-\0\0\0\17o\b\0\0#q zWaipYqK-\0\0\0\17o\b\0\0#q mU2mMk2l-\0\0\0\17o\b\0\0#q ilaVplhZ-\0\0\0\17o\b\0\0#q MykpmlSw-\0\0\0\17o\b\0\0#q amzZsrUt-\0\0\0\17o\b\0\0#q UJCNs2xE-\0\0\0\17o\b\0\0#q 2zWbLJpm-\0\0\0\17o\b\0\0#q mmlSyzaY-\0\0\0\17o\b\0\0#q zNqWpsss-\0\0\0\17o\b\0\0#q pZTaqtm1-\0\0\0\17o\b\84Ë\0\0#q VbJlmm01-\0\0\0\17o\b\8cË\0\0#q kzUtDKks-\0\0\0\17o\b\94Ë\0\0#q 1LIK020p-\0\0\0\17o\b\9cË\0\0#q KUpNRlKT-\0\0\0\17o\b¤Ë\0\0#q SlmUprKz-\0\0\0\17o\b¬Ë\0\0#q RSmk1NTZ-\0\0\0\17o\b´Ë\0\0#q ZJrNhJIZ-\0\0\0\17o\b¼Ë\0\0#q MlSpNJDM-\0\0\0\17o\bÄË\0\0#q ktbNVDEs-\0\0\0\17o\bÌË\0\0#q mpKFKVJt-\0\0\0\17o\bÔË\0\0#q llm0ps2W-\0\0\0\17o\bÜË\0\0#q zabGsbM2-\0\0\0\17o\bäË\0\0#q aQtmsJaM-\0\0\0\17o\bìË\0\0#q kNaVJmss-\0\0\0\17o\bôË\0\0#q NbZtbMpr-\0\0\0\17o\büË\0\0#q NYqWVKla-\0\0\0\17o\b\ 4Ì\0\0#q TUapJmGz-\0\0\0\17o\b\fÌ\0\0#q RClCZhpm-\0\0\0\17o\b\14Ì\0\0#q EmZpEymp-\0\0\0\17o\b\1cÌ\0\0#q qWZmWbRs-\0\0\0\17o\b\0\0#q 0SaY0lNT-\0\0\0\17o\b\0\0#q U2lqbLNt-\0\0\0\17o\b\0\0#q ts1tsrNt-\0\0\0\17o\b\0\0#q KqSWmGWW-\0\0\0\17o\b\0\0#q W0tZrNiG-\0\0\0\17o\b\0\0#q Uy2ylLU2-\0\0\0\17o\b\0\0#q jJWUySml-\0\0\0\17o\b\0\0#q NmpspWFK-\0\0\0\17o\b\0\0#q JrTVkE1l-\0\0\0\17o\b\0\0#q JmakWTZm-\0\0\0\17o\b\0\0#q UtpS0rKy-\0\0\0\17o\b\0\0#q qpVsilms-\0\0\0\17o\b\84Ì\0\0#q NrWWbLMq-\0\0\0\17o\b\8cÌ\0\0#q aVLFlNma-\0\0\0\17o\b\94Ì\0\0#q zabZtNpp-\0\0\0\17o\b\9cÌ\0\0#q oZJEkxlJ-\0\0\0\17o\b¤Ì\0\0#q IlplYbNU-\0\0\0\17o\b¬Ì\0\0#q MaaVKhIU-\0\0\0\17o\b´Ì\0\0#q ylmxaWkE-\0\0\0\17o\b¼Ì\0\0#q slm2WoAZ-\0\0\0\17o\bÄÌ\0\0#q mYGmm02k-\0\0\0\17o\bÌÌ\0\0#q mZ9vNcym-\0\0\0\17o\bÔÌ\0\0#q /zYZ1m/E-\0\0\0\17o\bÜÌ\0\0#q +UySfg39-\0\0\0\17o\bäÌ\0\0#q LUVVWb+0-\0\0\0\17o\bìÌ\0\0#q CAnu+IVn-\0\0\0\17o\bôÌ\0\0#q zkTYexs7-\0\0\0\17o\büÌ\0\0#q ufDm0VjD-\0\0\0\17o\b\ 4Í\0\0#q Z7mmLPDC-\0\0\0\17o\b\fÍ\0\0#q jvRkCK4N-\0\0\0\17o\b\14Í\0\0#q H4KYIPfT-\0\0\0\17o\b\1cÍ\0\0#q EsxAJVJT-\0\0\0\17o\b\0\0#q CY4MNNqK-\0\0\0\17o\b\0\0#q qTgrJkmj-\0\0\0\17o\b\0\0#q RkVkyN9M-\0\0\0\17o\b\0\0#q MuNskxW0-\0\0\0\17o\b\0\0#q mmjTSlSs-\0\0\0\17o\b\0\0#q RiUzxDKZ-\0\0\0\17o\b\0\0#q mvWVXm9Y-\0\0\0\17o\b\0\0#q 8a6VLqbb-\0\0\0\17o\b\0\0#q WXtSMLsZ-\0\0\0\17o\b\0\0#q GTNoSqYk-\0\0\0\17o\b\0\0#q yYjI2VEs-\0\0\0\17o\b\0\0#q koLRRUbR-\0\0\0\17o\b\84Í\0\0#q RsbWkqSt-\0\0\0\17o\b\8cÍ\0\0#q Sau0Wgop-\0\0\0\17o\b\94Í\0\0#q Msq6V0SZ-\0\0\0\17o\b\9cÍ\0\0#q ehQ82kyx-\0\0\0\17o\b¤Í\0\0#q bJsqq2k6-\0\0\0\17o\b¬Í\0\0#q xbaqqpy8-\0\0\0\17o\b´Í\0\0#q chxElkKV-\0\0\0\17o\b¼Í\0\0#q ybMPBqa1-\0\0\0\17o\bÄÍ\0\0#q jIGLJqNa-\0\0\0\17o\bÌÍ\0\0#q WSNnw5w5-\0\0\0\17o\bÔÍ\0\0#q rJRVJ8pX-\0\0\0\17o\bÜÍ\0\0#q QahwWUzy-\0\0\0\17o\bäÍ\0\0#q p0wnz/U0-\0\0\0\17o\bìÍ\0\0#q hIEiEYfz-\0\0\0\17o\bôÍ\0\0#q EVFZGtr8-\0\0\0\17o\büÍ\0\0#q GqLFqNUU-\0\0\0\17o\b\ 4Î\0\0#q a0pVZVFV-\0\0\0\17o\b\fÎ\0\0#q lLVsEy7V-\0\0\0\17o\b\14Î\0\0#q F1qILVeG-\0\0\0\17o\b\1cÎ\0\0#q Ek2aS+WJ-\0\0\0\17o\b\0\0#q ki7F2pqD-\0\0\0\17o\b\0\0#q 7InRyG/W-\0\0\0\17o\b\0\0#q jNbxTzY7-\0\0\0\17o\b\0\0#q E029eTdr-\0\0\0\17o\b\0\0#q /1ZJlhzx-\0\0\0\17o\b\0\0#q xZEk7TYx-\0\0\0\17o\b\0\0#q ZI2Vk4yI-\0\0\0\17o\b\0\0#q 8WLZEUcf-\0\0\0\17o\b\0\0#q Opyzjm2I-\0\0\0\17o\b\0\0#q 50sicpFj-\0\0\0\17o\b\0\0#q zHRZKelY-\0\0\0\17o\b\0\0#q LMxipnrp-\0\0\0\17o\b\84Î\0\0#q olbK2wP3-\0\0\0\17o\b\8cÎ\0\0#q Gj5QrZ3m-\0\0\0\17o\b\94Î\0\0#q E7dW70dJ-\0\0\0\17o\b\9cÎ\0\0#q N3aTWPvG-\0\0\0\17o\b¤Î\0\0#q zFnLOYsc-\0\0\0\17o\b¬Î\0\0#q QkecNk/K-\0\0\0\17o\b´Î\0\0#q dSbVattW-\0\0\0\17o\b¼Î\0\0#q /g8tatRJ-\0\0\0\17o\bÄÎ\0\0#q 9BbaVmTU-\0\0\0\17o\bÌÎ\0\0#q cNkbE5Ni-\0\0\0\17o\bÔÎ\0\0#q RgCjqJjB-\0\0\0\17o\bÜÎ\0\0#q FYYMQEpX-\0\0\0\17o\bäÎ\0\0#q T39BIxlL-\0\0\0\17o\bìÎ\0\0#q WwvLhFGp-\0\0\0\17o\bôÎ\0\0#q GWUqKViq-\0\0\0\17o\büÎ\0\0#q xkcZkznh-\0\0\0\17o\b\ 4Ï\0\0#q qQLSNrGQ-\0\0\0\17o\b\fÏ\0\0#q hBUdGYxN-\0\0\0\17o\b\14Ï\0\0#q 2kbWNpAz-\0\0\0\17o\b\1cÏ\0\0#q dTVXSs46-\0\0\0\17o\b\0\0#q S3TNK5yd-\0\0\0\17o\b\0\0#q 26mxXO7t-\0\0\0\17o\b\0\0#q XNdm0m6b-\0\0\0\17o\b\0\0#q RbSTJvK6-\0\0\0\17o\b\0\0#q rpKW2TFt-\0\0\0\17o\b\0\0#q vPLvJbNa-\0\0\0\17o\b\0\0#q SixoxKyE-\0\0\0\17o\b\0\0#q mNk0kWK0-\0\0\0\17o\b\0\0#q SdjZs2No-\0\0\0\17o\b\0\0#q hYnAsejh-\0\0\0\17o\b\0\0#q FowruXCQ-\0\0\0\17o\b\0\0#q lUVFqVGp-\0\0\0\17o\b\84Ï\0\0#q E0UGZIZE-\0\0\0\17o\b\8cÏ\0\0#q c3lktTo0-\0\0\0\17o\b\94Ï\0\0#q 3a6N+Eif-\0\0\0\17o\b\9cÏ\0\0#q lSdFScJJ-\0\0\0\17o\b¤Ï\0\0#q 0xKRxN5+-\0\0\0\17o\b¬Ï\0\0#q ZDlCLZB9-\0\0\0\17o\b´Ï\0\0#q FWySZUtk-\0\0\0\17o\b¼Ï\0\0#q hL9OWNS5-\0\0\0\17o\bÄÏ\0\0#q Kx7HmGk3-\0\0\0\17o\bÌÏ\0\0#q Zm+vn/ku-\0\0\0\17o\bÔÏ\0\0#q SquatyCw-\0\0\0\17o\bÜÏ\0\0#q YtGGhIxp-\0\0\0\17o\bäÏ\0\0#q QKVBh9sw-\0\0\0\17o\bìÏ\0\0#q s7qnJ2th-\0\0\0\17o\bôÏ\0\0#q u+NtlbJb-\0\0\0\17o\büÏ\0\0#q ljpdXFmF-\0\0\0\17o\b\ 4Ð\0\0#q p6I0cN3V-\0\0\0\17o\b\fÐ\0\0#q hW7RqTNa-\0\0\0\17o\b\14Ð\0\0#q cWNJ80k/-\0\0\0\17o\b\1cÐ\0\0#q pbIVr82C-\0\0\0\17o\b\0\0#q R/iVzKp1-\0\0\0\17o\b\0\0#q fJPyjz7u-\0\0\0\17o\b\0\0#q 0PGnOl53-\0\0\0\17o\b\0\0#q LbDvYakR-\0\0\0\17o\b\0\0#q 0ZJD8qm5-\0\0\0\17o\b\0\0#q 9mWLpEWR-\0\0\0\17o\b\0\0#q zhu+1n9O-\0\0\0\17o\b\0\0#q UKT1kn8V-\0\0\0\17o\b\0\0#q Oh3p4lv5-\0\0\0\17o\b\0\0#q ZjCqf3P8-\0\0\0\17o\b\0\0#q 2pWjKmxU-\0\0\0\17o\b\0\0#q zVvxpOH8-\0\0\0\17o\b\84Ð\0\0#q eDZPhDwf-\0\0\0\17o\b\8cÐ\0\0#q ii4JZZPc-\0\0\0\17o\b\94Ð\0\0#q J67Ts94+-\0\0\0\17o\b\9cÐ\0\0#q JJ8JN6n2-\0\0\0\17o\b¤Ð\0\0#q RXJ/iPpD-\0\0\0\17o\b¬Ð\0\0#q EN5uehqR-\0\0\0\17o\b´Ð\0\0#q 3Yxju2bX-\0\0\0\17o\b¼Ð\0\0#q bGDrRv6T-\0\0\0\17o\bÄÐ\0\0#q 0R5vdxJO-\0\0\0\17o\bÌÐ\0\0#q R2mD+4dU-\0\0\0\17o\bÔÐ\0\0#q jVjZFQf6-\0\0\0\17o\bÜÐ\0\0#q RFZJ8rFs-\0\0\0\17o\bäÐ\0\0#q kqu7VMy3-\0\0\0\17o\bìÐ\0\0#q EjDuzE2K-\0\0\0\17o\bôÐ\0\0#q 5wH1nnG9-\0\0\0\17o\büÐ\0\0#q 71lZjE1G-\0\0\0\17o\b\ 4Ñ\0\0#q MMpMLzVo-\0\0\0\17o\b\fÑ\0\0#q tmMJoN2g-\0\0\0\17o\b\14Ñ\0\0#q v8yApnCp-\0\0\0\17o\b\1cÑ\0\0#q gihcVoiU-\0\0\0\17o\b\0\0#q FH+c9nnb-\0\0\0\17o\b\0\0#q z+momOTD-\0\0\0\17o\b\0\0#q 2WTT5sRk-\0\0\0\17o\b\0\0#q o0skZYtt-\0\0\0\17o\b\0\0#q ki1bLSVY-\0\0\0\17o\b\0\0#q mmMY0wqh-\0\0\0\17o\b\0\0#q WnGhdSll-\0\0\0\17o\b\0\0#q SSW9z4am-\0\0\0\17o\b\0\0#q EW8VfPq+-\0\0\0\17o\b\0\0#q 6qyaeu2j-\0\0\0\17o\b\0\0#q ZNvXtEl6-\0\0\0\17o\b\0\0#q ptryvUox-\0\0\0\17o\b\84Ñ\0\0#q wqtXN1Fm-\0\0\0\17o\b\8cÑ\0\0#q Yqyc7Jql-\0\0\0\17o\b\94Ñ\0\0#q sb2TXkul-\0\0\0\17o\b\9cÑ\0\0#q ki/galjc-\0\0\0\17o\b¤Ñ\0\0#q AwqxIxJE-\0\0\0\17o\b¬Ñ\0\0#q kIZjxWvo-\0\0\0\17o\b´Ñ\0\0#q hjDLbjDg-\0\0\0\17o\b¼Ñ\0\0#q 3VHCdKtl-\0\0\0\17o\bÄÑ\0\0#q CUmTvHq1-\0\0\0\17o\bÌÑ\0\0#q g1bKsb1n-\0\0\0\17o\bÔÑ\0\0#q ufaqpD0u-\0\0\0\17o\bÜÑ\0\0#q QWNon9Cd-\0\0\0\17o\bäÑ\0\0#q rrb3LTMl-\0\0\0\17o\bìÑ\0\0#q SbUTSbK0-\0\0\0\17o\bôÑ\0\0#q ohajIvgj-\0\0\0\17o\büÑ\0\0#q H+99Bt8p-\0\0\0\17o\b\ 4Ò\0\0#q 3n6qleSV-\0\0\0\17o\b\fÒ\0\0#q ZE6o9h2e-\0\0\0\17o\b\14Ò\0\0#q HZRzpwc3-\0\0\0\17o\b\1cÒ\0\0#q OYmK009E-\0\0\0\17o\b\0\0#q 9R328jxM-\0\0\0\17o\b\0\0#q bJvFH6St-\0\0\0\17o\b\0\0#q QnM1NNmL-\0\0\0\17o\b\0\0#q DBWdD/Dw-\0\0\0\17o\b\0\0#q dQc+bD7v-\0\0\0\17o\b\0\0#q Uoz8D4pQ-\0\0\0\17o\b\0\0#q aY3jgmo4-\0\0\0\17o\b\0\0#q UpCiqrGz-\0\0\0\17o\b\0\0#q ZpNbC5h/-\0\0\0\17o\b\0\0#q TXGpNqn1-\0\0\0\17o\b\0\0#q Vaok4ZPk-\0\0\0\17o\b\0\0#q 4KphiwyW-\0\0\0\17o\b\84Ò\0\0#q Jy5ZHRwf-\0\0\0\17o\b\8cÒ\0\0#q oiZC34h6-\0\0\0\17o\b\94Ò\0\0#q SrVlWif7-\0\0\0\17o\b\9cÒ\0\0#q FRHs1+Nu-\0\0\0\17o\b¤Ò\0\0#q h+L5Hs6k-\0\0\0\17o\b¬Ò\0\0#q 7WWyNKya-\0\0\0\17o\b´Ò\0\0#q ld2mpMaN-\0\0\0\17o\b¼Ò\0\0#q p8+jr5z3-\0\0\0\17o\bÄÒ\0\0#q H5HpDpU/-\0\0\0\17o\bÌÒ\0\0#q yqPXPAk9-\0\0\0\17o\bÔÒ\0\0#q 1O6UFo2P-\0\0\0\17o\bÜÒ\0\0#q K2u5jy7l-\0\0\0\17o\bäÒ\0\0#q Wy35Kw+i-\0\0\0\17o\bìÒ\0\0#q PIqfOySO-\0\0\0\17o\bôÒ\0\0#q pNDJ1k4n-\0\0\0\17o\büÒ\0\0#q qsilXhke-\0\0\0\17o\b\ 4Ó\0\0#q ZbW8c56z-\0\0\0\17o\b\fÓ\0\0#q Rx1kbkR1-\0\0\0\17o\b\14Ó\0\0#q nBpJ1VUP-\0\0\0\17o\b\1cÓ\0\0#q WotkR0rd-\0\0\0\17o\b\0\0#q sQsexSuL-\0\0\0\17o\b\0\0#q +5pk+Mk2-\0\0\0\17o\b\0\0#q l/i7Oi6X-\0\0\0\17o\b\0\0#q GwkvE5Jy-\0\0\0\17o\b\0\0#q D6Ifc0l8-\0\0\0\17o\b\0\0#q iIBO6c0D-\0\0\0\17o\b\0\0#q ixXt8Wk0-\0\0\0\17o\b\0\0#q H6+6WxFl-\0\0\0\17o\b\0\0#q iWWWhO5P-\0\0\0\17o\b\0\0#q 1UUsfx/o-\0\0\0\17o\b\0\0#q /JZJ9ipr-\0\0\0\17o\b\0\0#q tPkmjEsf-\0\0\0\17o\b\84Ó\0\0#q Wdqnbtat-\0\0\0\17o\b\8cÓ\0\0#q q24Ockqq-\0\0\0\17o\b\94Ó\0\0#q qnQw+6k7-\0\0\0\17o\b\9cÓ\0\0#q EfBZHMen-\0\0\0\17o\b¤Ó\0\0#q tbUafUcO-\0\0\0\17o\b¬Ó\0\0#q iqVVVYFU-\0\0\0\17o\b´Ó\0\0#q lFKKqejE-\0\0\0\17o\b¼Ó\0\0#q Y6Y+lfo+-\0\0\0\17o\bÄÓ\0\0#q ubdLJdCu-\0\0\0\17o\bÌÓ\0\0#q RFXLgVQw-\0\0\0\17o\bÔÓ\0\0#q rGW3GIYJ-\0\0\0\17o\bÜÓ\0\0#q WGCYwwtW-\0\0\0\17o\bäÓ\0\0#q WlUskYxZ-\0\0\0\17o\bìÓ\0\0#q +emKaZHy-\0\0\0\17o\bôÓ\0\0#q QfWMWTUk-\0\0\0\17o\büÓ\0\0#q P9FV7wTx-\0\0\0\17o\b\ 4Ô\0\0#q +WRVUrZI-\0\0\0\17o\b\fÔ\0\0#q 0/KPlYWl-\0\0\0\17o\b\14Ô\0\0#q UqaINRpI-\0\0\0\17o\b\1cÔ\0\0#q xmMlMfoe-\0\0\0\17o\b\0\0#q ftr+7+JP-\0\0\0\17o\b\0\0#q 2H69M/jD-\0\0\0\17o\b\0\0#q 8xaKRKgS-\0\0\0\17o\b\0\0#q rdibLHI0-\0\0\0\17o\b\0\0#q VxjbdHGN-\0\0\0\17o\b\0\0#q jQd0aMDA-\0\0\0\17o\b\0\0#q 0QIQWEpT-\0\0\0\17o\b\0\0#q RDGZrq3R-\0\0\0\17o\b\0\0#q 00OH8GFj-\0\0\0\17o\b\0\0#q uAD9iwhU-\0\0\0\17o\b\0\0#q 2MP6wiGD-\0\0\0\17o\b\0\0#q +jp0Ymd0-\0\0\0\17o\b\84Ô\0\0#q 6Ksv5piO-\0\0\0\17o\b\8cÔ\0\0#q Uq1rMkwZ-\0\0\0\17o\b\94Ô\0\0#q kiw2SmZI-\0\0\0\17o\b\9cÔ\0\0#q UHD5pP5P-\0\0\0\17o\b¤Ô\0\0#q 1qcNmkgD-\0\0\0\17o\b¬Ô\0\0#q 9vum0hi+-\0\0\0\17o\b´Ô\0\0#q X4S/PJ3/-\0\0\0\17o\b¼Ô\0\0#q mfi9rbsp-\0\0\0\17o\bÄÔ\0\0#q yye2Fk1Y-\0\0\0\17o\bÌÔ\0\0#q tSqo+5O3-\0\0\0\17o\bÔÔ\0\0#q 3q0nAeTH-\0\0\0\17o\bÜÔ\0\0#q bg7lc2zB-\0\0\0\17o\bäÔ\0\0#q xS2K2xjL-\0\0\0\17o\bìÔ\0\0#q /dLmkWZG-\0\0\0\17o\bôÔ\0\0#q HQNxp9Nk-\0\0\0\17o\büÔ\0\0#q yrGxuvp9-\0\0\0\17o\b\ 4Õ\0\0#q akHp3+A3-\0\0\0\17o\b\fÕ\0\0#q ROSdXUb1-\0\0\0\17o\b\14Õ\0\0#q air5yyvd-\0\0\0\17o\b\1cÕ\0\0#q I8km6PrI-\0\0\0\17o\b\0\0#q gEskaR1c-\0\0\0\17o\b\0\0#q eOmv5q4d-\0\0\0\17o\b\0\0#q pNp4dofK-\0\0\0\17o\b\0\0#q up3NzUTx-\0\0\0\17o\b\0\0#q svxlZbZ/-\0\0\0\17o\b\0\0#q V7KshwsV-\0\0\0\17o\b\0\0#q cSqwxapT-\0\0\0\17o\b\0\0#q 6487uYnO-\0\0\0\17o\b\0\0#q E9IdPT5D-\0\0\0\17o\b\0\0#q shyR8GTg-\0\0\0\17o\b\0\0#q 8yZIxO7D-\0\0\0\17o\b\0\0#q 2Xoe8wbP-\0\0\0\17o\b\84Õ\0\0#q D2vkrki1-\0\0\0\17o\b\8cÕ\0\0#q J6oe6xXD-\0\0\0\17o\b\94Õ\0\0#q YppjTbDe-\0\0\0\17o\b\9cÕ\0\0#q zUkdjZXV-\0\0\0\17o\b¤Õ\0\0#q jE75bVWX-\0\0\0\17o\b¬Õ\0\0#q RUdldu05-\0\0\0\17o\b´Õ\0\0#q D4OvVbD8-\0\0\0\17o\b¼Õ\0\0#q SxVZLZ00-\0\0\0\17o\bÄÕ\0\0#q 9nJEkSTN-\0\0\0\17o\bÌÕ\0\0#q 7Y8kpPWH-\0\0\0\17o\bÔÕ\0\0#q 5pUvT49i-\0\0\0\17o\bÜÕ\0\0#q IMA9AfID-\0\0\0\17o\bäÕ\0\0#q JEZQpYI0-\0\0\0\17o\bìÕ\0\0#q oY5HlZOH-\0\0\0\17o\bôÕ\0\0#q xMMSe9Wu-\0\0\0\17o\büÕ\0\0#q ihVMpamS-\0\0\0\17o\b\ 4Ö\0\0#q nEH4RE9Z-\0\0\0\17o\b\fÖ\0\0#q aWlkKsWr-\0\0\0\17o\b\14Ö\0\0#q VSPdFT2z-\0\0\0\17o\b\1cÖ\0\0#q JGJOHBVl-\0\0\0\17o\b\0\0#q VUrpTJRy-\0\0\0\17o\b\0\0#q wuMlV0T9-\0\0\0\17o\b\0\0#q myzARkCl-\0\0\0\17o\b\0\0#q qiJX70kg-\0\0\0\17o\b\0\0#q pcYzsakR-\0\0\0\17o\b\0\0#q kiRXw/k/-\0\0\0\17o\b\0\0#q H9sfrouz-\0\0\0\17o\b\0\0#q /j/oVDN7-\0\0\0\17o\b\0\0#q /u1hxCRI-\0\0\0\17o\b\0\0#q RZULOfq+-\0\0\0\17o\b\0\0#q KvHsxm1M-\0\0\0\17o\b\0\0#q 2jkhY7We-\0\0\0\17o\b\84Ö\0\0#q Uc1j/ARD-\0\0\0\17o\b\8cÖ\0\0#q X9g55b0y-\0\0\0\17o\b\94Ö\0\0#q 0OAkCC5c-\0\0\0\17o\b\9cÖ\0\0#q P+IWkuBk-\0\0\0\17o\b¤Ö\0\0#q JyInN3re-\0\0\0\17o\b¬Ö\0\0#q K6uz5oJ3-\0\0\0\17o\b´Ö\0\0#q cmh5kk5S-\0\0\0\17o\b¼Ö\0\0#q OROSWbV3-\0\0\0\17o\bÄÖ\0\0#q cz6GtQbZ-\0\0\0\17o\bÌÖ\0\0#q KFKWuNFt-\0\0\0\17o\bÔÖ\0\0#q iyrDpfLM-\0\0\0\17o\bÜÖ\0\0#q zGSYWFVp-\0\0\0\17o\bäÖ\0\0#q VVZYebEE-\0\0\0\17o\bìÖ\0\0#q sBqBXBsj-\0\0\0\17o\bôÖ\0\0#q MbarG2x/-\0\0\0\17o\büÖ\0\0#q fZQ+jLYb-\0\0\0\17o\b\ 4×\0\0#q HHqNwzdK-\0\0\0\17o\b\f×\0\0#q EarMZjYx-\0\0\0\17o\b\14×\0\0#q uuOPbI9s-\0\0\0\17o\b\1c×\0\0#q ySN6HDIR-\0\0\0\17o\b\0\0#q KMbSRBlK-\0\0\0\17o\b\0\0#q UoJjSMba-\0\0\0\17o\b\0\0#q V15eryvB-\0\0\0\17o\b\0\0#q qvJXDYi8-\0\0\0\17o\b\0\0#q l107GrKu-\0\0\0\17o\b\0\0#q rrePql/G-\0\0\0\17o\b\0\0#q 999PfuvQ-\0\0\0\17o\b\0\0#q QNubc1or-\0\0\0\17o\b\0\0#q FGJnz9/3-\0\0\0\17o\b\0\0#q e/n38Nvh-\0\0\0\17o\b\0\0#q XHdrlX0h-\0\0\0\17o\b\0\0#q VyULe2vF-\0\0\0\17o\b\84×\0\0#q 4tSELMby-\0\0\0\17o\b\8c×\0\0#q nXaVdIyz-\0\0\0\17o\b\94×\0\0#q VzptzbpG-\0\0\0\17o\b\9c×\0\0#q 0kYyrYmU-\0\0\0\17o\b¤×\0\0#q stRUilMV-\0\0\0\17o\b¬×\0\0#q 6qhiUaXU-\0\0\0\17o\b´×\0\0#q qU2t22sq-\0\0\0\17o\b¼×\0\0#q VUgIrrtL-\0\0\0\17o\bÄ×\0\0#q Q1QdExSK-\0\0\0\17o\bÌ×\0\0#q lSKNIKND-\0\0\0\17o\bÔ×\0\0#q YBCEhONt-\0\0\0\17o\bÜ×\0\0#q cvec081d-\0\0\0\17o\bä×\0\0#q aISsVrnN-\0\0\0\17o\bì×\0\0#q whsmVFh9-\0\0\0\17o\bô×\0\0#q UnkeSpU/-\0\0\0\17o\bü×\0\0#q Ucu0cHJG-\0\0\0\17o\b\ 4Ø\0\0#q 1Tws6MbG-\0\0\0\17o\b\fØ\0\0#q 5/FVq2qh-\0\0\0\17o\b\14Ø\0\0#q SlIpMbqk-\0\0\0\17o\b\1cØ\0\0#q dPrfnJsR-\0\0\0\17o\b\0\0#q P5LJP3kl-\0\0\0\17o\b\0\0#q 8j+YotqN-\0\0\0\17o\b\0\0#q Dkj+2rYW-\0\0\0\17o\b\0\0#q xbJPER5O-\0\0\0\17o\b\0\0#q zzamSJYm-\0\0\0\17o\b\0\0#q ofxdXtOq-\0\0\0\17o\b\0\0#q Pt84dU9J-\0\0\0\17o\b\0\0#q +/4gPBe8-\0\0\0\17o\b\0\0#q BUHiJMP6-\0\0\0\17o\b\0\0#q uXrNpwqw-\0\0\0\17o\b\0\0#q ttVSaxGF-\0\0\0\17o\b\0\0#q +jEifCpF-\0\0\0\17o\b\84Ø\0\0#q fxSkr9mc-\0\0\0\17o\b\8cØ\0\0#q 32c3S3Sz-\0\0\0\17o\b\94Ø\0\0#q bd2ZoiFI-\0\0\0\17o\b\9cØ\0\0#q b5ZGYtnE-\0\0\0\17o\b¤Ø\0\0#q kdJ+Try/-\0\0\0\17o\b¬Ø\0\0#q CPL9Mi5m-\0\0\0\17o\b´Ø\0\0#q Mdh+Ug/l-\0\0\0\17o\b¼Ø\0\0#q ZFsslk+Z-\0\0\0\17o\bÄØ\0\0#q J6Es33Tm-\0\0\0\17o\bÌØ\0\0#q ZHKzR+qo-\0\0\0\17o\bÔØ\0\0#q +jHqk0bP-\0\0\0\17o\bÜØ\0\0#q R7vVXJrn-\0\0\0\17o\bäØ\0\0#q +Xaeaslp-\0\0\0\17o\bìØ\0\0#q RZLB6fWT-\0\0\0\17o\bôØ\0\0#q y0fm4NJO-\0\0\0\17o\büØ\0\0#q 9fzVkjpK-\0\0\0\17o\b\ 4Ù\0\0#q W2+cmMea-\0\0\0\17o\b\fÙ\0\0#q KKivw3yN-\0\0\0\17o\b\14Ù\0\0#q m0nsxo0q-\0\0\0\17o\b\1cÙ\0\0#q Y/JPx9o9-\0\0\0\17o\b\0\0#q 26TeJg2I-\0\0\0\17o\b\0\0#q tr4mV3Ui-\0\0\0\17o\b\0\0#q bG6zyzGV-\0\0\0\17o\b\0\0#q VRZRZzUm-\0\0\0\17o\b\0\0#q JYrYjeJP-\0\0\0\17o\b\0\0#q tG57vdmC-\0\0\0\17o\b\0\0#q lZ7rv1y8-\0\0\0\17o\b\0\0#q 228aKmVl-\0\0\0\17o\b\0\0#q 6+qvZfKR-\0\0\0\17o\b\0\0#q cLOG6ldO-\0\0\0\17o\b\0\0#q qd/Vu6vn-\0\0\0\17o\b\0\0#q zdTvHSaW-\0\0\0\17o\b\84Ù\0\0#q dJCUkjhk-\0\0\0\17o\b\8cÙ\0\0#q kn7Gk+ei-\0\0\0\17o\b\94Ù\0\0#q ZHzRJjsh-\0\0\0\17o\b\9cÙ\0\0#q qSwqyDyZ-\0\0\0\17o\b¤Ù\0\0#q 80X6SPqx-\0\0\0\17o\b¬Ù\0\0#q 722PQanW-\0\0\0\17o\b´Ù\0\0#q ebyOhb9n-\0\0\0\17o\b¼Ù\0\0#q 7djstjZ4-\0\0\0\17o\bÄÙ\0\0#q dY2OQxL8-\0\0\0\17o\bÌÙ\0\0#q hdS7hgfQ-\0\0\0\17o\bÔÙ\0\0#q +5CDkj7o-\0\0\0\17o\bÜÙ\0\0#q 7K4g5yNp-\0\0\0\17o\bäÙ\0\0#q yOpPqRyw-\0\0\0\17o\bìÙ\0\0#q lpQRSDKS-\0\0\0\17o\bôÙ\0\0#q ubGQjFYy-\0\0\0\17o\büÙ\0\0#q aHIAwiqR-\0\0\0\17o\b\ 4Ú\0\0#q am0sMSLC-\0\0\0\17o\b\fÚ\0\0#q sJviL0yJ-\0\0\0\17o\b\14Ú\0\0#q 2OkeKEsl-\0\0\0\17o\b\1cÚ\0\0#q hZYLLIdX-\0\0\0\17o\b\0\0#q uqTrJIqK-\0\0\0\17o\b\0\0#q aZP1acJC-\0\0\0\17o\b\0\0#q cH4eh1+k-\0\0\0\17o\b\0\0#q fB93b1WT-\0\0\0\17o\b\0\0#q nIpa+SDt-\0\0\0\17o\b\0\0#q JnSUSfEh-\0\0\0\17o\b\0\0#q NliaKTnK-\0\0\0\17o\b\0\0#q 6bk2NUtO-\0\0\0\17o\b\0\0#q pwxwxVUb-\0\0\0\17o\b\0\0#q Nmx5x8lI-\0\0\0\17o\b\0\0#q qppySP7f-\0\0\0\17o\b\0\0#q keJPkfA/-\0\0\0\17o\b\84Ú\0\0#q GZNlaB85-\0\0\0\17o\b\8cÚ\0\0#q U/xOGz7n-\0\0\0\17o\b\94Ú\0\0#q G7VxLbFv-\0\0\0\17o\b\9cÚ\0\0#q OJRc267d-\0\0\0\17o\b¤Ú\0\0#q Y5TS32y8-\0\0\0\17o\b¬Ú\0\0#q 2q967Sok-\0\0\0\17o\b´Ú\0\0#q 5Aw3FStp-\0\0\0\17o\b¼Ú\0\0#q hVLMYoq5-\0\0\0\17o\bÄÚ\0\0#q nJ05S7XG-\0\0\0\17o\bÌÚ\0\0#q 3bTWXLti-\0\0\0\17o\bÔÚ\0\0#q slaIjwcK-\0\0\0\17o\bÜÚ\0\0#q pUlVZ5bN-\0\0\0\17o\bäÚ\0\0#q l3MjhW/1-\0\0\0\17o\bìÚ\0\0#q ibOUVX6b-\0\0\0\17o\bôÚ\0\0#q GO9ltr3q-\0\0\0\17o\büÚ\0\0#q NM4ZOuTm-\0\0\0\17o\b\ 4Û\0\0#q dlJHaTrd-\0\0\0\17o\b\fÛ\0\0#q opbJmZI0-\0\0\0\17o\b\14Û\0\0#q WRqsr4Q/-\0\0\0\17o\b\1cÛ\0\0#q tfrZ3oi2-\0\0\0\17o\b\0\0#q RVBaIqi1-\0\0\0\17o\b\0\0#q MzEkmVJ0-\0\0\0\17o\b\0\0#q pnG2r43k-\0\0\0\17o\b\0\0#q 6qGCL9Kk-\0\0\0\17o\b\0\0#q pczv4SeP-\0\0\0\17o\b\0\0#q sFeTIEBc-\0\0\0\17o\b\0\0#q 3DtAZcH6-\0\0\0\17o\b\0\0#q XxGW7Yaw-\0\0\0\17o\b\0\0#q +DznoSqy-\0\0\0\17o\b\0\0#q rouIMcMH-\0\0\0\17o\b\0\0#q bjD/FBny-\0\0\0\17o\b\0\0#q /X179rvt-\0\0\0\17o\b\84Û\0\0#q jikQCcgQ-\0\0\0\17o\b\8cÛ\0\0#q E4HS222z-\0\0\0\17o\b\94Û\0\0#q VI+KD/aP-\0\0\0\17o\b\9cÛ\0\0#q 1IS0pJSB-\0\0\0\17o\b¤Û\0\0#q Yzn2USdP-\0\0\0\17o\b¬Û\0\0#q STTu868a-\0\0\0\17o\b´Û\0\0#q rlGQodZ/-\0\0\0\17o\b¼Û\0\0#q tyxVyU5R-\0\0\0\17o\bÄÛ\0\0#q rlBdEqjR-\0\0\0\17o\bÌÛ\0\0#q +4KCHQDi-\0\0\0\17o\bÔÛ\0\0#q 6aQjlScf-\0\0\0\17o\bÜÛ\0\0#q +T5kjee1-\0\0\0\17o\bäÛ\0\0#q Xoxo/SOO-\0\0\0\17o\bìÛ\0\0#q yTCd1xDl-\0\0\0\17o\bôÛ\0\0#q X+YN/MVv-\0\0\0\17o\büÛ\0\0#q tOj2tXZX-\0\0\0\17o\b\ 4Ü\0\0#q ckMqqZHZ-\0\0\0\17o\b\fÜ\0\0#q EKEQlkdn-\0\0\0\17o\b\14Ü\0\0#q L7Jdydlg-\0\0\0\17o\b\1cÜ\0\0#q mev89uU7-\0\0\0\17o\b\0\0#q 8j5cSJ/l-\0\0\0\17o\b\0\0#q 8dkmE7rh-\0\0\0\17o\b\0\0#q zD8qadHM-\0\0\0\17o\b\0\0#q H4jZj3nD-\0\0\0\17o\b\0\0#q GPdwajh7-\0\0\0\17o\b\0\0#q sMdnVu5u-\0\0\0\17o\b\0\0#q jXXl+T1/-\0\0\0\17o\b\0\0#q u4LOHgw0-\0\0\0\17o\b\0\0#q +z8FGBY2-\0\0\0\17o\b\0\0#q M89iIokY-\0\0\0\17o\b\0\0#q Qvh0gpDs-\0\0\0\17o\b\0\0#q MgXC5N6M-\0\0\0\17o\b\84Ü\0\0#q MVWqIDKF-\0\0\0\17o\b\8cÜ\0\0#q k7Bhi7LC-\0\0\0\17o\b\94Ü\0\0#q a12ZnoYV-\0\0\0\17o\b\9cÜ\0\0#q i5gcGP9X-\0\0\0\17o\b¤Ü\0\0#q 5TyVn5jj-\0\0\0\17o\b¬Ü\0\0#q pmK38e0H-\0\0\0\17o\b´Ü\0\0#q 0yNy9sy6-\0\0\0\17o\b¼Ü\0\0#q krJx2NyX-\0\0\0\17o\bÄÜ\0\0#q EkufYjPY-\0\0\0\17o\bÌÜ\0\0#q 35HJdzHa-\0\0\0\17o\bÔÜ\0\0#q IWeWpGch-\0\0\0\17o\bÜÜ\0\0#q 1C2GpaeI-\0\0\0\17o\bäÜ\0\0#q IyAyJiVK-\0\0\0\17o\bìÜ\0\0#q /Gotmvs6-\0\0\0\17o\bôÜ\0\0#q vH4Xixys-\0\0\0\17o\büÜ\0\0#q dNfO67Zu-\0\0\0\17o\b\ 4Ý\0\0#q afPse3Xt-\0\0\0\17o\b\fÝ\0\0#q czmeH1mH-\0\0\0\17o\b\14Ý\0\0#q V6i2qvNH-\0\0\0\17o\b\1cÝ\0\0#q rsuyeFJj-\0\0\0\17o\b\0\0#q 1OGjd4Zq-\0\0\0\17o\b\0\0#q 4YLjGTEx-\0\0\0\17o\b\0\0#q lUsVV/xc-\0\0\0\17o\b\0\0#q bG0nNuxl-\0\0\0\17o\b\0\0#q xTLllUUB-\0\0\0\17o\b\0\0#q hE0vYrX0-\0\0\0\17o\b\0\0#q AxuvoyLW-\0\0\0\17o\b\0\0#q YktLUDBX-\0\0\0\17o\b\0\0#q 8H5cYsLk-\0\0\0\17o\b\0\0#q OfeXyz9A-\0\0\0\17o\b\0\0#q 4QbZ7J00-\0\0\0\17o\b\0\0#q FTnG94VN-\0\0\0\17o\b\84Ý\0\0#q ve5NkYen-\0\0\0\17o\b\8cÝ\0\0#q LptnR61a-\0\0\0\17o\b\94Ý\0\0#q v5SHOPZV-\0\0\0\17o\b\9cÝ\0\0#q dEI2fk5/-\0\0\0\17o\b¤Ý\0\0#q k3VxOX5P-\0\0\0\17o\b¬Ý\0\0#q ckzZv1ec-\0\0\0\17o\b´Ý\0\0#q 8TchyRzO-\0\0\0\17o\b¼Ý\0\0#q Oqs5zOUk-\0\0\0\17o\bÄÝ\0\0#q m0wWPJVW-\0\0\0\17o\bÌÝ\0\0#q TC1sxMVV-\0\0\0\17o\bÔÝ\0\0#q TWOfpWxn-\0\0\0\17o\bÜÝ\0\0#q sx/JmyBR-\0\0\0\17o\bäÝ\0\0#q sFWNsiIq-\0\0\0\17o\bìÝ\0\0#q oVUFReZr-\0\0\0\17o\bôÝ\0\0#q K80s5jqp-\0\0\0\17o\büÝ\0\0#q OqvOS43z-\0\0\0\17o\b\ 4Þ\0\0#q EuyOx1cp-\0\0\0\17o\b\fÞ\0\0#q 0Y8OhOW7-\0\0\0\17o\b\14Þ\0\0#q ME8lk6LC-\0\0\0\17o\b\1cÞ\0\0#q eFLjEsFS-\0\0\0\17o\b\0\0#q qpSyelXJ-\0\0\0\17o\b\0\0#q hXAcdpsp-\0\0\0\17o\b\0\0#q 0Y6/OqpW-\0\0\0\17o\b\0\0#q hUMVm2xj-\0\0\0\17o\b\0\0#q yTgU6nrw-\0\0\0\17o\b\0\0#q 6yszFUtt-\0\0\0\17o\b\0\0#q ktLZVtnX-\0\0\0\17o\b\0\0#q i3kuDRtD-\0\0\0\17o\b\0\0#q z/sJ5OxX-\0\0\0\17o\b\0\0#q V22LVZKM-\0\0\0\17o\b\0\0#q YxihA2Q/-\0\0\0\17o\b\0\0#q Dq/NjZ+5-\0\0\0\17o\b\84Þ\0\0#q 35t7PF0a-\0\0\0\17o\b\8cÞ\0\0#q 3E6sM0t9-\0\0\0\17o\b\94Þ\0\0#q 0PBzJHT5-\0\0\0\17o\b\9cÞ\0\0#q SRrz+MtS-\0\0\0\17o\b¤Þ\0\0#q HquWXGSM-\0\0\0\17o\b¬Þ\0\0#q c07ChTvJ-\0\0\0\17o\b´Þ\0\0#q 7sjSm49U-\0\0\0\17o\b¼Þ\0\0#q 8JK0NlKr-\0\0\0\17o\bÄÞ\0\0#q XIMbnnPC-\0\0\0\17o\bÌÞ\0\0#q 0qUqjU5J-\0\0\0\17o\bÔÞ\0\0#q xyt7ynN5-\0\0\0\17o\bÜÞ\0\0#q e/kM7y2Y-\0\0\0\17o\bäÞ\0\0#q xjGrVeTE-\0\0\0\17o\bìÞ\0\0#q 5xqbVT8L-\0\0\0\17o\bôÞ\0\0#q iY6bpo+Z-\0\0\0\17o\büÞ\0\0#q dRG82/fr-\0\0\0\17o\b\ 4ß\0\0#q 1m22xZSB-\0\0\0\17o\b\fß\0\0#q 38PxIyNM-\0\0\0\17o\b\14ß\0\0#q ShQiH6G9-\0\0\0\17o\b\1cß\0\0#q hXLOZK6w-\0\0\0\17o\b\0\0#q 3N5+X72H-\0\0\0\17o\b\0\0#q FAxu5NSf-\0\0\0\17o\b\0\0#q RpW6afRX-\0\0\0\17o\b\0\0#q qo8VJGH9-\0\0\0\17o\b\0\0#q x5ObPuVJ-\0\0\0\17o\b\0\0#q QLAiFlH6-\0\0\0\17o\b\0\0#q /u/FbMJ3-\0\0\0\17o\b\0\0#q EnnDq7T0-\0\0\0\17o\b\0\0#q En449m8J-\0\0\0\17o\b\0\0#q HNPxcyzX-\0\0\0\17o\b\0\0#q SV7BCP9J-\0\0\0\17o\b\0\0#q ENSIjTah-\0\0\0\17o\b\84ß\0\0#q AiKfMpQX-\0\0\0\17o\b\8cß\0\0#q fhvwg6xj-\0\0\0\17o\b\94ß\0\0#q TyfA09Ua-\0\0\0\17o\b\9cß\0\0#q kjGjZSMk-\0\0\0\17o\b¤ß\0\0#q cm0k69uD-\0\0\0\17o\b¬ß\0\0#q Qkz5aTWC-\0\0\0\17o\b´ß\0\0#q W2iz7hlc-\0\0\0\17o\b¼ß\0\0#q SciTjD3I-\0\0\0\17o\bÄß\0\0#q oFZBYmNt-\0\0\0\17o\bÌß\0\0#q odoFMMIk-\0\0\0\17o\bÔß\0\0#q DWQjASGk-\0\0\0\17o\bÜß\0\0#q 0NA76DcI-\0\0\0\17o\bäß\0\0#q ySAGLYwA-\0\0\0\17o\bìß\0\0#q ZPQkVbS9-\0\0\0\17o\bôß\0\0#q raOCXx0N-\0\0\0\17o\büß\0\0#q 4NPJAcpT-\0\0\0\17o\b\ 4à\0\0#q E24YEIYy-\0\0\0\17o\b\fà\0\0#q g7CfLWmi-\0\0\0\17o\b\14à\0\0#q 2E1TDcjd-\0\0\0\17o\b\1cà\0\0#q kTMXE0qK-\0\0\0\17o\b\0\0#q sqvYI1Rc-\0\0\0\17o\b\0\0#q 1zUWKjBt-\0\0\0\17o\b\0\0#q 3dZMYLSc-\0\0\0\17o\b\0\0#q 1V8teNrS-\0\0\0\17o\b\0\0#q wW867u67-\0\0\0\17o\b\0\0#q u3XWz3ui-\0\0\0\17o\b\0\0#q TDJ7uup6-\0\0\0\17o\b\0\0#q aktGEa9d-\0\0\0\17o\b\0\0#q 1hTNubvV-\0\0\0\17o\b\0\0#q 2q883d3I-\0\0\0\17o\b\0\0#q oqVnZHRy-\0\0\0\17o\b\0\0#q RZT547K2-\0\0\0\17o\b\84à\0\0#q nlbs57pm-\0\0\0\17o\b\8cà\0\0#q 7cLQoYwF-\0\0\0\17o\b\94à\0\0#q 2iZPBBH+-\0\0\0\17o\b\9cà\0\0#q 5LQ7dYkk-\0\0\0\17o\b¤à\0\0#q hI6u5sNK-\0\0\0\17o\b¬à\0\0#q 9nPxux2b-\0\0\0\17o\b´à\0\0#q nayrYrkT-\0\0\0\17o\b¼à\0\0#q q+u7erJb-\0\0\0\17o\bÄà\0\0#q BUNziMaP-\0\0\0\17o\bÌà\0\0#q rppVcY3S-\0\0\0\17o\bÔà\0\0#q xyySyySf-\0\0\0\17o\bÜà\0\0#q FXkjZSuA-\0\0\0\17o\bäà\0\0#q 61FVMKi5-\0\0\0\17o\bìà\0\0#q jFHB+UxN-\0\0\0\17o\bôà\0\0#q KWOqcRzf-\0\0\0\17o\büà\0\0#q OSQki42n-\0\0\0\17o\b\ 4á\0\0#q kQs97JyK-\0\0\0\17o\b\fá\0\0#q 5amm58SF-\0\0\0\17o\b\14á\0\0#q k3LVSU0u-\0\0\0\17o\b\1cá\0\0#q j7SQfqwE-\0\0\0\17o\b\0\0#q fho1r92H-\0\0\0\17o\b\0\0#q 6uG22K2l-\0\0\0\17o\b\0\0#q Vz+Uf5sq-\0\0\0\17o\b\0\0#q P0dLN/Ge-\0\0\0\17o\b\0\0#q jmK0sxrP-\0\0\0\17o\b\0\0#q xz1m2/05-\0\0\0\17o\b\0\0#q yx4ONjCb-\0\0\0\17o\b\0\0#q JH9A+8Qk-\0\0\0\17o\b\0\0#q hIqoJKiR-\0\0\0\17o\b\0\0#q IQWkkRKA-\0\0\0\17o\b\0\0#q K20HGfR9-\0\0\0\17o\b\0\0#q lFGh2vmz-\0\0\0\17o\b\84á\0\0#q MyyCig/w-\0\0\0\17o\b\8cá\0\0#q mlAinByN-\0\0\0\17o\b\94á\0\0#q ccszHu82-\0\0\0\17o\b\9cá\0\0#q 6vNs08Oj-\0\0\0\17o\b¤á\0\0#q dXU3GzSp-\0\0\0\17o\b¬á\0\0#q wG2/sZ6S-\0\0\0\17o\b´á\0\0#q HoyTSVw0-\0\0\0\17o\b¼á\0\0#q slcGjSBn-\0\0\0\17o\bÄá\0\0#q q4UMw08I-\0\0\0\17o\bÌá\0\0#q tvw4uHqD-\0\0\0\17o\bÔá\0\0#q A/w6OSCR-\0\0\0\17o\bÜá\0\0#q nyIh/MH4-\0\0\0\17o\bäá\0\0#q 6rxmTFxd-\0\0\0\17o\bìá\0\0#q HacVc+uD-\0\0\0\17o\bôá\0\0#q 3HvflqHv-\0\0\0\17o\büá\0\0#q L7RI7e5e-\0\0\0\17o\b\ 4â\0\0#q dJqb4ZU4-\0\0\0\17o\b\fâ\0\0#q 09uYztwe-\0\0\0\17o\b\14â\0\0#q +W/IpAaO-\0\0\0\17o\b\1câ\0\0#q oyLcwQVP-\0\0\0\17o\b\0\0#q k3k69Fff-\0\0\0\17o\b\0\0#q n6zXZ3kI-\0\0\0\17o\b\0\0#q ON0cYOXD-\0\0\0\17o\b\0\0#q uS+3vzTO-\0\0\0\17o\b\0\0#q m/K7Mq6H-\0\0\0\17o\b\0\0#q OlZUd7Px-\0\0\0\17o\b\0\0#q xdl9t69N-\0\0\0\17o\b\0\0#q orsK6eU6-\0\0\0\17o\b\0\0#q 442+am88-\0\0\0\17o\b\0\0#q vu73UsgR-\0\0\0\17o\b\0\0#q oV5Z211t-\0\0\0\17o\b\0\0#q TDr33RPy-\0\0\0\17o\b\84â\0\0#q M6/XfL5U-\0\0\0\17o\b\8câ\0\0#q EDhtlOMG-\0\0\0\17o\b\94â\0\0#q IOhqVFDM-\0\0\0\17o\b\9câ\0\0#q LDExeDQG-\0\0\0\17o\b¤â\0\0#q HON0fZdt-\0\0\0\17o\b¬â\0\0#q pnTpZ6cD-\0\0\0\17o\b´â\0\0#q 6JBkGJpU-\0\0\0\17o\b¼â\0\0#q x0Y0Wupp-\0\0\0\17o\bÄâ\0\0#q UjCvDGzH-\0\0\0\17o\bÌâ\0\0#q Jsmjd0Vy-\0\0\0\17o\bÔâ\0\0#q NNnRZ1Y1-\0\0\0\17o\bÜâ\0\0#q MNHaMbOG-\0\0\0\17o\bäâ\0\0#q zcp3Vtts-\0\0\0\17o\bìâ\0\0#q sZwsk0gs-\0\0\0\17o\bôâ\0\0#q TGWj6gLX-\0\0\0\17o\büâ\0\0#q G8FJpoGG-\0\0\0\17o\b\ 4ã\0\0#q jp6NmZZI-\0\0\0\17o\b\fã\0\0#q mQYvcYoa-\0\0\0\17o\b\14ã\0\0#q IEFW2vkM-\0\0\0\17o\b\1cã\0\0#q 2ui4SWaS-\0\0\0\17o\b\0\0#q MLtv6RnW-\0\0\0\17o\b\0\0#q 2Q1A4FIH-\0\0\0\17o\b\0\0#q gMRpRK4e-\0\0\0\17o\b\0\0#q NjfwZ5oq-\0\0\0\17o\b\0\0#q GaaSMo5b-\0\0\0\17o\b\0\0#q dknhw4Sb-\0\0\0\17o\b\0\0#q OELPGyXL-\0\0\0\17o\b\0\0#q yqGoGSSq-\0\0\0\17o\b\0\0#q SomY1HBB-\0\0\0\17o\b\0\0#q VkQqys9M-\0\0\0\17o\b\0\0#q CWL1YjTE-\0\0\0\17o\b\0\0#q vrT/lW/H-\0\0\0\17o\b\84ã\0\0#q vnSpG2HG-\0\0\0\17o\b\8cã\0\0#q W0YwPtou-\0\0\0\17o\b\94ã\0\0#q fZQEsPWk-\0\0\0\17o\b\9cã\0\0#q Fdi4q6Bs-\0\0\0\17o\b¤ã\0\0#q 3tkoppX5-\0\0\0\17o\b¬ã\0\0#q Eiaqo5JX-\0\0\0\17o\b´ã\0\0#q 1UtH2/gz-\0\0\0\17o\b¼ã\0\0#q rxnmXNzE-\0\0\0\17o\bÄã\0\0#q 5gfF8iGh-\0\0\0\17o\bÌã\0\0#q wMagId9O-\0\0\0\17o\bÔã\0\0#q eGfjPxGK-\0\0\0\17o\bÜã\0\0#q TtKHVVJ7-\0\0\0\17o\bäã\0\0#q vT6eMIaV-\0\0\0\17o\bìã\0\0#q B+wH3n3+-\0\0\0\17o\bôã\0\0#q jxV4Svh6-\0\0\0\17o\büã\0\0#q l0hS2vo/-\0\0\0\17o\b\ 4ä\0\0#q Hxp46W8T-\0\0\0\17o\b\fä\0\0#q mStcsHMr-\0\0\0\17o\b\14ä\0\0#q io8lNypo-\0\0\0\17o\b\1cä\0\0#q lKYqrT5A-\0\0\0\17o\b\0\0#q yFDChtZG-\0\0\0\17o\b\0\0#q HuINKBsp-\0\0\0\17o\b\0\0#q BGKg7kJt-\0\0\0\17o\b\0\0#q 6Bo8fNBs-\0\0\0\17o\b\0\0#q wFHISJJt-\0\0\0\17o\b\0\0#q PcLdHk1+-\0\0\0\17o\b\0\0#q NWshZCgq-\0\0\0\17o\b\0\0#q nMZITrDX-\0\0\0\17o\b\0\0#q 2VnDFGhC-\0\0\0\17o\b\0\0#q e+9um2ka-\0\0\0\17o\b\0\0#q Wy3BLFDr-\0\0\0\17o\b\0\0#q Bte5ISqM-\0\0\0\17o\b\84ä\0\0#q a3whRNX2-\0\0\0\17o\b\8cä\0\0#q hdsSnCgd-\0\0\0\17o\b\94ä\0\0#q mnJiwaaF-\0\0\0\17o\b\9cä\0\0#q mqxgEhoS-\0\0\0\17o\b¤ä\0\0#q kmS4W5nn-\0\0\0\17o\b¬ä\0\0#q c2pOkjMC-\0\0\0\17o\b´ä\0\0#q i0Pn4WGj-\0\0\0\17o\b¼ä\0\0#q UumeTCfL-\0\0\0\17o\bÄä\0\0#q JJ1jYrHx-\0\0\0\17o\bÌä\0\0#q jaFRrCj5-\0\0\0\17o\bÔä\0\0#q qXWxkTin-\0\0\0\17o\bÜä\0\0#q m7fk9Hu2-\0\0\0\17o\bää\0\0#q JvELPk8M-\0\0\0\17o\bìä\0\0#q MVKpWKtK-\0\0\0\17o\bôä\0\0#q q1iVVKKU-\0\0\0\17o\büä\0\0#q xXlx31G9-\0\0\0\17o\b\ 4å\0\0#q Tw/vO6Mb-\0\0\0\17o\b\få\0\0#q E80lYmSJ-\0\0\0\17o\b\14å\0\0#q p0FRrDJy-\0\0\0\17o\b\1cå\0\0#q LJ51U9ZI-\0\0\0\17o\b\0\0#q 6GiLTUsT-\0\0\0\17o\b\0\0#q lnZqBqxH-\0\0\0\17o\b\0\0#q cOldSSip-\0\0\0\17o\b\0\0#q 2iosJI2E-\0\0\0\17o\b\0\0#q hx0kHxDZ-\0\0\0\17o\b\0\0#q /AZNzYUG-\0\0\0\17o\b\0\0#q DTXrMpla-\0\0\0\17o\b\0\0#q chkVuS1t-\0\0\0\17o\b\0\0#q siYIYyt2-\0\0\0\17o\b\0\0#q mzZDErJJ-\0\0\0\17o\b\0\0#q WTTEalrQ-\0\0\0\17o\b\0\0#q plZC7YM+-\0\0\0\17o\b\84å\0\0#q li2SUoxV-\0\0\0\17o\b\8cå\0\0#q VZY0yZky-\0\0\0\17o\b\94å\0\0#q cNIiDcCJ-\0\0\0\17o\b\9cå\0\0#q MaGNe5kX-\0\0\0\17o\b¤å\0\0#q BpN+8HIU-\0\0\0\17o\b¬å\0\0#q goKqYnY1-\0\0\0\17o\b´å\0\0#q JISR6tsh-\0\0\0\17o\b¼å\0\0#q CE6JhknV-\0\0\0\17o\bÄå\0\0#q jg6cMhWn-\0\0\0\17o\bÌå\0\0#q JNlbSdpp-\0\0\0\17o\bÔå\0\0#q sotV9zG2-\0\0\0\17o\bÜå\0\0#q 02HYjiEn-\0\0\0\17o\bäå\0\0#q mTz+E7xX-\0\0\0\17o\bìå\0\0#q hSrLv5Zt-\0\0\0\17o\bôå\0\0#q dazVbW2h-\0\0\0\17o\büå\0\0#q jEYNKDGE-\0\0\0\17o\b\ 4æ\0\0#q BkJ9/vy+-\0\0\0\17o\b\fæ\0\0#q vnrFURs1-\0\0\0\17o\b\14æ\0\0#q YvpvLuyE-\0\0\0\17o\b\1cæ\0\0#q 245w0VLL-\0\0\0\17o\b\0\0#q 1kr7cOg/-\0\0\0\17o\b\0\0#q Ba/Qf0QM-\0\0\0\17o\b\0\0#q 8JPxZLLO-\0\0\0\17o\b\0\0#q StL5KZ+f-\0\0\0\17o\b\0\0#q aXr7LE9j-\0\0\0\17o\b\0\0#q 17oH4+Oi-\0\0\0\17o\b\0\0#q R8orIu4h-\0\0\0\17o\b\0\0#q /RAagtxG-\0\0\0\17o\b\0\0#q ICYpOWtB-\0\0\0\17o\b\0\0#q CN8eXMu7-\0\0\0\17o\b\0\0#q rl485VKQ-\0\0\0\17o\b\0\0#q mKi+aU6r-\0\0\0\17o\b\84æ\0\0#q wbyfLXpr-\0\0\0\17o\b\8cæ\0\0#q 161+qbet-\0\0\0\17o\b\94æ\0\0#q tfqWN0pL-\0\0\0\17o\b\9cæ\0\0#q 88tJbgpK-\0\0\0\17o\b¤æ\0\0#q Wur4a8ki-\0\0\0\17o\b¬æ\0\0#q 2arIszGh-\0\0\0\17o\b´æ\0\0#q ZJVK03h6-\0\0\0\17o\b¼æ\0\0#q o84nieE+-\0\0\0\17o\bÄæ\0\0#q RSDA2EJn-\0\0\0\17o\bÌæ\0\0#q ygppzrRH-\0\0\0\17o\bÔæ\0\0#q jjDHHjQ3-\0\0\0\17o\bÜæ\0\0#q oAGNIa0Q-\0\0\0\17o\bäæ\0\0#q IJjBiGd8-\0\0\0\17o\bìæ\0\0#q s3glSnsM-\0\0\0\17o\bôæ\0\0#q ZSEY1I4B-\0\0\0\17o\büæ\0\0#q qCBOrFtg-\0\0\0\17o\b\ 4ç\0\0#q XZ7YoGff-\0\0\0\17o\b\fç\0\0#q 5SOeYkWT-\0\0\0\17o\b\14ç\0\0#q oVOR6a7/-\0\0\0\17o\b\1cç\0\0#q Dmyl7pPe-\0\0\0\17o\b\0\0#q bOTUlLEY-\0\0\0\17o\b\0\0#q ebR5Ikzr-\0\0\0\17o\b\0\0#q 5O+azEJX-\0\0\0\17o\b\0\0#q Ry731dGO-\0\0\0\17o\b\0\0#q XtcW5mTx-\0\0\0\17o\b\0\0#q HG7GnHVx-\0\0\0\17o\b\0\0#q IbSbnuyU-\0\0\0\17o\b\0\0#q slYdMltV-\0\0\0\17o\b\0\0#q hpO7tytj-\0\0\0\17o\b\0\0#q o3Cx2IyG-\0\0\0\17o\b\0\0#q ZDKmmWOx-\0\0\0\17o\b\0\0#q CaYRisSq-\0\0\0\17o\b\84ç\0\0#q 0VhSVpit-\0\0\0\17o\b\8cç\0\0#q JWkrS3VY-\0\0\0\17o\b\94ç\0\0#q 0DcaigxK-\0\0\0\17o\b\9cç\0\0#q kRFVBNRk-\0\0\0\17o\b¤ç\0\0#q kg1UhOMu-\0\0\0\17o\b¬ç\0\0#q rldw8knJ-\0\0\0\17o\b´ç\0\0#q jznZobpJ-\0\0\0\17o\b¼ç\0\0#q OCnNMtmM-\0\0\0\17o\bÄç\0\0#q 9JI/gses-\0\0\0\17o\bÌç\0\0#q Dl0es/T0-\0\0\0\17o\bÔç\0\0#q c4b+aSO5-\0\0\0\17o\bÜç\0\0#q yy8it57P-\0\0\0\17o\bäç\0\0#q tER7yQ49-\0\0\0\17o\bìç\0\0#q svq6K2Ko-\0\0\0\17o\bôç\0\0#q qVhjFUqm-\0\0\0\17o\büç\0\0#q m02P9rP+-\0\0\0\17o\b\ 4è\0\0#q enbyTaJy-\0\0\0\17o\b\fè\0\0#q k7zyB5Vd-\0\0\0\17o\b\14è\0\0#q EyRHyqE2-\0\0\0\17o\b\1cè\0\0#q jlT/N+4j-\0\0\0\17o\b\0\0#q PJHNVfOP-\0\0\0\17o\b\0\0#q ajFtvo+b-\0\0\0\17o\b\0\0#q RIhxDIiA-\0\0\0\17o\b\0\0#q REIBEBHm-\0\0\0\17o\b\0\0#q AseJvCKp-\0\0\0\17o\b\0\0#q aWSr3ORE-\0\0\0\17o\b\0\0#q AnaST8LJ-\0\0\0\17o\b\0\0#q p9TClbcG-\0\0\0\17o\b\0\0#q N022eOxs-\0\0\0\17o\b\0\0#q 0mObY5x+-\0\0\0\17o\b\0\0#q f0+u0ck5-\0\0\0\17o\b\0\0#q RKKUopJr-\0\0\0\17o\b\84è\0\0#q gB87bebv-\0\0\0\17o\b\8cè\0\0#q yv5u7W3q-\0\0\0\17o\b\94è\0\0#q /fvzQ+JG-\0\0\0\17o\b\9cè\0\0#q ypskPUre-\0\0\0\17o\b¤è\0\0#q RLIrmyba-\0\0\0\17o\b¬è\0\0#q tMsX0a/R-\0\0\0\17o\b´è\0\0#q ksaxtIKI-\0\0\0\17o\b¼è\0\0#q X8sn739q-\0\0\0\17o\bÄè\0\0#q sebzOZiG-\0\0\0\17o\bÌè\0\0#q by7s3vda-\0\0\0\17o\bÔè\0\0#q JR6Dj2ma-\0\0\0\17o\bÜè\0\0#q cG0WSRT7-\0\0\0\17o\bäè\0\0#q SDN9KC4x-\0\0\0\17o\bìè\0\0#q mGSRgRYw-\0\0\0\17o\bôè\0\0#q af7MbwGI-\0\0\0\17o\büè\0\0#q OPrP6Rb8-\0\0\0\17o\b\ 4é\0\0#q N/DY1I1H-\0\0\0\17o\b\fé\0\0#q JIkrMaQb-\0\0\0\17o\b\14é\0\0#q xJHdIbif-\0\0\0\17o\b\1cé\0\0#q Dkh15l2d-\0\0\0\17o\b\0\0#q 27BHRHVP-\0\0\0\17o\b\0\0#q Kch+6RBz-\0\0\0\17o\b\0\0#q eUnBMtct-\0\0\0\17o\b\0\0#q c4pKUyuu-\0\0\0\17o\b\0\0#q 2upJrlrq-\0\0\0\17o\b\0\0#q 667pW6+1-\0\0\0\17o\b\0\0#q t+6Vk20J-\0\0\0\17o\b\0\0#q kkpYV59A-\0\0\0\17o\b\0\0#q 5unxbofu-\0\0\0\17o\b\0\0#q 3vn21Ey/-\0\0\0\17o\b\0\0#q s+HYx9za-\0\0\0\17o\b\0\0#q sPu1JNm5-\0\0\0\17o\b\84é\0\0#q an1x85Hp-\0\0\0\17o\b\8cé\0\0#q GG1LFk0R-\0\0\0\17o\b\94é\0\0#q AJ1kfSK+-\0\0\0\17o\b\9cé\0\0#q E9UPntJM-\0\0\0\17o\b¤é\0\0#q sjrKWnc/-\0\0\0\17o\b¬é\0\0#q YuFg5pe8-\0\0\0\17o\b´é\0\0#q Oyx5qIpZ-\0\0\0\17o\b¼é\0\0#q EbwKh7e7-\0\0\0\17o\bÄé\0\0#q yTBhymws-\0\0\0\17o\bÌé\0\0#q JtGzb8PD-\0\0\0\17o\bÔé\0\0#q zkfvPfLZ-\0\0\0\17o\bÜé\0\0#q J5yR/o9p-\0\0\0\17o\bäé\0\0#q H2H9Kqdt-\0\0\0\17o\bìé\0\0#q VVX7VbbW-\0\0\0\17o\bôé\0\0#q I2Nmr22l-\0\0\0\17o\büé\0\0#q llliKehV-\0\0\0\17o\b\ 4ê\0\0#q TXVI09Cd-\0\0\0\17o\b\fê\0\0#q Z/Ou/e1a-\0\0\0\17o\b\14ê\0\0#q Ks8lfvPi-\0\0\0\17o\b\1cê\0\0#q SD3/Bks8-\0\0\0\17o\b\0\0#q PeYcuVmG-\0\0\0\17o\b\0\0#q gTKW2WyV-\0\0\0\17o\b\0\0#q Y/isZRxJ-\0\0\0\17o\b\0\0#q N2T4vyfP-\0\0\0\17o\b\0\0#q 0vRyfZZK-\0\0\0\17o\b\0\0#q rbaZNZsT-\0\0\0\17o\b\0\0#q idKX8ofE-\0\0\0\17o\b\0\0#q cnunxzNE-\0\0\0\17o\b\0\0#q JWu9xbuQ-\0\0\0\17o\b\0\0#q 3w1er3T4-\0\0\0\17o\b\0\0#q Y3g7/gte-\0\0\0\17o\b\0\0#q J4WVbTtm-\0\0\0\17o\b\84ê\0\0#q n85O7lJ/-\0\0\0\17o\b\8cê\0\0#q VEnkTJ9a-\0\0\0\17o\b\94ê\0\0#q tqsYYYeu-\0\0\0\17o\b\9cê\0\0#q jDUxIwox-\0\0\0\17o\b¤ê\0\0#q R56sknNj-\0\0\0\17o\b¬ê\0\0#q 7SbuGneR-\0\0\0\17o\b´ê\0\0#q s8nq4fJO-\0\0\0\17o\b¼ê\0\0#q 2cpuiWKi-\0\0\0\17o\bÄê\0\0#q oslVKlRS-\0\0\0\17o\bÌê\0\0#q pJZ/ULtd-\0\0\0\17o\bÔê\0\0#q lKi0b+Z8-\0\0\0\17o\bÜê\0\0#q 1+yixKtJ-\0\0\0\17o\bäê\0\0#q IPDdvJ+L-\0\0\0\17o\bìê\0\0#q vDu0SyY/-\0\0\0\17o\bôê\0\0#q h7/w/FiN-\0\0\0\17o\büê\0\0#q s+mias1c-\0\0\0\17o\b\ 4ë\0\0#q SpOznIPK-\0\0\0\17o\b\fë\0\0#q yrHt1CY9-\0\0\0\17o\b\14ë\0\0#q 42YTzH+y-\0\0\0\17o\b\1cë\0\0#q rZIoqhOE-\0\0\0\17o\b\0\0#q iZIT845d-\0\0\0\17o\b\0\0#q 3T6Pps/6-\0\0\0\17o\b\0\0#q Ofl4bEm9-\0\0\0\17o\b\0\0#q vIZB/UJB-\0\0\0\17o\b\0\0#q bEtgRgyB-\0\0\0\17o\b\0\0#q QrgTP96/-\0\0\0\17o\b\0\0#q o80lj8Fr-\0\0\0\17o\b\0\0#q pZ3WuiX6-\0\0\0\17o\b\0\0#q brraSSqx-\0\0\0\17o\b\0\0#q RuxjTFUb-\0\0\0\17o\b\0\0#q WarrGGKM-\0\0\0\17o\b\0\0#q DbBcSioF-\0\0\0\17o\b\84ë\0\0#q Sqf3ZLaC-\0\0\0\17o\b\8cë\0\0#q XBlKqfB9-\0\0\0\17o\b\94ë\0\0#q CZLWcmut-\0\0\0\17o\b\9cë\0\0#q dlVXXxEz-\0\0\0\17o\b¤ë\0\0#q qHZVo2a5-\0\0\0\17o\b¬ë\0\0#q uZjrbE5X-\0\0\0\17o\b´ë\0\0#q 5CvSKi2W-\0\0\0\17o\b¼ë\0\0#q pbDaOR0O-\0\0\0\17o\bÄë\0\0#q qaV2Vjxq-\0\0\0\17o\bÌë\0\0#q myEND13Y-\0\0\0\17o\bÔë\0\0#q GGgTBqRB-\0\0\0\17o\bÜë\0\0#q qAkgipVk-\0\0\0\17o\bäë\0\0#q tsk1bJm2-\0\0\0\17o\bìë\0\0#q 8lu2ll5d-\0\0\0\17o\bôë\0\0#q kUpklpVL-\0\0\0\17o\büë\0\0#q KkqjThs7-\0\0\0\17o\b\ 4ì\0\0#q SaJqeWRG-\0\0\0\17o\b\fì\0\0#q VasWSxZL-\0\0\0\17o\b\14ì\0\0#q Zu4aIgE5-\0\0\0\17o\b\1cì\0\0#q GtmzUkyW-\0\0\0\17o\b\0\0#q RexTG+WO-\0\0\0\17o\b\0\0#q 1qi40I7X-\0\0\0\17o\b\0\0#q +GXLi6g1-\0\0\0\17o\b\0\0#q d5IU5Kyd-\0\0\0\17o\b\0\0#q n5ZoeE4k-\0\0\0\17o\b\0\0#q iNK7HJJH-\0\0\0\17o\b\0\0#q Z32hk/Rz-\0\0\0\17o\b\0\0#q VTRzKwrO-\0\0\0\17o\b\0\0#q elrcXxZC-\0\0\0\17o\b\0\0#q b6V8ambb-\0\0\0\17o\b\0\0#q 6i+3z7g8-\0\0\0\17o\b\0\0#q vV7o2qRK-\0\0\0\17o\b\84ì\0\0#q 3bNfx+d9-\0\0\0\17o\b\8cì\0\0#q az5ZypWy-\0\0\0\17o\b\94ì\0\0#q vNOJkq2z-\0\0\0\17o\b\9cì\0\0#q TDGW3I2k-\0\0\0\17o\b¤ì\0\0#q xsrRVg0q-\0\0\0\17o\b¬ì\0\0#q aU6NmxvJ-\0\0\0\17o\b´ì\0\0#q VssZPf5C-\0\0\0\17o\b¼ì\0\0#q h3jJZiNs-\0\0\0\17o\bÄì\0\0#q kkJC5thW-\0\0\0\17o\bÌì\0\0#q jziKca5y-\0\0\0\17o\bÔì\0\0#q YTlK0RAJ-\0\0\0\17o\bÜì\0\0#q y2l5f1mH-\0\0\0\17o\bäì\0\0#q rY2Dc6Ok-\0\0\0\17o\bìì\0\0#q I2TTTy2T-\0\0\0\17o\bôì\0\0#q GVsRATPx-\0\0\0\17o\büì\0\0#q GssjZRln-\0\0\0\17o\b\ 4í\0\0#q pIg3iSRi-\0\0\0\17o\b\fí\0\0#q xI5OR2SO-\0\0\0\17o\b\14í\0\0#q ZJPl5/nc-\0\0\0\17o\b\1cí\0\0#q vR8vln1Y-\0\0\0\17o\b\0\0#q /uaaeTGF-\0\0\0\17o\b\0\0#q Sl5VO11Z-\0\0\0\17o\b\0\0#q 1vnvja5W-\0\0\0\17o\b\0\0#q 9Kw09ahk-\0\0\0\17o\b\0\0#q gtDDYyAY-\0\0\0\17o\b\0\0#q Qw/WRKMp-\0\0\0\17o\b\0\0#q 5aFVusKr-\0\0\0\17o\b\0\0#q ZpjSKdZ3-\0\0\0\17o\b\0\0#q v58tazxm-\0\0\0\17o\b\0\0#q Jb6NXQlD-\0\0\0\17o\b\0\0#q 2AabBtG1-\0\0\0\17o\b\0\0#q MLD6P6xK-\0\0\0\17o\b\84í\0\0#q QChW0XsB-\0\0\0\17o\b\8cí\0\0#q 77Y5z/JB-\0\0\0\17o\b\94í\0\0#q kkMXpKgX-\0\0\0\17o\b\9cí\0\0#q iWquYcP3-\0\0\0\17o\b¤í\0\0#q Pv6+I4oB-\0\0\0\17o\b¬í\0\0#q I7HediIr-\0\0\0\17o\b´í\0\0#q xI/Ei95E-\0\0\0\17o\b¼í\0\0#q sFOQPxkk-\0\0\0\17o\bÄí\0\0#q 78pP8rbI-\0\0\0\17o\bÌí\0\0#q tJ+v+lu6-\0\0\0\17o\bÔí\0\0#q eiHk6+Kq-\0\0\0\17o\bÜí\0\0#q z+L5PSR4-\0\0\0\17o\bäí\0\0#q npITj7fg-\0\0\0\17o\bìí\0\0#q sgl+q1VW-\0\0\0\17o\bôí\0\0#q GLPweJJj-\0\0\0\17o\büí\0\0#q UnC/Grtc-\0\0\0\17o\b\ 4î\0\0#q /J2G01ZT-\0\0\0\17o\b\fî\0\0#q LW5ObQ+b-\0\0\0\17o\b\14î\0\0#q nkr8xJ/5-\0\0\0\17o\b\1cî\0\0#q P/vSSP+C-\0\0\0\17o\b\0\0#q 1jG1YK0Y-\0\0\0\17o\b\0\0#q 1sao1qoi-\0\0\0\17o\b\0\0#q qxtFbG1b-\0\0\0\17o\b\0\0#q FRtUa1sV-\0\0\0\17o\b\0\0#q o1trGrG1-\0\0\0\17o\b\0\0#q RZKNo0UF-\0\0\0\17o\b\0\0#q SilTNtRt-\0\0\0\17o\b\0\0#q GjYIEClG-\0\0\0\17o\b\0\0#q bbBQhUJB-\0\0\0\17o\b\0\0#q pCDY1o0b-\0\0\0\17o\b\0\0#q FbGCxY1M-\0\0\0\17o\b\0\0#q oNG2zTaL-\0\0\0\17o\b\84î\0\0#q UEKzFBMN-\0\0\0\17o\b\8cî\0\0#q tUbFY2iq-\0\0\0\17o\b\94î\0\0#q KIjEUlZK-\0\0\0\17o\b\9cî\0\0#q ixqNsW0U-\0\0\0\17o\b¤î\0\0#q Y22i2g0a-\0\0\0\17o\b¬î\0\0#q girFbYrF-\0\0\0\17o\b´î\0\0#q tJiNJbSa-\0\0\0\17o\b¼î\0\0#q o1sWMUUU-\0\0\0\17o\bÄî\0\0#q UbWNslpL-\0\0\0\17o\bÌî\0\0#q WNjajFop-\0\0\0\17o\bÔî\0\0#q FMhJGxRR-\0\0\0\17o\bÜî\0\0#q ttjbBtYN-\0\0\0\17o\bäî\0\0#q too0YrRq-\0\0\0\17o\bìî\0\0#q AKKLUkmq-\0\0\0\17o\bôî\0\0#q i2sSVY2o-\0\0\0\17o\büî\0\0#q NFaNotsV-\0\0\0\17o\b\ 4ï\0\0#q oyQVaNGo-\0\0\0\17o\b\fï\0\0#q o2ooqxaN-\0\0\0\17o\b\14ï\0\0#q UUbFQoYQ-\0\0\0\17o\b\1cï\0\0#q 1o1WLUG2-\0\0\0\17o\b\0\0#q xVgybYtG-\0\0\0\17o\b\0\0#q tFRgmVk1-\0\0\0\17o\b\0\0#q iqZFQlJr-\0\0\0\17o\b\0\0#q G1sbWTaj-\0\0\0\17o\b\0\0#q RaLFaTUU-\0\0\0\17o\b\0\0#q VRtSW0bV-\0\0\0\17o\b\0\0#q FWxasFWI-\0\0\0\17o\b\0\0#q sVosatiq-\0\0\0\17o\b\0\0#q ii1GLaNa-\0\0\0\17o\b\0\0#q NGpINqg2-\0\0\0\17o\b\0\0#q jVoihmxF-\0\0\0\17o\b\0\0#q ti2DGqiq-\0\0\0\17o\b\84ï\0\0#q NFrFslti-\0\0\0\17o\b\8cï\0\0#q qMZJm2sY-\0\0\0\17o\b\94ï\0\0#q TbGLaiKi-\0\0\0\17o\b\9cï\0\0#q NYrRRGsb-\0\0\0\17o\b¤ï\0\0#q WLbQWoi0-\0\0\0\17o\b¬ï\0\0#q WNGo21ir-\0\0\0\17o\b´ï\0\0#q G2RMpRo1-\0\0\0\17o\b¼ï\0\0#q GK2Koo1i-\0\0\0\17o\bÄï\0\0#q i1i22C1i-\0\0\0\17o\bÌï\0\0#q 1RqA2o2j-\0\0\0\17o\bÔï\0\0#q bRRjWi1j-\0\0\0\17o\bÜï\0\0#q atG0lUBW-\0\0\0\17o\bäï\0\0#q zNUWo2xp-\0\0\0\17o\bìï\0\0#q RTRVG1G1-\0\0\0\17o\bôï\0\0#q Ftii2pLW-\0\0\0\17o\büï\0\0#q TahQqKi1-\0\0\0\17o\b\ 4ð\0\0#q otitJqNU-\0\0\0\17o\b\fð\0\0#q lGjJNKqI-\0\0\0\17o\b\14ð\0\0#q 0Rq2i2ya-\0\0\0\17o\b\1cð\0\0#q xjbRqMUV-\0\0\0\17o\b\0\0#q YjQaKwVR-\0\0\0\17o\b\0\0#q tFjWiCyF-\0\0\0\17o\b\0\0#q iKsRbUWi-\0\0\0\17o\b\0\0#q osmsaiqj-\0\0\0\17o\b\0\0#q Y22iqLQb-\0\0\0\17o\b\0\0#q X5/99f4p-\0\0\0\17o\b\0\0#q /uUf0tf5-\0\0\0\17o\b\0\0#q /9K/qseg-\0\0\0\17o\b\0\0#q /3/8O3Ej-\0\0\0\17o\b\0\0#q r31kY1gc-\0\0\0\17o\b\0\0#q 5A1pvXCx-\0\0\0\17o\b\0\0#q CkNiwvOQ-\0\0\0\17o\b\84ð\0\0#q ZYLITeUx-\0\0\0\17o\b\8cð\0\0#q 5CNobGwq-\0\0\0\17o\b\94ð\0\0#q J5o3bWtQ-\0\0\0\17o\b\9cð\0\0#q 2oqajkZR-\0\0\0\17o\b¤ð\0\0#q rRj1prYW-\0\0\0\17o\b¬ð\0\0#q 5TG2Rkzh-\0\0\0\17o\b´ð\0\0#q xibIud1z-\0\0\0\17o\b¼ð\0\0#q ezbDrRBn-\0\0\0\17o\bÄð\0\0#q 8s2xsbHZ-\0\0\0\17o\bÌð\0\0#q Ilaaujw8-\0\0\0\17o\bÔð\0\0#q 73Rttris-\0\0\0\17o\bÜð\0\0#q 4cJCx42D-\0\0\0\17o\bäð\0\0#q giHZM67L-\0\0\0\17o\bìð\0\0#q Em5mczQU-\0\0\0\17o\bôð\0\0#q 0zdbGxtv-\0\0\0\17o\büð\0\0#q ENm4RY8a-\0\0\0\17o\b\ 4ñ\0\0#q xrs0rvvB-\0\0\0\17o\b\fñ\0\0#q 2Lmhu9ZH-\0\0\0\17o\b\14ñ\0\0#q 1rnXlfnh-\0\0\0\17o\b\1cñ\0\0#q QMwstTWM-\0\0\0\17o\b\0\0#q gZ24VXZJ-\0\0\0\17o\b\0\0#q dzdKmphd-\0\0\0\17o\b\0\0#q lKOvHF5Y-\0\0\0\17o\b\0\0#q pc1co3Wp-\0\0\0\17o\b\0\0#q PG5UchDH-\0\0\0\17o\b\0\0#q HthGXu6j-\0\0\0\17o\b\0\0#q HcIFa8oQ-\0\0\0\17o\b\0\0#q rWt53ErY-\0\0\0\17o\b\0\0#q 2jQyDFGQ-\0\0\0\17o\b\0\0#q Gaaj15Bb-\0\0\0\17o\b\0\0#q vaLTDPKU-\0\0\0\17o\b\0\0#q 2xY9Mj2z-\0\0\0\17o\b\84ñ\0\0#q rW2Hba2J-\0\0\0\17o\b\8cñ\0\0#q jEwZb1ms-\0\0\0\17o\b\94ñ\0\0#q hmPWcZdX-\0\0\0\17o\b\9cñ\0\0#q PGGDOQ4h-\0\0\0\17o\b¤ñ\0\0#q qWsZbxqy-\0\0\0\17o\b¬ñ\0\0#q LQ6ysx+P-\0\0\0\17o\b´ñ\0\0#q u9UmOHJE-\0\0\0\17o\b¼ñ\0\0#q yavWvHjb-\0\0\0\17o\bÄñ\0\0#q PPnsX1XI-\0\0\0\17o\bÌñ\0\0#q iq+W3w8T-\0\0\0\17o\bÔñ\0\0#q u+Ry16Js-\0\0\0\17o\bÜñ\0\0#q 2+QVNGKU-\0\0\0\17o\bäñ\0\0#q jZLWwXGB-\0\0\0\17o\bìñ\0\0#q xtiE2hFT-\0\0\0\17o\bôñ\0\0#q SXGBGkBj-\0\0\0\17o\büñ\0\0#q Mu6xtIYN-\0\0\0\17o\b\ 4ò\0\0#q FQM1yBbp-\0\0\0\17o\b\fò\0\0#q 9u0ksTSt-\0\0\0\17o\b\14ò\0\0#q orHkolJ3-\0\0\0\17o\b\1cò\0\0#q E5XN5tOF-\0\0\0\17o\b\0\0#q jhjhwmVc-\0\0\0\17o\b\0\0#q OxEtLHxy-\0\0\0\17o\b\0\0#q yr7N9lk1-\0\0\0\17o\b\0\0#q DJaN0qwp-\0\0\0\17o\b\0\0#q iCBpBAPG-\0\0\0\17o\b\0\0#q 3V0ccPvd-\0\0\0\17o\b\0\0#q 0Avs82rS-\0\0\0\17o\b\0\0#q KmAnj7RQ-\0\0\0\17o\b\0\0#q AdYSdYbz-\0\0\0\17o\b\0\0#q JjI4URnJ-\0\0\0\17o\b\0\0#q fO3TT4xQ-\0\0\0\17o\b\0\0#q 26ahpseR-\0\0\0\17o\b\84ò\0\0#q DUtS+MKb-\0\0\0\17o\b\8cò\0\0#q aVjQ9wg3-\0\0\0\17o\b\94ò\0\0#q lnedmecm-\0\0\0\17o\b\9cò\0\0#q uQV2y44p-\0\0\0\17o\b¤ò\0\0#q tKaHyuZc-\0\0\0\17o\b¬ò\0\0#q F1u1JXKJ-\0\0\0\17o\b´ò\0\0#q lu6pRPST-\0\0\0\17o\b¼ò\0\0#q udsbp5qi-\0\0\0\17o\bÄò\0\0#q xXfWcnpx-\0\0\0\17o\bÌò\0\0#q PboouIu6-\0\0\0\17o\bÔò\0\0#q q3vjI6ci-\0\0\0\17o\bÜò\0\0#q 2PuVosvF-\0\0\0\17o\bäò\0\0#q 0bH3kaaL-\0\0\0\17o\bìò\0\0#q yFWNsiaL-\0\0\0\17o\bôò\0\0#q GxxWqGnv-\0\0\0\17o\büò\0\0#q HH4d8MyQ-\0\0\0\17o\b\ 4ó\0\0#q pjfcyGZA-\0\0\0\17o\b\fó\0\0#q 6+PHVbTd-\0\0\0\17o\b\14ó\0\0#q 22SxshNh-\0\0\0\17o\b\1có\0\0#q jBvMiBio-\0\0\0\17o\b\0\0#q csG2M5zF-\0\0\0\17o\b\0\0#q Rj1yyQh5-\0\0\0\17o\b\0\0#q C7vZX53z-\0\0\0\17o\b\0\0#q Dy85X19h-\0\0\0\17o\b\0\0#q w6XAhSc4-\0\0\0\17o\b\0\0#q 4HRB2w2J-\0\0\0\17o\b\0\0#q zqalk90q-\0\0\0\17o\b\0\0#q qeRM9JrL-\0\0\0\17o\b\0\0#q jIlc2+tv-\0\0\0\17o\b\0\0#q hMyT2eUu-\0\0\0\17o\b\0\0#q q4MdumMq-\0\0\0\17o\b\0\0#q yCenJRHT-\0\0\0\17o\b\84ó\0\0#q k1OZudfS-\0\0\0\17o\b\8có\0\0#q +VfKOcyA-\0\0\0\17o\b\94ó\0\0#q 5HHezeQr-\0\0\0\17o\b\9có\0\0#q Jxq2piOM-\0\0\0\17o\b¤ó\0\0#q 5vIJjY0f-\0\0\0\17o\b¬ó\0\0#q YvMt9eOL-\0\0\0\17o\b´ó\0\0#q t3WsvDtG-\0\0\0\17o\b¼ó\0\0#q 97S85zOs-\0\0\0\17o\bÄó\0\0#q 8DAjs7dX-\0\0\0\17o\bÌó\0\0#q vmFFxB5l-\0\0\0\17o\bÔó\0\0#q 4hvFFWKj-\0\0\0\17o\bÜó\0\0#q G6TIUmyW-\0\0\0\17o\bäó\0\0#q mMme3cQz-\0\0\0\17o\bìó\0\0#q Nyatha2C-\0\0\0\17o\bôó\0\0#q Ux7UUluG-\0\0\0\17o\büó\0\0#q UDYW7GzY-\0\0\0\17o\b\ 4ô\0\0#q GPvUZVUN-\0\0\0\17o\b\fô\0\0#q 2QruGNDb-\0\0\0\17o\b\14ô\0\0#q Q2NtNsoE-\0\0\0\17o\b\1cô\0\0#q DGs5S4Sw-\0\0\0\17o\b\0\0#q 7tuXObFD-\0\0\0\17o\b\0\0#q TJmQpdzu-\0\0\0\17o\b\0\0#q USm7gDGi-\0\0\0\17o\b\0\0#q 7IElwyNb-\0\0\0\17o\b\0\0#q NWUW5apw-\0\0\0\17o\b\0\0#q r1xMC2oS-\0\0\0\17o\b\0\0#q 5tUYZA2c-\0\0\0\17o\b\0\0#q HGiAzve7-\0\0\0\17o\b\0\0#q XardJ2Iu-\0\0\0\17o\b\0\0#q YysvZR0K-\0\0\0\17o\b\0\0#q u5Ck+2RL-\0\0\0\17o\b\0\0#q 65bzSHlF-\0\0\0\17o\b\84ô\0\0#q lxDxNMK5-\0\0\0\17o\b\8cô\0\0#q TWUzcfeF-\0\0\0\17o\b\94ô\0\0#q omjrOXGk-\0\0\0\17o\b\9cô\0\0#q uCogWNpZ-\0\0\0\17o\b¤ô\0\0#q b5Tmyes2-\0\0\0\17o\b¬ô\0\0#q YdxqRBmU-\0\0\0\17o\b´ô\0\0#q 6GoIV0TP-\0\0\0\17o\b¼ô\0\0#q JNojDDaq-\0\0\0\17o\bÄô\0\0#q LiTC92lI-\0\0\0\17o\bÌô\0\0#q 44VORRdd-\0\0\0\17o\bÔô\0\0#q 7f/n2zez-\0\0\0\17o\bÜô\0\0#q 072fHsVc-\0\0\0\17o\bäô\0\0#q 0lJBrBTJ-\0\0\0\17o\bìô\0\0#q O0dTCCHB-\0\0\0\17o\bôô\0\0#q nnJ7l4TD-\0\0\0\17o\büô\0\0#q b0xvuQrW-\0\0\0\17o\b\ 4õ\0\0#q jqhowcNm-\0\0\0\17o\b\fõ\0\0#q KETZaeWn-\0\0\0\17o\b\14õ\0\0#q 2MKO9JNM-\0\0\0\17o\b\1cõ\0\0#q jipkZF31-\0\0\0\17o\b\0\0#q GWlSxcYp-\0\0\0\17o\b\0\0#q Jydb5hSn-\0\0\0\17o\b\0\0#q INMGPuEO-\0\0\0\17o\b\0\0#q nRLL4UV1-\0\0\0\17o\b\0\0#q hvIPGKBl-\0\0\0\17o\b\0\0#q ZvS4ydl0-\0\0\0\17o\b\0\0#q W3uRzvMA-\0\0\0\17o\b\0\0#q xgqY2gIY-\0\0\0\17o\b\0\0#q c5EjKevt-\0\0\0\17o\b\0\0#q HG5vkRZf-\0\0\0\17o\b\0\0#q Ti704pm6-\0\0\0\17o\b\0\0#q 4VOlm9mn-\0\0\0\17o\b\84õ\0\0#q ddnhX1d8-\0\0\0\17o\b\8cõ\0\0#q i11nlLfO-\0\0\0\17o\b\94õ\0\0#q 43hvIUvk-\0\0\0\17o\b\9cõ\0\0#q hnaDTed1-\0\0\0\17o\b¤õ\0\0#q UYzb4SQy-\0\0\0\17o\b¬õ\0\0#q 8iOZJY0O-\0\0\0\17o\b´õ\0\0#q XGtwdkbr-\0\0\0\17o\b¼õ\0\0#q l6UMLqQo-\0\0\0\17o\bÄõ\0\0#q Oxj6wqcm-\0\0\0\17o\bÌõ\0\0#q 67PRzUcw-\0\0\0\17o\bÔõ\0\0#q OOdgLJgv-\0\0\0\17o\bÜõ\0\0#q lpWuyLe1-\0\0\0\17o\bäõ\0\0#q MNGlSR9c-\0\0\0\17o\bìõ\0\0#q dZItEm9x-\0\0\0\17o\bôõ\0\0#q aWRy5l21-\0\0\0\17o\büõ\0\0#q raQcOMen-\0\0\0\17o\b\ 4ö\0\0#q bGPjUtId-\0\0\0\17o\b\fö\0\0#q 5L5rfXWQ-\0\0\0\17o\b\14ö\0\0#q r2NbGd5B-\0\0\0\17o\b\1cö\0\0#q XI6+tVcA-\0\0\0\17o\b\0\0#q 2rcJgTsa-\0\0\0\17o\b\0\0#q 6HJhyR9J-\0\0\0\17o\b\0\0#q ZrTaSuTN-\0\0\0\17o\b\0\0#q 7tG94c7f-\0\0\0\17o\b\0\0#q N54bJ5gK-\0\0\0\17o\b\0\0#q AteSmybg-\0\0\0\17o\b\0\0#q HEB3lSGH-\0\0\0\17o\b\0\0#q TGcmecrP-\0\0\0\17o\b\0\0#q GjWNw+WA-\0\0\0\17o\b\0\0#q 2uNR0eri-\0\0\0\17o\b\0\0#q oM73usN6-\0\0\0\17o\b\0\0#q veTkgxmQ-\0\0\0\17o\b\84ö\0\0#q tzC+7W1C-\0\0\0\17o\b\8cö\0\0#q 52SQlmXc-\0\0\0\17o\b\94ö\0\0#q ODt80oUQ-\0\0\0\17o\b\9cö\0\0#q Qutphmed-\0\0\0\17o\b¤ö\0\0#q zHoa0Pb5-\0\0\0\17o\b¬ö\0\0#q uGiUik1k-\0\0\0\17o\b´ö\0\0#q XE7ZGybH-\0\0\0\17o\b¼ö\0\0#q 16ydOZNO-\0\0\0\17o\bÄö\0\0#q pe5Sgesh-\0\0\0\17o\bÌö\0\0#q jsIhgWST-\0\0\0\17o\bÔö\0\0#q nObvd7JY-\0\0\0\17o\bÜö\0\0#q yX1O5WwQ-\0\0\0\17o\bäö\0\0#q QTtFWii2-\0\0\0\17o\bìö\0\0#q tYujUsWb-\0\0\0\17o\bôö\0\0#q w0ezmrTN-\0\0\0\17o\büö\0\0#q w5aVPbIM-\0\0\0\17o\b\ 4÷\0\0#q BpLsctzL-\0\0\0\17o\b\f÷\0\0#q 3e82boiM-\0\0\0\17o\b\14÷\0\0#q G5yOnOmm-\0\0\0\17o\b\1c÷\0\0#q 8fMsldyW-\0\0\0\17o\b\0\0#q w025uHyF-\0\0\0\17o\b\0\0#q FYaQ8uhZ-\0\0\0\17o\b\0\0#q TsWKiNp8-\0\0\0\17o\b\0\0#q JA35OM6z-\0\0\0\17o\b\0\0#q tkc5IRzb-\0\0\0\17o\b\0\0#q yi5eshOO-\0\0\0\17o\b\0\0#q 7RfQUENx-\0\0\0\17o\b\0\0#q DrF3qvnK-\0\0\0\17o\b\0\0#q utTq2OI2-\0\0\0\17o\b\0\0#q Axlgzi73-\0\0\0\17o\b\0\0#q va5to5kV-\0\0\0\17o\b\0\0#q tHbQ7Y32-\0\0\0\17o\b\84÷\0\0#q Dd1k3HCj-\0\0\0\17o\b\8c÷\0\0#q LIPSN73V-\0\0\0\17o\b\94÷\0\0#q uOclVLYX-\0\0\0\17o\b\9c÷\0\0#q pmseBJzb-\0\0\0\17o\b¤÷\0\0#q NvLSDWBy-\0\0\0\17o\b¬÷\0\0#q I7kReScm-\0\0\0\17o\b´÷\0\0#q 2jiac6zt-\0\0\0\17o\b¼÷\0\0#q XZGkbaiC-\0\0\0\17o\bÄ÷\0\0#q AyO2QzIX-\0\0\0\17o\bÌ÷\0\0#q Td7J06xs-\0\0\0\17o\bÔ÷\0\0#q s3ieAXL4-\0\0\0\17o\bÜ÷\0\0#q jMoKMHss-\0\0\0\17o\bä÷\0\0#q zhnY2tu+-\0\0\0\17o\bì÷\0\0#q PYncmERU-\0\0\0\17o\bô÷\0\0#q RzYjb7rV-\0\0\0\17o\bü÷\0\0#q mXU5FSXu-\0\0\0\17o\b\ 4ø\0\0#q zzzvke8r-\0\0\0\17o\b\fø\0\0#q flq8UMwG-\0\0\0\17o\b\14ø\0\0#q zmKayKZk-\0\0\0\17o\b\1cø\0\0#q WIVa8gdU-\0\0\0\17o\b\0\0#q zJzlgqDk-\0\0\0\17o\b\0\0#q EC5XJt6M-\0\0\0\17o\b\0\0#q pysuebzM-\0\0\0\17o\b\0\0#q k5crS96O-\0\0\0\17o\b\0\0#q kqQR3Dkz-\0\0\0\17o\b\0\0#q ElgmcLoC-\0\0\0\17o\b\0\0#q wfLTbkIR-\0\0\0\17o\b\0\0#q 3GXy81m+-\0\0\0\17o\b\0\0#q S4PlrND6-\0\0\0\17o\b\0\0#q 9sIGpuN6-\0\0\0\17o\b\0\0#q O4g2ktmw-\0\0\0\17o\b\0\0#q gkuHKu9w-\0\0\0\17o\b\84ø\0\0#q yznIiYqH-\0\0\0\17o\b\8cø\0\0#q xh287t87-\0\0\0\17o\b\94ø\0\0#q BEPFkERt-\0\0\0\17o\b\9cø\0\0#q 85JvWK2O-\0\0\0\17o\b¤ø\0\0#q rjtJEX2u-\0\0\0\17o\b¬ø\0\0#q 3Obs84de-\0\0\0\17o\b´ø\0\0#q bd0rw7zd-\0\0\0\17o\b¼ø\0\0#q eXMFzOZD-\0\0\0\17o\bÄø\0\0#q J3NvLmvO-\0\0\0\17o\bÌø\0\0#q W98l52ee-\0\0\0\17o\bÔø\0\0#q c8Ovx3UR-\0\0\0\17o\bÜø\0\0#q CkNEx+BY-\0\0\0\17o\bäø\0\0#q 1uglDVhy-\0\0\0\17o\bìø\0\0#q 3y0UPJcK-\0\0\0\17o\bôø\0\0#q yiDZjGbe-\0\0\0\17o\büø\0\0#q wQ+bM3Ed-\0\0\0\17o\b\ 4ù\0\0#q m6FJOvzz-\0\0\0\17o\b\fù\0\0#q azuclkGa-\0\0\0\17o\b\14ù\0\0#q GMcYNlfJ-\0\0\0\17o\b\1cù\0\0#q EmxcZb4M-\0\0\0\17o\b\0\0#q 0d5vObBO-\0\0\0\17o\b\0\0#q O3PN5hD0-\0\0\0\17o\b\0\0#q onSZ5O7G-\0\0\0\17o\b\0\0#q GzFbRbOZ-\0\0\0\17o\b\0\0#q zlE2Rhka-\0\0\0\17o\b\0\0#q wphx0zrl-\0\0\0\17o\b\0\0#q ixjRccim-\0\0\0\17o\b\0\0#q W65Ok1uZ-\0\0\0\17o\b\0\0#q Q8tkA7rS-\0\0\0\17o\b\0\0#q LGbUGzJI-\0\0\0\17o\b\0\0#q Zew32hAF-\0\0\0\17o\b\0\0#q kPnNVhE9-\0\0\0\17o\b\84ù\0\0#q MqWiOw47-\0\0\0\17o\b\8cù\0\0#q zozjty6k-\0\0\0\17o\b\94ù\0\0#q Nk1N83UI-\0\0\0\17o\b\9cù\0\0#q 0ZAZmzwz-\0\0\0\17o\b¤ù\0\0#q Hu5NUqQy-\0\0\0\17o\b¬ù\0\0#q Qow0vktd-\0\0\0\17o\b´ù\0\0#q qtUDtNuQ-\0\0\0\17o\b¼ù\0\0#q OWVDBrlB-\0\0\0\17o\bÄù\0\0#q zZMzs4tf-\0\0\0\17o\bÌù\0\0#q bbgLjvOV-\0\0\0\17o\bÔù\0\0#q lw1POknT-\0\0\0\17o\bÜù\0\0#q ok9nX1y1-\0\0\0\17o\bäù\0\0#q i108eGb3-\0\0\0\17o\bìù\0\0#q lqIbyXdF-\0\0\0\17o\bôù\0\0#q m5ZQ1N1r-\0\0\0\17o\büù\0\0#q dRtQsbwY-\0\0\0\17o\b\ 4ú\0\0#q cJmHBeXW-\0\0\0\17o\b\fú\0\0#q 2qMDeacg-\0\0\0\17o\b\14ú\0\0#q 55NcqOxl-\0\0\0\17o\b\1cú\0\0#q x5mVneeF-\0\0\0\17o\b\0\0#q YjRYeJ0c-\0\0\0\17o\b\0\0#q kbFCkO9H-\0\0\0\17o\b\0\0#q PGh6Uz0Y-\0\0\0\17o\b\0\0#q irAec3cA-\0\0\0\17o\b\0\0#q aT2SN9TI-\0\0\0\17o\b\0\0#q dhI4eu6x-\0\0\0\17o\b\0\0#q RjeuwlnH-\0\0\0\17o\b\0\0#q tcd9I6I7-\0\0\0\17o\b\0\0#q mnNQujxo-\0\0\0\17o\b\0\0#q haKtvuAQ-\0\0\0\17o\b\0\0#q d6d17CIo-\0\0\0\17o\b\0\0#q MjnTcYTJ-\0\0\0\17o\b\84ú\0\0#q 0gzDnLog-\0\0\0\17o\b\8cú\0\0#q y87zLa4R-\0\0\0\17o\b\94ú\0\0#q IWrjb3QJ-\0\0\0\17o\b\9cú\0\0#q V4OaRG3h-\0\0\0\17o\b¤ú\0\0#q mhxMjBao-\0\0\0\17o\b¬ú\0\0#q zkkzdTcU-\0\0\0\17o\b´ú\0\0#q bRtJzGnc-\0\0\0\17o\b¼ú\0\0#q sju30dDu-\0\0\0\17o\bÄú\0\0#q birvs7xZ-\0\0\0\17o\bÌú\0\0#q JuXdqYd7-\0\0\0\17o\bÔú\0\0#q zsWQFdt5-\0\0\0\17o\bÜú\0\0#q eUcWbvOE-\0\0\0\17o\bäú\0\0#q b3hdO1zO-\0\0\0\17o\bìú\0\0#q bnI7UeWd-\0\0\0\17o\bôú\0\0#q 7m7t8zw5-\0\0\0\17o\büú\0\0#q eWdMmpq9-\0\0\0\17o\b\ 4û\0\0#q lvkl1O2s-\0\0\0\17o\b\fû\0\0#q 33XNPfK3-\0\0\0\17o\b\14û\0\0#q sTSyZwcb-\0\0\0\17o\b\1cû\0\0#q L7OVx6ZF-\0\0\0\17o\b\0\0#q d7y47nYj-\0\0\0\17o\b\0\0#q GcfOl5WU-\0\0\0\17o\b\0\0#q bFK6jGO8-\0\0\0\17o\b\0\0#q 5fdlu+Oj-\0\0\0\17o\b\0\0#q //MUFZJl-\0\0\0\17o\b\0\0#q NZf1tARw-\0\0\0\17o\b\0\0#q a8BV+AQD-\0\0\0\17o\b\0\0#q gQB3/wP+-\0\0\0\17o\b\0\0#q ffir////-\0\0\0\17o\b\0\0#q pgsXwAAA-\0\0\0\17o\b\0\0#q AAAAAAAA-\0\0\0\17o\b\0\0#q ADkAFvAB-\0\0\0\17o\b\84û\0\0#q 9CgCqKvh-\0\0\0\17o\b\8cû\0\0#q wIIRClJB-\0\0\0\17o\b\94û\0\0#q QGt931Kc-\0\0\0\17o\b\9cû\0\0#q B7ue29fO-\0\0\0\17o\b¤û\0\0#q M4xl8OCC-\0\0\0\17o\b¬û\0\0#q gCOsAD4g-\0\0\0\17o\b´û\0\0#q AMCCqAgi-\0\0\0\17o\b¼û\0\0#q gO4wANPN-\0\0\0\17o\bÄû\0\0#q s0ABQWrw-\0\0\0\17o\bÌû\0\0#q W94D7vhh-\0\0\0\17o\bÔû\0\0#q 57CBAWsP-\0\0\0\17o\bÜû\0\0#q bK21bY1p-\0\0\0\17o\bäû\0\0#q 2NSlc29v-\0\0\0\17o\bìû\0\0#q nvroj5VJ-\0\0\0\17o\bôû\0\0#q CRUilcbP-\0\0\0\17o\büû\0\0#q tq+nc776-\0\0\0\17o\b\ 4ü\0\0#q 2bq+rYxo-\0\0\0\17o\b\fü\0\0#q GIRFFTW+-\0\0\0\17o\b\14ü\0\0#q 199fPB8o-\0\0\0\17o\b\1cü\0\0#q qqVSlUqJ-\0\0\0\17o\b\0\0#q fA6522q9-\0\0\0\17o\b\0\0#q YIUQr2e0-\0\0\0\17o\b\0\0#q dTolBEUA-\0\0\0\17o\b\0\0#q pKpKdxdy-\0\0\0\17o\b\0\0#q iq9PcxXp-\0\0\0\17o\b\0\0#q pT7XA1zw-\0\0\0\17o\b\0\0#q 2DoUqJQt-\0\0\0\17o\b\0\0#q bhzOqiUF-\0\0\0\17o\b\0\0#q UEnrTwsJ-\0\0\0\17o\b\0\0#q plFOzKlP-\0\0\0\17o\b\0\0#q LNubxmlv-\0\0\0\17o\b\0\0#q LabHh70v-\0\0\0\17o\b\84ü\0\0#q Pbs9VSlU-\0\0\0\17o\b\8cü\0\0#q C2aInZnW-\0\0\0\17o\b\94ü\0\0#q UtKa6kV0-\0\0\0\17o\b\9cü\0\0#q 6iV7xWDf-\0\0\0\17o\b¤ü\0\0#q ctwDvZfb-\0\0\0\17o\b¬ü\0\0#q VSHSMzex-\0\0\0\17o\b´ü\0\0#q 1T1Xu3db-\0\0\0\17o\b¼ü\0\0#q tgdcgV00-\0\0\0\17o\bÄü\0\0#q eRqTtivM-\0\0\0\17o\bÌü\0\0#q xlkDWp3c-\0\0\0\17o\bÔü\0\0#q 5VXc0tLh-\0\0\0\17o\bÜü\0\0#q itmrNiVC-\0\0\0\17o\bäü\0\0#q hF12zldt-\0\0\0\17o\bìü\0\0#q J3W27okK-\0\0\0\17o\bôü\0\0#q oCs8t8dj-\0\0\0\17o\büü\0\0#q vZ9jdAPW-\0\0\0\17o\b\ 4ý\0\0#q i0r3HoNJ-\0\0\0\17o\b\fý\0\0#q bs1XKl3d-\0\0\0\17o\b\14ý\0\0#q Vs7jAPbH-\0\0\0\17o\b\1cý\0\0#q mZ03gFeU-\0\0\0\17o\b\0\0#q l02d2aYc-\0\0\0\17o\b\0\0#q R6bmqg61-\0\0\0\17o\b\0\0#q 73G4GXhq-\0\0\0\17o\b\0\0#q egQBAgTQ-\0\0\0\17o\b\0\0#q SUPUEGEP-\0\0\0\17o\b\0\0#q UZGTAA1P-\0\0\0\17o\b\0\0#q CCSJVT9o-\0\0\0\17o\b\0\0#q wqPVMeqf-\0\0\0\17o\b\0\0#q iQAIxGJk-\0\0\0\17o\b\0\0#q YAEmkSIQ-\0\0\0\17o\b\0\0#q jRRphCT1-\0\0\0\17o\b\0\0#q GTygAPU9-\0\0\0\17o\b\84ý\0\0#q TTTEACT1-\0\0\0\17o\b\8cý\0\0#q SkiFPIj1-\0\0\0\17o\b\94ý\0\0#q MSaNAAAA-\0\0\0\17o\b\9cý\0\0#q AAAApSIC-\0\0\0\17o\b¤ý\0\0#q IoiTMqep-\0\0\0\17o\b¬ý\0\0#q gUaeyoaa-\0\0\0\17o\b´ý\0\0#q AaMgBiBU-\0\0\0\17o\b¼ý\0\0#q SIIIgRoE-\0\0\0\17o\bÄý\0\0#q Jkmqaek2-\0\0\0\17o\bÌý\0\0#q po0BkZAP-\0\0\0\17o\bÔý\0\0#q U+d9mfOt-\0\0\0\17o\bÜý\0\0#q n2399/Ua-\0\0\0\17o\bäý\0\0#q ZITRTREB-\0\0\0\17o\bìý\0\0#q AJMILEUS-\0\0\0\17o\bôý\0\0#q ZiSKkYAE-\0\0\0\17o\büý\0\0#q mGm0IokQ-\0\0\0\17o\b\ 4þ\0\0#q KAYlDGAS-\0\0\0\17o\b\fþ\0\0#q ykCCmWJB-\0\0\0\17o\b\14þ\0\0#q QBpkaKQL-\0\0\0\17o\b\1cþ\0\0#q BIiZhJpS-\0\0\0\17o\b\0\0#q zJEhDTRC-\0\0\0\17o\b\0\0#q EkUETEKM-\0\0\0\17o\b\0\0#q xQRSIxia-\0\0\0\17o\b\0\0#q GQREwxpZ-\0\0\0\17o\b\0\0#q Eg0KYgAa-\0\0\0\17o\b\0\0#q EkAGJGE0-\0\0\0\17o\b\0\0#q ilIIhQZF-\0\0\0\17o\b\0\0#q LKTCMSQM-\0\0\0\17o\b\0\0#q kBYoRIUk-\0\0\0\17o\b\0\0#q FIkmkQMZ-\0\0\0\17o\b\0\0#q hGYyJkQw-\0\0\0\17o\b\0\0#q IUUkTQwJ-\0\0\0\17o\b\84þ\0\0#q slEQk0IA-\0\0\0\17o\b\8cþ\0\0#q pAEEkJCI-\0\0\0\17o\b\94þ\0\0#q RQLAGUhJ-\0\0\0\17o\b\9cþ\0\0#q M0NCzNDK-\0\0\0\17o\b¤þ\0\0#q bFlk0QYE-\0\0\0\17o\b¬þ\0\0#q aSCihZRN-\0\0\0\17o\b´þ\0\0#q ABJhCZRF-\0\0\0\17o\b¼þ\0\0#q KJFkxIKR-\0\0\0\17o\bÄþ\0\0#q mDJEZZSi-\0\0\0\17o\bÌþ\0\0#q mhJRNkEj-\0\0\0\17o\bÔþ\0\0#q GUIIIGFM-\0\0\0\17o\bÜþ\0\0#q pgaQMaSR-\0\0\0\17o\bäþ\0\0#q jJEYTCYo-\0\0\0\17o\bìþ\0\0#q GlEQpmzG-\0\0\0\17o\bôþ\0\0#q ZLISlRlC-\0\0\0\17o\büþ\0\0#q GEIIyYMa-\0\0\0\17o\b\ 4ÿ\0\0#q ZKkpiCNI-\0\0\0\17o\b\fÿ\0\0#q jIURTTTG-\0\0\0\17o\b\14ÿ\0\0#q kmkaGUWK-\0\0\0\17o\b\1cÿ\0\0#q RNiEM1ER-\0\0\0\17o\b$ÿ\0\0#q kZEjIyMx-\0\0\0\17o\b,ÿ\0\0#q IQJRjBkK-\0\0\0\17o\b4ÿ\0\0#q TBJiUyzM-\0\0\0\17o\b<ÿ\0\0#q 0BhkLMYk-\0\0\0\17o\bDÿ\0\0#q JEwQBQGh-\0\0\0\17o\bLÿ\0\0#q pGWTRjKI-\0\0\0\17o\bTÿ\0\0#q E0SYCUjD-\0\0\0\17o\b\ÿ\0\0#q SIhmGkyE-\0\0\0\17o\bdÿ\0\0#q ZlMZjCAY-\0\0\0\17o\blÿ\0\0#q YkpimEBM-\0\0\0\17o\btÿ\0\0#q ZlEghCUs-\0\0\0\17o\b|ÿ\0\0#q kyWQyUZi-\0\0\0\17o\b\84ÿ\0\0#q GYJlEmSz-\0\0\0\17o\b\8cÿ\0\0#q MmKRiQML-\0\0\0\17o\b\94ÿ\0\0#q MxTTBlJo-\0\0\0\17o\b\9cÿ\0\0#q iJphJImI-\0\0\0\17o\b¤ÿ\0\0#q igzIpSYz-\0\0\0\17o\b¬ÿ\0\0#q FIo2MUAS-\0\0\0\17o\b´ÿ\0\0#q SpKIRJia-\0\0\0\17o\b¼ÿ\0\0#q BiFAGGmg-\0\0\0\17o\bÄÿ\0\0#q IUlEgSMm-\0\0\0\17o\bÌÿ\0\0#q BGIZqYzQ-\0\0\0\17o\bÔÿ\0\0#q IwIpIljM-\0\0\0\17o\bÜÿ\0\0#q JIKSZE0F-\0\0\0\17o\bäÿ\0\0#q mAxg2IjI-\0\0\0\17o\bìÿ\0\0#q aNLAaEhI-\0\0\0\17o\bôÿ\0\0#q sCyTEgyG-\0\0\0\17o\büÿ\0\0#q YokNMEzT-\0\0\0\17o\b\ 4\0\ 1\0#q MUiNiMNg-\0\0\0\17o\b\f\0\ 1\0#q jRMMYSSQ-\0\0\0\17o\b\14\0\ 1\0#q QhMghBgA-\0\0\0\17o\b\1c\0\ 1\0#q GCEoEY0S-\0\0\0\17o\b$\0\ 1\0#q kZlCiRhR-\0\0\0\17o\b,\0\ 1\0#q QSiZEQgK-\0\0\0\17o\b4\0\ 1\0#q MGQFIkkG-\0\0\0\17o\b<\0\ 1\0#q IySy0CZQ-\0\0\0\17o\bD\0\ 1\0#q EqIshpMx-\0\0\0\17o\bL\0\ 1\0#q jGSUUKGS-\0\0\0\17o\bT\0\ 1\0#q QogUJJAM-\0\0\0\17o\b\\0\ 1\0#q g0YhCooU-\0\0\0\17o\bd\0\ 1\0#q JTKEgJoU-\0\0\0\17o\bl\0\ 1\0#q opZCiYLE-\0\0\0\17o\bt\0\ 1\0#q UsIkGESL-\0\0\0\17o\b|\0\ 1\0#q IajJokJj-\0\0\0\17o\b\84\0\ 1\0#q EQJgDSli-\0\0\0\17o\b\8c\0\ 1\0#q QhGIaADE-\0\0\0\17o\b\94\0\ 1\0#q BsWJJAYm-\0\0\0\17o\b\9c\0\ 1\0#q koDQjIJN-\0\0\0\17o\b¤\0\ 1\0#q CNGUEwGZ-\0\0\0\17o\b¬\0\ 1\0#q IEkqYjAs-\0\0\0\17o\b´\0\ 1\0#q bMbGjBAZ-\0\0\0\17o\b¼\0\ 1\0#q kgkBKRjQ-\0\0\0\17o\bÄ\0\ 1\0#q GUQQTKZg-\0\0\0\17o\bÌ\0\ 1\0#q ymhiQIhE-\0\0\0\17o\bÔ\0\ 1\0#q CNhhmMyE-\0\0\0\17o\bÜ\0\ 1\0#q MgjBMYCJ-\0\0\0\17o\bä\0\ 1\0#q TZBEhSMp-\0\0\0\17o\bì\0\ 1\0#q k0zGlEyZ-\0\0\0\17o\bô\0\ 1\0#q SjGFFRQp-\0\0\0\17o\bü\0\ 1\0#q IykkjFCo-\0\0\0\17o\b\ 4\ 1\ 1\0#q JoxhpIQS-\0\0\0\17o\b\f\ 1\ 1\0#q JoRZIZMR-\0\0\0\17o\b\14\ 1\ 1\0#q miLJEMwS-\0\0\0\17o\b\1c\ 1\ 1\0#q JgibCaJg-\0\0\0\17o\b$\ 1\ 1\0#q hRAEyggk-\0\0\0\17o\b,\ 1\ 1\0#q QySTISQB-\0\0\0\17o\b4\ 1\ 1\0#q SIJJMyjW-\0\0\0\17o\b<\ 1\ 1\0#q KAQSQKQY-\0\0\0\17o\bD\ 1\ 1\0#q KLDSDRFg-\0\0\0\17o\bL\ 1\ 1\0#q gaYDJhkR-\0\0\0\17o\bT\ 1\ 1\0#q BqJiSBkS-\0\0\0\17o\b\\ 1\ 1\0#q yBmQJhFN-\0\0\0\17o\bd\ 1\ 1\0#q BESMWJkm-\0\0\0\17o\bl\ 1\ 1\0#q pEwkjEQx-\0\0\0\17o\bt\ 1\ 1\0#q QomI0wJi-\0\0\0\17o\b|\ 1\ 1\0#q RijNKCQQ-\0\0\0\17o\b\84\ 1\ 1\0#q NNhaYhlk-\0\0\0\17o\b\8c\ 1\ 1\0#q whhLKEYJ-\0\0\0\17o\b\94\ 1\ 1\0#q KExEESAz-\0\0\0\17o\b\9c\ 1\ 1\0#q LCSURhIA-\0\0\0\17o\b¤\ 1\ 1\0#q QIJEpiQk-\0\0\0\17o\b¬\ 1\ 1\0#q lAmZ/txd-\0\0\0\17o\b´\ 1\ 1\0#q d3XdcOzl-\0\0\0\17o\b¼\ 1\ 1\0#q 3Oc4ca53-\0\0\0\17o\bÄ\ 1\ 1\0#q bsdc53c7-\0\0\0\17o\bÌ\ 1\ 1\0#q k7runOug-\0\0\0\17o\bÔ\ 1\ 1\0#q oiVLVlto-\0\0\0\17o\bÜ\ 1\ 1\0#q 221GpSpU-\0\0\0\17o\bä\ 1\ 1\0#q titttttE-\0\0\0\17o\bì\ 1\ 1\0#q qtCirbVt-\0\0\0\17o\bô\ 1\ 1\0#q trWLW0Vs-\0\0\0\17o\bü\ 1\ 1\0#q raQEkhMx-\0\0\0\17o\b\ 4\ 2\ 1\0#q SAMkmAyS-\0\0\0\17o\b\f\ 2\ 1\0#q CjDSRDJC-\0\0\0\17o\b\14\ 2\ 1\0#q CJBly6RM-\0\0\0\17o\b\1c\ 2\ 1\0#q JSkkEJIM-\0\0\0\17o\b$\ 2\ 1\0#q hCAo0wEk-\0\0\0\17o\b,\ 2\ 1\0#q gYIkQzrd-\0\0\0\17o\b4\ 2\ 1\0#q 2YCBRMZS-\0\0\0\17o\b<\ 2\ 1\0#q mJTCjKhm-\0\0\0\17o\bD\ 2\ 1\0#q JIEiTDJM-\0\0\0\17o\bL\ 2\ 1\0#q 0SUsIxIE-\0\0\0\17o\bT\ 2\ 1\0#q kkRTRMyE-\0\0\0\17o\b\\ 2\ 1\0#q hJCSBIBs-\0\0\0\17o\bd\ 2\ 1\0#q KBMmAohg-\0\0\0\17o\bl\ 2\ 1\0#q wmJIkkCQ-\0\0\0\17o\bt\ 2\ 1\0#q aYkkCGSJ-\0\0\0\17o\b|\ 2\ 1\0#q kxCMCTru-\0\0\0\17o\b\84\ 2\ 1\0#q hzdNjaVq-\0\0\0\17o\b\8c\ 2\ 1\0#q NGI1qqn/-\0\0\0\17o\b\94\ 2\ 1\0#q H/D+f92/-\0\0\0\17o\b\9c\ 2\ 1\0#q 9N7/nf+x-\0\0\0\17o\b¤\ 2\ 1\0#q /T/BM7+j-\0\0\0\17o\b¬\ 2\ 1\0#q /3Df5s4H-\0\0\0\17o\b´\ 2\ 1\0#q 91tC/+oo-\0\0\0\17o\b¼\ 2\ 1\0#q sD+/gYNH-\0\0\0\17o\bÄ\ 2\ 1\0#q pnVNy5J2-\0\0\0\17o\bÌ\ 2\ 1\0#q alEaZU/6-\0\0\0\17o\bÔ\ 2\ 1\0#q 6SB3/PXf-\0\0\0\17o\bÜ\ 2\ 1\0#q /7//et/n-\0\0\0\17o\bä\ 2\ 1\0#q u+/f9KKr-\0\0\0\17o\bì\ 2\ 1\0#q 9VSKdhIp-\0\0\0\17o\bô\ 2\ 1\0#q tIjKzARQ-\0\0\0\17o\bü\ 2\ 1\0#q ZZiqimGU-\0\0\0\17o\b\ 4\ 3\ 1\0#q FLMlVWMj-\0\0\0\17o\b\f\ 3\ 1\0#q MSUU2oif-\0\0\0\17o\b\14\ 3\ 1\0#q 8IKKYIhl-\0\0\0\17o\b\1c\ 3\ 1\0#q VIpkBgFF-\0\0\0\17o\b$\ 3\ 1\0#q MIYCimSU-\0\0\0\17o\b,\ 3\ 1\0#q /8VUimSi-\0\0\0\17o\b4\ 3\ 1\0#q VoFFMUof-\0\0\0\17o\b<\ 3\ 1\0#q /mCin/Kq-\0\0\0\17o\bD\ 3\ 1\0#q kU/1/2/7-\0\0\0\17o\bL\ 3\ 1\0#q ipn+uSn/-\0\0\0\17o\bT\ 3\ 1\0#q P/jZ/qZL-\0\0\0\17o\b\\ 3\ 1\0#q jiqHKWml-\0\0\0\17o\bd\ 3\ 1\0#q twNK6udN-\0\0\0\17o\bl\ 3\ 1\0#q 0mKLpTbn-\0\0\0\17o\bt\ 3\ 1\0#q FbHSxf6h-\0\0\0\17o\b|\ 3\ 1\0#q /6WePKSh-\0\0\0\17o\b\84\ 3\ 1\0#q wUl1VbdK-\0\0\0\17o\b\8c\ 3\ 1\0#q GyqU5ooa-\0\0\0\17o\b\94\ 3\ 1\0#q /vt32BeA-\0\0\0\17o\b\9c\ 3\ 1\0#q 5cSpdlPa-\0\0\0\17o\b¤\ 3\ 1\0#q WguWZVUx-\0\0\0\17o\b¬\ 3\ 1\0#q Zht422i4-\0\0\0\17o\b´\ 3\ 1\0#q WJpNsWzj-\0\0\0\17o\b¼\ 3\ 1\0#q jnNrttYx-\0\0\0\17o\bÄ\ 3\ 1\0#q BLESWBXA-\0\0\0\17o\bÌ\ 3\ 1\0#q to5UMFuT-\0\0\0\17o\bÔ\ 3\ 1\0#q hmsrEMqj-\0\0\0\17o\bÜ\ 3\ 1\0#q bDpYOmG3-\0\0\0\17o\bä\ 3\ 1\0#q M9440VM3-\0\0\0\17o\bì\ 3\ 1\0#q kpxzZ0ZL-\0\0\0\17o\bô\ 3\ 1\0#q jiqHSXOD-\0\0\0\17o\bü\ 3\ 1\0#q DEyJisUW-\0\0\0\17o\b\ 4\ 4\ 1\0#q WKaaZVEW-\0\0\0\17o\b\f\ 4\ 1\0#q drHTWsbg-\0\0\0\17o\b\14\ 4\ 1\0#q 1ZFVRmRG-\0\0\0\17o\b\1c\ 4\ 1\0#q CMFFhITK-\0\0\0\17o\b$\ 4\ 1\0#q NXhUhsLA-\0\0\0\17o\b,\ 4\ 1\0#q nAXFVTa2-\0\0\0\17o\b4\ 4\ 1\0#q xYZviazv-\0\0\0\17o\b<\ 4\ 1\0#q p7z20VOk-\0\0\0\17o\bD\ 4\ 1\0#q udsVqq3j-\0\0\0\17o\bL\ 4\ 1\0#q OeGtvWOV-\0\0\0\17o\bT\ 4\ 1\0#q hDnvvuoO-\0\0\0\17o\b\\ 4\ 1\0#q ynI6VhVK-\0\0\0\17o\bd\ 4\ 1\0#q baPHLcld-\0\0\0\17o\bl\ 4\ 1\0#q dm+VRwsd-\0\0\0\17o\bt\ 4\ 1\0#q 9tpyhwG6-\0\0\0\17o\b|\ 4\ 1\0#q KG0tNMuN-\0\0\0\17o\b\84\ 4\ 1\0#q M0w1YZC1-\0\0\0\17o\b\8c\ 4\ 1\0#q SUMAuLhn-\0\0\0\17o\b\94\ 4\ 1\0#q LQOupddA-\0\0\0\17o\b\9c\ 4\ 1\0#q 65UOXPDK-\0\0\0\17o\b¤\ 4\ 1\0#q oZRXMpLJ-\0\0\0\17o\b¬\ 4\ 1\0#q UsrlyDY2-\0\0\0\17o\b´\ 4\ 1\0#q utozHDrg-\0\0\0\17o\b¼\ 4\ 1\0#q 6uimKZS0-\0\0\0\17o\bÄ\ 4\ 1\0#q WgtDKos4-\0\0\0\17o\bÌ\ 4\ 1\0#q KnPMppbM-\0\0\0\17o\bÔ\ 4\ 1\0#q LnNIaySc-\0\0\0\17o\bÜ\ 4\ 1\0#q 5TMHGbax-\0\0\0\17o\bä\ 4\ 1\0#q Tuqd6qpH-\0\0\0\17o\bì\ 4\ 1\0#q acO527Xh-\0\0\0\17o\bô\ 4\ 1\0#q 33/xUTId-\0\0\0\17o\bü\ 4\ 1\0#q WeKTmjbs-\0\0\0\17o\b\ 4\ 5\ 1\0#q g0PYKnmC-\0\0\0\17o\b\f\ 5\ 1\0#q 1lVSd88u-\0\0\0\17o\b\14\ 5\ 1\0#q qKGOW10E-\0\0\0\17o\b\1c\ 5\ 1\0#q 52BMkmKt-\0\0\0\17o\b$\ 5\ 1\0#q kyldBFsS-\0\0\0\17o\b,\ 5\ 1\0#q cY1nFJZk-\0\0\0\17o\b4\ 5\ 1\0#q tZQvRzSd-\0\0\0\17o\b<\ 5\ 1\0#q 5S0O9PG4-\0\0\0\17o\bD\ 5\ 1\0#q 3nhMOVRs-\0\0\0\17o\bL\ 5\ 1\0#q OXHDbwU5-\0\0\0\17o\bT\ 5\ 1\0#q iQ1kkWZE-\0\0\0\17o\b\\ 5\ 1\0#q eZGOqNqS-\0\0\0\17o\bd\ 5\ 1\0#q 6xHOJZZI-\0\0\0\17o\bl\ 5\ 1\0#q hTExGkq6-\0\0\0\17o\bt\ 5\ 1\0#q rcObBbGr-\0\0\0\17o\b|\ 5\ 1\0#q BOaqc8Om-\0\0\0\17o\b\84\ 5\ 1\0#q mJTzI751-\0\0\0\17o\b\8c\ 5\ 1\0#q Vi7Tx0Lb-\0\0\0\17o\b\94\ 5\ 1\0#q Y0JUgoOE-\0\0\0\17o\b\9c\ 5\ 1\0#q mzhjjnpt-\0\0\0\17o\b¤\ 5\ 1\0#q xIKus546-\0\0\0\17o\b¬\ 5\ 1\0#q uBtXLO4J-\0\0\0\17o\b´\ 5\ 1\0#q kyYP+eAc-\0\0\0\17o\b¼\ 5\ 1\0#q AAHOD6fr-\0\0\0\17o\bÄ\ 5\ 1\0#q 9j9V+RH2-\0\0\0\17o\bÌ\ 5\ 1\0#q S/L/QXTV-\0\0\0\17o\bÔ\ 5\ 1\0#q 3dz8SL/T-\0\0\0\17o\bÜ\ 5\ 1\0#q 8qH5noZQ-\0\0\0\17o\bä\ 5\ 1\0#q LPqGwlvR-\0\0\0\17o\bì\ 5\ 1\0#q 6dhx2TVt-\0\0\0\17o\bô\ 5\ 1\0#q fs9W4cn6-\0\0\0\17o\bü\ 5\ 1\0#q VF1Rfst5-\0\0\0\17o\b\ 4\ 6\ 1\0#q hq6EbM2q-\0\0\0\17o\b\f\ 6\ 1\0#q dokF7YlT-\0\0\0\17o\b\14\ 6\ 1\0#q +AevC278-\0\0\0\17o\b\1c\ 6\ 1\0#q qkbLKawm-\0\0\0\17o\b$\ 6\ 1\0#q h4pJzRaP-\0\0\0\17o\b,\ 6\ 1\0#q v9leNe26-\0\0\0\17o\b4\ 6\ 1\0#q uHhSuwBu-\0\0\0\17o\b<\ 6\ 1\0#q LK+a3xCu-\0\0\0\17o\bD\ 6\ 1\0#q 7uCt8ICc-\0\0\0\17o\bL\ 6\ 1\0#q hqAubTDu-\0\0\0\17o\bT\ 6\ 1\0#q ymwW6zBs-\0\0\0\17o\b\\ 6\ 1\0#q aun77TDC-\0\0\0\17o\bd\ 6\ 1\0#q ZizuwBP7-\0\0\0\17o\bl\ 6\ 1\0#q lwSttmpS-\0\0\0\17o\bt\ 6\ 1\0#q ykZaG/3I-\0\0\0\17o\b|\ 6\ 1\0#q Vw50MThj-\0\0\0\17o\b\84\ 6\ 1\0#q dLpDuH0k-\0\0\0\17o\b\8c\ 6\ 1\0#q DTDN0e2m-\0\0\0\17o\b\94\ 6\ 1\0#q vqqKkAmV-\0\0\0\17o\b\9c\ 6\ 1\0#q y9EDwysG-\0\0\0\17o\b¤\ 6\ 1\0#q ysaREKB2-\0\0\0\17o\b¬\ 6\ 1\0#q NormNHUw-\0\0\0\17o\b´\ 6\ 1\0#q j0vgO6Ii-\0\0\0\17o\b¼\ 6\ 1\0#q GsJpEuyQ-\0\0\0\17o\bÄ\ 6\ 1\0#q ETJyWsUL-\0\0\0\17o\bÌ\ 6\ 1\0#q zZWvlFri-\0\0\0\17o\bÔ\ 6\ 1\0#q eCawpUQg-\0\0\0\17o\bÜ\ 6\ 1\0#q zlKTRwiZ-\0\0\0\17o\bä\ 6\ 1\0#q JXKyzbD3-\0\0\0\17o\bì\ 6\ 1\0#q ulpxiGZ3-\0\0\0\17o\bô\ 6\ 1\0#q uqqknBCt-\0\0\0\17o\bü\ 6\ 1\0#q eytK6wxr-\0\0\0\17o\b\ 4\a\ 1\0#q aGufXo4j-\0\0\0\17o\b\f\a\ 1\0#q 6Ql84X68-\0\0\0\17o\b\14\a\ 1\0#q MHo9PTm7-\0\0\0\17o\b\1c\a\ 1\0#q GxF43W97-\0\0\0\17o\b$\a\ 1\0#q OVuPemu2-\0\0\0\17o\b,\a\ 1\0#q nSInel9r-\0\0\0\17o\b4\a\ 1\0#q nXmRB4Zm-\0\0\0\17o\b<\a\ 1\0#q N2FaIWPH-\0\0\0\17o\bD\a\ 1\0#q WBY1gskI-\0\0\0\17o\bL\a\ 1\0#q XduCgbTF-\0\0\0\17o\bT\a\ 1\0#q mxaE5YSi-\0\0\0\17o\b\\a\ 1\0#q hkBIUBZk-\0\0\0\17o\bd\a\ 1\0#q 43EhJxOA-\0\0\0\17o\bl\a\ 1\0#q qFTkTEgZ-\0\0\0\17o\bt\a\ 1\0#q g/58BOXS-\0\0\0\17o\b|\a\ 1\0#q Vo8zbqfJ-\0\0\0\17o\b\84\a\ 1\0#q fApfLFzo-\0\0\0\17o\b\8c\a\ 1\0#q w/f/d25j-\0\0\0\17o\b\94\a\ 1\0#q XyxD+I/O-\0\0\0\17o\b\9c\a\ 1\0#q eU0dcx/x-\0\0\0\17o\b¤\a\ 1\0#q /aRkaa7T-\0\0\0\17o\b¬\a\ 1\0#q XU9oVlOf-\0\0\0\17o\b´\a\ 1\0#q GYMm7+LW-\0\0\0\17o\b¼\a\ 1\0#q 4ifNnrp1-\0\0\0\17o\bÄ\a\ 1\0#q XifHFxMu-\0\0\0\17o\bÌ\a\ 1\0#q 5IbmiCpr-\0\0\0\17o\bÔ\a\ 1\0#q TZzImVSR-\0\0\0\17o\bÜ\a\ 1\0#q 0Qa8znKb-\0\0\0\17o\bä\a\ 1\0#q kRuKQuyr-\0\0\0\17o\bì\a\ 1\0#q 1cokqPHO-\0\0\0\17o\bô\a\ 1\0#q IDMit4yc-\0\0\0\17o\bü\a\ 1\0#q 4kkbdort-\0\0\0\17o\b\ 4\b\ 1\0#q TU60qgIp-\0\0\0\17o\b\f\b\ 1\0#q BnSrVsKM-\0\0\0\17o\b\14\b\ 1\0#q euZ4NPFF-\0\0\0\17o\b\1c\b\ 1\0#q Xo3ratpw-\0\0\0\17o\b$\b\ 1\0#q LFLGtrbR-\0\0\0\17o\b,\b\ 1\0#q Ubc6dxjl-\0\0\0\17o\b4\b\ 1\0#q HMt30iAL-\0\0\0\17o\b<\b\ 1\0#q UHtqu5g6-\0\0\0\17o\bD\b\ 1\0#q R2+W8fwX-\0\0\0\17o\bL\b\ 1\0#q w/9tjnDI-\0\0\0\17o\bT\b\ 1\0#q SkwpFIFI-\0\0\0\17o\b\\b\ 1\0#q TGooZI4I-\0\0\0\17o\bd\b\ 1\0#q pEG2wm2m-\0\0\0\17o\bl\b\ 1\0#q 2Gk22+Nt-\0\0\0\17o\bt\b\ 1\0#q tNFNpstJ-\0\0\0\17o\b|\b\ 1\0#q JJJL4r7F-\0\0\0\17o\b\84\b\ 1\0#q o9BaHfpy-\0\0\0\17o\b\8c\b\ 1\0#q dVdT9v6/-\0\0\0\17o\b\94\b\ 1\0#q JXtG67C1-\0\0\0\17o\b\9c\b\ 1\0#q 7waENSlY-\0\0\0\17o\b¤\b\ 1\0#q vNK2F2Wo-\0\0\0\17o\b¬\b\ 1\0#q mFGFDQgR-\0\0\0\17o\b´\b\ 1\0#q HIUKMGMI-\0\0\0\17o\b¼\b\ 1\0#q WE4Qp1LP-\0\0\0\17o\bÄ\b\ 1\0#q YVOJ3ajX-\0\0\0\17o\bÌ\b\ 1\0#q ij0R2SiU-\0\0\0\17o\bÔ\b\ 1\0#q ikUutMpX-\0\0\0\17o\bÜ\b\ 1\0#q scLDown5-\0\0\0\17o\bä\b\ 1\0#q 3VRa5NdN-\0\0\0\17o\bì\b\ 1\0#q Bc3ojNNa-\0\0\0\17o\bô\b\ 1\0#q ETWjiHFD-\0\0\0\17o\bü\b\ 1\0#q 0SSCCSSS-\0\0\0\17o\b\ 4  \ 1\0#q CDKT2PSI-\0M        \0\0\17o\b\f  \ 1\0#q aiwTiy0m-\0M        \0\0\17o\b\14  \ 1\0#q bTO6iKbZ-\0M        \0\0\17o\b\1c  \ 1\0#q NVIZ/GZu-\0M        \0\0\17o\b$  \ 1\0#q WsmDvZ2j-\0M        \0\0\17o\b,  \ 1\0#q yAcoTPVE-\0M        \0\0\17o\b4  \ 1\0#q i8HyYNj0-\0M        \0\0\17o\b<  \ 1\0#q fsH+BpVN-\0M        \0\0\17o\bD  \ 1\0#q 61a8JAiY-\0M        \0\0\17o\bL  \ 1\0#q SJvPsFnw-\0M        \0\0\17o\bT  \ 1\0#q gTI1HXbh-\0M        \0\0\17o\b\  \ 1\0#q bNF1FnpC-\0M        \0\0\17o\bd  \ 1\0#q Teho7rSi-\0M        \0\0\17o\bl  \ 1\0#q 2EUjT83q-\0M        \0\0\17o\bt  \ 1\0#q /Cmc4nET-\0M        \0\0\17o\b|  \ 1\0#q mio0AIuw-\0M        \0\0\17o\b\84  \ 1\0#q 3CbLSbKx-\0M        \0\0\17o\b\8c  \ 1\0#q plU6HxSn-\0M        \0\0\17o\b\94  \ 1\0#q Z2X76jMx-\0M        \0\0\17o\b\9c  \ 1\0#q wG6zEfg/-\0M        \0\0\17o\b¤  \ 1\0#q GT47sv4G-\0M        \0\0\17o\b¬  \ 1\0#q vUeZiImj-\0M        \0\0\17o\b´  \ 1\0#q SpzqWhp1-\0M        \0\0\17o\b¼  \ 1\0#q koVUQmYg-\0M        \0\0\17o\bÄ  \ 1\0#q ZfQYMrIw-\0M        \0\0\17o\bÌ  \ 1\0#q zgqXzPCl-\0M        \0\0\17o\bÔ  \ 1\0#q mVSyPgXc-\0M        \0\0\17o\bÜ  \ 1\0#q khxZXzdV-\0M        \0\0\17o\bä  \ 1\0#q cKyu4Qi0-\0M        \0\0\17o\bì  \ 1\0#q aa7hpB4I-\0M        \0\0\17o\bô  \ 1\0#q Js6THDIT-\0M        \0\0\17o\bü  \ 1\0#q GdymCiiM-\0M        \0\0\17o\b\ 4
+\ 1\0#q CFZjbbD1-\0M       \0\0\17o\b\f
+\ 1\0#q Zs2RDWNr-\0M       \0\0\17o\b\14
+\ 1\0#q UlQ/P8x6-\0M       \0\0\17o\b\1c
+\ 1\0#q SH7v7Pz/-\0M       \0\0\17o\b$
+\ 1\0#q 8fq/1tn9-\0M       \0\0\17o\b,
+\ 1\0#q U3lWuTf1-\0M       \0\0\17o\b4
+\ 1\0#q JnUUMBZ0-\0M       \0\0\17o\b<
+\ 1\0#q zXwlfGtz-\0M       \0\0\17o\bD
+\ 1\0#q jVdDGdNw-\0M       \0\0\17o\bL
+\ 1\0#q /Wb/TcYv-\0M       \0\0\17o\bT
+\ 1\0#q ZhOV0yvd-\0M       \0\0\17o\b\
+\ 1\0#q dt9942XK-\0M       \0\0\17o\bd
+\ 1\0#q 1inv3hKP-\0M       \0\0\17o\bl
+\ 1\0#q Y1yG22ft-\0M       \0\0\17o\bt
+\ 1\0#q VJYGIHec-\0M       \0\0\17o\b|
+\ 1\0#q Ma1WHrVR-\0M       \0\0\17o\b\84
+\ 1\0#q dWNFu82a-\0M       \0\0\17o\b\8c
+\ 1\0#q cxAgPKsq-\0M       \0\0\17o\b\94
+\ 1\0#q ap3SvCX1-\0M       \0\0\17o\b\9c
+\ 1\0#q k9lfXPem-\0M       \0\0\17o\b¤
+\ 1\0#q 9N6bX0ua-\0M       \0\0\17o\b¬
+\ 1\0#q UbPfM+K4-\0M       \0\0\17o\b´
+\ 1\0#q StqpjulM-\0M       \0\0\17o\b¼
+\ 1\0#q kJsnYV74-\0M       \0\0\17o\bÄ
+\ 1\0#q vTdMY1Ed-\0M       \0\0\17o\bÌ
+\ 1\0#q oFSIZ4/h-\0M       \0\0\17o\bÔ
+\ 1\0#q 6sOvXBRO-\0M       \0\0\17o\bÜ
+\ 1\0#q O5iA46Yd-\0M       \0\0\17o\bä
+\ 1\0#q g4cPQkTn-\0M       \0\0\17o\bì
+\ 1\0#q MmYnMTmT-\0M       \0\0\17o\bô
+\ 1\0#q OZL0JQOV-\0M       \0\0\17o\bü
+\ 1\0#q aKsWLsGx-\0M       \0\0\17o\b\ 4\v\ 1\0#q YqhdCCQM-\0\0\0\17o\b\f\v\ 1\0#q UGxBBBEJ-\0\0\0\17o\b\14\v\ 1\0#q 7+U3578j-\0\0\0\17o\b\1c\v\ 1\0#q 0euaooSZ-\0\0\0\17o\b$\v\ 1\0#q 6QPtSOwW-\0\0\0\17o\b,\v\ 1\0#q KBXnFoZl-\0\0\0\17o\b4\v\ 1\0#q ecqTfq1/-\0\0\0\17o\b<\v\ 1\0#q RtQ4OIti-\0\0\0\17o\bD\v\ 1\0#q MpbHqNXS-\0\0\0\17o\bL\v\ 1\0#q LBpu9xQ9-\0\0\0\17o\bT\v\ 1\0#q UiKIOt8l-\0\0\0\17o\b\\v\ 1\0#q moPPrrV8-\0\0\0\17o\bd\v\ 1\0#q 1xoI5KWx-\0\0\0\17o\bl\v\ 1\0#q vXhM3vY8-\0\0\0\17o\bt\v\ 1\0#q pR7qqK4Y-\0\0\0\17o\b|\v\ 1\0#q LstYwxOV-\0\0\0\17o\b\84\v\ 1\0#q Ystg0KRO-\0\0\0\17o\b\8c\v\ 1\0#q i1fLX6rg-\0\0\0\17o\b\94\v\ 1\0#q Trxlmqlb-\0\0\0\17o\b\9c\v\ 1\0#q rkE9LEGe-\0\0\0\17o\b¤\v\ 1\0#q Ied9k26r-\0\0\0\17o\b¬\v\ 1\0#q GnWed6Nh-\0\0\0\17o\b´\v\ 1\0#q 06p11O87-\0\0\0\17o\b¼\v\ 1\0#q aBEwmLoD-\0\0\0\17o\bÄ\v\ 1\0#q 3HcEEAkE-\0\0\0\17o\bÌ\v\ 1\0#q GRBBBBBE-\0\0\0\17o\bÔ\v\ 1\0#q kFZVQUUk-\0\0\0\17o\bÜ\v\ 1\0#q THdrccRv-\0\0\0\17o\bä\v\ 1\0#q m2/fthj1-\0\0\0\17o\bì\v\ 1\0#q pS2KWAbK-\0\0\0\17o\bô\v\ 1\0#q GFox0dOm-\0\0\0\17o\bü\v\ 1\0#q XvOlr51n-\0\0\0\17o\b\ 4\f\ 1\0#q WKGJum43-\0\0\0\17o\b\f\f\ 1\0#q BBBIJBq/-\0\0\0\17o\b\14\f\ 1\0#q KsYn0ipp-\0\0\0\17o\b\1c\f\ 1\0#q p9W01W5Z-\0\0\0\17o\b$\f\ 1\0#q RjbTSfDN-\0\0\0\17o\b,\f\ 1\0#q kM7isVOp-\0\0\0\17o\b4\f\ 1\0#q 5Wk82WrJ-\0\0\0\17o\b<\f\ 1\0#q NLTsbRZZ-\0\0\0\17o\bD\f\ 1\0#q zsMYDiQS-\0\0\0\17o\bL\f\ 1\0#q QQGRB573-\0\0\0\17o\bT\f\ 1\0#q Pe988yZm-\0\0\0\17o\b\\f\ 1\0#q ZmaB0HgH-\0\0\0\17o\bd\f\ 1\0#q cz7ZHJKF-\0\0\0\17o\bl\f\ 1\0#q gkEgyIki-\0\0\0\17o\bt\f\ 1\0#q SS9eHnk2-\0\0\0\17o\b|\f\ 1\0#q SvPDryK1-\0\0\0\17o\b\84\f\ 1\0#q aqqqmtW4-\0\0\0\17o\b\8c\f\ 1\0#q PSycD/w8-\0\0\0\17o\b\94\f\ 1\0#q sflE+v8v-\0\0\0\17o\b\9c\f\ 1\0#q 83/dyIpl-\0\0\0\17o\b¤\f\ 1\0#q qpb1llsz-\0\0\0\17o\b¬\f\ 1\0#q Ka0Kl8tW-\0\0\0\17o\b´\f\ 1\0#q XbMGzMy8-\0\0\0\17o\b¼\f\ 1\0#q XWnF0X93-\0\0\0\17o\bÄ\f\ 1\0#q 7o/wO4fq-\0\0\0\17o\bÌ\f\ 1\0#q 0+r7tk9q-\0\0\0\17o\bÔ\f\ 1\0#q e2FJ6z3C-\0\0\0\17o\bÜ\f\ 1\0#q kozLYqzE-\0\0\0\17o\bä\f\ 1\0#q KiqUFDKG-\0\0\0\17o\bì\f\ 1\0#q P7kqsHaW-\0\0\0\17o\bô\f\ 1\0#q q1aDYcCQ-\0\0\0\17o\bü\f\ 1\0#q okp/eU+v-\0\0\0\17o\b\ 4\r\ 1\0#q t7uZp4fD-\0\0\0\17o\b\f\r\ 1\0#q vw29FcKU-\0\0\0\17o\b\14\r\ 1\0#q SuratW2r-\0\0\0\17o\b\1c\r\ 1\0#q X7I00/Uc-\0\0\0\17o\b$\r\ 1\0#q nqCIfPyP-\0\0\0\17o\b,\r\ 1\0#q 4ftqCVUy-\0\0\0\17o\b4\r\ 1\0#q NaqZi2P7-\0\0\0\17o\b<\r\ 1\0#q Lo2/nvtw-\0\0\0\17o\bD\r\ 1\0#q 1Ntxu2Ov-\0\0\0\17o\bL\r\ 1\0#q M1cLOMOj-\0\0\0\17o\bT\r\ 1\0#q Tdl/Jw/j-\0\0\0\17o\b\\r\ 1\0#q qwjhrHX7-\0\0\0\17o\bd\r\ 1\0#q ljvTS0Ng-\0\0\0\17o\bl\r\ 1\0#q 9YWklWli-\0\0\0\17o\bt\r\ 1\0#q FUpZUiCj-\0\0\0\17o\b|\r\ 1\0#q OKclNiKm-\0\0\0\17o\b\84\r\ 1\0#q jWdFMjuo-\0\0\0\17o\b\8c\r\ 1\0#q dSAo96Jm-\0\0\0\17o\b\94\r\ 1\0#q slmGgyCe-\0\0\0\17o\b\9c\r\ 1\0#q UmmjEtIT-\0\0\0\17o\b¤\r\ 1\0#q qi4DqWXT-\0\0\0\17o\b¬\r\ 1\0#q g4318osV-\0\0\0\17o\b´\r\ 1\0#q uX2Vfa63-\0\0\0\17o\b¼\r\ 1\0#q aYJNvvZp-\0\0\0\17o\bÄ\r\ 1\0#q HIUVXXbr-\0\0\0\17o\bÌ\r\ 1\0#q pPMYqxKr-\0\0\0\17o\bÔ\r\ 1\0#q XRvoXCGu-\0\0\0\17o\bÜ\r\ 1\0#q FnXhSb4S-\0\0\0\17o\bä\r\ 1\0#q VZtAm6oj-\0\0\0\17o\bì\r\ 1\0#q tvuIBkdO-\0\0\0\17o\bô\r\ 1\0#q cqdgEZ6l-\0\0\0\17o\bü\r\ 1\0#q cZZFN1kP-\0\0\0\17o\b\ 4\ e\ 1\0#q KhJJhRBr-\0\0\0\17o\b\f\ e\ 1\0#q WEQyIWkl-\0\0\0\17o\b\14\ e\ 1\0#q 1hnFU3uy-\0\0\0\17o\b\1c\ e\ 1\0#q s63k4eJJ-\0\0\0\17o\b$\ e\ 1\0#q lSIMlKqo-\0\0\0\17o\b,\ e\ 1\0#q ErDI6G4E-\0\0\0\17o\b4\ e\ 1\0#q EUnpZfaO-\0\0\0\17o\b<\ e\ 1\0#q rlixLp9D-\0\0\0\17o\bD\ e\ 1\0#q vOUpB4Ta-\0\0\0\17o\bL\ e\ 1\0#q n2/ZW/q+-\0\0\0\17o\bT\ e\ 1\0#q fvPhH07t-\0\0\0\17o\b\\ e\ 1\0#q 9H4MT16X-\0\0\0\17o\bd\ e\ 1\0#q ESiARMKU-\0\0\0\17o\bl\ e\ 1\0#q E/rVVU3K-\0\0\0\17o\bt\ e\ 1\0#q NwDooJ7d-\0\0\0\17o\b|\ e\ 1\0#q lAzgnD7E-\0\0\0\17o\b\84\ e\ 1\0#q hScMIYxZ-\0\0\0\17o\b\8c\ e\ 1\0#q /mOidHDe-\0\0\0\17o\b\94\ e\ 1\0#q stpVUIAE-\0\0\0\17o\b\9c\ e\ 1\0#q gC0t7/m9-\0\0\0\17o\b¤\ e\ 1\0#q fLzzvPVb-\0\0\0\17o\b¬\ e\ 1\0#q 1fK+s+Y+-\0\0\0\17o\b´\ e\ 1\0#q f0Pon6xz-\0\0\0\17o\b¼\ e\ 1\0#q J9vzOD8R-\0\0\0\17o\bÄ\ e\ 1\0#q 9GeLf1T5-\0\0\0\17o\bÌ\ e\ 1\0#q 3aq222kV-\0\0\0\17o\bÔ\ e\ 1\0#q RIqwftW1-\0\0\0\17o\bÜ\ e\ 1\0#q VyfHRO+8-\0\0\0\17o\bä\ e\ 1\0#q 9MPe5zak-\0\0\0\17o\bì\ e\ 1\0#q tbKQr49+-\0\0\0\17o\bô\ e\ 1\0#q /jZmajwx-\0\0\0\17o\bü\ e\ 1\0#q Nu3Zk7fV-\0\0\0\17o\b\ 4\ f\ 1\0#q WkSWG+K2-\0\0\0\17o\b\f\ f\ 1\0#q a1xZlKFO-\0\0\0\17o\b\14\ f\ 1\0#q w5BlJpDT-\0\0\0\17o\b\1c\ f\ 1\0#q gyzEORiG-\0\0\0\17o\b$\ f\ 1\0#q Vhmzt4tc-\0\0\0\17o\b,\ f\ 1\0#q tufPV1Ds-\0\0\0\17o\b4\ f\ 1\0#q nIxdsV3S-\0\0\0\17o\b<\ f\ 1\0#q bUdlXBrT-\0\0\0\17o\bD\ f\ 1\0#q gwnt41HJ-\0\0\0\17o\bL\ f\ 1\0#q 0263X9fa-\0\0\0\17o\bT\ f\ 1\0#q Pss1y+iN-\0\0\0\17o\b\\ f\ 1\0#q SMUfp/X6-\0\0\0\17o\bd\ f\ 1\0#q ff7/6/TW-\0\0\0\17o\bl\ f\ 1\0#q 98cccp1b-\0\0\0\17o\bt\ f\ 1\0#q Yjhzq/3u-\0\0\0\17o\b|\ f\ 1\0#q XPJj5bT8-\0\0\0\17o\b\84\ f\ 1\0#q /7W+nhNo-\0\0\0\17o\b\8c\ f\ 1\0#q /69v1+jG-\0\0\0\17o\b\94\ f\ 1\0#q yfY/aaf9-\0\0\0\17o\b\9c\ f\ 1\0#q UV6T6SQP-\0\0\0\17o\b¤\ f\ 1\0#q l1Bq30rH-\0\0\0\17o\b¬\ f\ 1\0#q 6H4yV69J-\0\0\0\17o\b´\ f\ 1\0#q /bdqqKoS-\0\0\0\17o\b¼\ f\ 1\0#q Hon4AEpm-\0\0\0\17o\bÄ\ f\ 1\0#q UtPAez+t-\0\0\0\17o\bÌ\ f\ 1\0#q 92Y5lOj2-\0\0\0\17o\bÔ\ f\ 1\0#q CJ7CYdkZ-\0\0\0\17o\bÜ\ f\ 1\0#q xf0D3R/X-\0\0\0\17o\bä\ f\ 1\0#q fsuFMS/C-\0\0\0\17o\bì\ f\ 1\0#q 43Nv5T9s-\0\0\0\17o\bô\ f\ 1\0#q fMZV4L/G-\0\0\0\17o\bü\ f\ 1\0#q 9pvd03/3-\0\0\0\17o\b\ 4\10\ 1\0#q mq9yzlm2-\0\0\0\17o\b\f\10\ 1\0#q xVJVkOV0-\0\0\0\17o\b\14\10\ 1\0#q LvETLzsJ-\0\0\0\17o\b\1c\10\ 1\0#q Rx4cqu6d-\0\0\0\17o\b$\10\ 1\0#q XdXXuPQc-\0\0\0\17o\b,\10\ 1\0#q CHb7ePRk-\0\0\0\17o\b4\10\ 1\0#q 7He904sD-\0\0\0\17o\b<\10\ 1\0#q cwdra7Nt-\0\0\0\17o\bD\10\ 1\0#q 9q7VFY9l-\0\0\0\17o\bL\10\ 1\0#q 7jUQJW14-\0\0\0\17o\bT\10\ 1\0#q xnuJPn7/-\0\0\0\17o\b\\10\ 1\0#q TMw/3fPn-\0\0\0\17o\bd\10\ 1\0#q 4+Pj6o/C-\0\0\0\17o\bl\10\ 1\0#q x3cXKtql-\0\0\0\17o\bt\10\ 1\0#q rD9PRbmY-\0\0\0\17o\b|\10\ 1\0#q Zme3mP9E-\0\0\0\17o\b\84\10\ 1\0#q /y7G36I/-\0\0\0\17o\b\8c\10\ 1\0#q LH+Z9Pht-\0\0\0\17o\b\94\10\ 1\0#q 8Afun7v7-\0\0\0\17o\b\9c\10\ 1\0#q tJGbXiae-\0\0\0\17o\b¤\10\ 1\0#q U0eH+Gn5-\0\0\0\17o\b¬\10\ 1\0#q fst6/K+N-\0\0\0\17o\b´\10\ 1\0#q qmUrWijb-\0\0\0\17o\b¼\10\ 1\0#q u3DZSH3h-\0\0\0\17o\bÄ\10\ 1\0#q D6nZ+o9S-\0\0\0\17o\bÌ\10\ 1\0#q qiIxVVjI-\0\0\0\17o\bÔ\10\ 1\0#q Qnk5/AzM-\0\0\0\17o\bÜ\10\ 1\0#q rhcclKH4-\0\0\0\17o\bä\10\ 1\0#q STg5bfDD-\0\0\0\17o\bì\10\ 1\0#q GO33aTpJ-\0\0\0\17o\bô\10\ 1\0#q 0rlQeHwT-\0\0\0\17o\bü\10\ 1\0#q E4GVRAlh-\0\0\0\17o\b\ 4\11\ 1\0#q OxMpdgNv-\0\0\0\17o\b\f\11\ 1\0#q 3ajAlCIV-\0\0\0\17o\b\14\11\ 1\0#q M6Qe6uKg-\0\0\0\17o\b\1c\11\ 1\0#q 9yOwUV9e-\0\0\0\17o\b$\11\ 1\0#q Rvl2dAWQ-\0\0\0\17o\b,\11\ 1\0#q Kng+meXZ-\0\0\0\17o\b4\11\ 1\0#q oWhDqzCy-\0\0\0\17o\b<\11\ 1\0#q CFDwHzql-\0\0\0\17o\bD\11\ 1\0#q W653rPFy-\0\0\0\17o\bL\11\ 1\0#q aXH00S9/-\0\0\0\17o\bT\11\ 1\0#q SI7ZIaPa-\0\0\0\17o\b\\11\ 1\0#q DOu/U2er-\0\0\0\17o\bd\11\ 1\0#q r6Wt0/RG-\0\0\0\17o\bl\11\ 1\0#q xFCJ/FfX-\0\0\0\17o\bt\11\ 1\0#q ywJ+Z0Nu-\0\0\0\17o\b|\11\ 1\0#q UscckrzN-\0\0\0\17o\b\84\11\ 1\0#q 2LlS+4To-\0\0\0\17o\b\8c\11\ 1\0#q ymv403aB-\0\0\0\17o\b\94\11\ 1\0#q j+06Tl0T-\0\0\0\17o\b\9c\11\ 1\0#q 6Xne5mhK-\0\0\0\17o\b¤\11\ 1\0#q ZXrsbvOu-\0\0\0\17o\b¬\11\ 1\0#q KiXR7e6H-\0\0\0\17o\b´\11\ 1\0#q iOm9CknW-\0\0\0\17o\b¼\11\ 1\0#q sik7Lmvs-\0\0\0\17o\bÄ\11\ 1\0#q vrn08oTa-\0\0\0\17o\bÌ\11\ 1\0#q aD3VS6R5-\0\0\0\17o\bÔ\11\ 1\0#q uebW2cod-\0\0\0\17o\bÜ\11\ 1\0#q GHht9KN5-\0\0\0\17o\bä\11\ 1\0#q dWRYyrvS-\0\0\0\17o\bì\11\ 1\0#q KCuOIvhy-\0\0\0\17o\bô\11\ 1\0#q uzboi48y-\0\0\0\17o\bü\11\ 1\0#q 0eX0b1ZE-\0\0\0\17o\b\ 4\12\ 1\0#q k7XR2mzQ-\0\0\0\17o\b\f\12\ 1\0#q lIxgob6y-\0\0\0\17o\b\14\12\ 1\0#q p54pmGTl-\0\0\0\17o\b\1c\12\ 1\0#q mwZ30l56-\0\0\0\17o\b$\12\ 1\0#q vdry8vuv-\0\0\0\17o\b,\12\ 1\0#q XD4hdHdk-\0\0\0\17o\b4\12\ 1\0#q DKTAhgiU-\0\0\0\17o\b<\12\ 1\0#q o5KUmzxN-\0\0\0\17o\bD\12\ 1\0#q milIqOOR-\0\0\0\17o\bL\12\ 1\0#q j4IT356J-\0\0\0\17o\bT\12\ 1\0#q 9N4UeHHb-\0\0\0\17o\b\\12\ 1\0#q OSSOyBPJ-\0\0\0\17o\bd\12\ 1\0#q 7lSGRJEj-\0\0\0\17o\bl\12\ 1\0#q G2PX7P+m-\0\0\0\17o\bt\12\ 1\0#q xdE4E9kZ-\0\0\0\17o\b|\12\ 1\0#q hSbrNHt+-\0\0\0\17o\b\84\12\ 1\0#q LR6oxuXC-\0\0\0\17o\b\8c\12\ 1\0#q xtS3UxPl-\0\0\0\17o\b\94\12\ 1\0#q EzA5Xpdl-\0\0\0\17o\b\9c\12\ 1\0#q qQj4iqsk-\0\0\0\17o\b¤\12\ 1\0#q ZZ3pmdTp-\0\0\0\17o\b¬\12\ 1\0#q I2hJsTma-\0\0\0\17o\b´\12\ 1\0#q 3b8RF/Eo-\0\0\0\17o\b¼\12\ 1\0#q YxU2m5oF-\0\0\0\17o\bÄ\12\ 1\0#q B5TT0rss-\0\0\0\17o\bÌ\12\ 1\0#q 2w8zlr3B-\0\0\0\17o\bÔ\12\ 1\0#q w9jYwgtN-\0\0\0\17o\bÜ\12\ 1\0#q tPCzmmpq-\0\0\0\17o\bä\12\ 1\0#q JwmZzfse-\0\0\0\17o\bì\12\ 1\0#q w9o+/u+N-\0\0\0\17o\bô\12\ 1\0#q CiXjuaEv-\0\0\0\17o\bü\12\ 1\0#q hdu9cDRP-\0\0\0\17o\b\ 4\13\ 1\0#q zPZbreMo-\0\0\0\17o\b\f\13\ 1\0#q pkxCrlWT-\0\0\0\17o\b\14\13\ 1\0#q i29L4pZE-\0\0\0\17o\b\1c\13\ 1\0#q MIlfLbK+-\0\0\0\17o\b$\13\ 1\0#q xSL0Zqy7-\0\0\0\17o\b,\13\ 1\0#q IjaLss0Z-\0\0\0\17o\b4\13\ 1\0#q GYsGcMGr-\0\0\0\17o\b<\13\ 1\0#q gagM+zil-\0\0\0\17o\bD\13\ 1\0#q XFMbIldU-\0\0\0\17o\bL\13\ 1\0#q QarxUPis-\0\0\0\17o\bT\13\ 1\0#q yxhSqeew-\0\0\0\17o\b\\13\ 1\0#q 68PlX96+-\0\0\0\17o\bd\13\ 1\0#q Vn81ovst-\0\0\0\17o\bl\13\ 1\0#q tNN7r2tO-\0\0\0\17o\bt\13\ 1\0#q wJnj1OGZ-\0\0\0\17o\b|\13\ 1\0#q 6GmypFEL-\0\0\0\17o\b\84\13\ 1\0#q /OURjEXj-\0\0\0\17o\b\8c\13\ 1\0#q xamLJXj4-\0\0\0\17o\b\94\13\ 1\0#q pVTillpr-\0\0\0\17o\b\9c\13\ 1\0#q Nqvk5OqC-\0\0\0\17o\b¤\13\ 1\0#q Y8vVrvLm-\0\0\0\17o\b¬\13\ 1\0#q 3qoKGDgx-\0\0\0\17o\b´\13\ 1\0#q zLgEkqry-\0\0\0\17o\b¼\13\ 1\0#q 6tOg257k-\0\0\0\17o\bÄ\13\ 1\0#q mNzyTdlj-\0\0\0\17o\bÌ\13\ 1\0#q Q8tAmWAy-\0\0\0\17o\bÔ\13\ 1\0#q U3697une-\0\0\0\17o\bÜ\13\ 1\0#q tmwupGyw-\0\0\0\17o\bä\13\ 1\0#q UXVcTN9M-\0\0\0\17o\bì\13\ 1\0#q qL1479u2-\0\0\0\17o\bô\13\ 1\0#q I2tsRZbv-\0\0\0\17o\bü\13\ 1\0#q yj68/LNR-\0\0\0\17o\b\ 4\14\ 1\0#q M01plhvS-\0\0\0\17o\b\f\14\ 1\0#q bN5Ncjrr-\0\0\0\17o\b\14\14\ 1\0#q ccL8Htyj-\0\0\0\17o\b\1c\14\ 1\0#q +BCrHefe-\0\0\0\17o\b$\14\ 1\0#q 9PVPN5zr-\0\0\0\17o\b,\14\ 1\0#q UH+1Pb6r-\0\0\0\17o\b4\14\ 1\0#q Xdo22uWW-\0\0\0\17o\b<\14\ 1\0#q d/EfwZZb-\0\0\0\17o\bD\14\ 1\0#q Ur34gOaZ-\0\0\0\17o\bL\14\ 1\0#q 1MdLqLC9-\0\0\0\17o\bT\14\ 1\0#q RP7u6RSO-\0\0\0\17o\b\\14\ 1\0#q 3a3RxXP8-\0\0\0\17o\bd\14\ 1\0#q X0wBLkn9-\0\0\0\17o\bl\14\ 1\0#q FRxLMv9C-\0\0\0\17o\bt\14\ 1\0#q JEbYsiOp-\0\0\0\17o\b|\14\ 1\0#q gpUSoa5G-\0\0\0\17o\b\84\14\ 1\0#q SlIQU0ym-\0\0\0\17o\b\8c\14\ 1\0#q 1JJSRLor-\0\0\0\17o\b\94\14\ 1\0#q CY+OqjQV-\0\0\0\17o\b\9c\14\ 1\0#q lihaqBci-\0\0\0\17o\b¤\14\ 1\0#q ZcOS7lgm-\0\0\0\17o\b¬\14\ 1\0#q ERMS0iZQ-\0\0\0\17o\b´\14\ 1\0#q TN2xVFER-\0\0\0\17o\b¼\14\ 1\0#q DdrxbKJt-\0\0\0\17o\bÄ\14\ 1\0#q zCzbbXC5-\0\0\0\17o\bÌ\14\ 1\0#q bTm3j1zM-\0\0\0\17o\bÔ\14\ 1\0#q s1uqI3AH-\0\0\0\17o\bÜ\14\ 1\0#q ShpYzQRb-\0\0\0\17o\bä\14\ 1\0#q TYKYrZRI-\0\0\0\17o\bì\14\ 1\0#q LVpDLWCC-\0\0\0\17o\bô\14\ 1\0#q HKKFK04P-\0\0\0\17o\bü\14\ 1\0#q z6l9+B8Q-\0\0\0\17o\b\ 4\15\ 1\0#q wVBx3HZ3-\0\0\0\17o\b\f\15\ 1\0#q pHj9L3wP-\0\0\0\17o\b\14\15\ 1\0#q qk8LV2RT-\0\0\0\17o\b\1c\15\ 1\0#q 9q1kZcel-\0\0\0\17o\b$\15\ 1\0#q VkMztswv-\0\0\0\17o\b,\15\ 1\0#q hMxRjp82-\0\0\0\17o\b4\15\ 1\0#q 6SggOKFA-\0\0\0\17o\b<\15\ 1\0#q SfzLUZH+-\0\0\0\17o\bD\15\ 1\0#q Trbl452C-\0\0\0\17o\bL\15\ 1\0#q rv71T9Wh-\0\0\0\17o\bT\15\ 1\0#q t51YV3hX-\0\0\0\17o\b\\15\ 1\0#q G4QPJdqV-\0\0\0\17o\bd\15\ 1\0#q 3uZz13mw-\0\0\0\17o\bl\15\ 1\0#q rzVZnjVL-\0\0\0\17o\bt\15\ 1\0#q bVn+YVe6-\0\0\0\17o\b|\15\ 1\0#q 2EzchMqt-\0\0\0\17o\b\84\15\ 1\0#q zShLkKPE-\0\0\0\17o\b\8c\15\ 1\0#q dMnTiMTv-\0\0\0\17o\b\94\15\ 1\0#q OqRJbzVh-\0\0\0\17o\b\9c\15\ 1\0#q xDI1dd1r-\0\0\0\17o\b¤\15\ 1\0#q QhiTqmcL-\0\0\0\17o\b¬\15\ 1\0#q OhwiEgTP-\0\0\0\17o\b´\15\ 1\0#q FVyLB/BY-\0\0\0\17o\b¼\15\ 1\0#q xVVJ0qTb-\0\0\0\17o\bÄ\15\ 1\0#q e0X+E2NJ-\0\0\0\17o\bÌ\15\ 1\0#q 5FQil9Im-\0\0\0\17o\bÔ\15\ 1\0#q 2yK4hAhR-\0\0\0\17o\bÜ\15\ 1\0#q OqTbaIFD-\0\0\0\17o\bä\15\ 1\0#q 7Kzyqk3n-\0\0\0\17o\bì\15\ 1\0#q y25Hm6dG-\0\0\0\17o\bô\15\ 1\0#q XKvdrsl+-\0\0\0\17o\bü\15\ 1\0#q j9LTNJyM-\0\0\0\17o\b\ 4\16\ 1\0#q bczUREDG-\0\0\0\17o\b\f\16\ 1\0#q XgVzlti/-\0\0\0\17o\b\14\16\ 1\0#q gxxcK9lm-\0\0\0\17o\b\1c\16\ 1\0#q rQmuXy00-\0\0\0\17o\b$\16\ 1\0#q nPZ1ZnYM-\0\0\0\17o\b,\16\ 1\0#q COztzV44-\0\0\0\17o\b4\16\ 1\0#q ehTr4++n-\0\0\0\17o\b<\16\ 1\0#q 1Tt21RvA-\0\0\0\17o\bD\16\ 1\0#q 1/+natOd-\0\0\0\17o\bL\16\ 1\0#q +etlwD45-\0\0\0\17o\bT\16\ 1\0#q o3FOGbqi-\0\0\0\17o\b\\16\ 1\0#q F43Vsp2V-\0\0\0\17o\bd\16\ 1\0#q A9kWCP6E-\0\0\0\17o\bl\16\ 1\0#q RX78Jds3-\0\0\0\17o\bt\16\ 1\0#q aZdJHuSi-\0\0\0\17o\b|\16\ 1\0#q VaYad/n7-\0\0\0\17o\b\84\16\ 1\0#q 3gTnNOq8-\0\0\0\17o\b\8c\16\ 1\0#q bUvQV1ck-\0\0\0\17o\b\94\16\ 1\0#q 9/tFEv8o-\0\0\0\17o\b\9c\16\ 1\0#q /X7P+1Zh-\0\0\0\17o\b¤\16\ 1\0#q augDmvV+-\0\0\0\17o\b¬\16\ 1\0#q 7UkaQ/vH-\0\0\0\17o\b´\16\ 1\0#q B7fX5WVg-\0\0\0\17o\b¼\16\ 1\0#q RokFFMNz-\0\0\0\17o\bÄ\16\ 1\0#q V0S7rpL5-\0\0\0\17o\bÌ\16\ 1\0#q fPt5Hpdv-\0\0\0\17o\bÔ\16\ 1\0#q Xdsa8XNC-\0\0\0\17o\bÜ\16\ 1\0#q J3dO64Rj-\0\0\0\17o\bä\16\ 1\0#q AXp5PJc5-\0\0\0\17o\bì\16\ 1\0#q siQE7p10-\0\0\0\17o\bô\16\ 1\0#q k7q5MlxQ-\0\0\0\17o\bü\16\ 1\0#q kHbwYYb3-\0\0\0\17o\b\ 4\17\ 1\0#q 7js+uXMr-\0\0\0\17o\b\f\17\ 1\0#q XQD53neb-\0\0\0\17o\b\14\17\ 1\0#q kY+JEQ3K-\0\0\0\17o\b\1c\17\ 1\0#q r6j5LcbH-\0\0\0\17o\b$\17\ 1\0#q txRKez7r-\0\0\0\17o\b,\17\ 1\0#q jvN74ZI/-\0\0\0\17o\b4\17\ 1\0#q binYF32T-\0\0\0\17o\b<\17\ 1\0#q atmu8Be6-\0\0\0\17o\bD\17\ 1\0#q TXLsrqtU-\0\0\0\17o\bL\17\ 1\0#q SyjpPtDk-\0\0\0\17o\bT\17\ 1\0#q efbc/yap-\0\0\0\17o\b\\17\ 1\0#q 8EMZR59e-\0\0\0\17o\bd\17\ 1\0#q NbE1KJt1-\0\0\0\17o\bl\17\ 1\0#q yzjkr8Ir-\0\0\0\17o\bt\17\ 1\0#q Bj8d5+WZ-\0\0\0\17o\b|\17\ 1\0#q HW1FCToy-\0\0\0\17o\b\84\17\ 1\0#q AsXOUEXr-\0\0\0\17o\b\8c\17\ 1\0#q Wtq1r5tZ-\0\0\0\17o\b\94\17\ 1\0#q b+GoluBz-\0\0\0\17o\b\9c\17\ 1\0#q 2+U8FT3v-\0\0\0\17o\b¤\17\ 1\0#q a2RkKc6W-\0\0\0\17o\b¬\17\ 1\0#q R3ZeNn4i-\0\0\0\17o\b´\17\ 1\0#q q1okKrUT-\0\0\0\17o\b¼\17\ 1\0#q hD2MqptN-\0\0\0\17o\bÄ\17\ 1\0#q GqiTJ4M2-\0\0\0\17o\bÌ\17\ 1\0#q f9u45+/n-\0\0\0\17o\bÔ\17\ 1\0#q wFAQyTz4-\0\0\0\17o\bÜ\17\ 1\0#q I8lDKWkd-\0\0\0\17o\bä\17\ 1\0#q QxJJEruE-\0\0\0\17o\bì\17\ 1\0#q VFU6mHlM-\0\0\0\17o\bô\17\ 1\0#q h/SyVffy-\0\0\0\17o\bü\17\ 1\0#q tduOEYY+-\0\0\0\17o\b\ 4\18\ 1\0#q qcVewuWR-\0\0\0\17o\b\f\18\ 1\0#q 7sCx2jKW-\0\0\0\17o\b\14\18\ 1\0#q aQSEq05V-\0\0\0\17o\b\1c\18\ 1\0#q h2otTsmL-\0\0\0\17o\b$\18\ 1\0#q P8nxVuGA-\0\0\0\17o\b,\18\ 1\0#q JlL6CQ0f-\0\0\0\17o\b4\18\ 1\0#q XzP22Mn0-\0\0\0\17o\b<\18\ 1\0#q O/dc+Rzx-\0\0\0\17o\bD\18\ 1\0#q qdnXq/N3-\0\0\0\17o\bL\18\ 1\0#q KIZUKGEw-\0\0\0\17o\bT\18\ 1\0#q HCFgyKwJ-\0\0\0\17o\b\\18\ 1\0#q cqXSyY9+-\0\0\0\17o\bd\18\ 1\0#q KkWLMIVw-\0\0\0\17o\bl\18\ 1\0#q WZW84+AK-\0\0\0\17o\bt\18\ 1\0#q /Bz5wnaL-\0\0\0\17o\b|\18\ 1\0#q I44LmU90-\0\0\0\17o\b\84\18\ 1\0#q x/EkyBYo-\0\0\0\17o\b\8c\18\ 1\0#q YS1EJA9j-\0\0\0\17o\b\94\18\ 1\0#q WfE+/5tR-\0\0\0\17o\b\9c\18\ 1\0#q UV1ipCoo-\0\0\0\17o\b¤\18\ 1\0#q f2zsjgKQ-\0\0\0\17o\b¬\18\ 1\0#q 8vpHUIwQ-\0\0\0\17o\b´\18\ 1\0#q U4hNNSOW-\0\0\0\17o\b¼\18\ 1\0#q 4tYulfaq-\0\0\0\17o\bÄ\18\ 1\0#q fz6P4wYH-\0\0\0\17o\bÌ\18\ 1\0#q GDM4DID3-\0\0\0\17o\bÔ\18\ 1\0#q +NqN1ONU-\0\0\0\17o\bÜ\18\ 1\0#q A/PfuPMR-\0\0\0\17o\bä\18\ 1\0#q XS88tk7z-\0\0\0\17o\bì\18\ 1\0#q Kq/wt5Rm-\0\0\0\17o\bô\18\ 1\0#q aVy9WAxs-\0\0\0\17o\bü\18\ 1\0#q jPw3pHVU-\0\0\0\17o\b\ 4\19\ 1\0#q omq01Y27-\0\0\0\17o\b\f\19\ 1\0#q q1V1m7Yd-\0\0\0\17o\b\14\19\ 1\0#q 2KfWl+O5-\0\0\0\17o\b\1c\19\ 1\0#q Zq7729d9-\0\0\0\17o\b$\19\ 1\0#q zZ0l0p3f-\0\0\0\17o\b,\19\ 1\0#q EcrJ5Ygf-\0\0\0\17o\b4\19\ 1\0#q bvWje7O3-\0\0\0\17o\b<\19\ 1\0#q f3xZrowI-\0\0\0\17o\bD\19\ 1\0#q WRkq4O+T-\0\0\0\17o\bL\19\ 1\0#q FRyxJpiW-\0\0\0\17o\bT\19\ 1\0#q o4lFPH3W-\0\0\0\17o\b\\19\ 1\0#q rGdl4cvr-\0\0\0\17o\bd\19\ 1\0#q RgQWOs7e-\0\0\0\17o\bl\19\ 1\0#q +Rm7Fg5S-\0\0\0\17o\bt\19\ 1\0#q GPs7K8wI-\0\0\0\17o\b|\19\ 1\0#q I3++tGhU-\0\0\0\17o\b\84\19\ 1\0#q MYuglST7-\0\0\0\17o\b\8c\19\ 1\0#q 5Ktdoynt-\0\0\0\17o\b\94\19\ 1\0#q NOHVVlYk-\0\0\0\17o\b\9c\19\ 1\0#q vFyJtG6k-\0\0\0\17o\b¤\19\ 1\0#q 2rcPNYnR-\0\0\0\17o\b¬\19\ 1\0#q azDvM0jt-\0\0\0\17o\b´\19\ 1\0#q v9e0GxHt-\0\0\0\17o\b¼\19\ 1\0#q Pw9lbsVH-\0\0\0\17o\bÄ\19\ 1\0#q o999iMnW-\0\0\0\17o\bÌ\19\ 1\0#q ySQyREBB-\0\0\0\17o\bÔ\19\ 1\0#q JkSLp6Bs-\0\0\0\17o\bÜ\19\ 1\0#q nvG/p9fa-\0\0\0\17o\bä\19\ 1\0#q VUKlPzdQ-\0\0\0\17o\bì\19\ 1\0#q /ZVIRVFq-\0\0\0\17o\bô\19\ 1\0#q LwVZA3bC-\0\0\0\17o\bü\19\ 1\0#q zzChJo/V-\0\0\0\17o\b\ 4\1a\ 1\0#q G3vBX5SF-\0\0\0\17o\b\f\1a\ 1\0#q rWK1RZmz-\0\0\0\17o\b\14\1a\ 1\0#q bONI5WDQ-\0\0\0\17o\b\1c\1a\ 1\0#q JSoSvFrW-\0\0\0\17o\b$\1a\ 1\0#q QPYWLVWp-\0\0\0\17o\b,\1a\ 1\0#q k4wJi851-\0\0\0\17o\b4\1a\ 1\0#q alamk1f8-\0\0\0\17o\b<\1a\ 1\0#q QZvBepyq-\0\0\0\17o\bD\1a\ 1\0#q UITCUW1M-\0\0\0\17o\bL\1a\ 1\0#q PO3E+bYp-\0\0\0\17o\bT\1a\ 1\0#q bGJWorqr-\0\0\0\17o\b\\1a\ 1\0#q G+spHFPy-\0\0\0\17o\bd\1a\ 1\0#q 6ovW+piP-\0\0\0\17o\bl\1a\ 1\0#q xPDpvMK9-\0\0\0\17o\bt\1a\ 1\0#q cLBMXT02-\0\0\0\17o\b|\1a\ 1\0#q D897907t-\0\0\0\17o\b\84\1a\ 1\0#q O7q6Tqpw-\0\0\0\17o\b\8c\1a\ 1\0#q mu19VLVj-\0\0\0\17o\b\94\1a\ 1\0#q 5w68m9aL-\0\0\0\17o\b\9c\1a\ 1\0#q xrh5pRd6-\0\0\0\17o\b¤\1a\ 1\0#q 0Z1Y7OPl-\0\0\0\17o\b¬\1a\ 1\0#q nWyT67h8-\0\0\0\17o\b´\1a\ 1\0#q VWsGO4nU-\0\0\0\17o\b¼\1a\ 1\0#q UKiC8Pu5-\0\0\0\17o\bÄ\1a\ 1\0#q yxhCT898-\0\0\0\17o\bÌ\1a\ 1\0#q xuvPfY+f-\0\0\0\17o\bÔ\1a\ 1\0#q hoRK5T5q-\0\0\0\17o\bÜ\1a\ 1\0#q vf5+ore9-\0\0\0\17o\bä\1a\ 1\0#q q8fDLTyk-\0\0\0\17o\bì\1a\ 1\0#q 2u/mia2v-\0\0\0\17o\bô\1a\ 1\0#q XGhbTXwj-\0\0\0\17o\bü\1a\ 1\0#q pwro94vO-\0\0\0\17o\b\ 4\e\ 1\0#q KUYpdrNK-\0\0\0\17o\b\f\e\ 1\0#q /ilIKJN5-\0\0\0\17o\b\14\e\ 1\0#q 9XedxQPP-\0\0\0\17o\b\1c\e\ 1\0#q GvYqUmlT-\0\0\0\17o\b$\e\ 1\0#q pq88kgne-\0\0\0\17o\b,\e\ 1\0#q W7DHmiG2-\0\0\0\17o\b4\e\ 1\0#q 3HMo7Zsh-\0\0\0\17o\b<\e\ 1\0#q 04+H7xMd-\0\0\0\17o\bD\e\ 1\0#q o7xOJJtY-\0\0\0\17o\bL\e\ 1\0#q eizcYZdt-\0\0\0\17o\bT\e\ 1\0#q 7XbKVK6O-\0\0\0\17o\b\\e\ 1\0#q L4vQLe/M-\0\0\0\17o\bd\e\ 1\0#q +3jq86Sg-\0\0\0\17o\bl\e\ 1\0#q U5889oFK-\0\0\0\17o\bt\e\ 1\0#q fPVuxF3w-\0\0\0\17o\b|\e\ 1\0#q lFrkIun9-\0\0\0\17o\b\84\e\ 1\0#q efjz79d+-\0\0\0\17o\b\8c\e\ 1\0#q wYeN/C+u-\0\0\0\17o\b\94\e\ 1\0#q 3m1rd0jF-\0\0\0\17o\b\9c\e\ 1\0#q Gq9X89Km-\0\0\0\17o\b¤\e\ 1\0#q LLXN2C5P-\0\0\0\17o\b¬\e\ 1\0#q o/veZd64-\0\0\0\17o\b´\e\ 1\0#q ndf3MKIx-\0\0\0\17o\b¼\e\ 1\0#q sceKwWTe-\0\0\0\17o\bÄ\e\ 1\0#q L7MD3i1L-\0\0\0\17o\bÌ\e\ 1\0#q FVj6xz2p-\0\0\0\17o\bÔ\e\ 1\0#q zr8QKCFN-\0\0\0\17o\bÜ\e\ 1\0#q CFKpIp+x-\0\0\0\17o\bä\e\ 1\0#q TH6JnyBs-\0\0\0\17o\bì\e\ 1\0#q NsPitQlo-\0\0\0\17o\bô\e\ 1\0#q Ygqd1l5g-\0\0\0\17o\bü\e\ 1\0#q 4jhq6cPD-\0\0\0\17o\b\ 4\1c\ 1\0#q UvHlmwrI-\0\0\0\17o\b\f\1c\ 1\0#q oOhRQkOJ-\0\0\0\17o\b\14\1c\ 1\0#q cJfIaDs0-\0\0\0\17o\b\1c\1c\ 1\0#q KhNWaJJh-\0\0\0\17o\b$\1c\ 1\0#q i4g5WXdY-\0\0\0\17o\b,\1c\ 1\0#q cDKbkpiy-\0\0\0\17o\b4\1c\ 1\0#q 7o20IRRp-\0\0\0\17o\b<\1c\ 1\0#q RFyOFooQ-\0\0\0\17o\bD\1c\ 1\0#q 42GI3+Su-\0\0\0\17o\bL\1c\ 1\0#q oMuUwozR-\0\0\0\17o\bT\1c\ 1\0#q 5RSK47Uc-\0\0\0\17o\b\\1c\ 1\0#q IoQsIwhh-\0\0\0\17o\bd\1c\ 1\0#q RiAXHRoV-\0\0\0\17o\bl\1c\ 1\0#q M/c+S9/l-\0\0\0\17o\bt\1c\ 1\0#q 9R47JC+j-\0\0\0\17o\b|\1c\ 1\0#q +m/Feaff-\0\0\0\17o\b\84\1c\ 1\0#q 6jz8TUQc-\0\0\0\17o\b\8c\1c\ 1\0#q fBu36cbf-\0\0\0\17o\b\94\1c\ 1\0#q XyrsgqiU-\0\0\0\17o\b\9c\1c\ 1\0#q IyVfLNwC-\0\0\0\17o\b¤\1c\ 1\0#q KvgnlBRw-\0\0\0\17o\b¬\1c\ 1\0#q KKm+brfb-\0\0\0\17o\b´\1c\ 1\0#q FcOClV8L-\0\0\0\17o\b¼\1c\ 1\0#q fTPJElZD-\0\0\0\17o\bÄ\1c\ 1\0#q w+Yw7n3R-\0\0\0\17o\bÌ\1c\ 1\0#q /39I96pW-\0\0\0\17o\bÔ\1c\ 1\0#q acn74akm-\0\0\0\17o\bÜ\1c\ 1\0#q CfZk9N7H-\0\0\0\17o\bä\1c\ 1\0#q nbmfnm+G-\0\0\0\17o\bì\1c\ 1\0#q 9N9IIVf2-\0\0\0\17o\bô\1c\ 1\0#q 33Vjv2K+-\0\0\0\17o\bü\1c\ 1\0#q dmOqXTgm-\0\0\0\17o\b\ 4\1d\ 1\0#q /cpSxjx5-\0\0\0\17o\b\f\1d\ 1\0#q NoTM+aO9-\0\0\0\17o\b\14\1d\ 1\0#q xtTisCE1-\0\0\0\17o\b\1c\1d\ 1\0#q pRXSdT2d-\0\0\0\17o\b$\1d\ 1\0#q oOxqKdUb-\0\0\0\17o\b,\1d\ 1\0#q 7MQGth/h-\0\0\0\17o\b4\1d\ 1\0#q kgx+xCAl-\0\0\0\17o\b<\1d\ 1\0#q vCV3TRG0-\0\0\0\17o\bD\1d\ 1\0#q Ce6IyQW7-\0\0\0\17o\bL\1d\ 1\0#q O5ROkRaO-\0\0\0\17o\bT\1d\ 1\0#q iwj2YN2c-\0\0\0\17o\b\\1d\ 1\0#q oi/fFuiz-\0\0\0\17o\bd\1d\ 1\0#q w675bLOf-\0\0\0\17o\bl\1d\ 1\0#q JnWg2VO7-\0\0\0\17o\bt\1d\ 1\0#q rRIEXexn-\0\0\0\17o\b|\1d\ 1\0#q FH3XUPPf-\0\0\0\17o\b\84\1d\ 1\0#q xRcRGzXs-\0\0\0\17o\b\8c\1d\ 1\0#q xpAtbS7e-\0\0\0\17o\b\94\1d\ 1\0#q u63smcY2-\0\0\0\17o\b\9c\1d\ 1\0#q W+6RTU1p-\0\0\0\17o\b¤\1d\ 1\0#q svDNdHE5-\0\0\0\17o\b¬\1d\ 1\0#q 1pxd+N1F-\0\0\0\17o\b´\1d\ 1\0#q lWJbYbvu-\0\0\0\17o\b¼\1d\ 1\0#q 4qRoHx0s-\0\0\0\17o\bÄ\1d\ 1\0#q 6pEIRV8N-\0\0\0\17o\bÌ\1d\ 1\0#q xbCsclUV-\0\0\0\17o\bÔ\1d\ 1\0#q Re1t0Tr9-\0\0\0\17o\bÜ\1d\ 1\0#q /qt689+z-\0\0\0\17o\bä\1d\ 1\0#q MRbOMBXq-\0\0\0\17o\bì\1d\ 1\0#q vBVD8KyF-\0\0\0\17o\bô\1d\ 1\0#q EO9HimPz-\0\0\0\17o\bü\1d\ 1\0#q qLzwaL5e-\0\0\0\17o\b\ 4\1e\ 1\0#q +3ZBPN5Y-\0\0\0\17o\b\f\1e\ 1\0#q 7c/Kfp4k-\0\0\0\17o\b\14\1e\ 1\0#q QCKdTjmO-\0\0\0\17o\b\1c\1e\ 1\0#q a/v154+n-\0\0\0\17o\b$\1e\ 1\0#q 3TBe7/D3-\0\0\0\17o\b,\1e\ 1\0#q +v6r+/vo-\0\0\0\17o\b4\1e\ 1\0#q inkqWoit-\0\0\0\17o\b<\1e\ 1\0#q VotACCo6-\0\0\0\17o\bD\1e\ 1\0#q 64ufF4Po-\0\0\0\17o\bL\1e\ 1\0#q 3J6cfruz-\0\0\0\17o\bT\1e\ 1\0#q 8fcQTLL1-\0\0\0\17o\b\\1e\ 1\0#q 3Kd1yNXL-\0\0\0\17o\bd\1e\ 1\0#q le7zzhNi-\0\0\0\17o\bl\1e\ 1\0#q NjuuwY3d-\0\0\0\17o\bt\1e\ 1\0#q vT6en4e/-\0\0\0\17o\b|\1e\ 1\0#q 3/ffT7fX-\0\0\0\17o\b\84\1e\ 1\0#q 3eKmQXX0-\0\0\0\17o\b\8c\1e\ 1\0#q /wDQj59+-\0\0\0\17o\b\94\1e\ 1\0#q yNfHDLb2-\0\0\0\17o\b\9c\1e\ 1\0#q ngE11HTs-\0\0\0\17o\b¤\1e\ 1\0#q 1D00z1Rm-\0\0\0\17o\b¬\1e\ 1\0#q nx+dfhwb-\0\0\0\17o\b´\1e\ 1\0#q hbzuLp0q-\0\0\0\17o\b¼\1e\ 1\0#q d0QHMBsp-\0\0\0\17o\bÄ\1e\ 1\0#q KuzzC3ON-\0\0\0\17o\bÌ\1e\ 1\0#q dfyL9+3r-\0\0\0\17o\bÔ\1e\ 1\0#q QfBoYPjz-\0\0\0\17o\bÜ\1e\ 1\0#q 4zsDVN+W-\0\0\0\17o\bä\1e\ 1\0#q G7vLnXx9-\0\0\0\17o\bì\1e\ 1\0#q Tr2sSvtE-\0\0\0\17o\bô\1e\ 1\0#q 8MUa1li7-\0\0\0\17o\bü\1e\ 1\0#q Bpqrgl9m-\0\0\0\17o\b\ 4\1f\ 1\0#q bKWWkUrS-\0\0\0\17o\b\f\1f\ 1\0#q xt51NbR1-\0\0\0\17o\b\14\1f\ 1\0#q yPPlQlNb-\0\0\0\17o\b\1c\1f\ 1\0#q X2vpMO6O-\0\0\0\17o\b$\1f\ 1\0#q ipAZVCnO-\0\0\0\17o\b,\1f\ 1\0#q zMdCcdMd-\0\0\0\17o\b4\1f\ 1\0#q 8ANNA3fU-\0\0\0\17o\b<\1f\ 1\0#q 9nxFkfot-\0\0\0\17o\bD\1f\ 1\0#q Xt+qp9oP-\0\0\0\17o\bL\1f\ 1\0#q k+AQUQa8-\0\0\0\17o\bT\1f\ 1\0#q iUvJUoSV-\0\0\0\17o\b\\1f\ 1\0#q IGwuzKjM-\0\0\0\17o\bd\1f\ 1\0#q pmM+3+Z0-\0\0\0\17o\bl\1f\ 1\0#q JJ9oAjV2-\0\0\0\17o\bt\1f\ 1\0#q 34RfrNBx-\0\0\0\17o\b|\1f\ 1\0#q tZMos3vC-\0\0\0\17o\b\84\1f\ 1\0#q krhlcmZX-\0\0\0\17o\b\8c\1f\ 1\0#q JZqK1aqY-\0\0\0\17o\b\94\1f\ 1\0#q Ug1pqK4f-\0\0\0\17o\b\9c\1f\ 1\0#q wfD1WX0e-\0\0\0\17o\b¤\1f\ 1\0#q SASEKQ/x-\0\0\0\17o\b¬\1f\ 1\0#q P5j5X1rQ-\0\0\0\17o\b´\1f\ 1\0#q Tbnv3OI8-\0\0\0\17o\b¼\1f\ 1\0#q ip3bm/Id-\0\0\0\17o\bÄ\1f\ 1\0#q SENUwIVV-\0\0\0\17o\bÌ\1f\ 1\0#q CBlkpUln-\0\0\0\17o\bÔ\1f\ 1\0#q Z2REw9p9-\0\0\0\17o\bÜ\1f\ 1\0#q /blysnsi-\0\0\0\17o\bä\1f\ 1\0#q Ozjy+3xK-\0\0\0\17o\bì\1f\ 1\0#q hFfg6Y9V-\0\0\0\17o\bô\1f\ 1\0#q KDt267q3-\0\0\0\17o\bü\1f\ 1\0#q dT8u8J9N-\0\0\0\17o\b\ 4 \ 1\0#q hYJotAkH-\0\0\0\17o\b\f \ 1\0#q UBPU1WdV-\0\0\0\17o\b\14 \ 1\0#q V2dPq97X-\0\0\0\17o\b\1c \ 1\0#q 2saP9b/I-\0\0\0\17o\b\ 1\0#q 78+d+hJa-\0\0\0\17o\b\ 1\0#q 9dsO8Dq7-\0\0\0\17o\b\ 1\0#q uuiXBGuV-\0\0\0\17o\b\ 1\0#q PDdiDl5s-\0\0\0\17o\b\ 1\0#q gMgCCkTR-\0\0\0\17o\b\ 1\0#q ucudbu90-\0\0\0\17o\b\ 1\0#q qcSryhxz-\0\0\0\17o\b\ 1\0#q aniH091s-\0\0\0\17o\b\ 1\0#q PgD3KHqW-\0\0\0\17o\b\ 1\0#q gJEDwpMC-\0\0\0\17o\b\ 1\0#q gIuFF5DD-\0\0\0\17o\b\ 1\0#q tnI77sGM-\0\0\0\17o\b\84 \ 1\0#q f+eGrB8U-\0\0\0\17o\b\8c \ 1\0#q CUkTW1qL-\0\0\0\17o\b\94 \ 1\0#q EWR7RSws-\0\0\0\17o\b\9c \ 1\0#q tGmUIlsN-\0\0\0\17o\b¤ \ 1\0#q wAQgEqgy-\0\0\0\17o\b¬ \ 1\0#q kQQLO1kn-\0\0\0\17o\b´ \ 1\0#q r6u1ttq2-\0\0\0\17o\b¼ \ 1\0#q 1Hb6I+XS-\0\0\0\17o\bÄ \ 1\0#q d9/RPL0/-\0\0\0\17o\bÌ \ 1\0#q pE9I8J/g-\0\0\0\17o\bÔ \ 1\0#q r8OkY248-\0\0\0\17o\bÜ \ 1\0#q frxb8ffH-\0\0\0\17o\bä \ 1\0#q G2a4zitL-\0\0\0\17o\bì \ 1\0#q xY9lPyn2-\0\0\0\17o\bô \ 1\0#q k/bD85+5-\0\0\0\17o\bü \ 1\0#q 9xlp+/Kf-\0\0\0\17o\b\ 4!\ 1\0#q S6jzTDGV-\0\0\0\17o\b\f!\ 1\0#q KlCSXUKD-\0\0\0\17o\b\14!\ 1\0#q uGBA2Gxz-\0\0\0\17o\b\1c!\ 1\0#q jS7K6hA7-\0\0\0\17o\b$!\ 1\0#q uoAgSlLY-\0\0\0\17o\b,!\ 1\0#q S2qL/6jh-\0\0\0\17o\b4!\ 1\0#q Pn+y2y2u-\0\0\0\17o\b<!\ 1\0#q 3o2Tt0/s-\0\0\0\17o\bD!\ 1\0#q 8v7+lrl/-\0\0\0\17o\bL!\ 1\0#q tPT9O/Fv-\0\0\0\17o\bT!\ 1\0#q bfdk0V+H-\0\0\0\17o\b\!\ 1\0#q toX6P4/h-\0\0\0\17o\bd!\ 1\0#q 5fh/Zzr6-\0\0\0\17o\bl!\ 1\0#q 5P+z5dyH-\0\0\0\17o\bt!\ 1\0#q 9HPb4K1f-\0\0\0\17o\b|!\ 1\0#q uqT5PuQM-\0\0\0\17o\b\84!\ 1\0#q hcP2210T-\0\0\0\17o\b\8c!\ 1\0#q TD6Tx8In-\0\0\0\17o\b\94!\ 1\0#q pqHwj333-\0\0\0\17o\b\9c!\ 1\0#q mVmPK+Lf-\0\0\0\17o\b¤!\ 1\0#q w/Zy/VOH-\0\0\0\17o\b¬!\ 1\0#q TmPh/Y4e-\0\0\0\17o\b´!\ 1\0#q 230Y6cun-\0\0\0\17o\b¼!\ 1\0#q Lw2flSdv-\0\0\0\17o\bÄ!\ 1\0#q b90NP4n7-\0\0\0\17o\bÌ!\ 1\0#q P7x+yfRP-\0\0\0\17o\bÔ!\ 1\0#q 3enyjwH7-\0\0\0\17o\bÜ!\ 1\0#q P7Pb7p+s-\0\0\0\17o\bä!\ 1\0#q +0w6WTLF-\0\0\0\17o\bì!\ 1\0#q VJtJ7fRw-\0\0\0\17o\bô!\ 1\0#q +3jh93hw-\0\0\0\17o\bü!\ 1\0#q 0r/PVq20-\0\0\0\17o\b\ 4"\ 1\0#q NKhwUT+m-\0\0\0\17o\b\f"\ 1\0#q nppNp/lX-\0\0\0\17o\b\14"\ 1\0#q TSUy24lK-\0\0\0\17o\b\1c"\ 1\0#q /p9p+x+7-\0\0\0\17o\b$"\ 1\0#q bhT5Y/39-\0\0\0\17o\b,"\ 1\0#q es1H9J9h-\0\0\0\17o\b4"\ 1\0#q /LTt/Ha6-\0\0\0\17o\b<"\ 1\0#q djhODEY0-\0\0\0\17o\bD"\ 1\0#q qtFflRyn-\0\0\0\17o\bL"\ 1\0#q 0FY5fsE/-\0\0\0\17o\bT"\ 1\0#q Dp0+HL/L-\0\0\0\17o\b\"\ 1\0#q b9lnh6Yc-\0\0\0\17o\bd"\ 1\0#q P0Ym32Y/-\0\0\0\17o\bl"\ 1\0#q Rwp+H3k/-\0\0\0\17o\bt"\ 1\0#q Kf3z7vTy-\0\0\0\17o\b|"\ 1\0#q 8I+K+yj2-\0\0\0\17o\b\84"\ 1\0#q 2wqny+Ps-\0\0\0\17o\b\8c"\ 1\0#q dv3/tbwj-\0\0\0\17o\b\94"\ 1\0#q 0m1dOmO2-\0\0\0\17o\b\9c"\ 1\0#q g8Kfo4em-\0\0\0\17o\b¤"\ 1\0#q jSqXi3tw-\0\0\0\17o\b¬"\ 1\0#q +KtNzhy7-\0\0\0\17o\b´"\ 1\0#q Y8PwY/U/-\0\0\0\17o\b¼"\ 1\0#q sn9o/l8P-\0\0\0\17o\bÄ"\ 1\0#q SD+utZcW-\0\0\0\17o\bÌ"\ 1\0#q 37Ph7krk-\0\0\0\17o\bÔ"\ 1\0#q Pur4qw0f-\0\0\0\17o\bÜ"\ 1\0#q u31nGszW-\0\0\0\17o\bä"\ 1\0#q 2itKPy7n-\0\0\0\17o\bì"\ 1\0#q 5Y+v8W+v-\0\0\0\17o\bô"\ 1\0#q zZf2Onp4-\0\0\0\17o\bü"\ 1\0#q K8qjB+bb-\0\0\0\17o\b\ 4#\ 1\0#q 8v8tOH1H-\0\0\0\17o\b\f#\ 1\0#q B8o/l+O9-\0\0\0\17o\b\14#\ 1\0#q +G0tG1pa-\0\0\0\17o\b\1c#\ 1\0#q 21taN/eU-\0\0\0\17o\b$#\ 1\0#q 7knnyMCj-\0\0\0\17o\b,#\ 1\0#q BUlf4T4N-\0\0\0\17o\b4#\ 1\0#q vg4a8W9D-\0\0\0\17o\b<#\ 1\0#q pG34af0d-\0\0\0\17o\bD#\ 1\0#q OXz/L8Bt-\0\0\0\17o\bL#\ 1\0#q /Lo8d/GX-\0\0\0\17o\bT#\ 1\0#q Ph9HDFcP-\0\0\0\17o\b\#\ 1\0#q hj+ngr92-\0\0\0\17o\bd#\ 1\0#q if2dHMPk-\0\0\0\17o\bl#\ 1\0#q +xw0x+Xp-\0\0\0\17o\bt#\ 1\0#q tPtbdPTb-\0\0\0\17o\b|#\ 1\0#q XxbFcOvG-\0\0\0\17o\b\84#\ 1\0#q ltuZktu3-\0\0\0\17o\b\8c#\ 1\0#q B29JpHD9-\0\0\0\17o\b\94#\ 1\0#q /l+75T24-\0\0\0\17o\b\9c#\ 1\0#q fcjp/93t-\0\0\0\17o\b¤#\ 1\0#q G58fLFy/-\0\0\0\17o\b¬#\ 1\0#q Nc1mOE2P-\0\0\0\17o\b´#\ 1\0#q Tw+O7a/K-\0\0\0\17o\b¼#\ 1\0#q sP1dPKz1-\0\0\0\17o\bÄ#\ 1\0#q Ielp65m3-\0\0\0\17o\bÌ#\ 1\0#q Lly5mZmO-\0\0\0\17o\bÔ#\ 1\0#q W2qiqrJO-\0\0\0\17o\bÜ#\ 1\0#q g0SUOpO/-\0\0\0\17o\bä#\ 1\0#q Ym4AUdn9-\0\0\0\17o\bì#\ 1\0#q 1ovgujOz-\0\0\0\17o\bô#\ 1\0#q 4FB0MBZW-\0\0\0\17o\bü#\ 1\0#q JO4mPoNt-\0\0\0\17o\b\ 4$\ 1\0#q b+7266rf-\0\0\0\17o\b\f$\ 1\0#q z9zM1txq-\0\0\0\17o\b\14$\ 1\0#q ittGlEv4-\0\0\0\17o\b\1c$\ 1\0#q /jbbCTio-\0\0\0\17o\b$$\ 1\0#q BO/q3CKi-\0\0\0\17o\b,$\ 1\0#q 49u7fnvT-\0\0\0\17o\b4$\ 1\0#q o05uxVVX-\0\0\0\17o\b<$\ 1\0#q 8Y0CiogU-\0\0\0\17o\bD$\ 1\0#q Nx5JLet3-\0\0\0\17o\bL$\ 1\0#q YPFu7NOE-\0\0\0\17o\bT$\ 1\0#q C+62c7Aw-\0\0\0\17o\b\$\ 1\0#q sFCz2reu-\0\0\0\17o\bd$\ 1\0#q sG9vMFWa-\0\0\0\17o\bl$\ 1\0#q x1VlAwU1-\0\0\0\17o\bt$\ 1\0#q dUyIEhit-\0\0\0\17o\b|$\ 1\0#q 6aC7Du7M-\0\0\0\17o\b\84$\ 1\0#q 7VdNstC1-\0\0\0\17o\b\8c$\ 1\0#q lXlm7XRk-\0\0\0\17o\b\94$\ 1\0#q SLM0jajT-\0\0\0\17o\b\9c$\ 1\0#q ZqNBA9IW-\0\0\0\17o\b¤$\ 1\0#q 4mqEa7U3-\0\0\0\17o\b¬$\ 1\0#q XwsODHDZ-\0\0\0\17o\b´$\ 1\0#q VYjuyTqy-\0\0\0\17o\b¼$\ 1\0#q pLVdoZbq-\0\0\0\17o\bÄ$\ 1\0#q cyjdlRjo-\0\0\0\17o\bÌ$\ 1\0#q dkyjWpGB-\0\0\0\17o\bÔ$\ 1\0#q mkajVWlJ-\0\0\0\17o\bÜ$\ 1\0#q 1DzMPPfJ-\0\0\0\17o\bä$\ 1\0#q IIJJJJPA-\0\0\0\17o\bì$\ 1\0#q QDIGiiFD-\0\0\0\17o\bô$\ 1\0#q I221bW79-\0\0\0\17o\bü$\ 1\0#q r+Dx4685-\0\0\0\17o\b\ 4%\ 1\0#q zOUWtrbb-\0\0\0\17o\b\f%\ 1\0#q fyOzogfC-\0\0\0\17o\b\14%\ 1\0#q vL38Olr2-\0\0\0\17o\b\1c%\ 1\0#q TVKbaW0v-\0\0\0\17o\b$%\ 1\0#q vu6QF5fn-\0\0\0\17o\b,%\ 1\0#q nbMxw4f2-\0\0\0\17o\b4%\ 1\0#q Y/dynRyq-\0\0\0\17o\b<%\ 1\0#q ptyw2Smn-\0\0\0\17o\bD%\ 1\0#q j++v21rW-\0\0\0\17o\bL%\ 1\0#q uHL/Sh6a-\0\0\0\17o\bT%\ 1\0#q fEfd+rg7-\0\0\0\17o\b\%\ 1\0#q tq21/aO3-\0\0\0\17o\bd%\ 1\0#q 8mnw4SfD-\0\0\0\17o\bl%\ 1\0#q yY9KYm/9-\0\0\0\17o\bt%\ 1\0#q rcSPu/X7-\0\0\0\17o\b|%\ 1\0#q Jy8DtpVN-\0\0\0\17o\b\84%\ 1\0#q p/s39X6P-\0\0\0\17o\b\8c%\ 1\0#q xVjyn28M-\0\0\0\17o\b\94%\ 1\0#q f2culqrI-\0\0\0\17o\b\9c%\ 1\0#q D0/Z9WNK-\0\0\0\17o\b¤%\ 1\0#q 9+LbXseX-\0\0\0\17o\b¬%\ 1\0#q B+yp9Iez-\0\0\0\17o\b´%\ 1\0#q Tttsnsw0-\0\0\0\17o\b¼%\ 1\0#q m2J9HPXr-\0\0\0\17o\bÄ%\ 1\0#q TWa1mZcr-\0\0\0\17o\bÌ%\ 1\0#q Y5Fj9fX8-\0\0\0\17o\bÔ%\ 1\0#q f16/rtx/-\0\0\0\17o\bÜ%\ 1\0#q W/7ccT29-\0\0\0\17o\bä%\ 1\0#q K9P8fS2f-\0\0\0\17o\bì%\ 1\0#q Rp+r4Cer-\0\0\0\17o\bô%\ 1\0#q ERJEebBr-\0\0\0\17o\bü%\ 1\0#q /HVX8Y2y-\0\0\0\17o\b\ 4&\ 1\0#q v6ZK4N87-\0\0\0\17o\b\f&\ 1\0#q Oc3/UFSf-\0\0\0\17o\b\14&\ 1\0#q 54kQJDPt-\0\0\0\17o\b\1c&\ 1\0#q 4hEQISiN-\0\0\0\17o\b$&\ 1\0#q sJ19vv6d-\0\0\0\17o\b,&\ 1\0#q 5ePOXnLn-\0\0\0\17o\b4&\ 1\0#q KlVRMqnK-\0\0\0\17o\b<&\ 1\0#q JRN8HOc4-\0\0\0\17o\bD&\ 1\0#q eHnBzoIH-\0\0\0\17o\bL&\ 1\0#q MpAZ5mOq-\0\0\0\17o\bT&\ 1\0#q 2Kzf1XTz-\0\0\0\17o\b\&\ 1\0#q nObSPHfY-\0\0\0\17o\bd&\ 1\0#q LFdt2e53-\0\0\0\17o\bl&\ 1\0#q f+MGA8zE-\0\0\0\17o\bt&\ 1\0#q D54z4hfE-\0\0\0\17o\b|&\ 1\0#q g7rRJfbX-\0\0\0\17o\b\84&\ 1\0#q keq33bpR-\0\0\0\17o\b\8c&\ 1\0#q ebgJAwUv-\0\0\0\17o\b\94&\ 1\0#q LQPVZKKF-\0\0\0\17o\b\9c&\ 1\0#q SSDRYI4w-\0\0\0\17o\b¤&\ 1\0#q wgQCBcqq-\0\0\0\17o\b¬&\ 1\0#q Hmqrcrro-\0\0\0\17o\b´&\ 1\0#q /+ISKcn/-\0\0\0\17o\b¼&\ 1\0#q 1pVyxUc+-\0\0\0\17o\bÄ&\ 1\0#q 791ve+Gi-\0\0\0\17o\bÌ&\ 1\0#q 7f91U5/U-\0\0\0\17o\bÔ&\ 1\0#q tURLrEFw-\0\0\0\17o\bÜ&\ 1\0#q xif/K7mL-\0\0\0\17o\bä&\ 1\0#q JLLBmTJk-\0\0\0\17o\bì&\ 1\0#q lllMbAuM-\0\0\0\17o\bô&\ 1\0#q lEryqfWi-\0\0\0\17o\bü&\ 1\0#q tYksSyFR-\0\0\0\17o\b\ 4'\ 1\0#q 0c9WGSW2-\0\0\0\17o\b\f'\ 1\0#q NMjKZLbG-\0\0\0\17o\b\14'\ 1\0#q mSTzVb7J-\0\0\0\17o\b\1c'\ 1\0#q bba9lttv-\0\0\0\17o\b$'\ 1\0#q nPje29yk-\0\0\0\17o\b,'\ 1\0#q ZaxopllR-\0\0\0\17o\b4'\ 1\0#q LYrTpUlc-\0\0\0\17o\b<'\ 1\0#q 4iY8qqyI-\0\0\0\17o\bD'\ 1\0#q 5d705MZv-\0\0\0\17o\bL'\ 1\0#q u1ZllGst-\0\0\0\17o\bT'\ 1\0#q GZYT7z6Z-\0\0\0\17o\b\'\ 1\0#q 6plQwqdu-\0\0\0\17o\bd'\ 1\0#q umGQywMc-\0\0\0\17o\bl'\ 1\0#q HwrK86pa-\0\0\0\17o\bt'\ 1\0#q v3RTHhW1-\0\0\0\17o\b|'\ 1\0#q 8XfjLFYy-\0\0\0\17o\b\84'\ 1\0#q Wbjorjna-\0\0\0\17o\b\8c'\ 1\0#q TttpVOBU-\0\0\0\17o\b\94'\ 1\0#q pg27Ou7M-\0\0\0\17o\b\9c'\ 1\0#q rMMyszLd-\0\0\0\17o\b¤'\ 1\0#q HBzymitU-\0\0\0\17o\b¬'\ 1\0#q J4Tz0dVM-\0\0\0\17o\b´'\ 1\0#q piyXRJDb-\0\0\0\17o\b¼'\ 1\0#q skep0BN7-\0\0\0\17o\bÄ'\ 1\0#q JGO8mdHV-\0\0\0\17o\bÌ'\ 1\0#q Pd1TStUz-\0\0\0\17o\bÔ'\ 1\0#q fsg4eXuW-\0\0\0\17o\bÜ'\ 1\0#q E9PVt2ju-\0\0\0\17o\bä'\ 1\0#q EFWDZr24-\0\0\0\17o\bì'\ 1\0#q eiXW5DE7-\0\0\0\17o\bô'\ 1\0#q KjZzEOuN-\0\0\0\17o\bü'\ 1\0#q ZG7I2ocW-\0\0\0\17o\b\ 4(\ 1\0#q RlLYLVvF-\0\0\0\17o\b\f(\ 1\0#q GIucZOLI-\0\0\0\17o\b\14(\ 1\0#q bpOKjLLU-\0\0\0\17o\b\1c(\ 1\0#q tRat4sjI-\0\0\0\17o\b$(\ 1\0#q GnHJoJtX-\0\0\0\17o\b,(\ 1\0#q 59aGaxoZ-\0\0\0\17o\b4(\ 1\0#q tSn3kjr/-\0\0\0\17o\b<(\ 1\0#q BfvvEueq-\0\0\0\17o\bD(\ 1\0#q YoavHjKx-\0\0\0\17o\bL(\ 1\0#q lfTkQc9P-\0\0\0\17o\bT(\ 1\0#q wqlPyjh+-\0\0\0\17o\b\(\ 1\0#q 1Tjaztea-\0\0\0\17o\bd(\ 1\0#q 0tZo/XVF-\0\0\0\17o\bl(\ 1\0#q D512U2ED-\0\0\0\17o\bt(\ 1\0#q j9tVTpSL-\0\0\0\17o\b|(\ 1\0#q eu7zGstZ-\0\0\0\17o\b\84(\ 1\0#q acdMaS3H-\0\0\0\17o\b\8c(\ 1\0#q LvcS+9fH-\0\0\0\17o\b\94(\ 1\0#q UcNsArlV-\0\0\0\17o\b\9c(\ 1\0#q O3L8To+Y-\0\0\0\17o\b¤(\ 1\0#q ZW3QdvX4-\0\0\0\17o\b¬(\ 1\0#q 6+4Zlyqn-\0\0\0\17o\b´(\ 1\0#q Ds2vzrkq-\0\0\0\17o\b¼(\ 1\0#q cOL7lnnr-\0\0\0\17o\bÄ(\ 1\0#q nu8/OY54-\0\0\0\17o\bÌ(\ 1\0#q O1Vp+VBo-\0\0\0\17o\bÔ(\ 1\0#q MO5sxa7O-\0\0\0\17o\bÜ(\ 1\0#q DUmwnEJv-\0\0\0\17o\bä(\ 1\0#q qyTdRq22-\0\0\0\17o\bì(\ 1\0#q yZN7KutP-\0\0\0\17o\bô(\ 1\0#q TVelXigr-\0\0\0\17o\bü(\ 1\0#q JvTW7bYe-\0\0\0\17o\b\ 4)\ 1\0#q EeJUxwNk-\0\0\0\17o\b\f)\ 1\0#q NlWq21Ic-\0\0\0\17o\b\14)\ 1\0#q SHn3w6MT-\0\0\0\17o\b\1c)\ 1\0#q x68cHTac-\0\0\0\17o\b$)\ 1\0#q UEfeN4zP-\0\0\0\17o\b,)\ 1\0#q FzT3uFY7-\0\0\0\17o\b4)\ 1\0#q X3XTNafe-\0\0\0\17o\b<)\ 1\0#q 0tNeKqbV-\0\0\0\17o\bD)\ 1\0#q U8s+c5mt-\0\0\0\17o\bL)\ 1\0#q 7E7erU+H-\0\0\0\17o\bT)\ 1\0#q Tx2Su+Om-\0\0\0\17o\b\)\ 1\0#q vhpwPmcI-\0\0\0\17o\bd)\ 1\0#q eHwW7qx2-\0\0\0\17o\bl)\ 1\0#q 9oNMLvh0-\0\0\0\17o\bt)\ 1\0#q fHz44pNO-\0\0\0\17o\b|)\ 1\0#q DegO6ZME-\0\0\0\17o\b\84)\ 1\0#q IgYczrCT-\0\0\0\17o\b\8c)\ 1\0#q WdKk8MDF-\0\0\0\17o\b\94)\ 1\0#q GSiuOOdB-\0\0\0\17o\b\9c)\ 1\0#q zS1zZzVo-\0\0\0\17o\b¤)\ 1\0#q qio5kOTt-\0\0\0\17o\b¬)\ 1\0#q bKzi7aNM-\0\0\0\17o\b´)\ 1\0#q ZgoHKdbV-\0\0\0\17o\b¼)\ 1\0#q 9Dlq7N0h-\0\0\0\17o\bÄ)\ 1\0#q 523x9+6i-\0\0\0\17o\bÌ)\ 1\0#q 49cdHhy5-\0\0\0\17o\bÔ)\ 1\0#q L3Kdee8u-\0\0\0\17o\bÜ)\ 1\0#q Trlo5JI8-\0\0\0\17o\bä)\ 1\0#q MkRs0xx3-\0\0\0\17o\bì)\ 1\0#q Jy2Vtbxb-\0\0\0\17o\bô)\ 1\0#q ho8Fzs+R-\0\0\0\17o\bü)\ 1\0#q Yy555fVj-\0\0\0\17o\b\ 4*\ 1\0#q xRvjk17q-\0\0\0\17o\b\f*\ 1\0#q u+TeMhUN-\0\0\0\17o\b\14*\ 1\0#q SCJxOGSa-\0\0\0\17o\b\1c*\ 1\0#q XOJIampR-\0\0\0\17o\b$*\ 1\0#q OLhmaO2z-\0\0\0\17o\b,*\ 1\0#q c6CyY2kb-\0\0\0\17o\b4*\ 1\0#q d7PgiY9M-\0\0\0\17o\b<*\ 1\0#q kmm76s3T-\0\0\0\17o\bD*\ 1\0#q x7yp8fnf-\0\0\0\17o\bL*\ 1\0#q E1+NlrW6-\0\0\0\17o\bT*\ 1\0#q nhoz1fPX-\0\0\0\17o\b\*\ 1\0#q b3ymeTtu-\0\0\0\17o\bd*\ 1\0#q RGa89uIg-\0\0\0\17o\bl*\ 1\0#q ybYSRnch-\0\0\0\17o\bt*\ 1\0#q 0uU2n5K6-\0\0\0\17o\b|*\ 1\0#q nymfCrxs-\0\0\0\17o\b\84*\ 1\0#q nUc7yc9N-\0\0\0\17o\b\8c*\ 1\0#q gY+UCpqe-\0\0\0\17o\b\94*\ 1\0#q Mhw3YTjN-\0\0\0\17o\b\9c*\ 1\0#q ExOOB6Op-\0\0\0\17o\b¤*\ 1\0#q wmBt07D2-\0\0\0\17o\b¬*\ 1\0#q 7E2yOkgo-\0\0\0\17o\b´*\ 1\0#q 92SedsjG-\0\0\0\17o\b¼*\ 1\0#q Fb5T4cKH-\0\0\0\17o\bÄ*\ 1\0#q WuV2M8cF-\0\0\0\17o\bÌ*\ 1\0#q 8zMy4Fsu-\0\0\0\17o\bÔ*\ 1\0#q JXHLaRId-\0\0\0\17o\bÜ*\ 1\0#q imuHBprX-\0\0\0\17o\bä*\ 1\0#q H3TZTtjD-\0\0\0\17o\bì*\ 1\0#q i8eLZ0dK-\0\0\0\17o\bô*\ 1\0#q Hf427eFd-\0\0\0\17o\bü*\ 1\0#q KGF72Hen-\0\0\0\17o\b\ 4+\ 1\0#q vID6MMOn-\0\0\0\17o\b\f+\ 1\0#q bCLWNsgp-\0\0\0\17o\b\14+\ 1\0#q UEoZZG/v-\0\0\0\17o\b\1c+\ 1\0#q yoPxPnHd-\0\0\0\17o\b$+\ 1\0#q +D3Y+H3r-\0\0\0\17o\b,+\ 1\0#q pjqclZUi-\0\0\0\17o\b4+\ 1\0#q sODjFbL6-\0\0\0\17o\b<+\ 1\0#q 9xIOG+Qc-\0\0\0\17o\bD+\ 1\0#q lTpogxxw-\0\0\0\17o\bL+\ 1\0#q qNO9m2ni-\0\0\0\17o\bT+\ 1\0#q +V9vD2uz-\0\0\0\17o\b\+\ 1\0#q 1tpoxtt5-\0\0\0\17o\bd+\ 1\0#q t1PjrlVP-\0\0\0\17o\bl+\ 1\0#q hy7WwKnZ-\0\0\0\17o\bt+\ 1\0#q HuC3ruTK-\0\0\0\17o\b|+\ 1\0#q RLY2yUlq-\0\0\0\17o\b\84+\ 1\0#q GlKqWkiW-\0\0\0\17o\b\8c+\ 1\0#q y9iHnhPZ-\0\0\0\17o\b\94+\ 1\0#q O0rN94N2-\0\0\0\17o\b\9c+\ 1\0#q brW8hut0-\0\0\0\17o\b¤+\ 1\0#q yR51BrPK-\0\0\0\17o\b¬+\ 1\0#q Xs7JGxb5-\0\0\0\17o\b´+\ 1\0#q AnRiZTl2-\0\0\0\17o\b¼+\ 1\0#q Xq1hpiXy-\0\0\0\17o\bÄ+\ 1\0#q 8iczq1p0-\0\0\0\17o\bÌ+\ 1\0#q 4OUvW9g8-\0\0\0\17o\bÔ+\ 1\0#q WPrtcenx-\0\0\0\17o\bÜ+\ 1\0#q bXL58ic8-\0\0\0\17o\bä+\ 1\0#q LgbnL1I0-\0\0\0\17o\bì+\ 1\0#q m4MeNSM4-\0\0\0\17o\bô+\ 1\0#q zVJrWW9u-\0\0\0\17o\bü+\ 1\0#q I3DW3tqH-\0\0\0\17o\b\ 4,\ 1\0#q zluUwxR9-\0\0\0\17o\b\f,\ 1\0#q +s0Vc0hp-\0\0\0\17o\b\14,\ 1\0#q weORY4VO-\0\0\0\17o\b\1c,\ 1\0#q tNXbALUC-\0\0\0\17o\b$,\ 1\0#q yXLqNFcC-\0\0\0\17o\b,,\ 1\0#q R7xxw8jT-\0\0\0\17o\b4,\ 1\0#q kStO873D-\0\0\0\17o\b<,\ 1\0#q PfY017vH-\0\0\0\17o\bD,\ 1\0#q fEhE5xAu-\0\0\0\17o\bL,\ 1\0#q lh+U9Pt+-\0\0\0\17o\bT,\ 1\0#q W9++O/u0-\0\0\0\17o\b\,\ 1\0#q 5zeb4c7p-\0\0\0\17o\bd,\ 1\0#q zjRaWurt-\0\0\0\17o\bl,\ 1\0#q lU91y/Pj-\0\0\0\17o\bt,\ 1\0#q 38bnSo+8-\0\0\0\17o\b|,\ 1\0#q PfvF8I5S-\0\0\0\17o\b\84,\ 1\0#q NJ62aL20-\0\0\0\17o\b\8c,\ 1\0#q QZtJUXrr-\0\0\0\17o\b\94,\ 1\0#q TO3rYPXw-\0\0\0\17o\b\9c,\ 1\0#q +NeuFWme-\0\0\0\17o\b¤,\ 1\0#q vi1C41Gt-\0\0\0\17o\b¬,\ 1\0#q 1m2DMqHm-\0\0\0\17o\b´,\ 1\0#q ySGsXd4X-\0\0\0\17o\b¼,\ 1\0#q EMFkBpCU-\0\0\0\17o\bÄ,\ 1\0#q lZSTWAUm-\0\0\0\17o\bÌ,\ 1\0#q a5gWmZLE-\0\0\0\17o\bÔ,\ 1\0#q QcLCwtjR-\0\0\0\17o\bÜ,\ 1\0#q 0rZplkWr-\0\0\0\17o\bä,\ 1\0#q ZuMqsNpW-\0\0\0\17o\bì,\ 1\0#q rMyvBJ5/-\0\0\0\17o\bô,\ 1\0#q Gff5lT3F-\0\0\0\17o\bü,\ 1\0#q TnKql0x9-\0\0\0\17o\b\ 4-\ 1\0#q H4PU/DTX-\0\0\0\17o\b\f-\ 1\0#q OxAXime7-\0\0\0\17o\b\14-\ 1\0#q qULq7Dqo-\0\0\0\17o\b\1c-\ 1\0#q aFW7tVaV-\0\0\0\17o\b$-\ 1\0#q WymOAghD-\0\0\0\17o\b,-\ 1\0#q dEltpIww-\0\0\0\17o\b4-\ 1\0#q yIooHivf-\0\0\0\17o\b<-\ 1\0#q PjSHoqKy-\0\0\0\17o\bD-\ 1\0#q 0NCBIRpB-\0\0\0\17o\bL-\ 1\0#q IGQK8fXh-\0\0\0\17o\bT-\ 1\0#q PBpMTMhc-\0\0\0\17o\b\-\ 1\0#q 4OCJWMux-\0\0\0\17o\bd-\ 1\0#q lIYammJ2-\0\0\0\17o\bl-\ 1\0#q sgEEXEs8-\0\0\0\17o\bt-\ 1\0#q oDopthFp-\0\0\0\17o\b|-\ 1\0#q LOUlVTJV-\0\0\0\17o\b\84-\ 1\0#q AqKGFoiu-\0\0\0\17o\b\8c-\ 1\0#q fFmCKtsq-\0\0\0\17o\b\94-\ 1\0#q 1oM33uOW-\0\0\0\17o\b\9c-\ 1\0#q 59vV16cD-\0\0\0\17o\b¤-\ 1\0#q Svt7p7+u-\0\0\0\17o\b¬-\ 1\0#q 80IySXnV-\0\0\0\17o\b´-\ 1\0#q y5lF3Mz5-\0\0\0\17o\b¼-\ 1\0#q ZLDu9ZrD-\0\0\0\17o\bÄ-\ 1\0#q zoUPrekc-\0\0\0\17o\bÌ-\ 1\0#q 9Ie3XnPl-\0\0\0\17o\bÔ-\ 1\0#q ekWLviZo-\0\0\0\17o\bÜ-\ 1\0#q 7sWzm9WT-\0\0\0\17o\bä-\ 1\0#q 4r4vmvd4-\0\0\0\17o\bì-\ 1\0#q +Mn1zI9e-\0\0\0\17o\bô-\ 1\0#q advv8/FY-\0\0\0\17o\bü-\ 1\0#q v0fllb9O-\0\0\0\17o\b\ 4.\ 1\0#q dHfmF98c-\0\0\0\17o\b\f.\ 1\0#q xiihhSVR-\0\0\0\17o\b\14.\ 1\0#q BRSemqq3-\0\0\0\17o\b\1c.\ 1\0#q 2pgz4bzM-\0\0\0\17o\b$.\ 1\0#q D6OjNYam-\0\0\0\17o\b,.\ 1\0#q HHHp0WsL-\0\0\0\17o\b4.\ 1\0#q bYyKxZ3m-\0\0\0\17o\b<.\ 1\0#q LD52kY91-\0\0\0\17o\bD.\ 1\0#q zW6fPB9d-\0\0\0\17o\bL.\ 1\0#q GObcd2fP-\0\0\0\17o\bT.\ 1\0#q PjX0d4du-\0\0\0\17o\b\.\ 1\0#q 7bA4tvfm-\0\0\0\17o\bd.\ 1\0#q Szb6t9No-\0\0\0\17o\bl.\ 1\0#q uC2GU+LH-\0\0\0\17o\bt.\ 1\0#q HGJNXK4s-\0\0\0\17o\b|.\ 1\0#q 3xiY6Mfb-\0\0\0\17o\b\84.\ 1\0#q xT4Z83cZ-\0\0\0\17o\b\8c.\ 1\0#q UuZDLGk0-\0\0\0\17o\b\94.\ 1\0#q mY/Z/iHr-\0\0\0\17o\b\9c.\ 1\0#q RxSY3S1S-\0\0\0\17o\b¤.\ 1\0#q G9mvzS+b-\0\0\0\17o\b¬.\ 1\0#q vxc44Th6-\0\0\0\17o\b´.\ 1\0#q JqNHLLC4-\0\0\0\17o\b¼.\ 1\0#q ZR+p+Nfp-\0\0\0\17o\bÄ.\ 1\0#q U+sMTeHg-\0\0\0\17o\bÌ.\ 1\0#q a67ZI7LO-\0\0\0\17o\bÔ.\ 1\0#q 0gsjRa27-\0\0\0\17o\bÜ.\ 1\0#q 8NqHpyOH-\0\0\0\17o\bä.\ 1\0#q +PRsdMcq-\0\0\0\17o\bì.\ 1\0#q F5x65vjp-\0\0\0\17o\bô.\ 1\0#q 0KeJjqR4-\0\0\0\17o\bü.\ 1\0#q dknzo+Zs-\0\0\0\17o\b\ 4/\ 1\0#q le+oZmSN-\0\0\0\17o\b\f/\ 1\0#q f8ttztuT-\0\0\0\17o\b\14/\ 1\0#q Wnh+4V2f-\0\0\0\17o\b\1c/\ 1\0#q pXP02u7t-\0\0\0\17o\b$/\ 1\0#q tibExiUs-\0\0\0\17o\b,/\ 1\0#q NhbdfPzh-\0\0\0\17o\b4/\ 1\0#q 1+rQ09U+-\0\0\0\17o\b</\ 1\0#q enFtXS5q-\0\0\0\17o\bD/\ 1\0#q QkjjxMd8-\0\0\0\17o\bL/\ 1\0#q MkkY56cY-\0\0\0\17o\bT/\ 1\0#q wqZcb6vi-\0\0\0\17o\b\/\ 1\0#q 222vU9cy-\0\0\0\17o\bd/\ 1\0#q YersXMh7-\0\0\0\17o\bl/\ 1\0#q cOOI2Y7V-\0\0\0\17o\bt/\ 1\0#q iz6BNspa-\0\0\0\17o\b|/\ 1\0#q c/J9fjp3-\0\0\0\17o\b\84/\ 1\0#q RQw/gqpU-\0\0\0\17o\b\8c/\ 1\0#q 1kIPpx1m-\0\0\0\17o\b\94/\ 1\0#q bn6DEJI5-\0\0\0\17o\b\9c/\ 1\0#q wLjKElOj-\0\0\0\17o\b¤/\ 1\0#q 3z3XAvFr-\0\0\0\17o\b¬/\ 1\0#q +HD+fSn8-\0\0\0\17o\b´/\ 1\0#q rhs166dJ-\0\0\0\17o\b¼/\ 1\0#q p1CBw82P-\0\0\0\17o\bÄ/\ 1\0#q eVw26dIv-\0\0\0\17o\bÌ/\ 1\0#q 7MUi/KQb-\0\0\0\17o\bÔ/\ 1\0#q LXXHt4nP-\0\0\0\17o\bÜ/\ 1\0#q h0fSOYs3-\0\0\0\17o\bä/\ 1\0#q 5zI1WtZG-\0\0\0\17o\bì/\ 1\0#q rbfqaOvl-\0\0\0\17o\bô/\ 1\0#q Np6Vywni-\0\0\0\17o\bü/\ 1\0#q tCl7G/Rj-\0\0\0\17o\b\ 40\ 1\0#q ngwTGOXw-\0\0\0\17o\b\f0\ 1\0#q v3ThnnFF-\0\0\0\17o\b\140\ 1\0#q Db8PHJ2l-\0\0\0\17o\b\1c0\ 1\0#q L1vMzxiX-\0\0\0\17o\b$0\ 1\0#q S7Hci9P1-\0\0\0\17o\b,0\ 1\0#q 69PULTtp-\0\0\0\17o\b40\ 1\0#q 8MorSZB2-\0\0\0\17o\b<0\ 1\0#q 5VNA4Pw6-\0\0\0\17o\bD0\ 1\0#q X609+3Vz-\0\0\0\17o\bL0\ 1\0#q WTVcyRy2-\0\0\0\17o\bT0\ 1\0#q dbt8H177-\0\0\0\17o\b\0\ 1\0#q mEWSRvh8-\0\0\0\17o\bd0\ 1\0#q M+vSerjn-\0\0\0\17o\bl0\ 1\0#q x/SZfuZ0-\0\0\0\17o\bt0\ 1\0#q beIXSUuz-\0\0\0\17o\b|0\ 1\0#q na/Om+cz-\0\0\0\17o\b\840\ 1\0#q LbbbVfTz-\0\0\0\17o\b\8c0\ 1\0#q 54naAdd+-\0\0\0\17o\b\940\ 1\0#q pE26qa+j-\0\0\0\17o\b\9c0\ 1\0#q h4iOkG3g-\0\0\0\17o\b¤0\ 1\0#q +U1Fmjxm-\0\0\0\17o\b¬0\ 1\0#q GX6Gj40+-\0\0\0\17o\b´0\ 1\0#q jLEntyrI-\0\0\0\17o\b¼0\ 1\0#q n7/D+T8f-\0\0\0\17o\bÄ0\ 1\0#q y1+Pjjup-\0\0\0\17o\bÌ0\ 1\0#q Bc3CtbNu-\0\0\0\17o\bÔ0\ 1\0#q XO2tRdul-\0\0\0\17o\bÜ0\ 1\0#q Iu21ItGs-\0\0\0\17o\bä0\ 1\0#q L9ccDt6a-\0\0\0\17o\bì0\ 1\0#q EtrxfwXj-\0\0\0\17o\bô0\ 1\0#q qcDx58Hq-\0\0\0\17o\bü0\ 1\0#q qhesQkkF-\0\0\0\17o\b\ 41\ 1\0#q R5Hw5s+Y-\0\0\0\17o\b\f1\ 1\0#q 95rjxZ49-\0\0\0\17o\b\141\ 1\0#q Zxzzzs55-\0\0\0\17o\b\1c1\ 1\0#q zny5Y/Tr-\0\0\0\17o\b$1\ 1\0#q f42ninSh-\0\0\0\17o\b,1\ 1\0#q p2tC5Myk-\0\0\0\17o\b41\ 1\0#q PXPDq/HS-\0\0\0\17o\b<1\ 1\0#q uOcy/Hrg-\0\0\0\17o\bD1\ 1\0#q +uXOZjhw-\0\0\0\17o\bL1\ 1\0#q qpi7evQ+-\0\0\0\17o\bT1\ 1\0#q G3aueLbI-\0\0\0\17o\b\1\ 1\0#q W2pPLBOX-\0\0\0\17o\bd1\ 1\0#q PB2k0qeW-\0\0\0\17o\bl1\ 1\0#q cvH8dPX3-\0\0\0\17o\bt1\ 1\0#q 537NGVVj-\0\0\0\17o\b|1\ 1\0#q FVhhjKxl-\0\0\0\17o\b\841\ 1\0#q iVkqkjay-\0\0\0\17o\b\8c1\ 1\0#q ptqZq2S1-\0\0\0\17o\b\941\ 1\0#q WktJVZNt-\0\0\0\17o\b\9c1\ 1\0#q VJa0VtCm-\0\0\0\17o\b¤1\ 1\0#q 2mzbZsiN-\0\0\0\17o\b¬1\ 1\0#q NZVVSy2t-\0\0\0\17o\b´1\ 1\0#q i1tS2Sq3-\0\0\0\17o\b¼1\ 1\0#q md9hy463-\0\0\0\17o\bÄ1\ 1\0#q 8z5PHNMz-\0\0\0\17o\bÌ1\ 1\0#q Ix3IfMkD-\0\0\0\17o\bÔ1\ 1\0#q 8jgU/hev-\0\0\0\17o\bÜ1\ 1\0#q g0z6O9vr-\0\0\0\17o\bä1\ 1\0#q hfx2u0pd-\0\0\0\17o\bì1\ 1\0#q Xi4ooddn-\0\0\0\17o\bô1\ 1\0#q 1WwLTt3u-\0\0\0\17o\bü1\ 1\0#q 0dtfx13/-\0\0\0\17o\b\ 42\ 1\0#q DwegMQYQ-\0\0\0\17o\b\f2\ 1\0#q wdp85zgw-\0\0\0\17o\b\142\ 1\0#q AfA3hJq6-\0\0\0\17o\b\1c2\ 1\0#q 9eh7Lu7z-\0\0\0\17o\b$2\ 1\0#q LGHl5V6e-\0\0\0\17o\b,2\ 1\0#q ivCu1elH-\0\0\0\17o\b42\ 1\0#q unTwnjRy-\0\0\0\17o\b<2\ 1\0#q 61p714uT-\0\0\0\17o\bD2\ 1\0#q hUcOOcz8-\0\0\0\17o\bL2\ 1\0#q O1cqxabW-\0\0\0\17o\bT2\ 1\0#q OunLt5Rw-\0\0\0\17o\b\2\ 1\0#q 9iSJHt3F-\0\0\0\17o\bd2\ 1\0#q 3y3WWZdt-\0\0\0\17o\bl2\ 1\0#q ujHhx50i-\0\0\0\17o\bt2\ 1\0#q RPHtKach-\0\0\0\17o\b|2\ 1\0#q w2vnz8eK-\0\0\0\17o\b\842\ 1\0#q 369x98Ov-\0\0\0\17o\b\8c2\ 1\0#q hw2vztQt-\0\0\0\17o\b\942\ 1\0#q 4JRlnK9Q-\0\0\0\17o\b\9c2\ 1\0#q FCycOHEp-\0\0\0\17o\b¤2\ 1\0#q chMB0Ym5-\0\0\0\17o\b¬2\ 1\0#q SeIlIUMn-\0\0\0\17o\b´2\ 1\0#q PFcafA3k-\0\0\0\17o\b¼2\ 1\0#q lDSwWSTX-\0\0\0\17o\bÄ2\ 1\0#q 9VVFP3k/-\0\0\0\17o\bÌ2\ 1\0#q KQ0+nzF4-\0\0\0\17o\bÔ2\ 1\0#q rj5wtvAr-\0\0\0\17o\bÜ2\ 1\0#q h604+dqC-\0\0\0\17o\bä2\ 1\0#q N3Qjz0Vc-\0\0\0\17o\bì2\ 1\0#q qypVmrlX-\0\0\0\17o\bô2\ 1\0#q VlSVcqyi-\0\0\0\17o\bü2\ 1\0#q SeckRld1-\0\0\0\17o\b\ 43\ 1\0#q JlJlRlJB-\0\0\0\17o\b\f3\ 1\0#q zmlk1LS0-\0\0\0\17o\b\143\ 1\0#q RqoTfWN3-\0\0\0\17o\b\1c3\ 1\0#q vzzprfXj-\0\0\0\17o\b$3\ 1\0#q Y+ZUWT9c-\0\0\0\17o\b,3\ 1\0#q +ednqsvv-\0\0\0\17o\b43\ 1\0#q SSJCkAXp-\0\0\0\17o\b<3\ 1\0#q hQSFpCgX-\0\0\0\17o\bD3\ 1\0#q IwRJFQeP-\0\0\0\17o\bL3\ 1\0#q HfxpU2Op-\0\0\0\17o\bT3\ 1\0#q 7pg4ZhX8-\0\0\0\17o\b\3\ 1\0#q 0D8P0HcE-\0\0\0\17o\bd3\ 1\0#q +tvtafe0-\0\0\0\17o\bl3\ 1\0#q PslS2h6b-\0\0\0\17o\bt3\ 1\0#q EUphB+Tr-\0\0\0\17o\b|3\ 1\0#q t9zcMySl-\0\0\0\17o\b\843\ 1\0#q FfrXx8s6-\0\0\0\17o\b\8c3\ 1\0#q aKGUneDd-\0\0\0\17o\b\943\ 1\0#q fjQ99/yY-\0\0\0\17o\b\9c3\ 1\0#q fX7l9meC-\0\0\0\17o\b¤3\ 1\0#q DI/bvJDJ-\0\0\0\17o\b¬3\ 1\0#q AQgdu6Sz-\0\0\0\17o\b´3\ 1\0#q NW3eZlBQ-\0\0\0\17o\b¼3\ 1\0#q ykZoKrwo-\0\0\0\17o\bÄ3\ 1\0#q 37d0TaW2-\0\0\0\17o\bÌ3\ 1\0#q 0DnfHOPJ-\0\0\0\17o\bÔ3\ 1\0#q fg278Pvn-\0\0\0\17o\bÜ3\ 1\0#q Xg+re/l0-\0\0\0\17o\bä3\ 1\0#q U+vfj83Q-\0\0\0\17o\bì3\ 1\0#q mJIyIhDN-\0\0\0\17o\bô3\ 1\0#q 53JH5Px9-\0\0\0\17o\bü3\ 1\0#q XhPr2/DX-\0\0\0\17o\b\ 44\ 1\0#q cY+NzGJO-\0\0\0\17o\b\f4\ 1\0#q 6t1p8J77-\0\0\0\17o\b\144\ 1\0#q +GH2+xfb-\0\0\0\17o\b\1c4\ 1\0#q wXyN7S7y-\0\0\0\17o\b$4\ 1\0#q SU8e36Zc-\0\0\0\17o\b,4\ 1\0#q Y2cmX9Zq-\0\0\0\17o\b44\ 1\0#q JVTbyyJ9-\0\0\0\17o\b<4\ 1\0#q LNd2Hy9p-\0\0\0\17o\bD4\ 1\0#q FJjOJx48-\0\0\0\17o\bL4\ 1\0#q YJh9fxDD-\0\0\0\17o\bT4\ 1\0#q VU7nuPtj-\0\0\0\17o\b\4\ 1\0#q dzVxq402-\0\0\0\17o\bd4\ 1\0#q 5elJxy5k-\0\0\0\17o\bl4\ 1\0#q TGLIXu3J-\0\0\0\17o\bt4\ 1\0#q Dla90qnL-\0\0\0\17o\b|4\ 1\0#q mi/u/hOX-\0\0\0\17o\b\844\ 1\0#q SqnQu+mf-\0\0\0\17o\b\8c4\ 1\0#q lpHZt8sR-\0\0\0\17o\b\944\ 1\0#q qH7saHSS-\0\0\0\17o\b\9c4\ 1\0#q EQXU251X-\0\0\0\17o\b¤4\ 1\0#q wY4dOFRt-\0\0\0\17o\b¬4\ 1\0#q 18lS6cUn-\0\0\0\17o\b´4\ 1\0#q TgWreu+m-\0\0\0\17o\b¼4\ 1\0#q 18JO/Rkm-\0\0\0\17o\bÄ4\ 1\0#q YWb9Oofm-\0\0\0\17o\bÌ4\ 1\0#q aH1PPXk2-\0\0\0\17o\bÔ4\ 1\0#q 44ZeFEhw-\0\0\0\17o\bÜ4\ 1\0#q s+fI7ckn-\0\0\0\17o\bä4\ 1\0#q aR6D4fDd-\0\0\0\17o\bì4\ 1\0#q fBuITwr5-\0\0\0\17o\bô4\ 1\0#q +BweumnD-\0\0\0\17o\bü4\ 1\0#q tjA5GjvZ-\0\0\0\17o\b\ 45\ 1\0#q puOHS0si-\0\0\0\17o\b\f5\ 1\0#q Djw9vK9v-\0\0\0\17o\b\145\ 1\0#q VXw3M4ta-\0\0\0\17o\b\1c5\ 1\0#q kTts7Ric-\0\0\0\17o\b$5\ 1\0#q qcARg31R-\0\0\0\17o\b,5\ 1\0#q Q03CvXwC-\0\0\0\17o\b45\ 1\0#q POWh+DxP-\0\0\0\17o\b<5\ 1\0#q rrPL04oI-\0\0\0\17o\bD5\ 1\0#q 3S1HWXPL-\0\0\0\17o\bL5\ 1\0#q V28NsefH-\0\0\0\17o\bT5\ 1\0#q Eu5KGKEq-\0\0\0\17o\b\5\ 1\0#q e8NJPYLC-\0\0\0\17o\bd5\ 1\0#q CHQMJCQ7-\0\0\0\17o\bl5\ 1\0#q PR5y21rb-\0\0\0\17o\bt5\ 1\0#q PLh6zyKm-\0\0\0\17o\b|5\ 1\0#q 7rpxn60/-\0\0\0\17o\b\845\ 1\0#q GG3l6l0b-\0\0\0\17o\b\8c5\ 1\0#q Mqm2VCL8-\0\0\0\17o\b\945\ 1\0#q CsOWG2Qe-\0\0\0\17o\b\9c5\ 1\0#q 5VVUemVS-\0\0\0\17o\b¤5\ 1\0#q 2xUlz8FN-\0\0\0\17o\b¬5\ 1\0#q VTjEzB3g-\0\0\0\17o\b´5\ 1\0#q TsxNJ2NL-\0\0\0\17o\b¼5\ 1\0#q 8fkcfOEh-\0\0\0\17o\bÄ5\ 1\0#q UaCuYPW1-\0\0\0\17o\bÌ5\ 1\0#q wuNRLHrV-\0\0\0\17o\bÔ5\ 1\0#q BHPnUBbf-\0\0\0\17o\bÜ5\ 1\0#q GqqnLbx2-\0\0\0\17o\bä5\ 1\0#q unVlEqcf-\0\0\0\17o\bì5\ 1\0#q FU674T6+-\0\0\0\17o\bô5\ 1\0#q c8eHON8c-\0\0\0\17o\bü5\ 1\0#q bcPxnVY7-\0\0\0\17o\b\ 46\ 1\0#q 9dPSQXrj-\0\0\0\17o\b\f6\ 1\0#q j02ctOXI-\0\0\0\17o\b\146\ 1\0#q nljHDTac-\0\0\0\17o\b\1c6\ 1\0#q JEg5ZB5G-\0\0\0\17o\b$6\ 1\0#q NDvHrWNO-\0\0\0\17o\b,6\ 1\0#q quSOU5GH-\0\0\0\17o\b46\ 1\0#q gGIrXB8Q-\0\0\0\17o\b<6\ 1\0#q 3PTh49XF-\0\0\0\17o\bD6\ 1\0#q uZnMke3D-\0\0\0\17o\bL6\ 1\0#q Pi349tnT-\0\0\0\17o\bT6\ 1\0#q c2x78Zba-\0\0\0\17o\b\6\ 1\0#q bfvzMff1-\0\0\0\17o\bd6\ 1\0#q Q00qpoql-\0\0\0\17o\bl6\ 1\0#q PdKqaqUO-\0\0\0\17o\bt6\ 1\0#q bw73hT5r-\0\0\0\17o\b|6\ 1\0#q m2u3Djb9-\0\0\0\17o\b\846\ 1\0#q 2qrt3QRw-\0\0\0\17o\b\8c6\ 1\0#q acoV3xS8-\0\0\0\17o\b\946\ 1\0#q qpNypaaM-\0\0\0\17o\b\9c6\ 1\0#q 8CBy9599-\0\0\0\17o\b¤6\ 1\0#q F75+N8/O-\0\0\0\17o\b¬6\ 1\0#q M7xre29w-\0\0\0\17o\b´6\ 1\0#q +OXpOnjt-\0\0\0\17o\b¼6\ 1\0#q yeGSEgry-\0\0\0\17o\bÄ6\ 1\0#q pPNCAvLz-\0\0\0\17o\bÌ6\ 1\0#q gjvv0nE4-\0\0\0\17o\bÔ6\ 1\0#q N8L06x27-\0\0\0\17o\bÜ6\ 1\0#q SNPjUeRJ-\0\0\0\17o\bä6\ 1\0#q EjXk3zlz-\0\0\0\17o\bì6\ 1\0#q OGsVtiMq-\0\0\0\17o\bô6\ 1\0#q 9O5Hkcp2-\0\0\0\17o\bü6\ 1\0#q VPh8K+XJ-\0\0\0\17o\b\ 47\ 1\0#q 7XZx9Zvt-\0\0\0\17o\b\f7\ 1\0#q 531nPHGb-\0\0\0\17o\b\147\ 1\0#q 550jpsrv-\0\0\0\17o\b\1c7\ 1\0#q KpnZ7X18-\0\0\0\17o\b$7\ 1\0#q 2tPp4nB2-\0\0\0\17o\b,7\ 1\0#q m23Dj50a-\0\0\0\17o\b47\ 1\0#q +PuHwWvH-\0\0\0\17o\b<7\ 1\0#q vJzCvWfD-\0\0\0\17o\bD7\ 1\0#q 1elNOsfN-\0\0\0\17o\bL7\ 1\0#q SEgw75bT-\0\0\0\17o\bT7\ 1\0#q bwkkc524-\0\0\0\17o\b\7\ 1\0#q 10eGuLbz-\0\0\0\17o\bd7\ 1\0#q mZkZvvVm-\0\0\0\17o\bl7\ 1\0#q tPrz195l-\0\0\0\17o\bt7\ 1\0#q SMXTdO+G-\0\0\0\17o\b|7\ 1\0#q vWa25VN0-\0\0\0\17o\b\847\ 1\0#q UMpetNG+-\0\0\0\17o\b\8c7\ 1\0#q NwU07IY+-\0\0\0\17o\b\947\ 1\0#q Tmk5PCX1-\0\0\0\17o\b\9c7\ 1\0#q drtxw6Vw-\0\0\0\17o\b¤7\ 1\0#q lEnsyq9F-\0\0\0\17o\b¬7\ 1\0#q xYhCRtIh-\0\0\0\17o\b´7\ 1\0#q PTOT09a7-\0\0\0\17o\b¼7\ 1\0#q ZutZpiLA-\0\0\0\17o\bÄ7\ 1\0#q 6pDtYY3V-\0\0\0\17o\bÌ7\ 1\0#q 5igfFU4z-\0\0\0\17o\bÔ7\ 1\0#q U4brTy7e-\0\0\0\17o\bÜ7\ 1\0#q jat64Qej-\0\0\0\17o\bä7\ 1\0#q h0SJHTST-\0\0\0\17o\bì7\ 1\0#q Z3u3h212-\0\0\0\17o\bô7\ 1\0#q EB3mgeek-\0\0\0\17o\bü7\ 1\0#q TleTDmSO-\0\0\0\17o\b\ 48\ 1\0#q OVnfrh6P-\0\0\0\17o\b\f8\ 1\0#q Y8ntJJ7P-\0\0\0\17o\b\148\ 1\0#q r2KTqnMO-\0\0\0\17o\b\1c8\ 1\0#q Ybga2Jzn-\0\0\0\17o\b$8\ 1\0#q ETGW1bGq-\0\0\0\17o\b,8\ 1\0#q mrY4zLwt-\0\0\0\17o\b48\ 1\0#q 8niQD18x-\0\0\0\17o\b<8\ 1\0#q ElWURb94-\0\0\0\17o\bD8\ 1\0#q FyqjnAZ3-\0\0\0\17o\bL8\ 1\0#q z6YJ1iOc-\0\0\0\17o\bT8\ 1\0#q C2nMPuqL-\0\0\0\17o\b\8\ 1\0#q NVQhSiLL-\0\0\0\17o\bd8\ 1\0#q qoyCroXV-\0\0\0\17o\bl8\ 1\0#q +YwVxq9c-\0\0\0\17o\bt8\ 1\0#q ddcOZJtS-\0\0\0\17o\b|8\ 1\0#q 0iqScZGJ-\0\0\0\17o\b\848\ 1\0#q bLQOBQXO-\0\0\0\17o\b\8c8\ 1\0#q HE9q+9mb-\0\0\0\17o\b\948\ 1\0#q o5znrM8c-\0\0\0\17o\b\9c8\ 1\0#q rxzyCVKh-\0\0\0\17o\b¤8\ 1\0#q GIK9qoKp-\0\0\0\17o\b¬8\ 1\0#q R4L0FF29-\0\0\0\17o\b´8\ 1\0#q epznKxmh-\0\0\0\17o\b¼8\ 1\0#q KoosQGVD-\0\0\0\17o\bÄ8\ 1\0#q U2h3Ay47-\0\0\0\17o\bÌ8\ 1\0#q SFIJE+nw-\0\0\0\17o\bÔ8\ 1\0#q 88FX5l03-\0\0\0\17o\bÜ8\ 1\0#q vzu+Jfbr-\0\0\0\17o\bä8\ 1\0#q zePF0kBS-\0\0\0\17o\bì8\ 1\0#q ZvDVsr5K-\0\0\0\17o\bô8\ 1\0#q aIWZmJzq-\0\0\0\17o\bü8\ 1\0#q UoIpQrMh-\0\0\0\17o\b\ 49\ 1\0#q ASe/z86c-\0\0\0\17o\b\f9\ 1\0#q 6HyL3Zqe-\0\0\0\17o\b\149\ 1\0#q zLvn2w0+-\0\0\0\17o\b\1c9\ 1\0#q aVZ7vTMR-\0\0\0\17o\b$9\ 1\0#q FUZPLRe7-\0\0\0\17o\b,9\ 1\0#q Rk+Uox4X-\0\0\0\17o\b49\ 1\0#q rFfp8/Xz-\0\0\0\17o\b<9\ 1\0#q 18+/jybi-\0\0\0\17o\bD9\ 1\0#q Rw7VvURT-\0\0\0\17o\bL9\ 1\0#q 5MeVT3Td-\0\0\0\17o\bT9\ 1\0#q 4+Ma5xHF-\0\0\0\17o\b\9\ 1\0#q TVt3xxqc-\0\0\0\17o\bd9\ 1\0#q ror7cx5c-\0\0\0\17o\bl9\ 1\0#q ZbWPo78+-\0\0\0\17o\bt9\ 1\0#q Fcp3j1jC-\0\0\0\17o\b|9\ 1\0#q SRIxTy4+-\0\0\0\17o\b\849\ 1\0#q XByxM192-\0\0\0\17o\b\8c9\ 1\0#q To8aO6en-\0\0\0\17o\b\949\ 1\0#q Dlp8Tpwn-\0\0\0\17o\b\9c9\ 1\0#q p5LwvE56-\0\0\0\17o\b¤9\ 1\0#q l2zffqYl-\0\0\0\17o\b¬9\ 1\0#q RPPQ4gQy-\0\0\0\17o\b´9\ 1\0#q wiSLYYac-\0\0\0\17o\b¼9\ 1\0#q vPXtw/DH-\0\0\0\17o\bÄ9\ 1\0#q ocyrt2j0-\0\0\0\17o\bÌ9\ 1\0#q e/enNm57-\0\0\0\17o\bÔ9\ 1\0#q m0qsB8Yr-\0\0\0\17o\bÜ9\ 1\0#q RH1Lrhwg-\0\0\0\17o\bä9\ 1\0#q i85HTIVi-\0\0\0\17o\bì9\ 1\0#q qnpHjX5o-\0\0\0\17o\bô9\ 1\0#q dbWnqdJN-\0\0\0\17o\bü9\ 1\0#q pywNzy5F-\0\0\0\17o\b\ 4:\ 1\0#q 55CTpz3b-\0\0\0\17o\b\f:\ 1\0#q Offvji3G-\0\0\0\17o\b\14:\ 1\0#q WujD788z-\0\0\0\17o\b\1c:\ 1\0#q PCvnTt/r-\0\0\0\17o\b$:\ 1\0#q 5SH4mbMv-\0\0\0\17o\b,:\ 1\0#q Vznmrtcu-\0\0\0\17o\b4:\ 1\0#q fVxUd3tF-\0\0\0\17o\b<:\ 1\0#q D8H+XCVA-\0\0\0\17o\bD:\ 1\0#q 9+aArHR5-\0\0\0\17o\bL:\ 1\0#q t2MPNpfF-\0\0\0\17o\bT:\ 1\0#q spyylwe0-\0\0\0\17o\b\:\ 1\0#q mEjs5oJO-\0\0\0\17o\bd:\ 1\0#q vfjxfnnN-\0\0\0\17o\bl:\ 1\0#q XNbdJPJ5-\0\0\0\17o\bt:\ 1\0#q YcaYgXzE-\0\0\0\17o\b|:\ 1\0#q bNNe/DNp-\0\0\0\17o\b\84:\ 1\0#q S95PXWbX-\0\0\0\17o\b\8c:\ 1\0#q Lj5me++l-\0\0\0\17o\b\94:\ 1\0#q riwkeI4c-\0\0\0\17o\b\9c:\ 1\0#q k6bca2nH-\0\0\0\17o\b¤:\ 1\0#q auuzfPTy-\0\0\0\17o\b¬:\ 1\0#q rxRXIm23-\0\0\0\17o\b´:\ 1\0#q TPacNjaj-\0\0\0\17o\b¼:\ 1\0#q fNUa97T7-\0\0\0\17o\bÄ:\ 1\0#q 54q3c0rP-\0\0\0\17o\bÌ:\ 1\0#q IE5Nere/-\0\0\0\17o\bÔ:\ 1\0#q DaZzyBPT-\0\0\0\17o\bÜ:\ 1\0#q HL667M6Y-\0\0\0\17o\bä:\ 1\0#q MUiwUw84-\0\0\0\17o\bì:\ 1\0#q c4W+5rlf-\0\0\0\17o\bô:\ 1\0#q VR6zxCza-\0\0\0\17o\bü:\ 1\0#q eKly9x9x-\0\0\0\17o\b\ 4;\ 1\0#q 6DhaooPI-\0\0\0\17o\b\f;\ 1\0#q 1CNpPHVt-\0\0\0\17o\b\14;\ 1\0#q q129Z3bp-\0\0\0\17o\b\1c;\ 1\0#q zpOM14nh-\0\0\0\17o\b$;\ 1\0#q w8c8mvgV-\0\0\0\17o\b,;\ 1\0#q GdYiu3n1-\0\0\0\17o\b4;\ 1\0#q jtni6FPT-\0\0\0\17o\b<;\ 1\0#q xEt8uOLV-\0\0\0\17o\bD;\ 1\0#q AnqxzGvU-\0\0\0\17o\bL;\ 1\0#q 4XXlc09E-\0\0\0\17o\bT;\ 1\0#q DkrS68VH-\0\0\0\17o\b\;\ 1\0#q EuLovfh0-\0\0\0\17o\bd;\ 1\0#q kKjn16nx-\0\0\0\17o\bl;\ 1\0#q 2624KnuS-\0\0\0\17o\bt;\ 1\0#q nHXYVkIp-\0\0\0\17o\b|;\ 1\0#q rh8uKrXk-\0\0\0\17o\b\84;\ 1\0#q xp5Z3aqc-\0\0\0\17o\b\8c;\ 1\0#q aeE59GkS-\0\0\0\17o\b\94;\ 1\0#q J0a8drt6-\0\0\0\17o\b\9c;\ 1\0#q aX+06Y9W-\0\0\0\17o\b¤;\ 1\0#q 1WYqdPi+-\0\0\0\17o\b¬;\ 1\0#q di9Pw6ev-\0\0\0\17o\b´;\ 1\0#q m8zGnrTz-\0\0\0\17o\b¼;\ 1\0#q vvv+GSuG-\0\0\0\17o\bÄ;\ 1\0#q 79/XDiov-\0\0\0\17o\bÌ;\ 1\0#q H0qepaxP-\0\0\0\17o\bÔ;\ 1\0#q YPTbhXBj-\0\0\0\17o\bÜ;\ 1\0#q 1xR4w6Tg-\0\0\0\17o\bä;\ 1\0#q 6NcOybV4-\0\0\0\17o\bì;\ 1\0#q +Om+3X41-\0\0\0\17o\bô;\ 1\0#q ItLvfGlU-\0\0\0\17o\bü;\ 1\0#q 341TWO2R-\0\0\0\17o\b\ 4<\ 1\0#q 7tSuZO+O-\0\0\0\17o\b\f<\ 1\0#q 3asyajzI-\0\0\0\17o\b\14<\ 1\0#q ENvnh5J4-\0\0\0\17o\b\1c<\ 1\0#q Xw8OuDlf-\0\0\0\17o\b$<\ 1\0#q BN8GUCx4-\0\0\0\17o\b,<\ 1\0#q 420ZVU52-\0\0\0\17o\b4<\ 1\0#q z250coXT-\0\0\0\17o\b<<\ 1\0#q ppy6fELl-\0\0\0\17o\bD<\ 1\0#q 7Rjpy+nP-\0\0\0\17o\bL<\ 1\0#q x28cG3ng-\0\0\0\17o\bT<\ 1\0#q 7sNCRkis-\0\0\0\17o\b\<\ 1\0#q Ee3Ltzt6-\0\0\0\17o\bd<\ 1\0#q 2dtbszTg-\0\0\0\17o\bl<\ 1\0#q XpLw27eP-\0\0\0\17o\bt<\ 1\0#q vRw+vlFc-\0\0\0\17o\b|<\ 1\0#q KR0ekbTa-\0\0\0\17o\b\84<\ 1\0#q MSHDJB5e-\0\0\0\17o\b\8c<\ 1\0#q nZ8vLbTt-\0\0\0\17o\b\94<\ 1\0#q 78dG25fC-\0\0\0\17o\b\9c<\ 1\0#q wkJ//etW-\0\0\0\17o\b¤<\ 1\0#q 1scxPdFs-\0\0\0\17o\b¬<\ 1\0#q VVsi0tFq-\0\0\0\17o\b´<\ 1\0#q S177RsuX-\0\0\0\17o\b¼<\ 1\0#q JMklSkhr-\0\0\0\17o\bÄ<\ 1\0#q EjSwORa5-\0\0\0\17o\bÌ<\ 1\0#q 3WlxTnZf-\0\0\0\17o\bÔ<\ 1\0#q jFJJ8qqY-\0\0\0\17o\bÜ<\ 1\0#q tJkGIYaQ-\0\0\0\17o\bä<\ 1\0#q X+CRXd/3-\0\0\0\17o\bì<\ 1\0#q dKH8uAJ8-\0\0\0\17o\bô<\ 1\0#q Y9cu+OcS-\0\0\0\17o\bü<\ 1\0#q SPAL6Gs3-\0\0\0\17o\b\ 4=\ 1\0#q 36Z468Zz-\0\0\0\17o\b\f=\ 1\0#q vNxQRIyX-\0\0\0\17o\b\14=\ 1\0#q t3dm7s0S-\0\0\0\17o\b\1c=\ 1\0#q AwKIJ5wE-\0\0\0\17o\b$=\ 1\0#q k8AwcCHF-\0\0\0\17o\b,=\ 1\0#q znBwg8o1-\0\0\0\17o\b4=\ 1\0#q kzNO72t3-\0\0\0\17o\b<=\ 1\0#q vAPY+sfn-\0\0\0\17o\bD=\ 1\0#q gZ9dFb0o-\0\0\0\17o\bL=\ 1\0#q +X4H6XmW-\0\0\0\17o\bT=\ 1\0#q neYezTTi-\0\0\0\17o\b\=\ 1\0#q KIZ4CUUD-\0\0\0\17o\bd=\ 1\0#q 4QEQCdPG-\0\0\0\17o\bl=\ 1\0#q mwTwkyTa-\0\0\0\17o\bt=\ 1\0#q XmJ2d+i8-\0\0\0\17o\b|=\ 1\0#q PAPAvDjE-\0\0\0\17o\b\84=\ 1\0#q Repd2Z2U-\0\0\0\17o\b\8c=\ 1\0#q tFeZqfop-\0\0\0\17o\b\94=\ 1\0#q Oh7VAjAe-\0\0\0\17o\b\9c=\ 1\0#q Q8BPpenx-\0\0\0\17o\b¤=\ 1\0#q xACAkEQh-\0\0\0\17o\b¬=\ 1\0#q EExObQ9X-\0\0\0\17o\b´=\ 1\0#q lR+e37Iw-\0\0\0\17o\b¼=\ 1\0#q 1mN+ICD3-\0\0\0\17o\bÄ=\ 1\0#q 4z4TEzKK-\0\0\0\17o\bÌ=\ 1\0#q dyQ5oUQn-\0\0\0\17o\bÔ=\ 1\0#q sRgHH1l1-\0\0\0\17o\bÜ=\ 1\0#q ker09IZ4-\0\0\0\17o\bä=\ 1\0#q KIqyrFUO-\0\0\0\17o\bì=\ 1\0#q LmqZbKLY-\0\0\0\17o\bô=\ 1\0#q UGaGAgOc-\0\0\0\17o\bü=\ 1\0#q GgdbwVvR-\0\0\0\17o\b\ 4>\ 1\0#q ho1lbYNU-\0\0\0\17o\b\f>\ 1\0#q cdPj1zU4-\0\0\0\17o\b\14>\ 1\0#q ogY7l1Tx-\0\0\0\17o\b\1c>\ 1\0#q fNNPT+zP-\0\0\0\17o\b$>\ 1\0#q 92ta1Xu6-\0\0\0\17o\b,>\ 1\0#q TpY6QeIS-\0\0\0\17o\b4>\ 1\0#q M9/hrny5-\0\0\0\17o\b<>\ 1\0#q 9kjOErh+-\0\0\0\17o\bD>\ 1\0#q Ht2BPj57-\0\0\0\17o\bL>\ 1\0#q 6L5BzgoC-\0\0\0\17o\bT>\ 1\0#q DQAx6HNq-\0\0\0\17o\b\>\ 1\0#q d9+Dyvbt-\0\0\0\17o\bd>\ 1\0#q 27Lq3osA-\0\0\0\17o\bl>\ 1\0#q uFDt/Zv5-\0\0\0\17o\bt>\ 1\0#q zu78vxMX-\0\0\0\17o\b|>\ 1\0#q Pz5rDDqp-\0\0\0\17o\b\84>\ 1\0#q 1z+Pi2nh-\0\0\0\17o\b\8c>\ 1\0#q zxuQkFAn-\0\0\0\17o\b\94>\ 1\0#q qvWm2HD0-\0\0\0\17o\b\9c>\ 1\0#q 9db9dvJv-\0\0\0\17o\b¤>\ 1\0#q pZ775mY/-\0\0\0\17o\b¬>\ 1\0#q Nd5n5du3-\0\0\0\17o\b´>\ 1\0#q 4vVU6F+N-\0\0\0\17o\b¼>\ 1\0#q +jTb5Ses-\0\0\0\17o\bÄ>\ 1\0#q ToqJfaen-\0\0\0\17o\bÌ>\ 1\0#q DXwdO+bu-\0\0\0\17o\bÔ>\ 1\0#q 81I8knny-\0\0\0\17o\bÜ>\ 1\0#q 2dLk+lPt-\0\0\0\17o\bä>\ 1\0#q FD493Hx7-\0\0\0\17o\bì>\ 1\0#q 0x8+ZnD/-\0\0\0\17o\bô>\ 1\0#q LrkygIFr-\0\0\0\17o\bü>\ 1\0#q 4AcZGrTD-\0\0\0\17o\b\ 4?\ 1\0#q QcMwVWSB-\0\0\0\17o\b\f?\ 1\0#q UIKC4cSt-\0\0\0\17o\b\14?\ 1\0#q oBZZEzt+-\0\0\0\17o\b\1c?\ 1\0#q 9tptwYhb-\0\0\0\17o\b$?\ 1\0#q UixKXVLS-\0\0\0\17o\b,?\ 1\0#q o3XvhOmi-\0\0\0\17o\b4?\ 1\0#q pnoTQ+XB-\0\0\0\17o\b<?\ 1\0#q JCdfHJ8r-\0\0\0\17o\bD?\ 1\0#q 47yZmPlN-\0\0\0\17o\bL?\ 1\0#q tp88W+Hn-\0\0\0\17o\bT?\ 1\0#q zreZnj2d-\0\0\0\17o\b\?\ 1\0#q X2cPfT3z-\0\0\0\17o\bd?\ 1\0#q CQm3ifI8-\0\0\0\17o\bl?\ 1\0#q tvCeDfBN-\0\0\0\17o\bt?\ 1\0#q nl0nnzDy-\0\0\0\17o\b|?\ 1\0#q nndrPNOb-\0\0\0\17o\b\84?\ 1\0#q jUhIM70k-\0\0\0\17o\b\8c?\ 1\0#q +Phvzu5n-\0\0\0\17o\b\94?\ 1\0#q iebfbE8N-\0\0\0\17o\b\9c?\ 1\0#q Y1HHuJBz-\0\0\0\17o\b¤?\ 1\0#q qbt41px6-\0\0\0\17o\b¬?\ 1\0#q TjT2wnuO-\0\0\0\17o\b´?\ 1\0#q fnskTlZw-\0\0\0\17o\b¼?\ 1\0#q enlVTqj+-\0\0\0\17o\bÄ?\ 1\0#q HnLFtEu3-\0\0\0\17o\bÌ?\ 1\0#q oQOnRi96-\0\0\0\17o\bÔ?\ 1\0#q VHqH1D1c-\0\0\0\17o\bÜ?\ 1\0#q +g/IZ9nQ-\0\0\0\17o\bä?\ 1\0#q p1cZlfv1-\0\0\0\17o\bì?\ 1\0#q 606UPjEU-\0\0\0\17o\bô?\ 1\0#q Vw/C6dh+-\0\0\0\17o\bü?\ 1\0#q Pz4Dro+b-\0\0\0\17o\b\ 4@\ 1\0#q IdOl2OTP-\0\0\0\17o\b\f@\ 1\0#q vLTZ5+7/-\0\0\0\17o\b\14@\ 1\0#q XSX29Bv0-\0\0\0\17o\b\1c@\ 1\0#q PSCdHY28-\0\0\0\17o\b$@\ 1\0#q GJ5eY3dd-\0\0\0\17o\b,@\ 1\0#q XvTet3d8-\0\0\0\17o\b4@\ 1\0#q H187Yn31-\0\0\0\17o\b<@\ 1\0#q vrt8fNKu-\0\0\0\17o\bD@\ 1\0#q 1D4+cOuX-\0\0\0\17o\bL@\ 1\0#q InT13p65-\0\0\0\17o\bT@\ 1\0#q ql8fJv74-\0\0\0\17o\b\@\ 1\0#q 217Pm/vX-\0\0\0\17o\bd@\ 1\0#q bqk3Ntnk-\0\0\0\17o\bl@\ 1\0#q qrqnTkK7-\0\0\0\17o\bt@\ 1\0#q wpfdhA+r-\0\0\0\17o\b|@\ 1\0#q 975xmcNI-\0\0\0\17o\b\84@\ 1\0#q p7Twznji-\0\0\0\17o\b\8c@\ 1\0#q evTlp74w-\0\0\0\17o\b\94@\ 1\0#q 9peduGxX-\0\0\0\17o\b\9c@\ 1\0#q iNdczaym-\0\0\0\17o\b¤@\ 1\0#q NYnPSSSS-\0\0\0\17o\b¬@\ 1\0#q FdH57db5-\0\0\0\17o\b´@\ 1\0#q cA+GzcQe-\0\0\0\17o\b¼@\ 1\0#q EkOBjPVe-\0\0\0\17o\bÄ@\ 1\0#q ntzlrtHQ-\0\0\0\17o\bÌ@\ 1\0#q fBtWJ18U-\0\0\0\17o\bÔ@\ 1\0#q Ib3yjguw-\0\0\0\17o\bÜ@\ 1\0#q w+BUcg8J-\0\0\0\17o\bä@\ 1\0#q 5eHbljZU-\0\0\0\17o\bì@\ 1\0#q 09Ja1euO-\0\0\0\17o\bô@\ 1\0#q jrmjp59o-\0\0\0\17o\bü@\ 1\0#q oZ2hzKN2-\0\0\0\17o\b\ 4A\ 1\0#q Qay4mLA1-\0\0\0\17o\b\fA\ 1\0#q pTOLMipV-\0\0\0\17o\b\14A\ 1\0#q kiB0k7w4-\0\0\0\17o\b\1cA\ 1\0#q rISoDm5v-\0\0\0\17o\b$A\ 1\0#q GxYTTI8y-\0\0\0\17o\b,A\ 1\0#q mFxmtm+O-\0\0\0\17o\b4A\ 1\0#q GuNY5ZPb-\0\0\0\17o\b<A\ 1\0#q cqyxJP8q-\0\0\0\17o\bDA\ 1\0#q LkqcrsuN-\0\0\0\17o\bLA\ 1\0#q XvVCjgr1-\0\0\0\17o\bTA\ 1\0#q Q3zy6o5T-\0\0\0\17o\b\A\ 1\0#q 0ZznGJlV-\0\0\0\17o\bdA\ 1\0#q eY1Td52q-\0\0\0\17o\blA\ 1\0#q u2m5V2aq-\0\0\0\17o\btA\ 1\0#q 1GXbu10d-\0\0\0\17o\b|A\ 1\0#q dY3rOrpy-\0\0\0\17o\b\84A\ 1\0#q 0u3G0gaI-\0\0\0\17o\b\8cA\ 1\0#q oCqoGaZw-\0\0\0\17o\b\94A\ 1\0#q MADnKp1u-\0\0\0\17o\b\9cA\ 1\0#q p7vrdzvS-\0\0\0\17o\b¤A\ 1\0#q Oe91CCUr-\0\0\0\17o\b¬A\ 1\0#q W9pWJcng-\0\0\0\17o\b´A\ 1\0#q yfSVtIng-\0\0\0\17o\b¼A\ 1\0#q w8zxCUFz-\0\0\0\17o\bÄA\ 1\0#q pAJs+tb5-\0\0\0\17o\bÌA\ 1\0#q Zsn1j4Dp-\0\0\0\17o\bÔA\ 1\0#q 7628zYe6-\0\0\0\17o\bÜA\ 1\0#q Rgm2wa9F-\0\0\0\17o\bäA\ 1\0#q Yc1vkPNM-\0\0\0\17o\bìA\ 1\0#q B5NQ8Ic3-\0\0\0\17o\bôA\ 1\0#q l160dXv1-\0\0\0\17o\büA\ 1\0#q c6zek8W9-\0\0\0\17o\b\ 4B\ 1\0#q yRs1O1TS-\0\0\0\17o\b\fB\ 1\0#q z1rN1Ehw-\0\0\0\17o\b\14B\ 1\0#q klOMD2NG-\0\0\0\17o\b\1cB\ 1\0#q X6ryTXTq-\0\0\0\17o\b$B\ 1\0#q gq+B6Y+T-\0\0\0\17o\b,B\ 1\0#q GD0AgzsO-\0\0\0\17o\b4B\ 1\0#q 3XvudNp0-\0\0\0\17o\b<B\ 1\0#q bcBy7fAS-\0\0\0\17o\bDB\ 1\0#q eOUcunRo-\0\0\0\17o\bLB\ 1\0#q 167Ew2GN-\0\0\0\17o\bTB\ 1\0#q nFZG/O7e-\0\0\0\17o\b\B\ 1\0#q EsenI5SH-\0\0\0\17o\bdB\ 1\0#q rvvWZ2ad-\0\0\0\17o\blB\ 1\0#q dPjD+Ttf-\0\0\0\17o\btB\ 1\0#q XdODuwvq-\0\0\0\17o\b|B\ 1\0#q 5huPLaOD-\0\0\0\17o\b\84B\ 1\0#q CtE0ntOn-\0\0\0\17o\b\8cB\ 1\0#q L4e8t7dJ-\0\0\0\17o\b\94B\ 1\0#q 5M07bNC1-\0\0\0\17o\b\9cB\ 1\0#q FSRtpsdz-\0\0\0\17o\b¤B\ 1\0#q zppPfI7d-\0\0\0\17o\b¬B\ 1\0#q xw1640x8-\0\0\0\17o\b´B\ 1\0#q bjJekxsa-\0\0\0\17o\b¼B\ 1\0#q 5Y8VNtjE-\0\0\0\17o\bÄB\ 1\0#q cBtCWwcl-\0\0\0\17o\bÌB\ 1\0#q ZTbCJcD8-\0\0\0\17o\bÔB\ 1\0#q HrfbHN5K-\0\0\0\17o\bÜB\ 1\0#q HTo4Fp81-\0\0\0\17o\bäB\ 1\0#q 9fe92ONY-\0\0\0\17o\bìB\ 1\0#q 4erddMSl-\0\0\0\17o\bôB\ 1\0#q 2w76PG6t-\0\0\0\17o\büB\ 1\0#q cHtZwrlP-\0\0\0\17o\b\ 4C\ 1\0#q XKVGjFac-\0\0\0\17o\b\fC\ 1\0#q 1j+rOTbp-\0\0\0\17o\b\14C\ 1\0#q 5jOXJwuP-\0\0\0\17o\b\1cC\ 1\0#q 10ofsoU9-\0\0\0\17o\b$C\ 1\0#q Td33dv3n-\0\0\0\17o\b,C\ 1\0#q 1t2cqdfj-\0\0\0\17o\b4C\ 1\0#q 9Pvyqk2e-\0\0\0\17o\b<C\ 1\0#q fPmZ48XT-\0\0\0\17o\bDC\ 1\0#q l0KlODvM-\0\0\0\17o\bLC\ 1\0#q 5h0nx+Mf-\0\0\0\17o\bTC\ 1\0#q dEOnxtt8-\0\0\0\17o\b\C\ 1\0#q 6WaVU/eu-\0\0\0\17o\bdC\ 1\0#q cz4+eu3Z-\0\0\0\17o\blC\ 1\0#q VKY+v3r8-\0\0\0\17o\btC\ 1\0#q 50xVTdad-\0\0\0\17o\b|C\ 1\0#q rjormihy-\0\0\0\17o\b\84C\ 1\0#q N/evHXTl-\0\0\0\17o\b\8cC\ 1\0#q OFR1cY65-\0\0\0\17o\b\94C\ 1\0#q NTCcRp8F-\0\0\0\17o\b\9cC\ 1\0#q enYLLIlU-\0\0\0\17o\b¤C\ 1\0#q W8sJOnpS-\0\0\0\17o\b¬C\ 1\0#q cPWt7tZI-\0\0\0\17o\b´C\ 1\0#q JtsSOmHB-\0\0\0\17o\b¼C\ 1\0#q 33atvt8e-\0\0\0\17o\bÄC\ 1\0#q F2+HHiQg-\0\0\0\17o\bÌC\ 1\0#q NCRxrt5e-\0\0\0\17o\bÔC\ 1\0#q jjpt8Lh0-\0\0\0\17o\bÜC\ 1\0#q U4HvntHL-\0\0\0\17o\bäC\ 1\0#q tejv64Wu-\0\0\0\17o\bìC\ 1\0#q Yovx4cvj-\0\0\0\17o\bôC\ 1\0#q udsIfUUV-\0\0\0\17o\büC\ 1\0#q 5bOXl6xX-\0\0\0\17o\b\ 4D\ 1\0#q KF8KXjpP-\0\0\0\17o\b\fD\ 1\0#q vQ+fOmXa-\0\0\0\17o\b\14D\ 1\0#q o1fF8OIm-\0\0\0\17o\b\1cD\ 1\0#q Wnu/i1at-\0\0\0\17o\b$D\ 1\0#q r4deV54z-\0\0\0\17o\b,D\ 1\0#q S60z0kRU-\0\0\0\17o\b4D\ 1\0#q kUeKm8Hi-\0\0\0\17o\b<D\ 1\0#q jJ0r4pFq-\0\0\0\17o\bDD\ 1\0#q 7Fh+ZW0p-\0\0\0\17o\bLD\ 1\0#q aNBfXr10-\0\0\0\17o\bTD\ 1\0#q NlfrR027-\0\0\0\17o\b\D\ 1\0#q 8/Td06Kx-\0\0\0\17o\bdD\ 1\0#q n1/HSm+H-\0\0\0\17o\blD\ 1\0#q 8Kqdsseb-\0\0\0\17o\btD\ 1\0#q vr9V00fg-\0\0\0\17o\b|D\ 1\0#q Px9owrAz-\0\0\0\17o\b\84D\ 1\0#q k/h42KL1-\0\0\0\17o\b\8cD\ 1\0#q 67fvfB4V-\0\0\0\17o\b\94D\ 1\0#q PiUIfGBc-\0\0\0\17o\b\9cD\ 1\0#q H0P4etPo-\0\0\0\17o\b¤D\ 1\0#q VyKa5fXx-\0\0\0\17o\b¬D\ 1\0#q T68OOsAu-\0\0\0\17o\b´D\ 1\0#q VItPWj1w-\0\0\0\17o\b¼D\ 1\0#q 165dPPO3-\0\0\0\17o\bÄD\ 1\0#q Prp1euH7-\0\0\0\17o\bÌD\ 1\0#q 9fds6coX-\0\0\0\17o\bÔD\ 1\0#q oqU5gR9L-\0\0\0\17o\bÜD\ 1\0#q j1cVXDfO-\0\0\0\17o\bäD\ 1\0#q fUFnHKJc-\0\0\0\17o\bìD\ 1\0#q n73553ve-\0\0\0\17o\bôD\ 1\0#q 94fphI76-\0\0\0\17o\büD\ 1\0#q boE5x5eZ-\0\0\0\17o\b\ 4E\ 1\0#q tBy+Ht3z-\0\0\0\17o\b\fE\ 1\0#q 2NsO2PGC-\0\0\0\17o\b\14E\ 1\0#q nbwrDt+P-\0\0\0\17o\b\1cE\ 1\0#q q4KodNhA-\0\0\0\17o\b$E\ 1\0#q 28Ozw9e3-\0\0\0\17o\b,E\ 1\0#q Tlac0vVR-\0\0\0\17o\b4E\ 1\0#q rljGXXjK-\0\0\0\17o\b<E\ 1\0#q 74Z2eHlK-\0\0\0\17o\bDE\ 1\0#q bXHRrpJ2-\0\0\0\17o\bLE\ 1\0#q M2gxJI5S-\0\0\0\17o\bTE\ 1\0#q 8WzbWJB5-\0\0\0\17o\b\E\ 1\0#q fOzzK0ng-\0\0\0\17o\bdE\ 1\0#q IDK6THQV-\0\0\0\17o\blE\ 1\0#q qb+66e22-\0\0\0\17o\btE\ 1\0#q 1x72x9UW-\0\0\0\17o\b|E\ 1\0#q +rxDexdJ-\0\0\0\17o\b\84E\ 1\0#q 8d+/O9Zr-\0\0\0\17o\b\8cE\ 1\0#q M1mXw8jy-\0\0\0\17o\b\94E\ 1\0#q xjie+j29-\0\0\0\17o\b\9cE\ 1\0#q RJENvabZ-\0\0\0\17o\b¤E\ 1\0#q ofCnhWL1-\0\0\0\17o\b¬E\ 1\0#q wD3ljj4B-\0\0\0\17o\b´E\ 1\0#q cQ54OO0G-\0\0\0\17o\b¼E\ 1\0#q kHSQe/IN-\0\0\0\17o\bÄE\ 1\0#q 7t4HfjuD-\0\0\0\17o\bÌE\ 1\0#q tPHLp3Kl-\0\0\0\17o\bÔE\ 1\0#q kOazq8sU-\0\0\0\17o\bÜE\ 1\0#q y9Y3tjOL-\0\0\0\17o\bäE\ 1\0#q JlCzMmaW-\0\0\0\17o\bìE\ 1\0#q i4d78Kd+-\0\0\0\17o\bôE\ 1\0#q VQ0sVjFF-\0\0\0\17o\büE\ 1\0#q isKSwqlN-\0\0\0\17o\b\ 4F\ 1\0#q NSpaCyMY-\0\0\0\17o\b\fF\ 1\0#q JhUqbN41-\0\0\0\17o\b\14F\ 1\0#q WLJEmRFs-\0\0\0\17o\b\1cF\ 1\0#q shFLI70w-\0\0\0\17o\b$F\ 1\0#q pzxVDVJQ-\0\0\0\17o\b,F\ 1\0#q OGVDMCz+-\0\0\0\17o\b4F\ 1\0#q Yz50FeeC-\0\0\0\17o\b<F\ 1\0#q nxee+p0O-\0\0\0\17o\bDF\ 1\0#q Khjnr5nP-\0\0\0\17o\bLF\ 1\0#q et8cb4wg-\0\0\0\17o\bTF\ 1\0#q YO5ud9c6-\0\0\0\17o\b\F\ 1\0#q 65eXro2Z-\0\0\0\17o\bdF\ 1\0#q ltpaqQ2V-\0\0\0\17o\blF\ 1\0#q AWc7xIg8-\0\0\0\17o\btF\ 1\0#q F9WbmVmu-\0\0\0\17o\b|F\ 1\0#q ss1wH46N-\0\0\0\17o\b\84F\ 1\0#q PSq6o+75-\0\0\0\17o\b\8cF\ 1\0#q r6ndGvN2-\0\0\0\17o\b\94F\ 1\0#q auHmEkDx-\0\0\0\17o\b\9cF\ 1\0#q 6GEenCEQ-\0\0\0\17o\b¤F\ 1\0#q jUVKH6S7-\0\0\0\17o\b¬F\ 1\0#q o7nqeTy/-\0\0\0\17o\b´F\ 1\0#q VH1TrvmV-\0\0\0\17o\b¼F\ 1\0#q fi24LBBw-\0\0\0\17o\bÄF\ 1\0#q 8xYwSNpE-\0\0\0\17o\bÌF\ 1\0#q 8sJnV1c5-\0\0\0\17o\bÔF\ 1\0#q fbaj7DwB-\0\0\0\17o\bÜF\ 1\0#q MORMfPLN-\0\0\0\17o\bäF\ 1\0#q ZvLOcobr-\0\0\0\17o\bìF\ 1\0#q d4s2vvkg-\0\0\0\17o\bôF\ 1\0#q cp4VXw0S-\0\0\0\17o\büF\ 1\0#q ckHZ8PbX-\0\0\0\17o\b\ 4G\ 1\0#q 4yw2pF80-\0\0\0\17o\b\fG\ 1\0#q 01SGzT3e-\0\0\0\17o\b\14G\ 1\0#q 1kxTTTd0-\0\0\0\17o\b\1cG\ 1\0#q 4UOGN4uY-\0\0\0\17o\b$G\ 1\0#q NHi8W+3I-\0\0\0\17o\b,G\ 1\0#q tR+t5UkO-\0\0\0\17o\b4G\ 1\0#q Hvho7WGO-\0\0\0\17o\b<G\ 1\0#q o9fXnnm5-\0\0\0\17o\bDG\ 1\0#q jU28kkcn-\0\0\0\17o\bLG\ 1\0#q h8ar34DK-\0\0\0\17o\bTG\ 1\0#q Qz8PS+0U-\0\0\0\17o\b\G\ 1\0#q NLpvX12v-\0\0\0\17o\bdG\ 1\0#q xVVT4Fix-\0\0\0\17o\blG\ 1\0#q ZRLGVTCK-\0\0\0\17o\btG\ 1\0#q g7d6NpMK-\0\0\0\17o\b|G\ 1\0#q Y20fHFHb-\0\0\0\17o\b\84G\ 1\0#q PHAd9cW8-\0\0\0\17o\b\8cG\ 1\0#q W3B6uvHn-\0\0\0\17o\b\94G\ 1\0#q 1lut7168-\0\0\0\17o\b\9cG\ 1\0#q 2+3b0eek-\0\0\0\17o\b¤G\ 1\0#q CcIhIfPB-\0\0\0\17o\b¬G\ 1\0#q femlNvty-\0\0\0\17o\b´G\ 1\0#q BHAV/OuT-\0\0\0\17o\b¼G\ 1\0#q YkcsZ7vx-\0\0\0\17o\bÄG\ 1\0#q b3PCthAc-\0\0\0\17o\bÌG\ 1\0#q J5Tp8Erw-\0\0\0\17o\bÔG\ 1\0#q sxlI0n3r-\0\0\0\17o\bÜG\ 1\0#q zjvR4rr5-\0\0\0\17o\bäG\ 1\0#q meB17QHb-\0\0\0\17o\bìG\ 1\0#q hSBLIyHa-\0\0\0\17o\bôG\ 1\0#q 1ZzsIKrD-\0\0\0\17o\büG\ 1\0#q w6gTDhlw-\0\0\0\17o\b\ 4H\ 1\0#q JiwFxV7C-\0\0\0\17o\b\fH\ 1\0#q TiTvjH4u-\0\0\0\17o\b\14H\ 1\0#q OQLhBYpF-\0\0\0\17o\b\1cH\ 1\0#q s7g9iZz1-\0\0\0\17o\b$H\ 1\0#q eObpyecF-\0\0\0\17o\b,H\ 1\0#q Tp09Ydve-\0\0\0\17o\b4H\ 1\0#q /h67KmyA-\0\0\0\17o\b<H\ 1\0#q Mb5631VN-\0\0\0\17o\bDH\ 1\0#q tmzEgiaH-\0\0\0\17o\bLH\ 1\0#q voEEA9jO-\0\0\0\17o\bTH\ 1\0#q cHBB6Y5j-\0\0\0\17o\b\H\ 1\0#q ttTflN4n-\0\0\0\17o\bdH\ 1\0#q tsbyJB2k-\0\0\0\17o\blH\ 1\0#q kiqnekzu-\0\0\0\17o\btH\ 1\0#q 324+Oz6u-\0\0\0\17o\b|H\ 1\0#q +mggPLyZ-\0\0\0\17o\b\84H\ 1\0#q 359BJ5B0-\0\0\0\17o\b\8cH\ 1\0#q H75vv+O9-\0\0\0\17o\b\94H\ 1\0#q 8cccbcv1-\0\0\0\17o\b\9cH\ 1\0#q 2976z0kU-\0\0\0\17o\b¤H\ 1\0#q 9dPnSF74-\0\0\0\17o\b¬H\ 1\0#q 5HyYQ33c-\0\0\0\17o\b´H\ 1\0#q pPXoOXLO-\0\0\0\17o\b¼H\ 1\0#q hUp0DfHb-\0\0\0\17o\bÄH\ 1\0#q lUbbed8u-\0\0\0\17o\bÌH\ 1\0#q lr64ejy5-\0\0\0\17o\bÔH\ 1\0#q Ydw69Z2I-\0\0\0\17o\bÜH\ 1\0#q 9N+ed8a3-\0\0\0\17o\bäH\ 1\0#q ve9zh58t-\0\0\0\17o\bìH\ 1\0#q Tm3kTpI2-\0\0\0\17o\bôH\ 1\0#q VpN8Mb84-\0\0\0\17o\büH\ 1\0#q XPTbiYlS-\0\0\0\17o\b\ 4I\ 1\0#q nHxsVKd7-\0\0\0\17o\b\fI\ 1\0#q 5NOQ9jvh-\0\0\0\17o\b\14I\ 1\0#q PHro9jzn-\0\0\0\17o\b\1cI\ 1\0#q CFWeydPN-\0\0\0\17o\b$I\ 1\0#q aNzME08n-\0\0\0\17o\b,I\ 1\0#q R6LWss1O-\0\0\0\17o\b4I\ 1\0#q uel7em2J-\0\0\0\17o\b<I\ 1\0#q vht075zN-\0\0\0\17o\bDI\ 1\0#q ukuFDuk1-\0\0\0\17o\bLI\ 1\0#q adIWgfeP-\0\0\0\17o\bTI\ 1\0#q GTgVKdrr-\0\0\0\17o\b\I\ 1\0#q 4ziPTO8P-\0\0\0\17o\bdI\ 1\0#q PDtjuAh5-\0\0\0\17o\blI\ 1\0#q 1atsnp48-\0\0\0\17o\btI\ 1\0#q 6Ws04OcX-\0\0\0\17o\b|I\ 1\0#q 3GrzMsVS-\0\0\0\17o\b\84I\ 1\0#q x9Po989d-\0\0\0\17o\b\8cI\ 1\0#q 4u9uULJy-\0\0\0\17o\b\94I\ 1\0#q wb+G3r10-\0\0\0\17o\b\9cI\ 1\0#q Y9F054GP-\0\0\0\17o\b¤I\ 1\0#q rm4+L04Z-\0\0\0\17o\b¬I\ 1\0#q JJkqxvxw-\0\0\0\17o\b´I\ 1\0#q 8zVtr078-\0\0\0\17o\b¼I\ 1\0#q cZmaVPNF-\0\0\0\17o\bÄI\ 1\0#q 8eWOnzjt-\0\0\0\17o\bÌI\ 1\0#q m+Dzp6MO-\0\0\0\17o\bÔI\ 1\0#q XKqbXT5a-\0\0\0\17o\bÜI\ 1\0#q KmzzblVT-\0\0\0\17o\bäI\ 1\0#q g1w8Fy8+-\0\0\0\17o\bìI\ 1\0#q g7bfFrpV-\0\0\0\17o\bôI\ 1\0#q SnXPW1fH-\0\0\0\17o\büI\ 1\0#q bb1XDGGp-\0\0\0\17o\b\ 4J\ 1\0#q mJERNfAa-\0\0\0\17o\b\fJ\ 1\0#q YbUdLIY1-\0\0\0\17o\b\14J\ 1\0#q MzGDJvWa-\0\0\0\17o\b\1cJ\ 1\0#q VJua1NSM-\0\0\0\17o\b$J\ 1\0#q 8i0YiLdV-\0\0\0\17o\b,J\ 1\0#q bblrW5bV-\0\0\0\17o\b4J\ 1\0#q tO8YJSMq-\0\0\0\17o\b<J\ 1\0#q FKEhgmDm-\0\0\0\17o\bDJ\ 1\0#q WUhjLJDM-\0\0\0\17o\bLJ\ 1\0#q DKMoiZY0-\0\0\0\17o\bTJ\ 1\0#q CluHGm7k-\0\0\0\17o\b\J\ 1\0#q suQolpmE-\0\0\0\17o\bdJ\ 1\0#q xItaAGFE-\0\0\0\17o\blJ\ 1\0#q t1JhFAmU-\0\0\0\17o\btJ\ 1\0#q BNrbKCiJ-\0\0\0\17o\b|J\ 1\0#q TAyJZtAr-\0\0\0\17o\b\84J\ 1\0#q EMXRREHC-\0\0\0\17o\b\8cJ\ 1\0#q ZTHBRGRE-\0\0\0\17o\b\94J\ 1\0#q xxlmSkst-\0\0\0\17o\b\9cJ\ 1\0#q EbmFe7IA-\0\0\0\17o\b¤J\ 1\0#q BXoWWFGH-\0\0\0\17o\b¬J\ 1\0#q TOoGks2l-\0\0\0\17o\b´J\ 1\0#q kVQKlwse-\0\0\0\17o\b¼J\ 1\0#q rtIkulaY-\0\0\0\17o\bÄJ\ 1\0#q xU1YkYar-\0\0\0\17o\bÌJ\ 1\0#q IugRakIp-\0\0\0\17o\bÔJ\ 1\0#q IA20qUYZ-\0\0\0\17o\bÜJ\ 1\0#q mFcabhmN-\0\0\0\17o\bäJ\ 1\0#q azfPjwNM-\0\0\0\17o\bìJ\ 1\0#q IdbaUG3c-\0\0\0\17o\bôJ\ 1\0#q zeq/mv+/-\0\0\0\17o\büJ\ 1\0#q sp9452V9-\0\0\0\17o\b\ 4K\ 1\0#q fRjeX3nA-\0\0\0\17o\b\fK\ 1\0#q +uetKRd6-\0\0\0\17o\b\14K\ 1\0#q dGlzfHRV-\0\0\0\17o\b\1cK\ 1\0#q jgAwXV1f-\0\0\0\17o\b$K\ 1\0#q rY5IFJFD-\0\0\0\17o\b,K\ 1\0#q JHyc4IKX-\0\0\0\17o\b4K\ 1\0#q OHll1l7l-\0\0\0\17o\b<K\ 1\0#q pW8epW5M-\0\0\0\17o\bDK\ 1\0#q L2nMCWfF-\0\0\0\17o\bLK\ 1\0#q zdoNoJaH-\0\0\0\17o\bTK\ 1\0#q yyw0D1bE-\0\0\0\17o\b\K\ 1\0#q tW98yTVc-\0\0\0\17o\bdK\ 1\0#q nh6l4fNM-\0\0\0\17o\blK\ 1\0#q 870OjJT1-\0\0\0\17o\btK\ 1\0#q pY+N9aOl-\0\0\0\17o\b|K\ 1\0#q HSOoPVAj-\0\0\0\17o\b\84K\ 1\0#q vfOy6XY2-\0\0\0\17o\b\8cK\ 1\0#q YjllLzgB-\0\0\0\17o\b\94K\ 1\0#q wOAG54zy-\0\0\0\17o\b\9cK\ 1\0#q 9JMd5d5Q-\0\0\0\17o\b¤K\ 1\0#q 8hgek7Rp-\0\0\0\17o\b¬K\ 1\0#q Q8Gnkrxx-\0\0\0\17o\b´K\ 1\0#q qqbKdNcH-\0\0\0\17o\b¼K\ 1\0#q fWnS55Nc-\0\0\0\17o\bÄK\ 1\0#q mdbrjhq8-\0\0\0\17o\bÌK\ 1\0#q o7ZUGlvW-\0\0\0\17o\bÔK\ 1\0#q BfCumh2v-\0\0\0\17o\bÜK\ 1\0#q HI1+9s96-\0\0\0\17o\bäK\ 1\0#q 2fXxMfAc-\0\0\0\17o\bìK\ 1\0#q quYF86Tr-\0\0\0\17o\bôK\ 1\0#q DOPl1vW8-\0\0\0\17o\büK\ 1\0#q b/pXKecT-\0\0\0\17o\b\ 4L\ 1\0#q uBeH0U+L-\0\0\0\17o\b\fL\ 1\0#q 2fGp45XJ-\0\0\0\17o\b\14L\ 1\0#q w718Z9c+-\0\0\0\17o\b\1cL\ 1\0#q sP5PnLvB-\0\0\0\17o\b$L\ 1\0#q 4ymlt2Kl-\0\0\0\17o\b,L\ 1\0#q HLXaTto+-\0\0\0\17o\b4L\ 1\0#q Lz741xvN-\0\0\0\17o\b<L\ 1\0#q 7za4jqJI-\0\0\0\17o\bDL\ 1\0#q njts1qe5-\0\0\0\17o\bLL\ 1\0#q S8qL8mlD-\0\0\0\17o\bTL\ 1\0#q H49Q5+dZ-\0\0\0\17o\b\L\ 1\0#q rXjzpsqc-\0\0\0\17o\bdL\ 1\0#q d5m9LldK-\0\0\0\17o\blL\ 1\0#q pvtv4EDZ-\0\0\0\17o\btL\ 1\0#q 8DPrN/Pu-\0\0\0\17o\b|L\ 1\0#q tb32490+-\0\0\0\17o\b\84L\ 1\0#q paWvg7pO-\0\0\0\17o\b\8cL\ 1\0#q vrlKWmnn-\0\0\0\17o\b\94L\ 1\0#q I72+pedY-\0\0\0\17o\b\9cL\ 1\0#q n31Y0duG-\0\0\0\17o\b¤L\ 1\0#q m3a9uBOG-\0\0\0\17o\b¬L\ 1\0#q OHp0h1SV-\0\0\0\17o\b´L\ 1\0#q 29OedcZx-\0\0\0\17o\b¼L\ 1\0#q res3mbt3-\0\0\0\17o\bÄL\ 1\0#q 2npptw7E-\0\0\0\17o\bÌL\ 1\0#q xetpdUUO-\0\0\0\17o\bÔL\ 1\0#q nblLt5m2-\0\0\0\17o\bÜL\ 1\0#q eaqlyh4K-\0\0\0\17o\bäL\ 1\0#q fAeqHL66-\0\0\0\17o\bìL\ 1\0#q aztyzHfh-\0\0\0\17o\bôL\ 1\0#q 69Zol/Tf-\0\0\0\17o\büL\ 1\0#q R5kRkieu-\0\0\0\17o\b\ 4M\ 1\0#q PNq2+3lo-\0\0\0\17o\b\fM\ 1\0#q JODHljhP-\0\0\0\17o\b\14M\ 1\0#q alUp+OsY-\0\0\0\17o\b\1cM\ 1\0#q +bVGsXp3-\0\0\0\17o\b$M\ 1\0#q +KNK9Otu-\0\0\0\17o\b,M\ 1\0#q XLOAJqZo-\0\0\0\17o\b4M\ 1\0#q ZPU24tuy-\0\0\0\17o\b<M\ 1\0#q RwnGurXK-\0\0\0\17o\bDM\ 1\0#q ohrzvvvN-\0\0\0\17o\bLM\ 1\0#q a1ts2nXK-\0\0\0\17o\bTM\ 1\0#q nipqQDwx-\0\0\0\17o\b\M\ 1\0#q Ou8bJI6Z-\0\0\0\17o\bdM\ 1\0#q fCCZCNw6-\0\0\0\17o\blM\ 1\0#q XfbiBozK-\0\0\0\17o\btM\ 1\0#q 29Oz5zmL-\0\0\0\17o\b|M\ 1\0#q qvm1x9ci-\0\0\0\17o\b\84M\ 1\0#q pT7Klty8-\0\0\0\17o\b\8cM\ 1\0#q pOF329uO-\0\0\0\17o\b\94M\ 1\0#q N9fPvbr1-\0\0\0\17o\b\9cM\ 1\0#q pzeMpPe+-\0\0\0\17o\b¤M\ 1\0#q Hr3sIHq4-\0\0\0\17o\b¬M\ 1\0#q +uc3mZ3P-\0\0\0\17o\b´M\ 1\0#q LvZO09OH-\0\0\0\17o\b¼M\ 1\0#q TzESDs42-\0\0\0\17o\bÄM\ 1\0#q 6htwdn3f-\0\0\0\17o\bÌM\ 1\0#q VRW3ZttT-\0\0\0\17o\bÔM\ 1\0#q nnnM+rHb-\0\0\0\17o\bÜM\ 1\0#q w7G+GlU7-\0\0\0\17o\bäM\ 1\0#q XPMqrzx1-\0\0\0\17o\bìM\ 1\0#q qcbOsdvG-\0\0\0\17o\bôM\ 1\0#q ePMYn1vf-\0\0\0\17o\büM\ 1\0#q 33e97bkX-\0\0\0\17o\b\ 4N\ 1\0#q TF7M1573-\0\0\0\17o\b\fN\ 1\0#q x3nTpy0f-\0\0\0\17o\b\14N\ 1\0#q rx3VKHxz-\0\0\0\17o\b\1cN\ 1\0#q qqHTh4ED-\0\0\0\17o\b$N\ 1\0#q 3htxzp0r-\0\0\0\17o\b,N\ 1\0#q R7w7XpnF-\0\0\0\17o\b4N\ 1\0#q bjBaMsMA-\0\0\0\17o\b<N\ 1\0#q ti2WdMGW-\0\0\0\17o\bDN\ 1\0#q WphmA3IG-\0\0\0\17o\bLN\ 1\0#q ILJKMBLT-\0\0\0\17o\bTN\ 1\0#q KBQMAVWS-\0\0\0\17o\b\N\ 1\0#q sjIorJMW-\0\0\0\17o\bdN\ 1\0#q W8bZqzbp-\0\0\0\17o\blN\ 1\0#q hIxqPLNy-\0\0\0\17o\btN\ 1\0#q rUqhpj+j-\0\0\0\17o\b|N\ 1\0#q 5VOekvjv-\0\0\0\17o\b\84N\ 1\0#q VUYBwAAa-\0\0\0\17o\b\8cN\ 1\0#q KM8rSbnb-\0\0\0\17o\b\94N\ 1\0#q y5mMvMGZ-\0\0\0\17o\b\9cN\ 1\0#q KspWru7u-\0\0\0\17o\b¤N\ 1\0#q iVau7t3V-\0\0\0\17o\b¬N\ 1\0#q 3cu7uqaS-\0\0\0\17o\b´N\ 1\0#q IWAE8B4e-\0\0\0\17o\b¼N\ 1\0#q Ac8bruXX-\0\0\0\17o\bÄN\ 1\0#q Y8ta9Ryl-\0\0\0\17o\bÌN\ 1\0#q s10jpy+y-\0\0\0\17o\bÔN\ 1\0#q ++675d2E-\0\0\0\17o\bÜN\ 1\0#q USCjzzqZ-\0\0\0\17o\bäN\ 1\0#q O093qYXV-\0\0\0\17o\bìN\ 1\0#q 3T5vii7t-\0\0\0\17o\bôN\ 1\0#q dBPVdZIj-\0\0\0\17o\büN\ 1\0#q 3ygmbS4u-\0\0\0\17o\b\ 4O\ 1\0#q +tw9U5gd-\0\0\0\17o\b\fO\ 1\0#q efWVrXZ6-\0\0\0\17o\b\14O\ 1\0#q tawSHPWT-\0\0\0\17o\b\1cO\ 1\0#q XMsxnk4i-\0\0\0\17o\b$O\ 1\0#q q+i56tph-\0\0\0\17o\b,O\ 1\0#q w8+ToZ4O-\0\0\0\17o\b4O\ 1\0#q 5ATgW0Mk-\0\0\0\17o\b<O\ 1\0#q EcLw296l-\0\0\0\17o\bDO\ 1\0#q NsfrDk50-\0\0\0\17o\bLO\ 1\0#q J1jPLRV9-\0\0\0\17o\bTO\ 1\0#q 0fWN0hz8-\0\0\0\17o\b\O\ 1\0#q XrpcPBen-\0\0\0\17o\bdO\ 1\0#q vXi8edeZ-\0\0\0\17o\blO\ 1\0#q s4mllq+u-\0\0\0\17o\btO\ 1\0#q tW458+TO-\0\0\0\17o\b|O\ 1\0#q npnKJE+E-\0\0\0\17o\b\84O\ 1\0#q 9OPI7Lq6-\0\0\0\17o\b\8cO\ 1\0#q OG1pjRt3-\0\0\0\17o\b\94O\ 1\0#q w5fVc9jp-\0\0\0\17o\b\9cO\ 1\0#q +Ncu5Uh7-\0\0\0\17o\b¤O\ 1\0#q FTth7vi3-\0\0\0\17o\b¬O\ 1\0#q HHbwktHI-\0\0\0\17o\b´O\ 1\0#q vTl5d+3C-\0\0\0\17o\b¼O\ 1\0#q HhU0Lhwy-\0\0\0\17o\bÄO\ 1\0#q Sh1NMXTX-\0\0\0\17o\bÌO\ 1\0#q faqcvPWZ-\0\0\0\17o\bÔO\ 1\0#q mV6OkmSy-\0\0\0\17o\bÜO\ 1\0#q xFrWcJrW-\0\0\0\17o\bäO\ 1\0#q i1kksrvv-\0\0\0\17o\bìO\ 1\0#q gqr6xW9z-\0\0\0\17o\bôO\ 1\0#q j1ymeq4d-\0\0\0\17o\büO\ 1\0#q cNajmbSD-\0\0\0\17o\b\ 4P\ 1\0#q kR2mTlry-\0\0\0\17o\b\fP\ 1\0#q 5AnE7fgk-\0\0\0\17o\b\14P\ 1\0#q 9Tk978Fs-\0\0\0\17o\b\1cP\ 1\0#q 2pXhPvjl-\0\0\0\17o\b$P\ 1\0#q tkl3AXoF-\0\0\0\17o\b,P\ 1\0#q 93yfjrr8-\0\0\0\17o\b4P\ 1\0#q 4+986555-\0\0\0\17o\b<P\ 1\0#q 56eaKe/T-\0\0\0\17o\bDP\ 1\0#q cvX8+tDp-\0\0\0\17o\bLP\ 1\0#q +Pi1RQ8f-\0\0\0\17o\bTP\ 1\0#q dUu2pvFd-\0\0\0\17o\b\P\ 1\0#q MbdPAQGN-\0\0\0\17o\bdP\ 1\0#q N8ivU7S9-\0\0\0\17o\blP\ 1\0#q Ryc166k8-\0\0\0\17o\btP\ 1\0#q yJc5IdVF-\0\0\0\17o\b|P\ 1\0#q db88+uu+-\0\0\0\17o\b\84P\ 1\0#q /zeZveuG-\0\0\0\17o\b\8cP\ 1\0#q j1wuL35U-\0\0\0\17o\b\94P\ 1\0#q llCnrTCt-\0\0\0\17o\b\9cP\ 1\0#q 7IYcNxTh-\0\0\0\17o\b¤P\ 1\0#q FFbQtqjN-\0\0\0\17o\b¬P\ 1\0#q ZgXr60ba-\0\0\0\17o\b´P\ 1\0#q Y2hffWp4-\0\0\0\17o\b¼P\ 1\0#q +ubvM/NI-\0\0\0\17o\bÄP\ 1\0#q WzW5Uj1D-\0\0\0\17o\bÌP\ 1\0#q p8eU+ZTg-\0\0\0\17o\bÔP\ 1\0#q 3naukLoZ-\0\0\0\17o\bÜP\ 1\0#q zl+a1n3v-\0\0\0\17o\bäP\ 1\0#q Gta8samS-\0\0\0\17o\bìP\ 1\0#q Fp7nvlKV-\0\0\0\17o\bôP\ 1\0#q uVxKevXT-\0\0\0\17o\büP\ 1\0#q jTg2duJ3-\0\0\0\17o\b\ 4Q\ 1\0#q SfNK066b-\0\0\0\17o\b\fQ\ 1\0#q lwcPF5xw-\0\0\0\17o\b\14Q\ 1\0#q 2+0cZJzr-\0\0\0\17o\b\1cQ\ 1\0#q x68c3veN-\0\0\0\17o\b$Q\ 1\0#q ZrGOHXbT-\0\0\0\17o\b,Q\ 1\0#q SSRwPSDE-\0\0\0\17o\b4Q\ 1\0#q 242fCWz4-\0\0\0\17o\b<Q\ 1\0#q vTsVKYqO-\0\0\0\17o\bDQ\ 1\0#q F4bx775p-\0\0\0\17o\bLQ\ 1\0#q 0xeOddrO-\0\0\0\17o\bTQ\ 1\0#q pVXqcPaq-\0\0\0\17o\b\Q\ 1\0#q qOW22WtV-\0\0\0\17o\bdQ\ 1\0#q 88c4xmZY-\0\0\0\17o\blQ\ 1\0#q 7dL6ei95-\0\0\0\17o\btQ\ 1\0#q 6V67bbVt-\0\0\0\17o\b|Q\ 1\0#q Wu+nzM5f-\0\0\0\17o\b\84Q\ 1\0#q LQ6pS9sJ-\0\0\0\17o\b\8cQ\ 1\0#q RXrzSp0c-\0\0\0\17o\b\94Q\ 1\0#q NSpHqF1o-\0\0\0\17o\b\9cQ\ 1\0#q swXg7xoe-\0\0\0\17o\b¤Q\ 1\0#q ipTO2OO3-\0\0\0\17o\b¬Q\ 1\0#q gSMFkwqy-\0\0\0\17o\b´Q\ 1\0#q WwWmzzmd-\0\0\0\17o\b¼Q\ 1\0#q 5mSrkIb9-\0\0\0\17o\bÄQ\ 1\0#q W0R4V052-\0\0\0\17o\bÌQ\ 1\0#q 4SQ8m/L0-\0\0\0\17o\bÔQ\ 1\0#q 7yCFN+NE-\0\0\0\17o\bÜQ\ 1\0#q inDh32PH-\0\0\0\17o\bäQ\ 1\0#q fHDzfDTY-\0\0\0\17o\bìQ\ 1\0#q p2pF9vXX-\0\0\0\17o\bôQ\ 1\0#q neZ84x6v-\0\0\0\17o\büQ\ 1\0#q cPRzRtDb-\0\0\0\17o\b\ 4R\ 1\0#q 1rS9KNoj-\0\0\0\17o\b\fR\ 1\0#q G3tt8trV-\0\0\0\17o\b\14R\ 1\0#q Sm4nKzy3-\0\0\0\17o\b\1cR\ 1\0#q R6xxhOMV-\0\0\0\17o\b$R\ 1\0#q R5krVhMy-\0\0\0\17o\b,R\ 1\0#q jGXOrVEk-\0\0\0\17o\b4R\ 1\0#q qjaow3gh-\0\0\0\17o\b<R\ 1\0#q lCSpZNWB-\0\0\0\17o\bDR\ 1\0#q cVaxL3Fc-\0\0\0\17o\bLR\ 1\0#q Y9ZJpkrn-\0\0\0\17o\bTR\ 1\0#q Jzlzh3m8-\0\0\0\17o\b\R\ 1\0#q wze+XP8u-\0\0\0\17o\bdR\ 1\0#q V2KlNuHo-\0\0\0\17o\blR\ 1\0#q vYPm99af-\0\0\0\17o\btR\ 1\0#q Pmu8VUqU-\0\0\0\17o\b|R\ 1\0#q J47l3jmZ-\0\0\0\17o\b\84R\ 1\0#q l5eHCqbb-\0\0\0\17o\b\8cR\ 1\0#q HO7xlEBF-\0\0\0\17o\b\94R\ 1\0#q cBA5Jb3t-\0\0\0\17o\b\9cR\ 1\0#q 32Zl9tPv-\0\0\0\17o\b¤R\ 1\0#q d2smGycK-\0\0\0\17o\b¬R\ 1\0#q E9uyfDQQ-\0\0\0\17o\b´R\ 1\0#q PDS8Ltb4-\0\0\0\17o\b¼R\ 1\0#q qBF9a8qn-\0\0\0\17o\bÄR\ 1\0#q udmpDwX4-\0\0\0\17o\bÌR\ 1\0#q +wdtdWPr-\0\0\0\17o\bÔR\ 1\0#q zp5ZJ51I-\0\0\0\17o\bÜR\ 1\0#q afAcnZAs-\0\0\0\17o\bäR\ 1\0#q PkypcqpR-\0\0\0\17o\bìR\ 1\0#q FBAcxIYW-\0\0\0\17o\bôR\ 1\0#q s3vTR50f-\0\0\0\17o\büR\ 1\0#q EtvnqdcU-\0\0\0\17o\b\ 4S\ 1\0#q o/dUXwei-\0\0\0\17o\b\fS\ 1\0#q bTydGiJ4-\0\0\0\17o\b\14S\ 1\0#q PFIOWjex-\0\0\0\17o\b\1cS\ 1\0#q 8NM77ddu-\0\0\0\17o\b$S\ 1\0#q nuIT3rfm-\0\0\0\17o\b,S\ 1\0#q 5Wc23BHl-\0\0\0\17o\b4S\ 1\0#q y1Kmmj15-\0\0\0\17o\b<S\ 1\0#q 2czh1j2q-\0\0\0\17o\bDS\ 1\0#q UpWYqJEq-\0\0\0\17o\bLS\ 1\0#q vL10rcCe-\0\0\0\17o\bTS\ 1\0#q dpLOreZE-\0\0\0\17o\b\S\ 1\0#q jlnPpzu3-\0\0\0\17o\bdS\ 1\0#q bt2Pe9pI-\0\0\0\17o\blS\ 1\0#q bbhG5Vds-\0\0\0\17o\btS\ 1\0#q kX49R4c9-\0\0\0\17o\b|S\ 1\0#q PrbZr3tV-\0\0\0\17o\b\84S\ 1\0#q MdOn17de-\0\0\0\17o\b\8cS\ 1\0#q nw+aNedr-\0\0\0\17o\b\94S\ 1\0#q TuVI+Pjo-\0\0\0\17o\b\9cS\ 1\0#q 67O359n1-\0\0\0\17o\b¤S\ 1\0#q jijiSSJ9-\0\0\0\17o\b¬S\ 1\0#q jstJAwAW-\0\0\0\17o\b´S\ 1\0#q h6D6ObOe-\0\0\0\17o\b¼S\ 1\0#q kTEOeh3n-\0\0\0\17o\bÄS\ 1\0#q Ar2g7ynr-\0\0\0\17o\bÌS\ 1\0#q 8xXTOMYF-\0\0\0\17o\bÔS\ 1\0#q cwj5xiIp-\0\0\0\17o\bÜS\ 1\0#q x8cwczh8-\0\0\0\17o\bäS\ 1\0#q LfyjzhSP-\0\0\0\17o\bìS\ 1\0#q Bt74x6zv-\0\0\0\17o\bôS\ 1\0#q dzHlySLo-\0\0\0\17o\büS\ 1\0#q 8nCSRsk0-\0\0\0\17o\b\ 4T\ 1\0#q eS6TRbxm-\0\0\0\17o\b\fT\ 1\0#q Z3wnmxmn-\0\0\0\17o\b\14T\ 1\0#q HMkNhygx-\0\0\0\17o\b\1cT\ 1\0#q jtJKwkU8-\0\0\0\17o\b$T\ 1\0#q 3mOviqqN-\0\0\0\17o\b,T\ 1\0#q jty5d4e4-\0\0\0\17o\b4T\ 1\0#q 4KmUaw85-\0\0\0\17o\b<T\ 1\0#q 5t7i6cPI-\0\0\0\17o\bDT\ 1\0#q 8nbp5Sqj-\0\0\0\17o\bLT\ 1\0#q jbpFk2dj-\0\0\0\17o\bTT\ 1\0#q dy3yk88p-\0\0\0\17o\b\T\ 1\0#q G+mJSHbO-\0\0\0\17o\bdT\ 1\0#q Xfhw58IK-\0\0\0\17o\blT\ 1\0#q 24kkSC+D-\0\0\0\17o\btT\ 1\0#q zcXXnNW6-\0\0\0\17o\b|T\ 1\0#q 12O4HXcP-\0\0\0\17o\b\84T\ 1\0#q Owd+O0Fl-\0\0\0\17o\b\8cT\ 1\0#q 8PvuZjsC-\0\0\0\17o\b\94T\ 1\0#q x5376uzw-\0\0\0\17o\b\9cT\ 1\0#q IG+WIPHL-\0\0\0\17o\b¤T\ 1\0#q tDGueXTE-\0\0\0\17o\b¬T\ 1\0#q g7dMzfR0-\0\0\0\17o\b´T\ 1\0#q JnnGHYm9-\0\0\0\17o\b¼T\ 1\0#q idAqLLCy-\0\0\0\17o\bÄT\ 1\0#q KsqxZVXx-\0\0\0\17o\bÌT\ 1\0#q lbdLKppp-\0\0\0\17o\bÔT\ 1\0#q SUky2Smf-\0\0\0\17o\bÜT\ 1\0#q Gld42pFy-\0\0\0\17o\bäT\ 1\0#q h9d+861r-\0\0\0\17o\bìT\ 1\0#q CugePr6r-\0\0\0\17o\bôT\ 1\0#q 6xOggdtd-\0\0\0\17o\büT\ 1\0#q Pr4hx457-\0\0\0\17o\b\ 4U\ 1\0#q uTlQ/lju-\0\0\0\17o\b\fU\ 1\0#q vcrnltjn-\0\0\0\17o\b\14U\ 1\0#q btqu9rUk-\0\0\0\17o\b\1cU\ 1\0#q 6cL7e+9c-\0\0\0\17o\b$U\ 1\0#q X1mt71d5-\0\0\0\17o\b,U\ 1\0#q mJrs2PD2-\0\0\0\17o\b4U\ 1\0#q zySR16d7-\0\0\0\17o\b<U\ 1\0#q 2kTx67dP-\0\0\0\17o\bDU\ 1\0#q B2rKOy76-\0\0\0\17o\bLU\ 1\0#q 78XpyWhU-\0\0\0\17o\bTU\ 1\0#q p8dXq0t/-\0\0\0\17o\b\U\ 1\0#q AX04768z-\0\0\0\17o\bdU\ 1\0#q Wa18ejz5-\0\0\0\17o\blU\ 1\0#q cuUnls27-\0\0\0\17o\btU\ 1\0#q TZy4O2rx-\0\0\0\17o\b|U\ 1\0#q Rtxcg11S-\0\0\0\17o\b\84U\ 1\0#q 6cfNoYO+-\0\0\0\17o\b\8cU\ 1\0#q +madlcs6-\0\0\0\17o\b\94U\ 1\0#q drb67VY8-\0\0\0\17o\b\9cU\ 1\0#q K3zSk4Yq-\0\0\0\17o\b¤U\ 1\0#q tLvupO/D-\0\0\0\17o\b¬U\ 1\0#q a6JNXUsg-\0\0\0\17o\b´U\ 1\0#q 3mJLapKt-\0\0\0\17o\b¼U\ 1\0#q WFixTMIx-\0\0\0\17o\bÄU\ 1\0#q iMYqYxW1-\0\0\0\17o\bÌU\ 1\0#q DMkpmVKM-\0\0\0\17o\bÔU\ 1\0#q qXrbSzMt-\0\0\0\17o\bÜU\ 1\0#q 9/sqIqP+-\0\0\0\17o\bäU\ 1\0#q t/93+I/0-\0\0\0\17o\bìU\ 1\0#q n5Sn7T+Q-\0\0\0\17o\bôU\ 1\0#q T8zf0X7f-\0\0\0\17o\büU\ 1\0#q +TD+B4Ct-\0\0\0\17o\b\ 4V\ 1\0#q tqUP4hlE-\0\0\0\17o\b\fV\ 1\0#q RRRTARIf-\0\0\0\17o\b\14V\ 1\0#q upD+YUw/-\0\0\0\17o\b\1cV\ 1\0#q Q0KfxO/Y-\0\0\0\17o\b$V\ 1\0#q VFVv5cOF-\0\0\0\17o\b,V\ 1\0#q w/8J24f+-\0\0\0\17o\b4V\ 1\0#q hMf6Mf+D-\0\0\0\17o\b<V\ 1\0#q F/3MXL//-\0\0\0\17o\bDV\ 1\0#q P7Nv+9/D-\0\0\0\17o\bLV\ 1\0#q R8PD7NE/-\0\0\0\17o\bTV\ 1\0#q L5Y0/73/-\0\0\0\17o\b\V\ 1\0#q Q5TalV9v-\0\0\0\17o\bdV\ 1\0#q /fbLbfTY-\0\0\0\17o\blV\ 1\0#q 6Wd/hbKs-\0\0\0\17o\btV\ 1\0#q n7vhvhct-\0\0\0\17o\b|V\ 1\0#q tfh9p/Rx-\0\0\0\17o\b\84V\ 1\0#q 9F7ThpoO-\0\0\0\17o\b\8cV\ 1\0#q zo/of+im-\0\0\0\17o\b\94V\ 1\0#q n7jnrLba-\0\0\0\17o\b\9cV\ 1\0#q vsef4r/U-\0\0\0\17o\b¤V\ 1\0#q cA+RPuf3-\0\0\0\17o\b¬V\ 1\0#q Q+f9UqkU-\0\0\0\17o\b´V\ 1\0#q /8ap/+MF-\0\0\0\17o\b¼V\ 1\0#q IjMqlZkq-\0\0\0\17o\bÄV\ 1\0#q slsVZsrV-\0\0\0\17o\bÌV\ 1\0#q JUlRZLa2-\0\0\0\17o\bÔV\ 1\0#q yy2qaRaW-\0\0\0\17o\bÜV\ 1\0#q WqRTKzaZ-\0\0\0\17o\bäV\ 1\0#q ooGCAwg+-\0\0\0\17o\bìV\ 1\0#q x/nV+FYg-\0\0\0\17o\bôV\ 1\0#q +fi2+gz8-\0\0\0\17o\büV\ 1\0#q s/Z89W73-\0\0\0\17o\b\ 4W\ 1\0#q ufUfZfMZ-\0\0\0\17o\b\fW\ 1\0#q rG5jSeX2-\0\0\0\17o\b\14W\ 1\0#q +tXiLy5t-\0\0\0\17o\b\1cW\ 1\0#q M25ZFqjV-\0\0\0\17o\b$W\ 1\0#q UHVXHVO7-\0\0\0\17o\b,W\ 1\0#q t3Rjfk7W-\0\0\0\17o\b4W\ 1\0#q WV5Xd3zf-\0\0\0\17o\b<W\ 1\0#q CC7d74/B-\0\0\0\17o\bDW\ 1\0#q svzb8BBp-\0\0\0\17o\bLW\ 1\0#q uu3U3zvX-\0\0\0\17o\bTW\ 1\0#q Onzxjysz-\0\0\0\17o\b\W\ 1\0#q B3F1Lpzy-\0\0\0\17o\bdW\ 1\0#q 88Auvjt8-\0\0\0\17o\blW\ 1\0#q OJfX88hg-\0\0\0\17o\btW\ 1\0#q 8tvPa23z-\0\0\0\17o\b|W\ 1\0#q rze8IBCE-\0\0\0\17o\b\84W\ 1\0#q kACBACSe-\0\0\0\17o\b\8cW\ 1\0#q svoy46Ii-\0\0\0\17o\b\94W\ 1\0#q KqqiKiKr-\0\0\0\17o\b\9cW\ 1\0#q mbpczNUA-\0\0\0\17o\b¤W\ 1\0#q kJJCTVer-\0\0\0\17o\b¬W\ 1\0#q Lbqur773-\0\0\0\17o\b´W\ 1\0#q rXpy1c6c-\0\0\0\17o\b¼W\ 1\0#q 7tea+Z7X-\0\0\0\17o\bÄW\ 1\0#q ygAnXQEQ-\0\0\0\17o\bÌW\ 1\0#q RJmCo+i1-\0\0\0\17o\bÔW\ 1\0#q VHsgGMnt-\0\0\0\17o\bÜW\ 1\0#q 6oTG4h52-\0\0\0\17o\bäW\ 1\0#q C6u8SvLr-\0\0\0\17o\bìW\ 1\0#q MP/waB4B-\0\0\0\17o\bôW\ 1\0#q wc2A8sBa-\0\0\0\17o\büW\ 1\0#q DwhBB/o7-\0\0\0\17o\b\ 4X\ 1\0#q aeobMefe-\0\0\0\17o\b\fX\ 1\0#q uPi73vZt-\0\0\0\17o\b\14X\ 1\0#q 7rVet2rb-\0\0\0\17o\b\1cX\ 1\0#q 0T0fQ/9r-\0\0\0\17o\b$X\ 1\0#q ykNCbO/h-\0\0\0\17o\b,X\ 1\0#q d3LcnNv0-\0\0\0\17o\b4X\ 1\0#q nxbJpOOM-\0\0\0\17o\b<X\ 1\0#q 9dbX3aau-\0\0\0\17o\bDX\ 1\0#q DKzP4RVk-\0\0\0\17o\bLX\ 1\0#q 8gGChiP3-\0\0\0\17o\bTX\ 1\0#q tin+2Ko0-\0\0\0\17o\b\X\ 1\0#q zGvv8rm9-\0\0\0\17o\bdX\ 1\0#q 97r3xV1p-\0\0\0\17o\blX\ 1\0#q t67QJwiE-\0\0\0\17o\btX\ 1\0#q FqEG2tbk-\0\0\0\17o\b|X\ 1\0#q dFH93DBw-\0\0\0\17o\b\84X\ 1\0#q DjIPBfPi-\0\0\0\17o\b\8cX\ 1\0#q 1V5aFeIA-\0\0\0\17o\b\94X\ 1\0#q HWiKoxX7-\0\0\0\17o\b\9cX\ 1\0#q fYcN7XsJ-\0\0\0\17o\b¤X\ 1\0#q zs2YByCq-\0\0\0\17o\b¬X\ 1\0#q CB9JkFUV-\0\0\0\17o\b´X\ 1\0#q QVTA6PRv-\0\0\0\17o\b¼X\ 1\0#q zz5effmf-\0\0\0\17o\bÄX\ 1\0#q 8/OC9PMp-\0\0\0\17o\bÌX\ 1\0#q C+ZtzACF-\0\0\0\17o\bÔX\ 1\0#q V1K3GMDv-\0\0\0\17o\bÜX\ 1\0#q G5p00Ri2-\0\0\0\17o\bäX\ 1\0#q rRwdRGfG-\0\0\0\17o\bìX\ 1\0#q JGZluZmR-\0\0\0\17o\bôX\ 1\0#q rhVWSvlP-\0\0\0\17o\büX\ 1\0#q XhbVm0jU-\0\0\0\17o\b\ 4Y\ 1\0#q eerZfHWX-\0\0\0\17o\b\fY\ 1\0#q OyPb4dvG-\0\0\0\17o\b\14Y\ 1\0#q 7fq7d2Yu-\0\0\0\17o\b\1cY\ 1\0#q V64ePXrv-\0\0\0\17o\b$Y\ 1\0#q x6mb41zv-\0\0\0\17o\b,Y\ 1\0#q jnrfDiqr-\0\0\0\17o\b4Y\ 1\0#q wFcQ9VbJ-\0\0\0\17o\b<Y\ 1\0#q CMKmIWYs-\0\0\0\17o\bDY\ 1\0#q yFKsKZAp-\0\0\0\17o\bLY\ 1\0#q mGYZYsyk-\0\0\0\17o\bTY\ 1\0#q KYZSrJYG-\0\0\0\17o\b\Y\ 1\0#q ZBVZVDCh-\0\0\0\17o\bdY\ 1\0#q ZKsAxJMK-\0\0\0\17o\blY\ 1\0#q FRiFQZVK-\0\0\0\17o\btY\ 1\0#q xBZKLJJh-\0\0\0\17o\b|Y\ 1\0#q JTbbapSl-\0\0\0\17o\b\84Y\ 1\0#q mzRec3cV-\0\0\0\17o\b\8cY\ 1\0#q XShD4BDz-\0\0\0\17o\b\94Y\ 1\0#q mq1wkRIY-\0\0\0\17o\b\9cY\ 1\0#q PpUFVy20-\0\0\0\17o\b¤Y\ 1\0#q DjqcYA1w-\0\0\0\17o\b¬Y\ 1\0#q AOHwq+O9-\0\0\0\17o\b´Y\ 1\0#q r3vWre0s-\0\0\0\17o\b¼Y\ 1\0#q CbAG9xdK-\0\0\0\17o\bÄY\ 1\0#q yeSrfivb-\0\0\0\17o\bÌY\ 1\0#q QO34ZArR-\0\0\0\17o\bÔY\ 1\0#q rbCmGhJ6-\0\0\0\17o\bÜY\ 1\0#q LPbla+t+-\0\0\0\17o\bäY\ 1\0#q POc5nw7q-\0\0\0\17o\bìY\ 1\0#q zbdSzdq7-\0\0\0\17o\bôY\ 1\0#q p0eJSUbV-\0\0\0\17o\büY\ 1\0#q XZtq6NOr-\0\0\0\17o\b\ 4Z\ 1\0#q QouWy7TR-\0\0\0\17o\b\fZ\ 1\0#q Es2HZNRu-\0\0\0\17o\b\14Z\ 1\0#q 1Stu7Ysi-\0\0\0\17o\b\1cZ\ 1\0#q 26gMq7VS-\0\0\0\17o\b$Z\ 1\0#q 751zzvXP-\0\0\0\17o\b,Z\ 1\0#q F5506HQJ-\0\0\0\17o\b4Z\ 1\0#q CRi6HLlt-\0\0\0\17o\b<Z\ 1\0#q z9uN8Xm7-\0\0\0\17o\bDZ\ 1\0#q zDLmXMwz-\0\0\0\17o\bLZ\ 1\0#q p7a33Llu-\0\0\0\17o\bTZ\ 1\0#q Y0zKuVZC-\0\0\0\17o\b\Z\ 1\0#q e1T/O/Vl-\0\0\0\17o\bdZ\ 1\0#q 8Lrrrqrr-\0\0\0\17o\blZ\ 1\0#q pOIUG2dJ-\0\0\0\17o\btZ\ 1\0#q ip/z1f+m-\0\0\0\17o\b|Z\ 1\0#q v/K98Hqw-\0\0\0\17o\b\84Z\ 1\0#q OlWunXPV-\0\0\0\17o\b\8cZ\ 1\0#q 64nVSTpZ-\0\0\0\17o\b\94Z\ 1\0#q bdoyVil8-\0\0\0\17o\b\9cZ\ 1\0#q PHTcq/c4-\0\0\0\17o\b¤Z\ 1\0#q iSP+Kkth-\0\0\0\17o\b¬Z\ 1\0#q +WA/sxSm-\0\0\0\17o\b´Z\ 1\0#q 2JD/tMfE-\0\0\0\17o\b¼Z\ 1\0#q f8rSNT+n-\0\0\0\17o\bÄZ\ 1\0#q 1kfxMmZY-\0\0\0\17o\bÌZ\ 1\0#q y5UmMVMV-\0\0\0\17o\bÔZ\ 1\0#q J8ZbwcyY-\0\0\0\17o\bÜZ\ 1\0#q Sf/ThUxk-\0\0\0\17o\bäZ\ 1\0#q MMoOz+R2-\0\0\0\17o\bìZ\ 1\0#q qaP6HTar-\0\0\0\17o\bôZ\ 1\0#q lv9Raiqx-\0\0\0\17o\büZ\ 1\0#q hI8PDkHT-\0\0\0\17o\b\ 4[\ 1\0#q +8nW3ZOm-\0\0\0\17o\b\f[\ 1\0#q t1jbpR/a-\0\0\0\17o\b\14[\ 1\0#q cHDtXbA6-\0\0\0\17o\b\1c[\ 1\0#q Tww1EzKi-\0\0\0\17o\b$[\ 1\0#q 2KTySO7N-\0\0\0\17o\b,[\ 1\0#q 2ZTCkq7j-\0\0\0\17o\b4[\ 1\0#q Yh702Rpx-\0\0\0\17o\b<[\ 1\0#q AodJwef/-\0\0\0\17o\bD[\ 1\0#q IaXmsXK/-\0\0\0\17o\bL[\ 1\0#q lMbLbeD/-\0\0\0\17o\bT[\ 1\0#q FpyuGQfE-\0\0\0\17o\b\[\ 1\0#q v6LSrGVZ-\0\0\0\17o\bd[\ 1\0#q hmSxSSgo-\0\0\0\17o\bl[\ 1\0#q ikttRbLU-\0\0\0\17o\bt[\ 1\0#q 9uW0Nrwx-\0\0\0\17o\b|[\ 1\0#q mKrwfsj9-\0\0\0\17o\b\84[\ 1\0#q zZ07ekki-\0\0\0\17o\b\8c[\ 1\0#q Ej2irVcq-\0\0\0\17o\b\94[\ 1\0#q tMxjTEjV-\0\0\0\17o\b\9c[\ 1\0#q Xdf6P9p/-\0\0\0\17o\b¤[\ 1\0#q KOcsyr/s-\0\0\0\17o\b¬[\ 1\0#q yrMkfUEh-\0\0\0\17o\b´[\ 1\0#q I+3yT4fG-\0\0\0\17o\b¼[\ 1\0#q 7atVVren-\0\0\0\17o\bÄ[\ 1\0#q 4qxU6V/T-\0\0\0\17o\bÌ[\ 1\0#q taOFf5Mj-\0\0\0\17o\bÔ[\ 1\0#q /xYPqwPY-\0\0\0\17o\bÜ[\ 1\0#q q8bLlYHT-\0\0\0\17o\bä[\ 1\0#q 7x9X86t2-\0\0\0\17o\bì[\ 1\0#q frOsP+5U-\0\0\0\17o\bô[\ 1\0#q nmbJUjAN-\0\0\0\17o\bü[\ 1\0#q vKTCvZwk-\0\0\0\17o\b\ 4\\ 1\0#q j4T2/Xbt-\0\0\0\17o\b\f\\ 1\0#q J9f3uJLl-\0\0\0\17o\b\14\\ 1\0#q xpGGJJwQ-\0\0\0\17o\b\1c\\ 1\0#q +9LUNxUf-\0\0\0\17o\b$\\ 1\0#q u/pLKj7v-\0\0\0\17o\b,\\ 1\0#q l9RwfBGH-\0\0\0\17o\b4\\ 1\0#q 822fqJ8u-\0\0\0\17o\b<\\ 1\0#q kk8mkR2V-\0\0\0\17o\bD\\ 1\0#q 7eCdNCih-\0\0\0\17o\bL\\ 1\0#q 4rqR/FLZ-\0\0\0\17o\bT\\ 1\0#q 4nb6xyNC-\0\0\0\17o\b\\\ 1\0#q n1IfeRyy-\0\0\0\17o\bd\\ 1\0#q RO0OnsT1-\0\0\0\17o\bl\\ 1\0#q CDQ+jZX2-\0\0\0\17o\bt\\ 1\0#q q4iaXcTh-\0\0\0\17o\b|\\ 1\0#q cJadGG5K-\0\0\0\17o\b\84\\ 1\0#q +NMY2w4X-\0\0\0\17o\b\8c\\ 1\0#q V16pdJLb-\0\0\0\17o\b\94\\ 1\0#q 4bb6ykpD-\0\0\0\17o\b\9c\\ 1\0#q JjVVSiyD-\0\0\0\17o\b¤\\ 1\0#q x2/Ppatf-\0\0\0\17o\b¬\\ 1\0#q 7fHfqTzb-\0\0\0\17o\b´\\ 1\0#q xrUmrdbU-\0\0\0\17o\b¼\\ 1\0#q +rGg1FD5-\0\0\0\17o\bÄ\\ 1\0#q mI/V8tSf-\0\0\0\17o\bÌ\\ 1\0#q V8o1D9E2-\0\0\0\17o\bÔ\\ 1\0#q nlH/Sfrs-\0\0\0\17o\bÜ\\ 1\0#q r/yHD/OP-\0\0\0\17o\bä\\ 1\0#q 4SeoUU/V-\0\0\0\17o\bì\\ 1\0#q +sYwlSp/-\0\0\0\17o\bô\\ 1\0#q 5mPQ/3D6-\0\0\0\17o\bü\\ 1\0#q 4aVkKRGl-\0\0\0\17o\b\ 4]\ 1\0#q SewWP9VC-\0\0\0\17o\b\f]\ 1\0#q GFgUGZCQ-\0\0\0\17o\b\14]\ 1\0#q wsROn6Cq-\0\0\0\17o\b\1c]\ 1\0#q H9BPpvLY-\0\0\0\17o\b$]\ 1\0#q lK20kmjU-\0\0\0\17o\b,]\ 1\0#q qRVZgh9a-\0\0\0\17o\b4]\ 1\0#q aGzdo/4o-\0\0\0\17o\b<]\ 1\0#q xbVDFP9/-\0\0\0\17o\bD]\ 1\0#q xGOTxP+x-\0\0\0\17o\bL]\ 1\0#q g6H8uhV0-\0\0\0\17o\bT]\ 1\0#q ykMME8OX-\0\0\0\17o\b\]\ 1\0#q jcocLSqe-\0\0\0\17o\bd]\ 1\0#q qxYyhl2P-\0\0\0\17o\bl]\ 1\0#q 6/5Hp5nN-\0\0\0\17o\bt]\ 1\0#q Lf8IonRU-\0\0\0\17o\b|]\ 1\0#q qUNjY/Db-\0\0\0\17o\b\84]\ 1\0#q O5llxWJF-\0\0\0\17o\b\8c]\ 1\0#q SKUSsy3E-\0\0\0\17o\b\94]\ 1\0#q iYhPJ+cG-\0\0\0\17o\b\9c]\ 1\0#q Hd98MzE6-\0\0\0\17o\b¤]\ 1\0#q 4M+DAkD4-\0\0\0\17o\b¬]\ 1\0#q YiKRisRk-\0\0\0\17o\b´]\ 1\0#q TDMpmR+s-\0\0\0\17o\b¼]\ 1\0#q xk9icopW-\0\0\0\17o\bÄ]\ 1\0#q w4WnC1/0-\0\0\0\17o\bÌ]\ 1\0#q 5aVMf79W-\0\0\0\17o\bÔ]\ 1\0#q Mpaf9tje-\0\0\0\17o\bÜ]\ 1\0#q 5Pm9MTeo-\0\0\0\17o\bä]\ 1\0#q t7xUVJUo-\0\0\0\17o\bì]\ 1\0#q SR1ibG8T-\0\0\0\17o\bô]\ 1\0#q G+mE9pDB-\0\0\0\17o\bü]\ 1\0#q pFKsllWe-\0\0\0\17o\b\ 4^\ 1\0#q 3HKtI8x6-\0\0\0\17o\b\f^\ 1\0#q SfEmFttp-\0\0\0\17o\b\14^\ 1\0#q JpEsCWDS-\0\0\0\17o\b\1c^\ 1\0#q lS/NdtwJ-\0\0\0\17o\b$^\ 1\0#q 44ls8MVR-\0\0\0\17o\b,^\ 1\0#q i1bmLU08-\0\0\0\17o\b4^\ 1\0#q xzI4bQf8-\0\0\0\17o\b<^\ 1\0#q lyf3o/X5-\0\0\0\17o\bD^\ 1\0#q 8cfuZXke-\0\0\0\17o\bL^\ 1\0#q jA9K/Wkv-\0\0\0\17o\bT^\ 1\0#q /oCpOX8A-\0\0\0\17o\b\^\ 1\0#q optO3imx-\0\0\0\17o\bd^\ 1\0#q pWsWZVKa-\0\0\0\17o\bl^\ 1\0#q PlFYOn5e-\0\0\0\17o\bt^\ 1\0#q kY1bMWGW-\0\0\0\17o\b|^\ 1\0#q YopWjCWG-\0\0\0\17o\b\84^\ 1\0#q KaLTIGkP-\0\0\0\17o\b\8c^\ 1\0#q wFSZp1BR-\0\0\0\17o\b\94^\ 1\0#q Tc+o1ds/-\0\0\0\17o\b\9c^\ 1\0#q D/mY0uTh-\0\0\0\17o\b¤^\ 1\0#q aKlVSilO-\0\0\0\17o\b¬^\ 1\0#q Hlj2XFcG-\0\0\0\17o\b´^\ 1\0#q 5JxLZUja-\0\0\0\17o\b¼^\ 1\0#q yIhAAACE-\0\0\0\17o\bÄ^\ 1\0#q hJTX703r-\0\0\0\17o\bÌ^\ 1\0#q bKxG0kYo-\0\0\0\17o\bÔ^\ 1\0#q RihhijZM-\0\0\0\17o\bÜ^\ 1\0#q YwxZWGEb-\0\0\0\17o\bä^\ 1\0#q WSBqVDlZ-\0\0\0\17o\bì^\ 1\0#q MpZTZSts-\0\0\0\17o\bô^\ 1\0#q kllbfWle-\0\0\0\17o\bü^\ 1\0#q ql5taVJK-\0\0\0\17o\b\ 4_\ 1\0#q GgnkxRrC-\0\0\0\17o\b\f_\ 1\0#q VSqptIny-\0\0\0\17o\b\14_\ 1\0#q lG2SrIwx-\0\0\0\17o\b\1c_\ 1\0#q +wwoppFC-\0\0\0\17o\b$_\ 1\0#q iU2sGh/N-\0\0\0\17o\b,_\ 1\0#q QbbQhTFW-\0\0\0\17o\b4_\ 1\0#q SmMltqpy-\0\0\0\17o\b<_\ 1\0#q 9NIxK+lX-\0\0\0\17o\bD_\ 1\0#q 6Y+UYTIb-\0\0\0\17o\bL_\ 1\0#q ZDzMDN6G-\0\0\0\17o\bT_\ 1\0#q /c8HjdYs-\0\0\0\17o\b\_\ 1\0#q VEVWSZxb-\0\0\0\17o\bd_\ 1\0#q tU0dN3q1-\0\0\0\17o\bl_\ 1\0#q u3bFRfC4-\0\0\0\17o\bt_\ 1\0#q kqOpVSPL-\0\0\0\17o\b|_\ 1\0#q o0pZSIiQ-\0\0\0\17o\b\84_\ 1\0#q OFnZ0d4q-\0\0\0\17o\b\8c_\ 1\0#q sQkz4Qqa-\0\0\0\17o\b\94_\ 1\0#q 1DlekfEJ-\0\0\0\17o\b\9c_\ 1\0#q ApicdLA4-\0\0\0\17o\b¤_\ 1\0#q a9OMxhyv-\0\0\0\17o\b¬_\ 1\0#q FegkCmuM-\0\0\0\17o\b´_\ 1\0#q 2yHU5NSc-\0\0\0\17o\b¼_\ 1\0#q I25iY4U2-\0\0\0\17o\bÄ_\ 1\0#q 4jHLltts-\0\0\0\17o\bÌ_\ 1\0#q 7StNCk4f-\0\0\0\17o\bÔ_\ 1\0#q rJzwu0Y6-\0\0\0\17o\bÜ_\ 1\0#q VjDDFk5R-\0\0\0\17o\bä_\ 1\0#q ppNKqlRA-\0\0\0\17o\bì_\ 1\0#q SOcpVq3M-\0\0\0\17o\bô_\ 1\0#q yVYiVt25-\0\0\0\17o\bü_\ 1\0#q mTCT+oTR-\0\0\0\17o\b\ 4`\ 1\0#q DRPR2CKq-\0\0\0\17o\b\f`\ 1\0#q KWrVqlUr-\0\0\0\17o\b\14`\ 1\0#q lqaNSrjD-\0\0\0\17o\b\1c`\ 1\0#q opxKbp6u-\0\0\0\17o\b$`\ 1\0#q pXldb1PU-\0\0\0\17o\b,`\ 1\0#q 9s4hJGJA-\0\0\0\17o\b4`\ 1\0#q 1VbLTiRJ-\0\0\0\17o\b<`\ 1\0#q 7eok2sM+-\0\0\0\17o\bD`\ 1\0#q UHLbthMQ-\0\0\0\17o\bL`\ 1\0#q UFfLLbZV-\0\0\0\17o\bT`\ 1\0#q qqyVK+p1-\0\0\0\17o\b\`\ 1\0#q Equ3tpth-\0\0\0\17o\bd`\ 1\0#q zYl7KWLE-\0\0\0\17o\bl`\ 1\0#q MTEq4Ll3-\0\0\0\17o\bt`\ 1\0#q YoV5stLb-\0\0\0\17o\b|`\ 1\0#q id+m7alk-\0\0\0\17o\b\84`\ 1\0#q lmvcxMyY-\0\0\0\17o\b\8c`\ 1\0#q aGFGVGL1-\0\0\0\17o\b\94`\ 1\0#q wYwx7R6x-\0\0\0\17o\b\9c`\ 1\0#q jFy7cn0p-\0\0\0\17o\b¤`\ 1\0#q ouDotHyZ-\0\0\0\17o\b¬`\ 1\0#q kzo/hptT-\0\0\0\17o\b´`\ 1\0#q ZOkPyO1e-\0\0\0\17o\b¼`\ 1\0#q mWMxhjZL-\0\0\0\17o\bÄ`\ 1\0#q l04IdDYK-\0\0\0\17o\bÌ`\ 1\0#q mkh1kK4y-\0\0\0\17o\bÔ`\ 1\0#q 2TMxcjHD-\0\0\0\17o\bÜ`\ 1\0#q mvtbZMWE-\0\0\0\17o\bä`\ 1\0#q +zDHXCnu-\0\0\0\17o\bì`\ 1\0#q D8yQLIjg-\0\0\0\17o\bô`\ 1\0#q 4UlcKxjH-\0\0\0\17o\bü`\ 1\0#q r9gopzYx-\0\0\0\17o\b\ 4a\ 1\0#q fuda1rEs-\0\0\0\17o\b\fa\ 1\0#q eHCK6OCQ-\0\0\0\17o\b\14a\ 1\0#q 6xT4Pju3-\0\0\0\17o\b\1ca\ 1\0#q n5/X9kki-\0\0\0\17o\b$a\ 1\0#q Ej6cN+/v-\0\0\0\17o\b,a\ 1\0#q l+uaZ5gY-\0\0\0\17o\b4a\ 1\0#q N/g5JlAU-\0\0\0\17o\b<a\ 1\0#q HSDiUhoO-\0\0\0\17o\bDa\ 1\0#q AhwMFMVB-\0\0\0\17o\bLa\ 1\0#q c3DDHMN3-\0\0\0\17o\bTa\ 1\0#q DFulS0xr-\0\0\0\17o\b\a\ 1\0#q gWmW4W5c-\0\0\0\17o\bda\ 1\0#q MuZhWta1-\0\0\0\17o\bla\ 1\0#q rW21tbbR-\0\0\0\17o\bta\ 1\0#q zrJVtBe+-\0\0\0\17o\b|a\ 1\0#q ulvYM/s8-\0\0\0\17o\b\84a\ 1\0#q dPjcuY66-\0\0\0\17o\b\8ca\ 1\0#q qqqisgnS-\0\0\0\17o\b\94a\ 1\0#q Pat2gVwb-\0\0\0\17o\b\9ca\ 1\0#q VEysKVgX-\0\0\0\17o\b¤a\ 1\0#q dk1QJsk8-\0\0\0\17o\b¬a\ 1\0#q RJCBD2v8-\0\0\0\17o\b´a\ 1\0#q tenlrnM3-\0\0\0\17o\b¼a\ 1\0#q edFeqa8Z-\0\0\0\17o\bÄa\ 1\0#q u7mq1raU-\0\0\0\17o\bÌa\ 1\0#q mEZP6xTG-\0\0\0\17o\bÔa\ 1\0#q t6zMkdvq-\0\0\0\17o\bÜa\ 1\0#q 9uZwdp7P-\0\0\0\17o\bäa\ 1\0#q TR2nSvKi-\0\0\0\17o\bìa\ 1\0#q dMcnTDZC-\0\0\0\17o\bôa\ 1\0#q bRQfLpsj-\0\0\0\17o\büa\ 1\0#q VtrN222z-\0\0\0\17o\b\ 4b\ 1\0#q 1LI9jbbS-\0\0\0\17o\b\fb\ 1\0#q Yde7dtk6-\0\0\0\17o\b\14b\ 1\0#q DgycBMmW-\0\0\0\17o\b\1cb\ 1\0#q 9OTcaTFM-\0\0\0\17o\b$b\ 1\0#q fB8NtuYi-\0\0\0\17o\b,b\ 1\0#q TvVscobN-\0\0\0\17o\b4b\ 1\0#q GKRo6Wb4-\0\0\0\17o\b<b\ 1\0#q zDniY3e2-\0\0\0\17o\bDb\ 1\0#q mSmsjJQJ-\0\0\0\17o\bLb\ 1\0#q 4EQ2vqQk-\0\0\0\17o\bTb\ 1\0#q RVGM8qYh-\0\0\0\17o\b\b\ 1\0#q 3v0q2rPt-\0\0\0\17o\bdb\ 1\0#q eqmFz2k1-\0\0\0\17o\blb\ 1\0#q KQNMUOrL-\0\0\0\17o\btb\ 1\0#q k2hBsGYs-\0\0\0\17o\b|b\ 1\0#q 7NRoFGZ5-\0\0\0\17o\b\84b\ 1\0#q rKHrKVFW-\0\0\0\17o\b\8cb\ 1\0#q Up3oJ4GS-\0\0\0\17o\b\94b\ 1\0#q +bM2pved-\0\0\0\17o\b\9cb\ 1\0#q Th2+z59q-\0\0\0\17o\b¤b\ 1\0#q cemFaIM+-\0\0\0\17o\b¬b\ 1\0#q lnMKY/XL-\0\0\0\17o\b´b\ 1\0#q M2leOJtT-\0\0\0\17o\b¼b\ 1\0#q iZEVfbeo-\0\0\0\17o\bÄb\ 1\0#q n1+vwZOB-\0\0\0\17o\bÌb\ 1\0#q hQgviaCM-\0\0\0\17o\bÔb\ 1\0#q yAjYhRqy-\0\0\0\17o\bÜb\ 1\0#q LmywXa6s-\0\0\0\17o\bäb\ 1\0#q JtAjY0ek-\0\0\0\17o\bìb\ 1\0#q bBVdHErI-\0\0\0\17o\bôb\ 1\0#q 5ucHJgQ4-\0\0\0\17o\büb\ 1\0#q jsRIimS+-\0\0\0\17o\b\ 4c\ 1\0#q VhHvLz2P-\0\0\0\17o\b\fc\ 1\0#q o9PoKp4f-\0\0\0\17o\b\14c\ 1\0#q Ly9uDHlj-\0\0\0\17o\b\1cc\ 1\0#q DyKyG7cV-\0\0\0\17o\b$c\ 1\0#q tjlTlwPJ-\0\0\0\17o\b,c\ 1\0#q 2wD56Xk0-\0\0\0\17o\b4c\ 1\0#q 2ttipijb-\0\0\0\17o\b<c\ 1\0#q GTs6TRK6-\0\0\0\17o\bDc\ 1\0#q R26babRK-\0\0\0\17o\bLc\ 1\0#q 3K25I5U6-\0\0\0\17o\bTc\ 1\0#q OTolR0fL-\0\0\0\17o\b\c\ 1\0#q t24J9Hae-\0\0\0\17o\bdc\ 1\0#q VeHM4svh-\0\0\0\17o\blc\ 1\0#q puNNlYp5-\0\0\0\17o\btc\ 1\0#q eDRNLKaW-\0\0\0\17o\b|c\ 1\0#q rGQiqmZb-\0\0\0\17o\b\84c\ 1\0#q s0Tlo8Bp-\0\0\0\17o\b\8cc\ 1\0#q tppto4Th-\0\0\0\17o\b\94c\ 1\0#q Gn0cT6On-\0\0\0\17o\b\9cc\ 1\0#q AeX+R8K2-\0\0\0\17o\b¤c\ 1\0#q 5e3KOzaU-\0\0\0\17o\b¬c\ 1\0#q pVttKUnl-\0\0\0\17o\b´c\ 1\0#q UhZWFTas-\0\0\0\17o\b¼c\ 1\0#q OmERzfpm-\0\0\0\17o\bÄc\ 1\0#q b6O47lt3-\0\0\0\17o\bÌc\ 1\0#q Whna6Emi-\0\0\0\17o\bÔc\ 1\0#q B7nAKT0e-\0\0\0\17o\bÜc\ 1\0#q A/sERTa2-\0\0\0\17o\bäc\ 1\0#q uhyCini8-\0\0\0\17o\bìc\ 1\0#q 5zJ/DpU/-\0\0\0\17o\bôc\ 1\0#q B/+m3fJ/-\0\0\0\17o\büc\ 1\0#q wH9Y9Aki-\0\0\0\17o\b\ 4d\ 1\0#q PcclOX2Y-\0\0\0\17o\b\fd\ 1\0#q n/g2elK/-\0\0\0\17o\b\14d\ 1\0#q 4y2ikYKw-\0\0\0\17o\b\1cd\ 1\0#q UzMZcuJV-\0\0\0\17o\b$d\ 1\0#q Fe362bba-\0\0\0\17o\b,d\ 1\0#q GluwykCm-\0\0\0\17o\b4d\ 1\0#q E8ysyzLF-\0\0\0\17o\b<d\ 1\0#q rmryuvj1-\0\0\0\17o\bDd\ 1\0#q Xz/S9/AA-\0\0\0\17o\bLd\ 1\0#q AF15cn4T-\0\0\0\17o\bTd\ 1\0#q bNPgsRs7-\0\0\0\17o\b\d\ 1\0#q cOFV/dG3-\0\0\0\17o\bdd\ 1\0#q g0p+7T5d-\0\0\0\17o\bld\ 1\0#q L60/tdkg-\0\0\0\17o\btd\ 1\0#q pyzk/3v8-\0\0\0\17o\b|d\ 1\0#q imkP80cF-\0\0\0\17o\b\84d\ 1\0#q iv6KUxX9-\0\0\0\17o\b\8cd\ 1\0#q LGz9Vfy9-\0\0\0\17o\b\94d\ 1\0#q n0NI+HBM-\0\0\0\17o\b\9cd\ 1\0#q GjFPGRfU-\0\0\0\17o\b¤d\ 1\0#q 20/oK/wT-\0\0\0\17o\b¬d\ 1\0#q +7+V6CiR-\0\0\0\17o\b´d\ 1\0#q 4ktktkvJ-\0\0\0\17o\b¼d\ 1\0#q P6O5j9Kt-\0\0\0\17o\bÄd\ 1\0#q pUGP1T4k-\0\0\0\17o\bÌd\ 1\0#q kf+7GZWM-\0\0\0\17o\bÔd\ 1\0#q J/d/NKP8-\0\0\0\17o\bÜd\ 1\0#q Ksq/q7hR-\0\0\0\17o\bäd\ 1\0#q yh+q/vOT-\0\0\0\17o\bìd\ 1\0#q /iN1f/NG-\0\0\0\17o\bôd\ 1\0#q Jt/f9yWf-\0\0\0\17o\büd\ 1\0#q 5H9z+wKW-\0\0\0\17o\b\ 4e\ 1\0#q ITjGZjP2-\0\0\0\17o\b\fe\ 1\0#q GmInSyTk-\0\0\0\17o\b\14e\ 1\0#q Ro2qVStS-\0\0\0\17o\b\1ce\ 1\0#q ThT8HxX8-\0\0\0\17o\b$e\ 1\0#q MximI2dI-\0\0\0\17o\b,e\ 1\0#q qo04dIbQ-\0\0\0\17o\b4e\ 1\0#q vxbWO2MV-\0\0\0\17o\b<e\ 1\0#q GkVTxHSI-\0\0\0\17o\bDe\ 1\0#q 0R/h0eev-\0\0\0\17o\bLe\ 1\0#q LpWSyT2p-\0\0\0\17o\bTe\ 1\0#q 9GP8P1y2-\0\0\0\17o\b\e\ 1\0#q m2c1q832-\0\0\0\17o\bde\ 1\0#q 5VIvE485-\0\0\0\17o\ble\ 1\0#q eDI9AlOH-\0\0\0\17o\bte\ 1\0#q KGBw4JhD-\0\0\0\17o\b|e\ 1\0#q iv5HUmnS-\0\0\0\17o\b\84e\ 1\0#q O00Q40Je-\0\0\0\17o\b\8ce\ 1\0#q rcSSy5GX-\0\0\0\17o\b\94e\ 1\0#q LGVUp2n0-\0\0\0\17o\b\9ce\ 1\0#q eDpFE6T4-\0\0\0\17o\b¤e\ 1\0#q Y/r+er5Y-\0\0\0\17o\b¬e\ 1\0#q qJai+n4M-\0\0\0\17o\b´e\ 1\0#q phhmLSwD-\0\0\0\17o\b¼e\ 1\0#q 8QKQoGSR-\0\0\0\17o\bÄe\ 1\0#q J/o+6YvW-\0\0\0\17o\bÌe\ 1\0#q aSVmfLS2-\0\0\0\17o\bÔe\ 1\0#q qpnMM9Wm-\0\0\0\17o\bÜe\ 1\0#q HTRzMJxy-\0\0\0\17o\bäe\ 1\0#q 0qHVaVET-\0\0\0\17o\bìe\ 1\0#q OYZ1ScEw-\0\0\0\17o\bôe\ 1\0#q OJ9g0NPA-\0\0\0\17o\büe\ 1\0#q mjGk0rSt-\0\0\0\17o\b\ 4f\ 1\0#q NtsbQ5MG-\0\0\0\17o\b\ff\ 1\0#q 2BivKYNI-\0\0\0\17o\b\14f\ 1\0#q 9Fvbiqv8-\0\0\0\17o\b\1cf\ 1\0#q b+qqdv6P-\0\0\0\17o\b$f\ 1\0#q L9GI+O0l-\0\0\0\17o\b,f\ 1\0#q co7fpI4c-\0\0\0\17o\b4f\ 1\0#q Ei8XLlw2-\0\0\0\17o\b<f\ 1\0#q kn5YnpWF-\0\0\0\17o\bDf\ 1\0#q TwgTabky-\0\0\0\17o\bLf\ 1\0#q liH7Ax+f-\0\0\0\17o\bTf\ 1\0#q y+323r5B-\0\0\0\17o\b\f\ 1\0#q IEhez17d-\0\0\0\17o\bdf\ 1\0#q dXMxVVQF-\0\0\0\17o\blf\ 1\0#q UOdlCkEi-\0\0\0\17o\btf\ 1\0#q QJigNAR9-\0\0\0\17o\b|f\ 1\0#q MV9a+Xx1-\0\0\0\17o\b\84f\ 1\0#q 6vk7dzgH-\0\0\0\17o\b\8cf\ 1\0#q lDoGcCQ7-\0\0\0\17o\b\94f\ 1\0#q 4xnfnz3r-\0\0\0\17o\b\9cf\ 1\0#q zzvXO4dl-\0\0\0\17o\b¤f\ 1\0#q aYNK5NOU-\0\0\0\17o\b¬f\ 1\0#q kh4fqSwe-\0\0\0\17o\b´f\ 1\0#q oaJidvSK-\0\0\0\17o\b¼f\ 1\0#q 2eXFtkPP-\0\0\0\17o\bÄf\ 1\0#q EfCh9Gkm-\0\0\0\17o\bÌf\ 1\0#q XRyk9Pzm-\0\0\0\17o\bÔf\ 1\0#q ZVzMqjDG-\0\0\0\17o\bÜf\ 1\0#q leXlHlJE-\0\0\0\17o\bäf\ 1\0#q 5ZMZSrZt-\0\0\0\17o\bìf\ 1\0#q /Vu5MHK/-\0\0\0\17o\bôf\ 1\0#q 2HZNP2iv-\0\0\0\17o\büf\ 1\0#q mSPQ/6qw-\0\0\0\17o\b\ 4g\ 1\0#q /Hu3mR+n-\0\0\0\17o\b\fg\ 1\0#q CmQgJH8f-\0\0\0\17o\b\14g\ 1\0#q UlH/NlVM-\0\0\0\17o\b\1cg\ 1\0#q ZjKHCWNs-\0\0\0\17o\b$g\ 1\0#q fyX3+p/5-\0\0\0\17o\b,g\ 1\0#q 3h/1MZA1-\0\0\0\17o\b4g\ 1\0#q UFrEx/2M-\0\0\0\17o\b<g\ 1\0#q anCu/BiY-\0\0\0\17o\bDg\ 1\0#q s5NIwfyV-\0\0\0\17o\bLg\ 1\0#q 9hsjSn/V-\0\0\0\17o\bTg\ 1\0#q 9nhY5Phj-\0\0\0\17o\b\g\ 1\0#q I7Ullm1J-\0\0\0\17o\bdg\ 1\0#q VllLfJtZ-\0\0\0\17o\blg\ 1\0#q NrGVSVH0-\0\0\0\17o\btg\ 1\0#q hBWtW0en-\0\0\0\17o\b|g\ 1\0#q iUKWCpQp-\0\0\0\17o\b\84g\ 1\0#q lb1tteSG-\0\0\0\17o\b\8cg\ 1\0#q W0qTK02l-\0\0\0\17o\b\94g\ 1\0#q laKdJIwk-\0\0\0\17o\b\9cg\ 1\0#q +rhGI29x-\0\0\0\17o\b¤g\ 1\0#q HeDU7Wsz-\0\0\0\17o\b¬g\ 1\0#q dtKrDKso-\0\0\0\17o\b´g\ 1\0#q RP1Geg1M-\0\0\0\17o\b¼g\ 1\0#q yhiYmBAp-\0\0\0\17o\bÄg\ 1\0#q JgHZ+sFf-\0\0\0\17o\bÌg\ 1\0#q yDkcXDK/-\0\0\0\17o\bÔg\ 1\0#q ydg+VJSP-\0\0\0\17o\bÜg\ 1\0#q 5sSdLVsK-\0\0\0\17o\bäg\ 1\0#q tSHjkwmz-\0\0\0\17o\bìg\ 1\0#q ZhbIuvbv-\0\0\0\17o\bôg\ 1\0#q TXnHN1Bi-\0\0\0\17o\büg\ 1\0#q MYylZk7k-\0\0\0\17o\b\ 4h\ 1\0#q /LKCYDYH-\0\0\0\17o\b\fh\ 1\0#q X13JBDq8-\0\0\0\17o\b\14h\ 1\0#q YZURZWoi-\0\0\0\17o\b\1ch\ 1\0#q xpkaIyJu-\0\0\0\17o\b$h\ 1\0#q N7+dTwzt-\0\0\0\17o\b,h\ 1\0#q Xv57+nTh-\0\0\0\17o\b4h\ 1\0#q HDDHBkYh-\0\0\0\17o\b<h\ 1\0#q VKpPSK0U-\0\0\0\17o\bDh\ 1\0#q GMMYTbsK-\0\0\0\17o\bLh\ 1\0#q VqDzx4I8-\0\0\0\17o\bTh\ 1\0#q qh0+G90A-\0\0\0\17o\b\h\ 1\0#q Ala9VKVW-\0\0\0\17o\bdh\ 1\0#q aW0s7IZm-\0\0\0\17o\blh\ 1\0#q GGCsGJhh-\0\0\0\17o\bth\ 1\0#q SnC6DSPa-\0\0\0\17o\b|h\ 1\0#q cu07EkRI-\0\0\0\17o\b\84h\ 1\0#q 5jWcLUjw-\0\0\0\17o\b\8ch\ 1\0#q /d2+p5Lb-\0\0\0\17o\b\94h\ 1\0#q fLw/ft4t-\0\0\0\17o\b\9ch\ 1\0#q spaVjDMY-\0\0\0\17o\b¤h\ 1\0#q WjCpQqLB-\0\0\0\17o\b¬h\ 1\0#q UhDSjgT+-\0\0\0\17o\b´h\ 1\0#q k9T8hNA7-\0\0\0\17o\b¼h\ 1\0#q KVTkkn2G-\0\0\0\17o\bÄh\ 1\0#q nDBRs4gq-\0\0\0\17o\bÌh\ 1\0#q HgJXCnB8-\0\0\0\17o\bÔh\ 1\0#q vaJ5e0/l-\0\0\0\17o\bÜh\ 1\0#q /WLbZbFL-\0\0\0\17o\bäh\ 1\0#q FUpVRJEC-\0\0\0\17o\bìh\ 1\0#q IT7iSv69-\0\0\0\17o\bôh\ 1\0#q sHJkTAi1-\0\0\0\17o\büh\ 1\0#q mJkzExpM-\0\0\0\17o\b\ 4i\ 1\0#q sxUqaYaU-\0\0\0\17o\b\fi\ 1\0#q miWTRpNt-\0\0\0\17o\b\14i\ 1\0#q I5UcttEX-\0\0\0\17o\b\1ci\ 1\0#q FPVdQaiw-\0\0\0\17o\b$i\ 1\0#q V/wNOFTa-\0\0\0\17o\b,i\ 1\0#q FSaL45y+-\0\0\0\17o\b4i\ 1\0#q 41lrMYcv-\0\0\0\17o\b<i\ 1\0#q R0Cijhsl-\0\0\0\17o\bDi\ 1\0#q cNI/0x5X-\0\0\0\17o\bLi\ 1\0#q Yo0kXy7c-\0\0\0\17o\bTi\ 1\0#q q/RMSNtO-\0\0\0\17o\b\i\ 1\0#q U8qn+U1I-\0\0\0\17o\bdi\ 1\0#q Pp+mXMmZ-\0\0\0\17o\bli\ 1\0#q bhJ0PZ5B-\0\0\0\17o\bti\ 1\0#q ISOpVSyS-\0\0\0\17o\b|i\ 1\0#q G3jR/pLe-\0\0\0\17o\b\84i\ 1\0#q KmXKxwbv-\0\0\0\17o\b\8ci\ 1\0#q w08D+N6W-\0\0\0\17o\b\94i\ 1\0#q zGTJkSey-\0\0\0\17o\b\9ci\ 1\0#q hTax4Km0-\0\0\0\17o\b¤i\ 1\0#q mkp+2qVI-\0\0\0\17o\b¬i\ 1\0#q 0rFU2n8S-\0\0\0\17o\b´i\ 1\0#q vhDnkx7T-\0\0\0\17o\b¼i\ 1\0#q +ba3mQua-\0\0\0\17o\bÄi\ 1\0#q iT5PhZj/-\0\0\0\17o\bÌi\ 1\0#q BPIPTKvh-\0\0\0\17o\bÔi\ 1\0#q 1If7V05H-\0\0\0\17o\bÜi\ 1\0#q +Z/nVSKc-\0\0\0\17o\bäi\ 1\0#q n+SK/2dX-\0\0\0\17o\bìi\ 1\0#q 9F/Uvj+t-\0\0\0\17o\bôi\ 1\0#q YktW6Y9S-\0\0\0\17o\büi\ 1\0#q Js9U8H2+-\0\0\0\17o\b\ 4j\ 1\0#q uGZNORKn-\0\0\0\17o\b\fj\ 1\0#q w6+2/Cqt-\0\0\0\17o\b\14j\ 1\0#q q2vpfTbl-\0\0\0\17o\b\1cj\ 1\0#q suXEmsGz-\0\0\0\17o\b$j\ 1\0#q llqypVLF-\0\0\0\17o\b,j\ 1\0#q YDCVIQ9J-\0\0\0\17o\b4j\ 1\0#q 3NuEfwGn-\0\0\0\17o\b<j\ 1\0#q xGlfyMeY-\0\0\0\17o\bDj\ 1\0#q jQf6WRG+-\0\0\0\17o\bLj\ 1\0#q x+JPz9kl-\0\0\0\17o\bTj\ 1\0#q /QyP6sMY-\0\0\0\17o\b\j\ 1\0#q 0xZf5xV/-\0\0\0\17o\bdj\ 1\0#q I/U5f+p6-\0\0\0\17o\blj\ 1\0#q o7h0sRjp-\0\0\0\17o\btj\ 1\0#q 934eHA9K-\0\0\0\17o\b|j\ 1\0#q 9T3ZcSNL-\0\0\0\17o\b\84j\ 1\0#q Gkno0CQk-\0\0\0\17o\b\8cj\ 1\0#q YVp8JT0v-\0\0\0\17o\b\94j\ 1\0#q FuFfq7kI-\0\0\0\17o\b\9cj\ 1\0#q nwp9TyTE-\0\0\0\17o\b¤j\ 1\0#q +k95/GX6-\0\0\0\17o\b¬j\ 1\0#q qj9zhqP1-\0\0\0\17o\b´j\ 1\0#q y390T8OT-\0\0\0\17o\b¼j\ 1\0#q sAJxZv0p-\0\0\0\17o\bÄj\ 1\0#q BjS09ndu-\0\0\0\17o\bÌj\ 1\0#q /queeVeI-\0\0\0\17o\bÔj\ 1\0#q 9GunPNTJ-\0\0\0\17o\bÜj\ 1\0#q tIrybqni-\0\0\0\17o\bäj\ 1\0#q 5552x0a9-\0\0\0\17o\bìj\ 1\0#q g4GMHRBA-\0\0\0\17o\bôj\ 1\0#q AhHYgg4O-\0\0\0\17o\büj\ 1\0#q GOTGIx0m-\0\0\0\17o\b\ 4k\ 1\0#q d24x2cp1-\0\0\0\17o\b\fk\ 1\0#q ws56tnBh-\0\0\0\17o\b\14k\ 1\0#q yqW7W22G-\0\0\0\17o\b\1ck\ 1\0#q lI2+w+z4-\0\0\0\17o\b$k\ 1\0#q NJHpLENN-\0\0\0\17o\b,k\ 1\0#q vsSMmLVc-\0\0\0\17o\b4k\ 1\0#q LMVj9GSB-\0\0\0\17o\b<k\ 1\0#q NLTXNtfw-\0\0\0\17o\bDk\ 1\0#q xi4U4bKw-\0\0\0\17o\bLk\ 1\0#q MhtuWyY+-\0\0\0\17o\bTk\ 1\0#q 2mWYp5tt-\0\0\0\17o\b\k\ 1\0#q KqpA6paj-\0\0\0\17o\bdk\ 1\0#q 8vKRxEaw-\0\0\0\17o\blk\ 1\0#q vhY0NIfg-\0\0\0\17o\btk\ 1\0#q fiH9z+ya-\0\0\0\17o\b|k\ 1\0#q jt60n97P-\0\0\0\17o\b\84k\ 1\0#q +eZ9rS0x-\0\0\0\17o\b\8ck\ 1\0#q W0+VV/0s-\0\0\0\17o\b\94k\ 1\0#q P8sevxzx-\0\0\0\17o\b\9ck\ 1\0#q ZkupTbH8-\0\0\0\17o\b¤k\ 1\0#q sPl/D6tc-\0\0\0\17o\b¬k\ 1\0#q rSqnhp05-\0\0\0\17o\b´k\ 1\0#q PlHCOok2-\0\0\0\17o\b¼k\ 1\0#q cFqHB+kT-\0\0\0\17o\bÄk\ 1\0#q vuQ+xWMY-\0\0\0\17o\bÌk\ 1\0#q xjkg4SNq-\0\0\0\17o\bÔk\ 1\0#q TWUt19K/-\0\0\0\17o\bÜk\ 1\0#q fat9iuFW-\0\0\0\17o\bäk\ 1\0#q 5XN8JyNM-\0\0\0\17o\bìk\ 1\0#q VvGVP7r8-\0\0\0\17o\bôk\ 1\0#q 2PqvjL7j-\0\0\0\17o\bük\ 1\0#q tfwP8yYr-\0\0\0\17o\b\ 4l\ 1\0#q +QqSfsJ/-\0\0\0\17o\b\fl\ 1\0#q jvt2zClU-\0\0\0\17o\b\14l\ 1\0#q VYzM/e1n-\0\0\0\17o\b\1cl\ 1\0#q 9tRN7Zd5-\0\0\0\17o\b$l\ 1\0#q buwMVVKq-\0\0\0\17o\b,l\ 1\0#q RKoVR2Yx-\0\0\0\17o\b4l\ 1\0#q VWrU0/hH-\0\0\0\17o\b<l\ 1\0#q BU0sekk5-\0\0\0\17o\bDl\ 1\0#q eWPDSfeZ-\0\0\0\17o\bLl\ 1\0#q dQOaqRT0-\0\0\0\17o\bTl\ 1\0#q r4rFtLHe-\0\0\0\17o\b\l\ 1\0#q ZaEkiKs8-\0\0\0\17o\bdl\ 1\0#q vN+vcjw/-\0\0\0\17o\bll\ 1\0#q CGRlxRVk-\0\0\0\17o\btl\ 1\0#q q1SPDFex-\0\0\0\17o\b|l\ 1\0#q Pt0FOvhP-\0\0\0\17o\b\84l\ 1\0#q FuY6Tbab-\0\0\0\17o\b\8cl\ 1\0#q lve6MycQ-\0\0\0\17o\b\94l\ 1\0#q 4l0tzYO2-\0\0\0\17o\b\9cl\ 1\0#q m5eZhoWc-\0\0\0\17o\b¤l\ 1\0#q ZUOk7NTT-\0\0\0\17o\b¬l\ 1\0#q LtwdLblt-\0\0\0\17o\b´l\ 1\0#q 25Jy6YaT-\0\0\0\17o\b¼l\ 1\0#q DpixoPYK-\0\0\0\17o\bÄl\ 1\0#q KYtMSx4V-\0\0\0\17o\bÌl\ 1\0#q /I+Nn+Zd-\0\0\0\17o\bÔl\ 1\0#q TDBNJM+L-\0\0\0\17o\bÜl\ 1\0#q fQOkttkf-\0\0\0\17o\bäl\ 1\0#q VOk7faSB-\0\0\0\17o\bìl\ 1\0#q w+y2ei5Z-\0\0\0\17o\bôl\ 1\0#q haxgYP9n-\0\0\0\17o\bül\ 1\0#q mnNi2Fst-\0\0\0\17o\b\ 4m\ 1\0#q I8cfri5j-\0\0\0\17o\b\fm\ 1\0#q 4bHPFumZ-\0\0\0\17o\b\14m\ 1\0#q bbbybHMp-\0\0\0\17o\b\1cm\ 1\0#q Mg5WROgw-\0\0\0\17o\b$m\ 1\0#q +Q29S8lh-\0\0\0\17o\b,m\ 1\0#q iiGULhSj-\0\0\0\17o\b4m\ 1\0#q SdtjNpsy-\0\0\0\17o\b<m\ 1\0#q IlsyhYqx-\0\0\0\17o\bDm\ 1\0#q bcJrYw+o-\0\0\0\17o\bLm\ 1\0#q k8CH6HRj-\0\0\0\17o\bTm\ 1\0#q SvDSMVFQ-\0\0\0\17o\b\m\ 1\0#q qqko0xiI-\0\0\0\17o\bdm\ 1\0#q clqrGrAw-\0\0\0\17o\blm\ 1\0#q 0hpi/ouV-\0\0\0\17o\btm\ 1\0#q /i2foVy/-\0\0\0\17o\b|m\ 1\0#q oK1INsn/-\0\0\0\17o\b\84m\ 1\0#q LKzEnZt0-\0\0\0\17o\b\8cm\ 1\0#q 0/TfY/WW-\0\0\0\17o\b\94m\ 1\0#q sZMkwqJF-\0\0\0\17o\b\9cm\ 1\0#q KpVKpSGE-\0\0\0\17o\b¤m\ 1\0#q 5kJD5cnT-\0\0\0\17o\b¬m\ 1\0#q 5T6BPRj2-\0\0\0\17o\b´m\ 1\0#q k+rIH3fS-\0\0\0\17o\b¼m\ 1\0#q dvy2kEdD-\0\0\0\17o\bÄm\ 1\0#q 9W0T4tsh-\0\0\0\17o\bÌm\ 1\0#q +40PbR+x-\0\0\0\17o\bÔm\ 1\0#q RPpJN8az-\0\0\0\17o\bÜm\ 1\0#q aR9OJJrf-\0\0\0\17o\bäm\ 1\0#q GcJHGHBw-\0\0\0\17o\bìm\ 1\0#q 2OTGMmHP-\0\0\0\17o\bôm\ 1\0#q duPz+ryT-\0\0\0\17o\büm\ 1\0#q H3/TGTMY-\0\0\0\17o\b\ 4n\ 1\0#q 0bTThPa/-\0\0\0\17o\b\fn\ 1\0#q xbhjyxUT-\0\0\0\17o\b\14n\ 1\0#q Fkr8JJwY-\0\0\0\17o\b\1cn\ 1\0#q mivf1xmZ-\0\0\0\17o\b$n\ 1\0#q Jq2ySlSo-\0\0\0\17o\b,n\ 1\0#q JPBIfK/r-\0\0\0\17o\b4n\ 1\0#q ASBSF+cM-\0\0\0\17o\b<n\ 1\0#q /nZk213b-\0\0\0\17o\bDn\ 1\0#q MmBX5laT-\0\0\0\17o\bLn\ 1\0#q Tg0Vqrba-\0\0\0\17o\bTn\ 1\0#q kxFiRzCe-\0\0\0\17o\b\n\ 1\0#q Lg1rQx4x-\0\0\0\17o\bdn\ 1\0#q f2Vq/pUj-\0\0\0\17o\bln\ 1\0#q o01d0k/V-\0\0\0\17o\btn\ 1\0#q y7frMy3J-\0\0\0\17o\b|n\ 1\0#q IUqSKj8l-\0\0\0\17o\b\84n\ 1\0#q G44ZP1xk-\0\0\0\17o\b\8cn\ 1\0#q y5bcTEsH-\0\0\0\17o\b\94n\ 1\0#q L9YMZLGF-\0\0\0\17o\b\9cn\ 1\0#q +0n1bjZ+-\0\0\0\17o\b¤n\ 1\0#q MHj6OXau-\0\0\0\17o\b¬n\ 1\0#q 8pg6GVof-\0\0\0\17o\b´n\ 1\0#q 9Cv/Y9Bb-\0\0\0\17o\b¼n\ 1\0#q Wvn632UM-\0\0\0\17o\bÄn\ 1\0#q YJoMElJr-\0\0\0\17o\bÌn\ 1\0#q W1JQhbfu-\0\0\0\17o\bÔn\ 1\0#q 5MliIQxx-\0\0\0\17o\bÜn\ 1\0#q yxlFWYJJ-\0\0\0\17o\bän\ 1\0#q So/lsdkj-\0\0\0\17o\bìn\ 1\0#q /9Utg244-\0\0\0\17o\bôn\ 1\0#q /f72xHsU-\0\0\0\17o\bün\ 1\0#q qlRVMGPu-\0\0\0\17o\b\ 4o\ 1\0#q JWipOBhj-\0\0\0\17o\b\fo\ 1\0#q qEkxqGNg-\0\0\0\17o\b\14o\ 1\0#q op68j+4/-\0\0\0\17o\b\1co\ 1\0#q mhRTtlWM-\0\0\0\17o\b$o\ 1\0#q EwwuUKKd-\0\0\0\17o\b,o\ 1\0#q DCxGGldP-\0\0\0\17o\b4o\ 1\0#q 8X8NFUz8-\0\0\0\17o\b<o\ 1\0#q 5NW01rD7-\0\0\0\17o\bDo\ 1\0#q NpifMq2W-\0\0\0\17o\bLo\ 1\0#q o7dpQsUx-\0\0\0\17o\bTo\ 1\0#q ivU9S0/z-\0\0\0\17o\b\o\ 1\0#q YuHDin8g-\0\0\0\17o\bdo\ 1\0#q ytmwSEj4-\0\0\0\17o\blo\ 1\0#q WYqVwrKq-\0\0\0\17o\bto\ 1\0#q Fn2kfvYW-\0\0\0\17o\b|o\ 1\0#q yx06X1X9-\0\0\0\17o\b\84o\ 1\0#q 3T+Vj5iv-\0\0\0\17o\b\8co\ 1\0#q X+C0fH6n-\0\0\0\17o\b\94o\ 1\0#q AMNqMKFV-\0\0\0\17o\b\9co\ 1\0#q Xg8nuEYK-\0\0\0\17o\b¤o\ 1\0#q Kk2Rtat7-\0\0\0\17o\b¬o\ 1\0#q V7zXsSJC-\0\0\0\17o\b´o\ 1\0#q USSRT1tP-\0\0\0\17o\b¼o\ 1\0#q uvGtNOFn-\0\0\0\17o\bÄo\ 1\0#q GGB1Pnt/-\0\0\0\17o\bÌo\ 1\0#q MW1VDT4E-\0\0\0\17o\bÔo\ 1\0#q Q56UUWLF-\0\0\0\17o\bÜo\ 1\0#q FBZqjHB6-\0\0\0\17o\bäo\ 1\0#q 9cXANNLJ-\0\0\0\17o\bìo\ 1\0#q bE0k2zdl-\0\0\0\17o\bôo\ 1\0#q NHR0OU05-\0\0\0\17o\büo\ 1\0#q 6txtowmL-\0\0\0\17o\b\ 4p\ 1\0#q OO1WSsa6-\0\0\0\17o\b\fp\ 1\0#q mpA1B7Tl-\0\0\0\17o\b\14p\ 1\0#q xdF+0uvI-\0\0\0\17o\b\1cp\ 1\0#q tZVay3b0-\0\0\0\17o\b$p\ 1\0#q whrGdccX-\0\0\0\17o\b,p\ 1\0#q inUpEidg-\0\0\0\17o\b4p\ 1\0#q aTHSdubV-\0\0\0\17o\b<p\ 1\0#q Uqqtqqab-\0\0\0\17o\bDp\ 1\0#q ViKw14Em-\0\0\0\17o\bLp\ 1\0#q JmDeVXXL-\0\0\0\17o\bTp\ 1\0#q yvKySljt-\0\0\0\17o\b\p\ 1\0#q LGMq1t/w-\0\0\0\17o\bdp\ 1\0#q TEMgWhuj-\0\0\0\17o\blp\ 1\0#q LDJRJgxk-\0\0\0\17o\btp\ 1\0#q JlQy5UMl-\0\0\0\17o\b|p\ 1\0#q B40srBFe-\0\0\0\17o\b\84p\ 1\0#q Llq7bpq9-\0\0\0\17o\b\8cp\ 1\0#q ptq0rbSx-\0\0\0\17o\b\94p\ 1\0#q ohSrCmSR-\0\0\0\17o\b\9cp\ 1\0#q MyzLLLMS-\0\0\0\17o\b¤p\ 1\0#q FMMqVkss-\0\0\0\17o\b¬p\ 1\0#q wFVkqTKp-\0\0\0\17o\b´p\ 1\0#q lkqwklGC-\0\0\0\17o\b¼p\ 1\0#q sCyqplQs-\0\0\0\17o\bÄp\ 1\0#q WLGMZZmT-\0\0\0\17o\bÌp\ 1\0#q JwN3COML-\0\0\0\17o\bÔp\ 1\0#q WLVtt2fF-\0\0\0\17o\bÜp\ 1\0#q Uij5Hs/S-\0\0\0\17o\bäp\ 1\0#q R03sfZ5n-\0\0\0\17o\bìp\ 1\0#q glZWZjJS-\0\0\0\17o\bôp\ 1\0#q qn822RTB-\0\0\0\17o\büp\ 1\0#q pyxvWHlV-\0\0\0\17o\b\ 4q\ 1\0#q KjTbGVtS-\0\0\0\17o\b\fq\ 1\0#q KqskrbRp-\0\0\0\17o\b\14q\ 1\0#q KaRWKlUq-\0\0\0\17o\b\1cq\ 1\0#q Sk4VwY4c-\0\0\0\17o\b$q\ 1\0#q YMNTGkW1-\0\0\0\17o\b,q\ 1\0#q bk5Mk2jb-\0\0\0\17o\b4q\ 1\0#q g0RUmojT-\0\0\0\17o\b<q\ 1\0#q 0wxxKQVY-\0\0\0\17o\bDq\ 1\0#q hbbLZbFB-\0\0\0\17o\bLq\ 1\0#q oqok2slv-\0\0\0\17o\bTq\ 1\0#q xSlrqul/-\0\0\0\17o\b\q\ 1\0#q g7aXHwxi-\0\0\0\17o\bdq\ 1\0#q x/68Toof-\0\0\0\17o\blq\ 1\0#q 7qkpOaD4-\0\0\0\17o\btq\ 1\0#q wC2yq1Ew-\0\0\0\17o\b|q\ 1\0#q XZiapV6/-\0\0\0\17o\b\84q\ 1\0#q hsyJvBiy-\0\0\0\17o\b\8cq\ 1\0#q EnDHppUr-\0\0\0\17o\b\94q\ 1\0#q seSqqll+-\0\0\0\17o\b\9cq\ 1\0#q rGDc5R6W-\0\0\0\17o\b¤q\ 1\0#q rvWH+G9b-\0\0\0\17o\b¬q\ 1\0#q y3kboLdJ-\0\0\0\17o\b´q\ 1\0#q Kq9H7sVW-\0\0\0\17o\b¼q\ 1\0#q 0OfMc6vW-\0\0\0\17o\bÄq\ 1\0#q l01qZLMZ-\0\0\0\17o\bÌq\ 1\0#q GXXa6QEI-\0\0\0\17o\bÔq\ 1\0#q tcit7KxX-\0\0\0\17o\bÜq\ 1\0#q TeedbF5N-\0\0\0\17o\bäq\ 1\0#q 5WV5LJkt-\0\0\0\17o\bìq\ 1\0#q 1ZLKLEMp-\0\0\0\17o\bôq\ 1\0#q lYlj+iTA-\0\0\0\17o\büq\ 1\0#q 1EdNMJwt-\0\0\0\17o\b\ 4r\ 1\0#q IUTETRhJ-\0\0\0\17o\b\fr\ 1\0#q /Shi7iTF-\0\0\0\17o\b\14r\ 1\0#q IxhiMSWY-\0\0\0\17o\b\1cr\ 1\0#q FgxhilFc-\0\0\0\17o\b$r\ 1\0#q lagZLPw+-\0\0\0\17o\b,r\ 1\0#q zk+h+o0b-\0\0\0\17o\b4r\ 1\0#q MSmKxOFf-\0\0\0\17o\b<r\ 1\0#q TOrm2TbW-\0\0\0\17o\bDr\ 1\0#q XbWV6uG2-\0\0\0\17o\bLr\ 1\0#q zX+jEamL-\0\0\0\17o\bTr\ 1\0#q H9lX+6Yr-\0\0\0\17o\b\r\ 1\0#q /YLxH1w5-\0\0\0\17o\bdr\ 1\0#q c28qRqX+-\0\0\0\17o\blr\ 1\0#q +P6v9czJ-\0\0\0\17o\btr\ 1\0#q /Bpq0wP7-\0\0\0\17o\b|r\ 1\0#q uyQ7eB+V-\0\0\0\17o\b\84r\ 1\0#q f7n/N/A4-\0\0\0\17o\b\8cr\ 1\0#q I+n6Oyqa-\0\0\0\17o\b\94r\ 1\0#q f8ybStl8-\0\0\0\17o\b\9cr\ 1\0#q Wgvg5aMW-\0\0\0\17o\b¤r\ 1\0#q KcsqRmLC-\0\0\0\17o\b¬r\ 1\0#q pH+JHY7+-\0\0\0\17o\b´r\ 1\0#q o/ZUcf8b-\0\0\0\17o\b¼r\ 1\0#q Q0syoa0y-\0\0\0\17o\bÄr\ 1\0#q WdpVOGka-\0\0\0\17o\bÌr\ 1\0#q ZNpjvIUV-\0\0\0\17o\bÔr\ 1\0#q J+ZH6qhX-\0\0\0\17o\bÜr\ 1\0#q 3fZFanSy-\0\0\0\17o\bär\ 1\0#q HdkYpGWG-\0\0\0\17o\bìr\ 1\0#q xtjGKcNM-\0\0\0\17o\bôr\ 1\0#q NKwlSpDg-\0\0\0\17o\bür\ 1\0#q p8KdD2cj-\0\0\0\17o\b\ 4s\ 1\0#q 9bMv9zY2-\0\0\0\17o\b\fs\ 1\0#q 4SHDkmkf-\0\0\0\17o\b\14s\ 1\0#q 2xkDCf6L-\0\0\0\17o\b\1cs\ 1\0#q KQfCpoFa-\0\0\0\17o\b$s\ 1\0#q OJ9BoH5T-\0\0\0\17o\b,s\ 1\0#q Di2/9rCR-\0\0\0\17o\b4s\ 1\0#q hPqSKlR9-\0\0\0\17o\b<s\ 1\0#q EcmpFLro-\0\0\0\17o\bDs\ 1\0#q 0rH4U5fo-\0\0\0\17o\bLs\ 1\0#q dOMs3lzL-\0\0\0\17o\bTs\ 1\0#q MZaKYNom-\0\0\0\17o\b\s\ 1\0#q miU6RuIh-\0\0\0\17o\bds\ 1\0#q 0nD/kT7l-\0\0\0\17o\bls\ 1\0#q H58Cz8XL-\0\0\0\17o\bts\ 1\0#q MuKhGo2V-\0\0\0\17o\b|s\ 1\0#q 06T/Rhf9-\0\0\0\17o\b\84s\ 1\0#q p9apP5P0-\0\0\0\17o\b\8cs\ 1\0#q /xq2rWqv-\0\0\0\17o\b\94s\ 1\0#q 1erT/PLM-\0\0\0\17o\b\9cs\ 1\0#q qx/K0O2D-\0\0\0\17o\b¤s\ 1\0#q g/csyqf8-\0\0\0\17o\b¬s\ 1\0#q VH92myX+-\0\0\0\17o\b´s\ 1\0#q Z8BRTxbZ-\0\0\0\17o\b¼s\ 1\0#q HaYmgsP/-\0\0\0\17o\bÄs\ 1\0#q J9QmCR+7-\0\0\0\17o\bÌs\ 1\0#q y/0+qv0f-\0\0\0\17o\bÔs\ 1\0#q CnyiPJSH-\0\0\0\17o\bÜs\ 1\0#q CaH4SEiY-\0\0\0\17o\bäs\ 1\0#q fT7Hsxa0-\0\0\0\17o\bìs\ 1\0#q 6QsXGmMq-\0\0\0\17o\bôs\ 1\0#q TClIxIpR-\0\0\0\17o\büs\ 1\0#q FUn8jGqv-\0\0\0\17o\b\ 4t\ 1\0#q 7oxG3iH0-\0\0\0\17o\b\ft\ 1\0#q WUiCZpN8-\0\0\0\17o\b\14t\ 1\0#q b6/n1+1f-\0\0\0\17o\b\1ct\ 1\0#q kq7ffeV5-\0\0\0\17o\b$t\ 1\0#q XQXGJARn-\0\0\0\17o\b,t\ 1\0#q 3MyZKRCo-\0\0\0\17o\b4t\ 1\0#q sJhcTJSY-\0\0\0\17o\b<t\ 1\0#q UEP9MYaS-\0\0\0\17o\bDt\ 1\0#q lQxKRSo4-\0\0\0\17o\bLt\ 1\0#q T/usWhVI-\0\0\0\17o\bTt\ 1\0#q 0Ps/HwzG-\0\0\0\17o\b\t\ 1\0#q MyRhR1q2-\0\0\0\17o\bdt\ 1\0#q WLastVlj-\0\0\0\17o\blt\ 1\0#q MZmYxjw3-\0\0\0\17o\btt\ 1\0#q K6VX+qMd-\0\0\0\17o\b|t\ 1\0#q uROGGFym-\0\0\0\17o\b\84t\ 1\0#q qf4nekcJ-\0\0\0\17o\b\8ct\ 1\0#q jClisYLI-\0\0\0\17o\b\94t\ 1\0#q Pl8mk0rZ-\0\0\0\17o\b\9ct\ 1\0#q wHtB+viy-\0\0\0\17o\b¤t\ 1\0#q yk+VPL1H-\0\0\0\17o\b¬t\ 1\0#q uRApl/cZ-\0\0\0\17o\b´t\ 1\0#q MDw+MZfZ-\0\0\0\17o\b¼t\ 1\0#q t7Tx7LCp-\0\0\0\17o\bÄt\ 1\0#q LZS/LK6S-\0\0\0\17o\bÌt\ 1\0#q W2SkqS0s-\0\0\0\17o\bÔt\ 1\0#q cvTSTnLc-\0\0\0\17o\bÜt\ 1\0#q Gk28PRKV-\0\0\0\17o\bät\ 1\0#q pMSUr4Pi-\0\0\0\17o\bìt\ 1\0#q zlmNNE8Y-\0\0\0\17o\bôt\ 1\0#q GrZq/51J-\0\0\0\17o\büt\ 1\0#q Sfi7Ts2T-\0\0\0\17o\b\ 4u\ 1\0#q +5Tuf5cL-\0\0\0\17o\b\fu\ 1\0#q UaX6LUnQ-\0\0\0\17o\b\14u\ 1\0#q aR5PlE+Z-\0\0\0\17o\b\1cu\ 1\0#q yTiUqVaO-\0\0\0\17o\b$u\ 1\0#q ZTHx9XDI-\0\0\0\17o\b,u\ 1\0#q qqOjpwld-\0\0\0\17o\b4u\ 1\0#q JmO7TbfS-\0\0\0\17o\b<u\ 1\0#q 5VtUwnin-\0\0\0\17o\bDu\ 1\0#q Q/6Jhf1N-\0\0\0\17o\bLu\ 1\0#q p/3sSnS7-\0\0\0\17o\bTu\ 1\0#q Y/q9Btj4-\0\0\0\17o\b\u\ 1\0#q /60tF5xm-\0\0\0\17o\bdu\ 1\0#q T9MwRXPy-\0\0\0\17o\blu\ 1\0#q 8PM4fiKU-\0\0\0\17o\btu\ 1\0#q Oh/FVVRE-\0\0\0\17o\b|u\ 1\0#q YiiQhAhE-\0\0\0\17o\b\84u\ 1\0#q a3qu3nv2-\0\0\0\17o\b\8cu\ 1\0#q d7+q9S8O-\0\0\0\17o\b\94u\ 1\0#q 8rb0Bs06-\0\0\0\17o\b\9cu\ 1\0#q WlE0arEx-\0\0\0\17o\b¤u\ 1\0#q G4ZViJk4-\0\0\0\17o\b¬u\ 1\0#q YG2Gl1Nm-\0\0\0\17o\b´u\ 1\0#q RsyoMpaZ-\0\0\0\17o\b¼u\ 1\0#q V7PclFEk-\0\0\0\17o\bÄu\ 1\0#q hkSN7T1+-\0\0\0\17o\bÌu\ 1\0#q jx5uV62p-\0\0\0\17o\bÔu\ 1\0#q Gsk5ajBR-\0\0\0\17o\bÜu\ 1\0#q IogIzWpu-\0\0\0\17o\bäu\ 1\0#q cxals3vL-\0\0\0\17o\bìu\ 1\0#q LZmGWmKY-\0\0\0\17o\bôu\ 1\0#q UqcpZRpG-\0\0\0\17o\büu\ 1\0#q E2OC4ras-\0\0\0\17o\b\ 4v\ 1\0#q jHDE4E3a-\0\0\0\17o\b\fv\ 1\0#q VkxkzLZJ-\0\0\0\17o\b\14v\ 1\0#q SckySoFD-\0\0\0\17o\b\1cv\ 1\0#q 8JNDSmOG-\0\0\0\17o\b$v\ 1\0#q xNtM2uJg-\0\0\0\17o\b,v\ 1\0#q wFUYSjFF-\0\0\0\17o\b4v\ 1\0#q UqlFGExq-\0\0\0\17o\b<v\ 1\0#q 2zQorAow-\0\0\0\17o\bDv\ 1\0#q oxy2rlV/-\0\0\0\17o\bLv\ 1\0#q wdJPWk8R-\0\0\0\17o\bTv\ 1\0#q jHBV2lsF-\0\0\0\17o\b\v\ 1\0#q jhYX+gys-\0\0\0\17o\bdv\ 1\0#q yZkxh0f3-\0\0\0\17o\blv\ 1\0#q RhVg/4Uc-\0\0\0\17o\btv\ 1\0#q J6TuScH1-\0\0\0\17o\b|v\ 1\0#q VPy29yH5-\0\0\0\17o\b\84v\ 1\0#q DloLCqpU-\0\0\0\17o\b\8cv\ 1\0#q qInySSwx-\0\0\0\17o\b\94v\ 1\0#q RKrl+50K-\0\0\0\17o\b\9cv\ 1\0#q 0qqo24Ty-\0\0\0\17o\b¤v\ 1\0#q kjydiqiU-\0\0\0\17o\b¬v\ 1\0#q ngn5KlPj-\0\0\0\17o\b´v\ 1\0#q r2zMmZmZ-\0\0\0\17o\b¼v\ 1\0#q lXDMt/Qm-\0\0\0\17o\bÄv\ 1\0#q nwPDD7q8-\0\0\0\17o\bÌv\ 1\0#q JHcLH4Wj-\0\0\0\17o\bÔv\ 1\0#q VHYxiwsK-\0\0\0\17o\bÜv\ 1\0#q x8JjVH90-\0\0\0\17o\bäv\ 1\0#q Yz02rRwp-\0\0\0\17o\bìv\ 1\0#q tHkY4fT6-\0\0\0\17o\bôv\ 1\0#q Ksmn8HZH-\0\0\0\17o\büv\ 1\0#q weLk7kPR-\0\0\0\17o\b\ 4w\ 1\0#q GKpyh/eq-\0\0\0\17o\b\fw\ 1\0#q bPRt8Jw9-\0\0\0\17o\b\14w\ 1\0#q H0f9riJN-\0\0\0\17o\b\1cw\ 1\0#q 29Ik05Pj-\0\0\0\17o\b$w\ 1\0#q eYzM7a+q-\0\0\0\17o\b,w\ 1\0#q enD4QbH4-\0\0\0\17o\b4w\ 1\0#q OfJwfZMB-\0\0\0\17o\b<w\ 1\0#q 9ytJtyhX-\0\0\0\17o\bDw\ 1\0#q EiMJiVNH-\0\0\0\17o\bLw\ 1\0#q cUPwV4H6-\0\0\0\17o\bTw\ 1\0#q o7H3fBXS-\0\0\0\17o\b\w\ 1\0#q flFn+Sn3-\0\0\0\17o\bdw\ 1\0#q kdp9U/Hh-\0\0\0\17o\blw\ 1\0#q SqjtSP/Y-\0\0\0\17o\btw\ 1\0#q lJJT9D1K-\0\0\0\17o\b|w\ 1\0#q WFG1D7Gn-\0\0\0\17o\b\84w\ 1\0#q 2HR9iD60-\0\0\0\17o\b\8cw\ 1\0#q 4ZhiiTUj-\0\0\0\17o\b\94w\ 1\0#q aPujNmxM-\0\0\0\17o\b\9cw\ 1\0#q UhRQMUxV-\0\0\0\17o\b¤w\ 1\0#q YpiKFSJk-\0\0\0\17o\b¬w\ 1\0#q VJXJrRuO-\0\0\0\17o\b´w\ 1\0#q pD+nmZJ/-\0\0\0\17o\b¼w\ 1\0#q LmR07HlW-\0\0\0\17o\bÄw\ 1\0#q k3VZMyK/-\0\0\0\17o\bÌw\ 1\0#q m/D6vP7Z-\0\0\0\17o\bÔw\ 1\0#q tqy2BISP-\0\0\0\17o\bÜw\ 1\0#q UCQkdu9b-\0\0\0\17o\bäw\ 1\0#q zXnqeuj9-\0\0\0\17o\bìw\ 1\0#q E79X9hjU-\0\0\0\17o\bôw\ 1\0#q SttuMzBu-\0\0\0\17o\büw\ 1\0#q JcLcpmDm-\0\0\0\17o\b\ 4x\ 1\0#q XFzLmW0a-\0\0\0\17o\b\fx\ 1\0#q Nra22stG-\0\0\0\17o\b\14x\ 1\0#q jRo3xd71-\0\0\0\17o\b\1cx\ 1\0#q /j7Crbuq-\0\0\0\17o\b$x\ 1\0#q NuCV+Pn7-\0\0\0\17o\b,x\ 1\0#q RiTiM9JJ-\0\0\0\17o\b4x\ 1\0#q IEgAeHxJ-\0\0\0\17o\b<x\ 1\0#q dEfM80MF-\0\0\0\17o\bDx\ 1\0#q tPnBMxsr-\0\0\0\17o\bLx\ 1\0#q AgcxJUHB-\0\0\0\17o\bTx\ 1\0#q QgNneHDh-\0\0\0\17o\b\x\ 1\0#q d46b0pvH-\0\0\0\17o\bdx\ 1\0#q TJccMlKY-\0\0\0\17o\blx\ 1\0#q UIk+5RcO-\0\0\0\17o\btx\ 1\0#q Xp7Ryfl0-\0\0\0\17o\b|x\ 1\0#q Nnc0n5iT-\0\0\0\17o\b\84x\ 1\0#q GzpiTkxo-\0\0\0\17o\b\8cx\ 1\0#q FCf/H09m-\0\0\0\17o\b\94x\ 1\0#q HBodkFJS-\0\0\0\17o\b\9cx\ 1\0#q 2Z2cs427-\0\0\0\17o\b¤x\ 1\0#q TqZEjg2X-\0\0\0\17o\b¬x\ 1\0#q Kgms0uWP-\0\0\0\17o\b´x\ 1\0#q 9EwnyRTK-\0\0\0\17o\b¼x\ 1\0#q CH4BWvY2-\0\0\0\17o\bÄx\ 1\0#q oHETm/gw-\0\0\0\17o\bÌx\ 1\0#q zIiIJE4S-\0\0\0\17o\bÔx\ 1\0#q QGl2Ck88-\0\0\0\17o\bÜx\ 1\0#q xdoqynSI-\0\0\0\17o\bäx\ 1\0#q aAsnIZAH-\0\0\0\17o\bìx\ 1\0#q ItqcqEkc-\0\0\0\17o\bôx\ 1\0#q 5usa5371-\0\0\0\17o\büx\ 1\0#q h9/ghm6w-\0\0\0\17o\b\ 4y\ 1\0#q vaD++Ev8-\0\0\0\17o\b\fy\ 1\0#q O9O1aUzF-\0\0\0\17o\b\14y\ 1\0#q PwkL4FbX-\0\0\0\17o\b\1cy\ 1\0#q vIfOvp57-\0\0\0\17o\b$y\ 1\0#q 1rp7GmKU-\0\0\0\17o\b,y\ 1\0#q GlYdK/70-\0\0\0\17o\b4y\ 1\0#q n+m237St-\0\0\0\17o\b<y\ 1\0#q jy2V0w2w-\0\0\0\17o\bDy\ 1\0#q 6YfZFPh9-\0\0\0\17o\bLy\ 1\0#q Hg06PAx0-\0\0\0\17o\bTy\ 1\0#q ppwTTGGy-\0\0\0\17o\b\y\ 1\0#q Sp/LydK8-\0\0\0\17o\bdy\ 1\0#q /p8z7d2Z-\0\0\0\17o\bly\ 1\0#q mabu+zmX-\0\0\0\17o\bty\ 1\0#q HZJtVDh9-\0\0\0\17o\b|y\ 1\0#q axBEEQcz-\0\0\0\17o\b\84y\ 1\0#q HKc39VaV-\0\0\0\17o\b\8cy\ 1\0#q T4x8bLS/-\0\0\0\17o\b\94y\ 1\0#q TE/iYRwj-\0\0\0\17o\b\9cy\ 1\0#q wdM0rY+r-\0\0\0\17o\b¤y\ 1\0#q UH8HTgw/-\0\0\0\17o\b¬y\ 1\0#q pHI4Jpor-\0\0\0\17o\b´y\ 1\0#q pt5nzbKm-\0\0\0\17o\b¼y\ 1\0#q LJH82WyJ-\0\0\0\17o\bÄy\ 1\0#q NK5mnJ4D-\0\0\0\17o\bÌy\ 1\0#q eABtlKSy-\0\0\0\17o\bÔy\ 1\0#q i0srSV+j-\0\0\0\17o\bÜy\ 1\0#q HaGkaf0o-\0\0\0\17o\bäy\ 1\0#q L5Xqr49f-\0\0\0\17o\bìy\ 1\0#q 2cO3KPHd-\0\0\0\17o\bôy\ 1\0#q VlOlxT2L-\0\0\0\17o\büy\ 1\0#q botv5H7P-\0\0\0\17o\b\ 4z\ 1\0#q q5pfnuZz-\0\0\0\17o\b\fz\ 1\0#q /dmMfvq7-\0\0\0\17o\b\14z\ 1\0#q Hqnxosaf-\0\0\0\17o\b\1cz\ 1\0#q 5U5j9bbH-\0\0\0\17o\b$z\ 1\0#q 6/WKPbcO-\0\0\0\17o\b,z\ 1\0#q 7bK+EPh5-\0\0\0\17o\b4z\ 1\0#q IfmR4cj2-\0\0\0\17o\b<z\ 1\0#q lOqW0RIh-\0\0\0\17o\bDz\ 1\0#q +qOFlpQ4-\0\0\0\17o\bLz\ 1\0#q QPJP14ba-\0\0\0\17o\bTz\ 1\0#q 1ay0a5WM-\0\0\0\17o\b\z\ 1\0#q szhMV5f9-\0\0\0\17o\bdz\ 1\0#q J609T6Pl-\0\0\0\17o\blz\ 1\0#q I9nB/Z+l-\0\0\0\17o\btz\ 1\0#q tJpZfELl-\0\0\0\17o\b|z\ 1\0#q yFYfUpiT-\0\0\0\17o\b\84z\ 1\0#q UrTJy1Ra-\0\0\0\17o\b\8cz\ 1\0#q mlkyy1ar-\0\0\0\17o\b\94z\ 1\0#q GFKjH1Sm-\0\0\0\17o\b\9cz\ 1\0#q RptiNFKl-\0\0\0\17o\b¤z\ 1\0#q HlOxTypV-\0\0\0\17o\b¬z\ 1\0#q NuJAVJ4E-\0\0\0\17o\b´z\ 1\0#q rlpVbYWd-\0\0\0\17o\b¼z\ 1\0#q nGukOx25-\0\0\0\17o\bÄz\ 1\0#q SUDvhmkJ-\0\0\0\17o\bÌz\ 1\0#q SKvuGWZY-\0\0\0\17o\bÔz\ 1\0#q ZZExglQq-\0\0\0\17o\bÜz\ 1\0#q FSfb9gSR-\0\0\0\17o\bäz\ 1\0#q He26lLJV-\0\0\0\17o\bìz\ 1\0#q fZjBJ/oi-\0\0\0\17o\bôz\ 1\0#q PHr3rq/p-\0\0\0\17o\büz\ 1\0#q JEQkegQk-\0\0\0\17o\b\ 4{\ 1\0#q Cw6m6pxf-\0\0\0\17o\b\f{\ 1\0#q vmXePsQv-\0\0\0\17o\b\14{\ 1\0#q n9xLQI6K-\0\0\0\17o\b\1c{\ 1\0#q SRQIAG3b-\0\0\0\17o\b${\ 1\0#q EGfh7NUK-\0\0\0\17o\b,{\ 1\0#q cK53UPq8-\0\0\0\17o\b4{\ 1\0#q OHUkcacJ-\0\0\0\17o\b<{\ 1\0#q yvTMdOk6-\0\0\0\17o\bD{\ 1\0#q aVZtbeXD-\0\0\0\17o\bL{\ 1\0#q JrDQwQRB-\0\0\0\17o\bT{\ 1\0#q jBWHXQ31-\0\0\0\17o\b\{\ 1\0#q cy5mBlRZ-\0\0\0\17o\bd{\ 1\0#q 6IYlcEmE-\0\0\0\17o\bl{\ 1\0#q U04Y4cGE-\0\0\0\17o\bt{\ 1\0#q w43ZacPu-\0\0\0\17o\b|{\ 1\0#q bU5VthDl-\0\0\0\17o\b\84{\ 1\0#q icPuw5tq-\0\0\0\17o\b\8c{\ 1\0#q 27YxgrGO-\0\0\0\17o\b\94{\ 1\0#q OrbLbUDH-\0\0\0\17o\b\9c{\ 1\0#q k2YqK5Y+-\0\0\0\17o\b¤{\ 1\0#q iuHLp5DT-\0\0\0\17o\b¬{\ 1\0#q 4+JNH2/Z-\0\0\0\17o\b´{\ 1\0#q 8HtbEa9p-\0\0\0\17o\b¼{\ 1\0#q ifS5hRZb-\0\0\0\17o\bÄ{\ 1\0#q RbRJLmJk-\0\0\0\17o\bÌ{\ 1\0#q tJK4MBO+-\0\0\0\17o\bÔ{\ 1\0#q IfGu7xq/-\0\0\0\17o\bÜ{\ 1\0#q hYNWnTpG-\0\0\0\17o\bä{\ 1\0#q nT2zPJAB-\0\0\0\17o\bì{\ 1\0#q 7pIdsgDn-\0\0\0\17o\bô{\ 1\0#q jwae+mHs-\0\0\0\17o\bü{\ 1\0#q Zcy3KXSR-\0\0\0\17o\b\ 4|\ 1\0#q 8U8MMHx3-\0\0\0\17o\b\f|\ 1\0#q 67L6cwta-\0\0\0\17o\b\14|\ 1\0#q VLbW0oON-\0\0\0\17o\b\1c|\ 1\0#q WeD2UwAh-\0\0\0\17o\b$|\ 1\0#q lkYAd9Py-\0\0\0\17o\b,|\ 1\0#q GVl2b951-\0\0\0\17o\b4|\ 1\0#q gXi5PVcb-\0\0\0\17o\b<|\ 1\0#q 8QkPLMTq-\0\0\0\17o\bD|\ 1\0#q 0gBWTz4K-\0\0\0\17o\bL|\ 1\0#q b75X2bmG-\0\0\0\17o\bT|\ 1\0#q XKOkz4+P-\0\0\0\17o\b\|\ 1\0#q NebXzvhX-\0\0\0\17o\bd|\ 1\0#q 0lvnW92F-\0\0\0\17o\bl|\ 1\0#q LBBb7Y5N-\0\0\0\17o\bt|\ 1\0#q tIVito4V-\0\0\0\17o\b||\ 1\0#q iq+U3q3G-\0\0\0\17o\b\84|\ 1\0#q 5KxpPY05-\0\0\0\17o\b\8c|\ 1\0#q fL8uNtqq-\0\0\0\17o\b\94|\ 1\0#q VHwkaYHg-\0\0\0\17o\b\9c|\ 1\0#q 7TTw5Y28-\0\0\0\17o\b¤|\ 1\0#q GPVWo6bO-\0\0\0\17o\b¬|\ 1\0#q 3c2dGOmk-\0\0\0\17o\b´|\ 1\0#q 5G3CG38p-\0\0\0\17o\b¼|\ 1\0#q 48S6Hjls-\0\0\0\17o\bÄ|\ 1\0#q NF2N5UG3-\0\0\0\17o\bÌ|\ 1\0#q rhMMNpgt-\0\0\0\17o\bÔ|\ 1\0#q Tb7iCOst-\0\0\0\17o\bÜ|\ 1\0#q 5UUraeXa-\0\0\0\17o\bä|\ 1\0#q RgqdGFNm-\0\0\0\17o\bì|\ 1\0#q IlmjFNDb-\0\0\0\17o\bô|\ 1\0#q T2JT0+HD-\0\0\0\17o\bü|\ 1\0#q bb6fWUsv-\0\0\0\17o\b\ 4}\ 1\0#q Kq43XF85-\0\0\0\17o\b\f}\ 1\0#q mSaaDRzy-\0\0\0\17o\b\14}\ 1\0#q tq8wj6of-\0\0\0\17o\b\1c}\ 1\0#q RCj5Spba-\0\0\0\17o\b$}\ 1\0#q wpLGJ941-\0\0\0\17o\b,}\ 1\0#q qyZFjLKF-\0\0\0\17o\b4}\ 1\0#q SaYxiaJL-\0\0\0\17o\b<}\ 1\0#q LaQhJJAk-\0\0\0\17o\bD}\ 1\0#q hvLrtqoC-\0\0\0\17o\bL}\ 1\0#q ttttq21F-\0\0\0\17o\bT}\ 1\0#q iQaI9vwr-\0\0\0\17o\b\}\ 1\0#q DxA5e0qy-\0\0\0\17o\bd}\ 1\0#q 21HycDga-\0\0\0\17o\bl}\ 1\0#q RwSPs8Q8-\0\0\0\17o\bt}\ 1\0#q LbbbaEEq-\0\0\0\17o\b|}\ 1\0#q JAA+29r5-\0\0\0\17o\b\84}\ 1\0#q V87e9va2-\0\0\0\17o\b\8c}\ 1\0#q 19Eb4CSi-\0\0\0\17o\b\94}\ 1\0#q IivrXz3x-\0\0\0\17o\b\9c}\ 1\0#q YwYxlsMd-\0\0\0\17o\b¤}\ 1\0#q qma+mXMu-\0\0\0\17o\b¬}\ 1\0#q MrKWCsMV-\0\0\0\17o\b´}\ 1\0#q UFYvUsRa-\0\0\0\17o\b¼}\ 1\0#q VppRgxw1-\0\0\0\17o\bÄ}\ 1\0#q JXOMb3mL-\0\0\0\17o\bÌ}\ 1\0#q yozTBtdt-\0\0\0\17o\bÔ}\ 1\0#q NjDDApBM-\0\0\0\17o\bÜ}\ 1\0#q AoSHCRow-\0\0\0\17o\bä}\ 1\0#q phkwjDBu-\0\0\0\17o\bì}\ 1\0#q cNtDaRKM-\0\0\0\17o\bô}\ 1\0#q MYKomhyN-\0\0\0\17o\bü}\ 1\0#q Y0ck0nxv-\0\0\0\17o\b\ 4~\ 1\0#q 7WzTGIgK-\0\0\0\17o\b\f~\ 1\0#q aWfqbVi/-\0\0\0\17o\b\14~\ 1\0#q VMlGxYTH-\0\0\0\17o\b\1c~\ 1\0#q 9BkkfLWr-\0\0\0\17o\b$~\ 1\0#q fruDbbbd-\0\0\0\17o\b,~\ 1\0#q SUqaY2JU-\0\0\0\17o\b4~\ 1\0#q cG9pYR+O-\0\0\0\17o\b<~\ 1\0#q 0/p+5jB/-\0\0\0\17o\bD~\ 1\0#q JZUMKxWI-\0\0\0\17o\bL~\ 1\0#q qpUVIKVE-\0\0\0\17o\bT~\ 1\0#q VQxZMcum-\0\0\0\17o\b\~\ 1\0#q 5tZISSZs-\0\0\0\17o\bd~\ 1\0#q kAD4W+H5-\0\0\0\17o\bl~\ 1\0#q 9LNJklKl-\0\0\0\17o\bt~\ 1\0#q fGlrqabJ-\0\0\0\17o\b|~\ 1\0#q QptdXKqV-\0\0\0\17o\b\84~\ 1\0#q KsqlUqOA-\0\0\0\17o\b\8c~\ 1\0#q aRSiVP6P-\0\0\0\17o\b\94~\ 1\0#q eBAlSQJC-\0\0\0\17o\b\9c~\ 1\0#q TLBC2223-\0\0\0\17o\b¤~\ 1\0#q 6NPq6ejH-\0\0\0\17o\b¬~\ 1\0#q cSd2rZE7-\0\0\0\17o\b´~\ 1\0#q YfVPKyfU-\0\0\0\17o\b¼~\ 1\0#q T4b7fr8W-\0\0\0\17o\bÄ~\ 1\0#q yefXfb6N-\0\0\0\17o\bÌ~\ 1\0#q MyWzwG2m-\0\0\0\17o\bÔ~\ 1\0#q Ep4bur6p-\0\0\0\17o\bÜ~\ 1\0#q an33d8BX-\0\0\0\17o\bä~\ 1\0#q GubpOl5e-\0\0\0\17o\bì~\ 1\0#q d4jcsltU-\0\0\0\17o\bô~\ 1\0#q aNEoRiM8-\0\0\0\17o\bü~\ 1\0#q GkA0MS2l-\0\0\0\17o\b\ 4\7f\ 1\0#q i5l+V2vw-\0\0\0\17o\b\f\7f\ 1\0#q 4XIm74fH-\0\0\0\17o\b\14\7f\ 1\0#q ps8HR/jS-\0\0\0\17o\b\1c\7f\ 1\0#q /q+HQ8pS-\0\0\0\17o\b$\7f\ 1\0#q v0K84J8+-\0\0\0\17o\b,\7f\ 1\0#q flIn1SJ6-\0\0\0\17o\b4\7f\ 1\0#q +UsU+C0c-\0\0\0\17o\b<\7f\ 1\0#q 9Aop1HSt-\0\0\0\17o\bD\7f\ 1\0#q KsYGMDKx-\0\0\0\17o\bL\7f\ 1\0#q VVbVX8PI-\0\0\0\17o\bT\7f\ 1\0#q 4Q6YTdhx-\0\0\0\17o\b\\7f\ 1\0#q S2Nirbpb-\0\0\0\17o\bd\7f\ 1\0#q f9Rt6er8-\0\0\0\17o\bl\7f\ 1\0#q OQx00quK-\0\0\0\17o\bt\7f\ 1\0#q /pxvKLQg-\0\0\0\17o\b|\7f\ 1\0#q CMAPno3L-\0\0\0\17o\b\84\7f\ 1\0#q mmAsuG5c-\0\0\0\17o\b\8c\7f\ 1\0#q 3ARCCJ9n-\0\0\0\17o\b\94\7f\ 1\0#q kfLTE07U-\0\0\0\17o\b\9c\7f\ 1\0#q WQ+xE4df-\0\0\0\17o\b¤\7f\ 1\0#q ZtP3VPs7-\0\0\0\17o\b¬\7f\ 1\0#q YjtMjphy-\0\0\0\17o\b´\7f\ 1\0#q P+UhGz0R-\0\0\0\17o\b¼\7f\ 1\0#q 9z8FYVLW-\0\0\0\17o\bÄ\7f\ 1\0#q Vdq/Htqr-\0\0\0\17o\bÌ\7f\ 1\0#q 8qLbe2t9-\0\0\0\17o\bÔ\7f\ 1\0#q wr6vumCB-\0\0\0\17o\bÜ\7f\ 1\0#q 9f/1f4sd-\0\0\0\17o\bä\7f\ 1\0#q o/2GBgKK-\0\0\0\17o\bì\7f\ 1\0#q f9A+qrof-\0\0\0\17o\bô\7f\ 1\0#q yy5yaOmG-\0\0\0\17o\bü\7f\ 1\0#q MYh/zf7g-\0\0\0\17o\b\ 4\80\ 1\0#q pXixGz8L-\0\0\0\17o\b\f\80\ 1\0#q +5/xfK/0-\0\0\0\17o\b\14\80\ 1\0#q YL8tv7GR-\0\0\0\17o\b\1c\80\ 1\0#q +gqTsvxJ-\0\0\0\17o\b$\80\ 1\0#q 9Ht9VkkL-\0\0\0\17o\b,\80\ 1\0#q IxYsKqMP-\0\0\0\17o\b4\80\ 1\0#q DNH2Sv8q-\0\0\0\17o\b<\80\ 1\0#q 0SrVcBPl-\0\0\0\17o\bD\80\ 1\0#q If3fwNJ/-\0\0\0\17o\bL\80\ 1\0#q tUtJJygp-\0\0\0\17o\bT\80\ 1\0#q 7lJ+qPde-\0\0\0\17o\b\\80\ 1\0#q OJP8PnGm-\0\0\0\17o\bd\80\ 1\0#q 0/cbR/Cu-\0\0\0\17o\bl\80\ 1\0#q 1iq/DodI-\0\0\0\17o\bt\80\ 1\0#q qyKlElfh-\0\0\0\17o\b|\80\ 1\0#q 9ROO50qs-\0\0\0\17o\b\84\80\ 1\0#q VPQ/KWck-\0\0\0\17o\b\8c\80\ 1\0#q mmleZE/K-\0\0\0\17o\b\94\80\ 1\0#q wjD935Yn-\0\0\0\17o\b\9c\80\ 1\0#q pOIH6pJJ-\0\0\0\17o\b¤\80\ 1\0#q krJ2Ojg/-\0\0\0\17o\b¬\80\ 1\0#q KkmBVi22-\0\0\0\17o\b´\80\ 1\0#q RUNKkxWo-\0\0\0\17o\b¼\80\ 1\0#q wxU7iMnl-\0\0\0\17o\bÄ\80\ 1\0#q aqlgNpJ8-\0\0\0\17o\bÌ\80\ 1\0#q pj7iYnkV-\0\0\0\17o\bÔ\80\ 1\0#q UWTvh03P-\0\0\0\17o\bÜ\80\ 1\0#q CvJ5UwWA-\0\0\0\17o\bä\80\ 1\0#q O+/U+8rw-\0\0\0\17o\bì\80\ 1\0#q tQ/m/pYc-\0\0\0\17o\bô\80\ 1\0#q u7dSLkkq-\0\0\0\17o\bü\80\ 1\0#q lUIKb4Ad-\0\0\0\17o\b\ 4\81\ 1\0#q xPxWQX6d-\0\0\0\17o\b\f\81\ 1\0#q K8cR/srl-\0\0\0\17o\b\14\81\ 1\0#q Nn5QkJHS-\0\0\0\17o\b\1c\81\ 1\0#q lU6YlWNK-\0\0\0\17o\b$\81\ 1\0#q sqyjRa1Z-\0\0\0\17o\b,\81\ 1\0#q MrLLMYBj-\0\0\0\17o\b4\81\ 1\0#q 6NRJ0Tlh-\0\0\0\17o\b<\81\ 1\0#q NqV6ntwb-\0\0\0\17o\bD\81\ 1\0#q HC0tcGIM-\0\0\0\17o\bL\81\ 1\0#q SikWx6q/-\0\0\0\17o\bT\81\ 1\0#q J86IAjIC-\0\0\0\17o\b\\81\ 1\0#q aXDPuClJ-\0\0\0\17o\bd\81\ 1\0#q RcO8kmIt-\0\0\0\17o\bl\81\ 1\0#q QriaGCUl-\0\0\0\17o\bt\81\ 1\0#q FzXDGSLi-\0\0\0\17o\b|\81\ 1\0#q FQTqmfrN-\0\0\0\17o\b\84\81\ 1\0#q Ozl03Ole-\0\0\0\17o\b\8c\81\ 1\0#q IMWrYKKb-\0\0\0\17o\b\94\81\ 1\0#q CrtOGYDo-\0\0\0\17o\b\9c\81\ 1\0#q M00bf+1W-\0\0\0\17o\b¤\81\ 1\0#q 6hV/xyoR-\0\0\0\17o\b¬\81\ 1\0#q H9H1kIxE-\0\0\0\17o\b´\81\ 1\0#q KqEqwhOh-\0\0\0\17o\b¼\81\ 1\0#q 0fbf3XzN-\0\0\0\17o\bÄ\81\ 1\0#q t1ZIaQ/Z-\0\0\0\17o\bÌ\81\ 1\0#q Tcp8CVPC-\0\0\0\17o\bÔ\81\ 1\0#q px/rV4xb-\0\0\0\17o\bÜ\81\ 1\0#q 9LJRO2Ff-\0\0\0\17o\bä\81\ 1\0#q AhRPU75R-\0\0\0\17o\bì\81\ 1\0#q FAhEnDwr-\0\0\0\17o\bô\81\ 1\0#q LCvgVkHF-\0\0\0\17o\bü\81\ 1\0#q pWj6sNJo-\0\0\0\17o\b\ 4\82\ 1\0#q 0rweXtOp-\0\0\0\17o\b\f\82\ 1\0#q yT+x5Tl0-\0\0\0\17o\b\14\82\ 1\0#q wTwqLD3p-\0\0\0\17o\b\1c\82\ 1\0#q VXSJ+5+R-\0\0\0\17o\b$\82\ 1\0#q tPl5TqEh-\0\0\0\17o\b,\82\ 1\0#q VD+w7piT-\0\0\0\17o\b4\82\ 1\0#q k2lwGKf1-\0\0\0\17o\b<\82\ 1\0#q bfq5W39V-\0\0\0\17o\bD\82\ 1\0#q r75V8q/9-\0\0\0\17o\bL\82\ 1\0#q /wWTBGo2-\0\0\0\17o\bT\82\ 1\0#q g0WqS2it-\0\0\0\17o\b\\82\ 1\0#q FWqKtY1W-\0\0\0\17o\bd\82\ 1\0#q osWrRVYr-\0\0\0\17o\bl\82\ 1\0#q UaxWiqxa-\0\0\0\17o\bt\82\ 1\0#q sa220Ftq-\0\0\0\17o\b|\82\ 1\0#q xFVbQaNU-\0\0\0\17o\b\84\82\ 1\0#q aotGxFsb-\0\0\0\17o\b\8c\82\ 1\0#q axtbSaLb-\0\0\0\17o\b\94\82\ 1\0#q G2tYrRrV-\0\0\0\17o\b\9c\82\ 1\0#q GoitRVEa-\0\0\0\17o\b¤\82\ 1\0#q 2iitFFbR-\0\0\0\17o\b¬\82\ 1\0#q qi2xWxVt-\0\0\0\17o\b´\82\ 1\0#q itrFaqNr-\0\0\0\17o\b¼\82\ 1\0#q RbGrVFWs-\0\0\0\17o\bÄ\82\ 1\0#q VtrFqoBZ-\0\0\0\17o\bÌ\82\ 1\0#q kqzAMyJm-\0\0\0\17o\bÔ\82\ 1\0#q CrMpSsxa-\0\0\0\17o\bÜ\82\ 1\0#q rGraooi2-\0\0\0\17o\bä\82\ 1\0#q o1WxaqxY-\0\0\0\17o\bì\82\ 1\0#q kirFkFgS-\0\0\0\17o\bô\82\ 1\0#q QP+X9/8v-\0\0\0\17o\bü\82\ 1\0#q 5ZP6G0/t-\0\0\0\17o\b\ 4\83\ 1\0#q c4bk13k3-\0\0\0\17o\b\f\83\ 1\0#q JrvDkTm8-\0\0\0\17o\b\14\83\ 1\0#q Quc3Qw/x-\0\0\0\17o\b\1c\83\ 1\0#q o2mMqVok-\0\0\0\17o\b$\83\ 1\0#q Qel047gD-\0\0\0\17o\b,\83\ 1\0#q u6KK9vXS-\0\0\0\17o\b4\83\ 1\0#q ItvS8kwS-\0\0\0\17o\b<\83\ 1\0#q VIXbC5SC-\0\0\0\17o\bD\83\ 1\0#q kWVJiFZg-\0\0\0\17o\bL\83\ 1\0#q hUtoVKxa-\0\0\0\17o\bT\83\ 1\0#q lLbdMKjl-\0\0\0\17o\b\\83\ 1\0#q WErKlStS-\0\0\0\17o\bd\83\ 1\0#q eOmTUeNg-\0\0\0\17o\bl\83\ 1\0#q u7o2dzri-\0\0\0\17o\bt\83\ 1\0#q ub3bxvGB-\0\0\0\17o\b|\83\ 1\0#q NRCbu64Y-\0\0\0\17o\b\84\83\ 1\0#q 4kT37cPB-\0\0\0\17o\b\8c\83\ 1\0#q IVhFJFkU-\0\0\0\17o\b\94\83\ 1\0#q hs5l65OB-\0\0\0\17o\b\9c\83\ 1\0#q c/xyiJn9-\0\0\0\17o\b¤\83\ 1\0#q pvMTp04G-\0\0\0\17o\b¬\83\ 1\0#q A55Yats2-\0\0\0\17o\b´\83\ 1\0#q p3krH/20-\0\0\0\17o\b¼\83\ 1\0#q yE1IIqJ4-\0\0\0\17o\bÄ\83\ 1\0#q GE72HU7u-\0\0\0\17o\bÌ\83\ 1\0#q YYM8Ubq8-\0\0\0\17o\bÔ\83\ 1\0#q 7w0emUBO-\0\0\0\17o\bÜ\83\ 1\0#q g4KzHejc-\0\0\0\17o\bä\83\ 1\0#q 5vnlBVjw-\0\0\0\17o\bì\83\ 1\0#q Wj2JDp78-\0\0\0\17o\bô\83\ 1\0#q uxUmIZjG-\0\0\0\17o\bü\83\ 1\0#q SSXv2+C+-\0\0\0\17o\b\ 4\84\ 1\0#q Vk2buCu5-\0\0\0\17o\b\f\84\ 1\0#q waLzxxtC-\0\0\0\17o\b\14\84\ 1\0#q qTeYuYkz-\0\0\0\17o\b\1c\84\ 1\0#q GRiwWkxW-\0\0\0\17o\b$\84\ 1\0#q MbuiWxbD-\0\0\0\17o\b,\84\ 1\0#q iVZW3Hey-\0\0\0\17o\b4\84\ 1\0#q 4sc9aW7D-\0\0\0\17o\b<\84\ 1\0#q LDfXXvBO-\0\0\0\17o\bD\84\ 1\0#q 8UcMOrE6-\0\0\0\17o\bL\84\ 1\0#q ZHKIJJkS-\0\0\0\17o\bT\84\ 1\0#q MuZM51Zh-\0\0\0\17o\b\\84\ 1\0#q DeUpVpMi-\0\0\0\17o\bd\84\ 1\0#q llJZpvUR-\0\0\0\17o\bl\84\ 1\0#q zSaUu8Tx-\0\0\0\17o\bt\84\ 1\0#q mWyQ4sN1-\0\0\0\17o\b|\84\ 1\0#q HLGJuVCy-\0\0\0\17o\b\84\84\ 1\0#q o1rGYzbr-\0\0\0\17o\b\8c\84\ 1\0#q G6nipyrX-\0\0\0\17o\b\94\84\ 1\0#q O7Z7vS43-\0\0\0\17o\b\9c\84\ 1\0#q pcWFeb5b-\0\0\0\17o\b¤\84\ 1\0#q U4saY8yV-\0\0\0\17o\b¬\84\ 1\0#q ux4640jF-\0\0\0\17o\b´\84\ 1\0#q LmIWjVTa-\0\0\0\17o\b¼\84\ 1\0#q VtUu6xHF-\0\0\0\17o\bÄ\84\ 1\0#q mprC7jGK-\0\0\0\17o\bÌ\84\ 1\0#q 0oY3kblG-\0\0\0\17o\bÔ\84\ 1\0#q mTI1k3ub-\0\0\0\17o\bÜ\84\ 1\0#q EQo4klMa-\0\0\0\17o\bä\84\ 1\0#q Sc87iGrn-\0\0\0\17o\bì\84\ 1\0#q c67p0dLL-\0\0\0\17o\bô\84\ 1\0#q SaMM8Wbg-\0\0\0\17o\bü\84\ 1\0#q ykoqxHuh-\0\0\0\17o\b\ 4\85\ 1\0#q UIiSVgcN-\0\0\0\17o\b\f\85\ 1\0#q s4ReusZ2-\0\0\0\17o\b\14\85\ 1\0#q W9pwcOl7-\0\0\0\17o\b\1c\85\ 1\0#q l6OFfAh1-\0\0\0\17o\b$\85\ 1\0#q 1ZNRZnWh-\0\0\0\17o\b,\85\ 1\0#q 576MW2q1-\0\0\0\17o\b4\85\ 1\0#q bFKxVnLe-\0\0\0\17o\b<\85\ 1\0#q +3xhp5sO-\0\0\0\17o\bD\85\ 1\0#q /llybe2u-\0\0\0\17o\bL\85\ 1\0#q 6vZwQiJ6-\0\0\0\17o\bT\85\ 1\0#q 3JuaKKNC-\0\0\0\17o\b\\85\ 1\0#q GBLFFoua-\0\0\0\17o\bd\85\ 1\0#q 715rvMY1-\0\0\0\17o\bl\85\ 1\0#q dJZyLBbr-\0\0\0\17o\bt\85\ 1\0#q OZ5XV5qe-\0\0\0\17o\b|\85\ 1\0#q IKQWC7JD-\0\0\0\17o\b\84\85\ 1\0#q CltJRnjc-\0\0\0\17o\b\8c\85\ 1\0#q MWVKILJ3-\0\0\0\17o\b\94\85\ 1\0#q QpiLVSjw-\0\0\0\17o\b\9c\85\ 1\0#q UMweGw6N-\0\0\0\17o\b¤\85\ 1\0#q EzJrF1i1-\0\0\0\17o\b¬\85\ 1\0#q Fr4tLGZj-\0\0\0\17o\b´\85\ 1\0#q FiWmbSya-\0\0\0\17o\b¼\85\ 1\0#q gjBTJHzl-\0\0\0\17o\bÄ\85\ 1\0#q DjD4ecQ6-\0\0\0\17o\bÌ\85\ 1\0#q 82snBkEB-\0\0\0\17o\bÔ\85\ 1\0#q IfIt4B0k-\0\0\0\17o\bÜ\85\ 1\0#q gWTyUekm-\0\0\0\17o\bä\85\ 1\0#q pzCiQ5yh-\0\0\0\17o\bì\85\ 1\0#q 1wM4G8Se-\0\0\0\17o\bô\85\ 1\0#q OG+NNwKd-\0\0\0\17o\bü\85\ 1\0#q jDrIdZ3n-\0\0\0\17o\b\ 4\86\ 1\0#q nxc5azJS-\0\0\0\17o\b\f\86\ 1\0#q gWIWMigB-\0\0\0\17o\b\14\86\ 1\0#q FTrbdrcC-\0\0\0\17o\b\1c\86\ 1\0#q 3d1FulyS-\0\0\0\17o\b$\86\ 1\0#q tyYtcJGJ-\0\0\0\17o\b,\86\ 1\0#q ReZlFmTV-\0\0\0\17o\b4\86\ 1\0#q NTS4yPGP-\0\0\0\17o\b<\86\ 1\0#q G6m4mU4U-\0\0\0\17o\bD\86\ 1\0#q pUnHfhrr-\0\0\0\17o\bL\86\ 1\0#q wWZWNdRv-\0\0\0\17o\bT\86\ 1\0#q xxpo63XA-\0\0\0\17o\b\\86\ 1\0#q 16Gk8d9E-\0\0\0\17o\bd\86\ 1\0#q E0Xhw0Mm-\0\0\0\17o\bl\86\ 1\0#q KiDFJNWV-\0\0\0\17o\bt\86\ 1\0#q 25mGqnfP-\0\0\0\17o\b|\86\ 1\0#q HiSZDmy0-\0\0\0\17o\b\84\86\ 1\0#q tLVotC9m-\0\0\0\17o\b\8c\86\ 1\0#q E3s7B8ef-\0\0\0\17o\b\94\86\ 1\0#q HiO2NasF-\0\0\0\17o\b\9c\86\ 1\0#q iqCyLUrM-\0\0\0\17o\b¤\86\ 1\0#q VTLjOkid-\0\0\0\17o\b¬\86\ 1\0#q BUijvl11-\0\0\0\17o\b´\86\ 1\0#q NMuFdid4-\0\0\0\17o\b¼\86\ 1\0#q Pnq556pj-\0\0\0\17o\bÄ\86\ 1\0#q 0CZeWiKi-\0\0\0\17o\bÌ\86\ 1\0#q RE4EFhe7-\0\0\0\17o\bÔ\86\ 1\0#q nIB0MWSo-\0\0\0\17o\bÜ\86\ 1\0#q VFVEKlEg-\0\0\0\17o\bä\86\ 1\0#q dTKChKRI-\0\0\0\17o\bì\86\ 1\0#q xmMBSnnM-\0\0\0\17o\bô\86\ 1\0#q iG9dA90R-\0\0\0\17o\bü\86\ 1\0#q I90p4oXn-\0\0\0\17o\b\ 4\87\ 1\0#q QyoVOzwO-\0\0\0\17o\b\f\87\ 1\0#q XmFFm7kU-\0\0\0\17o\b\14\87\ 1\0#q 1EJfOeLl-\0\0\0\17o\b\1c\87\ 1\0#q 7pwCnXR2-\0\0\0\17o\b$\87\ 1\0#q AkONIgVX-\0\0\0\17o\b,\87\ 1\0#q EixG8HO3-\0\0\0\17o\b4\87\ 1\0#q zk2uUXZ4-\0\0\0\17o\b<\87\ 1\0#q KDRPGOMQ-\0\0\0\17o\bD\87\ 1\0#q cFigu6MB-\0\0\0\17o\bL\87\ 1\0#q AynwUr5t-\0\0\0\17o\bT\87\ 1\0#q MSp4Zm3S-\0\0\0\17o\b\\87\ 1\0#q 97lkYwrK-\0\0\0\17o\bd\87\ 1\0#q bmYdS7N0-\0\0\0\17o\bl\87\ 1\0#q thbaW8cM-\0\0\0\17o\bt\87\ 1\0#q cuPGm2iN-\0\0\0\17o\b|\87\ 1\0#q lkxeVSsr-\0\0\0\17o\b\84\87\ 1\0#q DdwwNvjm-\0\0\0\17o\b\8c\87\ 1\0#q OMsQWV0b-\0\0\0\17o\b\94\87\ 1\0#q YCzEe/Eu-\0\0\0\17o\b\9c\87\ 1\0#q duWNOYe4-\0\0\0\17o\b¤\87\ 1\0#q t4neTnLW-\0\0\0\17o\b¬\87\ 1\0#q Q7yaysyt-\0\0\0\17o\b´\87\ 1\0#q 7Nq5jW3w-\0\0\0\17o\b¼\87\ 1\0#q 84tro7rF-\0\0\0\17o\bÄ\87\ 1\0#q bxrm3ROc-\0\0\0\17o\bÌ\87\ 1\0#q yItTKia3-\0\0\0\17o\bÔ\87\ 1\0#q 1oMVVVzM-\0\0\0\17o\bÜ\87\ 1\0#q mKibuKkZ-\0\0\0\17o\bä\87\ 1\0#q YOb3Z3Un-\0\0\0\17o\bì\87\ 1\0#q BYN1JxUt-\0\0\0\17o\bô\87\ 1\0#q iasqwcnV-\0\0\0\17o\bü\87\ 1\0#q w0qRd45s-\0\0\0\17o\b\ 4\88\ 1\0#q TvWJOrIZ-\0\0\0\17o\b\f\88\ 1\0#q cp3W8pby-\0\0\0\17o\b\14\88\ 1\0#q ud6rMm8T-\0\0\0\17o\b\1c\88\ 1\0#q WW/KOlHv-\0\0\0\17o\b$\88\ 1\0#q rjW2vNJM-\0\0\0\17o\b,\88\ 1\0#q EmW6wk8+-\0\0\0\17o\b4\88\ 1\0#q aSBDqHZe-\0\0\0\17o\b<\88\ 1\0#q 3wLGK4+W-\0\0\0\17o\bD\88\ 1\0#q YxQYao+a-\0\0\0\17o\bL\88\ 1\0#q FMLu3Zia-\0\0\0\17o\bT\88\ 1\0#q 4DJiYsHL-\0\0\0\17o\b\\88\ 1\0#q W8vWVSaq-\0\0\0\17o\bd\88\ 1\0#q uNQVVUQ7-\0\0\0\17o\bl\88\ 1\0#q dSGGWs7c-\0\0\0\17o\bt\88\ 1\0#q gmMXdseV-\0\0\0\17o\b|\88\ 1\0#q DzwzwgEv-\0\0\0\17o\b\84\88\ 1\0#q mRsCB5fB-\0\0\0\17o\b\8c\88\ 1\0#q QVQXq0Zj-\0\0\0\17o\b\94\88\ 1\0#q 5wJrB6UF-\0\0\0\17o\b\9c\88\ 1\0#q aTgUTjAX-\0\0\0\17o\b¤\88\ 1\0#q mHe6AjId-\0\0\0\17o\b¬\88\ 1\0#q sFIpFIYZ-\0\0\0\17o\b´\88\ 1\0#q 5zPJpMFN-\0\0\0\17o\b¼\88\ 1\0#q 97axjrOe-\0\0\0\17o\bÄ\88\ 1\0#q bjescSIe-\0\0\0\17o\bÌ\88\ 1\0#q OlxIjJYu-\0\0\0\17o\bÔ\88\ 1\0#q YzMCWWMV-\0\0\0\17o\bÜ\88\ 1\0#q ihKxiTtW-\0\0\0\17o\bä\88\ 1\0#q +9a1edTM-\0\0\0\17o\bì\88\ 1\0#q rhldTnO8-\0\0\0\17o\bô\88\ 1\0#q F0E1nhOr-\0\0\0\17o\bü\88\ 1\0#q 4yVONeDj-\0\0\0\17o\b\ 4\89\ 1\0#q Tro3vk4e-\0\0\0\17o\b\f\89\ 1\0#q VFXbfM/6-\0\0\0\17o\b\14\89\ 1\0#q MUFZJlNZ-\0\0\0\17o\b\1c\89\ 1\0#q Z+RMiADv-\0\0\0\17o\b$\89\ 1\0#q El+AAvwQ-\0\0\0\17o\b,\89\ 1\0#q B3/wP//f-\0\0\0\17o\b4\89\ 1\0#q yr////pg-\0\0\0\17o\b<\89\ 1\0#q Qg94DwHe-\0\0\0\17o\bD\89\ 1\0#q 94+e89AU-\0\0\0\17o\bL\89\ 1\0#q H2NBDuwv-\0\0\0\17o\bT\89\ 1\0#q r6eX3b72-\0\0\0\17o\b\\89\ 1\0#q JJyiefd5-\0\0\0\17o\bd\89\ 1\0#q 8+Vd8GQI-\0\0\0\17o\bl\89\ 1\0#q qkiC6wJS-\0\0\0\17o\bt\89\ 1\0#q bBm5uQAA-\0\0\0\17o\b|\89\ 1\0#q AKq7u5JK-\0\0\0\17o\b\84\89\ 1\0#q oSaaqQKQ-\0\0\0\17o\b\8c\89\ 1\0#q l21VBRUl-\0\0\0\17o\b\94\89\ 1\0#q VJEKkqkq-\0\0\0\17o\b\9c\89\ 1\0#q klKlVSiC-\0\0\0\17o\b¤\89\ 1\0#q ooVFg+Bc-\0\0\0\17o\b¬\89\ 1\0#q YAA+7T5I-\0\0\0\17o\b´\89\ 1\0#q +gBL4hzd-\0\0\0\17o\b¼\89\ 1\0#q zp5AMgOt-\0\0\0\17o\bÄ\89\ 1\0#q Gq4ADa13-\0\0\0\17o\bÌ\89\ 1\0#q bYpbuB97-\0\0\0\17o\bÔ\89\ 1\0#q AXvu0OR1-\0\0\0\17o\bÜ\89\ 1\0#q 329gffKP-\0\0\0\17o\bä\89\ 1\0#q us6EiQIG-\0\0\0\17o\bì\89\ 1\0#q hBMJE8hN-\0\0\0\17o\bô\89\ 1\0#q E02U9Q0N-\0\0\0\17o\bü\89\ 1\0#q DQGhp+qY-\0\0\0\17o\b\ 4\8a\ 1\0#q gkgCIklT-\0\0\0\17o\b\f\8a\ 1\0#q 0IaaZADQ-\0\0\0\17o\b\14\8a\ 1\0#q AAAAAAae-\0\0\0\17o\b\1c\8a\ 1\0#q iIiUn6Jq-\0\0\0\17o\b$\8a\ 1\0#q JgaI2hNG-\0\0\0\17o\b,\8a\ 1\0#q AA0Bk9QA-\0\0\0\17o\b4\8a\ 1\0#q mgk9VJJE-\0\0\0\17o\b<\8a\ 1\0#q yZJ6npNl-\0\0\0\17o\bD\8a\ 1\0#q NNBoZoTC-\0\0\0\17o\bL\8a\ 1\0#q NDaTRkD1-\0\0\0\17o\bT\8a\ 1\0#q BiBEiAiK-\0\0\0\17o\b\\8a\ 1\0#q RKekw0mI-\0\0\0\17o\bd\8a\ 1\0#q Bpo0aMTQ-\0\0\0\17o\bl\8a\ 1\0#q ZMjI00YI-\0\0\0\17o\bt\8a\ 1\0#q kiARpomQ-\0\0\0\17o\b|\8a\ 1\0#q hkE1Efqn-\0\0\0\17o\b\84\8a\ 1\0#q qNA02oAA-\0\0\0\17o\b\8c\8a\ 1\0#q Bo53OJuR-\0\0\0\17o\b\94\8a\ 1\0#q wkNrkuMU-\0\0\0\17o\b\9c\8a\ 1\0#q JOhNQiCK-\0\0\0\17o\b¤\8a\ 1\0#q MocWFChE-\0\0\0\17o\b¬\8a\ 1\0#q EQrUGVTG-\0\0\0\17o\b´\8a\ 1\0#q gg0sMW2b-\0\0\0\17o\b¼\8a\ 1\0#q qgkJBgah-\0\0\0\17o\bÄ\8a\ 1\0#q Uxttdb03-\0\0\0\17o\bÌ\8a\ 1\0#q 1poJEQAh-\0\0\0\17o\bÔ\8a\ 1\0#q SSeqS4Rw-\0\0\0\17o\bÜ\8a\ 1\0#q ucrgpgGD-\0\0\0\17o\bä\8a\ 1\0#q RopQUVIk-\0\0\0\17o\bì\8a\ 1\0#q NExkDQSG-\0\0\0\17o\bô\8a\ 1\0#q ATIZGCmT-\0\0\0\17o\bü\8a\ 1\0#q CKIkUjZJ-\0\0\0\17o\b\ 4\8b\ 1\0#q ZESZSaMx-\0\0\0\17o\b\f\8b\ 1\0#q BmaRQQFl-\0\0\0\17o\b\14\8b\ 1\0#q NGJKRIQi-\0\0\0\17o\b\1c\8b\ 1\0#q hnBz6Pqb-\0\0\0\17o\b$\8b\ 1\0#q 1dXa7ucr-\0\0\0\17o\b,\8b\ 1\0#q jgmcuCGg-\0\0\0\17o\b4\8b\ 1\0#q bYNpgK8A-\0\0\0\17o\b<\8b\ 1\0#q KEFIr8o4-\0\0\0\17o\bD\8b\ 1\0#q gKQFwMGj-\0\0\0\17o\bL\8b\ 1\0#q vveHmstx-\0\0\0\17o\bT\8b\ 1\0#q 7CuEmmgY-\0\0\0\17o\b\\8b\ 1\0#q nRQhB3iu-\0\0\0\17o\bd\8b\ 1\0#q /mzlcrWd-\0\0\0\17o\bl\8b\ 1\0#q LQASIoDp-\0\0\0\17o\bt\8b\ 1\0#q mY0D1WpC-\0\0\0\17o\b|\8b\ 1\0#q xNppg6Vo-\0\0\0\17o\b\84\8b\ 1\0#q TStS8btY-\0\0\0\17o\b\8c\8b\ 1\0#q ssBpPUaC-\0\0\0\17o\b\94\8b\ 1\0#q 7k8vu+aX-\0\0\0\17o\b\9c\8b\ 1\0#q zwycRqJj-\0\0\0\17o\b¤\8b\ 1\0#q 4XNyCaEL-\0\0\0\17o\b¬\8b\ 1\0#q 8W6PxaWp-\0\0\0\17o\b´\8b\ 1\0#q Q2NtCG2k-\0\0\0\17o\b¼\8b\ 1\0#q MTE6TpoD-\0\0\0\17o\bÄ\8b\ 1\0#q CHUaLpoa-\0\0\0\17o\bÌ\8b\ 1\0#q W1Dm0upH-\0\0\0\17o\bÔ\8b\ 1\0#q lZaDritX-\0\0\0\17o\bÜ\8b\ 1\0#q aTgmhQQN-\0\0\0\17o\bä\8b\ 1\0#q tsojjagM-\0\0\0\17o\bì\8b\ 1\0#q pMIthjtQ-\0\0\0\17o\bô\8b\ 1\0#q 0xZUttPC-\0\0\0\17o\bü\8b\ 1\0#q v+T0I+nD-\0\0\0\17o\b\ 4\8c\ 1\0#q /mkZQ8ZD-\0\0\0\17o\b\f\8c\ 1\0#q zjB4ZdHI-\0\0\0\17o\b\14\8c\ 1\0#q +/AJQaEv-\0\0\0\17o\b\1c\8c\ 1\0#q DFvWEt9e-\0\0\0\17o\b$\8c\ 1\0#q ecKhyJv7-\0\0\0\17o\b,\8c\ 1\0#q 3XRVYff5-\0\0\0\17o\b4\8c\ 1\0#q 934ryHcP-\0\0\0\17o\b<\8c\ 1\0#q uxRvk/OT-\0\0\0\17o\bD\8c\ 1\0#q X8AQBAXI-\0\0\0\17o\bL\8c\ 1\0#q YIooDEBE-\0\0\0\17o\bT\8c\ 1\0#q g2yTSZqt-\0\0\0\17o\b\\8c\ 1\0#q rWliJNFt-\0\0\0\17o\bd\8c\ 1\0#q WstQg22m-\0\0\0\17o\bl\8c\ 1\0#q zaljNU2W-\0\0\0\17o\bt\8c\ 1\0#q pmzNipNt-\0\0\0\17o\b|\8c\ 1\0#q VbdVtq9G-\0\0\0\17o\b\84\8c\ 1\0#q q1bKqplA-\0\0\0\17o\b\8c\8c\ 1\0#q FijAQQWA-\0\0\0\17o\b\94\8c\ 1\0#q EEEFi/vV-\0\0\0\17o\b\9c\8c\ 1\0#q AFgAq0II-\0\0\0\17o\b¤\8c\ 1\0#q LEWRBPH+-\0\0\0\17o\b¬\8c\ 1\0#q qAgv4VAE-\0\0\0\17o\b´\8c\ 1\0#q vYexHwNT-\0\0\0\17o\b¼\8c\ 1\0#q vPzKQKnq-\0\0\0\17o\bÄ\8c\ 1\0#q 9pQt7ith-\0\0\0\17o\bÌ\8c\ 1\0#q SFQE3KoT-\0\0\0\17o\bÔ\8c\ 1\0#q 92BcQS5r-\0\0\0\17o\bÜ\8c\ 1\0#q F1INoi0B-\0\0\0\17o\bä\8c\ 1\0#q QOEBIieU-\0\0\0\17o\bì\8c\ 1\0#q UBAgVIw0-\0\0\0\17o\bô\8c\ 1\0#q feYQlJIx-\0\0\0\17o\bü\8c\ 1\0#q ilA5Iylo-\0\0\0\17o\b\ 4\8d\ 1\0#q T2iIDEdI-\0\0\0\17o\b\f\8d\ 1\0#q qoG946hl-\0\0\0\17o\b\14\8d\ 1\0#q U0gdFhuj-\0\0\0\17o\b\1c\8d\ 1\0#q gx6GOFTZ-\0\0\0\17o\b$\8d\ 1\0#q JSSpDwQu-\0\0\0\17o\b,\8d\ 1\0#q VTcllZOq-\0\0\0\17o\b4\8d\ 1\0#q H4ZyZC0B-\0\0\0\17o\b<\8d\ 1\0#q lmkC4cCw-\0\0\0\17o\bD\8d\ 1\0#q sYRI2uGk-\0\0\0\17o\bL\8d\ 1\0#q ouXauJiy-\0\0\0\17o\bT\8d\ 1\0#q sgW2UY5i-\0\0\0\17o\b\\8d\ 1\0#q FJOlmzOC-\0\0\0\17o\bd\8d\ 1\0#q GH4iZGZY-\0\0\0\17o\bl\8d\ 1\0#q XJxDLdJ5-\0\0\0\17o\bt\8d\ 1\0#q I+okgLjd-\0\0\0\17o\b|\8d\ 1\0#q FcGyxGcT-\0\0\0\17o\b\84\8d\ 1\0#q uXzC2QNL-\0\0\0\17o\b\8c\8d\ 1\0#q MmgZDlHJ-\0\0\0\17o\b\94\8d\ 1\0#q wpxaWwzw-\0\0\0\17o\b\9c\8d\ 1\0#q 0jjTdXZY-\0\0\0\17o\b¤\8d\ 1\0#q SK7Qr5tM-\0\0\0\17o\b¬\8d\ 1\0#q VE1KLGpq-\0\0\0\17o\b´\8d\ 1\0#q expkXBFI-\0\0\0\17o\b¼\8d\ 1\0#q CAcNsKQU-\0\0\0\17o\bÄ\8d\ 1\0#q ZzMFIgVm-\0\0\0\17o\bÌ\8d\ 1\0#q knN2YKiG-\0\0\0\17o\bÔ\8d\ 1\0#q SuBbRzat-\0\0\0\17o\bÜ\8d\ 1\0#q IQgm+KaQ-\0\0\0\17o\bä\8d\ 1\0#q ZAS8uDHT-\0\0\0\17o\bì\8d\ 1\0#q nWrudlkM-\0\0\0\17o\bô\8d\ 1\0#q 5iRrvStx-\0\0\0\17o\bü\8d\ 1\0#q KFwKKVWk-\0\0\0\17o\b\ 4\8e\ 1\0#q rxS0Gc5b-\0\0\0\17o\b\f\8e\ 1\0#q 46jB4beD-\0\0\0\17o\b\14\8e\ 1\0#q QDNZhiAY-\0\0\0\17o\b\1c\8e\ 1\0#q wuRpE1ml-\0\0\0\17o\b$\8e\ 1\0#q IxJctXj6-\0\0\0\17o\b,\8e\ 1\0#q hyy5cxgi-\0\0\0\17o\b4\8e\ 1\0#q VA40kzeE-\0\0\0\17o\b<\8e\ 1\0#q pxsaUJjk-\0\0\0\17o\bD\8e\ 1\0#q vd5gjFhh-\0\0\0\17o\bL\8e\ 1\0#q XMuSAhJw-\0\0\0\17o\bT\8e\ 1\0#q 0YIxgxcz-\0\0\0\17o\b\\8e\ 1\0#q l8mAJ0kl-\0\0\0\17o\bd\8e\ 1\0#q HCWrkkch-\0\0\0\17o\bl\8e\ 1\0#q WY7a9j4N-\0\0\0\17o\bt\8e\ 1\0#q u7SQ0sTh-\0\0\0\17o\b|\8e\ 1\0#q JQxDvI40-\0\0\0\17o\b\84\8e\ 1\0#q wEU4mYE8-\0\0\0\17o\b\8c\8e\ 1\0#q 5vWPNKDd-\0\0\0\17o\b\94\8e\ 1\0#q BTZq8WAk-\0\0\0\17o\b\9c\8e\ 1\0#q a53apCRS-\0\0\0\17o\b¤\8e\ 1\0#q SNpCqgUB-\0\0\0\17o\b¬\8e\ 1\0#q IEqkKIRC-\0\0\0\17o\b´\8e\ 1\0#q CLDdFlql-\0\0\0\17o\b¼\8e\ 1\0#q xAohLqDO-\0\0\0\17o\bÄ\8e\ 1\0#q d5oy51ju-\0\0\0\17o\bÌ\8e\ 1\0#q LwUEYBLp-\0\0\0\17o\bÔ\8e\ 1\0#q qiqzTi6C-\0\0\0\17o\bÜ\8e\ 1\0#q EFgheJY6-\0\0\0\17o\bä\8e\ 1\0#q jhnYUa1q-\0\0\0\17o\bì\8e\ 1\0#q iwwzdN4q-\0\0\0\17o\bô\8e\ 1\0#q AkZJTTMx-\0\0\0\17o\bü\8e\ 1\0#q tG2YbaUR-\0\0\0\17o\b\ 4\8f\ 1\0#q oLQYUs8E-\0\0\0\17o\b\f\8f\ 1\0#q LNMt81O4-\0\0\0\17o\b\14\8f\ 1\0#q S4MhIrqC-\0\0\0\17o\b\1c\8f\ 1\0#q 8Y2RJqiB-\0\0\0\17o\b$\8f\ 1\0#q ikskgX1L-\0\0\0\17o\b,\8f\ 1\0#q s0fwJ4OC-\0\0\0\17o\b4\8f\ 1\0#q aGBlINkg-\0\0\0\17o\b<\8f\ 1\0#q mKE6hXEC-\0\0\0\17o\bD\8f\ 1\0#q wCkyUOuw-\0\0\0\17o\bL\8f\ 1\0#q dQqIBJJN-\0\0\0\17o\bT\8f\ 1\0#q GXYw2m6A-\0\0\0\17o\b\\8f\ 1\0#q gaYHhuJJ-\0\0\0\17o\bd\8f\ 1\0#q JCxy4jkm-\0\0\0\17o\bl\8f\ 1\0#q rBKJZbYW-\0\0\0\17o\bt\8f\ 1\0#q NXa3ElQy-\0\0\0\17o\b|\8f\ 1\0#q VBKsZAmK-\0\0\0\17o\b\84\8f\ 1\0#q eWFLmqL/-\0\0\0\17o\b\8c\8f\ 1\0#q aqWV6VDz-\0\0\0\17o\b\94\8f\ 1\0#q rw/jTfYq-\0\0\0\17o\b\9c\8f\ 1\0#q 6/bw8pT5-\0\0\0\17o\b¤\8f\ 1\0#q +4NHZ5Dp-\0\0\0\17o\b¬\8f\ 1\0#q JIDo3mpe-\0\0\0\17o\b´\8f\ 1\0#q N6SJGMka-\0\0\0\17o\b¼\8f\ 1\0#q 7izeeoko-\0\0\0\17o\bÄ\8f\ 1\0#q 43C2Epfp-\0\0\0\17o\bÌ\8f\ 1\0#q g4TpoXY3-\0\0\0\17o\bÔ\8f\ 1\0#q puxOTFNp-\0\0\0\17o\bÜ\8f\ 1\0#q HLlJkTMJ-\0\0\0\17o\bä\8f\ 1\0#q /cig8exb-\0\0\0\17o\bì\8f\ 1\0#q J4wXM1wq-\0\0\0\17o\bô\8f\ 1\0#q I/cnSPX4-\0\0\0\17o\bü\8f\ 1\0#q zRN3hNeG-\0\0\0\17o\b\ 4\90\ 1\0#q DNBlDPCc-\0\0\0\17o\b\f\90\ 1\0#q RjKdSlEX-\0\0\0\17o\b\14\90\ 1\0#q McLYVo5z-\0\0\0\17o\b\1c\90\ 1\0#q rESzdhn5-\0\0\0\17o\b$\90\ 1\0#q oQgF7Vy7-\0\0\0\17o\b,\90\ 1\0#q d/xXre3+-\0\0\0\17o\b4\90\ 1\0#q 0a929Re2-\0\0\0\17o\b<\90\ 1\0#q 659oOIpG-\0\0\0\17o\bD\90\ 1\0#q mnWprpit-\0\0\0\17o\bL\90\ 1\0#q uWOpOh/b-\0\0\0\17o\bT\90\ 1\0#q vzdU3UXe-\0\0\0\17o\b\\90\ 1\0#q NVH5d/Xi-\0\0\0\17o\bd\90\ 1\0#q T9umGfzp-\0\0\0\17o\bl\90\ 1\0#q TP5/9FU8-\0\0\0\17o\bt\90\ 1\0#q nQ2l+WGP-\0\0\0\17o\b|\90\ 1\0#q ykDtzW8+-\0\0\0\17o\b\84\90\ 1\0#q x9V9eEZL-\0\0\0\17o\b\8c\90\ 1\0#q xXZrntku-\0\0\0\17o\b\94\90\ 1\0#q w70ekWyr-\0\0\0\17o\b\9c\90\ 1\0#q vMhHrucZ-\0\0\0\17o\b¤\90\ 1\0#q m9KfynpN-\0\0\0\17o\b¬\90\ 1\0#q 9pZTE+0M-\0\0\0\17o\b´\90\ 1\0#q THTPffeZ-\0\0\0\17o\b¼\90\ 1\0#q 6Ne/Z488-\0\0\0\17o\bÄ\90\ 1\0#q WceGj41e-\0\0\0\17o\bÌ\90\ 1\0#q xPJ4/IOa-\0\0\0\17o\bÔ\90\ 1\0#q ZmtZu7us-\0\0\0\17o\bÜ\90\ 1\0#q 13BA3Kgk-\0\0\0\17o\bä\90\ 1\0#q ZGgZhXkE-\0\0\0\17o\bì\90\ 1\0#q nmKKSCdM-\0\0\0\17o\bô\90\ 1\0#q rtunVFC2-\0\0\0\17o\bü\90\ 1\0#q hCzVzNmb-\0\0\0\17o\b\ 4\91\ 1\0#q 4pa9MrfR-\0\0\0\17o\b\f\91\ 1\0#q 5L368R+A-\0\0\0\17o\b\14\91\ 1\0#q 5cTbzcuF-\0\0\0\17o\b\1c\91\ 1\0#q IBItqqa9-\0\0\0\17o\b$\91\ 1\0#q ZJWrv440-\0\0\0\17o\b,\91\ 1\0#q HQdtONRR-\0\0\0\17o\b4\91\ 1\0#q NMqQLRvC-\0\0\0\17o\b<\91\ 1\0#q oXjJsHsN-\0\0\0\17o\bD\91\ 1\0#q jp3oqjTU-\0\0\0\17o\bL\91\ 1\0#q nuUk+tSS-\0\0\0\17o\bT\91\ 1\0#q qY06SBeO-\0\0\0\17o\b\\91\ 1\0#q NJjOPZli-\0\0\0\17o\bd\91\ 1\0#q tBWP2Y/a-\0\0\0\17o\bl\91\ 1\0#q 4myrWhja-\0\0\0\17o\bt\91\ 1\0#q 8Y48ITl3-\0\0\0\17o\b|\91\ 1\0#q w70cPAUv-\0\0\0\17o\b\84\91\ 1\0#q OLu3N73x-\0\0\0\17o\b\8c\91\ 1\0#q oNCWxRXK-\0\0\0\17o\b\94\91\ 1\0#q JMZBOcsI-\0\0\0\17o\b\9c\91\ 1\0#q iYNsbb6I-\0\0\0\17o\b¤\91\ 1\0#q qgA1MYWC-\0\0\0\17o\b¬\91\ 1\0#q yzFLX46t-\0\0\0\17o\b´\91\ 1\0#q yDIsrZmB-\0\0\0\17o\b¼\91\ 1\0#q dV11KBpm-\0\0\0\17o\bÄ\91\ 1\0#q bcG2jSmW-\0\0\0\17o\bÌ\91\ 1\0#q klZqbJwQ-\0\0\0\17o\bÔ\91\ 1\0#q mXHcfS+k-\0\0\0\17o\bÜ\91\ 1\0#q qBbvzhoF-\0\0\0\17o\bä\91\ 1\0#q YwQVevOa-\0\0\0\17o\bì\91\ 1\0#q UWDtMkiQ-\0\0\0\17o\bô\91\ 1\0#q 4OL3wfiG-\0\0\0\17o\bü\91\ 1\0#q hdLDJF2o-\0\0\0\17o\b\ 4\92\ 1\0#q WKWCGRKi-\0\0\0\17o\b\f\92\ 1\0#q hQlR9vBW-\0\0\0\17o\b\14\92\ 1\0#q B8QPr7h+-\0\0\0\17o\b\1c\92\ 1\0#q /XlnwgBk-\0\0\0\17o\b$\92\ 1\0#q Z6IHoruq-\0\0\0\17o\b,\92\ 1\0#q uvYHPb3d-\0\0\0\17o\b4\92\ 1\0#q 2c9Vu1qF-\0\0\0\17o\b<\92\ 1\0#q s4DoTfPO-\0\0\0\17o\bD\92\ 1\0#q Zy5eaTfG-\0\0\0\17o\bL\92\ 1\0#q EbeW2TVk-\0\0\0\17o\bT\92\ 1\0#q ZWcjbLyy-\0\0\0\17o\b\\92\ 1\0#q 5fXm3YKb-\0\0\0\17o\bd\92\ 1\0#q 4ufb/wb8-\0\0\0\17o\bl\92\ 1\0#q 1JfR8qaT-\0\0\0\17o\bt\92\ 1\0#q CaWBkN5O-\0\0\0\17o\b|\92\ 1\0#q AgOisFhT-\0\0\0\17o\b\84\92\ 1\0#q R2+eXXkc-\0\0\0\17o\b\8c\92\ 1\0#q 3pGtx5da-\0\0\0\17o\b\94\92\ 1\0#q 9R7O60uz-\0\0\0\17o\b\9c\92\ 1\0#q r4vD1ctQ-\0\0\0\17o\b¤\92\ 1\0#q eFni4kxC-\0\0\0\17o\b¬\92\ 1\0#q BF61C2yR-\0\0\0\17o\b´\92\ 1\0#q 4amYWm6e-\0\0\0\17o\b¼\92\ 1\0#q mxGhMsrB-\0\0\0\17o\bÄ\92\ 1\0#q SNygglLJ-\0\0\0\17o\bÌ\92\ 1\0#q ju41nhlz-\0\0\0\17o\bÔ\92\ 1\0#q S1oTvHIJ-\0\0\0\17o\bÜ\92\ 1\0#q 3iKAtp6a-\0\0\0\17o\bä\92\ 1\0#q slyLp2Xz-\0\0\0\17o\bì\92\ 1\0#q 4u2mDjOO-\0\0\0\17o\bô\92\ 1\0#q FZxL3c45-\0\0\0\17o\bü\92\ 1\0#q xPx8u1dj-\0\0\0\17o\b\ 4\93\ 1\0#q CMsttzHL-\0\0\0\17o\b\f\93\ 1\0#q vlwW7OA4-\0\0\0\17o\b\14\93\ 1\0#q 8Dxvhzz0-\0\0\0\17o\b\1c\93\ 1\0#q vTvl3lSn-\0\0\0\17o\b$\93\ 1\0#q fgXC1bTv-\0\0\0\17o\b,\93\ 1\0#q QOQPN9u0-\0\0\0\17o\b4\93\ 1\0#q GMqUZDiU-\0\0\0\17o\b<\93\ 1\0#q u+0SqNTn-\0\0\0\17o\bD\93\ 1\0#q cw4JrOJd-\0\0\0\17o\bL\93\ 1\0#q C5ae2h22-\0\0\0\17o\bT\93\ 1\0#q 9JhHJcsa-\0\0\0\17o\b\\93\ 1\0#q mPYtGY2n-\0\0\0\17o\bd\93\ 1\0#q qSYKK7Zk-\0\0\0\17o\bl\93\ 1\0#q CWcOaeo6-\0\0\0\17o\bt\93\ 1\0#q wnA5uE6U-\0\0\0\17o\b|\93\ 1\0#q mOicOKSl-\0\0\0\17o\b\84\93\ 1\0#q x01thtO2-\0\0\0\17o\b\8c\93\ 1\0#q U5RWOvTw-\0\0\0\17o\b\94\93\ 1\0#q 6+Fysmd8-\0\0\0\17o\b\9c\93\ 1\0#q Kd83F6zp-\0\0\0\17o\b¤\93\ 1\0#q jTvnstmb-\0\0\0\17o\b¬\93\ 1\0#q nM78jhR6-\0\0\0\17o\b´\93\ 1\0#q FmzlfenL-\0\0\0\17o\b¼\93\ 1\0#q a9NuMaGg-\0\0\0\17o\bÄ\93\ 1\0#q sxrWUpGv-\0\0\0\17o\bÌ\93\ 1\0#q xczOq5bX-\0\0\0\17o\bÔ\93\ 1\0#q KtNQPDHE-\0\0\0\17o\bÜ\93\ 1\0#q Hk5QkHLA-\0\0\0\17o\bä\93\ 1\0#q 7Ei3HDC6-\0\0\0\17o\bì\93\ 1\0#q vuGTk25m-\0\0\0\17o\bô\93\ 1\0#q xRUpKKkr-\0\0\0\17o\bü\93\ 1\0#q lGpasCNz-\0\0\0\17o\b\ 4\94\ 1\0#q 44/k+3tD-\0\0\0\17o\b\f\94\ 1\0#q wDe5wjgd-\0\0\0\17o\b\14\94\ 1\0#q DHrPy8gs-\0\0\0\17o\b\1c\94\ 1\0#q g2W5zWGf-\0\0\0\17o\b$\94\ 1\0#q iMkjEJmg-\0\0\0\17o\b,\94\ 1\0#q Qcnm7BcP-\0\0\0\17o\b4\94\ 1\0#q MOgmPy6p-\0\0\0\17o\b<\94\ 1\0#q IvZOyXeD-\0\0\0\17o\bD\94\ 1\0#q h5m5rpxh-\0\0\0\17o\bL\94\ 1\0#q u2O72A7G-\0\0\0\17o\bT\94\ 1\0#q exroWfc4-\0\0\0\17o\b\\94\ 1\0#q Pg/Hs7+F-\0\0\0\17o\bd\94\ 1\0#q oQ8r9jIQ-\0\0\0\17o\bl\94\ 1\0#q taxoXODg-\0\0\0\17o\bt\94\ 1\0#q +TR8z0PR-\0\0\0\17o\b|\94\ 1\0#q zeAOoeeR-\0\0\0\17o\b\84\94\ 1\0#q uMi7hdOS-\0\0\0\17o\b\8c\94\ 1\0#q 81h4GqNy-\0\0\0\17o\b\94\94\ 1\0#q guIRmNhQ-\0\0\0\17o\b\9c\94\ 1\0#q KnFMJWaZ-\0\0\0\17o\b¤\94\ 1\0#q LQzV+urX-\0\0\0\17o\b¬\94\ 1\0#q gFRWKiY8-\0\0\0\17o\b´\94\ 1\0#q ZIxJo6Gy-\0\0\0\17o\b¼\94\ 1\0#q npoUkgAn-\0\0\0\17o\bÄ\94\ 1\0#q Nj57hPkk-\0\0\0\17o\bÌ\94\ 1\0#q CiIEgKoY-\0\0\0\17o\bÔ\94\ 1\0#q hUZF/EFX-\0\0\0\17o\bÜ\94\ 1\0#q 75QYsoLi-\0\0\0\17o\bä\94\ 1\0#q XAfylQHs-\0\0\0\17o\bì\94\ 1\0#q FzFbiMlV-\0\0\0\17o\bô\94\ 1\0#q TCoUCVRu-\0\0\0\17o\bü\94\ 1\0#q 0SOlVOua-\0\0\0\17o\b\ 4\95\ 1\0#q qN2WvP1c-\0\0\0\17o\b\f\95\ 1\0#q 77nObXJx-\0\0\0\17o\b\14\95\ 1\0#q riiMINSQ-\0\0\0\17o\b\1c\95\ 1\0#q ogBTFkqq-\0\0\0\17o\b$\95\ 1\0#q mEoC2VXv-\0\0\0\17o\b,\95\ 1\0#q QXneIkUd-\0\0\0\17o\b4\95\ 1\0#q JiMdJihT-\0\0\0\17o\b<\95\ 1\0#q 4fO2rWLd-\0\0\0\17o\bD\95\ 1\0#q y1y9kXJW-\0\0\0\17o\bL\95\ 1\0#q wjNZBRy2-\0\0\0\17o\bT\95\ 1\0#q pfGS/8Lw-\0\0\0\17o\b\\95\ 1\0#q dy9Cmq8f-\0\0\0\17o\bd\95\ 1\0#q h9iYjz/X-\0\0\0\17o\bl\95\ 1\0#q 4mvTlzXp-\0\0\0\17o\bt\95\ 1\0#q X65f5J38-\0\0\0\17o\b|\95\ 1\0#q LH6DNGfi-\0\0\0\17o\b\84\95\ 1\0#q 2efIIvIZ-\0\0\0\17o\b\8c\95\ 1\0#q 10n5NE1k-\0\0\0\17o\b\94\95\ 1\0#q N59vlWXn-\0\0\0\17o\b\9c\95\ 1\0#q OfKiq7ER-\0\0\0\17o\b¤\95\ 1\0#q 8fWpiWWA-\0\0\0\17o\b¬\95\ 1\0#q khS+t+Lr-\0\0\0\17o\b´\95\ 1\0#q fbL2atTn-\0\0\0\17o\b¼\95\ 1\0#q X7FlB6Uv-\0\0\0\17o\bÄ\95\ 1\0#q lXavrdWX-\0\0\0\17o\bÌ\95\ 1\0#q HX4WKTvt-\0\0\0\17o\bÔ\95\ 1\0#q WbyZlXdb-\0\0\0\17o\bÜ\95\ 1\0#q ue7pYypb-\0\0\0\17o\bä\95\ 1\0#q J5UnERU0-\0\0\0\17o\bì\95\ 1\0#q llbaJ5Zv-\0\0\0\17o\bô\95\ 1\0#q PfC98s8b-\0\0\0\17o\bü\95\ 1\0#q TLO12ZXN-\0\0\0\17o\b\ 4\96\ 1\0#q ItLa866P-\0\0\0\17o\b\f\96\ 1\0#q 2611pp3t-\0\0\0\17o\b\14\96\ 1\0#q R1vrwgjn-\0\0\0\17o\b\1c\96\ 1\0#q vvzhWTmU-\0\0\0\17o\b$\96\ 1\0#q w9oSQv1d-\0\0\0\17o\b,\96\ 1\0#q ZnBnZnRG-\0\0\0\17o\b4\96\ 1\0#q fK8QzR5O-\0\0\0\17o\b<\96\ 1\0#q bplZCCc5-\0\0\0\17o\bD\96\ 1\0#q ujfT9R6v-\0\0\0\17o\bL\96\ 1\0#q JL1s8iD5-\0\0\0\17o\bT\96\ 1\0#q lDfnIokm-\0\0\0\17o\b\\96\ 1\0#q LJsX6RI1-\0\0\0\17o\bd\96\ 1\0#q PafLCcKs-\0\0\0\17o\bl\96\ 1\0#q /Tg4AkOM-\0\0\0\17o\bt\96\ 1\0#q BDBIQit/-\0\0\0\17o\b|\96\ 1\0#q raxnAKMU-\0\0\0\17o\b\84\96\ 1\0#q BAZBr9yq-\0\0\0\17o\b\8c\96\ 1\0#q s1/QXIbV-\0\0\0\17o\b\94\96\ 1\0#q pWgIAgmE-\0\0\0\17o\b\9c\96\ 1\0#q ILgYvh0y-\0\0\0\17o\b¤\96\ 1\0#q WOUmv3jA-\0\0\0\17o\b¬\96\ 1\0#q UfKBfkdB-\0\0\0\17o\b´\96\ 1\0#q qK0fOeYV-\0\0\0\17o\b¼\96\ 1\0#q yHCSZHQ6-\0\0\0\17o\bÄ\96\ 1\0#q VMFk2HIr-\0\0\0\17o\bÌ\96\ 1\0#q sD0RNdD7-\0\0\0\17o\bÔ\96\ 1\0#q WUaPgRyI-\0\0\0\17o\bÜ\96\ 1\0#q ZcjoUkiB-\0\0\0\17o\bä\96\ 1\0#q +YRfCWIe-\0\0\0\17o\bì\96\ 1\0#q IcpVQPm6-\0\0\0\17o\bô\96\ 1\0#q Q1BfgQaJ-\0\0\0\17o\bü\96\ 1\0#q ofhQUEMg-\0\0\0\17o\b\ 4\97\ 1\0#q ZOGDeJA9-\0\0\0\17o\b\f\97\ 1\0#q IPcCCRV4-\0\0\0\17o\b\14\97\ 1\0#q AUgAYPdw-\0\0\0\17o\b\1c\97\ 1\0#q 6IdQASI4-\0\0\0\17o\b$\97\ 1\0#q FnXKQHmc-\0\0\0\17o\b,\97\ 1\0#q g2w6ALxI-\0\0\0\17o\b4\97\ 1\0#q MpE3ZaAx-\0\0\0\17o\b<\97\ 1\0#q xeCoTJ0H-\0\0\0\17o\bD\97\ 1\0#q TJEbxQOz-\0\0\0\17o\bL\97\ 1\0#q vOl4O5xZ-\0\0\0\17o\bT\97\ 1\0#q 05zeiMkP-\0\0\0\17o\b\\97\ 1\0#q QD3Jg7lQ-\0\0\0\17o\bd\97\ 1\0#q svJS7KCk-\0\0\0\17o\bl\97\ 1\0#q LTfpQmQl-\0\0\0\17o\bt\97\ 1\0#q EPQs76Ei-\0\0\0\17o\b|\97\ 1\0#q GVGr9s8U-\0\0\0\17o\b\84\97\ 1\0#q 7Q7yKUh6-\0\0\0\17o\b\8c\97\ 1\0#q XQJAgcEP-\0\0\0\17o\b\94\97\ 1\0#q OW6rmfKx-\0\0\0\17o\b\9c\97\ 1\0#q k0kYB6Nn-\0\0\0\17o\b¤\97\ 1\0#q WeroUq8B-\0\0\0\17o\b¬\97\ 1\0#q mBHowHKG-\0\0\0\17o\b´\97\ 1\0#q qH4gESif-\0\0\0\17o\b¼\97\ 1\0#q AlozD0+e-\0\0\0\17o\bÄ\97\ 1\0#q Q0j4kT02-\0\0\0\17o\bÌ\97\ 1\0#q LZ4WaPDW-\0\0\0\17o\bÔ\97\ 1\0#q 2w+IYtHZ-\0\0\0\17o\bÜ\97\ 1\0#q eImTcCWC-\0\0\0\17o\bä\97\ 1\0#q RQLWBxyH-\0\0\0\17o\bì\97\ 1\0#q fijRhjIp-\0\0\0\17o\bô\97\ 1\0#q sF6jmAN0-\0\0\0\17o\bü\97\ 1\0#q 8BB4SheI-\0\0\0\17o\b\ 4\98\ 1\0#q vMCQv3O9-\0\0\0\17o\b\f\98\ 1\0#q IBxhPz0S-\0\0\0\17o\b\14\98\ 1\0#q kvgHt3FC-\0\0\0\17o\b\1c\98\ 1\0#q KbZGAMBD-\0\0\0\17o\b$\98\ 1\0#q gJArIhI9-\0\0\0\17o\b,\98\ 1\0#q BSIY8gc5-\0\0\0\17o\b4\98\ 1\0#q jHmj+E+p-\0\0\0\17o\b<\98\ 1\0#q 9S/UAPry-\0\0\0\17o\bD\98\ 1\0#q P36WOYnx-\0\0\0\17o\bL\98\ 1\0#q 34Ii7m5q-\0\0\0\17o\bT\98\ 1\0#q kMm9mPRF-\0\0\0\17o\b\\98\ 1\0#q NHfnTkYo-\0\0\0\17o\bd\98\ 1\0#q j0GQr4OO-\0\0\0\17o\bl\98\ 1\0#q eHrNeCzA-\0\0\0\17o\bt\98\ 1\0#q Ylhhc5B9-\0\0\0\17o\b|\98\ 1\0#q Dx8dhsYr-\0\0\0\17o\b\84\98\ 1\0#q 6Q8qgkWn-\0\0\0\17o\b\8c\98\ 1\0#q ZzILYoTD-\0\0\0\17o\b\94\98\ 1\0#q z4BIKReo-\0\0\0\17o\b\9c\98\ 1\0#q EWCYEF+G-\0\0\0\17o\b¤\98\ 1\0#q taVpIuJ9-\0\0\0\17o\b¬\98\ 1\0#q O+zUiaxt-\0\0\0\17o\b´\98\ 1\0#q JE68pepg-\0\0\0\17o\b¼\98\ 1\0#q bqZg0bMu-\0\0\0\17o\bÄ\98\ 1\0#q PgcmlPnY-\0\0\0\17o\bÌ\98\ 1\0#q g6RPUYju-\0\0\0\17o\bÔ\98\ 1\0#q Cge0Uj8+-\0\0\0\17o\bÜ\98\ 1\0#q CFpsWlfL-\0\0\0\17o\bä\98\ 1\0#q ghvvAgHO-\0\0\0\17o\bì\98\ 1\0#q AUAaHOuB-\0\0\0\17o\bô\98\ 1\0#q CwTEJ1iN-\0\0\0\17o\bü\98\ 1\0#q dj0An37b-\0\0\0\17o\b\ 4\99\ 1\0#q TZlzLF7r-\0\0\0\17o\b\f\99\ 1\0#q i8nzHeJW-\0\0\0\17o\b\14\99\ 1\0#q S8Y6zJjr-\0\0\0\17o\b\1c\99\ 1\0#q LCcqH4JH-\0\0\0\17o\b$\99\ 1\0#q hRMidIZS-\0\0\0\17o\b,\99\ 1\0#q kw8EIub4-\0\0\0\17o\b4\99\ 1\0#q C6LDowDz-\0\0\0\17o\b<\99\ 1\0#q JO0NYq0k-\0\0\0\17o\bD\99\ 1\0#q ILgV0Xug-\0\0\0\17o\bL\99\ 1\0#q kCCZveXn-\0\0\0\17o\bT\99\ 1\0#q ig8iigRg-\0\0\0\17o\b\\99\ 1\0#q dCLAPCpC-\0\0\0\17o\bd\99\ 1\0#q oaA8AMX+-\0\0\0\17o\bl\99\ 1\0#q M94icjIE-\0\0\0\17o\bt\99\ 1\0#q iHwoKCEQ-\0\0\0\17o\b|\99\ 1\0#q hEX3HtmP-\0\0\0\17o\b\84\99\ 1\0#q nzHMo4T8-\0\0\0\17o\b\8c\99\ 1\0#q NPcs2WZJ-\0\0\0\17o\b\94\99\ 1\0#q YUlDwPX7-\0\0\0\17o\b\9c\99\ 1\0#q E5AKIDuK-\0\0\0\17o\b¤\99\ 1\0#q SJ5wxZlK-\0\0\0\17o\b¬\99\ 1\0#q KsPwLwU8-\0\0\0\17o\b´\99\ 1\0#q KDrAPQyZ-\0\0\0\17o\b¼\99\ 1\0#q +Jla9ISK-\0\0\0\17o\bÄ\99\ 1\0#q /IHBC8hL-\0\0\0\17o\bÌ\99\ 1\0#q AJi8KMiP-\0\0\0\17o\bÔ\99\ 1\0#q QXfpqpK+-\0\0\0\17o\bÜ\99\ 1\0#q sINQSQJG-\0\0\0\17o\bä\99\ 1\0#q gioXVwYx-\0\0\0\17o\bì\99\ 1\0#q vvIhV0sJ-\0\0\0\17o\bô\99\ 1\0#q EIsZpIel-\0\0\0\17o\bü\99\ 1\0#q y4rWA1B7-\0\0\0\17o\b\ 4\9a\ 1\0#q CQPyZJLQ-\0\0\0\17o\b\f\9a\ 1\0#q OahcYOxh-\0\0\0\17o\b\14\9a\ 1\0#q vMPiDui4-\0\0\0\17o\b\1c\9a\ 1\0#q 9WezMfDb-\0\0\0\17o\b$\9a\ 1\0#q rdT686aJ-\0\0\0\17o\b,\9a\ 1\0#q +EQ2kJEr-\0\0\0\17o\b4\9a\ 1\0#q ap94yg2I-\0\0\0\17o\b<\9a\ 1\0#q Sh+eqqB0-\0\0\0\17o\bD\9a\ 1\0#q QQPpBERM-\0\0\0\17o\bL\9a\ 1\0#q BBR+wkAA-\0\0\0\17o\bT\9a\ 1\0#q H2CA+KJE-\0\0\0\17o\b\\9a\ 1\0#q V+wAFcxB-\0\0\0\17o\bd\9a\ 1\0#q kBfIpkCZ-\0\0\0\17o\bl\9a\ 1\0#q 2gULsgCI-\0\0\0\17o\bt\9a\ 1\0#q ciHoB1hJ-\0\0\0\17o\b|\9a\ 1\0#q Q9gIEguU-\0\0\0\17o\b\84\9a\ 1\0#q goVulKgg-\0\0\0\17o\b\8c\9a\ 1\0#q ntUcGAJr-\0\0\0\17o\b\94\9a\ 1\0#q 0oJHR6UM-\0\0\0\17o\b\9c\9a\ 1\0#q gdYB4JHE-\0\0\0\17o\b¤\9a\ 1\0#q EfADtXgv-\0\0\0\17o\b¬\9a\ 1\0#q EGyLL8+a-\0\0\0\17o\b´\9a\ 1\0#q ma2oQMkP-\0\0\0\17o\b¼\9a\ 1\0#q uYKfH8tz-\0\0\0\17o\bÄ\9a\ 1\0#q iwAEEz7M-\0\0\0\17o\bÌ\9a\ 1\0#q qXYXsAoQ-\0\0\0\17o\bÔ\9a\ 1\0#q HsjwQYik-\0\0\0\17o\bÜ\9a\ 1\0#q 4/RunvQc-\0\0\0\17o\bä\9a\ 1\0#q feEFs6nF-\0\0\0\17o\bì\9a\ 1\0#q YUjPo+WP-\0\0\0\17o\bô\9a\ 1\0#q guYCD9BY-\0\0\0\17o\bü\9a\ 1\0#q 7j7j/PYG-\0\0\0\17o\b\ 4\9b\ 1\0#q CWLpEvWu-\0\0\0\17o\b\f\9b\ 1\0#q 7/IZokD0-\0\0\0\17o\b\14\9b\ 1\0#q 80Zk5wSD-\0\0\0\17o\b\1c\9b\ 1\0#q 1AVqPRbs-\0\0\0\17o\b$\9b\ 1\0#q HEFBSr0s-\0\0\0\17o\b,\9b\ 1\0#q XtjlDoV5-\0\0\0\17o\b4\9b\ 1\0#q UI6IgNFe-\0\0\0\17o\b<\9b\ 1\0#q EvHffv4n-\0\0\0\17o\bD\9b\ 1\0#q 0LiGvfQ5-\0\0\0\17o\bL\9b\ 1\0#q KFaH4Gqp-\0\0\0\17o\bT\9b\ 1\0#q z0Mxh9UD-\0\0\0\17o\b\\9b\ 1\0#q G/SNxy6H-\0\0\0\17o\bd\9b\ 1\0#q 6DRQBcV+-\0\0\0\17o\bl\9b\ 1\0#q sBle8GiG-\0\0\0\17o\bt\9b\ 1\0#q x3QAXgqT-\0\0\0\17o\b|\9b\ 1\0#q MlrqSTAk-\0\0\0\17o\b\84\9b\ 1\0#q r2SSQEFV-\0\0\0\17o\b\8c\9b\ 1\0#q 9QEYOxHy-\0\0\0\17o\b\94\9b\ 1\0#q mNgdkGXw-\0\0\0\17o\b\9c\9b\ 1\0#q 8Y+fRsHr-\0\0\0\17o\b¤\9b\ 1\0#q gXw0GR09-\0\0\0\17o\b¬\9b\ 1\0#q kMpCq5Ml-\0\0\0\17o\b´\9b\ 1\0#q DiZDzgGO-\0\0\0\17o\b¼\9b\ 1\0#q LxJuHDgR-\0\0\0\17o\bÄ\9b\ 1\0#q qQOet5Kp-\0\0\0\17o\bÌ\9b\ 1\0#q ezggkS1j-\0\0\0\17o\bÔ\9b\ 1\0#q SF0MO0JZ-\0\0\0\17o\bÜ\9b\ 1\0#q 2yqQKSLF-\0\0\0\17o\bä\9b\ 1\0#q 7UIgkEZK-\0\0\0\17o\bì\9b\ 1\0#q 5OM/HYXO-\0\0\0\17o\bô\9b\ 1\0#q HJeOW9vB-\0\0\0\17o\bü\9b\ 1\0#q r8HHbkuW-\0\0\0\17o\b\ 4\9c\ 1\0#q Pxox6fms-\0\0\0\17o\b\f\9c\ 1\0#q GumVzMqB-\0\0\0\17o\b\14\9c\ 1\0#q nqecSQsu-\0\0\0\17o\b\1c\9c\ 1\0#q BDogwNRV-\0\0\0\17o\b$\9c\ 1\0#q QM9eBnKY-\0\0\0\17o\b,\9c\ 1\0#q 0b2gZRHe-\0\0\0\17o\b4\9c\ 1\0#q sEG2rOE4-\0\0\0\17o\b<\9c\ 1\0#q hkmdWB6V-\0\0\0\17o\bD\9c\ 1\0#q 5y1KgqA1-\0\0\0\17o\bL\9c\ 1\0#q BGhikPMU-\0\0\0\17o\bT\9c\ 1\0#q QmrL7aky-\0\0\0\17o\b\\9c\ 1\0#q e+mkvllm-\0\0\0\17o\bd\9c\ 1\0#q GuOkpMek-\0\0\0\17o\bl\9c\ 1\0#q kiTCSRAC-\0\0\0\17o\bt\9c\ 1\0#q mrhLIlul-\0\0\0\17o\b|\9c\ 1\0#q AF9N5rth-\0\0\0\17o\b\84\9c\ 1\0#q lpQ/XQkp-\0\0\0\17o\b\8c\9c\ 1\0#q 01zssYOx-\0\0\0\17o\b\94\9c\ 1\0#q eeIYRSTW-\0\0\0\17o\b\9c\9c\ 1\0#q bG2KBe2S-\0\0\0\17o\b¤\9c\ 1\0#q OKBXQ5DU-\0\0\0\17o\b¬\9c\ 1\0#q 55aOtIvB-\0\0\0\17o\b´\9c\ 1\0#q bCk+zYig-\0\0\0\17o\b¼\9c\ 1\0#q +CBkc6wH-\0\0\0\17o\bÄ\9c\ 1\0#q 3bQOiaPv-\0\0\0\17o\bÌ\9c\ 1\0#q iscLEZjI-\0\0\0\17o\bÔ\9c\ 1\0#q LNSSmX9O-\0\0\0\17o\bÜ\9c\ 1\0#q dgQXgna+-\0\0\0\17o\bä\9c\ 1\0#q HtgT0K4D-\0\0\0\17o\bì\9c\ 1\0#q whmvgWOY-\0\0\0\17o\bô\9c\ 1\0#q SV0NSQuh-\0\0\0\17o\bü\9c\ 1\0#q 8OHmg/Ex-\0\0\0\17o\b\ 4\9d\ 1\0#q tAoX4Pob-\0\0\0\17o\b\f\9d\ 1\0#q q+dVHoXJ-\0\0\0\17o\b\14\9d\ 1\0#q 7hVNiGlV-\0\0\0\17o\b\1c\9d\ 1\0#q A2bGEGEH-\0\0\0\17o\b$\9d\ 1\0#q 1bRIRBDh-\0\0\0\17o\b,\9d\ 1\0#q CQDs2oQt-\0\0\0\17o\b4\9d\ 1\0#q WIbppQHs-\0\0\0\17o\b<\9d\ 1\0#q VDJEQ2qo-\0\0\0\17o\bD\9d\ 1\0#q EALIiIJh-\0\0\0\17o\bL\9d\ 1\0#q iA5Ibr48-\0\0\0\17o\bT\9d\ 1\0#q 9zs18KLd-\0\0\0\17o\b\\9d\ 1\0#q Ik2wVcpF-\0\0\0\17o\bd\9d\ 1\0#q RBx6+tia-\0\0\0\17o\bl\9d\ 1\0#q CCj5EMxE-\0\0\0\17o\bt\9d\ 1\0#q zMCxQyTx-\0\0\0\17o\b|\9d\ 1\0#q J8gAo5Zc-\0\0\0\17o\b\84\9d\ 1\0#q S4gmZqKG-\0\0\0\17o\b\8c\9d\ 1\0#q 0IlJiAbs-\0\0\0\17o\b\94\9d\ 1\0#q +AEAgERP-\0\0\0\17o\b\9c\9d\ 1\0#q IieEQN50-\0\0\0\17o\b¤\9d\ 1\0#q HzB2KnFi-\0\0\0\17o\b¬\9d\ 1\0#q LFTJR7Q0-\0\0\0\17o\b´\9d\ 1\0#q qNQ4QXyC-\0\0\0\17o\b¼\9d\ 1\0#q tKqBvJY8-\0\0\0\17o\bÄ\9d\ 1\0#q 2LSiEDtD-\0\0\0\17o\bÌ\9d\ 1\0#q SMDyDTVA-\0\0\0\17o\bÔ\9d\ 1\0#q lMx1KR0p-\0\0\0\17o\bÜ\9d\ 1\0#q MIRUiJ7Y-\0\0\0\17o\bä\9d\ 1\0#q F7xSGDGU-\0\0\0\17o\bì\9d\ 1\0#q 8MEIMgEj-\0\0\0\17o\bô\9d\ 1\0#q hWgojVGu-\0\0\0\17o\bü\9d\ 1\0#q XwHA5gtw-\0\0\0\17o\b\ 4\9e\ 1\0#q UckHgZqo-\0\0\0\17o\b\f\9e\ 1\0#q ezI2FDLs-\0\0\0\17o\b\14\9e\ 1\0#q fUAQ3Zjo-\0\0\0\17o\b\1c\9e\ 1\0#q WaTPcjar-\0\0\0\17o\b$\9e\ 1\0#q hqjpVVrh-\0\0\0\17o\b,\9e\ 1\0#q ZIQ6Ssgn-\0\0\0\17o\b4\9e\ 1\0#q CohVS0it-\0\0\0\17o\b<\9e\ 1\0#q MJYhS0GK-\0\0\0\17o\bD\9e\ 1\0#q 7o0K+ky5-\0\0\0\17o\bL\9e\ 1\0#q Y7gH3tCG-\0\0\0\17o\bT\9e\ 1\0#q O3xVQLLk-\0\0\0\17o\b\\9e\ 1\0#q MHlUMsfg-\0\0\0\17o\bd\9e\ 1\0#q QTLECRQx-\0\0\0\17o\bl\9e\ 1\0#q OLsclipl-\0\0\0\17o\bt\9e\ 1\0#q NO4omhGO-\0\0\0\17o\b|\9e\ 1\0#q IJICZNgK-\0\0\0\17o\b\84\9e\ 1\0#q F+kPDnyh-\0\0\0\17o\b\8c\9e\ 1\0#q 3ErwNoat-\0\0\0\17o\b\94\9e\ 1\0#q DOLWiFE0-\0\0\0\17o\b\9c\9e\ 1\0#q bhwyOBJE-\0\0\0\17o\b¤\9e\ 1\0#q YDfGHjaG-\0\0\0\17o\b¬\9e\ 1\0#q 8xFtMBoW-\0\0\0\17o\b´\9e\ 1\0#q YA6HNgFy-\0\0\0\17o\b¼\9e\ 1\0#q cuim5Q7p-\0\0\0\17o\bÄ\9e\ 1\0#q 2qoGrMrZ-\0\0\0\17o\bÌ\9e\ 1\0#q iV9I6DYo-\0\0\0\17o\bÔ\9e\ 1\0#q CVwCNjaB-\0\0\0\17o\bÜ\9e\ 1\0#q mh9VIACE-\0\0\0\17o\bä\9e\ 1\0#q QL8wi1ky-\0\0\0\17o\bì\9e\ 1\0#q AWKD09rw-\0\0\0\17o\bô\9e\ 1\0#q ynBSL7BD-\0\0\0\17o\bü\9e\ 1\0#q biUwABZH-\0\0\0\17o\b\ 4\9f\ 1\0#q ykpFUzkw-\0\0\0\17o\b\f\9f\ 1\0#q tIaZSwCn-\0\0\0\17o\b\14\9f\ 1\0#q 04GkNoQO-\0\0\0\17o\b\1c\9f\ 1\0#q lasfSOXA-\0\0\0\17o\b$\9f\ 1\0#q Ya64AHCJ-\0\0\0\17o\b,\9f\ 1\0#q yMVG81eg-\0\0\0\17o\b4\9f\ 1\0#q 8guTY5Jt-\0\0\0\17o\b<\9f\ 1\0#q M+Empxh2-\0\0\0\17o\bD\9f\ 1\0#q Tu34PTsv-\0\0\0\17o\bL\9f\ 1\0#q KYzszJQ7-\0\0\0\17o\bT\9f\ 1\0#q oZY4pJ7C-\0\0\0\17o\b\\9f\ 1\0#q i6JrOjEo-\0\0\0\17o\bd\9f\ 1\0#q zq8F0gbg-\0\0\0\17o\bl\9f\ 1\0#q liwihrt8-\0\0\0\17o\bt\9f\ 1\0#q mJA2tda3-\0\0\0\17o\b|\9f\ 1\0#q aqkAfanx-\0\0\0\17o\b\84\9f\ 1\0#q Bmq2ZHU5-\0\0\0\17o\b\8c\9f\ 1\0#q 0MvBycGZ-\0\0\0\17o\b\94\9f\ 1\0#q je43sNn5-\0\0\0\17o\b\9c\9f\ 1\0#q CYiGYNwJ-\0\0\0\17o\b¤\9f\ 1\0#q BIRNj/Eq-\0\0\0\17o\b¬\9f\ 1\0#q mR34YYff-\0\0\0\17o\b´\9f\ 1\0#q Kj41OKr7-\0\0\0\17o\b¼\9f\ 1\0#q 4Ihj1OnA-\0\0\0\17o\bÄ\9f\ 1\0#q C82B5rJS-\0\0\0\17o\bÌ\9f\ 1\0#q xuPCk5Sn-\0\0\0\17o\bÔ\9f\ 1\0#q OICrQbAW-\0\0\0\17o\bÜ\9f\ 1\0#q FCMDZEMl-\0\0\0\17o\bä\9f\ 1\0#q lsNkyUZk-\0\0\0\17o\bì\9f\ 1\0#q hMzrWJAi-\0\0\0\17o\bô\9f\ 1\0#q Qm+4YC0K-\0\0\0\17o\bü\9f\ 1\0#q 62MK0mlr-\0\0\0\17o\b\ 4 \ 1\0#q mIc8DWIE-\0\0\0\17o\b\f \ 1\0#q FjI4sXzh-\0\0\0\17o\b\14 \ 1\0#q L8vpkYEZ-\0\0\0\17o\b\1c \ 1\0#q wSigrGAr-\0\0\0\17o\b\ 1\0#q DcBGj0gG-\0\0\0\17o\b\ 1\0#q FAr4FqGF-\0\0\0\17o\b\ 1\0#q Q1SOjTvH-\0\0\0\17o\b\ 1\0#q 0TulJ1XW-\0\0\0\17o\b\ 1\0#q HAIDBQFU-\0\0\0\17o\b\ 1\0#q 2BL7SBXa-\0\0\0\17o\b\ 1\0#q +99dSAvx-\0\0\0\17o\b\ 1\0#q CgIPnOIV-\0\0\0\17o\b\ 1\0#q hPMmTqqg-\0\0\0\17o\b\ 1\0#q YRFDUUEs-\0\0\0\17o\b\ 1\0#q UuxDfjmw-\0\0\0\17o\b\ 1\0#q MpaAek0+-\0\0\0\17o\b\84 \ 1\0#q O9i+KyRp-\0\0\0\17o\b\8c \ 1\0#q AG8DGE3q-\0\0\0\17o\b\94 \ 1\0#q EdlsT9H5-\0\0\0\17o\b\9c \ 1\0#q BPmUugch-\0\0\0\17o\b¤ \ 1\0#q 5YLMiAwT-\0\0\0\17o\b¬ \ 1\0#q Akdnj7Y3-\0\0\0\17o\b´ \ 1\0#q zvRe4V3q-\0\0\0\17o\b¼ \ 1\0#q 41uohGNQ-\0\0\0\17o\bÄ \ 1\0#q NXT1Czcw-\0\0\0\17o\bÌ \ 1\0#q ZOHoCYis-\0\0\0\17o\bÔ \ 1\0#q +EOsTzzi-\0\0\0\17o\bÜ \ 1\0#q YOV5ZAwq-\0\0\0\17o\bä \ 1\0#q oHrl2ATK-\0\0\0\17o\bì \ 1\0#q FHnpRssD-\0\0\0\17o\bô \ 1\0#q zmLdSlJD-\0\0\0\17o\bü \ 1\0#q g7CCwocg-\0\0\0\17o\b\ 4¡\ 1\0#q lqhuE+Eo-\0\0\0\17o\b\f¡\ 1\0#q jpsHOFog-\0\0\0\17o\b\14¡\ 1\0#q ASPtXBwK-\0\0\0\17o\b\1c¡\ 1\0#q Z802h3fl-\0\0\0\17o\b\ 1\0#q M1s1tZA8-\0\0\0\17o\b\ 1\0#q sM4cPDnA-\0\0\0\17o\b\ 1\0#q T6uS6umb-\0\0\0\17o\b\ 1\0#q St9nww6r-\0\0\0\17o\b\ 1\0#q DoI6wdYP-\0\0\0\17o\b\ 1\0#q ABwCkD4M-\0\0\0\17o\b\ 1\0#q pyWUDjtR-\0\0\0\17o\b\ 1\0#q IBzdU79H-\0\0\0\17o\b\ 1\0#q bBiX3vcZ-\0\0\0\17o\b\ 1\0#q ZGYTeQOl-\0\0\0\17o\b\ 1\0#q ZsLH/hj7-\0\0\0\17o\b\ 1\0#q 8oFxFCAR-\0\0\0\17o\b\84¡\ 1\0#q 3XQLAaGA-\0\0\0\17o\b\8c¡\ 1\0#q dDiPltBD-\0\0\0\17o\b\94¡\ 1\0#q 5eyxp0sa-\0\0\0\17o\b\9c¡\ 1\0#q 6DUCQ9yB-\0\0\0\17o\b¤¡\ 1\0#q 3omnTqYz-\0\0\0\17o\b¬¡\ 1\0#q NOQ7dGkZ-\0\0\0\17o\b´¡\ 1\0#q ocqlwqH9-\0\0\0\17o\b¼¡\ 1\0#q pIRCGyUG-\0\0\0\17o\bÄ¡\ 1\0#q WBqQyCxy-\0\0\0\17o\bÌ¡\ 1\0#q ehq7n/X6-\0\0\0\17o\bÔ¡\ 1\0#q 3fbu3lvZ-\0\0\0\17o\bÜ¡\ 1\0#q ivHbt2xc-\0\0\0\17o\bä¡\ 1\0#q 3MNMke2l-\0\0\0\17o\bì¡\ 1\0#q 6Uc4OiBR-\0\0\0\17o\bô¡\ 1\0#q sMViTMcm-\0\0\0\17o\bü¡\ 1\0#q SUZzTiou-\0\0\0\17o\b\ 4¢\ 1\0#q B0cMzMDc-\0\0\0\17o\b\f¢\ 1\0#q MhAn5DyX-\0\0\0\17o\b\14¢\ 1\0#q qlkdoH6T-\0\0\0\17o\b\1c¢\ 1\0#q OX/ia/Rn-\0\0\0\17o\b\ 1\0#q X2fHg6KQ-\0\0\0\17o\b\ 1\0#q TF18xSwH-\0\0\0\17o\b\ 1\0#q CgLERnIs-\0\0\0\17o\b\ 1\0#q 7MqnDBCu-\0\0\0\17o\b\ 1\0#q u5uA3wgA-\0\0\0\17o\b\ 1\0#q RixX8J05-\0\0\0\17o\b\ 1\0#q hR8PDApx-\0\0\0\17o\b\ 1\0#q lQIJmGtp-\0\0\0\17o\b\ 1\0#q RVjPTQ4W-\0\0\0\17o\b\ 1\0#q hDIBRyoZ-\0\0\0\17o\b\ 1\0#q 5o1kdEjB-\0\0\0\17o\b\ 1\0#q ho15A6uh-\0\0\0\17o\b\84¢\ 1\0#q LHeFCwXL-\0\0\0\17o\b\8c¢\ 1\0#q +9soCWWt-\0\0\0\17o\b\94¢\ 1\0#q fZsFJSQS-\0\0\0\17o\b\9c¢\ 1\0#q Lh/i4cAD-\0\0\0\17o\b¤¢\ 1\0#q pq1VAz4G-\0\0\0\17o\b¬¢\ 1\0#q FTiJjhUb-\0\0\0\17o\b´¢\ 1\0#q Kosgl7B7-\0\0\0\17o\b¼¢\ 1\0#q 51ekmAW8-\0\0\0\17o\bÄ¢\ 1\0#q qEBkjrpJ-\0\0\0\17o\bÌ¢\ 1\0#q Tsj2D0Ak-\0\0\0\17o\bÔ¢\ 1\0#q IBD0X4qo-\0\0\0\17o\bÜ¢\ 1\0#q EMX0AA0z-\0\0\0\17o\bä¢\ 1\0#q Qzao5o5T-\0\0\0\17o\bì¢\ 1\0#q Tzd5LNDK-\0\0\0\17o\bô¢\ 1\0#q rnPfRfO1-\0\0\0\17o\bü¢\ 1\0#q p44OgI4x-\0\0\0\17o\b\ 4£\ 1\0#q IzjnvqR2-\0\0\0\17o\b\f£\ 1\0#q Kz5Gwg+D-\0\0\0\17o\b\14£\ 1\0#q JUL4dAjs-\0\0\0\17o\b\1c£\ 1\0#q yge+pYSe-\0\0\0\17o\b\ 1\0#q PvEmKovg-\0\0\0\17o\b\ 1\0#q UXXilLjB-\0\0\0\17o\b\ 1\0#q fO4fT3oT-\0\0\0\17o\b\ 1\0#q YGwHVC0J-\0\0\0\17o\b\ 1\0#q 2gKaO2qo-\0\0\0\17o\b\ 1\0#q GfZ3ymu7-\0\0\0\17o\b\ 1\0#q AqTWofKK-\0\0\0\17o\b\ 1\0#q Hc998pr0-\0\0\0\17o\b\ 1\0#q 1xD2hKFg-\0\0\0\17o\b\ 1\0#q CFCO1eIW-\0\0\0\17o\b\ 1\0#q DjYeGgvG-\0\0\0\17o\b\ 1\0#q gWPaFTjz-\0\0\0\17o\b\84£\ 1\0#q JlNzf2GX-\0\0\0\17o\b\8c£\ 1\0#q XyGuBywp-\0\0\0\17o\b\94£\ 1\0#q bCI9aM6U-\0\0\0\17o\b\9c£\ 1\0#q O+tOtaQS-\0\0\0\17o\b¤£\ 1\0#q qpWu2Bes-\0\0\0\17o\b¬£\ 1\0#q Y5kXgwTF-\0\0\0\17o\b´£\ 1\0#q HTUPCg+y-\0\0\0\17o\b¼£\ 1\0#q 8oeXVwQ7-\0\0\0\17o\bÄ£\ 1\0#q yjsYrMak-\0\0\0\17o\bÌ£\ 1\0#q XS4XXDAJ-\0\0\0\17o\bÔ£\ 1\0#q lUBAhUGk-\0\0\0\17o\bÜ£\ 1\0#q 7oKAYdKT-\0\0\0\17o\bä£\ 1\0#q LFPcGom1-\0\0\0\17o\bì£\ 1\0#q CBxTjSRR-\0\0\0\17o\bô£\ 1\0#q soYbfcOs-\0\0\0\17o\bü£\ 1\0#q 9iE2BKVx-\0\0\0\17o\b\ 4¤\ 1\0#q 8w4aN9z7-\0\0\0\17o\b\f¤\ 1\0#q 7xds1BTp-\0\0\0\17o\b\14¤\ 1\0#q EnKyEY4T-\0\0\0\17o\b\1c¤\ 1\0#q EIk3XeTS-\0\0\0\17o\b\ 1\0#q 9hcaRANI-\0\0\0\17o\b\ 1\0#q X4k22qCD-\0\0\0\17o\b\ 1\0#q j84dwRJj-\0\0\0\17o\b\ 1\0#q o5YkxitJ-\0\0\0\17o\b\ 1\0#q JAO9xXTk-\0\0\0\17o\b\ 1\0#q OFA/MS7J-\0\0\0\17o\b\ 1\0#q YZDxNviH-\0\0\0\17o\b\ 1\0#q hoYrl0bD-\0\0\0\17o\b\ 1\0#q xFvhTQwS-\0\0\0\17o\b\ 1\0#q QimhAnQF-\0\0\0\17o\b\ 1\0#q iYoaaHrM-\0\0\0\17o\b\ 1\0#q gkYrCOGB-\0\0\0\17o\b\84¤\ 1\0#q tDa5Bmne-\0\0\0\17o\b\8c¤\ 1\0#q OFKwdG8D-\0\0\0\17o\b\94¤\ 1\0#q mOpCyvhq-\0\0\0\17o\b\9c¤\ 1\0#q GYNRcB69-\0\0\0\17o\b¤¤\ 1\0#q KAlJSFA5-\0\0\0\17o\b¬¤\ 1\0#q hCUHKDE4-\0\0\0\17o\b´¤\ 1\0#q GFcRwyRm-\0\0\0\17o\b¼¤\ 1\0#q EbfPPpve-\0\0\0\17o\bĤ\ 1\0#q JJIDaQgw-\0\0\0\17o\b̤\ 1\0#q rWJ/P78y-\0\0\0\17o\bÔ¤\ 1\0#q CMO9svE7-\0\0\0\17o\bܤ\ 1\0#q GZpvnPSW-\0\0\0\17o\bä¤\ 1\0#q aCtoEgL2-\0\0\0\17o\bì¤\ 1\0#q jLabbxBV-\0\0\0\17o\bô¤\ 1\0#q KIsbSY3Y-\0\0\0\17o\bü¤\ 1\0#q tJJ+NjNh-\0\0\0\17o\b\ 4¥\ 1\0#q 8b8AilDw-\0\0\0\17o\b\f¥\ 1\0#q UPusGoZA-\0\0\0\17o\b\14¥\ 1\0#q u82EYImS-\0\0\0\17o\b\1c¥\ 1\0#q RSk5GnwV-\0\0\0\17o\b\ 1\0#q IKWpSvFe-\0\0\0\17o\b\ 1\0#q BQnOAdAM-\0\0\0\17o\b\ 1\0#q uTV9DgEQ-\0\0\0\17o\b\ 1\0#q gQgvrro7-\0\0\0\17o\b\ 1\0#q JHSHZZfM-\0\0\0\17o\b\ 1\0#q JCKmTtQF-\0\0\0\17o\b\ 1\0#q OCceAYcT-\0\0\0\17o\b\ 1\0#q 265PCAg2-\0\0\0\17o\b\ 1\0#q SE+XhMkK-\0\0\0\17o\b\ 1\0#q lPgHB9+H-\0\0\0\17o\b\ 1\0#q TOoLI8s4-\0\0\0\17o\b\ 1\0#q BJuk9F7w-\0\0\0\17o\b\84¥\ 1\0#q qDCjRw6y-\0\0\0\17o\b\8c¥\ 1\0#q D8yVeukR-\0\0\0\17o\b\94¥\ 1\0#q Z7qrFZYr-\0\0\0\17o\b\9c¥\ 1\0#q AMMmhmgF-\0\0\0\17o\b¤¥\ 1\0#q DKEdZztk-\0\0\0\17o\b¬¥\ 1\0#q qFY4HuEk-\0\0\0\17o\b´¥\ 1\0#q fuhz9pTs-\0\0\0\17o\b¼¥\ 1\0#q XzFtqqB5-\0\0\0\17o\bÄ¥\ 1\0#q Tv5gsZ8h-\0\0\0\17o\bÌ¥\ 1\0#q mh8x8wAf-\0\0\0\17o\bÔ¥\ 1\0#q ZSHNyDX0-\0\0\0\17o\bÜ¥\ 1\0#q vZDTySL9-\0\0\0\17o\bä¥\ 1\0#q 4fOjqfD0-\0\0\0\17o\bì¥\ 1\0#q KHsVflvr-\0\0\0\17o\bô¥\ 1\0#q WX5ow8Q0-\0\0\0\17o\bü¥\ 1\0#q QhFVMbcp-\0\0\0\17o\b\ 4¦\ 1\0#q mX80Ezgf-\0\0\0\17o\b\f¦\ 1\0#q HYjMuA8w-\0\0\0\17o\b\14¦\ 1\0#q Ly42E7Sz-\0\0\0\17o\b\1c¦\ 1\0#q 3rziuCIB-\0\0\0\17o\b\ 1\0#q 2Dsghxkk-\0\0\0\17o\b\ 1\0#q Ry0Bzp6F-\0\0\0\17o\b\ 1\0#q VAA8MKcF-\0\0\0\17o\b\ 1\0#q vSjqknlx-\0\0\0\17o\b\ 1\0#q dHAT0wDn-\0\0\0\17o\b\ 1\0#q 07kBQcd9-\0\0\0\17o\b\ 1\0#q oLK7tKmn-\0\0\0\17o\b\ 1\0#q ZYnZZrh6-\0\0\0\17o\b\ 1\0#q DrhvciJ0-\0\0\0\17o\b\ 1\0#q ss6vdzXd-\0\0\0\17o\b\ 1\0#q wMQKJMWT-\0\0\0\17o\b\ 1\0#q 7tXSHPBy-\0\0\0\17o\b\84¦\ 1\0#q oD9hWNqM-\0\0\0\17o\b\8c¦\ 1\0#q OwE85ypX-\0\0\0\17o\b\94¦\ 1\0#q mQLQwbXS-\0\0\0\17o\b\9c¦\ 1\0#q kJWY6qxC-\0\0\0\17o\b¤¦\ 1\0#q wo6HFcFL-\0\0\0\17o\b¬¦\ 1\0#q CAk6bCVH-\0\0\0\17o\b´¦\ 1\0#q FyYQc5H6-\0\0\0\17o\b¼¦\ 1\0#q Ezm+mNHD-\0\0\0\17o\bĦ\ 1\0#q 03wkk6j7-\0\0\0\17o\b̦\ 1\0#q m480R07W-\0\0\0\17o\bÔ¦\ 1\0#q +QkhCKSn-\0\0\0\17o\bܦ\ 1\0#q JVvGUvBB-\0\0\0\17o\bä¦\ 1\0#q lRzDZDee-\0\0\0\17o\bì¦\ 1\0#q aNvGwHd0-\0\0\0\17o\bô¦\ 1\0#q PT2wTy2H-\0\0\0\17o\bü¦\ 1\0#q nkWtuMhk-\0\0\0\17o\b\ 4§\ 1\0#q klgK66LZ-\0\0\0\17o\b\f§\ 1\0#q BC6hKMJn-\0\0\0\17o\b\14§\ 1\0#q OxOpo4Ya-\0\0\0\17o\b\1c§\ 1\0#q B5V7rgii-\0\0\0\17o\b\ 1\0#q WQXGCiJr-\0\0\0\17o\b\ 1\0#q Yk4Y59qs-\0\0\0\17o\b\ 1\0#q lhcA8/XJ-\0\0\0\17o\b\ 1\0#q NJQLb+5t-\0\0\0\17o\b\ 1\0#q UzHJCBgj-\0\0\0\17o\b\ 1\0#q Qx3GrzzH-\0\0\0\17o\b\ 1\0#q n6xmZ9A0-\0\0\0\17o\b\ 1\0#q PtV9dbez-\0\0\0\17o\b\ 1\0#q pCHExoED-\0\0\0\17o\b\ 1\0#q wlrH8dll-\0\0\0\17o\b\ 1\0#q A4YEY1mh-\0\0\0\17o\b\ 1\0#q sA0dIPPs-\0\0\0\17o\b\84§\ 1\0#q j4Mi73vz-\0\0\0\17o\b\8c§\ 1\0#q nrsvJLs5-\0\0\0\17o\b\94§\ 1\0#q YqABDfro-\0\0\0\17o\b\9c§\ 1\0#q HBg+ShQ0-\0\0\0\17o\b¤§\ 1\0#q IgOs44NI-\0\0\0\17o\b¬§\ 1\0#q 4F8CIIsV-\0\0\0\17o\b´§\ 1\0#q XHQ6z3KS-\0\0\0\17o\b¼§\ 1\0#q 4MOhdxig-\0\0\0\17o\bħ\ 1\0#q YOImz2UG-\0\0\0\17o\b̧\ 1\0#q gJAuBhps-\0\0\0\17o\bÔ§\ 1\0#q gLrldXnh-\0\0\0\17o\bܧ\ 1\0#q NQ4jLCUy-\0\0\0\17o\bä§\ 1\0#q TxyhrIrw-\0\0\0\17o\bì§\ 1\0#q uyYrqo6M-\0\0\0\17o\bô§\ 1\0#q JzQ2Wl3A-\0\0\0\17o\bü§\ 1\0#q dDzKOb3C-\0\0\0\17o\b\ 4¨\ 1\0#q ydryz5Do-\0\0\0\17o\b\f¨\ 1\0#q pHBHMKBN-\0\0\0\17o\b\14¨\ 1\0#q dAOAdXJh-\0\0\0\17o\b\1c¨\ 1\0#q YMgMb2s9-\0\0\0\17o\b\ 1\0#q Fp70MSCl-\0\0\0\17o\b\ 1\0#q w9KpTbdz-\0\0\0\17o\b\ 1\0#q hHAuMGAt-\0\0\0\17o\b\ 1\0#q obHQJ2SU-\0\0\0\17o\b\ 1\0#q Rvgbbhyt-\0\0\0\17o\b\ 1\0#q BecsuXl+-\0\0\0\17o\b\ 1\0#q 2jKigzt7-\0\0\0\17o\b\ 1\0#q goBTjmpC-\0\0\0\17o\b\ 1\0#q 8RowanZd-\0\0\0\17o\b\ 1\0#q xJOhWjwh-\0\0\0\17o\b\ 1\0#q wrm99FSi-\0\0\0\17o\b\ 1\0#q J2OgLLnm-\0\0\0\17o\b\84¨\ 1\0#q 8pnjT1Fc-\0\0\0\17o\b\8c¨\ 1\0#q CXCc0JaZ-\0\0\0\17o\b\94¨\ 1\0#q ijcmjpDA-\0\0\0\17o\b\9c¨\ 1\0#q CeVTrZne-\0\0\0\17o\b¤¨\ 1\0#q XxGRA+18-\0\0\0\17o\b¬¨\ 1\0#q 4I985kcH-\0\0\0\17o\b´¨\ 1\0#q QIQIEFMg-\0\0\0\17o\b¼¨\ 1\0#q WfO635rg-\0\0\0\17o\bĨ\ 1\0#q 0SZSO/at-\0\0\0\17o\b̨\ 1\0#q HtcUKa3T-\0\0\0\17o\bÔ¨\ 1\0#q Z8OJoImY-\0\0\0\17o\bܨ\ 1\0#q sgRoKAhi-\0\0\0\17o\bä¨\ 1\0#q ZKIBUsG7-\0\0\0\17o\bì¨\ 1\0#q yTOFlDFn-\0\0\0\17o\bô¨\ 1\0#q cMU9EG4C-\0\0\0\17o\bü¨\ 1\0#q MLUKMxbi-\0\0\0\17o\b\ 4©\ 1\0#q CaMDYdhs-\0\0\0\17o\b\f©\ 1\0#q JSKdyLFJ-\0\0\0\17o\b\14©\ 1\0#q CQmviCCL-\0\0\0\17o\b\1c©\ 1\0#q gGuUz81p-\0\0\0\17o\b\ 1\0#q tojXx2oe-\0\0\0\17o\b\ 1\0#q 4d2iHnAk-\0\0\0\17o\b\ 1\0#q VSdhzcfH-\0\0\0\17o\b\ 1\0#q 2K2UnIQ9-\0\0\0\17o\b\ 1\0#q u0F30MHB-\0\0\0\17o\b\ 1\0#q OBY0UHMY-\0\0\0\17o\b\ 1\0#q YjgCQTAW-\0\0\0\17o\b\ 1\0#q MbwXTZQX-\0\0\0\17o\b\ 1\0#q aOgnfjck-\0\0\0\17o\b\ 1\0#q J+BO475Z-\0\0\0\17o\b\ 1\0#q yfo8/R0N-\0\0\0\17o\b\ 1\0#q lEMBq8c9-\0\0\0\17o\b\84©\ 1\0#q 4sZJiNrn-\0\0\0\17o\b\8c©\ 1\0#q yJ8OoMID-\0\0\0\17o\b\94©\ 1\0#q QPjt9uJK-\0\0\0\17o\b\9c©\ 1\0#q 8Rk5aFDY-\0\0\0\17o\b¤©\ 1\0#q bJfWSynw-\0\0\0\17o\b¬©\ 1\0#q RhgIbQoB-\0\0\0\17o\b´©\ 1\0#q 0+IsZPFG-\0\0\0\17o\b¼©\ 1\0#q y4yADzZL-\0\0\0\17o\bÄ©\ 1\0#q YokaBywD-\0\0\0\17o\bÌ©\ 1\0#q CRmTeH5t-\0\0\0\17o\bÔ©\ 1\0#q mhDzPmA2-\0\0\0\17o\bÜ©\ 1\0#q rD32gaqn-\0\0\0\17o\bä©\ 1\0#q eqHMNqA3-\0\0\0\17o\bì©\ 1\0#q FgsMePDM-\0\0\0\17o\bô©\ 1\0#q 9KB69ebN-\0\0\0\17o\bü©\ 1\0#q 4HOAhc26-\0\0\0\17o\b\ 4ª\ 1\0#q eoGFI1QJ-\0\0\0\17o\b\fª\ 1\0#q m898wsO5-\0\0\0\17o\b\14ª\ 1\0#q qZxBxcWU-\0\0\0\17o\b\1cª\ 1\0#q gvtw5Q8A-\0\0\0\17o\b\ 1\0#q MEOOJJ8H-\0\0\0\17o\b\ 1\0#q EEk6B45Z-\0\0\0\17o\b\ 1\0#q yIoFaB5K-\0\0\0\17o\b\ 1\0#q W8FLb/M4-\0\0\0\17o\b\ 1\0#q KYSZIP/T-\0\0\0\17o\b\ 1\0#q y/DoMk5A-\0\0\0\17o\b\ 1\0#q mi3wPAH8-\0\0\0\17o\b\ 1\0#q EyWhTaUs-\0\0\0\17o\b\ 1\0#q FlQ+g6AE-\0\0\0\17o\b\ 1\0#q FdgHlJWN-\0\0\0\17o\b\ 1\0#q LpOCvdk3-\0\0\0\17o\b\ 1\0#q q+hWdqbT-\0\0\0\17o\b\84ª\ 1\0#q JWRS1dey-\0\0\0\17o\b\8cª\ 1\0#q wOAQwQUm-\0\0\0\17o\b\94ª\ 1\0#q sxpFozUQ-\0\0\0\17o\b\9cª\ 1\0#q bFTRcPzh-\0\0\0\17o\b¤ª\ 1\0#q mHw0BxsE-\0\0\0\17o\b¬ª\ 1\0#q HFHdI2kU-\0\0\0\17o\b´ª\ 1\0#q HjDkRPSG-\0\0\0\17o\b¼ª\ 1\0#q Ap3SUo8B-\0\0\0\17o\bĪ\ 1\0#q EdPPPTw4-\0\0\0\17o\b̪\ 1\0#q 44KbQ4SZ-\0\0\0\17o\bÔª\ 1\0#q sIKdYe3W-\0\0\0\17o\bܪ\ 1\0#q Co1EtM7z-\0\0\0\17o\bäª\ 1\0#q KTu1VAoZ-\0\0\0\17o\bìª\ 1\0#q 7hPFDfU8-\0\0\0\17o\bôª\ 1\0#q 8SlCY2aH-\0\0\0\17o\büª\ 1\0#q VSnVAOBA-\0\0\0\17o\b\ 4«\ 1\0#q 5wzuGlcH-\0\0\0\17o\b\f«\ 1\0#q Rs8STcvG-\0\0\0\17o\b\14«\ 1\0#q Cu0xIzUF-\0\0\0\17o\b\1c«\ 1\0#q jkwcvlhe-\0\0\0\17o\b\ 1\0#q RAzgRbJk-\0\0\0\17o\b\ 1\0#q zf/N0YjQ-\0\0\0\17o\b\ 1\0#q wJYrJ16V-\0\0\0\17o\b\ 1\0#q zC1gueMT-\0\0\0\17o\b\ 1\0#q W4Rt5rYT-\0\0\0\17o\b\ 1\0#q IRNwYQYt-\0\0\0\17o\b\ 1\0#q HOtSD6Sh-\0\0\0\17o\b\ 1\0#q BHOQzP37-\0\0\0\17o\b\ 1\0#q jm+TT/gv-\0\0\0\17o\b\ 1\0#q nq0DgyDu-\0\0\0\17o\b\ 1\0#q ezyZv7FG-\0\0\0\17o\b\ 1\0#q KF8j4kpF-\0\0\0\17o\b\84«\ 1\0#q LwakHPsy-\0\0\0\17o\b\8c«\ 1\0#q LSDphCyx-\0\0\0\17o\b\94«\ 1\0#q QLl7xgnr-\0\0\0\17o\b\9c«\ 1\0#q +Pl8wbTs-\0\0\0\17o\b¤«\ 1\0#q F8dx04kw-\0\0\0\17o\b¬«\ 1\0#q B75wFRLd-\0\0\0\17o\b´«\ 1\0#q NRIBmhw2-\0\0\0\17o\b¼«\ 1\0#q pH3UCbB9-\0\0\0\17o\bÄ«\ 1\0#q EgE9z5eI-\0\0\0\17o\bÌ«\ 1\0#q BPN3vYxz-\0\0\0\17o\bÔ«\ 1\0#q TZ4nEgVR-\0\0\0\17o\bÜ«\ 1\0#q 4qoGQtM+-\0\0\0\17o\bä«\ 1\0#q BuGwlgV1-\0\0\0\17o\bì«\ 1\0#q WoHG4Eao-\0\0\0\17o\bô«\ 1\0#q NASMhGBg-\0\0\0\17o\bü«\ 1\0#q XYFRVYIX-\0\0\0\17o\b\ 4¬\ 1\0#q lASg6LSg-\0\0\0\17o\b\f¬\ 1\0#q GqeHmiyA-\0\0\0\17o\b\14¬\ 1\0#q sDilBBOq-\0\0\0\17o\b\1c¬\ 1\0#q QsS4Og5r-\0\0\0\17o\b\ 1\0#q ap1miKqA-\0\0\0\17o\b\ 1\0#q dUA6AdYT-\0\0\0\17o\b\ 1\0#q WmgTRQWe-\0\0\0\17o\b\ 1\0#q ULDLBzlS-\0\0\0\17o\b\ 1\0#q EcEEDJbB-\0\0\0\17o\b\ 1\0#q 4nTaBTC2-\0\0\0\17o\b\ 1\0#q glnEXi2h-\0\0\0\17o\b\ 1\0#q aNhLoJcd-\0\0\0\17o\b\ 1\0#q gCNAkhcq-\0\0\0\17o\b\ 1\0#q bCc44gFr-\0\0\0\17o\b\ 1\0#q Brre1RE7-\0\0\0\17o\b\ 1\0#q eydRrtb9-\0\0\0\17o\b\84¬\ 1\0#q wdNITgOo-\0\0\0\17o\b\8c¬\ 1\0#q j4QWulZi-\0\0\0\17o\b\94¬\ 1\0#q Ll9z7V6D-\0\0\0\17o\b\9c¬\ 1\0#q bnFmgcim-\0\0\0\17o\b¤¬\ 1\0#q AjOFhQs7-\0\0\0\17o\b¬¬\ 1\0#q UI75C551-\0\0\0\17o\b´¬\ 1\0#q aKdXmUEH-\0\0\0\17o\b¼¬\ 1\0#q KSvEOCld-\0\0\0\17o\bĬ\ 1\0#q H1YzE3wo-\0\0\0\17o\b̬\ 1\0#q E42BxwHl-\0\0\0\17o\bÔ¬\ 1\0#q 9Xk7YSa0-\0\0\0\17o\bܬ\ 1\0#q g1vV9Cri-\0\0\0\17o\bä¬\ 1\0#q IWOztgqD-\0\0\0\17o\bì¬\ 1\0#q 6DgKN3Av-\0\0\0\17o\bô¬\ 1\0#q OkS3ODdn-\0\0\0\17o\bü¬\ 1\0#q Tdtll+ab-\0\0\0\17o\b\ 4­\ 1\0#q k1SRIIGv-\0\0\0\17o\b\f­\ 1\0#q fALBUOBR-\0\0\0\17o\b\14­\ 1\0#q 7ZFBZ4BU-\0\0\0\17o\b\1c­\ 1\0#q pBnSQ4hF-\0\0\0\17o\b\ 1\0#q HFEZ473Y-\0\0\0\17o\b\ 1\0#q 3P+zY7O6-\0\0\0\17o\b\ 1\0#q 0Rs1LaWq-\0\0\0\17o\b\ 1\0#q HHIcwa8t-\0\0\0\17o\b\ 1\0#q xlB4jJJE-\0\0\0\17o\b\ 1\0#q w5YZFHWA-\0\0\0\17o\b\ 1\0#q ZUEtKyoI-\0\0\0\17o\b\ 1\0#q GdMwDYlA-\0\0\0\17o\b\ 1\0#q +A9mFgSZ-\0\0\0\17o\b\ 1\0#q bOw4M6OO-\0\0\0\17o\b\ 1\0#q SmPkMl1O-\0\0\0\17o\b\ 1\0#q YzvpRASm-\0\0\0\17o\b\84­\ 1\0#q vvXmUjTp-\0\0\0\17o\b\8c­\ 1\0#q 8joGG1lR-\0\0\0\17o\b\94­\ 1\0#q 1cQpEEug-\0\0\0\17o\b\9c­\ 1\0#q zJBUyZnl-\0\0\0\17o\b¤­\ 1\0#q ygzInkeR-\0\0\0\17o\b¬­\ 1\0#q 9IZ+wHyA-\0\0\0\17o\b´­\ 1\0#q TZQgPmd1-\0\0\0\17o\b¼­\ 1\0#q ZmIUecB8-\0\0\0\17o\bÄ­\ 1\0#q pAzd6P0t-\0\0\0\17o\bÌ­\ 1\0#q AUK45zvD-\0\0\0\17o\bÔ­\ 1\0#q zCusNxdK-\0\0\0\17o\bÜ­\ 1\0#q PDohseJe-\0\0\0\17o\bä­\ 1\0#q eAI6Zvad-\0\0\0\17o\bì­\ 1\0#q wEcFQCRC-\0\0\0\17o\bô­\ 1\0#q gsXNcDfG-\0\0\0\17o\bü­\ 1\0#q 6wqIm732-\0\0\0\17o\b\ 4®\ 1\0#q cGQgwkIA-\0\0\0\17o\b\f®\ 1\0#q SKEgydIj-\0\0\0\17o\b\14®\ 1\0#q IZQ4a2th-\0\0\0\17o\b\1c®\ 1\0#q urU6wysr-\0\0\0\17o\b\ 1\0#q TQQglytZ-\0\0\0\17o\b\ 1\0#q nEFtKoQO-\0\0\0\17o\b\ 1\0#q jdqfOmiD-\0\0\0\17o\b\ 1\0#q ah274ym7-\0\0\0\17o\b\ 1\0#q EDxm9s9L-\0\0\0\17o\b\ 1\0#q CegGgMop-\0\0\0\17o\b\ 1\0#q kIt4LQ1X-\0\0\0\17o\b\ 1\0#q tb9yBS7B-\0\0\0\17o\b\ 1\0#q 2LUpK7hU-\0\0\0\17o\b\ 1\0#q pgHQVCXm-\0\0\0\17o\b\ 1\0#q wmbMOQqG-\0\0\0\17o\b\ 1\0#q HhGVvfpg-\0\0\0\17o\b\84®\ 1\0#q EjVDoew6-\0\0\0\17o\b\8c®\ 1\0#q qNbwaB5v-\0\0\0\17o\b\94®\ 1\0#q ajnexW8p-\0\0\0\17o\b\9c®\ 1\0#q SBC73poO-\0\0\0\17o\b¤®\ 1\0#q sSDMENqj-\0\0\0\17o\b¬®\ 1\0#q GDoVUvvC-\0\0\0\17o\b´®\ 1\0#q S9M4jdfR-\0\0\0\17o\b¼®\ 1\0#q rEmuQYwM-\0\0\0\17o\bÄ®\ 1\0#q 5KDSHMK3-\0\0\0\17o\bÌ®\ 1\0#q B64lqG9D-\0\0\0\17o\bÔ®\ 1\0#q hQ0JoNQH-\0\0\0\17o\bÜ®\ 1\0#q lDlAPccR-\0\0\0\17o\bä®\ 1\0#q KnfODi2T-\0\0\0\17o\bì®\ 1\0#q DOoYNSZA-\0\0\0\17o\bô®\ 1\0#q cBzrUAVg-\0\0\0\17o\bü®\ 1\0#q lyHGRUI0-\0\0\0\17o\b\ 4¯\ 1\0#q bMziEWOU-\0\0\0\17o\b\f¯\ 1\0#q JYnAOUMt-\0\0\0\17o\b\14¯\ 1\0#q 6Rku3X2Z-\0\0\0\17o\b\1c¯\ 1\0#q a5l+nJIH-\0\0\0\17o\b\ 1\0#q iJXNq4xz-\0\0\0\17o\b\ 1\0#q ccGdzaqu-\0\0\0\17o\b\ 1\0#q 4qJJiDRB-\0\0\0\17o\b\ 1\0#q AN2TBKur-\0\0\0\17o\b\ 1\0#q ol+bv9SB-\0\0\0\17o\b\ 1\0#q CSAX8+8H-\0\0\0\17o\b\ 1\0#q l/r7sZnx-\0\0\0\17o\b\ 1\0#q y9PYe6Z7-\0\0\0\17o\b\ 1\0#q cvs98YtZ-\0\0\0\17o\b\ 1\0#q /SwPrgMD-\0\0\0\17o\b\ 1\0#q 9OXynBh/-\0\0\0\17o\b\ 1\0#q XzxwXwdW-\0\0\0\17o\b\84¯\ 1\0#q FeXp/iVD-\0\0\0\17o\b\8c¯\ 1\0#q kMgNriWp-\0\0\0\17o\b\94¯\ 1\0#q JDP1n5az-\0\0\0\17o\b\9c¯\ 1\0#q Cg6/xxxE-\0\0\0\17o\b¤¯\ 1\0#q vwpxkfhI-\0\0\0\17o\b¬¯\ 1\0#q P9s+2nQ/-\0\0\0\17o\b´¯\ 1\0#q fn4vF9+j-\0\0\0\17o\b¼¯\ 1\0#q J+ngfdWL-\0\0\0\17o\bį\ 1\0#q 4CPb5czf-\0\0\0\17o\b̯\ 1\0#q UQwvVtZE-\0\0\0\17o\bÔ¯\ 1\0#q uz7Om9iW-\0\0\0\17o\bܯ\ 1\0#q rwP/ePX0-\0\0\0\17o\bä¯\ 1\0#q KAP0+V9i-\0\0\0\17o\bì¯\ 1\0#q nRoSgybc-\0\0\0\17o\bô¯\ 1\0#q cCP6dPd+-\0\0\0\17o\bü¯\ 1\0#q K+f24YnQ-\0\0\0\17o\b\ 4°\ 1\0#q 9YpYUGst-\0\0\0\17o\b\f°\ 1\0#q TKKFMYQd-\0\0\0\17o\b\14°\ 1\0#q T2HL0fr+-\0\0\0\17o\b\1c°\ 1\0#q fbVW3qvv-\0\0\0\17o\b\ 1\0#q 1NLVbRWS-\0\0\0\17o\b\ 1\0#q UrVJUxgS-\0\0\0\17o\b\ 1\0#q VjWktRao-\0\0\0\17o\b\ 1\0#q qKNrFWmU-\0\0\0\17o\b\ 1\0#q UVMjUUmp-\0\0\0\17o\b\ 1\0#q li0zKazD-\0\0\0\17o\b\ 1\0#q abQ0YKDY-\0\0\0\17o\b\ 1\0#q xZMGg1Bp-\0\0\0\17o\b\ 1\0#q RpYUwpQC-\0\0\0\17o\b\ 1\0#q MhoC8nsJ-\0\0\0\17o\b\ 1\0#q e4+Dy3Xr-\0\0\0\17o\b\ 1\0#q 8S8ifkOz-\0\0\0\17o\b\84°\ 1\0#q /vaP7ETx-\0\0\0\17o\b\8c°\ 1\0#q FiYoqdkO-\0\0\0\17o\b\94°\ 1\0#q eLbBtH+b-\0\0\0\17o\b\9c°\ 1\0#q Hadmz2QG-\0\0\0\17o\b¤°\ 1\0#q sccbGX7O-\0\0\0\17o\b¬°\ 1\0#q U2D+LhZD-\0\0\0\17o\b´°\ 1\0#q xGPjMsOy-\0\0\0\17o\b¼°\ 1\0#q V+DZO9PS-\0\0\0\17o\bİ\ 1\0#q eDPkEcZO-\0\0\0\17o\b̰\ 1\0#q SS8UzBJ+-\0\0\0\17o\bÔ°\ 1\0#q ecnUZhlZ-\0\0\0\17o\bܰ\ 1\0#q 9ZyM/ad2-\0\0\0\17o\bä°\ 1\0#q 2YYrjBcA-\0\0\0\17o\bì°\ 1\0#q z/3V2B8/-\0\0\0\17o\bô°\ 1\0#q JiuT7ED9-\0\0\0\17o\bü°\ 1\0#q kw+rGGSG-\0\0\0\17o\b\ 4±\ 1\0#q mqTbJiMm-\0\0\0\17o\b\f±\ 1\0#q LSysmTaS-\0\0\0\17o\b\14±\ 1\0#q 0aks2bSz-\0\0\0\17o\b\1c±\ 1\0#q WlZtg1Ep-\0\0\0\17o\b\ 1\0#q SSYlNkqI-\0\0\0\17o\b\ 1\0#q tCalNFst-\0\0\0\17o\b\ 1\0#q NttqaprS-\0\0\0\17o\b\ 1\0#q mpS0pqU1-\0\0\0\17o\b\ 1\0#q LNFgKpZV-\0\0\0\17o\b\ 1\0#q srWWrM0l-\0\0\0\17o\b\ 1\0#q JM1bEW0q-\0\0\0\17o\b\ 1\0#q bEmiLVtR-\0\0\0\17o\b\ 1\0#q GZUbSprW-\0\0\0\17o\b\ 1\0#q bNaLUqak-\0\0\0\17o\b\ 1\0#q s021KtbS-\0\0\0\17o\b\ 1\0#q 2RlllbMs-\0\0\0\17o\b\84±\ 1\0#q ywtspLGj-\0\0\0\17o\b\8c±\ 1\0#q SaVEzMYk-\0\0\0\17o\b\94±\ 1\0#q 2NmzWptl-\0\0\0\17o\b\9c±\ 1\0#q rJWmSoRZ-\0\0\0\17o\b¤±\ 1\0#q SsptlZZL-\0\0\0\17o\b¬±\ 1\0#q RGTaNKm2-\0\0\0\17o\b´±\ 1\0#q LJmmyUmS-\0\0\0\17o\b¼±\ 1\0#q WRk0Wpql-\0\0\0\17o\bı\ 1\0#q UZJJiWlp-\0\0\0\17o\ḇ\ 1\0#q tkjGjUy0-\0\0\0\17o\bÔ±\ 1\0#q 1TaUkrKz-\0\0\0\17o\bܱ\ 1\0#q SlLTMzAb-\0\0\0\17o\bä±\ 1\0#q Ng2KlpJM-\0\0\0\17o\bì±\ 1\0#q l63e7/d+-\0\0\0\17o\bô±\ 1\0#q ENF1fgGL-\0\0\0\17o\bü±\ 1\0#q Huf56NGd-\0\0\0\17o\b\ 4²\ 1\0#q qOvg7hSN-\0\0\0\17o\b\f²\ 1\0#q iHHED5NK-\0\0\0\17o\b\14²\ 1\0#q zQnm2yaA-\0\0\0\17o\b\1c²\ 1\0#q QJTIxieF-\0\0\0\17o\b\ 1\0#q JM3ij3X3-\0\0\0\17o\b\ 1\0#q qh5AHBhk-\0\0\0\17o\b\ 1\0#q 2riuNRvB-\0\0\0\17o\b\ 1\0#q d1dJNK/o-\0\0\0\17o\b\ 1\0#q 55W5e1NX-\0\0\0\17o\b\ 1\0#q ks/nngBU-\0\0\0\17o\b\ 1\0#q Dz7INtUf-\0\0\0\17o\b\ 1\0#q FdK0JrgN-\0\0\0\17o\b\ 1\0#q gbjAdgkJ-\0\0\0\17o\b\ 1\0#q GRczQCng-\0\0\0\17o\b\ 1\0#q L6Zh4BT2-\0\0\0\17o\b\ 1\0#q UW6xEWOC-\0\0\0\17o\b\84²\ 1\0#q C4FzQuaj-\0\0\0\17o\b\8c²\ 1\0#q OxoBErUs-\0\0\0\17o\b\94²\ 1\0#q V1z6K8cA-\0\0\0\17o\b\9c²\ 1\0#q ICwJGRj6-\0\0\0\17o\b¤²\ 1\0#q fB5iCC6h-\0\0\0\17o\b¬²\ 1\0#q 8QhiZB9q-\0\0\0\17o\b´²\ 1\0#q Lr5NFyCe-\0\0\0\17o\b¼²\ 1\0#q nPzIPnc0-\0\0\0\17o\bIJ\ 1\0#q WwotMInx-\0\0\0\17o\b̲\ 1\0#q 4sAoHfMU-\0\0\0\17o\bÔ²\ 1\0#q 5HgU6hhR-\0\0\0\17o\bܲ\ 1\0#q Bkppj/Fg-\0\0\0\17o\bä²\ 1\0#q HNLt0ubr-\0\0\0\17o\bì²\ 1\0#q 4APQXPI0-\0\0\0\17o\bô²\ 1\0#q 6DXqSSyD-\0\0\0\17o\bü²\ 1\0#q Zid8zuPu-\0\0\0\17o\b\ 4³\ 1\0#q LwXKN4cj-\0\0\0\17o\b\f³\ 1\0#q jq/w8zET-\0\0\0\17o\b\14³\ 1\0#q QQQXn+w0-\0\0\0\17o\b\1c³\ 1\0#q DiEJEiKh-\0\0\0\17o\b\ 1\0#q 7fzQ5LMf-\0\0\0\17o\b\ 1\0#q gQXmXrdt-\0\0\0\17o\b\ 1\0#q A+sBzTIi-\0\0\0\17o\b\ 1\0#q gGxVCwsO-\0\0\0\17o\b\ 1\0#q YhmJycnC-\0\0\0\17o\b\ 1\0#q CGplhE8/-\0\0\0\17o\b\ 1\0#q sdAhQXcs-\0\0\0\17o\b\ 1\0#q IRJFJISE-\0\0\0\17o\b\ 1\0#q JE8flHQO-\0\0\0\17o\b\ 1\0#q 6cgR0ZCo-\0\0\0\17o\b\ 1\0#q E/TcCd+B-\0\0\0\17o\b\ 1\0#q BP7orIml-\0\0\0\17o\b\84³\ 1\0#q 5zlZgw9K-\0\0\0\17o\b\8c³\ 1\0#q QKKpGkiw-\0\0\0\17o\b\94³\ 1\0#q gESxpnXK-\0\0\0\17o\b\9c³\ 1\0#q 9pYwUAa8-\0\0\0\17o\b¤³\ 1\0#q 9ij5sPoU-\0\0\0\17o\b¬³\ 1\0#q YZjQ0lyA-\0\0\0\17o\b´³\ 1\0#q cxQc/xtR-\0\0\0\17o\b¼³\ 1\0#q zIOJISJH-\0\0\0\17o\bij\ 1\0#q L7Ny0JDw-\0\0\0\17o\b̳\ 1\0#q BwZa4MDU-\0\0\0\17o\bÔ³\ 1\0#q FR8D5CCC-\0\0\0\17o\bܳ\ 1\0#q wzTyVsZe-\0\0\0\17o\bä³\ 1\0#q jnQapAVG-\0\0\0\17o\bì³\ 1\0#q YICC5dDX-\0\0\0\17o\bô³\ 1\0#q tXOsmZXM-\0\0\0\17o\bü³\ 1\0#q O7mFWN7P-\0\0\0\17o\b\ 4´\ 1\0#q 56mEGIAc-\0\0\0\17o\b\f´\ 1\0#q JHHBshar-\0\0\0\17o\b\14´\ 1\0#q UAUcAp9U-\0\0\0\17o\b\1c´\ 1\0#q rviBIAxJ-\0\0\0\17o\b\ 1\0#q 08i+RBO3-\0\0\0\17o\b\ 1\0#q Ah2QAgiK-\0\0\0\17o\b\ 1\0#q 4kThwo8s-\0\0\0\17o\b\ 1\0#q DCf0aftx-\0\0\0\17o\b\ 1\0#q qENQKMTv-\0\0\0\17o\b\ 1\0#q TZBCNMVo-\0\0\0\17o\b\ 1\0#q DJwdi4fV-\0\0\0\17o\b\ 1\0#q hYNQyMy4-\0\0\0\17o\b\ 1\0#q KjH6SlEA-\0\0\0\17o\b\ 1\0#q vexZaMCm-\0\0\0\17o\b\ 1\0#q xViqK0e1-\0\0\0\17o\b\ 1\0#q JpDA33Zg-\0\0\0\17o\b\84´\ 1\0#q 0xuGQl9E-\0\0\0\17o\b\8c´\ 1\0#q hiQvQ2FH-\0\0\0\17o\b\94´\ 1\0#q NA6XqGDe-\0\0\0\17o\b\9c´\ 1\0#q 6CB3obIH-\0\0\0\17o\b¤´\ 1\0#q AhBD+L/2-\0\0\0\17o\b¬´\ 1\0#q H7JweCnN-\0\0\0\17o\b´´\ 1\0#q u3h8F/bQ-\0\0\0\17o\b¼´\ 1\0#q AgQghowH-\0\0\0\17o\bÄ´\ 1\0#q 1UAW3ICg-\0\0\0\17o\bÌ´\ 1\0#q LRMWh9MD-\0\0\0\17o\bÔ´\ 1\0#q 3nL6B5zv-\0\0\0\17o\bÜ´\ 1\0#q W/rtbABA-\0\0\0\17o\bä´\ 1\0#q W7j9J/ub-\0\0\0\17o\bì´\ 1\0#q hTjE1Dh6-\0\0\0\17o\bô´\ 1\0#q fjPlrh4F-\0\0\0\17o\bü´\ 1\0#q 1mHx9l6o-\0\0\0\17o\b\ 4µ\ 1\0#q KaKdL9MC-\0\0\0\17o\b\fµ\ 1\0#q Czogscg9-\0\0\0\17o\b\14µ\ 1\0#q WEHR1P1l-\0\0\0\17o\b\1cµ\ 1\0#q XLtPyv2a-\0\0\0\17o\b\ 1\0#q v6+Uc38L-\0\0\0\17o\b\ 1\0#q 73W4ynzS-\0\0\0\17o\b\ 1\0#q HQzT7n4a-\0\0\0\17o\b\ 1\0#q 9fw9G0pH-\0\0\0\17o\b\ 1\0#q vHQQT3Ww-\0\0\0\17o\b\ 1\0#q CpsYtnkc-\0\0\0\17o\b\ 1\0#q GJdhEoMq-\0\0\0\17o\b\ 1\0#q dwTQQQWf-\0\0\0\17o\b\ 1\0#q 8H7l+Sm0-\0\0\0\17o\b\ 1\0#q erEmuPTq-\0\0\0\17o\b\ 1\0#q AC3f/RC5-\0\0\0\17o\b\ 1\0#q LqgrQdfy-\0\0\0\17o\b\84µ\ 1\0#q PN+J3eTy-\0\0\0\17o\b\8cµ\ 1\0#q V4GlQVzd-\0\0\0\17o\b\94µ\ 1\0#q O0KeqEAr-\0\0\0\17o\b\9cµ\ 1\0#q m/KUORmg-\0\0\0\17o\b¤µ\ 1\0#q ILgIYcAU-\0\0\0\17o\b¬µ\ 1\0#q kDE9Wupt-\0\0\0\17o\b´µ\ 1\0#q iUObqmYf-\0\0\0\17o\b¼µ\ 1\0#q nmExHY8c-\0\0\0\17o\bĵ\ 1\0#q NvsWx4o2-\0\0\0\17o\b̵\ 1\0#q QtFrwFyb-\0\0\0\17o\bÔµ\ 1\0#q GSaII/Yz-\0\0\0\17o\bܵ\ 1\0#q Ou4hsM00-\0\0\0\17o\bäµ\ 1\0#q VwmYOAJQ-\0\0\0\17o\bìµ\ 1\0#q 3KQY+rag-\0\0\0\17o\bôµ\ 1\0#q 56UiZKVH-\0\0\0\17o\büµ\ 1\0#q IpnxryUn-\0\0\0\17o\b\ 4\ 1\0#q 41uF8d2K-\0\0\0\17o\b\f\ 1\0#q fszLbyzA-\0\0\0\17o\b\14\ 1\0#q kMTuQc1B-\0\0\0\17o\b\1c\ 1\0#q JQQHPuhB-\0\0\0\17o\b\ 1\0#q Bej0s+yi-\0\0\0\17o\b\ 1\0#q FTpnRcrV-\0\0\0\17o\b\ 1\0#q Gp26/SPo-\0\0\0\17o\b\ 1\0#q GgGLAjmB-\0\0\0\17o\b\ 1\0#q AhpnAPYi-\0\0\0\17o\b\ 1\0#q hGHgg8hN-\0\0\0\17o\b\ 1\0#q +hAh0NOb-\0\0\0\17o\b\ 1\0#q gHp2R/M6-\0\0\0\17o\b\ 1\0#q Jo+S9Uw8-\0\0\0\17o\b\ 1\0#q 0pUFedRU-\0\0\0\17o\b\ 1\0#q 1bYFRVog-\0\0\0\17o\b\ 1\0#q 6sTPEHAD-\0\0\0\17o\b\84\ 1\0#q wMAG0oUe-\0\0\0\17o\b\8c\ 1\0#q ZTzCfk4p-\0\0\0\17o\b\94\ 1\0#q md1M7BJI-\0\0\0\17o\b\9c\ 1\0#q MNGsaaug-\0\0\0\17o\b¤¶\ 1\0#q Bm+bdBpL-\0\0\0\17o\b¬¶\ 1\0#q DSNwIBiB-\0\0\0\17o\b´¶\ 1\0#q VKx5dQgr-\0\0\0\17o\b¼¶\ 1\0#q e1pCrhP2-\0\0\0\17o\bĶ\ 1\0#q FD5vX9bb-\0\0\0\17o\b̶\ 1\0#q a28/PP14-\0\0\0\17o\bÔ¶\ 1\0#q 155vN5a8-\0\0\0\17o\bܶ\ 1\0#q GIiRRgLC-\0\0\0\17o\bä¶\ 1\0#q SaKIJMBu-\0\0\0\17o\bì¶\ 1\0#q 9u1u/IdZ-\0\0\0\17o\bô¶\ 1\0#q NWhKp6tc-\0\0\0\17o\bü¶\ 1\0#q oZGbueNN-\0\0\0\17o\b\ 4·\ 1\0#q IlSQLYOV-\0\0\0\17o\b\f·\ 1\0#q guF/I1QE-\0\0\0\17o\b\14·\ 1\0#q Fvm6liJu-\0\0\0\17o\b\1c·\ 1\0#q Q/g648tj-\0\0\0\17o\b\ 1\0#q VjId/WMg-\0\0\0\17o\b\ 1\0#q 6iEQnkcu-\0\0\0\17o\b\ 1\0#q hltYdGxo-\0\0\0\17o\b\ 1\0#q ELryIDyS-\0\0\0\17o\b\ 1\0#q IMiK9wD4-\0\0\0\17o\b\ 1\0#q MbBiPihi-\0\0\0\17o\b\ 1\0#q gLkeo0Oh-\0\0\0\17o\b\ 1\0#q ARBcol9j-\0\0\0\17o\b\ 1\0#q MSNhf2IT-\0\0\0\17o\b\ 1\0#q sgILYNse-\0\0\0\17o\b\ 1\0#q ps5hodZn-\0\0\0\17o\b\ 1\0#q nUYfDxJF-\0\0\0\17o\b\84·\ 1\0#q i4UQzXNx-\0\0\0\17o\b\8c·\ 1\0#q EsQsWIsP-\0\0\0\17o\b\94·\ 1\0#q Uhf4XvqF-\0\0\0\17o\b\9c·\ 1\0#q HwQ+WPfT-\0\0\0\17o\b¤·\ 1\0#q BIHct1LI-\0\0\0\17o\b¬·\ 1\0#q ZYv2+juq-\0\0\0\17o\b´·\ 1\0#q ALF8D9dh-\0\0\0\17o\b¼·\ 1\0#q xOkM18bd-\0\0\0\17o\bÄ·\ 1\0#q DBT3QEFx-\0\0\0\17o\bÌ·\ 1\0#q IIWRNxv+-\0\0\0\17o\bÔ·\ 1\0#q UV8R+J/0-\0\0\0\17o\bÜ·\ 1\0#q R2XJbrEI-\0\0\0\17o\bä·\ 1\0#q OYHU+pkg-\0\0\0\17o\bì·\ 1\0#q RzsDEdIZ-\0\0\0\17o\bô·\ 1\0#q EebTO4gQ-\0\0\0\17o\bü·\ 1\0#q JeqofJbd-\0\0\0\17o\b\ 4¸\ 1\0#q kqra4esL-\0\0\0\17o\b\f¸\ 1\0#q roGjHL6G-\0\0\0\17o\b\14¸\ 1\0#q sy4rZI+P-\0\0\0\17o\b\1c¸\ 1\0#q ElgZlHIH-\0\0\0\17o\b\ 1\0#q 1++YJmDE-\0\0\0\17o\b\ 1\0#q hF6psaR1-\0\0\0\17o\b\ 1\0#q U3IWVmpF-\0\0\0\17o\b\ 1\0#q 3VwE9oiT-\0\0\0\17o\b\ 1\0#q Mpi8Nzz+-\0\0\0\17o\b\ 1\0#q aHRDUDwW-\0\0\0\17o\b\ 1\0#q +WIdt3zP-\0\0\0\17o\b\ 1\0#q NOewJzPC-\0\0\0\17o\b\ 1\0#q B9E6jmCY-\0\0\0\17o\b\ 1\0#q HFX8LoIT-\0\0\0\17o\b\ 1\0#q udMz7/N1-\0\0\0\17o\b\ 1\0#q SyV8kTcL-\0\0\0\17o\b\84¸\ 1\0#q 0XLh4A7N-\0\0\0\17o\b\8c¸\ 1\0#q JzfBgyjF-\0\0\0\17o\b\94¸\ 1\0#q kYbKgC8x-\0\0\0\17o\b\9c¸\ 1\0#q PTQ2NEVH-\0\0\0\17o\b¤¸\ 1\0#q r3NX3I8o-\0\0\0\17o\b¬¸\ 1\0#q B8QLJn4J-\0\0\0\17o\b´¸\ 1\0#q CrIRrrR5-\0\0\0\17o\b¼¸\ 1\0#q SSiELOBC-\0\0\0\17o\bĸ\ 1\0#q qIlECSOq-\0\0\0\17o\b̸\ 1\0#q AgtNF/5U-\0\0\0\17o\bÔ¸\ 1\0#q YIUAbvmg-\0\0\0\17o\bܸ\ 1\0#q BgPL1xIT-\0\0\0\17o\bä¸\ 1\0#q 9UkTRqqr-\0\0\0\17o\bì¸\ 1\0#q X53ixpCN-\0\0\0\17o\bô¸\ 1\0#q GKHEwP1P-\0\0\0\17o\bü¸\ 1\0#q wJh+ma3p-\0\0\0\17o\b\ 4¹\ 1\0#q trBwODbq-\0\0\0\17o\b\f¹\ 1\0#q SORcDEiR-\0\0\0\17o\b\14¹\ 1\0#q 6PVwOxok-\0\0\0\17o\b\1c¹\ 1\0#q OUEsjBbk-\0\0\0\17o\b\ 1\0#q zcaucQzU-\0\0\0\17o\b\ 1\0#q 4IBkiIQD-\0\0\0\17o\b\ 1\0#q SXJdCotj-\0\0\0\17o\b\ 1\0#q bIzzDs8l-\0\0\0\17o\b\ 1\0#q fNscXA3I-\0\0\0\17o\b\ 1\0#q EjvBoCBm-\0\0\0\17o\b\ 1\0#q X1Xq+IE6-\0\0\0\17o\b\ 1\0#q m5+HREB7-\0\0\0\17o\b\ 1\0#q xUkefMhR-\0\0\0\17o\b\ 1\0#q TIUUVEoG-\0\0\0\17o\b\ 1\0#q UY2sxAvj-\0\0\0\17o\b\ 1\0#q sdB3GZnY-\0\0\0\17o\b\84¹\ 1\0#q oMTuuOZk-\0\0\0\17o\b\8c¹\ 1\0#q 0IILqZh+-\0\0\0\17o\b\94¹\ 1\0#q sKgLQ1UL-\0\0\0\17o\b\9c¹\ 1\0#q BUF4SYf1-\0\0\0\17o\b¤¹\ 1\0#q u+nDkki7-\0\0\0\17o\b¬¹\ 1\0#q SjNoBQWI-\0\0\0\17o\b´¹\ 1\0#q Gv3PuY3T-\0\0\0\17o\b¼¹\ 1\0#q IDM1QtuJ-\0\0\0\17o\bĹ\ 1\0#q 3SNep/DE-\0\0\0\17o\b̹\ 1\0#q 5GEdQMHh-\0\0\0\17o\bÔ¹\ 1\0#q YWdISJCE-\0\0\0\17o\bܹ\ 1\0#q h+RRD7S+-\0\0\0\17o\bä¹\ 1\0#q bd8OK+sb-\0\0\0\17o\bì¹\ 1\0#q ha0qU3NE-\0\0\0\17o\bô¹\ 1\0#q S7e5JJCE-\0\0\0\17o\bü¹\ 1\0#q sxa4lA5u-\0\0\0\17o\b\ 4º\ 1\0#q cJdrboo7-\0\0\0\17o\b\fº\ 1\0#q v42uXj7X-\0\0\0\17o\b\14º\ 1\0#q KXZXimpp-\0\0\0\17o\b\1cº\ 1\0#q WTWQJDU2-\0\0\0\17o\b\ 1\0#q Uks0imZS-\0\0\0\17o\b\ 1\0#q WU2bLZWU-\0\0\0\17o\b\ 1\0#q pEzCgmWQ-\0\0\0\17o\b\ 1\0#q zZKmlstN-\0\0\0\17o\b\ 1\0#q a2pqlKaa-\0\0\0\17o\b\ 1\0#q aU0pppMD-\0\0\0\17o\b\ 1\0#q bLLVlqzS-\0\0\0\17o\b\ 1\0#q Sa2lTEtK-\0\0\0\17o\b\ 1\0#q zZJmtWpN-\0\0\0\17o\b\ 1\0#q SkylFpqs-\0\0\0\17o\b\ 1\0#q ptkZrNNS-\0\0\0\17o\b\ 1\0#q zS1S2bNo-\0\0\0\17o\b\84º\ 1\0#q qllIpMmS-\0\0\0\17o\b\8cº\ 1\0#q lmYDKLKz-\0\0\0\17o\b\94º\ 1\0#q Vm1LKVNk-\0\0\0\17o\b\9cº\ 1\0#q glKVKmyy-\0\0\0\17o\b¤º\ 1\0#q 0EstNixZ-\0\0\0\17o\b¬º\ 1\0#q mkjEiWms-\0\0\0\17o\b´º\ 1\0#q 2xGFpVEW-\0\0\0\17o\b¼º\ 1\0#q VNNKkSaW-\0\0\0\17o\bĺ\ 1\0#q UpmMKLNQ-\0\0\0\17o\b̺\ 1\0#q l1leHUD7-\0\0\0\17o\bÔº\ 1\0#q BQQf0nxo-\0\0\0\17o\bܺ\ 1\0#q oh+rfDYd-\0\0\0\17o\bäº\ 1\0#q YFRbCkgU-\0\0\0\17o\bìº\ 1\0#q OlBI6Euk-\0\0\0\17o\bôº\ 1\0#q dLgodLEh-\0\0\0\17o\büº\ 1\0#q 6iosAIZU-\0\0\0\17o\b\ 4»\ 1\0#q DGcFIBnT-\0\0\0\17o\b\f»\ 1\0#q 5PfxeXIy-\0\0\0\17o\b\14»\ 1\0#q bIEK3a2J-\0\0\0\17o\b\1c»\ 1\0#q hwXN4a5X-\0\0\0\17o\b\ 1\0#q ZyCUN1QH-\0\0\0\17o\b\ 1\0#q KuKm53cu-\0\0\0\17o\b\ 1\0#q dZGkYw+C-\0\0\0\17o\b\ 1\0#q UhgAg4ji-\0\0\0\17o\b\ 1\0#q FUxQcoWX-\0\0\0\17o\b\ 1\0#q ZiDnC1kc-\0\0\0\17o\b\ 1\0#q Axisjx4F-\0\0\0\17o\b\ 1\0#q hBuB1RLp-\0\0\0\17o\b\ 1\0#q kW/L1JdQ-\0\0\0\17o\b\ 1\0#q MQyPlqBh-\0\0\0\17o\b\ 1\0#q AGDxWuoW-\0\0\0\17o\b\ 1\0#q KaLLctSB-\0\0\0\17o\b\84»\ 1\0#q SGSu4x/U-\0\0\0\17o\b\8c»\ 1\0#q +UGMFxxC-\0\0\0\17o\b\94»\ 1\0#q H7+CQBDU-\0\0\0\17o\b\9c»\ 1\0#q TBsMAfQX-\0\0\0\17o\b¤»\ 1\0#q 99QooSAc-\0\0\0\17o\b¬»\ 1\0#q CZEiD6vq-\0\0\0\17o\b´»\ 1\0#q NtZoMtph-\0\0\0\17o\b¼»\ 1\0#q kjx94b82-\0\0\0\17o\bÄ»\ 1\0#q mEcdDU6C-\0\0\0\17o\bÌ»\ 1\0#q GIfhpBNH-\0\0\0\17o\bÔ»\ 1\0#q RGdiSEhK-\0\0\0\17o\bÜ»\ 1\0#q Q5wXmRP0-\0\0\0\17o\bä»\ 1\0#q FuHscjHI-\0\0\0\17o\bì»\ 1\0#q QQXE+/JA-\0\0\0\17o\bô»\ 1\0#q 9QIe5u/r-\0\0\0\17o\bü»\ 1\0#q PZ7iGp3R-\0\0\0\17o\b\ 4¼\ 1\0#q jqDlESQZ-\0\0\0\17o\b\f¼\ 1\0#q JCQm/LYf-\0\0\0\17o\b\14¼\ 1\0#q clj52MSy-\0\0\0\17o\b\1c¼\ 1\0#q QjrCotj6-\0\0\0\17o\b\ 1\0#q Nhs9YNtp-\0\0\0\17o\b\ 1\0#q jG0eYiFH-\0\0\0\17o\b\ 1\0#q s4e+RkLZ-\0\0\0\17o\b\ 1\0#q Gv6lQVs2-\0\0\0\17o\b\ 1\0#q 5H8UcydI-\0\0\0\17o\b\ 1\0#q dBwSSJWZ-\0\0\0\17o\b\ 1\0#q 2GkMV5JB-\0\0\0\17o\b\ 1\0#q vs3IEHqR-\0\0\0\17o\b\ 1\0#q vh5VCbio-\0\0\0\17o\b\ 1\0#q sL1RQbNS-\0\0\0\17o\b\ 1\0#q evAFkgod-\0\0\0\17o\b\ 1\0#q QSGXyDwM-\0\0\0\17o\b\84¼\ 1\0#q AKI48pbY-\0\0\0\17o\b\8c¼\ 1\0#q nKYY5o3A-\0\0\0\17o\b\94¼\ 1\0#q kxfgcNu/-\0\0\0\17o\b\9c¼\ 1\0#q 2TS8/z4O-\0\0\0\17o\b¤¼\ 1\0#q pVwpwYLo-\0\0\0\17o\b¬¼\ 1\0#q slFDS0dp-\0\0\0\17o\b´¼\ 1\0#q bVLklyLk-\0\0\0\17o\b¼¼\ 1\0#q tcy0qrt1-\0\0\0\17o\bļ\ 1\0#q rkkVDQKa-\0\0\0\17o\b̼\ 1\0#q U5mIfn7q-\0\0\0\17o\bÔ¼\ 1\0#q bHUwB+pU-\0\0\0\17o\bܼ\ 1\0#q zzDYgdOw-\0\0\0\17o\bä¼\ 1\0#q HNMsQqIe-\0\0\0\17o\bì¼\ 1\0#q AQgWJ7Cd-\0\0\0\17o\bô¼\ 1\0#q QLne/Uch-\0\0\0\17o\bü¼\ 1\0#q /L74Gbnk-\0\0\0\17o\b\ 4½\ 1\0#q IeSHVY7B-\0\0\0\17o\b\f½\ 1\0#q 6HzdzDBZ-\0\0\0\17o\b\14½\ 1\0#q DLh9FDDd-\0\0\0\17o\b\1c½\ 1\0#q 7l51/E5m-\0\0\0\17o\b\ 1\0#q JCBgdFYe-\0\0\0\17o\b\ 1\0#q Au3Yglsz-\0\0\0\17o\b\ 1\0#q cA0yVJwA-\0\0\0\17o\b\ 1\0#q +V7zU+xX-\0\0\0\17o\b\ 1\0#q QdNIJq0w-\0\0\0\17o\b\ 1\0#q kfMItgm3-\0\0\0\17o\b\ 1\0#q gj2uGRgG-\0\0\0\17o\b\ 1\0#q UX4BpO2Z-\0\0\0\17o\b\ 1\0#q VeDftfXE-\0\0\0\17o\b\ 1\0#q 9vP1ve16-\0\0\0\17o\b\ 1\0#q wzwEEF4V-\0\0\0\17o\b\ 1\0#q AF3VrV67-\0\0\0\17o\b\84½\ 1\0#q Ndd89m7O-\0\0\0\17o\b\8c½\ 1\0#q GA6Eokve-\0\0\0\17o\b\94½\ 1\0#q XN9MfaQs-\0\0\0\17o\b\9c½\ 1\0#q Q3ZZKcK5-\0\0\0\17o\b¤½\ 1\0#q 0mcwJlSs-\0\0\0\17o\b¬½\ 1\0#q ZTgk98c5-\0\0\0\17o\b´½\ 1\0#q KYw84IzE-\0\0\0\17o\b¼½\ 1\0#q ZbkvNTsN-\0\0\0\17o\bĽ\ 1\0#q qzPLKyHo-\0\0\0\17o\b̽\ 1\0#q Px0sFlfM-\0\0\0\17o\bÔ½\ 1\0#q O5q7Gy/R-\0\0\0\17o\bܽ\ 1\0#q LjgGa3Ww-\0\0\0\17o\bä½\ 1\0#q aF0oI5J5-\0\0\0\17o\bì½\ 1\0#q CEBrzAuF-\0\0\0\17o\bô½\ 1\0#q dT9Mc82C-\0\0\0\17o\bü½\ 1\0#q dw1XLYdA-\0\0\0\17o\b\ 4¾\ 1\0#q ocXnucxw-\0\0\0\17o\b\f¾\ 1\0#q MDq4Gb5I-\0\0\0\17o\b\14¾\ 1\0#q mDg/Y1aN-\0\0\0\17o\b\1c¾\ 1\0#q UuciSSLG-\0\0\0\17o\b\ 1\0#q s30w7o64-\0\0\0\17o\b\ 1\0#q wiPJkCOJ-\0\0\0\17o\b\ 1\0#q GESEZEDZ-\0\0\0\17o\b\ 1\0#q GBLmOHlr-\0\0\0\17o\b\ 1\0#q wGGQG1zj-\0\0\0\17o\b\ 1\0#q MtuCoxq7-\0\0\0\17o\b\ 1\0#q RpQlgtQ/-\0\0\0\17o\b\ 1\0#q YQ5xHKBJ-\0\0\0\17o\b\ 1\0#q JHiia0FH-\0\0\0\17o\b\ 1\0#q VsRLGQe6-\0\0\0\17o\b\ 1\0#q Aj+2KgIU-\0\0\0\17o\b\ 1\0#q QACACiJE-\0\0\0\17o\b\84¾\ 1\0#q FxCraZaP-\0\0\0\17o\b\8c¾\ 1\0#q BqeGpHqJ-\0\0\0\17o\b\94¾\ 1\0#q 2lIlZ0Ry-\0\0\0\17o\b\9c¾\ 1\0#q myqrLMZV-\0\0\0\17o\b¤¾\ 1\0#q KEz6wYDw-\0\0\0\17o\b¬¾\ 1\0#q NnVwEvXc-\0\0\0\17o\b´¾\ 1\0#q GMYxgkEp-\0\0\0\17o\b¼¾\ 1\0#q wJK03QsQ-\0\0\0\17o\bľ\ 1\0#q 0IAGhJqy-\0\0\0\17o\b̾\ 1\0#q CBkmqpjC-\0\0\0\17o\bÔ¾\ 1\0#q 2e6t4I+Z-\0\0\0\17o\bܾ\ 1\0#q f0JUTC8c-\0\0\0\17o\bä¾\ 1\0#q giBBIMOp-\0\0\0\17o\bì¾\ 1\0#q m5aNIYWC-\0\0\0\17o\bô¾\ 1\0#q qlcG2GZj-\0\0\0\17o\bü¾\ 1\0#q NkLK8i6B-\0\0\0\17o\b\ 4¿\ 1\0#q /LSEtoDR-\0\0\0\17o\b\f¿\ 1\0#q RIJtyOGw-\0\0\0\17o\b\14¿\ 1\0#q PFu5CEb0-\0\0\0\17o\b\1c¿\ 1\0#q Y2d1QVrH-\0\0\0\17o\b$¿\ 1\0#q SAerk2ml-\0\0\0\17o\b,¿\ 1\0#q wOR0esAy-\0\0\0\17o\b4¿\ 1\0#q Q5waYkWy-\0\0\0\17o\b<¿\ 1\0#q RMAgkNlX-\0\0\0\17o\bD¿\ 1\0#q 1WA43hGO-\0\0\0\17o\bL¿\ 1\0#q YdDY3OWX-\0\0\0\17o\bT¿\ 1\0#q JQzDIuXC-\0\0\0\17o\b\¿\ 1\0#q 51atcCh9-\0\0\0\17o\bd¿\ 1\0#q k/jjTxk4-\0\0\0\17o\bl¿\ 1\0#q r31uGHUM-\0\0\0\17o\bt¿\ 1\0#q NV7DyEEF-\0\0\0\17o\b|¿\ 1\0#q u9aoidiN-\0\0\0\17o\b\84¿\ 1\0#q HFzHFW3k-\0\0\0\17o\b\8c¿\ 1\0#q pl23DYUq-\0\0\0\17o\b\94¿\ 1\0#q swRQLrmU-\0\0\0\17o\b\9c¿\ 1\0#q K++C6OIe-\0\0\0\17o\b¤¿\ 1\0#q CEEGO4Ox-\0\0\0\17o\b¬¿\ 1\0#q qcy5rvYf-\0\0\0\17o\b´¿\ 1\0#q EQIEszhU-\0\0\0\17o\b¼¿\ 1\0#q i+UBMa/N-\0\0\0\17o\bÄ¿\ 1\0#q HV+bZCGB-\0\0\0\17o\bÌ¿\ 1\0#q BmDsfjN+-\0\0\0\17o\bÔ¿\ 1\0#q oGAKjwgf-\0\0\0\17o\bÜ¿\ 1\0#q AOjBz3eA-\0\0\0\17o\bä¿\ 1\0#q T0JSBhgZ-\0\0\0\17o\bì¿\ 1\0#q HiXA7Hej-\0\0\0\17o\bô¿\ 1\0#q AOj31UJ0-\0\0\0\17o\bü¿\ 1\0#q cC5soXLO-\0\0\0\17o\b\ 4À\ 1\0#q xcOBUy41-\0\0\0\17o\b\fÀ\ 1\0#q LJM6Q8Jw-\0\0\0\17o\b\14À\ 1\0#q px4F2Kjg-\0\0\0\17o\b\1cÀ\ 1\0#q cPvn3BRa-\0\0\0\17o\b\ 1\0#q XEe2Z4vP-\0\0\0\17o\b\ 1\0#q u2/yeP+a-\0\0\0\17o\b\ 1\0#q H5JvaiC4-\0\0\0\17o\b\ 1\0#q fKQAcndi-\0\0\0\17o\b\ 1\0#q cHNDcD9b-\0\0\0\17o\b\ 1\0#q ShgrZAQX-\0\0\0\17o\b\ 1\0#q SGTpCSlP-\0\0\0\17o\b\ 1\0#q zKD5gwnh-\0\0\0\17o\b\ 1\0#q sz+p8ujo-\0\0\0\17o\b\ 1\0#q ewiFBY3p-\0\0\0\17o\b\ 1\0#q KLSeXXMD-\0\0\0\17o\b\ 1\0#q RxzJq44N-\0\0\0\17o\b\84À\ 1\0#q JzlzG7rV-\0\0\0\17o\b\8cÀ\ 1\0#q oWrj1/nL-\0\0\0\17o\b\94À\ 1\0#q bhdUFc+S-\0\0\0\17o\b\9cÀ\ 1\0#q IUCENGZw-\0\0\0\17o\b¤À\ 1\0#q NenyhKIb-\0\0\0\17o\b¬À\ 1\0#q AqfWTOCR-\0\0\0\17o\b´À\ 1\0#q Y+YUj3gz-\0\0\0\17o\b¼À\ 1\0#q mpUR68Ag-\0\0\0\17o\bÄÀ\ 1\0#q UjUPy+0G-\0\0\0\17o\bÌÀ\ 1\0#q 2hIxUaJC-\0\0\0\17o\bÔÀ\ 1\0#q NpMRpoFY-\0\0\0\17o\bÜÀ\ 1\0#q jY0WIzNm-\0\0\0\17o\bäÀ\ 1\0#q FoMaNFtE-\0\0\0\17o\bìÀ\ 1\0#q YklpFixG-\0\0\0\17o\bôÀ\ 1\0#q tGxg0UUV-\0\0\0\17o\büÀ\ 1\0#q JoKiwYNa-\0\0\0\17o\b\ 4Á\ 1\0#q TRqTKQRU-\0\0\0\17o\b\fÁ\ 1\0#q G1Bo221i-\0\0\0\17o\b\14Á\ 1\0#q 1VFhYBqN-\0\0\0\17o\b\1cÁ\ 1\0#q jRFIKqgp-\0\0\0\17o\b\ 1\0#q JIRS7/L9-\0\0\0\17o\b\ 1\0#q Xk8v315s-\0\0\0\17o\b\ 1\0#q vJO9OR4u-\0\0\0\17o\b\ 1\0#q /ONn5FGP-\0\0\0\17o\b\ 1\0#q E3fMqdtS-\0\0\0\17o\b\ 1\0#q xkZBu7kt-\0\0\0\17o\b\ 1\0#q a5NbuU8M-\0\0\0\17o\b\ 1\0#q xyZMYMgm-\0\0\0\17o\b\ 1\0#q sNmMhnKf-\0\0\0\17o\b\ 1\0#q GmtyIG2L-\0\0\0\17o\b\ 1\0#q zBpqWYIb-\0\0\0\17o\b\ 1\0#q dmCYi0lY-\0\0\0\17o\b\84Á\ 1\0#q LJxwCFFa-\0\0\0\17o\b\8cÁ\ 1\0#q zJE6zEud-\0\0\0\17o\b\94Á\ 1\0#q HD27ZzbO-\0\0\0\17o\b\9cÁ\ 1\0#q eSgpk/Hn-\0\0\0\17o\b¤Á\ 1\0#q kQbT7twq-\0\0\0\17o\b¬Á\ 1\0#q aaJXNvUz-\0\0\0\17o\b´Á\ 1\0#q MuUt1hyh-\0\0\0\17o\b¼Á\ 1\0#q U7ceZcph-\0\0\0\17o\bÄÁ\ 1\0#q 42+VTlXU-\0\0\0\17o\bÌÁ\ 1\0#q cZ9UZZJy-\0\0\0\17o\bÔÁ\ 1\0#q YojLjaeJ-\0\0\0\17o\bÜÁ\ 1\0#q HfJU1UZU-\0\0\0\17o\bäÁ\ 1\0#q EmBfLumu-\0\0\0\17o\bìÁ\ 1\0#q 8yW5skuy-\0\0\0\17o\bôÁ\ 1\0#q E9uh2BmV-\0\0\0\17o\büÁ\ 1\0#q xJZi6Kxa-\0\0\0\17o\b\ 4Â\ 1\0#q XBNwSolw-\0\0\0\17o\b\fÂ\ 1\0#q BqBcQLj3-\0\0\0\17o\b\14Â\ 1\0#q ucNZIYZL-\0\0\0\17o\b\1cÂ\ 1\0#q YtirLu3b-\0\0\0\17o\b\ 1\0#q rW6UYgZg-\0\0\0\17o\b\ 1\0#q ZJiDIGiw-\0\0\0\17o\b\ 1\0#q psgg7g1A-\0\0\0\17o\b\ 1\0#q ITkgM6FH-\0\0\0\17o\b\ 1\0#q ITxDDnGt-\0\0\0\17o\b\ 1\0#q 4SDHzZbL-\0\0\0\17o\b\ 1\0#q 5s8fec5P-\0\0\0\17o\b\ 1\0#q Cq5DOzDR-\0\0\0\17o\b\ 1\0#q dWS+0h5Y-\0\0\0\17o\b\ 1\0#q 2INZak1D-\0\0\0\17o\b\ 1\0#q 29cpVyb2-\0\0\0\17o\b\ 1\0#q aVrV3Wlt-\0\0\0\17o\b\84Â\ 1\0#q 7rQhLa3e-\0\0\0\17o\b\8cÂ\ 1\0#q m3ZwPNcX-\0\0\0\17o\b\94Â\ 1\0#q ywE2Qesk-\0\0\0\17o\b\9cÂ\ 1\0#q 1XN24HvZ-\0\0\0\17o\b¤Â\ 1\0#q 2Xa6nlm8-\0\0\0\17o\b¬Â\ 1\0#q Pf/xdyRT-\0\0\0\17o\b´Â\ 1\0#q hQkO1Nju-\0\0\0\17o\ 4¼Â\ 1\0#q AA==\0\0\0\0-\0\0\0\17o\ 1ÀÂ\ 1\0#q\ 1u6\0M        \0\0\13o
+#q\ 5ÈÂ\ 1\0u-\0M    \0\0\97o\ 4\b\0\0\0!q"\ 5´Â\ 1\0u\84\0q$"".revCompTable\0\84\0q%type.[256]uint8\0-\0o   \0\0\97o\ 1A\0\0\0$q%\ 5T\0\0\0u-\0o   \0\0\97o\ 1a\0\0\0$q%\ 5T\0\0\0u-\0o   \0\0\97o\ 1C\0\0\0$q%\ 5G\0\0\0u-\0o   \0\0\97o\ 1c\0\0\0$q%\ 5G\0\0\0u-\0o   \0\0\97o\ 1G\0\0\0$q%\ 5C\0\0\0u-\0o   \0\0\97o\ 1g\0\0\0$q%\ 5C\0\0\0u-\0o   \0\0\97o\ 1T\0\0\0$q%\ 5A\0\0\0u-\0o   \0\0\97o\ 1t\0\0\0$q%\ 5A\0\0\0u-\0o   \0\0\97o\ 1U\0\0\0$q%\ 5A\0\0\0u-\0o   \0\0\97o\ 1u\0\0\0$q%\ 5A\0\0\0u-\0o   \0\0\97o\ 1M\0\0\0$q%\ 5K\0\0\0u-\0o   \0\0\97o\ 1m\0\0\0$q%\ 5K\0\0\0u-\0o   \0\0\97o\ 1R\0\0\0$q%\ 5Y\0\0\0u-\0o   \0\0\97o\ 1r\0\0\0$q%\ 5Y\0\0\0u-\0o   \0\0\97o\ 1W\0\0\0$q%\ 5W\0\0\0u-\0o   \0\0\97o\ 1w\0\0\0$q%\ 5W\0\0\0u-\0o   \0\0\97o\ 1S\0\0\0$q%\ 5S\0\0\0u-\0o   \0\0\97o\ 1s\0\0\0$q%\ 5S\0\0\0u-\0o   \0\0\97o\ 1Y\0\0\0$q%\ 5R\0\0\0u-\0o   \0\0\97o\ 1y\0\0\0$q%\ 5R\0\0\0u-\0o   \0\0\97o\ 1K\0\0\0$q%\ 5M\0\0\0u-\0o   \0\0\97o\ 1k\0\0\0$q%\ 5M\0\0\0u-\0o   \0\0\97o\ 1V\0\0\0$q%\ 5B\0\0\0u-\0o   \0\0\97o\ 1v\0\0\0$q%\ 5B\0\0\0u-\0o   \0\0\97o\ 1H\0\0\0$q%\ 5D\0\0\0u-\0o   \0\0\97o\ 1h\0\0\0$q%\ 5D\0\0\0u-\0o   \0\0\97o\ 1D\0\0\0$q%\ 5H\0\0\0u-\0o   \0\0\97o\ 1d\0\0\0$q%\ 5H\0\0\0u-\0o   \0\0\97o\ 1B\0\0\0$q%\ 5V\0\0\0u-\0o   \0\0\97o\ 1b\0\0\0$q%\ 5V\0\0\0u-\0o   \0\0\97o\ 1N\0\0\0$q%\ 5N\0\0\0u-\0o   \0\0\97o\ 1n\0\0\0$q%\ 5N\0\0\0u\84\0q&go.string."main"\0-\0Ö      \0\0\13o\b&q\17q\0\f\0\0\0&x-\0Ö     \0\0\17o\ 4\b\0\0\0&q\ 5\ 4\0\0\0u-\0Ö    \0\0\17o\ 4\f\0\0\0&q main\0\0\0\0-\0Ö \0\0\17o\ 1\10\0\0\0&q\ 1u6\0Ö        \0\0\13o
+&q\ 5\18\0\0\0u\84\0q'""..gostring.2\0-\0Ö \0\0\13o\b'q\17q\0\f\0\0\0'x-\0Ö     \0\0\17o\ 4\b\0\0\0'q\ 5O\ 1\0\0u-\0Ö    \0\0\17o\b\f\0\0\0'q 
+{
+       "tre-\0Ö \0\0\17o\b\14\0\0\0'q e":{{tem-\0Ö \0\0\17o\b\1c\0\0\0'q plate "n-\0Ö \0\0\17o\b$\0\0\0'q ode" .Tr-\0Ö \0\0\17o\b,\0\0\0'q ee}},
+       "-\0Ö    \0\0\17o\b4\0\0\0'q username-\0Ö \0\0\17o\b<\0\0\0'q ":"{{.Us-\0Ö \0\0\17o\bD\0\0\0'q ername}}-\0Ö \0\0\17o\bL\0\0\0'q "
+}
+{{de-\0Ö        \0\0\17o\bT\0\0\0'q fine "no-\0Ö \0\0\17o\b\\0\0\0'q de"}}
+{
+-\0Ö    \0\0\17o\bd\0\0\0'q     "name":-\0Ö      \0\0\17o\bl\0\0\0'q "{{.Name-\0Ö \0\0\17o\bt\0\0\0'q }}",
+       "k-\0Ö   \0\0\17o\b|\0\0\0'q ids":[
+       -\0Ö     \0\0\17o\b\84\0\0\0'q {{range -\0Ö \0\0\17o\b\8c\0\0\0'q $i, $k :-\0Ö \0\0\17o\b\94\0\0\0'q = .Kids}-\0Ö \0\0\17o\b\9c\0\0\0'q }
+               {{if-\0Ö \0\0\17o\b¤\0\0\0'q  $i}}
+               -\0Ö     \0\0\17o\b¬\0\0\0'q     ,
+               {{e-\0Ö  \0\0\17o\b´\0\0\0'q nd}}
+               {-\0Ö    \0\0\17o\b¼\0\0\0'q {templat-\0Ö \0\0\17o\bÄ\0\0\0'q e "node"-\0Ö \0\0\17o\bÌ\0\0\0'q  $k}}
+       {-\0Ö    \0\0\17o\bÔ\0\0\0'q {end}}
+       -\0Ö     \0\0\17o\bÜ\0\0\0'q ],
+       "cl_-\0Ö \0\0\17o\bä\0\0\0'q weight":-\0Ö \0\0\17o\bì\0\0\0'q {{.CLWei-\0Ö \0\0\17o\bô\0\0\0'q ght}},
+       -\0Ö     \0\0\17o\bü\0\0\0'q "touches-\0Ö \0\0\17o\b\ 4\ 1\0\0'q ":{{.Tou-\0Ö \0\0\17o\b\f\ 1\0\0'q ches}},
+-\0Ö    \0\0\17o\b\14\ 1\0\0'q     "min_t"-\0Ö      \0\0\17o\b\1c\ 1\0\0'q :{{.MinT-\0Ö \0\0\17o\b$\ 1\0\0'q }},
+       "ma-\0Ö  \0\0\17o\b,\ 1\0\0'q x_t":{{.-\0Ö \0\0\17o\b4\ 1\0\0'q MaxT}},
+-\0Ö    \0\0\17o\b<\ 1\0\0'q     "mean_t-\0Ö      \0\0\17o\bD\ 1\0\0'q ":{{.Mea-\0Ö \0\0\17o\bL\ 1\0\0'q nT}}
+}
+{-\0Ö   \0\0\17o\aT\ 1\0\0'q {end}}
+\0-\0Ö   \0\0\17o\ 1[\ 1\0\0'q\ 1u6\0Ö        \0\0\13o
+'q\ 5`\ 1\0\0u\84\0q("".fasta25m\0\84\0q)type.[]uint8\06\0 \0\0\0\91(q)\a\0\0\10\0\0\0u6\0ÿ\0\0\0\91\1f\a\0\0\ 4\0\0\0u\84\0q*"".gobbytes\06\0O\ 1\0\0\91*q)\a\0\0\10\0\0\0u\84\0q+"".gobdata\06\0P\ 1\0\0\91+q\a\a\0\0\b\0\0\0u\84\0q,"".jsongunz\06\0¬\ 1\0\0\91,q)\a\0\0\10\0\0\0u\84\0q-"".jsongz\06\0­\ 1\0\0\91-q)\a\0\0\10\0\0\0u\84\0q."".jsonbytes\06\0ó\ 1\0\0\91.q)\a\0\0\10\0\0\0u\84\0q/"".jsondata\0\84\0q0type."".JSONResponse\06\0ô\ 1\0\0\91/q0\a\0\0\18\0\0\0u6\0M    \0\0\91!q"\a\0\0\10\0\0\0u6\0o       \0\0\91$q%\a\0\0\0\ 1\0\0u\84\0q1"".tmpl\0\84\0q\ 1type.*text/template.Template\06\0Ö  \0\0\911q\ 1\a\0\0\b\0\0\0u6\0µ\0\0\0\13o\b\13q\a\0\0à\ 1\0\0u6\0¼\0\0\0\13o\b\14q\a\0\0\80\0\0\0u6\0Å\0\0\0\13o\b\15q\a\0\0\1f\ 1\0\0u\84\0q\ 2"".initdone·\0\84\0q\ 3type.uint8\06\0î     \0\0\91\ 2q\ 3\a\0\0\ 1\0\0\0u\84\0q\ 4type.*"".binaryNode\0\84\0q\ 5type.*runtime.PtrType\0-\0î     \0\0\13o\b\ 4q\13q\0\ 5x-\0î \0\0\17o\b\b\0\0\0\ 4q\17q\0\10\0\0\0\ 4x-\0î \0\0\17o\b\10\0\0\0\ 4q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\ 4qE^ô\9dø\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0\ 4q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\ 4q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\ 4q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\ 4q\ 5\16\0\0\0u\84\0q\ 6runtime.algarray\0-\0î       \0\0\17o\b \0\0\0\ 4q\17q\0\80\0\0\0\ 6x\84\0q\ago.string."*go1.binaryNode"\0-\0î \0\0\17o\b(\0\0\0\ 4q\13q\0\ax-\0î     \0\0\13o\b\aq\17q\0\f\0\0\0\ax-\0î     \0\0\17o\ 4\b\0\0\0\aq\ 5\ f\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\aq *go1.bin-\0î \0\0\17o\a\14\0\0\0\aq aryNode\0-\0î \0\0\17o\ 1\e\0\0\0\aq\ 1u6\0î        \0\0\13o
+\aq\ 5 \0\0\0u\84\0q\bweak.type.**"".binaryNode\0-\0î      \0\0\17o\b8\0\0\0\ 4q\13q\0\bx\84\0q     type."".binaryNode\0-\0î  \0\0\17o\b@\0\0\0\ 4q\13q\0  x-\0î    \0\0\17o\b0\0\0\0\ 4q\17q\0H\0\0\0\ 4x\84\0q
+type.func(*"".binaryNode) int\0\84\0q\vtype.*runtime.FuncType\0-\0î   \0\0\13o\b
+q\13q\0\vx-\0î      \0\0\17o\b\b\0\0\0
+q\17q\0\10\0\0\0
+x-\0î   \0\0\17o\b\10\0\0\0
+q\ 5\b\0\0\0u-\0î     \0\0\17o\ 4\18\0\0\0
+q\ 5îÆµ4u-\0î     \0\0\17o\ 1\1c\0\0\0
+q\ 1u-\0î \0\0\17o\ 1\1d\0\0\0
+q\ 5\b\0\0\0u-\0î     \0\0\17o\ 1\1e\0\0\0
+q\ 5\b\0\0\0u-\0î     \0\0\17o\ 1\1f\0\0\0
+q\ 5\13\0\0\0u-\0î     \0\0\17o\b \0\0\0
+q\17q\0À\0\0\0\ 6x\84\0q\fgo.string."func(*go1.binaryNode) int"\0-\0î        \0\0\17o\b(\0\0\0
+q\13q\0\fx-\0î      \0\0\13o\b\fq\17q\0\f\0\0\0\fx-\0î     \0\0\17o\ 4\b\0\0\0\fq\ 5\19\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\fq func(*go-\0î \0\0\17o\b\14\0\0\0\fq 1.binary-\0î \0\0\17o\b\1c\0\0\0\fq Node) in-\0î \0\0\17o\ 1$\0\0\0\fq t\0\0\0\0\0\0\0-\0î \0\0\17o\ 1%\0\0\0\fq\ 1u6\0î        \0\0\13o
+\fq\ 5(\0\0\0u\84\0q\rweak.type.*func(*"".binaryNode) int\0-\0î    \0\0\17o\b8\0\0\0
+q\13q\0\rx-\0î      \0\0\17o\ 1@\0\0\0
+q\ 1u-\0î \0\0\17o\bH\0\0\0
+q\17q\0h\0\0\0
+x-\0î   \0\0\17o\ 4P\0\0\0
+q\ 5\ 1\0\0\0u-\0î     \0\0\17o\ 4T\0\0\0
+q\ 5\ 1\0\0\0u-\0î     \0\0\17o\bX\0\0\0
+q\17q\0p\0\0\0
+x-\0î   \0\0\17o\ 4`\0\0\0
+q\ 5\ 1\0\0\0u-\0î     \0\0\17o\ 4d\0\0\0
+q\ 5\ 1\0\0\0u-\0î     \0\0\17o\bh\0\0\0
+q\13q\0\ 4x\84\0q\ etype.int\0-\0î \0\0\17o\bp\0\0\0
+q\13q\0\ ex6\0î      \0\0\13o
+
+q\ 5x\0\0\0u-\0î     \0\0\17o\bH\0\0\0\ 4q\ 1u-\0î        \0\0\17o\bP\0\0\0\ 4q\ 1u-\0î        \0\0\17o\bX\0\0\0\ 4q\17q\0h\0\0\0\ 4x-\0î \0\0\17o\ 4`\0\0\0\ 4q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4d\0\0\0\ 4q\ 5\ 1\0\0\0u\84\0q\ fgo.string."itemCheck"\0-\0î  \0\0\17o\bh\0\0\0\ 4q\13q\0\ fx-\0î     \0\0\13o\b\ fq\17q\0\f\0\0\0\ fx-\0î     \0\0\17o\ 4\b\0\0\0\ fq\ 5    \0\0\0u-\0î \0\0\17o\b\f\0\0\0\ fq itemChec-\0î \0\0\17o\ 1\14\0\0\0\ fq k\0\0\0\0\0\0\0-\0î \0\0\17o\ 1\15\0\0\0\ fq\ 1u6\0î        \0\0\13o
+\ fq\ 5\18\0\0\0u\84\0q\10go.importpath."".\0-\0î      \0\0\17o\bp\0\0\0\ 4q\13q\0\10x\84\0q\11type.func() int\0-\0î \0\0\13o\b\11q\13q\0\vx-\0î \0\0\17o\b\b\0\0\0\11q\17q\0\10\0\0\0\11x-\0î \0\0\17o\b\10\0\0\0\11q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\11qEå\86\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0\11q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\11q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\11q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\11q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0\11q\17q\0À\0\0\0\ 6x\84\0q\12go.string."func() int"\0-\0î      \0\0\17o\b(\0\0\0\11q\13q\0\12x-\0î     \0\0\13o\b\12q\17q\0\f\0\0\0\12x-\0î     \0\0\17o\ 4\b\0\0\0\12q\ 5
+\0\0\0u-\0î        \0\0\17o\b\f\0\0\0\12q func() i-\0î \0\0\17o\ 2\14\0\0\0\12q nt\0\0\0\0\0\0-\0î \0\0\17o\ 1\16\0\0\0\12q\ 1u6\0î        \0\0\13o
+\12q\ 5\18\0\0\0u\84\0q\13weak.type.*func() int\0-\0î  \0\0\17o\b8\0\0\0\11q\13q\0\13x-\0î     \0\0\17o\ 1@\0\0\0\11q\ 1u-\0î        \0\0\17o\bH\0\0\0\11q\17q\0h\0\0\0\11x-\0î \0\0\17o\ 4P\0\0\0\11q\ 1u-\0î        \0\0\17o\ 4T\0\0\0\11q\ 1u-\0î        \0\0\17o\bX\0\0\0\11q\17q\0h\0\0\0\11x-\0î \0\0\17o\ 4`\0\0\0\11q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4d\0\0\0\11q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bh\0\0\0\11q\13q\0\ ex6\0î     \0\0\13o
+\11q\ 5p\0\0\0u-\0î    \0\0\17o\bx\0\0\0\ 4q\13q\0\11x-\0î     \0\0\17o\b\80\0\0\0\ 4q\13q\0
+x\84\0q\14"".(*binaryNode).itemCheck\0-\0î    \0\0\17o\b\88\0\0\0\ 4q\13q\0\14x-\0î     \0\0\17o\b\90\0\0\0\ 4q\13q\0\14x6\0î     \0\0\13o\b\ 4q\ 5\98\0\0\0u\84\0q\15type.*runtime.StructType\0-\0î   \0\0\13o\b   q\13q\0\15x-\0î       \0\0\17o\b\b\0\0\0       q\17q\0\10\0\0\0        x-\0î    \0\0\17o\b\10\0\0\0       q\ 5\18\0\0\0u-\0î      \0\0\17o\ 4\18\0\0\0       q\ 5øX·!u-\0î      \0\0\17o\ 1\1c\0\0\0       q\ 1u-\0î  \0\0\17o\ 1\1d\0\0\0       q\ 5\b\0\0\0u-\0î      \0\0\17o\ 1\1e\0\0\0       q\ 5\b\0\0\0u-\0î      \0\0\17o\ 1\1f\0\0\0       q\ 5\19\0\0\0u-\0î      \0\0\17o\b \0\0\0       q\13q\0\ 6x\84\0q\16go.string."go1.binaryNode"\0-\0î        \0\0\17o\b(\0\0\0       q\13q\0\16x-\0î       \0\0\13o\b\16q\17q\0\f\0\0\0\16x-\0î     \0\0\17o\ 4\b\0\0\0\16q\ 5\ e\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\16q go1.bina-\0î \0\0\17o\ 6\14\0\0\0\16q ryNode\0\0-\0î \0\0\17o\ 1\1a\0\0\0\16q\ 1u6\0î        \0\0\13o
+\16q\ 5 \0\0\0u-\0î    \0\0\17o\b8\0\0\0       q\13q\0\ 4x-\0î       \0\0\17o\b@\0\0\0       q\17q\0P\0\0\0        x-\0î    \0\0\17o\ 4H\0\0\0       q\ 5\ 3\0\0\0u-\0î      \0\0\17o\ 4L\0\0\0       q\ 5\ 3\0\0\0u\84\0q\17go.string."item"\0-\0î \0\0\17o\bP\0\0\0       q\13q\0\17x-\0î       \0\0\13o\b\17q\17q\0\f\0\0\0\17x-\0î     \0\0\17o\ 4\b\0\0\0\17q\ 5\ 4\0\0\0u-\0î    \0\0\17o\ 4\f\0\0\0\17q item\0\0\0\0-\0î \0\0\17o\ 1\10\0\0\0\17q\ 1u6\0î        \0\0\13o
+\17q\ 5\18\0\0\0u-\0î    \0\0\17o\bX\0\0\0       q\13q\0\10x-\0î       \0\0\17o\b`\0\0\0       q\13q\0\ ex-\0î       \0\0\17o\bh\0\0\0       q\ 1u-\0î  \0\0\17o\bp\0\0\0       q\ 1u\84\0q\18go.string."left"\0-\0î     \0\0\17o\bx\0\0\0       q\13q\0\18x-\0î       \0\0\13o\b\18q\17q\0\f\0\0\0\18x-\0î     \0\0\17o\ 4\b\0\0\0\18q\ 5\ 4\0\0\0u-\0î    \0\0\17o\ 4\f\0\0\0\18q left\0\0\0\0-\0î \0\0\17o\ 1\10\0\0\0\18q\ 1u6\0î        \0\0\13o
+\18q\ 5\18\0\0\0u-\0î    \0\0\17o\b\80\0\0\0       q\13q\0\10x-\0î       \0\0\17o\b\88\0\0\0       q\13q\0\ 4x-\0î       \0\0\17o\b\90\0\0\0       q\ 1u-\0î  \0\0\17o\b\98\0\0\0       q\ 5\b\0\0\0u\84\0q\19go.string."right"\0-\0î        \0\0\17o\b \0\0\0       q\13q\0\19x-\0î       \0\0\13o\b\19q\17q\0\f\0\0\0\19x-\0î     \0\0\17o\ 4\b\0\0\0\19q\ 5\ 5\0\0\0u-\0î    \0\0\17o\ 5\f\0\0\0\19q right\0\0\0-\0î \0\0\17o\ 1\11\0\0\0\19q\ 1u6\0î        \0\0\13o
+\19q\ 5\18\0\0\0u-\0î    \0\0\17o\b¨\0\0\0       q\13q\0\10x-\0î       \0\0\17o\b°\0\0\0       q\13q\0\ 4x-\0î       \0\0\17o\b¸\0\0\0       q\ 1u-\0î  \0\0\17o\bÀ\0\0\0       q\ 5\10\0\0\0u-\0î      \0\0\17o\b0\0\0\0       q\17q\0È\0\0\0        x\84\0q\1ago.string."binaryNode"\0-\0î \0\0\17o\bÈ\0\0\0       q\13q\0\1ax-\0î       \0\0\13o\b\1aq\17q\0\f\0\0\0\1ax-\0î     \0\0\17o\ 4\b\0\0\0\1aq\ 5
+\0\0\0u-\0î        \0\0\17o\b\f\0\0\0\1aq binaryNo-\0î \0\0\17o\ 2\14\0\0\0\1aq de\0\0\0\0\0\0-\0î \0\0\17o\ 1\16\0\0\0\1aq\ 1u6\0î        \0\0\13o
+\1aq\ 5\18\0\0\0u-\0î    \0\0\17o\bÐ\0\0\0       q\13q\0\10x-\0î       \0\0\17o\bØ\0\0\0       q\17q\0è\0\0\0        x-\0î    \0\0\17o\ 4à\0\0\0       q\ 1u-\0î  \0\0\17o\ 4ä\0\0\0       q\ 1u6\0î  \0\0\13o\b   q\ 5è\0\0\0u\84\0q\etype.func(int, int) *"".binaryNode\0-\0î       \0\0\13o\b\eq\13q\0\vx-\0î \0\0\17o\b\b\0\0\0\eq\17q\0\10\0\0\0\ex-\0î \0\0\17o\b\10\0\0\0\eq\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\eqEb°\1a¤\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0\eq\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\eq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\eq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\eq\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0\eq\17q\0@\ 1\0\0\ 6x\84\0q\1cgo.string."func(int, int) *go1.binaryNode"\0-\0î  \0\0\17o\b(\0\0\0\eq\13q\0\1cx-\0î     \0\0\13o\b\1cq\17q\0\f\0\0\0\1cx-\0î     \0\0\17o\ 4\b\0\0\0\1cq\ 5\1e\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\1cq func(int-\0î \0\0\17o\b\14\0\0\0\1cq , int) *-\0î \0\0\17o\b\1c\0\0\0\1cq go1.bina-\0î \0\0\17o\ 6$\0\0\0\1cq ryNode\0\0-\0î \0\0\17o\ 1*\0\0\0\1cq\ 1u6\0î        \0\0\13o
+\1cq\ 50\0\0\0u\84\0q\1dweak.type.*func(int, int) *"".binaryNode\0-\0î       \0\0\17o\b8\0\0\0\eq\13q\0\1dx-\0î     \0\0\17o\ 1@\0\0\0\eq\ 1u-\0î        \0\0\17o\bH\0\0\0\eq\17q\0h\0\0\0\ex-\0î \0\0\17o\ 4P\0\0\0\eq\ 5\ 2\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0\eq\ 5\ 2\0\0\0u-\0î    \0\0\17o\bX\0\0\0\eq\17q\0x\0\0\0\ex-\0î \0\0\17o\ 4`\0\0\0\eq\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4d\0\0\0\eq\ 5\ 1\0\0\0u-\0î    \0\0\17o\bh\0\0\0\eq\13q\0\ ex-\0î     \0\0\17o\bp\0\0\0\eq\13q\0\ ex-\0î     \0\0\17o\bx\0\0\0\eq\13q\0\ 4x6\0î     \0\0\13o
+\eq\ 5\80\0\0\0u\84\0q\1etype.func(*uint8) *"".binaryNode\0-\0î       \0\0\13o\b\1eq\13q\0\vx-\0î \0\0\17o\b\b\0\0\0\1eq\17q\0\10\0\0\0\1ex-\0î \0\0\17o\b\10\0\0\0\1eq\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\1eqE~á\89\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0\1eq\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\1eq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\1eq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\1eq\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0\1eq\17q\0@\ 1\0\0\ 6x\84\0q\1fgo.string."func(*uint8) *go1.binaryNode"\0-\0î    \0\0\17o\b(\0\0\0\1eq\13q\0\1fx-\0î     \0\0\13o\b\1fq\17q\0\f\0\0\0\1fx-\0î     \0\0\17o\ 4\b\0\0\0\1fq\ 5\1c\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\1fq func(*ui-\0î \0\0\17o\b\14\0\0\0\1fq nt8) *go-\0î \0\0\17o\b\1c\0\0\0\1fq 1.binary-\0î \0\0\17o\ 4$\0\0\0\1fq Node\0\0\0\0-\0î \0\0\17o\ 1(\0\0\0\1fq\ 1u6\0î        \0\0\13o
+\1fq\ 50\0\0\0u\84\0q weak.type.*func(*uint8) *"".binaryNode\0-\0î \0\0\17o\b8\0\0\0\1eq\13q\0 x-\0î     \0\0\17o\ 1@\0\0\0\1eq\ 1u-\0î        \0\0\17o\bH\0\0\0\1eq\17q\0h\0\0\0\1ex-\0î \0\0\17o\ 4P\0\0\0\1eq\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0\1eq\ 5\ 1\0\0\0u-\0î    \0\0\17o\bX\0\0\0\1eq\17q\0p\0\0\0\1ex-\0î \0\0\17o\ 4`\0\0\0\1eq\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4d\0\0\0\1eq\ 5\ 1\0\0\0u\84\0q!type.*uint8\0-\0î    \0\0\17o\bh\0\0\0\1eq\13q\0!x-\0î     \0\0\17o\bp\0\0\0\1eq\13q\0\ 4x6\0î     \0\0\13o
+\1eq\ 5x\0\0\0u\84\0q"type.method(*"".binaryNode) func() int\0-\0î \0\0\13o\b"q\13q\0\vx-\0î \0\0\17o\b\b\0\0\0"q\17q\0\10\0\0\0"x-\0î \0\0\17o\b\10\0\0\0"q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0"qEå\86\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0"q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0"q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0"q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0"q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0"q\17q\0@\ 1\0\0\ 6x\84\0q#go.string."method(*go1.binaryNode) func() int"\0-\0î      \0\0\17o\b(\0\0\0"q\13q\0#x-\0î     \0\0\13o\b#q\17q\0\f\0\0\0#x-\0î     \0\0\17o\ 4\b\0\0\0#q\ 5"\0\0\0u-\0î    \0\0\17o\b\f\0\0\0#q method(*-\0î \0\0\17o\b\14\0\0\0#q go1.bina-\0î \0\0\17o\b\1c\0\0\0#q ryNode) -\0î \0\0\17o\b$\0\0\0#q func() i-\0î \0\0\17o\ 2,\0\0\0#q nt\0\0\0\0\0\0-\0î \0\0\17o\ 1.\0\0\0#q\ 1u6\0î        \0\0\13o
+#q\ 50\0\0\0u\84\0q$weak.type.*method(*"".binaryNode) func() int\0-\0î   \0\0\17o\b8\0\0\0"q\13q\0$x-\0î     \0\0\17o\ 1@\0\0\0"q\ 1u-\0î        \0\0\17o\bH\0\0\0"q\17q\0h\0\0\0"x-\0î \0\0\17o\ 4P\0\0\0"q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0"q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bX\0\0\0"q\17q\0p\0\0\0"x-\0î \0\0\17o\ 4`\0\0\0"q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4d\0\0\0"q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bh\0\0\0"q\13q\0\ 4x-\0î     \0\0\17o\bp\0\0\0"q\13q\0\ ex6\0î     \0\0\13o
+"q\ 5x\0\0\0u\84\0q%type.func(int)\0-\0î \0\0\13o\b%q\13q\0\vx-\0î \0\0\17o\b\b\0\0\0%q\17q\0\10\0\0\0%x-\0î \0\0\17o\b\10\0\0\0%q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0%q\ 5\84æñ\18u-\0î    \0\0\17o\ 1\1c\0\0\0%q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0%q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0%q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0%q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0%q\17q\0@\ 1\0\0\ 6x\84\0q&go.string."func(int)"\0-\0î       \0\0\17o\b(\0\0\0%q\13q\0&x-\0î     \0\0\13o\b&q\17q\0\f\0\0\0&x-\0î     \0\0\17o\ 4\b\0\0\0&q\ 5    \0\0\0u-\0î \0\0\17o\b\f\0\0\0&q func(int-\0î \0\0\17o\ 1\14\0\0\0&q )\0\0\0\0\0\0\0-\0î \0\0\17o\ 1\15\0\0\0&q\ 1u6\0î        \0\0\13o
+&q\ 5\18\0\0\0u\84\0q'weak.type.*func(int)\0-\0î   \0\0\17o\b8\0\0\0%q\13q\0'x-\0î     \0\0\17o\ 1@\0\0\0%q\ 1u-\0î        \0\0\17o\bH\0\0\0%q\17q\0h\0\0\0%x-\0î \0\0\17o\ 4P\0\0\0%q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0%q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bX\0\0\0%q\17q\0p\0\0\0%x-\0î \0\0\17o\ 4`\0\0\0%q\ 1u-\0î        \0\0\17o\ 4d\0\0\0%q\ 1u-\0î        \0\0\17o\bh\0\0\0%q\13q\0\ ex6\0î     \0\0\13o
+%q\ 5p\0\0\0u\84\0q(type.func(*testing.B)\0-\0î  \0\0\13o\b(q\13q\0\vx-\0î \0\0\17o\b\b\0\0\0(q\17q\0\10\0\0\0(x-\0î \0\0\17o\b\10\0\0\0(q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0(qEúr\1eÀ\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0(q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0(q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0(q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0(q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0(q\17q\0@\ 1\0\0\ 6x\84\0q)go.string."func(*testing.B)"\0-\0î        \0\0\17o\b(\0\0\0(q\13q\0)x-\0î     \0\0\13o\b)q\17q\0\f\0\0\0)x-\0î     \0\0\17o\ 4\b\0\0\0)q\ 5\10\0\0\0u-\0î    \0\0\17o\b\f\0\0\0)q func(*te-\0î \0\0\17o\b\14\0\0\0)q sting.B)-\0î \0\0\17o\ 1\1c\0\0\0)q\ 1u6\0î        \0\0\13o
+)q\ 5 \0\0\0u\84\0q*weak.type.*func(*testing.B)\0-\0î    \0\0\17o\b8\0\0\0(q\13q\0*x-\0î     \0\0\17o\ 1@\0\0\0(q\ 1u-\0î        \0\0\17o\bH\0\0\0(q\17q\0h\0\0\0(x-\0î \0\0\17o\ 4P\0\0\0(q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0(q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bX\0\0\0(q\17q\0p\0\0\0(x-\0î \0\0\17o\ 4`\0\0\0(q\ 1u-\0î        \0\0\17o\ 4d\0\0\0(q\ 1u\84\0q+type.*testing.B\0-\0î    \0\0\17o\bh\0\0\0(q\13q\0+x6\0î     \0\0\13o
+(q\ 5p\0\0\0u\84\0q,type.[]int\0\84\0q-type.*runtime.SliceType\0-\0î \0\0\13o\b,q\13q\0-x-\0î \0\0\17o\b\b\0\0\0,q\17q\0\10\0\0\0,x-\0î \0\0\17o\b\10\0\0\0,q\ 5\10\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0,q\ 5\8e\eu-\0î    \0\0\17o\ 1\1c\0\0\0,q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0,q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0,q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0,q\ 5\17\0\0\0u-\0î    \0\0\17o\b \0\0\0,q\17q\0à\ 1\0\0\ 6x\84\0q.go.string."[]int"\0-\0î   \0\0\17o\b(\0\0\0,q\13q\0.x-\0î     \0\0\13o\b.q\17q\0\f\0\0\0.x-\0î     \0\0\17o\ 4\b\0\0\0.q\ 5\ 5\0\0\0u-\0î    \0\0\17o\ 5\f\0\0\0.q []int\0\0\0-\0î \0\0\17o\ 1\11\0\0\0.q\ 1u6\0î        \0\0\13o
+.q\ 5\18\0\0\0u\84\0q/weak.type.*[]int\0-\0î       \0\0\17o\b8\0\0\0,q\13q\0/x-\0î     \0\0\17o\b@\0\0\0,q\13q\0\ ex6\0î     \0\0\13o
+,q\ 5H\0\0\0u\84\0q0type.func(int) int\0-\0î     \0\0\13o\b0q\13q\0\vx-\0î \0\0\17o\b\b\0\0\00q\17q\0\10\0\0\00x-\0î \0\0\17o\b\10\0\0\00q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\00qE\98<2\87\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\00q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\00q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\00q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\00q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\00q\17q\0@\ 1\0\0\ 6x\84\0q1go.string."func(int) int"\0-\0î   \0\0\17o\b(\0\0\00q\13q\01x-\0î     \0\0\13o\b1q\17q\0\f\0\0\01x-\0î     \0\0\17o\ 4\b\0\0\01q\ 5\r\0\0\0u-\0î    \0\0\17o\b\f\0\0\01q func(int-\0î \0\0\17o\ 5\14\0\0\01q ) int\0\0\0-\0î \0\0\17o\ 1\19\0\0\01q\ 1u6\0î        \0\0\13o
+1q\ 5 \0\0\0u\84\0q\ 1weak.type.*func(int) int\0-\0î       \0\0\17o\b8\0\0\00q\13q\0\ 1x-\0î     \0\0\17o\ 1@\0\0\00q\ 1u-\0î        \0\0\17o\bH\0\0\00q\17q\0h\0\0\00x-\0î \0\0\17o\ 4P\0\0\00q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4T\0\0\00q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bX\0\0\00q\17q\0p\0\0\00x-\0î \0\0\17o\ 4`\0\0\00q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4d\0\0\00q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bh\0\0\00q\13q\0\ ex-\0î     \0\0\17o\bp\0\0\00q\13q\0\ ex6\0î     \0\0\13o
+0q\ 5x\0\0\0u\84\0q\ 2type.func(*uint8, int64, int64) []int\0-\0î  \0\0\13o\b\ 2q\13q\0\vx-\0î \0\0\17o\b\b\0\0\0\ 2q\17q\0\10\0\0\0\ 2x-\0î \0\0\17o\b\10\0\0\0\ 2q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\ 2q\ 5 iG\eu-\0î    \0\0\17o\ 1\1c\0\0\0\ 2q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\ 2q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\ 2q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\ 2q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0\ 2q\17q\0@\ 1\0\0\ 6x\84\0q\ 3go.string."func(*uint8, int64, int64) []int"\0-\0î        \0\0\17o\b(\0\0\0\ 2q\13q\0\ 3x-\0î     \0\0\13o\b\ 3q\17q\0\f\0\0\0\ 3x-\0î     \0\0\17o\ 4\b\0\0\0\ 3q\ 5 \0\0\0u-\0î    \0\0\17o\b\f\0\0\0\ 3q func(*ui-\0î \0\0\17o\b\14\0\0\0\ 3q nt8, int-\0î \0\0\17o\b\1c\0\0\0\ 3q 64, int6-\0î \0\0\17o\b$\0\0\0\ 3q 4) []int-\0î \0\0\17o\ 1,\0\0\0\ 3q\ 1u6\0î        \0\0\13o
+\ 3q\ 50\0\0\0u\84\0q\ 4weak.type.*func(*uint8, int64, int64) []int\0-\0î    \0\0\17o\b8\0\0\0\ 2q\13q\0\ 4x-\0î     \0\0\17o\ 1@\0\0\0\ 2q\ 1u-\0î        \0\0\17o\bH\0\0\0\ 2q\17q\0h\0\0\0\ 2x-\0î \0\0\17o\ 4P\0\0\0\ 2q\ 5\ 3\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0\ 2q\ 5\ 3\0\0\0u-\0î    \0\0\17o\bX\0\0\0\ 2q\17q\0\80\0\0\0\ 2x-\0î \0\0\17o\ 4`\0\0\0\ 2q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4d\0\0\0\ 2q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bh\0\0\0\ 2q\13q\0!x\84\0q\ 5type.int64\0-\0î      \0\0\17o\bp\0\0\0\ 2q\13q\0\ 5x-\0î     \0\0\17o\bx\0\0\0\ 2q\13q\0\ 5x-\0î     \0\0\17o\b\80\0\0\0\ 2q\13q\0,x6\0î     \0\0\13o
+\ 2q\ 5\88\0\0\0u\84\0q\ 6type.*"".fastaBuffer\0\84\0q\atype.*runtime.PtrType\0-\0î \0\0\13o\b\ 6q\13q\0\ax-\0î \0\0\17o\b\b\0\0\0\ 6q\17q\0\10\0\0\0\ 6x-\0î \0\0\17o\b\10\0\0\0\ 6q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\ 6qE\ 2#t\88\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0\ 6q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\ 6q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\ 6q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\ 6q\ 5\16\0\0\0u\84\0q\bruntime.algarray\0-\0î       \0\0\17o\b \0\0\0\ 6q\17q\0\80\0\0\0\bx\84\0q go.string."*go1.fastaBuffer"\0-\0î        \0\0\17o\b(\0\0\0\ 6q\13q\0  x-\0î    \0\0\13o\b   q\17q\0\f\0\0\0        x-\0î    \0\0\17o\ 4\b\0\0\0       q\ 5\10\0\0\0u-\0î      \0\0\17o\b\f\0\0\0       q *go1.fas-\0î   \0\0\17o\b\14\0\0\0       q taBuffer-\0î   \0\0\17o\ 1\1c\0\0\0       q\ 1u6\0î  \0\0\13o
+       q\ 5 \0\0\0u\84\0q
+weak.type.**"".fastaBuffer\0-\0î \0\0\17o\b8\0\0\0\ 6q\13q\0
+x\84\0q\vtype."".fastaBuffer\0-\0î   \0\0\17o\b@\0\0\0\ 6q\13q\0\vx-\0î     \0\0\17o\b0\0\0\0\ 6q\17q\0H\0\0\0\ 6x\84\0q\ftype.func(*"".fastaBuffer)\0\84\0q\rtype.*runtime.FuncType\0-\0î       \0\0\13o\b\fq\13q\0\rx-\0î \0\0\17o\b\b\0\0\0\fq\17q\0\10\0\0\0\fx-\0î \0\0\17o\b\10\0\0\0\fq\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\fqEÙ\1e\v©\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0\fq\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\fq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\fq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\fq\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0\fq\17q\0À\0\0\0\bx\84\0q\ ego.string."func(*go1.fastaBuffer)"\0-\0î  \0\0\17o\b(\0\0\0\fq\13q\0\ ex-\0î     \0\0\13o\b\ eq\17q\0\f\0\0\0\ ex-\0î     \0\0\17o\ 4\b\0\0\0\ eq\ 5\16\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\ eq func(*go-\0î \0\0\17o\b\14\0\0\0\ eq 1.fastaB-\0î \0\0\17o\ 6\1c\0\0\0\ eq uffer)\0\0-\0î \0\0\17o\ 1"\0\0\0\ eq\ 1u6\0î        \0\0\13o
+\ eq\ 5(\0\0\0u\84\0q\ fweak.type.*func(*"".fastaBuffer)\0-\0î       \0\0\17o\b8\0\0\0\fq\13q\0\ fx-\0î     \0\0\17o\ 1@\0\0\0\fq\ 1u-\0î        \0\0\17o\bH\0\0\0\fq\17q\0h\0\0\0\fx-\0î \0\0\17o\ 4P\0\0\0\fq\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0\fq\ 5\ 1\0\0\0u-\0î    \0\0\17o\bX\0\0\0\fq\17q\0p\0\0\0\fx-\0î \0\0\17o\ 4`\0\0\0\fq\ 1u-\0î        \0\0\17o\ 4d\0\0\0\fq\ 1u-\0î        \0\0\17o\bh\0\0\0\fq\13q\0\ 6x6\0î     \0\0\13o
+\fq\ 5p\0\0\0u\84\0q\10type.[]uint8\0-\0î   \0\0\13o\b\10q\13q\0-x-\0î \0\0\17o\b\b\0\0\0\10q\17q\0\10\0\0\0\10x-\0î \0\0\17o\b\10\0\0\0\10q\ 5\10\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\10q\ 5ß~.8u-\0î    \0\0\17o\ 1\1c\0\0\0\10q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\10q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\10q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\10q\ 5\17\0\0\0u-\0î    \0\0\17o\b \0\0\0\10q\17q\0à\ 1\0\0\bx\84\0q\11go.string."[]uint8"\0-\0î \0\0\17o\b(\0\0\0\10q\13q\0\11x-\0î     \0\0\13o\b\11q\17q\0\f\0\0\0\11x-\0î     \0\0\17o\ 4\b\0\0\0\11q\ 5\a\0\0\0u-\0î    \0\0\17o\a\f\0\0\0\11q []uint8\0-\0î \0\0\17o\ 1\13\0\0\0\11q\ 1u6\0î        \0\0\13o
+\11q\ 5\18\0\0\0u\84\0q\12weak.type.*[]uint8\0-\0î     \0\0\17o\b8\0\0\0\10q\13q\0\12x\84\0q\13type.uint8\0-\0î      \0\0\17o\b@\0\0\0\10q\13q\0\13x6\0î     \0\0\13o
+\10q\ 5H\0\0\0u\84\0q\14type.func(*"".fastaBuffer, int) []uint8\0-\0î        \0\0\13o\b\14q\13q\0\rx-\0î \0\0\17o\b\b\0\0\0\14q\17q\0\10\0\0\0\14x-\0î \0\0\17o\b\10\0\0\0\14q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\14qE2sÃä\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0\14q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\14q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\14q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\14q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0\14q\17q\0À\0\0\0\bx\84\0q\15go.string."func(*go1.fastaBuffer, int) []uint8"\0-\0î     \0\0\17o\b(\0\0\0\14q\13q\0\15x-\0î     \0\0\13o\b\15q\17q\0\f\0\0\0\15x-\0î     \0\0\17o\ 4\b\0\0\0\15q\ 5#\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\15q func(*go-\0î \0\0\17o\b\14\0\0\0\15q 1.fastaB-\0î \0\0\17o\b\1c\0\0\0\15q uffer, i-\0î \0\0\17o\b$\0\0\0\15q nt) []ui-\0î \0\0\17o\ 3,\0\0\0\15q nt8\0\0\0\0\0-\0î \0\0\17o\ 1/\0\0\0\15q\ 1u6\0î        \0\0\13o
+\15q\ 50\0\0\0u\84\0q\16weak.type.*func(*"".fastaBuffer, int) []uint8\0-\0î  \0\0\17o\b8\0\0\0\14q\13q\0\16x-\0î     \0\0\17o\ 1@\0\0\0\14q\ 1u-\0î        \0\0\17o\bH\0\0\0\14q\17q\0h\0\0\0\14x-\0î \0\0\17o\ 4P\0\0\0\14q\ 5\ 2\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0\14q\ 5\ 2\0\0\0u-\0î    \0\0\17o\bX\0\0\0\14q\17q\0x\0\0\0\14x-\0î \0\0\17o\ 4`\0\0\0\14q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4d\0\0\0\14q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bh\0\0\0\14q\13q\0\ 6x\84\0q\17type.int\0-\0î        \0\0\17o\bp\0\0\0\14q\13q\0\17x-\0î     \0\0\17o\bx\0\0\0\14q\13q\0\10x6\0î     \0\0\13o
+\14q\ 5\80\0\0\0u\84\0q\18type.func(*"".fastaBuffer, string)\0-\0î     \0\0\13o\b\18q\13q\0\rx-\0î \0\0\17o\b\b\0\0\0\18q\17q\0\10\0\0\0\18x-\0î \0\0\17o\b\10\0\0\0\18q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\18qEw౬\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0\18q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\18q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\18q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\18q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0\18q\17q\0À\0\0\0\bx\84\0q\19go.string."func(*go1.fastaBuffer, string)"\0-\0î  \0\0\17o\b(\0\0\0\18q\13q\0\19x-\0î     \0\0\13o\b\19q\17q\0\f\0\0\0\19x-\0î     \0\0\17o\ 4\b\0\0\0\19q\ 5\1e\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\19q func(*go-\0î \0\0\17o\b\14\0\0\0\19q 1.fastaB-\0î \0\0\17o\b\1c\0\0\0\19q uffer, s-\0î \0\0\17o\ 6$\0\0\0\19q tring)\0\0-\0î \0\0\17o\ 1*\0\0\0\19q\ 1u6\0î        \0\0\13o
+\19q\ 50\0\0\0u\84\0q\1aweak.type.*func(*"".fastaBuffer, string)\0-\0î       \0\0\17o\b8\0\0\0\18q\13q\0\1ax-\0î     \0\0\17o\ 1@\0\0\0\18q\ 1u-\0î        \0\0\17o\bH\0\0\0\18q\17q\0h\0\0\0\18x-\0î \0\0\17o\ 4P\0\0\0\18q\ 5\ 2\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0\18q\ 5\ 2\0\0\0u-\0î    \0\0\17o\bX\0\0\0\18q\17q\0x\0\0\0\18x-\0î \0\0\17o\ 4`\0\0\0\18q\ 1u-\0î        \0\0\17o\ 4d\0\0\0\18q\ 1u-\0î        \0\0\17o\bh\0\0\0\18q\13q\0\ 6x\84\0q\etype.string\0-\0î     \0\0\17o\bp\0\0\0\18q\13q\0\ex6\0î     \0\0\13o
+\18q\ 5x\0\0\0u-\0î    \0\0\17o\bH\0\0\0\ 6q\ 1u-\0î        \0\0\17o\bP\0\0\0\ 6q\ 1u-\0î        \0\0\17o\bX\0\0\0\ 6q\17q\0h\0\0\0\ 6x-\0î \0\0\17o\ 4`\0\0\0\ 6q\ 5\ 3\0\0\0u-\0î    \0\0\17o\ 4d\0\0\0\ 6q\ 5\ 3\0\0\0u\84\0q\1cgo.string."Flush"\0-\0î      \0\0\17o\bh\0\0\0\ 6q\13q\0\1cx-\0î     \0\0\13o\b\1cq\17q\0\f\0\0\0\1cx-\0î     \0\0\17o\ 4\b\0\0\0\1cq\ 5\ 5\0\0\0u-\0î    \0\0\17o\ 5\f\0\0\0\1cq Flush\0\0\0-\0î \0\0\17o\ 1\11\0\0\0\1cq\ 1u6\0î        \0\0\13o
+\1cq\ 5\18\0\0\0u-\0î    \0\0\17o\bp\0\0\0\ 6q\ 1u\84\0q\1dtype.func()\0-\0î        \0\0\13o\b\1dq\13q\0\rx-\0î \0\0\17o\b\b\0\0\0\1dq\17q\0\10\0\0\0\1dx-\0î \0\0\17o\b\10\0\0\0\1dq\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\1dqEö¼\82ö\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0\1dq\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\1dq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\1dq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\1dq\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0\1dq\17q\0À\0\0\0\bx\84\0q\1ego.string."func()"\0-\0î  \0\0\17o\b(\0\0\0\1dq\13q\0\1ex-\0î     \0\0\13o\b\1eq\17q\0\f\0\0\0\1ex-\0î     \0\0\17o\ 4\b\0\0\0\1eq\ 5\ 6\0\0\0u-\0î    \0\0\17o\ 6\f\0\0\0\1eq func()\0\0-\0î \0\0\17o\ 1\12\0\0\0\1eq\ 1u6\0î        \0\0\13o
+\1eq\ 5\18\0\0\0u\84\0q\1fweak.type.*func()\0-\0î      \0\0\17o\b8\0\0\0\1dq\13q\0\1fx-\0î     \0\0\17o\ 1@\0\0\0\1dq\ 1u-\0î        \0\0\17o\bH\0\0\0\1dq\17q\0h\0\0\0\1dx-\0î \0\0\17o\ 4P\0\0\0\1dq\ 1u-\0î        \0\0\17o\ 4T\0\0\0\1dq\ 1u-\0î        \0\0\17o\bX\0\0\0\1dq\17q\0h\0\0\0\1dx-\0î \0\0\17o\ 4`\0\0\0\1dq\ 1u-\0î        \0\0\17o\ 4d\0\0\0\1dq\ 1u6\0î        \0\0\13o
+\1dq\ 5h\0\0\0u-\0î    \0\0\17o\bx\0\0\0\ 6q\13q\0\1dx-\0î     \0\0\17o\b\80\0\0\0\ 6q\13q\0\fx\84\0q "".(*fastaBuffer).Flush\0-\0î \0\0\17o\b\88\0\0\0\ 6q\13q\0 x-\0î     \0\0\17o\b\90\0\0\0\ 6q\13q\0 x\84\0q!go.string."NextWrite"\0-\0î   \0\0\17o\b\98\0\0\0\ 6q\13q\0!x-\0î     \0\0\13o\b!q\17q\0\f\0\0\0!x-\0î     \0\0\17o\ 4\b\0\0\0!q\ 5    \0\0\0u-\0î \0\0\17o\b\f\0\0\0!q NextWrit-\0î \0\0\17o\ 1\14\0\0\0!q e\0\0\0\0\0\0\0-\0î \0\0\17o\ 1\15\0\0\0!q\ 1u6\0î        \0\0\13o
+!q\ 5\18\0\0\0u-\0î    \0\0\17o\b \0\0\0\ 6q\ 1u\84\0q"type.func(int) []uint8\0-\0î     \0\0\13o\b"q\13q\0\rx-\0î \0\0\17o\b\b\0\0\0"q\17q\0\10\0\0\0"x-\0î \0\0\17o\b\10\0\0\0"q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0"q\ 5ýz~:u-\0î    \0\0\17o\ 1\1c\0\0\0"q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0"q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0"q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0"q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0"q\17q\0À\0\0\0\bx\84\0q#go.string."func(int) []uint8"\0-\0î       \0\0\17o\b(\0\0\0"q\13q\0#x-\0î     \0\0\13o\b#q\17q\0\f\0\0\0#x-\0î     \0\0\17o\ 4\b\0\0\0#q\ 5\11\0\0\0u-\0î    \0\0\17o\b\f\0\0\0#q func(int-\0î \0\0\17o\b\14\0\0\0#q ) []uint-\0î \0\0\17o\ 1\1c\0\0\0#q 8\0\0\0\0\0\0\0-\0î \0\0\17o\ 1\1d\0\0\0#q\ 1u6\0î        \0\0\13o
+#q\ 5 \0\0\0u\84\0q$weak.type.*func(int) []uint8\0-\0î   \0\0\17o\b8\0\0\0"q\13q\0$x-\0î     \0\0\17o\ 1@\0\0\0"q\ 1u-\0î        \0\0\17o\bH\0\0\0"q\17q\0h\0\0\0"x-\0î \0\0\17o\ 4P\0\0\0"q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0"q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bX\0\0\0"q\17q\0p\0\0\0"x-\0î \0\0\17o\ 4`\0\0\0"q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4d\0\0\0"q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bh\0\0\0"q\13q\0\17x-\0î     \0\0\17o\bp\0\0\0"q\13q\0\10x6\0î     \0\0\13o
+"q\ 5x\0\0\0u-\0î    \0\0\17o\b¨\0\0\0\ 6q\13q\0"x-\0î     \0\0\17o\b°\0\0\0\ 6q\13q\0\14x\84\0q%"".(*fastaBuffer).NextWrite\0-\0î     \0\0\17o\b¸\0\0\0\ 6q\13q\0%x-\0î     \0\0\17o\bÀ\0\0\0\ 6q\13q\0%x\84\0q&go.string."WriteString"\0-\0î \0\0\17o\bÈ\0\0\0\ 6q\13q\0&x-\0î     \0\0\13o\b&q\17q\0\f\0\0\0&x-\0î     \0\0\17o\ 4\b\0\0\0&q\ 5\v\0\0\0u-\0î    \0\0\17o\b\f\0\0\0&q WriteStr-\0î \0\0\17o\ 3\14\0\0\0&q ing\0\0\0\0\0-\0î \0\0\17o\ 1\17\0\0\0&q\ 1u6\0î        \0\0\13o
+&q\ 5\18\0\0\0u-\0î    \0\0\17o\bÐ\0\0\0\ 6q\ 1u\84\0q'type.func(string)\0-\0î  \0\0\13o\b'q\13q\0\rx-\0î \0\0\17o\b\b\0\0\0'q\17q\0\10\0\0\0'x-\0î \0\0\17o\b\10\0\0\0'q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0'qE\8aǹ¾\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0'q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0'q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0'q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0'q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0'q\17q\0À\0\0\0\bx\84\0q(go.string."func(string)"\0-\0î    \0\0\17o\b(\0\0\0'q\13q\0(x-\0î     \0\0\13o\b(q\17q\0\f\0\0\0(x-\0î     \0\0\17o\ 4\b\0\0\0(q\ 5\f\0\0\0u-\0î    \0\0\17o\b\f\0\0\0(q func(str-\0î \0\0\17o\ 4\14\0\0\0(q ing)\0\0\0\0-\0î \0\0\17o\ 1\18\0\0\0(q\ 1u6\0î        \0\0\13o
+(q\ 5 \0\0\0u\84\0q)weak.type.*func(string)\0-\0î        \0\0\17o\b8\0\0\0'q\13q\0)x-\0î     \0\0\17o\ 1@\0\0\0'q\ 1u-\0î        \0\0\17o\bH\0\0\0'q\17q\0h\0\0\0'x-\0î \0\0\17o\ 4P\0\0\0'q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0'q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bX\0\0\0'q\17q\0p\0\0\0'x-\0î \0\0\17o\ 4`\0\0\0'q\ 1u-\0î        \0\0\17o\ 4d\0\0\0'q\ 1u-\0î        \0\0\17o\bh\0\0\0'q\13q\0\ex6\0î     \0\0\13o
+'q\ 5p\0\0\0u-\0î    \0\0\17o\bØ\0\0\0\ 6q\13q\0'x-\0î     \0\0\17o\bà\0\0\0\ 6q\13q\0\18x\84\0q*"".(*fastaBuffer).WriteString\0-\0î   \0\0\17o\bè\0\0\0\ 6q\13q\0*x-\0î     \0\0\17o\bð\0\0\0\ 6q\13q\0*x6\0î     \0\0\13o\b\ 6q\ 5ø\0\0\0u-\0î        \0\0\13o\b\vq\13q\0-x-\0î \0\0\17o\b\b\0\0\0\vq\17q\0\10\0\0\0\vx-\0î \0\0\17o\b\10\0\0\0\vq\ 5\10\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\vqE\93\11A\8d\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0\vq\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\vq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\vq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\vq\ 5\17\0\0\0u-\0î    \0\0\17o\b \0\0\0\vq\17q\0à\ 1\0\0\bx\84\0q+go.string."go1.fastaBuffer"\0-\0î \0\0\17o\b(\0\0\0\vq\13q\0+x-\0î     \0\0\13o\b+q\17q\0\f\0\0\0+x-\0î     \0\0\17o\ 4\b\0\0\0+q\ 5\ f\0\0\0u-\0î    \0\0\17o\b\f\0\0\0+q go1.fast-\0î \0\0\17o\a\14\0\0\0+q aBuffer\0-\0î \0\0\17o\ 1\e\0\0\0+q\ 1u6\0î        \0\0\13o
++q\ 5 \0\0\0u-\0î    \0\0\17o\b8\0\0\0\vq\13q\0\ 6x-\0î     \0\0\17o\b@\0\0\0\vq\13q\0\13x-\0î     \0\0\17o\b0\0\0\0\vq\17q\0H\0\0\0\vx\84\0q,go.string."fastaBuffer"\0-\0î     \0\0\17o\bH\0\0\0\vq\13q\0,x-\0î     \0\0\13o\b,q\17q\0\f\0\0\0,x-\0î     \0\0\17o\ 4\b\0\0\0,q\ 5\v\0\0\0u-\0î    \0\0\17o\b\f\0\0\0,q fastaBuf-\0î \0\0\17o\ 3\14\0\0\0,q fer\0\0\0\0\0-\0î \0\0\17o\ 1\17\0\0\0,q\ 1u6\0î        \0\0\13o
+,q\ 5\18\0\0\0u\84\0q-go.importpath."".\0-\0î      \0\0\17o\bP\0\0\0\vq\13q\0-x-\0î     \0\0\17o\bX\0\0\0\vq\17q\0h\0\0\0\vx-\0î \0\0\17o\ 4`\0\0\0\vq\ 1u-\0î        \0\0\17o\ 4d\0\0\0\vq\ 1u6\0î        \0\0\13o\b\vq\ 5h\0\0\0u\84\0q.type.*"".fastaAcid\0-\0î \0\0\13o\b.q\13q\0\ax-\0î \0\0\17o\b\b\0\0\0.q\17q\0\10\0\0\0.x-\0î \0\0\17o\b\10\0\0\0.q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0.q\ 5\98>u-\0î    \0\0\17o\ 1\1c\0\0\0.q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0.q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0.q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0.q\ 5\16\0\0\0u-\0î    \0\0\17o\b \0\0\0.q\17q\0\80\0\0\0\bx\84\0q/go.string."*go1.fastaAcid"\0-\0î  \0\0\17o\b(\0\0\0.q\13q\0/x-\0î     \0\0\13o\b/q\17q\0\f\0\0\0/x-\0î     \0\0\17o\ 4\b\0\0\0/q\ 5\ e\0\0\0u-\0î    \0\0\17o\b\f\0\0\0/q *go1.fas-\0î \0\0\17o\ 6\14\0\0\0/q taAcid\0\0-\0î \0\0\17o\ 1\1a\0\0\0/q\ 1u6\0î        \0\0\13o
+/q\ 5 \0\0\0u\84\0q0weak.type.**"".fastaAcid\0-\0î       \0\0\17o\b8\0\0\0.q\13q\00x\84\0q1type."".fastaAcid\0-\0î       \0\0\17o\b@\0\0\0.q\13q\01x6\0î     \0\0\13o\b.q\ 5H\0\0\0u\84\0q\ 1type.*runtime.StructType\0-\0î   \0\0\13o\b1q\13q\0\ 1x-\0î \0\0\17o\b\b\0\0\01q\17q\0\10\0\0\01x-\0î \0\0\17o\b\10\0\0\01q\ 5 \0\0\0u-\0î    \0\0\17o\ 4\18\0\0\01qE&&\ 1ê\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\01q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\01q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\01q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\01q\ 5\19\0\0\0u-\0î    \0\0\17o\b \0\0\01q\13q\0\bx\84\0q\ 2go.string."go1.fastaAcid"\0-\0î       \0\0\17o\b(\0\0\01q\13q\0\ 2x-\0î     \0\0\13o\b\ 2q\17q\0\f\0\0\0\ 2x-\0î     \0\0\17o\ 4\b\0\0\0\ 2q\ 5\r\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\ 2q go1.fast-\0î \0\0\17o\ 5\14\0\0\0\ 2q aAcid\0\0\0-\0î \0\0\17o\ 1\19\0\0\0\ 2q\ 1u6\0î        \0\0\13o
+\ 2q\ 5 \0\0\0u-\0î    \0\0\17o\b8\0\0\01q\13q\0.x-\0î     \0\0\17o\b@\0\0\01q\17q\0P\0\0\01x-\0î \0\0\17o\ 4H\0\0\01q\ 5\ 4\0\0\0u-\0î    \0\0\17o\ 4L\0\0\01q\ 5\ 4\0\0\0u\84\0q\ 3go.string."sym"\0-\0î        \0\0\17o\bP\0\0\01q\13q\0\ 3x-\0î     \0\0\13o\b\ 3q\17q\0\f\0\0\0\ 3x-\0î     \0\0\17o\ 4\b\0\0\0\ 3q\ 5\ 3\0\0\0u-\0î    \0\0\17o\ 3\f\0\0\0\ 3q sym\0\0\0\0\0-\0î \0\0\17o\ 1\ f\0\0\0\ 3q\ 1u6\0î        \0\0\13o
+\ 3q\ 5\10\0\0\0u-\0î    \0\0\17o\bX\0\0\01q\13q\0-x-\0î     \0\0\17o\b`\0\0\01q\13q\0\13x-\0î     \0\0\17o\bh\0\0\01q\ 1u-\0î        \0\0\17o\bp\0\0\01q\ 1u\84\0q\ 4go.string."prob"\0-\0î   \0\0\17o\bx\0\0\01q\13q\0\ 4x-\0î     \0\0\13o\b\ 4q\17q\0\f\0\0\0\ 4x-\0î     \0\0\17o\ 4\b\0\0\0\ 4q\ 5\ 4\0\0\0u-\0î    \0\0\17o\ 4\f\0\0\0\ 4q prob\0\0\0\0-\0î \0\0\17o\ 1\10\0\0\0\ 4q\ 1u6\0î        \0\0\13o
+\ 4q\ 5\18\0\0\0u-\0î    \0\0\17o\b\80\0\0\01q\13q\0-x\84\0q\ 5type.float64\0-\0î    \0\0\17o\b\88\0\0\01q\13q\0\ 5x-\0î     \0\0\17o\b\90\0\0\01q\ 1u-\0î        \0\0\17o\b\98\0\0\01q\ 5\b\0\0\0u\84\0q\ 6go.string."cprob"\0-\0î      \0\0\17o\b \0\0\01q\13q\0\ 6x-\0î     \0\0\13o\b\ 6q\17q\0\f\0\0\0\ 6x-\0î     \0\0\17o\ 4\b\0\0\0\ 6q\ 5\ 5\0\0\0u-\0î    \0\0\17o\ 5\f\0\0\0\ 6q cprob\0\0\0-\0î \0\0\17o\ 1\11\0\0\0\ 6q\ 1u6\0î        \0\0\13o
+\ 6q\ 5\18\0\0\0u-\0î    \0\0\17o\b¨\0\0\01q\13q\0-x-\0î     \0\0\17o\b°\0\0\01q\13q\0\ 5x-\0î     \0\0\17o\b¸\0\0\01q\ 1u-\0î        \0\0\17o\bÀ\0\0\01q\ 5\10\0\0\0u\84\0q\ago.string."next"\0-\0î       \0\0\17o\bÈ\0\0\01q\13q\0\ax-\0î     \0\0\13o\b\aq\17q\0\f\0\0\0\ax-\0î     \0\0\17o\ 4\b\0\0\0\aq\ 5\ 4\0\0\0u-\0î    \0\0\17o\ 4\f\0\0\0\aq next\0\0\0\0-\0î \0\0\17o\ 1\10\0\0\0\aq\ 1u6\0î        \0\0\13o
+\aq\ 5\18\0\0\0u-\0î    \0\0\17o\bÐ\0\0\01q\13q\0-x-\0î     \0\0\17o\bØ\0\0\01q\13q\0.x-\0î     \0\0\17o\bà\0\0\01q\ 1u-\0î        \0\0\17o\bè\0\0\01q\ 5\18\0\0\0u-\0î    \0\0\17o\b0\0\0\01q\17q\0ð\0\0\01x\84\0q\bgo.string."fastaAcid"\0-\0î       \0\0\17o\bð\0\0\01q\13q\0\bx-\0î     \0\0\13o\b\bq\17q\0\f\0\0\0\bx-\0î     \0\0\17o\ 4\b\0\0\0\bq\ 5    \0\0\0u-\0î \0\0\17o\b\f\0\0\0\bq fastaAci-\0î \0\0\17o\ 1\14\0\0\0\bq d\0\0\0\0\0\0\0-\0î \0\0\17o\ 1\15\0\0\0\bq\ 1u6\0î        \0\0\13o
+\bq\ 5\18\0\0\0u-\0î    \0\0\17o\bø\0\0\01q\13q\0-x-\0î     \0\0\17o\b\0\ 1\0\01q\17q\0\10\ 1\0\01x-\0î \0\0\17o\ 4\b\ 1\0\01q\ 1u-\0î        \0\0\17o\ 4\f\ 1\0\01q\ 1u6\0î        \0\0\13o\b1q\ 5\10\ 1\0\0u\84\0q        type.[]"".fastaAcid\0\84\0q
+type.*runtime.SliceType\0-\0î    \0\0\13o\b   q\13q\0
+x-\0î   \0\0\17o\b\b\0\0\0       q\17q\0\10\0\0\0        x-\0î    \0\0\17o\b\10\0\0\0       q\ 5\10\0\0\0u-\0î      \0\0\17o\ 4\18\0\0\0       qE4U4ò\0\0\0\0u-\0î  \0\0\17o\ 1\1c\0\0\0       q\ 1u-\0î  \0\0\17o\ 1\1d\0\0\0       q\ 5\b\0\0\0u-\0î      \0\0\17o\ 1\1e\0\0\0       q\ 5\b\0\0\0u-\0î      \0\0\17o\ 1\1f\0\0\0       q\ 5\17\0\0\0u\84\0q\vruntime.algarray\0-\0î \0\0\17o\b \0\0\0       q\17q\0à\ 1\0\0\vx\84\0q\fgo.string."[]go1.fastaAcid"\0-\0î   \0\0\17o\b(\0\0\0       q\13q\0\fx-\0î       \0\0\13o\b\fq\17q\0\f\0\0\0\fx-\0î     \0\0\17o\ 4\b\0\0\0\fq\ 5\ f\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\fq []go1.fa-\0î \0\0\17o\a\14\0\0\0\fq staAcid\0-\0î \0\0\17o\ 1\e\0\0\0\fq\ 1u6\0î        \0\0\13o
+\fq\ 5 \0\0\0u\84\0q\rweak.type.*[]"".fastaAcid\0-\0î      \0\0\17o\b8\0\0\0       q\13q\0\rx-\0î       \0\0\17o\b@\0\0\0       q\13q\01x6\0î       \0\0\13o
+       q\ 5H\0\0\0u\84\0q\ etype.[15]"".fastaAcid\0\84\0q\ ftype.*runtime.ArrayType\0-\0î        \0\0\13o\b\ eq\13q\0\ fx-\0î \0\0\17o\b\b\0\0\0\ eq\17q\0\10\0\0\0\ ex-\0î \0\0\17o\b\10\0\0\0\ eq\ 5à\ 1\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\ eqE¾\84\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0\ eq\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\ eq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\ eq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\ eq\ 5\11\0\0\0u-\0î    \0\0\17o\b \0\0\0\ eq\13q\0\vx\84\0q\10go.string."[15]go1.fastaAcid"\0-\0î   \0\0\17o\b(\0\0\0\ eq\13q\0\10x-\0î     \0\0\13o\b\10q\17q\0\f\0\0\0\10x-\0î     \0\0\17o\ 4\b\0\0\0\10q\ 5\11\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\10q [15]go1.-\0î \0\0\17o\b\14\0\0\0\10q fastaAci-\0î \0\0\17o\ 1\1c\0\0\0\10q d\0\0\0\0\0\0\0-\0î \0\0\17o\ 1\1d\0\0\0\10q\ 1u6\0î        \0\0\13o
+\10q\ 5 \0\0\0u\84\0q\11weak.type.*[15]"".fastaAcid\0-\0î    \0\0\17o\b8\0\0\0\ eq\13q\0\11x-\0î     \0\0\17o\b@\0\0\0\ eq\13q\01x-\0î     \0\0\17o\bH\0\0\0\ eq\13q\0  x-\0î    \0\0\17o\bP\0\0\0\ eq\ 5\ f\0\0\0u6\0î    \0\0\13o
+\ eq\ 5X\0\0\0u\84\0q\12type.[4]"".fastaAcid\0-\0î   \0\0\13o\b\12q\13q\0\ fx-\0î \0\0\17o\b\b\0\0\0\12q\17q\0\10\0\0\0\12x-\0î \0\0\17o\b\10\0\0\0\12q\ 5\80\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\12q\ 55Yt>u-\0î    \0\0\17o\ 1\1c\0\0\0\12q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\12q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\12q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\12q\ 5\11\0\0\0u-\0î    \0\0\17o\b \0\0\0\12q\13q\0\vx\84\0q\13go.string."[4]go1.fastaAcid"\0-\0î    \0\0\17o\b(\0\0\0\12q\13q\0\13x-\0î     \0\0\13o\b\13q\17q\0\f\0\0\0\13x-\0î     \0\0\17o\ 4\b\0\0\0\13q\ 5\10\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\13q [4]go1.f-\0î \0\0\17o\b\14\0\0\0\13q astaAcid-\0î \0\0\17o\ 1\1c\0\0\0\13q\ 1u6\0î        \0\0\13o
+\13q\ 5 \0\0\0u\84\0q\14weak.type.*[4]"".fastaAcid\0-\0î     \0\0\17o\b8\0\0\0\12q\13q\0\14x-\0î     \0\0\17o\b@\0\0\0\12q\13q\01x-\0î     \0\0\17o\bH\0\0\0\12q\13q\0  x-\0î    \0\0\17o\bP\0\0\0\12q\ 5\ 4\0\0\0u6\0î    \0\0\13o
+\12q\ 5X\0\0\0u\84\0q\15type.func(*uint8, int64, int64) []uint8\0\84\0q\16type.*runtime.FuncType\0-\0î     \0\0\13o\b\15q\13q\0\16x-\0î \0\0\17o\b\b\0\0\0\15q\17q\0\10\0\0\0\15x-\0î \0\0\17o\b\10\0\0\0\15q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\15q\ 5IzK|u-\0î    \0\0\17o\ 1\1c\0\0\0\15q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\15q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\15q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\15q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0\15q\17q\0@\ 1\0\0\vx\84\0q\17go.string."func(*uint8, int64, int64) []uint8"\0-\0î      \0\0\17o\b(\0\0\0\15q\13q\0\17x-\0î     \0\0\13o\b\17q\17q\0\f\0\0\0\17x-\0î     \0\0\17o\ 4\b\0\0\0\17q\ 5"\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\17q func(*ui-\0î \0\0\17o\b\14\0\0\0\17q nt8, int-\0î \0\0\17o\b\1c\0\0\0\17q 64, int6-\0î \0\0\17o\b$\0\0\0\17q 4) []uin-\0î \0\0\17o\ 2,\0\0\0\17q t8\0\0\0\0\0\0-\0î \0\0\17o\ 1.\0\0\0\17q\ 1u6\0î        \0\0\13o
+\17q\ 50\0\0\0u\84\0q\18weak.type.*func(*uint8, int64, int64) []uint8\0-\0î  \0\0\17o\b8\0\0\0\15q\13q\0\18x-\0î     \0\0\17o\ 1@\0\0\0\15q\ 1u-\0î        \0\0\17o\bH\0\0\0\15q\17q\0h\0\0\0\15x-\0î \0\0\17o\ 4P\0\0\0\15q\ 5\ 3\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0\15q\ 5\ 3\0\0\0u-\0î    \0\0\17o\bX\0\0\0\15q\17q\0\80\0\0\0\15x-\0î \0\0\17o\ 4`\0\0\0\15q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4d\0\0\0\15q\ 5\ 1\0\0\0u\84\0q\19type.*uint8\0-\0î    \0\0\17o\bh\0\0\0\15q\13q\0\19x\84\0q\1atype.int64\0-\0î      \0\0\17o\bp\0\0\0\15q\13q\0\1ax-\0î     \0\0\17o\bx\0\0\0\15q\13q\0\1ax\84\0q\etype.[]uint8\0-\0î    \0\0\17o\b\80\0\0\0\15q\13q\0\ex6\0î     \0\0\13o
+\15q\ 5\88\0\0\0u\84\0q\1ctype.*[15]"".fastaAcid\0\84\0q\1dtype.*runtime.PtrType\0-\0î       \0\0\13o\b\1cq\13q\0\1dx-\0î \0\0\17o\b\b\0\0\0\1cq\17q\0\10\0\0\0\1cx-\0î \0\0\17o\b\10\0\0\0\1cq\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\1cq\ 5\18Á2\u-\0î    \0\0\17o\ 1\1c\0\0\0\1cq\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\1cq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\1cq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\1cq\ 5\16\0\0\0u-\0î    \0\0\17o\b \0\0\0\1cq\17q\0\80\0\0\0\vx\84\0q\1ego.string."*[15]go1.fastaAcid"\0-\0î      \0\0\17o\b(\0\0\0\1cq\13q\0\1ex-\0î     \0\0\13o\b\1eq\17q\0\f\0\0\0\1ex-\0î     \0\0\17o\ 4\b\0\0\0\1eq\ 5\12\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\1eq *[15]go1-\0î \0\0\17o\b\14\0\0\0\1eq .fastaAc-\0î \0\0\17o\ 2\1c\0\0\0\1eq id\0\0\0\0\0\0-\0î \0\0\17o\ 1\1e\0\0\0\1eq\ 1u6\0î        \0\0\13o
+\1eq\ 5 \0\0\0u\84\0q\1fweak.type.**[15]"".fastaAcid\0-\0î   \0\0\17o\b8\0\0\0\1cq\13q\0\1fx-\0î     \0\0\17o\b@\0\0\0\1cq\13q\0\ ex6\0î     \0\0\13o
+\1cq\ 5H\0\0\0u\84\0q type.func(*uint8) *[15]"".fastaAcid\0-\0î    \0\0\13o\b q\13q\0\16x-\0î \0\0\17o\b\b\0\0\0 q\17q\0\10\0\0\0 x-\0î \0\0\17o\b\10\0\0\0 q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0 q\ 5}æ"lu-\0î    \0\0\17o\ 1\1c\0\0\0 q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0 q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0 q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0 q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0 q\17q\0@\ 1\0\0\vx\84\0q!go.string."func(*uint8) *[15]go1.fastaAcid"\0-\0î \0\0\17o\b(\0\0\0 q\13q\0!x-\0î     \0\0\13o\b!q\17q\0\f\0\0\0!x-\0î     \0\0\17o\ 4\b\0\0\0!q\ 5\1f\0\0\0u-\0î    \0\0\17o\b\f\0\0\0!q func(*ui-\0î \0\0\17o\b\14\0\0\0!q nt8) *[1-\0î \0\0\17o\b\1c\0\0\0!q 5]go1.fa-\0î \0\0\17o\a$\0\0\0!q staAcid\0-\0î \0\0\17o\ 1+\0\0\0!q\ 1u6\0î        \0\0\13o
+!q\ 50\0\0\0u\84\0q"weak.type.*func(*uint8) *[15]"".fastaAcid\0-\0î      \0\0\17o\b8\0\0\0 q\13q\0"x-\0î     \0\0\17o\ 1@\0\0\0 q\ 1u-\0î        \0\0\17o\bH\0\0\0 q\17q\0h\0\0\0 x-\0î \0\0\17o\ 4P\0\0\0 q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0 q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bX\0\0\0 q\17q\0p\0\0\0 x-\0î \0\0\17o\ 4`\0\0\0 q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4d\0\0\0 q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bh\0\0\0 q\13q\0\19x-\0î     \0\0\17o\bp\0\0\0 q\13q\0\1cx6\0î     \0\0\13o
+ q\ 5x\0\0\0u\84\0q#type.*[4]"".fastaAcid\0-\0î  \0\0\13o\b#q\13q\0\1dx-\0î \0\0\17o\b\b\0\0\0#q\17q\0\10\0\0\0#x-\0î \0\0\17o\b\10\0\0\0#q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0#qE`%\ 6è\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0#q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0#q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0#q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0#q\ 5\16\0\0\0u-\0î    \0\0\17o\b \0\0\0#q\17q\0\80\0\0\0\vx\84\0q$go.string."*[4]go1.fastaAcid"\0-\0î       \0\0\17o\b(\0\0\0#q\13q\0$x-\0î     \0\0\13o\b$q\17q\0\f\0\0\0$x-\0î     \0\0\17o\ 4\b\0\0\0$q\ 5\11\0\0\0u-\0î    \0\0\17o\b\f\0\0\0$q *[4]go1.-\0î \0\0\17o\b\14\0\0\0$q fastaAci-\0î \0\0\17o\ 1\1c\0\0\0$q d\0\0\0\0\0\0\0-\0î \0\0\17o\ 1\1d\0\0\0$q\ 1u6\0î        \0\0\13o
+$q\ 5 \0\0\0u\84\0q%weak.type.**[4]"".fastaAcid\0-\0î    \0\0\17o\b8\0\0\0#q\13q\0%x-\0î     \0\0\17o\b@\0\0\0#q\13q\0\12x6\0î     \0\0\13o
+#q\ 5H\0\0\0u\84\0q&type.func(*uint8) *[4]"".fastaAcid\0-\0î     \0\0\13o\b&q\13q\0\16x-\0î \0\0\17o\b\b\0\0\0&q\17q\0\10\0\0\0&x-\0î \0\0\17o\b\10\0\0\0&q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0&qE\94Ь\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0&q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0&q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0&q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0&q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0&q\17q\0@\ 1\0\0\vx\84\0q'go.string."func(*uint8) *[4]go1.fastaAcid"\0-\0î  \0\0\17o\b(\0\0\0&q\13q\0'x-\0î     \0\0\13o\b'q\17q\0\f\0\0\0'x-\0î     \0\0\17o\ 4\b\0\0\0'q\ 5\1e\0\0\0u-\0î    \0\0\17o\b\f\0\0\0'q func(*ui-\0î \0\0\17o\b\14\0\0\0'q nt8) *[4-\0î \0\0\17o\b\1c\0\0\0'q ]go1.fas-\0î \0\0\17o\ 6$\0\0\0'q taAcid\0\0-\0î \0\0\17o\ 1*\0\0\0'q\ 1u6\0î        \0\0\13o
+'q\ 50\0\0\0u\84\0q(weak.type.*func(*uint8) *[4]"".fastaAcid\0-\0î       \0\0\17o\b8\0\0\0&q\13q\0(x-\0î     \0\0\17o\ 1@\0\0\0&q\ 1u-\0î        \0\0\17o\bH\0\0\0&q\17q\0h\0\0\0&x-\0î \0\0\17o\ 4P\0\0\0&q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0&q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bX\0\0\0&q\17q\0p\0\0\0&x-\0î \0\0\17o\ 4`\0\0\0&q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4d\0\0\0&q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bh\0\0\0&q\13q\0\19x-\0î     \0\0\17o\bp\0\0\0&q\13q\0#x6\0î     \0\0\13o
+&q\ 5x\0\0\0u\84\0q)type.func(*"".fastaBuffer, []uint8, int)\0-\0î       \0\0\13o\b)q\13q\0\16x-\0î \0\0\17o\b\b\0\0\0)q\17q\0\10\0\0\0)x-\0î \0\0\17o\b\10\0\0\0)q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0)qE5$½¦\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0)q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0)q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0)q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0)q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0)q\17q\0@\ 1\0\0\vx\84\0q*go.string."func(*go1.fastaBuffer, []uint8, int)"\0-\0î    \0\0\17o\b(\0\0\0)q\13q\0*x-\0î     \0\0\13o\b*q\17q\0\f\0\0\0*x-\0î     \0\0\17o\ 4\b\0\0\0*q\ 5$\0\0\0u-\0î    \0\0\17o\b\f\0\0\0*q func(*go-\0î \0\0\17o\b\14\0\0\0*q 1.fastaB-\0î \0\0\17o\b\1c\0\0\0*q uffer, [-\0î \0\0\17o\b$\0\0\0*q ]uint8, -\0î \0\0\17o\ 4,\0\0\0*q int)\0\0\0\0-\0î \0\0\17o\ 10\0\0\0*q\ 1u6\0î        \0\0\13o
+*q\ 58\0\0\0u\84\0q+weak.type.*func(*"".fastaBuffer, []uint8, int)\0-\0î \0\0\17o\b8\0\0\0)q\13q\0+x-\0î     \0\0\17o\ 1@\0\0\0)q\ 1u-\0î        \0\0\17o\bH\0\0\0)q\17q\0h\0\0\0)x-\0î \0\0\17o\ 4P\0\0\0)q\ 5\ 3\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0)q\ 5\ 3\0\0\0u-\0î    \0\0\17o\bX\0\0\0)q\17q\0\80\0\0\0)x-\0î \0\0\17o\ 4`\0\0\0)q\ 1u-\0î        \0\0\17o\ 4d\0\0\0)q\ 1u\84\0q,type.*"".fastaBuffer\0-\0î       \0\0\17o\bh\0\0\0)q\13q\0,x-\0î     \0\0\17o\bp\0\0\0)q\13q\0\ex\84\0q-type.int\0-\0î        \0\0\17o\bx\0\0\0)q\13q\0-x6\0î     \0\0\13o
+)q\ 5\80\0\0\0u\84\0q.type.func(*"".fastaBuffer, []"".fastaAcid, int)\0-\0î        \0\0\13o\b.q\13q\0\16x-\0î \0\0\17o\b\b\0\0\0.q\17q\0\10\0\0\0.x-\0î \0\0\17o\b\10\0\0\0.q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0.q\ 5z"+\ 5u-\0î    \0\0\17o\ 1\1c\0\0\0.q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0.q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0.q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0.q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0.q\17q\0@\ 1\0\0\vx\84\0q/go.string."func(*go1.fastaBuffer, []go1.fastaAcid, int)"\0-\0î    \0\0\17o\b(\0\0\0.q\13q\0/x-\0î     \0\0\13o\b/q\17q\0\f\0\0\0/x-\0î     \0\0\17o\ 4\b\0\0\0/q\ 5,\0\0\0u-\0î    \0\0\17o\b\f\0\0\0/q func(*go-\0î \0\0\17o\b\14\0\0\0/q 1.fastaB-\0î \0\0\17o\b\1c\0\0\0/q uffer, [-\0î \0\0\17o\b$\0\0\0/q ]go1.fas-\0î \0\0\17o\b,\0\0\0/q taAcid, -\0î \0\0\17o\ 44\0\0\0/q int)\0\0\0\0-\0î \0\0\17o\ 18\0\0\0/q\ 1u6\0î        \0\0\13o
+/q\ 5@\0\0\0u\84\0q0weak.type.*func(*"".fastaBuffer, []"".fastaAcid, int)\0-\0î  \0\0\17o\b8\0\0\0.q\13q\00x-\0î     \0\0\17o\ 1@\0\0\0.q\ 1u-\0î        \0\0\17o\bH\0\0\0.q\17q\0h\0\0\0.x-\0î \0\0\17o\ 4P\0\0\0.q\ 5\ 3\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0.q\ 5\ 3\0\0\0u-\0î    \0\0\17o\bX\0\0\0.q\17q\0\80\0\0\0.x-\0î \0\0\17o\ 4`\0\0\0.q\ 1u-\0î        \0\0\17o\ 4d\0\0\0.q\ 1u-\0î        \0\0\17o\bh\0\0\0.q\13q\0,x-\0î     \0\0\17o\bp\0\0\0.q\13q\0  x-\0î    \0\0\17o\bx\0\0\0.q\13q\0-x6\0î     \0\0\13o
+.q\ 5\80\0\0\0u\84\0q1type.method(*"".fastaBuffer) func()\0-\0î    \0\0\13o\b1q\13q\0\16x-\0î \0\0\17o\b\b\0\0\01q\17q\0\10\0\0\01x-\0î \0\0\17o\b\10\0\0\01q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\01qEö¼\82ö\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\01q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\01q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\01q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\01q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\01q\17q\0@\ 1\0\0\vx\84\0q\ 1go.string."method(*go1.fastaBuffer) func()"\0-\0î \0\0\17o\b(\0\0\01q\13q\0\ 1x-\0î     \0\0\13o\b\ 1q\17q\0\f\0\0\0\ 1x-\0î     \0\0\17o\ 4\b\0\0\0\ 1q\ 5\1f\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\ 1q method(*-\0î \0\0\17o\b\14\0\0\0\ 1q go1.fast-\0î \0\0\17o\b\1c\0\0\0\ 1q aBuffer)-\0î \0\0\17o\a$\0\0\0\ 1q  func()\0-\0î \0\0\17o\ 1+\0\0\0\ 1q\ 1u6\0î        \0\0\13o
+\ 1q\ 50\0\0\0u\84\0q\ 2weak.type.*method(*"".fastaBuffer) func()\0-\0î      \0\0\17o\b8\0\0\01q\13q\0\ 2x-\0î     \0\0\17o\ 1@\0\0\01q\ 1u-\0î        \0\0\17o\bH\0\0\01q\17q\0h\0\0\01x-\0î \0\0\17o\ 4P\0\0\01q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4T\0\0\01q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bX\0\0\01q\17q\0p\0\0\01x-\0î \0\0\17o\ 4`\0\0\01q\ 1u-\0î        \0\0\17o\ 4d\0\0\01q\ 1u-\0î        \0\0\17o\bh\0\0\01q\13q\0,x6\0î     \0\0\13o
+1q\ 5p\0\0\0u\84\0q\ 3type.interface {}\0\84\0q\ 4type.*runtime.InterfaceType\0-\0î      \0\0\13o\b\ 3q\13q\0\ 4x-\0î \0\0\17o\b\b\0\0\0\ 3q\17q\0\10\0\0\0\ 3x-\0î \0\0\17o\b\10\0\0\0\ 3q\ 5\10\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\ 3q\ 5çW \18u-\0î    \0\0\17o\ 1\1c\0\0\0\ 3q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\ 3q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\ 3q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\ 3q\ 5\14\0\0\0u-\0î    \0\0\17o\b \0\0\0\ 3q\17q\0À\ 1\0\0\vx\84\0q\ 5go.string."interface {}"\0-\0î    \0\0\17o\b(\0\0\0\ 3q\13q\0\ 5x-\0î     \0\0\13o\b\ 5q\17q\0\f\0\0\0\ 5x-\0î     \0\0\17o\ 4\b\0\0\0\ 5q\ 5\f\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\ 5q interfac-\0î \0\0\17o\ 4\14\0\0\0\ 5q e {}\0\0\0\0-\0î \0\0\17o\ 1\18\0\0\0\ 5q\ 1u6\0î        \0\0\13o
+\ 5q\ 5 \0\0\0u\84\0q\ 6weak.type.*interface {}\0-\0î        \0\0\17o\b8\0\0\0\ 3q\13q\0\ 6x-\0î     \0\0\17o\b@\0\0\0\ 3q\17q\0P\0\0\0\ 3x-\0î \0\0\17o\ 4H\0\0\0\ 3q\ 1u-\0î        \0\0\17o\ 4L\0\0\0\ 3q\ 1u6\0î        \0\0\13o
+\ 3q\ 5P\0\0\0u\84\0q\atype.func(*uint8, string) interface {}\0-\0î \0\0\13o\b\aq\13q\0\16x-\0î \0\0\17o\b\b\0\0\0\aq\17q\0\10\0\0\0\ax-\0î \0\0\17o\b\10\0\0\0\aq\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\aqE\82×»û\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0\aq\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\aq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\aq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\aq\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0\aq\17q\0@\ 1\0\0\vx\84\0q\bgo.string."func(*uint8, string) interface {}"\0-\0î       \0\0\17o\b(\0\0\0\aq\13q\0\bx-\0î     \0\0\13o\b\bq\17q\0\f\0\0\0\bx-\0î     \0\0\17o\ 4\b\0\0\0\bq\ 5!\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\bq func(*ui-\0î \0\0\17o\b\14\0\0\0\bq nt8, str-\0î \0\0\17o\b\1c\0\0\0\bq ing) int-\0î \0\0\17o\b$\0\0\0\bq erface {-\0î \0\0\17o\ 1,\0\0\0\bq }\0\0\0\0\0\0\0-\0î \0\0\17o\ 1-\0\0\0\bq\ 1u6\0î        \0\0\13o
+\bq\ 50\0\0\0u\84\0q    weak.type.*func(*uint8, string) interface {}\0-\0î        \0\0\17o\b8\0\0\0\aq\13q\0  x-\0î    \0\0\17o\ 1@\0\0\0\aq\ 1u-\0î        \0\0\17o\bH\0\0\0\aq\17q\0h\0\0\0\ax-\0î \0\0\17o\ 4P\0\0\0\aq\ 5\ 2\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0\aq\ 5\ 2\0\0\0u-\0î    \0\0\17o\bX\0\0\0\aq\17q\0x\0\0\0\ax-\0î \0\0\17o\ 4`\0\0\0\aq\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4d\0\0\0\aq\ 5\ 1\0\0\0u-\0î    \0\0\17o\bh\0\0\0\aq\13q\0\19x\84\0q
+type.string\0-\0î        \0\0\17o\bp\0\0\0\aq\13q\0
+x-\0î   \0\0\17o\bx\0\0\0\aq\13q\0\ 3x6\0î     \0\0\13o
+\aq\ 5\80\0\0\0u\84\0q\vtype.func(interface {})\0-\0î        \0\0\13o\b\vq\13q\0\16x-\0î \0\0\17o\b\b\0\0\0\vq\17q\0\10\0\0\0\vx-\0î \0\0\17o\b\10\0\0\0\vq\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\vq\ 5\86u\8e\1au-\0î    \0\0\17o\ 1\1c\0\0\0\vq\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\vq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\vq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\vq\ 5\13\0\0\0u\84\0q\fruntime.algarray\0-\0î       \0\0\17o\b \0\0\0\vq\17q\0@\ 1\0\0\fx\84\0q\rgo.string."func(interface {})"\0-\0î      \0\0\17o\b(\0\0\0\vq\13q\0\rx-\0î     \0\0\13o\b\rq\17q\0\f\0\0\0\rx-\0î     \0\0\17o\ 4\b\0\0\0\rq\ 5\12\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\rq func(int-\0î \0\0\17o\b\14\0\0\0\rq erface {-\0î \0\0\17o\ 2\1c\0\0\0\rq })\0\0\0\0\0\0-\0î \0\0\17o\ 1\1e\0\0\0\rq\ 1u6\0î        \0\0\13o
+\rq\ 5 \0\0\0u\84\0q\ eweak.type.*func(interface {})\0-\0î  \0\0\17o\b8\0\0\0\vq\13q\0\ ex-\0î     \0\0\17o\ 1@\0\0\0\vq\ 1u-\0î        \0\0\17o\bH\0\0\0\vq\17q\0h\0\0\0\vx-\0î \0\0\17o\ 4P\0\0\0\vq\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0\vq\ 5\ 1\0\0\0u-\0î    \0\0\17o\bX\0\0\0\vq\17q\0p\0\0\0\vx-\0î \0\0\17o\ 4`\0\0\0\vq\ 1u-\0î        \0\0\17o\ 4d\0\0\0\vq\ 1u-\0î        \0\0\17o\bh\0\0\0\vq\13q\0\ 3x6\0î     \0\0\13o
+\vq\ 5p\0\0\0u\84\0q\ ftype.method(*"".fastaBuffer) func(string)\0-\0î      \0\0\13o\b\ fq\13q\0\16x-\0î \0\0\17o\b\b\0\0\0\ fq\17q\0\10\0\0\0\ fx-\0î \0\0\17o\b\10\0\0\0\ fq\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\ fqE\8aǹ¾\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0\ fq\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\ fq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\ fq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\ fq\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0\ fq\17q\0@\ 1\0\0\fx\84\0q\10go.string."method(*go1.fastaBuffer) func(string)"\0-\0î   \0\0\17o\b(\0\0\0\ fq\13q\0\10x-\0î     \0\0\13o\b\10q\17q\0\f\0\0\0\10x-\0î     \0\0\17o\ 4\b\0\0\0\10q\ 5%\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\10q method(*-\0î \0\0\17o\b\14\0\0\0\10q go1.fast-\0î \0\0\17o\b\1c\0\0\0\10q aBuffer)-\0î \0\0\17o\b$\0\0\0\10q  func(st-\0î \0\0\17o\ 5,\0\0\0\10q ring)\0\0\0-\0î \0\0\17o\ 11\0\0\0\10q\ 1u6\0î        \0\0\13o
+\10q\ 58\0\0\0u\84\0q\11weak.type.*method(*"".fastaBuffer) func(string)\0-\0î        \0\0\17o\b8\0\0\0\ fq\13q\0\11x-\0î     \0\0\17o\ 1@\0\0\0\ fq\ 1u-\0î        \0\0\17o\bH\0\0\0\ fq\17q\0h\0\0\0\ fx-\0î \0\0\17o\ 4P\0\0\0\ fq\ 5\ 2\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0\ fq\ 5\ 2\0\0\0u-\0î    \0\0\17o\bX\0\0\0\ fq\17q\0x\0\0\0\ fx-\0î \0\0\17o\ 4`\0\0\0\ fq\ 1u-\0î        \0\0\17o\ 4d\0\0\0\ fq\ 1u-\0î        \0\0\17o\bh\0\0\0\ fq\13q\0,x-\0î     \0\0\17o\bp\0\0\0\ fq\13q\0
+x6\0î   \0\0\13o
+\ fq\ 5x\0\0\0u\84\0q\12type.func([]uint8, string) int\0-\0î \0\0\13o\b\12q\13q\0\16x-\0î \0\0\17o\b\b\0\0\0\12q\17q\0\10\0\0\0\12x-\0î \0\0\17o\b\10\0\0\0\12q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\12qE\9a©ÍÉ\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0\12q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\12q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\12q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\12q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0\12q\17q\0@\ 1\0\0\fx\84\0q\13go.string."func([]uint8, string) int"\0-\0î       \0\0\17o\b(\0\0\0\12q\13q\0\13x-\0î     \0\0\13o\b\13q\17q\0\f\0\0\0\13x-\0î     \0\0\17o\ 4\b\0\0\0\13q\ 5\19\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\13q func([]u-\0î \0\0\17o\b\14\0\0\0\13q int8, st-\0î \0\0\17o\b\1c\0\0\0\13q ring) in-\0î \0\0\17o\ 1$\0\0\0\13q t\0\0\0\0\0\0\0-\0î \0\0\17o\ 1%\0\0\0\13q\ 1u6\0î        \0\0\13o
+\13q\ 5(\0\0\0u\84\0q\14weak.type.*func([]uint8, string) int\0-\0î   \0\0\17o\b8\0\0\0\12q\13q\0\14x-\0î     \0\0\17o\ 1@\0\0\0\12q\ 1u-\0î        \0\0\17o\bH\0\0\0\12q\17q\0h\0\0\0\12x-\0î \0\0\17o\ 4P\0\0\0\12q\ 5\ 2\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0\12q\ 5\ 2\0\0\0u-\0î    \0\0\17o\bX\0\0\0\12q\17q\0x\0\0\0\12x-\0î \0\0\17o\ 4`\0\0\0\12q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4d\0\0\0\12q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bh\0\0\0\12q\13q\0\ex-\0î     \0\0\17o\bp\0\0\0\12q\13q\0
+x-\0î   \0\0\17o\bx\0\0\0\12q\13q\0-x6\0î     \0\0\13o
+\12q\ 5\80\0\0\0u\84\0q\15type.method(*"".fastaBuffer) func(int) []uint8\0-\0î \0\0\13o\b\15q\13q\0\16x-\0î \0\0\17o\b\b\0\0\0\15q\17q\0\10\0\0\0\15x-\0î \0\0\17o\b\10\0\0\0\15q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\15q\ 5ýz~:u-\0î    \0\0\17o\ 1\1c\0\0\0\15q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\15q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\15q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\15q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0\15q\17q\0@\ 1\0\0\fx\84\0q\16go.string."method(*go1.fastaBuffer) func(int) []uint8"\0-\0î      \0\0\17o\b(\0\0\0\15q\13q\0\16x-\0î     \0\0\13o\b\16q\17q\0\f\0\0\0\16x-\0î     \0\0\17o\ 4\b\0\0\0\16q\ 5*\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\16q method(*-\0î \0\0\17o\b\14\0\0\0\16q go1.fast-\0î \0\0\17o\b\1c\0\0\0\16q aBuffer)-\0î \0\0\17o\b$\0\0\0\16q  func(in-\0î \0\0\17o\b,\0\0\0\16q t) []uin-\0î \0\0\17o\ 24\0\0\0\16q t8\0\0\0\0\0\0-\0î \0\0\17o\ 16\0\0\0\16q\ 1u6\0î        \0\0\13o
+\16q\ 58\0\0\0u\84\0q\17weak.type.*method(*"".fastaBuffer) func(int) []uint8\0-\0î   \0\0\17o\b8\0\0\0\15q\13q\0\17x-\0î     \0\0\17o\ 1@\0\0\0\15q\ 1u-\0î        \0\0\17o\bH\0\0\0\15q\17q\0h\0\0\0\15x-\0î \0\0\17o\ 4P\0\0\0\15q\ 5\ 2\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0\15q\ 5\ 2\0\0\0u-\0î    \0\0\17o\bX\0\0\0\15q\17q\0x\0\0\0\15x-\0î \0\0\17o\ 4`\0\0\0\15q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4d\0\0\0\15q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bh\0\0\0\15q\13q\0,x-\0î     \0\0\17o\bp\0\0\0\15q\13q\0-x-\0î     \0\0\17o\bx\0\0\0\15q\13q\0\ex6\0î     \0\0\13o
+\15q\ 5\80\0\0\0u\84\0q\18type.func(*uint8, []uint8, []uint8) []uint8\0\84\0q\19type.*runtime.FuncType\0-\0î \0\0\13o\b\18q\13q\0\19x-\0î \0\0\17o\b\b\0\0\0\18q\17q\0\10\0\0\0\18x-\0î \0\0\17o\b\10\0\0\0\18q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\18q\ 5³\82p,u-\0î    \0\0\17o\ 1\1c\0\0\0\18q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\18q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\18q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\18q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0\18q\17q\0@\ 1\0\0\fx\84\0q\1ago.string."func(*uint8, []uint8, []uint8) []uint8"\0-\0î  \0\0\17o\b(\0\0\0\18q\13q\0\1ax-\0î     \0\0\13o\b\1aq\17q\0\f\0\0\0\1ax-\0î     \0\0\17o\ 4\b\0\0\0\1aq\ 5&\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\1aq func(*ui-\0î \0\0\17o\b\14\0\0\0\1aq nt8, []u-\0î \0\0\17o\b\1c\0\0\0\1aq int8, []-\0î \0\0\17o\b$\0\0\0\1aq uint8) [-\0î \0\0\17o\ 6,\0\0\0\1aq ]uint8\0\0-\0î \0\0\17o\ 12\0\0\0\1aq\ 1u6\0î        \0\0\13o
+\1aq\ 58\0\0\0u\84\0q\eweak.type.*func(*uint8, []uint8, []uint8) []uint8\0-\0î      \0\0\17o\b8\0\0\0\18q\13q\0\ex-\0î     \0\0\17o\ 1@\0\0\0\18q\ 1u-\0î        \0\0\17o\bH\0\0\0\18q\17q\0h\0\0\0\18x-\0î \0\0\17o\ 4P\0\0\0\18q\ 5\ 3\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0\18q\ 5\ 3\0\0\0u-\0î    \0\0\17o\bX\0\0\0\18q\17q\0\80\0\0\0\18x-\0î \0\0\17o\ 4`\0\0\0\18q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4d\0\0\0\18q\ 5\ 1\0\0\0u\84\0q\1ctype.*uint8\0-\0î    \0\0\17o\bh\0\0\0\18q\13q\0\1cx\84\0q\1dtype.[]uint8\0-\0î    \0\0\17o\bp\0\0\0\18q\13q\0\1dx-\0î     \0\0\17o\bx\0\0\0\18q\13q\0\1dx-\0î     \0\0\17o\b\80\0\0\0\18q\13q\0\1dx6\0î     \0\0\13o
+\18q\ 5\88\0\0\0u\84\0q\1etype.func([]uint8, []uint8, uint32) int\0-\0î        \0\0\13o\b\1eq\13q\0\19x-\0î \0\0\17o\b\b\0\0\0\1eq\17q\0\10\0\0\0\1ex-\0î \0\0\17o\b\10\0\0\0\1eq\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\1eqEJôv¢\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0\1eq\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\1eq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\1eq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\1eq\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0\1eq\17q\0@\ 1\0\0\fx\84\0q\1fgo.string."func([]uint8, []uint8, uint32) int"\0-\0î      \0\0\17o\b(\0\0\0\1eq\13q\0\1fx-\0î     \0\0\13o\b\1fq\17q\0\f\0\0\0\1fx-\0î     \0\0\17o\ 4\b\0\0\0\1fq\ 5"\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\1fq func([]u-\0î \0\0\17o\b\14\0\0\0\1fq int8, []-\0î \0\0\17o\b\1c\0\0\0\1fq uint8, u-\0î \0\0\17o\b$\0\0\0\1fq int32) i-\0î \0\0\17o\ 2,\0\0\0\1fq nt\0\0\0\0\0\0-\0î \0\0\17o\ 1.\0\0\0\1fq\ 1u6\0î        \0\0\13o
+\1fq\ 50\0\0\0u\84\0q weak.type.*func([]uint8, []uint8, uint32) int\0-\0î  \0\0\17o\b8\0\0\0\1eq\13q\0 x-\0î     \0\0\17o\ 1@\0\0\0\1eq\ 1u-\0î        \0\0\17o\bH\0\0\0\1eq\17q\0h\0\0\0\1ex-\0î \0\0\17o\ 4P\0\0\0\1eq\ 5\ 3\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0\1eq\ 5\ 3\0\0\0u-\0î    \0\0\17o\bX\0\0\0\1eq\17q\0\80\0\0\0\1ex-\0î \0\0\17o\ 4`\0\0\0\1eq\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4d\0\0\0\1eq\ 5\ 1\0\0\0u-\0î    \0\0\17o\bh\0\0\0\1eq\13q\0\1dx-\0î     \0\0\17o\bp\0\0\0\1eq\13q\0\1dx\84\0q!type.uint32\0-\0î     \0\0\17o\bx\0\0\0\1eq\13q\0!x-\0î     \0\0\17o\b\80\0\0\0\1eq\13q\0-x6\0î     \0\0\13o
+\1eq\ 5\88\0\0\0u\84\0q"type.[]*"".fastaAcid\0\84\0q#type.*runtime.SliceType\0-\0î       \0\0\13o\b"q\13q\0#x-\0î \0\0\17o\b\b\0\0\0"q\17q\0\10\0\0\0"x-\0î \0\0\17o\b\10\0\0\0"q\ 5\10\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0"q\ 5\14"t\1du-\0î    \0\0\17o\ 1\1c\0\0\0"q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0"q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0"q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0"q\ 5\17\0\0\0u-\0î    \0\0\17o\b \0\0\0"q\17q\0à\ 1\0\0\fx\84\0q$go.string."[]*go1.fastaAcid"\0-\0î        \0\0\17o\b(\0\0\0"q\13q\0$x-\0î     \0\0\13o\b$q\17q\0\f\0\0\0$x-\0î     \0\0\17o\ 4\b\0\0\0$q\ 5\10\0\0\0u-\0î    \0\0\17o\b\f\0\0\0$q []*go1.f-\0î \0\0\17o\b\14\0\0\0$q astaAcid-\0î \0\0\17o\ 1\1c\0\0\0$q\ 1u6\0î        \0\0\13o
+$q\ 5 \0\0\0u\84\0q%weak.type.*[]*"".fastaAcid\0-\0î     \0\0\17o\b8\0\0\0"q\13q\0%x\84\0q&type.*"".fastaAcid\0-\0î      \0\0\17o\b@\0\0\0"q\13q\0&x6\0î     \0\0\13o
+"q\ 5H\0\0\0u\84\0q'type.[4096]*"".fastaAcid\0\84\0q(type.*runtime.ArrayType\0-\0î   \0\0\13o\b'q\13q\0(x-\0î \0\0\17o\b\b\0\0\0'q\17q\0\10\0\0\0'x-\0î \0\0\17o\b\10\0\0\0'q\ 5\0\80\0\0u-\0î    \0\0\17o\ 4\18\0\0\0'q\ 5Ý"ÉIu-\0î    \0\0\17o\ 1\1c\0\0\0'q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0'q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0'q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0'q\ 5\11\0\0\0u-\0î    \0\0\17o\b \0\0\0'q\13q\0\fx\84\0q)go.string."[4096]*go1.fastaAcid"\0-\0î        \0\0\17o\b(\0\0\0'q\13q\0)x-\0î     \0\0\13o\b)q\17q\0\f\0\0\0)x-\0î     \0\0\17o\ 4\b\0\0\0)q\ 5\14\0\0\0u-\0î    \0\0\17o\b\f\0\0\0)q [4096]*g-\0î \0\0\17o\b\14\0\0\0)q o1.fasta-\0î \0\0\17o\ 4\1c\0\0\0)q Acid\0\0\0\0-\0î \0\0\17o\ 1 \0\0\0)q\ 1u6\0î        \0\0\13o
+)q\ 5(\0\0\0u\84\0q*weak.type.*[4096]*"".fastaAcid\0-\0î \0\0\17o\b8\0\0\0'q\13q\0*x-\0î     \0\0\17o\b@\0\0\0'q\13q\0&x-\0î     \0\0\17o\bH\0\0\0'q\13q\0"x-\0î     \0\0\17o\bP\0\0\0'q\ 5\0\10\0\0u6\0î    \0\0\13o
+'q\ 5X\0\0\0u\84\0q+type.*[4096]*"".fastaAcid\0\84\0q,type.*runtime.PtrType\0-\0î    \0\0\13o\b+q\13q\0,x-\0î \0\0\17o\b\b\0\0\0+q\17q\0\10\0\0\0+x-\0î \0\0\17o\b\10\0\0\0+q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0+q\ 5øe  'u-\0î   \0\0\17o\ 1\1c\0\0\0+q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0+q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0+q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0+q\ 5\16\0\0\0u-\0î    \0\0\17o\b \0\0\0+q\17q\0\80\0\0\0\fx\84\0q-go.string."*[4096]*go1.fastaAcid"\0-\0î   \0\0\17o\b(\0\0\0+q\13q\0-x-\0î     \0\0\13o\b-q\17q\0\f\0\0\0-x-\0î     \0\0\17o\ 4\b\0\0\0-q\ 5\15\0\0\0u-\0î    \0\0\17o\b\f\0\0\0-q *[4096]*-\0î \0\0\17o\b\14\0\0\0-q go1.fast-\0î \0\0\17o\ 5\1c\0\0\0-q aAcid\0\0\0-\0î \0\0\17o\ 1!\0\0\0-q\ 1u6\0î        \0\0\13o
+-q\ 5(\0\0\0u\84\0q.weak.type.**[4096]*"".fastaAcid\0-\0î        \0\0\17o\b8\0\0\0+q\13q\0.x-\0î     \0\0\17o\b@\0\0\0+q\13q\0'x6\0î     \0\0\13o
++q\ 5H\0\0\0u\84\0q/type.func([]"".fastaAcid) *[4096]*"".fastaAcid\0-\0î \0\0\13o\b/q\13q\0\19x-\0î \0\0\17o\b\b\0\0\0/q\17q\0\10\0\0\0/x-\0î \0\0\17o\b\10\0\0\0/q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0/q\ 5\80b/:u-\0î    \0\0\17o\ 1\1c\0\0\0/q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0/q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0/q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0/q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0/q\17q\0@\ 1\0\0\fx\84\0q0go.string."func([]go1.fastaAcid) *[4096]*go1.fastaAcid"\0-\0î     \0\0\17o\b(\0\0\0/q\13q\00x-\0î     \0\0\13o\b0q\17q\0\f\0\0\00x-\0î     \0\0\17o\ 4\b\0\0\00q\ 5+\0\0\0u-\0î    \0\0\17o\b\f\0\0\00q func([]g-\0î \0\0\17o\b\14\0\0\00q o1.fasta-\0î \0\0\17o\b\1c\0\0\00q Acid) *[-\0î \0\0\17o\b$\0\0\00q 4096]*go-\0î \0\0\17o\b,\0\0\00q 1.fastaA-\0î \0\0\17o\ 34\0\0\00q cid\0\0\0\0\0-\0î \0\0\17o\ 17\0\0\00q\ 1u6\0î        \0\0\13o
+0q\ 58\0\0\0u\84\0q1weak.type.*func([]"".fastaAcid) *[4096]*"".fastaAcid\0-\0î   \0\0\17o\b8\0\0\0/q\13q\01x-\0î     \0\0\17o\ 1@\0\0\0/q\ 1u-\0î        \0\0\17o\bH\0\0\0/q\17q\0h\0\0\0/x-\0î \0\0\17o\ 4P\0\0\0/q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0/q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bX\0\0\0/q\17q\0p\0\0\0/x-\0î \0\0\17o\ 4`\0\0\0/q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4d\0\0\0/q\ 5\ 1\0\0\0u\84\0q\ 1type.[]"".fastaAcid\0-\0î    \0\0\17o\bh\0\0\0/q\13q\0\ 1x-\0î     \0\0\17o\bp\0\0\0/q\13q\0+x6\0î     \0\0\13o
+/q\ 5x\0\0\0u\84\0q\ 2type.func(*uint8) *[4096]*"".fastaAcid\0-\0î \0\0\13o\b\ 2q\13q\0\19x-\0î \0\0\17o\b\b\0\0\0\ 2q\17q\0\10\0\0\0\ 2x-\0î \0\0\17o\b\10\0\0\0\ 2q\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\ 2qE<\ f\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0\ 2q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\ 2q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\ 2q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\ 2q\ 5\13\0\0\0u-\0î    \0\0\17o\b \0\0\0\ 2q\17q\0@\ 1\0\0\fx\84\0q\ 3go.string."func(*uint8) *[4096]*go1.fastaAcid"\0-\0î      \0\0\17o\b(\0\0\0\ 2q\13q\0\ 3x-\0î     \0\0\13o\b\ 3q\17q\0\f\0\0\0\ 3x-\0î     \0\0\17o\ 4\b\0\0\0\ 3q\ 5"\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\ 3q func(*ui-\0î \0\0\17o\b\14\0\0\0\ 3q nt8) *[4-\0î \0\0\17o\b\1c\0\0\0\ 3q 096]*go1-\0î \0\0\17o\b$\0\0\0\ 3q .fastaAc-\0î \0\0\17o\ 2,\0\0\0\ 3q id\0\0\0\0\0\0-\0î \0\0\17o\ 1.\0\0\0\ 3q\ 1u6\0î        \0\0\13o
+\ 3q\ 50\0\0\0u\84\0q\ 4weak.type.*func(*uint8) *[4096]*"".fastaAcid\0-\0î   \0\0\17o\b8\0\0\0\ 2q\13q\0\ 4x-\0î     \0\0\17o\ 1@\0\0\0\ 2q\ 1u-\0î        \0\0\17o\bH\0\0\0\ 2q\17q\0h\0\0\0\ 2x-\0î \0\0\17o\ 4P\0\0\0\ 2q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4T\0\0\0\ 2q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bX\0\0\0\ 2q\17q\0p\0\0\0\ 2x-\0î \0\0\17o\ 4`\0\0\0\ 2q\ 5\ 1\0\0\0u-\0î    \0\0\17o\ 4d\0\0\0\ 2q\ 5\ 1\0\0\0u-\0î    \0\0\17o\bh\0\0\0\ 2q\13q\0\1cx-\0î     \0\0\17o\bp\0\0\0\ 2q\13q\0+x6\0î     \0\0\13o
+\ 2q\ 5x\0\0\0u\84\0q\ 5type.[]*"".JSONNode\0-\0î    \0\0\13o\b\ 5q\13q\0#x-\0î \0\0\17o\b\b\0\0\0\ 5q\17q\0\10\0\0\0\ 5x-\0î \0\0\17o\b\10\0\0\0\ 5q\ 5\10\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\ 5qEX@û\86\0\0\0\0u-\0î        \0\0\17o\ 1\1c\0\0\0\ 5q\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\ 5q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\ 5q\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\ 5q\ 5\17\0\0\0u-\0î    \0\0\17o\b \0\0\0\ 5q\17q\0à\ 1\0\0\fx\84\0q\ 6go.string."[]*go1.JSONNode"\0-\0î \0\0\17o\b(\0\0\0\ 5q\13q\0\ 6x-\0î     \0\0\13o\b\ 6q\17q\0\f\0\0\0\ 6x-\0î     \0\0\17o\ 4\b\0\0\0\ 6q\ 5\ f\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\ 6q []*go1.J-\0î \0\0\17o\a\14\0\0\0\ 6q SONNode\0-\0î \0\0\17o\ 1\e\0\0\0\ 6q\ 1u6\0î        \0\0\13o
+\ 6q\ 5 \0\0\0u\84\0q\aweak.type.*[]*"".JSONNode\0-\0î      \0\0\17o\b8\0\0\0\ 5q\13q\0\ax\84\0q\btype.*"".JSONNode\0-\0î       \0\0\17o\b@\0\0\0\ 5q\13q\0\bx6\0î     \0\0\13o
+\ 5q\ 5H\0\0\0u\84\0q    type."".JSONNode\0\84\0q
+type.*runtime.StructType\0-\0î   \0\0\13o\b   q\13q\0
+x-\0î   \0\0\17o\b\b\0\0\0       q\17q\0\10\0\0\0        x-\0î    \0\0\17o\b\10\0\0\0       q\ 5H\0\0\0u-\0î      \0\0\17o\ 4\18\0\0\0       q\ 5\9aÝv,u-\0î      \0\0\17o\ 1\1c\0\0\0       q\ 1u-\0î  \0\0\17o\ 1\1d\0\0\0       q\ 5\b\0\0\0u-\0î      \0\0\17o\ 1\1e\0\0\0       q\ 5\b\0\0\0u-\0î      \0\0\17o\ 1\1f\0\0\0       q\ 5\19\0\0\0u-\0î      \0\0\17o\b \0\0\0       q\17q\0À\0\0\0\fx\84\0q\vgo.string."go1.JSONNode"\0-\0î      \0\0\17o\b(\0\0\0       q\13q\0\vx-\0î       \0\0\13o\b\vq\17q\0\f\0\0\0\vx-\0î     \0\0\17o\ 4\b\0\0\0\vq\ 5\f\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\vq go1.JSON-\0î \0\0\17o\ 4\14\0\0\0\vq Node\0\0\0\0-\0î \0\0\17o\ 1\18\0\0\0\vq\ 1u6\0î        \0\0\13o
+\vq\ 5 \0\0\0u-\0î    \0\0\17o\b8\0\0\0       q\13q\0\bx-\0î       \0\0\17o\b@\0\0\0       q\17q\0P\0\0\0        x-\0î    \0\0\17o\ 4H\0\0\0       q\ 5\a\0\0\0u-\0î      \0\0\17o\ 4L\0\0\0       q\ 5\a\0\0\0u\84\0q\fgo.string."Name"\0-\0î \0\0\17o\bP\0\0\0       q\13q\0\fx-\0î       \0\0\13o\b\fq\17q\0\f\0\0\0\fx-\0î     \0\0\17o\ 4\b\0\0\0\fq\ 5\ 4\0\0\0u-\0î    \0\0\17o\ 4\f\0\0\0\fq Name\0\0\0\0-\0î \0\0\17o\ 1\10\0\0\0\fq\ 1u6\0î        \0\0\13o
+\fq\ 5\18\0\0\0u-\0î    \0\0\17o\bX\0\0\0       q\ 1u\84\0q\rtype.string\0-\0î  \0\0\17o\b`\0\0\0       q\13q\0\rx\84\0q\ ego.string."json:\"name\""\0-\0î \0\0\17o\bh\0\0\0       q\13q\0\ ex-\0î       \0\0\13o\b\ eq\17q\0\f\0\0\0\ ex-\0î     \0\0\17o\ 4\b\0\0\0\ eq\ 5\v\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\ eq json:"na-\0î \0\0\17o\ 3\14\0\0\0\ eq me"\0\0\0\0\0-\0î \0\0\17o\ 1\17\0\0\0\ eq\ 1u6\0î        \0\0\13o
+\ eq\ 5\18\0\0\0u-\0î    \0\0\17o\bp\0\0\0       q\ 1u\84\0q\ fgo.string."Kids"\0-\0î     \0\0\17o\bx\0\0\0       q\13q\0\ fx-\0î       \0\0\13o\b\ fq\17q\0\f\0\0\0\ fx-\0î     \0\0\17o\ 4\b\0\0\0\ fq\ 5\ 4\0\0\0u-\0î    \0\0\17o\ 4\f\0\0\0\ fq Kids\0\0\0\0-\0î \0\0\17o\ 1\10\0\0\0\ fq\ 1u6\0î        \0\0\13o
+\ fq\ 5\18\0\0\0u-\0î    \0\0\17o\b\80\0\0\0       q\ 1u-\0î  \0\0\17o\b\88\0\0\0       q\13q\0\ 5x\84\0q\10go.string."json:\"kids\""\0-\0î \0\0\17o\b\90\0\0\0       q\13q\0\10x-\0î       \0\0\13o\b\10q\17q\0\f\0\0\0\10x-\0î     \0\0\17o\ 4\b\0\0\0\10q\ 5\v\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\10q json:"ki-\0î \0\0\17o\ 3\14\0\0\0\10q ds"\0\0\0\0\0-\0î \0\0\17o\ 1\17\0\0\0\10q\ 1u6\0î        \0\0\13o
+\10q\ 5\18\0\0\0u-\0î    \0\0\17o\b\98\0\0\0       q\ 5\10\0\0\0u\84\0q\11go.string."CLWeight"\0-\0î     \0\0\17o\b \0\0\0       q\13q\0\11x-\0î       \0\0\13o\b\11q\17q\0\f\0\0\0\11x-\0î     \0\0\17o\ 4\b\0\0\0\11q\ 5\b\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\11q CLWeight-\0î \0\0\17o\ 1\14\0\0\0\11q\ 1u6\0î        \0\0\13o
+\11q\ 5\18\0\0\0u-\0î    \0\0\17o\b¨\0\0\0       q\ 1u\84\0q\12type.float64\0-\0î \0\0\17o\b°\0\0\0       q\13q\0\12x\84\0q\13go.string."json:\"cl_weight\""\0-\0î    \0\0\17o\b¸\0\0\0       q\13q\0\13x-\0î       \0\0\13o\b\13q\17q\0\f\0\0\0\13x-\0î     \0\0\17o\ 4\b\0\0\0\13q\ 5\10\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\13q json:"cl-\0î \0\0\17o\b\14\0\0\0\13q _weight"-\0î \0\0\17o\ 1\1c\0\0\0\13q\ 1u6\0î        \0\0\13o
+\13q\ 5 \0\0\0u-\0î    \0\0\17o\bÀ\0\0\0       q\ 5 \0\0\0u\84\0q\14go.string."Touches"\0-\0î      \0\0\17o\bÈ\0\0\0       q\13q\0\14x-\0î       \0\0\13o\b\14q\17q\0\f\0\0\0\14x-\0î     \0\0\17o\ 4\b\0\0\0\14q\ 5\a\0\0\0u-\0î    \0\0\17o\a\f\0\0\0\14q Touches\0-\0î \0\0\17o\ 1\13\0\0\0\14q\ 1u6\0î        \0\0\13o
+\14q\ 5\18\0\0\0u-\0î    \0\0\17o\bÐ\0\0\0       q\ 1u\84\0q\15type.int\0-\0î     \0\0\17o\bØ\0\0\0       q\13q\0\15x\84\0q\16go.string."json:\"touches\""\0-\0î      \0\0\17o\bà\0\0\0       q\13q\0\16x-\0î       \0\0\13o\b\16q\17q\0\f\0\0\0\16x-\0î     \0\0\17o\ 4\b\0\0\0\16q\ 5\ e\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\16q json:"to-\0î \0\0\17o\ 6\14\0\0\0\16q uches"\0\0-\0î \0\0\17o\ 1\1a\0\0\0\16q\ 1u6\0î        \0\0\13o
+\16q\ 5 \0\0\0u-\0î    \0\0\17o\bè\0\0\0       q\ 5(\0\0\0u\84\0q\17go.string."MinT"\0-\0î \0\0\17o\bð\0\0\0       q\13q\0\17x-\0î       \0\0\13o\b\17q\17q\0\f\0\0\0\17x-\0î     \0\0\17o\ 4\b\0\0\0\17q\ 5\ 4\0\0\0u-\0î    \0\0\17o\ 4\f\0\0\0\17q MinT\0\0\0\0-\0î \0\0\17o\ 1\10\0\0\0\17q\ 1u6\0î        \0\0\13o
+\17q\ 5\18\0\0\0u-\0î    \0\0\17o\bø\0\0\0       q\ 1u\84\0q\18type.int64\0-\0î   \0\0\17o\b\0\ 1\0\0       q\13q\0\18x\84\0q\19go.string."json:\"min_t\""\0-\0î        \0\0\17o\b\b\ 1\0\0       q\13q\0\19x-\0î       \0\0\13o\b\19q\17q\0\f\0\0\0\19x-\0î     \0\0\17o\ 4\b\0\0\0\19q\ 5\f\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\19q json:"mi-\0î \0\0\17o\ 4\14\0\0\0\19q n_t"\0\0\0\0-\0î \0\0\17o\ 1\18\0\0\0\19q\ 1u6\0î        \0\0\13o
+\19q\ 5 \0\0\0u-\0î    \0\0\17o\b\10\ 1\0\0       q\ 50\0\0\0u\84\0q\1ago.string."MaxT"\0-\0î \0\0\17o\b\18\ 1\0\0       q\13q\0\1ax-\0î       \0\0\13o\b\1aq\17q\0\f\0\0\0\1ax-\0î     \0\0\17o\ 4\b\0\0\0\1aq\ 5\ 4\0\0\0u-\0î    \0\0\17o\ 4\f\0\0\0\1aq MaxT\0\0\0\0-\0î \0\0\17o\ 1\10\0\0\0\1aq\ 1u6\0î        \0\0\13o
+\1aq\ 5\18\0\0\0u-\0î    \0\0\17o\b \ 1\0\0       q\ 1u-\0î  \0\0\17o\b(\ 1\0\0       q\13q\0\18x\84\0q\ego.string."json:\"max_t\""\0-\0î        \0\0\17o\b0\ 1\0\0       q\13q\0\ex-\0î       \0\0\13o\b\eq\17q\0\f\0\0\0\ex-\0î     \0\0\17o\ 4\b\0\0\0\eq\ 5\f\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\eq json:"ma-\0î \0\0\17o\ 4\14\0\0\0\eq x_t"\0\0\0\0-\0î \0\0\17o\ 1\18\0\0\0\eq\ 1u6\0î        \0\0\13o
+\eq\ 5 \0\0\0u-\0î    \0\0\17o\b8\ 1\0\0       q\ 58\0\0\0u\84\0q\1cgo.string."MeanT"\0-\0î        \0\0\17o\b@\ 1\0\0       q\13q\0\1cx-\0î       \0\0\13o\b\1cq\17q\0\f\0\0\0\1cx-\0î     \0\0\17o\ 4\b\0\0\0\1cq\ 5\ 5\0\0\0u-\0î    \0\0\17o\ 5\f\0\0\0\1cq MeanT\0\0\0-\0î \0\0\17o\ 1\11\0\0\0\1cq\ 1u6\0î        \0\0\13o
+\1cq\ 5\18\0\0\0u-\0î    \0\0\17o\bH\ 1\0\0       q\ 1u-\0î  \0\0\17o\bP\ 1\0\0       q\13q\0\18x\84\0q\1dgo.string."json:\"mean_t\""\0-\0î       \0\0\17o\bX\ 1\0\0       q\13q\0\1dx-\0î       \0\0\13o\b\1dq\17q\0\f\0\0\0\1dx-\0î     \0\0\17o\ 4\b\0\0\0\1dq\ 5\r\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\1dq json:"me-\0î \0\0\17o\ 5\14\0\0\0\1dq an_t"\0\0\0-\0î \0\0\17o\ 1\19\0\0\0\1dq\ 1u6\0î        \0\0\13o
+\1dq\ 5 \0\0\0u-\0î    \0\0\17o\b`\ 1\0\0       q\ 5@\0\0\0u-\0î      \0\0\17o\b0\0\0\0       q\17q\0h\ 1\0\0        x\84\0q\1ego.string."JSONNode"\0-\0î   \0\0\17o\bh\ 1\0\0       q\13q\0\1ex-\0î       \0\0\13o\b\1eq\17q\0\f\0\0\0\1ex-\0î     \0\0\17o\ 4\b\0\0\0\1eq\ 5\b\0\0\0u-\0î    \0\0\17o\b\f\0\0\0\1eq JSONNode-\0î \0\0\17o\ 1\14\0\0\0\1eq\ 1u6\0î        \0\0\13o
+\1eq\ 5\18\0\0\0u\84\0q\1fgo.importpath."".\0-\0î      \0\0\17o\bp\ 1\0\0       q\13q\0\1fx-\0î       \0\0\17o\bx\ 1\0\0       q\17q\0\88\ 1\0\0        x-\0î    \0\0\17o\ 4\80\ 1\0\0       q\ 1u-\0î  \0\0\17o\ 4\84\ 1\0\0       q\ 1u6\0î  \0\0\13o\b   q\ 5\88\ 1\0\0u-\0î      \0\0\13o\b\bq\13q\0,x-\0î \0\0\17o\b\b\0\0\0\bq\17q\0\10\0\0\0\bx-\0î \0\0\17o\b\10\0\0\0\bq\ 5\b\0\0\0u-\0î    \0\0\17o\ 4\18\0\0\0\bq\ 5\92Ì/\ru-\0î    \0\0\17o\ 1\1c\0\0\0\bq\ 1u-\0î        \0\0\17o\ 1\1d\0\0\0\bq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1e\0\0\0\bq\ 5\b\0\0\0u-\0î    \0\0\17o\ 1\1f\0\0\0\bq\ 5\16\0\0\0u\84\0q runtime.algarray\0-\0î       \0\0\17o\b \0\0\0\bq\17q\0\80\0\0\0 x\84\0q!go.string."*go1.JSONNode"\0-\0î   \0\0\17o\b(\0\0\0\bq\13q\0!x-\0î     \0\0\13o\b!q\17q\0\f\0\0\0!x-\0î     \0\0\17o\ 4\b\0\0\0!q\ 5\r\0\0\0u-\0î    \0\0\17o\b\f\0\0\0!q *go1.JSO-\0î \0\0\17o\ 5\14\0\0\0!q NNode\0\0\0-\0î \0\0\17o\ 1\19\0\0\0!q\ 1u6\0î        \0\0\13o
+!q\ 5 \0\0\0u\84\0q"weak.type.**"".JSONNode\0-\0î        \0\0\17o\b8\0\0\0\bq\13q\0"x-\0î     \0\0\17o\b@\0\0\0\bq\13q\0  x6\0î    \0\0\13o\b\bq\ 5H\0\0\0u\84\0q#type..alg."".JSONResponse\0\84\0q$type..hash."".JSONResponse\0-\0\ 1\0\0\0\13o\b#q\13q\0$x\84\0q%type..eq."".JSONResponse\0-\0\ 1\0\0\0\17o\b\b\0\0\0#q\13q\0%x\84\0q&runtime.memprint\0-\0\ 1\0\0\0\17o\b\10\0\0\0#q\13q\0&x\84\0q'runtime.memcopy\0-\0\ 1\0\0\0\17o\b\18\0\0\0#q\13q\0'x6\0\ 1\0\0\0\13o
+#q\ 5 \0\0\0u\84\0q(type."".JSONResponse\0-\0\ 1\0\0\0\13o\b(q\13q\0
+x-\0\ 1\0\0\0\17o\b\b\0\0\0(q\17q\0\10\0\0\0(x-\0\ 1\0\0\0\17o\b\10\0\0\0(q\ 5\18\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0(q\ 5Þ\9fÑ\bu-\0\ 1\0\0\0\17o\ 1\1c\0\0\0(q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0(q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0(q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0(q\ 5\19\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0(q\13q\0#x\84\0q)go.string."go1.JSONResponse"\0-\0\ 1\0\0\0\17o\b(\0\0\0(q\13q\0)x-\0\ 1\0\0\0\13o\b)q\17q\0\f\0\0\0)x-\0\ 1\0\0\0\17o\ 4\b\0\0\0)q\ 5\10\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0)q go1.JSON-\0\ 1\0\0\0\17o\b\14\0\0\0)q Response-\0\ 1\0\0\0\17o\ 1\1c\0\0\0)q\ 1u6\0\ 1\0\0\0\13o
+)q\ 5 \0\0\0u\84\0q*type.*"".JSONResponse\0-\0\ 1\0\0\0\17o\b8\0\0\0(q\13q\0*x-\0\ 1\0\0\0\17o\b@\0\0\0(q\17q\0P\0\0\0(x-\0\ 1\0\0\0\17o\ 4H\0\0\0(q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 4L\0\0\0(q\ 5\ 2\0\0\0u\84\0q+go.string."Tree"\0-\0\ 1\0\0\0\17o\bP\0\0\0(q\13q\0+x-\0\ 1\0\0\0\13o\b+q\17q\0\f\0\0\0+x-\0\ 1\0\0\0\17o\ 4\b\0\0\0+q\ 5\ 4\0\0\0u-\0\ 1\0\0\0\17o\ 4\f\0\0\0+q Tree\0\0\0\0-\0\ 1\0\0\0\17o\ 1\10\0\0\0+q\ 1u6\0\ 1\0\0\0\13o
++q\ 5\18\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0(q\ 1u-\0\ 1\0\0\0\17o\b`\0\0\0(q\13q\0\bx\84\0q,go.string."json:\"tree\""\0-\0\ 1\0\0\0\17o\bh\0\0\0(q\13q\0,x-\0\ 1\0\0\0\13o\b,q\17q\0\f\0\0\0,x-\0\ 1\0\0\0\17o\ 4\b\0\0\0,q\ 5\v\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0,q json:"tr-\0\ 1\0\0\0\17o\ 3\14\0\0\0,q ee"\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1\17\0\0\0,q\ 1u6\0\ 1\0\0\0\13o
+,q\ 5\18\0\0\0u-\0\ 1\0\0\0\17o\bp\0\0\0(q\ 1u\84\0q-go.string."Username"\0-\0\ 1\0\0\0\17o\bx\0\0\0(q\13q\0-x-\0\ 1\0\0\0\13o\b-q\17q\0\f\0\0\0-x-\0\ 1\0\0\0\17o\ 4\b\0\0\0-q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0-q Username-\0\ 1\0\0\0\17o\ 1\14\0\0\0-q\ 1u6\0\ 1\0\0\0\13o
+-q\ 5\18\0\0\0u-\0\ 1\0\0\0\17o\b\80\0\0\0(q\ 1u-\0\ 1\0\0\0\17o\b\88\0\0\0(q\13q\0\rx\84\0q.go.string."json:\"username\""\0-\0\ 1\0\0\0\17o\b\90\0\0\0(q\13q\0.x-\0\ 1\0\0\0\13o\b.q\17q\0\f\0\0\0.x-\0\ 1\0\0\0\17o\ 4\b\0\0\0.q\ 5\ f\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0.q json:"us-\0\ 1\0\0\0\17o\a\14\0\0\0.q ername"\0-\0\ 1\0\0\0\17o\ 1\e\0\0\0.q\ 1u6\0\ 1\0\0\0\13o
+.q\ 5 \0\0\0u-\0\ 1\0\0\0\17o\b\98\0\0\0(q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\b0\0\0\0(q\17q\0 \0\0\0(x\84\0q/go.string."JSONResponse"\0-\0\ 1\0\0\0\17o\b \0\0\0(q\13q\0/x-\0\ 1\0\0\0\13o\b/q\17q\0\f\0\0\0/x-\0\ 1\0\0\0\17o\ 4\b\0\0\0/q\ 5\f\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0/q JSONResp-\0\ 1\0\0\0\17o\ 4\14\0\0\0/q onse\0\0\0\0-\0\ 1\0\0\0\17o\ 1\18\0\0\0/q\ 1u6\0\ 1\0\0\0\13o
+/q\ 5 \0\0\0u-\0\ 1\0\0\0\17o\b¨\0\0\0(q\13q\0\1fx-\0\ 1\0\0\0\17o\b°\0\0\0(q\17q\0À\0\0\0(x-\0\ 1\0\0\0\17o\ 4¸\0\0\0(q\ 1u-\0\ 1\0\0\0\17o\ 4¼\0\0\0(q\ 1u6\0\ 1\0\0\0\13o\b(q\ 5À\0\0\0u\84\0q0type.*runtime.PtrType\0-\0\ 1\0\0\0\13o\b*q\13q\00x-\0\ 1\0\0\0\17o\b\b\0\0\0*q\17q\0\10\0\0\0*x-\0\ 1\0\0\0\17o\b\10\0\0\0*q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0*qENV\91°\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0*q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0*q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0*q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0*q\ 5\16\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0*q\17q\0\80\0\0\0 x\84\0q1go.string."*go1.JSONResponse"\0-\0\ 1\0\0\0\17o\b(\0\0\0*q\13q\01x-\0\ 1\0\0\0\13o\b1q\17q\0\f\0\0\01x-\0\ 1\0\0\0\17o\ 4\b\0\0\01q\ 5\11\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\01q *go1.JSO-\0\ 1\0\0\0\17o\b\14\0\0\01q NRespons-\0\ 1\0\0\0\17o\ 1\1c\0\0\01q e\0\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1\1d\0\0\01q\ 1u6\0\ 1\0\0\0\13o
+1q\ 5 \0\0\0u\84\0q\ 1weak.type.**"".JSONResponse\0-\0\ 1\0\0\0\17o\b8\0\0\0*q\13q\0\ 1x-\0\ 1\0\0\0\17o\b@\0\0\0*q\13q\0(x6\0\ 1\0\0\0\13o\b*q\ 5H\0\0\0u\84\0q\ 2type.func(*"".JSONResponse) *"".JSONResponse\0\84\0q\ 3type.*runtime.FuncType\0-\0\ 1\0\0\0\13o\b\ 2q\13q\0\ 3x-\0\ 1\0\0\0\17o\b\b\0\0\0\ 2q\17q\0\10\0\0\0\ 2x-\0\ 1\0\0\0\17o\b\10\0\0\0\ 2q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\ 2qEz\9fî±\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\ 2q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\ 2q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\ 2q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\ 2q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\ 2q\17q\0@\ 1\0\0 x\84\0q\ 4go.string."func(*go1.JSONResponse) *go1.JSONResponse"\0-\0\ 1\0\0\0\17o\b(\0\0\0\ 2q\13q\0\ 4x-\0\ 1\0\0\0\13o\b\ 4q\17q\0\f\0\0\0\ 4x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\ 4q\ 5)\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\ 4q func(*go-\0\ 1\0\0\0\17o\b\14\0\0\0\ 4q 1.JSONRe-\0\ 1\0\0\0\17o\b\1c\0\0\0\ 4q sponse) -\0\ 1\0\0\0\17o\b$\0\0\0\ 4q *go1.JSO-\0\ 1\0\0\0\17o\b,\0\0\0\ 4q NRespons-\0\ 1\0\0\0\17o\ 14\0\0\0\ 4q e\0\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 15\0\0\0\ 4q\ 1u6\0\ 1\0\0\0\13o
+\ 4q\ 58\0\0\0u\84\0q\ 5weak.type.*func(*"".JSONResponse) *"".JSONResponse\0-\0\ 1\0\0\0\17o\b8\0\0\0\ 2q\13q\0\ 5x-\0\ 1\0\0\0\17o\ 1@\0\0\0\ 2q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\ 2q\17q\0h\0\0\0\ 2x-\0\ 1\0\0\0\17o\ 4P\0\0\0\ 2q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\ 2q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\ 2q\17q\0p\0\0\0\ 2x-\0\ 1\0\0\0\17o\ 4`\0\0\0\ 2q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\ 2q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0\ 2q\13q\0*x-\0\ 1\0\0\0\17o\bp\0\0\0\ 2q\13q\0*x6\0\ 1\0\0\0\13o
+\ 2q\ 5x\0\0\0u\84\0q\ 6type.func(*uint8) *bytes.Buffer\0-\0\ 1\0\0\0\13o\b\ 6q\13q\0\ 3x-\0\ 1\0\0\0\17o\b\b\0\0\0\ 6q\17q\0\10\0\0\0\ 6x-\0\ 1\0\0\0\17o\b\10\0\0\0\ 6q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\ 6qE\16ñ¥\8a\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\ 6q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\ 6q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\ 6q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\ 6q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\ 6q\17q\0@\ 1\0\0 x\84\0q\ago.string."func(*uint8) *bytes.Buffer"\0-\0\ 1\0\0\0\17o\b(\0\0\0\ 6q\13q\0\ax-\0\ 1\0\0\0\13o\b\aq\17q\0\f\0\0\0\ax-\0\ 1\0\0\0\17o\ 4\b\0\0\0\aq\ 5\1a\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\aq func(*ui-\0\ 1\0\0\0\17o\b\14\0\0\0\aq nt8) *by-\0\ 1\0\0\0\17o\b\1c\0\0\0\aq tes.Buff-\0\ 1\0\0\0\17o\ 2$\0\0\0\aq er\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1&\0\0\0\aq\ 1u6\0\ 1\0\0\0\13o
+\aq\ 5(\0\0\0u\84\0q\bweak.type.*func(*uint8) *bytes.Buffer\0-\0\ 1\0\0\0\17o\b8\0\0\0\ 6q\13q\0\bx-\0\ 1\0\0\0\17o\ 1@\0\0\0\ 6q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\ 6q\17q\0h\0\0\0\ 6x-\0\ 1\0\0\0\17o\ 4P\0\0\0\ 6q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\ 6q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\ 6q\17q\0p\0\0\0\ 6x-\0\ 1\0\0\0\17o\ 4`\0\0\0\ 6q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\ 6q\ 5\ 1\0\0\0u\84\0q type.*uint8\0-\0\ 1\0\0\0\17o\bh\0\0\0\ 6q\13q\0  x\84\0q
+type.*bytes.Buffer\0-\0\ 1\0\0\0\17o\bp\0\0\0\ 6q\13q\0
+x6\0\ 1\0\0\0\13o
+\ 6q\ 5x\0\0\0u\84\0q\vtype.func(*uint8, *uint8, *bytes.Buffer) io.Writer\0-\0\ 1\0\0\0\13o\b\vq\13q\0\ 3x-\0\ 1\0\0\0\17o\b\b\0\0\0\vq\17q\0\10\0\0\0\vx-\0\ 1\0\0\0\17o\b\10\0\0\0\vq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\vq\ 5x>\ 49u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\vq\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\vq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\vq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\vq\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\vq\17q\0@\ 1\0\0 x\84\0q\fgo.string."func(*uint8, *uint8, *bytes.Buffer) io.Writer"\0-\0\ 1\0\0\0\17o\b(\0\0\0\vq\13q\0\fx-\0\ 1\0\0\0\13o\b\fq\17q\0\f\0\0\0\fx-\0\ 1\0\0\0\17o\ 4\b\0\0\0\fq\ 5-\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\fq func(*ui-\0\ 1\0\0\0\17o\b\14\0\0\0\fq nt8, *ui-\0\ 1\0\0\0\17o\b\1c\0\0\0\fq nt8, *by-\0\ 1\0\0\0\17o\b$\0\0\0\fq tes.Buff-\0\ 1\0\0\0\17o\b,\0\0\0\fq er) io.W-\0\ 1\0\0\0\17o\ 54\0\0\0\fq riter\0\0\0-\0\ 1\0\0\0\17o\ 19\0\0\0\fq\ 1u6\0\ 1\0\0\0\13o
+\fq\ 5@\0\0\0u\84\0q\rweak.type.*func(*uint8, *uint8, *bytes.Buffer) io.Writer\0-\0\ 1\0\0\0\17o\b8\0\0\0\vq\13q\0\rx-\0\ 1\0\0\0\17o\ 1@\0\0\0\vq\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\vq\17q\0h\0\0\0\vx-\0\ 1\0\0\0\17o\ 4P\0\0\0\vq\ 5\ 3\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\vq\ 5\ 3\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\vq\17q\0\80\0\0\0\vx-\0\ 1\0\0\0\17o\ 4`\0\0\0\vq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\vq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0\vq\13q\0       x-\0\ 1\0\0\0\17o\bp\0\0\0\vq\13q\0     x-\0\ 1\0\0\0\17o\bx\0\0\0\vq\13q\0
+x\84\0q\ etype.io.Writer\0-\0\ 1\0\0\0\17o\b\80\0\0\0\vq\13q\0\ ex6\0\ 1\0\0\0\13o
+\vq\ 5\88\0\0\0u\84\0q\ ftype.func(io.Writer) *encoding/gob.Encoder\0-\0\ 1\0\0\0\13o\b\ fq\13q\0\ 3x-\0\ 1\0\0\0\17o\b\b\0\0\0\ fq\17q\0\10\0\0\0\ fx-\0\ 1\0\0\0\17o\b\10\0\0\0\ fq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\ fqEEI´§\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\ fq\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\ fq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\ fq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\ fq\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\ fq\17q\0@\ 1\0\0 x\84\0q\10go.string."func(io.Writer) *gob.Encoder"\0-\0\ 1\0\0\0\17o\b(\0\0\0\ fq\13q\0\10x-\0\ 1\0\0\0\13o\b\10q\17q\0\f\0\0\0\10x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\10q\ 5\1c\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\10q func(io.-\0\ 1\0\0\0\17o\b\14\0\0\0\10q Writer) -\0\ 1\0\0\0\17o\b\1c\0\0\0\10q *gob.Enc-\0\ 1\0\0\0\17o\ 4$\0\0\0\10q oder\0\0\0\0-\0\ 1\0\0\0\17o\ 1(\0\0\0\10q\ 1u6\0\ 1\0\0\0\13o
+\10q\ 50\0\0\0u\84\0q\11weak.type.*func(io.Writer) *encoding/gob.Encoder\0-\0\ 1\0\0\0\17o\b8\0\0\0\ fq\13q\0\11x-\0\ 1\0\0\0\17o\ 1@\0\0\0\ fq\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\ fq\17q\0h\0\0\0\ fx-\0\ 1\0\0\0\17o\ 4P\0\0\0\ fq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\ fq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\ fq\17q\0p\0\0\0\ fx-\0\ 1\0\0\0\17o\ 4`\0\0\0\ fq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\ fq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0\ fq\13q\0\ ex\84\0q\12type.*encoding/gob.Encoder\0-\0\ 1\0\0\0\17o\bp\0\0\0\ fq\13q\0\12x6\0\ 1\0\0\0\13o
+\ fq\ 5x\0\0\0u\84\0q\13type.func(*uint8, *"".JSONResponse) interface {}\0-\0\ 1\0\0\0\13o\b\13q\13q\0\ 3x-\0\ 1\0\0\0\17o\b\b\0\0\0\13q\17q\0\10\0\0\0\13x-\0\ 1\0\0\0\17o\b\10\0\0\0\13q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\13q\ 5¬ ô\16u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\13q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\13q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\13q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\13q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\13q\17q\0@\ 1\0\0 x\84\0q\14go.string."func(*uint8, *go1.JSONResponse) interface {}"\0-\0\ 1\0\0\0\17o\b(\0\0\0\13q\13q\0\14x-\0\ 1\0\0\0\13o\b\14q\17q\0\f\0\0\0\14x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\14q\ 5,\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\14q func(*ui-\0\ 1\0\0\0\17o\b\14\0\0\0\14q nt8, *go-\0\ 1\0\0\0\17o\b\1c\0\0\0\14q 1.JSONRe-\0\ 1\0\0\0\17o\b$\0\0\0\14q sponse) -\0\ 1\0\0\0\17o\b,\0\0\0\14q interfac-\0\ 1\0\0\0\17o\ 44\0\0\0\14q e {}\0\0\0\0-\0\ 1\0\0\0\17o\ 18\0\0\0\14q\ 1u6\0\ 1\0\0\0\13o
+\14q\ 5@\0\0\0u\84\0q\15weak.type.*func(*uint8, *"".JSONResponse) interface {}\0-\0\ 1\0\0\0\17o\b8\0\0\0\13q\13q\0\15x-\0\ 1\0\0\0\17o\ 1@\0\0\0\13q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\13q\17q\0h\0\0\0\13x-\0\ 1\0\0\0\17o\ 4P\0\0\0\13q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\13q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\13q\17q\0x\0\0\0\13x-\0\ 1\0\0\0\17o\ 4`\0\0\0\13q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\13q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0\13q\13q\0 x-\0\ 1\0\0\0\17o\bp\0\0\0\13q\13q\0*x\84\0q\16type.interface {}\0-\0\ 1\0\0\0\17o\bx\0\0\0\13q\13q\0\16x6\0\ 1\0\0\0\13o
+\13q\ 5\80\0\0\0u\84\0q\17type.func(error) interface {}\0-\0\ 1\0\0\0\13o\b\17q\13q\0\ 3x-\0\ 1\0\0\0\17o\b\b\0\0\0\17q\17q\0\10\0\0\0\17x-\0\ 1\0\0\0\17o\b\10\0\0\0\17q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\17q\ 5Å\141\ 2u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\17q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\17q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\17q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\17q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\17q\17q\0@\ 1\0\0 x\84\0q\18go.string."func(error) interface {}"\0-\0\ 1\0\0\0\17o\b(\0\0\0\17q\13q\0\18x-\0\ 1\0\0\0\13o\b\18q\17q\0\f\0\0\0\18x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\18q\ 5\18\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\18q func(err-\0\ 1\0\0\0\17o\b\14\0\0\0\18q or) inte-\0\ 1\0\0\0\17o\b\1c\0\0\0\18q rface {}-\0\ 1\0\0\0\17o\ 1$\0\0\0\18q\ 1u6\0\ 1\0\0\0\13o
+\18q\ 5(\0\0\0u\84\0q\19weak.type.*func(error) interface {}\0-\0\ 1\0\0\0\17o\b8\0\0\0\17q\13q\0\19x-\0\ 1\0\0\0\17o\ 1@\0\0\0\17q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\17q\17q\0h\0\0\0\17x-\0\ 1\0\0\0\17o\ 4P\0\0\0\17q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\17q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\17q\17q\0p\0\0\0\17x-\0\ 1\0\0\0\17o\ 4`\0\0\0\17q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\17q\ 5\ 1\0\0\0u\84\0q\1atype.error\0-\0\ 1\0\0\0\17o\bh\0\0\0\17q\13q\0\1ax-\0\ 1\0\0\0\17o\bp\0\0\0\17q\13q\0\16x6\0\ 1\0\0\0\13o
+\17q\ 5x\0\0\0u\84\0q\etype.func(*uint8) *"".JSONResponse\0-\0\ 1\0\0\0\13o\b\eq\13q\0\ 3x-\0\ 1\0\0\0\17o\b\b\0\0\0\eq\17q\0\10\0\0\0\ex-\0\ 1\0\0\0\17o\b\10\0\0\0\eq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\eq\ 5«jù-u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\eq\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\eq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\eq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\eq\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\eq\17q\0@\ 1\0\0 x\84\0q\1cgo.string."func(*uint8) *go1.JSONResponse"\0-\0\ 1\0\0\0\17o\b(\0\0\0\eq\13q\0\1cx-\0\ 1\0\0\0\13o\b\1cq\17q\0\f\0\0\0\1cx-\0\ 1\0\0\0\17o\ 4\b\0\0\0\1cq\ 5\1e\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\1cq func(*ui-\0\ 1\0\0\0\17o\b\14\0\0\0\1cq nt8) *go-\0\ 1\0\0\0\17o\b\1c\0\0\0\1cq 1.JSONRe-\0\ 1\0\0\0\17o\ 6$\0\0\0\1cq sponse\0\0-\0\ 1\0\0\0\17o\ 1*\0\0\0\1cq\ 1u6\0\ 1\0\0\0\13o
+\1cq\ 50\0\0\0u\84\0q\1dweak.type.*func(*uint8) *"".JSONResponse\0-\0\ 1\0\0\0\17o\b8\0\0\0\eq\13q\0\1dx-\0\ 1\0\0\0\17o\ 1@\0\0\0\eq\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\eq\17q\0h\0\0\0\ex-\0\ 1\0\0\0\17o\ 4P\0\0\0\eq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\eq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\eq\17q\0p\0\0\0\ex-\0\ 1\0\0\0\17o\ 4`\0\0\0\eq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\eq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0\eq\13q\0       x-\0\ 1\0\0\0\17o\bp\0\0\0\eq\13q\0*x6\0\ 1\0\0\0\13o
+\eq\ 5x\0\0\0u\84\0q\1etype.func(*uint8, *uint8, *bytes.Buffer) io.Reader\0-\0\ 1\0\0\0\13o\b\1eq\13q\0\ 3x-\0\ 1\0\0\0\17o\b\b\0\0\0\1eq\17q\0\10\0\0\0\1ex-\0\ 1\0\0\0\17o\b\10\0\0\0\1eq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\1eqEø\8b\ 5Ô\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\1eq\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\1eq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\1eq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\1eq\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\1eq\17q\0@\ 1\0\0 x\84\0q\1fgo.string."func(*uint8, *uint8, *bytes.Buffer) io.Reader"\0-\0\ 1\0\0\0\17o\b(\0\0\0\1eq\13q\0\1fx-\0\ 1\0\0\0\13o\b\1fq\17q\0\f\0\0\0\1fx-\0\ 1\0\0\0\17o\ 4\b\0\0\0\1fq\ 5-\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\1fq func(*ui-\0\ 1\0\0\0\17o\b\14\0\0\0\1fq nt8, *ui-\0\ 1\0\0\0\17o\b\1c\0\0\0\1fq nt8, *by-\0\ 1\0\0\0\17o\b$\0\0\0\1fq tes.Buff-\0\ 1\0\0\0\17o\b,\0\0\0\1fq er) io.R-\0\ 1\0\0\0\17o\ 54\0\0\0\1fq eader\0\0\0-\0\ 1\0\0\0\17o\ 19\0\0\0\1fq\ 1u6\0\ 1\0\0\0\13o
+\1fq\ 5@\0\0\0u\84\0q weak.type.*func(*uint8, *uint8, *bytes.Buffer) io.Reader\0-\0\ 1\0\0\0\17o\b8\0\0\0\1eq\13q\0 x-\0\ 1\0\0\0\17o\ 1@\0\0\0\1eq\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\1eq\17q\0h\0\0\0\1ex-\0\ 1\0\0\0\17o\ 4P\0\0\0\1eq\ 5\ 3\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\1eq\ 5\ 3\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\1eq\17q\0\80\0\0\0\1ex-\0\ 1\0\0\0\17o\ 4`\0\0\0\1eq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\1eq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0\1eq\13q\0       x-\0\ 1\0\0\0\17o\bp\0\0\0\1eq\13q\0     x-\0\ 1\0\0\0\17o\bx\0\0\0\1eq\13q\0
+x\84\0q!type.io.Reader\0-\0\ 1\0\0\0\17o\b\80\0\0\0\1eq\13q\0!x6\0\ 1\0\0\0\13o
+\1eq\ 5\88\0\0\0u\84\0q"type.func(io.Reader) *encoding/gob.Decoder\0-\0\ 1\0\0\0\13o\b"q\13q\0\ 3x-\0\ 1\0\0\0\17o\b\b\0\0\0"q\17q\0\10\0\0\0"x-\0\ 1\0\0\0\17o\b\10\0\0\0"q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0"q\ 5|\83\00u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0"q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0"q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0"q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0"q\ 5\13\0\0\0u\84\0q#runtime.algarray\0-\0\ 1\0\0\0\17o\b \0\0\0"q\17q\0@\ 1\0\0#x\84\0q$go.string."func(io.Reader) *gob.Decoder"\0-\0\ 1\0\0\0\17o\b(\0\0\0"q\13q\0$x-\0\ 1\0\0\0\13o\b$q\17q\0\f\0\0\0$x-\0\ 1\0\0\0\17o\ 4\b\0\0\0$q\ 5\1c\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0$q func(io.-\0\ 1\0\0\0\17o\b\14\0\0\0$q Reader) -\0\ 1\0\0\0\17o\b\1c\0\0\0$q *gob.Dec-\0\ 1\0\0\0\17o\ 4$\0\0\0$q oder\0\0\0\0-\0\ 1\0\0\0\17o\ 1(\0\0\0$q\ 1u6\0\ 1\0\0\0\13o
+$q\ 50\0\0\0u\84\0q%weak.type.*func(io.Reader) *encoding/gob.Decoder\0-\0\ 1\0\0\0\17o\b8\0\0\0"q\13q\0%x-\0\ 1\0\0\0\17o\ 1@\0\0\0"q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0"q\17q\0h\0\0\0"x-\0\ 1\0\0\0\17o\ 4P\0\0\0"q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0"q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0"q\17q\0p\0\0\0"x-\0\ 1\0\0\0\17o\ 4`\0\0\0"q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0"q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0"q\13q\0!x\84\0q&type.*encoding/gob.Decoder\0-\0\ 1\0\0\0\17o\bp\0\0\0"q\13q\0&x6\0\ 1\0\0\0\13o
+"q\ 5x\0\0\0u\84\0q'type.func(interface {}, interface {}) bool\0-\0\ 1\0\0\0\13o\b'q\13q\0\ 3x-\0\ 1\0\0\0\17o\b\b\0\0\0'q\17q\0\10\0\0\0'x-\0\ 1\0\0\0\17o\b\10\0\0\0'q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0'qEf"¨¼\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0'q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0'q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0'q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0'q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0'q\17q\0@\ 1\0\0#x\84\0q(go.string."func(interface {}, interface {}) bool"\0-\0\ 1\0\0\0\17o\b(\0\0\0'q\13q\0(x-\0\ 1\0\0\0\13o\b(q\17q\0\f\0\0\0(x-\0\ 1\0\0\0\17o\ 4\b\0\0\0(q\ 5%\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0(q func(int-\0\ 1\0\0\0\17o\b\14\0\0\0(q erface {-\0\ 1\0\0\0\17o\b\1c\0\0\0(q }, inter-\0\ 1\0\0\0\17o\b$\0\0\0(q face {})-\0\ 1\0\0\0\17o\ 5,\0\0\0(q  bool\0\0\0-\0\ 1\0\0\0\17o\ 11\0\0\0(q\ 1u6\0\ 1\0\0\0\13o
+(q\ 58\0\0\0u\84\0q)weak.type.*func(interface {}, interface {}) bool\0-\0\ 1\0\0\0\17o\b8\0\0\0'q\13q\0)x-\0\ 1\0\0\0\17o\ 1@\0\0\0'q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0'q\17q\0h\0\0\0'x-\0\ 1\0\0\0\17o\ 4P\0\0\0'q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0'q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0'q\17q\0x\0\0\0'x-\0\ 1\0\0\0\17o\ 4`\0\0\0'q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0'q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0'q\13q\0\16x-\0\ 1\0\0\0\17o\bp\0\0\0'q\13q\0\16x\84\0q*type.bool\0-\0\ 1\0\0\0\17o\bx\0\0\0'q\13q\0*x6\0\ 1\0\0\0\13o
+'q\ 5\80\0\0\0u\84\0q+type.func(*uint8, "".JSONResponse) interface {}\0-\0\ 1\0\0\0\13o\b+q\13q\0\ 3x-\0\ 1\0\0\0\17o\b\b\0\0\0+q\17q\0\10\0\0\0+x-\0\ 1\0\0\0\17o\b\10\0\0\0+q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0+q\ 5à¿\98\ 1u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0+q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0+q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0+q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0+q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0+q\17q\0@\ 1\0\0#x\84\0q,go.string."func(*uint8, go1.JSONResponse) interface {}"\0-\0\ 1\0\0\0\17o\b(\0\0\0+q\13q\0,x-\0\ 1\0\0\0\13o\b,q\17q\0\f\0\0\0,x-\0\ 1\0\0\0\17o\ 4\b\0\0\0,q\ 5+\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0,q func(*ui-\0\ 1\0\0\0\17o\b\14\0\0\0,q nt8, go1-\0\ 1\0\0\0\17o\b\1c\0\0\0,q .JSONRes-\0\ 1\0\0\0\17o\b$\0\0\0,q ponse) i-\0\ 1\0\0\0\17o\b,\0\0\0,q nterface-\0\ 1\0\0\0\17o\ 34\0\0\0,q  {}\0\0\0\0\0-\0\ 1\0\0\0\17o\ 17\0\0\0,q\ 1u6\0\ 1\0\0\0\13o
+,q\ 58\0\0\0u\84\0q-weak.type.*func(*uint8, "".JSONResponse) interface {}\0-\0\ 1\0\0\0\17o\b8\0\0\0+q\13q\0-x-\0\ 1\0\0\0\17o\ 1@\0\0\0+q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0+q\17q\0h\0\0\0+x-\0\ 1\0\0\0\17o\ 4P\0\0\0+q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0+q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0+q\17q\0x\0\0\0+x-\0\ 1\0\0\0\17o\ 4`\0\0\0+q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0+q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0+q\13q\0  x\84\0q.type."".JSONResponse\0-\0\ 1\0\0\0\17o\bp\0\0\0+q\13q\0.x-\0\ 1\0\0\0\17o\bx\0\0\0+q\13q\0\16x6\0\ 1\0\0\0\13o
++q\ 5\80\0\0\0u\84\0q/type.[]interface {}\0\84\0q0type.*runtime.SliceType\0-\0\ 1\0\0\0\13o\b/q\13q\00x-\0\ 1\0\0\0\17o\b\b\0\0\0/q\17q\0\10\0\0\0/x-\0\ 1\0\0\0\17o\b\10\0\0\0/q\ 5\10\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0/q\ 5p\93ê/u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0/q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0/q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0/q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0/q\ 5\17\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0/q\17q\0à\ 1\0\0#x\84\0q1go.string."[]interface {}"\0-\0\ 1\0\0\0\17o\b(\0\0\0/q\13q\01x-\0\ 1\0\0\0\13o\b1q\17q\0\f\0\0\01x-\0\ 1\0\0\0\17o\ 4\b\0\0\01q\ 5\ e\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\01q []interf-\0\ 1\0\0\0\17o\ 6\14\0\0\01q ace {}\0\0-\0\ 1\0\0\0\17o\ 1\1a\0\0\01q\ 1u6\0\ 1\0\0\0\13o
+1q\ 5 \0\0\0u\84\0q\ 1weak.type.*[]interface {}\0-\0\ 1\0\0\0\17o\b8\0\0\0/q\13q\0\ 1x-\0\ 1\0\0\0\17o\b@\0\0\0/q\13q\0\16x6\0\ 1\0\0\0\13o
+/q\ 5H\0\0\0u\84\0q\ 2type.func(string, ...interface {})\0-\0\ 1\0\0\0\13o\b\ 2q\13q\0\ 3x-\0\ 1\0\0\0\17o\b\b\0\0\0\ 2q\17q\0\10\0\0\0\ 2x-\0\ 1\0\0\0\17o\b\10\0\0\0\ 2q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\ 2qEõµ@µ\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\ 2q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\ 2q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\ 2q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\ 2q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\ 2q\17q\0@\ 1\0\0#x\84\0q\ 3go.string."func(string, ...interface {})"\0-\0\ 1\0\0\0\17o\b(\0\0\0\ 2q\13q\0\ 3x-\0\ 1\0\0\0\13o\b\ 3q\17q\0\f\0\0\0\ 3x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\ 3q\ 5\1d\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\ 3q func(str-\0\ 1\0\0\0\17o\b\14\0\0\0\ 3q ing, ...-\0\ 1\0\0\0\17o\b\1c\0\0\0\ 3q interfac-\0\ 1\0\0\0\17o\ 5$\0\0\0\ 3q e {})\0\0\0-\0\ 1\0\0\0\17o\ 1)\0\0\0\ 3q\ 1u6\0\ 1\0\0\0\13o
+\ 3q\ 50\0\0\0u\84\0q\ 4weak.type.*func(string, ...interface {})\0-\0\ 1\0\0\0\17o\b8\0\0\0\ 2q\13q\0\ 4x-\0\ 1\0\0\0\17o\ 1@\0\0\0\ 2q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bH\0\0\0\ 2q\17q\0h\0\0\0\ 2x-\0\ 1\0\0\0\17o\ 4P\0\0\0\ 2q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\ 2q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\ 2q\17q\0x\0\0\0\ 2x-\0\ 1\0\0\0\17o\ 4`\0\0\0\ 2q\ 1u-\0\ 1\0\0\0\17o\ 4d\0\0\0\ 2q\ 1u\84\0q\ 5type.string\0-\0\ 1\0\0\0\17o\bh\0\0\0\ 2q\13q\0\ 5x-\0\ 1\0\0\0\17o\bp\0\0\0\ 2q\13q\0/x6\0\ 1\0\0\0\13o
+\ 2q\ 5x\0\0\0u\84\0q\ 6type.func(interface {}) ([]uint8, error)\0\84\0q\atype.*runtime.FuncType\0-\0\ 1\0\0\0\13o\b\ 6q\13q\0\ax-\0\ 1\0\0\0\17o\b\b\0\0\0\ 6q\17q\0\10\0\0\0\ 6x-\0\ 1\0\0\0\17o\b\10\0\0\0\ 6q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\ 6qE\133*Û\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\ 6q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\ 6q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\ 6q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\ 6q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\ 6q\17q\0@\ 1\0\0#x\84\0q\bgo.string."func(interface {}) ([]uint8, error)"\0-\0\ 1\0\0\0\17o\b(\0\0\0\ 6q\13q\0\bx-\0\ 1\0\0\0\13o\b\bq\17q\0\f\0\0\0\bx-\0\ 1\0\0\0\17o\ 4\b\0\0\0\bq\ 5#\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\bq func(int-\0\ 1\0\0\0\17o\b\14\0\0\0\bq erface {-\0\ 1\0\0\0\17o\b\1c\0\0\0\bq }) ([]ui-\0\ 1\0\0\0\17o\b$\0\0\0\bq nt8, err-\0\ 1\0\0\0\17o\ 3,\0\0\0\bq or)\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1/\0\0\0\bq\ 1u6\0\ 1\0\0\0\13o
+\bq\ 50\0\0\0u\84\0q    weak.type.*func(interface {}) ([]uint8, error)\0-\0\ 1\0\0\0\17o\b8\0\0\0\ 6q\13q\0       x-\0\ 1\0\0\0\17o\ 1@\0\0\0\ 6q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\ 6q\17q\0h\0\0\0\ 6x-\0\ 1\0\0\0\17o\ 4P\0\0\0\ 6q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\ 6q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\ 6q\17q\0p\0\0\0\ 6x-\0\ 1\0\0\0\17o\ 4`\0\0\0\ 6q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\ 6q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0\ 6q\13q\0\16x\84\0q
+type.[]uint8\0-\0\ 1\0\0\0\17o\bp\0\0\0\ 6q\13q\0
+x-\0\ 1\0\0\0\17o\bx\0\0\0\ 6q\13q\0\1ax6\0\ 1\0\0\0\13o
+\ 6q\ 5\80\0\0\0u\84\0q\vtype.func(*uint8, []uint8) interface {}\0-\0\ 1\0\0\0\13o\b\vq\13q\0\ax-\0\ 1\0\0\0\17o\b\b\0\0\0\vq\17q\0\10\0\0\0\vx-\0\ 1\0\0\0\17o\b\10\0\0\0\vq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\vqEæ\9aþÕ\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\vq\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\vq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\vq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\vq\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\vq\17q\0@\ 1\0\0#x\84\0q\fgo.string."func(*uint8, []uint8) interface {}"\0-\0\ 1\0\0\0\17o\b(\0\0\0\vq\13q\0\fx-\0\ 1\0\0\0\13o\b\fq\17q\0\f\0\0\0\fx-\0\ 1\0\0\0\17o\ 4\b\0\0\0\fq\ 5"\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\fq func(*ui-\0\ 1\0\0\0\17o\b\14\0\0\0\fq nt8, []u-\0\ 1\0\0\0\17o\b\1c\0\0\0\fq int8) in-\0\ 1\0\0\0\17o\b$\0\0\0\fq terface -\0\ 1\0\0\0\17o\ 2,\0\0\0\fq {}\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1.\0\0\0\fq\ 1u6\0\ 1\0\0\0\13o
+\fq\ 50\0\0\0u\84\0q\rweak.type.*func(*uint8, []uint8) interface {}\0-\0\ 1\0\0\0\17o\b8\0\0\0\vq\13q\0\rx-\0\ 1\0\0\0\17o\ 1@\0\0\0\vq\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\vq\17q\0h\0\0\0\vx-\0\ 1\0\0\0\17o\ 4P\0\0\0\vq\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\vq\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\vq\17q\0x\0\0\0\vx-\0\ 1\0\0\0\17o\ 4`\0\0\0\vq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\vq\ 5\ 1\0\0\0u\84\0q\ etype.*uint8\0-\0\ 1\0\0\0\17o\bh\0\0\0\vq\13q\0\ ex-\0\ 1\0\0\0\17o\bp\0\0\0\vq\13q\0
+x-\0\ 1\0\0\0\17o\bx\0\0\0\vq\13q\0\16x6\0\ 1\0\0\0\13o
+\vq\ 5\80\0\0\0u\84\0q\ ftype.func(*"".JSONNode) *"".JSONNode\0-\0\ 1\0\0\0\13o\b\ fq\13q\0\ax-\0\ 1\0\0\0\17o\b\b\0\0\0\ fq\17q\0\10\0\0\0\ fx-\0\ 1\0\0\0\17o\b\10\0\0\0\ fq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\ fqEF6ͼ\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\ fq\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\ fq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\ fq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\ fq\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\ fq\17q\0@\ 1\0\0#x\84\0q\10go.string."func(*go1.JSONNode) *go1.JSONNode"\0-\0\ 1\0\0\0\17o\b(\0\0\0\ fq\13q\0\10x-\0\ 1\0\0\0\13o\b\10q\17q\0\f\0\0\0\10x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\10q\ 5!\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\10q func(*go-\0\ 1\0\0\0\17o\b\14\0\0\0\10q 1.JSONNo-\0\ 1\0\0\0\17o\b\1c\0\0\0\10q de) *go1-\0\ 1\0\0\0\17o\b$\0\0\0\10q .JSONNod-\0\ 1\0\0\0\17o\ 1,\0\0\0\10q e\0\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1-\0\0\0\10q\ 1u6\0\ 1\0\0\0\13o
+\10q\ 50\0\0\0u\84\0q\11weak.type.*func(*"".JSONNode) *"".JSONNode\0-\0\ 1\0\0\0\17o\b8\0\0\0\ fq\13q\0\11x-\0\ 1\0\0\0\17o\ 1@\0\0\0\ fq\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\ fq\17q\0h\0\0\0\ fx-\0\ 1\0\0\0\17o\ 4P\0\0\0\ fq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\ fq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\ fq\17q\0p\0\0\0\ fx-\0\ 1\0\0\0\17o\ 4`\0\0\0\ fq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\ fq\ 5\ 1\0\0\0u\84\0q\12type.*"".JSONNode\0-\0\ 1\0\0\0\17o\bh\0\0\0\ fq\13q\0\12x-\0\ 1\0\0\0\17o\bp\0\0\0\ fq\13q\0\12x6\0\ 1\0\0\0\13o
+\ fq\ 5x\0\0\0u\84\0q\13type.func(*uint8) *"".JSONNode\0-\0\ 1\0\0\0\13o\b\13q\13q\0\ax-\0\ 1\0\0\0\17o\b\b\0\0\0\13q\17q\0\10\0\0\0\13x-\0\ 1\0\0\0\17o\b\10\0\0\0\13q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\13qE\86\8d\ 2§\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\13q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\13q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\13q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\13q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\13q\17q\0@\ 1\0\0#x\84\0q\14go.string."func(*uint8) *go1.JSONNode"\0-\0\ 1\0\0\0\17o\b(\0\0\0\13q\13q\0\14x-\0\ 1\0\0\0\13o\b\14q\17q\0\f\0\0\0\14x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\14q\ 5\1a\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\14q func(*ui-\0\ 1\0\0\0\17o\b\14\0\0\0\14q nt8) *go-\0\ 1\0\0\0\17o\b\1c\0\0\0\14q 1.JSONNo-\0\ 1\0\0\0\17o\ 2$\0\0\0\14q de\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1&\0\0\0\14q\ 1u6\0\ 1\0\0\0\13o
+\14q\ 5(\0\0\0u\84\0q\15weak.type.*func(*uint8) *"".JSONNode\0-\0\ 1\0\0\0\17o\b8\0\0\0\13q\13q\0\15x-\0\ 1\0\0\0\17o\ 1@\0\0\0\13q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\13q\17q\0h\0\0\0\13x-\0\ 1\0\0\0\17o\ 4P\0\0\0\13q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\13q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\13q\17q\0p\0\0\0\13x-\0\ 1\0\0\0\17o\ 4`\0\0\0\13q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\13q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0\13q\13q\0\ ex-\0\ 1\0\0\0\17o\bp\0\0\0\13q\13q\0\12x6\0\ 1\0\0\0\13o
+\13q\ 5x\0\0\0u\84\0q\16type.**"".JSONResponse\0\84\0q\17type.*runtime.PtrType\0-\0\ 1\0\0\0\13o\b\16q\13q\0\17x-\0\ 1\0\0\0\17o\b\b\0\0\0\16q\17q\0\10\0\0\0\16x-\0\ 1\0\0\0\17o\b\10\0\0\0\16q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\16qEo²\91\88\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\16q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\16q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\16q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\16q\ 5\16\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\16q\17q\0\80\0\0\0#x\84\0q\18go.string."**go1.JSONResponse"\0-\0\ 1\0\0\0\17o\b(\0\0\0\16q\13q\0\18x-\0\ 1\0\0\0\13o\b\18q\17q\0\f\0\0\0\18x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\18q\ 5\12\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\18q **go1.JS-\0\ 1\0\0\0\17o\b\14\0\0\0\18q ONRespon-\0\ 1\0\0\0\17o\ 2\1c\0\0\0\18q se\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\18q\ 1u6\0\ 1\0\0\0\13o
+\18q\ 5 \0\0\0u\84\0q\19weak.type.***"".JSONResponse\0-\0\ 1\0\0\0\17o\b8\0\0\0\16q\13q\0\19x\84\0q\1atype.*"".JSONResponse\0-\0\ 1\0\0\0\17o\b@\0\0\0\16q\13q\0\1ax6\0\ 1\0\0\0\13o
+\16q\ 5H\0\0\0u\84\0q\etype.func(*uint8, **"".JSONResponse) interface {}\0-\0\ 1\0\0\0\13o\b\eq\13q\0\ax-\0\ 1\0\0\0\17o\b\b\0\0\0\eq\17q\0\10\0\0\0\ex-\0\ 1\0\0\0\17o\b\10\0\0\0\eq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\eq\ 5è\84êJu-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\eq\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\eq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\eq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\eq\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\eq\17q\0@\ 1\0\0#x\84\0q\1cgo.string."func(*uint8, **go1.JSONResponse) interface {}"\0-\0\ 1\0\0\0\17o\b(\0\0\0\eq\13q\0\1cx-\0\ 1\0\0\0\13o\b\1cq\17q\0\f\0\0\0\1cx-\0\ 1\0\0\0\17o\ 4\b\0\0\0\1cq\ 5-\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\1cq func(*ui-\0\ 1\0\0\0\17o\b\14\0\0\0\1cq nt8, **g-\0\ 1\0\0\0\17o\b\1c\0\0\0\1cq o1.JSONR-\0\ 1\0\0\0\17o\b$\0\0\0\1cq esponse)-\0\ 1\0\0\0\17o\b,\0\0\0\1cq  interfa-\0\ 1\0\0\0\17o\ 54\0\0\0\1cq ce {}\0\0\0-\0\ 1\0\0\0\17o\ 19\0\0\0\1cq\ 1u6\0\ 1\0\0\0\13o
+\1cq\ 5@\0\0\0u\84\0q\1dweak.type.*func(*uint8, **"".JSONResponse) interface {}\0-\0\ 1\0\0\0\17o\b8\0\0\0\eq\13q\0\1dx-\0\ 1\0\0\0\17o\ 1@\0\0\0\eq\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\eq\17q\0h\0\0\0\ex-\0\ 1\0\0\0\17o\ 4P\0\0\0\eq\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\eq\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\eq\17q\0x\0\0\0\ex-\0\ 1\0\0\0\17o\ 4`\0\0\0\eq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\eq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0\eq\13q\0\ ex-\0\ 1\0\0\0\17o\bp\0\0\0\eq\13q\0\16x\84\0q\1etype.interface {}\0-\0\ 1\0\0\0\17o\bx\0\0\0\eq\13q\0\1ex6\0\ 1\0\0\0\13o
+\eq\ 5\80\0\0\0u\84\0q\1ftype.func(io.Writer) (*compress/gzip.Compressor, error)\0-\0\ 1\0\0\0\13o\b\1fq\13q\0\ax-\0\ 1\0\0\0\17o\b\b\0\0\0\1fq\17q\0\10\0\0\0\1fx-\0\ 1\0\0\0\17o\b\10\0\0\0\1fq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\1fq\ 5ø\b»\19u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\1fq\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\1fq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\1fq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\1fq\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\1fq\17q\0@\ 1\0\0#x\84\0q go.string."func(io.Writer) (*gzip.Compressor, error)"\0-\0\ 1\0\0\0\17o\b(\0\0\0\1fq\13q\0 x-\0\ 1\0\0\0\13o\b q\17q\0\f\0\0\0 x-\0\ 1\0\0\0\17o\ 4\b\0\0\0 q\ 5)\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0 q func(io.-\0\ 1\0\0\0\17o\b\14\0\0\0 q Writer) -\0\ 1\0\0\0\17o\b\1c\0\0\0 q (*gzip.C-\0\ 1\0\0\0\17o\b$\0\0\0 q ompresso-\0\ 1\0\0\0\17o\b,\0\0\0 q r, error-\0\ 1\0\0\0\17o\ 14\0\0\0 q )\0\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 15\0\0\0 q\ 1u6\0\ 1\0\0\0\13o
+ q\ 58\0\0\0u\84\0q!weak.type.*func(io.Writer) (*compress/gzip.Compressor, error)\0-\0\ 1\0\0\0\17o\b8\0\0\0\1fq\13q\0!x-\0\ 1\0\0\0\17o\ 1@\0\0\0\1fq\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\1fq\17q\0h\0\0\0\1fx-\0\ 1\0\0\0\17o\ 4P\0\0\0\1fq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\1fq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\1fq\17q\0p\0\0\0\1fx-\0\ 1\0\0\0\17o\ 4`\0\0\0\1fq\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\1fq\ 5\ 2\0\0\0u\84\0q"type.io.Writer\0-\0\ 1\0\0\0\17o\bh\0\0\0\1fq\13q\0"x\84\0q#type.*compress/gzip.Compressor\0-\0\ 1\0\0\0\17o\bp\0\0\0\1fq\13q\0#x\84\0q$type.error\0-\0\ 1\0\0\0\17o\bx\0\0\0\1fq\13q\0$x6\0\ 1\0\0\0\13o
+\1fq\ 5\80\0\0\0u\84\0q%type.func(io.Reader) (*compress/gzip.Decompressor, error)\0-\0\ 1\0\0\0\13o\b%q\13q\0\ax-\0\ 1\0\0\0\17o\b\b\0\0\0%q\17q\0\10\0\0\0%x-\0\ 1\0\0\0\17o\b\10\0\0\0%q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0%q\ 5\bÙ1.u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0%q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0%q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0%q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0%q\ 5\13\0\0\0u\84\0q&runtime.algarray\0-\0\ 1\0\0\0\17o\b \0\0\0%q\17q\0@\ 1\0\0&x\84\0q'go.string."func(io.Reader) (*gzip.Decompressor, error)"\0-\0\ 1\0\0\0\17o\b(\0\0\0%q\13q\0'x-\0\ 1\0\0\0\13o\b'q\17q\0\f\0\0\0'x-\0\ 1\0\0\0\17o\ 4\b\0\0\0'q\ 5+\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0'q func(io.-\0\ 1\0\0\0\17o\b\14\0\0\0'q Reader) -\0\ 1\0\0\0\17o\b\1c\0\0\0'q (*gzip.D-\0\ 1\0\0\0\17o\b$\0\0\0'q ecompres-\0\ 1\0\0\0\17o\b,\0\0\0'q sor, err-\0\ 1\0\0\0\17o\ 34\0\0\0'q or)\0\0\0\0\0-\0\ 1\0\0\0\17o\ 17\0\0\0'q\ 1u6\0\ 1\0\0\0\13o
+'q\ 58\0\0\0u\84\0q(weak.type.*func(io.Reader) (*compress/gzip.Decompressor, error)\0-\0\ 1\0\0\0\17o\b8\0\0\0%q\13q\0(x-\0\ 1\0\0\0\17o\ 1@\0\0\0%q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0%q\17q\0h\0\0\0%x-\0\ 1\0\0\0\17o\ 4P\0\0\0%q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0%q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0%q\17q\0p\0\0\0%x-\0\ 1\0\0\0\17o\ 4`\0\0\0%q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0%q\ 5\ 2\0\0\0u\84\0q)type.io.Reader\0-\0\ 1\0\0\0\17o\bh\0\0\0%q\13q\0)x\84\0q*type.*compress/gzip.Decompressor\0-\0\ 1\0\0\0\17o\bp\0\0\0%q\13q\0*x-\0\ 1\0\0\0\17o\bx\0\0\0%q\13q\0$x6\0\ 1\0\0\0\13o
+%q\ 5\80\0\0\0u\84\0q+type.func(*uint8, *uint8, *compress/gzip.Decompressor) io.Reader\0-\0\ 1\0\0\0\13o\b+q\13q\0\ax-\0\ 1\0\0\0\17o\b\b\0\0\0+q\17q\0\10\0\0\0+x-\0\ 1\0\0\0\17o\b\10\0\0\0+q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0+q\ 5tÒ¼\ 3u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0+q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0+q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0+q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0+q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0+q\17q\0@\ 1\0\0&x\84\0q,go.string."func(*uint8, *uint8, *gzip.Decompressor) io.Reader"\0-\0\ 1\0\0\0\17o\b(\0\0\0+q\13q\0,x-\0\ 1\0\0\0\13o\b,q\17q\0\f\0\0\0,x-\0\ 1\0\0\0\17o\ 4\b\0\0\0,q\ 52\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0,q func(*ui-\0\ 1\0\0\0\17o\b\14\0\0\0,q nt8, *ui-\0\ 1\0\0\0\17o\b\1c\0\0\0,q nt8, *gz-\0\ 1\0\0\0\17o\b$\0\0\0,q ip.Decom-\0\ 1\0\0\0\17o\b,\0\0\0,q pressor)-\0\ 1\0\0\0\17o\b4\0\0\0,q  io.Read-\0\ 1\0\0\0\17o\ 2<\0\0\0,q er\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1>\0\0\0,q\ 1u6\0\ 1\0\0\0\13o
+,q\ 5@\0\0\0u\84\0q-weak.type.*func(*uint8, *uint8, *compress/gzip.Decompressor) io.Reader\0-\0\ 1\0\0\0\17o\b8\0\0\0+q\13q\0-x-\0\ 1\0\0\0\17o\ 1@\0\0\0+q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0+q\17q\0h\0\0\0+x-\0\ 1\0\0\0\17o\ 4P\0\0\0+q\ 5\ 3\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0+q\ 5\ 3\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0+q\17q\0\80\0\0\0+x-\0\ 1\0\0\0\17o\ 4`\0\0\0+q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0+q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0+q\13q\0\ ex-\0\ 1\0\0\0\17o\bp\0\0\0+q\13q\0\ ex-\0\ 1\0\0\0\17o\bx\0\0\0+q\13q\0*x-\0\ 1\0\0\0\17o\b\80\0\0\0+q\13q\0)x6\0\ 1\0\0\0\13o
++q\ 5\88\0\0\0u\84\0q.type.func(io.Writer, io.Reader) (int64, error)\0-\0\ 1\0\0\0\13o\b.q\13q\0\ax-\0\ 1\0\0\0\17o\b\b\0\0\0.q\17q\0\10\0\0\0.x-\0\ 1\0\0\0\17o\b\10\0\0\0.q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0.q\ 5\16qQ!u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0.q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0.q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0.q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0.q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0.q\17q\0@\ 1\0\0&x\84\0q/go.string."func(io.Writer, io.Reader) (int64, error)"\0-\0\ 1\0\0\0\17o\b(\0\0\0.q\13q\0/x-\0\ 1\0\0\0\13o\b/q\17q\0\f\0\0\0/x-\0\ 1\0\0\0\17o\ 4\b\0\0\0/q\ 5)\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0/q func(io.-\0\ 1\0\0\0\17o\b\14\0\0\0/q Writer, -\0\ 1\0\0\0\17o\b\1c\0\0\0/q io.Reade-\0\ 1\0\0\0\17o\b$\0\0\0/q r) (int6-\0\ 1\0\0\0\17o\b,\0\0\0/q 4, error-\0\ 1\0\0\0\17o\ 14\0\0\0/q )\0\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 15\0\0\0/q\ 1u6\0\ 1\0\0\0\13o
+/q\ 58\0\0\0u\84\0q0weak.type.*func(io.Writer, io.Reader) (int64, error)\0-\0\ 1\0\0\0\17o\b8\0\0\0.q\13q\00x-\0\ 1\0\0\0\17o\ 1@\0\0\0.q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0.q\17q\0h\0\0\0.x-\0\ 1\0\0\0\17o\ 4P\0\0\0.q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0.q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0.q\17q\0x\0\0\0.x-\0\ 1\0\0\0\17o\ 4`\0\0\0.q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0.q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0.q\13q\0"x-\0\ 1\0\0\0\17o\bp\0\0\0.q\13q\0)x\84\0q1type.int64\0-\0\ 1\0\0\0\17o\bx\0\0\0.q\13q\01x-\0\ 1\0\0\0\17o\b\80\0\0\0.q\13q\0$x6\0\ 1\0\0\0\13o
+.q\ 5\88\0\0\0u\84\0q\ 1type.func(*uint8) *strings.Reader\0-\0\ 1\0\0\0\13o\b\ 1q\13q\0\ax-\0\ 1\0\0\0\17o\b\b\0\0\0\ 1q\17q\0\10\0\0\0\ 1x-\0\ 1\0\0\0\17o\b\10\0\0\0\ 1q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\ 1qE\87J¿Í\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\ 1q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\ 1q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\ 1q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\ 1q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\ 1q\17q\0@\ 1\0\0&x\84\0q\ 2go.string."func(*uint8) *strings.Reader"\0-\0\ 1\0\0\0\17o\b(\0\0\0\ 1q\13q\0\ 2x-\0\ 1\0\0\0\13o\b\ 2q\17q\0\f\0\0\0\ 2x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\ 2q\ 5\1c\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\ 2q func(*ui-\0\ 1\0\0\0\17o\b\14\0\0\0\ 2q nt8) *st-\0\ 1\0\0\0\17o\b\1c\0\0\0\ 2q rings.Re-\0\ 1\0\0\0\17o\ 4$\0\0\0\ 2q ader\0\0\0\0-\0\ 1\0\0\0\17o\ 1(\0\0\0\ 2q\ 1u6\0\ 1\0\0\0\13o
+\ 2q\ 50\0\0\0u\84\0q\ 3weak.type.*func(*uint8) *strings.Reader\0-\0\ 1\0\0\0\17o\b8\0\0\0\ 1q\13q\0\ 3x-\0\ 1\0\0\0\17o\ 1@\0\0\0\ 1q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\ 1q\17q\0h\0\0\0\ 1x-\0\ 1\0\0\0\17o\ 4P\0\0\0\ 1q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\ 1q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\ 1q\17q\0p\0\0\0\ 1x-\0\ 1\0\0\0\17o\ 4`\0\0\0\ 1q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\ 1q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0\ 1q\13q\0\ ex\84\0q\ 4type.*strings.Reader\0-\0\ 1\0\0\0\17o\bp\0\0\0\ 1q\13q\0\ 4x6\0\ 1\0\0\0\13o
+\ 1q\ 5x\0\0\0u\84\0q\ 5type.func(*uint8, *uint8, *strings.Reader) io.Reader\0-\0\ 1\0\0\0\13o\b\ 5q\13q\0\ax-\0\ 1\0\0\0\17o\b\b\0\0\0\ 5q\17q\0\10\0\0\0\ 5x-\0\ 1\0\0\0\17o\b\10\0\0\0\ 5q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\ 5qEhE\9a°\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\ 5q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\ 5q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\ 5q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\ 5q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\ 5q\17q\0@\ 1\0\0&x\84\0q\ 6go.string."func(*uint8, *uint8, *strings.Reader) io.Reader"\0-\0\ 1\0\0\0\17o\b(\0\0\0\ 5q\13q\0\ 6x-\0\ 1\0\0\0\13o\b\ 6q\17q\0\f\0\0\0\ 6x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\ 6q\ 5/\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\ 6q func(*ui-\0\ 1\0\0\0\17o\b\14\0\0\0\ 6q nt8, *ui-\0\ 1\0\0\0\17o\b\1c\0\0\0\ 6q nt8, *st-\0\ 1\0\0\0\17o\b$\0\0\0\ 6q rings.Re-\0\ 1\0\0\0\17o\b,\0\0\0\ 6q ader) io-\0\ 1\0\0\0\17o\a4\0\0\0\ 6q .Reader\0-\0\ 1\0\0\0\17o\ 1;\0\0\0\ 6q\ 1u6\0\ 1\0\0\0\13o
+\ 6q\ 5@\0\0\0u\84\0q\aweak.type.*func(*uint8, *uint8, *strings.Reader) io.Reader\0-\0\ 1\0\0\0\17o\b8\0\0\0\ 5q\13q\0\ax-\0\ 1\0\0\0\17o\ 1@\0\0\0\ 5q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\ 5q\17q\0h\0\0\0\ 5x-\0\ 1\0\0\0\17o\ 4P\0\0\0\ 5q\ 5\ 3\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\ 5q\ 5\ 3\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\ 5q\17q\0\80\0\0\0\ 5x-\0\ 1\0\0\0\17o\ 4`\0\0\0\ 5q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\ 5q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0\ 5q\13q\0\ ex-\0\ 1\0\0\0\17o\bp\0\0\0\ 5q\13q\0\ ex-\0\ 1\0\0\0\17o\bx\0\0\0\ 5q\13q\0\ 4x-\0\ 1\0\0\0\17o\b\80\0\0\0\ 5q\13q\0)x6\0\ 1\0\0\0\13o
+\ 5q\ 5\88\0\0\0u\84\0q\btype.func(*uint8) *encoding/base64.decoder\0\84\0q     type.*runtime.FuncType\0-\0\ 1\0\0\0\13o\b\bq\13q\0   x-\0\ 1\0\0\0\17o\b\b\0\0\0\bq\17q\0\10\0\0\0\bx-\0\ 1\0\0\0\17o\b\10\0\0\0\bq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\bq\ 5^G\93\ 5u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\bq\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\bq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\bq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\bq\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\bq\17q\0@\ 1\0\0&x\84\0q
+go.string."func(*uint8) *base64.decoder"\0-\0\ 1\0\0\0\17o\b(\0\0\0\bq\13q\0
+x-\0\ 1\0\0\0\13o\b
+q\17q\0\f\0\0\0
+x-\0\ 1\0\0\0\17o\ 4\b\0\0\0
+q\ 5\1c\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0
+q func(*ui-\0\ 1\0\0\0\17o\b\14\0\0\0
+q nt8) *ba-\0\ 1\0\0\0\17o\b\1c\0\0\0
+q se64.dec-\0\ 1\0\0\0\17o\ 4$\0\0\0
+q oder\0\0\0\0-\0\ 1\0\0\0\17o\ 1(\0\0\0
+q\ 1u6\0\ 1\0\0\0\13o
+
+q\ 50\0\0\0u\84\0q\vweak.type.*func(*uint8) *encoding/base64.decoder\0-\0\ 1\0\0\0\17o\b8\0\0\0\bq\13q\0\vx-\0\ 1\0\0\0\17o\ 1@\0\0\0\bq\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\bq\17q\0h\0\0\0\bx-\0\ 1\0\0\0\17o\ 4P\0\0\0\bq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\bq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\bq\17q\0p\0\0\0\bx-\0\ 1\0\0\0\17o\ 4`\0\0\0\bq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\bq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0\bq\13q\0\ ex\84\0q\ftype.*encoding/base64.decoder\0-\0\ 1\0\0\0\17o\bp\0\0\0\bq\13q\0\fx6\0\ 1\0\0\0\13o
+\bq\ 5x\0\0\0u\84\0q\rtype.func(*uint8, *uint8, *encoding/base64.decoder) io.Reader\0-\0\ 1\0\0\0\13o\b\rq\13q\0       x-\0\ 1\0\0\0\17o\b\b\0\0\0\rq\17q\0\10\0\0\0\rx-\0\ 1\0\0\0\17o\b\10\0\0\0\rq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\rq\ 5dkP"u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\rq\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\rq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\rq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\rq\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\rq\17q\0@\ 1\0\0&x\84\0q\ ego.string."func(*uint8, *uint8, *base64.decoder) io.Reader"\0-\0\ 1\0\0\0\17o\b(\0\0\0\rq\13q\0\ ex-\0\ 1\0\0\0\13o\b\ eq\17q\0\f\0\0\0\ ex-\0\ 1\0\0\0\17o\ 4\b\0\0\0\ eq\ 5/\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\ eq func(*ui-\0\ 1\0\0\0\17o\b\14\0\0\0\ eq nt8, *ui-\0\ 1\0\0\0\17o\b\1c\0\0\0\ eq nt8, *ba-\0\ 1\0\0\0\17o\b$\0\0\0\ eq se64.dec-\0\ 1\0\0\0\17o\b,\0\0\0\ eq oder) io-\0\ 1\0\0\0\17o\a4\0\0\0\ eq .Reader\0-\0\ 1\0\0\0\17o\ 1;\0\0\0\ eq\ 1u6\0\ 1\0\0\0\13o
+\ eq\ 5@\0\0\0u\84\0q\ fweak.type.*func(*uint8, *uint8, *encoding/base64.decoder) io.Reader\0-\0\ 1\0\0\0\17o\b8\0\0\0\rq\13q\0\ fx-\0\ 1\0\0\0\17o\ 1@\0\0\0\rq\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\rq\17q\0h\0\0\0\rx-\0\ 1\0\0\0\17o\ 4P\0\0\0\rq\ 5\ 3\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\rq\ 5\ 3\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\rq\17q\0\80\0\0\0\rx-\0\ 1\0\0\0\17o\ 4`\0\0\0\rq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\rq\ 5\ 1\0\0\0u\84\0q\10type.*uint8\0-\0\ 1\0\0\0\17o\bh\0\0\0\rq\13q\0\10x-\0\ 1\0\0\0\17o\bp\0\0\0\rq\13q\0\10x-\0\ 1\0\0\0\17o\bx\0\0\0\rq\13q\0\fx-\0\ 1\0\0\0\17o\b\80\0\0\0\rq\13q\0)x6\0\ 1\0\0\0\13o
+\rq\ 5\88\0\0\0u\84\0q\11type.func(io.Reader) io.Reader\0-\0\ 1\0\0\0\13o\b\11q\13q\0      x-\0\ 1\0\0\0\17o\b\b\0\0\0\11q\17q\0\10\0\0\0\11x-\0\ 1\0\0\0\17o\b\10\0\0\0\11q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\11q\ 5)|2[u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\11q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\11q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\11q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\11q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\11q\17q\0@\ 1\0\0&x\84\0q\12go.string."func(io.Reader) io.Reader"\0-\0\ 1\0\0\0\17o\b(\0\0\0\11q\13q\0\12x-\0\ 1\0\0\0\13o\b\12q\17q\0\f\0\0\0\12x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\12q\ 5\19\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\12q func(io.-\0\ 1\0\0\0\17o\b\14\0\0\0\12q Reader) -\0\ 1\0\0\0\17o\b\1c\0\0\0\12q io.Reade-\0\ 1\0\0\0\17o\ 1$\0\0\0\12q r\0\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1%\0\0\0\12q\ 1u6\0\ 1\0\0\0\13o
+\12q\ 5(\0\0\0u\84\0q\13weak.type.*func(io.Reader) io.Reader\0-\0\ 1\0\0\0\17o\b8\0\0\0\11q\13q\0\13x-\0\ 1\0\0\0\17o\ 1@\0\0\0\11q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\11q\17q\0h\0\0\0\11x-\0\ 1\0\0\0\17o\ 4P\0\0\0\11q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\11q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\11q\17q\0p\0\0\0\11x-\0\ 1\0\0\0\17o\ 4`\0\0\0\11q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\11q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0\11q\13q\0)x-\0\ 1\0\0\0\17o\bp\0\0\0\11q\13q\0)x6\0\ 1\0\0\0\13o
+\11q\ 5x\0\0\0u\84\0q\14type.func(io.Reader) ([]uint8, error)\0-\0\ 1\0\0\0\13o\b\14q\13q\0       x-\0\ 1\0\0\0\17o\b\b\0\0\0\14q\17q\0\10\0\0\0\14x-\0\ 1\0\0\0\17o\b\10\0\0\0\14q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\14q\ 5\8fBÊ9u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\14q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\14q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\14q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\14q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\14q\17q\0@\ 1\0\0&x\84\0q\15go.string."func(io.Reader) ([]uint8, error)"\0-\0\ 1\0\0\0\17o\b(\0\0\0\14q\13q\0\15x-\0\ 1\0\0\0\13o\b\15q\17q\0\f\0\0\0\15x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\15q\ 5 \0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\15q func(io.-\0\ 1\0\0\0\17o\b\14\0\0\0\15q Reader) -\0\ 1\0\0\0\17o\b\1c\0\0\0\15q ([]uint8-\0\ 1\0\0\0\17o\b$\0\0\0\15q , error)-\0\ 1\0\0\0\17o\ 1,\0\0\0\15q\ 1u6\0\ 1\0\0\0\13o
+\15q\ 50\0\0\0u\84\0q\16weak.type.*func(io.Reader) ([]uint8, error)\0-\0\ 1\0\0\0\17o\b8\0\0\0\14q\13q\0\16x-\0\ 1\0\0\0\17o\ 1@\0\0\0\14q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\14q\17q\0h\0\0\0\14x-\0\ 1\0\0\0\17o\ 4P\0\0\0\14q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\14q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\14q\17q\0p\0\0\0\14x-\0\ 1\0\0\0\17o\ 4`\0\0\0\14q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\14q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0\14q\13q\0)x\84\0q\17type.[]uint8\0-\0\ 1\0\0\0\17o\bp\0\0\0\14q\13q\0\17x-\0\ 1\0\0\0\17o\bx\0\0\0\14q\13q\0$x6\0\ 1\0\0\0\13o
+\14q\ 5\80\0\0\0u\84\0q\18type.func([]uint8, interface {}) error\0-\0\ 1\0\0\0\13o\b\18q\13q\0      x-\0\ 1\0\0\0\17o\b\b\0\0\0\18q\17q\0\10\0\0\0\18x-\0\ 1\0\0\0\17o\b\10\0\0\0\18q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\18q\ 5lÅî\ fu-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\18q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\18q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\18q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\18q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\18q\17q\0@\ 1\0\0&x\84\0q\19go.string."func([]uint8, interface {}) error"\0-\0\ 1\0\0\0\17o\b(\0\0\0\18q\13q\0\19x-\0\ 1\0\0\0\13o\b\19q\17q\0\f\0\0\0\19x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\19q\ 5!\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\19q func([]u-\0\ 1\0\0\0\17o\b\14\0\0\0\19q int8, in-\0\ 1\0\0\0\17o\b\1c\0\0\0\19q terface -\0\ 1\0\0\0\17o\b$\0\0\0\19q {}) erro-\0\ 1\0\0\0\17o\ 1,\0\0\0\19q r\0\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1-\0\0\0\19q\ 1u6\0\ 1\0\0\0\13o
+\19q\ 50\0\0\0u\84\0q\1aweak.type.*func([]uint8, interface {}) error\0-\0\ 1\0\0\0\17o\b8\0\0\0\18q\13q\0\1ax-\0\ 1\0\0\0\17o\ 1@\0\0\0\18q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\18q\17q\0h\0\0\0\18x-\0\ 1\0\0\0\17o\ 4P\0\0\0\18q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\18q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\18q\17q\0x\0\0\0\18x-\0\ 1\0\0\0\17o\ 4`\0\0\0\18q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\18q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0\18q\13q\0\17x-\0\ 1\0\0\0\17o\bp\0\0\0\18q\13q\0\1ex-\0\ 1\0\0\0\17o\bx\0\0\0\18q\13q\0$x6\0\ 1\0\0\0\13o
+\18q\ 5\80\0\0\0u\84\0q\etype.func([]uint8)\0-\0\ 1\0\0\0\13o\b\eq\13q\0  x-\0\ 1\0\0\0\17o\b\b\0\0\0\eq\17q\0\10\0\0\0\ex-\0\ 1\0\0\0\17o\b\10\0\0\0\eq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\eqE§{í·\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\eq\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\eq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\eq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\eq\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\eq\17q\0@\ 1\0\0&x\84\0q\1cgo.string."func([]uint8)"\0-\0\ 1\0\0\0\17o\b(\0\0\0\eq\13q\0\1cx-\0\ 1\0\0\0\13o\b\1cq\17q\0\f\0\0\0\1cx-\0\ 1\0\0\0\17o\ 4\b\0\0\0\1cq\ 5\r\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\1cq func([]u-\0\ 1\0\0\0\17o\ 5\14\0\0\0\1cq int8)\0\0\0-\0\ 1\0\0\0\17o\ 1\19\0\0\0\1cq\ 1u6\0\ 1\0\0\0\13o
+\1cq\ 5 \0\0\0u\84\0q\1dweak.type.*func([]uint8)\0-\0\ 1\0\0\0\17o\b8\0\0\0\eq\13q\0\1dx-\0\ 1\0\0\0\17o\ 1@\0\0\0\eq\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\eq\17q\0h\0\0\0\ex-\0\ 1\0\0\0\17o\ 4P\0\0\0\eq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\eq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\eq\17q\0p\0\0\0\ex-\0\ 1\0\0\0\17o\ 4`\0\0\0\eq\ 1u-\0\ 1\0\0\0\17o\ 4d\0\0\0\eq\ 1u-\0\ 1\0\0\0\17o\bh\0\0\0\eq\13q\0\17x6\0\ 1\0\0\0\13o
+\eq\ 5p\0\0\0u\84\0q\1etype.func(io.Reader) *bufio.Reader\0-\0\ 1\0\0\0\13o\b\1eq\13q\0  x-\0\ 1\0\0\0\17o\b\b\0\0\0\1eq\17q\0\10\0\0\0\1ex-\0\ 1\0\0\0\17o\b\10\0\0\0\1eq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\1eqE\9eñ!Å\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\1eq\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\1eq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\1eq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\1eq\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\1eq\17q\0@\ 1\0\0&x\84\0q\1fgo.string."func(io.Reader) *bufio.Reader"\0-\0\ 1\0\0\0\17o\b(\0\0\0\1eq\13q\0\1fx-\0\ 1\0\0\0\13o\b\1fq\17q\0\f\0\0\0\1fx-\0\ 1\0\0\0\17o\ 4\b\0\0\0\1fq\ 5\1d\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\1fq func(io.-\0\ 1\0\0\0\17o\b\14\0\0\0\1fq Reader) -\0\ 1\0\0\0\17o\b\1c\0\0\0\1fq *bufio.R-\0\ 1\0\0\0\17o\ 5$\0\0\0\1fq eader\0\0\0-\0\ 1\0\0\0\17o\ 1)\0\0\0\1fq\ 1u6\0\ 1\0\0\0\13o
+\1fq\ 50\0\0\0u\84\0q weak.type.*func(io.Reader) *bufio.Reader\0-\0\ 1\0\0\0\17o\b8\0\0\0\1eq\13q\0 x-\0\ 1\0\0\0\17o\ 1@\0\0\0\1eq\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\1eq\17q\0h\0\0\0\1ex-\0\ 1\0\0\0\17o\ 4P\0\0\0\1eq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\1eq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\1eq\17q\0p\0\0\0\1ex-\0\ 1\0\0\0\17o\ 4`\0\0\0\1eq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\1eq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0\1eq\13q\0)x\84\0q!type.*bufio.Reader\0-\0\ 1\0\0\0\17o\bp\0\0\0\1eq\13q\0!x6\0\ 1\0\0\0\13o
+\1eq\ 5x\0\0\0u\84\0q"type.[256]uint8\0\84\0q#type.*runtime.ArrayType\0-\0\ 1\0\0\0\13o\b"q\13q\0#x-\0\ 1\0\0\0\17o\b\b\0\0\0"q\17q\0\10\0\0\0"x-\0\ 1\0\0\0\17o\b\10\0\0\0"q\ 5\0\ 1\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0"qE\9e\9d°ÿ\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0"q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0"q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0"q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0"q\ 5\91\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0"q\13q\0&x\84\0q$go.string."[256]uint8"\0-\0\ 1\0\0\0\17o\b(\0\0\0"q\13q\0$x-\0\ 1\0\0\0\13o\b$q\17q\0\f\0\0\0$x-\0\ 1\0\0\0\17o\ 4\b\0\0\0$q\ 5
+\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0$q [256]uin-\0\ 1\0\0\0\17o\ 2\14\0\0\0$q t8\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1\16\0\0\0$q\ 1u6\0\ 1\0\0\0\13o
+$q\ 5\18\0\0\0u\84\0q%weak.type.*[256]uint8\0-\0\ 1\0\0\0\17o\b8\0\0\0"q\13q\0%x\84\0q&type.uint8\0-\0\ 1\0\0\0\17o\b@\0\0\0"q\13q\0&x-\0\ 1\0\0\0\17o\bH\0\0\0"q\13q\0\17x-\0\ 1\0\0\0\17o\bP\0\0\0"q\ 5\0\ 1\0\0u6\0\ 1\0\0\0\13o
+"q\ 5X\0\0\0u\84\0q'type.func(int32) int32\0-\0\ 1\0\0\0\13o\b'q\13q\0      x-\0\ 1\0\0\0\17o\b\b\0\0\0'q\17q\0\10\0\0\0'x-\0\ 1\0\0\0\17o\b\10\0\0\0'q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0'q\ 5\881\r7u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0'q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0'q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0'q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0'q\ 5\13\0\0\0u\84\0q(runtime.algarray\0-\0\ 1\0\0\0\17o\b \0\0\0'q\17q\0@\ 1\0\0(x\84\0q)go.string."func(int32) int32"\0-\0\ 1\0\0\0\17o\b(\0\0\0'q\13q\0)x-\0\ 1\0\0\0\13o\b)q\17q\0\f\0\0\0)x-\0\ 1\0\0\0\17o\ 4\b\0\0\0)q\ 5\11\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0)q func(int-\0\ 1\0\0\0\17o\b\14\0\0\0)q 32) int3-\0\ 1\0\0\0\17o\ 1\1c\0\0\0)q 2\0\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1\1d\0\0\0)q\ 1u6\0\ 1\0\0\0\13o
+)q\ 5 \0\0\0u\84\0q*weak.type.*func(int32) int32\0-\0\ 1\0\0\0\17o\b8\0\0\0'q\13q\0*x-\0\ 1\0\0\0\17o\ 1@\0\0\0'q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0'q\17q\0h\0\0\0'x-\0\ 1\0\0\0\17o\ 4P\0\0\0'q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0'q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0'q\17q\0p\0\0\0'x-\0\ 1\0\0\0\17o\ 4`\0\0\0'q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0'q\ 5\ 1\0\0\0u\84\0q+type.int32\0-\0\ 1\0\0\0\17o\bh\0\0\0'q\13q\0+x-\0\ 1\0\0\0\17o\bp\0\0\0'q\13q\0+x6\0\ 1\0\0\0\13o
+'q\ 5x\0\0\0u\84\0q,type.func([]uint8, []uint8) bool\0-\0\ 1\0\0\0\13o\b,q\13q\0    x-\0\ 1\0\0\0\17o\b\b\0\0\0,q\17q\0\10\0\0\0,x-\0\ 1\0\0\0\17o\b\10\0\0\0,q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0,q\ 5w£+ u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0,q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0,q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0,q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0,q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0,q\17q\0@\ 1\0\0(x\84\0q-go.string."func([]uint8, []uint8) bool"\0-\0\ 1\0\0\0\17o\b(\0\0\0,q\13q\0-x-\0\ 1\0\0\0\13o\b-q\17q\0\f\0\0\0-x-\0\ 1\0\0\0\17o\ 4\b\0\0\0-q\ 5\e\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0-q func([]u-\0\ 1\0\0\0\17o\b\14\0\0\0-q int8, []-\0\ 1\0\0\0\17o\b\1c\0\0\0-q uint8) b-\0\ 1\0\0\0\17o\ 3$\0\0\0-q ool\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1'\0\0\0-q\ 1u6\0\ 1\0\0\0\13o
+-q\ 5(\0\0\0u\84\0q.weak.type.*func([]uint8, []uint8) bool\0-\0\ 1\0\0\0\17o\b8\0\0\0,q\13q\0.x-\0\ 1\0\0\0\17o\ 1@\0\0\0,q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0,q\17q\0h\0\0\0,x-\0\ 1\0\0\0\17o\ 4P\0\0\0,q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0,q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0,q\17q\0x\0\0\0,x-\0\ 1\0\0\0\17o\ 4`\0\0\0,q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0,q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0,q\13q\0\17x-\0\ 1\0\0\0\17o\bp\0\0\0,q\13q\0\17x\84\0q/type.bool\0-\0\ 1\0\0\0\17o\bx\0\0\0,q\13q\0/x6\0\ 1\0\0\0\13o
+,q\ 5\80\0\0\0u\84\0q0type.func(int64)\0-\0\ 1\0\0\0\13o\b0q\13q\0    x-\0\ 1\0\0\0\17o\b\b\0\0\00q\17q\0\10\0\0\00x-\0\ 1\0\0\0\17o\b\10\0\0\00q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\00q\ 5!æx&u-\0\ 1\0\0\0\17o\ 1\1c\0\0\00q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\00q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\00q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\00q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\00q\17q\0@\ 1\0\0(x\84\0q1go.string."func(int64)"\0-\0\ 1\0\0\0\17o\b(\0\0\00q\13q\01x-\0\ 1\0\0\0\13o\b1q\17q\0\f\0\0\01x-\0\ 1\0\0\0\17o\ 4\b\0\0\01q\ 5\v\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\01q func(int-\0\ 1\0\0\0\17o\ 3\14\0\0\01q 64)\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1\17\0\0\01q\ 1u6\0\ 1\0\0\0\13o
+1q\ 5\18\0\0\0u\84\0q\ 1weak.type.*func(int64)\0-\0\ 1\0\0\0\17o\b8\0\0\00q\13q\0\ 1x-\0\ 1\0\0\0\17o\ 1@\0\0\00q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\00q\17q\0h\0\0\00x-\0\ 1\0\0\0\17o\ 4P\0\0\00q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\00q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\00q\17q\0p\0\0\00x-\0\ 1\0\0\0\17o\ 4`\0\0\00q\ 1u-\0\ 1\0\0\0\17o\ 4d\0\0\00q\ 1u\84\0q\ 2type.int64\0-\0\ 1\0\0\0\17o\bh\0\0\00q\13q\0\ 2x6\0\ 1\0\0\0\13o
+0q\ 5p\0\0\0u\84\0q\ 3type.func([]uint8, int) []uint8\0-\0\ 1\0\0\0\13o\b\ 3q\13q\0     x-\0\ 1\0\0\0\17o\b\b\0\0\0\ 3q\17q\0\10\0\0\0\ 3x-\0\ 1\0\0\0\17o\b\10\0\0\0\ 3q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\ 3q\ 5±¿9ku-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\ 3q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\ 3q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\ 3q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\ 3q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\ 3q\17q\0@\ 1\0\0(x\84\0q\ 4go.string."func([]uint8, int) []uint8"\0-\0\ 1\0\0\0\17o\b(\0\0\0\ 3q\13q\0\ 4x-\0\ 1\0\0\0\13o\b\ 4q\17q\0\f\0\0\0\ 4x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\ 4q\ 5\1a\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\ 4q func([]u-\0\ 1\0\0\0\17o\b\14\0\0\0\ 4q int8, in-\0\ 1\0\0\0\17o\b\1c\0\0\0\ 4q t) []uin-\0\ 1\0\0\0\17o\ 2$\0\0\0\ 4q t8\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1&\0\0\0\ 4q\ 1u6\0\ 1\0\0\0\13o
+\ 4q\ 5(\0\0\0u\84\0q\ 5weak.type.*func([]uint8, int) []uint8\0-\0\ 1\0\0\0\17o\b8\0\0\0\ 3q\13q\0\ 5x-\0\ 1\0\0\0\17o\ 1@\0\0\0\ 3q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\ 3q\17q\0h\0\0\0\ 3x-\0\ 1\0\0\0\17o\ 4P\0\0\0\ 3q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\ 3q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\ 3q\17q\0x\0\0\0\ 3x-\0\ 1\0\0\0\17o\ 4`\0\0\0\ 3q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\ 3q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0\ 3q\13q\0\17x\84\0q\ 6type.int\0-\0\ 1\0\0\0\17o\bp\0\0\0\ 3q\13q\0\ 6x-\0\ 1\0\0\0\17o\bx\0\0\0\ 3q\13q\0\17x6\0\ 1\0\0\0\13o
+\ 3q\ 5\80\0\0\0u\84\0q\atype.func(string) *text/template.Template\0-\0\ 1\0\0\0\13o\b\aq\13q\0   x-\0\ 1\0\0\0\17o\b\b\0\0\0\aq\17q\0\10\0\0\0\ax-\0\ 1\0\0\0\17o\b\10\0\0\0\aq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\aqE9èb¨\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\aq\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\aq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\aq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\aq\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\aq\17q\0@\ 1\0\0(x\84\0q\bgo.string."func(string) *template.Template"\0-\0\ 1\0\0\0\17o\b(\0\0\0\aq\13q\0\bx-\0\ 1\0\0\0\13o\b\bq\17q\0\f\0\0\0\bx-\0\ 1\0\0\0\17o\ 4\b\0\0\0\bq\ 5\1f\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\bq func(str-\0\ 1\0\0\0\17o\b\14\0\0\0\bq ing) *te-\0\ 1\0\0\0\17o\b\1c\0\0\0\bq mplate.T-\0\ 1\0\0\0\17o\a$\0\0\0\bq emplate\0-\0\ 1\0\0\0\17o\ 1+\0\0\0\bq\ 1u6\0\ 1\0\0\0\13o
+\bq\ 50\0\0\0u\84\0q    weak.type.*func(string) *text/template.Template\0-\0\ 1\0\0\0\17o\b8\0\0\0\aq\13q\0      x-\0\ 1\0\0\0\17o\ 1@\0\0\0\aq\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\aq\17q\0h\0\0\0\ax-\0\ 1\0\0\0\17o\ 4P\0\0\0\aq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\aq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\aq\17q\0p\0\0\0\ax-\0\ 1\0\0\0\17o\ 4`\0\0\0\aq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\aq\ 5\ 1\0\0\0u\84\0q
+type.string\0-\0\ 1\0\0\0\17o\bh\0\0\0\aq\13q\0
+x\84\0q\vtype.*text/template.Template\0-\0\ 1\0\0\0\17o\bp\0\0\0\aq\13q\0\vx6\0\ 1\0\0\0\13o
+\aq\ 5x\0\0\0u\84\0q\ftype.func(func(int32) int32, string) string\0\84\0q\rtype.*runtime.FuncType\0-\0\ 1\0\0\0\13o\b\fq\13q\0\rx-\0\ 1\0\0\0\17o\b\b\0\0\0\fq\17q\0\10\0\0\0\fx-\0\ 1\0\0\0\17o\b\10\0\0\0\fq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\fqE\17×áÚ\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\fq\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\fq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\fq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\fq\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\fq\17q\0@\ 1\0\0(x\84\0q\ ego.string."func(func(int32) int32, string) string"\0-\0\ 1\0\0\0\17o\b(\0\0\0\fq\13q\0\ ex-\0\ 1\0\0\0\13o\b\ eq\17q\0\f\0\0\0\ ex-\0\ 1\0\0\0\17o\ 4\b\0\0\0\ eq\ 5&\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\ eq func(fun-\0\ 1\0\0\0\17o\b\14\0\0\0\ eq c(int32)-\0\ 1\0\0\0\17o\b\1c\0\0\0\ eq  int32, -\0\ 1\0\0\0\17o\b$\0\0\0\ eq string) -\0\ 1\0\0\0\17o\ 6,\0\0\0\ eq string\0\0-\0\ 1\0\0\0\17o\ 12\0\0\0\ eq\ 1u6\0\ 1\0\0\0\13o
+\ eq\ 58\0\0\0u\84\0q\ fweak.type.*func(func(int32) int32, string) string\0-\0\ 1\0\0\0\17o\b8\0\0\0\fq\13q\0\ fx-\0\ 1\0\0\0\17o\ 1@\0\0\0\fq\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\fq\17q\0h\0\0\0\fx-\0\ 1\0\0\0\17o\ 4P\0\0\0\fq\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\fq\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\fq\17q\0x\0\0\0\fx-\0\ 1\0\0\0\17o\ 4`\0\0\0\fq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\fq\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0\fq\13q\0'x-\0\ 1\0\0\0\17o\bp\0\0\0\fq\13q\0
+x-\0\ 1\0\0\0\17o\bx\0\0\0\fq\13q\0
+x6\0\ 1\0\0\0\13o
+\fq\ 5\80\0\0\0u\84\0q\10type.func(*text/template.Template, error) *text/template.Template\0-\0\ 1\0\0\0\13o\b\10q\13q\0\rx-\0\ 1\0\0\0\17o\b\b\0\0\0\10q\17q\0\10\0\0\0\10x-\0\ 1\0\0\0\17o\b\10\0\0\0\10q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\10qE½®Ã¦\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\10q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\10q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\10q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\10q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\10q\17q\0@\ 1\0\0(x\84\0q\11go.string."func(*template.Template, error) *template.Template"\0-\0\ 1\0\0\0\17o\b(\0\0\0\10q\13q\0\11x-\0\ 1\0\0\0\13o\b\11q\17q\0\f\0\0\0\11x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\11q\ 52\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\11q func(*te-\0\ 1\0\0\0\17o\b\14\0\0\0\11q mplate.T-\0\ 1\0\0\0\17o\b\1c\0\0\0\11q emplate,-\0\ 1\0\0\0\17o\b$\0\0\0\11q  error) -\0\ 1\0\0\0\17o\b,\0\0\0\11q *templat-\0\ 1\0\0\0\17o\b4\0\0\0\11q e.Templa-\0\ 1\0\0\0\17o\ 2<\0\0\0\11q te\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1>\0\0\0\11q\ 1u6\0\ 1\0\0\0\13o
+\11q\ 5@\0\0\0u\84\0q\12weak.type.*func(*text/template.Template, error) *text/template.Template\0-\0\ 1\0\0\0\17o\b8\0\0\0\10q\13q\0\12x-\0\ 1\0\0\0\17o\ 1@\0\0\0\10q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\10q\17q\0h\0\0\0\10x-\0\ 1\0\0\0\17o\ 4P\0\0\0\10q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\10q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\10q\17q\0x\0\0\0\10x-\0\ 1\0\0\0\17o\ 4`\0\0\0\10q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0\10q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0\10q\13q\0\vx\84\0q\13type.error\0-\0\ 1\0\0\0\17o\bp\0\0\0\10q\13q\0\13x-\0\ 1\0\0\0\17o\bx\0\0\0\10q\13q\0\vx6\0\ 1\0\0\0\13o
+\10q\ 5\80\0\0\0u\84\0q\14type.func(*uintptr, uintptr, *"".JSONResponse)\0-\0\ 1\0\0\0\13o\b\14q\13q\0\rx-\0\ 1\0\0\0\17o\b\b\0\0\0\14q\17q\0\10\0\0\0\14x-\0\ 1\0\0\0\17o\b\10\0\0\0\14q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\14qE·aÕ\9d\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\14q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\14q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\14q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\14q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\14q\17q\0@\ 1\0\0(x\84\0q\15go.string."func(*uintptr, uintptr, *go1.JSONResponse)"\0-\0\ 1\0\0\0\17o\b(\0\0\0\14q\13q\0\15x-\0\ 1\0\0\0\13o\b\15q\17q\0\f\0\0\0\15x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\15q\ 5*\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\15q func(*ui-\0\ 1\0\0\0\17o\b\14\0\0\0\15q ntptr, u-\0\ 1\0\0\0\17o\b\1c\0\0\0\15q intptr, -\0\ 1\0\0\0\17o\b$\0\0\0\15q *go1.JSO-\0\ 1\0\0\0\17o\b,\0\0\0\15q NRespons-\0\ 1\0\0\0\17o\ 24\0\0\0\15q e)\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 16\0\0\0\15q\ 1u6\0\ 1\0\0\0\13o
+\15q\ 58\0\0\0u\84\0q\16weak.type.*func(*uintptr, uintptr, *"".JSONResponse)\0-\0\ 1\0\0\0\17o\b8\0\0\0\14q\13q\0\16x-\0\ 1\0\0\0\17o\ 1@\0\0\0\14q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\14q\17q\0h\0\0\0\14x-\0\ 1\0\0\0\17o\ 4P\0\0\0\14q\ 5\ 3\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\14q\ 5\ 3\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\14q\17q\0\80\0\0\0\14x-\0\ 1\0\0\0\17o\ 4`\0\0\0\14q\ 1u-\0\ 1\0\0\0\17o\ 4d\0\0\0\14q\ 1u\84\0q\17type.*uintptr\0-\0\ 1\0\0\0\17o\bh\0\0\0\14q\13q\0\17x\84\0q\18type.uintptr\0-\0\ 1\0\0\0\17o\bp\0\0\0\14q\13q\0\18x\84\0q\19type.*"".JSONResponse\0-\0\ 1\0\0\0\17o\bx\0\0\0\14q\13q\0\19x6\0\ 1\0\0\0\13o
+\14q\ 5\80\0\0\0u\84\0q\1atype.**"".JSONNode\0\84\0q\etype.*runtime.PtrType\0-\0\ 1\0\0\0\13o\b\1aq\13q\0\ex-\0\ 1\0\0\0\17o\b\b\0\0\0\1aq\17q\0\10\0\0\0\1ax-\0\ 1\0\0\0\17o\b\10\0\0\0\1aq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\1aq\ 5Ë(MFu-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\1aq\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\1aq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\1aq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\1aq\ 5\16\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\1aq\17q\0\80\0\0\0(x\84\0q\1cgo.string."**go1.JSONNode"\0-\0\ 1\0\0\0\17o\b(\0\0\0\1aq\13q\0\1cx-\0\ 1\0\0\0\13o\b\1cq\17q\0\f\0\0\0\1cx-\0\ 1\0\0\0\17o\ 4\b\0\0\0\1cq\ 5\ e\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\1cq **go1.JS-\0\ 1\0\0\0\17o\ 6\14\0\0\0\1cq ONNode\0\0-\0\ 1\0\0\0\17o\ 1\1a\0\0\0\1cq\ 1u6\0\ 1\0\0\0\13o
+\1cq\ 5 \0\0\0u\84\0q\1dweak.type.***"".JSONNode\0-\0\ 1\0\0\0\17o\b8\0\0\0\1aq\13q\0\1dx\84\0q\1etype.*"".JSONNode\0-\0\ 1\0\0\0\17o\b@\0\0\0\1aq\13q\0\1ex6\0\ 1\0\0\0\13o
+\1aq\ 5H\0\0\0u\84\0q\1ftype.func(*uintptr, uintptr, **"".JSONNode)\0-\0\ 1\0\0\0\13o\b\1fq\13q\0\rx-\0\ 1\0\0\0\17o\b\b\0\0\0\1fq\17q\0\10\0\0\0\1fx-\0\ 1\0\0\0\17o\b\10\0\0\0\1fq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0\1fqEôb¢\85\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0\1fq\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0\1fq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0\1fq\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0\1fq\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0\1fq\17q\0@\ 1\0\0(x\84\0q go.string."func(*uintptr, uintptr, **go1.JSONNode)"\0-\0\ 1\0\0\0\17o\b(\0\0\0\1fq\13q\0 x-\0\ 1\0\0\0\13o\b q\17q\0\f\0\0\0 x-\0\ 1\0\0\0\17o\ 4\b\0\0\0 q\ 5'\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0 q func(*ui-\0\ 1\0\0\0\17o\b\14\0\0\0 q ntptr, u-\0\ 1\0\0\0\17o\b\1c\0\0\0 q intptr, -\0\ 1\0\0\0\17o\b$\0\0\0 q **go1.JS-\0\ 1\0\0\0\17o\a,\0\0\0 q ONNode)\0-\0\ 1\0\0\0\17o\ 13\0\0\0 q\ 1u6\0\ 1\0\0\0\13o
+ q\ 58\0\0\0u\84\0q!weak.type.*func(*uintptr, uintptr, **"".JSONNode)\0-\0\ 1\0\0\0\17o\b8\0\0\0\1fq\13q\0!x-\0\ 1\0\0\0\17o\ 1@\0\0\0\1fq\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0\1fq\17q\0h\0\0\0\1fx-\0\ 1\0\0\0\17o\ 4P\0\0\0\1fq\ 5\ 3\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0\1fq\ 5\ 3\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0\1fq\17q\0\80\0\0\0\1fx-\0\ 1\0\0\0\17o\ 4`\0\0\0\1fq\ 1u-\0\ 1\0\0\0\17o\ 4d\0\0\0\1fq\ 1u-\0\ 1\0\0\0\17o\bh\0\0\0\1fq\13q\0\17x-\0\ 1\0\0\0\17o\bp\0\0\0\1fq\13q\0\18x-\0\ 1\0\0\0\17o\bx\0\0\0\1fq\13q\0\1ax6\0\ 1\0\0\0\13o
+\1fq\ 5\80\0\0\0u\84\0q"type.func(*uintptr, uintptr, *string)\0-\0\ 1\0\0\0\13o\b"q\13q\0\rx-\0\ 1\0\0\0\17o\b\b\0\0\0"q\17q\0\10\0\0\0"x-\0\ 1\0\0\0\17o\b\10\0\0\0"q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0"qE{ó\82\98\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0"q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0"q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0"q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0"q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0"q\17q\0@\ 1\0\0(x\84\0q#go.string."func(*uintptr, uintptr, *string)"\0-\0\ 1\0\0\0\17o\b(\0\0\0"q\13q\0#x-\0\ 1\0\0\0\13o\b#q\17q\0\f\0\0\0#x-\0\ 1\0\0\0\17o\ 4\b\0\0\0#q\ 5 \0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0#q func(*ui-\0\ 1\0\0\0\17o\b\14\0\0\0#q ntptr, u-\0\ 1\0\0\0\17o\b\1c\0\0\0#q intptr, -\0\ 1\0\0\0\17o\b$\0\0\0#q *string)-\0\ 1\0\0\0\17o\ 1,\0\0\0#q\ 1u6\0\ 1\0\0\0\13o
+#q\ 50\0\0\0u\84\0q$weak.type.*func(*uintptr, uintptr, *string)\0-\0\ 1\0\0\0\17o\b8\0\0\0"q\13q\0$x-\0\ 1\0\0\0\17o\ 1@\0\0\0"q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0"q\17q\0h\0\0\0"x-\0\ 1\0\0\0\17o\ 4P\0\0\0"q\ 5\ 3\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0"q\ 5\ 3\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0"q\17q\0\80\0\0\0"x-\0\ 1\0\0\0\17o\ 4`\0\0\0"q\ 1u-\0\ 1\0\0\0\17o\ 4d\0\0\0"q\ 1u-\0\ 1\0\0\0\17o\bh\0\0\0"q\13q\0\17x-\0\ 1\0\0\0\17o\bp\0\0\0"q\13q\0\18x\84\0q%type.*string\0-\0\ 1\0\0\0\17o\bx\0\0\0"q\13q\0%x6\0\ 1\0\0\0\13o
+"q\ 5\80\0\0\0u\84\0q&type.func(*bool, uintptr, *"".JSONResponse, *"".JSONResponse)\0-\0\ 1\0\0\0\13o\b&q\13q\0\rx-\0\ 1\0\0\0\17o\b\b\0\0\0&q\17q\0\10\0\0\0&x-\0\ 1\0\0\0\17o\b\10\0\0\0&q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0&qEâÆl\94\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0&q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0&q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0&q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0&q\ 5\13\0\0\0u-\0\ 1\0\0\0\17o\b \0\0\0&q\17q\0@\ 1\0\0(x\84\0q'go.string."func(*bool, uintptr, *go1.JSONResponse, *go1.JSONResponse)"\0-\0\ 1\0\0\0\17o\b(\0\0\0&q\13q\0'x-\0\ 1\0\0\0\13o\b'q\17q\0\f\0\0\0'x-\0\ 1\0\0\0\17o\ 4\b\0\0\0'q\ 5:\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0'q func(*bo-\0\ 1\0\0\0\17o\b\14\0\0\0'q ol, uint-\0\ 1\0\0\0\17o\b\1c\0\0\0'q ptr, *go-\0\ 1\0\0\0\17o\b$\0\0\0'q 1.JSONRe-\0\ 1\0\0\0\17o\b,\0\0\0'q sponse, -\0\ 1\0\0\0\17o\b4\0\0\0'q *go1.JSO-\0\ 1\0\0\0\17o\b<\0\0\0'q NRespons-\0\ 1\0\0\0\17o\ 2D\0\0\0'q e)\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1F\0\0\0'q\ 1u6\0\ 1\0\0\0\13o
+'q\ 5H\0\0\0u\84\0q(weak.type.*func(*bool, uintptr, *"".JSONResponse, *"".JSONResponse)\0-\0\ 1\0\0\0\17o\b8\0\0\0&q\13q\0(x-\0\ 1\0\0\0\17o\ 1@\0\0\0&q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0&q\17q\0h\0\0\0&x-\0\ 1\0\0\0\17o\ 4P\0\0\0&q\ 5\ 4\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0&q\ 5\ 4\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0&q\17q\0\88\0\0\0&x-\0\ 1\0\0\0\17o\ 4`\0\0\0&q\ 1u-\0\ 1\0\0\0\17o\ 4d\0\0\0&q\ 1u\84\0q)type.*bool\0-\0\ 1\0\0\0\17o\bh\0\0\0&q\13q\0)x-\0\ 1\0\0\0\17o\bp\0\0\0&q\13q\0\18x-\0\ 1\0\0\0\17o\bx\0\0\0&q\13q\0\19x-\0\ 1\0\0\0\17o\b\80\0\0\0&q\13q\0\19x6\0\ 1\0\0\0\13o
+&q\ 5\88\0\0\0u\84\0q*type.func(string, string) int\0-\0\ 1\0\0\0\13o\b*q\13q\0\rx-\0\ 1\0\0\0\17o\b\b\0\0\0*q\17q\0\10\0\0\0*x-\0\ 1\0\0\0\17o\b\10\0\0\0*q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 4\18\0\0\0*qE\ f6\18Ì\0\0\0\0u-\0\ 1\0\0\0\17o\ 1\1c\0\0\0*q\ 1u-\0\ 1\0\0\0\17o\ 1\1d\0\0\0*q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1e\0\0\0*q\ 5\b\0\0\0u-\0\ 1\0\0\0\17o\ 1\1f\0\0\0*q\ 5\13\0\0\0u\84\0q+runtime.algarray\0-\0\ 1\0\0\0\17o\b \0\0\0*q\17q\0@\ 1\0\0+x\84\0q,go.string."func(string, string) int"\0-\0\ 1\0\0\0\17o\b(\0\0\0*q\13q\0,x-\0\ 1\0\0\0\13o\b,q\17q\0\f\0\0\0,x-\0\ 1\0\0\0\17o\ 4\b\0\0\0,q\ 5\18\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0,q func(str-\0\ 1\0\0\0\17o\b\14\0\0\0,q ing, str-\0\ 1\0\0\0\17o\b\1c\0\0\0,q ing) int-\0\ 1\0\0\0\17o\ 1$\0\0\0,q\ 1u6\0\ 1\0\0\0\13o
+,q\ 5(\0\0\0u\84\0q-weak.type.*func(string, string) int\0-\0\ 1\0\0\0\17o\b8\0\0\0*q\13q\0-x-\0\ 1\0\0\0\17o\ 1@\0\0\0*q\ 1u-\0\ 1\0\0\0\17o\bH\0\0\0*q\17q\0h\0\0\0*x-\0\ 1\0\0\0\17o\ 4P\0\0\0*q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 4T\0\0\0*q\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\bX\0\0\0*q\17q\0x\0\0\0*x-\0\ 1\0\0\0\17o\ 4`\0\0\0*q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\ 4d\0\0\0*q\ 5\ 1\0\0\0u-\0\ 1\0\0\0\17o\bh\0\0\0*q\13q\0
+x-\0\ 1\0\0\0\17o\bp\0\0\0*q\13q\0
+x-\0\ 1\0\0\0\17o\bx\0\0\0*q\13q\0\ 6x6\0\ 1\0\0\0\13o
+*q\ 5\80\0\0\0u\84\0q.go.importpath.log.\0\84\0q/go.string."log"\0-\0\ 1\0\0\0\13o\b.q\17q\0\f\0\0\0/x-\0\ 1\0\0\0\13o\b/q\17q\0\f\0\0\0/x-\0\ 1\0\0\0\17o\ 4\b\0\0\0/q\ 5\ 3\0\0\0u-\0\ 1\0\0\0\17o\ 3\f\0\0\0/q log\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1\ f\0\0\0/q\ 1u6\0\ 1\0\0\0\13o
+/q\ 5\10\0\0\0u-\0\ 1\0\0\0\17o\ 4\b\0\0\0.q\ 5\ 3\0\0\0u6\0\ 1\0\0\0\13o
+.q\ 5\10\0\0\0u\84\0q0go.importpath.io/ioutil.\0\84\0q1go.string."io/ioutil"\0-\0\ 1\0\0\0\13o\b0q\17q\0\f\0\0\01x-\0\ 1\0\0\0\13o\b1q\17q\0\f\0\0\01x-\0\ 1\0\0\0\17o\ 4\b\0\0\01q\ 5        \0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\01q io/iouti-\0\ 1\0\0\0\17o\ 1\14\0\0\01q l\0\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1\15\0\0\01q\ 1u6\0\ 1\0\0\0\13o
+1q\ 5\18\0\0\0u-\0\ 1\0\0\0\17o\ 4\b\0\0\00q\ 5       \0\0\0u6\0\ 1\0\0\0\13o
+0q\ 5\10\0\0\0u\84\0q\ 1go.importpath.runtime.\0\84\0q\ 2go.string."runtime"\0-\0\ 1\0\0\0\13o\b\ 1q\17q\0\f\0\0\0\ 2x-\0\ 1\0\0\0\13o\b\ 2q\17q\0\f\0\0\0\ 2x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\ 2q\ 5\a\0\0\0u-\0\ 1\0\0\0\17o\a\f\0\0\0\ 2q runtime\0-\0\ 1\0\0\0\17o\ 1\13\0\0\0\ 2q\ 1u6\0\ 1\0\0\0\13o
+\ 2q\ 5\18\0\0\0u-\0\ 1\0\0\0\17o\ 4\b\0\0\0\ 1q\ 5\a\0\0\0u6\0\ 1\0\0\0\13o
+\ 1q\ 5\10\0\0\0u\84\0q\ 3go.importpath.bufio.\0\84\0q\ 4go.string."bufio"\0-\0\ 1\0\0\0\13o\b\ 3q\17q\0\f\0\0\0\ 4x-\0\ 1\0\0\0\13o\b\ 4q\17q\0\f\0\0\0\ 4x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\ 4q\ 5\ 5\0\0\0u-\0\ 1\0\0\0\17o\ 5\f\0\0\0\ 4q bufio\0\0\0-\0\ 1\0\0\0\17o\ 1\11\0\0\0\ 4q\ 1u6\0\ 1\0\0\0\13o
+\ 4q\ 5\18\0\0\0u-\0\ 1\0\0\0\17o\ 4\b\0\0\0\ 3q\ 5\ 5\0\0\0u6\0\ 1\0\0\0\13o
+\ 3q\ 5\10\0\0\0u\84\0q\ 5go.importpath.compress/bzip2.\0\84\0q\ 6go.string."compress/bzip2"\0-\0\ 1\0\0\0\13o\b\ 5q\17q\0\f\0\0\0\ 6x-\0\ 1\0\0\0\13o\b\ 6q\17q\0\f\0\0\0\ 6x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\ 6q\ 5\ e\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\ 6q compress-\0\ 1\0\0\0\17o\ 6\14\0\0\0\ 6q /bzip2\0\0-\0\ 1\0\0\0\17o\ 1\1a\0\0\0\ 6q\ 1u6\0\ 1\0\0\0\13o
+\ 6q\ 5 \0\0\0u-\0\ 1\0\0\0\17o\ 4\b\0\0\0\ 5q\ 5\ e\0\0\0u6\0\ 1\0\0\0\13o
+\ 5q\ 5\10\0\0\0u\84\0q\ago.importpath.io.\0\84\0q\bgo.string."io"\0-\0\ 1\0\0\0\13o\b\aq\17q\0\f\0\0\0\bx-\0\ 1\0\0\0\13o\b\bq\17q\0\f\0\0\0\bx-\0\ 1\0\0\0\17o\ 4\b\0\0\0\bq\ 5\ 2\0\0\0u-\0\ 1\0\0\0\17o\ 2\f\0\0\0\bq io\0\0\0\0\0\0-\0\ 1\0\0\0\17o\ 1\ e\0\0\0\bq\ 1u6\0\ 1\0\0\0\13o
+\bq\ 5\10\0\0\0u-\0\ 1\0\0\0\17o\ 4\b\0\0\0\aq\ 5\ 2\0\0\0u6\0\ 1\0\0\0\13o
+\aq\ 5\10\0\0\0u\84\0q    go.importpath.compress/gzip.\0\84\0q
+go.string."compress/gzip"\0-\0\ 1\0\0\0\13o\b    q\17q\0\f\0\0\0
+x-\0\ 1\0\0\0\13o\b
+q\17q\0\f\0\0\0
+x-\0\ 1\0\0\0\17o\ 4\b\0\0\0
+q\ 5\r\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0
+q compress-\0\ 1\0\0\0\17o\ 5\14\0\0\0
+q /gzip\0\0\0-\0\ 1\0\0\0\17o\ 1\19\0\0\0
+q\ 1u6\0\ 1\0\0\0\13o
+
+q\ 5 \0\0\0u-\0\ 1\0\0\0\17o\ 4\b\0\0\0   q\ 5\r\0\0\0u6\0\ 1\0\0\0\13o
+       q\ 5\10\0\0\0u\84\0q\vgo.importpath.testing.\0\84\0q\fgo.string."testing"\0-\0\ 1\0\0\0\13o\b\vq\17q\0\f\0\0\0\fx-\0\ 1\0\0\0\13o\b\fq\17q\0\f\0\0\0\fx-\0\ 1\0\0\0\17o\ 4\b\0\0\0\fq\ 5\a\0\0\0u-\0\ 1\0\0\0\17o\a\f\0\0\0\fq testing\0-\0\ 1\0\0\0\17o\ 1\13\0\0\0\fq\ 1u6\0\ 1\0\0\0\13o
+\fq\ 5\18\0\0\0u-\0\ 1\0\0\0\17o\ 4\b\0\0\0\vq\ 5\a\0\0\0u6\0\ 1\0\0\0\13o
+\vq\ 5\10\0\0\0u\84\0q\rgo.importpath.encoding/base64.\0\84\0q\ ego.string."encoding/base64"\0-\0\ 1\0\0\0\13o\b\rq\17q\0\f\0\0\0\ ex-\0\ 1\0\0\0\13o\b\ eq\17q\0\f\0\0\0\ ex-\0\ 1\0\0\0\17o\ 4\b\0\0\0\ eq\ 5\ f\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\ eq encoding-\0\ 1\0\0\0\17o\a\14\0\0\0\ eq /base64\0-\0\ 1\0\0\0\17o\ 1\e\0\0\0\ eq\ 1u6\0\ 1\0\0\0\13o
+\ eq\ 5 \0\0\0u-\0\ 1\0\0\0\17o\ 4\b\0\0\0\rq\ 5\ f\0\0\0u6\0\ 1\0\0\0\13o
+\rq\ 5\10\0\0\0u\84\0q\ fgo.importpath.strings.\0\84\0q\10go.string."strings"\0-\0\ 1\0\0\0\13o\b\ fq\17q\0\f\0\0\0\10x-\0\ 1\0\0\0\13o\b\10q\17q\0\f\0\0\0\10x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\10q\ 5\a\0\0\0u-\0\ 1\0\0\0\17o\a\f\0\0\0\10q strings\0-\0\ 1\0\0\0\17o\ 1\13\0\0\0\10q\ 1u6\0\ 1\0\0\0\13o
+\10q\ 5\18\0\0\0u-\0\ 1\0\0\0\17o\ 4\b\0\0\0\ fq\ 5\a\0\0\0u6\0\ 1\0\0\0\13o
+\ fq\ 5\10\0\0\0u\84\0q\11go.importpath.encoding/gob.\0\84\0q\12go.string."encoding/gob"\0-\0\ 1\0\0\0\13o\b\11q\17q\0\f\0\0\0\12x-\0\ 1\0\0\0\13o\b\12q\17q\0\f\0\0\0\12x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\12q\ 5\f\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\12q encoding-\0\ 1\0\0\0\17o\ 4\14\0\0\0\12q /gob\0\0\0\0-\0\ 1\0\0\0\17o\ 1\18\0\0\0\12q\ 1u6\0\ 1\0\0\0\13o
+\12q\ 5 \0\0\0u-\0\ 1\0\0\0\17o\ 4\b\0\0\0\11q\ 5\f\0\0\0u6\0\ 1\0\0\0\13o
+\11q\ 5\10\0\0\0u\84\0q\13go.importpath.reflect.\0\84\0q\14go.string."reflect"\0-\0\ 1\0\0\0\13o\b\13q\17q\0\f\0\0\0\14x-\0\ 1\0\0\0\13o\b\14q\17q\0\f\0\0\0\14x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\14q\ 5\a\0\0\0u-\0\ 1\0\0\0\17o\a\f\0\0\0\14q reflect\0-\0\ 1\0\0\0\17o\ 1\13\0\0\0\14q\ 1u6\0\ 1\0\0\0\13o
+\14q\ 5\18\0\0\0u-\0\ 1\0\0\0\17o\ 4\b\0\0\0\13q\ 5\a\0\0\0u6\0\ 1\0\0\0\13o
+\13q\ 5\10\0\0\0u\84\0q\15go.importpath.text/template.\0\84\0q\16go.string."text/template"\0-\0\ 1\0\0\0\13o\b\15q\17q\0\f\0\0\0\16x-\0\ 1\0\0\0\13o\b\16q\17q\0\f\0\0\0\16x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\16q\ 5\r\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\16q text/tem-\0\ 1\0\0\0\17o\ 5\14\0\0\0\16q plate\0\0\0-\0\ 1\0\0\0\17o\ 1\19\0\0\0\16q\ 1u6\0\ 1\0\0\0\13o
+\16q\ 5 \0\0\0u-\0\ 1\0\0\0\17o\ 4\b\0\0\0\15q\ 5\r\0\0\0u6\0\ 1\0\0\0\13o
+\15q\ 5\10\0\0\0u\84\0q\17go.importpath.encoding/json.\0\84\0q\18go.string."encoding/json"\0-\0\ 1\0\0\0\13o\b\17q\17q\0\f\0\0\0\18x-\0\ 1\0\0\0\13o\b\18q\17q\0\f\0\0\0\18x-\0\ 1\0\0\0\17o\ 4\b\0\0\0\18q\ 5\r\0\0\0u-\0\ 1\0\0\0\17o\b\f\0\0\0\18q encoding-\0\ 1\0\0\0\17o\ 5\14\0\0\0\18q /json\0\0\0-\0\ 1\0\0\0\17o\ 1\19\0\0\0\18q\ 1u6\0\ 1\0\0\0\13o
+\18q\ 5 \0\0\0u-\0\ 1\0\0\0\17o\ 4\b\0\0\0\17q\ 5\r\0\0\0u6\0\ 1\0\0\0\13o
+\17q\ 5\10\0\0\0u\84\0q\19go.importpath.bytes.\0\84\0q\1ago.string."bytes"\0-\0\ 1\0\0\0\13o\b\19q\17q\0\f\0\0\0\1ax-\0\ 1\0\0\0\13o\b\1aq\17q\0\f\0\0\0\1ax-\0\ 1\0\0\0\17o\ 4\b\0\0\0\1aq\ 5\ 5\0\0\0u-\0\ 1\0\0\0\17o\ 5\f\0\0\0\1aq bytes\0\0\0-\0\ 1\0\0\0\17o\ 1\11\0\0\0\1aq\ 1u6\0\ 1\0\0\0\13o
+\1aq\ 5\18\0\0\0u-\0\ 1\0\0\0\17o\ 4\b\0\0\0\19q\ 5\ 5\0\0\0u6\0\ 1\0\0\0\13o
+\19q\ 5\10\0\0\0uP\ 1\0\0\0\0\0\0
\ No newline at end of file
diff --git a/gcc/testsuite/go.test/test/bench/go1/_testmain.6 b/gcc/testsuite/go.test/test/bench/go1/_testmain.6
new file mode 100644 (file)
index 0000000..2920de0
--- /dev/null
@@ -0,0 +1,261 @@
+go object linux amd64 weekly.2012-01-15 11312+ X:none
+  exports automatically generated from
+  _testmain.go in package "main"
+
+$$  // exports
+    package main
+       import runtime "runtime"
+       import go1 "go1"
+       import testing "testing"
+       import regexp "regexp"
+       import time "time" // indirect
+       type @"time".zone struct { @"time".name string; @"time".offset int; @"time".isDST bool }
+       type @"time".zoneTrans struct { @"time".when int64; @"time".index uint8; @"time".isstd bool; @"time".isutc bool }
+       type @"time".Location struct { @"time".name string; @"time".zone []@"time".zone; @"time".tx []@"time".zoneTrans; @"time".cacheStart int64; @"time".cacheEnd int64; @"time".cacheZone *@"time".zone }
+       func (@"time".l *@"time".Location) String() (? string)
+       func (@"time".l *@"time".Location) @"time".get() (? *@"time".Location)
+       func (@"time".l *@"time".Location) @"time".lookup(@"time".sec int64) (@"time".name string, @"time".offset int, @"time".isDST bool, @"time".start int64, @"time".end int64)
+       func (@"time".l *@"time".Location) @"time".lookupName(@"time".name string "noescape") (@"time".offset int, @"time".isDST bool, @"time".ok bool)
+       func (@"time".l *@"time".Location) @"time".lookupOffset(@"time".offset int) (@"time".name string, @"time".isDST bool, @"time".ok bool)
+       type @"time".Duration int64
+       func (@"time".d @"time".Duration) Hours() (? float64)
+       func (@"time".d @"time".Duration) Minutes() (? float64)
+       func (@"time".d @"time".Duration) Nanoseconds() (? int64) { return int64(@"time".d) }
+       func (@"time".d @"time".Duration) Seconds() (? float64)
+       func (@"time".d @"time".Duration) String() (? string)
+       type @"time".Month int
+       func (@"time".m @"time".Month) String() (? string) { return @"time".months[@"time".m - @"time".Month(1)] }
+       type @"time".Weekday int
+       func (@"time".d @"time".Weekday) String() (? string) { return @"time".days[@"time".d] }
+       type @"time".Time struct { @"time".sec int64; @"time".nsec int32; @"time".loc *@"time".Location }
+       func (@"time".t @"time".Time) Add(@"time".d @"time".Duration) (? @"time".Time)
+       func (@"time".t @"time".Time) AddDate(@"time".years int, @"time".months int, @"time".days int) (? @"time".Time)
+       func (@"time".t @"time".Time "noescape") After(@"time".u @"time".Time "noescape") (? bool) { return @"time".t.@"time".sec > @"time".u.@"time".sec || @"time".t.@"time".sec == @"time".u.@"time".sec && @"time".t.@"time".nsec > @"time".u.@"time".nsec }
+       func (@"time".t @"time".Time "noescape") Before(@"time".u @"time".Time "noescape") (? bool) { return @"time".t.@"time".sec < @"time".u.@"time".sec || @"time".t.@"time".sec == @"time".u.@"time".sec && @"time".t.@"time".nsec < @"time".u.@"time".nsec }
+       func (@"time".t @"time".Time) Clock() (@"time".hour int, @"time".min int, @"time".sec int)
+       func (@"time".t @"time".Time) Date() (@"time".year int, @"time".month @"time".Month, @"time".day int)
+       func (@"time".t @"time".Time) Day() (? int)
+       func (@"time".t @"time".Time "noescape") Equal(@"time".u @"time".Time "noescape") (? bool) { return @"time".t.@"time".sec == @"time".u.@"time".sec && @"time".t.@"time".nsec == @"time".u.@"time".nsec }
+       func (@"time".t @"time".Time) Format(@"time".layout string) (? string)
+       func (@"time".t *@"time".Time "noescape") GobDecode(@"time".buf []byte "noescape") (? error)
+       func (@"time".t @"time".Time) GobEncode() (? []byte, ? error)
+       func (@"time".t @"time".Time) Hour() (? int)
+       func (@"time".t @"time".Time) ISOWeek() (@"time".year int, @"time".week int)
+       func (@"time".t @"time".Time) In(@"time".loc *@"time".Location) (? @"time".Time)
+       func (@"time".t @"time".Time "noescape") IsZero() (? bool) { return @"time".t.@"time".sec == 0 && @"time".t.@"time".nsec == 0 }
+       func (@"time".t @"time".Time) Local() (? @"time".Time)
+       func (@"time".t @"time".Time) Location() (? *@"time".Location)
+       func (@"time".t @"time".Time) MarshalJSON() (? []byte, ? error)
+       func (@"time".t @"time".Time) Minute() (? int)
+       func (@"time".t @"time".Time) Month() (? @"time".Month)
+       func (@"time".t @"time".Time "noescape") Nanosecond() (? int) { return int(@"time".t.@"time".nsec) }
+       func (@"time".t @"time".Time) Second() (? int)
+       func (@"time".t @"time".Time) String() (? string)
+       func (@"time".t @"time".Time "noescape") Sub(@"time".u @"time".Time "noescape") (? @"time".Duration) { return @"time".Duration(@"time".t.@"time".sec - @"time".u.@"time".sec) * @"time".Duration(1000000000) + @"time".Duration(@"time".t.@"time".nsec - @"time".u.@"time".nsec) }
+       func (@"time".t @"time".Time) UTC() (? @"time".Time)
+       func (@"time".t @"time".Time "noescape") Unix() (? int64) { return @"time".t.@"time".sec + -62135596800 }
+       func (@"time".t @"time".Time "noescape") UnixNano() (? int64) { return (@"time".t.@"time".sec + -62135596800) * 1000000000 + int64(@"time".t.@"time".nsec) }
+       func (@"time".t *@"time".Time "noescape") UnmarshalJSON(@"time".data []byte "noescape") (@"time".err error)
+       func (@"time".t @"time".Time) Weekday() (? @"time".Weekday)
+       func (@"time".t @"time".Time) Year() (? int)
+       func (@"time".t @"time".Time) Zone() (@"time".name string, @"time".offset int)
+       func (@"time".t @"time".Time) @"time".abs() (? uint64)
+       func (@"time".t @"time".Time) @"time".date(@"time".full bool) (@"time".year int, @"time".month @"time".Month, @"time".day int, @"time".yday int)
+       type @"testing".common struct { @"testing".output []byte; @"testing".failed bool; @"testing".start @"time".Time; @"testing".duration @"time".Duration; @"testing".self interface {}; @"testing".signal chan interface {} }
+       func (@"testing".c *@"testing".common "noescape") Error(@"testing".args ...interface {} "noescape")
+       func (@"testing".c *@"testing".common "noescape") Errorf(@"testing".format string "noescape", @"testing".args ...interface {} "noescape")
+       func (@"testing".c *@"testing".common "noescape") Fail() { @"testing".c.@"testing".failed = true }
+       func (@"testing".c *@"testing".common "noescape") FailNow()
+       func (@"testing".c *@"testing".common "noescape") Failed() (? bool) { return @"testing".c.@"testing".failed }
+       func (@"testing".c *@"testing".common "noescape") Fatal(@"testing".args ...interface {} "noescape")
+       func (@"testing".c *@"testing".common "noescape") Fatalf(@"testing".format string "noescape", @"testing".args ...interface {} "noescape")
+       func (@"testing".c *@"testing".common "noescape") Log(@"testing".args ...interface {} "noescape")
+       func (@"testing".c *@"testing".common "noescape") Logf(@"testing".format string "noescape", @"testing".args ...interface {} "noescape")
+       func (@"testing".c *@"testing".common "noescape") @"testing".log(@"testing".s string)
+       type @"testing".T struct { ? @"testing".common; @"testing".name string; @"testing".startParallel chan bool }
+       func (@"testing".t *@"testing".T "noescape") Parallel()
+       func (@"testing".t *@"testing".T "noescape") @"testing".report()
+       type @"testing".InternalTest struct { Name string; F func(? *@"testing".T) }
+       var @"".tests []@"testing".InternalTest
+       type @"testing".BenchmarkResult struct { N int; T @"time".Duration; Bytes int64 }
+       func (@"testing".r @"testing".BenchmarkResult) NsPerOp() (? int64)
+       func (@"testing".r @"testing".BenchmarkResult) String() (? string)
+       func (@"testing".r @"testing".BenchmarkResult) @"testing".mbPerSec() (? float64)
+       type @"testing".B struct { ? @"testing".common; N int; @"testing".benchmark @"testing".InternalBenchmark; @"testing".bytes int64; @"testing".timerOn bool; @"testing".result @"testing".BenchmarkResult }
+       func (@"testing".b *@"testing".B "noescape") ResetTimer()
+       func (@"testing".b *@"testing".B "noescape") SetBytes(@"testing".n int64) { @"testing".b.@"testing".bytes = @"testing".n }
+       func (@"testing".b *@"testing".B "noescape") StartTimer()
+       func (@"testing".b *@"testing".B "noescape") StopTimer()
+       func (@"testing".b *@"testing".B) @"testing".launch()
+       func (@"testing".b *@"testing".B "noescape") @"testing".nsPerOp() (? int64)
+       func (@"testing".b *@"testing".B) @"testing".run() (? @"testing".BenchmarkResult)
+       func (@"testing".b *@"testing".B) @"testing".runN(@"testing".n int)
+       func (@"testing".b *@"testing".B "noescape") @"testing".trimOutput()
+       type @"testing".InternalBenchmark struct { Name string; F func(@"testing".b *@"testing".B) }
+       var @"".benchmarks []@"testing".InternalBenchmark
+       type @"testing".InternalExample struct { Name string; F func(); Output string }
+       var @"".examples []@"testing".InternalExample
+       var @"".matchPat string
+       import syntax "regexp/syntax" // indirect
+       type @"regexp/syntax".InstOp uint8
+       type @"regexp/syntax".Inst struct { Op @"regexp/syntax".InstOp; Out uint32; Arg uint32; Rune []rune }
+       func (@"regexp/syntax".i *@"regexp/syntax".Inst "noescape") MatchEmptyWidth(@"regexp/syntax".before rune, @"regexp/syntax".after rune) (? bool)
+       func (@"regexp/syntax".i *@"regexp/syntax".Inst "noescape") MatchRune(@"regexp/syntax".r rune) (? bool)
+       func (@"regexp/syntax".i *@"regexp/syntax".Inst "noescape") String() (? string)
+       func (@"regexp/syntax".i *@"regexp/syntax".Inst "noescape") @"regexp/syntax".op() (? @"regexp/syntax".InstOp)
+       type @"regexp/syntax".EmptyOp uint8
+       type @"regexp/syntax".Prog struct { Inst []@"regexp/syntax".Inst; Start int; NumCap int }
+       func (@"regexp/syntax".p *@"regexp/syntax".Prog "noescape") Prefix() (@"regexp/syntax".prefix string, @"regexp/syntax".complete bool)
+       func (@"regexp/syntax".p *@"regexp/syntax".Prog "noescape") StartCond() (? @"regexp/syntax".EmptyOp)
+       func (@"regexp/syntax".p *@"regexp/syntax".Prog "noescape") String() (? string)
+       func (@"regexp/syntax".p *@"regexp/syntax".Prog "noescape") @"regexp/syntax".skipNop(@"regexp/syntax".pc uint32) (? *@"regexp/syntax".Inst)
+       import sync "sync" // indirect
+       type @"sync".Mutex struct { @"sync".state int32; @"sync".sema uint32 }
+       func (@"sync".m *@"sync".Mutex) Lock()
+       func (@"sync".m *@"sync".Mutex) Unlock()
+       type @"regexp".thread struct { @"regexp".inst *@"regexp/syntax".Inst; @"regexp".cap []int }
+       type @"regexp".entry struct { @"regexp".pc uint32; @"regexp".t *@"regexp".thread }
+       type @"regexp".queue struct { @"regexp".sparse []uint32; @"regexp".dense []@"regexp".entry }
+       type @"regexp".inputBytes struct { @"regexp".str []byte }
+       func (@"regexp".i *@"regexp".inputBytes "noescape") @"regexp".canCheckPrefix() (? bool) { return true }
+       func (@"regexp".i *@"regexp".inputBytes "noescape") @"regexp".context(@"regexp".pos int) (? @"regexp/syntax".EmptyOp)
+       func (@"regexp".i *@"regexp".inputBytes "noescape") @"regexp".hasPrefix(@"regexp".re *@"regexp".Regexp "noescape") (? bool)
+       func (@"regexp".i *@"regexp".inputBytes "noescape") @"regexp".index(@"regexp".re *@"regexp".Regexp "noescape", @"regexp".pos int) (? int)
+       func (@"regexp".i *@"regexp".inputBytes "noescape") @"regexp".step(@"regexp".pos int) (? rune, ? int)
+       type @"regexp".inputString struct { @"regexp".str string }
+       func (@"regexp".i *@"regexp".inputString "noescape") @"regexp".canCheckPrefix() (? bool) { return true }
+       func (@"regexp".i *@"regexp".inputString "noescape") @"regexp".context(@"regexp".pos int) (? @"regexp/syntax".EmptyOp)
+       func (@"regexp".i *@"regexp".inputString "noescape") @"regexp".hasPrefix(@"regexp".re *@"regexp".Regexp "noescape") (? bool)
+       func (@"regexp".i *@"regexp".inputString "noescape") @"regexp".index(@"regexp".re *@"regexp".Regexp "noescape", @"regexp".pos int) (? int)
+       func (@"regexp".i *@"regexp".inputString "noescape") @"regexp".step(@"regexp".pos int) (? rune, ? int)
+       import io "io" // indirect
+       type @"io".RuneReader interface { ReadRune() (@"io".r rune, @"io".size int, @"io".err error) }
+       type @"regexp".inputReader struct { @"regexp".r @"io".RuneReader; @"regexp".atEOT bool; @"regexp".pos int }
+       func (@"regexp".i *@"regexp".inputReader "noescape") @"regexp".canCheckPrefix() (? bool) { return false }
+       func (@"regexp".i *@"regexp".inputReader "noescape") @"regexp".context(@"regexp".pos int) (? @"regexp/syntax".EmptyOp) { return @"regexp/syntax".EmptyOp(0) }
+       func (@"regexp".i *@"regexp".inputReader "noescape") @"regexp".hasPrefix(@"regexp".re *@"regexp".Regexp "noescape") (? bool) { return false }
+       func (@"regexp".i *@"regexp".inputReader "noescape") @"regexp".index(@"regexp".re *@"regexp".Regexp "noescape", @"regexp".pos int) (? int) { return -1 }
+       func (@"regexp".i *@"regexp".inputReader "noescape") @"regexp".step(@"regexp".pos int) (? rune, ? int)
+       type @"regexp".input interface { @"regexp".step(@"regexp".pos int) (@"regexp".r rune, @"regexp".width int); @"regexp".canCheckPrefix() (? bool); @"regexp".hasPrefix(@"regexp".re *@"regexp".Regexp) (? bool); @"regexp".index(@"regexp".re *@"regexp".Regexp, @"regexp".pos int) (? int); @"regexp".context(@"regexp".pos int) (? @"regexp/syntax".EmptyOp) }
+       type @"regexp".machine struct { @"regexp".re *@"regexp".Regexp; @"regexp".p *@"regexp/syntax".Prog; @"regexp".q0 @"regexp".queue; @"regexp".q1 @"regexp".queue; @"regexp".pool []*@"regexp".thread; @"regexp".matched bool; @"regexp".matchcap []int; @"regexp".inputBytes @"regexp".inputBytes; @"regexp".inputString @"regexp".inputString; @"regexp".inputReader @"regexp".inputReader }
+       func (@"regexp".m *@"regexp".machine "noescape") @"regexp".add(@"regexp".q *@"regexp".queue "noescape", @"regexp".pc uint32, @"regexp".pos int, @"regexp".cap []int "noescape", @"regexp".cond @"regexp/syntax".EmptyOp, @"regexp".t *@"regexp".thread) (? *@"regexp".thread)
+       func (@"regexp".m *@"regexp".machine "noescape") @"regexp".alloc(@"regexp".i *@"regexp/syntax".Inst) (? *@"regexp".thread)
+       func (@"regexp".m *@"regexp".machine "noescape") @"regexp".clear(@"regexp".q *@"regexp".queue "noescape")
+       func (@"regexp".m *@"regexp".machine "noescape") @"regexp".free(@"regexp".t *@"regexp".thread)
+       func (@"regexp".m *@"regexp".machine "noescape") @"regexp".init(@"regexp".ncap int)
+       func (@"regexp".m *@"regexp".machine "noescape") @"regexp".match(@"regexp".i @"regexp".input, @"regexp".pos int) (? bool)
+       func (@"regexp".m *@"regexp".machine) @"regexp".newInputBytes(@"regexp".b []byte) (? @"regexp".input)
+       func (@"regexp".m *@"regexp".machine) @"regexp".newInputReader(@"regexp".r @"io".RuneReader) (? @"regexp".input)
+       func (@"regexp".m *@"regexp".machine) @"regexp".newInputString(@"regexp".s string) (? @"regexp".input)
+       func (@"regexp".m *@"regexp".machine "noescape") @"regexp".step(@"regexp".runq *@"regexp".queue "noescape", @"regexp".nextq *@"regexp".queue "noescape", @"regexp".pos int, @"regexp".nextPos int, @"regexp".c rune, @"regexp".nextCond @"regexp/syntax".EmptyOp)
+       type @"regexp".Regexp struct { @"regexp".expr string; @"regexp".prog *@"regexp/syntax".Prog; @"regexp".prefix string; @"regexp".prefixBytes []byte; @"regexp".prefixComplete bool; @"regexp".prefixRune rune; @"regexp".cond @"regexp/syntax".EmptyOp; @"regexp".numSubexp int; @"regexp".longest bool; @"regexp".mu @"sync".Mutex; @"regexp".machine []*@"regexp".machine }
+       func (@"regexp".re *@"regexp".Regexp) Find(@"regexp".b []byte) (? []byte)
+       func (@"regexp".re *@"regexp".Regexp) FindAll(@"regexp".b []byte, @"regexp".n int) (? [][]byte)
+       func (@"regexp".re *@"regexp".Regexp) FindAllIndex(@"regexp".b []byte, @"regexp".n int) (? [][]int)
+       func (@"regexp".re *@"regexp".Regexp) FindAllString(@"regexp".s string, @"regexp".n int) (? []string)
+       func (@"regexp".re *@"regexp".Regexp) FindAllStringIndex(@"regexp".s string, @"regexp".n int) (? [][]int)
+       func (@"regexp".re *@"regexp".Regexp) FindAllStringSubmatch(@"regexp".s string, @"regexp".n int) (? [][]string)
+       func (@"regexp".re *@"regexp".Regexp) FindAllStringSubmatchIndex(@"regexp".s string, @"regexp".n int) (? [][]int)
+       func (@"regexp".re *@"regexp".Regexp) FindAllSubmatch(@"regexp".b []byte, @"regexp".n int) (? [][][]byte)
+       func (@"regexp".re *@"regexp".Regexp) FindAllSubmatchIndex(@"regexp".b []byte, @"regexp".n int) (? [][]int)
+       func (@"regexp".re *@"regexp".Regexp) FindIndex(@"regexp".b []byte) (@"regexp".loc []int)
+       func (@"regexp".re *@"regexp".Regexp) FindReaderIndex(@"regexp".r @"io".RuneReader) (? []int)
+       func (@"regexp".re *@"regexp".Regexp) FindReaderSubmatchIndex(@"regexp".r @"io".RuneReader) (? []int)
+       func (@"regexp".re *@"regexp".Regexp) FindString(@"regexp".s string) (? string)
+       func (@"regexp".re *@"regexp".Regexp) FindStringIndex(@"regexp".s string) (? []int)
+       func (@"regexp".re *@"regexp".Regexp) FindStringSubmatch(@"regexp".s string) (? []string)
+       func (@"regexp".re *@"regexp".Regexp) FindStringSubmatchIndex(@"regexp".s string) (? []int)
+       func (@"regexp".re *@"regexp".Regexp) FindSubmatch(@"regexp".b []byte) (? [][]byte)
+       func (@"regexp".re *@"regexp".Regexp) FindSubmatchIndex(@"regexp".b []byte) (? []int)
+       func (@"regexp".re *@"regexp".Regexp "noescape") LiteralPrefix() (@"regexp".prefix string, @"regexp".complete bool) { return @"regexp".re.@"regexp".prefix, @"regexp".re.@"regexp".prefixComplete }
+       func (@"regexp".re *@"regexp".Regexp) Match(@"regexp".b []byte) (? bool)
+       func (@"regexp".re *@"regexp".Regexp) MatchReader(@"regexp".r @"io".RuneReader) (? bool)
+       func (@"regexp".re *@"regexp".Regexp) MatchString(@"regexp".s string) (? bool)
+       func (@"regexp".re *@"regexp".Regexp "noescape") NumSubexp() (? int) { return @"regexp".re.@"regexp".numSubexp }
+       func (@"regexp".re *@"regexp".Regexp) ReplaceAll(@"regexp".src []byte, @"regexp".repl []byte "noescape") (? []byte)
+       func (@"regexp".re *@"regexp".Regexp) ReplaceAllFunc(@"regexp".src []byte, @"regexp".repl func(? []byte) (? []byte) "noescape") (? []byte)
+       func (@"regexp".re *@"regexp".Regexp) ReplaceAllString(@"regexp".src string, @"regexp".repl string "noescape") (? string)
+       func (@"regexp".re *@"regexp".Regexp) ReplaceAllStringFunc(@"regexp".src string, @"regexp".repl func(? string) (? string) "noescape") (? string)
+       func (@"regexp".re *@"regexp".Regexp "noescape") String() (? string) { return @"regexp".re.@"regexp".expr }
+       func (@"regexp".re *@"regexp".Regexp) @"regexp".allMatches(@"regexp".s string, @"regexp".b []byte, @"regexp".n int, @"regexp".deliver func(? []int) "noescape")
+       func (@"regexp".re *@"regexp".Regexp) @"regexp".doExecute(@"regexp".r @"io".RuneReader, @"regexp".b []byte, @"regexp".s string, @"regexp".pos int, @"regexp".ncap int) (? []int)
+       func (@"regexp".re *@"regexp".Regexp) @"regexp".get() (? *@"regexp".machine)
+       func (@"regexp".re *@"regexp".Regexp "noescape") @"regexp".pad(@"regexp".a []int) (? []int)
+       func (@"regexp".re *@"regexp".Regexp) @"regexp".put(@"regexp".z *@"regexp".machine)
+       var @"".matchRe *@"regexp".Regexp
+       func @"".matchString(@"".pat string, @"".str string) (@"".result bool, @"".err error)
+       func @"".main()
+       var @"".statictmp_0001 [0]@"testing".InternalTest
+       var @"".statictmp_0002 [10]@"testing".InternalBenchmark
+       var @"".statictmp_0003 [0]@"testing".InternalExample
+       var @"".initdone· uint8
+       func @"".init()
+       var @"time".months [12]string
+       var @"time".days [7]string
+
+$$  // local types
+
+$$
+
+!
+\84\0y\ 1</\0\84\0y\ 1<home\0\84\0y\ 1<iant\0\84\0y\ 1<go\0\84\0y\ 1<test\0\84\0y\ 1<bench\0\84\0y\ 1<go1\0\84\0y\ 1<_testmain.go\08\0\ 1\0\0\0\0\0\84\0y\ 1<go1.a\08\0\ 3\0\0\0\0\ 5ÿÿÿÿu\84\0y\ 1<testing.a\08\0\ 4\0\0\0\0\ 5ÿÿÿÿu\84\0y\ 1<regexp.a\08\0\ 5\0\0\0\0\ 5ÿÿÿÿu8\0*\0\0\0\0\0\84\0q\ 1"".matchString\0\84\0q\ 2type.func(string, string) (bool, error)\0ã\0\e\0\0\0\91\ 1q\ 2E(\0\0\08\0\0\0u\84\0q\ 3"".matchPat\0\84\0q\ 4type.string\0r\0\e\0\0\0\95\b\0\0\0\ 3q\ 4\ 1\10\84\0t\ 5"".pat\0r\0\e\0\0\0\95\b\0\0\0\ 5t\ 4\ 1\11\84\0t\ 6"".err\0\84\0q\atype.error\0®\ 1\e\0\0\0\ 1u\95(\0\0\0\ 6t\a®\ 1\e\0\0\0\ 1u\950\0\0\0\ 6t\a\84\0q\btype.bool\0q\0\e\0\0\0\ 1u\81\12\b\84\0t "".result\0q\0\e\0\0\0\ 1\12\15 \0\0\0 t\84\0q
+"".matchRe\0\84\0q\vtype.*regexp.Regexp\0®\ 1\1c\0\0\0\91
+q\v\ 1\13®\ 1\1c\0\0\0\ 1u\ 1\15¢\ 1\1c\0\0\0\ 1\13\ 1\15Q\0\1c\0\0\0\0\ 5\e\0\0\0p&\0\1c\0\0\0\ 1\10\ 1\11Z\0\1c\0\0\0\0\ 5\e\0\0\0\ 1\1c\0\0\0\ 1\8f\ 1\15®\ 1\1c\0\0\0\91\ 3q\ 4\ 1\18®\ 1\1c\0\0\0\ 1\18\ 1\90r\0\1c\0\0\0\ 1\10\ 5\b\0\0\0\90«\ 1\1c\0\0\0\ 5\10\0\0\0\8f\ 1\15®\ 1\1c\0\0\0\91\ 5t\ 4\ 1\18®\ 1\1c\0\0\0\ 1\18\ 1\90r\0\1c\0\0\0\ 1\11\ 5\b\0\0\0\90\84\0q\fruntime.cmpstring\0\84\0q\rtype.func(string, string) int\0\1f\0\1c\0\0\0\0\91\fq\rr\0\1c\0\0\0\95\b\0\0\0\ 5t\ 4\ 1\11r\0\1c\0\0\0\ 5 \0\0\0\8f\ 1\13&\0\1c\0\0\0\ 1\13\ 1uZ\0\1c\0\0\0\0\ 5\e\0\0\0pY\0\1c\0\0\0\0\ 5-\0\0\0\ 1\1d\0\0\0\91\ 5t\ 4\ 1\10\84\0\8f\ eregexp.expr\0«\ 1\1e\0\0\0\11\ e\8f\ 1\13®\ 1\1e\0\0\0\ 1\10\91\ 3q\ 4®\ 1\1e\0\0\0\ 1\10\ 1\8er\0\1e\0\0\0\ 1\11\95\b\0\0\0\ 3q\ 4r\0\1e\0\0\0\ 1\11\ 5\b\0\0\0\8e\84\0q\ fregexp.Compile\0\84\0q\10type.func(string) (*regexp.Regexp, error)\0\1f\0\1e\0\0\0\0\91\ fq\10®\ 1\1e\0\0\0\ 5\10\0\0\0\8f\ 1\13®\ 1\1e\0\0\0\ 1\13\91
+q\v«\ 1\1e\0\0\0\ 5\18\0\0\0\8f\ 1\13®\ 1\1e\0\0\0\ 1\8e\ 1\15®\ 1\1e\0\0\0\ 1\15\95(\0\0\0\ 6t\a®\ 1\1e\0\0\0\ 5\b\0\0\0\8e\ 1\15®\ 1\1e\0\0\0\ 1\15\950\0\0\0\ 6t\a«\ 1\1f\0\0\0\95(\0\0\0\ 6t\a\ 1\13¢\ 1\1f\0\0\0\ 1\8e\ 1uQ\0\1f\0\0\0\0\ 5-\0\0\0\0 \0\0\0\0\0®\ 1#\0\0\0\91
+q\v\ 1\13\84\0\8f\11regexp.re\0®\ 1#\0\0\0\ 1\13\11\11\8f\84\0\8f\12regexp.s\0«\ 1#\0\0\0\15\b\0\0\0\12\8f\ 1\13\84\0t\13"".str\0®\ 1#\0\0\0\95\10\0\0\0\13t\ 4\ 1\15®\ 1#\0\0\0\ 1\15\ 1\8er\0#\0\0\0\95\18\0\0\0\13t\ 4\ 1\15r\0#\0\0\0\ 1\15\ 5\b\0\0\0\8e\84\0q\14regexp.(*Regexp).MatchString\0\1f\0#\0\0\0\0\11\14qq\0#\0\0\0\ 5\18\0\0\0\8f\ 1\13q\0#\0\0\0\ 1\13\ 1\10q\0#\0\0\0\ 1\10\ 1\13q\0#\0\0\0\ 1\13\95 \0\0\0 t\b®\ 1#\0\0\0\ 1u\95(\0\0\0\ 6t\a®\ 1#\0\0\0\ 1u\950\0\0\0\ 6t\aª\0#\0\0\0\0\0\84\0q\15"".main\0\84\0q\16type.func()\0ã\0&\0\0\0\91\15q\16\ 58\0\0\0\ 1'\0\0\0\93q\0\ 1x\ 2\ 1\13\84\0\8f\17testing.matchString\0®\ 1'\0\0\0\ 1\13\11\17\8f\84\0\8f\18testing.tests\0«\ 1'\0\0\0\15\b\0\0\0\18\8f\ 1\13\84\0q\19"".tests\0\84\0q\1atype.[]testing.InternalTest\0®\ 1'\0\0\0\91\19q\1a\ 1\15®\ 1'\0\0\0\ 1\15\ 1\8er\0'\0\0\0\95\b\0\0\0\19q\1a\ 1\15r\0'\0\0\0\ 1\15\ 5\b\0\0\0\8er\0'\0\0\0\95\f\0\0\0\19q\1a\ 1\15r\0'\0\0\0\ 1\15\ 5\f\0\0\0\8e\84\0\8f\etesting.benchmarks\0«\ 1'\0\0\0\15\18\0\0\0\e\8f\ 1\13\84\0q\1c"".benchmarks\0\84\0q\1dtype.[]testing.InternalBenchmark\0®\ 1'\0\0\0\91\1cq\1d\ 1\15®\ 1'\0\0\0\ 1\15\ 1\8er\0'\0\0\0\95\b\0\0\0\1cq\1d\ 1\15r\0'\0\0\0\ 1\15\ 5\b\0\0\0\8er\0'\0\0\0\95\f\0\0\0\1cq\1d\ 1\15r\0'\0\0\0\ 1\15\ 5\f\0\0\0\8e\84\0\8f\1etesting.examples\0«\ 1'\0\0\0\15(\0\0\0\1e\8f\ 1\13\84\0q\1f"".examples\0\84\0q type.[]testing.InternalExample\0®\ 1'\0\0\0\91\1f\ 1\15®\ 1'\0\0\0\ 1\15\ 1\8er\0'\0\0\0\95\b\0\0\0\1f\ 1\15r\0'\0\0\0\ 1\15\ 5\b\0\0\0\8er\0'\0\0\0\95\f\0\0\0\1f\ 1\15r\0'\0\0\0\ 1\15\ 5\f\0\0\0\8e\84\0q!testing.Main\0\84\0q"type.func(func(string, string) (bool, error), []testing.InternalTest, []testing.InternalBenchmark, []testing.InternalExample)\0\1f\0'\0\0\0\0\91!q"ª\0(\0\0\0\0\0\84\0q#"".init\0ã\0(\0\0\0\91#q\16\ 1u\84\0q$"".initdone·\0\84\0q%type.uint8\0q\0(\0\0\0\91$q%\ 1\10q\0(\0\0\0\81\10%\ 1\13%\0(\0\0\0\ 1\13\ 1uQ\0(\0\0\0\0\ 5`\0\0\0pq\0(\0\0\0\81\10%\ 1\13%\0(\0\0\0\ 1\13\ 5\ 2\0\0\0uZ\0(\0\0\0\0\ 5_\0\0\0\0(\0\0\0\0\0\84\0q&runtime.throwinit\0\1f\0(\0\0\0\0\91&q\16q\0(\0\0\0\ 5\ 1\0\0\0u\91$q%\84\0q'regexp.init\0\1f\0(\0\0\0\0\91'q\16\84\0q(testing.init\0\1f\0(\0\0\0\0\91(q\16\84\0q)go1.init\0\1f\0(\0\0\0\0\91)q\16\84\0q*go1.BenchmarkBinaryTree17\0\84\0q+type.func(*testing.B)\0®\ 1\15\0\0\0\93q\0*x+\ 1\13\84\0q,"".statictmp_0002\0®\ 1\15\0\0\0\ 1\13\15\10\0\0\0,q\84\0q-go1.BenchmarkFannkuch11\0®\ 1\15\0\0\0\93q\0-x+\ 1\13®\ 1\15\0\0\0\ 1\13\15(\0\0\0,q\84\0q.go1.BenchmarkGobDecode\0®\ 1\15\0\0\0\93q\0.x+\ 1\13®\ 1\15\0\0\0\ 1\13\15@\0\0\0,q\84\0q/go1.BenchmarkGobEncode\0®\ 1\15\0\0\0\93q\0/x+\ 1\13®\ 1\15\0\0\0\ 1\13\15X\0\0\0,q\84\0q0go1.BenchmarkGzip\0®\ 1\15\0\0\0\93q\00x+\ 1\13®\ 1\15\0\0\0\ 1\13\15p\0\0\0,q\84\0q1go1.BenchmarkGunzip\0®\ 1\15\0\0\0\93q\01x+\ 1\13®\ 1\15\0\0\0\ 1\13\15\88\0\0\0,q\84\0q\ 1go1.BenchmarkJSONEncode\0®\ 1\15\0\0\0\93q\0\ 1x+\ 1\13®\ 1\15\0\0\0\ 1\13\15 \0\0\0,q\84\0q\ 2go1.BenchmarkJSONDecode\0®\ 1\15\0\0\0\93q\0\ 2x+\ 1\13®\ 1\15\0\0\0\ 1\13\15¸\0\0\0,q\84\0q\ 3go1.BenchmarkRevcomp25M\0®\ 1\15\0\0\0\93q\0\ 3x+\ 1\13®\ 1\15\0\0\0\ 1\13\15Ð\0\0\0,q\84\0q\ 4go1.BenchmarkTemplate\0®\ 1\15\0\0\0\93q\0\ 4x+\ 1\13®\ 1\15\0\0\0\ 1\13\15è\0\0\0,qq\0(\0\0\0\ 5\ 2\0\0\0u\91$q%ª\0(\0\0\0\0\0\84\0q\ 5"".statictmp_0001\0-\0\b\0\0\0\93o\b\19q\1a\13q\0\ 5x-\0\b\0\0\0\97o\ 4\b\0\0\0\19q\1a\ 1u-\0\b\0\0\0\97o\ 4\f\0\0\0\19q\1a\ 1u-\0\15\0\0\0\93o\b\1cq\1d\13q\0,x-\0\15\0\0\0\97o\ 4\b\0\0\0\1cq\1d\ 5
+\0\0\0u-\0\15\0\0\0\97o\ 4\f\0\0\0\1cq\1d\ 5
+\0\0\0u\84\0q\ 6go.string."go1.BenchmarkBinaryTree17"\0-\0\15\0\0\0\13o\b,q\17q\0\f\0\0\0\ 6x-\0\15\0\0\0\13o\b\ 6q\17q\0\f\0\0\0\ 6x-\0\15\0\0\0\17o\ 4\b\0\0\0\ 6q\ 5\19\0\0\0u-\0\15\0\0\0\17o\b\f\0\0\0\ 6q go1.Benc-\0\15\0\0\0\17o\b\14\0\0\0\ 6q hmarkBin-\0\15\0\0\0\17o\b\1c\0\0\0\ 6q aryTree1-\0\15\0\0\0\17o\ 1$\0\0\0\ 6q 7\0\0\0\0\0\0\0-\0\15\0\0\0\17o\ 1%\0\0\0\ 6q\ 1u6\0\15\0\0\0\13o
+\ 6q\ 5(\0\0\0u-\0\15\0\0\0\17o\ 4\b\0\0\0,q\ 5\19\0\0\0u\84\0q\ago.string."go1.BenchmarkFannkuch11"\0-\0\15\0\0\0\17o\b\18\0\0\0,q\17q\0\f\0\0\0\ax-\0\15\0\0\0\13o\b\aq\17q\0\f\0\0\0\ax-\0\15\0\0\0\17o\ 4\b\0\0\0\aq\ 5\17\0\0\0u-\0\15\0\0\0\17o\b\f\0\0\0\aq go1.Benc-\0\15\0\0\0\17o\b\14\0\0\0\aq hmarkFan-\0\15\0\0\0\17o\a\1c\0\0\0\aq nkuch11\0-\0\15\0\0\0\17o\ 1#\0\0\0\aq\ 1u6\0\15\0\0\0\13o
+\aq\ 5(\0\0\0u-\0\15\0\0\0\17o\ 4 \0\0\0,q\ 5\17\0\0\0u\84\0q\bgo.string."go1.BenchmarkGobDecode"\0-\0\15\0\0\0\17o\b0\0\0\0,q\17q\0\f\0\0\0\bx-\0\15\0\0\0\13o\b\bq\17q\0\f\0\0\0\bx-\0\15\0\0\0\17o\ 4\b\0\0\0\bq\ 5\16\0\0\0u-\0\15\0\0\0\17o\b\f\0\0\0\bq go1.Benc-\0\15\0\0\0\17o\b\14\0\0\0\bq hmarkGob-\0\15\0\0\0\17o\ 6\1c\0\0\0\bq Decode\0\0-\0\15\0\0\0\17o\ 1"\0\0\0\bq\ 1u6\0\15\0\0\0\13o
+\bq\ 5(\0\0\0u-\0\15\0\0\0\17o\ 48\0\0\0,q\ 5\16\0\0\0u\84\0q       go.string."go1.BenchmarkGobEncode"\0-\0\15\0\0\0\17o\bH\0\0\0,q\17q\0\f\0\0\0       x-\0\15\0\0\0\13o\b      q\17q\0\f\0\0\0        x-\0\15\0\0\0\17o\ 4\b\0\0\0  q\ 5\16\0\0\0u-\0\15\0\0\0\17o\b\f\0\0\0    q go1.Benc-\0\15\0\0\0\17o\b\14\0\0\0 q hmarkGob-\0\15\0\0\0\17o\ 6\1c\0\0\0 q Encode\0\0-\0\15\0\0\0\17o\ 1"\0\0\0 q\ 1u6\0\15\0\0\0\13o
+       q\ 5(\0\0\0u-\0\15\0\0\0\17o\ 4P\0\0\0,q\ 5\16\0\0\0u\84\0q
+go.string."go1.BenchmarkGzip"\0-\0\15\0\0\0\17o\b`\0\0\0,q\17q\0\f\0\0\0
+x-\0\15\0\0\0\13o\b
+q\17q\0\f\0\0\0
+x-\0\15\0\0\0\17o\ 4\b\0\0\0
+q\ 5\11\0\0\0u-\0\15\0\0\0\17o\b\f\0\0\0
+q go1.Benc-\0\15\0\0\0\17o\b\14\0\0\0
+q hmarkGzi-\0\15\0\0\0\17o\ 1\1c\0\0\0
+q p\0\0\0\0\0\0\0-\0\15\0\0\0\17o\ 1\1d\0\0\0
+q\ 1u6\0\15\0\0\0\13o
+
+q\ 5 \0\0\0u-\0\15\0\0\0\17o\ 4h\0\0\0,q\ 5\11\0\0\0u\84\0q\vgo.string."go1.BenchmarkGunzip"\0-\0\15\0\0\0\17o\bx\0\0\0,q\17q\0\f\0\0\0\vx-\0\15\0\0\0\13o\b\vq\17q\0\f\0\0\0\vx-\0\15\0\0\0\17o\ 4\b\0\0\0\vq\ 5\13\0\0\0u-\0\15\0\0\0\17o\b\f\0\0\0\vq go1.Benc-\0\15\0\0\0\17o\b\14\0\0\0\vq hmarkGun-\0\15\0\0\0\17o\ 3\1c\0\0\0\vq zip\0\0\0\0\0-\0\15\0\0\0\17o\ 1\1f\0\0\0\vq\ 1u6\0\15\0\0\0\13o
+\vq\ 5 \0\0\0u-\0\15\0\0\0\17o\ 4\80\0\0\0,q\ 5\13\0\0\0u\84\0q\fgo.string."go1.BenchmarkJSONEncode"\0-\0\15\0\0\0\17o\b\90\0\0\0,q\17q\0\f\0\0\0\fx-\0\15\0\0\0\13o\b\fq\17q\0\f\0\0\0\fx-\0\15\0\0\0\17o\ 4\b\0\0\0\fq\ 5\17\0\0\0u-\0\15\0\0\0\17o\b\f\0\0\0\fq go1.Benc-\0\15\0\0\0\17o\b\14\0\0\0\fq hmarkJSO-\0\15\0\0\0\17o\a\1c\0\0\0\fq NEncode\0-\0\15\0\0\0\17o\ 1#\0\0\0\fq\ 1u6\0\15\0\0\0\13o
+\fq\ 5(\0\0\0u-\0\15\0\0\0\17o\ 4\98\0\0\0,q\ 5\17\0\0\0u\84\0q\rgo.string."go1.BenchmarkJSONDecode"\0-\0\15\0\0\0\17o\b¨\0\0\0,q\17q\0\f\0\0\0\rx-\0\15\0\0\0\13o\b\rq\17q\0\f\0\0\0\rx-\0\15\0\0\0\17o\ 4\b\0\0\0\rq\ 5\17\0\0\0u-\0\15\0\0\0\17o\b\f\0\0\0\rq go1.Benc-\0\15\0\0\0\17o\b\14\0\0\0\rq hmarkJSO-\0\15\0\0\0\17o\a\1c\0\0\0\rq NDecode\0-\0\15\0\0\0\17o\ 1#\0\0\0\rq\ 1u6\0\15\0\0\0\13o
+\rq\ 5(\0\0\0u-\0\15\0\0\0\17o\ 4°\0\0\0,q\ 5\17\0\0\0u\84\0q\ ego.string."go1.BenchmarkRevcomp25M"\0-\0\15\0\0\0\17o\bÀ\0\0\0,q\17q\0\f\0\0\0\ ex-\0\15\0\0\0\13o\b\ eq\17q\0\f\0\0\0\ ex-\0\15\0\0\0\17o\ 4\b\0\0\0\ eq\ 5\17\0\0\0u-\0\15\0\0\0\17o\b\f\0\0\0\ eq go1.Benc-\0\15\0\0\0\17o\b\14\0\0\0\ eq hmarkRev-\0\15\0\0\0\17o\a\1c\0\0\0\ eq comp25M\0-\0\15\0\0\0\17o\ 1#\0\0\0\ eq\ 1u6\0\15\0\0\0\13o
+\ eq\ 5(\0\0\0u-\0\15\0\0\0\17o\ 4È\0\0\0,q\ 5\17\0\0\0u\84\0q\ fgo.string."go1.BenchmarkTemplate"\0-\0\15\0\0\0\17o\bØ\0\0\0,q\17q\0\f\0\0\0\ fx-\0\15\0\0\0\13o\b\ fq\17q\0\f\0\0\0\ fx-\0\15\0\0\0\17o\ 4\b\0\0\0\ fq\ 5\15\0\0\0u-\0\15\0\0\0\17o\b\f\0\0\0\ fq go1.Benc-\0\15\0\0\0\17o\b\14\0\0\0\ fq hmarkTem-\0\15\0\0\0\17o\ 5\1c\0\0\0\ fq plate\0\0\0-\0\15\0\0\0\17o\ 1!\0\0\0\ fq\ 1u6\0\15\0\0\0\13o
+\ fq\ 5(\0\0\0u-\0\15\0\0\0\17o\ 4à\0\0\0,q\ 5\15\0\0\0u\84\0q\10"".statictmp_0003\0-\0\16\0\0\0\93o\b\1f\13q\0\10x-\0\16\0\0\0\97o\ 4\b\0\0\0\1f\ 1u-\0\16\0\0\0\97o\ 4\f\0\0\0\1f\ 1u6\0\b\0\0\0\91\19q\1a\a\0\0\10\0\0\0u6\0\15\0\0\0\91\1cq\1d\a\0\0\10\0\0\0u6\0\16\0\0\0\91\1f\a\0\0\10\0\0\0u\84\0q\11"".matchPat\0\84\0q\12type.string\06\0\18\0\0\0\91\11q\12\a\0\0\10\0\0\0u\84\0q\13"".matchRe\0\84\0q\14type.*regexp.Regexp\06\0\19\0\0\0\91\13q\14\a\0\0\b\0\0\0u6\0\b\0\0\0\11\ 5q\ 3\0\0u6\0\15\0\0\0\11,q\a\0\0ð\0\0\0u6\0\16\0\0\0\11\10q\ 3\0\0u6\0(\0\0\0\91$q%\a\0\0\ 1\0\0\0u\84\0q\15type.func(string, string) (bool, error)\0\84\0q\16type.*runtime.FuncType\0-\0(\0\0\0\13o\b\15q\13q\0\16x-\0(\0\0\0\17o\b\b\0\0\0\15q\17q\0\10\0\0\0\15x-\0(\0\0\0\17o\b\10\0\0\0\15q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 4\18\0\0\0\15q\ 5B\807#u-\0(\0\0\0\17o\ 1\1c\0\0\0\15q\ 1u-\0(\0\0\0\17o\ 1\1d\0\0\0\15q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 1\1e\0\0\0\15q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 1\1f\0\0\0\15q\ 5\13\0\0\0u\84\0q\17runtime.algarray\0-\0(\0\0\0\17o\b \0\0\0\15q\17q\0@\ 1\0\0\17x\84\0q\18go.string."func(string, string) (bool, error)"\0-\0(\0\0\0\17o\b(\0\0\0\15q\13q\0\18x-\0(\0\0\0\13o\b\18q\17q\0\f\0\0\0\18x-\0(\0\0\0\17o\ 4\b\0\0\0\18q\ 5"\0\0\0u-\0(\0\0\0\17o\b\f\0\0\0\18q func(str-\0(\0\0\0\17o\b\14\0\0\0\18q ing, str-\0(\0\0\0\17o\b\1c\0\0\0\18q ing) (bo-\0(\0\0\0\17o\b$\0\0\0\18q ol, erro-\0(\0\0\0\17o\ 2,\0\0\0\18q r)\0\0\0\0\0\0-\0(\0\0\0\17o\ 1.\0\0\0\18q\ 1u6\0(\0\0\0\13o
+\18q\ 50\0\0\0u\84\0q\19weak.type.*func(string, string) (bool, error)\0-\0(\0\0\0\17o\b8\0\0\0\15q\13q\0\19x-\0(\0\0\0\17o\ 1@\0\0\0\15q\ 1u-\0(\0\0\0\17o\bH\0\0\0\15q\17q\0h\0\0\0\15x-\0(\0\0\0\17o\ 4P\0\0\0\15q\ 5\ 2\0\0\0u-\0(\0\0\0\17o\ 4T\0\0\0\15q\ 5\ 2\0\0\0u-\0(\0\0\0\17o\bX\0\0\0\15q\17q\0x\0\0\0\15x-\0(\0\0\0\17o\ 4`\0\0\0\15q\ 5\ 2\0\0\0u-\0(\0\0\0\17o\ 4d\0\0\0\15q\ 5\ 2\0\0\0u-\0(\0\0\0\17o\bh\0\0\0\15q\13q\0\12x-\0(\0\0\0\17o\bp\0\0\0\15q\13q\0\12x\84\0q\1atype.bool\0-\0(\0\0\0\17o\bx\0\0\0\15q\13q\0\1ax\84\0q\etype.error\0-\0(\0\0\0\17o\b\80\0\0\0\15q\13q\0\ex6\0(\0\0\0\13o
+\15q\ 5\88\0\0\0u\84\0q\1ctype.func(string, string) int\0-\0(\0\0\0\13o\b\1cq\13q\0\16x-\0(\0\0\0\17o\b\b\0\0\0\1cq\17q\0\10\0\0\0\1cx-\0(\0\0\0\17o\b\10\0\0\0\1cq\ 5\b\0\0\0u-\0(\0\0\0\17o\ 4\18\0\0\0\1cqE\ f6\18Ì\0\0\0\0u-\0(\0\0\0\17o\ 1\1c\0\0\0\1cq\ 1u-\0(\0\0\0\17o\ 1\1d\0\0\0\1cq\ 5\b\0\0\0u-\0(\0\0\0\17o\ 1\1e\0\0\0\1cq\ 5\b\0\0\0u-\0(\0\0\0\17o\ 1\1f\0\0\0\1cq\ 5\13\0\0\0u-\0(\0\0\0\17o\b \0\0\0\1cq\17q\0@\ 1\0\0\17x\84\0q\1dgo.string."func(string, string) int"\0-\0(\0\0\0\17o\b(\0\0\0\1cq\13q\0\1dx-\0(\0\0\0\13o\b\1dq\17q\0\f\0\0\0\1dx-\0(\0\0\0\17o\ 4\b\0\0\0\1dq\ 5\18\0\0\0u-\0(\0\0\0\17o\b\f\0\0\0\1dq func(str-\0(\0\0\0\17o\b\14\0\0\0\1dq ing, str-\0(\0\0\0\17o\b\1c\0\0\0\1dq ing) int-\0(\0\0\0\17o\ 1$\0\0\0\1dq\ 1u6\0(\0\0\0\13o
+\1dq\ 5(\0\0\0u\84\0q\1eweak.type.*func(string, string) int\0-\0(\0\0\0\17o\b8\0\0\0\1cq\13q\0\1ex-\0(\0\0\0\17o\ 1@\0\0\0\1cq\ 1u-\0(\0\0\0\17o\bH\0\0\0\1cq\17q\0h\0\0\0\1cx-\0(\0\0\0\17o\ 4P\0\0\0\1cq\ 5\ 2\0\0\0u-\0(\0\0\0\17o\ 4T\0\0\0\1cq\ 5\ 2\0\0\0u-\0(\0\0\0\17o\bX\0\0\0\1cq\17q\0x\0\0\0\1cx-\0(\0\0\0\17o\ 4`\0\0\0\1cq\ 5\ 1\0\0\0u-\0(\0\0\0\17o\ 4d\0\0\0\1cq\ 5\ 1\0\0\0u-\0(\0\0\0\17o\bh\0\0\0\1cq\13q\0\12x-\0(\0\0\0\17o\bp\0\0\0\1cq\13q\0\12x\84\0q\1ftype.int\0-\0(\0\0\0\17o\bx\0\0\0\1cq\13q\0\1fx6\0(\0\0\0\13o
+\1cq\ 5\80\0\0\0u\84\0q type.func(string) (*regexp.Regexp, error)\0-\0(\0\0\0\13o\b q\13q\0\16x-\0(\0\0\0\17o\b\b\0\0\0 q\17q\0\10\0\0\0 x-\0(\0\0\0\17o\b\10\0\0\0 q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 4\18\0\0\0 qEN4Bé\0\0\0\0u-\0(\0\0\0\17o\ 1\1c\0\0\0 q\ 1u-\0(\0\0\0\17o\ 1\1d\0\0\0 q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 1\1e\0\0\0 q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 1\1f\0\0\0 q\ 5\13\0\0\0u-\0(\0\0\0\17o\b \0\0\0 q\17q\0@\ 1\0\0\17x\84\0q!go.string."func(string) (*regexp.Regexp, error)"\0-\0(\0\0\0\17o\b(\0\0\0 q\13q\0!x-\0(\0\0\0\13o\b!q\17q\0\f\0\0\0!x-\0(\0\0\0\17o\ 4\b\0\0\0!q\ 5$\0\0\0u-\0(\0\0\0\17o\b\f\0\0\0!q func(str-\0(\0\0\0\17o\b\14\0\0\0!q ing) (*r-\0(\0\0\0\17o\b\1c\0\0\0!q egexp.Re-\0(\0\0\0\17o\b$\0\0\0!q gexp, er-\0(\0\0\0\17o\ 4,\0\0\0!q ror)\0\0\0\0-\0(\0\0\0\17o\ 10\0\0\0!q\ 1u6\0(\0\0\0\13o
+!q\ 58\0\0\0u\84\0q"weak.type.*func(string) (*regexp.Regexp, error)\0-\0(\0\0\0\17o\b8\0\0\0 q\13q\0"x-\0(\0\0\0\17o\ 1@\0\0\0 q\ 1u-\0(\0\0\0\17o\bH\0\0\0 q\17q\0h\0\0\0 x-\0(\0\0\0\17o\ 4P\0\0\0 q\ 5\ 1\0\0\0u-\0(\0\0\0\17o\ 4T\0\0\0 q\ 5\ 1\0\0\0u-\0(\0\0\0\17o\bX\0\0\0 q\17q\0p\0\0\0 x-\0(\0\0\0\17o\ 4`\0\0\0 q\ 5\ 2\0\0\0u-\0(\0\0\0\17o\ 4d\0\0\0 q\ 5\ 2\0\0\0u-\0(\0\0\0\17o\bh\0\0\0 q\13q\0\12x-\0(\0\0\0\17o\bp\0\0\0 q\13q\0\14x-\0(\0\0\0\17o\bx\0\0\0 q\13q\0\ex6\0(\0\0\0\13o
+ q\ 5\80\0\0\0u\84\0q#type.func()\0-\0(\0\0\0\13o\b#q\13q\0\16x-\0(\0\0\0\17o\b\b\0\0\0#q\17q\0\10\0\0\0#x-\0(\0\0\0\17o\b\10\0\0\0#q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 4\18\0\0\0#qEö¼\82ö\0\0\0\0u-\0(\0\0\0\17o\ 1\1c\0\0\0#q\ 1u-\0(\0\0\0\17o\ 1\1d\0\0\0#q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 1\1e\0\0\0#q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 1\1f\0\0\0#q\ 5\13\0\0\0u-\0(\0\0\0\17o\b \0\0\0#q\17q\0@\ 1\0\0\17x\84\0q$go.string."func()"\0-\0(\0\0\0\17o\b(\0\0\0#q\13q\0$x-\0(\0\0\0\13o\b$q\17q\0\f\0\0\0$x-\0(\0\0\0\17o\ 4\b\0\0\0$q\ 5\ 6\0\0\0u-\0(\0\0\0\17o\ 6\f\0\0\0$q func()\0\0-\0(\0\0\0\17o\ 1\12\0\0\0$q\ 1u6\0(\0\0\0\13o
+$q\ 5\18\0\0\0u\84\0q%weak.type.*func()\0-\0(\0\0\0\17o\b8\0\0\0#q\13q\0%x-\0(\0\0\0\17o\ 1@\0\0\0#q\ 1u-\0(\0\0\0\17o\bH\0\0\0#q\17q\0h\0\0\0#x-\0(\0\0\0\17o\ 4P\0\0\0#q\ 1u-\0(\0\0\0\17o\ 4T\0\0\0#q\ 1u-\0(\0\0\0\17o\bX\0\0\0#q\17q\0h\0\0\0#x-\0(\0\0\0\17o\ 4`\0\0\0#q\ 1u-\0(\0\0\0\17o\ 4d\0\0\0#q\ 1u6\0(\0\0\0\13o
+#q\ 5h\0\0\0u\84\0q&type.[]testing.InternalTest\0\84\0q'type.*runtime.SliceType\0-\0(\0\0\0\13o\b&q\13q\0'x-\0(\0\0\0\17o\b\b\0\0\0&q\17q\0\10\0\0\0&x-\0(\0\0\0\17o\b\10\0\0\0&q\ 5\10\0\0\0u-\0(\0\0\0\17o\ 4\18\0\0\0&q\ 5\9b\85ÑXu-\0(\0\0\0\17o\ 1\1c\0\0\0&q\ 1u-\0(\0\0\0\17o\ 1\1d\0\0\0&q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 1\1e\0\0\0&q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 1\1f\0\0\0&q\ 5\17\0\0\0u-\0(\0\0\0\17o\b \0\0\0&q\17q\0à\ 1\0\0\17x\84\0q(go.string."[]testing.InternalTest"\0-\0(\0\0\0\17o\b(\0\0\0&q\13q\0(x-\0(\0\0\0\13o\b(q\17q\0\f\0\0\0(x-\0(\0\0\0\17o\ 4\b\0\0\0(q\ 5\16\0\0\0u-\0(\0\0\0\17o\b\f\0\0\0(q []testin-\0(\0\0\0\17o\b\14\0\0\0(q g.Intern-\0(\0\0\0\17o\ 6\1c\0\0\0(q alTest\0\0-\0(\0\0\0\17o\ 1"\0\0\0(q\ 1u6\0(\0\0\0\13o
+(q\ 5(\0\0\0u\84\0q)weak.type.*[]testing.InternalTest\0-\0(\0\0\0\17o\b8\0\0\0&q\13q\0)x\84\0q*type.testing.InternalTest\0-\0(\0\0\0\17o\b@\0\0\0&q\13q\0*x6\0(\0\0\0\13o
+&q\ 5H\0\0\0u\84\0q+type.[]testing.InternalBenchmark\0-\0(\0\0\0\13o\b+q\13q\0'x-\0(\0\0\0\17o\b\b\0\0\0+q\17q\0\10\0\0\0+x-\0(\0\0\0\17o\b\10\0\0\0+q\ 5\10\0\0\0u-\0(\0\0\0\17o\ 4\18\0\0\0+q\ 5'À(Vu-\0(\0\0\0\17o\ 1\1c\0\0\0+q\ 1u-\0(\0\0\0\17o\ 1\1d\0\0\0+q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 1\1e\0\0\0+q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 1\1f\0\0\0+q\ 5\17\0\0\0u-\0(\0\0\0\17o\b \0\0\0+q\17q\0à\ 1\0\0\17x\84\0q,go.string."[]testing.InternalBenchmark"\0-\0(\0\0\0\17o\b(\0\0\0+q\13q\0,x-\0(\0\0\0\13o\b,q\17q\0\f\0\0\0,x-\0(\0\0\0\17o\ 4\b\0\0\0,q\ 5\e\0\0\0u-\0(\0\0\0\17o\b\f\0\0\0,q []testin-\0(\0\0\0\17o\b\14\0\0\0,q g.Intern-\0(\0\0\0\17o\b\1c\0\0\0,q alBenchm-\0(\0\0\0\17o\ 3$\0\0\0,q ark\0\0\0\0\0-\0(\0\0\0\17o\ 1'\0\0\0,q\ 1u6\0(\0\0\0\13o
+,q\ 5(\0\0\0u\84\0q-weak.type.*[]testing.InternalBenchmark\0-\0(\0\0\0\17o\b8\0\0\0+q\13q\0-x\84\0q.type.testing.InternalBenchmark\0-\0(\0\0\0\17o\b@\0\0\0+q\13q\0.x6\0(\0\0\0\13o
++q\ 5H\0\0\0u\84\0q/type.[]testing.InternalExample\0-\0(\0\0\0\13o\b/q\13q\0'x-\0(\0\0\0\17o\b\b\0\0\0/q\17q\0\10\0\0\0/x-\0(\0\0\0\17o\b\10\0\0\0/q\ 5\10\0\0\0u-\0(\0\0\0\17o\ 4\18\0\0\0/q\ 5oÁ£Ju-\0(\0\0\0\17o\ 1\1c\0\0\0/q\ 1u-\0(\0\0\0\17o\ 1\1d\0\0\0/q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 1\1e\0\0\0/q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 1\1f\0\0\0/q\ 5\17\0\0\0u-\0(\0\0\0\17o\b \0\0\0/q\17q\0à\ 1\0\0\17x\84\0q0go.string."[]testing.InternalExample"\0-\0(\0\0\0\17o\b(\0\0\0/q\13q\00x-\0(\0\0\0\13o\b0q\17q\0\f\0\0\00x-\0(\0\0\0\17o\ 4\b\0\0\00q\ 5\19\0\0\0u-\0(\0\0\0\17o\b\f\0\0\00q []testin-\0(\0\0\0\17o\b\14\0\0\00q g.Intern-\0(\0\0\0\17o\b\1c\0\0\00q alExampl-\0(\0\0\0\17o\ 1$\0\0\00q e\0\0\0\0\0\0\0-\0(\0\0\0\17o\ 1%\0\0\00q\ 1u6\0(\0\0\0\13o
+0q\ 5(\0\0\0u\84\0q1weak.type.*[]testing.InternalExample\0-\0(\0\0\0\17o\b8\0\0\0/q\13q\01x\84\0q\ 1type.testing.InternalExample\0-\0(\0\0\0\17o\b@\0\0\0/q\13q\0\ 1x6\0(\0\0\0\13o
+/q\ 5H\0\0\0u\84\0q\ 2type.func(func(string, string) (bool, error), []testing.InternalTest, []testing.InternalBenchmark, []testing.InternalExample)\0-\0(\0\0\0\13o\b\ 2q\13q\0\16x-\0(\0\0\0\17o\b\b\0\0\0\ 2q\17q\0\10\0\0\0\ 2x-\0(\0\0\0\17o\b\10\0\0\0\ 2q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 4\18\0\0\0\ 2qEÍ\1d\10\8c\0\0\0\0u-\0(\0\0\0\17o\ 1\1c\0\0\0\ 2q\ 1u-\0(\0\0\0\17o\ 1\1d\0\0\0\ 2q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 1\1e\0\0\0\ 2q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 1\1f\0\0\0\ 2q\ 5\13\0\0\0u-\0(\0\0\0\17o\b \0\0\0\ 2q\17q\0@\ 1\0\0\17x\84\0q\ 3""..gostring.1\0-\0(\0\0\0\17o\b(\0\0\0\ 2q\13q\0\ 3x-\0(\0\0\0\13o\b\ 3q\17q\0\f\0\0\0\ 3x-\0(\0\0\0\17o\ 4\b\0\0\0\ 3q\ 5x\0\0\0u-\0(\0\0\0\17o\b\f\0\0\0\ 3q func(fun-\0(\0\0\0\17o\b\14\0\0\0\ 3q c(string-\0(\0\0\0\17o\b\1c\0\0\0\ 3q , string-\0(\0\0\0\17o\b$\0\0\0\ 3q ) (bool,-\0(\0\0\0\17o\b,\0\0\0\ 3q  error),-\0(\0\0\0\17o\b4\0\0\0\ 3q  []testi-\0(\0\0\0\17o\b<\0\0\0\ 3q ng.Inter-\0(\0\0\0\17o\bD\0\0\0\ 3q nalTest,-\0(\0\0\0\17o\bL\0\0\0\ 3q  []testi-\0(\0\0\0\17o\bT\0\0\0\ 3q ng.Inter-\0(\0\0\0\17o\b\\0\0\0\ 3q nalBench-\0(\0\0\0\17o\bd\0\0\0\ 3q mark, []-\0(\0\0\0\17o\bl\0\0\0\ 3q testing.-\0(\0\0\0\17o\bt\0\0\0\ 3q Internal-\0(\0\0\0\17o\b|\0\0\0\ 3q Example)-\0(\0\0\0\17o\ 1\84\0\0\0\ 3q\ 1u6\0(\0\0\0\13o
+\ 3q\ 5\88\0\0\0u\84\0q\ 4weak.type.*func(func(string, string) (bool, error), []testing.InternalTest, []testing.InternalBenchmark, []testing.InternalExample)\0-\0(\0\0\0\17o\b8\0\0\0\ 2q\13q\0\ 4x-\0(\0\0\0\17o\ 1@\0\0\0\ 2q\ 1u-\0(\0\0\0\17o\bH\0\0\0\ 2q\17q\0h\0\0\0\ 2x-\0(\0\0\0\17o\ 4P\0\0\0\ 2q\ 5\ 4\0\0\0u-\0(\0\0\0\17o\ 4T\0\0\0\ 2q\ 5\ 4\0\0\0u-\0(\0\0\0\17o\bX\0\0\0\ 2q\17q\0\88\0\0\0\ 2x-\0(\0\0\0\17o\ 4`\0\0\0\ 2q\ 1u-\0(\0\0\0\17o\ 4d\0\0\0\ 2q\ 1u-\0(\0\0\0\17o\bh\0\0\0\ 2q\13q\0\15x-\0(\0\0\0\17o\bp\0\0\0\ 2q\13q\0&x-\0(\0\0\0\17o\bx\0\0\0\ 2q\13q\0+x-\0(\0\0\0\17o\b\80\0\0\0\ 2q\13q\0/x6\0(\0\0\0\13o
+\ 2q\ 5\88\0\0\0u\84\0q\ 5type.func(*testing.B)\0-\0(\0\0\0\13o\b\ 5q\13q\0\16x-\0(\0\0\0\17o\b\b\0\0\0\ 5q\17q\0\10\0\0\0\ 5x-\0(\0\0\0\17o\b\10\0\0\0\ 5q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 4\18\0\0\0\ 5qEúr\1eÀ\0\0\0\0u-\0(\0\0\0\17o\ 1\1c\0\0\0\ 5q\ 1u-\0(\0\0\0\17o\ 1\1d\0\0\0\ 5q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 1\1e\0\0\0\ 5q\ 5\b\0\0\0u-\0(\0\0\0\17o\ 1\1f\0\0\0\ 5q\ 5\13\0\0\0u-\0(\0\0\0\17o\b \0\0\0\ 5q\17q\0À\0\0\0\17x\84\0q\ 6go.string."func(*testing.B)"\0-\0(\0\0\0\17o\b(\0\0\0\ 5q\13q\0\ 6x-\0(\0\0\0\13o\b\ 6q\17q\0\f\0\0\0\ 6x-\0(\0\0\0\17o\ 4\b\0\0\0\ 6q\ 5\10\0\0\0u-\0(\0\0\0\17o\b\f\0\0\0\ 6q func(*te-\0(\0\0\0\17o\b\14\0\0\0\ 6q sting.B)-\0(\0\0\0\17o\ 1\1c\0\0\0\ 6q\ 1u6\0(\0\0\0\13o
+\ 6q\ 5 \0\0\0u\84\0q\aweak.type.*func(*testing.B)\0-\0(\0\0\0\17o\b8\0\0\0\ 5q\13q\0\ax-\0(\0\0\0\17o\ 1@\0\0\0\ 5q\ 1u-\0(\0\0\0\17o\bH\0\0\0\ 5q\17q\0h\0\0\0\ 5x-\0(\0\0\0\17o\ 4P\0\0\0\ 5q\ 5\ 1\0\0\0u-\0(\0\0\0\17o\ 4T\0\0\0\ 5q\ 5\ 1\0\0\0u-\0(\0\0\0\17o\bX\0\0\0\ 5q\17q\0p\0\0\0\ 5x-\0(\0\0\0\17o\ 4`\0\0\0\ 5q\ 1u-\0(\0\0\0\17o\ 4d\0\0\0\ 5q\ 1u\84\0q\btype.*testing.B\0-\0(\0\0\0\17o\bh\0\0\0\ 5q\13q\0\bx6\0(\0\0\0\13o
+\ 5q\ 5p\0\0\0u\84\0q    go.importpath.runtime.\0\84\0q
+go.string."runtime"\0-\0(\0\0\0\13o\b  q\17q\0\f\0\0\0
+x-\0(\0\0\0\13o\b
+q\17q\0\f\0\0\0
+x-\0(\0\0\0\17o\ 4\b\0\0\0
+q\ 5\a\0\0\0u-\0(\0\0\0\17o\a\f\0\0\0
+q runtime\0-\0(\0\0\0\17o\ 1\13\0\0\0
+q\ 1u6\0(\0\0\0\13o
+
+q\ 5\18\0\0\0u-\0(\0\0\0\17o\ 4\b\0\0\0   q\ 5\a\0\0\0u6\0(\0\0\0\13o
+       q\ 5\10\0\0\0u\84\0q\vgo.importpath.go1.\0\84\0q\fgo.string."go1"\0-\0(\0\0\0\13o\b\vq\17q\0\f\0\0\0\fx-\0(\0\0\0\13o\b\fq\17q\0\f\0\0\0\fx-\0(\0\0\0\17o\ 4\b\0\0\0\fq\ 5\ 3\0\0\0u-\0(\0\0\0\17o\ 3\f\0\0\0\fq go1\0\0\0\0\0-\0(\0\0\0\17o\ 1\ f\0\0\0\fq\ 1u6\0(\0\0\0\13o
+\fq\ 5\10\0\0\0u-\0(\0\0\0\17o\ 4\b\0\0\0\vq\ 5\ 3\0\0\0u6\0(\0\0\0\13o
+\vq\ 5\10\0\0\0u\84\0q\rgo.importpath.testing.\0\84\0q\ ego.string."testing"\0-\0(\0\0\0\13o\b\rq\17q\0\f\0\0\0\ ex-\0(\0\0\0\13o\b\ eq\17q\0\f\0\0\0\ ex-\0(\0\0\0\17o\ 4\b\0\0\0\ eq\ 5\a\0\0\0u-\0(\0\0\0\17o\a\f\0\0\0\ eq testing\0-\0(\0\0\0\17o\ 1\13\0\0\0\ eq\ 1u6\0(\0\0\0\13o
+\ eq\ 5\18\0\0\0u-\0(\0\0\0\17o\ 4\b\0\0\0\rq\ 5\a\0\0\0u6\0(\0\0\0\13o
+\rq\ 5\10\0\0\0u\84\0q\ fgo.importpath.regexp.\0\84\0q\10go.string."regexp"\0-\0(\0\0\0\13o\b\ fq\17q\0\f\0\0\0\10x-\0(\0\0\0\13o\b\10q\17q\0\f\0\0\0\10x-\0(\0\0\0\17o\ 4\b\0\0\0\10q\ 5\ 6\0\0\0u-\0(\0\0\0\17o\ 6\f\0\0\0\10q regexp\0\0-\0(\0\0\0\17o\ 1\12\0\0\0\10q\ 1u6\0(\0\0\0\13o
+\10q\ 5\18\0\0\0u-\0(\0\0\0\17o\ 4\b\0\0\0\ fq\ 5\ 6\0\0\0u6\0(\0\0\0\13o
+\ fq\ 5\10\0\0\0uP\ 1\0\0\0\0\0\0
\ No newline at end of file
diff --git a/gcc/testsuite/go.test/test/bench/go1/_testmain.go b/gcc/testsuite/go.test/test/bench/go1/_testmain.go
new file mode 100644 (file)
index 0000000..bedc373
--- /dev/null
@@ -0,0 +1,40 @@
+package main
+
+import target "go1"
+import "testing"
+import "regexp"
+
+var tests = []testing.InternalTest{
+}
+
+var benchmarks = []testing.InternalBenchmark{
+       {"go1.BenchmarkBinaryTree17", target.BenchmarkBinaryTree17},
+       {"go1.BenchmarkFannkuch11", target.BenchmarkFannkuch11},
+       {"go1.BenchmarkGobDecode", target.BenchmarkGobDecode},
+       {"go1.BenchmarkGobEncode", target.BenchmarkGobEncode},
+       {"go1.BenchmarkGzip", target.BenchmarkGzip},
+       {"go1.BenchmarkGunzip", target.BenchmarkGunzip},
+       {"go1.BenchmarkJSONEncode", target.BenchmarkJSONEncode},
+       {"go1.BenchmarkJSONDecode", target.BenchmarkJSONDecode},
+       {"go1.BenchmarkRevcomp25M", target.BenchmarkRevcomp25M},
+       {"go1.BenchmarkTemplate", target.BenchmarkTemplate},
+}
+var examples = []testing.InternalExample{}
+
+var matchPat string
+var matchRe *regexp.Regexp
+
+func matchString(pat, str string) (result bool, err error) {
+       if matchRe == nil || matchPat != pat {
+               matchPat = pat
+               matchRe, err = regexp.Compile(matchPat)
+               if err != nil {
+                       return
+               }
+       }
+       return matchRe.MatchString(str), nil
+}
+
+func main() {
+       testing.Main(matchString, tests, benchmarks, examples)
+}
diff --git a/gcc/testsuite/go.test/test/bench/go1/binarytree_test.go b/gcc/testsuite/go.test/test/bench/go1/binarytree_test.go
new file mode 100644 (file)
index 0000000..c64c4b8
--- /dev/null
@@ -0,0 +1,63 @@
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// This benchmark, taken from the shootout, tests garbage collector
+// performance by generating and discarding large binary trees.
+
+package go1
+
+import "testing"
+
+type binaryNode struct {
+       item        int
+       left, right *binaryNode
+}
+
+func bottomUpTree(item, depth int) *binaryNode {
+       if depth <= 0 {
+               return &binaryNode{item: item}
+       }
+       return &binaryNode{item, bottomUpTree(2*item-1, depth-1), bottomUpTree(2*item, depth-1)}
+}
+
+func (n *binaryNode) itemCheck() int {
+       if n.left == nil {
+               return n.item
+       }
+       return n.item + n.left.itemCheck() - n.right.itemCheck()
+}
+
+const minDepth = 4
+
+func binarytree(n int) {
+       maxDepth := n
+       if minDepth+2 > n {
+               maxDepth = minDepth + 2
+       }
+       stretchDepth := maxDepth + 1
+
+       check := bottomUpTree(0, stretchDepth).itemCheck()
+       //fmt.Printf("stretch tree of depth %d\t check: %d\n", stretchDepth, check)
+
+       longLivedTree := bottomUpTree(0, maxDepth)
+
+       for depth := minDepth; depth <= maxDepth; depth += 2 {
+               iterations := 1 << uint(maxDepth-depth+minDepth)
+               check = 0
+
+               for i := 1; i <= iterations; i++ {
+                       check += bottomUpTree(i, depth).itemCheck()
+                       check += bottomUpTree(-i, depth).itemCheck()
+               }
+               //fmt.Printf("%d\t trees of depth %d\t check: %d\n", iterations*2, depth, check)
+       }
+       longLivedTree.itemCheck()
+       //fmt.Printf("long lived tree of depth %d\t check: %d\n", maxDepth, longLivedTree.itemCheck())
+}
+
+func BenchmarkBinaryTree17(b *testing.B) {
+       for i := 0; i < b.N; i++ {
+               binarytree(17)
+       }
+}
diff --git a/gcc/testsuite/go.test/test/bench/go1/dummy.go b/gcc/testsuite/go.test/test/bench/go1/dummy.go
new file mode 100644 (file)
index 0000000..4956bc7
--- /dev/null
@@ -0,0 +1,3 @@
+package go1
+
+// Nothing to see here: everything is in the _test files.
diff --git a/gcc/testsuite/go.test/test/bench/go1/fannkuch_test.go b/gcc/testsuite/go.test/test/bench/go1/fannkuch_test.go
new file mode 100644 (file)
index 0000000..ae45bfd
--- /dev/null
@@ -0,0 +1,84 @@
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// This benchmark, taken from the shootout, tests array indexing
+// and array bounds elimination performance.
+
+package go1
+
+import "testing"
+
+func fannkuch(n int) int {
+       if n < 1 {
+               return 0
+       }
+
+       n1 := n - 1
+       perm := make([]int, n)
+       perm1 := make([]int, n)
+       count := make([]int, n)
+
+       for i := 0; i < n; i++ {
+               perm1[i] = i // initial (trivial) permutation
+       }
+
+       r := n
+       didpr := 0
+       flipsMax := 0
+       for {
+               if didpr < 30 {
+                       didpr++
+               }
+               for ; r != 1; r-- {
+                       count[r-1] = r
+               }
+
+               if perm1[0] != 0 && perm1[n1] != n1 {
+                       flips := 0
+                       for i := 1; i < n; i++ { // perm = perm1
+                               perm[i] = perm1[i]
+                       }
+                       k := perm1[0] // cache perm[0] in k
+                       for {         // k!=0 ==> k>0
+                               for i, j := 1, k-1; i < j; i, j = i+1, j-1 {
+                                       perm[i], perm[j] = perm[j], perm[i]
+                               }
+                               flips++
+                               // Now exchange k (caching perm[0]) and perm[k]... with care!
+                               j := perm[k]
+                               perm[k] = k
+                               k = j
+                               if k == 0 {
+                                       break
+                               }
+                       }
+                       if flipsMax < flips {
+                               flipsMax = flips
+                       }
+               }
+
+               for ; r < n; r++ {
+                       // rotate down perm[0..r] by one
+                       perm0 := perm1[0]
+                       for i := 0; i < r; i++ {
+                               perm1[i] = perm1[i+1]
+                       }
+                       perm1[r] = perm0
+                       count[r]--
+                       if count[r] > 0 {
+                               break
+                       }
+               }
+               if r == n {
+                       return flipsMax
+               }
+       }
+       return 0
+}
+
+func BenchmarkFannkuch11(b *testing.B) {
+       for i := 0; i < b.N; i++ {
+               fannkuch(11)
+       }
+}
diff --git a/gcc/testsuite/go.test/test/bench/go1/fasta_test.go b/gcc/testsuite/go.test/test/bench/go1/fasta_test.go
new file mode 100644 (file)
index 0000000..dcb2d10
--- /dev/null
@@ -0,0 +1,164 @@
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package go1
+
+// Not a benchmark; input for revcomp.
+
+var fasta25m = fasta(25e6)
+
+func fasta(n int) []byte {
+       out := make(fastaBuffer, 0, 11*n)
+
+       iub := []fastaAcid{
+               {prob: 0.27, sym: 'a'},
+               {prob: 0.12, sym: 'c'},
+               {prob: 0.12, sym: 'g'},
+               {prob: 0.27, sym: 't'},
+               {prob: 0.02, sym: 'B'},
+               {prob: 0.02, sym: 'D'},
+               {prob: 0.02, sym: 'H'},
+               {prob: 0.02, sym: 'K'},
+               {prob: 0.02, sym: 'M'},
+               {prob: 0.02, sym: 'N'},
+               {prob: 0.02, sym: 'R'},
+               {prob: 0.02, sym: 'S'},
+               {prob: 0.02, sym: 'V'},
+               {prob: 0.02, sym: 'W'},
+               {prob: 0.02, sym: 'Y'},
+       }
+
+       homosapiens := []fastaAcid{
+               {prob: 0.3029549426680, sym: 'a'},
+               {prob: 0.1979883004921, sym: 'c'},
+               {prob: 0.1975473066391, sym: 'g'},
+               {prob: 0.3015094502008, sym: 't'},
+       }
+
+       alu := []byte(
+               "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG" +
+                       "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA" +
+                       "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT" +
+                       "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA" +
+                       "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG" +
+                       "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC" +
+                       "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA")
+
+       out.WriteString(">ONE Homo sapiens alu\n")
+       fastaRepeat(&out, alu, 2*n)
+       out.WriteString(">TWO IUB ambiguity codes\n")
+       fastaRandom(&out, iub, 3*n)
+       out.WriteString(">THREE Homo sapiens frequency\n")
+       fastaRandom(&out, homosapiens, 5*n)
+       return out
+}
+
+type fastaBuffer []byte
+
+func (b *fastaBuffer) Flush() {
+       panic("flush")
+}
+
+func (b *fastaBuffer) WriteString(s string) {
+       p := b.NextWrite(len(s))
+       copy(p, s)
+}
+
+func (b *fastaBuffer) NextWrite(n int) []byte {
+       p := *b
+       if len(p)+n > cap(p) {
+               b.Flush()
+               p = *b
+       }
+       out := p[len(p) : len(p)+n]
+       *b = p[:len(p)+n]
+       return out
+}
+
+const fastaLine = 60
+
+func fastaRepeat(out *fastaBuffer, alu []byte, n int) {
+       buf := append(alu, alu...)
+       off := 0
+       for n > 0 {
+               m := n
+               if m > fastaLine {
+                       m = fastaLine
+               }
+               buf1 := out.NextWrite(m + 1)
+               copy(buf1, buf[off:])
+               buf1[m] = '\n'
+               if off += m; off >= len(alu) {
+                       off -= len(alu)
+               }
+               n -= m
+       }
+}
+
+const (
+       fastaLookupSize          = 4096
+       fastaLookupScale float64 = fastaLookupSize - 1
+)
+
+var fastaRand uint32 = 42
+
+type fastaAcid struct {
+       sym   byte
+       prob  float64
+       cprob float64
+       next  *fastaAcid
+}
+
+func fastaComputeLookup(acid []fastaAcid) *[fastaLookupSize]*fastaAcid {
+       var lookup [fastaLookupSize]*fastaAcid
+       var p float64
+       for i := range acid {
+               p += acid[i].prob
+               acid[i].cprob = p * fastaLookupScale
+               if i > 0 {
+                       acid[i-1].next = &acid[i]
+               }
+       }
+       acid[len(acid)-1].cprob = 1.0 * fastaLookupScale
+
+       j := 0
+       for i := range lookup {
+               for acid[j].cprob < float64(i) {
+                       j++
+               }
+               lookup[i] = &acid[j]
+       }
+
+       return &lookup
+}
+
+func fastaRandom(out *fastaBuffer, acid []fastaAcid, n int) {
+       const (
+               IM = 139968
+               IA = 3877
+               IC = 29573
+       )
+       lookup := fastaComputeLookup(acid)
+       for n > 0 {
+               m := n
+               if m > fastaLine {
+                       m = fastaLine
+               }
+               buf := out.NextWrite(m + 1)
+               f := fastaLookupScale / IM
+               myrand := fastaRand
+               for i := 0; i < m; i++ {
+                       myrand = (myrand*IA + IC) % IM
+                       r := float64(int(myrand)) * f
+                       a := lookup[int(r)]
+                       for a.cprob < r {
+                               a = a.next
+                       }
+                       buf[i] = a.sym
+               }
+               fastaRand = myrand
+               buf[m] = '\n'
+               n -= m
+       }
+}
diff --git a/gcc/testsuite/go.test/test/bench/go1/gob_test.go b/gcc/testsuite/go.test/test/bench/go1/gob_test.go
new file mode 100644 (file)
index 0000000..00eeed5
--- /dev/null
@@ -0,0 +1,95 @@
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// This benchmark tests gob encoding and decoding performance.
+
+package go1
+
+import (
+       "bytes"
+       "encoding/gob"
+       "encoding/json"
+       "io/ioutil"
+       "log"
+       "reflect"
+       "testing"
+)
+
+var (
+       gobbytes []byte
+       gobdata  *JSONResponse
+)
+
+func gobinit() {
+       // gobinit is called after json's init,
+       // because it uses jsondata.
+       gobdata = gobResponse(&jsondata)
+
+       var buf bytes.Buffer
+       if err := gob.NewEncoder(&buf).Encode(gobdata); err != nil {
+               panic(err)
+       }
+       gobbytes = buf.Bytes()
+
+       var r JSONResponse
+       if err := gob.NewDecoder(bytes.NewBuffer(gobbytes)).Decode(&r); err != nil {
+               panic(err)
+       }
+       if !reflect.DeepEqual(gobdata, &r) {
+               log.Printf("%v\n%v", jsondata, r)
+               b, _ := json.Marshal(&jsondata)
+               br, _ := json.Marshal(&r)
+               log.Printf("%s\n%s\n", b, br)
+               panic("gob: encode+decode lost data")
+       }
+}
+
+// gob turns [] into null, so make a copy of the data structure like that
+func gobResponse(r *JSONResponse) *JSONResponse {
+       return &JSONResponse{gobNode(r.Tree), r.Username}
+}
+
+func gobNode(n *JSONNode) *JSONNode {
+       n1 := new(JSONNode)
+       *n1 = *n
+       if len(n1.Kids) == 0 {
+               n1.Kids = nil
+       } else {
+               for i, k := range n1.Kids {
+                       n1.Kids[i] = gobNode(k)
+               }
+       }
+       return n1
+}
+
+func gobdec() {
+       if gobbytes == nil {
+               panic("gobdata not initialized")
+       }
+       var r JSONResponse
+       if err := gob.NewDecoder(bytes.NewBuffer(gobbytes)).Decode(&r); err != nil {
+               panic(err)
+       }
+       _ = r
+}
+
+func gobenc() {
+       if err := gob.NewEncoder(ioutil.Discard).Encode(&gobdata); err != nil {
+               panic(err)
+       }
+}
+
+func BenchmarkGobDecode(b *testing.B) {
+       b.SetBytes(int64(len(gobbytes)))
+       for i := 0; i < b.N; i++ {
+               gobdec()
+       }
+}
+
+func BenchmarkGobEncode(b *testing.B) {
+       b.SetBytes(int64(len(gobbytes)))
+       for i := 0; i < b.N; i++ {
+               gobenc()
+       }
+}
diff --git a/gcc/testsuite/go.test/test/bench/go1/gzip_test.go b/gcc/testsuite/go.test/test/bench/go1/gzip_test.go
new file mode 100644 (file)
index 0000000..c9eeb17
--- /dev/null
@@ -0,0 +1,69 @@
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// This benchmark tests gzip and gunzip performance.
+
+package go1
+
+import (
+       "bytes"
+       gz "compress/gzip"
+       "io"
+       "io/ioutil"
+       "testing"
+)
+
+var (
+       jsongunz = bytes.Repeat(jsonbytes, 10)
+       jsongz   []byte
+)
+
+func init() {
+       var buf bytes.Buffer
+       c, err := gz.NewWriter(&buf)
+       if err != nil {
+               panic(err)
+       }
+       c.Write(jsongunz)
+       c.Close()
+       jsongz = buf.Bytes()
+}
+
+func gzip() {
+       c, err := gz.NewWriter(ioutil.Discard)
+       if err != nil {
+               panic(err)
+       }
+       if _, err := c.Write(jsongunz); err != nil {
+               panic(err)
+       }
+       if err := c.Close(); err != nil {
+               panic(err)
+       }
+}
+
+func gunzip() {
+       r, err := gz.NewReader(bytes.NewBuffer(jsongz))
+       if err != nil {
+               panic(err)
+       }
+       if _, err := io.Copy(ioutil.Discard, r); err != nil {
+               panic(err)
+       }
+       r.Close()
+}
+
+func BenchmarkGzip(b *testing.B) {
+       b.SetBytes(int64(len(jsongunz)))
+       for i := 0; i < b.N; i++ {
+               gzip()
+       }
+}
+
+func BenchmarkGunzip(b *testing.B) {
+       b.SetBytes(int64(len(jsongunz)))
+       for i := 0; i < b.N; i++ {
+               gunzip()
+       }
+}
diff --git a/gcc/testsuite/go.test/test/bench/go1/json_test.go b/gcc/testsuite/go.test/test/bench/go1/json_test.go
new file mode 100644 (file)
index 0000000..5a30121
--- /dev/null
@@ -0,0 +1,84 @@
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// This benchmark tests JSON encoding and decoding performance.
+
+package go1
+
+import (
+       "compress/bzip2"
+       "encoding/base64"
+       "encoding/json"
+       "io"
+       "io/ioutil"
+       "strings"
+       "testing"
+)
+
+var (
+       jsonbytes []byte
+       jsondata  JSONResponse
+)
+
+func init() {
+       var r io.Reader
+       r = strings.NewReader(jsonbz2_base64)
+       r = base64.NewDecoder(base64.StdEncoding, r)
+       r = bzip2.NewReader(r)
+       b, err := ioutil.ReadAll(r)
+       if err != nil {
+               panic(err)
+       }
+       jsonbytes = b
+
+       if err := json.Unmarshal(jsonbytes, &jsondata); err != nil {
+               panic(err)
+       }
+       gobinit()
+}
+
+type JSONResponse struct {
+       Tree     *JSONNode `json:"tree"`
+       Username string    `json:"username"`
+}
+
+type JSONNode struct {
+       Name     string      `json:"name"`
+       Kids     []*JSONNode `json:"kids"`
+       CLWeight float64     `json:"cl_weight"`
+       Touches  int         `json:"touches"`
+       MinT     int64       `json:"min_t"`
+       MaxT     int64       `json:"max_t"`
+       MeanT    int64       `json:"mean_t"`
+}
+
+func jsondec() {
+       var r JSONResponse
+       if err := json.Unmarshal(jsonbytes, &r); err != nil {
+               panic(err)
+       }
+       _ = r
+}
+
+func jsonenc() {
+       buf, err := json.Marshal(&jsondata)
+       if err != nil {
+               panic(err)
+       }
+       _ = buf
+}
+
+func BenchmarkJSONEncode(b *testing.B) {
+       b.SetBytes(int64(len(jsonbytes)))
+       for i := 0; i < b.N; i++ {
+               jsonenc()
+       }
+}
+
+func BenchmarkJSONDecode(b *testing.B) {
+       b.SetBytes(int64(len(jsonbytes)))
+       for i := 0; i < b.N; i++ {
+               jsondec()
+       }
+}
diff --git a/gcc/testsuite/go.test/test/bench/go1/jsondata_test.go b/gcc/testsuite/go.test/test/bench/go1/jsondata_test.go
new file mode 100644 (file)
index 0000000..7d42c96
--- /dev/null
@@ -0,0 +1,1818 @@
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Input for JSON and other benchmarks.
+// This was generated by starting with a 2MB JSON file with actual data
+// about open source revision history, then compressing with bzip2 -9,
+// then encoding to base64 with openssl enc -e -base64.
+// The result is 125kB of source instead of 2MB.
+// We compile the data into the binary so that the benchmark is
+// a stand-alone binary that can be copied easily from machine to
+// machine.  json_test.go decodes this during init.
+
+package go1
+
+var jsonbz2_base64 = "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" +
+       "Cfh7HZyeE2aj8Ld3bXw43xb83/u3I6WSftIeD/xbZE/8bwT5H1OjB9vDc2fr8Q+u" +
+       "397X9Gf+PSdnVOzpP8PP+c7z52c3SP5Gtkn9kn/w7H1cp+5o+HrPZPv7uTykTn4t" +
+       "qMW5ktlnN5X7r3/GJDMMmGVMJN7siu/yfnqffmvSXMu6ft6bOJlTaKqp/L3k/g2n" +
+       "c/7fv5SH4e7wSNdHTnGSe7brKd9m2+rfs+75c1sWpbaXqOkkpTo6LvZVDoKaaPJd" +
+       "rf6/wabfy//P+Ses/dNe1Wv4P05eaf0Xg/vluP7Okm/5eu4+LJMnvJ6vyfdiuNK0" +
+       "Wbn2ZOW7k/O5dVV1S0twqcn6SMKzp/2y3c5D8U7EssiWcxtqybtlfi2p2J1xcn7G" +
+       "nI/NwcrP+tfj8/scv7QZ8v3tjkfXsw7Hk28PhyNkcPY3e7To4dLZXs52SnOcp+0v" +
+       "BzIaa0rMZV/r4j+X7dHd5OqeK/l2Ng6ZCf3R4MsiMaozClqv621/Cfwfp/G2c4GO" +
+       "dLV9XSfLMq1YzWaxrDFXxLOJ3YfCa+Wpzeb8XWTm+JzP+IICf93/kNaqLaNrWSqi" +
+       "ttajRqjbapmqtpS2qxVk1bUlWpNqLRWpZqtJNKo1U0ttRsy20zVJqrG2wBY1sVoL" +
+       "FUWJs1ikLFTK0am2RVFYUrYNFpNtTCoNYjWpaFbG0TKLTDY1RrJSWwCVU1K0mkrG" +
+       "yUpUbZDVikMW0bZkYotZMmZGLRsY0KIViLGjRsUWxtRUzFiTQaisJEzIaWTNYIjU" +
+       "RhTZsyUWxsUUlY2oyRsm1G1k1MhLM2Q2gWRRMpDGE0zA0ktFBaZGyBETCCMgSEaj" +
+       "EWjaJKU2NqZFooxiokSIyMMUIWEaiMhQoIiiqQmIYEkRhFpEhYqSGCLFCKEMEEGT" +
+       "9mvzf2fuM6SFZC4Qd9fugRia8BBCIvlh/UPmUoYBieRgSMiPA/zM5kG80OwWXxVB" +
+       "kDKCgX+vVRm/7UQIDInnOZ/vuDq/4D8+p51Kq1Jw/kWTzvI4d9a7SyLfWstuvCsR" +
+       "8vO+Ve9WpNJv7s7+fuL8JV+dboUuDPzER7chJZ58smGb6bfHJ+/wytuIdr6d7a47" +
+       "bq+tvU9ubKTxSujpWpbkOGArKSYHFiSSfHgG2RPcG5lSlkRGbrdlTVFVeA1pC41W" +
+       "V8XE0QYWbMrorO7DWTBoBRpgyaqKdSFItuzQ+QpmRRpSUkgkAkgVhutQk5vCYVVC" +
+       "2pCBtTYcnZA1HRmQ5KEKUJCjE441UykKrp04rW12EaksMjEqCmiOKKAiIoVAjHHG" +
+       "4Oy2vMLFphr2skmltbAj2yHto+/C1qRSHQI0oYJy4xPAK0hBhkBkzKGIDKfqR5fu" +
+       "9Rb6jriPwFfrT57/BORRUS2uxaWe/23vw/VDRJUNDKbcoql9hR1STaoUKFJAhAE0" +
+       "AZZLjCTR5qxIgYLhyUQktqwQ0LakMUoDZaYvf1dL7/UTZGZSt/h0bF8bOrkShINm" +
+       "UC5JVQoULQdWFmExZOwxx6b/nrJEIzcATXe9RX4uAjQuZbT7+8dvCcTe970nE51j" +
+       "cmac2WktrRIBr8KKqmFiShChQWsTPnID4M0CSyZe7rltE0/bIvrM+YcPthAH85JJ" +
+       "219mY5mjPQZhiZDYZA1DzBlAjUcjXvLL8BABMGVQh/A/vPwUfqX/5kl6UGGJn8FC" +
+       "P2GG+QceVRTNvxzts75paBK7NzM7TzVVUzlIqqif8NJKRImR08cg2cHrQWxKYcNh" +
+       "OjnHzz+YPyaL9PWNrPR37fFaHr23fpcy+YYGWlsuQf4q7bXFjzjZ66t5DEnZsqLU" +
+       "ixYlKiy0ibZsjalZamaizKs1laSpmk2ratltZbWSta0bazUrFJs0ttalazaQUhKg" +
+       "lSUAqyQoWSKtotVYtSmoyW220arUsoo1tpLaNtMsmtaaYsVTbS2UtJgram22rCkS" +
+       "qQSxISyQS0FSSyM1KaS2laa0lhNFGhYWigRULZFiyykqoCxFBKRFSItCrIUWLKak" +
+       "ppY2WbY2tps1pm2ymqbabbLNiZojaZkrFMKZrKzaWVptZtppijZNM2SzKmmxsRab" +
+       "LZs2K1NVqWqEzMlJtmqVRjVNZWllSVLM0LNNZpalZokSlltLasJRUqopUpZIElIE" +
+       "lkqrYjVi0aSNqWmLKpslJtFRBbSbbMy1KoplRspaNlNUrNUaaak2mpVFTZVGxk2a" +
+       "GTSWmzaCpKbNJW2WqWqKMmNk1GkKUtk2ysrLNs2WwyrMqKpqZmmmKxtmqayKZlUk" +
+       "qNltKlRSm2StUtbLWxTNUqlspo1ZtltNKRIqGm0tlRtNmmalNGZYybMozNNKkxpI" +
+       "2i2ULJqUrGyyxJslNGpZmtNSsrNWZY222yttmrVNTbWZZMms2lllbKstpmrNMUmp" +
+       "KqUtptKyaplKbRSbJbLNplZtqM1KKbabU1ZSUAmUaxpZjUkhUmyZmxbRSltNsrMq" +
+       "qVbNtslSptEzVrMqaazNpmkqZsxExpJSk1itlWqay1KppYopMUkkkmbLNlMymsxS" +
+       "0TKlNjKbA1TLLLU0lTWalTNMilKmys2ZY2mqViUVKSyksmapVNqSJRqxZSyylMlS" +
+       "yLFSWRUliWKLJPR487tzxPbvpf6y887/zT6h9UmfSx2PLPXLE2t67TNb+d8616jt" +
+       "tPkeNmjOnd2bULjnN/5x19I3dES+7KaAHB8sg9OaIHogcFmowcPkd56v4UKiqJhg" +
+       "oAU9AHxYiJSboAuO2tYkauzYowUsXVGVlc0nYOpihEKtGCELstXcQR40ZwxcKms+" +
+       "7pFjCoGnlWDFSsNDI2M37zbDfLv3avdlnZZ+BC52UzTjZKLth+XpejoaOcVlvLIp" +
+       "Bt0bICZGx12W3MemDI+BEABpXP87P4rJiq/on3ucmKl3H2qkVoDOXeBVIHThRlRW" +
+       "oIeneSsFb5P81QBgJOLBARAX3nH8/r/f8w3ilqIGYIs2ETpWjUrVBz3ap+abPKWH" +
+       "pLM3ltPx/+N/Wbt1NbzHN6yn49NkVXLjHsi0YsxWYxt0mpP5liJ0D/BK861JPxVJ" +
+       "KrrKd1DEsjkf2fd+E1sqc+0G02nKaZP3/wWYV/JKhVSKU/9f2kP+Es6z7k/gUksW" +
+       "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" +
+       "Vs3lZLSSASqcfM7yVxGYledbnrN50XJBATYaCsBtFYJlZR2SKwb21+jqRiNFI0Sa" +
+       "rSjgiATZnWelW7O0mbziCfju7ylzo7WSqylsYp0JpjJU0qaMlJUUVhGilWTZudCx" +
+       "M+kc+l5uTSG84qLYv2ZJMli2qrILI2Tqln4cMqNhAj4gogAncslWOiwaV+BwnPnE" +
+       "jdp7E6UlqPtYJYV9Tg3WI95FkO6beZO8nlbeyYVc7od2tLylZPKLTp1I35t2iLsk" +
+       "ipSBQqtbUX19H2kWD8z2PyVPmh9rLUcrDSKQsTJIfukqY7Hl5DzdPLdUqq1+LJp5" +
+       "emzvHWPLN9YtWeh+2WzylkbFNlTCyVWKZpKyQ4YwqnWq3kKzCwje4lWdzTuDbTZx" +
+       "x4bJ8tzHGu7m3prWSakaVZncMwY02dcu7kznctvM5MknBXCmwVtKfU0xWphkowpi" +
+       "VsxiVW7I2rWqtRhwpcXDoaZN1MN6tYlKrh3GpWUlJLvXd43OuslSWQ0fVcxqeL+B" +
+       "Xv1rpQyBqdm7e1Ra8loulyubVzbXOGoNVpN1/mjcbxaAiUP6xnhT7z2IJaTCQVgt" +
+       "DpQcGFJgWSBTA5batqKV5l3ruu7XC3NyZRFeT486vWm68lRqMyRNpSzSpsi1KyzL" +
+       "GmTS2azSVMZqtq2bay1a0raVmmyq2yqikIVCwBSIqSpJJKsVBYgSKsBLSopRkS2t" +
+       "tKmrVKmA1rSpZU2JTWWSGtUtmsrMWKVLLVRCkSkEqQS0GpKlKZllNtK0WFGTNpZY" +
+       "2lmmZKZLbWbabW0ttZTSTFMklmzbbTaajUNZaVNKzWaipYqKmU2mMk2lilaVplhZ" +
+       "MykpmlSwamzZsrUtUJCNs2xE2zWbLJpmmmlSyzaYzNqWpssspZTaqtm1VbJlmm01" +
+       "kzUtDKks1LIK020pKUpNRlKTSlmUprKzRSmk1NTZZJrNhJIZMlSpNJDMktbNVDEs" +
+       "mpKFKVJtllm0ps2WzabGsbM2aQtmsJaMkNaVJmssNbZtbMprNYqWVKlaTUapJmGz" +
+       "RClCZhpmEmZpEympqWZmWbRs0SaY0lNTU2lqbLNtts1tsrNtKqSWmGWWW0tZrNiG" +
+       "Uy2ylLU2jJWUySmlNmpspWFKJrTVkE1lJmakWTZmUtpS0rKyqpVsilmsNrWWbLMq" +
+       "aVLFlNmazabZtNppoZJEkxlJIlplYbNUMaaVKhIUylmxaWkEslm2WoAZmYGmm02k" +
+       "mZ9vNcym/zYZ1m/E+UySfg39LUVVWb+0CAnu+IVnzkTYexs7ufDm0VjDZ7mmLPDC" +
+       "jvRkCK4NH4KYIPfTEsxAJVJTCY4MNNqKqTgrJkmjRkVkyN9MMuNskxW0mmjTSlSs" +
+       "RiUzxDKZmvWVXm9Y8a6VLqbbWXtSMLsZGTNoSqYkyYjI2VEskoLRRUbRRsbWkqSt" +
+       "Sau0WgopMsq6V0SZehQ82kyxbJsqq2k6xbaqqpy8chxElkKVybMPBqa1jIGLJqNa" +
+       "WSNnw5w5rJRVJ8pXQahwWUzyp0wnz/U0hIEiEYfzEVFZGtr8GqLFqNUUa0pVZVFV" +
+       "lLVsEy7VF1qILVeGEk2aS+WJki7F2pqD7InRyG/WjNbxTzY7E029eTdr/1ZJlhzx" +
+       "xZEk7TYxZI2Vk4yI8WLZEUcfOpyzjm2I50sicpFjzHRZKelYLMxipnrpolbK2wP3" +
+       "Gj5QrZ3mE7dW70dJN3aTWPvGzFnLOYscQkecNk/KdSbVattW/g8tatRJ9BbaVmTU" +
+       "cNkbE5NiRgCjqJjBFYYMQEpXT39BIxlLWwvLhFGpGWUqKViqxkcZkznhqQLSNrGQ" +
+       "hBUdGYxN2kbWNpAzdTVXSs46S3TNK5yd26mxXO7tXNdm0m6bRbSTJvK6rpKW2TFt" +
+       "vPLvJbNaSixoxKyEmNk0kWK0SdjZs2NohYnAsejhFowruXCQlUVFqVGpE0UGZIZE" +
+       "c3lktTo03a6N+EiflSdFScJJ0xKRxN5+ZDlCLZB9FWySZUtkhL9OWNS5Kx7HmGk3" +
+       "Zm+vn/kuSquatyCwYtGGhIxpQKVBh9sws7qnJ2thu+NtlbJbljpdXFmFp6I0cN3V" +
+       "hW7RqTNacWNJ80k/pbIVr82CR/iVzKp1fJPyjz7u0PGnOl53LbDvYakR0ZJD8qm5" +
+       "9mWLpEWRzhu+1n9OUKT1kn8VOh3p4lv5ZjCqf3P82pWjKmxUzVvxpOH8eDZPhDwf" +
+       "ii4JZZPcJ67Ts94+JJ8JN6n2RXJ/iPpDEN5uehqR3Yxju2bXbGDrRv6T0R5vdxJO" +
+       "R2mD+4dUjVjZFQf6RFZJ8rFskqu7VMy3EjDuzE2K5wH1nnG971lZjE1GMMpMLzVo" +
+       "tmMJoN2gv8yApnCpgihcVoiUFH+c9nnbz+momOTD2WTT5sRko0skZYttki1bLSVY" +
+       "mmMY0wqhWnGhdSllSSW9z4amEW8VfPq+6qyaeu2jZNvXtEl6ptryvUoxwqtXN1Fm" +
+       "Yqyc7Jqlsb2TXkulki/galjcAwqxIxJEkIZjxWvohjDLbjDg3VHCdKtlCUmTvHq1" +
+       "g1bKsb1nufaqpD0uQWNon9Cdrrb3LTMlSbUTSbK0ohajIvgjH+99Bt8p3n6qleSV" +
+       "ZE6o9h2eHZRzpwc3OYmK009E9R328jxMbJvFH6StQnM1NNmLDBWdD/DwdQc+bD7v" +
+       "Uoz8D4pQaY3jgmo4UpCiqrGzZpNbC5h/TXGpNqn1Vaok4ZPk4KphiwyWJy5ZHRwf" +
+       "oiZC34h6SrVlWif7FRHs1+Nuh+L5Hs6k7WWyNKyald2mpMaNp8+jr5z3H5HpDpU/" +
+       "yqPXPAk91O6UFo2PK2u5jy7lWy35Kw+iPIqfOySOpNDJ1k4nqsilXhkeZbW8c56z" +
+       "Rx1kbkR1nBpJ1VUPWotkR0rdsQsexSuL+5pk+Mk2l/i7Oi6XGwkvE5JyD6Ifc0l8" +
+       "iIBO6c0DixXt8Wk0H6+6WxFliWWWhO5P1UUsfx/o/JZJ9iprtPkmjEsfWdqnbtat" +
+       "q24OckqqqnQw+6k7EfBZHMentbUafUcOiqVVVYFUlFKKqejEY6Y+lfo+ubdLJdCu" +
+       "RFXLgVQwrGW3GIYJWGCYwwtWWlUskYxZ+emKaZHyQfWMWTUkP9FV7wTx+WRVUrZI" +
+       "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" +
+       "mStcsHMrio8lNypolKYqrT5AyFDChtZGHuINKBspBGKg7kJt6Bo8fNBswFHISJJt" +
+       "PcLdHk1+NWshZCgqnMZITrDX2VnDFGhCe+9um2kaWy3BLFDrBte5ISqMa3whRNX2" +
+       "hdsSnCgdmnJiwaaFmqxgEhoSkmS4W5nnc2pOkjMCi0Pn4WGjUumeTCfLJJ1jYrHx" +
+       "jaFRrCj5qXWxkTinm7fk9Hu2JvELPk8MMVKpWKtKq1iVVKKUxXlx31G9Tw/vO6Mb" +
+       "E80lYmSJp0FRrDJyLJ51U9ZI6GiLTUsTlnZqBqxHcOldSSip2iosJI2Ehx0kHxDZ" +
+       "/AZNzYUGDTXrMplachkVuS1tsiYIYyt2mzZDErJJWTTEalrQplZC7YM+li2SUoxV" +
+       "VZY0yZkycNIiDcCJMaGNe5kXBpN+8HIUgoKqYnY1JISR6tshCE6JhknVjg6cMhWn" +
+       "JNlbSdppsotV9zG202HYjiEnmTz+E7xXhSrLv5ZtdazVbW2hjEYNKDGEBkJ9/vy+" +
+       "vnrFURs1YvpvLuyE245w0VLL1kr7cOg/Ba/Qf0QM8JPxZLLOStL5KZ+faXr7LE9j" +
+       "17oH4+OiR8orIu4h/RAagtxGICYpOWtBCN8eXMu7rl485VKQmKi+aU6rwbyfLXpr" +
+       "161+qbettfqWN0pL88tJbgpKWur4a8ki2arIszGhZJVK03h6o84nieE+RSDA2EJn" +
+       "ygppzrRHjjDHHjQ3oAGNIa0QIJjBiGd8s3glSnsMZSEY1I4BqCBOrFtgXZ7YoGff" +
+       "5SOeYkWToVOR6a7/Dmyl7pPebOTUlLEYebR5Ikzr5O+azEJXRy731dGOXtcW5mTx" +
+       "HG7GnHVxIbSbnuyUslYdMltVhpO7tytjo3Cx2IyGZDKmmWOxCaYRisSq0VhSVpit" +
+       "JWkrS3VY0DcaigxKkRFVBNRkkg1UhOMurldw8knJjznZobpJOCnNMtmM9JI/gses" +
+       "Dl0es/T0c4b+aSO5yy8it57PtER7yQ49svq6K2KoqVhjFUqmm02P9rP+enbyTaJy" +
+       "k7zyB5VdEyRHyqE2jlT/N+4jPJHNVfOPajFtvo+bRIhxDIiAREIBEBHmAseJvCKp" +
+       "aWSr3OREAnaST8LJp9TClbcGN022eOxs0mObY5x+f0+u0ck5RKKUopJrgB87bebv" +
+       "yv5u7W3q/fvzQ+JGypskPUreRLIrmybatMsX0a/RksaxtIKIX8sn739qsebzOZiG" +
+       "by7s3vdaJR6Dj2macG0WSRT7SDN9KC4xmGSRgRYwaf7MbwGIOPrP6Rb8N/DY1I1H" +
+       "JIkrMaQbxJHdIbifDkh15l2d27BHRHVPKch+6RBzeUnBMtctc4pKUyuu2upJrlrq" +
+       "667pW6+1t+6Vk20JkkpYV59A5unxbofu3vn21Ey/s+HYx9zasPu1JNm5an1x85Hp" +
+       "GG1LFk0RAJ1kfSK+E9UPntJMsjrKWnc/YuFg5pe8Oyx5qIpZEbwKh7e7yTBhymws" +
+       "JtGzb8PDzkfvPfLZJ5yR/o9pH2H9KqdtVVX7VbbWI2Nmr22lllliKehVTXVI09Cd" +
+       "Z/Ou/e1aKs8lfvPiSD3/Bks8PeYcuVmGgTKW2WyVY/isZRxJN2T4vyfP0vRyfZZK" +
+       "rbaZNZsTidKX8ofEcnunxzNEJWu9xbuQ3w1er3T4Y3g7/gteJ4WVbTtmn85O7lJ/" +
+       "VEnkTJ9atqsYYYeujDUxIwoxR56sknNj7SbuGneRs8nq4fJO2cpuiWKioslVKlRS" +
+       "pJZ/ULtdlKi0b+Z81+yixKtJIPDdvJ+LvDu0SyY/h7/w/FiNs+mias1cSpOznIPK" +
+       "yrHt1CY942YTzH+yrZIoqhOEiZIT845d3T6Pps/6Ofl4bEm9vIZB/UJBbEtgRgyB" +
+       "QrgTP96/o80lj8FrpZ3WuiX6brraSSqxRuxjTFUbWarrGGKMDbBcSioFSqf3ZLaC" +
+       "XBlKqfB9CZLWcmutdlVXXxEzqHZVo2a5uZjrbE5X5CvSKi2WpbDaOR0OqaV2Vjxq" +
+       "myEND13YGGgTBqRBqAkgipVktsk1bJm28lu2ll5dkUpklpVLKkqjThs7SaJqeWRG" +
+       "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" +
+       "BBBIJBq/KsYn0ippp9W01W5ZRjbTSfDNkM7isVOp5Wk82WrJNLTsbRZZzsMYDiQS" +
+       "QQGRB573Pe988yZmZmaB0HgHcz7ZHJKFgkEgyIkiSS9eHnk2SvPDryK1aqqqmtW4" +
+       "PSycD/w8sflE+v8v83/dyIplqpb1llszKa0Kl8tWXbMGzMy8XWnF0X937o/wO4fq" +
+       "0+r7tk9qe2FJ6z3CkozLYqzEKiqUFDKGP7kqsHaWq1aDYcCQokp/eU+vt7uZp4fD" +
+       "vw29FcKUSuratW2rX7I00/UcnqCIfPyP4ftqCVUyNaqZi2P7Lo2/nvtw1Ntxu2Ov" +
+       "M1cLOMOjTdl/Jw/jqwjhrHX7ljvTS0Ng9YWklWliFUpZUiCjOKclNiKmjWdFMjuo" +
+       "dSAo96JmslmGgyCeUmmjEtITqi4DqWXTg4318osVuX2Vfa63aYJNvvZpHIUVXXbr" +
+       "pPMYqxKrXRvoXCGuFnXhSb4SVZtAm6ojtvuIBkdOcqdgEZ6lcZZFN1kPKhJJhRBr" +
+       "WEQyIWkl1hnFU3uys63k4eJJlSIMlKqoErDI6G4EEUnpZfaOrlixLp9DvOUpB4Ta" +
+       "n2/ZW/q+fvPhH07t9H4MT16XESiARMKUE/rVVU3KNwDooJ7dlAzgnD7EhScMIYxZ" +
+       "/mOidHDestpVUIAEgC0t7/m9fLzzvPVb1fK+s+Y+f0Pon6xzJ9vzOD8R9GeLf1T5" +
+       "3aq222kVRIqwftW1VyfHRO+89MPe5zaktbKQr49+/jZmajwxNu3Zk7fVWkSWG+K2" +
+       "a1xZlKFOw5BlJpDTgyzEORiGVhmzt4tctufPV1DsnIxdsV3SbUdlXBrTgwnt41HJ" +
+       "0263X9faPss1y+iNSMUfp/X6ff7/6/TW98cccp1bYjhzq/3uXPJj5bT8/7W+nhNo" +
+       "/69v1+jGyfY/aaf9UV6T6SQPl1Bq30rH6H4yV69J/bdqqKoSHon4AEpmUtPAez+t" +
+       "92Y5lOj2CJ7CYdkZxf0D3R/XfsuFMS/C43Nv5T9sfMZV4L/G9pvd03/3mq9yzlm2" +
+       "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" +
+       "7sCx2jKWaQSEq05Vh2otTsmLP8nxVuGAJlL6CQ0fXzP22Mn0O/dc+RzxqdnXq/N3" +
+       "KIZUKGEwHCFgyKwJcqXSyY9+KkWLMIVwWZW84+AK/Bz5wnaLI44LmU90x/EkyBYo" +
+       "YS1EJA9jWfE+/5tRUV1ipCoof2zsjgKQ8vpHUIwQU4hNNSOW4tYulfaqfz6P4wYH" +
+       "GDM4DID3+NqN1ONUA/PfuPMRXS88tk7zKq/wt5RmaVy9WAxsjPw3pHVUomq01Y27" +
+       "q1V1m7Yd2KfWl+O5Zq7729d9zZ0l0p3fEcrJ5YgfbvWje7O3f3xZrowIWRkq4O+T" +
+       "FRyxJpiWo4lFPH3WrGdl4cvrRgQWOs7e+Rm7Fg5SGPs7K8wII3++tGhUMYuglST7" +
+       "5KtdoyntNOHVVlYkvFyJtG6k2rcPNYnRazDvM0jtv9e0GxHtPw9lbsVHo999iMnW" +
+       "ySQyREBBJkSLp6BsnvG/p9faVUKlPzdQ/ZVIRVFqLwVZA3bCzzChJo/VG3vBX5SF" +
+       "rWK1RZmzbONI5WDQJSoSvFrWQPYWLVWpk4wJi851alamk1f8QZvBepyqUITCUW1M" +
+       "PO3E+bYpbGJWorqrG+spHFPy6ovW+piPxPDpvMK9cLBMXT02D897907tO7q6Tqpw" +
+       "mu19VLVj5w68m9aLxrh5pRd60Z1Y7OPlnWyT67h8VWsGO4nUUKiC8Pu5yxhCT898" +
+       "xuvPfY+fhoRK5T5qvf5+ore9q8fDLTyk2u/mia2vXGhbTXwjpwro94vOKUYpdrNK" +
+       "/ilIKJN59XedxQPPGvYqUmlTpq88kgneW7DHmiG23HMo7Zsh04+H7xMdo7xOJJtY" +
+       "eizcYZdt7XbKVK6OL4vQLe/M+3jq86SgU5889oFKfPVuxF3wlFrkIun9efjz79d+" +
+       "wYeN/C+u3m1rd0jFGq9X89KmLLXN2C5Po/veZd64ndf3MKIxsceKwWTeL7MD3i1L" +
+       "FVj6xz2pzr8QKCFNCFKpIp+xTH6JnyBsNsPitQloYgqd1l5g4jhq6cPDUvHlmwrI" +
+       "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" +
+       "v3ThnnFFDb8PHJ2lL1vMzxiXS7Hci9P169PULTtp8MorSZB25VNA4Pw6X609+3Vz" +
+       "WTVcyRy2dbt8H177mEWSRvh8M+vSerjnx/SZfuZ0beIXSUuzna/Om+czLbbbVfTz" +
+       "54naAdd+pE26qa+jh4iOkG3g+U1FmjxmGX6Gj40+jLEntyrIn7/D+T8fy1+Pjjup" +
+       "Bc3CtbNuXO2tRdulIu21ItGsL9ccDt6aEtrxfwXjqcDx58HqqhesQkkFR5Hw5s+Y" +
+       "95rjxZ49Zxzzzs55zny5Y/Trf42ninShp2tC5MykPXPDq/HSuOcy/Hrg+uXOZjhw" +
+       "qpi7evQ+G3aueLbIW2pPLBOXPB2k0qeWcvH8dPX3537NGVVjFVhhjKxliVkqkjay" +
+       "ptqZq2S1WktJVZNtVJa0VtCm2mzbZsiNNZVVSy2ti1tS2Sq3md9hy4638z5PHNMz" +
+       "Ix3IfMkD8jgU/hevg0z6O9vrhfx2u0pdXi4ooddn1WwLTt3u0dtfx13/DwegMQYQ" +
+       "wdp85zgwAfA3hJq69eh7Lu7zLGHl5V6eivCu1elHunTwnjRy61p714uThUcOOcz8" +
+       "O1cqxabWOunLt5Rw9iSJHt3F3y3WWZdtujHhx50iRPHtKachw2vnz8eK369x98Ov" +
+       "hw2vztQt4JRlnK9QFCycOHEpchMB0Ym5SeIlIUMnPFcafA3klDSwWSTX9VVFP3k/" +
+       "KQ0+nzF4rj5wtvArh604+dqCN3Qjz0VcqypVmrlXVlSVcqyiSeckRld1JlJlRlJB" +
+       "zmlk1LS0RqoTfWN3vzzprfXjY+ZUWT9c+ednqsvvSSJCkAXphQSFpCgXIwRJFQeP" +
+       "HfxpU2Op7pg4ZhX80D8P0HcE+tvtafe0PslS2h6bEUphB+Trt9zcMySlFfrXx8s6" +
+       "aKGUneDdfjQ99/yYfX7l9meCDI/bvJDJAQgdu6SzNW3eZlBQykZoKrwo37d0TaW2" +
+       "0DnfHOPJfg278PvnXg+re/l0U+vfj83QmJIyIhDN53JH5Px9XhPr2/DXcY+NzGJO" +
+       "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" +
+       "3asyajzIENvnh5J4Xw8OuDlfBN8GUCx4420ZVU52z250coXTppy6fELl7Rjpy+nP" +
+       "x28cG3ng7sNCRkisEe3Ltzt62dtbszTgXpLw27ePvRw+vlFcKR0ekbTaMSHDJB5e" +
+       "nZ8vLbTt78dG25fCwkJ//etW1scxPdFsVVsi0tFqS177RsuXJMklSkhrEjSwORa5" +
+       "3WlxTnZfjFJJ8qqYtJkGIYaQX+CRXd/3dKH8uAJ8Y9cu+OcSSPAL6Gs336Z468Zz" +
+       "vNxQRIyXt3dm7s0SAwKIJ5wEk8AwcCHFznBwg8o1kzNO72t3vAPY+sfngZ9dFb0o" +
+       "+X4H6XmWneYezTTiKIZ4CUUD4QEQCdPGmwTwkyTaXmJ2d+i8PAPAvDjERepd2Z2U" +
+       "tFeZqfopOh7VAjAeQ8BPpenxxACAkEQhEExObQ9XlR+e37Iw1mN+ICD34z4TEzKK" +
+       "dyQ5oUQnsRgHH1l1ker09IZ4KIqyrFUOLmqZbKLYUGaGAgOcGgdbwVvRho1lbYNU" +
+       "cdPj1zU4ogY7l1TxfNNPT+zP92ta1Xu6TpY6QeISM9/hrny59kjOErh+Ht2BPj57" +
+       "6L5BzgoCDQAx6HNqd9+Dyvbt27Lq3osAuFDt/Zv5zu78vxMXPz5rDDqp1z+Pi2nh" +
+       "zxuQkFAnqvWm2HD09db9dvJvpZ775mY/Nd5n5du34vVU6F+N+jTb5SesToqJfaen" +
+       "DXwdO+bu81I8knny2dLk+lPtFD493Hx70x8+ZnD/LrkygIFr4AcZGrTDQcMwVWSB" +
+       "UIKC4cStoBZZEzt+9tptwYhbUixKXVLSo3XvhOmipnoTQ+XBJCdfHJ8r47yZmPlN" +
+       "tp88W+HnzreZnj2dX2cPfT3zCQm3ifI8tvCeDfBNnl0nnzDynndrPNObjUhIM70k" +
+       "+Phvzu5niebfbE8NY1HHuJBzqbt41px6TjT2wnuOfnskTlZwenlVTqj+HnLFtEu3" +
+       "oQOnRi96VHqH1D1c+g/IZ9nQp1cZlfv1606UPjEUVw/C6dh+Pz4Dro+bIdOl2OTP" +
+       "vLTZ5+7/XSX29Bv0PSCdHY28GJ5eY3ddXvTet3d8H187Yn31vrt8fNKu1D4+cOuX" +
+       "InT13p65ql8fJv74217Pm/vXbqk3NtnkqrqnTkK7wpfdhA+r975xmcNIp7Twznji" +
+       "evTlp74w9peduGxXiNdczaymNYnPSSSSFdH57db5cA+GzcQeEkOBjPVentzlrtHQ" +
+       "fBtWJ18UIb3yjguww+BUcg8J5eHbljZU09Ja1euOjrmjp59ooZ2hzKN2Qay4mLA1" +
+       "pTOLMipVkiB0k7w4rISoDm5vGxYTTI8ymFxmtm+OGuNY5ZPbcqyxJP8qLkqcrsuN" +
+       "XvVCjgr1Q3zy6o5T0ZznGJlVeY1Td52qu2m5V2aq1GXbu10ddY3rOrpy0u3G0gaI" +
+       "oCqoGaZwMADnKp1up7vrdzvSOe91CCUrW9pWJcngyfSVtIngw8zxCUFzpAJs+tb5" +
+       "Zsn1j4Dp7628zYe6Rgm2wa9FYc1vkPNMB5NQ8Ic3l160dXv1c6zek8W9yRs1O1TS" +
+       "z1rN1EhwklOMD2NGX6ryTXTqgq+B6Y+TGD0AgzsO3XvudNp0bcBy7fASeOUcunRo" +
+       "167Ew2GNnFZG/O7eEsenI5SHrvvWZ2addPjD+TtfXdODuwvq5huPLaODCtE0ntOn" +
+       "L4e8t7dJ5M07bNC1FSRtpsdzzppPfI7dxw1640x8bjJekxsa5Y8VNtjEcBtCWwcl" +
+       "ZTbCJcD8HrfbHN5KHTo4Fp819fe92ONY4erddMSl2w76PG6tcHtZwrlPXKVGjFac" +
+       "1j+rOTbp5jOXJwuP10ofsoU9Td33dv3n1t2cqdfj9Pvyqk2efPmZ48XTl0KlODvM" +
+       "5h0nx+MfdEOnxtt86WaVU/eucz4+eu3ZVKY+v3r850xVTdadrjormihyN/evHXTl" +
+       "OFR1cY65NTCcRp8FenYLLIlUW8sJOnpScPWt7tZIJtsSOmHB33atvt8eF2+HHiQg" +
+       "NCRxrt5ejjpt8Lh0U4HvntHLtejv64WuYovx4cvjudsIfUUV5bOXl6xXKF8KXjpP" +
+       "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" +
+       "5AnE7fgk9Tk978Fs2pXhPvjltkl3AXoF93yfjrr84+98655556eaKe/TcvX8+tDp" +
+       "+Pi1RQ8fdUu2pvFdMbdPAQGNN8ivU7S9Ryc166k8yJc5IdVFdb88+uu+/zeZveuG" +
+       "j1wuL35UllCnrTCt7IYcNxThFFbQtqjNZgXr60baY2hffWp4+ubvM/NIWzW5Uj1D" +
+       "p8eU+ZTg3naukLoZzl+a1n3vGta8samSFp7nvlKVuVxKevXTjTg2duJ3SfNK066b" +
+       "lwcPF5xw2+0cZJzrx68c3veNZrGOHXbTSSRwPSDE242fCWz4vTsVKYqOF4bx775p" +
+       "0xeOddrOpVXqcPaqqOW22WtV88c4xmZY7dL6ei956V67bbVtWu+nzM5fLQ6pS9sJ" +
+       "RXrzSp0cNSpHqF1oswXg7xoeipTO2OO3gSMFkwqyWwWmzzmd5mSrkIb9W0R4V052" +
+       "4SQ8m/L07yCFN+NEinDh32PHfHDzfDTYp2pF9vXXneZ84x6vcPRzRtDb1rS9KNoj" +
+       "G3tt8trVSm4nKzy3R6xxhOMVR5krVhMyjGXOrVEkqjaow3ghlCSpZNWBcVaxL3Fc" +
+       "Y9ZJpkrnJzlzh3m8wze+XP8uV2KlNuHovYPm99afPmu8VUqUJ47l3jmZl5eHCqbb" +
+       "HO7xlEBFcBA5Jb3t32Zl9tPvd2smGycKE9uyfDQQPDS8Ltb4qBF9a8qnudmpDwX4" +
+       "+wdtdWPrzp5ZJ51IafAcnZAsPkypcqpRFBAcxIYWs3vTR50fEtvnqdcUo/dUXwei" +
+       "bTydGiJ4PFIOWjex8NM77ddunuIT3rfm5Wc23BHly1Kmmj152czh1j2qUpWYqJEq" +
+       "vL10rcCedpLOreZEjlnPpzu3bt2Pe9pIbbhG5VdskX49R4c9PrbZr3tVMdOn17de" +
+       "nw+aNedrTuVI+Pjo67O359n1jijiSSJ9jstJAwAWh6D6ObOekTEOeh3nAr2g7ynr" +
+       "8xXTOMYFcwj5xiIpx8cwczh8LfyjzhSPBt74x6zvdzHlySLo8nCSRsk0eS6TRbxm" +
+       "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"
diff --git a/gcc/testsuite/go.test/test/bench/go1/revcomp_test.go b/gcc/testsuite/go.test/test/bench/go1/revcomp_test.go
new file mode 100644 (file)
index 0000000..9256164
--- /dev/null
@@ -0,0 +1,85 @@
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// This benchmark, taken from the shootout, tests array indexing
+// and array bounds elimination performance.
+
+package go1
+
+import (
+       "bufio"
+       "bytes"
+       "io/ioutil"
+       "testing"
+)
+
+var revCompTable = [256]uint8{
+       'A': 'T', 'a': 'T',
+       'C': 'G', 'c': 'G',
+       'G': 'C', 'g': 'C',
+       'T': 'A', 't': 'A',
+       'U': 'A', 'u': 'A',
+       'M': 'K', 'm': 'K',
+       'R': 'Y', 'r': 'Y',
+       'W': 'W', 'w': 'W',
+       'S': 'S', 's': 'S',
+       'Y': 'R', 'y': 'R',
+       'K': 'M', 'k': 'M',
+       'V': 'B', 'v': 'B',
+       'H': 'D', 'h': 'D',
+       'D': 'H', 'd': 'H',
+       'B': 'V', 'b': 'V',
+       'N': 'N', 'n': 'N',
+}
+
+func revcomp(data []byte) {
+       in := bufio.NewReader(bytes.NewBuffer(data))
+       out := ioutil.Discard
+       buf := make([]byte, 1024*1024)
+       line, err := in.ReadSlice('\n')
+       for err == nil {
+               out.Write(line)
+
+               // Accumulate reversed complement in buf[w:]
+               nchar := 0
+               w := len(buf)
+               for {
+                       line, err = in.ReadSlice('\n')
+                       if err != nil || line[0] == '>' {
+                               break
+                       }
+                       line = line[0 : len(line)-1]
+                       nchar += len(line)
+                       if len(line)+nchar/60+128 >= w {
+                               nbuf := make([]byte, len(buf)*5)
+                               copy(nbuf[len(nbuf)-len(buf):], buf)
+                               w += len(nbuf) - len(buf)
+                               buf = nbuf
+                       }
+
+                       // This loop is the bottleneck.
+                       for _, c := range line {
+                               w--
+                               buf[w] = revCompTable[c]
+                       }
+               }
+
+               // Copy down to beginning of buffer, inserting newlines.
+               // The loop left room for the newlines and 128 bytes of padding.
+               i := 0
+               for j := w; j < len(buf); j += 60 {
+                       n := copy(buf[i:i+60], buf[j:])
+                       buf[i+n] = '\n'
+                       i += n + 1
+               }
+               out.Write(buf[0:i])
+       }
+}
+
+func BenchmarkRevcomp25M(b *testing.B) {
+       b.SetBytes(int64(len(fasta25m)))
+       for i := 0; i < b.N; i++ {
+               revcomp(fasta25m)
+       }
+}
diff --git a/gcc/testsuite/go.test/test/bench/go1/template_test.go b/gcc/testsuite/go.test/test/bench/go1/template_test.go
new file mode 100644 (file)
index 0000000..db4839a
--- /dev/null
@@ -0,0 +1,76 @@
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// This benchmark tests text/template throughput,
+// converting a large data structure with a simple template.
+
+package go1
+
+import (
+       "bytes"
+       "io/ioutil"
+       "strings"
+       "testing"
+       "text/template"
+)
+
+// After removing \t and \n this generates identical output to
+// json.Marshal, making it easy to test for correctness.
+const tmplText = `
+{
+       "tree":{{template "node" .Tree}},
+       "username":"{{.Username}}"
+}
+{{define "node"}}
+{
+       "name":"{{.Name}}",
+       "kids":[
+       {{range $i, $k := .Kids}}
+               {{if $i}}
+                       ,
+               {{end}}
+               {{template "node" $k}}
+       {{end}}
+       ],
+       "cl_weight":{{.CLWeight}},
+       "touches":{{.Touches}},
+       "min_t":{{.MinT}},
+       "max_t":{{.MaxT}},
+       "mean_t":{{.MeanT}}
+}
+{{end}}
+`
+
+func stripTabNL(r rune) rune {
+       if r == '\t' || r == '\n' {
+               return -1
+       }
+       return r
+}
+
+var tmpl = template.Must(template.New("main").Parse(strings.Map(stripTabNL, tmplText)))
+
+func init() {
+       var buf bytes.Buffer
+       if err := tmpl.Execute(&buf, &jsondata); err != nil {
+               panic(err)
+       }
+       if !bytes.Equal(buf.Bytes(), jsonbytes) {
+               println(buf.Len(), len(jsonbytes))
+               panic("wrong output")
+       }
+}
+
+func tmplexec() {
+       if err := tmpl.Execute(ioutil.Discard, &jsondata); err != nil {
+               panic(err)
+       }
+}
+
+func BenchmarkTemplate(b *testing.B) {
+       b.SetBytes(int64(len(jsonbytes)))
+       for i := 0; i < b.N; i++ {
+               tmplexec()
+       }
+}
diff --git a/gcc/testsuite/go.test/test/bench/k-nucleotide-parallel.go b/gcc/testsuite/go.test/test/bench/k-nucleotide-parallel.go
deleted file mode 100644 (file)
index 96c80d8..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by The Go Authors.
- */
-
-package main
-
-import (
-       "bufio"
-       "bytes"
-       "fmt"
-       "io/ioutil"
-       "os"
-       "runtime"
-       "sort"
-)
-
-func count(data string, n int) map[string]int {
-       counts := make(map[string]int)
-       top := len(data) - n
-       for i := 0; i <= top; i++ {
-               s := data[i : i+n]
-               counts[s]++
-       }
-       return counts
-}
-
-func countOne(data string, s string) int {
-       return count(data, len(s))[s]
-}
-
-type kNuc struct {
-       name  string
-       count int
-}
-
-type kNucArray []kNuc
-
-func (kn kNucArray) Len() int      { return len(kn) }
-func (kn kNucArray) Swap(i, j int) { kn[i], kn[j] = kn[j], kn[i] }
-func (kn kNucArray) Less(i, j int) bool {
-       if kn[i].count == kn[j].count {
-               return kn[i].name > kn[j].name // sort down
-       }
-       return kn[i].count > kn[j].count
-}
-
-func sortedArray(m map[string]int) kNucArray {
-       kn := make(kNucArray, len(m))
-       i := 0
-       for k, v := range m {
-               kn[i] = kNuc{k, v}
-               i++
-       }
-       sort.Sort(kn)
-       return kn
-}
-
-func printKnucs(a kNucArray) {
-       sum := 0
-       for _, kn := range a {
-               sum += kn.count
-       }
-       for _, kn := range a {
-               fmt.Printf("%s %.3f\n", kn.name, 100*float64(kn.count)/float64(sum))
-       }
-       fmt.Print("\n")
-}
-
-func main() {
-       runtime.GOMAXPROCS(4)
-       in := bufio.NewReader(os.Stdin)
-       three := []byte(">THREE ")
-       for {
-               line, err := in.ReadSlice('\n')
-               if err != nil {
-                       fmt.Fprintln(os.Stderr, "ReadLine err:", err)
-                       os.Exit(2)
-               }
-               if line[0] == '>' && bytes.Equal(line[0:len(three)], three) {
-                       break
-               }
-       }
-       data, err := ioutil.ReadAll(in)
-       if err != nil {
-               fmt.Fprintln(os.Stderr, "ReadAll err:", err)
-               os.Exit(2)
-       }
-       // delete the newlines and convert to upper case
-       j := 0
-       for i := 0; i < len(data); i++ {
-               if data[i] != '\n' {
-                       data[j] = data[i] &^ ' ' // upper case
-                       j++
-               }
-       }
-       str := string(data[0:j])
-
-       var arr1, arr2 kNucArray
-       countsdone := make(chan bool)
-       go func() {
-               arr1 = sortedArray(count(str, 1))
-               countsdone <- true
-       }()
-       go func() {
-               arr2 = sortedArray(count(str, 2))
-               countsdone <- true
-       }()
-
-       interests := []string{"GGT", "GGTA", "GGTATT", "GGTATTTTAATT", "GGTATTTTAATTTATAGT"}
-       results := make([]chan string, len(interests))
-       for i, s := range interests {
-               ch := make(chan string)
-               results[i] = ch
-               go func(result chan string, ss string) {
-                       result <- fmt.Sprintf("%d %s\n", countOne(str, ss), ss)
-               }(ch, s)
-       }
-       <-countsdone
-       <-countsdone
-       printKnucs(arr1)
-       printKnucs(arr2)
-       for _, rc := range results {
-               fmt.Print(<-rc)
-       }
-
-}
diff --git a/gcc/testsuite/go.test/test/bench/k-nucleotide-parallel.txt b/gcc/testsuite/go.test/test/bench/k-nucleotide-parallel.txt
deleted file mode 100644 (file)
index 84169b8..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-T 31.520
-A 29.600
-C 19.480
-G 19.400
-
-AT 9.922
-TT 9.602
-TA 9.402
-AA 8.402
-GA 6.321
-TC 6.301
-TG 6.201
-GT 6.041
-CT 5.961
-AG 5.841
-CA 5.461
-AC 5.441
-CC 4.041
-CG 4.021
-GC 3.701
-GG 3.341
-
-54 GGT
-24 GGTA
-4 GGTATT
-0 GGTATTTTAATT
-0 GGTATTTTAATTTATAGT
diff --git a/gcc/testsuite/go.test/test/bench/k-nucleotide.c b/gcc/testsuite/go.test/test/bench/k-nucleotide.c
deleted file mode 100644 (file)
index 3bace39..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <glib.h>
-
-typedef struct stat_s stat_t;
-struct stat_s
-{
-   const gchar *key;
-   long stat;
-};
-
-#define MAX_ELM (8192 / sizeof (stat_t))
-
-static int
-generate_frequencies (int fl, char *buffer, long buflen,
-                     GHashTable *ht, GTrashStack **ts, GPtrArray *roots, GStringChunk *sc)
-{
-   gchar *key;
-   long i;
-
-   if (fl > buflen) return 0;
-   if (fl == 0) return 0;
-
-   for (i = 0; i < buflen - fl + 1; ++i)
-     {
-       char nulled;
-       stat_t *stat;
-
-       nulled = buffer[i + fl];
-       buffer[i + fl] = '\0';
-
-       key = g_string_chunk_insert_const(sc, buffer + i);
-
-       stat = g_hash_table_lookup(ht, key);
-       if (!stat)
-         {
-            stat = g_trash_stack_pop(ts);
-            if (!stat)
-              {
-                 int j;
-
-                 stat = malloc(sizeof (stat_t) * MAX_ELM);
-                 g_ptr_array_add(roots, stat);
-
-                 for (j = 1; j < MAX_ELM; ++j)
-                   g_trash_stack_push(ts, stat + j);
-              }
-            stat->stat = 1;
-            stat->key = key;
-
-            g_hash_table_insert(ht, key, stat);
-         }
-       else
-         stat->stat++;
-
-       buffer[i + fl] = nulled;
-     }
-
-   return buflen - fl + 1;
-}
-
-static int
-cmp_func(gconstpointer a, gconstpointer b)
-{
-   const stat_t *left = a;
-   const stat_t *right = b;
-
-   return right->stat - left->stat;
-}
-
-static void
-sorted_list(gpointer key, gpointer value, gpointer user_data)
-{
-   stat_t *data = value;
-   GList **lst = user_data;
-
-   *lst = g_list_insert_sorted(*lst, data, cmp_func);
-}
-
-static void
-display_stat(gpointer data, gpointer user_data)
-{
-   long *total = user_data;
-   stat_t *st = data;
-
-   printf("%s %.3f\n", st->key, 100 * (float) st->stat / *total);
-}
-
-void
-write_frequencies (int fl, char *buffer, long buflen, GTrashStack **ts, GPtrArray *roots)
-{
-   GStringChunk *sc;
-   GHashTable *ht;
-   GList *lst;
-   long total;
-
-   ht = g_hash_table_new_full(g_str_hash, g_str_equal, NULL /* free key */, NULL /* free value */);
-   sc = g_string_chunk_new(buflen);
-   lst = NULL;
-
-   total = generate_frequencies (fl, buffer, buflen, ht, ts, roots, sc);
-
-   if (!total) goto on_error;
-
-   g_hash_table_foreach(ht, sorted_list, &lst);
-   g_list_foreach(lst, display_stat, &total);
-   g_list_free(lst);
-
- on_error:
-   g_hash_table_destroy(ht);
-   g_string_chunk_free(sc);
-}
-
-void
-write_count (char *searchFor, char *buffer, long buflen, GTrashStack **ts, GPtrArray *roots)
-{
-   GStringChunk *sc;
-   GHashTable *ht;
-   stat_t *result;
-   GList *lst;
-   long total;
-   long fl;
-
-   fl = strlen(searchFor);
-
-   ht = g_hash_table_new_full(g_str_hash, g_str_equal, NULL /* free key */, NULL /* free value */);
-   sc = g_string_chunk_new(buflen);
-   lst = NULL;
-   result = NULL;
-
-   total = generate_frequencies (fl, buffer, buflen, ht, ts, roots, sc);
-
-   if (!total) goto on_error;
-
-   result = g_hash_table_lookup(ht, searchFor);
-
- on_error:
-   printf("%ld\t%s\n", result ? result->stat : 0, searchFor);
-
-   g_hash_table_destroy(ht);
-   g_string_chunk_free(sc);
-}
-
-int
-main ()
-{
-   char buffer[4096];
-   GTrashStack *ts;
-   GPtrArray *roots;
-   GString *stuff;
-   gchar *s;
-   int len;
-
-   roots = g_ptr_array_new();
-   ts = NULL;
-
-   while (fgets(buffer, sizeof (buffer), stdin))
-     if (strncmp(buffer, ">THREE", 6) == 0)
-       break;
-
-   stuff = g_string_new(NULL);
-
-   while (fgets(buffer, sizeof (buffer), stdin))
-     {
-       size_t sz;
-
-       if (buffer[0] == '>')
-         break;
-
-       sz = strlen(buffer);
-       if (buffer[sz - 1] == '\n')
-         --sz;
-
-       stuff = g_string_append_len(stuff, buffer, sz);
-     }
-
-   stuff = g_string_ascii_up(stuff);
-   len = stuff->len;
-   s = g_string_free(stuff, FALSE);
-
-   write_frequencies(1, s, len, &ts, roots);
-   printf("\n");
-   write_frequencies(2, s, len, &ts, roots);
-   printf("\n");
-   write_count("GGT", s, len, &ts, roots);
-   write_count("GGTA", s, len, &ts, roots);
-   write_count("GGTATT", s, len, &ts, roots);
-   write_count("GGTATTTTAATT", s, len, &ts, roots);
-   write_count("GGTATTTTAATTTATAGT", s, len, &ts, roots);
-
-   free(s);
-
-   g_ptr_array_foreach(roots, free, NULL);
-   g_ptr_array_free(roots, TRUE);
-
-   return 0;
-}
diff --git a/gcc/testsuite/go.test/test/bench/k-nucleotide.go b/gcc/testsuite/go.test/test/bench/k-nucleotide.go
deleted file mode 100644 (file)
index fdc98ed..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by The Go Authors.
- */
-
-package main
-
-import (
-       "bufio"
-       "bytes"
-       "fmt"
-       "io/ioutil"
-       "os"
-       "sort"
-)
-
-var in *bufio.Reader
-
-func count(data string, n int) map[string]int {
-       counts := make(map[string]int)
-       top := len(data) - n
-       for i := 0; i <= top; i++ {
-               s := data[i : i+n]
-               counts[s]++
-       }
-       return counts
-}
-
-func countOne(data string, s string) int {
-       return count(data, len(s))[s]
-}
-
-type kNuc struct {
-       name  string
-       count int
-}
-
-type kNucArray []kNuc
-
-func (kn kNucArray) Len() int      { return len(kn) }
-func (kn kNucArray) Swap(i, j int) { kn[i], kn[j] = kn[j], kn[i] }
-func (kn kNucArray) Less(i, j int) bool {
-       if kn[i].count == kn[j].count {
-               return kn[i].name > kn[j].name // sort down
-       }
-       return kn[i].count > kn[j].count
-}
-
-func sortedArray(m map[string]int) kNucArray {
-       kn := make(kNucArray, len(m))
-       i := 0
-       for k, v := range m {
-               kn[i].name = k
-               kn[i].count = v
-               i++
-       }
-       sort.Sort(kn)
-       return kn
-}
-
-func print(m map[string]int) {
-       a := sortedArray(m)
-       sum := 0
-       for _, kn := range a {
-               sum += kn.count
-       }
-       for _, kn := range a {
-               fmt.Printf("%s %.3f\n", kn.name, 100*float64(kn.count)/float64(sum))
-       }
-}
-
-func main() {
-       in = bufio.NewReader(os.Stdin)
-       three := []byte(">THREE ")
-       for {
-               line, err := in.ReadSlice('\n')
-               if err != nil {
-                       fmt.Fprintln(os.Stderr, "ReadLine err:", err)
-                       os.Exit(2)
-               }
-               if line[0] == '>' && bytes.Equal(line[0:len(three)], three) {
-                       break
-               }
-       }
-       data, err := ioutil.ReadAll(in)
-       if err != nil {
-               fmt.Fprintln(os.Stderr, "ReadAll err:", err)
-               os.Exit(2)
-       }
-       // delete the newlines and convert to upper case
-       j := 0
-       for i := 0; i < len(data); i++ {
-               if data[i] != '\n' {
-                       data[j] = data[i] &^ ' ' // upper case
-                       j++
-               }
-       }
-       str := string(data[0:j])
-
-       print(count(str, 1))
-       fmt.Print("\n")
-
-       print(count(str, 2))
-       fmt.Print("\n")
-
-       interests := []string{"GGT", "GGTA", "GGTATT", "GGTATTTTAATT", "GGTATTTTAATTTATAGT"}
-       for _, s := range interests {
-               fmt.Printf("%d %s\n", countOne(str, s), s)
-       }
-}
diff --git a/gcc/testsuite/go.test/test/bench/k-nucleotide.txt b/gcc/testsuite/go.test/test/bench/k-nucleotide.txt
deleted file mode 100644 (file)
index 84169b8..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-T 31.520
-A 29.600
-C 19.480
-G 19.400
-
-AT 9.922
-TT 9.602
-TA 9.402
-AA 8.402
-GA 6.321
-TC 6.301
-TG 6.201
-GT 6.041
-CT 5.961
-AG 5.841
-CA 5.461
-AC 5.441
-CC 4.041
-CG 4.021
-GC 3.701
-GG 3.341
-
-54 GGT
-24 GGTA
-4 GGTATT
-0 GGTATTTTAATT
-0 GGTATTTTAATTTATAGT
diff --git a/gcc/testsuite/go.test/test/bench/mandelbrot.c b/gcc/testsuite/go.test/test/bench/mandelbrot.c
deleted file mode 100644 (file)
index c177c08..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Shootout
-   http://shootout.alioth.debian.org/
-
-   contributed by Greg Buchholz
-
-   for the debian (AMD) machine...
-   compile flags:  -O3 -ffast-math -march=athlon-xp -funroll-loops
-
-   for the gp4 (Intel) machine...
-   compile flags:  -O3 -ffast-math -march=pentium4 -funroll-loops
-*/
-
-#include<stdio.h>
-
-int main (int argc, char **argv)
-{
-    int w, h, bit_num = 0;
-    char byte_acc = 0;
-    int i, iter = 50;
-    double x, y, limit = 2.0;
-    double Zr, Zi, Cr, Ci, Tr, Ti;
-
-    w = h = atoi(argv[1]);
-
-    printf("P4\n%d %d\n",w,h);
-
-    for(y=0;y<h;++y)
-    {
-        for(x=0;x<w;++x)
-        {
-            Zr = Zi = Tr = Ti = 0.0;
-            Cr = (2.0*x/w - 1.5); Ci=(2.0*y/h - 1.0);
-
-            for (i=0;i<iter && (Tr+Ti <= limit*limit);++i)
-            {
-                Zi = 2.0*Zr*Zi + Ci;
-                Zr = Tr - Ti + Cr;
-                Tr = Zr * Zr;
-                Ti = Zi * Zi;
-            }
-
-            byte_acc <<= 1;
-            if(Tr+Ti <= limit*limit) byte_acc |= 0x01;
-
-            ++bit_num;
-
-            if(bit_num == 8)
-            {
-                putc(byte_acc,stdout);
-                byte_acc = 0;
-                bit_num = 0;
-            }
-            else if(x == w-1)
-            {
-                byte_acc <<= (8-w%8);
-                putc(byte_acc,stdout);
-                byte_acc = 0;
-                bit_num = 0;
-            }
-        }
-    }
-}
diff --git a/gcc/testsuite/go.test/test/bench/mandelbrot.go b/gcc/testsuite/go.test/test/bench/mandelbrot.go
deleted file mode 100644 (file)
index 1f9fbfd..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by The Go Authors.
- * Based on mandelbrot.c contributed by Greg Buchholz
- */
-
-package main
-
-import (
-       "bufio"
-       "flag"
-       "fmt"
-       "os"
-)
-
-var n = flag.Int("n", 200, "size")
-
-func main() {
-       flag.Parse()
-       out := bufio.NewWriter(os.Stdout)
-       defer out.Flush()
-
-       w := *n
-       h := *n
-       bit_num := 0
-       byte_acc := byte(0)
-       const Iter = 50
-       const Zero float64 = 0
-       const Limit = 2.0
-
-       fmt.Fprintf(out, "P4\n%d %d\n", w, h)
-
-       for y := 0; y < h; y++ {
-               for x := 0; x < w; x++ {
-                       Zr, Zi, Tr, Ti := Zero, Zero, Zero, Zero
-                       Cr := (2*float64(x)/float64(w) - 1.5)
-                       Ci := (2*float64(y)/float64(h) - 1.0)
-
-                       for i := 0; i < Iter && (Tr+Ti <= Limit*Limit); i++ {
-                               Zi = 2*Zr*Zi + Ci
-                               Zr = Tr - Ti + Cr
-                               Tr = Zr * Zr
-                               Ti = Zi * Zi
-                       }
-
-                       byte_acc <<= 1
-                       if Tr+Ti <= Limit*Limit {
-                               byte_acc |= 0x01
-                       }
-
-                       bit_num++
-
-                       if bit_num == 8 {
-                               out.WriteByte(byte_acc)
-                               byte_acc = 0
-                               bit_num = 0
-                       } else if x == w-1 {
-                               byte_acc <<= uint(8 - w%8)
-                               out.WriteByte(byte_acc)
-                               byte_acc = 0
-                               bit_num = 0
-                       }
-               }
-       }
-}
diff --git a/gcc/testsuite/go.test/test/bench/mandelbrot.txt b/gcc/testsuite/go.test/test/bench/mandelbrot.txt
deleted file mode 100644 (file)
index 2f7bbbc..0000000
Binary files a/gcc/testsuite/go.test/test/bench/mandelbrot.txt and /dev/null differ
diff --git a/gcc/testsuite/go.test/test/bench/meteor-contest.c b/gcc/testsuite/go.test/test/bench/meteor-contest.c
deleted file mode 100644 (file)
index 19c4340..0000000
+++ /dev/null
@@ -1,626 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by Christian Vosteen
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#define TRUE 1
-#define FALSE 0
-
-/* The board is a 50 cell hexagonal pattern.  For    . . . . .
- * maximum speed the board will be implemented as     . . . . .
- * 50 bits, which will fit into a 64 bit long long   . . . . .
- * int.                                               . . . . .
- *                                                   . . . . .
- * I will represent 0's as empty cells and 1's        . . . . .
- * as full cells.                                    . . . . .
- *                                                    . . . . .
- *                                                   . . . . .
- *                                                    . . . . .
- */
-
-unsigned long long board = 0xFFFC000000000000ULL;
-
-/* The puzzle pieces must be specified by the path followed
- * from one end to the other along 12 hexagonal directions.
- *
- *   Piece 0   Piece 1   Piece 2   Piece 3   Piece 4
- *
- *  O O O O    O   O O   O O O     O O O     O   O
- *         O    O O           O       O       O O
- *                           O         O         O
- *
- *   Piece 5   Piece 6   Piece 7   Piece 8   Piece 9
- *
- *    O O O     O O       O O     O O        O O O O
- *       O O       O O       O       O O O        O
- *                  O       O O
- *
- * I had to make it 12 directions because I wanted all of the
- * piece definitions to fit into the same size arrays.  It is
- * not possible to define piece 4 in terms of the 6 cardinal
- * directions in 4 moves.
- */
-
-#define E     0
-#define ESE   1
-#define SE    2
-#define S     3
-#define SW    4
-#define WSW   5
-#define W     6
-#define WNW   7
-#define NW    8
-#define N     9
-#define NE    10
-#define ENE   11
-#define PIVOT 12
-
-char piece_def[10][4] = {
-   {  E,  E,  E, SE},
-   { SE,  E, NE,  E},
-   {  E,  E, SE, SW},
-   {  E,  E, SW, SE},
-   { SE,  E, NE,  S},
-   {  E,  E, SW,  E},
-   {  E, SE, SE, NE},
-   {  E, SE, SE,  W},
-   {  E, SE,  E,  E},
-   {  E,  E,  E, SW}
-};
-
-
-/* To minimize the amount of work done in the recursive solve function below,
- * I'm going to allocate enough space for all legal rotations of each piece
- * at each position on the board. That's 10 pieces x 50 board positions x
- * 12 rotations.  However, not all 12 rotations will fit on every cell, so
- * I'll have to keep count of the actual number that do.
- * The pieces are going to be unsigned long long ints just like the board so
- * they can be bitwise-anded with the board to determine if they fit.
- * I'm also going to record the next possible open cell for each piece and
- * location to reduce the burden on the solve function.
- */
-unsigned long long pieces[10][50][12];
-int piece_counts[10][50];
-char next_cell[10][50][12];
-
-/* Returns the direction rotated 60 degrees clockwise */
-char rotate(char dir) {
-   return (dir + 2) % PIVOT;
-}
-
-/* Returns the direction flipped on the horizontal axis */
-char flip(char dir) {
-   return (PIVOT - dir) % PIVOT;
-}
-
-
-/* Returns the new cell index from the specified cell in the
- * specified direction.  The index is only valid if the
- * starting cell and direction have been checked by the
- * out_of_bounds function first.
- */
-char shift(char cell, char dir) {
-   switch(dir) {
-      case E:
-         return cell + 1;
-      case ESE:
-         if((cell / 5) % 2)
-            return cell + 7;
-         else
-            return cell + 6;
-      case SE:
-         if((cell / 5) % 2)
-            return cell + 6;
-         else
-            return cell + 5;
-      case S:
-         return cell + 10;
-      case SW:
-         if((cell / 5) % 2)
-            return cell + 5;
-         else
-            return cell + 4;
-      case WSW:
-         if((cell / 5) % 2)
-            return cell + 4;
-         else
-            return cell + 3;
-      case W:
-         return cell - 1;
-      case WNW:
-         if((cell / 5) % 2)
-            return cell - 6;
-         else
-            return cell - 7;
-      case NW:
-         if((cell / 5) % 2)
-            return cell - 5;
-         else
-            return cell - 6;
-      case N:
-         return cell - 10;
-      case NE:
-         if((cell / 5) % 2)
-            return cell - 4;
-         else
-            return cell - 5;
-      case ENE:
-         if((cell / 5) % 2)
-            return cell - 3;
-         else
-            return cell - 4;
-      default:
-         return cell;
-   }
-}
-
-/* Returns wether the specified cell and direction will land outside
- * of the board.  Used to determine if a piece is at a legal board
- * location or not.
- */
-char out_of_bounds(char cell, char dir) {
-   char i;
-   switch(dir) {
-      case E:
-         return cell % 5 == 4;
-      case ESE:
-         i = cell % 10;
-         return i == 4 || i == 8 || i == 9 || cell >= 45;
-      case SE:
-         return cell % 10 == 9 || cell >= 45;
-      case S:
-         return cell >= 40;
-      case SW:
-         return cell % 10 == 0 || cell >= 45;
-      case WSW:
-         i = cell % 10;
-         return i == 0 || i == 1 || i == 5 || cell >= 45;
-      case W:
-         return cell % 5 == 0;
-      case WNW:
-         i = cell % 10;
-         return i == 0 || i == 1 || i == 5 || cell < 5;
-      case NW:
-         return cell % 10 == 0 || cell < 5;
-      case N:
-         return cell < 10;
-      case NE:
-         return cell % 10 == 9 || cell < 5;
-      case ENE:
-         i = cell % 10;
-         return i == 4 || i == 8 || i == 9 || cell < 5;
-      default:
-         return FALSE;
-   }
-}
-
-/* Rotate a piece 60 degrees clockwise */
-void rotate_piece(int piece) {
-   int i;
-   for(i = 0; i < 4; i++)
-      piece_def[piece][i] = rotate(piece_def[piece][i]);
-}
-
-/* Flip a piece along the horizontal axis */
-void flip_piece(int piece) {
-   int i;
-   for(i = 0; i < 4; i++)
-      piece_def[piece][i] = flip(piece_def[piece][i]);
-}
-
-/* Convenience function to quickly calculate all of the indices for a piece */
-void calc_cell_indices(char *cell, int piece, char index) {
-   cell[0] = index;
-   cell[1] = shift(cell[0], piece_def[piece][0]);
-   cell[2] = shift(cell[1], piece_def[piece][1]);
-   cell[3] = shift(cell[2], piece_def[piece][2]);
-   cell[4] = shift(cell[3], piece_def[piece][3]);
-}
-
-/* Convenience function to quickly calculate if a piece fits on the board */
-int cells_fit_on_board(char *cell, int piece) {
-   return (!out_of_bounds(cell[0], piece_def[piece][0]) &&
-         !out_of_bounds(cell[1], piece_def[piece][1]) &&
-         !out_of_bounds(cell[2], piece_def[piece][2]) &&
-         !out_of_bounds(cell[3], piece_def[piece][3]));
-}
-
-/* Returns the lowest index of the cells of a piece.
- * I use the lowest index that a piece occupies as the index for looking up
- * the piece in the solve function.
- */
-char minimum_of_cells(char *cell) {
-   char minimum = cell[0];
-   minimum = cell[1] < minimum ? cell[1] : minimum;
-   minimum = cell[2] < minimum ? cell[2] : minimum;
-   minimum = cell[3] < minimum ? cell[3] : minimum;
-   minimum = cell[4] < minimum ? cell[4] : minimum;
-   return minimum;
-}
-
-/* Calculate the lowest possible open cell if the piece is placed on the board.
- * Used to later reduce the amount of time searching for open cells in the
- * solve function.
- */
-char first_empty_cell(char *cell, char minimum) {
-   char first_empty = minimum;
-   while(first_empty == cell[0] || first_empty == cell[1] ||
-         first_empty == cell[2] || first_empty == cell[3] ||
-         first_empty == cell[4])
-      first_empty++;
-   return first_empty;
-}
-
-/* Generate the unsigned long long int that will later be anded with the
- * board to determine if it fits.
- */
-unsigned long long bitmask_from_cells(char *cell) {
-   unsigned long long piece_mask = 0ULL;
-   int i;
-   for(i = 0; i < 5; i++)
-      piece_mask |= 1ULL << cell[i];
-   return piece_mask;
-}
-
-/* Record the piece and other important information in arrays that will
- * later be used by the solve function.
- */
-void record_piece(int piece, int minimum, char first_empty,
-      unsigned long long piece_mask) {
-   pieces[piece][minimum][piece_counts[piece][minimum]] = piece_mask;
-   next_cell[piece][minimum][piece_counts[piece][minimum]] = first_empty;
-   piece_counts[piece][minimum]++;
-}
-
-
-/* Fill the entire board going cell by cell.  If any cells are "trapped"
- * they will be left alone.
- */
-void fill_contiguous_space(char *board, int index) {
-   if(board[index] == 1)
-      return;
-   board[index] = 1;
-   if(!out_of_bounds(index, E))
-      fill_contiguous_space(board, shift(index, E));
-   if(!out_of_bounds(index, SE))
-      fill_contiguous_space(board, shift(index, SE));
-   if(!out_of_bounds(index, SW))
-      fill_contiguous_space(board, shift(index, SW));
-   if(!out_of_bounds(index, W))
-      fill_contiguous_space(board, shift(index, W));
-   if(!out_of_bounds(index, NW))
-      fill_contiguous_space(board, shift(index, NW));
-   if(!out_of_bounds(index, NE))
-      fill_contiguous_space(board, shift(index, NE));
-}
-
-
-/* To thin the number of pieces, I calculate if any of them trap any empty
- * cells at the edges.  There are only a handful of exceptions where the
- * the board can be solved with the trapped cells.  For example:  piece 8 can
- * trap 5 cells in the corner, but piece 3 can fit in those cells, or piece 0
- * can split the board in half where both halves are viable.
- */
-int has_island(char *cell, int piece) {
-   char temp_board[50];
-   char c;
-   int i;
-   for(i = 0; i < 50; i++)
-      temp_board[i] = 0;
-   for(i = 0; i < 5; i++)
-      temp_board[((int)cell[i])] = 1;
-   i = 49;
-   while(temp_board[i] == 1)
-      i--;
-   fill_contiguous_space(temp_board, i);
-   c = 0;
-   for(i = 0; i < 50; i++)
-      if(temp_board[i] == 0)
-         c++;
-   if(c == 0 || (c == 5 && piece == 8) || (c == 40 && piece == 8) ||
-         (c % 5 == 0 && piece == 0))
-      return FALSE;
-   else
-      return TRUE;
-}
-
-
-/* Calculate all six rotations of the specified piece at the specified index.
- * We calculate only half of piece 3's rotations.  This is because any solution
- * found has an identical solution rotated 180 degrees.  Thus we can reduce the
- * number of attempted pieces in the solve algorithm by not including the 180-
- * degree-rotated pieces of ONE of the pieces.  I chose piece 3 because it gave
- * me the best time ;)
- */
- void calc_six_rotations(char piece, char index) {
-   char rotation, cell[5];
-   char minimum, first_empty;
-   unsigned long long piece_mask;
-
-   for(rotation = 0; rotation < 6; rotation++) {
-      if(piece != 3 || rotation < 3) {
-         calc_cell_indices(cell, piece, index);
-         if(cells_fit_on_board(cell, piece) && !has_island(cell, piece)) {
-            minimum = minimum_of_cells(cell);
-            first_empty = first_empty_cell(cell, minimum);
-            piece_mask = bitmask_from_cells(cell);
-            record_piece(piece, minimum, first_empty, piece_mask);
-         }
-      }
-      rotate_piece(piece);
-   }
-}
-
-/* Calculate every legal rotation for each piece at each board location. */
-void calc_pieces(void) {
-   char piece, index;
-
-   for(piece = 0; piece < 10; piece++) {
-      for(index = 0; index < 50; index++) {
-         calc_six_rotations(piece, index);
-         flip_piece(piece);
-         calc_six_rotations(piece, index);
-      }
-   }
-}
-
-
-
-/* Calculate all 32 possible states for a 5-bit row and all rows that will
- * create islands that follow any of the 32 possible rows.  These pre-
- * calculated 5-bit rows will be used to find islands in a partially solved
- * board in the solve function.
- */
-#define ROW_MASK 0x1F
-#define TRIPLE_MASK 0x7FFF
-char all_rows[32] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-      17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31};
-int bad_even_rows[32][32];
-int bad_odd_rows[32][32];
-int bad_even_triple[32768];
-int bad_odd_triple[32768];
-
-int rows_bad(char row1, char row2, int even) {
-   /* even is referring to row1 */
-   int i, in_zeroes, group_okay;
-   char block, row2_shift;
-   /* Test for blockages at same index and shifted index */
-   if(even)
-      row2_shift = ((row2 << 1) & ROW_MASK) | 0x01;
-   else
-      row2_shift = (row2 >> 1) | 0x10;
-   block = ((row1 ^ row2) & row2) & ((row1 ^ row2_shift) & row2_shift);
-   /* Test for groups of 0's */
-   in_zeroes = FALSE;
-   group_okay = FALSE;
-   for(i = 0; i < 5; i++) {
-      if(row1 & (1 << i)) {
-         if(in_zeroes) {
-            if(!group_okay)
-               return TRUE;
-            in_zeroes = FALSE;
-            group_okay = FALSE;
-         }
-      } else {
-         if(!in_zeroes)
-            in_zeroes = TRUE;
-         if(!(block & (1 << i)))
-            group_okay = TRUE;
-      }
-   }
-   if(in_zeroes)
-      return !group_okay;
-   else
-      return FALSE;
-}
-
-/* Check for cases where three rows checked sequentially cause a false
- * positive.  One scenario is when 5 cells may be surrounded where piece 5
- * or 7 can fit.  The other scenario is when piece 2 creates a hook shape.
- */
-int triple_is_okay(char row1, char row2, char row3, int even) {
-   if(even) {
-      /* There are four cases:
-       * row1: 00011  00001  11001  10101
-       * row2: 01011  00101  10001  10001
-       * row3: 011??  00110  ?????  ?????
-       */
-      return ((row1 == 0x03) && (row2 == 0x0B) && ((row3 & 0x1C) == 0x0C)) ||
-            ((row1 == 0x01) && (row2 == 0x05) && (row3 == 0x06)) ||
-            ((row1 == 0x19) && (row2 == 0x11)) ||
-            ((row1 == 0x15) && (row2 == 0x11));
-   } else {
-      /* There are two cases:
-       * row1: 10011  10101
-       * row2: 10001  10001
-       * row3: ?????  ?????
-       */
-      return ((row1 == 0x13) && (row2 == 0x11)) ||
-            ((row1 == 0x15) && (row2 == 0x11));
-   }
-}
-
-
-void calc_rows(void) {
-   int row1, row2, row3;
-   int result1, result2;
-   for(row1 = 0; row1 < 32; row1++) {
-      for(row2 = 0; row2 < 32; row2++) {
-         bad_even_rows[row1][row2] = rows_bad(row1, row2, TRUE);
-         bad_odd_rows[row1][row2] = rows_bad(row1, row2, FALSE);
-      }
-   }
-   for(row1 = 0; row1 < 32; row1++) {
-      for(row2 = 0; row2 < 32; row2++) {
-         for(row3 = 0; row3 < 32; row3++) {
-            result1 = bad_even_rows[row1][row2];
-            result2 = bad_odd_rows[row2][row3];
-            if(result1 == FALSE && result2 == TRUE
-                  && triple_is_okay(row1, row2, row3, TRUE))
-               bad_even_triple[row1+(row2*32)+(row3*1024)] = FALSE;
-            else
-               bad_even_triple[row1+(row2*32)+(row3*1024)] = result1 || result2;
-
-            result1 = bad_odd_rows[row1][row2];
-            result2 = bad_even_rows[row2][row3];
-            if(result1 == FALSE && result2 == TRUE
-                  && triple_is_okay(row1, row2, row3, FALSE))
-               bad_odd_triple[row1+(row2*32)+(row3*1024)] = FALSE;
-            else
-               bad_odd_triple[row1+(row2*32)+(row3*1024)] = result1 || result2;
-         }
-      }
-   }
-}
-
-
-
-/* Calculate islands while solving the board.
- */
-int boardHasIslands(char cell) {
-   /* Too low on board, don't bother checking */
-   if(cell >= 40)
-      return FALSE;
-   int current_triple = (board >> ((cell / 5) * 5)) & TRIPLE_MASK;
-   if((cell / 5) % 2)
-      return bad_odd_triple[current_triple];
-   else
-      return bad_even_triple[current_triple];
-}
-
-
-/* The recursive solve algorithm.  Try to place each permutation in the upper-
- * leftmost empty cell.  Mark off available pieces as it goes along.
- * Because the board is a bit mask, the piece number and bit mask must be saved
- * at each successful piece placement.  This data is used to create a 50 char
- * array if a solution is found.
- */
-short avail = 0x03FF;
-char sol_nums[10];
-unsigned long long sol_masks[10];
-signed char solutions[2100][50];
-int solution_count = 0;
-int max_solutions = 2100;
-
-void record_solution(void) {
-   int sol_no, index;
-   unsigned long long sol_mask;
-   for(sol_no = 0; sol_no < 10; sol_no++) {
-      sol_mask = sol_masks[sol_no];
-      for(index = 0; index < 50; index++) {
-         if(sol_mask & 1ULL) {
-            solutions[solution_count][index] = sol_nums[sol_no];
-            /* Board rotated 180 degrees is a solution too! */
-            solutions[solution_count+1][49-index] = sol_nums[sol_no];
-         }
-         sol_mask = sol_mask >> 1;
-      }
-   }
-   solution_count += 2;
-}
-
-void solve(int depth, int cell) {
-   int piece, rotation, max_rots;
-   unsigned long long *piece_mask;
-   short piece_no_mask;
-
-   if(solution_count >= max_solutions)
-      return;
-
-   while(board & (1ULL << cell))
-      cell++;
-
-   for(piece = 0; piece < 10; piece++) {
-      piece_no_mask = 1 << piece;
-      if(!(avail & piece_no_mask))
-         continue;
-      avail ^= piece_no_mask;
-      max_rots = piece_counts[piece][cell];
-      piece_mask = pieces[piece][cell];
-      for(rotation = 0; rotation < max_rots; rotation++) {
-         if(!(board & *(piece_mask + rotation))) {
-            sol_nums[depth] = piece;
-            sol_masks[depth] = *(piece_mask + rotation);
-            if(depth == 9) {
-               /* Solution found!!!!!11!!ONE! */
-               record_solution();
-               avail ^= piece_no_mask;
-               return;
-            }
-            board |= *(piece_mask + rotation);
-            if(!boardHasIslands(next_cell[piece][cell][rotation]))
-               solve(depth + 1, next_cell[piece][cell][rotation]);
-            board ^= *(piece_mask + rotation);
-         }
-      }
-      avail ^= piece_no_mask;
-   }
-}
-
-
-/* qsort comparator - used to find first and last solutions */
-int solution_sort(const void *elem1, const void *elem2) {
-   signed char *char1 = (signed char *) elem1;
-   signed char *char2 = (signed char *) elem2;
-   int i = 0;
-   while(i < 50 && char1[i] == char2[i])
-      i++;
-   return char1[i] - char2[i];
-}
-
-
-/* pretty print a board in the specified hexagonal format */
-void pretty(signed char *b) {
-   int i;
-   for(i = 0; i < 50; i += 10) {
-      printf("%c %c %c %c %c \n %c %c %c %c %c \n", b[i]+'0', b[i+1]+'0',
-            b[i+2]+'0', b[i+3]+'0', b[i+4]+'0', b[i+5]+'0', b[i+6]+'0',
-            b[i+7]+'0', b[i+8]+'0', b[i+9]+'0');
-   }
-   printf("\n");
-}
-
-int main(int argc, char **argv) {
-   if(argc > 1)
-      max_solutions = atoi(argv[1]);
-   calc_pieces();
-   calc_rows();
-   solve(0, 0);
-   printf("%d solutions found\n\n", solution_count);
-   qsort(solutions, solution_count, 50 * sizeof(signed char), solution_sort);
-   pretty(solutions[0]);
-   pretty(solutions[solution_count-1]);
-   return 0;
-}
diff --git a/gcc/testsuite/go.test/test/bench/meteor-contest.go b/gcc/testsuite/go.test/test/bench/meteor-contest.go
deleted file mode 100644 (file)
index 6660810..0000000
+++ /dev/null
@@ -1,665 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by The Go Authors.
- * based on meteor-contest.c by Christian Vosteen
- */
-
-package main
-
-import (
-       "flag"
-       "fmt"
-)
-
-var max_solutions = flag.Int("n", 2100, "maximum number of solutions")
-
-
-func boolInt(b bool) int8 {
-       if b {
-               return 1
-       }
-       return 0
-}
-
-/* The board is a 50 cell hexagonal pattern.  For    . . . . .
- * maximum speed the board will be implemented as     . . . . .
- * 50 bits, which will fit into a 64 bit long long   . . . . .
- * int.                                               . . . . .
- *                                                   . . . . .
- * I will represent 0's as empty cells and 1's        . . . . .
- * as full cells.                                    . . . . .
- *                                                    . . . . .
- *                                                   . . . . .
- *                                                    . . . . .
- */
-
-var board uint64 = 0xFFFC000000000000
-
-/* The puzzle pieces must be specified by the path followed
- * from one end to the other along 12 hexagonal directions.
- *
- *   Piece 0   Piece 1   Piece 2   Piece 3   Piece 4
- *
- *  O O O O    O   O O   O O O     O O O     O   O
- *         O    O O           O       O       O O
- *                           O         O         O
- *
- *   Piece 5   Piece 6   Piece 7   Piece 8   Piece 9
- *
- *    O O O     O O       O O     O O        O O O O
- *       O O       O O       O       O O O        O
- *                  O       O O
- *
- * I had to make it 12 directions because I wanted all of the
- * piece definitions to fit into the same size arrays.  It is
- * not possible to define piece 4 in terms of the 6 cardinal
- * directions in 4 moves.
- */
-
-const (
-       E = iota
-       ESE
-       SE
-       S
-       SW
-       WSW
-       W
-       WNW
-       NW
-       N
-       NE
-       ENE
-       PIVOT
-)
-
-var piece_def = [10][4]int8{
-       [4]int8{E, E, E, SE},
-       [4]int8{SE, E, NE, E},
-       [4]int8{E, E, SE, SW},
-       [4]int8{E, E, SW, SE},
-       [4]int8{SE, E, NE, S},
-       [4]int8{E, E, SW, E},
-       [4]int8{E, SE, SE, NE},
-       [4]int8{E, SE, SE, W},
-       [4]int8{E, SE, E, E},
-       [4]int8{E, E, E, SW},
-}
-
-
-/* To minimize the amount of work done in the recursive solve function below,
- * I'm going to allocate enough space for all legal rotations of each piece
- * at each position on the board. That's 10 pieces x 50 board positions x
- * 12 rotations.  However, not all 12 rotations will fit on every cell, so
- * I'll have to keep count of the actual number that do.
- * The pieces are going to be unsigned long long ints just like the board so
- * they can be bitwise-anded with the board to determine if they fit.
- * I'm also going to record the next possible open cell for each piece and
- * location to reduce the burden on the solve function.
- */
-var (
-       pieces       [10][50][12]uint64
-       piece_counts [10][50]int
-       next_cell    [10][50][12]int8
-)
-
-/* Returns the direction rotated 60 degrees clockwise */
-func rotate(dir int8) int8 { return (dir + 2) % PIVOT }
-
-/* Returns the direction flipped on the horizontal axis */
-func flip(dir int8) int8 { return (PIVOT - dir) % PIVOT }
-
-
-/* Returns the new cell index from the specified cell in the
- * specified direction.  The index is only valid if the
- * starting cell and direction have been checked by the
- * out_of_bounds function first.
- */
-func shift(cell, dir int8) int8 {
-       switch dir {
-       case E:
-               return cell + 1
-       case ESE:
-               if ((cell / 5) % 2) != 0 {
-                       return cell + 7
-               } else {
-                       return cell + 6
-               }
-       case SE:
-               if ((cell / 5) % 2) != 0 {
-                       return cell + 6
-               } else {
-                       return cell + 5
-               }
-       case S:
-               return cell + 10
-       case SW:
-               if ((cell / 5) % 2) != 0 {
-                       return cell + 5
-               } else {
-                       return cell + 4
-               }
-       case WSW:
-               if ((cell / 5) % 2) != 0 {
-                       return cell + 4
-               } else {
-                       return cell + 3
-               }
-       case W:
-               return cell - 1
-       case WNW:
-               if ((cell / 5) % 2) != 0 {
-                       return cell - 6
-               } else {
-                       return cell - 7
-               }
-       case NW:
-               if ((cell / 5) % 2) != 0 {
-                       return cell - 5
-               } else {
-                       return cell - 6
-               }
-       case N:
-               return cell - 10
-       case NE:
-               if ((cell / 5) % 2) != 0 {
-                       return cell - 4
-               } else {
-                       return cell - 5
-               }
-       case ENE:
-               if ((cell / 5) % 2) != 0 {
-                       return cell - 3
-               } else {
-                       return cell - 4
-               }
-       }
-       return cell
-}
-
-/* Returns wether the specified cell and direction will land outside
- * of the board.  Used to determine if a piece is at a legal board
- * location or not.
- */
-func out_of_bounds(cell, dir int8) bool {
-       switch dir {
-       case E:
-               return cell%5 == 4
-       case ESE:
-               i := cell % 10
-               return i == 4 || i == 8 || i == 9 || cell >= 45
-       case SE:
-               return cell%10 == 9 || cell >= 45
-       case S:
-               return cell >= 40
-       case SW:
-               return cell%10 == 0 || cell >= 45
-       case WSW:
-               i := cell % 10
-               return i == 0 || i == 1 || i == 5 || cell >= 45
-       case W:
-               return cell%5 == 0
-       case WNW:
-               i := cell % 10
-               return i == 0 || i == 1 || i == 5 || cell < 5
-       case NW:
-               return cell%10 == 0 || cell < 5
-       case N:
-               return cell < 10
-       case NE:
-               return cell%10 == 9 || cell < 5
-       case ENE:
-               i := cell % 10
-               return i == 4 || i == 8 || i == 9 || cell < 5
-       }
-       return false
-}
-
-/* Rotate a piece 60 degrees clockwise */
-func rotate_piece(piece int) {
-       for i := 0; i < 4; i++ {
-               piece_def[piece][i] = rotate(piece_def[piece][i])
-       }
-}
-
-/* Flip a piece along the horizontal axis */
-func flip_piece(piece int) {
-       for i := 0; i < 4; i++ {
-               piece_def[piece][i] = flip(piece_def[piece][i])
-       }
-}
-
-/* Convenience function to quickly calculate all of the indices for a piece */
-func calc_cell_indices(cell []int8, piece int, index int8) {
-       cell[0] = index
-       for i := 1; i < 5; i++ {
-               cell[i] = shift(cell[i-1], piece_def[piece][i-1])
-       }
-}
-
-/* Convenience function to quickly calculate if a piece fits on the board */
-func cells_fit_on_board(cell []int8, piece int) bool {
-       return !out_of_bounds(cell[0], piece_def[piece][0]) &&
-               !out_of_bounds(cell[1], piece_def[piece][1]) &&
-               !out_of_bounds(cell[2], piece_def[piece][2]) &&
-               !out_of_bounds(cell[3], piece_def[piece][3])
-}
-
-/* Returns the lowest index of the cells of a piece.
- * I use the lowest index that a piece occupies as the index for looking up
- * the piece in the solve function.
- */
-func minimum_of_cells(cell []int8) int8 {
-       minimum := cell[0]
-       for i := 1; i < 5; i++ {
-               if cell[i] < minimum {
-                       minimum = cell[i]
-               }
-       }
-       return minimum
-}
-
-/* Calculate the lowest possible open cell if the piece is placed on the board.
- * Used to later reduce the amount of time searching for open cells in the
- * solve function.
- */
-func first_empty_cell(cell []int8, minimum int8) int8 {
-       first_empty := minimum
-       for first_empty == cell[0] || first_empty == cell[1] ||
-               first_empty == cell[2] || first_empty == cell[3] ||
-               first_empty == cell[4] {
-               first_empty++
-       }
-       return first_empty
-}
-
-/* Generate the unsigned long long int that will later be anded with the
- * board to determine if it fits.
- */
-func bitmask_from_cells(cell []int8) uint64 {
-       var piece_mask uint64
-       for i := 0; i < 5; i++ {
-               piece_mask |= 1 << uint(cell[i])
-       }
-       return piece_mask
-}
-
-/* Record the piece and other important information in arrays that will
- * later be used by the solve function.
- */
-func record_piece(piece int, minimum int8, first_empty int8, piece_mask uint64) {
-       pieces[piece][minimum][piece_counts[piece][minimum]] = piece_mask
-       next_cell[piece][minimum][piece_counts[piece][minimum]] = first_empty
-       piece_counts[piece][minimum]++
-}
-
-
-/* Fill the entire board going cell by cell.  If any cells are "trapped"
- * they will be left alone.
- */
-func fill_contiguous_space(board []int8, index int8) {
-       if board[index] == 1 {
-               return
-       }
-       board[index] = 1
-       if !out_of_bounds(index, E) {
-               fill_contiguous_space(board, shift(index, E))
-       }
-       if !out_of_bounds(index, SE) {
-               fill_contiguous_space(board, shift(index, SE))
-       }
-       if !out_of_bounds(index, SW) {
-               fill_contiguous_space(board, shift(index, SW))
-       }
-       if !out_of_bounds(index, W) {
-               fill_contiguous_space(board, shift(index, W))
-       }
-       if !out_of_bounds(index, NW) {
-               fill_contiguous_space(board, shift(index, NW))
-       }
-       if !out_of_bounds(index, NE) {
-               fill_contiguous_space(board, shift(index, NE))
-       }
-}
-
-
-/* To thin the number of pieces, I calculate if any of them trap any empty
- * cells at the edges.  There are only a handful of exceptions where the
- * the board can be solved with the trapped cells.  For example:  piece 8 can
- * trap 5 cells in the corner, but piece 3 can fit in those cells, or piece 0
- * can split the board in half where both halves are viable.
- */
-func has_island(cell []int8, piece int) bool {
-       temp_board := make([]int8, 50)
-       var i int
-       for i = 0; i < 5; i++ {
-               temp_board[cell[i]] = 1
-       }
-       i = 49
-       for temp_board[i] == 1 {
-               i--
-       }
-       fill_contiguous_space(temp_board, int8(i))
-       c := 0
-       for i = 0; i < 50; i++ {
-               if temp_board[i] == 0 {
-                       c++
-               }
-       }
-       if c == 0 || (c == 5 && piece == 8) || (c == 40 && piece == 8) ||
-               (c%5 == 0 && piece == 0) {
-               return false
-       }
-       return true
-}
-
-
-/* Calculate all six rotations of the specified piece at the specified index.
- * We calculate only half of piece 3's rotations.  This is because any solution
- * found has an identical solution rotated 180 degrees.  Thus we can reduce the
- * number of attempted pieces in the solve algorithm by not including the 180-
- * degree-rotated pieces of ONE of the pieces.  I chose piece 3 because it gave
- * me the best time ;)
- */
-func calc_six_rotations(piece, index int) {
-       cell := make([]int8, 5)
-       for rotation := 0; rotation < 6; rotation++ {
-               if piece != 3 || rotation < 3 {
-                       calc_cell_indices(cell, piece, int8(index))
-                       if cells_fit_on_board(cell, piece) && !has_island(cell, piece) {
-                               minimum := minimum_of_cells(cell)
-                               first_empty := first_empty_cell(cell, minimum)
-                               piece_mask := bitmask_from_cells(cell)
-                               record_piece(piece, minimum, first_empty, piece_mask)
-                       }
-               }
-               rotate_piece(piece)
-       }
-}
-
-/* Calculate every legal rotation for each piece at each board location. */
-func calc_pieces() {
-       for piece := 0; piece < 10; piece++ {
-               for index := 0; index < 50; index++ {
-                       calc_six_rotations(piece, index)
-                       flip_piece(piece)
-                       calc_six_rotations(piece, index)
-               }
-       }
-}
-
-
-/* Calculate all 32 possible states for a 5-bit row and all rows that will
- * create islands that follow any of the 32 possible rows.  These pre-
- * calculated 5-bit rows will be used to find islands in a partially solved
- * board in the solve function.
- */
-const (
-       ROW_MASK    = 0x1F
-       TRIPLE_MASK = 0x7FFF
-)
-
-var (
-       all_rows = [32]int8{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-               17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-       }
-       bad_even_rows   [32][32]int8
-       bad_odd_rows    [32][32]int8
-       bad_even_triple [32768]int8
-       bad_odd_triple  [32768]int8
-)
-
-func rows_bad(row1, row2 int8, even bool) int8 {
-       /* even is referring to row1 */
-       var row2_shift int8
-       /* Test for blockages at same index and shifted index */
-       if even {
-               row2_shift = ((row2 << 1) & ROW_MASK) | 0x01
-       } else {
-               row2_shift = (row2 >> 1) | 0x10
-       }
-       block := ((row1 ^ row2) & row2) & ((row1 ^ row2_shift) & row2_shift)
-       /* Test for groups of 0's */
-       in_zeroes := false
-       group_okay := false
-       for i := uint8(0); i < 5; i++ {
-               if row1&(1<<i) != 0 {
-                       if in_zeroes {
-                               if !group_okay {
-                                       return 1
-                               }
-                               in_zeroes = false
-                               group_okay = false
-                       }
-               } else {
-                       if !in_zeroes {
-                               in_zeroes = true
-                       }
-                       if (block & (1 << i)) == 0 {
-                               group_okay = true
-                       }
-               }
-       }
-       if in_zeroes {
-               return boolInt(!group_okay)
-       }
-       return 0
-}
-
-/* Check for cases where three rows checked sequentially cause a false
- * positive.  One scenario is when 5 cells may be surrounded where piece 5
- * or 7 can fit.  The other scenario is when piece 2 creates a hook shape.
- */
-func triple_is_okay(row1, row2, row3 int, even bool) bool {
-       if even {
-               /* There are four cases:
-                * row1: 00011  00001  11001  10101
-                * row2: 01011  00101  10001  10001
-                * row3: 011??  00110  ?????  ?????
-                */
-               return ((row1 == 0x03) && (row2 == 0x0B) && ((row3 & 0x1C) == 0x0C)) ||
-                       ((row1 == 0x01) && (row2 == 0x05) && (row3 == 0x06)) ||
-                       ((row1 == 0x19) && (row2 == 0x11)) ||
-                       ((row1 == 0x15) && (row2 == 0x11))
-       }
-       /* There are two cases:
-        * row1: 10011  10101
-        * row2: 10001  10001
-        * row3: ?????  ?????
-        */
-       return ((row1 == 0x13) && (row2 == 0x11)) ||
-               ((row1 == 0x15) && (row2 == 0x11))
-}
-
-func calc_rows() {
-       for row1 := int8(0); row1 < 32; row1++ {
-               for row2 := int8(0); row2 < 32; row2++ {
-                       bad_even_rows[row1][row2] = rows_bad(row1, row2, true)
-                       bad_odd_rows[row1][row2] = rows_bad(row1, row2, false)
-               }
-       }
-       for row1 := 0; row1 < 32; row1++ {
-               for row2 := 0; row2 < 32; row2++ {
-                       for row3 := 0; row3 < 32; row3++ {
-                               result1 := bad_even_rows[row1][row2]
-                               result2 := bad_odd_rows[row2][row3]
-                               if result1 == 0 && result2 != 0 && triple_is_okay(row1, row2, row3, true) {
-                                       bad_even_triple[row1+(row2*32)+(row3*1024)] = 0
-                               } else {
-                                       bad_even_triple[row1+(row2*32)+(row3*1024)] = boolInt(result1 != 0 || result2 != 0)
-                               }
-
-                               result1 = bad_odd_rows[row1][row2]
-                               result2 = bad_even_rows[row2][row3]
-                               if result1 == 0 && result2 != 0 && triple_is_okay(row1, row2, row3, false) {
-                                       bad_odd_triple[row1+(row2*32)+(row3*1024)] = 0
-                               } else {
-                                       bad_odd_triple[row1+(row2*32)+(row3*1024)] = boolInt(result1 != 0 || result2 != 0)
-                               }
-                       }
-               }
-       }
-}
-
-
-/* Calculate islands while solving the board.
- */
-func boardHasIslands(cell int8) int8 {
-       /* Too low on board, don't bother checking */
-       if cell >= 40 {
-               return 0
-       }
-       current_triple := (board >> uint((cell/5)*5)) & TRIPLE_MASK
-       if (cell/5)%2 != 0 {
-               return bad_odd_triple[current_triple]
-       }
-       return bad_even_triple[current_triple]
-}
-
-
-/* The recursive solve algorithm.  Try to place each permutation in the upper-
- * leftmost empty cell.  Mark off available pieces as it goes along.
- * Because the board is a bit mask, the piece number and bit mask must be saved
- * at each successful piece placement.  This data is used to create a 50 char
- * array if a solution is found.
- */
-var (
-       avail          uint16 = 0x03FF
-       sol_nums       [10]int8
-       sol_masks      [10]uint64
-       solutions      [2100][50]int8
-       solution_count = 0
-)
-
-func record_solution() {
-       for sol_no := 0; sol_no < 10; sol_no++ {
-               sol_mask := sol_masks[sol_no]
-               for index := 0; index < 50; index++ {
-                       if sol_mask&1 == 1 {
-                               solutions[solution_count][index] = sol_nums[sol_no]
-                               /* Board rotated 180 degrees is a solution too! */
-                               solutions[solution_count+1][49-index] = sol_nums[sol_no]
-                       }
-                       sol_mask = sol_mask >> 1
-               }
-       }
-       solution_count += 2
-}
-
-func solve(depth, cell int8) {
-       if solution_count >= *max_solutions {
-               return
-       }
-
-       for board&(1<<uint(cell)) != 0 {
-               cell++
-       }
-
-       for piece := int8(0); piece < 10; piece++ {
-               var piece_no_mask uint16 = 1 << uint(piece)
-               if avail&piece_no_mask == 0 {
-                       continue
-               }
-               avail ^= piece_no_mask
-               max_rots := piece_counts[piece][cell]
-               piece_mask := pieces[piece][cell]
-               for rotation := 0; rotation < max_rots; rotation++ {
-                       if board&piece_mask[rotation] == 0 {
-                               sol_nums[depth] = piece
-                               sol_masks[depth] = piece_mask[rotation]
-                               if depth == 9 {
-                                       /* Solution found!!!!!11!!ONE! */
-                                       record_solution()
-                                       avail ^= piece_no_mask
-                                       return
-                               }
-                               board |= piece_mask[rotation]
-                               if boardHasIslands(next_cell[piece][cell][rotation]) == 0 {
-                                       solve(depth+1, next_cell[piece][cell][rotation])
-                               }
-                               board ^= piece_mask[rotation]
-                       }
-               }
-               avail ^= piece_no_mask
-       }
-}
-
-/* pretty print a board in the specified hexagonal format */
-func pretty(b *[50]int8) {
-       for i := 0; i < 50; i += 10 {
-               fmt.Printf("%c %c %c %c %c \n %c %c %c %c %c \n", b[i]+'0', b[i+1]+'0',
-                       b[i+2]+'0', b[i+3]+'0', b[i+4]+'0', b[i+5]+'0', b[i+6]+'0',
-                       b[i+7]+'0', b[i+8]+'0', b[i+9]+'0')
-       }
-       fmt.Printf("\n")
-}
-
-/* Find smallest and largest solutions */
-func smallest_largest() (smallest, largest *[50]int8) {
-       smallest = &solutions[0]
-       largest = &solutions[0]
-       for i := 1; i < solution_count; i++ {
-               candidate := &solutions[i]
-               for j, s := range *smallest {
-                       c := candidate[j]
-                       if c == s {
-                               continue
-                       }
-                       if c < s {
-                               smallest = candidate
-                       }
-                       break
-               }
-               for j, s := range *largest {
-                       c := candidate[j]
-                       if c == s {
-                               continue
-                       }
-                       if c > s {
-                               largest = candidate
-                       }
-                       break
-               }
-       }
-       return
-}
-
-func main() {
-       flag.Parse()
-       calc_pieces()
-       calc_rows()
-       solve(0, 0)
-       fmt.Printf("%d solutions found\n\n", solution_count)
-       smallest, largest := smallest_largest()
-       pretty(smallest)
-       pretty(largest)
-}
diff --git a/gcc/testsuite/go.test/test/bench/meteor-contest.txt b/gcc/testsuite/go.test/test/bench/meteor-contest.txt
deleted file mode 100644 (file)
index 38d9783..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-2098 solutions found
-
-0 0 0 0 1 
- 2 2 2 0 1 
-2 6 6 1 1 
- 2 6 1 5 5 
-8 6 5 5 5 
- 8 6 3 3 3 
-4 8 8 9 3 
- 4 4 8 9 3 
-4 7 4 7 9 
- 7 7 7 9 9 
-
-9 9 9 9 8 
- 9 6 6 8 5 
-6 6 8 8 5 
- 6 8 2 5 5 
-7 7 7 2 5 
- 7 4 7 2 0 
-1 4 2 2 0 
- 1 4 4 0 3 
-1 4 0 0 3 
- 1 1 3 3 3 
-
diff --git a/gcc/testsuite/go.test/test/bench/nbody.c b/gcc/testsuite/go.test/test/bench/nbody.c
deleted file mode 100644 (file)
index 3b95b05..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
- * The Great Computer Language Shootout
- * http://shootout.alioth.debian.org/
- *
- * contributed by Christoph Bauer
- *
- */
-
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#define pi 3.141592653589793
-#define solar_mass (4 * pi * pi)
-#define days_per_year 365.24
-
-struct planet {
-  double x, y, z;
-  double vx, vy, vz;
-  double mass;
-};
-
-void advance(int nbodies, struct planet * bodies, double dt)
-{
-  int i, j;
-
-  for (i = 0; i < nbodies; i++) {
-    struct planet * b = &(bodies[i]);
-    for (j = i + 1; j < nbodies; j++) {
-      struct planet * b2 = &(bodies[j]);
-      double dx = b->x - b2->x;
-      double dy = b->y - b2->y;
-      double dz = b->z - b2->z;
-      double distance = sqrt(dx * dx + dy * dy + dz * dz);
-      double mag = dt / (distance * distance * distance);
-      b->vx -= dx * b2->mass * mag;
-      b->vy -= dy * b2->mass * mag;
-      b->vz -= dz * b2->mass * mag;
-      b2->vx += dx * b->mass * mag;
-      b2->vy += dy * b->mass * mag;
-      b2->vz += dz * b->mass * mag;
-    }
-  }
-  for (i = 0; i < nbodies; i++) {
-    struct planet * b = &(bodies[i]);
-    b->x += dt * b->vx;
-    b->y += dt * b->vy;
-    b->z += dt * b->vz;
-  }
-}
-
-double energy(int nbodies, struct planet * bodies)
-{
-  double e;
-  int i, j;
-
-  e = 0.0;
-  for (i = 0; i < nbodies; i++) {
-    struct planet * b = &(bodies[i]);
-    e += 0.5 * b->mass * (b->vx * b->vx + b->vy * b->vy + b->vz * b->vz);
-    for (j = i + 1; j < nbodies; j++) {
-      struct planet * b2 = &(bodies[j]);
-      double dx = b->x - b2->x;
-      double dy = b->y - b2->y;
-      double dz = b->z - b2->z;
-      double distance = sqrt(dx * dx + dy * dy + dz * dz);
-      e -= (b->mass * b2->mass) / distance;
-    }
-  }
-  return e;
-}
-
-void offset_momentum(int nbodies, struct planet * bodies)
-{
-  double px = 0.0, py = 0.0, pz = 0.0;
-  int i;
-  for (i = 0; i < nbodies; i++) {
-    px += bodies[i].vx * bodies[i].mass;
-    py += bodies[i].vy * bodies[i].mass;
-    pz += bodies[i].vz * bodies[i].mass;
-  }
-  bodies[0].vx = - px / solar_mass;
-  bodies[0].vy = - py / solar_mass;
-  bodies[0].vz = - pz / solar_mass;
-}
-
-#define NBODIES 5
-struct planet bodies[NBODIES] = {
-  {                               /* sun */
-    0, 0, 0, 0, 0, 0, solar_mass
-  },
-  {                               /* jupiter */
-    4.84143144246472090e+00,
-    -1.16032004402742839e+00,
-    -1.03622044471123109e-01,
-    1.66007664274403694e-03 * days_per_year,
-    7.69901118419740425e-03 * days_per_year,
-    -6.90460016972063023e-05 * days_per_year,
-    9.54791938424326609e-04 * solar_mass
-  },
-  {                               /* saturn */
-    8.34336671824457987e+00,
-    4.12479856412430479e+00,
-    -4.03523417114321381e-01,
-    -2.76742510726862411e-03 * days_per_year,
-    4.99852801234917238e-03 * days_per_year,
-    2.30417297573763929e-05 * days_per_year,
-    2.85885980666130812e-04 * solar_mass
-  },
-  {                               /* uranus */
-    1.28943695621391310e+01,
-    -1.51111514016986312e+01,
-    -2.23307578892655734e-01,
-    2.96460137564761618e-03 * days_per_year,
-    2.37847173959480950e-03 * days_per_year,
-    -2.96589568540237556e-05 * days_per_year,
-    4.36624404335156298e-05 * solar_mass
-  },
-  {                               /* neptune */
-    1.53796971148509165e+01,
-    -2.59193146099879641e+01,
-    1.79258772950371181e-01,
-    2.68067772490389322e-03 * days_per_year,
-    1.62824170038242295e-03 * days_per_year,
-    -9.51592254519715870e-05 * days_per_year,
-    5.15138902046611451e-05 * solar_mass
-  }
-};
-
-int main(int argc, char ** argv)
-{
-  int n = atoi(argv[1]);
-  int i;
-
-  offset_momentum(NBODIES, bodies);
-  printf ("%.9f\n", energy(NBODIES, bodies));
-  for (i = 1; i <= n; i++)
-    advance(NBODIES, bodies, 0.01);
-  printf ("%.9f\n", energy(NBODIES, bodies));
-  return 0;
-}
diff --git a/gcc/testsuite/go.test/test/bench/nbody.go b/gcc/testsuite/go.test/test/bench/nbody.go
deleted file mode 100644 (file)
index e9f4517..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by The Go Authors.
- * based on C program by Christoph Bauer
- */
-
-package main
-
-import (
-       "flag"
-       "fmt"
-       "math"
-)
-
-var n = flag.Int("n", 1000, "number of iterations")
-
-type Body struct {
-       x, y, z, vx, vy, vz, mass float64
-}
-
-const (
-       solarMass   = 4 * math.Pi * math.Pi
-       daysPerYear = 365.24
-)
-
-func (b *Body) offsetMomentum(px, py, pz float64) {
-       b.vx = -px / solarMass
-       b.vy = -py / solarMass
-       b.vz = -pz / solarMass
-}
-
-type System []*Body
-
-func NewSystem(body []Body) System {
-       n := make(System, len(body))
-       for i := 0; i < len(body); i++ {
-               n[i] = new(Body) // copy to avoid overwriting the inputs
-               *n[i] = body[i]
-       }
-       var px, py, pz float64
-       for _, body := range n {
-               px += body.vx * body.mass
-               py += body.vy * body.mass
-               pz += body.vz * body.mass
-       }
-       n[0].offsetMomentum(px, py, pz)
-       return n
-}
-
-func (sys System) energy() float64 {
-       var e float64
-       for i, body := range sys {
-               e += 0.5 * body.mass *
-                       (body.vx*body.vx + body.vy*body.vy + body.vz*body.vz)
-               for j := i + 1; j < len(sys); j++ {
-                       body2 := sys[j]
-                       dx := body.x - body2.x
-                       dy := body.y - body2.y
-                       dz := body.z - body2.z
-                       distance := math.Sqrt(dx*dx + dy*dy + dz*dz)
-                       e -= (body.mass * body2.mass) / distance
-               }
-       }
-       return e
-}
-
-func (sys System) advance(dt float64) {
-       for i, body := range sys {
-               for j := i + 1; j < len(sys); j++ {
-                       body2 := sys[j]
-                       dx := body.x - body2.x
-                       dy := body.y - body2.y
-                       dz := body.z - body2.z
-
-                       dSquared := dx*dx + dy*dy + dz*dz
-                       distance := math.Sqrt(dSquared)
-                       mag := dt / (dSquared * distance)
-
-                       body.vx -= dx * body2.mass * mag
-                       body.vy -= dy * body2.mass * mag
-                       body.vz -= dz * body2.mass * mag
-
-                       body2.vx += dx * body.mass * mag
-                       body2.vy += dy * body.mass * mag
-                       body2.vz += dz * body.mass * mag
-               }
-       }
-
-       for _, body := range sys {
-               body.x += dt * body.vx
-               body.y += dt * body.vy
-               body.z += dt * body.vz
-       }
-}
-
-var (
-       jupiter = Body{
-               x: 4.84143144246472090e+00,
-               y: -1.16032004402742839e+00,
-               z: -1.03622044471123109e-01,
-               vx: 1.66007664274403694e-03 * daysPerYear,
-               vy: 7.69901118419740425e-03 * daysPerYear,
-               vz: -6.90460016972063023e-05 * daysPerYear,
-               mass: 9.54791938424326609e-04 * solarMass,
-       }
-       saturn = Body{
-               x: 8.34336671824457987e+00,
-               y: 4.12479856412430479e+00,
-               z: -4.03523417114321381e-01,
-               vx: -2.76742510726862411e-03 * daysPerYear,
-               vy: 4.99852801234917238e-03 * daysPerYear,
-               vz: 2.30417297573763929e-05 * daysPerYear,
-               mass: 2.85885980666130812e-04 * solarMass,
-       }
-       uranus = Body{
-               x: 1.28943695621391310e+01,
-               y: -1.51111514016986312e+01,
-               z: -2.23307578892655734e-01,
-               vx: 2.96460137564761618e-03 * daysPerYear,
-               vy: 2.37847173959480950e-03 * daysPerYear,
-               vz: -2.96589568540237556e-05 * daysPerYear,
-               mass: 4.36624404335156298e-05 * solarMass,
-       }
-       neptune = Body{
-               x: 1.53796971148509165e+01,
-               y: -2.59193146099879641e+01,
-               z: 1.79258772950371181e-01,
-               vx: 2.68067772490389322e-03 * daysPerYear,
-               vy: 1.62824170038242295e-03 * daysPerYear,
-               vz: -9.51592254519715870e-05 * daysPerYear,
-               mass: 5.15138902046611451e-05 * solarMass,
-       }
-       sun = Body{
-               mass: solarMass,
-       }
-)
-
-func main() {
-       flag.Parse()
-
-       system := NewSystem([]Body{sun, jupiter, saturn, uranus, neptune})
-       fmt.Printf("%.9f\n", system.energy())
-       for i := 0; i < *n; i++ {
-               system.advance(0.01)
-       }
-       fmt.Printf("%.9f\n", system.energy())
-}
diff --git a/gcc/testsuite/go.test/test/bench/nbody.txt b/gcc/testsuite/go.test/test/bench/nbody.txt
deleted file mode 100644 (file)
index 1731557..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
--0.169075164
--0.169087605
diff --git a/gcc/testsuite/go.test/test/bench/pidigits.c b/gcc/testsuite/go.test/test/bench/pidigits.c
deleted file mode 100644 (file)
index c064da0..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
-  http://shootout.alioth.debian.org/
-
-  contributed by Paolo Bonzini & Sean Bartlett
-  modified by Michael Mellor
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <gmp.h>
-
-static mpz_t numer, accum, denom, tmp1, tmp2;
-
-static int extract_digit()
-{
-  if (mpz_cmp(numer, accum) > 0)
-    return -1;
-
-  /* Compute (numer * 3 + accum) / denom */
-  mpz_mul_2exp(tmp1, numer, 1);
-  mpz_add(tmp1, tmp1, numer);
-  mpz_add(tmp1, tmp1, accum);
-  mpz_fdiv_qr(tmp1, tmp2, tmp1, denom);
-
-  /* Now, if (numer * 4 + accum) % denom... */
-  mpz_add(tmp2, tmp2, numer);
-
-  /* ... is normalized, then the two divisions have the same result.  */
-  if (mpz_cmp(tmp2, denom) >= 0)
-    return -1;
-
-  return mpz_get_ui(tmp1);
-}
-
-static void next_term(unsigned int k)
-{
-  unsigned int y2 = k*2 + 1;
-
-  mpz_mul_2exp(tmp1, numer, 1);
-  mpz_add(accum, accum, tmp1);
-  mpz_mul_ui(accum, accum, y2);
-  mpz_mul_ui(numer, numer, k);
-  mpz_mul_ui(denom, denom, y2);
-}
-
-static void eliminate_digit(unsigned int d)
-{
-  mpz_submul_ui(accum, denom, d);
-  mpz_mul_ui(accum, accum, 10);
-  mpz_mul_ui(numer, numer, 10);
-}
-
-static void pidigits(unsigned int n)
-{
-  int d;
-  unsigned int i = 0, k = 0, m;
-  mpz_init(tmp1);
-  mpz_init(tmp2);
-  mpz_init_set_ui(numer, 1);
-  mpz_init_set_ui(accum, 0);
-  mpz_init_set_ui(denom, 1);
-
-  for(;;)
-  {
-    do {
-      k++;
-      next_term(k);
-      d = extract_digit();
-    } while(d == -1);
-
-    putchar(d + '0');
-
-    i++;
-    m = i%10;
-    if(m == 0)
-      printf("\t:%d\n", i);
-    if(i >= n)
-      break;
-    eliminate_digit(d);
-  }
-
-  if(m) {
-    m = 10 - m;
-    while(m--)
-      putchar(' ');
-    printf("\t:%d\n", n);
-  }
-}
-
-int main(int argc, char **argv)
-{
-  pidigits(argc > 1 ? atoi(argv[1]) : 27);
-  return 0;
-}
diff --git a/gcc/testsuite/go.test/test/bench/pidigits.go b/gcc/testsuite/go.test/test/bench/pidigits.go
deleted file mode 100644 (file)
index e593121..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by The Go Authors.
- * based on pidigits.c (by Paolo Bonzini & Sean Bartlett,
- *                      modified by Michael Mellor)
- */
-
-package main
-
-import (
-       "big"
-       "flag"
-       "fmt"
-)
-
-var n = flag.Int("n", 27, "number of digits")
-var silent = flag.Bool("s", false, "don't print result")
-
-var (
-       tmp1  = big.NewInt(0)
-       tmp2  = big.NewInt(0)
-       tmp3  = big.NewInt(0)
-       y2    = big.NewInt(0)
-       bigk  = big.NewInt(0)
-       numer = big.NewInt(1)
-       accum = big.NewInt(0)
-       denom = big.NewInt(1)
-       ten   = big.NewInt(10)
-)
-
-func extract_digit() int64 {
-       if numer.Cmp(accum) > 0 {
-               return -1
-       }
-
-       // Compute (numer * 3 + accum) / denom
-       tmp1.Lsh(numer, 1)
-       tmp1.Add(tmp1, numer)
-       tmp1.Add(tmp1, accum)
-       tmp1.DivMod(tmp1, denom, tmp2)
-
-       // Now, if (numer * 4 + accum) % denom...
-       tmp2.Add(tmp2, numer)
-
-       // ... is normalized, then the two divisions have the same result.
-       if tmp2.Cmp(denom) >= 0 {
-               return -1
-       }
-
-       return tmp1.Int64()
-}
-
-func next_term(k int64) {
-       y2.SetInt64(k*2 + 1)
-       bigk.SetInt64(k)
-
-       tmp1.Lsh(numer, 1)
-       accum.Add(accum, tmp1)
-       accum.Mul(accum, y2)
-       numer.Mul(numer, bigk)
-       denom.Mul(denom, y2)
-}
-
-func eliminate_digit(d int64) {
-       tmp3.SetInt64(d)
-       accum.Sub(accum, tmp3.Mul(denom, tmp3))
-       accum.Mul(accum, ten)
-       numer.Mul(numer, ten)
-}
-
-func printf(s string, arg ...interface{}) {
-       if !*silent {
-               fmt.Printf(s, arg...)
-       }
-}
-
-func main() {
-       flag.Parse()
-
-       var m int // 0 <= m < 10
-       for i, k := 0, int64(0); ; {
-               d := int64(-1)
-               for d < 0 {
-                       k++
-                       next_term(k)
-                       d = extract_digit()
-               }
-
-               printf("%c", d+'0')
-
-               i++
-               m = i % 10
-               if m == 0 {
-                       printf("\t:%d\n", i)
-               }
-               if i >= *n {
-                       break
-               }
-               eliminate_digit(d)
-       }
-
-       if m > 0 {
-               printf("%s\t:%d\n", "          "[m:10], *n)
-       }
-}
diff --git a/gcc/testsuite/go.test/test/bench/pidigits.txt b/gcc/testsuite/go.test/test/bench/pidigits.txt
deleted file mode 100644 (file)
index ad946a9..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-3141592653     :10
-5897932384     :20
-6264338        :27
diff --git a/gcc/testsuite/go.test/test/bench/regex-dna-parallel.go b/gcc/testsuite/go.test/test/bench/regex-dna-parallel.go
deleted file mode 100644 (file)
index 1335e4d..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by The Go Authors.
- */
-
-package main
-
-import (
-       "fmt"
-       "io/ioutil"
-       "os"
-       "runtime"
-       "regexp"
-)
-
-var variants = []string{
-       "agggtaaa|tttaccct",
-       "[cgt]gggtaaa|tttaccc[acg]",
-       "a[act]ggtaaa|tttacc[agt]t",
-       "ag[act]gtaaa|tttac[agt]ct",
-       "agg[act]taaa|ttta[agt]cct",
-       "aggg[acg]aaa|ttt[cgt]ccct",
-       "agggt[cgt]aa|tt[acg]accct",
-       "agggta[cgt]a|t[acg]taccct",
-       "agggtaa[cgt]|[acg]ttaccct",
-}
-
-type Subst struct {
-       pat, repl string
-}
-
-var substs = []Subst{
-       Subst{"B", "(c|g|t)"},
-       Subst{"D", "(a|g|t)"},
-       Subst{"H", "(a|c|t)"},
-       Subst{"K", "(g|t)"},
-       Subst{"M", "(a|c)"},
-       Subst{"N", "(a|c|g|t)"},
-       Subst{"R", "(a|g)"},
-       Subst{"S", "(c|g)"},
-       Subst{"V", "(a|c|g)"},
-       Subst{"W", "(a|t)"},
-       Subst{"Y", "(c|t)"},
-}
-
-func countMatches(pat string, bytes []byte) int {
-       re := regexp.MustCompile(pat)
-       n := 0
-       for {
-               e := re.FindIndex(bytes)
-               if e == nil {
-                       break
-               }
-               n++
-               bytes = bytes[e[1]:]
-       }
-       return n
-}
-
-func main() {
-       runtime.GOMAXPROCS(4)
-       bytes, err := ioutil.ReadAll(os.Stdin)
-       if err != nil {
-               fmt.Fprintf(os.Stderr, "can't read input: %s\n", err)
-               os.Exit(2)
-       }
-       ilen := len(bytes)
-       // Delete the comment lines and newlines
-       bytes = regexp.MustCompile("(>[^\n]+)?\n").ReplaceAll(bytes, []byte{})
-       clen := len(bytes)
-
-       mresults := make([]chan int, len(variants))
-       for i, s := range variants {
-               ch := make(chan int)
-               mresults[i] = ch
-               go func(ss string) {
-                       ch <- countMatches(ss, bytes)
-               }(s)
-       }
-
-       lenresult := make(chan int)
-       bb := bytes
-       go func() {
-               for _, sub := range substs {
-                       bb = regexp.MustCompile(sub.pat).ReplaceAll(bb, []byte(sub.repl))
-               }
-               lenresult <- len(bb)
-       }()
-
-       for i, s := range variants {
-               fmt.Printf("%s %d\n", s, <-mresults[i])
-       }
-       fmt.Printf("\n%d\n%d\n%d\n", ilen, clen, <-lenresult)
-}
diff --git a/gcc/testsuite/go.test/test/bench/regex-dna-parallel.txt b/gcc/testsuite/go.test/test/bench/regex-dna-parallel.txt
deleted file mode 100644 (file)
index e23e71f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-agggtaaa|tttaccct 1
-[cgt]gggtaaa|tttaccc[acg] 0
-a[act]ggtaaa|tttacc[agt]t 0
-ag[act]gtaaa|tttac[agt]ct 0
-agg[act]taaa|ttta[agt]cct 1
-aggg[acg]aaa|ttt[cgt]ccct 0
-agggt[cgt]aa|tt[acg]accct 0
-agggta[cgt]a|t[acg]taccct 0
-agggtaa[cgt]|[acg]ttaccct 2
-
-10245
-10000
-13348
diff --git a/gcc/testsuite/go.test/test/bench/regex-dna.c b/gcc/testsuite/go.test/test/bench/regex-dna.c
deleted file mode 100644 (file)
index 134f821..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
-** The Computer Language Shootout
-** http://shootout.alioth.debian.org/
-** contributed by Mike Pall
-**
-** regex-dna benchmark using PCRE
-**
-** compile with:
-**   gcc -O3 -fomit-frame-pointer -o regexdna regexdna.c -lpcre
-*/
-
-#define __USE_STRING_INLINES
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <pcre.h>
-
-typedef struct fbuf {
-  char *buf;
-  size_t size, len;
-} fbuf_t;
-
-static void fb_init(fbuf_t *b)
-{
-  b->buf = NULL;
-  b->len = b->size = 0;
-}
-
-static char *fb_need(fbuf_t *b, size_t need)
-{
-  need += b->len;
-  if (need > b->size) {
-    if (b->size == 0) b->size = need;
-    else while (need > b->size) b->size += b->size;
-    if (!(b->buf = realloc(b->buf, b->size))) exit(1);
-  }
-  return b->buf+b->len;
-}
-
-#define FB_MINREAD     (3<<16)
-
-/* Read all of a stdio stream into dst buffer. */
-static size_t fb_readall(fbuf_t *dst, FILE *fp)
-{
-  char *dp;
-  int n;
-  for (dp = fb_need(dst, FB_MINREAD);
-       (n = fread(dp, 1, dst->size-dst->len, fp)) > 0;
-       dp = fb_need(dst, FB_MINREAD)) dst->len += n;
-  if (ferror(fp)) exit(1);
-  return dst->len;
-}
-
-/* Substitute pattern p with replacement r, copying from src to dst buffer. */
-static size_t fb_subst(fbuf_t *dst, fbuf_t *src, const char *p, const char *r)
-{
-  pcre *re;
-  pcre_extra *re_ex;
-  const char *re_e;
-  char *dp;
-  int re_eo, m[3], pos, rlen, clen;
-  if (!(re = pcre_compile(p, PCRE_CASELESS, &re_e, &re_eo, NULL))) exit(1);
-  re_ex = pcre_study(re, 0, &re_e);
-  for (dst->len = 0, rlen = strlen(r), pos = 0;
-       pcre_exec(re, re_ex, src->buf, src->len, pos, 0, m, 3) >= 0;
-       pos = m[1]) {
-    clen = m[0]-pos;
-    dp = fb_need(dst, clen+rlen);
-    dst->len += clen+rlen;
-    memcpy(dp, src->buf+pos, clen);
-    memcpy(dp+clen, r, rlen);
-  }
-  clen = src->len-pos;
-  dp = fb_need(dst, clen);
-  dst->len += clen;
-  memcpy(dp, src->buf+pos, clen);
-  return dst->len;
-}
-
-/* Count all matches with pattern p in src buffer. */
-static int fb_countmatches(fbuf_t *src, const char *p)
-{
-  pcre *re;
-  pcre_extra *re_ex;
-  const char *re_e;
-  int re_eo, m[3], pos, count;
-  if (!(re = pcre_compile(p, PCRE_CASELESS, &re_e, &re_eo, NULL))) exit(1);
-  re_ex = pcre_study(re, 0, &re_e);
-  for (count = 0, pos = 0;
-       pcre_exec(re, re_ex, src->buf, src->len, pos, 0, m, 3) >= 0;
-       pos = m[1]) count++;
-  return count;
-}
-
-static const char *variants[] = {
-  "agggtaaa|tttaccct",         "[cgt]gggtaaa|tttaccc[acg]",
-  "a[act]ggtaaa|tttacc[agt]t", "ag[act]gtaaa|tttac[agt]ct",
-  "agg[act]taaa|ttta[agt]cct", "aggg[acg]aaa|ttt[cgt]ccct",
-  "agggt[cgt]aa|tt[acg]accct", "agggta[cgt]a|t[acg]taccct",
-  "agggtaa[cgt]|[acg]ttaccct", NULL
-};
-
-static const char *subst[] = {
-  "B", "(c|g|t)", "D", "(a|g|t)",   "H", "(a|c|t)", "K", "(g|t)",
-  "M", "(a|c)",   "N", "(a|c|g|t)", "R", "(a|g)",   "S", "(c|g)",
-  "V", "(a|c|g)", "W", "(a|t)",     "Y", "(c|t)",   NULL
-};
-
-int main(int argc, char **argv)
-{
-  fbuf_t seq[2];
-  const char **pp;
-  size_t ilen, clen, slen;
-  int flip;
-  fb_init(&seq[0]);
-  fb_init(&seq[1]);
-  ilen = fb_readall(&seq[0], stdin);
-  clen = fb_subst(&seq[1], &seq[0], ">.*|\n", "");
-  for (pp = variants; *pp; pp++)
-    printf("%s %d\n", *pp, fb_countmatches(&seq[1], *pp));
-  for (slen = 0, flip = 1, pp = subst; *pp; pp += 2, flip = 1-flip)
-    slen = fb_subst(&seq[1-flip], &seq[flip], *pp, pp[1]);
-  printf("\n%zu\n%zu\n%zu\n", ilen, clen, slen);
-  return 0;
-}
diff --git a/gcc/testsuite/go.test/test/bench/regex-dna.go b/gcc/testsuite/go.test/test/bench/regex-dna.go
deleted file mode 100644 (file)
index 042d7f2..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by The Go Authors.
- */
-
-package main
-
-import (
-       "fmt"
-       "io/ioutil"
-       "os"
-       "regexp"
-)
-
-var variants = []string{
-       "agggtaaa|tttaccct",
-       "[cgt]gggtaaa|tttaccc[acg]",
-       "a[act]ggtaaa|tttacc[agt]t",
-       "ag[act]gtaaa|tttac[agt]ct",
-       "agg[act]taaa|ttta[agt]cct",
-       "aggg[acg]aaa|ttt[cgt]ccct",
-       "agggt[cgt]aa|tt[acg]accct",
-       "agggta[cgt]a|t[acg]taccct",
-       "agggtaa[cgt]|[acg]ttaccct",
-}
-
-type Subst struct {
-       pat, repl string
-}
-
-var substs = []Subst{
-       Subst{"B", "(c|g|t)"},
-       Subst{"D", "(a|g|t)"},
-       Subst{"H", "(a|c|t)"},
-       Subst{"K", "(g|t)"},
-       Subst{"M", "(a|c)"},
-       Subst{"N", "(a|c|g|t)"},
-       Subst{"R", "(a|g)"},
-       Subst{"S", "(c|g)"},
-       Subst{"V", "(a|c|g)"},
-       Subst{"W", "(a|t)"},
-       Subst{"Y", "(c|t)"},
-}
-
-func countMatches(pat string, bytes []byte) int {
-       re := regexp.MustCompile(pat)
-       n := 0
-       for {
-               e := re.FindIndex(bytes)
-               if len(e) == 0 {
-                       break
-               }
-               n++
-               bytes = bytes[e[1]:]
-       }
-       return n
-}
-
-func main() {
-       bytes, err := ioutil.ReadAll(os.Stdin)
-       if err != nil {
-               fmt.Fprintf(os.Stderr, "can't read input: %s\n", err)
-               os.Exit(2)
-       }
-       ilen := len(bytes)
-       // Delete the comment lines and newlines
-       bytes = regexp.MustCompile("(>[^\n]+)?\n").ReplaceAll(bytes, []byte{})
-       clen := len(bytes)
-       for _, s := range variants {
-               fmt.Printf("%s %d\n", s, countMatches(s, bytes))
-       }
-       for _, sub := range substs {
-               bytes = regexp.MustCompile(sub.pat).ReplaceAll(bytes, []byte(sub.repl))
-       }
-       fmt.Printf("\n%d\n%d\n%d\n", ilen, clen, len(bytes))
-}
diff --git a/gcc/testsuite/go.test/test/bench/regex-dna.txt b/gcc/testsuite/go.test/test/bench/regex-dna.txt
deleted file mode 100644 (file)
index e23e71f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-agggtaaa|tttaccct 1
-[cgt]gggtaaa|tttaccc[acg] 0
-a[act]ggtaaa|tttacc[agt]t 0
-ag[act]gtaaa|tttac[agt]ct 0
-agg[act]taaa|ttta[agt]cct 1
-aggg[acg]aaa|ttt[cgt]ccct 0
-agggt[cgt]aa|tt[acg]accct 0
-agggta[cgt]a|t[acg]taccct 0
-agggtaa[cgt]|[acg]ttaccct 2
-
-10245
-10000
-13348
diff --git a/gcc/testsuite/go.test/test/bench/reverse-complement.c b/gcc/testsuite/go.test/test/bench/reverse-complement.c
deleted file mode 100644 (file)
index b34c846..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
- * The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org
- *
- * contributed by Bob W
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#define JBFSIZE 82      // line input buffer size
-#define QBFSIZE 5200     // output buffer initial size
-#define Z16     "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-#define V32     "\0TVGH\0\0CD\0\0M\0KN\0\0\0YSA\0BW\0R\0\0\0\0\0\0"
-#define VALL    Z16 Z16 Z16 Z16 V32 V32 Z16 Z16 Z16 Z16 Z16 Z16 Z16 Z16
-
-int errex(char *s, int n) {      // error message+value, return 1
-  fprintf(stderr,"\n*** Error: %s [%d]!\n", s, n);
-  return 1;
-}
-
-int main () {                    // ***** main *****
-  char *pj, *pq, *pr;            // buffer pointers: inp,out,/out
-  char *jjj = malloc(JBFSIZE);   // allocate input line buffer
-  char *qqq = malloc(QBFSIZE);   // output buffer (dyn. size)
-  char *pqstop = qqq+QBFSIZE;    // end-of-buffer pointer
-  char xtab[256] = VALL;         // char conversion table
-
-  if (!jjj || !qqq)
-    return errex("Buffer allocation", !jjj + !qqq);
-  pj = fgets(jjj,JBFSIZE,stdin);         // fetch 1st line
-  if (!pj)
-    return errex("No input data",0);
-  if (*jjj != '>')
-    return errex("1st char not '>'", 0);
-
-  while (pj) {                           // MAIN LOOP: process data
-    fputs(jjj, stdout);                  // output ID line
-
-    for (pq=qqq+1, pr=pqstop; ; pq++) {  // LOOP: fill output buffer
-      pj = fgets(jjj, JBFSIZE, stdin);   // get line from stdin
-      if (!pj || (*jjj=='>'))  break;    // EOF or new ID line
-      if (pr <= (pq+61)) {               // need to resize buffer
-        char *newstop = pqstop + 12777888;
-        char *newptr  = realloc(qqq, newstop-qqq);
-        if (!newptr)
-          return errex("Out of memory", 0);
-        if (newptr != qqq) {             // new base: adj. pointers
-          size_t x = newptr-qqq;         // offset for pointer update
-          pq+=x;  pr+=x;  qqq+=x;
-          newstop+=x;  pqstop+=x;
-        }
-        pr = __builtin_memmove(newstop-(pqstop-pr), pr, pqstop-pr);
-        pqstop = newstop;                // buffer resize complete
-      }
-      while (*pj) {                      // LOOP: conv. & revert line
-        char c = xtab[(unsigned char)(*pj++)];
-        if (c)                           // conversion valid
-          *(--pr) = c;
-      }
-    }
-
-    for (pq = qqq; pr<pqstop; ) {        // LOOP: format output
-      size_t x = (pqstop-pr)<60 ? pqstop-pr : 60;
-      __builtin_memmove(pq,pr,x);        // move line to free space
-      pr+=x;  pq+=x;  *(pq++) = 0xA;     // adjust pointers, add LF
-    }
-    fwrite(qqq, 1, pq-qqq, stdout);      // output converted data
-  }
-  return 0;
-}
diff --git a/gcc/testsuite/go.test/test/bench/reverse-complement.go b/gcc/testsuite/go.test/test/bench/reverse-complement.go
deleted file mode 100644 (file)
index baa30ff..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by The Go Authors.
- */
-
-package main
-
-import (
-       "bufio"
-       "os"
-)
-
-const lineSize = 60
-
-var complement = [256]uint8{
-       'A': 'T', 'a': 'T',
-       'C': 'G', 'c': 'G',
-       'G': 'C', 'g': 'C',
-       'T': 'A', 't': 'A',
-       'U': 'A', 'u': 'A',
-       'M': 'K', 'm': 'K',
-       'R': 'Y', 'r': 'Y',
-       'W': 'W', 'w': 'W',
-       'S': 'S', 's': 'S',
-       'Y': 'R', 'y': 'R',
-       'K': 'M', 'k': 'M',
-       'V': 'B', 'v': 'B',
-       'H': 'D', 'h': 'D',
-       'D': 'H', 'd': 'H',
-       'B': 'V', 'b': 'V',
-       'N': 'N', 'n': 'N',
-}
-
-func main() {
-       in := bufio.NewReader(os.Stdin)
-       buf := make([]byte, 1024*1024)
-       line, err := in.ReadSlice('\n')
-       for err == nil {
-               os.Stdout.Write(line)
-
-               // Accumulate reversed complement in buf[w:]
-               nchar := 0
-               w := len(buf)
-               for {
-                       line, err = in.ReadSlice('\n')
-                       if err != nil || line[0] == '>' {
-                               break
-                       }
-                       line = line[0 : len(line)-1]
-                       nchar += len(line)
-                       if len(line)+nchar/60+128 >= w {
-                               nbuf := make([]byte, len(buf)*5)
-                               copy(nbuf[len(nbuf)-len(buf):], buf)
-                               w += len(nbuf) - len(buf)
-                               buf = nbuf
-                       }
-
-                       // This loop is the bottleneck.
-                       for _, c := range line {
-                               w--
-                               buf[w] = complement[c]
-                       }
-               }
-
-               // Copy down to beginning of buffer, inserting newlines.
-               // The loop left room for the newlines and 128 bytes of padding.
-               i := 0
-               for j := w; j < len(buf); j += 60 {
-                       n := copy(buf[i:i+60], buf[j:])
-                       buf[i+n] = '\n'
-                       i += n + 1
-               }
-               os.Stdout.Write(buf[0:i])
-       }
-}
diff --git a/gcc/testsuite/go.test/test/bench/reverse-complement.txt b/gcc/testsuite/go.test/test/bench/reverse-complement.txt
deleted file mode 100644 (file)
index 14d792a..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
->ONE Homo sapiens alu
-CGGAGTCTCGCTCTGTCGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAAC
-CTCCGCCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACA
-GGCGCGCGCCACCACGCCCGGCTAATTTTTGTATTTTTAGTAGAGACGGGGTTTCACCAT
-GTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAA
-AGTGCTGGGATTACAGGCGTGAGCCACCGCGCCCGGCCTTTTTGAGACGGAGTCTCGCTC
-TGTCGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAACCTCCGCCTCCCGG
-GTTCAAGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGCGCGCGCCACC
-ACGCCCGGCTAATTTTTGTATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTG
-GTCTCGAACTCCTGACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAAAGTGCTGGGATTA
-CAGGCGTGAGCCACCGCGCCCGGCCTTTTTGAGACGGAGTCTCGCTCTGTCGCCCAGGCT
-GGAGTGCAGTGGCGCGATCTCGGCTCACTGCAACCTCCGCCTCCCGGGTTCAAGCGATTC
-TCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGCGCGCGCCACCACGCCCGGCTAAT
-TTTTGTATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTCGAACTCCT
-GACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGGCGTGAGCCA
-CCGCGCCCGGCCTTTTTGAGACGGAGTCTCGCTCTGTCGCCCAGGCTGGAGTGCAGTGGC
-GCGATCTCGGCTCACTGCAACCTCCGCCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCC
-TCCCGAGTAGCTGGGATTACAGGCGCGCGCCACCACGCCCGGCTAATTTTTGTATTTTTA
-GTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAGGTGAT
-CCGCCCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGGCGTGAGCCACCGCGCCCGGCCT
-TTTTGAGACGGAGTCTCGCTCTGTCGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTC
-ACTGCAACCTCCGCCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTG
-GGATTACAGGCGCGCGCCACCACGCCCGGCTAATTTTTGTATTTTTAGTAGAGACGGGGT
-TTCACCATGTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAGGTGATCCGCCCGCCTCGG
-CCTCCCAAAGTGCTGGGATTACAGGCGTGAGCCACCGCGCCCGGCCTTTTTGAGACGGAG
-TCTCGCTCTGTCGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAACCTCCG
-CCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGCGC
-GCGCCACCACGCCCGGCTAATTTTTGTATTTTTAGTAGAGACGGGGTTTCACCATGTTGG
-CCAGGCTGGTCTCGAACTCCTGACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAAAGTGC
-TGGGATTACAGGCGTGAGCCACCGCGCCCGGCCTTTTTGAGACGGAGTCTCGCTCTGTCG
-CCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAACCTCCGCCTCCCGGGTTCA
-AGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGCGCGCGCCACCACGCC
-CGGCTAATTTTTGTATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTC
-GAACTCCTGACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGGC
-GTGAGCCACCGCGCCCGGCC
->TWO IUB ambiguity codes
-TAGGDHACHATCRGTRGVTGAGWTATGYTGCTGTCABACDWVTRTAAGAVVAGATTTNDA
-GASMTCTGCATBYTTCAAKTTACMTATTACTTCATARGGYACMRTGTTTTYTATACVAAT
-TTCTAKGDACKADACTATATNTANTCGTTCACGBCGYSCBHTANGGTGATCGTAAAGTAA
-CTATBAAAAGATSTGWATBCSGAKHTTABBAACGTSYCATGCAAVATKTSKTASCGGAAT
-WVATTTNTCCTTCTTCTTDDAGTGGTTGGATACVGTTAYMTMTBTACTTTHAGCTAGBAA
-AAGAGKAAGTTRATWATCAGATTMDDTTTAAAVAAATATTKTCYTAAATTVCNKTTRACG
-ADTATATTTATGATSADSCAATAWAGCGRTAGTGTAAGTGACVGRADYGTGCTACHVSDT
-CTVCARCSYTTAATATARAAAATTTAATTTACDAATTGBACAGTAYAABATBTGCAGBVG
-TGATGGDCAAAATBNMSTTABKATTGGSTCCTAGBTTACTTGTTTAGTTTATHCGATSTA
-AAGTCGAKAAASTGTTTTAWAKCAGATATACTTTTMTTTTGBATAGAGGAGCMATGATRA
-AAGGNCAYDCCDDGAAAGTHGBTAATCKYTBTACBGTBCTTTTTGDTAASSWTAAWAARA
-TTGGCTAAGWGRADTYACATAGCTCBTAGATAWAGCAATNGTATMATGTTKMMAGTAWTC
-CCNTSGAAWATWCAAAAMACTGAADNTYGATNAATCCGAYWNCTAACGTTAGAGDTTTTC
-ATCTGGKRTAVGAABVCTGWGBTCTDVGKATTBTCTAAGGVADAAAVWTCTAGGGGAGGG
-TTAGAACAATTAAHTAATNAAATGCATKATCTAAYRTDTCAGSAYTTYHGATRTTWAVTA
-BGNTCDACAGBCCRCAGWCRTCABTGMMAWGMCTCAACCGATRTGBCAVAATCGTDWDAA
-CAYAWAATWCTGGTAHCCCTAAGATAACSCTTAGTGSAACAWTBGTCDTTDGACWDBAAC
-HTTTNGSKTYYAAYGGATNTGATTTAARTTAMBAATCTAAGTBTCATYTAACTTADTGTT
-TCGATACGAAHGGCYATATACCWDTKYATDCSHTDTCAAAATGTGBACTGSCCVGATGTA
-TCMMAGCCTTDAAABAATGAAGAGTAACTHATMGVTTAATAACCCGGTTVSANTGCAATT
-GTGAGATTTAMGTTTAMAAYGCTGACAYAAAAAGGCACAMYTAAGVGGCTGGAABVTACG
-GATTSTYGTBVAKTATWACCGTGTKAGTDTGTATGTTTAAAGGAAAAAGTAACATARAAA
-GGTYCAMNYAAABTATAGNTSATANAGTCATCCTATWADKAACTRGTMSACDGTATSAYT
-AAHSHGTAABYGACTYTATADTGSTATAGAGAAATCGNTAAAGGAAATCAGTTGTNCYMV
-TNACDRTATBNATATASTAGAAMSCGGGANRCKKMCAAACATTNAGTCTRMAATBMTACC
-CGTACTTCTBGDSYAATWGAAAATGACADDCHAKAAAYATATTKTTTTCACANACWAGAA
-AKATCCTTATTAYKHKCTAAACARTATTTTDATBTVWCYGCAATACTAGGKAAASTTDGA
-MGGCHTTHAATVCAHDRYAGGRCTATACGTCMAGAGAGCTBTHGNACARTCCBDCTAAGA
-GCGGCTTTARTAAAGAATCCNAGTAWBTGACTTGAATTACWTVACAGAAABCAATNAAAC
-CGTNTRANTTGAYCMAWBADTANABRGGTKTHTWTAGTTVCTMBKTAGMTVKCCAGCANT
-TVAGSWTTAGCCGCRHTTTCCTTHNTATTAAGAAGAATAGGMTRAARTCTABGTACDTTT
-TATAAVDHAHTATAGATCCTAGTAAGYTWATDWCATGAGGGATAGTAAMDMNGBASTWAM
-TSTATRBAYDABATGTATATYCGCACTGTTTTAACMCWBTATAWAGTATBTSTATVTTAR
-CCTMTTAAKADATCAACTAATYTSVTAKGDATTATGCKTCAYCAKAATACTTKAANGAGT
-ATTSDAGATCGGAAATACTTAAYAAVGTATMCGCTTGTGTDCTAATYTATTTTATTTWAA
-CAGWRCTATGTAGMTGTTTGTTYKTNGTTKTCAGAACNTRACCTACKTGSRATGTGGGGG
-CTGTCATTAAGTAAATNGSTTABCCCCTCGCAGCTCWHTCGCGAAGCAVATGCKACGHCA
-ACAKTTAATAACASAAADATTWNYTGTAATTGTTCGTMHACHTWATGTGCWTTTTGAAHY
-ACTTTGTAYAMSAAACTTAADAAATATAGTABMATATYAATGSGGTAGTTTGTGTBYGGT
-TWSGSVGWMATTDMTCCWWCABTCSVACAGBAATGTTKATBGTCAATAATCTTCTTAAAC
-ARVAATHAGYBWCTRWCABGTWWAATCTAAGTCASTAAAKTAAGVKBAATTBGABACGTA
-AGGTTAAATAAAAACTRMDTWBCTTTTTAATAAAAGATMGCCTACKAKNTBAGYRASTGT
-ASSTCGTHCGAAKTTATTATATTYTTTGTAGAACATGTCAAAACTWTWTHGKTCCYAATA
-AAGTGGAYTMCYTAARCSTAAATWAKTGAATTTRAGTCTSSATACGACWAKAASATDAAA
-TGYYACTSAACAAHAKTSHYARGASTATTATTHAGGYGGASTTTBGAKGATSANAACACD
-TRGSTTRAAAAAAAACAAGARTCVTAGTAAGATAWATGVHAAKATWGAAAAGTYAHVTAC
-TCTGRTGTCAWGATRVAAKTCGCAAVCGASWGGTTRTCSAMCCTAACASGWKKAWDAATG
-ACRCBACTATGTGTCTTCAAAHGSCTATATTTCGTVWAGAAGTAYCKGARAKSGKAGTAN
-TTTCYACATWATGTCTAAAADMDTWCAATSTKDACAMAADADBSAAATAGGCTHAHAGTA
-CGACVGAATTATAAAGAHCCVAYHGHTTTACATSTTTATGNCCMTAGCATATGATAVAAG
->THREE Homo sapiens frequency
-ATATTTATCTTTTCACTTCCTACATTGGTCAGACCATTATTCGACACGTGGCGTCATTTT
-GTCATACCGGGTAATGTTGGAAACAAAACGTACTGATAAAATACTGAGTTGTAAACTCTA
-ATCAGATAACGCGCTTGGATATTAAGATTCACACAGGGGTTTCGGCTGTAAAAAAACTTG
-TGGAGCTGTTCTGGGACAGATAAGTTGTACCTCGTACTTAGCTAATTAATGAACCAACTG
-ATTACGATAGAACAATTCTGAGGCCGCCAGGACAGCCAAATTTTAATCTTATAAAGCTGG
-AAACAGCCGGTATTAGCTTCTCGCATACTTTGCCTGCATTGGTACCTTACAGATATCAGC
-GTAGTCATATACACCTCGGTCTCAGCTAAGCTTGTATCTCTTAGAGTAGTTCAAAGATAG
-TGGACAATACCTGTGGAATCGATTGCAGATATGGATTTATTTAACTACTGAGTCTCATTC
-ACAAGCTAAGCAAGGAGCACGTTTTGGTGCCGGCATACCGATTTGCTATCATGTCAGCAA
-ATTTGCGTTGTATTCCTAGTTGCACCCATTAAGGCCACACTCCGAACCTAATTATTACAT
-CGCAAAGACATGTACGAAGGACCCGATGTCGAATAGAAGGGAGGACTGTTCATTGGAAGC
-TAGACCAGAGGAATCGCAAAGATGCAACTCTTACAATAAAAATCTAATTTCAGTCAACAC
-GCAATTTCTATAAGGTTTCCGATAATAATGAACCGTCTTCCACAGGGGAATTTGCCATGC
-TCGTAAAAGTAGTTAATCCAAGTAGAAGAAATTTTGATAATGTTTTAAGTTGGCACGAAG
-GAATTCAGAGAGATCTTACCTAACAAAGGCATTAGTAGATGTTCCTTGGTTCACACTCGG
-TCAATCAGAGCACATACTACGGGCGATACCGGGAATGACACAACATCAATGAGATTGTTA
-AGTGAGGTAATTGACTTTAGAGGACTCGATCAGTATACTGTCACTATGAACATCGTATTA
-ATTGTTATCCGATATATACACCACCGATTTGCTTGTGCAAGGTTACAGACCCATTCGATA
-AATACAAACACGGAGCGATATTATTTAAGGAGTGCTGTCTTCAAAAGAATTATTCCCACA
-CCGACATAAGAACTTCGCTCCGTCATTCCAGATTTAAATAACATAACGTAACGCTTTGCT
-GATAACATAACATAACCGAGAATTTGCTTAGGAAATTTGGAGCAATATTGCATTGTTTCT
-CAGTCATCACAAGGCCCGCCAAAGAACTCTGAGAATCAGGATTCAACATGATTGGTAAGA
-CTCTATATATATAACTTAATTCTTGTGTCCGGAGATAGAAAGAGGACGAGAGATACTACG
-AAAGAAAGTGTACTTCGATGTATCAATTCAGACGCCTTCTCTATCATCAACATTATAGGT
-CTCGTATATGCTCGGCGCGATCTGCTTCTCTCCGCCAATAGCCCCATAGTGTATTTCAAG
-CGCAGTAACAGTGAAATCGTTACGAAGGTAGGGATGTTGCTTATAATTGTCGTAACTTAT
-CGCTTATGTATCTTTCAAGAATGAACGGCAGCATATACATACGTTCTACCTTTAGCTACA
-AAGCATCCATATACTCCCTCTCATGATTGAAACTCTTCCCTATTTTGTAGCCAATAGTGA
-AAGCGTATTAGTATAAATTCGTCGGTTTTTCACTCGCAACTGTTATACTCTGCAAACAAA
-CGAAAGCCTCATAGTACAAACCTAAAGCTACATACTTCATCATTGGCAGACCAGTGGCGG
-TATTTCTACGGAAGCATCACTATAGATATAAAGTTTCCCTTCATGTACGTCTGTTAACCA
-TATCACAAGAAACTGCTATCTCTGTCACGTAACAATTCACGCGCCTTATCGCCAAATGTT
-CATATATGCGCGGTATACGTATGAACGAATACTAATTAGTATAACGGAGGATTCACGGGA
-GGGATACTTGGGGCATTTATAAATCGTCTAAAAATTTTCTATCAGCACTTGCGGGTTATA
-GTGGATTACTAGGCAACATAATATTCTGTATTGGTCCAAATGACGCTATAGATAAATTAG
-CAAAATACATTGTTTCCATTTATGTAAGTCGAAACTCCAGGACTCCCGGGAACCAGTTAA
-ACCGTCTGGAAAAGACACATTGTGAGCGGGACTTCAATGATAGCTTTCAATGAGCTTCTC
-ATGCTTGGGGTCTGTACATATATGTTGGCGAAATTATCGTCTGTATTCTGTTATGCTTTG
-ATCATGGGTTATTAGTATAGTGTCCGGTTAAGTACCAATACCGCTAGAGACCCGACCTAA
-GTCGATAACTAACGATCATCGACGTAAGGATCGTCTCGATCAGTACTTCAGTCTAGATCT
-GGGAATAGTAACTCGTTAGTGAACTATGTCGTGTCATAACTCTAAAATGCAATCAAATCT
-TATTATTGAGTATTGATTATATAAAGCATCCGCTTAGCTTTACCCTCAAATGTTATATGC
-AATTTAAAGCGCTTGATATCGTCTACTCAAGTTCAGGTTTCACATGGCCGCAACGTGACG
-TTATTAGAGGTGGGTCATCATCTCTGAGGCTAGTGATGTTGAATACTCATTGAATGGGAA
-GTGGAATACCATGCTCGTAGGTAACAGCATGACCTATAAAATATACTATGGGTGTGTGGT
-AGATCAATATTGTTCAAGCATATCGTAACAATAACGGCTGAAATGTTACTGACATGAAAG
-AGGGAGTCCAAACCATTCTAACAGCTGATCAAGTCGTCTAAAAACGCCTGGTTCAGCCTT
-AAGAGTTATAAGCCAGACAAATTGTATCAATAGAGAATCCGTAAATTCCTCGGCCAACCT
-CTTGCAAAGACATCACTATCAATATACTACCGTGATCTTAATTAGTGAACTTATATAAAT
-ATCTACAACCAGATTCAACGGAAAAGCTTTAGTGGATTAGAAATTGCCAAGAATCACATT
-CATGTGGGTTCGAATGCTTTAGTAATACCATTTCGCCGAGTAGTCACTTCGCTGAACTGT
-CGTAAATTGCTATGACATAATCGAAAAGGATTGTCAAGAGTCGATTACTGCGGACTAATA
-ATCCCCACGGGGGTGGTCTCATGTCTCCCCAGGCGAGTGGGGACGGTTGATAAACACGCT
-GCATCGCGGACTGATGTTCCCAGTATTACATAGTCACATTGGATTGCGAGTAGTCTACCT
-ATTTATGAGCGAGAGATGCCTCTAACTACTTCGACTTTTAAAACCTTTCCACGCCAGTAT
-TCGGCGAAAGGGAAGTATTAAGGGTTGTCATAATTAAGCTGATACCACTTCAGACTTTGC
-TCTACTTCTGTCTTTCATTGGTTTAGTAAAGTCTGTCCATTCGTCGAGACCGTCTTTTGC
-AGCCTCATTCTACCAACTGCTCCGACTCTTAGTCTGCTTCTCCCAGCGTTATAACAAGAG
-GCATTTTGTCATCCTTAAAACAATAATAAAGAACTCGGAGCACTGATATAATGACTGAAT
-TAGAACCGCTTAAAAATACAACGAATAGATAAGACTATCGGATAAGATCTAATATGTAGT
-GATTAAGCCCTTTATTAATTAATAATAGTTACCCTTTCTGATGTAACGCGACATATTACG
-ATTTAGTGGCACGTCTGAATTGCAAAGCAGATCTCTACCCGATTTTTATTATAAATCCCG
-TATACATCTTGACTTGAGTAATTGTTCATCTTTTTATATCTCTTCGTACTACAAATAATT
-AATATCTCAACCCGTATTGTGTGATTCTAATTACCAACAGAATACGAGGAGGTTTTTGCT
-TAGGGCCATATATAATGAATCTATCTCGTTTATTCGCGGAACCCGAGATAACATTACGAT
-GTAACTATTTTAGAGAACTTAATACAAGAAACATTGCTGATTACTCATAACTAAATGCTT
-GGTAATATATCCTCAGTGCCCCTACCATCTTTTACGCAGGGATGTAATTACTTAGGATTC
-ATTGTGTAAGAATTACAATGAACGATGGATATGAAGGCATGTTGCGAGGTGTTCCTTGGT
-ATGTGAAGTTCGCAGGGCAACAAAAATTTCGCAGAATAGGCCTCAAAGTATTGGTAAAGA
-AGACAACTAATCATCACGAGCTTCTGATATCAATACGAACGAGTCCTGTGATGGATGAAA
-GAAAGTCGTATCGAAAATGTCAAGAGTCTGCCCAATGTAACTTACTTCAAAAAATAACGC
-TTCCGCCAAGTACGTTCGAATAAACGTAATTTTAAAAATACATAAGGGGTGTTAGAAAGT
-AAGCGACGGGATATAAGTTAGACTCAAGATTCCGCCGTAAAACGAGACTGATTCCGAAGA
-TTGTTCGTGGATCTGGTCATGACTTTCACTGAGTAAGGAGTTTCGACATATGTCAATAAA
-CACAAAAATAGAAGCTATTCGATCTGAAAAATATTAGGACAAGAAACTATCTCACGCTAG
-CCCAGAATATTCACTCACCCACGGGCGATACTAAAGCACTATATAGTCGCGTGATTACTA
-TACATATGGTACACATAAGAATCACGATCAGGTTCTCAATTTTCAACAATATATGTTTAT
-TTGCATAGGTAATATTAGGCCTTTAAGAGAAGGATGGGTGAGATACTCCGGGGATGGCGG
-CAATAAAGAAAAACACGATATGAGTAATAGGATCCTAATATCTTGGCGAGAGACTTAAGG
-TACGAATTTTGCGCAATCTATTTTTTACTTGGCCAGAATTCATGTATGGTATAAGTACGA
-ACTTTTTTGATCACTTTCATGGCTACCTGATTAGGATAGTTTGAGGAATTTCCCAAATAT
-ACCGATTTAATATACACTAGGGCTTGTCACTTTGAGTCAGAAAAAGAATATAATTACTTA
-GGGTAATGCTGCATACATATTCTTATATTGCAAAGGTTCTCTGGGTAATCTTGAGCCTTC
-ACGATACCTGGTGAAGTGTT
diff --git a/gcc/testsuite/go.test/test/bench/shootout/Makefile b/gcc/testsuite/go.test/test/bench/shootout/Makefile
new file mode 100644 (file)
index 0000000..e1c9b7b
--- /dev/null
@@ -0,0 +1,14 @@
+# Copyright 2011 The Go Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file.
+
+include ../../../src/Make.inc
+
+all:
+       @echo "make clean or timing"
+
+timing:
+       ./timing.sh
+
+clean:
+       rm -f [568].out *.[568]
diff --git a/gcc/testsuite/go.test/test/bench/shootout/binary-tree-freelist.go b/gcc/testsuite/go.test/test/bench/shootout/binary-tree-freelist.go
new file mode 100644 (file)
index 0000000..071a4e0
--- /dev/null
@@ -0,0 +1,129 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by The Go Authors.
+ * based on C program by Kevin Carson
+ */
+
+package main
+
+import (
+       "flag"
+       "fmt"
+)
+
+var n = flag.Int("n", 15, "depth")
+
+type Node struct {
+       item        int
+       left, right *Node
+}
+
+type Arena struct {
+       head *Node
+}
+
+var arena Arena
+
+func (n *Node) free() {
+       if n.left != nil {
+               n.left.free()
+       }
+       if n.right != nil {
+               n.right.free()
+       }
+       n.left = arena.head
+       arena.head = n
+}
+
+func (a *Arena) New(item int, left, right *Node) *Node {
+       if a.head == nil {
+               nodes := make([]Node, 3<<uint(*n))
+               for i := 0; i < len(nodes)-1; i++ {
+                       nodes[i].left = &nodes[i+1]
+               }
+               a.head = &nodes[0]
+       }
+       n := a.head
+       a.head = a.head.left
+       n.item = item
+       n.left = left
+       n.right = right
+       return n
+}
+
+func bottomUpTree(item, depth int) *Node {
+       if depth <= 0 {
+               return arena.New(item, nil, nil)
+       }
+       return arena.New(item, bottomUpTree(2*item-1, depth-1), bottomUpTree(2*item, depth-1))
+}
+
+func (n *Node) itemCheck() int {
+       if n.left == nil {
+               return n.item
+       }
+       return n.item + n.left.itemCheck() - n.right.itemCheck()
+}
+
+const minDepth = 4
+
+func main() {
+       flag.Parse()
+
+       maxDepth := *n
+       if minDepth+2 > *n {
+               maxDepth = minDepth + 2
+       }
+       stretchDepth := maxDepth + 1
+
+       check := bottomUpTree(0, stretchDepth).itemCheck()
+       fmt.Printf("stretch tree of depth %d\t check: %d\n", stretchDepth, check)
+
+       longLivedTree := bottomUpTree(0, maxDepth)
+
+       for depth := minDepth; depth <= maxDepth; depth += 2 {
+               iterations := 1 << uint(maxDepth-depth+minDepth)
+               check = 0
+
+               for i := 1; i <= iterations; i++ {
+                       t := bottomUpTree(i, depth)
+                       check += t.itemCheck()
+                       t.free()
+                       t = bottomUpTree(-i, depth)
+                       check += t.itemCheck()
+                       t.free()
+               }
+               fmt.Printf("%d\t trees of depth %d\t check: %d\n", iterations*2, depth, check)
+       }
+       fmt.Printf("long lived tree of depth %d\t check: %d\n", maxDepth, longLivedTree.itemCheck())
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/binary-tree-freelist.txt b/gcc/testsuite/go.test/test/bench/shootout/binary-tree-freelist.txt
new file mode 100644 (file)
index 0000000..f8286dd
--- /dev/null
@@ -0,0 +1,8 @@
+stretch tree of depth 16        check: -1
+65536   trees of depth 4        check: -65536
+16384   trees of depth 6        check: -16384
+4096    trees of depth 8        check: -4096
+1024    trees of depth 10       check: -1024
+256     trees of depth 12       check: -256
+64      trees of depth 14       check: -64
+long lived tree of depth 15     check: -1
diff --git a/gcc/testsuite/go.test/test/bench/shootout/binary-tree.c b/gcc/testsuite/go.test/test/bench/shootout/binary-tree.c
new file mode 100644 (file)
index 0000000..1b40704
--- /dev/null
@@ -0,0 +1,165 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Shootout Benchmarks
+   http://shootout.alioth.debian.org/
+
+   contributed by Kevin Carson
+   compilation:
+       gcc -O3 -fomit-frame-pointer -funroll-loops -static binary-trees.c -lm
+       icc -O3 -ip -unroll -static binary-trees.c -lm
+*/
+
+#include <malloc.h>
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+
+typedef struct tn {
+    struct tn*    left;
+    struct tn*    right;
+    long          item;
+} treeNode;
+
+
+treeNode* NewTreeNode(treeNode* left, treeNode* right, long item)
+{
+    treeNode*    new;
+
+    new = (treeNode*)malloc(sizeof(treeNode));
+
+    new->left = left;
+    new->right = right;
+    new->item = item;
+
+    return new;
+} /* NewTreeNode() */
+
+
+long ItemCheck(treeNode* tree)
+{
+    if (tree->left == NULL)
+        return tree->item;
+    else
+        return tree->item + ItemCheck(tree->left) - ItemCheck(tree->right);
+} /* ItemCheck() */
+
+
+treeNode* BottomUpTree(long item, unsigned depth)
+{
+    if (depth > 0)
+        return NewTreeNode
+        (
+            BottomUpTree(2 * item - 1, depth - 1),
+            BottomUpTree(2 * item, depth - 1),
+            item
+        );
+    else
+        return NewTreeNode(NULL, NULL, item);
+} /* BottomUpTree() */
+
+
+void DeleteTree(treeNode* tree)
+{
+    if (tree->left != NULL)
+    {
+        DeleteTree(tree->left);
+        DeleteTree(tree->right);
+    }
+
+    free(tree);
+} /* DeleteTree() */
+
+
+int main(int argc, char* argv[])
+{
+    unsigned   N, depth, minDepth, maxDepth, stretchDepth;
+    treeNode   *stretchTree, *longLivedTree, *tempTree;
+
+    N = atol(argv[1]);
+
+    minDepth = 4;
+
+    if ((minDepth + 2) > N)
+        maxDepth = minDepth + 2;
+    else
+        maxDepth = N;
+
+    stretchDepth = maxDepth + 1;
+
+    stretchTree = BottomUpTree(0, stretchDepth);
+    printf
+    (
+        "stretch tree of depth %u\t check: %li\n",
+        stretchDepth,
+        ItemCheck(stretchTree)
+    );
+
+    DeleteTree(stretchTree);
+
+    longLivedTree = BottomUpTree(0, maxDepth);
+
+    for (depth = minDepth; depth <= maxDepth; depth += 2)
+    {
+        long    i, iterations, check;
+
+        iterations = pow(2, maxDepth - depth + minDepth);
+
+        check = 0;
+
+        for (i = 1; i <= iterations; i++)
+        {
+            tempTree = BottomUpTree(i, depth);
+            check += ItemCheck(tempTree);
+            DeleteTree(tempTree);
+
+            tempTree = BottomUpTree(-i, depth);
+            check += ItemCheck(tempTree);
+            DeleteTree(tempTree);
+        } /* for(i = 1...) */
+
+        printf
+        (
+            "%li\t trees of depth %u\t check: %li\n",
+            iterations * 2,
+            depth,
+            check
+        );
+    } /* for(depth = minDepth...) */
+
+    printf
+    (
+        "long lived tree of depth %u\t check: %li\n",
+        maxDepth,
+        ItemCheck(longLivedTree)
+    );
+
+    return 0;
+} /* main() */
diff --git a/gcc/testsuite/go.test/test/bench/shootout/binary-tree.go b/gcc/testsuite/go.test/test/bench/shootout/binary-tree.go
new file mode 100644 (file)
index 0000000..9f867d1
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by The Go Authors.
+ * based on C program by Kevin Carson
+ */
+
+package main
+
+import (
+       "flag"
+       "fmt"
+)
+
+var n = flag.Int("n", 15, "depth")
+
+type Node struct {
+       item        int
+       left, right *Node
+}
+
+func bottomUpTree(item, depth int) *Node {
+       if depth <= 0 {
+               return &Node{item: item}
+       }
+       return &Node{item, bottomUpTree(2*item-1, depth-1), bottomUpTree(2*item, depth-1)}
+}
+
+func (n *Node) itemCheck() int {
+       if n.left == nil {
+               return n.item
+       }
+       return n.item + n.left.itemCheck() - n.right.itemCheck()
+}
+
+const minDepth = 4
+
+func main() {
+       flag.Parse()
+
+       maxDepth := *n
+       if minDepth+2 > *n {
+               maxDepth = minDepth + 2
+       }
+       stretchDepth := maxDepth + 1
+
+       check := bottomUpTree(0, stretchDepth).itemCheck()
+       fmt.Printf("stretch tree of depth %d\t check: %d\n", stretchDepth, check)
+
+       longLivedTree := bottomUpTree(0, maxDepth)
+
+       for depth := minDepth; depth <= maxDepth; depth += 2 {
+               iterations := 1 << uint(maxDepth-depth+minDepth)
+               check = 0
+
+               for i := 1; i <= iterations; i++ {
+                       check += bottomUpTree(i, depth).itemCheck()
+                       check += bottomUpTree(-i, depth).itemCheck()
+               }
+               fmt.Printf("%d\t trees of depth %d\t check: %d\n", iterations*2, depth, check)
+       }
+       fmt.Printf("long lived tree of depth %d\t check: %d\n", maxDepth, longLivedTree.itemCheck())
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/binary-tree.txt b/gcc/testsuite/go.test/test/bench/shootout/binary-tree.txt
new file mode 100644 (file)
index 0000000..f8286dd
--- /dev/null
@@ -0,0 +1,8 @@
+stretch tree of depth 16        check: -1
+65536   trees of depth 4        check: -65536
+16384   trees of depth 6        check: -16384
+4096    trees of depth 8        check: -4096
+1024    trees of depth 10       check: -1024
+256     trees of depth 12       check: -256
+64      trees of depth 14       check: -64
+long lived tree of depth 15     check: -1
diff --git a/gcc/testsuite/go.test/test/bench/shootout/chameneosredux.c b/gcc/testsuite/go.test/test/bench/shootout/chameneosredux.c
new file mode 100644 (file)
index 0000000..ed78c31
--- /dev/null
@@ -0,0 +1,330 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+   http://shootout.alioth.debian.org/
+
+   contributed by Michael Barker
+   based on a Java contribution by Luzius Meisser
+
+   convert to C by dualamd
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <pthread.h>
+
+
+enum Colour
+{
+   blue      = 0,
+   red      = 1,
+   yellow   = 2,
+   Invalid   = 3
+};
+
+const char* ColourName[] = {"blue", "red", "yellow"};
+const int STACK_SIZE   = 32*1024;
+
+typedef unsigned int BOOL;
+const BOOL TRUE = 1;
+const BOOL FALSE = 0;
+
+int CreatureID = 0;
+
+
+enum Colour doCompliment(enum Colour c1, enum Colour c2)
+{
+   switch (c1)
+   {
+   case blue:
+      switch (c2)
+      {
+      case blue:
+         return blue;
+      case red:
+         return yellow;
+      case yellow:
+         return red;
+      default:
+         goto errlb;
+      }
+   case red:
+      switch (c2)
+      {
+      case blue:
+         return yellow;
+      case red:
+         return red;
+      case yellow:
+         return blue;
+      default:
+         goto errlb;
+      }
+   case yellow:
+      switch (c2)
+      {
+      case blue:
+         return red;
+      case red:
+         return blue;
+      case yellow:
+         return yellow;
+      default:
+         goto errlb;
+      }
+   default:
+      break;
+   }
+
+errlb:
+   printf("Invalid colour\n");
+   exit( 1 );
+}
+
+/* convert integer to number string: 1234 -> "one two three four" */
+char* formatNumber(int n, char* outbuf)
+{
+   int ochar = 0, ichar = 0;
+   int i;
+   char tmp[64];
+
+   const char* NUMBERS[] =
+   {
+      "zero", "one", "two", "three", "four", "five",
+      "six", "seven", "eight", "nine"
+   };
+
+   ichar = sprintf(tmp, "%d", n);
+
+   for (i = 0; i < ichar; i++)
+      ochar += sprintf( outbuf + ochar, " %s", NUMBERS[ tmp[i] - '0' ] );
+
+   return outbuf;
+}
+
+
+struct MeetingPlace
+{
+   pthread_mutex_t   mutex;
+   int             meetingsLeft;
+   struct Creature*   firstCreature;
+};
+
+struct Creature
+{
+   pthread_t         ht;
+   pthread_attr_t      stack_att;
+
+   struct MeetingPlace* place;
+   int         count;
+   int         sameCount;
+
+   enum Colour   colour;
+   int          id;
+
+   BOOL      two_met;
+   BOOL      sameid;
+};
+
+
+void MeetingPlace_Init(struct MeetingPlace* m, int meetings )
+{
+   pthread_mutex_init( &m->mutex, 0 );
+   m->meetingsLeft = meetings;
+   m->firstCreature = 0;
+}
+
+
+BOOL Meet( struct Creature* cr)
+{
+   BOOL retval = TRUE;
+
+   struct MeetingPlace* mp = cr->place;
+   pthread_mutex_lock( &(mp->mutex) );
+
+   if ( mp->meetingsLeft > 0 )
+   {
+      if ( mp->firstCreature == 0 )
+      {
+         cr->two_met = FALSE;
+         mp->firstCreature = cr;
+      }
+      else
+      {
+         struct Creature* first;
+         enum Colour newColour;
+
+         first = mp->firstCreature;
+         newColour = doCompliment( cr->colour, first->colour );
+
+         cr->sameid = cr->id == first->id;
+         cr->colour = newColour;
+         cr->two_met = TRUE;
+
+         first->sameid = cr->sameid;
+         first->colour = newColour;
+         first->two_met = TRUE;
+
+         mp->firstCreature = 0;
+         mp->meetingsLeft--;
+      }
+   }
+   else
+      retval = FALSE;
+
+   pthread_mutex_unlock( &(mp->mutex) );
+   return retval;
+}
+
+
+void* CreatureThreadRun(void* param)
+{
+   struct Creature* cr = (struct Creature*)param;
+
+   while (TRUE)
+   {
+      if ( Meet(cr) )
+      {
+         while (cr->two_met == FALSE)
+            sched_yield();
+
+         if (cr->sameid)
+            cr->sameCount++;
+         cr->count++;
+      }
+      else
+         break;
+   }
+
+   return 0;
+}
+
+void Creature_Init( struct Creature *cr, struct MeetingPlace* place, enum Colour colour )
+{
+   cr->place = place;
+   cr->count = cr->sameCount = 0;
+
+   cr->id = ++CreatureID;
+   cr->colour = colour;
+   cr->two_met = FALSE;
+
+   pthread_attr_init( &cr->stack_att );
+   pthread_attr_setstacksize( &cr->stack_att, STACK_SIZE );
+   pthread_create( &cr->ht, &cr->stack_att, &CreatureThreadRun, (void*)(cr) );
+}
+
+/* format meeting times of each creature to string */
+char* Creature_getResult(struct Creature* cr, char* str)
+{
+   char numstr[256];
+   formatNumber(cr->sameCount, numstr);
+
+   sprintf( str, "%u%s", cr->count, numstr );
+   return str;
+}
+
+
+void runGame( int n_meeting, int ncolor, const enum Colour* colours )
+{
+   int i;
+   int total = 0;
+   char str[256];
+
+   struct MeetingPlace place;
+   struct Creature *creatures = (struct Creature*) calloc( ncolor, sizeof(struct Creature) );
+
+   MeetingPlace_Init( &place, n_meeting );
+
+   /* print initial color of each creature */
+   for (i = 0; i < ncolor; i++)
+   {
+      printf( "%s ", ColourName[ colours[i] ] );
+      Creature_Init( &(creatures[i]), &place, colours[i] );
+   }
+   printf("\n");
+
+   /* wait for them to meet */
+   for (i = 0; i < ncolor; i++)
+      pthread_join( creatures[i].ht, 0 );
+
+   /* print meeting times of each creature */
+   for (i = 0; i < ncolor; i++)
+   {
+      printf( "%s\n", Creature_getResult(&(creatures[i]), str) );
+      total += creatures[i].count;
+   }
+
+   /* print total meeting times, should equal n_meeting */
+   printf( "%s\n\n", formatNumber(total, str) );
+
+   /* cleaup & quit */
+   pthread_mutex_destroy( &place.mutex );
+   free( creatures );
+}
+
+
+void printColours( enum Colour c1, enum Colour c2 )
+{
+   printf( "%s + %s -> %s\n",
+      ColourName[c1],
+      ColourName[c2],
+      ColourName[doCompliment(c1, c2)]   );
+}
+
+void printColoursTable(void)
+{
+   printColours(blue, blue);
+   printColours(blue, red);
+   printColours(blue, yellow);
+   printColours(red, blue);
+   printColours(red, red);
+   printColours(red, yellow);
+   printColours(yellow, blue);
+   printColours(yellow, red);
+   printColours(yellow, yellow);
+}
+
+int main(int argc, char** argv)
+{
+   int n = (argc == 2) ? atoi(argv[1]) : 600;
+
+   printColoursTable();
+   printf("\n");
+
+   const enum Colour r1[] = {   blue, red, yellow   };
+   const enum Colour r2[] = {   blue, red, yellow,
+               red, yellow, blue,
+               red, yellow, red, blue   };
+
+   runGame( n, sizeof(r1) / sizeof(r1[0]), r1 );
+   runGame( n, sizeof(r2) / sizeof(r2[0]), r2 );
+
+   return 0;
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/chameneosredux.go b/gcc/testsuite/go.test/test/bench/shootout/chameneosredux.go
new file mode 100644 (file)
index 0000000..3395798
--- /dev/null
@@ -0,0 +1,180 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by The Go Authors.
+ */
+
+package main
+
+import (
+       "flag"
+       "fmt"
+       "strconv"
+)
+
+const (
+       blue = iota
+       red
+       yellow
+       ncol
+)
+
+var complement = [...]int{
+       red | red<<2:       red,
+       red | yellow<<2:    blue,
+       red | blue<<2:      yellow,
+       yellow | red<<2:    blue,
+       yellow | yellow<<2: yellow,
+       yellow | blue<<2:   red,
+       blue | red<<2:      yellow,
+       blue | yellow<<2:   red,
+       blue | blue<<2:     blue,
+}
+
+var colname = [...]string{
+       blue:   "blue",
+       red:    "red",
+       yellow: "yellow",
+}
+
+// information about the current state of a creature.
+type info struct {
+       colour int // creature's current colour.
+       name   int // creature's name.
+}
+
+// exclusive access data-structure kept inside meetingplace.
+// if mate is nil, it indicates there's no creature currently waiting;
+// otherwise the creature's info is stored in info, and
+// it is waiting to receive its mate's information on the mate channel.
+type rendez struct {
+       n    int         // current number of encounters.
+       mate chan<- info // creature waiting when non-nil.
+       info info        // info about creature waiting.
+}
+
+// result sent by each creature at the end of processing.
+type result struct {
+       met  int
+       same int
+}
+
+var n = 600
+
+func main() {
+       flag.Parse()
+       if flag.NArg() > 0 {
+               n, _ = strconv.Atoi(flag.Arg(0))
+       }
+
+       for c0 := 0; c0 < ncol; c0++ {
+               for c1 := 0; c1 < ncol; c1++ {
+                       fmt.Printf("%s + %s -> %s\n", colname[c0], colname[c1], colname[complement[c0|c1<<2]])
+               }
+       }
+       fmt.Print("\n")
+
+       pallmall([]int{blue, red, yellow})
+       pallmall([]int{blue, red, yellow, red, yellow, blue, red, yellow, red, blue})
+}
+
+func pallmall(cols []int) {
+
+       // invariant: meetingplace always contains a value unless a creature
+       // is currently dealing with it (whereupon it must put it back).
+       meetingplace := make(chan rendez, 1)
+       meetingplace <- rendez{n: 0}
+
+       ended := make(chan result)
+       msg := ""
+       for i, col := range cols {
+               go creature(info{col, i}, meetingplace, ended)
+               msg += " " + colname[col]
+       }
+       fmt.Println(msg)
+       tot := 0
+       // wait for all results
+       for _ = range cols {
+               result := <-ended
+               tot += result.met
+               fmt.Printf("%v%v\n", result.met, spell(result.same, true))
+       }
+       fmt.Printf("%v\n\n", spell(tot, true))
+}
+
+// in this function, variables ending in 0 refer to the local creature,
+// variables ending in 1 to the creature we've met.
+func creature(info0 info, meetingplace chan rendez, ended chan result) {
+       c0 := make(chan info)
+       met := 0
+       same := 0
+       for {
+               var othername int
+               // get access to rendez data and decide what to do.
+               switch r := <-meetingplace; {
+               case r.n >= n:
+                       // if no more meetings left, then send our result data and exit.
+                       meetingplace <- rendez{n: r.n}
+                       ended <- result{met, same}
+                       return
+               case r.mate == nil:
+                       // no creature waiting; wait for someone to meet us,
+                       // get their info and send our info in reply.
+                       meetingplace <- rendez{n: r.n, info: info0, mate: c0}
+                       info1 := <-c0
+                       othername = info1.name
+                       info0.colour = complement[info0.colour|info1.colour<<2]
+               default:
+                       // another creature is waiting for us with its info;
+                       // increment meeting count,
+                       // send them our info in reply.
+                       r.n++
+                       meetingplace <- rendez{n: r.n, mate: nil}
+                       r.mate <- info0
+                       othername = r.info.name
+                       info0.colour = complement[info0.colour|r.info.colour<<2]
+               }
+               if othername == info0.name {
+                       same++
+               }
+               met++
+       }
+}
+
+var digits = [...]string{"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}
+
+func spell(n int, required bool) string {
+       if n == 0 && !required {
+               return ""
+       }
+       return spell(n/10, false) + " " + digits[n%10]
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/chameneosredux.txt b/gcc/testsuite/go.test/test/bench/shootout/chameneosredux.txt
new file mode 100644 (file)
index 0000000..6016d59
--- /dev/null
@@ -0,0 +1,29 @@
+blue + blue -> blue
+blue + red -> yellow
+blue + yellow -> red
+red + blue -> yellow
+red + red -> red
+red + yellow -> blue
+yellow + blue -> red
+yellow + red -> blue
+yellow + yellow -> yellow
+
+ blue red yellow
+400 zero
+400 zero
+400 zero
+ one two zero zero
+
+ blue red yellow red yellow blue red yellow red blue
+120 zero
+120 zero
+120 zero
+120 zero
+120 zero
+120 zero
+120 zero
+120 zero
+120 zero
+120 zero
+ one two zero zero
+
diff --git a/gcc/testsuite/go.test/test/bench/shootout/fannkuch-parallel.go b/gcc/testsuite/go.test/test/bench/shootout/fannkuch-parallel.go
new file mode 100644 (file)
index 0000000..7e9b98d
--- /dev/null
@@ -0,0 +1,224 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/*
+ * The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by The Go Authors.
+ * Based on fannkuch.scala by Rex Kerr
+ */
+
+package main
+
+import (
+       "flag"
+       "fmt"
+       "runtime"
+)
+
+var n = flag.Int("n", 7, "count")
+var nCPU = flag.Int("ncpu", 4, "number of cpus")
+
+type Job struct {
+       start []int
+       n     int
+}
+
+type Found struct {
+       who *Kucher
+       k   int
+}
+
+type Kucher struct {
+       perm []int
+       temp []int
+       flip []int
+       in   chan Job
+}
+
+func NewKucher(length int) *Kucher {
+       return &Kucher{
+               perm: make([]int, length),
+               temp: make([]int, length),
+               flip: make([]int, length),
+               in:   make(chan Job),
+       }
+}
+
+func (k *Kucher) permute(n int) bool {
+       i := 0
+       for ; i < n-1 && k.flip[i] == 0; i++ {
+               t := k.perm[0]
+               j := 0
+               for ; j <= i; j++ {
+                       k.perm[j] = k.perm[j+1]
+               }
+               k.perm[j] = t
+       }
+       k.flip[i]--
+       for i > 0 {
+               i--
+               k.flip[i] = i
+       }
+       return k.flip[n-1] >= 0
+}
+
+func (k *Kucher) count() int {
+       K := 0
+       copy(k.temp, k.perm)
+       for k.temp[0] != 0 {
+               m := k.temp[0]
+               for i := 0; i < m; i++ {
+                       k.temp[i], k.temp[m] = k.temp[m], k.temp[i]
+                       m--
+               }
+               K++
+       }
+       return K
+}
+
+func (k *Kucher) Run(foreman chan<- Found) {
+       for job := range k.in {
+               verbose := 30
+               copy(k.perm, job.start)
+               for i, v := range k.perm {
+                       if v != i {
+                               verbose = 0
+                       }
+                       k.flip[i] = i
+               }
+               K := 0
+               for {
+                       if verbose > 0 {
+                               for _, p := range k.perm {
+                                       fmt.Print(p + 1)
+                               }
+                               fmt.Println()
+                               verbose--
+                       }
+                       count := k.count()
+                       if count > K {
+                               K = count
+                       }
+                       if !k.permute(job.n) {
+                               break
+                       }
+               }
+               foreman <- Found{k, K}
+       }
+}
+
+type Fanner struct {
+       jobind   int
+       jobsdone int
+       k        int
+       jobs     []Job
+       workers  []*Kucher
+       in       chan Found
+       result   chan int
+}
+
+func NewFanner(jobs []Job, workers []*Kucher) *Fanner {
+       return &Fanner{
+               jobs: jobs, workers: workers,
+               in:     make(chan Found),
+               result: make(chan int),
+       }
+}
+
+func (f *Fanner) Run(N int) {
+       for msg := range f.in {
+               if msg.k > f.k {
+                       f.k = msg.k
+               }
+               if msg.k >= 0 {
+                       f.jobsdone++
+               }
+               if f.jobind < len(f.jobs) {
+                       msg.who.in <- f.jobs[f.jobind]
+                       f.jobind++
+               } else if f.jobsdone == len(f.jobs) {
+                       f.result <- f.k
+                       return
+               }
+       }
+}
+
+func swapped(a []int, i, j int) []int {
+       b := make([]int, len(a))
+       copy(b, a)
+       b[i], b[j] = a[j], a[i]
+       return b
+}
+
+func main() {
+       flag.Parse()
+       runtime.GOMAXPROCS(*nCPU)
+       N := *n
+       base := make([]int, N)
+       for i := range base {
+               base[i] = i
+       }
+
+       njobs := 1
+       if N > 8 {
+               njobs += (N*(N-1))/2 - 28 // njobs = 1 + sum(8..N-1) = 1 + sum(1..N-1) - sum(1..7)
+       }
+       jobs := make([]Job, njobs)
+       jobsind := 0
+
+       firstN := N
+       if firstN > 8 {
+               firstN = 8
+       }
+       jobs[jobsind] = Job{base, firstN}
+       jobsind++
+       for i := N - 1; i >= 8; i-- {
+               for j := 0; j < i; j++ {
+                       jobs[jobsind] = Job{swapped(base, i, j), i}
+                       jobsind++
+               }
+       }
+
+       nworkers := *nCPU
+       if njobs < nworkers {
+               nworkers = njobs
+       }
+       workers := make([]*Kucher, nworkers)
+       foreman := NewFanner(jobs, workers)
+       go foreman.Run(N)
+       for i := range workers {
+               k := NewKucher(N)
+               workers[i] = k
+               go k.Run(foreman.in)
+               foreman.in <- Found{k, -1}
+       }
+       fmt.Printf("Pfannkuchen(%d) = %d\n", N, <-foreman.result)
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/fannkuch-parallel.txt b/gcc/testsuite/go.test/test/bench/shootout/fannkuch-parallel.txt
new file mode 100644 (file)
index 0000000..e66f779
--- /dev/null
@@ -0,0 +1,31 @@
+1234567
+2134567
+2314567
+3214567
+3124567
+1324567
+2341567
+3241567
+3421567
+4321567
+4231567
+2431567
+3412567
+4312567
+4132567
+1432567
+1342567
+3142567
+4123567
+1423567
+1243567
+2143567
+2413567
+4213567
+2345167
+3245167
+3425167
+4325167
+4235167
+2435167
+Pfannkuchen(7) = 16
diff --git a/gcc/testsuite/go.test/test/bench/shootout/fannkuch.c b/gcc/testsuite/go.test/test/bench/shootout/fannkuch.c
new file mode 100644 (file)
index 0000000..e576b54
--- /dev/null
@@ -0,0 +1,134 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/*
+ * The Computer Language Shootout
+ * http://shootout.alioth.debian.org/
+ * Contributed by Heiner Marxen
+ *
+ * "fannkuch"  for C gcc
+ *
+ * $Id: fannkuch.1.gcc.code,v 1.15 2009-04-28 15:39:31 igouy-guest Exp $
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define Int    int
+#define Aint   int
+
+    static long
+fannkuch( int n )
+{
+    Aint*      perm;
+    Aint*      perm1;
+    Aint*      count;
+    long       flips;
+    long       flipsMax;
+    Int                r;
+    Int                i;
+    Int                k;
+    Int                didpr;
+    const Int  n1      = n - 1;
+
+    if( n < 1 ) return 0;
+
+    perm  = calloc(n, sizeof(*perm ));
+    perm1 = calloc(n, sizeof(*perm1));
+    count = calloc(n, sizeof(*count));
+
+    for( i=0 ; i<n ; ++i ) perm1[i] = i;       /* initial (trivial) permu */
+
+    r = n; didpr = 0; flipsMax = 0;
+    for(;;) {
+       if( didpr < 30 ) {
+           for( i=0 ; i<n ; ++i ) printf("%d", (int)(1+perm1[i]));
+           printf("\n");
+           ++didpr;
+       }
+       for( ; r!=1 ; --r ) {
+           count[r-1] = r;
+       }
+
+#define XCH(x,y)       { Aint t_mp; t_mp=(x); (x)=(y); (y)=t_mp; }
+
+       if( ! (perm1[0]==0 || perm1[n1]==n1) ) {
+           flips = 0;
+           for( i=1 ; i<n ; ++i ) {    /* perm = perm1 */
+               perm[i] = perm1[i];
+           }
+           k = perm1[0];               /* cache perm[0] in k */
+           do {                        /* k!=0 ==> k>0 */
+               Int     j;
+               for( i=1, j=k-1 ; i<j ; ++i, --j ) {
+                   XCH(perm[i], perm[j])
+               }
+               ++flips;
+               /*
+                * Now exchange k (caching perm[0]) and perm[k]... with care!
+                * XCH(k, perm[k]) does NOT work!
+                */
+               j=perm[k]; perm[k]=k ; k=j;
+           }while( k );
+           if( flipsMax < flips ) {
+               flipsMax = flips;
+           }
+       }
+
+       for(;;) {
+           if( r == n ) {
+               return flipsMax;
+           }
+           /* rotate down perm[0..r] by one */
+           {
+               Int     perm0 = perm1[0];
+               i = 0;
+               while( i < r ) {
+                   k = i+1;
+                   perm1[i] = perm1[k];
+                   i = k;
+               }
+               perm1[r] = perm0;
+           }
+           if( (count[r] -= 1) > 0 ) {
+               break;
+           }
+           ++r;
+       }
+    }
+}
+
+    int
+main( int argc, char* argv[] )
+{
+    int                n = (argc>1) ? atoi(argv[1]) : 0;
+
+    printf("Pfannkuchen(%d) = %ld\n", n, fannkuch(n));
+    return 0;
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/fannkuch.go b/gcc/testsuite/go.test/test/bench/shootout/fannkuch.go
new file mode 100644 (file)
index 0000000..b554c77
--- /dev/null
@@ -0,0 +1,122 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/*
+ * The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by The Go Authors.
+ * Based on fannkuch.c by Heiner Marxen
+ */
+
+package main
+
+import (
+       "flag"
+       "fmt"
+)
+
+var n = flag.Int("n", 7, "count")
+
+func fannkuch(n int) int {
+       if n < 1 {
+               return 0
+       }
+
+       n1 := n - 1
+       perm := make([]int, n)
+       perm1 := make([]int, n)
+       count := make([]int, n)
+
+       for i := 0; i < n; i++ {
+               perm1[i] = i // initial (trivial) permutation
+       }
+
+       r := n
+       didpr := 0
+       flipsMax := 0
+       for {
+               if didpr < 30 {
+                       for i := 0; i < n; i++ {
+                               fmt.Printf("%d", 1+perm1[i])
+                       }
+                       fmt.Printf("\n")
+                       didpr++
+               }
+               for ; r != 1; r-- {
+                       count[r-1] = r
+               }
+
+               if perm1[0] != 0 && perm1[n1] != n1 {
+                       flips := 0
+                       for i := 1; i < n; i++ { // perm = perm1
+                               perm[i] = perm1[i]
+                       }
+                       k := perm1[0] // cache perm[0] in k
+                       for {         // k!=0 ==> k>0
+                               for i, j := 1, k-1; i < j; i, j = i+1, j-1 {
+                                       perm[i], perm[j] = perm[j], perm[i]
+                               }
+                               flips++
+                               // Now exchange k (caching perm[0]) and perm[k]... with care!
+                               j := perm[k]
+                               perm[k] = k
+                               k = j
+                               if k == 0 {
+                                       break
+                               }
+                       }
+                       if flipsMax < flips {
+                               flipsMax = flips
+                       }
+               }
+
+               for ; r < n; r++ {
+                       // rotate down perm[0..r] by one
+                       perm0 := perm1[0]
+                       for i := 0; i < r; i++ {
+                               perm1[i] = perm1[i+1]
+                       }
+                       perm1[r] = perm0
+                       count[r]--
+                       if count[r] > 0 {
+                               break
+                       }
+               }
+               if r == n {
+                       return flipsMax
+               }
+       }
+       return 0
+}
+
+func main() {
+       flag.Parse()
+       fmt.Printf("Pfannkuchen(%d) = %d\n", *n, fannkuch(*n))
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/fannkuch.txt b/gcc/testsuite/go.test/test/bench/shootout/fannkuch.txt
new file mode 100644 (file)
index 0000000..e66f779
--- /dev/null
@@ -0,0 +1,31 @@
+1234567
+2134567
+2314567
+3214567
+3124567
+1324567
+2341567
+3241567
+3421567
+4321567
+4231567
+2431567
+3412567
+4312567
+4132567
+1432567
+1342567
+3142567
+4123567
+1423567
+1243567
+2143567
+2413567
+4213567
+2345167
+3245167
+3425167
+4325167
+4235167
+2435167
+Pfannkuchen(7) = 16
diff --git a/gcc/testsuite/go.test/test/bench/shootout/fasta-1000.out b/gcc/testsuite/go.test/test/bench/shootout/fasta-1000.out
new file mode 100644 (file)
index 0000000..f1caba0
--- /dev/null
@@ -0,0 +1,171 @@
+>ONE Homo sapiens alu
+GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA
+TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT
+AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG
+GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG
+CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT
+GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA
+GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA
+TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG
+AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA
+GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT
+AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC
+AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG
+GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC
+CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG
+AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT
+TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA
+TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT
+GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG
+TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT
+CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG
+CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG
+TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA
+CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG
+AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG
+GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC
+TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA
+TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA
+GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT
+GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC
+ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT
+TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC
+CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG
+CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG
+GGCGACAGAGCGAGACTCCG
+>TWO IUB ambiguity codes
+cttBtatcatatgctaKggNcataaaSatgtaaaDcDRtBggDtctttataattcBgtcg
+tactDtDagcctatttSVHtHttKtgtHMaSattgWaHKHttttagacatWatgtRgaaa
+NtactMcSMtYtcMgRtacttctWBacgaaatatagScDtttgaagacacatagtVgYgt
+cattHWtMMWcStgttaggKtSgaYaaccWStcgBttgcgaMttBYatcWtgacaYcaga
+gtaBDtRacttttcWatMttDBcatWtatcttactaBgaYtcttgttttttttYaaScYa
+HgtgttNtSatcMtcVaaaStccRcctDaataataStcYtRDSaMtDttgttSagtRRca
+tttHatSttMtWgtcgtatSSagactYaaattcaMtWatttaSgYttaRgKaRtccactt
+tattRggaMcDaWaWagttttgacatgttctacaaaRaatataataaMttcgDacgaSSt
+acaStYRctVaNMtMgtaggcKatcttttattaaaaagVWaHKYagtttttatttaacct
+tacgtVtcVaattVMBcttaMtttaStgacttagattWWacVtgWYagWVRctDattBYt
+gtttaagaagattattgacVatMaacattVctgtBSgaVtgWWggaKHaatKWcBScSWa
+accRVacacaaactaccScattRatatKVtactatatttHttaagtttSKtRtacaaagt
+RDttcaaaaWgcacatWaDgtDKacgaacaattacaRNWaatHtttStgttattaaMtgt
+tgDcgtMgcatBtgcttcgcgaDWgagctgcgaggggVtaaScNatttacttaatgacag
+cccccacatYScaMgtaggtYaNgttctgaMaacNaMRaacaaacaKctacatagYWctg
+ttWaaataaaataRattagHacacaagcgKatacBttRttaagtatttccgatctHSaat
+actcNttMaagtattMtgRtgaMgcataatHcMtaBSaRattagttgatHtMttaaKagg
+YtaaBataSaVatactWtataVWgKgttaaaacagtgcgRatatacatVtHRtVYataSa
+KtWaStVcNKHKttactatccctcatgWHatWaRcttactaggatctataDtDHBttata
+aaaHgtacVtagaYttYaKcctattcttcttaataNDaaggaaaDYgcggctaaWSctBa
+aNtgctggMBaKctaMVKagBaactaWaDaMaccYVtNtaHtVWtKgRtcaaNtYaNacg
+gtttNattgVtttctgtBaWgtaattcaagtcaVWtactNggattctttaYtaaagccgc
+tcttagHVggaYtgtNcDaVagctctctKgacgtatagYcctRYHDtgBattDaaDgccK
+tcHaaStttMcctagtattgcRgWBaVatHaaaataYtgtttagMDMRtaataaggatMt
+ttctWgtNtgtgaaaaMaatatRtttMtDgHHtgtcattttcWattRSHcVagaagtacg
+ggtaKVattKYagactNaatgtttgKMMgYNtcccgSKttctaStatatNVataYHgtNa
+BKRgNacaactgatttcctttaNcgatttctctataScaHtataRagtcRVttacDSDtt
+aRtSatacHgtSKacYagttMHtWataggatgactNtatSaNctataVtttRNKtgRacc
+tttYtatgttactttttcctttaaacatacaHactMacacggtWataMtBVacRaSaatc
+cgtaBVttccagccBcttaRKtgtgcctttttRtgtcagcRttKtaaacKtaaatctcac
+aattgcaNtSBaaccgggttattaaBcKatDagttactcttcattVtttHaaggctKKga
+tacatcBggScagtVcacattttgaHaDSgHatRMaHWggtatatRgccDttcgtatcga
+aacaHtaagttaRatgaVacttagattVKtaaYttaaatcaNatccRttRRaMScNaaaD
+gttVHWgtcHaaHgacVaWtgttScactaagSgttatcttagggDtaccagWattWtRtg
+ttHWHacgattBtgVcaYatcggttgagKcWtKKcaVtgaYgWctgYggVctgtHgaNcV
+taBtWaaYatcDRaaRtSctgaHaYRttagatMatgcatttNattaDttaattgttctaa
+ccctcccctagaWBtttHtBccttagaVaatMcBHagaVcWcagBVttcBtaYMccagat
+gaaaaHctctaacgttagNWRtcggattNatcRaNHttcagtKttttgWatWttcSaNgg
+gaWtactKKMaacatKatacNattgctWtatctaVgagctatgtRaHtYcWcttagccaa
+tYttWttaWSSttaHcaaaaagVacVgtaVaRMgattaVcDactttcHHggHRtgNcctt
+tYatcatKgctcctctatVcaaaaKaaaagtatatctgMtWtaaaacaStttMtcgactt
+taSatcgDataaactaaacaagtaaVctaggaSccaatMVtaaSKNVattttgHccatca
+cBVctgcaVatVttRtactgtVcaattHgtaaattaaattttYtatattaaRSgYtgBag
+aHSBDgtagcacRHtYcBgtcacttacactaYcgctWtattgSHtSatcataaatataHt
+cgtYaaMNgBaatttaRgaMaatatttBtttaaaHHKaatctgatWatYaacttMctctt
+ttVctagctDaaagtaVaKaKRtaacBgtatccaaccactHHaagaagaaggaNaaatBW
+attccgStaMSaMatBttgcatgRSacgttVVtaaDMtcSgVatWcaSatcttttVatag
+ttactttacgatcaccNtaDVgSRcgVcgtgaacgaNtaNatatagtHtMgtHcMtagaa
+attBgtataRaaaacaYKgtRccYtatgaagtaataKgtaaMttgaaRVatgcagaKStc
+tHNaaatctBBtcttaYaBWHgtVtgacagcaRcataWctcaBcYacYgatDgtDHccta
+>THREE Homo sapiens frequency
+aacacttcaccaggtatcgtgaaggctcaagattacccagagaacctttgcaatataaga
+atatgtatgcagcattaccctaagtaattatattctttttctgactcaaagtgacaagcc
+ctagtgtatattaaatcggtatatttgggaaattcctcaaactatcctaatcaggtagcc
+atgaaagtgatcaaaaaagttcgtacttataccatacatgaattctggccaagtaaaaaa
+tagattgcgcaaaattcgtaccttaagtctctcgccaagatattaggatcctattactca
+tatcgtgtttttctttattgccgccatccccggagtatctcacccatccttctcttaaag
+gcctaatattacctatgcaaataaacatatattgttgaaaattgagaacctgatcgtgat
+tcttatgtgtaccatatgtatagtaatcacgcgactatatagtgctttagtatcgcccgt
+gggtgagtgaatattctgggctagcgtgagatagtttcttgtcctaatatttttcagatc
+gaatagcttctatttttgtgtttattgacatatgtcgaaactccttactcagtgaaagtc
+atgaccagatccacgaacaatcttcggaatcagtctcgttttacggcggaatcttgagtc
+taacttatatcccgtcgcttactttctaacaccccttatgtatttttaaaattacgttta
+ttcgaacgtacttggcggaagcgttattttttgaagtaagttacattgggcagactcttg
+acattttcgatacgactttctttcatccatcacaggactcgttcgtattgatatcagaag
+ctcgtgatgattagttgtcttctttaccaatactttgaggcctattctgcgaaatttttg
+ttgccctgcgaacttcacataccaaggaacacctcgcaacatgccttcatatccatcgtt
+cattgtaattcttacacaatgaatcctaagtaattacatccctgcgtaaaagatggtagg
+ggcactgaggatatattaccaagcatttagttatgagtaatcagcaatgtttcttgtatt
+aagttctctaaaatagttacatcgtaatgttatctcgggttccgcgaataaacgagatag
+attcattatatatggccctaagcaaaaacctcctcgtattctgttggtaattagaatcac
+acaatacgggttgagatattaattatttgtagtacgaagagatataaaaagatgaacaat
+tactcaagtcaagatgtatacgggatttataataaaaatcgggtagagatctgctttgca
+attcagacgtgccactaaatcgtaatatgtcgcgttacatcagaaagggtaactattatt
+aattaataaagggcttaatcactacatattagatcttatccgatagtcttatctattcgt
+tgtatttttaagcggttctaattcagtcattatatcagtgctccgagttctttattattg
+ttttaaggatgacaaaatgcctcttgttataacgctgggagaagcagactaagagtcgga
+gcagttggtagaatgaggctgcaaaagacggtctcgacgaatggacagactttactaaac
+caatgaaagacagaagtagagcaaagtctgaagtggtatcagcttaattatgacaaccct
+taatacttccctttcgccgaatactggcgtggaaaggttttaaaagtcgaagtagttaga
+ggcatctctcgctcataaataggtagactactcgcaatccaatgtgactatgtaatactg
+ggaacatcagtccgcgatgcagcgtgtttatcaaccgtccccactcgcctggggagacat
+gagaccacccccgtggggattattagtccgcagtaatcgactcttgacaatccttttcga
+ttatgtcatagcaatttacgacagttcagcgaagtgactactcggcgaaatggtattact
+aaagcattcgaacccacatgaatgtgattcttggcaatttctaatccactaaagcttttc
+cgttgaatctggttgtagatatttatataagttcactaattaagatcacggtagtatatt
+gatagtgatgtctttgcaagaggttggccgaggaatttacggattctctattgatacaat
+ttgtctggcttataactcttaaggctgaaccaggcgtttttagacgacttgatcagctgt
+tagaatggtttggactccctctttcatgtcagtaacatttcagccgttattgttacgata
+tgcttgaacaatattgatctaccacacacccatagtatattttataggtcatgctgttac
+ctacgagcatggtattccacttcccattcaatgagtattcaacatcactagcctcagaga
+tgatgacccacctctaataacgtcacgttgcggccatgtgaaacctgaacttgagtagac
+gatatcaagcgctttaaattgcatataacatttgagggtaaagctaagcggatgctttat
+ataatcaatactcaataataagatttgattgcattttagagttatgacacgacatagttc
+actaacgagttactattcccagatctagactgaagtactgatcgagacgatccttacgtc
+gatgatcgttagttatcgacttaggtcgggtctctagcggtattggtacttaaccggaca
+ctatactaataacccatgatcaaagcataacagaatacagacgataatttcgccaacata
+tatgtacagaccccaagcatgagaagctcattgaaagctatcattgaagtcccgctcaca
+atgtgtcttttccagacggtttaactggttcccgggagtcctggagtttcgacttacata
+aatggaaacaatgtattttgctaatttatctatagcgtcatttggaccaatacagaatat
+tatgttgcctagtaatccactataacccgcaagtgctgatagaaaatttttagacgattt
+ataaatgccccaagtatccctcccgtgaatcctccgttatactaattagtattcgttcat
+acgtataccgcgcatatatgaacatttggcgataaggcgcgtgaattgttacgtgacaga
+gatagcagtttcttgtgatatggttaacagacgtacatgaagggaaactttatatctata
+gtgatgcttccgtagaaataccgccactggtctgccaatgatgaagtatgtagctttagg
+tttgtactatgaggctttcgtttgtttgcagagtataacagttgcgagtgaaaaaccgac
+gaatttatactaatacgctttcactattggctacaaaatagggaagagtttcaatcatga
+gagggagtatatggatgctttgtagctaaaggtagaacgtatgtatatgctgccgttcat
+tcttgaaagatacataagcgataagttacgacaattataagcaacatccctaccttcgta
+acgatttcactgttactgcgcttgaaatacactatggggctattggcggagagaagcaga
+tcgcgccgagcatatacgagacctataatgttgatgatagagaaggcgtctgaattgata
+catcgaagtacactttctttcgtagtatctctcgtcctctttctatctccggacacaaga
+attaagttatatatatagagtcttaccaatcatgttgaatcctgattctcagagttcttt
+ggcgggccttgtgatgactgagaaacaatgcaatattgctccaaatttcctaagcaaatt
+ctcggttatgttatgttatcagcaaagcgttacgttatgttatttaaatctggaatgacg
+gagcgaagttcttatgtcggtgtgggaataattcttttgaagacagcactccttaaataa
+tatcgctccgtgtttgtatttatcgaatgggtctgtaaccttgcacaagcaaatcggtgg
+tgtatatatcggataacaattaatacgatgttcatagtgacagtatactgatcgagtcct
+ctaaagtcaattacctcacttaacaatctcattgatgttgtgtcattcccggtatcgccc
+gtagtatgtgctctgattgaccgagtgtgaaccaaggaacatctactaatgcctttgtta
+ggtaagatctctctgaattccttcgtgccaacttaaaacattatcaaaatttcttctact
+tggattaactacttttacgagcatggcaaattcccctgtggaagacggttcattattatc
+ggaaaccttatagaaattgcgtgttgactgaaattagatttttattgtaagagttgcatc
+tttgcgattcctctggtctagcttccaatgaacagtcctcccttctattcgacatcgggt
+ccttcgtacatgtctttgcgatgtaataattaggttcggagtgtggccttaatgggtgca
+actaggaatacaacgcaaatttgctgacatgatagcaaatcggtatgccggcaccaaaac
+gtgctccttgcttagcttgtgaatgagactcagtagttaaataaatccatatctgcaatc
+gattccacaggtattgtccactatctttgaactactctaagagatacaagcttagctgag
+accgaggtgtatatgactacgctgatatctgtaaggtaccaatgcaggcaaagtatgcga
+gaagctaataccggctgtttccagctttataagattaaaatttggctgtcctggcggcct
+cagaattgttctatcgtaatcagttggttcattaattagctaagtacgaggtacaactta
+tctgtcccagaacagctccacaagtttttttacagccgaaacccctgtgtgaatcttaat
+atccaagcgcgttatctgattagagtttacaactcagtattttatcagtacgttttgttt
+ccaacattacccggtatgacaaaatgacgccacgtgtcgaataatggtctgaccaatgta
+ggaagtgaaaagataaatat
diff --git a/gcc/testsuite/go.test/test/bench/shootout/fasta.c b/gcc/testsuite/go.test/test/bench/shootout/fasta.c
new file mode 100644 (file)
index 0000000..64c1c52
--- /dev/null
@@ -0,0 +1,219 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/*
+ * http://shootout.alioth.debian.org/u32/program.php?test=fasta&lang=gcc&id=3
+ */
+
+/*  The Computer Language Benchmarks Game
+ *  http://shootout.alioth.debian.org/
+ *
+ *  contributed by Petr Prokhorenkov
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifndef fwrite_unlocked
+// not available on OS X 
+#define fwrite_unlocked fwrite
+#define fputc_unlocked fputc
+#define fputs_unlocked fputs
+#endif
+
+#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))
+#define unlikely(x) __builtin_expect((x), 0)
+
+#define IM 139968
+#define IA 3877
+#define IC 29573
+
+#define LINE_LEN 60
+#define LOOKUP_SIZE 4096
+#define LOOKUP_SCALE ((float)(LOOKUP_SIZE - 1))
+
+typedef unsigned random_t;
+
+void
+random_init(random_t *random) {
+    *random = 42;
+}
+
+// Special version with result rescaled to LOOKUP_SCALE.
+static inline
+float
+random_next_lookup(random_t *random) {
+    *random = (*random*IA + IC)%IM;
+
+    return (*random)*(LOOKUP_SCALE/IM);
+}
+
+struct amino_acid {
+   char sym;
+   float prob;
+   float cprob_lookup;
+};
+
+void
+repeat(const char *alu, const char *title, int n) {
+    int len = strlen(alu);
+    char buffer[len + LINE_LEN];
+    int pos = 0;
+
+    memcpy(buffer, alu, len);
+    memcpy(buffer + len, alu, LINE_LEN);
+
+    fputs_unlocked(title, stdout);
+    while (n > 0) {
+        int bytes = n > LINE_LEN ? LINE_LEN : n;
+
+        fwrite_unlocked(buffer + pos, bytes, 1, stdout);
+        pos += bytes;
+        if (pos > len) {
+            pos -= len;
+        }
+        fputc_unlocked('\n', stdout);
+        n -= bytes;
+    }
+}
+
+/*
+ * Lookup table contains mapping from real values to cumulative
+ * probabilities. Careful selection of table size allows lookup
+ * virtually in constant time.
+ *
+ * All cumulative probabilities are rescaled to LOOKUP_SCALE,
+ * this allows to save one multiplication operation on each iteration
+ * in randomize().
+ */
+
+void *
+fill_lookup(struct amino_acid **lookup, struct amino_acid *amino_acid, int amino_acid_size) {
+    float p = 0;
+    int i, j;
+
+    for (i = 0; i < amino_acid_size; i++) {
+        p += amino_acid[i].prob;
+        amino_acid[i].cprob_lookup = p*LOOKUP_SCALE;
+    }
+
+    // Prevent rounding error.
+    amino_acid[amino_acid_size - 1].cprob_lookup = LOOKUP_SIZE - 1;
+
+    for (i = 0, j = 0; i < LOOKUP_SIZE; i++) {
+        while (amino_acid[j].cprob_lookup < i) {
+            j++;
+        }
+        lookup[i] = &amino_acid[j];
+    }
+
+    return 0;
+}
+
+void
+randomize(struct amino_acid *amino_acid, int amino_acid_size,
+        const char *title, int n, random_t *rand) {
+    struct amino_acid *lookup[LOOKUP_SIZE];
+    char line_buffer[LINE_LEN + 1];
+    int i, j;
+
+    line_buffer[LINE_LEN] = '\n';
+
+    fill_lookup(lookup, amino_acid, amino_acid_size);
+
+    fputs_unlocked(title, stdout);
+
+    for (i = 0, j = 0; i < n; i++, j++) {
+        if (j == LINE_LEN) {
+            fwrite_unlocked(line_buffer, LINE_LEN + 1, 1, stdout);
+            j = 0;
+        }
+
+        float r = random_next_lookup(rand);
+        struct amino_acid *u = lookup[(short)r];
+        while (unlikely(u->cprob_lookup < r)) {
+            ++u;
+        }
+        line_buffer[j] = u->sym;
+    }
+    line_buffer[j] = '\n';
+    fwrite_unlocked(line_buffer, j + 1, 1, stdout);
+}
+
+struct amino_acid amino_acid[] = {
+   { 'a', 0.27 },
+   { 'c', 0.12 },
+   { 'g', 0.12 },
+   { 't', 0.27 },
+
+   { 'B', 0.02 },
+   { 'D', 0.02 },
+   { 'H', 0.02 },
+   { 'K', 0.02 },
+   { 'M', 0.02 },
+   { 'N', 0.02 },
+   { 'R', 0.02 },
+   { 'S', 0.02 },
+   { 'V', 0.02 },
+   { 'W', 0.02 },
+   { 'Y', 0.02 },
+};
+
+struct amino_acid homo_sapiens[] = {
+   { 'a', 0.3029549426680 },
+   { 'c', 0.1979883004921 },
+   { 'g', 0.1975473066391 },
+   { 't', 0.3015094502008 },
+};
+
+static const char alu[] =
+   "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTG"
+   "GGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGA"
+   "GACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAA"
+   "AATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT"
+   "CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAAC"
+   "CCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTG"
+   "CACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA";
+
+int
+main(int argc, const char **argv) {
+    int n = argc > 1 ? atoi( argv[1] ) : 512;
+    random_t rand;
+
+    random_init(&rand);
+
+    repeat(alu, ">ONE Homo sapiens alu\n", n*2);
+    randomize(amino_acid, ARRAY_SIZE(amino_acid),
+            ">TWO IUB ambiguity codes\n", n*3, &rand);
+    randomize(homo_sapiens, ARRAY_SIZE(homo_sapiens),
+            ">THREE Homo sapiens frequency\n", n*5, &rand);
+
+    return 0;
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/fasta.go b/gcc/testsuite/go.test/test/bench/shootout/fasta.go
new file mode 100644 (file)
index 0000000..17ff5da
--- /dev/null
@@ -0,0 +1,205 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by The Go Authors.
+ * Based on C program by by Petr Prokhorenkov.
+ */
+
+package main
+
+import (
+       "flag"
+       "os"
+)
+
+var out = make(buffer, 0, 32768)
+
+var n = flag.Int("n", 1000, "length of result")
+
+const Line = 60
+
+func Repeat(alu []byte, n int) {
+       buf := append(alu, alu...)
+       off := 0
+       for n > 0 {
+               m := n
+               if m > Line {
+                       m = Line
+               }
+               buf1 := out.NextWrite(m + 1)
+               copy(buf1, buf[off:])
+               buf1[m] = '\n'
+               if off += m; off >= len(alu) {
+                       off -= len(alu)
+               }
+               n -= m
+       }
+}
+
+const (
+       IM = 139968
+       IA = 3877
+       IC = 29573
+
+       LookupSize          = 4096
+       LookupScale float64 = LookupSize - 1
+)
+
+var rand uint32 = 42
+
+type Acid struct {
+       sym   byte
+       prob  float64
+       cprob float64
+       next  *Acid
+}
+
+func computeLookup(acid []Acid) *[LookupSize]*Acid {
+       var lookup [LookupSize]*Acid
+       var p float64
+       for i := range acid {
+               p += acid[i].prob
+               acid[i].cprob = p * LookupScale
+               if i > 0 {
+                       acid[i-1].next = &acid[i]
+               }
+       }
+       acid[len(acid)-1].cprob = 1.0 * LookupScale
+
+       j := 0
+       for i := range lookup {
+               for acid[j].cprob < float64(i) {
+                       j++
+               }
+               lookup[i] = &acid[j]
+       }
+
+       return &lookup
+}
+
+func Random(acid []Acid, n int) {
+       lookup := computeLookup(acid)
+       for n > 0 {
+               m := n
+               if m > Line {
+                       m = Line
+               }
+               buf := out.NextWrite(m + 1)
+               f := LookupScale / IM
+               myrand := rand
+               for i := 0; i < m; i++ {
+                       myrand = (myrand*IA + IC) % IM
+                       r := float64(int(myrand)) * f
+                       a := lookup[int(r)]
+                       for a.cprob < r {
+                               a = a.next
+                       }
+                       buf[i] = a.sym
+               }
+               rand = myrand
+               buf[m] = '\n'
+               n -= m
+       }
+}
+
+func main() {
+       defer out.Flush()
+
+       flag.Parse()
+
+       iub := []Acid{
+               {prob: 0.27, sym: 'a'},
+               {prob: 0.12, sym: 'c'},
+               {prob: 0.12, sym: 'g'},
+               {prob: 0.27, sym: 't'},
+               {prob: 0.02, sym: 'B'},
+               {prob: 0.02, sym: 'D'},
+               {prob: 0.02, sym: 'H'},
+               {prob: 0.02, sym: 'K'},
+               {prob: 0.02, sym: 'M'},
+               {prob: 0.02, sym: 'N'},
+               {prob: 0.02, sym: 'R'},
+               {prob: 0.02, sym: 'S'},
+               {prob: 0.02, sym: 'V'},
+               {prob: 0.02, sym: 'W'},
+               {prob: 0.02, sym: 'Y'},
+       }
+
+       homosapiens := []Acid{
+               {prob: 0.3029549426680, sym: 'a'},
+               {prob: 0.1979883004921, sym: 'c'},
+               {prob: 0.1975473066391, sym: 'g'},
+               {prob: 0.3015094502008, sym: 't'},
+       }
+
+       alu := []byte(
+               "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG" +
+                       "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA" +
+                       "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT" +
+                       "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA" +
+                       "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG" +
+                       "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC" +
+                       "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA")
+
+       out.WriteString(">ONE Homo sapiens alu\n")
+       Repeat(alu, 2**n)
+       out.WriteString(">TWO IUB ambiguity codes\n")
+       Random(iub, 3**n)
+       out.WriteString(">THREE Homo sapiens frequency\n")
+       Random(homosapiens, 5**n)
+}
+
+type buffer []byte
+
+func (b *buffer) Flush() {
+       p := *b
+       if len(p) > 0 {
+               os.Stdout.Write(p)
+       }
+       *b = p[0:0]
+}
+
+func (b *buffer) WriteString(s string) {
+       p := b.NextWrite(len(s))
+       copy(p, s)
+}
+
+func (b *buffer) NextWrite(n int) []byte {
+       p := *b
+       if len(p)+n > cap(p) {
+               b.Flush()
+               p = *b
+       }
+       out := p[len(p) : len(p)+n]
+       *b = p[:len(p)+n]
+       return out
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/fasta.txt b/gcc/testsuite/go.test/test/bench/shootout/fasta.txt
new file mode 100644 (file)
index 0000000..f1caba0
--- /dev/null
@@ -0,0 +1,171 @@
+>ONE Homo sapiens alu
+GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA
+TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT
+AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG
+GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG
+CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT
+GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA
+GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA
+TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG
+AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA
+GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT
+AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC
+AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG
+GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC
+CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG
+AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT
+TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA
+TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT
+GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG
+TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT
+CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG
+CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG
+TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA
+CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG
+AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG
+GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC
+TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA
+TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA
+GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT
+GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC
+ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT
+TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC
+CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG
+CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG
+GGCGACAGAGCGAGACTCCG
+>TWO IUB ambiguity codes
+cttBtatcatatgctaKggNcataaaSatgtaaaDcDRtBggDtctttataattcBgtcg
+tactDtDagcctatttSVHtHttKtgtHMaSattgWaHKHttttagacatWatgtRgaaa
+NtactMcSMtYtcMgRtacttctWBacgaaatatagScDtttgaagacacatagtVgYgt
+cattHWtMMWcStgttaggKtSgaYaaccWStcgBttgcgaMttBYatcWtgacaYcaga
+gtaBDtRacttttcWatMttDBcatWtatcttactaBgaYtcttgttttttttYaaScYa
+HgtgttNtSatcMtcVaaaStccRcctDaataataStcYtRDSaMtDttgttSagtRRca
+tttHatSttMtWgtcgtatSSagactYaaattcaMtWatttaSgYttaRgKaRtccactt
+tattRggaMcDaWaWagttttgacatgttctacaaaRaatataataaMttcgDacgaSSt
+acaStYRctVaNMtMgtaggcKatcttttattaaaaagVWaHKYagtttttatttaacct
+tacgtVtcVaattVMBcttaMtttaStgacttagattWWacVtgWYagWVRctDattBYt
+gtttaagaagattattgacVatMaacattVctgtBSgaVtgWWggaKHaatKWcBScSWa
+accRVacacaaactaccScattRatatKVtactatatttHttaagtttSKtRtacaaagt
+RDttcaaaaWgcacatWaDgtDKacgaacaattacaRNWaatHtttStgttattaaMtgt
+tgDcgtMgcatBtgcttcgcgaDWgagctgcgaggggVtaaScNatttacttaatgacag
+cccccacatYScaMgtaggtYaNgttctgaMaacNaMRaacaaacaKctacatagYWctg
+ttWaaataaaataRattagHacacaagcgKatacBttRttaagtatttccgatctHSaat
+actcNttMaagtattMtgRtgaMgcataatHcMtaBSaRattagttgatHtMttaaKagg
+YtaaBataSaVatactWtataVWgKgttaaaacagtgcgRatatacatVtHRtVYataSa
+KtWaStVcNKHKttactatccctcatgWHatWaRcttactaggatctataDtDHBttata
+aaaHgtacVtagaYttYaKcctattcttcttaataNDaaggaaaDYgcggctaaWSctBa
+aNtgctggMBaKctaMVKagBaactaWaDaMaccYVtNtaHtVWtKgRtcaaNtYaNacg
+gtttNattgVtttctgtBaWgtaattcaagtcaVWtactNggattctttaYtaaagccgc
+tcttagHVggaYtgtNcDaVagctctctKgacgtatagYcctRYHDtgBattDaaDgccK
+tcHaaStttMcctagtattgcRgWBaVatHaaaataYtgtttagMDMRtaataaggatMt
+ttctWgtNtgtgaaaaMaatatRtttMtDgHHtgtcattttcWattRSHcVagaagtacg
+ggtaKVattKYagactNaatgtttgKMMgYNtcccgSKttctaStatatNVataYHgtNa
+BKRgNacaactgatttcctttaNcgatttctctataScaHtataRagtcRVttacDSDtt
+aRtSatacHgtSKacYagttMHtWataggatgactNtatSaNctataVtttRNKtgRacc
+tttYtatgttactttttcctttaaacatacaHactMacacggtWataMtBVacRaSaatc
+cgtaBVttccagccBcttaRKtgtgcctttttRtgtcagcRttKtaaacKtaaatctcac
+aattgcaNtSBaaccgggttattaaBcKatDagttactcttcattVtttHaaggctKKga
+tacatcBggScagtVcacattttgaHaDSgHatRMaHWggtatatRgccDttcgtatcga
+aacaHtaagttaRatgaVacttagattVKtaaYttaaatcaNatccRttRRaMScNaaaD
+gttVHWgtcHaaHgacVaWtgttScactaagSgttatcttagggDtaccagWattWtRtg
+ttHWHacgattBtgVcaYatcggttgagKcWtKKcaVtgaYgWctgYggVctgtHgaNcV
+taBtWaaYatcDRaaRtSctgaHaYRttagatMatgcatttNattaDttaattgttctaa
+ccctcccctagaWBtttHtBccttagaVaatMcBHagaVcWcagBVttcBtaYMccagat
+gaaaaHctctaacgttagNWRtcggattNatcRaNHttcagtKttttgWatWttcSaNgg
+gaWtactKKMaacatKatacNattgctWtatctaVgagctatgtRaHtYcWcttagccaa
+tYttWttaWSSttaHcaaaaagVacVgtaVaRMgattaVcDactttcHHggHRtgNcctt
+tYatcatKgctcctctatVcaaaaKaaaagtatatctgMtWtaaaacaStttMtcgactt
+taSatcgDataaactaaacaagtaaVctaggaSccaatMVtaaSKNVattttgHccatca
+cBVctgcaVatVttRtactgtVcaattHgtaaattaaattttYtatattaaRSgYtgBag
+aHSBDgtagcacRHtYcBgtcacttacactaYcgctWtattgSHtSatcataaatataHt
+cgtYaaMNgBaatttaRgaMaatatttBtttaaaHHKaatctgatWatYaacttMctctt
+ttVctagctDaaagtaVaKaKRtaacBgtatccaaccactHHaagaagaaggaNaaatBW
+attccgStaMSaMatBttgcatgRSacgttVVtaaDMtcSgVatWcaSatcttttVatag
+ttactttacgatcaccNtaDVgSRcgVcgtgaacgaNtaNatatagtHtMgtHcMtagaa
+attBgtataRaaaacaYKgtRccYtatgaagtaataKgtaaMttgaaRVatgcagaKStc
+tHNaaatctBBtcttaYaBWHgtVtgacagcaRcataWctcaBcYacYgatDgtDHccta
+>THREE Homo sapiens frequency
+aacacttcaccaggtatcgtgaaggctcaagattacccagagaacctttgcaatataaga
+atatgtatgcagcattaccctaagtaattatattctttttctgactcaaagtgacaagcc
+ctagtgtatattaaatcggtatatttgggaaattcctcaaactatcctaatcaggtagcc
+atgaaagtgatcaaaaaagttcgtacttataccatacatgaattctggccaagtaaaaaa
+tagattgcgcaaaattcgtaccttaagtctctcgccaagatattaggatcctattactca
+tatcgtgtttttctttattgccgccatccccggagtatctcacccatccttctcttaaag
+gcctaatattacctatgcaaataaacatatattgttgaaaattgagaacctgatcgtgat
+tcttatgtgtaccatatgtatagtaatcacgcgactatatagtgctttagtatcgcccgt
+gggtgagtgaatattctgggctagcgtgagatagtttcttgtcctaatatttttcagatc
+gaatagcttctatttttgtgtttattgacatatgtcgaaactccttactcagtgaaagtc
+atgaccagatccacgaacaatcttcggaatcagtctcgttttacggcggaatcttgagtc
+taacttatatcccgtcgcttactttctaacaccccttatgtatttttaaaattacgttta
+ttcgaacgtacttggcggaagcgttattttttgaagtaagttacattgggcagactcttg
+acattttcgatacgactttctttcatccatcacaggactcgttcgtattgatatcagaag
+ctcgtgatgattagttgtcttctttaccaatactttgaggcctattctgcgaaatttttg
+ttgccctgcgaacttcacataccaaggaacacctcgcaacatgccttcatatccatcgtt
+cattgtaattcttacacaatgaatcctaagtaattacatccctgcgtaaaagatggtagg
+ggcactgaggatatattaccaagcatttagttatgagtaatcagcaatgtttcttgtatt
+aagttctctaaaatagttacatcgtaatgttatctcgggttccgcgaataaacgagatag
+attcattatatatggccctaagcaaaaacctcctcgtattctgttggtaattagaatcac
+acaatacgggttgagatattaattatttgtagtacgaagagatataaaaagatgaacaat
+tactcaagtcaagatgtatacgggatttataataaaaatcgggtagagatctgctttgca
+attcagacgtgccactaaatcgtaatatgtcgcgttacatcagaaagggtaactattatt
+aattaataaagggcttaatcactacatattagatcttatccgatagtcttatctattcgt
+tgtatttttaagcggttctaattcagtcattatatcagtgctccgagttctttattattg
+ttttaaggatgacaaaatgcctcttgttataacgctgggagaagcagactaagagtcgga
+gcagttggtagaatgaggctgcaaaagacggtctcgacgaatggacagactttactaaac
+caatgaaagacagaagtagagcaaagtctgaagtggtatcagcttaattatgacaaccct
+taatacttccctttcgccgaatactggcgtggaaaggttttaaaagtcgaagtagttaga
+ggcatctctcgctcataaataggtagactactcgcaatccaatgtgactatgtaatactg
+ggaacatcagtccgcgatgcagcgtgtttatcaaccgtccccactcgcctggggagacat
+gagaccacccccgtggggattattagtccgcagtaatcgactcttgacaatccttttcga
+ttatgtcatagcaatttacgacagttcagcgaagtgactactcggcgaaatggtattact
+aaagcattcgaacccacatgaatgtgattcttggcaatttctaatccactaaagcttttc
+cgttgaatctggttgtagatatttatataagttcactaattaagatcacggtagtatatt
+gatagtgatgtctttgcaagaggttggccgaggaatttacggattctctattgatacaat
+ttgtctggcttataactcttaaggctgaaccaggcgtttttagacgacttgatcagctgt
+tagaatggtttggactccctctttcatgtcagtaacatttcagccgttattgttacgata
+tgcttgaacaatattgatctaccacacacccatagtatattttataggtcatgctgttac
+ctacgagcatggtattccacttcccattcaatgagtattcaacatcactagcctcagaga
+tgatgacccacctctaataacgtcacgttgcggccatgtgaaacctgaacttgagtagac
+gatatcaagcgctttaaattgcatataacatttgagggtaaagctaagcggatgctttat
+ataatcaatactcaataataagatttgattgcattttagagttatgacacgacatagttc
+actaacgagttactattcccagatctagactgaagtactgatcgagacgatccttacgtc
+gatgatcgttagttatcgacttaggtcgggtctctagcggtattggtacttaaccggaca
+ctatactaataacccatgatcaaagcataacagaatacagacgataatttcgccaacata
+tatgtacagaccccaagcatgagaagctcattgaaagctatcattgaagtcccgctcaca
+atgtgtcttttccagacggtttaactggttcccgggagtcctggagtttcgacttacata
+aatggaaacaatgtattttgctaatttatctatagcgtcatttggaccaatacagaatat
+tatgttgcctagtaatccactataacccgcaagtgctgatagaaaatttttagacgattt
+ataaatgccccaagtatccctcccgtgaatcctccgttatactaattagtattcgttcat
+acgtataccgcgcatatatgaacatttggcgataaggcgcgtgaattgttacgtgacaga
+gatagcagtttcttgtgatatggttaacagacgtacatgaagggaaactttatatctata
+gtgatgcttccgtagaaataccgccactggtctgccaatgatgaagtatgtagctttagg
+tttgtactatgaggctttcgtttgtttgcagagtataacagttgcgagtgaaaaaccgac
+gaatttatactaatacgctttcactattggctacaaaatagggaagagtttcaatcatga
+gagggagtatatggatgctttgtagctaaaggtagaacgtatgtatatgctgccgttcat
+tcttgaaagatacataagcgataagttacgacaattataagcaacatccctaccttcgta
+acgatttcactgttactgcgcttgaaatacactatggggctattggcggagagaagcaga
+tcgcgccgagcatatacgagacctataatgttgatgatagagaaggcgtctgaattgata
+catcgaagtacactttctttcgtagtatctctcgtcctctttctatctccggacacaaga
+attaagttatatatatagagtcttaccaatcatgttgaatcctgattctcagagttcttt
+ggcgggccttgtgatgactgagaaacaatgcaatattgctccaaatttcctaagcaaatt
+ctcggttatgttatgttatcagcaaagcgttacgttatgttatttaaatctggaatgacg
+gagcgaagttcttatgtcggtgtgggaataattcttttgaagacagcactccttaaataa
+tatcgctccgtgtttgtatttatcgaatgggtctgtaaccttgcacaagcaaatcggtgg
+tgtatatatcggataacaattaatacgatgttcatagtgacagtatactgatcgagtcct
+ctaaagtcaattacctcacttaacaatctcattgatgttgtgtcattcccggtatcgccc
+gtagtatgtgctctgattgaccgagtgtgaaccaaggaacatctactaatgcctttgtta
+ggtaagatctctctgaattccttcgtgccaacttaaaacattatcaaaatttcttctact
+tggattaactacttttacgagcatggcaaattcccctgtggaagacggttcattattatc
+ggaaaccttatagaaattgcgtgttgactgaaattagatttttattgtaagagttgcatc
+tttgcgattcctctggtctagcttccaatgaacagtcctcccttctattcgacatcgggt
+ccttcgtacatgtctttgcgatgtaataattaggttcggagtgtggccttaatgggtgca
+actaggaatacaacgcaaatttgctgacatgatagcaaatcggtatgccggcaccaaaac
+gtgctccttgcttagcttgtgaatgagactcagtagttaaataaatccatatctgcaatc
+gattccacaggtattgtccactatctttgaactactctaagagatacaagcttagctgag
+accgaggtgtatatgactacgctgatatctgtaaggtaccaatgcaggcaaagtatgcga
+gaagctaataccggctgtttccagctttataagattaaaatttggctgtcctggcggcct
+cagaattgttctatcgtaatcagttggttcattaattagctaagtacgaggtacaactta
+tctgtcccagaacagctccacaagtttttttacagccgaaacccctgtgtgaatcttaat
+atccaagcgcgttatctgattagagtttacaactcagtattttatcagtacgttttgttt
+ccaacattacccggtatgacaaaatgacgccacgtgtcgaataatggtctgaccaatgta
+ggaagtgaaaagataaatat
diff --git a/gcc/testsuite/go.test/test/bench/shootout/k-nucleotide-parallel.go b/gcc/testsuite/go.test/test/bench/shootout/k-nucleotide-parallel.go
new file mode 100644 (file)
index 0000000..96c80d8
--- /dev/null
@@ -0,0 +1,157 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by The Go Authors.
+ */
+
+package main
+
+import (
+       "bufio"
+       "bytes"
+       "fmt"
+       "io/ioutil"
+       "os"
+       "runtime"
+       "sort"
+)
+
+func count(data string, n int) map[string]int {
+       counts := make(map[string]int)
+       top := len(data) - n
+       for i := 0; i <= top; i++ {
+               s := data[i : i+n]
+               counts[s]++
+       }
+       return counts
+}
+
+func countOne(data string, s string) int {
+       return count(data, len(s))[s]
+}
+
+type kNuc struct {
+       name  string
+       count int
+}
+
+type kNucArray []kNuc
+
+func (kn kNucArray) Len() int      { return len(kn) }
+func (kn kNucArray) Swap(i, j int) { kn[i], kn[j] = kn[j], kn[i] }
+func (kn kNucArray) Less(i, j int) bool {
+       if kn[i].count == kn[j].count {
+               return kn[i].name > kn[j].name // sort down
+       }
+       return kn[i].count > kn[j].count
+}
+
+func sortedArray(m map[string]int) kNucArray {
+       kn := make(kNucArray, len(m))
+       i := 0
+       for k, v := range m {
+               kn[i] = kNuc{k, v}
+               i++
+       }
+       sort.Sort(kn)
+       return kn
+}
+
+func printKnucs(a kNucArray) {
+       sum := 0
+       for _, kn := range a {
+               sum += kn.count
+       }
+       for _, kn := range a {
+               fmt.Printf("%s %.3f\n", kn.name, 100*float64(kn.count)/float64(sum))
+       }
+       fmt.Print("\n")
+}
+
+func main() {
+       runtime.GOMAXPROCS(4)
+       in := bufio.NewReader(os.Stdin)
+       three := []byte(">THREE ")
+       for {
+               line, err := in.ReadSlice('\n')
+               if err != nil {
+                       fmt.Fprintln(os.Stderr, "ReadLine err:", err)
+                       os.Exit(2)
+               }
+               if line[0] == '>' && bytes.Equal(line[0:len(three)], three) {
+                       break
+               }
+       }
+       data, err := ioutil.ReadAll(in)
+       if err != nil {
+               fmt.Fprintln(os.Stderr, "ReadAll err:", err)
+               os.Exit(2)
+       }
+       // delete the newlines and convert to upper case
+       j := 0
+       for i := 0; i < len(data); i++ {
+               if data[i] != '\n' {
+                       data[j] = data[i] &^ ' ' // upper case
+                       j++
+               }
+       }
+       str := string(data[0:j])
+
+       var arr1, arr2 kNucArray
+       countsdone := make(chan bool)
+       go func() {
+               arr1 = sortedArray(count(str, 1))
+               countsdone <- true
+       }()
+       go func() {
+               arr2 = sortedArray(count(str, 2))
+               countsdone <- true
+       }()
+
+       interests := []string{"GGT", "GGTA", "GGTATT", "GGTATTTTAATT", "GGTATTTTAATTTATAGT"}
+       results := make([]chan string, len(interests))
+       for i, s := range interests {
+               ch := make(chan string)
+               results[i] = ch
+               go func(result chan string, ss string) {
+                       result <- fmt.Sprintf("%d %s\n", countOne(str, ss), ss)
+               }(ch, s)
+       }
+       <-countsdone
+       <-countsdone
+       printKnucs(arr1)
+       printKnucs(arr2)
+       for _, rc := range results {
+               fmt.Print(<-rc)
+       }
+
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/k-nucleotide-parallel.txt b/gcc/testsuite/go.test/test/bench/shootout/k-nucleotide-parallel.txt
new file mode 100644 (file)
index 0000000..84169b8
--- /dev/null
@@ -0,0 +1,27 @@
+T 31.520
+A 29.600
+C 19.480
+G 19.400
+
+AT 9.922
+TT 9.602
+TA 9.402
+AA 8.402
+GA 6.321
+TC 6.301
+TG 6.201
+GT 6.041
+CT 5.961
+AG 5.841
+CA 5.461
+AC 5.441
+CC 4.041
+CG 4.021
+GC 3.701
+GG 3.341
+
+54 GGT
+24 GGTA
+4 GGTATT
+0 GGTATTTTAATT
+0 GGTATTTTAATTTATAGT
diff --git a/gcc/testsuite/go.test/test/bench/shootout/k-nucleotide.c b/gcc/testsuite/go.test/test/bench/shootout/k-nucleotide.c
new file mode 100644 (file)
index 0000000..3bace39
--- /dev/null
@@ -0,0 +1,228 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+#include <stdlib.h>
+#include <glib.h>
+
+typedef struct stat_s stat_t;
+struct stat_s
+{
+   const gchar *key;
+   long stat;
+};
+
+#define MAX_ELM (8192 / sizeof (stat_t))
+
+static int
+generate_frequencies (int fl, char *buffer, long buflen,
+                     GHashTable *ht, GTrashStack **ts, GPtrArray *roots, GStringChunk *sc)
+{
+   gchar *key;
+   long i;
+
+   if (fl > buflen) return 0;
+   if (fl == 0) return 0;
+
+   for (i = 0; i < buflen - fl + 1; ++i)
+     {
+       char nulled;
+       stat_t *stat;
+
+       nulled = buffer[i + fl];
+       buffer[i + fl] = '\0';
+
+       key = g_string_chunk_insert_const(sc, buffer + i);
+
+       stat = g_hash_table_lookup(ht, key);
+       if (!stat)
+         {
+            stat = g_trash_stack_pop(ts);
+            if (!stat)
+              {
+                 int j;
+
+                 stat = malloc(sizeof (stat_t) * MAX_ELM);
+                 g_ptr_array_add(roots, stat);
+
+                 for (j = 1; j < MAX_ELM; ++j)
+                   g_trash_stack_push(ts, stat + j);
+              }
+            stat->stat = 1;
+            stat->key = key;
+
+            g_hash_table_insert(ht, key, stat);
+         }
+       else
+         stat->stat++;
+
+       buffer[i + fl] = nulled;
+     }
+
+   return buflen - fl + 1;
+}
+
+static int
+cmp_func(gconstpointer a, gconstpointer b)
+{
+   const stat_t *left = a;
+   const stat_t *right = b;
+
+   return right->stat - left->stat;
+}
+
+static void
+sorted_list(gpointer key, gpointer value, gpointer user_data)
+{
+   stat_t *data = value;
+   GList **lst = user_data;
+
+   *lst = g_list_insert_sorted(*lst, data, cmp_func);
+}
+
+static void
+display_stat(gpointer data, gpointer user_data)
+{
+   long *total = user_data;
+   stat_t *st = data;
+
+   printf("%s %.3f\n", st->key, 100 * (float) st->stat / *total);
+}
+
+void
+write_frequencies (int fl, char *buffer, long buflen, GTrashStack **ts, GPtrArray *roots)
+{
+   GStringChunk *sc;
+   GHashTable *ht;
+   GList *lst;
+   long total;
+
+   ht = g_hash_table_new_full(g_str_hash, g_str_equal, NULL /* free key */, NULL /* free value */);
+   sc = g_string_chunk_new(buflen);
+   lst = NULL;
+
+   total = generate_frequencies (fl, buffer, buflen, ht, ts, roots, sc);
+
+   if (!total) goto on_error;
+
+   g_hash_table_foreach(ht, sorted_list, &lst);
+   g_list_foreach(lst, display_stat, &total);
+   g_list_free(lst);
+
+ on_error:
+   g_hash_table_destroy(ht);
+   g_string_chunk_free(sc);
+}
+
+void
+write_count (char *searchFor, char *buffer, long buflen, GTrashStack **ts, GPtrArray *roots)
+{
+   GStringChunk *sc;
+   GHashTable *ht;
+   stat_t *result;
+   GList *lst;
+   long total;
+   long fl;
+
+   fl = strlen(searchFor);
+
+   ht = g_hash_table_new_full(g_str_hash, g_str_equal, NULL /* free key */, NULL /* free value */);
+   sc = g_string_chunk_new(buflen);
+   lst = NULL;
+   result = NULL;
+
+   total = generate_frequencies (fl, buffer, buflen, ht, ts, roots, sc);
+
+   if (!total) goto on_error;
+
+   result = g_hash_table_lookup(ht, searchFor);
+
+ on_error:
+   printf("%ld\t%s\n", result ? result->stat : 0, searchFor);
+
+   g_hash_table_destroy(ht);
+   g_string_chunk_free(sc);
+}
+
+int
+main ()
+{
+   char buffer[4096];
+   GTrashStack *ts;
+   GPtrArray *roots;
+   GString *stuff;
+   gchar *s;
+   int len;
+
+   roots = g_ptr_array_new();
+   ts = NULL;
+
+   while (fgets(buffer, sizeof (buffer), stdin))
+     if (strncmp(buffer, ">THREE", 6) == 0)
+       break;
+
+   stuff = g_string_new(NULL);
+
+   while (fgets(buffer, sizeof (buffer), stdin))
+     {
+       size_t sz;
+
+       if (buffer[0] == '>')
+         break;
+
+       sz = strlen(buffer);
+       if (buffer[sz - 1] == '\n')
+         --sz;
+
+       stuff = g_string_append_len(stuff, buffer, sz);
+     }
+
+   stuff = g_string_ascii_up(stuff);
+   len = stuff->len;
+   s = g_string_free(stuff, FALSE);
+
+   write_frequencies(1, s, len, &ts, roots);
+   printf("\n");
+   write_frequencies(2, s, len, &ts, roots);
+   printf("\n");
+   write_count("GGT", s, len, &ts, roots);
+   write_count("GGTA", s, len, &ts, roots);
+   write_count("GGTATT", s, len, &ts, roots);
+   write_count("GGTATTTTAATT", s, len, &ts, roots);
+   write_count("GGTATTTTAATTTATAGT", s, len, &ts, roots);
+
+   free(s);
+
+   g_ptr_array_foreach(roots, free, NULL);
+   g_ptr_array_free(roots, TRUE);
+
+   return 0;
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/k-nucleotide.go b/gcc/testsuite/go.test/test/bench/shootout/k-nucleotide.go
new file mode 100644 (file)
index 0000000..fdc98ed
--- /dev/null
@@ -0,0 +1,140 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by The Go Authors.
+ */
+
+package main
+
+import (
+       "bufio"
+       "bytes"
+       "fmt"
+       "io/ioutil"
+       "os"
+       "sort"
+)
+
+var in *bufio.Reader
+
+func count(data string, n int) map[string]int {
+       counts := make(map[string]int)
+       top := len(data) - n
+       for i := 0; i <= top; i++ {
+               s := data[i : i+n]
+               counts[s]++
+       }
+       return counts
+}
+
+func countOne(data string, s string) int {
+       return count(data, len(s))[s]
+}
+
+type kNuc struct {
+       name  string
+       count int
+}
+
+type kNucArray []kNuc
+
+func (kn kNucArray) Len() int      { return len(kn) }
+func (kn kNucArray) Swap(i, j int) { kn[i], kn[j] = kn[j], kn[i] }
+func (kn kNucArray) Less(i, j int) bool {
+       if kn[i].count == kn[j].count {
+               return kn[i].name > kn[j].name // sort down
+       }
+       return kn[i].count > kn[j].count
+}
+
+func sortedArray(m map[string]int) kNucArray {
+       kn := make(kNucArray, len(m))
+       i := 0
+       for k, v := range m {
+               kn[i].name = k
+               kn[i].count = v
+               i++
+       }
+       sort.Sort(kn)
+       return kn
+}
+
+func print(m map[string]int) {
+       a := sortedArray(m)
+       sum := 0
+       for _, kn := range a {
+               sum += kn.count
+       }
+       for _, kn := range a {
+               fmt.Printf("%s %.3f\n", kn.name, 100*float64(kn.count)/float64(sum))
+       }
+}
+
+func main() {
+       in = bufio.NewReader(os.Stdin)
+       three := []byte(">THREE ")
+       for {
+               line, err := in.ReadSlice('\n')
+               if err != nil {
+                       fmt.Fprintln(os.Stderr, "ReadLine err:", err)
+                       os.Exit(2)
+               }
+               if line[0] == '>' && bytes.Equal(line[0:len(three)], three) {
+                       break
+               }
+       }
+       data, err := ioutil.ReadAll(in)
+       if err != nil {
+               fmt.Fprintln(os.Stderr, "ReadAll err:", err)
+               os.Exit(2)
+       }
+       // delete the newlines and convert to upper case
+       j := 0
+       for i := 0; i < len(data); i++ {
+               if data[i] != '\n' {
+                       data[j] = data[i] &^ ' ' // upper case
+                       j++
+               }
+       }
+       str := string(data[0:j])
+
+       print(count(str, 1))
+       fmt.Print("\n")
+
+       print(count(str, 2))
+       fmt.Print("\n")
+
+       interests := []string{"GGT", "GGTA", "GGTATT", "GGTATTTTAATT", "GGTATTTTAATTTATAGT"}
+       for _, s := range interests {
+               fmt.Printf("%d %s\n", countOne(str, s), s)
+       }
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/k-nucleotide.txt b/gcc/testsuite/go.test/test/bench/shootout/k-nucleotide.txt
new file mode 100644 (file)
index 0000000..84169b8
--- /dev/null
@@ -0,0 +1,27 @@
+T 31.520
+A 29.600
+C 19.480
+G 19.400
+
+AT 9.922
+TT 9.602
+TA 9.402
+AA 8.402
+GA 6.321
+TC 6.301
+TG 6.201
+GT 6.041
+CT 5.961
+AG 5.841
+CA 5.461
+AC 5.441
+CC 4.041
+CG 4.021
+GC 3.701
+GG 3.341
+
+54 GGT
+24 GGTA
+4 GGTATT
+0 GGTATTTTAATT
+0 GGTATTTTAATTTATAGT
diff --git a/gcc/testsuite/go.test/test/bench/shootout/mandelbrot.c b/gcc/testsuite/go.test/test/bench/shootout/mandelbrot.c
new file mode 100644 (file)
index 0000000..c177c08
--- /dev/null
@@ -0,0 +1,91 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Shootout
+   http://shootout.alioth.debian.org/
+
+   contributed by Greg Buchholz
+
+   for the debian (AMD) machine...
+   compile flags:  -O3 -ffast-math -march=athlon-xp -funroll-loops
+
+   for the gp4 (Intel) machine...
+   compile flags:  -O3 -ffast-math -march=pentium4 -funroll-loops
+*/
+
+#include<stdio.h>
+
+int main (int argc, char **argv)
+{
+    int w, h, bit_num = 0;
+    char byte_acc = 0;
+    int i, iter = 50;
+    double x, y, limit = 2.0;
+    double Zr, Zi, Cr, Ci, Tr, Ti;
+
+    w = h = atoi(argv[1]);
+
+    printf("P4\n%d %d\n",w,h);
+
+    for(y=0;y<h;++y)
+    {
+        for(x=0;x<w;++x)
+        {
+            Zr = Zi = Tr = Ti = 0.0;
+            Cr = (2.0*x/w - 1.5); Ci=(2.0*y/h - 1.0);
+
+            for (i=0;i<iter && (Tr+Ti <= limit*limit);++i)
+            {
+                Zi = 2.0*Zr*Zi + Ci;
+                Zr = Tr - Ti + Cr;
+                Tr = Zr * Zr;
+                Ti = Zi * Zi;
+            }
+
+            byte_acc <<= 1;
+            if(Tr+Ti <= limit*limit) byte_acc |= 0x01;
+
+            ++bit_num;
+
+            if(bit_num == 8)
+            {
+                putc(byte_acc,stdout);
+                byte_acc = 0;
+                bit_num = 0;
+            }
+            else if(x == w-1)
+            {
+                byte_acc <<= (8-w%8);
+                putc(byte_acc,stdout);
+                byte_acc = 0;
+                bit_num = 0;
+            }
+        }
+    }
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/mandelbrot.go b/gcc/testsuite/go.test/test/bench/shootout/mandelbrot.go
new file mode 100644 (file)
index 0000000..1f9fbfd
--- /dev/null
@@ -0,0 +1,95 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by The Go Authors.
+ * Based on mandelbrot.c contributed by Greg Buchholz
+ */
+
+package main
+
+import (
+       "bufio"
+       "flag"
+       "fmt"
+       "os"
+)
+
+var n = flag.Int("n", 200, "size")
+
+func main() {
+       flag.Parse()
+       out := bufio.NewWriter(os.Stdout)
+       defer out.Flush()
+
+       w := *n
+       h := *n
+       bit_num := 0
+       byte_acc := byte(0)
+       const Iter = 50
+       const Zero float64 = 0
+       const Limit = 2.0
+
+       fmt.Fprintf(out, "P4\n%d %d\n", w, h)
+
+       for y := 0; y < h; y++ {
+               for x := 0; x < w; x++ {
+                       Zr, Zi, Tr, Ti := Zero, Zero, Zero, Zero
+                       Cr := (2*float64(x)/float64(w) - 1.5)
+                       Ci := (2*float64(y)/float64(h) - 1.0)
+
+                       for i := 0; i < Iter && (Tr+Ti <= Limit*Limit); i++ {
+                               Zi = 2*Zr*Zi + Ci
+                               Zr = Tr - Ti + Cr
+                               Tr = Zr * Zr
+                               Ti = Zi * Zi
+                       }
+
+                       byte_acc <<= 1
+                       if Tr+Ti <= Limit*Limit {
+                               byte_acc |= 0x01
+                       }
+
+                       bit_num++
+
+                       if bit_num == 8 {
+                               out.WriteByte(byte_acc)
+                               byte_acc = 0
+                               bit_num = 0
+                       } else if x == w-1 {
+                               byte_acc <<= uint(8 - w%8)
+                               out.WriteByte(byte_acc)
+                               byte_acc = 0
+                               bit_num = 0
+                       }
+               }
+       }
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/mandelbrot.txt b/gcc/testsuite/go.test/test/bench/shootout/mandelbrot.txt
new file mode 100644 (file)
index 0000000..2f7bbbc
Binary files /dev/null and b/gcc/testsuite/go.test/test/bench/shootout/mandelbrot.txt differ
diff --git a/gcc/testsuite/go.test/test/bench/shootout/meteor-contest.c b/gcc/testsuite/go.test/test/bench/shootout/meteor-contest.c
new file mode 100644 (file)
index 0000000..19c4340
--- /dev/null
@@ -0,0 +1,626 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by Christian Vosteen
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#define TRUE 1
+#define FALSE 0
+
+/* The board is a 50 cell hexagonal pattern.  For    . . . . .
+ * maximum speed the board will be implemented as     . . . . .
+ * 50 bits, which will fit into a 64 bit long long   . . . . .
+ * int.                                               . . . . .
+ *                                                   . . . . .
+ * I will represent 0's as empty cells and 1's        . . . . .
+ * as full cells.                                    . . . . .
+ *                                                    . . . . .
+ *                                                   . . . . .
+ *                                                    . . . . .
+ */
+
+unsigned long long board = 0xFFFC000000000000ULL;
+
+/* The puzzle pieces must be specified by the path followed
+ * from one end to the other along 12 hexagonal directions.
+ *
+ *   Piece 0   Piece 1   Piece 2   Piece 3   Piece 4
+ *
+ *  O O O O    O   O O   O O O     O O O     O   O
+ *         O    O O           O       O       O O
+ *                           O         O         O
+ *
+ *   Piece 5   Piece 6   Piece 7   Piece 8   Piece 9
+ *
+ *    O O O     O O       O O     O O        O O O O
+ *       O O       O O       O       O O O        O
+ *                  O       O O
+ *
+ * I had to make it 12 directions because I wanted all of the
+ * piece definitions to fit into the same size arrays.  It is
+ * not possible to define piece 4 in terms of the 6 cardinal
+ * directions in 4 moves.
+ */
+
+#define E     0
+#define ESE   1
+#define SE    2
+#define S     3
+#define SW    4
+#define WSW   5
+#define W     6
+#define WNW   7
+#define NW    8
+#define N     9
+#define NE    10
+#define ENE   11
+#define PIVOT 12
+
+char piece_def[10][4] = {
+   {  E,  E,  E, SE},
+   { SE,  E, NE,  E},
+   {  E,  E, SE, SW},
+   {  E,  E, SW, SE},
+   { SE,  E, NE,  S},
+   {  E,  E, SW,  E},
+   {  E, SE, SE, NE},
+   {  E, SE, SE,  W},
+   {  E, SE,  E,  E},
+   {  E,  E,  E, SW}
+};
+
+
+/* To minimize the amount of work done in the recursive solve function below,
+ * I'm going to allocate enough space for all legal rotations of each piece
+ * at each position on the board. That's 10 pieces x 50 board positions x
+ * 12 rotations.  However, not all 12 rotations will fit on every cell, so
+ * I'll have to keep count of the actual number that do.
+ * The pieces are going to be unsigned long long ints just like the board so
+ * they can be bitwise-anded with the board to determine if they fit.
+ * I'm also going to record the next possible open cell for each piece and
+ * location to reduce the burden on the solve function.
+ */
+unsigned long long pieces[10][50][12];
+int piece_counts[10][50];
+char next_cell[10][50][12];
+
+/* Returns the direction rotated 60 degrees clockwise */
+char rotate(char dir) {
+   return (dir + 2) % PIVOT;
+}
+
+/* Returns the direction flipped on the horizontal axis */
+char flip(char dir) {
+   return (PIVOT - dir) % PIVOT;
+}
+
+
+/* Returns the new cell index from the specified cell in the
+ * specified direction.  The index is only valid if the
+ * starting cell and direction have been checked by the
+ * out_of_bounds function first.
+ */
+char shift(char cell, char dir) {
+   switch(dir) {
+      case E:
+         return cell + 1;
+      case ESE:
+         if((cell / 5) % 2)
+            return cell + 7;
+         else
+            return cell + 6;
+      case SE:
+         if((cell / 5) % 2)
+            return cell + 6;
+         else
+            return cell + 5;
+      case S:
+         return cell + 10;
+      case SW:
+         if((cell / 5) % 2)
+            return cell + 5;
+         else
+            return cell + 4;
+      case WSW:
+         if((cell / 5) % 2)
+            return cell + 4;
+         else
+            return cell + 3;
+      case W:
+         return cell - 1;
+      case WNW:
+         if((cell / 5) % 2)
+            return cell - 6;
+         else
+            return cell - 7;
+      case NW:
+         if((cell / 5) % 2)
+            return cell - 5;
+         else
+            return cell - 6;
+      case N:
+         return cell - 10;
+      case NE:
+         if((cell / 5) % 2)
+            return cell - 4;
+         else
+            return cell - 5;
+      case ENE:
+         if((cell / 5) % 2)
+            return cell - 3;
+         else
+            return cell - 4;
+      default:
+         return cell;
+   }
+}
+
+/* Returns wether the specified cell and direction will land outside
+ * of the board.  Used to determine if a piece is at a legal board
+ * location or not.
+ */
+char out_of_bounds(char cell, char dir) {
+   char i;
+   switch(dir) {
+      case E:
+         return cell % 5 == 4;
+      case ESE:
+         i = cell % 10;
+         return i == 4 || i == 8 || i == 9 || cell >= 45;
+      case SE:
+         return cell % 10 == 9 || cell >= 45;
+      case S:
+         return cell >= 40;
+      case SW:
+         return cell % 10 == 0 || cell >= 45;
+      case WSW:
+         i = cell % 10;
+         return i == 0 || i == 1 || i == 5 || cell >= 45;
+      case W:
+         return cell % 5 == 0;
+      case WNW:
+         i = cell % 10;
+         return i == 0 || i == 1 || i == 5 || cell < 5;
+      case NW:
+         return cell % 10 == 0 || cell < 5;
+      case N:
+         return cell < 10;
+      case NE:
+         return cell % 10 == 9 || cell < 5;
+      case ENE:
+         i = cell % 10;
+         return i == 4 || i == 8 || i == 9 || cell < 5;
+      default:
+         return FALSE;
+   }
+}
+
+/* Rotate a piece 60 degrees clockwise */
+void rotate_piece(int piece) {
+   int i;
+   for(i = 0; i < 4; i++)
+      piece_def[piece][i] = rotate(piece_def[piece][i]);
+}
+
+/* Flip a piece along the horizontal axis */
+void flip_piece(int piece) {
+   int i;
+   for(i = 0; i < 4; i++)
+      piece_def[piece][i] = flip(piece_def[piece][i]);
+}
+
+/* Convenience function to quickly calculate all of the indices for a piece */
+void calc_cell_indices(char *cell, int piece, char index) {
+   cell[0] = index;
+   cell[1] = shift(cell[0], piece_def[piece][0]);
+   cell[2] = shift(cell[1], piece_def[piece][1]);
+   cell[3] = shift(cell[2], piece_def[piece][2]);
+   cell[4] = shift(cell[3], piece_def[piece][3]);
+}
+
+/* Convenience function to quickly calculate if a piece fits on the board */
+int cells_fit_on_board(char *cell, int piece) {
+   return (!out_of_bounds(cell[0], piece_def[piece][0]) &&
+         !out_of_bounds(cell[1], piece_def[piece][1]) &&
+         !out_of_bounds(cell[2], piece_def[piece][2]) &&
+         !out_of_bounds(cell[3], piece_def[piece][3]));
+}
+
+/* Returns the lowest index of the cells of a piece.
+ * I use the lowest index that a piece occupies as the index for looking up
+ * the piece in the solve function.
+ */
+char minimum_of_cells(char *cell) {
+   char minimum = cell[0];
+   minimum = cell[1] < minimum ? cell[1] : minimum;
+   minimum = cell[2] < minimum ? cell[2] : minimum;
+   minimum = cell[3] < minimum ? cell[3] : minimum;
+   minimum = cell[4] < minimum ? cell[4] : minimum;
+   return minimum;
+}
+
+/* Calculate the lowest possible open cell if the piece is placed on the board.
+ * Used to later reduce the amount of time searching for open cells in the
+ * solve function.
+ */
+char first_empty_cell(char *cell, char minimum) {
+   char first_empty = minimum;
+   while(first_empty == cell[0] || first_empty == cell[1] ||
+         first_empty == cell[2] || first_empty == cell[3] ||
+         first_empty == cell[4])
+      first_empty++;
+   return first_empty;
+}
+
+/* Generate the unsigned long long int that will later be anded with the
+ * board to determine if it fits.
+ */
+unsigned long long bitmask_from_cells(char *cell) {
+   unsigned long long piece_mask = 0ULL;
+   int i;
+   for(i = 0; i < 5; i++)
+      piece_mask |= 1ULL << cell[i];
+   return piece_mask;
+}
+
+/* Record the piece and other important information in arrays that will
+ * later be used by the solve function.
+ */
+void record_piece(int piece, int minimum, char first_empty,
+      unsigned long long piece_mask) {
+   pieces[piece][minimum][piece_counts[piece][minimum]] = piece_mask;
+   next_cell[piece][minimum][piece_counts[piece][minimum]] = first_empty;
+   piece_counts[piece][minimum]++;
+}
+
+
+/* Fill the entire board going cell by cell.  If any cells are "trapped"
+ * they will be left alone.
+ */
+void fill_contiguous_space(char *board, int index) {
+   if(board[index] == 1)
+      return;
+   board[index] = 1;
+   if(!out_of_bounds(index, E))
+      fill_contiguous_space(board, shift(index, E));
+   if(!out_of_bounds(index, SE))
+      fill_contiguous_space(board, shift(index, SE));
+   if(!out_of_bounds(index, SW))
+      fill_contiguous_space(board, shift(index, SW));
+   if(!out_of_bounds(index, W))
+      fill_contiguous_space(board, shift(index, W));
+   if(!out_of_bounds(index, NW))
+      fill_contiguous_space(board, shift(index, NW));
+   if(!out_of_bounds(index, NE))
+      fill_contiguous_space(board, shift(index, NE));
+}
+
+
+/* To thin the number of pieces, I calculate if any of them trap any empty
+ * cells at the edges.  There are only a handful of exceptions where the
+ * the board can be solved with the trapped cells.  For example:  piece 8 can
+ * trap 5 cells in the corner, but piece 3 can fit in those cells, or piece 0
+ * can split the board in half where both halves are viable.
+ */
+int has_island(char *cell, int piece) {
+   char temp_board[50];
+   char c;
+   int i;
+   for(i = 0; i < 50; i++)
+      temp_board[i] = 0;
+   for(i = 0; i < 5; i++)
+      temp_board[((int)cell[i])] = 1;
+   i = 49;
+   while(temp_board[i] == 1)
+      i--;
+   fill_contiguous_space(temp_board, i);
+   c = 0;
+   for(i = 0; i < 50; i++)
+      if(temp_board[i] == 0)
+         c++;
+   if(c == 0 || (c == 5 && piece == 8) || (c == 40 && piece == 8) ||
+         (c % 5 == 0 && piece == 0))
+      return FALSE;
+   else
+      return TRUE;
+}
+
+
+/* Calculate all six rotations of the specified piece at the specified index.
+ * We calculate only half of piece 3's rotations.  This is because any solution
+ * found has an identical solution rotated 180 degrees.  Thus we can reduce the
+ * number of attempted pieces in the solve algorithm by not including the 180-
+ * degree-rotated pieces of ONE of the pieces.  I chose piece 3 because it gave
+ * me the best time ;)
+ */
+ void calc_six_rotations(char piece, char index) {
+   char rotation, cell[5];
+   char minimum, first_empty;
+   unsigned long long piece_mask;
+
+   for(rotation = 0; rotation < 6; rotation++) {
+      if(piece != 3 || rotation < 3) {
+         calc_cell_indices(cell, piece, index);
+         if(cells_fit_on_board(cell, piece) && !has_island(cell, piece)) {
+            minimum = minimum_of_cells(cell);
+            first_empty = first_empty_cell(cell, minimum);
+            piece_mask = bitmask_from_cells(cell);
+            record_piece(piece, minimum, first_empty, piece_mask);
+         }
+      }
+      rotate_piece(piece);
+   }
+}
+
+/* Calculate every legal rotation for each piece at each board location. */
+void calc_pieces(void) {
+   char piece, index;
+
+   for(piece = 0; piece < 10; piece++) {
+      for(index = 0; index < 50; index++) {
+         calc_six_rotations(piece, index);
+         flip_piece(piece);
+         calc_six_rotations(piece, index);
+      }
+   }
+}
+
+
+
+/* Calculate all 32 possible states for a 5-bit row and all rows that will
+ * create islands that follow any of the 32 possible rows.  These pre-
+ * calculated 5-bit rows will be used to find islands in a partially solved
+ * board in the solve function.
+ */
+#define ROW_MASK 0x1F
+#define TRIPLE_MASK 0x7FFF
+char all_rows[32] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+      17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31};
+int bad_even_rows[32][32];
+int bad_odd_rows[32][32];
+int bad_even_triple[32768];
+int bad_odd_triple[32768];
+
+int rows_bad(char row1, char row2, int even) {
+   /* even is referring to row1 */
+   int i, in_zeroes, group_okay;
+   char block, row2_shift;
+   /* Test for blockages at same index and shifted index */
+   if(even)
+      row2_shift = ((row2 << 1) & ROW_MASK) | 0x01;
+   else
+      row2_shift = (row2 >> 1) | 0x10;
+   block = ((row1 ^ row2) & row2) & ((row1 ^ row2_shift) & row2_shift);
+   /* Test for groups of 0's */
+   in_zeroes = FALSE;
+   group_okay = FALSE;
+   for(i = 0; i < 5; i++) {
+      if(row1 & (1 << i)) {
+         if(in_zeroes) {
+            if(!group_okay)
+               return TRUE;
+            in_zeroes = FALSE;
+            group_okay = FALSE;
+         }
+      } else {
+         if(!in_zeroes)
+            in_zeroes = TRUE;
+         if(!(block & (1 << i)))
+            group_okay = TRUE;
+      }
+   }
+   if(in_zeroes)
+      return !group_okay;
+   else
+      return FALSE;
+}
+
+/* Check for cases where three rows checked sequentially cause a false
+ * positive.  One scenario is when 5 cells may be surrounded where piece 5
+ * or 7 can fit.  The other scenario is when piece 2 creates a hook shape.
+ */
+int triple_is_okay(char row1, char row2, char row3, int even) {
+   if(even) {
+      /* There are four cases:
+       * row1: 00011  00001  11001  10101
+       * row2: 01011  00101  10001  10001
+       * row3: 011??  00110  ?????  ?????
+       */
+      return ((row1 == 0x03) && (row2 == 0x0B) && ((row3 & 0x1C) == 0x0C)) ||
+            ((row1 == 0x01) && (row2 == 0x05) && (row3 == 0x06)) ||
+            ((row1 == 0x19) && (row2 == 0x11)) ||
+            ((row1 == 0x15) && (row2 == 0x11));
+   } else {
+      /* There are two cases:
+       * row1: 10011  10101
+       * row2: 10001  10001
+       * row3: ?????  ?????
+       */
+      return ((row1 == 0x13) && (row2 == 0x11)) ||
+            ((row1 == 0x15) && (row2 == 0x11));
+   }
+}
+
+
+void calc_rows(void) {
+   int row1, row2, row3;
+   int result1, result2;
+   for(row1 = 0; row1 < 32; row1++) {
+      for(row2 = 0; row2 < 32; row2++) {
+         bad_even_rows[row1][row2] = rows_bad(row1, row2, TRUE);
+         bad_odd_rows[row1][row2] = rows_bad(row1, row2, FALSE);
+      }
+   }
+   for(row1 = 0; row1 < 32; row1++) {
+      for(row2 = 0; row2 < 32; row2++) {
+         for(row3 = 0; row3 < 32; row3++) {
+            result1 = bad_even_rows[row1][row2];
+            result2 = bad_odd_rows[row2][row3];
+            if(result1 == FALSE && result2 == TRUE
+                  && triple_is_okay(row1, row2, row3, TRUE))
+               bad_even_triple[row1+(row2*32)+(row3*1024)] = FALSE;
+            else
+               bad_even_triple[row1+(row2*32)+(row3*1024)] = result1 || result2;
+
+            result1 = bad_odd_rows[row1][row2];
+            result2 = bad_even_rows[row2][row3];
+            if(result1 == FALSE && result2 == TRUE
+                  && triple_is_okay(row1, row2, row3, FALSE))
+               bad_odd_triple[row1+(row2*32)+(row3*1024)] = FALSE;
+            else
+               bad_odd_triple[row1+(row2*32)+(row3*1024)] = result1 || result2;
+         }
+      }
+   }
+}
+
+
+
+/* Calculate islands while solving the board.
+ */
+int boardHasIslands(char cell) {
+   /* Too low on board, don't bother checking */
+   if(cell >= 40)
+      return FALSE;
+   int current_triple = (board >> ((cell / 5) * 5)) & TRIPLE_MASK;
+   if((cell / 5) % 2)
+      return bad_odd_triple[current_triple];
+   else
+      return bad_even_triple[current_triple];
+}
+
+
+/* The recursive solve algorithm.  Try to place each permutation in the upper-
+ * leftmost empty cell.  Mark off available pieces as it goes along.
+ * Because the board is a bit mask, the piece number and bit mask must be saved
+ * at each successful piece placement.  This data is used to create a 50 char
+ * array if a solution is found.
+ */
+short avail = 0x03FF;
+char sol_nums[10];
+unsigned long long sol_masks[10];
+signed char solutions[2100][50];
+int solution_count = 0;
+int max_solutions = 2100;
+
+void record_solution(void) {
+   int sol_no, index;
+   unsigned long long sol_mask;
+   for(sol_no = 0; sol_no < 10; sol_no++) {
+      sol_mask = sol_masks[sol_no];
+      for(index = 0; index < 50; index++) {
+         if(sol_mask & 1ULL) {
+            solutions[solution_count][index] = sol_nums[sol_no];
+            /* Board rotated 180 degrees is a solution too! */
+            solutions[solution_count+1][49-index] = sol_nums[sol_no];
+         }
+         sol_mask = sol_mask >> 1;
+      }
+   }
+   solution_count += 2;
+}
+
+void solve(int depth, int cell) {
+   int piece, rotation, max_rots;
+   unsigned long long *piece_mask;
+   short piece_no_mask;
+
+   if(solution_count >= max_solutions)
+      return;
+
+   while(board & (1ULL << cell))
+      cell++;
+
+   for(piece = 0; piece < 10; piece++) {
+      piece_no_mask = 1 << piece;
+      if(!(avail & piece_no_mask))
+         continue;
+      avail ^= piece_no_mask;
+      max_rots = piece_counts[piece][cell];
+      piece_mask = pieces[piece][cell];
+      for(rotation = 0; rotation < max_rots; rotation++) {
+         if(!(board & *(piece_mask + rotation))) {
+            sol_nums[depth] = piece;
+            sol_masks[depth] = *(piece_mask + rotation);
+            if(depth == 9) {
+               /* Solution found!!!!!11!!ONE! */
+               record_solution();
+               avail ^= piece_no_mask;
+               return;
+            }
+            board |= *(piece_mask + rotation);
+            if(!boardHasIslands(next_cell[piece][cell][rotation]))
+               solve(depth + 1, next_cell[piece][cell][rotation]);
+            board ^= *(piece_mask + rotation);
+         }
+      }
+      avail ^= piece_no_mask;
+   }
+}
+
+
+/* qsort comparator - used to find first and last solutions */
+int solution_sort(const void *elem1, const void *elem2) {
+   signed char *char1 = (signed char *) elem1;
+   signed char *char2 = (signed char *) elem2;
+   int i = 0;
+   while(i < 50 && char1[i] == char2[i])
+      i++;
+   return char1[i] - char2[i];
+}
+
+
+/* pretty print a board in the specified hexagonal format */
+void pretty(signed char *b) {
+   int i;
+   for(i = 0; i < 50; i += 10) {
+      printf("%c %c %c %c %c \n %c %c %c %c %c \n", b[i]+'0', b[i+1]+'0',
+            b[i+2]+'0', b[i+3]+'0', b[i+4]+'0', b[i+5]+'0', b[i+6]+'0',
+            b[i+7]+'0', b[i+8]+'0', b[i+9]+'0');
+   }
+   printf("\n");
+}
+
+int main(int argc, char **argv) {
+   if(argc > 1)
+      max_solutions = atoi(argv[1]);
+   calc_pieces();
+   calc_rows();
+   solve(0, 0);
+   printf("%d solutions found\n\n", solution_count);
+   qsort(solutions, solution_count, 50 * sizeof(signed char), solution_sort);
+   pretty(solutions[0]);
+   pretty(solutions[solution_count-1]);
+   return 0;
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/meteor-contest.go b/gcc/testsuite/go.test/test/bench/shootout/meteor-contest.go
new file mode 100644 (file)
index 0000000..34a4e23
--- /dev/null
@@ -0,0 +1,656 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by The Go Authors.
+ * based on meteor-contest.c by Christian Vosteen
+ */
+
+package main
+
+import (
+       "flag"
+       "fmt"
+)
+
+var max_solutions = flag.Int("n", 2100, "maximum number of solutions")
+
+func boolInt(b bool) int8 {
+       if b {
+               return 1
+       }
+       return 0
+}
+
+/* The board is a 50 cell hexagonal pattern.  For    . . . . .
+ * maximum speed the board will be implemented as     . . . . .
+ * 50 bits, which will fit into a 64 bit long long   . . . . .
+ * int.                                               . . . . .
+ *                                                   . . . . .
+ * I will represent 0's as empty cells and 1's        . . . . .
+ * as full cells.                                    . . . . .
+ *                                                    . . . . .
+ *                                                   . . . . .
+ *                                                    . . . . .
+ */
+
+var board uint64 = 0xFFFC000000000000
+
+/* The puzzle pieces must be specified by the path followed
+ * from one end to the other along 12 hexagonal directions.
+ *
+ *   Piece 0   Piece 1   Piece 2   Piece 3   Piece 4
+ *
+ *  O O O O    O   O O   O O O     O O O     O   O
+ *         O    O O           O       O       O O
+ *                           O         O         O
+ *
+ *   Piece 5   Piece 6   Piece 7   Piece 8   Piece 9
+ *
+ *    O O O     O O       O O     O O        O O O O
+ *       O O       O O       O       O O O        O
+ *                  O       O O
+ *
+ * I had to make it 12 directions because I wanted all of the
+ * piece definitions to fit into the same size arrays.  It is
+ * not possible to define piece 4 in terms of the 6 cardinal
+ * directions in 4 moves.
+ */
+
+const (
+       E = iota
+       ESE
+       SE
+       S
+       SW
+       WSW
+       W
+       WNW
+       NW
+       N
+       NE
+       ENE
+       PIVOT
+)
+
+var piece_def = [10][4]int8{
+       [4]int8{E, E, E, SE},
+       [4]int8{SE, E, NE, E},
+       [4]int8{E, E, SE, SW},
+       [4]int8{E, E, SW, SE},
+       [4]int8{SE, E, NE, S},
+       [4]int8{E, E, SW, E},
+       [4]int8{E, SE, SE, NE},
+       [4]int8{E, SE, SE, W},
+       [4]int8{E, SE, E, E},
+       [4]int8{E, E, E, SW},
+}
+
+/* To minimize the amount of work done in the recursive solve function below,
+ * I'm going to allocate enough space for all legal rotations of each piece
+ * at each position on the board. That's 10 pieces x 50 board positions x
+ * 12 rotations.  However, not all 12 rotations will fit on every cell, so
+ * I'll have to keep count of the actual number that do.
+ * The pieces are going to be unsigned long long ints just like the board so
+ * they can be bitwise-anded with the board to determine if they fit.
+ * I'm also going to record the next possible open cell for each piece and
+ * location to reduce the burden on the solve function.
+ */
+var (
+       pieces       [10][50][12]uint64
+       piece_counts [10][50]int
+       next_cell    [10][50][12]int8
+)
+
+/* Returns the direction rotated 60 degrees clockwise */
+func rotate(dir int8) int8 { return (dir + 2) % PIVOT }
+
+/* Returns the direction flipped on the horizontal axis */
+func flip(dir int8) int8 { return (PIVOT - dir) % PIVOT }
+
+/* Returns the new cell index from the specified cell in the
+ * specified direction.  The index is only valid if the
+ * starting cell and direction have been checked by the
+ * out_of_bounds function first.
+ */
+func shift(cell, dir int8) int8 {
+       switch dir {
+       case E:
+               return cell + 1
+       case ESE:
+               if ((cell / 5) % 2) != 0 {
+                       return cell + 7
+               } else {
+                       return cell + 6
+               }
+       case SE:
+               if ((cell / 5) % 2) != 0 {
+                       return cell + 6
+               } else {
+                       return cell + 5
+               }
+       case S:
+               return cell + 10
+       case SW:
+               if ((cell / 5) % 2) != 0 {
+                       return cell + 5
+               } else {
+                       return cell + 4
+               }
+       case WSW:
+               if ((cell / 5) % 2) != 0 {
+                       return cell + 4
+               } else {
+                       return cell + 3
+               }
+       case W:
+               return cell - 1
+       case WNW:
+               if ((cell / 5) % 2) != 0 {
+                       return cell - 6
+               } else {
+                       return cell - 7
+               }
+       case NW:
+               if ((cell / 5) % 2) != 0 {
+                       return cell - 5
+               } else {
+                       return cell - 6
+               }
+       case N:
+               return cell - 10
+       case NE:
+               if ((cell / 5) % 2) != 0 {
+                       return cell - 4
+               } else {
+                       return cell - 5
+               }
+       case ENE:
+               if ((cell / 5) % 2) != 0 {
+                       return cell - 3
+               } else {
+                       return cell - 4
+               }
+       }
+       return cell
+}
+
+/* Returns wether the specified cell and direction will land outside
+ * of the board.  Used to determine if a piece is at a legal board
+ * location or not.
+ */
+func out_of_bounds(cell, dir int8) bool {
+       switch dir {
+       case E:
+               return cell%5 == 4
+       case ESE:
+               i := cell % 10
+               return i == 4 || i == 8 || i == 9 || cell >= 45
+       case SE:
+               return cell%10 == 9 || cell >= 45
+       case S:
+               return cell >= 40
+       case SW:
+               return cell%10 == 0 || cell >= 45
+       case WSW:
+               i := cell % 10
+               return i == 0 || i == 1 || i == 5 || cell >= 45
+       case W:
+               return cell%5 == 0
+       case WNW:
+               i := cell % 10
+               return i == 0 || i == 1 || i == 5 || cell < 5
+       case NW:
+               return cell%10 == 0 || cell < 5
+       case N:
+               return cell < 10
+       case NE:
+               return cell%10 == 9 || cell < 5
+       case ENE:
+               i := cell % 10
+               return i == 4 || i == 8 || i == 9 || cell < 5
+       }
+       return false
+}
+
+/* Rotate a piece 60 degrees clockwise */
+func rotate_piece(piece int) {
+       for i := 0; i < 4; i++ {
+               piece_def[piece][i] = rotate(piece_def[piece][i])
+       }
+}
+
+/* Flip a piece along the horizontal axis */
+func flip_piece(piece int) {
+       for i := 0; i < 4; i++ {
+               piece_def[piece][i] = flip(piece_def[piece][i])
+       }
+}
+
+/* Convenience function to quickly calculate all of the indices for a piece */
+func calc_cell_indices(cell []int8, piece int, index int8) {
+       cell[0] = index
+       for i := 1; i < 5; i++ {
+               cell[i] = shift(cell[i-1], piece_def[piece][i-1])
+       }
+}
+
+/* Convenience function to quickly calculate if a piece fits on the board */
+func cells_fit_on_board(cell []int8, piece int) bool {
+       return !out_of_bounds(cell[0], piece_def[piece][0]) &&
+               !out_of_bounds(cell[1], piece_def[piece][1]) &&
+               !out_of_bounds(cell[2], piece_def[piece][2]) &&
+               !out_of_bounds(cell[3], piece_def[piece][3])
+}
+
+/* Returns the lowest index of the cells of a piece.
+ * I use the lowest index that a piece occupies as the index for looking up
+ * the piece in the solve function.
+ */
+func minimum_of_cells(cell []int8) int8 {
+       minimum := cell[0]
+       for i := 1; i < 5; i++ {
+               if cell[i] < minimum {
+                       minimum = cell[i]
+               }
+       }
+       return minimum
+}
+
+/* Calculate the lowest possible open cell if the piece is placed on the board.
+ * Used to later reduce the amount of time searching for open cells in the
+ * solve function.
+ */
+func first_empty_cell(cell []int8, minimum int8) int8 {
+       first_empty := minimum
+       for first_empty == cell[0] || first_empty == cell[1] ||
+               first_empty == cell[2] || first_empty == cell[3] ||
+               first_empty == cell[4] {
+               first_empty++
+       }
+       return first_empty
+}
+
+/* Generate the unsigned long long int that will later be anded with the
+ * board to determine if it fits.
+ */
+func bitmask_from_cells(cell []int8) uint64 {
+       var piece_mask uint64
+       for i := 0; i < 5; i++ {
+               piece_mask |= 1 << uint(cell[i])
+       }
+       return piece_mask
+}
+
+/* Record the piece and other important information in arrays that will
+ * later be used by the solve function.
+ */
+func record_piece(piece int, minimum int8, first_empty int8, piece_mask uint64) {
+       pieces[piece][minimum][piece_counts[piece][minimum]] = piece_mask
+       next_cell[piece][minimum][piece_counts[piece][minimum]] = first_empty
+       piece_counts[piece][minimum]++
+}
+
+/* Fill the entire board going cell by cell.  If any cells are "trapped"
+ * they will be left alone.
+ */
+func fill_contiguous_space(board []int8, index int8) {
+       if board[index] == 1 {
+               return
+       }
+       board[index] = 1
+       if !out_of_bounds(index, E) {
+               fill_contiguous_space(board, shift(index, E))
+       }
+       if !out_of_bounds(index, SE) {
+               fill_contiguous_space(board, shift(index, SE))
+       }
+       if !out_of_bounds(index, SW) {
+               fill_contiguous_space(board, shift(index, SW))
+       }
+       if !out_of_bounds(index, W) {
+               fill_contiguous_space(board, shift(index, W))
+       }
+       if !out_of_bounds(index, NW) {
+               fill_contiguous_space(board, shift(index, NW))
+       }
+       if !out_of_bounds(index, NE) {
+               fill_contiguous_space(board, shift(index, NE))
+       }
+}
+
+/* To thin the number of pieces, I calculate if any of them trap any empty
+ * cells at the edges.  There are only a handful of exceptions where the
+ * the board can be solved with the trapped cells.  For example:  piece 8 can
+ * trap 5 cells in the corner, but piece 3 can fit in those cells, or piece 0
+ * can split the board in half where both halves are viable.
+ */
+func has_island(cell []int8, piece int) bool {
+       temp_board := make([]int8, 50)
+       var i int
+       for i = 0; i < 5; i++ {
+               temp_board[cell[i]] = 1
+       }
+       i = 49
+       for temp_board[i] == 1 {
+               i--
+       }
+       fill_contiguous_space(temp_board, int8(i))
+       c := 0
+       for i = 0; i < 50; i++ {
+               if temp_board[i] == 0 {
+                       c++
+               }
+       }
+       if c == 0 || (c == 5 && piece == 8) || (c == 40 && piece == 8) ||
+               (c%5 == 0 && piece == 0) {
+               return false
+       }
+       return true
+}
+
+/* Calculate all six rotations of the specified piece at the specified index.
+ * We calculate only half of piece 3's rotations.  This is because any solution
+ * found has an identical solution rotated 180 degrees.  Thus we can reduce the
+ * number of attempted pieces in the solve algorithm by not including the 180-
+ * degree-rotated pieces of ONE of the pieces.  I chose piece 3 because it gave
+ * me the best time ;)
+ */
+func calc_six_rotations(piece, index int) {
+       cell := make([]int8, 5)
+       for rotation := 0; rotation < 6; rotation++ {
+               if piece != 3 || rotation < 3 {
+                       calc_cell_indices(cell, piece, int8(index))
+                       if cells_fit_on_board(cell, piece) && !has_island(cell, piece) {
+                               minimum := minimum_of_cells(cell)
+                               first_empty := first_empty_cell(cell, minimum)
+                               piece_mask := bitmask_from_cells(cell)
+                               record_piece(piece, minimum, first_empty, piece_mask)
+                       }
+               }
+               rotate_piece(piece)
+       }
+}
+
+/* Calculate every legal rotation for each piece at each board location. */
+func calc_pieces() {
+       for piece := 0; piece < 10; piece++ {
+               for index := 0; index < 50; index++ {
+                       calc_six_rotations(piece, index)
+                       flip_piece(piece)
+                       calc_six_rotations(piece, index)
+               }
+       }
+}
+
+/* Calculate all 32 possible states for a 5-bit row and all rows that will
+ * create islands that follow any of the 32 possible rows.  These pre-
+ * calculated 5-bit rows will be used to find islands in a partially solved
+ * board in the solve function.
+ */
+const (
+       ROW_MASK    = 0x1F
+       TRIPLE_MASK = 0x7FFF
+)
+
+var (
+       all_rows = [32]int8{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+               17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+       }
+       bad_even_rows   [32][32]int8
+       bad_odd_rows    [32][32]int8
+       bad_even_triple [32768]int8
+       bad_odd_triple  [32768]int8
+)
+
+func rows_bad(row1, row2 int8, even bool) int8 {
+       /* even is referring to row1 */
+       var row2_shift int8
+       /* Test for blockages at same index and shifted index */
+       if even {
+               row2_shift = ((row2 << 1) & ROW_MASK) | 0x01
+       } else {
+               row2_shift = (row2 >> 1) | 0x10
+       }
+       block := ((row1 ^ row2) & row2) & ((row1 ^ row2_shift) & row2_shift)
+       /* Test for groups of 0's */
+       in_zeroes := false
+       group_okay := false
+       for i := uint8(0); i < 5; i++ {
+               if row1&(1<<i) != 0 {
+                       if in_zeroes {
+                               if !group_okay {
+                                       return 1
+                               }
+                               in_zeroes = false
+                               group_okay = false
+                       }
+               } else {
+                       if !in_zeroes {
+                               in_zeroes = true
+                       }
+                       if (block & (1 << i)) == 0 {
+                               group_okay = true
+                       }
+               }
+       }
+       if in_zeroes {
+               return boolInt(!group_okay)
+       }
+       return 0
+}
+
+/* Check for cases where three rows checked sequentially cause a false
+ * positive.  One scenario is when 5 cells may be surrounded where piece 5
+ * or 7 can fit.  The other scenario is when piece 2 creates a hook shape.
+ */
+func triple_is_okay(row1, row2, row3 int, even bool) bool {
+       if even {
+               /* There are four cases:
+                * row1: 00011  00001  11001  10101
+                * row2: 01011  00101  10001  10001
+                * row3: 011??  00110  ?????  ?????
+                */
+               return ((row1 == 0x03) && (row2 == 0x0B) && ((row3 & 0x1C) == 0x0C)) ||
+                       ((row1 == 0x01) && (row2 == 0x05) && (row3 == 0x06)) ||
+                       ((row1 == 0x19) && (row2 == 0x11)) ||
+                       ((row1 == 0x15) && (row2 == 0x11))
+       }
+       /* There are two cases:
+        * row1: 10011  10101
+        * row2: 10001  10001
+        * row3: ?????  ?????
+        */
+       return ((row1 == 0x13) && (row2 == 0x11)) ||
+               ((row1 == 0x15) && (row2 == 0x11))
+}
+
+func calc_rows() {
+       for row1 := int8(0); row1 < 32; row1++ {
+               for row2 := int8(0); row2 < 32; row2++ {
+                       bad_even_rows[row1][row2] = rows_bad(row1, row2, true)
+                       bad_odd_rows[row1][row2] = rows_bad(row1, row2, false)
+               }
+       }
+       for row1 := 0; row1 < 32; row1++ {
+               for row2 := 0; row2 < 32; row2++ {
+                       for row3 := 0; row3 < 32; row3++ {
+                               result1 := bad_even_rows[row1][row2]
+                               result2 := bad_odd_rows[row2][row3]
+                               if result1 == 0 && result2 != 0 && triple_is_okay(row1, row2, row3, true) {
+                                       bad_even_triple[row1+(row2*32)+(row3*1024)] = 0
+                               } else {
+                                       bad_even_triple[row1+(row2*32)+(row3*1024)] = boolInt(result1 != 0 || result2 != 0)
+                               }
+
+                               result1 = bad_odd_rows[row1][row2]
+                               result2 = bad_even_rows[row2][row3]
+                               if result1 == 0 && result2 != 0 && triple_is_okay(row1, row2, row3, false) {
+                                       bad_odd_triple[row1+(row2*32)+(row3*1024)] = 0
+                               } else {
+                                       bad_odd_triple[row1+(row2*32)+(row3*1024)] = boolInt(result1 != 0 || result2 != 0)
+                               }
+                       }
+               }
+       }
+}
+
+/* Calculate islands while solving the board.
+ */
+func boardHasIslands(cell int8) int8 {
+       /* Too low on board, don't bother checking */
+       if cell >= 40 {
+               return 0
+       }
+       current_triple := (board >> uint((cell/5)*5)) & TRIPLE_MASK
+       if (cell/5)%2 != 0 {
+               return bad_odd_triple[current_triple]
+       }
+       return bad_even_triple[current_triple]
+}
+
+/* The recursive solve algorithm.  Try to place each permutation in the upper-
+ * leftmost empty cell.  Mark off available pieces as it goes along.
+ * Because the board is a bit mask, the piece number and bit mask must be saved
+ * at each successful piece placement.  This data is used to create a 50 char
+ * array if a solution is found.
+ */
+var (
+       avail          uint16 = 0x03FF
+       sol_nums       [10]int8
+       sol_masks      [10]uint64
+       solutions      [2100][50]int8
+       solution_count = 0
+)
+
+func record_solution() {
+       for sol_no := 0; sol_no < 10; sol_no++ {
+               sol_mask := sol_masks[sol_no]
+               for index := 0; index < 50; index++ {
+                       if sol_mask&1 == 1 {
+                               solutions[solution_count][index] = sol_nums[sol_no]
+                               /* Board rotated 180 degrees is a solution too! */
+                               solutions[solution_count+1][49-index] = sol_nums[sol_no]
+                       }
+                       sol_mask = sol_mask >> 1
+               }
+       }
+       solution_count += 2
+}
+
+func solve(depth, cell int8) {
+       if solution_count >= *max_solutions {
+               return
+       }
+
+       for board&(1<<uint(cell)) != 0 {
+               cell++
+       }
+
+       for piece := int8(0); piece < 10; piece++ {
+               var piece_no_mask uint16 = 1 << uint(piece)
+               if avail&piece_no_mask == 0 {
+                       continue
+               }
+               avail ^= piece_no_mask
+               max_rots := piece_counts[piece][cell]
+               piece_mask := pieces[piece][cell]
+               for rotation := 0; rotation < max_rots; rotation++ {
+                       if board&piece_mask[rotation] == 0 {
+                               sol_nums[depth] = piece
+                               sol_masks[depth] = piece_mask[rotation]
+                               if depth == 9 {
+                                       /* Solution found!!!!!11!!ONE! */
+                                       record_solution()
+                                       avail ^= piece_no_mask
+                                       return
+                               }
+                               board |= piece_mask[rotation]
+                               if boardHasIslands(next_cell[piece][cell][rotation]) == 0 {
+                                       solve(depth+1, next_cell[piece][cell][rotation])
+                               }
+                               board ^= piece_mask[rotation]
+                       }
+               }
+               avail ^= piece_no_mask
+       }
+}
+
+/* pretty print a board in the specified hexagonal format */
+func pretty(b *[50]int8) {
+       for i := 0; i < 50; i += 10 {
+               fmt.Printf("%c %c %c %c %c \n %c %c %c %c %c \n", b[i]+'0', b[i+1]+'0',
+                       b[i+2]+'0', b[i+3]+'0', b[i+4]+'0', b[i+5]+'0', b[i+6]+'0',
+                       b[i+7]+'0', b[i+8]+'0', b[i+9]+'0')
+       }
+       fmt.Printf("\n")
+}
+
+/* Find smallest and largest solutions */
+func smallest_largest() (smallest, largest *[50]int8) {
+       smallest = &solutions[0]
+       largest = &solutions[0]
+       for i := 1; i < solution_count; i++ {
+               candidate := &solutions[i]
+               for j, s := range *smallest {
+                       c := candidate[j]
+                       if c == s {
+                               continue
+                       }
+                       if c < s {
+                               smallest = candidate
+                       }
+                       break
+               }
+               for j, s := range *largest {
+                       c := candidate[j]
+                       if c == s {
+                               continue
+                       }
+                       if c > s {
+                               largest = candidate
+                       }
+                       break
+               }
+       }
+       return
+}
+
+func main() {
+       flag.Parse()
+       calc_pieces()
+       calc_rows()
+       solve(0, 0)
+       fmt.Printf("%d solutions found\n\n", solution_count)
+       smallest, largest := smallest_largest()
+       pretty(smallest)
+       pretty(largest)
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/meteor-contest.txt b/gcc/testsuite/go.test/test/bench/shootout/meteor-contest.txt
new file mode 100644 (file)
index 0000000..38d9783
--- /dev/null
@@ -0,0 +1,24 @@
+2098 solutions found
+
+0 0 0 0 1 
+ 2 2 2 0 1 
+2 6 6 1 1 
+ 2 6 1 5 5 
+8 6 5 5 5 
+ 8 6 3 3 3 
+4 8 8 9 3 
+ 4 4 8 9 3 
+4 7 4 7 9 
+ 7 7 7 9 9 
+
+9 9 9 9 8 
+ 9 6 6 8 5 
+6 6 8 8 5 
+ 6 8 2 5 5 
+7 7 7 2 5 
+ 7 4 7 2 0 
+1 4 2 2 0 
+ 1 4 4 0 3 
+1 4 0 0 3 
+ 1 1 3 3 3 
+
diff --git a/gcc/testsuite/go.test/test/bench/shootout/nbody.c b/gcc/testsuite/go.test/test/bench/shootout/nbody.c
new file mode 100644 (file)
index 0000000..3b95b05
--- /dev/null
@@ -0,0 +1,170 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/*
+ * The Great Computer Language Shootout
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by Christoph Bauer
+ *
+ */
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#define pi 3.141592653589793
+#define solar_mass (4 * pi * pi)
+#define days_per_year 365.24
+
+struct planet {
+  double x, y, z;
+  double vx, vy, vz;
+  double mass;
+};
+
+void advance(int nbodies, struct planet * bodies, double dt)
+{
+  int i, j;
+
+  for (i = 0; i < nbodies; i++) {
+    struct planet * b = &(bodies[i]);
+    for (j = i + 1; j < nbodies; j++) {
+      struct planet * b2 = &(bodies[j]);
+      double dx = b->x - b2->x;
+      double dy = b->y - b2->y;
+      double dz = b->z - b2->z;
+      double distance = sqrt(dx * dx + dy * dy + dz * dz);
+      double mag = dt / (distance * distance * distance);
+      b->vx -= dx * b2->mass * mag;
+      b->vy -= dy * b2->mass * mag;
+      b->vz -= dz * b2->mass * mag;
+      b2->vx += dx * b->mass * mag;
+      b2->vy += dy * b->mass * mag;
+      b2->vz += dz * b->mass * mag;
+    }
+  }
+  for (i = 0; i < nbodies; i++) {
+    struct planet * b = &(bodies[i]);
+    b->x += dt * b->vx;
+    b->y += dt * b->vy;
+    b->z += dt * b->vz;
+  }
+}
+
+double energy(int nbodies, struct planet * bodies)
+{
+  double e;
+  int i, j;
+
+  e = 0.0;
+  for (i = 0; i < nbodies; i++) {
+    struct planet * b = &(bodies[i]);
+    e += 0.5 * b->mass * (b->vx * b->vx + b->vy * b->vy + b->vz * b->vz);
+    for (j = i + 1; j < nbodies; j++) {
+      struct planet * b2 = &(bodies[j]);
+      double dx = b->x - b2->x;
+      double dy = b->y - b2->y;
+      double dz = b->z - b2->z;
+      double distance = sqrt(dx * dx + dy * dy + dz * dz);
+      e -= (b->mass * b2->mass) / distance;
+    }
+  }
+  return e;
+}
+
+void offset_momentum(int nbodies, struct planet * bodies)
+{
+  double px = 0.0, py = 0.0, pz = 0.0;
+  int i;
+  for (i = 0; i < nbodies; i++) {
+    px += bodies[i].vx * bodies[i].mass;
+    py += bodies[i].vy * bodies[i].mass;
+    pz += bodies[i].vz * bodies[i].mass;
+  }
+  bodies[0].vx = - px / solar_mass;
+  bodies[0].vy = - py / solar_mass;
+  bodies[0].vz = - pz / solar_mass;
+}
+
+#define NBODIES 5
+struct planet bodies[NBODIES] = {
+  {                               /* sun */
+    0, 0, 0, 0, 0, 0, solar_mass
+  },
+  {                               /* jupiter */
+    4.84143144246472090e+00,
+    -1.16032004402742839e+00,
+    -1.03622044471123109e-01,
+    1.66007664274403694e-03 * days_per_year,
+    7.69901118419740425e-03 * days_per_year,
+    -6.90460016972063023e-05 * days_per_year,
+    9.54791938424326609e-04 * solar_mass
+  },
+  {                               /* saturn */
+    8.34336671824457987e+00,
+    4.12479856412430479e+00,
+    -4.03523417114321381e-01,
+    -2.76742510726862411e-03 * days_per_year,
+    4.99852801234917238e-03 * days_per_year,
+    2.30417297573763929e-05 * days_per_year,
+    2.85885980666130812e-04 * solar_mass
+  },
+  {                               /* uranus */
+    1.28943695621391310e+01,
+    -1.51111514016986312e+01,
+    -2.23307578892655734e-01,
+    2.96460137564761618e-03 * days_per_year,
+    2.37847173959480950e-03 * days_per_year,
+    -2.96589568540237556e-05 * days_per_year,
+    4.36624404335156298e-05 * solar_mass
+  },
+  {                               /* neptune */
+    1.53796971148509165e+01,
+    -2.59193146099879641e+01,
+    1.79258772950371181e-01,
+    2.68067772490389322e-03 * days_per_year,
+    1.62824170038242295e-03 * days_per_year,
+    -9.51592254519715870e-05 * days_per_year,
+    5.15138902046611451e-05 * solar_mass
+  }
+};
+
+int main(int argc, char ** argv)
+{
+  int n = atoi(argv[1]);
+  int i;
+
+  offset_momentum(NBODIES, bodies);
+  printf ("%.9f\n", energy(NBODIES, bodies));
+  for (i = 1; i <= n; i++)
+    advance(NBODIES, bodies, 0.01);
+  printf ("%.9f\n", energy(NBODIES, bodies));
+  return 0;
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/nbody.go b/gcc/testsuite/go.test/test/bench/shootout/nbody.go
new file mode 100644 (file)
index 0000000..988f3ba
--- /dev/null
@@ -0,0 +1,177 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by The Go Authors.
+ * based on C program by Christoph Bauer
+ */
+
+package main
+
+import (
+       "flag"
+       "fmt"
+       "math"
+)
+
+var n = flag.Int("n", 1000, "number of iterations")
+
+type Body struct {
+       x, y, z, vx, vy, vz, mass float64
+}
+
+const (
+       solarMass   = 4 * math.Pi * math.Pi
+       daysPerYear = 365.24
+)
+
+func (b *Body) offsetMomentum(px, py, pz float64) {
+       b.vx = -px / solarMass
+       b.vy = -py / solarMass
+       b.vz = -pz / solarMass
+}
+
+type System []*Body
+
+func NewSystem(body []Body) System {
+       n := make(System, len(body))
+       for i := 0; i < len(body); i++ {
+               n[i] = new(Body) // copy to avoid overwriting the inputs
+               *n[i] = body[i]
+       }
+       var px, py, pz float64
+       for _, body := range n {
+               px += body.vx * body.mass
+               py += body.vy * body.mass
+               pz += body.vz * body.mass
+       }
+       n[0].offsetMomentum(px, py, pz)
+       return n
+}
+
+func (sys System) energy() float64 {
+       var e float64
+       for i, body := range sys {
+               e += 0.5 * body.mass *
+                       (body.vx*body.vx + body.vy*body.vy + body.vz*body.vz)
+               for j := i + 1; j < len(sys); j++ {
+                       body2 := sys[j]
+                       dx := body.x - body2.x
+                       dy := body.y - body2.y
+                       dz := body.z - body2.z
+                       distance := math.Sqrt(dx*dx + dy*dy + dz*dz)
+                       e -= (body.mass * body2.mass) / distance
+               }
+       }
+       return e
+}
+
+func (sys System) advance(dt float64) {
+       for i, body := range sys {
+               for j := i + 1; j < len(sys); j++ {
+                       body2 := sys[j]
+                       dx := body.x - body2.x
+                       dy := body.y - body2.y
+                       dz := body.z - body2.z
+
+                       dSquared := dx*dx + dy*dy + dz*dz
+                       distance := math.Sqrt(dSquared)
+                       mag := dt / (dSquared * distance)
+
+                       body.vx -= dx * body2.mass * mag
+                       body.vy -= dy * body2.mass * mag
+                       body.vz -= dz * body2.mass * mag
+
+                       body2.vx += dx * body.mass * mag
+                       body2.vy += dy * body.mass * mag
+                       body2.vz += dz * body.mass * mag
+               }
+       }
+
+       for _, body := range sys {
+               body.x += dt * body.vx
+               body.y += dt * body.vy
+               body.z += dt * body.vz
+       }
+}
+
+var (
+       jupiter = Body{
+               x:    4.84143144246472090e+00,
+               y:    -1.16032004402742839e+00,
+               z:    -1.03622044471123109e-01,
+               vx:   1.66007664274403694e-03 * daysPerYear,
+               vy:   7.69901118419740425e-03 * daysPerYear,
+               vz:   -6.90460016972063023e-05 * daysPerYear,
+               mass: 9.54791938424326609e-04 * solarMass,
+       }
+       saturn = Body{
+               x:    8.34336671824457987e+00,
+               y:    4.12479856412430479e+00,
+               z:    -4.03523417114321381e-01,
+               vx:   -2.76742510726862411e-03 * daysPerYear,
+               vy:   4.99852801234917238e-03 * daysPerYear,
+               vz:   2.30417297573763929e-05 * daysPerYear,
+               mass: 2.85885980666130812e-04 * solarMass,
+       }
+       uranus = Body{
+               x:    1.28943695621391310e+01,
+               y:    -1.51111514016986312e+01,
+               z:    -2.23307578892655734e-01,
+               vx:   2.96460137564761618e-03 * daysPerYear,
+               vy:   2.37847173959480950e-03 * daysPerYear,
+               vz:   -2.96589568540237556e-05 * daysPerYear,
+               mass: 4.36624404335156298e-05 * solarMass,
+       }
+       neptune = Body{
+               x:    1.53796971148509165e+01,
+               y:    -2.59193146099879641e+01,
+               z:    1.79258772950371181e-01,
+               vx:   2.68067772490389322e-03 * daysPerYear,
+               vy:   1.62824170038242295e-03 * daysPerYear,
+               vz:   -9.51592254519715870e-05 * daysPerYear,
+               mass: 5.15138902046611451e-05 * solarMass,
+       }
+       sun = Body{
+               mass: solarMass,
+       }
+)
+
+func main() {
+       flag.Parse()
+
+       system := NewSystem([]Body{sun, jupiter, saturn, uranus, neptune})
+       fmt.Printf("%.9f\n", system.energy())
+       for i := 0; i < *n; i++ {
+               system.advance(0.01)
+       }
+       fmt.Printf("%.9f\n", system.energy())
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/nbody.txt b/gcc/testsuite/go.test/test/bench/shootout/nbody.txt
new file mode 100644 (file)
index 0000000..1731557
--- /dev/null
@@ -0,0 +1,2 @@
+-0.169075164
+-0.169087605
diff --git a/gcc/testsuite/go.test/test/bench/shootout/pidigits.c b/gcc/testsuite/go.test/test/bench/shootout/pidigits.c
new file mode 100644 (file)
index 0000000..c064da0
--- /dev/null
@@ -0,0 +1,123 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+  http://shootout.alioth.debian.org/
+
+  contributed by Paolo Bonzini & Sean Bartlett
+  modified by Michael Mellor
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <gmp.h>
+
+static mpz_t numer, accum, denom, tmp1, tmp2;
+
+static int extract_digit()
+{
+  if (mpz_cmp(numer, accum) > 0)
+    return -1;
+
+  /* Compute (numer * 3 + accum) / denom */
+  mpz_mul_2exp(tmp1, numer, 1);
+  mpz_add(tmp1, tmp1, numer);
+  mpz_add(tmp1, tmp1, accum);
+  mpz_fdiv_qr(tmp1, tmp2, tmp1, denom);
+
+  /* Now, if (numer * 4 + accum) % denom... */
+  mpz_add(tmp2, tmp2, numer);
+
+  /* ... is normalized, then the two divisions have the same result.  */
+  if (mpz_cmp(tmp2, denom) >= 0)
+    return -1;
+
+  return mpz_get_ui(tmp1);
+}
+
+static void next_term(unsigned int k)
+{
+  unsigned int y2 = k*2 + 1;
+
+  mpz_mul_2exp(tmp1, numer, 1);
+  mpz_add(accum, accum, tmp1);
+  mpz_mul_ui(accum, accum, y2);
+  mpz_mul_ui(numer, numer, k);
+  mpz_mul_ui(denom, denom, y2);
+}
+
+static void eliminate_digit(unsigned int d)
+{
+  mpz_submul_ui(accum, denom, d);
+  mpz_mul_ui(accum, accum, 10);
+  mpz_mul_ui(numer, numer, 10);
+}
+
+static void pidigits(unsigned int n)
+{
+  int d;
+  unsigned int i = 0, k = 0, m;
+  mpz_init(tmp1);
+  mpz_init(tmp2);
+  mpz_init_set_ui(numer, 1);
+  mpz_init_set_ui(accum, 0);
+  mpz_init_set_ui(denom, 1);
+
+  for(;;)
+  {
+    do {
+      k++;
+      next_term(k);
+      d = extract_digit();
+    } while(d == -1);
+
+    putchar(d + '0');
+
+    i++;
+    m = i%10;
+    if(m == 0)
+      printf("\t:%d\n", i);
+    if(i >= n)
+      break;
+    eliminate_digit(d);
+  }
+
+  if(m) {
+    m = 10 - m;
+    while(m--)
+      putchar(' ');
+    printf("\t:%d\n", n);
+  }
+}
+
+int main(int argc, char **argv)
+{
+  pidigits(argc > 1 ? atoi(argv[1]) : 27);
+  return 0;
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/pidigits.go b/gcc/testsuite/go.test/test/bench/shootout/pidigits.go
new file mode 100644 (file)
index 0000000..a0f21a9
--- /dev/null
@@ -0,0 +1,135 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by The Go Authors.
+ * based on pidigits.c (by Paolo Bonzini & Sean Bartlett,
+ *                      modified by Michael Mellor)
+ */
+
+package main
+
+import (
+       "flag"
+       "fmt"
+       "math/big"
+)
+
+var n = flag.Int("n", 27, "number of digits")
+var silent = flag.Bool("s", false, "don't print result")
+
+var (
+       tmp1  = big.NewInt(0)
+       tmp2  = big.NewInt(0)
+       tmp3  = big.NewInt(0)
+       y2    = big.NewInt(0)
+       bigk  = big.NewInt(0)
+       numer = big.NewInt(1)
+       accum = big.NewInt(0)
+       denom = big.NewInt(1)
+       ten   = big.NewInt(10)
+)
+
+func extract_digit() int64 {
+       if numer.Cmp(accum) > 0 {
+               return -1
+       }
+
+       // Compute (numer * 3 + accum) / denom
+       tmp1.Lsh(numer, 1)
+       tmp1.Add(tmp1, numer)
+       tmp1.Add(tmp1, accum)
+       tmp1.DivMod(tmp1, denom, tmp2)
+
+       // Now, if (numer * 4 + accum) % denom...
+       tmp2.Add(tmp2, numer)
+
+       // ... is normalized, then the two divisions have the same result.
+       if tmp2.Cmp(denom) >= 0 {
+               return -1
+       }
+
+       return tmp1.Int64()
+}
+
+func next_term(k int64) {
+       y2.SetInt64(k*2 + 1)
+       bigk.SetInt64(k)
+
+       tmp1.Lsh(numer, 1)
+       accum.Add(accum, tmp1)
+       accum.Mul(accum, y2)
+       numer.Mul(numer, bigk)
+       denom.Mul(denom, y2)
+}
+
+func eliminate_digit(d int64) {
+       tmp3.SetInt64(d)
+       accum.Sub(accum, tmp3.Mul(denom, tmp3))
+       accum.Mul(accum, ten)
+       numer.Mul(numer, ten)
+}
+
+func printf(s string, arg ...interface{}) {
+       if !*silent {
+               fmt.Printf(s, arg...)
+       }
+}
+
+func main() {
+       flag.Parse()
+
+       var m int // 0 <= m < 10
+       for i, k := 0, int64(0); ; {
+               d := int64(-1)
+               for d < 0 {
+                       k++
+                       next_term(k)
+                       d = extract_digit()
+               }
+
+               printf("%c", d+'0')
+
+               i++
+               m = i % 10
+               if m == 0 {
+                       printf("\t:%d\n", i)
+               }
+               if i >= *n {
+                       break
+               }
+               eliminate_digit(d)
+       }
+
+       if m > 0 {
+               printf("%s\t:%d\n", "          "[m:10], *n)
+       }
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/pidigits.txt b/gcc/testsuite/go.test/test/bench/shootout/pidigits.txt
new file mode 100644 (file)
index 0000000..ad946a9
--- /dev/null
@@ -0,0 +1,3 @@
+3141592653     :10
+5897932384     :20
+6264338        :27
diff --git a/gcc/testsuite/go.test/test/bench/shootout/regex-dna-parallel.go b/gcc/testsuite/go.test/test/bench/shootout/regex-dna-parallel.go
new file mode 100644 (file)
index 0000000..9c6d421
--- /dev/null
@@ -0,0 +1,124 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by The Go Authors.
+ */
+
+package main
+
+import (
+       "fmt"
+       "io/ioutil"
+       "os"
+       "regexp"
+       "runtime"
+)
+
+var variants = []string{
+       "agggtaaa|tttaccct",
+       "[cgt]gggtaaa|tttaccc[acg]",
+       "a[act]ggtaaa|tttacc[agt]t",
+       "ag[act]gtaaa|tttac[agt]ct",
+       "agg[act]taaa|ttta[agt]cct",
+       "aggg[acg]aaa|ttt[cgt]ccct",
+       "agggt[cgt]aa|tt[acg]accct",
+       "agggta[cgt]a|t[acg]taccct",
+       "agggtaa[cgt]|[acg]ttaccct",
+}
+
+type Subst struct {
+       pat, repl string
+}
+
+var substs = []Subst{
+       Subst{"B", "(c|g|t)"},
+       Subst{"D", "(a|g|t)"},
+       Subst{"H", "(a|c|t)"},
+       Subst{"K", "(g|t)"},
+       Subst{"M", "(a|c)"},
+       Subst{"N", "(a|c|g|t)"},
+       Subst{"R", "(a|g)"},
+       Subst{"S", "(c|g)"},
+       Subst{"V", "(a|c|g)"},
+       Subst{"W", "(a|t)"},
+       Subst{"Y", "(c|t)"},
+}
+
+func countMatches(pat string, bytes []byte) int {
+       re := regexp.MustCompile(pat)
+       n := 0
+       for {
+               e := re.FindIndex(bytes)
+               if e == nil {
+                       break
+               }
+               n++
+               bytes = bytes[e[1]:]
+       }
+       return n
+}
+
+func main() {
+       runtime.GOMAXPROCS(4)
+       bytes, err := ioutil.ReadAll(os.Stdin)
+       if err != nil {
+               fmt.Fprintf(os.Stderr, "can't read input: %s\n", err)
+               os.Exit(2)
+       }
+       ilen := len(bytes)
+       // Delete the comment lines and newlines
+       bytes = regexp.MustCompile("(>[^\n]+)?\n").ReplaceAll(bytes, []byte{})
+       clen := len(bytes)
+
+       mresults := make([]chan int, len(variants))
+       for i, s := range variants {
+               ch := make(chan int)
+               mresults[i] = ch
+               go func(ss string) {
+                       ch <- countMatches(ss, bytes)
+               }(s)
+       }
+
+       lenresult := make(chan int)
+       bb := bytes
+       go func() {
+               for _, sub := range substs {
+                       bb = regexp.MustCompile(sub.pat).ReplaceAll(bb, []byte(sub.repl))
+               }
+               lenresult <- len(bb)
+       }()
+
+       for i, s := range variants {
+               fmt.Printf("%s %d\n", s, <-mresults[i])
+       }
+       fmt.Printf("\n%d\n%d\n%d\n", ilen, clen, <-lenresult)
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/regex-dna-parallel.txt b/gcc/testsuite/go.test/test/bench/shootout/regex-dna-parallel.txt
new file mode 100644 (file)
index 0000000..e23e71f
--- /dev/null
@@ -0,0 +1,13 @@
+agggtaaa|tttaccct 1
+[cgt]gggtaaa|tttaccc[acg] 0
+a[act]ggtaaa|tttacc[agt]t 0
+ag[act]gtaaa|tttac[agt]ct 0
+agg[act]taaa|ttta[agt]cct 1
+aggg[acg]aaa|ttt[cgt]ccct 0
+agggt[cgt]aa|tt[acg]accct 0
+agggta[cgt]a|t[acg]taccct 0
+agggtaa[cgt]|[acg]ttaccct 2
+
+10245
+10000
+13348
diff --git a/gcc/testsuite/go.test/test/bench/shootout/regex-dna.c b/gcc/testsuite/go.test/test/bench/shootout/regex-dna.c
new file mode 100644 (file)
index 0000000..134f821
--- /dev/null
@@ -0,0 +1,154 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/*
+** The Computer Language Shootout
+** http://shootout.alioth.debian.org/
+** contributed by Mike Pall
+**
+** regex-dna benchmark using PCRE
+**
+** compile with:
+**   gcc -O3 -fomit-frame-pointer -o regexdna regexdna.c -lpcre
+*/
+
+#define __USE_STRING_INLINES
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <pcre.h>
+
+typedef struct fbuf {
+  char *buf;
+  size_t size, len;
+} fbuf_t;
+
+static void fb_init(fbuf_t *b)
+{
+  b->buf = NULL;
+  b->len = b->size = 0;
+}
+
+static char *fb_need(fbuf_t *b, size_t need)
+{
+  need += b->len;
+  if (need > b->size) {
+    if (b->size == 0) b->size = need;
+    else while (need > b->size) b->size += b->size;
+    if (!(b->buf = realloc(b->buf, b->size))) exit(1);
+  }
+  return b->buf+b->len;
+}
+
+#define FB_MINREAD     (3<<16)
+
+/* Read all of a stdio stream into dst buffer. */
+static size_t fb_readall(fbuf_t *dst, FILE *fp)
+{
+  char *dp;
+  int n;
+  for (dp = fb_need(dst, FB_MINREAD);
+       (n = fread(dp, 1, dst->size-dst->len, fp)) > 0;
+       dp = fb_need(dst, FB_MINREAD)) dst->len += n;
+  if (ferror(fp)) exit(1);
+  return dst->len;
+}
+
+/* Substitute pattern p with replacement r, copying from src to dst buffer. */
+static size_t fb_subst(fbuf_t *dst, fbuf_t *src, const char *p, const char *r)
+{
+  pcre *re;
+  pcre_extra *re_ex;
+  const char *re_e;
+  char *dp;
+  int re_eo, m[3], pos, rlen, clen;
+  if (!(re = pcre_compile(p, PCRE_CASELESS, &re_e, &re_eo, NULL))) exit(1);
+  re_ex = pcre_study(re, 0, &re_e);
+  for (dst->len = 0, rlen = strlen(r), pos = 0;
+       pcre_exec(re, re_ex, src->buf, src->len, pos, 0, m, 3) >= 0;
+       pos = m[1]) {
+    clen = m[0]-pos;
+    dp = fb_need(dst, clen+rlen);
+    dst->len += clen+rlen;
+    memcpy(dp, src->buf+pos, clen);
+    memcpy(dp+clen, r, rlen);
+  }
+  clen = src->len-pos;
+  dp = fb_need(dst, clen);
+  dst->len += clen;
+  memcpy(dp, src->buf+pos, clen);
+  return dst->len;
+}
+
+/* Count all matches with pattern p in src buffer. */
+static int fb_countmatches(fbuf_t *src, const char *p)
+{
+  pcre *re;
+  pcre_extra *re_ex;
+  const char *re_e;
+  int re_eo, m[3], pos, count;
+  if (!(re = pcre_compile(p, PCRE_CASELESS, &re_e, &re_eo, NULL))) exit(1);
+  re_ex = pcre_study(re, 0, &re_e);
+  for (count = 0, pos = 0;
+       pcre_exec(re, re_ex, src->buf, src->len, pos, 0, m, 3) >= 0;
+       pos = m[1]) count++;
+  return count;
+}
+
+static const char *variants[] = {
+  "agggtaaa|tttaccct",         "[cgt]gggtaaa|tttaccc[acg]",
+  "a[act]ggtaaa|tttacc[agt]t", "ag[act]gtaaa|tttac[agt]ct",
+  "agg[act]taaa|ttta[agt]cct", "aggg[acg]aaa|ttt[cgt]ccct",
+  "agggt[cgt]aa|tt[acg]accct", "agggta[cgt]a|t[acg]taccct",
+  "agggtaa[cgt]|[acg]ttaccct", NULL
+};
+
+static const char *subst[] = {
+  "B", "(c|g|t)", "D", "(a|g|t)",   "H", "(a|c|t)", "K", "(g|t)",
+  "M", "(a|c)",   "N", "(a|c|g|t)", "R", "(a|g)",   "S", "(c|g)",
+  "V", "(a|c|g)", "W", "(a|t)",     "Y", "(c|t)",   NULL
+};
+
+int main(int argc, char **argv)
+{
+  fbuf_t seq[2];
+  const char **pp;
+  size_t ilen, clen, slen;
+  int flip;
+  fb_init(&seq[0]);
+  fb_init(&seq[1]);
+  ilen = fb_readall(&seq[0], stdin);
+  clen = fb_subst(&seq[1], &seq[0], ">.*|\n", "");
+  for (pp = variants; *pp; pp++)
+    printf("%s %d\n", *pp, fb_countmatches(&seq[1], *pp));
+  for (slen = 0, flip = 1, pp = subst; *pp; pp += 2, flip = 1-flip)
+    slen = fb_subst(&seq[1-flip], &seq[flip], *pp, pp[1]);
+  printf("\n%zu\n%zu\n%zu\n", ilen, clen, slen);
+  return 0;
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/regex-dna.go b/gcc/testsuite/go.test/test/bench/shootout/regex-dna.go
new file mode 100644 (file)
index 0000000..042d7f2
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by The Go Authors.
+ */
+
+package main
+
+import (
+       "fmt"
+       "io/ioutil"
+       "os"
+       "regexp"
+)
+
+var variants = []string{
+       "agggtaaa|tttaccct",
+       "[cgt]gggtaaa|tttaccc[acg]",
+       "a[act]ggtaaa|tttacc[agt]t",
+       "ag[act]gtaaa|tttac[agt]ct",
+       "agg[act]taaa|ttta[agt]cct",
+       "aggg[acg]aaa|ttt[cgt]ccct",
+       "agggt[cgt]aa|tt[acg]accct",
+       "agggta[cgt]a|t[acg]taccct",
+       "agggtaa[cgt]|[acg]ttaccct",
+}
+
+type Subst struct {
+       pat, repl string
+}
+
+var substs = []Subst{
+       Subst{"B", "(c|g|t)"},
+       Subst{"D", "(a|g|t)"},
+       Subst{"H", "(a|c|t)"},
+       Subst{"K", "(g|t)"},
+       Subst{"M", "(a|c)"},
+       Subst{"N", "(a|c|g|t)"},
+       Subst{"R", "(a|g)"},
+       Subst{"S", "(c|g)"},
+       Subst{"V", "(a|c|g)"},
+       Subst{"W", "(a|t)"},
+       Subst{"Y", "(c|t)"},
+}
+
+func countMatches(pat string, bytes []byte) int {
+       re := regexp.MustCompile(pat)
+       n := 0
+       for {
+               e := re.FindIndex(bytes)
+               if len(e) == 0 {
+                       break
+               }
+               n++
+               bytes = bytes[e[1]:]
+       }
+       return n
+}
+
+func main() {
+       bytes, err := ioutil.ReadAll(os.Stdin)
+       if err != nil {
+               fmt.Fprintf(os.Stderr, "can't read input: %s\n", err)
+               os.Exit(2)
+       }
+       ilen := len(bytes)
+       // Delete the comment lines and newlines
+       bytes = regexp.MustCompile("(>[^\n]+)?\n").ReplaceAll(bytes, []byte{})
+       clen := len(bytes)
+       for _, s := range variants {
+               fmt.Printf("%s %d\n", s, countMatches(s, bytes))
+       }
+       for _, sub := range substs {
+               bytes = regexp.MustCompile(sub.pat).ReplaceAll(bytes, []byte(sub.repl))
+       }
+       fmt.Printf("\n%d\n%d\n%d\n", ilen, clen, len(bytes))
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/regex-dna.txt b/gcc/testsuite/go.test/test/bench/shootout/regex-dna.txt
new file mode 100644 (file)
index 0000000..e23e71f
--- /dev/null
@@ -0,0 +1,13 @@
+agggtaaa|tttaccct 1
+[cgt]gggtaaa|tttaccc[acg] 0
+a[act]ggtaaa|tttacc[agt]t 0
+ag[act]gtaaa|tttac[agt]ct 0
+agg[act]taaa|ttta[agt]cct 1
+aggg[acg]aaa|ttt[cgt]ccct 0
+agggt[cgt]aa|tt[acg]accct 0
+agggta[cgt]a|t[acg]taccct 0
+agggtaa[cgt]|[acg]ttaccct 2
+
+10245
+10000
+13348
diff --git a/gcc/testsuite/go.test/test/bench/shootout/reverse-complement.c b/gcc/testsuite/go.test/test/bench/shootout/reverse-complement.c
new file mode 100644 (file)
index 0000000..b34c846
--- /dev/null
@@ -0,0 +1,100 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/*
+ * The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org
+ *
+ * contributed by Bob W
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define JBFSIZE 82      // line input buffer size
+#define QBFSIZE 5200     // output buffer initial size
+#define Z16     "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+#define V32     "\0TVGH\0\0CD\0\0M\0KN\0\0\0YSA\0BW\0R\0\0\0\0\0\0"
+#define VALL    Z16 Z16 Z16 Z16 V32 V32 Z16 Z16 Z16 Z16 Z16 Z16 Z16 Z16
+
+int errex(char *s, int n) {      // error message+value, return 1
+  fprintf(stderr,"\n*** Error: %s [%d]!\n", s, n);
+  return 1;
+}
+
+int main () {                    // ***** main *****
+  char *pj, *pq, *pr;            // buffer pointers: inp,out,/out
+  char *jjj = malloc(JBFSIZE);   // allocate input line buffer
+  char *qqq = malloc(QBFSIZE);   // output buffer (dyn. size)
+  char *pqstop = qqq+QBFSIZE;    // end-of-buffer pointer
+  char xtab[256] = VALL;         // char conversion table
+
+  if (!jjj || !qqq)
+    return errex("Buffer allocation", !jjj + !qqq);
+  pj = fgets(jjj,JBFSIZE,stdin);         // fetch 1st line
+  if (!pj)
+    return errex("No input data",0);
+  if (*jjj != '>')
+    return errex("1st char not '>'", 0);
+
+  while (pj) {                           // MAIN LOOP: process data
+    fputs(jjj, stdout);                  // output ID line
+
+    for (pq=qqq+1, pr=pqstop; ; pq++) {  // LOOP: fill output buffer
+      pj = fgets(jjj, JBFSIZE, stdin);   // get line from stdin
+      if (!pj || (*jjj=='>'))  break;    // EOF or new ID line
+      if (pr <= (pq+61)) {               // need to resize buffer
+        char *newstop = pqstop + 12777888;
+        char *newptr  = realloc(qqq, newstop-qqq);
+        if (!newptr)
+          return errex("Out of memory", 0);
+        if (newptr != qqq) {             // new base: adj. pointers
+          size_t x = newptr-qqq;         // offset for pointer update
+          pq+=x;  pr+=x;  qqq+=x;
+          newstop+=x;  pqstop+=x;
+        }
+        pr = __builtin_memmove(newstop-(pqstop-pr), pr, pqstop-pr);
+        pqstop = newstop;                // buffer resize complete
+      }
+      while (*pj) {                      // LOOP: conv. & revert line
+        char c = xtab[(unsigned char)(*pj++)];
+        if (c)                           // conversion valid
+          *(--pr) = c;
+      }
+    }
+
+    for (pq = qqq; pr<pqstop; ) {        // LOOP: format output
+      size_t x = (pqstop-pr)<60 ? pqstop-pr : 60;
+      __builtin_memmove(pq,pr,x);        // move line to free space
+      pr+=x;  pq+=x;  *(pq++) = 0xA;     // adjust pointers, add LF
+    }
+    fwrite(qqq, 1, pq-qqq, stdout);      // output converted data
+  }
+  return 0;
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/reverse-complement.go b/gcc/testsuite/go.test/test/bench/shootout/reverse-complement.go
new file mode 100644 (file)
index 0000000..baa30ff
--- /dev/null
@@ -0,0 +1,105 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by The Go Authors.
+ */
+
+package main
+
+import (
+       "bufio"
+       "os"
+)
+
+const lineSize = 60
+
+var complement = [256]uint8{
+       'A': 'T', 'a': 'T',
+       'C': 'G', 'c': 'G',
+       'G': 'C', 'g': 'C',
+       'T': 'A', 't': 'A',
+       'U': 'A', 'u': 'A',
+       'M': 'K', 'm': 'K',
+       'R': 'Y', 'r': 'Y',
+       'W': 'W', 'w': 'W',
+       'S': 'S', 's': 'S',
+       'Y': 'R', 'y': 'R',
+       'K': 'M', 'k': 'M',
+       'V': 'B', 'v': 'B',
+       'H': 'D', 'h': 'D',
+       'D': 'H', 'd': 'H',
+       'B': 'V', 'b': 'V',
+       'N': 'N', 'n': 'N',
+}
+
+func main() {
+       in := bufio.NewReader(os.Stdin)
+       buf := make([]byte, 1024*1024)
+       line, err := in.ReadSlice('\n')
+       for err == nil {
+               os.Stdout.Write(line)
+
+               // Accumulate reversed complement in buf[w:]
+               nchar := 0
+               w := len(buf)
+               for {
+                       line, err = in.ReadSlice('\n')
+                       if err != nil || line[0] == '>' {
+                               break
+                       }
+                       line = line[0 : len(line)-1]
+                       nchar += len(line)
+                       if len(line)+nchar/60+128 >= w {
+                               nbuf := make([]byte, len(buf)*5)
+                               copy(nbuf[len(nbuf)-len(buf):], buf)
+                               w += len(nbuf) - len(buf)
+                               buf = nbuf
+                       }
+
+                       // This loop is the bottleneck.
+                       for _, c := range line {
+                               w--
+                               buf[w] = complement[c]
+                       }
+               }
+
+               // Copy down to beginning of buffer, inserting newlines.
+               // The loop left room for the newlines and 128 bytes of padding.
+               i := 0
+               for j := w; j < len(buf); j += 60 {
+                       n := copy(buf[i:i+60], buf[j:])
+                       buf[i+n] = '\n'
+                       i += n + 1
+               }
+               os.Stdout.Write(buf[0:i])
+       }
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/reverse-complement.txt b/gcc/testsuite/go.test/test/bench/shootout/reverse-complement.txt
new file mode 100644 (file)
index 0000000..14d792a
--- /dev/null
@@ -0,0 +1,171 @@
+>ONE Homo sapiens alu
+CGGAGTCTCGCTCTGTCGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAAC
+CTCCGCCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACA
+GGCGCGCGCCACCACGCCCGGCTAATTTTTGTATTTTTAGTAGAGACGGGGTTTCACCAT
+GTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAA
+AGTGCTGGGATTACAGGCGTGAGCCACCGCGCCCGGCCTTTTTGAGACGGAGTCTCGCTC
+TGTCGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAACCTCCGCCTCCCGG
+GTTCAAGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGCGCGCGCCACC
+ACGCCCGGCTAATTTTTGTATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTG
+GTCTCGAACTCCTGACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAAAGTGCTGGGATTA
+CAGGCGTGAGCCACCGCGCCCGGCCTTTTTGAGACGGAGTCTCGCTCTGTCGCCCAGGCT
+GGAGTGCAGTGGCGCGATCTCGGCTCACTGCAACCTCCGCCTCCCGGGTTCAAGCGATTC
+TCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGCGCGCGCCACCACGCCCGGCTAAT
+TTTTGTATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTCGAACTCCT
+GACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGGCGTGAGCCA
+CCGCGCCCGGCCTTTTTGAGACGGAGTCTCGCTCTGTCGCCCAGGCTGGAGTGCAGTGGC
+GCGATCTCGGCTCACTGCAACCTCCGCCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCC
+TCCCGAGTAGCTGGGATTACAGGCGCGCGCCACCACGCCCGGCTAATTTTTGTATTTTTA
+GTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAGGTGAT
+CCGCCCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGGCGTGAGCCACCGCGCCCGGCCT
+TTTTGAGACGGAGTCTCGCTCTGTCGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTC
+ACTGCAACCTCCGCCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTG
+GGATTACAGGCGCGCGCCACCACGCCCGGCTAATTTTTGTATTTTTAGTAGAGACGGGGT
+TTCACCATGTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAGGTGATCCGCCCGCCTCGG
+CCTCCCAAAGTGCTGGGATTACAGGCGTGAGCCACCGCGCCCGGCCTTTTTGAGACGGAG
+TCTCGCTCTGTCGCCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAACCTCCG
+CCTCCCGGGTTCAAGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGCGC
+GCGCCACCACGCCCGGCTAATTTTTGTATTTTTAGTAGAGACGGGGTTTCACCATGTTGG
+CCAGGCTGGTCTCGAACTCCTGACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAAAGTGC
+TGGGATTACAGGCGTGAGCCACCGCGCCCGGCCTTTTTGAGACGGAGTCTCGCTCTGTCG
+CCCAGGCTGGAGTGCAGTGGCGCGATCTCGGCTCACTGCAACCTCCGCCTCCCGGGTTCA
+AGCGATTCTCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGCGCGCGCCACCACGCC
+CGGCTAATTTTTGTATTTTTAGTAGAGACGGGGTTTCACCATGTTGGCCAGGCTGGTCTC
+GAACTCCTGACCTCAGGTGATCCGCCCGCCTCGGCCTCCCAAAGTGCTGGGATTACAGGC
+GTGAGCCACCGCGCCCGGCC
+>TWO IUB ambiguity codes
+TAGGDHACHATCRGTRGVTGAGWTATGYTGCTGTCABACDWVTRTAAGAVVAGATTTNDA
+GASMTCTGCATBYTTCAAKTTACMTATTACTTCATARGGYACMRTGTTTTYTATACVAAT
+TTCTAKGDACKADACTATATNTANTCGTTCACGBCGYSCBHTANGGTGATCGTAAAGTAA
+CTATBAAAAGATSTGWATBCSGAKHTTABBAACGTSYCATGCAAVATKTSKTASCGGAAT
+WVATTTNTCCTTCTTCTTDDAGTGGTTGGATACVGTTAYMTMTBTACTTTHAGCTAGBAA
+AAGAGKAAGTTRATWATCAGATTMDDTTTAAAVAAATATTKTCYTAAATTVCNKTTRACG
+ADTATATTTATGATSADSCAATAWAGCGRTAGTGTAAGTGACVGRADYGTGCTACHVSDT
+CTVCARCSYTTAATATARAAAATTTAATTTACDAATTGBACAGTAYAABATBTGCAGBVG
+TGATGGDCAAAATBNMSTTABKATTGGSTCCTAGBTTACTTGTTTAGTTTATHCGATSTA
+AAGTCGAKAAASTGTTTTAWAKCAGATATACTTTTMTTTTGBATAGAGGAGCMATGATRA
+AAGGNCAYDCCDDGAAAGTHGBTAATCKYTBTACBGTBCTTTTTGDTAASSWTAAWAARA
+TTGGCTAAGWGRADTYACATAGCTCBTAGATAWAGCAATNGTATMATGTTKMMAGTAWTC
+CCNTSGAAWATWCAAAAMACTGAADNTYGATNAATCCGAYWNCTAACGTTAGAGDTTTTC
+ATCTGGKRTAVGAABVCTGWGBTCTDVGKATTBTCTAAGGVADAAAVWTCTAGGGGAGGG
+TTAGAACAATTAAHTAATNAAATGCATKATCTAAYRTDTCAGSAYTTYHGATRTTWAVTA
+BGNTCDACAGBCCRCAGWCRTCABTGMMAWGMCTCAACCGATRTGBCAVAATCGTDWDAA
+CAYAWAATWCTGGTAHCCCTAAGATAACSCTTAGTGSAACAWTBGTCDTTDGACWDBAAC
+HTTTNGSKTYYAAYGGATNTGATTTAARTTAMBAATCTAAGTBTCATYTAACTTADTGTT
+TCGATACGAAHGGCYATATACCWDTKYATDCSHTDTCAAAATGTGBACTGSCCVGATGTA
+TCMMAGCCTTDAAABAATGAAGAGTAACTHATMGVTTAATAACCCGGTTVSANTGCAATT
+GTGAGATTTAMGTTTAMAAYGCTGACAYAAAAAGGCACAMYTAAGVGGCTGGAABVTACG
+GATTSTYGTBVAKTATWACCGTGTKAGTDTGTATGTTTAAAGGAAAAAGTAACATARAAA
+GGTYCAMNYAAABTATAGNTSATANAGTCATCCTATWADKAACTRGTMSACDGTATSAYT
+AAHSHGTAABYGACTYTATADTGSTATAGAGAAATCGNTAAAGGAAATCAGTTGTNCYMV
+TNACDRTATBNATATASTAGAAMSCGGGANRCKKMCAAACATTNAGTCTRMAATBMTACC
+CGTACTTCTBGDSYAATWGAAAATGACADDCHAKAAAYATATTKTTTTCACANACWAGAA
+AKATCCTTATTAYKHKCTAAACARTATTTTDATBTVWCYGCAATACTAGGKAAASTTDGA
+MGGCHTTHAATVCAHDRYAGGRCTATACGTCMAGAGAGCTBTHGNACARTCCBDCTAAGA
+GCGGCTTTARTAAAGAATCCNAGTAWBTGACTTGAATTACWTVACAGAAABCAATNAAAC
+CGTNTRANTTGAYCMAWBADTANABRGGTKTHTWTAGTTVCTMBKTAGMTVKCCAGCANT
+TVAGSWTTAGCCGCRHTTTCCTTHNTATTAAGAAGAATAGGMTRAARTCTABGTACDTTT
+TATAAVDHAHTATAGATCCTAGTAAGYTWATDWCATGAGGGATAGTAAMDMNGBASTWAM
+TSTATRBAYDABATGTATATYCGCACTGTTTTAACMCWBTATAWAGTATBTSTATVTTAR
+CCTMTTAAKADATCAACTAATYTSVTAKGDATTATGCKTCAYCAKAATACTTKAANGAGT
+ATTSDAGATCGGAAATACTTAAYAAVGTATMCGCTTGTGTDCTAATYTATTTTATTTWAA
+CAGWRCTATGTAGMTGTTTGTTYKTNGTTKTCAGAACNTRACCTACKTGSRATGTGGGGG
+CTGTCATTAAGTAAATNGSTTABCCCCTCGCAGCTCWHTCGCGAAGCAVATGCKACGHCA
+ACAKTTAATAACASAAADATTWNYTGTAATTGTTCGTMHACHTWATGTGCWTTTTGAAHY
+ACTTTGTAYAMSAAACTTAADAAATATAGTABMATATYAATGSGGTAGTTTGTGTBYGGT
+TWSGSVGWMATTDMTCCWWCABTCSVACAGBAATGTTKATBGTCAATAATCTTCTTAAAC
+ARVAATHAGYBWCTRWCABGTWWAATCTAAGTCASTAAAKTAAGVKBAATTBGABACGTA
+AGGTTAAATAAAAACTRMDTWBCTTTTTAATAAAAGATMGCCTACKAKNTBAGYRASTGT
+ASSTCGTHCGAAKTTATTATATTYTTTGTAGAACATGTCAAAACTWTWTHGKTCCYAATA
+AAGTGGAYTMCYTAARCSTAAATWAKTGAATTTRAGTCTSSATACGACWAKAASATDAAA
+TGYYACTSAACAAHAKTSHYARGASTATTATTHAGGYGGASTTTBGAKGATSANAACACD
+TRGSTTRAAAAAAAACAAGARTCVTAGTAAGATAWATGVHAAKATWGAAAAGTYAHVTAC
+TCTGRTGTCAWGATRVAAKTCGCAAVCGASWGGTTRTCSAMCCTAACASGWKKAWDAATG
+ACRCBACTATGTGTCTTCAAAHGSCTATATTTCGTVWAGAAGTAYCKGARAKSGKAGTAN
+TTTCYACATWATGTCTAAAADMDTWCAATSTKDACAMAADADBSAAATAGGCTHAHAGTA
+CGACVGAATTATAAAGAHCCVAYHGHTTTACATSTTTATGNCCMTAGCATATGATAVAAG
+>THREE Homo sapiens frequency
+ATATTTATCTTTTCACTTCCTACATTGGTCAGACCATTATTCGACACGTGGCGTCATTTT
+GTCATACCGGGTAATGTTGGAAACAAAACGTACTGATAAAATACTGAGTTGTAAACTCTA
+ATCAGATAACGCGCTTGGATATTAAGATTCACACAGGGGTTTCGGCTGTAAAAAAACTTG
+TGGAGCTGTTCTGGGACAGATAAGTTGTACCTCGTACTTAGCTAATTAATGAACCAACTG
+ATTACGATAGAACAATTCTGAGGCCGCCAGGACAGCCAAATTTTAATCTTATAAAGCTGG
+AAACAGCCGGTATTAGCTTCTCGCATACTTTGCCTGCATTGGTACCTTACAGATATCAGC
+GTAGTCATATACACCTCGGTCTCAGCTAAGCTTGTATCTCTTAGAGTAGTTCAAAGATAG
+TGGACAATACCTGTGGAATCGATTGCAGATATGGATTTATTTAACTACTGAGTCTCATTC
+ACAAGCTAAGCAAGGAGCACGTTTTGGTGCCGGCATACCGATTTGCTATCATGTCAGCAA
+ATTTGCGTTGTATTCCTAGTTGCACCCATTAAGGCCACACTCCGAACCTAATTATTACAT
+CGCAAAGACATGTACGAAGGACCCGATGTCGAATAGAAGGGAGGACTGTTCATTGGAAGC
+TAGACCAGAGGAATCGCAAAGATGCAACTCTTACAATAAAAATCTAATTTCAGTCAACAC
+GCAATTTCTATAAGGTTTCCGATAATAATGAACCGTCTTCCACAGGGGAATTTGCCATGC
+TCGTAAAAGTAGTTAATCCAAGTAGAAGAAATTTTGATAATGTTTTAAGTTGGCACGAAG
+GAATTCAGAGAGATCTTACCTAACAAAGGCATTAGTAGATGTTCCTTGGTTCACACTCGG
+TCAATCAGAGCACATACTACGGGCGATACCGGGAATGACACAACATCAATGAGATTGTTA
+AGTGAGGTAATTGACTTTAGAGGACTCGATCAGTATACTGTCACTATGAACATCGTATTA
+ATTGTTATCCGATATATACACCACCGATTTGCTTGTGCAAGGTTACAGACCCATTCGATA
+AATACAAACACGGAGCGATATTATTTAAGGAGTGCTGTCTTCAAAAGAATTATTCCCACA
+CCGACATAAGAACTTCGCTCCGTCATTCCAGATTTAAATAACATAACGTAACGCTTTGCT
+GATAACATAACATAACCGAGAATTTGCTTAGGAAATTTGGAGCAATATTGCATTGTTTCT
+CAGTCATCACAAGGCCCGCCAAAGAACTCTGAGAATCAGGATTCAACATGATTGGTAAGA
+CTCTATATATATAACTTAATTCTTGTGTCCGGAGATAGAAAGAGGACGAGAGATACTACG
+AAAGAAAGTGTACTTCGATGTATCAATTCAGACGCCTTCTCTATCATCAACATTATAGGT
+CTCGTATATGCTCGGCGCGATCTGCTTCTCTCCGCCAATAGCCCCATAGTGTATTTCAAG
+CGCAGTAACAGTGAAATCGTTACGAAGGTAGGGATGTTGCTTATAATTGTCGTAACTTAT
+CGCTTATGTATCTTTCAAGAATGAACGGCAGCATATACATACGTTCTACCTTTAGCTACA
+AAGCATCCATATACTCCCTCTCATGATTGAAACTCTTCCCTATTTTGTAGCCAATAGTGA
+AAGCGTATTAGTATAAATTCGTCGGTTTTTCACTCGCAACTGTTATACTCTGCAAACAAA
+CGAAAGCCTCATAGTACAAACCTAAAGCTACATACTTCATCATTGGCAGACCAGTGGCGG
+TATTTCTACGGAAGCATCACTATAGATATAAAGTTTCCCTTCATGTACGTCTGTTAACCA
+TATCACAAGAAACTGCTATCTCTGTCACGTAACAATTCACGCGCCTTATCGCCAAATGTT
+CATATATGCGCGGTATACGTATGAACGAATACTAATTAGTATAACGGAGGATTCACGGGA
+GGGATACTTGGGGCATTTATAAATCGTCTAAAAATTTTCTATCAGCACTTGCGGGTTATA
+GTGGATTACTAGGCAACATAATATTCTGTATTGGTCCAAATGACGCTATAGATAAATTAG
+CAAAATACATTGTTTCCATTTATGTAAGTCGAAACTCCAGGACTCCCGGGAACCAGTTAA
+ACCGTCTGGAAAAGACACATTGTGAGCGGGACTTCAATGATAGCTTTCAATGAGCTTCTC
+ATGCTTGGGGTCTGTACATATATGTTGGCGAAATTATCGTCTGTATTCTGTTATGCTTTG
+ATCATGGGTTATTAGTATAGTGTCCGGTTAAGTACCAATACCGCTAGAGACCCGACCTAA
+GTCGATAACTAACGATCATCGACGTAAGGATCGTCTCGATCAGTACTTCAGTCTAGATCT
+GGGAATAGTAACTCGTTAGTGAACTATGTCGTGTCATAACTCTAAAATGCAATCAAATCT
+TATTATTGAGTATTGATTATATAAAGCATCCGCTTAGCTTTACCCTCAAATGTTATATGC
+AATTTAAAGCGCTTGATATCGTCTACTCAAGTTCAGGTTTCACATGGCCGCAACGTGACG
+TTATTAGAGGTGGGTCATCATCTCTGAGGCTAGTGATGTTGAATACTCATTGAATGGGAA
+GTGGAATACCATGCTCGTAGGTAACAGCATGACCTATAAAATATACTATGGGTGTGTGGT
+AGATCAATATTGTTCAAGCATATCGTAACAATAACGGCTGAAATGTTACTGACATGAAAG
+AGGGAGTCCAAACCATTCTAACAGCTGATCAAGTCGTCTAAAAACGCCTGGTTCAGCCTT
+AAGAGTTATAAGCCAGACAAATTGTATCAATAGAGAATCCGTAAATTCCTCGGCCAACCT
+CTTGCAAAGACATCACTATCAATATACTACCGTGATCTTAATTAGTGAACTTATATAAAT
+ATCTACAACCAGATTCAACGGAAAAGCTTTAGTGGATTAGAAATTGCCAAGAATCACATT
+CATGTGGGTTCGAATGCTTTAGTAATACCATTTCGCCGAGTAGTCACTTCGCTGAACTGT
+CGTAAATTGCTATGACATAATCGAAAAGGATTGTCAAGAGTCGATTACTGCGGACTAATA
+ATCCCCACGGGGGTGGTCTCATGTCTCCCCAGGCGAGTGGGGACGGTTGATAAACACGCT
+GCATCGCGGACTGATGTTCCCAGTATTACATAGTCACATTGGATTGCGAGTAGTCTACCT
+ATTTATGAGCGAGAGATGCCTCTAACTACTTCGACTTTTAAAACCTTTCCACGCCAGTAT
+TCGGCGAAAGGGAAGTATTAAGGGTTGTCATAATTAAGCTGATACCACTTCAGACTTTGC
+TCTACTTCTGTCTTTCATTGGTTTAGTAAAGTCTGTCCATTCGTCGAGACCGTCTTTTGC
+AGCCTCATTCTACCAACTGCTCCGACTCTTAGTCTGCTTCTCCCAGCGTTATAACAAGAG
+GCATTTTGTCATCCTTAAAACAATAATAAAGAACTCGGAGCACTGATATAATGACTGAAT
+TAGAACCGCTTAAAAATACAACGAATAGATAAGACTATCGGATAAGATCTAATATGTAGT
+GATTAAGCCCTTTATTAATTAATAATAGTTACCCTTTCTGATGTAACGCGACATATTACG
+ATTTAGTGGCACGTCTGAATTGCAAAGCAGATCTCTACCCGATTTTTATTATAAATCCCG
+TATACATCTTGACTTGAGTAATTGTTCATCTTTTTATATCTCTTCGTACTACAAATAATT
+AATATCTCAACCCGTATTGTGTGATTCTAATTACCAACAGAATACGAGGAGGTTTTTGCT
+TAGGGCCATATATAATGAATCTATCTCGTTTATTCGCGGAACCCGAGATAACATTACGAT
+GTAACTATTTTAGAGAACTTAATACAAGAAACATTGCTGATTACTCATAACTAAATGCTT
+GGTAATATATCCTCAGTGCCCCTACCATCTTTTACGCAGGGATGTAATTACTTAGGATTC
+ATTGTGTAAGAATTACAATGAACGATGGATATGAAGGCATGTTGCGAGGTGTTCCTTGGT
+ATGTGAAGTTCGCAGGGCAACAAAAATTTCGCAGAATAGGCCTCAAAGTATTGGTAAAGA
+AGACAACTAATCATCACGAGCTTCTGATATCAATACGAACGAGTCCTGTGATGGATGAAA
+GAAAGTCGTATCGAAAATGTCAAGAGTCTGCCCAATGTAACTTACTTCAAAAAATAACGC
+TTCCGCCAAGTACGTTCGAATAAACGTAATTTTAAAAATACATAAGGGGTGTTAGAAAGT
+AAGCGACGGGATATAAGTTAGACTCAAGATTCCGCCGTAAAACGAGACTGATTCCGAAGA
+TTGTTCGTGGATCTGGTCATGACTTTCACTGAGTAAGGAGTTTCGACATATGTCAATAAA
+CACAAAAATAGAAGCTATTCGATCTGAAAAATATTAGGACAAGAAACTATCTCACGCTAG
+CCCAGAATATTCACTCACCCACGGGCGATACTAAAGCACTATATAGTCGCGTGATTACTA
+TACATATGGTACACATAAGAATCACGATCAGGTTCTCAATTTTCAACAATATATGTTTAT
+TTGCATAGGTAATATTAGGCCTTTAAGAGAAGGATGGGTGAGATACTCCGGGGATGGCGG
+CAATAAAGAAAAACACGATATGAGTAATAGGATCCTAATATCTTGGCGAGAGACTTAAGG
+TACGAATTTTGCGCAATCTATTTTTTACTTGGCCAGAATTCATGTATGGTATAAGTACGA
+ACTTTTTTGATCACTTTCATGGCTACCTGATTAGGATAGTTTGAGGAATTTCCCAAATAT
+ACCGATTTAATATACACTAGGGCTTGTCACTTTGAGTCAGAAAAAGAATATAATTACTTA
+GGGTAATGCTGCATACATATTCTTATATTGCAAAGGTTCTCTGGGTAATCTTGAGCCTTC
+ACGATACCTGGTGAAGTGTT
diff --git a/gcc/testsuite/go.test/test/bench/shootout/spectral-norm-parallel.go b/gcc/testsuite/go.test/test/bench/shootout/spectral-norm-parallel.go
new file mode 100644 (file)
index 0000000..2706f39
--- /dev/null
@@ -0,0 +1,111 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by The Go Authors.
+ * Based on spectral-norm.c by Sebastien Loisel
+ */
+
+package main
+
+import (
+       "flag"
+       "fmt"
+       "math"
+       "runtime"
+)
+
+var n = flag.Int("n", 2000, "count")
+var nCPU = flag.Int("ncpu", 4, "number of cpus")
+
+func evalA(i, j int) float64 { return 1 / float64(((i+j)*(i+j+1)/2 + i + 1)) }
+
+type Vec []float64
+
+func (v Vec) Times(i, n int, u Vec, c chan int) {
+       for ; i < n; i++ {
+               v[i] = 0
+               for j := 0; j < len(u); j++ {
+                       v[i] += evalA(i, j) * u[j]
+               }
+       }
+       c <- 1
+}
+
+func (v Vec) TimesTransp(i, n int, u Vec, c chan int) {
+       for ; i < n; i++ {
+               v[i] = 0
+               for j := 0; j < len(u); j++ {
+                       v[i] += evalA(j, i) * u[j]
+               }
+       }
+       c <- 1
+}
+
+func wait(c chan int) {
+       for i := 0; i < *nCPU; i++ {
+               <-c
+       }
+}
+
+func (v Vec) ATimesTransp(u Vec) {
+       x := make(Vec, len(u))
+       c := make(chan int, *nCPU)
+       for i := 0; i < *nCPU; i++ {
+               go x.Times(i*len(v) / *nCPU, (i+1)*len(v) / *nCPU, u, c)
+       }
+       wait(c)
+       for i := 0; i < *nCPU; i++ {
+               go v.TimesTransp(i*len(v) / *nCPU, (i+1)*len(v) / *nCPU, x, c)
+       }
+       wait(c)
+}
+
+func main() {
+       flag.Parse()
+       runtime.GOMAXPROCS(*nCPU)
+       N := *n
+       u := make(Vec, N)
+       for i := 0; i < N; i++ {
+               u[i] = 1
+       }
+       v := make(Vec, N)
+       for i := 0; i < 10; i++ {
+               v.ATimesTransp(u)
+               u.ATimesTransp(v)
+       }
+       var vBv, vv float64
+       for i := 0; i < N; i++ {
+               vBv += u[i] * v[i]
+               vv += v[i] * v[i]
+       }
+       fmt.Printf("%0.9f\n", math.Sqrt(vBv/vv))
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/spectral-norm.c b/gcc/testsuite/go.test/test/bench/shootout/spectral-norm.c
new file mode 100644 (file)
index 0000000..832eb3d
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* -*- mode: c -*-
+ *
+ * The Great Computer Language Shootout
+ * http://shootout.alioth.debian.org/
+ *
+ * Contributed by Sebastien Loisel
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+
+double eval_A(int i, int j) { return 1.0/((i+j)*(i+j+1)/2+i+1); }
+
+void eval_A_times_u(int N, const double u[], double Au[])
+{
+  int i,j;
+  for(i=0;i<N;i++)
+    {
+      Au[i]=0;
+      for(j=0;j<N;j++) Au[i]+=eval_A(i,j)*u[j];
+    }
+}
+
+void eval_At_times_u(int N, const double u[], double Au[])
+{
+  int i,j;
+  for(i=0;i<N;i++)
+    {
+      Au[i]=0;
+      for(j=0;j<N;j++) Au[i]+=eval_A(j,i)*u[j];
+    }
+}
+
+void eval_AtA_times_u(int N, const double u[], double AtAu[])
+{ double v[N]; eval_A_times_u(N,u,v); eval_At_times_u(N,v,AtAu); }
+
+int main(int argc, char *argv[])
+{
+  int i;
+  int N = ((argc == 2) ? atoi(argv[1]) : 2000);
+  double u[N],v[N],vBv,vv;
+  for(i=0;i<N;i++) u[i]=1;
+  for(i=0;i<10;i++)
+    {
+      eval_AtA_times_u(N,u,v);
+      eval_AtA_times_u(N,v,u);
+    }
+  vBv=vv=0;
+  for(i=0;i<N;i++) { vBv+=u[i]*v[i]; vv+=v[i]*v[i]; }
+  printf("%0.9f\n",sqrt(vBv/vv));
+  return 0;
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/spectral-norm.go b/gcc/testsuite/go.test/test/bench/shootout/spectral-norm.go
new file mode 100644 (file)
index 0000000..6667f3e
--- /dev/null
@@ -0,0 +1,93 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by The Go Authors.
+ * Based on spectral-norm.c by Sebastien Loisel
+ */
+
+package main
+
+import (
+       "flag"
+       "fmt"
+       "math"
+)
+
+var n = flag.Int("n", 2000, "count")
+
+func evalA(i, j int) float64 { return 1 / float64(((i+j)*(i+j+1)/2 + i + 1)) }
+
+type Vec []float64
+
+func (v Vec) Times(u Vec) {
+       for i := 0; i < len(v); i++ {
+               v[i] = 0
+               for j := 0; j < len(u); j++ {
+                       v[i] += evalA(i, j) * u[j]
+               }
+       }
+}
+
+func (v Vec) TimesTransp(u Vec) {
+       for i := 0; i < len(v); i++ {
+               v[i] = 0
+               for j := 0; j < len(u); j++ {
+                       v[i] += evalA(j, i) * u[j]
+               }
+       }
+}
+
+func (v Vec) ATimesTransp(u Vec) {
+       x := make(Vec, len(u))
+       x.Times(u)
+       v.TimesTransp(x)
+}
+
+func main() {
+       flag.Parse()
+       N := *n
+       u := make(Vec, N)
+       for i := 0; i < N; i++ {
+               u[i] = 1
+       }
+       v := make(Vec, N)
+       for i := 0; i < 10; i++ {
+               v.ATimesTransp(u)
+               u.ATimesTransp(v)
+       }
+       var vBv, vv float64
+       for i := 0; i < N; i++ {
+               vBv += u[i] * v[i]
+               vv += v[i] * v[i]
+       }
+       fmt.Printf("%0.9f\n", math.Sqrt(vBv/vv))
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/spectral-norm.txt b/gcc/testsuite/go.test/test/bench/shootout/spectral-norm.txt
new file mode 100644 (file)
index 0000000..b988598
--- /dev/null
@@ -0,0 +1 @@
+1.274224152
diff --git a/gcc/testsuite/go.test/test/bench/shootout/threadring.c b/gcc/testsuite/go.test/test/bench/shootout/threadring.c
new file mode 100644 (file)
index 0000000..2c4fb77
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/*
+* The Computer Language Benchmarks Game
+* http://shootout.alioth.debian.org/
+
+* contributed by Premysl Hruby
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <pthread.h>
+#include <string.h>
+#include <limits.h>
+
+#define THREADS (503)
+
+
+struct stack {
+   char x[PTHREAD_STACK_MIN];
+};
+
+
+/* staticaly initialize mutex[0] mutex */
+static pthread_mutex_t mutex[THREADS];
+static int data[THREADS];
+static struct stack stacks[THREADS];
+/* stacks must be defined staticaly, or my i386 box run of virtual memory for this
+ * process while creating thread +- #400 */
+
+static void* thread(void *num)
+{
+   int l = (int)num;
+   int r = (l+1) % THREADS;
+   int token;
+
+   while(1) {
+      pthread_mutex_lock(mutex + l);
+      token = data[l];
+      if (token) {
+         data[r] = token - 1;
+         pthread_mutex_unlock(mutex + r);
+      }
+      else {
+         printf("%i\n", l+1);
+         exit(0);
+      }
+   }
+}
+
+
+
+int main(int argc, char **argv)
+{
+   int i;
+   pthread_t cthread;
+   pthread_attr_t stack_attr;
+
+   if (argc != 2)
+      exit(255);
+   data[0] = atoi(argv[1]);
+
+   pthread_attr_init(&stack_attr);
+
+   for (i = 0; i < THREADS; i++) {
+      pthread_mutex_init(mutex + i, NULL);
+      pthread_mutex_lock(mutex + i);
+
+      pthread_attr_setstack(&stack_attr, &stacks[i], sizeof(struct stack));
+      pthread_create(&cthread, &stack_attr, thread, (void*)i);
+   }
+
+   pthread_mutex_unlock(mutex + 0);
+   pthread_join(cthread, NULL);
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/threadring.go b/gcc/testsuite/go.test/test/bench/shootout/threadring.go
new file mode 100644 (file)
index 0000000..e76dd0b
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    * Neither the name of "The Computer Language Benchmarks Game" nor the
+    name of "The Computer Language Shootout Benchmarks" nor the names of
+    its contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* The Computer Language Benchmarks Game
+ * http://shootout.alioth.debian.org/
+ *
+ * contributed by The Go Authors.
+ */
+
+package main
+
+import (
+       "flag"
+       "fmt"
+       "os"
+)
+
+var n = flag.Int("n", 1000, "how many passes")
+
+const Nthread = 503
+
+func f(i int, in <-chan int, out chan<- int) {
+       for {
+               n := <-in
+               if n == 0 {
+                       fmt.Printf("%d\n", i)
+                       os.Exit(0)
+               }
+               out <- n - 1
+       }
+}
+
+func main() {
+       flag.Parse()
+
+       one := make(chan int) // will be input to thread 1
+       var in, out chan int = nil, one
+       for i := 1; i <= Nthread-1; i++ {
+               in, out = out, make(chan int)
+               go f(i, in, out)
+       }
+       go f(Nthread, out, one)
+       one <- *n
+       <-make(chan int) // hang until ring completes
+}
diff --git a/gcc/testsuite/go.test/test/bench/shootout/threadring.txt b/gcc/testsuite/go.test/test/bench/shootout/threadring.txt
new file mode 100644 (file)
index 0000000..f9aaa4d
--- /dev/null
@@ -0,0 +1 @@
+498
diff --git a/gcc/testsuite/go.test/test/bench/shootout/timing.log b/gcc/testsuite/go.test/test/bench/shootout/timing.log
new file mode 100644 (file)
index 0000000..2541a76
--- /dev/null
@@ -0,0 +1,902 @@
+All tests on r45 or r70
+
+Aug 3 2009
+
+First version of fasta. Translation of fasta.c, fetched from
+       http://shootout.alioth.debian.org/u32q/benchmark.php?test=fasta&lang=gpp&id=4
+
+fasta -n 25000000
+       gcc -O2 fasta.c 5.98u 0.00s 6.01r
+       gccgo -O2 fasta.go      8.82u 0.02s 8.85r
+       6g fasta.go     13.50u 0.02s 13.53r
+       6g -B fata.go   12.99u 0.02s 13.02r
+
+Aug 4 2009
+[added timing.sh]
+
+# myrandom:
+#   hand-written optimization of integer division
+#   use int32->float conversion
+fasta -n 25000000
+       # probably I/O library inefficiencies
+       gcc -O2 fasta.c 5.99u 0.00s 6.00r 
+       gccgo -O2 fasta.go      8.82u 0.02s 8.85r
+       gc fasta        10.70u 0.00s 10.77r
+       gc_B fasta      10.09u 0.03s 10.12r
+
+reverse-complement < output-of-fasta-25000000
+       # we don't know - memory cache behavior?
+       gcc -O2 reverse-complement.c    2.04u 0.94s 10.54r
+       gccgo -O2 reverse-complement.go 6.54u 0.63s 7.17r
+       gc reverse-complement   6.55u 0.70s 7.26r
+       gc_B reverse-complement 6.32u 0.70s 7.10r
+
+nbody 50000000
+       # math.Sqrt needs to be in assembly; inlining is probably the other 50%
+       gcc -O2 nbody.c 21.61u 0.01s 24.80r
+       gccgo -O2 nbody.go      118.55u 0.02s 120.32r
+       gc nbody        100.84u 0.00s 100.85r
+       gc_B nbody      103.33u 0.00s 103.39r
+[
+hacked Sqrt in assembler
+       gc nbody        31.97u 0.00s 32.01r
+]
+
+binary-tree 15 # too slow to use 20
+       # memory allocation and garbage collection
+       gcc -O2 binary-tree.c -lm       0.86u 0.00s 0.87r
+       gccgo -O2 binary-tree.go        1.69u 0.46s 2.15r
+       gccgo -O2 binary-tree-freelist.go       8.48u 0.00s 8.48r
+       gc binary-tree  9.60u 0.01s 9.62r
+       gc binary-tree-freelist 0.48u 0.01s 0.50r
+
+August 5, 2009
+
+fannkuch 12
+       # bounds checking is half the difference
+       # rest might be registerization
+       gcc -O2 fannkuch.c      60.09u 0.01s 60.32r
+       gccgo -O2 fannkuch.go   64.89u 0.00s 64.92r
+       gc fannkuch     124.59u 0.00s 124.67r
+       gc_B fannkuch   91.14u 0.00s 91.16r
+
+regex-dna 100000
+       # regexp code is slow on trivial regexp
+       gcc -O2 regex-dna.c -lpcre      0.92u 0.00s 0.99r
+       gc regexp-dna   26.94u 0.18s 28.75r
+       gc_B regexp-dna 26.51u 0.09s 26.75r
+
+spectral-norm 5500
+       gcc -O2 spectral-norm.c -lm     11.54u 0.00s 11.55r
+       gccgo -O2 spectral-norm.go      12.20u 0.00s 12.23r
+       gc spectral-norm        50.23u 0.00s 50.36r
+       gc_B spectral-norm      49.69u 0.01s 49.83r
+       gc spectral-norm-parallel       24.47u 0.03s 11.05r  # has shift >>1 not div /2
+       [using >>1 instead of /2 : gc gives 24.33u 0.00s 24.33r]
+
+August 6, 2009
+
+k-nucleotide 5000000
+       # string maps are slower than glib string maps
+       gcc -O2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include k-nucleotide.c -lglib-2.0   k-nucleotide.c: 10.72u 0.01s 10.74r
+       gccgo -O2 k-nucleotide.go       21.64u 0.83s 22.78r
+       gc k-nucleotide 16.08u 0.06s 16.50r
+       gc_B k-nucleotide       17.32u 0.02s 17.37r
+
+mandelbrot 5500
+       # floating point code generator should use more registers
+       gcc -O2 mandelbrot.c    56.13u 0.02s 56.17r
+       gccgo -O2 mandelbrot.go 57.49u 0.01s 57.51r
+       gc mandelbrot   74.32u 0.00s 74.35r
+       gc_B mandelbrot 74.28u 0.01s 74.31r
+
+meteor 2100
+       # we don't know
+       gcc -O2 meteor-contest.c        0.10u 0.00s 0.10r
+       gccgo -O2 meteor-contest.go     0.12u 0.00s 0.14r
+       gc meteor-contest       0.24u 0.00s 0.26r
+       gc_B meteor-contest     0.23u 0.00s 0.24r
+
+pidigits 10000
+       # bignum is slower than gmp
+       gcc -O2 pidigits.c -lgmp        2.60u 0.00s 2.62r
+       gc pidigits     77.69u 0.14s 78.18r
+       gc_B pidigits   74.26u 0.18s 75.41r
+       gc_B pidigits   68.48u 0.20s 69.31r   # special case: no bounds checking in bignum
+
+August 7 2009
+
+# New gc does better division by powers of 2.  Significant improvements:
+
+spectral-norm 5500
+       # floating point code generator should use more registers; possibly inline evalA
+       gcc -O2 spectral-norm.c -lm     11.50u 0.00s 11.50r
+       gccgo -O2 spectral-norm.go      12.02u 0.00s 12.02r
+       gc spectral-norm        23.98u 0.00s 24.00r     # new time is 0.48 times old time, 52% faster
+       gc_B spectral-norm      23.71u 0.01s 23.72r     # ditto
+       gc spectral-norm-parallel       24.04u 0.00s 6.26r  # /2 put back.  note: 4x faster (on r70, idle)
+
+k-nucleotide 1000000
+       # string maps are slower than glib string maps
+       gcc -O2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include k-nucleotide.c -lglib-2.0   10.82u 0.04s 10.87r
+       gccgo -O2 k-nucleotide.go       22.73u 0.89s 23.63r
+       gc k-nucleotide 15.97u 0.03s 16.04r
+       gc_B k-nucleotide       15.86u 0.06s 15.93r     # 8.5% faster, but probably due to weird cache effeccts in previous version
+
+pidigits 10000
+       # bignum is slower than gmp
+       gcc -O2 pidigits.c -lgmp        2.58u 0.00s 2.58r
+       gc pidigits     71.24u 0.04s 71.28r     # 8.5% faster
+       gc_B pidigits   71.25u 0.03s 71.29r     # 4% faster
+
+threadring 50000000
+       gcc -O2 threadring.c -lpthread  35.51u 160.21s 199.50r
+       gccgo -O2 threadring.go 90.33u 459.95s 448.03r
+       gc threadring   33.11u 0.00s 33.14r
+       GOMAXPROCS=4 gc threadring      114.48u 226.65s 371.59r
+       # change wait code to do <-make(chan int) instead of time.Sleep
+       gc threadring   28.41u 0.01s 29.35r
+       GOMAXPROCS=4 gc threadring      112.59u 232.83s 384.72r
+       
+chameneos 6000000
+       gcc -O2 chameneosredux.c -lpthread      18.14u 276.52s 76.93r
+       gc chameneosredux       20.19u 0.01s 20.23r
+
+Aug 10 2009
+
+# new 6g with better fp registers, fast div and mod of integers
+# complete set of timings listed. significant changes marked ***
+
+fasta -n 25000000
+       # probably I/O library inefficiencies
+       gcc -O2 fasta.c 5.96u 0.00s 5.97r
+       gc fasta        10.59u 0.01s 10.61r
+       gc_B fasta      9.92u 0.02s 9.95r
+
+reverse-complement < output-of-fasta-25000000
+       # we don't know - memory cache behavior?
+       gcc -O2 reverse-complement.c    1.96u 1.56s 16.23r
+       gccgo -O2 reverse-complement.go 6.41u 0.62s 7.05r
+       gc reverse-complement   6.46u 0.70s 7.17r
+       gc_B reverse-complement 6.22u 0.72s 6.95r
+
+nbody 50000000
+       # math.Sqrt needs to be in assembly; inlining is probably the other 50%
+       gcc -O2 nbody.c 21.26u 0.01s 21.28r
+       gccgo -O2 nbody.go      116.68u 0.07s 116.80r
+       gc nbody        86.64u 0.01s 86.68r     # -14%
+       gc_B nbody      85.72u 0.02s 85.77r     # *** -17%
+
+binary-tree 15 # too slow to use 20
+       # memory allocation and garbage collection
+       gcc -O2 binary-tree.c -lm       0.87u 0.00s 0.87r
+       gccgo -O2 binary-tree.go        1.61u 0.47s 2.09r
+       gccgo -O2 binary-tree-freelist.go       0.00u 0.00s 0.01r
+       gc binary-tree  9.11u 0.01s 9.13r       # *** -5%
+       gc binary-tree-freelist 0.47u 0.01s 0.48r
+
+fannkuch 12
+       # bounds checking is half the difference
+       # rest might be registerization
+       gcc -O2 fannkuch.c      59.92u 0.00s 59.94r
+       gccgo -O2 fannkuch.go   65.54u 0.00s 65.58r
+       gc fannkuch     123.98u 0.01s 124.04r
+       gc_B fannkuch   90.75u 0.00s 90.78r
+
+regex-dna 100000
+       # regexp code is slow on trivial regexp
+       gcc -O2 regex-dna.c -lpcre      0.91u 0.00s 0.92r
+       gc regex-dna    27.25u 0.02s 27.28r
+       gc_B regex-dna  29.51u 0.03s 29.55r
+
+spectral-norm 5500
+       # possibly inline evalA
+       gcc -O2 spectral-norm.c -lm     11.57u 0.00s 11.57r
+       gccgo -O2 spectral-norm.go      12.07u 0.01s 12.08r
+       gc spectral-norm        23.99u 0.00s 24.00r
+       gc_B spectral-norm      23.73u 0.00s 23.75r
+
+k-nucleotide 1000000
+       # string maps are slower than glib string maps
+       gcc -O2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include k-nucleotide.c -lglib-2.0   10.63u 0.02s 10.69r
+       gccgo -O2 k-nucleotide.go       23.19u 0.91s 24.12r
+       gc k-nucleotide 16.73u 0.04s 16.78r     # *** +5% (but this one seems to vary by more than that)
+       gc_B k-nucleotide       16.46u 0.04s 16.51r     # *** +5%
+
+mandelbrot 16000
+       gcc -O2 mandelbrot.c    56.16u 0.00s 56.16r
+       gccgo -O2 mandelbrot.go 57.41u 0.01s 57.42r
+       gc mandelbrot   64.05u 0.02s 64.08r     # *** -14%
+       gc_B mandelbrot 64.10u 0.02s 64.14r     # *** -14%
+
+meteor 2100
+       # we don't know
+       gcc -O2 meteor-contest.c        0.10u 0.00s 0.10r
+       gccgo -O2 meteor-contest.go     0.12u 0.00s 0.12r
+       gc meteor-contest       0.18u 0.00s 0.20r       # *** -25%
+       gc_B meteor-contest     0.17u 0.00s 0.18r       # *** -24%
+
+pidigits 10000
+       # bignum is slower than gmp
+       gcc -O2 pidigits.c -lgmp        2.57u 0.00s 2.57r
+       gc pidigits     71.82u 0.04s 71.89r
+       gc_B pidigits   71.84u 0.08s 71.98r
+
+threadring 50000000
+       gcc -O2 threadring.c -lpthread  30.91u 164.33s 204.57r
+       gccgo -O2 threadring.go 87.12u 460.04s 447.61r
+       gc threadring   38.55u 0.00s 38.56r     # *** +16%
+
+chameneos 6000000
+       gcc -O2 chameneosredux.c -lpthread      17.93u 323.65s 88.47r
+       gc chameneosredux       21.72u 0.00s 21.73r
+
+August 10 2009
+
+# In-place versions for some bignum operations.
+pidigits 10000
+       gcc -O2 pidigits.c -lgmp        2.56u 0.00s 2.57r
+       gc pidigits     55.22u 0.04s 55.29r     # *** -23%
+       gc_B pidigits   55.49u 0.02s 55.60r     # *** -23%
+
+September 3 2009
+
+# New 6g inlines slices, has a few other tweaks.
+# Complete rerun. Significant changes marked.
+
+fasta -n 25000000
+       # probably I/O library inefficiencies
+       gcc -O2 fasta.c 5.96u 0.00s 5.96r
+       gc fasta        10.63u 0.02s 10.66r
+       gc_B fasta      9.92u 0.01s 9.94r
+
+reverse-complement < output-of-fasta-25000000
+       # we don't know - memory cache behavior?
+       gcc -O2 reverse-complement.c    1.92u 0.33s 2.93r
+       gccgo -O2 reverse-complement.go 6.76u 0.72s 7.58r       # +5%
+       gc reverse-complement   6.59u 0.70s 7.29r       # +2%
+       gc_B reverse-complement 5.57u 0.80s 6.37r       # -10%
+
+nbody 50000000
+       # math.Sqrt needs to be in assembly; inlining is probably the other 50%
+       # also loop alignment appears to be critical
+       gcc -O2 nbody.c 21.28u 0.00s 21.28r
+       gccgo -O2 nbody.go      119.21u 0.00s 119.22r   # +2%
+       gc nbody        109.72u 0.00s 109.78r   # + 28% *****
+       gc_B nbody      85.90u 0.00s 85.91r
+
+binary-tree 15 # too slow to use 20
+       # memory allocation and garbage collection
+       gcc -O2 binary-tree.c -lm       0.86u 0.00s 0.87r
+       gccgo -O2 binary-tree.go        1.88u 0.54s 2.42r       # +17%
+       gccgo -O2 binary-tree-freelist.go       0.01u 0.01s 0.02r
+       gc binary-tree  8.94u 0.01s 8.96r       # -2%
+       gc binary-tree-freelist 0.47u 0.01s 0.48r
+
+fannkuch 12
+       # bounds checking is half the difference
+       # rest might be registerization
+       gcc -O2 fannkuch.c      60.12u 0.00s 60.12r
+       gccgo -O2 fannkuch.go   92.62u 0.00s 92.66r             # +41% ***
+       gc fannkuch     123.90u 0.00s 123.92r
+       gc_B fannkuch   89.71u 0.00s 89.74r     # -1%
+
+regex-dna 100000
+       # regexp code is slow on trivial regexp
+       gcc -O2 regex-dna.c -lpcre      0.88u 0.00s 0.88r
+       gc regex-dna    25.77u 0.01s 25.79r             # -5%
+       gc_B regex-dna  26.05u 0.02s 26.09r     # -12% ***
+
+spectral-norm 5500
+       # possibly inline evalA
+       gcc -O2 spectral-norm.c -lm     11.51u 0.00s 11.51r
+       gccgo -O2 spectral-norm.go      11.95u 0.00s 11.96r
+       gc spectral-norm        24.23u 0.00s 24.23r
+       gc_B spectral-norm      23.83u 0.00s 23.84r
+
+k-nucleotide 1000000
+       # string maps are slower than glib string maps
+       gcc -O2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include k-nucleotide.c -lglib-2.0   10.68u 0.04s 10.72r
+       gccgo -O2 k-nucleotide.go       23.03u 0.88s 23.92r
+       gc k-nucleotide 15.79u 0.05s 15.85r     # -5% (but this one seems to vary by more than that)
+       gc_B k-nucleotide       17.88u 0.05s 17.95r # +8% (ditto)
+
+mandelbrot 16000
+       gcc -O2 mandelbrot.c    56.17u 0.02s 56.20r
+       gccgo -O2 mandelbrot.go 56.74u 0.02s 56.79r      # -1%
+       gc mandelbrot   63.31u 0.01s 63.35r     # -1%
+       gc_B mandelbrot 63.29u 0.00s 63.31r     # -1%
+
+meteor 2100
+       # we don't know
+       gcc -O2 meteor-contest.c        0.10u 0.00s 0.10r
+       gccgo -O2 meteor-contest.go     0.11u 0.00s 0.12r
+       gc meteor-contest       0.18u 0.00s 0.19r
+       gc_B meteor-contest     0.17u 0.00s 0.18r
+
+pidigits 10000
+       # bignum is slower than gmp
+       gcc -O2 pidigits.c -lgmp        2.56u 0.00s 2.57r
+       gc pidigits     55.87u 0.03s 55.91r
+       gc_B pidigits   55.93u 0.03s 55.99r
+
+# these tests are compared using real time, since they run multiple processors
+# accuracy probably low
+threadring 50000000
+       gcc -O2 threadring.c -lpthread  26.31u 164.69s 199.92r  # -2%
+       gccgo -O2 threadring.go 87.90u 487.26s 472.81r  # +6%
+       gc threadring   28.89u 0.00s 28.90r     # -25% ***
+
+chameneos 6000000
+       gcc -O2 chameneosredux.c -lpthread      16.41u 296.91s 81.17r   # -8%
+       gc chameneosredux       19.97u 0.00s 19.97r     # -8%
+
+Sep 22, 2009
+
+# 6g inlines sliceslice in most cases.
+
+fasta -n 25000000
+       # probably I/O library inefficiencies
+       gc fasta        10.24u 0.00s 10.25r     # -4%
+       gc_B fasta      9.68u 0.01s 9.69r       # -3%
+
+reverse-complement < output-of-fasta-25000000
+       # we don't know - memory cache behavior?
+       gc reverse-complement   6.67u 0.69s 7.37r       # +1%
+       gc_B reverse-complement 6.00u 0.64s 6.65r       # +7%
+
+nbody -n 50000000
+       # math.Sqrt needs to be in assembly; inlining is probably the other 50%
+       # also loop alignment appears to be critical
+       gc nbody        86.27u 0.00s 86.29r     # -21%
+       gc_B nbody      104.52u 0.00s 104.54r   # +22%
+
+fannkuch 12
+       # bounds checking is half the difference
+       # rest might be registerization
+       gc fannkuch     128.36u 0.00s 128.37r   # +4%
+       gc_B fannkuch   89.32u 0.00s 89.34r
+
+regex-dna 100000
+       # regexp code is slow on trivial regexp
+       gc regex-dna    24.82u 0.01s 24.86r     # -4%
+       gc_B regex-dna  24.55u 0.01s 24.57r     # -6%
+
+spectral-norm 5500
+       # possibly inline evalA
+       gc spectral-norm        24.05u 0.00s 24.07r     # -1%
+       gc_B spectral-norm      23.60u 0.00s 23.65r      # -1%
+
+k-nucleotide 1000000
+       # string maps are slower than glib string maps
+       gc k-nucleotide 17.84u 0.04s 17.89r     # +13% but mysterious variation continues
+       gc_B k-nucleotide       15.56u 0.08s 15.65r     # -13% (ditto)
+
+mandelbrot 16000
+       gc mandelbrot   64.08u 0.01s 64.11r     # +1%
+       gc_B mandelbrot 64.04u 0.00s 64.05r     # +1%
+
+pidigits 10000
+       # bignum is slower than gmp
+       gc pidigits     58.68u 0.02s 58.72r     # +5%
+       gc_B pidigits   58.86u 0.05s 58.99r     # +5%
+
+# these tests are compared using real time, since they run multiple processors
+# accuracy probably low
+threadring 50000000
+       gc threadring   32.70u 0.02s 32.77r     # +13%
+
+chameneos 6000000
+       gc chameneosredux       26.62u 0.00s 26.63r     # +13%
+
+Sep 24, 2009
+
+# Sqrt now in assembler for 6g.
+nbody -n 50000000
+       # remember, at least for 6g, alignment of loops may be important
+       gcc -O2 nbody.c 21.24u 0.00s 21.25r
+       gccgo -O2 nbody.go      121.03u 0.00s 121.04r
+       gc nbody        30.26u 0.00s 30.27r     # -65% ***
+       gc_B nbody      30.20u 0.02s 30.22r     # -72% *** 
+
+Nov 13 2009
+
+# fix bug in regexp; take performance hit.  good regexps will come in time.
+regex-dna 100000
+       gcc -O2 regex-dna.c -lpcre      0.92u 0.00s 0.94r
+       gc regex-dna    29.78u 0.03s 29.83r
+       gc_B regex-dna  32.63u 0.03s 32.74r
+
+Nov 24 2009
+
+# Roger Peppe's rewrite of the benchmark
+chameneos 6000000
+       gcc -O2 chameneosredux.c -lpthread      18.00u 303.29s 83.64r
+       gc chameneosredux       12.10u 0.00s 12.10r  # 2.22X faster
+
+Jan 6, 2010
+
+# Long-overdue update.  All numbers included in this complete run.
+# Some programs (e.g. reverse-complement) rewritten for speed.
+# Regular expressions much faster in common cases (although still far behind PCRE)
+# Bignum stuff improved
+# Better (but sometimes slower) locking in channels.
+
+fasta -n 25000000
+       gcc -O2 fasta.c 5.99u 0.01s 6.00r
+       gc fasta        9.11u 0.00s 9.12r       # -11%
+       gc_B fasta      8.60u 0.00s 8.62r       # +12% ??
+
+reverse-complement < output-of-fasta-25000000
+       gcc -O2 reverse-complement.c    2.00u 0.80s 9.54r
+#      gccgo -O2 reverse-complement.go 4.57u 0.35s 4.94r       # 33% faster
+       gc reverse-complement   2.01u 0.38s 2.40r       # 3.3X faster
+       gc_B reverse-complement 1.88u 0.36s 2.24r       # 3.2X faster
+GOGC=off
+       gc reverse-complement   2.01u 0.35s 2.37r
+       gc_B reverse-complement 1.86u 0.32s 2.19r
+
+nbody -n 50000000
+       gcc -O2 nbody.c 21.28u 0.00s 21.31r
+       gccgo -O2 nbody.go      80.02u 0.00s 80.05r     # 33% faster
+       gc nbody        30.13u 0.00s 30.13r
+       gc_B nbody      29.89u 0.01s 29.91r
+
+binary-tree 15 # too slow to use 20
+       gcc -O2 binary-tree.c -lm       0.86u 0.00s 0.87r
+       gccgo -O2 binary-tree.go        4.82u 0.41s 5.24r       # 2.5X slower
+       gc binary-tree  7.23u 0.01s 7.25r       # # -19%
+       gc binary-tree-freelist 0.43u 0.00s 0.44r       # -9%
+
+fannkuch 12
+       gcc -O2 fannkuch.c      60.17u 0.00s 60.17r
+       gccgo -O2 fannkuch.go   78.47u 0.01s 78.49r
+       gc fannkuch     128.86u 0.00s 128.96r
+       gc_B fannkuch   90.17u 0.00s 90.21r
+
+regex-dna 100000
+       gcc -O2 regex-dna.c -lpcre      0.90u 0.00s 0.92r
+       gc regex-dna    9.48u 0.01s 9.50r       # 3.1X faster
+       gc_B regex-dna  9.08u 0.00s 9.10r       # 3.6X faster
+
+spectral-norm 5500
+       gcc -O2 spectral-norm.c -lm     11.48u 0.00s 11.48r
+       gccgo -O2 spectral-norm.go      11.68u 0.00s 11.70r
+       gc spectral-norm        23.98u 0.00s 23.99r
+       gc_B spectral-norm      23.68u 0.00s 23.69r
+
+k-nucleotide 1000000
+       gcc -O2 k-nucleotide.c  10.85u 0.04s 10.90r
+       gccgo -O2 k-nucleotide.go       25.26u 0.87s 26.14r
+       gc k-nucleotide 15.28u 0.06s 15.37r     # restored; mysterious variation continues
+       gc_B k-nucleotide       15.97u 0.03s 16.00r
+
+mandelbrot 16000
+       gcc -O2 mandelbrot.c    56.12u 0.01s 56.15r
+       gccgo -O2 mandelbrot.go 56.86u 0.01s 56.89r
+       gc mandelbrot   66.05u 0.00s 66.07r     # -3%
+       gc_B mandelbrot 66.06u 0.00s 66.07r     # -3%
+
+meteor 2100
+       gcc -O2 meteor-contest.c        0.10u 0.00s 0.10r
+       gccgo -O2 meteor-contest.go     0.12u 0.00s 0.12r
+       gc meteor-contest       0.17u 0.00s 0.17r
+       gc_B meteor-contest     0.15u 0.00s 0.16r
+
+pidigits 10000
+       gcc -O2 pidigits.c -lgmp        2.57u 0.00s 2.59r
+       gc pidigits     38.27u 0.02s 38.30r     # 1.5X faster
+       gc_B pidigits   38.27u 0.02s 38.31r     # 1.5X faster
+
+threadring 50000000
+       gcc -O2 threadring.c    37.11u 170.59s 212.75r
+       gccgo -O2 threadring.go 89.67u 447.56s 442.55r  # -6.5%
+       gc threadring   36.08u 0.04s 36.15r     # +10%
+
+chameneos 6000000
+       gcc -O2 chameneosredux.c -lpthread      19.02u 331.08s 90.79r
+       gc chameneosredux       12.54u 0.00s 12.55r
+
+Oct 19, 2010
+
+# Another long-overdue update. Some of the code is new; parallel versions
+# of some are added.  A few significant improvements.
+
+fasta -n 25000000
+       gcc -O2 fasta.c 4.92u 0.00s 4.93r
+       gccgo -O2 fasta.go      3.31u 0.00s 3.34r  # new code
+       gc fasta        3.68u 0.00s 3.69r  # 2.5X faster with no code
+       gc_B fasta      3.68u 0.00s 3.69r  # 2.3X faster with no code
+
+reverse-complement < output-of-fasta-25000000
+       gcc -O2 reverse-complement.c    1.93u 0.81s 11.24r
+       gccgo -O2 reverse-complement.go 1.58u 0.43s 2.04r  # first run with new code?
+       gc reverse-complement   1.84u 0.34s 2.20r  # 10% faster
+       gc_B reverse-complement 1.85u 0.32s 2.18r
+
+nbody -n 50000000
+       gcc -O2 nbody.c 21.35u 0.00s 21.36r
+       gccgo -O2 nbody.go      21.62u 0.00s 21.66r  # 3.7X faster - why??
+       gc nbody        29.78u 0.00s 29.79r
+       gc_B nbody      29.72u 0.00s 29.72r
+
+binary-tree 15 # too slow to use 20
+       gcc -O2 binary-tree.c -lm       0.86u 0.00s 0.88r
+       gccgo -O2 binary-tree.go        4.05u 0.02s 4.08r  # 28% faster
+       gccgo -O2 binary-tree-freelist  0.34u 0.08s 0.34r
+       gc binary-tree  5.94u 0.00s 5.95r  # 20% faster
+       gc binary-tree-freelist 0.50u 0.01s 0.54r
+
+fannkuch 12
+       gcc -O2 fannkuch.c      60.45u 0.00s 60.45r
+       gccgo -O2 fannkuch.go   64.64u 0.00s 64.64r
+       gccgo -O2 fannkuch-parallel.go  115.63u 0.00s 31.58r
+       gc fannkuch     126.52u 0.04s 126.68r
+       gc fannkuch-parallel    238.82u 0.10s 65.93r  # GOMAXPROCS=4
+       gc_B fannkuch   88.99u 0.00s 89.02r
+
+regex-dna 100000
+       gcc -O2 regex-dna.c -lpcre      0.89u 0.00s 0.89r
+       gc regex-dna    8.99u 0.02s 9.03r
+       gc regex-dna-parallel   8.94u 0.02s 3.68r  # GOMAXPROCS=4
+       gc_B regex-dna  9.12u 0.00s 9.14r
+
+spectral-norm 5500
+       gcc -O2 spectral-norm.c -lm     11.55u 0.00s 11.57r
+       gccgo -O2 spectral-norm.go      11.73u 0.00s 11.75r
+       gc spectral-norm        23.74u 0.00s 23.79r
+       gc_B spectral-norm      24.49u 0.02s 24.54r
+
+k-nucleotide 1000000
+       gcc -O2 k-nucleotide.c  11.44u 0.06s 11.50r
+       gccgo -O2 k-nucleotide.go       8.65u 0.04s 8.71r
+       gccgo -O2 k-nucleotide-parallel.go      8.75u 0.03s 2.97r # set GOMAXPROCS=4
+       gc k-nucleotide 14.92u 0.05s 15.01r
+       gc k-nucleotide-parallel        16.96u 0.06s 6.53r  # set GOMAXPROCS=4
+       gc_B k-nucleotide       15.97u 0.03s 16.08r
+
+mandelbrot 16000
+       gcc -O2 mandelbrot.c    56.32u 0.00s 56.35r
+       gccgo -O2 mandelbrot.go 55.62u 0.02s 55.77r
+       gc mandelbrot   64.85u 0.01s 64.94r
+       gc_B mandelbrot 65.02u 0.01s 65.14r
+
+meteor 2100
+       gcc -O2 meteor-contest.c        0.10u 0.00s 0.10r
+       gccgo -O2 meteor-contest.go     0.10u 0.00s 0.11r
+       gc meteor-contest       0.17u 0.00s 0.18r
+       gc_B meteor-contest     0.16u 0.00s 0.16r
+
+pidigits 10000
+       gcc -O2 pidigits.c -lgmp        2.58u 0.00s 2.59r
+       gccgo -O2 pidigits.go   14.06u 0.01s 14.09r # first run?
+       gc pidigits     8.47u 0.05s 8.55r # 4.5X faster due to package big
+       gc_B pidigits   8.33u 0.01s 8.36r # 4.5X faster due to package big
+
+threadring 50000000
+       gcc -O2 threadring.c    28.18u 153.19s 186.47r
+       gccgo -O2 threadring.go 110.10u 516.48s 515.25r
+       gc threadring   40.39u 0.00s 40.40r
+
+chameneos 6000000
+       gcc -O2 chameneosredux.c -lpthread      18.20u 301.55s 83.10r
+       gccgo -O2 chameneosredux.go     52.22u 324.54s 201.21r
+       gc chameneosredux       13.52u 0.00s 13.54r
+
+Dec 14, 2010
+
+# Improved regex code (same algorithm) gets ~30%.
+
+regex-dna 100000
+       gcc -O2 regex-dna.c -lpcre      0.77u 0.01s 0.78r
+       gc regex-dna    6.80u 0.00s 6.81r
+       gc regex-dna-parallel   6.82u 0.01s 2.75r
+       gc_B regex-dna  6.69u 0.02s 6.70r
+
+Feb 15, 2011
+
+# Improved GC, still single-threaded but more efficient
+
+fasta -n 25000000
+       gcc -O2 fasta.c 3.40u 0.00s 3.40r
+       gccgo -O2 fasta.go      3.51u 0.00s 3.50r
+       gc fasta        3.66u 0.01s 3.66r
+       gc_B fasta      3.66u 0.00s 3.66r
+
+reverse-complement < output-of-fasta-25000000
+       gcc -O2 reverse-complement.c    1.86u 1.29s 4.93r
+       gccgo -O2 reverse-complement.go 2.18u 0.41s 2.60r
+       gc reverse-complement   1.67u 0.48s 2.15r
+       gc_B reverse-complement 1.71u 0.45s 2.15r
+
+nbody -n 50000000
+       gcc -O2 -lm nbody.c     21.64u 0.00s 21.64r
+       gccgo -O2 nbody.go      21.46u 0.00s 21.45r
+       gc nbody        29.07u 0.00s 29.06r
+       gc_B nbody      31.61u 0.00s 31.61r
+
+binary-tree 15 # too slow to use 20
+       gcc -O2 binary-tree.c -lm       0.88u 0.00s 0.87r
+       gccgo -O2 binary-tree.go        2.74u 0.07s 2.81r
+       gccgo -O2 binary-tree-freelist.go       0.01u 0.00s 0.00r
+       gc binary-tree  4.22u 0.02s 4.24r
+       gc binary-tree-freelist 0.54u 0.02s 0.55r
+
+fannkuch 12
+       gcc -O2 fannkuch.c      57.64u 0.00s 57.64r
+       gccgo -O2 fannkuch.go   65.79u 0.00s 65.82r
+       gccgo -O2 fannkuch-parallel.go  160.91u 0.02s 43.90r
+       gc fannkuch     126.36u 0.03s 126.53r
+       gc fannkuch-parallel    175.23u 0.04s 45.49r
+       gc_B fannkuch   89.23u 0.00s 89.24r
+
+regex-dna 100000
+       gcc -O2 regex-dna.c -lpcre      0.77u 0.01s 0.80r
+       gccgo -O2 regex-dna.go  12.38u 0.10s 12.52r
+       gccgo -O2 regex-dna-parallel.go 43.96u 4.64s 15.11r
+       gc regex-dna    7.03u 0.01s 7.05r
+       gc regex-dna-parallel   6.85u 0.05s 2.70r
+       gc_B regex-dna  6.87u 0.02s 6.89r
+
+spectral-norm 5500
+       gcc -O2 spectral-norm.c -lm     12.29u 0.00s 12.28r
+       gccgo -O2 spectral-norm.go      11.79u 0.00s 11.79r
+       gc spectral-norm        24.00u 0.02s 24.05r
+       gc_B spectral-norm      24.59u 0.01s 24.59r
+
+k-nucleotide 1000000
+       gcc -O2 k-nucleotide.c  9.75u 0.07s 9.82r
+       gccgo -O2 k-nucleotide.go       8.92u 0.06s 8.98r
+       gccgo -O2 k-nucleotide-parallel.go      8.40u 0.04s 2.76r
+       gc k-nucleotide 17.01u 0.03s 17.04r
+       gc k-nucleotide-parallel        16.51u 0.08s 6.21r
+       gc_B k-nucleotide       16.94u 0.08s 17.02r
+
+mandelbrot 16000
+       gcc -O2 mandelbrot.c    54.60u 0.00s 54.66r
+       gccgo -O2 mandelbrot.go 59.38u 0.00s 59.41r
+       gc mandelbrot   64.93u 0.04s 65.08r
+       gc_B mandelbrot 64.85u 0.03s 64.92r
+
+meteor 2098
+       gcc -O2 meteor-contest.c        0.10u 0.01s 0.10r
+       gccgo -O2 meteor-contest.go     0.11u 0.00s 0.11r
+       gc meteor-contest       0.18u 0.00s 0.17r
+       gc_B meteor-contest     0.17u 0.00s 0.16r
+
+pidigits 10000
+       gcc -O2 pidigits.c -lgmp        2.24u 0.00s 2.23r
+       gccgo -O2 pidigits.go   14.05u 0.00s 14.06r
+       gc pidigits     6.34u 0.05s 6.38r
+       gc_B pidigits   6.37u 0.02s 6.38r
+
+threadring 50000000
+       gcc -O2 threadring.c    30.50u 258.05s 325.72r
+       gccgo -O2 threadring.go 92.87u 748.39s 728.46r
+       gc threadring   38.03u 0.01s 38.04r
+
+# Apr 15, 2011
+# Move to new machine, Intel Xeon E5520@2.27GHz.
+# (Was Opteron(tm) Processor 8214 HE)
+
+fasta -n 25000000
+OLD:
+       gcc -O2 fasta.c 3.39u 0.04s 3.42r
+       gccgo -O2 fasta.go      3.52u 0.00s 3.52r
+       gc fasta        3.63u 0.04s 3.67r
+       gc_B fasta      3.66u 0.00s 3.66r
+NEW:
+       gcc -O2 fasta.c 1.45u 0.02s 1.47r
+       gccgo -O2 fasta.go      1.51u 0.01s 1.51r
+       gc fasta        2.04u 0.00s 2.04r
+       gc_B fasta      2.05u 0.00s 2.04r
+
+reverse-complement < output-of-fasta-25000000
+OLD:
+       gcc -O2 reverse-complement.c    1.87u 1.51s 7.02r
+       gccgo -O2 reverse-complement.go 1.56u 0.54s 3.37r
+       gc reverse-complement   1.73u 0.36s 2.08r
+       gc_B reverse-complement 1.75u 0.37s 2.12r
+NEW:
+       gcc -O2 reverse-complement.c    1.20u 0.47s 12.96r
+       gccgo -O2 reverse-complement.go 0.88u 0.14s 1.01r
+       gc reverse-complement   1.13u 0.17s 1.30r
+       gc_B reverse-complement 1.11u 0.09s 1.20r
+
+nbody -n 50000000
+OLD:
+       gcc -O2 -lm nbody.c     21.90u 0.00s 21.92r
+       gccgo -O2 nbody.go      23.12u 0.03s 23.19r
+       gc nbody        29.07u 0.00s 29.07r
+       gc_B nbody      31.84u 0.00s 31.85r
+NEW:
+       gcc -O2 -lm nbody.c     13.01u 0.00s 13.03r
+       gccgo -O2 nbody.go      13.35u 0.00s 13.37r
+       gc nbody        21.78u 0.00s 21.82r
+       gc_B nbody      21.72u 0.00s 21.76r
+
+binary-tree 15 # too slow to use 20
+OLD:
+       gcc -O2 binary-tree.c -lm       0.83u 0.02s 0.84r
+       gccgo -O2 binary-tree.go        2.61u 0.02s 2.62r
+       gccgo -O2 binary-tree-freelist.go       0.32u 0.01s 0.32r
+       gc binary-tree  3.93u 0.04s 3.97r
+       gc binary-tree-freelist 0.47u 0.03s 0.50r
+NEW:
+       gcc -O2 binary-tree.c -lm       0.60u 0.00s 0.59r
+       gccgo -O2 binary-tree.go        1.53u 0.00s 1.52r
+       gccgo -O2 binary-tree-freelist.go       0.01u 0.00s 0.00r
+       gc binary-tree  1.93u 0.02s 1.95r
+       gc binary-tree-freelist 0.32u 0.01s 0.32r
+
+fannkuch 12
+OLD:
+       gcc -O2 fannkuch.c      57.64u 0.00s 57.64r
+       gccgo -O2 fannkuch.go   65.56u 0.01s 65.65r
+       gccgo -O2 fannkuch-parallel.go  179.12u 0.00s 49.82r
+       gc fannkuch     126.39u 0.00s 126.39r
+       gc fannkuch-parallel    172.49u 0.02s 45.44r
+       gc_B fannkuch   89.30u 0.00s 89.28r
+NEW:
+       gcc -O2 fannkuch.c      45.17u 0.00s 45.26r
+       gccgo -O2 fannkuch.go   53.63u 0.00s 53.73r
+       gccgo -O2 fannkuch-parallel.go  216.72u 0.00s 58.42r
+       gc fannkuch     108.21u 0.00s 108.44r
+       gc fannkuch-parallel    227.20u 0.00s 57.27r
+       gc_B fannkuch   56.14u 0.00s 56.26r
+
+regex-dna 100000
+OLD:
+       gcc -O2 regex-dna.c -lpcre      0.77u 0.01s 0.78r
+       gccgo -O2 regex-dna.go  10.15u 0.02s 10.23r
+       gccgo -O2 regex-dna-parallel.go 33.81u 3.22s 11.62r
+       gc regex-dna    6.52u 0.04s 6.56r
+       gc regex-dna-parallel   6.84u 0.03s 2.70r
+       gc_B regex-dna  6.83u 0.01s 6.84r
+NEW:
+       gcc -O2 regex-dna.c -lpcre      0.47u 0.00s 0.47r
+       gccgo -O2 regex-dna.go  6.00u 0.00s 6.00r
+       gccgo -O2 regex-dna-parallel.go 44.54u 1.57s 6.51r
+       gc regex-dna    5.41u 0.01s 5.42r
+       gc regex-dna-parallel   5.62u 0.01s 2.20r
+       gc_B regex-dna  5.50u 0.00s 5.50r
+
+spectral-norm 5500
+OLD:
+       gcc -O2 spectral-norm.c -lm     12.29u 0.00s 12.28r
+       gccgo -O2 spectral-norm.go      11.56u 0.00s 11.55r
+       gc spectral-norm        23.98u 0.00s 24.00r
+       gc_B spectral-norm      24.62u 0.00s 24.65r
+NEW:
+       gcc -O2 spectral-norm.c -lm     15.79u 0.00s 15.82r
+       gccgo -O2 spectral-norm.go      15.32u 0.00s 15.35r
+       gc spectral-norm        19.62u 0.01s 19.67r
+       gc_B spectral-norm      19.62u 0.00s 19.66r
+
+k-nucleotide 1000000
+OLD:
+       gcc -O2 k-nucleotide.c  9.82u 0.06s 9.87r
+       gccgo -O2 k-nucleotide.go       8.30u 0.02s 8.32r
+       gccgo -O2 k-nucleotide-parallel.go      8.84u 0.05s 3.02r
+       gc k-nucleotide 15.38u 0.07s 15.44r
+       gc k-nucleotide-parallel        16.40u 0.03s 5.93r
+       gc_B k-nucleotide       15.19u 0.05s 15.23r
+NEW:
+       gcc -O2 -k-nucleotide.c 4.88u 0.03s 4.92r
+       gccgo -O2 k-nucleotide.go       5.94u 0.01s 5.96r
+       gccgo -O2 k-nucleotide-parallel.go      6.44u 0.03s 1.47r
+       gc k-nucleotide 9.61u 0.01s 9.63r
+       gc k-nucleotide-parallel        9.70u 0.00s 3.39r
+       gc_B k-nucleotide       9.19u 0.03s 9.23r
+
+mandelbrot 16000
+OLD:
+       gcc -O2 mandelbrot.c    54.54u 0.00s 54.56r
+       gccgo -O2 mandelbrot.go 59.63u 0.03s 59.67r
+       gc mandelbrot   64.82u 0.00s 64.83r
+       gc_B mandelbrot 64.84u 0.00s 64.91r
+NEW:
+       gcc -O2 mandelbrot.c    36.07u 0.01s 36.15r
+       gccgo -O2 mandelbrot.go 43.57u 0.00s 43.66r
+       gc mandelbrot   60.66u 0.00s 60.79r
+       gc_B mandelbrot 60.90u 0.00s 61.03r
+
+meteor 2098
+OLD:
+       gcc -O2 meteor-contest.c        0.11u 0.00s 0.10r
+       gccgo -O2 meteor-contest.go     0.10u 0.01s 0.10r
+       gc meteor-contest       0.18u 0.00s 0.17r
+       gc_B meteor-contest     0.17u 0.00s 0.16r
+NEW:
+       gcc -O2 meteor-contest.c        0.10u 0.00s 0.09r
+       gccgo -O2 meteor-contest.go     0.10u 0.00s 0.09r
+       gc meteor-contest       0.14u 0.00s 0.14r
+       gc_B meteor-contest     0.13u 0.00s 0.13r
+
+pidigits 10000
+OLD:
+       gcc -O2 pidigits.c -lgmp        2.22u 0.00s 2.21r
+       gccgo -O2 pidigits.go   13.39u 0.00s 13.40r
+       gc pidigits     6.42u 0.04s 6.45r
+       gc_B pidigits   6.45u 0.02s 6.47r
+NEW:
+       gcc -O2 pidigits.c -lgmp        2.27u 0.00s 2.29r
+       gccgo -O2 pidigits.go   9.21u 0.00s 9.22r
+       gc pidigits     3.60u 0.00s 3.60r
+       gc_B pidigits   3.56u 0.02s 3.58r
+
+threadring 50000000
+OLD:
+       gcc -O2 threadring.c -lpthread  34.51u 267.95s 336.12r
+       gccgo -O2 threadring.go 103.51u 588.57s 627.16r
+       gc threadring   54.68u 0.00s 54.73r
+NEW:
+       gcc -O2 threadring.c 32.00u 259.39s 369.74r
+       gccgo -O2 threadring.go 133.06u 546.02s 595.33r
+       gc threadring   16.75u 0.02s 16.80r
+
+chameneos 6000000
+OLD:
+       gcc -O2 chameneosredux.c -lpthread      12.65u 31.02s 13.33r
+       gccgo -O2 chameneosredux.go     47.04u 302.84s 252.29r
+       gc chameneosredux       14.14u 0.00s 14.14r
+NEW:
+       gcc -O2 chameneosredux.c -lpthread      8.05u 63.43s 11.16r
+       gccgo -O2 chameneosredux.go     82.95u 304.37s 207.64r
+       gc chameneosredux       9.42u 0.00s 9.43r
+
+# May 13, 2011
+# after gc update to inline append when possible - 35% faster
+
+regex-dna 100000
+       gc regex-dna    3.94u 0.00s 3.95r
+       gc regex-dna-parallel   4.15u 0.01s 1.63r
+       gc_B regex-dna  4.01u 0.01s 4.02r
+
+# Aug 4, 2011
+# After various updates to locking code and some runtime changes.
+# Slowdowns believed due to slower (but more correct) memmove.
+
+fannkuch 12
+       gccgo -O2 fannkuch.go   51.59u 0.00s 51.69r # -4%
+       gccgo -O2 fannkuch-parallel.go  253.17u 0.00s 64.67r # -11%
+       gc fannkuch     103.14u 0.00s 103.36r # -5%
+       gc fannkuch-parallel    189.63u 0.00s 49.37r # +9%
+       gc_B fannkuch   49.19u 0.00s 49.29r # -14%
+
+regex-dna 100000
+       gc regex-dna    3.78u 0.00s 3.78r # -43%
+       gc regex-dna-parallel   3.84u 0.02s 1.48r # -49%
+       gc_B regex-dna  3.62u 0.00s 3.63r # -52%
+
+k-nucleotide 1000000
+       gc k-nucleotide 12.23u 0.02s 12.27r # +27%
+       gc k-nucleotide-parallel        12.76u 0.02s 4.37r # +29%
+       gc_B k-nucleotide       12.18u 0.01s 12.21r # +33%
+
+threadring 50000000
+       gc threadring   17.49u 0.00s 17.53r # +4%
+
+chameneos 6000000
+       gc chameneosredux       7.61u 0.00s 7.63r # -24%
+
+Aug 9, 2011
+# After custom algorithms for 1- 2- 4- 8-byte scalars.
+
+fannkuch 12
+       gc fannkuch-parallel    157.17u 0.00s 41.08r # -17%
+
+k-nucleotide 1000000
+       gc k-nucleotide 8.72u 0.03s 8.76r # -39%
+       gc k-nucleotide-parallel        8.79u 0.01s 3.14r # -39%
+       gc_B k-nucleotide       8.65u 0.03s 8.69r # -39%
+
+pidigits 10000
+       gc pidigits     3.71u 0.02s 3.73r # +4%
+       gc_B pidigits   3.73u 0.00s 3.73r # +4%
+
+threadring 50000000
+       gc threadring   14.51u 0.00s 14.54r # -17%
+
+chameneos 6000000
+       gc chameneosredux       7.41u 0.00s 7.42r # -3%
diff --git a/gcc/testsuite/go.test/test/bench/shootout/timing.sh b/gcc/testsuite/go.test/test/bench/shootout/timing.sh
new file mode 100755 (executable)
index 0000000..3e190e1
--- /dev/null
@@ -0,0 +1,205 @@
+#!/usr/bin/env bash
+# Copyright 2009 The Go Authors.  All rights reserved.
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file.
+
+set -e
+
+eval $(gomake --no-print-directory -f ../../../src/Make.inc go-env)
+PATH=.:$PATH
+
+havegccgo=false
+if which gccgo >/dev/null 2>&1
+then
+       havegccgo=true
+fi
+
+mode=run
+case X"$1" in
+X-test)
+       mode=test
+       shift
+esac
+
+gc() {
+       $GC $1.go; $LD $1.$O
+}
+
+gc_B() {
+       $GC -B $1.go; $LD $1.$O
+}
+
+runonly() {
+       if [ $mode = run ]
+       then
+               "$@"
+       fi
+}
+
+run() {
+       if [ $mode = test ]
+       then
+               if echo $1 | grep -q '^gc '
+               then
+                       $1      # compile the program
+                       program=$(echo $1 | sed 's/gc //')
+                       shift
+                       echo $program
+                       $1 <fasta-1000.out > /tmp/$$
+                       case $program in
+                       chameneosredux)
+                               # exact numbers may vary but non-numbers should match
+                               grep -v '[0-9]' /tmp/$$ > /tmp/$$x
+                               grep -v '[0-9]' chameneosredux.txt > /tmp/$$y
+                               cmp /tmp/$$x /tmp/$$y
+                               rm -f /tmp/$$ /tmp/$$x /tmp/$$y
+                               ;;
+                       *)
+                               cmp /tmp/$$ $program.txt
+                               rm -f /tmp/$$
+                       esac
+               fi
+               return
+       fi
+       if ! $havegccgo && echo $1 | grep -q '^gccgo '
+       then
+               return
+       fi
+       echo -n '       '$1'    '
+       $1
+       shift
+       
+       echo $((time -p $* >/dev/null) 2>&1) | awk '{print $4 "u " $6 "s " $2 "r"}'
+}
+
+fasta() {
+       runonly echo 'fasta -n 25000000'
+       run 'gcc -O2 fasta.c' a.out 25000000
+       run 'gccgo -O2 fasta.go' a.out -n 25000000      #commented out until WriteString is in bufio
+       run 'gc fasta' $O.out -n 25000000
+       run 'gc_B fasta' $O.out -n 25000000
+}
+
+revcomp() {
+       runonly gcc -O2 fasta.c
+       runonly a.out 25000000 > x
+       runonly echo 'reverse-complement < output-of-fasta-25000000'
+       run 'gcc -O2 reverse-complement.c' a.out < x
+       run 'gccgo -O2 reverse-complement.go' a.out < x
+       run 'gc reverse-complement' $O.out < x
+       run 'gc_B reverse-complement' $O.out < x
+       rm x
+}
+
+nbody() {
+       runonly echo 'nbody -n 50000000'
+       run 'gcc -O2 -lm nbody.c' a.out 50000000
+       run 'gccgo -O2 nbody.go' a.out -n 50000000
+       run 'gc nbody' $O.out -n 50000000
+       run 'gc_B nbody' $O.out -n 50000000
+}
+
+binarytree() {
+       runonly echo 'binary-tree 15 # too slow to use 20'
+       run 'gcc -O2 binary-tree.c -lm' a.out 15
+       run 'gccgo -O2 binary-tree.go' a.out -n 15
+       run 'gccgo -O2 binary-tree-freelist.go' $O.out -n 15
+       run 'gc binary-tree' $O.out -n 15
+       run 'gc binary-tree-freelist' $O.out -n 15
+}
+
+fannkuch() {
+       runonly echo 'fannkuch 12'
+       run 'gcc -O2 fannkuch.c' a.out 12
+       run 'gccgo -O2 fannkuch.go' a.out -n 12
+       run 'gccgo -O2 fannkuch-parallel.go' a.out -n 12
+       run 'gc fannkuch' $O.out -n 12
+       run 'gc fannkuch-parallel' $O.out -n 12
+       run 'gc_B fannkuch' $O.out -n 12
+}
+
+regexdna() {
+       runonly gcc -O2 fasta.c
+       runonly a.out 100000 > x
+       runonly echo 'regex-dna 100000'
+       run 'gcc -O2 regex-dna.c -lpcre' a.out <x
+       run 'gccgo -O2 regex-dna.go' a.out <x
+       run 'gccgo -O2 regex-dna-parallel.go' a.out <x
+       run 'gc regex-dna' $O.out <x
+       run 'gc regex-dna-parallel' $O.out <x
+       run 'gc_B regex-dna' $O.out <x
+       rm x
+}
+
+spectralnorm() {
+       runonly echo 'spectral-norm 5500'
+       run 'gcc -O2 spectral-norm.c -lm' a.out 5500
+       run 'gccgo -O2 spectral-norm.go' a.out -n 5500
+       run 'gc spectral-norm' $O.out -n 5500
+       run 'gc_B spectral-norm' $O.out -n 5500
+}
+
+knucleotide() {
+       runonly gcc -O2 fasta.c
+       runonly a.out 1000000 > x  # should be using 25000000
+       runonly echo 'k-nucleotide 1000000'
+       run 'gcc -O2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include k-nucleotide.c -lglib-2.0' a.out <x
+       run 'gccgo -O2 k-nucleotide.go' a.out <x
+       run 'gccgo -O2 k-nucleotide-parallel.go' a.out <x
+       run 'gc k-nucleotide' $O.out <x
+       run 'gc k-nucleotide-parallel' $O.out <x
+       run 'gc_B k-nucleotide' $O.out <x
+       rm x
+}
+
+mandelbrot() {
+       runonly echo 'mandelbrot 16000'
+       run 'gcc -O2 mandelbrot.c' a.out 16000
+       run 'gccgo -O2 mandelbrot.go' a.out -n 16000
+       run 'gc mandelbrot' $O.out -n 16000
+       run 'gc_B mandelbrot' $O.out -n 16000
+}
+
+meteor() {
+       runonly echo 'meteor 2098'
+       run 'gcc -O2 meteor-contest.c' a.out 2098
+       run 'gccgo -O2 meteor-contest.go' a.out -n 2098
+       run 'gc meteor-contest' $O.out -n 2098
+       run 'gc_B  meteor-contest' $O.out -n 2098
+}
+
+pidigits() {
+       runonly echo 'pidigits 10000'
+       run 'gcc -O2 pidigits.c -lgmp' a.out 10000
+       run 'gccgo -O2 pidigits.go' a.out -n 10000
+       run 'gc pidigits' $O.out -n 10000
+       run 'gc_B  pidigits' $O.out -n 10000
+}
+
+threadring() {
+       runonly echo 'threadring 50000000'
+       run 'gcc -O2 threadring.c -lpthread' a.out 50000000
+       run 'gccgo -O2 threadring.go' a.out -n 50000000
+       run 'gc threadring' $O.out -n 50000000
+}
+
+chameneos() {
+       runonly echo 'chameneos 6000000'
+       run 'gcc -O2 chameneosredux.c -lpthread' a.out 6000000
+       run 'gccgo -O2 chameneosredux.go' a.out 6000000
+       run 'gc chameneosredux' $O.out 6000000
+}
+
+case $# in
+0)
+       run="fasta revcomp nbody binarytree fannkuch regexdna spectralnorm knucleotide mandelbrot meteor pidigits threadring chameneos"
+       ;;
+*)
+       run=$*
+esac
+
+for i in $run
+do
+       $i
+       runonly echo
+done
diff --git a/gcc/testsuite/go.test/test/bench/spectral-norm-parallel.go b/gcc/testsuite/go.test/test/bench/spectral-norm-parallel.go
deleted file mode 100644 (file)
index 2706f39..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by The Go Authors.
- * Based on spectral-norm.c by Sebastien Loisel
- */
-
-package main
-
-import (
-       "flag"
-       "fmt"
-       "math"
-       "runtime"
-)
-
-var n = flag.Int("n", 2000, "count")
-var nCPU = flag.Int("ncpu", 4, "number of cpus")
-
-func evalA(i, j int) float64 { return 1 / float64(((i+j)*(i+j+1)/2 + i + 1)) }
-
-type Vec []float64
-
-func (v Vec) Times(i, n int, u Vec, c chan int) {
-       for ; i < n; i++ {
-               v[i] = 0
-               for j := 0; j < len(u); j++ {
-                       v[i] += evalA(i, j) * u[j]
-               }
-       }
-       c <- 1
-}
-
-func (v Vec) TimesTransp(i, n int, u Vec, c chan int) {
-       for ; i < n; i++ {
-               v[i] = 0
-               for j := 0; j < len(u); j++ {
-                       v[i] += evalA(j, i) * u[j]
-               }
-       }
-       c <- 1
-}
-
-func wait(c chan int) {
-       for i := 0; i < *nCPU; i++ {
-               <-c
-       }
-}
-
-func (v Vec) ATimesTransp(u Vec) {
-       x := make(Vec, len(u))
-       c := make(chan int, *nCPU)
-       for i := 0; i < *nCPU; i++ {
-               go x.Times(i*len(v) / *nCPU, (i+1)*len(v) / *nCPU, u, c)
-       }
-       wait(c)
-       for i := 0; i < *nCPU; i++ {
-               go v.TimesTransp(i*len(v) / *nCPU, (i+1)*len(v) / *nCPU, x, c)
-       }
-       wait(c)
-}
-
-func main() {
-       flag.Parse()
-       runtime.GOMAXPROCS(*nCPU)
-       N := *n
-       u := make(Vec, N)
-       for i := 0; i < N; i++ {
-               u[i] = 1
-       }
-       v := make(Vec, N)
-       for i := 0; i < 10; i++ {
-               v.ATimesTransp(u)
-               u.ATimesTransp(v)
-       }
-       var vBv, vv float64
-       for i := 0; i < N; i++ {
-               vBv += u[i] * v[i]
-               vv += v[i] * v[i]
-       }
-       fmt.Printf("%0.9f\n", math.Sqrt(vBv/vv))
-}
diff --git a/gcc/testsuite/go.test/test/bench/spectral-norm.c b/gcc/testsuite/go.test/test/bench/spectral-norm.c
deleted file mode 100644 (file)
index 832eb3d..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* -*- mode: c -*-
- *
- * The Great Computer Language Shootout
- * http://shootout.alioth.debian.org/
- *
- * Contributed by Sebastien Loisel
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-
-double eval_A(int i, int j) { return 1.0/((i+j)*(i+j+1)/2+i+1); }
-
-void eval_A_times_u(int N, const double u[], double Au[])
-{
-  int i,j;
-  for(i=0;i<N;i++)
-    {
-      Au[i]=0;
-      for(j=0;j<N;j++) Au[i]+=eval_A(i,j)*u[j];
-    }
-}
-
-void eval_At_times_u(int N, const double u[], double Au[])
-{
-  int i,j;
-  for(i=0;i<N;i++)
-    {
-      Au[i]=0;
-      for(j=0;j<N;j++) Au[i]+=eval_A(j,i)*u[j];
-    }
-}
-
-void eval_AtA_times_u(int N, const double u[], double AtAu[])
-{ double v[N]; eval_A_times_u(N,u,v); eval_At_times_u(N,v,AtAu); }
-
-int main(int argc, char *argv[])
-{
-  int i;
-  int N = ((argc == 2) ? atoi(argv[1]) : 2000);
-  double u[N],v[N],vBv,vv;
-  for(i=0;i<N;i++) u[i]=1;
-  for(i=0;i<10;i++)
-    {
-      eval_AtA_times_u(N,u,v);
-      eval_AtA_times_u(N,v,u);
-    }
-  vBv=vv=0;
-  for(i=0;i<N;i++) { vBv+=u[i]*v[i]; vv+=v[i]*v[i]; }
-  printf("%0.9f\n",sqrt(vBv/vv));
-  return 0;
-}
diff --git a/gcc/testsuite/go.test/test/bench/spectral-norm.go b/gcc/testsuite/go.test/test/bench/spectral-norm.go
deleted file mode 100644 (file)
index 6667f3e..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by The Go Authors.
- * Based on spectral-norm.c by Sebastien Loisel
- */
-
-package main
-
-import (
-       "flag"
-       "fmt"
-       "math"
-)
-
-var n = flag.Int("n", 2000, "count")
-
-func evalA(i, j int) float64 { return 1 / float64(((i+j)*(i+j+1)/2 + i + 1)) }
-
-type Vec []float64
-
-func (v Vec) Times(u Vec) {
-       for i := 0; i < len(v); i++ {
-               v[i] = 0
-               for j := 0; j < len(u); j++ {
-                       v[i] += evalA(i, j) * u[j]
-               }
-       }
-}
-
-func (v Vec) TimesTransp(u Vec) {
-       for i := 0; i < len(v); i++ {
-               v[i] = 0
-               for j := 0; j < len(u); j++ {
-                       v[i] += evalA(j, i) * u[j]
-               }
-       }
-}
-
-func (v Vec) ATimesTransp(u Vec) {
-       x := make(Vec, len(u))
-       x.Times(u)
-       v.TimesTransp(x)
-}
-
-func main() {
-       flag.Parse()
-       N := *n
-       u := make(Vec, N)
-       for i := 0; i < N; i++ {
-               u[i] = 1
-       }
-       v := make(Vec, N)
-       for i := 0; i < 10; i++ {
-               v.ATimesTransp(u)
-               u.ATimesTransp(v)
-       }
-       var vBv, vv float64
-       for i := 0; i < N; i++ {
-               vBv += u[i] * v[i]
-               vv += v[i] * v[i]
-       }
-       fmt.Printf("%0.9f\n", math.Sqrt(vBv/vv))
-}
diff --git a/gcc/testsuite/go.test/test/bench/spectral-norm.txt b/gcc/testsuite/go.test/test/bench/spectral-norm.txt
deleted file mode 100644 (file)
index b988598..0000000
+++ /dev/null
@@ -1 +0,0 @@
-1.274224152
diff --git a/gcc/testsuite/go.test/test/bench/threadring.c b/gcc/testsuite/go.test/test/bench/threadring.c
deleted file mode 100644 (file)
index 2c4fb77..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
-* The Computer Language Benchmarks Game
-* http://shootout.alioth.debian.org/
-
-* contributed by Premysl Hruby
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <pthread.h>
-#include <string.h>
-#include <limits.h>
-
-#define THREADS (503)
-
-
-struct stack {
-   char x[PTHREAD_STACK_MIN];
-};
-
-
-/* staticaly initialize mutex[0] mutex */
-static pthread_mutex_t mutex[THREADS];
-static int data[THREADS];
-static struct stack stacks[THREADS];
-/* stacks must be defined staticaly, or my i386 box run of virtual memory for this
- * process while creating thread +- #400 */
-
-static void* thread(void *num)
-{
-   int l = (int)num;
-   int r = (l+1) % THREADS;
-   int token;
-
-   while(1) {
-      pthread_mutex_lock(mutex + l);
-      token = data[l];
-      if (token) {
-         data[r] = token - 1;
-         pthread_mutex_unlock(mutex + r);
-      }
-      else {
-         printf("%i\n", l+1);
-         exit(0);
-      }
-   }
-}
-
-
-
-int main(int argc, char **argv)
-{
-   int i;
-   pthread_t cthread;
-   pthread_attr_t stack_attr;
-
-   if (argc != 2)
-      exit(255);
-   data[0] = atoi(argv[1]);
-
-   pthread_attr_init(&stack_attr);
-
-   for (i = 0; i < THREADS; i++) {
-      pthread_mutex_init(mutex + i, NULL);
-      pthread_mutex_lock(mutex + i);
-
-      pthread_attr_setstack(&stack_attr, &stacks[i], sizeof(struct stack));
-      pthread_create(&cthread, &stack_attr, thread, (void*)i);
-   }
-
-   pthread_mutex_unlock(mutex + 0);
-   pthread_join(cthread, NULL);
-}
diff --git a/gcc/testsuite/go.test/test/bench/threadring.go b/gcc/testsuite/go.test/test/bench/threadring.go
deleted file mode 100644 (file)
index 031908a..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by The Go Authors.
- */
-
-package main
-
-import (
-       "flag"
-       "fmt"
-       "os"
-)
-
-var n = flag.Int("n", 1000, "how many passes")
-
-const Nthread = 503
-
-func f(i int, in <-chan int, out chan<- int) {
-       for {
-               n := <-in
-               if n == 0 {
-                       fmt.Printf("%d\n", i)
-                       os.Exit(0)
-               }
-               out <- n-1
-       }
-}
-
-func main() {
-       flag.Parse()
-
-       one := make(chan int) // will be input to thread 1
-       var in, out chan int = nil, one
-       for i := 1; i <= Nthread-1; i++ {
-               in, out = out, make(chan int)
-               go f(i, in, out)
-       }
-       go f(Nthread, out, one)
-       one <- *n
-       <-make(chan int) // hang until ring completes
-}
diff --git a/gcc/testsuite/go.test/test/bench/threadring.txt b/gcc/testsuite/go.test/test/bench/threadring.txt
deleted file mode 100644 (file)
index f9aaa4d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-498
diff --git a/gcc/testsuite/go.test/test/bench/timing.log b/gcc/testsuite/go.test/test/bench/timing.log
deleted file mode 100644 (file)
index 2541a76..0000000
+++ /dev/null
@@ -1,902 +0,0 @@
-All tests on r45 or r70
-
-Aug 3 2009
-
-First version of fasta. Translation of fasta.c, fetched from
-       http://shootout.alioth.debian.org/u32q/benchmark.php?test=fasta&lang=gpp&id=4
-
-fasta -n 25000000
-       gcc -O2 fasta.c 5.98u 0.00s 6.01r
-       gccgo -O2 fasta.go      8.82u 0.02s 8.85r
-       6g fasta.go     13.50u 0.02s 13.53r
-       6g -B fata.go   12.99u 0.02s 13.02r
-
-Aug 4 2009
-[added timing.sh]
-
-# myrandom:
-#   hand-written optimization of integer division
-#   use int32->float conversion
-fasta -n 25000000
-       # probably I/O library inefficiencies
-       gcc -O2 fasta.c 5.99u 0.00s 6.00r 
-       gccgo -O2 fasta.go      8.82u 0.02s 8.85r
-       gc fasta        10.70u 0.00s 10.77r
-       gc_B fasta      10.09u 0.03s 10.12r
-
-reverse-complement < output-of-fasta-25000000
-       # we don't know - memory cache behavior?
-       gcc -O2 reverse-complement.c    2.04u 0.94s 10.54r
-       gccgo -O2 reverse-complement.go 6.54u 0.63s 7.17r
-       gc reverse-complement   6.55u 0.70s 7.26r
-       gc_B reverse-complement 6.32u 0.70s 7.10r
-
-nbody 50000000
-       # math.Sqrt needs to be in assembly; inlining is probably the other 50%
-       gcc -O2 nbody.c 21.61u 0.01s 24.80r
-       gccgo -O2 nbody.go      118.55u 0.02s 120.32r
-       gc nbody        100.84u 0.00s 100.85r
-       gc_B nbody      103.33u 0.00s 103.39r
-[
-hacked Sqrt in assembler
-       gc nbody        31.97u 0.00s 32.01r
-]
-
-binary-tree 15 # too slow to use 20
-       # memory allocation and garbage collection
-       gcc -O2 binary-tree.c -lm       0.86u 0.00s 0.87r
-       gccgo -O2 binary-tree.go        1.69u 0.46s 2.15r
-       gccgo -O2 binary-tree-freelist.go       8.48u 0.00s 8.48r
-       gc binary-tree  9.60u 0.01s 9.62r
-       gc binary-tree-freelist 0.48u 0.01s 0.50r
-
-August 5, 2009
-
-fannkuch 12
-       # bounds checking is half the difference
-       # rest might be registerization
-       gcc -O2 fannkuch.c      60.09u 0.01s 60.32r
-       gccgo -O2 fannkuch.go   64.89u 0.00s 64.92r
-       gc fannkuch     124.59u 0.00s 124.67r
-       gc_B fannkuch   91.14u 0.00s 91.16r
-
-regex-dna 100000
-       # regexp code is slow on trivial regexp
-       gcc -O2 regex-dna.c -lpcre      0.92u 0.00s 0.99r
-       gc regexp-dna   26.94u 0.18s 28.75r
-       gc_B regexp-dna 26.51u 0.09s 26.75r
-
-spectral-norm 5500
-       gcc -O2 spectral-norm.c -lm     11.54u 0.00s 11.55r
-       gccgo -O2 spectral-norm.go      12.20u 0.00s 12.23r
-       gc spectral-norm        50.23u 0.00s 50.36r
-       gc_B spectral-norm      49.69u 0.01s 49.83r
-       gc spectral-norm-parallel       24.47u 0.03s 11.05r  # has shift >>1 not div /2
-       [using >>1 instead of /2 : gc gives 24.33u 0.00s 24.33r]
-
-August 6, 2009
-
-k-nucleotide 5000000
-       # string maps are slower than glib string maps
-       gcc -O2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include k-nucleotide.c -lglib-2.0   k-nucleotide.c: 10.72u 0.01s 10.74r
-       gccgo -O2 k-nucleotide.go       21.64u 0.83s 22.78r
-       gc k-nucleotide 16.08u 0.06s 16.50r
-       gc_B k-nucleotide       17.32u 0.02s 17.37r
-
-mandelbrot 5500
-       # floating point code generator should use more registers
-       gcc -O2 mandelbrot.c    56.13u 0.02s 56.17r
-       gccgo -O2 mandelbrot.go 57.49u 0.01s 57.51r
-       gc mandelbrot   74.32u 0.00s 74.35r
-       gc_B mandelbrot 74.28u 0.01s 74.31r
-
-meteor 2100
-       # we don't know
-       gcc -O2 meteor-contest.c        0.10u 0.00s 0.10r
-       gccgo -O2 meteor-contest.go     0.12u 0.00s 0.14r
-       gc meteor-contest       0.24u 0.00s 0.26r
-       gc_B meteor-contest     0.23u 0.00s 0.24r
-
-pidigits 10000
-       # bignum is slower than gmp
-       gcc -O2 pidigits.c -lgmp        2.60u 0.00s 2.62r
-       gc pidigits     77.69u 0.14s 78.18r
-       gc_B pidigits   74.26u 0.18s 75.41r
-       gc_B pidigits   68.48u 0.20s 69.31r   # special case: no bounds checking in bignum
-
-August 7 2009
-
-# New gc does better division by powers of 2.  Significant improvements:
-
-spectral-norm 5500
-       # floating point code generator should use more registers; possibly inline evalA
-       gcc -O2 spectral-norm.c -lm     11.50u 0.00s 11.50r
-       gccgo -O2 spectral-norm.go      12.02u 0.00s 12.02r
-       gc spectral-norm        23.98u 0.00s 24.00r     # new time is 0.48 times old time, 52% faster
-       gc_B spectral-norm      23.71u 0.01s 23.72r     # ditto
-       gc spectral-norm-parallel       24.04u 0.00s 6.26r  # /2 put back.  note: 4x faster (on r70, idle)
-
-k-nucleotide 1000000
-       # string maps are slower than glib string maps
-       gcc -O2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include k-nucleotide.c -lglib-2.0   10.82u 0.04s 10.87r
-       gccgo -O2 k-nucleotide.go       22.73u 0.89s 23.63r
-       gc k-nucleotide 15.97u 0.03s 16.04r
-       gc_B k-nucleotide       15.86u 0.06s 15.93r     # 8.5% faster, but probably due to weird cache effeccts in previous version
-
-pidigits 10000
-       # bignum is slower than gmp
-       gcc -O2 pidigits.c -lgmp        2.58u 0.00s 2.58r
-       gc pidigits     71.24u 0.04s 71.28r     # 8.5% faster
-       gc_B pidigits   71.25u 0.03s 71.29r     # 4% faster
-
-threadring 50000000
-       gcc -O2 threadring.c -lpthread  35.51u 160.21s 199.50r
-       gccgo -O2 threadring.go 90.33u 459.95s 448.03r
-       gc threadring   33.11u 0.00s 33.14r
-       GOMAXPROCS=4 gc threadring      114.48u 226.65s 371.59r
-       # change wait code to do <-make(chan int) instead of time.Sleep
-       gc threadring   28.41u 0.01s 29.35r
-       GOMAXPROCS=4 gc threadring      112.59u 232.83s 384.72r
-       
-chameneos 6000000
-       gcc -O2 chameneosredux.c -lpthread      18.14u 276.52s 76.93r
-       gc chameneosredux       20.19u 0.01s 20.23r
-
-Aug 10 2009
-
-# new 6g with better fp registers, fast div and mod of integers
-# complete set of timings listed. significant changes marked ***
-
-fasta -n 25000000
-       # probably I/O library inefficiencies
-       gcc -O2 fasta.c 5.96u 0.00s 5.97r
-       gc fasta        10.59u 0.01s 10.61r
-       gc_B fasta      9.92u 0.02s 9.95r
-
-reverse-complement < output-of-fasta-25000000
-       # we don't know - memory cache behavior?
-       gcc -O2 reverse-complement.c    1.96u 1.56s 16.23r
-       gccgo -O2 reverse-complement.go 6.41u 0.62s 7.05r
-       gc reverse-complement   6.46u 0.70s 7.17r
-       gc_B reverse-complement 6.22u 0.72s 6.95r
-
-nbody 50000000
-       # math.Sqrt needs to be in assembly; inlining is probably the other 50%
-       gcc -O2 nbody.c 21.26u 0.01s 21.28r
-       gccgo -O2 nbody.go      116.68u 0.07s 116.80r
-       gc nbody        86.64u 0.01s 86.68r     # -14%
-       gc_B nbody      85.72u 0.02s 85.77r     # *** -17%
-
-binary-tree 15 # too slow to use 20
-       # memory allocation and garbage collection
-       gcc -O2 binary-tree.c -lm       0.87u 0.00s 0.87r
-       gccgo -O2 binary-tree.go        1.61u 0.47s 2.09r
-       gccgo -O2 binary-tree-freelist.go       0.00u 0.00s 0.01r
-       gc binary-tree  9.11u 0.01s 9.13r       # *** -5%
-       gc binary-tree-freelist 0.47u 0.01s 0.48r
-
-fannkuch 12
-       # bounds checking is half the difference
-       # rest might be registerization
-       gcc -O2 fannkuch.c      59.92u 0.00s 59.94r
-       gccgo -O2 fannkuch.go   65.54u 0.00s 65.58r
-       gc fannkuch     123.98u 0.01s 124.04r
-       gc_B fannkuch   90.75u 0.00s 90.78r
-
-regex-dna 100000
-       # regexp code is slow on trivial regexp
-       gcc -O2 regex-dna.c -lpcre      0.91u 0.00s 0.92r
-       gc regex-dna    27.25u 0.02s 27.28r
-       gc_B regex-dna  29.51u 0.03s 29.55r
-
-spectral-norm 5500
-       # possibly inline evalA
-       gcc -O2 spectral-norm.c -lm     11.57u 0.00s 11.57r
-       gccgo -O2 spectral-norm.go      12.07u 0.01s 12.08r
-       gc spectral-norm        23.99u 0.00s 24.00r
-       gc_B spectral-norm      23.73u 0.00s 23.75r
-
-k-nucleotide 1000000
-       # string maps are slower than glib string maps
-       gcc -O2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include k-nucleotide.c -lglib-2.0   10.63u 0.02s 10.69r
-       gccgo -O2 k-nucleotide.go       23.19u 0.91s 24.12r
-       gc k-nucleotide 16.73u 0.04s 16.78r     # *** +5% (but this one seems to vary by more than that)
-       gc_B k-nucleotide       16.46u 0.04s 16.51r     # *** +5%
-
-mandelbrot 16000
-       gcc -O2 mandelbrot.c    56.16u 0.00s 56.16r
-       gccgo -O2 mandelbrot.go 57.41u 0.01s 57.42r
-       gc mandelbrot   64.05u 0.02s 64.08r     # *** -14%
-       gc_B mandelbrot 64.10u 0.02s 64.14r     # *** -14%
-
-meteor 2100
-       # we don't know
-       gcc -O2 meteor-contest.c        0.10u 0.00s 0.10r
-       gccgo -O2 meteor-contest.go     0.12u 0.00s 0.12r
-       gc meteor-contest       0.18u 0.00s 0.20r       # *** -25%
-       gc_B meteor-contest     0.17u 0.00s 0.18r       # *** -24%
-
-pidigits 10000
-       # bignum is slower than gmp
-       gcc -O2 pidigits.c -lgmp        2.57u 0.00s 2.57r
-       gc pidigits     71.82u 0.04s 71.89r
-       gc_B pidigits   71.84u 0.08s 71.98r
-
-threadring 50000000
-       gcc -O2 threadring.c -lpthread  30.91u 164.33s 204.57r
-       gccgo -O2 threadring.go 87.12u 460.04s 447.61r
-       gc threadring   38.55u 0.00s 38.56r     # *** +16%
-
-chameneos 6000000
-       gcc -O2 chameneosredux.c -lpthread      17.93u 323.65s 88.47r
-       gc chameneosredux       21.72u 0.00s 21.73r
-
-August 10 2009
-
-# In-place versions for some bignum operations.
-pidigits 10000
-       gcc -O2 pidigits.c -lgmp        2.56u 0.00s 2.57r
-       gc pidigits     55.22u 0.04s 55.29r     # *** -23%
-       gc_B pidigits   55.49u 0.02s 55.60r     # *** -23%
-
-September 3 2009
-
-# New 6g inlines slices, has a few other tweaks.
-# Complete rerun. Significant changes marked.
-
-fasta -n 25000000
-       # probably I/O library inefficiencies
-       gcc -O2 fasta.c 5.96u 0.00s 5.96r
-       gc fasta        10.63u 0.02s 10.66r
-       gc_B fasta      9.92u 0.01s 9.94r
-
-reverse-complement < output-of-fasta-25000000
-       # we don't know - memory cache behavior?
-       gcc -O2 reverse-complement.c    1.92u 0.33s 2.93r
-       gccgo -O2 reverse-complement.go 6.76u 0.72s 7.58r       # +5%
-       gc reverse-complement   6.59u 0.70s 7.29r       # +2%
-       gc_B reverse-complement 5.57u 0.80s 6.37r       # -10%
-
-nbody 50000000
-       # math.Sqrt needs to be in assembly; inlining is probably the other 50%
-       # also loop alignment appears to be critical
-       gcc -O2 nbody.c 21.28u 0.00s 21.28r
-       gccgo -O2 nbody.go      119.21u 0.00s 119.22r   # +2%
-       gc nbody        109.72u 0.00s 109.78r   # + 28% *****
-       gc_B nbody      85.90u 0.00s 85.91r
-
-binary-tree 15 # too slow to use 20
-       # memory allocation and garbage collection
-       gcc -O2 binary-tree.c -lm       0.86u 0.00s 0.87r
-       gccgo -O2 binary-tree.go        1.88u 0.54s 2.42r       # +17%
-       gccgo -O2 binary-tree-freelist.go       0.01u 0.01s 0.02r
-       gc binary-tree  8.94u 0.01s 8.96r       # -2%
-       gc binary-tree-freelist 0.47u 0.01s 0.48r
-
-fannkuch 12
-       # bounds checking is half the difference
-       # rest might be registerization
-       gcc -O2 fannkuch.c      60.12u 0.00s 60.12r
-       gccgo -O2 fannkuch.go   92.62u 0.00s 92.66r             # +41% ***
-       gc fannkuch     123.90u 0.00s 123.92r
-       gc_B fannkuch   89.71u 0.00s 89.74r     # -1%
-
-regex-dna 100000
-       # regexp code is slow on trivial regexp
-       gcc -O2 regex-dna.c -lpcre      0.88u 0.00s 0.88r
-       gc regex-dna    25.77u 0.01s 25.79r             # -5%
-       gc_B regex-dna  26.05u 0.02s 26.09r     # -12% ***
-
-spectral-norm 5500
-       # possibly inline evalA
-       gcc -O2 spectral-norm.c -lm     11.51u 0.00s 11.51r
-       gccgo -O2 spectral-norm.go      11.95u 0.00s 11.96r
-       gc spectral-norm        24.23u 0.00s 24.23r
-       gc_B spectral-norm      23.83u 0.00s 23.84r
-
-k-nucleotide 1000000
-       # string maps are slower than glib string maps
-       gcc -O2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include k-nucleotide.c -lglib-2.0   10.68u 0.04s 10.72r
-       gccgo -O2 k-nucleotide.go       23.03u 0.88s 23.92r
-       gc k-nucleotide 15.79u 0.05s 15.85r     # -5% (but this one seems to vary by more than that)
-       gc_B k-nucleotide       17.88u 0.05s 17.95r # +8% (ditto)
-
-mandelbrot 16000
-       gcc -O2 mandelbrot.c    56.17u 0.02s 56.20r
-       gccgo -O2 mandelbrot.go 56.74u 0.02s 56.79r      # -1%
-       gc mandelbrot   63.31u 0.01s 63.35r     # -1%
-       gc_B mandelbrot 63.29u 0.00s 63.31r     # -1%
-
-meteor 2100
-       # we don't know
-       gcc -O2 meteor-contest.c        0.10u 0.00s 0.10r
-       gccgo -O2 meteor-contest.go     0.11u 0.00s 0.12r
-       gc meteor-contest       0.18u 0.00s 0.19r
-       gc_B meteor-contest     0.17u 0.00s 0.18r
-
-pidigits 10000
-       # bignum is slower than gmp
-       gcc -O2 pidigits.c -lgmp        2.56u 0.00s 2.57r
-       gc pidigits     55.87u 0.03s 55.91r
-       gc_B pidigits   55.93u 0.03s 55.99r
-
-# these tests are compared using real time, since they run multiple processors
-# accuracy probably low
-threadring 50000000
-       gcc -O2 threadring.c -lpthread  26.31u 164.69s 199.92r  # -2%
-       gccgo -O2 threadring.go 87.90u 487.26s 472.81r  # +6%
-       gc threadring   28.89u 0.00s 28.90r     # -25% ***
-
-chameneos 6000000
-       gcc -O2 chameneosredux.c -lpthread      16.41u 296.91s 81.17r   # -8%
-       gc chameneosredux       19.97u 0.00s 19.97r     # -8%
-
-Sep 22, 2009
-
-# 6g inlines sliceslice in most cases.
-
-fasta -n 25000000
-       # probably I/O library inefficiencies
-       gc fasta        10.24u 0.00s 10.25r     # -4%
-       gc_B fasta      9.68u 0.01s 9.69r       # -3%
-
-reverse-complement < output-of-fasta-25000000
-       # we don't know - memory cache behavior?
-       gc reverse-complement   6.67u 0.69s 7.37r       # +1%
-       gc_B reverse-complement 6.00u 0.64s 6.65r       # +7%
-
-nbody -n 50000000
-       # math.Sqrt needs to be in assembly; inlining is probably the other 50%
-       # also loop alignment appears to be critical
-       gc nbody        86.27u 0.00s 86.29r     # -21%
-       gc_B nbody      104.52u 0.00s 104.54r   # +22%
-
-fannkuch 12
-       # bounds checking is half the difference
-       # rest might be registerization
-       gc fannkuch     128.36u 0.00s 128.37r   # +4%
-       gc_B fannkuch   89.32u 0.00s 89.34r
-
-regex-dna 100000
-       # regexp code is slow on trivial regexp
-       gc regex-dna    24.82u 0.01s 24.86r     # -4%
-       gc_B regex-dna  24.55u 0.01s 24.57r     # -6%
-
-spectral-norm 5500
-       # possibly inline evalA
-       gc spectral-norm        24.05u 0.00s 24.07r     # -1%
-       gc_B spectral-norm      23.60u 0.00s 23.65r      # -1%
-
-k-nucleotide 1000000
-       # string maps are slower than glib string maps
-       gc k-nucleotide 17.84u 0.04s 17.89r     # +13% but mysterious variation continues
-       gc_B k-nucleotide       15.56u 0.08s 15.65r     # -13% (ditto)
-
-mandelbrot 16000
-       gc mandelbrot   64.08u 0.01s 64.11r     # +1%
-       gc_B mandelbrot 64.04u 0.00s 64.05r     # +1%
-
-pidigits 10000
-       # bignum is slower than gmp
-       gc pidigits     58.68u 0.02s 58.72r     # +5%
-       gc_B pidigits   58.86u 0.05s 58.99r     # +5%
-
-# these tests are compared using real time, since they run multiple processors
-# accuracy probably low
-threadring 50000000
-       gc threadring   32.70u 0.02s 32.77r     # +13%
-
-chameneos 6000000
-       gc chameneosredux       26.62u 0.00s 26.63r     # +13%
-
-Sep 24, 2009
-
-# Sqrt now in assembler for 6g.
-nbody -n 50000000
-       # remember, at least for 6g, alignment of loops may be important
-       gcc -O2 nbody.c 21.24u 0.00s 21.25r
-       gccgo -O2 nbody.go      121.03u 0.00s 121.04r
-       gc nbody        30.26u 0.00s 30.27r     # -65% ***
-       gc_B nbody      30.20u 0.02s 30.22r     # -72% *** 
-
-Nov 13 2009
-
-# fix bug in regexp; take performance hit.  good regexps will come in time.
-regex-dna 100000
-       gcc -O2 regex-dna.c -lpcre      0.92u 0.00s 0.94r
-       gc regex-dna    29.78u 0.03s 29.83r
-       gc_B regex-dna  32.63u 0.03s 32.74r
-
-Nov 24 2009
-
-# Roger Peppe's rewrite of the benchmark
-chameneos 6000000
-       gcc -O2 chameneosredux.c -lpthread      18.00u 303.29s 83.64r
-       gc chameneosredux       12.10u 0.00s 12.10r  # 2.22X faster
-
-Jan 6, 2010
-
-# Long-overdue update.  All numbers included in this complete run.
-# Some programs (e.g. reverse-complement) rewritten for speed.
-# Regular expressions much faster in common cases (although still far behind PCRE)
-# Bignum stuff improved
-# Better (but sometimes slower) locking in channels.
-
-fasta -n 25000000
-       gcc -O2 fasta.c 5.99u 0.01s 6.00r
-       gc fasta        9.11u 0.00s 9.12r       # -11%
-       gc_B fasta      8.60u 0.00s 8.62r       # +12% ??
-
-reverse-complement < output-of-fasta-25000000
-       gcc -O2 reverse-complement.c    2.00u 0.80s 9.54r
-#      gccgo -O2 reverse-complement.go 4.57u 0.35s 4.94r       # 33% faster
-       gc reverse-complement   2.01u 0.38s 2.40r       # 3.3X faster
-       gc_B reverse-complement 1.88u 0.36s 2.24r       # 3.2X faster
-GOGC=off
-       gc reverse-complement   2.01u 0.35s 2.37r
-       gc_B reverse-complement 1.86u 0.32s 2.19r
-
-nbody -n 50000000
-       gcc -O2 nbody.c 21.28u 0.00s 21.31r
-       gccgo -O2 nbody.go      80.02u 0.00s 80.05r     # 33% faster
-       gc nbody        30.13u 0.00s 30.13r
-       gc_B nbody      29.89u 0.01s 29.91r
-
-binary-tree 15 # too slow to use 20
-       gcc -O2 binary-tree.c -lm       0.86u 0.00s 0.87r
-       gccgo -O2 binary-tree.go        4.82u 0.41s 5.24r       # 2.5X slower
-       gc binary-tree  7.23u 0.01s 7.25r       # # -19%
-       gc binary-tree-freelist 0.43u 0.00s 0.44r       # -9%
-
-fannkuch 12
-       gcc -O2 fannkuch.c      60.17u 0.00s 60.17r
-       gccgo -O2 fannkuch.go   78.47u 0.01s 78.49r
-       gc fannkuch     128.86u 0.00s 128.96r
-       gc_B fannkuch   90.17u 0.00s 90.21r
-
-regex-dna 100000
-       gcc -O2 regex-dna.c -lpcre      0.90u 0.00s 0.92r
-       gc regex-dna    9.48u 0.01s 9.50r       # 3.1X faster
-       gc_B regex-dna  9.08u 0.00s 9.10r       # 3.6X faster
-
-spectral-norm 5500
-       gcc -O2 spectral-norm.c -lm     11.48u 0.00s 11.48r
-       gccgo -O2 spectral-norm.go      11.68u 0.00s 11.70r
-       gc spectral-norm        23.98u 0.00s 23.99r
-       gc_B spectral-norm      23.68u 0.00s 23.69r
-
-k-nucleotide 1000000
-       gcc -O2 k-nucleotide.c  10.85u 0.04s 10.90r
-       gccgo -O2 k-nucleotide.go       25.26u 0.87s 26.14r
-       gc k-nucleotide 15.28u 0.06s 15.37r     # restored; mysterious variation continues
-       gc_B k-nucleotide       15.97u 0.03s 16.00r
-
-mandelbrot 16000
-       gcc -O2 mandelbrot.c    56.12u 0.01s 56.15r
-       gccgo -O2 mandelbrot.go 56.86u 0.01s 56.89r
-       gc mandelbrot   66.05u 0.00s 66.07r     # -3%
-       gc_B mandelbrot 66.06u 0.00s 66.07r     # -3%
-
-meteor 2100
-       gcc -O2 meteor-contest.c        0.10u 0.00s 0.10r
-       gccgo -O2 meteor-contest.go     0.12u 0.00s 0.12r
-       gc meteor-contest       0.17u 0.00s 0.17r
-       gc_B meteor-contest     0.15u 0.00s 0.16r
-
-pidigits 10000
-       gcc -O2 pidigits.c -lgmp        2.57u 0.00s 2.59r
-       gc pidigits     38.27u 0.02s 38.30r     # 1.5X faster
-       gc_B pidigits   38.27u 0.02s 38.31r     # 1.5X faster
-
-threadring 50000000
-       gcc -O2 threadring.c    37.11u 170.59s 212.75r
-       gccgo -O2 threadring.go 89.67u 447.56s 442.55r  # -6.5%
-       gc threadring   36.08u 0.04s 36.15r     # +10%
-
-chameneos 6000000
-       gcc -O2 chameneosredux.c -lpthread      19.02u 331.08s 90.79r
-       gc chameneosredux       12.54u 0.00s 12.55r
-
-Oct 19, 2010
-
-# Another long-overdue update. Some of the code is new; parallel versions
-# of some are added.  A few significant improvements.
-
-fasta -n 25000000
-       gcc -O2 fasta.c 4.92u 0.00s 4.93r
-       gccgo -O2 fasta.go      3.31u 0.00s 3.34r  # new code
-       gc fasta        3.68u 0.00s 3.69r  # 2.5X faster with no code
-       gc_B fasta      3.68u 0.00s 3.69r  # 2.3X faster with no code
-
-reverse-complement < output-of-fasta-25000000
-       gcc -O2 reverse-complement.c    1.93u 0.81s 11.24r
-       gccgo -O2 reverse-complement.go 1.58u 0.43s 2.04r  # first run with new code?
-       gc reverse-complement   1.84u 0.34s 2.20r  # 10% faster
-       gc_B reverse-complement 1.85u 0.32s 2.18r
-
-nbody -n 50000000
-       gcc -O2 nbody.c 21.35u 0.00s 21.36r
-       gccgo -O2 nbody.go      21.62u 0.00s 21.66r  # 3.7X faster - why??
-       gc nbody        29.78u 0.00s 29.79r
-       gc_B nbody      29.72u 0.00s 29.72r
-
-binary-tree 15 # too slow to use 20
-       gcc -O2 binary-tree.c -lm       0.86u 0.00s 0.88r
-       gccgo -O2 binary-tree.go        4.05u 0.02s 4.08r  # 28% faster
-       gccgo -O2 binary-tree-freelist  0.34u 0.08s 0.34r
-       gc binary-tree  5.94u 0.00s 5.95r  # 20% faster
-       gc binary-tree-freelist 0.50u 0.01s 0.54r
-
-fannkuch 12
-       gcc -O2 fannkuch.c      60.45u 0.00s 60.45r
-       gccgo -O2 fannkuch.go   64.64u 0.00s 64.64r
-       gccgo -O2 fannkuch-parallel.go  115.63u 0.00s 31.58r
-       gc fannkuch     126.52u 0.04s 126.68r
-       gc fannkuch-parallel    238.82u 0.10s 65.93r  # GOMAXPROCS=4
-       gc_B fannkuch   88.99u 0.00s 89.02r
-
-regex-dna 100000
-       gcc -O2 regex-dna.c -lpcre      0.89u 0.00s 0.89r
-       gc regex-dna    8.99u 0.02s 9.03r
-       gc regex-dna-parallel   8.94u 0.02s 3.68r  # GOMAXPROCS=4
-       gc_B regex-dna  9.12u 0.00s 9.14r
-
-spectral-norm 5500
-       gcc -O2 spectral-norm.c -lm     11.55u 0.00s 11.57r
-       gccgo -O2 spectral-norm.go      11.73u 0.00s 11.75r
-       gc spectral-norm        23.74u 0.00s 23.79r
-       gc_B spectral-norm      24.49u 0.02s 24.54r
-
-k-nucleotide 1000000
-       gcc -O2 k-nucleotide.c  11.44u 0.06s 11.50r
-       gccgo -O2 k-nucleotide.go       8.65u 0.04s 8.71r
-       gccgo -O2 k-nucleotide-parallel.go      8.75u 0.03s 2.97r # set GOMAXPROCS=4
-       gc k-nucleotide 14.92u 0.05s 15.01r
-       gc k-nucleotide-parallel        16.96u 0.06s 6.53r  # set GOMAXPROCS=4
-       gc_B k-nucleotide       15.97u 0.03s 16.08r
-
-mandelbrot 16000
-       gcc -O2 mandelbrot.c    56.32u 0.00s 56.35r
-       gccgo -O2 mandelbrot.go 55.62u 0.02s 55.77r
-       gc mandelbrot   64.85u 0.01s 64.94r
-       gc_B mandelbrot 65.02u 0.01s 65.14r
-
-meteor 2100
-       gcc -O2 meteor-contest.c        0.10u 0.00s 0.10r
-       gccgo -O2 meteor-contest.go     0.10u 0.00s 0.11r
-       gc meteor-contest       0.17u 0.00s 0.18r
-       gc_B meteor-contest     0.16u 0.00s 0.16r
-
-pidigits 10000
-       gcc -O2 pidigits.c -lgmp        2.58u 0.00s 2.59r
-       gccgo -O2 pidigits.go   14.06u 0.01s 14.09r # first run?
-       gc pidigits     8.47u 0.05s 8.55r # 4.5X faster due to package big
-       gc_B pidigits   8.33u 0.01s 8.36r # 4.5X faster due to package big
-
-threadring 50000000
-       gcc -O2 threadring.c    28.18u 153.19s 186.47r
-       gccgo -O2 threadring.go 110.10u 516.48s 515.25r
-       gc threadring   40.39u 0.00s 40.40r
-
-chameneos 6000000
-       gcc -O2 chameneosredux.c -lpthread      18.20u 301.55s 83.10r
-       gccgo -O2 chameneosredux.go     52.22u 324.54s 201.21r
-       gc chameneosredux       13.52u 0.00s 13.54r
-
-Dec 14, 2010
-
-# Improved regex code (same algorithm) gets ~30%.
-
-regex-dna 100000
-       gcc -O2 regex-dna.c -lpcre      0.77u 0.01s 0.78r
-       gc regex-dna    6.80u 0.00s 6.81r
-       gc regex-dna-parallel   6.82u 0.01s 2.75r
-       gc_B regex-dna  6.69u 0.02s 6.70r
-
-Feb 15, 2011
-
-# Improved GC, still single-threaded but more efficient
-
-fasta -n 25000000
-       gcc -O2 fasta.c 3.40u 0.00s 3.40r
-       gccgo -O2 fasta.go      3.51u 0.00s 3.50r
-       gc fasta        3.66u 0.01s 3.66r
-       gc_B fasta      3.66u 0.00s 3.66r
-
-reverse-complement < output-of-fasta-25000000
-       gcc -O2 reverse-complement.c    1.86u 1.29s 4.93r
-       gccgo -O2 reverse-complement.go 2.18u 0.41s 2.60r
-       gc reverse-complement   1.67u 0.48s 2.15r
-       gc_B reverse-complement 1.71u 0.45s 2.15r
-
-nbody -n 50000000
-       gcc -O2 -lm nbody.c     21.64u 0.00s 21.64r
-       gccgo -O2 nbody.go      21.46u 0.00s 21.45r
-       gc nbody        29.07u 0.00s 29.06r
-       gc_B nbody      31.61u 0.00s 31.61r
-
-binary-tree 15 # too slow to use 20
-       gcc -O2 binary-tree.c -lm       0.88u 0.00s 0.87r
-       gccgo -O2 binary-tree.go        2.74u 0.07s 2.81r
-       gccgo -O2 binary-tree-freelist.go       0.01u 0.00s 0.00r
-       gc binary-tree  4.22u 0.02s 4.24r
-       gc binary-tree-freelist 0.54u 0.02s 0.55r
-
-fannkuch 12
-       gcc -O2 fannkuch.c      57.64u 0.00s 57.64r
-       gccgo -O2 fannkuch.go   65.79u 0.00s 65.82r
-       gccgo -O2 fannkuch-parallel.go  160.91u 0.02s 43.90r
-       gc fannkuch     126.36u 0.03s 126.53r
-       gc fannkuch-parallel    175.23u 0.04s 45.49r
-       gc_B fannkuch   89.23u 0.00s 89.24r
-
-regex-dna 100000
-       gcc -O2 regex-dna.c -lpcre      0.77u 0.01s 0.80r
-       gccgo -O2 regex-dna.go  12.38u 0.10s 12.52r
-       gccgo -O2 regex-dna-parallel.go 43.96u 4.64s 15.11r
-       gc regex-dna    7.03u 0.01s 7.05r
-       gc regex-dna-parallel   6.85u 0.05s 2.70r
-       gc_B regex-dna  6.87u 0.02s 6.89r
-
-spectral-norm 5500
-       gcc -O2 spectral-norm.c -lm     12.29u 0.00s 12.28r
-       gccgo -O2 spectral-norm.go      11.79u 0.00s 11.79r
-       gc spectral-norm        24.00u 0.02s 24.05r
-       gc_B spectral-norm      24.59u 0.01s 24.59r
-
-k-nucleotide 1000000
-       gcc -O2 k-nucleotide.c  9.75u 0.07s 9.82r
-       gccgo -O2 k-nucleotide.go       8.92u 0.06s 8.98r
-       gccgo -O2 k-nucleotide-parallel.go      8.40u 0.04s 2.76r
-       gc k-nucleotide 17.01u 0.03s 17.04r
-       gc k-nucleotide-parallel        16.51u 0.08s 6.21r
-       gc_B k-nucleotide       16.94u 0.08s 17.02r
-
-mandelbrot 16000
-       gcc -O2 mandelbrot.c    54.60u 0.00s 54.66r
-       gccgo -O2 mandelbrot.go 59.38u 0.00s 59.41r
-       gc mandelbrot   64.93u 0.04s 65.08r
-       gc_B mandelbrot 64.85u 0.03s 64.92r
-
-meteor 2098
-       gcc -O2 meteor-contest.c        0.10u 0.01s 0.10r
-       gccgo -O2 meteor-contest.go     0.11u 0.00s 0.11r
-       gc meteor-contest       0.18u 0.00s 0.17r
-       gc_B meteor-contest     0.17u 0.00s 0.16r
-
-pidigits 10000
-       gcc -O2 pidigits.c -lgmp        2.24u 0.00s 2.23r
-       gccgo -O2 pidigits.go   14.05u 0.00s 14.06r
-       gc pidigits     6.34u 0.05s 6.38r
-       gc_B pidigits   6.37u 0.02s 6.38r
-
-threadring 50000000
-       gcc -O2 threadring.c    30.50u 258.05s 325.72r
-       gccgo -O2 threadring.go 92.87u 748.39s 728.46r
-       gc threadring   38.03u 0.01s 38.04r
-
-# Apr 15, 2011
-# Move to new machine, Intel Xeon E5520@2.27GHz.
-# (Was Opteron(tm) Processor 8214 HE)
-
-fasta -n 25000000
-OLD:
-       gcc -O2 fasta.c 3.39u 0.04s 3.42r
-       gccgo -O2 fasta.go      3.52u 0.00s 3.52r
-       gc fasta        3.63u 0.04s 3.67r
-       gc_B fasta      3.66u 0.00s 3.66r
-NEW:
-       gcc -O2 fasta.c 1.45u 0.02s 1.47r
-       gccgo -O2 fasta.go      1.51u 0.01s 1.51r
-       gc fasta        2.04u 0.00s 2.04r
-       gc_B fasta      2.05u 0.00s 2.04r
-
-reverse-complement < output-of-fasta-25000000
-OLD:
-       gcc -O2 reverse-complement.c    1.87u 1.51s 7.02r
-       gccgo -O2 reverse-complement.go 1.56u 0.54s 3.37r
-       gc reverse-complement   1.73u 0.36s 2.08r
-       gc_B reverse-complement 1.75u 0.37s 2.12r
-NEW:
-       gcc -O2 reverse-complement.c    1.20u 0.47s 12.96r
-       gccgo -O2 reverse-complement.go 0.88u 0.14s 1.01r
-       gc reverse-complement   1.13u 0.17s 1.30r
-       gc_B reverse-complement 1.11u 0.09s 1.20r
-
-nbody -n 50000000
-OLD:
-       gcc -O2 -lm nbody.c     21.90u 0.00s 21.92r
-       gccgo -O2 nbody.go      23.12u 0.03s 23.19r
-       gc nbody        29.07u 0.00s 29.07r
-       gc_B nbody      31.84u 0.00s 31.85r
-NEW:
-       gcc -O2 -lm nbody.c     13.01u 0.00s 13.03r
-       gccgo -O2 nbody.go      13.35u 0.00s 13.37r
-       gc nbody        21.78u 0.00s 21.82r
-       gc_B nbody      21.72u 0.00s 21.76r
-
-binary-tree 15 # too slow to use 20
-OLD:
-       gcc -O2 binary-tree.c -lm       0.83u 0.02s 0.84r
-       gccgo -O2 binary-tree.go        2.61u 0.02s 2.62r
-       gccgo -O2 binary-tree-freelist.go       0.32u 0.01s 0.32r
-       gc binary-tree  3.93u 0.04s 3.97r
-       gc binary-tree-freelist 0.47u 0.03s 0.50r
-NEW:
-       gcc -O2 binary-tree.c -lm       0.60u 0.00s 0.59r
-       gccgo -O2 binary-tree.go        1.53u 0.00s 1.52r
-       gccgo -O2 binary-tree-freelist.go       0.01u 0.00s 0.00r
-       gc binary-tree  1.93u 0.02s 1.95r
-       gc binary-tree-freelist 0.32u 0.01s 0.32r
-
-fannkuch 12
-OLD:
-       gcc -O2 fannkuch.c      57.64u 0.00s 57.64r
-       gccgo -O2 fannkuch.go   65.56u 0.01s 65.65r
-       gccgo -O2 fannkuch-parallel.go  179.12u 0.00s 49.82r
-       gc fannkuch     126.39u 0.00s 126.39r
-       gc fannkuch-parallel    172.49u 0.02s 45.44r
-       gc_B fannkuch   89.30u 0.00s 89.28r
-NEW:
-       gcc -O2 fannkuch.c      45.17u 0.00s 45.26r
-       gccgo -O2 fannkuch.go   53.63u 0.00s 53.73r
-       gccgo -O2 fannkuch-parallel.go  216.72u 0.00s 58.42r
-       gc fannkuch     108.21u 0.00s 108.44r
-       gc fannkuch-parallel    227.20u 0.00s 57.27r
-       gc_B fannkuch   56.14u 0.00s 56.26r
-
-regex-dna 100000
-OLD:
-       gcc -O2 regex-dna.c -lpcre      0.77u 0.01s 0.78r
-       gccgo -O2 regex-dna.go  10.15u 0.02s 10.23r
-       gccgo -O2 regex-dna-parallel.go 33.81u 3.22s 11.62r
-       gc regex-dna    6.52u 0.04s 6.56r
-       gc regex-dna-parallel   6.84u 0.03s 2.70r
-       gc_B regex-dna  6.83u 0.01s 6.84r
-NEW:
-       gcc -O2 regex-dna.c -lpcre      0.47u 0.00s 0.47r
-       gccgo -O2 regex-dna.go  6.00u 0.00s 6.00r
-       gccgo -O2 regex-dna-parallel.go 44.54u 1.57s 6.51r
-       gc regex-dna    5.41u 0.01s 5.42r
-       gc regex-dna-parallel   5.62u 0.01s 2.20r
-       gc_B regex-dna  5.50u 0.00s 5.50r
-
-spectral-norm 5500
-OLD:
-       gcc -O2 spectral-norm.c -lm     12.29u 0.00s 12.28r
-       gccgo -O2 spectral-norm.go      11.56u 0.00s 11.55r
-       gc spectral-norm        23.98u 0.00s 24.00r
-       gc_B spectral-norm      24.62u 0.00s 24.65r
-NEW:
-       gcc -O2 spectral-norm.c -lm     15.79u 0.00s 15.82r
-       gccgo -O2 spectral-norm.go      15.32u 0.00s 15.35r
-       gc spectral-norm        19.62u 0.01s 19.67r
-       gc_B spectral-norm      19.62u 0.00s 19.66r
-
-k-nucleotide 1000000
-OLD:
-       gcc -O2 k-nucleotide.c  9.82u 0.06s 9.87r
-       gccgo -O2 k-nucleotide.go       8.30u 0.02s 8.32r
-       gccgo -O2 k-nucleotide-parallel.go      8.84u 0.05s 3.02r
-       gc k-nucleotide 15.38u 0.07s 15.44r
-       gc k-nucleotide-parallel        16.40u 0.03s 5.93r
-       gc_B k-nucleotide       15.19u 0.05s 15.23r
-NEW:
-       gcc -O2 -k-nucleotide.c 4.88u 0.03s 4.92r
-       gccgo -O2 k-nucleotide.go       5.94u 0.01s 5.96r
-       gccgo -O2 k-nucleotide-parallel.go      6.44u 0.03s 1.47r
-       gc k-nucleotide 9.61u 0.01s 9.63r
-       gc k-nucleotide-parallel        9.70u 0.00s 3.39r
-       gc_B k-nucleotide       9.19u 0.03s 9.23r
-
-mandelbrot 16000
-OLD:
-       gcc -O2 mandelbrot.c    54.54u 0.00s 54.56r
-       gccgo -O2 mandelbrot.go 59.63u 0.03s 59.67r
-       gc mandelbrot   64.82u 0.00s 64.83r
-       gc_B mandelbrot 64.84u 0.00s 64.91r
-NEW:
-       gcc -O2 mandelbrot.c    36.07u 0.01s 36.15r
-       gccgo -O2 mandelbrot.go 43.57u 0.00s 43.66r
-       gc mandelbrot   60.66u 0.00s 60.79r
-       gc_B mandelbrot 60.90u 0.00s 61.03r
-
-meteor 2098
-OLD:
-       gcc -O2 meteor-contest.c        0.11u 0.00s 0.10r
-       gccgo -O2 meteor-contest.go     0.10u 0.01s 0.10r
-       gc meteor-contest       0.18u 0.00s 0.17r
-       gc_B meteor-contest     0.17u 0.00s 0.16r
-NEW:
-       gcc -O2 meteor-contest.c        0.10u 0.00s 0.09r
-       gccgo -O2 meteor-contest.go     0.10u 0.00s 0.09r
-       gc meteor-contest       0.14u 0.00s 0.14r
-       gc_B meteor-contest     0.13u 0.00s 0.13r
-
-pidigits 10000
-OLD:
-       gcc -O2 pidigits.c -lgmp        2.22u 0.00s 2.21r
-       gccgo -O2 pidigits.go   13.39u 0.00s 13.40r
-       gc pidigits     6.42u 0.04s 6.45r
-       gc_B pidigits   6.45u 0.02s 6.47r
-NEW:
-       gcc -O2 pidigits.c -lgmp        2.27u 0.00s 2.29r
-       gccgo -O2 pidigits.go   9.21u 0.00s 9.22r
-       gc pidigits     3.60u 0.00s 3.60r
-       gc_B pidigits   3.56u 0.02s 3.58r
-
-threadring 50000000
-OLD:
-       gcc -O2 threadring.c -lpthread  34.51u 267.95s 336.12r
-       gccgo -O2 threadring.go 103.51u 588.57s 627.16r
-       gc threadring   54.68u 0.00s 54.73r
-NEW:
-       gcc -O2 threadring.c 32.00u 259.39s 369.74r
-       gccgo -O2 threadring.go 133.06u 546.02s 595.33r
-       gc threadring   16.75u 0.02s 16.80r
-
-chameneos 6000000
-OLD:
-       gcc -O2 chameneosredux.c -lpthread      12.65u 31.02s 13.33r
-       gccgo -O2 chameneosredux.go     47.04u 302.84s 252.29r
-       gc chameneosredux       14.14u 0.00s 14.14r
-NEW:
-       gcc -O2 chameneosredux.c -lpthread      8.05u 63.43s 11.16r
-       gccgo -O2 chameneosredux.go     82.95u 304.37s 207.64r
-       gc chameneosredux       9.42u 0.00s 9.43r
-
-# May 13, 2011
-# after gc update to inline append when possible - 35% faster
-
-regex-dna 100000
-       gc regex-dna    3.94u 0.00s 3.95r
-       gc regex-dna-parallel   4.15u 0.01s 1.63r
-       gc_B regex-dna  4.01u 0.01s 4.02r
-
-# Aug 4, 2011
-# After various updates to locking code and some runtime changes.
-# Slowdowns believed due to slower (but more correct) memmove.
-
-fannkuch 12
-       gccgo -O2 fannkuch.go   51.59u 0.00s 51.69r # -4%
-       gccgo -O2 fannkuch-parallel.go  253.17u 0.00s 64.67r # -11%
-       gc fannkuch     103.14u 0.00s 103.36r # -5%
-       gc fannkuch-parallel    189.63u 0.00s 49.37r # +9%
-       gc_B fannkuch   49.19u 0.00s 49.29r # -14%
-
-regex-dna 100000
-       gc regex-dna    3.78u 0.00s 3.78r # -43%
-       gc regex-dna-parallel   3.84u 0.02s 1.48r # -49%
-       gc_B regex-dna  3.62u 0.00s 3.63r # -52%
-
-k-nucleotide 1000000
-       gc k-nucleotide 12.23u 0.02s 12.27r # +27%
-       gc k-nucleotide-parallel        12.76u 0.02s 4.37r # +29%
-       gc_B k-nucleotide       12.18u 0.01s 12.21r # +33%
-
-threadring 50000000
-       gc threadring   17.49u 0.00s 17.53r # +4%
-
-chameneos 6000000
-       gc chameneosredux       7.61u 0.00s 7.63r # -24%
-
-Aug 9, 2011
-# After custom algorithms for 1- 2- 4- 8-byte scalars.
-
-fannkuch 12
-       gc fannkuch-parallel    157.17u 0.00s 41.08r # -17%
-
-k-nucleotide 1000000
-       gc k-nucleotide 8.72u 0.03s 8.76r # -39%
-       gc k-nucleotide-parallel        8.79u 0.01s 3.14r # -39%
-       gc_B k-nucleotide       8.65u 0.03s 8.69r # -39%
-
-pidigits 10000
-       gc pidigits     3.71u 0.02s 3.73r # +4%
-       gc_B pidigits   3.73u 0.00s 3.73r # +4%
-
-threadring 50000000
-       gc threadring   14.51u 0.00s 14.54r # -17%
-
-chameneos 6000000
-       gc chameneosredux       7.41u 0.00s 7.42r # -3%
diff --git a/gcc/testsuite/go.test/test/bench/timing.sh b/gcc/testsuite/go.test/test/bench/timing.sh
deleted file mode 100755 (executable)
index 473c9b3..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-#!/usr/bin/env bash
-# Copyright 2009 The Go Authors.  All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file.
-
-set -e
-
-eval $(gomake --no-print-directory -f ../../src/Make.inc go-env)
-PATH=.:$PATH
-
-havegccgo=false
-if which gccgo >/dev/null 2>&1
-then
-       havegccgo=true
-fi
-
-mode=run
-case X"$1" in
-X-test)
-       mode=test
-       shift
-esac
-
-gc() {
-       $GC $1.go; $LD $1.$O
-}
-
-gc_B() {
-       $GC -B $1.go; $LD $1.$O
-}
-
-runonly() {
-       if [ $mode = run ]
-       then
-               "$@"
-       fi
-}
-
-run() {
-       if [ $mode = test ]
-       then
-               if echo $1 | grep -q '^gc '
-               then
-                       $1      # compile the program
-                       program=$(echo $1 | sed 's/gc //')
-                       shift
-                       echo $program
-                       $1 <fasta-1000.out > /tmp/$$
-                       case $program in
-                       chameneosredux)
-                               # exact numbers may vary but non-numbers should match
-                               grep -v '[0-9]' /tmp/$$ > /tmp/$$x
-                               grep -v '[0-9]' chameneosredux.txt > /tmp/$$y
-                               cmp /tmp/$$x /tmp/$$y
-                               rm -f /tmp/$$ /tmp/$$x /tmp/$$y
-                               ;;
-                       *)
-                               cmp /tmp/$$ $program.txt
-                               rm -f /tmp/$$
-                       esac
-               fi
-               return
-       fi
-       if ! $havegccgo && echo $1 | grep -q '^gccgo '
-       then
-               return
-       fi
-       echo -n '       '$1'    '
-       $1
-       shift
-       
-       echo $((time -p $* >/dev/null) 2>&1) | awk '{print $4 "u " $6 "s " $2 "r"}'
-}
-
-fasta() {
-       runonly echo 'fasta -n 25000000'
-       run 'gcc -O2 fasta.c' a.out 25000000
-       run 'gccgo -O2 fasta.go' a.out -n 25000000      #commented out until WriteString is in bufio
-       run 'gc fasta' $O.out -n 25000000
-       run 'gc_B fasta' $O.out -n 25000000
-}
-
-revcomp() {
-       runonly gcc -O2 fasta.c
-       runonly a.out 25000000 > x
-       runonly echo 'reverse-complement < output-of-fasta-25000000'
-       run 'gcc -O2 reverse-complement.c' a.out < x
-       run 'gccgo -O2 reverse-complement.go' a.out < x
-       run 'gc reverse-complement' $O.out < x
-       run 'gc_B reverse-complement' $O.out < x
-       rm x
-}
-
-nbody() {
-       runonly echo 'nbody -n 50000000'
-       run 'gcc -O2 -lm nbody.c' a.out 50000000
-       run 'gccgo -O2 nbody.go' a.out -n 50000000
-       run 'gc nbody' $O.out -n 50000000
-       run 'gc_B nbody' $O.out -n 50000000
-}
-
-binarytree() {
-       runonly echo 'binary-tree 15 # too slow to use 20'
-       run 'gcc -O2 binary-tree.c -lm' a.out 15
-       run 'gccgo -O2 binary-tree.go' a.out -n 15
-       run 'gccgo -O2 binary-tree-freelist.go' $O.out -n 15
-       run 'gc binary-tree' $O.out -n 15
-       run 'gc binary-tree-freelist' $O.out -n 15
-}
-
-fannkuch() {
-       runonly echo 'fannkuch 12'
-       run 'gcc -O2 fannkuch.c' a.out 12
-       run 'gccgo -O2 fannkuch.go' a.out -n 12
-       run 'gccgo -O2 fannkuch-parallel.go' a.out -n 12
-       run 'gc fannkuch' $O.out -n 12
-       run 'gc fannkuch-parallel' $O.out -n 12
-       run 'gc_B fannkuch' $O.out -n 12
-}
-
-regexdna() {
-       runonly gcc -O2 fasta.c
-       runonly a.out 100000 > x
-       runonly echo 'regex-dna 100000'
-       run 'gcc -O2 regex-dna.c -lpcre' a.out <x
-       run 'gccgo -O2 regex-dna.go' a.out <x
-       run 'gccgo -O2 regex-dna-parallel.go' a.out <x
-       run 'gc regex-dna' $O.out <x
-       run 'gc regex-dna-parallel' $O.out <x
-       run 'gc_B regex-dna' $O.out <x
-       rm x
-}
-
-spectralnorm() {
-       runonly echo 'spectral-norm 5500'
-       run 'gcc -O2 spectral-norm.c -lm' a.out 5500
-       run 'gccgo -O2 spectral-norm.go' a.out -n 5500
-       run 'gc spectral-norm' $O.out -n 5500
-       run 'gc_B spectral-norm' $O.out -n 5500
-}
-
-knucleotide() {
-       runonly gcc -O2 fasta.c
-       runonly a.out 1000000 > x  # should be using 25000000
-       runonly echo 'k-nucleotide 1000000'
-       run 'gcc -O2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include k-nucleotide.c -lglib-2.0' a.out <x
-       run 'gccgo -O2 k-nucleotide.go' a.out <x
-       run 'gccgo -O2 k-nucleotide-parallel.go' a.out <x
-       run 'gc k-nucleotide' $O.out <x
-       run 'gc k-nucleotide-parallel' $O.out <x
-       run 'gc_B k-nucleotide' $O.out <x
-       rm x
-}
-
-mandelbrot() {
-       runonly echo 'mandelbrot 16000'
-       run 'gcc -O2 mandelbrot.c' a.out 16000
-       run 'gccgo -O2 mandelbrot.go' a.out -n 16000
-       run 'gc mandelbrot' $O.out -n 16000
-       run 'gc_B mandelbrot' $O.out -n 16000
-}
-
-meteor() {
-       runonly echo 'meteor 2098'
-       run 'gcc -O2 meteor-contest.c' a.out 2098
-       run 'gccgo -O2 meteor-contest.go' a.out -n 2098
-       run 'gc meteor-contest' $O.out -n 2098
-       run 'gc_B  meteor-contest' $O.out -n 2098
-}
-
-pidigits() {
-       runonly echo 'pidigits 10000'
-       run 'gcc -O2 pidigits.c -lgmp' a.out 10000
-       run 'gccgo -O2 pidigits.go' a.out -n 10000
-       run 'gc pidigits' $O.out -n 10000
-       run 'gc_B  pidigits' $O.out -n 10000
-}
-
-threadring() {
-       runonly echo 'threadring 50000000'
-       run 'gcc -O2 threadring.c -lpthread' a.out 50000000
-       run 'gccgo -O2 threadring.go' a.out -n 50000000
-       run 'gc threadring' $O.out -n 50000000
-}
-
-chameneos() {
-       runonly echo 'chameneos 6000000'
-       run 'gcc -O2 chameneosredux.c -lpthread' a.out 6000000
-       run 'gccgo -O2 chameneosredux.go' a.out 6000000
-       run 'gc chameneosredux' $O.out 6000000
-}
-
-case $# in
-0)
-       run="fasta revcomp nbody binarytree fannkuch regexdna spectralnorm knucleotide mandelbrot meteor pidigits threadring chameneos"
-       ;;
-*)
-       run=$*
-esac
-
-for i in $run
-do
-       $i
-       runonly echo
-done
index 681a5e77cb47fc74fb6798b040c006e5bf1bcc6a..d6c9e79c607f74e20d5de50495e108549b86bec5 100644 (file)
@@ -101,6 +101,46 @@ func main() {
        }
 
        h(a, b)
+       
+       m()
+}
+
+type I interface {
+       M(_ int, y int)
+}
+
+type TI struct{}
+
+func (TI) M(x int, y int) {
+       if x != y {
+               println("invalid M call:", x, y)
+               panic("bad M")
+       }
+}
+
+var fp = func(_ int, y int) {}
+
+func init() {
+       fp = fp1
+}
+
+func fp1(x, y int) {
+       if x != y {
+               println("invalid fp1 call:", x, y)
+               panic("bad fp1")
+       }
+}
+
+
+func m() {
+       var i I
+       
+       i = TI{}
+       i.M(1, 1)
+       i.M(2, 2)
+       
+       fp(1, 1)
+       fp(2, 2)
 }
 
 // useless but legal
@@ -120,3 +160,4 @@ func _() {
 func ff() {
        var _ int = 1
 }
+
diff --git a/gcc/testsuite/go.test/test/bugs/bug395.go b/gcc/testsuite/go.test/test/bugs/bug395.go
new file mode 100644 (file)
index 0000000..adf7449
--- /dev/null
@@ -0,0 +1,22 @@
+// echo bug395 is broken  # takes 90+ seconds to break
+// # $G $D/$F.go || echo bug395
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 1909
+// Would OOM due to exponential recursion on Foo's expanded methodset in nodefmt
+package test
+
+type Foo interface {
+       Bar() interface {
+               Foo
+       }
+       Baz() interface {
+               Foo
+       }
+       Bug() interface {
+               Foo
+       }
+}
index 3c7412ed6ab56f071f1428c02b397cf2e3039081..f8d50c90c0f5c7dc60f275622c527e1855286015 100644 (file)
@@ -82,5 +82,4 @@ func main() {
        // However, the result of the bug linked to at the top is that we'll
        // end up panicking with: "throw: bad g->status in ready".
        recver(cmux)
-       print("PASS\n")
 }
index 33afb3291652b11f93da64001ba36d85a84c5cb9..9addf12e99ac7af30fd8b15b7e1d5eba472cdc4a 100644 (file)
@@ -279,5 +279,4 @@ func main() {
                        <-sync
                }
        }
-       print("PASS\n")
 }
index 038ff94e369b980baa7bed42b8fec65a9a52ee4e..a43df198214b21d5b8dfa16e764e1a8435f4767f 100644 (file)
@@ -48,4 +48,11 @@ func main() {
        case x := <-cs: // ERROR "receive"
                _ = x
        }
+
+       for _ = range cs {// ERROR "receive"
+       }
+
+       close(c)
+       close(cs)
+       close(cr)  // ERROR "receive"
 }
diff --git a/gcc/testsuite/go.test/test/chan/select7.go b/gcc/testsuite/go.test/test/chan/select7.go
new file mode 100644 (file)
index 0000000..5fed6cb
--- /dev/null
@@ -0,0 +1,68 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Test select when discarding a value.
+
+package main
+
+import "runtime"
+
+func recv1(c <-chan int) {
+       <-c
+}
+
+func recv2(c <-chan int) {
+       select {
+       case <-c:
+       }
+}
+
+func recv3(c <-chan int) {
+       c2 := make(chan int)
+       select {
+       case <-c:
+       case <-c2:
+       }
+}
+
+func send1(recv func(<-chan int)) {
+       c := make(chan int)
+       go recv(c)
+       runtime.Gosched()
+       c <- 1
+}
+
+func send2(recv func(<-chan int)) {
+       c := make(chan int)
+       go recv(c)
+       runtime.Gosched()
+       select {
+       case c <- 1:
+       }
+}
+
+func send3(recv func(<-chan int)) {
+       c := make(chan int)
+       go recv(c)
+       runtime.Gosched()
+       c2 := make(chan int)
+       select {
+       case c <- 1:
+       case c2 <- 1:
+       }
+}
+
+func main() {
+       send1(recv1)
+       send2(recv1)
+       send3(recv1)
+       send1(recv2)
+       send2(recv2)
+       send3(recv2)
+       send1(recv3)
+       send2(recv3)
+       send3(recv3)
+}
index 191514def49e2b862633fad07f68bb30aa247234..97da1dd23045d6d65393c40251e2fa0a73410782 100644 (file)
@@ -6,6 +6,8 @@
 
 package main
 
+import "runtime"
+
 var c = make(chan int)
 
 func check(a []int) {
@@ -77,6 +79,8 @@ func h() {
 func newfunc() func(int) int { return func(x int) int { return x } }
 
 func main() {
+       var fail bool
+
        go f()
        check([]int{1, 4, 5, 4})
 
@@ -88,13 +92,26 @@ func main() {
        go h()
        check([]int{100, 200, 101, 201, 500, 101, 201, 500})
 
+       runtime.UpdateMemStats()
+        n0 := runtime.MemStats.Mallocs
+
        x, y := newfunc(), newfunc()
        if x(1) != 1 || y(2) != 2 {
                println("newfunc returned broken funcs")
-               panic("fail")
+               fail = true
+       }
+
+       runtime.UpdateMemStats()
+        if n0 != runtime.MemStats.Mallocs {
+               println("newfunc allocated unexpectedly")
+               fail = true
        }
 
        ff(1)
+
+       if fail {
+               panic("fail") 
+       }
 }
 
 func ff(x int) {
diff --git a/gcc/testsuite/go.test/test/cmp.go b/gcc/testsuite/go.test/test/cmp.go
new file mode 100644 (file)
index 0000000..d51a11a
--- /dev/null
@@ -0,0 +1,400 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out
+
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import "unsafe"
+
+var global bool
+func use(b bool) { global = b }
+
+func stringptr(s string) uintptr { return *(*uintptr)(unsafe.Pointer(&s)) }
+
+func isfalse(b bool) {
+       if b {
+               // stack will explain where
+               panic("wanted false, got true")
+       }
+}
+
+func istrue(b bool) {
+       if !b {
+               // stack will explain where
+               panic("wanted true, got false")
+       }
+}
+
+type T *int
+
+func main() {
+       var a []int
+       var b map[string]int
+
+       var c string = "hello"
+       var d string = "hel" // try to get different pointer
+       d = d + "lo"
+       if stringptr(c) == stringptr(d) {
+               panic("compiler too smart -- got same string")
+       }
+
+       var e = make(chan int)
+
+       var ia interface{} = a
+       var ib interface{} = b
+       var ic interface{} = c
+       var id interface{} = d
+       var ie interface{} = e
+
+       // these comparisons are okay because
+       // string compare is okay and the others
+       // are comparisons where the types differ.
+       isfalse(ia == ib)
+       isfalse(ia == ic)
+       isfalse(ia == id)
+       isfalse(ib == ic)
+       isfalse(ib == id)
+       istrue(ic == id)
+       istrue(ie == ie)
+
+       istrue(ia != ib)
+       istrue(ia != ic)
+       istrue(ia != id)
+       istrue(ib != ic)
+       istrue(ib != id)
+       isfalse(ic != id)
+       isfalse(ie != ie)
+
+       // these are not okay, because there is no comparison on slices or maps.
+       //isfalse(a == ib)
+       //isfalse(a == ic)
+       //isfalse(a == id)
+       //isfalse(b == ic)
+       //isfalse(b == id)
+
+       istrue(c == id)
+       istrue(e == ie)
+
+       //isfalse(ia == b)
+       isfalse(ia == c)
+       isfalse(ia == d)
+       isfalse(ib == c)
+       isfalse(ib == d)
+       istrue(ic == d)
+       istrue(ie == e)
+
+       //istrue(a != ib)
+       //istrue(a != ic)
+       //istrue(a != id)
+       //istrue(b != ic)
+       //istrue(b != id)
+       isfalse(c != id)
+       isfalse(e != ie)
+
+       //istrue(ia != b)
+       istrue(ia != c)
+       istrue(ia != d)
+       istrue(ib != c)
+       istrue(ib != d)
+       isfalse(ic != d)
+       isfalse(ie != e)
+
+       // 6g used to let this go through as true.
+       var g uint64 = 123
+       var h int64 = 123
+       var ig interface{} = g
+       var ih interface{} = h
+       isfalse(ig == ih)
+       istrue(ig != ih)
+
+       // map of interface should use == on interface values,
+       // not memory.
+       var m = make(map[interface{}]int)
+       m[ic] = 1
+       m[id] = 2
+       if m[c] != 2 {
+               println("m[c] = ", m[c])
+               panic("bad m[c]")
+       }
+
+       // non-interface comparisons
+       {
+               c := make(chan int)
+               c1 := (<-chan int)(c)
+               c2 := (chan<- int)(c)
+               istrue(c == c1)
+               istrue(c == c2)
+               istrue(c1 == c)
+               istrue(c2 == c)
+
+               isfalse(c != c1)
+               isfalse(c != c2)
+               isfalse(c1 != c)
+               isfalse(c2 != c)
+
+               d := make(chan int)
+               isfalse(c == d)
+               isfalse(d == c)
+               isfalse(d == c1)
+               isfalse(d == c2)
+               isfalse(c1 == d)
+               isfalse(c2 == d)
+
+               istrue(c != d)
+               istrue(d != c)
+               istrue(d != c1)
+               istrue(d != c2)
+               istrue(c1 != d)
+               istrue(c2 != d)
+       }
+
+       // named types vs not
+       {
+               var x = new(int)
+               var y T
+               var z T = x
+
+               isfalse(x == y)
+               istrue(x == z)
+               isfalse(y == z)
+
+               isfalse(y == x)
+               istrue(z == x)
+               isfalse(z == y)
+
+               istrue(x != y)
+               isfalse(x != z)
+               istrue(y != z)
+
+               istrue(y != x)
+               isfalse(z != x)
+               istrue(z != y)
+       }
+
+       // structs
+       {
+               var x = struct {
+                       x int
+                       y string
+               }{1, "hi"}
+               var y = struct {
+                       x int
+                       y string
+               }{2, "bye"}
+               var z = struct {
+                       x int
+                       y string
+               }{1, "hi"}
+
+               isfalse(x == y)
+               isfalse(y == x)
+               isfalse(y == z)
+               isfalse(z == y)
+               istrue(x == z)
+               istrue(z == x)
+
+               istrue(x != y)
+               istrue(y != x)
+               istrue(y != z)
+               istrue(z != y)
+               isfalse(x != z)
+               isfalse(z != x)
+
+               var m = make(map[struct {
+                       x int
+                       y string
+               }]int)
+               m[x] = 10
+               m[y] = 20
+               m[z] = 30
+               istrue(m[x] == 30)
+               istrue(m[y] == 20)
+               istrue(m[z] == 30)
+               istrue(m[x] != 10)
+               isfalse(m[x] != 30)
+               isfalse(m[y] != 20)
+               isfalse(m[z] != 30)
+               isfalse(m[x] == 10)
+
+               var m1 = make(map[struct {
+                       x int
+                       y string
+               }]struct {
+                       x int
+                       y string
+               })
+               m1[x] = x
+               m1[y] = y
+               m1[z] = z
+               istrue(m1[x] == z)
+               istrue(m1[y] == y)
+               istrue(m1[z] == z)
+               istrue(m1[x] == x)
+               isfalse(m1[x] != z)
+               isfalse(m1[y] != y)
+               isfalse(m1[z] != z)
+               isfalse(m1[x] != x)
+
+               var ix, iy, iz interface{} = x, y, z
+
+               isfalse(ix == iy)
+               isfalse(iy == ix)
+               isfalse(iy == iz)
+               isfalse(iz == iy)
+               istrue(ix == iz)
+               istrue(iz == ix)
+
+               isfalse(x == iy)
+               isfalse(y == ix)
+               isfalse(y == iz)
+               isfalse(z == iy)
+               istrue(x == iz)
+               istrue(z == ix)
+
+               isfalse(ix == y)
+               isfalse(iy == x)
+               isfalse(iy == z)
+               isfalse(iz == y)
+               istrue(ix == z)
+               istrue(iz == x)
+
+               istrue(ix != iy)
+               istrue(iy != ix)
+               istrue(iy != iz)
+               istrue(iz != iy)
+               isfalse(ix != iz)
+               isfalse(iz != ix)
+
+               istrue(x != iy)
+               istrue(y != ix)
+               istrue(y != iz)
+               istrue(z != iy)
+               isfalse(x != iz)
+               isfalse(z != ix)
+
+               istrue(ix != y)
+               istrue(iy != x)
+               istrue(iy != z)
+               istrue(iz != y)
+               isfalse(ix != z)
+               isfalse(iz != x)
+       }
+
+       // arrays
+       {
+               var x = [2]string{"1", "hi"}
+               var y = [2]string{"2", "bye"}
+               var z = [2]string{"1", "hi"}
+
+               isfalse(x == y)
+               isfalse(y == x)
+               isfalse(y == z)
+               isfalse(z == y)
+               istrue(x == z)
+               istrue(z == x)
+
+               istrue(x != y)
+               istrue(y != x)
+               istrue(y != z)
+               istrue(z != y)
+               isfalse(x != z)
+               isfalse(z != x)
+
+               var m = make(map[[2]string]int)
+               m[x] = 10
+               m[y] = 20
+               m[z] = 30
+               istrue(m[x] == 30)
+               istrue(m[y] == 20)
+               istrue(m[z] == 30)
+               isfalse(m[x] != 30)
+               isfalse(m[y] != 20)
+               isfalse(m[z] != 30)
+
+               var ix, iy, iz interface{} = x, y, z
+
+               isfalse(ix == iy)
+               isfalse(iy == ix)
+               isfalse(iy == iz)
+               isfalse(iz == iy)
+               istrue(ix == iz)
+               istrue(iz == ix)
+
+               isfalse(x == iy)
+               isfalse(y == ix)
+               isfalse(y == iz)
+               isfalse(z == iy)
+               istrue(x == iz)
+               istrue(z == ix)
+
+               isfalse(ix == y)
+               isfalse(iy == x)
+               isfalse(iy == z)
+               isfalse(iz == y)
+               istrue(ix == z)
+               istrue(iz == x)
+
+               istrue(ix != iy)
+               istrue(iy != ix)
+               istrue(iy != iz)
+               istrue(iz != iy)
+               isfalse(ix != iz)
+               isfalse(iz != ix)
+
+               istrue(x != iy)
+               istrue(y != ix)
+               istrue(y != iz)
+               istrue(z != iy)
+               isfalse(x != iz)
+               isfalse(z != ix)
+
+               istrue(ix != y)
+               istrue(iy != x)
+               istrue(iy != z)
+               istrue(iz != y)
+               isfalse(ix != z)
+               isfalse(iz != x)
+       }
+
+       shouldPanic(p1)
+       shouldPanic(p2)
+       shouldPanic(p3)
+       shouldPanic(p4)
+}
+
+func p1() {
+       var a []int
+       var ia interface{} = a
+       use(ia == ia)
+}
+
+func p2() {
+       var b []int
+       var ib interface{} = b
+       use(ib == ib)
+}
+
+func p3() {
+       var a []int
+       var ia interface{} = a
+       var m = make(map[interface{}]int)
+       m[ia] = 1
+}
+
+func p4() {
+       var b []int
+       var ib interface{} = b
+       var m = make(map[interface{}]int)
+       m[ib] = 1
+}
+
+func shouldPanic(f func()) {
+       defer func() {
+               if recover() == nil {
+                       panic("function should panic")
+               }
+       }()
+       f()
+}
diff --git a/gcc/testsuite/go.test/test/cmp2.go b/gcc/testsuite/go.test/test/cmp2.go
deleted file mode 100644 (file)
index f6f124f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-// $G $D/$F.go && $L $F.$A && ! ./$A.out
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-func use(bool) { }
-
-func main() {
-       var a []int
-       var ia interface{} = a
-       use(ia == ia)
-}
diff --git a/gcc/testsuite/go.test/test/cmp3.go b/gcc/testsuite/go.test/test/cmp3.go
deleted file mode 100644 (file)
index dd90bfb..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-// $G $D/$F.go && $L $F.$A && ! ./$A.out
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-func use(bool) { }
-
-func main() {
-       var b []int
-       var ib interface{} = b
-       use(ib == ib)
-}
diff --git a/gcc/testsuite/go.test/test/cmp4.go b/gcc/testsuite/go.test/test/cmp4.go
deleted file mode 100644 (file)
index 3f9b2c0..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-// $G $D/$F.go && $L $F.$A && ! ./$A.out
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-func main() {
-       var a []int
-       var ia interface{} = a
-       var m = make(map[interface{}] int)
-       m[ia] = 1
-}
diff --git a/gcc/testsuite/go.test/test/cmp5.go b/gcc/testsuite/go.test/test/cmp5.go
deleted file mode 100644 (file)
index 3a7d733..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-// $G $D/$F.go && $L $F.$A && ! ./$A.out
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-func main() {
-       var b []int
-       var ib interface{} = b
-       var m = make(map[interface{}] int)
-       m[ib] = 1
-}
index f5f7aca9d90f912ed42dbb21b1a2477718810a58..8dfc71dcb47ab5bc138585f039d66aa453461be4 100644 (file)
@@ -31,6 +31,18 @@ func eq(a []*R) {
        }
 }
 
+func teq(t *T, n int) {
+       for i := 0; i < n; i++ {
+               if t == nil || t.i != i {
+                       panic("bad")
+               }
+               t = t.next
+       }
+       if t != nil {
+               panic("bad")
+       }
+}
+
 type P struct {
        a, b int
 }
@@ -46,6 +58,9 @@ func main() {
        var tp *T
        tp = &T{0, 7.2, "hi", &t}
 
+       tl := &T{i: 0, next: &T{i: 1, next: &T{i: 2, next: &T{i: 3, next: &T{i: 4}}}}}
+       teq(tl, 5)
+
        a1 := []int{1, 2, 3}
        if len(a1) != 3 {
                panic("a1")
@@ -93,6 +108,7 @@ func main() {
        }
 
        eq([]*R{itor(0), itor(1), itor(2), itor(3), itor(4), itor(5)})
+       eq([]*R{{0}, {1}, {2}, {3}, {4}, {5}})
 
        p1 := NewP(1, 2)
        p2 := NewP(1, 2)
diff --git a/gcc/testsuite/go.test/test/complit1.go b/gcc/testsuite/go.test/test/complit1.go
new file mode 100644 (file)
index 0000000..cd54393
--- /dev/null
@@ -0,0 +1,39 @@
+// errchk $G -e $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+var m map[int][3]int
+
+func f() [3]int
+
+func fp() *[3]int
+
+var mp map[int]*[3]int
+
+var (
+       _ = [3]int{1, 2, 3}[:] // ERROR "slice of unaddressable value"
+       _ = m[0][:]            // ERROR "slice of unaddressable value"
+       _ = f()[:]             // ERROR "slice of unaddressable value"
+
+       // these are okay because they are slicing a pointer to an array
+       _ = (&[3]int{1, 2, 3})[:]
+       _ = mp[0][:]
+       _ = fp()[:]
+)
+
+type T struct {
+       i    int
+       f    float64
+       s    string
+       next *T
+}
+
+var (
+       _ = &T{0, 0, "", nil}               // ok
+       _ = &T{i: 0, f: 0, s: "", next: {}} // ERROR "missing type in composite literal|omit types within composite literal"
+       _ = &T{0, 0, "", {}}                // ERROR "missing type in composite literal|omit types within composite literal"
+)
diff --git a/gcc/testsuite/go.test/test/convert1.go b/gcc/testsuite/go.test/test/convert1.go
new file mode 100644 (file)
index 0000000..bbd0c5f
--- /dev/null
@@ -0,0 +1,96 @@
+// errchk $G -e $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+type Tbyte []byte
+type Trune []rune
+type Tint64 []int64
+type Tstring string
+
+func main() {
+       s := "hello"
+       sb := []byte("hello")
+       sr := []rune("hello")
+       si := []int64{'h', 'e', 'l', 'l', 'o'}
+
+       ts := Tstring(s)
+       tsb := Tbyte(sb)
+       tsr := Trune(sr)
+       tsi := Tint64(si)
+
+       _ = string(s)
+       _ = []byte(s)
+       _ = []rune(s)
+       _ = []int64(s) // ERROR "cannot convert.*\[\]int64|invalid type conversion"
+       _ = Tstring(s)
+       _ = Tbyte(s)
+       _ = Trune(s)
+       _ = Tint64(s) // ERROR "cannot convert.*Tint64|invalid type conversion"
+
+       _ = string(sb)
+       _ = []byte(sb)
+       _ = []rune(sb)  // ERROR "cannot convert.*\[\]rune|invalid type conversion"
+       _ = []int64(sb) // ERROR "cannot convert.*\[\]int64|invalid type conversion"
+       _ = Tstring(sb)
+       _ = Tbyte(sb)
+       _ = Trune(sb)  // ERROR "cannot convert.*Trune|invalid type conversion"
+       _ = Tint64(sb) // ERROR "cannot convert.*Tint64|invalid type conversion"
+
+       _ = string(sr)
+       _ = []byte(sr) // ERROR "cannot convert.*\[\]byte|invalid type conversion"
+       _ = []rune(sr)
+       _ = []int64(sr) // ERROR "cannot convert.*\[\]int64|invalid type conversion"
+       _ = Tstring(sr)
+       _ = Tbyte(sr) // ERROR "cannot convert.*Tbyte|invalid type conversion"
+       _ = Trune(sr)
+       _ = Tint64(sr) // ERROR "cannot convert.*Tint64|invalid type conversion"
+
+       _ = string(si) // ERROR "cannot convert.* string|invalid type conversion"
+       _ = []byte(si) // ERROR "cannot convert.*\[\]byte|invalid type conversion"
+       _ = []rune(si) // ERROR "cannot convert.*\[\]rune|invalid type conversion"
+       _ = []int64(si)
+       _ = Tstring(si) // ERROR "cannot convert.*Tstring|invalid type conversion"
+       _ = Tbyte(si)   // ERROR "cannot convert.*Tbyte|invalid type conversion"
+       _ = Trune(si)   // ERROR "cannot convert.*Trune|invalid type conversion"
+       _ = Tint64(si)
+
+       _ = string(ts)
+       _ = []byte(ts)
+       _ = []rune(ts)
+       _ = []int64(ts) // ERROR "cannot convert.*\[\]int64|invalid type conversion"
+       _ = Tstring(ts)
+       _ = Tbyte(ts)
+       _ = Trune(ts)
+       _ = Tint64(ts) // ERROR "cannot convert.*Tint64|invalid type conversion"
+
+       _ = string(tsb)
+       _ = []byte(tsb)
+       _ = []rune(tsb)  // ERROR "cannot convert.*\[\]rune|invalid type conversion"
+       _ = []int64(tsb) // ERROR "cannot convert.*\[\]int64|invalid type conversion"
+       _ = Tstring(tsb)
+       _ = Tbyte(tsb)
+       _ = Trune(tsb)  // ERROR "cannot convert.*Trune|invalid type conversion"
+       _ = Tint64(tsb) // ERROR "cannot convert.*Tint64|invalid type conversion"
+
+       _ = string(tsr)
+       _ = []byte(tsr) // ERROR "cannot convert.*\[\]byte|invalid type conversion"
+       _ = []rune(tsr)
+       _ = []int64(tsr) // ERROR "cannot convert.*\[\]int64|invalid type conversion"
+       _ = Tstring(tsr)
+       _ = Tbyte(tsr) // ERROR "cannot convert.*Tbyte|invalid type conversion"
+       _ = Trune(tsr)
+       _ = Tint64(tsr) // ERROR "cannot convert.*Tint64|invalid type conversion"
+
+       _ = string(tsi) // ERROR "cannot convert.* string|invalid type conversion"
+       _ = []byte(tsi) // ERROR "cannot convert.*\[\]byte|invalid type conversion"
+       _ = []rune(tsi) // ERROR "cannot convert.*\[\]rune|invalid type conversion"
+       _ = []int64(tsi)
+       _ = Tstring(tsi) // ERROR "cannot convert.*Tstring|invalid type conversion"
+       _ = Tbyte(tsi)   // ERROR "cannot convert.*Tbyte|invalid type conversion"
+       _ = Trune(tsi)   // ERROR "cannot convert.*Trune|invalid type conversion"
+       _ = Tint64(tsi)
+}
diff --git a/gcc/testsuite/go.test/test/crlf.go b/gcc/testsuite/go.test/test/crlf.go
new file mode 100644 (file)
index 0000000..292b63b
--- /dev/null
@@ -0,0 +1,52 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out >tmp.go &&
+// $G tmp.go && $L tmp.$A && ./$A.out
+// rm -f tmp.go
+
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Test source files and strings containing \r and \r\n.
+
+package main
+
+import (
+       "fmt"
+       "strings"
+)
+
+func main() {
+       prog = strings.Replace(prog, "BQ", "`", -1)
+       prog = strings.Replace(prog, "CR", "\r", -1)
+       fmt.Print(prog)
+}
+
+var prog = `
+package main
+CR
+
+import "fmt"
+
+var CR s = "hello\n" + CR
+       " world"CR
+
+var t = BQhelloCR
+ worldBQ
+
+var u = BQhCReCRlCRlCRoCR
+ worldBQ
+
+var golden = "hello\n world"
+
+func main() {
+       if s != golden {
+               fmt.Printf("s=%q, want %q", s, golden)
+       }
+       if t != golden {
+               fmt.Printf("t=%q, want %q", t, golden)
+       }
+       if u != golden {
+               fmt.Printf("u=%q, want %q", u, golden)
+       }
+}
+`
index 83e32de7b6bce94830113427344aee4de164659f..6d84248e5e800e9b322e046a24007a87cb6cc8f9 100644 (file)
@@ -15,8 +15,8 @@ var (
        _ = sum()
        _ = sum(1.0, 2.0)
        _ = sum(1.5)      // ERROR "integer"
-       _ = sum("hello")  // ERROR "string.*as type int|incompatible"
-       _ = sum([]int{1}) // ERROR "slice literal.*as type int|incompatible"
+       _ = sum("hello")  // ERROR ".hello. .type string. as type int|incompatible"
+       _ = sum([]int{1}) // ERROR "\[\]int literal.*as type int|incompatible"
 )
 
 type T []T
index f1e75266f785d3c8cd85eff72c6d534ddbec0cfb..0e0c618216809f40df15c9948550b6eaed7bee55 100644 (file)
@@ -1,4 +1,4 @@
-// $G $D/$F.go && $L $F.$A && ./$A.out
+// $G $D/$F.go && $L $F.$A && ./$A.out 2>&1 | cmp - $D/$F.out
 
 // Copyright 2010 The Go Authors.  All rights reserved.
 // Use of this source code is governed by a BSD-style
diff --git a/gcc/testsuite/go.test/test/deferprint.out b/gcc/testsuite/go.test/test/deferprint.out
new file mode 100644 (file)
index 0000000..a71cfce
--- /dev/null
@@ -0,0 +1,2 @@
+printing: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+42 true false true +1.500000e+000 world 0x0 [0/0]0x0 0x0 0x0 255
diff --git a/gcc/testsuite/go.test/test/dwarf/linedirectives.go b/gcc/testsuite/go.test/test/dwarf/linedirectives.go
new file mode 100644 (file)
index 0000000..68434f0
--- /dev/null
@@ -0,0 +1,83 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out
+
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//line foo/bar.y:4
+package main
+//line foo/bar.y:60
+func main() { 
+//line foo/bar.y:297
+       f, l := 0, 0
+//line yacctab:1
+       f, l = 1, 1
+//line yaccpar:1
+       f, l = 2, 1
+//line foo/bar.y:82
+       f, l = 3, 82
+//line foo/bar.y:90
+       f, l = 3, 90
+//line foo/bar.y:92
+       f, l = 3, 92
+//line foo/bar.y:100
+       f, l = 3, 100
+//line foo/bar.y:104
+       l = 104
+//line foo/bar.y:112
+       l = 112
+//line foo/bar.y:117
+       l = 117
+//line foo/bar.y:121
+       l = 121
+//line foo/bar.y:125
+       l = 125
+//line foo/bar.y:133
+       l = 133
+//line foo/bar.y:146
+       l = 146
+//line foo/bar.y:148
+//line foo/bar.y:153
+//line foo/bar.y:155
+       l = 155
+//line foo/bar.y:160
+
+//line foo/bar.y:164
+//line foo/bar.y:173
+
+//line foo/bar.y:178
+//line foo/bar.y:180
+//line foo/bar.y:185
+//line foo/bar.y:195
+//line foo/bar.y:197
+//line foo/bar.y:202
+//line foo/bar.y:204
+//line foo/bar.y:208
+//line foo/bar.y:211
+//line foo/bar.y:213
+//line foo/bar.y:215
+//line foo/bar.y:217
+//line foo/bar.y:221
+//line foo/bar.y:229
+//line foo/bar.y:236
+//line foo/bar.y:238
+//line foo/bar.y:240
+//line foo/bar.y:244
+//line foo/bar.y:249
+//line foo/bar.y:253
+//line foo/bar.y:257
+//line foo/bar.y:262
+//line foo/bar.y:267
+//line foo/bar.y:272
+       if l == f {
+//line foo/bar.y:277
+       panic("aie!")
+//line foo/bar.y:281
+       }
+//line foo/bar.y:285
+       return
+//line foo/bar.y:288
+//line foo/bar.y:290
+}
+//line foo/bar.y:293
+//line foo/bar.y:295
diff --git a/gcc/testsuite/go.test/test/dwarf/main.go b/gcc/testsuite/go.test/test/dwarf/main.go
new file mode 100644 (file)
index 0000000..7f2ec4c
--- /dev/null
@@ -0,0 +1,29 @@
+// $G $D/$F.go $D/z*.go && $L $F.$A && ./$A.out
+
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+func main() {
+F1()
+F2()
+F3()
+F4()
+F5()
+F6()
+F7()
+F8()
+F9()
+F10()
+F11()
+F12()
+F13()
+F14()
+F15()
+F16()
+F17()
+F18()
+F19()
+F20()
+}
diff --git a/gcc/testsuite/go.test/test/dwarf/z1.go b/gcc/testsuite/go.test/test/dwarf/z1.go
new file mode 100644 (file)
index 0000000..7f163e9
--- /dev/null
@@ -0,0 +1,5 @@
+
+
+//line x1.go:4
+package main
+func F1() {}
diff --git a/gcc/testsuite/go.test/test/dwarf/z10.go b/gcc/testsuite/go.test/test/dwarf/z10.go
new file mode 100644 (file)
index 0000000..19c7002
--- /dev/null
@@ -0,0 +1,6 @@
+
+
+
+//line x10.go:4
+package main
+func F10() {}
diff --git a/gcc/testsuite/go.test/test/dwarf/z11.go b/gcc/testsuite/go.test/test/dwarf/z11.go
new file mode 100644 (file)
index 0000000..c1d2f91
--- /dev/null
@@ -0,0 +1,4 @@
+
+//line x11.go:4
+package main
+func F11() {}
diff --git a/gcc/testsuite/go.test/test/dwarf/z12.go b/gcc/testsuite/go.test/test/dwarf/z12.go
new file mode 100644 (file)
index 0000000..7455f18
--- /dev/null
@@ -0,0 +1,4 @@
+
+//line x12.go:4
+package main
+func F12() {}
diff --git a/gcc/testsuite/go.test/test/dwarf/z13.go b/gcc/testsuite/go.test/test/dwarf/z13.go
new file mode 100644 (file)
index 0000000..ecb3c4c
--- /dev/null
@@ -0,0 +1,4 @@
+
+//line x13.go:4
+package main
+func F13() {}
diff --git a/gcc/testsuite/go.test/test/dwarf/z14.go b/gcc/testsuite/go.test/test/dwarf/z14.go
new file mode 100644 (file)
index 0000000..134b39b
--- /dev/null
@@ -0,0 +1,4 @@
+
+//line x14.go:4
+package main
+func F14() {}
diff --git a/gcc/testsuite/go.test/test/dwarf/z15.go b/gcc/testsuite/go.test/test/dwarf/z15.go
new file mode 100644 (file)
index 0000000..d73819b
--- /dev/null
@@ -0,0 +1,4 @@
+
+//line x15.go:4
+package main
+func F15() {}
diff --git a/gcc/testsuite/go.test/test/dwarf/z16.go b/gcc/testsuite/go.test/test/dwarf/z16.go
new file mode 100644 (file)
index 0000000..6c31651
--- /dev/null
@@ -0,0 +1,4 @@
+
+//line x16.go:4
+package main
+func F16() {}
diff --git a/gcc/testsuite/go.test/test/dwarf/z17.go b/gcc/testsuite/go.test/test/dwarf/z17.go
new file mode 100644 (file)
index 0000000..b742d16
--- /dev/null
@@ -0,0 +1,4 @@
+
+//line x17.go:4
+package main
+func F17() {}
diff --git a/gcc/testsuite/go.test/test/dwarf/z18.go b/gcc/testsuite/go.test/test/dwarf/z18.go
new file mode 100644 (file)
index 0000000..84150ff
--- /dev/null
@@ -0,0 +1,5 @@
+
+
+//line x18.go:4
+package main
+func F18() {}
diff --git a/gcc/testsuite/go.test/test/dwarf/z19.go b/gcc/testsuite/go.test/test/dwarf/z19.go
new file mode 100644 (file)
index 0000000..bb2e296
--- /dev/null
@@ -0,0 +1,4 @@
+
+//line x19.go:4
+package main
+func F19() {}
diff --git a/gcc/testsuite/go.test/test/dwarf/z2.go b/gcc/testsuite/go.test/test/dwarf/z2.go
new file mode 100644 (file)
index 0000000..68bd582
--- /dev/null
@@ -0,0 +1,4 @@
+
+//line x2.go:4
+package main
+func F2() {}
diff --git a/gcc/testsuite/go.test/test/dwarf/z20.go b/gcc/testsuite/go.test/test/dwarf/z20.go
new file mode 100644 (file)
index 0000000..03111e1
--- /dev/null
@@ -0,0 +1,4 @@
+
+//line x20.go:4
+package main
+func F20() {}
diff --git a/gcc/testsuite/go.test/test/dwarf/z3.go b/gcc/testsuite/go.test/test/dwarf/z3.go
new file mode 100644 (file)
index 0000000..5e4ad3a
--- /dev/null
@@ -0,0 +1,4 @@
+
+//line x3.go:4
+package main
+func F3() {}
diff --git a/gcc/testsuite/go.test/test/dwarf/z4.go b/gcc/testsuite/go.test/test/dwarf/z4.go
new file mode 100644 (file)
index 0000000..1f28465
--- /dev/null
@@ -0,0 +1,4 @@
+
+//line x4.go:4
+package main
+func F4() {}
diff --git a/gcc/testsuite/go.test/test/dwarf/z5.go b/gcc/testsuite/go.test/test/dwarf/z5.go
new file mode 100644 (file)
index 0000000..7f4eeb4
--- /dev/null
@@ -0,0 +1,4 @@
+
+//line x5.go:4
+package main
+func F5() {}
diff --git a/gcc/testsuite/go.test/test/dwarf/z6.go b/gcc/testsuite/go.test/test/dwarf/z6.go
new file mode 100644 (file)
index 0000000..241791d
--- /dev/null
@@ -0,0 +1,4 @@
+
+//line x6.go:4
+package main
+func F6() {}
diff --git a/gcc/testsuite/go.test/test/dwarf/z7.go b/gcc/testsuite/go.test/test/dwarf/z7.go
new file mode 100644 (file)
index 0000000..68c1ad0
--- /dev/null
@@ -0,0 +1,4 @@
+
+//line x7.go:4
+package main
+func F7() {}
diff --git a/gcc/testsuite/go.test/test/dwarf/z8.go b/gcc/testsuite/go.test/test/dwarf/z8.go
new file mode 100644 (file)
index 0000000..16eed32
--- /dev/null
@@ -0,0 +1,4 @@
+
+//line x8.go:4
+package main
+func F8() {}
diff --git a/gcc/testsuite/go.test/test/dwarf/z9.go b/gcc/testsuite/go.test/test/dwarf/z9.go
new file mode 100644 (file)
index 0000000..cbb94b4
--- /dev/null
@@ -0,0 +1,4 @@
+
+//line x9.go:4
+package main
+func F9() {}
diff --git a/gcc/testsuite/go.test/test/escape2.go b/gcc/testsuite/go.test/test/escape2.go
new file mode 100644 (file)
index 0000000..73b2a7e
--- /dev/null
@@ -0,0 +1,1064 @@
+// errchk -0 $G -m -l $D/$F.go
+
+// Copyright 2010 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package foo
+
+import (
+       "fmt"
+       "unsafe"
+)
+
+var gxx *int
+
+func foo1(x int) { // ERROR "moved to heap: x"
+       gxx = &x // ERROR "&x escapes to heap"
+}
+
+func foo2(yy *int) { // ERROR "leaking param: yy"
+       gxx = yy
+}
+
+func foo3(x int) *int { // ERROR "moved to heap: x"
+       return &x // ERROR "&x escapes to heap"
+}
+
+type T *T
+
+func foo3b(t T) { // ERROR "leaking param: t"
+       *t = t
+}
+
+// xx isn't going anywhere, so use of yy is ok
+func foo4(xx, yy *int) { // ERROR "xx does not escape" "yy does not escape"
+       xx = yy
+}
+
+// xx isn't going anywhere, so taking address of yy is ok
+func foo5(xx **int, yy *int) { // ERROR "xx does not escape" "yy does not escape"
+       xx = &yy // ERROR "&yy does not escape"
+}
+
+func foo6(xx **int, yy *int) { // ERROR "xx does not escape" "leaking param: yy"
+       *xx = yy
+}
+
+func foo7(xx **int, yy *int) { // ERROR "xx does not escape" "yy does not escape"
+       **xx = *yy
+}
+
+func foo8(xx, yy *int) int { // ERROR "xx does not escape" "yy does not escape"
+       xx = yy
+       return *xx
+}
+
+func foo9(xx, yy *int) *int { // ERROR "leaking param: xx" "leaking param: yy"
+       xx = yy
+       return xx
+}
+
+func foo10(xx, yy *int) { // ERROR "xx does not escape" "yy does not escape"
+       *xx = *yy
+}
+
+func foo11() int {
+       x, y := 0, 42
+       xx := &x // ERROR "&x does not escape"
+       yy := &y // ERROR "&y does not escape"
+       *xx = *yy
+       return x
+}
+
+var xxx **int
+
+func foo12(yyy **int) { // ERROR "leaking param: yyy"
+       xxx = yyy
+}
+
+func foo13(yyy **int) { // ERROR "yyy does not escape"
+       *xxx = *yyy
+}
+
+func foo14(yyy **int) { // ERROR "yyy does not escape"
+       **xxx = **yyy
+}
+
+func foo15(yy *int) { // ERROR "moved to heap: yy"
+       xxx = &yy // ERROR "&yy escapes to heap"
+}
+
+func foo16(yy *int) { // ERROR "leaking param: yy"
+       *xxx = yy
+}
+
+func foo17(yy *int) { // ERROR "yy does not escape"
+       **xxx = *yy
+}
+
+func foo18(y int) { // ERROR "moved to heap: "y"
+       *xxx = &y // ERROR "&y escapes to heap"
+}
+
+func foo19(y int) {
+       **xxx = y
+}
+
+type Bar struct {
+       i  int
+       ii *int
+}
+
+func NewBar() *Bar {
+       return &Bar{42, nil} // ERROR "&Bar literal escapes to heap"
+}
+
+func NewBarp(x *int) *Bar { // ERROR "leaking param: x"
+       return &Bar{42, x} // ERROR "&Bar literal escapes to heap"
+}
+
+func NewBarp2(x *int) *Bar { // ERROR "x does not escape"
+       return &Bar{*x, nil} // ERROR "&Bar literal escapes to heap"
+}
+
+func (b *Bar) NoLeak() int { // ERROR "b does not escape"
+       return *(b.ii)
+}
+
+func (b *Bar) Leak() *int { // ERROR "leaking param: b"
+       return &b.i // ERROR "&b.i escapes to heap"
+}
+
+func (b *Bar) AlsoNoLeak() *int { // ERROR "b does not escape"
+       return b.ii
+}
+
+func (b Bar) AlsoLeak() *int { // ERROR "leaking param: b"
+       return b.ii
+}
+
+func (b Bar) LeaksToo() *int { // ERROR "leaking param: b"
+       v := 0  // ERROR "moved to heap: v"
+       b.ii = &v // ERROR "&v escapes"
+       return b.ii
+}
+
+func (b *Bar) LeaksABit() *int { // ERROR "b does not escape"
+       v := 0  // ERROR "moved to heap: v"
+       b.ii = &v // ERROR "&v escapes"
+       return b.ii
+}
+
+func (b Bar) StillNoLeak() int { // ERROR "b does not escape"
+       v := 0
+       b.ii = &v // ERROR "&v does not escape"
+       return b.i
+}
+
+func goLeak(b *Bar) { // ERROR "leaking param: b"
+       go b.NoLeak()
+}
+
+type Bar2 struct {
+       i  [12]int
+       ii []int
+}
+
+func NewBar2() *Bar2 {
+       return &Bar2{[12]int{42}, nil} // ERROR "&Bar2 literal escapes to heap"
+}
+
+func (b *Bar2) NoLeak() int { // ERROR "b does not escape"
+       return b.i[0]
+}
+
+func (b *Bar2) Leak() []int { // ERROR "leaking param: b"
+       return b.i[:] // ERROR "b.i escapes to heap"
+}
+
+func (b *Bar2) AlsoNoLeak() []int { // ERROR "b does not escape"
+       return b.ii[0:1]
+}
+
+func (b Bar2) AgainNoLeak() [12]int { // ERROR "b does not escape"
+       return b.i
+}
+
+func (b *Bar2) LeakSelf() { // ERROR "leaking param: b"
+       b.ii = b.i[0:4] // ERROR "b.i escapes to heap"
+}
+
+func (b *Bar2) LeakSelf2() { // ERROR "leaking param: b"
+       var buf []int
+       buf = b.i[0:] // ERROR "b.i escapes to heap"
+       b.ii = buf
+}
+
+func foo21() func() int {
+       x := 42             // ERROR "moved to heap: x"
+       return func() int { // ERROR "func literal escapes to heap"
+               return x // ERROR "&x escapes to heap"
+       }
+}
+
+func foo22() int {
+       x := 42
+       return func() int { // ERROR "func literal does not escape"
+               return x
+       }()
+}
+
+func foo23(x int) func() int { // ERROR "moved to heap: x"
+       return func() int { // ERROR "func literal escapes to heap"
+               return x // ERROR "&x escapes to heap"
+       }
+}
+
+func foo23a(x int) func() int { // ERROR "moved to heap: x"
+       f := func() int { // ERROR "func literal escapes to heap"
+               return x // ERROR "&x escapes to heap"
+       }
+       return f
+}
+
+func foo23b(x int) *(func() int) { // ERROR "moved to heap: x"
+       f := func() int { return x } // ERROR "moved to heap: f" "func literal escapes to heap" "&x escapes to heap"
+       return &f                    // ERROR "&f escapes to heap"
+}
+
+func foo24(x int) int {
+       return func() int { // ERROR "func literal does not escape"
+               return x
+       }()
+}
+
+var x *int
+
+func fooleak(xx *int) int { // ERROR "leaking param: xx"
+       x = xx
+       return *x
+}
+
+func foonoleak(xx *int) int { // ERROR "xx does not escape"
+       return *x + *xx
+}
+
+func foo31(x int) int { // ERROR "moved to heap: x"
+       return fooleak(&x) // ERROR "&x escapes to heap"
+}
+
+func foo32(x int) int {
+       return foonoleak(&x) // ERROR "&x does not escape"
+}
+
+type Foo struct {
+       xx *int
+       x  int
+}
+
+var F Foo
+var pf *Foo
+
+func (f *Foo) fooleak() { // ERROR "leaking param: f"
+       pf = f
+}
+
+func (f *Foo) foonoleak() { // ERROR "f does not escape"
+       F.x = f.x
+}
+
+func (f *Foo) Leak() { // ERROR "leaking param: f"
+       f.fooleak()
+}
+
+func (f *Foo) NoLeak() { // ERROR "f does not escape"
+       f.foonoleak()
+}
+
+func foo41(x int) { // ERROR "moved to heap: x"
+       F.xx = &x // ERROR "&x escapes to heap"
+}
+
+func (f *Foo) foo42(x int) { // ERROR "f does not escape" "moved to heap: x"
+       f.xx = &x // ERROR "&x escapes to heap"
+}
+
+func foo43(f *Foo, x int) { // ERROR "f does not escape" "moved to heap: x"
+       f.xx = &x // ERROR "&x escapes to heap"
+}
+
+func foo44(yy *int) { // ERROR "leaking param: yy"
+       F.xx = yy
+}
+
+func (f *Foo) foo45() { // ERROR "f does not escape"
+       F.x = f.x
+}
+
+func (f *Foo) foo46() { // ERROR "f does not escape"
+       F.xx = f.xx
+}
+
+func (f *Foo) foo47() { // ERROR "leaking param: f"
+       f.xx = &f.x // ERROR "&f.x escapes to heap"
+}
+
+var ptrSlice []*int
+
+func foo50(i *int) { // ERROR "leaking param: i"
+       ptrSlice[0] = i
+}
+
+var ptrMap map[*int]*int
+
+func foo51(i *int) { // ERROR "leaking param: i"
+       ptrMap[i] = i
+}
+
+func indaddr1(x int) *int { // ERROR "moved to heap: x"
+       return &x // ERROR "&x escapes to heap"
+}
+
+func indaddr2(x *int) *int { // ERROR "leaking param: x"
+       return *&x // ERROR "&x does not escape"
+}
+
+func indaddr3(x *int32) *int { // ERROR "leaking param: x"
+       return *(**int)(unsafe.Pointer(&x)) // ERROR "&x does not escape"
+}
+
+// From package math:
+
+func Float32bits(f float32) uint32 {
+       return *(*uint32)(unsafe.Pointer(&f)) // ERROR "&f does not escape"
+}
+
+func Float32frombits(b uint32) float32 {
+       return *(*float32)(unsafe.Pointer(&b)) // ERROR "&b does not escape"
+}
+
+func Float64bits(f float64) uint64 {
+       return *(*uint64)(unsafe.Pointer(&f)) // ERROR "&f does not escape"
+}
+
+func Float64frombits(b uint64) float64 {
+       return *(*float64)(unsafe.Pointer(&b)) // ERROR "&b does not escape"
+}
+
+// contrast with
+func float64bitsptr(f float64) *uint64 { // ERROR "moved to heap: f"
+       return (*uint64)(unsafe.Pointer(&f)) // ERROR "&f escapes to heap"
+}
+
+func float64ptrbitsptr(f *float64) *uint64 { // ERROR "leaking param: f"
+       return (*uint64)(unsafe.Pointer(f))
+}
+
+func typesw(i interface{}) *int { // ERROR "leaking param: i"
+       switch val := i.(type) {
+       case *int:
+               return val
+       case *int8:
+               v := int(*val) // ERROR "moved to heap: v"
+               return &v      // ERROR "&v escapes to heap"
+       }
+       return nil
+}
+
+func exprsw(i *int) *int { // ERROR "leaking param: i"
+       switch j := i; *j + 110 {
+       case 12:
+               return j
+       case 42:
+               return nil
+       }
+       return nil
+
+}
+
+// assigning to an array element is like assigning to the array
+func foo60(i *int) *int { // ERROR "leaking param: i"
+       var a [12]*int
+       a[0] = i
+       return a[1]
+}
+
+func foo60a(i *int) *int { // ERROR "i does not escape"
+       var a [12]*int
+       a[0] = i
+       return nil
+}
+
+// assigning to a struct field  is like assigning to the struct
+func foo61(i *int) *int { // ERROR "leaking param: i"
+       type S struct {
+               a, b *int
+       }
+       var s S
+       s.a = i
+       return s.b
+}
+
+func foo61a(i *int) *int { // ERROR "i does not escape"
+       type S struct {
+               a, b *int
+       }
+       var s S
+       s.a = i
+       return nil
+}
+
+// assigning to a struct field is like assigning to the struct but
+// here this subtlety is lost, since s.a counts as an assignment to a
+// track-losing dereference.
+func foo62(i *int) *int { // ERROR "leaking param: i"
+       type S struct {
+               a, b *int
+       }
+       s := new(S) // ERROR "new[(]S[)] does not escape"
+       s.a = i
+       return nil // s.b
+}
+
+type M interface {
+       M()
+}
+
+func foo63(m M) { // ERROR "m does not escape"
+}
+
+func foo64(m M) { // ERROR "leaking param: m"
+       m.M()
+}
+
+func foo64b(m M) { // ERROR "leaking param: m"
+       defer m.M()
+}
+
+type MV int
+
+func (MV) M() {}
+
+func foo65() {
+       var mv MV
+       foo63(&mv) // ERROR "&mv does not escape"
+}
+
+func foo66() {
+       var mv MV  // ERROR "moved to heap: mv"
+       foo64(&mv) // ERROR "&mv escapes to heap"
+}
+
+func foo67() {
+       var mv MV
+       foo63(mv)
+}
+
+func foo68() {
+       var mv MV
+       foo64(mv) // escapes but it's an int so irrelevant
+}
+
+func foo69(m M) { // ERROR "leaking param: m"
+       foo64(m)
+}
+
+func foo70(mv1 *MV, m M) { // ERROR "leaking param: mv1" "leaking param: m"
+       m = mv1
+       foo64(m)
+}
+
+func foo71(x *int) []*int { // ERROR "leaking param: x"
+       var y []*int
+       y = append(y, x)
+       return y
+}
+
+func foo71a(x int) []*int { // ERROR "moved to heap: x"
+       var y []*int
+       y = append(y, &x) // ERROR "&x escapes to heap"
+       return y
+}
+
+func foo72() {
+       var x int
+       var y [1]*int
+       y[0] = &x // ERROR "&x does not escape"
+}
+
+func foo72aa() [10]*int {
+       var x int // ERROR "moved to heap: x"
+       var y [10]*int
+       y[0] = &x // ERROR "&x escapes to heap"
+       return y
+}
+
+func foo72a() {
+       var y [10]*int
+       for i := 0; i < 10; i++ {
+               // escapes its scope
+               x := i    // ERROR "moved to heap: x"
+               y[i] = &x // ERROR "&x escapes to heap"
+       }
+       return
+}
+
+func foo72b() [10]*int {
+       var y [10]*int
+       for i := 0; i < 10; i++ {
+               x := i    // ERROR "moved to heap: x"
+               y[i] = &x // ERROR "&x escapes to heap"
+       }
+       return y
+}
+
+// issue 2145
+func foo73() {
+       s := []int{3, 2, 1} // ERROR "\[\]int literal does not escape"
+       for _, v := range s {
+               vv := v // ERROR "moved to heap: vv"
+               // actually just escapes its scope
+               defer func() { // ERROR "func literal escapes to heap"
+                       println(vv) // ERROR "&vv escapes to heap"
+               }()
+       }
+}
+
+func foo74() {
+       s := []int{3, 2, 1} // ERROR "\[\]int literal does not escape"
+       for _, v := range s {
+               vv := v // ERROR "moved to heap: vv"
+               // actually just escapes its scope
+               fn := func() { // ERROR "func literal escapes to heap"
+                       println(vv) // ERROR "&vv escapes to heap"
+               }
+               defer fn()
+       }
+}
+
+func myprint(y *int, x ...interface{}) *int { // ERROR "x does not escape" "leaking param: y"
+       return y
+}
+
+func myprint1(y *int, x ...interface{}) *interface{} { // ERROR "y does not escape" "leaking param: x"
+       return &x[0] // ERROR "&x.0. escapes to heap"
+}
+
+func foo75(z *int) { // ERROR "leaking param: z"
+       myprint(z, 1, 2, 3) // ERROR "[.][.][.] argument does not escape"
+}
+
+func foo75a(z *int) { // ERROR "z does not escape"
+       myprint1(z, 1, 2, 3) // ERROR "[.][.][.] argument escapes to heap"
+}
+
+func foo76(z *int) { // ERROR "leaking param: z"
+       myprint(nil, z) // ERROR "[.][.][.] argument does not escape"
+}
+
+func foo76a(z *int) { // ERROR "leaking param: z"
+       myprint1(nil, z) // ERROR "[.][.][.] argument escapes to heap"
+}
+
+func foo76b() {
+       myprint(nil, 1, 2, 3) // ERROR "[.][.][.] argument does not escape"
+}
+
+func foo76c() {
+       myprint1(nil, 1, 2, 3) // ERROR "[.][.][.] argument escapes to heap"
+}
+
+func foo76d() {
+       defer myprint(nil, 1, 2, 3) // ERROR "[.][.][.] argument does not escape"
+}
+
+func foo76e() {
+       defer myprint1(nil, 1, 2, 3) // ERROR "[.][.][.] argument escapes to heap"
+}
+
+func foo76f() {
+       for {
+               // TODO: This one really only escapes its scope, but we don't distinguish yet.
+               defer myprint(nil, 1, 2, 3) // ERROR "[.][.][.] argument escapes to heap"
+       }
+}
+
+func foo76g() {
+       for {
+               defer myprint1(nil, 1, 2, 3) // ERROR "[.][.][.] argument escapes to heap"
+       }
+}
+
+func foo77(z []interface{}) { // ERROR "z does not escape"
+       myprint(nil, z...) // z does not escape
+}
+
+func foo77a(z []interface{}) { // ERROR "leaking param: z"
+       myprint1(nil, z...)
+}
+
+func foo78(z int) *int { // ERROR "moved to heap: z"
+       return &z // ERROR "&z escapes to heap"
+}
+
+func foo78a(z int) *int { // ERROR "moved to heap: z"
+       y := &z   // ERROR "&z escapes to heap"
+       x := &y   // ERROR "&y does not escape"
+       return *x // really return y
+}
+
+func foo79() *int {
+       return new(int) // ERROR "new[(]int[)] escapes to heap"
+}
+
+func foo80() *int {
+       var z *int
+       for {
+               // Really just escapes its scope but we don't distinguish
+               z = new(int) // ERROR "new[(]int[)] escapes to heap"
+       }
+       _ = z
+       return nil
+}
+
+func foo81() *int {
+       for {
+               z := new(int) // ERROR "new[(]int[)] does not escape"
+               _ = z
+       }
+       return nil
+}
+
+type Fooer interface {
+       Foo()
+}
+
+type LimitedFooer struct {
+       Fooer
+       N int64
+}
+
+func LimitFooer(r Fooer, n int64) Fooer { // ERROR "leaking param: r"
+       return &LimitedFooer{r, n} // ERROR "&LimitedFooer literal escapes to heap"
+}
+
+func foo90(x *int) map[*int]*int { // ERROR "leaking param: x"
+       return map[*int]*int{nil: x} // ERROR "map\[\*int\]\*int literal escapes to heap"
+}
+
+func foo91(x *int) map[*int]*int { // ERROR "leaking param: x"
+       return map[*int]*int{x: nil} // ERROR "map\[\*int\]\*int literal escapes to heap"
+}
+
+func foo92(x *int) [2]*int { // ERROR "leaking param: x"
+       return [2]*int{x, nil}
+}
+
+// does not leak c
+func foo93(c chan *int) *int { // ERROR "c does not escape"
+       for v := range c {
+               return v
+       }
+       return nil
+}
+
+// does not leak m
+func foo94(m map[*int]*int, b bool) *int { // ERROR "m does not escape"
+       for k, v := range m {
+               if b {
+                       return k
+               }
+               return v
+       }
+       return nil
+}
+
+// does leak x
+func foo95(m map[*int]*int, x *int) { // ERROR "m does not escape" "leaking param: x"
+       m[x] = x
+}
+
+// does not leak m
+func foo96(m []*int) *int { // ERROR "m does not escape"
+       return m[0]
+}
+
+// does leak m
+func foo97(m [1]*int) *int { // ERROR "leaking param: m"
+       return m[0]
+}
+
+// does not leak m
+func foo98(m map[int]*int) *int { // ERROR "m does not escape"
+       return m[0]
+}
+
+// does leak m
+func foo99(m *[1]*int) []*int { // ERROR "leaking param: m"
+       return m[:]
+}
+
+// does not leak m
+func foo100(m []*int) *int { // ERROR "m does not escape"
+       for _, v := range m {
+               return v
+       }
+       return nil
+}
+
+// does leak m
+func foo101(m [1]*int) *int { // ERROR "leaking param: m"
+       for _, v := range m {
+               return v
+       }
+       return nil
+}
+
+// does not leak m
+func foo101a(m [1]*int) *int { // ERROR "m does not escape"
+       for i := range m { // ERROR "moved to heap: i"
+               return &i // ERROR "&i escapes to heap"
+       }
+       return nil
+}
+
+// does leak x
+func foo102(m []*int, x *int) { // ERROR "m does not escape" "leaking param: x"
+       m[0] = x
+}
+
+// does not leak x
+func foo103(m [1]*int, x *int) { // ERROR "m does not escape" "x does not escape"
+       m[0] = x
+}
+
+var y []*int
+
+// does not leak x
+func foo104(x []*int) { // ERROR "x does not escape"
+       copy(y, x)
+}
+
+// does not leak x
+func foo105(x []*int) { // ERROR "x does not escape"
+       _ = append(y, x...)
+}
+
+// does leak x
+func foo106(x *int) { // ERROR "leaking param: x"
+       _ = append(y, x)
+}
+
+func foo107(x *int) map[*int]*int { // ERROR "leaking param: x"
+       return map[*int]*int{x: nil} // ERROR "map.* literal escapes to heap"
+}
+
+func foo108(x *int) map[*int]*int { // ERROR "leaking param: x"
+       return map[*int]*int{nil: x} // ERROR "map.* literal escapes to heap"
+}
+
+func foo109(x *int) *int { // ERROR "leaking param: x"
+       m := map[*int]*int{x: nil} // ERROR "map.* literal does not escape"
+       for k, _ := range m {
+               return k
+       }
+       return nil
+}
+
+func foo110(x *int) *int { // ERROR "leaking param: x"
+       m := map[*int]*int{nil: x} // ERROR "map.* literal does not escape"
+       return m[nil]
+}
+
+func foo111(x *int) *int { // ERROR "leaking param: x"
+       m := []*int{x} // ERROR "\[\]\*int literal does not escape"
+       return m[0]
+}
+
+func foo112(x *int) *int { // ERROR "leaking param: x"
+       m := [1]*int{x}
+       return m[0]
+}
+
+func foo113(x *int) *int { // ERROR "leaking param: x"
+       m := Bar{ii: x}
+       return m.ii
+}
+
+func foo114(x *int) *int { // ERROR "leaking param: x"
+       m := &Bar{ii: x} // ERROR "&Bar literal does not escape"
+       return m.ii
+}
+
+func foo115(x *int) *int { // ERROR "leaking param: x"
+       return (*int)(unsafe.Pointer(uintptr(unsafe.Pointer(x)) + 1))
+}
+
+func foo116(b bool) *int {
+       if b {
+               x := 1    // ERROR "moved to heap: x"
+               return &x // ERROR "&x escapes to heap"
+       } else {
+               y := 1    // ERROR "moved to heap: y"
+               return &y // ERROR "&y escapes to heap"
+       }
+       return nil
+}
+
+func foo117(unknown func(interface{})) { // ERROR "unknown does not escape"
+       x := 1      // ERROR "moved to heap: x"
+       unknown(&x) // ERROR "&x escapes to heap"
+}
+
+func foo118(unknown func(*int)) { // ERROR "unknown does not escape"
+       x := 1      // ERROR "moved to heap: x"
+       unknown(&x) // ERROR "&x escapes to heap"
+}
+
+func external(*int)
+
+func foo119(x *int) { // ERROR "leaking param: x"
+       external(x)
+}
+
+func foo120() {
+       // formerly exponential time analysis
+L1:
+L2:
+L3:
+L4:
+L5:
+L6:
+L7:
+L8:
+L9:
+L10:
+L11:
+L12:
+L13:
+L14:
+L15:
+L16:
+L17:
+L18:
+L19:
+L20:
+L21:
+L22:
+L23:
+L24:
+L25:
+L26:
+L27:
+L28:
+L29:
+L30:
+L31:
+L32:
+L33:
+L34:
+L35:
+L36:
+L37:
+L38:
+L39:
+L40:
+L41:
+L42:
+L43:
+L44:
+L45:
+L46:
+L47:
+L48:
+L49:
+L50:
+L51:
+L52:
+L53:
+L54:
+L55:
+L56:
+L57:
+L58:
+L59:
+L60:
+L61:
+L62:
+L63:
+L64:
+L65:
+L66:
+L67:
+L68:
+L69:
+L70:
+L71:
+L72:
+L73:
+L74:
+L75:
+L76:
+L77:
+L78:
+L79:
+L80:
+L81:
+L82:
+L83:
+L84:
+L85:
+L86:
+L87:
+L88:
+L89:
+L90:
+L91:
+L92:
+L93:
+L94:
+L95:
+L96:
+L97:
+L98:
+L99:
+L100:
+       // use the labels to silence compiler errors
+       goto L1
+       goto L2
+       goto L3
+       goto L4
+       goto L5
+       goto L6
+       goto L7
+       goto L8
+       goto L9
+       goto L10
+       goto L11
+       goto L12
+       goto L13
+       goto L14
+       goto L15
+       goto L16
+       goto L17
+       goto L18
+       goto L19
+       goto L20
+       goto L21
+       goto L22
+       goto L23
+       goto L24
+       goto L25
+       goto L26
+       goto L27
+       goto L28
+       goto L29
+       goto L30
+       goto L31
+       goto L32
+       goto L33
+       goto L34
+       goto L35
+       goto L36
+       goto L37
+       goto L38
+       goto L39
+       goto L40
+       goto L41
+       goto L42
+       goto L43
+       goto L44
+       goto L45
+       goto L46
+       goto L47
+       goto L48
+       goto L49
+       goto L50
+       goto L51
+       goto L52
+       goto L53
+       goto L54
+       goto L55
+       goto L56
+       goto L57
+       goto L58
+       goto L59
+       goto L60
+       goto L61
+       goto L62
+       goto L63
+       goto L64
+       goto L65
+       goto L66
+       goto L67
+       goto L68
+       goto L69
+       goto L70
+       goto L71
+       goto L72
+       goto L73
+       goto L74
+       goto L75
+       goto L76
+       goto L77
+       goto L78
+       goto L79
+       goto L80
+       goto L81
+       goto L82
+       goto L83
+       goto L84
+       goto L85
+       goto L86
+       goto L87
+       goto L88
+       goto L89
+       goto L90
+       goto L91
+       goto L92
+       goto L93
+       goto L94
+       goto L95
+       goto L96
+       goto L97
+       goto L98
+       goto L99
+       goto L100
+}
+
+func foo121() {
+       for i := 0; i < 10; i++ {
+               defer myprint(nil, i) // ERROR "[.][.][.] argument escapes to heap"
+               go myprint(nil, i)    // ERROR "[.][.][.] argument escapes to heap"
+       }
+}
+
+// same as foo121 but check across import
+func foo121b() {
+       for i := 0; i < 10; i++ {
+               defer fmt.Printf("%d", i) // ERROR "[.][.][.] argument escapes to heap"
+               go fmt.Printf("%d", i)    // ERROR "[.][.][.] argument escapes to heap"
+       }
+}
+
+// a harmless forward jump
+func foo122() {
+       var i *int
+
+       goto L1
+L1:
+       i = new(int) // ERROR "does not escape"
+       _ = i
+}
+
+// a backward jump, increases loopdepth
+func foo123() {
+       var i *int
+
+L1:
+       i = new(int) // ERROR "escapes"
+
+       goto L1
+       _ = i
+}
diff --git a/gcc/testsuite/go.test/test/escape3.go b/gcc/testsuite/go.test/test/escape3.go
new file mode 100644 (file)
index 0000000..fc2d6eb
--- /dev/null
@@ -0,0 +1,36 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Test run-time behavior of escape analysis-related optimizations.
+
+package main
+
+func main() {
+       test1()
+}
+
+func test1() {
+       check1(0)
+       check1(1)
+       check1(2)
+}
+
+type T1 struct {
+       X, Y, Z int
+}
+
+func f() int {
+       return 1
+}
+
+func check1(pass int) T1 {
+       v := []T1{{X: f(), Z: f()}}
+       if v[0].Y != 0 {
+               panic("nonzero init")
+       }
+       v[0].Y = pass
+       return v[0]
+}
index acc295d51aad46b833fc8164e3370634d5f81ad5..cf2daaecf06b42b9a8e058171f9098113640ffa8 100644 (file)
@@ -6,53 +6,76 @@
 
 package main
 
+import "fmt"
+
 type Element interface {
 }
 
 type Vector struct {
-       nelem int;
-       elem []Element;
+       nelem int
+       elem  []Element
 }
 
 func New() *Vector {
-       v := new(Vector);
-       v.nelem = 0;
-       v.elem = make([]Element, 10);
-       return v;
+       v := new(Vector)
+       v.nelem = 0
+       v.elem = make([]Element, 10)
+       return v
 }
 
 func (v *Vector) At(i int) Element {
-       return v.elem[i];
+       return v.elem[i]
 }
 
 func (v *Vector) Insert(e Element) {
-       v.elem[v.nelem] = e;
-       v.nelem++;
+       v.elem[v.nelem] = e
+       v.nelem++
 }
 
 func main() {
-       type I struct { val int; };
-       i0 := new(I); i0.val = 0;
-       i1 := new(I); i1.val = 11;
-       i2 := new(I); i2.val = 222;
-       i3 := new(I); i3.val = 3333;
-       i4 := new(I); i4.val = 44444;
-       v := New();
-       print("hi\n");
-       v.Insert(i4);
-       v.Insert(i3);
-       v.Insert(i2);
-       v.Insert(i1);
-       v.Insert(i0);
+       type I struct{ val int }
+       i0 := new(I)
+       i0.val = 0
+       i1 := new(I)
+       i1.val = 11
+       i2 := new(I)
+       i2.val = 222
+       i3 := new(I)
+       i3.val = 3333
+       i4 := new(I)
+       i4.val = 44444
+       v := New()
+       r := "hi\n"
+       v.Insert(i4)
+       v.Insert(i3)
+       v.Insert(i2)
+       v.Insert(i1)
+       v.Insert(i0)
        for i := 0; i < v.nelem; i++ {
-               var x *I;
-               x = v.At(i).(*I);
-               print(i, " ", x.val, "\n");  // prints correct list
+               var x *I
+               x = v.At(i).(*I)
+               r += fmt.Sprintln(i, x.val) // prints correct list
        }
        for i := 0; i < v.nelem; i++ {
-               print(i, " ", v.At(i).(*I).val, "\n");
+               r += fmt.Sprintln(i, v.At(i).(*I).val)
+       }
+       expect := `hi
+0 44444
+1 3333
+2 222
+3 11
+4 0
+0 44444
+1 3333
+2 222
+3 11
+4 0
+`
+       if r != expect {
+               panic(r)
        }
 }
+
 /*
 bug027.go:50: illegal types for operand
        (<Element>I{}) CONV (<I>{})
index b812f01169c817f6f485aea6587de6c6ad49b921..328d191bb423d02728a99579cc3fce9e0b700951 100644 (file)
@@ -10,6 +10,6 @@ var c chan int
 
 func main() {
        c = make(chan int);
-       go func() { print("ok\n"); c <- 0 } ();
+       go func() { c <- 0 } ();
        <-c
 }
index 6afdd467d995fa00ffa4e4de83fcec58624d7f6a..24ac7798889ad9d4af3fb3f17a2e7c4dc7af5fdd 100644 (file)
@@ -6,20 +6,35 @@
 
 package main
 
+import "fmt"
+
 func main() {
-       var i, k int;
-       outer:
-       for k=0; k<2; k++ {
-               print("outer loop top k ", k, "\n");
-               if k != 0 { panic("k not zero") }  // inner loop breaks this one every time
-               for i=0; i<2; i++ {
-                       if i != 0 { panic("i not zero") }  // loop breaks every time
-                       print("inner loop top i ", i, "\n");
+       var i, k int
+       var r string
+outer:
+       for k = 0; k < 2; k++ {
+               r += fmt.Sprintln("outer loop top k", k)
+               if k != 0 {
+                       panic("k not zero")
+               } // inner loop breaks this one every time
+               for i = 0; i < 2; i++ {
+                       if i != 0 {
+                               panic("i not zero")
+                       } // loop breaks every time
+                       r += fmt.Sprintln("inner loop top i", i)
                        if true {
-                               print("do break\n");
-                               break outer;
+                               r += "do break\n"
+                               break outer
                        }
                }
        }
-       print("broke\n");
+       r += "broke\n"
+       expect := `outer loop top k 0
+inner loop top i 0
+do break
+broke
+`
+       if r != expect {
+               panic(r)
+       }
 }
index f80eee01fa7fb09815273a44f0a94ab51a1341c7..52d92c7e3d4c668414ac3cf97a742ae5e8c6461a 100644 (file)
@@ -10,7 +10,6 @@ type S struct {
 }
 
 func (p *S) M() {
-       print("M\n");
 }
 
 type I interface {
index 4fd322d53111e9839d9a354ae8bc27556915dd47..4ca07dc65a72da31cbf1c206658834f1de489d70 100644 (file)
@@ -1,4 +1,4 @@
-// $G $D/$F.go && $L $F.$A && (! ./$A.out || echo BUG: should not succeed)
+// $G $D/$F.go && $L $F.$A && ./$A.out
 
 // Copyright 2009 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
@@ -21,8 +21,24 @@ func main() {
        if foo2(v2) != 1 {
                panic(2)
        }
+       
+       shouldPanic(p1)
+}
+
+func p1() {
+       var i I
+       i = 1
        var v3 = i.(int32) // This type conversion should fail at runtime.
        if foo2(v3) != 1 {
                panic(3)
        }
 }
+
+func shouldPanic(f func()) {
+       defer func() {
+               if recover() == nil {
+                       panic("function should panic")
+               }
+       }()
+       f()
+}
index daedff10537198b7809b1f0ea473c494894b65e9..251020c96f79e94a505c6cf35a855fd098b506e7 100644 (file)
@@ -1,4 +1,4 @@
-// $G $D/$F.go && $L $F.$A && ! ./$A.out || echo BUG: should crash
+// $G $D/$F.go && $L $F.$A && ./$A.out
 
 // Copyright 2009 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
@@ -8,6 +8,8 @@ package main
 
 type T struct {a, b int};
 
+func println(x, y int) { }
+
 func f(x interface{}) interface{} {
        type T struct {a, b int};
 
@@ -24,16 +26,29 @@ func main() {
        inner_T := f(nil);
        f(inner_T);
 
+       shouldPanic(p1)
+}
+
+func p1() {
        outer_T := T{5, 7};
        f(outer_T);
 }
 
+func shouldPanic(f func()) {
+       defer func() {
+               if recover() == nil {
+                       panic("function should panic")
+               }
+       }()
+       f()
+}
+
 /*
 This prints:
 
 2 3
 5 7
 
-but it should crash: The type assertion on line 14 should fail
+but it should crash: The type assertion on line 18 should fail
 for the 2nd call to f with outer_T.
 */
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug220.go b/gcc/testsuite/go.test/test/fixedbugs/bug220.go
deleted file mode 100644 (file)
index ff027dd..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-// $G $D/$F.go || echo BUG: bug220
-
-// Copyright 2009 The Go Authors.  All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-func main() {
-       m := make(map[int]map[uint]float64)
-
-       m[0] = make(map[uint]float64), false // 6g used to reject this
-       m[1] = nil
-}
index 839dccd37410360c0c831afd77c46f48ce8effed..d80ae76a215ba32443b07c9f2e104f97af3f0fef 100644 (file)
@@ -93,7 +93,8 @@ func main() {
 
        m[13] = 'B'
        //  13        14
-       m[gint()] = gbyte(), false
+       delete(m, gint())
+       gbyte()
        if _, present := m[13]; present {
                println("bad map removal")
                panic("fail")
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug270.go b/gcc/testsuite/go.test/test/fixedbugs/bug270.go
deleted file mode 100644 (file)
index a9cda7b..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-// $G $D/$F.go
-
-// Copyright 2010 The Go Authors.  All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// http://code.google.com/p/go/issues/detail?id=746
-
-package main
-
-type I interface { F() }
-
-type T struct{}
-
-func (T) F() {}
-
-func main() {
-       switch I(T{}).(type) {
-       case interface{}:
-       }
-}
index 94423be8171f57c3a851d66b4b58fe4a0d358be4..eb678385610ebb713e0f48c52df9c687ea4ae08e 100644 (file)
@@ -12,16 +12,14 @@ type I interface {
        f()
 }
 
-
 var callee string
-var error bool
+var error_ bool
 
 type T int
 
 func (t *T) f() { callee = "f" }
 func (i *T) g() { callee = "g" }
 
-
 // test1 and test2 are the same except that in the interface J
 // the entries are swapped. test2 and test3 are the same except
 // that in test3 the interface J is declared outside the function.
@@ -36,11 +34,10 @@ func test1(x I) {
        x.(J).f()
        if callee != "f" {
                println("test1 called", callee)
-               error = true
+               error_ = true
        }
 }
 
-
 func test2(x I) {
        type J interface {
                g()
@@ -49,11 +46,10 @@ func test2(x I) {
        x.(J).f()
        if callee != "f" {
                println("test2 called", callee)
-               error = true
+               error_ = true
        }
 }
 
-
 type J interface {
        g()
        I
@@ -63,7 +59,7 @@ func test3(x I) {
        x.(J).f()
        if callee != "f" {
                println("test3 called", callee)
-               error = true
+               error_ = true
        }
 }
 
@@ -72,7 +68,7 @@ func main() {
        test1(x)
        test2(x)
        test3(x)
-       if error {
+       if error_ {
                panic("wrong method called")
        }
 }
index 64041f41290732b9b4f3359197d046b8b7c29f01..825298371f969d03ab2e48e1ece03fb335f3afff 100644 (file)
@@ -1,4 +1,4 @@
-// $G $D/$F.go && $L $F.$A && ./$A.out
+// $G $D/$F.go && $L $F.$A && ./$A.out 2>&1 | cmp - $D/$F.out
 
 // Copyright 2011 The Go Authors.  All rights reserved.
 // Use of this source code is governed by a BSD-style
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug328.out b/gcc/testsuite/go.test/test/fixedbugs/bug328.out
new file mode 100644 (file)
index 0000000..9982566
--- /dev/null
@@ -0,0 +1 @@
+0x0
index af72513e328845ba371c94384b91688c8f54611a..34cc013151f992ac2377042c43b2b6c3ef9341f7 100644 (file)
@@ -10,8 +10,8 @@ package main
 
 func main() {
        var x interface{}
-       switch t := x.(type) { // GC_ERROR "0 is not a type"
-       case 0:         // GCCGO_ERROR "expected type"
-               t.x = 1 // ERROR "type interface \{ \}|reference to undefined field or method"
+       switch t := x.(type) {
+       case 0:         // ERROR "type"
+               t.x = 1 // ERROR "type interface \{\}|reference to undefined field or method"
        }
 }
index ce69505044089a61e9655a52ea19a468c936a527..bc8c2c5e62c7d9a07b2d472f9064575b95a23494 100644 (file)
 package main
 
 type S struct {
-       err os.Error  // ERROR "undefined|expected package"
+       err foo.Bar // ERROR "undefined|expected package"
        Num int
 }
 
 func main() {
        s := S{}
-       _ = s.Num  // no error here please
+       _ = s.Num // no error here please
 }
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug366.go b/gcc/testsuite/go.test/test/fixedbugs/bug366.go
new file mode 100644 (file)
index 0000000..8c000f5
--- /dev/null
@@ -0,0 +1,37 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 2206.  Incorrect sign extension of div arguments.
+
+package main
+
+func five(x int64) {
+       if x != 5 {
+               panic(x)
+       }
+}
+
+func main() {
+       // 5
+       five(int64(5 / (5 / 3)))
+
+       // 5
+       five(int64(byte(5) / (byte(5) / byte(3))))
+
+       // 5
+       var a, b byte = 5, 3
+       five(int64(a / (a / b)))
+       
+       // integer divide by zero in golang.org sandbox
+       // 0 on windows/amd64
+       x := [3]byte{2, 3, 5}
+       five(int64(x[2] / (x[2] / x[1])))
+
+       // integer divide by zero in golang.org sandbox
+       // crash on windows/amd64
+       y := x[1:3]
+       five(int64(y[1] / (y[1] / y[0])))
+}
\ No newline at end of file
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug367.dir/main.go b/gcc/testsuite/go.test/test/fixedbugs/bug367.dir/main.go
new file mode 100644 (file)
index 0000000..21e9a50
--- /dev/null
@@ -0,0 +1,24 @@
+package main
+
+import (
+       "./p"
+)
+
+type T struct{ *p.S }
+type I interface {
+       get()
+}
+
+func main() {
+       var t T
+       p.F(t)
+       var x interface{} = t
+       _, ok := x.(I)
+       if ok {
+               panic("should not satisfy main.I")
+       }
+       _, ok = x.(p.I)
+       if !ok {
+               panic("should satisfy p.I")
+       }
+}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug367.dir/p.go b/gcc/testsuite/go.test/test/fixedbugs/bug367.dir/p.go
new file mode 100644 (file)
index 0000000..c8772d2
--- /dev/null
@@ -0,0 +1,15 @@
+package p
+
+type T struct{ x int }
+type S struct{}
+
+func (p *S) get() {
+}
+
+type I interface {
+       get()
+}
+
+func F(i I) {
+       i.get()
+}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug367.go b/gcc/testsuite/go.test/test/fixedbugs/bug367.go
new file mode 100644 (file)
index 0000000..25d11a1
--- /dev/null
@@ -0,0 +1,7 @@
+// $G $D/$F.dir/p.go && $G $D/$F.dir/main.go && $L main.$A && ./$A.out || echo BUG: should not fail
+
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package ignored
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug368.go b/gcc/testsuite/go.test/test/fixedbugs/bug368.go
new file mode 100644 (file)
index 0000000..8d94f53
--- /dev/null
@@ -0,0 +1,26 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+// 5g bug used to set up the 0 for -f() before calling f,
+// and the call to f smashed the register.
+
+func f(n int) int {
+       s := 0
+       for i := 0; i < n; i++ {
+               s += i>>1
+       }
+       return s
+}
+
+func main() {
+       x := -f(100)
+       if x != -2450 {
+               println(x)
+               panic("broken")
+       }
+}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug369.dir/pkg.go b/gcc/testsuite/go.test/test/fixedbugs/bug369.dir/pkg.go
new file mode 100644 (file)
index 0000000..cf57041
--- /dev/null
@@ -0,0 +1,15 @@
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package pkg
+
+func NonASCII(b []byte, i int) int {
+       for i = 0; i < len(b); i++ {
+               if b[i] >= 0x80 {
+                       break
+               }
+       }
+       return i
+}
+
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug369.go b/gcc/testsuite/go.test/test/fixedbugs/bug369.go
new file mode 100644 (file)
index 0000000..8eb23ee
--- /dev/null
@@ -0,0 +1,59 @@
+// $G -N -o slow.$A $D/bug369.dir/pkg.go &&
+// $G -o fast.$A $D/bug369.dir/pkg.go &&
+// $G $D/$F.go && $L $F.$A && ./$A.out
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Test that compiling with optimization turned on produces faster code.
+
+package main
+
+import (
+       "flag"
+       "os"
+       "runtime"
+       "testing"
+
+       fast "./fast"
+       slow "./slow"
+)
+
+var buf = make([]byte, 1048576)
+
+func BenchmarkFastNonASCII(b *testing.B) {
+       for i := 0; i < b.N; i++ {
+               fast.NonASCII(buf, 0)
+       }
+}
+
+func BenchmarkSlowNonASCII(b *testing.B) {
+       for i := 0; i < b.N; i++ {
+               slow.NonASCII(buf, 0)
+       }
+}
+
+func main() {
+       os.Args = []string{os.Args[0], "-test.benchtime=0.1"}
+       flag.Parse()
+       
+       rslow := testing.Benchmark(BenchmarkSlowNonASCII)
+       rfast := testing.Benchmark(BenchmarkFastNonASCII)
+       tslow := rslow.NsPerOp()
+       tfast := rfast.NsPerOp()
+
+       // Optimization should be good for at least 2x, but be forgiving.
+       // On the ARM simulator we see closer to 1.5x.
+       speedup := float64(tslow)/float64(tfast)
+       want := 1.8
+       if runtime.GOARCH == "arm" {
+               want = 1.3
+       }
+       if speedup < want {
+               // TODO(rsc): doesn't work on linux-amd64 or darwin-amd64 builders, nor on
+               // a Lenovo x200 (linux-amd64) laptop.
+               //println("fast:", tfast, "slow:", tslow, "speedup:", speedup, "want:", want)
+               //println("not fast enough")
+       }
+}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug370.go b/gcc/testsuite/go.test/test/fixedbugs/bug370.go
new file mode 100644 (file)
index 0000000..9cb45f6
--- /dev/null
@@ -0,0 +1,18 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+// issue 2337
+// The program deadlocked.
+
+import "runtime"
+
+func main() {
+       runtime.GOMAXPROCS(2)
+       runtime.GC()
+       runtime.GOMAXPROCS(1)
+}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug371.go b/gcc/testsuite/go.test/test/fixedbugs/bug371.go
new file mode 100644 (file)
index 0000000..bf993df
--- /dev/null
@@ -0,0 +1,24 @@
+// errchk $G $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// issue 2343
+
+package main
+
+type T struct {}
+
+func (t *T) pm() {}
+func (t T) m() {}
+
+func main() {
+       p := &T{}
+       p.pm()
+       p.m()
+
+       q := &p
+       q.m()  // ERROR "requires explicit dereference"
+       q.pm()
+}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug372.go b/gcc/testsuite/go.test/test/fixedbugs/bug372.go
new file mode 100644 (file)
index 0000000..a6f7208
--- /dev/null
@@ -0,0 +1,28 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG: bug372
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 2355
+package main
+
+type T struct {}
+func (T) m() string { return "T" }
+
+type TT struct {
+       T
+       m func() string
+}
+
+
+func ff() string { return "ff" }
+
+func main() {
+       var tt TT
+       tt.m = ff
+
+       if tt.m() != "ff" {
+               println(tt.m(), "!= \"ff\"")
+       }
+}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug373.go b/gcc/testsuite/go.test/test/fixedbugs/bug373.go
new file mode 100644 (file)
index 0000000..934a6c7
--- /dev/null
@@ -0,0 +1,32 @@
+// errchk $G $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 873, 2162
+
+package foo
+
+func f(x interface{}) {
+       switch t := x.(type) {  // ERROR "declared and not used"
+       case int:
+       }
+}
+
+func g(x interface{}) {
+       switch t := x.(type) {
+       case int:
+       case float32:
+               println(t)
+       }
+}
+
+func h(x interface{}) {
+       switch t := x.(type) {
+       case int:
+       case float32:
+       default:
+               println(t)
+       }
+}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug374.go b/gcc/testsuite/go.test/test/fixedbugs/bug374.go
new file mode 100644 (file)
index 0000000..b55c5df
--- /dev/null
@@ -0,0 +1,20 @@
+// errchk $G $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// issue 1556
+package foo
+
+type I interface {
+       m() int
+}
+
+type T int
+
+var _ I = T(0) // GCCGO_ERROR "incompatible"
+
+func (T) m(buf []byte) (a int, b xxxx) {  // ERROR "xxxx"
+       return 0, nil
+}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug375.go b/gcc/testsuite/go.test/test/fixedbugs/bug375.go
new file mode 100644 (file)
index 0000000..5273585
--- /dev/null
@@ -0,0 +1,19 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG: bug375
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 2423
+
+package main
+
+func main() {
+       var x interface{} = "hello"
+
+       switch x {
+       case "hello":
+       default:
+               println("FAIL")
+       }
+}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug376.go b/gcc/testsuite/go.test/test/fixedbugs/bug376.go
new file mode 100644 (file)
index 0000000..1efbeec
--- /dev/null
@@ -0,0 +1,11 @@
+// errchk $G $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// issue 1951
+package foo
+import "unsafe"
+var v = unsafe.Sizeof  // ERROR "must be called"
+
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug377.dir/one.go b/gcc/testsuite/go.test/test/fixedbugs/bug377.dir/one.go
new file mode 100644 (file)
index 0000000..c906075
--- /dev/null
@@ -0,0 +1,6 @@
+package one
+
+func Foo() (n int64, _ *int) {
+       return 42, nil
+}
+
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug377.dir/two.go b/gcc/testsuite/go.test/test/fixedbugs/bug377.dir/two.go
new file mode 100644 (file)
index 0000000..8a5346a
--- /dev/null
@@ -0,0 +1,4 @@
+package two
+
+import _ "./one"
+
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug377.go b/gcc/testsuite/go.test/test/fixedbugs/bug377.go
new file mode 100644 (file)
index 0000000..e905e34
--- /dev/null
@@ -0,0 +1,9 @@
+// $G $D/$F.dir/one.go && $G $D/$F.dir/two.go
+
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 1802
+
+package ignored
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug378.go b/gcc/testsuite/go.test/test/fixedbugs/bug378.go
new file mode 100644 (file)
index 0000000..b393b3d
--- /dev/null
@@ -0,0 +1,19 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG: bug378
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 2497
+
+package main
+
+type Header struct{}
+func (h Header) Method() {}
+
+var _ interface{} = Header{}
+
+func main() {
+       type X Header
+       var _ interface{} = X{}
+}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug379.go b/gcc/testsuite/go.test/test/fixedbugs/bug379.go
new file mode 100644 (file)
index 0000000..3dd3d29
--- /dev/null
@@ -0,0 +1,18 @@
+// errchk $G $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 2452.
+
+// Check that the error messages says 
+//     bug378.go:17: 1 + 2 not used
+// and not
+//     bug378.go:17: 1 not used
+
+package main
+
+func main() {
+       1 + 2 // ERROR "1 \+ 2 not used|value computed is not used"
+}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug380.go b/gcc/testsuite/go.test/test/fixedbugs/bug380.go
new file mode 100644 (file)
index 0000000..75b5806
--- /dev/null
@@ -0,0 +1,11 @@
+// $G $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Used to cause a typechecking loop error.
+
+package pkg
+type T map[int]string
+var q = &T{}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug381.go b/gcc/testsuite/go.test/test/fixedbugs/bug381.go
new file mode 100644 (file)
index 0000000..3f3232b
--- /dev/null
@@ -0,0 +1,20 @@
+// errchk $G $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 2276.
+
+// Check that the error messages says 
+//     bug378.go:19: unsafe.Alignof(0) not used
+// and not
+//     bug378.go:19: 4 not used
+
+package main
+
+import "unsafe"
+
+func main() {
+       unsafe.Alignof(0) // ERROR "unsafe\.Alignof|value computed is not used"
+}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug382.dir/pkg.go b/gcc/testsuite/go.test/test/fixedbugs/bug382.dir/pkg.go
new file mode 100644 (file)
index 0000000..f8d75d4
--- /dev/null
@@ -0,0 +1,7 @@
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package pkg
+type T struct {}
+var E T
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug382.go b/gcc/testsuite/go.test/test/fixedbugs/bug382.go
new file mode 100644 (file)
index 0000000..6212fbf
--- /dev/null
@@ -0,0 +1,10 @@
+// $G $D/$F.dir/pkg.go && $G $D/$F.go || echo "Bug 382"
+
+// Issue 2529
+
+package main
+import "./pkg"
+
+var x = pkg.E
+
+var fo = struct {F pkg.T}{F: x}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug383.go b/gcc/testsuite/go.test/test/fixedbugs/bug383.go
new file mode 100644 (file)
index 0000000..181a897
--- /dev/null
@@ -0,0 +1,13 @@
+// errchk $G $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 2520
+
+package main
+func main() {
+       if 2e9 { }      // ERROR "2e.09|expected bool"
+       if 3.14+1i { }  // ERROR "3.14 . 1i|expected bool"
+}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug384.go b/gcc/testsuite/go.test/test/fixedbugs/bug384.go
new file mode 100644 (file)
index 0000000..b3d6466
--- /dev/null
@@ -0,0 +1,12 @@
+// errchk $G $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 2500
+
+package foo
+
+// Check that we only get root cause message, no further complaints about r undefined
+func (r *indexWriter) foo() {}  // ERROR "undefined.*indexWriter"
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug385_32.go b/gcc/testsuite/go.test/test/fixedbugs/bug385_32.go
new file mode 100644 (file)
index 0000000..a009f66
--- /dev/null
@@ -0,0 +1,14 @@
+// [ $O == 6 ] || errchk $G -e $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 2444
+
+package main
+func main() {
+       var arr [1000200030]int   // ERROR "type .* too large"
+       arr_bkup := arr
+       _ = arr_bkup
+}
\ No newline at end of file
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug385_64.go b/gcc/testsuite/go.test/test/fixedbugs/bug385_64.go
new file mode 100644 (file)
index 0000000..701be0d
--- /dev/null
@@ -0,0 +1,15 @@
+// [ $O != 6 ]  || errchk $G -e $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 2444
+
+package main
+func main() {  // ERROR "stack frame too large"
+       var arr [1000200030]int
+       arr_bkup := arr
+       _ = arr_bkup
+}
+
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug386.go b/gcc/testsuite/go.test/test/fixedbugs/bug386.go
new file mode 100644 (file)
index 0000000..b42c070
--- /dev/null
@@ -0,0 +1,12 @@
+// errchk $G $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 2451, 2452 
+package foo
+
+func f() error { return 0 } // ERROR "cannot use 0 .type int.|has no methods"
+
+func g() error { return -1 }  // ERROR "cannot use -1 .type int.|has no methods"
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug387.go b/gcc/testsuite/go.test/test/fixedbugs/bug387.go
new file mode 100644 (file)
index 0000000..c9db4ae
--- /dev/null
@@ -0,0 +1,30 @@
+// $G $D/$F.go || echo "Bug387"
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 2549
+
+/*  Used to die with
+missing typecheck: [7f5bf07b4438]
+
+.   AS l(45)
+.   .   NAME-main.autotmp_0017 u(1) a(1) l(45) x(0+0) class(PAUTO)
+esc(N) tc(1) used(1) ARRAY-[2]string
+internal compiler error: missing typecheck 
+*/
+package main
+
+import (
+        "fmt"
+        "path/filepath"
+)
+
+func main() {
+        switch _, err := filepath.Glob(filepath.Join(".", "vnc")); {
+        case err != nil:
+                fmt.Println(err)
+        }
+}
+
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug388.go b/gcc/testsuite/go.test/test/fixedbugs/bug388.go
new file mode 100644 (file)
index 0000000..1459285
--- /dev/null
@@ -0,0 +1,39 @@
+// errchk $G $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 2231
+
+package main
+import "runtime"
+
+func foo(runtime.UintType, i int) {  // ERROR "cannot declare name runtime.UintType|named/anonymous mix"
+       println(i, runtime.UintType) 
+}
+
+func bar(i int) {
+       runtime.UintType := i       // ERROR "cannot declare name runtime.UintType|non-name on left side"
+       println(runtime.UintType)       // GCCGO_ERROR "invalid use of type"
+}
+
+func baz() {
+       main.i := 1     // ERROR "non-name main.i|non-name on left side"
+       println(main.i) // GCCGO_ERROR "no fields or methods"
+}
+
+func qux() {
+       var main.i      // ERROR "unexpected [.]|expected type"
+       println(main.i)
+}
+
+func corge() {
+       var foo.i int  // ERROR "unexpected [.]|expected type"
+       println(foo.i)
+}
+
+func main() {
+       foo(42,43)
+       bar(1969)
+}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug389.go b/gcc/testsuite/go.test/test/fixedbugs/bug389.go
new file mode 100644 (file)
index 0000000..ecbbbdd
--- /dev/null
@@ -0,0 +1,12 @@
+// errchk $G $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 2563
+package foo
+
+func fn(a float32) {}
+
+var f func(arg int) = fn  // ERROR "cannot use fn .type func.float32.. as type func.int. in assignment|different parameter types"
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug390.go b/gcc/testsuite/go.test/test/fixedbugs/bug390.go
new file mode 100644 (file)
index 0000000..31c4dd4
--- /dev/null
@@ -0,0 +1,16 @@
+// errchk $G -e $D/$F.go
+
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 2627 -- unsafe.Pointer type isn't handled nicely in some errors
+
+package main
+
+import "unsafe"
+
+func main() {
+       var x *int
+       _ = unsafe.Pointer(x) - unsafe.Pointer(x) // ERROR "operator - not defined on unsafe.Pointer|expected integer, floating, or complex type"
+}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug391.go b/gcc/testsuite/go.test/test/fixedbugs/bug391.go
new file mode 100644 (file)
index 0000000..8150718
--- /dev/null
@@ -0,0 +1,14 @@
+// $G $D/$F.go || echo "Issue2576"
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 2576
+package bug
+
+type T struct { a int }
+
+func f(t T) {
+        switch _, _ = t.a, t.a; {}
+}
\ No newline at end of file
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug392.dir/one.go b/gcc/testsuite/go.test/test/fixedbugs/bug392.dir/one.go
new file mode 100644 (file)
index 0000000..a701725
--- /dev/null
@@ -0,0 +1,22 @@
+// Copyright 2012 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Functions that the inliner exported incorrectly.
+
+package one
+
+type T int
+
+// Issue 2678
+func F1(T *T) bool { return T == nil }
+
+// Issue 2682.
+func F2(c chan int) bool { return c == (<-chan int)(nil) }
+
+// Use of single named return value.
+func F3() (ret []int) { return append(ret, 1) }
+
+// Call of inlined method with blank receiver.
+func (_ *T) M() int { return 1 }
+func (t *T) MM() int { return t.M() }
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug392.dir/two.go b/gcc/testsuite/go.test/test/fixedbugs/bug392.dir/two.go
new file mode 100644 (file)
index 0000000..b0ce26d
--- /dev/null
@@ -0,0 +1,20 @@
+// Copyright 2012 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Use the functions in one.go so that the inlined
+// forms get type-checked.
+
+package two
+
+import "./one"
+
+func use() {
+       one.F1(nil)
+       one.F2(nil)
+       one.F3()
+
+       var t *one.T
+       t.M()
+       t.MM()
+}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug392.go b/gcc/testsuite/go.test/test/fixedbugs/bug392.go
new file mode 100644 (file)
index 0000000..50af600
--- /dev/null
@@ -0,0 +1,7 @@
+// $G $D/$F.dir/one.go && $G $D/$F.dir/two.go
+
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package ignored
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug393.go b/gcc/testsuite/go.test/test/fixedbugs/bug393.go
new file mode 100644 (file)
index 0000000..e21b9c4
--- /dev/null
@@ -0,0 +1,30 @@
+// $G $D/$F.go || echo BUG: bug393
+
+// Copyright 2012 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// issue 2672
+// was trying binary search with an interface type
+
+package main
+
+func f(x interface{}) int {
+       switch x {
+       case 1:
+               return 1
+       case 2:
+               return 2
+       case 3:
+               return 3
+       case 4:
+               return 4
+       case "5":
+               return 5
+       case "6":
+               return 6
+       default:
+               return 7
+       }
+       panic("switch")
+}
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug394.go b/gcc/testsuite/go.test/test/fixedbugs/bug394.go
new file mode 100644 (file)
index 0000000..42c20e7
--- /dev/null
@@ -0,0 +1,10 @@
+// errchk $G $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 2598
+package foo
+
+return nil // ERROR "non-declaration statement outside function body|expected declaration"
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug396.dir/one.go b/gcc/testsuite/go.test/test/fixedbugs/bug396.dir/one.go
new file mode 100644 (file)
index 0000000..7902a07
--- /dev/null
@@ -0,0 +1,9 @@
+// Copyright 2012 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package one
+
+type T struct { int }
+
+func New(i int) T { return T{i} }
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug396.dir/two.go b/gcc/testsuite/go.test/test/fixedbugs/bug396.dir/two.go
new file mode 100644 (file)
index 0000000..9b32508
--- /dev/null
@@ -0,0 +1,14 @@
+// Copyright 2012 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Use the functions in one.go so that the inlined
+// forms get type-checked.
+
+package two
+
+import "./one"
+
+func use() {
+       _ = one.New(1)
+}
\ No newline at end of file
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug396.go b/gcc/testsuite/go.test/test/fixedbugs/bug396.go
new file mode 100644 (file)
index 0000000..50af600
--- /dev/null
@@ -0,0 +1,7 @@
+// $G $D/$F.dir/one.go && $G $D/$F.dir/two.go
+
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package ignored
diff --git a/gcc/testsuite/go.test/test/fixedbugs/bug397.go b/gcc/testsuite/go.test/test/fixedbugs/bug397.go
new file mode 100644 (file)
index 0000000..0395701
--- /dev/null
@@ -0,0 +1,13 @@
+// errchk $G -e $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+// Issue 2623
+var m = map[string]int {
+       "abc":1,
+       1:2, // ERROR "cannot use 1.*as type string in map key|incompatible type"
+}
diff --git a/gcc/testsuite/go.test/test/garbage/Makefile b/gcc/testsuite/go.test/test/garbage/Makefile
deleted file mode 100644 (file)
index e833843..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2010 The Go Authors.  All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file.
-
-include ../../src/Make.inc
-
-ALL=\
-       parser\
-       peano\
-       tree\
-
-all: $(addsuffix .out, $(ALL))
-
-%.$O: %.go stats.go
-       $(GC) $*.go stats.go
-
-%.out: %.$O
-       $(LD) -o $@ $*.$O
-
-%.bench: %.out
-       ./$*.out
-
-bench: $(addsuffix .bench, $(ALL))
-
-clean:
-       rm -f *.[$(OS)] $(addsuffix .out, $(ALL))
-
diff --git a/gcc/testsuite/go.test/test/garbage/parser.go b/gcc/testsuite/go.test/test/garbage/parser.go
deleted file mode 100644 (file)
index 19a96bc..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-// Copyright 2010 The Go Authors.  All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Garbage collection benchmark: parse Go packages repeatedly.
-
-package main
-
-import (
-       "flag"
-       "fmt"
-       "go/ast"
-       "go/parser"
-       "go/token"
-       "os"
-       "path"
-       "runtime"
-       "strings"
-       "time"
-       "http"
-       _ "http/pprof"
-       "log"
-)
-
-var serve = flag.String("serve", "", "serve http on this address at end")
-
-func isGoFile(dir *os.FileInfo) bool {
-       return dir.IsRegular() &&
-               !strings.HasPrefix(dir.Name, ".") && // ignore .files
-               path.Ext(dir.Name) == ".go"
-}
-
-func isPkgFile(dir *os.FileInfo) bool {
-       return isGoFile(dir) &&
-               !strings.HasSuffix(dir.Name, "_test.go") // ignore test files
-}
-
-func pkgName(filename string) string {
-       file, err := parser.ParseFile(token.NewFileSet(), filename, nil, parser.PackageClauseOnly)
-       if err != nil || file == nil {
-               return ""
-       }
-       return file.Name.Name
-}
-
-func parseDir(dirpath string) map[string]*ast.Package {
-       // the package name is the directory name within its parent
-       // (use dirname instead of path because dirname is clean; i.e. has no trailing '/')
-       _, pkgname := path.Split(dirpath)
-
-       // filter function to select the desired .go files
-       filter := func(d *os.FileInfo) bool {
-               if isPkgFile(d) {
-                       // Some directories contain main packages: Only accept
-                       // files that belong to the expected package so that
-                       // parser.ParsePackage doesn't return "multiple packages
-                       // found" errors.
-                       // Additionally, accept the special package name
-                       // fakePkgName if we are looking at cmd documentation.
-                       name := pkgName(dirpath + "/" + d.Name)
-                       return name == pkgname
-               }
-               return false
-       }
-
-       // get package AST
-       pkgs, err := parser.ParseDir(token.NewFileSet(), dirpath, filter, parser.ParseComments)
-       if err != nil {
-               println("parse", dirpath, err.String())
-               panic("fail")
-       }
-       return pkgs
-}
-
-func main() {
-       runtime.GOMAXPROCS(4)
-       go func() {}()
-       go func() {}()
-       go func() {}()
-       st := &runtime.MemStats
-       packages = append(packages, packages...)
-       packages = append(packages, packages...)
-       n := flag.Int("n", 4, "iterations")
-       p := flag.Int("p", len(packages), "# of packages to keep in memory")
-       flag.BoolVar(&st.DebugGC, "d", st.DebugGC, "print GC debugging info (pause times)")
-       flag.Parse()
-
-       var lastParsed []map[string]*ast.Package
-       var t0 int64
-       pkgroot := runtime.GOROOT() + "/src/pkg/"
-       for pass := 0; pass < 2; pass++ {
-               // Once the heap is grown to full size, reset counters.
-               // This hides the start-up pauses, which are much smaller
-               // than the normal pauses and would otherwise make
-               // the average look much better than it actually is.
-               st.NumGC = 0
-               st.PauseTotalNs = 0
-               t0 = time.Nanoseconds()
-
-               for i := 0; i < *n; i++ {
-                       parsed := make([]map[string]*ast.Package, *p)
-                       for j := range parsed {
-                               parsed[j] = parseDir(pkgroot + packages[j%len(packages)])
-                       }
-                       if i+1 == *n && *serve != "" {
-                               lastParsed = parsed
-                       }
-               }
-               runtime.GC()
-               runtime.GC()
-       }
-       t1 := time.Nanoseconds()
-
-       fmt.Printf("Alloc=%d/%d Heap=%d Mallocs=%d PauseTime=%.3f/%d = %.3f\n",
-               st.Alloc, st.TotalAlloc,
-               st.Sys,
-               st.Mallocs, float64(st.PauseTotalNs)/1e9,
-               st.NumGC, float64(st.PauseTotalNs)/1e9/float64(st.NumGC))
-
-       /*
-               fmt.Printf("%10s %10s %10s\n", "size", "#alloc", "#free")
-               for _, s := range st.BySize {
-                       fmt.Printf("%10d %10d %10d\n", s.Size, s.Mallocs, s.Frees)
-               }
-       */
-       // Standard gotest benchmark output, collected by build dashboard.
-       gcstats("BenchmarkParser", *n, t1-t0)
-
-       if *serve != "" {
-               log.Fatal(http.ListenAndServe(*serve, nil))
-               println(lastParsed)
-       }
-}
-
-
-var packages = []string{
-       "archive/tar",
-       "asn1",
-       "big",
-       "bufio",
-       "bytes",
-       "cmath",
-       "compress/flate",
-       "compress/gzip",
-       "compress/zlib",
-       "container/heap",
-       "container/list",
-       "container/ring",
-       "container/vector",
-       "crypto/aes",
-       "crypto/block",
-       "crypto/blowfish",
-       "crypto/hmac",
-       "crypto/md4",
-       "crypto/md5",
-       "crypto/rand",
-       "crypto/rc4",
-       "crypto/rsa",
-       "crypto/sha1",
-       "crypto/sha256",
-       "crypto/sha512",
-       "crypto/subtle",
-       "crypto/tls",
-       "crypto/x509",
-       "crypto/xtea",
-       "debug/dwarf",
-       "debug/macho",
-       "debug/elf",
-       "debug/gosym",
-       "debug/proc",
-       "ebnf",
-       "encoding/ascii85",
-       "encoding/base64",
-       "encoding/binary",
-       "encoding/git85",
-       "encoding/hex",
-       "encoding/pem",
-       "exec",
-       "exp/datafmt",
-       "exp/draw",
-       "exp/eval",
-       "exp/iterable",
-       "expvar",
-       "flag",
-       "fmt",
-       "go/ast",
-       "go/doc",
-       "go/parser",
-       "go/printer",
-       "go/scanner",
-       "go/token",
-       "gob",
-       "hash",
-       "hash/adler32",
-       "hash/crc32",
-       "hash/crc64",
-       "http",
-       "image",
-       "image/jpeg",
-       "image/png",
-       "io",
-       "io/ioutil",
-       "json",
-       "log",
-       "math",
-       "mime",
-       "net",
-       "os",
-       "os/signal",
-       "patch",
-       "path",
-       "rand",
-       "reflect",
-       "regexp",
-       "rpc",
-       "runtime",
-       "scanner",
-       "sort",
-       "smtp",
-       "strconv",
-       "strings",
-       "sync",
-       "syscall",
-       "syslog",
-       "tabwriter",
-       "template",
-       "testing",
-       "testing/iotest",
-       "testing/quick",
-       "testing/script",
-       "time",
-       "unicode",
-       "utf8",
-       "utf16",
-       "websocket",
-       "xml",
-}
diff --git a/gcc/testsuite/go.test/test/garbage/peano.go b/gcc/testsuite/go.test/test/garbage/peano.go
deleted file mode 100644 (file)
index b4d3185..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-// $G $F.go && $L $F.$A && ./$A.out
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
-       "fmt"
-       "runtime"
-       "time"
-)
-
-
-type Number struct {
-       next *Number
-}
-
-
-// -------------------------------------
-// Peano primitives
-
-func zero() *Number { return nil }
-
-
-func is_zero(x *Number) bool { return x == nil }
-
-
-func add1(x *Number) *Number {
-       e := new(Number)
-       e.next = x
-       return e
-}
-
-
-func sub1(x *Number) *Number { return x.next }
-
-
-func add(x, y *Number) *Number {
-       if is_zero(y) {
-               return x
-       }
-
-       return add(add1(x), sub1(y))
-}
-
-
-func mul(x, y *Number) *Number {
-       if is_zero(x) || is_zero(y) {
-               return zero()
-       }
-
-       return add(mul(x, sub1(y)), x)
-}
-
-
-func fact(n *Number) *Number {
-       if is_zero(n) {
-               return add1(zero())
-       }
-
-       return mul(fact(sub1(n)), n)
-}
-
-
-// -------------------------------------
-// Helpers to generate/count Peano integers
-
-func gen(n int) *Number {
-       if n > 0 {
-               return add1(gen(n - 1))
-       }
-
-       return zero()
-}
-
-
-func count(x *Number) int {
-       if is_zero(x) {
-               return 0
-       }
-
-       return count(sub1(x)) + 1
-}
-
-
-func check(x *Number, expected int) {
-       var c = count(x)
-       if c != expected {
-               panic(fmt.Sprintf("error: found %d; expected %d", c, expected))
-       }
-}
-
-
-// -------------------------------------
-// Test basic functionality
-
-func verify() {
-       check(zero(), 0)
-       check(add1(zero()), 1)
-       check(gen(10), 10)
-
-       check(add(gen(3), zero()), 3)
-       check(add(zero(), gen(4)), 4)
-       check(add(gen(3), gen(4)), 7)
-
-       check(mul(zero(), zero()), 0)
-       check(mul(gen(3), zero()), 0)
-       check(mul(zero(), gen(4)), 0)
-       check(mul(gen(3), add1(zero())), 3)
-       check(mul(add1(zero()), gen(4)), 4)
-       check(mul(gen(3), gen(4)), 12)
-
-       check(fact(zero()), 1)
-       check(fact(add1(zero())), 1)
-       check(fact(gen(5)), 120)
-}
-
-
-// -------------------------------------
-// Factorial
-
-
-func main() {
-       t0 := time.Nanoseconds()
-       verify()
-       for i := 0; i <= 9; i++ {
-               print(i, "! = ", count(fact(gen(i))), "\n")
-       }
-       runtime.GC()
-       t1 := time.Nanoseconds()
-
-       gcstats("BenchmarkPeano", 1, t1-t0)
-}
diff --git a/gcc/testsuite/go.test/test/garbage/stats.go b/gcc/testsuite/go.test/test/garbage/stats.go
deleted file mode 100644 (file)
index 474e6ad..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2010 The Go Authors.  All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import (
-       "fmt"
-       "runtime"
-       "sort"
-)
-
-func gcstats(name string, n int, t int64) {
-       st := &runtime.MemStats
-       fmt.Printf("garbage.%sMem Alloc=%d/%d Heap=%d NextGC=%d Mallocs=%d\n", name, st.Alloc, st.TotalAlloc, st.Sys, st.NextGC, st.Mallocs)
-       fmt.Printf("garbage.%s %d %d ns/op\n", name, n, t/int64(n))
-       fmt.Printf("garbage.%sLastPause 1 %d ns/op\n", name, st.PauseNs[(st.NumGC-1)%uint32(len(st.PauseNs))])
-       fmt.Printf("garbage.%sPause %d %d ns/op\n", name, st.NumGC, int64(st.PauseTotalNs)/int64(st.NumGC))
-       nn := int(st.NumGC)
-       if nn >= len(st.PauseNs) {
-               nn = len(st.PauseNs)
-       }
-       t1, t2, t3, t4, t5 := tukey5(st.PauseNs[0:nn])
-       fmt.Printf("garbage.%sPause5: %d %d %d %d %d\n", name, t1, t2, t3, t4, t5)
-       
-//     fmt.Printf("garbage.%sScan: %v\n", name, st.ScanDist)
-}
-
-type T []uint64
-func (t T) Len() int { return len(t) }
-func (t T) Swap(i, j int) { t[i], t[j] = t[j], t[i] }
-func (t T) Less(i, j int) bool { return t[i] < t[j] }
-
-func tukey5(raw []uint64) (lo, q1, q2, q3, hi uint64) {
-       x := make(T, len(raw))
-       copy(x, raw)
-       sort.Sort(T(x))
-       lo = x[0]
-       q1 = x[len(x)/4]
-       q2 = x[len(x)/2]
-       q3 = x[len(x)*3/4]
-       hi = x[len(x)-1]
-       return
-}
diff --git a/gcc/testsuite/go.test/test/garbage/tree.go b/gcc/testsuite/go.test/test/garbage/tree.go
deleted file mode 100644 (file)
index c5eae97..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-    * Neither the name of "The Computer Language Benchmarks Game" nor the
-    name of "The Computer Language Shootout Benchmarks" nor the names of
-    its contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/* The Computer Language Benchmarks Game
- * http://shootout.alioth.debian.org/
- *
- * contributed by The Go Authors.
- * based on C program by Kevin Carson
- */
-
-package main
-
-import (
-       "flag"
-       "fmt"
-       "time"
-)
-
-var n = flag.Int("n", 16, "depth")
-
-type Node struct {
-       item        int
-       left, right *Node
-}
-
-func bottomUpTree(item, depth int) *Node {
-       if depth <= 0 {
-               return &Node{item: item}
-       }
-       return &Node{item, bottomUpTree(2*item-1, depth-1), bottomUpTree(2*item, depth-1)}
-}
-
-func (n *Node) itemCheck() int {
-       if n.left == nil {
-               return n.item
-       }
-       return n.item + n.left.itemCheck() - n.right.itemCheck()
-}
-
-const minDepth = 4
-
-func main() {
-       flag.Parse()
-
-       t0 := time.Nanoseconds()
-
-       maxDepth := *n
-       if minDepth+2 > *n {
-               maxDepth = minDepth + 2
-       }
-       stretchDepth := maxDepth + 1
-
-       check := bottomUpTree(0, stretchDepth).itemCheck()
-       fmt.Printf("stretch tree of depth %d\t check: %d\n", stretchDepth, check)
-
-       longLivedTree := bottomUpTree(0, maxDepth)
-
-       for depth := minDepth; depth <= maxDepth; depth += 2 {
-               iterations := 1 << uint(maxDepth-depth+minDepth)
-               check = 0
-
-               for i := 1; i <= iterations; i++ {
-                       check += bottomUpTree(i, depth).itemCheck()
-                       check += bottomUpTree(-i, depth).itemCheck()
-               }
-               fmt.Printf("%d\t trees of depth %d\t check: %d\n", iterations*2, depth, check)
-       }
-       fmt.Printf("long lived tree of depth %d\t check: %d\n", maxDepth, longLivedTree.itemCheck())
-
-       t1 := time.Nanoseconds()
-
-       // Standard gotest benchmark output, collected by build dashboard.
-       gcstats("BenchmarkTree", *n, t1-t0)
-}
index 655ceda5653d6e91adbfcd0938e8fea3e45dc5e8..e0b4cf6e2a791e8350e6dd70624835df6810bab2 100644 (file)
 
 == ./
 
-=========== ./cmp2.go
-panic: runtime error: comparing uncomparable type []int
-
-
-=========== ./cmp3.go
-panic: runtime error: comparing uncomparable type []int
-
-
-=========== ./cmp4.go
-panic: runtime error: hash of unhashable type []int
-
-
-=========== ./cmp5.go
-panic: runtime error: hash of unhashable type []int
-
-
-=========== ./deferprint.go
-printing: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
-42 true false true +1.500000e+000 world 0x0 [0/0]0x0 0x0 0x0 255
-
-=========== ./goprint.go
-42 true false true +1.500000e+000 world 0x0 [0/0]0x0 0x0 0x0 255
-
-=========== ./helloworld.go
-hello, world
-
-=========== ./peano.go
-0! = 1
-1! = 1
-2! = 2
-3! = 6
-4! = 24
-5! = 120
-6! = 720
-7! = 5040
-8! = 40320
-9! = 362880
-
-=========== ./printbig.go
--9223372036854775808
-9223372036854775807
-
-=========== ./sigchld.go
-survived SIGCHLD
-
-=========== ./sinit.go
-FAIL
-
-=========== ./turing.go
-Hello World!
-
 == ken/
 
-=========== ken/cplx0.go
-(+5.000000e+000+6.000000e+000i)
-(+5.000000e+000+6.000000e+000i)
-(+5.000000e+000+6.000000e+000i)
-(+5.000000e+000+6.000000e+000i)
-
-=========== ken/cplx3.go
-(+1.292308e+000-1.384615e-001i)
-(+1.292308e+000-1.384615e-001i)
-
-=========== ken/cplx4.go
-c = (-5.000000-6.000000i)
-c = (5.000000+6.000000i)
-c = (5.000000+6.000000i)
-c = (5.000000+6.000000i)
-c = (5+6i)
-c = (13+7i)
-
-=========== ken/cplx5.go
-(+5.000000e+000-5.000000e+000i)
-(+5.000000e+000-5.000000e+000i)
-(+5.000000e+000-5.000000e+000i)
-(+5.000000e+000-5.000000e+000i)
-(+5.000000e+000-5.000000e+000i)
-(+5.000000e+000-5.000000e+000i)
-(+5.000000e+000-5.000000e+000i)
-
-=========== ken/intervar.go
- print 1 bio 2 file 3 -- abc
-
-=========== ken/label.go
-100
-
-=========== ken/rob1.go
-9876543210
-
-=========== ken/rob2.go
-(defn foo (add 12 34))
-
-=========== ken/simpprint.go
-hello world
-
-=========== ken/simpswitch.go
-0out01out12out2aout34out4fiveout56out6aout78out89out9
-
-=========== ken/string.go
-abcxyz-abcxyz-abcxyz-abcxyz-abcxyz-abcxyz-abcxyz
-
 == chan/
 
-=========== chan/doubleselect.go
-PASS
-
-=========== chan/nonblock.go
-PASS
-
 == interface/
 
-=========== interface/fail.go
-panic: interface conversion: *main.S is not main.I: missing method Foo
-
-
-=========== interface/returntype.go
-panic: interface conversion: *main.S is not main.I2: missing method Name
-
-
-== nilptr/
-
 == syntax/
 
-== fixedbugs/
-
-=========== fixedbugs/bug027.go
-hi
-0 44444
-1 3333
-2 222
-3 11
-4 0
-0 44444
-1 3333
-2 222
-3 11
-4 0
-
-=========== fixedbugs/bug067.go
-ok
-
-=========== fixedbugs/bug070.go
-outer loop top k 0
-inner loop top i 0
-do break
-broke
-
-=========== fixedbugs/bug093.go
-M
-
-=========== fixedbugs/bug113.go
-panic: interface conversion: interface is int, not int32
+== dwarf/
 
-
-=========== fixedbugs/bug148.go
-2 3
-panic: interface conversion: interface is main.T, not main.T
-
-
-=========== fixedbugs/bug328.go
-0x0
+== fixedbugs/
 
 == bugs/
+
+=========== bugs/bug395.go
+bug395 is broken
index c0e34c750e39971d41c30504b93b0493e2e594c1..53ed055a070abc94f8d386ba0201a5e5d1c4227d 100644 (file)
@@ -1,4 +1,4 @@
-// $G $D/$F.go && $L $F.$A && ./$A.out
+// $G $D/$F.go && $L $F.$A && ./$A.out 2>&1 | cmp - $D/$F.out
 
 // Copyright 2011 The Go Authors.  All rights reserved.
 // Use of this source code is governed by a BSD-style
diff --git a/gcc/testsuite/go.test/test/goprint.out b/gcc/testsuite/go.test/test/goprint.out
new file mode 100644 (file)
index 0000000..da3919e
--- /dev/null
@@ -0,0 +1 @@
+42 true false true +1.500000e+000 world 0x0 [0/0]0x0 0x0 0x0 255
index e55a74bbd364063586f8c033475e6c6f2f5dd0a7..16c95f00686e6669f609946a073d0cd6c621d637 100644 (file)
@@ -1,4 +1,4 @@
-// $G $F.go && $L $F.$A && ./$A.out
+// $G $F.go && $L $F.$A && ./$A.out 2>&1 | cmp - $D/$F.out
 
 // Copyright 2009 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
diff --git a/gcc/testsuite/go.test/test/helloworld.out b/gcc/testsuite/go.test/test/helloworld.out
new file mode 100644 (file)
index 0000000..4b5fa63
--- /dev/null
@@ -0,0 +1 @@
+hello, world
diff --git a/gcc/testsuite/go.test/test/init1.go b/gcc/testsuite/go.test/test/init1.go
new file mode 100644 (file)
index 0000000..9ce3c12
--- /dev/null
@@ -0,0 +1,44 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Test that goroutines and garbage collection run during init.
+
+package main
+
+import "runtime"
+
+var x []byte
+
+func init() {
+       c := make(chan int)
+       go send(c)
+       <-c
+       
+       const chunk = 1<<20
+       runtime.UpdateMemStats()
+       sys := runtime.MemStats.Sys     
+       b := make([]byte, chunk)
+       for i := range b {
+               b[i] = byte(i%10 + '0')
+       }
+       s := string(b)
+       for i := 0; i < 1000; i++ {
+               x = []byte(s)
+       }
+       runtime.UpdateMemStats()
+       sys1 := runtime.MemStats.Sys
+       if sys1-sys > chunk*50 {
+               println("allocated 1000 chunks of", chunk, "and used ", sys1-sys, "memory")
+       }
+}
+
+func send(c chan int) {
+       c <- 1
+}
+
+func main() {
+}
+
index 3e741d3f91ab93f63bb7c7075c352c0df85ed99c..0c20bcf756a4275b505eb5ab07edf5ba961f9d63 100644 (file)
@@ -1,4 +1,4 @@
-// $G $D/$F.go && $L $F.$A && ./$A.out
+// $G $D/$F.go && $L $F.$A && ./$A.out
 
 // Copyright 2009 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
@@ -13,6 +13,10 @@ type I interface {
 }
 
 func main() {
+       shouldPanic(p1)
+}
+
+func p1() {
        var s *S
        var i I
        var e interface {}
@@ -21,6 +25,14 @@ func main() {
        _ = i
 }
 
-// hide S down here to avoid static warning
 type S struct {
 }
+
+func shouldPanic(f func()) {
+       defer func() {
+               if recover() == nil {
+                       panic("function should panic")
+               }
+       }()
+       f()
+}
diff --git a/gcc/testsuite/go.test/test/interface/noeq.go b/gcc/testsuite/go.test/test/interface/noeq.go
new file mode 100644 (file)
index 0000000..3c2ea59
--- /dev/null
@@ -0,0 +1,39 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG: interface/noeq
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Interface values containing types that cannot be compared for equality.
+
+package main
+
+func main() {
+       cmp(1)
+
+       var (
+               m map[int]int
+               s struct{ x []int }
+               f func()
+       )
+       noCmp(m)
+       noCmp(s)
+       noCmp(f)
+}
+
+func cmp(x interface{}) bool {
+       return x == x
+}
+
+func noCmp(x interface{}) {
+       shouldPanic(func() { cmp(x) })
+}
+
+func shouldPanic(f func()) {
+       defer func() {
+               if recover() == nil {
+                       panic("function should panic")
+               }
+       }()
+       f()
+}
diff --git a/gcc/testsuite/go.test/test/interface/recursive1.go b/gcc/testsuite/go.test/test/interface/recursive1.go
new file mode 100644 (file)
index 0000000..2c93a28
--- /dev/null
@@ -0,0 +1,15 @@
+// true  # used by recursive2
+
+// Copyright 2012 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package p
+
+type I1 interface {
+       F() I2
+}
+
+type I2 interface {
+       I1
+}
diff --git a/gcc/testsuite/go.test/test/interface/recursive2.go b/gcc/testsuite/go.test/test/interface/recursive2.go
new file mode 100644 (file)
index 0000000..a7f9ab5
--- /dev/null
@@ -0,0 +1,22 @@
+// $G $D/recursive1.go && $G $D/$F.go
+
+// Copyright 2012 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Check that the mutually recursive types in recursive1.go made it
+// intact and with the same meaning, by assigning to or using them.
+
+package main
+
+import "./recursive1"
+
+func main() {
+       var i1 p.I1
+       var i2 p.I2
+       i1 = i2
+       i2 = i1
+       i1 = i2.F()
+       i2 = i1.F()
+       _, _ = i1, i2
+}
index c526b3b0ece0d5679ca931396fb2e5c5cc90dc93..5cf083617813495b1da44ac203044620d2551742 100644 (file)
@@ -1,4 +1,4 @@
-// $G $D/$F.go && $L $F.$A && (! ./$A.out || echo BUG: should not succeed)
+// $G $D/$F.go && $L $F.$A && ./$A.out
 
 // Copyright 2009 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
@@ -18,8 +18,21 @@ type I1 interface { Name() int8 }
 type I2 interface { Name() int64 }
 
 func main() {
+       shouldPanic(p1)
+}
+
+func p1() {
        var i1 I1
        var s *S
        i1 = s
        print(i1.(I2).Name())
 }
+
+func shouldPanic(f func()) {
+       defer func() {
+               if recover() == nil {
+                       panic("function should panic")
+               }
+       }()
+       f()
+}
index ba1fa196fd6874b23e27fb162d4afd8032954af6..f38ce5b65d11007b3ba071ec8365bbbe427ca381 100644 (file)
@@ -1,4 +1,4 @@
-// $G $D/$F.go && $L $F.$A && ./$A.out
+// $G $D/$F.go && $L $F.$A && ./$A.out 2>&1 | cmp - $D/$F.out
 
 // Copyright 2010 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
diff --git a/gcc/testsuite/go.test/test/ken/cplx0.out b/gcc/testsuite/go.test/test/ken/cplx0.out
new file mode 100644 (file)
index 0000000..7627c28
--- /dev/null
@@ -0,0 +1,4 @@
+(+5.000000e+000+6.000000e+000i)
+(+5.000000e+000+6.000000e+000i)
+(+5.000000e+000+6.000000e+000i)
+(+5.000000e+000+6.000000e+000i)
index b36e93ecd66493ef724b663bb051ac416a6b7458..89f4a04181e44926d5cbecf9a448072ee34d5fe5 100644 (file)
@@ -105,4 +105,16 @@ func main() {
                println("opcode x", ce, Ce)
                panic("fail")
        }
+       
+       r32 := real(complex64(ce))
+       if r32 != float32(real(Ce)) {
+               println("real(complex64(ce))", r32, real(Ce))
+               panic("fail")
+       }
+       
+       r64 := real(complex128(ce))
+       if r64 != real(Ce) {
+               println("real(complex128(ce))", r64, real(Ce))
+               panic("fail")
+       }
 }
index fa6ff1d52ee6ba625c41991728260d02e369cae6..048c93eef67fb5a24fa42e626294fc39a29fd62a 100644 (file)
@@ -19,10 +19,29 @@ const (
 func main() {
        c0 := C1
        c0 = (c0 + c0 + c0) / (c0 + c0 + 3i)
-       println(c0)
+       r, i := real(c0), imag(c0)
+       d := r - 1.292308
+       if d < 0 {
+               d = - d
+       }
+       if d > 1e-6 {
+               println(r, "!= 1.292308")
+               panic(0)
+       }
+       d = i + 0.1384615
+       if d < 0 {
+               d = - d
+       }
+       if d > 1e-6 {
+               println(i, "!= -0.1384615")
+               panic(0)
+       }
 
        c := *(*complex128)(unsafe.Pointer(&c0))
-       println(c)
+       if c != c0 {
+               println(c, "!=", c)
+               panic(0)
+       }
 
        var a interface{}
        switch c := reflect.ValueOf(a); c.Kind() {
index 8524e47aec3b303a95b5e0fae2b3e9b32c1ac8df..738afcd2cad3df54fca8f4391fbc5b6551f5c02e 100644 (file)
@@ -15,30 +15,44 @@ const (
        C1 = R + I // ADD(5,6)
 )
 
-func doprint(c complex128) { fmt.Printf("c = %f\n", c) }
+func want(s, w string) {
+       if s != w {
+               panic(s + " != " + w)
+       }
+}
+
+func doprint(c complex128, w string) {
+       s := fmt.Sprintf("%f", c)
+       want(s, w)
+}
 
 func main() {
 
        // constants
-       fmt.Printf("c = %f\n", -C1)
-       doprint(C1)
+       s := fmt.Sprintf("%f", -C1)
+       want(s, "(-5.000000-6.000000i)")
+       doprint(C1, "(5.000000+6.000000i)")
 
        // variables
        c1 := C1
-       fmt.Printf("c = %f\n", c1)
-       doprint(c1)
+       s = fmt.Sprintf("%f", c1)
+       want(s, "(5.000000+6.000000i)")
+       doprint(c1, "(5.000000+6.000000i)")
 
        // 128
        c2 := complex128(C1)
-       fmt.Printf("c = %G\n", c2)
+       s = fmt.Sprintf("%G", c2)
+       want(s, "(5+6i)")
 
        // real, imag, complex
        c3 := complex(real(c2)+3, imag(c2)-5) + c2
-       fmt.Printf("c = %G\n", c3)
+       s = fmt.Sprintf("%G", c3)
+       want(s, "(13+7i)")
 
        // compiler used to crash on nested divide
        c4 := complex(real(c3/2), imag(c3/2))
        if c4 != c3/2 {
                fmt.Printf("BUG: c3 = %G != c4 = %G\n", c3, c4)
+               panic(0)
        }
 }
index d425a7c4c04da9b29ec34ac4213b0056a6f1be94..e6696674b0a5670185501128d63367a4f8d4154e 100644 (file)
@@ -19,36 +19,52 @@ func main() {
        for i := 0; i < len(a); i++ {
                a[i] = complex(float64(i), float64(-i))
        }
-       println(a[5])
+       if a[5] != 5-5i {
+               panic(a[5])
+       }
 
        // slice of complex128
        s = make([]complex128, len(a))
        for i := 0; i < len(s); i++ {
                s[i] = a[i]
        }
-       println(s[5])
+       if s[5] != 5-5i {
+               panic(s[5])
+       }
 
        // chan
        c = make(chan complex128)
        go chantest(c)
-       println(<-c)
+       vc := <-c
+       if vc != 5-5i {
+               panic(vc)
+       }
 
        // pointer of complex128
        v := a[5]
        pv := &v
-       println(*pv)
+       if *pv != 5-5i {
+               panic(*pv)
+       }
 
        // field of complex128
        f.c = a[5]
-       println(f.c)
+       if f.c != 5-5i {
+               panic(f.c)
+       }
 
        // map of complex128
        m = make(map[complex128]complex128)
        for i := 0; i < len(s); i++ {
                m[-a[i]] = a[i]
        }
-       println(m[5i-5])
-       println(m[complex(-5, 5)])
+       if m[5i-5] != 5-5i {
+               panic(m[5i-5])
+       }
+       vm := m[complex(-5, 5)]
+       if vm != 5-5i {
+               panic(vm)
+       }
 }
 
 func chantest(c chan complex128) { c <- a[5] }
index c2aaaa870517601a7e24d9f785a18daed56a4918..73d1b0660bd7666e610c3c1ef61c1bce21afc271 100644 (file)
@@ -7,7 +7,7 @@
 package main
 
 type   Iputs   interface {
-       puts    (s string);
+       puts    (s string) string;
 }
 
 // ---------
@@ -17,9 +17,9 @@ type  Print   struct {
        put     Iputs;
 }
 
-func (p *Print) dop() {
-       print(" print ", p.whoami);
-       p.put.puts("abc");
+func (p *Print) dop() string {
+       r := " print " + string(p.whoami + '0')
+       return r + p.put.puts("abc");
 }
 
 // ---------
@@ -29,9 +29,9 @@ type  Bio     struct {
        put     Iputs;
 }
 
-func (b *Bio) puts(s string) {
-       print(" bio ", b.whoami);
-       b.put.puts(s);
+func (b *Bio) puts(s string) string {
+       r := " bio " + string(b.whoami + '0')
+       return r + b.put.puts(s);
 }
 
 // ---------
@@ -41,8 +41,8 @@ type  File    struct {
        put     Iputs;
 }
 
-func (f *File) puts(s string) {
-       print(" file ", f.whoami, " -- ", s);
+func (f *File) puts(s string) string {
+       return " file " + string(f.whoami + '0') + " -- " + s
 }
 
 func
@@ -59,6 +59,9 @@ main() {
 
        f.whoami = 3;
 
-       p.dop();
-       print("\n");
+       r := p.dop();
+       expected := " print 1 bio 2 file 3 -- abc"
+       if r != expected {
+               panic(r + " != " + expected)
+       }
 }
index 770f33e39f735f6678ebaac6d636cef9adbbaf29..7a509f0484a92630c47dc174dda79f0a121be0b7 100644 (file)
@@ -4,33 +4,29 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-
 package main
 
-func
-main() {
-       i := 0;
+func main() {
+       i := 0
        if false {
-               goto gogoloop;
+               goto gogoloop
        }
        if false {
-               goto gogoloop;
+               goto gogoloop
        }
        if false {
-               goto gogoloop;
+               goto gogoloop
        }
-       goto gogoloop;
+       goto gogoloop
 
-// backward declared
+       // backward declared
 loop:
-       i = i+1;
+       i = i + 1
        if i < 100 {
-               goto loop;
+               goto loop
        }
-       print(i);
-       print("\n");
-       return;
+       return
 
 gogoloop:
-       goto loop;
+       goto loop
 }
index 03350662a2e4120b15519bf4c76c8ec4f62eb9a0..a5854b93e2f3627e2f22c62f8fb80268671a5e0a 100644 (file)
@@ -7,61 +7,64 @@
 package main
 
 type Item interface {
-       Print();
+       Print() string
 }
 
 type ListItem struct {
-       item    Item;
-       next    *ListItem;
+       item Item
+       next *ListItem
 }
 
 type List struct {
-       head    *ListItem;
+       head *ListItem
 }
 
 func (list *List) Init() {
-       list.head = nil;
+       list.head = nil
 }
 
 func (list *List) Insert(i Item) {
-       item := new(ListItem);
-       item.item = i;
-       item.next = list.head;
-       list.head = item;
+       item := new(ListItem)
+       item.item = i
+       item.next = list.head
+       list.head = item
 }
 
-func (list *List) Print() {
-       i := list.head;
+func (list *List) Print() string {
+       r := ""
+       i := list.head
        for i != nil {
-               i.item.Print();
-               i = i.next;
+               r += i.item.Print()
+               i = i.next
        }
+       return r
 }
 
 // Something to put in a list
 type Integer struct {
-       val             int;
+       val int
 }
 
 func (this *Integer) Init(i int) *Integer {
-       this.val = i;
-       return this;
+       this.val = i
+       return this
 }
 
-func (this *Integer) Print() {
-       print(this.val);
+func (this *Integer) Print() string {
+       return string(this.val + '0')
 }
 
-func
-main() {
-       list := new(List);
-       list.Init();
+func main() {
+       list := new(List)
+       list.Init()
        for i := 0; i < 10; i = i + 1 {
-               integer := new(Integer);
-               integer.Init(i);
-               list.Insert(integer);
+               integer := new(Integer)
+               integer.Init(i)
+               list.Insert(integer)
        }
 
-       list.Print();
-       print("\n");
+       r := list.Print()
+       if r != "9876543210" {
+               panic(r)
+       }
 }
index af63e4d9f6d3438fe894ea25fb0ffc9a50ffd1b3..d13e2441d401488add0f6aad2775a7cb8ca9c981 100644 (file)
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-
 package main
 
-const nilchar = 0;
+import "fmt"
+
+const nilchar = 0
 
 type Atom struct {
-       str             string;
-       integer         int;
-       next            *Slist; /* in hash bucket */
+       str     string
+       integer int
+       next    *Slist /* in hash bucket */
 }
 
 type List struct {
-       car             *Slist;
-       cdr*Slist;
+       car *Slist
+       cdr *Slist
 }
 
 type Slist struct {
-       isatom          bool;
-       isstring        bool;
+       isatom   bool
+       isstring bool
        //union {
-       atom            Atom;
-       list            List;
+       atom Atom
+       list List
        //} u;
 
 }
 
 func (this *Slist) Car() *Slist {
-       return this.list.car;
+       return this.list.car
 }
 
 func (this *Slist) Cdr() *Slist {
-       return this.list.cdr;
+       return this.list.cdr
 }
 
 func (this *Slist) String() string {
-       return this.atom.str;
+       return this.atom.str
 }
 
 func (this *Slist) Integer() int {
-       return this.atom.integer;
+       return this.atom.integer
 }
 
 func (slist *Slist) Free() {
        if slist == nil {
-               return;
+               return
        }
        if slist.isatom {
-//             free(slist.String());
+               //              free(slist.String());
        } else {
-               slist.Car().Free();
-               slist.Cdr().Free();
+               slist.Car().Free()
+               slist.Cdr().Free()
        }
-//     free(slist);
+       //      free(slist);
 }
 
 //Slist* atom(byte *s, int i);
 
-var token int;
-var peekc int = -1;
-var lineno int32 = 1;
+var token int
+var peekc int = -1
+var lineno int32 = 1
 
-var input string;
-var inputindex int = 0;
-var tokenbuf [100]byte;
-var tokenlen int = 0;
+var input string
+var inputindex int = 0
+var tokenbuf [100]byte
+var tokenlen int = 0
 
-const EOF int = -1;
+const EOF int = -1
 
 func main() {
-       var list *Slist;
+       var list *Slist
 
-       OpenFile();
-       for ;; {
-               list = Parse();
+       OpenFile()
+       for {
+               list = Parse()
                if list == nil {
-                       break;
+                       break
+               }
+               r := list.Print()
+               list.Free()
+               if r != "(defn foo (add 12 34))" {
+                       panic(r)
                }
-               list.Print();
-               list.Free();
-               break;
+               break
        }
 }
 
-func (slist *Slist) PrintOne(doparen bool) {
+func (slist *Slist) PrintOne(doparen bool) string {
        if slist == nil {
-               return;
+               return ""
        }
+       var r string
        if slist.isatom {
                if slist.isstring {
-                       print(slist.String());
+                       r = slist.String()
                } else {
-                       print(slist.Integer());
+                       r = fmt.Sprintf("%v", slist.Integer())
                }
        } else {
                if doparen {
-                       print("(" );
+                       r += "("
                }
-               slist.Car().PrintOne(true);
+               r += slist.Car().PrintOne(true)
                if slist.Cdr() != nil {
-                       print(" ");
-                       slist.Cdr().PrintOne(false);
+                       r += " "
+                       r += slist.Cdr().PrintOne(false)
                }
                if doparen {
-                       print(")");
+                       r += ")"
                }
        }
+       return r
 }
 
-func (slist *Slist) Print() {
-       slist.PrintOne(true);
-       print("\n");
+func (slist *Slist) Print() string {
+       return slist.PrintOne(true)
 }
 
 func Get() int {
-       var c int;
+       var c int
 
        if peekc >= 0 {
-               c = peekc;
-               peekc = -1;
+               c = peekc
+               peekc = -1
        } else {
-               c = int(input[inputindex]);
-               inputindex++;
+               c = int(input[inputindex])
+               inputindex++
                if c == '\n' {
-                       lineno = lineno + 1;
+                       lineno = lineno + 1
                }
                if c == nilchar {
-                       inputindex = inputindex - 1;
-                       c = EOF;
+                       inputindex = inputindex - 1
+                       c = EOF
                }
        }
-       return c;
+       return c
 }
 
 func WhiteSpace(c int) bool {
-       return c == ' ' || c == '\t' || c == '\r' || c == '\n';
+       return c == ' ' || c == '\t' || c == '\r' || c == '\n'
 }
 
 func NextToken() {
-       var i, c int;
+       var i, c int
 
-       tokenbuf[0] = nilchar // clear previous token
-       c = Get();
+       tokenbuf[0] = nilchar // clear previous token
+       c = Get()
        for WhiteSpace(c) {
-               c = Get();
+               c = Get()
        }
        switch c {
        case EOF:
-               token = EOF;
+               token = EOF
        case '(', ')':
-               token = c;
-               break;
+               token = c
+               break
        default:
-               for i = 0; i < 100 - 1; {       // sizeof tokenbuf - 1
-                       tokenbuf[i] = byte(c);
-                       i = i + 1;
-                       c = Get();
+               for i = 0; i < 100-1; { // sizeof tokenbuf - 1
+                       tokenbuf[i] = byte(c)
+                       i = i + 1
+                       c = Get()
                        if c == EOF {
-                               break;
+                               break
                        }
                        if WhiteSpace(c) || c == ')' {
-                               peekc = c;
-                               break;
+                               peekc = c
+                               break
                        }
                }
-               if i >= 100 - 1 {       // sizeof tokenbuf - 1
-                       panic("atom too long\n");
+               if i >= 100-1 { // sizeof tokenbuf - 1
+                       panic("atom too long\n")
                }
-               tokenlen = i;
-               tokenbuf[i] = nilchar;
+               tokenlen = i
+               tokenbuf[i] = nilchar
                if '0' <= tokenbuf[0] && tokenbuf[0] <= '9' {
-                       token = '0';
+                       token = '0'
                } else {
-                       token = 'A';
+                       token = 'A'
                }
        }
 }
 
 func Expect(c int) {
        if token != c {
-               print("parse error: expected ", c, "\n");
-               panic("parse");
+               print("parse error: expected ", c, "\n")
+               panic("parse")
        }
-       NextToken();
+       NextToken()
 }
 
 // Parse a non-parenthesized list up to a closing paren or EOF
 func ParseList() *Slist {
-       var slist, retval *Slist;
-
-       slist = new(Slist);
-       slist.list.car = nil;
-       slist.list.cdr = nil;
-       slist.isatom = false;
-       slist.isstring = false;
-
-       retval = slist;
-       for ;; {
-               slist.list.car = Parse();
-               if token == ')' || token == EOF {       // empty cdr
-                       break;
+       var slist, retval *Slist
+
+       slist = new(Slist)
+       slist.list.car = nil
+       slist.list.cdr = nil
+       slist.isatom = false
+       slist.isstring = false
+
+       retval = slist
+       for {
+               slist.list.car = Parse()
+               if token == ')' || token == EOF { // empty cdr
+                       break
                }
-               slist.list.cdr = new(Slist);
-               slist = slist.list.cdr;
+               slist.list.cdr = new(Slist)
+               slist = slist.list.cdr
        }
-       return retval;
+       return retval
 }
 
-func atom(i int) *Slist        { // BUG: uses tokenbuf; should take argument)
-       var slist *Slist;
+func atom(i int) *Slist { // BUG: uses tokenbuf; should take argument)
+       var slist *Slist
 
-       slist = new(Slist);
+       slist = new(Slist)
        if token == '0' {
-               slist.atom.integer = i;
-               slist.isstring = false;
+               slist.atom.integer = i
+               slist.isstring = false
        } else {
-               slist.atom.str = string(tokenbuf[0:tokenlen]);
-               slist.isstring = true;
+               slist.atom.str = string(tokenbuf[0:tokenlen])
+               slist.isstring = true
        }
-       slist.isatom = true;
-       return slist;
+       slist.isatom = true
+       return slist
 }
 
-func atoi() int        { // BUG: uses tokenbuf; should take argument)
-       var v int = 0;
+func atoi() int { // BUG: uses tokenbuf; should take argument)
+       var v int = 0
        for i := 0; i < tokenlen && '0' <= tokenbuf[i] && tokenbuf[i] <= '9'; i = i + 1 {
-               v = 10 * v + int(tokenbuf[i] - '0');
+               v = 10*v + int(tokenbuf[i]-'0')
        }
-       return v;
+       return v
 }
 
 func Parse() *Slist {
-       var slist *Slist;
+       var slist *Slist
 
        if token == EOF || token == ')' {
-               return nil;
+               return nil
        }
        if token == '(' {
-               NextToken();
-               slist = ParseList();
-               Expect(')');
-               return slist;
+               NextToken()
+               slist = ParseList()
+               Expect(')')
+               return slist
        } else {
                // Atom
                switch token {
                case EOF:
-                       return nil;
+                       return nil
                case '0':
-                       slist = atom(atoi());
+                       slist = atom(atoi())
                case '"', 'A':
-                       slist = atom(0);
+                       slist = atom(0)
                default:
-                       slist = nil;
-                       print("unknown token: ", token, "\n");
+                       slist = nil
+                       print("unknown token: ", token, "\n")
                }
-               NextToken();
-               return slist;
+               NextToken()
+               return slist
        }
-       return nil;
+       return nil
 }
 
 func OpenFile() {
-       input = "(defn foo (add 12 34))\n\x00";
-       inputindex = 0;
-       peekc = -1;             // BUG
-       NextToken();
+       input = "(defn foo (add 12 34))\n\x00"
+       inputindex = 0
+       peekc = -1 // BUG
+       NextToken()
 }
diff --git a/gcc/testsuite/go.test/test/ken/simpprint.go b/gcc/testsuite/go.test/test/ken/simpprint.go
deleted file mode 100644 (file)
index 6077f7e..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-// $G $D/$F.go && $L $F.$A && ./$A.out
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-
-package main
-
-func
-main() {
-       print("hello world\n");
-}
index ab5dd356b3efbbd11417f970a230440be985d77d..710af2e08c69b277e2f264f0829abe79075fa380 100644 (file)
@@ -6,19 +6,21 @@
 
 package main
 
-func
-main() {
-       a := 3;
-       for i:=0; i<10; i=i+1 {
-               switch(i) {
+func main() {
+       r := ""
+       a := 3
+       for i := 0; i < 10; i = i + 1 {
+               switch i {
                case 5:
-                       print("five");
-               case a,7:
-                       print("a");
+                       r += "five"
+               case a, 7:
+                       r += "a"
                default:
-                       print(i);
+                       r += string(i + '0')
                }
-               print("out", i);
+               r += "out" + string(i+'0')
+       }
+       if r != "0out01out12out2aout34out4fiveout56out6aout78out89out9" {
+               panic(r)
        }
-       print("\n");
 }
index b74bd7d6f1c1dcefa607fdcfc985c8fd6d949068..e0510824293221abb38fedf12961d5ac8e30c82a 100644 (file)
@@ -1,4 +1,4 @@
-// $G $D/$F.go && $L $F.$A && ./$A.out
+// $G $D/$F.go && $L $F.$A && ./$A.out 2>&1 | cmp - $D/$F.out
 
 // Copyright 2009 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
@@ -71,16 +71,14 @@ func main() {
        /* create string with integer constant */
        c = string('x')
        if c != "x" {
-               print("create int ", c)
-               panic("fail")
+               panic("create int " + c)
        }
 
        /* create string with integer variable */
        v := 'x'
        c = string(v)
        if c != "x" {
-               print("create int ", c)
-               panic("fail")
+               panic("create int " + c)
        }
 
        /* create string with byte array */
@@ -90,8 +88,7 @@ func main() {
        z1[2] = 'c'
        c = string(z1[0:])
        if c != "abc" {
-               print("create byte array ", c)
-               panic("fail")
+               panic("create byte array " + c)
        }
 
        /* create string with int array */
@@ -101,8 +98,7 @@ func main() {
        z2[2] = 'c'
        c = string(z2[0:])
        if c != "a\u1234c" {
-               print("create int array ", c)
-               panic("fail")
+               panic("create int array " + c)
        }
 
        /* create string with byte array pointer */
@@ -112,7 +108,6 @@ func main() {
        z3[2] = 'c'
        c = string(z3[0:])
        if c != "abc" {
-               print("create array pointer ", c)
-               panic("fail")
+               panic("create array pointer " + c)
        }
 }
diff --git a/gcc/testsuite/go.test/test/ken/string.out b/gcc/testsuite/go.test/test/ken/string.out
new file mode 100644 (file)
index 0000000..8bc36bc
--- /dev/null
@@ -0,0 +1 @@
+abcxyz-abcxyz-abcxyz-abcxyz-abcxyz-abcxyz-abcxyz
index dc6d74bad6849b78ea4be50482932fb3378a11e8..ff62392473d58bef51aefe3262aa54356c998aa0 100644 (file)
@@ -47,18 +47,28 @@ func finalB(b *B) {
        nfinal++
 }
 
+func nofinalB(b *B) {
+       panic("nofinalB run")
+}
+
 func main() {
        runtime.GOMAXPROCS(4)
        for i = 0; i < N; i++ {
                b := &B{i}
                a := &A{b, i}
+               c := new(B)
+               runtime.SetFinalizer(c, nofinalB)
                runtime.SetFinalizer(b, finalB)
                runtime.SetFinalizer(a, finalA)
+               runtime.SetFinalizer(c, nil)
        }
        for i := 0; i < N; i++ {
                runtime.GC()
                runtime.Gosched()
                time.Sleep(1e6)
+               if nfinal >= N*8/10 {
+                       break
+               }
        }
        if nfinal < N*8/10 {
                println("not enough finalizing:", nfinal, "/", N)
index 9f47e52e2b60a80776ac1070ac1ef5f54e37a89f..cffcd1638fcecface8e3002b76fc6b978a73d5bc 100644 (file)
@@ -33,6 +33,7 @@ func bigger() {
 
 func main() {
        runtime.GC()               // clean up garbage from init
+       runtime.UpdateMemStats()   // first call can do some allocations
        runtime.MemProfileRate = 0 // disable profiler
        runtime.MemStats.Alloc = 0 // ignore stacks
        flag.Parse()
diff --git a/gcc/testsuite/go.test/test/map1.go b/gcc/testsuite/go.test/test/map1.go
new file mode 100644 (file)
index 0000000..6af1056
--- /dev/null
@@ -0,0 +1,41 @@
+// errchk $G -e $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+func main() {}
+
+type v bool
+
+var (
+       // valid
+       _ map[int8]v
+       _ map[uint8]v
+       _ map[int16]v
+       _ map[uint16]v
+       _ map[int32]v
+       _ map[uint32]v
+       _ map[int64]v
+       _ map[uint64]v
+       _ map[int]v
+       _ map[uint]v
+       _ map[uintptr]v
+       _ map[float32]v
+       _ map[float64]v
+       _ map[complex64]v
+       _ map[complex128]v
+       _ map[bool]v
+       _ map[string]v
+       _ map[chan int]v
+       _ map[*int]v
+       _ map[struct{}]v
+       _ map[[10]int]v
+
+       // invalid
+       _ map[[]int]v       // ERROR "invalid map key"
+       _ map[func()]v      // ERROR "invalid map key"
+       _ map[map[int]int]v // ERROR "invalid map key"
+)
index 30cc2705b03b11a34eeb349c5586ee35fa67d209..efcf4f7822b08c2672ae647c01342a40b8a7023d 100644 (file)
@@ -150,7 +150,7 @@ func maptest() {
                m[2] = 3
        })
        shouldPanic(func() {
-               m[2] = 0, false
+               delete(m, 2)
        })
 }
 
diff --git a/gcc/testsuite/go.test/test/nilptr.go b/gcc/testsuite/go.test/test/nilptr.go
new file mode 100644 (file)
index 0000000..b0c1df2
--- /dev/null
@@ -0,0 +1,129 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import "unsafe"
+
+// Having a big address space means that indexing
+// at a 256 MB offset from a nil pointer might not
+// cause a memory access fault. This test checks
+// that Go is doing the correct explicit checks to catch
+// these nil pointer accesses, not just relying on the hardware.
+var dummy [256 << 20]byte // give us a big address space
+
+func main() {
+       // the test only tests what we intend to test
+       // if dummy starts in the first 256 MB of memory.
+       // otherwise there might not be anything mapped
+       // at the address that might be accidentally
+       // dereferenced below.
+       if uintptr(unsafe.Pointer(&dummy)) > 256<<20 {
+               panic("dummy too far out")
+       }
+
+       shouldPanic(p1)
+       shouldPanic(p2)
+       shouldPanic(p3)
+       shouldPanic(p4)
+       shouldPanic(p5)
+       shouldPanic(p6)
+       shouldPanic(p7)
+       shouldPanic(p8)
+       shouldPanic(p9)
+       shouldPanic(p10)
+}
+
+func shouldPanic(f func()) {
+       defer func() {
+               if recover() == nil {
+                       panic("memory reference did not panic")
+               }
+       }()
+       f()
+}
+
+func p1() {
+       // Array index.
+       var p *[1 << 30]byte = nil
+       println(p[256<<20]) // very likely to be inside dummy, but should panic
+}
+
+var xb byte
+
+func p2() {
+       var p *[1 << 30]byte = nil
+       xb = 123
+
+       // Array index.
+       println(p[uintptr(unsafe.Pointer(&xb))]) // should panic
+}
+
+func p3() {
+       // Array to slice.
+       var p *[1 << 30]byte = nil
+       var x []byte = p[0:] // should panic
+       _ = x
+}
+
+var q *[1 << 30]byte
+
+func p4() {
+       // Array to slice.
+       var x []byte
+       var y = &x
+       *y = q[0:] // should crash (uses arraytoslice runtime routine)
+}
+
+func fb([]byte) {
+       panic("unreachable")
+}
+
+func p5() {
+       // Array to slice.
+       var p *[1 << 30]byte = nil
+       fb(p[0:]) // should crash
+}
+
+func p6() {
+       // Array to slice.
+       var p *[1 << 30]byte = nil
+       var _ []byte = p[10 : len(p)-10] // should crash
+}
+
+type T struct {
+       x [256 << 20]byte
+       i int
+}
+
+func f() *T {
+       return nil
+}
+
+var y *T
+var x = &y
+
+func p7() {
+       // Struct field access with large offset.
+       println(f().i) // should crash
+}
+
+func p8() {
+       // Struct field access with large offset.
+       println((*x).i) // should crash
+}
+
+func p9() {
+       // Struct field access with large offset.
+       var t *T
+       println(&t.i) // should crash
+}
+
+func p10() {
+       // Struct field access with large offset.
+       var t *T
+       println(t.i) // should crash
+}
diff --git a/gcc/testsuite/go.test/test/nilptr/arrayindex.go b/gcc/testsuite/go.test/test/nilptr/arrayindex.go
deleted file mode 100644 (file)
index fa26532..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-// $G $D/$F.go && $L $F.$A &&
-//     ((! sh -c ./$A.out) >/dev/null 2>&1 || echo BUG: should fail)
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import "unsafe"
-
-var x byte
-
-func main() {
-       var p *[1<<30]byte = nil
-       x = 123
-
-       // The problem here is not the use of unsafe:
-       // it is that indexing into p[] with a large
-       // enough index jumps out of the unmapped section
-       // at the beginning of memory and into valid memory.
-       // Pointer offsets and array indices, if they are
-       // very large, need to dereference the base pointer
-       // to trigger a trap.
-       println(p[uintptr(unsafe.Pointer(&x))]) // should crash
-}
diff --git a/gcc/testsuite/go.test/test/nilptr/arrayindex1.go b/gcc/testsuite/go.test/test/nilptr/arrayindex1.go
deleted file mode 100644 (file)
index 64f46e1..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-// $G $D/$F.go && $L $F.$A &&
-//     ((! sh -c ./$A.out) >/dev/null 2>&1 || echo BUG: should fail)
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import "unsafe"
-
-var dummy [512<<20]byte        // give us a big address space
-func main() {
-       // the test only tests what we intend to test
-       // if dummy starts in the first 256 MB of memory.
-       // otherwise there might not be anything mapped
-       // at the address that might be accidentally
-       // dereferenced below.
-       if uintptr(unsafe.Pointer(&dummy)) > 256<<20 {
-               panic("dummy too far out")
-       }
-
-       // The problem here is that indexing into p[] with a large
-       // enough index jumps out of the unmapped section
-       // at the beginning of memory and into valid memory.
-       // Pointer offsets and array indices, if they are
-       // very large, need to dereference the base pointer
-       // to trigger a trap.
-       var p *[1<<30]byte = nil
-       println(p[256<<20])     // very likely to be inside dummy, but should crash
-}
diff --git a/gcc/testsuite/go.test/test/nilptr/arraytoslice.go b/gcc/testsuite/go.test/test/nilptr/arraytoslice.go
deleted file mode 100644 (file)
index 03879fb..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-// $G $D/$F.go && $L $F.$A &&
-//     ((! sh -c ./$A.out) >/dev/null 2>&1 || echo BUG: should fail)
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import "unsafe"
-
-func f([]byte) {
-       panic("unreachable")
-}
-
-var dummy [512<<20]byte        // give us a big address space
-func main() {
-       // the test only tests what we intend to test
-       // if dummy starts in the first 256 MB of memory.
-       // otherwise there might not be anything mapped
-       // at the address that might be accidentally
-       // dereferenced below.
-       if uintptr(unsafe.Pointer(&dummy)) > 256<<20 {
-               panic("dummy too far out")
-       }
-
-       // The problem here is that indexing into p[] with a large
-       // enough index can jump out of the unmapped section
-       // at the beginning of memory and into valid memory.
-       //
-       // To avoid needing a check on every slice beyond the
-       // usual len and cap, we require the *array -> slice
-       // conversion to do the check.
-       var p *[1<<30]byte = nil
-       f(p[0:])        // should crash
-}
diff --git a/gcc/testsuite/go.test/test/nilptr/arraytoslice1.go b/gcc/testsuite/go.test/test/nilptr/arraytoslice1.go
deleted file mode 100644 (file)
index c86070f..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-// $G $D/$F.go && $L $F.$A &&
-//     ((! sh -c ./$A.out) >/dev/null 2>&1 || echo BUG: should fail)
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import "unsafe"
-
-var dummy [512<<20]byte        // give us a big address space
-func main() {
-       // the test only tests what we intend to test
-       // if dummy starts in the first 256 MB of memory.
-       // otherwise there might not be anything mapped
-       // at the address that might be accidentally
-       // dereferenced below.
-       if uintptr(unsafe.Pointer(&dummy)) > 256<<20 {
-               panic("dummy too far out")
-       }
-
-       // The problem here is that indexing into p[] with a large
-       // enough index can jump out of the unmapped section
-       // at the beginning of memory and into valid memory.
-       //
-       // To avoid needing a check on every slice beyond the
-       // usual len and cap, we require the *array -> slice
-       // conversion to do the check.
-       var p *[1<<30]byte = nil
-       var x []byte = p[0:]    // should crash
-       _ = x
-}
diff --git a/gcc/testsuite/go.test/test/nilptr/arraytoslice2.go b/gcc/testsuite/go.test/test/nilptr/arraytoslice2.go
deleted file mode 100644 (file)
index 68ea440..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// $G $D/$F.go && $L $F.$A &&
-//     ((! sh -c ./$A.out) >/dev/null 2>&1 || echo BUG: should fail)
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import "unsafe"
-
-var dummy [512<<20]byte        // give us a big address space
-var q *[1<<30]byte
-func main() {
-       // the test only tests what we intend to test
-       // if dummy starts in the first 256 MB of memory.
-       // otherwise there might not be anything mapped
-       // at the address that might be accidentally
-       // dereferenced below.
-       if uintptr(unsafe.Pointer(&dummy)) > 256<<20 {
-               panic("dummy too far out")
-       }
-
-       // The problem here is that indexing into p[] with a large
-       // enough index can jump out of the unmapped section
-       // at the beginning of memory and into valid memory.
-       //
-       // To avoid needing a check on every slice beyond the
-       // usual len and cap, we require the *array -> slice
-       // conversion to do the check.
-       var x []byte
-       var y = &x
-       *y = q[0:]      // should crash (uses arraytoslice runtime routine)
-}
diff --git a/gcc/testsuite/go.test/test/nilptr/slicearray.go b/gcc/testsuite/go.test/test/nilptr/slicearray.go
deleted file mode 100644 (file)
index 26ca427..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-// $G $D/$F.go && $L $F.$A &&
-//     ((! sh -c ./$A.out) >/dev/null 2>&1 || echo BUG: should fail)
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import "unsafe"
-
-var dummy [512<<20]byte        // give us a big address space
-func main() {
-       // the test only tests what we intend to test
-       // if dummy starts in the first 256 MB of memory.
-       // otherwise there might not be anything mapped
-       // at the address that might be accidentally
-       // dereferenced below.
-       if uintptr(unsafe.Pointer(&dummy)) > 256<<20 {
-               panic("dummy too far out")
-       }
-
-       // The problem here is that indexing into p[] with a large
-       // enough index can jump out of the unmapped section
-       // at the beginning of memory and into valid memory.
-       //
-       // To avoid needing a check on every slice beyond the
-       // usual len and cap, we require the slice operation
-       // to do the check.
-       var p *[1<<30]byte = nil
-       var _ []byte = p[10:len(p)-10]  // should crash
-}
diff --git a/gcc/testsuite/go.test/test/nilptr/structfield.go b/gcc/testsuite/go.test/test/nilptr/structfield.go
deleted file mode 100644 (file)
index 35196bb..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// $G $D/$F.go && $L $F.$A &&
-//     ((! sh -c ./$A.out) >/dev/null 2>&1 || echo BUG: should fail)
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import "unsafe"
-
-var dummy [512<<20]byte        // give us a big address space
-type T struct {
-       x [256<<20] byte
-       i int
-}
-
-func main() {
-       // the test only tests what we intend to test
-       // if dummy starts in the first 256 MB of memory.
-       // otherwise there might not be anything mapped
-       // at the address that might be accidentally
-       // dereferenced below.
-       if uintptr(unsafe.Pointer(&dummy)) > 256<<20 {
-               panic("dummy too far out")
-       }
-
-       // The problem here is that indexing into t with a large
-       // enough index can jump out of the unmapped section
-       // at the beginning of memory and into valid memory.
-       // We require the pointer dereference to check.
-       var t *T
-       println(t.i)    // should crash
-}
diff --git a/gcc/testsuite/go.test/test/nilptr/structfield1.go b/gcc/testsuite/go.test/test/nilptr/structfield1.go
deleted file mode 100644 (file)
index 7c7abed..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-// $G $D/$F.go && $L $F.$A &&
-//     ((! sh -c ./$A.out) >/dev/null 2>&1 || echo BUG: should fail)
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import "unsafe"
-
-var dummy [512<<20]byte        // give us a big address space
-type T struct {
-       x [256<<20] byte
-       i int
-}
-
-func f() *T {
-       return nil
-}
-
-func main() {
-       // the test only tests what we intend to test
-       // if dummy starts in the first 256 MB of memory.
-       // otherwise there might not be anything mapped
-       // at the address that might be accidentally
-       // dereferenced below.
-       if uintptr(unsafe.Pointer(&dummy)) > 256<<20 {
-               panic("dummy too far out")
-       }
-
-       // The problem here is that indexing into t with a large
-       // enough index can jump out of the unmapped section
-       // at the beginning of memory and into valid memory.
-       // We require the pointer dereference to check.
-       println(f().i)  // should crash
-}
diff --git a/gcc/testsuite/go.test/test/nilptr/structfield2.go b/gcc/testsuite/go.test/test/nilptr/structfield2.go
deleted file mode 100644 (file)
index 02a44f1..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-// $G $D/$F.go && $L $F.$A &&
-//     ((! sh -c ./$A.out) >/dev/null 2>&1 || echo BUG: should fail)
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import "unsafe"
-
-var dummy [512<<20]byte        // give us a big address space
-type T struct {
-       x [256<<20] byte
-       i int
-}
-
-var y *T
-var x = &y
-
-func main() {
-       // the test only tests what we intend to test
-       // if dummy starts in the first 256 MB of memory.
-       // otherwise there might not be anything mapped
-       // at the address that might be accidentally
-       // dereferenced below.
-       if uintptr(unsafe.Pointer(&dummy)) > 256<<20 {
-               panic("dummy too far out")
-       }
-
-       // The problem here is that indexing into t with a large
-       // enough index can jump out of the unmapped section
-       // at the beginning of memory and into valid memory.
-       // We require the pointer dereference to check.
-       println((*x).i) // should crash
-}
diff --git a/gcc/testsuite/go.test/test/nilptr/structfieldaddr.go b/gcc/testsuite/go.test/test/nilptr/structfieldaddr.go
deleted file mode 100644 (file)
index f3177ba..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// $G $D/$F.go && $L $F.$A &&
-//     ((! sh -c ./$A.out) >/dev/null 2>&1 || echo BUG: should fail)
-
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package main
-
-import "unsafe"
-
-var dummy [512<<20]byte        // give us a big address space
-type T struct {
-       x [256<<20] byte
-       i int
-}
-
-func main() {
-       // the test only tests what we intend to test
-       // if dummy starts in the first 256 MB of memory.
-       // otherwise there might not be anything mapped
-       // at the address that might be accidentally
-       // dereferenced below.
-       if uintptr(unsafe.Pointer(&dummy)) > 256<<20 {
-               panic("dummy too far out")
-       }
-
-       // The problem here is that indexing into t with a large
-       // enough index can jump out of the unmapped section
-       // at the beginning of memory and into valid memory.
-       // We require the address calculation to check.
-       var t *T
-       println(&t.i)   // should crash
-}
index f4c59d1e1a2c64b36fe9674704c085846fa01ce7..dd4c36e0b434f02ea0715daca3c491026b716d30 100644 (file)
@@ -8,7 +8,6 @@ package main
 
 type Number *Number
 
-
 // -------------------------------------
 // Peano primitives
 
@@ -16,24 +15,20 @@ func zero() *Number {
        return nil
 }
 
-
 func is_zero(x *Number) bool {
        return x == nil
 }
 
-
 func add1(x *Number) *Number {
        e := new(Number)
        *e = x
        return e
 }
 
-
 func sub1(x *Number) *Number {
        return *x
 }
 
-
 func add(x, y *Number) *Number {
        if is_zero(y) {
                return x
@@ -42,7 +37,6 @@ func add(x, y *Number) *Number {
        return add(add1(x), sub1(y))
 }
 
-
 func mul(x, y *Number) *Number {
        if is_zero(x) || is_zero(y) {
                return zero()
@@ -51,7 +45,6 @@ func mul(x, y *Number) *Number {
        return add(mul(x, sub1(y)), x)
 }
 
-
 func fact(n *Number) *Number {
        if is_zero(n) {
                return add1(zero())
@@ -60,7 +53,6 @@ func fact(n *Number) *Number {
        return mul(fact(sub1(n)), n)
 }
 
-
 // -------------------------------------
 // Helpers to generate/count Peano integers
 
@@ -72,7 +64,6 @@ func gen(n int) *Number {
        return zero()
 }
 
-
 func count(x *Number) int {
        if is_zero(x) {
                return 0
@@ -81,7 +72,6 @@ func count(x *Number) int {
        return count(sub1(x)) + 1
 }
 
-
 func check(x *Number, expected int) {
        var c = count(x)
        if c != expected {
@@ -90,7 +80,6 @@ func check(x *Number, expected int) {
        }
 }
 
-
 // -------------------------------------
 // Test basic functionality
 
@@ -115,12 +104,19 @@ func init() {
        check(fact(gen(5)), 120)
 }
 
-
 // -------------------------------------
 // Factorial
 
+var results = [...]int{
+       1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800,
+       39916800, 479001600,
+}
+
 func main() {
        for i := 0; i <= 9; i++ {
-               print(i, "! = ", count(fact(gen(i))), "\n")
+               if f := count(fact(gen(i))); f != results[i] {
+                       println("FAIL:", i, "!:", f, "!=", results[i])
+                       panic(0)
+               }
        }
 }
index bbb707004fff24a1d897af2c263773b608dc83eb..d867bdc646c14c34807a7a8417e4c7cfb28e2794 100644 (file)
@@ -1,4 +1,4 @@
-// $G $F.go && $L $F.$A && ./$A.out
+// $G $F.go && $L $F.$A && ./$A.out 2>&1 | cmp - $D/$F.out
 
 // Copyright 2009 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
diff --git a/gcc/testsuite/go.test/test/printbig.out b/gcc/testsuite/go.test/test/printbig.out
new file mode 100644 (file)
index 0000000..6a16b15
--- /dev/null
@@ -0,0 +1,2 @@
+-9223372036854775808
+9223372036854775807
diff --git a/gcc/testsuite/go.test/test/reorder.go b/gcc/testsuite/go.test/test/reorder.go
new file mode 100644 (file)
index 0000000..67d0752
--- /dev/null
@@ -0,0 +1,121 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Check reordering of assignments.
+
+package main
+
+import "fmt"
+
+func main() {
+       p1()
+       p2()
+       p3()
+       p4()
+       p5()
+       p6()
+       p7()
+       p8()
+}
+
+var gx []int
+
+func f(i int) int {
+       return gx[i]
+}
+
+func check(x []int, x0, x1, x2 int) {
+       if x[0] != x0 || x[1] != x1 || x[2] != x2 {
+               fmt.Printf("%v, want %d,%d,%d\n", x, x0, x1, x2)
+               panic("failed")
+       }
+}
+
+func check3(x, y, z, xx, yy, zz int) {
+       if x != xx || y != yy || z != zz {
+               fmt.Printf("%d,%d,%d, want %d,%d,%d\n", x, y, z, xx, yy, zz)
+               panic("failed")
+       }
+}
+
+func p1() {
+       x := []int{1,2,3}
+       i := 0
+       i, x[i] = 1, 100
+       _ = i
+       check(x, 100, 2, 3)
+}
+
+func p2() {
+       x := []int{1,2,3}
+       i := 0
+       x[i], i = 100, 1
+       _ = i
+       check(x, 100, 2, 3)
+}
+
+func p3() {
+       x := []int{1,2,3}
+       y := x
+       gx = x
+       x[1], y[0] = f(0), f(1)
+       check(x, 2, 1, 3)
+}
+
+func p4() {
+       x := []int{1,2,3}
+       y := x
+       gx = x
+       x[1], y[0] = gx[0], gx[1]
+       check(x, 2, 1, 3)
+}
+
+func p5() {
+       x := []int{1,2,3}
+       y := x
+       p := &x[0]
+       q := &x[1]
+       *p, *q = x[1], y[0]
+       check(x, 2, 1, 3)
+}
+
+func p6() {
+       x := 1
+       y := 2
+       z := 3
+       px := &x
+       py := &y
+       *px, *py = y, x
+       check3(x, y, z, 2, 1, 3)        
+}
+
+func f1(x, y, z int) (xx, yy, zz int) {
+       return x, y, z
+}
+
+func f2() (x, y, z int) {
+       return f1(2, 1, 3)
+}
+
+func p7() {
+       x, y, z := f2()
+       check3(x, y, z, 2, 1, 3)
+}
+
+func p8() {
+       x := []int{1,2,3}
+
+       defer func() {
+               err := recover()
+               if err == nil {
+                       panic("not panicking")
+               }
+               check(x, 100, 2, 3)
+       }()
+
+       i := 0
+       i, x[i], x[5] = 1, 100, 500
+}
index bc31d2f714099d41df4635e8948d81afd8669a14..03c91ee30ee3cea462898ca0f6ae89d2c51c1de3 100755 (executable)
@@ -23,7 +23,7 @@ Xarm)
        exit 1
 esac
 
-export G=${A}g
+export G="${A}g ${GCFLAGS}"
 export L=${A}l
 export GOTRACEBACK=0
 export LANG=C
@@ -31,7 +31,7 @@ unset GREP_OPTIONS    # in case user has a non-standard set
 
 failed=0
 
-PATH=/bin:/usr/bin:/usr/local/bin:${GOBIN:-$GOROOT/bin}:`pwd`
+PATH=${GOBIN:-$GOROOT/bin}:`pwd`:/bin:/usr/bin:/usr/local/bin
 
 RUNFILE="/tmp/gorun-$$-$USER"
 TMP1FILE="/tmp/gotest1-$$-$USER"
@@ -53,7 +53,7 @@ filterout() {
        grep '^'"$2"'$' $1 >/dev/null
 }
 
-for dir in . ken chan interface nilptr syntax fixedbugs bugs
+for dir in . ken chan interface syntax dwarf fixedbugs bugs
 do
        echo
        echo '==' $dir'/'
diff --git a/gcc/testsuite/go.test/test/rune.go b/gcc/testsuite/go.test/test/rune.go
new file mode 100644 (file)
index 0000000..3386972
--- /dev/null
@@ -0,0 +1,44 @@
+// $G $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+var (
+       r0 = 'a'
+       r1 = 'a'+1
+       r2 = 1+'a'
+       r3 = 'a'*2
+       r4 = 'a'/2
+       r5 = 'a'<<1
+       r6 = 'b'<<2
+       r7 int32
+
+       r = []rune{r0, r1, r2, r3, r4, r5, r6, r7}
+)
+
+var (
+       f0 = 1.2
+       f1 = 1.2/'a'
+
+       f = []float64{f0, f1}
+)
+
+var (
+       i0 = 1
+       i1 = 1<<'\x01'
+       
+       i = []int{i0, i1}
+)
+
+const (
+       maxRune = '\U0010FFFF'
+)
+
+var (
+       b0 = maxRune < r0
+       
+       b = []bool{b0}
+)
index 1fb2e21bd56cc3cc20467c86b16654be0727de30..e7c3d5abb48d4289f3454552a0d85583104f6e4d 100644 (file)
@@ -1,4 +1,5 @@
-// $G $D/$F.go && $L $F.$A && ./$A.out
+// [ "$GOOS" == windows ] ||
+// ($G $D/$F.go && $L $F.$A && ./$A.out 2>&1 | cmp - $D/$F.out)
 
 // Copyright 2009 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
diff --git a/gcc/testsuite/go.test/test/sigchld.out b/gcc/testsuite/go.test/test/sigchld.out
new file mode 100644 (file)
index 0000000..477d025
--- /dev/null
@@ -0,0 +1 @@
+survived SIGCHLD
index 2adb931e141ad4450d7d35592a1240c18f034740..5cd3a4567b8d41e0dd6a2ad9b81515e57e66ca98 100644 (file)
@@ -1,4 +1,4 @@
-// $G -S $D/$F.go | egrep initdone >/dev/null && echo FAIL || true
+// $G -S $D/$F.go | egrep initdone >/dev/null && echo BUG sinit || true
 
 // Copyright 2010 The Go Authors.  All rights reserved.
 // Use of this source code is governed by a BSD-style
@@ -9,45 +9,45 @@ package p
 // Should be no init func in the assembly.
 // All these initializations should be done at link time.
 
-type   S       struct{ a,b,c int }
-type   SS      struct{ aa,bb,cc S }
-type   SA      struct{ a,b,c [3]int }
-type   SC      struct{ a,b,c []int }
+type S struct{ a, b, c int }
+type SS struct{ aa, bb, cc S }
+type SA struct{ a, b, c [3]int }
+type SC struct{ a, b, c []int }
 
 var (
-       zero = 2
-       one = 1
-       pi = 3.14
-       slice = []byte{1,2,3}
-       sliceInt = []int{1,2,3}
-       hello = "hello, world"
-       bytes = []byte("hello, world")
-       four, five = 4, 5
-       x, y = 0.1, "hello"
-       nilslice []byte = nil
-       nilmap map[string]int = nil
-       nilfunc func() = nil
-       nilchan chan int = nil
-       nilptr *byte = nil
+       zero                      = 2
+       one                       = 1
+       pi                        = 3.14
+       slice                     = []byte{1, 2, 3}
+       sliceInt                  = []int{1, 2, 3}
+       hello                     = "hello, world"
+       bytes                     = []byte("hello, world")
+       four, five                = 4, 5
+       x, y                      = 0.1, "hello"
+       nilslice   []byte         = nil
+       nilmap     map[string]int = nil
+       nilfunc    func()         = nil
+       nilchan    chan int       = nil
+       nilptr     *byte          = nil
 )
 
-var    a       = [3]int{1001, 1002, 1003}
-var    s       = S{1101, 1102, 1103}
-var    c       = []int{1201, 1202, 1203}
+var a = [3]int{1001, 1002, 1003}
+var s = S{1101, 1102, 1103}
+var c = []int{1201, 1202, 1203}
 
-var    aa      = [3][3]int{[3]int{2001,2002,2003}, [3]int{2004,2005,2006}, [3]int{2007,2008,2009}}
-var    as      = [3]S{S{2101,2102,2103},S{2104,2105,2106},S{2107,2108,2109}}
-var    ac      = [3][]int{[]int{2201,2202,2203}, []int{2204,2205,2206}, []int{2207,2208,2209}}
+var aa = [3][3]int{[3]int{2001, 2002, 2003}, [3]int{2004, 2005, 2006}, [3]int{2007, 2008, 2009}}
+var as = [3]S{S{2101, 2102, 2103}, S{2104, 2105, 2106}, S{2107, 2108, 2109}}
+var ac = [3][]int{[]int{2201, 2202, 2203}, []int{2204, 2205, 2206}, []int{2207, 2208, 2209}}
 
-var    sa      = SA{[3]int{3001,3002,3003},[3]int{3004,3005,3006},[3]int{3007,3008,3009}}
-var    ss      = SS{S{3101,3102,3103},S{3104,3105,3106},S{3107,3108,3109}}
-var    sc      = SC{[]int{3201,3202,3203},[]int{3204,3205,3206},[]int{3207,3208,3209}}
+var sa = SA{[3]int{3001, 3002, 3003}, [3]int{3004, 3005, 3006}, [3]int{3007, 3008, 3009}}
+var ss = SS{S{3101, 3102, 3103}, S{3104, 3105, 3106}, S{3107, 3108, 3109}}
+var sc = SC{[]int{3201, 3202, 3203}, []int{3204, 3205, 3206}, []int{3207, 3208, 3209}}
 
-var    ca      = [][3]int{[3]int{4001,4002,4003}, [3]int{4004,4005,4006}, [3]int{4007,4008,4009}}
-var    cs      = []S{S{4101,4102,4103},S{4104,4105,4106},S{4107,4108,4109}}
-var    cc      = [][]int{[]int{4201,4202,4203}, []int{4204,4205,4206}, []int{4207,4208,4209}}
+var ca = [][3]int{[3]int{4001, 4002, 4003}, [3]int{4004, 4005, 4006}, [3]int{4007, 4008, 4009}}
+var cs = []S{S{4101, 4102, 4103}, S{4104, 4105, 4106}, S{4107, 4108, 4109}}
+var cc = [][]int{[]int{4201, 4202, 4203}, []int{4204, 4205, 4206}, []int{4207, 4208, 4209}}
 
-var    answers = [...]int {
+var answers = [...]int{
        // s
        1101, 1102, 1103,
 
@@ -98,3 +98,158 @@ var answers = [...]int {
        2008, 2208, 2308, 4008, 4208, 4308, 5008, 5208, 5308,
        2009, 2209, 2309, 4009, 4209, 4309, 5009, 5209, 5309,
 }
+
+var (
+       copy_zero = zero
+       copy_one = one
+       copy_pi = pi
+       copy_slice = slice
+       copy_sliceInt = sliceInt
+       copy_hello = hello
+       copy_bytes = bytes
+       copy_four, copy_five = four, five
+       copy_x, copy_y = x, y
+       copy_nilslice = nilslice
+       copy_nilmap = nilmap
+       copy_nilfunc = nilfunc
+       copy_nilchan = nilchan
+       copy_nilptr = nilptr
+)
+
+var copy_a = a
+var copy_s = s
+var copy_c = c
+
+var copy_aa = aa
+var copy_as = as
+var copy_ac = ac
+
+var copy_sa = sa
+var copy_ss = ss
+var copy_sc = sc
+
+var copy_ca = ca
+var copy_cs = cs
+var copy_cc = cc
+
+var copy_answers = answers
+
+var bx bool
+var b0 = false
+var b1 = true
+
+var fx float32
+var f0 = float32(0)
+var f1 = float32(1)
+
+var gx float64
+var g0 = float64(0)
+var g1 = float64(1)
+
+var ix int
+var i0 = 0
+var i1 = 1
+
+var jx uint
+var j0 = uint(0)
+var j1 = uint(1)
+
+var cx complex64
+var c0 = complex64(0)
+var c1 = complex64(1)
+
+var dx complex128
+var d0 = complex128(0)
+var d1 = complex128(1)
+
+var sx []int
+var s0 = []int{0, 0, 0}
+var s1 = []int{1, 2, 3}
+
+func fi() int
+
+var ax [10]int
+var a0 = [10]int{0, 0, 0}
+var a1 = [10]int{1, 2, 3, 4}
+
+type T struct{ X, Y int }
+
+var tx T
+var t0 = T{}
+var t0a = T{0, 0}
+var t0b = T{X: 0}
+var t1 = T{X: 1, Y: 2}
+var t1a = T{3, 4}
+
+var psx *[]int
+var ps0 = &[]int{0, 0, 0}
+var ps1 = &[]int{1, 2, 3}
+
+var pax *[10]int
+var pa0 = &[10]int{0, 0, 0}
+var pa1 = &[10]int{1, 2, 3}
+
+var ptx *T
+var pt0 = &T{}
+var pt0a = &T{0, 0}
+var pt0b = &T{X: 0}
+var pt1 = &T{X: 1, Y: 2}
+var pt1a = &T{3, 4}
+
+var copy_bx = bx
+var copy_b0 = b0
+var copy_b1 = b1
+
+var copy_fx = fx
+var copy_f0 = f0
+var copy_f1 = f1
+
+var copy_gx = gx
+var copy_g0 = g0
+var copy_g1 = g1
+
+var copy_ix = ix
+var copy_i0 = i0
+var copy_i1 = i1
+
+var copy_jx = jx
+var copy_j0 = j0
+var copy_j1 = j1
+
+var copy_cx = cx
+var copy_c0 = c0
+var copy_c1 = c1
+
+var copy_dx = dx
+var copy_d0 = d0
+var copy_d1 = d1
+
+var copy_sx = sx
+var copy_s0 = s0
+var copy_s1 = s1
+
+var copy_ax = ax
+var copy_a0 = a0
+var copy_a1 = a1
+
+var copy_tx = tx
+var copy_t0 = t0
+var copy_t0a = t0a
+var copy_t0b = t0b
+var copy_t1 = t1
+var copy_t1a = t1a
+
+var copy_psx = psx
+var copy_ps0 = ps0
+var copy_ps1 = ps1
+
+var copy_pax = pax
+var copy_pa0 = pa0
+var copy_pa1 = pa1
+
+var copy_ptx = ptx
+var copy_pt0 = pt0
+var copy_pt0a = pt0a
+var copy_pt0b = pt0b
+var copy_pt1 = pt1
+var copy_pt1a = pt1a
diff --git a/gcc/testsuite/go.test/test/struct0.go b/gcc/testsuite/go.test/test/struct0.go
new file mode 100644 (file)
index 0000000..2398c41
--- /dev/null
@@ -0,0 +1,34 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// zero length structs.
+// used to not be evaluated.
+// issue 2232.
+
+package main
+
+func recv(c chan interface{}) struct{} {
+       return (<-c).(struct{})
+}
+
+var m = make(map[interface{}]int)
+
+func recv1(c chan interface{}) {
+       defer rec()
+       m[(<-c).(struct{})] = 0
+}
+
+func rec() {
+       recover()
+}
+
+func main() {
+       c := make(chan interface{})
+       go recv(c)
+       c <- struct{}{}
+       go recv1(c)
+       c <- struct{}{}
+}
index 0c253d6e2a7bdf238853ee40d5d4099575be2618..bed027ce85f6c9df79880dc18940a1be7756b6ad 100644 (file)
@@ -19,48 +19,75 @@ func main() {
        hello := "hello"
 
        switch true {
-       case i5 < 5: assert(false, "<")
-       case i5 == 5: assert(true, "!")
-       case i5 > 5: assert(false, ">")
+       case i5 < 5:
+               assert(false, "<")
+       case i5 == 5:
+               assert(true, "!")
+       case i5 > 5:
+               assert(false, ">")
        }
 
        switch {
-       case i5 < 5: assert(false, "<")
-       case i5 == 5: assert(true, "!")
-       case i5 > 5: assert(false, ">")
+       case i5 < 5:
+               assert(false, "<")
+       case i5 == 5:
+               assert(true, "!")
+       case i5 > 5:
+               assert(false, ">")
        }
 
        switch x := 5; true {
-       case i5 < x: assert(false, "<")
-       case i5 == x: assert(true, "!")
-       case i5 > x: assert(false, ">")
+       case i5 < x:
+               assert(false, "<")
+       case i5 == x:
+               assert(true, "!")
+       case i5 > x:
+               assert(false, ">")
        }
 
        switch x := 5; true {
-       case i5 < x: assert(false, "<")
-       case i5 == x: assert(true, "!")
-       case i5 > x: assert(false, ">")
+       case i5 < x:
+               assert(false, "<")
+       case i5 == x:
+               assert(true, "!")
+       case i5 > x:
+               assert(false, ">")
        }
 
        switch i5 {
-       case 0: assert(false, "0")
-       case 1: assert(false, "1")
-       case 2: assert(false, "2")
-       case 3: assert(false, "3")
-       case 4: assert(false, "4")
-       case 5: assert(true, "5")
-       case 6: assert(false, "6")
-       case 7: assert(false, "7")
-       case 8: assert(false, "8")
-       case 9: assert(false, "9")
-       default: assert(false, "default")
+       case 0:
+               assert(false, "0")
+       case 1:
+               assert(false, "1")
+       case 2:
+               assert(false, "2")
+       case 3:
+               assert(false, "3")
+       case 4:
+               assert(false, "4")
+       case 5:
+               assert(true, "5")
+       case 6:
+               assert(false, "6")
+       case 7:
+               assert(false, "7")
+       case 8:
+               assert(false, "8")
+       case 9:
+               assert(false, "9")
+       default:
+               assert(false, "default")
        }
 
        switch i5 {
-       case 0,1,2,3,4: assert(false, "4")
-       case 5: assert(true, "5")
-       case 6,7,8,9: assert(false, "9")
-       default: assert(false, "default")
+       case 0, 1, 2, 3, 4:
+               assert(false, "4")
+       case 5:
+               assert(true, "5")
+       case 6, 7, 8, 9:
+               assert(false, "9")
+       default:
+               assert(false, "default")
        }
 
        switch i5 {
@@ -68,72 +95,188 @@ func main() {
        case 1:
        case 2:
        case 3:
-       case 4: assert(false, "4")
-       case 5: assert(true, "5")
+       case 4:
+               assert(false, "4")
+       case 5:
+               assert(true, "5")
        case 6:
        case 7:
        case 8:
        case 9:
-       default: assert(i5 == 5, "good")
+       default:
+               assert(i5 == 5, "good")
        }
 
        switch i5 {
-       case 0: dummy := 0; _ = dummy; fallthrough
-       case 1: dummy := 0; _ = dummy; fallthrough
-       case 2: dummy := 0; _ = dummy; fallthrough
-       case 3: dummy := 0; _ = dummy; fallthrough
-       case 4: dummy := 0; _ = dummy; assert(false, "4")
-       case 5: dummy := 0; _ = dummy; fallthrough
-       case 6: dummy := 0; _ = dummy; fallthrough
-       case 7: dummy := 0; _ = dummy; fallthrough
-       case 8: dummy := 0; _ = dummy; fallthrough
-       case 9: dummy := 0; _ = dummy; fallthrough
-       default: dummy := 0; _ = dummy; assert(i5 == 5, "good")
+       case 0:
+               dummy := 0
+               _ = dummy
+               fallthrough
+       case 1:
+               dummy := 0
+               _ = dummy
+               fallthrough
+       case 2:
+               dummy := 0
+               _ = dummy
+               fallthrough
+       case 3:
+               dummy := 0
+               _ = dummy
+               fallthrough
+       case 4:
+               dummy := 0
+               _ = dummy
+               assert(false, "4")
+       case 5:
+               dummy := 0
+               _ = dummy
+               fallthrough
+       case 6:
+               dummy := 0
+               _ = dummy
+               fallthrough
+       case 7:
+               dummy := 0
+               _ = dummy
+               fallthrough
+       case 8:
+               dummy := 0
+               _ = dummy
+               fallthrough
+       case 9:
+               dummy := 0
+               _ = dummy
+               fallthrough
+       default:
+               dummy := 0
+               _ = dummy
+               assert(i5 == 5, "good")
        }
 
        fired := false
        switch i5 {
-       case 0: dummy := 0; _ = dummy; fallthrough;  // tests scoping of cases
-       case 1: dummy := 0; _ = dummy; fallthrough
-       case 2: dummy := 0; _ = dummy; fallthrough
-       case 3: dummy := 0; _ = dummy; fallthrough
-       case 4: dummy := 0; _ = dummy; assert(false, "4")
-       case 5: dummy := 0; _ = dummy; fallthrough
-       case 6: dummy := 0; _ = dummy; fallthrough
-       case 7: dummy := 0; _ = dummy; fallthrough
-       case 8: dummy := 0; _ = dummy; fallthrough
-       case 9: dummy := 0; _ = dummy; fallthrough
-       default: dummy := 0; _ = dummy; fired = !fired; assert(i5 == 5, "good")
+       case 0:
+               dummy := 0
+               _ = dummy
+               fallthrough // tests scoping of cases
+       case 1:
+               dummy := 0
+               _ = dummy
+               fallthrough
+       case 2:
+               dummy := 0
+               _ = dummy
+               fallthrough
+       case 3:
+               dummy := 0
+               _ = dummy
+               fallthrough
+       case 4:
+               dummy := 0
+               _ = dummy
+               assert(false, "4")
+       case 5:
+               dummy := 0
+               _ = dummy
+               fallthrough
+       case 6:
+               dummy := 0
+               _ = dummy
+               fallthrough
+       case 7:
+               dummy := 0
+               _ = dummy
+               fallthrough
+       case 8:
+               dummy := 0
+               _ = dummy
+               fallthrough
+       case 9:
+               dummy := 0
+               _ = dummy
+               fallthrough
+       default:
+               dummy := 0
+               _ = dummy
+               fired = !fired
+               assert(i5 == 5, "good")
        }
        assert(fired, "fired")
 
        count := 0
        switch i5 {
-       case 0: count = count + 1; fallthrough
-       case 1: count = count + 1; fallthrough
-       case 2: count = count + 1; fallthrough
-       case 3: count = count + 1; fallthrough
-       case 4: count = count + 1; assert(false, "4")
-       case 5: count = count + 1; fallthrough
-       case 6: count = count + 1; fallthrough
-       case 7: count = count + 1; fallthrough
-       case 8: count = count + 1; fallthrough
-       case 9: count = count + 1; fallthrough
-       default: assert(i5 == count, "good")
+       case 0:
+               count = count + 1
+               fallthrough
+       case 1:
+               count = count + 1
+               fallthrough
+       case 2:
+               count = count + 1
+               fallthrough
+       case 3:
+               count = count + 1
+               fallthrough
+       case 4:
+               count = count + 1
+               assert(false, "4")
+       case 5:
+               count = count + 1
+               fallthrough
+       case 6:
+               count = count + 1
+               fallthrough
+       case 7:
+               count = count + 1
+               fallthrough
+       case 8:
+               count = count + 1
+               fallthrough
+       case 9:
+               count = count + 1
+               fallthrough
+       default:
+               assert(i5 == count, "good")
        }
        assert(fired, "fired")
 
        switch hello {
-       case "wowie": assert(false, "wowie")
-       case "hello": assert(true, "hello")
-       case "jumpn": assert(false, "jumpn")
-       default: assert(false, "default")
+       case "wowie":
+               assert(false, "wowie")
+       case "hello":
+               assert(true, "hello")
+       case "jumpn":
+               assert(false, "jumpn")
+       default:
+               assert(false, "default")
        }
 
        fired = false
        switch i := i5 + 2; i {
-       case i7: fired = true
-       default: assert(false, "fail")
+       case i7:
+               fired = true
+       default:
+               assert(false, "fail")
        }
        assert(fired, "var")
+
+       // switch on nil-only comparison types
+       switch f := func() {}; f {
+       case nil:
+               assert(false, "f should not be nil")
+       default:
+       }
+
+       switch m := make(map[int]int); m {
+       case nil:
+               assert(false, "m should not be nil")
+       default:
+       }
+
+       switch a := make([]int, 1); a {
+       case nil:
+               assert(false, "m should not be nil")
+       default:
+       }
 }
diff --git a/gcc/testsuite/go.test/test/switch3.go b/gcc/testsuite/go.test/test/switch3.go
new file mode 100644 (file)
index 0000000..6c9ebfe
--- /dev/null
@@ -0,0 +1,58 @@
+// errchk $G -e $D/$F.go
+
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+type I interface {
+       M()
+}
+
+func bad() {
+       var i I
+       var s string
+
+       switch i {
+       case s: // ERROR "mismatched types string and I|incompatible types"
+       }
+
+       switch s {
+       case i: // ERROR "mismatched types I and string|incompatible types"
+       }
+
+       var m, m1 map[int]int
+       switch m {
+       case nil:
+       case m1: // ERROR "can only compare map m to nil|map can only be compared to nil"
+       default:
+       }
+
+       var a, a1 []int
+       switch a {
+       case nil:
+       case a1: // ERROR "can only compare slice a to nil|slice can only be compared to nil"
+       default:
+       }
+
+       var f, f1 func()
+       switch f {
+       case nil:
+       case f1: // ERROR "can only compare func f to nil|func can only be compared to nil"
+       default:
+       }
+}
+
+func good() {
+       var i interface{}
+       var s string
+
+       switch i {
+       case s:
+       }
+
+       switch s {
+       case i:
+       }
+}
diff --git a/gcc/testsuite/go.test/test/syntax/else.go b/gcc/testsuite/go.test/test/syntax/else.go
new file mode 100644 (file)
index 0000000..9959525
--- /dev/null
@@ -0,0 +1,12 @@
+// errchk $G $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+func main() {
+       if true {
+       } else ;  // ERROR "else must be followed by if or statement block|expected .if. or .{."
+}
diff --git a/gcc/testsuite/go.test/test/times.out b/gcc/testsuite/go.test/test/times.out
new file mode 100644 (file)
index 0000000..841fab9
--- /dev/null
@@ -0,0 +1,632 @@
+0.04 ./235
+1.72 ./64bit
+0.03 ./alias
+0.03 ./alias1
+0.30 ./append
+0.07 ./args
+0.02 ./assign
+0.04 ./assign1
+0.04 ./bigalg
+0.03 ./bigmap
+0.14 ./blank
+0.03 ./blank1
+0.03 ./chancap
+0.07 ./char_lit
+0.03 ./char_lit1
+0.09 ./closedchan
+0.05 ./closure
+0.06 ./cmp
+0.02 ./cmp6
+0.03 ./cmplx
+0.60 ./cmplxdivide
+0.00 ./cmplxdivide1
+0.04 ./complit
+0.02 ./complit1
+0.03 ./compos
+0.04 ./const
+0.03 ./const1
+0.03 ./const2
+0.13 ./const3
+0.08 ./convert
+0.03 ./convert1
+0.02 ./convert3
+0.04 ./convlit
+0.02 ./convlit1
+0.34 ./copy
+0.27 ./crlf
+0.05 ./ddd
+0.02 ./ddd1
+0.00 ./ddd2
+0.04 ./ddd3
+0.03 ./decl
+0.03 ./declbad
+0.14 ./defer
+0.03 ./deferprint
+0.14 ./divide
+0.00 ./empty
+0.08 ./env
+0.00 ./eof
+0.00 ./eof1
+0.04 ./escape
+0.12 ./escape2
+0.03 ./escape3
+0.05 ./float_lit
+0.14 ./floatcmp
+0.03 ./for
+0.04 ./func
+0.03 ./func1
+0.00 ./func2
+0.03 ./func3
+0.03 ./func4
+0.03 ./func5
+0.00 ./func6
+0.04 ./func7
+0.03 ./gc
+0.04 ./gc1
+0.26 ./gc2
+0.06 ./goprint
+0.04 ./goto
+0.04 ./hashmap
+0.03 ./helloworld
+0.03 ./if
+0.02 ./import
+0.15 ./import1
+0.00 ./import2
+0.01 ./import3
+0.14 ./import4
+1.70 ./index
+0.03 ./indirect
+0.02 ./indirect1
+0.02 ./init
+0.25 ./init1
+0.03 ./initcomma
+0.15 ./initialize
+0.02 ./initializerr
+0.06 ./initsyscall
+0.07 ./int_lit
+0.03 ./intcvt
+0.03 ./iota
+0.03 ./label
+0.03 ./label1
+0.04 ./literal
+0.15 ./malloc1
+0.06 ./mallocfin
+0.19 ./mallocrand
+0.21 ./mallocrep
+0.52 ./mallocrep1
+0.17 ./map
+0.02 ./map1
+0.05 ./method
+0.02 ./method1
+0.03 ./method2
+0.04 ./method3
+0.06 ./named
+0.03 ./named1
+0.18 ./nil
+0.15 ./nilptr
+0.16 ./nul1
+0.00 ./parentype
+0.11 ./peano
+0.02 ./printbig
+0.05 ./range
+0.04 ./recover
+0.04 ./recover1
+0.08 ./recover2
+0.06 ./recover3
+0.14 ./rename
+0.02 ./rename1
+0.16 ./reorder
+0.00 ./rune
+0.03 ./runtime
+0.03 ./shift1
+0.01 ./shift2
+0.03 ./sieve
+0.06 ./sigchld
+0.03 ./simassign
+0.02 ./sinit
+0.00 ./sizeof
+0.03 ./solitaire
+0.06 ./stack
+0.08 ./string_lit
+0.14 ./stringrange
+0.04 ./struct0
+0.04 ./switch
+0.08 ./switch1
+0.02 ./switch3
+0.04 ./test0
+0.03 ./turing
+0.07 ./typeswitch
+0.15 ./typeswitch1
+0.02 ./typeswitch2
+0.03 ./typeswitch3
+0.02 ./undef
+0.04 ./utf
+0.03 ./varerr
+0.03 ./varinit
+0.26 ./zerodivide
+0.04 ken/array
+0.11 ken/chan
+0.04 ken/chan1
+0.04 ken/complit
+0.07 ken/convert
+0.03 ken/cplx0
+0.02 ken/cplx1
+0.06 ken/cplx2
+0.09 ken/cplx3
+0.14 ken/cplx4
+0.03 ken/cplx5
+0.31 ken/divconst
+0.05 ken/divmod
+0.04 ken/embed
+0.03 ken/for
+0.04 ken/interbasic
+0.03 ken/interfun
+0.04 ken/intervar
+0.03 ken/label
+0.03 ken/litfun
+0.03 ken/mfunc
+0.34 ken/modconst
+0.03 ken/ptrfun
+0.03 ken/ptrvar
+0.04 ken/range
+0.03 ken/rob1
+0.18 ken/rob2
+0.04 ken/robfor
+0.04 ken/robfunc
+0.03 ken/shift
+0.03 ken/simparray
+0.04 ken/simpbool
+0.03 ken/simpconv
+0.03 ken/simpfun
+0.03 ken/simpswitch
+0.03 ken/simpvar
+0.02 ken/slicearray
+0.03 ken/sliceslice
+0.03 ken/string
+0.03 ken/strvar
+0.32 chan/doubleselect
+0.06 chan/fifo
+0.12 chan/goroutines
+0.07 chan/nonblock
+0.02 chan/perm
+0.10 chan/powser1
+0.09 chan/powser2
+0.03 chan/select
+0.15 chan/select2
+0.97 chan/select3
+0.03 chan/select4
+0.72 chan/select5
+0.03 chan/select6
+0.04 chan/select7
+0.03 chan/sendstmt
+0.03 chan/sieve1
+0.04 chan/sieve2
+0.02 chan/zerosize
+0.04 interface/bigdata
+0.04 interface/convert
+0.03 interface/convert1
+0.03 interface/convert2
+0.09 interface/embed
+0.00 interface/embed0
+0.03 interface/embed1
+0.02 interface/embed2
+0.02 interface/explicit
+0.03 interface/fail
+0.09 interface/fake
+0.03 interface/noeq
+0.03 interface/pointer
+0.03 interface/private
+0.00 interface/private1
+0.04 interface/receiver
+0.03 interface/receiver1
+0.00 interface/recursive
+0.03 interface/returntype
+0.09 interface/struct
+0.02 syntax/chan
+0.03 syntax/chan1
+0.02 syntax/else
+0.02 syntax/forvar
+0.03 syntax/if
+0.03 syntax/import
+0.03 syntax/interface
+0.03 syntax/semi1
+0.02 syntax/semi2
+0.03 syntax/semi3
+0.03 syntax/semi4
+0.02 syntax/semi5
+0.03 syntax/semi6
+0.02 syntax/semi7
+0.02 syntax/topexpr
+0.03 syntax/typesw
+0.02 syntax/vareq
+0.03 syntax/vareq1
+0.04 dwarf/linedirectives
+0.05 dwarf/main
+0.00 dwarf/z1
+0.00 dwarf/z10
+0.00 dwarf/z11
+0.00 dwarf/z12
+0.00 dwarf/z13
+0.00 dwarf/z14
+0.00 dwarf/z15
+0.00 dwarf/z16
+0.00 dwarf/z17
+0.00 dwarf/z18
+0.00 dwarf/z19
+0.00 dwarf/z2
+0.00 dwarf/z20
+0.00 dwarf/z3
+0.00 dwarf/z4
+0.00 dwarf/z5
+0.00 dwarf/z6
+0.00 dwarf/z7
+0.00 dwarf/z8
+0.00 dwarf/z9
+0.03 fixedbugs/bug000
+0.03 fixedbugs/bug002
+0.03 fixedbugs/bug003
+0.03 fixedbugs/bug004
+0.04 fixedbugs/bug005
+0.08 fixedbugs/bug006
+0.03 fixedbugs/bug007
+0.03 fixedbugs/bug008
+0.02 fixedbugs/bug009
+0.03 fixedbugs/bug010
+0.03 fixedbugs/bug011
+0.03 fixedbugs/bug012
+0.03 fixedbugs/bug013
+0.03 fixedbugs/bug014
+0.02 fixedbugs/bug015
+0.02 fixedbugs/bug016
+0.03 fixedbugs/bug017
+0.00 fixedbugs/bug020
+0.03 fixedbugs/bug021
+0.02 fixedbugs/bug022
+0.03 fixedbugs/bug023
+0.03 fixedbugs/bug024
+0.03 fixedbugs/bug026
+0.14 fixedbugs/bug027
+0.03 fixedbugs/bug028
+0.02 fixedbugs/bug030
+0.03 fixedbugs/bug031
+0.02 fixedbugs/bug035
+0.00 fixedbugs/bug036
+0.02 fixedbugs/bug037
+0.00 fixedbugs/bug038
+0.03 fixedbugs/bug039
+0.00 fixedbugs/bug040
+0.03 fixedbugs/bug045
+0.03 fixedbugs/bug046
+0.03 fixedbugs/bug047
+0.02 fixedbugs/bug048
+0.03 fixedbugs/bug049
+0.03 fixedbugs/bug050
+0.02 fixedbugs/bug051
+0.03 fixedbugs/bug052
+0.03 fixedbugs/bug053
+0.03 fixedbugs/bug054
+0.03 fixedbugs/bug055
+0.03 fixedbugs/bug056
+0.00 fixedbugs/bug057
+0.04 fixedbugs/bug058
+0.08 fixedbugs/bug059
+0.08 fixedbugs/bug060
+0.03 fixedbugs/bug061
+0.03 fixedbugs/bug062
+0.00 fixedbugs/bug063
+0.00 fixedbugs/bug064
+0.03 fixedbugs/bug065
+0.00 fixedbugs/bug066
+0.03 fixedbugs/bug067
+0.03 fixedbugs/bug068
+0.00 fixedbugs/bug069
+0.15 fixedbugs/bug070
+0.00 fixedbugs/bug071
+0.03 fixedbugs/bug072
+0.03 fixedbugs/bug073
+0.03 fixedbugs/bug074
+0.03 fixedbugs/bug075
+0.03 fixedbugs/bug076
+0.00 fixedbugs/bug077
+0.03 fixedbugs/bug078
+0.00 fixedbugs/bug080
+0.02 fixedbugs/bug081
+0.03 fixedbugs/bug082
+0.03 fixedbugs/bug083
+0.04 fixedbugs/bug084
+0.02 fixedbugs/bug085
+0.03 fixedbugs/bug086
+0.00 fixedbugs/bug087
+0.01 fixedbugs/bug088
+0.00 fixedbugs/bug089
+0.03 fixedbugs/bug090
+0.02 fixedbugs/bug091
+0.03 fixedbugs/bug092
+0.03 fixedbugs/bug093
+0.00 fixedbugs/bug094
+0.00 fixedbugs/bug096
+0.03 fixedbugs/bug097
+0.00 fixedbugs/bug098
+0.03 fixedbugs/bug099
+0.03 fixedbugs/bug101
+0.03 fixedbugs/bug102
+0.02 fixedbugs/bug103
+0.03 fixedbugs/bug104
+0.01 fixedbugs/bug106
+0.03 fixedbugs/bug107
+0.03 fixedbugs/bug108
+0.00 fixedbugs/bug109
+0.03 fixedbugs/bug110
+0.03 fixedbugs/bug111
+0.00 fixedbugs/bug112
+0.03 fixedbugs/bug113
+0.03 fixedbugs/bug114
+0.00 fixedbugs/bug115
+0.03 fixedbugs/bug116
+0.02 fixedbugs/bug117
+0.00 fixedbugs/bug118
+0.03 fixedbugs/bug119
+0.11 fixedbugs/bug120
+0.02 fixedbugs/bug121
+0.03 fixedbugs/bug122
+0.03 fixedbugs/bug123
+0.02 fixedbugs/bug126
+0.02 fixedbugs/bug127
+0.03 fixedbugs/bug128
+0.01 fixedbugs/bug129
+0.08 fixedbugs/bug130
+0.02 fixedbugs/bug131
+0.02 fixedbugs/bug132
+0.03 fixedbugs/bug133
+0.00 fixedbugs/bug135
+0.02 fixedbugs/bug136
+0.00 fixedbugs/bug137
+0.00 fixedbugs/bug139
+0.00 fixedbugs/bug140
+0.07 fixedbugs/bug141
+0.03 fixedbugs/bug142
+0.00 fixedbugs/bug143
+0.00 fixedbugs/bug144
+0.00 fixedbugs/bug145
+0.03 fixedbugs/bug146
+0.06 fixedbugs/bug147
+0.03 fixedbugs/bug148
+0.00 fixedbugs/bug149
+0.00 fixedbugs/bug150
+0.00 fixedbugs/bug151
+0.03 fixedbugs/bug1515
+0.03 fixedbugs/bug152
+0.14 fixedbugs/bug154
+0.03 fixedbugs/bug155
+0.00 fixedbugs/bug156
+0.00 fixedbugs/bug157
+0.00 fixedbugs/bug158
+0.07 fixedbugs/bug159
+0.09 fixedbugs/bug160
+0.00 fixedbugs/bug161
+0.02 fixedbugs/bug163
+0.00 fixedbugs/bug164
+0.03 fixedbugs/bug165
+0.03 fixedbugs/bug167
+0.03 fixedbugs/bug168
+0.02 fixedbugs/bug169
+0.03 fixedbugs/bug170
+0.03 fixedbugs/bug171
+0.02 fixedbugs/bug172
+0.00 fixedbugs/bug173
+0.00 fixedbugs/bug174
+0.03 fixedbugs/bug175
+0.03 fixedbugs/bug176
+0.09 fixedbugs/bug177
+0.03 fixedbugs/bug178
+0.03 fixedbugs/bug179
+0.03 fixedbugs/bug180
+0.03 fixedbugs/bug181
+0.02 fixedbugs/bug182
+0.03 fixedbugs/bug183
+0.15 fixedbugs/bug184
+0.04 fixedbugs/bug185
+0.02 fixedbugs/bug186
+0.08 fixedbugs/bug187
+0.03 fixedbugs/bug188
+0.03 fixedbugs/bug189
+0.00 fixedbugs/bug190
+0.04 fixedbugs/bug191
+0.03 fixedbugs/bug192
+0.03 fixedbugs/bug193
+0.03 fixedbugs/bug194
+0.02 fixedbugs/bug195
+0.04 fixedbugs/bug196
+0.02 fixedbugs/bug197
+0.03 fixedbugs/bug198
+0.03 fixedbugs/bug199
+0.03 fixedbugs/bug200
+0.03 fixedbugs/bug201
+0.03 fixedbugs/bug202
+0.03 fixedbugs/bug203
+0.03 fixedbugs/bug204
+0.02 fixedbugs/bug205
+0.21 fixedbugs/bug206
+0.14 fixedbugs/bug207
+0.02 fixedbugs/bug208
+0.02 fixedbugs/bug209
+0.03 fixedbugs/bug211
+0.03 fixedbugs/bug212
+0.03 fixedbugs/bug213
+0.00 fixedbugs/bug214
+0.02 fixedbugs/bug215
+0.00 fixedbugs/bug216
+0.03 fixedbugs/bug217
+0.00 fixedbugs/bug218
+0.00 fixedbugs/bug219
+0.04 fixedbugs/bug221
+0.01 fixedbugs/bug222
+0.00 fixedbugs/bug223
+0.03 fixedbugs/bug224
+0.03 fixedbugs/bug225
+0.03 fixedbugs/bug227
+0.03 fixedbugs/bug228
+0.03 fixedbugs/bug229
+0.03 fixedbugs/bug230
+0.02 fixedbugs/bug231
+0.00 fixedbugs/bug232
+0.01 fixedbugs/bug233
+0.04 fixedbugs/bug234
+0.00 fixedbugs/bug235
+0.04 fixedbugs/bug236
+0.15 fixedbugs/bug237
+0.03 fixedbugs/bug238
+0.00 fixedbugs/bug239
+0.03 fixedbugs/bug240
+0.03 fixedbugs/bug241
+0.04 fixedbugs/bug242
+0.04 fixedbugs/bug243
+0.03 fixedbugs/bug244
+0.00 fixedbugs/bug245
+0.03 fixedbugs/bug246
+0.03 fixedbugs/bug247
+0.11 fixedbugs/bug248
+0.03 fixedbugs/bug249
+0.00 fixedbugs/bug250
+0.03 fixedbugs/bug251
+0.03 fixedbugs/bug252
+0.03 fixedbugs/bug253
+0.03 fixedbugs/bug254
+0.03 fixedbugs/bug255
+0.03 fixedbugs/bug256
+0.47 fixedbugs/bug257
+0.14 fixedbugs/bug258
+0.16 fixedbugs/bug259
+0.16 fixedbugs/bug260
+0.03 fixedbugs/bug261
+0.10 fixedbugs/bug262
+0.03 fixedbugs/bug263
+0.03 fixedbugs/bug264
+0.07 fixedbugs/bug265
+0.03 fixedbugs/bug266
+0.00 fixedbugs/bug267
+0.03 fixedbugs/bug269
+0.13 fixedbugs/bug271
+0.02 fixedbugs/bug272
+0.04 fixedbugs/bug273
+0.02 fixedbugs/bug274
+0.00 fixedbugs/bug275
+0.03 fixedbugs/bug276
+0.00 fixedbugs/bug277
+0.03 fixedbugs/bug278
+0.04 fixedbugs/bug279
+0.02 fixedbugs/bug280
+0.04 fixedbugs/bug281
+0.00 fixedbugs/bug282
+0.00 fixedbugs/bug283
+0.03 fixedbugs/bug284
+0.05 fixedbugs/bug285
+0.04 fixedbugs/bug286
+0.02 fixedbugs/bug287
+0.00 fixedbugs/bug288
+0.02 fixedbugs/bug289
+0.04 fixedbugs/bug290
+0.04 fixedbugs/bug291
+0.03 fixedbugs/bug292
+0.04 fixedbugs/bug293
+0.03 fixedbugs/bug294
+0.16 fixedbugs/bug295
+0.04 fixedbugs/bug296
+0.03 fixedbugs/bug297
+0.03 fixedbugs/bug298
+0.03 fixedbugs/bug299
+0.03 fixedbugs/bug300
+0.00 fixedbugs/bug301
+0.04 fixedbugs/bug302
+0.05 fixedbugs/bug303
+0.00 fixedbugs/bug304
+0.03 fixedbugs/bug305
+0.01 fixedbugs/bug306
+0.00 fixedbugs/bug307
+0.01 fixedbugs/bug308
+0.00 fixedbugs/bug309
+0.04 fixedbugs/bug311
+0.03 fixedbugs/bug312
+0.04 fixedbugs/bug313
+0.04 fixedbugs/bug314
+0.00 fixedbugs/bug315
+0.00 fixedbugs/bug316
+0.03 fixedbugs/bug317
+0.03 fixedbugs/bug318
+0.00 fixedbugs/bug319
+0.03 fixedbugs/bug320
+0.14 fixedbugs/bug321
+0.04 fixedbugs/bug322
+0.03 fixedbugs/bug323
+0.04 fixedbugs/bug324
+0.03 fixedbugs/bug325
+0.02 fixedbugs/bug326
+0.04 fixedbugs/bug327
+0.03 fixedbugs/bug328
+0.04 fixedbugs/bug329
+0.02 fixedbugs/bug330
+0.04 fixedbugs/bug331
+0.02 fixedbugs/bug332
+0.03 fixedbugs/bug333
+0.01 fixedbugs/bug334
+0.01 fixedbugs/bug335
+0.04 fixedbugs/bug336
+0.03 fixedbugs/bug337
+0.00 fixedbugs/bug338
+0.03 fixedbugs/bug339
+0.02 fixedbugs/bug340
+0.03 fixedbugs/bug341
+0.02 fixedbugs/bug342
+0.04 fixedbugs/bug343
+0.02 fixedbugs/bug344
+0.03 fixedbugs/bug345
+0.08 fixedbugs/bug346
+0.04 fixedbugs/bug347
+0.06 fixedbugs/bug348
+0.03 fixedbugs/bug349
+0.03 fixedbugs/bug350
+0.02 fixedbugs/bug351
+0.03 fixedbugs/bug352
+0.03 fixedbugs/bug353
+0.00 fixedbugs/bug354
+0.03 fixedbugs/bug355
+0.03 fixedbugs/bug356
+0.02 fixedbugs/bug357
+0.04 fixedbugs/bug358
+0.00 fixedbugs/bug361
+0.03 fixedbugs/bug362
+0.03 fixedbugs/bug363
+0.15 fixedbugs/bug364
+0.02 fixedbugs/bug365
+0.03 fixedbugs/bug366
+0.03 fixedbugs/bug367
+0.03 fixedbugs/bug368
+0.51 fixedbugs/bug369
+0.03 fixedbugs/bug370
+0.02 fixedbugs/bug371
+0.03 fixedbugs/bug372
+0.03 fixedbugs/bug373
+0.03 fixedbugs/bug374
+0.03 fixedbugs/bug375
+0.03 fixedbugs/bug376
+0.01 fixedbugs/bug377
+0.03 fixedbugs/bug378
+0.02 fixedbugs/bug379
+0.00 fixedbugs/bug380
+0.03 fixedbugs/bug381
+0.01 fixedbugs/bug382
+0.03 fixedbugs/bug383
+0.03 fixedbugs/bug384
+0.00 fixedbugs/bug385_32
+0.03 fixedbugs/bug385_64
+0.03 fixedbugs/bug386
+0.01 fixedbugs/bug387
+0.02 fixedbugs/bug388
+0.03 fixedbugs/bug389
+0.03 fixedbugs/bug390
+0.00 fixedbugs/bug391
+0.01 fixedbugs/bug392
+0.00 fixedbugs/bug393
+0.03 fixedbugs/bug394
+0.00 fixedbugs/bug395
+0.01 fixedbugs/bug396
index 0af39de8b203d692c27f28db99be37629903de02..366982e67f12e8ecb4d381f022342a7fb4bffce7 100644 (file)
@@ -10,42 +10,47 @@ package main
 
 var p, pc int
 var a [30000]byte
+
 const prog = "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.!"
 
 func scan(dir int) {
        for nest := dir; dir*nest > 0; pc += dir {
                switch prog[pc+dir] {
-                       case ']':
-                               nest--
-                       case '[':
-                               nest++
+               case ']':
+                       nest--
+               case '[':
+                       nest++
                }
        }
 }
 
 func main() {
+       r := ""
        for {
                switch prog[pc] {
-                       case '>':
-                                       p++
-                       case '<':
-                                       p--
-                       case '+':
-                                       a[p]++
-                       case '-':
-                                       a[p]--
-                       case '.':
-                                       print(string(a[p]))
-                       case '[':
-                               if a[p] == 0 {
-                                       scan(1)
-                               }
-                       case ']':
-                               if a[p] != 0 {
-                                       scan(-1)
-                               }
-                       default:
-                                       return
+               case '>':
+                       p++
+               case '<':
+                       p--
+               case '+':
+                       a[p]++
+               case '-':
+                       a[p]--
+               case '.':
+                       r += string(a[p])
+               case '[':
+                       if a[p] == 0 {
+                               scan(1)
+                       }
+               case ']':
+                       if a[p] != 0 {
+                               scan(-1)
+                       }
+               default:
+                       if r != "Hello World!\n" {
+                               panic(r)
+                       }
+                       return
                }
                pc++
        }
index f8fe396eae30ec0cf21dda50099461e2c200f50e..3e3acdae37747a6337d075ec9421505dc7f7111d 100644 (file)
@@ -18,11 +18,27 @@ func whatis(x interface{}) string {
                return "Reader1"
        case io.Reader: // ERROR "duplicate"
                return "Reader2"
-       case interface { r(); w() }:
+       case interface {
+               r()
+               w()
+       }:
                return "rw"
-       case interface { w(); r() }:    // ERROR "duplicate"
+       case interface {        // GCCGO_ERROR "duplicate"
+               w()
+               r()
+       }: // GC_ERROR "duplicate"
                return "wr"
-       
+
        }
        return ""
 }
+
+func notused(x interface{}) {
+       // The first t is in a different scope than the 2nd t; it cannot
+       // be accessed (=> declared and not used error); but it is legal
+       // to declare it.
+       switch t := 0; t := x.(type) { // ERROR "declared and not used"
+       case int:
+               _ = t // this is using the t of "t := x.(type)"
+       }
+}
diff --git a/gcc/testsuite/go.test/test/typeswitch3.go b/gcc/testsuite/go.test/test/typeswitch3.go
new file mode 100644 (file)
index 0000000..99d08a2
--- /dev/null
@@ -0,0 +1,20 @@
+// errchk $G -e $D/$F.go
+
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+
+type I interface {
+       M()
+}
+
+func main(){
+       var x I
+       switch x.(type) {
+       case string:    // ERROR "impossible"
+               println("FAIL")
+       }
+}
index 1948528d2450a36278ab128095ca13f4d407de48..3b08e774cc193ce3034ed8f06272ba97deca9696 100644 (file)
@@ -9,13 +9,10 @@ package main
 import (
        "fmt"
        "math"
+       "runtime"
        "strings"
 )
 
-type Error interface {
-       String() string
-}
-
 type ErrorTest struct {
        name string
        fn   func()
@@ -161,10 +158,10 @@ var errorTests = []ErrorTest{
        ErrorTest{"complex128 1/0", func() { use(e128 / d128) }, ""},
 }
 
-func error(fn func()) (error string) {
+func error_(fn func()) (error string) {
        defer func() {
                if e := recover(); e != nil {
-                       error = e.(Error).String()
+                       error = e.(runtime.Error).Error()
                }
        }()
        fn()
@@ -199,7 +196,7 @@ func main() {
                if t.err != "" {
                        continue
                }
-               err := error(t.fn)
+               err := error_(t.fn)
                switch {
                case t.err == "" && err == "":
                        // fine
index a956f3a7f92c83138342c83f7682c268351926b5..209b8f8d6757c8a9f510a8a954608b3e9265df41 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2009 Free Software Foundation, Inc.
+# Copyright (C) 2009, 2011, 2012 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -138,6 +138,7 @@ proc go-torture-execute { src } {
     global tool
     global compiler_conditional_xfail_data
     global TORTURE_OPTIONS
+    global go_compile_args
     global go_execute_args
 
     # Check for alternate driver.
@@ -156,6 +157,9 @@ proc go-torture-execute { src } {
     set executable $tmpdir/[file tail [file rootname $src].x]
     regsub "(?q)$srcdir/" $src "" testcase
 
+    if { ! [info exists go_compile_args] } {
+       set go_compile_args ""
+    }
     if { ! [info exists go_execute_args] } {
        set go_execute_args ""
     }
@@ -194,6 +198,9 @@ proc go-torture-execute { src } {
        if { $additional_flags != "" } {
            lappend options "additional_flags=$additional_flags"
        }
+       if { $go_compile_args != "" } {
+           lappend options "additional_flags=$go_compile_args"
+       }
        set comp_output [go_target_compile "$src" "$executable" executable $options]
 
        # See if we got something bad.