Improve performance of Unicode {de,re}composition in the backend
authorMichael Paquier <michael@paquier.xyz>
Fri, 23 Oct 2020 02:05:46 +0000 (11:05 +0900)
committerMichael Paquier <michael@paquier.xyz>
Fri, 23 Oct 2020 02:05:46 +0000 (11:05 +0900)
This replaces the existing binary search with two perfect hash functions
for the composition and the decomposition in the backend code, at the
cost of slightly-larger binaries there (35kB in libpgcommon_srv.a).  Per
the measurements done, this improves the speed of the recomposition and
decomposition by up to 30~40 times for the NFC and NFKC conversions,
while all other operations get at least 40% faster.  This is not as
"good" as what libicu has, but it closes the gap a lot as per the
feedback from Daniel Verite.

The decomposition table remains the same, getting used for the binary
search in the frontend code, where we care more about the size of the
libraries like libpq over performance as this gets involved only in code
paths related to the SCRAM authentication.  In consequence, note that
the perfect hash function for the recomposition needs to use a new
inverse lookup array back to to the existing decomposition table.

The size of all frontend deliverables remains unchanged, even with
--enable-debug, including libpq.

Author: John Naylor
Reviewed-by: Michael Paquier, Tom Lane
Discussion: https://postgr.es/m/CAFBsxsHUuMFCt6-pU+oG-F1==CmEp8wR+O+bRouXWu6i8kXuqA@mail.gmail.com

src/common/unicode/Makefile
src/common/unicode/generate-unicode_norm_table.pl
src/common/unicode_norm.c
src/include/common/unicode_norm_hashfunc.h [new file with mode: 0644]
src/tools/pgindent/exclude_file_patterns

index 93a9d1615f1c1379c90bbb9d0dcff38caffbd82a..eb14add28ad6ddc512414c7d0a52e5cf17c9b893 100644 (file)
@@ -18,7 +18,7 @@ LIBS += $(PTHREAD_LIBS)
 # By default, do nothing.
 all:
 
-update-unicode: unicode_norm_table.h unicode_combining_table.h unicode_normprops_table.h
+update-unicode: unicode_norm_table.h unicode_combining_table.h unicode_normprops_table.h unicode_norm_hashfunc.h
        mv $^ ../../../src/include/common/
        $(MAKE) normalization-check
 
@@ -30,6 +30,8 @@ UnicodeData.txt DerivedNormalizationProps.txt CompositionExclusions.txt Normaliz
 
 # Generation of conversion tables used for string normalization with
 # UTF-8 strings.
+unicode_norm_hashfunc.h: unicode_norm_table.h
+
 unicode_norm_table.h: generate-unicode_norm_table.pl UnicodeData.txt CompositionExclusions.txt
        $(PERL) generate-unicode_norm_table.pl
 
index 7ce15e1a0395a0ee8e300eef6b8d7cabd687db3a..e4d3ccc2346a81459950802436cd224cfd6939de 100644 (file)
@@ -1,16 +1,22 @@
 #!/usr/bin/perl
 #
-# Generate a composition table, using Unicode data files as input
+# Generate a composition table and its lookup utilities, using Unicode data
+# files as input.
 #
 # Input: UnicodeData.txt and CompositionExclusions.txt
-# Output: unicode_norm_table.h
+# Output: unicode_norm_table.h and unicode_norm_hashfunc.h
 #
 # Copyright (c) 2000-2020, PostgreSQL Global Development Group
 
 use strict;
 use warnings;
 
-my $output_file = "unicode_norm_table.h";
+use FindBin;
+use lib "$FindBin::RealBin/../../tools/";
+use PerfectHash;
+
+my $output_table_file = "unicode_norm_table.h";
+my $output_func_file  = "unicode_norm_hashfunc.h";
 
 my $FH;
 
@@ -64,11 +70,13 @@ close $FH;
 
 my $num_characters = scalar @characters;
 
-# Start writing out the output file
-open my $OUTPUT, '>', $output_file
-  or die "Could not open output file $output_file: $!\n";
+# Start writing out the output files
+open my $OT, '>', $output_table_file
+  or die "Could not open output file $output_table_file: $!\n";
+open my $OF, '>', $output_func_file
+  or die "Could not open output file $output_func_file: $!\n";
 
-print $OUTPUT <<HEADER;
+print $OT <<HEADER;
 /*-------------------------------------------------------------------------
  *
  * unicode_norm_table.h
@@ -111,8 +119,53 @@ static const pg_unicode_decomposition UnicodeDecompMain[$num_characters] =
 {
 HEADER
 
+print $OF <<HEADER;
+/*-------------------------------------------------------------------------
+ *
+ * unicode_norm_hashfunc.h
+ *       Perfect hash functions used for Unicode normalization
+ *
+ * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1994, Regents of the University of California
+ *
+ * src/include/common/unicode_norm_hashfunc.h
+ *
+ *-------------------------------------------------------------------------
+ */
+
+/*
+ * File auto-generated by src/common/unicode/generate-unicode_norm_table.pl,
+ * do not edit. There is deliberately not an #ifndef PG_UNICODE_NORM_HASHFUNC_H
+ * here.
+ */
+
+#include "common/unicode_norm_table.h"
+
+/* Typedef for perfect hash functions */
+typedef int (*cp_hash_func) (const void *key);
+
+/* Information for lookups with perfect hash functions */
+typedef struct
+{
+       const pg_unicode_decomposition *decomps;
+       cp_hash_func    hash;
+       int             num_decomps;
+} pg_unicode_decompinfo;
+
+typedef struct
+{
+       const uint16    *inverse_lookup;
+       cp_hash_func    hash;
+       int             num_recomps;
+} pg_unicode_recompinfo;
+
+HEADER
+
 my $decomp_index  = 0;
 my $decomp_string = "";
+my @dec_cp_packed;
+my $main_index = 0;
+my @rec_info;
 
 my $last_code = $characters[-1]->{code};
 foreach my $char (@characters)
@@ -121,6 +174,9 @@ foreach my $char (@characters)
        my $class  = $char->{class};
        my $decomp = $char->{decomp};
 
+       # Save the code point bytes as a string in network order.
+       push @dec_cp_packed, pack('N', hex($char->{code}));
+
        # The character decomposition mapping field in UnicodeData.txt is a list
        # of unicode codepoints, separated by space. But it can be prefixed with
        # so-called compatibility formatting tag, like "<compat>", or "<font>".
@@ -163,7 +219,7 @@ foreach my $char (@characters)
                {
                        foreach my $lcode (@composition_exclusion_codes)
                        {
-                               if ($lcode eq $char->{code})
+                               if ($lcode eq $code)
                                {
                                        $flags .= " | DECOMP_NO_COMPOSE";
                                        $comment = "in exclusion list";
@@ -171,11 +227,26 @@ foreach my $char (@characters)
                                }
                        }
                }
+
+               # Save info for recomposeable codepoints.
+               # Note that this MUST match the macro DECOMPOSITION_NO_COMPOSE in C
+               # above!  See also the inverse lookup in recompose_code() found in
+               # src/common/unicode_norm.c.
+               if (!($flags =~ /DECOMP_COMPAT/ || $flags =~ /DECOMP_NO_COMPOSE/))
+               {
+                       push @rec_info,
+                         {
+                               code       => $code,
+                               main_index => $main_index,
+                               first      => $first_decomp,
+                               second     => $decomp_elts[0]
+                         };
+               }
        }
 
        if ($decomp_size == 0)
        {
-               print $OUTPUT "\t{0x$code, $class, 0$flags, 0}";
+               print $OT "\t{0x$code, $class, 0$flags, 0}";
        }
        elsif ($decomp_size == 1 && length($first_decomp) <= 4)
        {
@@ -183,12 +254,11 @@ foreach my $char (@characters)
                # The decomposition consists of a single codepoint, and it fits
                # in a uint16, so we can store it "inline" in the main table.
                $flags .= " | DECOMP_INLINE";
-               print $OUTPUT "\t{0x$code, $class, 1$flags, 0x$first_decomp}";
+               print $OT "\t{0x$code, $class, 1$flags, 0x$first_decomp}";
        }
        else
        {
-               print $OUTPUT
-                 "\t{0x$code, $class, $decomp_size$flags, $decomp_index}";
+               print $OT "\t{0x$code, $class, $decomp_size$flags, $decomp_index}";
 
                # Now save the decompositions into a dedicated area that will
                # be written afterwards.  First build the entry dedicated to
@@ -205,25 +275,17 @@ foreach my $char (@characters)
        }
 
        # Print a comma after all items except the last one.
-       print $OUTPUT "," unless ($code eq $last_code);
-       if ($comment ne "")
-       {
+       print $OT "," unless ($code eq $last_code);
 
-               # If the line is wide already, indent the comment with one tab,
-               # otherwise with two. This is to make the output match the way
-               # pgindent would mangle it. (This is quite hacky. To do this
-               # properly, we should actually track how long the line is so far,
-               # but this works for now.)
-               print $OUTPUT "\t" if ($decomp_index < 10);
+       print $OT "\t/* $comment */" if ($comment ne "");
+       print $OT "\n";
 
-               print $OUTPUT "\t/* $comment */" if ($comment ne "");
-       }
-       print $OUTPUT "\n";
+       $main_index++;
 }
-print $OUTPUT "\n};\n\n";
+print $OT "\n};\n\n";
 
 # Print the array of decomposed codes.
-print $OUTPUT <<HEADER;
+print $OT <<HEADER;
 /* codepoints array  */
 static const uint32 UnicodeDecomp_codepoints[$decomp_index] =
 {
@@ -231,4 +293,114 @@ $decomp_string
 };
 HEADER
 
-close $OUTPUT;
+# Emit the definition of the decomp hash function.
+my $dec_funcname = 'Decomp_hash_func';
+my $dec_func     = PerfectHash::generate_hash_function(\@dec_cp_packed,
+       $dec_funcname, fixed_key_length => 4);
+print $OF "/* Perfect hash function for decomposition */\n";
+print $OF "static $dec_func\n";
+
+# Emit the structure that wraps the hash lookup information into
+# one variable.
+print $OF <<HEADER;
+/* Hash lookup information for decomposition */
+static const pg_unicode_decompinfo UnicodeDecompInfo =
+{
+       UnicodeDecompMain,
+       $dec_funcname,
+       $num_characters
+};
+
+HEADER
+
+# Find the lowest codepoint that decomposes to each recomposeable
+# code pair and create a mapping to it.
+my $recomp_string = "";
+my @rec_cp_packed;
+my %seenit;
+my $firstentry = 1;
+foreach my $rec (sort recomp_sort @rec_info)
+{
+       # The hash key is formed by concatenating the bytes of the two
+       # codepoints. See also recompose_code() in common/unicode_norm.c.
+       my $hashkey = (hex($rec->{first}) << 32) | hex($rec->{second});
+
+       # We are only interested in the lowest code point that decomposes
+       # to the given code pair.
+       next if $seenit{$hashkey};
+
+       # Save the hash key bytes in network order
+       push @rec_cp_packed, pack('Q>', $hashkey);
+
+       # Append inverse lookup element
+       $recomp_string .= ",\n" if !$firstentry;
+       $recomp_string .= sprintf "\t/* U+%s+%s -> U+%s */ %s",
+         $rec->{first},
+         $rec->{second},
+         $rec->{code},
+         $rec->{main_index};
+
+       $seenit{$hashkey} = 1;
+       $firstentry = 0;
+}
+
+# Emit the inverse lookup array containing indexes into UnicodeDecompMain.
+my $num_recomps = scalar @rec_cp_packed;
+print $OF <<HEADER;
+/* Inverse lookup array -- contains indexes into UnicodeDecompMain[] */
+static const uint16 RecompInverseLookup[$num_recomps] =
+{
+$recomp_string
+};
+
+HEADER
+
+# Emit the definition of the recomposition hash function.
+my $rec_funcname = 'Recomp_hash_func';
+my $rec_func =
+  PerfectHash::generate_hash_function(\@rec_cp_packed, $rec_funcname,
+       fixed_key_length => 8);
+print $OF "/* Perfect hash function for recomposition */\n";
+print $OF "static $rec_func\n";
+
+# Emit the structure that wraps the hash lookup information into
+# one variable.
+print $OF <<HEADER;
+/* Hash lookup information for recomposition */
+static const pg_unicode_recompinfo UnicodeRecompInfo =
+{
+       RecompInverseLookup,
+       $rec_funcname,
+       $num_recomps
+};
+HEADER
+
+close $OT;
+close $OF;
+
+sub recomp_sort
+{
+       my $a1 = hex($a->{first});
+       my $b1 = hex($b->{first});
+
+       my $a2 = hex($a->{second});
+       my $b2 = hex($b->{second});
+
+       # First sort by the first code point
+       return -1 if $a1 < $b1;
+       return 1  if $a1 > $b1;
+
+       # Then sort by the second code point
+       return -1 if $a2 < $b2;
+       return 1  if $a2 > $b2;
+
+       # Finally sort by the code point that decomposes into first and
+       # second ones.
+       my $acode = hex($a->{code});
+       my $bcode = hex($b->{code});
+
+       return -1 if $acode < $bcode;
+       return -1 if $acode > $bcode;
+
+       die "found duplicate entries of recomposeable code pairs";
+}
index 4bb6a0f58738a2ffa9489576ad8bbea22478ea51..4ffce0e61930bd3fea4d86431c01a5d6ae8ab3a2 100644 (file)
 #endif
 
 #include "common/unicode_norm.h"
-#include "common/unicode_norm_table.h"
 #ifndef FRONTEND
+#include "common/unicode_norm_hashfunc.h"
 #include "common/unicode_normprops_table.h"
+#else
+#include "common/unicode_norm_table.h"
 #endif
 #include "port/pg_bswap.h"
 
 #define NCOUNT         VCOUNT * TCOUNT
 #define SCOUNT         LCOUNT * NCOUNT
 
+/*
+ * get_code_entry
+ *
+ * Get the entry corresponding to code in the decomposition lookup table.
+ * The backend version of this code uses a perfect hash function for the
+ * lookup, while the frontend version uses a binary search.
+ */
+#ifndef FRONTEND
+
+static const pg_unicode_decomposition *
+get_code_entry(pg_wchar code)
+{
+       int                     h;
+       uint32          hashkey;
+       pg_unicode_decompinfo decompinfo = UnicodeDecompInfo;
+
+       /*
+        * Compute the hash function. The hash key is the codepoint with the bytes
+        * in network order.
+        */
+       hashkey = pg_hton32(code);
+       h = decompinfo.hash(&hashkey);
+
+       /* An out-of-range result implies no match */
+       if (h < 0 || h >= decompinfo.num_decomps)
+               return NULL;
+
+       /*
+        * Since it's a perfect hash, we need only match to the specific codepoint
+        * it identifies.
+        */
+       if (code != decompinfo.decomps[h].codepoint)
+               return NULL;
+
+       /* Success! */
+       return &decompinfo.decomps[h];
+}
+
+#else
+
 /* comparison routine for bsearch() of decomposition lookup table. */
 static int
 conv_compare(const void *p1, const void *p2)
@@ -56,10 +98,7 @@ conv_compare(const void *p1, const void *p2)
        return (v1 > v2) ? 1 : ((v1 == v2) ? 0 : -1);
 }
 
-/*
- * Get the entry corresponding to code in the decomposition lookup table.
- */
-static pg_unicode_decomposition *
+static const pg_unicode_decomposition *
 get_code_entry(pg_wchar code)
 {
        return bsearch(&(code),
@@ -69,6 +108,8 @@ get_code_entry(pg_wchar code)
                                   conv_compare);
 }
 
+#endif                                                 /* !FRONTEND */
+
 /*
  * Given a decomposition entry looked up earlier, get the decomposed
  * characters.
@@ -77,7 +118,7 @@ get_code_entry(pg_wchar code)
  * is only valid until next call to this function!
  */
 static const pg_wchar *
