[med-svn] [vsearch] 01/04: Imported Upstream version 1.10.1

Andreas Tille tille at debian.org
Thu Mar 10 22:29:48 UTC 2016


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository vsearch.

commit b2a663694883900e5d99e19d1c65e09db2635e31
Author: Andreas Tille <tille at debian.org>
Date:   Thu Mar 10 23:21:45 2016 +0100

    Imported Upstream version 1.10.1
---
 README.md                  |    9 +-
 configure                  |   20 +-
 configure.ac               |    2 +-
 man/vsearch.1              |  171 +-
 src/Makefile.am            |    5 +-
 src/Makefile.in            |   22 +-
 src/chimera.cc             |  135 +-
 src/eestats.cc             |  337 +++
 src/{fasta.h => eestats.h} |   85 +-
 src/fasta.cc               |   84 +-
 src/fasta.h                |   11 +
 src/fastq.cc               |    9 +-
 src/mask.cc                |    4 +
 src/mergepairs.cc          |  933 +++++----
 src/msa.cc                 |   71 +-
 src/pvalue.h               | 4843 --------------------------------------------
 src/{fasta.h => rerep.cc}  |  131 +-
 src/{fasta.h => rerep.h}   |   85 +-
 src/util.cc                |   25 +-
 src/vsearch.cc             |  242 ++-
 src/vsearch.h              |   13 +-
 21 files changed, 1419 insertions(+), 5818 deletions(-)

