New Rijndael block sizes.
authormdw <mdw>
Mon, 7 May 2001 17:33:26 +0000 (17:33 +0000)
committermdw <mdw>
Mon, 7 May 2001 17:33:26 +0000 (17:33 +0000)
.cvsignore
Makefile.m4
rijndael192.c [new file with mode: 0644]
rijndael192.h [new file with mode: 0644]
rijndael256.c [new file with mode: 0644]
rijndael256.h [new file with mode: 0644]
rspit.c
tests/rijndael192 [new file with mode: 0644]
tests/rijndael256 [new file with mode: 0644]

index b571b1b..0aadaec 100644 (file)
@@ -132,6 +132,26 @@ rijndael-ecb.c
 rijndael-ecb.h
 rijndael-ofb.c
 rijndael-ofb.h
+rijndael192-cbc.c
+rijndael192-cbc.h
+rijndael192-cfb.c
+rijndael192-cfb.h
+rijndael192-counter.c
+rijndael192-counter.h
+rijndael192-ecb.c
+rijndael192-ecb.h
+rijndael192-ofb.c
+rijndael192-ofb.h
+rijndael256-cbc.c
+rijndael256-cbc.h
+rijndael256-cfb.c
+rijndael256-cfb.h
+rijndael256-counter.c
+rijndael256-counter.h
+rijndael256-ecb.c
+rijndael256-ecb.h
+rijndael256-ofb.c
+rijndael256-ofb.h
 rmd128-hmac.c
 rmd128-hmac.h
 rmd128-mgf.c
index 549eac2..cb60ae6 100644 (file)
@@ -1,6 +1,6 @@
 ## -*-makefile-*-
 ##
-## $Id: Makefile.m4,v 1.53 2001/04/29 18:11:19 mdw Exp $
+## $Id: Makefile.m4,v 1.54 2001/05/07 17:32:52 mdw Exp $
 ##
 ## Makefile for Catacomb
 ##
@@ -29,6 +29,9 @@
 ##----- Revision history ----------------------------------------------------
 ##
 ## $Log: Makefile.m4,v $
+## Revision 1.54  2001/05/07 17:32:52  mdw
+## New Rijndael block sizes.
+##
 ## Revision 1.53  2001/04/29 18:11:19  mdw
 ## New block cipher MARS.
 ##
@@ -227,7 +230,7 @@ _(tea) _(xtea) dnl
 _(rc2) _(rc5) dnl
 _(skipjack) dnl
 _(cast128) _(cast256) dnl
-_(square) _(rijndael) dnl
+_(square) _(rijndael) _(rijndael192) _(rijndael256) dnl
 _(serpent)')
 define(`cipher_modes', `_(ecb) _(cbc) _(cfb) _(ofb) _(counter)')
 
@@ -250,15 +253,15 @@ modes-stamp: genmodes
        echo datestamp >modes-stamp
 
 define(`gen_tables', `dnl
-_(des) _(blowfish) _(twofish) _(square) _(rijndael) dnl
+_(des) _(blowfish) _(twofish) dnl
+_(square) _(rijndael) dnl
 _(safer) _(mars) _(tiger) dnl
 _(gfshare) _(gfx-sqr)')
 
 autoheaders: addsuffix(`gen_tables', `-tab.h') primetab.h mptypes.h
 define(`emit', `
 _item`'-tab.h: _item`'-mktab
-       ./_item`'-mktab >_item`'-tab.h
-_item`'.lo: _item`'-tab.h')dnl
+       ./_item`'-mktab >_item`'-tab.h')dnl
 gen_tables
 
 primetab.h: primetab.c
@@ -270,7 +273,7 @@ mptypes.h: mptypes
        ./mptypes >mptypes.h
 
 BUILT_SOURCES = \
-       getdate.c \
+       getdate.c modes-stamp \
        addsuffix(join(`ciphers', `-', `cipher_modes'), `.c') \
        addsuffix(join(`ciphers', `-', `cipher_modes'), `.h') \
        addsuffix(join(`hashes', `-', `hash_modes'), `.c') \
@@ -339,6 +342,7 @@ libcatacomb_la_SOURCES = \
        MP_SOURCES karatsuba.h \
        des-base.c des-base.h \
        cast-s.c cast-sk.c cast-base.h cast-tab.h \
+       rijndael-base.c rijndael-base.h \
        md2-tab.h \
        serpent-sbox.h skipjack-tab.h tiger-base.h \
        daftstory.h \
@@ -350,7 +354,9 @@ des-base.lo: des-tab.h
 blowfish.lo: blowfish-tab.h
 twofish.lo: twofish-tab.h
 square.lo: square-tab.h
-rijndael.lo: rijndael-tab.h
+rijndael-base.lo: rijndael-tab.h
+safer.lo: safer-tab.h
+mars.lo: mars-tab.h
 tiger.lo: tiger-tab.h
 gfshare.lo: gfshare-tab.h
 gfx-sqr.lo: gfx-sqr-tab.h
diff --git a/rijndael192.c b/rijndael192.c
new file mode 100644 (file)
index 0000000..1ed3b23
--- /dev/null
@@ -0,0 +1,169 @@
+/* -*-c-*-
+ *
+ * $Id: rijndael192.c,v 1.1 2001/05/07 17:32:03 mdw Exp $
+ *
+ * The Rijndael block cipher, 192-bit version
+ *
+ * (c) 2001 Straylight/Edgeware
+ */
+
+/*----- Licensing notice --------------------------------------------------* 
+ *
+ * This file is part of Catacomb.
+ *
+ * Catacomb is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Library General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ * 
+ * Catacomb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Library General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Library General Public
+ * License along with Catacomb; if not, write to the Free
+ * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+/*----- Revision history --------------------------------------------------* 
+ *
+ * $Log: rijndael192.c,v $
+ * Revision 1.1  2001/05/07 17:32:03  mdw
+ * New Rijndael block sizes.
+ *
+ */
+
+/*----- Header files ------------------------------------------------------*/
+
+#include <assert.h>
+#include <stdio.h>
+
+#include <mLib/bits.h>
+
+#include "blkc.h"
+#include "gcipher.h"
+#include "rijndael.h"
+#include "rijndael192.h"
+#include "rijndael-base.h"
+
+/*----- Main code ---------------------------------------------------------*/
+
+/* --- @rijndael192_init@ --- *
+ *
+ * Arguments:  @rijndael_ctx *k@ = pointer to context to initialize
+ *             @const void *buf@ = pointer to buffer of key material
+ *             @size_t sz@ = size of the key material
+ *
+ * Returns:    ---
+ *
+ * Use:                Initializes a Rijndael context with a particular key.  This
+ *             implementation of Rijndael doesn't impose any particular
+ *             limits on the key size except that it must be multiple of 4
+ *             bytes long.  256 bits seems sensible, though.
+ */
+
+void rijndael192_init(rijndael_ctx *k, const void *buf, size_t sz)
+{
+  rijndael_setup(k, RIJNDAEL192_BLKSZ / 4, buf, sz);
+}
+
+/* --- @rijndael192_eblk@, @rijndael192_dblk@ --- *
+ *
+ * Arguments:  @const rijndael_ctx *k@ = pointer to Rijndael context
+ *             @const uint32 s[4]@ = pointer to source block
+ *             @uint32 d[4]@ = pointer to destination block
+ *
+ * Returns:    ---
+ *
+ * Use:                Low-level block encryption and decryption.
+ */
+
+#define DO(what, t, aa, bb, cc, dd, ee, ff, a, b, c, d, e, f, w) do {  \
+  aa = what(t, a, b, c, d) ^ *w++;                                     \
+  bb = what(t, b, c, d, e) ^ *w++;                                     \
+  cc = what(t, c, d, e, f) ^ *w++;                                     \
+  dd = what(t, d, e, f, a) ^ *w++;                                     \
+  ee = what(t, e, f, a, b) ^ *w++;                                     \
+  ff = what(t, f, a, b, c) ^ *w++;                                     \
+} while (0)
+
+#define UNDO(what, t, aa, bb, cc, dd, ee, ff, a, b, c, d, e, f, w) do {        \
+  aa = what(t, a, f, e, d) ^ *w++;                                     \
+  bb = what(t, b, a, f, e) ^ *w++;                                     \
+  cc = what(t, c, b, a, f) ^ *w++;                                     \
+  dd = what(t, d, c, b, a) ^ *w++;                                     \
+  ee = what(t, e, d, c, b) ^ *w++;                                     \
+  ff = what(t, f, e, d, c) ^ *w++;                                     \
+} while (0)
+
+void rijndael192_eblk(const rijndael_ctx *k, const uint32 *s, uint32 *dst)
+{
+  uint32 a = s[0], b = s[1], c = s[2], d = s[3], e = s[4], f = s[5];
+  uint32 aa, bb, cc, dd, ee, ff;
+  uint32 *w = k->w;
+
+  a ^= *w++; b ^= *w++; c ^= *w++; d ^= *w++; e ^= *w++; f ^= *w++;
+  aa = a; bb = b; cc = c; dd = d; ee = e; ff = f;
+
+  switch (k->nr) {
+    case 14:
+      DO(MIX, T, aa, bb, cc, dd, ee, ff, a, b, c, d, e, f, w);
+    case 13:
+      DO(MIX, T, a, b, c, d, e, f, aa, bb, cc, dd, ee, ff, w);
+    case 12:
+    default:
+      DO(MIX, T, aa, bb, cc, dd, ee, ff, a, b, c, d, e, f, w);
+      DO(MIX, T, a, b, c, d, e, f, aa, bb, cc, dd, ee, ff, w);
+      DO(MIX, T, aa, bb, cc, dd, ee, ff, a, b, c, d, e, f, w);
+      DO(MIX, T, a, b, c, d, e, f, aa, bb, cc, dd, ee, ff, w);
+      DO(MIX, T, aa, bb, cc, dd, ee, ff, a, b, c, d, e, f, w);
+      DO(MIX, T, a, b, c, d, e, f, aa, bb, cc, dd, ee, ff, w);
+      DO(MIX, T, aa, bb, cc, dd, ee, ff, a, b, c, d, e, f, w);
+      DO(MIX, T, a, b, c, d, e, f, aa, bb, cc, dd, ee, ff, w);
+      DO(MIX, T, aa, bb, cc, dd, ee, ff, a, b, c, d, e, f, w);
+      DO(MIX, T, a, b, c, d, e, f, aa, bb, cc, dd, ee, ff, w);
+      DO(MIX, T, aa, bb, cc, dd, ee, ff, a, b, c, d, e, f, w);
+  }      
+  DO(SUB, S, a, b, c, d, e, f, aa, bb, cc, dd, ee, ff, w);
+
+  dst[0] = a; dst[1] = b; dst[2] = c; dst[3] = d; dst[4] = e; dst[5] = f;
+}
+
+void rijndael192_dblk(const rijndael_ctx *k, const uint32 *s, uint32 *dst)
+{
+  uint32 a = s[0], b = s[1], c = s[2], d = s[3], e = s[4], f = s[5];
+  uint32 aa, bb, cc, dd, ee, ff;
+  uint32 *w = k->wi;
+
+  a ^= *w++; b ^= *w++; c ^= *w++; d ^= *w++; e ^= *w++; f ^= *w++;
+  aa = a; bb = b; cc = c; dd = d; ee = e; ff = f;
+
+  switch (k->nr) {
+    case 14:
+      UNDO(MIX, TI, aa, bb, cc, dd, ee, ff, a, b, c, d, e, f, w);
+    case 13:
+      UNDO(MIX, TI, a, b, c, d, e, f, aa, bb, cc, dd, ee, ff, w);
+    case 12:
+    default:
+      UNDO(MIX, TI, aa, bb, cc, dd, ee, ff, a, b, c, d, e, f, w);
+      UNDO(MIX, TI, a, b, c, d, e, f, aa, bb, cc, dd, ee, ff, w);
+      UNDO(MIX, TI, aa, bb, cc, dd, ee, ff, a, b, c, d, e, f, w);
+      UNDO(MIX, TI, a, b, c, d, e, f, aa, bb, cc, dd, ee, ff, w);
+      UNDO(MIX, TI, aa, bb, cc, dd, ee, ff, a, b, c, d, e, f, w);
+      UNDO(MIX, TI, a, b, c, d, e, f, aa, bb, cc, dd, ee, ff, w);
+      UNDO(MIX, TI, aa, bb, cc, dd, ee, ff, a, b, c, d, e, f, w);
+      UNDO(MIX, TI, a, b, c, d, e, f, aa, bb, cc, dd, ee, ff, w);
+      UNDO(MIX, TI, aa, bb, cc, dd, ee, ff, a, b, c, d, e, f, w);
+      UNDO(MIX, TI, a, b, c, d, e, f, aa, bb, cc, dd, ee, ff, w);
+      UNDO(MIX, TI, aa, bb, cc, dd, ee, ff, a, b, c, d, e, f, w);
+  }      
+  UNDO(SUB, SI, a, b, c, d, e, f, aa, bb, cc, dd, ee, ff, w);
+
+  dst[0] = a; dst[1] = b; dst[2] = c; dst[3] = d; dst[4] = e; dst[5] = f;
+}
+
+BLKC_TEST(RIJNDAEL192, rijndael192)
+
+/*----- That's all, folks -------------------------------------------------*/
diff --git a/rijndael192.h b/rijndael192.h
new file mode 100644 (file)
index 0000000..39e2186
--- /dev/null
@@ -0,0 +1,104 @@
+/* -*-c-*-
+ *
+ * $Id: rijndael192.h,v 1.1 2001/05/07 17:32:03 mdw Exp $
+ *
+ * The Rijndael block cipher, 192-bit version
+ *
+ * (c) 2001 Straylight/Edgeware
+ */
+
+/*----- Licensing notice --------------------------------------------------* 
+ *
+ * This file is part of Catacomb.
+ *
+ * Catacomb is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Library General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ * 
+ * Catacomb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Library General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Library General Public
+ * License along with Catacomb; if not, write to the Free
+ * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+/*----- Revision history --------------------------------------------------* 
+ *
+ * $Log: rijndael192.h,v $
+ * Revision 1.1  2001/05/07 17:32:03  mdw
+ * New Rijndael block sizes.
+ *
+ */
+
+#ifndef CATACOMB_RIJNDAEL192_H
+#define CATACOMB_RIJNDAEL192_H
+
+#ifdef __cplusplus
+  extern "C" {
+#endif
+
+/*----- Header files ------------------------------------------------------*/
+
+#ifndef CATACOMB_RIJNDAEL_H
+#  include "rijndael.h"
+#endif
+
+/*----- Magical numbers ---------------------------------------------------*/
+
+#define RIJNDAEL192_BLKSZ 24
+#define RIJNDAEL192_KEYSZ 32
+#define RIJNDAEL192_CLASS (N, L, 192)
+
+#define rijndael192_keysz rijndael_keysz
+
+/*----- Data structures ---------------------------------------------------*/
+
+typedef struct rijndael_ctx rijndael192_ctx;
+
+/*----- Functions provided ------------------------------------------------*/
+
+/* --- @rijndael192_init@ --- *
+ *
+ * Arguments:  @rijndael_ctx *k@ = pointer to context to initialize
+ *             @const void *buf@ = pointer to buffer of key material
+ *             @size_t sz@ = size of the key material
+ *
+ * Returns:    ---
+ *
+ * Use:                Initializes a Rijndael context with a particular key.  This
+ *             implementation of Rijndael doesn't impose any particular
+ *             limits on the key size except that it must be multiple of 4
+ *             bytes long.  256 bits seems sensible, though.
+ */
+
+extern void rijndael192_init(rijndael_ctx */*k*/,
+                         const void */*buf*/, size_t /*sz*/);
+
+/* --- @rijndael_eblk@, @rijndael_dblk@ --- *
+ *
+ * Arguments:  @const rijndael_ctx *k@ = pointer to Rijndael context
+ *             @const uint32 s[4]@ = pointer to source block
+ *             @uint32 d[4]@ = pointer to destination block
+ *
+ * Returns:    ---
+ *
+ * Use:                Low-level block encryption and decryption.
+ */
+
+extern void rijndael192_eblk(const rijndael_ctx */*k*/,
+                            const uint32 */*s*/, uint32 */*dst*/);
+extern void rijndael192_dblk(const rijndael_ctx */*k*/,
+                            const uint32 */*s*/, uint32 */*dst*/);
+
+/*----- That's all, folks -------------------------------------------------*/
+
+#ifdef __cplusplus
+  }
+#endif
+
+#endif
diff --git a/rijndael256.c b/rijndael256.c
new file mode 100644 (file)
index 0000000..7fc9633
--- /dev/null
@@ -0,0 +1,169 @@
+/* -*-c-*-
+ *
+ * $Id: rijndael256.c,v 1.1 2001/05/07 17:32:03 mdw Exp $
+ *
+ * The Rijndael block cipher, 256-bit version
+ *
+ * (c) 2001 Straylight/Edgeware
+ */
+
+/*----- Licensing notice --------------------------------------------------* 
+ *
+ * This file is part of Catacomb.
+ *
+ * Catacomb is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Library General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ * 
+ * Catacomb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Library General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Library General Public
+ * License along with Catacomb; if not, write to the Free
+ * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+/*----- Revision history --------------------------------------------------* 
+ *
+ * $Log: rijndael256.c,v $
+ * Revision 1.1  2001/05/07 17:32:03  mdw
+ * New Rijndael block sizes.
+ *
+ */
+
+/*----- Header files ------------------------------------------------------*/
+
+#include <assert.h>
+#include <stdio.h>
+
+#include <mLib/bits.h>
+
+#include "blkc.h"
+#include "gcipher.h"
+#include "rijndael.h"
+#include "rijndael256.h"
+#include "rijndael-base.h"
+
+/*----- Main code ---------------------------------------------------------*/
+
+/* --- @rijndael256_init@ --- *
+ *
+ * Arguments:  @rijndael_ctx *k@ = pointer to context to initialize
+ *             @const void *buf@ = pointer to buffer of key material
+ *             @size_t sz@ = size of the key material
+ *
+ * Returns:    ---
+ *
+ * Use:                Initializes a Rijndael context with a particular key.  This
+ *             implementation of Rijndael doesn't impose any particular
+ *             limits on the key size except that it must be multiple of 4
+ *             bytes long.  256 bits seems sensible, though.
+ */
+
+void rijndael256_init(rijndael_ctx *k, const void *buf, size_t sz)
+{
+  rijndael_setup(k, RIJNDAEL256_BLKSZ / 4, buf, sz);
+}
+
+/* --- @rijndael256_eblk@, @rijndael256_dblk@ --- *
+ *
+ * Arguments:  @const rijndael_ctx *k@ = pointer to Rijndael context
+ *             @const uint32 s[4]@ = pointer to source block
+ *             @uint32 d[4]@ = pointer to destination block
+ *
+ * Returns:    ---
+ *
+ * Use:                Low-level block encryption and decryption.
+ */
+
+#define DO(what, t,                                                    \
+          aa, bb, cc, dd, ee, ff, gg, hh,                              \
+          a, b, c, d, e, f, g, h, w) do {                              \
+  aa = what(t, a, b, d, e) ^ *w++;                                     \
+  bb = what(t, b, c, e, f) ^ *w++;                                     \
+  cc = what(t, c, d, f, g) ^ *w++;                                     \
+  dd = what(t, d, e, g, h) ^ *w++;                                     \
+  ee = what(t, e, f, h, a) ^ *w++;                                     \
+  ff = what(t, f, g, a, b) ^ *w++;                                     \
+  gg = what(t, g, h, b, c) ^ *w++;                                     \
+  hh = what(t, h, a, c, d) ^ *w++;                                     \
+} while (0)
+
+#define UNDO(what, t,                                                  \
+            aa, bb, cc, dd, ee, ff, gg, hh,                            \
+            a, b, c, d, e, f, g, h, w) do {                            \
+  aa = what(t, a, h, f, e) ^ *w++;                                     \
+  bb = what(t, b, a, g, f) ^ *w++;                                     \
+  cc = what(t, c, b, h, g) ^ *w++;                                     \
+  dd = what(t, d, c, a, h) ^ *w++;                                     \
+  ee = what(t, e, d, b, a) ^ *w++;                                     \
+  ff = what(t, f, e, c, b) ^ *w++;                                     \
+  gg = what(t, g, f, d, c) ^ *w++;                                     \
+  hh = what(t, h, g, e, d) ^ *w++;                                     \
+} while (0)
+
+void rijndael256_eblk(const rijndael_ctx *k, const uint32 *s, uint32 *dst)
+{
+  uint32 a = s[0], b = s[1], c = s[2], d = s[3];
+  uint32 e = s[4], f = s[5], g = s[6], h = s[7];
+  uint32 aa, bb, cc, dd, ee, ff, gg, hh;
+  uint32 *w = k->w;
+
+  a ^= *w++; b ^= *w++; c ^= *w++; d ^= *w++;
+  e ^= *w++; f ^= *w++; g ^= *w++; h ^= *w++;
+
+  DO(MIX, T, aa, bb, cc, dd, ee, ff, gg, hh, a, b, c, d, e, f, g, h, w);
+  DO(MIX, T, a, b, c, d, e, f, g, h, aa, bb, cc, dd, ee, ff, gg, hh, w);
+  DO(MIX, T, aa, bb, cc, dd, ee, ff, gg, hh, a, b, c, d, e, f, g, h, w);
+  DO(MIX, T, a, b, c, d, e, f, g, h, aa, bb, cc, dd, ee, ff, gg, hh, w);
+  DO(MIX, T, aa, bb, cc, dd, ee, ff, gg, hh, a, b, c, d, e, f, g, h, w);
+  DO(MIX, T, a, b, c, d, e, f, g, h, aa, bb, cc, dd, ee, ff, gg, hh, w);
+  DO(MIX, T, aa, bb, cc, dd, ee, ff, gg, hh, a, b, c, d, e, f, g, h, w);
+  DO(MIX, T, a, b, c, d, e, f, g, h, aa, bb, cc, dd, ee, ff, gg, hh, w);
+  DO(MIX, T, aa, bb, cc, dd, ee, ff, gg, hh, a, b, c, d, e, f, g, h, w);
+  DO(MIX, T, a, b, c, d, e, f, g, h, aa, bb, cc, dd, ee, ff, gg, hh, w);
+  DO(MIX, T, aa, bb, cc, dd, ee, ff, gg, hh, a, b, c, d, e, f, g, h, w);
+  DO(MIX, T, a, b, c, d, e, f, g, h, aa, bb, cc, dd, ee, ff, gg, hh, w);
+  DO(MIX, T, aa, bb, cc, dd, ee, ff, gg, hh, a, b, c, d, e, f, g, h, w);
+  DO(SUB, S, a, b, c, d, e, f, g, h, aa, bb, cc, dd, ee, ff, gg, hh, w);
+
+  dst[0] = a; dst[1] = b; dst[2] = c; dst[3] = d;
+  dst[4] = e; dst[5] = f; dst[6] = g; dst[7] = h;
+}
+
+void rijndael256_dblk(const rijndael_ctx *k, const uint32 *s, uint32 *dst)
+{
+  uint32 a = s[0], b = s[1], c = s[2], d = s[3];
+  uint32 e = s[4], f = s[5], g = s[6], h = s[7];
+  uint32 aa, bb, cc, dd, ee, ff, gg, hh;
+  uint32 *w = k->wi;
+
+  a ^= *w++; b ^= *w++; c ^= *w++; d ^= *w++;
+  e ^= *w++; f ^= *w++; g ^= *w++; h ^= *w++;
+
+  UNDO(MIX, TI, aa, bb, cc, dd, ee, ff, gg, hh, a, b, c, d, e, f, g, h, w);
+  UNDO(MIX, TI, a, b, c, d, e, f, g, h, aa, bb, cc, dd, ee, ff, gg, hh, w);
+  UNDO(MIX, TI, aa, bb, cc, dd, ee, ff, gg, hh, a, b, c, d, e, f, g, h, w);
+  UNDO(MIX, TI, a, b, c, d, e, f, g, h, aa, bb, cc, dd, ee, ff, gg, hh, w);
+  UNDO(MIX, TI, aa, bb, cc, dd, ee, ff, gg, hh, a, b, c, d, e, f, g, h, w);
+  UNDO(MIX, TI, a, b, c, d, e, f, g, h, aa, bb, cc, dd, ee, ff, gg, hh, w);
+  UNDO(MIX, TI, aa, bb, cc, dd, ee, ff, gg, hh, a, b, c, d, e, f, g, h, w);
+  UNDO(MIX, TI, a, b, c, d, e, f, g, h, aa, bb, cc, dd, ee, ff, gg, hh, w);
+  UNDO(MIX, TI, aa, bb, cc, dd, ee, ff, gg, hh, a, b, c, d, e, f, g, h, w);
+  UNDO(MIX, TI, a, b, c, d, e, f, g, h, aa, bb, cc, dd, ee, ff, gg, hh, w);
+  UNDO(MIX, TI, aa, bb, cc, dd, ee, ff, gg, hh, a, b, c, d, e, f, g, h, w);
+  UNDO(MIX, TI, a, b, c, d, e, f, g, h, aa, bb, cc, dd, ee, ff, gg, hh, w);
+  UNDO(MIX, TI, aa, bb, cc, dd, ee, ff, gg, hh, a, b, c, d, e, f, g, h, w);
+  UNDO(SUB, SI, a, b, c, d, e, f, g, h, aa, bb, cc, dd, ee, ff, gg, hh, w);
+
+  dst[0] = a; dst[1] = b; dst[2] = c; dst[3] = d;
+  dst[4] = e; dst[5] = f; dst[6] = g; dst[7] = h;
+}
+
+BLKC_TEST(RIJNDAEL256, rijndael256)
+
+/*----- That's all, folks -------------------------------------------------*/
diff --git a/rijndael256.h b/rijndael256.h
new file mode 100644 (file)
index 0000000..69ad8cb
--- /dev/null
@@ -0,0 +1,104 @@
+/* -*-c-*-
+ *
+ * $Id: rijndael256.h,v 1.1 2001/05/07 17:32:03 mdw Exp $
+ *
+ * The Rijndael block cipher, 256-bit version
+ *
+ * (c) 2001 Straylight/Edgeware
+ */
+
+/*----- Licensing notice --------------------------------------------------* 
+ *
+ * This file is part of Catacomb.
+ *
+ * Catacomb is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Library General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ * 
+ * Catacomb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Library General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Library General Public
+ * License along with Catacomb; if not, write to the Free
+ * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA.
+ */
+
+/*----- Revision history --------------------------------------------------* 
+ *
+ * $Log: rijndael256.h,v $
+ * Revision 1.1  2001/05/07 17:32:03  mdw
+ * New Rijndael block sizes.
+ *
+ */
+
+#ifndef CATACOMB_RIJNDAEL256_H
+#define CATACOMB_RIJNDAEL256_H
+
+#ifdef __cplusplus
+  extern "C" {
+#endif
+
+/*----- Header files ------------------------------------------------------*/
+
+#ifndef CATACOMB_RIJNDAEL_H
+#  include "rijndael.h"
+#endif
+
+/*----- Magical numbers ---------------------------------------------------*/
+
+#define RIJNDAEL256_BLKSZ 32
+#define RIJNDAEL256_KEYSZ 32
+#define RIJNDAEL256_CLASS (N, L, 256)
+
+#define rijndael256_keysz rijndael_keysz
+
+/*----- Data structures ---------------------------------------------------*/
+
+typedef struct rijndael_ctx rijndael256_ctx;
+
+/*----- Functions provided ------------------------------------------------*/
+
+/* --- @rijndael256_init@ --- *
+ *
+ * Arguments:  @rijndael_ctx *k@ = pointer to context to initialize
+ *             @const void *buf@ = pointer to buffer of key material
+ *             @size_t sz@ = size of the key material
+ *
+ * Returns:    ---
+ *
+ * Use:                Initializes a Rijndael context with a particular key.  This
+ *             implementation of Rijndael doesn't impose any particular
+ *             limits on the key size except that it must be multiple of 4
+ *             bytes long.  256 bits seems sensible, though.
+ */
+
+extern void rijndael256_init(rijndael_ctx */*k*/,
+                         const void */*buf*/, size_t /*sz*/);
+
+/* --- @rijndael_eblk@, @rijndael_dblk@ --- *
+ *
+ * Arguments:  @const rijndael_ctx *k@ = pointer to Rijndael context
+ *             @const uint32 s[4]@ = pointer to source block
+ *             @uint32 d[4]@ = pointer to destination block
+ *
+ * Returns:    ---
+ *
+ * Use:                Low-level block encryption and decryption.
+ */
+
+extern void rijndael256_eblk(const rijndael_ctx */*k*/,
+                            const uint32 */*s*/, uint32 */*dst*/);
+extern void rijndael256_dblk(const rijndael_ctx */*k*/,
+                            const uint32 */*s*/, uint32 */*dst*/);
+
+/*----- That's all, folks -------------------------------------------------*/
+
+#ifdef __cplusplus
+  }
+#endif
+
+#endif
diff --git a/rspit.c b/rspit.c
index 7896ead..cce4543 100644 (file)
--- a/rspit.c
+++ b/rspit.c
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: rspit.c,v 1.16 2001/04/29 18:11:32 mdw Exp $
+ * $Id: rspit.c,v 1.17 2001/05/07 17:33:19 mdw Exp $
  *
  * Spit out random numbers
  *