-get_code_decomposition(pg_unicode_decomposition *entry, int *dec_size)
+get_code_decomposition(const pg_unicode_decomposition *entry, int *dec_size)
 {
        static pg_wchar x;
 
@@ -104,7 +145,7 @@ get_code_decomposition(pg_unicode_decomposition *entry, int *dec_size)
 static int
 get_decomposed_size(pg_wchar code, bool compat)
 {
-       pg_unicode_decomposition *entry;
+       const pg_unicode_decomposition *entry;
        int                     size = 0;
        int                     i;
        const uint32 *decomp;
@@ -191,17 +232,51 @@ recompose_code(uint32 start, uint32 code, uint32 *result)
        }
        else
        {
-               int                     i;
+               const pg_unicode_decomposition *entry;
 
                /*
                 * Do an inverse lookup of the decomposition tables to see if anything
                 * matches. The comparison just needs to be a perfect match on the
                 * sub-table of size two, because the start character has already been
-                * recomposed partially.
+                * recomposed partially.  This lookup uses a perfect hash function for
+                * the backend code.
                 */
+#ifndef FRONTEND
+
+               int                     h,
+                                       inv_lookup_index;
+               uint64          hashkey;
+               pg_unicode_recompinfo recompinfo = UnicodeRecompInfo;
+
+               /*
+                * Compute the hash function. The hash key is formed by concatenating
+                * bytes of the two codepoints in network order. See also
+                * src/common/unicode/generate-unicode_norm_table.pl.
+                */
+               hashkey = pg_hton64(((uint64) start << 32) | (uint64) code);
+               h = recompinfo.hash(&hashkey);
+
+               /* An out-of-range result implies no match */
+               if (h < 0 || h >= recompinfo.num_recomps)
+                       return false;
+
+               inv_lookup_index = recompinfo.inverse_lookup[h];
+               entry = &UnicodeDecompMain[inv_lookup_index];
+
+               if (start == UnicodeDecomp_codepoints[entry->dec_index] &&
+                       code == UnicodeDecomp_codepoints[entry->dec_index + 1])
+               {
+                       *result = entry->codepoint;
+                       return true;
+               }
+
+#else
+
+               int                     i;
+
                for (i = 0; i < lengthof(UnicodeDecompMain); i++)
                {
-                       const pg_unicode_decomposition *entry = &UnicodeDecompMain[i];
+                       entry = &UnicodeDecompMain[i];
 
                        if (DECOMPOSITION_SIZE(entry) != 2)
                                continue;
@@ -216,6 +291,7 @@ recompose_code(uint32 start, uint32 code, uint32 *result)
                                return true;
                        }
                }
+#endif                                                 /* !FRONTEND */
        }
 
        return false;