diff --git a/README.md b/README.md
index c0cd682..946a85e 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,3 @@
-## JOB ANNOUNCEMENT
-
-Would you like to work with research and development of open source tools for metagenomics, like [Swarm](https://github.com/torognes/swarm) and [VSEARCH](https://github.com/torognes/vsearch)? A [PhD research fellowship in bioinformatics](http://uio.easycruit.com/vacancy/1567523/64290) is now available at the [Department of Informatics](http://www.mn.uio.no/ifi/english/), [University of Oslo (UiO)](http://www.uio.no/english/), Norway. The position is associated with the [Centre for Comput [...]
-
----
-
 # VSEARCH
 
 ## Introduction
@@ -215,6 +209,7 @@ File | Description
 **dbindex.cc** | Indexes the database by identifying unique kmers in the sequences
 **derep.cc** | Dereplication
 **dynlib.cc** | Dynamic loading of compression libraries
+**eestats.cc** | Produce statistics for fastq_eestats command
 **fasta.cc** | FASTA file parser
 **fastq.cc** | FASTQ file parser
 **fastqops.cc** | FASTQ file statistics etc
@@ -226,7 +221,7 @@ File | Description
 **mergepairs.cc** | Paired-end read merging
 **minheap.cc** | A minheap implementation for the list of top kmer matches
 **msa.cc** | Simple multiple sequence alignment and consensus sequence computation for clusters
-**pvalue.h** | Statistical data (from PEAR) used for significance testing of merged paired-end reads
+**rerep.cc** | Rereplication
 **results.cc** | Output results in various formats (alnout, userout, blast6, uc)
 **search.cc** | Implements search using global alignment
 **searchcore.cc** | Core search functions for searching, clustering and chimera detection
diff --git a/configure b/configure
index 04d9a2e..6108c51 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for vsearch 1.9.10.
+# Generated by GNU Autoconf 2.69 for vsearch 1.10.1.
 #
 # Report bugs to <torognes at ifi.uio.no>.
 #
@@ -580,8 +580,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='vsearch'
 PACKAGE_TARNAME='vsearch'
-PACKAGE_VERSION='1.9.10'
-PACKAGE_STRING='vsearch 1.9.10'
+PACKAGE_VERSION='1.10.1'
+PACKAGE_STRING='vsearch 1.10.1'
 PACKAGE_BUGREPORT='torognes at ifi.uio.no'
 PACKAGE_URL=''
 
@@ -1291,7 +1291,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures vsearch 1.9.10 to adapt to many kinds of systems.
+\`configure' configures vsearch 1.10.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1357,7 +1357,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of vsearch 1.9.10:";;
+     short | recursive ) echo "Configuration of vsearch 1.10.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1453,7 +1453,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-vsearch configure 1.9.10
+vsearch configure 1.10.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2044,7 +2044,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by vsearch $as_me 1.9.10, which was
+It was created by vsearch $as_me 1.10.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2907,7 +2907,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='vsearch'
- VERSION='1.9.10'
+ VERSION='1.10.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -6364,7 +6364,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by vsearch $as_me 1.9.10, which was
+This file was extended by vsearch $as_me 1.10.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -6430,7 +6430,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-vsearch config.status 1.9.10
+vsearch config.status 1.10.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index aea6d5a..25e5088 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ([2.63])
-AC_INIT([vsearch], [1.9.10], [torognes at ifi.uio.no])
+AC_INIT([vsearch], [1.10.1], [torognes at ifi.uio.no])
 AM_INIT_AUTOMAKE([subdir-objects])
 AC_LANG([C++])
 AC_CONFIG_SRCDIR([src/vsearch.cc])
diff --git a/man/vsearch.1 b/man/vsearch.1
index 4bfbce7..5fd7c2f 100644
--- a/man/vsearch.1
+++ b/man/vsearch.1
@@ -1,10 +1,11 @@
 .\" ============================================================================
-.TH vsearch 1 "January 25, 2016" "version 1.9.10" "USER COMMANDS"
+.TH vsearch 1 "February 23, 2016" "version 1.10.1" "USER COMMANDS"
 .\" ============================================================================
 .SH NAME
-vsearch \(em chimera detection, clustering, dereplication, FASTA/FASTQ
-file processing, masking, pairwise alignment, searching, shuffling,
-sorting and subsampling of amplicons from metagenomic projects.
+vsearch \(em chimera detection, clustering, dereplication and
+rereplication, FASTA/FASTQ file processing, masking, pairwise
+alignment, searching, shuffling, sorting and subsampling of amplicons
+from metagenomic projects.
 .\" ============================================================================
 .SH SYNOPSIS
 .\" left justified, ragged right
@@ -29,11 +30,14 @@ Clustering:
 \-\-id \fIreal\fR [\fIoptions\fR]
 .PP
 .RE
-Dereplication:
+Dereplication and rereplication:
 .RS
 \fBvsearch\fR (\-\-derep_fulllength | \-\-derep_prefix)
 \fIfastafile\fR (\-\-output | \-\-uc) \fIoutputfile\fR [\fIoptions\fR]
 .PP
+\fBvsearch\fR (\-\-rereplicate) \fIfastafile\fR
+\-\-output \fIoutputfile\fR [\fIoptions\fR]
+.PP
 .RE
 FASTA/FASTQ file processing:
 .RS
@@ -42,6 +46,9 @@ FASTA/FASTQ file processing:
 \fBvsearch\fR \-\-fastq_convert \fIfastqfile\fR \-\-fastqout
 \fIoutputfile\fR [\fIoptions\fR]
 .PP
+\fBvsearch\fR \-\-fastq_eestats \fIfastqfile\fR
+\-\-output \fIoutputfile\fR [\fIoptions\fR]
+.PP
 \fBvsearch\fR \-\-fastq_filter \fIfastqfile\fR (\-\-fastaout |
 \-\-fastaout_discarded | \-\-fastqout | \-\-fastqout_discarded)
 \fIoutputfile\fR [\fIoptions\fR]
@@ -127,9 +134,8 @@ memory requirements.
 several nucleotide sequences. For each sequence, the sequence
 identifier is defined as the string comprised between the ">" (or "@")
 symbol and the first space, tab or the end of the line, whichever
-comes first. Additionally, if the fasta header line starts with
-">[;]size=\fIinteger\fR;label", contains
-">label;size=\fIinteger\fR;label" or ends with
+comes first. Additionally, if the fasta header line matches
+">[;]size=\fIinteger\fR;label", ">label;size=\fIinteger\fR;label" or
 ">label;size=\fIinteger\fR[;]", \fBvsearch\fR will remove the pattern
 [;]size=\fIinteger\fR[;] from the header and interpret \fIinteger\fR
 as the number of occurrences (or abundance) of the sequence in the
@@ -173,8 +179,10 @@ be a regular file, not a stream.
 .SS Options
 \fBvsearch\fR recognizes a large number of command-line options. For
 easier navigation, options are grouped below by theme (chimera
-detection, clustering, dereplication, masking, shuffling, sorting, and
-searching). We start with general options that apply to all themes.
+detection, clustering, dereplication and rereplication, FASTA/FASTQ
+file processing, masking, pairwise alignment, searching, shuffling,
+sorting, and subsampling). We start with the general options that
+apply to all themes.
 .PP
 General options:
 .RS
@@ -281,6 +289,11 @@ database.
 No vote pseudo-count (parameter \fIn\fR in the chimera scoring
 function) (default value is 1.4).
 .TP
+.B \-\-fasta_score
+Add the chimera score to the headers in the fasta output files for chimeras,
+non-chimeras and borderline sequences. A string similar to
+";uchime_denovo=0.1234;" or ";uchime_ref=5.6789;" will be added.
+.TP
 .BI \-\-mindiffs\~ "positive integer"
 Minimum number of differences per segment (default value is 3).
 .TP
@@ -538,19 +551,22 @@ Mask regions in sequences using the
 becomes case sensitive. The default is to mask using \fIdust\fR.
 .TP
 .BI \-\-relabel \0string
-Please see the description of the same option under Chimera detection
-for details.
+Relabel sequence identifiers in the output files produced by
+\-\-consout, \-\-profile and \-\-centroids options. Please see the
+description of the same option under Chimera detection for details.
 .TP
 .B \-\-relabel_keep
 When relabelling, keep the old identifier in the header after a space.
 .TP
 .BI \-\-relabel_md5
-Please see the description of the same option under Chimera detection
-for details.
+Relabel sequence identifiers in the output files produced by
+\-\-consout, \-\-profile and \-\-centroids options. Please see the
+description of the same option under Chimera detection for details.
 .TP
 .BI \-\-relabel_sha1
-Please see the description of the same option under Chimera detection
-for details.
+Relabel sequence identifiers in the output files produced by
+\-\-consout, \-\-profile and \-\-centroids options. Please see the
+description of the same option under Chimera detection for details.
 .TP
 .B \-\-sizein
 Take into account the abundance annotations present in the input fasta
@@ -602,7 +618,7 @@ Most searching options as well as score filtering, gap penalties and masking als
 .RE
 .PP
 .\" ----------------------------------------------------------------------------
-Dereplication options:
+Dereplication and rereplication options:
 .RS
 .TP 9
 .BI \-\-derep_fulllength \0filename
@@ -651,6 +667,15 @@ for details.
 Please see the description of the same option under Chimera detection
 for details.
 .TP
+.BI \-\-rereplicate \0filename
+Duplicate each sequence the number of times indicated by the abundance
+of each sequence in the specified file. The sequence labels will be
+identical for the same sequence, unless \-\-relabel, \-\-relabel_sha1
+or \-\-relabel_md5 is used to create unique labels. Output will be
+written to the file specified with the \-\-output option, in FASTA
+format. The output file will not contain abundance information unless
+\-\-sizeout is specified, in which case an abundance of 1 is used.
+.TP
 .B \-\-sizein
 Take into account the abundance annotations present in the input fasta
 file (search for the pattern "[>;]size=\fIinteger\fR[;]" in sequence
@@ -692,17 +717,18 @@ or reverse complement sequences in FASTA or FASTQ files. The
 \-\-fastq_chars command can be used to analyse FASTQ files to identify
 the type of FASTQ file and the range of quality score values used. To
 convert between different FASTQ file variants, use the
-\-\-fastq_convert command. A statistical analysis of the quality and
-length of the sequences in a FASTQ file is performed with the
-\-\-fastq_stats command. Sequences may be shortened, filtered and
-converted by the \-\-fastq_filter command. Paired-end reads can be
-merged using the \-\-fastq_mergepairs command. Finally, the
-\-\-fastx_revcomp command will reverse complement sequences.
+\-\-fastq_convert command. Statistical analysis of the quality and
+length of the sequences in a FASTQ file may be performed with the
+\-\-fastq_stats and \-\-fastq_eestats commands. Sequences may be
+shortened, filtered and converted by the \-\-fastq_filter
+command. Paired-end reads can be merged using the \-\-fastq_mergepairs
+command. Finally, the \-\-fastx_revcomp command will reverse
+complement sequences.
 .PP
 .TP 9
 .B \-\-eeout
-When writing FASTQ file output, include the number of expected errors
-in the sequence header. Used with \-\-fastq_filter.
+When using \-\-fastq_filter, and when writing FASTQ file output,
+include the number of expected errors in the sequence header.
 .TP
 .BI \-\-eetabbedout \0filename
 When specified with the \-\-fastq_mergepairs command, write statistics
@@ -780,6 +806,23 @@ specified with the \-\-fastqout option.
 When writing FASTQ file output, include the number of expected errors
 in the sequence header. Used with \-\-fastq_mergepairs.
 .TP
+.BI \-\-fastq_eestats \0filename
+Analyse a FASTQ file and report statistics on the sequence lengths,
+distribution of quality scores, error probabilities and expected
+accumulated errors. The output is a file of tab-separated values with
+one line for each position. The values included are the 1-based
+position, number of sequences that includes the position, percentage
+of sequences that include the position, followed by columns that
+includes information about the distribution of quality scores in each
+position, error probabilities in each position, and finally the
+expected number of accumulated errors from the beginning of the
+sequence and until the current position.  For each of these
+distributions, the following statistics are included: minimum value,
+lower quartile, median, mean, upper quartile, and maximum value. The
+type of FASTQ file may be specified with \-\-fastq_ascii
+\-\-fastq_qmin and \-\-fastq_qmax. The output is written to the output
+file specified with the \-\-output option.
+.TP
 .BI \-\-fastq_filter \0filename
 Shorten and/or filter the sequences in the given FASTQ file and output
 the remaining sequences to the FASTQ file specified with the
@@ -801,8 +844,8 @@ errors in each sequence.
 .TP
 .BI \-\-fastq_maxdiffs\~ "positive integer"
 Specify the maximum number of non-matching nucleotides allowed in the
-overlap region with the \-\-fastq_mergepairs command. By default there
-is no limit.
+overlap region with the \-\-fastq_mergepairs command. The default
+limit is 5.
 .TP
 .BI \-\-fastq_maxee\~ real
 With the \-\-fastq_filter and \-\-fastq_mergepairs commands, discard
@@ -821,32 +864,30 @@ With the \-\-fastq_filter and \-\-fastq_mergepairs commands, discard
 sequences with more than the specified number of N's.
 .TP
 .BI \-\-fastq_mergepairs\0 filename
-Merge paired-end sequence reads into one sequence using a method
-similar to the PEAR algorithm (Zhang, Kobert, Flouri & Stamatakis,
-2014), except that base frequencies are not empirically estimated. The
-algorithm employs a statistical test to identify merged reads that
-have a significantly good alignment score. The forward reads are
-specified as the argument to this option and the reverse reads are
-specified with the \-\-reverse option. The merged sequences are output
-to the file(s) specified with the \-\-fastaout or \-\-fastqout
-options. The non-merged reads can be output to the files specified
-with the \-\-fastaout_notmerged_fwd, \-\-fastaout_notmerged_rev,
-\-\-fastqout_notmerged_fwd and \-\-fastqout_notmerged_rev
-options. Statistics may be output to the file specified with the
-\-\-eetabbedout option. Sequences will be truncated as specified with
-the \-\-fastq_truncqual option to remove low-quality bases in the 3'
-end. Sequences shorter than specified with \-\-fastq_minlen (after
-truncation) will be discarded (1 by default). Sequences with too many
-ambiguous bases (N's), as specified with the \-\-fastq_maxns will also
-be discarded (no limit by default). Staggered reads will not be merged
-unless the \-\-fastq_allowmergestagger option is specified. The
-minimum length of the overlap region between the reads may be specfied
-with the \-\-minovlen option (default 1), and the overlap region may
-not include more mismatches than specified with the \-\-maxdiffs
-option (no limit by default), otherwise the read pair will be
-discarded. The mimimum and maximum length of the merged sequence may
-be specified with the \-\-fastq_minmergelen and \-\-fastq_maxmergelen
-options, respectively. Other relevant options are: \-\-fastq_ascii,
+Merge paired-end sequence reads into one sequence. The method has some
+similarities to the PEAR algorithm (Zhang, Kobert, Flouri &
+Stamatakis, 2014). The forward reads are specified as the argument to
+this option and the reverse reads are specified with the \-\-reverse
+option. The merged sequences are output to the file(s) specified with
+the \-\-fastaout or \-\-fastqout options. The non-merged reads can be
+output to the files specified with the \-\-fastaout_notmerged_fwd,
+\-\-fastaout_notmerged_rev, \-\-fastqout_notmerged_fwd and
+\-\-fastqout_notmerged_rev options. Statistics may be output to the
+file specified with the \-\-eetabbedout option. Sequences will be
+truncated as specified with the \-\-fastq_truncqual option to remove
+low-quality bases in the 3' end. Sequences shorter than specified with
+\-\-fastq_minlen (after truncation) will be discarded (1 by
+default). Sequences with too many ambiguous bases (N's), as specified
+with the \-\-fastq_maxns will also be discarded (no limit by
+default). Staggered reads will not be merged unless the
+\-\-fastq_allowmergestagger option is specified. The minimum length of
+the overlap region between the reads may be specified with the
+\-\-minovlen option (default 10), and the overlap region may not
+include more mismatches than specified with the \-\-maxdiffs option
+(5 by default), otherwise the read pair will be discarded. The
+mimimum and maximum length of the merged sequence may be specified
+with the \-\-fastq_minmergelen and \-\-fastq_maxmergelen options,
+respectively. Other relevant options are: \-\-fastq_ascii,
 \-\-fastq_maxee, \-\-fastq_nostagger, \-\-fastq_qmax, \-\-fastq_qmin,
 and \-\-label_suffix.
 .TP
@@ -860,12 +901,12 @@ Specifity the minimum length of the merged sequence with the
 .TP
 .BI \-\-fastq_minovlen\~ "positive integer"
 Specifify the minimum overlap between the merged reads with the
-\-\-fastq_mergepairs command. The default is 1.
+\-\-fastq_mergepairs command. The default is 10.
 .TP
 .B \-\-fastq_nostagger
 Disallow the \-\-fastq_mergepairs command to merge staggered read
-pairs. This is the default. See the \-\-fastq_allowmergestagger option
-for details.
+pairs. This is the default, so this option is ignored. See the
+\-\-fastq_allowmergestagger option for details.
 .TP
 .BI \-\-fastq_qmax\~ "positive integer"
 Specify the maximum quality score accepted when reading FASTQ
@@ -986,7 +1027,7 @@ The argument to the \-\-qmask and \-\-dbmask option may be none, soft
 or dust. If the argument is none, the no masking is performed. If the
 argument is soft the lower case symbols will be masked. Finally, if
 the argument is dust, the sequence will be masked using the DUST
-algorith by Tatusov and Lipman to mask low-complexity regions.
+algorithm by Tatusov and Lipman to mask low-complexity regions.
 
 If the \-\-hardmask option is specified, all masked regions will be
 converted to N's, otherwise masked regions will be indicated by lower
@@ -2369,7 +2410,8 @@ Fixed bug in aligned sequences produced with \-\-fastapairs and
 .TP
 .BR v1.9.7\~ "released January 12th, 2016"
 Masking behavior is changed somewhat to keep the letter case of the
-input sequences unchanged when no masking is performed. Masking is now performed also during chimera detection. Documentation updated.
+input sequences unchanged when no masking is performed. Masking is now
+performed also during chimera detection. Documentation updated.
 .TP
 .BR v1.9.8\~ "released January 22nd, 2016"
 Fixed bug causing segfault when chimera detection is performed on
@@ -2381,6 +2423,19 @@ improved performance.
 .TP
 .BR v1.9.10\~ "released January 25nd, 2016"
 Fixed bug related to masking and lower case database sequences.
+.TP
+.BR v1.10.0\~ "released February 11th, 2016"
+Parallelized and improved merging of paired-end reads and adjusted
+some defaults. Removed progress indicator when stderr is not a
+terminal. Added \-\-fasta_score option to report chimera scores in
+FASTA files. Added rereplicate and fastq_eestats commands. Fixed
+typos. Added relabelling to files produced with \-\-consout and
+\-\-profile options.
+.TP
+.BR v1.10.1\~ "released February 23, 2016"
+Fixed a bug affecting the fastq_mergepairs command causing FASTQ
+headers to be truncated at first space. Full headers are now included
+in the output (no matter if --notrunclabels is in effect or not).
 .RE
 .LP
 .\" ============================================================================
diff --git a/src/Makefile.am b/src/Makefile.am
index 4170600..402a911 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -22,6 +22,7 @@ dbhash.h \
 dbindex.h \
 derep.h \
 dynlibs.h \
+eestats.h \
 fasta.h \
 fastq.h \
 fastqops.h \
@@ -33,7 +34,7 @@ md5.h \
 mergepairs.h \
 minheap.h \
 msa.h \
-pvalue.h \
+rerep.h \
 results.h \
 search.h \
 searchcore.h \
@@ -77,6 +78,7 @@ dbhash.cc \
 dbindex.cc \
 derep.cc \
 dynlibs.cc \
+eestats.cc \
 fasta.cc \
 fastq.cc \
 fastqops.cc \
@@ -88,6 +90,7 @@ md5.c \
 mergepairs.cc \
 minheap.cc \
 msa.cc \
+rerep.cc \
 results.cc \
 search.cc \
 searchcore.cc \
diff --git a/src/Makefile.in b/src/Makefile.in
index 3e43e33..2764a35 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -127,13 +127,14 @@ am___top_builddir__bin_vsearch_OBJECTS = $(am__objects_1) \
 	allpairs.$(OBJEXT) arch.$(OBJEXT) bitmap.$(OBJEXT) \
 	chimera.$(OBJEXT) cluster.$(OBJEXT) db.$(OBJEXT) \
 	dbhash.$(OBJEXT) dbindex.$(OBJEXT) derep.$(OBJEXT) \
-	dynlibs.$(OBJEXT) fasta.$(OBJEXT) fastq.$(OBJEXT) \
-	fastqops.$(OBJEXT) fastx.$(OBJEXT) linmemalign.$(OBJEXT) \
-	maps.$(OBJEXT) mask.$(OBJEXT) md5.$(OBJEXT) \
-	mergepairs.$(OBJEXT) minheap.$(OBJEXT) msa.$(OBJEXT) \
-	results.$(OBJEXT) search.$(OBJEXT) searchcore.$(OBJEXT) \
-	searchexact.$(OBJEXT) sha1.$(OBJEXT) showalign.$(OBJEXT) \
-	shuffle.$(OBJEXT) sortbylength.$(OBJEXT) sortbysize.$(OBJEXT) \
+	dynlibs.$(OBJEXT) eestats.$(OBJEXT) fasta.$(OBJEXT) \
+	fastq.$(OBJEXT) fastqops.$(OBJEXT) fastx.$(OBJEXT) \
+	linmemalign.$(OBJEXT) maps.$(OBJEXT) mask.$(OBJEXT) \
+	md5.$(OBJEXT) mergepairs.$(OBJEXT) minheap.$(OBJEXT) \
+	msa.$(OBJEXT) rerep.$(OBJEXT) results.$(OBJEXT) \
+	search.$(OBJEXT) searchcore.$(OBJEXT) searchexact.$(OBJEXT) \
+	sha1.$(OBJEXT) showalign.$(OBJEXT) shuffle.$(OBJEXT) \
+	sortbylength.$(OBJEXT) sortbysize.$(OBJEXT) \
 	subsample.$(OBJEXT) unique.$(OBJEXT) userfields.$(OBJEXT) \
 	util.$(OBJEXT) vsearch.$(OBJEXT)
 __top_builddir__bin_vsearch_OBJECTS =  \
@@ -333,6 +334,7 @@ dbhash.h \
 dbindex.h \
 derep.h \
 dynlibs.h \
+eestats.h \
 fasta.h \
 fastq.h \
 fastqops.h \
@@ -344,7 +346,7 @@ md5.h \
 mergepairs.h \
 minheap.h \
 msa.h \
-pvalue.h \
+rerep.h \
 results.h \
 search.h \
 searchcore.h \
@@ -383,6 +385,7 @@ dbhash.cc \
 dbindex.cc \
 derep.cc \
 dynlibs.cc \
+eestats.cc \
 fasta.cc \
 fastq.cc \
 fastqops.cc \
@@ -394,6 +397,7 @@ md5.c \
 mergepairs.cc \
 minheap.cc \
 msa.cc \
+rerep.cc \
 results.cc \
 search.cc \
 searchcore.cc \
@@ -529,6 +533,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/dbindex.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/derep.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/dynlibs.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/eestats.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/fasta.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/fastq.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/fastqops.Po at am__quote@
@@ -543,6 +548,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mergepairs.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/minheap.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/msa.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rerep.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/results.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/search.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/searchcore.Po at am__quote@
diff --git a/src/chimera.cc b/src/chimera.cc
index e3b7aa9..a01fd50 100644
--- a/src/chimera.cc
+++ b/src/chimera.cc
@@ -88,6 +88,12 @@ static unsigned int seqno = 0;
 static unsigned long progress = 0;
 static int chimera_count = 0;
 static int nonchimera_count = 0;
+static int borderline_count = 0;
+static int total_count = 0;
+static long chimera_abundance = 0;
+static long nonchimera_abundance = 0;
+static long borderline_abundance = 0;
+static long total_abundance = 0;
 static FILE * fp_chimeras = 0;
 static FILE * fp_nonchimeras = 0;
 static FILE * fp_uchimealns = 0;
@@ -144,6 +150,7 @@ struct chimera_info_s
   char * ignore;
 
   struct hit * all_hits;
+  double best_h;
 };
 
 static struct chimera_info_s * cia;
@@ -668,6 +675,8 @@ int eval_parents(struct chimera_info_s * ci)
       }
   }
 
+  ci->best_h = best_h > 0 ? best_h : 0.0;
+
   if (best_h >= 0.0)
     {
       status = 2;
@@ -1076,6 +1085,45 @@ void chimera_thread_exit(struct chimera_info_s * ci)
     free(ci->query_head);
 }
 
+void fasta_print_with_score(FILE * fp,
+                            char * head,
+                            char * seq,
+                            int len,
+                            const char * score_name,
+                            double score)
+{
+  int alloc = strlen(head) + strlen(score_name) + log10(MAX(score,1)) + 16;
+  //  printf("alloc: %d\n", alloc);
+  char * newheader = (char*) xmalloc(alloc);
+  if (head[strlen(head)-1] == ';')
+    snprintf(newheader, alloc, "%s%s=%.4lf;", head, score_name, score);
+  else
+    snprintf(newheader, alloc, "%s%s=%.4lf;", head, score_name, score);
+  fasta_print(fp, newheader, seq, len);
+  free(newheader);
+}
+
+void fasta_print_relabel_with_score(FILE * fp,
+                                    char * seq,
+                                    int len,
+                                    char * header,
+                                    int head_len,
+                                    int abundance,
+                                    int ordinal,
+                                    const char * score_name,
+                                    double score)
+{
+  int alloc = head_len + strlen(score_name) + log10(MAX(score,1)) + 16;
+  //printf("head_len: %d   alloc: %d\n", head_len, alloc);
+  char * newheader = (char*) xmalloc(alloc);
+  if (header[head_len-1] == ';')
+    snprintf(newheader, alloc, "%s%s=%.4lf;", header, score_name, score);
+  else
+    snprintf(newheader, alloc, "%s%s=%.4lf;", header, score_name, score);
+  fasta_print_relabel(fp, seq, len, newheader, strlen(newheader), abundance, ordinal);
+  free(newheader);
+}
+
 unsigned long chimera_thread_core(struct chimera_info_s * ci)
 {
   chimera_thread_init(ci);
@@ -1275,33 +1323,56 @@ unsigned long chimera_thread_core(struct chimera_info_s * ci)
 
       pthread_mutex_lock(&mutex_output);
 
+      total_count++;
+      total_abundance += ci->query_size;
+      
       if (status == 4)
         {
           chimera_count++;
+          chimera_abundance += ci->query_size;
 
           if (opt_chimeras)
             {
-              fasta_print(fp_chimeras,
-                          ci->query_head,
-                          ci->query_seq,
-                          ci->query_len);
+              if (opt_fasta_score)
+                fasta_print_with_score(fp_chimeras,
+                                       ci->query_head,
+                                       ci->query_seq,
+                                       ci->query_len,
+                                       opt_uchime_ref ? "uchime_ref" : "uchime_denovo",
+                                       ci->best_h);
+              else
+                fasta_print(fp_chimeras,
+                            ci->query_head,
+                            ci->query_seq,
+                            ci->query_len);
             }
         }
       
       if (status == 3)
         {
+          borderline_count++;
+          borderline_abundance += ci->query_size;
           if (opt_borderline)
             {
-              fasta_print(fp_borderline,
-                          ci->query_head,
-                          ci->query_seq,
-                          ci->query_len);
+              if (opt_fasta_score)
+                fasta_print_with_score(fp_borderline,
+                                       ci->query_head,
+                                       ci->query_seq,
+                                       ci->query_len,
+                                       opt_uchime_ref ? "uchime_ref" : "uchime_denovo",
+                                       ci->best_h);
+              else
+                fasta_print(fp_borderline,
+                            ci->query_head,
+                            ci->query_seq,
+                            ci->query_len);
             }
         }
 
       if (status < 3)
         {
           nonchimera_count++;
+          nonchimera_abundance += ci->query_size;
 
           /* output no parents, no chimeras */
           if ((status < 2) && opt_uchimeout)
@@ -1324,13 +1395,25 @@ unsigned long chimera_thread_core(struct chimera_info_s * ci)
 
           if (opt_nonchimeras)
             {
-              fasta_print_relabel(fp_nonchimeras,
-                                  ci->query_seq,
-                                  ci->query_len,
-                                  ci->query_head,
-                                  ci->query_head_len,
-                                  ci->query_size,
-                                  nonchimera_count);
+              if (opt_fasta_score)
+                fasta_print_relabel_with_score(fp_nonchimeras,
+                                               ci->query_seq,
+                                               ci->query_len,
+                                               ci->query_head,
+                                               ci->query_head_len,
+                                               ci->query_size,
+                                               nonchimera_count,
+                                               opt_uchime_ref ?
+                                               "uchime_ref" : "uchime_denovo",
+                                               ci->best_h);
+              else
+                fasta_print_relabel(fp_nonchimeras,
+                                    ci->query_seq,
+                                    ci->query_len,
+                                    ci->query_head,
+                                    ci->query_head_len,
+                                    ci->query_size,
+                                    nonchimera_count);
             }
         }
       
@@ -1498,14 +1581,24 @@ void chimera()
   if (!opt_quiet)
     fprintf(stderr,
             "Found %d (%.1f%%) chimeras, %d (%.1f%%) non-chimeras,\n"
-            "and %d (%.1f%%) suspicious candidates in %u sequences.\n",
+            "and %d (%.1f%%) borderline sequences in %u unique sequences.\n"
+            "Taking abundance information into account, this corresponds to\n"
+            "%ld (%.1f%%) chimeras, %ld (%.1f%%) non-chimeras,\n"
+            "and %ld (%.1f%%) borderline sequences in %ld total sequences.\n",
             chimera_count,
-            100.0 * chimera_count / seqno,
+            100.0 * chimera_count / total_count,
             nonchimera_count,
-            100.0 * nonchimera_count / seqno,
-            (seqno - chimera_count - nonchimera_count),
-            100.0 * (seqno - chimera_count - nonchimera_count) / seqno,
-            seqno);
+            100.0 * nonchimera_count / total_count,
+            borderline_count,
+            100.0 * borderline_count / total_count,
+            total_count,
+            chimera_abundance,
+            100.0 * chimera_abundance / total_abundance,
+            nonchimera_abundance,
+            100.0 * nonchimera_abundance / total_abundance,
+            borderline_abundance,
+            100.0 * borderline_abundance / total_abundance,
+            total_abundance);
 
   if (opt_log)
     {
diff --git a/src/eestats.cc b/src/eestats.cc
new file mode 100644
index 0000000..ff2aad4
--- /dev/null
+++ b/src/eestats.cc
@@ -0,0 +1,337 @@
+/*
+
+  VSEARCH: a versatile open source tool for metagenomics
+
+  Copyright (C) 2014-2015, Torbjorn Rognes, Frederic Mahe and Tomas Flouri
+  All rights reserved.
+
+  Contact: Torbjorn Rognes <torognes at ifi.uio.no>,
+  Department of Informatics, University of Oslo,
+  PO Box 1080 Blindern, NO-0316 Oslo, Norway
+
+  This software is dual-licensed and available under a choice
+  of one of two licenses, either under the terms of the GNU
+  General Public License version 3 or the BSD 2-Clause License.
+
+
+  GNU General Public License version 3
+
+  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
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+
+  The BSD 2-Clause License
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+  1. Redistributions of source code must retain the above copyright
+  notice, this list of conditions and the following disclaimer.
+
+  2. 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.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+*/
+
+#include "vsearch.h"
+
+double q2p(int q)
+{
+  return exp10(- q / 10.0);
+}
+
+long ee_start(int pos, int resolution)
+{
+  return pos * (resolution * (pos + 1) + 2) / 2;
+}
+
+void fastq_eestats()
+{
+  fastq_handle h = fastq_open(opt_fastq_eestats);
+
+  unsigned long filesize = fastq_get_size(h);
+
+  FILE * fp_output = 0;
+
+  if (opt_output)
+    {
+      fp_output = fopen(opt_output, "w");
+      if (!fp_output)
+        fatal("Unable to open output file for writing");
+    }
+
+  progress_init("Reading fastq file", filesize);
+
+  unsigned long seq_count = 0;
+  unsigned long symbols = 0;
+  
+  long len_alloc = 10;
+
+  const int resolution = 1000;
+  int max_quality = opt_fastq_qmax - opt_fastq_qmin + 1;
+  
+  long ee_size = ee_start(len_alloc, resolution);
+  
+  int * read_length_table = (int*) xmalloc(sizeof(int) * len_alloc);
+  memset(read_length_table, 0, sizeof(int) * len_alloc);
+  
+  int * qual_length_table = (int*) xmalloc(sizeof(int) * len_alloc *
+                                           (max_quality+1));
+  memset(qual_length_table, 0, sizeof(int) * len_alloc * (max_quality+1));
+  
+  int * ee_length_table = (int*) xmalloc(sizeof(int) * ee_size);
+  memset(ee_length_table, 0, sizeof(int) * ee_size);
+
+  double * sum_ee_length_table = (double*) xmalloc(sizeof(double) * len_alloc);
+  memset(sum_ee_length_table, 0, sizeof(double) * len_alloc);
+  
+  double * sum_pe_length_table = (double*) xmalloc(sizeof(double) * len_alloc);
+  memset(sum_pe_length_table, 0, sizeof(double) * len_alloc);
+  
+  long len_min = LONG_MAX;
+  long len_max = 0;
+
+  while(fastq_next(h, 0, chrmap_upcase))
+    {
+      seq_count++;
+
+      long len = fastq_get_sequence_length(h);
+      char * q = fastq_get_quality(h);
+
+      /* update length statistics */
+
+      long new_alloc = len + 1;
+
+      if (new_alloc > len_alloc)
+        {
+          long new_ee_size = ee_start(new_alloc, resolution);
+
+          read_length_table = (int*) xrealloc(read_length_table,
+                                              sizeof(int) * new_alloc);
+          memset(read_length_table + len_alloc, 0, 
+                 sizeof(int) * (new_alloc - len_alloc));
+          
+          qual_length_table = (int*) xrealloc(qual_length_table, sizeof(int) *
+                                              new_alloc * (max_quality+1));
+          memset(qual_length_table + (max_quality+1) * len_alloc, 0, 
+                 sizeof(int) * (new_alloc - len_alloc) * (max_quality+1));
+          
+          ee_length_table = (int*) xrealloc(ee_length_table, sizeof(int) * 
+                                            new_ee_size);
+          memset(ee_length_table + ee_size, 0,
+                 sizeof(int) * (new_ee_size - ee_size));
+          
+          sum_ee_length_table = (double*) xrealloc(sum_ee_length_table,
+                                              sizeof(double) * new_alloc);
+          memset(sum_ee_length_table + len_alloc, 0, 
+                 sizeof(double) * (new_alloc - len_alloc));
+
+          sum_pe_length_table = (double*) xrealloc(sum_pe_length_table,
+                                              sizeof(double) * new_alloc);
+          memset(sum_pe_length_table + len_alloc, 0, 
+                 sizeof(double) * (new_alloc - len_alloc));
+
+          len_alloc = new_alloc;
+          ee_size = new_ee_size;
+        }
+
+      if (len < len_min)
+        len_min = len;
+      if (len > len_max)
+        len_max = len;
+      
+      /* update quality statistics */
+      
+      symbols += len;
+
+      double ee = 0.0;
+
+      for(long i=0; i < len; i++)
+        {
+          read_length_table[i]++;
+
+          /* quality score */
+
+          int qual = q[i] - opt_fastq_ascii;
+          
+          char msg[200];
+
+          if (qual < opt_fastq_qmin)
+            {
+              snprintf(msg, 200, "FASTQ quality value (%d) below qmin (%ld)",
+                       qual, opt_fastq_qmin);
+              fatal(msg);
+            }
+          else if (qual > opt_fastq_qmax)
+            {
+              snprintf(msg, 200, "FASTQ quality value (%d) above qmax (%ld)",
+                       qual, opt_fastq_qmax);
+              fatal(msg);
+            }
+
+          if (qual < 0)
+            qual = 0;
+
+          qual_length_table[(max_quality+1)*i + qual]++;
+
+
+          /* Pe */
+
+          double pe = q2p(qual);
+          sum_pe_length_table[i] += pe;
+
+
+          /* expected number of errors */
+
+          ee += pe;
+
+          int e_int = MIN(resolution*(i+1), (int)(resolution * ee));
+          ee_length_table[ee_start(i, resolution) + e_int]++;
+
+          sum_ee_length_table[i] += ee;
+        }
+      progress_update(fastq_get_position(h));
+    }
+  progress_done();
+
+  fprintf(fp_output,
+          "Pos\tRecs\tPctRecs\t"
+          "Min_Q\tLow_Q\tMed_Q\tMean_Q\tHi_Q\tMax_Q\t"
+          "Min_Pe\tLow_Pe\tMed_Pe\tMean_Pe\tHi_Pe\tMax_Pe\t"
+          "Min_EE\tLow_EE\tMed_EE\tMean_EE\tHi_EE\tMax_EE\n");
+
+  for(long i=0; i<len_max; i++)
+    {
+      long reads = read_length_table[i];
+      double pctrecs = 100.0 * reads / seq_count;
+      
+      double min_q = -1.0;
+      double low_q = -1.0;
+      double med_q = -1.0;
+      double hi_q  = -1.0;
+      double max_q = -1.0;
+
+      double qsum = 0;
+      double n = 0;
+      for(int q=0; q<=max_quality; q++)
+        {
+          double x = qual_length_table[(max_quality+1)*i+q];
+          qsum += q * x;
+          n += x;
+          
+          if ((min_q<0) && (x > 0))
+            min_q = q;
+
+          if ((low_q<0) && (n >= 0.25 * reads))
+            low_q = q;
+
+          if ((med_q<0) && (n >= 0.50 * reads))
+            med_q = q;
+
+          if ((hi_q<0)  && (n >= 0.75 * reads))
+            hi_q = q;
+
+          if (x > 0)
+            max_q = q;
+        }
+
+      double mean_q = 1.0 * qsum / reads;
+
+
+      /* pe */
+
+      double min_pe = q2p(max_q);
+      double low_pe = q2p(hi_q);
+      double med_pe = q2p(med_q);
+      double hi_pe = q2p(low_q);
+      double max_pe = q2p(min_q);
+      double mean_pe = sum_pe_length_table[i] / reads;
+
+
+      /* expected errors */
+
+      double min_ee = -1.0;
+      double low_ee = -1.0;
+      double med_ee = -1.0;
+      double hi_ee  = -1.0;
+      double max_ee = -1.0;
+
+      long ee_offset = ee_start(i, resolution);
+      long max_errors = resolution * (i+1);
+
+      n = 0;
+      for(int e=0; e<=max_errors; e++)
+        {
+          int x = ee_length_table[ee_offset + e];
+          n += x;
+
+          if ((min_ee<0) && (x > 0))
+            min_ee = e;
+
+          if ((low_ee<0) && (n >= 0.25 * reads))
+            low_ee = e;
+          
+          if ((med_ee<0) && (n >= 0.50 * reads))
+            med_ee = e;
+          
+          if ((hi_ee<0)  && (n >= 0.75 * reads))
+            hi_ee = e;
+
+          if (x > 0)
+            max_ee = e;
+        }
+
+      double mean_ee = sum_ee_length_table[i] / reads;
+
+      min_ee  = (min_ee  + 0.5) / resolution;
+      low_ee  = (low_ee  + 0.5) / resolution;
+      med_ee  = (med_ee  + 0.5) / resolution;
+      hi_ee   = (hi_ee   + 0.5) / resolution;
+      max_ee  = (max_ee  + 0.5) / resolution;
+
+      fprintf(fp_output,
+              "%ld\t%ld\t%.1lf"
+              "\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf"
+              "\t%.2lg\t%.2lg\t%.2lg\t%.2lg\t%.2lg\t%.2lg"
+              "\t%.2lf\t%.2lf\t%.2lf\t%.2lf\t%.2lf\t%.2lf\n",
+              i+1, reads, pctrecs,
+              min_q,  low_q,  med_q,  mean_q,  hi_q,  max_q,
+              min_pe, low_pe, med_pe, mean_pe, hi_pe, max_pe,
+              min_ee, low_ee, med_ee, mean_ee, hi_ee, max_ee);
+    }
+  
+  free(read_length_table);
+  free(qual_length_table);
+  free(ee_length_table);
+  free(sum_ee_length_table);
+  free(sum_pe_length_table);
+
+  fclose(fp_output);
+
+  fastq_close(h);
+}
diff --git a/src/fasta.h b/src/eestats.h
similarity index 53%
copy from src/fasta.h
copy to src/eestats.h
index df5c4c7..105f7f8 100644
--- a/src/fasta.h
+++ b/src/eestats.h
@@ -58,87 +58,4 @@
 
 */
 
-struct fasta_buffer_s
-{
-  char * data;
-  unsigned long length;
-  unsigned long alloc;
-  unsigned long position;
-};
-
-struct fasta_s
-{
-  FILE * fp;
-
-#ifdef HAVE_ZLIB_H
-  gzFile fp_gz;
-#endif
-
-#ifdef HAVE_BZLIB_H
-  BZFILE * fp_bz;
-#endif
-
-  struct fasta_buffer_s file_buffer;
-  struct fasta_buffer_s header_buffer;
-  struct fasta_buffer_s sequence_buffer;
-
-  unsigned long file_size;
-  unsigned long file_position;
-
-  unsigned long lineno;
-  unsigned long lineno_start;
-  long seqno;
-
-  unsigned long stripped_all;
-  unsigned long stripped[256];
-
-  int format;
-};
-
-typedef struct fasta_s * fasta_handle;
-
-/* fasta input */
-
-fasta_handle fasta_open(const char * filename);
-void fasta_close(fasta_handle h);
-bool fasta_next(fasta_handle h,
-                bool truncateatspace,
-                char * char_mapping);
-unsigned long fasta_get_position(fasta_handle h);
-unsigned long fasta_get_size(fasta_handle h);
-unsigned long fasta_get_lineno(fasta_handle h);
-unsigned long fasta_get_seqno(fasta_handle h);
-char * fasta_get_header(fasta_handle h);
-char * fasta_get_sequence(fasta_handle h);
-unsigned long fasta_get_header_length(fasta_handle h);
-unsigned long fasta_get_sequence_length(fasta_handle h);
-long fasta_get_abundance(fasta_handle h);
-
-/* fasta output */
-
-void fasta_print_header(FILE * fp, const char * hdr);
-
-void fasta_print_sequence(FILE * fp, char * seq,
-                          unsigned long len, int width);
-
-void fasta_print(FILE * fp, const char * hdr,
-                 char * seq, unsigned long len);
-
-void fasta_print_relabel(FILE * fp,
-                         char * seq,
-                         int len,
-                         char * header,
-                         int header_len,
-                         int abundance,
-                         int ordinal);
-
-void fasta_print_db(FILE * fp, unsigned long seqno);
-
-void fasta_print_db_sequence(FILE * fp, unsigned long seqno);
-
-void fasta_print_db_size(FILE * fp, unsigned long seqno,
-                         unsigned long size);
-
-void fasta_print_db_strip_size(FILE * fp, unsigned long seqno);
-
-void fasta_print_db_relabel(FILE * fp, unsigned long seqno, int ordinal);
+void fastq_eestats();
diff --git a/src/fasta.cc b/src/fasta.cc
index 75d37d8..09af9c0 100644
--- a/src/fasta.cc
+++ b/src/fasta.cc
@@ -594,15 +594,22 @@ void fasta_print(FILE * fp, const char * hdr,
 }
 
 
-void fasta_print_relabel(FILE * fp,
-                         char * seq,
-                         int len,
-                         char * header,
-                         int header_len,
-                         int abundance,
-                         int ordinal)
+void fasta_print_relabel_cluster(FILE * fp,
+                                 char * seq,
+                                 int len,
+                                 char * header,
+                                 int header_len,
+                                 int abundance,
+                                 int ordinal,
+                                 int clustersize,
+                                 bool showclusterid,
+                                 int clusterid)
 {
   fprintf(fp, ">");
+
+  if (clustersize > 0)
+    fprintf(fp, "centroid=");
+
   if (opt_relabel || opt_relabel_sha1 || opt_relabel_md5)
     {
       if (opt_relabel_sha1)
@@ -611,35 +618,52 @@ void fasta_print_relabel(FILE * fp,
         fprint_seq_digest_md5(fp, seq, len);
       else
         fprintf(fp, "%s%d", opt_relabel, ordinal);
-
-      if (opt_sizeout)
-        fprintf(fp, ";size=%u;", abundance);
-
-      if (opt_relabel_keep)
-        fprintf(fp, " %s", header);
-    }
-  else if (opt_sizeout)
-    {
-      abundance_fprint_header_with_size(global_abundance,
-                                        fp,
-                                        header,
-                                        header_len,
-                                        abundance);
-    }
-  else if (opt_xsize)
-    {
-      abundance_fprint_header_strip_size(global_abundance,
-                                         fp,
-                                         header,
-                                         header_len);
     }
   else
     {
-      fprintf(fp, "%s", header);
+      if (opt_sizeout || opt_xsize)
+        abundance_fprint_header_strip_size(global_abundance,
+                                           fp,
+                                           header,
+                                           header_len);
+      else
+        fprintf(fp, "%s", header);
     }
+
+  if ((clustersize > 0) || opt_sizeout || showclusterid)
+    fprintf(fp, ";");
+
+  if (clustersize > 0)
+    fprintf(fp, "seqs=%d;", clustersize);
+
+  if (opt_sizeout)
+    fprintf(fp, "size=%u;", abundance);
+
+  if (showclusterid)
+    fprintf(fp, "clusterid=%d;", clusterid);
+
+  if (opt_relabel_keep &&
+      ((opt_relabel || opt_relabel_sha1 || opt_relabel_md5)))
+    fprintf(fp, " %s", header);
+
   fprintf(fp, "\n");
 
-  fasta_print_sequence(fp, seq, len, opt_fasta_width);
+  if (seq)
+    fasta_print_sequence(fp, seq, len, opt_fasta_width);
+}
+
+
+void fasta_print_relabel(FILE * fp,
+                         char * seq,
+                         int len,
+                         char * header,
+                         int header_len,
+                         int abundance,
+                         int ordinal)
+{
+  fasta_print_relabel_cluster(fp, seq, len, header, header_len,
+                              abundance, ordinal,
+                              0, 0, 0);
 }
 
 void fasta_print_db_relabel(FILE * fp,
diff --git a/src/fasta.h b/src/fasta.h
index df5c4c7..bf3edf8 100644
--- a/src/fasta.h
+++ b/src/fasta.h
@@ -124,6 +124,17 @@ void fasta_print_sequence(FILE * fp, char * seq,
 void fasta_print(FILE * fp, const char * hdr,
                  char * seq, unsigned long len);
 
+void fasta_print_relabel_cluster(FILE * fp,
+                                 char * seq,
+                                 int len,
+                                 char * header,
+                                 int header_len,
+                                 int abundance,
+                                 int ordinal,
+                                 int clustersize,
+                                 bool showclusterid,
+                                 int clusterid);
+
 void fasta_print_relabel(FILE * fp,
                          char * seq,
                          int len,
diff --git a/src/fastq.cc b/src/fastq.cc
index 164d16e..33a3ad8 100644
--- a/src/fastq.cc
+++ b/src/fastq.cc
@@ -178,11 +178,11 @@ fastq_handle fastq_open(const char * filename)
 
   if (h->format == FORMAT_GZIP)
     {
-      /* GZIP: Keep original file open, then open as bzipped file as well */
+      /* GZIP: Keep original file open, then open as gzipped file as well */
 #ifdef HAVE_ZLIB_H
       if (!gz_lib)
         fatal("Files compressed with gzip are not supported");
-      if (! (h->fp_gz = (*gzdopen_p)(fileno(h->fp), "rb")))
+      if (! (h->fp_gz = (*gzdopen_p)(dup(fileno(h->fp)), "rb")))
         fatal("Unable to open gzip compressed fastq file (%s)", filename);
 #else
       fatal("Files compressed with gzip are not supported");
@@ -256,8 +256,6 @@ void fastq_close(fastq_handle h)
   switch(h->format)
     {
     case FORMAT_PLAIN:
-      fclose(h->fp);
-      h->fp = 0;
       break;
 
     case FORMAT_GZIP:
@@ -277,6 +275,9 @@ void fastq_close(fastq_handle h)
     default:
       fatal("Internal error");
     }
+
+  fclose(h->fp);
+  h->fp = 0;
   
   buffer_free(& h->file_buffer);
   buffer_free(& h->header_buffer);
diff --git a/src/mask.cc b/src/mask.cc
index 9aaaf2f..c6cdc3a 100644
--- a/src/mask.cc
+++ b/src/mask.cc
@@ -189,6 +189,8 @@ void dust_all()
   seqcount = db_getsequencecount();
   progress_init("Masking", seqcount);
 
+  pthread_mutex_init(&mutex, NULL);
+
   pthread_attr_init(&attr);
   pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
 
@@ -206,6 +208,8 @@ void dust_all()
 
   pthread_attr_destroy(&attr);
 
+  pthread_mutex_destroy(&mutex);
+
   progress_done();
 }
 
diff --git a/src/mergepairs.cc b/src/mergepairs.cc
index edba2de..01bfb4f 100644
--- a/src/mergepairs.cc
+++ b/src/mergepairs.cc
@@ -59,21 +59,16 @@
 */
 
 #include "vsearch.h"
-#include "pvalue.h"
-
-/* Use default PEAR scoring method and statistics */
-const int score_method = 2;
-const double pvalue_level = 0.01;
-const double alpha = 1.0;
-const double beta = -1.0;
-
-/* 
-   TODO:
-   - Parallelize with pthreads
-   - Check matching labels of forward and reverse reads (/1 and /2)
-*/
 
-/* static variables, needs lock */
+#define INPUTCHUNKSIZE 10000
+#define SCOREMETHOD 2
+
+/* scores */
+
+const double alpha = 4.0;
+const double beta = -5.0;
+
+/* static variables */
 
 static FILE * fp_fastqout = 0;
 static FILE * fp_fastaout = 0;
@@ -82,10 +77,58 @@ static FILE * fp_fastqout_notmerged_rev = 0;
 static FILE * fp_fastaout_notmerged_fwd = 0;
 static FILE * fp_fastaout_notmerged_rev = 0;
 static FILE * fp_eetabbedout = 0;
-
+static fastq_handle fastq_fwd;
+static fastq_handle fastq_rev;
 static long merged = 0;
 static long notmerged = 0;
 static long total = 0;
+static char * merged_sequence = 0;
+static char * merged_quality = 0;
+static char * merged_header = 0;
+static pthread_t * pthread;
+static pthread_attr_t attr;
+static pthread_mutex_t mutex_input;
+static pthread_mutex_t mutex_progress;
+static pthread_mutex_t mutex_counters;
+static pthread_mutex_t mutex_output;
+static pthread_cond_t cond_output;
+static long output_next;
+static char merge_qual_same[128][128];
+static char merge_qual_diff[128][128];
+static double match_score[128][128];
+static double mism_score[128][128];
+static double q2p[128];
+static double ambig_score;
+
+typedef struct merge_data_s
+{
+  char * fwd_header;
+  char * rev_header;
+  char * fwd_sequence;
+  char * rev_sequence;
+  char * rev_seq_comp;
+  char * fwd_quality;
+  char * rev_quality;
+  long header_alloc;
+  long seq_alloc;
+  long fwd_length;
+  long rev_length;
+  long fwd_trunc;
+  long rev_trunc;
+  long pair_no;
+  char * merged_header;
+  char * merged_sequence;
+  char * merged_quality;
+  long merged_header_alloc;
+  long merged_seq_alloc;
+  double ee_merged;
+  double ee_fwd;
+  double ee_rev;
+  long fwd_errors;
+  long rev_errors;
+  long offset;
+  bool merged;
+} merge_data_t;
 
 FILE * fileopenw(char * filename)
 {
@@ -116,17 +159,7 @@ int get_qual(char q)
   return qual;
 }
 
-static char merge_qual_same[128][128];
-static char merge_qual_diff[128][128];
-static double match_oes[128][128];
-static double match_score[128][128];
-static double mism_oes[128][128];
-static double mism_score[128][128];
-static double q2p[128];
-static double ambig_score;
-static double ambig_oes;
-
-double q_to_p(double q)
+double q_to_p(int q)
 {
   int x = q - opt_fastq_ascii;
   if (x < 2)
@@ -139,20 +172,7 @@ void precompute_qual()
 {
   /* Precompute tables of scores etc */
 
-  ambig_oes = alpha * 0.25 + beta * 0.75;
-
-  switch (score_method)
-    {
-    case 1:
-      ambig_score = alpha * 0.25 + beta * 0.75;
-      break;
-    case 2:
-      ambig_score = beta * 0.75;
-      break;
-    case 3:
-      ambig_score = beta;
-      break;
-    }
+  ambig_score = alpha * 0.25 + beta * 0.75;
 
   for (int x = 33; x < 126; x++)
     {
@@ -163,20 +183,20 @@ void precompute_qual()
         {
           double py = q_to_p(y);
 
-          double p, q, oes, score;
-          
+          double p, q;
+
           /* Quality score equations from Edgar & Flyvbjerg (2015) */
 
           /* Match */
           p = px * py / 3.0 / (1.0 - px - py + 4.0 * px * py / 3.0);
           q = opt_fastq_ascii + MIN(round(-10.0*log10(p)), opt_fastq_qmaxout);
           merge_qual_same[x][y] = q;
-          
+
           /* Mismatch, x is highest quality */
           p = px * (1.0 - py / 3.0) / (px + py - 4.0 * px * py / 3.0);
           q = opt_fastq_ascii + MIN(round(-10.0*log10(p)), opt_fastq_qmaxout);
           merge_qual_diff[x][y] = q;
-          
+
           /* Score weights from PEAR */
 
           /* Match */
@@ -187,23 +207,11 @@ void precompute_qual()
 
           p = 1.0 - px - py + px * py * 4.0 / 3.0;
 
-          oes = alpha * p + beta * (1.0 - p);
-
-          switch (score_method)
-            {
-            case 1:
-              score = alpha * p + beta * (1.0 - p);
-              break;
-            case 2:
-              score = alpha * p;
-              break;
-            case 3:
-              score = alpha;
-              break;
-            }
-          
-          match_oes[x][y] = oes;
-          match_score[x][y] = score;
+#if SCOREMETHOD == 2
+          match_score[x][y] = alpha * p + beta * (1.0 - p);
+#else
+          match_score[x][y] = alpha * p;
+#endif
 
           /* Mismatch */
 
@@ -211,25 +219,14 @@ void precompute_qual()
              given that they look different and have
              error probabilities of px and py, resp. */
 
-          p = 1.0 - px / 3.0 - py / 3.0 + px * py * 4.0 / 9.0;
-          
-          oes = (beta - alpha) * p + alpha;
-          
-          switch (score_method)
-            {
-            case 1:
-              score = alpha * (1.0 - p) + beta * p;
-              break;
-            case 2:
-              score = beta * p;
-              break;
-            case 3:
-              score = beta;
-              break;
-            }
-
-          mism_oes[x][y] = oes;
-          mism_score[x][y] = score;
+          p = 1.0 - (px + py) / 3.0 + px * py * 4.0 / 9.0;
+
+#if SCOREMETHOD == 2
+          mism_score[x][y] = alpha * (1.0 - p) + beta * p;
+#else
+          mism_score[x][y] = beta * p;
+#endif
+
         }
     }
 }
@@ -270,73 +267,106 @@ void merge_sym(char * sym,       char * qual,
     }
 }
 
-static char * merged_sequence = 0;
-static char * merged_quality = 0;
-static char * merged_header = 0;
+void keep(merge_data_t * ip)
+{
+  merged++;
+
+  if (opt_fastqout)
+    {
+      if (opt_fastq_eeout)
+        fastq_print_with_ee(fp_fastqout,
+                            ip->merged_header,
+                            ip->merged_sequence,
+                            ip->merged_quality,
+                            ip->ee_merged);
+      else
+        fastq_print(fp_fastqout,
+                    ip->merged_header,
+                    ip->merged_sequence,
+                    ip->merged_quality);
+    }
+
+  if (opt_fastaout)
+    fasta_print(fp_fastaout,
+                ip->merged_header,
+                ip->merged_sequence,
+                strlen(ip->merged_sequence));
 
-static size_t merged_sequence_alloc = 0;
-static size_t merged_header_alloc = 0;
+  if (opt_eetabbedout)
+    fprintf(fp_eetabbedout, "%.2lf\t%.2lf\t%ld\t%ld\n",
+            ip->ee_fwd, ip->ee_rev, ip->fwd_errors, ip->rev_errors);
+}
 
-void keep(char * fwd_header,   char * rev_header,
-          char * fwd_sequence, char * rev_sequence,
-          char * fwd_quality,  char * rev_quality,
-          long fwd_trunc,      long rev_trunc,
-          long offset)
+void discard(merge_data_t * ip)
 {
-  /* The offset is the distance between the (truncated) 3' ends of the two
-     sequences */
+  notmerged++;
 
-  long rev_3prime_overhang = offset > fwd_trunc ? offset - fwd_trunc : 0;
-  long fwd_5prime_overhang = fwd_trunc > offset ? fwd_trunc - offset : 0;
-  long mergelen = fwd_trunc + rev_trunc - offset;
+  if (opt_fastqout_notmerged_fwd)
+    fastq_print(fp_fastqout_notmerged_fwd,
+                ip->fwd_header,
+                ip->fwd_sequence,
+                ip->fwd_quality);
 
-  if (opt_label_suffix)
-    {
-      size_t need = strlen(fwd_header) + strlen(opt_label_suffix) + 1;
-      if (need > merged_header_alloc)
-        {
-          merged_header_alloc = need;
-          merged_header = (char*)xrealloc(merged_header, merged_header_alloc);
-        }
-    }
-  
-  if ((size_t)(mergelen + 1) > merged_sequence_alloc)
-    {
-      merged_sequence_alloc = mergelen + 1;
-      merged_sequence = (char*)xrealloc(merged_sequence,merged_sequence_alloc);
-      merged_quality  = (char*)xrealloc(merged_quality,merged_sequence_alloc);
-    }
+  if (opt_fastqout_notmerged_rev)
+    fastq_print(fp_fastqout_notmerged_rev,
+                ip->rev_header,
+                ip->rev_sequence,
+                ip->rev_quality);
 
-  char * merged_sequence = (char *) xmalloc(mergelen + 1);
-  char * merged_quality = (char *) xmalloc(mergelen + 1);
+  if (opt_fastaout_notmerged_fwd)
+    fasta_print(fp_fastaout_notmerged_fwd,
+                ip->fwd_header,
+                ip->fwd_sequence,
+                ip->fwd_length);
 
-  double ee = 0.0;
+  if (opt_fastaout_notmerged_rev)
+    fasta_print(fp_fastaout_notmerged_rev,
+                ip->rev_header,
+                ip->rev_sequence,
+                ip->rev_length);
+}
+
+void merge(merge_data_t * ip)
+{
+  /* The offset is the distance between the (truncated) 3' ends of the two
+     sequences */
+
+  long rev_3prime_overhang = ip->offset > ip->fwd_trunc ?
+    ip->offset - ip->fwd_trunc : 0;
+  long fwd_5prime_overhang = ip->fwd_trunc > ip->offset ?
+    ip->fwd_trunc - ip->offset : 0;
+  long mergelen = ip->fwd_trunc + ip->rev_trunc - ip->offset;
+
+  ip->ee_merged = 0.0;
+  ip->ee_fwd = 0.0;
+  ip->ee_rev = 0.0;
 
   long fwd_pos = 0;
-  long rev_pos = rev_trunc - 1 + fwd_5prime_overhang - rev_3prime_overhang;
+  long rev_pos = ip->rev_trunc - 1 +
+    fwd_5prime_overhang - rev_3prime_overhang;
 
-  long fwd_errors = 0;
-  long rev_errors = 0;
+  ip->fwd_errors = 0;
+  ip->rev_errors = 0;
 
   for(long i = 0; i < mergelen; i++)
     {
       bool has_fwd = 0;
-      if ((fwd_pos >= 0) && (fwd_pos < fwd_trunc))
+      if ((fwd_pos >= 0) && (fwd_pos < ip->fwd_trunc))
         has_fwd = 1;
 
       bool has_rev = 0;
-      if ((rev_pos >= 0) && (rev_pos < rev_trunc))
+      if ((rev_pos >= 0) && (rev_pos < ip->rev_trunc))
         has_rev = 1;
 
       char sym;
       char qual;
-      
+
       if (has_fwd && has_rev)
         {
-          char fwd_sym = fwd_sequence[fwd_pos];
-          char rev_sym = chrmap_complement[(int)(rev_sequence[rev_pos])];
-          char fwd_qual = fwd_quality[fwd_pos];
-          char rev_qual = rev_quality[rev_pos];
+          char fwd_sym = ip->fwd_sequence[fwd_pos];
+          char rev_sym = ip->rev_seq_comp[rev_pos];
+          char fwd_qual = ip->fwd_quality[fwd_pos];
+          char rev_qual = ip->rev_quality[rev_pos];
 
           merge_sym(& sym,
                     & qual,
@@ -346,284 +376,420 @@ void keep(char * fwd_header,   char * rev_header,
                     rev_qual);
 
           if (sym != fwd_sym)
-            fwd_errors++;
+            (ip->fwd_errors)++;
           if (sym != rev_sym)
-            rev_errors++;
+            (ip->rev_errors)++;
         }
       else if (has_fwd)
         {
-          sym = fwd_sequence[fwd_pos];
-          qual = fwd_quality[fwd_pos];
+          sym = ip->fwd_sequence[fwd_pos];
+          qual = ip->fwd_quality[fwd_pos];
         }
       else
         {
-          sym = chrmap_complement[(int)(rev_sequence[rev_pos])];
-          qual = rev_quality[rev_pos];
+          sym = ip->rev_seq_comp[rev_pos];
+          qual = ip->rev_quality[rev_pos];
         }
 
-      merged_sequence[i] = sym;
-      merged_quality[i] = qual;
+      ip->merged_sequence[i] = sym;
+      ip->merged_quality[i] = qual;
+      ip->ee_merged += q2p[(unsigned)qual];
 
-      ee += q2p[(unsigned)qual];
+      if (has_fwd)
+        ip->ee_fwd += q2p[(unsigned)(ip->fwd_quality[fwd_pos])];
+      if (has_rev)
+        ip->ee_rev += q2p[(unsigned)(ip->rev_quality[rev_pos])];
 
       fwd_pos++;
       rev_pos--;
     }
 
-  merged_sequence[mergelen] = 0;
-  merged_quality[mergelen] = 0;
+  ip->merged_sequence[mergelen] = 0;
+  ip->merged_quality[mergelen] = 0;
 
-  if (ee <= opt_fastq_maxee)
+  if (ip->ee_merged <= opt_fastq_maxee)
     {
-      merged++;
-
       if (opt_label_suffix)
-        (void) sprintf(merged_header, "%s%s", fwd_header, opt_label_suffix);
-      
-      if (opt_fastqout)
-        {
-          if (opt_fastq_eeout)
-            fastq_print_with_ee(fp_fastqout,
-                                opt_label_suffix ? merged_header : fwd_header,
-                                merged_sequence,
-                                merged_quality,
-                                ee);
-          else
-            fastq_print(fp_fastqout,
-                        opt_label_suffix ? merged_header : fwd_header,
-                        merged_sequence,
-                        merged_quality);
-        }
-
-      if (opt_fastaout)
-        fasta_print(fp_fastaout,
-                    opt_label_suffix ? merged_header : fwd_header,
-                    merged_sequence,
-                    mergelen);
+        (void) sprintf(ip->merged_header, "%s%s",
+                       ip->fwd_header, opt_label_suffix);
+      else
+        strcpy(ip->merged_header, ip->fwd_header);
 
-      if (opt_eetabbedout)
-        {
-          double ee_fwd = 0.0;
-          for(int i=0; i<fwd_trunc; i++)
-            ee_fwd += q2p[(unsigned)fwd_quality[i]];
-          
-          double ee_rev = 0.0;
-          for(int i=0; i<rev_trunc; i++)
-            ee_rev += q2p[(unsigned)rev_quality[rev_trunc-i-1]];
-          
-          fprintf(fp_eetabbedout, "%.2lf\t%.2lf\t%ld\t%ld\n",
-                  ee_fwd, ee_rev, fwd_errors, rev_errors);
-        }
+      ip->merged = 1;
     }
-  else
-    {
-      notmerged++;
-    }
-
-  free(merged_sequence);
-  merged_sequence = 0;
-  free(merged_quality);
-  merged_quality = 0;
 }
 
-void discard(char * fwd_header,   char * rev_header,
-             char * fwd_sequence, char * rev_sequence,
-             char * fwd_quality,  char * rev_quality,
-             long fwd_length,     long rev_length)
-{
-  notmerged++;
-
-  if (opt_fastqout_notmerged_fwd)
-    fastq_print(fp_fastqout_notmerged_fwd,
-                fwd_header,
-                fwd_sequence,
-                fwd_quality);
-
-  if (opt_fastqout_notmerged_rev)
-    fastq_print(fp_fastqout_notmerged_rev,
-                rev_header,
-                rev_sequence,
-                rev_quality);
-
-  if (opt_fastaout_notmerged_fwd)
-    fasta_print(fp_fastaout_notmerged_fwd,
-                fwd_header,
-                fwd_sequence,
-                fwd_length);
-
-  if (opt_fastaout_notmerged_rev)
-    fasta_print(fp_fastaout_notmerged_rev,
-                rev_header,
-                rev_sequence,
-                rev_length);
-}
-
-
-double overlap_score(char * fwd_sequence, char * rev_sequence,
-                     char * fwd_quality,  char * rev_quality,
-                     long fwd_pos_start, long rev_pos_start,
-                     long overlap,
-                     long * pdiffs)
+double overlap_score(merge_data_t * ip,
+                     long fwd_pos_start,
+                     long rev_pos_start,
+                     long overlap)
 {
   long fwd_pos = fwd_pos_start;
   long rev_pos = rev_pos_start;
-  
   double score = 0.0;
   long diffs = 0;
 
   for (long j=0; j < overlap; j++)
     {
-      char fwd_sym = fwd_sequence[fwd_pos];
-      char rev_sym = chrmap_complement[(int)(rev_sequence[rev_pos])];
-      unsigned int fwd_qual = fwd_quality[fwd_pos];
-      unsigned int rev_qual = rev_quality[rev_pos];
+      char fwd_sym = ip->fwd_sequence[fwd_pos];
+      char rev_sym = ip->rev_seq_comp[rev_pos];
+      unsigned int fwd_qual = ip->fwd_quality[fwd_pos];
+      unsigned int rev_qual = ip->rev_quality[rev_pos];
       fwd_pos--;
       rev_pos++;
-      
+
       if (fwd_sym == rev_sym)
-        {
-          score += match_score[fwd_qual][rev_qual];
-        }
+        score += match_score[fwd_qual][rev_qual];
       else
         {
-          diffs++;
           score += mism_score[fwd_qual][rev_qual];
+          diffs++;
+          if (diffs > opt_fastq_maxdiffs)
+            return -1000.0;
         }
     }
-
-  *pdiffs = diffs;
   return score;
 }
 
-double overlap_oes(char * fwd_sequence, char * rev_sequence,
-                   char * fwd_quality,  char * rev_quality,
-                   long fwd_pos_start, long rev_pos_start,
-                   long overlap)
-{
-  long fwd_pos = fwd_pos_start;
-  long rev_pos = rev_pos_start;
-  double oes = 0.0;
-
-  for (long j=0; j < overlap; j++)
-    {
-      char fwd_sym = fwd_sequence[fwd_pos];
-      char rev_sym = chrmap_complement[(int)(rev_sequence[rev_pos])];
-      unsigned int fwd_qual = fwd_quality[fwd_pos];
-      unsigned int rev_qual = rev_quality[rev_pos];
-      fwd_pos--;
-      rev_pos++;
-
-      if (fwd_sym == rev_sym)
-        oes += match_oes[fwd_qual][rev_qual];
-      else
-        oes += mism_oes[fwd_qual][rev_qual];
-    }
-
-  return oes;
-}
-
-long merge(char * fwd_sequence, char * rev_sequence,
-           char * fwd_quality,  char * rev_quality,
-           long fwd_trunc, long rev_trunc)
+long optimize(merge_data_t * ip)
 {
-  long i1 = opt_fastq_minovlen;
+  //  long i1 = opt_fastq_minovlen;
+  long i1 = 1;
 
-  i1 = MAX(i1, fwd_trunc + rev_trunc - opt_fastq_maxmergelen);
+  i1 = MAX(i1, ip->fwd_trunc + ip->rev_trunc - opt_fastq_maxmergelen);
 
   long i2 = opt_fastq_allowmergestagger ?
-    (fwd_trunc + rev_trunc - opt_fastq_minovlen) :
-    fwd_trunc;
+    (ip->fwd_trunc + ip->rev_trunc - opt_fastq_minovlen) :
+    ip->fwd_trunc;
 
-  i2 = MIN(i2, fwd_trunc + rev_trunc - opt_fastq_minmergelen);
+  i2 = MIN(i2, ip->fwd_trunc + ip->rev_trunc - opt_fastq_minmergelen);
 
   long best_i = 0;
   double best_score = 0.0;
-  double best_oes = 0.0;
 
   for(long i = i1; i <= i2; i++)
     {
-      long fwd_3prime_overhang = i > rev_trunc ? i - rev_trunc : 0;
-      long rev_3prime_overhang = i > fwd_trunc ? i - fwd_trunc : 0;
+      long fwd_3prime_overhang = i > ip->rev_trunc ? i - ip->rev_trunc : 0;
+      long rev_3prime_overhang = i > ip->fwd_trunc ? i - ip->fwd_trunc : 0;
       long overlap = i - fwd_3prime_overhang - rev_3prime_overhang;
-      long diffs = 0;
-      long fwd_pos_start = fwd_trunc - fwd_3prime_overhang - 1;
-      long rev_pos_start = rev_trunc - rev_3prime_overhang - overlap;
-      
-      double score = overlap_score(fwd_sequence, rev_sequence,
-                                   fwd_quality, rev_quality,
-                                   fwd_pos_start, rev_pos_start,
-                                   overlap,
-                                   & diffs);
-      
-      if ((diffs <= opt_fastq_maxdiffs) && (score > best_score))
+      long fwd_pos_start = ip->fwd_trunc - fwd_3prime_overhang - 1;
+      long rev_pos_start = ip->rev_trunc - rev_3prime_overhang - overlap;
+
+      double score = overlap_score(ip,
+                                   fwd_pos_start,
+                                   rev_pos_start,
+                                   overlap);
+
+      if (score > best_score)
         {
           best_score = score;
           best_i = i;
         }
     }
 
-  /* compute oes for best alignment */
+  return best_i;
+}
+
+void process(merge_data_t * ip)
+{
+  ip->merged = 0;
+
+  bool skip = 0;
+
+  /* check length */
+
+  if ((ip->fwd_length < opt_fastq_minlen) ||
+      (ip->rev_length < opt_fastq_minlen))
+    skip = 1;
+
+  /* truncate sequences by quality */
+
+  long fwd_trunc = ip->fwd_length;
+
+  if (!skip)
+    {
+      for (long i = 0; i < ip->fwd_length; i++)
+        if (get_qual(ip->fwd_quality[i]) <= opt_fastq_truncqual)
+          {
+            fwd_trunc = i;
+            break;
+          }
+      if (fwd_trunc < opt_fastq_minlen)
+        skip = 1;
+    }
+
+  ip->fwd_trunc = fwd_trunc;
 
-  if (best_score > 0.0)
+  long rev_trunc = ip->rev_length;
+
+  if (!skip)
     {
-      long i = best_i;
-      long fwd_3prime_overhang = i > rev_trunc ? i - rev_trunc : 0;
-      long rev_3prime_overhang = i > fwd_trunc ? i - fwd_trunc : 0;
-      long overlap = i - fwd_3prime_overhang - rev_3prime_overhang;
-      long fwd_pos_start = fwd_trunc - fwd_3prime_overhang - 1;
-      long rev_pos_start = rev_trunc - rev_3prime_overhang - overlap;
-      
-      best_oes = overlap_oes(fwd_sequence, rev_sequence,
-                             fwd_quality, rev_quality,
-                             fwd_pos_start, rev_pos_start,
-                             overlap);
+      for (long i = 0; i < ip->rev_length; i++)
+        if (get_qual(ip->rev_quality[i]) <= opt_fastq_truncqual)
+          {
+            rev_trunc = i;
+            break;
+          }
+      if (rev_trunc < opt_fastq_minlen)
+        skip = 1;
     }
 
-  /* Statistical test as in PEAR */
+  ip->rev_trunc = rev_trunc;
 
-  const int basefreqpct = (int) (0.25 * 100.0);
+  /* count n's */
 
-  int overlapregion = opt_fastq_minovlen;
-  if (overlapregion > 99)
-    overlapregion = 99;
-  if (overlapregion < 1)
-    overlapregion = 1;
+  /* replace quality of N's by zero */
 
-  double cutoff;
+  if (!skip)
+    {
+      long fwd_ncount = 0;
+      for (long i = 0; i < fwd_trunc; i++)
+        if (ip->fwd_sequence[i] == 'N')
+          {
+            ip->fwd_quality[i] = opt_fastq_ascii;
+            fwd_ncount++;
+          }
+      if (fwd_ncount > opt_fastq_maxns)
+        skip = 1;
+    }
 
-  if (pvalue_level == 1.0)
+  if (!skip)
     {
-      cutoff = DBL_MIN;
+      long rev_ncount = 0;
+      for (long i = 0; i < rev_trunc; i++)
+        if (ip->rev_sequence[i] == 'N')
+          {
+            ip->rev_quality[i] = opt_fastq_ascii;
+            rev_ncount++;
+          }
+      if (rev_ncount > opt_fastq_maxns)
+        skip = 1;
     }
-  else if (pvalue_level == 0.01)
+
+  ip->offset = 0;
+
+  if (!skip)
+    ip->offset = optimize(ip);
+
+  //  if (ip->offset)
+  if (ip->offset >= opt_fastq_minovlen)
+    merge(ip);
+}
+
+bool read_pair(merge_data_t * ip)
+{
+  long suffix_len = opt_label_suffix ? strlen(opt_label_suffix) : 0;
+
+  if (fastq_next(fastq_fwd, 0, chrmap_upcase))
     {
-      cutoff = precomp2_01[overlapregion][basefreqpct];
+      if (! fastq_next(fastq_rev, 0, chrmap_upcase))
+        fatal("More forward reads than reverse reads");
+
+      /* allocate more memory if necessary */
+
+      long fwd_header_len = fastq_get_header_length(fastq_fwd);
+      long rev_header_len = fastq_get_header_length(fastq_rev);
+      long header_needed = MAX(fwd_header_len, rev_header_len) + 1;
+
+      if (header_needed > ip->header_alloc)
+        {
+          ip->header_alloc = header_needed;
+          ip->fwd_header = (char*) xrealloc(ip->fwd_header, header_needed);
+          ip->rev_header = (char*) xrealloc(ip->rev_header, header_needed);
+        }
+
+      ip->fwd_length = fastq_get_sequence_length(fastq_fwd);
+      ip->rev_length = fastq_get_sequence_length(fastq_rev);
+      long seq_needed = MAX(ip->fwd_length, ip->rev_length) + 1;
+
+      if (seq_needed > ip->seq_alloc)
+        {
+          ip->seq_alloc = seq_needed;
+          ip->fwd_sequence = (char*) xrealloc(ip->fwd_sequence, seq_needed);
+          ip->rev_sequence = (char*) xrealloc(ip->rev_sequence, seq_needed);
+          ip->rev_seq_comp = (char*) xrealloc(ip->rev_seq_comp, seq_needed);
+          ip->fwd_quality  = (char*) xrealloc(ip->fwd_quality, seq_needed);
+          ip->rev_quality  = (char*) xrealloc(ip->rev_quality, seq_needed);
+
+        }
+
+      long merged_seq_needed = ip->fwd_length + ip->rev_length + 1;
+
+      if (merged_seq_needed > ip->merged_seq_alloc)
+        {
+          ip->merged_seq_alloc = merged_seq_needed;
+          ip->merged_sequence = (char*) xrealloc(ip->merged_sequence,
+                                                 merged_seq_needed);
+          ip->merged_quality = (char*) xrealloc(ip->merged_quality,
+                                                merged_seq_needed);
+        }
+
+      long merged_header_needed = fwd_header_len + suffix_len + 1;
+
+      if (merged_header_needed > ip->merged_header_alloc)
+        {
+          ip->merged_header_alloc = merged_header_needed;
+          ip->merged_header = (char*) xrealloc(ip->merged_header,
+                                               merged_header_needed);
+        }
+
+      /* make local copies of the seq, header and qual */
+
+      strcpy(ip->fwd_header,   fastq_get_header(fastq_fwd));
+      strcpy(ip->rev_header,   fastq_get_header(fastq_rev));
+      strcpy(ip->fwd_sequence, fastq_get_sequence(fastq_fwd));
+      strcpy(ip->rev_sequence, fastq_get_sequence(fastq_rev));
+      strcpy(ip->fwd_quality,  fastq_get_quality(fastq_fwd));
+      strcpy(ip->rev_quality,  fastq_get_quality(fastq_rev));
+
+      /* make a complementary sequence of the reverse sequence */
+
+      for(long i=0; i<ip->rev_length; i++)
+        ip->rev_seq_comp[i] = chrmap_complement[(int)(ip->rev_sequence[i])];
+      ip->rev_seq_comp[ip->rev_length] = 0;
+
+      ip->merged_header[0] = 0;
+      ip->merged_sequence[0] = 0;
+      ip->merged_quality[0] = 0;
+
+      ip->merged = 0;
+
+      ip->pair_no = total++;
+
+      return 1;
     }
-  else if (pvalue_level == 0.05)
+  else
+    return 0;
+}
+
+void pair()
+{
+  merge_data_t * merge_buffer = (merge_data_t*)
+    xmalloc(INPUTCHUNKSIZE * sizeof(merge_data_s));
+
+  for(long i=0; i<INPUTCHUNKSIZE; i++)
     {
-      cutoff = precomp2_05[overlapregion][basefreqpct];
+      merge_data_s * ip = merge_buffer + i;
+      ip->fwd_header = 0;
+      ip->rev_header = 0;
+      ip->fwd_sequence = 0;
+      ip->rev_sequence = 0;
+      ip->rev_seq_comp = 0;
+      ip->fwd_quality = 0;
+      ip->rev_quality = 0;
+      ip->header_alloc = 0;
+      ip->seq_alloc = 0;
+      ip->fwd_length = 0;
+      ip->rev_length = 0;
+      ip->pair_no = 0;
     }
-  else if (pvalue_level == 0.001)
+
+  bool more = 1;
+  while (more)
     {
-      cutoff = precomp2_001[overlapregion][basefreqpct];
+      pthread_mutex_lock(&mutex_input);
+      progress_update(fastq_get_position(fastq_fwd));
+      long pairs = 0;
+      while (more && (pairs < INPUTCHUNKSIZE))
+        {
+          more = read_pair(merge_buffer + pairs);
+          if (more)
+            pairs++;
+        }
+      pthread_mutex_unlock(&mutex_input);
+
+      for(long i=0; i<pairs; i++)
+        process(merge_buffer + i);
+
+      pthread_mutex_lock(&mutex_output);
+      while(output_next < merge_buffer[0].pair_no)
+        pthread_cond_wait(&cond_output, &mutex_output);
+
+      for(long i=0; i<pairs; i++)
+        {
+          merge_data_s * ip = merge_buffer + i;
+          if (ip->merged)
+            keep(ip);
+          else
+            discard(ip);
+          output_next++;
+        }
+
+      pthread_cond_broadcast(&cond_output);
+      pthread_mutex_unlock(&mutex_output);
     }
-  else
+
+  for(long i=0; i<INPUTCHUNKSIZE; i++)
     {
-      cutoff = precomp2_0001[overlapregion][basefreqpct];
+      merge_data_s * ip = merge_buffer + i;
+      if (ip->fwd_header)
+        free(ip->fwd_header);
+      if (ip->rev_header)
+        free(ip->rev_header);
+      if (ip->fwd_sequence)
+        free(ip->fwd_sequence);
+      if (ip->rev_sequence)
+        free(ip->rev_sequence);
+      if (ip->rev_seq_comp)
+        free(ip->rev_seq_comp);
+      if (ip->fwd_quality)
+        free(ip->fwd_quality);
+      if (ip->rev_quality)
+        free(ip->rev_quality);
     }
 
-  if (best_oes <= cutoff)
-    best_i = 0;
+  free(merge_buffer);
+}
 
-  return best_i;
+void * pair_worker(void * vp)
+{
+  long t = (long) vp;
+  (void) t;
+  pair();
+  return 0;
+}
+
+void pair_all()
+{
+  pthread_mutex_init(&mutex_input, NULL);
+  pthread_mutex_init(&mutex_counters, NULL);
+  pthread_mutex_init(&mutex_progress, NULL);
+
+  pthread_mutex_init(&mutex_output, NULL);
+  pthread_cond_init(&cond_output, 0);
+  output_next = 0;
+
+  pthread_attr_init(&attr);
+  pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+
+  pthread = (pthread_t *) xmalloc(opt_threads * sizeof(pthread_t));
+
+  for(int t=0; t<opt_threads; t++)
+    if (pthread_create(pthread+t, &attr, pair_worker, (void*)(long)t))
+      fatal("Cannot create thread");
+
+  for(int t=0; t<opt_threads; t++)
+    if (pthread_join(pthread[t], NULL))
+      fatal("Cannot join thread");
+
+  free(pthread);
+
+  pthread_attr_destroy(&attr);
+
+  pthread_cond_destroy(&cond_output);
+  pthread_mutex_destroy(&mutex_output);
+
+  pthread_mutex_destroy(&mutex_input);
+  pthread_mutex_destroy(&mutex_counters);
+  pthread_mutex_destroy(&mutex_progress);
 }
 
 void fastq_mergepairs()
 {
   /* open input files */
-  
-  fastq_handle fastq_fwd = fastq_open(opt_fastq_mergepairs);
-  fastq_handle fastq_rev = fastq_open(opt_reverse);
+
+  fastq_fwd = fastq_open(opt_fastq_mergepairs);
+  fastq_rev = fastq_open(opt_reverse);
 
   /* open output files */
 
@@ -646,143 +812,34 @@ void fastq_mergepairs()
 
   precompute_qual();
 
-  /* init progress */
+  /* main */
 
   unsigned long filesize = fastq_get_size(fastq_fwd);
   progress_init("Merging reads", filesize);
 
-  /* start loop */
-  
-  while(fastq_next(fastq_fwd, 1, chrmap_upcase))
-    {
-      if (! fastq_next(fastq_rev, 1, chrmap_upcase))
-        fatal("More forward reads than reverse reads");
-
-      /* TODO: Check that labels match: label/1 and label/2 */
-
-      total++;
-
-      long fwd_length = fastq_get_sequence_length(fastq_fwd);
-      long rev_length = fastq_get_sequence_length(fastq_rev);
-      
-      char * fwd_header = fastq_get_header(fastq_fwd);
-      char * rev_header = fastq_get_header(fastq_rev);
-
-      char * fwd_sequence = fastq_get_sequence(fastq_fwd);
-      char * rev_sequence = fastq_get_sequence(fastq_rev);
+  pair_all();
 
-      char * fwd_quality = fastq_get_quality(fastq_fwd);
-      char * rev_quality = fastq_get_quality(fastq_rev);
-
-      long fwd_trunc = fwd_length;
-      long rev_trunc = rev_length;
-      
-      bool skip = 0;
-
-      /* check length */
-
-      if ((fwd_length < opt_fastq_minlen) ||
-          (rev_length < opt_fastq_minlen))
-        skip = 1;
-
-      /* truncate sequences by quality */
-
-      if (!skip)
-        {
-          for (long i = 0; i < fwd_length; i++)
-            if (get_qual(fwd_quality[i]) <= opt_fastq_truncqual)
-              {
-                fwd_trunc = i;
-                break;
-              }
-          if (fwd_trunc < opt_fastq_minlen)
-            skip = 1;
-        }
-
-      if (!skip)
-        {          
-          for (long i = 0; i < rev_length; i++)
-            if (get_qual(rev_quality[i]) <= opt_fastq_truncqual)
-              {
-                rev_trunc = i;
-                break;
-              }
-          if (rev_trunc < opt_fastq_minlen)
-            skip = 1;
-        }
-      
-      /* count n's */
-
-      /* replace quality of N's by zero */
-
-      if (!skip)
-        {
-          long fwd_ncount = 0;
-          for (long i = 0; i < fwd_trunc; i++)
-            if (fwd_sequence[i] == 'N')
-              {
-                fwd_quality[i] = opt_fastq_ascii;
-                fwd_ncount++;
-              }
-          if (fwd_ncount > opt_fastq_maxns)
-            skip = 1;
-        }
-
-      if (!skip)
-        {
-          long rev_ncount = 0;
-          for (long i = 0; i < rev_trunc; i++)
-            if (rev_sequence[i] == 'N')
-              {
-                rev_quality[i] = opt_fastq_ascii;
-                rev_ncount++;
-              }
-          if (rev_ncount > opt_fastq_maxns)
-            skip = 1;
-        }
-      
-      long offset = 0;
-      
-      if (!skip)
-        {
-          offset = merge(fwd_sequence, rev_sequence,
-                         fwd_quality,  rev_quality,
-                         fwd_trunc,    rev_trunc);
-        }
-
-      if (offset)
-        {
-          keep(fwd_header,   rev_header,
-               fwd_sequence, rev_sequence,
-               fwd_quality,  rev_quality,
-               fwd_trunc,    rev_trunc,
-               offset);
-        }
-      else
-        discard(fwd_header,   rev_header,
-                fwd_sequence, rev_sequence,
-                fwd_quality,  rev_quality,
-                fwd_length,   rev_length);
-
-      progress_update(fastq_get_position(fastq_fwd));
-    }
-  
   progress_done();
-  
+
   if (fastq_next(fastq_rev, 1, chrmap_upcase))
     fatal("More reverse reads than forward reads");
 
   fprintf(stderr,
-          "%lu read pairs total\n",
+          "%10lu  Pairs\n",
           total);
 
   fprintf(stderr,
-          "%lu pairs merged (%.1lf%%) and %lu pairs not merged (%.1lf%%).\n",
+          "%10lu  Merged (%.1lf%%)\n",
           merged,
-          100.0 * merged / total,
+          100.0 * merged / total);
+
+  fprintf(stderr,
+          "%10lu  Not merged (%.1lf%%)\n",
           notmerged,
           100.0 * notmerged / total);
 
+  /* clean up */
+
   if (opt_eetabbedout)
     fclose(fp_eetabbedout);
   if (opt_fastaout_notmerged_rev)
diff --git a/src/msa.cc b/src/msa.cc
index 71aad62..af873c6 100644
--- a/src/msa.cc
+++ b/src/msa.cc
@@ -349,61 +349,30 @@ void msa(FILE * fp_msaout, FILE * fp_consout, FILE * fp_profile,
 
   if (fp_consout)
     {
-      if (opt_sizeout)
-        {
-          /* must remove old size info first */
-          char * header_wo_size 
-            = abundance_strip_size(global_abundance,
-                                   db_getheader(centroid_seqno), 
-                                   db_getheaderlen(centroid_seqno));
-          fprintf(fp_consout,
-                  ">centroid=%s;seqs=%d;size=%ld;",
-                  header_wo_size,
-                  target_count,
-                  totalabundance);
-          free(header_wo_size);
-        }
-      else
-          fprintf(fp_consout,
-                  ">centroid=%s;seqs=%d;",
-                  db_getheader(centroid_seqno),
-                  target_count);
-
-      if (opt_clusterout_id)
-        fprintf(fp_consout, "clusterid=%d;", cluster);
-
-      fprintf(fp_consout, "\n");
-
-      fasta_print_sequence(fp_consout, cons, conslen, opt_fasta_width);
+      fasta_print_relabel_cluster(fp_consout,
+                                  cons,
+                                  conslen,
+                                  db_getheader(centroid_seqno),
+                                  db_getheaderlen(centroid_seqno),
+                                  totalabundance,
+                                  cluster+1,
+                                  target_count,
+                                  opt_clusterout_id,
+                                  cluster);
     }
   
   if (fp_profile)
     {
-      /* must remove old size info first */
-      if (opt_sizeout)
-        {
-          char * header_wo_size 
-            = abundance_strip_size(global_abundance,
-                                   db_getheader(centroid_seqno), 
-                                   db_getheaderlen(centroid_seqno));
-          fprintf(fp_profile,
-                  ">centroid=%s;seqs=%d;size=%ld;",
-                  header_wo_size, 
-                  target_count,
-                  totalabundance);
-          free(header_wo_size);
-        }
-      else
-        fprintf(fp_profile,
-                ">centroid=%s;seqs=%d;",
-                db_getheader(centroid_seqno),
-                target_count);
-
-      if (opt_clusterout_id)
-        fprintf(fp_profile, "clusterid=%d;", cluster);
-
-      fprintf(fp_profile, "\n");
-
+      fasta_print_relabel_cluster(fp_profile,
+                                  0,
+                                  0,
+                                  db_getheader(centroid_seqno),
+                                  db_getheaderlen(centroid_seqno),
+                                  totalabundance,
+                                  cluster+1,
+                                  target_count,
+                                  opt_clusterout_id,
+                                  cluster);
       for (int i=0; i<alnlen; i++)
         {
           fprintf(fp_profile, "%d\t%c", i, aln[i]);
diff --git a/src/pvalue.h b/src/pvalue.h
deleted file mode 100644
index d9d59e5..0000000
--- a/src/pvalue.h
+++ /dev/null
@@ -1,4843 +0,0 @@
-/*
-  Precomputed statistics for significance testing of merged sequence pairs
-
-  These values were obtained from PEAR:
-
-  https://github.com/xflouris/PEAR
-
-  http://www.exelixis-lab.org/web/software/pear
-
-  Copyright Jiajie Zhang, Kassian Kobert, Tomas Flouri & Alexandros Stamatakis
-  
-  Zhang J, Kobert K, Flouri T & Stamatakis A (2014)
-  PEAR: a fast and accurate Illumina Paired-End reAd mergeR
-  Bioinformatics, 30(5):614-20. 
-  doi: 10.1093/bioinformatics/btt593
-
-  Included in vsearch with permission.
-*/
-
-/* 
-   Value range from 0 to 99, precomp_05 is the table for p-value < 0.5,
-   precomp_05[i][j] is the proportion of match of the best
-   overlap, given i minimal allowed overlap, and random match q =
-   j/100, that will reach a p-value at least 0.05. Which means if the
-   user specify p = 0.05, then we observed a f, given min_0 = i and q =
-   j/100 if f >= precomp_05[i][j], this assembly will be kept.
-*/
-
-double precomp2_05[100][100] =
-  {
-    {
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0
-    },
-    {
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,   4.0,   4.0,   4.0,   5.0,   5.0,
-        6.0,   6.0,   7.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   4.0,   4.0,   4.0,   5.0,   5.0,
-        6.0,   6.0,   7.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   4.0,   4.0,   4.0,   5.0,   5.0,
-        6.0,   6.0,   7.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   4.0,   4.0,   4.0,   5.0,   5.0,
-        6.0,   6.0,   7.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   4.0,   4.0,   4.0,   5.0,   5.0,
-        6.0,   6.0,   7.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   4.0,   4.0,   4.0,   5.0,   5.0,
-        6.0,   6.0,   7.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   4.0,   4.0,   4.0,   5.0,   5.0,
-        6.0,   6.0,   7.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   4.0,   4.0,   4.0,   5.0,   5.0,
-        6.0,   6.0,   7.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   3.0,   4.0,   4.0,   5.0,   5.0,
-        5.0,   6.0,   7.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   3.0,   4.0,   4.0,   4.0,   5.0,
-        5.0,   6.0,   7.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   3.0,   3.0,   4.0,   4.0,   5.0,
-        5.0,   6.0,   6.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   3.0,   3.0,   4.0,   4.0,   5.0,
-        5.0,   6.0,   6.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   3.0,   3.0,   4.0,   4.0,   5.0,
-        5.0,   6.0,   6.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   2.0,   3.0,   4.0,   4.0,   5.0,
-        5.0,   6.0,   6.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   2.0,   3.0,   3.0,   4.0,   4.0,
-        5.0,   6.0,   6.0,   7.0,   8.0,   9.0,   9.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   2.0,   3.0,   3.0,   4.0,   4.0,
-        5.0,   6.0,   6.0,   7.0,   8.0,   9.0,   9.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   2.0,   2.0,   3.0,   4.0,   4.0,
-        5.0,   5.0,   6.0,   7.0,   8.0,   9.0,   9.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   2.0,   2.0,   3.0,   3.0,   4.0,
-        5.0,   5.0,   6.0,   7.0,   8.0,   8.0,   9.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   1.0,   2.0,   3.0,   3.0,   4.0,
-        5.0,   5.0,   6.0,   7.0,   8.0,   8.0,   9.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   1.0,   2.0,   2.0,   3.0,   4.0,
-        4.0,   5.0,   6.0,   7.0,   8.0,   8.0,   9.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   1.0,   2.0,   2.0,   3.0,   4.0,
-        4.0,   5.0,   6.0,   7.0,   7.0,   8.0,   9.0,  11.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   1.0,   1.0,   2.0,   3.0,   3.0,
-        4.0,   5.0,   6.0,   7.0,   7.0,   8.0,   9.0,  10.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   0.0,   1.0,   2.0,   3.0,   3.0,
-        4.0,   5.0,   6.0,   6.0,   7.0,   8.0,   9.0,  10.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   0.0,   1.0,   2.0,   2.0,   3.0,
-        4.0,   5.0,   6.0,   6.0,   7.0,   8.0,   9.0,  10.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   0.0,   1.0,   1.0,   2.0,   3.0,
-        4.0,   5.0,   5.0,   6.0,   7.0,   8.0,   9.0,  10.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,   0.0,   0.0,   1.0,   2.0,   3.0,
-        4.0,   4.0,   5.0,   6.0,   7.0,   8.0,   9.0,  10.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -1.0,   0.0,   1.0,   2.0,   3.0,
-        3.0,   4.0,   5.0,   6.0,   7.0,   8.0,   9.0,  10.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -1.0,   0.0,   1.0,   2.0,   2.0,
-        3.0,   4.0,   5.0,   6.0,   7.0,   8.0,   9.0,  10.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -1.0,   0.0,   1.0,   1.0,   2.0,
-        3.0,   4.0,   5.0,   6.0,   7.0,   8.0,   9.0,  10.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -2.0,  -1.0,   0.0,   1.0,   2.0,
-        3.0,   4.0,   5.0,   6.0,   7.0,   8.0,   9.0,  10.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -2.0,  -1.0,   0.0,   1.0,   2.0,
-        3.0,   4.0,   5.0,   6.0,   7.0,   8.0,   9.0,  10.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -2.0,  -1.0,   0.0,   1.0,   2.0,
-        3.0,   4.0,   5.0,   6.0,   7.0,   8.0,   9.0,  10.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -2.0,  -1.0,   0.0,   1.0,   1.0,
-        2.0,   3.0,   4.0,   5.0,   7.0,   8.0,   9.0,  10.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -3.0,  -2.0,  -1.0,   0.0,   1.0,
-        2.0,   3.0,   4.0,   5.0,   6.0,   8.0,   9.0,  10.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -3.0,  -2.0,  -1.0,   0.0,   1.0,
-        2.0,   3.0,   4.0,   5.0,   6.0,   8.0,   9.0,  10.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -3.0,  -2.0,  -1.0,   0.0,   1.0,
-        2.0,   3.0,   4.0,   5.0,   6.0,   7.0,   9.0,  10.0,  12.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -3.0,  -3.0,  -1.0,   0.0,   1.0,
-        2.0,   3.0,   4.0,   5.0,   6.0,   7.0,   9.0,  10.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -4.0,  -3.0,  -2.0,  -1.0,   0.0,
-        2.0,   3.0,   4.0,   5.0,   6.0,   7.0,   9.0,  10.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -4.0,  -3.0,  -2.0,  -1.0,   0.0,
-        1.0,   2.0,   4.0,   5.0,   6.0,   7.0,   9.0,  10.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -4.0,  -3.0,  -2.0,  -1.0,   0.0,
-        1.0,   2.0,   3.0,   5.0,   6.0,   7.0,   8.0,  10.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -5.0,  -4.0,  -3.0,  -1.0,   0.0,
-        1.0,   2.0,   3.0,   5.0,   6.0,   7.0,   8.0,  10.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -5.0,  -4.0,  -3.0,  -2.0,   0.0,
-        1.0,   2.0,   3.0,   4.0,   6.0,   7.0,   8.0,  10.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -5.0,  -4.0,  -3.0,  -2.0,  -1.0,
-        1.0,   2.0,   3.0,   4.0,   6.0,   7.0,   8.0,  10.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -6.0,  -4.0,  -3.0,  -2.0,  -1.0,
-        0.0,   2.0,   3.0,   4.0,   5.0,   7.0,   8.0,  10.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -6.0,  -5.0,  -4.0,  -2.0,  -1.0,
-        0.0,   1.0,   3.0,   4.0,   5.0,   7.0,   8.0,  10.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -6.0,  -5.0,  -4.0,  -3.0,  -1.0,
-        0.0,   1.0,   2.0,   4.0,   5.0,   7.0,   8.0,  10.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -7.0,  -5.0,  -4.0,  -3.0,  -2.0,
-        0.0,   1.0,   2.0,   4.0,   5.0,   6.0,   8.0,   9.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -7.0,  -6.0,  -4.0,  -3.0,  -2.0,
-        0.0,   1.0,   2.0,   4.0,   5.0,   6.0,   8.0,   9.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -7.0,  -6.0,  -5.0,  -3.0,  -2.0,
-       -1.0,   1.0,   2.0,   3.0,   5.0,   6.0,   8.0,   9.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -8.0,  -6.0,  -5.0,  -4.0,  -2.0,
-       -1.0,   0.0,   2.0,   3.0,   5.0,   6.0,   8.0,   9.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -8.0,  -7.0,  -5.0,  -4.0,  -3.0,
-       -1.0,   0.0,   2.0,   3.0,   5.0,   6.0,   8.0,   9.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -8.0,  -7.0,  -6.0,  -4.0,  -3.0,
-       -1.0,   0.0,   2.0,   3.0,   4.0,   6.0,   7.0,   9.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -9.0,  -7.0,  -6.0,  -4.0,  -3.0,
-       -2.0,   0.0,   1.0,   3.0,   4.0,   6.0,   7.0,   9.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -9.0,  -8.0,  -6.0,  -5.0,  -3.0,
-       -2.0,   0.0,   1.0,   3.0,   4.0,   6.0,   7.0,   9.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  -9.0,  -8.0,  -6.0,  -5.0,  -3.0,
-       -2.0,  -1.0,   1.0,   2.0,   4.0,   6.0,   7.0,   9.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -10.0,  -8.0,  -7.0,  -5.0,  -4.0,
-       -2.0,  -1.0,   1.0,   2.0,   4.0,   5.0,   7.0,   9.0,  11.0,  13.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -10.0,  -8.0,  -7.0,  -5.0,  -4.0,
-       -2.0,  -1.0,   1.0,   2.0,   4.0,   5.0,   7.0,   9.0,  11.0,  12.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -10.0,  -9.0,  -7.0,  -6.0,  -4.0,
-       -3.0,  -1.0,   0.0,   2.0,   4.0,   5.0,   7.0,   9.0,  10.0,  12.0,
-       15.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -11.0,  -9.0,  -7.0,  -6.0,  -4.0,
-       -3.0,  -1.0,   0.0,   2.0,   3.0,   5.0,   7.0,   9.0,  10.0,  12.0,
-       14.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -11.0,  -9.0,  -8.0,  -6.0,  -5.0,
-       -3.0,  -2.0,   0.0,   2.0,   3.0,   5.0,   7.0,   9.0,  10.0,  12.0,
-       14.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -11.0, -10.0,  -8.0,  -7.0,  -5.0,
-       -3.0,  -2.0,   0.0,   2.0,   3.0,   5.0,   7.0,   8.0,  10.0,  12.0,
-       14.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -12.0, -10.0,  -8.0,  -7.0,  -5.0,
-       -4.0,  -2.0,   0.0,   1.0,   3.0,   5.0,   7.0,   8.0,  10.0,  12.0,
-       14.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -12.0, -10.0,  -9.0,  -7.0,  -5.0,
-       -4.0,  -2.0,  -1.0,   1.0,   3.0,   5.0,   6.0,   8.0,  10.0,  12.0,
-       14.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -12.0, -11.0,  -9.0,  -7.0,  -6.0,
-       -4.0,  -2.0,  -1.0,   1.0,   3.0,   4.0,   6.0,   8.0,  10.0,  12.0,
-       14.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -13.0, -11.0,  -9.0,  -8.0,  -6.0,
-       -4.0,  -3.0,  -1.0,   1.0,   3.0,   4.0,   6.0,   8.0,  10.0,  12.0,
-       14.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -13.0, -11.0, -10.0,  -8.0,  -6.0,
-       -4.0,  -3.0,  -1.0,   1.0,   2.0,   4.0,   6.0,   8.0,  10.0,  12.0,
-       14.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -13.0, -12.0, -10.0,  -8.0,  -6.0,
-       -5.0,  -3.0,  -1.0,   1.0,   2.0,   4.0,   6.0,   8.0,  10.0,  12.0,
-       14.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -14.0, -12.0, -10.0,  -8.0,  -7.0,
-       -5.0,  -3.0,  -1.0,   0.0,   2.0,   4.0,   6.0,   8.0,  10.0,  12.0,
-       14.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -14.0, -12.0, -11.0,  -9.0,  -7.0,
-       -5.0,  -3.0,  -2.0,   0.0,   2.0,   4.0,   6.0,   8.0,  10.0,  12.0,
-       14.0,  17.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -14.0, -13.0, -11.0,  -9.0,  -7.0,
-       -5.0,  -4.0,  -2.0,   0.0,   2.0,   4.0,   6.0,   8.0,  10.0,  12.0,
-       14.0,  16.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -15.0, -13.0, -11.0,  -9.0,  -7.0,
-       -6.0,  -4.0,  -2.0,   0.0,   2.0,   4.0,   6.0,   8.0,  10.0,  12.0,
-       14.0,  16.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -15.0, -13.0, -11.0, -10.0,  -8.0,
-       -6.0,  -4.0,  -2.0,   0.0,   2.0,   3.0,   5.0,   7.0,  10.0,  12.0,
-       14.0,  16.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -15.0, -14.0, -12.0, -10.0,  -8.0,
-       -6.0,  -4.0,  -2.0,  -1.0,   1.0,   3.0,   5.0,   7.0,   9.0,  12.0,
-       14.0,  16.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -16.0, -14.0, -12.0, -10.0,  -8.0,
-       -6.0,  -4.0,  -3.0,  -1.0,   1.0,   3.0,   5.0,   7.0,   9.0,  12.0,
-       14.0,  16.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -16.0, -14.0, -12.0, -10.0,  -9.0,
-       -7.0,  -5.0,  -3.0,  -1.0,   1.0,   3.0,   5.0,   7.0,   9.0,  12.0,
-       14.0,  16.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -16.0, -15.0, -13.0, -11.0,  -9.0,
-       -7.0,  -5.0,  -3.0,  -1.0,   1.0,   3.0,   5.0,   7.0,   9.0,  12.0,
-       14.0,  16.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -17.0, -15.0, -13.0, -11.0,  -9.0,
-       -7.0,  -5.0,  -3.0,  -1.0,   1.0,   3.0,   5.0,   7.0,   9.0,  11.0,
-       14.0,  16.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -17.0, -15.0, -13.0, -11.0,  -9.0,
-       -7.0,  -5.0,  -3.0,  -1.0,   1.0,   3.0,   5.0,   7.0,   9.0,  11.0,
-       14.0,  16.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -18.0, -16.0, -14.0, -12.0, -10.0,
-       -8.0,  -6.0,  -4.0,  -2.0,   0.0,   3.0,   5.0,   7.0,   9.0,  11.0,
-       14.0,  16.0,  19.0,  22.0,  25.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -18.0, -16.0, -14.0, -12.0, -10.0,
-       -8.0,  -6.0,  -4.0,  -2.0,   0.0,   2.0,   5.0,   7.0,   9.0,  11.0,
-       14.0,  16.0,  19.0,  22.0,  24.0,  28.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -18.0, -16.0, -14.0, -12.0, -10.0,
-       -8.0,  -6.0,  -4.0,  -2.0,   0.0,   2.0,   4.0,   7.0,   9.0,  11.0,
-       14.0,  16.0,  19.0,  22.0,  24.0,  27.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -19.0, -17.0, -15.0, -12.0, -10.0,
-       -8.0,  -6.0,  -4.0,  -2.0,   0.0,   2.0,   4.0,   6.0,   9.0,  11.0,
-       14.0,  16.0,  19.0,  22.0,  24.0,  27.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -19.0, -17.0, -15.0, -13.0, -11.0,
-       -9.0,  -7.0,  -4.0,  -2.0,   0.0,   2.0,   4.0,   6.0,   9.0,  11.0,
-       14.0,  16.0,  19.0,  22.0,  24.0,  27.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -19.0, -17.0, -15.0, -13.0, -11.0,
-       -9.0,  -7.0,  -5.0,  -3.0,   0.0,   2.0,   4.0,   6.0,   9.0,  11.0,
-       13.0,  16.0,  19.0,  22.0,  24.0,  27.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -20.0, -18.0, -15.0, -13.0, -11.0,
-       -9.0,  -7.0,  -5.0,  -3.0,  -1.0,   2.0,   4.0,   6.0,   9.0,  11.0,
-       13.0,  16.0,  19.0,  22.0,  24.0,  27.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -20.0, -18.0, -16.0, -14.0, -12.0,
-       -9.0,  -7.0,  -5.0,  -3.0,  -1.0,   2.0,   4.0,   6.0,   8.0,  11.0,
-       13.0,  16.0,  19.0,  22.0,  24.0,  27.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -21.0, -18.0, -16.0, -14.0, -12.0,
-      -10.0,  -7.0,  -5.0,  -3.0,  -1.0,   1.0,   4.0,   6.0,   8.0,  11.0,
-       13.0,  16.0,  19.0,  21.0,  24.0,  27.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -21.0, -19.0, -16.0, -14.0, -12.0,
-      -10.0,  -8.0,  -6.0,  -3.0,  -1.0,   1.0,   4.0,   6.0,   8.0,  11.0,
-       13.0,  16.0,  19.0,  21.0,  24.0,  27.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -21.0, -19.0, -17.0, -15.0, -12.0,
-      -10.0,  -8.0,  -6.0,  -3.0,  -1.0,   1.0,   3.0,   6.0,   8.0,  11.0,
-       13.0,  16.0,  19.0,  21.0,  24.0,  27.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -22.0, -19.0, -17.0, -15.0, -13.0,
-      -10.0,  -8.0,  -6.0,  -4.0,  -1.0,   1.0,   3.0,   6.0,   8.0,  11.0,
-       13.0,  16.0,  19.0,  21.0,  24.0,  27.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -22.0, -20.0, -17.0, -15.0, -13.0,
-      -11.0,  -8.0,  -6.0,  -4.0,  -2.0,   1.0,   3.0,   6.0,   8.0,  11.0,
-       13.0,  16.0,  19.0,  21.0,  24.0,  27.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -22.0, -20.0, -18.0, -15.0, -13.0,
-      -11.0,  -9.0,  -6.0,  -4.0,  -2.0,   1.0,   3.0,   5.0,   8.0,  10.0,
-       13.0,  16.0,  19.0,  21.0,  24.0,  27.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -23.0, -20.0, -18.0, -16.0, -13.0,
-      -11.0,  -9.0,  -7.0,  -4.0,  -2.0,   0.0,   3.0,   5.0,   8.0,  10.0,
-       13.0,  16.0,  18.0,  21.0,  24.0,  27.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -23.0, -21.0, -18.0, -16.0, -14.0,
-      -11.0,  -9.0,  -7.0,  -4.0,  -2.0,   0.0,   3.0,   5.0,   8.0,  10.0,
-       13.0,  16.0,  18.0,  21.0,  24.0,  27.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -23.0, -21.0, -19.0, -16.0, -14.0,
-      -12.0,  -9.0,  -7.0,  -5.0,  -2.0,   0.0,   3.0,   5.0,   8.0,  10.0,
-       13.0,  16.0,  18.0,  21.0,  24.0,  27.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -24.0, -21.0, -19.0, -17.0, -14.0,
-      -12.0, -10.0,  -7.0,  -5.0,  -2.0,   0.0,   2.0,   5.0,   8.0,  10.0,
-       13.0,  16.0,  18.0,  21.0,  24.0,  27.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -24.0, -22.0, -19.0, -17.0, -15.0,
-      -12.0, -10.0,  -7.0,  -5.0,  -3.0,   0.0,   2.0,   5.0,   7.0,  10.0,
-       13.0,  16.0,  18.0,  21.0,  24.0,  27.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -24.0, -22.0, -20.0, -17.0, -15.0,
-      -12.0, -10.0,  -8.0,  -5.0,  -3.0,   0.0,   2.0,   5.0,   7.0,  10.0,
-       13.0,  15.0,  18.0,  21.0,  24.0,  27.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    },
-    {
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0, -25.0, -22.0, -20.0, -18.0, -15.0,
-      -13.0, -10.0,  -8.0,  -5.0,  -3.0,   0.0,   2.0,   5.0,   7.0,  10.0,
-       13.0,  15.0,  18.0,  21.0,  24.0,  27.0,  31.0,  34.0,  37.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,
-       40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0,  40.0
-    }
-  };
-
-double precomp2_01[100][100] =
-  {
-    {
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0
-    },
-    {
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,   5.0,   6.0,   6.0,   6.0,   7.0,
-        7.0,   8.0,   9.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   5.0,   6.0,   6.0,   6.0,   7.0,
-        7.0,   8.0,   9.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   5.0,   6.0,   6.0,   6.0,   7.0,
-        7.0,   8.0,   9.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   5.0,   6.0,   6.0,   6.0,   7.0,
-        7.0,   8.0,   9.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   5.0,   6.0,   6.0,   6.0,   7.0,
-        7.0,   8.0,   9.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   5.0,   6.0,   6.0,   6.0,   7.0,
-        7.0,   8.0,   9.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   5.0,   6.0,   6.0,   6.0,   7.0,
-        7.0,   8.0,   9.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   5.0,   6.0,   6.0,   6.0,   7.0,
-        7.0,   8.0,   9.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   5.0,   6.0,   6.0,   6.0,   7.0,
-        7.0,   8.0,   9.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   5.0,   5.0,   6.0,   6.0,   7.0,
-        7.0,   8.0,   9.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   5.0,   5.0,   6.0,   6.0,   7.0,
-        7.0,   8.0,   9.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   5.0,   5.0,   6.0,   6.0,   7.0,
-        7.0,   8.0,   9.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   5.0,   5.0,   6.0,   6.0,   7.0,
-        7.0,   8.0,   9.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   5.0,   5.0,   6.0,   6.0,   7.0,
-        7.0,   8.0,   9.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   4.0,   5.0,   5.0,   6.0,   7.0,
-        7.0,   8.0,   9.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   4.0,   5.0,   5.0,   6.0,   7.0,
-        7.0,   8.0,   9.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   4.0,   5.0,   5.0,   6.0,   7.0,
-        7.0,   8.0,   9.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   4.0,   4.0,   5.0,   6.0,   6.0,
-        7.0,   8.0,   9.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   4.0,   4.0,   5.0,   6.0,   6.0,
-        7.0,   8.0,   8.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   4.0,   4.0,   5.0,   6.0,   6.0,
-        7.0,   8.0,   8.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   3.0,   4.0,   5.0,   5.0,   6.0,
-        7.0,   8.0,   8.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   3.0,   4.0,   4.0,   5.0,   6.0,
-        7.0,   8.0,   8.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   3.0,   4.0,   4.0,   5.0,   6.0,
-        7.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   3.0,   3.0,   4.0,   5.0,   6.0,
-        6.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   2.0,   3.0,   4.0,   5.0,   6.0,
-        6.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   2.0,   3.0,   4.0,   5.0,   5.0,
-        6.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   2.0,   3.0,   4.0,   4.0,   5.0,
-        6.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   2.0,   3.0,   3.0,   4.0,   5.0,
-        6.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   1.0,   2.0,   3.0,   4.0,   5.0,
-        6.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   1.0,   2.0,   3.0,   4.0,   5.0,
-        6.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   1.0,   2.0,   3.0,   4.0,   5.0,
-        6.0,   7.0,   8.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   1.0,   2.0,   3.0,   4.0,   5.0,
-        6.0,   6.0,   8.0,   9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   1.0,   1.0,   2.0,   3.0,   4.0,
-        5.0,   6.0,   7.0,   9.0,  10.0,  11.0,  12.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   0.0,   1.0,   2.0,   3.0,   4.0,
-        5.0,   6.0,   7.0,   8.0,  10.0,  11.0,  12.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   0.0,   1.0,   2.0,   3.0,   4.0,
-        5.0,   6.0,   7.0,   8.0,   9.0,  11.0,  12.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,   0.0,   1.0,   2.0,   3.0,   4.0,
-        5.0,   6.0,   7.0,   8.0,   9.0,  11.0,  12.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -1.0,   1.0,   2.0,   3.0,   4.0,
-        5.0,   6.0,   7.0,   8.0,   9.0,  11.0,  12.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -1.0,   0.0,   1.0,   2.0,   4.0,
-        5.0,   6.0,   7.0,   8.0,   9.0,  11.0,  12.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -1.0,   0.0,   1.0,   2.0,   3.0,
-        4.0,   6.0,   7.0,   8.0,   9.0,  10.0,  12.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -1.0,   0.0,   1.0,   2.0,   3.0,
-        4.0,   5.0,   7.0,   8.0,   9.0,  10.0,  12.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -2.0,  -1.0,   1.0,   2.0,   3.0,
-        4.0,   5.0,   7.0,   8.0,   9.0,  10.0,  12.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -2.0,  -1.0,   0.0,   2.0,   3.0,
-        4.0,   5.0,   6.0,   8.0,   9.0,  10.0,  12.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -2.0,  -1.0,   0.0,   1.0,   3.0,
-        4.0,   5.0,   6.0,   8.0,   9.0,  10.0,  12.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -2.0,  -1.0,   0.0,   1.0,   2.0,
-        4.0,   5.0,   6.0,   7.0,   9.0,  10.0,  12.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -3.0,  -1.0,   0.0,   1.0,   2.0,
-        3.0,   5.0,   6.0,   7.0,   9.0,  10.0,  12.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -3.0,  -2.0,   0.0,   1.0,   2.0,
-        3.0,   5.0,   6.0,   7.0,   9.0,  10.0,  12.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -3.0,  -2.0,  -1.0,   1.0,   2.0,
-        3.0,   4.0,   6.0,   7.0,   8.0,  10.0,  11.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -4.0,  -2.0,  -1.0,   0.0,   2.0,
-        3.0,   4.0,   6.0,   7.0,   8.0,  10.0,  11.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -4.0,  -3.0,  -1.0,   0.0,   1.0,
-        3.0,   4.0,   5.0,   7.0,   8.0,  10.0,  11.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -4.0,  -3.0,  -2.0,   0.0,   1.0,
-        3.0,   4.0,   5.0,   7.0,   8.0,  10.0,  11.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -5.0,  -3.0,  -2.0,   0.0,   1.0,
-        2.0,   4.0,   5.0,   7.0,   8.0,  10.0,  11.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -5.0,  -3.0,  -2.0,  -1.0,   1.0,
-        2.0,   4.0,   5.0,   6.0,   8.0,  10.0,  11.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -5.0,  -4.0,  -2.0,  -1.0,   1.0,
-        2.0,   3.0,   5.0,   6.0,   8.0,   9.0,  11.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -5.0,  -4.0,  -3.0,  -1.0,   0.0,
-        2.0,   3.0,   5.0,   6.0,   8.0,   9.0,  11.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -6.0,  -4.0,  -3.0,  -1.0,   0.0,
-        2.0,   3.0,   5.0,   6.0,   8.0,   9.0,  11.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -6.0,  -5.0,  -3.0,  -2.0,   0.0,
-        1.0,   3.0,   4.0,   6.0,   8.0,   9.0,  11.0,  13.0,  15.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -6.0,  -5.0,  -3.0,  -2.0,   0.0,
-        1.0,   3.0,   4.0,   6.0,   7.0,   9.0,  11.0,  13.0,  14.0,  17.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -7.0,  -5.0,  -4.0,  -2.0,   0.0,
-        1.0,   3.0,   4.0,   6.0,   7.0,   9.0,  11.0,  13.0,  14.0,  16.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -7.0,  -5.0,  -4.0,  -2.0,  -1.0,
-        1.0,   2.0,   4.0,   6.0,   7.0,   9.0,  11.0,  12.0,  14.0,  16.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -7.0,  -6.0,  -4.0,  -3.0,  -1.0,
-        1.0,   2.0,   4.0,   5.0,   7.0,   9.0,  11.0,  12.0,  14.0,  16.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -8.0,  -6.0,  -4.0,  -3.0,  -1.0,
-        0.0,   2.0,   4.0,   5.0,   7.0,   9.0,  11.0,  12.0,  14.0,  16.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -8.0,  -6.0,  -5.0,  -3.0,  -1.0,
-        0.0,   2.0,   4.0,   5.0,   7.0,   9.0,  10.0,  12.0,  14.0,  16.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -8.0,  -7.0,  -5.0,  -3.0,  -2.0,
-        0.0,   2.0,   3.0,   5.0,   7.0,   9.0,  10.0,  12.0,  14.0,  16.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -9.0,  -7.0,  -5.0,  -4.0,  -2.0,
-        0.0,   2.0,   3.0,   5.0,   7.0,   8.0,  10.0,  12.0,  14.0,  16.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -9.0,  -7.0,  -5.0,  -4.0,  -2.0,
-        0.0,   1.0,   3.0,   5.0,   7.0,   8.0,  10.0,  12.0,  14.0,  16.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -9.0,  -8.0,  -6.0,  -4.0,  -2.0,
-       -1.0,   1.0,   3.0,   5.0,   6.0,   8.0,  10.0,  12.0,  14.0,  16.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  -9.0,  -8.0,  -6.0,  -4.0,  -3.0,
-       -1.0,   1.0,   3.0,   4.0,   6.0,   8.0,  10.0,  12.0,  14.0,  16.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -10.0,  -8.0,  -6.0,  -5.0,  -3.0,
-       -1.0,   1.0,   2.0,   4.0,   6.0,   8.0,  10.0,  12.0,  14.0,  16.0,
-       19.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -10.0,  -8.0,  -7.0,  -5.0,  -3.0,
-       -1.0,   1.0,   2.0,   4.0,   6.0,   8.0,  10.0,  12.0,  14.0,  16.0,
-       18.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -10.0,  -9.0,  -7.0,  -5.0,  -3.0,
-       -1.0,   0.0,   2.0,   4.0,   6.0,   8.0,  10.0,  12.0,  14.0,  16.0,
-       18.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -11.0,  -9.0,  -7.0,  -5.0,  -3.0,
-       -2.0,   0.0,   2.0,   4.0,   6.0,   8.0,  10.0,  12.0,  14.0,  16.0,
-       18.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -11.0,  -9.0,  -7.0,  -6.0,  -4.0,
-       -2.0,   0.0,   2.0,   4.0,   6.0,   8.0,  10.0,  12.0,  14.0,  16.0,
-       18.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -11.0, -10.0,  -8.0,  -6.0,  -4.0,
-       -2.0,   0.0,   2.0,   4.0,   5.0,   7.0,   9.0,  12.0,  14.0,  16.0,
-       18.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -12.0, -10.0,  -8.0,  -6.0,  -4.0,
-       -2.0,   0.0,   1.0,   3.0,   5.0,   7.0,   9.0,  11.0,  14.0,  16.0,
-       18.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -12.0, -10.0,  -8.0,  -6.0,  -4.0,
-       -3.0,  -1.0,   1.0,   3.0,   5.0,   7.0,   9.0,  11.0,  14.0,  16.0,
-       18.0,  21.0,  24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -12.0, -10.0,  -9.0,  -7.0,  -5.0,
-       -3.0,  -1.0,   1.0,   3.0,   5.0,   7.0,   9.0,  11.0,  14.0,  16.0,
-       18.0,  21.0,  24.0,  26.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -13.0, -11.0,  -9.0,  -7.0,  -5.0,
-       -3.0,  -1.0,   1.0,   3.0,   5.0,   7.0,   9.0,  11.0,  13.0,  16.0,
-       18.0,  21.0,  24.0,  26.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -13.0, -11.0,  -9.0,  -7.0,  -5.0,
-       -3.0,  -1.0,   1.0,   3.0,   5.0,   7.0,   9.0,  11.0,  13.0,  16.0,
-       18.0,  21.0,  24.0,  26.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -13.0, -11.0,  -9.0,  -7.0,  -5.0,
-       -3.0,  -1.0,   1.0,   3.0,   5.0,   7.0,   9.0,  11.0,  13.0,  16.0,
-       18.0,  21.0,  24.0,  26.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -14.0, -12.0, -10.0,  -8.0,  -6.0,
-       -4.0,  -2.0,   0.0,   2.0,   5.0,   7.0,   9.0,  11.0,  13.0,  16.0,
-       18.0,  21.0,  24.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -14.0, -12.0, -10.0,  -8.0,  -6.0,
-       -4.0,  -2.0,   0.0,   2.0,   4.0,   7.0,   9.0,  11.0,  13.0,  16.0,
-       18.0,  21.0,  24.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -14.0, -12.0, -10.0,  -8.0,  -6.0,
-       -4.0,  -2.0,   0.0,   2.0,   4.0,   6.0,   9.0,  11.0,  13.0,  16.0,
-       18.0,  21.0,  24.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -15.0, -13.0, -11.0,  -9.0,  -6.0,
-       -4.0,  -2.0,   0.0,   2.0,   4.0,   6.0,   9.0,  11.0,  13.0,  16.0,
-       18.0,  21.0,  24.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -15.0, -13.0, -11.0,  -9.0,  -7.0,
-       -5.0,  -2.0,   0.0,   2.0,   4.0,   6.0,   8.0,  11.0,  13.0,  16.0,
-       18.0,  21.0,  24.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -15.0, -13.0, -11.0,  -9.0,  -7.0,
-       -5.0,  -3.0,  -1.0,   2.0,   4.0,   6.0,   8.0,  11.0,  13.0,  15.0,
-       18.0,  21.0,  24.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -16.0, -14.0, -12.0,  -9.0,  -7.0,
-       -5.0,  -3.0,  -1.0,   1.0,   4.0,   6.0,   8.0,  11.0,  13.0,  15.0,
-       18.0,  21.0,  23.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -16.0, -14.0, -12.0, -10.0,  -7.0,
-       -5.0,  -3.0,  -1.0,   1.0,   4.0,   6.0,   8.0,  10.0,  13.0,  15.0,
-       18.0,  21.0,  23.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -16.0, -14.0, -12.0, -10.0,  -8.0,
-       -6.0,  -3.0,  -1.0,   1.0,   3.0,   6.0,   8.0,  10.0,  13.0,  15.0,
-       18.0,  21.0,  23.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -17.0, -15.0, -12.0, -10.0,  -8.0,
-       -6.0,  -3.0,  -1.0,   1.0,   3.0,   6.0,   8.0,  10.0,  13.0,  15.0,
-       18.0,  21.0,  23.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -17.0, -15.0, -13.0, -10.0,  -8.0,
-       -6.0,  -4.0,  -1.0,   1.0,   3.0,   5.0,   8.0,  10.0,  13.0,  15.0,
-       18.0,  21.0,  23.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -18.0, -15.0, -13.0, -11.0,  -9.0,
-       -6.0,  -4.0,  -2.0,   1.0,   3.0,   5.0,   8.0,  10.0,  13.0,  15.0,
-       18.0,  21.0,  23.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -18.0, -16.0, -13.0, -11.0,  -9.0,
-       -6.0,  -4.0,  -2.0,   0.0,   3.0,   5.0,   8.0,  10.0,  13.0,  15.0,
-       18.0,  21.0,  23.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -18.0, -16.0, -14.0, -11.0,  -9.0,
-       -7.0,  -4.0,  -2.0,   0.0,   3.0,   5.0,   7.0,  10.0,  12.0,  15.0,
-       18.0,  20.0,  23.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -19.0, -16.0, -14.0, -12.0,  -9.0,
-       -7.0,  -5.0,  -2.0,   0.0,   2.0,   5.0,   7.0,  10.0,  12.0,  15.0,
-       18.0,  20.0,  23.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -19.0, -17.0, -14.0, -12.0,  -9.0,
-       -7.0,  -5.0,  -2.0,   0.0,   2.0,   5.0,   7.0,  10.0,  12.0,  15.0,
-       18.0,  20.0,  23.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -19.0, -17.0, -15.0, -12.0, -10.0,
-       -7.0,  -5.0,  -3.0,   0.0,   2.0,   5.0,   7.0,  10.0,  12.0,  15.0,
-       18.0,  20.0,  23.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -20.0, -17.0, -15.0, -12.0, -10.0,
-       -8.0,  -5.0,  -3.0,   0.0,   2.0,   5.0,   7.0,  10.0,  12.0,  15.0,
-       18.0,  20.0,  23.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -20.0, -18.0, -15.0, -13.0, -10.0,
-       -8.0,  -5.0,  -3.0,  -1.0,   2.0,   4.0,   7.0,   9.0,  12.0,  15.0,
-       18.0,  20.0,  23.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    },
-    {
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0, -20.0, -18.0, -15.0, -13.0, -11.0,
-       -8.0,  -6.0,  -3.0,  -1.0,   2.0,   4.0,   7.0,   9.0,  12.0,  15.0,
-       17.0,  20.0,  23.0,  26.0,  29.0,  33.0,  36.0,  39.0,  43.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,
-       46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0,  46.0
-    }
-  };
-
-double precomp2_001[100][100] =
-  {
-    {
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0
-    },
-    {
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,   7.0,   8.0,   8.0,   9.0,  10.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   7.0,   8.0,   8.0,   9.0,  10.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   7.0,   8.0,   8.0,   9.0,  10.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   7.0,   8.0,   8.0,   9.0,  10.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   7.0,   8.0,   8.0,   9.0,  10.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   7.0,   8.0,   8.0,   9.0,  10.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   7.0,   8.0,   8.0,   9.0,  10.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   7.0,   8.0,   8.0,   9.0,  10.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   7.0,   8.0,   8.0,   9.0,  10.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   7.0,   8.0,   8.0,   9.0,  10.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   7.0,   8.0,   8.0,   9.0,  10.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   7.0,   8.0,   8.0,   9.0,  10.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   7.0,   8.0,   8.0,   9.0,  10.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   7.0,   8.0,   8.0,   9.0,  10.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   7.0,   8.0,   8.0,   9.0,   9.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   7.0,   8.0,   8.0,   9.0,   9.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   7.0,   7.0,   8.0,   9.0,   9.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   7.0,   7.0,   8.0,   9.0,   9.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   7.0,   7.0,   8.0,   9.0,   9.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   6.0,   7.0,   8.0,   8.0,   9.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   6.0,   7.0,   8.0,   8.0,   9.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   6.0,   7.0,   8.0,   8.0,   9.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   6.0,   7.0,   7.0,   8.0,   9.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   6.0,   7.0,   7.0,   8.0,   9.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   6.0,   6.0,   7.0,   8.0,   9.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   5.0,   6.0,   7.0,   8.0,   9.0,
-       10.0,  11.0,  12.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   5.0,   6.0,   7.0,   8.0,   9.0,
-       10.0,  11.0,  11.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   5.0,   6.0,   7.0,   8.0,   9.0,
-       10.0,  10.0,  11.0,  13.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   5.0,   6.0,   7.0,   8.0,   9.0,
-        9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   5.0,   6.0,   6.0,   7.0,   8.0,
-        9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   5.0,   5.0,   6.0,   7.0,   8.0,
-        9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   4.0,   5.0,   6.0,   7.0,   8.0,
-        9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   4.0,   5.0,   6.0,   7.0,   8.0,
-        9.0,  10.0,  11.0,  12.0,  14.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   4.0,   5.0,   6.0,   7.0,   8.0,
-        9.0,  10.0,  11.0,  12.0,  13.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   4.0,   5.0,   6.0,   7.0,   8.0,
-        9.0,  10.0,  11.0,  12.0,  13.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   3.0,   4.0,   6.0,   7.0,   8.0,
-        9.0,  10.0,  11.0,  12.0,  13.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   3.0,   4.0,   5.0,   6.0,   7.0,
-        9.0,  10.0,  11.0,  12.0,  13.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   3.0,   4.0,   5.0,   6.0,   7.0,
-        8.0,  10.0,  11.0,  12.0,  13.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   3.0,   4.0,   5.0,   6.0,   7.0,
-        8.0,  10.0,  11.0,  12.0,  13.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   2.0,   4.0,   5.0,   6.0,   7.0,
-        8.0,   9.0,  11.0,  12.0,  13.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   2.0,   3.0,   5.0,   6.0,   7.0,
-        8.0,   9.0,  11.0,  12.0,  13.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   2.0,   3.0,   4.0,   6.0,   7.0,
-        8.0,   9.0,  10.0,  12.0,  13.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   2.0,   3.0,   4.0,   5.0,   7.0,
-        8.0,   9.0,  10.0,  12.0,  13.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   2.0,   3.0,   4.0,   5.0,   6.0,
-        8.0,   9.0,  10.0,  12.0,  13.0,  15.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   1.0,   3.0,   4.0,   5.0,   6.0,
-        8.0,   9.0,  10.0,  12.0,  13.0,  14.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   1.0,   2.0,   4.0,   5.0,   6.0,
-        7.0,   9.0,  10.0,  12.0,  13.0,  14.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   1.0,   2.0,   3.0,   5.0,   6.0,
-        7.0,   9.0,  10.0,  11.0,  13.0,  14.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   1.0,   2.0,   3.0,   4.0,   6.0,
-        7.0,   9.0,  10.0,  11.0,  13.0,  14.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   0.0,   2.0,   3.0,   4.0,   6.0,
-        7.0,   8.0,  10.0,  11.0,  13.0,  14.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   0.0,   1.0,   3.0,   4.0,   6.0,
-        7.0,   8.0,  10.0,  11.0,  13.0,  14.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   0.0,   1.0,   3.0,   4.0,   5.0,
-        7.0,   8.0,  10.0,  11.0,  13.0,  14.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,   0.0,   1.0,   2.0,   4.0,   5.0,
-        7.0,   8.0,   9.0,  11.0,  13.0,  14.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -1.0,   1.0,   2.0,   4.0,   5.0,
-        6.0,   8.0,   9.0,  11.0,  12.0,  14.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -1.0,   0.0,   2.0,   3.0,   5.0,
-        6.0,   8.0,   9.0,  11.0,  12.0,  14.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -1.0,   0.0,   2.0,   3.0,   5.0,
-        6.0,   8.0,   9.0,  11.0,  12.0,  14.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -2.0,   0.0,   1.0,   3.0,   4.0,
-        6.0,   7.0,   9.0,  11.0,  12.0,  14.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -2.0,   0.0,   1.0,   3.0,   4.0,
-        6.0,   7.0,   9.0,  11.0,  12.0,  14.0,  16.0,  18.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -2.0,  -1.0,   1.0,   2.0,   4.0,
-        6.0,   7.0,   9.0,  10.0,  12.0,  14.0,  16.0,  17.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -2.0,  -1.0,   1.0,   2.0,   4.0,
-        5.0,   7.0,   9.0,  10.0,  12.0,  14.0,  16.0,  17.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -3.0,  -1.0,   0.0,   2.0,   4.0,
-        5.0,   7.0,   9.0,  10.0,  12.0,  14.0,  15.0,  17.0,  20.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -3.0,  -1.0,   0.0,   2.0,   3.0,
-        5.0,   7.0,   8.0,  10.0,  12.0,  14.0,  15.0,  17.0,  19.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -3.0,  -2.0,   0.0,   2.0,   3.0,
-        5.0,   7.0,   8.0,  10.0,  12.0,  14.0,  15.0,  17.0,  19.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -4.0,  -2.0,   0.0,   1.0,   3.0,
-        5.0,   6.0,   8.0,  10.0,  12.0,  13.0,  15.0,  17.0,  19.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -4.0,  -2.0,   0.0,   1.0,   3.0,
-        5.0,   6.0,   8.0,  10.0,  12.0,  13.0,  15.0,  17.0,  19.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -4.0,  -2.0,  -1.0,   1.0,   3.0,
-        4.0,   6.0,   8.0,  10.0,  11.0,  13.0,  15.0,  17.0,  19.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -4.0,  -3.0,  -1.0,   1.0,   2.0,
-        4.0,   6.0,   8.0,  10.0,  11.0,  13.0,  15.0,  17.0,  19.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -5.0,  -3.0,  -1.0,   1.0,   2.0,
-        4.0,   6.0,   8.0,   9.0,  11.0,  13.0,  15.0,  17.0,  19.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -5.0,  -3.0,  -1.0,   0.0,   2.0,
-        4.0,   6.0,   7.0,   9.0,  11.0,  13.0,  15.0,  17.0,  19.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -5.0,  -3.0,  -2.0,   0.0,   2.0,
-        4.0,   5.0,   7.0,   9.0,  11.0,  13.0,  15.0,  17.0,  19.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -6.0,  -4.0,  -2.0,   0.0,   2.0,
-        4.0,   5.0,   7.0,   9.0,  11.0,  13.0,  15.0,  17.0,  19.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -6.0,  -4.0,  -2.0,   0.0,   1.0,
-        3.0,   5.0,   7.0,   9.0,  11.0,  13.0,  15.0,  17.0,  19.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -6.0,  -4.0,  -2.0,  -1.0,   1.0,
-        3.0,   5.0,   7.0,   9.0,  11.0,  13.0,  15.0,  17.0,  19.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -7.0,  -5.0,  -3.0,  -1.0,   1.0,
-        3.0,   5.0,   7.0,   9.0,  11.0,  13.0,  15.0,  17.0,  19.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -7.0,  -5.0,  -3.0,  -1.0,   1.0,
-        3.0,   5.0,   7.0,   9.0,  11.0,  13.0,  15.0,  17.0,  19.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -7.0,  -5.0,  -3.0,  -1.0,   1.0,
-        3.0,   5.0,   6.0,   8.0,  10.0,  13.0,  15.0,  17.0,  19.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -7.0,  -5.0,  -4.0,  -2.0,   0.0,
-        2.0,   4.0,   6.0,   8.0,  10.0,  12.0,  15.0,  17.0,  19.0,  22.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -8.0,  -6.0,  -4.0,  -2.0,   0.0,
-        2.0,   4.0,   6.0,   8.0,  10.0,  12.0,  14.0,  17.0,  19.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -8.0,  -6.0,  -4.0,  -2.0,   0.0,
-        2.0,   4.0,   6.0,   8.0,  10.0,  12.0,  14.0,  17.0,  19.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -8.0,  -6.0,  -4.0,  -2.0,   0.0,
-        2.0,   4.0,   6.0,   8.0,  10.0,  12.0,  14.0,  17.0,  19.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -9.0,  -7.0,  -4.0,  -2.0,   0.0,
-        2.0,   4.0,   6.0,   8.0,  10.0,  12.0,  14.0,  17.0,  19.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -9.0,  -7.0,  -5.0,  -3.0,  -1.0,
-        1.0,   3.0,   6.0,   8.0,  10.0,  12.0,  14.0,  16.0,  19.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  -9.0,  -7.0,  -5.0,  -3.0,  -1.0,
-        1.0,   3.0,   5.0,   8.0,  10.0,  12.0,  14.0,  16.0,  19.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0, -10.0,  -7.0,  -5.0,  -3.0,  -1.0,
-        1.0,   3.0,   5.0,   7.0,  10.0,  12.0,  14.0,  16.0,  19.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0, -10.0,  -8.0,  -6.0,  -3.0,  -1.0,
-        1.0,   3.0,   5.0,   7.0,   9.0,  12.0,  14.0,  16.0,  19.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0, -10.0,  -8.0,  -6.0,  -4.0,  -2.0,
-        1.0,   3.0,   5.0,   7.0,   9.0,  12.0,  14.0,  16.0,  19.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0, -10.0,  -8.0,  -6.0,  -4.0,  -2.0,
-        0.0,   3.0,   5.0,   7.0,   9.0,  11.0,  14.0,  16.0,  19.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0, -11.0,  -9.0,  -6.0,  -4.0,  -2.0,
-        0.0,   2.0,   5.0,   7.0,   9.0,  11.0,  14.0,  16.0,  19.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0, -11.0,  -9.0,  -7.0,  -4.0,  -2.0,
-        0.0,   2.0,   4.0,   7.0,   9.0,  11.0,  14.0,  16.0,  19.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0, -11.0,  -9.0,  -7.0,  -5.0,  -2.0,
-        0.0,   2.0,   4.0,   7.0,   9.0,  11.0,  14.0,  16.0,  19.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0, -12.0, -10.0,  -7.0,  -5.0,  -3.0,
-        0.0,   2.0,   4.0,   6.0,   9.0,  11.0,  13.0,  16.0,  18.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0, -12.0, -10.0,  -7.0,  -5.0,  -3.0,
-       -1.0,   2.0,   4.0,   6.0,   9.0,  11.0,  13.0,  16.0,  18.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0, -12.0, -10.0,  -8.0,  -5.0,  -3.0,
-       -1.0,   1.0,   4.0,   6.0,   8.0,  11.0,  13.0,  16.0,  18.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0, -13.0, -10.0,  -8.0,  -6.0,  -3.0,
-       -1.0,   1.0,   4.0,   6.0,   8.0,  11.0,  13.0,  16.0,  18.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0, -13.0, -11.0,  -8.0,  -6.0,  -4.0,
-       -1.0,   1.0,   3.0,   6.0,   8.0,  11.0,  13.0,  16.0,  18.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0, -13.0, -11.0,  -9.0,  -6.0,  -4.0,
-       -1.0,   1.0,   3.0,   6.0,   8.0,  11.0,  13.0,  16.0,  18.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0, -14.0, -11.0,  -9.0,  -6.0,  -4.0,
-       -2.0,   1.0,   3.0,   6.0,   8.0,  10.0,  13.0,  16.0,  18.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0, -14.0, -12.0,  -9.0,  -7.0,  -4.0,
-       -2.0,   1.0,   3.0,   5.0,   8.0,  10.0,  13.0,  15.0,  18.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0, -14.0, -12.0,  -9.0,  -7.0,  -5.0,
-       -2.0,   0.0,   3.0,   5.0,   8.0,  10.0,  13.0,  15.0,  18.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    },
-    {
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0, -15.0, -12.0, -10.0,  -7.0,  -5.0,
-       -2.0,   0.0,   3.0,   5.0,   8.0,  10.0,  13.0,  15.0,  18.0,  21.0,
-       24.0,  27.0,  30.0,  33.0,  36.0,  39.0,  43.0,  46.0,  50.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,
-       53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0,  53.0
-    }
-  };
-
-double precomp2_0001[100][100] =
-  {
-    {
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0
-    },
-    {
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,  99.0,
-       99.0,  99.0,  99.0,  99.0,  99.0,  10.0,  10.0,  11.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  10.0,  10.0,  11.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  10.0,  10.0,  11.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  10.0,  10.0,  11.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  10.0,  10.0,  11.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  10.0,  10.0,  11.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  10.0,  10.0,  11.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  10.0,  10.0,  11.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  10.0,  10.0,  11.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  10.0,  10.0,  11.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   9.0,  10.0,  11.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   9.0,  10.0,  11.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   9.0,  10.0,  11.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   9.0,  10.0,  11.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   9.0,  10.0,  11.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   9.0,  10.0,  11.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   9.0,  10.0,  11.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   9.0,  10.0,  11.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   9.0,  10.0,  11.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   9.0,  10.0,  10.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   9.0,  10.0,  10.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   9.0,  10.0,  10.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   9.0,   9.0,  10.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   9.0,   9.0,  10.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   8.0,   9.0,  10.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   8.0,   9.0,  10.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   8.0,   9.0,  10.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   8.0,   9.0,  10.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   8.0,   9.0,  10.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   8.0,   9.0,  10.0,  11.0,  12.0,
-       13.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   8.0,   9.0,   9.0,  10.0,  11.0,
-       12.0,  14.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   7.0,   8.0,   9.0,  10.0,  11.0,
-       12.0,  13.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   7.0,   8.0,   9.0,  10.0,  11.0,
-       12.0,  13.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   7.0,   8.0,   9.0,  10.0,  11.0,
-       12.0,  13.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   7.0,   8.0,   9.0,  10.0,  11.0,
-       12.0,  13.0,  15.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   7.0,   8.0,   9.0,  10.0,  11.0,
-       12.0,  13.0,  14.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   7.0,   8.0,   9.0,  10.0,  11.0,
-       12.0,  13.0,  14.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   6.0,   7.0,   9.0,  10.0,  11.0,
-       12.0,  13.0,  14.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   6.0,   7.0,   8.0,  10.0,  11.0,
-       12.0,  13.0,  14.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   6.0,   7.0,   8.0,   9.0,  11.0,
-       12.0,  13.0,  14.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   6.0,   7.0,   8.0,   9.0,  10.0,
-       12.0,  13.0,  14.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   6.0,   7.0,   8.0,   9.0,  10.0,
-       12.0,  13.0,  14.0,  16.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   5.0,   7.0,   8.0,   9.0,  10.0,
-       11.0,  13.0,  14.0,  15.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   5.0,   6.0,   8.0,   9.0,  10.0,
-       11.0,  13.0,  14.0,  15.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   5.0,   6.0,   7.0,   9.0,  10.0,
-       11.0,  13.0,  14.0,  15.0,  17.0,  19.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   5.0,   6.0,   7.0,   9.0,  10.0,
-       11.0,  13.0,  14.0,  15.0,  17.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   5.0,   6.0,   7.0,   8.0,  10.0,
-       11.0,  12.0,  14.0,  15.0,  17.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   4.0,   6.0,   7.0,   8.0,  10.0,
-       11.0,  12.0,  14.0,  15.0,  17.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   4.0,   5.0,   7.0,   8.0,   9.0,
-       11.0,  12.0,  14.0,  15.0,  17.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   4.0,   5.0,   7.0,   8.0,   9.0,
-       11.0,  12.0,  14.0,  15.0,  17.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   4.0,   5.0,   6.0,   8.0,   9.0,
-       11.0,  12.0,  14.0,  15.0,  17.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   3.0,   5.0,   6.0,   8.0,   9.0,
-       10.0,  12.0,  13.0,  15.0,  17.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   3.0,   5.0,   6.0,   7.0,   9.0,
-       10.0,  12.0,  13.0,  15.0,  17.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   3.0,   4.0,   6.0,   7.0,   9.0,
-       10.0,  12.0,  13.0,  15.0,  17.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   3.0,   4.0,   6.0,   7.0,   9.0,
-       10.0,  12.0,  13.0,  15.0,  16.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   2.0,   4.0,   5.0,   7.0,   8.0,
-       10.0,  12.0,  13.0,  15.0,  16.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   2.0,   4.0,   5.0,   7.0,   8.0,
-       10.0,  11.0,  13.0,  15.0,  16.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   2.0,   3.0,   5.0,   7.0,   8.0,
-       10.0,  11.0,  13.0,  15.0,  16.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   2.0,   3.0,   5.0,   6.0,   8.0,
-       10.0,  11.0,  13.0,  15.0,  16.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   1.0,   3.0,   5.0,   6.0,   8.0,
-        9.0,  11.0,  13.0,  14.0,  16.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   1.0,   3.0,   4.0,   6.0,   8.0,
-        9.0,  11.0,  13.0,  14.0,  16.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   1.0,   2.0,   4.0,   6.0,   8.0,
-        9.0,  11.0,  13.0,  14.0,  16.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   1.0,   2.0,   4.0,   6.0,   7.0,
-        9.0,  11.0,  12.0,  14.0,  16.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   0.0,   2.0,   4.0,   5.0,   7.0,
-        9.0,  11.0,  12.0,  14.0,  16.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   0.0,   2.0,   4.0,   5.0,   7.0,
-        9.0,  10.0,  12.0,  14.0,  16.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   0.0,   2.0,   3.0,   5.0,   7.0,
-        9.0,  10.0,  12.0,  14.0,  16.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,   0.0,   1.0,   3.0,   5.0,   7.0,
-        8.0,  10.0,  12.0,  14.0,  16.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -1.0,   1.0,   3.0,   5.0,   6.0,
-        8.0,  10.0,  12.0,  14.0,  16.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -1.0,   1.0,   3.0,   5.0,   6.0,
-        8.0,  10.0,  12.0,  14.0,  16.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -1.0,   1.0,   2.0,   4.0,   6.0,
-        8.0,  10.0,  12.0,  14.0,  16.0,  18.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -1.0,   0.0,   2.0,   4.0,   6.0,
-        8.0,  10.0,  12.0,  13.0,  15.0,  17.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -2.0,   0.0,   2.0,   4.0,   6.0,
-        8.0,  10.0,  11.0,  13.0,  15.0,  17.0,  20.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -2.0,   0.0,   2.0,   4.0,   6.0,
-        7.0,   9.0,  11.0,  13.0,  15.0,  17.0,  19.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -2.0,   0.0,   2.0,   3.0,   5.0,
-        7.0,   9.0,  11.0,  13.0,  15.0,  17.0,  19.0,  22.0,  24.0,  27.0,
-       30.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -3.0,  -1.0,   1.0,   3.0,   5.0,
-        7.0,   9.0,  11.0,  13.0,  15.0,  17.0,  19.0,  22.0,  24.0,  27.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -3.0,  -1.0,   1.0,   3.0,   5.0,
-        7.0,   9.0,  11.0,  13.0,  15.0,  17.0,  19.0,  22.0,  24.0,  27.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -3.0,  -1.0,   1.0,   3.0,   5.0,
-        7.0,   9.0,  11.0,  13.0,  15.0,  17.0,  19.0,  22.0,  24.0,  27.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -3.0,  -1.0,   1.0,   3.0,   5.0,
-        7.0,   9.0,  11.0,  13.0,  15.0,  17.0,  19.0,  22.0,  24.0,  27.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -4.0,  -2.0,   0.0,   2.0,   4.0,
-        7.0,   9.0,  11.0,  13.0,  15.0,  17.0,  19.0,  22.0,  24.0,  27.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -4.0,  -2.0,   0.0,   2.0,   4.0,
-        6.0,   8.0,  10.0,  13.0,  15.0,  17.0,  19.0,  22.0,  24.0,  27.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -4.0,  -2.0,   0.0,   2.0,   4.0,
-        6.0,   8.0,  10.0,  12.0,  15.0,  17.0,  19.0,  21.0,  24.0,  27.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -5.0,  -2.0,   0.0,   2.0,   4.0,
-        6.0,   8.0,  10.0,  12.0,  15.0,  17.0,  19.0,  21.0,  24.0,  27.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -5.0,  -3.0,  -1.0,   2.0,   4.0,
-        6.0,   8.0,  10.0,  12.0,  14.0,  17.0,  19.0,  21.0,  24.0,  27.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -5.0,  -3.0,  -1.0,   1.0,   3.0,
-        6.0,   8.0,  10.0,  12.0,  14.0,  17.0,  19.0,  21.0,  24.0,  27.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -5.0,  -3.0,  -1.0,   1.0,   3.0,
-        5.0,   8.0,  10.0,  12.0,  14.0,  17.0,  19.0,  21.0,  24.0,  27.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -6.0,  -4.0,  -1.0,   1.0,   3.0,
-        5.0,   7.0,  10.0,  12.0,  14.0,  16.0,  19.0,  21.0,  24.0,  27.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -6.0,  -4.0,  -2.0,   1.0,   3.0,
-        5.0,   7.0,  10.0,  12.0,  14.0,  16.0,  19.0,  21.0,  24.0,  27.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -6.0,  -4.0,  -2.0,   0.0,   3.0,
-        5.0,   7.0,   9.0,  12.0,  14.0,  16.0,  19.0,  21.0,  24.0,  27.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -7.0,  -4.0,  -2.0,   0.0,   2.0,
-        5.0,   7.0,   9.0,  12.0,  14.0,  16.0,  19.0,  21.0,  24.0,  27.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -7.0,  -5.0,  -2.0,   0.0,   2.0,
-        5.0,   7.0,   9.0,  11.0,  14.0,  16.0,  19.0,  21.0,  24.0,  26.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -7.0,  -5.0,  -3.0,   0.0,   2.0,
-        4.0,   7.0,   9.0,  11.0,  14.0,  16.0,  19.0,  21.0,  24.0,  26.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -8.0,  -5.0,  -3.0,   0.0,   2.0,
-        4.0,   6.0,   9.0,  11.0,  14.0,  16.0,  18.0,  21.0,  24.0,  26.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -8.0,  -5.0,  -3.0,  -1.0,   2.0,
-        4.0,   6.0,   9.0,  11.0,  13.0,  16.0,  18.0,  21.0,  24.0,  26.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -8.0,  -6.0,  -3.0,  -1.0,   1.0,
-        4.0,   6.0,   9.0,  11.0,  13.0,  16.0,  18.0,  21.0,  24.0,  26.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -8.0,  -6.0,  -4.0,  -1.0,   1.0,
-        4.0,   6.0,   8.0,  11.0,  13.0,  16.0,  18.0,  21.0,  24.0,  26.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -9.0,  -6.0,  -4.0,  -1.0,   1.0,
-        3.0,   6.0,   8.0,  11.0,  13.0,  16.0,  18.0,  21.0,  24.0,  26.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -9.0,  -7.0,  -4.0,  -2.0,   1.0,
-        3.0,   6.0,   8.0,  11.0,  13.0,  16.0,  18.0,  21.0,  24.0,  26.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  -9.0,  -7.0,  -4.0,  -2.0,   1.0,
-        3.0,   6.0,   8.0,  10.0,  13.0,  15.0,  18.0,  21.0,  23.0,  26.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    },
-    {
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0, -10.0,  -7.0,  -5.0,  -2.0,   0.0,
-        3.0,   5.0,   8.0,  10.0,  13.0,  15.0,  18.0,  21.0,  23.0,  26.0,
-       29.0,  32.0,  36.0,  39.0,  42.0,  46.0,  49.0,  53.0,  56.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,
-       60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0,  60.0
-    }
-  };
diff --git a/src/fasta.h b/src/rerep.cc
similarity index 53%
copy from src/fasta.h
copy to src/rerep.cc
index df5c4c7..d886f93 100644
--- a/src/fasta.h
+++ b/src/rerep.cc
@@ -1,3 +1,4 @@
+
 /*
 
   VSEARCH: a versatile open source tool for metagenomics
@@ -58,87 +59,53 @@
 
 */
 
-struct fasta_buffer_s
-{
-  char * data;
-  unsigned long length;
-  unsigned long alloc;
-  unsigned long position;
-};
+#include "vsearch.h"
 
-struct fasta_s
+void rereplicate()
 {
-  FILE * fp;
-
-#ifdef HAVE_ZLIB_H
-  gzFile fp_gz;
-#endif
-
-#ifdef HAVE_BZLIB_H
-  BZFILE * fp_bz;
-#endif
-
-  struct fasta_buffer_s file_buffer;
-  struct fasta_buffer_s header_buffer;
-  struct fasta_buffer_s sequence_buffer;
-
-  unsigned long file_size;
-  unsigned long file_position;
-
-  unsigned long lineno;
-  unsigned long lineno_start;
-  long seqno;
-
-  unsigned long stripped_all;
-  unsigned long stripped[256];
-
-  int format;
-};
-
-typedef struct fasta_s * fasta_handle;
-
-/* fasta input */
-
-fasta_handle fasta_open(const char * filename);
-void fasta_close(fasta_handle h);
-bool fasta_next(fasta_handle h,
-                bool truncateatspace,
-                char * char_mapping);
-unsigned long fasta_get_position(fasta_handle h);
-unsigned long fasta_get_size(fasta_handle h);
-unsigned long fasta_get_lineno(fasta_handle h);
-unsigned long fasta_get_seqno(fasta_handle h);
-char * fasta_get_header(fasta_handle h);
-char * fasta_get_sequence(fasta_handle h);
-unsigned long fasta_get_header_length(fasta_handle h);
-unsigned long fasta_get_sequence_length(fasta_handle h);
-long fasta_get_abundance(fasta_handle h);
-
-/* fasta output */
-
-void fasta_print_header(FILE * fp, const char * hdr);
-
-void fasta_print_sequence(FILE * fp, char * seq,
-                          unsigned long len, int width);
-
-void fasta_print(FILE * fp, const char * hdr,
-                 char * seq, unsigned long len);
-
-void fasta_print_relabel(FILE * fp,
-                         char * seq,
-                         int len,
-                         char * header,
-                         int header_len,
-                         int abundance,
-                         int ordinal);
-
-void fasta_print_db(FILE * fp, unsigned long seqno);
-
-void fasta_print_db_sequence(FILE * fp, unsigned long seqno);
-
-void fasta_print_db_size(FILE * fp, unsigned long seqno,
-                         unsigned long size);
-
-void fasta_print_db_strip_size(FILE * fp, unsigned long seqno);
-
-void fasta_print_db_relabel(FILE * fp, unsigned long seqno, int ordinal);
+  opt_xsize = 1;
+
+  FILE * fp_output = 0;
+
+  if (opt_output)
+    {
+      fp_output = fopen(opt_output, "w");
+      if (!fp_output)
+        fatal("Unable to open fasta output file for writing");
+    }
+
+  fasta_handle fh = fasta_open(opt_rereplicate);
+  long filesize = fasta_get_size(fh);
+
+  progress_init("Rereplicating", filesize);
+
+  long i = 0;
+  long n = 0;
+  while (fasta_next(fh, ! opt_notrunclabels, chrmap_no_change))
+    {
+      n++;
+      long abundance = fasta_get_abundance(fh);
+      
+      for(long j=0; j<abundance; j++)
+        {
+          i++;
+          if (opt_output)
+            fasta_print_relabel(fp_output,
+                                fasta_get_sequence(fh),
+                                fasta_get_sequence_length(fh),
+                                fasta_get_header(fh),
+                                fasta_get_header_length(fh),
+                                1,
+                                i);
+        }
+
+      progress_update(fasta_get_position(fh));
+    }
+  progress_done();
+  
+  fprintf(stderr, "Rereplicated %ld reads from %ld amplicons\n", i, n);
+
+  fasta_close(fh);
+
+  fclose(fp_output);
+}
diff --git a/src/fasta.h b/src/rerep.h
similarity index 53%
copy from src/fasta.h
copy to src/rerep.h
index df5c4c7..823177f 100644
--- a/src/fasta.h
+++ b/src/rerep.h
@@ -58,87 +58,4 @@
 
 */
 
-struct fasta_buffer_s
-{
-  char * data;
-  unsigned long length;
-  unsigned long alloc;
-  unsigned long position;
-};
-
-struct fasta_s
-{
-  FILE * fp;
-
-#ifdef HAVE_ZLIB_H
-  gzFile fp_gz;
-#endif
-
-#ifdef HAVE_BZLIB_H
-  BZFILE * fp_bz;
-#endif
-
-  struct fasta_buffer_s file_buffer;
-  struct fasta_buffer_s header_buffer;
-  struct fasta_buffer_s sequence_buffer;
-
-  unsigned long file_size;
-  unsigned long file_position;
-
-  unsigned long lineno;
-  unsigned long lineno_start;
-  long seqno;
-
-  unsigned long stripped_all;
-  unsigned long stripped[256];
-
-  int format;
-};
-
-typedef struct fasta_s * fasta_handle;
-
-/* fasta input */
-
-fasta_handle fasta_open(const char * filename);
-void fasta_close(fasta_handle h);
-bool fasta_next(fasta_handle h,
-                bool truncateatspace,
-                char * char_mapping);
-unsigned long fasta_get_position(fasta_handle h);
-unsigned long fasta_get_size(fasta_handle h);
-unsigned long fasta_get_lineno(fasta_handle h);
-unsigned long fasta_get_seqno(fasta_handle h);
-char * fasta_get_header(fasta_handle h);
-char * fasta_get_sequence(fasta_handle h);
-unsigned long fasta_get_header_length(fasta_handle h);
-unsigned long fasta_get_sequence_length(fasta_handle h);
-long fasta_get_abundance(fasta_handle h);
-
-/* fasta output */
-
-void fasta_print_header(FILE * fp, const char * hdr);
-
-void fasta_print_sequence(FILE * fp, char * seq,
-                          unsigned long len, int width);
-
-void fasta_print(FILE * fp, const char * hdr,
-                 char * seq, unsigned long len);
-
-void fasta_print_relabel(FILE * fp,
-                         char * seq,
-                         int len,
-                         char * header,
-                         int header_len,
-                         int abundance,
-                         int ordinal);
-
-void fasta_print_db(FILE * fp, unsigned long seqno);
-
-void fasta_print_db_sequence(FILE * fp, unsigned long seqno);
-
-void fasta_print_db_size(FILE * fp, unsigned long seqno,
-                         unsigned long size);
-
-void fasta_print_db_strip_size(FILE * fp, unsigned long seqno);
-
-void fasta_print_db_relabel(FILE * fp, unsigned long seqno, int ordinal);
+void rereplicate();
diff --git a/src/util.cc b/src/util.cc
index c7ce250..f9afc5c 100644
--- a/src/util.cc
+++ b/src/util.cc
@@ -65,23 +65,28 @@ static unsigned long progress_next;
 static unsigned long progress_size;
 static unsigned long progress_chunk;
 static const unsigned long progress_granularity = 200;
+static bool progress_terminal;
 
 void progress_init(const char * prompt, unsigned long size)
 {
+  progress_terminal = isatty(fileno(stderr));
+  progress_prompt = prompt;
+  progress_size = size;
+  progress_chunk = size < progress_granularity ?
+    1 : size / progress_granularity;
+  progress_next = 0;
+
   if (! opt_quiet)
     {
-      progress_prompt = prompt;
-      progress_size = size;
-      progress_chunk = size < progress_granularity ? 
-        1 : size / progress_granularity;
-      progress_next = 0;
-      fprintf(stderr, "%s %.0f%%", prompt, 0.0);
+      fprintf(stderr, "%s", prompt);
+      if (progress_terminal)
+        fprintf(stderr, " %.0f%%", 0.0);
     }
 }
 
 void progress_update(unsigned long progress)
 {
-  if (! opt_quiet)
+  if ((! opt_quiet) && progress_terminal)
     if (progress >= progress_next)
       {
         if (progress_size > 0)
@@ -96,7 +101,11 @@ void progress_update(unsigned long progress)
 void progress_done()
 {
   if (! opt_quiet)
-    fprintf(stderr, "  \r%s %.0f%%\n", progress_prompt, 100.0);
+    {
+      if (progress_terminal)
+        fprintf(stderr, "  \r%s", progress_prompt);
+      fprintf(stderr, " %.0f%%\n", 100.0);
+    }
 }
 
 long gcd(long a, long b)
diff --git a/src/vsearch.cc b/src/vsearch.cc
index 0a5906d..bd62f36 100644
--- a/src/vsearch.cc
+++ b/src/vsearch.cc
@@ -62,12 +62,13 @@
 
 /* options */
 
-bool opt_fastq_allowmergestagger;
-bool opt_fastq_nostagger;
-bool opt_fastq_eeout;
 bool opt_clusterout_id;
 bool opt_clusterout_sort;
 bool opt_eeout;
+bool opt_fasta_score;
+bool opt_fastq_allowmergestagger;
+bool opt_fastq_eeout;
+bool opt_fastq_nostagger;
 bool opt_quiet;
 bool opt_relabel_keep;
 bool opt_relabel_md5;
@@ -75,12 +76,6 @@ bool opt_relabel_sha1;
 bool opt_samheader;
 bool opt_sizeorder;
 bool opt_xsize;
-char * opt_eetabbedout;
-char * opt_fastaout_notmerged_fwd;
-char * opt_fastaout_notmerged_rev;
-char * opt_fastq_mergepairs;
-char * opt_fastqout_notmerged_fwd;
-char * opt_fastqout_notmerged_rev;
 char * opt_allpairs_global;
 char * opt_alnout;
 char * opt_blast6out;
@@ -97,15 +92,22 @@ char * opt_dbmatched;
 char * opt_dbnotmatched;
 char * opt_derep_fulllength;
 char * opt_derep_prefix;
+char * opt_eetabbedout;
 char * opt_fastaout;
 char * opt_fastaout_discarded;
+char * opt_fastaout_notmerged_fwd;
+char * opt_fastaout_notmerged_rev;
 char * opt_fastapairs;
 char * opt_fastq_chars;
 char * opt_fastq_convert;
+char * opt_fastq_eestats;
 char * opt_fastq_filter;
+char * opt_fastq_mergepairs;
 char * opt_fastq_stats;
 char * opt_fastqout;
 char * opt_fastqout_discarded;
+char * opt_fastqout_notmerged_fwd;
+char * opt_fastqout_notmerged_rev;
 char * opt_fastx_mask;
 char * opt_fastx_revcomp;
 char * opt_fastx_subsample;
@@ -120,6 +122,8 @@ char * opt_output;
 char * opt_pattern;
 char * opt_profile;
 char * opt_relabel;
+char * opt_rereplicate;
+char * opt_reverse;
 char * opt_samout;
 char * opt_search_exact;
 char * opt_shuffle;
@@ -132,7 +136,6 @@ char * opt_uchimealns;
 char * opt_uchimeout;
 char * opt_usearch_global;
 char * opt_userout;
-char * opt_reverse;
 double opt_abskew;
 double opt_dn;
 double opt_fastq_maxee;
@@ -176,16 +179,16 @@ int opt_slots;
 int opt_uchimeout5;
 int opt_usersort;
 int opt_version;
-long opt_fastq_maxdiffs;
-long opt_fastq_maxmergelen;
-long opt_fastq_minmergelen;
-long opt_fastq_minovlen;
 long opt_dbmask;
 long opt_fasta_width;
 long opt_fastq_ascii;
 long opt_fastq_asciiout;
+long opt_fastq_maxdiffs;
+long opt_fastq_maxmergelen;
 long opt_fastq_maxns;
 long opt_fastq_minlen;
+long opt_fastq_minmergelen;
+long opt_fastq_minovlen;
 long opt_fastq_qmax;
 long opt_fastq_qmaxout;
 long opt_fastq_qmin;
@@ -285,7 +288,7 @@ void cpu_features_detect()
     sse42_present  = (c >> 20) & 1;
     popcnt_present = (c >> 23) & 1;
     avx_present    = (c >> 28) & 1;
-    
+
     if (maxlevel >= 7)
     {
       cpuid(7, 0, a, b, c, d);
@@ -324,14 +327,14 @@ void cpu_features_show()
 void args_get_gap_penalty_string(char * arg, int is_open)
 {
   /* See http://www.drive5.com/usearch/manual/aln_params.html
-     
+
      --gapopen *E/10I/1E/2L/3RQ/4RT/1IQ
      --gapext *E/10I/1E/2L/3RQ/4RT/1IQ
-     
+
      integer or *
      followed by I, E, L, R, Q or T characters
      separated by /
-     * means infinitely high (disallow)        
+     * means infinitely high (disallow)
      E=end
      I=interior
      L=left
@@ -340,12 +343,12 @@ void args_get_gap_penalty_string(char * arg, int is_open)
      T=target
 
      E cannot be combined with L or R
-     
+
      We do not support floating point values. Therefore,
      all default score and penalties are multiplied by 2.
 
   */
-  
+
   char *p = arg;
 
   while (*p)
@@ -402,13 +405,13 @@ void args_get_gap_penalty_string(char * arg, int is_open)
             }
           p++;
         }
-      
+
       if (*p == '/')
         p++;
 
       if (set_E && (set_L || set_R))
         fatal("Invalid gap penalty string (E and L or R) '%s'", q);
-      
+
       if (set_E)
         {
           set_L = 1;
@@ -451,7 +454,7 @@ void args_get_gap_penalty_string(char * arg, int is_open)
                 opt_gap_open_target_interior = pen;
               if (set_R)
                 opt_gap_open_target_right = pen;
-            }     
+            }
         }
       else
         {
@@ -472,7 +475,7 @@ void args_get_gap_penalty_string(char * arg, int is_open)
                 opt_gap_extension_target_interior = pen;
               if (set_R)
                 opt_gap_extension_target_right = pen;
-            }     
+            }
         }
     }
 }
@@ -532,6 +535,7 @@ void args_init(int argc, char **argv)
   opt_eetabbedout = 0;
   opt_fastaout_notmerged_fwd = 0;
   opt_fastaout_notmerged_rev = 0;
+  opt_fasta_score = 0;
   opt_fasta_width = 80;
   opt_fastaout = 0;
   opt_fastaout_discarded = 0;
@@ -542,8 +546,9 @@ void args_init(int argc, char **argv)
   opt_fastq_chars = 0;
   opt_fastq_convert = 0;
   opt_fastq_eeout = 0;
+  opt_fastq_eestats = 0;
   opt_fastq_filter = 0;
-  opt_fastq_maxdiffs = 1000000;
+  opt_fastq_maxdiffs = 5;
   opt_fastq_maxee = DBL_MAX;
   opt_fastq_maxee_rate = DBL_MAX;
   opt_fastq_maxmergelen  = 1000000;
@@ -551,7 +556,7 @@ void args_init(int argc, char **argv)
   opt_fastq_mergepairs = 0;
   opt_fastq_minlen = 1;
   opt_fastq_minmergelen = 0;
-  opt_fastq_minovlen = 16;
+  opt_fastq_minovlen = 10;
   opt_fastq_nostagger = 1;
   opt_fastqout_notmerged_fwd = 0;
   opt_fastqout_notmerged_rev = 0;
@@ -640,6 +645,7 @@ void args_init(int argc, char **argv)
   opt_relabel_keep = 0;
   opt_relabel_md5 = 0;
   opt_relabel_sha1 = 0;
+  opt_rereplicate = 0;
   opt_reverse = 0;
   opt_rightjust = 0;
   opt_rowlen = 64;
@@ -849,9 +855,16 @@ void args_init(int argc, char **argv)
     {"fastaout_notmerged_rev",required_argument, 0, 0 },
     {"reverse",               required_argument, 0, 0 },
     {"eetabbedout",           required_argument, 0, 0 },
+    {"fasta_score",           no_argument,       0, 0 },
+    {"fastq_eestats",         required_argument, 0, 0 },
+    {"rereplicate",           required_argument, 0, 0 },
+    {"xdrop_nw",              required_argument, 0, 0 },
+    {"minhsp",                required_argument, 0, 0 },
+    {"band",                  required_argument, 0, 0 },
+    {"hspw",                  required_argument, 0, 0 },
     { 0, 0, 0, 0 }
   };
-  
+
   int option_count = sizeof(long_options) / sizeof(struct option);
   bool options_selected[option_count];
 
@@ -859,8 +872,8 @@ void args_init(int argc, char **argv)
 
   int option_index = 0;
   int c;
-  
-  while ((c = getopt_long_only(argc, argv, "", long_options, 
+
+  while ((c = getopt_long_only(argc, argv, "", long_options,
                                &option_index)) == 0)
     {
       if (option_index < option_count)
@@ -871,7 +884,7 @@ void args_init(int argc, char **argv)
         case 0:
           opt_help = 1;
           break;
-              
+
         case 1:
           opt_version = 1;
           break;
@@ -879,7 +892,7 @@ void args_init(int argc, char **argv)
         case 2:
           opt_alnout = optarg;
           break;
-          
+
         case 3:
           opt_usearch_global = optarg;
           break;
@@ -949,19 +962,19 @@ void args_init(int argc, char **argv)
         case 18:
           opt_userout = optarg;
           break;
-      
+
         case 19:
           opt_self = 1;
           break;
-      
+
         case 20:
           opt_blast6out = optarg;
           break;
-      
+
         case 21:
           opt_uc = optarg;
           break;
-      
+
         case 22:
           opt_weak_id = args_getdouble(optarg);
           break;
@@ -1242,63 +1255,63 @@ void args_init(int argc, char **argv)
         case 87:
           opt_abskew = args_getdouble(optarg);
           break;
-          
+
         case 88:
           opt_chimeras = optarg;
           break;
-          
+
         case 89:
           opt_dn = args_getdouble(optarg);
           break;
-          
+
         case 90:
           opt_mindiffs = args_getlong(optarg);
           break;
-          
+
         case 91:
           opt_mindiv = args_getdouble(optarg);
           break;
-          
+
         case 92:
           opt_minh = args_getdouble(optarg);
           break;
-          
+
         case 93:
           opt_nonchimeras = optarg;
           break;
-          
+
         case 94:
           opt_uchime_denovo = optarg;
           break;
-          
+
         case 95:
           opt_uchime_ref = optarg;
           break;
-          
+
         case 96:
           opt_uchimealns = optarg;
           break;
-          
+
         case 97:
           opt_uchimeout = optarg;
           break;
-          
+
         case 98:
           opt_uchimeout5 = 1;
           break;
-          
+
         case 99:
           opt_alignwidth = args_getlong(optarg);
           break;
-          
+
         case 100:
           opt_allpairs_global = optarg;
           break;
-          
+
         case 101:
           opt_acceptall = 1;
           break;
-          
+
         case 102:
           opt_cluster_size = optarg;
           break;
@@ -1334,7 +1347,7 @@ void args_init(int argc, char **argv)
         case 110:
           opt_sample_size = args_getlong(optarg);
           break;
-          
+
         case 111:
           opt_fastaout = optarg;
           break;
@@ -1555,6 +1568,38 @@ void args_init(int argc, char **argv)
           opt_eetabbedout = optarg;
           break;
 
+        case 166:
+          opt_fasta_score = 1;
+          break;
+
+        case 167:
+          opt_fastq_eestats = optarg;
+          break;
+
+        case 168:
+          opt_rereplicate = optarg;
+          break;
+
+        case 169:
+          /* xdrop_nw ignored */
+          fprintf(stderr, "WARNING: Option --xdrop_nw is ignored\n");
+          break;
+
+        case 170:
+          /* minhsp ignored */
+          fprintf(stderr, "WARNING: Option --minhsp is ignored\n");
+          break;
+
+        case 171:
+          /* band ignored */
+          fprintf(stderr, "WARNING: Option --band is ignored\n");
+          break;
+
+        case 172:
+          /* hspw ignored */
+          fprintf(stderr, "WARNING: Option --hspw is ignored\n");
+          break;
+
         default:
           fatal("Internal error in option parsing");
         }
@@ -1618,7 +1663,11 @@ void args_init(int argc, char **argv)
     commands++;
   if (opt_fastq_mergepairs)
     commands++;
-  
+  if (opt_fastq_eestats)
+    commands++;
+  if (opt_rereplicate)
+    commands++;
+
   if (commands > 1)
     fatal("More than one command specified");
 
@@ -1665,16 +1714,16 @@ void args_init(int argc, char **argv)
 
   if (opt_strand < 1)
     fatal("The argument to --strand must be plus or both");
-  
+
   if (opt_qmask == MASK_ERROR)
     fatal("The argument to --qmask must be none, dust or soft");
-  
+
   if (opt_dbmask == MASK_ERROR)
     fatal("The argument to --dbmask must be none, dust or soft");
 
   if ((opt_sample_pct < 0.0) || (opt_sample_pct > 100.0))
     fatal("The argument to --sample_pct must be in the range 0.0 to 100.0");
-  
+
   if (opt_sample_size < 0)
     fatal("The argument to --sample_size must not be negative");
 
@@ -1698,17 +1747,17 @@ void args_init(int argc, char **argv)
 
   if (opt_fastq_qmin > opt_fastq_qmax)
     fatal("The argument to --fastq_qmin cannot be larger than to --fastq_qmax");
-  
+
   if (opt_fastq_qminout > opt_fastq_qmaxout)
     fatal("The argument to --fastq_qminout cannot be larger than to --fastq_qmaxout");
-  
+
   /* TODO: check valid range of gap penalties */
 
   /* adapt/adjust parameters */
 
 #if 1
 
-  /* 
+  /*
      Adjust gap open penalty according to convention.
 
      The specified gap open penalties include the penalty for
@@ -1755,10 +1804,10 @@ void cmd_help()
 
   if (! opt_quiet)
     {
-      fprintf(stdout, 
+      fprintf(stdout,
               "Usage: %s [OPTIONS]\n", progname);
-      
-      fprintf(stdout, 
+
+      fprintf(stdout,
               "\n"
               "General options\n"
               "  --fasta_width INT           width of FASTA seq lines, 0 for no wrap (80)\n"
@@ -1781,6 +1830,7 @@ void cmd_help()
               "  --chimeras FILENAME         output chimeric sequences to file\n"
               "  --db FILENAME               reference database for --uchime_ref\n"
               "  --dn REAL                   'no' vote pseudo-count (1.4)\n"
+              "  --fasta_score               include chimera score in fasta output\n"
               "  --mindiffs INT              minimum number of differences in segment (3)\n"
               "  --mindiv REAL               minimum divergence from closest parent (0.8)\n"
               "  --minh REAL                 minimum score (0.28)\n"
@@ -1826,23 +1876,24 @@ void cmd_help()
               "  --usersort                  indicate sequences not pre-sorted by length\n"
               "  --xsize                     strip abundance information in output\n"
               "\n"
-              "Dereplication\n"
+              "Dereplication and rereplication\n"
               "  --derep_fulllength FILENAME dereplicate sequences in the given FASTA file\n"
               "  --derep_prefix FILENAME     dereplicate sequences in file based on prefixes\n"
+              "  --rereplicate FILENAME      rereplicate sequences in the given FASTA file\n"
               "Options\n"
               "  --maxuniquesize INT         maximum abundance for output from dereplication\n"
               "  --minuniquesize INT         minimum abundance for output from dereplication\n"
               "  --output FILENAME           output FASTA file\n"
-              "  --relabel STRING            relabel with this prefix string after derep.\n"
+              "  --relabel STRING            relabel with this prefix string\n"
               "  --relabel_keep              keep the old label after the new when relabelling\n"
               "  --relabel_md5               relabel with md5 digest of normalized sequence\n"
               "  --relabel_sha1              relabel with sha1 digest of normalized sequence\n"
               "  --sizein                    propagate abundance annotation from input\n"
               "  --sizeout                   write abundance annotation to output\n"
               "  --strand plus|both          dereplicate plus or both strands (plus)\n"
-              "  --topn INT                  output just the n most abundant sequences\n"
-              "  --uc FILENAME               filename for UCLUST-like output\n"
-              "  --xsize                     strip abundance information in output\n"
+              "  --topn INT                  output only n most abundant sequences after derep\n"
+              "  --uc FILENAME               filename for UCLUST-like dereplication output\n"
+              "  --xsize                     strip abundance information in derep output\n"
               "\n"
               "FASTQ filtering\n"
               "  --fastq_filter FILENAME     filter FASTQ file, output to FASTQ or FASTA file\n"
@@ -1892,13 +1943,13 @@ void cmd_help()
               "  --fastq_allowmergestagger   Allow merging of staggered reads\n"
               "  --fastq_ascii INT           FASTQ input quality score ASCII base char (33)\n"
               "  --fastq_eeout               include expected errors in FASTQ output\n"
-              "  --fastq_maxdiffs            maximum number of different bases in overlap\n"
+              "  --fastq_maxdiffs            maximum number of different bases in overlap (5)\n"
               "  --fastq_maxee REAL          maximum expected error value for merged sequence\n"
               "  --fastq_maxmergelen         maximum length of entire merged sequence\n"
               "  --fastq_maxns INT           maximum number of N's\n"
               "  --fastq_minlen INT          minimum input read length after truncation (1)\n"
               "  --fastq_minmergelen         minimum length of entire merged sequence\n"
-              "  --fastq_minovlen            minimum length of overlap between reads\n"
+              "  --fastq_minovlen            minimum length of overlap between reads (16)\n"
               "  --fastq_nostagger           disallow merging of staggered reads (default)\n"
               "  --fastq_qmax INT            maximum base quality value for FASTQ input (41)\n"
               "  --fastq_qmaxout INT         maximum base quality value for FASTQ output (41)\n"
@@ -1913,6 +1964,7 @@ void cmd_help()
               "\n"
               "FASTQ quality statistics\n"
               "  --fastq_stats FILENAME      report FASTQ file statistics\n"
+              "  --fastq_eestats FILENAME    quality score and expected error statistics\n"
               "Options\n"
               "  --fastq_ascii INT           FASTQ input quality score ASCII base char (33)\n"
               "  --fastq_qmax INT            maximum base quality value for FASTQ input (41)\n"
@@ -2066,8 +2118,8 @@ void cmd_allpairs_global()
       (!opt_matched) && (!opt_notmatched) &&
       (!opt_samout))
     fatal("No output files specified");
-  
-  if (! (opt_acceptall || ((opt_id >= 0.0) && (opt_id <= 1.0)))) 
+
+  if (! (opt_acceptall || ((opt_id >= 0.0) && (opt_id <= 1.0))))
     fatal("Specify either --acceptall or --id with an identity from 0.0 to 1.0");
 
   allpairs_global(cmdline, progheader);
@@ -2083,10 +2135,10 @@ void cmd_usearch_global()
       (!opt_dbmatched) && (!opt_dbnotmatched) &&
       (!opt_samout))
     fatal("No output files specified");
-  
+
   if (!opt_db)
     fatal("Database filename not specified with --db");
-  
+
   if ((opt_id < 0.0) || (opt_id > 1.0))
     fatal("Identity between 0.0 and 1.0 must be specified with --id");
 
@@ -2126,11 +2178,19 @@ void cmd_sortbylength()
   sortbylength();
 }
 
+void cmd_rereplicate()
+{
+  if (!opt_output)
+    fatal("FASTA output file for rereplicate must be specified with --output");
+
+  rereplicate();
+}
+
 void cmd_derep()
 {
   if ((!opt_output) && (!opt_uc))
     fatal("Output file for derepl_fulllength must be specified with --output or --uc");
-  
+
   if (opt_derep_fulllength)
     derep_fulllength();
   else
@@ -2146,14 +2206,22 @@ void cmd_shuffle()
 {
   if (!opt_output)
     fatal("Output file for shuffling must be specified with --output");
-  
+
   shuffle();
 }
 
+void cmd_fastq_eestats()
+{
+  if (!opt_output)
+    fatal("Output file for fastq_eestats must be specified with --output");
+
+  fastq_eestats();
+}
+
 void cmd_subsample()
 {
   if ((!opt_fastaout) && (!opt_fastqout))
-    fatal("Specifiy output files for subsampling with --fastaout and/or --fastqout");
+    fatal("Specify output files for subsampling with --fastaout and/or --fastqout");
 
   if ((opt_sample_pct > 0) == (opt_sample_size > 0))
     fatal("Specify either --sample_pct or --sample_size, not both");
@@ -2165,14 +2233,14 @@ void cmd_maskfasta()
 {
   if (!opt_output)
     fatal("Output file for masking must be specified with --output");
-  
+
   maskfasta();
 }
 
 void cmd_fastx_mask()
 {
   if ((!opt_fastaout) && (!opt_fastqout))
-    fatal("Specifiy output files for masking with --fastaout and/or --fastqout");
+    fatal("Specify output files for masking with --fastaout and/or --fastqout");
 
   fastx_mask();
 }
@@ -2195,12 +2263,14 @@ void cmd_none()
             "vsearch --derep_prefix FILENAME --output FILENAME\n"
             "vsearch --fastq_chars FILENAME\n"
             "vsearch --fastq_convert FILENAME --fastqout FILENAME --fastq_ascii 64\n"
+            "vsearch --fastq_eestats FILENAME --output FILENAME\n"
             "vsearch --fastq_filter FILENAME --fastqout FILENAME --fastq_truncqual 20\n"
             "vsearch --fastq_mergepairs FILENAME --reverse FILENAME --fastqout FILENAME\n"
             "vsearch --fastq_stats FILENAME --log FILENAME\n"
             "vsearch --fastx_mask FILENAME --fastaout FILENAME\n"
             "vsearch --fastx_revcomp FILENAME --fastqout FILENAME\n"
             "vsearch --fastx_subsample FILENAME --fastaout FILENAME --sample_pct 1\n"
+            "vsearch --rereplicate FILENAME --output FILENAME\n"
             "vsearch --search_exact FILENAME --db FILENAME --alnout FILENAME\n"
             "vsearch --shuffle FILENAME --output FILENAME\n"
             "vsearch --sortbylength FILENAME --output FILENAME\n"
@@ -2216,7 +2286,7 @@ void cmd_fastx_revcomp()
 {
   if ((!opt_fastaout) && (!opt_fastqout))
     fatal("No output files specified");
-  
+
   fastx_revcomp();
 }
 
@@ -2224,7 +2294,7 @@ void cmd_fastq_convert()
 {
   if (! opt_fastqout)
     fatal("No output file specified with --fastqout");
-  
+
   fastq_convert();
 }
 
@@ -2237,7 +2307,7 @@ void cmd_cluster()
       (!opt_consout) && (!opt_msaout) &&
       (!opt_samout) && (!opt_profile))
     fatal("No output files specified");
-  
+
   if ((opt_id < 0.0) || (opt_id > 1.0))
     fatal("Identity between 0.0 and 1.0 must be specified with --id");
 
@@ -2263,7 +2333,7 @@ void cmd_uchime()
 
   if (opt_dn <= 0.0)
     fatal("Argument to --dn must be > 0");
-  
+
   if (opt_mindiffs <= 0)
     fatal("Argument to --mindiffs must be > 0");
 
@@ -2304,7 +2374,7 @@ void cmd_fastq_mergepairs()
 
 void fillheader()
 {
-  snprintf(progheader, 80, 
+  snprintf(progheader, 80,
            "%s v%s_%s, %.1fGB RAM, %ld cores",
            PROG_NAME, PROG_VERSION, PROG_ARCH,
            arch_get_memtotal() / 1024.0 / 1024.0 / 1024.0,
@@ -2409,12 +2479,16 @@ int main(int argc, char** argv)
     cmd_fastq_convert();
   else if (opt_fastq_mergepairs)
     cmd_fastq_mergepairs();
+  else if (opt_fastq_eestats)
+    cmd_fastq_eestats();
+  else if (opt_rereplicate)
+    cmd_rereplicate();
   else if (opt_version)
     {
     }
   else
     cmd_none();
-  
+
   if (opt_log)
     {
 
@@ -2428,7 +2502,7 @@ int main(int argc, char** argv)
 
       time_t time_diff = time_finish - time_start;
       fprintf(fp_log, "\n");
-      fprintf(fp_log, "Elapsed time %02lu:%02lu\n", 
+      fprintf(fp_log, "Elapsed time %02lu:%02lu\n",
               time_diff / 60, time_diff % 60);
       double maxmem = arch_get_memused() / 1048576.0;
       if (maxmem < 1024.0)
diff --git a/src/vsearch.h b/src/vsearch.h
index e5fa59a..a2353ec 100644
--- a/src/vsearch.h
+++ b/src/vsearch.h
@@ -145,6 +145,8 @@
 #include "dbhash.h"
 #include "searchexact.h"
 #include "mergepairs.h"
+#include "eestats.h"
+#include "rerep.h"
 
 #define PROG_NAME PACKAGE
 #define PROG_VERSION PACKAGE_VERSION
@@ -160,6 +162,7 @@
 extern bool opt_clusterout_id;
 extern bool opt_clusterout_sort;
 extern bool opt_eeout;
+extern bool opt_fasta_score;
 extern bool opt_fastq_allowmergestagger;
 extern bool opt_fastq_eeout;
 extern bool opt_fastq_nostagger;
@@ -187,20 +190,21 @@ extern char * opt_dbnotmatched;
 extern char * opt_derep_fulllength;
 extern char * opt_derep_prefix;
 extern char * opt_eetabbedout;
-extern char * opt_fastaout_notmerged_fwd;
-extern char * opt_fastaout_notmerged_rev;
 extern char * opt_fastaout;
 extern char * opt_fastaout_discarded;
+extern char * opt_fastaout_notmerged_fwd;
+extern char * opt_fastaout_notmerged_rev;
 extern char * opt_fastapairs;
 extern char * opt_fastq_chars;
 extern char * opt_fastq_convert;
+extern char * opt_fastq_eestats;
 extern char * opt_fastq_filter;
 extern char * opt_fastq_mergepairs;
-extern char * opt_fastqout_notmerged_fwd;
-extern char * opt_fastqout_notmerged_rev;
 extern char * opt_fastq_stats;
 extern char * opt_fastqout;
 extern char * opt_fastqout_discarded;
+extern char * opt_fastqout_notmerged_fwd;
+extern char * opt_fastqout_notmerged_rev;
 extern char * opt_fastx_mask;
 extern char * opt_fastx_revcomp;
 extern char * opt_fastx_subsample;
@@ -215,6 +219,7 @@ extern char * opt_output;
 extern char * opt_pattern;
 extern char * opt_profile;
 extern char * opt_relabel;
+extern char * opt_rereplicate;
 extern char * opt_reverse;
 extern char * opt_samout;
 extern char * opt_search_exact;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/vsearch.git



More information about the debian-med-commit mailing list