@@ -30,6 +30,9 @@
 /*----- Revision history --------------------------------------------------* 
  *
  * $Log: rspit.c,v $
+ * Revision 1.17  2001/05/07 17:33:19  mdw
+ * New Rijndael block sizes.
+ *
  * Revision 1.16  2001/04/29 18:11:32  mdw
  * New block ciphers.
  *
 #include "cast128-ofb.h"
 #include "cast256-ofb.h"
 #include "rijndael-ofb.h"
+#include "rijndael192-ofb.h"
+#include "rijndael256-ofb.h"
 #include "safer-ofb.h"
 #include "safersk-ofb.h"
 #include "square-ofb.h"
 #include "cast128-counter.h"
 #include "cast256-counter.h"
 #include "rijndael-counter.h"
+#include "rijndael192-counter.h"
+#include "rijndael256-counter.h"
 #include "safer-counter.h"
 #include "safersk-counter.h"
 #include "square-counter.h"
@@ -206,6 +213,8 @@ extern gen generators[];
   E(SAFER, safer)                                                      \
   E(SAFERSK, safersk)                                                  \
   E(RIJNDAEL, rijndael)                                                        \
+  E(RIJNDAEL192, rijndael192)                                          \
+  E(RIJNDAEL256, rijndael256)                                          \
   E(SERPENT, serpent)
 
 #define HASHES                                                         \
diff --git a/tests/rijndael192 b/tests/rijndael192
new file mode 100644 (file)
index 0000000..d1fa168
--- /dev/null
@@ -0,0 +1,582 @@
+# $Id: rijndael192,v 1.1 2001/05/07 17:32:45 mdw Exp $
+#
+# Test vectors for Rijndael
+
+rijndael192 {
+  01000000000000000000000000000000 ecc23ff5a6156e4388ef80d2b5e7b6e3ded9154593fa5541 11f8443fe672e1dae721331cda3e66b7af88d02101031018;
+  02000000000000000000000000000000 259898bc7a97799970422c99d8701a795a491eda2cd80ae6 ee3db6764f147fbf9bf48727f3edc12df400fb42f3028d3d;
+  04000000000000000000000000000000 003f1944ef83ba8848b832d3d6ae21fba8df25a94237696b 0db142fe9b960e61c6e5ff7bca6b74dee939efb28a8971db;
+  08000000000000000000000000000000 7bac8d6696e56242b4b0273dfbd0f8e7c08f47458f6fabdd 33a23572b2933f5324b95cf2ddde9ea8f12e6fbb29e0d9dc;
+  10000000000000000000000000000000 cd91226b9929e1f3c2c8982cb164c1e6623d53733ea16d88 02eb71fdb8864571c11e50243d9619cb414908b19d9c2233;
+  20000000000000000000000000000000 2047376e0903ba9a400eda430c8f7d2f15162b1801c41d8e 793ee577b8955935caa559a0301f98e861a92917175b58a8;
+  40000000000000000000000000000000 db64b0838dd65f1f39a7e1d5914e9a56310aed31fabdcaa1 7c908b5b7d4096895d5f598e74eb8ea1020d61c2fff08cf4;
+  80000000000000000000000000000000 4bfd9371d0497559f96867e099c676730d4313f99c303f42 494c80b5aef41ad97585d98233f7a67ce5ec2f6a54f73941;
+  00010000000000000000000000000000 527bb7c4ee3e796cb9b3ada3630626743bc4490367a8a0ff 87f08f6a7ba0efe67906778b3d990d260034f4f7cd0bcd18;
+  00020000000000000000000000000000 cd3aa6af89c7792011592db8a1c57c4eac011ecdf6d469f2 1c20ddd7cc9e1d2a775f56f2fe9fefc7c47fb2df6baff6db;
+  00040000000000000000000000000000 6ccc712d1b156749d2701ce20e59bdcd5b126146ea0ef99f 886f74d333db2ddc29dffd2be2c4d7cf54ec8586fda6bc39;
+  00080000000000000000000000000000 2b33b40337805e7175b2e10fa7beb76564d9f73534012cae 460893714be4ecca4737d4a80633846ed47acd10a68af949;
+  00100000000000000000000000000000 f517935429f082087063f0194102e2e91862b9a7d036bcef 2c2c0edc495dc40cbe8f8400cf9a75bdbb234a9edcaeba5d;
+  00200000000000000000000000000000 5e31a9d2603c73e6875188ebaf2a4410669f284d4655cc34 7694a02f3f60406b2d6b831397167330143bd8cbb0b596bb;
+  00400000000000000000000000000000 c5d62377762a374a1f3bad7199181da1dd6df0a6f5d22830 7f5d3e1306e7904cead31f086a6b09eb8a59e08fb085eb08;
+  00800000000000000000000000000000 e773ae95ed308ff57f68fb3eeb0e2c221b3f4e807fc5445d 9a254ad7595c0ff409cf8e0681caa293121c9f22e7cc696f;
+  00000100000000000000000000000000 e0f6edd7c8351b313b2ccb41faa54ea99b5f79a40b686cf9 5556a2457d875216d1e99cee6d108c7e04ed0b163b0354e5;
+  00000200000000000000000000000000 0f65e288038f285700ccdc2eb0aeefa4292a04da7f56696d 42d5434265f494460e32ea13d21310183d21ab156794c649;
+  00000400000000000000000000000000 b52137ca3904e421c3ca4aab4cee7c3591491f38a67db310 8325eeb77c45603e0838e1349fcf0adbefda939bc6819b4b;
+  00000800000000000000000000000000 c35a17f2dcf7b50a53697e1d11e56ed7e93e1ccd0bcbf034 af4fc44a1ed4cc7b28ac98317bc5de427c2ce126718fd7e9;
+  00001000000000000000000000000000 8ef346c3fe873f9aae5e80fc911c4042aa53e71ff15b97ce 630300eaded11feb348412b592251f9d65d2d8efa66dbdca;
+  00002000000000000000000000000000 51091ccd462edf4b8b3ab22e575b15f81524997f82dd861a 281599ce567244553e30731e373efa3eea127dccd5b9db8b;
+  00004000000000000000000000000000 04092ef7ef33b06c7092f3b71f17ca0669f7ba26744cfcc1 20a4bb04192dc7e7105f751023babde481cb5e8eec60a345;
+  00008000000000000000000000000000 4f479ed45af000aae9b4cbb7d002ccfe81860ab38fab918d 482193da348f259de0c07b39c6a06f041b587e2928ef5de5;
+  00000001000000000000000000000000 3f98085dc9c09355c5add1e8254247f53c648c756de78e42 df379125795f253ad9941999ab2cae390dcef58b1bc1c2e6;
+  00000002000000000000000000000000 263f2d61b5f06ba78e0ed3666a035dc831bda0b5cc531fdf 428b3f9e7be2c89e9bf04c1cc502400d85d80296ecbb3ecd;
+  00000004000000000000000000000000 92a3daf0461fae7079e2c20dadf28ba2528767562c9b7b58 0dc790245eafee501e41c46ac2d5e68b186defdf5785bb9b;
+  00000008000000000000000000000000 c75b1993e91d7bf5363061d51564476b21b395b23e486e4c 6c4bc2169a8c189580e95fc39a5d657e35ae171af9f28c98;
+  00000010000000000000000000000000 a73ddac6eceb90b50e40ee417d5a6a223051f07470d77421 69b84788aebdbaecd76f1808298826531330ae46fa8ee8c1;
+  00000020000000000000000000000000 27274bb3a58f6d7ff0b209482e230421f0d4aef67c1a39b3 5b09a68e82c17cb3f5666f988cdef2a0b07b0eaba02ffe08;
+  00000040000000000000000000000000 c9193b6340581dab16e6d7fb4fbeb1dd72ed21b0443cfa8e dc51acbe8a362c29f3b81280c7f7e95df06f1a32a8b08e74;
+  00000080000000000000000000000000 29bce5becd8c6ce4c9ee162cf996daa8eabb00918d749c4e 6c1ef4aca93b4807722f84106c3edb7ee62620325b1ea12f;
+  00000000010000000000000000000000 e5a1f4efe220ae000df54bd51b4d0cba3ad521ca44faf4f9 6b335dae9650f33c96ccf64660dfa0ed4b4f9fecf41b62d3;
+  00000000020000000000000000000000 1c527e36346f9168a16814881ae84b865c1d3b546e956342 1dcbbab50f69e5dae57ea08325e2423afe79ce29c68f058b;
+  00000000040000000000000000000000 e02e266f8dc1d67438a1e49f52dc8a011f8d1be9e103d8e1 0865502f05136ea8429c7d38459674d62cc364bc70c95aec;
+  00000000080000000000000000000000 41a1765111cad257619fe67e28fa8132cb9106ccef2389ca 5d2558c0c1bb09be8e6b45b7d2318bac907d0219b497dc15;
+  00000000100000000000000000000000 787446298d2361f545c55a240070a19ed0275fbb381119f3 43388322ce05fb34c4fb5c76cca47e58de48a19cd9a1691b;
+  00000000200000000000000000000000 375fac215e06d7e69b356dba3c01a5b7e18986c2ecc121f4 28d2ecdfcc5dae2e25e4e07bf2de9732987ca0b43d267121;
+  00000000400000000000000000000000 5c4cb12379c2bcb0bba1f3b4c3c860e4b8d02014b584ac8d bc39174e334e723ac05cd78b5380ba11bd5b1d1c0df0004b;
+  00000000800000000000000000000000 48ec600056f80cc179cb00a8de4a515c6e2bfc87e043c0e1 4e39e3e8b0b7109b44af1384d19958e870986c32bdd757bd;
+  00000000000100000000000000000000 1e9f664220592813a263408dbe8b53160ffdad3c023107d4 961c0910f4ecfbbfcc3b53de7fdf0a88f6068073e7e3ae35;
+  00000000000200000000000000000000 ac9b0dfba05b6b55bae9a6ec55207feea8b34a66dc01d3fa 997e540f93f2bb4f0b1cee533cf8275f9ef26e5d81812d0a;
+  00000000000400000000000000000000 e1de6e64e9f00b3037ac6044ffd4944820b4979f1029d9f3 b5d3f888339a30905c74a45f048afae608d54c6784661d49;
+  00000000000800000000000000000000 e9030180dba593193c2cc5d298c895fc8bd12019007de706 b8a7a16530cf81cb449ecbf0b62da2a8b9a2413d94f2a3cb;
+  00000000001000000000000000000000 17607c310a718bd043f2c6e25818a72693ddeae986f735b6 3acc7029d584a37adbdd9ea34e6f13f72681fe02ad37dc77;
+  00000000002000000000000000000000 c409ab6da9ae20ccfc9002bfea4bc22f8e3bf5050b7a1e39 e7eb4739131d3779e60eaaef8311040ff7a6a98811321452;
+  00000000004000000000000000000000 760b047a3b5b6fd945f32432e2a276fc09a67ffbe124ec28 4e61f303320ecb7932bf937d0d7023cd5a551a23c267f8e7;
+  00000000008000000000000000000000 d04b50e9d8efeff6e6c20ca3a9982d4a7d959557a90b008c 50eb1b0d46e6bc1a1aaccc9e2e9889fbfaba9c63b2828785;
+  00000000000001000000000000000000 cfe793e9e280070b4bec4b385f0be9c7d6bfa024451a9162 8479d2e65e56ab5d94cc09e83e4291a606b575285517e829;
+  00000000000002000000000000000000 31c67b6c3db737fc0f42aff02a6c805a772eb8f9a06ab77b 702bc3060b1796b1d718290e6fa40ae307a79a61dfa34305;
+  00000000000004000000000000000000 746fbcca65ee6d4ed8feb70e034568a7efc6e46005c04f40 3aeeeb3c2926ff6a47efc425e647ebeba9c9e3437d9028b7;
+  00000000000008000000000000000000 524fcdeffc4b4e4cf78a714b37642a98e7ab566c5c64ac3b b0424679dc0a98b4b19da377bea2bc7d301e29d7b209eba6;
+  00000000000010000000000000000000 b0dbb460199bf5a4ba7ae844844f7836d52d74ca2e55bfeb 2b58500c543e6b3c237501bbc8c282e1dfcdf643103d755f;
+  00000000000020000000000000000000 e48aaab700ba0b5eef5fa0a71a988d7136f275218aaa13d7 20396680278c0f87412e4302b480b16aaca22992bed318e6;
+  00000000000040000000000000000000 2bcee9bf924aa80836ad4ff9bccca6a1f7a49ffb56a50200 3cf3060acee2cebf9e9340c80343993d4def9c26ed0c5e9d;
+  00000000000080000000000000000000 796ae09230672e0dffd9324dd933481c6d565c3d9f506583 3152d7698f3cc0188dbdd58e53da3a092767859de0ec4862;
+  00000000000000010000000000000000 229dc83caa5f64ca49e5664262835d94e972b8bba5d96ced d21ebc75cc9d22386a9403f26c2c6aeffb6f9734813ad4a4;
+  00000000000000020000000000000000 f003f0ae243febefbcb211708d0afc0c2118d73c15cf9bac 7907ec24ba6c8cc6915a3acf4739c5a7637fd409775e2df7;
+  00000000000000040000000000000000 8d3e694413d5621a1c071c151faa37c84f5e814817927f80 e0e9b8f2a2a2b83326f44a99318538bdbe56170f0653617d;
+  00000000000000080000000000000000 4e299b72cfadfc88a40816ee45dddac9d6d9bd112da8b5fe 1e7f5c5a941ffab193ec22203d5659d5b517df5743184e73;
+  00000000000000100000000000000000 29562f797d586ba91c73deb2c84be94b3a5ce6e094c6df15 30a724ef6ccb3d85ec27effbd71c1adea4c4339f1afd463f;
+  00000000000000200000000000000000 d1bc66bdd709d2d5891e9d17dba3975a4cadc96ad30b8203 32b2510b0892aa22a73a91cb9819b96c4c6e1f86f0f71bf4;
+  00000000000000400000000000000000 69bbcb2b670959e9c248a1511e087aec958814b5050c3547 926a0bc8bee569dcdee40820f13888e6e5daf5547dd21ab9;
+  00000000000000800000000000000000 797af2cb388e4c8becfea4438e0ce82f8b65c6d001db914b 0de09e2542d64371253ff0ada0487136e78174579fdf9a03;
+  00000000000000000100000000000000 a2a2418317374599998250078eee1c05c64358ee997cd648 793ddce743a9f4290c7cee11194d5b5c660d3737c5519f39;
+  00000000000000000200000000000000 d8110c1abbc82b25a3406165afec1384bfb96aea0be76360 a291399867f8af7e8b088d618610be873d4d89540650ae07;
+  00000000000000000400000000000000 dedda8bd6b5ec057019a51ac05be3f8063b5776e29a86291 e46e9b1d04c9c9987969f372cbbe8a0a14ba11b82ecfafca;
+  00000000000000000800000000000000 38bc40dc0e2d39857f490e4296fc867f6a0cfffbb17ee3f4 23cbeba8d52b669d9d9f3cf1270ee7b4e170457337ee7af7;
+  00000000000000001000000000000000 479b4f47efa156a68493e3e7aaab678d75704a8f8b625e94 14ae2c31281b2fcce6caa2517c7aa804726753b5d3d45202;
+  00000000000000002000000000000000 f9d5e7b6d40be49d197d35dfd0e90a4bf1694100ff2c1cff 874bae94718d093793333e914a5ad5440cc05aa3fe36ea8d;
+  00000000000000004000000000000000 784689dd5050e557a075f22ef3e74ca19e107f60311558b6 47c88f266e28bfd0ac73fcd6f2592f559b94054b67dd6854;
+  00000000000000008000000000000000 a71f3ba58c92fd29dc63a9e0cdee027980dc583c70237e03 10f1b587e74c321c84d0ae18c5ea3f0ce9a13c268263dfea;
+  00000000000000000001000000000000 822962b9a7f43733549f42ec7c13ee9a6086f73d67896491 8937a93864c505e6fb2ad5ae4e1bfa8bffab2a43968e63ec;
+  00000000000000000002000000000000 a6d95a7186da0db76b44615a797a8af661f7b407daa8772d d45a6c4a1a53dc572b4e164e8381034973a33943931e2f3b;
+  00000000000000000004000000000000 125ea26d3070ec038efe4035a5a7b43943c64795041e23b2 87ea4a2e5b981254d6c518327a168951f0d79ea526cbc421;
+  00000000000000000008000000000000 6395bbbd2285c20579d9451d8c80cababa746323842a4955 7a4c1933904d2fee550996adc538341f90a1b8ee6cd2bbc8;
+  00000000000000000010000000000000 4a46b44b05b8be89baff1d1c7c4ba7f93e63c163db75cf68 137345276b347c2850d8d84e3e803a8b4efea124354d23c6;
+  00000000000000000020000000000000 936e6589605bf181566ba4211152bc879ea7d6eba7cfa6d9 d4c5c88f0b2c42d66e8c6ce263edac31778e8db8f16a3aa3;
+  00000000000000000040000000000000 4c6a22fa2de336d5a24ec8da9e43f18688a0f33b11974f62 19f68a661ed3953f51bdfa7f0ee80088e5fab95ae93f8eb8;
+  00000000000000000080000000000000 74f2236166f0ae08da10de1517abc02897da99d1c5c0ef8e 4f044908c4b1e046a0aa47af76aa12e5d5a377c409aa0795;
+  00000000000000000000010000000000 86df8df60a77056123fdce7f5b1e5696af7ae2fca1adad3b b8ef60ec0bc3a36720b8373dddfe99b5fda911d65bbf7aaa;
+  00000000000000000000020000000000 8d0e714d42fa412d0d0487d2b504e561272e9d82a474a389 2ec4d0cbc0c31a435aeb3ea29774c4c87bc4e9aaae6e3702;
+  00000000000000000000040000000000 62cff26a86aeee954c13990a324a7b6fe0f848be1d770f00 009f391cf269970cf8e9e98d545376c14e6483828606a256;
+  00000000000000000000080000000000 91175a8a65c296dd6951b5d583318671d1f58c974fc78912 0057157749c862da71f4c45df40da881c5a8062f046a2e7d;
+  00000000000000000000100000000000 88a6c0f2c8128a7ae0ab6cb2da366992a09c0a160d5eea3f c61d2808bd0216dbd799460d6e076c8a2e054e4f73283a1d;
+  00000000000000000000200000000000 e88bfec4f5f8249ad5e86549ae496b2707a2120ad82ba6f4 06a8748f6901a71d9565b0dd415211e497075907dc826f8f;
+  00000000000000000000400000000000 7c5b0ed2fa264ed8927e0d4ae4b1af477ad52f0a567a17e5 1f7c4342279130d42ee8f1b5620a659bee19848d6456b5d7;
+  00000000000000000000800000000000 56b1fc7a511436c4465b6aedf765733b4af22b910e3ccaf7 db1cc3fc52715c9fa34d89d41bf692d274aa46a3fe1163e6;
+  00000000000000000000000100000000 c7641c49ffc8cd5237d5ca04e9262ab3fdedab70fe22cf22 a298b38077ac29ec777a0deb5dccb29ee58eabbfbb50bcbb;
+  00000000000000000000000200000000 68fa64f79d34c9148ae3f2278f1f17ca0966179eaa4eb13a 8beab7036bda41af5e50a1b8da4c145680f70491c538aaca;
+  00000000000000000000000400000000 e7708651740f01ddf1f7e2db90a0afe67d2df761ef7fa3bf 16dc8e2afacba871bd3ca98c20f418cefc198d687824a329;
+  00000000000000000000000800000000 d1e6c81b94877d4efc0f7bafe0d9b7c0244f230e55759f05 5fe6039bfb13c57f02662327bb0e4c349a217441dcaad36b;
+  00000000000000000000001000000000 8617bb46b9b7e49dcbc57840cc565791bd7842daa14ae633 4a8899fd29d3d53be9b23b2f21fcfbb49e3cb815ab801b8b;
+  00000000000000000000002000000000 e6b91095f74153b954e251231d9288620a7ab792636516c1 86285a478f05fe61d3ac868d1168ec0443ad44329d36ce9d;
+  00000000000000000000004000000000 5d381bc96eb300ba3b6592bc41f863624ced1753a9d6b4ec c6f06f74249816ea51e6e038c1b024eaf257ecb6b10995eb;
+  00000000000000000000008000000000 8f7c8f942ef76e74c027fc0f2b21c0eb4b0f42341d8d35f0 5356d4bd1ff5b388de33db587850e4d0dd6a6d638ac0aff9;
+  00000000000000000000000001000000 4dddd2ad6a9b6120eaeab02308bb14fe8a6a554695a95270 280b6e62c14d9f5b2afea7d38c9b4a1ebd9ae794be1583b8;
+  00000000000000000000000002000000 2b78253bd38e155f76a8dc65049bb928d4ccdf9c1dcb6c1c 7c8df4385031540751cdf1ac566e680a984814e6acb8ecb0;
+  00000000000000000000000004000000 1105eb16ada90a548970c1affa3660bbe3307bb262de7bee 123999c9efe490ff58e466b757e5699544c49a9febe5fd5a;
+  00000000000000000000000008000000 daca2ba68eec8df1050de028ccfe8a1ba2d883ef880f7418 6e5b79c4fc53295bd0e2cbd29869273e7c932cd381e96f43;
+  00000000000000000000000010000000 34507ab2d2ea0cda4f20326e58d1f99c72fb659b4cc97142 5fd1ff1dd3f05b9c1c6521a550ccba4226b7e2a554b314a8;
+  00000000000000000000000020000000 69d816f299fc3f1e468dc52721e2221833b8df9523dacbdf 8953b2ceceebd24da6b33669706bfd40634e52f9b3fb4fad;
+  00000000000000000000000040000000 988545c1f21f147ace4aa25eb1daca21341830b6d821456d 083db226449c1a7da77fb4957264ab750cfaa4dfde6004c7;
+  00000000000000000000000080000000 6c7b3dc3662a8384ff11e317f9069fcb2a10873746b5a4be a2662de0db3bb39a4294e5fe7568e477c482bdd5fc87dfc5;
+  00000000000000000000000000010000 87b989d4d32dd5407be7ac59918ad7180011898e93cc1b3d 9ed6d2b716364a621e43b0593b734b6f8abb33ebfbb6cf00;
+  00000000000000000000000000020000 a710dcd8b3c0755e399bbf983d30236c144ecb6ec7b6fdec 3288b9bf794ef13ddcacd02a59c9677176320524ec4f6836;
+  00000000000000000000000000040000 00c797d1c3c94dc6200b4a144ae1a6d15023b91ba546bd1e c3ede8e7e775257f17728eb7db4a9bee217f5fbf0ab410cc;
+  00000000000000000000000000080000 3e006ac543fdff06ac32c28c42fa4708f04b90300ce9e31b 398663cd65a9fdb8a51b8d4e3661e4d31261620f9c4b9541;
+  00000000000000000000000000100000 20d87b2c983fe4e82097924b1873bb0fff778f7445e994b4 d8930cc26524ae84b938ad73f6c6704601f68401f14d3109;
+  00000000000000000000000000200000 1ee02e1dee81c37f3453cf640f6ac7d30112666bad8c3355 29b28aabf77f04938446051dd5c5a4886c7d7487872fdc20;
+  00000000000000000000000000400000 c84b5fde33b3b7f75ee11c38d4ec3d7e33c649234739635b c745edfe55e98f7afa81291b600d8217318ace35da6169bc;
+  00000000000000000000000000800000 b863ef2faeaaaefce8246a48b67eabbe1a848019cb0df824 2837d56b2bdff340d88b28af4df8556a9cf509d409044a99;
+  00000000000000000000000000000100 730368d6c6cea0d9161c0a136c9c330c911b2482c461dfd8 232439a156c67f90dfae3646334c76160be1ef46fa8fae31;
+  00000000000000000000000000000200 54b25a611733d6e5349290227abcae478210edba7f0beeb1 f591fb8144f18cd7c26dcb03957135034c1dba47b4d6f666;
+  00000000000000000000000000000400 d71c3da730e2eedd8eae5da0f801f8c8187b003151267c75 9bd6897b701607a424439ac3ee3463e2d280125325f34d3e;
+  00000000000000000000000000000800 c06647bde03f6bc430dab5a71b00a95ac866f59a376a0712 623a852d25bca6b1277ac68a2503139fca6b91f8ff9f11c2;
+  00000000000000000000000000001000 5bdf395f565a868b97da2a0740aab841f1d5fedc46bf8e44 15921eff82580b72466150bd0f531ab8cd400ecf74e652d1;
+  00000000000000000000000000002000 07024dea30d2a9d6282bb4aafe864fa15f0c1b2b7254259e 60194b065e7fa63c94f8c69cbee16608f4087934034915e4;
+  00000000000000000000000000004000 762d5eace8f46d54c4c509debae47abfa42b28f26ee80e41 ba845353192fa37f8a890530ad4f3f1ec26849e20e767276;
+  00000000000000000000000000008000 7a14493a632a2fe4558bb76756897afad6fa87ee8b990a4f 3e4ac1b3aa23f66c540313cabd2069032567ca80e8a32913;
+  00000000000000000000000000000001 3eb7989442ea0df8a40b5738f8a544cfb9e962e585483d50 738f11aaeba0dac9b10d635db4a41a7a9b89a46760511ead;
+  00000000000000000000000000000002 bdc7b846650722620c261cf44bf4acce9d8860eafcefab05 060bb4cd77835ef4b84612ce5f7cb0183a99a6fded093c12;
+  00000000000000000000000000000004 6048ec42f4a9a70ece04c27e30bbbeb77b217672cc75c980 7876fbd3c2b61c1ac8f8d15b830eef535423969e1c501d1a;
+  00000000000000000000000000000008 66254f5bc55995b987c1011baf3d58fb161bf96f4919c815 519a9c2482b8d265467ac848fdf3b4772a06cd88d21bd117;
+  00000000000000000000000000000010 634758f26f8f2f74d6556c1aaace55a925b4d4dc80e8e129 23b62d393ede3fbb9dd9c93cefa2554b9b1b0fe5d509ee25;
+  00000000000000000000000000000020 aafb2bccb209a10de6945b7486558d70e14d114bf67804dc eca2cad65abc8a3575010d8726c2f545f105db393ff33317;
+  00000000000000000000000000000040 2f2a231f6b13feb848bee03dcaef7252db1745e8e583d9c2 7d13d94312c98db0e4da8037274a9f3af2cf0e795686c237;
+  00000000000000000000000000000080 addb61952c61c95241e5fd03014ff8bb407e6c1877d05795 619eb1aa711698ee7dc85764759336682eb044542d6ab2a8;
+  010000000000000000000000000000000000000000000000 bc6df60e04126530f1b964ac12732854893ace043b97b6cd 860b7745ae1f912d43b7502d01465cd258aab912654ed41f;
+  020000000000000000000000000000000000000000000000 ad3e29eb302e3cdb2433cfced777c8e5e186ad3cf6da5cdd 3e944220b4dd092b5cccc0372074281a5aeb59a326d5742d;
+  040000000000000000000000000000000000000000000000 2b06361f5a6d945459d69504045422fc2c93b340f427f401 ea16eba7bac608cf6971be451fb4afb51cd74d4f8160f6ab;
+  080000000000000000000000000000000000000000000000 c2e232084778e10596f9465fa606fed85ac8d43dac825b83 8f895739496564037da808f34ba1189cbaac8bbcfe7b4c93;
+  100000000000000000000000000000000000000000000000 351c11661041b30c049a87868fb9de7829cda0c1b5b17196 ca80c86c3f6a8ebffd4f07a245d1e4faa7e4a1a39a8e92be;
+  200000000000000000000000000000000000000000000000 83aad869160386610b1d61e7158a1b13bc80e8817961906e 3ed013d08e36805dd0116d386596149586ec454d86b2cd70;
+  400000000000000000000000000000000000000000000000 1165519eb1537b63f5470d84a3f772630b01c07080b5aeea 0b84f55f2c871c1a7f687e07c5a794c60c310b1c6d1f0c12;
+  800000000000000000000000000000000000000000000000 7d1bb4f768ef1fcd3ae78292a490c566b951014cf671094d 907b744a108b2d03dccb255acaf09e9277ba989656760581;
+  000100000000000000000000000000000000000000000000 aaeb078464efafe45c035ad9a9d3b4e361498fe09ea6c8a8 19d5522a145217fe37d8a9e155bf325fb0febd29c055212c;
+  000200000000000000000000000000000000000000000000 0a13491b7e8cf0eae9e6ab0fb58ade44c9520a0ee3449310 895f939d99581b768512d337dfe32389f88bafa52acf1615;
+  000400000000000000000000000000000000000000000000 76ab44c6fb8809925683c233eb66b3a1f2e4267efded4351 0a57d822d76a4fb7cc6faa0811d5a93444804f197038b026;
+  000800000000000000000000000000000000000000000000 f51d52f5af44aadaf032328afd278cf1c594bb2f206a1c9f 091abae7d43b2f93ec3b706caecc3778a25856c22efa6578;
+  001000000000000000000000000000000000000000000000 416b7dc920c9468b211f444734a74a3e21cd15e9758fb456 8723fb06ef38db8450cf371c577ee3828b06f9d76c7d7fe0;
+  002000000000000000000000000000000000000000000000 288d50f38803275bfa03f1987cef8df82e09b8b32645cffe c1ddb7ffa7cbf1b11fb08ec9592cf3ed13e50178e6c328b7;
+  004000000000000000000000000000000000000000000000 b73964628132e7f6ab983a0a1022cae4fef1766253e15ed5 4a042876166fab12b33ecebb154dc6bbee74140c07ca480b;
+  008000000000000000000000000000000000000000000000 251b86e6abd2248e9ea92190b66b107ed420257769f44b9b 2f668deccf4f88079a55542d97f3a5d7747a464fb4723980;
+  000001000000000000000000000000000000000000000000 340b5eb826577834ef2aad159f52b19ca2cbfcda9029bc5d 1a9a5b9741f3c5111d17aed721fe72367930f74c2efb2bec;
+  000002000000000000000000000000000000000000000000 0df6b124bba598db2410c5a9b23800337d2f247b29afe958 639247d7eb8cae4d9338c0e184db0a2c8f132cf96ef84895;
+  000004000000000000000000000000000000000000000000 893d0f9042695f057889daa4f04d5c2bd72c61adcc1c3250 3cda732585d98e14574e4271ef1fb27276207b58a2baecf1;
+  000008000000000000000000000000000000000000000000 ca0d3e33f66e7c53ed10c5e8bfcfb6a0b74869f1d2ed61b2 842ec768d6ebda7de21181818870c7e8d05a2b1a778b5d90;
+  000010000000000000000000000000000000000000000000 2d6a4e62e7c9494103be7a17e71f42ad6e285a4e62392011 f204f5102ee58885b13e61ec995c73b8fbf897b95abec5cf;
+  000020000000000000000000000000000000000000000000 1e23b521b7f202b5f8ff894b54b9c1b84cdc74cb1d3c9dfa 33f3823087e9f90e21d9fca1b1370db7873929f15dbdf6ef;
+  000040000000000000000000000000000000000000000000 0ea5081b73ab19dd3140ffa66221f0c3bfa3a3fa95f46f71 f275925b87f482450d1d2b7047c32bbfe6a0b8fad6dc3b3d;
+  000080000000000000000000000000000000000000000000 08b55496fb4edcb8dc13981457c2d917ebca27af239a3a6e c3eee88a9d901f34ada8ed9fcc2409259150b90435b04ba2;
+  000000010000000000000000000000000000000000000000 944b30d358ba842154097e3a54a154c8b5bc49960d5d3e73 5c38ac4fea3e5d5e816eed2dfcecadb2c666a703e16b1753;
+  000000020000000000000000000000000000000000000000 08683e82fb26f529f6a6e2ef210d49a718122b57ca997ce3 8604164dbe1645150d283d593e17ef86cd2d5e55d7eeb267;
+  000000040000000000000000000000000000000000000000 79d2ed56e7c5e4c56c63ffba938c1cb4f5a1f7ba71af956a 0af2ded6563c4d601442e195e75c89a9318438dc99f497df;
+  000000080000000000000000000000000000000000000000 2f7c581d4b46e4e7ca6988b789573859bf46923f988b61b8 eb6cebf48d4998d7ce1a3a740232bd3aa4b84a68e414a885;
+  000000100000000000000000000000000000000000000000 9788a62672fdf02ee2139c7d7c4b384b9cee6f9e4d6a6787 425f0665bdf32bbc2366c709944b27d9cb4d0dfa9b327c8a;
+  000000200000000000000000000000000000000000000000 1ef85e712ce1728bc1f50d27d8a79f463a5f5ef317a4dc84 4e1cda3d2ea661222f907a8a28a60e7ea15b680a0649648d;
+  000000400000000000000000000000000000000000000000 a8f2da57846af038948533b3961d814dbddff11c8e83cbfa 2ed9c08076165582b88689fe1e86e20d7c0cf28baf6e7087;
+  000000800000000000000000000000000000000000000000 e5b16ba2dcb3e440ea3f94ea0bfec72143f4efb02046eccf 1858a200e5f04fd659a4c6a2aeef8d7373d8eba06c95c528;
+  000000000100000000000000000000000000000000000000 bad94397b4fb987ec83c0174f16a1acf6015a587e1ffc629 29920ecca90949a8d51119102620cddd318efcb4b558193b;
+  000000000200000000000000000000000000000000000000 630d8c4da846648eeeb06411308777a961040f19ddd6041a d7b93d61b93b8342637f8a09fda3d6f6707f798703e20b46;
+  000000000400000000000000000000000000000000000000 a47c9f8b674568ebdc6a1ab0c3dcbc01dea467b7d703d1a5 7caa253c533ce3dfc44e2801bb69aed1de21c8ebf37b77d1;
+  000000000800000000000000000000000000000000000000 66764704500a55eddfb8d523b46b81435c31a3d63729bb9a d53d01edfd03714584bea58f9869fecc66fc6a7291a6f80e;
+  000000001000000000000000000000000000000000000000 607fa7fadc84e87d18d6aa021909f285cac289b9df15d730 a45e737d3a9f22e66124437cec4db0a5bea469f2836d6dbe;
+  000000002000000000000000000000000000000000000000 08e21c242ceb9754e3a7ba375bcf3fa59b6e40cdabdd4877 a85fa5456030d44f5761a7f1d140dd81d6ba1e6b6d21ba5f;
+  000000004000000000000000000000000000000000000000 fa7b82c7c12095806c4c1bc74b2bba2406b1429d871832df b82d88ec5a099545d37ad06f9ab2e8da4468eb39413e2694;
+  000000008000000000000000000000000000000000000000 48eb041dd4a7662c96b7121dc33807486627121b8309adca 1af658fa4d356b4def48d29947169657c04dcedf66903c8b;
+  000000000001000000000000000000000000000000000000 1622997f6ea29534afbaf556b62130c598f0b552f45f346d 456d156b71d8c0c76658048c38ad61fb1587547d544c098d;
+  000000000002000000000000000000000000000000000000 e67b7786b484d4583651a912efbb0c4896663dfdfab9ab03 a324a519dca186a731651f27416d6e6061db73a1b8436ff5;
+  000000000004000000000000000000000000000000000000 bf2042bbeb2453ce4bc29a575f1c2b86e869d5581cc15396 e6057e08a547cc3c6f9bd9d2b70578b1bb4e721130ec44b2;
+  000000000008000000000000000000000000000000000000 9e1f5f111feb4a7ef8704d27f0beb45a0bac2a24630925d9 ad5f9e892b5bb1a82c67bc74601f7d07b7cce36a28fead9e;
+  000000000010000000000000000000000000000000000000 b6f27259bec6d40e6074da32fb15d2a9462437b20c9a3ea9 8810e79c3b19534af922479df7a16d2876aa9f9110514ab7;
+  000000000020000000000000000000000000000000000000 e0fbd3aedd1ba718027d26f8d9c32f9028a187e1c2e9ea92 858b4744d8d7d118af63295ed1fda3027d4cb3653c83046c;
+  000000000040000000000000000000000000000000000000 d6799b3c082927d29218aad3ecc7ad4c9ac88138559605ba eaf9e77c2fd4b2cc0855909242acf94121f48d2ba9ac5d80;
+  000000000080000000000000000000000000000000000000 c290c0836ab1e569c4e00ee0a04c0315aaa54f43c61528f9 c7a0cab35a3cb81760fda4ade58d166b310ac4f66b376590;
+  000000000000010000000000000000000000000000000000 e25f27d6f4441aff7e23b03cd089f64b6577d668e8d1198e 1bcf5aac0a1bfbb4a3cbe099385eb53a198d882b05220dff;
+  000000000000020000000000000000000000000000000000 4b062beec1573bf777acbafd8ed98aa9c90093289e94bf0b 305cf230cbadb4a9a82055710d2a4bc397a9cabaf8fa8f51;
+  000000000000040000000000000000000000000000000000 2576fbd132f1b47ac0c65ae642495c925e1b9e9662a9acce 81283a8074e407289c6546ea51750e94fd3b77443e9bd098;
+  000000000000080000000000000000000000000000000000 ad55c5b1e608a9837542c41e44ecdfaa03ae7527983c3b2b 642746f60d4564f24557ad1c51da6167b9f1f406fecb61ee;
+  000000000000100000000000000000000000000000000000 abbd96e985058795974472e5409da7a17984e992463a4ae7 749bf1918522f991fc11eeaf20153cb1714665b5343d2954;
+  000000000000200000000000000000000000000000000000 c008987c5a00ad787003c211ddafbe17bc7bfde882af1590 0479652b9b78dd29e5e86c1d1e4feb79cfc6ef7282aaa6c3;
+  000000000000400000000000000000000000000000000000 85f6c06a6ae0723a5a2c710e0fe10929688edcaae9910fc6 235654d77724b3f058c339bfb7f4a96d3060eea86ec98c60;
+  000000000000800000000000000000000000000000000000 5d26d3028559f4c460d9df8b4bcdd4ef97b42ba3a4cfc69e 97db5c08ccbb86313ea484f72684ce73ba04a94ea9f02aa2;
+  000000000000000100000000000000000000000000000000 329db97e5ef152097c88668c902371cf221b65767e3bd533 dae1091596536498eedfee8e31ef28cdef08aacad445133d;
+  000000000000000200000000000000000000000000000000 088aa8a359aa4df4e798d0b3922b26e80682a08f0987159d cfb20f32a645a3d0af5035e0ca6e4984a85480b8ae16ae3a;
+  000000000000000400000000000000000000000000000000 89a255672c1150869542fffde4c46901721b894ff974203b ce709ae794d3184ddc4d8bc359dc299bdd282a07ca6a6a68;
+  000000000000000800000000000000000000000000000000 1c1eb24d901733198c97ebcfa9a64f9ff54ec158728b7bd7 f51d59d1fb0e028c77624336e658c82ce43bdc198f7c93c0;
+  000000000000001000000000000000000000000000000000 7423ce7b2817091550b4ca6f66a2f649c5b786ca974dd45d 4cffbfc25a70f4da97e284d05cd270eee34b62320e73a6de;
+  000000000000002000000000000000000000000000000000 48c65ba065070c064d93960f4eb386261749362f62f8637b 025fae2aa5c6272fad8ddf3e1b4bdf153619f7615eb9e863;
+  000000000000004000000000000000000000000000000000 42a8b204a7ab9106cafaecc4164bf0c6dedf3ba2b8abc38c 133e8a31641baa1b2655b02a884f283d03ca54b01e0c62a6;
+  000000000000008000000000000000000000000000000000 8c90d3a71fb841443cb242dba8e4b8c384a4e6072f3d888d 4f74869948135868d017990b7bfc8e976dcef68ba9bae310;
+  000000000000000001000000000000000000000000000000 51928ca9f47f782283e634a705518f77e71afc794eb7b2ee b9c34635a21c412e702d16a5107ea133033b27de38db1788;
+  000000000000000002000000000000000000000000000000 31d6b40863d75da73d7ca6a3c1513ad633299acea51c32bb 8a1a324198afb04c4568a787d9fe3d301d284d2ea2b13f3f;
+  000000000000000004000000000000000000000000000000 a7907a93b85810c2705060f764251c6f7765aa39231478dd f2744fdd850d011b32d1ec39b78f1aa5611a023430382c2b;
+  000000000000000008000000000000000000000000000000 314f645acceaea40046791a6384f3a87da3a79b47c78cb44 516e0b2696a9ee6cb5df124bd57ccc3973e4d05d22a8c935;
+  000000000000000010000000000000000000000000000000 c15dbd89ff614181ff6eee13bdc8b8b431bd615c0fd30015 b2c6566fc30394cb617ca7c5ee3708b659adacb7fc394946;
+  000000000000000020000000000000000000000000000000 04435e7f7acd4fc5c07b3c0c808a347866517f8e6dfc0aaa e5c78c8e3a95cd0428a85158cf5234b02ccb95374598b6cd;
+  000000000000000040000000000000000000000000000000 d6ee6478163550fbab5998e8cdd13478775bf0c24e5d446b 4c9538610f28b3b4c8abdcfcbe20c72766159c1b3d98923b;
+  000000000000000080000000000000000000000000000000 39eabc1e929998a9270654ff7a4b3a3ff537a052ed33acd2 c711aec9b5add947faff7a8f251c339fe609ebbddf7954f5;
+  000000000000000000010000000000000000000000000000 14c0a56bf8e9cda006cc8f9ec4d82916d8065deddef41066 993d071db68dbcea6646da9cc19748b622fd93e49a03958b;
+  000000000000000000020000000000000000000000000000 0ec5f08190470e004c3356a020d4b31319cf024b632d0c99 b1d7cb686e764e9221d659329ed364a39f39f8098ec4e00f;
+  000000000000000000040000000000000000000000000000 e57c1e54db8cb79251bcf2b5bef6e5829309df0306f1923b 80d877f89a3296532a60a8698fdcf3b11424cf3948dc2911;
+  000000000000000000080000000000000000000000000000 0da64b877d0aa58d783521db4810d8bc957c9fadbba0f782 aecd6316c49ba18628d8c8a887619cc0746e9dda4065b820;
+  000000000000000000100000000000000000000000000000 d69dd1946d42bb8389d86c0e8db8294afad37c66616d4554 514cadcce4685d08b2d41f6f379bca71e0bd01ed2c8dbede;
+  000000000000000000200000000000000000000000000000 6d4d1dfd96ea6a86a62aafedaf1700ba52910e731287ad50 07f5424774a22468ed69b7920435ad2b9140aa31068ec6f3;
+  000000000000000000400000000000000000000000000000 0f734cc8af7e9086b66273d52384a9c0f06ce805b0c89b44 0d6e1fb06b30ceda6e4a88c867a8f5da75337d7aba539a3a;
+  000000000000000000800000000000000000000000000000 a9c7ccafd4fa4dfa0deccad20c62e5e3da5ea4b44f058538 3f455f65338753711b6ede6e2d44d7da1c823869df9dd29b;
+  000000000000000000000100000000000000000000000000 dc4ce689c9f999a3b38580c8d96e5e79516ae550501be5b7 0e23362bcadf183fcdb11d3db46f068f95976138653778ab;
+  000000000000000000000200000000000000000000000000 414c3942b93c24abe28414885a8fd6aa30d168659894f27a 074b7a411749f9a302792f86aefc0c6fad6325399993e2b6;
+  000000000000000000000400000000000000000000000000 489eb2575eaf7d84bd3071658ba12c0e4df709b9bfae4ad5 c735d61c7c2b957a7c48cca72fd0c761349938d9dd440b1a;
+  000000000000000000000800000000000000000000000000 d557989092bdea6c293c17fae3e579e133ed42ed0e503fab 8f0d583b7a04e4265faa51e325fa26540973fccb8e6fa56e;
+  000000000000000000001000000000000000000000000000 aed5b39b57a7c02d82e9bb4198a9f0365ee9a920b96e5c2d 8385910609bd497447563eef6d17a84406e56de2c46007f1;
+  000000000000000000002000000000000000000000000000 61a0a39251f9561a3db58c26f6d3b774b53d199d49514c07 4ae42f598e0868770685bb0252d546b19688f9dae78d05ca;
+  000000000000000000004000000000000000000000000000 b2f394c5cff8e53a9f866f6d866122cec584381571fc7439 c6d43c6edcbea3c0152e277c4c37b9efb1e85cc42711ddb5;
+  000000000000000000008000000000000000000000000000 d2c1e78b530373fb535a56966bf76f7a10002104ffb39396 2f73d343727c3c72fa627f8cc77d1bf976148f23f131fddf;
+  000000000000000000000001000000000000000000000000 0aa26754c46b46274f23bebfa12beb84c45419a1756bbd5f bd012e556c4d90a5f2c2fa1130d8d4ebcbf479dafb32b6fa;
+  000000000000000000000002000000000000000000000000 2af2eff7948640dea22bb0223b9cb47254a4fc76fd67f32e 7dd1fd3148366a970abeac8525a4518d00fba3501bf4ecef;
+  000000000000000000000004000000000000000000000000 381035bd37bfada820ecef91384d9c3adb79f455d5353dc4 38516bc03f45c3002eaa1c335c6a1a30b5d4305261f367a3;
+  000000000000000000000008000000000000000000000000 edd98dd51f7897d48e6e0616a0edc3c6ed08d5b8c84954a3 7ca8ec651caf940f7e32570c014e1d1ef6870d81d963cd51;
+  000000000000000000000010000000000000000000000000 4848cd80215bc1a7c50dafd59f71a2bd0686afcdc2f7a96b 972a0fd777f0e4601a8aa054007eea1d620338cb7f045c2a;
+  000000000000000000000020000000000000000000000000 2ebe44492f552292ab979d2440f17885ed8bfbc6c07b6687 cfa6b29671ceeefa668cee90d36b9fcbcb9555a5570c1806;
+  000000000000000000000040000000000000000000000000 59fc05e55568665578cb07841b7b7eb2b706802411781370 e638c4ceab076952981bb9818e67328f2c85449f8d34f304;
+  000000000000000000000080000000000000000000000000 4c26e72a6a1a1b98bf8af97bf6eabc799ed02fb2cf12da22 f820f14ab345c96c0db9c5ce2c9c1083b1f7479025a2ab21;
+  000000000000000000000000010000000000000000000000 6c20f7ee0822638272f1cd3c6a85deb034456323e47cf141 43ff024101d2a5cdfe35e78cda9d3189c6b521e86f9969bb;
+  000000000000000000000000020000000000000000000000 5f5ba1f6227ceb68b128e0e277dcc9057ebfea7c85ad83fa 19739dd8ff3476f88da152bd2112e877ef24451fe40fc969;
+  000000000000000000000000040000000000000000000000 eea39bd16a7fa0c4f6003f885e00403081358e88f6cffe19 37c4d3bbf47b7ebfab6e7cfba13d824581de8ca2205d6a64;
+  000000000000000000000000080000000000000000000000 ff6ac796257006b5954f5ae372c83a39b309e13d4d82328a 69cba53f90f9025ff9525940a295564ce7b368037e5904ce;
+  000000000000000000000000100000000000000000000000 5a24366b1f50cbc354d7267b7c8af02ef5266a768e92e866 d262b76293a03cae0ffd933d69d8a5fe464fa74ad32f4d25;
+  000000000000000000000000200000000000000000000000 9a85e53c2e2f4eaf781245e1c06caa4b499c057e867e6f99 c7c784db558f11026f40ee63266f401af1376bba00967721;
+  000000000000000000000000400000000000000000000000 58b6e114c01caf9520768f2c505b03767f12199898e14466 4917eaa5c1a16be10ff93da1e65346766c8db6919ae2e4f2;
+  000000000000000000000000800000000000000000000000 d71d9592512b645c67c945f6731a164832c3a3b26d900993 7ec9d6aa061dee209cadcae91d704f47d4536f80c1eb1033;
+  000000000000000000000000000100000000000000000000 efd8ea777b1aa7b8f95ec3f9884ff4f3b73f5a5cfea3a5fa 2467fc69489cc949ceeb1aeb94acd2c702268f32e2cc6e55;
+  000000000000000000000000000200000000000000000000 abe51b05e091275d187c3f748a2478525798d65094ce3065 e91cd872f28b06b102d6aecf0d9ba1320ef8339a6d9c332f;
+  000000000000000000000000000400000000000000000000 487ce56a52a5759516bac74f1cde59f290954276c3880c6c 37a4bf9725788324ddc0c5e7046399c23ff66eb687be4a3a;
+  000000000000000000000000000800000000000000000000 bb6a0a3c3972c551fb10ed2daaecfa18da43c8b7b6152f99 4b606482708619d9ccee0a9b1479fb1e2ab7432bd399e8ae;
+  000000000000000000000000001000000000000000000000 6bd4da5c1e9f8eac112e97a807f30d906e04f61cfa114a6d 028c6bebae5aff6aabdffd238b931ffa8d65ceb27c9e85c0;
+  000000000000000000000000002000000000000000000000 3b78dad5fdf8de4670b331484c170f4fa270bdea3c19f968 e698f9e9b79613d5a066b7dd488b7d835af991e198427021;
+  000000000000000000000000004000000000000000000000 9589e3ba72eeea3018b2006ecaf3daf50187792adbf1eb5b aebf4e77cb0b61f637a219efb1cd45cda9bbd081f2309047;
+  000000000000000000000000008000000000000000000000 d32cdf79e2ca0276856b318918f58a9d559cdb6be01ea6be a43502c96e0c556b1dff0484d9c00c1019b76626b0453320;
+  000000000000000000000000000001000000000000000000 55797c047df1066442ee3a32fc23ef4577073aba26e6fc95 40a85a941931e2b7a959daa7f4126ea014ff109d7293d90f;
+  000000000000000000000000000002000000000000000000 4ed23d0001cfecae19b5c137b06d7b92660781ca153c5e07 0be5dc5e7e0ed415cc1bb0d9c632a4683f5ce22ac5f5123f;
+  000000000000000000000000000004000000000000000000 6e37b4fec66748c25e3676fd311c2221228f7505a536b68a 40f8c47ce9a11dff4cca51c001d9313b048c3efd6efef553;
+  000000000000000000000000000008000000000000000000 21a09509274ffdbe04c413b811f77021c505eb0ebf6817dc 524581f6e2083ade1dc8a1e1cf6e4ca8aac88f9b3d61d5b8;
+  000000000000000000000000000010000000000000000000 59c0d8a734a632fc1f94ed31dc0c5129831364d655c998b7 f5e65ce830c013e5925f0a88e64be89dcdddacb31d01c86c;
+  000000000000000000000000000020000000000000000000 da33c7a140e88b98064e2fd9c4ef672fef5d2a34f1f49707 a631664ce2ed5cd0307b3de0a93f40b3369b147598ad1bcd;
+  000000000000000000000000000040000000000000000000 4e61c7c6c443637d1907c9a142b782ca8273305afd97569e 0343cc955025d47f569d4bc0fd830a9faf977301400031a5;
+  000000000000000000000000000080000000000000000000 40f68611353581b15f10ee002260b5cc31520b38274d88c5 1a7f51fbc12949a8b7c4b6f188db3cf125b961c1512e5916;
+  000000000000000000000000000000010000000000000000 0c878e8b7ccbfb7647b57e19a70d732a25073e03e500765d b48d692b1a0a8c3898f6654861e2f757e609cda931683f5d;
+  000000000000000000000000000000020000000000000000 870a95337a5bc7f13f92a38fe540d03d464c9bd1719306e3 a0c56cfa857e90c4c647408c91c2ad1579fc552a2a0e3284;
+  000000000000000000000000000000040000000000000000 286d50c5b8fb4bde78e1c0aa30a38bc7ae740c3b4808fc3b 9ca3ed81d43629ea50bc7b230d2575a72eba094d1bdf22af;
+  000000000000000000000000000000080000000000000000 162cca8a79d382c9fde0ecd7f84bc1db3473d11907d5ab17 408b86b1bff13a2b3ea10b2b73b514981268daeef23a662c;
+  000000000000000000000000000000100000000000000000 4b02d797531370952aa86e31ad88f88647bba8b3ec161f88 12434342e21f7deb99b5758ffaa8f6dc4f0f90b92505ebfc;
+  000000000000000000000000000000200000000000000000 09da9e4015b1beb448a020675797766c38f98eabdab0740e 1698c83a41dfed4121053d14ad0dcbb6ce132aff43100c68;
+  000000000000000000000000000000400000000000000000 1ad84afeaf4ee931ea550e9d8bc975d0b76abf078e121b0d 23a3c71da525a8c082ebb0755ac16b96d2b57bb32f73bae9;
+  000000000000000000000000000000800000000000000000 734ce073de42aacf71e20b8f8f2b6cdb2e43d95ff415ceed 3659ce96ec48b547dd50722e07bb172d8f291bc811f033e3;
+  000000000000000000000000000000000100000000000000 4b2c3764c38ca54303979bc52b60d7228bee9afae875fe14 79d3e6584e449c8887bdc47128b42bfd21e77e6d498aab51;
+  000000000000000000000000000000000200000000000000 8df1b4ce816d0360a5ee9b2e607320b78e4c7441c8514a02 97c55314abd7e0e7486fca3fb6f74cc3922532769c6bf5f6;
+  000000000000000000000000000000000400000000000000 2978c2d0b82951f8173bdef34233229745c95bf6128c6064 c74403e50e8b9c0bb016f60be28f49c9f750d470e81abfe1;
+  000000000000000000000000000000000800000000000000 fce59b0bad45fde7a06226edc741c0bd78939dec9a8af69b 36cd9c6b9154f0f4cbc73847b0010f51d28e34d0ddc7b4df;
+  000000000000000000000000000000001000000000000000 acac88fa48e84eff8ea8654aebdd2fe1f815f58676dadae1 dfb178921f1ebc136c0439d34ecf17281a3e7c6643ee9274;
+  000000000000000000000000000000002000000000000000 f8eca5dd9ed706e32544ea2c17f3a1f3d78104f63fa2720a 8308e0b79ee2f617810a0071efa3333a9d21ffbc9b6c65c1;
+  000000000000000000000000000000004000000000000000 cbc089590a9fced22aeef42acc8f6c3f5a9c0af547ad9e7d 653725a741fccdbcc422a7e1d40296fc5b8e4fede97e55ba;
+  000000000000000000000000000000008000000000000000 8e7a890ebcbc425a6313646c75e8f7d5adbf17aafcae32a7 8dd7d910b8c080a15fb3722774b5e8dfdc3cab7929b2b4f2;
+  000000000000000000000000000000000001000000000000 13e46826ed3e1cf9453793b935e3a91e1eb1f62526fa0c54 332740aba506144d838f2ba82f2e50243bc4894054ca57a9;
+  000000000000000000000000000000000002000000000000 76975da2269ac8c0ed568537f1597eb17ba5cbb3b6644d59 d39399b18de2fe1389e8c37f5fe7ac936cf3b19a9bc10aa4;
+  000000000000000000000000000000000004000000000000 e3151a92cb5ac90be99efbff195a06ef95530aad2e0fe612 f7e2382da2f125cf69fc4037a08f7d23e44a8161649a35f1;
+  000000000000000000000000000000000008000000000000 87aa553d98b34c1af84a65a08aab4aec6668b19580d5de87 fba98b7b53be0f291f3dd2e94a3c79e61f0850902ab8c8d2;
+  000000000000000000000000000000000010000000000000 2309cdda8be6f4b5db899a0abc42b7158e0d0b9bde1e5515 5c2607bc9871c641975f71337b522984a552ba1fc4dc88ad;
+  000000000000000000000000000000000020000000000000 81dea379fcf54aa495ae455433f623541978ae14797cb68a 0d17815e478b9af0dade4dca1f7e9850ba8f568c4ce0c4a8;
+  000000000000000000000000000000000040000000000000 05ee21b95429675c7bb5ba94351bb8be15f595e3e788c625 c533ad478eb799b0a57027eabc654004e4cbe8b1d7bba3f3;
+  000000000000000000000000000000000080000000000000 f49266c7ae9a6f9014dcf8e7f880e5dedcd3dfad62956183 961dcd96bce577487a7385e83ec94d7d5336f6a3be866103;
+  000000000000000000000000000000000000010000000000 8adcb10489da8287d0a4384e58440c1f99f7c7d7c4f95de4 195e00cdb3874a8d9c37de872fd590542f8f2791a8eda4d4;
+  000000000000000000000000000000000000020000000000 b887e24ca04c3e327890aa3c433ba9d5bc31506844c279e7 1661a672a5f97214f23ce915be9208b235252105f0aff6ac;
+  000000000000000000000000000000000000040000000000 f6efa779fe5fec4a6ce68e515cdab099bd2acd34311b3a57 90f05e123429be1e90a20b603452ebf5b662729ecb210639;
+  000000000000000000000000000000000000080000000000 05d36092ee07d3aa94858a5a142fb6580d4184b82392e65a c134842404331693daf86b417cc3ade6f445c3a3953ef097;
+  000000000000000000000000000000000000100000000000 432b9addfb246bedf10cb617974bdaa1b5a635cc0ff526d1 e43682b9a31cb01ba4cdcdfb3570da5da5d1825fd20277db;
+  000000000000000000000000000000000000200000000000 bda1d3bb90214e308c9f66715c9ef4879577e6001bfe3901 93e4454ea0d0b1218ec6d73ede398c820bb329ebe992a9fa;
+  000000000000000000000000000000000000400000000000 accc0666ba817953e67ea6d03b2bac3bf10d098695b3d2c5 62e46ef3448717091a8879ebf0981576c13e808b7495a7ec;
+  000000000000000000000000000000000000800000000000 a6e7517c15875ea13755114175cd78b00571a6995ad7c7cf c103994a9b73eb6a993f8c7bbca1f26555207979ed682749;
+  000000000000000000000000000000000000000100000000 8d6bcc64843ee0beab61c9e30e3259e006d2de5a8d004480 a0975e10f1315954c7a30c10aa5aedeffb7fc6fea9d36ca2;
+  000000000000000000000000000000000000000200000000 2880d722982c65a95944f9ced5e5cbb9b6d4182c5401f127 06f9e4e443defea2cae57e27188e2e21bce5221163c24987;
+  000000000000000000000000000000000000000400000000 08cb1ad3567f72c13442ea970308acc8635c38c2b1ee7e23 aeacd4989234ae563415270cb5b15968ba45d577c70c877a;
+  000000000000000000000000000000000000000800000000 c56c1f038b036d35a5e6c5faa678df661451f58cbc47957a 22d4c3a9ffeffabb15321a7d791bfe29abb80d0a1b239971;
+  000000000000000000000000000000000000001000000000 2a42c548a030814acb3daf45782b9723d114d83f7371fe35 04db56494546ba183ce6392a270f401c7a122b63cc7c84e6;
+  000000000000000000000000000000000000002000000000 aa66af75a4d26ba50a8cf6f7fb652adb63c33869d51d32cb b5d4a1578d0197af1ac1f6f7bace7856a509a324a6a391cc;
+  000000000000000000000000000000000000004000000000 2e0a5edaacea1a615d46f105693d7983a8ea29ff31db6fcb df50f2a941d40d635285b5863e121f4adc1881261b0df2a0;
+  000000000000000000000000000000000000008000000000 086fe1288ded9c9406ee87735a541798cd375a8547e458e6 eb3e4d03b65613d65c2a57c47f8f9775e46e6586d67ffe3a;
+  000000000000000000000000000000000000000001000000 8f398060871a8fd9e65cb410bc3de9bd5b677eef9ae81f81 f7729acd45238c2ca1a0fe386b853dd09bb038689ab8d2cf;
+  000000000000000000000000000000000000000002000000 0fe47947e1bc6a7253edbf704ceff9ac632dac4f3f92b86b d9c8b4958d842ee5bcdf8edf31d311656422fe304d870b55;
+  000000000000000000000000000000000000000004000000 13a773955097c4cd1f096d5c9a93c55f1180a90a1d5ac590 42d4865536ba2bb959aa05cb47b0df76dc4c144ba8146587;
+  000000000000000000000000000000000000000008000000 8da9280dbbbe1cbeb39284cbf3e9cceb6da6045884b0271d d521aea441c8b3bdcfa1b7e8063d5df4219acc4a968f37e6;
+  000000000000000000000000000000000000000010000000 25ca01a978782bf372d89c9a5268734daf6daf6ff04a1c12 a1c34d58d8af6ceef7dfa927ef7256faf7c0f08b712618b4;
+  000000000000000000000000000000000000000020000000 05743f35f268f77d9ad720df20be4b59ea879543be932ab5 6619f08b31b1c449dc4bfa61eb9dca4b4b532d1fa3ca4b02;
+  000000000000000000000000000000000000000040000000 71819ba6c6b4e5a559e76876a0517a830ff5ad628fdec78e 69b8985b215adf06a89c6fcb333395caad5e622486756e5d;
+  000000000000000000000000000000000000000080000000 c6cc4f5bd9237834fe7bef4a944ee79365cdc236b43acc9c e88f218d0e043901d2a1b0e7fded7f0f00de229eb81b14fe;
+  000000000000000000000000000000000000000000010000 546391a2176e6e4384a941800bec5e35e654225cd28226c9 224674d6d9e1e4a551b077d9c4e272b3422e9986784c6cde;
+  000000000000000000000000000000000000000000020000 a35f21a705a4ed5e4a0c4396188bbf76559a6f784a41f0fb 5cedc5cd1333f03451c4c924d05f2d1e23af684e1db36493;
+  000000000000000000000000000000000000000000040000 4608b14991412fe0ba44e89a9b2b9eaebdb3ec9294dbed9d 75becdba8baa17765001d3bc6365c4f23035c7e788c3f4af;
+  000000000000000000000000000000000000000000080000 7521a4b94efd67f7610da5a6d6e005e8bc599a2922ad239f 196850455f098aec876ff7f01ece5c1bebb68e0c221e330e;
+  000000000000000000000000000000000000000000100000 cd0bc88753ce06c8f1bdbcaf95b9bb29ac42ea1f6a139b58 c4a690b563f5d007fdd23b097f26b354a629c8e533a23cef;
+  000000000000000000000000000000000000000000200000 be5615cc8e7679042fe4da12cc00f21fce981dad67c508b0 26214822a1dca50bcd60a494f04866d896deedb6815cc4ef;
+  000000000000000000000000000000000000000000400000 743b7a24c16d28f967708a5343362b2423334defa3ca5988 36ff88e99c1e08284f5a1288b70e300de2f55a6d030580ef;
+  000000000000000000000000000000000000000000800000 b2c10de4668970f009a876f0920c258aec5c17930ab6d7cb 5b2ad64f73a80d9925aa6fa07c13c451a3bbcddfbc45fd12;
+  000000000000000000000000000000000000000000000100 c3bbc49c558be38d76cd4fb1df305823c6c79eeee790da23 8d3814fd29e6b6bbe888d1466975ca7890194cb6d40a6e21;
+  000000000000000000000000000000000000000000000200 ad32659b379a21aea7ba65feeef58ecd85f2709ed489ae3f 90d06f285f57e0245a01ea99dd003c2362e0f0cf1072c73e;
+  000000000000000000000000000000000000000000000400 3c68a683ab58050e0b7ca57b6622cbe5050a5f34b3cd3817 22b71b27a02636d4549f1c5d0b3d164ff7021dbf7eb51725;
+  000000000000000000000000000000000000000000000800 100eeb2df047d120e9058c2205643a043f45cced3f00402d baa772bf573de2d6965c20f4b5228575383fe074734ed283;
+  000000000000000000000000000000000000000000001000 e53982a839bb3034b3d9a7dd333c5e411e4b57cbc6d50d3e 66aa969a05a1aea09b759aa540b9245da55405a352fa17d7;
+  000000000000000000000000000000000000000000002000 cea5c1b30bc5cc9edca12e1d75c53cc8b177a3b4750d09e7 7be01bc0840b928882c975916e603ae227777febfead438b;
+  000000000000000000000000000000000000000000004000 698f8656afc1070cba9590f1705a3bef4491d986fe8623ee 28f2e2dee1ffab822b59a968d496dc7abf5913c4c4e2bbac;
+  000000000000000000000000000000000000000000008000 84236266033283aa5d0238f85aa767e9933185168fd7b9b7 d109e6315ce6d9feba046c06b6057ea3cf895d60cefa3152;
+  000000000000000000000000000000000000000000000001 b926398d6de6be33132effe425b33d174712378f2abf3e3d e26f5b93e56d8687e36ccab4e325f562668d57ac9c7b1eb2;
+  000000000000000000000000000000000000000000000002 3523fc2141a636378e791c2ac517cd549b7907d14744e3db e9f56d1d534f92a21041892fd8fcd6a279389733352cedbf;
+  000000000000000000000000000000000000000000000004 58970dc01727ee18fe1d7af97d4ad32bd46becb38695ebb3 30834d00b00d8ce8d57fb2cb7e8eda0d6c435abc4cc65f69;
+  000000000000000000000000000000000000000000000008 1657e3a78a1349e675bfd18523bbd09f5eabf10848aa1b68 29dde62438d8f3a2f1c972cef38dab204f72487d41d36977;
+  000000000000000000000000000000000000000000000010 bc369142093bf9079329486a4714507902ff80e2e9ee2d96 c6c82e04acee7335c63dfe70486420550e7dfc6e17eba69f;
+  000000000000000000000000000000000000000000000020 d9b0c8154f2e5fa0a7258c39e7403b11b22757fa31838ccc 839a6416ea37ffe15a5cbbf8d51faeb2fbc70afb52baa3b4;
+  000000000000000000000000000000000000000000000040 a181925054d0650da98859c385ebae7b0ed3acc947fa868f 3dde9e5eaed9881238358d2677ef5719760d9a362a77e572;
+  000000000000000000000000000000000000000000000080 ac00aa615bbe670554210e756a2891a123aa2469cfc0a339 beaf216a7c017fffdbc1c94c381bb39d8ce49c614804d1c3;
+  0100000000000000000000000000000000000000000000000000000000000000 b9bf27e3864a98fe4fc990aafb3d3febe8f986fafcf01766 ac1bcf767a2d1010fb40060bda256fe02f91664f6004c1dc;
+  0200000000000000000000000000000000000000000000000000000000000000 f9b8e62a7c018dd401c28d5034f1e7e7d325c1a53d6b0ad3 5f75e8eeff6b3df77adc31a0c7e9d5f6693f1bcefebff127;
+  0400000000000000000000000000000000000000000000000000000000000000 93e3640a78c48284d48fdaa6454ec300fda5b50ad8918b82 626a0036c43dc3c1b21ffead7785e179c92dd63fe15c18b6;
+  0800000000000000000000000000000000000000000000000000000000000000 cd4ccf08425f6016007238e9181dfa5e8666b1c764ad6552 e31407fe3155b17a1c668d0499344710973abdc4cec602db;
+  1000000000000000000000000000000000000000000000000000000000000000 9b7228243c8031d22d860e10579f33841e2683a87f442803 f26c622c63c0882305ef47f700a4787bfcab887a5918f102;
+  2000000000000000000000000000000000000000000000000000000000000000 32adf437017a1e0df6dd2eb70c1a35ab9fd912b0fd924981 8b6256ad3251b165c062c23050d190e4ee3ddae7641ca211;
+  4000000000000000000000000000000000000000000000000000000000000000 ae66d621ad3bd60163f0fd1542bd40c2e9773299e43bb1e1 7c6719a6eb0162304872bdeff36d1aa86ca7423ecfc6d531;
+  8000000000000000000000000000000000000000000000000000000000000000 f1dfc505f120e30842f92400989404c1148c568ffdcfb6ea 4f0e9ad5413d9c7c02cc9636279315d36a5f9cd69ed918aa;
+  0001000000000000000000000000000000000000000000000000000000000000 507c601148c0005edb667430cedcdbbeca69f7a64279a139 38c47f9ffd2592941a96dcb9d5bc48e22154f8a35f3beb59;
+  0002000000000000000000000000000000000000000000000000000000000000 d6423b401189d9b906130f3c5fc3374d15e96b11fb7c14f0 e74664747df022ea84aea64bf47bbceef421b49b024292d9;
+  0004000000000000000000000000000000000000000000000000000000000000 96393b04a87c0d935514f83281973ae16028b44ecaccdfb7 a491320780f01c075c36c128b11a62af05b0607fa15bac76;
+  0008000000000000000000000000000000000000000000000000000000000000 ff13c500492a865682b134ed37bd2e04640f051caa8bd424 a7b7dd470d7cb65a0509e6d60de076018d51369070f7ffe2;
+  0010000000000000000000000000000000000000000000000000000000000000 df357aab7e61c330837ac11eb0b44ac47eb4346a0a8dd10c b5f4282b91082ecd99d62a20834562107b122f599e43bb69;
+  0020000000000000000000000000000000000000000000000000000000000000 f881f66e77fafddca4336c464e5859840e1efcc2558ee904 618d1eb75e6be4aae49249a4ce9b11e355cefe4fa66a084c;
+  0040000000000000000000000000000000000000000000000000000000000000 3247583f9bb999dc7e9a7cca8924deeae9321bb01301ceb5 15ef1f7d26d57f823d5e107995ae8a265ecf6f448d49e532;
+  0080000000000000000000000000000000000000000000000000000000000000 4c6c22c511abe95084ec7f6c6e8f45390871238c12b50e09 535fd220910b216e03be3dae7aaf2da612cb497ca5e431d2;
+  0000010000000000000000000000000000000000000000000000000000000000 87fbbd6c04d72429c8d69300bbaf3b24f7e5c306367cfa02 5e141363ead730b0a1f8282eef64645bfbc3f4e1bbda813c;
+  0000020000000000000000000000000000000000000000000000000000000000 9c4526997969b5dd18e955554bfa1d9ae3ed076de0bbe052 d75debabfe75456af041f5157b2936d5fcbce47f97a1ecad;
+  0000040000000000000000000000000000000000000000000000000000000000 ffa6b29c3b7e7e96040a17aeb7f2c032250a902d014dc86f 3d92b6662cd850efed7c1c3625931c6feccd511819b6fda6;
+  0000080000000000000000000000000000000000000000000000000000000000 f59db6c4df75eb11ee40a61e74872252f12a718cf92154bd 40ab764630fcbeb2a74ccc3823402f20271570e346e6dbe7;
+  0000100000000000000000000000000000000000000000000000000000000000 cac0b5ac225f718a5453b054153b791b698d35057399929e 3d8e3da164eb5243eda5019bf34dfa94af052d29dd88baec;
+  0000200000000000000000000000000000000000000000000000000000000000 5ac22bf1ef8f2c4e287b90e2403ecc483cca0f42a8d03b26 1af5f84cff20d88082740ea8baa376ca6062476b834d29f0;
+  0000400000000000000000000000000000000000000000000000000000000000 f63203109b020799ccefb25c889711e51cce884a5b280a37 3bef7c5f720bfbc57aec9bb3ed23a9c7135f81bb91b14dc8;
+  0000800000000000000000000000000000000000000000000000000000000000 c0f1953d2a32a78e28949d6b59a416149ee8b1ee5faa13a3 e8d7d372ce239b5a80f3e98f701c29cd3967a92f1d343519;
+  0000000100000000000000000000000000000000000000000000000000000000 aeba854b84c9e6dae534a4513c5c3ea2c0b6767736af921e dc4a86954deb75a170e5412266fa34930daa116c8d4d645f;
+  0000000200000000000000000000000000000000000000000000000000000000 3d93d2b444ff9887dd7f064fd014ecc5ce76e3c284fca10e 4c0060aabc9e9524d42f49c52a131f47437e939559524130;
+  0000000400000000000000000000000000000000000000000000000000000000 936911953abe8f00b50c53d6a1e07afecb4c9fb4e2d02359 2ecf091af5aed2ef4975262b1b15c5711dc747b516a4eaf3;
+  0000000800000000000000000000000000000000000000000000000000000000 ca5356d932391ca350a320a923f6a09d4b9596a2824585bd f57089fc85264e88677c6bcfc8a7ad2dd8cc7c8947b7d63d;
+  0000001000000000000000000000000000000000000000000000000000000000 a702362cbc6fc6cd184ff92c04230637929f4894b1443844 c955cf81c2842ffabda06adaaa419a7d337ab7978fc7eb4d;
+  0000002000000000000000000000000000000000000000000000000000000000 58503749e6f85d76dba478e6ab13819faa7834621e985964 40d8693a17076d25f6a7bbd853ac7317627c8c7fe28dc0e1;
+  0000004000000000000000000000000000000000000000000000000000000000 359b31ac81055d73108a667c93023cb61091d28a3b928c73 e737d51dc44b67cebe6736c707005f4cca8fabbfac64fcff;
+  0000008000000000000000000000000000000000000000000000000000000000 5e56e06d2868a0036b13d31e856e5cb6baa6d94439dbe005 00ecdbd9e53d483d55d3b5d49ce1323d7e32dd4d6becb393;
+  0000000001000000000000000000000000000000000000000000000000000000 680ab21b78cad66041b9aed98d77cde034fab905c8d1f4ae a30c2c2bbc45c7a4f4302b73a5409698a66c409874367eb4;
+  0000000002000000000000000000000000000000000000000000000000000000 d225adcf1d08318068e9a25be99fcd6dfb2e68c380af8569 559c47c24e30a1407ac254df3d3719f61e7cf9ea468f3c77;
+  0000000004000000000000000000000000000000000000000000000000000000 b1381a55999189a6dae366467d8ebcc1c4c0734329b73c81 a2a8ef45a21a71339ec842fa179c7d576382465e2617e156;
+  0000000008000000000000000000000000000000000000000000000000000000 a1f309dcda165b04690a24f8ef2b6251af0f7d643d614b87 6efa137e74c8930bdd870cd4ee0b863481a74c1dff2603f7;
+  0000000010000000000000000000000000000000000000000000000000000000 d0298ac0de4e713865a8f90f4764e5920fbef2e7e448526f 10531f89af0b2b0b087d0ba754a7c1f88effa8c84aa4c7d1;
+  0000000020000000000000000000000000000000000000000000000000000000 303183c61edeb803e29b4b5ab8dcbc153c162235af2679e7 fd5f16539cc1980312ce9cd62e8ed4c340e7ec6720dc2719;
+  0000000040000000000000000000000000000000000000000000000000000000 f56d07a8e09887d990f30b476abb573cef82d046d27e532d d4613a5b23cfb3d6cc7c5a8a2d9bce56376b7558d32034c0;
+  0000000080000000000000000000000000000000000000000000000000000000 4cef301b3128227f466d3b47cf442f595d9ba7ffdd661097 64ffa5fa1e330fc68e92fca4d93d28ef50bedb9f1bef09d1;
+  0000000000010000000000000000000000000000000000000000000000000000 35a7dfe89a51012a32b175ab4ef15c13814d8b9879c462ac 127f8b39776eff7c6576c10c982ebb39cb5e7bcdb5674748;
+  0000000000020000000000000000000000000000000000000000000000000000 8f61a8bade4e961fba1490d342549e7f078f173b7bc29e2d 80287a41e7e525c847d2ef3a7c331b9b4774e4f19142c3b7;
+  0000000000040000000000000000000000000000000000000000000000000000 f55eb2cd3a43e18864f1e80c07625b1602afa14607973a50 8061e6e151978f1d0db52a5350e2519d0cff21ddcaae1ee2;
+  0000000000080000000000000000000000000000000000000000000000000000 db31bdf4e661e2fbb4d0688c1b095e4c5d8874342c304c54 1aab13f635c2d335f132c8a30c5dec0709cea7240a51ae59;
+  0000000000100000000000000000000000000000000000000000000000000000 3b119ceabb3ec5431ad9c6033bd75f4490a9a080cba78239 fe3b0d5594fd0bdfb9380e0b5f8e192647df39dffb97c2c6;
+  0000000000200000000000000000000000000000000000000000000000000000 c57517665ff0776be4c188073c3e6da528e68ebd91146e98 a2689082d7667a04fa3455b037c0d19cb09b5c2cd2d688d5;
+  0000000000400000000000000000000000000000000000000000000000000000 b88d0ca9b252b59f5037c9cbf33fdec1e294c53ae8f3dc0e c03d759f711f1e96f1197f50e17d2401f2337008cce4022c;
+  0000000000800000000000000000000000000000000000000000000000000000 d68b25cafbe2494d1852eed5396b4a538626f7cfc84cafc2 12a3ee6885587f040cc63e0ef7da20f7141d55ab9002e951;
+  0000000000000100000000000000000000000000000000000000000000000000 a7367579db5c811e1f6ab31f9a2402183a072da9787a3f1d e695ece8464ee54692fa206e9b9f6afeb3f1cee01908e473;
+  0000000000000200000000000000000000000000000000000000000000000000 46e41d6f58ea9f07bbaa8ce6d6b5ce6979955143cc296520 91959f0ee0a182db95166d1ee096b9e6d0ceedb0ee7f5415;
+  0000000000000400000000000000000000000000000000000000000000000000 e068dad09a730117386ddb9a14c1e0d0917a0131e7e4163e 7147cf842542dcf51061f1ea53e751862259df4578ef57eb;
+  0000000000000800000000000000000000000000000000000000000000000000 b23c7113350932b62a2543c243d8f5c80a9ab670f705ffb2 23b55c7f5f92330e36781f590dee02c1e3434bff21402bb0;
+  0000000000001000000000000000000000000000000000000000000000000000 1db8786ee450f5d890b2a55b707354bfcb5bb8d25a19cb20 144ef76b927a63a5dea1b38209dd46a10c930719aa1f91b0;
+  0000000000002000000000000000000000000000000000000000000000000000 efbd20e07c93fef498055acc1ff7fb7e111b621ab869149b a78fbb2c8814eab68ac6f18201fc744e098cbfc6b3b98001;
+  0000000000004000000000000000000000000000000000000000000000000000 e607ad2ca5ca150476f56a1e20141dcde6601bbb47e59ac4 7af3463337265a8417b6ff2bf8c5329b2817ab9c6e20566c;
+  0000000000008000000000000000000000000000000000000000000000000000 e1e95ee45075bfe6ece402acfbf1d354811168eaea62dec4 56a5cef06616f3cc8d52e49cf016840543993c1c14b98ad9;
+  0000000000000001000000000000000000000000000000000000000000000000 e5d38d2f53d57bdd6e050bde39d9aa91d0e099868ffb39ce f6c31596b95d4a821c2823d51da8c73c22ddfde39ad1348a;
+  0000000000000002000000000000000000000000000000000000000000000000 70645327405a1555eddd7de7add707475afc6a71f0ed93bc e70a72f38cb50fe9316e984476d8ea91256d584c526e1bcc;
+  0000000000000004000000000000000000000000000000000000000000000000 b2ebfd56ce86494c5bf81c3f3b9563a0f255cf05aabff385 620a46dbb1cacfabd5866a603e3fccc2af4082a321def1d6;
+  0000000000000008000000000000000000000000000000000000000000000000 070f1f283f67265e0e55f8fa8a510ee58a7dee30fea64c4b 0f36556b34d56011ceeb27e5c3069c98049ef49c9af0c63a;
+  0000000000000010000000000000000000000000000000000000000000000000 9229ad8132b0e1fd637529a11eecefed6993a4da32c732c8 594eb6e495ea45f3dd91f1fde2e56818977967aa23f74b9f;
+  0000000000000020000000000000000000000000000000000000000000000000 e31869b018e340b2e8486158a7c81c8b1e3501c810d69ab8 b46711048d12eafb22e75da3e0b68f6e720205163451ed96;
+  0000000000000040000000000000000000000000000000000000000000000000 38ebc594d85a72ad73a816ec107689789422003f1011a1d9 5eb03787e4f232cb520603b5aaf75a8a8572faebe029f484;
+  0000000000000080000000000000000000000000000000000000000000000000 5ab520b807b1a5d33a1fa7a95867ca8fb247a4614b053bff ad37ce416239b9a3402f6416aea53ec364f627390d28cd04;
+  0000000000000000010000000000000000000000000000000000000000000000 919942cb59c0737d6cb680d2cf625699f8b95ddb43a7c39b d6db7509870f557c4765d44df0c5bff7146c78c7d4cd5ae1;
+  0000000000000000020000000000000000000000000000000000000000000000 f6a112b0532ab0799057a12c29103fe6b711421fbb20cf46 b1a2ceb870602f70c9e1e0962fb61302083ed6b8ba1dbce4;
+  0000000000000000040000000000000000000000000000000000000000000000 17c3375e31611aa3604b5bcc3bcf1b16a6e3941e74d719b5 c985c64ee5e966ce8a98d452f6c8314429d591c9269ea3cb;
+  0000000000000000080000000000000000000000000000000000000000000000 856762aab5ca36ac75ee881a45f9179fd6c82e0a843a046f 735baaa22de134336a3a0b9568ead3bd0e9371103b52e13f;
+  0000000000000000100000000000000000000000000000000000000000000000 becd056412747971868a5171a43aab3aa596db45a51e045f 86da0a906ee357b6079f467da56c5a9058e95b5975b89a2d;
+  0000000000000000200000000000000000000000000000000000000000000000 28792aa56806dd8ae222beb5264dc658376f0af38a818f11 cd1e1acfedd0785625b0f7dbd1e80cb07b9a81afc5117b42;
+  0000000000000000400000000000000000000000000000000000000000000000 f5c917cae622f170b53528ba848f8b5198101ee26674dbe1 5204839f2dd30b9c1912a8bee2b9e8de5d3076d6f1fe2a40;
+  0000000000000000800000000000000000000000000000000000000000000000 2e03e9cd9cb9a02736bd8050522a432b7d534962b8af10b6 227e5cbaa183f0c378a71ada61d4b27517c0673cdeac0b4a;
+  0000000000000000000100000000000000000000000000000000000000000000 3acfdcd0fc1d276faef27195ce673d37819082d98f9fc7a6 9100b2187e7bfd94f50de1cde7fc00736cd9695a8be2fac2;
+  0000000000000000000200000000000000000000000000000000000000000000 782711ab4c23ca236249dc69de6a034297a3518a9414a4d1 8c6fd6c8d23ba4ea591fcd56f7b2fa81702cb9e1fbc4ca46;
+  0000000000000000000400000000000000000000000000000000000000000000 9165b655770a6de307c69ad307a9b312c190aa69383d8fa3 b6d26efa5205d580ba4ce8416a54fddfb3241cf1614fb9ff;
+  0000000000000000000800000000000000000000000000000000000000000000 d2bd3e6f7326aaf42aa4d83ecdeec5aaa7f0d4017e7513c2 aa6ea2e2cba823ffa5e9af9b383080352567e687dafe7d62;
+  0000000000000000001000000000000000000000000000000000000000000000 53547d52b93bcce9df72af3e2ac054045d2abad48a8f155c 09a124b6d521a1702042b78c37e11e3d4de4aca95f850c8a;
+  0000000000000000002000000000000000000000000000000000000000000000 4dea86528773c475d6561f73bffcfb89f58d72c202aef4de 8d75aaeac4f6a4678be00a0c1d47613bf8ba84c001138c84;
+  0000000000000000004000000000000000000000000000000000000000000000 9433f48444956c66440f96b482516dba53492ddb871ba1e4 44beb68e84220016b2346ae3c8fba3a8043f76c155279cdf;
+  0000000000000000008000000000000000000000000000000000000000000000 f1abbf0c8abd2e7afe50e0e41d87439335ad860048f65b14 57b27cd819445065f92e342818fc80e8dff5855abf278083;
+  0000000000000000000001000000000000000000000000000000000000000000 7cbf1623f4771be34ef12bc24f3df09ef18ee4d34a076d8e ee5d3121672058956f6d361d04143a11a7b348f8586786fd;
+  0000000000000000000002000000000000000000000000000000000000000000 c7ac6199835bf0ae063ecc42b250366cb42e67a2bbcb71ae 1ebc89d17ad09f8d8227c46dcd75c428c2728cfa00f72099;
+  0000000000000000000004000000000000000000000000000000000000000000 2a6b2246754be8eef23cc6ff8199379c1a3d5d6adfb8dffc 352ba2a5163dfdf60123ade20c5cd4b194a1daf5a44cf26b;
+  0000000000000000000008000000000000000000000000000000000000000000 48e1b8fdb66cb5cf70e578e56ec88af91f61ef4066cd10a5 8d8290606c6f63aa1f617f161a3c4f3771d9389d1a8fdddf;
+  0000000000000000000010000000000000000000000000000000000000000000 adb4e53a9e4964c483b8c0daa4e290cf30dfa6a890c8cf7b 742de728a7ec1f9e8ed75e5ccb486895915918789cc348fb;
+  0000000000000000000020000000000000000000000000000000000000000000 a8a05b5bc9a6e1d14f5f42a832ea41159a90069c0cc2f3c5 dcfa5bf5b5fbce34485fa72cd25be8c51112b2f0e660e5a8;
+  0000000000000000000040000000000000000000000000000000000000000000 9740581c8dda660a541f1ebefd40aecfb27583b16baf264c 2784d34ef756cccb20c798fffd46fc54f542e4bc6b01c7c2;
+  0000000000000000000080000000000000000000000000000000000000000000 5c2a2c37d7dde7a739554fad22c87e96b151d124c412a6d8 c9f97e73daf8571fa01ac5e5c0feb31ccdaa35972474140c;
+  0000000000000000000000010000000000000000000000000000000000000000 2bb4006ad99cf383fde81d85c3f3c7f8a064e71eaa4fb97a 9da0c810e9d3087ff43ea8975fd3cb6e8bac3141cf2214de;
+  0000000000000000000000020000000000000000000000000000000000000000 69b1546928d61ed20fd9c4d92a15acf2ed64b605898d6a92 c38ac1b62d4bcb17f3dd34fbd4863cc4050c2e013e5f4aa2;
+  0000000000000000000000040000000000000000000000000000000000000000 ee09a2cb6f12002867e67d21e27a29df60e0b3be78de370b b85de9b359c55dc8a0ffe9c7614d0b1808e9789ab9a01ed7;
+  0000000000000000000000080000000000000000000000000000000000000000 f3fe61c8ffc1730e53d52fbbc95dc490281b8d8010849f36 3c7c0a32e3ac351628f7c4a4cbae92356406e6f9d00c463e;
+  0000000000000000000000100000000000000000000000000000000000000000 4be13bcfb914f4cc713ca28dfa8f80139fdc7044583c8fdb ea3d6ccce998fa7e4a2971e2e314551977b8ab45d82f9f5d;
+  0000000000000000000000200000000000000000000000000000000000000000 103b02c8aa4259d66d9a63c0b9022146bd7ad46c094a8293 6e4b0453ea83f9a7d632daa7c1a453fe789c27092b1ff6a8;
+  0000000000000000000000400000000000000000000000000000000000000000 1c0e3f0914701e2f0fc479b81a4dace00288f30106e1dac1 e2a7ee9ec96d9882c0e46f49e33b23954a2ba83e54b96c6e;
+  0000000000000000000000800000000000000000000000000000000000000000 5aeff2097385d87191aceae010a80a594dde453558825d2b a28fc66ea517be94906778df80021deb659ac653eeed533d;
+  0000000000000000000000000100000000000000000000000000000000000000 b5d9ddd97d00f2b7c9bfd448a505173e1843fe5f6f905b9f de4730d5efb3057233ee8c6d6ac4ce6c04488680fc5a4153;
+  0000000000000000000000000200000000000000000000000000000000000000 51775f5954946c9b0ebce50daf334c8faeede20eca01515e ee25e4ddd9c2e94f4caa11e5076b35cc37f5bd4a1139fc4f;
+  0000000000000000000000000400000000000000000000000000000000000000 6b4faa2d98261d4b062d1ba56759efae11a0f1694f9f7493 720ba34dfcf6d08dfd0c5151ec20c3449a4151e73563a0f1;
+  0000000000000000000000000800000000000000000000000000000000000000 9b99dc24408709831564dad1f0e46b1daa10a9ab9cce7b31 ddbd94f3fae8b6d5c35e842045d0b377a76cee167116da23;
+  0000000000000000000000001000000000000000000000000000000000000000 cca725566341683bb26ecc381ba374cd77005b5a2205c566 c1ad58bccd15783223452f26a5c37c9e4e8bb92d74754bb6;
+  0000000000000000000000002000000000000000000000000000000000000000 5eb34abdbd022e8aaadc2723dce9f003fe2d2de20e8b498c 8bde7d0968b463e992ebd085ad4a1bd7ed06b2c572c8aa2d;
+  0000000000000000000000004000000000000000000000000000000000000000 5c2887138801702fc6bb77f7fc18f41f91c4965b9d48e835 f96cda47767887406cd137abb0a0d502dcdfae36c3497a42;
+  0000000000000000000000008000000000000000000000000000000000000000 f7012be827a1e5e50171d5ce223de27e9084c7a2bb71dd01 27a699b09a591f0b2a4fb48de1bff8d3d8c33838ed768adc;
+  0000000000000000000000000001000000000000000000000000000000000000 a00567db404dd2b72e1b6cc9b247fbb1d379e4815c996f1d 7d95497bb65ae3e38f38af1927a4954c3b7d552aefc4380b;
+  0000000000000000000000000002000000000000000000000000000000000000 6ffddfab422c4db6105455796584aa56aa8e8c04ced1848d 8cf6ee28ba7eafaaff2af04ee7bbb657d1ff9d0ef8de3f9d;
+  0000000000000000000000000004000000000000000000000000000000000000 15f242571e6cf31363e99d58b4ca464fd7e491d6a161aa9b f9b0003864c45a1bd6ae16913893a191a84e3a668acc4237;
+  0000000000000000000000000008000000000000000000000000000000000000 2b9044f472d75858ecdd848314d77fdce1457e2592f0c301 43d58f6e6018414ce845d6f0439e3da1804a682affc943db;
+  0000000000000000000000000010000000000000000000000000000000000000 dbca593a9b0e47c70764f6edb6c56d3376b9238283f2957a 09fca5c60cacfcb3f619d4a0e8290aa5ac41ae268833b7dc;
+  0000000000000000000000000020000000000000000000000000000000000000 91067cc3d5f832bc169025f13007a81c076f7b4e52868ca6 662be1d3cf227224af8f3b1f188b259caf7a98f96ea5ee4d;
+  0000000000000000000000000040000000000000000000000000000000000000 db25b0d9490e8b9f1f0333f97c39c9308633b8ec7fa3f946 20d2f243d735ce17df2a5e204eac44bf0131f89ea3022b50;
+  0000000000000000000000000080000000000000000000000000000000000000 8ea3dfa7020dfa265e1cc90655357c9c03b0b72452678e29 68ed220aaf7e4a17405fb313516ff7c578864b721a309007;
+  0000000000000000000000000000010000000000000000000000000000000000 93bdbf385fe348c6d07699531c7a561c13a9df46d525f6da cb283d8e2aa1a1febda679e7f5205fdc640de904aef9be75;
+  0000000000000000000000000000020000000000000000000000000000000000 4b69e7fb03cfc73ffa84e5c65c6bd700bf39c34a388ee2af 32a05152a531443945643371b06d45a305316edcd947d003;
+  0000000000000000000000000000040000000000000000000000000000000000 b6b311261da1a1baa70220e4fa27e33ced8faf7adb32e83f 0a9f3a5a91aed1d5e4b8ec69610282a7024a7e45a716d5c1;
+  0000000000000000000000000000080000000000000000000000000000000000 b71f26a71fc24db8f4889bef65d37e61d7dc59033fc5e1bd e01512e22faefb287acd6ab9101aa5d2ec8c43a8f735e876;
+  0000000000000000000000000000100000000000000000000000000000000000 bffce0d9ded4ae6bcce91c4de155f8c1ae58301532feb243 ca5efb826a168f10d6557c89e6c1eb5f1b4cc0a35b813e20;
+  0000000000000000000000000000200000000000000000000000000000000000 9c9a0f2945fc39b0d54bf13ee4776de06f24dfda84129fd7 130b69524e7d114abea52b82e21a8c8303f765e4f2a7f6c3;
+  0000000000000000000000000000400000000000000000000000000000000000 9f6b78e1c714365f30d061175497655c699786134cfe7301 7c7cd2f726472c37b0b2ea0ac4f51006a2ecc76230c8311c;
+  0000000000000000000000000000800000000000000000000000000000000000 4d5ba85ad71315a7294e1d4e95096d8c75c63888523cf0c7 3bcaafc0bc4eb28d416c1221c46912889056b7283a246a67;
+  0000000000000000000000000000000100000000000000000000000000000000 169ffbc2d03c725a1d18a9e0df096713c75b111d9c88d75d 7196c4fc491d9daf5e0d37837b58292b5adbadabc3c56e09;
+  0000000000000000000000000000000200000000000000000000000000000000 86df511f9f74e4443f2ad7d74f3a1fa4d2b28a3d9999dc44 dbf891329901b598bcba75ff94e607e1aa2f00b611d44709;
+  0000000000000000000000000000000400000000000000000000000000000000 875e6c401e76b196d1d2bb82352bf42ce10ce7e1677d94b6 8de8a41c542c463133231b5fbef3a1d57748ba4938c55a3e;
+  0000000000000000000000000000000800000000000000000000000000000000 8e9b9752acc65131218c46d646fbd43e71521cbe2486deb8 f217aad9a1a809118dfb8cc4a944ff56ea4f4ee3d5c5a4ee;
+  0000000000000000000000000000001000000000000000000000000000000000 25a892ba62a9170cc64d33f69d748405cdc8b75e5a186ec5 2c84bddaf39ce4c915d9e56cc444b42959fb1066a5217fd8;
+  0000000000000000000000000000002000000000000000000000000000000000 16d98f5c6a33c96c07c50670755bdd424566b467d728b828 9b70051a7c787ceb6e10747ec4c5e35415d90aa18d80fecd;
+  0000000000000000000000000000004000000000000000000000000000000000 7d1d6712bf404c964535e4816ebeda4dfc6418d87f307dfa ef2a772b10222f892177aa76bae2b74f42505ee3d6202eaa;
+  0000000000000000000000000000008000000000000000000000000000000000 89cc6ffc4193da95bda068e4987d3f1abe833df0ac47364d c6793d2782a63975596026d1a85c4d72b885f30fa35a83c7;
+  0000000000000000000000000000000001000000000000000000000000000000 2777c0dc04f827d188a64a75adb0788af56e54b5d945a5d7 37e27d68d18fc12168fc3bb68d98f98037e49ff65a56de9f;
+  0000000000000000000000000000000002000000000000000000000000000000 a0f3d952b1e1e7acdb0b2aafc2eff69b52bacd40185d8bba ccfd8796fb1aee2a596f8465bf6d098f8122112364706ada;
+  0000000000000000000000000000000004000000000000000000000000000000 eb4f6c50d3a11a2c3757fd3d6e39288fb13e6441ec5a77e0 3958f05f650f6e20450bc2382bda126965ada30cadea895f;
+  0000000000000000000000000000000008000000000000000000000000000000 680ea24fdd9b5ad6198d0bbe9434e4c152204925f4fa55cb 943971637ae9b078623c5f3119d9331630be01d4f351fa9d;
+  0000000000000000000000000000000010000000000000000000000000000000 2128d50c30ffdf23c2c1169f938ab3367fe11ec5ad6ad6a0 46a602435e56ba316a9f87def69f42b53e8808ad35c8eb67;
+  0000000000000000000000000000000020000000000000000000000000000000 beb8971bb8f7ddc42f6c698325553c3beb38a4985c2eedd4 887d58da32d3a8b885a264de9f5f04d841ad06e3e7a2cab3;
+  0000000000000000000000000000000040000000000000000000000000000000 947aac03326b115ee35111566da4a4aa999c53072f4d7dee 3fc12e3a2a0cdeb0fa395b5f9c4d60423ecdd96dc94d4f7d;
+  0000000000000000000000000000000080000000000000000000000000000000 3ad8aeacbb33be1831a4547e4b7928a270db958a59ab4a41 b7051440f2b4cff36e2ee51677250bed229d1f3b3fab40dc;
+  0000000000000000000000000000000000010000000000000000000000000000 55e84a22e702e74fe5828b9e720f2f0a6dac2da703ed7c44 6b1b1a4037973bf400efe179988f01a4d21aa3a895964a84;
+  0000000000000000000000000000000000020000000000000000000000000000 d48c8fe1ee8df1cc7728b2efea817c9348c6ea7fc0a76dd8 d9930b8bed110a3b518e158049ec7e54e83a8df5c48b6fbf;
+  0000000000000000000000000000000000040000000000000000000000000000 9900ab77668862890db9efe96c1e1d0ca61e94e46d5a3998 92f6798a8be2253caacd819a98f4942d07a5b9587a71325c;
+  0000000000000000000000000000000000080000000000000000000000000000 3fa6c0fdaf02991e8bbe659ed38e141f7f994889a587dea8 88bc9c388840e358ea4dfce403794999f5d4aebf191966c5;
+  0000000000000000000000000000000000100000000000000000000000000000 880e1d804ac2609c84508ae75b6d090f57e261c4b25a8fa3 5df9367610afa100e7dc05b909aab9b79a15f620b749f64e;
+  0000000000000000000000000000000000200000000000000000000000000000 e7bc1abe6548101706da8d35d24ec0035b5889479d21ae14 80539f638ab42c24624e562ea15b9586f73a51c5dfa82d4d;
+  0000000000000000000000000000000000400000000000000000000000000000 f8318d2f63fefce8c72a897532fdab4936dd8f89a421bd9e 715c596960c968ac23a8ae166d4f8cca02c6df791f50a417;
+  0000000000000000000000000000000000800000000000000000000000000000 54d617544cbb775931dfb22c7b190d2747fede36a8c63f9c 1a44578dacfa67a2ad87fb828b5cfd5cd12c07be8c89ddec;
+  0000000000000000000000000000000000000100000000000000000000000000 177a6b4ab116ccb2a1390c5be3bf670bf23c0914ed49cdf1 6551c8d74bd1b569aea4910e1e1ce59b8300594c4dd6760c;
+  0000000000000000000000000000000000000200000000000000000000000000 4cca18e76594137af6584a5f9c3e122e1cbf7524284f61db 7c38dd607a85b8458cc24c0d2c812d305252ff9fdce40b6b;
+  0000000000000000000000000000000000000400000000000000000000000000 f5bac36969bb7e969d7a2ac19a0e3ba0a29ff4a39f28fc66 31e76fd72c327b0b313cf49fe388e4521cb5ee63b3854639;
+  0000000000000000000000000000000000000800000000000000000000000000 b4ea237052571f3e95449797f42e25ca9dd81a9fc9ee5b92 6bd11fab50c9038306f1f33fdc829bd0bb1ce16164e4e264;
+  0000000000000000000000000000000000001000000000000000000000000000 6eebc0044427136ca21050d642fd20487b299615f307710d c58f353ffc0b80a41f4b257d4ad67470bd02a0597e41b97d;
+  0000000000000000000000000000000000002000000000000000000000000000 941370b08fc699ce3893a7657bc7a5cc272f246724d02346 3320da23b13c7cb3b2aa0cb612ff6e112688bbbed62f91bf;
+  0000000000000000000000000000000000004000000000000000000000000000 2012899539e00fd22be39974e8b9a95103ca3f08d7b7b358 360fa7b71d0f9859089bcc7ab80a1edacdf24f7c0ad7266f;
+  0000000000000000000000000000000000008000000000000000000000000000 2695566216605d1d7c154a5edc0df59b46d4258d1f9d1c15 a5e00909cd4603756eee88d65942770cff9db5799efe08dc;
+  0000000000000000000000000000000000000001000000000000000000000000 8ab8a145a6721324f61768985c5591b0f116a6dc80d7e988 67c9272a30b616936c0e34ae081204ab27777064b18d56f5;
+  0000000000000000000000000000000000000002000000000000000000000000 5a70c1b66030a3f3c61705f85ba1a6418abd78235d783a92 972cca13b0c488fbb49d5e77b434f5808b15b482072cb6ce;
+  0000000000000000000000000000000000000004000000000000000000000000 2edb55f1f10a61234fe0e1cd9e63b05548d4ce162c23fc23 231d3722f824ab0cb382a195c24cdcce162f1332f357195e;
+  0000000000000000000000000000000000000008000000000000000000000000 44642dc3eb87322c5e65ed64a1bb0a18b3e00fdbe72b9030 1439dd14fedc630e06f8f1f5bf0d57b0cc4f2e439a45694d;
+  0000000000000000000000000000000000000010000000000000000000000000 bb238bbdc48bb1147b3f2e6daecbc9f6977e3122574068a7 453e15be3dce946eef8a00a20c51dcf3fb4f6cd8673d7fe3;
+  0000000000000000000000000000000000000020000000000000000000000000 8bc7447462a6f0ecb2d193b7bf9a11b7ae003f92d7c79105 7111c3db36af65236472f78419295f03aea8fa487752db58;
+  0000000000000000000000000000000000000040000000000000000000000000 37bd35d01167ef88f5b544646143b8237a75bddc537243da 133c38d07ed2c9e04ae76be61a6e680b6e1d978b35545512;
+  0000000000000000000000000000000000000080000000000000000000000000 a51c3894a7a4e782dfb2002294de44d92c3f2af45852595b 107c75f0c09f5ed0635f951e6424db53f59c0641b5819765;
+  0000000000000000000000000000000000000000010000000000000000000000 187cb054068fe812b4dc75cac75ca9634158cdf7ebae50a5 8917a89b453dd80408a4632e156c09fad61cd75e519927f6;
+  0000000000000000000000000000000000000000020000000000000000000000 0cec981a94574d0117c82fd800aead90133f41ef417d9acc 6ad3a28b1c229196f8b48e3d204797633d2e5255dfdd52f8;
+  0000000000000000000000000000000000000000040000000000000000000000 d07abb441ce36e16587aec2d79301ea4f6627258b6e6b0c2 fd998db89a3092aa02a125a45ed04b43e93b2b36d8a450ff;
+  0000000000000000000000000000000000000000080000000000000000000000 15df68297f9276cb54206a70de18bb80c99d85ba15179b1e 33c86cfcd569c36e07232758f848acc063e68ca17989ea44;
+  0000000000000000000000000000000000000000100000000000000000000000 a039f9900ce1255c31b1e64d2f85f738f9201cc115fe25bf df3ff6e818afe72eac430428983ec3fba4190ba4364b43ab;
+  0000000000000000000000000000000000000000200000000000000000000000 071025769eeea2341651e5ac3aa897f5a384f57e9c0e0ea6 6ce544625e8ef9fb39a61ac4f91f9aafcd25735cda762b2d;
+  0000000000000000000000000000000000000000400000000000000000000000 24dbf3be3a577701b65916080e5b5e84f2a301804be1c1ab af1b42b29b1ef57022bcb572c9064ca12e638837ada67b24;
+  0000000000000000000000000000000000000000800000000000000000000000 646cc91834869b1e901c7d3edd4789f31e83d2337d437962 62817637f7615e018ddaa3675ba8ec14c1a01121ee2f32dc;
+  0000000000000000000000000000000000000000000100000000000000000000 facdfff7a5ab4ab2486d0f23941cdd32a35c5663fa10f88b d9fd7daf17a4d48764e0e81044a41cddfc3eb8d8e42dffd4;
+  0000000000000000000000000000000000000000000200000000000000000000 1d13e06b2ecc897172a889f3b7fe33bce097131b819e3e76 a7fef4320b3dd891dfd838a8532af73306e5816c8719eabb;
+  0000000000000000000000000000000000000000000400000000000000000000 59eb52f0579de21b98ee5e0e122ed8b8a0059eb6c1586e7e 6a8888667e7accfbe4cc4a5c02a0250591becf265e1e25a2;
+  0000000000000000000000000000000000000000000800000000000000000000 97d634da2a01337b3cadd7110812c54e78306ed61137aab2 a6a710f06936e0ddaf2d7716115b9c54768721411f4a7d88;
+  0000000000000000000000000000000000000000001000000000000000000000 25d9753b7d0a4be2cb549ed7646fc516d62f5ccb257b2853 6a5f1f82253304904ab3ad83d1462fb92360d16d2c26224b;
+  0000000000000000000000000000000000000000002000000000000000000000 62e3412846e9ae38e5be3381236979ed5bc6f3d6a843cde8 718e5a848939d82f0e8fcf8598c574b93fba91232fd5455f;
+  0000000000000000000000000000000000000000004000000000000000000000 e8046488500655aa1340f89e88d16a3b65bce1c49453b135 413bb930cee3176d23ef5a60ea99176e0218435f30b0c392;
+  0000000000000000000000000000000000000000008000000000000000000000 1140fc28c552e095aa55b5f4e1abb023b7a325528aa39a06 1c93bbf8a8361c6dd32a358afc42a7b52b0234620638b478;
+  0000000000000000000000000000000000000000000001000000000000000000 5e893a4c964d2875747081bb2dafb03590eda9d69fcac722 f26e2cc0e6fc905ab973142f2e3451395d649be499a57a93;
+  0000000000000000000000000000000000000000000002000000000000000000 2d5f169c9d5da09990750f6a20ac243b7d1a2c936b22870e 28baca15256b91325d2a148142315038c0aad0a1a8893290;
+  0000000000000000000000000000000000000000000004000000000000000000 ef471ced78b3b474ba4f918ef5aec17d5a811f9bd4220cc5 028bede5ff1155c40eea5593c39d356cf3c5bd3b6bfeceb7;
+  0000000000000000000000000000000000000000000008000000000000000000 4d6f32bd8d0079c0ede08f304820731c0d7a747f33c27058 1c9e9f4a076f26e2b66d9f1219c73c7df378fd3ea8adbfbf;
+  0000000000000000000000000000000000000000000010000000000000000000 484451d047c9407aa59ccbc34d480221aa9e4bfada708e70 d5d6ce1fc36e1bd8ec713bc307d0c15ddf380c4196d72790;
+  0000000000000000000000000000000000000000000020000000000000000000 f4f9b9f35e6b32412a161541114fa27c7d5966ce21b0e21d 6f25ed9c061bed48343834019d2c31f3bdf1879c46b0fd4d;
+  0000000000000000000000000000000000000000000040000000000000000000 f64935bc1719934b058eb7df42b1d47517b511560cadffd4 4453e567f2d3f800e3380f724de837b3f6820767d65f0986;
+  0000000000000000000000000000000000000000000080000000000000000000 04880892f2fb65157628e3d8d337396b1041b3b3090a3a03 c4bb554612ace2be2d45814469ed56a70133dbec240cb2e0;
+  0000000000000000000000000000000000000000000000010000000000000000 9c430d512c19dea76ac752882c053a1a5b2453d5c94ec528 0c486c2b198106a867781b7f141271adab3a9c5151916060;
+  0000000000000000000000000000000000000000000000020000000000000000 7554eab053b88a3952022f170b17abf16ae78d2aff23bd2f 55006710ab71e526a0e17d929aa0cd53324dbdd02b52b890;
+  0000000000000000000000000000000000000000000000040000000000000000 c95a4e939210fe769f97fbdbf9202accea8b2b9da45e5ec2 cc05c60976f5556a621e031d82815c94d80c209662a98cc2;
+  0000000000000000000000000000000000000000000000080000000000000000 528ab49cc423fd5e7a34f48a6bde4dce12aae96eb2878afe 19eaace62afa283849a06f80ac1ac5a0a5c37fac03bd67ce;
+  0000000000000000000000000000000000000000000000100000000000000000 86f4c9a8e53f85d425e614c99f86b4c0e8ec670c5f8427fb 3c14aa694dd2945a8349fd9f5e868ba6cf3e0eaf29b03bbb;
+  0000000000000000000000000000000000000000000000200000000000000000 e12bfcafb63795d35db67917ec185e8fb56c3a61ce566f45 c36b9a67adc2138d71e7519f2fea5a4d09004501f0c5867e;
+  0000000000000000000000000000000000000000000000400000000000000000 7e28df915c919925f6d80dc84293a5d7930c0d300a3ebefd a10842e6ccf05ef7fd41f5fb4b2a2fe27034a0c65165b74f;
+  0000000000000000000000000000000000000000000000800000000000000000 aa59bb7a5ce7030c97628d43e6876fe1cc85300651a2c7e5 4634039dd81d444afa444b64581323dbf84c9f7b43100b29;
+  0000000000000000000000000000000000000000000000000100000000000000 8b77528e36178e085f63437c4f2883c9f21ec723ade245d4 e67edca626cf000bd11759bb5610f79e133730e3624cf843;
+  0000000000000000000000000000000000000000000000000200000000000000 e64c2de658dc859226d5739873708bf5b721aa3b3b61c34f 7dbe024df0a707a43112b0c4173ad0e8644de041ae587257;
+  0000000000000000000000000000000000000000000000000400000000000000 1160b7c6bd7dd0eba984eaa96e3cc1d94a963ff8fbc78eed d838f5d2fb9d173ac08bd8e3a81ef457fb7b47bad902eca9;
+  0000000000000000000000000000000000000000000000000800000000000000 9f0dc1391de894bc91291fad348268c9d410f1e82cd64fdb 5842b1fe604d0e3119d1f6eaa4ec50e64ff976444e470067;
+  0000000000000000000000000000000000000000000000001000000000000000 b39986283c5f05712a836e92ad466d5218525c384ef5119e 9a1d97dbd999e4c5c6358e2b33f1db15e070a6f0cd2d684d;
+  0000000000000000000000000000000000000000000000002000000000000000 15abb4af84277ee695555837fcd2826a443b9743373da402 2787dded00180872543f12481a725cc427bacb6da1f5b3ce;
+  0000000000000000000000000000000000000000000000004000000000000000 c40335a251310a01d640aba17a48fa3287f8bdd3071142e2 ab85b7b1fa061ca371d152ea6235f6781bfdecefbea86181;
+  0000000000000000000000000000000000000000000000008000000000000000 d9a8dd84d4acdc791717d3655bd73aef6558d893b9dbf138 98f411026dfde76d99fca6d2634646b23b7e77dfbac25b73;
+  0000000000000000000000000000000000000000000000000001000000000000 988e94cca4bdb852ed87ae49b25468784606dfc57ef3c906 840fca9319135962ac877d31664c7c36b24855cc51ce47d9;
+  0000000000000000000000000000000000000000000000000002000000000000 3ed1627ba05e567f7bb49f83735d1864d3bba529bd35f337 734151aae0dbd634fba3910cbcd35973767e479c0e458647;
+  0000000000000000000000000000000000000000000000000004000000000000 c15a3c80f0d76cd5060127b90780141b5134ef90db2e7cb1 c5d28005d9ce760cd28696590442864f685ff17a1c53fd5f;
+  0000000000000000000000000000000000000000000000000008000000000000 ec6ef9b380af1e62ddb1f98432f8a375352f0151403cea9d 8e59d1aab314ded632238006bbe206cf91d7cf294ecb186e;
+  0000000000000000000000000000000000000000000000000010000000000000 bcb14bcaa8fba12368d74d26db7b18c20cb21bd892fd7e8c b8ad3ef9d14f8fcee6cf57d391798ae415a5ce1da54bd9d3;
+  0000000000000000000000000000000000000000000000000020000000000000 98d934d852a848e780be772e717e3e01f5118544ab1dcae5 99bab3b08d0e0c3259de5720fc9579033c9df3d2039bc9a8;
+  0000000000000000000000000000000000000000000000000040000000000000 ffaa187f5897d94b49a34fd075d71571fd70dc2e003f0030 241d63d1d55b0a2a384c8744c7a02ac2c487f0310eb058fd;
+  0000000000000000000000000000000000000000000000000080000000000000 484c854adb1271af3bac4fed75692831666aceb63eee7fb5 9fcc18fbd030a927948af9589ece799a14b60c4354f3a245;
+  0000000000000000000000000000000000000000000000000000010000000000 2f6d0f464b3a73de266e19de9e64f89256724e3a9d3917ae e3993ec17d1dabc26b9f865c9f9dd80d2c4550033e4fd189;
+  0000000000000000000000000000000000000000000000000000020000000000 ff0313339bf1a0cb3aff0c87c77f288f36907c01a83f34e2 a265fedcf26d5b2abe91cd96130ef26d946cb6e97614c318;
+  0000000000000000000000000000000000000000000000000000040000000000 d3fbf825a2f92693168a472a1078ed2a51879db798a313d3 b526e71f32e4aa37a047107fec26427b1565f88f066561b0;
+  0000000000000000000000000000000000000000000000000000080000000000 e1c4e70222321fb8fc4c3574e8f114df1ea2fa0183fa0b13 185a805c0441609ae25e814e54aeb198ecd59da171ac7336;
+  0000000000000000000000000000000000000000000000000000100000000000 6163a0d28ce59bc781c6d5da47211a3f3692d83db589fe71 1ce5601786a13ac7630efc3f04119705475dd02fc25af5e0;
+  0000000000000000000000000000000000000000000000000000200000000000 ce85c6db0d0dcf67019ac3dde2b2da35cd9793d9b85b1420 e99e3d068ea56406ee3d0afc6380374ac4fadeeb453b17f3;
+  0000000000000000000000000000000000000000000000000000400000000000 62f4ec953b38cd2587715e58bf62b8fc285ff067aabd89b5 81332294ede576c635b4b61a9fa2311e4c639676cc5ce0bb;
+  0000000000000000000000000000000000000000000000000000800000000000 0c1704cf8cb55a5f8959e6ed35edee3fa0f9f3088b834cf4 7a95a8288e748b93f3c9917d043b41c3ccdae7806dc3ebd6;
+  0000000000000000000000000000000000000000000000000000000100000000 6b7936371d639cc10361b267541f4a12d3e4537ae1ef233b e483a15c6bbc497e2ceabd3a8e9a2908a74b6c3f276288db;
+  0000000000000000000000000000000000000000000000000000000200000000 5c21d67419a1cbea73b22a2b90f633e6b6f0db9b65237aa2 2389557052529c6419c5774b986d0a7eda24912bba4136e2;
+  0000000000000000000000000000000000000000000000000000000400000000 0d8d7308c03213e20809d481977d16cf57c3fa1e2de61338 616356c5044f700dde738fdb1996be80ca9fdd1654200ede;
+  0000000000000000000000000000000000000000000000000000000800000000 21b9871198fe982a162c183cfb77c6c2ab9ac0657d48c779 9d0e7710434783b2226e5cdc661a306c723c6d00510f26c5;
+  0000000000000000000000000000000000000000000000000000001000000000 1f3adf0222c434737550c6777f093e52cac6e91dece65e19 4a57a5565917d1ef46ee50d5cc78b309a4b0ec6e5b821fdb;
+  0000000000000000000000000000000000000000000000000000002000000000 498985342089b3f4c1e86277e84351d4e71335d2d6688597 bf19107f2ee07008b70f113e8c3be3fb0039a5389f81a261;
+  0000000000000000000000000000000000000000000000000000004000000000 bc5dfd576a9af32bf7362ccee37402e16444ae3b02acb529 f558d843112bf8c8607edc96db02e5680f5dfa23bb828dd0;
+  0000000000000000000000000000000000000000000000000000008000000000 d770d7ee2031be463f8d6645bf0baf4ac80f7f327d565027 9c99cce86dcd43cacb52808f38e5f8ac4ddf0236abd191a2;
+  0000000000000000000000000000000000000000000000000000000001000000 1c6ecbe6681f2de11f096d413466f96412619d6a64c4c0c9 936b33c8e802ebcf42ad2cd90844ae222c657befebf8daf5;
+  0000000000000000000000000000000000000000000000000000000002000000 fd8d0a05cf4abe962e292461718c9c4aba5b2e34a83cd261 9cc8717b1ecafc0f2ec0fc69baa3328fe8b59c0badbeed48;
+  0000000000000000000000000000000000000000000000000000000004000000 a67948fec6b4a54f364c4d81c989df7b50c67facb76fcc0f 779b734333064130e9a2ef7bc7a13461a36d4b5810705f57;
+  0000000000000000000000000000000000000000000000000000000008000000 f092b173c2f0e822600f86f105b30e29df110a023692fa7d c408c41a93ba2e2c8ee357eea1a9034c9ba2fa33bbbf7832;
+  0000000000000000000000000000000000000000000000000000000010000000 b639d3feb5d2142f5e8ab90ebb1c2ed67149b3d770e6e95b 203eb6ec91cc3e79963b60cc707a93b01932482e188ac6ac;
+  0000000000000000000000000000000000000000000000000000000020000000 616d4fc942dfb905f3d8d78a60000c82948e11e4120b76ba ad9fd4897e70d995e547b295741834bffbe8efe6774f5ac7;
+  0000000000000000000000000000000000000000000000000000000040000000 3d90ea21e4983abc7e6f03050e58dd6324370d38073d1d66 aa1cedb5abc5a407c7a4884948d523b85ab2da8a500bdee1;
+  0000000000000000000000000000000000000000000000000000000080000000 27e5f5297f4eec236385b72780d08f3eef62e342a4dc2eb4 db57ef813a15c307dc146ea8a282230617ba8cbc618188b4;
+  0000000000000000000000000000000000000000000000000000000000010000 1b3b6dcafff8050152e3915564817b3bb51c27783f6a6d4c b74166d5db954c6700c33ebebfcdc0b1fc9dfeda36190ef5;
+  0000000000000000000000000000000000000000000000000000000000020000 b8b0c699fb9c48709fc296fc386139148707833ac74ef94a a86927486f1259174dca52cf993cad83bd793bcc0e46a82e;
+  0000000000000000000000000000000000000000000000000000000000040000 23fe19ef6047ebf85f86388eff3047361394b13c6f9e86a5 38df864ba4e05b7167359f9c692061a6959746e10ec20df2;
+  0000000000000000000000000000000000000000000000000000000000080000 ef0f99b8a729a95059fe6596eafaa9a1ae90a6ee92bbdbb4 30d4f3dea309175b8fe1cf172b7e350028b399e93d77ee7a;
+  0000000000000000000000000000000000000000000000000000000000100000 889ec77dedc827e7de722feca720d9f17830833b2316eb0d bfbd54fc2ad50b9a1d637e2ab639c76a5eede932e5f6c0a2;
+  0000000000000000000000000000000000000000000000000000000000200000 a7ee997bd1a60469db95b8baca88b469f8cd8c52b96264de ebd90d0c90ad4c344ce59cf833c6c4ca4d79badcc58c689b;
+  0000000000000000000000000000000000000000000000000000000000400000 79d1acf611570aaf3b2ff44b45d1c3c3e15c549de6e1398e 9803c6358da02b2334d093242d458b96b7b55a71d53f6c21;
+  0000000000000000000000000000000000000000000000000000000000800000 cefd2261919f4bad56700e5399bf95cd14aeeb80b217de2c fb0d46d0b97ff328f3079d6a5d2fe4fc284203112820d462;
+  0000000000000000000000000000000000000000000000000000000000000100 899913afea54e8d18347b72a0405b93e63bc5d2490915eec 01a7c95244e6f268328c76bcfba054f3f199fdb453da9646;
+  0000000000000000000000000000000000000000000000000000000000000200 9946989097e162dc1d8bb4607414520911d64692b25bdaef 233336fdbcf4f9099c0d86141dbb76a2a70e1789372ddbbe;
+  0000000000000000000000000000000000000000000000000000000000000400 76af6500f8548fd568b411900264a473e09389ba6a2d3c6d 4686b8cefd4278061684173fe6879bb10bf91ae7592528f4;
+  0000000000000000000000000000000000000000000000000000000000000800 68aeb8c1901be777076905ad004af83a3ddc2623b8f5730d 5f331c5cb040652eba52941f6eeb795c3f35b4bb6c891bd5;
+  0000000000000000000000000000000000000000000000000000000000001000 78e7c6ecb0ae5240a7a492553cf2282515be3d4d3c7ade2f 43d15b0d0ef606a27fbca95d24a4733e8c5908b4892de8c9;
+  0000000000000000000000000000000000000000000000000000000000002000 8104eb3872d94f3f099343cd7b348de986dc2a4250088e45 60952fef975fb537d31396e942b9bebcfc56fc7e9e49c1ab;
+  0000000000000000000000000000000000000000000000000000000000004000 b5a45ee8558b022fc244634e703e41050b5b31ab2ef2d3f2 45512446c2fc266014e8ac1f54dbf3bfa5f39ad87c48dadf;
+  0000000000000000000000000000000000000000000000000000000000008000 114e56925e1c1cc6c8465055e8fe265515f4604748971599 2f339cabcdc7c7e6ace6ade98be07fac5a91e415c3a0ca73;
+  0000000000000000000000000000000000000000000000000000000000000001 3c3f5f198d897552e31c03f4c970a55b5281b124dcd8901f 06370691a79d760ff265ded0f5fd3f2ba9734ff45b5f1b5d;
+  0000000000000000000000000000000000000000000000000000000000000002 efa662998a5395beb6a77ec7feca60984a84f5c17606749d 2deb3741f6fd62fa7e97b96a0bbc570ab35a13e2430f5ed7;
+  0000000000000000000000000000000000000000000000000000000000000004 db781fff2d7a6923246691e7f6bde5b523091f0ac9b59e85 5b076e5a50adf6b920c4cc993dd5b1df0bfa1e1adab5b6d1;
+  0000000000000000000000000000000000000000000000000000000000000008 04f9a485542f7ea8e3cbe3d1a0b79665b26d654d264a5c3a 204baf271e9dcf5e4ad085c4db662fa8e08fe40c0c761c1c;
+  0000000000000000000000000000000000000000000000000000000000000010 05eb6d99aaf1a3ecc29a6d4cdf01a9cc9a91cbbfad271d77 cd6c5a9565d5aa2ec8711567511b035fb70f1c16c73f0aec;
+  0000000000000000000000000000000000000000000000000000000000000020 7751af9296162e9b5a9a29e95b0857069c6367f97f2b5f43 9d1e9f7abb841c47bd04c6a4f884265ff714e4b185961d57;
+  0000000000000000000000000000000000000000000000000000000000000040 59e005f291d8ca1e5c9d03b33a8e774e996f17b2b1ebda55 4cb8699d06114e66eef0c4c51d174c5b4057cb89b67c9005;
+  0000000000000000000000000000000000000000000000000000000000000080 d3cbf22dd88a3574bc3c2837961830d5501da31aefec0017 da97a6f09e3837bdb814cc9ab9d97eace4570a4b796ede0a;
+}
diff --git a/tests/rijndael256 b/tests/rijndael256
new file mode 100644 (file)
index 0000000..793bbde
--- /dev/null
@@ -0,0 +1,582 @@
+# $Id: rijndael256,v 1.1 2001/05/07 17:32:45 mdw Exp $
+#
+# Test vectors for Rijndael
+
+rijndael256 {
+  01000000000000000000000000000000 2220da547438d78787df21e47b1f6ee8da0b80a6e15855b3696190a83546d680 97f6e47ac82310cb4bf27f6a53e465482472ccacaeb857c4bea73de8393f9d55;
+  02000000000000000000000000000000 4233a90c1d6a641a3e9918aa0b52185f3234b39dfdfbab239d56ea062944a7dc 5e807af3f9e6ddf3d24ee2613cb93efc51b45fb29b30599c631c25913e29d44d;
+  04000000000000000000000000000000 4ff84be06635d949c9dad7d35ea6404da0cf9bf1ad8e883e49a48b7a6f6e6632 2abf1f8a2a52198ff5198c95fcf2cbe3743384d94de097c5e4e8bc7071321e27;
+  08000000000000000000000000000000 3e23c0a5f76517af09c537dcf8174b7deb28392cb6887d2edc4e95499dcafe0b e3d6ea9fbb3c585ea051253cb070cd6e0930596fb5288575c227f687836213e2;
+  10000000000000000000000000000000 13b79478bb2b2c1eac6db98971410692179410636355944b91a8eeb6960ff6be db5769532067b573884b6f95455f5aa8c96503f908ae0106a19de37bb7202b29;
+  20000000000000000000000000000000 d0ab58fbf551bb2764c064504b54e1a7923145286146c02595f1c65d63ae16db 70c8e29947e1295a59d9164f1f3ae4ab6c8732a9c2497d689975e4c30e88e75f;
+  40000000000000000000000000000000 25591f614cd0433158327dd3f9421942401e3c4eb3af7ba76cd27efc6f3a425e 3c2155c5734754426cb6e478c6bacc16d2a9f27e66313153270b0adffbfc9431;
+  80000000000000000000000000000000 1d4d2dc86a2943651790399a7acb75fbddc9fc034fc60c62035f10d928b27665 7d66d474cdc977cb3906d56f9f9502e8c0c117ef418bb85a6cf03029322ca6ad;
+  00010000000000000000000000000000 8e9933a485b81b96de4677b42a68a614e136e9c14fa7a2d15cce30e89feb0dd1 5b38c11ea50da022e91e0c6d303fcda5f615371253dc401b33c42137f98c16e6;
+  00020000000000000000000000000000 bcff8b9f37ec936b7d878445a85a8aeabc0bf50b2592166dc492dede4aa57ab3 b460abdee9466c2371694b626f46dba9608ed11522eaabfae3481542dc411514;
+  00040000000000000000000000000000 dd2bdbd069a66b6066a04ee05a32dacdfeaf96e70ee5d38511631e9b8b6edd89 0eda689a172d36df874dd9ee8c740571b494f0100530cacddde291e32e86019d;
+  00080000000000000000000000000000 297ae786d971865f40b14b5d82c78cbc0cea01bba73a3325acd8e39382a5f901 33168e79a5cd82c9f9115a8bde238e40c221ef77486081dbd1274a618bb43c88;
+  00100000000000000000000000000000 1311f4c894e10d7b662b8aba2c13c2a4adc23cc61e339fcf54c8a31763212823 ee9eb007fbfea6c1ebc726a3a5c5398bff6a771c336e0dbdeaf26602c9624390;
+  00200000000000000000000000000000 612ec37006b991b3097c357470a524f9dc7e774737d8d4d2d0e1b0550264e502 c236c8a090c328fb6517c39c569ff5cafb6a32330142e171409b0d38e69b47d5;
+  00400000000000000000000000000000 e9ed277e142e6fb4800433009b3f28f1dd6abd3057e51c8eaf0563b50f6d1a48 cfa4e8aa993d870e05c195cba31e7090e1552e298096e2dc5f159eea610195f5;
+  00800000000000000000000000000000 d939bd10bb683a502735d2ec60ab3ddc859698ca037276d58e22f48044c7d861 72136a66133b602a6775ab9d38f675585ecacfdd1e01101123180c229b016618;
+  00000100000000000000000000000000 36ea7c7c6829b151b61b1af64cfcf60a9edabc0870bdb152ec06edd1a4058087 259a3b8cb56be3fe7ea119f7bfb28629afaf5aa99efd9f2df3dc0ec5a0788572;
+  00000200000000000000000000000000 62cb21f187af4653a3f3fd1c669fac1edf16e041cf4f398ef9f28c53599cb7e5 7b34ff2be3dbb4045746b2944153b9fa9c20b6d3e4c9744c1b5f3d34ad026fb2;
+  00000400000000000000000000000000 00b85590ed64beead48da75a428c6ff3cede0d32877638d0a7d72e693d1faafe d950dd539de8bf79ec21578c01e6c6ef1a29d9be36cd79edf5e5306ebce624c1;
+  00000800000000000000000000000000 b0c5f7f1410c6c168bf5513b1ff397b42d1f2001ad13b218993f13de55de8df2 2141234d5e8fe993068824ec84fb0d3ba455ca99b94ca29e5c90847d8ff85dbf;
+  00001000000000000000000000000000 444ada7fa698a4c2b673b7c5e7bf3207d7321c264af82a897c0f6ed49ac7ef84 bc1cc633391a4aaa59f9ab8d02054aa04c19369f481951ba15c25c5be0c1d243;
+  00002000000000000000000000000000 7d050ee397d0fc4ab3d0909533602cc33ee98b062609856c3eff17e561387bc6 cf0ae6e263036b6c6f42057c87d0c57e82c87418ea56b43beb0091ccbaa96f75;
+  00004000000000000000000000000000 da89d0ff0e7e8e963759657e42dcb657baacbb8c5bc8199600504f1863efd0c6 8753e799d573198d15185575cd25c306d0c4e4d7567f6aa033db01e9af491d4e;
+  00008000000000000000000000000000 cfd3365cb21aa6a94e481b8750c986e542a322473ed6bedda1bbf21c51d79801 b7618bbc981cb7211ae20fcb91892dd5b50d06bcecfc8e306d2f32d4b4742101;
+  00000001000000000000000000000000 5c7aa812b63e9c8f04b2687fa3158716ad40f5b19f3c5c66ac192289f2304e4e 799bbf582a3fd8a254651b96108d0378cec439444f99493744fa8093e69541a8;
+  00000002000000000000000000000000 9ccb7bafc9e10bf85d07f3f1e5ccca23a59d9e91db978db70cdbacb0907949c2 4d48e7e67f8fbb448b8fad3a38f95d50cff64f0a4d1093c8a25ee547dc396e78;
+  00000004000000000000000000000000 72c2735f5c6d375f415b7a9e41bd03e5284a71bfd87c692c4d712f313dcc44b0 3322a5c340cb9aef854b4c9f934e80f7a1755858c448ce8bd90e113d16a3f7af;
+  00000008000000000000000000000000 49acdaf88978c7c0cdddb18172b714bcf0e6851193132cd88f31729b9a0579a1 5deb631a57cc2efa0d4350b0674d10ab70a93d84b204f89647fc8325ae8c5ae0;
+  00000010000000000000000000000000 58c288e11b1a6a4dd54d8cc02c6995dac835a9f90de19bcc1a27ec347f8b5a44 7f7cbfbdc49495dfb58916ab433fd586dfedb0de0b0286342bfc94f99ad9270f;
+  00000020000000000000000000000000 bccaed777c7d75ff21786ec8e02f92bd604746ee30693b6fac169dd57e2a551b d0ab2d7a72be2cc116b3a7277e6b13d6f6785b1f5d20e6fd4c5e6df1e3bf7961;
+  00000040000000000000000000000000 506d5e595c55e79b97b6314667fa3fd9d8b892121379abdba9603ddc491d4ca7 57cfafa543d1e05f133ef3af65ccdd1e867ecbb68c8a76a0a3c8908dffd7648b;
+  00000080000000000000000000000000 f33911743ed4df2b6d35c4efdc9f10be98df68e8f0eb6959d463a890a33a77fc d9c51b41f33abab9769683210cba194d63b036ee5cd5e1d7a4e22339f104db45;
+  00000000010000000000000000000000 575698c70af318d8acfb205b2f000424b2327813913016a7ebdcc9fe6aead15c 3d78c320b1eac2e17938623c7ec95fb9ac8dc998ee5db59307457112f10ae72d;
+  00000000020000000000000000000000 157bfdc841df2c1e3333dcc5c57cf1b2573c2d3bb9f1db93f576f4d2db47aba8 a38a6844612a7a85c0271022369efbb794a99a235faaccb1e977289d5111fe9d;
+  00000000040000000000000000000000 6b785624d0dd701413825c2387743e65ba9bd10562565860e414bbbefa298e99 44dd2edb8f850af241526c661a4c6d6a50b2b1229ae47c69391149dc928a9262;
+  00000000080000000000000000000000 3db0a1e99a1f0c6762822bc8594868f924ea2ec22c94a4db369f0a1a931824d9 f2314f4341da3103f68c60cd2f571b8980a344617e6d67e85b1c695467071557;
+  00000000100000000000000000000000 fed7c4a36e243e1f0f5599dfa9dde71dd8d12024be7672aa0c20fe59f09e94a5 33556ae239c9c932eb20330e5c0646e1c06b9d35fa7a03afd501588d6bdb3f8a;
+  00000000200000000000000000000000 6f591b8b75ff275013efdff9993c012d859620f2ab2e4a3bfbcbc58dc1d1ca43 8feb1516e1de2043e72928d9e4301377ffad533ab4f276e46d3d3b45b2df2376;
+  00000000400000000000000000000000 9c5658f40fc1964455d2453c5261f8f33cc2376e9fb81317f57720e020bcb3cf 51f3ff6e7832e2696e6641fbd49b820bb8d806a30fd329b3aea038bb0ba12fe3;
+  00000000800000000000000000000000 06453c2ec7a47290a1f35add518ac2cb283f63ec3ac55b15b1a208e7d2428ad7 e98c2dac62c2fe262116148efe235c3df14896f17168d61712818c3cb84f16c1;
+  00000000000100000000000000000000 dc99223a4ebaa2704cc280ca485d502a76945ebe07a8440cbe828c7b19a60a22 02b87a1f7e79ad216f237c933d3a7042b4fb1a7b471d51241f6c2a5bb6a6ab20;
+  00000000000200000000000000000000 b6d5c8b1772e86fb56aa30815aeabc65a4335c6d6de820270e2c8b475099e23c 73debead223e6e4b2912814a3f2a82d55c688b54b16b99179ee17614249902c7;
+  00000000000400000000000000000000 855740684d142eb7c52ee77846adcacc74addfbe3f308122cdfaf4dbd06d527d 189e9cacbc13e70bb6097f695b4d039e1b5c5781420566642d4afe14d80d777f;
+  00000000000800000000000000000000 5e0142c480aac5f26f04697a81e03e016f67272732ad08afc94f468d002bf1fa d30f3a34cfa8d51f20a9bc5ab59615899a36c0aec6cb5206f533f3b46a416a7d;
+  00000000001000000000000000000000 17b1bc69fbbbe3aebff491b50696cf97e3b48184e81ceacd549eaf69d31e02ef b554b97d6ef8ed05774b73f2a0f84f78a5af2a4eddb9f156cf1561cf466c6d8d;
+  00000000002000000000000000000000 070a93536d4e44befebfff979eb6e19c64805dda35ecb2d2f3b518332f415752 ed7282eeb94177c85d3943c26172b867e7432e9656e8fd2ac0ee061e6820dcf2;
+  00000000004000000000000000000000 24399d7566e75760b69d11f733354fc080935847dbd8464282a8494d4363e8d9 ff37e4ea1e9aad6cda88333439bf11075874c0435c1e16d2afaeb6841eb38095;
+  00000000008000000000000000000000 83d422deb38932dc4dd515fca8058b9e8125c9faed7d60cc60d4ff2858aa506f f5e42bbbfbf0d0e75f05c563e88433bab5683bc55a5a89f10c3e7aeafa2d8c45;
+  00000000000001000000000000000000 8d28c29715d8d0fd8d1ab84a6a19a1f40b86c2557d657910c8fa42a4b382142d ffaaba03c31070ec6e6f79d34ece13d2db5f4b0da75fccd3ba771f51399c7c3c;
+  00000000000002000000000000000000 1c40cdcfad81ae76b547c625a00e9c37cb09e93a8c8c9cb3eff0d1818ae3d4e3 0034e0ce5c4279347d1fe1f1fa12520cb5c74106da7e652a28d833298123f6ba;
+  00000000000004000000000000000000 3cce495540b7583cd03bb2c0cd9abed4c555883710c70e9b8ff4458c84da96d1 331b8a37f000d16eaf525dee810d1b108673e199e0931f61f6da7e181d53869f;
+  00000000000008000000000000000000 5e5d71eeae47868fbf2547223c1953b6b8d01cb018d74d44090e7eddccad1576 919e79d16250ea1ee28a9ad3d2d5d77fc457653e6a70b74f8f9d9cf60ba74da8;
+  00000000000010000000000000000000 d8f679837e9cc5e428d9892756ea9bff3703de01cca3566ad504885b315e2dba d82afc1dd185396be18c7a9e8d4fdc39b09f84b352672aefdd69dbb58a72e465;
+  00000000000020000000000000000000 67efa8ad486928989a3a96e854bd1a7adebb61ced104752187031368b434826e edc96a4c48f103a3cebcf1784cec44de457a5313662db2a59fc0ea32a2dea867;
+  00000000000040000000000000000000 dab11289a6972fdad0bcc8d6908a71a97133a87c64d6a2e3e527d1f98cd37ff2 43c22c2b973105d5fa3915e0e8f2314eed5a357d817236f55c21993742e5e72b;
+  00000000000080000000000000000000 c004ef66d4ecad355f2eeb3ca88d48745d7e5db7b4c43e3082a057115437935b 23cacc517d50fc55cbdac28685adc15b7f91b405e34bcd4f93062aa262a67471;
+  00000000000000010000000000000000 64ea8788a2983c24c252d1d97a13548d821fa26fdc88affd9a573ff4cb4b993f 081cdb7c45117207b5970470e8d138ce82170a4d92651a8ed5ea8f6cf2567329;
+  00000000000000020000000000000000 e178357ba9ee8203c8af2690f0c73baf59c1b2f1487ea6972fcd55bb9b4ef1bf 02cafa40b460bff6855c305eb1932ffbbdb5489dc5359fa42f81d460e2ba1355;
+  00000000000000040000000000000000 80a5b1fc47f4ac173858054f8079506ace3b626dd1c97e65f94ce75007fd2a98 60f52318f6126b1c4f1cf5e8267de5a8805e5805ca364379e0878649455e41d4;
+  00000000000000080000000000000000 3c8e458fb1f435f2c55dcd2e9e7f7886ccb36b5e0f39d91cd44bed4277a77d2a 372c336c8bd68f0deec6896375accae91082b26884b352a8e8e7ced6bea710b1;
+  00000000000000100000000000000000 294693b8ecd01375a6cac10eb314ac79cbd95b4251ad153fc0d260a56edefca2 5b1c944fa7d2c464c26ef89329767b2259bdd1eafc0bf7f26a141e5fc3a27483;
+  00000000000000200000000000000000 3b8b239c16083bf30e6c356fc2a105dea8f4e3b04ebeaed6322af9f419cdd5a6 e04eba4915691bb8fffb306e42e410b4a66f3b0b0791b61db2a8041721d33849;
+  00000000000000400000000000000000 6a30a1b201b5a0338105295008143eee15b6dc36a6cdd1dc8b87af6768acb13a 81fd79683cb8c492aacd6292b2473e15e29cd80fa49003af7ecc78389d0eb96f;
+  00000000000000800000000000000000 b42896b7f8f81ed407f74fe4c6ae2cb9d22a176ad7e0f09dd58b72a8f92d78e0 2d3e0df855f8ed2d917b00967e6a8aec5e0be44b2540148a6840eead3ac66b63;
+  00000000000000000100000000000000 4896eb586b8323c24b66ab78d74b0e4191825d80032596cf0a160222996a5c85 1b0f0fb74d7fcbd79fb7ecc3fa26146519f0791b92b347acf606908afa1bfccb;
+  00000000000000000200000000000000 a701ed8502beceb20f4951602c20b35f0f55e2ce4d28d8e204166f5382cb2062 153fa4721f6b8a26b8b6de6ccdedb3d4fcc536dcc1066444f532c869a81064bf;
+  00000000000000000400000000000000 4b93ac85344bcebeee881bd5d4fe578837b1315d58f01d60a44592334559cfc7 471f35a827fb72d2698c37c3dbdb6b747630b1becd7871af8e85ccd73da4a2b9;
+  00000000000000000800000000000000 e5d31b5ea65b8cca5da776d39b890916d5a82c8bf418d27ab06105f1ae66ba5c 563fdb249d85bedcd27f9092b68c80d3654aa6e5c0fcef92a5b8fffc3223a1b4;
+  00000000000000001000000000000000 8b7a69511d69d943baeaed96564a9b8b9304612872c366580d3914c4eaceca3a f185f96b1ac23a4537138ffeae9ab2e5355813e9513736f5bf7a04ead82d420e;
+  00000000000000002000000000000000 ecaadba88f785c6a217600d37477108d622f448d3c6eaba36f74c81b3a3b5552 c72943cc9e6b1faf397abc9d0c2fb2e23fc7a1eda728872f2f98a1955cd08513;
+  00000000000000004000000000000000 dffa867f7621943812b058d2b9ec3be57425135c2d2751f5d2443bb4b0fec37e 12bb6db84d31cda67063b5d2bf9e215125c1e57e17833f072c01dec63661034e;
+  00000000000000008000000000000000 81099ec3900d41a3b06bc2c5323d185c7ce14b63c21fb8cfb88fb321b3f073f3 cdc4ea4d6985166aa3ededcc9f166e6217d0bab8b18611c8467ee3582be1a68b;
+  00000000000000000001000000000000 cc5dc294551805e8e6d43d9cc46e87a0da5b97dd8b07c30b29041b595001e1ca b2d1730ae76b1e9419d9c54748803b93f214686a6cfec8fd764f552e8f8321e2;
+  00000000000000000002000000000000 1865129385342c65cd440cfd34b385c2045c5ff80610e7f5f67f5f517bcf3c3c b258f03d0b996f2ba730163e46cc7b20d87c6b9bc1833315fbe2ec559a2766f9;
+  00000000000000000004000000000000 76cf4d5ef9c6bf31f029ea2a7ebc8beb27a66ddb0a8e4551861f1d393630c14b 98e92a21edc81fcc3d21f363eb293ff61f2fe2f1f75985d97c0c960b8d370c2e;
+  00000000000000000008000000000000 018f0b66dc7444ffe06dc3e705a7c137a933e22c3779021fde92294bfeb8eb20 728dd824549596eea0dcd5c3aa458e5202752451970d069f92bc4b25617dc51d;
+  00000000000000000010000000000000 8a298b208881be7ed7f6be3c3d13e1183cec6bb380f0a4eb4f1ab05d8f518e54 05aa4c329995c114b843afad3133e4928933d0d5732a4c5f0d746f3b2733bd92;
+  00000000000000000020000000000000 799c7052b435b8295ef1a95f25b1852a7beb00272cc1e9ced2335013e8945fa2 7abf5b41529c9a752063cb2b124ffe41893199c1e7767e9a0de6dacd78b88336;
+  00000000000000000040000000000000 1d88a8fbc92f22a8d2d9f43e72bd385700f81fc669370ab9319a7c95211f76c6 d368039985604a35d07a5afd211a1cf764dc2190f93954036dda17a7cd4897fa;
+  00000000000000000080000000000000 8f73218842afc37c9cac102a435d430302630b4a1e53bcc795c17c58266eca17 cadbb8939bb654741056ba7ef4436835dbc5d705db095773126e32a8ecee0204;
+  00000000000000000000010000000000 b733abd86aa3f9892bcc6387bd394c9db2c78dd97e60b0823036133d254281d6 58544e86b177d77715b44aacd44950dae48cd57f47f5b78fd185c58ddb4e83d0;
+  00000000000000000000020000000000 547f902092e6191b3a66dd651f78cf271cc34c60a2ea46684dd66d5eb73c6360 a51c3c29e5e1c693f5c495bedeec712c3e87a7d4f03ca08cfaae1962cbe5880d;
+  00000000000000000000040000000000 eb2f8ccfc7e202261d403cf59d721e36cc8d8b244e7d02c24d36578dbd5bdec2 391288088c20320a3352072f6e1a2b90277abe567d2ac62d2520a6bb0dd18a47;
+  00000000000000000000080000000000 1a59f444b4a70f65526fe40b8fd5c5e5a75b2fdd8a54d998c7ed5e07749658bb 11607629a926c7991542498026f0463b7049bd98ff716045fb4b296587d8c52c;
+  00000000000000000000100000000000 0d4bed35f7f2d3ea57109952fe235ac356eaf9361fdb5cf70d325cc92d193e4c da9c1b2021b1dc74357256d8f82bd0b896a6ed80ca79198a674c0f61763236dc;
+  00000000000000000000200000000000 9854c195a8e71db49de2f9ee0d594297f8cb2340e73a976c63720b8c1f2d41be 065fe439fd103947d5160f2b90fe10b0434f8e19412c95d1905de34b1f952565;
+  00000000000000000000400000000000 2411d154443be53970f9a5d48890d39d8e85f5de7b21a109f5f408e4330d7013 fc5507b1b175a07df8fa850b944efef5d2a61341b5dbba799211d0b18e7bf882;
+  00000000000000000000800000000000 a05e1405e9a7534afd50567a87be5b5fcde7573c7170c99694f42909bd03ceb6 934b7b8a367e75bfc312d4eff794214a89c48043040e063d764e5a6012d38b52;
+  00000000000000000000000100000000 1b5bd606644a1e57705ff4f3536f2a1c1809b23437a25a2ded59b5fd044c1932 7df473e246c0999ccaacb2d1fcb052717f775fcd59dc6cf54d09b883d07f1555;
+  00000000000000000000000200000000 b264d0f1cc8b60510433a03828928073b25097dbcf37f19b41328a8ab75592ed 2fbff308772b466c650797563ed5a6d8fe46180ba6eabd02948d10d00a31f25b;
+  00000000000000000000000400000000 ee74c64364815c41664253dbd0e6758a5afdc2a18efd5eca69ab487204dd6dcc bdc0cac9be58538c378d71f0a8b6dd01ed09f843b5548881f24f505033891b79;
+  00000000000000000000000800000000 e2c79aef485f6c063291810e31837abbbd7ad054534b030ce795928ed28e5e8c eda7eaca72f00173b0b43003f9fcb052b1e9583fa20c5fd0a185e468ef13fab5;
+  00000000000000000000001000000000 aba0bf49c2dfcfc0c51405c687349aac2e08236ff0eb8963355581a611775834 92da3c24a3c8a7cdb113d3fc5ad4ecdb6459eeb6b66e6a10b10b5ae44756a20b;
+  00000000000000000000002000000000 2305d578669c0dd53738da8878f96340cfd9efe9ffc0631983a4f31beb233cc0 0925cfcf5abbadfeffa2ef5466fa58ebb24fccc465bdd8f2f96c8d81eda31a6a;
+  00000000000000000000004000000000 32bd4fafe61f37ff9d9e9b58db094c7c0b6b7eb8fce22154fcb958b35b17135b 9eff29d15bde7d444ee43dc7ef31908e9bc2663236a7a05e59d8762ac24b5a0a;
+  00000000000000000000008000000000 735e7c1906e690818eaa799d8eb8d083e591ad9b48379310df914d7f36eeda2d f8cd0b7be1e70ae5af9c922c21206fd00cf434b346ac1dd7c2599d5cc2e4c45d;
+  00000000000000000000000001000000 a63551090274b8faafc0e5ff9fdce4fa0e9e2e8af1341cf878e5139ff0b9158f 1dcdf8c7685153f6e99d74eae97a60a12395195e1c81af6a4fecc3fb1406b21d;
+  00000000000000000000000002000000 7635a3b56acfd445be7abdda94fca3f88c38c095c4fc052e69cb0d655e2066c1 280c10b0b003acede84bc10203327d22d9670364771cb2e61d52a9605f5151a4;
+  00000000000000000000000004000000 bba6f71000eb98efa0025c5d857298873e4c5825b3e455683ab8e5e23b91fd14 61b59daf258934e7dd3d6eee0948fc21870d76403fbdb8f0d3c841de156e756f;
+  00000000000000000000000008000000 5f94573354c0972c85d4aa736709743b0d6225aeb72254587887d8bdc26d62ea 1117d1a99aa148761331590153702fed8968c11b789274998884d539a759b1ae;
+  00000000000000000000000010000000 51f2cb8b9027c2b54e73117170c7fe436f3846f194b846dde79d8d8bda47cf6b e8650cce9d7e62d74ebc529a381dadd2a6b77871f36071683a859d6c586b4d2d;
+  00000000000000000000000020000000 5b268ab121bc1afdc58d308728a52bea04684edd6000f245690cc1313bb348b8 b1a51f18ff3af4f724bc33e0695f9b9215f9c869a1de432c33a744ae824406e4;
+  00000000000000000000000040000000 b4824307ea48587ce13c4c5ef32d05285372cae3a6c181a504a027ce24806e87 e48fb499b6f6c44ca542ccd956562796450b1f592e0ecb53fb3f3b0765c51446;
+  00000000000000000000000080000000 d5230a6b4bbd7cf01e3e8cd0c16cbd5ada42fefa3036257660ef1f2b414cbc55 707130828f1323f5dacb599589e998232d84e81360fd69bf219869906c184e59;
+  00000000000000000000000000010000 e399550fa0501ad6e54ef89448e0afe47852c1a1fabc0dd96e055756c40c10f7 edf7feed15676306cb2e17eeca659c1fc61664fef8c8941169c45b7e82c94ac0;
+  00000000000000000000000000020000 e370920b49b29b55018ad827b4346b239bbfa8f11d820a787c5d2ba4c2b7db99 f95b52f78d38e516ee01ab87b72c98027d2f7d15dc208e79cb8777d1484e3f04;
+  00000000000000000000000000040000 fa51b382b8f08efadc1dbd398b2a021376b57227bbb483971917d8fbcc534e6f 1849b0e0148b87880712df2b31313428da854b41407a4a8871c924cbe2223207;
+  00000000000000000000000000080000 454c6ffbcaa5d5dbad0af59e47246be3ddb51698392a5d5e45b40328e87b00ac 84f1a8382ccf08ada6cfc585e99cf7bae22b65ae4a218f546cd7ce86d67caa28;
+  00000000000000000000000000100000 7a057404f7a3dd62a9fbdcb462aac2c946531c8a2773e7fab66176005defe7e4 5e9da403e46c35ba6a36035aa756957e07dee7099d1e0c995d2a401bdd967051;
+  00000000000000000000000000200000 a1509502fc6cab2dbea52630a7cf17d4cf9148a3de8b45ffec42a6bdfa98b52c c37960792142488009b7bf1324a567ebd74e84f92894d8337623dcc235e2119e;
+  00000000000000000000000000400000 15a3f4cc4f0cb6ee382a89ea535f2215ac6eb2b4aad450f824761d5948f48f81 02b49f087f364e75c2335df06abeb4cda11dbe4364570a4c779a3832e8354cc4;
+  00000000000000000000000000800000 604e1280aee591a8c7742800d5325ae0bfc7ea4243a1195543411b020acc6418 1349016e01362043ce233c0a595299ef8eae831a4010908c4ea7a2a49615bf8a;
+  00000000000000000000000000000100 0327bbf69d406ce10d727b5108c3f9e63b3bac3bfd12ec0a59f07004b31ff8ed 392fb6618aa96918bd8ab2de91de0722754fa4bee6854660c4f285b8799fa88b;
+  00000000000000000000000000000200 f17d38d8d9d7e6e8fd2cd2973d3a60a947b9f66b2adea6da05d060f2da8d68b4 f8579552f2097c6d79d429cc92fbc7bfb5f493bd452f8c31c9beca6120febed2;
+  00000000000000000000000000000400 3e146946416ff8f79f41ce0283953e7a4dd7a621b46a0278c9229c9f01c92bcb 06e4d2068df7b0fb201e7801f10cca1f5c7969cd0897f0ba4467da41d5f5d2a9;
+  00000000000000000000000000000800 c707396bf8c4d9d7f4fd41a1c245c54547110252a67e700f49e8ba05233242c5 e7e3021ead113571539c5caf7905938f0644436c4e5c198cea4383953dc55650;
+  00000000000000000000000000001000 d10b49f4d18566f2588c83fb577e7fbc8a19265c7c201e924a627c1b453abff4 78834e69ede809267525f80950084abc0e317b99598a2024345c004b59ae993e;
+  00000000000000000000000000002000 e6c61166b649ad839256bfc5e0fd678dc8e422b7600776f39a93b115663eae88 7e96c2dcd29618cc5f4b66fcb85fb9d3578be7e68dff2b77d3854e962dc6a813;
+  00000000000000000000000000004000 f8ffbf963074b6f9c6d0964aebd0e5436f5d5de95941ae6220a0021be7bb471f 8e4eb78642822b6a24af447bf03bac3065c95b093be67696623295c4b6acc84c;
+  00000000000000000000000000008000 97d6c46271a2205b573238bff3e9d8e2e4ad093d499e128fb44b55125beef478 840c1307b1dfde60b1c94e67f766a0746684d299c4860fbade957b4f8eeb4040;
+  00000000000000000000000000000001 a5713c5cf22b763d5aa7f15753d2b7861a78883f9c59a88d5e2f1c582c8f8a54 6d0ed56cf92824dc93ddb502eb5ca3319126ffbc478be8703b65b7dad7d04836;
+  00000000000000000000000000000002 4b6a6ea157efb61ee6db10691312ca1ee4a815bcf63549558247d1a7301d8c8f 0c927591360aa0e527ceb26ad2b64c371a9b9ca58b2eda456f7c853e9c0aaad5;
+  00000000000000000000000000000004 6e500cdce31a14f44ed3f38d2156ad6d2e2e5965ab06fdda8e6021ae93526c4d 1e2e9656ae7d03b43969940be24875b05c3989faa43c5b8cd81147259fb28356;
+  00000000000000000000000000000008 75f5fd618b09298a05c917f5f1cf0b6401ba9c11c92af2c1591defd8df48e7c7 aa020b5e4282f62f28e4c7f3072aac140a088ed78bdb79332a6962b5731c3318;
+  00000000000000000000000000000010 2da400b0a33b40d1240548fe232c5b0060f81e72dac38ccf94b7d7b621854ad5 7296c6ccbd9e17893257b9a8c08e37acc2ff08957828b01bb4b981a42a7afff5;
+  00000000000000000000000000000020 8bd9cbb7c0ec1071e64741eb1d23ff3e3276697e18003999c9b52edbfb20a815 d724cc24c3c1b6da77d00e31ebd6cf6ec369827e4626168789f2a99fe3d3a203;
+  00000000000000000000000000000040 9ead0765de183cac6ce7690b08e02bed11a3a5eca048af1e1f8c34b1d119ff66 70269ad6bcc731f83f9a053339eca96242f6f92f69b51e6e87e777afada0cf44;
+  00000000000000000000000000000080 0b9322232692a9889489d2ac7454946ca572ee6532555fb1880690b3fa16c96a 63cb0866f368f10f3e07d3f8c479fb2f10574eac6f5187bab175b14f7ce5bcef;
+  010000000000000000000000000000000000000000000000 b070c14a61ff8e8cc6c2c0effd8a5a645028fd9fb7f3948f01ca71a43eafd687 3040f9a9b1da8e090e40fc47eaee4fb641e18cb62d74baa343a77deaf74783b1;
+  020000000000000000000000000000000000000000000000 fa76997b859488e3c023a723b0902e076d6e93b150e2c602f8c4f9548c369057 20560d713a544b2d639476c3b364d66141f3a52398b7402d0c5a2707e13dfa8e;
+  040000000000000000000000000000000000000000000000 4f2f998ed6954fd86a2150a5805cd827791d7f5d7988aae9eafbc9d43ac5c8a7 46516ae231430cc34436b8da56cc5b7f03bd59eb872e53be0b3d3ed2527a73d0;
+  080000000000000000000000000000000000000000000000 618008ce42bc33def757b147352204e55ba9e5ae1466c990bbd66a5fa712d71d e5bf94a3857a9d14e044cbec8b1e45f8261dfab76907e9ecc023fb343bc33035;
+  100000000000000000000000000000000000000000000000 ec455723349fb79fcc3e56fab09000ad8a0a7f566eb93e8c5ef8a9a47505a79c 74abe230c2e12151bf2f01349f2e7f8b076f92ea2b10a70056953f733a539911;
+  200000000000000000000000000000000000000000000000 29763c5e1f9b73620b44d39a84916e57a653c2e1f2d25166143942c82d1a0529 ebe6ace5f51e7b2497ae1e8929c64d076ef5d129c63c15f35f4627cc3795f5f0;
+  400000000000000000000000000000000000000000000000 ee8e5125aa88b27af9cbd89a9f3697e47c1c0c49ee3eec068bda765fb78a01d7 a3c09c958f55ead1125899ba5b16f24c075fb0db26b7fd2f9761261491230ddf;
+  800000000000000000000000000000000000000000000000 2b63f6b935fa7721745a6ea3b922e503892ec156a169d9af8dec2001db04f578 fa0fedd2fd4dd1be015233c0234f454baabcd17074ee9b11ee629e7fa86b4c14;
+  000100000000000000000000000000000000000000000000 5a1f2b9be8a33b112a38fe7c879c12068e61820160cafdb6bb01288e5543ed0a 15bc32348e02d2564f928a9f3591bfb28a177e6f8056b5c6f9d922d507c24e6e;
+  000200000000000000000000000000000000000000000000 b1b9f27b82d33674f537e7061de47c368238872244144e70a4ad30294ec976c6 c6e4da96dff553fd5687e892fc858b6185011c167b4e93aaa7a1e38e8db0ade5;
+  000400000000000000000000000000000000000000000000 a4859cb522c9dfb89c12d2651f9d6424db22172fb69ff628a001abd3c6a7c1a1 86cfc89cfb7971cde7bf0ed0173642bb80efc52f57985374fcb8275f7c7c0765;
+  000800000000000000000000000000000000000000000000 edfe4e72c74585ac0cacaef02bd75ca0c4831499d2439eeb247bc789f53e9291 42cb6e55b15b3ba8a88c93bf2180b1aeda850971660917e5859b6feaeaa516bf;
+  001000000000000000000000000000000000000000000000 fef2cc919040629382bf5e14dc5a5a32425311a74ae5525e9288b5fd5c961e9b 5193b2b9e839ef803d6c70c918e45eb3a28816c418d1da3ae44430ff34c1369a;
+  002000000000000000000000000000000000000000000000 52b3a8fa078b425c32fdca8162a64524269ea3d60c341346d65697c59a9090e1 7ef136c59590943383c5b803ed6fc625942284f03f7345a4cf6d945bc0a30f69;
+  004000000000000000000000000000000000000000000000 6e8009762516167e867a0a41d6daa15cd80336e6aeedbcbb6b07110b3abf4137 3f6a42f931cb08ce98d7a6a8a4b556087020548902744fbec7416dc816512fe0;
+  008000000000000000000000000000000000000000000000 909553ca1d0e99038730b118a5a34ea056a6b07a60c279b4a9d3baa9b6d15cf2 34ac81fad7290c783e352dd8279b7845790ba35f255f0fa81b9989f3fd6c69ad;
+  000001000000000000000000000000000000000000000000 5b9152afe9b2ceb041014e24272ce155c43088f9ee93cfab13610a872490e510 34ca82b7997ef4cb7d54add4d8109982f78153a224bf4a80d024a9b68b8cb5cd;
+  000002000000000000000000000000000000000000000000 25f39a1d08a6621cb15a19b2fa260259230ccfefb968b6d8c7291ceeda60e6f5 58750cdced1e6898c3ca18ec59c27f344a8b2e1d94d968cc7cdb8af80ec78a22;
+  000004000000000000000000000000000000000000000000 8143ab160c5b5b23f6c0a90486ff87b45c4b94d2259f24718737e30ef5c71ea1 2daf1f3f89be1d7a019ad94fdf640e3136c4cefc1303e887a1eac93e6bd04b6f;
+  000008000000000000000000000000000000000000000000 f4c9cd23bfef5c58b6ccd08694aa630f21c7d1a32e0404c5b2f2ffa2eb073521 455216dbd43fd966d959d965e6724cb334d60a593b93d151757f388d82820609;
+  000010000000000000000000000000000000000000000000 132a4f42a54f6a154c4d9e09f26ed34ef9a372dce051b7d02eb4b0df063d5c7d e47ac511a39ce650ddc1dadff17bbf176af7d1c912baabccdcf4591fb6151741;
+  000020000000000000000000000000000000000000000000 ecc8833ae8ebfadc8925fe4a59537524c6381fc9370932b86023dafa6c81fe67 e8cf8507b4d1aa35e0e75e4fb00db3083e68f35c63263c9684e5af3ecf4f7d2d;
+  000040000000000000000000000000000000000000000000 85e0c6889d3b0919422f351e7fa96c1b935b47db002c67d6c9889abef93b4c18 97412a61160938fc0ddc5dafb721c98d12b6a3f41d1e61c4d26cf5a709a33a93;
+  000080000000000000000000000000000000000000000000 a8f8a0659b1613164043e210500827985a45f6f6ff834bb7539f92a02f059e1f 361f20dad609bad09c0f09d925d8414a630dd69e94af31d8e0739a73ced9a836;
+  000000010000000000000000000000000000000000000000 8cf76cdba49be4eab5c0364d045cd5a8473e456ed37c5d035dc931213f284112 4ab7454002df7895d924167de3dd979ad0e3dfe475acab3a9aef8844189b5bf1;
+  000000020000000000000000000000000000000000000000 4d71bb490aac8639870e926dc10693f4fa407ee68d8467ca1c8825ab827c428d 2084a072dce7ef8c4bbb5490570ac9a03619cc7c73c6bfb1988de396c91671ac;
+  000000040000000000000000000000000000000000000000 f9a89e92f495a84cc3e654bfe2d22fc99e3f37c9cb296f4d3d10dd77d0c5c90a c44393fc32023c96f4ecc3f06358c531ef7ad679fe5b85259e6d640a8b73fb1c;
+  000000080000000000000000000000000000000000000000 35036d3733bdcf01e580626af9839d8e3e439eccc06f5d529821052916cab776 11fbcbb20585f0a192b697acf172424f0a7f9796cfaef29ef00946fc49c07799;
+  000000100000000000000000000000000000000000000000 5248e497236439dda7999cb39610f687d26289aed25df6e1e82d92456442e663 dde0a7bfa6d1e876cc4f35cae206cf08aad615d4e908bf014f0cfd34661309e9;
+  000000200000000000000000000000000000000000000000 b70df72ce58de69488a987c8c9002a9ee5936f4478c3f732d79c5dbb5ceee590 9040de17185d82f8676fd1179cd05c1ca4174682a5036487191c513630012e6e;
+  000000400000000000000000000000000000000000000000 dfd57b023e6385fa874faaef6cd1cca07dc65bd2385708427fc7381832f762ad d2585574d610b35da07417e30885f8083666c24423aa4b5a5783dfc87af8e420;
+  000000800000000000000000000000000000000000000000 b98a433ca4c524bda1abb6f4efc8eae907295c83ded731e56f629b7743075e3a a3effe1ca4c32f8a5f0f4358219cf24c3fe2e821f2ffb2526217982f3987ac00;
+  000000000100000000000000000000000000000000000000 a4bcf3ec68b5c138aea5d32800ca3ed160ccf01f36cf10f08c6dc83557200ee1 e08cef5a7ebccd72dff2c38c7e024a9438c0b8f75e5cddf8ac69e1912777a9ef;
+  000000000200000000000000000000000000000000000000 1c413c55a339133eecd75778a323801e44e2df49c99ab99fc80fb4b2c4349f87 e2d55fe73fbc1e7a3945c0d768db69a15472fce8f4b1de21da74d31d5d246ad0;
+  000000000400000000000000000000000000000000000000 e40c62d7a4946cc3d755a6bb414a3093b5f48dd33029eee3e75494fa77dd3052 08a207bc66de3c2137355b00d0991308224618724433f236d136fb0e18942ed5;
+  000000000800000000000000000000000000000000000000 ffbfb058d1b99294f85ce2e4518e0fa8e3340d53cdd872c4dde8650fd403a690 d4467dde32cdb016f4bb235439c8139ad47922b7f9d84cd3ea4d421790c3d520;
+  000000001000000000000000000000000000000000000000 45c190d687338c193d1b3f2bb17564736b590754770e39766296349321676296 1839e826595f57b31961c74b3ef82d018af97a76ccae38102b8be35961e9317a;
+  000000002000000000000000000000000000000000000000 1eae8debc0ab33d8b36d35310fdbcff1828cc10b9032627e1c312497add7005c d90d913afed0544259cd60f91885dfa61964dbb7775d80864a044e83f21674d1;
+  000000004000000000000000000000000000000000000000 65a2c2c4ff38501a60c68fe2d20044d77a1f6241d8d851d1c092335770fcd7e2 8cd14b599a751ece5b41ba1499171b88a1287c8d34672e19feb1ad46e072e0e0;
+  000000008000000000000000000000000000000000000000 b8c2a22a84e63841035e2775c5d03a641a12e57de58c6af24cecc2854b7e18f3 5403927984855ecd970b2c142682588f580a8b6fc1fc0fae34c68190676f4bc2;
+  000000000001000000000000000000000000000000000000 aba5d7f94ad67c0ee5a4d7063c1cbf2f039941e35d481ed642140259f2a14959 3b6aae93ffeb039ee58568f2b61306cb043a6a12a892c18c9984ce1963467d60;
+  000000000002000000000000000000000000000000000000 6dfd1386f9dbcb78cab15d04c53b3eb9f4ec320e51181b71c1eba57186d734b3 26ea6b30a3f3770f1867cb0442ff3355410a5a019c519cdea3089325d2f14e50;
+  000000000004000000000000000000000000000000000000 1ab2a00a131c715e801f641a64ddf162c8169865869414ec6272599773d7e512 232e88a17aacacfdedfe1222ecf2f486ea263d5bdef2229293a9b2fcbb6fec88;
+  000000000008000000000000000000000000000000000000 2684a14cd2745ffc9229a896efa3d026750cb6c79e37ff03c79e7944d5ae6748 f56ca9121f8ec32b3a1592590aa0a3f6a890fa27cafa50340a7cba68db5526a3;
+  000000000010000000000000000000000000000000000000 db18d1ee5f43409c9c9c2c4979e8420463c928573477beadef1ead1d2a12ab7a c7cea21ccccde4d667c375ace1430a9de517d3fcb48c2a472aba1885f0cf5254;
+  000000000020000000000000000000000000000000000000 227aa7c674fe2643c6d2e7f40dc1d96fc0a187eb694482b8535f454ee6a65b2b 3c50ff286989f9e3b7c0dd086724a1dc82403bcfb5d10f4f92a26d6a43088055;
+  000000000040000000000000000000000000000000000000 764af8393a7c0bfe443e552280fca704cb1a56c51c6d844d877adf7722ead76f 6594612770ed24d56eb814116843481a535b83c3adb277eb857d90558451b027;
+  000000000080000000000000000000000000000000000000 d232886076fd0ca74995faec4e0f7eab0d53236e6d87b0af0f86f59cd625bcc3 2d15dd75a286d446f927f28a35a0e0c143c2a354e69152496cd7045bc122e23f;
+  000000000000010000000000000000000000000000000000 d45a22c575df3413edad2202414dc2f83dfcf3b2d38a831b3883a307aae02049 3f490831199ac6d581d41505f38f7f5e0820e141d266eab051ec13f84033b20b;
+  000000000000020000000000000000000000000000000000 a583acd806932ec9338b829d7b3e293a24e682ab5b7a0eba9ee92847f22e3286 d7800e4527e284a2f1be04719401314097dbdcd9ae7f12a8c5e1f5151ef27560;
+  000000000000040000000000000000000000000000000000 43c2ad9e0db85672df4e498ff89862c93f386b128c4eebc66744cc319022724a 7976fe8ec7c9a6f9c006aba5aa14a97949251bb068ffe780e6329b8dd689543b;
+  000000000000080000000000000000000000000000000000 a15284602e456c804aa9e181b5ae1b2f7fc4bc284ac84e40d93fba3c445eb7df 9eefceec5e1b0679a2e1f2754425daa7f565957a22d4a82777d4ae3a113ae0c2;
+  000000000000100000000000000000000000000000000000 9a48ae1ba0760908cdf3ad1a35fdcc950b0860bea9927a85268bc02eda591d70 591b9f338d6f10c24de1c2f80e6c6624d77ef974310166ab77f0189c3f989412;
+  000000000000200000000000000000000000000000000000 60d5d506645cd7e9cc8ab8ce1d9ac395a0a7dcb1efd9a1559eeae71e76a6711b 9bf60086d69683f691fea0212526e53228779d6608c6a45832c8f155c1501d96;
+  000000000000400000000000000000000000000000000000 567ac033fb411010d0f1fb8272a769662aa0978a69591f21152dd4a7817bb08e e086cfff53420d15f5375a28c985c664719203cbbf03b14c9f24bc9da62291f9;
+  000000000000800000000000000000000000000000000000 aa9aed3dd2373e6d74b1b80ef10fd22cbc1a7f8e50b3bb3d054e6d8660becae3 223382691b90a6774c52d406749d3a82220f38641e1b2da08b0927191e704b7e;
+  000000000000000100000000000000000000000000000000 7327b608f28ce79ed1d84a0be583c9f91b14ec7958413f395051e72ccb968d2a 1ef747feaf318d4cb986ce28c54f9b8e943c19a6b5979629204591a753c3af2b;
+  000000000000000200000000000000000000000000000000 d1b3a1b1bb6cfc6a852336727647875f86ecf5dbdee590674596cd71750340f4 25823d3ea1537be18261aabdf58d73478e8a3ab131872e22d32f2eaf9f6c9884;
+  000000000000000400000000000000000000000000000000 d00919ec6fe569f24da6149021622243e80e635bea3d72f7d2edf54e2bb90a82 b54571ff2c264e62bfe26569ec20012ea86df48faa09d057e0e099285399bd2b;
+  000000000000000800000000000000000000000000000000 43e8964dc79785d472e32457b9215578c716367d05a7f1921641742107efba05 c0c3f2aacf66292076519deccf2eb2f0508eca6d82b6ec9aab74a19e8379b159;
+  000000000000001000000000000000000000000000000000 85636ac383e649305f9de7a47a9aec1d29cf1ba5af118df4b90e671239bdc97f b805f05a19c68ac29371da5ab096fc7865fc8fbd701831503b2bfc4a044f39c3;
+  000000000000002000000000000000000000000000000000 599f9c16b33903c0261a6f5a9dc3e59b248ed1fd5cd7a480e38aeca8f4d1922c c0afd8f7f3ab274e470c217d6eb6a16178cc52fc3a322c4c168c0b47fc43675a;
+  000000000000004000000000000000000000000000000000 bc923dcf24ac32001c2f78da2522576eb5fde1649ee0a68f26ab20261edf8447 04f821e2e7f1f164a02fe8d98530a23c724a84873977c1fc266ac607da0f5501;
+  000000000000008000000000000000000000000000000000 30ea8be2b32a07d8884940ed06f467d227c15e3aa009acdaf13b22b3f37dd7d3 2a2c26f5b24ea5f835b2890dc28df816c59b10783fc05b112bea4d11ae0fbda1;
+  000000000000000001000000000000000000000000000000 82eadee43345ebf0e541e418013dfbb16958966c624113922e88d298b1d35dec 80640f44b921521a31b6481fd20f8145733edf16388345908a83031afd60a253;
+  000000000000000002000000000000000000000000000000 bccb32e72ef1c01b8836210f866c1709d918c36a434da5792310d21869daae6b 19a7e7123d3056292720cd24c955e664f57c914171d44753d9a060b53a34b276;
+  000000000000000004000000000000000000000000000000 805b7f390f50cc1c9d9a011a274261680b79a747ef25ea63754410913ef88135 ec33956c5d72b09a7b38b01bcc933ffcf96a22b48a9241b2b30971ce5772eb36;
+  000000000000000008000000000000000000000000000000 8d4130c20564a52799a8ae34a653a437306b8103d0e8d7358409036fe31216f2 aa9ea39ea277b4a637f2620848015075321a287edb833dab0f2578e25b2bd0bd;
+  000000000000000010000000000000000000000000000000 dedf1b5087733de113ca9ba05ae195e43e49666fe01882846007735938bd0dca fc71289c2a40894b839cce9c2d141475465fdfeeffd2f1ee5784f205199ea287;
+  000000000000000020000000000000000000000000000000 1866a1d5e7e170ef2dafab2092922c600a7c0eae99a769cc24c6cf1bc2510a33 d0cfef4d33134afad4eea45d155a5740d58aeec827bebbdc7d51590dfbd875b7;
+  000000000000000040000000000000000000000000000000 878e534a37ec400f0487a2a1a5031329d36756719d7246361b044135392309c3 60e53065b003c346784f590819e25164ce5bef3ed18f12454edc55f048e115a3;
+  000000000000000080000000000000000000000000000000 9cbea8fa50eb78d69695db722abcc1f337b3c3474722609de71f69a271cf432f ed4f9406669b1c33d2304774d07fccf77bf5cf91d9da3008b39018b3517419e9;
+  000000000000000000010000000000000000000000000000 58e5ee5b38777c37b06bf93a786b1e80118ce7f62d4a52fa675d1906248baf2c 98c141d208e3574f3a4ea8e480f100c720b734302acf525549ed337054cd47a2;
+  000000000000000000020000000000000000000000000000 721b89cc4f669876a3946a02d3bd5da05934f5edf179f7d4838c4e6eeb0ca7ed a34af9b28d44a0c6601adb9217734bd00863c75a88354fb97ef556d61690a66d;
+  000000000000000000040000000000000000000000000000 c2e26c94a64fc98f56f4e23c8fb20f9d67af061a4cc22db85210b8b44a277b1a eb711ee382f33130ef97ece44de591d991ad64a4a91f0c173e96038afc50e1e5;
+  000000000000000000080000000000000000000000000000 2d9785abba9dd67781c367ea49ac2c216aea2881de126a187bf930b1b3c07b65 83e4e7fb0955d24900b59bc7281bf71c5d5eb351e13cb5051a80b0a1d4d6ce8e;
+  000000000000000000100000000000000000000000000000 7bc0d7fd79994310a6e44df4737dbf094945b67fb6c62e6ef7624ac4bcb42ec2 1e76e92379430ef6659c1681fed31ce6efbcf213f2bcee3655cb228e384150ea;
+  000000000000000000200000000000000000000000000000 789fe9f4e6fa35bd1bc6803b9e8b5786d20a2d595b78cdcd2d2cefce8df2c2cf 619506c9a419ae039d23543d26afb322c43aa5c42b3bf6fb96f8da212d1b6d05;
+  000000000000000000400000000000000000000000000000 16188d6dc1496bff0f9980164bc11729026ea7ec0fead73c2cf1e7c2c8ce6176 772338645c08757a538817095224b208e36152fd350b970365a0c95a843fc39d;
+  000000000000000000800000000000000000000000000000 b402ec08167192c56893921e202691fca8af21d36f7d057670cdfaa803aeac36 44e679d955c5c78b17a13b8572a2e8a11a9fbf20512257a59503c4c7f541bf8d;
+  000000000000000000000100000000000000000000000000 d7b996589082ce7e4c765938752b39e5ec43b425ca487ddb4b99e4eed6a1b7c0 e94c26d5c7cc47e313e0a28ddd4897649eecac30d88a600645202312b4be62ee;
+  000000000000000000000200000000000000000000000000 2e0e95484b38e2bbd718aee89bda7bb2758450e5f3918deb87decacbaed8e158 7f2a33c65031e824f7421bbec98c5d258497a6c1df207dd5a3ff44b63e618dbc;
+  000000000000000000000400000000000000000000000000 1f2f5415ac68a9abfbbdeebd4f0de1a7d0390419994cae5975a4e4288134e0d5 fc0dcea2f0111a1b006fbbf4b997a40ecaa6aac393f694721a46b7148bd020c8;
+  000000000000000000000800000000000000000000000000 25dce9ab9012e2e2047aaf6b5a12cdfcb341509acd9bb4ffb2bdee6d52146c92 782df1aa97676529144a4572e22050d3dea010c11a3a88d52e28f920b8cbbdc3;
+  000000000000000000001000000000000000000000000000 c876772f246b74afc46a61db5497b217ba1a94cd4b117cd32c822bcc9644e839 8a926eaa395c33de830c83b53be91a528e97e80b465925a0b85afe61aa77e9f4;
+  000000000000000000002000000000000000000000000000 8d8be40e70f8f64bab39a712f4754860ae95956a588328e12eabd274c99f986a 067da03cbbcf8900fcd6cd5769f5f0012a81fa1d70a0a42b0d71786730b87f1d;
+  000000000000000000004000000000000000000000000000 8b40b683d61334f2af544c1fa03047bcce751ee7d4ab83bd19daae8ea7415a19 cef3c48353ddd84e64f6ab2c92e211f01bfb094a4d04a046a8710bfaaf8a967d;
+  000000000000000000008000000000000000000000000000 2f5a0beafedd7a946558925d7afb8e9547aa08857820122fce3ac2f4748a0f74 0bda7f1eb60bf54f837dd6ca6045d548e77e2ec1ca7b69161d5167b83e17c57e;
+  000000000000000000000001000000000000000000000000 50f581439acf97439886885109d49bde3fb708cd0ff03abf09c86b804a47b853 320d7bf8016b079a897105793910e82d4bcf1ff94d6126ba7e644b9532fdc7fe;
+  000000000000000000000002000000000000000000000000 1d4ec3e5140191f08e33cd02414981f25bc16f50f73a4f7f5b6720c9617113a5 525fb133a005510e25be40186f5c8d27ae41afb32e43113872d1766de0cd9ed7;
+  000000000000000000000004000000000000000000000000 98b8881a8848f96c735dc2efd5a1011cdd808e759825ea14498e6eacd7e52e90 82f5fcc9b627b8a69d2d2ac17cbdfe5d199ee518f2014fd44e37f1159aa983c3;
+  000000000000000000000008000000000000000000000000 14bf577a4ee61692561f55a2dbd6a99703b784022e57f5da2d76cb865085bddc a4de12b45c6d8abca37baeb97a30f80ba8725d0d66fc5d7b4816572e7ba1ea89;
+  000000000000000000000010000000000000000000000000 1c0f514d28fdd6e031e0b36cacbde37b11515bd5e161e285563c2f5ed2943f64 9b0ac005ffeb012ca210bcbadee68cf7d9221b67888bb8c925910fcca2b08826;
+  000000000000000000000020000000000000000000000000 726b4f5ca3a73169c0984a50c8bf97a3a3791ab6ca2594958c115494462e699d 98e26a7234da3257db2f125fc674ad803c180fbfb63a97becb4f72af1be57033;
+  000000000000000000000040000000000000000000000000 9896b0b96213d08b1e91b9ad03d74ab515cbddcee4420f5e2d6477817b56b741 95bbaefb6026e3d7b1ccca40379b5994bb7a87fb92510c8198b16b40bf113936;
+  000000000000000000000080000000000000000000000000 d6dec82608ad6858ba74017d67254947ffc1d883e62894c85489a3b7c8331c72 913208790b6ee0096a8ef610f2b622339ceac3c6be87518acc594d6ccd41e3c8;
+  000000000000000000000000010000000000000000000000 ade085f289329a1944bfa72680bfb825d041b1303cc93c6cd71882bec88fc5ec e6037e4ed1926f282f6398405a26c72cc8b505d5c54ded3bf7e91c30c1399482;
+  000000000000000000000000020000000000000000000000 769d9b725bfde354a6d53e213b62b52245d720fe4b33789aa605ef88eaaf8feb 14eebac816dfc943562737067531fb15d113a54b306d3c863d8373131124d9da;
+  000000000000000000000000040000000000000000000000 a391625fa2a8265270a7c37014c560f50632b241ea7c77c0b2b75a3af661e4ae 918b32f95cb006a373429bdcfb0b0ff62866829628b505e837c1dbbdc974dc76;
+  000000000000000000000000080000000000000000000000 293902ef25a8d2342245a287546d6ee59817608c4146179fbad93000085e29ab 9b8753bf9d7674b63af4d8869a137954bcd66aa4dde3da4275a8ff9a2b6fc5e6;
+  000000000000000000000000100000000000000000000000 8864f65f59472fdb161ea5e1c8bcc0d54f6f96138e18bbda437f365762fe0abe 10a12aa196b3cd116f15ea3811149fafe518fd131449e08010c0721e6fa19b94;
+  000000000000000000000000200000000000000000000000 bbc20d2ad0663c8029aead1ce8a24a2e9321977a68f076aaa53292300bcd1412 764489f9dc0e6891103960c3006f99c717c06b52b738c62ee08be107c69fb43e;
+  000000000000000000000000400000000000000000000000 d2fd81baa662ff57883809cd3c88daf686bfdb1641f0cb346043b93faf3bb894 5bfadbba33e9641baf2bb3576f8f320c0b70455059ee20961bf85fe221430d4e;
+  000000000000000000000000800000000000000000000000 12af126e937b47a9cb727a689bf6e321d4764468fc4ca4cc4f3c9e4d04baa18c 8f24da0cdcaa67d2f525ff9869e53c9c9797d4116d08f9a65efd9bdb83447058;
+  000000000000000000000000000100000000000000000000 91585aad170a72b2290daec2b609dac137a9699a86b89c4c35efde17b7748b42 669ccb28d54aa0e54e83d48f0d8f4fe74ad9847310e57fc01f812235ef771cc1;
+  000000000000000000000000000200000000000000000000 7c4002485801b930c6a04fbe37bfb9ffe8bb891e85f283549da5fa0028989172 9793e70c3d042b8560ecfd07bfb21466ceabce7a48f49de5932cf328bfe8d101;
+  000000000000000000000000000400000000000000000000 e57035b8064ef576132186771887eb9e7c25f59b443326319d6c0d548d432d0a 4923fd19c2fd8d29a6db26d3ed083b281ffaa1a782c6b813326cbc59dddc0f09;
+  000000000000000000000000000800000000000000000000 703463806b65805378debb8eec4a9041e55465c9fc304757cb9582c8572d9cc5 fa421d911ae20421afc4956915998e240af08a3f2a782720a2230c3972655ae0;
+  000000000000000000000000001000000000000000000000 eff11b5000454b1f7ee00914bcc27e602e286d60f0a74ab459f94ad806c19c76 8f5e5e82aef0183ff4332581d466bce82a0f286e50b62c278e924830efb7ea77;
+  000000000000000000000000002000000000000000000000 5e15a7f575768c707e46a640e9de18921ba62e7609c2e26466c434584b04748b 73c3730f113b445734aa305eadf72d88b21576aec2df6cf7dc22971df98c961d;
+  000000000000000000000000004000000000000000000000 67d8bc7ce218f8c90c314874feae2b0fe591d47eeb5bff762fbbd2663ec6919e 15c580083169cb707be827051fb2fbd148381fc7f60b9ea1646b1880b5e2c8b2;
+  000000000000000000000000008000000000000000000000 7c73ceee766c1ef091a118856c65dc00919200f8aa9ac34478794d93af56ef78 bf8f31710af5c2983153ea8db680d36740e1f35222ae3746d23ec8dd6659e2ab;
+  000000000000000000000000000001000000000000000000 64869b8ecca6bba8b8f6a4f026d6c8e20a0283510ddfe9d796e256663de19409 df6478fac2e2e1f484b848e6bc2552dc4ddd31ce2d46d6d1b3e7a570466fba33;
+  000000000000000000000000000002000000000000000000 d9a9efa01ae3bfe4506462d84a99ef3dc35726cd1d3cd4bacf8686169ad27c94 e52ef6a0e115f83cfa485f6504fa1583e9ecf8d9826b9654644c154191e96122;
+  000000000000000000000000000004000000000000000000 e148b77dd3d6da2ebb5c4d20676363ae0aea8bcab008091b11b60ab987b1aad3 9a82390a00df51d5ca2e9faab1bd8128978d7d74ec4bf2546b955230a73b09fe;
+  000000000000000000000000000008000000000000000000 3726abd6f3dec8389b7c49d75b4abf1e29c2a8654dc02ce9fa5231f238dce0a8 16bf08c34f2bcc7520ec07bea9226146c08b297daac2b84584cdedd066a7be7b;
+  000000000000000000000000000010000000000000000000 68bcf5da8d905e470e26733e61ef1aa76274010d8371160a7bb10ad3f3084909 b20159f299876eaa509e4601fa486e62c42e02b4766281611a302a4a579c229d;
+  000000000000000000000000000020000000000000000000 b3ee4957b275e1ed697c04c5c8971291bc128e6fb1297008b5456517853774f4 c1eac06a378e1076440e9b958f1f69820dd16b77caf4a2e75477b7bc4b1e84c2;
+  000000000000000000000000000040000000000000000000 6f0ba3458463505b708e335452b2a9f5f0bc1da612e09570aadbe097f8dfc407 1360290139d809ca99e93d8de123dfdc55bd690873dc855550f69b278e0ef5a2;
+  000000000000000000000000000080000000000000000000 c96148df6954723ff47405f6b0a84e57ed6a2ac9746cdb3b68440902be2c481b 6bb5c60185c54e558cce3eaca9953e59b0c6cbdd7f0fd1c73efcca4e8c84c708;
+  000000000000000000000000000000010000000000000000 2c1e1d517dd58ceb5e9740455546b0c718edc99cf68f9abd9c17fb1cb5611f4b c83c8474a21cd457fc9c33d9b65c63ad06bfb6592dacb16e89bdeb0375519396;
+  000000000000000000000000000000020000000000000000 140e11170e13be7139db226835ee675a6fad6a5771de28206164d68533398f53 b8fa6a0ec9609789aea5818ec775ba3f5abb763b6ee1af06d0ecdcaecac5cf7b;
+  000000000000000000000000000000040000000000000000 fb485abc2147dd3f775f65073fc137e2d86c6290a6d6ff3b193373e9ae00761a c73daa21898757e72a698648e164b3c752f56ca39e509df51d6f4b925eb8f12c;
+  000000000000000000000000000000080000000000000000 186b952d7956cef2d49a7b46ec1cf54fbbb56f1e175c1b9dbdd3e43e4717ad08 8dd8513a9752d6c2d307c0239a8ab7da1eee831807d89c7722e082f3363d99b6;
+  000000000000000000000000000000100000000000000000 4cba50b9e070b07a1f36adb1210db345e09b313e25454f9d02051ddcc9ab1722 59f19ee858c98395d00e06213e0cc14faf35372091daa5012ed8ef6556491e19;
+  000000000000000000000000000000200000000000000000 fb50486873548eec54efc82364de61052b5f3baa7e89dd3cf791bf3367f06063 039bbda35656c1138baced5f44340bec0bd6f7d4aa3b6ae18d45c8e36e2c4668;
+  000000000000000000000000000000400000000000000000 7ca86c3bfd9225a0e7e225b4eebf258c5d8d9151a2a00fbab0b5ae915e0e3cf5 eb11c7bb21ebb8d645c1a1299791d4da7a3028be35b61c183c1cebae0e70141d;
+  000000000000000000000000000000800000000000000000 9122f97b74a1da1300f759c5b24bc359357abe8a6783d25e368b937a3dabcaff 76bba987e3de04ad28612b72aaa5656cc1c22fabfb23dd00aca56ee9c8022121;
+  000000000000000000000000000000000100000000000000 42173ce291c37b47e3ff8261fb9a368a9a20e5e019ffb958067ac0d5fe752107 eab12e3b069ebca91651ef41457fe709a7ddc2d2b27b08477f43c375d3d44555;
+  000000000000000000000000000000000200000000000000 4f276d7e9592b56e5bd793116af535809aad837bcffb2b6e12c9a9cc2b875db8 17988d33ed74656c602ba44abef0016efbd5bc8e655d9b8af5c06cfa04fbd09f;
+  000000000000000000000000000000000400000000000000 eff5c11d321fed85312e03c86e926ed7435f27430c1cbe4446a1ee373b3d9ab3 8fb0db7e7a9e4c038530929e6095251184053ede0f2927fc45f6ccefcae32c5d;
+  000000000000000000000000000000000800000000000000 1e77c48488c39a63e98c8346e81852545cd8a3bcf136f7a223ac0f2d3c1c30ae 40ab5fa09d72620fa0681176ac5ff115997a8b555edf1d47b28a93035adbf477;
+  000000000000000000000000000000001000000000000000 2b14e37c91955e321318e076e02b69742db450ab863e5a27183f5325122eefd7 0435695976a26d3420920491a8ed7258704e9198763f7dd197835fc3881f5e17;
+  000000000000000000000000000000002000000000000000 a60999faf494851499c375422f095c6297bf849b840f481ddf2d800bd5a815ef 81b2364d09d6920ab43f2cc993d15dba8318b84ab1990b7fd6ab22a3289cf54c;
+  000000000000000000000000000000004000000000000000 93606aa487baf84540ae726d2028008cfb7237d5b75a8b7cf16d4cb053505b24 83cb4613e501b7bd03f20f82ac984fd0343a076a2b79cac8f300681e03a6ca35;
+  000000000000000000000000000000008000000000000000 1be5ef17055ec688ad796a467236ceda7dc0ed796c86c222cb15f2734e447d8c 5d9b5e0c10da87e2f3622bfe4f69fbd0b1f91bf755ca292d2685f0a509f41e7c;
+  000000000000000000000000000000000001000000000000 c5d3f66b044a246615b9b3c0334aa9ab25fd34c455a620d89cba4418fc1feadc 16656c40f1631926e113e73ceeb99ddf1ac42902969a77a4709fc5a80f789cc1;
+  000000000000000000000000000000000002000000000000 847ef0308cf3a5ce0b6baeff4e123449116f4caf72bb3a138ee92e782be7a191 f0b0767ed46af3d3a27aa0c9fa976d7c93a8f21a9d02abeda81af7a68c6702c4;
+  000000000000000000000000000000000004000000000000 42831b917aba05979fce60d2a9da74a446ddd6de0121f71060252a1461c6b792 a6cde65243158898158f6a429784bd387b8d22801f91d1548689d9fe85550a25;
+  000000000000000000000000000000000008000000000000 0d4adbb7bb47a50b8c17ffff088ce341d18e4217d15cf65297ab3dba60e99477 38c4ac27bc9cbcc6f4e8cdfb2e8765882befaa6d49701cfc0177ac2149ab46ff;
+  000000000000000000000000000000000010000000000000 5119c4cc05b113a0a0e3ff6f7171de89593ed907fc3eb336f7d1bb103a348aaa 032069aed12837ed63d2efb3dfa597798d68cde7b9bb5a3536577e77d431be2e;
+  000000000000000000000000000000000020000000000000 bf2e2e814022fc19d231f1f318870d93dc0191e3071c945d29e8472bcd34afc7 c5a6bd482375e183561a2d471bdf6d5b5f6006172aba89436ec163c7272c4b67;
+  000000000000000000000000000000000040000000000000 a9f45accec62c8031b317acec6d6f11894906f8086805a652ad072926f18eb09 857fa7722e1c23b131027e88efa77363db90be14ff6e2cc71b24bfaeb54a7c8f;
+  000000000000000000000000000000000080000000000000 d5741e1ae555cc56fb5b4bfee443b303a118424d58bc1ea1c3c7ad1e23f0a6fb 2327606846c7763803b2f2e3d971519f3e2f1a347d8f41fe14d54d8d3d75170b;
+  000000000000000000000000000000000000010000000000 52eeeebc925020fe957f68ef6dc75769a5f0f50bf1ed5d5b148d0b22c7775e98 8b325d7b0ea39a897cd3faba9f4ab0ba51e197116519a07c14727bebb8ab8611;
+  000000000000000000000000000000000000020000000000 53d22c79b540879187806af2253e4e0feac4e5afc28c53bc52dbd8a66bd286bd b1880207408b12d0ab406cb7171ab255f1984abb3505d1d25a591be81bbfac38;
+  000000000000000000000000000000000000040000000000 243143e1184faa751a798936e8970e8cb81df77bbf9c2426558ce3ed6fddfada d47efbd06bcbd9119b5c669ebed69ecc87fe34abe2bdd0f8b3910f0457f7084b;
+  000000000000000000000000000000000000080000000000 c940b1312c60cf6ac22e0918eb2d3e6468d688679f6147f538c44f68a8dad6c1 6d87446403bd9698ae306daf1291df934d101e00088bdef40e94a7b404e2f909;
+  000000000000000000000000000000000000100000000000 77db0f1576f359ae25c95f341d77107660ae302f44d2ad1e1580f463eb722995 c9bb7e476cb26a8360270d1cbff88b2f1418e32433e20c4ce270ac26be633cd0;
+  000000000000000000000000000000000000200000000000 f3e6b979ff6d77bcdc016738c5668f4f55a245c374e1da80157790757ef29967 05ec50ed23486e900b2ad8066c7c33ec1c025e4a606490666698e728b8e371da;
+  000000000000000000000000000000000000400000000000 22236f9d83c3e96b668447d01f4be1c0022cf4f6a6e3c6198d04c3962dee8a3c 169bccbb7586740fa41395f5691f767d5f3282376d227646e5d0cb9a3f9cf5ca;
+  000000000000000000000000000000000000800000000000 f7156e38ce1c6f86c689e0773b495af7582ef45a2224660688fb1e0789eef7bb 55ff5e05fda89e5fb6acfe18fb0cd122800466dfbc09395b4e16788efd92f859;
+  000000000000000000000000000000000000000100000000 6cc37a78fba82b4ef2f4ca7df6c4778e4fb55452ca67954b3de979a7475b37c7 a8bcac8512c8eecd6ed562ab54747d50b186d0ed46acb0253b8f515ddcd1af42;
+  000000000000000000000000000000000000000200000000 0199a41cca413aae99c55727a979fcf7905836a02bc972f66f0b94b3a8ff2ac1 a829ee870a7a41dfad31eae58aa4311a99c76412f438127348902bbe56eb256c;
+  000000000000000000000000000000000000000400000000 cc804cd550af6ac51a2e1c7b9ced3eb4bcbad50ea675a9743a6ca67383478309 469e1c8ead1ad94a949b5ebaa78661ac07ba8e3c98db9daf91403102665c446c;
+  000000000000000000000000000000000000000800000000 9824e0d504e357581cb479fea335e42e9bc60aaf8738a3a5af7c579f88652780 6957acd81bc15833c50363f2512b27bf55e7644bfc5415290a235f3e49268adb;
+  000000000000000000000000000000000000001000000000 a2174f331f650d02037637f44b93dcc87531208a621087fd72d25da2ebcd7f8b b17e8cbb92da7f7cb8c5640d0bafab3e07703538b6c29acec9e702a85b2eff79;
+  000000000000000000000000000000000000002000000000 db29b721429e91fb1ee512f9e583554e7816ef43a08f9b6702efb91b49fcffa0 9069e64b215fb4dc314baa6bfe937e4e526d5659fc6d4bd700bd8bb09e293e93;
+  000000000000000000000000000000000000004000000000 e62bd68a31c5234ff315f39134ce432c7f5889053cb508517fb47940fa73445b 945bfea2f6c98225fa834f68cbdcd95ce37670bd86eac0c86beeb324fdb0edb1;
+  000000000000000000000000000000000000008000000000 493a1525942df41d1e814132055d76b5079855cbf19f40f92190199a674aeda3 03154b55fdb3e1fff77e23582d092d367fa7997ba41aa1c2fa9e391a0de41971;
+  000000000000000000000000000000000000000001000000 aa25eacd89cd1b83080e7e0f91a15c6e34ddd8f13227f9e8aebdce3c2a7f8069 00c4c1837c0890afdf2629034e02cda5ec25435be489535f6ce6157985ff08bf;
+  000000000000000000000000000000000000000002000000 b04d01c7ae2c0fcecf3d2783d1f88f5e284a391bfdbaadf36f3578cfdb87d554 f024c0a381db53e46115c61d4960611940acd15427af609f87cb6745c8360bbd;
+  000000000000000000000000000000000000000004000000 9f3d17ca5a8595dcd078b88dad45d23ce7f9bd7aa94baa9dabc134215d84b549 d9141261f7e044749f39b0335e02be820f743dc89e19b8fa736e9fba4dde01aa;
+  000000000000000000000000000000000000000008000000 f86b153fc809f2b993401320893c7c5d24749c5fd341f47bc301921341464d09 3b84735f14e8b5601b924d70259b51b427fd2c7258237428824ade0b222083b2;
+  000000000000000000000000000000000000000010000000 7406139f6e16e6e27b76b49816fc1dfce7e5b161d6e7406d2605e2083520204a ea77c22ad400f9b10faa80b94060fc763c4cfd5ec872ed526cac435353537aa6;
+  000000000000000000000000000000000000000020000000 bee197122c5272f740a8e8789afde1cde79e33f35b9b0a39eed4d4397e102196 359730e539f277fe27ba74fb69e7ad616f0fdb83dc78ceded1f776195c7b52f7;
+  000000000000000000000000000000000000000040000000 43b97c25ed7c510c3ec2c5bc3ce6dc60dce440f4dd4a246ec195b6b275a8fc9e 2c31b53ba49e10867694643f957dbd578a41ab7c5a2f8df96da0de28333f5e4d;
+  000000000000000000000000000000000000000080000000 6b73a1b1bc1d73e66f87894a72efc10f6e624f58f9ecac22d148a42e789a080d ad63f014513a2f97049e7cd66b64ed3d8966dbc56bf5256996449f3d52e6cfca;
+  000000000000000000000000000000000000000000010000 874bec8dec600974413c65c8ec9fc73bcea3e2b6676f2ad7f2cd7fd9c616a9fd 005217eb6529b1377c06e4d1707c5b76a661a58e7a03918e1cc110113ebbf83f;
+  000000000000000000000000000000000000000000020000 c320fa1aa67b53dc8c286b386e335db8d86846e9c62b5a26142635ad1741f370 0daa5ffaa7c962fa4ff51b714eb3b8d558613c291fd18c33f085ccfc0d5ad984;
+  000000000000000000000000000000000000000000040000 fa9716adc52aa56bc08a13fa2389e742ca1c0c69a8b38818d1556d5d94581beb f0e0ecfc8e141ae43b8a0a88192d6660cc53bb517d1293517b8f981084fd563f;
+  000000000000000000000000000000000000000000080000 2a2d9d7f1a026f441e7018739a5f469cb431c07904c752c199ae75d996982483 518d1303b9c58edd3345b8efc73595b49e33fae3aa4ab8bbec405cfa8ed7870f;
+  000000000000000000000000000000000000000000100000 cbe44dd0f61eddc20a18b8c4d0ce1e8b4cf1d6b4f571389fddb944d97e896312 d1f50c6417afec338bfb8ef08b14e4e0eaae54945a2d7aa64932ea12162184c1;
+  000000000000000000000000000000000000000000200000 332dcdd571524676b5e01b700d5ad7ebc2200820bf9ecf88d58b25d5b6853b5e 218ab5b2a58437e67f7346279c8684d537564ad36111a28d9e47c953d5163ac8;
+  000000000000000000000000000000000000000000400000 2f444e84d87de903a6363722a58aa92e3a421915608a864769b73b88a767e528 9696248d4db1ece486f449cad92198a636e14395b517c403ddb383c62dda9fd4;
+  000000000000000000000000000000000000000000800000 6353369c7bfdab1eb59c563981112f6c5bb9a5d19456b14d66bae25a23b808e3 892c26bc8bb1ab4063be51302b83efc626b0d65168982ea56d15912bb1c4bd6e;
+  000000000000000000000000000000000000000000000100 d2f244f9810e323ebc467a8739e5f6ae6c3e29895b4be54209233f150558eb96 a70046aad46b564c37318685ee4fa02b6bbe069d2f97383e12b99a4e1a3bfc74;
+  000000000000000000000000000000000000000000000200 c2fe026b22e91234730231d9e60805af4eea7973bf92a88bf56fb1aa6b57d222 91d19a7a2f8bb26f51c1396ce8605b1f73f5cc88dada526d89306db7da8b94e2;
+  000000000000000000000000000000000000000000000400 15da12ac586d481256009375b097c7e2f87e693212d15c81822b20a142d6dffa 465a6c066609ac80736399f6b831265f0f944512b27d714088f56a9522954752;
+  000000000000000000000000000000000000000000000800 b1c90935529ca525c74586100d88f6ec2ce0cb642a93cb13876c936a0d7088ce 674620c1647b60aacb7db36742a79e266f5623ae3779f5ffa64ccaf703cb0559;
+  000000000000000000000000000000000000000000001000 a6393f2dd36ef0510eaa7d10e13414379835e18ebc598ff4e6966b2f4d454db5 3c702dc0c306252e9dc0a8a45950d0db0d16b29d50a1e52e918f0627d3f31973;
+  000000000000000000000000000000000000000000002000 d27fba9a43427819e4ef4f852c4b48c3b4c370efa95736d1ef2f4d1eaa7982fa 2f70397287fed6b518392f295bd7284cac72a5252967ce6f7f781ffe12da721c;
+  000000000000000000000000000000000000000000004000 035a53d6c588b24da04f809f58d44fc88b9b8e965df311dc9f22b927ed0166f7 b0bf95f7666718bfd5eef06be21bb41db37865d39176692cac0615cdb0c32e2e;
+  000000000000000000000000000000000000000000008000 d8df5772ad91908ac9d25c349459f7262c7b3f8b6600b96e754b9c91cca84aef 18451e4747c22c1179c9e08583b57d6ddba6cda32964ffc58bffbf7b0fad21ac;
+  000000000000000000000000000000000000000000000001 1a9d3f878e7113462ab2e88146c3198a76e3107df24940bfd49adbb920298cd0 219ece5d7c8b5cf39e156d4080ab45675e21fdcc87a3f78af87e0e94fbf8d01f;
+  000000000000000000000000000000000000000000000002 7b2202dca7a19eff46003c55c303629296454ce27bcd45d6b48b0ff133eb1d59 612579f392f069f6cef0cf4ae5202815e0a6dd6de5bd6e7d8228e6d7375744e4;
+  000000000000000000000000000000000000000000000004 ee69c3a9af3d3a908d88d807130226b89b2e2f98fe475ad6a4b7e6788b20ae09 6a76abc6719532e43b5ba27861ffff92794a633df0e55980c280c536cf3007ae;
+  000000000000000000000000000000000000000000000008 fc68e7f6ca2171f6791058da93ebcfbda14bb1d9ff020c19019d65f32f0d3c6c c65d7a422928d789a715e5275efef00bb53c4fa29bd52a51ad81939eee4e3d28;
+  000000000000000000000000000000000000000000000010 db5f89d2ad2d0bd30140738d7e439d82eff0003a8d96a7ee3d6ac86825c01043 c503f69818dce5f27555c888bcc284a4edddc2730c0694bf40178d673410b1b4;
+  000000000000000000000000000000000000000000000020 7dc52fa90b354295c548d24b97b57a180e1e04518cab1f4cf08c1e9d395a6d02 fc037367b301f6064a545b511f47997b831130bd6fad2266a796c3bd002ccc94;
+  000000000000000000000000000000000000000000000040 ad8b31939f86e872beebc126f9ff38a072e2eb2f892d873fb92d836b53fa400c d4560cc185988fcea273602fb66ce5176dd33fe1f14f823668c2ae395237ae70;
+  000000000000000000000000000000000000000000000080 8bdfbf564f2159e458b2d1e8a9570c5af83bdec9dbea73a28eb82115ed1c0fbf d2aa77e14a3945d5af97a1b85dda12ff4e482a4896b43d05d7d40695f12836dc;
+  0100000000000000000000000000000000000000000000000000000000000000 b710a787cfc2a7c988cd1e24e5d824a4cc8e9985f8223be872db6f6d9c1f5741 6eba8e27255051a64277f063ee388d7043c0a874953f6578423462bc5ae0470b;
+  0200000000000000000000000000000000000000000000000000000000000000 268202ac51f5664d63567c6d568e04111be2572d605f82b6cf3b0979adbb7a4c fe7e45a5a98865990c773dff38df832ee37a0122b8aebd038042901d5e3caecb;
+  0400000000000000000000000000000000000000000000000000000000000000 5f0d1dbf3375bd531c25782152de77575e0c473a7d7540f3911dc8bdb8dae1c2 03684585af206ef8054450ccf93789001b8f41f3f3bae1341d941d4021b16de3;
+  0800000000000000000000000000000000000000000000000000000000000000 b59edfa158a7a4366afea27d1b20cb968e2372d537fd6f5f9c1b836685fc32e0 bf29d8a89ecc07cff7133a6d9549eba23e44e3286e2f5d22102b01c2ec00151e;
+  1000000000000000000000000000000000000000000000000000000000000000 ab3f7b2104a63e3d58a9f4b366873361f3ae31413ead1fee18288d05512e6c82 2fad11a7f4049d4815b9fc487f9c3b33496badf7847091efd2bc7ace4c7fec9c;
+  2000000000000000000000000000000000000000000000000000000000000000 6672c82b1b905fee10f3ccc876a8cffb50357a1dec11b9e4ec92e475c629dd78 586d3de2b36c258aade88f3a3f63100e2cea8f32794a751d5cdfc3bb5b897c5d;
+  4000000000000000000000000000000000000000000000000000000000000000 284ef3ed1d0d4298a0538534671c58420722a6b4604ab061b5b1f593e385166d 9c890fe69017e3d021d71c5e4a8a240e8ad30bb223eb43ad9b8a9300f1303440;
+  8000000000000000000000000000000000000000000000000000000000000000 0dfba6b403e508af87120f7ab76612449255959a28ff7a28a8311cfe0d49ee3e 1bb310bd6cf3005c1114d33b9a77820a54555b85c1949a0e191574791031d917;
+  0001000000000000000000000000000000000000000000000000000000000000 9fa49e43220f73f4a74ee10577f64690125c0e793952d6e5b502b7c02c3bbcf5 466680fe5b1eb495401629010f21187f43a5692bb838d49a6586f41e6a4ba9fd;
+  0002000000000000000000000000000000000000000000000000000000000000 46a15fc1dd082c1db8b4ec33c0cb5acdeea05cfb6352f6fe3c17346bd963d81a 8bacc240f0faca7e8e02cd34b5e82a566c086e93ab0e893cc72e9c3fed0604d2;
+  0004000000000000000000000000000000000000000000000000000000000000 60ae1d213dcd6180b8d944e2d5f31c48a9c74f496c463df9811265d3bc0aaed6 4d49c723a160b9ffff3e94acdf9d836025593fed96a80765b182ba7d31705467;
+  0008000000000000000000000000000000000000000000000000000000000000 79da9cb72b3c7dc972486f72413a488761fff4415d32d6a420f9f7b23b6730e6 45670e223545799bd967d12f1aa5b869a3fdf891ac018ac8cb6b880d9b875fec;
+  0010000000000000000000000000000000000000000000000000000000000000 dce1b009345f0fc171e6e7cf41d1ef87144502097ee09bf9d63d5545d4089e04 6fa8db647afacd4b22b71793c49a1cca5c604e29d2a56004a22a798c42fe695f;
+  0020000000000000000000000000000000000000000000000000000000000000 691137439742df4b446cd0c142bd77424abe5651014828b660906112f06fe8f9 b5c2bc25350887df8550e158b7316fb50880c16661022502a2358be87e7628e5;
+  0040000000000000000000000000000000000000000000000000000000000000 1db837e8561c8353d2f761f19f2c07e3ee2344ccd6760d3eb3d5c1b0a5518423 394900dacb9bb93373ed0d5d4f4380f068e48decf75c7374f5bcb2404af3ad46;
+  0080000000000000000000000000000000000000000000000000000000000000 797cad288c5dec30e74b46af27cca07570f06566878f3c27476158da7267879e 92f97d3bb9e7cdf877210406b2197133c50feb2c3eb0e6655b10f8afd10df07a;
+  0000010000000000000000000000000000000000000000000000000000000000 5b1f61ac9fd2f0481c78f917bc7a014857db9dea5b28fb1f1c0fe7cbad043bfc 6e8a45a4430fa2def71885806278758fdbae8e8ed91270e51bd387ba6e4ea4f2;
+  0000020000000000000000000000000000000000000000000000000000000000 198236bc148a8f634144d8dd863c4fd0f9ba9755f7cbf8f3bf593720b8ec9a26 eb1e76a029c18d494de1b45d2f5594b7ca2e3a00fb1efd5a159c46916057a94f;
+  0000040000000000000000000000000000000000000000000000000000000000 4fce67001e92ad7697019470022a21931f4836f45d4bfc2e883f1e7206b2a11d df3954a96271ba08a7499cbd716dfee39e4d56825100586a1db9fe642c66d59b;
+  0000080000000000000000000000000000000000000000000000000000000000 bd4ec6675a7f71db8b2d80a4b032a0289044ab075505de2166580c57a206a198 5c4eb832889fc033fa7e82553824c62285cb39ce4c17ac66fd45ce5162e5c830;
+  0000100000000000000000000000000000000000000000000000000000000000 b97c928759f6f7ba26e6ffb37a927066fdbf9c101a66414097fe49c57973a4dd 560e7bcf23e34e3b87c32fde5763b3569a59b7f8c53c2a836b6737f29f654e5e;
+  0000200000000000000000000000000000000000000000000000000000000000 80bcea094a25c225e92dd719d2704fc8050caaa26a91870f58147fdfb6335b4b faaa7d8b6deb9f717c2cb6274f9ef1e79b082c36a26a242dfd277923e72e8dc1;
+  0000400000000000000000000000000000000000000000000000000000000000 810f05099e20a65360d8423a47a3a0e86c35d798871e3cde9ea516562d47a727 9950164feaaec297db1fe822c5485f040ce8884c74b6fda6cba419ff143aa456;
+  0000800000000000000000000000000000000000000000000000000000000000 a99efeacf000dba20414ecec5282ec3287d6d25ca98d58d316e6e44f5b969dab c9cc38ac1b3c60146cc7044c88b301f43443927513ddc834d9d2969fbec62f9e;
+  0000000100000000000000000000000000000000000000000000000000000000 d4f6cb3316615b46b85043ea8d536f62008da89d929c89cbce5c2f4af80fc0eb 6e2ae8e5550e18921419615c955ccc2b34eac161f691f1fd9dbd2086e101a79f;
+  0000000200000000000000000000000000000000000000000000000000000000 be194120a898a2cff33d11047e127e1fb7638dff6b1ca220af19d650cc3a2033 0df1595a104cd77af6deb248e5d5caa1b7ad83ee1516a9190fd93ea670834caa;
+  0000000400000000000000000000000000000000000000000000000000000000 0b642de34e08bb4722376d2a10d368fa7d3c8c7f000b7c6973d44e1ff87fafac bcefd2cb7d54ecf5903e67e943df28dbd67e0754a9b3256ec88334e860fb8a4e;
+  0000000800000000000000000000000000000000000000000000000000000000 db60166e57b3c86c496d66ba90b86f81c23b0f79dcb365955f84d67320d7b39b 2651658527aa52081f269c855b36403387bb78d75492199d1b5568ebb2cd64b1;
+  0000001000000000000000000000000000000000000000000000000000000000 d2960e3f4f57077c9248593e2f4a7b91e6526f0c0415077f6a8e920ceb07348a 13581aea152e9eeafbe38dcf816c578356198b0cfe8e91922c40e796e780c157;
+  0000002000000000000000000000000000000000000000000000000000000000 c44a9f497d55378177fd4072a553677ee2b7f51afe982f4534c6a6605f1bc59f 81f4a21170b55464e04550cc867cb48b70bc0f33e61ff70635c8d127c05b1a36;
+  0000004000000000000000000000000000000000000000000000000000000000 99ecdc67a65bebe1391c1d028a8c8f75eb30bfba20922e573cdcafea7832b818 392288245058d4e94d7ccb403287deafe08a9a3f0cec202e341687fc32a9aec8;
+  0000008000000000000000000000000000000000000000000000000000000000 ba582aa692dedc9ff6a0baf9baca409ef3c2b5c4249a00ea4201fe431ec1c019 7e05199512f2f0f2e976a2f7e034196d95ff5d442f4d315fae0aef972dedb427;
+  0000000001000000000000000000000000000000000000000000000000000000 22ed62d4d6857a6d07987fb1c80d84e3b502a3e249dd2587ef2be8911d422d2e 4d550b13661b323d3b5c7d225d510dfa89a3a5341cf3e5d0b08b7d52dd8918a9;
+  0000000002000000000000000000000000000000000000000000000000000000 48bc9f9499eea6081256b9b3df10535c15d1f5a9f3fbb1f64bdc04aab1dfb86b d46a6f61aec8c210de804c56edf6bc3520bfb88f9e763499380031d2781837c9;
+  0000000004000000000000000000000000000000000000000000000000000000 743b58606b96209f0be81187a2fe17d0c5a4ab5619008ef4a3c6143331bddc37 2f6a8552412e9467fd896ee5a82c75fe4c5ce4560b347277cf1294bdeaeffbee;
+  0000000008000000000000000000000000000000000000000000000000000000 85330d1ebbbfb036ccef3271721adb73bf2bbda88579371d718cfa3cea5f8f5c e28db7d63db0927eb73620536550ac55f0f955eb7dc0cca69c60e29dccf15282;
+  0000000010000000000000000000000000000000000000000000000000000000 1f3ab39358e2e4928d924fa5bf14cffb502387b8f617e81d07ca0074a849cd68 10ef4c03e1b7cddf4801d714bb2930bff30307cdf8324429e12b0cee98f8b80c;
+  0000000020000000000000000000000000000000000000000000000000000000 a94dfe1b3b3084051108afe8e4ea6f639a071eaf2385c36703549cdd4ab5d197 674498fec64ef009049246242c80ddabe892ffd211b2d6aeb46c5d9bbf7f7af1;
+  0000000040000000000000000000000000000000000000000000000000000000 cdaf793422212e771a558b2420a4e9881617beee56a120a362166f8db455faee cf9cce32fa8ae17908d726be8b2eff612bdefd75d43f712e92770b6b054b53d8;
+  0000000080000000000000000000000000000000000000000000000000000000 bd2253967d401c5b9e6b37223f642ba4c48cba0f063f7e0316ebcc103785895d da855ce143ad7f70dbb922335c8419619623b9059b4cf14478c82dab3b8a9613;
+  0000000000010000000000000000000000000000000000000000000000000000 7ebcf735449f330053aaca4d2098dad162b89a17f093dfc2c4a065143eb4f6f3 234aa9d4124ce819805e7e6aac7ac39ec8177b42ce585894889865d76862ad6e;
+  0000000000020000000000000000000000000000000000000000000000000000 9313edf93fac3023cc2ae350473ee558c63345370fb430140b2886ccfa6541ff 671ec1ccd1b1d44a2c9bf91000bcdfb1a7e690f75ae6a303487424a4c5f25ae8;
+  0000000000040000000000000000000000000000000000000000000000000000 c204d9f83684adb81bf36e5e0f463fff5a933abaac94a713609538d861f97488 fd239cd548ff27ae06aa6e879794613a83ec6d636ee0d2abf1e9b5608213e0c0;
+  0000000000080000000000000000000000000000000000000000000000000000 1762efcfaae6d5c105e5d58b3176dabf8f2de7e41729da40c6f085a9272db119 0487a79ea74a0f730746087cd17820e5a0ff7b7120e09122101ba2ac8790dff0;
+  0000000000100000000000000000000000000000000000000000000000000000 a6b4561f9d72cf6d5421c1b6e513ccc0c945485605c50a00a0659d53d5188992 dc7787fbac57488d1f2e008cb8f74ee0c41769da92b01ecc8b8ae01beca36c45;
+  0000000000200000000000000000000000000000000000000000000000000000 9c585a0b912286285f6f3b3e7bf89309b647b7df3186819faf6a4c64c6284cae 77c1bc384a981b8e06386de60ac7528ecb08a69425379782bf18f9a1c22bb137;
+  0000000000400000000000000000000000000000000000000000000000000000 bc698cb215f3a7bf5e8e639ddda285ee6195eb62a2a747813cb28e185c59957d 0c722c36edc3adcae5ec835c19d8d5de207e9a6759d08556478faba11bf88816;
+  0000000000800000000000000000000000000000000000000000000000000000 ead9170c5172070e8792c77b4757ae6b61d5909133ca2e0fcf1833e1bb193b69 14bc57cf383b7261bb0c6962a328e75ec25c1fe914657d54aff3204191e9d99a;
+  0000000000000100000000000000000000000000000000000000000000000000 485569486350c5496257586f56ff7eb51201cfa3912a0d1c1c5301ce97636911 b21aa06fe33977deed48f521faee4e1d9037a46d50a6b50bf49b9b3e3a8ecb61;
+  0000000000000200000000000000000000000000000000000000000000000000 e64984986c4eafff9222916cfb041e0b73657d311adc7fa1a5b1668deed193f9 acdae72f6ad1fde834c0a07089da23bb99de6ec97fad0727a021215d0d41080b;
+  0000000000000400000000000000000000000000000000000000000000000000 cf9d77f373aed75fd0c704f7fce263f449db03fc942f4d15c91d76cdf423c7f3 5cd8c7559b80b53c9200af58016642b0bf07dd1a78d8da24ab96b5b271b9f73c;
+  0000000000000800000000000000000000000000000000000000000000000000 22976edb47d419b1eeb626b447bd51f79584665a05dec38926a6ad5523da6d24 719de403bfc56f5dcb017e79b5c6ba6aa328754ce53b0c2f309182a01a5b736e;
+  0000000000001000000000000000000000000000000000000000000000000000 56098d3dd1f4b5fdc3279b06cb82791472dcb486455f954f9cc67e41020c80b8 a48525dea24bab01f0fcbbbda82a5eae10be121d19d934f9f1822cdbb01e19ff;
+  0000000000002000000000000000000000000000000000000000000000000000 ff26e15d3ca5a163ce354e79d157af7f2a287ec929c987d7b75a4dc26837f5cd 0b9d065544daa859b8941f52ee1ce4d5eb085fc6c50d4e19e9b9ce1a7dd50eb7;
+  0000000000004000000000000000000000000000000000000000000000000000 a42af2c4f718b8a7859bbbcaff6a9f90d38330770eebb070916c7623464dc064 a7037c7b5911da9c9c1bad71fd407a7d4fe7d667ed48811713c725b7adb1f47a;
+  0000000000008000000000000000000000000000000000000000000000000000 4ceb2e29f31792cc758551987ef07995cf3552f710609661a235454060a44b45 d74085b4d09b07b6496a8b1126293d351e8700a0d03bcb753402550eb0539beb;
+  0000000000000001000000000000000000000000000000000000000000000000 92fe07f513147512bf2e06754a9fdc3df9dd3418c451a2ab4074cf3d660f7116 2bb15ac1acd8e05fd1a79220ea3776ae6e495c1951e4c2417e1970b4c652fa59;
+  0000000000000002000000000000000000000000000000000000000000000000 0669da2d2602b2e8525d8b4ffa4cb5fc7cc9fcdb09e2b94f92ca1cd17c11678d 629120e05f46fe63953930e5b4b8fad0d31d7fde97ba5129d20f6bddabd03684;
+  0000000000000004000000000000000000000000000000000000000000000000 b30f4c2557a8367565793c83be236f57dbd5b8ba5ed8b70fdd972044b000143d 668a8cd70c88f34323b3aace04d8372c6ad356a007001c30ef2ba583887d7071;
+  0000000000000008000000000000000000000000000000000000000000000000 36fa5760d079d93c60d2478bb043046d789c4a810307428278f12dc5b8605a84 76ae36bb134308000bd4896995d97d84801afaba22c3cf4ff614dbee1f391752;
+  0000000000000010000000000000000000000000000000000000000000000000 ea9a54136a5beb67f2a59d38385694bdc7fd5ab8fc7a24090271a74dd2754a63 60d83996fd2935f1eda8fc15b05ae59d8c7f6be4838cdc7768fd0fb7d59a6a0b;
+  0000000000000020000000000000000000000000000000000000000000000000 3aad0ce18f779d729f18175953e5ed3ef48c8788b63e2675b55846002d6bde75 bd2eb620012ca716ef1466afe80fdaed0c500aacf3936fb397598521859cd666;
+  0000000000000040000000000000000000000000000000000000000000000000 ed4709509e02cefd5380f49c44d63588559e15d5b6233612371e9dc6301b345f a5fad10995931a1fe8091d58cd6209e8881474d20c1149eb52f21e8096f5c82b;
+  0000000000000080000000000000000000000000000000000000000000000000 76efa4db92deb8bb61e5632b586e6c055a4aa9f3629c3dd207a90cbd6f437326 c3feea531d1214c493cc5420183636e0081474c4040c53a23c7b81f4de813a63;
+  0000000000000000010000000000000000000000000000000000000000000000 6ffdf448fcec04e0f5e5488ce95163b3a948cbcefe08adb1a0af4ea6ec0dcfda d1b296f0454e28a463f830a4c3ea2de47de674c65ffc3bfcfe55f5b8fae203cb;
+  0000000000000000020000000000000000000000000000000000000000000000 b162fda0c9ea741a3df81736a6e719448d2027557ef3e6a6d9be04088908ace5 6ee5c691541c638bb207a0f96cad293a800145228b8fb5c475cdfea65a0c1463;
+  0000000000000000040000000000000000000000000000000000000000000000 941a5f2cd24c3efd010240a3b80a9eeec06849260152a80dafacbf353f153b53 862ba919fcda8c20036d3bc8d6514d752d9d49345e28aa0e8286e19157f12ee7;
+  0000000000000000080000000000000000000000000000000000000000000000 76351fee726cbc8ea642d86d77931d91635be1c3e9fadf83c213cfdb97dc96fb 61c8693fb20fb0e02202e5a837d2b9ce72ea6783a37c41ae73f0d7d56825e043;
+  0000000000000000100000000000000000000000000000000000000000000000 e39e0ef15007285759d5031b289fcbdb1f7da3d16fe1ef9e5d3c6980d2cb1861 9ad128c723989209cc116a3c0c87fc52f832562dd737aed5b5eb0628ce9dc4e4;
+  0000000000000000200000000000000000000000000000000000000000000000 bb2d3e4ba923508683b974d59a6eaed219a10bbac88b25f1091e842744859f17 9f675fb773c0f856aab0320c01b535fd6d7fa9d935c859957176d9bb189d6eb2;
+  0000000000000000400000000000000000000000000000000000000000000000 099b3a2759811935729bd31423a9c66986d29d777eb27c9910b0d98d65950513 5e5fac8403f962da542c8a890df03dcb36b369dd52b0f40c868008cfc6ad7b8d;
+  0000000000000000800000000000000000000000000000000000000000000000 157ee82dc6dc5a24d4af48272fefb1ea43fda448f629904d502e8123a32bfc00 cc975bfcc9ba9af99ee200ea507df4f9878fc521cdf847ee8ece2cadc1662c68;
+  0000000000000000000100000000000000000000000000000000000000000000 276260d2cdb4e61628335d7651a4c5ea94435d1d805a78e43dce78f3f5a0045c 88aec5d6143c04ba7f8aa4f1a8ae2046cdc069e0e7cc78f2441db539ab7f6fb3;
+  0000000000000000000200000000000000000000000000000000000000000000 5f884f2b489794be82829c9a9e03507591e3c050d5cb97416f49934665490126 e60b02918e17abe72f95a2353b09ac849bca394d36aae3bc1e4d4c1df9f746fc;
+  0000000000000000000400000000000000000000000000000000000000000000 2b0fdea880a21afa184f4dd861035eb562d17f4fe64c6f0b112d6d5314babd06 3c66a4baa0fa03c463662e457bc805efa747c543e343bacd657b50bbd9432c26;
+  0000000000000000000800000000000000000000000000000000000000000000 97ffe814a45b15b711126ae034180c83bc8d78e9f1de7518f123db70c60f1fee e4952d7ecaeeb02c97cc3968509bb53022fe7db5f2e40be980c0284b17094657;
+  0000000000000000001000000000000000000000000000000000000000000000 0d76cf7fe660c642e3952d446a82a090499ae4e6b438ccf6c2bd41985beeb4ae 8f08a984c802cc4d8bc9bd577e077dc8dfa1e1d4f07f270e743d62ec5bd0bdcc;
+  0000000000000000002000000000000000000000000000000000000000000000 35bba90a5988c984576bb7a116eb42bdbc7a1a7130e233cbad7bb5e10a8709d5 ba64f154fda4569dffc27b550721434e03f1fa7314695efe81fb65be9a9c8511;
+  0000000000000000004000000000000000000000000000000000000000000000 fd0584ecbe944c026ac1dd6cd3d8e9bfe2bd6c7fcc928e781545ef2f11d3a501 b1ced0742b483acafc6039b511c618c99978d6390d6183767ba356550e7bbaa7;
+  0000000000000000008000000000000000000000000000000000000000000000 a4a05a2c5f1104ab9b90285235c26b6338dc6f7bdfc4660fbff033d4ac731b4f 21d7d7922f92abb13b9b2afd26720fcb9dbd7eeefa72a7df0cf7569764359e62;
+  0000000000000000000001000000000000000000000000000000000000000000 35cf7c51265fee5ee6865cc36d1deb4982f03caa180028fbd5942beffae799ee 7aea337db031a654cff37fb5da273b82b093ce1dd6cd21cdbbc53b6afe3fb814;
+  0000000000000000000002000000000000000000000000000000000000000000 ee1a83b7ea54d16f8f8aa9d75d12363cc43c928ac3abc0aa7342623ad36d6725 11b2499897d20ed6aca0e7fdf3043ca845ae50da70068a2ddc83796eaf668788;
+  0000000000000000000004000000000000000000000000000000000000000000 2f930cf4bff412b1d78aeaaeab1585ea169400f07321026833e2b735935d2d3f 2747892def2b519115e185a2ffc77f27e81bf19e18947e755222581a508daba4;
+  0000000000000000000008000000000000000000000000000000000000000000 373234bd4823e7bb3582c6d172ef81d76b2b865150c7f440a55839b5cb87a469 1a65f37241a6083615c06b618ea109d5f860cd8c80037139d5fa5e84fae815be;
+  0000000000000000000010000000000000000000000000000000000000000000 9f099e07eaf67d284998e17c0e8d5855d40878fd3520722053ab4fac54ce25d8 d88608c57953d368596f9aeee8ea712f6c7501635c367effba03b6b14c3d9333;
+  0000000000000000000020000000000000000000000000000000000000000000 86428e3cb8a5b0113c5150620c5daf70ee014383f0f1374b32850ef90c49371d ba883222c05c20aff769064afad472c4258b781b2f864e7b482670d83371dc19;
+  0000000000000000000040000000000000000000000000000000000000000000 78a19606a4e5c0f4204327233a4b82574d006ed6edcb1b2771f86c12fba9fd3e ce23877084ad2c29b026206d12c5d6cca2be84fea34e408100b874997df48d14;
+  0000000000000000000080000000000000000000000000000000000000000000 fc48afbcf9ab9973a94679b87e6c7c7de93b1d1e572cd417cfc2c042c0da8ec3 7826bebf3ea65d04e7c349d91d1655b8611d583bd7c1f1bad76638bd420fc527;
+  0000000000000000000000010000000000000000000000000000000000000000 0a15ebe7f905eddf3578451e0ab392d0d3a5608693a2b2de95204a28a7e28b8c c9930de96ff1ce78ff84e0f6f120bae2bb857ab9a5202fe0eb97c3e152c8f7dc;
+  0000000000000000000000020000000000000000000000000000000000000000 8f998cb2782786c58d5f565439cf536a311ead26164221e99ad684d1a46780f0 48fec689b41b05abb376dbdbb87ffda7d0bb8b64519db75b69114ca41ceeb02a;
+  0000000000000000000000040000000000000000000000000000000000000000 aae5cc9722a4861dd1307c6f9f1b6264e58d5c29de5ab90737aadb205143423a a730454075b2dc57f878cfc72ad199fef61ebd5c0be77371e86c1f76fd7fc9a3;
+  0000000000000000000000080000000000000000000000000000000000000000 14c0b882f0813f3ca2ae2fe12e3ee29b5992bb09e32e59acfc863f073246aed0 99a073d91aa2e97accb666af969c9c530db18ddcdbdc8479d088519be121c332;
+  0000000000000000000000100000000000000000000000000000000000000000 3a53182ad81dfcc1959e4f04beb33c296a661465c3d5a4fd8ef3b3b3f4f7452c e95ffc684186e96861afc8bb2e92f7c5fbbbda583fd9a7e0c644bca033012099;
+  0000000000000000000000200000000000000000000000000000000000000000 cec9fddf484aee5cc8792cea9e47d605772fd5e6b7fc4171f878659f462361b3 954f4a103688e98498f3375f0da8fb5b952bf902512efe5476034b57e4740e29;
+  0000000000000000000000400000000000000000000000000000000000000000 287c5b07e1c25ebbaa16601d74482534f548420b2f499720bdf56dc4c50dfe88 122f85006d09f8081f4c9462f23217f1fccdf36adaba4026ceda0bbf2ec48f97;
+  0000000000000000000000800000000000000000000000000000000000000000 7073dcbb3759caa88d380ae078cfc1776481c0be2763f22c606bae7f6da56847 977b2b5fb0ddee80d6c56c8099482231467e953f4a37dd9d0480907f9df523b1;
+  0000000000000000000000000100000000000000000000000000000000000000 0922b8e470325ecdc29a89a322b133704da7db254235318943ce764e6b316be9 5a85db47faef6319156c03243add3758999b3a31d864033129be91e3e32e748d;
+  0000000000000000000000000200000000000000000000000000000000000000 0c82da489a75dfe7d165fe0ef25a2d5b3433e18df1b6cf4e6e7550086f103455 ebbd37e16a4767691f5f2726e74bc01b252155a9f199c1c14eaa0705c3d42b1c;
+  0000000000000000000000000400000000000000000000000000000000000000 cd55f2007f5aff59d3febcbf32b0c520fe18ac5840c5b21a32d49194f467cf82 58a84deab5ed0923bf69abd4735953b7f9695acacc920e2f39e5e6db30744739;
+  0000000000000000000000000800000000000000000000000000000000000000 62eff552363f5d28a35802defdd11af82d4e3f97721af82583642b2c42f0bfcd b5878df2b713376aca7bda173094560c6134e290be40fc60f2d5a1c0cfded2d2;
+  0000000000000000000000001000000000000000000000000000000000000000 f89af30b3fecb6d31b9c0a95c2e79076f19be59076fa9dc87a7dc3ee16a6c4cb 8f44afe247316692ca0384cabe1713167a200b3bfe651e25bbf60ce55e48ee0c;
+  0000000000000000000000002000000000000000000000000000000000000000 ed8080cc8af759824886c91e0bc0bdd2996535e710ca2472e88fef21a9fe8a17 147ec69a6df3f1a2a9c9c9564e5beb926c25b0a50d4ce4550347db1e597de9b8;
+  0000000000000000000000004000000000000000000000000000000000000000 377ed124988d73e9ac3b0119d0f20f6e70e7d5e4a80292fa69ee8b736118edd2 ccfccea9fff0d469f9044849d08f6d5702b84879553e254593ea19f0086ca656;
+  0000000000000000000000008000000000000000000000000000000000000000 29f4abc1387810b3b06ee64fc7c3d8d28897d2bdff2c06fc7b8e866ae1231df6 dfea5e382d72306ecefdd7b6d4f62937b932aaa5ca2732bd81c8c422e4f81d33;
+  0000000000000000000000000001000000000000000000000000000000000000 73dad0e10986aadd22453f7cce1c1d049a234db4e3c0d4cf1d040082ac32f648 c64fb518391e009edeff0beb9fe5d08549da189af5616ca23062f0ae240b07fa;
+  0000000000000000000000000002000000000000000000000000000000000000 947cf5a71b987c7ce92ed5b683c84795d540fafb7f1aad16b21bb64df01d3b6e 7b7b9faea1f550d1d424567f10dcb3d10ea1e6ba3371af4268b92ad6c7f6250a;
+  0000000000000000000000000004000000000000000000000000000000000000 a6012abcddca24c75e7cac6815df8bb931a189995456c3e44d11ac182b987364 9dfb906379afda4d5209a1eb2f0413b094863c56788362f33a9c9fcec8d62352;
+  0000000000000000000000000008000000000000000000000000000000000000 b18ac81ffd5b616d442999589f2fdac9fac7e3e2dfc79e5a170ac63ca7eb973a 72ce124c345e50bfadb5dfe03489c51d42c07aeaedb777ad165ab9ab8a438451;
+  0000000000000000000000000010000000000000000000000000000000000000 9e10944f8ef5c59dcd94f15b230b157f0cbe9a5f404d5e22096e46b5049e4f71 9c19f8895e152175728754a6d14ce3389dadab69416a22c5f2a4633817ae405d;
+  0000000000000000000000000020000000000000000000000000000000000000 2f8afa7878ae2583503cb6f56f3076ae87bff8e71f31c0af8678492374259e35 ea3ea79567b636d21aa0a0df8f4b3c098668a3c665d46a08d10ddfc3beae88ac;
+  0000000000000000000000000040000000000000000000000000000000000000 09cdbfb362ac961a666789e20d6e808aaf6dca062d09381bd8b5b5cf474d3383 54b4cfe5d6ca5adbedc38eedc7e194a16ffd5b9b5ffa85f283c6b50db967dd41;
+  0000000000000000000000000080000000000000000000000000000000000000 8a558e84a3f9ec12e8b4a170d4043bed779366ab357abe19bd93714ed619e72e dae9a5f44a7f24f5796d0f455531d05c9a47896edc402cfad06a78ff7f0c0b69;
+  0000000000000000000000000000010000000000000000000000000000000000 bd30cbdc34467ce1fb917260b672e30b5159c147b382187e5cb63f27fb8fb3cb f704d520d0f09490a33c586d6e66ff6893527ea390bb33b488afd6b95743d2fd;
+  0000000000000000000000000000020000000000000000000000000000000000 5dc33964ac06ff0b73cb815bcce1947caff235c194ab0d9468f50bb35aac42ca 9425098a5362d723d515bfec7e523c807e8abdf689407e8f5772a5e886305dd1;
+  0000000000000000000000000000040000000000000000000000000000000000 4048c071ea96645214d86b449f1617d6a3343e70658ecc05cdc9baf0f0b0acc4 726d5abbb9f0b78ccbbfb81828d46ee894ab30108bb272820e80b3c409008957;
+  0000000000000000000000000000080000000000000000000000000000000000 feed566a147d889f8bb297bba031045c8c51371249bd15c213889228a106b387 48f54c15f5916c747867acdc1c6be053472b21ea75b4c89e9c4a2d29a47cb000;
+  0000000000000000000000000000100000000000000000000000000000000000 5e8c43c4ea379e3f162b30334ce46c18feffce79008359fd7294ca5ba3abcfc8 e9b3895759acf83170cf56952e8bfc35b20602a85732a22e24679d41dc0d81ee;
+  0000000000000000000000000000200000000000000000000000000000000000 f83c2049da049f827ae686e01b2e43ca7880503cbcf41cc3cb0ff442534f44a4 5140af46bd927c8b5a56aac7e91b6f3e9f4cb55aaa382c3cb137bdc78913e67f;
+  0000000000000000000000000000400000000000000000000000000000000000 9504a499c39638417b9c4697086acffa36ee69994b93f6b9ed8d84dd4b8be893 12335c48458adac6897881bbbb5451d7a5fa7a47062cc423866d56cb0de521bf;
+  0000000000000000000000000000800000000000000000000000000000000000 d7c2bddfc22b1fe3bf29f3303f42c513b2c6da5edd52fbe233b0805801357ca3 18e58cebc2610002ebdaf6ad78397e3086f5d48ced9e6bd7c184d2646cf3fa66;
+  0000000000000000000000000000000100000000000000000000000000000000 30db9e91b7f866684037e652a7ef4ea15311991fc600b9a381bdcedc6768b2ea 0ad22f535d4d8ef449c3d4ca0255c56e7a992f65bb759d5e97855b49295b620e;
+  0000000000000000000000000000000200000000000000000000000000000000 3bd2c0099e75917712dd5675658a7cddd042b8e4dd55ff383ea0849430d20a25 2a5247af68de1e527d4630685a1d35b9bcb92bd7e403505e1d74cfa1951cdfd3;
+  0000000000000000000000000000000400000000000000000000000000000000 51d9870b68480f11027d68ed17befe2609c6db14ae4de6323ff1001a56328cce bf5cdcb1cc97fea6f5d65812e39cf1fc92e2a790a459b81af0e4e6d0488d0df2;
+  0000000000000000000000000000000800000000000000000000000000000000 6851f0fe4a3fa9b6276920aae11229d8dabe7993c9b5212e471509ecb33f8d35 e826f3110ef8b167372b0d53cd2c87cfe63ef992c6616efa3578e3020b9f72b3;
+  0000000000000000000000000000001000000000000000000000000000000000 880f0d790da1b0aa793fab00f13a25d362933e5858059035ca8c1488db29c4c6 9913e9bb16e3e4ec19dc7dc22dd1c97cee37c3e490dbb4877b95eade1345bb52;
+  0000000000000000000000000000002000000000000000000000000000000000 6e506fbe75fd3fbe60a9498e33eb1823c595d5448f2a7156a150858e44c9a7e5 d7aa0d8a5ee81e7afe5c556986c096389f9aa74bbc9d2455825f1f89b82dabfe;
+  0000000000000000000000000000004000000000000000000000000000000000 5b47ecc00d336c0f86743efa9a330dd774118fe5612ffce59c21f1a0ab269294 a45eb29f0da05222785a7fe1a97110ea036a138d80a69f983179469ad21145bc;
+  0000000000000000000000000000008000000000000000000000000000000000 ddf11ee97123f689bf03d478fb4bccc8946b4dbfc44de24281f03ec28926bfa5 b021b6000a0eb6fb5f5d784a5ef93adc07a470b88e2893e21f02aec6df252746;
+  0000000000000000000000000000000001000000000000000000000000000000 0edb78bc8c491d4b11786c2b496c2b3f478f16e32344b6ede7d3ee7d222124fb 310f50df7d8e2e8deb0147d564d3a46bd9a5e02e8296cac46cabe7944cfeb93f;
+  0000000000000000000000000000000002000000000000000000000000000000 5d6f9ab81404e218300bbb3da23f433a0593c10bd6956b8c0eb8e7f872173500 7fc8280635b7aadf8517cb55db81df475bc6563d25ad9bd58f4a370317486d57;
+  0000000000000000000000000000000004000000000000000000000000000000 0d61405cb9b8b11dae045df26463bca6d6d5efc2ef55cf68a93d09b3d742861a 6cb8a17b2952bfb7a5009d45d19b7ecdf0c3c36fdff8dea9276125467f02d7a4;
+  0000000000000000000000000000000008000000000000000000000000000000 82ea9db49ff4620458821b415432b6a8bf8cc4942f6551a16b03918d48148720 13f3a6b22e55e7f002b901240887e0edb9b15a5d2a40b25e25c6c3cc7c7bf221;
+  0000000000000000000000000000000010000000000000000000000000000000 29460a670220cc8f65061a7780b8c09ed91475cda55a035322f0eb8092a2bf56 7e0290030feabe82fdcd24588af8e327ab1a1b51b67a2eaa8987c93879bf6923;
+  0000000000000000000000000000000020000000000000000000000000000000 d4ed832718e03c075155aae7a8d122aaa18e712e2a4af40f49aeddc4e1de5288 4e56d4d38c921c950cdb9f5080be33cbf80be046eefbf25397a392f089285f82;
+  0000000000000000000000000000000040000000000000000000000000000000 1aa2acfff16b3352b448538debc53a55c988c7b8110904b193cbbc28b009a1eb 6a48dbaba03b41ab1c84aca7752ccf6fe3b1f52fe99a00f298fb970c1f152384;
+  0000000000000000000000000000000080000000000000000000000000000000 caafa0e278e8e7cc7b36fbb13b40e59fe0da92681f8d558f707222ebda0e36aa 3c432613abcd968cacb9808ec1cbd1194c5ca98d5c310f08ed281d2734227296;
+  0000000000000000000000000000000000010000000000000000000000000000 8a101315c0ddd4906eab86efee495a3057627c47cbc7e3d830a9d89b4fbba643 98d3bc410c22781211d1a545b4f21a76c1fd2cd9d4f2de8095c4cdb04e805931;
+  0000000000000000000000000000000000020000000000000000000000000000 d927b296231effe297abce8704c62dcc9e39a44f22489e8322b4fbaa32da013f 29793fde7c379fec5c8de6059df881b43a85e710fe6fe3352ff17fabd6ee65b4;
+  0000000000000000000000000000000000040000000000000000000000000000 5e605227bf9741c34c18fb61aabd2203bfd1736c82a1499bd588c77e9931b9b1 e066a7884a7d9636a53ef436a1eec730ce016e43578579acc45bab688ad7eff0;
+  0000000000000000000000000000000000080000000000000000000000000000 a820863b88d27998cf348fcfaf3039b442153e02ff7b013c36296ac9c38b89ae 7934900b988c5f31f62475452644918bcf6a6ffb310fbc137cc485f45b00c967;
+  0000000000000000000000000000000000100000000000000000000000000000 b55212414655a7b62dfbc6ad4d28bed82163b5c057fb7e8b9adcc274f2fba116 67a3547326f79d579ee7239f84be3605a99bc3621d2185bc6cbc40786dd2514a;
+  0000000000000000000000000000000000200000000000000000000000000000 beb2e3956b333af4049053fae2faf665a4f72276c8d9c701aa7612488b7eeb33 d2d94acfe5c979c7b13a7ba3fec8d2e7218fc180ce61901a46df6438c6747f49;
+  0000000000000000000000000000000000400000000000000000000000000000 371151c4417b7af7576adaeb54efaf282a45df29da5a16950da4d0cf3b1cb0d8 3be4aba8e592621b97f44bd8a9e79d7c40f2b0dfa95ce58d348f4606f1f7bd05;
+  0000000000000000000000000000000000800000000000000000000000000000 c7c7b57ec9a88585f44ad6f607981abab6d47dda362a823a8d7d6892f51d9740 66d5cb4ac0577f8068d0168ccd672be532b2127f151471e2e0ecfa8821b676c0;
+  0000000000000000000000000000000000000100000000000000000000000000 483956a2ce23c415d4186e9673fc9788dea110c19ecf70d3c4cfe5d3f5aa0171 0666c400bca984bda9635e7bd0b6995c23886093fc10b694f8f3a43474836445;
+  0000000000000000000000000000000000000200000000000000000000000000 44b0dcb498b727499ba0d3cf6ac8dc6427715d0751f57e88856238780a7d4b1d d797353462b980e3bf03837ecc9aa5f92f30416dc8bd35e1348cbcaf06651460;
+  0000000000000000000000000000000000000400000000000000000000000000 e28c11c07742c659f73c819a81656262ad98ec5fccb1ba60b46ddd50812f7160 64ac6c24eaa7af7c1d8a79fd7242799c0f48b1a5d2041e286a235a558675bbdf;
+  0000000000000000000000000000000000000800000000000000000000000000 d47d47ac8d6494a65b5a73d47610f7032b066fb1e82d5afa6ebfc78226acca8a d36d0f9b5dc68c57fda48b8adc97b8eb686860cda6c4736b9ac8c4ed72306fe4;
+  0000000000000000000000000000000000001000000000000000000000000000 dc14bdfc5e4d4e942729ed31d2a738e98528df04027c14c6c3bef38b477491db 0dc4c990534f0a10cd1f050bd00550b061ab903e18b81eae32934be8ec46837b;
+  0000000000000000000000000000000000002000000000000000000000000000 59993fef1fd3b3efd1beb45272259365507bcdf78cc14c0a23c6ea22d922e8e5 6158b4937f0f839715c781a2035246af4fde32c8841f3c268f3b28f0eb0a4329;
+  0000000000000000000000000000000000004000000000000000000000000000 4c45446b3de699e037b0bcdf2ffaded8f7bb4f9c76f76cd083fb21db6e696881 d447f9eadd277419e971a644a4c22128174fbba71c1ef851675cee9c6f3280f8;
+  0000000000000000000000000000000000008000000000000000000000000000 be423ebfcbd5e69f1d19542f63c81a4fb75e01f281df025268ff5311fe753840 bceacd39137868e923f7afbe6b11ac2ee76671380d99940c11e9010a5cbff1cb;
+  0000000000000000000000000000000000000001000000000000000000000000 08f34d9a79eb66e0ba24781811a6d143fde3aa9966ad195288619c4927e380b8 6ecfe2e11d4279e3ad0f9442a760a204bf9086d4e979b078f9f00ee3737afba1;
+  0000000000000000000000000000000000000002000000000000000000000000 5219ecabb48c71f134089c59f0f5b9abf2117a3e370f2ae2ee9009514d6017e0 8dec2c80f374219a061d8a6f640a12b67eebcfe0b1c0763a6020e365e9c46f43;
+  0000000000000000000000000000000000000004000000000000000000000000 b55c8434e9a6ba458330a0d90d8c8b7930fa2c2d5c0e80ca06e0016fae9e1c83 8f64dd721ab15be9bc0a20e08fecccf6c3586c33caf59efad77031df3ef7c705;
+  0000000000000000000000000000000000000008000000000000000000000000 6c440843ced0071fb91d75686234514fe5c56104457ed76deb5fca43430200a9 f096dde19aca0fbad6a4332eb56ef9d1f55a5d1a6502aaacc4d93d8ddeccec28;
+  0000000000000000000000000000000000000010000000000000000000000000 e66edebce173786474cd18e1ac02361d01f227ad61a99f61ccd748121ab8b636 3f7c8458b90c834e8a8089e75e4f268ca7ed43c3e3086012485301217a346d28;
+  0000000000000000000000000000000000000020000000000000000000000000 730db9375f2b3709f84b90db08c8fe4554fb2f2da34c01928443aeeb916799de d1baf8e29ba3ad40525edbbc1de75724c412f08bb15084f7a23b704488233435;
+  0000000000000000000000000000000000000040000000000000000000000000 718bd882c074dff53425e3da5b748655791ccf33f9ee194945f7663a43aabda6 3666a4b39488d20f88b10c4be2a2f1878f4376e82ee2baa670cc3ee66db605f5;
+  0000000000000000000000000000000000000080000000000000000000000000 54b6fbf2ec0ae61c60efb1001a28e2b15a2838b122c6f9a701e662d2c13a7dba 502111e4f5ad6d8193616f5c3d307702e6050187517b5e46949f42853f7f620c;
+  0000000000000000000000000000000000000000010000000000000000000000 82a0b8b3840f906975bfd246045e6dbfc33eac2e3050a517ca0deea9d067a2c3 e265a81b24f90f50464a12d1a48251eb0305ccfb31bd70902f9eb1048cbc72e9;
+  0000000000000000000000000000000000000000020000000000000000000000 38b7af4fbf899508e00963c8761df7ef67a93d951dbb6645384a88c5f6458d72 d4e6e3b0dee1c82130542562f7a17a6fa88ef8944570924630a865a00d5c2fc3;
+  0000000000000000000000000000000000000000040000000000000000000000 0c468adf2bf3d93ea44b9742fd85483d8766db29d77a82572fab1a13d5016df0 9b2cee9193a91041c082358ea958aa51029df8ca927e31d9f99c44b3935367ba;
+  0000000000000000000000000000000000000000080000000000000000000000 b620c98ca7db756b3645d24ebff10f0c1e9cc389abbe05906e0ea1465c123599 90fb1c38ed147355135752718efdfc590e62f261f673c5c5d53ad5ee197cb88b;
+  0000000000000000000000000000000000000000100000000000000000000000 d9fc944196b7fd00cea423229e7ff171a9046eebad2941336785672b014f65ae a29b7f264a6a41e6e3ac2f1b1f873c3e834d7db548939e49b8d5b5fd40c1bfc2;
+  0000000000000000000000000000000000000000200000000000000000000000 eca2ff3354efe87980fb1bc0fbdab1852df4c2143df104156389a3f877f7a537 6a1a6a197f966e7e84ee8bc29befb424036ccbecaad0956b2aaa30248bb5aba4;
+  0000000000000000000000000000000000000000400000000000000000000000 30b1d6b5ed2736a7aa4862c372793df379eff92033690a1cd2c5ddfa0c0286b2 da9ac5fa9df5e96cbd69459cae97408a9c7b165fc210f27bf1edaea44745105c;
+  0000000000000000000000000000000000000000800000000000000000000000 f0726041648386cadec70a8f139751adaf91c640b20feff073abfc5f0c3ff198 e1c04eb3642a197ea81199613c073af3da0db872739fc6e9238d76851574e19d;
+  0000000000000000000000000000000000000000000100000000000000000000 f52011de4d67feadd789e1d488aef54c03bfa9a9929a2070d7f19a78eced4235 7bf3016bf0c65814857ce5299cf662e23b503291c77d540bda32fa48144c62b4;
+  0000000000000000000000000000000000000000000200000000000000000000 86efc304ab4afeae6e3f025c2ed4b8498cba38ea1951281ae834b7c3b3953d94 44edf177630a41c8aa6fd457a23daec1f79bd6f47022ff7d7d9d1755d3f452c5;
+  0000000000000000000000000000000000000000000400000000000000000000 1755c59adfebb5093fdd6f489630e84bf739ae56cca90eaa6e6bde2edd00355d b53f278bbc8b4f3f2e0ae911b003af13c6db2f373100596b5c456cb922c3b8a6;
+  0000000000000000000000000000000000000000000800000000000000000000 e9857c75d8924422544b101ec81ee9a0df2430d56ca6c13d4a1ce8c35dc36252 b4506d5de1843ce68562f90c8ad550bddfe7f7fd4749b4a69e7a9bd6430a0e23;
+  0000000000000000000000000000000000000000001000000000000000000000 41aea135b0f85e61092eb20b539c36ea908adbd2564b923689762f55eea081c8 8dadec064fe49f8779808b143e55a954e3f25bec7a366e3d79b7e5a381cb1aeb;
+  0000000000000000000000000000000000000000002000000000000000000000 ec62ea876289f4ef7b82f40e61156d44fee240875fc48cbe0c4f9c7c926a32d4 764f6127150c235facac0ca2775ad65cbadffbb212431715dd3dad1bcc5d529a;
+  0000000000000000000000000000000000000000004000000000000000000000 73a415ba5d6abf20364d6108da52fe59529f455ced10a0371b2bae9d8a35821c 4e9220c86c516d5a3b3ed446bb7ef0c3a6fa38760e0bbf9d654955fd6aca205a;
+  0000000000000000000000000000000000000000008000000000000000000000 7c18ebfc63db962252bb0e69d877e6daf0debd2385a74f1b2bef34da84ef70a8 7e1ea64b2180df0650e273c05e16aa9b258ac8965b481343bc87395c54da83aa;
+  0000000000000000000000000000000000000000000001000000000000000000 9c04edc35b7686fbf96031615c55d9988ec8e4919b3689fa97aac1d65b9c901f 387c22c29707412b8e5d49b1b41f7c0f0ee96828067727fc2b70ebb7097fc1ed;
+  0000000000000000000000000000000000000000000002000000000000000000 849f7dd934cf7e5e5f70592721289a75f1d18b68a3952ab304cf244c361ceb3d ddb2f41885f8892f398303d75be634e0748afd501c098d48feae697842f22373;
+  0000000000000000000000000000000000000000000004000000000000000000 feca794dcec632261c3ab8b07a7c66147e6bdb77525bf47d328971d43e30522b 140fb501791b5cc388f8e4c5503e7e3434aebc077a2224b5ad233649ad6a79cd;
+  0000000000000000000000000000000000000000000008000000000000000000 e8f604b96dbae74285bfed020bca6551c1c3c5d0ce6189868a92897b972f350c 0083e89fcc57b4aab09e37cdf3af48be485be3b476798361d1ebdc0e0bca64c0;
+  0000000000000000000000000000000000000000000010000000000000000000 bce0a9ee7fcc4126573288ba059ba51028a643332dba474c90558b67e2155966 b9328a60367d98b10461ec9031a982cc21daecafe3a2c0fd06af18ebd0a6c1d4;
+  0000000000000000000000000000000000000000000020000000000000000000 a3ffac89b0eed239526301434c9e2bb5a3b1cd453b8813f7b78cd07c46a9e05a 19762db88c242b3e41d80fa95f360ddc3851b94fed4e5af953439bf6faa7d569;
+  0000000000000000000000000000000000000000000040000000000000000000 e69df9ff46fca1a55f809891af78a9a83b48e3465ad88719bc4a8cba255f95e0 96266535eaf8439e484f00eceedee22bfad21e23351208ceb584bcf2309ee851;
+  0000000000000000000000000000000000000000000080000000000000000000 c8eb0973837c8b5cc102a528a60ce1d7dae11ed3dfa739c98d640eb1050d9628 80a5c600ab3943148a56654115213a6de721a25d7c949015c724b45ef02a272e;
+  0000000000000000000000000000000000000000000000010000000000000000 772ba0551f1b2cef3df3d6e1e9d8037fed0d056f14ad65b7c79785143af97f5e 5817427074a6b92f0231e7ac5f2e67efc7a7e5f2fc1c4b4a2c87e44e0c24b30c;
+  0000000000000000000000000000000000000000000000020000000000000000 e5115c0076aad972ad2728c580fd7831f15136d7d7b74f530bb71d491df7e1a6 3f8229914d9ce3c1f8ed5a107f696d1a7393b7f70791f71a90f67b2a7d693f45;
+  0000000000000000000000000000000000000000000000040000000000000000 9b74bfed25371ac5b8d709d4a942311b3caec43f90390358f711486315600039 6f199dece0bc99ff200a8ff076dcc2b17f546427d90ba1a081f901ea43b0276b;
+  0000000000000000000000000000000000000000000000080000000000000000 341eb9590237fba008235b688ca28f3246c6db747629cc94c4c4e832fcf93f6e aeed9ff7686c9533c141fde93343694c2001d6083610625c7752e94776f070d3;
+  0000000000000000000000000000000000000000000000100000000000000000 3d581e7b976444189244515ac5d19aa501232e0851ca404a9241526e1b1bb471 2a60396892ef5f2972c8e0243b4816f31dd94a0d6f1e49c1fd242ddfa7d0fdce;
+  0000000000000000000000000000000000000000000000200000000000000000 1894d24a7513477fe4aeb1c04d4ce6f303070cbc34a170371bc215af6f23e46e 80f3b452a720fd6771eb3845add80f77e135d0c2df882ea66bce9f052b587d08;
+  0000000000000000000000000000000000000000000000400000000000000000 cc19355ffafbb271441c7cb4de9bd5a7b90c0e49d07b15c8ae16ea95203c1235 95da6d6272b57c7608e4a984d0152665f8531dc727b6ac831f9e99df7ec81e21;
+  0000000000000000000000000000000000000000000000800000000000000000 326822fadc12f7a61364cc40e0b69091931eb77f7bebf8e4bf3aa61a7f8879f3 85a8ff53f873b3865817340ed601df76661c7a80c437c077af1262aeaebddad4;
+  0000000000000000000000000000000000000000000000000100000000000000 8c241784be085b6319d3fd716d17cf4d94d82034726e836ed763c6a48f3a6a2c 79ddb2f4fd45b6b793e2638f5f390914116c66c7d94a9bfacac400c95942dd04;
+  0000000000000000000000000000000000000000000000000200000000000000 f4fc0c15527f26f8d62d766bf2218aae83252222f577b82c211418b278a10ba8 9c486d8a011872fc0587a530e6cb8eb2d539de03d8b3fc0e69b45fbb41e01f8f;
+  0000000000000000000000000000000000000000000000000400000000000000 ff620f9501d652aea2e5a3953ea806774c534375886747fb1f5416df20700bf7 d980bd38add5cab5e6ea4f400e806cdc2734bb4bd790c07b6c88e1a132d295c7;
+  0000000000000000000000000000000000000000000000000800000000000000 083012796c38fb7062c7ba1ceb266484365b55f3d1130bcebcf2975c7427ce61 1125c39bacff197686c8035338043e856ab02a05730d9c5e0e383d571edb81bd;
+  0000000000000000000000000000000000000000000000001000000000000000 8faaf539cec6d76c775c97780b39d33a744dbe07c43f111fc303fe00140ed847 4352c0dec6d221ef6b24264b465732db41f668e047c67b4853fcea4eaff35a55;
+  0000000000000000000000000000000000000000000000002000000000000000 277c0623ec17a3393a630b7b8231b3fb28d54487957d6556ffa55c34874aa0ea 635ced104de44a4faa783509d3e61ba2e5930d488339dc0fe66b95dd1efa6b09;
+  0000000000000000000000000000000000000000000000004000000000000000 e0466c3f4c3e86f2010923bf3b83e8bf342def32a2afb04d3f2d5af4970311f3 6cfd34c9ab9c8039597e0474f7d445e6d276f3658bccd68d3d731f2fcb47cd51;
+  0000000000000000000000000000000000000000000000008000000000000000 9101977df1d05ff2588637fb876e743fa636f223ee7165b2a0fe18a0dc243929 ddaa877280fc5685645de992e0a87ee7a39a185e276c0a105d4b463790127843;
+  0000000000000000000000000000000000000000000000000001000000000000 f2e89abf8a2c897fe12bcb605ff5a2cb1bf05bf60e91a415ab496b5775172262 69797ffbc72d4ce39c7e043f2057bd9c8c49dec9d66746eb6e19c3f5f140ae41;
+  0000000000000000000000000000000000000000000000000002000000000000 18694127dc2259eeb414dcacf61502ecac62488eea210caea09c5057859db353 12c6a7cd4dab4a9792090bb1637e3eda9e29b5d29a036a34f7abdc4faef6f476;
+  0000000000000000000000000000000000000000000000000004000000000000 9c46ac7feb3752d0c860a69db7f26a20c1f08abb2391cf82d0239d7ce273fb12 f3648a03355cd346b8b411382200e37fa82a911ed1b37a5abd916237d084311e;
+  0000000000000000000000000000000000000000000000000008000000000000 96958a2ab3d317913e86eedf8cac841ea637eab42297c37e2564c4d96623391f 83a69fef5111b25a8fbf87b277fdad1c85dd14f5cbb55226ac2fb5856543d0b6;
+  0000000000000000000000000000000000000000000000000010000000000000 4d57d99935fee34e96efda432f0c1718374a5c74ee01822d98f7efb0360f799a 4620cd1a56aadb97e206997994a302435dbddc3e8e6d7cbfb7c16e7ffaa861c0;
+  0000000000000000000000000000000000000000000000000020000000000000 bcfe5f0ecd77a3864e7e42ad6036f6e004e44987a93db28c3e29f74d387946cc a914fa4bc32c1c3402da7cd30079c8387ee185d02f62f97556c9c2e12b14c70a;
+  0000000000000000000000000000000000000000000000000040000000000000 d5234d8af58f2dce4cf46c79d6dc0231985d8e21c3b9516bb9700bb471846e67 c3adc28016a1343d49299789038c81295df1756a5b6606a1c2460d9139e46c5b;
+  0000000000000000000000000000000000000000000000000080000000000000 f060ee1934c4cb3f45bb3f44dde0df7a8d82a25173151b6dd5d7b4ac5f8e0d66 39ee4e6488a6ec3db6c232a5225a98894c1463668c52f02b562fefe96d95a2b4;
+  0000000000000000000000000000000000000000000000000000010000000000 202e782205df136f5fc4e1a658a8eee41d6d59555f2981b08b81e0803e1fcb19 a1c1684c6f2caa19201394afadf2633ce2993e09090372a2943297548a67b27a;
+  0000000000000000000000000000000000000000000000000000020000000000 474b7fb25ebfd7e42c3c3cfcd600e6d5e0ae24ecc4998e57247cd3c17916272a 584720acdb1f03a003875d873d654afcd548e14e2e1a40bb1c99cb19fba4d27f;
+  0000000000000000000000000000000000000000000000000000040000000000 c43371a079ae9c240dc450b395de2baf4fcf00396fc081c452a1227c840ee593 deac61ef0ff1c3218d1e9cfdc71ec82af39e996bcc43d7bc6bd426763116ab06;
+  0000000000000000000000000000000000000000000000000000080000000000 7e488744da9ef97277e4eeddb0314232263cce32965dfa01081453c0b9078d0c aa94009da5ed5558490ede799566f4662868f11b9085c4855e8be5a3a664bcad;
+  0000000000000000000000000000000000000000000000000000100000000000 e0c95cecd3e8a0922e089e733986f42c27e2498ee2469c16b372294a3d021e8b 7a1cb16e34c18b3bdbc45c4afb13c3b021744e3a1e0a132ac5d88aa8ab6fed9a;
+  0000000000000000000000000000000000000000000000000000200000000000 0dd8078ed0a4f908cd28d98409692a00d3eca4020bec1c061ab47e1692e7b692 8ba2999ee882018f8da318727a573411b8187b817876a61ad66b869eee0a7600;
+  0000000000000000000000000000000000000000000000000000400000000000 2a835e3c721e701bbe8d737116c58eb429dfc79059f88cca03db570f292ae158 05df16b76ea70bdc4f4278d4583f2853b4bd7f10dc208ae646090982d187e144;
+  0000000000000000000000000000000000000000000000000000800000000000 152ea5828b03f435b289b74d917830b211cb26fc9cf417fe8f69042d68cf7761 d7e0b59ddf4275c0f8e45911f683f5e568555a2f3a9d4d330c6098646ae03609;
+  0000000000000000000000000000000000000000000000000000000100000000 0657ea9bf5c0c2202e9f5dfedcc3440fc72030fa3132426e95f607f7ad9a5c19 de11e7fe44a3af8cbe8825d6e3e955139b38d21391fe497e36779d678ade7552;
+  0000000000000000000000000000000000000000000000000000000200000000 470246cfd42d6a857e18c3b765424d3ecc3ef31f429c44f29354e11a6b180b86 3799863253b4bc7032a6eb4bac7b10714cf856b1dab7ed02d32387f7cc0b51bb;
+  0000000000000000000000000000000000000000000000000000000400000000 29501824b1071fcdb2c61a00408ac521114b60b776a77bb5bed556b772c9c1c6 b41ba2553fa9c895d9ea90f050626c76aa65cbfe4181649d5414c38e2c7ffc84;
+  0000000000000000000000000000000000000000000000000000000800000000 7c0df0702d4aa230595206a2521e35a1f10200805bb3f396cc05696a1cb0abe8 baa42e60905e3e00cd7725eecbfd57e62b659ca48cc6b5484a7a18fd4a5eb3ba;
+  0000000000000000000000000000000000000000000000000000001000000000 40584f39d6298248c8f25d82d890b35592a28047a899f0871e17fb387a61ab9a 0e81f62ceecd11fbf12de598107bfebfcc67727be28ac007272725f357a3880c;
+  0000000000000000000000000000000000000000000000000000002000000000 6cde64468e287cbcefe8176b615aaa52dba2bfc33e861264e78cb94adf628783 2908bd3dfe2c67f1e27bc3c0ff786d65570d3b45f57b127055d62e53c6b5d121;
+  0000000000000000000000000000000000000000000000000000004000000000 84c2ea6d26e389664f19c0dd3b296d98c6b28facb2e8b9d87b94b0be2bb8c5f3 cc18a2092f3169a1815c25e123388770401a3444986d0863fec9d94465e9236b;
+  0000000000000000000000000000000000000000000000000000008000000000 62fa5bc2059fb99ab4ca41faa5d0983a7f1c82af0e0b24928d4c8e9177435e85 5eb1d1dd8b27d56691c5ebffd4615b119d3e567fae9d50a316ddcb111526ab6b;
+  0000000000000000000000000000000000000000000000000000000001000000 676a8f54d23e793d39be43851509ea56308eee59914415ba4ee8f5f138bcc993 8817907b8746fa9c0fa77aad2a4b809f11ffca917011797b55d99bdd484812c1;
+  0000000000000000000000000000000000000000000000000000000002000000 feb347abd80250665955f18ecb230f8ccda08d9a3afb58334f8349dfdbd15c10 9b6a5a4ebe8bc7e69b1b476eeca8230e14c5f18ba4b38b91b7cb3789be802fca;
+  0000000000000000000000000000000000000000000000000000000004000000 dff346457a747873880ea754c2f5c9a250747772944cfd9e1708d0920946ec5a 6c026ea70690dde993c5927aeebf46aa81e40c1808341e79539ae2090a2b789f;
+  0000000000000000000000000000000000000000000000000000000008000000 baced9b05c4b1b07fc9ceb5fd16297c9edb579dc93f1e905db95e989d0bdc747 f9c1eb25ebb7ab7d89d40299d20351f33eedd2c6e7a1b9b7ec5b43a42df90e03;
+  0000000000000000000000000000000000000000000000000000000010000000 b41165457979e63efb5b6ccf6d09964291d39ffde394a87ba2a7f4ae8ccfc115 8a6df2fd2ed2d9213f0bb8cc6e8f2d453de0e07bee378f7f8e238efb773861c1;
+  0000000000000000000000000000000000000000000000000000000020000000 d8bed07822a534665a51411859939a4b6acf02013c0b42782cdbde5bf7c4efe0 aa5540e05d08b2ef644ae125f150165a1eb35fcc12b053fc6ce3e885d3262e9a;
+  0000000000000000000000000000000000000000000000000000000040000000 253e62b024997cec5b30972360b641b9ddb7d1e2b451a3f89204aa6534c3d56d 992903c9869903fe04c33c8979da1d9c4723c351e64a5a9361c011004b717915;
+  0000000000000000000000000000000000000000000000000000000080000000 fd8df09c554e87651ed7a7e0f94cd69f02a502302f793cae066fe19de62228d5 207c5d8a6052abe8ddf4dba61cb716cd76a557daa91a0a8e1182a67fb0e21ee2;
+  0000000000000000000000000000000000000000000000000000000000010000 ffc06b555a0f2c7de748edeaea32f403a268c6b6eea56765407797fb8f67d1b9 e79d6c5be8622ea0b364d27ec794662052dd9a6a090bd9dfb7793656d4682c1c;
+  0000000000000000000000000000000000000000000000000000000000020000 911e87bb51996c704df471e9fd06d2afc511c23f7bb7dcd0aeb15217b88d1a33 d6f071298462b334435b2eca183271c2c1f492f9c1458a23e4fa8396ee1b8fd9;
+  0000000000000000000000000000000000000000000000000000000000040000 ee9a6520496d13c8a7ae4147b05ffcb2e5d8c095574c9a3f4aff8bc6ddce5255 60b4b2c185ec23300f0010f78ee690e2811f5e64a3f2e103517feaa742625997;
+  0000000000000000000000000000000000000000000000000000000000080000 1d3801956309a754be0f0330d3f196b43c955fcccaf8c0195d604a9f2c7e70bf 8a540fd0f205d54da2b3cd34eff777826faeb16a061a049cdbba24d6765053ba;
+  0000000000000000000000000000000000000000000000000000000000100000 dd833077ed67eda732546b16312ea202690df6b9b991dd68286c8bee5b2cf23c 2e4c22cf9535505e8110a3a2eb9286e321a3138064983b55ff5f9ef408da7360;
+  0000000000000000000000000000000000000000000000000000000000200000 97aa0c3d44e2cb2baa099f0725ddee6f694c8010492f258d0f35a7f09c289f11 db2b9a595993d0b87abfa27805f63dbae3d132871c6d33396601ddf420fd496b;
+  0000000000000000000000000000000000000000000000000000000000400000 5d8d1e22513d5b05cefaf61aded8dcb2035c9d9fb810eef46451f33d840e4804 e77101e951cc73e38c019104e74dea9ca93ee677edf615bd2440b8980456d3de;
+  0000000000000000000000000000000000000000000000000000000000800000 3e3202c2562e5b9d7c477f30a5b83be4c57b8bf147834e1c8be7f48c48c177fb 98bc93fe8c974b6d9e02515e296ff7f220122df0452c58864b2aeda888415870;
+  0000000000000000000000000000000000000000000000000000000000000100 db2d9e30b15ff2752ecdc85d86ae16d76a013e320be1c462f038f9bc396dd933 7f0f0845647c3101a7069d0a64acbcb4d5cb274ced56911921b266c6c81167bf;
+  0000000000000000000000000000000000000000000000000000000000000200 7c878a13cf1281d18511c44a06eaf6ca91794c1226fff8a6904b0d45dbb95a31 2027dd777f2b5aa41436d40df9b0f46b0eb9e2e962442582323ff7db976021aa;
+  0000000000000000000000000000000000000000000000000000000000000400 eea9521efdd83e3518c8c5a08949d4e14ca1f65dca11b71d3525b686f94bd089 c7d3782ac4ead5152639c28f80e73b84b2716b0894b17c7828c6ecf240869f44;
+  0000000000000000000000000000000000000000000000000000000000000800 8d3ba581c3ed759bf5a3fa1b6428c3ce9f9d43578dbb2a83ab29d282712b8faf 69c5227f367f366a5db0572eabc7e7653ed0dd7ba05436478b93962f6220b72d;
+  0000000000000000000000000000000000000000000000000000000000001000 d31b3f7f31e40073720ca119e92373da8c15e8a5b08d763f09c73d63bef37673 946ee38c79961483179f82786959d4549a100aea3cf3d0300eeac955758a72ab;
+  0000000000000000000000000000000000000000000000000000000000002000 3a7cc15d4a868acf695d5186880ea5f447eff86e1667ddc1755ed8b1cc86944d 3d70c01686ae220c3872189c1909b2efe99451535f1a570e7461609f5d682409;
+  0000000000000000000000000000000000000000000000000000000000004000 8bd49b719e498b441c3d5cfaded8ccfdebf7b9a81bf859f7e69d08e1b0efc070 4470beb2dbdaf0204ba58d8d8a79bb6c1e10f49c2bb80ed7e985edab16ba98d9;
+  0000000000000000000000000000000000000000000000000000000000008000 a514e6e37551c4d81c7a2785aafe4f167002c77e290c39a5f1d9ebc23691762c 7c179c69025b3cc041586fe9c425b9a1eb3aa6d8c3432c58b52163e52f0bf76e;
+  0000000000000000000000000000000000000000000000000000000000000001 8046590da140015506e6892c36972669a50d2678b7ad1b7e43e0ccb3b35db2ac 5086b1fa11fe7e47ff7285767bcd73cf49e01d7fe064e020287ecafd20d18ac7;
+  0000000000000000000000000000000000000000000000000000000000000002 5c4c09d618821b2ad9f9000e4cec08ae22c221796d96a45e0b407d3e86c60e83 8279e1644303ecc3aeae0ff8cc582dd8e60d1e5c908edb6a1e48a0f7e960d3c4;
+  0000000000000000000000000000000000000000000000000000000000000004 74a626c1d53a369c36a80c59f3aeb30882ffcc324a221f463f3590628c03076e a21bfba23aa9fd4adb5acc8dfe387ba9efbffc6ea51d6f06c7a4d7a7d9ae75fa;
+  0000000000000000000000000000000000000000000000000000000000000008 8900e62163a00c7dbe8f62cfe13497de4561b0ca90cfbe903895c5ff227790eb 723939ccaac9b95388e2e6ae31aad5bdb2c05a45f8b007e716935e4861be3295;
+  0000000000000000000000000000000000000000000000000000000000000010 c6b14d7f5be24cb2eb1df47cbf3a7a60b3af2c67b0d94b6337616c45318feb8e 9a2aa821e82597ca289811de8ff7f7657b67fb99ec1dfdf24c8dfdada1ed85d4;
+  0000000000000000000000000000000000000000000000000000000000000020 4f9d7c7b2b842dd9eee11b1b01ceef5a69d12410b6d47e47c2889ab6157cc9c1 95aeb281ca03ea3d5260fcbd8f5a93a6769ce94a6d866b700301a49a0c62aa9b;
+  0000000000000000000000000000000000000000000000000000000000000040 0b2682b33384ac7abe15207e674a2a23e2b2cb571d5956c1d4e1fc7493839b57 41d3c5605b99aeb7f25e3c1906733ea760392d0651484efbd02ba83651532d93;
+  0000000000000000000000000000000000000000000000000000000000000080 59eb055d41654595062acd7c3813cdde0724f7006b003dceb94bd387e6a01bd1 70c498f813db6bd5ee91e5c460c128c1b48531ac76ca61debf775b9c0a0bb48f;
+}