@@ -231,7 +307,7 @@ recompose_code(uint32 start, uint32 code, uint32 *result)
 static void
 decompose_code(pg_wchar code, bool compat, pg_wchar **result, int *current)
 {
-       pg_unicode_decomposition *entry;
+       const pg_unicode_decomposition *entry;
        int                     i;
        const uint32 *decomp;
        int                     dec_size;
@@ -358,8 +434,8 @@ unicode_normalize(UnicodeNormalizationForm form, const pg_wchar *input)
                pg_wchar        prev = decomp_chars[count - 1];
                pg_wchar        next = decomp_chars[count];
                pg_wchar        tmp;
-               pg_unicode_decomposition *prevEntry = get_code_entry(prev);
-               pg_unicode_decomposition *nextEntry = get_code_entry(next);
+               const pg_unicode_decomposition *prevEntry = get_code_entry(prev);
+               const pg_unicode_decomposition *nextEntry = get_code_entry(next);
 
                /*
                 * If no entries are found, the character used is either an Hangul
@@ -417,7 +493,7 @@ unicode_normalize(UnicodeNormalizationForm form, const pg_wchar *input)
        for (count = 1; count < decomp_size; count++)
        {
                pg_wchar        ch = decomp_chars[count];
-               pg_unicode_decomposition *ch_entry = get_code_entry(ch);
+               const pg_unicode_decomposition *ch_entry = get_code_entry(ch);
                int                     ch_class = (ch_entry == NULL) ? 0 : ch_entry->comb_class;
                pg_wchar        composite;
 
@@ -458,7 +534,7 @@ unicode_normalize(UnicodeNormalizationForm form, const pg_wchar *input)
 static uint8
 get_canonical_class(pg_wchar ch)
 {
-       pg_unicode_decomposition *entry = get_code_entry(ch);
+       const pg_unicode_decomposition *entry = get_code_entry(ch);
 
        if (!entry)
                return 0;
diff --git a/src/include/common/unicode_norm_hashfunc.h b/src/include/common/unicode_norm_hashfunc.h
new file mode 100644 (file)
index 0000000..e6acb2a
--- /dev/null
@@ -0,0 +1,2932 @@
+/*-------------------------------------------------------------------------
+ *
+ * unicode_norm_hashfunc.h
+ *       Perfect hash functions used for Unicode normalization
+ *
+ * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1994, Regents of the University of California
+ *
+ * src/include/common/unicode_norm_hashfunc.h
+ *
+ *-------------------------------------------------------------------------
+ */
+
+/*
+ * File auto-generated by src/common/unicode/generate-unicode_norm_table.pl,
+ * do not edit. There is deliberately not an #ifndef PG_UNICODE_NORM_HASHFUNC_H
+ * here.
+ */
+
+#include "common/unicode_norm_table.h"
+
+/* Typedef for perfect hash functions */
+typedef int (*cp_hash_func) (const void *key);
+
+/* Information for lookups with perfect hash functions */
+typedef struct
+{
+       const pg_unicode_decomposition *decomps;
+       cp_hash_func    hash;
+       int             num_decomps;
+} pg_unicode_decompinfo;
+
+typedef struct
+{
+       const uint16    *inverse_lookup;
+       cp_hash_func    hash;
+       int             num_recomps;
+} pg_unicode_recompinfo;
+
+/* Perfect hash function for decomposition */
+static int
+Decomp_hash_func(const void *key)
+{
+       static const int16 h[13209] = {
+               0,     1515,  4744,  4745,  0,     0,     0,     0,
+               0,     0,     0,     0,     3890,  3890,  0,     0,
+               3891,  3891,  -2046, 2800,  3890,  3890,  3890,  -4396,
+               4361,  4362,  -4441, -4441, -4396, 1773,  1773,  1773,
+               4372,  4373,  -4438, -4438, -4393, -4393, 2619,  17,
+               -4347, -4393, -4393, -4393, -4393, -4393, 2619,  2619,
+               1560,  4346,  4347,  4348,  1917,  1873,  1874,  1875,
+               -7856, 4358,  17619, 2622,  2622,  2622,  6357,  6358,
+               6359,  6360,  6361,  6362,  6363,  2622,  -4390, -4390,
+               4414,  -5356, -5356, 4374,  4375,  -5356, -5356, -6335,
+               -3020, 2511,  -5356, -5356, -3583, -3583, -3583, -3583,
+               -995,  0,     0,     -9799, -9754, 2874,  2875,  2876,
+               2877,  2878,  -9830, -3591, -9756, -9756, -2744, -5346,
+               -9710, -9756, 342,   -5346, -9756, -5346, -2743, -449,
+               348,   2894,  2895,  -2853, 2897,  2898,  2899,  2900,
+               2901,  2902,  2903,  2904,  2905,  2906,  2907,  2908,
+               2909,  2910,  2911,  2912,  2913,  2914,  2915,  2916,
+               2917,  2918,  2919,  2920,  2921,  2922,  2923,  2924,
+               2925,  2926,  2927,  2928,  2929,  2930,  2931,  2932,
+               2933,  2934,  32767, 32767, 32767, 32767, 32767, 32767,
+               -8721, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               1,     32767, 48,    32767, 32767, 32767, 32767, 49,
+               32767, 32767, -8687, -8687, -6255, -6210, 32767, 32767,
+               -8689, -8689, -21949,32767, -18635,-15320,-15320,32767,
+               -12006,-8691, -8691, -8691, -8691, -8691, 32767, 66,
+               -8737, -8737, -8692, -8692, -8692, -8692, 73,    74,
+               32767, -8738, -8693, -8693, -8693, -8693, -8693, 32767,
+               32767, -8695, -8695, -8695, -8695, -8695, 32767, 32767,
+               40,    41,    -2390, -2434, 44,    45,    32767, 46,
+               13307, 9993,  9994,  6680,  6681,  3367,  3368,  54,
+               0,     55,    56,    57,    -8699, -8699, 105,   32767,
+               32767, 61,    62,    63,    -8701, -8701, 32767, 111,
+               32767, 67,    68,    69,    70,    1890,  3687,  -1272,
+               3690,  75,    76,    77,    78,    79,    80,    81,
+               82,    32767, 32767, 83,    84,    85,    86,    87,
+               88,    89,    90,    91,    92,    93,    94,    95,
+               96,    97,    98,    99,    100,   101,   102,   32767,
+               32767, 103,   104,   105,   106,   107,   108,   109,
+               -8660, -8660, 32767, -8661, -8661, -8661, -8661, -8661,
+               -8661, 32767, 73,    74,    75,    76,    -2355, -2399,
+               79,    80,    32767, 32767, 13341, 10027, 10028, 6714,
+               6715,  3401,  3402,  32767, 32767, 88,    89,    90,
+               -8666, -8666, 138,   32767, 32767, 94,    95,    96,
+               -8668, -8668, 144,   145,   101,   -2553, -2553, -2553,
+               -2553, -4983, -2553, -2553, 154,   -2553, 156,   32767,
+               32767, 6114,  158,   -3153, -3152, -3151, -12891,-6888,
+               -931,  -3149, 166,   -3148, -4728, 169,   -3147, -3146,
+               -3145, -3144, -3143, -3142, -3141, -2543, -3139, -3138,
+               180,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 3314,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               0,     3660,  3661,  2131,  2132,  2133,  2134,  2135,
+               2136,  2137,  2138,  2139,  2140,  2141,  2142,  2143,
+               2144,  2145,  -5472, -5472, -3612, -3612, -3612, -3612,
+               -3612, 2652,  -3612, -3612, -3612, -3612, -3612, -3612,
+               -3612, -3612, 3693,  -3613, -7015, -7015, 1742,  1743,
+               -7060, -7060, -7015, -846,  -846,  -846,  1753,  1754,
+               -7057, -7057, -7012, -7012, 0,     -2602, -6966, -7012,
+               -7012, -7012, -7012, -7012, 0,     0,     1725,  1726,
+               1727,  1728,  -703,  -747,  -746,  0,     1735,  1736,
+               14997, 0,     0,     0,     3735,  3736,  3737,  3738,
+               3739,  3740,  3741,  0,     -7012, -7012, 1792,  1793,
+               1749,  1750,  1751,  -7980, -7980, -8959, -5644, -113,
+               -7980, -113,  -2382, -6116, -6116, -6116, -6116, -6116,
+               -6116, -6116, -2374, 4639,  4640,  -4163, 5608,  5609,
+               -4120, -4120, 5612,  5613,  6593,  3279,  -2251, 5617,
+               5618,  3846,  3847,  3848,  3849,  1262,  1262,  10066,
+               10067, 10023, 3855,  3856,  3857,  1259,  1259,  10071,
+               3861,  10027, 10028, 3017,  5620,  9985,  10032, -65,
+               5624,  10035, 5626,  3024,  731,   -65,   1298,  12530,
+               3727,  3727,  3772,  3772,  3772,  13504, 13505, 14485,
+               11171, 5641,  13509, 5643,  7913,  11648, 11649, 11650,
+               11651, 11652, 11653, 11654, 7913,  901,   901,   9705,
+               -65,   -65,   9665,  9666,  -65,   -65,   -1044, 2271,
+               7802,  -65,   -65,   1708,  1708,  1708,  1708,  4296,
+               4297,  -4506, -4506, -4461, 1708,  1708,  1708,  4307,
+               4308,  -4503, 1708,  -4457, -4457, 2555,  -47,   -4411,
+               -4457, 5641,  -47,   -4457, -47,   2556,  4850,  5647,
+               4285,  -6946, 1858,  1859,  1815,  1816,  1817,  -7914,
+               -7914, -8893, -5578, -47,   -7914, -47,   -2316, -6050,
+               -6050, -6050, -6050, -6050, -6050, -6050, -2308, 4705,
+               4706,  -4097, 5674,  5675,  -4054, -4054, 5678,  5679,
+               6659,  3345,  -2185, 5683,  5684,  3912,  3913,  3914,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, -3083, -3083, 232,   287,   233,   233,
+               233,   8990,  8991,  32767, 32767, 3668,  32767, 3667,
+               3667,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 208,   208,   208,   208,   208,   208,
+               32767, 32767, 206,   206,   206,   206,   206,   32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 304,   305,   -1274, 307,   308,
+               309,   6753,  -1374, 10488, 4486,  -1470, 4488,  316,
+               4489,  -5607, 4490,  4491,  4492,  322,   760,   324,
+               325,   326,   166,   763,   329,   -2553, 765,   332,
+               333,   334,   335,   772,   337,   6310,  339,   340,
+               341,   342,   343,   344,   345,   346,   -2542, -2542,
+               -2542, 350,   351,   352,   353,   354,   355,   356,
+               357,   358,   359,   360,   361,   362,   -6008, 364,
+               365,   366,   367,   368,   369,   370,   254,   372,
+               373,   374,   375,   376,   377,   378,   379,   380,
+               381,   382,   32767, 383,   384,   -3606, -3605, -3604,
+               -3603, 389,   -3600, -3599, -3598, 2340,  -1238, -3595,
+               -3594, -3593, 4694,  -4062, -4062, 4742,  4743,  4699,
+               -1469, -1468, -1467, -4065, -4065, 4747,  -1463, 4703,
+               4704,  -2307, 296,   32767, 0,     32767, 32767, 4708,
+               -1376, -1376, -1376, 32767, 32767, -1246, 506,   506,
+               0,     -1559, 32767, 32767, 32767, 32767, 32767, 305,
+               419,   308,   2578,  6313,  6314,  424,   32767, -6030,
+               32767, 426,   427,   428,   32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 0,     32767, 0,
+               32767, 0,     32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 0,     32767, 429,   -5407, 431,
+               -5406, 433,   -3601, 435,   32767, -3751, 32767, 32767,
+               32767, 32767, -3755, 32767, 32767, 32767, 32767, 0,
+               32767, 32767, 32767, 32767, 0,     32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 436,   -11425,-5422,
+               535,   -5422, 535,   -5422, 4675,  -5421, -5421, -5421,
+               -5421, -5421, 4681,  0,     0,     0,     4682,  4683,
+               4684,  4685,  4686,  4687,  0,     0,     32767, 32767,
+               0,     0,     -5684, 0,     4688,  4689,  4690,  4691,
+               4692,  4693,  4694,  4695,  -1257, -1257, 4696,  -5441,
+               -5441, 4699,  4700,  4701,  -5443, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 454,   0,     32767, 456,
+               32767, 32767, 0,     457,   32767, 32767, 32767, 0,
+               458,   459,   460,   32767, 0,     32767, 32767, 32767,
+               32767, 32767, 32767, 4703,  4704,  4705,  4706,  32767,
+               32767, 0,     32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 4655,  4656,  4657,  4658,
+               4659,  4712,  32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 462,   32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 463,   464,   32767, 465,
+               32767, 32767, 32767, 466,   32767, 32767, 32767, 32767,
+               467,   468,   469,   32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 3011,  3011,  3011,
+               3011,  3011,  3011,  3011,  32767, 32767, 32767, 32767,
+               32767, 32767, 470,   471,   32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 472,
+               473,   474,   475,   476,   32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 4713,  4714,  4715,  32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 477,   478,   32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 479,   480,   481,   482,
+               32767, 32767, 483,   484,   32767, 32767, 485,   486,
+               487,   488,   489,   490,   32767, 32767, 491,   492,
+               493,   494,   495,   496,   32767, 32767, 0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     665,   -255,  667,   0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     693,   694,   695,   696,
+               697,   698,   699,   700,   701,   702,   703,   704,
+               705,   706,   707,   708,   709,   710,   711,   712,
+               7183,  714,   -1580, 716,   2547,  718,   7194,  720,
+               2553,  722,   723,   7204,  725,   726,   727,   728,
+               729,   730,   731,   732,   733,   734,   735,   736,
+               0,     0,     8114,  8159,  745,   -1535, 747,   748,
+               8161,  -5019, -5019, -5019, -5019, 1938,  0,     0,
+               0,     0,     0,     0,     767,   768,   0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     32767, 32767, 32767, 32767, 32767, 0,     32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, -2875, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, -2884, -2884,
+               -2884, -2884, -2884, -2884, -2884, -2884, -2884, -2884,
+               -2884, -2884, -4271, -2884, -2884, -2884, -2884, -2884,
+               -2884, -2884, -2884, -2884, -2884, -2884, -2884, -2884,
+               -2884, -2884, -2884, -2884, -2884, -2884, -2884, -2884,
+               -2884, -2884, -2884, -2884, -2884, -2884, -2884, -2884,
+               -2884, -2884, -2884, 32767, -2885, 32767, -2886, -2886,
+               32767, -2887, -2887, 32767, -2888, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 563,   564,
+               565,   566,   567,   568,   569,   570,   571,   572,
+               573,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               574,   575,   576,   577,   578,   32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, -294,  -294,  -294,  -3047, 583,   584,   585,
+               -4462, -4418, -4418, -4418, -4418, -4418, -4462, -4462,
+               -4462, 595,   596,   597,   598,   599,   32767, 32767,
+               32767, 32767, -4471, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 4716,  4717,  4718,  4719,
+               4720,  4721,  4722,  4723,  4724,  4725,  4726,  4727,
+               4728,  4729,  4730,  4731,  4732,  4733,  4734,  4735,
+               3826,  4737,  4738,  4739,  4740,  4741,  4742,  3832,
+               4744,  3833,  3120,  3121,  3835,  3835,  3124,  3836,
+               3836,  4753,  4754,  4755,  4756,  4757,  4758,  4759,
+               4760,  4761,  4762,  4763,  4764,  4765,  4766,  4767,
+               4768,  4769,  4770,  4771,  4772,  4773,  4774,  4775,
+               4776,  4777,  4778,  4779,  4780,  4781,  6619,  6620,
+               6621,  11272, 6623,  6624,  4788,  4789,  4790,  3874,
+               4761,  3874,  4794,  3874,  4796,  4797,  4798,  3874,
+               4800,  32767, 0,     4802,  4803,  4804,  4805,  4806,
+               4807,  4808,  4809,  4810,  4811,  4812,  4813,  4814,
+               4815,  4816,  4817,  4818,  4819,  4820,  4821,  4822,
+               4823,  4824,  4825,  4826,  4827,  4828,  11299, 4830,
+               2536,  4832,  6663,  4834,  11310, 4836,  6669,  4838,
+               4839,  11320, 4841,  4842,  4843,  4844,  4845,  4846,
+               4847,  4848,  4849,  4850,  4851,  4852,  1188,  4854,
+               4855,  4856,  4857,  2577,  4859,  4860,  12273, -907,
+               -907,  -907,  -907,  -907,  -907,  4868,  4869,  4870,
+               4871,  32767, 4872,  4873,  32767, 32767, 4874,  32767,
+               627,   4875,  4876,  32767, 32767, 4877,  4878,  4879,
+               6722,  32767, 4881,  4882,  4883,  6730,  6731,  7446,
+               6733,  4888,  7449,  7449,  4891,  4892,  32767, 4893,
+               32767, 4894,  4895,  4896,  4897,  4898,  4899,  3512,
+               3513,  3514,  3515,  3516,  4904,  3518,  3519,  3520,
+               3521,  3522,  3523,  3524,  3525,  3526,  3527,  3528,
+               3529,  3530,  3531,  3532,  3533,  3534,  3535,  3536,
+               3537,  3538,  4926,  6797,  4928,  6800,  4930,  4931,
+               4932,  4933,  4934,  4935,  6813,  4937,  4938,  6816,
+               6817,  4941,  4942,  4943,  0,     4945,  6821,  0,
+               0,     4949,  0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     32767, -127,  -127,  -127,
+               7285,  -127,  -127,  0,     -128,  -128,  -128,  -128,
+               0,     32767, -130,  4971,  -129,  5613,  5614,  5615,
+               4976,  5618,  32767, 5619,  5620,  5621,  4981,  5624,
+               4983,  4984,  32767, 5630,  5631,  -1986, -1986, -126,
+               -126,  5078,  4992,  5037,  5038,  5039,  5040,  5041,
+               5086,  5087,  5088,  5089,  -2322, 5091,  5092,  5093,
+               5094,  5095,  5096,  5097,  5098,  5099,  5100,  0,
+               5101,  -640,  -640,  -640,  0,     -641,  -641,  -641,
+               -641,  -641,  0,     -642,  0,     0,     32767, -645,
+               -645,  6973,  6974,  5115,  5116,  -87,   0,     -44,
+               -44,   -44,   -44,   -44,   -88,   -88,   -88,   -88,
+               7324,  -88,   -88,   -88,   -88,   -88,   -88,   -88,
+               -88,   -88,   -88,   -88,   -88,   5654,  5655,  5656,
+               5657,  5658,  5659,  5660,  5661,  5662,  5663,  5664,
+               5665,  5666,  5667,  5668,  5669,  -1948, -1948, -88,
+               -88,   5116,  5117,  5074,  5075,  5076,  5077,  5078,
+               5123,  5124,  5125,  5126,  -2285, 5128,  5129,  5130,
+               5131,  5132,  5133,  5134,  5135,  5136,  5137,  5138,
+               5139,  -602,  -602,  -602,  -602,  -602,  -602,  -602,
+               -602,  -602,  -602,  -602,  -602,  -602,  -602,  -602,
+               -602,  7016,  7017,  5158,  5159,  -44,   -44,   0,
+               0,     0,     0,     0,     -44,   -44,   -44,   -44,
+               7368,  -44,   -44,   -44,   -44,   -44,   -44,   -44,
+               -44,   -44,   -44,   -44,   -44,   5698,  5699,  5700,
+               5701,  5702,  5703,  5704,  5705,  5706,  5707,  5708,
+               5709,  5710,  5711,  5712,  5713,  -1904, -1904, -44,
+               -44,   5160,  5161,  5118,  5119,  5120,  5121,  5122,
+               5167,  5168,  5169,  5170,  -2241, 5172,  5173,  5174,
+               5175,  5176,  5177,  5178,  5179,  5180,  5181,  5182,
+               5183,  -558,  -558,  -558,  -558,  -558,  -558,  -558,
+               -558,  -558,  -558,  -558,  -558,  -558,  -558,  -558,
+               -558,  7060,  7061,  5202,  5203,  0,     0,     44,
+               44,    44,    44,    44,    0,     0,     0,     0,
+               7412,  0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     5742,  5743,  5744,
+               5745,  5746,  5747,  5748,  5749,  5750,  5751,  5752,
+               5753,  5754,  5755,  5756,  5757,  -1860, -1860, 0,
+               0,     0,     0,     0,     6264,  0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     -3402,
+               -3402, 5355,  5356,  -3447, -3447, -3402, -3402, -3402,
+               -3402, 5363,  5364,  -3447, -3447, -3402, -3402, -3402,
+               -3358, -3358, -3404, -3404, -3404, -3404, -3404, -3404,
+               -3404, 5331,  5332,  5333,  5334,  2903,  2859,  5337,
+               5338,  5339,  5340,  18601, 15287, 15288, 11974, 11975,
+               8661,  8662,  5348,  5349,  5350,  5351,  5352,  -3404,
+               -3404, 5400,  5401,  5357,  5358,  5359,  5360,  -3404,
+               -3404, 5408,  5409,  5365,  5366,  5367,  5324,  5325,
+               5372,  5373,  5374,  5375,  5376,  5377,  5378,  -3356,
+               -3356, -3356, -3356, -924,  -879,  -3356, -3356, -3356,
+               -3356, -16616,-13301,-13301,-9986, -9986, -6671, -6671,
+               -3356, -3356, -3356, -3356, -3356, 5401,  5402,  -3401,
+               -3401, -3356, -3356, -3356, -3356, 5409,  5410,  -3401,
+               -3401, -3356, -3356, -3356, -3312, -3312, -3358, -3358,
+               -3358, -3358, -3358, -3358, -3358, 5377,  5378,  5379,
+               5380,  2949,  2905,  5383,  5384,  5385,  5386,  18647,
+               15333, 15334, 12020, 12021, 8707,  8708,  5394,  5395,
+               5396,  5397,  5398,  -3358, -3358, 5446,  5447,  5403,
+               5404,  5405,  5406,  -3358, -3358, 5454,  5455,  5411,
+               5412,  5413,  5414,  5415,  5416,  5417,  5418,  5419,
+               5420,  5421,  5422,  -3312, -3312, -3312, -3312, -880,
+               -835,  -3312, -3312, -3312, -3312, -16572,-13257,-13257,
+               -9942, -9942, -6627, -6627, -3312, -3312, -3312, -3312,
+               -3312, 5445,  5446,  -3357, -3357, -3312, -3312, -3312,
+               -3312, 5453,  5454,  -3357, -3357, -3312, -3312, -3312,
+               -3312, -3312, -3312, -3312, -3312, -3312, -3312, -3312,
+               -3312, 5423,  5424,  5425,  5426,  2995,  2951,  5429,
+               5430,  5431,  5432,  18693, 15379, 15380, 12066, 12067,
+               8753,  8754,  5440,  5441,  5442,  5443,  5444,  -3312,
+               -3312, 5492,  5493,  5449,  5450,  5451,  5452,  -3312,
+               -3312, 5500,  5501,  5457,  2803,  2803,  2803,  2803,
+               373,   2803,  2803,  5510,  2803,  5512,  11470, 5514,
+               11472, 5516,  2205,  2206,  2207,  -7533, -1530, 4427,
+               2209,  5524,  2210,  630,   5527,  2211,  2212,  2213,
+               2214,  2215,  2216,  2217,  2815,  2219,  2220,  5538,
+               2221,  5540,  2222,  5542,  5543,  2223,  -3312, -3312,
+               -3312, 5548,  5549,  -3312, -3312, 2803,  2803,  2803,
+               5555,  5556,  5557,  2803,  2803,  2803,  2803,  2803,
+               2803,  2803,  2803,  2803,  2803,  2803,  2803,  2803,
+               9050,  9051,  2803,  2803,  2803,  2803,  2803,  2803,
+               2803,  2803,  2803,  2803,  2803,  2803,  4318,  7547,
+               7548,  2803,  2803,  2803,  2803,  2803,  2803,  2803,
+               2803,  6693,  6693,  2803,  2803,  6694,  6694,  757,
+               5603,  6693,  6693,  6693,  -1593, 7164,  7165,  -1638,
+               -1638, -1593, 4576,  4576,  4576,  7175,  7176,  -1635,
+               -1635, -1590, -1590, 5422,  2820,  -1544, -1590, -1590,
+               -1590, -1590, -1590, 5422,  5422,  4363,  7149,  7150,
+               7151,  4720,  4676,  4677,  4678,  -5053, 7161,  20422,
+               5425,  5425,  5425,  9160,  9161,  9162,  9163,  9164,
+               9165,  9166,  5425,  -1587, -1587, 7217,  -2553, -2553,
+               7177,  7178,  -2553, 32767, 32767, -219,  5312,  -2555,
+               -2555, -782,  -782,  -782,  -782,  1806,  2801,  2801,
+               -6998, -6953, 5675,  5676,  5677,  5678,  5679,  -7029,
+               -790,  -6955, -6955, 57,    -2545, -6909, -6955, 3143,
+               -2545, -6955, -2545, 58,    2352,  3149,  5695,  5696,
+               -52,   5698,  5699,  5700,  5701,  5702,  5703,  5704,
+               5705,  5706,  5707,  5708,  5709,  5710,  5711,  32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, -1838, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 6927,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, -973,  32767, 32767,
+               32767, 32767, 0,     32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 0,     4567,  4568,  32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, -437,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, -448,  32767, 32767, -450,  -450,
+               -450,  0,     32767, 32767, 32767, -2166, 32767, 32767,
+               32767, 32767, 32767, 32767, 0,     0,     32767, -464,
+               -464,  32767, 0,     32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, -514,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               5757,  5758,  5759,  0,     32767, 32767, 32767, 32767,
+               32767, 32767, 32767, -4186, -4186, -12097,-4186, 32767,
+               -4187, -4187, -8787, 32767, 0,     0,     5952,  0,
+               0,     -4183, -4183, -4183, 0,     -2386, -4182, 778,
+               -4183, -5935, 32767, 32767, -4690, -6249, -4184, -4184,
+               -4184, 32767, 32767, -4186, -4186, -77,   32767, -77,
+               32767, -4188, 0,     -4189, 32767, 0,     0,     0,
+               0,     32767, 0,     0,     0,     32767, 0,     0,
+               0,     0,     0,     0,     0,     32767, 0,     0,
+               0,     0,     0,     0,     32767, 32767, 32767, 32767,
+               0,     0,     0,     0,     0,     32767, 32767, 32767,
+               32767, 32767, 32767, 0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     -5937, -2358, 0,     0,     0,
+               -8286, 471,   472,   32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 1747,  32767, -2126, 32767, 32767, 1748,
+               1749,  1750,  1751,  1752,  1753,  8224,  1755,  -539,
+               1757,  781,   32767, 32767, 32767, -1991, -2035, 32767,
+               32767, 782,   -3784, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 837,   32767, 32767, 32767, 32767, 32767, -4008,
+               -4008, -4008, 2949,  32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               0,     -797,  1806,  32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 4605,  4606,
+               32767, 32767, 0,     455,   32767, 0,     32767, 32767,
+               32767, 0,     32767, 32767, 32767, 32767, 0,     0,
+               0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, -4244, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               784,   32767, 32767, 2950,  2951,  32767, 32767, 32767,
+               32767, 32767, 32767, 786,   787,   32767, 1252,  1253,
+               32767, 790,   32767, 0,     32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 0,     0,     32767, 0,     32767, 32767,
+               32767, 0,     32767, 32767, 32767, 32767, 0,     0,
+               0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               0,     0,     32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 0,     0,     0,
+               0,     0,     32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, -200,  -200,  -200,
+               -200,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               -5932, -5932, 32767, 32767, 2952,  32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, -5387,
+               -5387, -5387, -5387, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 0,     0,     32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 0,     0,     0,     0,     32767, 32767,
+               0,     0,     32767, 32767, 0,     0,     0,     0,
+               0,     0,     32767, 32767, 0,     0,     0,     0,
+               0,     0,     32767, 32767, 497,   498,   499,   500,
+               501,   502,   503,   504,   505,   506,   507,   508,
+               32767, 32767, -156,  765,   32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, -861,
+               32767, 6106,  32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 2953,  2954,  32767, 797,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 2955,  32767, 32767, 32767, -8929,
+               32767, -8885, -8885, -8885, 32767, 32767, 32767, 32767,
+               32767, 32767, -749,  7119,  7120,  32767, 32767, 32767,
+               32767, 2760,  32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 0,     0,     0,     32767, 32767, 32767, 32767,
+               32767, -1181, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, -5587, 0,     7596,
+               7597,  0,     0,     0,     0,     0,     0,     32767,
+               32767, 32767, 32767, 32767, 32767, 0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     -714,  0,
+               0,     -713,  -712,  0,     -711,  0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     1859,
+               0,     3247,  32767, 32767, 0,     3247,  0,     3248,
+               0,     3249,  0,     3250,  0,     3251,  0,     3252,
+               808,   3252,  0,     3253,  0,     3254,  0,     0,
+               3256,  0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     32767, 0,     0,     0,
+               0,     32767, 32767, 32767, 32767, 0,     0,     6824,
+               32767, 0,     32767, 0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               4207,  4208,  0,     0,     0,     0,     0,     1896,
+               0,     0,     1898,  1898,  1898,  1898,  0,     0,
+               0,     1901,  1901,  0,     0,     0,     0,     0,
+               0,     -1319, 0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     7618,  7619,  7620,
+               3,     3,     1863,  1863,  7067,  7068,  7025,  7026,
+               7027,  7028,  7029,  7074,  7075,  7076,  7077,  -334,
+               7079,  7080,  7081,  7082,  7083,  7084,  7085,  7086,
+               7087,  7088,  7089,  7090,  1349,  1349,  1349,  1349,
+               1349,  1349,  1349,  1349,  1349,  1349,  1349,  1349,
+               1349,  1349,  1349,  1349,  8967,  8968,  7109,  7110,
+               1907,  1907,  32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 2976,  2977,  2978,  32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               0,     0,     0,     820,   32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 821,
+               2381,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 2005,  32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 823,   32767, 824,   32767,
+               825,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 826,   32767, 32767, 32767, 32767, 32767,
+               32767, 4575,  4576,  4577,  4578,  4579,  4580,  4581,
+               4582,  4583,  4584,  4585,  32767, 32767, 829,   32767,
+               32767, 32767, 32767, 830,   32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               6253,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               6253,  -3848, 834,   835,   836,   -3845, -3845, -3845,
+               -3845, -3845, -3845, 843,   844,   -4280, 32767, 845,
+               846,   6531,  848,   -3839, 32767, -3840, -3840, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 1946,  32767,
+               32767, 32767, -3849, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 853,   32767, 32767, 32767,
+               32767, 854,   32767, 32767, 32767, 32767, 855,   32767,
+               32767, 32767, 32767, 856,   32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               857,   32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, -3799, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 8266,  32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 859,   32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 860,
+               32767, 861,   -5065, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 10746, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 4526,
+               32767, 4573,  4574,  4575,  32767, 32767, -2436, -1376,
+               32767, 32767, 32767, 32767, 32767, -1689, -1689, 4349,
+               -4171, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 4588,  32767,
+               4589,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 4590,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 4591,  4592,  32767,
+               32767, 32767, 32767, 32767, 32767, 2933,  32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 864,   32767, 32767, 32767,
+               0,     32767, 0,     32767, 32767, -2977, 335,   335,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 2992,  2993,  2994,  2995,
+               32767, 32767, 32767, 4596,  2550,  32767, 32767, 32767,
+               -1188, 4769,  32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               4600,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 0,     0,     32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 2997,  32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 4601,  32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 2013,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, -11287,32767, 32767, 32767, 32767,
+               32767, 32767, 32767, -4664, 32767, 32767, -4711, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, -4718, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 4049,
+               32767, 32767, 32767, 4050,  4051,  4052,  17313, 32767,
+               32767, 32767, 10684, 7370,  7371,  4057,  4058,  4059,
+               4060,  4061,  32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 4603,  8793,  32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               1283,  4897,  4898,  4899,  12175, 4901,  4902,  32767,
+               4903,  4904,  4905,  4906,  4907,  10276, -1469, 1282,
+               1282,  1282,  1282,  1282,  1282,  1282,  1282,  1282,
+               1282,  32767, 32767, 4920,  4921,  4063,  -2051, -2050,
+               4925,  4926,  32767, 7332,  7333,  32767, 7334,  7335,
+               7336,  7337,  5045,  32767, 32767, 32767, -2049, -2048,
+               32767, -8294, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     1132,  0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     20166, 16852, 0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     6908,  6909,  6910,  0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               -4510, -4510, -4510, -4510, -4510, -4510, -4510, 0,
+               0,     0,     0,     0,     0,     -1831, -1831, -1831,
+               -15091,-11776,-11776,-8461, 0,     0,     0,     -1834,
+               -1834, -1834, -1834, -1834, 0,     0,     0,     0,
+               0,     0,     0,     0,     32767, 32767, 32767, 32767,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     -1819, -3615, 1345,  -3616, 0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     32767, 32767, 0,
+               0,     0,     0,     0,     0,     0,     8770,  8771,
+               8772,  8773,  8774,  8775,  8776,  8777,  8778,  8779,
+               45,    45,    45,    45,    2477,  2522,  45,    45,
+               45,    45,    -13215,-9900, -9900, -6585, -6585, -3270,
+               -3270, 45,    45,    45,    45,    45,    8802,  8803,
+               0,     0,     45,    45,    45,    45,    8810,  8811,
+               0,     0,     45,    2700,  2701,  2702,  2703,  5134,
+               2705,  2706,  0,     2708,  0,     -5957, 0,     -5957,
+               0,     3312,  3312,  3312,  13053, 7051,  1095,  3314,
+               0,     3315,  4896,  0,     3317,  3317,  3317,  3317,
+               3317,  3317,  3317,  2720,  3317,  3317,  0,     3318,
+               0,     3319,  0,     0,     3321,  8857,  8858,  8859,
+               0,     0,     8862,  8863,  2749,  2750,  2751,  0,
+               0,     0,     2755,  2756,  2757,  2758,  2759,  2760,
+               2761,  2762,  2763,  2764,  2765,  2766,  2767,  -3479,
+               -3479, 2770,  2771,  2772,  2773,  2774,  2775,  2776,
+               2777,  2778,  2779,  2780,  2781,  1267,  -1961, -1961,
+               2785,  2786,  2787,  2788,  2789,  2790,  2791,  2792,
+               -1097, -1096, 2795,  2796,  -1094, -1093, 4845,  0,
+               -1089, -1088, -1087, 7200,  -1556, -1556, 7248,  7249,
+               7205,  1037,  1038,  1039,  -1559, -1559, 7253,  7254,
+               7210,  7211,  200,   2803,  7168,  7215,  7216,  7217,
+               7218,  7219,  208,   209,   1269,  -1516, -1516, -1516,
+               916,   961,   961,   961,   10693, -1520, -14780,218,
+               219,   220,   -3514, -3514, -3514, -3514, -3514, -3514,
+               -3514, 228,   7241,  7242,  -1561, 8210,  8211,  -1518,
+               -1518, 8214,  8215,  9195,  5881,  351,   8219,  8220,
+               6448,  6449,  6450,  6451,  3864,  2870,  2871,  12671,
+               12627, 0,     0,     0,     0,     0,     12709, 6471,
+               12637, 12638, 5627,  8230,  12595, 12642, 2545,  8234,
+               12645, 8236,  5634,  3341,  2545,  0,     0,     5749,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 0,     0,     0,     0,     0,     11602,
+               0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 0,     0,     1466,
+               0,     0,     32767, 32767, 32767, 32767, 32767, 0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     5760,  0,     0,     0,     0,     0,     32767,
+               0,     32767, 0,     0,     32767, 0,     0,     32767,
+               0,     3507,  3508,  0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               1644,  1645,  1646,  1647,  -5764, 1649,  1650,  1651,
+               1652,  1653,  1654,  1655,  1656,  1657,  1658,  1659,
+               1660,  -4081, -4081, -4081, -4081, -4081, -4081, -4081,
+               -4081, -4081, -4081, -4081, -4081, -4081, -4081, -4081,
+               -4081, 3537,  3538,  1679,  3582,  3583,  3584,  -3482,
+               -3482, -3482, -3482, -3482, -3526, -3526, -3526, -3526,
+               3886,  -3526, -3526, -3526, -3526, 3599,  3600,  3601,
+               3602,  3603,  3604,  3605,  3606,  3607,  3608,  3609,
+               3610,  3611,  3612,  3613,  32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 0,     0,     0,
+               -7275, 0,     0,     -7234, 0,     0,     0,     0,
+               0,     -5368, 6378,  3628,  3629,  3630,  3631,  3632,
+               3633,  3634,  3635,  3636,  3637,  3638,  3639,  0,
+               0,     859,   6974,  6974,  0,     0,     3647,  -2405,
+               -2405, 3650,  -2405, -2405, -2405, -2405, -112,  -2405,
+               -3201, 3658,  32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 0,     32767, 32767, 32767,
+               32767, 5280,  32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               4637,  4638,  32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 4014,  32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 802,   32767, 32767,
+               32767, 32767, 803,   -1055, 805,   32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 4639,  32767,
+               32767, 32767, 806,   -2445, 0,     -2443, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 810,   32767, 32767,
+               32767, 32767, 811,   812,   813,   32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, -6211, -6211, -6211, -6211, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, -6271, -6271,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 935,   32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, -10300,32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 0,     0,     32767, 32767, 4640,  4641,  32767,
+               32767, 32767, 32767, 32767, 4624,  32767, 32767, 32767,
+               -4233, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               1859,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 872,   32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, -4568, -1253, 32767,
+               -3590, 32767, 32767, 32767, -1820, -1820, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 0,     0,     0,     0,     0,     32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 873,   874,   875,   3629,  0,     0,
+               0,     5048,  5005,  5006,  5007,  5008,  5009,  5054,
+               5055,  5056,  0,     0,     0,     0,     0,     32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, -4118,
+               32767, 32767, 32767, 32767, -4122, -4122, -4122, -4122,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, -4193,
+               32767, -4194, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, -4209, 32767, 32767, -4211, -4211, -4211,
+               -4211, -4211, -4211, -4211, 32767, 32767, -4213, -10683,
+               -4213, -1918, -4213, -6043, 32767, 32767, -4215, -6047,
+               32767, -4216, -10696,-4216, -4216, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 4646,  32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 876,   877,   0,     32767, 0,     32767, 0,
+               32767, 0,     32767, 0,     32767, 32767, 32767, 0,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 1844,  32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 0,     0,     0,     0,
+               0,     0,     0,     0,     0,     -2899, 0,     32767,
+               0,     32767, 0,     32767, 0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     836,   0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     32767, 0,     0,     0,     879,
+               880,   881,   882,   883,   884,   885,   886,   0,
+               0,     887,   0,     920,   0,     922,   923,   924,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 5431,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 0,     0,
+               0,     32767, 3639,  889,   890,   891,   892,   893,
+               894,   895,   896,   897,   898,   899,   900,   -2739,
+               927,   -1881, 4234,  32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 0,     32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, -459,  32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, -458,
+               -457,  904,   32767, 905,   32767, 906,   32767, 907,
+               32767, 908,   32767, 32767, 32767, 909,   32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     910,
+               0,     0,     0,     0,     0,     0,     911,   0,
+               912,   1626,  1626,  913,   914,   1626,  915,   916,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     -1837, -1837, -1837,
+               -6487, -1837, -1837, 0,     0,     0,     917,   31,
+               919,   0,     921,   0,     0,     0,     925,   0,
+               32767, 4801,  0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     -6470, 0,     2295,
+               0,     -1830, 0,     -6475, 0,     -1832, 0,     0,
+               -6480, 0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     3665,  0,     0,
+               0,     0,     2281,  0,     0,     -7412, 5769,  5770,
+               5771,  5772,  5773,  5774,  0,     0,     0,     0,
+               32767, 0,     0,     32767, 32767, 0,     32767, 32767,
+               0,     0,     32767, 32767, 0,     0,     0,     -1842,
+               32767, 0,     0,     0,     -1846, -1846, -2560, -1846,
+               0,     -2560, -2559, 0,     0,     32767, 0,     32767,
+               0,     0,     0,     0,     0,     0,     1388,  0,
+               1387,  1387,  1387,  0,     1387,  1387,  1387,  1387,
+               1387,  1387,  1387,  1387,  1387,  1387,  1387,  1387,
+               1387,  1387,  1387,  1387,  1387,  1387,  1387,  1387,
+               1387,  0,     -1870, 0,     -1871, 0,     0,     0,
+               0,     0,     0,     -1877, 0,     0,     -1877, -1877,
+               0,     0,     0,     4944,  0,     -1875, 4947,  4948,
+               0,     4950,  4951,  4952,  4953,  4954,  4955,  4956,
+               4957,  4958,  4959,  32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
+               32767, 32767, 0,     0,     0,     0,     32767, 32767,
+               32767, 0,     0,     931,   32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 4650,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 5375,
+               5376,  5377,  32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 13180, 0,     0,
+               0,     0,     0,     0,     32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, -4011, 933,   -4011, 32767,
+               935,   936,   -4012, 938,   939,   940,   941,   942,
+               943,   944,   945,   946,   947,   32767, 1075,  1076,
+               1077,  -6334, 1079,  1080,  954,   32767, 32767, 32767,
+               32767, 955,   32767, 32767, 32767, 32767, 32767, 32767,
+               -4659, 32767, 32767, 32767, -4662, -4662, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 0,     0,     0,     32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 959,   960,   961,   32767, 962,   963,   964,
+               965,   966,   967,   968,   969,   970,   971,   972,
+               32767, 973,   974,   975,   976,   977,   978,   979,
+               980,   981,   982,   983,   984,   985,   986,   987,
+               988,   989,   990,   32767, 991,   992,   993,   994,
+               995,   996,   997,   998,   999,   1000,  1001,  1002,
+               1003,  1004,  1005,  1006,  1007,  1008,  1009,  1010,
+               1011,  1012,  1013,  1014,  1015,  1016,  1017,  -362,
+               -362,  32767, 32767, 32767, 32767, -410,  32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 1019,  32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               164,   1021,  -3551, -3551, 1024,  1025,  1026,  1027,
+               1028,  1029,  1030,  1031,  1032,  1033,  1034,  1035,
+               1036,  1037,  1038,  1039,  1040,  1041,  1042,  1043,
+               1044,  1045,  1046,  1047,  1048,  1049,  1050,  1051,
+               1052,  1053,  1054,  1055,  1056,  1057,  1058,  1059,
+               1060,  1061,  1062,  1063,  1064,  1065,  1066,  1067,
+               1068,  1069,  1070,  1071,  1072,  1073,  1074,  1075,
+               1076,  1077,  1078,  1079,  1080,  1081,  1082,  1083,
+               1084,  1085,  1086,  1087,  1088,  1089,  1090,  1091,
+               1092,  1093,  1094,  1095,  1096,  1097,  1098,  1099,
+               1100,  1101,  1102,  1103,  1104,  1105,  1106,  1107,
+               1108,  1109,  1110,  1111,  1112,  1113,  1114,  32767,
+               1115,  1116,  1117,  1118,  1119,  32767, 1120,  1121,
+               1122,  1123,  1124,  1125,  1126,  1127,  1128,  1129,
+               1130,  1131,  0,     1133,  1134,  1135,  1136,  1137,
+               1138,  1139,  1140,  1141,  1142,  1143,  1144,  1145,
+               1146,  1147,  1148,  1149,  1150,  1151,  1152,  1153,
+               1154,  1155,  1156,  1157,  1158,  1159,  1160,  1161,
+               1162,  1163,  1164,  1165,  1166,  1167,  1168,  1169,
+               1170,  1171,  1172,  1173,  1174,  1175,  1176,  1177,
+               1178,  1179,  1180,  1181,  1182,  1183,  1184,  1185,
+               1186,  1187,  1188,  1189,  1190,  1191,  1192,  1193,
+               1194,  1195,  1196,  1197,  1198,  1199,  1200,  1201,
+               1202,  1203,  1204,  1205,  1206,  1207,  1208,  1209,
+               -18956,-15641,1212,  1213,  1214,  1215,  1216,  1217,
+               1218,  1219,  1220,  1221,  1222,  1223,  1224,  1225,
+               -5682, -5682, -5682, 1229,  1230,  1231,  1232,  1233,
+               1234,  1235,  1236,  1237,  1238,  1239,  5750,  5751,
+               5752,  5753,  5754,  5755,  5756,  1247,  1248,  1249,
+               1250,  1251,  1252,  3084,  3085,  3086,  16347, 13033,
+               13034, 9720,  1260,  1261,  1262,  3097,  3098,  3099,
+               3100,  3101,  1268,  1269,  1270,  1271,  1272,  1273,
+               1274,  1275,  32767, 32767, 32767, 32767, 1276,  1277,
+               1278,  1279,  1280,  1281,  1282,  1283,  1284,  1285,
+               1286,  1287,  1288,  1289,  1290,  1291,  1292,  1293,
+               1294,  1295,  1296,  1297,  1298,  1299,  1300,  1301,
+               1302,  1303,  1304,  1305,  1306,  1307,  1308,  1309,
+               1310,  1311,  1312,  1313,  1314,  1315,  1316,  1317,
+               1318,  1319,  1320,  1321,  1322,  1323,  1324,  1325,
+               1326,  1327,  1328,  1329,  1330,  1331,  1332,  1333,
+               1334,  1335,  1336,  1337,  1338,  1339,  1340,  1341,
+               1342,  3162,  4959,  0,     4962,  1347,  1348,  1349,
+               1350,  1351,  1352,  1353,  1354,  1355,  1356,  1357,
+               1358,  1359,  1360,  1361,  1362,  1363,  1364,  1365,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 7481,
+               7482,  7483,  7484,  5053,  5009,  7487,  7488,  7489,
+               7490,  20751, 17437, 17438, 14124, 14125, 10811, 10812,
+               7498,  7499,  7500,  7501,  7502,  32767, 32767, 7548,
+               7549,  7505,  7506,  7507,  7508,  32767, 32767, 7554,
+               7555,  7511,  4857,  4857,  4857,  4857,  2427,  4857,
+               4857,  7564,  4857,  7566,  13524, 7568,  13526, 7570,
+               4259,  4260,  4261,  -5479, 524,   6481,  4263,  7578,
+               4264,  2684,  1421,  -7842, -4527, -4527, -1212, -1212,
+               -1212, -1212, -1212, 7545,  7546,  0,     0,     -1214,
+               -1214, -1214, -1214, 7551,  7552,  32767, 1610,  -1216,
+               1439,  1440,  1441,  1442,  3873,  1444,  1445,  32767,
+               1446,  32767, -7220, 32767, -7221, 0,     2047,  2047,
+               2047,  11788, 5786,  -170,  2049,  -1265, 2050,  3631,
+               -1265, 2052,  2052,  2052,  2052,  2052,  2052,  2052,
+               1455,  2052,  2052,  -1265, 2053,  -1265, 2054,  -1265,
+               -1265, 2056,  7592,  7593,  7594,  32767, 32767, 7595,
+               7596,  1482,  1483,  1484,  -1267, -1267, -1267, 1488,
+               1489,  1490,  1491,  1492,  1493,  1494,  1495,  1496,
+               1497,  1498,  1499,  1500,  -4746, -4746, 1503,  1504,
+               1505,  1506,  1507,  1508,  1509,  1510,  1511,  1512,
+               1513,  1514,  0,     -3228, -3228, 1518,  1519,  1520,
+               1521,  1522,  1523,  1524,  1525,  -2364, -2363, 1528,
+               1529,  -2361, -2360, 3578,  0,     -2357, -2356, -2355,
+               5932,  -2824, -2824, 5980,  5981,  5937,  -231,  -230,
+               -229,  -2827, -2827, 5985,  -225,  5941,  5942,  -1069,
+               1534,  5899,  5946,  5947,  5948,  5949,  5950,  -1061,
+               -1060, 0,     -2785, 0,     -355,  -355,  -310,  -310,
+               -310,  9422,  -2791, 32767, -1054, -1053, -1052, -4786,
+               -4786, -4786, -4786, -4786, -4786, -4786, -1044, 5969,
+               5970,  -2833, 6938,  6939,  -2790, -2790, 6942,  0,
+               32767, 4607,  -923,  6945,  32767, 5173,  5174,  5175,
+               5176,  2589,  1595,  1596,  11396, 11352, 32767, 32767,
+               6126,  2812,  2813,  2814,  2815,  2816,  -5940, -5940,
+               1607,  1608,  2823,  32767, 32767, 1516,  0,     -8581,
+               0,     0,     728,   1525,  163,   -11068,0,     -2262,
+               -2306, -2305, 32767, 32767, 0,     0,     1580,  0,
+               0,     0,     -6443, 1685,  -10176,-4173, 1784,  -4173,
+               0,     -4172, 5925,  -4171, -4171, -4171, 0,     -437,
+               0,     0,     0,     161,   -435,  0,     2883,  -434,
+               0,     0,     0,     0,     -436,  0,     -5972, 0,
+               0,     0,     0,     0,     0,     0,     0,     2889,
+               2890,  2891,  0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     6371,
+               0,     0,     0,     0,     0,     0,     0,     117,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     32767, 0,     0,     3991,  3991,
+               3991,  3991,  0,     3990,  3990,  3990,  -1947, 1632,
+               3990,  3990,  3990,  -4296, 4461,  4462,  -4341, -4341,
+               -4296, 1873,  1873,  1873,  4472,  4473,  -4338, 1873,
+               -4292, -4292, 2720,  118,   -4246, -4292, -4292, 117,
+               -4293, -4293, 2719,  2719,  1660,  4446,  1662,  2018,
+               2019,  1975,  1976,  1977,  -7754, -7754, -8733, -5418,
+               113,   0,     112,   -2157, -5891, -5891, 0,     -5892,
+               6455,  -5893, 0,     0,     0,     32767, 32767, 32767,
+               5826,  32767, 32767, 32767, 32767, 6806,  32767, -2039,
+               32767, 5829,  32767, 5830,  5831,  5832,  32767, 5833,
+               5834,  32767, 5835,  32767, 32767, -3520, 0,     5837,
+               0,     5838,  0,     4035,  0,     5840,  32767, 10251,
+               154,   1671,  10253, 1673,  1674,  947,   151,   1514,
+               12746, 1679,  3942,  3987,  3987,  3987,  13719, 13720,
+               14700, 103,   5855,  13723, 5857,  8127,  0,     11862,
+               5860,  -96,   5862,  1690,  5863,  -4233, 5864,  5865,
+               5866,  5867,  5868,  5869,  5870,  5871,  5872,  5873,
+               32767, 5874,  5875,  5876,  5877,  5878,  5879,  5880,
+               5881,  5882,  5883,  13795, 5885,  5886,  5887,  5888,
+               10489, 5890,  1703,  1704,  -4247, 1706,  1707,  5891,
+               5892,  5893,  1711,  4098,  5895,  5896,  5897,  7650,
+               32767, 5899,  6406,  7966,  5902,  5903,  5904,  5905,
+               5906,  5907,  5908,  1800,  5910,  1801,  5912,  5913,
+               5914,  5915,  32767, 1727,  1728,  1729,  1730,  32767,
+               1731,  1732,  1733,  32767, 1734,  1735,  1736,  1737,
+               1738,  1739,  1740,  32767, 1741,  1742,  1743,  1744,
+               1745,  1746,  32767, 32767, 32767, 32767, 1747,  1748,
+               1749,  1750,  1751,  32767, 32767, 32767, 32767, 32767,
+               32767, 1752,  1753,  1754,  1755,  1756,  1757,  1758,
+               1759,  1760,  1761,  1762,  1763,  1764,  1765,  1766,
+               1767,  1768,  1769,  1770,  1771,  1772,  1773,  1774,
+               1775,  1776,  1777,  1778,  1779,  1780,  1781,  1782,
+               1783,  1784,  1785,  1786,  1787,  1788,  1789,  1790,
+               1791,  7729,  4151,  1794,  1795,  1796,  10083, 1327,
+               1327,  10131, 10132, 10088, 3920,  3921,  3922,  1324,
+               1324,  10136, 3926,  10092, 10093, 3082,  5685,  10050,
+               10097, 0,     5689,  10100, 5691,  3089,  796,   0,
+               1363,  12595, 3792,  3792,  3837,  3837,  3837,  13569,
+               13570, 14550, 11236, 5706,  13574, 5708,  7978,  11713,
+               11714, 11715, 11716, 11717, 11718, 11719, 7978,  966,
+               966,   9770,  0,     0,     9730,  9731,  0,     0,
+               -979,  2336,  7867,  0,     0,     32767, 0,     0,
+               0,     32767, 0,     0,     32767, 0,     32767, 32767,
+               9356,  32767, 0,     32767, 0,     32767, 1804,  2602,
+               0,     -4364, -4410, 5688,  0,     -4410, 0,     2603,
+               4897,  5694,  4332,  -6899, 1905,  1906,  1862,  1863,
+               1864,  -7867, -7867, -8846, -5531, 0,     -7867, 0,
+               -2269, -6003, -6003, 0,     5957,  0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     -7911, 0,
+               0,     0,     0,     -4600, 0,     0,     4156,  32767,
+               32767, 0,     0,     0,     0,     0,     1796,  0,
+               0,     0,     -1752, 0,     0,     -506,  -2065, 0,
+               0,     0,     0,     0,     0,     0,     4109,  0,
+               4110,  0,     0,     0,     0,     0,     4111,  17372,
+               0,     14058, 10744, 0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     -4650, 0,     0,     4161,  32767,
+               32767, 4117,  32767, 4118,  32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, -7946, 32767, -4632, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, -4642,
+               -4642, 4123,  4124,  -4687, 0,     0,     -4644, -4644,
+               0,     0,     -4646, -4646, 32767, 32767, 32767, 32767,
+               32767, 32767, 4084,  4085,  32767, 32767, 1609,  4087,
+               32767, 32767, 4088,  17349, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 10092, 4136,
+               10094, 4138,  10096, 0,     10097, 10098, 10099, 10100,
+               10101, 0,     32767, 32767, 32767, 0,     0,     0,
+               0,     0,     0,     32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 0,     0,     0,     0,     0,
+               0,     0,     0,     32767, 32767, 0,     10138, 10139,
+               0,     0,     0,     10145, 32767, 32767, 32767, 32767,
+               32767, 32767, -1425, 8316,  2314,  -3642, 32767, 0,
+               32767, 32767, 32767, 32767, -1426, -1426, -1426, -1426,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 0,     0,     0,     0,     32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 52,    52,    52,    52,    52,
+               0,     32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 1849,  1850,  32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               100,   101,   102,   103,   104,   105,   106,   107,
+               108,   -5633, -5633, -5633, -5633, -5633, -5633, -5633,
+               -5633, -5633, -5633, -5633, -5633, -5633, -5633, -5633,
+               -5633, 1985,  1986,  127,   2030,  2031,  2032,  -5034,
+               32767, 32767, 32767, 32767, 32767, 0,     32767, 32767,
+               32767, 5916,  5917,  5918,  5919,  5920,  5921,  5922,
+               5923,  5924,  8824,  5926,  32767, 32767, 0,     32767,
+               0,     5927,  5928,  5929,  5930,  5931,  5932,  5933,
+               5934,  5935,  5936,  5937,  5938,  5939,  5940,  5105,
+               5942,  5943,  5944,  5945,  5946,  5947,  5948,  5949,
+               5950,  5951,  5952,  5953,  5954,  5955,  5956,  5957,
+               32767, 5958,  5959,  5960,  5082,  5082,  5082,  5082,
+               5082,  5082,  5082,  5082,  5969,  5970,  5084,  5972,
+               5053,  5974,  5053,  5053,  5053,  5978,  5979,  5980,
+               5981,  5982,  5983,  5984,  5985,  5986,  5987,  5988,
+               5989,  32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 2552,  32767, 32767, 32767,
+               32767, 32767, 32767, 5990,  5991,  5992,  32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 5993,  32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 6936,  32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 0,     32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 1851,  1852,  1853,  1854,
+               1855,  1856,  1857,  1858,  1859,  1860,  1861,  1862,
+               1863,  1864,  1200,  2121,  1200,  1868,  1869,  1870,
+               1871,  1872,  1873,  1874,  1875,  1876,  1877,  1878,
+               1879,  1880,  1188,  1188,  1188,  1188,  1188,  1188,
+               1188,  1188,  1188,  1188,  1188,  1188,  1188,  1188,
+               1188,  1188,  1188,  1188,  1188,  1188,  -5282, 1188,
+               3483,  1188,  -642,  1188,  -5287, 1188,  -644,  1188,
+               1188,  -5292, 1188,  1188,  1188,  1188,  1188,  1188,
+               1188,  1188,  1188,  1188,  1188,  1188,  1925,  1926,
+               -6187, -6231, 1184,  3465,  1184,  1184,  -6228, 6953,
+               6954,  6955,  6956,  0,     1939,  1940,  1941,  1942,
+               1943,  1944,  1178,  1178,  1947,  1948,  1949,  1950,
+               1951,  1952,  1953,  1954,  1955,  1956,  1957,  1958,
+               1959,  1960,  1961,  1962,  1963,  1964,  1965,  1966,
+               1967,  1968,  1969,  1970,  1971,  1972,  1973,  1974,
+               1975,  1976,  1977,  1978,  1979,  1980,  1981,  1982,
+               1983,  1984,  1985,  1986,  1987,  1988,  1989,  32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 0,     0,     32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 0,     0,     32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 709,   666,   667,   668,   32767, 669,
+               714,   715,   716,   717,   -6694, 719,   720,   721,
+               32767, 722,   723,   724,   32767, 725,   726,   727,
+               728,   -5013, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 6052,  0,     0,     6055,
+               0,     0,     0,     0,     2293,  0,     32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 1244,  1245,  1246,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, -4660,
+               -4660, -4660, -4660, 4097,  4098,  -4705, -4705, -4660,
+               -4660, -4660, -4660, 4105,  4106,  -4705, 32767, -4661,
+               -4661, -4661, -4617, -4617, -4663, -4663, -4663, -4663,
+               -4663, -4663, -4663, 4072,  4073,  4074,  4075,  1644,
+               1600,  4078,  4079,  4080,  4081,  17342, 14028, 14029,
+               10715, 10716, 7402,  7403,  32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 0,     0,
+               0,     32767, 0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     32767, 0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               32767, 0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     1380,  32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 0,     32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 856,   0,     4573,
+               4574,  0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     32767, 0,     0,     0,
+               0,     0,     32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               5204,  5161,  5162,  5163,  5164,  5165,  5210,  5211,
+               5212,  5213,  -2198, 5215,  5216,  5217,  5218,  5219,
+               5220,  5221,  5222,  5223,  5224,  5225,  5226,  -515,
+               -515,  -515,  -515,  -515,  -515,  -515,  -515,  -515,
+               -515,  -515,  -515,  -515,  -515,  -515,  -515,  7103,
+               7104,  5245,  5246,  5247,  5248,  5249,  -1014, 5251,
+               5252,  5253,  5254,  5255,  5256,  5257,  5258,  5259,
+               5260,  8663,  8664,  -92,   -92,   8712,  8713,  8669,
+               8670,  8671,  8672,  -92,   -92,   8720,  8721,  8677,
+               8678,  8679,  8636,  8637,  8684,  8685,  8686,  8687,
+               8688,  8689,  8690,  -44,   -44,   -44,   -44,   2388,
+               2433,  -44,   -44,   -44,   -44,   -13304,-9989, -9989,
+               -6674, -6674, -3359, -3359, -44,   -44,   -44,   -44,
+               -44,   8713,  8714,  -89,   -89,   -44,   -44,   -44,
+               -44,   8721,  8722,  -89,   -89,   -44,   -44,   -44,
+               0,     0,     -46,   -46,   -46,   -46,   -46,   -46,
+               -46,   8689,  8690,  8691,  8692,  6261,  6217,  8695,
+               8696,  8697,  8698,  21959, 18645, 18646, 15332, 15333,
+               12019, 12020, 8706,  8707,  8708,  8709,  8710,  -46,
+               -46,   8758,  8759,  8715,  8716,  8717,  8718,  -46,
+               -46,   8766,  8767,  8723,  8724,  8725,  8726,  8727,
+               8728,  8729,  8730,  8731,  8732,  8733,  8734,  0,
+               0,     0,     0,     2432,  2477,  0,     0,     0,
+               0,     -13260,-9945, -9945, -6630, -6630, -3315, -3315,
+               0,     0,     0,     0,     0,     8757,  8758,  -45,
+               -45,   0,     0,     0,     0,     8765,  8766,  -45,
+               -45,   0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     8735,  8736,  8737,
+               8738,  6307,  6263,  8741,  8742,  8743,  8744,  22005,
+               18691, 18692, 15378, 15379, 12065, 12066, 8752,  8753,
+               8754,  8755,  8756,  0,     0,     8804,  8805,  8761,
+               8762,  8763,  8764,  0,     0,     8812,  8813,  8769,
+               6115,  6115,  6115,  6115,  3685,  6115,  6115,  8822,
+               6115,  8824,  14782, 8826,  14784, 8828,  5517,  5518,
+               5519,  -4221, 1782,  7739,  5521,  8836,  5522,  3942,
+               8839,  5523,  5524,  5525,  5526,  5527,  5528,  5529,
+               6127,  5531,  5532,  8850,  5533,  8852,  5534,  8854,
+               8855,  5535,  0,     0,     0,     8860,  8861,  0,
+               0,     0,     13252, 9939,  9939,  6626,  6626,  3313,
+               3313,  0,     0,     0,     -9269, -3312, 0,     0,
+               0,     9741,  32767, 32767, 0,     32767, 0,     32767,
+               32767, 0,     0,     0,     0,     0,     0,     0,
+               -597,  0,     0,     32767, 0,     32767, 0,     32767,
+               32767, 0,     0,     32767, 32767, 32767, 0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     32767, 32767, 0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     -1387, 0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               0,     0,     0,     0,     32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, -1773, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 0,
+               0,     0,     0,     0,     32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, -4161, 1581,  1582,  32767, 32767, 1990,  32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 0,     32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 1539,  32767, 32767, 6150,  6151,  6152,  411,
+               411,   411,   411,   411,   411,   411,   411,   411,
+               411,   411,   411,   411,   411,   411,   411,   8029,
+               8030,  6171,  6172,  969,   969,   1013,  1013,  1013,
+               1013,  1013,  969,   969,   969,   969,   8381,  969,
+               969,   969,   969,   969,   969,   969,   969,   969,
+               969,   969,   969,   6711,  6712,  6713,  6714,  6715,
+               6716,  6717,  6718,  6719,  6720,  6721,  6722,  6723,
+               6724,  6725,  6726,  -891,  -891,  969,   969,   6173,
+               6174,  6131,  6132,  6133,  6134,  6135,  6180,  6181,
+               6182,  6183,  -1228, 6185,  6186,  6187,  6188,  6189,
+               6190,  6191,  6192,  6193,  6194,  6195,  6196,  455,
+               455,   455,   455,   455,   455,   455,   455,   455,
+               455,   455,   455,   455,   455,   455,   455,   8073,
+               8074,  6215,  6216,  1013,  1013,  1057,  1057,  1057,
+               1057,  1057,  1013,  1013,  1013,  1013,  8425,  1013,
+               1013,  1013,  1013,  1013,  1013,  1013,  1013,  1013,
+               1013,  1013,  1013,  6755,  6756,  6757,  6758,  6759,
+               6760,  6761,  6762,  6763,  6764,  6765,  6766,  6767,
+               6768,  6769,  6770,  -847,  -847,  1013,  1013,  6217,
+               6218,  6175,  6176,  6177,  6178,  6179,  6224,  6225,
+               6226,  6227,  -1184, 6229,  6230,  6231,  6232,  6233,
+               6234,  6235,  6236,  6237,  6238,  6239,  6240,  499,
+               499,   499,   499,   499,   499,   499,   499,   499,
+               499,   499,   499,   499,   499,   499,   499,   8117,
+               8118,  6259,  6260,  6261,  6262,  6263,  0,     6265,
+               6266,  6267,  6268,  6269,  6270,  6271,  6272,  6273,
+               6274,  9677,  9678,  922,   922,   9726,  9727,  9683,
+               9684,  9685,  9686,  922,   922,   9734,  9735,  9691,
+               9692,  9693,  9650,  9651,  9698,  9699,  9700,  9701,
+               9702,  9703,  9704,  970,   970,   970,   970,   3402,
+               3447,  970,   970,   970,   970,   -12290,-8975, -8975,
+               -5660, -5660, -2345, -2345, -2345, -2345, -2345, 6412,
+               6413,  -2390, -2390, -2345, -2345, -2345, -2345, 6420,
+               6421,  -2390, -2390, -2345, -2345, -2345, -2301, -2301,
+               -2347, -2347, -2347, -2347, -2347, -2347, -2347, 6388,
+               6389,  6390,  6391,  3960,  3916,  6394,  6395,  6396,
+               6397,  19658, 16344, 16345, 13031, 13032, 9718,  9719,
+               6405,  6406,  6407,  6408,  6409,  -2347, -2347, 6457,
+               6458,  6414,  6415,  6416,  6417,  -2347, -2347, 6465,
+               6466,  6422,  6423,  6424,  6381,  6382,  6429,  6430,
+               6431,  6432,  6433,  6434,  6435,  -2299, -2299, -2299,
+               -2299, 133,   178,   -2299, -2299, -2299, -2299, -15559,
+               -12244,-12244,-8929, -8929, -5614, -5614, -2299, -2299,
+               -2299, -2299, -2299, 6458,  6459,  -2344, -2344, -2299,
+               -2299, -2299, -2299, 6466,  6467,  -2344, -2344, -2299,
+               -2299, -2299, -2299, -2299, -2299, -2299, -2299, -2299,
+               -2299, -2299, -2299, 6436,  6437,  6438,  6439,  4008,
+               3964,  6442,  6443,  6444,  6445,  19706, 16392, 16393,
+               13079, 13080, 9766,  9767,  6453,  6454,  6455,  6456,
+               6457,  -2299, -2299, 6505,  6506,  6462,  6463,  6464,
+               6465,  -2299, -2299, 6513,  6514,  6470,  6471,  6472,
+               6473,  6474,  6475,  6476,  6477,  6478,  6479,  6480,
+               6481,  -2253, -2253, -2253, -2253, 179,   224,   -2253,
+               -2253, -2253, -2253, -15513,-12198,-12198,-8883, -8883,
+               -5568, -5568, -2253, -2253, -2253, -2253, -2253, 6504,
+               6505,  -2298, -2298, -2253, -2253, -2253, -2253, 6512,
+               6513,  -2298, -2298, -2253, 402,   403,   404,   405,
+               2836,  407,   408,   -2298, 410,   -2298, -8255, -2298,
+               -8255, -2298, 1014,  1014,  1014,  10755, 4753,  -1203,
+               1016,  -2298, 1017,  2598,  -2298, 1019,  1019,  1019,
+               1019,  1019,  1019,  1019,  422,   1019,  1019,  -2298,
+               1020,  -2298, 1021,  -2298, -2298, 1023,  6559,  6560,
+               6561,  -2298, -2298, 6564,  6565,  6566,  -6685, -3371,
+               -3370, -56,   -55,   3259,  3260,  3261,  12531, 6575,
+               3264,  3265,  3266,  -6474, -471,  5486,  3268,  6583,
+               3269,  1689,  6586,  3270,  3271,  3272,  3273,  3274,
+               3275,  3276,  3874,  3278,  3279,  6597,  3280,  6599,
+               3281,  6601,  6602,  3282,  3283,  32767, 32767, 32767,
+               3284,  3285,  3286,  3287,  3288,  3289,  3290,  3291,
+               3292,  3293,  3294,  3295,  3296,  3297,  3298,  3299,
+               3300,  3301,  3302,  3303,  3304,  3305,  3306,  3307,
+               3308,  3309,  3310,  3311,  3312,  3313,  3314,  3315,
+               3316,  3317,  3318,  3319,  3320,  3321,  3322,  3323,
+               3324,  3325,  3326,  3327,  3328,  3329,  3330,  3331,
+               3332,  3333,  3334,  3335,  3336,  3337,  3338,  3339,
+               3340,  3341,  3342,  3343,  3344,  3345,  3346,  3347,
+               3348,  3349,  3350,  3351,  32767, 32767, 3352,  3353,
+               3354,  3355,  3356,  3357,  3358,  3359,  3360,  3361,
+               3362,  3363,  3364,  3365,  3366,  3367,  3368,  3369,
+               3370,  3371,  3372,  3373,  3374,  3375,  3376,  3377,
+               3378,  3379,  3380,  3381,  3382,  3383,  3384,  3385,
+               3386,  3387,  3388,  3389,  3390,  3391,  3392,  3393,
+               3394,  3395,  3396,  3397,  3398,  3399,  3400,  3401,
+               3402,  3403,  3404,  3405,  3406,  3407,  4795,  3409,
+               3410,  3411,  3412,  3413,  3414,  3415,  3416,  3417,
+               3418,  3419,  3420,  3421,  3422,  3423,  3424,  3425,
+               3426,  3427,  3428,  3429,  3430,  3431,  3432,  3433,
+               3434,  3435,  3436,  3437,  3438,  3439,  3440,  3441,
+               3442,  3443,  3444,  3445,  3446,  3447,  3448,  3449,
+               3450,  3451,  3452,  3453,  3454,  3455,  3456,  3457,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 3458,
+               3459,  3460,  3461,  3462,  -8139, 3464,  32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 3465,  3466,  2001,  3468,  3469,  32767,
+               32767, 32767, 32767, 32767, 3470,  3471,  3472,  3473,
+               3474,  3475,  3476,  3477,  3478,  3479,  3480,  3481,
+               3482,  3483,  3484,  3485,  3486,  3487,  3488,  3489,
+               3490,  3491,  3492,  3493,  3494,  3495,  32767, 3496,
+               3497,  3498,  3499,  3500,  32767, 3501,  32767, 3502,
+               3503,  32767, 3504,  3505,  32767, 3506,  0,     0,
+               3509,  3510,  3511,  3512,  3513,  3514,  3515,  3516,
+               3517,  3518,  3519,  3520,  3521,  3522,  3523,  3524,
+               3525,  3526,  3527,  3528,  3529,  3530,  3531,  3532,
+               3533,  3534,  3535,  3536,  3537,  3538,  3539,  3540,
+               3541,  3542,  3543,  3544,  3545,  1902,  1902,  1902,
+               1902,  9314,  1902,  1902,  1902,  1902,  1902,  1902,
+               1902,  1902,  1902,  1902,  1902,  1902,  7644,  7645,
+               7646,  7647,  7648,  7649,  7650,  7651,  7652,  7653,
+               7654,  7655,  7656,  7657,  7658,  7659,  42,    42,
+               1902,  0,     0,     0,     7067,  7068,  7069,  7070,
+               7071,  7116,  7117,  7118,  7119,  -292,  7121,  7122,
+               7123,  7124,  0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     3614,  3615,  3616,  10892, 3618,  3619,
+               10854, 3621,  3622,  3623,  3624,  3625,  8994,  -2751,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     3640,  3641,  2783,  -3331,
+               -3330, 3645,  3646,  0,     6053,  6054,  0,     6056,
+               6057,  6058,  6059,  3767,  6061,  6858,  0,     0,
+               3659,  0,     0,     1531,  1531,  1531,  1531,  1531,
+               1531,  1531,  1531,  1531,  1531,  1531,  1531,  1531,
+               1531,  1531,  9149,  9150,  7291,  7292,  7293,  7294,
+               7295,  1032,  7297,  7298,  7299,  7300,  7301,  7302,
+               7303,  7304,  0,     7307,  10710, 10711, 1955,  1955,
+               10759, 10760, 10716, 4548,  4549,  4550,  1952,  1952,
+               10764, 10765, 10721, 10722, 3711,  6314,  10679, 10726,
+               10727, 10728, 10729, 10730, 3719,  3720,  1996,  1996,
+               1996,  1996,  4428,  4473,  4473,  3728,  1994,  1994,
+               -11266,3732,  3733,  3734,  0,     0,     0,     0,
+               0,     0,     0,     3742,  10755, 10756, 1953,  1953,
+               1998,  1998,  1998,  11730, 11731, 12711, 9397,  3867,
+               11735, 3869,  6139,  9874,  9875,  9876,  9877,  9878,
+               9879,  9880,  6139,  -873,  -873,  7931,  -1839, -1839,
+               7891,  7892,  -1839, -1839, -2818, 497,   6028,  -1839,
+               -1839, -66,   -66,   -66,   -66,   2522,  2523,  -6280,
+               -6280, -6235, -66,   -66,   -66,   2533,  2534,  -6277,
+               -66,   -6231, -6231, 781,   -1821, -6185, -6231, 3867,
+               -1821, -6231, -1821, 782,   3076,  3873,  2511,  -8720,
+               84,    85,    41,    42,    43,    -9688, -9688, -10667,
+               -7352, -1821, -9688, -1821, -4090, -7824, -7824, -7824,
+               -7824, -7824, -7824, -7824, -4082, 2931,  2932,  -5871,
+               3900,  3901,  -5828, -5828, 3904,  3905,  4885,  1571,
+               -3959, 3909,  3910,  2138,  2139,  2140,  2141,  -446,
+               -446,  8358,  8359,  8315,  2147,  2148,  2149,  -449,
+               -449,  8363,  2153,  8319,  8320,  1309,  3912,  8277,
+               8324,  -1773, 3916,  8327,  3918,  1316,  -977,  -1773,
+               -410,  10822, 2019,  2019,  2064,  2064,  2064,  11796,
+               11797, 12777, 9463,  3933,  11801, 3935,  6205,  9940,
+               9941,  9942,  9943,  9944,  9945,  9946,  6205,  -807,
+               -807,  7997,  -1773, -1773, 7957,  7958,  -1773, -1773,
+               -2752, 563,   6094,  -1773, -1773, 0,     0,     0,
+               0,     2588,  2589,  -6214, -6214, -6169, 0,     0,
+               0,     2599,  2600,  -6211, 0,     -6165, -6165, 847,
+               -1755, -6119, -6165, 3933,  -1755, -6165, -1755, 848,
+               3142,  3939,  2577,  -8654, 150,   151,   107,   108,
+               109,   -9622, -9622, -10601,-7286, -1755, -9622, -1755,
+               -4024, -7758, -7758, -7758, -7758, -7758, -7758, -7758,
+               -4016, 2997,  2998,  -5805, 3966,  3967,  -5762, -5762,
+               3970,  3971,  4951,  1637,  -3893, 3975,  3976,  2204,
+               2205,  2206,  2207,  -380,  -380,  8424,  8425,  8381,
+               2213,  2214,  2215,  -383,  -383,  8429,  2219,  8385,
+               8386,  1375,  3978,  8343,  8390,  -1707, 3982,  8393,
+               3984,  1382,  -911,  -1707, -344,  10888, 2085,  2085,
+               2130,  2130,  2130,  11862, 11863, 12843, 9529,  3999,
+               11867, 4001,  6271,  10006, 10007, 4005,  -1951, 4007,
+               4008,  4009,  4010,  4011,  4012,  4013,  4014,  4015,
+               4016,  4017,  4018,  4019,  4020,  4021,  4022,  4023,
+               4024,  4025,  4026,  4027,  4028,  4029,  4030,  4031,
+               11943, 4033,  4034,  4035,  4036,  8637,  4038,  4039,
+               -116,  32767, 32767, 4041,  4042,  4043,  4044,  4045,
+               2250,  4047,  4048,  4049,  5802,  4051,  4052,  4559,
+               6119,  4055,  4056,  4057,  4058,  4059,  4060,  4061,
+               -47,   4063,  -46,   4065,  4066,  4067,  4068,  4069,
+               -41,   -13301,4072,  -9985, -6670, 4075,  4076,  4077,
+               4078,  4079,  4080,  4081,  4082,  4083,  4084,  4085,
+               4086,  4087,  4088,  4089,  4090,  8741,  4092,  4093,
+               -67,   32767, 32767, 32767, 32767, 32767, 2257,  32767,
+               2258,  2259,  2260,  32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767,
+               32767, 32767, 32767, 32767, 2261,  32767, 2262,  32767,
+               2263,  32767, 2264,  32767, 2265,  32767, 2266,  32767,
+               2267,  8737,  8738,  -26,   -26,   8786,  4100,  4101,
+               8746,  8747,  4104,  4105,  8752,  8753,  32767, 2274,
+               32767, 2275,  32767, 32767, 32767, 32767, 32767, 32767,
+               2276,  2277,  32767, 2278,  2279,  32767, 2280,  0,
+               32767, 2282,  9695,  4109,  -3486, -3486, 4112,  4113,
+               4114,  4115,  4116,  4117,  32767, 32767, 32767, 32767,
+               32767, 32767, 4118,  4119,  4120,  4121,  4122,  4123,
+               4124,  4125,  4126,  4127,  4128,  4129,  4130,  4131,
+               4132,  4133,  4134,  4849,  4136,  4137,  4851,  4851,
+               4140,  4852,  4142,  4143,  4144,  4145,  4146,  4147,
+               4148,  4149,  4150,  4151,  2293,  4153,  907,   32767,
+               2295,  4155,  909,   4157,  910,   4159,  911,   4161,
+               912,   4163,  913,   4165,  914,   32767, 915,   4168,
+               916,   4170,  917,   4172,  4173,  918,   4175,  4176,
+               4177,  4178,  4179,  4180,  4181,  4182,  4183,  4184,
+               4185,  2309,  4186,  4187,  4188,  4189,  2312,  2313,
+               32767, 2314,  4190,  4191,  -2632, 2317,  4193,  32767,
+               4194,  4195,  4196,  4197,  4198,  4199,  4200,  4201,
+               4202,  4203,  4204,  4205,  4206,  0,     0,     4209,
+               4210,  4211,  4212,  4213,  2318,  4215,  4216,  2319,
+               2320,  2321,  2322,  4221,  4222,  4223,  2323,  2324,
+               4226,  4227,  4228,  4229,  4230,  4231,  5551,  4233,
+               4234,  4235,  4236,  4237,  4238,  4239,  4240,  4241,
+               4242,  4243,  4244,  4245,  4246,  4247,  4248,  4249,
+               4250,  4251,  4252,  4253,  4254,  4255,  4256,  4257,
+               4258,  4259,  4260,  4261,  4262,  4263,  4264,  4265,
+               4266,  4267,  4268,  4269,  4270,  4271,  4272,  4273,
+               4274,  4275,  -3342, -3342, -3342, 4276,  4277,  2418,
+               2419,  -2784, -2784, -2740, -2740, -2740, -2740, -2740,
+               -2784, -2784, -2784, -2784, 4628,  -2784, -2784, -2784,
+               -2784, -2784, -2784, -2784, -2784, -2784, -2784, -2784,
+               -2784, 2958,  2959,  2960,  2961,  2962,  2963,  2964,
+               2965,  2966,  2967,  2968,  2969,  2970,  2971,  2972,
+               2973,  -4644, -4644, -2784, -2784, 2420,  2421,  2378,
+               2379,  2380,  2381,  2382,  2427,  2428,  2429,  2430,
+               -4981, 2432,  2433,  2434,  2435,  2436,  2437,  2438,
+               2439,  2440,  2441,  2442,  2443,  -3298, -3298, -3298,
+               -3298, -3298, -3298, -3298, -3298, -3298, -3298, -3298,
+               -3298, -3298, -3298, -3298, -3298, 4320,  4321,  2462,
+               4365,  4366,  4367,  -2699, -2699, -2699, -2699, -2699,
+               -2743, -2743, -2743, -2743, 4669,  -2743, -2743, -2743,
+               -2743, 4382,  4383,  4384,  4385,  4386,  4387,  4388,
+               4389,  4390,  4391,  4392,  4393,  4394,  4395,  4396,
+               4397,  4398,  4399,  4400,  4401,  4402,  4403,  4404,
+               4405,  4406,  4407,  4408,  4409,  4410,  4411,  4412,
+               4413,  4414,  4415,  4416,  4417,  4418,  4419,  4420,
+               4421,  4422,  4423,  4424,  4425,  4426,  4427,  4428,
+               4429,  816,   816,   816,   -6459, 816,   816,   -6418,
+               816,   816,   816,   816,   816,   -4552, 7194,  4444,
+               4445,  4446,  4447,  4448,  4449,  4450,  4451,  4452,
+               4453,  4454,  4455,  816,   816,   1675,  7790,  7790,
+               816,   816,   4463,  -1589, -1589, 4466,  -1589, -1589,
+               -1589, -1589, 704,   -1589, -2385, 4474,  4475,  817,
+               4477,  4478,  2948,  2949,  2950,  2951,  2952,  2953,
+               2954,  2955,  2956,  2957,  2958,  2959,  2960,  2961,
+               2962,  -4655, -4655, -2795, -2795, -2795, -2795, -2795,
+               3469,  -2795, -2795, -2795, -2795, -2795, -2795, -2795,
+               -2795, 4510,  -2796, -6198, -6198, 2559,  2560,  -6243,
+               -6243, -6198, -6198, -6198, -6198, 2567,  2568,  -6243,
+               -6243, -6198, -6198, -6198, -6154, -6154, -6200, -6200,
+               -6200, -6200, -6200, -6200, -6200, 2535,  2536,  2537,
+               2538,  107,   63,    2541,  2542,  2543,  2544,  15805,
+               12491, 12492, 32767, 4540,  4541,  4542,  4543,  4544,
+               4545,  4546,  2548,  -6208, -6208, 2596,  2597,  2553,
+               2554,  2555,  2556,  -6208, -6208, 2604,  2605,  2561,
+               2562,  2563,  2520,  2521,  2568,  2569,  2570,  2571,
+               2572,  2573,  2574,  -6160, -6160, -6160, -6160, -3728,
+               -3683, -6160, -6160, -6160, -6160, -19420,-16105,-16105,
+               -12790,-12790,-9475, -9475, -6160, -6160, -6160, -6160,
+               -6160, 32767, 2597,  -6206, -6206, -6161, -6161, -6161,
+               -6161, 2604,  2605,  -6206, -6206, -6161, -6161, -6161,
+               -6161, -6161, -6161, -6161, -6161, -6161, -6161, -6161,
+               -6161, 2574,  2575,  2576,  2577,  146,   102,   2580,
+               2581,  2582,  2583,  15844, 12530, 12531, 9217,  9218,
+               5904,  5905,  2591,  2592,  2593,  2594,  2595,  -6161,
+               -6161, 2643,  2644,  2600,  2601,  2602,  2603,  -6161,
+               -6161, 2651,  2652,  2608,  2609,  2610,  2611,  2612,
+               2613,  2614,  2615,  2616,  2617,  2618,  2619,  -6115,
+               -6115, -6115, -6115, -3683, -3638, -6115, -6115, -6115,
+               -6115, -19375,-16060,-16060,-12745,-12745,-9430, -9430,
+               -6115, -6115, -6115, -6115, -6115, 2642,  2643,  -6160,
+               -6160, -6115, -6115, -6115, -6115, 2650,  2651,  -6160,
+               -6160, -6115, -3460, -3459, -3458, -3457, -1026, -3455,
+               -3454, -6160, -3452, -6160, -12117,-6160, -12117,-6160,
+               -2848, -2848, -2848, 6893,  891,   -5065, -2846, -6160,
+               -2845, -1264, 0,     9264,  5950,  5951,  2637,  2638,
+               2639,  2640,  2641,  -6115, -6115, 2689,  2690,  2646,
+               2647,  2648,  2649,  -6115, -6115, 2697,  2698,  2654,
+               0,     0,     0,     0,     -2430, 0,     0,     2707,
+               0,     2709,  8667,  2711,  8669,  2713,  -598,  -597,
+               -596,  -10336,-4333, 1624,  -594,  2721,  -593,  -2173,
+               2724,  -592,  -591,  -590,  -589,  -588,  -587,  -586,
+               12,    -584,  -583,  2735,  -582,  2737,  -581,  2739,
+               2740,  -580,  -6115, -6115, -6115, 2745,  2746,  -6115,
+               -6115, 0,     0,     0,     2752,  2753,  2754,  0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0,     0,     0,     0,     6247,  6248,  0,     0,
+               0,     0,     0,     0,     0,     0,     0,     0,
+               0
+       };
+
+       const unsigned char *k = (const unsigned char *) key;
+       size_t          keylen = 4;
+       uint32          a = 0;
+       uint32          b = 1;
+
+       while (keylen--)
+       {
+               unsigned char c = *k++;
+
+               a = a * 257 + c;
+               b = b * 8191 + c;
+       }
+       return h[a % 13209] + h[b % 13209];
+}
+
+/* Hash lookup information for decomposition */
+static const pg_unicode_decompinfo UnicodeDecompInfo =
+{
+       UnicodeDecompMain,
+       Decomp_hash_func,
+       6604
+};
+
+/* Inverse lookup array -- contains indexes into UnicodeDecompMain[] */
+static const uint16 RecompInverseLookup[941] =
+{
+       /* U+003C+0338 -> U+226E */ 1823,
+       /* U+003D+0338 -> U+2260 */ 1820,
+       /* U+003E+0338 -> U+226F */ 1824,
+       /* U+0041+0300 -> U+00C0 */ 14,
+       /* U+0041+0301 -> U+00C1 */ 15,
+       /* U+0041+0302 -> U+00C2 */ 16,
+       /* U+0041+0303 -> U+00C3 */ 17,
+       /* U+0041+0304 -> U+0100 */ 67,
+       /* U+0041+0306 -> U+0102 */ 69,
+       /* U+0041+0307 -> U+0226 */ 270,
+       /* U+0041+0308 -> U+00C4 */ 18,
+       /* U+0041+0309 -> U+1EA2 */ 1278,
+       /* U+0041+030A -> U+00C5 */ 19,
+       /* U+0041+030C -> U+01CD */ 194,
+       /* U+0041+030F -> U+0200 */ 240,
+       /* U+0041+0311 -> U+0202 */ 242,
+       /* U+0041+0323 -> U+1EA0 */ 1276,
+       /* U+0041+0325 -> U+1E00 */ 1120,
+       /* U+0041+0328 -> U+0104 */ 71,
+       /* U+0042+0307 -> U+1E02 */ 1122,
+       /* U+0042+0323 -> U+1E04 */ 1124,
+       /* U+0042+0331 -> U+1E06 */ 1126,
+       /* U+0043+0301 -> U+0106 */ 73,
+       /* U+0043+0302 -> U+0108 */ 75,
+       /* U+0043+0307 -> U+010A */ 77,
+       /* U+0043+030C -> U+010C */ 79,
+       /* U+0043+0327 -> U+00C7 */ 20,
+       /* U+0044+0307 -> U+1E0A */ 1130,
+       /* U+0044+030C -> U+010E */ 81,
+       /* U+0044+0323 -> U+1E0C */ 1132,
+       /* U+0044+0327 -> U+1E10 */ 1136,
+       /* U+0044+032D -> U+1E12 */ 1138,
+       /* U+0044+0331 -> U+1E0E */ 1134,
+       /* U+0045+0300 -> U+00C8 */ 21,
+       /* U+0045+0301 -> U+00C9 */ 22,
+       /* U+0045+0302 -> U+00CA */ 23,
+       /* U+0045+0303 -> U+1EBC */ 1304,
+       /* U+0045+0304 -> U+0112 */ 83,
+       /* U+0045+0306 -> U+0114 */ 85,
+       /* U+0045+0307 -> U+0116 */ 87,
+       /* U+0045+0308 -> U+00CB */ 24,
+       /* U+0045+0309 -> U+1EBA */ 1302,
+       /* U+0045+030C -> U+011A */ 91,
+       /* U+0045+030F -> U+0204 */ 244,
+       /* U+0045+0311 -> U+0206 */ 246,
+       /* U+0045+0323 -> U+1EB8 */ 1300,
+       /* U+0045+0327 -> U+0228 */ 272,
+       /* U+0045+0328 -> U+0118 */ 89,
+       /* U+0045+032D -> U+1E18 */ 1144,
+       /* U+0045+0330 -> U+1E1A */ 1146,
+       /* U+0046+0307 -> U+1E1E */ 1150,
+       /* U+0047+0301 -> U+01F4 */ 230,
+       /* U+0047+0302 -> U+011C */ 93,
+       /* U+0047+0304 -> U+1E20 */ 1152,
+       /* U+0047+0306 -> U+011E */ 95,
+       /* U+0047+0307 -> U+0120 */ 97,
+       /* U+0047+030C -> U+01E6 */ 216,
+       /* U+0047+0327 -> U+0122 */ 99,
+       /* U+0048+0302 -> U+0124 */ 101,
+       /* U+0048+0307 -> U+1E22 */ 1154,
+       /* U+0048+0308 -> U+1E26 */ 1158,
+       /* U+0048+030C -> U+021E */ 268,
+       /* U+0048+0323 -> U+1E24 */ 1156,
+       /* U+0048+0327 -> U+1E28 */ 1160,
+       /* U+0048+032E -> U+1E2A */ 1162,
+       /* U+0049+0300 -> U+00CC */ 25,
+       /* U+0049+0301 -> U+00CD */ 26,
+       /* U+0049+0302 -> U+00CE */ 27,
+       /* U+0049+0303 -> U+0128 */ 103,
+       /* U+0049+0304 -> U+012A */ 105,
+       /* U+0049+0306 -> U+012C */ 107,
+       /* U+0049+0307 -> U+0130 */ 111,
+       /* U+0049+0308 -> U+00CF */ 28,
+       /* U+0049+0309 -> U+1EC8 */ 1316,
+       /* U+0049+030C -> U+01CF */ 196,
+       /* U+0049+030F -> U+0208 */ 248,
+       /* U+0049+0311 -> U+020A */ 250,
+       /* U+0049+0323 -> U+1ECA */ 1318,
+       /* U+0049+0328 -> U+012E */ 109,
+       /* U+0049+0330 -> U+1E2C */ 1164,
+       /* U+004A+0302 -> U+0134 */ 114,
+       /* U+004B+0301 -> U+1E30 */ 1168,
+       /* U+004B+030C -> U+01E8 */ 218,
+       /* U+004B+0323 -> U+1E32 */ 1170,
+       /* U+004B+0327 -> U+0136 */ 116,
+       /* U+004B+0331 -> U+1E34 */ 1172,
+       /* U+004C+0301 -> U+0139 */ 118,
+       /* U+004C+030C -> U+013D */ 122,
+       /* U+004C+0323 -> U+1E36 */ 1174,
+       /* U+004C+0327 -> U+013B */ 120,
+       /* U+004C+032D -> U+1E3C */ 1180,
+       /* U+004C+0331 -> U+1E3A */ 1178,
+       /* U+004D+0301 -> U+1E3E */ 1182,
+       /* U+004D+0307 -> U+1E40 */ 1184,
+       /* U+004D+0323 -> U+1E42 */ 1186,
+       /* U+004E+0300 -> U+01F8 */ 232,
+       /* U+004E+0301 -> U+0143 */ 126,
+       /* U+004E+0303 -> U+00D1 */ 29,
+       /* U+004E+0307 -> U+1E44 */ 1188,
+       /* U+004E+030C -> U+0147 */ 130,
+       /* U+004E+0323 -> U+1E46 */ 1190,
+       /* U+004E+0327 -> U+0145 */ 128,
+       /* U+004E+032D -> U+1E4A */ 1194,
+       /* U+004E+0331 -> U+1E48 */ 1192,
+       /* U+004F+0300 -> U+00D2 */ 30,
+       /* U+004F+0301 -> U+00D3 */ 31,
+       /* U+004F+0302 -> U+00D4 */ 32,
+       /* U+004F+0303 -> U+00D5 */ 33,
+       /* U+004F+0304 -> U+014C */ 133,
+       /* U+004F+0306 -> U+014E */ 135,
+       /* U+004F+0307 -> U+022E */ 278,
+       /* U+004F+0308 -> U+00D6 */ 34,
+       /* U+004F+0309 -> U+1ECE */ 1322,
+       /* U+004F+030B -> U+0150 */ 137,
+       /* U+004F+030C -> U+01D1 */ 198,
+       /* U+004F+030F -> U+020C */ 252,
+       /* U+004F+0311 -> U+020E */ 254,
+       /* U+004F+031B -> U+01A0 */ 181,
+       /* U+004F+0323 -> U+1ECC */ 1320,
+       /* U+004F+0328 -> U+01EA */ 220,
+       /* U+0050+0301 -> U+1E54 */ 1204,
+       /* U+0050+0307 -> U+1E56 */ 1206,
+       /* U+0052+0301 -> U+0154 */ 139,
+       /* U+0052+0307 -> U+1E58 */ 1208,
+       /* U+0052+030C -> U+0158 */ 143,
+       /* U+0052+030F -> U+0210 */ 256,
+       /* U+0052+0311 -> U+0212 */ 258,
+       /* U+0052+0323 -> U+1E5A */ 1210,
+       /* U+0052+0327 -> U+0156 */ 141,
+       /* U+0052+0331 -> U+1E5E */ 1214,
+       /* U+0053+0301 -> U+015A */ 145,
+       /* U+0053+0302 -> U+015C */ 147,
+       /* U+0053+0307 -> U+1E60 */ 1216,
+       /* U+0053+030C -> U+0160 */ 151,
+       /* U+0053+0323 -> U+1E62 */ 1218,
+       /* U+0053+0326 -> U+0218 */ 264,
+       /* U+0053+0327 -> U+015E */ 149,
+       /* U+0054+0307 -> U+1E6A */ 1226,
+       /* U+0054+030C -> U+0164 */ 155,
+       /* U+0054+0323 -> U+1E6C */ 1228,
+       /* U+0054+0326 -> U+021A */ 266,
+       /* U+0054+0327 -> U+0162 */ 153,
+       /* U+0054+032D -> U+1E70 */ 1232,
+       /* U+0054+0331 -> U+1E6E */ 1230,
+       /* U+0055+0300 -> U+00D9 */ 35,
+       /* U+0055+0301 -> U+00DA */ 36,
+       /* U+0055+0302 -> U+00DB */ 37,
+       /* U+0055+0303 -> U+0168 */ 157,
+       /* U+0055+0304 -> U+016A */ 159,
+       /* U+0055+0306 -> U+016C */ 161,
+       /* U+0055+0308 -> U+00DC */ 38,
+       /* U+0055+0309 -> U+1EE6 */ 1346,
+       /* U+0055+030A -> U+016E */ 163,
+       /* U+0055+030B -> U+0170 */ 165,
+       /* U+0055+030C -> U+01D3 */ 200,
+       /* U+0055+030F -> U+0214 */ 260,
+       /* U+0055+0311 -> U+0216 */ 262,
+       /* U+0055+031B -> U+01AF */ 183,
+       /* U+0055+0323 -> U+1EE4 */ 1344,
+       /* U+0055+0324 -> U+1E72 */ 1234,
+       /* U+0055+0328 -> U+0172 */ 167,
+       /* U+0055+032D -> U+1E76 */ 1238,
+       /* U+0055+0330 -> U+1E74 */ 1236,
+       /* U+0056+0303 -> U+1E7C */ 1244,
+       /* U+0056+0323 -> U+1E7E */ 1246,
+       /* U+0057+0300 -> U+1E80 */ 1248,
+       /* U+0057+0301 -> U+1E82 */ 1250,
+       /* U+0057+0302 -> U+0174 */ 169,
+       /* U+0057+0307 -> U+1E86 */ 1254,
+       /* U+0057+0308 -> U+1E84 */ 1252,
+       /* U+0057+0323 -> U+1E88 */ 1256,
+       /* U+0058+0307 -> U+1E8A */ 1258,
+       /* U+0058+0308 -> U+1E8C */ 1260,
+       /* U+0059+0300 -> U+1EF2 */ 1358,
+       /* U+0059+0301 -> U+00DD */ 39,
+       /* U+0059+0302 -> U+0176 */ 171,
+       /* U+0059+0303 -> U+1EF8 */ 1364,
+       /* U+0059+0304 -> U+0232 */ 282,
+       /* U+0059+0307 -> U+1E8E */ 1262,
+       /* U+0059+0308 -> U+0178 */ 173,
+       /* U+0059+0309 -> U+1EF6 */ 1362,
+       /* U+0059+0323 -> U+1EF4 */ 1360,
+       /* U+005A+0301 -> U+0179 */ 174,
+       /* U+005A+0302 -> U+1E90 */ 1264,
+       /* U+005A+0307 -> U+017B */ 176,
+       /* U+005A+030C -> U+017D */ 178,
+       /* U+005A+0323 -> U+1E92 */ 1266,
+       /* U+005A+0331 -> U+1E94 */ 1268,
+       /* U+0061+0300 -> U+00E0 */ 40,
+       /* U+0061+0301 -> U+00E1 */ 41,
+       /* U+0061+0302 -> U+00E2 */ 42,
+       /* U+0061+0303 -> U+00E3 */ 43,
+       /* U+0061+0304 -> U+0101 */ 68,
+       /* U+0061+0306 -> U+0103 */ 70,
+       /* U+0061+0307 -> U+0227 */ 271,
+       /* U+0061+0308 -> U+00E4 */ 44,
+       /* U+0061+0309 -> U+1EA3 */ 1279,
+       /* U+0061+030A -> U+00E5 */ 45,
+       /* U+0061+030C -> U+01CE */ 195,
+       /* U+0061+030F -> U+0201 */ 241,
+       /* U+0061+0311 -> U+0203 */ 243,
+       /* U+0061+0323 -> U+1EA1 */ 1277,
+       /* U+0061+0325 -> U+1E01 */ 1121,
+       /* U+0061+0328 -> U+0105 */ 72,
+       /* U+0062+0307 -> U+1E03 */ 1123,
+       /* U+0062+0323 -> U+1E05 */ 1125,
+       /* U+0062+0331 -> U+1E07 */ 1127,
+       /* U+0063+0301 -> U+0107 */ 74,
+       /* U+0063+0302 -> U+0109 */ 76,
+       /* U+0063+0307 -> U+010B */ 78,
+       /* U+0063+030C -> U+010D */ 80,
+       /* U+0063+0327 -> U+00E7 */ 46,
+       /* U+0064+0307 -> U+1E0B */ 1131,
+       /* U+0064+030C -> U+010F */ 82,
+       /* U+0064+0323 -> U+1E0D */ 1133,
+       /* U+0064+0327 -> U+1E11 */ 1137,
+       /* U+0064+032D -> U+1E13 */ 1139,
+       /* U+0064+0331 -> U+1E0F */ 1135,
+       /* U+0065+0300 -> U+00E8 */ 47,
+       /* U+0065+0301 -> U+00E9 */ 48,
+       /* U+0065+0302 -> U+00EA */ 49,
+       /* U+0065+0303 -> U+1EBD */ 1305,
+       /* U+0065+0304 -> U+0113 */ 84,
+       /* U+0065+0306 -> U+0115 */ 86,
+       /* U+0065+0307 -> U+0117 */ 88,
+       /* U+0065+0308 -> U+00EB */ 50,
+       /* U+0065+0309 -> U+1EBB */ 1303,
+       /* U+0065+030C -> U+011B */ 92,
+       /* U+0065+030F -> U+0205 */ 245,
+       /* U+0065+0311 -> U+0207 */ 247,
+       /* U+0065+0323 -> U+1EB9 */ 1301,
+       /* U+0065+0327 -> U+0229 */ 273,
+       /* U+0065+0328 -> U+0119 */ 90,
+       /* U+0065+032D -> U+1E19 */ 1145,
+       /* U+0065+0330 -> U+1E1B */ 1147,
+       /* U+0066+0307 -> U+1E1F */ 1151,
+       /* U+0067+0301 -> U+01F5 */ 231,
+       /* U+0067+0302 -> U+011D */ 94,
+       /* U+0067+0304 -> U+1E21 */ 1153,
+       /* U+0067+0306 -> U+011F */ 96,
+       /* U+0067+0307 -> U+0121 */ 98,
+       /* U+0067+030C -> U+01E7 */ 217,
+       /* U+0067+0327 -> U+0123 */ 100,
+       /* U+0068+0302 -> U+0125 */ 102,
+       /* U+0068+0307 -> U+1E23 */ 1155,
+       /* U+0068+0308 -> U+1E27 */ 1159,
+       /* U+0068+030C -> U+021F */ 269,
+       /* U+0068+0323 -> U+1E25 */ 1157,
+       /* U+0068+0327 -> U+1E29 */ 1161,
+       /* U+0068+032E -> U+1E2B */ 1163,
+       /* U+0068+0331 -> U+1E96 */ 1270,
+       /* U+0069+0300 -> U+00EC */ 51,
+       /* U+0069+0301 -> U+00ED */ 52,
+       /* U+0069+0302 -> U+00EE */ 53,
+       /* U+0069+0303 -> U+0129 */ 104,
+       /* U+0069+0304 -> U+012B */ 106,
+       /* U+0069+0306 -> U+012D */ 108,
+       /* U+0069+0308 -> U+00EF */ 54,
+       /* U+0069+0309 -> U+1EC9 */ 1317,
+       /* U+0069+030C -> U+01D0 */ 197,
+       /* U+0069+030F -> U+0209 */ 249,
+       /* U+0069+0311 -> U+020B */ 251,
+       /* U+0069+0323 -> U+1ECB */ 1319,
+       /* U+0069+0328 -> U+012F */ 110,
+       /* U+0069+0330 -> U+1E2D */ 1165,
+       /* U+006A+0302 -> U+0135 */ 115,
+       /* U+006A+030C -> U+01F0 */ 226,
+       /* U+006B+0301 -> U+1E31 */ 1169,
+       /* U+006B+030C -> U+01E9 */ 219,
+       /* U+006B+0323 -> U+1E33 */ 1171,
+       /* U+006B+0327 -> U+0137 */ 117,
+       /* U+006B+0331 -> U+1E35 */ 1173,
+       /* U+006C+0301 -> U+013A */ 119,
+       /* U+006C+030C -> U+013E */ 123,
+       /* U+006C+0323 -> U+1E37 */ 1175,
+       /* U+006C+0327 -> U+013C */ 121,
+       /* U+006C+032D -> U+1E3D */ 1181,
+       /* U+006C+0331 -> U+1E3B */ 1179,
+       /* U+006D+0301 -> U+1E3F */ 1183,
+       /* U+006D+0307 -> U+1E41 */ 1185,
+       /* U+006D+0323 -> U+1E43 */ 1187,
+       /* U+006E+0300 -> U+01F9 */ 233,
+       /* U+006E+0301 -> U+0144 */ 127,
+       /* U+006E+0303 -> U+00F1 */ 55,
+       /* U+006E+0307 -> U+1E45 */ 1189,
+       /* U+006E+030C -> U+0148 */ 131,
+       /* U+006E+0323 -> U+1E47 */ 1191,
+       /* U+006E+0327 -> U+0146 */ 129,
+       /* U+006E+032D -> U+1E4B */ 1195,
+       /* U+006E+0331 -> U+1E49 */ 1193,
+       /* U+006F+0300 -> U+00F2 */ 56,
+       /* U+006F+0301 -> U+00F3 */ 57,
+       /* U+006F+0302 -> U+00F4 */ 58,
+       /* U+006F+0303 -> U+00F5 */ 59,
+       /* U+006F+0304 -> U+014D */ 134,
+       /* U+006F+0306 -> U+014F */ 136,
+       /* U+006F+0307 -> U+022F */ 279,
+       /* U+006F+0308 -> U+00F6 */ 60,
+       /* U+006F+0309 -> U+1ECF */ 1323,
+       /* U+006F+030B -> U+0151 */ 138,
+       /* U+006F+030C -> U+01D2 */ 199,
+       /* U+006F+030F -> U+020D */ 253,
+       /* U+006F+0311 -> U+020F */ 255,
+       /* U+006F+031B -> U+01A1 */ 182,
+       /* U+006F+0323 -> U+1ECD */ 1321,
+       /* U+006F+0328 -> U+01EB */ 221,
+       /* U+0070+0301 -> U+1E55 */ 1205,
+       /* U+0070+0307 -> U+1E57 */ 1207,
+       /* U+0072+0301 -> U+0155 */ 140,
+       /* U+0072+0307 -> U+1E59 */ 1209,
+       /* U+0072+030C -> U+0159 */ 144,
+       /* U+0072+030F -> U+0211 */ 257,
+       /* U+0072+0311 -> U+0213 */ 259,
+       /* U+0072+0323 -> U+1E5B */ 1211,
+       /* U+0072+0327 -> U+0157 */ 142,
+       /* U+0072+0331 -> U+1E5F */ 1215,
+       /* U+0073+0301 -> U+015B */ 146,
+       /* U+0073+0302 -> U+015D */ 148,
+       /* U+0073+0307 -> U+1E61 */ 1217,
+       /* U+0073+030C -> U+0161 */ 152,
+       /* U+0073+0323 -> U+1E63 */ 1219,
+       /* U+0073+0326 -> U+0219 */ 265,
+       /* U+0073+0327 -> U+015F */ 150,
+       /* U+0074+0307 -> U+1E6B */ 1227,
+       /* U+0074+0308 -> U+1E97 */ 1271,
+       /* U+0074+030C -> U+0165 */ 156,
+       /* U+0074+0323 -> U+1E6D */ 1229,
+       /* U+0074+0326 -> U+021B */ 267,
+       /* U+0074+0327 -> U+0163 */ 154,
+       /* U+0074+032D -> U+1E71 */ 1233,
+       /* U+0074+0331 -> U+1E6F */ 1231,
+       /* U+0075+0300 -> U+00F9 */ 61,
+       /* U+0075+0301 -> U+00FA */ 62,
+       /* U+0075+0302 -> U+00FB */ 63,
+       /* U+0075+0303 -> U+0169 */ 158,
+       /* U+0075+0304 -> U+016B */ 160,
+       /* U+0075+0306 -> U+016D */ 162,
+       /* U+0075+0308 -> U+00FC */ 64,
+       /* U+0075+0309 -> U+1EE7 */ 1347,
+       /* U+0075+030A -> U+016F */ 164,
+       /* U+0075+030B -> U+0171 */ 166,
+       /* U+0075+030C -> U+01D4 */ 201,
+       /* U+0075+030F -> U+0215 */ 261,
+       /* U+0075+0311 -> U+0217 */ 263,
+       /* U+0075+031B -> U+01B0 */ 184,
+       /* U+0075+0323 -> U+1EE5 */ 1345,
+       /* U+0075+0324 -> U+1E73 */ 1235,
+       /* U+0075+0328 -> U+0173 */ 168,
+       /* U+0075+032D -> U+1E77 */ 1239,
+       /* U+0075+0330 -> U+1E75 */ 1237,
+       /* U+0076+0303 -> U+1E7D */ 1245,
+       /* U+0076+0323 -> U+1E7F */ 1247,
+       /* U+0077+0300 -> U+1E81 */ 1249,
+       /* U+0077+0301 -> U+1E83 */ 1251,
+       /* U+0077+0302 -> U+0175 */ 170,
+       /* U+0077+0307 -> U+1E87 */ 1255,
+       /* U+0077+0308 -> U+1E85 */ 1253,
+       /* U+0077+030A -> U+1E98 */ 1272,
+       /* U+0077+0323 -> U+1E89 */ 1257,
+       /* U+0078+0307 -> U+1E8B */ 1259,
+       /* U+0078+0308 -> U+1E8D */ 1261,
+       /* U+0079+0300 -> U+1EF3 */ 1359,
+       /* U+0079+0301 -> U+00FD */ 65,
+       /* U+0079+0302 -> U+0177 */ 172,
+       /* U+0079+0303 -> U+1EF9 */ 1365,
+       /* U+0079+0304 -> U+0233 */ 283,
+       /* U+0079+0307 -> U+1E8F */ 1263,
+       /* U+0079+0308 -> U+00FF */ 66,
+       /* U+0079+0309 -> U+1EF7 */ 1363,
+       /* U+0079+030A -> U+1E99 */ 1273,
+       /* U+0079+0323 -> U+1EF5 */ 1361,
+       /* U+007A+0301 -> U+017A */ 175,
+       /* U+007A+0302 -> U+1E91 */ 1265,
+       /* U+007A+0307 -> U+017C */ 177,
+       /* U+007A+030C -> U+017E */ 179,
+       /* U+007A+0323 -> U+1E93 */ 1267,
+       /* U+007A+0331 -> U+1E95 */ 1269,
+       /* U+00A8+0300 -> U+1FED */ 1584,
+       /* U+00A8+0301 -> U+0385 */ 419,
+       /* U+00A8+0342 -> U+1FC1 */ 1544,
+       /* U+00C2+0300 -> U+1EA6 */ 1282,
+       /* U+00C2+0301 -> U+1EA4 */ 1280,
+       /* U+00C2+0303 -> U+1EAA */ 1286,
+       /* U+00C2+0309 -> U+1EA8 */ 1284,
+       /* U+00C4+0304 -> U+01DE */ 210,
+       /* U+00C5+0301 -> U+01FA */ 234,
+       /* U+00C6+0301 -> U+01FC */ 236,
+       /* U+00C6+0304 -> U+01E2 */ 214,
+       /* U+00C7+0301 -> U+1E08 */ 1128,
+       /* U+00CA+0300 -> U+1EC0 */ 1308,
+       /* U+00CA+0301 -> U+1EBE */ 1306,
+       /* U+00CA+0303 -> U+1EC4 */ 1312,
+       /* U+00CA+0309 -> U+1EC2 */ 1310,
+       /* U+00CF+0301 -> U+1E2E */ 1166,
+       /* U+00D4+0300 -> U+1ED2 */ 1326,
+       /* U+00D4+0301 -> U+1ED0 */ 1324,
+       /* U+00D4+0303 -> U+1ED6 */ 1330,
+       /* U+00D4+0309 -> U+1ED4 */ 1328,
+       /* U+00D5+0301 -> U+1E4C */ 1196,
+       /* U+00D5+0304 -> U+022C */ 276,
+       /* U+00D5+0308 -> U+1E4E */ 1198,
+       /* U+00D6+0304 -> U+022A */ 274,
+       /* U+00D8+0301 -> U+01FE */ 238,
+       /* U+00DC+0300 -> U+01DB */ 208,
+       /* U+00DC+0301 -> U+01D7 */ 204,
+       /* U+00DC+0304 -> U+01D5 */ 202,
+       /* U+00DC+030C -> U+01D9 */ 206,
+       /* U+00E2+0300 -> U+1EA7 */ 1283,
+       /* U+00E2+0301 -> U+1EA5 */ 1281,
+       /* U+00E2+0303 -> U+1EAB */ 1287,
+       /* U+00E2+0309 -> U+1EA9 */ 1285,
+       /* U+00E4+0304 -> U+01DF */ 211,
+       /* U+00E5+0301 -> U+01FB */ 235,
+       /* U+00E6+0301 -> U+01FD */ 237,
+       /* U+00E6+0304 -> U+01E3 */ 215,
+       /* U+00E7+0301 -> U+1E09 */ 1129,
+       /* U+00EA+0300 -> U+1EC1 */ 1309,
+       /* U+00EA+0301 -> U+1EBF */ 1307,
+       /* U+00EA+0303 -> U+1EC5 */ 1313,
+       /* U+00EA+0309 -> U+1EC3 */ 1311,
+       /* U+00EF+0301 -> U+1E2F */ 1167,
+       /* U+00F4+0300 -> U+1ED3 */ 1327,
+       /* U+00F4+0301 -> U+1ED1 */ 1325,
+       /* U+00F4+0303 -> U+1ED7 */ 1331,
+       /* U+00F4+0309 -> U+1ED5 */ 1329,
+       /* U+00F5+0301 -> U+1E4D */ 1197,
+       /* U+00F5+0304 -> U+022D */ 277,
+       /* U+00F5+0308 -> U+1E4F */ 1199,
+       /* U+00F6+0304 -> U+022B */ 275,
+       /* U+00F8+0301 -> U+01FF */ 239,
+       /* U+00FC+0300 -> U+01DC */ 209,
+       /* U+00FC+0301 -> U+01D8 */ 205,
+       /* U+00FC+0304 -> U+01D6 */ 203,
+       /* U+00FC+030C -> U+01DA */ 207,
+       /* U+0102+0300 -> U+1EB0 */ 1292,
+       /* U+0102+0301 -> U+1EAE */ 1290,
+       /* U+0102+0303 -> U+1EB4 */ 1296,
+       /* U+0102+0309 -> U+1EB2 */ 1294,
+